aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2013-11-18 12:17:40 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2013-11-18 12:19:31 +0000
commitf1270d0099dbf9225df2d4b737e2b9bfd524447a (patch)
tree98fd183e6cd012c0a700bd9f081acab879c69c51
parent31d93dc2c429134087f0c5ee4bb56dabb92012e1 (diff)
downloadaports-f1270d0099dbf9225df2d4b737e2b9bfd524447a.tar.bz2
aports-f1270d0099dbf9225df2d4b737e2b9bfd524447a.tar.xz
main/vim: remove unused patch
-rw-r--r--main/vim/vim-7.3.806.patch132911
1 files changed, 0 insertions, 132911 deletions
diff --git a/main/vim/vim-7.3.806.patch b/main/vim/vim-7.3.806.patch
deleted file mode 100644
index af813b1522..0000000000
--- a/main/vim/vim-7.3.806.patch
+++ /dev/null
@@ -1,132911 +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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.100
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.100
-Problem: When using :normal v:count isn't set.
-Solution: Call normal_cmd() with toplevel set to TRUE.
-Files: src/ex_docmd.c
-
-
-*** ../vim-7.3.099/src/ex_docmd.c 2010-12-02 16:01:23.000000000 +0100
---- src/ex_docmd.c 2011-01-06 17:23:43.000000000 +0100
-***************
-*** 9310,9316 ****
- && !got_int)
- {
- update_topline_cursor();
-! normal_cmd(&oa, FALSE); /* execute a Normal mode cmd */
- }
- }
- #endif
---- 9310,9316 ----
- && !got_int)
- {
- update_topline_cursor();
-! normal_cmd(&oa, TRUE); /* execute a Normal mode cmd */
- }
- }
- #endif
-*** ../vim-7.3.099/src/version.c 2011-01-08 14:45:57.000000000 +0100
---- src/version.c 2011-01-17 19:49:07.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 100,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-109. You actually read -- and enjoy -- lists like this.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.1
-Fcc: 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.101
-Problem: ino_t defined with wrong size.
-Solution: Move including auto/config.h before other includes. (Marius
- Geminas)
-Files: src/if_ruby.c, src/if_lua.c
-
-
-*** ../vim-7.3.100/src/if_ruby.c 2010-12-24 13:39:29.000000000 +0100
---- src/if_ruby.c 2011-01-09 14:43:14.000000000 +0100
-***************
-*** 11,23 ****
- * See README.txt for an overview of the Vim source code.
- */
-
-- #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)
- # define NT
---- 11,23 ----
- * See README.txt for an overview of the Vim source code.
- */
-
- #ifdef HAVE_CONFIG_H
- # include "auto/config.h"
- #endif
-
-+ #include <stdio.h>
-+ #include <string.h>
-+
- #ifdef _WIN32
- # if !defined(DYNAMIC_RUBY_VER) || (DYNAMIC_RUBY_VER < 18)
- # define NT
-*** ../vim-7.3.100/src/if_lua.c 2010-10-23 14:02:48.000000000 +0200
---- src/if_lua.c 2011-01-09 14:46:46.000000000 +0100
-***************
-*** 9,20 ****
- * See README.txt for an overview of the Vim source code.
- */
-
-! #include <stdio.h>
-! #include <string.h>
- #include <lua.h>
- #include <lualib.h>
- #include <lauxlib.h>
-- #include "vim.h"
-
- /* Only do the following when the feature is enabled. Needed for "make
- * depend". */
---- 9,19 ----
- * See README.txt for an overview of the Vim source code.
- */
-
-! #include "vim.h"
-!
- #include <lua.h>
- #include <lualib.h>
- #include <lauxlib.h>
-
- /* Only do the following when the feature is enabled. Needed for "make
- * depend". */
-*** ../vim-7.3.100/src/version.c 2011-01-17 19:50:01.000000000 +0100
---- src/version.c 2011-01-17 19:51:40.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 101,
- /**/
-
---
-In a world without walls and borders, who needs windows and gates?
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.102
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.102
-Problem: When using ":make", typing the next command and then getting the
- "reload" prompt the next command is (partly) eaten by the reload
- prompt.
-Solution: Accept ':' as a special character at the reload prompt to accept
- the default choice and execute the command.
-Files: src/eval.c, src/fileio.c, src/gui.c, src/gui_xmdlg.c,
- src/memline.c, src/message.c, src/proto/message.pro,
- src/gui_athena.c, src/gui_gtk.c, src/gui_mac.c, src/gui_motif.c,
- src/gui_photon.c, src/gui_w16.c, src/gui_w32.c, src/os_mswin.c
- src/proto/gui_athena.pro, src/proto/gui_gtk.pro,
- src/proto/gui_mac.pro, src/proto/gui_motif.pro,
- src/proto/gui_photon.pro, src/proto/gui_w16.pro,
- src/proto/gui_w32.pro
-
-
-*** ../vim-7.3.101/src/eval.c 2011-01-04 19:03:22.000000000 +0100
---- src/eval.c 2011-01-16 00:14:21.000000000 +0100
-***************
-*** 9323,9329 ****
-
- if (!error)
- rettv->vval.v_number = do_dialog(type, NULL, message, buttons,
-! def, NULL);
- #endif
- }
-
---- 9323,9329 ----
-
- if (!error)
- rettv->vval.v_number = do_dialog(type, NULL, message, buttons,
-! def, NULL, FALSE);
- #endif
- }
-
-***************
-*** 12744,12750 ****
- IObuff[0] = NUL;
- if (message != NULL && defstr != NULL
- && do_dialog(VIM_QUESTION, NULL, message,
-! (char_u *)_("&OK\n&Cancel"), 1, IObuff) == 1)
- rettv->vval.v_string = vim_strsave(IObuff);
- else
- {
---- 12744,12750 ----
- IObuff[0] = NUL;
- if (message != NULL && defstr != NULL
- && do_dialog(VIM_QUESTION, NULL, message,
-! (char_u *)_("&OK\n&Cancel"), 1, IObuff, FALSE) == 1)
- rettv->vval.v_string = vim_strsave(IObuff);
- else
- {
-*** ../vim-7.3.101/src/fileio.c 2010-12-17 18:06:00.000000000 +0100
---- src/fileio.c 2011-01-16 00:14:37.000000000 +0100
-***************
-*** 7008,7014 ****
- STRCAT(tbuf, mesg2);
- }
- if (do_dialog(VIM_WARNING, (char_u *)_("Warning"), tbuf,
-! (char_u *)_("&OK\n&Load File"), 1, NULL) == 2)
- reload = TRUE;
- }
- else
---- 7008,7014 ----
- STRCAT(tbuf, mesg2);
- }
- if (do_dialog(VIM_WARNING, (char_u *)_("Warning"), tbuf,
-! (char_u *)_("&OK\n&Load File"), 1, NULL, TRUE) == 2)
- reload = TRUE;
- }
- else
-*** ../vim-7.3.101/src/gui.c 2010-10-20 19:17:43.000000000 +0200
---- src/gui.c 2011-01-16 00:14:56.000000000 +0100
-***************
-*** 4903,4909 ****
- if (STRLEN(p) > 2000)
- STRCPY(p + 2000 - 14, "...(truncated)");
- (void)do_dialog(VIM_ERROR, (char_u *)_("Error"),
-! p, (char_u *)_("&Ok"), 1, NULL);
- break;
- }
- ga_clear(&error_ga);
---- 4903,4909 ----
- if (STRLEN(p) > 2000)
- STRCPY(p + 2000 - 14, "...(truncated)");
- (void)do_dialog(VIM_ERROR, (char_u *)_("Error"),
-! p, (char_u *)_("&Ok"), 1, NULL, FALSE);
- break;
- }
- ga_clear(&error_ga);
-*** ../vim-7.3.101/src/gui_xmdlg.c 2010-08-15 21:57:32.000000000 +0200
---- src/gui_xmdlg.c 2011-01-16 00:15:33.000000000 +0100
-***************
-*** 688,694 ****
- do_dialog(VIM_ERROR,
- (char_u *)_("Error"),
- (char_u *)_("Invalid font specification"),
-! (char_u *)_("&Dismiss"), 1, NULL);
-
- return True;
- }
---- 688,694 ----
- do_dialog(VIM_ERROR,
- (char_u *)_("Error"),
- (char_u *)_("Invalid font specification"),
-! (char_u *)_("&Dismiss"), 1, NULL, FALSE);
-
- return True;
- }
-***************
-*** 807,813 ****
- do_dialog(VIM_ERROR,
- (char_u *)_("Error"),
- (char_u *)_("Invalid font specification"),
-! (char_u *)_("&Dismiss"), 1, NULL);
- XFreeFontNames(name);
- }
- else
---- 807,813 ----
- do_dialog(VIM_ERROR,
- (char_u *)_("Error"),
- (char_u *)_("Invalid font specification"),
-! (char_u *)_("&Dismiss"), 1, NULL, FALSE);
- XFreeFontNames(name);
- }
- else
-*** ../vim-7.3.101/src/memline.c 2010-12-17 20:23:56.000000000 +0100
---- src/memline.c 2011-01-16 00:15:47.000000000 +0100
-***************
-*** 4516,4522 ****
- process_still_running
- ? (char_u *)_("&Open Read-Only\n&Edit anyway\n&Recover\n&Quit\n&Abort") :
- # endif
-! (char_u *)_("&Open Read-Only\n&Edit anyway\n&Recover\n&Delete it\n&Quit\n&Abort"), 1, NULL);
-
- # if defined(UNIX) || defined(__EMX__) || defined(VMS)
- if (process_still_running && choice >= 4)
---- 4516,4522 ----
- process_still_running
- ? (char_u *)_("&Open Read-Only\n&Edit anyway\n&Recover\n&Quit\n&Abort") :
- # endif
-! (char_u *)_("&Open Read-Only\n&Edit anyway\n&Recover\n&Delete it\n&Quit\n&Abort"), 1, NULL, FALSE);
-
- # if defined(UNIX) || defined(__EMX__) || defined(VMS)
- if (process_still_running && choice >= 4)
-*** ../vim-7.3.101/src/message.c 2011-01-04 19:25:46.000000000 +0100
---- src/message.c 2011-01-17 19:57:30.000000000 +0100
-***************
-*** 3315,3321 ****
- * different letter.
- */
- int
-! do_dialog(type, title, message, buttons, dfltbutton, textfield)
- int type UNUSED;
- char_u *title UNUSED;
- char_u *message;
---- 3315,3321 ----
- * different letter.
- */
- int
-! do_dialog(type, title, message, buttons, dfltbutton, textfield, ex_cmd)
- int type UNUSED;
- char_u *title UNUSED;
- char_u *message;
-***************
-*** 3323,3328 ****
---- 3323,3330 ----
- int dfltbutton;
- char_u *textfield UNUSED; /* IObuff for inputdialog(), NULL
- otherwise */
-+ int ex_cmd; /* when TRUE pressing : accepts default and starts
-+ Ex command */
- {
- int oldState;
- int retval = 0;
-***************
-*** 3341,3347 ****
- if (gui.in_use && vim_strchr(p_go, GO_CONDIALOG) == NULL)
- {
- c = gui_mch_dialog(type, title, message, buttons, dfltbutton,
-! textfield);
- /* avoid a hit-enter prompt without clearing the cmdline */
- need_wait_return = FALSE;
- emsg_on_display = FALSE;
---- 3343,3349 ----
- if (gui.in_use && vim_strchr(p_go, GO_CONDIALOG) == NULL)
- {
- c = gui_mch_dialog(type, title, message, buttons, dfltbutton,
-! textfield, ex_cmd);
- /* avoid a hit-enter prompt without clearing the cmdline */
- need_wait_return = FALSE;
- emsg_on_display = FALSE;
-***************
-*** 3388,3393 ****
---- 3390,3402 ----
- default: /* Could be a hotkey? */
- if (c < 0) /* special keys are ignored here */
- continue;
-+ if (c == ':' && ex_cmd)
-+ {
-+ retval = dfltbutton;
-+ ins_char_typebuf(':');
-+ break;
-+ }
-+
- /* Make the character lowercase, as chars in "hotkeys" are. */
- c = MB_TOLOWER(c);
- retval = 1;
-***************
-*** 3661,3667 ****
- if (do_dialog(type,
- title == NULL ? (char_u *)_("Question") : title,
- message,
-! (char_u *)_("&Yes\n&No"), dflt, NULL) == 1)
- return VIM_YES;
- return VIM_NO;
- }
---- 3670,3676 ----
- if (do_dialog(type,
- title == NULL ? (char_u *)_("Question") : title,
- message,
-! (char_u *)_("&Yes\n&No"), dflt, NULL, FALSE) == 1)
- return VIM_YES;
- return VIM_NO;
- }
-***************
-*** 3676,3682 ****
- switch (do_dialog(type,
- title == NULL ? (char_u *)_("Question") : title,
- message,
-! (char_u *)_("&Yes\n&No\n&Cancel"), dflt, NULL))
- {
- case 1: return VIM_YES;
- case 2: return VIM_NO;
---- 3685,3691 ----
- switch (do_dialog(type,
- title == NULL ? (char_u *)_("Question") : title,
- message,
-! (char_u *)_("&Yes\n&No\n&Cancel"), dflt, NULL, FALSE))
- {
- case 1: return VIM_YES;
- case 2: return VIM_NO;
-***************
-*** 3695,3701 ****
- title == NULL ? (char_u *)"Question" : title,
- message,
- (char_u *)_("&Yes\n&No\nSave &All\n&Discard All\n&Cancel"),
-! dflt, NULL))
- {
- case 1: return VIM_YES;
- case 2: return VIM_NO;
---- 3704,3710 ----
- title == NULL ? (char_u *)"Question" : title,
- message,
- (char_u *)_("&Yes\n&No\nSave &All\n&Discard All\n&Cancel"),
-! dflt, NULL, FALSE))
- {
- case 1: return VIM_YES;
- case 2: return VIM_NO;
-*** ../vim-7.3.101/src/proto/message.pro 2010-10-20 21:22:17.000000000 +0200
---- src/proto/message.pro 2011-01-16 00:22:36.000000000 +0100
-***************
-*** 64,70 ****
- int verbose_open __ARGS((void));
- void give_warning __ARGS((char_u *message, int hl));
- void msg_advance __ARGS((int col));
-! int do_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield));
- void display_confirm_msg __ARGS((void));
- int vim_dialog_yesno __ARGS((int type, char_u *title, char_u *message, int dflt));
- int vim_dialog_yesnocancel __ARGS((int type, char_u *title, char_u *message, int dflt));
---- 64,70 ----
- int verbose_open __ARGS((void));
- void give_warning __ARGS((char_u *message, int hl));
- void msg_advance __ARGS((int col));
-! int do_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield, int ex_cmd));
- void display_confirm_msg __ARGS((void));
- int vim_dialog_yesno __ARGS((int type, char_u *title, char_u *message, int dflt));
- int vim_dialog_yesnocancel __ARGS((int type, char_u *title, char_u *message, int dflt));
-*** ../vim-7.3.101/src/gui_athena.c 2010-08-15 21:57:25.000000000 +0200
---- src/gui_athena.c 2011-01-16 00:18:47.000000000 +0100
-***************
-*** 2117,2129 ****
- }
-
- int
-! gui_mch_dialog(type, title, message, buttons, dfltbutton, textfield)
- int type UNUSED;
- char_u *title;
- char_u *message;
- char_u *buttons;
- int dfltbutton UNUSED;
- char_u *textfield;
- {
- char_u *buts;
- char_u *p, *next;
---- 2117,2130 ----
- }
-
- int
-! gui_mch_dialog(type, title, message, buttons, dfltbutton, textfield, ex_cmd)
- int type UNUSED;
- char_u *title;
- char_u *message;
- char_u *buttons;
- int dfltbutton UNUSED;
- char_u *textfield;
-+ int ex_cmd UNUSED;
- {
- char_u *buts;
- char_u *p, *next;
-*** ../vim-7.3.101/src/gui_gtk.c 2010-12-08 13:11:15.000000000 +0100
---- src/gui_gtk.c 2011-01-16 00:24:44.000000000 +0100
-***************
-*** 1268,1274 ****
- char_u *message, /* message text */
- char_u *buttons, /* names of buttons */
- int def_but, /* default button */
-! char_u *textfield) /* text for textfield or NULL */
- {
- GtkWidget *dialog;
- GtkWidget *entry = NULL;
---- 1268,1275 ----
- char_u *message, /* message text */
- char_u *buttons, /* names of buttons */
- int def_but, /* default button */
-! char_u *textfield, /* text for textfield or NULL */
-! int ex_cmd UNUSED)
- {
- GtkWidget *dialog;
- GtkWidget *entry = NULL;
-*** ../vim-7.3.101/src/gui_mac.c 2010-09-21 17:34:26.000000000 +0200
---- src/gui_mac.c 2011-01-16 00:19:52.000000000 +0100
-***************
-*** 5583,5589 ****
- char_u *message,
- char_u *buttons,
- int dfltbutton,
-! char_u *textfield)
- {
- Handle buttonDITL;
- Handle iconDITL;
---- 5583,5590 ----
- char_u *message,
- char_u *buttons,
- int dfltbutton,
-! char_u *textfield,
-! int ex_cmd)
- {
- Handle buttonDITL;
- Handle iconDITL;
-*** ../vim-7.3.101/src/gui_motif.c 2010-08-15 21:57:28.000000000 +0200
---- src/gui_motif.c 2011-01-16 00:20:14.000000000 +0100
-***************
-*** 2549,2561 ****
- #endif
-
- int
-! gui_mch_dialog(type, title, message, button_names, dfltbutton, textfield)
- int type UNUSED;
- char_u *title;
- char_u *message;
- char_u *button_names;
- int dfltbutton;
- char_u *textfield; /* buffer of size IOSIZE */
- {
- char_u *buts;
- char_u *p, *next;
---- 2549,2562 ----
- #endif
-
- int
-! gui_mch_dialog(type, title, message, button_names, dfltbutton, textfield, ex_cmd)
- int type UNUSED;
- char_u *title;
- char_u *message;
- char_u *button_names;
- int dfltbutton;
- char_u *textfield; /* buffer of size IOSIZE */
-+ int ex_cmd UNUSED;
- {
- char_u *buts;
- char_u *p, *next;
-*** ../vim-7.3.101/src/gui_photon.c 2010-08-15 21:57:27.000000000 +0200
---- src/gui_photon.c 2011-01-16 00:20:28.000000000 +0100
-***************
-*** 1502,1508 ****
- char_u *message,
- char_u *buttons,
- int default_button,
-! char_u *textfield)
- {
- char_u *str;
- char_u **button_array;
---- 1502,1509 ----
- char_u *message,
- char_u *buttons,
- int default_button,
-! char_u *textfield,
-! int ex_cmd)
- {
- char_u *str;
- char_u **button_array;
-*** ../vim-7.3.101/src/gui_w16.c 2010-08-15 21:57:28.000000000 +0200
---- src/gui_w16.c 2011-01-16 00:20:48.000000000 +0100
-***************
-*** 1098,1104 ****
- char_u *message,
- char_u *buttons,
- int dfltbutton,
-! char_u *textfield)
- {
- FARPROC dp;
- LPWORD p, pnumitems;
---- 1098,1105 ----
- char_u *message,
- char_u *buttons,
- int dfltbutton,
-! char_u *textfield,
-! int ex_cmd)
- {
- FARPROC dp;
- LPWORD p, pnumitems;
-*** ../vim-7.3.101/src/gui_w32.c 2010-10-27 12:33:12.000000000 +0200
---- src/gui_w32.c 2011-01-16 00:21:08.000000000 +0100
-***************
-*** 3005,3011 ****
- char_u *message,
- char_u *buttons,
- int dfltbutton,
-! char_u *textfield)
- {
- WORD *p, *pdlgtemplate, *pnumitems;
- DWORD *dwp;
---- 3005,3012 ----
- char_u *message,
- char_u *buttons,
- int dfltbutton,
-! char_u *textfield,
-! int ex_cmd)
- {
- WORD *p, *pdlgtemplate, *pnumitems;
- DWORD *dwp;
-*** ../vim-7.3.101/src/os_mswin.c 2010-12-17 20:23:56.000000000 +0100
---- src/os_mswin.c 2011-01-16 00:21:41.000000000 +0100
-***************
-*** 593,599 ****
- gui.starting ? (char_u *)_("Message") :
- #endif
- (char_u *)_("Error"),
-! p, (char_u *)_("&Ok"), 1, NULL);
- break;
- }
- ga_clear(&error_ga);
---- 593,599 ----
- gui.starting ? (char_u *)_("Message") :
- #endif
- (char_u *)_("Error"),
-! p, (char_u *)_("&Ok"), 1, NULL, FALSE);
- break;
- }
- ga_clear(&error_ga);
-*** ../vim-7.3.101/src/proto/gui_athena.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/gui_athena.pro 2011-01-16 00:23:00.000000000 +0100
-***************
-*** 27,31 ****
- void gui_mch_set_scrollbar_colors __ARGS((scrollbar_T *sb));
- Window gui_x11_get_wid __ARGS((void));
- char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter));
-! int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield));
- /* vim: set ft=c : */
---- 27,31 ----
- void gui_mch_set_scrollbar_colors __ARGS((scrollbar_T *sb));
- Window gui_x11_get_wid __ARGS((void));
- char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter));
-! int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield, int ex_cmd));
- /* vim: set ft=c : */
-*** ../vim-7.3.101/src/proto/gui_gtk.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/gui_gtk.pro 2011-01-16 00:22:57.000000000 +0100
-***************
-*** 13,19 ****
- void gui_mch_destroy_scrollbar __ARGS((scrollbar_T *sb));
- char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter));
- char_u *gui_mch_browsedir __ARGS((char_u *title, char_u *initdir));
-! int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int def_but, char_u *textfield));
- void gui_mch_show_popupmenu __ARGS((vimmenu_T *menu));
- void gui_make_popup __ARGS((char_u *path_name, int mouse_pos));
- void gui_mch_find_dialog __ARGS((exarg_T *eap));
---- 13,19 ----
- void gui_mch_destroy_scrollbar __ARGS((scrollbar_T *sb));
- char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter));
- char_u *gui_mch_browsedir __ARGS((char_u *title, char_u *initdir));
-! int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int def_but, char_u *textfield, int ex_cmd));
- void gui_mch_show_popupmenu __ARGS((vimmenu_T *menu));
- void gui_make_popup __ARGS((char_u *path_name, int mouse_pos));
- void gui_mch_find_dialog __ARGS((exarg_T *eap));
-*** ../vim-7.3.101/src/proto/gui_mac.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/gui_mac.pro 2011-01-16 00:31:46.000000000 +0100
-***************
-*** 81,87 ****
- int gui_mch_get_mouse_y __ARGS((void));
- void gui_mch_setmouse __ARGS((int x, int y));
- void gui_mch_show_popupmenu __ARGS((vimmenu_T *menu));
-! int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield));
- char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter));
- void gui_mch_set_foreground __ARGS((void));
- void gui_mch_show_tabline __ARGS((int showit));
---- 81,87 ----
- int gui_mch_get_mouse_y __ARGS((void));
- void gui_mch_setmouse __ARGS((int x, int y));
- void gui_mch_show_popupmenu __ARGS((vimmenu_T *menu));
-! int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield, int ex_cmd));
- char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter));
- void gui_mch_set_foreground __ARGS((void));
- void gui_mch_show_tabline __ARGS((int showit));
-*** ../vim-7.3.101/src/proto/gui_motif.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/gui_motif.pro 2011-01-16 00:22:58.000000000 +0100
-***************
-*** 29,35 ****
- void gui_mch_set_scrollbar_colors __ARGS((scrollbar_T *sb));
- Window gui_x11_get_wid __ARGS((void));
- char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter));
-! int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *button_names, int dfltbutton, char_u *textfield));
- void gui_mch_enable_footer __ARGS((int showit));
- void gui_mch_set_footer __ARGS((char_u *s));
- void gui_mch_show_toolbar __ARGS((int showit));
---- 29,35 ----
- void gui_mch_set_scrollbar_colors __ARGS((scrollbar_T *sb));
- Window gui_x11_get_wid __ARGS((void));
- char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter));
-! int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *button_names, int dfltbutton, char_u *textfield, int ex_cmd));
- void gui_mch_enable_footer __ARGS((int showit));
- void gui_mch_set_footer __ARGS((char_u *s));
- void gui_mch_show_toolbar __ARGS((int showit));
-*** ../vim-7.3.101/src/proto/gui_photon.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/gui_photon.pro 2011-01-16 00:32:33.000000000 +0100
-***************
-*** 8,14 ****
- void gui_mch_update __ARGS((void));
- int gui_mch_wait_for_chars __ARGS((int wtime));
- char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *default_name, char_u *ext, char_u *initdir, char_u *filter));
-! int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int default_button, char_u *textfield));
- int gui_mch_get_winpos __ARGS((int *x, int *y));
- void gui_mch_set_winpos __ARGS((int x, int y));
- void gui_mch_set_shellsize __ARGS((int width, int height, int min_width, int min_height, int base_width, int base_height, int direction));
---- 8,14 ----
- void gui_mch_update __ARGS((void));
- int gui_mch_wait_for_chars __ARGS((int wtime));
- char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *default_name, char_u *ext, char_u *initdir, char_u *filter));
-! int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int default_button, char_u *textfield, int ex_cmd));
- int gui_mch_get_winpos __ARGS((int *x, int *y));
- void gui_mch_set_winpos __ARGS((int x, int y));
- void gui_mch_set_shellsize __ARGS((int width, int height, int min_width, int min_height, int base_width, int base_height, int direction));
-*** ../vim-7.3.101/src/proto/gui_w16.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/gui_w16.pro 2011-01-16 00:34:36.000000000 +0100
-***************
-*** 74,79 ****
- void gui_mch_add_menu_item __ARGS((vimmenu_T *menu, int idx));
- void gui_mch_destroy_menu __ARGS((vimmenu_T *menu));
- void gui_mch_menu_grey __ARGS((vimmenu_T *menu, int grey));
-! int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield));
- void gui_mch_set_foreground __ARGS((void));
- /* vim: set ft=c : */
---- 74,79 ----
- void gui_mch_add_menu_item __ARGS((vimmenu_T *menu, int idx));
- void gui_mch_destroy_menu __ARGS((vimmenu_T *menu));
- void gui_mch_menu_grey __ARGS((vimmenu_T *menu, int grey));
-! int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield, int ex_cmd));
- void gui_mch_set_foreground __ARGS((void));
- /* vim: set ft=c : */
-*** ../vim-7.3.101/src/proto/gui_w32.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/gui_w32.pro 2011-01-16 00:33:12.000000000 +0100
-***************
-*** 81,87 ****
- void gui_mch_add_menu_item __ARGS((vimmenu_T *menu, int idx));
- void gui_mch_destroy_menu __ARGS((vimmenu_T *menu));
- void gui_mch_menu_grey __ARGS((vimmenu_T *menu, int grey));
-! int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield));
- void gui_mch_set_foreground __ARGS((void));
- void gui_mch_drawsign __ARGS((int row, int col, int typenr));
- void *gui_mch_register_sign __ARGS((char_u *signfile));
---- 81,87 ----
- void gui_mch_add_menu_item __ARGS((vimmenu_T *menu, int idx));
- void gui_mch_destroy_menu __ARGS((vimmenu_T *menu));
- void gui_mch_menu_grey __ARGS((vimmenu_T *menu, int grey));
-! int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield, int ex_cmd));
- void gui_mch_set_foreground __ARGS((void));
- void gui_mch_drawsign __ARGS((int row, int col, int typenr));
- void *gui_mch_register_sign __ARGS((char_u *signfile));
-*** ../vim-7.3.101/src/version.c 2011-01-17 19:53:20.000000000 +0100
---- src/version.c 2011-01-17 20:05:02.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 102,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-110. You actually volunteer to become your employer's webmaster.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.103
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.103
-Problem: Changing 'fileformat' and then using ":w" in an empty file sets
- the 'modified' option.
-Solution: In unchanged() don't ignore 'ff' for an empty file.
-Files: src/misc1.c, src/option.c, src/proto/option.pro, src/undo.c
-
-
-*** ../vim-7.3.102/src/misc1.c 2010-12-30 12:30:26.000000000 +0100
---- src/misc1.c 2011-01-22 00:00:24.000000000 +0100
-***************
-*** 2919,2925 ****
- buf_T *buf;
- int ff; /* also reset 'fileformat' */
- {
-! if (buf->b_changed || (ff && file_ff_differs(buf)))
- {
- buf->b_changed = 0;
- ml_setflags(buf);
---- 2919,2925 ----
- buf_T *buf;
- int ff; /* also reset 'fileformat' */
- {
-! if (buf->b_changed || (ff && file_ff_differs(buf, FALSE)))
- {
- buf->b_changed = 0;
- ml_setflags(buf);
-*** ../vim-7.3.102/src/option.c 2010-12-02 21:43:10.000000000 +0100
---- src/option.c 2011-01-22 00:03:40.000000000 +0100
-***************
-*** 11296,11311 ****
- * from when editing started (save_file_ff() called).
- * Also when 'endofline' was changed and 'binary' is set, or when 'bomb' was
- * changed and 'binary' is not set.
-! * Don't consider a new, empty buffer to be changed.
- */
- int
-! file_ff_differs(buf)
- buf_T *buf;
- {
- /* In a buffer that was never loaded the options are not valid. */
- if (buf->b_flags & BF_NEVERLOADED)
- return FALSE;
-! if ((buf->b_flags & BF_NEW)
- && buf->b_ml.ml_line_count == 1
- && *ml_get_buf(buf, (linenr_T)1, FALSE) == NUL)
- return FALSE;
---- 11296,11314 ----
- * from when editing started (save_file_ff() called).
- * Also when 'endofline' was changed and 'binary' is set, or when 'bomb' was
- * changed and 'binary' is not set.
-! * When "ignore_empty" is true don't consider a new, empty buffer to be
-! * changed.
- */
- int
-! file_ff_differs(buf, ignore_empty)
- buf_T *buf;
-+ int ignore_empty;
- {
- /* In a buffer that was never loaded the options are not valid. */
- if (buf->b_flags & BF_NEVERLOADED)
- return FALSE;
-! if (ignore_empty
-! && (buf->b_flags & BF_NEW)
- && buf->b_ml.ml_line_count == 1
- && *ml_get_buf(buf, (linenr_T)1, FALSE) == NUL)
- return FALSE;
-*** ../vim-7.3.102/src/proto/option.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/option.pro 2011-01-22 00:04:35.000000000 +0100
-***************
-*** 54,59 ****
- int option_was_set __ARGS((char_u *name));
- int can_bs __ARGS((int what));
- void save_file_ff __ARGS((buf_T *buf));
-! int file_ff_differs __ARGS((buf_T *buf));
- int check_ff_value __ARGS((char_u *p));
- /* vim: set ft=c : */
---- 54,59 ----
- int option_was_set __ARGS((char_u *name));
- int can_bs __ARGS((int what));
- void save_file_ff __ARGS((buf_T *buf));
-! int file_ff_differs __ARGS((buf_T *buf, int ignore_empty));
- int check_ff_value __ARGS((char_u *p));
- /* vim: set ft=c : */
-*** ../vim-7.3.102/src/undo.c 2010-12-17 18:06:00.000000000 +0100
---- src/undo.c 2011-01-22 00:03:58.000000000 +0100
-***************
-*** 3304,3310 ****
- #ifdef FEAT_QUICKFIX
- !bt_dontwrite(buf) &&
- #endif
-! (buf->b_changed || file_ff_differs(buf));
- }
-
- int
---- 3304,3310 ----
- #ifdef FEAT_QUICKFIX
- !bt_dontwrite(buf) &&
- #endif
-! (buf->b_changed || file_ff_differs(buf, TRUE));
- }
-
- int
-***************
-*** 3314,3320 ****
- #ifdef FEAT_QUICKFIX
- !bt_dontwrite(curbuf) &&
- #endif
-! (curbuf->b_changed || file_ff_differs(curbuf));
- }
-
- #if defined(FEAT_EVAL) || defined(PROTO)
---- 3314,3320 ----
- #ifdef FEAT_QUICKFIX
- !bt_dontwrite(curbuf) &&
- #endif
-! (curbuf->b_changed || file_ff_differs(curbuf, TRUE));
- }
-
- #if defined(FEAT_EVAL) || defined(PROTO)
-*** ../vim-7.3.102/src/version.c 2011-01-17 20:08:03.000000000 +0100
---- src/version.c 2011-01-22 00:07:56.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 103,
- /**/
-
---
-In a world without fences, who needs Gates and Windows?
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.104
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Problem: Conceal: using Tab for cchar causes problems. (ZyX)
-Solution: Do not accept a control character for cchar.
-Files: src/syntax.c
-
-
-*** ../vim-7.3.103/src/syntax.c 2010-09-29 18:32:47.000000000 +0200
---- src/syntax.c 2011-01-22 00:50:20.000000000 +0100
-***************
-*** 4537,4542 ****
---- 4537,4549 ----
- ;
- #endif
- }
-+ #ifdef FEAT_CONCEAL
-+ if (!vim_isprintc_strict(*conceal_char))
-+ {
-+ EMSG(_("E844: invalid cchar value"));
-+ return NULL;
-+ }
-+ #endif
- arg = skipwhite(arg + 7);
- }
- else
-*** ../vim-7.3.103/src/version.c 2011-01-22 00:11:42.000000000 +0100
---- src/version.c 2011-01-22 00:54:56.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 104,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-132. You come back and check this list every half-hour.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.105
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.105
-Problem: Can't get the value of "b:changedtick" with getbufvar().
-Solution: Make it work. (Christian Brabandt)
-Files: src/eval.c
-
-
-*** ../vim-7.3.104/src/eval.c 2011-01-17 20:08:03.000000000 +0100
---- src/eval.c 2011-01-22 01:10:42.000000000 +0100
-***************
-*** 10866,10871 ****
---- 10866,10876 ----
-
- if (*varname == '&') /* buffer-local-option */
- get_option_tv(&varname, rettv, TRUE);
-+ else if (STRCMP(varname, "changedtick") == 0)
-+ {
-+ rettv->v_type = VAR_NUMBER;
-+ rettv->vval.v_number = curbuf->b_changedtick;
-+ }
- else
- {
- if (*varname == NUL)
-*** ../vim-7.3.104/src/version.c 2011-01-22 00:58:15.000000000 +0100
---- src/version.c 2011-01-22 01:13:19.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 105,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-133. You communicate with people on other continents more than you
- do with your own neighbors.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.106
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.106
-Problem: When 'cursorbind' is set another window may scroll unexpectedly
- when 'scrollbind' is also set. (Xavier Wang)
-Solution: Don't call update_topline() if 'scrollbind' is set.
-Files: src/move.c
-
-
-*** ../vim-7.3.105/src/move.c 2010-08-15 21:57:29.000000000 +0200
---- src/move.c 2011-01-22 20:58:50.000000000 +0100
-***************
-*** 2882,2890 ****
- if (has_mbyte)
- mb_adjust_cursor();
- # endif
--
- redraw_later(VALID);
-! update_topline();
- # ifdef FEAT_WINDOWS
- curwin->w_redr_status = TRUE;
- # endif
---- 2882,2892 ----
- if (has_mbyte)
- mb_adjust_cursor();
- # endif
- redraw_later(VALID);
-!
-! /* Only scroll when 'scrollbind' hasn't done this. */
-! if (!curwin->w_p_scb)
-! update_topline();
- # ifdef FEAT_WINDOWS
- curwin->w_redr_status = TRUE;
- # endif
-*** ../vim-7.3.105/src/version.c 2011-01-22 01:13:33.000000000 +0100
---- src/version.c 2011-01-22 21:03:21.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 106,
- /**/
-
---
-Never eat yellow snow.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.107
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.107
-Problem: Year number for :undolist can be confused with month or day.
-Solution: Change "%y" to "%Y".
-Files: src/undo.c
-
-
-*** ../vim-7.3.106/src/undo.c 2011-01-22 00:11:42.000000000 +0100
---- src/undo.c 2011-01-22 00:03:58.000000000 +0100
-***************
-*** 2884,2890 ****
- (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
---- 2884,2890 ----
- (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.106/src/version.c 2011-01-22 21:05:02.000000000 +0100
---- src/version.c 2011-01-22 21:24:07.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 107,
- /**/
-
---
-"The sun oozed over the horizon, shoved aside darkness, crept along the
-greensward, and, with sickly fingers, pushed through the castle window,
-revealing the pillaged princess, hand at throat, crown asunder, gaping
-in frenzied horror at the sated, sodden amphibian lying beside her,
-disbelieving the magnitude of the frog's deception, screaming madly,
-"You lied!"
- - Winner of the Bulwer-Lytton contest (San Jose State University),
- wherein one writes only the first line of a bad novel
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.108
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.108
-Problem: Useless check for NULL when calling vim_free().
-Solution: Remove the check. (Dominique Pelle)
-Files: src/eval.c, src/ex_cmds.c, src/os_win32.c
-
-
-*** ../vim-7.3.107/src/eval.c 2011-01-22 01:13:33.000000000 +0100
---- src/eval.c 2011-01-30 21:37:53.000000000 +0100
-***************
-*** 5106,5114 ****
- else
- ret = OK;
- }
-!
-! if (alias != NULL)
-! vim_free(alias);
- }
-
- *arg = skipwhite(*arg);
---- 5106,5112 ----
- else
- ret = OK;
- }
-! vim_free(alias);
- }
-
- *arg = skipwhite(*arg);
-***************
-*** 19807,19813 ****
- EMSG2(_("E704: Funcref variable name must start with a capital: %s"), name);
- return;
- }
-! /* Don't allow hiding a function. When "v" is not NULL we migth be
- * assigning another function to the same var, the type is checked
- * below. */
- if (v == NULL && function_exists(name))
---- 19805,19811 ----
- EMSG2(_("E704: Funcref variable name must start with a capital: %s"), name);
- return;
- }
-! /* Don't allow hiding a function. When "v" is not NULL we might be
- * assigning another function to the same var, the type is checked
- * below. */
- if (v == NULL && function_exists(name))
-*** ../vim-7.3.107/src/ex_cmds.c 2010-12-17 18:06:00.000000000 +0100
---- src/ex_cmds.c 2011-01-30 21:37:53.000000000 +0100
-***************
-*** 5412,5418 ****
- vir_T *virp;
- int force;
- {
-! if (old_sub != NULL && force)
- vim_free(old_sub);
- if (force || old_sub == NULL)
- old_sub = viminfo_readstring(virp, 1, TRUE);
---- 5412,5418 ----
- vir_T *virp;
- int force;
- {
-! if (force)
- vim_free(old_sub);
- if (force || old_sub == NULL)
- old_sub = viminfo_readstring(virp, 1, TRUE);
-*** ../vim-7.3.107/src/os_win32.c 2010-12-17 20:23:56.000000000 +0100
---- src/os_win32.c 2011-01-30 21:37:53.000000000 +0100
-***************
-*** 1886,1893 ****
- cb->BufferSize.X = cb->Info.dwSize.X;
- cb->BufferSize.Y = cb->Info.dwSize.Y;
- NumCells = cb->BufferSize.X * cb->BufferSize.Y;
-! if (cb->Buffer != NULL)
-! vim_free(cb->Buffer);
- cb->Buffer = (PCHAR_INFO)alloc(NumCells * sizeof(CHAR_INFO));
- if (cb->Buffer == NULL)
- return FALSE;
---- 1886,1892 ----
- cb->BufferSize.X = cb->Info.dwSize.X;
- cb->BufferSize.Y = cb->Info.dwSize.Y;
- NumCells = cb->BufferSize.X * cb->BufferSize.Y;
-! vim_free(cb->Buffer);
- cb->Buffer = (PCHAR_INFO)alloc(NumCells * sizeof(CHAR_INFO));
- if (cb->Buffer == NULL)
- return FALSE;
-*** ../vim-7.3.107/src/version.c 2011-01-22 21:25:07.000000000 +0100
---- src/version.c 2011-02-01 13:47:07.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 108,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-173. You keep tracking down the email addresses of all your friends
- (even childhood friends).
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.109
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.109
-Problem: Processing new Esperanto spell file fails and crashes Vim.
- (Dominique Pelle)
-Solution: When running out of memory give an error. Handle '?' in
- COMPOUNDRULE properly.
-Files: src/spell.c
-
-
-*** ../vim-7.3.108/src/spell.c 2010-12-17 18:06:00.000000000 +0100
---- src/spell.c 2011-02-01 13:43:52.000000000 +0100
-***************
-*** 3634,3640 ****
- }
-
- /* Add all flags to "sl_compallflags". */
-! if (vim_strchr((char_u *)"+*[]/", c) == NULL
- && !byte_in_str(slang->sl_compallflags, c))
- {
- *ap++ = c;
---- 3634,3640 ----
- }
-
- /* Add all flags to "sl_compallflags". */
-! if (vim_strchr((char_u *)"?*+[]/", c) == NULL
- && !byte_in_str(slang->sl_compallflags, c))
- {
- *ap++ = c;
-***************
-*** 3664,3670 ****
- /* Copy flag to "sl_comprules", unless we run into a wildcard. */
- if (crp != NULL)
- {
-! if (c == '+' || c == '*')
- {
- vim_free(slang->sl_comprules);
- slang->sl_comprules = NULL;
---- 3664,3670 ----
- /* Copy flag to "sl_comprules", unless we run into a wildcard. */
- if (crp != NULL)
- {
-! if (c == '?' || c == '+' || c == '*')
- {
- vim_free(slang->sl_comprules);
- slang->sl_comprules = NULL;
-***************
-*** 3682,3689 ****
- }
- else /* normal char, "[abc]" and '*' are copied as-is */
- {
-! if (c == '+' || c == '~')
-! *pp++ = '\\'; /* "a+" becomes "a\+" */
- #ifdef FEAT_MBYTE
- if (enc_utf8)
- pp += mb_char2bytes(c, pp);
---- 3682,3689 ----
- }
- else /* normal char, "[abc]" and '*' are copied as-is */
- {
-! if (c == '?' || c == '+' || c == '~')
-! *pp++ = '\\'; /* "a?" becomes "a\?", "a+" becomes "a\+" */
- #ifdef FEAT_MBYTE
- if (enc_utf8)
- pp += mb_char2bytes(c, pp);
-***************
-*** 4951,4956 ****
---- 4951,4958 ----
-
- sblock_T *si_blocks; /* memory blocks used */
- long si_blocks_cnt; /* memory blocks allocated */
-+ int si_did_emsg; /* TRUE when ran out of memory */
-+
- long si_compress_cnt; /* words to add before lowering
- compression limit */
- wordnode_T *si_first_free; /* List of nodes that have been freed during
-***************
-*** 5477,5497 ****
- }
- else if (is_aff_rule(items, itemcnt, "COMPOUNDRULE", 2))
- {
-! /* Concatenate this string to previously defined ones, using a
-! * slash to separate them. */
-! l = (int)STRLEN(items[1]) + 1;
-! if (compflags != NULL)
-! l += (int)STRLEN(compflags) + 1;
-! p = getroom(spin, l, FALSE);
-! if (p != NULL)
- {
- if (compflags != NULL)
- {
-! STRCPY(p, compflags);
-! STRCAT(p, "/");
- }
-- STRCAT(p, items[1]);
-- compflags = p;
- }
- }
- else if (is_aff_rule(items, itemcnt, "COMPOUNDWORDMAX", 2)
---- 5479,5503 ----
- }
- else if (is_aff_rule(items, itemcnt, "COMPOUNDRULE", 2))
- {
-! /* Don't use the first rule if it is a number. */
-! if (compflags != NULL || *skipdigits(items[1]) != NUL)
- {
-+ /* Concatenate this string to previously defined ones,
-+ * using a slash to separate them. */
-+ l = (int)STRLEN(items[1]) + 1;
- if (compflags != NULL)
-+ l += (int)STRLEN(compflags) + 1;
-+ p = getroom(spin, l, FALSE);
-+ if (p != NULL)
- {
-! if (compflags != NULL)
-! {
-! STRCPY(p, compflags);
-! STRCAT(p, "/");
-! }
-! STRCAT(p, items[1]);
-! compflags = p;
- }
- }
- }
- else if (is_aff_rule(items, itemcnt, "COMPOUNDWORDMAX", 2)
-***************
-*** 6291,6297 ****
-
- for (p = compflags; *p != NUL; )
- {
-! if (vim_strchr((char_u *)"/*+[]", *p) != NULL)
- /* Copy non-flag characters directly. */
- *tp++ = *p++;
- else
---- 6297,6303 ----
-
- for (p = compflags; *p != NUL; )
- {
-! if (vim_strchr((char_u *)"/?*+[]", *p) != NULL)
- /* Copy non-flag characters directly. */
- *tp++ = *p++;
- else
-***************
-*** 6320,6326 ****
- {
- check_renumber(spin);
- id = spin->si_newcompID--;
-! } while (vim_strchr((char_u *)"/+*[]\\-^", id) != NULL);
- ci->ci_newID = id;
- hash_add(&aff->af_comp, ci->ci_key);
- }
---- 6326,6332 ----
- {
- check_renumber(spin);
- id = spin->si_newcompID--;
-! } while (vim_strchr((char_u *)"/?*+[]\\-^", id) != NULL);
- ci->ci_newID = id;
- hash_add(&aff->af_comp, ci->ci_key);
- }
-***************
-*** 7364,7373 ****
-
- if (bl == NULL || bl->sb_used + len > SBLOCKSIZE)
- {
-! /* Allocate a block of memory. This is not freed until much later. */
-! bl = (sblock_T *)alloc_clear((unsigned)(sizeof(sblock_T) + SBLOCKSIZE));
- if (bl == NULL)
- return NULL;
- bl->sb_next = spin->si_blocks;
- spin->si_blocks = bl;
- bl->sb_used = 0;
---- 7370,7390 ----
-
- if (bl == NULL || bl->sb_used + len > SBLOCKSIZE)
- {
-! if (len >= SBLOCKSIZE)
-! bl = NULL;
-! else
-! /* Allocate a block of memory. It is not freed until much later. */
-! bl = (sblock_T *)alloc_clear(
-! (unsigned)(sizeof(sblock_T) + SBLOCKSIZE));
- if (bl == NULL)
-+ {
-+ if (!spin->si_did_emsg)
-+ {
-+ EMSG(_("E845: Insufficient memory, word list will be incomplete"));
-+ spin->si_did_emsg = TRUE;
-+ }
- return NULL;
-+ }
- bl->sb_next = spin->si_blocks;
- spin->si_blocks = bl;
- bl->sb_used = 0;
-***************
-*** 7382,7387 ****
---- 7399,7405 ----
-
- /*
- * Make a copy of a string into memory allocated with getroom().
-+ * Returns NULL when out of memory.
- */
- static char_u *
- getroom_save(spin, s)
-***************
-*** 7416,7421 ****
---- 7434,7440 ----
-
- /*
- * Allocate the root of a word tree.
-+ * Returns NULL when out of memory.
- */
- static wordnode_T *
- wordtree_alloc(spin)
-***************
-*** 7700,7705 ****
---- 7719,7725 ----
- /*
- * Get a wordnode_T, either from the list of previously freed nodes or
- * allocate a new one.
-+ * Returns NULL when out of memory.
- */
- static wordnode_T *
- get_wordnode(spin)
-***************
-*** 7717,7723 ****
- --spin->si_free_count;
- }
- #ifdef SPELL_PRINTTREE
-! n->wn_nr = ++spin->si_wordnode_nr;
- #endif
- return n;
- }
---- 7737,7744 ----
- --spin->si_free_count;
- }
- #ifdef SPELL_PRINTTREE
-! if (n != NULL)
-! n->wn_nr = ++spin->si_wordnode_nr;
- #endif
- return n;
- }
-*** ../vim-7.3.108/src/version.c 2011-02-01 13:48:47.000000000 +0100
---- src/version.c 2011-02-01 13:56:38.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 109,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-174. You know what a listserv is.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.110
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.110
-Problem: The "nbsp" item in 'listchars' isn't used for ":list".
-Solution: Make it work. (Christian Brabandt)
-Files: src/message.c
-
-
-*** ../vim-7.3.109/src/message.c 2011-01-17 20:08:03.000000000 +0100
---- src/message.c 2011-02-01 17:06:21.000000000 +0100
-***************
-*** 1637,1644 ****
- else if (has_mbyte && (l = (*mb_ptr2len)(s)) > 1)
- {
- col += (*mb_ptr2cells)(s);
-! mch_memmove(buf, s, (size_t)l);
-! buf[l] = NUL;
- msg_puts(buf);
- s += l;
- continue;
---- 1637,1652 ----
- else if (has_mbyte && (l = (*mb_ptr2len)(s)) > 1)
- {
- col += (*mb_ptr2cells)(s);
-! if (lcs_nbsp != NUL && list && mb_ptr2char(s) == 160)
-! {
-! mb_char2bytes(lcs_nbsp, buf);
-! buf[(*mb_ptr2len)(buf)] = NUL;
-! }
-! else
-! {
-! mch_memmove(buf, s, (size_t)l);
-! buf[l] = NUL;
-! }
- msg_puts(buf);
- s += l;
- continue;
-***************
-*** 1664,1669 ****
---- 1672,1682 ----
- attr = hl_attr(HLF_8);
- }
- }
-+ else if (c == 160 && list && lcs_nbsp != NUL)
-+ {
-+ c = lcs_nbsp;
-+ attr = hl_attr(HLF_8);
-+ }
- else if (c == NUL && list && lcs_eol != NUL)
- {
- p_extra = (char_u *)"";
-*** ../vim-7.3.109/src/version.c 2011-02-01 13:59:44.000000000 +0100
---- src/version.c 2011-02-01 17:08:31.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 110,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-176. You lie, even to user-friends, about how long you were online yesterday.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.111
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.111 (after 7.3.100)
-Problem: Executing a :normal command in 'statusline' evaluation causes the
- cursor to move. (Dominique Pelle)
-Solution: When updating the cursor for 'cursorbind' allow the cursor beyond
- the end of the line. When evaluating 'statusline' temporarily
- reset 'cursorbind'.
-Files: src/move.c, src/screen.c
-
-
-*** ../vim-7.3.110/src/move.c 2011-01-22 21:05:02.000000000 +0100
---- src/move.c 2011-02-01 17:36:10.000000000 +0100
-***************
-*** 2846,2851 ****
---- 2846,2852 ----
- colnr_T col = curwin->w_cursor.col;
- win_T *old_curwin = curwin;
- buf_T *old_curbuf = curbuf;
-+ int restart_edit_save;
- # ifdef FEAT_VISUAL
- int old_VIsual_select = VIsual_select;
- int old_VIsual_active = VIsual_active;
-***************
-*** 2875,2882 ****
- curwin->w_cursor.lnum = line;
- curwin->w_cursor.col = col;
-
-! /* Make sure the cursor is in a valid position. */
- check_cursor();
- # ifdef FEAT_MBYTE
- /* Correct cursor for multi-byte character. */
- if (has_mbyte)
---- 2876,2887 ----
- curwin->w_cursor.lnum = line;
- curwin->w_cursor.col = col;
-
-! /* Make sure the cursor is in a valid position. Temporarily set
-! * "restart_edit" to allow the cursor to be beyond the EOL. */
-! restart_edit_save = restart_edit;
-! restart_edit = TRUE;
- check_cursor();
-+ restart_edit = restart_edit_save;
- # ifdef FEAT_MBYTE
- /* Correct cursor for multi-byte character. */
- if (has_mbyte)
-*** ../vim-7.3.110/src/screen.c 2010-12-30 14:57:03.000000000 +0100
---- src/screen.c 2011-02-01 17:45:45.000000000 +0100
-***************
-*** 6435,6440 ****
---- 6435,6442 ----
- struct stl_hlrec hltab[STL_MAX_ITEM];
- struct stl_hlrec tabtab[STL_MAX_ITEM];
- int use_sandbox = FALSE;
-+ win_T *ewp;
-+ int p_crb_save;
-
- /* setup environment for the task at hand */
- if (wp == NULL)
-***************
-*** 6513,6526 ****
- if (maxwidth <= 0)
- return;
-
- /* Make a copy, because the statusline may include a function call that
- * might change the option value and free the memory. */
- stl = vim_strsave(stl);
-! width = build_stl_str_hl(wp == NULL ? curwin : wp,
-! buf, sizeof(buf),
- stl, use_sandbox,
- fillchar, maxwidth, hltab, tabtab);
- vim_free(stl);
-
- /* Make all characters printable. */
- p = transstr(buf);
---- 6515,6534 ----
- if (maxwidth <= 0)
- return;
-
-+ /* Temporarily reset 'cursorbind', we don't want a side effect from moving
-+ * the cursor away and back. */
-+ ewp = wp == NULL ? curwin : wp;
-+ p_crb_save = ewp->w_p_crb;
-+ ewp->w_p_crb = FALSE;
-+
- /* Make a copy, because the statusline may include a function call that
- * might change the option value and free the memory. */
- stl = vim_strsave(stl);
-! width = build_stl_str_hl(ewp, buf, sizeof(buf),
- stl, use_sandbox,
- fillchar, maxwidth, hltab, tabtab);
- vim_free(stl);
-+ ewp->w_p_crb = p_crb_save;
-
- /* Make all characters printable. */
- p = transstr(buf);
-*** ../vim-7.3.110/src/version.c 2011-02-01 17:12:20.000000000 +0100
---- src/version.c 2011-02-01 18:00:14.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 111,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-177. You log off of your system because it's time to go to work.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.112
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.112
-Problem: Setting 'statusline' to "%!'asdf%' reads uninitialized memory.
-Solution: Check for NUL after %.
-Files: src/buffer.c
-
-
-*** ../vim-7.3.111/src/buffer.c 2010-10-27 16:17:56.000000000 +0200
---- src/buffer.c 2011-02-01 21:40:17.000000000 +0100
-***************
-*** 3364,3370 ****
- * or truncated if too long, fillchar is used for all whitespace.
- */
- int
-! build_stl_str_hl(wp, out, outlen, fmt, use_sandbox, fillchar, maxwidth, hltab, tabtab)
- win_T *wp;
- char_u *out; /* buffer to write into != NameBuff */
- size_t outlen; /* length of out[] */
---- 3364,3371 ----
- * or truncated if too long, fillchar is used for all whitespace.
- */
- int
-! build_stl_str_hl(wp, out, outlen, fmt, use_sandbox, fillchar,
-! maxwidth, hltab, tabtab)
- win_T *wp;
- char_u *out; /* buffer to write into != NameBuff */
- size_t outlen; /* length of out[] */
-***************
-*** 3474,3479 ****
---- 3475,3482 ----
- * Handle one '%' item.
- */
- s++;
-+ if (*s == NUL) /* ignore trailing % */
-+ break;
- if (*s == '%')
- {
- if (p + 1 >= out + outlen)
-*** ../vim-7.3.111/src/version.c 2011-02-01 18:01:06.000000000 +0100
---- src/version.c 2011-02-01 21:54:01.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 112,
- /**/
-
---
-Rule #1: Don't give somebody a tool that he's going to hurt himself with.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.113
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.113
-Problem: Windows: Fall back directory for creating temp file is wrong.
-Solution: Use "." instead of empty string. (Hong Xu)
-Files: src/fileio.c
-
-
-*** ../vim-7.3.112/src/fileio.c 2011-01-17 20:08:03.000000000 +0100
---- src/fileio.c 2011-02-06 13:14:25.000000000 +0100
-***************
-*** 7459,7465 ****
-
- STRCPY(itmp, "");
- if (GetTempPath(_MAX_PATH, szTempFile) == 0)
-! szTempFile[0] = NUL; /* GetTempPath() failed, use current dir */
- strcpy(buf4, "VIM");
- buf4[2] = extra_char; /* make it "VIa", "VIb", etc. */
- if (GetTempFileName(szTempFile, buf4, 0, itmp) == 0)
---- 7459,7468 ----
-
- STRCPY(itmp, "");
- if (GetTempPath(_MAX_PATH, szTempFile) == 0)
-! {
-! szTempFile[0] = '.'; /* GetTempPath() failed, use current dir */
-! szTempFile[1] = NUL;
-! }
- strcpy(buf4, "VIM");
- buf4[2] = extra_char; /* make it "VIa", "VIb", etc. */
- if (GetTempFileName(szTempFile, buf4, 0, itmp) == 0)
-*** ../vim-7.3.112/src/version.c 2011-02-01 21:54:56.000000000 +0100
---- src/version.c 2011-02-09 14:46:12.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 113,
- /**/
-
---
-'Psychologist' -- Someone who looks at everyone else when
-an attractive woman enters the room.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.114
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.114
-Problem: Potential problem in initialization when giving an error message
- early.
-Solution: Initialize 'verbosefile' empty. (Ben Schmidt)
-Files: src/option.h
-
-
-*** ../vim-7.3.113/src/option.h 2010-12-02 16:01:23.000000000 +0100
---- src/option.h 2011-02-09 15:37:36.000000000 +0100
-***************
-*** 854,860 ****
---- 854,864 ----
- # define VE_ONEMORE 8
- #endif
- EXTERN long p_verbose; /* 'verbose' */
-+ #ifdef IN_OPTION_C
-+ char_u *p_vfile = (char_u *)""; /* used before options are initialized */
-+ #else
- EXTERN char_u *p_vfile; /* 'verbosefile' */
-+ #endif
- EXTERN int p_warn; /* 'warn' */
- #ifdef FEAT_CMDL_COMPL
- EXTERN char_u *p_wop; /* 'wildoptions' */
-*** ../vim-7.3.113/src/version.c 2011-02-09 14:46:58.000000000 +0100
---- src/version.c 2011-02-09 15:46:17.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 114,
- /**/
-
---
-From the classified section of a city newspaper:
-Dog for sale: eats anything and is fond of children.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.115
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.115
-Problem: Vim can crash when tmpnam() returns NULL.
-Solution: Check for NULL. (Hong Xu)
-Files: src/fileio.c
-
-
-*** ../vim-7.3.114/src/fileio.c 2011-02-09 14:46:58.000000000 +0100
---- src/fileio.c 2011-02-09 16:14:35.000000000 +0100
-***************
-*** 7483,7490 ****
- # else /* WIN3264 */
-
- # ifdef USE_TMPNAM
- /* tmpnam() will make its own name */
-! if (*tmpnam((char *)itmp) == NUL)
- return NULL;
- # else
- char_u *p;
---- 7483,7493 ----
- # else /* WIN3264 */
-
- # ifdef USE_TMPNAM
-+ char_u *p;
-+
- /* tmpnam() will make its own name */
-! p = tmpnam((char *)itmp);
-! if (p == NULL || *p == NUL)
- return NULL;
- # else
- char_u *p;
-*** ../vim-7.3.114/src/version.c 2011-02-09 15:59:32.000000000 +0100
---- src/version.c 2011-02-09 16:44:11.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 115,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-218. Your spouse hands you a gift wrapped magnet with your PC's name
- on it and you accuse him or her of genocide.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.116
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.116
-Problem: 'cursorline' is displayed too short when there are concealed
- characters and 'list' is set. (Dennis Preiser)
-Solution: Check for 'cursorline' when 'list' is set. (Christian Brabandt)
-Files: src/screen.c
-
-
-*** ../vim-7.3.115/src/screen.c 2011-02-01 18:01:06.000000000 +0100
---- src/screen.c 2011-02-09 16:59:28.000000000 +0100
-***************
-*** 5099,5105 ****
- #ifdef FEAT_DIFF
- || filler_todo > 0
- #endif
-! || (wp->w_p_list && lcs_eol != NUL && p_extra != at_end_str)
- || (n_extra != 0 && (c_extra != NUL || *p_extra != NUL)))
- )
- {
---- 5099,5109 ----
- #ifdef FEAT_DIFF
- || filler_todo > 0
- #endif
-! || (wp->w_p_list && lcs_eol != NUL && p_extra != at_end_str
-! #ifdef FEAT_SYN_HL
-! && !wp->w_p_cul
-! #endif
-! )
- || (n_extra != 0 && (c_extra != NUL || *p_extra != NUL)))
- )
- {
-*** ../vim-7.3.115/src/version.c 2011-02-09 16:44:45.000000000 +0100
---- src/version.c 2011-02-09 17:08:58.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 116,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-219. Your spouse has his or her lawyer deliver the divorce papers...
- via e-mail.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.117
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.117
-Problem: On some systems --as-needed does not work, because the "tinfo"
- library is included indirectly from "ncurses". (Charles Campbell)
-Solution: In configure prefer using "tinfo" instead of "ncurses".
-Files: src/configure.in, src/auto/configure
-
-
-*** ../vim-7.3.116/src/configure.in 2010-11-16 19:25:56.000000000 +0100
---- src/configure.in 2011-02-09 17:28:16.000000000 +0100
-***************
-*** 2618,2630 ****
- AC_MSG_RESULT([empty: automatic terminal library selection])
- dnl On HP-UX 10.10 termcap or termlib should be used instead of
- dnl curses, because curses is much slower.
-! dnl Newer versions of ncurses are preferred over anything.
- dnl Older versions of ncurses have bugs, get a new one!
- dnl Digital Unix (OSF1) should use curses (Ronald Schild).
- dnl On SCO Openserver should prefer termlib (Roger Cornelius).
- case "`uname -s 2>/dev/null`" in
-! OSF1|SCO_SV) tlibs="ncurses curses termlib termcap";;
-! *) tlibs="ncurses termlib termcap curses";;
- esac
- for libname in $tlibs; do
- AC_CHECK_LIB(${libname}, tgetent,,)
---- 2618,2631 ----
- AC_MSG_RESULT([empty: automatic terminal library selection])
- dnl On HP-UX 10.10 termcap or termlib should be used instead of
- dnl curses, because curses is much slower.
-! dnl Newer versions of ncurses are preferred over anything, except
-! dnl when tinfo has been split off, it conains all we need.
- dnl Older versions of ncurses have bugs, get a new one!
- dnl Digital Unix (OSF1) should use curses (Ronald Schild).
- dnl On SCO Openserver should prefer termlib (Roger Cornelius).
- case "`uname -s 2>/dev/null`" in
-! OSF1|SCO_SV) tlibs="tinfo ncurses curses termlib termcap";;
-! *) tlibs="tinfo ncurses termlib termcap curses";;
- esac
- for libname in $tlibs; do
- AC_CHECK_LIB(${libname}, tgetent,,)
-*** ../vim-7.3.116/src/auto/configure 2010-11-16 19:25:56.000000000 +0100
---- src/auto/configure 2011-02-09 17:29:13.000000000 +0100
-***************
-*** 9886,9894 ****
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: empty: automatic terminal library selection" >&5
- $as_echo "empty: automatic terminal library selection" >&6; }
-! case "`uname -s 2>/dev/null`" in
-! OSF1|SCO_SV) tlibs="ncurses curses termlib termcap";;
-! *) tlibs="ncurses termlib termcap curses";;
- esac
- for libname in $tlibs; do
- as_ac_Lib=`$as_echo "ac_cv_lib_${libname}''_tgetent" | $as_tr_sh`
---- 9886,9894 ----
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: empty: automatic terminal library selection" >&5
- $as_echo "empty: automatic terminal library selection" >&6; }
-! case "`uname -s 2>/dev/null`" in
-! OSF1|SCO_SV) tlibs="tinfo ncurses curses termlib termcap";;
-! *) tlibs="tinfo ncurses termlib termcap curses";;
- esac
- for libname in $tlibs; do
- as_ac_Lib=`$as_echo "ac_cv_lib_${libname}''_tgetent" | $as_tr_sh`
-*** ../vim-7.3.116/src/version.c 2011-02-09 17:09:26.000000000 +0100
---- src/version.c 2011-02-09 17:41:37.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 117,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-220. Your wife asks for sex and you tell her where to find you on IRC.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.118
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.118
-Problem: Ruby uses SIGVTALARM which makes Vim exit. (Alec Tica)
-Solution: Ignore SIGVTALARM. (Dominique Pelle)
-Files: src/os_unix.c
-
-
-*** ../vim-7.3.117/src/os_unix.c 2010-12-17 16:27:10.000000000 +0100
---- src/os_unix.c 2011-02-09 18:19:57.000000000 +0100
-***************
-*** 283,289 ****
- #ifdef SIGTERM
- {SIGTERM, "TERM", TRUE},
- #endif
-! #ifdef SIGVTALRM
- {SIGVTALRM, "VTALRM", TRUE},
- #endif
- #if defined(SIGPROF) && !defined(FEAT_MZSCHEME) && !defined(WE_ARE_PROFILING)
---- 283,289 ----
- #ifdef SIGTERM
- {SIGTERM, "TERM", TRUE},
- #endif
-! #if defined(SIGVTALRM) && !defined(FEAT_RUBY)
- {SIGVTALRM, "VTALRM", TRUE},
- #endif
- #if defined(SIGPROF) && !defined(FEAT_MZSCHEME) && !defined(WE_ARE_PROFILING)
-***************
-*** 1107,1113 ****
- * On Linux, signal is not always handled immediately either.
- * See https://bugs.launchpad.net/bugs/291373
- *
-! * volatile because it is used in in signal handler sigcont_handler().
- */
- static volatile int sigcont_received;
- static RETSIGTYPE sigcont_handler __ARGS(SIGPROTOARG);
---- 1107,1113 ----
- * On Linux, signal is not always handled immediately either.
- * See https://bugs.launchpad.net/bugs/291373
- *
-! * volatile because it is used in signal handler sigcont_handler().
- */
- static volatile int sigcont_received;
- static RETSIGTYPE sigcont_handler __ARGS(SIGPROTOARG);
-*** ../vim-7.3.117/src/version.c 2011-02-09 17:42:53.000000000 +0100
---- src/version.c 2011-02-09 18:46:53.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 118,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-221. Your wife melts your keyboard in the oven.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.1
-Fcc: 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.119
-Problem: Build problem on Mac. (Nicholas Stallard)
-Solution: Use "extern" instead of "EXTERN" for p_vfile.
-Files: src/option.h
-
-
-*** ../vim-7.3.118/src/option.h 2011-02-09 15:59:32.000000000 +0100
---- src/option.h 2011-02-12 13:56:50.000000000 +0100
-***************
-*** 857,863 ****
- #ifdef IN_OPTION_C
- char_u *p_vfile = (char_u *)""; /* used before options are initialized */
- #else
-! EXTERN char_u *p_vfile; /* 'verbosefile' */
- #endif
- EXTERN int p_warn; /* 'warn' */
- #ifdef FEAT_CMDL_COMPL
---- 857,863 ----
- #ifdef IN_OPTION_C
- char_u *p_vfile = (char_u *)""; /* used before options are initialized */
- #else
-! extern char_u *p_vfile; /* 'verbosefile' */
- #endif
- EXTERN int p_warn; /* 'warn' */
- #ifdef FEAT_CMDL_COMPL
-*** ../vim-7.3.118/src/version.c 2011-02-09 18:47:36.000000000 +0100
---- src/version.c 2011-02-12 13:59:41.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 119,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-237. You tattoo your email address on your forehead.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.120
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.120
-Problem: The message for an existing swap file is too long to fit in a 25
- line terminal.
-Solution: Make the message shorter. (Chad Miller)
-Files: src/memline.c
-
-
-*** ../vim-7.3.119/src/memline.c 2011-01-17 20:08:03.000000000 +0100
---- src/memline.c 2011-02-13 14:18:08.000000000 +0100
-***************
-*** 4071,4079 ****
- }
- /* Some of these messages are long to allow translation to
- * other languages. */
-! MSG_PUTS(_("\n(1) Another program may be editing the same file.\n If this is the case, be careful not to end up with two\n different instances of the same file when making changes.\n"));
-! MSG_PUTS(_(" Quit, or continue with caution.\n"));
-! MSG_PUTS(_("\n(2) An edit session for this file crashed.\n"));
- MSG_PUTS(_(" If this is the case, use \":recover\" or \"vim -r "));
- msg_outtrans(buf->b_fname);
- MSG_PUTS(_("\"\n to recover the changes (see \":help recovery\").\n"));
---- 4071,4079 ----
- }
- /* Some of these messages are long to allow translation to
- * other languages. */
-! MSG_PUTS(_("\n(1) Another program may be editing the same file. If this is the case,\n be careful not to end up with two different instances of the same\n file when making changes."));
-! MSG_PUTS(_(" Quit, or continue with caution.\n"));
-! MSG_PUTS(_("(2) An edit session for this file crashed.\n"));
- MSG_PUTS(_(" If this is the case, use \":recover\" or \"vim -r "));
- msg_outtrans(buf->b_fname);
- MSG_PUTS(_("\"\n to recover the changes (see \":help recovery\").\n"));
-*** ../vim-7.3.119/src/version.c 2011-02-12 13:59:55.000000000 +0100
---- src/version.c 2011-02-15 11:56:14.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 120,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-257. Your "hundred-and-one" lists include well over 101 items, since you
- automatically interpret all numbers in hexadecimal notation.
- (hex 101 = decimal 257)
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.121
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.121
-Problem: Complicated 'statusline' causes a crash. (Christian Brabandt)
-Solution: Check that the number of items is not too big.
-Files: src/buffer.c
-
-
-*** ../vim-7.3.120/src/buffer.c 2011-02-01 21:54:56.000000000 +0100
---- src/buffer.c 2011-02-15 14:00:51.000000000 +0100
-***************
-*** 3460,3465 ****
---- 3461,3478 ----
- prevchar_isitem = FALSE;
- for (s = usefmt; *s; )
- {
-+ if (curitem == STL_MAX_ITEM)
-+ {
-+ /* There are too many items. Add the error code to the statusline
-+ * to give the user a hint about what went wrong. */
-+ if (p + 6 < out + outlen)
-+ {
-+ mch_memmove(p, " E541", (size_t)5);
-+ p += 5;
-+ }
-+ break;
-+ }
-+
- if (*s != NUL && *s != '%')
- prevchar_isflag = prevchar_isitem = FALSE;
-
-*** ../vim-7.3.120/src/version.c 2011-02-15 11:56:56.000000000 +0100
---- src/version.c 2011-02-15 14:23:39.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 121,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-265. Your reason for not staying in touch with family is that
- they do not have e-mail addresses.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.122
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.122
-Problem: Having auto/config.mk in the repository causes problems.
-Solution: Remove auto/config.mk from the distribution. In the toplevel
- Makefile copy it from the "dist" file.
-Files: Makefile, src/Makefile, src/auto/config.mk
-
-
-*** ../vim-7.3.121/Makefile 2010-08-15 21:57:20.000000000 +0200
---- Makefile 2011-02-12 14:28:09.000000000 +0100
-***************
-*** 23,28 ****
---- 23,31 ----
- # has run can result in compiling with $(CC) empty.
-
- first:
-+ @if test ! -f src/auto/config.mk; then \
-+ cp src/config.mk.dist src/auto/config.mk; \
-+ fi
- @echo "Starting make in the src directory."
- @echo "If there are problems, cd to the src directory and run make there"
- cd src && $(MAKE) $@
-***************
-*** 30,35 ****
---- 33,41 ----
- # Some make programs use the last target for the $@ default; put the other
- # targets separately to always let $@ expand to "first" by default.
- all install uninstall tools config configure reconfig proto depend lint tags types test testclean clean distclean:
-+ @if test ! -f src/auto/config.mk; then \
-+ cp src/config.mk.dist src/auto/config.mk; \
-+ fi
- @echo "Starting make in the src directory."
- @echo "If there are problems, cd to the src directory and run make there"
- cd src && $(MAKE) $@
-*** ../vim-7.3.121/src/Makefile 2010-11-03 22:32:18.000000000 +0100
---- src/Makefile 2011-02-15 15:21:37.000000000 +0100
-***************
-*** 283,294 ****
-
- ######################## auto/config.mk ######################## {{{1
- # At this position auto/config.mk is included. When starting from the
-! # distribution it is almost empty. After running auto/configure it contains
-! # settings that have been discovered for your system. Settings below this
-! # include override settings in auto/config.mk!
-!
-! # Note: if auto/config.mk is lost somehow (e.g., because configure was
-! # interrupted), create an empty auto/config.mk file and do "make config".
-
- # (X) How to include auto/config.mk depends on the version of "make" you have,
- # if the current choice doesn't work, try the other one.
---- 283,295 ----
-
- ######################## auto/config.mk ######################## {{{1
- # At this position auto/config.mk is included. When starting from the
-! # toplevel Makefile it is almost empty. After running auto/configure it
-! # contains settings that have been discovered for your system. Settings below
-! # this include override settings in auto/config.mk!
-!
-! # Note: If make fails because auto/config.mk does not exist (it is not
-! # included in the repository), do:
-! # cp config.mk.dist auto/config.mk
-
- # (X) How to include auto/config.mk depends on the version of "make" you have,
- # if the current choice doesn't work, try the other one.
-*** ../vim-7.3.121/src/auto/config.mk 2010-08-16 21:59:00.000000000 +0200
---- src/auto/config.mk 1970-01-01 01:00:00.000000000 +0100
-***************
-*** 1,5 ****
-- the first targets to make vim are: scratch config myself
-- srcdir = .
-- VIMNAME = vim
-- EXNAME = ex
-- VIEWNAME = view
---- 0 ----
-*** ../vim-7.3.121/src/version.c 2011-02-15 14:24:42.000000000 +0100
---- src/version.c 2011-02-15 15:25:07.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 122,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-267. You get an extra phone line so you can get phone calls.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.123
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.123
-Problem: ml_get error when executing register being recorded into, deleting
- lines and 'conceallevel' is set. (ZyX)
-Solution: Don't redraw a line for concealing when it doesn't exist.
-Files: src/main.c
-
-
-*** ../vim-7.3.122/src/main.c 2010-12-17 18:06:00.000000000 +0100
---- src/main.c 2011-02-15 16:09:41.000000000 +0100
-***************
-*** 1198,1204 ****
- || conceal_cursor_line(curwin)
- || need_cursor_line_redraw))
- {
-! if (conceal_old_cursor_line != conceal_new_cursor_line)
- update_single_line(curwin, conceal_old_cursor_line);
- update_single_line(curwin, conceal_new_cursor_line);
- curwin->w_valid &= ~VALID_CROW;
---- 1198,1206 ----
- || conceal_cursor_line(curwin)
- || need_cursor_line_redraw))
- {
-! if (conceal_old_cursor_line != conceal_new_cursor_line
-! && conceal_old_cursor_line
-! <= curbuf->b_ml.ml_line_count)
- update_single_line(curwin, conceal_old_cursor_line);
- update_single_line(curwin, conceal_new_cursor_line);
- curwin->w_valid &= ~VALID_CROW;
-*** ../vim-7.3.122/src/version.c 2011-02-15 15:27:00.000000000 +0100
---- src/version.c 2011-02-15 16:15:28.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 123,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-268. You get up in the morning and go online before getting your coffee.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.124
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.124
-Problem: When writing a file in binary mode it may be missing the final EOL
- if a file previously read was missing the EOL. (Kevin Goodsell)
-Solution: Move the write_no_eol_lnum into the buffer struct.
-Files: src/structs.h, src/fileio.c, src/globals.h, src/os_unix.c
-
-
-*** ../vim-7.3.123/src/structs.h 2010-10-20 21:22:17.000000000 +0200
---- src/structs.h 2011-02-15 17:06:34.000000000 +0100
-***************
-*** 1564,1569 ****
---- 1564,1572 ----
-
- /* end of buffer options */
-
-+ linenr_T b_no_eol_lnum; /* non-zero lnum when last line of next binary
-+ * write should not have an end-of-line */
-+
- int b_start_eol; /* last line had eol when it was read */
- int b_start_ffc; /* first char of 'ff' when edit started */
- #ifdef FEAT_MBYTE
-*** ../vim-7.3.123/src/fileio.c 2011-02-09 16:44:45.000000000 +0100
---- src/fileio.c 2011-02-15 17:30:54.000000000 +0100
-***************
-*** 317,323 ****
- int using_b_fname;
- #endif
-
-! write_no_eol_lnum = 0; /* in case it was set by the previous read */
-
- /*
- * If there is no file name yet, use the one for the read file.
---- 317,323 ----
- int using_b_fname;
- #endif
-
-! curbuf->b_no_eol_lnum = 0; /* in case it was set by the previous read */
-
- /*
- * If there is no file name yet, use the one for the read file.
-***************
-*** 2599,2608 ****
-
- /*
- * Trick: We remember if the last line of the read didn't have
-! * an eol for when writing it again. This is required for
- * ":autocmd FileReadPost *.gz set bin|'[,']!gunzip" to work.
- */
-! write_no_eol_lnum = read_no_eol_lnum;
-
- /* When reloading a buffer put the cursor at the first line that is
- * different. */
---- 2599,2609 ----
-
- /*
- * Trick: We remember if the last line of the read didn't have
-! * an eol even when 'binary' is off, for when writing it again with
-! * 'binary' on. This is required for
- * ":autocmd FileReadPost *.gz set bin|'[,']!gunzip" to work.
- */
-! curbuf->b_no_eol_lnum = read_no_eol_lnum;
-
- /* When reloading a buffer put the cursor at the first line that is
- * different. */
-***************
-*** 2650,2662 ****
- FALSE, NULL, eap);
- if (msg_scrolled == n)
- msg_scroll = m;
-! #ifdef FEAT_EVAL
- if (aborting()) /* autocmds may abort script processing */
- return FAIL;
-! #endif
- }
- #endif
-
- if (recoverymode && error)
- return FAIL;
- return OK;
---- 2651,2667 ----
- FALSE, NULL, eap);
- if (msg_scrolled == n)
- msg_scroll = m;
-! # ifdef FEAT_EVAL
- if (aborting()) /* autocmds may abort script processing */
- return FAIL;
-! # endif
- }
- #endif
-
-+ /* Reset now, following writes should not omit the EOL. Also, the line
-+ * number will become invalid because of edits. */
-+ curbuf->b_no_eol_lnum = 0;
-+
- if (recoverymode && error)
- return FAIL;
- return OK;
-***************
-*** 4560,4566 ****
- if (end == 0
- || (lnum == end
- && write_bin
-! && (lnum == write_no_eol_lnum
- || (lnum == buf->b_ml.ml_line_count && !buf->b_p_eol))))
- {
- ++lnum; /* written the line, count it */
---- 4565,4571 ----
- if (end == 0
- || (lnum == end
- && write_bin
-! && (lnum == buf->b_no_eol_lnum
- || (lnum == buf->b_ml.ml_line_count && !buf->b_p_eol))))
- {
- ++lnum; /* written the line, count it */
-***************
-*** 5086,5093 ****
- {
- aco_save_T aco;
-
-- write_no_eol_lnum = 0; /* in case it was set by the previous read */
--
- /*
- * Apply POST autocommands.
- * Careful: The autocommands may call buf_write() recursively!
---- 5091,5096 ----
-***************
-*** 7256,7263 ****
- write_lnum_adjust(offset)
- linenr_T offset;
- {
-! if (write_no_eol_lnum != 0) /* only if there is a missing eol */
-! write_no_eol_lnum += offset;
- }
-
- #if defined(TEMPDIRNAMES) || defined(PROTO)
---- 7259,7266 ----
- write_lnum_adjust(offset)
- linenr_T offset;
- {
-! if (curbuf->b_no_eol_lnum != 0) /* only if there is a missing eol */
-! curbuf->b_no_eol_lnum += offset;
- }
-
- #if defined(TEMPDIRNAMES) || defined(PROTO)
-*** ../vim-7.3.123/src/globals.h 2010-12-02 21:43:10.000000000 +0100
---- src/globals.h 2011-02-15 17:06:06.000000000 +0100
-***************
-*** 1057,1066 ****
- ;
- #endif
-
-- EXTERN linenr_T write_no_eol_lnum INIT(= 0); /* non-zero lnum when last line
-- of next binary write should
-- not have an end-of-line */
--
- #ifdef FEAT_WINDOWS
- EXTERN int postponed_split INIT(= 0); /* for CTRL-W CTRL-] command */
- EXTERN int postponed_split_flags INIT(= 0); /* args for win_split() */
---- 1057,1062 ----
-*** ../vim-7.3.123/src/os_unix.c 2011-02-09 18:47:36.000000000 +0100
---- src/os_unix.c 2011-02-15 17:07:22.000000000 +0100
-***************
-*** 4245,4251 ****
- * should not have one. */
- if (lnum != curbuf->b_op_end.lnum
- || !curbuf->b_p_bin
-! || (lnum != write_no_eol_lnum
- && (lnum !=
- curbuf->b_ml.ml_line_count
- || curbuf->b_p_eol)))
---- 4245,4251 ----
- * should not have one. */
- if (lnum != curbuf->b_op_end.lnum
- || !curbuf->b_p_bin
-! || (lnum != curbuf->b_no_eol_lnum
- && (lnum !=
- curbuf->b_ml.ml_line_count
- || curbuf->b_p_eol)))
-***************
-*** 4588,4597 ****
- {
- append_ga_line(&ga);
- /* remember that the NL was missing */
-! write_no_eol_lnum = curwin->w_cursor.lnum;
- }
- else
-! write_no_eol_lnum = 0;
- ga_clear(&ga);
- }
-
---- 4588,4597 ----
- {
- append_ga_line(&ga);
- /* remember that the NL was missing */
-! curbuf->b_no_eol_lnum = curwin->w_cursor.lnum;
- }
- else
-! curbuf->b_no_eol_lnum = 0;
- ga_clear(&ga);
- }
-
-*** ../vim-7.3.123/src/version.c 2011-02-15 16:29:54.000000000 +0100
---- src/version.c 2011-02-15 17:37:38.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 124,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-270. You are subscribed to a mailing list for every piece of software
- you use.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.125
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.125
-Problem: MSVC: Problem with quotes in link argument.
-Solution: Escape backslashes and quotes. (Weasley)
-Files: src/Make_mvc.mak
-
-
-*** ../vim-7.3.124/src/Make_mvc.mak 2010-12-08 14:54:58.000000000 +0100
---- src/Make_mvc.mak 2011-02-15 17:55:24.000000000 +0100
-***************
-*** 1159,1164 ****
---- 1159,1168 ----
- E0_CFLAGS = $(CFLAGS:\=\\)
- E_CFLAGS = $(E0_CFLAGS:"=\")
- # ") stop the string
-+ # $LINKARGS2 may contain backslashes and double quotes, escape them both.
-+ E0_LINKARGS2 = $(LINKARGS2:\=\\)
-+ E_LINKARGS2 = $(E0_LINKARGS2:"=\")
-+ # ") stop the string
-
- $(PATHDEF_SRC): auto
- @echo creating $(PATHDEF_SRC)
-***************
-*** 1167,1173 ****
- @echo char_u *default_vim_dir = (char_u *)"$(VIMRCLOC:\=\\)"; >> $(PATHDEF_SRC)
- @echo char_u *default_vimruntime_dir = (char_u *)"$(VIMRUNTIMEDIR:\=\\)"; >> $(PATHDEF_SRC)
- @echo char_u *all_cflags = (char_u *)"$(CC:\=\\) $(E_CFLAGS)"; >> $(PATHDEF_SRC)
-! @echo char_u *all_lflags = (char_u *)"$(link:\=\\) $(LINKARGS1:\=\\) $(LINKARGS2:\=\\)"; >> $(PATHDEF_SRC)
- @echo char_u *compiled_user = (char_u *)"$(USERNAME)"; >> $(PATHDEF_SRC)
- @echo char_u *compiled_sys = (char_u *)"$(USERDOMAIN)"; >> $(PATHDEF_SRC)
-
---- 1171,1177 ----
- @echo char_u *default_vim_dir = (char_u *)"$(VIMRCLOC:\=\\)"; >> $(PATHDEF_SRC)
- @echo char_u *default_vimruntime_dir = (char_u *)"$(VIMRUNTIMEDIR:\=\\)"; >> $(PATHDEF_SRC)
- @echo char_u *all_cflags = (char_u *)"$(CC:\=\\) $(E_CFLAGS)"; >> $(PATHDEF_SRC)
-! @echo char_u *all_lflags = (char_u *)"$(link:\=\\) $(LINKARGS1:\=\\) $(E_LINKARGS2)"; >> $(PATHDEF_SRC)
- @echo char_u *compiled_user = (char_u *)"$(USERNAME)"; >> $(PATHDEF_SRC)
- @echo char_u *compiled_sys = (char_u *)"$(USERDOMAIN)"; >> $(PATHDEF_SRC)
-
-*** ../vim-7.3.124/src/version.c 2011-02-15 17:39:14.000000000 +0100
---- src/version.c 2011-02-15 17:55:49.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 125,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-271. You collect hilarious signatures from all 250 mailing lists you
- are subscribed to.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.126
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.126
-Problem: Compiler warning for signed pointer.
-Solution: Use unsigned int argument for sscanf().
-Files: src/blowfish.c
-
-
-*** ../vim-7.3.125/src/blowfish.c 2010-08-15 21:57:28.000000000 +0200
---- src/blowfish.c 2010-12-17 19:58:18.000000000 +0100
-***************
-*** 413,418 ****
---- 413,419 ----
- int salt_len;
- {
- int i, j, keypos = 0;
-+ unsigned u;
- UINT32_T val, data_l, data_r;
- char_u *key;
- int keylen;
-***************
-*** 432,439 ****
- }
- for (i = 0; i < keylen; i++)
- {
-! sscanf((char *)&key[i * 2], "%2x", &j);
-! key[i] = j;
- }
-
- mch_memmove(sbx, sbi, 4 * 4 * 256);
---- 433,440 ----
- }
- for (i = 0; i < keylen; i++)
- {
-! sscanf((char *)&key[i * 2], "%2x", &u);
-! key[i] = u;
- }
-
- mch_memmove(sbx, sbi, 4 * 4 * 256);
-*** ../vim-7.3.125/src/version.c 2011-02-15 18:06:11.000000000 +0100
---- src/version.c 2011-02-25 14:40:22.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 126,
- /**/
-
---
-Why doesn't Tarzan have a beard?
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.127
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.127
-Problem: Compiler complains about comma.
-Solution: Remove comma after last enum element.
-Files: src/ex_cmds2.c
-
-
-*** ../vim-7.3.126/src/ex_cmds2.c 2010-12-17 18:06:00.000000000 +0100
---- src/ex_cmds2.c 2010-12-17 19:58:37.000000000 +0100
-***************
-*** 1115,1121 ****
- static enum
- {
- PEXP_SUBCMD, /* expand :profile sub-commands */
-! PEXP_FUNC, /* expand :profile func {funcname} */
- } pexpand_what;
-
- static char *pexpand_cmds[] = {
---- 1115,1121 ----
- static enum
- {
- PEXP_SUBCMD, /* expand :profile sub-commands */
-! PEXP_FUNC /* expand :profile func {funcname} */
- } pexpand_what;
-
- static char *pexpand_cmds[] = {
-*** ../vim-7.3.126/src/version.c 2011-02-25 14:40:51.000000000 +0100
---- src/version.c 2011-02-25 14:45:19.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 127,
- /**/
-
---
- LAUNCELOT leaps into SHOT with a mighty cry and runs the GUARD through and
- hacks him to the floor. Blood. Swashbuckling music (perhaps).
- LAUNCELOT races through into the castle screaming.
-SECOND SENTRY: Hey!
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.128
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.128
-Problem: Another compiler warning for signed pointer.
-Solution: Use unsigned int argument for sscanf().
-Files: src/mark.c
-
-
-*** ../vim-7.3.127/src/mark.c 2010-08-15 21:57:25.000000000 +0200
---- src/mark.c 2010-12-17 20:00:05.000000000 +0100
-***************
-*** 1750,1756 ****
- {
- if (line[1] != NUL)
- {
-! sscanf((char *)line + 2, "%ld %u", &pos.lnum, &pos.col);
- switch (line[1])
- {
- case '"': curbuf->b_last_cursor = pos; break;
---- 1750,1759 ----
- {
- if (line[1] != NUL)
- {
-! unsigned u;
-!
-! sscanf((char *)line + 2, "%ld %u", &pos.lnum, &u);
-! pos.col = u;
- switch (line[1])
- {
- case '"': curbuf->b_last_cursor = pos; break;
-*** ../vim-7.3.127/src/version.c 2011-02-25 14:46:06.000000000 +0100
---- src/version.c 2011-02-25 15:10:34.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 128,
- /**/
-
---
-FATHER: Who are you?
-PRINCE: I'm ... your son ...
-FATHER: Not you.
-LAUNCELOT: I'm ... er ... Sir Launcelot, sir.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.129
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.129
-Problem: Using integer like a boolean.
-Solution: Nicer check for integer being non-zero.
-Files: src/tag.c
-
-
-*** ../vim-7.3.128/src/tag.c 2010-12-17 18:06:00.000000000 +0100
---- src/tag.c 2010-12-17 17:49:35.000000000 +0100
-***************
-*** 204,210 ****
- else
- {
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! if (g_do_tagpreview)
- use_tagstack = FALSE;
- else
- #endif
---- 204,210 ----
- else
- {
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! if (g_do_tagpreview != 0)
- use_tagstack = FALSE;
- else
- #endif
-***************
-*** 222,228 ****
- ))
- {
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! if (g_do_tagpreview)
- {
- if (ptag_entry.tagname != NULL
- && STRCMP(ptag_entry.tagname, tag) == 0)
---- 222,228 ----
- ))
- {
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! if (g_do_tagpreview != 0)
- {
- if (ptag_entry.tagname != NULL
- && STRCMP(ptag_entry.tagname, tag) == 0)
-***************
-*** 278,284 ****
- {
- if (
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! g_do_tagpreview ? ptag_entry.tagname == NULL :
- #endif
- tagstacklen == 0)
- {
---- 278,284 ----
- {
- if (
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! g_do_tagpreview != 0 ? ptag_entry.tagname == NULL :
- #endif
- tagstacklen == 0)
- {
-***************
-*** 361,367 ****
- )
- {
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! if (g_do_tagpreview)
- {
- cur_match = ptag_entry.cur_match;
- cur_fnum = ptag_entry.cur_fnum;
---- 361,367 ----
- )
- {
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! if (g_do_tagpreview != 0)
- {
- cur_match = ptag_entry.cur_match;
- cur_fnum = ptag_entry.cur_fnum;
-***************
-*** 399,405 ****
- prevtagstackidx = tagstackidx;
-
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! if (g_do_tagpreview)
- {
- cur_match = ptag_entry.cur_match;
- cur_fnum = ptag_entry.cur_fnum;
---- 399,405 ----
- prevtagstackidx = tagstackidx;
-
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! if (g_do_tagpreview != 0)
- {
- cur_match = ptag_entry.cur_match;
- cur_fnum = ptag_entry.cur_fnum;
-***************
-*** 437,443 ****
- }
-
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! if (g_do_tagpreview)
- {
- if (type != DT_SELECT && type != DT_JUMP)
- {
---- 437,443 ----
- }
-
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! if (g_do_tagpreview != 0)
- {
- if (type != DT_SELECT && type != DT_JUMP)
- {
-***************
-*** 492,498 ****
- if (use_tagstack)
- name = tagstack[tagstackidx].tagname;
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! else if (g_do_tagpreview)
- name = ptag_entry.tagname;
- #endif
- else
---- 492,498 ----
- if (use_tagstack)
- name = tagstack[tagstackidx].tagname;
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! else if (g_do_tagpreview != 0)
- name = ptag_entry.tagname;
- #endif
- else
-***************
-*** 620,626 ****
- parse_match(matches[i], &tagp);
- if (!new_tag && (
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! (g_do_tagpreview
- && i == ptag_entry.cur_match) ||
- #endif
- (use_tagstack
---- 620,626 ----
- parse_match(matches[i], &tagp);
- if (!new_tag && (
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! (g_do_tagpreview != 0
- && i == ptag_entry.cur_match) ||
- #endif
- (use_tagstack
-***************
-*** 962,968 ****
- ++tagstackidx;
- }
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! else if (g_do_tagpreview)
- {
- ptag_entry.cur_match = cur_match;
- ptag_entry.cur_fnum = cur_fnum;
---- 962,968 ----
- ++tagstackidx;
- }
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! else if (g_do_tagpreview != 0)
- {
- ptag_entry.cur_match = cur_match;
- ptag_entry.cur_fnum = cur_fnum;
-***************
-*** 3110,3116 ****
- #endif
-
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! if (g_do_tagpreview)
- {
- postponed_split = 0; /* don't split again below */
- curwin_save = curwin; /* Save current window */
---- 3110,3116 ----
- #endif
-
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! if (g_do_tagpreview != 0)
- {
- postponed_split = 0; /* don't split again below */
- curwin_save = curwin; /* Save current window */
-***************
-*** 3148,3154 ****
- /* A :ta from a help file will keep the b_help flag set. For ":ptag"
- * we need to use the flag from the window where we came from. */
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! if (g_do_tagpreview)
- keep_help_flag = curwin_save->w_buffer->b_help;
- else
- #endif
---- 3148,3154 ----
- /* A :ta from a help file will keep the b_help flag set. For ":ptag"
- * we need to use the flag from the window where we came from. */
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! if (g_do_tagpreview != 0)
- keep_help_flag = curwin_save->w_buffer->b_help;
- else
- #endif
-***************
-*** 3322,3328 ****
- }
-
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! if (g_do_tagpreview && curwin != curwin_save && win_valid(curwin_save))
- {
- /* Return cursor to where we were */
- validate_cursor();
---- 3322,3329 ----
- }
-
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! if (g_do_tagpreview != 0
-! && curwin != curwin_save && win_valid(curwin_save))
- {
- /* Return cursor to where we were */
- validate_cursor();
-*** ../vim-7.3.128/src/version.c 2011-02-25 15:11:17.000000000 +0100
---- src/version.c 2011-02-25 15:12:25.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 129,
- /**/
-
---
-PRINCE: He's come to rescue me, father.
-LAUNCELOT: (embarrassed) Well, let's not jump to conclusions ...
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.130
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.130
-Problem: Variable misplaced in #ifdef.
-Solution: Move clipboard_event_time outside of #ifdef.
-Files: src/gui_gtk_x11.c
-
-
-*** ../vim-7.3.129/src/gui_gtk_x11.c 2010-08-15 21:57:31.000000000 +0200
---- src/gui_gtk_x11.c 2010-12-04 15:26:41.000000000 +0100
-***************
-*** 86,94 ****
-
- #ifdef HAVE_X11_SUNKEYSYM_H
- # include <X11/Sunkeysym.h>
-- static guint32 clipboard_event_time = CurrentTime;
- #endif
-
- /*
- * Easy-to-use macro for multihead support.
- */
---- 86,95 ----
-
- #ifdef HAVE_X11_SUNKEYSYM_H
- # include <X11/Sunkeysym.h>
- #endif
-
-+ static guint32 clipboard_event_time = CurrentTime;
-+
- /*
- * Easy-to-use macro for multihead support.
- */
-***************
-*** 5419,5425 ****
- }
-
- #if defined(FEAT_NETBEANS_INTG)
-! /* Process the queued netbeans messages. */
- netbeans_parse_messages();
- #endif
-
---- 5420,5426 ----
- }
-
- #if defined(FEAT_NETBEANS_INTG)
-! /* Process any queued netbeans messages. */
- netbeans_parse_messages();
- #endif
-
-*** ../vim-7.3.129/src/version.c 2011-02-25 15:13:43.000000000 +0100
---- src/version.c 2011-02-25 15:15:02.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 130,
- /**/
-
---
-A vacation is a period of travel during which you find that you
-took twice as many clothes and half as much money as you needed.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.131
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.131
-Problem: Including errno.h too often.
-Solution: Don't include errno.h in Unix header file.
-Files: src/os_unix.h
-
-
-*** ../vim-7.3.130/src/os_unix.h 2010-08-15 21:57:28.000000000 +0200
---- src/os_unix.h 2010-12-17 20:05:34.000000000 +0100
-***************
-*** 184,193 ****
-
- #define BASENAMELEN (MAXNAMLEN - 5)
-
-- #ifdef HAVE_ERRNO_H
-- # include <errno.h>
-- #endif
--
- #ifdef HAVE_PWD_H
- # include <pwd.h>
- #endif
---- 184,189 ----
-*** ../vim-7.3.130/src/version.c 2011-02-25 15:15:43.000000000 +0100
---- src/version.c 2011-02-25 15:16:49.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 131,
- /**/
-
---
-Overflow on /dev/null, please empty the bit bucket.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.132
-Fcc: 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.132
-Problem: C++ style comments.
-Solution: Change to C comments.
-Files: src/if_python3.c
-
-
-*** ../vim-7.3.131/src/if_python3.c 2010-11-16 19:25:56.000000000 +0100
---- src/if_python3.c 2011-01-16 01:28:35.000000000 +0100
-***************
-*** 22,29 ****
- * Adaptations to support both python3.x and python2.x
- */
-
-! // uncomment this if used with the debug version of python
-! // #define Py_DEBUG
-
- #include "vim.h"
-
---- 22,29 ----
- * Adaptations to support both python3.x and python2.x
- */
-
-! /* uncomment this if used with the debug version of python */
-! /* #define Py_DEBUG */
-
- #include "vim.h"
-
-***************
-*** 74,80 ****
- #define PyString_Size(obj) PyUnicode_GET_SIZE(obj)
- #define PyString_FromString(repr) PyUnicode_FromString(repr)
-
-! #if defined(DYNAMIC_PYTHON3)
-
- # ifndef WIN3264
- # include <dlfcn.h>
---- 74,80 ----
- #define PyString_Size(obj) PyUnicode_GET_SIZE(obj)
- #define PyString_FromString(repr) PyUnicode_FromString(repr)
-
-! #if defined(DYNAMIC_PYTHON3) || defined(PROTO)
-
- # ifndef WIN3264
- # include <dlfcn.h>
-*** ../vim-7.3.131/src/version.c 2011-02-25 15:17:14.000000000 +0100
---- src/version.c 2011-02-25 15:18:18.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 132,
- /**/
-
---
- ** Hello and Welcome to the Psychiatric Hotline **
-If you are obsessive-compulsive, please press 1 repeatedly.
-If you are co-dependent, please ask someone to press 2.
-If you have multiple personalities, please press 3, 4, 5 and 6.
-If you are paranoid-delusional, we know who you are and what you want
- - just stay on the line so we can trace the call.
-If you are schizophrenic, listen carefully and a little voice will
- tell you which number to press next.
-If you are manic-depressive, it doesn't matter which number you press
- - no one will answer.
-If you suffer from panic attacks, push every button you can find.
-If you are sane, please hold on - we have the rest of humanity on the
- other line and they desparately want to ask you a few questions.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.133
-Fcc: 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.133
-Problem: When using encryption it's not clear what method was used.
-Solution: In the file message show "blowfish" when using blowfish.
-Files: src/fileio.c
-
-
-*** ../vim-7.3.132/src/fileio.c 2011-02-15 17:39:14.000000000 +0100
---- src/fileio.c 2011-02-25 16:30:19.000000000 +0100
-***************
-*** 250,255 ****
---- 250,256 ----
- #ifdef FEAT_CRYPT
- char_u *cryptkey = NULL;
- int did_ask_for_key = FALSE;
-+ int crypt_method_used;
- #endif
- #ifdef FEAT_PERSISTENT_UNDO
- context_sha256_T sha_ctx;
-***************
-*** 2289,2294 ****
---- 2290,2296 ----
- save_file_ff(curbuf); /* remember the current file format */
-
- #ifdef FEAT_CRYPT
-+ crypt_method_used = use_crypt_method;
- if (cryptkey != NULL)
- {
- crypt_pop_state();
-***************
-*** 2483,2489 ****
- #ifdef FEAT_CRYPT
- if (cryptkey != NULL)
- {
-! STRCAT(IObuff, _("[crypted]"));
- c = TRUE;
- }
- #endif
---- 2485,2494 ----
- #ifdef FEAT_CRYPT
- if (cryptkey != NULL)
- {
-! if (crypt_method_used == 1)
-! STRCAT(IObuff, _("[blowfish]"));
-! else
-! STRCAT(IObuff, _("[crypted]"));
- c = TRUE;
- }
- #endif
-***************
-*** 3199,3204 ****
---- 3204,3212 ----
- int write_undo_file = FALSE;
- context_sha256_T sha_ctx;
- #endif
-+ #ifdef FEAT_CRYPT
-+ int crypt_method_used;
-+ #endif
-
- if (fname == NULL || *fname == NUL) /* safety check */
- return FAIL;
-***************
-*** 4728,4733 ****
---- 4736,4742 ----
- mch_set_acl(wfname, acl);
- #endif
- #ifdef FEAT_CRYPT
-+ crypt_method_used = use_crypt_method;
- if (wb_flags & FIO_ENCRYPTED)
- crypt_pop_state();
- #endif
-***************
-*** 4882,4888 ****
- #ifdef FEAT_CRYPT
- if (wb_flags & FIO_ENCRYPTED)
- {
-! STRCAT(IObuff, _("[crypted]"));
- c = TRUE;
- }
- #endif
---- 4891,4900 ----
- #ifdef FEAT_CRYPT
- if (wb_flags & FIO_ENCRYPTED)
- {
-! if (crypt_method_used == 1)
-! STRCAT(IObuff, _("[blowfish]"));
-! else
-! STRCAT(IObuff, _("[crypted]"));
- c = TRUE;
- }
- #endif
-*** ../vim-7.3.132/src/version.c 2011-02-25 15:18:46.000000000 +0100
---- src/version.c 2011-02-25 16:42:58.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 133,
- /**/
-
---
- [clop clop]
-GUARD #1: Halt! Who goes there?
-ARTHUR: It is I, Arthur, son of Uther Pendragon, from the castle of
- Camelot. King of the Britons, defeator of the Saxons, sovereign of
- all England!
-GUARD #1: Pull the other one!
- The Quest for the Holy Grail (Monty Python)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.134
-Fcc: 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.134
-Problem: Drag-n-drop doesn't work in KDE Dolphin.
-Solution: Add GDK_ACTION_MOVE flag. (Florian Degner)
-Files: src/gui_gtk_x11.c
-
-
-*** ../vim-7.3.133/src/gui_gtk_x11.c 2011-02-25 15:15:43.000000000 +0100
---- src/gui_gtk_x11.c 2011-02-25 17:07:36.000000000 +0100
-***************
-*** 3094,3100 ****
- gtk_drag_dest_set(gui.drawarea,
- GTK_DEST_DEFAULT_ALL,
- targets, n_targets,
-! GDK_ACTION_COPY);
- }
-
- /*
---- 3094,3100 ----
- gtk_drag_dest_set(gui.drawarea,
- GTK_DEST_DEFAULT_ALL,
- targets, n_targets,
-! GDK_ACTION_COPY | GDK_ACTION_MOVE);
- }
-
- /*
-*** ../vim-7.3.133/src/version.c 2011-02-25 16:52:13.000000000 +0100
---- src/version.c 2011-02-25 17:08:35.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 134,
- /**/
-
---
-Proverb: A nightingale that forgets the lyrics is a hummingbird.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.135
-Fcc: 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.135
-Problem: When there is no previous substitute pattern, the previous search
- pattern is used. The other way around doesn't work.
-Solution: When there is no previous search pattern, use the previous
- substitute pattern if possible. (Christian Brabandt)
-Files: src/search.c
-
-
-*** ../vim-7.3.134/src/search.c 2010-09-21 16:56:29.000000000 +0200
---- src/search.c 2011-02-25 18:36:56.000000000 +0100
-***************
-*** 1161,1172 ****
- {
- if (spats[RE_SEARCH].pat == NULL) /* no previous pattern */
- {
-! EMSG(_(e_noprevre));
-! retval = 0;
-! goto end_do_search;
- }
-- /* make search_regcomp() use spats[RE_SEARCH].pat */
-- searchstr = (char_u *)"";
- }
-
- if (pat != NULL && *pat != NUL) /* look for (new) offset */
---- 1161,1180 ----
- {
- if (spats[RE_SEARCH].pat == NULL) /* no previous pattern */
- {
-! pat = spats[RE_SUBST].pat;
-! if (pat == NULL)
-! {
-! EMSG(_(e_noprevre));
-! retval = 0;
-! goto end_do_search;
-! }
-! searchstr = pat;
-! }
-! else
-! {
-! /* make search_regcomp() use spats[RE_SEARCH].pat */
-! searchstr = (char_u *)"";
- }
- }
-
- if (pat != NULL && *pat != NUL) /* look for (new) offset */
-***************
-*** 4527,4533 ****
- #if defined(FEAT_FIND_ID) || defined(PROTO)
- /*
- * Find identifiers or defines in included files.
-! * if p_ic && (compl_cont_status & CONT_SOL) then ptr must be in lowercase.
- */
- void
- find_pattern_in_path(ptr, dir, len, whole, skip_comments,
---- 4535,4541 ----
- #if defined(FEAT_FIND_ID) || defined(PROTO)
- /*
- * Find identifiers or defines in included files.
-! * If p_ic && (compl_cont_status & CONT_SOL) then ptr must be in lowercase.
- */
- void
- find_pattern_in_path(ptr, dir, len, whole, skip_comments,
-*** ../vim-7.3.134/src/version.c 2011-02-25 17:10:22.000000000 +0100
---- src/version.c 2011-02-25 18:35:30.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 135,
- /**/
-
---
-A real patriot is the fellow who gets a parking ticket and rejoices
-that the system works.
-
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.136
-Fcc: 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.136
-Problem: Duplicate include of assert.h.
-Solution: Remove it.
-Files: src/if_cscope.c
-
-
-*** ../vim-7.3.135/src/if_cscope.c 2010-12-30 11:41:05.000000000 +0100
---- src/if_cscope.c 2011-03-03 15:01:15.000000000 +0100
-***************
-*** 13,19 ****
-
- #if defined(FEAT_CSCOPE) || defined(PROTO)
-
-- #include <assert.h>
- #include <sys/types.h>
- #include <sys/stat.h>
- #if defined(UNIX)
---- 13,18 ----
-*** ../vim-7.3.135/src/version.c 2011-02-25 18:38:29.000000000 +0100
---- src/version.c 2011-03-03 14:59:32.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 136,
- /**/
-
---
-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/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.137
-Fcc: 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.137 (after 7.3.091)
-Problem: When 'lazyredraw' is set the screen may not be updated. (Ivan
- Krasilnikov)
-Solution: Call update_screen() before waiting for input.
-Files: src/misc1.c, src/getchar.c
-
-
-*** ../vim-7.3.136/src/misc1.c 2011-01-22 00:11:42.000000000 +0100
---- src/misc1.c 2011-03-03 14:02:02.000000000 +0100
-***************
-*** 3115,3121 ****
---- 3115,3129 ----
- continue;
-
- if (n == KEYLEN_REMOVED) /* key code removed */
-+ {
-+ if (must_redraw)
-+ {
-+ /* Redrawing was postponed, do it now. */
-+ update_screen(0);
-+ setcursor(); /* put cursor back where it belongs */
-+ }
- continue;
-+ }
- if (n > 0) /* found a termcode: adjust length */
- len = n;
- if (len == 0) /* nothing typed yet */
-*** ../vim-7.3.136/src/getchar.c 2010-12-30 12:30:26.000000000 +0100
---- src/getchar.c 2011-03-03 14:01:26.000000000 +0100
-***************
-*** 2710,2717 ****
- * are still available. But when those available characters
- * are part of a mapping, and we are going to do a blocking
- * wait here. Need to update the screen to display the
-! * changed text so far. */
-! if ((State & INSERT) && advance && must_redraw != 0)
- {
- update_screen(0);
- setcursor(); /* put cursor back where it belongs */
---- 2710,2719 ----
- * are still available. But when those available characters
- * are part of a mapping, and we are going to do a blocking
- * wait here. Need to update the screen to display the
-! * changed text so far. Also for when 'lazyredraw' is set and
-! * redrawing was postponed because there was something in the
-! * input buffer (e.g., termresponse). */
-! if (((State & INSERT) || p_lz) && advance && must_redraw != 0)
- {
- update_screen(0);
- setcursor(); /* put cursor back where it belongs */
-*** ../vim-7.3.136/src/version.c 2011-03-03 15:01:25.000000000 +0100
---- src/version.c 2011-03-03 15:02:45.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 137,
- /**/
-
---
-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/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.138
-Fcc: 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.138
-Problem: ":com" changes the multi-byte text of :echo. (Dimitar Dimitrov)
-Solution: Search for K_SPECIAL as a byte, not a character. (Ben Schmidt)
-Files: src/ex_docmd.c
-
-
-*** ../vim-7.3.137/src/ex_docmd.c 2011-01-17 19:50:01.000000000 +0100
---- src/ex_docmd.c 2011-03-03 15:47:00.000000000 +0100
-***************
-*** 6054,6068 ****
- end = vim_strchr(start + 1, '>');
- if (buf != NULL)
- {
-! ksp = vim_strchr(p, K_SPECIAL);
-! if (ksp != NULL && (start == NULL || ksp < start || end == NULL)
- && ((ksp[1] == KS_SPECIAL && ksp[2] == KE_FILLER)
- # ifdef FEAT_GUI
- || (ksp[1] == KS_EXTRA && ksp[2] == (int)KE_CSI)
- # endif
- ))
- {
-! /* K_SPECIAL han been put in the buffer as K_SPECIAL
- * KS_SPECIAL KE_FILLER, like for mappings, but
- * do_cmdline() doesn't handle that, so convert it back.
- * Also change K_SPECIAL KS_EXTRA KE_CSI into CSI. */
---- 6054,6070 ----
- end = vim_strchr(start + 1, '>');
- if (buf != NULL)
- {
-! for (ksp = p; *ksp != NUL && *ksp != K_SPECIAL; ++ksp)
-! ;
-! if (*ksp == K_SPECIAL
-! && (start == NULL || ksp < start || end == NULL)
- && ((ksp[1] == KS_SPECIAL && ksp[2] == KE_FILLER)
- # ifdef FEAT_GUI
- || (ksp[1] == KS_EXTRA && ksp[2] == (int)KE_CSI)
- # endif
- ))
- {
-! /* K_SPECIAL has been put in the buffer as K_SPECIAL
- * KS_SPECIAL KE_FILLER, like for mappings, but
- * do_cmdline() doesn't handle that, so convert it back.
- * Also change K_SPECIAL KS_EXTRA KE_CSI into CSI. */
-*** ../vim-7.3.137/src/version.c 2011-03-03 15:04:01.000000000 +0100
---- src/version.c 2011-03-03 15:53:41.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 138,
- /**/
-
---
- f y cn rd ths thn y cn hv grt jb n cmptr prgrmmng
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.139
-Fcc: 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.139 (after 7.3.137)
-Problem: When 'lazyredraw' is set ":ver" output can't be read.
-Solution: Don't redraw the screen when at a prompt or command line.
-Files: src/getchar.c, src/message.c, src/misc1.c
-
-
-*** ../vim-7.3.138/src/getchar.c 2011-03-03 15:04:01.000000000 +0100
---- src/getchar.c 2011-03-22 12:16:23.000000000 +0100
-***************
-*** 2713,2719 ****
- * changed text so far. Also for when 'lazyredraw' is set and
- * redrawing was postponed because there was something in the
- * input buffer (e.g., termresponse). */
-! if (((State & INSERT) || p_lz) && advance && must_redraw != 0)
- {
- update_screen(0);
- setcursor(); /* put cursor back where it belongs */
---- 2713,2720 ----
- * changed text so far. Also for when 'lazyredraw' is set and
- * redrawing was postponed because there was something in the
- * input buffer (e.g., termresponse). */
-! if (((State & INSERT) != 0 || p_lz) && (State & CMDLINE) == 0
-! && advance && must_redraw != 0 && !need_wait_return)
- {
- update_screen(0);
- setcursor(); /* put cursor back where it belongs */
-*** ../vim-7.3.138/src/message.c 2011-02-01 17:12:20.000000000 +0100
---- src/message.c 2011-03-22 13:06:24.000000000 +0100
-***************
-*** 879,894 ****
- if (msg_silent != 0)
- return;
-
-! /*
-! * With the global command (and some others) we only need one return at the
-! * end. Adjust cmdline_row to avoid the next message overwriting the last one.
-! * When inside vgetc(), we can't wait for a typed character at all.
-! */
- if (vgetc_busy > 0)
- return;
- if (no_wait_return)
- {
-- need_wait_return = TRUE;
- if (!exmode_active)
- cmdline_row = msg_row;
- return;
---- 879,895 ----
- if (msg_silent != 0)
- return;
-
-! /*
-! * When inside vgetc(), we can't wait for a typed character at all.
-! * With the global command (and some others) we only need one return at
-! * the end. Adjust cmdline_row to avoid the next message overwriting the
-! * last one.
-! */
- if (vgetc_busy > 0)
- return;
-+ need_wait_return = TRUE;
- if (no_wait_return)
- {
- if (!exmode_active)
- cmdline_row = msg_row;
- return;
-*** ../vim-7.3.138/src/misc1.c 2011-03-03 15:04:01.000000000 +0100
---- src/misc1.c 2011-03-22 12:15:26.000000000 +0100
-***************
-*** 3116,3122 ****
-
- if (n == KEYLEN_REMOVED) /* key code removed */
- {
-! if (must_redraw)
- {
- /* Redrawing was postponed, do it now. */
- update_screen(0);
---- 3116,3122 ----
-
- if (n == KEYLEN_REMOVED) /* key code removed */
- {
-! if (must_redraw != 0 && !need_wait_return && (State & CMDLINE) == 0)
- {
- /* Redrawing was postponed, do it now. */
- update_screen(0);
-*** ../vim-7.3.138/src/version.c 2011-03-03 15:54:45.000000000 +0100
---- src/version.c 2011-03-22 13:06:33.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 139,
- /**/
-
---
-"Software is like sex... it's better when it's free."
- -- Linus Torvalds, initiator of the free Linux OS
-Makes me wonder what FSF stands for...?
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.140
-Fcc: 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.140
-Problem: Crash when drawing the "$" at end-of-line for list mode just after
- the window border and 'cursorline' is set.
-Solution: Don't check for 'cursorline'. (Quentin Carbonneaux)
-Files: src/screen.c
-
-
-*** ../vim-7.3.139/src/screen.c 2011-02-09 17:09:26.000000000 +0100
---- src/screen.c 2011-03-22 13:29:04.000000000 +0100
-***************
-*** 5099,5109 ****
- #ifdef FEAT_DIFF
- || filler_todo > 0
- #endif
-! || (wp->w_p_list && lcs_eol != NUL && p_extra != at_end_str
-! #ifdef FEAT_SYN_HL
-! && !wp->w_p_cul
-! #endif
-! )
- || (n_extra != 0 && (c_extra != NUL || *p_extra != NUL)))
- )
- {
---- 5099,5105 ----
- #ifdef FEAT_DIFF
- || filler_todo > 0
- #endif
-! || (wp->w_p_list && lcs_eol != NUL && p_extra != at_end_str)
- || (n_extra != 0 && (c_extra != NUL || *p_extra != NUL)))
- )
- {
-*** ../vim-7.3.139/src/version.c 2011-03-22 13:07:19.000000000 +0100
---- src/version.c 2011-03-22 13:27:26.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 140,
- /**/
-
---
-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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.141
-Fcc: 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.141
-Problem: When a key code is not set get a confusing error message.
-Solution: Change the error message to say the key code is not set.
-Files: src/option.c, runtime/doc/options.txt
-
-
-*** ../vim-7.3.140/src/option.c 2011-01-22 00:11:42.000000000 +0100
---- src/option.c 2011-03-22 14:25:52.000000000 +0100
-***************
-*** 4352,4358 ****
- p = find_termcode(key_name);
- if (p == NULL)
- {
-! errmsg = (char_u *)N_("E518: Unknown option");
- goto skip;
- }
- else
---- 4352,4358 ----
- p = find_termcode(key_name);
- if (p == NULL)
- {
-! errmsg = (char_u *)N_("E846: Key code not set");
- goto skip;
- }
- else
-***************
-*** 4700,4707 ****
- || s[i] == ','
- || s[i] == NUL))
- break;
-! /* Count backspaces. Only a comma with an
-! * even number of backspaces before it is
- * recognized as a separator */
- if (s > origval && s[-1] == '\\')
- ++bs;
---- 4700,4707 ----
- || s[i] == ','
- || s[i] == NUL))
- break;
-! /* Count backslashes. Only a comma with an
-! * even number of backslashes before it is
- * recognized as a separator */
- if (s > origval && s[-1] == '\\')
- ++bs;
-*** ../vim-7.3.140/runtime/doc/options.txt 2010-12-02 21:43:10.000000000 +0100
---- runtime/doc/options.txt 2011-03-22 14:32:14.000000000 +0100
-***************
-*** 150,155 ****
---- 150,167 ----
- (the ^[ is a real <Esc> here, use CTRL-V <Esc> to enter it)
- The advantage over a mapping is that it works in all situations.
-
-+ You can define any key codes, e.g.: >
-+ :set t_xy=^[foo;
-+ There is no warning for using a name that isn't recognized. You can map these
-+ codes as you like: >
-+ :map <t_xy> something
-+ < *E846*
-+ When a key code is not set, it's like it does not exist. Trying to get its
-+ value will result in an error: >
-+ :set t_kb=
-+ :set t_kb
-+ E846: Key code not set: t_kb
-+
- The t_xx options cannot be set from a |modeline| or in the |sandbox|, for
- security reasons.
-
-*** ../vim-7.3.140/src/version.c 2011-03-22 13:29:20.000000000 +0100
---- src/version.c 2011-03-22 14:32:59.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 141,
- /**/
-
---
-"I know that there are people who don't love their fellow man,
-and I hate those people!" - Tom Lehrer
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.142
-Fcc: 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.142
-Problem: Python stdout doesn't have a flush() method, causing an import to
- fail.
-Solution: Add a dummy flush() method. (Tobias Columbus)
-Files: src/if_py_both.h
-
-
-*** ../vim-7.3.141/src/if_py_both.h 2010-10-27 12:17:54.000000000 +0200
---- src/if_py_both.h 2011-03-22 15:37:43.000000000 +0100
-***************
-*** 33,38 ****
---- 33,39 ----
-
- static PyObject *OutputWrite(PyObject *, PyObject *);
- static PyObject *OutputWritelines(PyObject *, PyObject *);
-+ static PyObject *OutputFlush(PyObject *, PyObject *);
-
- /* Function to write a line, points to either msg() or emsg(). */
- typedef void (*writefn)(char_u *);
-***************
-*** 47,55 ****
-
- static struct PyMethodDef OutputMethods[] = {
- /* name, function, calling, documentation */
-! {"write", OutputWrite, 1, "" },
-! {"writelines", OutputWritelines, 1, "" },
-! { NULL, NULL, 0, NULL }
- };
-
- #define PyErr_SetVim(str) PyErr_SetString(VimError, str)
---- 48,57 ----
-
- static struct PyMethodDef OutputMethods[] = {
- /* name, function, calling, documentation */
-! {"write", OutputWrite, 1, ""},
-! {"writelines", OutputWritelines, 1, ""},
-! {"flush", OutputFlush, 1, ""},
-! { NULL, NULL, 0, NULL}
- };
-
- #define PyErr_SetVim(str) PyErr_SetString(VimError, str)
-***************
-*** 123,128 ****
---- 125,139 ----
- return Py_None;
- }
-
-+ static PyObject *
-+ OutputFlush(PyObject *self UNUSED, PyObject *args UNUSED)
-+ {
-+ /* do nothing */
-+ Py_INCREF(Py_None);
-+ 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;
-*** ../vim-7.3.141/src/version.c 2011-03-22 14:35:01.000000000 +0100
---- src/version.c 2011-03-22 15:45:38.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 142,
- /**/
-
---
-Living on Earth includes an annual free trip around the Sun.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.143
-Fcc: 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.143
-Problem: Memfile is not tested sufficiently. Looking up blocks in a
- memfile is slow when there are many blocks.
-Solution: Add high level test and unittest. Adjust the number of hash
- buckets to the number of blocks. (Ivan Krasilnikov)
-Files: Filelist, src/Makefile, src/main.c, src/memfile.c,
- src/memfile_test.c src/structs.h src/testdir/Make_amiga.mak,
- src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
- src/testdir/Make_os2.mak, src/testdir/Make_vms.mak,
- src/testdir/Makefile, src/testdir/test77.in, src/testdir/test77.ok
-
-
-*** ../vim-7.3.142/Filelist 2010-08-15 21:57:20.000000000 +0200
---- Filelist 2011-03-22 17:39:22.000000000 +0100
-***************
-*** 39,44 ****
---- 39,45 ----
- src/mark.c \
- src/mbyte.c \
- src/memfile.c \
-+ src/memfile_test.c \
- src/memline.c \
- src/menu.c \
- src/message.c \
-***************
-*** 686,691 ****
---- 687,694 ----
- runtime/tutor/tutor.utf-8 \
- runtime/tutor/tutor.?? \
- runtime/tutor/tutor.??.* \
-+ runtime/tutor/tutor.bar \
-+ runtime/tutor/tutor.bar.* \
- runtime/spell/README.txt \
- runtime/spell/??/*.diff \
- runtime/spell/??/main.aap \
-*** ../vim-7.3.142/src/Makefile 2011-02-15 15:27:00.000000000 +0100
---- src/Makefile 2011-03-22 18:07:25.000000000 +0100
-***************
-*** 561,567 ****
- #CFLAGS = -g -O2 '-DSTARTUPTIME="vimstartup"' -fno-strength-reduce -Wall -Wmissing-prototypes
-
- # Use this with GCC to check for mistakes, unused arguments, etc.
-! #CFLAGS = -g -Wall -Wextra -Wmissing-prototypes -Wunreachable-code -D_FORTIFY_SOURCE=1 -DU_DEBUG
- #CFLAGS = -g -O2 -Wall -Wextra -Wmissing-prototypes -D_FORTIFY_SOURCE=1 -DU_DEBUG
- #PYTHON_CFLAGS_EXTRA = -Wno-missing-field-initializers
- #MZSCHEME_CFLAGS_EXTRA = -Wno-unreachable-code -Wno-unused-parameter
---- 561,567 ----
- #CFLAGS = -g -O2 '-DSTARTUPTIME="vimstartup"' -fno-strength-reduce -Wall -Wmissing-prototypes
-
- # Use this with GCC to check for mistakes, unused arguments, etc.
-! #CFLAGS = -g -Wall -Wextra -Wmissing-prototypes -Wunreachable-code -D_FORTIFY_SOURCE=1
- #CFLAGS = -g -O2 -Wall -Wextra -Wmissing-prototypes -D_FORTIFY_SOURCE=1 -DU_DEBUG
- #PYTHON_CFLAGS_EXTRA = -Wno-missing-field-initializers
- #MZSCHEME_CFLAGS_EXTRA = -Wno-unreachable-code -Wno-unused-parameter
-***************
-*** 594,601 ****
-
- # PROFILING - Uncomment the next two lines to do profiling with gcc and gprof.
- # Might not work with GUI or Perl.
-! # For unknown reasons adding "-lc" fixes a linking problem with GCC. That's
-! # probably a bug in the "-pg" implementation.
- # Need to recompile everything after changing this: "make clean" "make".
- #PROFILE_CFLAGS = -pg -g -DWE_ARE_PROFILING
- #PROFILE_LIBS = -pg
---- 594,602 ----
-
- # PROFILING - Uncomment the next two lines to do profiling with gcc and gprof.
- # Might not work with GUI or Perl.
-! # For unknown reasons adding "-lc" fixes a linking problem with some versions
-! # of GCC. That's probably a bug in the "-pg" implementation.
-! # After running Vim see the profile result with: gmon vim gmon.out | vim -
- # Need to recompile everything after changing this: "make clean" "make".
- #PROFILE_CFLAGS = -pg -g -DWE_ARE_PROFILING
- #PROFILE_LIBS = -pg
-***************
-*** 606,613 ****
- # Configuration is in the .ccmalloc or ~/.ccmalloc file.
- # Doesn't work very well, since memory linked to from global variables
- # (in libraries) is also marked as leaked memory.
-! #PROFILE_CFLAGS = -DEXITFREE
-! #PROFILE_LIBS = -lccmalloc
-
- #####################################################
- ### Specific systems, check if yours is listed! ### {{{
---- 607,614 ----
- # Configuration is in the .ccmalloc or ~/.ccmalloc file.
- # Doesn't work very well, since memory linked to from global variables
- # (in libraries) is also marked as leaked memory.
-! #LEAK_CFLAGS = -DEXITFREE
-! #LEAK_LIBS = -lccmalloc
-
- #####################################################
- ### Specific systems, check if yours is listed! ### {{{
-***************
-*** 1329,1335 ****
- 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)
-
- # Exclude $CFLAGS for osdef.sh, for Mac 10.4 some flags don't work together
- # with "-E".
---- 1330,1336 ----
- 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) $(LEAK_CFLAGS) $(POST_DEFS)
-
- # Exclude $CFLAGS for osdef.sh, for Mac 10.4 some flags don't work together
- # with "-E".
-***************
-*** 1358,1364 ****
- $(PYTHON3_LIBS) \
- $(TCL_LIBS) \
- $(RUBY_LIBS) \
-! $(PROFILE_LIBS)
-
- # abbreviations
- DEST_BIN = $(DESTDIR)$(BINDIR)
---- 1359,1366 ----
- $(PYTHON3_LIBS) \
- $(TCL_LIBS) \
- $(RUBY_LIBS) \
-! $(PROFILE_LIBS) \
-! $(LEAK_LIBS)
-
- # abbreviations
- DEST_BIN = $(DESTDIR)$(BINDIR)
-***************
-*** 1480,1487 ****
- if_python.c if_python3.c if_tcl.c if_ruby.c if_sniff.c \
- gui_beval.c workshop.c wsdebug.c integration.c netbeans.c
-
- # All sources, also the ones that are not configured
-! ALL_SRC = $(BASIC_SRC) $(ALL_GUI_SRC) $(EXTRA_SRC)
-
- # Which files to check with lint. Select one of these three lines. ALL_SRC
- # checks more, but may not work well for checking a GUI that wasn't configured.
---- 1482,1496 ----
- if_python.c if_python3.c if_tcl.c if_ruby.c if_sniff.c \
- gui_beval.c workshop.c wsdebug.c integration.c netbeans.c
-
-+ # Unittest files
-+ MEMFILE_TEST_SRC = memfile_test.c
-+ MEMFILE_TEST_TARGET = memfile_test$(EXEEXT)
-+
-+ UNITTEST_SRC = $(MEMFILE_TEST_SRC)
-+ UNITTEST_TARGETS = $(MEMFILE_TEST_TARGET)
-+
- # All sources, also the ones that are not configured
-! ALL_SRC = $(BASIC_SRC) $(ALL_GUI_SRC) $(UNITTEST_SRC) $(EXTRA_SRC)
-
- # Which files to check with lint. Select one of these three lines. ALL_SRC
- # checks more, but may not work well for checking a GUI that wasn't configured.
-***************
-*** 1492,1498 ****
- #LINT_SRC = $(ALL_SRC)
- #LINT_SRC = $(BASIC_SRC)
-
-! OBJ = \
- objects/buffer.o \
- objects/blowfish.o \
- objects/charset.o \
---- 1501,1507 ----
- #LINT_SRC = $(ALL_SRC)
- #LINT_SRC = $(BASIC_SRC)
-
-! OBJ_COMMON = \
- objects/buffer.o \
- objects/blowfish.o \
- objects/charset.o \
-***************
-*** 1513,1522 ****
- $(HANGULIN_OBJ) \
- objects/if_cscope.o \
- objects/if_xcmdsrv.o \
-- objects/main.o \
- objects/mark.o \
-! objects/memfile.o \
-! objects/memline.o \
- objects/menu.o \
- objects/message.o \
- objects/misc1.o \
---- 1522,1529 ----
- $(HANGULIN_OBJ) \
- objects/if_cscope.o \
- objects/if_xcmdsrv.o \
- objects/mark.o \
-! objects/memline.o \
- objects/menu.o \
- objects/message.o \
- objects/misc1.o \
-***************
-*** 1541,1546 ****
---- 1548,1554 ----
- objects/term.o \
- objects/ui.o \
- objects/undo.o \
-+ objects/version.o \
- objects/window.o \
- $(GUI_OBJ) \
- $(LUA_OBJ) \
-***************
-*** 1555,1560 ****
---- 1563,1575 ----
- $(NETBEANS_OBJ) \
- $(WSDEBUG_OBJ)
-
-+ OBJ = $(OBJ_COMMON) \
-+ objects/main.o \
-+ objects/memfile.o \
-+
-+ MEMFILE_TEST_OBJ = $(OBJ_COMMON) \
-+ objects/memfile_test.o
-+
- PRO_AUTO = \
- blowfish.pro \
- buffer.pro \
-***************
-*** 1700,1706 ****
- $(VIMTARGET): auto/config.mk objects $(OBJ) version.c version.h
- $(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
-
---- 1715,1721 ----
- $(VIMTARGET): auto/config.mk objects $(OBJ) version.c version.h
- $(CCC) version.c -o objects/version.o
- @LINK="$(PURIFY) $(SHRPENV) $(CClink) $(ALL_LIB_DIRS) $(LDFLAGS) \
-! -o $(VIMTARGET) $(OBJ) $(ALL_LIBS)" \
- MAKE="$(MAKE)" LINK_AS_NEEDED=$(LINK_AS_NEEDED) \
- sh $(srcdir)/link.sh
-
-***************
-*** 1825,1830 ****
---- 1840,1854 ----
- ln -s $(VIMTARGET) vim; \
- fi
- cd testdir; $(MAKE) -f Makefile $(GUI_TESTTARGET) VIMPROG=../$(VIMTARGET) $(GUI_TESTARG)
-+ $(MAKE) -f Makefile unittest
-+
-+ unittesttargets:
-+ $(MAKE) -f Makefile $(UNITTEST_TARGETS)
-+
-+ unittest unittests: $(UNITTEST_TARGETS)
-+ @for t in $(UNITTEST_TARGETS); do \
-+ ./$$t || exit 1; echo $$t passed; \
-+ done
-
- testclean:
- cd testdir; $(MAKE) -f Makefile clean
-***************
-*** 1832,1837 ****
---- 1856,1872 ----
- cd $(PODIR); $(MAKE) checkclean; \
- fi
-
-+ # Unittests
-+ # It's build just like Vim to satisfy all dependencies.
-+ $(MEMFILE_TEST_TARGET): auto/config.mk objects $(MEMFILE_TEST_OBJ)
-+ $(CCC) version.c -o objects/version.o
-+ @LINK="$(PURIFY) $(SHRPENV) $(CClink) $(ALL_LIB_DIRS) $(LDFLAGS) \
-+ -o $(MEMFILE_TEST_TARGET) $(MEMFILE_TEST_OBJ) $(ALL_LIBS)" \
-+ MAKE="$(MAKE)" LINK_AS_NEEDED=$(LINK_AS_NEEDED) \
-+ sh $(srcdir)/link.sh
-+
-+ # install targets
-+
- install: $(GUI_INSTALL)
-
- install_normal: installvim installtools $(INSTALL_LANGS) install-icons
-***************
-*** 2265,2270 ****
---- 2300,2306 ----
- -rm -f *.o objects/* core $(VIMTARGET).core $(VIMTARGET) vim xxd/*.o
- -rm -f $(TOOLS) auto/osdef.h auto/pathdef.c auto/if_perl.c
- -rm -f conftest* *~ auto/link.sed
-+ -rm -f $(UNITTEST_TARGETS)
- -rm -f runtime pixmaps
- -rm -rf $(APPDIR)
- -rm -rf mzscheme_base.c
-***************
-*** 2559,2564 ****
---- 2595,2603 ----
- objects/memfile.o: memfile.c
- $(CCC) -o $@ memfile.c
-
-+ objects/memfile_test.o: memfile_test.c
-+ $(CCC) -o $@ memfile_test.c
-+
- objects/memline.o: memline.c
- $(CCC) -o $@ memline.c
-
-***************
-*** 2877,2883 ****
- objects/os_unix.o: os_unix.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
- ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
- gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
-! arabic.h if_mzsch.h os_unixx.h
- objects/pathdef.o: auto/pathdef.c vim.h auto/config.h feature.h os_unix.h \
- auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
- regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
---- 2916,2922 ----
- objects/os_unix.o: os_unix.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
- ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
- gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
-! arabic.h os_unixx.h
- objects/pathdef.o: auto/pathdef.c vim.h auto/config.h feature.h os_unix.h \
- auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
- regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
-***************
-*** 3016,3021 ****
---- 3055,3064 ----
- objects/pty.o: pty.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h ascii.h \
- keymap.h term.h macros.h option.h structs.h regexp.h gui.h gui_beval.h \
- proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h arabic.h
-+ objects/memfile_test.o: memfile_test.c main.c vim.h auto/config.h feature.h \
-+ os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h \
-+ structs.h regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h \
-+ proto.h globals.h farsi.h arabic.h farsi.c arabic.c memfile.c
- objects/hangulin.o: hangulin.c vim.h auto/config.h feature.h os_unix.h \
- auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
- regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
-***************
-*** 3027,3033 ****
- objects/if_mzsch.o: if_mzsch.c vim.h auto/config.h feature.h os_unix.h \
- auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
- regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
-! globals.h farsi.h arabic.h if_mzsch.h mzscheme_base.c
- objects/if_perl.o: auto/if_perl.c vim.h auto/config.h feature.h os_unix.h \
- auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
- regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
---- 3070,3076 ----
- objects/if_mzsch.o: if_mzsch.c vim.h auto/config.h feature.h os_unix.h \
- auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
- regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
-! globals.h farsi.h arabic.h if_mzsch.h
- objects/if_perl.o: auto/if_perl.c vim.h auto/config.h feature.h os_unix.h \
- auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
- regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
-***************
-*** 3048,3054 ****
- ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
- gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
- arabic.h
-! objects/if_ruby.o: if_ruby.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
- ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
- gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
- arabic.h version.h
---- 3091,3097 ----
- ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
- gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
- arabic.h
-! objects/if_ruby.o: if_ruby.c auto/config.h vim.h feature.h os_unix.h auto/osdef.h \
- ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
- gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
- arabic.h version.h
-*** ../vim-7.3.142/src/main.c 2011-02-15 16:29:54.000000000 +0100
---- src/main.c 2011-03-18 13:19:48.000000000 +0100
-***************
-*** 92,128 ****
- #define EDIT_TAG 3 /* tag name argument given, use tagname */
- #define EDIT_QF 4 /* start in quickfix mode */
-
-! #if defined(UNIX) || defined(VMS)
- static int file_owned __ARGS((char *fname));
- #endif
- static void mainerr __ARGS((int, char_u *));
- static void main_msg __ARGS((char *s));
- static void usage __ARGS((void));
- static int get_number_arg __ARGS((char_u *p, int *idx, int def));
-! #if defined(HAVE_LOCALE_H) || defined(X_LOCALE)
- static void init_locale __ARGS((void));
-! #endif
- static void parse_command_name __ARGS((mparm_T *parmp));
- static void early_arg_scan __ARGS((mparm_T *parmp));
- static void command_line_scan __ARGS((mparm_T *parmp));
- static void check_tty __ARGS((mparm_T *parmp));
- static void read_stdin __ARGS((void));
- static void create_windows __ARGS((mparm_T *parmp));
-! #ifdef FEAT_WINDOWS
- static void edit_buffers __ARGS((mparm_T *parmp));
-! #endif
- static void exe_pre_commands __ARGS((mparm_T *parmp));
- static void exe_commands __ARGS((mparm_T *parmp));
- static void source_startup_scripts __ARGS((mparm_T *parmp));
- static void main_start_gui __ARGS((void));
-! #if defined(HAS_SWAP_EXISTS_ACTION)
- static void check_swap_exists_action __ARGS((void));
-! #endif
-! #ifdef FEAT_CLIENTSERVER
- static void exec_on_server __ARGS((mparm_T *parmp));
- static void prepare_server __ARGS((mparm_T *parmp));
- static void cmdsrv_main __ARGS((int *argc, char **argv, char_u *serverName_arg, char_u **serverStr));
- static char_u *serverMakeName __ARGS((char_u *arg, char *cmd));
- #endif
-
-
---- 92,130 ----
- #define EDIT_TAG 3 /* tag name argument given, use tagname */
- #define EDIT_QF 4 /* start in quickfix mode */
-
-! #if (defined(UNIX) || defined(VMS)) && !defined(NO_VIM_MAIN)
- static int file_owned __ARGS((char *fname));
- #endif
- static void mainerr __ARGS((int, char_u *));
-+ #ifndef NO_VIM_MAIN
- static void main_msg __ARGS((char *s));
- static void usage __ARGS((void));
- static int get_number_arg __ARGS((char_u *p, int *idx, int def));
-! # if defined(HAVE_LOCALE_H) || defined(X_LOCALE)
- static void init_locale __ARGS((void));
-! # endif
- static void parse_command_name __ARGS((mparm_T *parmp));
- static void early_arg_scan __ARGS((mparm_T *parmp));
- static void command_line_scan __ARGS((mparm_T *parmp));
- static void check_tty __ARGS((mparm_T *parmp));
- static void read_stdin __ARGS((void));
- static void create_windows __ARGS((mparm_T *parmp));
-! # ifdef FEAT_WINDOWS
- static void edit_buffers __ARGS((mparm_T *parmp));
-! # endif
- static void exe_pre_commands __ARGS((mparm_T *parmp));
- static void exe_commands __ARGS((mparm_T *parmp));
- static void source_startup_scripts __ARGS((mparm_T *parmp));
- static void main_start_gui __ARGS((void));
-! # if defined(HAS_SWAP_EXISTS_ACTION)
- static void check_swap_exists_action __ARGS((void));
-! # endif
-! # if defined(FEAT_CLIENTSERVER) || defined(PROTO)
- static void exec_on_server __ARGS((mparm_T *parmp));
- static void prepare_server __ARGS((mparm_T *parmp));
- static void cmdsrv_main __ARGS((int *argc, char **argv, char_u *serverName_arg, char_u **serverStr));
- static char_u *serverMakeName __ARGS((char_u *arg, char *cmd));
-+ # endif
- #endif
-
-
-***************
-*** 145,151 ****
- #define ME_INVALID_ARG 5
- };
-
-! #ifndef PROTO /* don't want a prototype for main() */
- int
- # ifdef VIMDLL
- _export
---- 147,154 ----
- #define ME_INVALID_ARG 5
- };
-
-! #ifndef NO_VIM_MAIN /* skip this for unittests */
-! #ifndef PROTO /* don't want a prototype for main() */
- int
- # ifdef VIMDLL
- _export
-***************
-*** 966,971 ****
---- 969,975 ----
- return 0;
- }
- #endif /* PROTO */
-+ #endif /* NO_VIM_MAIN */
-
- /*
- * Main loop: Execute Normal mode commands until exiting Vim.
-***************
-*** 1430,1435 ****
---- 1434,1440 ----
- mch_exit(exitval);
- }
-
-+ #ifndef NO_VIM_MAIN
- /*
- * Get a (optional) count for a Vim argument.
- */
-***************
-*** 2994,2999 ****
---- 2999,3006 ----
- #endif
- }
-
-+ #endif /* NO_VIM_MAIN */
-+
- /*
- * Get an environment variable, and execute it as Ex commands.
- * Returns FAIL if the environment variable was not executed, OK otherwise.
-***************
-*** 3033,3039 ****
- return FAIL;
- }
-
-! #if defined(UNIX) || defined(VMS)
- /*
- * Return TRUE if we are certain the user owns the file "fname".
- * Used for ".vimrc" and ".exrc".
---- 3040,3046 ----
- return FAIL;
- }
-
-! #if (defined(UNIX) || defined(VMS)) && !defined(NO_VIM_MAIN)
- /*
- * Return TRUE if we are certain the user owns the file "fname".
- * Used for ".vimrc" and ".exrc".
-***************
-*** 3091,3096 ****
---- 3098,3104 ----
- mainerr(ME_ARG_MISSING, str);
- }
-
-+ #ifndef NO_VIM_MAIN
- /*
- * print a message with three spaces prepended and '\n' appended.
- */
-***************
-*** 3311,3316 ****
---- 3319,3326 ----
- }
- #endif
-
-+ #endif
-+
- #if defined(STARTUPTIME) || defined(PROTO)
- static void time_diff __ARGS((struct timeval *then, struct timeval *now));
-
-***************
-*** 3420,3426 ****
-
- #endif
-
-! #if defined(FEAT_CLIENTSERVER) || defined(PROTO)
-
- /*
- * Common code for the X command server and the Win32 command server.
---- 3430,3436 ----
-
- #endif
-
-! #if (defined(FEAT_CLIENTSERVER) && !defined(NO_VIM_MAIN)) || defined(PROTO)
-
- /*
- * Common code for the X command server and the Win32 command server.
-***************
-*** 3888,3893 ****
---- 3898,3929 ----
- }
-
- /*
-+ * Make our basic server name: use the specified "arg" if given, otherwise use
-+ * the tail of the command "cmd" we were started with.
-+ * Return the name in allocated memory. This doesn't include a serial number.
-+ */
-+ static char_u *
-+ serverMakeName(arg, cmd)
-+ char_u *arg;
-+ char *cmd;
-+ {
-+ char_u *p;
-+
-+ if (arg != NULL && *arg != NUL)
-+ p = vim_strsave_up(arg);
-+ else
-+ {
-+ p = vim_strsave_up(gettail((char_u *)cmd));
-+ /* Remove .exe or .bat from the name. */
-+ if (p != NULL && vim_strchr(p, '.') != NULL)
-+ *vim_strchr(p, '.') = NUL;
-+ }
-+ return p;
-+ }
-+ #endif /* FEAT_CLIENTSERVER */
-+
-+ #if defined(FEAT_CLIENTSERVER) || defined(PROTO)
-+ /*
- * Replace termcodes such as <CR> and insert as key presses if there is room.
- */
- void
-***************
-*** 3998,4029 ****
- # endif
- return res;
- }
-!
-!
-! /*
-! * Make our basic server name: use the specified "arg" if given, otherwise use
-! * the tail of the command "cmd" we were started with.
-! * Return the name in allocated memory. This doesn't include a serial number.
-! */
-! static char_u *
-! serverMakeName(arg, cmd)
-! char_u *arg;
-! char *cmd;
-! {
-! char_u *p;
-!
-! if (arg != NULL && *arg != NUL)
-! p = vim_strsave_up(arg);
-! else
-! {
-! p = vim_strsave_up(gettail((char_u *)cmd));
-! /* Remove .exe or .bat from the name. */
-! if (p != NULL && vim_strchr(p, '.') != NULL)
-! *vim_strchr(p, '.') = NUL;
-! }
-! return p;
-! }
-! #endif /* FEAT_CLIENTSERVER */
-
- /*
- * When FEAT_FKMAP is defined, also compile the Farsi source code.
---- 4034,4040 ----
- # endif
- return res;
- }
-! #endif
-
- /*
- * When FEAT_FKMAP is defined, also compile the Farsi source code.
-*** ../vim-7.3.142/src/memfile.c 2010-12-17 18:06:00.000000000 +0100
---- src/memfile.c 2011-03-03 18:47:39.000000000 +0100
-***************
-*** 84,89 ****
---- 84,96 ----
- static int mf_write_block __ARGS((memfile_T *mfp, bhdr_T *hp, off_t offset, unsigned size));
- static int mf_trans_add __ARGS((memfile_T *, bhdr_T *));
- static void mf_do_open __ARGS((memfile_T *, char_u *, int));
-+ static void mf_hash_init __ARGS((mf_hashtab_T *));
-+ static void mf_hash_free __ARGS((mf_hashtab_T *));
-+ static void mf_hash_free_all __ARGS((mf_hashtab_T *));
-+ static mf_hashitem_T *mf_hash_find __ARGS((mf_hashtab_T *, blocknr_T));
-+ static void mf_hash_add_item __ARGS((mf_hashtab_T *, mf_hashitem_T *));
-+ static void mf_hash_rem_item __ARGS((mf_hashtab_T *, mf_hashitem_T *));
-+ static int mf_hash_grow __ARGS((mf_hashtab_T *));
-
- /*
- * The functions for using a memfile:
-***************
-*** 119,125 ****
- int flags;
- {
- memfile_T *mfp;
-- int i;
- off_t size;
- #if defined(STATFS) && defined(UNIX) && !defined(__QNX__)
- # define USE_FSTATFS
---- 126,131 ----
-***************
-*** 152,162 ****
- mfp->mf_used_last = NULL;
- mfp->mf_dirty = FALSE;
- mfp->mf_used_count = 0;
-! for (i = 0; i < MEMHASHSIZE; ++i)
-! {
-! mfp->mf_hash[i] = NULL; /* hash lists are empty */
-! mfp->mf_trans[i] = NULL; /* trans lists are empty */
-! }
- mfp->mf_page_size = MEMFILE_PAGE_SIZE;
- #ifdef FEAT_CRYPT
- mfp->mf_old_key = NULL;
---- 158,165 ----
- mfp->mf_used_last = NULL;
- mfp->mf_dirty = FALSE;
- mfp->mf_used_count = 0;
-! mf_hash_init(&mfp->mf_hash);
-! mf_hash_init(&mfp->mf_trans);
- mfp->mf_page_size = MEMFILE_PAGE_SIZE;
- #ifdef FEAT_CRYPT
- mfp->mf_old_key = NULL;
-***************
-*** 242,249 ****
- int del_file;
- {
- bhdr_T *hp, *nextp;
-- NR_TRANS *tp, *tpnext;
-- int i;
-
- if (mfp == NULL) /* safety check */
- return;
---- 245,250 ----
-***************
-*** 263,274 ****
- }
- while (mfp->mf_free_first != NULL) /* free entries in free list */
- vim_free(mf_rem_free(mfp));
-! for (i = 0; i < MEMHASHSIZE; ++i) /* free entries in trans lists */
-! for (tp = mfp->mf_trans[i]; tp != NULL; tp = tpnext)
-! {
-! tpnext = tp->nt_next;
-! vim_free(tp);
-! }
- vim_free(mfp->mf_fname);
- vim_free(mfp->mf_ffname);
- vim_free(mfp);
---- 264,271 ----
- }
- while (mfp->mf_free_first != NULL) /* free entries in free list */
- vim_free(mf_rem_free(mfp));
-! mf_hash_free(&mfp->mf_hash);
-! mf_hash_free_all(&mfp->mf_trans); /* free hashtable and its items */
- vim_free(mfp->mf_fname);
- vim_free(mfp->mf_ffname);
- vim_free(mfp);
-***************
-*** 743,758 ****
- memfile_T *mfp;
- bhdr_T *hp;
- {
-! bhdr_T *hhp;
-! int hash;
-!
-! hash = MEMHASH(hp->bh_bnum);
-! hhp = mfp->mf_hash[hash];
-! hp->bh_hash_next = hhp;
-! hp->bh_hash_prev = NULL;
-! if (hhp != NULL)
-! hhp->bh_hash_prev = hp;
-! mfp->mf_hash[hash] = hp;
- }
-
- /*
---- 740,746 ----
- memfile_T *mfp;
- bhdr_T *hp;
- {
-! mf_hash_add_item(&mfp->mf_hash, (mf_hashitem_T *)hp);
- }
-
- /*
-***************
-*** 763,775 ****
- memfile_T *mfp;
- bhdr_T *hp;
- {
-! if (hp->bh_hash_prev == NULL)
-! mfp->mf_hash[MEMHASH(hp->bh_bnum)] = hp->bh_hash_next;
-! else
-! hp->bh_hash_prev->bh_hash_next = hp->bh_hash_next;
-!
-! if (hp->bh_hash_next)
-! hp->bh_hash_next->bh_hash_prev = hp->bh_hash_prev;
- }
-
- /*
---- 751,757 ----
- memfile_T *mfp;
- bhdr_T *hp;
- {
-! mf_hash_rem_item(&mfp->mf_hash, (mf_hashitem_T *)hp);
- }
-
- /*
-***************
-*** 780,791 ****
- memfile_T *mfp;
- blocknr_T nr;
- {
-! bhdr_T *hp;
-!
-! for (hp = mfp->mf_hash[MEMHASH(nr)]; hp != NULL; hp = hp->bh_hash_next)
-! if (hp->bh_bnum == nr)
-! break;
-! return hp;
- }
-
- /*
---- 762,768 ----
- memfile_T *mfp;
- blocknr_T nr;
- {
-! return (bhdr_T *)mf_hash_find(&mfp->mf_hash, nr);
- }
-
- /*
-***************
-*** 1187,1193 ****
- {
- bhdr_T *freep;
- blocknr_T new_bnum;
-- int hash;
- NR_TRANS *np;
- int page_count;
-
---- 1164,1169 ----
-***************
-*** 1235,1246 ****
- hp->bh_bnum = new_bnum;
- mf_ins_hash(mfp, hp); /* insert in new hash list */
-
-! hash = MEMHASH(np->nt_old_bnum); /* insert in trans list */
-! np->nt_next = mfp->mf_trans[hash];
-! mfp->mf_trans[hash] = np;
-! if (np->nt_next != NULL)
-! np->nt_next->nt_prev = np;
-! np->nt_prev = NULL;
-
- return OK;
- }
---- 1211,1218 ----
- hp->bh_bnum = new_bnum;
- mf_ins_hash(mfp, hp); /* insert in new hash list */
-
-! /* Insert "np" into "mf_trans" hashtable with key "np->nt_old_bnum" */
-! mf_hash_add_item(&mfp->mf_trans, (mf_hashitem_T *)np);
-
- return OK;
- }
-***************
-*** 1255,1279 ****
- memfile_T *mfp;
- blocknr_T old_nr;
- {
-- int hash;
- NR_TRANS *np;
- blocknr_T new_bnum;
-
-! hash = MEMHASH(old_nr);
-! for (np = mfp->mf_trans[hash]; np != NULL; np = np->nt_next)
-! if (np->nt_old_bnum == old_nr)
-! break;
- if (np == NULL) /* not found */
- return old_nr;
-
- mfp->mf_neg_count--;
- new_bnum = np->nt_new_bnum;
-! if (np->nt_prev != NULL) /* remove entry from the trans list */
-! np->nt_prev->nt_next = np->nt_next;
-! else
-! mfp->mf_trans[hash] = np->nt_next;
-! if (np->nt_next != NULL)
-! np->nt_next->nt_prev = np->nt_prev;
- vim_free(np);
-
- return new_bnum;
---- 1227,1246 ----
- memfile_T *mfp;
- blocknr_T old_nr;
- {
- NR_TRANS *np;
- blocknr_T new_bnum;
-
-! np = (NR_TRANS *)mf_hash_find(&mfp->mf_trans, old_nr);
-!
- if (np == NULL) /* not found */
- return old_nr;
-
- mfp->mf_neg_count--;
- new_bnum = np->nt_new_bnum;
-!
-! /* remove entry from the trans list */
-! mf_hash_rem_item(&mfp->mf_trans, (mf_hashitem_T *)np);
-!
- vim_free(np);
-
- return new_bnum;
-***************
-*** 1397,1399 ****
---- 1364,1570 ----
- mch_hide(mfp->mf_fname); /* try setting the 'hidden' flag */
- }
- }
-+
-+ /*
-+ * Implementation of mf_hashtab_T follows.
-+ */
-+
-+ /*
-+ * The number of buckets in the hashtable is increased by a factor of
-+ * MHT_GROWTH_FACTOR when the average number of items per bucket
-+ * exceeds 2 ^ MHT_LOG_LOAD_FACTOR.
-+ */
-+ #define MHT_LOG_LOAD_FACTOR 6
-+ #define MHT_GROWTH_FACTOR 2 /* must be a power of two */
-+
-+ /*
-+ * Initialize an empty hash table.
-+ */
-+ static void
-+ mf_hash_init(mht)
-+ mf_hashtab_T *mht;
-+ {
-+ vim_memset(mht, 0, sizeof(mf_hashtab_T));
-+ mht->mht_buckets = mht->mht_small_buckets;
-+ mht->mht_mask = MHT_INIT_SIZE - 1;
-+ }
-+
-+ /*
-+ * Free the array of a hash table. Does not free the items it contains!
-+ * The hash table must not be used again without another mf_hash_init() call.
-+ */
-+ static void
-+ mf_hash_free(mht)
-+ mf_hashtab_T *mht;
-+ {
-+ if (mht->mht_buckets != mht->mht_small_buckets)
-+ vim_free(mht->mht_buckets);
-+ }
-+
-+ /*
-+ * Free the array of a hash table and all the items it contains.
-+ */
-+ static void
-+ mf_hash_free_all(mht)
-+ mf_hashtab_T *mht;
-+ {
-+ long_u idx;
-+ mf_hashitem_T *mhi;
-+ mf_hashitem_T *next;
-+
-+ for (idx = 0; idx <= mht->mht_mask; idx++)
-+ for (mhi = mht->mht_buckets[idx]; mhi != NULL; mhi = next)
-+ {
-+ next = mhi->mhi_next;
-+ vim_free(mhi);
-+ }
-+
-+ mf_hash_free(mht);
-+ }
-+
-+ /*
-+ * Find "key" in hashtable "mht".
-+ * Returns a pointer to a mf_hashitem_T or NULL if the item was not found.
-+ */
-+ static mf_hashitem_T *
-+ mf_hash_find(mht, key)
-+ mf_hashtab_T *mht;
-+ blocknr_T key;
-+ {
-+ mf_hashitem_T *mhi;
-+
-+ mhi = mht->mht_buckets[key & mht->mht_mask];
-+ while (mhi != NULL && mhi->mhi_key != key)
-+ mhi = mhi->mhi_next;
-+
-+ return mhi;
-+ }
-+
-+ /*
-+ * Add item "mhi" to hashtable "mht".
-+ * "mhi" must not be NULL.
-+ */
-+ static void
-+ mf_hash_add_item(mht, mhi)
-+ mf_hashtab_T *mht;
-+ mf_hashitem_T *mhi;
-+ {
-+ long_u idx;
-+
-+ idx = mhi->mhi_key & mht->mht_mask;
-+ mhi->mhi_next = mht->mht_buckets[idx];
-+ mhi->mhi_prev = NULL;
-+ if (mhi->mhi_next != NULL)
-+ mhi->mhi_next->mhi_prev = mhi;
-+ mht->mht_buckets[idx] = mhi;
-+
-+ mht->mht_count++;
-+
-+ /*
-+ * Grow hashtable when we have more thank 2^MHT_LOG_LOAD_FACTOR
-+ * items per bucket on average
-+ */
-+ if (mht->mht_fixed == 0
-+ && (mht->mht_count >> MHT_LOG_LOAD_FACTOR) > mht->mht_mask)
-+ {
-+ if (mf_hash_grow(mht) == FAIL)
-+ {
-+ /* stop trying to grow after first failure to allocate memory */
-+ mht->mht_fixed = 1;
-+ }
-+ }
-+ }
-+
-+ /*
-+ * Remove item "mhi" from hashtable "mht".
-+ * "mhi" must not be NULL and must have been inserted into "mht".
-+ */
-+ static void
-+ mf_hash_rem_item(mht, mhi)
-+ mf_hashtab_T *mht;
-+ mf_hashitem_T *mhi;
-+ {
-+ if (mhi->mhi_prev == NULL)
-+ mht->mht_buckets[mhi->mhi_key & mht->mht_mask] = mhi->mhi_next;
-+ else
-+ mhi->mhi_prev->mhi_next = mhi->mhi_next;
-+
-+ if (mhi->mhi_next != NULL)
-+ mhi->mhi_next->mhi_prev = mhi->mhi_prev;
-+
-+ mht->mht_count--;
-+
-+ /* We could shrink the table here, but it typically takes little memory,
-+ * so why bother? */
-+ }
-+
-+ /*
-+ * Increase number of buckets in the hashtable by MHT_GROWTH_FACTOR and
-+ * rehash items.
-+ * Returns FAIL when out of memory.
-+ */
-+ static int
-+ mf_hash_grow(mht)
-+ mf_hashtab_T *mht;
-+ {
-+ long_u i, j;
-+ int shift;
-+ mf_hashitem_T *mhi;
-+ mf_hashitem_T *tails[MHT_GROWTH_FACTOR];
-+ mf_hashitem_T **buckets;
-+ size_t size;
-+
-+ size = (mht->mht_mask + 1) * MHT_GROWTH_FACTOR * sizeof(void *);
-+ buckets = (mf_hashitem_T **)lalloc_clear(size, FALSE);
-+ if (buckets == NULL)
-+ return FAIL;
-+
-+ shift = 0;
-+ while ((mht->mht_mask >> shift) != 0)
-+ shift++;
-+
-+ for (i = 0; i <= mht->mht_mask; i++)
-+ {
-+ /*
-+ * Traverse the items in the i-th original bucket and move them into
-+ * MHT_GROWTH_FACTOR new buckets, preserving their relative order
-+ * within each new bucket. Preserving the order is important because
-+ * mf_get() tries to keep most recently used items at the front of
-+ * each bucket.
-+ *
-+ * Here we strongly rely on the fact the hashes are computed modulo
-+ * a power of two.
-+ */
-+
-+ vim_memset(tails, 0, sizeof(tails));
-+
-+ for (mhi = mht->mht_buckets[i]; mhi != NULL; mhi = mhi->mhi_next)
-+ {
-+ j = (mhi->mhi_key >> shift) & (MHT_GROWTH_FACTOR - 1);
-+ if (tails[j] == NULL)
-+ {
-+ buckets[i + (j << shift)] = mhi;
-+ tails[j] = mhi;
-+ mhi->mhi_prev = NULL;
-+ }
-+ else
-+ {
-+ tails[j]->mhi_next = mhi;
-+ mhi->mhi_prev = tails[j];
-+ tails[j] = mhi;
-+ }
-+ }
-+
-+ for (j = 0; j < MHT_GROWTH_FACTOR; j++)
-+ if (tails[j] != NULL)
-+ tails[j]->mhi_next = NULL;
-+ }
-+
-+ if (mht->mht_buckets != mht->mht_small_buckets)
-+ vim_free(mht->mht_buckets);
-+
-+ mht->mht_buckets = buckets;
-+ mht->mht_mask = (mht->mht_mask + 1) * MHT_GROWTH_FACTOR - 1;
-+
-+ return OK;
-+ }
-*** ../vim-7.3.142/src/memfile_test.c 2011-03-03 21:58:14.000000000 +0100
---- src/memfile_test.c 2011-03-03 20:40:29.000000000 +0100
-***************
-*** 0 ****
---- 1,145 ----
-+ /* vi:set ts=8 sts=4 sw=4:
-+ *
-+ * VIM - Vi IMproved by Bram Moolenaar
-+ *
-+ * Do ":help uganda" in Vim to read copying and usage conditions.
-+ * Do ":help credits" in Vim to see a list of people who contributed.
-+ * See README.txt for an overview of the Vim source code.
-+ */
-+
-+ /*
-+ * memfile_test.c: Unittests for memfile.c
-+ * Mostly by Ivan Krasilnikov.
-+ */
-+
-+ #undef NDEBUG
-+ #include <assert.h>
-+
-+ /* Must include main.c because it contains much more than just main() */
-+ #define NO_VIM_MAIN
-+ #include "main.c"
-+
-+ /* This file has to be included because the tested functions are static */
-+ #include "memfile.c"
-+
-+ #define index_to_key(i) ((i) ^ 15167)
-+ #define TEST_COUNT 50000
-+
-+ static void test_mf_hash __ARGS((void));
-+
-+ /*
-+ * Test mf_hash_*() functions.
-+ */
-+ static void
-+ test_mf_hash()
-+ {
-+ mf_hashtab_T ht;
-+ mf_hashitem_T *item;
-+ blocknr_T key;
-+ long_u i;
-+ long_u num_buckets;
-+
-+ mf_hash_init(&ht);
-+
-+ /* insert some items and check invariants */
-+ for (i = 0; i < TEST_COUNT; i++)
-+ {
-+ assert(ht.mht_count == i);
-+
-+ /* check that number of buckets is a power of 2 */
-+ num_buckets = ht.mht_mask + 1;
-+ assert(num_buckets > 0 && (num_buckets & (num_buckets - 1)) == 0);
-+
-+ /* check load factor */
-+ assert(ht.mht_count <= (num_buckets << MHT_LOG_LOAD_FACTOR));
-+
-+ if (i < (MHT_INIT_SIZE << MHT_LOG_LOAD_FACTOR))
-+ {
-+ /* first expansion shouldn't have occurred yet */
-+ assert(num_buckets == MHT_INIT_SIZE);
-+ assert(ht.mht_buckets == ht.mht_small_buckets);
-+ }
-+ else
-+ {
-+ assert(num_buckets > MHT_INIT_SIZE);
-+ assert(ht.mht_buckets != ht.mht_small_buckets);
-+ }
-+
-+ key = index_to_key(i);
-+ assert(mf_hash_find(&ht, key) == NULL);
-+
-+ /* allocate and add new item */
-+ item = (mf_hashitem_T *)lalloc_clear(sizeof(mf_hashtab_T), FALSE);
-+ assert(item != NULL);
-+ item->mhi_key = key;
-+ mf_hash_add_item(&ht, item);
-+
-+ assert(mf_hash_find(&ht, key) == item);
-+
-+ if (ht.mht_mask + 1 != num_buckets)
-+ {
-+ /* hash table was expanded */
-+ assert(ht.mht_mask + 1 == num_buckets * MHT_GROWTH_FACTOR);
-+ assert(i + 1 == (num_buckets << MHT_LOG_LOAD_FACTOR));
-+ }
-+ }
-+
-+ /* check presence of inserted items */
-+ for (i = 0; i < TEST_COUNT; i++)
-+ {
-+ key = index_to_key(i);
-+ item = mf_hash_find(&ht, key);
-+ assert(item != NULL);
-+ assert(item->mhi_key == key);
-+ }
-+
-+ /* delete some items */
-+ for (i = 0; i < TEST_COUNT; i++)
-+ {
-+ if (i % 100 < 70)
-+ {
-+ key = index_to_key(i);
-+ item = mf_hash_find(&ht, key);
-+ assert(item != NULL);
-+ assert(item->mhi_key == key);
-+
-+ mf_hash_rem_item(&ht, item);
-+ assert(mf_hash_find(&ht, key) == NULL);
-+
-+ mf_hash_add_item(&ht, item);
-+ assert(mf_hash_find(&ht, key) == item);
-+
-+ mf_hash_rem_item(&ht, item);
-+ assert(mf_hash_find(&ht, key) == NULL);
-+
-+ vim_free(item);
-+ }
-+ }
-+
-+ /* check again */
-+ for (i = 0; i < TEST_COUNT; i++)
-+ {
-+ key = index_to_key(i);
-+ item = mf_hash_find(&ht, key);
-+
-+ if (i % 100 < 70)
-+ {
-+ assert(item == NULL);
-+ }
-+ else
-+ {
-+ assert(item != NULL);
-+ assert(item->mhi_key == key);
-+ }
-+ }
-+
-+ /* free hash table and all remaining items */
-+ mf_hash_free_all(&ht);
-+ }
-+
-+ int
-+ main()
-+ {
-+ test_mf_hash();
-+ return 0;
-+ }
-*** ../vim-7.3.142/src/structs.h 2011-02-15 17:39:14.000000000 +0100
---- src/structs.h 2011-03-03 18:49:01.000000000 +0100
-***************
-*** 378,383 ****
---- 378,412 ----
- typedef long blocknr_T;
-
- /*
-+ * mf_hashtab_T is a chained hashtable with blocknr_T key and arbitrary
-+ * structures as items. This is an intrusive data structure: we require
-+ * that items begin with mf_hashitem_T which contains the key and linked
-+ * list pointers. List of items in each bucket is doubly-linked.
-+ */
-+
-+ typedef struct mf_hashitem_S mf_hashitem_T;
-+
-+ struct mf_hashitem_S
-+ {
-+ mf_hashitem_T *mhi_next;
-+ mf_hashitem_T *mhi_prev;
-+ blocknr_T mhi_key;
-+ };
-+
-+ #define MHT_INIT_SIZE 64
-+
-+ typedef struct mf_hashtab_S
-+ {
-+ long_u mht_mask; /* mask used for hash value (nr of items
-+ * in array is "mht_mask" + 1) */
-+ long_u mht_count; /* nr of items inserted into hashtable */
-+ mf_hashitem_T **mht_buckets; /* points to mht_small_buckets or
-+ *dynamically allocated array */
-+ mf_hashitem_T *mht_small_buckets[MHT_INIT_SIZE]; /* initial buckets */
-+ char mht_fixed; /* non-zero value forbids growth */
-+ } mf_hashtab_T;
-+
-+ /*
- * for each (previously) used block in the memfile there is one block header.
- *
- * The block may be linked in the used list OR in the free list.
-***************
-*** 394,404 ****
-
- struct block_hdr
- {
- bhdr_T *bh_next; /* next block_hdr in free or used list */
- bhdr_T *bh_prev; /* previous block_hdr in used list */
-- bhdr_T *bh_hash_next; /* next block_hdr in hash list */
-- bhdr_T *bh_hash_prev; /* previous block_hdr in hash list */
-- blocknr_T bh_bnum; /* block number */
- char_u *bh_data; /* pointer to memory (for used block) */
- int bh_page_count; /* number of pages in this block */
-
---- 423,433 ----
-
- struct block_hdr
- {
-+ mf_hashitem_T bh_hashitem; /* header for hash table and key */
-+ #define bh_bnum bh_hashitem.mhi_key /* block number, part of bh_hashitem */
-+
- bhdr_T *bh_next; /* next block_hdr in free or used list */
- bhdr_T *bh_prev; /* previous block_hdr in used list */
- char_u *bh_data; /* pointer to memory (for used block) */
- int bh_page_count; /* number of pages in this block */
-
-***************
-*** 417,425 ****
-
- struct nr_trans
- {
-! NR_TRANS *nt_next; /* next nr_trans in hash list */
-! NR_TRANS *nt_prev; /* previous nr_trans in hash list */
-! blocknr_T nt_old_bnum; /* old, negative, number */
- blocknr_T nt_new_bnum; /* new, positive, number */
- };
-
---- 446,454 ----
-
- struct nr_trans
- {
-! mf_hashitem_T nt_hashitem; /* header for hash table and key */
-! #define nt_old_bnum nt_hashitem.mhi_key /* old, negative, number */
-!
- blocknr_T nt_new_bnum; /* new, positive, number */
- };
-
-***************
-*** 499,510 ****
-
- typedef struct file_buffer buf_T; /* forward declaration */
-
-- /*
-- * Simplistic hashing scheme to quickly locate the blocks in the used list.
-- * 64 blocks are found directly (64 * 4K = 256K, most files are smaller).
-- */
-- #define MEMHASHSIZE 64
-- #define MEMHASH(nr) ((nr) & (MEMHASHSIZE - 1))
- #define MF_SEED_LEN 8
-
- struct memfile
---- 528,533 ----
-***************
-*** 517,524 ****
- bhdr_T *mf_used_last; /* lru block_hdr in used list */
- unsigned mf_used_count; /* number of pages in used list */
- unsigned mf_used_count_max; /* maximum number of pages in memory */
-! bhdr_T *mf_hash[MEMHASHSIZE]; /* array of hash lists */
-! NR_TRANS *mf_trans[MEMHASHSIZE]; /* array of trans lists */
- blocknr_T mf_blocknr_max; /* highest positive block number + 1*/
- blocknr_T mf_blocknr_min; /* lowest negative block number - 1 */
- blocknr_T mf_neg_count; /* number of negative blocks numbers */
---- 540,547 ----
- bhdr_T *mf_used_last; /* lru block_hdr in used list */
- unsigned mf_used_count; /* number of pages in used list */
- unsigned mf_used_count_max; /* maximum number of pages in memory */
-! mf_hashtab_T mf_hash; /* hash lists */
-! mf_hashtab_T mf_trans; /* trans lists */
- blocknr_T mf_blocknr_max; /* highest positive block number + 1*/
- blocknr_T mf_blocknr_min; /* lowest negative block number - 1 */
- blocknr_T mf_neg_count; /* number of negative blocks numbers */
-*** ../vim-7.3.142/src/testdir/Make_amiga.mak 2010-11-10 16:54:16.000000000 +0100
---- src/testdir/Make_amiga.mak 2011-03-03 17:04:14.000000000 +0100
-***************
-*** 28,34 ****
- 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
-
---- 28,34 ----
- 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 test77.out
-
- .SUFFIXES: .in .out
-
-***************
-*** 124,126 ****
---- 124,127 ----
- test74.out: test74.in
- test75.out: test75.in
- test76.out: test76.in
-+ test77.out: test77.in
-*** ../vim-7.3.142/src/testdir/Make_dos.mak 2010-11-10 16:54:16.000000000 +0100
---- src/testdir/Make_dos.mak 2011-03-03 17:04:20.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 test76.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 test77.out
-
- SCRIPTS32 = test50.out test70.out
-
-*** ../vim-7.3.142/src/testdir/Make_ming.mak 2010-11-10 16:54:16.000000000 +0100
---- src/testdir/Make_ming.mak 2011-03-03 17:04:32.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 test76.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 test77.out
-
- SCRIPTS32 = test50.out test70.out
-
-*** ../vim-7.3.142/src/testdir/Make_os2.mak 2010-11-10 16:54:16.000000000 +0100
---- src/testdir/Make_os2.mak 2011-03-03 17:04:48.000000000 +0100
-***************
-*** 28,34 ****
- 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
-
---- 28,34 ----
- 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 test77.out
-
- .SUFFIXES: .in .out
-
-*** ../vim-7.3.142/src/testdir/Makefile 2010-11-10 16:54:16.000000000 +0100
---- src/testdir/Makefile 2011-03-22 17:03:25.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 test76.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 test77.out
-
- SCRIPTS_GUI = test16.out
-
-***************
-*** 71,77 ****
- fi \
- else echo $* NO OUTPUT >>test.log; \
- fi"
-! -rm -rf X* test.ok viminfo
-
- test49.out: test49.vim
-
---- 71,77 ----
- fi \
- else echo $* NO OUTPUT >>test.log; \
- fi"
-! # -rm -rf X* test.ok viminfo
-
- test49.out: test49.vim
-
-*** ../vim-7.3.142/src/testdir/test77.in 2011-03-03 21:59:10.000000000 +0100
---- src/testdir/test77.in 2011-03-22 17:12:38.000000000 +0100
-***************
-*** 0 ****
---- 1,27 ----
-+ Inserts 2 million lines with consecutive integers starting from 1
-+ (essentially, the output of GNU's seq 1 2000000), writes them to Xtest
-+ and writes its cksum to test.out.
-+
-+ We need 2 million lines to trigger a call to mf_hash_grow(). If it would mess
-+ up the lines the checksum would differ.
-+
-+ cksum is part of POSIX and so should be available on most Unixes.
-+ If it isn't available then the test will be skipped.
-+
-+ STARTTEST
-+ :so small.vim
-+ :if !executable("cksum")
-+ : e! test.ok
-+ : w! test.out
-+ : qa!
-+ :endif
-+ :set fileformat=unix undolevels=-1
-+ ggdG
-+ :let i = 1
-+ :while i <= 2000000 | call append(i, range(i, i + 99)) | let i += 100 | endwhile
-+ ggdd
-+ :w! Xtest
-+ :!cksum Xtest > test.out
-+ :qa!
-+ ENDTEST
-+
-*** ../vim-7.3.142/src/testdir/test77.ok 2011-03-03 21:59:10.000000000 +0100
---- src/testdir/test77.ok 2011-03-22 17:10:14.000000000 +0100
-***************
-*** 0 ****
---- 1 ----
-+ 3678979763 14888896 Xtest
-*** ../vim-7.3.142/src/version.c 2011-03-22 15:47:18.000000000 +0100
---- src/version.c 2011-03-22 18:01:48.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 143,
- /**/
-
---
-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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.144
-Fcc: 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.144
-Problem: Crash with ":python help(dir)". (Kearn Holliday)
-Solution: Fix the way the type is set on objects. (Tobias Columbus)
-Files: src/if_python.c
-
-
-*** ../vim-7.3.143/src/if_python.c 2010-11-16 19:25:56.000000000 +0100
---- src/if_python.c 2011-03-26 13:54:22.000000000 +0100
-***************
-*** 780,786 ****
- PythonIO_Init(void)
- {
- /* Fixups... */
-! OutputType.ob_type = &PyType_Type;
-
- return PythonIO_Init_io();
- }
---- 780,786 ----
- PythonIO_Init(void)
- {
- /* Fixups... */
-! PyType_Ready(&OutputType);
-
- return PythonIO_Init_io();
- }
-***************
-*** 1402,1413 ****
- static char *(argv[2]) = {"/must>not&exist/foo", NULL};
-
- /* Fixups... */
-! BufferType.ob_type = &PyType_Type;
-! RangeType.ob_type = &PyType_Type;
-! WindowType.ob_type = &PyType_Type;
-! BufListType.ob_type = &PyType_Type;
-! WinListType.ob_type = &PyType_Type;
-! CurrentType.ob_type = &PyType_Type;
-
- /* Set sys.argv[] to avoid a crash in warn(). */
- PySys_SetArgv(1, argv);
---- 1402,1413 ----
- static char *(argv[2]) = {"/must>not&exist/foo", NULL};
-
- /* Fixups... */
-! PyType_Ready(&BufferType);
-! PyType_Ready(&RangeType);
-! PyType_Ready(&WindowType);
-! PyType_Ready(&BufListType);
-! PyType_Ready(&WinListType);
-! PyType_Ready(&CurrentType);
-
- /* Set sys.argv[] to avoid a crash in warn(). */
- PySys_SetArgv(1, argv);
-*** ../vim-7.3.143/src/version.c 2011-03-22 18:10:34.000000000 +0100
---- src/version.c 2011-03-26 13:56:15.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 144,
- /**/
-
---
-The chat program is in public domain. This is not the GNU public license.
-If it breaks then you get to keep both pieces.
- -- Copyright notice for the chat program
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.145
-Fcc: 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.145 (after 7.3.144)
-Problem: Can't build with Python dynamically loading.
-Solution: Add dll_PyType_Ready.
-Files: src/if_python.c
-
-
-*** ../vim-7.3.144/src/if_python.c 2011-03-26 13:56:41.000000000 +0100
---- src/if_python.c 2011-03-26 18:10:00.000000000 +0100
-***************
-*** 165,170 ****
---- 165,171 ----
- # define PySys_SetObject dll_PySys_SetObject
- # define PySys_SetArgv dll_PySys_SetArgv
- # define PyType_Type (*dll_PyType_Type)
-+ # define PyType_Ready (*dll_PyType_Ready)
- # define Py_BuildValue dll_Py_BuildValue
- # define Py_FindMethod dll_Py_FindMethod
- # define Py_InitModule4 dll_Py_InitModule4
-***************
-*** 224,229 ****
---- 225,231 ----
- static int(*dll_PySys_SetObject)(char *, PyObject *);
- static int(*dll_PySys_SetArgv)(int, char **);
- static PyTypeObject* dll_PyType_Type;
-+ static int (*dll_PyType_Ready)(PyTypeObject *type);
- 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);
-***************
-*** 305,310 ****
---- 307,313 ----
- {"PySys_SetObject", (PYTHON_PROC*)&dll_PySys_SetObject},
- {"PySys_SetArgv", (PYTHON_PROC*)&dll_PySys_SetArgv},
- {"PyType_Type", (PYTHON_PROC*)&dll_PyType_Type},
-+ {"PyType_Ready", (PYTHON_PROC*)&dll_PyType_Ready},
- {"Py_BuildValue", (PYTHON_PROC*)&dll_Py_BuildValue},
- {"Py_FindMethod", (PYTHON_PROC*)&dll_Py_FindMethod},
- # if (PY_VERSION_HEX >= 0x02050000) && SIZEOF_SIZE_T != SIZEOF_INT
-*** ../vim-7.3.144/src/version.c 2011-03-26 13:56:41.000000000 +0100
---- src/version.c 2011-03-26 18:11:19.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 145,
- /**/
-
---
-This message contains 78% recycled characters.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.146
-Fcc: 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.146
-Problem: It's possible to assign to a read-only member of a dict.
- It's possible to create a global variable "0". (ZyX)
- It's possible to add a v: variable with ":let v:.name = 1".
-Solution: Add check for dict item being read-only.
- Check the name of g: variables.
- Disallow adding v: variables.
-Files: src/eval.c
-
-
-*** ../vim-7.3.145/src/eval.c 2011-02-01 13:48:47.000000000 +0100
---- src/eval.c 2011-03-27 15:56:44.000000000 +0200
-***************
-*** 789,794 ****
---- 789,796 ----
- static void set_var __ARGS((char_u *name, typval_T *varp, int copy));
- static int var_check_ro __ARGS((int flags, char_u *name));
- static int var_check_fixed __ARGS((int flags, char_u *name));
-+ static int var_check_func_name __ARGS((char_u *name, int new_var));
-+ static int valid_varname __ARGS((char_u *varname));
- static int tv_check_lock __ARGS((int lock, char_u *name));
- static int item_copy __ARGS((typval_T *from, typval_T *to, int deep, int copyID));
- static char_u *find_option_end __ARGS((char_u **arg, int *opt_flags));
-***************
-*** 2716,2723 ****
---- 2718,2744 ----
- lp->ll_list = NULL;
- lp->ll_dict = lp->ll_tv->vval.v_dict;
- lp->ll_di = dict_find(lp->ll_dict, key, len);
-+
-+ /* When assigning to g: check that a function and variable name is
-+ * valid. */
-+ if (rettv != NULL && lp->ll_dict == &globvardict)
-+ {
-+ if (rettv->v_type == VAR_FUNC
-+ && var_check_func_name(key, lp->ll_di == NULL))
-+ return NULL;
-+ if (!valid_varname(key))
-+ return NULL;
-+ }
-+
- if (lp->ll_di == NULL)
- {
-+ /* Can't add "v:" variable. */
-+ if (lp->ll_dict == &vimvardict)
-+ {
-+ EMSG2(_(e_illvar), name);
-+ return NULL;
-+ }
-+
- /* Key does not exist in dict: may need to add it. */
- if (*p == '[' || *p == '.' || unlet)
- {
-***************
-*** 2737,2742 ****
---- 2758,2767 ----
- p = NULL;
- break;
- }
-+ /* existing variable, need to check if it can be changed */
-+ else if (var_check_ro(lp->ll_di->di_flags, name))
-+ return NULL;
-+
- if (len == -1)
- clear_tv(&var1);
- lp->ll_tv = &lp->ll_di->di_tv;
-***************
-*** 19786,19792 ****
- dictitem_T *v;
- char_u *varname;
- hashtab_T *ht;
-- char_u *p;
-
- ht = find_var_ht(name, &varname);
- if (ht == NULL || *varname == NUL)
---- 19811,19816 ----
-***************
-*** 19796,19820 ****
- }
- v = find_var_in_ht(ht, varname, TRUE);
-
-! if (tv->v_type == VAR_FUNC)
-! {
-! if (!(vim_strchr((char_u *)"wbs", name[0]) != NULL && name[1] == ':')
-! && !ASCII_ISUPPER((name[0] != NUL && name[1] == ':')
-! ? name[2] : name[0]))
-! {
-! EMSG2(_("E704: Funcref variable name must start with a capital: %s"), name);
-! return;
-! }
-! /* Don't allow hiding a function. When "v" is not NULL we might be
-! * assigning another function to the same var, the type is checked
-! * below. */
-! if (v == NULL && function_exists(name))
-! {
-! EMSG2(_("E705: Variable name conflicts with existing function: %s"),
-! name);
-! return;
-! }
-! }
-
- if (v != NULL)
- {
---- 19820,19827 ----
- }
- v = find_var_in_ht(ht, varname, TRUE);
-
-! if (tv->v_type == VAR_FUNC && var_check_func_name(name, v == NULL))
-! return;
-
- if (v != NULL)
- {
-***************
-*** 19880,19892 ****
- }
-
- /* Make sure the variable name is valid. */
-! for (p = varname; *p != NUL; ++p)
-! if (!eval_isnamec1(*p) && (p == varname || !VIM_ISDIGIT(*p))
-! && *p != AUTOLOAD_CHAR)
-! {
-! EMSG2(_(e_illvar), varname);
-! return;
-! }
-
- v = (dictitem_T *)alloc((unsigned)(sizeof(dictitem_T)
- + STRLEN(varname)));
---- 19887,19894 ----
- }
-
- /* Make sure the variable name is valid. */
-! if (!valid_varname(varname))
-! return;
-
- v = (dictitem_T *)alloc((unsigned)(sizeof(dictitem_T)
- + STRLEN(varname)));
-***************
-*** 19951,19956 ****
---- 19953,20007 ----
- }
-
- /*
-+ * Check if a funcref is assigned to a valid variable name.
-+ * Return TRUE and give an error if not.
-+ */
-+ static int
-+ var_check_func_name(name, new_var)
-+ char_u *name; /* points to start of variable name */
-+ int new_var; /* TRUE when creating the variable */
-+ {
-+ if (!(vim_strchr((char_u *)"wbs", name[0]) != NULL && name[1] == ':')
-+ && !ASCII_ISUPPER((name[0] != NUL && name[1] == ':')
-+ ? name[2] : name[0]))
-+ {
-+ EMSG2(_("E704: Funcref variable name must start with a capital: %s"),
-+ name);
-+ return TRUE;
-+ }
-+ /* Don't allow hiding a function. When "v" is not NULL we might be
-+ * assigning another function to the same var, the type is checked
-+ * below. */
-+ if (new_var && function_exists(name))
-+ {
-+ EMSG2(_("E705: Variable name conflicts with existing function: %s"),
-+ name);
-+ return TRUE;
-+ }
-+ return FALSE;
-+ }
-+
-+ /*
-+ * Check if a variable name is valid.
-+ * Return FALSE and give an error if not.
-+ */
-+ static int
-+ valid_varname(varname)
-+ char_u *varname;
-+ {
-+ char_u *p;
-+
-+ for (p = varname; *p != NUL; ++p)
-+ if (!eval_isnamec1(*p) && (p == varname || !VIM_ISDIGIT(*p))
-+ && *p != AUTOLOAD_CHAR)
-+ {
-+ EMSG2(_(e_illvar), varname);
-+ return FALSE;
-+ }
-+ return TRUE;
-+ }
-+
-+ /*
- * Return TRUE if typeval "tv" is set to be locked (immutable).
- * Also give an error message, using "name".
- */
-*** ../vim-7.3.145/src/version.c 2011-03-26 18:32:00.000000000 +0100
---- src/version.c 2011-03-27 16:01:03.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 146,
- /**/
-
---
-ARTHUR: It is I, Arthur, son of Uther Pendragon, from the castle of Camelot.
- King of all Britons, defeator of the Saxons, sovereign of all England!
- [Pause]
-SOLDIER: Get away!
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.147
-Fcc: 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.147 (after 7.3.143)
-Problem: Can't build on HP-UX.
-Solution: Remove an unnecessary backslash. (John Marriott)
-Files: src/Makefile
-
-
-*** ../vim-7.3.146/src/Makefile 2011-03-22 18:10:34.000000000 +0100
---- src/Makefile 2011-04-01 13:00:58.000000000 +0200
-***************
-*** 1565,1571 ****
-
- OBJ = $(OBJ_COMMON) \
- objects/main.o \
-! objects/memfile.o \
-
- MEMFILE_TEST_OBJ = $(OBJ_COMMON) \
- objects/memfile_test.o
---- 1565,1571 ----
-
- OBJ = $(OBJ_COMMON) \
- objects/main.o \
-! objects/memfile.o
-
- MEMFILE_TEST_OBJ = $(OBJ_COMMON) \
- objects/memfile_test.o
-*** ../vim-7.3.146/src/version.c 2011-03-27 16:03:09.000000000 +0200
---- src/version.c 2011-04-01 13:05:18.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 147,
- /**/
-
---
-DENNIS: You can't expect to wield supreme executive power just 'cause some
- watery tart threw a sword at you!
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.148
-Fcc: 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.148
-Problem: A syntax file with a huge number of items or clusters causes weird
- behavior, a hang or a crash. (Yukihiro Nakadaira)
-Solution: Check running out of IDs. (partly by Ben Schmidt)
-Files: src/syntax.c
-
-
-*** ../vim-7.3.147/src/syntax.c 2011-01-22 00:58:15.000000000 +0100
---- src/syntax.c 2011-04-01 14:25:39.000000000 +0200
-***************
-*** 219,234 ****
-
- /*
- * Syntax group IDs have different types:
-! * 0 - 9999 normal syntax groups
-! * 10000 - 14999 ALLBUT indicator (current_syn_inc_tag added)
-! * 15000 - 19999 TOP indicator (current_syn_inc_tag added)
-! * 20000 - 24999 CONTAINED indicator (current_syn_inc_tag added)
-! * >= 25000 cluster IDs (subtract SYNID_CLUSTER for the cluster ID)
-! */
-! #define SYNID_ALLBUT 10000 /* syntax group ID for contains=ALLBUT */
-! #define SYNID_TOP 15000 /* syntax group ID for contains=TOP */
-! #define SYNID_CONTAINED 20000 /* syntax group ID for contains=CONTAINED */
-! #define SYNID_CLUSTER 25000 /* first syntax group ID for clusters */
-
- /*
- * Annoying Hack(TM): ":syn include" needs this pointer to pass to
---- 219,238 ----
-
- /*
- * Syntax group IDs have different types:
-! * 0 - 19999 normal syntax groups
-! * 20000 - 20999 ALLBUT indicator (current_syn_inc_tag added)
-! * 21000 - 21999 TOP indicator (current_syn_inc_tag added)
-! * 22000 - 22999 CONTAINED indicator (current_syn_inc_tag added)
-! * 23000 - 32767 cluster IDs (subtract SYNID_CLUSTER for the cluster ID)
-! */
-! #define SYNID_ALLBUT 20000 /* syntax group ID for contains=ALLBUT */
-! #define SYNID_TOP 21000 /* syntax group ID for contains=TOP */
-! #define SYNID_CONTAINED 22000 /* syntax group ID for contains=CONTAINED */
-! #define SYNID_CLUSTER 23000 /* first syntax group ID for clusters */
-!
-! #define MAX_SYNID SYNID_ALLBUT
-! #define MAX_SYN_INC_TAG 999 /* maximum before the above overflow */
-! #define MAX_CLUSTER_ID (32767 - SYNID_CLUSTER)
-
- /*
- * Annoying Hack(TM): ":syn include" needs this pointer to pass to
-***************
-*** 3442,3447 ****
---- 3446,3454 ----
- /* free the stored states */
- syn_stack_free_all(block);
- invalidate_current_state();
-+
-+ /* Reset the counter for ":syn include" */
-+ running_syn_inc_tag = 0;
- }
-
- /*
-***************
-*** 4661,4666 ****
---- 4668,4675 ----
- return;
- }
- sgl_id = syn_check_cluster(arg, (int)(group_name_end - arg));
-+ if (sgl_id == 0)
-+ return;
- /* separate_nextcmd() and expand_filename() depend on this */
- eap->arg = rest;
- }
-***************
-*** 4689,4694 ****
---- 4698,4708 ----
- * Save and restore the existing top-level grouplist id and ":syn
- * include" tag around the actual inclusion.
- */
-+ if (running_syn_inc_tag >= MAX_SYN_INC_TAG)
-+ {
-+ EMSG((char_u *)_("E847: Too many syntax includes"));
-+ return;
-+ }
- prev_syn_inc_tag = current_syn_inc_tag;
- current_syn_inc_tag = ++running_syn_inc_tag;
- prev_toplvl_grp = curwin->w_s->b_syn_topgrp;
-***************
-*** 4712,4718 ****
- char_u *group_name_end;
- int syn_id;
- char_u *rest;
-! char_u *keyword_copy;
- char_u *p;
- char_u *kw;
- syn_opt_arg_T syn_opt_arg;
---- 4726,4732 ----
- char_u *group_name_end;
- int syn_id;
- char_u *rest;
-! char_u *keyword_copy = NULL;
- char_u *p;
- char_u *kw;
- syn_opt_arg_T syn_opt_arg;
-***************
-*** 4724,4732 ****
- if (rest != NULL)
- {
- syn_id = syn_check_group(arg, (int)(group_name_end - arg));
-!
-! /* allocate a buffer, for removing the backslashes in the keyword */
-! keyword_copy = alloc((unsigned)STRLEN(rest) + 1);
- if (keyword_copy != NULL)
- {
- syn_opt_arg.flags = 0;
---- 4738,4746 ----
- if (rest != NULL)
- {
- syn_id = syn_check_group(arg, (int)(group_name_end - arg));
-! if (syn_id != 0)
-! /* allocate a buffer, for removing backslashes in the keyword */
-! keyword_copy = alloc((unsigned)STRLEN(rest) + 1);
- if (keyword_copy != NULL)
- {
- syn_opt_arg.flags = 0;
-***************
-*** 5133,5139 ****
- (item == ITEM_SKIP) ? SPTYPE_SKIP : SPTYPE_END;
- SYN_ITEMS(curwin->w_s)[idx].sp_flags |= syn_opt_arg.flags;
- SYN_ITEMS(curwin->w_s)[idx].sp_syn.id = syn_id;
-! SYN_ITEMS(curwin->w_s)[idx].sp_syn.inc_tag = current_syn_inc_tag;
- SYN_ITEMS(curwin->w_s)[idx].sp_syn_match_id =
- ppp->pp_matchgroup_id;
- #ifdef FEAT_CONCEAL
---- 5147,5154 ----
- (item == ITEM_SKIP) ? SPTYPE_SKIP : SPTYPE_END;
- SYN_ITEMS(curwin->w_s)[idx].sp_flags |= syn_opt_arg.flags;
- SYN_ITEMS(curwin->w_s)[idx].sp_syn.id = syn_id;
-! SYN_ITEMS(curwin->w_s)[idx].sp_syn.inc_tag =
-! current_syn_inc_tag;
- SYN_ITEMS(curwin->w_s)[idx].sp_syn_match_id =
- ppp->pp_matchgroup_id;
- #ifdef FEAT_CONCEAL
-***************
-*** 5426,5431 ****
---- 5441,5454 ----
- curwin->w_s->b_syn_clusters.ga_growsize = 10;
- }
-
-+ len = curwin->w_s->b_syn_clusters.ga_len;
-+ if (len >= MAX_CLUSTER_ID)
-+ {
-+ EMSG((char_u *)_("E848: Too many syntax clusters"));
-+ vim_free(name);
-+ return 0;
-+ }
-+
- /*
- * Make room for at least one other cluster entry.
- */
-***************
-*** 5434,5440 ****
- vim_free(name);
- return 0;
- }
-- len = curwin->w_s->b_syn_clusters.ga_len;
-
- vim_memset(&(SYN_CLSTR(curwin->w_s)[len]), 0, sizeof(syn_cluster_T));
- SYN_CLSTR(curwin->w_s)[len].scl_name = name;
---- 5457,5462 ----
-***************
-*** 5476,5483 ****
-
- if (rest != NULL)
- {
-! scl_id = syn_check_cluster(arg, (int)(group_name_end - arg))
-! - SYNID_CLUSTER;
-
- for (;;)
- {
---- 5498,5507 ----
-
- if (rest != NULL)
- {
-! scl_id = syn_check_cluster(arg, (int)(group_name_end - arg));
-! if (scl_id == 0)
-! return;
-! scl_id -= SYNID_CLUSTER;
-
- for (;;)
- {
-***************
-*** 5516,5522 ****
- if (got_clstr)
- {
- redraw_curbuf_later(SOME_VALID);
-! syn_stack_free_all(curwin->w_s); /* Need to recompute all syntax. */
- }
- }
-
---- 5540,5546 ----
- if (got_clstr)
- {
- redraw_curbuf_later(SOME_VALID);
-! syn_stack_free_all(curwin->w_s); /* Need to recompute all. */
- }
- }
-
-***************
-*** 8972,8977 ****
---- 8996,9008 ----
- highlight_ga.ga_growsize = 10;
- }
-
-+ if (highlight_ga.ga_len >= MAX_SYNID)
-+ {
-+ EMSG(_("E849: Too many syntax groups"));
-+ vim_free(name);
-+ return 0;
-+ }
-+
- /*
- * Make room for at least one other syntax_highlight entry.
- */
-*** ../vim-7.3.147/src/version.c 2011-04-01 13:05:37.000000000 +0200
---- src/version.c 2011-04-01 14:26:44.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 148,
- /**/
-
---
-BLACK KNIGHT: None shall pass.
-ARTHUR: I have no quarrel with you, brave Sir knight, but I must cross
- this bridge.
-BLACK KNIGHT: Then you shall die.
- "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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.149
-Fcc: 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.149
-Problem: The cursor disappears after the processing of the 'setDot'
- netbeans command when vim runs in a terminal.
-Solution: Show the cursor after a screen update. (Xavier de Gaye, 2011
-Files: src/netbeans.c
-
-
-*** ../vim-7.3.148/src/netbeans.c 2011-01-04 18:11:39.000000000 +0100
---- src/netbeans.c 2011-04-01 15:33:49.000000000 +0200
-***************
-*** 191,196 ****
---- 191,197 ----
- changed_window_setting();
- update_screen(CLEAR);
- setcursor();
-+ cursor_on();
- out_flush();
- #ifdef FEAT_GUI
- if (gui.in_use)
-***************
-*** 2248,2253 ****
---- 2249,2255 ----
- update_topline(); /* scroll to show the line */
- update_screen(VALID);
- setcursor();
-+ cursor_on();
- out_flush();
- #ifdef FEAT_GUI
- if (gui.in_use)
-***************
-*** 2642,2647 ****
---- 2644,2650 ----
- {
- update_screen(NOT_VALID);
- setcursor();
-+ cursor_on();
- out_flush();
- #ifdef FEAT_GUI
- if (gui.in_use)
-***************
-*** 3008,3013 ****
---- 3011,3017 ----
- changed_window_setting();
- update_screen(CLEAR);
- setcursor();
-+ cursor_on();
- out_flush();
- #ifdef FEAT_GUI
- if (gui.in_use)
-*** ../vim-7.3.148/src/version.c 2011-04-01 14:44:54.000000000 +0200
---- src/version.c 2011-04-01 15:33:21.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 149,
- /**/
-
---
-ARTHUR: You are indeed brave Sir knight, but the fight is mine.
-BLACK KNIGHT: Had enough?
-ARTHUR: You stupid bastard. You havn't got any arms left.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.150
-Fcc: 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.150
-Problem: readline() does not return the last line when the NL is missing.
- (Hong Xu)
-Solution: When at the end of the file Also check for a previous line.
-Files: src/eval.c
-
-
-*** ../vim-7.3.149/src/eval.c 2011-03-27 16:03:09.000000000 +0200
---- src/eval.c 2011-04-01 16:06:04.000000000 +0200
-***************
-*** 14305,14313 ****
- {
- if (buf[filtd] == '\n' || readlen <= 0)
- {
-! /* Only when in binary mode add an empty list item when the
-! * last line ends in a '\n'. */
-! if (!binary && readlen == 0 && filtd == 0)
- break;
-
- /* Found end-of-line or end-of-file: add a text line to the
---- 14305,14313 ----
- {
- if (buf[filtd] == '\n' || readlen <= 0)
- {
-! /* In binary mode add an empty list item when the last
-! * non-empty line ends in a '\n'. */
-! if (!binary && readlen == 0 && filtd == 0 && prev == NULL)
- break;
-
- /* Found end-of-line or end-of-file: add a text line to the
-***************
-*** 14372,14396 ****
-
- if (tolist == 0)
- {
-! /* "buf" is full, need to move text to an allocated buffer */
-! if (prev == NULL)
- {
-! prev = vim_strnsave(buf, buflen);
-! prevlen = buflen;
-! }
-! else
-! {
-! s = alloc((unsigned)(prevlen + buflen));
-! if (s != NULL)
- {
-! mch_memmove(s, prev, prevlen);
-! mch_memmove(s + prevlen, buf, buflen);
-! vim_free(prev);
-! prev = s;
-! prevlen += buflen;
- }
- }
-- filtd = 0;
- }
- else
- {
---- 14372,14399 ----
-
- if (tolist == 0)
- {
-! if (buflen >= FREAD_SIZE / 2)
- {
-! /* "buf" is full, need to move text to an allocated buffer */
-! if (prev == NULL)
-! {
-! prev = vim_strnsave(buf, buflen);
-! prevlen = buflen;
-! }
-! else
- {
-! s = alloc((unsigned)(prevlen + buflen));
-! if (s != NULL)
-! {
-! mch_memmove(s, prev, prevlen);
-! mch_memmove(s + prevlen, buf, buflen);
-! vim_free(prev);
-! prev = s;
-! prevlen += buflen;
-! }
- }
-+ filtd = 0;
- }
- }
- else
- {
-*** ../vim-7.3.149/src/version.c 2011-04-01 15:33:54.000000000 +0200
---- src/version.c 2011-04-01 16:04:42.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 150,
- /**/
-
---
-ARTHUR: What are you going to do. bleed on me?
- "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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.151
-Fcc: 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.151 (after 7.3.074)
-Problem: When "unnamedplus" is in 'clipboard' the selection is sometimes
- also copied to the star register.
-Solution: Avoid copy to the star register when undesired. (James Vega)
-Files: src/ops.c
-
-
-*** ../vim-7.3.150/src/ops.c 2010-12-08 14:23:08.000000000 +0100
---- src/ops.c 2011-04-01 16:23:10.000000000 +0200
-***************
-*** 3148,3157 ****
- /* 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);
---- 3148,3156 ----
- /* Copy the text from register 0 to the clipboard register. */
- copy_yank_reg(&(y_regs[PLUS_REGISTER]));
-
- clip_own_selection(&clip_plus);
- clip_gen_set_selection(&clip_plus);
-! if (!clip_isautosel() && !did_star && curr == &(y_regs[PLUS_REGISTER]))
- {
- copy_yank_reg(&(y_regs[STAR_REGISTER]));
- clip_own_selection(&clip_star);
-*** ../vim-7.3.150/src/version.c 2011-04-01 16:07:41.000000000 +0200
---- src/version.c 2011-04-01 16:25:40.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 151,
- /**/
-
---
-BLACK KNIGHT: I'm invincible!
-ARTHUR: You're a looney.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.152
-Fcc: 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.152
-Problem: Xxd does not check for errors from library functions.
-Solution: Add error checks. (Florian Zumbiehl)
-Files: src/xxd/xxd.c
-
-
-*** ../vim-7.3.151/src/xxd/xxd.c 2010-08-15 21:57:25.000000000 +0200
---- src/xxd/xxd.c 2011-04-01 18:56:11.000000000 +0200
-***************
-*** 49,54 ****
---- 49,56 ----
- * option -b added: 01000101 binary output in normal format.
- * 16.05.00 Added VAXC changes by Stephen P. Wall
- * 16.05.00 Improved MMS file and merge for VMS by Zoltan Arpadffy
-+ * 2011 March Better error handling by Florian Zumbiehl.
-+ * 2011 April Formatting by Bram Moolenaar
- *
- * (c) 1990-1998 by Juergen Weigert (jnweiger@informatik.uni-erlangen.de)
- *
-***************
-*** 207,214 ****
-
- /* Let's collect some prototypes */
- /* CodeWarrior is really picky about missing prototypes */
-! static void exit_with_usage __P((char *));
-! static int huntype __P((FILE *, FILE *, FILE *, char *, int, int, long));
- static void xxdline __P((FILE *, char *, int));
-
- #define TRY_SEEK /* attempt to use lseek, or skip forward by reading */
---- 209,216 ----
-
- /* Let's collect some prototypes */
- /* CodeWarrior is really picky about missing prototypes */
-! static void exit_with_usage __P((void));
-! static int huntype __P((FILE *, FILE *, FILE *, int, int, long));
- static void xxdline __P((FILE *, char *, int));
-
- #define TRY_SEEK /* attempt to use lseek, or skip forward by reading */
-***************
-*** 223,231 ****
- #define HEX_CINCLUDE 2
- #define HEX_BITS 3 /* not hex a dump, but bits: 01111001 */
-
-! static void
-! exit_with_usage(pname)
-! char *pname;
- {
- fprintf(stderr, "Usage:\n %s [options] [infile [outfile]]\n", pname);
- fprintf(stderr, " or\n %s -r [-s [-]offset] [-c cols] [-ps] [infile [outfile]]\n", pname);
---- 225,234 ----
- #define HEX_CINCLUDE 2
- #define HEX_BITS 3 /* not hex a dump, but bits: 01111001 */
-
-! static char *pname;
-!
-! static void
-! exit_with_usage()
- {
- fprintf(stderr, "Usage:\n %s [options] [infile [outfile]]\n", pname);
- fprintf(stderr, " or\n %s -r [-s [-]offset] [-c cols] [-ps] [infile [outfile]]\n", pname);
-***************
-*** 252,257 ****
---- 255,269 ----
- exit(1);
- }
-
-+ static void
-+ die(ret)
-+ int ret;
-+ {
-+ fprintf(stderr, "%s: ", pname);
-+ perror(NULL);
-+ exit(ret);
-+ }
-+
- /*
- * Max. cols binary characters are decoded from the input stream per line.
- * Two adjacent garbage characters after evaluated data delimit valid data.
-***************
-*** 259,270 ****
- *
- * The name is historic and came from 'undo type opt h'.
- */
-! static int
-! huntype(fpi, fpo, fperr, pname, cols, hextype, base_off)
-! FILE *fpi, *fpo, *fperr;
-! char *pname;
-! int cols, hextype;
-! long base_off;
- {
- int c, ign_garb = 1, n1 = -1, n2 = 0, n3, p = cols;
- long have_off = 0, want_off = 0;
---- 271,281 ----
- *
- * The name is historic and came from 'undo type opt h'.
- */
-! static int
-! huntype(fpi, fpo, fperr, cols, hextype, base_off)
-! FILE *fpi, *fpo, *fperr;
-! int cols, hextype;
-! long base_off;
- {
- int c, ign_garb = 1, n1 = -1, n2 = 0, n3, p = cols;
- long have_off = 0, want_off = 0;
-***************
-*** 318,324 ****
-
- if (base_off + want_off != have_off)
- {
-! fflush(fpo);
- #ifdef TRY_SEEK
- c = fseek(fpo, base_off + want_off - have_off, 1);
- if (c >= 0)
---- 329,336 ----
-
- if (base_off + want_off != have_off)
- {
-! if (fflush(fpo) != 0)
-! die(3);
- #ifdef TRY_SEEK
- c = fseek(fpo, base_off + want_off - have_off, 1);
- if (c >= 0)
-***************
-*** 330,341 ****
- return 5;
- }
- for (; have_off < base_off + want_off; have_off++)
-! putc(0, fpo);
- }
-
- if (n2 >= 0 && n1 >= 0)
- {
-! putc((n2 << 4) | n1, fpo);
- have_off++;
- want_off++;
- n1 = -1;
---- 342,355 ----
- return 5;
- }
- for (; have_off < base_off + want_off; have_off++)
-! if (putc(0, fpo) == EOF)
-! die(3);
- }
-
- if (n2 >= 0 && n1 >= 0)
- {
-! if (putc((n2 << 4) | n1, fpo) == EOF)
-! die(3);
- have_off++;
- want_off++;
- n1 = -1;
-***************
-*** 345,350 ****
---- 359,366 ----
- want_off = 0;
- while ((c = getc(fpi)) != '\n' && c != EOF)
- ;
-+ if (c == EOF && ferror(fpi))
-+ die(2);
- ign_garb = 1;
- }
- }
-***************
-*** 355,369 ****
- want_off = 0;
- while ((c = getc(fpi)) != '\n' && c != EOF)
- ;
- ign_garb = 1;
- }
- }
-! fflush(fpo);
- #ifdef TRY_SEEK
- fseek(fpo, 0L, 2);
- #endif
-! fclose(fpo);
-! fclose(fpi);
- return 0;
- }
-
---- 371,390 ----
- want_off = 0;
- while ((c = getc(fpi)) != '\n' && c != EOF)
- ;
-+ if (c == EOF && ferror(fpi))
-+ die(2);
- ign_garb = 1;
- }
- }
-! if (fflush(fpo) != 0)
-! die(3);
- #ifdef TRY_SEEK
- fseek(fpo, 0L, 2);
- #endif
-! if (fclose(fpo) != 0)
-! die(3);
-! if (fclose(fpi) != 0)
-! die(2);
- return 0;
- }
-
-***************
-*** 379,389 ****
- *
- * If nz is always positive, lines are never suppressed.
- */
-! static void
- xxdline(fp, l, nz)
-! FILE *fp;
-! char *l;
-! int nz;
- {
- static char z[LLEN+1];
- static int zero_seen = 0;
---- 400,410 ----
- *
- * If nz is always positive, lines are never suppressed.
- */
-! static void
- xxdline(fp, l, nz)
-! FILE *fp;
-! char *l;
-! int nz;
- {
- static char z[LLEN+1];
- static int zero_seen = 0;
-***************
-*** 398,409 ****
- if (nz < 0)
- zero_seen--;
- if (zero_seen == 2)
-! fputs(z, fp);
- if (zero_seen > 2)
-! fputs("*\n", fp);
- }
- if (nz >= 0 || zero_seen > 0)
-! fputs(l, fp);
- if (nz)
- zero_seen = 0;
- }
---- 419,433 ----
- if (nz < 0)
- zero_seen--;
- if (zero_seen == 2)
-! if (fputs(z, fp) == EOF)
-! die(3);
- if (zero_seen > 2)
-! if (fputs("*\n", fp) == EOF)
-! die(3);
- }
- if (nz >= 0 || zero_seen > 0)
-! if (fputs(l, fp) == EOF)
-! die(3);
- if (nz)
- zero_seen = 0;
- }
-***************
-*** 439,448 ****
- 0070,0071,0372,0373,0374,0375,0376,0377
- };
-
-! int
- main(argc, argv)
-! int argc;
-! char *argv[];
- {
- FILE *fp, *fpo;
- int c, e, p = 0, relseek = 1, negseek = 0, revert = 0;
---- 463,472 ----
- 0070,0071,0372,0373,0374,0375,0376,0377
- };
-
-! int
- main(argc, argv)
-! int argc;
-! char *argv[];
- {
- FILE *fp, *fpo;
- int c, e, p = 0, relseek = 1, negseek = 0, revert = 0;
-***************
-*** 452,458 ****
- int grplen; /* total chars per octet group */
- long length = -1, n = 0, seekoff = 0;
- char l[LLEN+1];
-! char *pname, *pp;
-
- #ifdef AMIGA
- /* This program doesn't work when started from the Workbench */
---- 476,482 ----
- int grplen; /* total chars per octet group */
- long length = -1, n = 0, seekoff = 0;
- char l[LLEN+1];
-! char *pp;
-
- #ifdef AMIGA
- /* This program doesn't work when started from the Workbench */
-***************
-*** 495,501 ****
- else
- {
- if (!argv[2])
-! exit_with_usage(pname);
- cols = (int)strtol(argv[2], NULL, 0);
- argv++;
- argc--;
---- 519,525 ----
- else
- {
- if (!argv[2])
-! exit_with_usage();
- cols = (int)strtol(argv[2], NULL, 0);
- argv++;
- argc--;
-***************
-*** 508,514 ****
- else
- {
- if (!argv[2])
-! exit_with_usage(pname);
- octspergrp = (int)strtol(argv[2], NULL, 0);
- argv++;
- argc--;
---- 532,538 ----
- else
- {
- if (!argv[2])
-! exit_with_usage();
- octspergrp = (int)strtol(argv[2], NULL, 0);
- argv++;
- argc--;
-***************
-*** 531,537 ****
- else
- {
- if (!argv[2])
-! exit_with_usage(pname);
- #ifdef TRY_SEEK
- if (argv[2][0] == '+')
- relseek++;
---- 555,561 ----
- else
- {
- if (!argv[2])
-! exit_with_usage();
- #ifdef TRY_SEEK
- if (argv[2][0] == '+')
- relseek++;
-***************
-*** 550,556 ****
- else
- {
- if (!argv[2])
-! exit_with_usage(pname);
- length = strtol(argv[2], (char **)NULL, 0);
- argv++;
- argc--;
---- 574,580 ----
- else
- {
- if (!argv[2])
-! exit_with_usage();
- length = strtol(argv[2], (char **)NULL, 0);
- argv++;
- argc--;
-***************
-*** 563,569 ****
- break;
- }
- else if (pp[0] == '-' && pp[1]) /* unknown option */
-! exit_with_usage(pname);
- else
- break; /* not an option */
-
---- 587,593 ----
- break;
- }
- else if (pp[0] == '-' && pp[1]) /* unknown option */
-! exit_with_usage();
- else
- break; /* not an option */
-
-***************
-*** 602,608 ****
- octspergrp = cols;
-
- if (argc > 3)
-! exit_with_usage(pname);
-
- if (argc == 1 || (argv[1][0] == '-' && !argv[1][1]))
- BIN_ASSIGN(fp = stdin, !revert);
---- 626,632 ----
- octspergrp = cols;
-
- if (argc > 3)
-! exit_with_usage();
-
- if (argc == 1 || (argv[1][0] == '-' && !argv[1][1]))
- BIN_ASSIGN(fp = stdin, !revert);
-***************
-*** 640,646 ****
- fprintf(stderr, "%s: sorry, cannot revert this type of hexdump\n", pname);
- return -1;
- }
-! return huntype(fp, fpo, stderr, pname, cols, hextype,
- negseek ? -seekoff : seekoff);
- }
-
---- 664,670 ----
- fprintf(stderr, "%s: sorry, cannot revert this type of hexdump\n", pname);
- return -1;
- }
-! return huntype(fp, fpo, stderr, cols, hextype,
- negseek ? -seekoff : seekoff);
- }
-
-***************
-*** 664,670 ****
- long s = seekoff;
-
- while (s--)
-! (void)getc(fp);
- }
- }
-
---- 688,703 ----
- long s = seekoff;
-
- while (s--)
-! if (getc(fp) == EOF)
-! if (ferror(fp))
-! {
-! die(2);
-! }
-! else
-! {
-! fprintf(stderr, "%s: sorry cannot seek.\n", pname);
-! return 4;
-! }
- }
- }
-
-***************
-*** 672,725 ****
- {
- if (fp != stdin)
- {
-! fprintf(fpo, "unsigned char %s", isdigit((int)argv[1][0]) ? "__" : "");
- for (e = 0; (c = argv[1][e]) != 0; e++)
-! putc(isalnum(c) ? c : '_', fpo);
-! fputs("[] = {\n", fpo);
- }
-
- p = 0;
- while ((length < 0 || p < length) && (c = getc(fp)) != EOF)
- {
-! fprintf(fpo, (hexx == hexxa) ? "%s0x%02x" : "%s0X%02X",
-! (p % cols) ? ", " : ",\n "+2*!p, c);
- p++;
- }
-
- if (p)
-! fputs("\n};\n"+3*(fp == stdin), fpo);
-
- if (fp != stdin)
- {
-! fprintf(fpo, "unsigned int %s", isdigit((int)argv[1][0]) ? "__" : "");
- for (e = 0; (c = argv[1][e]) != 0; e++)
-! putc(isalnum(c) ? c : '_', fpo);
-! fprintf(fpo, "_len = %d;\n", p);
- }
-
-! fclose(fp);
-! fclose(fpo);
- return 0;
- }
-
- if (hextype == HEX_POSTSCRIPT)
- {
- p = cols;
- while ((length < 0 || n < length) && (e = getc(fp)) != EOF)
- {
-! putchar(hexx[(e >> 4) & 0xf]);
-! putchar(hexx[(e ) & 0xf]);
- n++;
- if (!--p)
- {
-! putchar('\n');
- p = cols;
- }
- }
- if (p < cols)
-! putchar('\n');
-! fclose(fp);
-! fclose(fpo);
- return 0;
- }
-
---- 705,779 ----
- {
- if (fp != stdin)
- {
-! if (fprintf(fpo, "unsigned char %s", isdigit((int)argv[1][0]) ? "__" : "") < 0)
-! die(3);
- for (e = 0; (c = argv[1][e]) != 0; e++)
-! if (putc(isalnum(c) ? c : '_', fpo) == EOF)
-! die(3);
-! if (fputs("[] = {\n", fpo) == EOF)
-! die(3);
- }
-
- p = 0;
-+ c = 0;
- while ((length < 0 || p < length) && (c = getc(fp)) != EOF)
- {
-! if (fprintf(fpo, (hexx == hexxa) ? "%s0x%02x" : "%s0X%02X",
-! (p % cols) ? ", " : ",\n "+2*!p, c) < 0)
-! die(3);
- p++;
- }
-+ if (c == EOF && ferror(fp))
-+ die(2);
-
- if (p)
-! if (fputs("\n};\n" + 3 * (fp == stdin), fpo) == EOF)
-! die(3);
-
- if (fp != stdin)
- {
-! if (fprintf(fpo, "unsigned int %s", isdigit((int)argv[1][0]) ? "__" : "") < 0)
-! die(3);
- for (e = 0; (c = argv[1][e]) != 0; e++)
-! if (putc(isalnum(c) ? c : '_', fpo) == EOF)
-! die(3);
-! if (fprintf(fpo, "_len = %d;\n", p) < 0)
-! die(3);
- }
-
-! if (fclose(fp))
-! die(2);
-! if (fclose(fpo))
-! die(3);
- return 0;
- }
-
- if (hextype == HEX_POSTSCRIPT)
- {
- p = cols;
-+ e = 0;
- while ((length < 0 || n < length) && (e = getc(fp)) != EOF)
- {
-! if (putc(hexx[(e >> 4) & 0xf], fpo) == EOF
-! || putc(hexx[e & 0xf], fpo) == EOF)
-! die(3);
- n++;
- if (!--p)
- {
-! if (putc('\n', fpo) == EOF)
-! die(3);
- p = cols;
- }
- }
-+ if (e == EOF && ferror(fp))
-+ die(2);
- if (p < cols)
-! if (putc('\n', fpo) == EOF)
-! die(3);
-! if (fclose(fp))
-! die(2);
-! if (fclose(fpo))
-! die(3);
- return 0;
- }
-
-***************
-*** 730,735 ****
---- 784,790 ----
- else /* hextype == HEX_BITS */
- grplen = 8 * octspergrp + 1;
-
-+ e = 0;
- while ((length < 0 || n < length) && (e = getc(fp)) != EOF)
- {
- if (p == 0)
-***************
-*** 771,776 ****
---- 826,833 ----
- p = 0;
- }
- }
-+ if (e == EOF && ferror(fp))
-+ die(2);
- if (p)
- {
- l[c = (11 + (grplen * cols - 1)/octspergrp + p)] = '\n'; l[++c] = '\0';
-***************
-*** 779,785 ****
- else if (autoskip)
- xxdline(fpo, l, -1); /* last chance to flush out suppressed lines */
-
-! fclose(fp);
-! fclose(fpo);
- return 0;
- }
---- 836,846 ----
- else if (autoskip)
- xxdline(fpo, l, -1); /* last chance to flush out suppressed lines */
-
-! if (fclose(fp))
-! die(2);
-! if (fclose(fpo))
-! die(3);
- return 0;
- }
-+
-+ /* vi:set ts=8 sw=4 sts=2 cino+={2 cino+=n-2 : */
-*** ../vim-7.3.151/src/version.c 2011-04-01 16:28:33.000000000 +0200
---- src/version.c 2011-04-01 19:00:26.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 152,
- /**/
-
---
-Eye have a spelling checker, it came with my PC;
-It plainly marks four my revue mistakes I cannot sea.
-I've run this poem threw it, I'm sure your please to no,
-It's letter perfect in it's weigh, my checker tolled me sew!
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.153
-Fcc: 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.153 (after 7.3.152)
-Problem: Compiler warning for ambiguous else, missing prototype.
-Solution: Add braces. (Dominique Pelle) Add prototype for die().
-Files: src/xxd/xxd.c
-
-
-*** ../vim-7.3.152/src/xxd/xxd.c 2011-04-01 19:14:35.000000000 +0200
---- src/xxd/xxd.c 2011-04-02 14:42:54.000000000 +0200
-***************
-*** 210,215 ****
---- 210,216 ----
- /* Let's collect some prototypes */
- /* CodeWarrior is really picky about missing prototypes */
- static void exit_with_usage __P((void));
-+ static void die __P((int));
- static int huntype __P((FILE *, FILE *, FILE *, int, int, long));
- static void xxdline __P((FILE *, char *, int));
-
-***************
-*** 689,694 ****
---- 690,696 ----
-
- while (s--)
- if (getc(fp) == EOF)
-+ {
- if (ferror(fp))
- {
- die(2);
-***************
-*** 698,703 ****
---- 700,706 ----
- fprintf(stderr, "%s: sorry cannot seek.\n", pname);
- return 4;
- }
-+ }
- }
- }
-
-*** ../vim-7.3.152/src/version.c 2011-04-01 19:14:35.000000000 +0200
---- src/version.c 2011-04-02 14:41:12.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 153,
- /**/
-
---
- |
-
-Ceci n'est pas une pipe.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.154
-Fcc: 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.154 (after 7.3.148)
-Problem: Can't compile with tiny features. (Tony Mechelynck)
-Solution: Move #define outside of #ifdef.
-Files: src/syntax.c
-
-
-*** ../vim-7.3.153/src/syntax.c 2011-04-01 14:44:54.000000000 +0200
---- src/syntax.c 2011-04-02 15:11:47.000000000 +0200
-***************
-*** 68,73 ****
---- 68,75 ----
-
- #define HL_TABLE() ((struct hl_group *)((highlight_ga.ga_data)))
-
-+ #define MAX_HL_ID 20000 /* maximum value for a highlight ID. */
-+
- #ifdef FEAT_CMDL_COMPL
- /* Flags to indicate an additional string for highlight name completion. */
- static int include_none = 0; /* when 1 include "None" */
-***************
-*** 225,236 ****
- * 22000 - 22999 CONTAINED indicator (current_syn_inc_tag added)
- * 23000 - 32767 cluster IDs (subtract SYNID_CLUSTER for the cluster ID)
- */
-! #define SYNID_ALLBUT 20000 /* syntax group ID for contains=ALLBUT */
- #define SYNID_TOP 21000 /* syntax group ID for contains=TOP */
- #define SYNID_CONTAINED 22000 /* syntax group ID for contains=CONTAINED */
- #define SYNID_CLUSTER 23000 /* first syntax group ID for clusters */
-
-- #define MAX_SYNID SYNID_ALLBUT
- #define MAX_SYN_INC_TAG 999 /* maximum before the above overflow */
- #define MAX_CLUSTER_ID (32767 - SYNID_CLUSTER)
-
---- 227,237 ----
- * 22000 - 22999 CONTAINED indicator (current_syn_inc_tag added)
- * 23000 - 32767 cluster IDs (subtract SYNID_CLUSTER for the cluster ID)
- */
-! #define SYNID_ALLBUT MAX_HL_ID /* syntax group ID for contains=ALLBUT */
- #define SYNID_TOP 21000 /* syntax group ID for contains=TOP */
- #define SYNID_CONTAINED 22000 /* syntax group ID for contains=CONTAINED */
- #define SYNID_CLUSTER 23000 /* first syntax group ID for clusters */
-
- #define MAX_SYN_INC_TAG 999 /* maximum before the above overflow */
- #define MAX_CLUSTER_ID (32767 - SYNID_CLUSTER)
-
-***************
-*** 6462,6468 ****
-
- #endif /* FEAT_SYN_HL */
-
--
- /**************************************
- * Highlighting stuff *
- **************************************/
---- 6463,6468 ----
-***************
-*** 8996,9004 ****
- highlight_ga.ga_growsize = 10;
- }
-
-! if (highlight_ga.ga_len >= MAX_SYNID)
- {
-! EMSG(_("E849: Too many syntax groups"));
- vim_free(name);
- return 0;
- }
---- 8996,9004 ----
- highlight_ga.ga_growsize = 10;
- }
-
-! if (highlight_ga.ga_len >= MAX_HL_ID)
- {
-! EMSG(_("E849: Too many highlight and syntax groups"));
- vim_free(name);
- return 0;
- }
-*** ../vim-7.3.153/src/version.c 2011-04-02 14:44:50.000000000 +0200
---- src/version.c 2011-04-02 14:52:33.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 154,
- /**/
-
---
-BEDEVERE: Why do you think she is a witch?
-SECOND VILLAGER: She turned me into a newt.
-BEDEVERE: A newt?
-SECOND VILLAGER: (After looking at himself for some time) I got better.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.155
-Fcc: 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.155
-Problem: Crash when using map(), filter() and remove() on v:. (ZyX)
- Also for extend(). (Yukihiro Nakadaira)
-Solution: Mark v: as locked. Also correct locking error messages.
-Files: src/eval.c
-
-
-*** ../vim-7.3.154/src/eval.c 2011-04-01 16:07:41.000000000 +0200
---- src/eval.c 2011-04-11 13:28:34.000000000 +0200
-***************
-*** 853,858 ****
---- 853,859 ----
-
- init_var_dict(&globvardict, &globvars_var);
- init_var_dict(&vimvardict, &vimvars_var);
-+ vimvardict.dv_lock = VAR_FIXED;
- hash_init(&compat_hashtab);
- hash_init(&func_hashtab);
-
-***************
-*** 8545,8551 ****
- if (argvars[0].v_type == VAR_LIST)
- {
- if ((l = argvars[0].vval.v_list) != NULL
-! && !tv_check_lock(l->lv_lock, (char_u *)"add()")
- && list_append_tv(l, &argvars[1]) == OK)
- copy_tv(&argvars[0], rettv);
- }
---- 8546,8552 ----
- if (argvars[0].v_type == VAR_LIST)
- {
- if ((l = argvars[0].vval.v_list) != NULL
-! && !tv_check_lock(l->lv_lock, (char_u *)_("add() argument"))
- && list_append_tv(l, &argvars[1]) == OK)
- copy_tv(&argvars[0], rettv);
- }
-***************
-*** 9946,9951 ****
---- 9947,9954 ----
- typval_T *argvars;
- typval_T *rettv;
- {
-+ char *arg_errmsg = N_("extend() argument");
-+
- if (argvars[0].v_type == VAR_LIST && argvars[1].v_type == VAR_LIST)
- {
- list_T *l1, *l2;
-***************
-*** 9955,9961 ****
-
- l1 = argvars[0].vval.v_list;
- l2 = argvars[1].vval.v_list;
-! if (l1 != NULL && !tv_check_lock(l1->lv_lock, (char_u *)"extend()")
- && l2 != NULL)
- {
- if (argvars[2].v_type != VAR_UNKNOWN)
---- 9958,9964 ----
-
- l1 = argvars[0].vval.v_list;
- l2 = argvars[1].vval.v_list;
-! if (l1 != NULL && !tv_check_lock(l1->lv_lock, (char_u *)_(arg_errmsg))
- && l2 != NULL)
- {
- if (argvars[2].v_type != VAR_UNKNOWN)
-***************
-*** 9994,10000 ****
-
- d1 = argvars[0].vval.v_dict;
- d2 = argvars[1].vval.v_dict;
-! if (d1 != NULL && !tv_check_lock(d1->dv_lock, (char_u *)"extend()")
- && d2 != NULL)
- {
- /* Check the third argument. */
---- 9997,10003 ----
-
- d1 = argvars[0].vval.v_dict;
- d2 = argvars[1].vval.v_dict;
-! if (d1 != NULL && !tv_check_lock(d1->dv_lock, (char_u *)_(arg_errmsg))
- && d2 != NULL)
- {
- /* Check the third argument. */
-***************
-*** 10236,10255 ****
- typval_T save_key;
- int rem;
- int todo;
-! char_u *ermsg = map ? (char_u *)"map()" : (char_u *)"filter()";
- int save_did_emsg;
- int idx = 0;
-
- if (argvars[0].v_type == VAR_LIST)
- {
- if ((l = argvars[0].vval.v_list) == NULL
-! || (map && tv_check_lock(l->lv_lock, ermsg)))
- return;
- }
- else if (argvars[0].v_type == VAR_DICT)
- {
- if ((d = argvars[0].vval.v_dict) == NULL
-! || (map && tv_check_lock(d->dv_lock, ermsg)))
- return;
- }
- else
---- 10239,10260 ----
- typval_T save_key;
- int rem;
- int todo;
-! char_u *ermsg = (char_u *)(map ? "map()" : "filter()");
-! char *arg_errmsg = (map ? N_("map() argument")
-! : N_("filter() argument"));
- int save_did_emsg;
- int idx = 0;
-
- if (argvars[0].v_type == VAR_LIST)
- {
- if ((l = argvars[0].vval.v_list) == NULL
-! || tv_check_lock(l->lv_lock, (char_u *)_(arg_errmsg)))
- return;
- }
- else if (argvars[0].v_type == VAR_DICT)
- {
- if ((d = argvars[0].vval.v_dict) == NULL
-! || tv_check_lock(d->dv_lock, (char_u *)_(arg_errmsg)))
- return;
- }
- else
-***************
-*** 10286,10292 ****
- {
- --todo;
- di = HI2DI(hi);
-! if (tv_check_lock(di->di_tv.v_lock, ermsg))
- break;
- vimvars[VV_KEY].vv_str = vim_strsave(di->di_key);
- if (filter_map_one(&di->di_tv, expr, map, &rem) == FAIL
---- 10291,10298 ----
- {
- --todo;
- di = HI2DI(hi);
-! if (tv_check_lock(di->di_tv.v_lock,
-! (char_u *)_(arg_errmsg)))
- break;
- vimvars[VV_KEY].vv_str = vim_strsave(di->di_key);
- if (filter_map_one(&di->di_tv, expr, map, &rem) == FAIL
-***************
-*** 10305,10311 ****
-
- for (li = l->lv_first; li != NULL; li = nli)
- {
-! if (tv_check_lock(li->li_tv.v_lock, ermsg))
- break;
- nli = li->li_next;
- vimvars[VV_KEY].vv_nr = idx;
---- 10311,10317 ----
-
- for (li = l->lv_first; li != NULL; li = nli)
- {
-! if (tv_check_lock(li->li_tv.v_lock, (char_u *)_(arg_errmsg)))
- break;
- nli = li->li_next;
- vimvars[VV_KEY].vv_nr = idx;
-***************
-*** 12910,12916 ****
- if (argvars[0].v_type != VAR_LIST)
- EMSG2(_(e_listarg), "insert()");
- else if ((l = argvars[0].vval.v_list) != NULL
-! && !tv_check_lock(l->lv_lock, (char_u *)"insert()"))
- {
- if (argvars[2].v_type != VAR_UNKNOWN)
- before = get_tv_number_chk(&argvars[2], &error);
---- 12916,12922 ----
- if (argvars[0].v_type != VAR_LIST)
- EMSG2(_(e_listarg), "insert()");
- else if ((l = argvars[0].vval.v_list) != NULL
-! && !tv_check_lock(l->lv_lock, (char_u *)_("insert() argument")))
- {
- if (argvars[2].v_type != VAR_UNKNOWN)
- before = get_tv_number_chk(&argvars[2], &error);
-***************
-*** 14775,14787 ****
- char_u *key;
- dict_T *d;
- dictitem_T *di;
-
- if (argvars[0].v_type == VAR_DICT)
- {
- if (argvars[2].v_type != VAR_UNKNOWN)
- EMSG2(_(e_toomanyarg), "remove()");
- else if ((d = argvars[0].vval.v_dict) != NULL
-! && !tv_check_lock(d->dv_lock, (char_u *)"remove() argument"))
- {
- key = get_tv_string_chk(&argvars[1]);
- if (key != NULL)
---- 14781,14794 ----
- char_u *key;
- dict_T *d;
- dictitem_T *di;
-+ char *arg_errmsg = N_("remove() argument");
-
- if (argvars[0].v_type == VAR_DICT)
- {
- if (argvars[2].v_type != VAR_UNKNOWN)
- EMSG2(_(e_toomanyarg), "remove()");
- else if ((d = argvars[0].vval.v_dict) != NULL
-! && !tv_check_lock(d->dv_lock, (char_u *)_(arg_errmsg)))
- {
- key = get_tv_string_chk(&argvars[1]);
- if (key != NULL)
-***************
-*** 14801,14807 ****
- else if (argvars[0].v_type != VAR_LIST)
- EMSG2(_(e_listdictarg), "remove()");
- else if ((l = argvars[0].vval.v_list) != NULL
-! && !tv_check_lock(l->lv_lock, (char_u *)"remove() argument"))
- {
- int error = FALSE;
-
---- 14808,14814 ----
- else if (argvars[0].v_type != VAR_LIST)
- EMSG2(_(e_listdictarg), "remove()");
- else if ((l = argvars[0].vval.v_list) != NULL
-! && !tv_check_lock(l->lv_lock, (char_u *)_(arg_errmsg)))
- {
- int error = FALSE;
-
-***************
-*** 15135,15141 ****
- if (argvars[0].v_type != VAR_LIST)
- EMSG2(_(e_listarg), "reverse()");
- else if ((l = argvars[0].vval.v_list) != NULL
-! && !tv_check_lock(l->lv_lock, (char_u *)"reverse()"))
- {
- li = l->lv_last;
- l->lv_first = l->lv_last = NULL;
---- 15142,15148 ----
- if (argvars[0].v_type != VAR_LIST)
- EMSG2(_(e_listarg), "reverse()");
- else if ((l = argvars[0].vval.v_list) != NULL
-! && !tv_check_lock(l->lv_lock, (char_u *)_("reverse() argument")))
- {
- li = l->lv_last;
- l->lv_first = l->lv_last = NULL;
-***************
-*** 16432,16438 ****
- else
- {
- l = argvars[0].vval.v_list;
-! if (l == NULL || tv_check_lock(l->lv_lock, (char_u *)"sort()"))
- return;
- rettv->vval.v_list = l;
- rettv->v_type = VAR_LIST;
---- 16439,16446 ----
- else
- {
- l = argvars[0].vval.v_list;
-! if (l == NULL || tv_check_lock(l->lv_lock,
-! (char_u *)_("sort() argument")))
- return;
- rettv->vval.v_list = l;
- rettv->v_type = VAR_LIST;
-*** ../vim-7.3.154/src/version.c 2011-04-02 15:12:45.000000000 +0200
---- src/version.c 2011-04-11 13:13:38.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 155,
- /**/
-
---
-I used to be indecisive, now I'm not sure.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.156
-Fcc: 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.156
-Problem: Tty names possibly left unterminated.
-Solution: Use vim_strncpy() instead of strncpy().
-Files: src/pty.c
-
-
-*** ../vim-7.3.155/src/pty.c 2010-08-15 21:57:28.000000000 +0200
---- src/pty.c 2011-04-11 14:02:49.000000000 +0200
-***************
-*** 209,216 ****
- #ifdef _SEQUENT_
- fvhangup(s);
- #endif
-! strncpy(PtyName, m, sizeof(PtyName));
-! strncpy(TtyName, s, sizeof(TtyName));
- initmaster(f);
- *ttyn = TtyName;
- return f;
---- 209,216 ----
- #ifdef _SEQUENT_
- fvhangup(s);
- #endif
-! vim_strncpy((char_u *)PtyName, (char_u *)m, sizeof(PtyName) - 1);
-! vim_strncpy((char_u *)TtyName, (char_u *)s, sizeof(TtyName) - 1);
- initmaster(f);
- *ttyn = TtyName;
- return f;
-***************
-*** 301,307 ****
- return -1;
- }
- signal(SIGCHLD, sigcld);
-! strncpy(TtyName, m, sizeof(TtyName));
- initmaster(f);
- *ttyn = TtyName;
- return f;
---- 301,307 ----
- return -1;
- }
- signal(SIGCHLD, sigcld);
-! vim_strncpy((char_u *)TtyName, (char_u *)m, sizeof(TtyName) - 1);
- initmaster(f);
- *ttyn = TtyName;
- return f;
-***************
-*** 326,332 ****
- /* a dumb looking loop replaced by mycrofts code: */
- if ((f = open("/dev/ptc", O_RDWR | O_NOCTTY | O_EXTRA)) < 0)
- return -1;
-! strncpy(TtyName, ttyname(f), sizeof(TtyName));
- if (geteuid() != ROOT_UID && mch_access(TtyName, R_OK | W_OK))
- {
- close(f);
---- 326,332 ----
- /* a dumb looking loop replaced by mycrofts code: */
- if ((f = open("/dev/ptc", O_RDWR | O_NOCTTY | O_EXTRA)) < 0)
- return -1;
-! vim_strncpy((char_u *)TtyName, (char_u *)ttyname(f), sizeof(TtyName) - 1);
- if (geteuid() != ROOT_UID && mch_access(TtyName, R_OK | W_OK))
- {
- close(f);
-*** ../vim-7.3.155/src/version.c 2011-04-11 13:46:07.000000000 +0200
---- src/version.c 2011-04-11 14:23:38.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 156,
- /**/
-
---
-I think that you'll agree that engineers are very effective in their social
-interactions. It's the "normal" people who are nuts.
- (Scott Adams - The Dilbert principle)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.157
-Fcc: 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.157
-Problem: Superfluous assignment.
-Solution: Remove assignment.
-Files: src/misc1.c
-
-
-*** ../vim-7.3.156/src/misc1.c 2011-03-22 13:07:19.000000000 +0100
---- src/misc1.c 2011-04-11 14:11:17.000000000 +0200
-***************
-*** 6773,6780 ****
- {
- curwin->w_cursor.lnum = our_paren_pos.lnum;
- curwin->w_cursor.col = col;
-! if ((trypos = find_match_paren(ind_maxparen,
-! ind_maxcomment)) != NULL)
- amount += ind_unclosed2;
- else
- amount += ind_unclosed;
---- 6775,6781 ----
- {
- curwin->w_cursor.lnum = our_paren_pos.lnum;
- curwin->w_cursor.col = col;
-! if (find_match_paren(ind_maxparen, ind_maxcomment) != NULL)
- amount += ind_unclosed2;
- else
- amount += ind_unclosed;
-*** ../vim-7.3.156/src/version.c 2011-04-11 14:24:33.000000000 +0200
---- src/version.c 2011-04-11 14:25:36.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 157,
- /**/
-
---
-A radioactive cat has eighteen half-lives.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.158
-Fcc: 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.158
-Problem: Might use uninitialized memory in C indenting.
-Solution: Init arrays to empty.
-Files: src/misc1.c
-
-
-*** ../vim-7.3.157/src/misc1.c 2011-04-11 14:26:15.000000000 +0200
---- src/misc1.c 2011-04-11 14:11:17.000000000 +0200
-***************
-*** 6433,6438 ****
---- 6433,6440 ----
- /* find how indented the line beginning the comment is */
- getvcol(curwin, trypos, &col, NULL, NULL);
- amount = col;
-+ *lead_start = NUL;
-+ *lead_middle = NUL;
-
- p = curbuf->b_p_com;
- while (*p != NUL)
-*** ../vim-7.3.157/src/version.c 2011-04-11 14:26:15.000000000 +0200
---- src/version.c 2011-04-11 14:27:05.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 158,
- /**/
-
---
-It's totally unfair to suggest - as many have - that engineers are socially
-inept. Engineers simply have different objectives when it comes to social
-interaction.
- (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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.159
-Fcc: 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.159
-Problem: Using uninitialized pointer when out of memory.
-Solution: Check for NULL return value.
-Files: src/mbyte.c
-
-
-*** ../vim-7.3.158/src/mbyte.c 2010-10-27 13:37:39.000000000 +0200
---- src/mbyte.c 2011-04-11 14:17:39.000000000 +0200
-***************
-*** 4129,4135 ****
- done = to - (char *)result;
- }
-
-! if (resultlenp != NULL)
- *resultlenp = (int)(to - (char *)result);
- return result;
- }
---- 4129,4135 ----
- done = to - (char *)result;
- }
-
-! if (resultlenp != NULL && result != NULL)
- *resultlenp = (int)(to - (char *)result);
- return result;
- }
-*** ../vim-7.3.158/src/version.c 2011-04-11 14:27:34.000000000 +0200
---- src/version.c 2011-04-11 14:28:08.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 159,
- /**/
-
---
-I learned the customs and mannerisms of engineers by observing them, much the
-way Jane Goodall learned about the great apes, but without the hassle of
-grooming.
- (Scott Adams - The Dilbert principle)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.160
-Fcc: 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.160
-Problem: Unsafe string copying.
-Solution: Use vim_strncpy() instead of strcpy(). Use vim_strcat() instead
- of strcat().
-Files: src/buffer.c, src/ex_docmd.c, src/hardcopy.c, src/menu.c,
- src/misc1.c, src/misc2.c, src/proto/misc2.pro, src/netbeans.c,
- src/os_unix.c, src/spell.c, src/syntax.c, src/tag.c
-
-*** ../vim-7.3.159/src/buffer.c 2011-02-15 14:24:42.000000000 +0100
---- src/buffer.c 2011-04-11 16:08:38.000000000 +0200
-***************
-*** 3176,3182 ****
- /* format: "fname + (path) (1 of 2) - VIM" */
-
- if (curbuf->b_fname == NULL)
-! STRCPY(buf, _("[No Name]"));
- else
- {
- p = transstr(gettail(curbuf->b_fname));
---- 3176,3182 ----
- /* format: "fname + (path) (1 of 2) - VIM" */
-
- if (curbuf->b_fname == NULL)
-! vim_strncpy(buf, (char_u *)_("[No Name]"), IOSIZE - 100);
- else
- {
- p = transstr(gettail(curbuf->b_fname));
-***************
-*** 3232,3238 ****
- if (serverName != NULL)
- {
- STRCAT(buf, " - ");
-! STRCAT(buf, serverName);
- }
- else
- #endif
---- 3232,3238 ----
- if (serverName != NULL)
- {
- STRCAT(buf, " - ");
-! vim_strcat(buf, serverName, IOSIZE);
- }
- else
- #endif
-*** ../vim-7.3.159/src/ex_docmd.c 2011-03-03 15:54:45.000000000 +0100
---- src/ex_docmd.c 2011-04-11 15:43:48.000000000 +0200
-***************
-*** 5096,5102 ****
- char_u buff[IOSIZE];
-
- if (n == 1)
-! STRCPY(buff, _("1 more file to edit. Quit anyway?"));
- else
- vim_snprintf((char *)buff, IOSIZE,
- _("%d more files to edit. Quit anyway?"), n);
---- 5096,5104 ----
- char_u buff[IOSIZE];
-
- if (n == 1)
-! vim_strncpy(buff,
-! (char_u *)_("1 more file to edit. Quit anyway?"),
-! IOSIZE - 1);
- else
- vim_snprintf((char *)buff, IOSIZE,
- _("%d more files to edit. Quit anyway?"), n);
-*** ../vim-7.3.159/src/hardcopy.c 2010-08-15 21:57:25.000000000 +0200
---- src/hardcopy.c 2011-04-11 15:30:09.000000000 +0200
-***************
-*** 1761,1772 ****
- {
- char_u buffer[MAXPATHL + 1];
-
-! STRCPY(resource->name, name);
- /* Look for named resource file in runtimepath */
- STRCPY(buffer, "print");
- add_pathsep(buffer);
-! STRCAT(buffer, name);
-! STRCAT(buffer, ".ps");
- resource->filename[0] = NUL;
- return (do_in_runtimepath(buffer, FALSE, prt_resource_name,
- resource->filename)
---- 1761,1772 ----
- {
- char_u buffer[MAXPATHL + 1];
-
-! vim_strncpy(resource->name, (char_u *)name, 63);
- /* Look for named resource file in runtimepath */
- STRCPY(buffer, "print");
- add_pathsep(buffer);
-! vim_strcat(buffer, (char_u *)name, MAXPATHL);
-! vim_strcat(buffer, (char_u *)".ps", MAXPATHL);
- resource->filename[0] = NUL;
- return (do_in_runtimepath(buffer, FALSE, prt_resource_name,
- resource->filename)
-*** ../vim-7.3.159/src/menu.c 2011-01-04 17:49:25.000000000 +0100
---- src/menu.c 2011-04-11 15:17:21.000000000 +0200
-***************
-*** 1394,1400 ****
- int idx;
- {
- static vimmenu_T *menu = NULL;
-! static char_u tbuffer[256]; /*hack*/
- char_u *str;
- #ifdef FEAT_MULTI_LANG
- static int should_advance = FALSE;
---- 1394,1401 ----
- int idx;
- {
- static vimmenu_T *menu = NULL;
-! #define TBUFFER_LEN 256
-! static char_u tbuffer[TBUFFER_LEN]; /*hack*/
- char_u *str;
- #ifdef FEAT_MULTI_LANG
- static int should_advance = FALSE;
-***************
-*** 1428,1438 ****
- {
- #ifdef FEAT_MULTI_LANG
- if (should_advance)
-! STRCPY(tbuffer, menu->en_dname);
- else
- {
- #endif
-! STRCPY(tbuffer, menu->dname);
- #ifdef FEAT_MULTI_LANG
- if (menu->en_dname == NULL)
- should_advance = TRUE;
---- 1429,1439 ----
- {
- #ifdef FEAT_MULTI_LANG
- if (should_advance)
-! vim_strncpy(tbuffer, menu->en_dname, TBUFFER_LEN - 2);
- else
- {
- #endif
-! vim_strncpy(tbuffer, menu->dname, TBUFFER_LEN - 2);
- #ifdef FEAT_MULTI_LANG
- if (menu->en_dname == NULL)
- should_advance = TRUE;
-*** ../vim-7.3.159/src/misc1.c 2011-04-11 14:27:34.000000000 +0200
---- src/misc1.c 2011-04-11 16:03:22.000000000 +0200
-***************
-*** 3332,3350 ****
- if (pn == 1)
- {
- if (n > 0)
-! STRCPY(msg_buf, _("1 more line"));
- else
-! STRCPY(msg_buf, _("1 line less"));
- }
- else
- {
- if (n > 0)
-! sprintf((char *)msg_buf, _("%ld more lines"), pn);
- else
-! sprintf((char *)msg_buf, _("%ld fewer lines"), pn);
- }
- if (got_int)
-! STRCAT(msg_buf, _(" (Interrupted)"));
- if (msg(msg_buf))
- {
- set_keep_msg(msg_buf, 0);
---- 3332,3354 ----
- if (pn == 1)
- {
- if (n > 0)
-! vim_strncpy(msg_buf, (char_u *)_("1 more line"),
-! MSG_BUF_LEN - 1);
- else
-! vim_strncpy(msg_buf, (char_u *)_("1 line less"),
-! MSG_BUF_LEN - 1);
- }
- else
- {
- if (n > 0)
-! vim_snprintf((char *)msg_buf, MSG_BUF_LEN,
-! _("%ld more lines"), pn);
- else
-! vim_snprintf((char *)msg_buf, MSG_BUF_LEN,
-! _("%ld fewer lines"), pn);
- }
- if (got_int)
-! vim_strcat(msg_buf, (char_u *)_(" (Interrupted)"), MSG_BUF_LEN);
- if (msg(msg_buf))
- {
- set_keep_msg(msg_buf, 0);
-*** ../vim-7.3.159/src/misc2.c 2010-12-08 13:11:15.000000000 +0100
---- src/misc2.c 2011-04-11 15:30:20.000000000 +0200
-***************
-*** 1647,1652 ****
---- 1647,1674 ----
- }
-
- /*
-+ * Like strcat(), but make sure the result fits in "tosize" bytes and is
-+ * always NUL terminated.
-+ */
-+ void
-+ vim_strcat(to, from, tosize)
-+ char_u *to;
-+ char_u *from;
-+ size_t tosize;
-+ {
-+ size_t tolen = STRLEN(to);
-+ size_t fromlen = STRLEN(from);
-+
-+ if (tolen + fromlen + 1 > tosize)
-+ {
-+ mch_memmove(to + tolen, from, tosize - tolen - 1);
-+ to[tosize - 1] = NUL;
-+ }
-+ else
-+ STRCPY(to + tolen, from);
-+ }
-+
-+ /*
- * Isolate one part of a string option where parts are separated with
- * "sep_chars".
- * The part is copied into "buf[maxlen]".
-*** ../vim-7.3.159/src/proto/misc2.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/misc2.pro 2011-04-11 15:29:55.000000000 +0200
-***************
-*** 40,45 ****
---- 40,46 ----
- void copy_chars __ARGS((char_u *ptr, size_t count, int c));
- void del_trailing_spaces __ARGS((char_u *ptr));
- void vim_strncpy __ARGS((char_u *to, char_u *from, size_t len));
-+ void vim_strcat __ARGS((char_u *to, char_u *from, size_t tosize));
- int copy_option_part __ARGS((char_u **option, char_u *buf, int maxlen, char *sep_chars));
- void vim_free __ARGS((void *x));
- int vim_stricmp __ARGS((char *s1, char *s2));
-*** ../vim-7.3.159/src/netbeans.c 2011-04-01 15:33:54.000000000 +0200
---- src/netbeans.c 2011-04-11 16:02:51.000000000 +0200
-***************
-*** 3914,3927 ****
- }
- else
- {
-! char_u ebuf[BUFSIZ];
-
-! STRCPY(ebuf, (char_u *)_("E505: "));
-! STRCAT(ebuf, IObuff);
-! STRCAT(ebuf, (char_u *)_("is read-only (add ! to override)"));
-! STRCPY(IObuff, ebuf);
-! nbdebug((" %s\n", ebuf ));
-! emsg(IObuff);
- }
- }
-
---- 3914,3925 ----
- }
- else
- {
-! char_u msgbuf[IOSIZE];
-
-! vim_snprintf((char *)msgbuf, IOSIZE,
-! _("E505: %s is read-only (add ! to override)"), IObuff);
-! nbdebug((" %s\n", msgbuf));
-! emsg(msgbuf);
- }
- }
-
-*** ../vim-7.3.159/src/os_unix.c 2011-02-15 17:39:14.000000000 +0100
---- src/os_unix.c 2011-04-11 16:39:11.000000000 +0200
-***************
-*** 5725,5730 ****
---- 5725,5731 ----
- if (shell_style == STYLE_PRINT && !did_find_nul)
- {
- /* If there is a NUL, set did_find_nul, else set check_spaces */
-+ buffer[len] = NUL;
- if (len && (int)STRLEN(buffer) < (int)len - 1)
- did_find_nul = TRUE;
- else
-***************
-*** 6594,6600 ****
- xterm_hints.x = 2;
- return TRUE;
- }
-! if (mouse_code == NULL)
- {
- xterm_trace = 0;
- return FALSE;
---- 6595,6601 ----
- xterm_hints.x = 2;
- return TRUE;
- }
-! if (mouse_code == NULL || STRLEN(mouse_code) > 45)
- {
- xterm_trace = 0;
- return FALSE;
-*** ../vim-7.3.159/src/spell.c 2011-02-01 13:59:44.000000000 +0100
---- src/spell.c 2011-04-11 15:50:40.000000000 +0200
-***************
-*** 6957,6963 ****
- if (ae->ae_add == NULL)
- *newword = NUL;
- else
-! STRCPY(newword, ae->ae_add);
- p = word;
- if (ae->ae_chop != NULL)
- {
---- 6957,6963 ----
- if (ae->ae_add == NULL)
- *newword = NUL;
- else
-! vim_strncpy(newword, ae->ae_add, MAXWLEN - 1);
- p = word;
- if (ae->ae_chop != NULL)
- {
-***************
-*** 6978,6984 ****
- else
- {
- /* suffix: chop/add at the end of the word */
-! STRCPY(newword, word);
- if (ae->ae_chop != NULL)
- {
- /* Remove chop string. */
---- 6978,6984 ----
- else
- {
- /* suffix: chop/add at the end of the word */
-! vim_strncpy(newword, word, MAXWLEN - 1);
- if (ae->ae_chop != NULL)
- {
- /* Remove chop string. */
-***************
-*** 8654,8660 ****
- * Write the .sug file.
- * Make the file name by changing ".spl" to ".sug".
- */
-! STRCPY(fname, wfname);
- len = (int)STRLEN(fname);
- fname[len - 2] = 'u';
- fname[len - 1] = 'g';
---- 8654,8660 ----
- * Write the .sug file.
- * Make the file name by changing ".spl" to ".sug".
- */
-! vim_strncpy(fname, wfname, MAXPATHL - 1);
- len = (int)STRLEN(fname);
- fname[len - 2] = 'u';
- fname[len - 1] = 'g';
-***************
-*** 10261,10267 ****
-
- /* The suggested word may replace only part of the bad word, add
- * the not replaced part. */
-! STRCPY(wcopy, stp->st_word);
- if (sug.su_badlen > stp->st_orglen)
- vim_strncpy(wcopy + stp->st_wordlen,
- sug.su_badptr + stp->st_orglen,
---- 10261,10267 ----
-
- /* The suggested word may replace only part of the bad word, add
- * the not replaced part. */
-! vim_strncpy(wcopy, stp->st_word, MAXWLEN);
- if (sug.su_badlen > stp->st_orglen)
- vim_strncpy(wcopy + stp->st_wordlen,
- sug.su_badptr + stp->st_orglen,
-***************
-*** 13162,13168 ****
- pbad = badsound2;
- }
-
-! if (lendiff > 0)
- {
- /* Add part of the bad word to the good word, so that we soundfold
- * what replaces the bad word. */
---- 13162,13168 ----
- pbad = badsound2;
- }
-
-! if (lendiff > 0 && stp->st_wordlen + lendiff < MAXWLEN)
- {
- /* Add part of the bad word to the good word, so that we soundfold
- * what replaces the bad word. */
-***************
-*** 13875,13881 ****
- for (i = gap->ga_len - 1; i >= 0; --i)
- {
- /* Need to append what follows to check for "the the". */
-! STRCPY(longword, stp[i].st_word);
- len = stp[i].st_wordlen;
- vim_strncpy(longword + len, su->su_badptr + stp[i].st_orglen,
- MAXWLEN - len);
---- 13875,13881 ----
- for (i = gap->ga_len - 1; i >= 0; --i)
- {
- /* Need to append what follows to check for "the the". */
-! vim_strncpy(longword, stp[i].st_word, MAXWLEN);
- len = stp[i].st_wordlen;
- vim_strncpy(longword + len, su->su_badptr + stp[i].st_orglen,
- MAXWLEN - len);
-***************
-*** 14221,14227 ****
- *t = NUL;
- }
- else
-! STRCPY(word, s);
-
- smp = (salitem_T *)slang->sl_sal.ga_data;
-
---- 14221,14227 ----
- *t = NUL;
- }
- else
-! vim_strncpy(word, s, MAXWLEN - 1);
-
- smp = (salitem_T *)slang->sl_sal.ga_data;
-
-*** ../vim-7.3.159/src/syntax.c 2011-04-02 15:12:45.000000000 +0200
---- src/syntax.c 2011-04-11 15:44:30.000000000 +0200
-***************
-*** 8576,8583 ****
- if (iarg & hl_attr_table[i])
- {
- if (buf[0] != NUL)
-! STRCAT(buf, ",");
-! STRCAT(buf, hl_name_table[i]);
- iarg &= ~hl_attr_table[i]; /* don't want "inverse" */
- }
- }
---- 8576,8583 ----
- if (iarg & hl_attr_table[i])
- {
- if (buf[0] != NUL)
-! vim_strcat(buf, (char_u *)",", 100);
-! vim_strcat(buf, (char_u *)hl_name_table[i], 100);
- iarg &= ~hl_attr_table[i]; /* don't want "inverse" */
- }
- }
-*** ../vim-7.3.159/src/tag.c 2011-02-25 15:13:43.000000000 +0100
---- src/tag.c 2011-04-11 15:34:59.000000000 +0200
-***************
-*** 806,812 ****
- p = tag_full_fname(&tagp);
- if (p == NULL)
- continue;
-! STRCPY(fname, p);
- vim_free(p);
-
- /*
---- 806,812 ----
- p = tag_full_fname(&tagp);
- if (p == NULL)
- continue;
-! vim_strncpy(fname, p, MAXPATHL);
- vim_free(p);
-
- /*
-*** ../vim-7.3.159/src/version.c 2011-04-11 14:29:13.000000000 +0200
---- src/version.c 2011-04-11 16:50:53.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 160,
- /**/
-
---
-If someone questions your market projections, simply point out that your
-target market is "People who are nuts" and "People who will buy any damn
-thing". Nobody is going to tell you there aren't enough of those people
-to go around.
- (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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.161
-Fcc: 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.161
-Problem: Items on the stack may be too big.
-Solution: Make items static or allocate them.
-Files: src/eval.c, src/ex_cmds.c, src/ex_cmds2.c, src/ex_docmd.c,
- src/fileio.c, src/hardcopy.c, src/quickfix.c, src/main.c,
- src/netbeans.c, src/spell.c, src/tag.c, src/vim.h, src/xxd/xxd.c
-
-
-*** ../vim-7.3.160/src/eval.c 2011-04-11 13:46:07.000000000 +0200
---- src/eval.c 2011-04-11 21:05:50.000000000 +0200
-***************
-*** 11100,11117 ****
- typval_T *argvars UNUSED;
- typval_T *rettv;
- {
-! char_u cwd[MAXPATHL];
-
- rettv->v_type = VAR_STRING;
-! if (mch_dirname(cwd, MAXPATHL) == FAIL)
-! rettv->vval.v_string = NULL;
-! else
- {
-! rettv->vval.v_string = vim_strsave(cwd);
- #ifdef BACKSLASH_IN_FILENAME
-! if (rettv->vval.v_string != NULL)
-! slash_adjust(rettv->vval.v_string);
- #endif
- }
- }
-
---- 11100,11121 ----
- typval_T *argvars UNUSED;
- typval_T *rettv;
- {
-! char_u *cwd;
-
- rettv->v_type = VAR_STRING;
-! rettv->vval.v_string = NULL;
-! cwd = alloc(MAXPATHL);
-! if (cwd != NULL)
- {
-! if (mch_dirname(cwd, MAXPATHL) != FAIL)
-! {
-! rettv->vval.v_string = vim_strsave(cwd);
- #ifdef BACKSLASH_IN_FILENAME
-! if (rettv->vval.v_string != NULL)
-! slash_adjust(rettv->vval.v_string);
- #endif
-+ }
-+ vim_free(cwd);
- }
- }
-
-***************
-*** 14938,14943 ****
---- 14942,14950 ----
- typval_T *rettv;
- {
- char_u *p;
-+ #ifdef HAVE_READLINK
-+ char_u *buf = NULL;
-+ #endif
-
- p = get_tv_string(&argvars[0]);
- #ifdef FEAT_SHORTCUT
-***************
-*** 14953,14959 ****
- #else
- # ifdef HAVE_READLINK
- {
-- char_u buf[MAXPATHL + 1];
- char_u *cpy;
- int len;
- char_u *remain = NULL;
---- 14960,14965 ----
-***************
-*** 14981,14986 ****
---- 14987,14996 ----
- q[-1] = NUL;
- }
-
-+ buf = alloc(MAXPATHL + 1);
-+ if (buf == NULL)
-+ goto fail;
-+
- for (;;)
- {
- for (;;)
-***************
-*** 15124,15129 ****
---- 15134,15140 ----
-
- #ifdef HAVE_READLINK
- fail:
-+ vim_free(buf);
- #endif
- rettv->v_type = VAR_STRING;
- }
-***************
-*** 17604,17621 ****
- typval_T *argvars UNUSED;
- typval_T *rettv;
- {
-! char_u fname[MAXPATHL + 1];
- tagname_T tn;
- int first;
-
- if (rettv_list_alloc(rettv) == FAIL)
- return;
-
- for (first = TRUE; ; first = FALSE)
- if (get_tagfname(&tn, first, fname) == FAIL
- || list_append_string(rettv->vval.v_list, fname, -1) == FAIL)
- break;
- tagname_free(&tn);
- }
-
- /*
---- 17615,17636 ----
- typval_T *argvars UNUSED;
- typval_T *rettv;
- {
-! char_u *fname;
- tagname_T tn;
- int first;
-
- if (rettv_list_alloc(rettv) == FAIL)
- return;
-+ fname = alloc(MAXPATHL);
-+ if (fname == NULL)
-+ return;
-
- for (first = TRUE; ; first = FALSE)
- if (get_tagfname(&tn, first, fname) == FAIL
- || list_append_string(rettv->vval.v_list, fname, -1) == FAIL)
- break;
- tagname_free(&tn);
-+ vim_free(fname);
- }
-
- /*
-*** ../vim-7.3.160/src/ex_cmds.c 2011-02-01 13:48:47.000000000 +0100
---- src/ex_cmds.c 2011-04-11 20:51:34.000000000 +0200
-***************
-*** 2777,2783 ****
- #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
- if (p_confirm || cmdmod.confirm)
- {
-! char_u buff[IOSIZE];
-
- dialog_msg(buff, _("Overwrite existing file \"%s\"?"), fname);
- if (vim_dialog_yesno(VIM_QUESTION, NULL, buff, 2) != VIM_YES)
---- 2777,2783 ----
- #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
- if (p_confirm || cmdmod.confirm)
- {
-! char_u buff[DIALOG_MSG_SIZE];
-
- dialog_msg(buff, _("Overwrite existing file \"%s\"?"), fname);
- if (vim_dialog_yesno(VIM_QUESTION, NULL, buff, 2) != VIM_YES)
-***************
-*** 2795,2801 ****
- /* For ":w! filename" check that no swap file exists for "filename". */
- if (other && !emsg_silent)
- {
-! char_u dir[MAXPATHL];
- char_u *p;
- int r;
- char_u *swapname;
---- 2795,2801 ----
- /* For ":w! filename" check that no swap file exists for "filename". */
- if (other && !emsg_silent)
- {
-! char_u *dir;
- char_u *p;
- int r;
- char_u *swapname;
-***************
-*** 2806,2825 ****
- * Use 'shortname' of the current buffer, since there is no buffer
- * for the written file. */
- if (*p_dir == NUL)
- STRCPY(dir, ".");
- else
- {
- p = p_dir;
- copy_option_part(&p, dir, MAXPATHL, ",");
- }
- swapname = makeswapname(fname, ffname, curbuf, dir);
- r = vim_fexists(swapname);
- if (r)
- {
- #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
- if (p_confirm || cmdmod.confirm)
- {
-! char_u buff[IOSIZE];
-
- dialog_msg(buff,
- _("Swap file \"%s\" exists, overwrite anyway?"),
---- 2806,2834 ----
- * Use 'shortname' of the current buffer, since there is no buffer
- * for the written file. */
- if (*p_dir == NUL)
-+ {
-+ dir = alloc(5);
-+ if (dir == NULL)
-+ return FAIL;
- STRCPY(dir, ".");
-+ }
- else
- {
-+ dir = alloc(MAXPATHL);
-+ if (dir == NULL)
-+ return FAIL;
- p = p_dir;
- copy_option_part(&p, dir, MAXPATHL, ",");
- }
- swapname = makeswapname(fname, ffname, curbuf, dir);
-+ vim_free(dir);
- r = vim_fexists(swapname);
- if (r)
- {
- #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
- if (p_confirm || cmdmod.confirm)
- {
-! char_u buff[DIALOG_MSG_SIZE];
-
- dialog_msg(buff,
- _("Swap file \"%s\" exists, overwrite anyway?"),
-***************
-*** 2969,2975 ****
- #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
- if ((p_confirm || cmdmod.confirm) && buf->b_fname != NULL)
- {
-! char_u buff[IOSIZE];
-
- if (buf->b_p_ro)
- dialog_msg(buff, _("'readonly' option is set for \"%s\".\nDo you wish to write anyway?"),
---- 2978,2984 ----
- #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
- if ((p_confirm || cmdmod.confirm) && buf->b_fname != NULL)
- {
-! char_u buff[DIALOG_MSG_SIZE];
-
- if (buf->b_p_ro)
- dialog_msg(buff, _("'readonly' option is set for \"%s\".\nDo you wish to write anyway?"),
-*** ../vim-7.3.160/src/ex_cmds2.c 2011-02-25 14:46:06.000000000 +0100
---- src/ex_cmds2.c 2011-04-11 20:51:40.000000000 +0200
-***************
-*** 1492,1498 ****
- buf_T *buf;
- int checkall; /* may abandon all changed buffers */
- {
-! char_u buff[IOSIZE];
- int ret;
- buf_T *buf2;
-
---- 1492,1498 ----
- buf_T *buf;
- int checkall; /* may abandon all changed buffers */
- {
-! char_u buff[DIALOG_MSG_SIZE];
- int ret;
- buf_T *buf2;
-
-*** ../vim-7.3.160/src/ex_docmd.c 2011-04-11 16:56:29.000000000 +0200
---- src/ex_docmd.c 2011-04-11 21:20:35.000000000 +0200
-***************
-*** 5093,5106 ****
- #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
- if ((p_confirm || cmdmod.confirm) && curbuf->b_fname != NULL)
- {
-! char_u buff[IOSIZE];
-
- if (n == 1)
- vim_strncpy(buff,
- (char_u *)_("1 more file to edit. Quit anyway?"),
-! IOSIZE - 1);
- else
-! vim_snprintf((char *)buff, IOSIZE,
- _("%d more files to edit. Quit anyway?"), n);
- if (vim_dialog_yesno(VIM_QUESTION, NULL, buff, 1) == VIM_YES)
- return OK;
---- 5093,5106 ----
- #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
- if ((p_confirm || cmdmod.confirm) && curbuf->b_fname != NULL)
- {
-! char_u buff[DIALOG_MSG_SIZE];
-
- if (n == 1)
- vim_strncpy(buff,
- (char_u *)_("1 more file to edit. Quit anyway?"),
-! DIALOG_MSG_SIZE - 1);
- else
-! vim_snprintf((char *)buff, DIALOG_MSG_SIZE,
- _("%d more files to edit. Quit anyway?"), n);
- if (vim_dialog_yesno(VIM_QUESTION, NULL, buff, 1) == VIM_YES)
- return OK;
-***************
-*** 8926,8960 ****
- failed = TRUE;
- if (eap->cmdidx == CMD_mksession)
- {
-! char_u dirnow[MAXPATHL]; /* current directory */
-
-! /*
-! * Change to session file's dir.
-! */
-! if (mch_dirname(dirnow, MAXPATHL) == FAIL
-! || mch_chdir((char *)dirnow) != 0)
-! *dirnow = NUL;
-! if (*dirnow != NUL && (ssop_flags & SSOP_SESDIR))
-! {
-! if (vim_chdirfile(fname) == OK)
-! shorten_fnames(TRUE);
-! }
-! else if (*dirnow != NUL
-! && (ssop_flags & SSOP_CURDIR) && globaldir != NULL)
- {
-! if (mch_chdir((char *)globaldir) == 0)
-! shorten_fnames(TRUE);
-! }
-
-! failed |= (makeopens(fd, dirnow) == FAIL);
-
-! /* restore original dir */
-! if (*dirnow != NUL && ((ssop_flags & SSOP_SESDIR)
- || ((ssop_flags & SSOP_CURDIR) && globaldir != NULL)))
-! {
-! if (mch_chdir((char *)dirnow) != 0)
-! EMSG(_(e_prev_dir));
-! shorten_fnames(TRUE);
- }
- }
- else
---- 8926,8967 ----
- failed = TRUE;
- if (eap->cmdidx == CMD_mksession)
- {
-! char_u *dirnow; /* current directory */
-
-! dirnow = alloc(MAXPATHL);
-! if (dirnow == NULL)
-! failed = TRUE;
-! else
- {
-! /*
-! * Change to session file's dir.
-! */
-! if (mch_dirname(dirnow, MAXPATHL) == FAIL
-! || mch_chdir((char *)dirnow) != 0)
-! *dirnow = NUL;
-! if (*dirnow != NUL && (ssop_flags & SSOP_SESDIR))
-! {
-! if (vim_chdirfile(fname) == OK)
-! shorten_fnames(TRUE);
-! }
-! else if (*dirnow != NUL
-! && (ssop_flags & SSOP_CURDIR) && globaldir != NULL)
-! {
-! if (mch_chdir((char *)globaldir) == 0)
-! shorten_fnames(TRUE);
-! }
-
-! failed |= (makeopens(fd, dirnow) == FAIL);
-
-! /* restore original dir */
-! if (*dirnow != NUL && ((ssop_flags & SSOP_SESDIR)
- || ((ssop_flags & SSOP_CURDIR) && globaldir != NULL)))
-! {
-! if (mch_chdir((char *)dirnow) != 0)
-! EMSG(_(e_prev_dir));
-! shorten_fnames(TRUE);
-! }
-! vim_free(dirnow);
- }
- }
- else
-***************
-*** 8985,8994 ****
- else if (eap->cmdidx == CMD_mksession)
- {
- /* successful session write - set this_session var */
-! char_u tbuf[MAXPATHL];
-
-! if (vim_FullName(fname, tbuf, MAXPATHL, FALSE) == OK)
-! set_vim_var_string(VV_THIS_SESSION, tbuf, -1);
- }
- #endif
- #ifdef MKSESSION_NL
---- 8992,9006 ----
- else if (eap->cmdidx == CMD_mksession)
- {
- /* successful session write - set this_session var */
-! char_u *tbuf;
-
-! tbuf = alloc(MAXPATHL);
-! if (tbuf != NULL)
-! {
-! if (vim_FullName(fname, tbuf, MAXPATHL, FALSE) == OK)
-! set_vim_var_string(VV_THIS_SESSION, tbuf, -1);
-! vim_free(tbuf);
-! }
- }
- #endif
- #ifdef MKSESSION_NL
-***************
-*** 10677,10683 ****
- unsigned *flagp;
- {
- int i;
-! char_u buf[MAXPATHL];
- char_u *s;
-
- if (gap->ga_len == 0)
---- 10689,10695 ----
- unsigned *flagp;
- {
- int i;
-! char_u *buf = NULL;
- char_u *s;
-
- if (gap->ga_len == 0)
-***************
-*** 10692,10702 ****
- {
- if (fullname)
- {
-! (void)vim_FullName(s, buf, MAXPATHL, FALSE);
-! s = buf;
- }
- if (fputs(" ", fd) < 0 || ses_put_fname(fd, s, flagp) == FAIL)
- return FAIL;
- }
- }
- return put_eol(fd);
---- 10704,10722 ----
- {
- if (fullname)
- {
-! buf = alloc(MAXPATHL);
-! if (buf != NULL)
-! {
-! (void)vim_FullName(s, buf, MAXPATHL, FALSE);
-! s = buf;
-! }
- }
- if (fputs(" ", fd) < 0 || ses_put_fname(fd, s, flagp) == FAIL)
-+ {
-+ vim_free(buf);
- return FAIL;
-+ }
-+ vim_free(buf);
- }
- }
- return put_eol(fd);
-***************
-*** 10925,10931 ****
-
- #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG) || defined(PROTO)
- /*
-! * Make a dialog message in "buff[IOSIZE]".
- * "format" must contain "%s".
- */
- void
---- 10945,10951 ----
-
- #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG) || defined(PROTO)
- /*
-! * Make a dialog message in "buff[DIALOG_MSG_SIZE]".
- * "format" must contain "%s".
- */
- void
-***************
-*** 10936,10942 ****
- {
- if (fname == NULL)
- fname = (char_u *)_("Untitled");
-! vim_snprintf((char *)buff, IOSIZE, format, fname);
- }
- #endif
-
---- 10956,10962 ----
- {
- if (fname == NULL)
- fname = (char_u *)_("Untitled");
-! vim_snprintf((char *)buff, DIALOG_MSG_SIZE, format, fname);
- }
- #endif
-
-*** ../vim-7.3.160/src/fileio.c 2011-02-25 16:52:13.000000000 +0100
---- src/fileio.c 2011-04-11 18:35:10.000000000 +0200
-***************
-*** 6023,6037 ****
- shorten_fname1(full_path)
- char_u *full_path;
- {
-! char_u dirname[MAXPATHL];
- char_u *p = full_path;
-
- if (mch_dirname(dirname, MAXPATHL) == OK)
- {
- p = shorten_fname(full_path, dirname);
- if (p == NULL || *p == NUL)
- p = full_path;
- }
- return p;
- }
- #endif
---- 6023,6041 ----
- shorten_fname1(full_path)
- char_u *full_path;
- {
-! char_u *dirname;
- char_u *p = full_path;
-
-+ dirname = alloc(MAXPATHL);
-+ if (dirname == NULL)
-+ return full_path;
- if (mch_dirname(dirname, MAXPATHL) == OK)
- {
- p = shorten_fname(full_path, dirname);
- if (p == NULL || *p == NUL)
- p = full_path;
- }
-+ vim_free(dirname);
- return p;
- }
- #endif
-*** ../vim-7.3.160/src/hardcopy.c 2011-04-11 16:56:29.000000000 +0200
---- src/hardcopy.c 2011-04-11 18:23:38.000000000 +0200
-***************
-*** 1759,1765 ****
- char *name;
- struct prt_ps_resource_S *resource;
- {
-! char_u buffer[MAXPATHL + 1];
-
- vim_strncpy(resource->name, (char_u *)name, 63);
- /* Look for named resource file in runtimepath */
---- 1759,1770 ----
- char *name;
- struct prt_ps_resource_S *resource;
- {
-! char_u *buffer;
-! int retval;
-!
-! buffer = alloc(MAXPATHL + 1);
-! if (buffer == NULL)
-! return FALSE;
-
- vim_strncpy(resource->name, (char_u *)name, 63);
- /* Look for named resource file in runtimepath */
-***************
-*** 1768,1776 ****
- vim_strcat(buffer, (char_u *)name, MAXPATHL);
- vim_strcat(buffer, (char_u *)".ps", MAXPATHL);
- resource->filename[0] = NUL;
-! return (do_in_runtimepath(buffer, FALSE, prt_resource_name,
- resource->filename)
- && resource->filename[0] != NUL);
- }
-
- /* PS CR and LF characters have platform independent values */
---- 1773,1783 ----
- vim_strcat(buffer, (char_u *)name, MAXPATHL);
- vim_strcat(buffer, (char_u *)".ps", MAXPATHL);
- resource->filename[0] = NUL;
-! retval = (do_in_runtimepath(buffer, FALSE, prt_resource_name,
- resource->filename)
- && resource->filename[0] != NUL);
-+ vim_free(buffer);
-+ return retval;
- }
-
- /* PS CR and LF characters have platform independent values */
-***************
-*** 2848,2862 ****
- double right;
- double top;
- double bottom;
-! struct prt_ps_resource_S res_prolog;
-! struct prt_ps_resource_S res_encoding;
- char buffer[256];
- char_u *p_encoding;
- char_u *p;
- #ifdef FEAT_MBYTE
-! struct prt_ps_resource_S res_cidfont;
-! struct prt_ps_resource_S res_cmap;
- #endif
-
- /*
- * PS DSC Header comments - no PS code!
---- 2855,2887 ----
- double right;
- double top;
- double bottom;
-! struct prt_ps_resource_S *res_prolog;
-! struct prt_ps_resource_S *res_encoding;
- char buffer[256];
- char_u *p_encoding;
- char_u *p;
- #ifdef FEAT_MBYTE
-! struct prt_ps_resource_S *res_cidfont;
-! struct prt_ps_resource_S *res_cmap;
- #endif
-+ int retval = FALSE;
-+
-+ res_prolog = (struct prt_ps_resource_S *)
-+ alloc(sizeof(struct prt_ps_resource_S));
-+ res_encoding = (struct prt_ps_resource_S *)
-+ alloc(sizeof(struct prt_ps_resource_S));
-+ #ifdef FEAT_MBYTE
-+ res_cidfont = (struct prt_ps_resource_S *)
-+ alloc(sizeof(struct prt_ps_resource_S));
-+ res_cmap = (struct prt_ps_resource_S *)
-+ alloc(sizeof(struct prt_ps_resource_S));
-+ #endif
-+ if (res_prolog == NULL || res_encoding == NULL
-+ #ifdef FEAT_MBYTE
-+ || res_cidfont == NULL || res_cmap == NULL
-+ #endif
-+ )
-+ goto theend;
-
- /*
- * PS DSC Header comments - no PS code!
-***************
-*** 2932,2958 ****
- #endif
-
- /* Search for external resources VIM supplies */
-! if (!prt_find_resource("prolog", &res_prolog))
- {
- EMSG(_("E456: Can't find PostScript resource file \"prolog.ps\""));
- return FALSE;
- }
-! if (!prt_open_resource(&res_prolog))
- return FALSE;
-! if (!prt_check_resource(&res_prolog, PRT_PROLOG_VERSION))
- return FALSE;
- #ifdef FEAT_MBYTE
- if (prt_out_mbyte)
- {
- /* Look for required version of multi-byte printing procset */
-! if (!prt_find_resource("cidfont", &res_cidfont))
- {
- EMSG(_("E456: Can't find PostScript resource file \"cidfont.ps\""));
- return FALSE;
- }
-! if (!prt_open_resource(&res_cidfont))
- return FALSE;
-! if (!prt_check_resource(&res_cidfont, PRT_CID_PROLOG_VERSION))
- return FALSE;
- }
- #endif
---- 2957,2983 ----
- #endif
-
- /* Search for external resources VIM supplies */
-! if (!prt_find_resource("prolog", res_prolog))
- {
- EMSG(_("E456: Can't find PostScript resource file \"prolog.ps\""));
- return FALSE;
- }
-! if (!prt_open_resource(res_prolog))
- return FALSE;
-! if (!prt_check_resource(res_prolog, PRT_PROLOG_VERSION))
- return FALSE;
- #ifdef FEAT_MBYTE
- if (prt_out_mbyte)
- {
- /* Look for required version of multi-byte printing procset */
-! if (!prt_find_resource("cidfont", res_cidfont))
- {
- EMSG(_("E456: Can't find PostScript resource file \"cidfont.ps\""));
- return FALSE;
- }
-! if (!prt_open_resource(res_cidfont))
- return FALSE;
-! if (!prt_check_resource(res_cidfont, PRT_CID_PROLOG_VERSION))
- return FALSE;
- }
- #endif
-***************
-*** 2968,2974 ****
- #endif
- p_encoding = enc_skip(p_penc);
- if (*p_encoding == NUL
-! || !prt_find_resource((char *)p_encoding, &res_encoding))
- {
- /* 'printencoding' not set or not supported - find alternate */
- #ifdef FEAT_MBYTE
---- 2993,2999 ----
- #endif
- p_encoding = enc_skip(p_penc);
- if (*p_encoding == NUL
-! || !prt_find_resource((char *)p_encoding, res_encoding))
- {
- /* 'printencoding' not set or not supported - find alternate */
- #ifdef FEAT_MBYTE
-***************
-*** 2977,2989 ****
- p_encoding = enc_skip(p_enc);
- props = enc_canon_props(p_encoding);
- if (!(props & ENC_8BIT)
-! || !prt_find_resource((char *)p_encoding, &res_encoding))
- /* 8-bit 'encoding' is not supported */
- #endif
- {
- /* Use latin1 as default printing encoding */
- p_encoding = (char_u *)"latin1";
-! if (!prt_find_resource((char *)p_encoding, &res_encoding))
- {
- EMSG2(_("E456: Can't find PostScript resource file \"%s.ps\""),
- p_encoding);
---- 3002,3014 ----
- p_encoding = enc_skip(p_enc);
- props = enc_canon_props(p_encoding);
- if (!(props & ENC_8BIT)
-! || !prt_find_resource((char *)p_encoding, res_encoding))
- /* 8-bit 'encoding' is not supported */
- #endif
- {
- /* Use latin1 as default printing encoding */
- p_encoding = (char_u *)"latin1";
-! if (!prt_find_resource((char *)p_encoding, res_encoding))
- {
- EMSG2(_("E456: Can't find PostScript resource file \"%s.ps\""),
- p_encoding);
-***************
-*** 2991,2997 ****
- }
- }
- }
-! if (!prt_open_resource(&res_encoding))
- return FALSE;
- /* For the moment there are no checks on encoding resource files to
- * perform */
---- 3016,3022 ----
- }
- }
- }
-! if (!prt_open_resource(res_encoding))
- return FALSE;
- /* For the moment there are no checks on encoding resource files to
- * perform */
-***************
-*** 3005,3017 ****
- if (prt_use_courier)
- {
- /* Include ASCII range encoding vector */
-! if (!prt_find_resource(prt_ascii_encoding, &res_encoding))
- {
- EMSG2(_("E456: Can't find PostScript resource file \"%s.ps\""),
- prt_ascii_encoding);
- return FALSE;
- }
-! if (!prt_open_resource(&res_encoding))
- return FALSE;
- /* For the moment there are no checks on encoding resource files to
- * perform */
---- 3030,3042 ----
- if (prt_use_courier)
- {
- /* Include ASCII range encoding vector */
-! if (!prt_find_resource(prt_ascii_encoding, res_encoding))
- {
- EMSG2(_("E456: Can't find PostScript resource file \"%s.ps\""),
- prt_ascii_encoding);
- return FALSE;
- }
-! if (!prt_open_resource(res_encoding))
- return FALSE;
- /* For the moment there are no checks on encoding resource files to
- * perform */
-***************
-*** 3034,3077 ****
- if (prt_out_mbyte && prt_custom_cmap)
- {
- /* Find user supplied CMap */
-! if (!prt_find_resource(prt_cmap, &res_cmap))
- {
- EMSG2(_("E456: Can't find PostScript resource file \"%s.ps\""),
- prt_cmap);
- return FALSE;
- }
-! if (!prt_open_resource(&res_cmap))
- return FALSE;
- }
- #endif
-
- /* List resources supplied */
-! STRCPY(buffer, res_prolog.title);
- STRCAT(buffer, " ");
-! STRCAT(buffer, res_prolog.version);
- prt_dsc_resources("DocumentSuppliedResources", "procset", buffer);
- #ifdef FEAT_MBYTE
- if (prt_out_mbyte)
- {
-! STRCPY(buffer, res_cidfont.title);
- STRCAT(buffer, " ");
-! STRCAT(buffer, res_cidfont.version);
- prt_dsc_resources(NULL, "procset", buffer);
-
- if (prt_custom_cmap)
- {
-! STRCPY(buffer, res_cmap.title);
- STRCAT(buffer, " ");
-! STRCAT(buffer, res_cmap.version);
- prt_dsc_resources(NULL, "cmap", buffer);
- }
- }
- if (!prt_out_mbyte || prt_use_courier)
- #endif
- {
-! STRCPY(buffer, res_encoding.title);
- STRCAT(buffer, " ");
-! STRCAT(buffer, res_encoding.version);
- prt_dsc_resources(NULL, "encoding", buffer);
- }
- prt_dsc_requirements(prt_duplex, prt_tumble, prt_collate,
---- 3059,3102 ----
- if (prt_out_mbyte && prt_custom_cmap)
- {
- /* Find user supplied CMap */
-! if (!prt_find_resource(prt_cmap, res_cmap))
- {
- EMSG2(_("E456: Can't find PostScript resource file \"%s.ps\""),
- prt_cmap);
- return FALSE;
- }
-! if (!prt_open_resource(res_cmap))
- return FALSE;
- }
- #endif
-
- /* List resources supplied */
-! STRCPY(buffer, res_prolog->title);
- STRCAT(buffer, " ");
-! STRCAT(buffer, res_prolog->version);
- prt_dsc_resources("DocumentSuppliedResources", "procset", buffer);
- #ifdef FEAT_MBYTE
- if (prt_out_mbyte)
- {
-! STRCPY(buffer, res_cidfont->title);
- STRCAT(buffer, " ");
-! STRCAT(buffer, res_cidfont->version);
- prt_dsc_resources(NULL, "procset", buffer);
-
- if (prt_custom_cmap)
- {
-! STRCPY(buffer, res_cmap->title);
- STRCAT(buffer, " ");
-! STRCAT(buffer, res_cmap->version);
- prt_dsc_resources(NULL, "cmap", buffer);
- }
- }
- if (!prt_out_mbyte || prt_use_courier)
- #endif
- {
-! STRCPY(buffer, res_encoding->title);
- STRCAT(buffer, " ");
-! STRCAT(buffer, res_encoding->version);
- prt_dsc_resources(NULL, "encoding", buffer);
- }
- prt_dsc_requirements(prt_duplex, prt_tumble, prt_collate,
-***************
-*** 3114,3128 ****
- prt_dsc_noarg("BeginProlog");
-
- /* Add required procsets - NOTE: order is important! */
-! if (!prt_add_resource(&res_prolog))
- return FALSE;
- #ifdef FEAT_MBYTE
- if (prt_out_mbyte)
- {
- /* Add CID font procset, and any user supplied CMap */
-! if (!prt_add_resource(&res_cidfont))
- return FALSE;
-! if (prt_custom_cmap && !prt_add_resource(&res_cmap))
- return FALSE;
- }
- #endif
---- 3139,3153 ----
- prt_dsc_noarg("BeginProlog");
-
- /* Add required procsets - NOTE: order is important! */
-! if (!prt_add_resource(res_prolog))
- return FALSE;
- #ifdef FEAT_MBYTE
- if (prt_out_mbyte)
- {
- /* Add CID font procset, and any user supplied CMap */
-! if (!prt_add_resource(res_cidfont))
- return FALSE;
-! if (prt_custom_cmap && !prt_add_resource(res_cmap))
- return FALSE;
- }
- #endif
-***************
-*** 3132,3138 ****
- #endif
- /* There will be only one Roman font encoding to be included in the PS
- * file. */
-! if (!prt_add_resource(&res_encoding))
- return FALSE;
-
- prt_dsc_noarg("EndProlog");
---- 3157,3163 ----
- #endif
- /* There will be only one Roman font encoding to be included in the PS
- * file. */
-! if (!prt_add_resource(res_encoding))
- return FALSE;
-
- prt_dsc_noarg("EndProlog");
-***************
-*** 3248,3254 ****
- prt_dsc_noarg("EndSetup");
-
- /* Fail if any problems writing out to the PS file */
-! return !prt_file_error;
- }
-
- void
---- 3273,3289 ----
- prt_dsc_noarg("EndSetup");
-
- /* Fail if any problems writing out to the PS file */
-! retval = !prt_file_error;
-!
-! theend:
-! vim_free(res_prolog);
-! vim_free(res_encoding);
-! #ifdef FEAT_MBYTE
-! vim_free(res_cidfont);
-! vim_free(res_cmap);
-! #endif
-!
-! return retval;
- }
-
- void
-*** ../vim-7.3.160/src/quickfix.c 2010-12-02 15:33:10.000000000 +0100
---- src/quickfix.c 2011-04-11 17:54:07.000000000 +0200
-***************
-*** 3049,3056 ****
- int flags = 0;
- colnr_T col;
- long tomatch;
-! char_u dirname_start[MAXPATHL];
-! char_u dirname_now[MAXPATHL];
- char_u *target_dir = NULL;
- #ifdef FEAT_AUTOCMD
- char_u *au_name = NULL;
---- 3049,3056 ----
- int flags = 0;
- colnr_T col;
- long tomatch;
-! char_u *dirname_start = NULL;
-! char_u *dirname_now = NULL;
- char_u *target_dir = NULL;
- #ifdef FEAT_AUTOCMD
- char_u *au_name = NULL;
-***************
-*** 3128,3133 ****
---- 3128,3138 ----
- goto theend;
- }
-
-+ dirname_start = alloc(MAXPATHL);
-+ dirname_now = alloc(MAXPATHL);
-+ if (dirname_start == NULL || dirname_now == NULL)
-+ goto theend;
-+
- /* Remember the current directory, because a BufRead autocommand that does
- * ":lcd %:p:h" changes the meaning of short path names. */
- mch_dirname(dirname_start, MAXPATHL);
-***************
-*** 3364,3369 ****
---- 3369,3376 ----
- }
-
- theend:
-+ vim_free(dirname_now);
-+ vim_free(dirname_start);
- vim_free(target_dir);
- vim_free(regmatch.regprog);
- }
-*** ../vim-7.3.160/src/main.c 2011-03-22 18:10:34.000000000 +0100
---- src/main.c 2011-04-11 18:06:06.000000000 +0200
-***************
-*** 3814,3820 ****
- int i;
- char_u *inicmd = NULL;
- char_u *p;
-! char_u cwd[MAXPATHL];
-
- if (filec > 0 && filev[0][0] == '+')
- {
---- 3814,3820 ----
- int i;
- char_u *inicmd = NULL;
- char_u *p;
-! char_u *cwd;
-
- if (filec > 0 && filev[0][0] == '+')
- {
-***************
-*** 3827,3841 ****
- 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,
- #ifdef BACKSLASH_IN_FILENAME
- "", /* rem_backslash() will tell what chars to escape */
- #else
- PATH_ESC_CHARS,
- #endif
-! '\\', TRUE)) == NULL)
- return NULL;
- ga_init2(&ga, 1, 100);
- ga_concat(&ga, (char_u *)"<C-\\><C-N>:cd ");
---- 3827,3849 ----
- mainerr_arg_missing((char_u *)filev[-1]);
-
- /* Temporarily cd to the current directory to handle relative file names. */
-+ cwd = alloc(MAXPATHL);
-+ if (cwd == NULL)
-+ return NULL;
- if (mch_dirname(cwd, MAXPATHL) != OK)
-+ {
-+ vim_free(cwd);
- return NULL;
-! }
-! p = vim_strsave_escaped_ext(cwd,
- #ifdef BACKSLASH_IN_FILENAME
- "", /* rem_backslash() will tell what chars to escape */
- #else
- PATH_ESC_CHARS,
- #endif
-! '\\', TRUE);
-! vim_free(cwd);
-! if (p == NULL)
- return NULL;
- ga_init2(&ga, 1, 100);
- ga_concat(&ga, (char_u *)"<C-\\><C-N>:cd ");
-*** ../vim-7.3.160/src/netbeans.c 2011-04-11 16:56:29.000000000 +0200
---- src/netbeans.c 2011-04-11 18:27:08.000000000 +0200
-***************
-*** 2891,2897 ****
- char_u *text;
- linenr_T lnum;
- int col;
-! char buf[MAXPATHL * 2 + 25];
- char_u *p;
-
- /* Don't do anything when 'ballooneval' is off, messages scrolled the
---- 2891,2897 ----
- char_u *text;
- linenr_T lnum;
- int col;
-! char *buf;
- char_u *p;
-
- /* Don't do anything when 'ballooneval' is off, messages scrolled the
-***************
-*** 2905,2919 ****
- * length. */
- if (text != NULL && text[0] != NUL && STRLEN(text) < MAXPATHL)
- {
-! p = nb_quote(text);
-! if (p != NULL)
- {
-! vim_snprintf(buf, sizeof(buf),
-! "0:balloonText=%d \"%s\"\n", r_cmdno, p);
-! vim_free(p);
- }
-- nbdebug(("EVT: %s", buf));
-- nb_send(buf, "netbeans_beval_cb");
- }
- vim_free(text);
- }
---- 2905,2924 ----
- * length. */
- if (text != NULL && text[0] != NUL && STRLEN(text) < MAXPATHL)
- {
-! buf = (char *)alloc(MAXPATHL * 2 + 25);
-! if (buf != NULL)
- {
-! p = nb_quote(text);
-! if (p != NULL)
-! {
-! vim_snprintf(buf, MAXPATHL * 2 + 25,
-! "0:balloonText=%d \"%s\"\n", r_cmdno, p);
-! vim_free(p);
-! }
-! nbdebug(("EVT: %s", buf));
-! nb_send(buf, "netbeans_beval_cb");
-! vim_free(buf);
- }
- }
- vim_free(text);
- }
-*** ../vim-7.3.160/src/spell.c 2011-04-11 16:56:29.000000000 +0200
---- src/spell.c 2011-04-11 18:00:49.000000000 +0200
-***************
-*** 8590,8596 ****
- spellinfo_T *spin;
- char_u *wfname;
- {
-! char_u fname[MAXPATHL];
- int len;
- slang_T *slang;
- int free_slang = FALSE;
---- 8590,8596 ----
- spellinfo_T *spin;
- char_u *wfname;
- {
-! char_u *fname = NULL;
- int len;
- slang_T *slang;
- int free_slang = FALSE;
-***************
-*** 8654,8659 ****
---- 8654,8662 ----
- * Write the .sug file.
- * Make the file name by changing ".spl" to ".sug".
- */
-+ fname = alloc(MAXPATHL);
-+ if (fname == NULL)
-+ goto theend;
- vim_strncpy(fname, wfname, MAXPATHL - 1);
- len = (int)STRLEN(fname);
- fname[len - 2] = 'u';
-***************
-*** 8661,8666 ****
---- 8664,8670 ----
- sug_write(spin, fname);
-
- theend:
-+ vim_free(fname);
- if (free_slang)
- slang_free(slang);
- free_blocks(spin->si_blocks);
-***************
-*** 9106,9113 ****
- int overwrite; /* overwrite existing output file */
- int added_word; /* invoked through "zg" */
- {
-! char_u fname[MAXPATHL];
-! char_u wfname[MAXPATHL];
- char_u **innames;
- int incount;
- afffile_T *(afile[8]);
---- 9110,9117 ----
- int overwrite; /* overwrite existing output file */
- int added_word; /* invoked through "zg" */
- {
-! char_u *fname = NULL;
-! char_u *wfname;
- char_u **innames;
- int incount;
- afffile_T *(afile[8]);
-***************
-*** 9135,9140 ****
---- 9139,9148 ----
- innames = &fnames[1];
- incount = fcount - 1;
-
-+ wfname = alloc(MAXPATHL);
-+ if (wfname == NULL)
-+ return;
-+
- if (fcount >= 1)
- {
- len = (int)STRLEN(fnames[0]);
-***************
-*** 9144,9167 ****
- * "path/en.latin1.add.spl". */
- innames = &fnames[0];
- incount = 1;
-! vim_snprintf((char *)wfname, sizeof(wfname), "%s.spl", fnames[0]);
- }
- else if (fcount == 1)
- {
- /* 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)
- {
- /* Name ends in ".spl", use as the file name. */
-! vim_strncpy(wfname, fnames[0], sizeof(wfname) - 1);
- }
- 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. */
---- 9152,9175 ----
- * "path/en.latin1.add.spl". */
- innames = &fnames[0];
- incount = 1;
-! vim_snprintf((char *)wfname, MAXPATHL, "%s.spl", fnames[0]);
- }
- else if (fcount == 1)
- {
- /* For ":mkspell path/vim" output file is "path/vim.latin1.spl". */
- innames = &fnames[0];
- incount = 1;
-! vim_snprintf((char *)wfname, MAXPATHL, SPL_FNAME_TMPL,
- fnames[0], spin.si_ascii ? (char_u *)"ascii" : spell_enc());
- }
- else if (len > 4 && STRCMP(fnames[0] + len - 4, ".spl") == 0)
- {
- /* Name ends in ".spl", use as the file name. */
-! vim_strncpy(wfname, fnames[0], MAXPATHL - 1);
- }
- else
- /* Name should be language, make the file name from it. */
-! vim_snprintf((char *)wfname, MAXPATHL, SPL_FNAME_TMPL,
- fnames[0], spin.si_ascii ? (char_u *)"ascii" : spell_enc());
-
- /* Check for .ascii.spl. */
-***************
-*** 9186,9199 ****
- if (!overwrite && mch_stat((char *)wfname, &st) >= 0)
- {
- EMSG(_(e_exists));
-! return;
- }
- if (mch_isdir(wfname))
- {
- EMSG2(_(e_isadir2), wfname);
-! return;
- }
-
- /*
- * Init the aff and dic pointers.
- * Get the region names if there are more than 2 arguments.
---- 9194,9211 ----
- if (!overwrite && mch_stat((char *)wfname, &st) >= 0)
- {
- EMSG(_(e_exists));
-! goto theend;
- }
- if (mch_isdir(wfname))
- {
- EMSG2(_(e_isadir2), wfname);
-! goto theend;
- }
-
-+ fname = alloc(MAXPATHL);
-+ if (fname == NULL)
-+ goto theend;
-+
- /*
- * Init the aff and dic pointers.
- * Get the region names if there are more than 2 arguments.
-***************
-*** 9209,9215 ****
- || innames[i][len - 3] != '_')
- {
- EMSG2(_("E755: Invalid region in %s"), innames[i]);
-! return;
- }
- spin.si_region_name[i * 2] = TOLOWER_ASC(innames[i][len - 2]);
- spin.si_region_name[i * 2 + 1] =
---- 9221,9227 ----
- || innames[i][len - 3] != '_')
- {
- EMSG2(_("E755: Invalid region in %s"), innames[i]);
-! goto theend;
- }
- spin.si_region_name[i * 2] = TOLOWER_ASC(innames[i][len - 2]);
- spin.si_region_name[i * 2 + 1] =
-***************
-*** 9226,9232 ****
- || spin.si_prefroot == NULL)
- {
- free_blocks(spin.si_blocks);
-! return;
- }
-
- /* When not producing a .add.spl file clear the character table when
---- 9238,9244 ----
- || spin.si_prefroot == NULL)
- {
- free_blocks(spin.si_blocks);
-! goto theend;
- }
-
- /* When not producing a .add.spl file clear the character table when
-***************
-*** 9247,9253 ****
- spin.si_conv.vc_type = CONV_NONE;
- spin.si_region = 1 << i;
-
-! vim_snprintf((char *)fname, sizeof(fname), "%s.aff", innames[i]);
- if (mch_stat((char *)fname, &st) >= 0)
- {
- /* Read the .aff file. Will init "spin->si_conv" based on the
---- 9259,9265 ----
- spin.si_conv.vc_type = CONV_NONE;
- spin.si_region = 1 << i;
-
-! vim_snprintf((char *)fname, MAXPATHL, "%s.aff", innames[i]);
- if (mch_stat((char *)fname, &st) >= 0)
- {
- /* Read the .aff file. Will init "spin->si_conv" based on the
-***************
-*** 9258,9264 ****
- else
- {
- /* Read the .dic file and store the words in the trees. */
-! vim_snprintf((char *)fname, sizeof(fname), "%s.dic",
- innames[i]);
- if (spell_read_dic(&spin, fname, afile[i]) == FAIL)
- error = TRUE;
---- 9270,9276 ----
- else
- {
- /* Read the .dic file and store the words in the trees. */
-! vim_snprintf((char *)fname, MAXPATHL, "%s.dic",
- innames[i]);
- if (spell_read_dic(&spin, fname, afile[i]) == FAIL)
- error = TRUE;
-***************
-*** 9340,9345 ****
---- 9352,9361 ----
- spell_make_sugfile(&spin, wfname);
-
- }
-+
-+ theend:
-+ vim_free(fname);
-+ vim_free(wfname);
- }
-
- /*
-***************
-*** 9392,9398 ****
- buf_T *buf = NULL;
- int new_spf = FALSE;
- char_u *fname;
-! char_u fnamebuf[MAXPATHL];
- char_u line[MAXWLEN * 2];
- long fpos, fpos_next = 0;
- int i;
---- 9408,9414 ----
- buf_T *buf = NULL;
- int new_spf = FALSE;
- char_u *fname;
-! char_u *fnamebuf = NULL;
- char_u line[MAXWLEN * 2];
- long fpos, fpos_next = 0;
- int i;
-***************
-*** 9422,9427 ****
---- 9438,9446 ----
- EMSG2(_(e_notset), "spellfile");
- return;
- }
-+ fnamebuf = alloc(MAXPATHL);
-+ if (fnamebuf == NULL)
-+ return;
-
- for (spf = curwin->w_s->b_p_spf, i = 1; *spf != NUL; ++i)
- {
-***************
-*** 9431,9436 ****
---- 9450,9456 ----
- if (*spf == NUL)
- {
- EMSGN(_("E765: 'spellfile' does not have %ld entries"), idx);
-+ vim_free(fnamebuf);
- return;
- }
- }
-***************
-*** 9442,9447 ****
---- 9462,9468 ----
- if (buf != NULL && bufIsChanged(buf))
- {
- EMSG(_(e_bufloaded));
-+ vim_free(fnamebuf);
- return;
- }
-
-***************
-*** 9536,9541 ****
---- 9557,9563 ----
-
- redraw_all_later(SOME_VALID);
- }
-+ vim_free(fnamebuf);
- }
-
- /*
-***************
-*** 9544,9550 ****
- static void
- init_spellfile()
- {
-! char_u buf[MAXPATHL];
- int l;
- char_u *fname;
- char_u *rtp;
---- 9566,9572 ----
- static void
- init_spellfile()
- {
-! char_u *buf;
- int l;
- char_u *fname;
- char_u *rtp;
-***************
-*** 9554,9559 ****
---- 9576,9585 ----
-
- if (*curwin->w_s->b_p_spl != NUL && curwin->w_s->b_langp.ga_len > 0)
- {
-+ buf = alloc(MAXPATHL);
-+ if (buf == NULL)
-+ return;
-+
- /* Find the end of the language name. Exclude the region. If there
- * is a path separator remember the start of the tail. */
- for (lend = curwin->w_s->b_p_spl; *lend != NUL
-***************
-*** 9597,9603 ****
- "/%.*s", (int)(lend - lstart), lstart);
- }
- l = (int)STRLEN(buf);
-! fname = LANGP_ENTRY(curwin->w_s->b_langp, 0)->lp_slang->sl_fname;
- vim_snprintf((char *)buf + l, MAXPATHL - l, ".%s.add",
- fname != NULL
- && strstr((char *)gettail(fname), ".ascii.") != NULL
---- 9623,9630 ----
- "/%.*s", (int)(lend - lstart), lstart);
- }
- l = (int)STRLEN(buf);
-! fname = LANGP_ENTRY(curwin->w_s->b_langp, 0)
-! ->lp_slang->sl_fname;
- vim_snprintf((char *)buf + l, MAXPATHL - l, ".%s.add",
- fname != NULL
- && strstr((char *)gettail(fname), ".ascii.") != NULL
-***************
-*** 9607,9612 ****
---- 9634,9641 ----
- }
- aspath = FALSE;
- }
-+
-+ vim_free(buf);
- }
- }
-
-*** ../vim-7.3.160/src/tag.c 2011-04-11 16:56:29.000000000 +0200
---- src/tag.c 2011-04-11 20:54:36.000000000 +0200
-***************
-*** 775,791 ****
- {
- list_T *list;
- char_u tag_name[128 + 1];
-! char_u fname[MAXPATHL + 1];
-! char_u cmd[CMDBUFFSIZE + 1];
-
- /*
- * Add the matching tags to the location list for the current
- * window.
- */
-
- list = list_alloc();
-! if (list == NULL)
- goto end_do_tag;
-
- for (i = 0; i < num_matches; ++i)
- {
---- 775,799 ----
- {
- list_T *list;
- char_u tag_name[128 + 1];
-! char_u *fname;
-! char_u *cmd;
-
- /*
- * Add the matching tags to the location list for the current
- * window.
- */
-
-+ fname = alloc(MAXPATHL + 1);
-+ cmd = alloc(CMDBUFFSIZE + 1);
- list = list_alloc();
-! if (list == NULL || fname == NULL || cmd == NULL)
-! {
-! vim_free(cmd);
-! vim_free(fname);
-! if (list != NULL)
-! list_free(list, TRUE);
- goto end_do_tag;
-+ }
-
- for (i = 0; i < num_matches; ++i)
- {
-***************
-*** 911,916 ****
---- 919,926 ----
- set_errorlist(curwin, list, ' ', IObuff);
-
- list_free(list, TRUE);
-+ vim_free(fname);
-+ vim_free(cmd);
-
- cur_match = 0; /* Jump to the first tag */
- }
-***************
-*** 3777,3784 ****
- char_u *start; /* start of the value */
- char_u *end; /* after the value; can be NULL */
- {
-! char_u buf[MAXPATHL];
- int len = 0;
-
- /* check that the field name doesn't exist yet */
- if (dict_find(dict, (char_u *)field_name, -1) != NULL)
---- 3787,3795 ----
- char_u *start; /* start of the value */
- char_u *end; /* after the value; can be NULL */
- {
-! char_u *buf;
- int len = 0;
-+ int retval;
-
- /* check that the field name doesn't exist yet */
- if (dict_find(dict, (char_u *)field_name, -1) != NULL)
-***************
-*** 3791,3796 ****
---- 3802,3810 ----
- }
- return FAIL;
- }
-+ buf = alloc(MAXPATHL);
-+ if (buf == NULL)
-+ return FAIL;
- if (start != NULL)
- {
- if (end == NULL)
-***************
-*** 3800,3811 ****
- --end;
- }
- len = (int)(end - start);
-! if (len > (int)sizeof(buf) - 1)
-! len = sizeof(buf) - 1;
- vim_strncpy(buf, start, len);
- }
- buf[len] = NUL;
-! return dict_add_nr_str(dict, field_name, 0L, buf);
- }
-
- /*
---- 3814,3827 ----
- --end;
- }
- len = (int)(end - start);
-! if (len > MAXPATHL - 1)
-! len = MAXPATHL - 1;
- vim_strncpy(buf, start, len);
- }
- buf[len] = NUL;
-! retval = dict_add_nr_str(dict, field_name, 0L, buf);
-! vim_free(buf);
-! return retval;
- }
-
- /*
-*** ../vim-7.3.160/src/vim.h 2010-12-30 12:30:26.000000000 +0100
---- src/vim.h 2011-04-11 20:50:54.000000000 +0200
-***************
-*** 1435,1440 ****
---- 1435,1442 ----
-
- #define IOSIZE (1024+1) /* file i/o and sprintf buffer size */
-
-+ #define DIALOG_MSG_SIZE 1000 /* buffer size for dialog_msg() */
-+
- #ifdef FEAT_MBYTE
- # define MSG_BUF_LEN 480 /* length of buffer for small messages */
- # define MSG_BUF_CLEN (MSG_BUF_LEN / 6) /* cell length (worst case: utf-8
-*** ../vim-7.3.160/src/xxd/xxd.c 2011-04-02 14:44:50.000000000 +0200
---- src/xxd/xxd.c 2011-04-11 16:40:48.000000000 +0200
-***************
-*** 476,482 ****
- int octspergrp = -1; /* number of octets grouped in output */
- int grplen; /* total chars per octet group */
- long length = -1, n = 0, seekoff = 0;
-! char l[LLEN+1];
- char *pp;
-
- #ifdef AMIGA
---- 476,482 ----
- int octspergrp = -1; /* number of octets grouped in output */
- int grplen; /* total chars per octet group */
- long length = -1, n = 0, seekoff = 0;
-! static char l[LLEN+1]; /* static because it may be too big for stack */
- char *pp;
-
- #ifdef AMIGA
-*** ../vim-7.3.160/src/version.c 2011-04-11 16:56:29.000000000 +0200
---- src/version.c 2011-04-11 21:15:33.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 161,
- /**/
-
---
-The process for understanding customers primarily involves sitting around with
-other marketing people and talking about what you would to if you were dumb
-enough to be a customer.
- (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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.162
-Fcc: 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.162
-Problem: No error message when assigning to a list with an index out of
- range. (Yukihiro Nakadaira)
-Solution: Add the error message.
-Files: src/eval.c
-
-
-*** ../vim-7.3.161/src/eval.c 2011-04-11 21:35:03.000000000 +0200
---- src/eval.c 2011-04-21 13:40:38.000000000 +0200
-***************
-*** 2794,2799 ****
---- 2794,2801 ----
- {
- if (lp->ll_range && !lp->ll_empty2)
- clear_tv(&var2);
-+ if (!quiet)
-+ EMSGN(_(e_listidx), lp->ll_n1);
- return NULL;
- }
-
-***************
-*** 2811,2817 ****
---- 2813,2823 ----
- {
- ni = list_find(lp->ll_list, lp->ll_n2);
- if (ni == NULL)
-+ {
-+ if (!quiet)
-+ EMSGN(_(e_listidx), lp->ll_n2);
- return NULL;
-+ }
- lp->ll_n2 = list_idx_of_item(lp->ll_list, ni);
- }
-
-***************
-*** 2819,2825 ****
---- 2825,2835 ----
- if (lp->ll_n1 < 0)
- lp->ll_n1 = list_idx_of_item(lp->ll_list, lp->ll_li);
- if (lp->ll_n2 < lp->ll_n1)
-+ {
-+ if (!quiet)
-+ EMSGN(_(e_listidx), lp->ll_n2);
- return NULL;
-+ }
- }
-
- lp->ll_tv = &lp->ll_li->li_tv;
-*** ../vim-7.3.161/src/version.c 2011-04-11 21:35:03.000000000 +0200
---- src/version.c 2011-04-21 13:44:46.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 162,
- /**/
-
---
-Far back in the mists of ancient time, in the great and glorious days of the
-former Galactic Empire, life was wild, rich and largely tax free.
-Mighty starships plied their way between exotic suns, seeking adventure and
-reward among the furthest reaches of Galactic space. In those days, spirits
-were brave, the stakes were high, men were real men, women were real women
-and small furry creatures from Alpha Centauri were real small furry creatures
-from Alpha Centauri. And all dared to brave unknown terrors, to do mighty
-deeds, to boldly split infinitives that no man had split before -- and thus
-was the Empire forged.
- -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.163
-Fcc: 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.163
-Problem: For the default of 'shellpipe' "mksh" and "pdksh" are not
- recognized.
-Solution: Recognize these shell names.
-Files: src/option.c
-
-
-*** ../vim-7.3.162/src/option.c 2011-03-22 14:35:01.000000000 +0100
---- src/option.c 2011-04-15 20:49:54.000000000 +0200
-***************
-*** 3846,3851 ****
---- 3846,3853 ----
- # ifndef OS2 /* Always use bourne shell style redirection if we reach this */
- if ( fnamecmp(p, "sh") == 0
- || fnamecmp(p, "ksh") == 0
-+ || fnamecmp(p, "mksh") == 0
-+ || fnamecmp(p, "pdksh") == 0
- || fnamecmp(p, "zsh") == 0
- || fnamecmp(p, "zsh-beta") == 0
- || fnamecmp(p, "bash") == 0
-***************
-*** 3853,3858 ****
---- 3855,3862 ----
- || fnamecmp(p, "cmd") == 0
- || fnamecmp(p, "sh.exe") == 0
- || fnamecmp(p, "ksh.exe") == 0
-+ || fnamecmp(p, "mksh.exe") == 0
-+ || fnamecmp(p, "pdksh.exe") == 0
- || fnamecmp(p, "zsh.exe") == 0
- || fnamecmp(p, "zsh-beta.exe") == 0
- || fnamecmp(p, "bash.exe") == 0
-*** ../vim-7.3.162/src/version.c 2011-04-21 14:27:21.000000000 +0200
---- src/version.c 2011-04-28 12:56:03.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 163,
- /**/
-
---
-If you put 7 of the most talented OSS developers in a room for a week
-and asked them to fix a bug in a spreadsheet program, in 1 week
-you'd have 2 new mail readers and a text-based web browser.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.164
-Fcc: 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.164
-Problem: C-indenting: a preprocessor statement confuses detection of a
- function delcaration.
-Solution: Ignore preprocessor lines. (Lech Lorens) Also recognize the style
- to put a comma before the argument name.
-Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
-
-
-*** ../vim-7.3.163/src/misc1.c 2011-04-11 16:56:29.000000000 +0200
---- src/misc1.c 2011-04-28 12:49:55.000000000 +0200
-***************
-*** 5396,5403 ****
- cin_ispreproc(s)
- char_u *s;
- {
-! s = skipwhite(s);
-! if (*s == '#')
- return TRUE;
- return FALSE;
- }
---- 5396,5402 ----
- cin_ispreproc(s)
- char_u *s;
- {
-! if (*skipwhite(s) == '#')
- return TRUE;
- return FALSE;
- }
-***************
-*** 5513,5518 ****
---- 5512,5521 ----
- else
- s = *sp;
-
-+ /* Ignore line starting with #. */
-+ if (cin_ispreproc(s))
-+ return FALSE;
-+
- while (*s && *s != '(' && *s != ';' && *s != '\'' && *s != '"')
- {
- if (cin_iscomment(s)) /* ignore comments */
-***************
-*** 5538,5550 ****
- retval = TRUE;
- goto done;
- }
-! if (*s == ',' && cin_nocode(s + 1))
- {
-! /* ',' at the end: continue looking in the next line */
- if (lnum >= curbuf->b_ml.ml_line_count)
- break;
-!
-! s = ml_get(++lnum);
- }
- else if (cin_iscomment(s)) /* ignore comments */
- s = cin_skipcomment(s);
---- 5541,5569 ----
- retval = TRUE;
- goto done;
- }
-! if ((*s == ',' && cin_nocode(s + 1)) || s[1] == NUL || cin_nocode(s))
- {
-! int comma = (*s == ',');
-!
-! /* ',' at the end: continue looking in the next line.
-! * At the end: check for ',' in the next line, for this style:
-! * func(arg1
-! * , arg2) */
-! for (;;)
-! {
-! if (lnum >= curbuf->b_ml.ml_line_count)
-! break;
-! s = ml_get(++lnum);
-! if (!cin_ispreproc(s))
-! break;
-! }
- if (lnum >= curbuf->b_ml.ml_line_count)
- break;
-! /* Require a comma at end of the line or a comma or ')' at the
-! * start of next line. */
-! s = skipwhite(s);
-! if (!comma && *s != ',' && *s != ')')
-! break;
- }
- else if (cin_iscomment(s)) /* ignore comments */
- s = cin_skipcomment(s);
-*** ../vim-7.3.163/src/testdir/test3.in 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test3.in 2011-04-28 12:15:12.000000000 +0200
-***************
-*** 1315,1320 ****
---- 1315,1349 ----
- }
-
- STARTTEST
-+ :set cino=(0,ts
-+ 2kdd=][
-+ ENDTEST
-+
-+ void func(int a
-+ #if defined(FOO)
-+ , int b
-+ , int c
-+ #endif
-+ )
-+ {
-+ }
-+
-+ STARTTEST
-+ :set cino=(0
-+ 2kdd=][
-+ ENDTEST
-+
-+ void
-+ func(int a
-+ #if defined(FOO)
-+ , int b
-+ , int c
-+ #endif
-+ )
-+ {
-+ }
-+
-+ STARTTEST
- :g/^STARTTEST/.,/^ENDTEST/d
- :1;/start of AUTO/,$wq! test.out
- ENDTEST
-*** ../vim-7.3.163/src/testdir/test3.ok 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test3.ok 2011-04-28 12:54:04.000000000 +0200
-***************
-*** 1183,1185 ****
---- 1183,1206 ----
- foo;
- }
-
-+
-+ void func(int a
-+ #if defined(FOO)
-+ , int b
-+ , int c
-+ #endif
-+ )
-+ {
-+ }
-+
-+
-+ void
-+ func(int a
-+ #if defined(FOO)
-+ , int b
-+ , int c
-+ #endif
-+ )
-+ {
-+ }
-+
-*** ../vim-7.3.163/src/version.c 2011-04-28 12:56:57.000000000 +0200
---- src/version.c 2011-04-28 12:59:55.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 164,
- /**/
-
---
-Due knot trussed yore spell chequer two fined awl miss steaks.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.165
-Fcc: 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.165
-Problem: ":find" completion does not escape spaces in a directory name.
- (Isz)
-Solution: Add backslashes for EXPAND_FILES_IN_PATH. (Carlo Teubner)
-Files: src/ex_getln.c
-
-
-*** ../vim-7.3.164/src/ex_getln.c 2010-12-02 16:01:23.000000000 +0100
---- src/ex_getln.c 2011-04-28 12:52:12.000000000 +0200
-***************
-*** 3702,3707 ****
---- 3702,3708 ----
- if (options & WILD_ESCAPE)
- {
- if (xp->xp_context == EXPAND_FILES
-+ || xp->xp_context == EXPAND_FILES_IN_PATH
- || xp->xp_context == EXPAND_SHELLCMD
- || xp->xp_context == EXPAND_BUFFERS
- || xp->xp_context == EXPAND_DIRECTORIES)
-*** ../vim-7.3.164/src/version.c 2011-04-28 13:01:59.000000000 +0200
---- src/version.c 2011-04-28 17:17:53.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 165,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-38. You wake up at 3 a.m. to go to the bathroom and stop and check your e-mail
- on the way back to bed.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.166
-Fcc: 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.166
-Problem: Buffer on the stack may be too big
-Solution: Allocate the space.
-Files: src/option.c
-
-
-*** ../vim-7.3.165/src/option.c 2011-04-28 12:56:57.000000000 +0200
---- src/option.c 2011-04-15 20:49:54.000000000 +0200
-***************
-*** 9185,9191 ****
- int expand;
- {
- char_u *s;
-! char_u buf[MAXPATHL];
-
- if (fprintf(fd, "%s %s=", cmd, name) < 0)
- return FAIL;
---- 9185,9191 ----
- int expand;
- {
- char_u *s;
-! char_u *buf;
-
- if (fprintf(fd, "%s %s=", cmd, name) < 0)
- return FAIL;
-***************
-*** 9203,9211 ****
---- 9203,9218 ----
- }
- else if (expand)
- {
-+ buf = alloc(MAXPATHL);
-+ if (buf == NULL)
-+ return FAIL;
- home_replace(NULL, *valuep, buf, MAXPATHL, FALSE);
- if (put_escstr(fd, buf, 2) == FAIL)
-+ {
-+ vim_free(buf);
- return FAIL;
-+ }
-+ vim_free(buf);
- }
- else if (put_escstr(fd, *valuep, 2) == FAIL)
- return FAIL;
-*** ../vim-7.3.165/src/version.c 2011-04-28 17:21:49.000000000 +0200
---- src/version.c 2011-04-28 17:23:24.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 166,
- /**/
-
---
-He who laughs last, thinks slowest.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.167
-Fcc: 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.167
-Problem: When using the internal grep QuickFixCmdPost is not triggered.
- (Yukihiro Nakadaira)
-Solution: Change the place where autocommands are triggered.
-Files: src/quickfix.c
-
-
-*** ../vim-7.3.166/src/quickfix.c 2011-04-11 21:35:03.000000000 +0200
---- src/quickfix.c 2011-04-28 13:28:03.000000000 +0200
-***************
-*** 2742,2747 ****
---- 2742,2754 ----
- #ifdef FEAT_AUTOCMD
- char_u *au_name = NULL;
-
-+ /* Redirect ":grep" to ":vimgrep" if 'grepprg' is "internal". */
-+ if (grep_internal(eap->cmdidx))
-+ {
-+ ex_vimgrep(eap);
-+ return;
-+ }
-+
- switch (eap->cmdidx)
- {
- case CMD_make: au_name = (char_u *)"make"; break;
-***************
-*** 2763,2775 ****
- }
- #endif
-
-- /* Redirect ":grep" to ":vimgrep" if 'grepprg' is "internal". */
-- if (grep_internal(eap->cmdidx))
-- {
-- ex_vimgrep(eap);
-- return;
-- }
--
- if (eap->cmdidx == CMD_lmake || eap->cmdidx == CMD_lgrep
- || eap->cmdidx == CMD_lgrepadd)
- wp = curwin;
---- 2770,2775 ----
-***************
-*** 3057,3066 ****
-
- switch (eap->cmdidx)
- {
-! case CMD_vimgrep: au_name = (char_u *)"vimgrep"; break;
-! case CMD_lvimgrep: au_name = (char_u *)"lvimgrep"; break;
-! case CMD_vimgrepadd: au_name = (char_u *)"vimgrepadd"; break;
- case CMD_lvimgrepadd: au_name = (char_u *)"lvimgrepadd"; break;
- default: break;
- }
- if (au_name != NULL)
---- 3057,3070 ----
-
- switch (eap->cmdidx)
- {
-! case CMD_vimgrep: au_name = (char_u *)"vimgrep"; break;
-! case CMD_lvimgrep: au_name = (char_u *)"lvimgrep"; break;
-! case CMD_vimgrepadd: au_name = (char_u *)"vimgrepadd"; break;
- case CMD_lvimgrepadd: au_name = (char_u *)"lvimgrepadd"; break;
-+ case CMD_grep: au_name = (char_u *)"grep"; break;
-+ case CMD_lgrep: au_name = (char_u *)"lgrep"; break;
-+ case CMD_grepadd: au_name = (char_u *)"grepadd"; break;
-+ case CMD_lgrepadd: au_name = (char_u *)"lgrepadd"; break;
- default: break;
- }
- if (au_name != NULL)
-*** ../vim-7.3.166/src/version.c 2011-04-28 17:24:54.000000000 +0200
---- src/version.c 2011-04-28 17:26:17.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 167,
- /**/
-
---
-Micro$oft: where do you want to go today?
- Linux: where do you want to go tomorrow?
- FreeBSD: are you guys coming, or what?
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.168
-Fcc: 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.168
-Problem: When the second argument of input() contains a CR the text up to
- that is used without asking the user. (Yasuhiro Matsumoto)
-Solution: Change CR, NL and ESC in the text to a space.
-Files: src/getchar.c
-
-
-*** ../vim-7.3.167/src/getchar.c 2011-03-22 13:07:19.000000000 +0100
---- src/getchar.c 2011-04-28 14:50:26.000000000 +0200
-***************
-*** 635,645 ****
---- 635,648 ----
- /*
- * Stuff "s" into the stuff buffer, leaving special key codes unmodified and
- * escaping other K_SPECIAL and CSI bytes.
-+ * Change CR, LF and ESC into a space.
- */
- void
- stuffReadbuffSpec(s)
- char_u *s;
- {
-+ int c;
-+
- while (*s != NUL)
- {
- if (*s == K_SPECIAL && s[1] != NUL && s[2] != NUL)
-***************
-*** 649,659 ****
- s += 3;
- }
- else
- #ifdef FEAT_MBYTE
-! stuffcharReadbuff(mb_ptr2char_adv(&s));
- #else
-! stuffcharReadbuff(*s++);
- #endif
- }
- }
- #endif
---- 652,667 ----
- s += 3;
- }
- else
-+ {
- #ifdef FEAT_MBYTE
-! c = mb_ptr2char_adv(&s);
- #else
-! c = *s++;
- #endif
-+ if (c == CAR || c == NL || c == ESC)
-+ c = ' ';
-+ stuffcharReadbuff(c);
-+ }
- }
- }
- #endif
-*** ../vim-7.3.167/src/version.c 2011-04-28 17:27:05.000000000 +0200
---- src/version.c 2011-04-28 17:28:36.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 168,
- /**/
-
---
-Everyone has a photographic memory. Some don't have film.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.169
-Fcc: 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.169
-Problem: Freeing memory already freed, warning from static code analyzer.
-Solution: Initialize pointers to NULL, correct use of "mustfree". (partly by
- Dominique Pelle)
-Files: src/mis1.c
-
-
-*** ../vim-7.3.168/src/misc1.c 2011-04-28 13:01:59.000000000 +0200
---- src/misc1.c 2011-04-28 17:42:00.000000000 +0200
-***************
-*** 3505,3511 ****
- if (enc_utf8 && var != NULL)
- {
- int len;
-! char_u *pp;
-
- /* Convert from active codepage to UTF-8. Other conversions are
- * not done, because they would fail for non-ASCII characters. */
---- 3505,3511 ----
- if (enc_utf8 && var != NULL)
- {
- int len;
-! char_u *pp = NULL;
-
- /* Convert from active codepage to UTF-8. Other conversions are
- * not done, because they would fail for non-ASCII characters. */
-***************
-*** 3872,3882 ****
- * Vim's version of getenv().
- * Special handling of $HOME, $VIM and $VIMRUNTIME.
- * Also does ACP to 'enc' conversion for Win32.
- */
- char_u *
- vim_getenv(name, mustfree)
- char_u *name;
-! int *mustfree; /* set to TRUE when returned is allocated */
- {
- char_u *p;
- char_u *pend;
---- 3872,3884 ----
- * Vim's version of getenv().
- * Special handling of $HOME, $VIM and $VIMRUNTIME.
- * Also does ACP to 'enc' conversion for Win32.
-+ * "mustfree" is set to TRUE when returned is allocated, it must be
-+ * initialized to FALSE by the caller.
- */
- char_u *
- vim_getenv(name, mustfree)
- char_u *name;
-! int *mustfree;
- {
- char_u *p;
- char_u *pend;
-***************
-*** 3898,3904 ****
- if (enc_utf8)
- {
- int len;
-! char_u *pp;
-
- /* Convert from active codepage to UTF-8. Other conversions are
- * not done, because they would fail for non-ASCII characters. */
---- 3900,3906 ----
- if (enc_utf8)
- {
- int len;
-! char_u *pp = NULL;
-
- /* Convert from active codepage to UTF-8. Other conversions are
- * not done, because they would fail for non-ASCII characters. */
-***************
-*** 3942,3948 ****
- if (enc_utf8)
- {
- int len;
-! char_u *pp;
-
- /* Convert from active codepage to UTF-8. Other conversions
- * are not done, because they would fail for non-ASCII
---- 3944,3950 ----
- if (enc_utf8)
- {
- int len;
-! char_u *pp = NULL;
-
- /* Convert from active codepage to UTF-8. Other conversions
- * are not done, because they would fail for non-ASCII
-***************
-*** 3950,3956 ****
- acp_to_enc(p, (int)STRLEN(p), &pp, &len);
- if (pp != NULL)
- {
-! if (mustfree)
- vim_free(p);
- p = pp;
- *mustfree = TRUE;
---- 3952,3958 ----
- acp_to_enc(p, (int)STRLEN(p), &pp, &len);
- if (pp != NULL)
- {
-! if (*mustfree)
- vim_free(p);
- p = pp;
- *mustfree = TRUE;
-*** ../vim-7.3.168/src/version.c 2011-04-28 17:30:05.000000000 +0200
---- src/version.c 2011-04-28 17:48:04.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 169,
- /**/
-
---
-A day without sunshine is like, well, night.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.170
-Fcc: 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.170
-Problem: VMS Makefile for testing was not updated for test77.
-Solution: Add test77 to the Makefile.
-Files: src/testdir/Make_vms.mms
-
-
-*** ../vim-7.3.169/src/testdir/Make_vms.mms 2010-11-10 16:54:16.000000000 +0100
---- src/testdir/Make_vms.mms 2011-03-03 17:04:56.000000000 +0100
-***************
-*** 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.
---- 4,10 ----
- # Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
- # Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
- #
-! # Last change: 2011 Mar 03
- #
- # 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 test76.out
-
- # Known problems:
- # Test 30: a problem around mac format - unknown reason
---- 74,81 ----
- 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 \
-! test77.out
-
- # Known problems:
- # Test 30: a problem around mac format - unknown reason
-*** ../vim-7.3.169/src/version.c 2011-04-28 17:48:39.000000000 +0200
---- src/version.c 2011-04-28 19:04:33.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 170,
- /**/
-
---
-The users that I support would double-click on a landmine to find out
-what happens. -- A system administrator
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.171
-Fcc: 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.171
-Problem: When the clipboard isn't supported: ":yank*" gives a confusing
- error message.
-Solution: Specifically mention that the register name is invalid.
- (Jean-Rene David)
-Files: runtime/doc/change.txt, src/ex_docmd.c, src/globals.h
-
-
-*** ../vim-7.3.170/runtime/doc/change.txt 2010-08-15 21:57:18.000000000 +0200
---- runtime/doc/change.txt 2011-05-05 13:48:00.000000000 +0200
-***************
-*** 916,923 ****
- {Visual}["x]Y Yank the highlighted lines [into register x] (for
- {Visual} see |Visual-mode|). {not in Vi}
-
-! *:y* *:yank*
-! :[range]y[ank] [x] Yank [range] lines [into register x].
-
- :[range]y[ank] [x] {count}
- Yank {count} lines, starting with last line number
---- 917,926 ----
- {Visual}["x]Y Yank the highlighted lines [into register x] (for
- {Visual} see |Visual-mode|). {not in Vi}
-
-! *:y* *:yank* *E850*
-! :[range]y[ank] [x] Yank [range] lines [into register x]. Yanking to the
-! "* or "+ registers is possible only in GUI versions or
-! when the |+xterm_clipboard| feature is included.
-
- :[range]y[ank] [x] {count}
- Yank {count} lines, starting with last line number
-*** ../vim-7.3.170/src/ex_docmd.c 2011-04-11 21:35:03.000000000 +0200
---- src/ex_docmd.c 2011-05-05 13:48:57.000000000 +0200
-***************
-*** 2424,2448 ****
- if ( (ea.argt & REGSTR)
- && *ea.arg != NUL
- #ifdef FEAT_USR_CMDS
-- && valid_yank_reg(*ea.arg, (ea.cmdidx != CMD_put
-- && USER_CMDIDX(ea.cmdidx)))
- /* Do not allow register = for user commands */
- && (!USER_CMDIDX(ea.cmdidx) || *ea.arg != '=')
-- #else
-- && valid_yank_reg(*ea.arg, ea.cmdidx != CMD_put)
- #endif
- && !((ea.argt & COUNT) && VIM_ISDIGIT(*ea.arg)))
- {
-! ea.regname = *ea.arg++;
-! #ifdef FEAT_EVAL
-! /* for '=' register: accept the rest of the line as an expression */
-! if (ea.arg[-1] == '=' && ea.arg[0] != NUL)
- {
-! set_expr_line(vim_strsave(ea.arg));
-! ea.arg += STRLEN(ea.arg);
- }
- #endif
-! ea.arg = skipwhite(ea.arg);
- }
-
- /*
---- 2424,2462 ----
- if ( (ea.argt & REGSTR)
- && *ea.arg != NUL
- #ifdef FEAT_USR_CMDS
- /* Do not allow register = for user commands */
- && (!USER_CMDIDX(ea.cmdidx) || *ea.arg != '=')
- #endif
- && !((ea.argt & COUNT) && VIM_ISDIGIT(*ea.arg)))
- {
-! #ifndef FEAT_CLIPBOARD
-! /* check these explicitly for a more specific error message */
-! if (*ea.arg == '*' || *ea.arg == '+')
- {
-! errormsg = (char_u *)_(e_invalidreg);
-! goto doend;
- }
- #endif
-! if (
-! #ifdef FEAT_USR_CMDS
-! valid_yank_reg(*ea.arg, (ea.cmdidx != CMD_put
-! && USER_CMDIDX(ea.cmdidx)))
-! #else
-! valid_yank_reg(*ea.arg, ea.cmdidx != CMD_put)
-! #endif
-! )
-! {
-! ea.regname = *ea.arg++;
-! #ifdef FEAT_EVAL
-! /* for '=' register: accept the rest of the line as an expression */
-! if (ea.arg[-1] == '=' && ea.arg[0] != NUL)
-! {
-! set_expr_line(vim_strsave(ea.arg));
-! ea.arg += STRLEN(ea.arg);
-! }
-! #endif
-! ea.arg = skipwhite(ea.arg);
-! }
- }
-
- /*
-*** ../vim-7.3.170/src/globals.h 2011-02-15 17:39:14.000000000 +0100
---- src/globals.h 2011-05-05 13:47:44.000000000 +0200
-***************
-*** 1561,1566 ****
---- 1561,1569 ----
- (defined(FEAT_INS_EXPAND) && defined(FEAT_COMPL_FUNC))
- EXTERN char_u e_notset[] INIT(= N_("E764: Option '%s' is not set"));
- #endif
-+ #ifndef FEAT_CLIPBOARD
-+ EXTERN char_u e_invalidreg[] INIT(= N_("E850: Invalid register name"));
-+ #endif
-
- #ifdef MACOS_X_UNIX
- EXTERN short disallow_gui INIT(= FALSE);
-*** ../vim-7.3.170/src/version.c 2011-04-28 19:05:01.000000000 +0200
---- src/version.c 2011-05-05 14:24:39.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 171,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-53. To find out what time it is, you send yourself an e-mail and check the
- "Date:" field.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.172
-Fcc: 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.172
-Problem: MS-Windows: rename() might delete the file if the name differs but
- it's actually the same file.
-Solution: Use the file handle to check if it's the same file. (Yukihiro
- Nakadaira)
-Files: src/if_cscope.c, src/fileio.c, src/os_win32.c,
- src/proto/os_win32.pro, src/vim.h
-
-
-*** ../vim-7.3.171/src/if_cscope.c 2011-03-03 15:01:25.000000000 +0100
---- src/if_cscope.c 2011-05-05 16:16:38.000000000 +0200
-***************
-*** 1412,1428 ****
- {
- short i, j;
- #ifndef UNIX
-- HANDLE hFile;
- BY_HANDLE_FILE_INFORMATION bhfi;
-
-- vim_memset(&bhfi, 0, sizeof(bhfi));
- /* On windows 9x GetFileInformationByHandle doesn't work, so skip it */
- if (!mch_windows95())
- {
-! hFile = CreateFile(fname, FILE_READ_ATTRIBUTES, 0, NULL, OPEN_EXISTING,
-! FILE_ATTRIBUTE_NORMAL, NULL);
-! if (hFile == INVALID_HANDLE_VALUE)
- {
- if (p_csverbose)
- {
- char *cant_msg = _("E625: cannot open cscope database: %s");
---- 1412,1426 ----
- {
- short i, j;
- #ifndef UNIX
- BY_HANDLE_FILE_INFORMATION bhfi;
-
- /* On windows 9x GetFileInformationByHandle doesn't work, so skip it */
- if (!mch_windows95())
- {
-! switch (win32_fileinfo(fname, &bhfi))
- {
-+ case FILEINFO_ENC_FAIL: /* enc_to_utf16() failed */
-+ case FILEINFO_READ_FAIL: /* CreateFile() failed */
- if (p_csverbose)
- {
- char *cant_msg = _("E625: cannot open cscope database: %s");
-***************
-*** 1438,1452 ****
- (void)EMSG2(cant_msg, fname);
- }
- return -1;
-! }
-! if (!GetFileInformationByHandle(hFile, &bhfi))
-! {
-! CloseHandle(hFile);
- if (p_csverbose)
- (void)EMSG(_("E626: cannot get cscope database information"));
- return -1;
- }
-- CloseHandle(hFile);
- }
- #endif
-
---- 1436,1447 ----
- (void)EMSG2(cant_msg, fname);
- }
- return -1;
-!
-! case FILEINFO_INFO_FAIL: /* GetFileInformationByHandle() failed */
- if (p_csverbose)
- (void)EMSG(_("E626: cannot get cscope database information"));
- return -1;
- }
- }
- #endif
-
-*** ../vim-7.3.171/src/fileio.c 2011-04-11 21:35:03.000000000 +0200
---- src/fileio.c 2011-05-05 16:22:22.000000000 +0200
-***************
-*** 6555,6560 ****
---- 6555,6575 ----
- use_tmp_file = TRUE;
- }
- #endif
-+ #ifdef WIN3264
-+ {
-+ BY_HANDLE_FILE_INFORMATION info1, info2;
-+
-+ /* It's possible for the source and destination to be the same file.
-+ * In that case go through a temp file name. This makes rename("foo",
-+ * "./foo") a no-op (in a complicated way). */
-+ if (win32_fileinfo(from, &info1) == FILEINFO_OK
-+ && win32_fileinfo(to, &info2) == FILEINFO_OK
-+ && info1.dwVolumeSerialNumber == info2.dwVolumeSerialNumber
-+ && info1.nFileIndexHigh == info2.nFileIndexHigh
-+ && info1.nFileIndexLow == info2.nFileIndexLow)
-+ use_tmp_file = TRUE;
-+ }
-+ #endif
-
- #if defined(UNIX) || defined(CASE_INSENSITIVE_FILENAME)
- if (use_tmp_file)
-*** ../vim-7.3.171/src/os_win32.c 2011-02-01 13:48:47.000000000 +0100
---- src/os_win32.c 2011-05-05 16:24:17.000000000 +0200
-***************
-*** 2645,2669 ****
- int
- mch_is_linked(char_u *fname)
- {
- HANDLE hFile;
-! int res = 0;
-! BY_HANDLE_FILE_INFORMATION inf;
- #ifdef FEAT_MBYTE
- WCHAR *wn = NULL;
-
- if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
- wn = enc_to_utf16(fname, NULL);
- if (wn != NULL)
- {
- hFile = CreateFileW(wn, /* file name */
- GENERIC_READ, /* access mode */
-! 0, /* share mode */
- NULL, /* security descriptor */
- OPEN_EXISTING, /* creation disposition */
-! 0, /* file attributes */
- NULL); /* handle to template file */
- if (hFile == INVALID_HANDLE_VALUE
-! && GetLastError() == ERROR_CALL_NOT_IMPLEMENTED)
- {
- /* Retry with non-wide function (for Windows 98). */
- vim_free(wn);
---- 2645,2688 ----
- int
- mch_is_linked(char_u *fname)
- {
-+ BY_HANDLE_FILE_INFORMATION info;
-+
-+ return win32_fileinfo(fname, &info) == FILEINFO_OK
-+ && info.nNumberOfLinks > 1;
-+ }
-+
-+ /*
-+ * Get the by-handle-file-information for "fname".
-+ * Returns FILEINFO_OK when OK.
-+ * returns FILEINFO_ENC_FAIL when enc_to_utf16() failed.
-+ * Returns FILEINFO_READ_FAIL when CreateFile() failed.
-+ * Returns FILEINFO_INFO_FAIL when GetFileInformationByHandle() failed.
-+ */
-+ int
-+ win32_fileinfo(char_u *fname, BY_HANDLE_FILE_INFORMATION *info)
-+ {
- HANDLE hFile;
-! int res = FILEINFO_READ_FAIL;
- #ifdef FEAT_MBYTE
- WCHAR *wn = NULL;
-
- if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
-+ {
- wn = enc_to_utf16(fname, NULL);
-+ if (wn == NULL)
-+ res = FILEINFO_ENC_FAIL;
-+ }
- if (wn != NULL)
- {
- hFile = CreateFileW(wn, /* file name */
- GENERIC_READ, /* access mode */
-! FILE_SHARE_READ | FILE_SHARE_WRITE, /* share mode */
- NULL, /* security descriptor */
- OPEN_EXISTING, /* creation disposition */
-! FILE_FLAG_BACKUP_SEMANTICS, /* file attributes */
- NULL); /* handle to template file */
- if (hFile == INVALID_HANDLE_VALUE
-! && GetLastError() == ERROR_CALL_NOT_IMPLEMENTED)
- {
- /* Retry with non-wide function (for Windows 98). */
- vim_free(wn);
-***************
-*** 2674,2690 ****
- #endif
- hFile = CreateFile(fname, /* file name */
- GENERIC_READ, /* access mode */
-! 0, /* share mode */
- NULL, /* security descriptor */
- OPEN_EXISTING, /* creation disposition */
-! 0, /* file attributes */
- NULL); /* handle to template file */
-
- if (hFile != INVALID_HANDLE_VALUE)
- {
-! if (GetFileInformationByHandle(hFile, &inf) != 0
-! && inf.nNumberOfLinks > 1)
-! res = 1;
- CloseHandle(hFile);
- }
-
---- 2693,2710 ----
- #endif
- hFile = CreateFile(fname, /* file name */
- GENERIC_READ, /* access mode */
-! FILE_SHARE_READ | FILE_SHARE_WRITE, /* share mode */
- NULL, /* security descriptor */
- OPEN_EXISTING, /* creation disposition */
-! FILE_FLAG_BACKUP_SEMANTICS, /* file attributes */
- NULL); /* handle to template file */
-
- if (hFile != INVALID_HANDLE_VALUE)
- {
-! if (GetFileInformationByHandle(hFile, info) != 0)
-! res = FILEINFO_OK;
-! else
-! res = FILEINFO_INFO_FAIL;
- CloseHandle(hFile);
- }
-
-*** ../vim-7.3.171/src/proto/os_win32.pro 2010-10-23 14:02:48.000000000 +0200
---- src/proto/os_win32.pro 2011-05-05 16:17:42.000000000 +0200
-***************
-*** 21,26 ****
---- 21,27 ----
- void mch_hide __ARGS((char_u *name));
- int mch_isdir __ARGS((char_u *name));
- int mch_is_linked __ARGS((char_u *fname));
-+ int win32_fileinfo __ARGS((char_u *name, BY_HANDLE_FILE_INFORMATION *lpFileInfo));
- int mch_writable __ARGS((char_u *name));
- int mch_can_exe __ARGS((char_u *name));
- int mch_nodetype __ARGS((char_u *name));
-*** ../vim-7.3.171/src/vim.h 2011-04-11 21:35:03.000000000 +0200
---- src/vim.h 2011-05-05 16:16:57.000000000 +0200
-***************
-*** 2217,2220 ****
---- 2217,2226 ----
- #define KEYLEN_PART_MAP -2 /* keylen value for incomplete mapping */
- #define KEYLEN_REMOVED 9999 /* keylen value for removed sequence */
-
-+ /* Return values from win32_fileinfo(). */
-+ #define FILEINFO_OK 0
-+ #define FILEINFO_ENC_FAIL 1 /* enc_to_utf16() failed */
-+ #define FILEINFO_READ_FAIL 2 /* CreateFile() failed */
-+ #define FILEINFO_INFO_FAIL 3 /* GetFileInformationByHandle() failed */
-+
- #endif /* VIM__H */
-*** ../vim-7.3.171/src/version.c 2011-05-05 14:26:37.000000000 +0200
---- src/version.c 2011-05-05 16:39:35.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 172,
- /**/
-
---
-Q: What is a patch 22?
-A: A patch you need to include to make it possible to include patches.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.173
-Fcc: 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.173
-Problem: After using setqflist() to make the quickfix list empty ":cwindow"
- may open the window anyway. Also after ":vimgrep".
-Solution: Correctly check whether the list is empty. (Ingo Karkat)
-Files: src/quickfix.c
-
-
-*** ../vim-7.3.172/src/quickfix.c 2011-04-28 17:27:05.000000000 +0200
---- src/quickfix.c 2011-05-05 16:55:47.000000000 +0200
-***************
-*** 1164,1170 ****
-
- /* When no valid entries are present in the list, qf_ptr points to
- * the first item in the list */
-! if (to_qfl->qf_nonevalid == TRUE)
- to_qfl->qf_ptr = to_qfl->qf_start;
- }
-
---- 1164,1170 ----
-
- /* When no valid entries are present in the list, qf_ptr points to
- * the first item in the list */
-! if (to_qfl->qf_nonevalid)
- to_qfl->qf_ptr = to_qfl->qf_start;
- }
-
-***************
-*** 2243,2248 ****
---- 2243,2249 ----
- * it if we have errors; otherwise, leave it closed.
- */
- if (qi->qf_lists[qi->qf_curlist].qf_nonevalid
-+ || qi->qf_lists[qi->qf_curlist].qf_count == 0
- || qi->qf_curlist >= qi->qf_listcount)
- {
- if (win != NULL)
-***************
-*** 3711,3717 ****
- }
-
- if (qi->qf_lists[qi->qf_curlist].qf_index == 0)
-! /* empty list or no valid entry */
- qi->qf_lists[qi->qf_curlist].qf_nonevalid = TRUE;
- else
- qi->qf_lists[qi->qf_curlist].qf_nonevalid = FALSE;
---- 3712,3718 ----
- }
-
- if (qi->qf_lists[qi->qf_curlist].qf_index == 0)
-! /* no valid entry */
- qi->qf_lists[qi->qf_curlist].qf_nonevalid = TRUE;
- else
- qi->qf_lists[qi->qf_curlist].qf_nonevalid = FALSE;
-*** ../vim-7.3.172/src/version.c 2011-05-05 16:41:19.000000000 +0200
---- src/version.c 2011-05-05 17:11:57.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 173,
- /**/
-
---
-"I can't complain, but sometimes I still do." (Joe Walsh)
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.174
-Fcc: 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.174
-Problem: When Exuberant ctags binary is exctags it's not found.
-Solution: Add configure check for exctags. (Hong Xu)
-Files: src/configure.in, src/auto/configure
-
-
-*** ../vim-7.3.173/src/configure.in 2011-02-09 17:42:53.000000000 +0100
---- src/configure.in 2011-05-05 17:18:21.000000000 +0200
-***************
-*** 2619,2625 ****
- dnl On HP-UX 10.10 termcap or termlib should be used instead of
- dnl curses, because curses is much slower.
- dnl Newer versions of ncurses are preferred over anything, except
-! dnl when tinfo has been split off, it conains all we need.
- dnl Older versions of ncurses have bugs, get a new one!
- dnl Digital Unix (OSF1) should use curses (Ronald Schild).
- dnl On SCO Openserver should prefer termlib (Roger Cornelius).
---- 2619,2625 ----
- dnl On HP-UX 10.10 termcap or termlib should be used instead of
- dnl curses, because curses is much slower.
- dnl Newer versions of ncurses are preferred over anything, except
-! dnl when tinfo has been split off, it contains all we need.
- dnl Older versions of ncurses have bugs, get a new one!
- dnl Digital Unix (OSF1) should use curses (Ronald Schild).
- dnl On SCO Openserver should prefer termlib (Roger Cornelius).
-***************
-*** 3370,3376 ****
- AC_CHECK_LIB(xpg4, _xpg4_setrunelocale, [LIBS="$LIBS -lxpg4"],,)
-
- dnl Check how we can run ctags. Default to "ctags" when nothing works.
-! dnl --version for Exuberant ctags (preferred)
- dnl Add --fields=+S to get function signatures for omni completion.
- dnl -t for typedefs (many ctags have this)
- dnl -s for static functions (Elvis ctags only?)
---- 3370,3376 ----
- AC_CHECK_LIB(xpg4, _xpg4_setrunelocale, [LIBS="$LIBS -lxpg4"],,)
-
- dnl Check how we can run ctags. Default to "ctags" when nothing works.
-! dnl Use --version to detect Exuberant ctags (preferred)
- dnl Add --fields=+S to get function signatures for omni completion.
- dnl -t for typedefs (many ctags have this)
- dnl -s for static functions (Elvis ctags only?)
-***************
-*** 3378,3384 ****
- dnl -i+m to test for older Exuberant ctags
- AC_MSG_CHECKING(how to create tags)
- test -f tags && mv tags tags.save
-! if (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then
- TAGPRG="ctags -I INIT+ --fields=+S"
- else
- TAGPRG="ctags"
---- 3378,3386 ----
- dnl -i+m to test for older Exuberant ctags
- AC_MSG_CHECKING(how to create tags)
- test -f tags && mv tags tags.save
-! if (eval exctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then
-! TAGPRG="exctags -I INIT+ --fields=+S"
-! elif (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then
- TAGPRG="ctags -I INIT+ --fields=+S"
- else
- TAGPRG="ctags"
-*** ../vim-7.3.173/src/auto/configure 2011-02-09 17:42:53.000000000 +0100
---- src/auto/configure 2011-05-05 17:19:26.000000000 +0200
-***************
-*** 12031,12037 ****
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create tags" >&5
- $as_echo_n "checking how to create tags... " >&6; }
- test -f tags && mv tags tags.save
-! if (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&5 2>&1; then
- TAGPRG="ctags -I INIT+ --fields=+S"
- else
- TAGPRG="ctags"
---- 12031,12039 ----
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create tags" >&5
- $as_echo_n "checking how to create tags... " >&6; }
- test -f tags && mv tags tags.save
-! if (eval exctags --version /dev/null | grep Exuberant) < /dev/null 1>&5 2>&1; then
-! TAGPRG="exctags -I INIT+ --fields=+S"
-! elif (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&5 2>&1; then
- TAGPRG="ctags -I INIT+ --fields=+S"
- else
- TAGPRG="ctags"
-*** ../vim-7.3.173/src/version.c 2011-05-05 17:14:07.000000000 +0200
---- src/version.c 2011-05-05 17:19:37.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 174,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-54. You start tilting your head sideways to smile. :-)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.175
-Fcc: 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.175
-Problem: When 'colorcolumn' is set locally to a window, ":new" opens a
- window with the same highlighting but 'colorcolumn' is empty.
- (Tyru)
-Solution: Call check_colorcolumn() after clearing and copying options.
- (Christian Brabandt)
-Files: src/buffer.c
-
-
-*** ../vim-7.3.174/src/buffer.c 2011-04-11 16:56:29.000000000 +0200
---- src/buffer.c 2011-05-05 17:28:24.000000000 +0200
-***************
-*** 2527,2532 ****
---- 2527,2535 ----
- if (p_fdls >= 0)
- curwin->w_p_fdl = p_fdls;
- #endif
-+ #ifdef FEAT_SYN_HL
-+ check_colorcolumn(curwin);
-+ #endif
- }
-
- /*
-*** ../vim-7.3.174/src/version.c 2011-05-05 17:23:58.000000000 +0200
---- src/version.c 2011-05-05 17:30:32.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 175,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-55. You ask your doctor to implant a gig in your brain.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.176
-Fcc: 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.176
-Problem: Ruby linking doesn't work properly on Mac OS X.
-Solution: Fix the configure check for Ruby. (Bjorn Winckler)
-Files: src/configure.in, src/auto/configure
-
-
-*** ../vim-7.3.175/src/configure.in 2011-05-05 17:23:58.000000000 +0200
---- src/configure.in 2011-05-05 18:03:38.000000000 +0200
-***************
-*** 1387,1396 ****
- 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),
- RUBY_CMD="ruby"; AC_MSG_RESULT(defaulting to $RUBY_CMD))
-- AC_SUBST(vi_cv_path_ruby)
- AC_PATH_PROG(vi_cv_path_ruby, $RUBY_CMD)
- if test "X$vi_cv_path_ruby" != "X"; then
- AC_MSG_CHECKING(Ruby version)
---- 1387,1396 ----
- AC_MSG_RESULT($enable_rubyinterp)
- if test "$enable_rubyinterp" = "yes" -o "$enable_rubyinterp" = "dynamic"; then
- AC_MSG_CHECKING(--with-ruby-command argument)
-+ AC_SUBST(vi_cv_path_ruby)
- AC_ARG_WITH(ruby-command, [ --with-ruby-command=RUBY name of the Ruby command (default: ruby)],
-! RUBY_CMD="$withval"; vi_cv_path_ruby="$withval"; AC_MSG_RESULT($RUBY_CMD),
- RUBY_CMD="ruby"; AC_MSG_RESULT(defaulting to $RUBY_CMD))
- AC_PATH_PROG(vi_cv_path_ruby, $RUBY_CMD)
- if test "X$vi_cv_path_ruby" != "X"; then
- AC_MSG_CHECKING(Ruby version)
-***************
-*** 1412,1429 ****
- RUBY_LIBS="$rubylibs"
- fi
- librubyarg=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["LIBRUBYARG"]])'`
-! if test -f "$rubyhdrdir/$librubyarg"; then
-! librubyarg="$rubyhdrdir/$librubyarg"
-! else
-! rubylibdir=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["libdir"]])'`
-! if test -f "$rubylibdir/$librubyarg"; then
-! librubyarg="$rubylibdir/$librubyarg"
-! elif test "$librubyarg" = "libruby.a"; then
-! dnl required on Mac OS 10.3 where libruby.a doesn't exist
-! librubyarg="-lruby"
-! else
-! librubyarg=`$vi_cv_path_ruby -r rbconfig -e "print '$librubyarg'.gsub(/-L\./, %'-L#{Config.expand(Config::CONFIG[\"libdir\"])}')"`
-! fi
- fi
-
- if test "X$librubyarg" != "X"; then
---- 1412,1426 ----
- RUBY_LIBS="$rubylibs"
- fi
- librubyarg=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["LIBRUBYARG"]])'`
-! librubya=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["LIBRUBY_A"]])'`
-! rubylibdir=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["libdir"]])'`
-! if test -f "$rubylibdir/$librubya"; then
-! librubyarg="$librubyarg"
-! RUBY_LIBS="$RUBY_LIBS -L$rubylibdir"
-! elif test "$librubyarg" = "libruby.a"; then
-! dnl required on Mac OS 10.3 where libruby.a doesn't exist
-! librubyarg="-lruby"
-! RUBY_LIBS="$RUBY_LIBS -L$rubylibdir"
- fi
-
- if test "X$librubyarg" != "X"; then
-*** ../vim-7.3.175/src/auto/configure 2011-05-05 17:23:58.000000000 +0200
---- src/auto/configure 2011-05-05 18:06:47.000000000 +0200
-***************
-*** 6218,6233 ****
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ruby-command argument" >&5
- $as_echo_n "checking --with-ruby-command argument... " >&6; }
-
- # Check whether --with-ruby-command was given.
- if test "${with_ruby_command+set}" = set; then :
-! withval=$with_ruby_command; RUBY_CMD="$withval"; { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RUBY_CMD" >&5
- $as_echo "$RUBY_CMD" >&6; }
- else
- RUBY_CMD="ruby"; { $as_echo "$as_me:${as_lineno-$LINENO}: result: defaulting to $RUBY_CMD" >&5
- $as_echo "defaulting to $RUBY_CMD" >&6; }
- fi
-
--
- # Extract the first word of "$RUBY_CMD", so it can be a program name with args.
- set dummy $RUBY_CMD; ac_word=$2
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
---- 6218,6233 ----
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ruby-command argument" >&5
- $as_echo_n "checking --with-ruby-command argument... " >&6; }
-
-+
- # Check whether --with-ruby-command was given.
- if test "${with_ruby_command+set}" = set; then :
-! withval=$with_ruby_command; RUBY_CMD="$withval"; vi_cv_path_ruby="$withval"; { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RUBY_CMD" >&5
- $as_echo "$RUBY_CMD" >&6; }
- else
- RUBY_CMD="ruby"; { $as_echo "$as_me:${as_lineno-$LINENO}: result: defaulting to $RUBY_CMD" >&5
- $as_echo "defaulting to $RUBY_CMD" >&6; }
- fi
-
- # Extract the first word of "$RUBY_CMD", so it can be a program name with args.
- set dummy $RUBY_CMD; ac_word=$2
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-***************
-*** 6292,6308 ****
- RUBY_LIBS="$rubylibs"
- fi
- librubyarg=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG["LIBRUBYARG"])'`
-! if test -f "$rubyhdrdir/$librubyarg"; then
-! librubyarg="$rubyhdrdir/$librubyarg"
-! else
-! rubylibdir=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG["libdir"])'`
-! if test -f "$rubylibdir/$librubyarg"; then
-! librubyarg="$rubylibdir/$librubyarg"
-! elif test "$librubyarg" = "libruby.a"; then
-! librubyarg="-lruby"
-! else
-! librubyarg=`$vi_cv_path_ruby -r rbconfig -e "print '$librubyarg'.gsub(/-L\./, %'-L#{Config.expand(Config::CONFIG[\"libdir\"])}')"`
-! fi
- fi
-
- if test "X$librubyarg" != "X"; then
---- 6292,6305 ----
- RUBY_LIBS="$rubylibs"
- fi
- librubyarg=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG["LIBRUBYARG"])'`
-! librubya=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG["LIBRUBY_A"])'`
-! rubylibdir=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG["libdir"])'`
-! if test -f "$rubylibdir/$librubya"; then
-! librubyarg="$librubyarg"
-! RUBY_LIBS="$RUBY_LIBS -L$rubylibdir"
-! elif test "$librubyarg" = "libruby.a"; then
-! librubyarg="-lruby"
-! RUBY_LIBS="$RUBY_LIBS -L$rubylibdir"
- fi
-
- if test "X$librubyarg" != "X"; then
-*** ../vim-7.3.175/src/version.c 2011-05-05 17:32:40.000000000 +0200
---- src/version.c 2011-05-05 18:08:52.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 176,
- /**/
-
---
-"I simultaneously try to keep my head in the clouds and my feet on the
-ground. Sometimes it's a stretch, though." -- Larry Wall
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.177
-Fcc: 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.177
-Problem: MS-Windows: mkdir() doesn't work properly when 'encoding' is
- "utf-8".
-Solution: Convert to utf-16. (Yukihiro Nakadaira)
-Files: src/os_win32.c, src/os_win32.h, src/proto/os_win32.pro
-
-
-*** ../vim-7.3.176/src/os_win32.c 2011-05-05 16:41:19.000000000 +0200
---- src/os_win32.c 2011-05-05 18:24:36.000000000 +0200
-***************
-*** 2640,2645 ****
---- 2640,2669 ----
- }
-
- /*
-+ * Create directory "name".
-+ * Return 0 on success, -1 on error.
-+ */
-+ int
-+ mch_mkdir(char_u *name)
-+ {
-+ #ifdef FEAT_MBYTE
-+ if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
-+ {
-+ WCHAR *p;
-+ int retval;
-+
-+ p = enc_to_utf16(name, NULL);
-+ if (p == NULL)
-+ return -1;
-+ retval = _wmkdir(p);
-+ vim_free(p);
-+ return retval;
-+ }
-+ #endif
-+ return _mkdir(name);
-+ }
-+
-+ /*
- * Return TRUE if file "fname" has more than one link.
- */
- int
-*** ../vim-7.3.176/src/os_win32.h 2010-08-15 21:57:30.000000000 +0200
---- src/os_win32.h 2011-05-05 18:25:44.000000000 +0200
-***************
-*** 191,195 ****
- #ifdef __BORLANDC__
- # define vim_mkdir(x, y) mkdir(x)
- #else
-! # define vim_mkdir(x, y) _mkdir(x)
- #endif
---- 191,195 ----
- #ifdef __BORLANDC__
- # define vim_mkdir(x, y) mkdir(x)
- #else
-! # define vim_mkdir(x, y) mch_mkdir(x)
- #endif
-*** ../vim-7.3.176/src/proto/os_win32.pro 2011-05-05 16:41:19.000000000 +0200
---- src/proto/os_win32.pro 2011-05-05 18:26:20.000000000 +0200
-***************
-*** 20,25 ****
---- 20,26 ----
- int mch_setperm __ARGS((char_u *name, long perm));
- void mch_hide __ARGS((char_u *name));
- int mch_isdir __ARGS((char_u *name));
-+ int mch_mkdir __ARGS((char_u *name));
- int mch_is_linked __ARGS((char_u *fname));
- int win32_fileinfo __ARGS((char_u *name, BY_HANDLE_FILE_INFORMATION *lpFileInfo));
- int mch_writable __ARGS((char_u *name));
-*** ../vim-7.3.176/src/version.c 2011-05-05 18:10:11.000000000 +0200
---- src/version.c 2011-05-05 18:27:56.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 177,
- /**/
-
---
-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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.178
-Fcc: 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.178
-Problem: C-indent doesn't handle code right after { correctly.
-Solution: Fix detecting unterminated line. (Lech Lorens)
-Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
-
-
-*** ../vim-7.3.177/src/misc1.c 2011-04-28 17:48:39.000000000 +0200
---- src/misc1.c 2011-05-10 11:35:09.000000000 +0200
-***************
-*** 4983,4989 ****
- }
-
- /*
-! * Return TRUE if there there is no code at *s. White space and comments are
- * not considered code.
- */
- static int
---- 4983,4989 ----
- }
-
- /*
-! * Return TRUE if there is no code at *s. White space and comments are
- * not considered code.
- */
- static int
-***************
-*** 5458,5465 ****
- }
-
- /*
-! * Recognize a line that starts with '{' or '}', or ends with ';', '{' or '}'.
- * Don't consider "} else" a terminated line.
- * Return the character terminating the line (ending char's have precedence if
- * both apply in order to determine initializations).
- */
---- 5458,5468 ----
- }
-
- /*
-! * Recognize a line that starts with '{' or '}', or ends with ';', ',', '{' or
-! * '}'.
- * Don't consider "} else" a terminated line.
-+ * Don't consider a line where there are unmatched opening braces before '}',
-+ * ';' or ',' a terminated line.
- * Return the character terminating the line (ending char's have precedence if
- * both apply in order to determine initializations).
- */
-***************
-*** 5470,5475 ****
---- 5473,5479 ----
- int incl_comma; /* recognize a trailing comma */
- {
- char_u found_start = 0;
-+ unsigned n_open = 0;
-
- s = cin_skipcomment(s);
-
-***************
-*** 5480,5489 ****
- {
- /* skip over comments, "" strings and 'c'haracters */
- s = skip_string(cin_skipcomment(s));
-! if ((*s == ';' || (incl_open && *s == '{') || *s == '}'
-! || (incl_comma && *s == ','))
- && cin_nocode(s + 1))
- return *s;
-
- if (*s)
- s++;
---- 5484,5502 ----
- {
- /* skip over comments, "" strings and 'c'haracters */
- s = skip_string(cin_skipcomment(s));
-! if (*s == '}' && n_open > 0)
-! --n_open;
-! if (n_open == 0
-! && (*s == ';' || *s == '}' || (incl_comma && *s == ','))
- && cin_nocode(s + 1))
- return *s;
-+ else if (*s == '{')
-+ {
-+ if (incl_open && cin_nocode(s + 1))
-+ return *s;
-+ else
-+ ++n_open;
-+ }
-
- if (*s)
- s++;
-*** ../vim-7.3.177/src/testdir/test3.in 2011-04-28 13:01:59.000000000 +0200
---- src/testdir/test3.in 2011-05-10 11:34:13.000000000 +0200
-***************
-*** 1344,1349 ****
---- 1344,1365 ----
- }
-
- STARTTEST
-+ :set cino&
-+ 2kdd=][
-+ ENDTEST
-+
-+ void func(void)
-+ {
-+ if(x==y)
-+ if(y==z)
-+ foo=1;
-+ else { bar=1;
-+ baz=2;
-+ }
-+ printf("Foo!\n");
-+ }
-+
-+ STARTTEST
- :g/^STARTTEST/.,/^ENDTEST/d
- :1;/start of AUTO/,$wq! test.out
- ENDTEST
-*** ../vim-7.3.177/src/testdir/test3.ok 2011-04-28 13:01:59.000000000 +0200
---- src/testdir/test3.ok 2011-05-10 11:34:13.000000000 +0200
-***************
-*** 1204,1206 ****
---- 1204,1218 ----
- {
- }
-
-+
-+ void func(void)
-+ {
-+ if(x==y)
-+ if(y==z)
-+ foo=1;
-+ else { bar=1;
-+ baz=2;
-+ }
-+ printf("Foo!\n");
-+ }
-+
-*** ../vim-7.3.177/src/version.c 2011-05-05 18:31:54.000000000 +0200
---- src/version.c 2011-05-10 11:37:43.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 178,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-69. Yahoo welcomes you with your own start page
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.179
-Fcc: 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.179
-Problem: C-indent doesn't handle colon in string correctly.
-Solution: Skip the string. (Lech Lorens)
-Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
-
-
-*** ../vim-7.3.178/src/misc1.c 2011-05-10 11:39:13.000000000 +0200
---- src/misc1.c 2011-05-10 11:50:14.000000000 +0200
-***************
-*** 5801,5807 ****
- continue;
- }
-
-! if (s[0] == ':')
- {
- if (s[1] == ':')
- {
---- 5801,5809 ----
- continue;
- }
-
-! if (s[0] == '"')
-! s = skip_string(s) + 1;
-! else if (s[0] == ':')
- {
- if (s[1] == ':')
- {
-*** ../vim-7.3.178/src/testdir/test3.in 2011-05-10 11:39:13.000000000 +0200
---- src/testdir/test3.in 2011-05-10 11:53:02.000000000 +0200
-***************
-*** 1360,1365 ****
---- 1360,1378 ----
- }
-
- STARTTEST
-+ :set cino&
-+ 2kdd=][
-+ ENDTEST
-+
-+ void func(void)
-+ {
-+ cout << "a"
-+ << "b"
-+ << ") :"
-+ << "c";
-+ }
-+
-+ STARTTEST
- :g/^STARTTEST/.,/^ENDTEST/d
- :1;/start of AUTO/,$wq! test.out
- ENDTEST
-*** ../vim-7.3.178/src/testdir/test3.ok 2011-05-10 11:39:13.000000000 +0200
---- src/testdir/test3.ok 2011-05-10 11:50:14.000000000 +0200
-***************
-*** 1216,1218 ****
---- 1216,1227 ----
- printf("Foo!\n");
- }
-
-+
-+ void func(void)
-+ {
-+ cout << "a"
-+ << "b"
-+ << ") :"
-+ << "c";
-+ }
-+
-*** ../vim-7.3.178/src/version.c 2011-05-10 11:39:13.000000000 +0200
---- src/version.c 2011-05-10 11:53:36.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 179,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-71. You wonder how people walk
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.180
-Fcc: 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.180
-Problem: When both a middle part of 'comments' matches and an end part, the
- middle part was used errornously.
-Solution: After finding the middle part match continue looking for a better
- end part match. (partly by Lech Lorens)
-Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
-
-
-*** ../vim-7.3.179/src/misc1.c 2011-05-10 11:56:26.000000000 +0200
---- src/misc1.c 2011-05-10 13:24:38.000000000 +0200
-***************
-*** 1561,1566 ****
---- 1561,1569 ----
- char_u part_buf[COM_MAX_LEN]; /* buffer for one option part */
- char_u *string; /* pointer to comment string */
- char_u *list;
-+ int middle_match_len = 0;
-+ char_u *prev_list;
-+ char_u *saved_flags;
-
- i = 0;
- while (vim_iswhite(line[i])) /* leading white space is ignored */
-***************
-*** 1569,1575 ****
- /*
- * Repeat to match several nested comment strings.
- */
-! while (line[i])
- {
- /*
- * scan through the 'comments' option for a match
---- 1572,1578 ----
- /*
- * Repeat to match several nested comment strings.
- */
-! while (line[i] != NUL)
- {
- /*
- * scan through the 'comments' option for a match
-***************
-*** 1577,1658 ****
- found_one = FALSE;
- for (list = curbuf->b_p_com; *list; )
- {
-! /*
-! * Get one option part into part_buf[]. Advance list to next one.
-! * put string at start of string.
-! */
-! if (!got_com && flags != NULL) /* remember where flags started */
-! *flags = list;
- (void)copy_option_part(&list, part_buf, COM_MAX_LEN, ",");
- string = vim_strchr(part_buf, ':');
- if (string == NULL) /* missing ':', ignore this part */
- continue;
- *string++ = NUL; /* isolate flags from string */
-
-! /*
-! * When already found a nested comment, only accept further
-! * nested comments.
-! */
- if (got_com && vim_strchr(part_buf, COM_NEST) == NULL)
- continue;
-
-! /* When 'O' flag used don't use for "O" command */
- if (backward && vim_strchr(part_buf, COM_NOBACK) != NULL)
- continue;
-
-! /*
-! * Line contents and string must match.
- * When string starts with white space, must have some white space
- * (but the amount does not need to match, there might be a mix of
-! * TABs and spaces).
-! */
- if (vim_iswhite(string[0]))
- {
- if (i == 0 || !vim_iswhite(line[i - 1]))
-! continue;
- while (vim_iswhite(string[0]))
- ++string;
- }
- for (j = 0; string[j] != NUL && string[j] == line[i + j]; ++j)
- ;
- if (string[j] != NUL)
-! continue;
-
-! /*
-! * When 'b' flag used, there must be white space or an
-! * end-of-line after the string in the line.
-! */
- if (vim_strchr(part_buf, COM_BLANK) != NULL
- && !vim_iswhite(line[i + j]) && line[i + j] != NUL)
- continue;
-
-! /*
-! * We have found a match, stop searching.
-! */
-! i += j;
-! got_com = TRUE;
- found_one = TRUE;
- break;
- }
-
-! /*
-! * No match found, stop scanning.
-! */
- if (!found_one)
- break;
-
-! /*
-! * Include any trailing white space.
-! */
- while (vim_iswhite(line[i]))
- ++i;
-
-! /*
-! * If this comment doesn't nest, stop here.
-! */
- if (vim_strchr(part_buf, COM_NEST) == NULL)
- break;
- }
- return (got_com ? i : 0);
- }
- #endif
---- 1580,1683 ----
- found_one = FALSE;
- for (list = curbuf->b_p_com; *list; )
- {
-! /* Get one option part into part_buf[]. Advance "list" to next
-! * one. Put "string" at start of string. */
-! if (!got_com && flags != NULL)
-! *flags = list; /* remember where flags started */
-! prev_list = list;
- (void)copy_option_part(&list, part_buf, COM_MAX_LEN, ",");
- string = vim_strchr(part_buf, ':');
- if (string == NULL) /* missing ':', ignore this part */
- continue;
- *string++ = NUL; /* isolate flags from string */
-
-! /* If we found a middle match previously, use that match when this
-! * is not a middle or end. */
-! if (middle_match_len != 0
-! && vim_strchr(part_buf, COM_MIDDLE) == NULL
-! && vim_strchr(part_buf, COM_END) == NULL)
-! break;
-!
-! /* When we already found a nested comment, only accept further
-! * nested comments. */
- if (got_com && vim_strchr(part_buf, COM_NEST) == NULL)
- continue;
-
-! /* When 'O' flag present and using "O" command skip this one. */
- if (backward && vim_strchr(part_buf, COM_NOBACK) != NULL)
- continue;
-
-! /* Line contents and string must match.
- * When string starts with white space, must have some white space
- * (but the amount does not need to match, there might be a mix of
-! * TABs and spaces). */
- if (vim_iswhite(string[0]))
- {
- if (i == 0 || !vim_iswhite(line[i - 1]))
-! continue; /* missing shite space */
- while (vim_iswhite(string[0]))
- ++string;
- }
- for (j = 0; string[j] != NUL && string[j] == line[i + j]; ++j)
- ;
- if (string[j] != NUL)
-! continue; /* string doesn't match */
-
-! /* When 'b' flag used, there must be white space or an
-! * end-of-line after the string in the line. */
- if (vim_strchr(part_buf, COM_BLANK) != NULL
- && !vim_iswhite(line[i + j]) && line[i + j] != NUL)
- continue;
-
-! /* We have found a match, stop searching unless this is a middle
-! * comment. The middle comment can be a substring of the end
-! * comment in which case it's better to return the length of the
-! * end comment and its flags. Thus we keep searching with middle
-! * and end matches and use an end match if it matches better. */
-! if (vim_strchr(part_buf, COM_MIDDLE) != NULL)
-! {
-! if (middle_match_len == 0)
-! {
-! middle_match_len = j;
-! saved_flags = prev_list;
-! }
-! continue;
-! }
-! if (middle_match_len != 0 && j > middle_match_len)
-! /* Use this match instead of the middle match, since it's a
-! * longer thus better match. */
-! middle_match_len = 0;
-!
-! if (middle_match_len == 0)
-! i += j;
- found_one = TRUE;
- break;
- }
-
-! if (middle_match_len != 0)
-! {
-! /* Use the previously found middle match after failing to find a
-! * match with an end. */
-! if (!got_com && flags != NULL)
-! *flags = saved_flags;
-! i += middle_match_len;
-! found_one = TRUE;
-! }
-!
-! /* No match found, stop scanning. */
- if (!found_one)
- break;
-
-! /* Include any trailing white space. */
- while (vim_iswhite(line[i]))
- ++i;
-
-! /* If this comment doesn't nest, stop here. */
-! got_com = TRUE;
- if (vim_strchr(part_buf, COM_NEST) == NULL)
- break;
- }
-+
- return (got_com ? i : 0);
- }
- #endif
-*** ../vim-7.3.179/src/testdir/test3.in 2011-05-10 11:56:26.000000000 +0200
---- src/testdir/test3.in 2011-05-10 12:05:50.000000000 +0200
-***************
-*** 1373,1378 ****
---- 1373,1390 ----
- }
-
- STARTTEST
-+ :set com=s1:/*,m:*,ex:*/
-+ ]]3jofoo();
-+ ENDTEST
-+
-+ void func(void)
-+ {
-+ /*
-+ * This is a comment.
-+ */
-+ }
-+
-+ STARTTEST
- :g/^STARTTEST/.,/^ENDTEST/d
- :1;/start of AUTO/,$wq! test.out
- ENDTEST
-*** ../vim-7.3.179/src/testdir/test3.ok 2011-05-10 11:56:26.000000000 +0200
---- src/testdir/test3.ok 2011-05-10 12:05:50.000000000 +0200
-***************
-*** 1225,1227 ****
---- 1225,1236 ----
- << "c";
- }
-
-+
-+ void func(void)
-+ {
-+ /*
-+ * This is a comment.
-+ */
-+ foo();
-+ }
-+
-*** ../vim-7.3.179/src/version.c 2011-05-10 11:56:26.000000000 +0200
---- src/version.c 2011-05-10 13:37:28.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 180,
- /**/
-
---
-"Thou shalt not follow the Null Pointer, for at its end Chaos and
-Madness lie."
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.181
-Fcc: 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.181
-Problem: When repeating the insert of CTRL-V or a digraph the display may
- not be updated correctly.
-Solution: Only call edit_unputchar() after edit_putchar(). (Lech Lorens)
-Files: src/edit.c
-
-
-*** ../vim-7.3.180/src/edit.c 2010-11-10 17:11:29.000000000 +0100
---- src/edit.c 2011-05-10 14:16:41.000000000 +0200
-***************
-*** 1553,1564 ****
---- 1553,1568 ----
- ins_ctrl_v()
- {
- int c;
-+ int did_putchar = FALSE;
-
- /* may need to redraw when no more chars available now */
- ins_redraw(FALSE);
-
- if (redrawing() && !char_avail())
-+ {
- edit_putchar('^', TRUE);
-+ did_putchar = TRUE;
-+ }
- AppendToRedobuff((char_u *)CTRL_V_STR); /* CTRL-V */
-
- #ifdef FEAT_CMDL_INFO
-***************
-*** 1566,1573 ****
- #endif
-
- c = get_literal();
-! edit_unputchar(); /* when line fits in 'columns' the '^' is at the start
-! of the next line and will not be redrawn */
- #ifdef FEAT_CMDL_INFO
- clear_showcmd();
- #endif
---- 1570,1579 ----
- #endif
-
- c = get_literal();
-! if (did_putchar)
-! /* when the line fits in 'columns' the '^' is at the start of the next
-! * line and will not removed by the redraw */
-! edit_unputchar();
- #ifdef FEAT_CMDL_INFO
- clear_showcmd();
- #endif
-***************
-*** 9637,9642 ****
---- 9643,9649 ----
- {
- int c;
- int cc;
-+ int did_putchar = FALSE;
-
- pc_status = PC_STATUS_UNSET;
- if (redrawing() && !char_avail())
-***************
-*** 9645,9650 ****
---- 9652,9658 ----
- ins_redraw(FALSE);
-
- edit_putchar('?', TRUE);
-+ did_putchar = TRUE;
- #ifdef FEAT_CMDL_INFO
- add_to_showcmd_c(Ctrl_K);
- #endif
-***************
-*** 9661,9668 ****
- c = plain_vgetc();
- --no_mapping;
- --allow_keys;
-! edit_unputchar(); /* when line fits in 'columns' the '?' is at the start
-! of the next line and will not be redrawn */
-
- if (IS_SPECIAL(c) || mod_mask) /* special key */
- {
---- 9669,9678 ----
- c = plain_vgetc();
- --no_mapping;
- --allow_keys;
-! if (did_putchar)
-! /* when the line fits in 'columns' the '?' is at the start of the next
-! * line and will not be removed by the redraw */
-! edit_unputchar();
-
- if (IS_SPECIAL(c) || mod_mask) /* special key */
- {
-***************
-*** 9674,9679 ****
---- 9684,9690 ----
- }
- if (c != ESC)
- {
-+ did_putchar = FALSE;
- if (redrawing() && !char_avail())
- {
- /* may need to redraw when no more chars available now */
-***************
-*** 9681,9691 ****
-
- if (char2cells(c) == 1)
- {
-- /* first remove the '?', otherwise it's restored when typing
-- * an ESC next */
-- edit_unputchar();
- ins_redraw(FALSE);
- edit_putchar(c, TRUE);
- }
- #ifdef FEAT_CMDL_INFO
- add_to_showcmd_c(c);
---- 9692,9700 ----
-
- if (char2cells(c) == 1)
- {
- ins_redraw(FALSE);
- edit_putchar(c, TRUE);
-+ did_putchar = TRUE;
- }
- #ifdef FEAT_CMDL_INFO
- add_to_showcmd_c(c);
-***************
-*** 9696,9703 ****
- cc = plain_vgetc();
- --no_mapping;
- --allow_keys;
-! edit_unputchar(); /* when line fits in 'columns' the '?' is at the
-! start of the next line and will not be redrawn */
- if (cc != ESC)
- {
- AppendToRedobuff((char_u *)CTRL_V_STR);
---- 9705,9714 ----
- cc = plain_vgetc();
- --no_mapping;
- --allow_keys;
-! if (did_putchar)
-! /* when the line fits in 'columns' the '?' is at the start of the
-! * next line and will not be removed by a redraw */
-! edit_unputchar();
- if (cc != ESC)
- {
- AppendToRedobuff((char_u *)CTRL_V_STR);
-*** ../vim-7.3.180/src/version.c 2011-05-10 13:38:23.000000000 +0200
---- src/version.c 2011-05-10 14:20:40.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 181,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-74. Your most erotic dreams are about cybersex
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.182
-Fcc: 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.182 (after 7.3.180)
-Problem: Compiler warning for uninitialized variable.
-Solution: Add dummy initializer.
-Files: src/misc1.c
-
-
-*** ../vim-7.3.181/src/misc1.c 2011-05-10 13:38:23.000000000 +0200
---- src/misc1.c 2011-05-10 14:37:39.000000000 +0200
-***************
-*** 1563,1569 ****
- char_u *list;
- int middle_match_len = 0;
- char_u *prev_list;
-! char_u *saved_flags;
-
- i = 0;
- while (vim_iswhite(line[i])) /* leading white space is ignored */
---- 1563,1569 ----
- char_u *list;
- int middle_match_len = 0;
- char_u *prev_list;
-! char_u *saved_flags = NULL;
-
- i = 0;
- while (vim_iswhite(line[i])) /* leading white space is ignored */
-*** ../vim-7.3.181/src/version.c 2011-05-10 14:22:10.000000000 +0200
---- src/version.c 2011-05-10 14:38:39.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 182,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-75. You start wondering whether you could actually upgrade your brain
- with a Pentium Pro microprocessor 80. The upgrade works just fine.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.183
-Fcc: 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.183 (after 7.3.174)
-Problem: When Exuberant ctags binary is exuberant-ctags it's not found.
-Solution: Add configure check for exuberant-ctags.
-Files: src/configure.in, src/auto/configure
-
-
-*** ../vim-7.3.182/src/configure.in 2011-05-05 18:10:11.000000000 +0200
---- src/configure.in 2011-05-10 15:39:38.000000000 +0200
-***************
-*** 3375,3384 ****
- dnl -i+m to test for older Exuberant ctags
- AC_MSG_CHECKING(how to create tags)
- test -f tags && mv tags tags.save
-! if (eval exctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then
-! TAGPRG="exctags -I INIT+ --fields=+S"
-! elif (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then
- TAGPRG="ctags -I INIT+ --fields=+S"
- else
- TAGPRG="ctags"
- (eval etags /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="etags"
---- 3375,3386 ----
- dnl -i+m to test for older Exuberant ctags
- AC_MSG_CHECKING(how to create tags)
- test -f tags && mv tags tags.save
-! if (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then
- TAGPRG="ctags -I INIT+ --fields=+S"
-+ elif (eval exctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then
-+ TAGPRG="exctags -I INIT+ --fields=+S"
-+ elif (eval exuberant-ctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then
-+ TAGPRG="exuberant-ctags -I INIT+ --fields=+S"
- else
- TAGPRG="ctags"
- (eval etags /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="etags"
-*** ../vim-7.3.182/src/auto/configure 2011-05-05 18:10:11.000000000 +0200
---- src/auto/configure 2011-05-10 15:39:41.000000000 +0200
-***************
-*** 12028,12037 ****
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create tags" >&5
- $as_echo_n "checking how to create tags... " >&6; }
- test -f tags && mv tags tags.save
-! if (eval exctags --version /dev/null | grep Exuberant) < /dev/null 1>&5 2>&1; then
-! TAGPRG="exctags -I INIT+ --fields=+S"
-! elif (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&5 2>&1; then
- TAGPRG="ctags -I INIT+ --fields=+S"
- else
- TAGPRG="ctags"
- (eval etags /dev/null) < /dev/null 1>&5 2>&1 && TAGPRG="etags"
---- 12028,12039 ----
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create tags" >&5
- $as_echo_n "checking how to create tags... " >&6; }
- test -f tags && mv tags tags.save
-! if (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&5 2>&1; then
- TAGPRG="ctags -I INIT+ --fields=+S"
-+ elif (eval exctags --version /dev/null | grep Exuberant) < /dev/null 1>&5 2>&1; then
-+ TAGPRG="exctags -I INIT+ --fields=+S"
-+ elif (eval exuberant-ctags --version /dev/null | grep Exuberant) < /dev/null 1>&5 2>&1; then
-+ TAGPRG="exuberant-ctags -I INIT+ --fields=+S"
- else
- TAGPRG="ctags"
- (eval etags /dev/null) < /dev/null 1>&5 2>&1 && TAGPRG="etags"
-*** ../vim-7.3.182/src/version.c 2011-05-10 14:44:07.000000000 +0200
---- src/version.c 2011-05-10 15:40:48.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 183,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-78. You find yourself dialing IP numbers on the phone.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.184
-Fcc: 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.184
-Problem: Static code analysis errors in riscOS.
-Solution: Make buffer size bigger. (Dominique Pelle)
-Files: src/gui_riscos.c
-
-
-*** ../vim-7.3.183/src/gui_riscos.c 2010-08-15 21:57:28.000000000 +0200
---- src/gui_riscos.c 2011-05-10 15:49:56.000000000 +0200
-***************
-*** 1756,1762 ****
-
- if (button & 0x444)
- {
-! int front_block[10];
- /* Dragging with Select - bring window to front first */
- front_block[0] = gui.window_handle;
- swi(Wimp_GetWindowState, 0, front_block);
---- 1756,1762 ----
-
- if (button & 0x444)
- {
-! int front_block[64];
- /* Dragging with Select - bring window to front first */
- front_block[0] = gui.window_handle;
- swi(Wimp_GetWindowState, 0, front_block);
-***************
-*** 1874,1880 ****
-
- if (ro_dragging == DRAG_RESIZE_WINDOW)
- {
-! /* Resizeing the main window. */
- block[2] = y;
- block[3] = x;
- ro_open_main(block);
---- 1874,1880 ----
-
- if (ro_dragging == DRAG_RESIZE_WINDOW)
- {
-! /* Resizing the main window. */
- block[2] = y;
- block[3] = x;
- ro_open_main(block);
-***************
-*** 2651,2657 ****
- long_u length;
-
- block[0] = 48; /* Size of block. */
-! block[3] = 0; /* Orinial message. */
- block[4] = 0x10; /* Data request. */
- block[5] = gui.window_handle;
- block[6] = RO_LOAD_CLIPBOARD; /* Internal handle. */
---- 2651,2657 ----
- long_u length;
-
- block[0] = 48; /* Size of block. */
-! block[3] = 0; /* Original message. */
- block[4] = 0x10; /* Data request. */
- block[5] = gui.window_handle;
- block[6] = RO_LOAD_CLIPBOARD; /* Internal handle. */
-*** ../vim-7.3.183/src/version.c 2011-05-10 15:41:59.000000000 +0200
---- src/version.c 2011-05-10 15:51:29.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 184,
- /**/
-
---
-If bankers can count, how come they have eight windows and
-only four tellers?
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.185
-Fcc: 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.185
-Problem: ":windo g/pattern/q" closes windows and reports "N more lines".
- (Tim Chase)
-Solution: Remember what buffer ":global" started in. (Jean-Rene David)
-Files: src/ex_cmds.c
-
-
-*** ../vim-7.3.184/src/ex_cmds.c 2011-04-11 21:35:03.000000000 +0200
---- src/ex_cmds.c 2011-05-10 15:58:48.000000000 +0200
-***************
-*** 5365,5372 ****
- global_exe(cmd)
- char_u *cmd;
- {
-! linenr_T old_lcount; /* b_ml.ml_line_count before the command */
-! linenr_T lnum; /* line number according to old situation */
-
- /*
- * Set current position only once for a global command.
---- 5365,5373 ----
- global_exe(cmd)
- char_u *cmd;
- {
-! linenr_T old_lcount; /* b_ml.ml_line_count before the command */
-! buf_T *old_buf = curbuf; /* remember what buffer we started in */
-! linenr_T lnum; /* line number according to old situation */
-
- /*
- * Set current position only once for a global command.
-***************
-*** 5410,5417 ****
- msg_didout = FALSE;
-
- /* If substitutes done, report number of substitutes, otherwise report
-! * number of extra or deleted lines. */
-! if (!do_sub_msg(FALSE))
- msgmore(curbuf->b_ml.ml_line_count - old_lcount);
- }
-
---- 5411,5420 ----
- msg_didout = FALSE;
-
- /* If substitutes done, report number of substitutes, otherwise report
-! * number of extra or deleted lines.
-! * Don't report extra or deleted lines in the edge case where the buffer
-! * we are in after execution is different from the buffer we started in. */
-! if (!do_sub_msg(FALSE) && curbuf == old_buf)
- msgmore(curbuf->b_ml.ml_line_count - old_lcount);
- }
-
-*** ../vim-7.3.184/src/version.c 2011-05-10 15:52:10.000000000 +0200
---- src/version.c 2011-05-10 15:57:40.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 185,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-79. All of your most erotic dreams have a scrollbar at the right side.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.186
-Fcc: 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.186
-Problem: When 'clipboard' contains "unnamed" or "unnamedplus" the value of
- v:register is wrong for operators without a specific register.
-Solution: Adjust the register according to 'clipboard'. (Ingo Karkat)
-Files: src/normal.c
-
-
-*** ../vim-7.3.185/src/normal.c 2010-12-17 18:52:56.000000000 +0100
---- src/normal.c 2011-05-10 16:07:49.000000000 +0200
-***************
-*** 1202,1208 ****
- {
- clearop(oap);
- #ifdef FEAT_EVAL
-! set_reg_var('"');
- #endif
- }
-
---- 1202,1214 ----
- {
- clearop(oap);
- #ifdef FEAT_EVAL
-! {
-! int regname = 0;
-! /* Adjust the register according to 'clipboard', so that when
-! * "unnamed" is present it becomes '*' or '+' instead of '"'. */
-! adjust_clip_reg(&regname);
-! set_reg_var(regname);
-! }
- #endif
- }
-
-*** ../vim-7.3.185/src/version.c 2011-05-10 16:00:43.000000000 +0200
---- src/version.c 2011-05-10 16:10:10.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 186,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-80. At parties, you introduce your spouse as your "service provider."
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.187
-Fcc: 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.187
-Problem: The RISC OS port has obvious errors and is not being maintained.
-Solution: Remove the RISC OS files and code.
-Files: src/ascii.h, src/eval.c, src/ex_cmds.c, src/ex_cmds2.c,
- src/ex_docmd.c, src/fileio.c, src/globals.h, src/gui.c, src/gui.h,
- src/main.c, src/memfile.c, src/memline.c, src/misc1.c,
- src/proto.h, src/quickfix.c, src/search.c, src/structs.h,
- src/term.c, src/termlib.c, src/version.c, src/vim.h,
- src/gui_riscos.h, src/os_riscos.h, src/gui_riscos.c,
- src/os_riscos.c, runtime/doc/os_risc.txt
-
-
-*** ../vim-7.3.186/src/ascii.h 2010-08-15 21:57:25.000000000 +0200
---- src/ascii.h 2011-05-10 16:22:08.000000000 +0200
-***************
-*** 183,193 ****
- # define PATHSEP psepc
- # define PATHSEPSTR pseps
- #else
-! # ifdef RISCOS
-! # define PATHSEP '.'
-! # define PATHSEPSTR "."
-! # else
-! # define PATHSEP '/'
-! # define PATHSEPSTR "/"
-! # endif
- #endif
---- 183,188 ----
- # define PATHSEP psepc
- # define PATHSEPSTR pseps
- #else
-! # define PATHSEP '/'
-! # define PATHSEPSTR "/"
- #endif
-*** ../vim-7.3.186/src/eval.c 2011-04-21 14:27:21.000000000 +0200
---- src/eval.c 2011-05-10 16:22:21.000000000 +0200
-***************
-*** 11818,11826 ****
- #ifdef __QNX__
- "qnx",
- #endif
-- #ifdef RISCOS
-- "riscos",
-- #endif
- #ifdef UNIX
- "unix",
- #endif
---- 11818,11823 ----
-*** ../vim-7.3.186/src/ex_cmds.c 2011-05-10 16:00:43.000000000 +0200
---- src/ex_cmds.c 2011-05-10 16:23:22.000000000 +0200
-***************
-*** 899,907 ****
- * Handle the ":!cmd" command. Also for ":r !cmd" and ":w !cmd"
- * Bangs in the argument are replaced with the previously entered command.
- * Remember the argument.
-- *
-- * RISCOS: Bangs only replaced when followed by a space, since many
-- * pathnames contain one.
- */
- void
- do_bang(addr_count, eap, forceit, do_in, do_out)
---- 899,904 ----
-***************
-*** 980,990 ****
- trailarg = NULL;
- while (*p)
- {
-! if (*p == '!'
-! #ifdef RISCOS
-! && (p[1] == ' ' || p[1] == NUL)
-! #endif
-! )
- {
- if (p > newcmd && p[-1] == '\\')
- STRMOVE(p - 1, p);
---- 977,983 ----
- trailarg = NULL;
- while (*p)
- {
-! if (*p == '!')
- {
- if (p > newcmd && p[-1] == '\\')
- STRMOVE(p - 1, p);
-***************
-*** 1578,1591 ****
- if (p != NULL)
- *p = NUL;
- }
-- # ifdef RISCOS
-- STRCAT(buf, " { < "); /* Use RISC OS notation for input. */
-- STRCAT(buf, itmp);
-- STRCAT(buf, " } ");
-- # else
- STRCAT(buf, " <"); /* " < " causes problems on Amiga */
- STRCAT(buf, itmp);
-- # endif
- if (*p_shq == NUL)
- {
- p = vim_strchr(cmd, '|');
---- 1571,1578 ----
-***************
-*** 1634,1649 ****
- else
- vim_snprintf((char *)end, (size_t)(buflen - (end - buf)),
- #ifdef FEAT_QUICKFIX
-- # ifndef RISCOS
-- opt != p_sp ? " %s%s" :
-- # endif
- " %s %s",
- #else
-- # ifndef RISCOS
- " %s%s", /* " > %s" causes problems on Amiga */
-- # else
-- " %s %s", /* But is needed for 'shellpipe' and RISC OS */
-- # endif
- #endif
- (char *)opt, (char *)fname);
- }
---- 1621,1629 ----
-***************
-*** 1844,1854 ****
- #ifdef VMS
- (char_u *)"-tmp",
- #else
-- # ifdef RISCOS
-- (char_u *)"/tmp",
-- # else
- (char_u *)".tmp",
-- # endif
- #endif
- FALSE);
- if (tempname == NULL) /* out of memory */
---- 1824,1830 ----
-*** ../vim-7.3.186/src/ex_cmds2.c 2011-04-11 21:35:03.000000000 +0200
---- src/ex_cmds2.c 2011-05-10 16:23:47.000000000 +0200
-***************
-*** 500,517 ****
- /* Expand the file name in the same way as do_source(). This means
- * doing it twice, so that $DIR/file gets expanded when $DIR is
- * "~/dir". */
-- #ifdef RISCOS
-- q = mch_munge_fname(p);
-- #else
- q = expand_env_save(p);
-- #endif
- if (q == NULL)
- return FAIL;
-- #ifdef RISCOS
-- p = mch_munge_fname(q);
-- #else
- p = expand_env_save(q);
-- #endif
- vim_free(q);
- if (p == NULL)
- return FAIL;
---- 500,509 ----
-***************
-*** 2940,2950 ****
- proftime_T wait_start;
- #endif
-
-- #ifdef RISCOS
-- p = mch_munge_fname(fname);
-- #else
- p = expand_env_save(fname);
-- #endif
- if (p == NULL)
- return retval;
- fname_exp = fix_fname(p);
---- 2932,2938 ----
-*** ../vim-7.3.186/src/ex_docmd.c 2011-05-05 14:26:37.000000000 +0200
---- src/ex_docmd.c 2011-05-10 16:24:18.000000000 +0200
-***************
-*** 9702,9715 ****
- valid = 0; /* Must have ":p:h" to be valid */
- }
- else
-- #ifdef RISCOS
-- /* Always use the full path for RISC OS if possible. */
-- result = curbuf->b_ffname;
-- if (result == NULL)
-- result = curbuf->b_fname;
-- #else
- result = curbuf->b_fname;
-- #endif
- break;
-
- case SPEC_HASH: /* '#' or "#99": alternate file */
---- 9702,9708 ----
-***************
-*** 9854,9864 ****
- if (src[*usedlen] == '<') /* remove the file name extension */
- {
- ++*usedlen;
-- #ifdef RISCOS
-- if ((s = vim_strrchr(result, '/')) != NULL && s >= gettail(result))
-- #else
- if ((s = vim_strrchr(result, '.')) != NULL && s >= gettail(result))
-- #endif
- resultlen = (int)(s - result);
- }
- #ifdef FEAT_MODIFY_FNAME
---- 9847,9853 ----
-***************
-*** 10875,10882 ****
- else if (vim_ispathsep(*p))
- {
- *s++ = '=';
-! #if defined(BACKSLASH_IN_FILENAME) || defined(AMIGA) || defined(RISCOS) \
-! || defined(VMS)
- if (*p == ':')
- *s++ = '-';
- else
---- 10864,10870 ----
- else if (vim_ispathsep(*p))
- {
- *s++ = '=';
-! #if defined(BACKSLASH_IN_FILENAME) || defined(AMIGA) || defined(VMS)
- if (*p == ':')
- *s++ = '-';
- else
-*** ../vim-7.3.186/src/fileio.c 2011-05-05 16:41:19.000000000 +0200
---- src/fileio.c 2011-05-10 16:26:06.000000000 +0200
-***************
-*** 504,521 ****
-
- if (newfile && !read_stdin && !read_buffer)
- {
-! /* Remember time of file.
-! * For RISCOS, also remember the filetype.
-! */
- if (mch_stat((char *)fname, &st) >= 0)
- {
- buf_store_time(curbuf, &st, fname);
- curbuf->b_mtime_read = curbuf->b_mtime;
--
-- #if defined(RISCOS) && defined(FEAT_OSFILETYPE)
-- /* Read the filetype into the buffer local filetype option. */
-- mch_read_filetype(fname);
-- #endif
- #ifdef UNIX
- /*
- * Use the protection bits of the original file for the swap file.
---- 504,514 ----
-
- if (newfile && !read_stdin && !read_buffer)
- {
-! /* Remember time of file. */
- if (mch_stat((char *)fname, &st) >= 0)
- {
- buf_store_time(curbuf, &st, fname);
- curbuf->b_mtime_read = curbuf->b_mtime;
- #ifdef UNIX
- /*
- * Use the protection bits of the original file for the swap file.
-***************
-*** 557,563 ****
-
- /*
- * for UNIX: check readonly with perm and mch_access()
-- * for RISCOS: same as Unix, otherwise file gets re-datestamped!
- * for MSDOS and Amiga: check readonly by trying to open the file for writing
- */
- file_readonly = FALSE;
---- 550,555 ----
-***************
-*** 3804,3816 ****
-
- /* make sure we have a valid backup extension to use */
- if (*p_bex == NUL)
-- {
-- #ifdef RISCOS
-- backup_ext = (char_u *)"/bak";
-- #else
- backup_ext = (char_u *)".bak";
-- #endif
-- }
- else
- backup_ext = p_bex;
-
---- 3796,3802 ----
-***************
-*** 4724,4734 ****
- #endif
- if (perm >= 0) /* set perm. of new file same as old file */
- (void)mch_setperm(wfname, perm);
-- #ifdef RISCOS
-- if (!append && !filtering)
-- /* Set the filetype after writing the file. */
-- mch_set_filetype(wfname, buf->b_p_oft);
-- #endif
- #ifdef HAVE_ACL
- /* Probably need to set the ACL before changing the user (can't set the
- * ACL on a file the user doesn't own). */
---- 4710,4715 ----
-***************
-*** 6262,6280 ****
- */
- for (ptr = retval + fnamelen; ptr > retval; mb_ptr_back(retval, ptr))
- {
-- #ifndef RISCOS
- if (*ext == '.'
-! # ifdef USE_LONG_FNAME
- && (!USE_LONG_FNAME || shortname)
-! # else
-! # ifndef SHORT_FNAME
- && shortname
-- # endif
- # endif
- )
- if (*ptr == '.') /* replace '.' by '_' */
- *ptr = '_';
-- #endif
- if (vim_ispathsep(*ptr))
- {
- ++ptr;
---- 6243,6259 ----
- */
- for (ptr = retval + fnamelen; ptr > retval; mb_ptr_back(retval, ptr))
- {
- if (*ext == '.'
-! #ifdef USE_LONG_FNAME
- && (!USE_LONG_FNAME || shortname)
-! #else
-! # ifndef SHORT_FNAME
- && shortname
- # endif
-+ #endif
- )
- if (*ptr == '.') /* replace '.' by '_' */
- *ptr = '_';
- if (vim_ispathsep(*ptr))
- {
- ++ptr;
-***************
-*** 6309,6331 ****
- if (fname == NULL || *fname == NUL
- || vim_ispathsep(fname[STRLEN(fname) - 1]))
- {
-- #ifdef RISCOS
-- if (*ext == '/')
-- #else
- if (*ext == '.')
-- #endif
- *s++ = '_';
- }
- /*
- * If the extension starts with '.', truncate the base name at 8
- * characters
- */
-- #ifdef RISCOS
-- /* We normally use '/', but swap files are '_' */
-- else if (*ext == '/' || *ext == '_')
-- #else
- else if (*ext == '.')
-- #endif
- {
- if ((size_t)(s - ptr) > (size_t)8)
- {
---- 6288,6301 ----
-***************
-*** 6337,6349 ****
- * If the extension doesn't start with '.', and the file name
- * doesn't have an extension yet, append a '.'
- */
-- #ifdef RISCOS
-- else if ((e = vim_strchr(ptr, '/')) == NULL)
-- *s++ = '/';
-- #else
- else if ((e = vim_strchr(ptr, '.')) == NULL)
- *s++ = '.';
-- #endif
- /*
- * If the extension doesn't start with '.', and there already is an
- * extension, it may need to be truncated
---- 6307,6314 ----
-***************
-*** 6371,6393 ****
- /*
- * Prepend the dot.
- */
-! if (prepend_dot && !shortname && *(e = gettail(retval)) !=
-! #ifdef RISCOS
-! '/'
-! #else
-! '.'
-! #endif
- #ifdef USE_LONG_FNAME
- && USE_LONG_FNAME
- #endif
- )
- {
- STRMOVE(e + 1, e);
-- #ifdef RISCOS
-- *e = '/';
-- #else
- *e = '.';
-- #endif
- }
- #endif
-
---- 6336,6349 ----
- /*
- * Prepend the dot.
- */
-! if (prepend_dot && !shortname && *(e = gettail(retval)) != '.'
- #ifdef USE_LONG_FNAME
- && USE_LONG_FNAME
- #endif
- )
- {
- STRMOVE(e + 1, e);
- *e = '.';
- }
- #endif
-
-***************
-*** 10205,10223 ****
- ++p;
- break;
- case '.':
-- #ifdef RISCOS
-- if (allow_dirs != NULL)
-- *allow_dirs = TRUE;
-- /* FALLTHROUGH */
-- #endif
- case '~':
- reg_pat[i++] = '\\';
- reg_pat[i++] = *p;
- break;
- case '?':
-- #ifdef RISCOS
-- case '#':
-- #endif
- reg_pat[i++] = '.';
- break;
- case '\\':
---- 10161,10171 ----
-*** ../vim-7.3.186/src/globals.h 2011-05-05 14:26:37.000000000 +0200
---- src/globals.h 2011-05-10 16:26:13.000000000 +0200
-***************
-*** 1513,1519 ****
- EXTERN char_u e_sandbox[] INIT(= N_("E48: Not allowed in sandbox"));
- #endif
- EXTERN char_u e_secure[] INIT(= N_("E523: Not allowed here"));
-! #if defined(AMIGA) || defined(MACOS) || defined(MSWIN) || defined(RISCOS) \
- || defined(UNIX) || defined(VMS) || defined(OS2)
- EXTERN char_u e_screenmode[] INIT(= N_("E359: Screen mode setting not supported"));
- #endif
---- 1513,1519 ----
- EXTERN char_u e_sandbox[] INIT(= N_("E48: Not allowed in sandbox"));
- #endif
- EXTERN char_u e_secure[] INIT(= N_("E523: Not allowed here"));
-! #if defined(AMIGA) || defined(MACOS) || defined(MSWIN) \
- || defined(UNIX) || defined(VMS) || defined(OS2)
- EXTERN char_u e_screenmode[] INIT(= N_("E359: Screen mode setting not supported"));
- #endif
-*** ../vim-7.3.186/src/gui.c 2011-01-17 20:08:03.000000000 +0100
---- src/gui.c 2011-05-10 16:26:53.000000000 +0200
-***************
-*** 2156,2162 ****
-
- if (highlight_mask & (HL_INVERSE | HL_STANDOUT))
- {
-! #if defined(AMIGA) || defined(RISCOS)
- gui_mch_set_colors(bg_color, fg_color);
- #else
- gui_mch_set_fg_color(bg_color);
---- 2156,2162 ----
-
- if (highlight_mask & (HL_INVERSE | HL_STANDOUT))
- {
-! #if defined(AMIGA)
- gui_mch_set_colors(bg_color, fg_color);
- #else
- gui_mch_set_fg_color(bg_color);
-***************
-*** 2165,2171 ****
- }
- else
- {
-! #if defined(AMIGA) || defined(RISCOS)
- gui_mch_set_colors(fg_color, bg_color);
- #else
- gui_mch_set_fg_color(fg_color);
---- 2165,2171 ----
- }
- else
- {
-! #if defined(AMIGA)
- gui_mch_set_colors(fg_color, bg_color);
- #else
- gui_mch_set_fg_color(fg_color);
-***************
-*** 2193,2199 ****
- if (back != 0 && ((draw_flags & DRAW_BOLD) || (highlight_mask & HL_ITALIC)))
- return FAIL;
-
-! #if defined(RISCOS) || defined(FEAT_GUI_GTK)
- /* If there's no italic font, then fake it.
- * For GTK2, we don't need a different font for italic style. */
- if (hl_mask_todo & HL_ITALIC)
---- 2193,2199 ----
- if (back != 0 && ((draw_flags & DRAW_BOLD) || (highlight_mask & HL_ITALIC)))
- return FAIL;
-
-! #if defined(FEAT_GUI_GTK)
- /* If there's no italic font, then fake it.
- * For GTK2, we don't need a different font for italic style. */
- if (hl_mask_todo & HL_ITALIC)
-***************
-*** 2985,3010 ****
- did_clip = TRUE;
- }
- /* Allow the left button to start the selection */
-- else if (button ==
-- # ifdef RISCOS
-- /* Only start a drag on a drag event. Otherwise
-- * we don't get a release event. */
-- MOUSE_DRAG
-- # else
-- MOUSE_LEFT
-- # endif
-- )
-- {
-- clip_start_selection(X_2_COL(x), Y_2_ROW(y), repeated_click);
-- did_clip = TRUE;
-- }
-- # ifdef RISCOS
- else if (button == MOUSE_LEFT)
- {
-! clip_clear_selection();
- did_clip = TRUE;
- }
-- # endif
-
- /* Always allow pasting */
- if (button != MOUSE_MIDDLE)
---- 2985,2995 ----
- did_clip = TRUE;
- }
- /* Allow the left button to start the selection */
- else if (button == MOUSE_LEFT)
- {
-! clip_start_selection(X_2_COL(x), Y_2_ROW(y), repeated_click);
- did_clip = TRUE;
- }
-
- /* Always allow pasting */
- if (button != MOUSE_MIDDLE)
-*** ../vim-7.3.186/src/gui.h 2010-08-15 21:57:25.000000000 +0200
---- src/gui.h 2011-05-10 16:27:19.000000000 +0200
-***************
-*** 52,61 ****
- # include <SegLoad.h>*/
- #endif
-
-- #ifdef RISCOS
-- # include "gui_riscos.h"
-- #endif
--
- #ifdef FEAT_GUI_PHOTON
- # include <Ph.h>
- # include <Pt.h>
---- 52,57 ----
-***************
-*** 151,157 ****
- #define DRAW_BOLD 0x02 /* draw bold text */
- #define DRAW_UNDERL 0x04 /* draw underline text */
- #define DRAW_UNDERC 0x08 /* draw undercurl text */
-! #if defined(RISCOS) || defined(FEAT_GUI_GTK)
- # define DRAW_ITALIC 0x10 /* draw italic text */
- #endif
- #define DRAW_CURSOR 0x20 /* drawing block cursor (win32) */
---- 147,153 ----
- #define DRAW_BOLD 0x02 /* draw bold text */
- #define DRAW_UNDERL 0x04 /* draw underline text */
- #define DRAW_UNDERC 0x08 /* draw undercurl text */
-! #if defined(FEAT_GUI_GTK)
- # define DRAW_ITALIC 0x10 /* draw italic text */
- #endif
- #define DRAW_CURSOR 0x20 /* drawing block cursor (win32) */
-***************
-*** 219,227 ****
- #ifdef FEAT_GUI_MAC
- ControlHandle id; /* A handle to the scrollbar */
- #endif
-- #ifdef RISCOS
-- int id; /* Window handle of scrollbar window */
-- #endif
- #ifdef FEAT_GUI_PHOTON
- PtWidget_t *id;
- #endif
---- 215,220 ----
-***************
-*** 450,463 ****
- int visibility; /* Is window partially/fully obscured? */
- #endif
-
-- #ifdef RISCOS
-- int window_handle;
-- char_u *window_title;
-- int window_title_size;
-- int fg_colour; /* in 0xBBGGRR format */
-- int bg_colour;
-- #endif
--
- #ifdef FEAT_GUI_PHOTON
- PtWidget_t *vimWindow; /* PtWindow */
- PtWidget_t *vimTextArea; /* PtRaw */
---- 443,448 ----
-*** ../vim-7.3.186/src/main.c 2011-04-11 21:35:03.000000000 +0200
---- src/main.c 2011-05-10 16:27:33.000000000 +0200
-***************
-*** 3276,3286 ****
- main_msg(_("+reverse\t\tDon't use reverse video (also: +rv)"));
- main_msg(_("-xrm <resource>\tSet the specified resource"));
- #endif /* FEAT_GUI_X11 */
-- #if defined(FEAT_GUI) && defined(RISCOS)
-- mch_msg(_("\nArguments recognised by gvim (RISC OS version):\n"));
-- main_msg(_("--columns <number>\tInitial width of window in columns"));
-- main_msg(_("--rows <number>\tInitial height of window in rows"));
-- #endif
- #ifdef FEAT_GUI_GTK
- mch_msg(_("\nArguments recognised by gvim (GTK+ version):\n"));
- main_msg(_("-font <font>\t\tUse <font> for normal text (also: -fn)"));
---- 3276,3281 ----
-*** ../vim-7.3.186/src/memfile.c 2011-03-22 18:10:34.000000000 +0100
---- src/memfile.c 2011-05-10 16:27:38.000000000 +0200
-***************
-*** 1307,1313 ****
- * fname cannot be NameBuff, because it must have been allocated.
- */
- mf_set_ffname(mfp);
-! #if defined(MSDOS) || defined(MSWIN) || defined(RISCOS)
- /*
- * A ":!cd e:xxx" may change the directory without us knowning, use the
- * full pathname always. Careful: This frees fname!
---- 1307,1313 ----
- * fname cannot be NameBuff, because it must have been allocated.
- */
- mf_set_ffname(mfp);
-! #if defined(MSDOS) || defined(MSWIN)
- /*
- * A ":!cd e:xxx" may change the directory without us knowning, use the
- * full pathname always. Careful: This frees fname!
-*** ../vim-7.3.186/src/memline.c 2011-02-15 11:56:56.000000000 +0100
---- src/memline.c 2011-05-10 16:28:40.000000000 +0200
-***************
-*** 748,754 ****
- continue;
- if (mf_open_file(mfp, fname) == OK) /* consumes fname! */
- {
-! #if defined(MSDOS) || defined(MSWIN) || defined(RISCOS)
- /*
- * set full pathname for swap file now, because a ":!cd dir" may
- * change directory without us knowing it.
---- 748,754 ----
- continue;
- if (mf_open_file(mfp, fname) == OK) /* consumes fname! */
- {
-! #if defined(MSDOS) || defined(MSWIN)
- /*
- * set full pathname for swap file now, because a ":!cd dir" may
- * change directory without us knowing it.
-***************
-*** 933,939 ****
- b0p->b0_fname[0] = NUL;
- else
- {
-! #if defined(MSDOS) || defined(MSWIN) || defined(AMIGA) || defined(RISCOS)
- /* Systems that cannot translate "~user" back into a path: copy the
- * file name unmodified. Do use slashes instead of backslashes for
- * portability. */
---- 933,939 ----
- b0p->b0_fname[0] = NUL;
- else
- {
-! #if defined(MSDOS) || defined(MSWIN) || defined(AMIGA)
- /* Systems that cannot translate "~user" back into a path: copy the
- * file name unmodified. Do use slashes instead of backslashes for
- * portability. */
-***************
-*** 1103,1109 ****
- fname = (char_u *)"";
- len = (int)STRLEN(fname);
- if (len >= 4 &&
-! #if defined(VMS) || defined(RISCOS)
- STRNICMP(fname + len - 4, "_s" , 2)
- #else
- STRNICMP(fname + len - 4, ".s" , 2)
---- 1103,1109 ----
- fname = (char_u *)"";
- len = (int)STRLEN(fname);
- if (len >= 4 &&
-! #if defined(VMS)
- STRNICMP(fname + len - 4, "_s" , 2)
- #else
- STRNICMP(fname + len - 4, ".s" , 2)
-***************
-*** 1773,1783 ****
- #ifdef VMS
- names[0] = vim_strsave((char_u *)"*_sw%");
- #else
-- # ifdef RISCOS
-- names[0] = vim_strsave((char_u *)"*_sw#");
-- # else
- names[0] = vim_strsave((char_u *)"*.sw?");
-- # endif
- #endif
- #if defined(UNIX) || defined(WIN3264)
- /* For Unix names starting with a dot are special. MS-Windows
---- 1773,1779 ----
-***************
-*** 1804,1814 ****
- #ifdef VMS
- names[0] = concat_fnames(dir_name, (char_u *)"*_sw%", TRUE);
- #else
-- # ifdef RISCOS
-- names[0] = concat_fnames(dir_name, (char_u *)"*_sw#", TRUE);
-- # else
- names[0] = concat_fnames(dir_name, (char_u *)"*.sw?", TRUE);
-- # endif
- #endif
- #if defined(UNIX) || defined(WIN3264)
- /* For Unix names starting with a dot are special. MS-Windows
---- 1800,1806 ----
-***************
-*** 1877,1883 ****
- char_u *swapname;
-
- swapname = modname(fname_res,
-! #if defined(VMS) || defined(RISCOS)
- (char_u *)"_swp", FALSE
- #else
- (char_u *)".swp", TRUE
---- 1869,1875 ----
- char_u *swapname;
-
- swapname = modname(fname_res,
-! #if defined(VMS)
- (char_u *)"_swp", FALSE
- #else
- (char_u *)".swp", TRUE
-***************
-*** 2176,2186 ****
- #ifdef VMS
- names[num_names] = concat_fnames(path, (char_u *)"_sw%", FALSE);
- #else
-- # ifdef RISCOS
-- names[num_names] = concat_fnames(path, (char_u *)"_sw#", FALSE);
-- # else
- names[num_names] = concat_fnames(path, (char_u *)".sw?", FALSE);
-- # endif
- #endif
- if (names[num_names] == NULL)
- goto end;
---- 2168,2174 ----
-***************
-*** 2207,2217 ****
- #ifdef VMS
- names[num_names] = modname(path, (char_u *)"_sw%", FALSE);
- #else
-- # ifdef RISCOS
-- names[num_names] = modname(path, (char_u *)"_sw#", FALSE);
-- # else
- names[num_names] = modname(path, (char_u *)".sw?", FALSE);
-- # endif
- #endif
- if (names[num_names] == NULL)
- goto end;
---- 2195,2201 ----
-***************
-*** 3205,3211 ****
- mf_free(mfp, hp); /* free the data block */
- buf->b_ml.ml_locked = NULL;
-
-! for (stack_idx = buf->b_ml.ml_stack_top - 1; stack_idx >= 0; --stack_idx)
- {
- buf->b_ml.ml_stack_top = 0; /* stack is invalid when failing */
- ip = &(buf->b_ml.ml_stack[stack_idx]);
---- 3189,3196 ----
- mf_free(mfp, hp); /* free the data block */
- buf->b_ml.ml_locked = NULL;
-
-! for (stack_idx = buf->b_ml.ml_stack_top - 1; stack_idx >= 0;
-! --stack_idx)
- {
- buf->b_ml.ml_stack_top = 0; /* stack is invalid when failing */
- ip = &(buf->b_ml.ml_stack[stack_idx]);
-***************
-*** 3956,3969 ****
- #else
- (buf->b_p_sn || buf->b_shortname),
- #endif
-- #ifdef RISCOS
-- /* Avoid problems if fname has special chars, eg <Wimp$Scrap> */
-- ffname,
-- #else
- fname_res,
-- #endif
- (char_u *)
-! #if defined(VMS) || defined(RISCOS)
- "_swp",
- #else
- ".swp",
---- 3941,3949 ----
- #else
- (buf->b_p_sn || buf->b_shortname),
- #endif
- fname_res,
- (char_u *)
-! #if defined(VMS)
- "_swp",
- #else
- ".swp",
-***************
-*** 4427,4440 ****
- }
- close(fd);
- }
-- #ifdef RISCOS
-- else
-- /* Can't open swap file, though it does exist.
-- * Assume that the user is editing two files with
-- * the same name in different directories. No error.
-- */
-- differ = TRUE;
-- #endif
-
- /* give the ATTENTION message when there is an old swap file
- * for the current file, and the buffer was not recovered. */
---- 4407,4412 ----
-*** ../vim-7.3.186/src/misc1.c 2011-05-10 14:44:07.000000000 +0200
---- src/misc1.c 2011-05-10 16:29:29.000000000 +0200
-***************
-*** 4589,4613 ****
- vim_ispathsep(c)
- int c;
- {
-! #ifdef RISCOS
-! return (c == '.' || c == ':');
-! #else
-! # ifdef UNIX
- return (c == '/'); /* UNIX has ':' inside file names */
-! # else
-! # ifdef BACKSLASH_IN_FILENAME
- return (c == ':' || c == '/' || c == '\\');
-! # else
-! # ifdef VMS
- /* server"user passwd"::device:[full.path.name]fname.extension;version" */
- return (c == ':' || c == '[' || c == ']' || c == '/'
- || c == '<' || c == '>' || c == '"' );
-! # else /* Amiga */
- return (c == ':' || c == '/');
-! # endif /* VMS */
-! # endif
- # endif
-! #endif /* RISC OS */
- }
-
- #if defined(FEAT_SEARCHPATH) || defined(PROTO)
---- 4589,4609 ----
- vim_ispathsep(c)
- int c;
- {
-! #ifdef UNIX
- return (c == '/'); /* UNIX has ':' inside file names */
-! #else
-! # ifdef BACKSLASH_IN_FILENAME
- return (c == ':' || c == '/' || c == '\\');
-! # else
-! # ifdef VMS
- /* server"user passwd"::device:[full.path.name]fname.extension;version" */
- return (c == ':' || c == '[' || c == ']' || c == '/'
- || c == '<' || c == '>' || c == '"' );
-! # else
- return (c == ':' || c == '/');
-! # endif /* VMS */
- # endif
-! #endif
- }
-
- #if defined(FEAT_SEARCHPATH) || defined(PROTO)
-*** ../vim-7.3.186/src/proto.h 2010-08-15 21:57:29.000000000 +0200
---- src/proto.h 2011-05-10 16:29:45.000000000 +0200
-***************
-*** 62,70 ****
- # ifdef __BEOS__
- # include "os_beos.pro"
- # endif
-- # ifdef RISCOS
-- # include "os_riscos.pro"
-- # endif
- # ifdef __QNX__
- # include "os_qnx.pro"
- # endif
---- 62,67 ----
-***************
-*** 245,253 ****
- # ifdef FEAT_GUI_X11
- # include "gui_x11.pro"
- # endif
-- # ifdef RISCOS
-- # include "gui_riscos.pro"
-- # endif
- # ifdef FEAT_GUI_PHOTON
- # include "gui_photon.pro"
- # endif
---- 242,247 ----
-*** ../vim-7.3.186/src/quickfix.c 2011-05-05 17:14:07.000000000 +0200
---- src/quickfix.c 2011-05-10 16:30:18.000000000 +0200
-***************
-*** 1182,1202 ****
- if (fname == NULL || *fname == NUL) /* no file name */
- return 0;
- {
-- #ifdef RISCOS
-- /* Name is reported as `main.c', but file is `c.main' */
-- return ro_buflist_add(fname);
-- #else
- char_u *ptr;
- int fnum;
-
-! # ifdef VMS
- vms_remove_version(fname);
-! # endif
-! # ifdef BACKSLASH_IN_FILENAME
- if (directory != NULL)
- slash_adjust(directory);
- slash_adjust(fname);
-! # endif
- if (directory != NULL && !vim_isAbsName(fname)
- && (ptr = concat_fnames(directory, fname, TRUE)) != NULL)
- {
---- 1182,1198 ----
- if (fname == NULL || *fname == NUL) /* no file name */
- return 0;
- {
- char_u *ptr;
- int fnum;
-
-! #ifdef VMS
- vms_remove_version(fname);
-! #endif
-! #ifdef BACKSLASH_IN_FILENAME
- if (directory != NULL)
- slash_adjust(directory);
- slash_adjust(fname);
-! #endif
- if (directory != NULL && !vim_isAbsName(fname)
- && (ptr = concat_fnames(directory, fname, TRUE)) != NULL)
- {
-***************
-*** 1221,1227 ****
- return fnum;
- }
- return buflist_add(fname, 0);
-- #endif
- }
- }
-
---- 1217,1222 ----
-*** ../vim-7.3.186/src/search.c 2011-02-25 18:38:29.000000000 +0100
---- src/search.c 2011-05-10 16:30:38.000000000 +0200
-***************
-*** 4581,4589 ****
- char_u *already = NULL;
- char_u *startp = NULL;
- char_u *inc_opt = NULL;
-- #ifdef RISCOS
-- int previous_munging = __riscosify_control;
-- #endif
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
- win_T *curwin_save = NULL;
- #endif
---- 4581,4586 ----
-***************
-*** 4596,4606 ****
- if (file_line == NULL)
- return;
-
-- #ifdef RISCOS
-- /* UnixLib knows best how to munge c file names - turn munging back on. */
-- int __riscosify_control = 0;
-- #endif
--
- if (type != CHECK_PATH && type != FIND_DEFINE
- #ifdef FEAT_INS_EXPAND
- /* when CONT_SOL is set compare "ptr" with the beginning of the line
---- 4593,4598 ----
-***************
-*** 5228,5238 ****
- vim_free(regmatch.regprog);
- vim_free(incl_regmatch.regprog);
- vim_free(def_regmatch.regprog);
--
-- #ifdef RISCOS
-- /* Restore previous file munging state. */
-- __riscosify_control = previous_munging;
-- #endif
- }
-
- static void
---- 5220,5225 ----
-*** ../vim-7.3.186/src/structs.h 2011-03-22 18:10:34.000000000 +0100
---- src/structs.h 2011-05-10 16:30:49.000000000 +0200
-***************
-*** 2366,2376 ****
- MenuHandle menu_handle;
- MenuHandle submenu_handle;
- #endif
-- #ifdef RISCOS
-- int *id; /* Not used, but gui.c needs it */
-- int greyed_out; /* Flag */
-- int hidden;
-- #endif
- #ifdef FEAT_GUI_PHOTON
- PtWidget_t *id;
- PtWidget_t *submenu_id;
---- 2366,2371 ----
-*** ../vim-7.3.186/src/term.c 2010-12-30 14:47:32.000000000 +0100
---- src/term.c 2011-05-10 16:31:41.000000000 +0200
-***************
-*** 52,58 ****
-
- /*
- * Here are the builtin termcap entries. They are not stored as complete
-! * Tcarr structures, as such a structure is too big.
- *
- * The entries are compact, therefore they normally are included even when
- * HAVE_TGETENT is defined. When HAVE_TGETENT is defined, the builtin entries
---- 52,58 ----
-
- /*
- * Here are the builtin termcap entries. They are not stored as complete
-! * structures with all entries, as such a structure is too big.
- *
- * The entries are compact, therefore they normally are included even when
- * HAVE_TGETENT is defined. When HAVE_TGETENT is defined, the builtin entries
-***************
-*** 199,269 ****
- #endif
-
- #ifndef NO_BUILTIN_TCAPS
-- # if defined(RISCOS) || defined(ALL_BUILTIN_TCAPS)
-- /*
-- * Default for the Acorn.
-- */
-- {(int)KS_NAME, "riscos"},
-- {(int)KS_CL, "\014"}, /* Cls and Home Cursor */
-- {(int)KS_CM, "\001%d\001%d\002"}, /* Position cursor */
--
-- {(int)KS_CCO, "16"}, /* Allow 16 colors */
--
-- {(int)KS_CAF, "\001%d\021"}, /* Set foreground colour */
-- {(int)KS_CAB, "\001%d\022"}, /* Set background colour */
--
--
-- {(int)KS_ME, "\004"}, /* Normal mode */
-- {(int)KS_MR, "\005"}, /* Reverse */
--
-- {(int)KS_VI, "\016"}, /* Cursor invisible */
-- {(int)KS_VE, "\017"}, /* Cursor visible */
-- {(int)KS_VS, "\020"}, /* Cursor very visible */
--
-- {(int)KS_CS, "\001%d\001%d\003"}, /* Set scroll region */
-- {(int)KS_SR, "\023"}, /* Scroll text down */
-- {K_UP, "\217"},
-- {K_DOWN, "\216"},
-- {K_LEFT, "\214"},
-- {K_RIGHT, "\215"},
-- {K_S_UP, "\237"},
-- {K_S_DOWN, "\236"},
-- {K_S_LEFT, "\234"},
-- {K_S_RIGHT, "\235"},
--
-- {K_F1, "\201"},
-- {K_F2, "\202"},
-- {K_F3, "\203"},
-- {K_F4, "\204"},
-- {K_F5, "\205"},
-- {K_F6, "\206"},
-- {K_F7, "\207"},
-- {K_F8, "\210"},
-- {K_F9, "\211"},
-- {K_F10, "\312"},
-- {K_F11, "\313"},
-- {K_F12, "\314"},
-- {K_S_F1, "\221"},
-- {K_S_F2, "\222"},
-- {K_S_F3, "\223"},
-- {K_S_F4, "\224"},
-- {K_S_F5, "\225"},
-- {K_S_F6, "\226"},
-- {K_S_F7, "\227"},
-- {K_S_F8, "\230"},
-- {K_S_F9, "\231"},
-- {K_S_F10, "\332"},
-- {K_S_F11, "\333"},
-- {K_S_F12, "\334"},
-- {K_BS, "\010"},
-- {K_INS, "\315"},
-- {K_DEL, "\177"},
-- {K_HOME, "\036"},
-- {K_END, "\213"},
-- {K_PAGEUP, "\237"},
-- {K_PAGEDOWN, "\236"},
-- # endif /* Acorn terminal */
--
-
- # if defined(AMIGA) || defined(ALL_BUILTIN_TCAPS)
- /*
---- 199,204 ----
-***************
-*** 1399,1408 ****
- /*
- * DEFAULT_TERM is used, when no terminal is specified with -T option or $TERM.
- */
-- #ifdef RISCOS
-- # define DEFAULT_TERM (char_u *)"riscos"
-- #endif
--
- #ifdef AMIGA
- # define DEFAULT_TERM (char_u *)"amiga"
- #endif
---- 1334,1339 ----
-*** ../vim-7.3.186/src/termlib.c 2010-08-15 21:57:30.000000000 +0200
---- src/termlib.c 2011-05-10 16:31:58.000000000 +0200
-***************
-*** 13,19 ****
- #include "vim.h"
- #include "termlib.pro"
-
-! #if !defined(AMIGA) && !defined(VMS) && !defined(MACOS) && !defined(RISCOS)
- # include <sgtty.h>
- #endif
-
---- 13,19 ----
- #include "vim.h"
- #include "termlib.pro"
-
-! #if !defined(AMIGA) && !defined(VMS) && !defined(MACOS)
- # include <sgtty.h>
- #endif
-
-*** ../vim-7.3.186/src/version.c 2011-05-10 16:12:40.000000000 +0200
---- src/version.c 2011-05-10 16:37:20.000000000 +0200
-***************
-*** 1205,1213 ****
- # endif
- #endif
-
-- #ifdef RISCOS
-- MSG_PUTS(_("\nRISC OS version"));
-- #endif
- #ifdef VMS
- MSG_PUTS(_("\nOpenVMS version"));
- # ifdef HAVE_PATHDEF
---- 1207,1212 ----
-*** ../vim-7.3.186/src/vim.h 2011-05-05 16:41:19.000000000 +0200
---- src/vim.h 2011-05-10 16:32:40.000000000 +0200
-***************
-*** 184,192 ****
- # define SIZEOF_INT 2
- # endif
- #endif
-- #ifdef RISCOS
-- # define SIZEOF_INT 4
-- #endif
-
-
- #include "feature.h" /* #defines for optionals and features */
---- 184,189 ----
-***************
-*** 340,349 ****
- # include "os_mac.h"
- #endif
-
-- #ifdef RISCOS
-- # include "os_riscos.h"
-- #endif
--
- #ifdef __QNX__
- # include "os_qnx.h"
- #endif
---- 337,342 ----
-*** ../vim-7.3.186/src/gui_riscos.h 2010-08-15 21:57:28.000000000 +0200
---- src/gui_riscos.h 1970-01-01 01:00:00.000000000 +0100
-***************
-*** 1,32 ****
-- /* vi:set ts=8 sts=4 sw=4:
-- *
-- * VIM - Vi IMproved by Bram Moolenaar
-- *
-- * Do ":help uganda" in Vim to read copying and usage conditions.
-- * Do ":help credits" in Vim to see a list of people who contributed.
-- */
--
-- #define FEAT_BROWSE
--
-- #define TASK 0x4b534154
--
-- /* Nested wimp flags: */
-- #define CHILD_FIX_TO_WORKAREA 0
-- #define CHILD_FIX_TO_LEFT 1
-- #define CHILD_FIX_TO_BOTTOM 1
-- #define CHILD_FIX_TO_RIGHT 2
-- #define CHILD_FIX_TO_TOP 2
--
-- #define CHILD_SELF_SCROLL 0
-- #define CHILD_PARENT_SCROLL 1
--
-- #define CHILD_LEFT 16
-- #define CHILD_BOTTOM 18
-- #define CHILD_RIGHT 20
-- #define CHILD_TOP 22
-- #define CHILD_SCROLL_X 24
-- #define CHILD_SCROLL_Y 26
--
-- int wimp_poll(int mask, int *block);
-- int wimp_poll_idle(int mask, int *block, int end_time);
-- void ro_open_main(int *block);
---- 0 ----
-*** ../vim-7.3.186/src/os_riscos.h 2010-08-15 21:57:30.000000000 +0200
---- src/os_riscos.h 1970-01-01 01:00:00.000000000 +0100
-***************
-*** 1,166 ****
-- /* vi:set ts=8 sts=4 sw=4:
-- *
-- * VIM - Vi IMproved by Bram Moolenaar
-- *
-- * Do ":help uganda" in Vim to read copying and usage conditions.
-- * Do ":help credits" in Vim to see a list of people who contributed.
-- */
--
-- #include <sys/types.h>
-- #include <sys/stat.h>
-- #include <sys/ioctl.h>
-- #include <termios.h>
-- #include <stdlib.h>
-- #include <unixlib/local.h>
-- #include <errno.h>
-- #include <fcntl.h>
--
-- #define CASE_INSENSITIVE_FILENAME
-- #define FEAT_MODIFY_FNAME
-- #define FEAT_OSFILETYPE
-- #define DFLT_OFT "Text"
-- #define USE_TERM_CONSOLE
-- #define HAVE_AVAIL_MEM
--
-- /* Longer filenames now accessible to all */
-- #ifndef BASENAMELEN
-- # define BASENAMELEN 64 /* Same length as unzip */
-- #endif
--
-- #ifndef TEMNAME
-- # define TEMPNAME "<Wimp$ScrapDir>.v?XXXXXX"
-- # define TEMPNAMELEN 25
-- #endif
--
-- #ifndef DFLT_HELPFILE
-- # define DFLT_HELPFILE "Vim:doc.help"
-- #endif
--
-- #ifndef DFLT_BDIR
-- # define DFLT_BDIR ".,<Wimp$ScrapDir>." /* default for 'backupdir' */
-- #endif
--
-- /* Paths to try putting swap file in. */
-- #ifndef DFLT_DIR
-- # define DFLT_DIR "<Wimp$ScrapDir>.,." /* default for 'directory' */
-- #endif
--
-- #ifndef DFLT_VDIR
-- # define DFLT_VDIR "Choices:Vim.view" /* default for 'viewdir' */
-- #endif
--
-- #ifndef TERMCAPFILE
-- # define TERMCAPFILE "Vim:TermCap"
-- #endif
-- #define HAVE_TGETENT
--
-- #ifndef SYNTAX_FNAME
-- # define SYNTAX_FNAME "Vim:Syntax.%s"
-- #endif
--
-- #ifndef EVIM_FILE
-- # define EVIM_FILE "Vim:Evim"
-- #endif
--
-- #define FEAT_VIMINFO
--
-- #ifndef VIMINFO_FILE
-- # define VIMINFO_FILE "<Choices$Write>.Vim.VimInfo"
-- #endif
-- #ifndef VIMINFO_FILE2
-- # define VIMINFO_FILE2 "Choices:Vim.VimInfo"
-- #endif
--
-- #ifndef VIMRC_FILE
-- # define VIMRC_FILE "/vimrc"
-- #endif
-- #ifndef EXRC_FILE
-- # define EXRC_FILE "/exrc"
-- #endif
-- #ifndef GVIMRC_FILE
-- # define GVIMRC_FILE "/gvimrc"
-- #endif
-- #ifndef USR_VIMRC_FILE
-- # define USR_VIMRC_FILE "Vim:Evim"
-- #endif
-- #ifndef SESSION_FILE
-- # define SESSION_FILE "/Session.vim"
-- #endif
-- #ifndef USR_VIMRC_FILE
-- # define USR_VIMRC_FILE "Choices:Vim.VimRC"
-- #endif
-- #ifndef USR_GVIMRC_FILE
-- # define USR_GVIMRC_FILE "Choices:Vim.GVimRC"
-- #endif
-- #ifndef USR_EXRC_FILE
-- # define USR_EXRC_FILE "Choices:Vim.ExRC"
-- #endif
-- #ifndef SYS_VIMRC_FILE
-- # define SYS_VIMRC_FILE "Vim:VimRC"
-- #endif
-- #ifndef SYS_GVIMRC_FILE
-- # define SYS_GVIMRC_FILE "Vim:GVimRC"
-- #endif
-- #ifndef SYS_MENU_FILE
-- # define SYS_MENU_FILE "Vim:Menu"
-- #endif
-- #ifndef SYS_OPTWIN_FILE
-- # define SYS_OPTWIN_FILE "Vim:Optwin"
-- #endif
-- #ifndef FILETYPE_FILE
-- # define FILETYPE_FILE "Vim:Filetype"
-- #endif
-- #ifndef FTPLUGIN_FILE
-- # define FTPLUGIN_FILE "Vim:Ftplugin/vim"
-- #endif
-- #ifndef INDENT_FILE
-- # define INDENT_FILE "Vim:Indent/vim"
-- #endif
-- #ifndef FTOFF_FILE
-- # define FTOFF_FILE "Vim:Ftoff"
-- #endif
-- #ifndef FTPLUGOF_FILE
-- # define FTPLUGOF_FILE "Vim:Ftplugof"
-- #endif
-- #ifndef INDOFF_FILE
-- # define INDOFF_FILE "Vim:Indoff"
-- #endif
--
-- #define DFLT_ERRORFILE "errors/vim"
-- #define DFLT_RUNTIMEPATH "Choices:Vim,Vim:,Choices:Vim.after"
--
-- /*
-- * RISC PCs have plenty of memory, use large buffers
-- */
-- #define CMDBUFFSIZE 1024 /* size of the command processing buffer */
-- #define MAXPATHL 256 /* paths are always quite short though */
--
-- #ifndef DFLT_MAXMEM
-- # define DFLT_MAXMEM (5*1024) /* use up to 5 Mbyte for a buffer */
-- #endif
--
-- #ifndef DFLT_MAXMEMTOT
-- # define DFLT_MAXMEMTOT (10*1024) /* use up to 10 Mbyte for Vim */
-- #endif
--
-- #ifdef HAVE_SIGSET
-- # define signal sigset
-- #endif
--
-- #define n_flag (1<<31)
-- #define z_flag (1<<30)
-- #define c_flag (1<<29)
-- #define v_flag (1<<28)
--
-- /* These take r0-r7 as inputs, returns r0-r7 in global variables. */
-- void swi(int swinum, ...); /* Handles errors itself */
-- int xswi(int swinum, ...); /* Returns errors using v flag */
-- extern int r0, r1, r2, r3, r4, r5, r6, r7; /* For return values */
--
-- #include <kernel.h>
-- #include <swis.h>
--
-- #define mch_memmove(to, from, len) memmove((char *)(to), (char *)(from), len)
-- #define mch_rename(src, dst) rename(src, dst)
-- #define mch_getenv(x) (char_u *)getenv((char *)x)
-- #define mch_setenv(name, val, x) setenv(name, val, x)
---- 0 ----
-*** ../vim-7.3.186/src/gui_riscos.c 2011-05-10 15:52:10.000000000 +0200
---- src/gui_riscos.c 1970-01-01 01:00:00.000000000 +0100
-***************
-*** 1,3558 ****
-- /* vi:set ts=8 sts=4 sw=4:
-- *
-- * VIM - Vi IMproved by Bram Moolenaar
-- *
-- * Do ":help uganda" in Vim to read copying and usage conditions.
-- * Do ":help credits" in Vim to see a list of people who contributed.
-- * See README.txt for an overview of the Vim source code.
-- */
--
-- #include "vim.h"
-- #include <string.h>
--
-- /*
-- * gui_riscos.c
-- *
-- * Thomas Leonard <tal197@ecs.soton.ac.uk>
-- * Updated by Andy Wingate <andy@sparse.net>
-- */
--
-- extern int time_of_last_poll;
--
-- int task_handle = 0; /* Zero means we are not yet a Wimp task */
-- int child_handle = 0; /* Task handle of our child process (zero if none). */
-- int *wimp_menu = (int *) -1; /* Pointer to a Wimp menu structure (or -1) */
-- int save_window = -1; /* Save As window handle */
--
-- int *redraw_block = NULL; /* NULL means not in a redraw loop. */
-- int ro_return_early = FALSE; /* Break out of gui_mch_wait_for_chars() */
--
-- int leaf_ref = 0; /* Wimp message number - send via Wimp$Scrap */
-- char_u *leaf_name = NULL; /* Leaf name from DataSave */
--
-- int default_columns = 120; /* These values are used if the --rows and --columns */
-- int default_rows = 32; /* options aren't used on startup. */
--
-- #define DRAG_FALSE 0
-- #define DRAG_SELECTION 1
-- #define DRAG_RESIZE_WINDOW 2
-- int ro_dragging = DRAG_FALSE;
-- int drag_button;
-- int drag_modifiers;
-- int drag_x_offset;
-- int drag_y_offset;
--
-- int nested_wimp = FALSE; /* Bool - can we use the new wimp? */
--
-- int changed_mode = FALSE;
-- int x_eigen_factor;
-- int y_eigen_factor;
--
-- /* If ro_current_font is non-zero then use the outline font with that handle,
-- * otherwise, if zap_redraw is TRUE then use ZapRedraw, otherwise use the
-- * system font.
-- *
-- * If zap_redraw is TRUE then zap_file[] contains valid Zap font file
-- * pointers (or NULLs).
-- */
-- int ro_current_font = 0; /* 0 is system font, or ZapRedraw */
-- int font_x_offset = 0; /* Where to position each char in its box */
-- int font_y_offset = 0;
--
-- int zap_redraw = FALSE;
-- int double_height = FALSE; /* Plot each line twice? */
--
-- #define grgb(r,g,b) ((b<<16) + (g<<8) + (r))
-- #define UNUSED_COLOUR (gui.back_pixel)
--
-- #define RO_LOAD_CLIPBOARD -2 /* Internal handle for DataSave message. */
--
-- /* Changes by John Kortink, 22-23 July 1998
-- *
-- * Stuff to make redraw a lot faster. Almost all of it is right here below,
-- * elsewhere changes are marked with 'JK230798'. Apart from a small change in
-- * 'gui.c' all changes are limited to this file, 'gui_riscos.c'. The change in
-- * 'gui.c' is to make Vim stop being 'smart' not redrawing characters that are
-- * 'already there' (i.e. from the previous line, by coincidence). This caused a
-- * lot more calls to the redraw code, which we want to avoid because a few nice
-- * big strings at a time is a lot faster than a truckload of small ones. ('Dear
-- * Bram ...').
-- */
--
-- /* The ZapRedraw structure */
--
-- static struct
-- {
-- int r_flags;
-- int r_minx;
-- int r_miny;
-- int r_maxx;
-- int r_maxy;
-- int r_screen;
-- int r_bpl;
-- int r_bpp;
-- int r_charw;
-- int r_charh;
-- char *r_caddr;
-- int r_cbpl;
-- int r_cbpc;
-- int r_linesp;
-- int r_data;
-- int r_scrollx;
-- int r_scrolly;
-- int *r_palette;
-- int r_for;
-- int r_bac;
-- char *r_workarea;
-- int r_magx;
-- int r_magy;
-- int r_xsize;
-- int r_ysize;
-- int r_mode;
-- }
-- zap_redraw_block;
--
-- /* Other globals */
--
-- static int zap_redraw_initialised = FALSE;
-- static int zap_redraw_update_colours;
-- static int zap_redraw_colours[2];
-- static int zap_redraw_palette[16];
--
-- /* Holds the current Zap font file(s).
-- * The font is recreated from this block on a mode change.
-- * When using zap, element ZAP_NORMAL is always valid, but
-- * the others can be NULL.
-- */
--
-- #define ZAP_NORMAL 0
-- #define ZAP_BOLD 1
-- #define ZAP_ITALIC 2
-- #define ZAP_BITALIC 3
-- #define ZAP_STYLES 4
--
-- /* Zap font file format data */
-- static char *zap_file[ZAP_STYLES] = {NULL, NULL, NULL, NULL};
--
-- /* r_caddr format for current mode */
-- static char *zap_caddr[ZAP_STYLES] = {NULL, NULL, NULL, NULL};
--
-- static void ro_remove_menu(int *menu);
--
-- /*
-- * Initialise all the ZapRedraw stuff.
-- * Call this when changing font and after each mode change.
-- * zap_redraw_bitmap must contain a valid Zap font file (possibly
-- * created from the system font).
-- *
-- * Return FAIL to revert to system font (if we can't use ZapRedraw).
-- */
-- int
-- ro_zap_redraw_initialise()
-- {
-- int bytes_per_bitmap_char;
-- int first, last;
-- int i;
--
-- /* Can't have initialisers for struct members :-(, ok, this way then ... */
-- if (!zap_redraw_initialised)
-- {
-- zap_redraw_block.r_workarea = NULL;
-- zap_redraw_initialised = TRUE;
-- }
--
-- /* We redraw in DSA mode */
-- zap_redraw_block.r_flags = 0x0;
--
-- /* Let ZapRedraw get the screen address for us */
-- zap_redraw_block.r_screen = 0;
--
-- /* Read the font width and height from the font file header.
-- * Assume that all styles are the same size.
-- * ZAP_NORMAL is always present.
-- */
-- zap_redraw_block.r_charw = ((int *) zap_file[ZAP_NORMAL])[2];
-- zap_redraw_block.r_charh = ((int *) zap_file[ZAP_NORMAL])[3];
--
-- /* We have no linespacing */
-- zap_redraw_block.r_linesp = 0;
--
-- /* Fix foreground = colour 1 */
-- zap_redraw_block.r_for = 1;
--
-- /* Fix background = colour 0 */
-- zap_redraw_block.r_bac = 0;
--
-- /* Colour mask buffer */
-- zap_redraw_block.r_palette = zap_redraw_palette;
--
-- /* Allocate local workspace (for the few calls following here) */
-- if (zap_redraw_block.r_workarea != NULL)
-- free(zap_redraw_block.r_workarea);
-- zap_redraw_block.r_workarea = (char*) malloc(128);
-- if (!zap_redraw_block.r_workarea)
-- return FAIL; /* Out of memory */
--
-- /* Fill in VDU variables */
-- if (xswi(ZapRedraw_ReadVduVars, 0, &zap_redraw_block) & v_flag)
-- return FAIL; /* Can't find ZapRedraw module - use VDU instead */
--
-- /* Determine cbpl and cbpc */
-- swi(ZapRedraw_CachedCharSize, zap_redraw_block.r_bpp, 0,
-- zap_redraw_block.r_charw, zap_redraw_block.r_charh);
-- zap_redraw_block.r_cbpl = r2;
-- zap_redraw_block.r_cbpc = r3;
--
-- /* Allocate general workspace (for the calls outside) */
-- if (zap_redraw_block.r_workarea != NULL)
-- free(zap_redraw_block.r_workarea);
-- zap_redraw_block.r_workarea = (char*) malloc(128 + zap_redraw_block.r_cbpl);
-- if (!zap_redraw_block.r_workarea)
-- return FAIL; /* Out of memory */
--
-- /* Now convert the 1 bpp character data ready for the current mode */
--
-- bytes_per_bitmap_char = (zap_redraw_block.r_charw * zap_redraw_block.r_charh + 7) / 8;
--
-- /* Convert the fonts from 1bpp to a format suitable for the
-- * current mode.
-- */
-- for (i = 0; i < ZAP_STYLES; i++)
-- {
-- first = ((int *) zap_file[i])[4];
-- last = ((int *) zap_file[i])[5];
--
-- if (last > 255)
-- last = 255; /* Don't convert cursors (overwrites memory!) */
--
-- /* Allocate the font cache */
-- vim_free(zap_caddr[i]);
-- if (zap_file[i])
-- zap_caddr[i] = (char*) malloc(zap_redraw_block.r_cbpc * 256);
-- else
-- zap_caddr[i] = NULL; /* No file for this style */
--
-- if (zap_caddr[i])
-- {
-- zap_redraw_block.r_caddr = zap_caddr[i];
--
-- swi(ZapRedraw_ConvertBitmap, 0, &zap_redraw_block,
-- first, last, /* Range of characters to convert */
-- zap_file[i] + 0x20 /* Addr of first char provided by font */
-- - first * bytes_per_bitmap_char);
-- }
-- }
--
-- if (!zap_caddr[ZAP_NORMAL])
-- {
-- zap_redraw = FALSE; /* Out of memory */
-- return FAIL;
-- }
--
-- /* Next time we need them, we have to update the colour masks */
-- zap_redraw_update_colours = TRUE;
--
-- return OK;
-- }
--
-- /*
-- * Redraw a string at OS coordinates <x,y> (top-left, x inclusive, y exclusive).
-- * Graphics clip window is window[0..3] as in R1+28..40 of Wimp_RedrawWindow.
-- * Returns (possibly modified) flags.
-- */
-- int
-- ro_zap_redraw_draw_string(x, y, string, length, flags, clip)
-- int x;
-- int y;
-- char *string;
-- int length;
-- int flags; /* DRAW_TRANSP, DRAW_BOLD, DRAW_UNDERL, DRAW_ITALIC */
-- int *clip;
-- {
-- char redraw_data[1024];
-- int clip_minx;
-- int clip_miny;
-- int clip_maxx;
-- int clip_maxy;
-- int os_xshift = zap_redraw_block.r_magx;
-- int os_yshift = zap_redraw_block.r_magy;
--
-- if (flags & DRAW_TRANSP)
-- return flags; /* We don't do transparent plotting yet. */
--
-- if (flags & DRAW_BOLD)
-- {
-- if (flags & DRAW_ITALIC && zap_caddr[ZAP_BITALIC])
-- zap_redraw_block.r_caddr = zap_caddr[ZAP_BITALIC];
-- else
-- zap_redraw_block.r_caddr = zap_caddr[ZAP_BOLD];
-- }
-- else
-- {
-- if (flags & DRAW_ITALIC)
-- zap_redraw_block.r_caddr = zap_caddr[ZAP_ITALIC];
-- else
-- zap_redraw_block.r_caddr = zap_caddr[ZAP_NORMAL];
-- }
-- if (!zap_redraw_block.r_caddr)
-- {
-- zap_redraw_block.r_caddr = zap_caddr[ZAP_NORMAL];
-- flags |= DRAW_UNDERL; /* Style missing - we can always underline */
-- }
--
-- /* Set the vertical scaling flag */
-- if (double_height)
-- zap_redraw_block.r_flags = 1 << 1;
-- else
-- zap_redraw_block.r_flags = 0;
--
-- /* Update the colour masks (if needed) */
-- if (zap_redraw_update_colours)
-- {
-- swi(ZapRedraw_CreatePalette, 2,
-- &zap_redraw_block,
-- zap_redraw_colours,
-- zap_redraw_block.r_palette, 2);
-- zap_redraw_update_colours = FALSE;
-- }
--
-- /* Target rectangle in ZapRedraw rectangle coordinates (pixels, Y-min/max reversed !!!) */
-- zap_redraw_block.r_minx = x >> os_xshift; /* inclusive */
-- zap_redraw_block.r_miny = zap_redraw_block.r_ysize - (y >> os_yshift); /* inclusive */
-- zap_redraw_block.r_maxx = (x + length * gui.char_width) >> os_xshift; /* exclusive */
-- zap_redraw_block.r_maxy = zap_redraw_block.r_ysize - ((y - gui.char_height) >> os_yshift);
-- /* exclusive */
--
-- /* Clip rectangle in ZapRedraw rectangle coordinates (pixels, Y-min/max reversed !!!) */
-- clip_minx = clip[0] >> os_xshift; /* inclusive */
-- clip_miny = zap_redraw_block.r_ysize - (clip[3] >> os_yshift); /* inclusive */
-- clip_maxx = clip[2] >> os_xshift; /* exclusive */
-- clip_maxy = zap_redraw_block.r_ysize - (clip[1] >> os_yshift); /* exclusive */
--
-- /* Clip target rectangle against the current graphics window */
-- if (zap_redraw_block.r_minx < clip_minx)
-- {
-- zap_redraw_block.r_scrollx = clip_minx - zap_redraw_block.r_minx;
-- zap_redraw_block.r_minx = clip_minx;
-- }
-- else
-- zap_redraw_block.r_scrollx = 0;
-- if (zap_redraw_block.r_miny < clip_miny)
-- {
-- zap_redraw_block.r_scrolly = clip_miny - zap_redraw_block.r_miny;
-- zap_redraw_block.r_miny = clip_miny;
-- }
-- else
-- zap_redraw_block.r_scrolly = 0;
-- if (zap_redraw_block.r_maxx > clip_maxx)
-- zap_redraw_block.r_maxx = clip_maxx;
-- if (zap_redraw_block.r_maxy > clip_maxy)
-- zap_redraw_block.r_maxy = clip_maxy;
--
-- /* Fill in the character data structure */
-- if (length > (sizeof(redraw_data) - 2 * 4 - 2))
-- length = sizeof(redraw_data) - 2 * 4 - 2;
-- ((int*) redraw_data)[0] = 2 * 4;
-- ((int*) redraw_data)[1] = 0;
-- strncpy(redraw_data + 2 * 4, string, length);
-- redraw_data[2 * 4 + length + 0] = '\0';
-- redraw_data[2 * 4 + length + 1] = '\x2';
-- zap_redraw_block.r_data = (int) redraw_data;
--
-- /* Perform the draw */
-- swi(ZapRedraw_RedrawArea, 0, &zap_redraw_block);
--
-- return flags;
-- }
--
-- /*
-- * Okay that was it from me, back to Thomas ...
-- */
--
-- /*
-- * Parse the GUI related command-line arguments. Any arguments used are
-- * deleted from argv, and *argc is decremented accordingly. This is called
-- * when vim is started, whether or not the GUI has been started.
-- */
-- void
-- gui_mch_prepare(int *argc, char **argv)
-- {
-- int arg = 1;
--
-- while (arg < *argc - 1)
-- {
-- if (strcmp(argv[arg], "--rows") == 0 || strcmp(argv[arg], "--columns") == 0)
-- {
-- int value;
--
-- value = atoi(argv[arg + 1]);
--
-- if (argv[arg][2] == 'r')
-- default_rows = value;
-- else
-- default_columns = value;
--
-- /* Delete argument from argv[]. (hope this is read/write!) */
--
-- *argc -= 2;
-- if (*argc > arg)
-- mch_memmove(&argv[arg], &argv[arg + 2], (*argc - arg)
-- * sizeof(char *));
-- }
-- else
-- arg++;
-- }
-- }
--
-- /* Fatal error on initialisation - report it and die. */
-- void
-- ro_die(error)
-- char_u *error; /* RISC OS error block */
-- {
-- swi(Wimp_ReportError, error, 5, "GVim");
-- exit(EXIT_FAILURE);
-- }
--
-- /* Find the sizes of the window tools:
-- *
-- * Create a test window.
-- * Find inner and outer sizes.
-- * Find the difference.
-- * Delete window.
-- *
-- * While we're here, find the eigen values too.
-- */
-- void
-- ro_measure_tools()
-- {
-- int block[10];
-- int vdu[] = { 4, 5, -1};
-- int test_window[] =
-- {
-- -100, -100, /* Visible area : min X,Y */
-- -50, -50, /* max X,Y */
-- 0, 0, /* Scroll offsets */
-- -1, /* Window in front */
-- 0xd0800150, /* Window flags */
-- 0xff070207, /* Colours */
-- 0x000c0103, /* More colours */
-- 0, -0x4000, /* Workarea extent */
-- 0x4000, 0, /* max X,Y */
-- 0x00000000, /* No title */
-- 0 << 12, /* No workarea button type */
-- 1, /* Wimp sprite area */
-- 0x00010001, /* Minimum width, height */
-- 0, 0, 0, /* Title data (none) */
-- 0 /* No icons */
-- };
-- int inner_max_x, inner_min_y;
--
-- swi(Wimp_CreateWindow, 0, test_window);
--
-- block[0] = r0;
-- /* Open the window (and read state).
-- * GetWindowOutline needs it too if the wimp isn't nested.
-- */
-- swi(Wimp_OpenWindow, 0, block);
-- inner_max_x = block[3];
-- inner_min_y = block[2];
--
-- swi(Wimp_GetWindowOutline, 0, block);
--
-- gui.scrollbar_width = block[3] - inner_max_x;
-- gui.scrollbar_height = inner_min_y - block[2];
--
-- swi(Wimp_DeleteWindow, 0, block);
--
-- /* Read the size of one pixel. */
-- swi(OS_ReadVduVariables, vdu, vdu);
-- x_eigen_factor = vdu[0];
-- y_eigen_factor = vdu[1];
-- }
--
-- /* Load a template from the current templates file.
-- * Create the window and return its handle.
-- */
-- int
-- ro_load_template(str_name, title, title_size)
-- char_u *str_name; /* Identifier of window in file (max 12 chars) */
-- char_u **title; /* If not NULL then return pointer to title here */
-- int *title_size; /* If not NULL then return the title length here */
-- {
-- int *window;
-- char *data;
-- int name[4];
--
-- strcpy( (char *) name, str_name);
--
-- /* Find how big we must make the buffers */
--
-- if (xswi(Wimp_LoadTemplate, 0, 0, 0, 0, -1, name, 0) & v_flag)
-- ro_die( (char *) r0);
--
-- window = malloc(r1); /* Don't print text messages from alloc() */
-- data = malloc(r2);
-- if (window == NULL || data == NULL)
-- ro_die("\0\0\0\0Out of memory - Can't load templates");
--
-- /* Load the template into the buffers */
--
-- swi(Wimp_LoadTemplate, 0,
-- window, /* Temp block */
-- data, /* Icon data */
-- data + r2 + 1, /* End of icon data */
-- -1, /* No fonts */
-- name, 0); /* First match */
-- if (r6 == 0)
-- ro_die("\0\0\0\0Can't find window in Templates file");
--
-- /* Create the window */
--
-- if (xswi(Wimp_CreateWindow, 0, window) & v_flag)
-- ro_die( (char *) r0);
--
-- if (title)
-- *title = (char_u *) window[18];
-- if (title_size)
-- *title_size = window[20];
--
-- free(window); /* Free temp block */
-- return r0; /* Return the window handle */
-- }
--
-- /*
-- * Check if the GUI can be started. Called before gvimrc is sourced.
-- * Return OK or FAIL.
-- */
-- int
-- gui_mch_init_check()
-- {
-- return OK; /* TODO: GUI can always be started? */
-- }
--
-- /*
-- * Initialise the RISC OS GUI.
-- * Create all the windows.
-- * Returns OK for success, FAIL when the GUI can't be started.
-- */
-- int
-- gui_mch_init()
-- {
-- int messages[] = {
-- 1, 2, 3, 4, /* DataSave, DataSaveAck, DataLoad, DataLoadAck */
-- 8, /* PreQuit */
-- 0xf, /* ClaimEntity (for clipboard) */
-- 0x10, /* DataRequest (for clipboard) */
-- 0x400c1, /* Mode change */
-- 0x400c3, /* TaskCloseDown */
-- 0x400c9, /* MenusDeleted */
-- 0x808c1, /* TW_Output */
-- 0x808c2, /* TW_Ego */
-- 0x808c3, /* TW_Morio */
-- 0x808c4, /* TW_Morite */
-- 0}; /* End-of-list. */
--
--
-- /* There may have been some errors reported in the
-- * command window before we get here. Wait if so.
-- */
-- swi(Wimp_ReadSysInfo, 3);
-- if (r0 == 0)
-- swi(Wimp_CommandWindow, 0); /* Window opened - close with prompt */
--
-- if (xswi(Wimp_Initialise, 310, 0x4b534154, "GVim", messages) & v_flag)
-- return FAIL;
-- nested_wimp = r0 >= 397;
-- task_handle = r1;
--
-- /* Load the templates. */
--
-- if (xswi(Wimp_OpenTemplate, 0, "Vim:Templates") & v_flag)
-- ro_die( (char *) r0);
--
-- gui.window_handle = ro_load_template("editor",
-- &gui.window_title,
-- &gui.window_title_size);
--
-- save_window = ro_load_template("save", NULL, NULL);
--
-- swi(Wimp_CloseTemplate);
--
-- /* Set default foreground and background colours. */
--
-- gui.norm_pixel = gui.def_norm_pixel;
-- gui.back_pixel = gui.def_back_pixel;
--
-- /* Get the colours from the "Normal" and "Menu" group (set in syntax.c or
-- * in a vimrc file) */
--
-- set_normal_colors();
--
-- /*
-- * Check that none of the colors are the same as the background color
-- */
--
-- gui_check_colors();
--
-- /* Get the colours for the highlight groups (gui_check_colors() might have
-- * changed them) */
--
-- highlight_gui_started(); /* re-init colours and fonts */
--
-- /* Set geometry based on values read on initialisation. */
--
-- gui.num_cols = Columns = default_columns;
-- gui.num_rows = Rows = default_rows;
--
-- /* Get some information about our environment. */
--
-- ro_measure_tools();
--
-- return OK;
-- }
--
-- /*
-- * Called when the foreground or background colour has been changed.
-- */
-- void
-- gui_mch_new_colors()
-- {
-- }
--
-- /*
-- * Open the GUI window which was created by a call to gui_mch_init().
-- */
-- int
-- gui_mch_open(void)
-- {
-- int block[10];
--
-- block[0] = gui.window_handle;
-- swi(Wimp_GetWindowState, 0, block);
-- block[7] = -1; /* Open at the top of the stack */
-- swi(Wimp_OpenWindow, 0, block);
--
-- /* Give the new window the input focus */
-- swi(Wimp_SetCaretPosition, gui.window_handle, -1, 0, 0, -1, -1);
--
-- if (gui_win_x != -1 && gui_win_y != -1)
-- gui_mch_set_winpos(gui_win_x, gui_win_y);
--
-- return OK;
-- }
--
-- void
-- gui_mch_exit(int rc)
-- {
-- int block[64];
--
-- /* Close window. Stops us from getting troublesome events
-- * if we take a while to die.
-- */
-- block[0] = gui.window_handle;
-- swi(Wimp_CloseWindow, 0, block);
--
-- if (child_handle)
-- {
-- /* We still have a sub-task running - kill it */
-- block[0] = 20;
-- block[3] = 0;
-- block[4] = 0; /* Quit */
-- if ((xswi(Wimp_SendMessage, 17, block, child_handle) & v_flag) == 0)
-- {
-- /* Idle until child dies. */
-- while (child_handle)
-- {
-- process_event(wimp_poll(1, block), block);
-- }
-- }
-- }
--
-- exit(rc);
-- }
--
-- /*
-- * Get the position of the top left corner of the window.
-- */
-- int
-- gui_mch_get_winpos(int *x, int *y)
-- {
-- /* TODO */
-- return FAIL;
-- }
--
-- /*
-- * Set the position of the top left corner of the window to the given
-- * coordinates.
-- */
-- void
-- gui_mch_set_winpos(int x, int y)
-- {
-- /* TODO */
-- }
--
-- void
-- gui_mch_set_shellsize(width, height, min_width, min_height, base_width, base_height, direction)
-- int width; /* In OS units */
-- int height;
-- int min_width; /* Smallest permissible window size (ignored) */
-- int min_height;
-- int base_width; /* Space for scroll bars, etc */
-- int base_height;
-- int direction;
-- {
-- int s_width, s_height;
-- int block[] = {
-- gui.window_handle,
-- 0,
-- -height + 1,
-- width,
-- 1};
--
-- gui_mch_get_screen_dimensions(&s_width, &s_height);
-- s_width -= base_width;
-- s_height -= base_height; /* Underestimate - ignores titlebar */
--
-- swi(Wimp_GetWindowState, 0, block);
-- block[3] = block[1] + width;
-- block[2] = block[4] - height;
-- if (block[3] > s_width)
-- {
-- block[3] = s_width;
-- block[1] = block[3] - width;
-- }
-- if (block[2] < gui.scrollbar_height)
-- {
-- block[2] = gui.scrollbar_height;
-- block[4] = block[2] + height;
-- }
-- swi(Wimp_OpenWindow, 0, block);
-- swi(Wimp_ForceRedraw, gui.window_handle, 0, -height, width, 0);
-- }
--
-- void
-- gui_mch_get_screen_dimensions(int *screen_w, int *screen_h)
-- {
-- int block[] = {4, 5, 11, 12, -1};
--
-- swi(OS_ReadVduVariables, block, block);
-- *screen_w = (block[2] + 1) << block[0];
-- *screen_h = (block[3] + 1) << block[1];
-- }
--
-- /* Take a font name with options and return a font handle, or
-- * zero for failure.
-- * Replace extension with 'Bold' or 'Italic' depending on modifiers.
-- */
-- int
-- ro_get_font(fullname, weight)
-- char_u *fullname;
-- int weight; /* Initial weights:
-- * BIT MEANING
-- * 0 bold
-- * 1 italic
-- */
-- {
-- char_u *arg;
-- char_u font[41];
-- int width = -1;
-- int height = -1;
-- int name_len;
-- int i;
-- char_u c;
--
-- for (i = 0; i < 39;)
-- {
-- c = fullname[i];
-- if (c == ':' || c == NUL || c == '.')
-- break;
-- font[i++] = c;
-- }
--
-- /* find the first modifier, NULL if none */
-- arg = strchr(fullname + i, ':');
--
-- while (arg)
-- {
-- switch (*++arg)
-- {
-- case 'h':
-- height = strtol(arg + 1, (char **) &arg, 10);
-- break;
-- case 'w':
-- width = strtol(arg + 1, (char **) &arg, 10);
-- break;
-- case 'b':
-- weight |= 1;
-- break;
-- case 'i':
-- weight |= 2;
-- break;
-- default:
-- return 0;
-- }
-- arg = strchr(arg, ':');
-- }
--
-- if ((weight & 1) && i < 35)
-- {
-- /* Bold goes instead of given suffix */
-- strncpy(font + i, ".Bold", 5);
-- i += 5;
-- }
-- else
-- {
-- /* Copy rest of name unless we are using Bold */
-- while (i < 39)
-- {
-- c = fullname[i];
-- if (c == ':' || c == NUL)
-- break;
-- font[i++] = c;
-- }
-- }
-- if ((weight & 2) && i < 32)
-- {
-- strncpy(font + i, ".Oblique", 8);
-- i += 8;
-- }
--
-- font[i] = 0;
--
-- if (height < 1 && width < 1)
-- height = width = 10; /* Default to 10pt */
-- else if (height < 1)
-- height = width;
-- else if (width < 1)
-- width = height;
--
-- if (xswi(Font_FindFont, 0, font, width << 4, height << 4, 0, 0) & v_flag)
-- return NOFONT; /* Can't find font */
--
-- return r0;
-- }
--
-- /* Load a file into allocated memory and check it is valid.
-- * Return a pointer to the allocated block on success.
-- */
-- char *
-- zap_load_file(name, style)
-- char_u *name; /* Name of directory containing styles */
-- char_u *style; /* Name of style within directory */
-- {
-- char_u fname[256];
-- char_u *file;
--
-- if (strlen(name) + strlen(style) > 254)
-- return NULL; /* Names too long */
--
-- sprintf(fname, "%s.%s", name, style);
--
-- /* Load the named font in 1bpp format. */
-- if (xswi(OS_File, 13, fname, 0, 0, "VimFonts:") & v_flag || r0 != 1)
-- return NULL; /* Error reading file info, or not a file */
--
-- /* Allocate enough memory to load the whole file */
-- file = (char *) alloc(r4);
-- if (!file)
-- return NULL; /* Out of memory */
--
-- if (xswi(OS_File, 12, fname, file, 0, "VimFonts:") & v_flag)
-- return NULL; /* Unable to load file */
--
-- if (strncmp(file, "ZapFont\015", 8) == 0)
-- return file; /* Loaded OK! */
--
-- vim_free(file);
-- return NULL; /* Not a valid font file */
-- }
--
-- /* Load and convert the named font.
-- * If name is NULL or a null string then convert the system font.
-- * Return OK on success; FAIL and we revert to using the VDU drivers.
-- *
-- * 'name' is the name of a directory.
-- * Tries to load 'name.0', 'name.B', 'name.I' and 'name.IB'.
-- */
-- int
-- zap_load_font(name)
-- char_u *name;
-- {
-- int i;
--
-- /* Free the existing font files, if any */
-- for (i = 0; i < ZAP_STYLES; i++)
-- {
-- vim_free(zap_file[i]);
-- zap_file[i] = NULL;
-- }
--
-- if (name && *name == '!')
-- {
-- name++;
-- double_height = TRUE;
-- }
-- else
-- double_height = FALSE;
--
-- if (name && *name)
-- {
-- zap_file[ZAP_NORMAL] = zap_load_file(name, "0");
-- if (!zap_file[ZAP_NORMAL])
-- return FAIL; /* Can't load the 'normal' style - error */
--
-- zap_file[ZAP_BOLD] = zap_load_file(name, "B");
-- zap_file[ZAP_ITALIC] = zap_load_file(name, "I");
-- zap_file[ZAP_BITALIC] = zap_load_file(name, "IB");
-- }
-- else
-- {
-- int *header;
-- char workarea[16];
-- char *old_wa;
--
-- /* Allocate memory for system font (8 x 8 x 256 bits, plus header) */
-- header = (int *) alloc(0x20 + 8 * 256);
-- if (header == NULL)
-- return FAIL;
-- zap_file[ZAP_NORMAL] = (char *) header;
--
-- /* Store details about the system font */
-- header[2] = 8; /* Width */
-- header[3] = 8; /* Height */
-- header[4] = 0; /* First char */
-- header[5] = 255; /* Last char */
-- header[6] = header[7] = 0; /* Reserved */
--
-- /* Get system font bitmap */
-- old_wa = zap_redraw_block.r_workarea;
-- zap_redraw_block.r_workarea = workarea;
-- swi(ZapRedraw_ReadSystemChars, zap_file[ZAP_NORMAL] + 0x20, &zap_redraw_block);
-- zap_redraw_block.r_workarea = old_wa;
-- }
--
-- return ro_zap_redraw_initialise();
-- }
--
-- /*
-- * Initialise vim to use the font with the given name.
-- * Return FAIL if the font could not be loaded, OK otherwise.
-- */
-- int
-- gui_mch_init_font(char_u *font_name, int fontset)
-- {
-- int new_handle = 0; /* Use the system font by default */
--
-- if (font_name[0] == '!')
-- {
-- /* Select a ZapRedraw font */
-- if (zap_load_font(font_name + 1))
-- zap_redraw = TRUE;
-- else
-- {
-- EMSG2(_("E610: Can't load Zap font '%s'"), font_name);
-- font_name = "System"; /* Error - use system font */
-- zap_redraw = FALSE;
-- }
-- }
-- else
-- {
-- zap_redraw = FALSE;
--
-- if (font_name)
-- {
-- /* Extract any extra details about the font */
-- new_handle = ro_get_font(font_name, 0);
-- if (!new_handle)
-- return FAIL;
-- }
-- else
-- font_name = "System";
-- }
--
-- /* Free the previous font, if any */
-- gui_mch_free_font(gui.norm_font);
-- gui.norm_font = new_handle;
-- gui.char_ascent = 0;
--
-- if (new_handle)
-- {
-- /* Read details about the chosen font */
-- swi(Font_ReadInfo, new_handle);
--
-- gui.char_width = r3 - r1;
-- gui.char_height = r4 - r2;
--
-- font_x_offset = -r1; /* Where to position each char in its box */
-- font_y_offset = -r4;
--
-- /* Try to load other fonts for bold, italic, and bold-italic */
-- gui_mch_free_font(gui.bold_font);
-- gui.bold_font = ro_get_font(font_name, 1);
-- gui_mch_free_font(gui.ital_font);
-- gui.ital_font = ro_get_font(font_name, 2);
-- gui_mch_free_font(gui.boldital_font);
-- gui.boldital_font = ro_get_font(font_name, 3);
-- }
-- else
-- {
-- /* Use the system font or ZapRedraw. */
-- if (zap_redraw)
-- {
-- gui.char_width = zap_redraw_block.r_charw << zap_redraw_block.r_magx;
-- gui.char_height = zap_redraw_block.r_charh << zap_redraw_block.r_magy;
-- if (double_height)
-- gui.char_height <<= 1;
-- }
-- else
-- {
-- gui.char_width = 16;
-- gui.char_height = 32;
-- }
--
-- gui_mch_free_font(gui.bold_font);
-- gui.bold_font = 0;
-- gui_mch_free_font(gui.ital_font);
-- gui.ital_font = 0;
-- gui_mch_free_font(gui.boldital_font);
-- gui.boldital_font = 0;
-- }
-- hl_set_font_name(font_name);
--
-- must_redraw = CLEAR;
-- return OK;
-- }
--
-- /*
-- * Adjust gui.char_height (after 'linespace' was changed).
-- */
-- int
-- gui_mch_adjust_charheight()
-- {
-- return FAIL;
-- }
--
-- /*
-- * Get a font structure for highlighting.
-- */
-- GuiFont
-- gui_mch_get_font(name, giveErrorIfMissing)
-- char_u *name;
-- int giveErrorIfMissing;
-- {
-- int handle;
--
-- if (!name)
-- return NOFONT; /* System font if no name */
--
-- handle = ro_get_font(name, 0);
-- if (!handle)
-- {
-- if (giveErrorIfMissing)
-- EMSG2(_("E611: Can't use font %s"), name);
-- return NOFONT;
-- }
--
-- return handle;
-- }
--
-- #if defined(FEAT_EVAL) || defined(PROTO)
-- /*
-- * Return the name of font "font" in allocated memory.
-- * Don't know how to get the actual name, thus use the provided name.
-- */
-- char_u *
-- gui_mch_get_fontname(font, name)
-- GuiFont font;
-- char_u *name;
-- {
-- if (name == NULL)
-- return NULL;
-- return vim_strsave(name);
-- }
-- #endif
--
-- /*
-- * Set the current text font.
-- */
-- void
-- gui_mch_set_font(GuiFont font)
-- {
-- ro_current_font = font;
--
-- if (font)
-- {
-- /* Not the system font or ZapRedraw font - select it */
-- swi(Font_SetFont, font);
-- }
-- }
--
-- /*
-- * If a font is not going to be used, free its structure.
-- */
-- void
-- gui_mch_free_font(GuiFont font)
-- {
-- if (font)
-- swi(Font_LoseFont, font);
-- }
--
-- /*
-- * Return the Pixel value (colour) for the given colour name.
-- * Return INVALCOLOR for error.
-- * NB: I've changed Green for now, since it looked really sick
-- */
-- guicolor_T
-- gui_mch_get_color(char_u *name)
-- {
-- int i;
-- struct colour
-- {
-- char_u *name;
-- guicolor_T value;
-- } colours[] =
-- {
-- { "Red", grgb(255, 0, 0) },
-- { "LightRed", grgb(255, 0, 0) },
-- { "DarkRed", grgb(139, 0, 0) },
--
-- { "Green", grgb(50, 200, 50) },
-- { "LightGreen", grgb(144, 238, 144) },
-- { "DarkGreen", grgb(0, 100, 0) },
-- { "SeaGreen", grgb(46, 139, 87) },
--
-- { "Blue", grgb(0, 0, 255) },
-- { "LightBlue", grgb(173, 216, 230) },
-- { "DarkBlue", grgb(0, 0, 139) },
-- { "SlateBlue", grgb(160, 90, 205) },
--
-- { "Cyan", grgb(0, 255, 255) },
-- { "LightCyan", grgb(224, 255, 255) },
-- { "DarkCyan", grgb(0, 139, 139) },
--
-- { "Magenta", grgb(255, 0, 255) },
-- { "LightMagenta", grgb(255, 224, 255) },
-- { "DarkMagenta", grgb(139, 0, 139) },
--
-- { "Yellow", grgb(255, 255, 0) },
-- { "LightYellow", grgb(255, 255, 224) },
-- { "DarkYellow", grgb(139, 139, 0) },
-- { "Brown", grgb(165, 42, 42) },
--
-- { "Gray", grgb(190, 190, 190) },
-- { "Grey", grgb(190, 190, 190) },
-- { "LightGray", grgb(211, 211, 211) },
-- { "LightGrey", grgb(211, 211, 211) },
-- { "DarkGray", grgb(169, 169, 169) },
-- { "DarkGrey", grgb(169, 169, 169) },
-- { "Gray10", grgb(26, 26, 26) },
-- { "Grey10", grgb(26, 26, 26) },
-- { "Gray20", grgb(51, 51, 51) },
-- { "Grey20", grgb(51, 51, 51) },
-- { "Gray30", grgb(77, 77, 77) },
-- { "Grey30", grgb(77, 77, 77) },
-- { "Gray40", grgb(102, 102, 102) },
-- { "Grey40", grgb(102, 102, 102) },
-- { "Gray50", grgb(127, 127, 127) },
-- { "Grey50", grgb(127, 127, 127) },
-- { "Gray60", grgb(153, 153, 153) },
-- { "Grey60", grgb(153, 153, 153) },
-- { "Gray70", grgb(179, 179, 179) },
-- { "Grey70", grgb(179, 179, 179) },
-- { "Gray80", grgb(204, 204, 204) },
-- { "Grey80", grgb(204, 204, 204) },
-- { "Gray90", grgb(229, 229, 229) },
-- { "Grey90", grgb(229, 229, 229) },
--
-- { "Black", grgb(0, 0, 0) },
-- { "White", grgb(255, 255, 255) },
--
-- { "Orange", grgb(255, 165, 0) },
-- { "Purple", grgb(160, 32, 240) },
-- { "Violet", grgb(238, 130, 238) },
-- {NULL, 0}
-- };
--
-- if (name[0] == '#')
-- {
-- char *end;
-- int c;
--
-- c = strtol(name + 1, &end, 16);
-- return (guicolor_T) ((c >> 16) & 0xff) | (c & 0xff00) | ((c & 0xff) << 16);
-- }
--
-- for (i = 0; colours[i].name != NULL; i++)
-- {
-- if (STRICMP(name, colours[i].name) == 0)
-- return colours[i].value;
-- }
-- if (strnicmp(name, "grey", 4) == 0 || strnicmp(name, "gray", 4) == 0)
-- {
-- int level = (255 * atoi(name + 4)) / 100;
-- return (guicolor_T) grgb(level, level, level);
-- }
-- return INVALCOLOR;
-- }
--
-- /*
-- * Set the current text colours.
-- * If we are using fonts then set the antialiasing colours too.
-- */
-- void
-- gui_mch_set_colors(guicolor_T fg, guicolor_T bg)
-- {
-- zap_redraw_colours[0] = bg << 8; /* JK230798, register new background colour */
-- zap_redraw_colours[1] = fg << 8; /* JK230798, register new foreground colour */
-- zap_redraw_update_colours = TRUE; /* JK230798, need update of colour masks */
--
-- swi(ColourTrans_ReturnGCOL, fg << 8);
-- gui.fg_colour = r0;
-- swi(ColourTrans_ReturnGCOL, bg << 8);
-- gui.bg_colour = r0;
--
-- if (ro_current_font)
-- swi(ColourTrans_SetFontColours, 0, bg << 8, fg << 8, 14);
-- }
--
-- void
-- ro_draw_string(x, y, s, len, flags, clip)
-- int x; /* Top-left coord to plot at (x incl, y excl) */
-- int y; /* (screen coords) */
-- char_u *s; /* String to plot */
-- int len; /* Length of string */
-- int flags; /* DRAW_TRANSP, DRAW_BOLD, DRAW_UNDERL */
-- int* clip; /* JK230798, added clip window */
-- {
-- if (ro_current_font)
-- {
-- int fx;
-- int flen = len; /* Preserve for underline */
--
-- /* Use the Font manager to paint the string.
-- * Must do one char at a time to get monospacing.
-- */
--
-- if (flags & DRAW_ITALIC && !gui.ital_font)
-- flags |= DRAW_UNDERL; /* No italic - underline instead */
--
-- if ((flags & DRAW_TRANSP) == 0)
-- {
-- swi(ColourTrans_SetColour, gui.bg_colour, 0, 0, 0, 0);
-- swi(OS_Plot, 4, x, y - gui.char_height);
-- swi(OS_Plot, 96 + 5, x + len * gui.char_width - 1, y - 1);
-- }
--
-- fx = x + font_x_offset;
-- while (flen--)
-- {
-- swi(Font_Paint, 0, s++, 0x90, fx, y + font_y_offset, 0, 0, 1);
-- fx += gui.char_width;
-- }
-- }
-- else
-- {
-- if (zap_redraw)
-- {
-- /* Using fast Zap redraw. */
-- flags = ro_zap_redraw_draw_string(x, y, s, len, flags, clip);
-- }
-- else
-- {
-- /* Using the system font */
-- if (flags & DRAW_ITALIC)
-- flags |= DRAW_UNDERL;
--
-- if ((flags & DRAW_TRANSP) == 0)
-- {
-- swi(ColourTrans_SetColour, gui.bg_colour, 0, 0, 0, 0);
-- swi(OS_Plot, 4, x, y - gui.char_height);
-- swi(OS_Plot, 96 + 5, x + len * gui.char_width - 1, y - 1);
-- }
-- swi(OS_Plot, 4, /* Move the drawing cursor */
-- x,
-- y - 1);
-- swi(ColourTrans_SetColour, gui.fg_colour, 0, 0, 0, 0);
-- swi(OS_WriteN, s, len);
--
-- if (flags & DRAW_BOLD)
-- {
-- swi(OS_Plot, 4, x + (1 << x_eigen_factor), y - 1);
-- swi(OS_WriteN, s, len);
-- }
-- }
-- }
--
-- if (flags & DRAW_UNDERL)
-- {
-- if (ro_current_font || zap_redraw)
-- swi(ColourTrans_SetColour, gui.fg_colour, 0, 0, 0, 0);
-- /* Underlined is the same with all plotting methods */
-- swi(OS_Plot, 4, x, y - gui.char_height);
-- swi(OS_Plot, 1, gui.char_width * len, 0);
-- }
-- }
--
-- void
-- gui_mch_draw_string(int row, int col, char_u *s, int len, int flags)
-- {
-- int x, y; /* Workarea x,y */
-- x = col * gui.char_width;
-- y = -row * gui.char_height;
--
-- if (redraw_block)
-- {
-- ro_draw_string(x + redraw_block[1], y + redraw_block[4],
-- s, len, flags, &redraw_block[7]); /* JK230798, added clip window */
-- }
-- else
-- {
-- int block[44];
-- block[0] = gui.window_handle;
-- block[1] = x;
-- block[2] = y - gui.char_height;
-- block[3] = (col + len) * gui.char_width;
-- block[4] = y;
-- swi(Wimp_UpdateWindow, 0, block);
-- while (r0)
-- {
-- ro_draw_string(x + block[1], y + block[4],
-- s, len, flags, &block[7]); /* JK230798, added clip window */
-- swi(Wimp_GetRectangle, 0, block);
-- }
-- }
-- }
--
-- /*
-- * Return OK if the key with the termcap name "name" is supported.
-- */
-- int
-- gui_mch_haskey(char_u *name)
-- {
-- return FAIL;
-- }
--
-- void
-- gui_mch_beep(void)
-- {
-- swi(OS_WriteI + 7);
-- }
--
-- /*
-- * Visual bell.
-- */
-- void
-- gui_mch_flash(int msec)
-- {
-- /* TODO */
-- }
--
--
-- /*
-- * Plot a solid rectangle using the given plot action and colour.
-- * Coordinates are inclusive and window-relative.
-- */
-- void
-- plot_rectangle(plot, colour, minx, miny, maxx, maxy)
-- int plot; /* OS_Plot action */
-- int colour;
-- int minx;
-- int miny;
-- int maxx;
-- int maxy;
-- {
-- if (redraw_block)
-- {
-- swi(ColourTrans_SetColour, colour, 0, 0, 0, 0);
-- swi(OS_Plot, 4, minx + redraw_block[1], miny + redraw_block[4]);
-- swi(OS_Plot, plot, maxx + redraw_block[1], maxy + redraw_block[4]);
-- }
-- else
-- {
-- int block[44];
-- block[0] = gui.window_handle;
-- block[1] = minx;
-- block[2] = miny;
-- block[3] = maxx + 1;
-- block[4] = maxy + 1;
-- swi(Wimp_UpdateWindow, 0, block);
-- while (r0)
-- {
-- swi(ColourTrans_SetColour, colour, 0, 0, 0, 0);
-- swi(OS_Plot, 4, minx + block[1], miny + block[4]);
-- swi(OS_Plot, plot, maxx + block[1], maxy + block[4]);
-- swi(Wimp_GetRectangle, 0, block);
-- }
-- }
-- }
--
-- /*
-- * Invert a rectangle from row r, column c, for nr rows and nc columns.
-- */
-- void
-- gui_mch_invert_rectangle(int r, int c, int nr, int nc)
-- {
-- plot_rectangle(96 + 6, 0, FILL_X(c), -FILL_Y(r + nr), FILL_X(c + nc), -FILL_Y(r));
-- }
--
-- /*
-- * Iconify the GUI window.
-- */
-- void
-- gui_mch_iconify(void)
-- {
-- }
--
-- #if defined(FEAT_EVAL) || defined(PROTO)
-- /*
-- * Bring the Vim window to the foreground.
-- */
-- void
-- gui_mch_set_foreground()
-- {
-- /* TODO */
-- }
-- #endif
--
-- /* Draw a hollow rectangle relative to the current
-- * graphics cursor position, with the given width
-- * and height. Start position is top-left.
-- */
-- void
-- draw_hollow(w, h)
-- int w;
-- int h;
-- {
-- swi(OS_Plot, 1, w - 1, 0);
-- swi(OS_Plot, 1, 0, 1 - h);
-- swi(OS_Plot, 1, 1 - w, 0);
-- swi(OS_Plot, 1, 0, h - 1);
-- }
--
-- /*
-- * Draw a cursor without focus.
-- */
-- void
-- gui_mch_draw_hollow_cursor(guicolor_T colour)
-- {
-- int x = FILL_X(gui.cursor_col); /* Window relative, top-left */
-- int y = -FILL_Y(gui.cursor_row);
-- if (redraw_block == NULL)
-- {
-- int block[11];
--
-- block[0] = gui.window_handle;
-- block[1] = x;
-- block[2] = y - gui.char_height;
-- block[3] = x + gui.char_width;
-- block[4] = y;
-- swi(Wimp_UpdateWindow, 0, block);
-- while (r0)
-- {
-- swi(ColourTrans_SetGCOL, colour << 8, 0, 0, 0, 0);
--
-- swi(OS_Plot, 4, x + block[1], y + block[4] - 1);
-- draw_hollow(gui.char_width, gui.char_height);
--
-- swi(Wimp_GetRectangle, 0, block);
-- }
-- }
-- else
-- {
-- swi(ColourTrans_SetGCOL, colour << 8, 0, 0, 0, 0);
--
-- swi(OS_Plot, 4, x + redraw_block[1], y + redraw_block[4] - 1);
-- draw_hollow(gui.char_width, gui.char_height);
-- }
-- }
--
-- /*
-- * Draw part of a cursor, "w" pixels wide, and "h" pixels high, using
-- * color "color".
-- */
-- void
-- gui_mch_draw_part_cursor(w, h, colour)
-- int w;
-- int h;
-- guicolor_T colour;
-- {
-- int x = FILL_X(gui.cursor_col);
-- int y = -FILL_Y(gui.cursor_row);
-- swi(ColourTrans_ReturnGCOL, colour << 8);
-- plot_rectangle(96 + 5, r0, x, y - h, x + w - 1, y - 1);
-- }
--
-- /*
-- * Catch up with any queued events. This may put keyboard input into the
-- * input buffer, call resize call-backs, trigger timers etc.
-- * If there is nothing in the event queue(& no timers pending), then we return
-- * immediately (well, after a Wimp_Poll).
-- */
-- void
-- gui_mch_update(void)
-- {
-- int block[64];
-- int reason;
--
-- swi(OS_ReadMonotonicTime);
-- if ((r0 - time_of_last_poll) < 50)
-- return; /* Don't return too often */
--
-- reason = wimp_poll(0, block);
-- if (reason)
-- process_event(reason, block);
-- ro_return_early = FALSE; /* We're returning anyway. */
-- }
--
-- void
-- redraw_window(block)
-- int *block;
-- {
-- int x, y; /* Vim workarea coords */
-- int width, height;
-- int blank_col;
--
-- swi(ColourTrans_ReturnGCOL, UNUSED_COLOUR << 8, 0, 0, 1<<7, 0);
-- blank_col = r0;
--
-- swi(Wimp_RedrawWindow, 0, block);
-- redraw_block = block;
-- while (r0)
-- {
-- x = block[7] - block[1];
-- y = block[4] - block[10];
-- width = block[9] - block[7];
-- height = block[10] - block[8];
--
-- if (height + y > Rows * gui.char_height)
-- {
-- /* Blank everything off the bottom. */
-- plot_rectangle(96 + 5, blank_col,
-- 0, block[8] - block[4],
-- block[9] - block[1], -FILL_Y(Rows) - 1);
-- height = Rows * gui.char_height;
-- }
-- if (width + x> Columns * gui.char_width)
-- {
-- /* Blank everything off to the right. */
-- plot_rectangle(96 + 5, blank_col,
-- FILL_X(Columns), block[8] - block[4],
-- block[9] - block[1], 0);
-- width = Columns * gui.char_width;
-- }
-- gui_redraw(x , y, width, height);
-- swi(Wimp_GetRectangle, 0, block);
-- }
-- redraw_block = NULL;
-- }
--
-- /* Check if we have modified data.
-- * If we do then ack the message to stop the shutdown.
-- * Otherwise, ignore the message.
-- */
-- void
-- ro_prequit(block)
-- int *block;
-- {
-- if (!ro_ok_to_quit())
-- {
-- /* Not OK to quit - stop shutdown */
-- block[3] = block[2];
-- swi(Wimp_SendMessage, 19, block, block[1]);
-- }
-- /* Do nothing. We may get a Message_Quit later. */
-- }
--
-- /* If there is unsaved data then ask the user if they mind losing it.
-- * Return TRUE if we can quit without saving, FALSE to halt the
-- * shutdown.
-- */
-- int
-- ro_ok_to_quit()
-- {
-- int old_confirm = cmdmod.confirm;
--
-- cmdmod.confirm = FALSE; /* Use our own, single tasking, box */
--
-- if (check_changed_any(FALSE))
-- {
-- swi(Wimp_ReportError,
-- "\0\0\0\0Vim contains unsaved data - quit anyway?",
-- 0x17,
-- "Vim");
-- cmdmod.confirm = old_confirm;
-- if (r1 != 1)
-- return FALSE;
-- }
-- cmdmod.confirm = old_confirm;
-- return TRUE;
-- }
--
-- /* Quit without checking for unsaved data. */
-- void
-- ro_quit()
-- {
-- exiting = TRUE;
-- getout(0);
--
-- exiting = FALSE; /* probably can't get here */
-- setcursor(); /* position cursor */
-- out_flush();
-- }
--
-- /* Insent the given vim special code into the input buffer */
-- void
-- ro_press(a, b, modifier)
-- char a;
-- char b;
-- int modifier; /* %<Ctrl><Shift> 0000 0000 */
-- {
-- char_u buf[6];
-- int vim_mod;
-- int key;
--
--
-- /* Convert RISC OS modifier to Vim modifier. */
-- vim_mod = ((modifier & 0x10) ? MOD_MASK_SHIFT : 0)
-- | ((modifier & 0x20) ? MOD_MASK_CTRL : 0);
-- key = simplify_key(TERMCAP2KEY(a, b), &vim_mod);
--
-- buf[3] = CSI;
-- buf[4] = KEY2TERMCAP0(key);
-- buf[5] = KEY2TERMCAP1(key);
-- if (vim_mod)
-- {
-- buf[0] = CSI;
-- buf[1] = KS_MODIFIER;
-- buf[2] = vim_mod;
-- add_to_input_buf(buf, 6);
-- }
-- else
-- add_to_input_buf(buf + 3, 3);
-- }
--
-- /* Take a wimp key code and insert the vim equivalent
-- * into vim's input buffer.
-- * CTRL-C also sets got_int.
-- */
-- void
-- ro_insert_key(code)
-- char_u *code; /* Wimp_ProcessKey code (4 bytes) */
-- {
-- char a = code[0];
-- char b = code[1];
-- int base, modifier;
--
-- if (a == 3 && ctrl_c_interrupts)
-- got_int = TRUE;
--
-- /* Is it a normal key? */
-- if (a > 31 && a < 127)
-- {
-- add_to_input_buf(code, 1);
-- return;
-- }
--
-- /* We should pass any unrecognised keys on, but
-- * for now just pass on F12 combinations.
-- */
-- switch (b)
-- {
-- case 0:
-- /* Home and Delete are the only special cases */
-- switch (a)
-- {
-- case 0x1e:
-- ro_press('k','h', 0); /* Home */
-- return;
-- case 0x7f:
-- ro_press('k','D', 0); /* Delete */
-- return;
-- case CSI:
-- {
-- /* Turn CSI into K_CSI. Untested! */
-- char_u string[3] = {CSI, KS_EXTRA, KE_CSI};
--
-- add_to_input_buf(string, 3);
-- return;
-- }
-- default:
-- add_to_input_buf(code, 1);
-- return;
-- }
-- case 1:
-- if ((a & 0xcf) == 0xcc)
-- {
-- /* F12 pressed - pass it on (quick hack) */
-- swi(Wimp_ProcessKey, a | 0x100);
-- return;
-- }
-- base = a & 0xcf;
-- modifier = a & 0x30;
-- switch (base)
-- {
-- case 0x8a: /* Tab */
-- add_to_input_buf("\011", 1);
-- return;
-- case 0x8b: /* Copy (End) */
-- return ro_press('@', '7', modifier);
-- case 0x8c: /* Left */
-- return ro_press('k', 'l', modifier);
-- case 0x8d: /* Right */
-- return ro_press('k', 'r', modifier);
-- case 0x8e: /* Down */
-- if (modifier & 0x10)
-- return ro_press('k', 'N', modifier ^ 0x10);
-- else
-- return ro_press('k', 'd', modifier);
-- case 0x8f: /* Up */
-- if (modifier & 0x10)
-- return ro_press('k', 'P', modifier ^ 0x10);
-- else
-- return ro_press('k', 'u', modifier);
-- case 0xca: /* F10 */
-- return ro_press('k', ';', modifier);
-- case 0xcb: /* F11 */
-- return ro_press('F', '1', modifier);
-- case 0xcd: /* Insert */
-- return ro_press('k', 'I', modifier);
-- default:
-- if (base > 0x80 && base < 0x18a)
-- {
-- /* One of the other function keys */
-- return ro_press('k', '0' + (base & 15), modifier);
-- }
-- }
-- }
-- }
--
-- /* Process a mouse event. */
-- void
-- ro_mouse(block)
-- int *block;
-- {
-- int x, y, button, vim_button;
-- int modifiers = 0;
-- int min_x, min_y; /* Visible area of editor window */
-- int max_x, max_y;
--
-- if (block[3] != gui.window_handle || ro_dragging)
-- return; /* Not our window or ignoring clicks*/
--
-- x = block[0]; /* Click position - screen coords */
-- y = block[1];
-- button = block[2];
--
-- block[0] = gui.window_handle;
-- swi(Wimp_GetWindowState, 0, block);
-- min_x = block[1];
-- min_y = block[2];
-- max_x = block[3];
-- max_y = block[4];
--
-- if (block[3] - x < gui.scrollbar_width)
-- {
-- /* Click in that blank area under the scrollbars */
--
-- if (button & 0x444)
-- {
-- int front_block[64];
-- /* Dragging with Select - bring window to front first */
-- front_block[0] = gui.window_handle;
-- swi(Wimp_GetWindowState, 0, front_block);
-- front_block[7] = -1;
-- ro_open_main(front_block);
-- }
--
-- block[0] = gui.window_handle;
-- block[1] = 7; /* Drag point */
-- block[2] = block[4] = 0; /* Coords of point. */
-- block[3] = block[5] = 0;
-- drag_x_offset = max_x - x;
-- drag_y_offset = min_y - y;
--
-- /* Parent box. */
-- block[6] = min_x +
-- gui.scrollbar_width * 2 +
-- MIN_COLUMNS * gui.char_width;
-- block[7] = 0;
-- gui_mch_get_screen_dimensions(&block[8], &block[9]);
-- block[9] = max_y -
-- 4 * gui.char_height -
-- gui.scrollbar_height;
--
-- swi(Wimp_DragBox, 0, block);
-- ro_dragging = DRAG_RESIZE_WINDOW;
-- drag_button = vim_button;
-- drag_modifiers = modifiers;
-- return;
-- }
--
-- if (button & 0x111)
-- vim_button = MOUSE_RIGHT;
-- else if (button & 0x222)
-- vim_button = MOUSE_MIDDLE;
-- else
-- vim_button = MOUSE_LEFT;
--
-- swi(OS_Byte, 121, 0x80);
-- if (r1 == 0xff)
-- modifiers |= MOUSE_SHIFT;
-- swi(OS_Byte, 121, 0x81);
-- if (r1 == 0xff)
-- modifiers |= MOUSE_CTRL;
-- swi(OS_Byte, 121, 0x82);
-- if (r1 == 0xff)
-- modifiers |= MOUSE_ALT;
--
-- if (button == 2)
-- {
-- /* Menu click:
-- * If shift was pressed then do the paste action.
-- * If not, then open the pop-up menu.
-- */
-- modifiers ^= MOUSE_SHIFT;
-- if (modifiers && MOUSE_SHIFT)
-- {
-- vimmenu_T main;
-- /* Shift was NOT pressed - show menu */
-- main.dname = (char_u *) "Vim";
-- main.children = root_menu;
-- gui_mch_show_popupmenu(&main);
-- return;
-- }
-- }
--
-- /* Gain the input focus */
-- swi(Wimp_SetCaretPosition, gui.window_handle, -1, 0, 0, -1, -1);
--
-- if (button & 0xf0)
-- {
-- /* Drag operation:
-- *
-- * Tell the Wimp to start a drag.
-- * Monitor null events.
-- */
-- block[1] = 7; /* Drag a point. */
-- block[2] = block[4] = x; /* Coords of point. */
-- block[3] = block[5] = y;
-- block[6] = 0; /* Coords of bounding box. */
-- block[7] = 0;
-- gui_mch_get_screen_dimensions(&block[8], &block[9]);
--
-- drag_x_offset = drag_y_offset = 0;
--
-- swi(Wimp_DragBox, 0, block);
-- ro_dragging = DRAG_SELECTION;
-- drag_button = vim_button;
-- drag_modifiers = modifiers;
--
-- vim_button |= MOUSE_DRAG;
-- }
--
-- gui_send_mouse_event(
-- vim_button,
-- x - min_x,
-- max_y - y,
-- button & 0xf ? TRUE : FALSE, /* dclick */
-- modifiers);
-- }
--
-- void
-- ro_continue_drag(block)
-- int *block; /* Just used as scrap. */
-- {
-- int x, y;
--
-- /* Get screen coords of pointer. */
-- swi(Wimp_GetPointerInfo, 0, block);
-- x = block[0] + drag_x_offset;
-- y = block[1] + drag_y_offset;
--
-- block[0] = gui.window_handle;
-- swi(Wimp_GetWindowState, 0, block);
--
-- if (ro_dragging == DRAG_RESIZE_WINDOW)
-- {
-- /* Resizing the main window. */
-- block[2] = y;
-- block[3] = x;
-- ro_open_main(block);
-- }
-- else
-- {
-- /* Selecting some text. */
-- gui_send_mouse_event(
-- drag_button | MOUSE_DRAG, /* Always report the same button */
-- x - block[1],
-- block[4] - y,
-- FALSE, /* Not a double click. */
-- drag_modifiers);
-- }
-- }
--
-- /* User has released all mouse buttons, marking the end of a drag. */
-- void
-- ro_drag_finished(block)
-- int *block;
-- {
-- int x;
-- int y;
-- int width, height;
--
-- /* I don't trust the box returned by Wimp_Poll; look at the pointer
-- * ourselves.
-- */
-- swi(Wimp_GetPointerInfo, 0, block);
-- x = block[0] + drag_x_offset;
-- y = block[1] + drag_y_offset;
--
-- if (ro_dragging == DRAG_RESIZE_WINDOW)
-- {
-- block[0] = gui.window_handle;
-- swi(Wimp_GetWindowState, 0, block);
-- block[2] = y;
-- block[3] = x;
-- ro_open_main(block);
--
-- width = (block[3] - block[1]);
-- height = (block[4] - block[2]);
--
-- swi(Wimp_ForceRedraw, gui.window_handle, 0, -height, width, 0);
-- gui_resize_shell(width, height);
-- }
-- else
-- {
-- block[0] = gui.window_handle;
-- swi(Wimp_GetWindowState, 0, block);
-- gui_send_mouse_event(
-- MOUSE_RELEASE,
-- x - block[1],
-- block[4] - y,
-- FALSE, /* not a double click */
-- drag_modifiers);
-- }
-- ro_dragging = DRAG_FALSE;
-- }
--
-- /* Load the file/pathname given in block into a [new] buffer.
-- *
-- * Modifier Action
-- *
-- * None :confirm e <file>
-- * Ctrl :sp <file>
-- * Shift <file>
-- *
-- * Insert into typebuf, at the start.
-- * If loading from !Scrap then use saved leafname instead, and
-- * delete the scrap file. Also, ignore shift key.
-- *
-- * NB: Doesn't send DataLoadAck (other app might delete temp file?).
-- */
-- void
-- ro_dataload(block)
-- int *block;
-- {
-- char_u new_path[MAXPATHL];
-- char_u *path = ((char_u *) block) + 44;
-- int scrap = FALSE;
--
-- if (block[3] == leaf_ref && leaf_name)
-- scrap = TRUE;
--
-- switch (get_real_state() & 0xff)
-- {
-- case INSERT:
-- case CMDLINE:
-- case CMDLINE+LANGMAP:
-- /* For insert mode we can only insert the pathname (currently)
-- * Make sure Shift is pressed.
-- */
-- swi(OS_Byte, 121, 0x80); /* Is Shift pressed? */
-- if (r1 == 0xff)
-- {
-- ins_typebuf(" ", REMAP_NONE, 0, TRUE, FALSE);
-- ins_typebuf(path, REMAP_NONE, 0, TRUE, FALSE);
-- ro_return_early = TRUE; /* Return even though nothing was typed. */
-- }
-- else
-- swi(Wimp_ReportError,
-- "\0\0\0\0Sorry, you can only load text in normal mode", 5, "Vim");
-- break;
--
-- case NORMAL:
-- ro_return_early = TRUE; /* Return even though nothing was typed. */
--
-- if (scrap) /* Remove <Wimp$Scrap>. Later. */
-- ins_typebuf(":!~remove <Wimp$Scrap>\r", REMAP_NONE, 0, TRUE, FALSE);
--
-- /* Insert {:sp ,:confirm e }[+f\ <leaf> ]<file><CR> */
-- ins_typebuf("\r", REMAP_NONE, 0, TRUE, FALSE);
-- ins_typebuf(path, REMAP_NONE, 0, TRUE, FALSE);
-- ins_typebuf(" ", REMAP_NONE, 0, TRUE, FALSE);
--
-- if (scrap)
-- {
-- /* Loading via !Scrap - change pathname to stored leafname */
-- ins_typebuf(leaf_name, REMAP_NONE, 0, TRUE, FALSE);
-- ins_typebuf(" +f\\ ", REMAP_NONE, 0, TRUE, FALSE);
-- leaf_ref = 0;
-- vim_free(leaf_name);
-- leaf_name = NULL;
-- }
--
-- swi(OS_Byte, 121, 0x81); /* Is Ctrl pressed? */
-- if (r1 == 0xff)
-- /* Yes, split window */
-- ins_typebuf(":sp", REMAP_NONE, 0, TRUE, FALSE);
-- else
-- ins_typebuf(":confirm e", REMAP_NONE, 0, TRUE, FALSE);
-- break;
--
-- default:
-- swi(Wimp_ReportError, "\0\0\0\0You can only load text in normal mode.", 5, "Vim");
-- }
-- /* Send DataSaveAck so other program doesn't think we died
-- * and delete <Wimp$Scrap>.
-- */
-- block[3] = block[2];
-- block[4] = 4;
-- swi(Wimp_SendMessage, 17, block, block[1]);
-- }
--
-- void
-- ro_datasave(block)
-- int *block;
-- {
-- char_u *path = ((char_u *) block) + 44;
--
-- /* Preserve the name given so we can use it, not <Wimp$Scrap> */
-- if (leaf_name)
-- vim_free(leaf_name);
-- leaf_name = vim_strsave(path);
--
-- block[9] = -1; /* File is unsafe. */
-- strcpy(path, "<Wimp$Scrap>");
-- block[0] = 60;
-- block[3] = block[2];
-- block[4] = 2;
-- swi(Wimp_SendMessage, 17, block, block[1]);
--
-- leaf_ref = block[2];
-- }
--
-- void
-- ro_message(block)
-- int *block;
-- {
-- char_u *buffer;
-- long_u len;
--
-- if (block[1] == task_handle)
-- return; /* Don't talk to ourself! */
-- switch (block[4])
-- {
-- case 0: /* Quit. */
-- if (block[4] == 0)
-- ro_quit();
-- break;
-- case 1: /* DataSave */
-- ro_datasave(block);
-- break;
-- case 2: /* DataSaveAck. */
-- if (clip_convert_selection(&buffer, &len, &clip_star) == -1)
-- return;
--
-- /* Save the clipboard contents to a file. */
-- swi(OS_File, 10, ((char_u *) block) + 44, 0xfff, 0, buffer, buffer + len);
--
-- /* Ack with DataLoad message. */
-- block[3] = block[2];
-- block[4] = 3;
-- block[9] = len;
-- swi(Wimp_SendMessage, 17, block, block[1]);
--
-- vim_free(buffer);
-- break;
-- case 3: /* DataLoad */
-- ro_dataload(block);
-- break;
-- case 8: /* PreQuit */
-- ro_prequit(block);
-- break;
-- case 0xf: /* Lose clipboard. */
-- if (block[5] & 4)
-- {
-- clip_free_selection(&clip_star);
-- clip_star.owned = FALSE;
-- }
-- break;
-- case 0x10: /* DataRequest (clip_star) */
-- if (clip_star.owned)
-- {
-- int rows;
--
-- /* Tell other program that we have the clipboard. */
-- block[0] = 52;
-- block[3] = block[2]; /* Copy myref to yourref. */
-- block[4] = 1; /* DataSave message. */
-- /* Create an estimate for the size (larger or same as true
-- * value) */
-- rows = clip_star.end.lnum - clip_star.start.lnum;
-- if (rows < 0)
-- rows = -rows;
-- block[9] = (rows + 1) * Columns + 1; /* Add one for possible
-- final newline. */
-- block[10] = 0xfff; /* Clipboard is text. */
-- strcpy( ((char_u *) block) + 44, "VimClip");
-- swi(Wimp_SendMessage, 17, block, block[1]);
-- }
-- break;
-- case 0x400c1: /* Mode change */
-- changed_mode = TRUE; /* Flag - update on next OpenWindow */
-- if (zap_redraw)
-- {
-- /* JK230798, re-initialise ZapRedraw stuff */
-- if (ro_zap_redraw_initialise() == FAIL)
-- zap_redraw = FALSE;
-- }
-- break;
-- case 0x400c3: /* TaskCloseDown */
-- if (block[1] == child_handle)
-- child_handle = 0;
-- break;
-- }
-- }
--
-- /*
-- * Converts a scrollbar's window handle into a scrollbar pointer.
-- * NULL on failure.
-- */
-- scrollbar_T *
-- ro_find_sbar(id)
-- int id;
-- {
-- win_T *wp;
--
-- if (gui.bottom_sbar.id == id)
-- return &gui.bottom_sbar;
-- FOR_ALL_WINDOWS(wp)
-- {
-- if (wp->w_scrollbars[SBAR_LEFT].id == id)
-- return &wp->w_scrollbars[SBAR_LEFT];
-- if (wp->w_scrollbars[SBAR_RIGHT].id == id)
-- return &wp->w_scrollbars[SBAR_RIGHT];
-- }
-- return NULL;
-- }
--
-- void
-- scroll_to(line, sb)
-- int sb; /* Scrollbar number */
-- int line;
-- {
-- char_u code[8];
--
-- /* Don't put events in the input queue now. */
-- if (hold_gui_events)
-- return;
--
-- /* Send a scroll event:
-- *
-- * A scrollbar event is CSI (NOT K_SPECIAL), KS_VER_SCROLLBAR,
-- * KE_FILLER followed by:
-- * one byte representing the scrollbar number, and then four bytes
-- * representing a long_u which is the new value of the scrollbar.
-- */
-- code[0] = CSI;
-- code[1] = KS_VER_SCROLLBAR;
-- code[2] = KE_FILLER;
-- code[3] = sb;
-- code[4] = line >> 24;
-- code[5] = line >> 16;
-- code[6] = line >> 8;
-- code[7] = line;
-- add_to_input_buf(code, 8);
-- }
--
-- void
-- h_scroll_to(col)
-- int col;
-- {
-- char_u code[8];
--
-- /* Don't put events in the input queue now. */
-- if (hold_gui_events)
-- return;
--
-- /* Send a scroll event:
-- *
-- * A scrollbar event is CSI (NOT K_SPECIAL)
-- *
-- * A horizontal scrollbar event is K_SPECIAL, KS_HOR_SCROLLBAR,
-- * KE_FILLER followed by four bytes representing a long_u which is the
-- * new value of the scrollbar.
-- */
-- code[0] = CSI;
-- code[1] = KS_HOR_SCROLLBAR;
-- code[2] = KE_FILLER;
-- code[4] = col >> 24;
-- code[5] = col >> 16;
-- code[6] = col >> 8;
-- code[7] = col;
-- add_to_input_buf(code, 8);
-- }
--
-- void
-- ro_scroll(block)
-- int *block;
-- {
-- scrollbar_T *sb;
-- int offset;
-- win_T *wp;
--
-- /* Block is ready for Wimp_OpenWindow, and also contains:
-- *
-- * +32 = scroll X direction (-2 .. +2)
-- * +36 = scroll Y direction (-2 .. +2)
-- */
--
-- sb = ro_find_sbar(block[0]);
-- if (!sb)
-- return; /* Window not found (error). */
--
-- wp = sb-> wp;
--
-- if (wp == NULL)
-- {
-- /* Horizontal bar. */
-- offset = block[8];
-- if (offset == -2)
-- offset = (block[1] - block[3]) / gui.char_width;
-- else if (offset == 2)
-- offset = (block[3] - block[1]) / gui.char_width;
--
-- block[5] += offset * gui.char_width;
--
-- gui_drag_scrollbar(sb, block[5] / gui.char_width, FALSE);
--
-- swi(Wimp_OpenWindow, 0, block);
-- }
-- else
-- {
-- offset = -block[9];
-- if (offset == -2)
-- offset = -(wp -> w_height - 1);
-- else if (offset == 2)
-- offset = wp -> w_height - 1;
--
-- /* Possibly we should reposition the scrollbar?
-- * Vim seems to update the bar anyway...
-- */
-- gui_drag_scrollbar(sb, offset - (block[6] / gui.char_height), FALSE);
-- }
-- }
--
-- /* Move a window by a given offset. Used to simulate the function of the
-- * nested wimp.
-- */
-- void
-- ro_move_child(window, x, y, pos_wanted, pos_got)
-- int window;
-- int x,y; /* offset to move by */
-- int pos_wanted, pos_got;
-- {
-- int block[10];
--
-- block[0] = window;
-- swi(Wimp_GetWindowState, 0, block);
-- block[1] += x;
-- block[2] += y;
-- block[3] += x;
-- block[4] += y;
-- if (pos_wanted == -1)
-- block[7] = -1;
-- else if (pos_wanted == -2)
-- block[7] = pos_got;
-- swi(Wimp_OpenWindow, 0, block);
-- }
--
-- /* Open the main window. Also updates scrollbars if we are not
-- * using the nested Wimp.
-- * If we have just changed mode then re-read all values.
-- */
-- void
-- ro_open_main(block)
-- int *block;
-- {
-- int toggle_size;
--
-- /* Find out if the user clicked on the toggle size icon. */
-- block[20] = block[0];
-- swi(Wimp_GetWindowState, 0, block + 20);
-- toggle_size = block[28] & (1 << 19);
--
-- if (nested_wimp)
-- {
-- swi(Wimp_OpenWindow, 0, block);
-- }
-- else
-- {
-- int old[10];
-- int x_offset, y_offset; /* Move children same as parent. */
-- int pos_wanted, pos_got;
-- int left_bar = gui.which_scrollbars[SBAR_LEFT];
-- int right_bar = gui.which_scrollbars[SBAR_RIGHT];
-- win_T *wp;
--
-- /* Three cases to think about:
-- * 1) Move to top. Open each window at the top.
-- * 2) Same stack position. Open each with same position.
-- * 3) Open at bottom. Open children with parent's new position.
-- */
--
-- old[0] = block[0];
-- swi(Wimp_GetWindowState, 0, old);
-- pos_wanted = block[7];
-- swi(Wimp_OpenWindow, 0, block);
-- /* Block updated by OpenWindow? I don't think so! */
-- swi(Wimp_GetWindowState, 0, block);
-- pos_got = block[7];
--
-- x_offset = block[1] - old[1];
-- y_offset = block[4] - old[4];
-- if (x_offset || y_offset || pos_wanted == -1 || pos_wanted == -2)
-- {
-- /* If parent has moved, re-open all the child windows. */
-- FOR_ALL_WINDOWS(wp)
-- {
-- /* Reopen scrollbars for this window. */
-- if (left_bar)
-- ro_move_child(wp -> w_scrollbars[SBAR_LEFT].id,
-- x_offset, y_offset,
-- pos_wanted, pos_got);
-- if (right_bar)
-- ro_move_child(wp -> w_scrollbars[SBAR_RIGHT].id,
-- x_offset, y_offset,
-- pos_wanted, pos_got);
-- }
-- }
-- }
-- if (changed_mode || toggle_size)
-- {
-- int width, height;
--
-- if (changed_mode)
-- ro_measure_tools();
-- block[0] = gui.window_handle;
-- swi(Wimp_GetWindowState, 0, block);
--
-- width = block[3] - block[1];
-- height = block[4] - block[2];
-- swi(Wimp_ForceRedraw, gui.window_handle, 0, -height, width, 0);
-- gui_resize_shell(width, height);
-- changed_mode = FALSE;
-- }
-- }
--
-- void
-- ro_open_window(block)
-- int *block;
-- {
-- int pos;
-- scrollbar_T *sb;
--
-- if (block[0] == gui.window_handle)
-- ro_open_main(block);
-- else
-- {
-- swi(Wimp_OpenWindow, 0, block);
-- if (block[0] != gui.window_handle)
-- {
-- sb = ro_find_sbar(block[0]);
-- if (sb)
-- {
-- if (sb-> wp != NULL)
-- gui_drag_scrollbar(sb, -block[6] / gui.char_height, FALSE);
-- else
-- gui_drag_scrollbar(sb, block[5] / gui.char_width, FALSE);
-- }
-- }
-- }
-- }
--
-- void
-- ro_menu_selection(block)
-- int *block;
-- {
-- int *item = wimp_menu + 7;
-- vimmenu_T *menu;
-- /* wimp_menu points to a wimp menu structure */
--
-- for (;;)
-- {
-- while (block[0]--)
-- item += 6;
-- if (block[1] == -1)
-- break;
-- item = ((int *) item[1]) + 7;
-- block++;
-- }
-- /* item points to the wimp menu item structure chosen */
-- menu = (vimmenu_T *) item[5];
--
-- swi(Wimp_GetPointerInfo, 0, block);
-- if (block[2] == 1)
-- /* Adjust used - keep menu open */
-- swi(Wimp_CreateMenu, 0, wimp_menu);
--
-- if (menu-> cb)
-- menu-> cb(menu);
-- }
--
-- void
-- ro_open_parent()
-- {
-- int head;
-- char_u *i = curbuf-> b_ffname;
-- char_u buffer[256];
--
-- head = 0;
-- for (; *i; i++)
-- {
-- if (*i == '.')
-- head = i - curbuf-> b_ffname;
-- }
--
-- /* Append head chars to buffer */
-- if (head < 240 && curbuf-> b_ffname && head)
-- {
-- strcpy(buffer, "%filer_opendir ");
-- strncpy(buffer + 15, curbuf-> b_ffname, head);
-- buffer[15 + head] = '\0';
-- swi(OS_CLI, buffer);
-- }
-- }
--
-- void
-- process_event(event, block)
-- int event;
-- int *block;
-- {
-- switch (event)
-- {
-- case 0: /* Nothing - update drag state. */
-- if (ro_dragging)
-- ro_continue_drag(block);
-- break;
-- case 1: /* Redraw window. */
-- redraw_window(block);
-- break;
-- case 2: /* Open window. */
-- ro_open_window(block);
-- break;
-- case 3: /* Close window. */
-- swi(Wimp_GetPointerInfo, 0, block + 1);
-- if (block[3] == 1)
-- ro_open_parent();
-- else
-- if (ro_ok_to_quit())
-- ro_quit();
-- break;
-- case 6: /* Mouse click. */
-- ro_mouse(block);
-- break;
-- case 7: /* Finished drag. */
-- ro_drag_finished(block);
-- break;
-- case 8: /* Key pressed. */
-- ro_insert_key((char_u *) &block[6]);
-- break;
-- case 9:
-- ro_menu_selection(block);
-- break;
-- case 10: /* Scroll request. */
-- ro_scroll(block);
-- break;
-- case 11: /* Lose caret. */
-- if (block[0] == gui.window_handle)
-- gui_focus_change(FALSE);
-- break;
-- case 12: /* Gain caret. */
-- if (block[0] == gui.window_handle)
-- gui_focus_change(TRUE);
-- break;
-- case 17: /* User message. */
-- case 18: /* User message recorded. */
-- ro_message(block);
-- break;
-- }
-- }
--
-- /*
-- * GUI input routine called by gui_wait_for_chars(). Waits for a character
-- * from the keyboard.
-- * wtime == -1 Wait forever.
-- * wtime == 0 This should never happen.
-- * wtime > 0 Wait wtime milliseconds for a character.
-- * Returns OK if a character was found to be available within the given time,
-- * or FAIL otherwise.
-- */
-- int
-- gui_mch_wait_for_chars(long wtime)
-- {
-- int block[64];
-- int reason;
-- int start_time = -1;
-- int ctime = wtime / 10; /* delay in cs */
--
-- if (wtime != -1)
-- {
-- swi(OS_ReadMonotonicTime);
-- start_time = r0;
-- }
--
-- for (;;)
-- {
-- if (ro_dragging)
-- reason = wimp_poll(0, block); /* Always return immediately */
-- else if (wtime == -1)
-- reason = wimp_poll(1, block);
-- else
-- reason = wimp_pollidle(0, block, start_time + ctime);
--
-- process_event(reason, block);
--
-- if (input_available() || ro_return_early)
-- {
-- ro_return_early = FALSE;
-- return OK; /* There is something to process (key / menu event) */
-- }
--
-- if (wtime != -1)
-- {
-- swi(OS_ReadMonotonicTime);
-- if (r0 - start_time > ctime)
-- return FAIL; /* We've been waiting too long - return failure */
-- }
-- }
-- }
--
-- /* Flush any output to the screen */
-- void
-- gui_mch_flush(void)
-- {
-- }
--
-- /*
-- * Clear a rectangular region of the screen from text pos(row1, col1) to
-- * (row2, col2) inclusive.
-- */
-- void
-- gui_mch_clear_block(int row1, int col1, int row2, int col2)
-- {
-- swi(ColourTrans_ReturnGCOL, gui.back_pixel << 8, 0, 0, 1<<7, 0);
-- plot_rectangle(96 + 5, r0,
-- FILL_X(col1), -FILL_Y(row2 + 1),
-- FILL_X(col2 + 1), -FILL_Y(row1));
-- }
--
-- void
-- gui_mch_clear_all(void)
-- {
-- if (redraw_block)
-- {
-- swi(ColourTrans_SetGCOL, gui.back_pixel << 8, 0, 0, 1<<7, 0);
-- swi(OS_WriteI + 16);
-- }
-- else
-- {
-- int block[44];
-- block[0] = gui.window_handle;
-- block[1] = 0;
-- block[2] = -gui.num_rows * gui.char_height;
-- block[3] = gui.num_cols * gui.char_width;
-- block[4] = 0;
-- swi(Wimp_UpdateWindow, 0, block);
-- while (r0)
-- {
-- swi(ColourTrans_SetGCOL, gui.back_pixel << 8, 0, 0, 1<<7, 0);
-- swi(OS_WriteI + 16);
-- swi(Wimp_GetRectangle, 0, block);
-- }
-- }
-- }
--
-- /*
-- * Delete the given number of lines from the given row, scrolling up any
-- * text further down within the scroll region.
-- */
-- void
-- gui_mch_delete_lines(int row, int num_lines)
-- {
-- int top_from = -row - num_lines;
-- int bot_from = -gui.scroll_region_bot - 1;
-- int bot_to = bot_from + num_lines;
--
-- swi(ColourTrans_SetGCOL, gui.back_pixel << 8, 0, 0, 0x80, 0);
--
-- /* Changed without checking! */
-- swi(Wimp_BlockCopy, gui.window_handle,
-- gui.scroll_region_left * gui.char_width,
-- bot_from * gui.char_height,
-- (gui.scroll_region_right - gui.scroll_region_left
-- + 1) * gui.char_width,
-- top_from * gui.char_height,
--
-- gui.scroll_region_left * gui.char_width,
-- bot_to * gui.char_height);
--
-- gui_clear_block(gui.scroll_region_bot - num_lines + 1,
-- gui.scroll_region_left,
-- gui.scroll_region_bot, gui.scroll_region_right);
-- }
--
-- /*
-- * Insert the given number of lines before the given row, scrolling down any
-- * following text within the scroll region.
-- */
-- void
-- gui_mch_insert_lines(int row, int num_lines)
-- {
-- int top_from = -row;
-- int bot_to = -gui.scroll_region_bot - 1;
-- int bot_from = bot_to + num_lines;
--
-- swi(ColourTrans_SetGCOL, gui.back_pixel << 8, 0, 0, 0x80, 0);
--
-- swi(Wimp_BlockCopy, gui.window_handle,
-- gui.scroll_region_left * gui.char_width,
-- bot_from * gui.char_height,
-- (gui.scroll_region_right - gui.scroll_region_left
-- + 1) * gui.char_width,
-- top_from * gui.char_height,
--
-- gui.scroll_region_left * gui.char_width,
-- bot_to * gui.char_height);
--
-- gui_clear_block(row, gui.scroll_region_left,
-- row + num_lines - 1, gui.scroll_region_right);
-- }
--
-- /* Put selection in clipboard buffer.
-- * Should we become the new owner?
-- */
-- void
-- clip_mch_request_selection(VimClipboard *cbd)
-- {
-- int block[64]; /* Will be used in Wimp_Poll. */
-- int reason;
-- char_u *buffer;
-- long_u length;
--
-- block[0] = 48; /* Size of block. */
-- block[3] = 0; /* Original message. */
-- block[4] = 0x10; /* Data request. */
-- block[5] = gui.window_handle;
-- block[6] = RO_LOAD_CLIPBOARD; /* Internal handle. */
-- block[7] = block[8] = 0; /* (x,y) not used. */
-- block[9] = 4;
-- block[10] = 0xfff; /* We want text files if possible, I think. */
-- block[11] = -1; /* End of list. */
-- swi(Wimp_SendMessage, 17, block, 0); /* Broadcast request. */
--
-- /* OK, we've sent the request. Poll until we get a null poll (failure) or
-- * we load the clipboard.
-- * If we receive a DataSave event with icon handle = -2 then put it on the
-- * clipboard. RISC OS should ensure that key events will not be delivered
-- * until the clipboard operation completes (unless the owner starts idling
-- * - we can't wait forever!).
-- */
-- for (;;)
-- {
-- reason = wimp_poll(0, block);
-- if (reason == 0)
-- return; /* Failed to get clipboard. */
-- if ((reason == 17 || reason == 18) &&
-- block[4] == 1 && block[6] == RO_LOAD_CLIPBOARD)
-- break; /* Got it - stop waiting. */
-- process_event(reason, block);
-- if (ro_return_early)
-- return;
-- }
-- /* Tell owner to save data in <Wimp$Scrap>. */
-- block[0] = 60;
-- block[3] = block[2]; /* Copy myref -> yourref */
-- block[4] = 2; /* DataSaveAck. */
-- block[9] = -1; /* Data is unsafe. */
-- strcpy( ((char_u *) block) + 44, "<Wimp$Scrap>");
-- swi(Wimp_SendMessage, 17, block, block[1]);
--
-- /* Wait again for reply. */
-- for (;;)
-- {
-- reason = wimp_poll(0, block);
-- if (reason == 0)
-- return; /* Other program has given up! */
-- if ((reason == 17 || reason == 18) && block[4] == 3 && block[6] == RO_LOAD_CLIPBOARD)
-- break; /* Clipboard data saved to <Wimp$Scrap> */
-- process_event(reason, block);
-- if (ro_return_early)
-- return;
-- }
--
-- /* <Wimp$Scrap> contains clipboard - load it. */
-- if (xswi(OS_File, 17, "<Wimp$Scrap>") & v_flag)
-- return; /* Error! */
-- if (r0 != 1 && r0 != 3)
-- return;
-- length = r4;
--
-- buffer = lalloc(length, TRUE); /* Claim memory (and report errors). */
-- if (buffer == NULL)
-- return;
--
-- if (xswi(OS_File, 16, "<Wimp$Scrap>", buffer, 0) & v_flag)
-- return;
--
-- clip_yank_selection(MCHAR, buffer, length, cbd);
--
-- vim_free(buffer);
--
-- swi(OS_FSControl, 27, "<Wimp$Scrap>", 0, 0); /* Delete temp file. */
--
-- block[4] = 4; /* Send DataLoadAck. */
-- block[3] = block[2]; /* Copy myref -> yourref. */
-- swi(Wimp_SendMessage, 17, block, block[1]);
-- }
--
-- /* Not sure what this means under RISC OS. */
-- void
-- clip_mch_lose_selection(VimClipboard *cbd)
-- {
-- }
--
-- /* Tell everyone that we now own the clipboard.
-- * Return OK if our claim is accepted (always, under RISC OS)
-- */
-- int
-- clip_mch_own_selection(VimClipboard *cbd)
-- {
-- int block[6];
-- block[0] = 24; /* Length of block. */
-- block[3] = 0; /* Original message. */
-- block[4] = 0xf; /* ClaimEntity. */
-- block[5] = 0x4; /* Claim clipboard only. */
-- swi(Wimp_SendMessage, 17, block, 0);
-- return OK;
-- }
--
-- /*
-- * Send the current selection to the clipboard. Do nothing for X because we
-- * will fill in the selection only when requested by another app. Sounds good
-- * for RISC OS too.
-- */
-- void
-- clip_mch_set_selection(VimClipboard *cbd)
-- {
-- clip_get_selection(cbd);
-- }
--
-- /*
-- * Make a menu either grey or not grey.
-- */
-- void
-- gui_mch_menu_grey(vimmenu_T *menu, int grey)
-- {
-- menu-> greyed_out = grey;
-- }
--
-- /*
-- * Make menu item hidden or not hidden
-- */
-- void
-- gui_mch_menu_hidden(vimmenu_T *menu, int hidden)
-- {
-- menu-> hidden = hidden;
-- }
--
-- /*
-- * This is called after setting all the menus to grey/hidden or not.
-- */
-- void
-- gui_mch_draw_menubar(void)
-- {
-- swi(Wimp_CreateMenu, 0, -1);
-- if (wimp_menu != (int *) -1)
-- {
-- ro_remove_menu(wimp_menu);
-- wimp_menu = (int *) -1;
-- }
-- }
--
-- /* Add or remove a scrollbar. Note that this is only called when
-- * the scrollbar state is changing.
-- * The scroll bar window has already been created.
-- * We can't do anything except remove the scroll bar
-- * until we know what size to use.
-- */
-- void
-- gui_mch_enable_scrollbar(sb, flag)
-- scrollbar_T *sb;
-- int flag;
-- {
-- if (!flag)
-- swi(Wimp_CloseWindow, 0, & (sb->id) );
-- return;
-- }
--
-- void
-- gui_mch_set_blinking(long waittime, long on, long off)
-- {
-- }
--
-- /*
-- * Stop the cursor blinking. Show the cursor if it wasn't shown.
-- */
-- void
-- gui_mch_stop_blink(void)
-- {
-- }
--
-- /*
-- * Start the cursor blinking. If it was already blinking, this restarts the
-- * waiting time and shows the cursor.
-- */
-- void
-- gui_mch_start_blink(void)
-- {
-- }
--
-- /*
-- * Return the RGB value of a pixel as a long.
-- */
-- long_u
-- gui_mch_get_rgb(guicolor_T pixel)
-- {
-- return (long_u)pixel;
-- }
--
-- void
-- gui_mch_set_text_area_pos(int x, int y, int w, int h)
-- {
-- }
--
-- void
-- gui_mch_enable_menu(int flag)
-- {
-- }
--
-- void
-- gui_mch_set_menu_pos(int x, int y, int w, int h)
-- {
-- }
--
-- void
-- gui_mch_add_menu(vimmenu_T *menu, int idx)
-- {
-- }
--
-- void
-- gui_mch_add_menu_item(vimmenu_T *menu, int idx)
-- {
-- }
--
-- void
-- gui_mch_new_menu_colors(void)
-- {
-- }
--
-- void
-- gui_mch_destroy_menu(vimmenu_T *menu)
-- {
-- }
--
-- /* Size of buffer has changed.
-- * Add one to max since gui.c subtracts one more than it should!
-- */
-- void
-- gui_mch_set_scrollbar_thumb(sb, val, size, max)
-- scrollbar_T *sb;
-- long val;
-- long size;
-- long max;
-- {
-- int block[10], width, height;
--
-- width = (max + 1) * gui.char_width;
-- height = (max + 1 + W_STATUS_HEIGHT(sb->wp)) * gui.char_height;
--
-- block[0] = block[3] = 0;
-- block[1] = -height + (1 << y_eigen_factor);
-- block[2] = width;
--
-- swi(Wimp_SetExtent, sb -> id, block);
--
-- block[0] = sb -> id;
-- swi(Wimp_GetWindowState, 0, block);
-- block[5] = val * gui.char_width;
-- block[6] = -val * gui.char_height;
-- swi(Wimp_OpenWindow, 0, block, 0x4b534154,
-- gui.window_handle, /* Parent window handle. */
-- (CHILD_FIX_TO_RIGHT << CHILD_LEFT ) |
-- (CHILD_FIX_TO_RIGHT << CHILD_RIGHT ) |
-- (CHILD_FIX_TO_BOTTOM << CHILD_TOP ) |
-- (CHILD_FIX_TO_BOTTOM << CHILD_BOTTOM) |
-- (CHILD_SELF_SCROLL << CHILD_SCROLL_X) |
-- (CHILD_SELF_SCROLL << CHILD_SCROLL_Y)
-- );
-- }
--
-- /* Set the position of the scrollbar within the editor
-- * window. Note that, for vertical scrollbars, x and w
-- * are ignored. For horizontal bars y and h are ignored.
-- */
-- void
-- gui_mch_set_scrollbar_pos(sb, x, y, w, h)
-- scrollbar_T *sb;
-- int x; /* Horizontal sb position */
-- int y; /* Top of scroll bar */
-- int w; /* Width */
-- int h; /* Height */
-- {
-- int block[24];
-- int px1, py1; /* Parent window min coords */
-- int px2, py2; /* Parent window max coords */
--
-- /* Find where the parent window is. */
-- block[0] = gui.window_handle;
-- swi(Wimp_GetWindowState, 0, block);
-- px1 = block[1];
-- py1 = block[2];
-- px2 = block[3];
-- py2 = block[4];
--
-- block[0] = sb -> id;
--
-- /* Find out how big the scroll window is at the moment. */
-- swi(Wimp_GetWindowInfo, 0, ((char_u *)block) + 1);
--
-- if (block[13] < w || block[12] > -h)
-- {
-- /* Current window is too small! */
-- if (block[12] > -h)
-- block[12] = -h;
-- if (block[13] < w)
-- block[13] = w;
-- swi(Wimp_SetExtent, block[0], block + 11);
-- }
--
-- /* This works better on the nested_wimp. */
-- if (sb-> wp)
-- {
-- /* This is a vertical scrollbar. */
-- block[1] = block[3] = px2 - gui.scrollbar_width + (1 << x_eigen_factor);
-- block[2] = 1 + py2 - (y + h) + (1 << y_eigen_factor);
-- block[4] = 1 + py2 - y;
-- }
-- else
-- {
-- /* This is a horizontal scrollbar. */
-- block[2] = block[4] = py1 + gui.scrollbar_height;
-- block[1] = px1;
-- block[3] = px2 - gui.scrollbar_width;
-- }
--
-- block[5] = 0;
-- block[6] = 0;
-- block[7] = -1;
--
-- swi(Wimp_OpenWindow, 0, block, 0x4b534154,
-- gui.window_handle, /* Parent window handle. */
-- (CHILD_FIX_TO_RIGHT << CHILD_LEFT ) |
-- (CHILD_FIX_TO_RIGHT << CHILD_RIGHT ) |
-- (CHILD_FIX_TO_BOTTOM << CHILD_TOP ) |
-- (CHILD_FIX_TO_BOTTOM << CHILD_BOTTOM) |
-- (CHILD_SELF_SCROLL << CHILD_SCROLL_X) |
-- (CHILD_SELF_SCROLL << CHILD_SCROLL_Y)
-- );
-- }
--
-- /* Create a window with no workarea to place inside editor window.
-- * (what happens without the nested wimp?)
-- * Data for scrollbar is invalid.
-- */
-- void
-- gui_mch_create_scrollbar(sb, orient)
-- scrollbar_T *sb;
-- int orient; /* orient is SBAR_HORIZ or SBAR_VERT */
-- {
-- int bar[] =
-- {
-- 0, 0, /* Visible area : min X,Y */
-- 100, 100, /* max X,Y */
-- 0, 0, /* Scroll offsets */
-- -1, /* Window in front */
-- 0x80800150 | (orient == SBAR_HORIZ ? (1 << 30) : (1 << 28)),
-- 0xff070207, /* Colours */
-- 0x000c0103, /* More colours */
-- 0, -0x4000, /* Workarea extent */
-- 0x4000, 0, /* max X,Y */
-- 0x00000000, /* No title */
-- 0 << 12, /* No workarea button type */
-- 1, /* Wimp sprite area */
-- 0x00010001, /* Minimum width, height */
-- 0, 0, 0, /* Title data (none) */
-- 0 /* No icons */
-- };
-- swi(Wimp_CreateWindow, 0, bar);
-- sb -> id = r0;
-- }
--
-- #if defined(FEAT_WINDOWS) || defined(PROTO)
-- void
-- gui_mch_destroy_scrollbar(scrollbar_T *sb)
-- {
-- swi(Wimp_DeleteWindow, 0, & (sb->id));
-- sb -> id = -1;
-- }
-- #endif
--
-- void
-- gui_mch_set_scrollbar_colors(scrollbar_T *sb)
-- {
-- /* Always use default RO colour scheme. */
-- }
--
-- /*
-- * Get current mouse coordinates in text window.
-- * Note: (0,0) is the bottom left corner, positive y is UP.
-- */
-- void
-- gui_mch_getmouse(x, y)
-- int *x;
-- int *y;
-- {
-- int left;
-- int top;
-- int block[10];
--
-- block[0] = gui.window_handle;
-- swi(Wimp_GetWindowState, 0, block);
-- left = block[1];
-- top = block[4];
--
-- swi(Wimp_GetPointerInfo, 0, block);
-- *x = block[0] - left;
-- *y = top - block[1];
-- }
--
-- /* MouseTo(x, y) */
-- void
-- gui_mch_setmouse(x, y)
-- int x;
-- int y;
-- {
-- }
--
-- void
-- gui_mch_toggle_tearoffs(enable)
-- int enable;
-- {
-- /* no tearoff menus */
-- }
--
-- /* Redraw a window's title.
-- * For the nested wimp we use the new 'redraw-title-bar' reason code.
-- * For older wimps we mark the area of the screen where the title bar
-- * is as invalid.
-- */
-- void
-- ro_redraw_title(window)
-- int window;
-- {
-- if (nested_wimp)
-- {
-- swi(Wimp_ForceRedraw, window, 0x4b534154, 3);
-- }
-- else
-- {
-- int block[10];
-- int miny;
--
-- block[0] = window;
-- swi(Wimp_GetWindowState, 0, block);
-- miny = block[4];
-- swi(Wimp_GetWindowOutline, 0, block);
-- swi(Wimp_ForceRedraw, -1,
-- block[1], miny,
-- block[3], block[4]);
-- }
-- }
--
-- /* Turn a vimmenu_T structure into a wimp menu structure.
-- * -1 if resulting menu is empty.
-- * Only the children and dname items in the root menu are used.
-- */
-- int *
-- ro_build_menu(menu)
-- vimmenu_T *menu;
-- {
-- int *wimp_menu;
-- int width = 4;
-- int w;
-- int size = 28;
-- vimmenu_T *item;
-- int *wimp_item;
--
-- /* Find out how big the menu is so we can allocate memory for it */
-- for (item = menu-> children; item; item = item-> next)
-- {
-- if (item-> hidden == FALSE && !menu_is_separator(item->name))
-- size += 24;
-- }
--
-- if (size <= 28)
-- return (int *) -1; /* No children - shouldn't happen */
--
-- wimp_menu = (int *) alloc(size);
--
-- wimp_menu[0] = (int) menu-> dname;
-- wimp_menu[1] = -1;
-- wimp_menu[2] = 0;
-- wimp_menu[3] = 0x00070207;
-- wimp_menu[5] = 44;
-- wimp_menu[6] = 0;
--
-- wimp_item = wimp_menu + 7;
--
-- for (item = menu-> children; item; item = item-> next)
-- {
-- if (menu_is_separator(item-> name))
-- {
-- /* This menu entry is actually a separator. If it is not the first
-- * menu entry then mark the previous menu item as needing a dotted
-- * line after it.
-- */
-- if (wimp_item > wimp_menu + 7)
-- wimp_item[-6] |= 0x2;
-- }
-- else if (item-> hidden == FALSE)
-- {
-- wimp_item[0] = 0;
-- wimp_item[1] = item-> children ? (int) ro_build_menu(item) : -1;
-- wimp_item[2] = 0x07009131 | (item-> greyed_out << 22);
-- wimp_item[3] = (int) item-> dname;
-- wimp_item[4] = -1;
-- wimp_item[5] = (int) item; /* Stuff the menu address in this unused space */
--
-- w = strlen(item-> dname) + 1;
-- if (w > width)
-- width = w;
-- wimp_item += 6;
-- }
-- }
--
-- wimp_menu[4] = (width + 2) * 16;
-- wimp_menu[7] |= 0x100; /* Menu title is indirected */
-- wimp_item[-6] |= 0x080; /* Last entry in menu */
-- return wimp_menu;
-- }
--
-- static void
-- ro_remove_menu(menu)
-- int *menu;
-- {
-- int *item = menu + 7;
--
-- if (menu == NULL || menu == (int *) -1)
-- return;
--
-- for (;;)
-- {
-- if (item[1] != -1)
-- ro_remove_menu((int *) item[1]); /* Remove sub-menu */
-- if (item[0] & 0x80)
-- break; /* This was the last entry */
-- item += 6;
-- }
-- vim_free(menu);
-- }
--
-- void
-- gui_mch_show_popupmenu(menu)
-- vimmenu_T *menu;
-- {
-- int block[10];
--
-- /* Remove the existing menu, if any */
-- if (wimp_menu != (int *) -1)
-- {
-- swi(Wimp_CreateMenu, 0, -1);
-- ro_remove_menu(wimp_menu);
-- wimp_menu = (int *) -1;
-- }
--
-- wimp_menu = ro_build_menu(menu);
-- if (wimp_menu != (int *) -1)
-- {
-- swi(Wimp_GetPointerInfo, 0, block);
-- swi(Wimp_CreateMenu, 0, wimp_menu, block[0] - 64, block[1] + 64);
-- }
-- }
--
-- /* Run a command using the TaskWindow module.
-- * If SHELL_FILTER is set then output is not echoed to the screen,
-- * If it is not set, then \r is not sent to the output file.
-- */
-- int
-- gui_mch_call_shell(cmd, options)
-- char_u *cmd;
-- int options; /* SHELL_FILTER if called by do_filter() */
-- /* SHELL_COOKED if term needs cooked mode */
-- {
-- char_u task_cmd[256]; /* Contains *TaskWindow command. */
-- int block[64];
-- int reason;
-- char_u *out;
-- char_u c;
-- int old_msg_col;
-- char_u *out_redir;
-- int length;
-- FILE *out_file = NULL;
--
-- out_redir = strstr(cmd, " > ");
-- if (out_redir == NULL)
-- length = strlen(cmd); /* No redirection. */
-- else
-- {
-- length = out_redir - cmd;
-- out_file = fopen(out_redir + 3, "wb");
-- if (out_file == NULL)
-- smsg("WARNING : Can't open file %s for writing\n", out_redir + 3);
-- }
--
-- if (length > 180)
-- {
-- if (out_file)
-- fclose(out_file);
-- return FAIL; /* Command too long. */
-- }
--
-- strcpy(task_cmd, "TaskWindow \"");
-- strncpy(task_cmd + 12, cmd, length);
-- sprintf(task_cmd + 12 + length,
-- "\" -task &%08x -ctrl -quit -name \"Vim command\"",
-- task_handle);
--
-- if (options & SHELL_COOKED)
-- settmode(TMODE_COOK);
--
-- if (xswi(Wimp_StartTask, task_cmd) & v_flag)
-- {
-- /* Failed to even start a new task (out of memory?) */
-- settmode(TMODE_RAW);
-- if (out_file)
-- fclose(out_file);
-- return FAIL;
-- }
--
-- /* Wait for the child process to initialise. */
-- child_handle = 0;
-- while (!child_handle)
-- {
-- reason = wimp_poll(0, block);
-- if ((reason == 17 || reason == 18) && block[4] == 0x808c2)
-- child_handle = block[1];
-- else
-- process_event(reason, block);
-- }
--
-- /* Block until finished */
-- while (child_handle)
-- {
-- reason = wimp_poll(1, block);
-- if (reason == 3 || (reason == 8 && block[6] == 3))
-- {
-- /* Close window request or CTRL-C - kill child task. */
-- block[0] = 20;
-- block[3] = 0;
-- block[4] = 0x808c4; /* Morite */
-- swi(Wimp_SendMessage, 17, block, child_handle);
-- MSG_PUTS(_("\nSending message to terminate child process.\n"));
-- continue;
-- }
-- else if (reason == 8)
-- {
-- block[0] = 28;
-- block[3] = 0;
-- block[4] = 0x808c0; /* Input */
-- block[5] = 1;
-- /* Block[6] is OK as it is! */
-- swi(Wimp_SendMessage, 17, block, child_handle);
-- continue;
-- }
-- else if (reason == 17 || reason == 18)
-- {
-- if (block[4] == 0x808c1)
-- {
-- /* Ack message. */
-- block[3] = block[2];
-- swi(Wimp_SendMessage, 19, block, block[1]);
-- out = (char_u *)block + 24;
-- old_msg_col = msg_col;
-- while (block[5]--)
-- {
-- c = *out++;
-- if (out_file && (c != '\r' || (options & SHELL_FILTER)))
-- fputc(c, out_file);
-- if ((options & SHELL_FILTER) == 0)
-- {
-- if (c == 127)
-- msg_puts("\b \b");
-- else if (c > 31)
-- msg_putchar(c);
-- else if (c == 10)
-- {
-- lines_left = 8; /* Don't do More prompt! */
-- msg_putchar(10);
-- }
-- }
-- }
-- /* Flush output to the screen. */
-- windgoto(msg_row, msg_col);
-- out_flush();
-- continue;
-- }
-- }
-- process_event(reason, block);
-- }
-- msg_putchar('\n');
-- settmode(TMODE_RAW);
-- if (out_file)
-- fclose(out_file);
-- return OK;
-- }
--
-- /* Like strsave(), but stops at any control char */
-- char_u *
-- wimp_strsave(str)
-- char *str;
-- {
-- int strlen = 0;
-- char_u *retval;
-- while (str[strlen] > 31)
-- strlen++;
-- retval = alloc(strlen + 1);
-- if (retval)
-- {
-- memcpy(retval, str, strlen);
-- retval[strlen] = '\0';
-- }
-- return retval;
-- }
--
-- /* If we are saving then pop up a standard RISC OS save box.
-- * Otherwise, open a directory viewer on the given directory (and return NULL)
-- * The string we return will be freed later.
-- */
-- char_u *
-- gui_mch_browse(saving, title, dflt, ext, initdir, filter)
-- int saving; /* write action */
-- char_u *title; /* title for the window */
-- char_u *dflt; /* default file name */
-- char_u *ext; /* extension added */
-- char_u *initdir; /* initial directory, NULL for current dir */
-- char_u *filter; /* file name filter */
-- {
-- char command[256];
-- int length;
--
-- if (saving)
-- {
-- int block[64];
-- int reason;
-- int done_save = FALSE;
-- char_u *retval = NULL;
-- char_u *sprname;
-- char_u *fname;
-- int dragging_icon = FALSE;
-- int filetype;
--
-- if (!dflt)
-- dflt = "TextFile";
--
-- block[0] = save_window;
-- block[1] = 0;
-- swi(Wimp_GetIconState, 0, block);
-- sprname = ((char_u *) block[7]);
-- block[1] = 1;
-- swi(Wimp_GetIconState, 0, block);
-- fname = ((char *) block[7]);
-- strncpy(fname, dflt, 255);
--
-- if (xswi(OS_FSControl, 31, curbuf->b_p_oft) & v_flag)
-- {
-- filetype = 0xfff;
-- strcpy(sprname + 5, "xxx");
-- }
-- else
-- {
-- filetype = r2;
-- sprintf(sprname + 5, "%03x", filetype);
-- }
--
-- /* Open the save box */
--
-- swi(Wimp_GetPointerInfo, 0, block);
-- swi(Wimp_CreateMenu, 0, save_window, block[0] - 64, block[1] + 64);
-- swi(Wimp_SetCaretPosition, save_window, 1, 0, 0, -1, -1);
--
-- while (!done_save)
-- {
-- reason = wimp_poll(1, block);
-- switch (reason)
-- {
-- case 1:
-- redraw_window(block);
-- break;
-- case 2:
-- if (block[0] == save_window)
-- swi(Wimp_OpenWindow, 0, block);
-- else
-- ro_open_window(block);
-- break;
-- case 3:
-- done_save = TRUE;
-- break;
-- case 6:
-- if (block[3] != save_window)
-- done_save = TRUE;
-- else
-- {
-- int drag_box[4];
-- int min_x, max_y;
--
-- switch (block[4])
-- {
-- case 0: /* Start drag */
-- block[0] = save_window;
-- swi(Wimp_GetWindowState, 0, block);
-- min_x = block[1];
-- max_y = block[4];
-- block[1] = 0;
-- swi(Wimp_GetIconState, 0, block);
-- drag_box[0] = block[2] + min_x;
-- drag_box[1] = block[3] + max_y;
-- drag_box[2] = block[4] + min_x;
-- drag_box[3] = block[5] + max_y;
--
-- swi(DragASprite_Start,
-- 0x45,
-- 1,
-- sprname,
-- drag_box);
-- dragging_icon = TRUE;
-- break;
-- case 2: /* OK */
-- retval = wimp_strsave(fname);
-- done_save = TRUE;
-- break;
-- case 3: /* Cancel */
-- done_save = TRUE;
-- break;
-- }
-- }
-- break;
-- case 7:
-- if (dragging_icon)
-- {
-- int len = 0;
--
-- dragging_icon = FALSE;
-- swi(Wimp_GetPointerInfo, 0, block);
-- block[5] = block[3];
-- block[6] = block[4];
-- block[7] = block[0];
-- block[8] = block[1];
-- block[9] = 0; /* Don't know the size */
-- block[10] = filetype;
--
-- while (fname[len] > 31)
-- {
-- if (fname[len] == '.')
-- {
-- fname += len + 1;
-- len = 0;
-- }
-- else
-- len++;
-- }
-- if (len > 211)
-- len = 211;
--
-- memcpy(((char_u *) block) + 44, fname, len);
-- ((char_u *)block)[44 + len] = '\0';
--
-- block[0] = (len + 48) & 0xfc;
-- block[3] = 0;
-- block[4] = 1; /* DataSave */
--
-- swi(Wimp_SendMessage, 17, block, block[5], block[6]);
-- }
-- else
-- ro_drag_finished(block);
-- break;
-- case 8:
-- if (block[6] == 13)
-- {
-- retval = wimp_strsave(fname);
-- done_save = TRUE;
-- }
-- else if (block[6] == 0x1b)
-- done_save = TRUE;
-- else
-- swi(Wimp_ProcessKey, block[6]);
-- break;
-- case 17:
-- case 18:
-- if (block[4] == 2 && block[9] != -1)
-- {
-- /* DataSaveAck from dragging icon. */
-- retval = wimp_strsave(((char_u *) block) + 44);
-- done_save = TRUE;
-- }
-- else if (block[4] == 0x400c9)
-- {
-- /* MenusDeleted */
-- done_save = TRUE;
-- }
-- else
-- ro_message(block);
-- break;
-- }
-- }
-- block[0] = save_window;
-- swi(Wimp_CloseWindow, 0, block);
-- swi(Wimp_GetCaretPosition, 0, block);
-- if (block[0] == -1)
-- swi(Wimp_SetCaretPosition, gui.window_handle, -1, 0, 0, -1, -1);
--
-- return retval;
-- }
-- else if (initdir)
-- {
-- /* Open a directory viewer */
-- length = strlen(initdir);
--
-- if (length > 240)
-- return NULL; /* Path too long! */
--
-- length = sprintf(command, "Filer_OpenDir %s", initdir);
-- while (command[length - 1] == '.')
-- length--;
-- command[length] = '\0';
-- swi(OS_CLI, command);
-- }
-- return NULL;
-- }
---- 0 ----
-*** ../vim-7.3.186/src/os_riscos.c 2010-08-15 21:57:27.000000000 +0200
---- src/os_riscos.c 1970-01-01 01:00:00.000000000 +0100
-***************
-*** 1,1292 ****
-- /* vi:set ts=8 sts=4 sw=4:
-- *
-- * VIM - Vi IMproved by Bram Moolenaar
-- *
-- * Do ":help uganda" in Vim to read copying and usage conditions.
-- * Do ":help credits" in Vim to see a list of people who contributed.
-- * See README.txt for an overview of the Vim source code.
-- */
--
-- #include "vim.h"
--
-- /*
-- * os_riscos.c
-- *
-- * Thomas Leonard <tal197@ecs.soton.ac.uk>
-- */
--
-- const char *__dynamic_da_name = "Vim heap"; /* Enable and name our dynamic area */
-- int ro_line_mode = TRUE; /* For Ex mode we much echo chars to the screen ourselves */
-- int windowed; /* Flag - are we running inside a text window? */
-- int WinLeft, WinTop; /* We might be started inside a text window */
-- int ScrollTop; /* Make cursor movements relative to ScrollTop. */
--
-- int old_escape_state = -1;
-- int old_cursor_state = -1;
--
-- #define rgb(r,g,b) ((b<<24) + (g<<16) + (r<<8))
-- #define NORMAL_FG 0x00000000
-- #define NORMAL_BG 0xffffffff
--
-- /* Convert a DOS colour number to an RGB palette entry.
-- * Mappings from X11 rgb/txt file.
-- */
-- static int
-- map_colour(dos)
-- int dos; /* Standard DOS colour number. */
-- {
-- switch (dos)
-- {
-- case 0: return 0; /* Black */
-- case 1: return rgb(0,0,139); /* DarkBlue */
-- case 2: return rgb(0,100,0); /* DarkGreen */
-- case 3: return rgb(0,139,139); /* DarkCyan */
-- case 4: return rgb(139,0,0); /* DarkRed */
-- case 5: return rgb(139,0,139); /* DarkMagenta */
-- case 6: return rgb(165,42,42); /* Brown, DarkYellow */
-- case 7: return rgb(211,211,211); /* LightGray, LightGrey, Gray, Grey */
-- case 8: return rgb(169,169,169); /* DarkGray, DarkGrey */
-- case 9: return rgb(173,216,230); /* Blue, LightBlue */
-- case 10: return rgb(144,238,144); /* Green, LightGreen */
-- case 11: return rgb(224,255,255); /* Cyan, LightCyan */
-- case 12: return rgb(255,0,0); /* Red, LightRed */
-- case 13: return rgb(255,0,255); /* Magenta, LightMagenta */
-- case 14: return rgb(255,255,0); /* Yellow, LightYellow */
-- case 15: return rgb(255,255,255); /* White */
-- }
-- return rgb(100,100,100);
-- }
--
-- static void
-- text_fg(fg)
-- int fg; /* Foregound colour in the form &BBGGRR00 */
-- {
-- xswi(ColourTrans_SetTextColour, fg, 0, 0, 0);
-- }
--
-- static void
-- text_bg(bg)
-- int bg; /* Backgound colour in the form &BBGGRR00 */
-- {
-- xswi(ColourTrans_SetTextColour, bg, 0, 0, 1 << 7);
-- }
--
-- #define OUT_NORMAL 0
-- #define OUT_NUMBER 1 /* Reading in a number */
--
-- void
-- mch_write(s, len)
-- char_u *s;
-- int len;
-- {
-- static int mode = OUT_NORMAL;
-- static int x, y; /* For reading numbers in. */
--
-- if (!term_console)
-- {
-- /* Maybe we are running Vim remotely - don't interpret chars */
-- while (len--)
-- {
-- char_u c = *s++;
-- swi(OS_WriteC, c);
-- /* We might need to send a CR too. This shouldn't
-- * hurt if we don't need it, should it?
-- */
-- if (c == 10)
-- swi(OS_WriteI + 13);
-- }
-- return;
-- }
--
-- while (len--)
-- {
-- char_u c = *s++;
-- switch (mode)
-- {
-- case OUT_NUMBER:
-- if (c < '0' || c > '9')
-- {
-- mode = OUT_NORMAL;
-- }
-- else
-- {
-- x = (x * 10) + c - '0';
-- continue;
-- }
-- /* note: no break here! */
--
-- case OUT_NORMAL:
-- switch (c)
-- {
-- case 1:
-- /* Number (in decimal) follows. */
-- mode = OUT_NUMBER;
-- y = x;
-- x = 0;
-- break;
-- case 2:
-- /* Position cursor. */
-- swi(OS_WriteI + 31);
-- swi(OS_WriteC, x);
-- swi(OS_WriteC, y - ScrollTop);
-- break;
-- case 3:
-- /* Set scroll region. */
-- if (x == Rows -1 && y == 0 && !windowed)
-- {
-- /* Whole screen - remove text window.
-- * This is MUCH faster.
-- */
-- swi(OS_WriteI + 26);
-- }
-- else
-- {
-- /* Create a text window. */
-- swi(OS_WriteI + 28);
-- swi(OS_WriteC, WinLeft);
-- swi(OS_WriteC, WinTop + x);
-- swi(OS_WriteC, WinLeft + Columns - 1);
-- swi(OS_WriteC, WinTop + y);
-- }
-- ScrollTop = y;
-- break;
-- case 4:
-- /* Normal mode. */
-- text_fg(NORMAL_FG);
-- text_bg(NORMAL_BG);
-- break;
-- case 5:
-- /* Reverse mode. */
-- text_fg(NORMAL_BG);
-- text_bg(NORMAL_FG);
-- break;
-- case 10:
-- swi(OS_NewLine);
-- break;
-- case 14:
-- /* Cursor invisible. */
-- swi(OS_WriteN,
-- "\027\001\000\000\000\000\000\000\000\000",
-- 10);
-- break;
-- case 15:
-- /* Cursor visible. */
-- swi(OS_WriteN,
-- "\027\001\002\000\000\000\000\000\000\000",
-- 10);
-- break;
-- case 16:
-- /* Cursor very visible (flash) */
-- swi(OS_WriteN,
-- "\027\001\003\000\000\000\000\000\000\000",
-- 10);
-- case 17:
-- /* Set foreground colour. */
-- text_fg(map_colour(x));
-- break;
-- case 18:
-- /* Set background colour. */
-- text_bg(map_colour(x));
-- break;
-- case 19:
-- /* Scroll text down. */
-- swi(OS_WriteN,
-- "\027\007\000\002\000\000\000\000\000\000",
-- 10);
-- break;
-- default:
-- swi(OS_WriteC, c);
-- }
-- continue;
--
-- default:
-- printf("[output error]");
-- mode = OUT_NORMAL;
-- }
-- }
-- }
--
-- /*
-- * mch_inchar(): low level input funcion.
-- * Get a characters from the keyboard.
-- * Return the number of characters that are available.
-- * If wtime == 0 do not wait for characters.
-- * If wtime == n wait n msecs for characters.
-- * If wtime == -1 wait forever for characters.
-- *
-- * TODO: call convert_input() for 'fileencoding' to 'encoding' conversion.
-- */
-- int
-- mch_inchar(buf, maxlen, wtime, tb_change_cnt)
-- char_u *buf;
-- int maxlen;
-- long wtime;
-- int tb_change_cnt;
-- {
-- int got=0;
-- unsigned int start_time = clock();
--
-- if (ro_line_mode)
-- {
-- /* We're probably in Ex mode - get whole lines at a time. */
--
-- static char_u line_buffer[256];
-- static int remaining_chars = 0;
-- static int buf_pos = 0;
--
-- /* Do we need to fetch another line? */
-- if (remaining_chars == 0)
-- {
-- int old_esc_state;
-- swi(OS_Byte, 200, 1, 0xfe);
-- old_esc_state = r1;
--
-- buf_pos = 0;
-- if (xswi(OS_ReadLine, line_buffer, 255, 0, 255) & (c_flag | v_flag))
-- {
-- got_int = TRUE; /* ESC pressed */
-- r1 = 0;
-- }
-- line_buffer[r1] = 13;
-- remaining_chars = r1 + 1; /* Count CR as part of input */
--
-- swi(OS_Byte, 200, old_esc_state, 0);
-- }
--
-- /* Can we send the rest of the buffer back in one go? */
-- if (remaining_chars <= maxlen)
-- {
-- int got = remaining_chars;
--
-- memcpy(buf, line_buffer + buf_pos, got);
-- remaining_chars = 0;
-- return got;
-- }
--
-- /* Send as much as we can */
-- memcpy(buf, line_buffer + buf_pos, maxlen);
-- buf_pos += maxlen;
-- remaining_chars -= maxlen;
--
-- return maxlen;
-- }
--
-- if (!term_console)
-- {
-- /* Use OS_ReadC for all input.
-- * Avoids problems with remote access getting interference from
-- * the keyboard.
-- */
-- if (wtime == 0)
-- return 0; /* Ignore quick key checks */
--
-- if (xswi(OS_ReadC) & c_flag)
-- {
-- got_int = TRUE; /* ESC pressed - can this happen? */
-- swi(OS_Byte, 124); /* Clear Escape state */
-- r0 = 0x1b; /* It *might* not have been Escape! */
-- }
-- buf[0] = r0;
-- return 1;
-- }
--
-- /*
-- * OK, here's the plan:
-- *
-- * 1) Wait until wtime expires or we get a key
-- * 2) Get keys until the keyboard buffer is empty or buf is full
-- */
--
-- while (xswi(OS_Byte,145,0) & c_flag)
-- {
-- /* Nothing at all in the keyboard buffer.
-- * Has our time expired yet?
-- */
-- if ( (wtime != -1) && (clock() - start_time) >= wtime )
-- return 0; /* Nothing read - giving up */
-- }
--
-- /* We've got one char (in r2) - are there any more? */
--
-- while (got < maxlen)
-- {
-- buf[got++] = r2;
--
-- if (xswi(OS_Byte,145,0) & c_flag)
-- return got; /* Keyboard buffer empty */
-- }
-- return got; /* buf is full */
-- }
--
-- /*
-- * return non-zero if a character is available
-- */
-- int
-- mch_char_avail()
-- {
-- if (!term_console)
-- return 0; /* Can't tell */
-- if (xswi(OS_Byte, 152, 0) & c_flag)
-- return 0;
-- return 1;
-- }
--
-- /* Find out how much free memory we have.
-- * I don't know how to work this out exactly but, since we can claim
-- * more memory from the OS, let's just report the free pool size.
-- * Dynamic area 6 doesn't exist pre 3.6 according to StrongHelp, so
-- * we'll use Wimp_SlotSize. If that fails (outside the desktop?)
-- * then just return a big number and hope.
-- */
-- long_u
-- mch_avail_mem(special)
-- int special;
-- {
-- if (xswi(Wimp_SlotSize, -1, -1) & v_flag)
-- return 0x7fffffff;
-- return r2;
-- }
--
-- void
-- mch_delay(msec, ignoreinput)
-- long msec;
-- int ignoreinput;
-- {
-- int start_time, time_now;
-- int csec = msec / 10;
--
-- swi(OS_ReadMonotonicTime);
-- start_time = r0;
--
-- for (;;)
-- {
-- swi(OS_ReadMonotonicTime);
-- time_now = r0;
-- if (time_now - start_time > csec)
-- return;
-- #ifdef FEAT_GUI
-- /* In the GUI, allow other programs to run while waiting. */
-- if (gui.in_use)
-- gui_mch_wait_for_chars(start_time + csec);
-- #endif
-- }
-- }
--
-- /*
-- * If the machine has job control, use it to suspend the program,
-- * otherwise fake it by starting a new shell.
-- */
-- void
-- mch_suspend()
-- {
-- suspend_shell();
-- }
--
-- void
-- mch_init()
-- {
-- /*
-- * Read window size first. Calls to mch_get_shellsize() will
-- * simply return these values in future so that setting the
-- * text window (used for scrolling) won't give strange results.
-- */
--
-- int buf[7] = {132, 135, 256, 257, 1, 2, -1};
--
-- /* Command windows are no longer forced open, since if we are
-- * in the desktop then we'll use the GUI version.
-- * Opening a command window here messes up the GUI version startup
-- */
-- #ifndef FEAT_GUI
-- swi(OS_WriteI);
-- #endif
-- swi(OS_ReadVduVariables, buf, buf);
-- WinLeft = buf[0];
-- WinTop = buf[1];
-- Columns = buf[2];
-- Rows = buf[3] + 1; /* Seems to be one off (VduVars wrong?) */
-- ScrollTop = 0;
--
-- /* Are we running in a textwindow? */
-- if (Rows == buf[5] + 1 && Columns == buf[4] + 1)
-- windowed = 0;
-- else
-- windowed = 1;
--
-- /* Choose a nice colour scheme. */
-- text_fg(NORMAL_FG);
-- text_bg(NORMAL_BG);
-- }
--
-- /*
-- * Check_win checks whether we have an interactive stdout.
-- */
-- /* ARGSUSED */
-- int
-- mch_check_win(argc, argv)
-- int argc;
-- char **argv;
-- {
-- return OK;
-- }
--
-- /*
-- * Return TRUE if the input comes from a terminal, FALSE otherwise.
-- */
-- int
-- mch_input_isatty()
-- {
-- if (xswi(OS_ChangeRedirection, -1, -1) & v_flag)
-- return TRUE; /* Error - TRUE is probably correct though */
-- if (r0 == 0)
-- return TRUE;
-- return FALSE;
-- }
--
-- #ifdef FEAT_TITLE
-- int
-- mch_can_restore_title()
-- {
-- return FALSE;
-- }
--
-- int
-- mch_can_restore_icon()
-- {
-- return FALSE;
-- }
--
--
-- /*
-- * Set the window title and icon.
-- */
-- void
-- mch_settitle(title, icon)
-- char_u *title;
-- char_u *icon;
-- {
-- if (title == NULL)
-- title = (char_u *) "<untitled>";
-- #ifdef FEAT_GUI
-- if (gui.in_use && strcmp(title, gui.window_title))
-- {
-- int length;
-- length = strlen(title);
-- if (length >= gui.window_title_size)
-- length = gui.window_title_size - 1;
-- strncpy(gui.window_title, title, length);
-- gui.window_title[length] = 0;
-- ro_redraw_title(gui.window_handle);
-- }
-- #endif
-- return;
-- }
--
-- /*
-- * Restore the window/icon title.
-- * "which" is one of:
-- * 1 only restore title
-- * 2 only restore icon
-- * 3 restore title and icon
-- */
-- void
-- mch_restore_title(which)
-- int which;
-- {
-- return;
-- }
-- #endif
--
-- /*
-- * Insert user name in s[len].
-- * Return OK if a name found.
-- */
-- int
-- mch_get_user_name(s, len)
-- char_u *s;
-- int len;
-- {
-- /* RISC OS doesn't support user names. */
-- *s = NUL;
-- return FAIL;
-- }
--
-- /*
-- * Insert host name in s[len].
-- */
--
-- void
-- mch_get_host_name(s, len)
-- char_u *s;
-- int len;
-- {
-- if (xswi(OS_ReadVarVal, "Machine$Name", s, len, 0, 3) & v_flag)
-- {
-- /* Variable does not exist (normal operation) */
-- vim_strncpy(s, "(unknown)", len - 1);
-- }
-- }
--
-- /*
-- * return process ID
-- */
-- long
-- mch_get_pid()
-- {
-- if (xswi(Wimp_ReadSysInfo, 5) & v_flag)
-- return 0;
-- return r0;
-- }
--
-- /*
-- * Get name of current directory into buffer 'buf' of length 'len' bytes.
-- * Return OK for success, FAIL for failure.
-- */
-- int
-- mch_dirname(buf, len)
-- char_u *buf;
-- int len;
-- {
-- if (xswi(OS_FSControl, 37, "@", buf, 0, 0, len) & v_flag)
-- return FAIL;
-- return OK;
-- }
--
-- /*
-- * Get absolute file name into buffer 'buf' of length 'len' bytes.
-- *
-- * return FAIL for failure, OK for success
-- */
-- int
-- mch_FullName(fname, buf, len, force)
-- char_u *fname, *buf;
-- int len;
-- int force; /* Also expand when already absolute path name.
-- * Not used under RISC OS.
-- */
-- {
-- if (xswi(OS_FSControl, 37, fname, buf, 0, 0, len) & v_flag)
-- return FAIL;
-- return OK;
-- }
--
-- /*
-- * Return TRUE if "fname" does not depend on the current directory.
-- */
-- int
-- mch_isFullName(fname)
-- char_u *fname;
-- {
-- if (strstr(fname, "::") && strstr(fname,".$."))
-- return TRUE;
-- return FALSE;
-- }
--
-- /*
-- * Get file permissions for 'name'.
-- * Returns -1 when it doesn't exist.
-- */
-- long
-- mch_getperm(name)
-- char_u *name;
-- {
-- struct stat statb;
--
-- if (stat((char *)name, &statb))
-- return -1;
-- return statb.st_mode;
-- }
--
-- /*
-- * set file permission for 'name' to 'perm'
-- *
-- * return FAIL for failure, OK otherwise
-- */
-- int
-- mch_setperm(name, perm)
-- char_u *name;
-- long perm;
-- {
-- return (chmod((char *)name, (mode_t)perm) == 0 ? OK : FAIL);
-- }
--
-- /*
-- * Set hidden flag for "name".
-- */
-- /* ARGSUSED */
-- void
-- mch_hide(name)
-- char_u *name;
-- {
-- /* can't hide a file */
-- }
--
-- /*
-- * return TRUE if "name" is a directory
-- * return FALSE if "name" is not a directory
-- * return FALSE for error
-- */
-- int
-- mch_isdir(name)
-- char_u *name;
-- {
-- if (xswi(OS_File, 17, name) & v_flag)
-- return FALSE;
-- if (r0 == 2 || r0 == 3)
-- return TRUE; /* Count image files as directories. */
-- return FALSE;
-- }
--
-- /*
-- * Return 1 if "name" can be executed, 0 if not.
-- * Return -1 if unknown. Requires which to work.
-- */
-- int
-- mch_can_exe(name)
-- char_u *name;
-- {
-- char_u *buf;
-- char_u *p;
-- int retval;
--
-- buf = alloc((unsigned)STRLEN(name) + 7);
-- if (buf == NULL)
-- return -1;
-- sprintf((char *)buf, "which %s", name);
-- p = get_cmd_output(buf, NULL, SHELL_SILENT);
-- vim_free(buf);
-- if (p == NULL)
-- return -1;
-- /* result can be: "name: Command not found" */
-- retval = (*p != NUL && strstr((char *)p, "not found") == NULL);
-- vim_free(p);
-- return retval;
-- }
--
-- /*
-- * Check what "name" is:
-- * NODE_NORMAL: file or directory (or doesn't exist)
-- * NODE_WRITABLE: writable device, socket, fifo, etc.
-- * NODE_OTHER: non-writable things
-- */
-- int
-- mch_nodetype(name)
-- char_u *name;
-- {
-- /* TODO */
-- return NODE_NORMAL;
-- }
--
-- void
-- mch_early_init()
-- {
-- /* Turn off all the horrible filename munging in UnixLib. */
-- int __riscosify_control = __RISCOSIFY_NO_PROCESS;
-- }
--
-- void
-- mch_exit(r)
-- int r;
-- {
-- settmode(TMODE_COOK);
-- exiting = TRUE;
-- out_flush();
-- ml_close_all(TRUE); /* remove all memfiles */
--
-- #ifdef FEAT_GUI
-- if (gui.in_use)
-- gui_exit(r);
-- #endif
-- swi(OS_NewLine);
-- if (old_escape_state != -1)
-- swi(OS_Byte, 229, old_escape_state, 0);
-- if (old_cursor_state != -1)
-- swi(OS_Byte, 4, old_cursor_state);
-- exit(r);
-- }
--
-- void
-- mch_settmode(tmode)
-- int tmode; /* TMODE_RAW or TMODE_COOK */
-- {
-- if (tmode == TMODE_COOK)
-- {
-- ro_line_mode = TRUE;
-- return;
-- }
--
-- ro_line_mode = FALSE;
--
-- if (term_console)
-- {
-- /* Block cursor. */
-- swi(OS_WriteN,
-- "\027\000\012\000\000\000\000\000\000\000",
-- 10);
--
-- /* Disable the standard cursor key actions. */
-- swi(OS_Byte, 4, 1);
-- if (old_cursor_state == -1)
-- old_cursor_state = r1;
-- }
--
-- /* Stop Escape from quitting Vim! */
-- swi(OS_Byte, 229, 1, 0);
-- if (old_escape_state == -1)
-- old_escape_state = r1;
-- }
--
-- /*
-- * set mouse clicks on or off (only works for xterms)
-- */
-- void
-- mch_setmouse(on)
-- int on;
-- {
-- }
--
-- /*
-- * set screen mode, always fails.
-- */
-- /* ARGSUSED */
-- int
-- mch_screenmode(arg)
-- char_u *arg;
-- {
-- EMSG(_(e_screenmode));
-- return FAIL;
-- }
--
-- /*
-- * Try to get the current window size.
-- * Return OK when size could be determined, FAIL otherwise.
-- * Simply return results stored by mch_init() if we are the
-- * machine's console. If not, we don't know how big the screen is.
-- */
-- int
-- mch_get_shellsize()
-- {
-- /* if size changed: screenalloc will allocate new screen buffers */
-- return term_console ? OK : FAIL;
-- }
--
-- /*
-- * Can't change the size.
-- * Assume the user knows what he's doing and use the new values.
-- */
-- void
-- mch_set_shellsize()
-- {
-- /* Assume the user knows what he's doing and use the new values. */
-- }
--
-- /*
-- * Rows and/or Columns has changed.
-- */
-- void
-- mch_new_shellsize()
-- {
-- /* Nothing to do. */
-- }
--
-- int
-- mch_call_shell(cmd, options)
-- char_u *cmd;
-- int options; /* SHELL_*, see vim.h */
-- {
-- int retval;
-- int tmode = cur_tmode;
--
-- if (cmd == NULL)
-- cmd = (char_u *) "GOS";
--
-- #ifdef FEAT_GUI
-- if (gui.in_use)
-- return gui_mch_call_shell(cmd, options);
-- #endif
-- if (options & SHELL_COOKED)
-- settmode(TMODE_COOK); /* set to normal mode */
-- MSG_PUTS("\n");
--
-- /* I don't even want to think about what UnixLib must
-- * be doing to allow this to work...
-- */
-- retval = system(cmd);
-- if (retval && !(options & SHELL_SILENT))
-- EMSG(strerror(EOPSYS)); /* Doesn't seem to set errno? */
--
-- swi(OS_Byte, 229, 1, 0); /* Re-disable escape */
-- if (tmode == TMODE_RAW)
-- settmode(TMODE_RAW); /* set to raw mode */
-- return retval ? FAIL : OK;
-- }
--
-- /*
-- * Check for Escape being pressed right now.
-- * [ different if !term_console? ]
-- */
-- void
-- mch_breakcheck()
-- {
-- if (xswi(OS_Byte, 121, 0xf0) & v_flag)
-- return;
-- if (r1 == 0xff)
-- {
-- got_int = TRUE;
-- swi(OS_Byte, 15, 1); /* Flush input buffer */
-- }
-- }
--
-- /*
-- * Recursively expand one path component into all matching files and/or
-- * directories.
-- * "path" has backslashes before chars that are not to be expanded.
-- * Return the number of matches found.
-- */
-- int
-- mch_expandpath(gap, path, flags)
-- garray_T *gap; /* Grow array for results. */
-- char_u *path;
-- int flags; /* EW_* flags */
-- {
-- int got; /* Number of matches. */
-- char_u *pattern;
--
-- /* Plan:
-- *
-- * 1) Get first part of path - no wildcards
-- * 2) Get next path element (wildcarded)
-- * 3) Get rest of path
-- *
-- * If (3) is nothing then only the leaf is wildcarded - add to gap
-- * Otherwise call recursively for each path in (2), passing (3)
-- *
-- * This is just the header function.
-- */
--
-- /* We must be able to modifiy path, so make a copy */
-- pattern = vim_strsave(path);
-- if (pattern == NULL)
-- return 0;
-- got = expand_section(gap, (char_u *)"", pattern, flags);
-- vim_free(pattern);
-- return got;
-- }
--
-- /*
-- * expand_section(gap, "$.Dir1.Dir2", "ABBA*.myleaf##")
-- *
-- * calls expand_section(gap, "$.Dir1.Dir2.ABBA_Gold", "myleaf##")
-- * and expand_section(gap, "$.Dir1.Dir2.ABBA_Live", "myleaf##")
-- *
-- * If rest is just a leaf then all matches are added to gap.
-- *
-- * Returns number of items added to gap.
-- */
-- int
-- expand_section(gap, root, rest, flags)
-- garray_T *gap;
-- char_u *root; /* Non-wildcarded path to search */
-- char_u *rest; /* Wildcarded remainder of path */
-- int flags; /* Add dirs/files/missing objects. */
-- {
-- static char_u buf[MAXPATHL]; /* Temporary buffer. */
-- char_u dir[MAXPATHL];
-- int start_element = -1; /* Start of wildcarded element */
-- char_u c;
-- int i;
-- int got, dir_pos;
-- int buflen; /* Chars used in buf[] */
-- int colon = 0; /* Dir ends in ':' */
--
-- buflen = strlen(root);
-- STRNCPY(buf, root, buflen); /* Copy root into buffer. */
--
-- /*
-- * Find end of nonwildcarded section.
-- * Count ':' as a path sep since Vim:Bug* is a valid pathname.
-- */
--
-- for (i = 0; c = rest[i]; i++)
-- {
-- if (c == PATHSEP)
-- {
-- start_element = i;
-- colon = 0;
-- }
-- if (c == ':')
-- {
-- start_element = i + 1;
-- colon = 1;
-- }
-- if (c == '#' || c == '*')
-- break;
-- }
-- if (c == 0)
-- start_element = i;
--
-- /*
-- * start_element +> terminator for non-wildcarded section.
-- * Transfer this bit into buf.
-- */
-- if (buflen + start_element + 4 >= MAXPATHL)
-- return 0; /* Buffer full */
-- if (start_element >= 0)
-- {
-- if (*root && !colon)
-- buf[buflen++] = PATHSEP;
-- strncpy(buf + buflen, rest, start_element);
-- buflen += start_element;
-- }
-- buf[buflen] = 0;
--
-- /*
-- * Did we reach the end of the string without hitting any wildcards?
-- */
-- if (c == 0)
-- {
-- /* Yes - add combined path to grow array and return. */
-- addfile(gap, buf, flags);
-- return 1;
-- }
--
-- if (start_element < 0 || !colon)
-- start_element++;
-- rest += start_element;
--
-- /*
-- * rest does contain wildcards if we get here.
-- *
-- * Now : have we reached the leaf names part yet?
-- * If so, add all matches (files and dirs) to gap.
-- * If not, get next path element and scan all matching directories.
-- */
--
-- start_element = -1;
-- for (i = 0; rest[i]; i++)
-- {
-- if (rest[i] == '.')
-- {
-- start_element = i;
-- rest[i] = 0; /* Break string here. */
-- break;
-- }
-- }
--
-- /* If start_element is -1 then we are matching leaf names */
--
-- r3 = 0; /* Number of objs read. */
-- dir_pos = 0; /* Position through directory. */
-- got = 0; /* Files added so far. */
-- while (dir_pos != -1)
-- {
-- buf[buflen] = 0;
-- if (xswi(OS_GBPB, 9,
-- buf, /* Directory to scan. */
-- buf + buflen + (1 - colon), /* Buffer for result. */
-- 1, /* Number of objects to read. */
-- dir_pos, /* Search position. */
-- MAXPATHL - 2 - buflen, /* Size of result buffer. */
-- rest) /* Wildcarded leafname. */
-- & v_flag)
-- {
-- EMSG(r0 + 4);
-- r4 = -1;
-- }
-- dir_pos = r4; /* r4 corrupted by addfile() */
-- if (r3 > 0)
-- {
-- char_u *path = buf;
-- if (buflen == 0)
-- path++; /* Don't do '.File' */
-- else if (!colon)
-- buf[buflen] = '.'; /* Join path and leaf */
--
-- /* Path -> full path of object found */
-- if (start_element == -1)
-- {
-- addfile(gap, path, flags);
-- got++;
-- }
-- else
-- {
-- /* Scan into subdirectories and images; ignore files */
-- swi(OS_File, 17, path);
-- if (r0 == 2 || r0 == 3)
-- got += expand_section(gap,
-- path,
-- rest + start_element + 1,
-- flags);
-- }
-- }
-- }
--
-- /* Restore the dot if we removed it. */
-- if (start_element >= 0)
-- rest[start_element] = '.';
-- return got;
-- }
--
-- /*
-- * mch_expand_wildcards() - this code does wild-card pattern matching using
-- * the shell. It isn't used under RISC OS.
-- *
-- * return OK for success, FAIL for error (you may lose some memory) and put
-- * an error message in *file.
-- *
-- * num_pat is number of input patterns
-- * pat is array of pointers to input patterns
-- * num_file is pointer to number of matched file names
-- * file is pointer to array of pointers to matched file names
-- */
-- int
-- mch_expand_wildcards(num_pat, pat, num_file, file, flags)
-- int num_pat;
-- char_u **pat;
-- int *num_file;
-- char_u ***file;
-- int flags; /* EW_* flags */
-- {
-- /* This doesn't get called unless SPECIAL_WILDCHAR is defined. */
-- return FAIL;
-- }
--
-- /*
-- * Return TRUE if "p" contains wildcards which can be expanded by
-- * mch_expandpath().
-- */
-- int
-- mch_has_exp_wildcard(p)
-- char_u *p;
-- {
-- if (vim_strpbrk((char_u *)"*#", p))
-- return TRUE;
-- return FALSE;
-- }
--
-- /* Return TRUE if "p" contains wildcards. */
-- int
-- mch_has_wildcard(p)
-- char_u *p;
-- {
-- if (vim_strpbrk((char_u *)"*#`", p))
-- return TRUE;
-- return FALSE;
-- }
--
-- int /* see Unix unlink(2) */
-- mch_remove(file)
-- char_u *file; /* Name of file to delete. */
-- {
-- if (xswi(OS_FSControl, 27, file, 0, 0) & v_flag)
-- return EXIT_FAILURE;
-- return EXIT_SUCCESS;
-- }
--
-- /* Try to make existing scripts work without modification.
-- * Return a pointer to the new string (freed by caller), or NULL
-- *
-- * Two main cases:
-- * - Absolute : $VIM/syntax/help.vim
-- * - Relative : Adfs::4.$.!Vim.Resources.Syntax/help.vim
-- */
-- char_u *
-- mch_munge_fname(fname)
-- char_u *fname;
-- {
-- char_u c;
-- int len;
-- char_u *retval;
--
-- retval = fname = vim_strsave(fname);
-- if (fname == NULL)
-- return NULL;
--
-- if (strncmp(fname, "$VIM/", 5) == 0)
-- {
-- strncpy(fname, "Vim:", 4);
-- for (fname += 5; c = *fname; fname++)
-- {
-- if (c == '.')
-- break;
-- if (c == '/')
-- fname[-1] = '.';
-- else
-- fname[-1] = c;
-- }
-- fname[-1] = '\0';
-- }
-- else
-- {
-- /* Check to see if the file exists without modification. */
-- if (xswi(OS_File, 17, fname) & v_flag)
-- r0 == 0; /* Invalid filename? */
-- if (r0)
-- return retval;
--
-- len = strlen(fname);
-- if (strcmp(fname + len - 4, ".vim") == 0)
-- {
-- fname[len - 4] = '\0';
-- for (; c = *fname; fname++)
-- {
-- if (c == '/')
-- *fname = '.';
-- }
-- }
-- }
-- return retval;
-- }
--
-- /* QuickFix reads munged names from the error file.
-- * Correct them.
-- */
-- int
-- ro_buflist_add(old_name)
-- char_u *old_name; /* Name of file found by quickfix */
-- {
-- char_u *fname;
-- char_u *leaf; /* Pointer to start of leaf in old_name */
-- char_u *ptr;
-- char_u c;
-- int retval;
--
-- if (old_name == NULL)
-- return buflist_add(NULL, 0);
--
-- /* Copy the name so we can mess around with it. */
-- fname = vim_strsave(old_name);
-- if (fname == NULL)
-- /* Out of memory - can't modify name */
-- return buflist_add(old_name, 0);
--
-- /* Change `dir/main.c' into `dir.c.main' */
-- leaf = fname;
-- for (ptr = fname; c = *ptr; ptr++)
-- {
-- if (c == '/')
-- {
-- leaf = ptr + 1;
-- *ptr = '.';
-- }
-- else if (c == '.')
-- break;
-- }
-- if (c == '.')
-- {
-- /* Change `main.c' into `c.main'
-- * | |
-- * leaf ptr
-- */
-- ptr += old_name - fname;
-- *ptr = '\0';
-- sprintf(leaf,
-- "%s.%s",
-- ptr + 1,
-- leaf - fname + old_name);
-- }
--
-- retval = buflist_add(fname, 0);
-- free(fname);
-- return retval;
-- }
--
-- /* Change the current directory.
-- * Strip trailing dots to make it easier to use with filename completion.
-- * Return 0 for success, -1 for failure.
-- */
-- int
-- mch_chdir(dir)
-- char_u *dir;
-- {
-- int length;
-- int retval;
-- char_u *new_dir;
--
-- if (p_verbose >= 5)
-- {
-- verbose_enter();
-- smsg((char_u *)"chdir(%s)", dir);
-- verbose_leave();
-- }
-- length = strlen(dir);
-- if (dir[length - 1] != '.')
-- return chdir(dir); /* No trailing dots - nothing to do. */
-- new_dir = vim_strsave(dir);
-- if (new_dir == NULL)
-- return chdir(dir); /* Can't allocate memory. */
--
-- while (new_dir[--length] == '.')
-- new_dir[length] = '\0';
--
-- retval = chdir(new_dir);
-- vim_free(new_dir);
-- return retval;
-- }
--
-- /* Examine the named file, and set the 'osfiletype' option
-- * (in curbuf) to the file's type.
-- */
-- void
-- mch_read_filetype(file)
-- char_u *file;
-- {
-- int type;
-- char_u type_string[9];
-- int i;
--
-- if (xswi(OS_File, 23, file) & v_flag)
-- type = 0xfff; /* Default to Text */
-- else
-- type = r6;
--
-- /* Type is the numerical value - see if we have a textual equivalent */
-- swi(OS_FSControl, 18, 0, type);
-- ((int *) type_string)[0] = r2;
-- ((int *) type_string)[1] = r3;
-- type_string[8] = 0;
-- for (i = 0; type_string[i] > ' '; i++)
-- ;
-- type_string[i] = 0;
--
-- set_string_option_direct("osfiletype", -1, type_string, OPT_FREE, 0);
-- return;
-- }
--
-- void
-- mch_set_filetype(file, type)
-- char_u *file;
-- char_u *type;
-- {
-- if (xswi(OS_FSControl, 31, type) & v_flag)
-- {
-- EMSG(_("E366: Invalid 'osfiletype' option - using Text"));
-- r2 = 0xfff;
-- }
--
-- swi(OS_File, 18, file, r2);
-- }
--
-- /* Return TRUE if the file's type matches 'type'
-- * RISC OS types always start with '&'
-- */
-- int
-- mch_check_filetype(fname, type)
-- char_u *fname;
-- char_u *type;
-- {
-- int value;
-- char *end;
--
-- if (*type != '&')
-- return FALSE;
--
-- value = strtol(type + 1, &end, 16);
-- if (*end)
-- return FALSE; /* Invalid type (report error?) */
--
-- if (xswi(OS_File, 23, fname) & v_flag)
-- return FALSE; /* Invalid filename? */
--
-- return (r0 && r6 == value);
-- }
---- 0 ----
-*** ../vim-7.3.186/runtime/doc/os_risc.txt 2010-08-15 21:57:16.000000000 +0200
---- runtime/doc/os_risc.txt 2011-05-10 16:19:25.000000000 +0200
-***************
-*** 1,322 ****
-! *os_risc.txt* For Vim version 7.3. Last change: 2010 Aug 07
-
-
- VIM REFERENCE MANUAL by Thomas Leonard
-
-
- *riscos* *RISCOS* *RISC-OS*
-! This file contains the particularities for the RISC OS version of Vim.
-
-- The RISC OS port is a completely new port and is not based on the old "archi"
-- port.
-
-- 1. File locations |riscos-locations|
-- 2. Filename munging |riscos-munging|
-- 3. Command-line use |riscos-commandline|
-- 4. Desktop (GUI) use |riscos-gui|
-- 5. Remote use (telnet) |riscos-remote|
-- 6. Temporary files |riscos-temp-files|
-- 7. Interrupting |riscos-interrupt|
-- 8. Memory usage |riscos-memory|
-- 9. Filetypes |riscos-filetypes|
-- 10. The shell |riscos-shell|
-- 11. Porting new releases |riscos-porting|
--
-- If I've missed anything, email me and I'll try to fix it. In fact, even if I
-- haven't missed anything then email me anyway to give me some confidence that it
-- actually works!
--
-- Thomas Leonard <tal197@ecs.soton.ac.uk>
--
-- [these URLs no longer work...]
-- Port homepage: http://www.ecs.soton.ac.uk/~tal197/
-- or try: http://www.soton.ac.uk/~tal197/
--
-- ==============================================================================
-- *riscos-locations*
-- 1. File locations
--
-- The Vim executable and shared resource files are all stored inside the !Vim
-- application directory.
--
-- When !Vim is first seen by the filer, it aliases the *vi and *ex commands to
-- run the command-line versions of Vim (see |riscos-commandline|).
--
-- !Vim.Resources and !Vim.Resources2 contain the files from the standard Vim
-- distribution, but modified slightly to work within the limits of ADFS, plus
-- some extra files such as the window templates.
--
-- User choices are read from "Choices:*" and are saved to "<Choices$Write>.*".
-- If you have the new !Boot structure then these should be set up already. If
-- not, set Choices$Path to a list of directories to search when looking for
-- user configuration files. Set Choices$Write to the directory you want files
-- to be saved into (so your search patterns and marks can be remembered between
-- sessions).
--
-- ==============================================================================
-- *riscos-munging*
-- 2. Filename munging
--
-- All pathname munging is disabled by default, so Vim should behave like a
-- normal RISC OS application now. So, if you want to edit "doc/html" then you
-- actually type "*vi doc/html".
--
-- The only times munging is done is when:
--
-- - Searching included files from C programs, since these are always munged.
-- See |[I|.
-- Note: make sure you are in the right directory when you use this
-- command (i.e. the one with subdirectories "c" and "h").
--
-- - Sourcing files using |:so|.
-- Paths starting "$VIM/" are munged like this:
--
-- $VIM/syntax/help.vim -> Vim:syntax.help
--
-- Also, files ending in ".vim" have their extensions removed, and slashes
-- replaced with dots.
--
-- Some tag files and script files may have to be edited to work under this port.
--
-- ==============================================================================
-- *riscos-commandline*
-- 3. Command-line use
--
-- To use Vim from the command-line use the "*vi" command (or "*ex" for
-- |Ex-mode|).
--
-- Type "*vi -h" for a list of options.
--
-- Running the command-line version of Vim in a large high-color mode may cause
-- the scrolling to be very slow. Either change to a mode with fewer colors or
-- use the GUI version.
--
-- Also, holding down Ctrl will slow it down even more, and Ctrl-Shift will
-- freeze it, as usual for text programs.
--
-- ==============================================================================
-- *riscos-gui*
-- 4. Desktop use
--
-- Limitations:
--
-- - Left scrollbars don't work properly (right and bottom are fine).
-- - Doesn't increase scroll speed if it gets behind.
--
-- You can resize the window by dragging the lower-right corner, even though
-- there is no icon shown there.
--
-- You can use the --rows and --columns arguments to specify the initial size of
-- the Vim window, like this: >
--
-- *Vi -g --rows 20 --columns 80
--
-- The global clipboard is supported, so you can select some text and then
-- paste it directly into another application (provided it supports the
-- clipboard too).
--
-- Clicking Menu now opens a menu like a normal RISC OS program. Hold down Shift
-- when clicking Menu to paste (from the global clipboard).
--
-- Dragging a file to the window replaces the CURRENT buffer (the one with the
-- cursor, NOT the one you dragged to) with the file.
--
-- Dragging with Ctrl held down causes a new Vim window to be opened for the
-- file (see |:sp|).
--
-- Dragging a file in with Shift held down in insert mode inserts the pathname of
-- the file.
--
-- :browse :w opens a standard RISC OS save box.
-- :browse :e opens a directory viewer.
--
-- For fonts, you have the choice of the system font, an outline font, the system
-- font via ZapRedraw and any of the Zap fonts via ZapRedraw: >
--
-- :set guifont=
-- < To use the system font via the VDU drivers. Supports
-- bold and underline.
-- >
-- :set guifont=Corpus.Medium
-- < Use the named outline font. You can use any font, but
-- only monospaced ones like Corpus look right.
-- >
-- :set guifont=Corpus.Medium:w8:h12:b:i
-- < As before, but with size of 8 point by 12 point, and
-- in bold italic.
-- If only one of width and height is given then that
-- value is used for both. If neither is given then 10
-- point is used.
--
-- Thanks to John Kortink, Vim can use the ZapRedraw module. Start the font name
-- with "!" (or "!!" for double height), like this: >
--
-- :set guifont=!!
-- < Use the system font, but via ZapRedraw. This gives a
-- faster redraw on StrongARM processors, but you can't
-- get bold or italic text. Double height.
-- >
-- :set guifont=!script
-- < Uses the named Zap font (a directory in VimFont$Path).
-- The redraw is the same speed as for "!!", but you get
-- a nicer looking font.
-- Only the "man+" and "script" fonts are supplied
-- currently, but you can use any of the Zap fonts if
-- they are in VimFont$Path.
-- Vim will try to load font files "0", "B", "I" and "IB"
-- from the named directory. Only "0" (normal style) MUST
-- be present. Link files are not currently supported.
--
-- Note that when using ZapRedraw the edit bar is drawn in front of the character
-- you are on rather than behind it. Also redraw is incorrect for screen modes
-- with eigen values of 0. If the font includes control characters then you can
-- get Vim to display them by changing the 'isprint' option.
--
-- If you find the scrolling is too slow on your machine, try experimenting
-- with the 'scrolljump' and 'ttyscroll' options.
--
-- In particular, StrongARM users may find that: >
--
-- :set ttyscroll=0
--
-- makes scrolling faster in high-color modes.
--
-- =============================================================================
-- *riscos-remote*
-- 5. Remote use (telnet)
--
-- I have included a built-in termcap entry, but you can edit the termcap file to
-- allow other codes to be used if you want to use Vim from a remote terminal.
--
-- Although I do not have an internet connection to my Acorn, I have managed to
-- run Vim in a FreeTerm window using the loopback connection.
--
-- It seems to work pretty well now, using "*vi -T ansi".
--
-- ==============================================================================
-- *riscos-temp-files*
-- 6. Temporary files
--
-- If Vim crashes then the swap and backup files (if any) will be in the
-- directories set with the 'directory' and 'bdir' options. By default the swap
-- files are in <Wimp$ScrapDir> (i.e. inside !Scrap) and backups are in the
-- directory you were saving to. Vim will allow you to try and recover the file
-- when you next try to edit it.
--
-- To see a list of swap files, press <F12> and type "*vi -r".
--
-- Vim no longer brings up ATTENTION warnings if you try to edit two files with
-- the same name in different directories.
--
-- However, it also no longer warns if you try to edit the same file twice (with
-- two copies of Vim), though you will still be warned when you save that the
-- datestamp has changed.
--
-- ==============================================================================
-- *riscos-interrupt*
-- 7. Interrupting
--
-- To break out of a looping macro, or similar, hold down Escape in the
-- command-line version, or press CTRL-C in the GUI version.
--
-- ==============================================================================
-- *riscos-memory*
-- 8. Memory usage
--
-- Vim will use dynamic areas on RISC OS 3.5 or later. If you can use them on
-- older machines then edit the !RunTxt and GVim files. I don't know what UnixLib
-- does by default on these machines so I'm playing safe.
--
-- It doesn't work at all well without dynamic areas, since it can't change its
-- memory allocation once running. Hence you should edit "!Vim.GVim" and
-- "!Vim.!RunTxt" to choose the best size for you. You probably need at least
-- about 1400K.
--
-- ==============================================================================
-- *riscos-filetypes*
-- 9. Filetypes
--
-- You can now specify that autocommands are only executed for files of certain
-- types. The filetype is given in the form &xxx, when xxx is the filetype.
--
-- Filetypes must be specified by number (e.g. &fff for Text).
--
-- The system has changed from version 5.3. The new sequence of events is:
--
-- - A file is loaded. |'osfiletype'| is set to the RISC OS filetype.
-- - Based on the filetype and pathname, Vim will try to set |'filetype'| to the
-- Vim-type of the file.
-- - Setting this option may load syntax files and perform other actions.
-- - Saving the file will give it a filetype of |'osfiletype'|.
--
-- Some examples may make this clearer:
--
-- Kind of file loaded osfiletype filetype ~
-- C code "c.hellow" Text (&fff) C
-- LaTeX document LaTeX (&2a8) TeX
-- Draw document DrawFile (&aff) (not changed)
--
-- ==============================================================================
-- *riscos-shell*
-- 10. The shell
--
-- - Bangs (!s) are only replaced if they are followed by a space or end-of-line,
-- since many pathnames contain them.
--
-- - You can prefix the command with "~", which stops any output from being
-- displayed. This also means that you don't have to press <Enter> afterwards,
-- and stops the screen from being redrawn. {only in the GUI version}
--
-- ==============================================================================
-- *riscos-porting*
-- 11. Porting new releases to RISC OS
--
-- Downloading everything you need:
--
-- - Get the latest source distribution (see www.vim.org)
-- - Get the runtime environment files (e.g. these help files)
-- - Get the RISC OS binary distribution (if possible)
--
--
-- Unarchiving:
--
-- - Create a raFS disk and put the archives on it
-- - Un-gzip them
-- - Un-tar them (*tar xELf 50 archive/tar)
--
--
-- Recompiling the sources:
--
-- - Create c, s, and h directories.
-- - Put all the header files in "h". \
-- - Put all the C files in "c". | And lose the extensions
-- - Put the assembler file ("swis/s") in "s". /
-- - Rename all the files in "proto" to "h", like this:
-- raFS::VimSrc.source.proto.file/pro
-- becomes
-- raFS::VimSrc.source.h.file_pro
-- - In the files "h.proto" and "c.termlib", search and replace
-- .pro"
-- with
-- _pro.h"
-- - Create a simple Makefile if desired and do "*make -k".
-- Use "CC = gcc -DRISCOS -DUSE_GUI -O2 -x c" in the Makefile.
-- - Save the binary as !Vim.Vim in the binary distribution.
--
--
-- Updating the run-time environment:
--
-- - Replace old or missing files inside !Vim.Resources with the
-- new files.
-- - Remove files in "doc" not ending in "/txt", except for "tags".
-- - Lose the extensions from the files in "doc".
-- - Edit the "doc.tags" file. Remove extensions from the second column: >
-- :%s/^\(.[^\t]*\t.*\)\.txt\t/\1\t/
-- - Remove extensions from the syntax files. Split them into two directories
-- to avoid the 77 entry limit on old ADFS filesystems.
-- - Edit "Vim:FileType" to match "*.c.*" as well as "*/c" and so on.
-- Add filetype checking too.
-- - Edit "Vim:Menu" and remove all the keys from the menus: >
-- :%s/<Tab>[^ \t]*//
-- <
- vim:tw=78:ts=8:ft=help:norl:
---- 1,12 ----
-! *os_risc.txt* For Vim version 7.3. Last change: 2011 May 10
-
-
- VIM REFERENCE MANUAL by Thomas Leonard
-
-
- *riscos* *RISCOS* *RISC-OS*
-! The RISC OS support has been removed from Vim with patch 7.3.187.
-! If you would like to use Vim on RISC OS get the files from before that patch.
-
-
- vim:tw=78:ts=8:ft=help:norl:
-*** ../vim-7.3.186/src/version.c 2011-05-10 16:12:40.000000000 +0200
---- src/version.c 2011-05-10 16:37:20.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 187,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-81. At social functions you introduce your husband as "my domain server."
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.188
-Fcc: 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.188
-Problem: More RISC OS files to remove.
-Solution: Remove them. Update the file list.
-Files: src/proto/gui_riscos.pro, src/proto/os_riscos.pro, Filelist
-
-
-*** ../vim-7.3.187/src/proto/gui_riscos.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/gui_riscos.pro 1970-01-01 01:00:00.000000000 +0100
-***************
-*** 1,66 ****
-- /* Prototypes for gui_riscos.c
-- * Based on gui_x11_pro.h (10 March 2002 version)
-- */
-- void gui_mch_prepare __ARGS((int *argc, char **argv));
-- int gui_mch_init_check __ARGS((void));
-- int gui_mch_init __ARGS((void));
-- void gui_mch_uninit __ARGS((void));
-- void gui_mch_new_colors __ARGS((void));
-- int gui_mch_open __ARGS((void));
-- void gui_init_tooltip_font __ARGS((void));
-- void gui_init_menu_font __ARGS((void));void gui_mch_exit __ARGS((int rc));
-- int gui_mch_get_winpos __ARGS((int *x, int *y));
-- void gui_mch_set_winpos __ARGS((int x, int y));
-- void gui_mch_set_shellsize __ARGS((int width, int height, int min_width, int min_height, int base_width, int base_height));
-- void gui_mch_get_screen_dimensions __ARGS((int *screen_w, int *screen_h));
-- int gui_mch_init_font __ARGS((char_u *font_name, int do_fontset));
-- GuiFont gui_mch_get_font __ARGS((char_u *name, int giveErrorIfMissing));
-- int gui_mch_adjust_charheight __ARGS((void));
-- void gui_mch_set_font __ARGS((GuiFont font));
-- void gui_mch_set_fontset __ARGS((GuiFontset fontset));
-- void gui_mch_free_font __ARGS((GuiFont font));
-- void gui_mch_free_fontset __ARGS((GuiFontset fontset));
-- GuiFontset gui_mch_get_fontset __ARGS((char_u *name, int giveErrorIfMissing, int fixed_width));
-- guicolor_T gui_mch_get_color __ARGS((char_u *reqname));
-- void gui_mch_set_fg_color __ARGS((guicolor_T color));
-- void gui_mch_set_bg_color __ARGS((guicolor_T color));
-- void gui_mch_draw_string __ARGS((int row, int col, char_u *s, int len, int flags));
-- int gui_mch_haskey __ARGS((char_u *name));
-- void gui_mch_beep __ARGS((void));
-- void gui_mch_flash __ARGS((int msec));
-- void gui_mch_invert_rectangle __ARGS((int r, int c, int nr, int nc));
-- void gui_mch_iconify __ARGS((void));
-- void gui_mch_set_foreground __ARGS((void));
-- void gui_mch_draw_hollow_cursor __ARGS((guicolor_T color));
-- void gui_mch_draw_part_cursor __ARGS((int w, int h, guicolor_T color));
-- void gui_mch_update __ARGS((void));
-- int gui_mch_wait_for_chars __ARGS((long wtime));
-- void gui_mch_flush __ARGS((void));
-- void gui_mch_clear_block __ARGS((int row1, int col1, int row2, int col2));
-- void gui_mch_clear_all __ARGS((void));
-- void gui_mch_delete_lines __ARGS((int row, int num_lines));
-- void gui_mch_insert_lines __ARGS((int row, int num_lines));
-- void clip_mch_lose_selection __ARGS((VimClipboard *cbd));
-- int clip_mch_own_selection __ARGS((VimClipboard *cbd));
-- void clip_mch_request_selection __ARGS((VimClipboard *cbd));
-- void clip_mch_set_selection __ARGS((VimClipboard *cbd));
-- void gui_mch_menu_grey __ARGS((vimmenu_T *menu, int grey));
-- void gui_mch_menu_hidden __ARGS((vimmenu_T *menu, int hidden));
-- void gui_mch_draw_menubar __ARGS((void));
-- void gui_mch_set_blinking __ARGS((long waittime, long on, long off));
-- void gui_mch_stop_blink __ARGS((void));
-- void gui_mch_start_blink __ARGS((void));
-- void process_event __ARGS((int event, int *block));
-- void gui_mch_show_popupmenu __ARGS((vimmenu_T *menu));
-- long_u gui_mch_get_rgb __ARGS((guicolor_T pixel));
-- void gui_mch_getmouse __ARGS((int *x, int *y));
-- void gui_mch_setmouse __ARGS((int x, int y));
-- void gui_mch_drawsign __ARGS((int row, int col, int typenr));
-- void gui_mch_destroy_sign __ARGS((XImage *sign));
-- void gui_mch_mousehide __ARGS((int hide));
-- void mch_set_mouse_shape __ARGS((int shape));
-- void gui_mch_menu_set_tip __ARGS((vimmenu_T *menu));
--
-- void ro_redraw_title __ARGS((int window));
-- int ro_ok_to_quit __ARGS((void));
-- /* vim: set ft=c : */
---- 0 ----
-*** ../vim-7.3.187/src/proto/os_riscos.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/os_riscos.pro 1970-01-01 01:00:00.000000000 +0100
-***************
-*** 1,49 ****
-- /* os_riscos.c */
-- void mch_write __ARGS((char_u *s, int len));
-- int mch_inchar __ARGS((char_u *buf, int maxlen, long wtime, int tb_change_cnt));
-- int mch_char_avail __ARGS((void));
-- long_u mch_avail_mem __ARGS((int special));
-- void mch_delay __ARGS((long msec, int ignoreinput));
-- void mch_suspend __ARGS((void));
-- void mch_init __ARGS((void));
-- int mch_check_win __ARGS((int argc, char **argv));
-- int mch_input_isatty __ARGS((void));
-- int mch_can_restore_title __ARGS((void));
-- int mch_can_restore_icon __ARGS((void));
-- void mch_settitle __ARGS((char_u *title, char_u *icon));
-- void mch_restore_title __ARGS((int which));
-- int mch_get_user_name __ARGS((char_u *s, int len));
-- void mch_get_host_name __ARGS((char_u *s, int len));
-- long mch_get_pid __ARGS((void));
-- int mch_dirname __ARGS((char_u *buf, int len));
-- int mch_FullName __ARGS((char_u *fname, char_u *buf, int len, int force));
-- int mch_isFullName __ARGS((char_u *fname));
-- long mch_getperm __ARGS((char_u *name));
-- int mch_setperm __ARGS((char_u *name, long perm));
-- void mch_hide __ARGS((char_u *name));
-- int mch_isdir __ARGS((char_u *name));
-- int mch_can_exe __ARGS((char_u *name));
-- int mch_nodetype __ARGS((char_u *name));
-- void mch_early_init __ARGS((void));
-- void mch_exit __ARGS((int r));
-- void mch_settmode __ARGS((int tmode));
-- void mch_setmouse __ARGS((int on));
-- int mch_screenmode __ARGS((char_u *arg));
-- int mch_get_shellsize __ARGS((void));
-- void mch_set_shellsize __ARGS((void));
-- void mch_new_shellsize __ARGS((void));
-- int mch_call_shell __ARGS((char_u *cmd, int options));
-- void mch_breakcheck __ARGS((void));
-- int mch_expandpath __ARGS((garray_T *gap, char_u *path, int flags));
-- int expand_section __ARGS((garray_T *gap, char_u *root, char_u *rest, int flags));
-- int mch_expand_wildcards __ARGS((int num_pat, char_u **pat, int *num_file, char_u ***file, int flags));
-- int mch_has_exp_wildcard __ARGS((char_u *p));
-- int mch_has_wildcard __ARGS((char_u *p));
-- int mch_remove __ARGS((char_u *file));
-- char_u *mch_munge_fname __ARGS((char_u *fname));
-- int ro_buflist_add __ARGS((char_u *old_name));
-- int mch_chdir __ARGS((char_u *dir));
-- void mch_read_filetype __ARGS((char_u *file));
-- void mch_set_filetype __ARGS((char_u *file, char_u *type));
-- int mch_check_filetype __ARGS((char_u *fname, char_u *type));
-- /* vim: set ft=c : */
---- 0 ----
-*** ../vim-7.3.187/Filelist 2011-03-22 18:10:34.000000000 +0100
---- Filelist 2011-05-10 17:19:21.000000000 +0200
-***************
-*** 428,435 ****
- README_os390.txt \
- src/Make_mint.mak \
- src/Make_ro.mak \
-- src/gui_riscos.c \
-- src/gui_riscos.h \
- src/if_sniff.c \
- src/infplist.xml \
- src/link.390 \
---- 428,433 ----
-***************
-*** 437,446 ****
- src/os_beos.h \
- src/os_beos.rsrc \
- src/os_mint.h \
-- src/os_riscos.c \
-- src/os_riscos.h \
-- src/proto/gui_riscos.pro \
-- src/proto/os_riscos.pro \
- src/os_vms_fix.com \
- src/toolbar.phi \
-
---- 435,440 ----
-*** ../vim-7.3.187/src/version.c 2011-05-10 16:41:13.000000000 +0200
---- src/version.c 2011-05-10 17:20:50.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 188,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-83. Batteries in the TV remote now last for months.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.189
-Fcc: 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.189 (after 7.3.186)
-Problem: Can't build without +clipboard feature. (Christian Ebert)
-Solution: Add the missing #ifdef.
-Files: src/normal.c
-
-
-*** ../vim-7.3.188/src/normal.c 2011-05-10 16:12:40.000000000 +0200
---- src/normal.c 2011-05-10 17:25:26.000000000 +0200
-***************
-*** 1204,1212 ****
---- 1204,1215 ----
- #ifdef FEAT_EVAL
- {
- int regname = 0;
-+
- /* Adjust the register according to 'clipboard', so that when
- * "unnamed" is present it becomes '*' or '+' instead of '"'. */
-+ # ifdef FEAT_CLIPBOARD
- adjust_clip_reg(&regname);
-+ # endif
- set_reg_var(regname);
- }
- #endif
-*** ../vim-7.3.188/src/version.c 2011-05-10 17:21:34.000000000 +0200
---- src/version.c 2011-05-10 17:29:21.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 189,
- /**/
-
---
-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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.190
-Fcc: 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.190
-Problem: When there is a "containedin" syntax argument highlighting may be
- wrong. (Radek)
-Solution: Reset current_next_list. (Ben Schmidt)
-Files: src/syntax.c
-
-
-*** ../vim-7.3.189/src/syntax.c 2011-04-11 16:56:29.000000000 +0200
---- src/syntax.c 2011-05-19 12:02:43.000000000 +0200
-***************
-*** 2566,2571 ****
---- 2566,2574 ----
- #endif
- update_si_attr(current_state.ga_len - 1);
-
-+ /* nextgroup= should not match in the end pattern */
-+ current_next_list = NULL;
-+
- /* what matches next may be different now, clear it */
- next_match_idx = 0;
- next_match_col = MAXCOL;
-*** ../vim-7.3.189/src/version.c 2011-05-10 17:29:28.000000000 +0200
---- src/version.c 2011-05-19 12:13:28.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 190,
- /**/
-
---
-From "know your smileys":
- :'-D Laughing so much that they're crying
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.191
-Fcc: 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.191
-Problem: Still some RISC OS stuff to remove.
-Solution: Remove files and lines. (Hong Xu)
- Remove the 'osfiletype' option code.
-Files: README_extra.txt, src/Make_ro.mak, src/INSTALL, src/Makefile,
- src/buffer.c, src/eval.c, src/feature.h, src/option.c,
- src/option.h, src/structs.h, src/version.c, src/pty.c, Filelist
-
-
-*** ../vim-7.3.190/README_extra.txt 2010-08-15 21:57:32.000000000 +0200
---- README_extra.txt 2011-05-19 12:35:16.000000000 +0200
-***************
-*** 13,21 ****
-
- src/os_amiga.* Files for the Amiga port.
-
-- src/gui_riscos.*
-- src/os_riscos.* Files for the RISC OS port.
--
- src/gui_beos.*
- src/os_beos.* Files for the BeOS port.
-
---- 13,18 ----
-*** ../vim-7.3.190/src/Make_ro.mak 2010-08-15 21:57:27.000000000 +0200
---- src/Make_ro.mak 1970-01-01 01:00:00.000000000 +0100
-***************
-*** 1,135 ****
-- #
-- # Makefile for Vim on RISC OS - Andy Wingate
-- #
--
-- GCC = gcc -mthrowback
-- CFLAGS = -DRISCOS -DFEAT_GUI
-- CC = $(GCC) $(CFLAGS) -O2
-- # -DUP_BC_PC_EXTERN for term.c needed as BC defined in termlib.c and term.c
--
-- TERMFLAG = -DUP_BC_PC_EXTERN
--
-- ASMFLAGS = -throwback -objasm -gcc
--
-- OBJS = o.buffer o.charset o.diff o.digraph o.edit o.eval o.ex_cmds o.ex_cmds2 \
-- o.ex_docmd o.ex_eval o.ex_getln o.fileio o.fold o.getchar \
-- o.hardcopy o.hashtab o.main o.mark o.mbyte \
-- o.memfile o.memline o.menu o.message o.misc1 o.misc2 o.move \
-- o.normal o.ops o.option o.popupmnu o.quickfix o.regexp o.screen \
-- o.search \
-- o.spell o.syntax o.tag o.term o.termlib o.ui o.undo o.version \
-- o.window o.os_riscos o.swis o.gui o.gui_riscos
--
-- Vim: $(OBJS)
-- $(GCC) -o Vim $(OBJS)
--
-- install: Vim
-- squeeze -v Vim @.!Vim.Vim
--
-- clean:
-- create o.!fake! 0
-- wipe o.* ~cf
-- remove Vim
--
-- o.swis: s.swis
-- as $(ASMFLAGS) -o o.swis s.swis
--
-- # Rules for object files
--
-- o.%: c.%
-- $(CC) -c $< -o $@
--
-- o.buffer: c.buffer
--
-- o.charset: c.charset
--
-- o.digraph: c.digraph
--
-- o.diff: c.diff
--
-- o.edit: c.edit
--
-- o.eval: c.eval
--
-- o.ex_cmds: c.ex_cmds
--
-- o.ex_cmds2: c.ex_cmds2
--
-- o.ex_docmd: c.ex_docmd
--
-- o.ex_eval: c.ex_eval
--
-- o.ex_getln: c.ex_getln
--
-- o.fileio: c.fileio
--
-- o.fold: c.fold
--
-- o.getchar: c.getchar
--
-- o.hardcopy: c.hardcopy
--
-- o.hashtab: c.hashtab
--
-- o.gui: c.gui
--
-- o.gui_riscos: c.gui_riscos
--
-- o.main: c.main
--
-- o.mark: c.mark
--
-- o.mbyte: c.mbyte
--
-- o.memfile: c.memfile
--
-- o.memline: c.memline
--
-- o.menu: c.menu
--
-- o.message: c.message
--
-- o.misc1: c.misc1
--
-- o.misc2: c.misc2
--
-- o.move: c.move
--
-- o.normal: c.normal
--
-- o.ops: c.ops
--
-- o.option: c.option
--
-- o.os_riscos: c.os_riscos
--
-- o.pty: c.pty
--
-- o.popupmnu: c.popupmnu
--
-- o.quickfix: c.quickfix
--
-- o.regexp: c.regexp
--
-- o.screen: c.screen
--
-- o.search: c.search
--
-- o.spell: c.spell
--
-- o.syntax: c.syntax
--
-- o.tag: c.tag
--
-- o.term: c.term
-- $(CC) $(TERMFLAG) -c c.term -o o.term
--
-- o.termlib: c.termlib
--
-- o.ui: c.ui
--
-- o.undo: c.undo
--
-- o.version: c.version
--
-- o.window: c.window
---- 0 ----
-*** ../vim-7.3.190/src/INSTALL 2010-08-15 21:57:28.000000000 +0200
---- src/INSTALL 2011-05-19 12:36:17.000000000 +0200
-***************
-*** 6,14 ****
- Contents:
- 1. Generic
- 2. Unix
-! 3. RISC OS
-! 4. OS/2 (with EMX 0.9b)
-! 5. Atari MiNT
-
- See INSTALLami.txt for Amiga
- See INSTALLmac.txt for Macintosh
---- 6,13 ----
- Contents:
- 1. Generic
- 2. Unix
-! 3. OS/2 (with EMX 0.9b)
-! 4. Atari MiNT
-
- See INSTALLami.txt for Amiga
- See INSTALLmac.txt for Macintosh
-***************
-*** 174,198 ****
- ./configure --without-local-dir
-
-
-! 3. RISC OS
-! =============
-!
-! Much file renaming is needed before you can compile anything.
-! You'll need UnixLib to link against, GCC and GNU make.
-!
-! I suggest you get the RISC OS binary distribution, which includes the
-! Templates file and the loader.
-!
-! Try here: http://www.ecs.soton.ac.uk/~tal197
-!
-! Do
-! :help riscos
-!
-! within the editor for more information, or read the
-! ../runtime/doc/os_risc.txt help file.
-!
-!
-! 4. OS/2
- =======
-
- Summary:
---- 173,179 ----
- ./configure --without-local-dir
-
-
-! 3. OS/2
- =======
-
- Summary:
-***************
-*** 237,243 ****
- Check ../runtime/doc/os_os2.txt for additional info on running Vim.
-
-
-! 5. Atari MiNT
- =============
-
- [NOTE: this is quite old, it might not work anymore]
---- 218,224 ----
- Check ../runtime/doc/os_os2.txt for additional info on running Vim.
-
-
-! 4. Atari MiNT
- =============
-
- [NOTE: this is quite old, it might not work anymore]
-*** ../vim-7.3.190/src/Makefile 2011-04-01 13:05:37.000000000 +0200
---- src/Makefile 2011-05-19 12:37:52.000000000 +0200
-***************
-*** 29,35 ****
- # - Uncomment the line "CONF_OPT_X = --without-x" if you have X11 but
- # want to disable using X11 libraries. This speeds up starting Vim,
- # but the window title will not be set and the X11 selection can not
-! # used.
- # - Uncomment the line "CONF_OPT_XSMP = --disable-xsmp" if you have the
- # X11 Session Management Protocol (XSMP) library (libSM) but do not
- # want to use it.
---- 29,35 ----
- # - Uncomment the line "CONF_OPT_X = --without-x" if you have X11 but
- # want to disable using X11 libraries. This speeds up starting Vim,
- # but the window title will not be set and the X11 selection can not
-! # be used.
- # - Uncomment the line "CONF_OPT_XSMP = --disable-xsmp" if you have the
- # X11 Session Management Protocol (XSMP) library (libSM) but do not
- # want to use it.
-***************
-*** 730,741 ****
- ### USL for Unix Systems Laboratories (SYSV 4.2)
- #EXTRA_DEFS = -DUSL
-
-- ### RISCos on MIPS without X11
-- #EXTRA_DEFS = -DMIPS
--
-- ### RISCos on MIPS with X11
-- #EXTRA_LIBS = -lsun
--
- ### (6) A/UX 3.1.1 with gcc (Jim Jagielski)
- #CC= gcc -D_POSIX_SOURCE
- #CFLAGS= -O2
---- 730,735 ----
-***************
-*** 1633,1639 ****
- RSRC_DIR = os_mac_rsrc
-
- PRO_MANUAL = os_amiga.pro os_msdos.pro os_win16.pro os_win32.pro \
-! os_mswin.pro os_beos.pro os_vms.pro os_riscos.pro $(PERL_PRO)
-
- # Default target is making the executable and tools
- all: $(VIMTARGET) $(TOOLS) languages $(GUI_BUNDLE)
---- 1627,1633 ----
- RSRC_DIR = os_mac_rsrc
-
- PRO_MANUAL = os_amiga.pro os_msdos.pro os_win16.pro os_win32.pro \
-! os_mswin.pro os_beos.pro os_vms.pro $(PERL_PRO)
-
- # Default target is making the executable and tools
- all: $(VIMTARGET) $(TOOLS) languages $(GUI_BUNDLE)
-*** ../vim-7.3.190/src/buffer.c 2011-05-05 17:32:40.000000000 +0200
---- src/buffer.c 2011-05-19 13:09:25.000000000 +0200
-***************
-*** 1808,1816 ****
- #ifdef FEAT_AUTOCMD
- clear_string_option(&buf->b_p_ft);
- #endif
-- #ifdef FEAT_OSFILETYPE
-- clear_string_option(&buf->b_p_oft);
-- #endif
- #ifdef FEAT_CINDENT
- clear_string_option(&buf->b_p_cink);
- clear_string_option(&buf->b_p_cino);
---- 1808,1813 ----
-*** ../vim-7.3.190/src/eval.c 2011-05-10 16:41:13.000000000 +0200
---- src/eval.c 2011-05-19 13:09:43.000000000 +0200
-***************
-*** 12076,12084 ****
- #ifdef FEAT_OLE
- "ole",
- #endif
-- #ifdef FEAT_OSFILETYPE
-- "osfiletype",
-- #endif
- #ifdef FEAT_PATH_EXTRA
- "path_extra",
- #endif
---- 12076,12081 ----
-*** ../vim-7.3.190/src/feature.h 2010-08-15 21:57:31.000000000 +0200
---- src/feature.h 2011-05-19 13:09:56.000000000 +0200
-***************
-*** 506,520 ****
- #endif
-
- /*
-- * +osfiletype filetype checking in autocommand patterns.
-- * Only on systems that support filetypes (RISC OS).
-- */
-- #if 0
-- # define FEAT_OSFILETYPE
-- # define DFLT_OFT "Text"
-- #endif
--
-- /*
- * +viminfo reading/writing the viminfo file. Takes about 8Kbyte
- * of code.
- * VIMINFO_FILE Location of user .viminfo file (should start with $).
---- 506,511 ----
-*** ../vim-7.3.190/src/option.c 2011-04-28 17:24:54.000000000 +0200
---- src/option.c 2011-05-19 13:11:42.000000000 +0200
-***************
-*** 140,148 ****
- #define PV_MOD OPT_BUF(BV_MOD)
- #define PV_MPS OPT_BUF(BV_MPS)
- #define PV_NF OPT_BUF(BV_NF)
-- #ifdef FEAT_OSFILETYPE
-- # define PV_OFT OPT_BUF(BV_OFT)
-- #endif
- #ifdef FEAT_COMPL_FUNC
- # define PV_OFU OPT_BUF(BV_OFU)
- #endif
---- 140,145 ----
-***************
-*** 337,345 ****
- static int p_mod;
- static char_u *p_mps;
- static char_u *p_nf;
-- #ifdef FEAT_OSFILETYPE
-- static char_u *p_oft;
-- #endif
- static int p_pi;
- #ifdef FEAT_TEXTOBJ
- static char_u *p_qe;
---- 334,339 ----
-***************
-*** 1901,1914 ****
- (char_u *)NULL, PV_NONE,
- {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
- {"osfiletype", "oft", P_STRING|P_ALLOCED|P_VI_DEF,
-- #ifdef FEAT_OSFILETYPE
-- (char_u *)&p_oft, PV_OFT,
-- {(char_u *)DFLT_OFT, (char_u *)0L}
-- #else
- (char_u *)NULL, PV_NONE,
-! {(char_u *)0L, (char_u *)0L}
-! #endif
-! SCRIPTID_INIT},
- {"paragraphs", "para", P_STRING|P_VI_DEF,
- (char_u *)&p_para, PV_NONE,
- {(char_u *)"IPLPPPQPP TPHPLIPpLpItpplpipbp",
---- 1895,1902 ----
- (char_u *)NULL, PV_NONE,
- {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
- {"osfiletype", "oft", P_STRING|P_ALLOCED|P_VI_DEF,
- (char_u *)NULL, PV_NONE,
-! {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT},
- {"paragraphs", "para", P_STRING|P_VI_DEF,
- (char_u *)&p_para, PV_NONE,
- {(char_u *)"IPLPPPQPP TPHPLIPpLpItpplpipbp",
-***************
-*** 5282,5290 ****
- #ifdef FEAT_AUTOCMD
- check_string_option(&buf->b_p_ft);
- #endif
-- #ifdef FEAT_OSFILETYPE
-- check_string_option(&buf->b_p_oft);
-- #endif
- #if defined(FEAT_SMARTINDENT) || defined(FEAT_CINDENT)
- check_string_option(&buf->b_p_cinw);
- #endif
---- 5270,5275 ----
-***************
-*** 9665,9673 ****
- case PV_MA: return (char_u *)&(curbuf->b_p_ma);
- case PV_MOD: return (char_u *)&(curbuf->b_changed);
- case PV_NF: return (char_u *)&(curbuf->b_p_nf);
-- #ifdef FEAT_OSFILETYPE
-- case PV_OFT: return (char_u *)&(curbuf->b_p_oft);
-- #endif
- case PV_PI: return (char_u *)&(curbuf->b_p_pi);
- #ifdef FEAT_TEXTOBJ
- case PV_QE: return (char_u *)&(curbuf->b_p_qe);
---- 9650,9655 ----
-***************
-*** 10018,10026 ****
- /* Don't copy 'filetype', it must be detected */
- buf->b_p_ft = empty_option;
- #endif
-- #ifdef FEAT_OSFILETYPE
-- buf->b_p_oft = vim_strsave(p_oft);
-- #endif
- buf->b_p_pi = p_pi;
- #if defined(FEAT_SMARTINDENT) || defined(FEAT_CINDENT)
- buf->b_p_cinw = vim_strsave(p_cinw);
---- 10000,10005 ----
-*** ../vim-7.3.190/src/option.h 2011-02-12 13:59:55.000000000 +0100
---- src/option.h 2011-05-19 13:11:46.000000000 +0200
-***************
-*** 984,992 ****
- , BV_MOD
- , BV_MPS
- , BV_NF
-- #ifdef FEAT_OSFILETYPE
-- , BV_OFT
-- #endif
- #ifdef FEAT_COMPL_FUNC
- , BV_OFU
- #endif
---- 984,989 ----
-*** ../vim-7.3.190/src/structs.h 2011-05-10 16:41:13.000000000 +0200
---- src/structs.h 2011-05-19 13:11:58.000000000 +0200
-***************
-*** 1530,1538 ****
- int b_p_ml_nobin; /* b_p_ml saved for binary mode */
- int b_p_ma; /* 'modifiable' */
- char_u *b_p_nf; /* 'nrformats' */
-- #ifdef FEAT_OSFILETYPE
-- char_u *b_p_oft; /* 'osfiletype' */
-- #endif
- int b_p_pi; /* 'preserveindent' */
- #ifdef FEAT_TEXTOBJ
- char_u *b_p_qe; /* 'quoteescape' */
---- 1530,1535 ----
-*** ../vim-7.3.190/src/version.c 2011-05-19 12:14:03.000000000 +0200
---- src/version.c 2011-05-19 13:26:42.000000000 +0200
-***************
-*** 426,436 ****
- "-ole",
- # endif
- #endif
-- #ifdef FEAT_OSFILETYPE
-- "+osfiletype",
-- #else
-- "-osfiletype",
-- #endif
- #ifdef FEAT_PATH_EXTRA
- "+path_extra",
- #else
---- 426,431 ----
-*** ../vim-7.3.190/src/pty.c 2011-04-11 14:24:33.000000000 +0200
---- src/pty.c 2011-05-19 12:43:26.000000000 +0200
-***************
-*** 123,130 ****
- static void initmaster __ARGS((int));
-
- /*
-! * Open all ptys with O_NOCTTY, just to be on the safe side
-! * (RISCos mips breaks otherwise)
- */
- #ifndef O_NOCTTY
- # define O_NOCTTY 0
---- 123,129 ----
- static void initmaster __ARGS((int));
-
- /*
-! * Open all ptys with O_NOCTTY, just to be on the safe side.
- */
- #ifndef O_NOCTTY
- # define O_NOCTTY 0
-*** ../vim-7.3.190/Filelist 2011-05-10 17:21:34.000000000 +0200
---- Filelist 2011-05-19 13:37:25.000000000 +0200
-***************
-*** 427,433 ****
- $(SRC_VMS) \
- README_os390.txt \
- src/Make_mint.mak \
-- src/Make_ro.mak \
- src/if_sniff.c \
- src/infplist.xml \
- src/link.390 \
---- 427,432 ----
-*** ../vim-7.3.190/src/version.c 2011-05-19 12:14:03.000000000 +0200
---- src/version.c 2011-05-19 13:26:42.000000000 +0200
-***************
-*** 716,717 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 191,
- /**/
-
---
-From "know your smileys":
- :-& Eating spaghetti
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.192
-Fcc: 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.192
-Problem: Ex command ":s/ \?/ /g" splits multi-byte characters into bytes.
- (Dominique Pelle)
-Solution: Advance over whole character instead of one byte.
-Files: src/ex_cmds.c
-
-
-*** ../vim-7.3.191/src/ex_cmds.c 2011-05-10 16:41:13.000000000 +0200
---- src/ex_cmds.c 2011-05-19 14:23:33.000000000 +0200
-***************
-*** 4625,4631 ****
- * for a match in this line again. */
- skip_match = TRUE;
- else
-! ++matchcol; /* search for a match at next column */
- goto skip;
- }
-
---- 4625,4639 ----
- * for a match in this line again. */
- skip_match = TRUE;
- else
-! {
-! /* search for a match at next column */
-! #ifdef FEAT_MBYTE
-! if (has_mbyte)
-! matchcol += mb_ptr2len(sub_firstline + matchcol);
-! else
-! #endif
-! ++matchcol;
-! }
- goto skip;
- }
-
-*** ../vim-7.3.191/src/version.c 2011-05-19 13:40:47.000000000 +0200
---- src/version.c 2011-05-19 14:28:44.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 192,
- /**/
-
---
-From "know your smileys":
- :-F Bucktoothed vampire with one tooth missing
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.193
-Fcc: 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.193
-Problem: In the command line window ":close" doesn't work properly. (Tony
- Mechelynck)
-Solution: Use Ctrl_C instead of K_IGNORE for cmdwin_result. (Jean-Rene
- David)
-Files: src/ex_docmd.c, src/ex_getln.c
-
-
-*** ../vim-7.3.192/src/ex_docmd.c 2011-05-10 16:41:13.000000000 +0200
---- src/ex_docmd.c 2011-05-19 14:42:56.000000000 +0200
-***************
-*** 6472,6478 ****
- {
- # ifdef FEAT_CMDWIN
- if (cmdwin_type != 0)
-! cmdwin_result = K_IGNORE;
- else
- # endif
- if (!text_locked()
---- 6472,6478 ----
- {
- # ifdef FEAT_CMDWIN
- if (cmdwin_type != 0)
-! cmdwin_result = Ctrl_C;
- else
- # endif
- if (!text_locked()
-*** ../vim-7.3.192/src/ex_getln.c 2011-04-28 17:21:49.000000000 +0200
---- src/ex_getln.c 2011-05-19 14:42:56.000000000 +0200
-***************
-*** 6324,6329 ****
---- 6324,6335 ----
- ccline.cmdbuff = vim_strsave((char_u *)"qa");
- cmdwin_result = CAR;
- }
-+ else if (cmdwin_result == Ctrl_C)
-+ {
-+ /* :q or :close, don't execute any command
-+ * and don't modify the cmd window. */
-+ ccline.cmdbuff = NULL;
-+ }
- else
- ccline.cmdbuff = vim_strsave(ml_get_curline());
- if (ccline.cmdbuff == NULL)
-*** ../vim-7.3.192/src/version.c 2011-05-19 14:30:07.000000000 +0200
---- src/version.c 2011-05-19 14:48:12.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 193,
- /**/
-
---
-There's no place like $(HOME)!
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.194
-Fcc: 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.194
-Problem: When "b" is a symlink to directory "a", resolve("b/") doesn't
- result in "a/". (ZyX)
-Solution: Remove the trailing slash. (Jean-Rene David)
-Files: src/eval.c
-
-
-*** ../vim-7.3.193/src/eval.c 2011-05-19 13:40:47.000000000 +0200
---- src/eval.c 2011-05-19 14:55:27.000000000 +0200
-***************
-*** 14980,14986 ****
---- 14980,14989 ----
-
- len = STRLEN(p);
- if (len > 0 && after_pathsep(p, p + len))
-+ {
- has_trailing_pathsep = TRUE;
-+ p[len - 1] = NUL; /* the trailing slash breaks readlink() */
-+ }
-
- q = getnextcomp(p);
- if (*q != NUL)
-*** ../vim-7.3.193/src/version.c 2011-05-19 14:50:49.000000000 +0200
---- src/version.c 2011-05-19 14:54:40.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 194,
- /**/
-
---
-Momento mori, ergo carpe diem
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.195
-Fcc: 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.195
-Problem: "} else" causes following lines to be indented too much. (Rouben
- Rostamian)
-Solution: Better detection for the "else". (Lech Lorens)
-Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
-
-
-*** ../vim-7.3.194/src/misc1.c 2011-05-10 16:41:13.000000000 +0200
---- src/misc1.c 2011-05-19 16:30:28.000000000 +0200
-***************
-*** 5482,5489 ****
- * Recognize a line that starts with '{' or '}', or ends with ';', ',', '{' or
- * '}'.
- * Don't consider "} else" a terminated line.
-! * Don't consider a line where there are unmatched opening braces before '}',
-! * ';' or ',' a terminated line.
- * Return the character terminating the line (ending char's have precedence if
- * both apply in order to determine initializations).
- */
---- 5482,5489 ----
- * Recognize a line that starts with '{' or '}', or ends with ';', ',', '{' or
- * '}'.
- * Don't consider "} else" a terminated line.
-! * If a line begins with an "else", only consider it terminated if no unmatched
-! * opening braces follow (handle "else { foo();" correctly).
- * Return the character terminating the line (ending char's have precedence if
- * both apply in order to determine initializations).
- */
-***************
-*** 5493,5513 ****
- int incl_open; /* include '{' at the end as terminator */
- int incl_comma; /* recognize a trailing comma */
- {
-! char_u found_start = 0;
-! unsigned n_open = 0;
-
- s = cin_skipcomment(s);
-
- if (*s == '{' || (*s == '}' && !cin_iselse(s)))
- found_start = *s;
-
- while (*s)
- {
- /* skip over comments, "" strings and 'c'haracters */
- s = skip_string(cin_skipcomment(s));
- if (*s == '}' && n_open > 0)
- --n_open;
-! if (n_open == 0
- && (*s == ';' || *s == '}' || (incl_comma && *s == ','))
- && cin_nocode(s + 1))
- return *s;
---- 5493,5517 ----
- int incl_open; /* include '{' at the end as terminator */
- int incl_comma; /* recognize a trailing comma */
- {
-! char_u found_start = 0;
-! unsigned n_open = 0;
-! int is_else = FALSE;
-
- s = cin_skipcomment(s);
-
- if (*s == '{' || (*s == '}' && !cin_iselse(s)))
- found_start = *s;
-
-+ if (!found_start)
-+ is_else = cin_iselse(s);
-+
- while (*s)
- {
- /* skip over comments, "" strings and 'c'haracters */
- s = skip_string(cin_skipcomment(s));
- if (*s == '}' && n_open > 0)
- --n_open;
-! if ((!is_else || n_open == 0)
- && (*s == ';' || *s == '}' || (incl_comma && *s == ','))
- && cin_nocode(s + 1))
- return *s;
-*** ../vim-7.3.194/src/testdir/test3.in 2011-05-10 13:38:23.000000000 +0200
---- src/testdir/test3.in 2011-05-19 16:29:01.000000000 +0200
-***************
-*** 1345,1351 ****
-
- STARTTEST
- :set cino&
-! 2kdd=][
- ENDTEST
-
- void func(void)
---- 1345,1351 ----
-
- STARTTEST
- :set cino&
-! 2kdd=4][
- ENDTEST
-
- void func(void)
-***************
-*** 1359,1364 ****
---- 1359,1392 ----
- printf("Foo!\n");
- }
-
-+ void func1(void)
-+ {
-+ char* tab[] = {"foo", "bar",
-+ "baz", "quux",
-+ "this line used", "to be indented incorrectly"};
-+ foo();
-+ }
-+
-+ void func2(void)
-+ {
-+ int tab[] =
-+ {1, 2,
-+ 3, 4,
-+ 5, 6};
-+
-+ printf("This line used to be indented incorrectly.\n");
-+ }
-+
-+ void func3(void)
-+ {
-+ int tab[] = {
-+ 1, 2,
-+ 3, 4,
-+ 5, 6};
-+
-+ printf("Don't you dare indent this line incorrectly!\n);
-+ }
-+
- STARTTEST
- :set cino&
- 2kdd=][
-*** ../vim-7.3.194/src/testdir/test3.ok 2011-05-10 13:38:23.000000000 +0200
---- src/testdir/test3.ok 2011-05-19 16:29:01.000000000 +0200
-***************
-*** 1216,1221 ****
---- 1216,1249 ----
- printf("Foo!\n");
- }
-
-+ void func1(void)
-+ {
-+ char* tab[] = {"foo", "bar",
-+ "baz", "quux",
-+ "this line used", "to be indented incorrectly"};
-+ foo();
-+ }
-+
-+ void func2(void)
-+ {
-+ int tab[] =
-+ {1, 2,
-+ 3, 4,
-+ 5, 6};
-+
-+ printf("This line used to be indented incorrectly.\n");
-+ }
-+
-+ void func3(void)
-+ {
-+ int tab[] = {
-+ 1, 2,
-+ 3, 4,
-+ 5, 6};
-+
-+ printf("Don't you dare indent this line incorrectly!\n);
-+ }
-+
-
- void func(void)
- {
-*** ../vim-7.3.194/src/version.c 2011-05-19 14:59:07.000000000 +0200
---- src/version.c 2011-05-19 16:34:16.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 195,
- /**/
-
---
-I AM THANKFUL...
-...for the taxes that I pay because it means that I am employed.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.196
-Fcc: 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.196
-Problem: Can't intercept a character that is going to be inserted.
-Solution: Add the InsertCharPre autocommand event. (Jakson A. Aquino)
-Files: runtime/doc/autocmd.txt, runtime/doc/eval.txt,
- runtime/doc/map.txt, src/edit.c, src/eval.c, src/fileio.c,
- src/vim.h
-
-
-*** ../mercurial/vim73/runtime/doc/autocmd.txt 2011-04-28 19:01:26.000000000 +0200
---- runtime/doc/autocmd.txt 2011-05-19 17:12:17.000000000 +0200
-***************
-*** 299,304 ****
---- 299,306 ----
- |InsertEnter| starting Insert mode
- |InsertChange| when typing <Insert> while in Insert or Replace mode
- |InsertLeave| when leaving Insert mode
-+ |InsertCharPre| when a character was typed in Insert mode, before
-+ inserting it
-
- |ColorScheme| after loading a color scheme
-
-***************
-*** 657,662 ****
---- 659,675 ----
- indicates the new mode.
- Be careful not to move the cursor or do
- anything else that the user does not expect.
-+ *InsertCharPre*
-+ InsertCharPre When a character is typed in Insert mode,
-+ before inserting the char.
-+ The |v:char| variable indicates the char typed
-+ and can be changed during the event to insert
-+ a different character. When |v:char| is set
-+ to more than one character this text is
-+ inserted literally.
-+ It is not allowed to change the text |textlock|.
-+ The event is not triggered when 'paste' is
-+ set.
- *InsertEnter*
- InsertEnter Just before starting Insert mode. Also for
- Replace mode and Virtual Replace mode. The
-*** ../mercurial/vim73/runtime/doc/eval.txt 2011-05-19 12:22:41.000000000 +0200
---- runtime/doc/eval.txt 2011-05-19 16:55:58.000000000 +0200
-***************
-*** 1293,1298 ****
---- 1293,1299 ----
- *v:char* *char-variable*
- v:char Argument for evaluating 'formatexpr' and used for the typed
- character when using <expr> in an abbreviation |:map-<expr>|.
-+ It is also used by the |InsertPreChar| event.
-
- *v:charconvert_from* *charconvert_from-variable*
- v:charconvert_from
-*** ../mercurial/vim73/runtime/doc/map.txt 2011-05-10 17:17:38.000000000 +0200
---- runtime/doc/map.txt 2011-05-19 16:40:34.000000000 +0200
-***************
-*** 226,232 ****
-
- For abbreviations |v:char| is set to the character that was typed to trigger
- the abbreviation. You can use this to decide how to expand the {lhs}. You
-! can't change v:char and you should not insert it.
-
- Be very careful about side effects! The expression is evaluated while
- obtaining characters, you may very well make the command dysfunctional.
---- 226,232 ----
-
- For abbreviations |v:char| is set to the character that was typed to trigger
- the abbreviation. You can use this to decide how to expand the {lhs}. You
-! you should not either insert or change the v:char.
-
- Be very careful about side effects! The expression is evaluated while
- obtaining characters, you may very well make the command dysfunctional.
-*** ../mercurial/vim73/src/edit.c 2011-05-10 14:22:10.000000000 +0200
---- src/edit.c 2011-05-19 17:20:53.000000000 +0200
-***************
-*** 1381,1390 ****
- goto do_intr;
- #endif
-
- /*
- * Insert a nomal character.
- */
-! normalchar:
- #ifdef FEAT_SMARTINDENT
- /* Try to perform smart-indenting. */
- ins_try_si(c);
---- 1381,1425 ----
- goto do_intr;
- #endif
-
-+ normalchar:
- /*
- * Insert a nomal character.
- */
-! #ifdef FEAT_AUTOCMD
-! if (!p_paste)
-! {
-! /* Trigger the InsertCharPre event. Lock the text to avoid
-! * weird things from happening. */
-! set_vim_var_char(c);
-! ++textlock;
-! if (apply_autocmds(EVENT_INSERTCHARPRE, NULL, NULL,
-! FALSE, curbuf))
-! {
-! /* Get the new value of v:char. If it is more than one
-! * character insert it literally. */
-! char_u *s = get_vim_var_str(VV_CHAR);
-! if (MB_CHARLEN(s) > 1)
-! {
-! if (stop_arrow() != FAIL)
-! {
-! ins_str(s);
-! AppendToRedobuffLit(s, -1);
-! }
-! c = NUL;
-! }
-! else
-! c = PTR2CHAR(s);
-! }
-!
-! set_vim_var_string(VV_CHAR, NULL, -1);
-! --textlock;
-!
-! /* If the new value is an empty string then don't insert a
-! * char. */
-! if (c == NUL)
-! break;
-! }
-! #endif
- #ifdef FEAT_SMARTINDENT
- /* Try to perform smart-indenting. */
- ins_try_si(c);
-***************
-*** 3491,3501 ****
- return;
- }
- p += len;
-! #ifdef FEAT_MBYTE
-! c = mb_ptr2char(p);
-! #else
-! c = *p;
-! #endif
- ins_compl_addleader(c);
- }
-
---- 3526,3532 ----
- return;
- }
- p += len;
-! c = PTR2CHAR(p);
- ins_compl_addleader(c);
- }
-
-*** ../mercurial/vim73/src/eval.c 2011-05-19 14:59:07.000000000 +0200
---- src/eval.c 2011-05-19 16:40:39.000000000 +0200
-***************
-*** 352,358 ****
- {VV_NAME("swapname", VAR_STRING), VV_RO},
- {VV_NAME("swapchoice", VAR_STRING), 0},
- {VV_NAME("swapcommand", VAR_STRING), VV_RO},
-! {VV_NAME("char", VAR_STRING), VV_RO},
- {VV_NAME("mouse_win", VAR_NUMBER), 0},
- {VV_NAME("mouse_lnum", VAR_NUMBER), 0},
- {VV_NAME("mouse_col", VAR_NUMBER), 0},
---- 352,358 ----
- {VV_NAME("swapname", VAR_STRING), VV_RO},
- {VV_NAME("swapchoice", VAR_STRING), 0},
- {VV_NAME("swapcommand", VAR_STRING), VV_RO},
-! {VV_NAME("char", VAR_STRING), 0},
- {VV_NAME("mouse_win", VAR_NUMBER), 0},
- {VV_NAME("mouse_lnum", VAR_NUMBER), 0},
- {VV_NAME("mouse_col", VAR_NUMBER), 0},
-*** ../mercurial/vim73/src/fileio.c 2011-05-10 16:41:13.000000000 +0200
---- src/fileio.c 2011-05-19 16:40:39.000000000 +0200
-***************
-*** 7662,7667 ****
---- 7662,7668 ----
- {"InsertChange", EVENT_INSERTCHANGE},
- {"InsertEnter", EVENT_INSERTENTER},
- {"InsertLeave", EVENT_INSERTLEAVE},
-+ {"InsertCharPre", EVENT_INSERTCHARPRE},
- {"MenuPopup", EVENT_MENUPOPUP},
- {"QuickFixCmdPost", EVENT_QUICKFIXCMDPOST},
- {"QuickFixCmdPre", EVENT_QUICKFIXCMDPRE},
-*** ../mercurial/vim73/src/vim.h 2011-05-10 16:41:13.000000000 +0200
---- src/vim.h 2011-05-19 16:40:39.000000000 +0200
-***************
-*** 1274,1279 ****
---- 1274,1280 ----
- EVENT_WINENTER, /* after entering a window */
- EVENT_WINLEAVE, /* before leaving a window */
- EVENT_ENCODINGCHANGED, /* after changing the 'encoding' option */
-+ EVENT_INSERTCHARPRE, /* before inserting a char */
- EVENT_CURSORHOLD, /* cursor in same position for a while */
- EVENT_CURSORHOLDI, /* idem, in Insert mode */
- EVENT_FUNCUNDEFINED, /* if calling a function which doesn't exist */
-*** ../vim-7.3.195/src/version.c 2011-05-19 16:35:05.000000000 +0200
---- src/version.c 2011-05-19 17:15:41.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 196,
- /**/
-
---
-I AM THANKFUL...
-...for the mess to clean after a party because it means I have
-been surrounded by friends.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.197
-Fcc: 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.197
-Problem: When a QuickfixCmdPost event removes all errors, Vim still tries
- to jump to the first error, resulting in E42.
-Solution: Get the number of error after the autocmd event. (Mike Lundy)
-Files: src/quickfix.c
-
-
-*** ../mercurial/vim73/src/quickfix.c 2011-05-10 16:41:13.000000000 +0200
---- src/quickfix.c 2011-05-19 17:34:11.000000000 +0200
-***************
-*** 2813,2829 ****
- (eap->cmdidx != CMD_grepadd
- && eap->cmdidx != CMD_lgrepadd),
- *eap->cmdlinep);
- #ifdef FEAT_AUTOCMD
- if (au_name != NULL)
- apply_autocmds(EVENT_QUICKFIXCMDPOST, au_name,
- curbuf->b_fname, TRUE, curbuf);
- #endif
- if (res > 0 && !eap->forceit)
-- {
-- if (wp != NULL)
-- qi = GET_LOC_LIST(wp);
- qf_jump(qi, 0, 0, FALSE); /* display first error */
-- }
-
- mch_remove(fname);
- vim_free(fname);
---- 2813,2833 ----
- (eap->cmdidx != CMD_grepadd
- && eap->cmdidx != CMD_lgrepadd),
- *eap->cmdlinep);
-+ if (wp != NULL)
-+ qi = GET_LOC_LIST(wp);
- #ifdef FEAT_AUTOCMD
- if (au_name != NULL)
-+ {
- apply_autocmds(EVENT_QUICKFIXCMDPOST, au_name,
- curbuf->b_fname, TRUE, curbuf);
-+ if (qi->qf_curlist < qi->qf_listcount)
-+ res = qi->qf_lists[qi->qf_curlist].qf_count;
-+ else
-+ res = 0;
-+ }
- #endif
- if (res > 0 && !eap->forceit)
- qf_jump(qi, 0, 0, FALSE); /* display first error */
-
- mch_remove(fname);
- vim_free(fname);
-*** ../vim-7.3.196/src/version.c 2011-05-19 17:25:36.000000000 +0200
---- src/version.c 2011-05-19 17:41:50.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 197,
- /**/
-
---
-I AM THANKFUL...
-...for the clothes that fit a little too snug because it
-means I have more than enough to eat.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.198
-Fcc: 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.198
-Problem: No completion for ":lang".
-Solution: Get locales to complete from. (Dominique Pelle)
-Files: src/eval.c, src/ex_cmds2.c, src/ex_getln.c,
- src/proto/ex_cmds2.pro, src/proto/ex_getln.pro, src/vim.h
-
-
-*** ../mercurial/vim73/src/eval.c 2011-05-19 17:25:36.000000000 +0200
---- src/eval.c 2011-05-19 17:52:02.000000000 +0200
-***************
-*** 911,916 ****
---- 911,917 ----
- hash_clear(&compat_hashtab);
-
- free_scriptnames();
-+ free_locales();
-
- /* global variables */
- vars_clear(&globvarht);
-*** ../mercurial/vim73/src/ex_cmds2.c 2011-05-10 16:41:13.000000000 +0200
---- src/ex_cmds2.c 2011-05-19 18:16:54.000000000 +0200
-***************
-*** 1476,1482 ****
- #endif
-
- /*
-! * Ask the user what to do when abondoning a changed buffer.
- * Must check 'write' option first!
- */
- void
---- 1476,1482 ----
- #endif
-
- /*
-! * Ask the user what to do when abandoning a changed buffer.
- * Must check 'write' option first!
- */
- void
-***************
-*** 4153,4158 ****
---- 4153,4234 ----
- }
-
- # if defined(FEAT_CMDL_COMPL) || defined(PROTO)
-+
-+ static char_u **locales = NULL; /* Array of all available locales */
-+ static int did_init_locales = FALSE;
-+
-+ static void init_locales __ARGS((void));
-+ static char_u **find_locales __ARGS((void));
-+
-+ /*
-+ * Lazy initialization of all available locales.
-+ */
-+ static void
-+ init_locales()
-+ {
-+ if (!did_init_locales)
-+ {
-+ did_init_locales = TRUE;
-+ locales = find_locales();
-+ }
-+ }
-+
-+ /* Return an array of strings for all available locales + NULL for the
-+ * last element. Return NULL in case of error. */
-+ static char_u **
-+ find_locales()
-+ {
-+ garray_T locales_ga;
-+ char_u *loc;
-+
-+ /* Find all available locales by running command "locale -a". If this
-+ * doesn't work we won't have completion. */
-+ char_u *locale_a = get_cmd_output((char_u *)"locale -a",
-+ NULL, SHELL_SILENT);
-+ if (locale_a == NULL)
-+ return NULL;
-+ ga_init2(&locales_ga, sizeof(char_u *), 20);
-+
-+ /* Transform locale_a string where each locale is separated by "\n"
-+ * into an array of locale strings. */
-+ loc = (char_u *)strtok((char *)locale_a, "\n");
-+
-+ while (loc != NULL)
-+ {
-+ if (ga_grow(&locales_ga, 1) == FAIL)
-+ break;
-+ loc = vim_strsave(loc);
-+ if (loc == NULL)
-+ break;
-+
-+ ((char_u **)locales_ga.ga_data)[locales_ga.ga_len++] = loc;
-+ loc = (char_u *)strtok(NULL, "\n");
-+ }
-+ vim_free(locale_a);
-+ if (ga_grow(&locales_ga, 1) == FAIL)
-+ {
-+ ga_clear(&locales_ga);
-+ return NULL;
-+ }
-+ ((char_u **)locales_ga.ga_data)[locales_ga.ga_len] = NULL;
-+ return (char_u **)locales_ga.ga_data;
-+ }
-+
-+ # if defined(EXITFREE) || defined(PROTO)
-+ void
-+ free_locales()
-+ {
-+ int i;
-+ if (locales != NULL)
-+ {
-+ for (i = 0; locales[i] != NULL; i++)
-+ vim_free(locales[i]);
-+ vim_free(locales);
-+ locales = NULL;
-+ }
-+ }
-+ # endif
-+
- /*
- * Function given to ExpandGeneric() to obtain the possible arguments of the
- * ":language" command.
-***************
-*** 4168,4174 ****
- return (char_u *)"ctype";
- if (idx == 2)
- return (char_u *)"time";
-! return NULL;
- }
- # endif
-
---- 4244,4268 ----
- return (char_u *)"ctype";
- if (idx == 2)
- return (char_u *)"time";
-!
-! init_locales();
-! if (locales == NULL)
-! return NULL;
-! return locales[idx - 3];
-! }
-!
-! /*
-! * Function given to ExpandGeneric() to obtain the available locales.
-! */
-! char_u *
-! get_locales(xp, idx)
-! expand_T *xp UNUSED;
-! int idx;
-! {
-! init_locales();
-! if (locales == NULL)
-! return NULL;
-! return locales[idx];
- }
- # endif
-
-*** ../mercurial/vim73/src/ex_getln.c 2011-05-19 14:50:49.000000000 +0200
---- src/ex_getln.c 2011-05-19 18:18:49.000000000 +0200
-***************
-*** 4571,4618 ****
- int context;
- char_u *((*func)__ARGS((expand_T *, int)));
- int ic;
- } tab[] =
- {
-! {EXPAND_COMMANDS, get_command_name, FALSE},
-! {EXPAND_BEHAVE, get_behave_arg, TRUE},
- #ifdef FEAT_USR_CMDS
-! {EXPAND_USER_COMMANDS, get_user_commands, FALSE},
-! {EXPAND_USER_CMD_FLAGS, get_user_cmd_flags, FALSE},
-! {EXPAND_USER_NARGS, get_user_cmd_nargs, FALSE},
-! {EXPAND_USER_COMPLETE, get_user_cmd_complete, FALSE},
- #endif
- #ifdef FEAT_EVAL
-! {EXPAND_USER_VARS, get_user_var_name, FALSE},
-! {EXPAND_FUNCTIONS, get_function_name, FALSE},
-! {EXPAND_USER_FUNC, get_user_func_name, FALSE},
-! {EXPAND_EXPRESSION, get_expr_name, FALSE},
- #endif
- #ifdef FEAT_MENU
-! {EXPAND_MENUS, get_menu_name, FALSE},
-! {EXPAND_MENUNAMES, get_menu_names, FALSE},
- #endif
- #ifdef FEAT_SYN_HL
-! {EXPAND_SYNTAX, get_syntax_name, TRUE},
- #endif
-! {EXPAND_HIGHLIGHT, get_highlight_name, TRUE},
- #ifdef FEAT_AUTOCMD
-! {EXPAND_EVENTS, get_event_name, TRUE},
-! {EXPAND_AUGROUP, get_augroup_name, TRUE},
- #endif
- #ifdef FEAT_CSCOPE
-! {EXPAND_CSCOPE, get_cscope_name, TRUE},
- #endif
- #ifdef FEAT_SIGNS
-! {EXPAND_SIGN, get_sign_name, TRUE},
- #endif
- #ifdef FEAT_PROFILE
-! {EXPAND_PROFILE, get_profile_name, TRUE},
- #endif
- #if (defined(HAVE_LOCALE_H) || defined(X_LOCALE)) \
- && (defined(FEAT_GETTEXT) || defined(FEAT_MBYTE))
-! {EXPAND_LANGUAGE, get_lang_arg, TRUE},
- #endif
-! {EXPAND_ENV_VARS, get_env_name, TRUE},
- };
- int i;
-
---- 4571,4620 ----
- int context;
- char_u *((*func)__ARGS((expand_T *, int)));
- int ic;
-+ int escaped;
- } tab[] =
- {
-! {EXPAND_COMMANDS, get_command_name, FALSE, TRUE},
-! {EXPAND_BEHAVE, get_behave_arg, TRUE, TRUE},
- #ifdef FEAT_USR_CMDS
-! {EXPAND_USER_COMMANDS, get_user_commands, FALSE, TRUE},
-! {EXPAND_USER_CMD_FLAGS, get_user_cmd_flags, FALSE, TRUE},
-! {EXPAND_USER_NARGS, get_user_cmd_nargs, FALSE, TRUE},
-! {EXPAND_USER_COMPLETE, get_user_cmd_complete, FALSE, TRUE},
- #endif
- #ifdef FEAT_EVAL
-! {EXPAND_USER_VARS, get_user_var_name, FALSE, TRUE},
-! {EXPAND_FUNCTIONS, get_function_name, FALSE, TRUE},
-! {EXPAND_USER_FUNC, get_user_func_name, FALSE, TRUE},
-! {EXPAND_EXPRESSION, get_expr_name, FALSE, TRUE},
- #endif
- #ifdef FEAT_MENU
-! {EXPAND_MENUS, get_menu_name, FALSE, TRUE},
-! {EXPAND_MENUNAMES, get_menu_names, FALSE, TRUE},
- #endif
- #ifdef FEAT_SYN_HL
-! {EXPAND_SYNTAX, get_syntax_name, TRUE, TRUE},
- #endif
-! {EXPAND_HIGHLIGHT, get_highlight_name, TRUE, TRUE},
- #ifdef FEAT_AUTOCMD
-! {EXPAND_EVENTS, get_event_name, TRUE, TRUE},
-! {EXPAND_AUGROUP, get_augroup_name, TRUE, TRUE},
- #endif
- #ifdef FEAT_CSCOPE
-! {EXPAND_CSCOPE, get_cscope_name, TRUE, TRUE},
- #endif
- #ifdef FEAT_SIGNS
-! {EXPAND_SIGN, get_sign_name, TRUE, TRUE},
- #endif
- #ifdef FEAT_PROFILE
-! {EXPAND_PROFILE, get_profile_name, TRUE, TRUE},
- #endif
- #if (defined(HAVE_LOCALE_H) || defined(X_LOCALE)) \
- && (defined(FEAT_GETTEXT) || defined(FEAT_MBYTE))
-! {EXPAND_LANGUAGE, get_lang_arg, TRUE, FALSE},
-! {EXPAND_LOCALES, get_locales, TRUE, FALSE},
- #endif
-! {EXPAND_ENV_VARS, get_env_name, TRUE, TRUE},
- };
- int i;
-
-***************
-*** 4626,4632 ****
- {
- if (tab[i].ic)
- regmatch.rm_ic = TRUE;
-! ret = ExpandGeneric(xp, &regmatch, num_file, file, tab[i].func);
- break;
- }
- }
---- 4628,4635 ----
- {
- if (tab[i].ic)
- regmatch.rm_ic = TRUE;
-! ret = ExpandGeneric(xp, &regmatch, num_file, file,
-! tab[i].func, tab[i].escaped);
- break;
- }
- }
-***************
-*** 4648,4660 ****
- * Returns OK when no problems encountered, FAIL for error (out of memory).
- */
- int
-! ExpandGeneric(xp, regmatch, num_file, file, func)
- expand_T *xp;
- regmatch_T *regmatch;
- int *num_file;
- char_u ***file;
- char_u *((*func)__ARGS((expand_T *, int)));
- /* returns a string from the list */
- {
- int i;
- int count = 0;
---- 4651,4664 ----
- * Returns OK when no problems encountered, FAIL for error (out of memory).
- */
- int
-! ExpandGeneric(xp, regmatch, num_file, file, func, escaped)
- expand_T *xp;
- regmatch_T *regmatch;
- int *num_file;
- char_u ***file;
- char_u *((*func)__ARGS((expand_T *, int)));
- /* returns a string from the list */
-+ int escaped;
- {
- int i;
- int count = 0;
-***************
-*** 4679,4685 ****
- {
- if (round)
- {
-! str = vim_strsave_escaped(str, (char_u *)" \t\\.");
- (*file)[count] = str;
- #ifdef FEAT_MENU
- if (func == get_menu_names && str != NULL)
---- 4683,4692 ----
- {
- if (round)
- {
-! if (escaped)
-! str = vim_strsave_escaped(str, (char_u *)" \t\\.");
-! else
-! str = vim_strsave(str);
- (*file)[count] = str;
- #ifdef FEAT_MENU
- if (func == get_menu_names && str != NULL)
-*** ../mercurial/vim73/src/proto/ex_cmds2.pro 2010-05-15 21:22:11.000000000 +0200
---- src/proto/ex_cmds2.pro 2011-05-19 17:53:52.000000000 +0200
-***************
-*** 83,87 ****
---- 83,89 ----
- char_u *get_mess_lang __ARGS((void));
- void set_lang_var __ARGS((void));
- void ex_language __ARGS((exarg_T *eap));
-+ void free_locales __ARGS((void));
- char_u *get_lang_arg __ARGS((expand_T *xp, int idx));
-+ char_u *get_locales __ARGS((expand_T *xp, int idx));
- /* vim: set ft=c : */
-*** ../mercurial/vim73/src/proto/ex_getln.pro 2010-08-16 21:23:30.000000000 +0200
---- src/proto/ex_getln.pro 2011-05-19 17:54:00.000000000 +0200
-***************
-*** 31,37 ****
- char_u *addstar __ARGS((char_u *fname, int len, int context));
- void set_cmd_context __ARGS((expand_T *xp, char_u *str, int len, int col));
- int expand_cmdline __ARGS((expand_T *xp, char_u *str, int col, int *matchcount, char_u ***matches));
-! int ExpandGeneric __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file, char_u *((*func)(expand_T *, int))));
- char_u *globpath __ARGS((char_u *path, char_u *file, int expand_options));
- void init_history __ARGS((void));
- int get_histtype __ARGS((char_u *name));
---- 31,37 ----
- char_u *addstar __ARGS((char_u *fname, int len, int context));
- void set_cmd_context __ARGS((expand_T *xp, char_u *str, int len, int col));
- int expand_cmdline __ARGS((expand_T *xp, char_u *str, int col, int *matchcount, char_u ***matches));
-! int ExpandGeneric __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file, char_u *((*func)(expand_T *, int)), int escaped));
- char_u *globpath __ARGS((char_u *path, char_u *file, int expand_options));
- void init_history __ARGS((void));
- int get_histtype __ARGS((char_u *name));
-*** ../mercurial/vim73/src/vim.h 2011-05-19 17:25:36.000000000 +0200
---- src/vim.h 2011-05-19 17:52:02.000000000 +0200
-***************
-*** 779,784 ****
---- 779,785 ----
- #define EXPAND_FILETYPE 37
- #define EXPAND_FILES_IN_PATH 38
- #define EXPAND_OWNSYNTAX 39
-+ #define EXPAND_LOCALES 40
-
- /* Values for exmode_active (0 is no exmode) */
- #define EXMODE_NORMAL 1
-*** ../vim-7.3.197/src/version.c 2011-05-19 17:42:54.000000000 +0200
---- src/version.c 2011-05-19 18:24:58.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 198,
- /**/
-
---
-The primary purpose of the DATA statement is to give names to constants;
-instead of referring to pi as 3.141592653589793 at every appearance, the
-variable PI can be given that value with a DATA statement and used instead
-of the longer form of the constant. This also simplifies modifying the
-program, should the value of pi change.
- -- FORTRAN manual for Xerox Computers
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.199
-Fcc: 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.199
-Problem: MS-Windows: Compilation problem of OLE with MingW compiler.
-Solution: Put #ifdef around declarations. (Guopeng Wen)
-Files: src/if_ole.h
-
-
-*** ../mercurial/vim73/src/if_ole.h 2010-05-15 21:22:11.000000000 +0200
---- src/if_ole.h 2011-05-25 12:05:50.000000000 +0200
-***************
-*** 46,53 ****
- /* header files for imported files */
- #include "oaidl.h"
-
-! void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t);
-! void __RPC_USER MIDL_user_free( void __RPC_FAR * );
-
- #ifndef __IVim_INTERFACE_DEFINED__
- #define __IVim_INTERFACE_DEFINED__
---- 46,56 ----
- /* header files for imported files */
- #include "oaidl.h"
-
-! #ifndef __MIDL_user_allocate_free_DEFINED__
-! #define __MIDL_user_allocate_free_DEFINED__
-! void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t);
-! void __RPC_USER MIDL_user_free( void __RPC_FAR * );
-! #endif
-
- #ifndef __IVim_INTERFACE_DEFINED__
- #define __IVim_INTERFACE_DEFINED__
-*** ../vim-7.3.198/src/version.c 2011-05-19 18:26:34.000000000 +0200
---- src/version.c 2011-05-25 12:08:54.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 199,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-104. When people ask about the Presidential Election you ask "Which country?"
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.200
-Fcc: 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.200 (after 7.3.198)
-Problem: CTRL-D doesn't complete :lang.
-Solution: Add the missing part of the change. (Dominique Pelle)
-Files: src/ex_docmd.c
-
-
-*** ../mercurial/vim73/src/ex_docmd.c 2011-05-19 14:50:49.000000000 +0200
---- src/ex_docmd.c 2011-05-25 12:45:02.000000000 +0200
-***************
-*** 3861,3873 ****
- #if (defined(HAVE_LOCALE_H) || defined(X_LOCALE)) \
- && (defined(FEAT_GETTEXT) || defined(FEAT_MBYTE))
- case CMD_language:
-! if (*skiptowhite(arg) == NUL)
- {
- xp->xp_context = EXPAND_LANGUAGE;
- xp->xp_pattern = arg;
- }
- else
-! xp->xp_context = EXPAND_NOTHING;
- break;
- #endif
- #if defined(FEAT_PROFILE)
---- 3861,3884 ----
- #if (defined(HAVE_LOCALE_H) || defined(X_LOCALE)) \
- && (defined(FEAT_GETTEXT) || defined(FEAT_MBYTE))
- case CMD_language:
-! p = skiptowhite(arg);
-! if (*p == NUL)
- {
- xp->xp_context = EXPAND_LANGUAGE;
- xp->xp_pattern = arg;
- }
- else
-! {
-! if ( STRNCMP(arg, "messages", p - arg) == 0
-! || STRNCMP(arg, "ctype", p - arg) == 0
-! || STRNCMP(arg, "time", p - arg) == 0)
-! {
-! xp->xp_context = EXPAND_LOCALES;
-! xp->xp_pattern = skipwhite(p);
-! }
-! else
-! xp->xp_context = EXPAND_NOTHING;
-! }
- break;
- #endif
- #if defined(FEAT_PROFILE)
-*** ../vim-7.3.199/src/version.c 2011-05-25 12:09:46.000000000 +0200
---- src/version.c 2011-05-25 12:49:49.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 200,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-105. When someone asks you for your address, you tell them your URL.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.201
-Fcc: 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.201 (after 7.3.195)
-Problem: "} else" still causes following lines to be indented too much.
-Solution: Better detection for the "else" block. (Lech Lorens)
-Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
-
-
-*** ../mercurial/vim73/src/misc1.c 2011-05-19 16:35:05.000000000 +0200
---- src/misc1.c 2011-05-25 13:29:45.000000000 +0200
-***************
-*** 7541,7557 ****
-
- /*
- * When searching for a terminated line, don't use the
-! * one between the "if" and the "else".
- * Need to use the scope of this "else". XXX
- * If whilelevel != 0 continue looking for a "do {".
- */
-! if (cin_iselse(l)
-! && whilelevel == 0
-! && ((trypos = find_start_brace(ind_maxcomment))
-! == NULL
- || find_match(LOOKFOR_IF, trypos->lnum,
-! ind_maxparen, ind_maxcomment) == FAIL))
-! break;
- }
-
- /*
---- 7541,7565 ----
-
- /*
- * When searching for a terminated line, don't use the
-! * one between the "if" and the matching "else".
- * Need to use the scope of this "else". XXX
- * If whilelevel != 0 continue looking for a "do {".
- */
-! if (cin_iselse(l) && whilelevel == 0)
-! {
-! /* If we're looking at "} else", let's make sure we
-! * find the opening brace of the enclosing scope,
-! * not the one from "if () {". */
-! if (*l == '}')
-! curwin->w_cursor.col =
-! (l - ml_get_curline()) + 1;
-!
-! if ((trypos = find_start_brace(ind_maxcomment))
-! == NULL
- || find_match(LOOKFOR_IF, trypos->lnum,
-! ind_maxparen, ind_maxcomment) == FAIL)
-! break;
-! }
- }
-
- /*
-*** ../mercurial/vim73/src/testdir/test3.in 2011-05-19 16:35:05.000000000 +0200
---- src/testdir/test3.in 2011-05-25 13:23:51.000000000 +0200
-***************
-*** 1413,1418 ****
---- 1413,1433 ----
- }
-
- STARTTEST
-+ :set cino&
-+ 2kdd=][
-+ ENDTEST
-+
-+ void func(void)
-+ {
-+ for (int i = 0; i < 10; ++i)
-+ if (i & 1) {
-+ foo(1);
-+ } else
-+ foo(0);
-+ baz();
-+ }
-+
-+ STARTTEST
- :g/^STARTTEST/.,/^ENDTEST/d
- :1;/start of AUTO/,$wq! test.out
- ENDTEST
-*** ../mercurial/vim73/src/testdir/test3.ok 2011-05-19 16:35:05.000000000 +0200
---- src/testdir/test3.ok 2011-05-25 13:23:51.000000000 +0200
-***************
-*** 1262,1264 ****
---- 1262,1275 ----
- foo();
- }
-
-+
-+ void func(void)
-+ {
-+ for (int i = 0; i < 10; ++i)
-+ if (i & 1) {
-+ foo(1);
-+ } else
-+ foo(0);
-+ baz();
-+ }
-+
-*** ../vim-7.3.200/src/version.c 2011-05-25 12:51:17.000000000 +0200
---- src/version.c 2011-05-25 13:33:16.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 201,
- /**/
-
---
-Laughing helps. It's like jogging on the inside.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.202
-Fcc: 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.202
-Problem: Cannot influence the indent inside a namespace.
-Solution: Add the "N" 'cino' parameter. (Konstantin Lepa)
-Files: runtime/doc/indent.txt, src/misc1.c, src/testdir/test3.in,
- src/testdir/test3.ok
-
-
-*** ../mercurial/vim73/runtime/doc/indent.txt 2011-04-28 19:01:26.000000000 +0200
---- runtime/doc/indent.txt 2011-05-25 14:35:37.000000000 +0200
-***************
-*** 128,140 ****
- used CTRL-T or CTRL-D.
-
- *cinoptions-values*
-! The 'cinoptions' option sets how Vim performs indentation. In the list below,
- "N" represents a number of your choice (the number can be negative). When
- there is an 's' after the number, Vim multiplies the number by 'shiftwidth':
- "1s" is 'shiftwidth', "2s" is two times 'shiftwidth', etc. You can use a
-! decimal point, too: "-0.5s" is minus half a 'shiftwidth'. The examples below
-! assume a 'shiftwidth' of 4.
-!
- >N Amount added for "normal" indent. Used after a line that should
- increase the indent (lines starting with "if", an opening brace,
- etc.). (default 'shiftwidth').
---- 128,147 ----
- used CTRL-T or CTRL-D.
-
- *cinoptions-values*
-! The 'cinoptions' option sets how Vim performs indentation. The value after
-! the option character can be one of these (N is any number):
-! N indent N spaces
-! -N indent N spaces to the left
-! Ns N times 'shiftwidth spaces
-! -Ns N times 'shiftwidth spaces to the left
-!
-! In the list below,
- "N" represents a number of your choice (the number can be negative). When
- there is an 's' after the number, Vim multiplies the number by 'shiftwidth':
- "1s" is 'shiftwidth', "2s" is two times 'shiftwidth', etc. You can use a
-! decimal point, too: "-0.5s" is minus half a 'shiftwidth'.
-! The examples below assume a 'shiftwidth' of 4.
-! *cino->*
- >N Amount added for "normal" indent. Used after a line that should
- increase the indent (lines starting with "if", an opening brace,
- etc.). (default 'shiftwidth').
-***************
-*** 145,150 ****
---- 152,158 ----
- foo; foo; foo;
- } } }
- <
-+ *cino-e*
- eN Add N to the prevailing indent inside a set of braces if the
- opening brace at the End of the line (more precise: is not the
- first character in a line). This is useful if you want a
-***************
-*** 160,165 ****
---- 168,174 ----
- bar; bar; bar;
- } } }
- <
-+ *cino-n*
- nN Add N to the prevailing indent for a statement after an "if",
- "while", etc., if it is NOT inside a set of braces. This is
- useful if you want a different indent when there is no '{'
-***************
-*** 174,179 ****
---- 183,189 ----
- bar; bar; bar;
- } } }
- <
-+ *cino-f*
- fN Place the first opening brace of a function or other block in
- column N. This applies only for an opening brace that is not
- inside other braces and is at the start of the line. What comes
-***************
-*** 184,189 ****
---- 194,200 ----
- { { {
- int foo; int foo; int foo;
- <
-+ *cino-{*
- {N Place opening braces N characters from the prevailing indent.
- This applies only for opening braces that are inside other
- braces. (default 0).
-***************
-*** 193,198 ****
---- 204,210 ----
- { { {
- foo; foo; foo;
- <
-+ *cino-}*
- }N Place closing braces N characters from the matching opening
- brace. (default 0).
-
-***************
-*** 202,207 ****
---- 214,220 ----
- foo; foo; foo;
- } } }
- <
-+ *cino-^*
- ^N Add N to the prevailing indent inside a set of braces if the
- opening brace is in column 0. This can specify a different
- indent for whole of a function (some may like to set it to a
-***************
-*** 216,221 ****
---- 229,235 ----
- } } }
- } } }
- <
-+ *cino-L*
- LN Controls placement of jump labels. If N is negative, the label
- will be placed at column 1. If N is non-negative, the indent of
- the label will be the prevailing indent minus N. (default -1).
-***************
-*** 229,234 ****
---- 243,249 ----
- } } }
- } } }
- <
-+ *cino-:*
- :N Place case labels N characters from the indent of the switch().
- (default 'shiftwidth').
-
-***************
-*** 240,245 ****
---- 255,261 ----
- default: default:
- } }
- <
-+ *cino-=*
- =N Place statements occurring after a case label N characters from
- the indent of the label. (default 'shiftwidth').
-
-***************
-*** 247,252 ****
---- 263,269 ----
- case 11: case 11: a = a + 1;
- a = a + 1; b = b + 1;
- <
-+ *cino-l*
- lN If N != 0 Vim will align with a case label instead of the
- statement after it in the same line.
-
-***************
-*** 256,261 ****
---- 273,279 ----
- break; break;
- } }
- <
-+ *cino-b*
- bN If N != 0 Vim will align a final "break" with the case label,
- so that case..break looks like a sort of block. (default: 0).
- When using 1, consider adding "0=break" to 'cinkeys'.
-***************
-*** 272,277 ****
---- 290,296 ----
- break; break;
- } }
- <
-+ *cino-g*
- gN Place C++ scope declarations N characters from the indent of the
- block they are in. (default 'shiftwidth'). A scope declaration
- can be "public:", "protected:" or "private:".
-***************
-*** 283,288 ****
---- 302,308 ----
- private: private:
- } }
- <
-+ *cino-h*
- hN Place statements occurring after a C++ scope declaration N
- characters from the indent of the label. (default
- 'shiftwidth').
-***************
-*** 291,296 ****
---- 311,331 ----
- public: public: a = a + 1;
- a = a + 1; b = b + 1;
- <
-+ *cino-N*
-+ NN Indent inside C++ namespace N characters extra compared to a
-+ normal block. (default 0).
-+
-+ cino= cino=N-s >
-+ namespace { namespace {
-+ void function(); void function();
-+ } }
-+
-+ namespace my namespace my
-+ { {
-+ void function(); void function();
-+ } }
-+ <
-+ *cino-p*
- pN Parameter declarations for K&R-style function declarations will
- be indented N characters from the margin. (default
- 'shiftwidth').
-***************
-*** 300,305 ****
---- 335,341 ----
- int a; int a; int a;
- char b; char b; char b;
- <
-+ *cino-t*
- tN Indent a function return type declaration N characters from the
- margin. (default 'shiftwidth').
-
-***************
-*** 307,312 ****
---- 343,349 ----
- int int int
- func() func() func()
- <
-+ *cino-i*
- iN Indent C++ base class declarations and constructor
- initializations, if they start in a new line (otherwise they
- are aligned at the right side of the ':').
-***************
-*** 330,335 ****
---- 368,374 ----
- a = b + 9 * a = b + 9 *
- c; c;
- <
-+ *cino-c*
- cN Indent comment lines after the comment opener, when there is no
- other text with which to align, N characters from the comment
- opener. (default 3). See also |format-comments|.
-***************
-*** 339,344 ****
---- 378,384 ----
- text. text.
- */ */
- <
-+ *cino-C*
- CN When N is non-zero, indent comment lines by the amount specified
- with the c flag above even if there is other text behind the
- comment opener. (default 0).
-***************
-*** 349,360 ****
---- 389,402 ----
- ********/ ********/
- < (Example uses ":set comments& comments-=s1:/* comments^=s0:/*")
-
-+ *cino-/*
- /N Indent comment lines N characters extra. (default 0).
- cino= cino=/4 >
- a = b; a = b;
- /* comment */ /* comment */
- c = d; c = d;
- <
-+ *cino-(*
- (N When in unclosed parentheses, indent N characters from the line
- with the unclosed parentheses. Add a 'shiftwidth' for every
- unclosed parentheses. When N is 0 or the unclosed parentheses
-***************
-*** 370,375 ****
---- 412,418 ----
- (c2 || c3)) (c2 || c3))
- { {
- <
-+ *cino-u*
- uN Same as (N, but for one level deeper. (default 'shiftwidth').
-
- cino= cino=u2 >
-***************
-*** 377,382 ****
---- 420,426 ----
- && (c22345 && (c22345
- || c3)) || c3))
- <
-+ *cino-U*
- UN When N is non-zero, do not ignore the indenting specified by
- ( or u in case that the unclosed parentheses is the first
- non-white character in its line. (default 0).
-***************
-*** 388,393 ****
---- 432,438 ----
- c3 c3
- ) && c4; ) && c4;
- <
-+ *cino-2*
- wN When in unclosed parentheses and N is non-zero and either
- using "(0" or "u0", respectively, or using "U0" and the unclosed
- parentheses is the first non-white character in its line, line
-***************
-*** 400,405 ****
---- 445,451 ----
- || c3)) || c3))
- foo; foo;
- <
-+ *cino-W*
- WN When in unclosed parentheses and N is non-zero and either
- using "(0" or "u0", respectively and the unclosed parentheses is
- the last non-white character in its line and it is not the
-***************
-*** 414,419 ****
---- 460,466 ----
- a_short_line(argument, a_short_line(argument,
- argument); argument);
- <
-+ *cino-m*
- mN When N is non-zero, line up a line starting with a closing
- parentheses with the first character of the line with the
- matching opening parentheses. (default 0).
-***************
-*** 428,433 ****
---- 475,481 ----
- ) )
- foo; foo;
- <
-+ *cino-M*
- MN When N is non-zero, line up a line starting with a closing
- parentheses with the first character of the previous line.
- (default 0).
-***************
-*** 437,443 ****
- cond2 cond2
- ) )
- <
-! *java-cinoptions* *java-indenting*
- jN Indent java anonymous classes correctly. The value 'N' is
- currently unused but must be non-zero (e.g. 'j1'). 'j1' will
- indent for example the following code snippet correctly: >
---- 485,491 ----
- cond2 cond2
- ) )
- <
-! *java-cinoptions* *java-indenting* *cino-j*
- jN Indent java anonymous classes correctly. The value 'N' is
- currently unused but must be non-zero (e.g. 'j1'). 'j1' will
- indent for example the following code snippet correctly: >
-***************
-*** 448,454 ****
- }
- });
- <
-! *javascript-cinoptions* *javascript-indenting*
- JN Indent JavaScript object declarations correctly by not confusing
- them with labels. The value 'N' is currently unused but must be
- non-zero (e.g. 'J1'). >
---- 496,502 ----
- }
- });
- <
-! *javascript-cinoptions* *javascript-indenting* *cino-J*
- JN Indent JavaScript object declarations correctly by not confusing
- them with labels. The value 'N' is currently unused but must be
- non-zero (e.g. 'J1'). >
-***************
-*** 483,489 ****
-
-
- The defaults, spelled out in full, are:
-! cinoptions=>s,e0,n0,f0,{0,}0,^0,L-1,:s,=s,l0,b0,gs,hs,ps,ts,is,+s,
- c3,C0,/0,(2s,us,U0,w0,W0,m0,j0,J0,)20,*70,#0
-
- Vim puts a line in column 1 if:
---- 534,540 ----
-
-
- The defaults, spelled out in full, are:
-! cinoptions=>s,e0,n0,f0,{0,}0,^0,L-1,:s,=s,l0,b0,gs,hs,N0,ps,ts,is,+s,
- c3,C0,/0,(2s,us,U0,w0,W0,m0,j0,J0,)20,*70,#0
-
- Vim puts a line in column 1 if:
-*** ../mercurial/vim73/src/misc1.c 2011-05-25 13:33:59.000000000 +0200
---- src/misc1.c 2011-05-25 14:57:31.000000000 +0200
-***************
-*** 4959,4964 ****
---- 4959,4965 ----
- static int corr_ind_maxparen __ARGS((int ind_maxparen, pos_T *startpos));
- static int find_last_paren __ARGS((char_u *l, int start, int end));
- static int find_match __ARGS((int lookfor, linenr_T ourscope, int ind_maxparen, int ind_maxcomment));
-+ static int cin_is_cpp_namespace __ARGS((char_u *));
-
- static int ind_hash_comment = 0; /* # starts a comment */
-
-***************
-*** 5221,5226 ****
---- 5222,5271 ----
- return (*(s = cin_skipcomment(s + i)) == ':' && s[1] != ':');
- }
-
-+ /* Maximum number of lines to search back for a "namespace" line. */
-+ #define FIND_NAMESPACE_LIM 20
-+
-+ /*
-+ * Recognize a "namespace" scope declaration.
-+ */
-+ static int
-+ cin_is_cpp_namespace(s)
-+ char_u *s;
-+ {
-+ char_u *p;
-+ int has_name = FALSE;
-+
-+ s = cin_skipcomment(s);
-+ if (STRNCMP(s, "namespace", 9) == 0 && (s[9] == NUL || !vim_iswordc(s[9])))
-+ {
-+ p = cin_skipcomment(skipwhite(s + 9));
-+ while (*p != NUL)
-+ {
-+ if (vim_iswhite(*p))
-+ {
-+ has_name = TRUE; /* found end of a name */
-+ p = cin_skipcomment(skipwhite(p));
-+ }
-+ else if (*p == '{')
-+ {
-+ break;
-+ }
-+ else if (vim_iswordc(*p))
-+ {
-+ if (has_name)
-+ return FALSE; /* word character after skipping past name */
-+ ++p;
-+ }
-+ else
-+ {
-+ return FALSE;
-+ }
-+ }
-+ return TRUE;
-+ }
-+ return FALSE;
-+ }
-+
- /*
- * Return a pointer to the first non-empty non-comment character after a ':'.
- * Return NULL if not found.
-***************
-*** 6296,6301 ****
---- 6341,6351 ----
- */
- int ind_keep_case_label = 0;
-
-+ /*
-+ * handle C++ namespace
-+ */
-+ int ind_cpp_namespace = 0;
-+
- pos_T cur_curpos;
- int amount;
- int scope_amount;
-***************
-*** 6336,6341 ****
---- 6386,6392 ----
- int n;
- int iscase;
- int lookfor_break;
-+ int lookfor_cpp_namespace = FALSE;
- int cont_amount = 0; /* amount for continuation line */
- int original_line_islabel;
-
-***************
-*** 6409,6414 ****
---- 6460,6466 ----
- case 'J': ind_js = n; break;
- case 'l': ind_keep_case_label = n; break;
- case '#': ind_hash_comment = n; break;
-+ case 'N': ind_cpp_namespace = n; break;
- }
- if (*options == ',')
- ++options;
-***************
-*** 6976,6986 ****
---- 7028,7051 ----
- if (start_brace == BRACE_IN_COL0) /* '{' is in column 0 */
- {
- amount = ind_open_left_imag;
-+ lookfor_cpp_namespace = TRUE;
-+ }
-+ else if (start_brace == BRACE_AT_START &&
-+ lookfor_cpp_namespace) /* '{' is at start */
-+ {
-+
-+ lookfor_cpp_namespace = TRUE;
- }
- else
- {
- if (start_brace == BRACE_AT_END) /* '{' is at end of line */
-+ {
- amount += ind_open_imag;
-+
-+ l = skipwhite(ml_get_curline());
-+ if (cin_is_cpp_namespace(l))
-+ amount += ind_cpp_namespace;
-+ }
- else
- {
- /* Compensate for adding ind_open_extra later. */
-***************
-*** 7151,7156 ****
---- 7216,7261 ----
- else
- amount += ind_continuation;
- }
-+ else if (lookfor_cpp_namespace)
-+ {
-+ if (curwin->w_cursor.lnum == ourscope)
-+ continue;
-+
-+ if (curwin->w_cursor.lnum == 0
-+ || curwin->w_cursor.lnum
-+ < ourscope - FIND_NAMESPACE_LIM)
-+ break;
-+
-+ l = ml_get_curline();
-+
-+ /*
-+ * If we're in a comment now, skip to the start of the
-+ * comment.
-+ */
-+ trypos = find_start_comment(ind_maxcomment);
-+ if (trypos != NULL)
-+ {
-+ curwin->w_cursor.lnum = trypos->lnum + 1;
-+ curwin->w_cursor.col = 0;
-+ continue;
-+ }
-+
-+ /*
-+ * Skip preprocessor directives and blank lines.
-+ */
-+ if (cin_ispreproc_cont(&l, &curwin->w_cursor.lnum))
-+ continue;
-+
-+ if (cin_is_cpp_namespace(l))
-+ {
-+ amount += ind_cpp_namespace;
-+ break;
-+ }
-+
-+ if (cin_nocode(l))
-+ continue;
-+
-+ }
- else if (lookfor != LOOKFOR_TERM
- && lookfor != LOOKFOR_CPP_BASECLASS)
- {
-*** ../mercurial/vim73/src/testdir/test3.in 2011-05-25 13:33:59.000000000 +0200
---- src/testdir/test3.in 2011-05-25 14:47:31.000000000 +0200
-***************
-*** 799,804 ****
---- 799,867 ----
- df */
- hello
- }
-+
-+ /* valid namespaces with normal indent */
-+ namespace
-+ {
-+ {
-+ 111111111111;
-+ }
-+ }
-+ namespace /* test */
-+ {
-+ 11111111111111111;
-+ }
-+ namespace // test
-+ {
-+ 111111111111111111;
-+ }
-+ namespace
-+ {
-+ 111111111111111111;
-+ }
-+ namespace test
-+ {
-+ 111111111111111111;
-+ }
-+ namespace{
-+ 111111111111111111;
-+ }
-+ namespace test{
-+ 111111111111111111;
-+ }
-+ namespace {
-+ 111111111111111111;
-+ }
-+ namespace test {
-+ 111111111111111111;
-+ namespace test2 {
-+ 22222222222222222;
-+ }
-+ }
-+
-+ /* invalid namespaces use block indent */
-+ namespace test test2 {
-+ 111111111111111111111;
-+ }
-+ namespace11111111111 {
-+ 111111111111;
-+ }
-+ namespace() {
-+ 1111111111111;
-+ }
-+ namespace()
-+ {
-+ 111111111111111111;
-+ }
-+ namespace test test2
-+ {
-+ 1111111111111111111;
-+ }
-+ namespace111111111
-+ {
-+ 111111111111111111;
-+ }
-+
- /* end of AUTO */
-
- STARTTEST
-***************
-*** 1428,1433 ****
---- 1491,1566 ----
- }
-
- STARTTEST
-+ :set cino=N-s
-+ /namespaces
-+ =/^NAMESPACEEND
-+ ENDTEST
-+
-+ /* valid namespaces with normal indent */
-+ namespace
-+ {
-+ {
-+ 111111111111;
-+ }
-+ }
-+ namespace /* test */
-+ {
-+ 11111111111111111;
-+ }
-+ namespace // test
-+ {
-+ 111111111111111111;
-+ }
-+ namespace
-+ {
-+ 111111111111111111;
-+ }
-+ namespace test
-+ {
-+ 111111111111111111;
-+ }
-+ namespace{
-+ 111111111111111111;
-+ }
-+ namespace test{
-+ 111111111111111111;
-+ }
-+ namespace {
-+ 111111111111111111;
-+ }
-+ namespace test {
-+ 111111111111111111;
-+ namespace test2 {
-+ 22222222222222222;
-+ }
-+ }
-+
-+ /* invalid namespaces use block indent */
-+ namespace test test2 {
-+ 111111111111111111111;
-+ }
-+ namespace11111111111 {
-+ 111111111111;
-+ }
-+ namespace() {
-+ 1111111111111;
-+ }
-+ namespace()
-+ {
-+ 111111111111111111;
-+ }
-+ namespace test test2
-+ {
-+ 1111111111111111111;
-+ }
-+ namespace111111111
-+ {
-+ 111111111111111111;
-+ }
-+ NAMESPACEEND
-+
-+
-+ STARTTEST
- :g/^STARTTEST/.,/^ENDTEST/d
- :1;/start of AUTO/,$wq! test.out
- ENDTEST
-*** ../mercurial/vim73/src/testdir/test3.ok 2011-05-25 13:33:59.000000000 +0200
---- src/testdir/test3.ok 2011-05-25 14:48:02.000000000 +0200
-***************
-*** 787,792 ****
---- 787,855 ----
- df */
- hello
- }
-+
-+ /* valid namespaces with normal indent */
-+ namespace
-+ {
-+ {
-+ 111111111111;
-+ }
-+ }
-+ namespace /* test */
-+ {
-+ 11111111111111111;
-+ }
-+ namespace // test
-+ {
-+ 111111111111111111;
-+ }
-+ namespace
-+ {
-+ 111111111111111111;
-+ }
-+ namespace test
-+ {
-+ 111111111111111111;
-+ }
-+ namespace{
-+ 111111111111111111;
-+ }
-+ namespace test{
-+ 111111111111111111;
-+ }
-+ namespace {
-+ 111111111111111111;
-+ }
-+ namespace test {
-+ 111111111111111111;
-+ namespace test2 {
-+ 22222222222222222;
-+ }
-+ }
-+
-+ /* invalid namespaces use block indent */
-+ namespace test test2 {
-+ 111111111111111111111;
-+ }
-+ namespace11111111111 {
-+ 111111111111;
-+ }
-+ namespace() {
-+ 1111111111111;
-+ }
-+ namespace()
-+ {
-+ 111111111111111111;
-+ }
-+ namespace test test2
-+ {
-+ 1111111111111111111;
-+ }
-+ namespace111111111
-+ {
-+ 111111111111111111;
-+ }
-+
- /* end of AUTO */
-
-
-***************
-*** 1273,1275 ****
---- 1336,1403 ----
- baz();
- }
-
-+
-+ /* valid namespaces with normal indent */
-+ namespace
-+ {
-+ {
-+ 111111111111;
-+ }
-+ }
-+ namespace /* test */
-+ {
-+ 11111111111111111;
-+ }
-+ namespace // test
-+ {
-+ 111111111111111111;
-+ }
-+ namespace
-+ {
-+ 111111111111111111;
-+ }
-+ namespace test
-+ {
-+ 111111111111111111;
-+ }
-+ namespace{
-+ 111111111111111111;
-+ }
-+ namespace test{
-+ 111111111111111111;
-+ }
-+ namespace {
-+ 111111111111111111;
-+ }
-+ namespace test {
-+ 111111111111111111;
-+ namespace test2 {
-+ 22222222222222222;
-+ }
-+ }
-+
-+ /* invalid namespaces use block indent */
-+ namespace test test2 {
-+ 111111111111111111111;
-+ }
-+ namespace11111111111 {
-+ 111111111111;
-+ }
-+ namespace() {
-+ 1111111111111;
-+ }
-+ namespace()
-+ {
-+ 111111111111111111;
-+ }
-+ namespace test test2
-+ {
-+ 1111111111111111111;
-+ }
-+ namespace111111111
-+ {
-+ 111111111111111111;
-+ }
-+ NAMESPACEEND
-+
-+
-*** ../vim-7.3.201/src/version.c 2011-05-25 13:33:59.000000000 +0200
---- src/version.c 2011-05-25 15:14:20.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 202,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-107. When using your phone you forget that you don't have to use your
- keyboard.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.203
-Fcc: 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.203
-Problem: MS-Windows: Can't run an external command without a console window.
-Solution: Support ":!start /b cmd". (Xaizek)
-Files: runtime/doc/os_win32.txt, src/os_win32.c
-
-
-*** ../mercurial/vim73/src/os_win32.c 2011-05-05 18:31:54.000000000 +0200
---- src/os_win32.c 2011-05-25 16:45:31.000000000 +0200
-***************
-*** 3401,3406 ****
---- 3401,3407 ----
- {
- STARTUPINFO si;
- PROCESS_INFORMATION pi;
-+ DWORD flags = CREATE_NEW_CONSOLE;
-
- si.cb = sizeof(si);
- si.lpReserved = NULL;
-***************
-*** 3418,3423 ****
---- 3419,3440 ----
- si.dwFlags = STARTF_USESHOWWINDOW;
- si.wShowWindow = SW_SHOWMINNOACTIVE;
- }
-+ else if ((STRNICMP(cmdbase, "/b", 2) == 0)
-+ && vim_iswhite(cmdbase[2]))
-+ {
-+ cmdbase = skipwhite(cmdbase + 2);
-+ flags = CREATE_NO_WINDOW;
-+ si.dwFlags = STARTF_USESTDHANDLES;
-+ si.hStdInput = CreateFile("\\\\.\\NUL", // File name
-+ GENERIC_READ, // Access flags
-+ 0, // Share flags
-+ NULL, // Security att.
-+ OPEN_EXISTING, // Open flags
-+ FILE_ATTRIBUTE_NORMAL, // File att.
-+ NULL); // Temp file
-+ si.hStdOutput = si.hStdInput;
-+ si.hStdError = si.hStdInput;
-+ }
-
- /* When the command is in double quotes, but 'shellxquote' is
- * empty, keep the double quotes around the command.
-***************
-*** 3445,3451 ****
- NULL, // Process security attributes
- NULL, // Thread security attributes
- FALSE, // Inherit handles
-! CREATE_NEW_CONSOLE, // Creation flags
- NULL, // Environment
- NULL, // Current directory
- &si, // Startup information
---- 3462,3468 ----
- NULL, // Process security attributes
- NULL, // Thread security attributes
- FALSE, // Inherit handles
-! flags, // Creation flags
- NULL, // Environment
- NULL, // Current directory
- &si, // Startup information
-***************
-*** 3458,3463 ****
---- 3475,3485 ----
- EMSG(_("E371: Command not found"));
- #endif
- }
-+ if (si.hStdInput != NULL)
-+ {
-+ /* Close the handle to \\.\NUL */
-+ CloseHandle(si.hStdInput);
-+ }
- /* Close the handles to the subprocess, so that it goes away */
- CloseHandle(pi.hThread);
- CloseHandle(pi.hProcess);
-*** ../vim-7.3.202/src/version.c 2011-05-25 15:16:06.000000000 +0200
---- src/version.c 2011-05-25 17:05:59.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 203,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-108. While reading a magazine, you look for the Zoom icon for a better
- look at a photograph.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.204
-Fcc: 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.204 (after 7.3.201)
-Problem: Compiler warning.
-Solution: Add type cast. (Mike Williams)
-Files: src/misc1.c
-
-
-*** ../mercurial/vim73/src/misc1.c 2011-05-25 15:16:06.000000000 +0200
---- src/misc1.c 2011-05-25 17:25:10.000000000 +0200
-***************
-*** 7657,7663 ****
- * not the one from "if () {". */
- if (*l == '}')
- curwin->w_cursor.col =
-! (l - ml_get_curline()) + 1;
-
- if ((trypos = find_start_brace(ind_maxcomment))
- == NULL
---- 7657,7663 ----
- * not the one from "if () {". */
- if (*l == '}')
- curwin->w_cursor.col =
-! (colnr_T)(l - ml_get_curline()) + 1;
-
- if ((trypos = find_start_brace(ind_maxcomment))
- == NULL
-*** ../vim-7.3.203/src/version.c 2011-05-25 17:06:16.000000000 +0200
---- src/version.c 2011-05-25 17:29:32.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 204,
- /**/
-
---
-In a world without walls and borders, who needs windows and gates?
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.205
-Fcc: 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.205
-Problem: Syntax "extend" doesn't work correctly.
-Solution: Avoid calling check_state_ends() recursively (Ben Schmidt)
-Files: src/syntax.c
-
-
-*** ../mercurial/vim73/src/syntax.c 2011-05-19 12:14:03.000000000 +0200
---- src/syntax.c 2011-05-25 17:47:46.000000000 +0200
-***************
-*** 990,996 ****
---- 990,999 ----
- * previous line and regions that have "keepend".
- */
- if (current_state.ga_len > 0)
-+ {
- syn_update_ends(TRUE);
-+ check_state_ends();
-+ }
-
- next_match_idx = -1;
- ++current_line_id;
-***************
-*** 1064,1070 ****
- }
- }
- check_keepend();
-- check_state_ends();
- }
-
- /****************************************
---- 1067,1072 ----
-***************
-*** 2533,2539 ****
- check_state_ends()
- {
- stateitem_T *cur_si;
-! int had_extend = FALSE;
-
- cur_si = &CUR_STATE(current_state.ga_len - 1);
- for (;;)
---- 2535,2541 ----
- check_state_ends()
- {
- stateitem_T *cur_si;
-! int had_extend;
-
- cur_si = &CUR_STATE(current_state.ga_len - 1);
- for (;;)
-***************
-*** 2586,2593 ****
-
- /* When the ended item has "extend", another item with
- * "keepend" now needs to check for its end. */
-! if (cur_si->si_flags & HL_EXTEND)
-! had_extend = TRUE;
-
- pop_current_state();
-
---- 2588,2594 ----
-
- /* When the ended item has "extend", another item with
- * "keepend" now needs to check for its end. */
-! had_extend = (cur_si->si_flags & HL_EXTEND);
-
- pop_current_state();
-
-*** ../vim-7.3.204/src/version.c 2011-05-25 17:29:40.000000000 +0200
---- src/version.c 2011-05-25 17:52:57.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 205,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-110. You actually volunteer to become your employer's webmaster.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.206
-Fcc: 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.206
-Problem: 64bit MS-Windows compiler warning.
-Solution: Use HandleToLong() instead of type cast. (Mike Williams)
-Files: src/gui_w32.c
-
-
-*** ../mercurial/vim73/src/gui_w32.c 2011-01-17 20:08:04.000000000 +0100
---- src/gui_w32.c 2011-05-25 21:14:10.000000000 +0200
-***************
-*** 1575,1581 ****
-
- #ifdef FEAT_EVAL
- /* set the v:windowid variable */
-! set_vim_var_nr(VV_WINDOWID, (long)s_hwnd);
- #endif
-
- theend:
---- 1575,1581 ----
-
- #ifdef FEAT_EVAL
- /* set the v:windowid variable */
-! set_vim_var_nr(VV_WINDOWID, HandleToLong(s_hwnd));
- #endif
-
- theend:
-*** ../vim-7.3.205/src/version.c 2011-05-25 17:56:23.000000000 +0200
---- src/version.c 2011-05-25 21:16:17.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 206,
- /**/
-
---
-FIXME and XXX are two common keywords used to mark broken or incomplete code
-not only since XXX as a sex reference would grab everybody's attention but
-simply due to the fact that Vim would highlight these words.
- -- Hendrik Scholz
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.207
-Fcc: 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.207
-Problem: Can't compile with MSVC with pentium4 and 64 bit.
-Solution: Only use SSE2 for 32 bit. (Mike Williams)
-Files: src/Make_mvc.mak
-
-
-*** ../mercurial/vim73/src/Make_mvc.mak 2011-02-15 18:06:11.000000000 +0100
---- src/Make_mvc.mak 2011-06-04 11:59:38.000000000 +0200
-***************
-*** 409,416 ****
- CPUARG =
- !endif
- !else
-! # VC8/9 only allows specifying SSE architecture
-! !if "$(CPUNR)" == "pentium4"
- CPUARG = /arch:SSE2
- !endif
- !endif
---- 409,416 ----
- CPUARG =
- !endif
- !else
-! # VC8/9/10 only allows specifying SSE architecture but only for 32bit
-! !if "$(ASSEMBLY_ARCHITECTURE)" == "x86" && "$(CPUNR)" == "pentium4"
- CPUARG = /arch:SSE2
- !endif
- !endif
-*** ../vim-7.3.206/src/version.c 2011-05-25 21:18:02.000000000 +0200
---- src/version.c 2011-06-12 20:30:30.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 207,
- /**/
-
---
-"The question of whether computers can think is just like the question
-of whether submarines can swim." -- Edsger W. Dijkstra
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.208
-Fcc: 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.208
-Problem: Early terminated if statement.
-Solution: Remove the semicolon. (Lech Lorens)
-Files: src/gui_mac.c
-
-
-*** ../mercurial/vim73/src/gui_mac.c 2011-01-17 20:08:04.000000000 +0100
---- src/gui_mac.c 2011-06-06 05:35:46.000000000 +0200
-***************
-*** 1840,1846 ****
- p.v -= gui.scrollbar_height;
- p.v -= p.v % gui.char_height;
- p.v += 2 * gui.border_width;
-! if (gui.which_scrollbars[SBAR_BOTTOM]);
- p.v += gui.scrollbar_height;
-
- ZoomWindowIdeal(whichWindow, thePart, &p);
---- 1840,1846 ----
- p.v -= gui.scrollbar_height;
- p.v -= p.v % gui.char_height;
- p.v += 2 * gui.border_width;
-! if (gui.which_scrollbars[SBAR_BOTTOM])
- p.v += gui.scrollbar_height;
-
- ZoomWindowIdeal(whichWindow, thePart, &p);
-*** ../vim-7.3.207/src/version.c 2011-06-12 20:31:25.000000000 +0200
---- src/version.c 2011-06-12 20:33:00.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 208,
- /**/
-
---
-Keep America beautiful. Swallow your beer cans.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.209
-Fcc: 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.209
-Problem: MSVC Install instructions point to wrong batch file.
-Solution: Add a batch file for use with MSVC 10.
-Files: src/msvc2010.bat, src/INSTALLpc.txt, Filelist
-
-
-*** ../mercurial/vim73/src/msvc2010.bat 2011-06-12 20:35:31.000000000 +0200
---- src/msvc2010.bat 2011-06-09 05:08:35.000000000 +0200
-***************
-*** 0 ****
---- 1,7 ----
-+ @echo off
-+ rem To be used on MS-Windows for Visual C++ 2010 Express Edition
-+ rem aka Microsoft Visual Studio 10.0.
-+ rem See INSTALLpc.txt for information.
-+ @echo on
-+
-+ call "%VS100COMNTOOLS%%vsvars32.bat"
-*** ../mercurial/vim73/src/INSTALLpc.txt 2010-08-16 21:23:30.000000000 +0200
---- src/INSTALLpc.txt 2011-06-08 06:47:46.000000000 +0200
-***************
-*** 28,35 ****
- 9. MS-DOS
-
- The currently preferred method is using the free Visual C++ Toolkit 2008
-! |msvc-2008-express|. If you need the executable to run on Windows 98 or ME,
-! use the 2003 one |msvc-2003-toolkit|.
-
-
- 1. Microsoft Visual C++
---- 28,36 ----
- 9. MS-DOS
-
- The currently preferred method is using the free Visual C++ Toolkit 2008
-! |msvc-2008-express|, the produced binary runs on most MS-Windows systems. If
-! you need the executable to run on Windows 98 or ME, use the 2003 one
-! |msvc-2003-toolkit|.
-
-
- 1. Microsoft Visual C++
-***************
-*** 176,182 ****
- http://www.microsoft.com/express/vc/Default.aspx
- This includes the IDE and the debugger.
-
-! To set the environment execute the msvc2008.bat script. You can then build
- Vim with Make_mvc.mak.
-
-
---- 177,183 ----
- http://www.microsoft.com/express/vc/Default.aspx
- This includes the IDE and the debugger.
-
-! To set the environment execute the msvc2010.bat script. You can then build
- Vim with Make_mvc.mak.
-
-
-*** ../mercurial/vim73/Filelist 2011-05-19 13:40:47.000000000 +0200
---- Filelist 2011-06-09 05:17:25.000000000 +0200
-***************
-*** 262,267 ****
---- 262,268 ----
- src/bigvim.bat \
- src/msvcsetup.bat \
- src/msvc2008.bat \
-+ src/msvc2010.bat \
- src/dimm.idl \
- src/dlldata.c \
- src/dosinst.c \
-*** ../vim-7.3.208/src/version.c 2011-06-12 20:33:30.000000000 +0200
---- src/version.c 2011-06-12 20:34:44.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 209,
- /**/
-
---
-"Hit any key to continue" is a lie.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.210
-Fcc: 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.210
-Problem: Can't always find the file when using cscope.
-Solution: Add the 'cscoperelative' option. (Raghavendra D Prabhu)
-Files: runtime/doc/if_cscop.txt, runtime/doc/options.txt,
- src/if_cscope.c, src/options.c, src/options.h
-
-
-*** ../mercurial/vim73/runtime/doc/if_cscop.txt 2010-09-30 21:38:08.000000000 +0200
---- runtime/doc/if_cscop.txt 2011-06-12 19:54:26.000000000 +0200
-***************
-*** 271,276 ****
---- 271,285 ----
- :set cst
- :set nocst
- <
-+ *cscoperelative* *csre*
-+ If 'cscoperelative' set, then in absence of a prefix given to cscope (prefx
-+ is the argument to -P option of cscope), basename of cscope.out location
-+ (usually the project root directory) will be used as the prefix to construt
-+ absolute path.The default is off. Note: This option is only effective when
-+ cscope (cscopeprg) is initialized without a prefix path (-P). Examples: >
-+ :set csre
-+ :set nocsre
-+ <
- *cscopetagorder* *csto*
- The value of 'csto' determines the order in which |:cstag| performs a search.
- If 'csto' is set to zero, cscope database(s) are searched first, followed
-*** ../mercurial/vim73/runtime/doc/options.txt 2011-05-19 12:22:41.000000000 +0200
---- runtime/doc/options.txt 2011-06-12 20:00:10.000000000 +0200
-***************
-*** 2209,2214 ****
---- 2209,2224 ----
- Specifies whether to use quickfix window to show cscope results.
- See |cscopequickfix|.
-
-+ *'cscoperelative'* *'csre'*
-+ 'cscoperelative' 'csre' boolean (default off)
-+ global
-+ {not available when compiled without the |+cscope|
-+ feature}
-+ {not in Vi}
-+ In the absence of a prefix (-P) for cscope. setting this option enables
-+ to use the basename of cscope.out path as the prefix.
-+ See |cscoperelative|.
-+
- *'cscopetag'* *'cst'* *'nocscopetag'* *'nocst'*
- 'cscopetag' 'cst' boolean (default off)
- global
-*** ../mercurial/vim73/src/if_cscope.c 2011-05-05 16:41:19.000000000 +0200
---- src/if_cscope.c 2011-06-12 20:25:17.000000000 +0200
-***************
-*** 2471,2512 ****
- */
- static char *
- cs_resolve_file(i, name)
-! int i;
- char *name;
- {
-! char *fullname;
-! int len;
-
- /*
-! * ppath is freed when we destroy the cscope connection.
-! * fullname is freed after cs_make_vim_style_matches, after it's been
-! * copied into the tag buffer used by vim
- */
- len = (int)(strlen(name) + 2);
- if (csinfo[i].ppath != NULL)
- len += (int)strlen(csinfo[i].ppath);
-
- if ((fullname = (char *)alloc(len)) == NULL)
- return NULL;
-
-! /*
-! * note/example: this won't work if the cscope output already starts
- * "../.." and the prefix path is also "../..". if something like this
-! * happens, you are screwed up and need to fix how you're using cscope.
-! */
-! if (csinfo[i].ppath != NULL &&
-! (strncmp(name, csinfo[i].ppath, strlen(csinfo[i].ppath)) != 0) &&
-! (name[0] != '/')
- #ifdef WIN32
-! && name[0] != '\\' && name[1] != ':'
- #endif
-! )
- (void)sprintf(fullname, "%s/%s", csinfo[i].ppath, name);
- else
- (void)sprintf(fullname, "%s", name);
-
- return fullname;
-! } /* cs_resolve_file */
-
-
- /*
---- 2471,2531 ----
- */
- static char *
- cs_resolve_file(i, name)
-! int i;
- char *name;
- {
-! char *fullname;
-! int len;
-! char_u *csdir = NULL;
-
- /*
-! * Ppath is freed when we destroy the cscope connection.
-! * Fullname is freed after cs_make_vim_style_matches, after it's been
-! * copied into the tag buffer used by Vim.
- */
- len = (int)(strlen(name) + 2);
- if (csinfo[i].ppath != NULL)
- len += (int)strlen(csinfo[i].ppath);
-+ else if (p_csre && csinfo[i].fname != NULL)
-+ {
-+ /* If 'cscoperelative' is set and ppath is not set, use cscope.out
-+ * path in path resolution. */
-+ csdir = alloc(MAXPATHL);
-+ if (csdir != NULL)
-+ {
-+ vim_strncpy(csdir, (char_u *)csinfo[i].fname,
-+ gettail((char_u *)csinfo[i].fname) - 1 - (char_u *)csinfo[i].fname);
-+ len += (int)STRLEN(csdir);
-+ }
-+ }
-
- if ((fullname = (char *)alloc(len)) == NULL)
- return NULL;
-
-! /* Note/example: this won't work if the cscope output already starts
- * "../.." and the prefix path is also "../..". if something like this
-! * happens, you are screwed up and need to fix how you're using cscope. */
-! if (csinfo[i].ppath != NULL
-! && (strncmp(name, csinfo[i].ppath, strlen(csinfo[i].ppath)) != 0)
-! && (name[0] != '/')
- #ifdef WIN32
-! && name[0] != '\\' && name[1] != ':'
- #endif
-! )
- (void)sprintf(fullname, "%s/%s", csinfo[i].ppath, name);
-+ else if (csdir != NULL && csinfo[i].fname != NULL && STRLEN(csdir) > 0)
-+ {
-+ /* Check for csdir to be non empty to avoid empty path concatenated to
-+ * cscope output. TODO: avoid the unnecessary alloc/free of fullname. */
-+ vim_free(fullname);
-+ fullname = concat_fnames(csdir, (char_u *)name, TRUE);
-+ }
- else
- (void)sprintf(fullname, "%s", name);
-
-+ vim_free(csdir);
- return fullname;
-! }
-
-
- /*
-*** ../vim-7.3.209/src/version.c 2011-06-12 20:36:00.000000000 +0200
---- src/version.c 2011-06-12 20:37:48.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 210,
- /**/
-
---
-Apathy Error: Don't bother striking any key.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.211
-Fcc: 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.211 (after 7.3.210)
-Problem: Compiler warning.
-Solution: Add type cast.
-Files: src/if_cscope.c
-
-
-*** ../mercurial/vim73/src/if_cscope.c 2011-06-12 20:42:17.000000000 +0200
---- src/if_cscope.c 2011-06-12 21:22:53.000000000 +0200
-***************
-*** 2518,2524 ****
- /* Check for csdir to be non empty to avoid empty path concatenated to
- * cscope output. TODO: avoid the unnecessary alloc/free of fullname. */
- vim_free(fullname);
-! fullname = concat_fnames(csdir, (char_u *)name, TRUE);
- }
- else
- (void)sprintf(fullname, "%s", name);
---- 2518,2524 ----
- /* Check for csdir to be non empty to avoid empty path concatenated to
- * cscope output. TODO: avoid the unnecessary alloc/free of fullname. */
- vim_free(fullname);
-! fullname = (char *)concat_fnames(csdir, (char_u *)name, TRUE);
- }
- else
- (void)sprintf(fullname, "%s", name);
-*** ../vim-7.3.210/src/version.c 2011-06-12 20:42:17.000000000 +0200
---- src/version.c 2011-06-12 21:24:03.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 211,
- /**/
-
---
-Did you ever see a "Hit any key to continue" message in a music piece?
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.212
-Fcc: 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.212
-Problem: With Python 3.2 ":py3" fails.
-Solution: Move PyEval_InitThreads() to after Py_Initialize(). (Roland
- Puntaier) Check abiflags in configure. (Andreas Behr)
-Files: src/if_python3.c, src/auto/configure, src/configure.in
-
-
-*** ../mercurial/vim73/src/if_python3.c 2011-02-25 15:18:46.000000000 +0100
---- src/if_python3.c 2011-06-11 04:24:49.000000000 +0200
-***************
-*** 547,560 ****
- Py_SetPythonHome(PYTHON3_HOME);
- #endif
-
-- /* initialise threads */
-- PyEval_InitThreads();
--
- #if !defined(MACOS) || defined(MACOS_X_UNIX)
- Py_Initialize();
- #else
- PyMac_Initialize();
- #endif
-
- #ifdef DYNAMIC_PYTHON3
- get_py3_exceptions();
---- 547,559 ----
- Py_SetPythonHome(PYTHON3_HOME);
- #endif
-
- #if !defined(MACOS) || defined(MACOS_X_UNIX)
- Py_Initialize();
- #else
- PyMac_Initialize();
- #endif
-+ /* initialise threads, must be after Py_Initialize() */
-+ PyEval_InitThreads();
-
- #ifdef DYNAMIC_PYTHON3
- get_py3_exceptions();
-*** ../mercurial/vim73/src/auto/configure 2011-05-10 15:41:59.000000000 +0200
---- src/auto/configure 2011-06-12 21:33:16.000000000 +0200
-***************
-*** 5505,5510 ****
---- 5505,5527 ----
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $vi_cv_var_python3_version" >&5
- $as_echo "$vi_cv_var_python3_version" >&6; }
-
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Python's abiflags" >&5
-+ $as_echo_n "checking Python's abiflags... " >&6; }
-+ if test "${vi_cv_var_python3_abiflags+set}" = set; then :
-+ $as_echo_n "(cached) " >&6
-+ else
-+
-+ vi_cv_var_python3_abiflags=
-+ if ${vi_cv_path_python3} -c \
-+ "import sys; sys.exit(${vi_cv_var_python3_version} < 3.2)"
-+ then
-+ vi_cv_var_python3_abiflags=`${vi_cv_path_python3} -c \
-+ "import sys; print(sys.abiflags)"`
-+ fi
-+ fi
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $vi_cv_var_python3_abiflags" >&5
-+ $as_echo "$vi_cv_var_python3_abiflags" >&6; }
-+
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Python's install prefix" >&5
- $as_echo_n "checking Python's install prefix... " >&6; }
- if test "${vi_cv_path_python3_pfx+set}" = set; then :
-***************
-*** 5555,5563 ****
- else
-
- vi_cv_path_python3_conf=
- for path in "${vi_cv_path_python3_pfx}" "${vi_cv_path_python3_epfx}"; do
- for subdir in lib64 lib share; do
-! d="${path}/${subdir}/python${vi_cv_var_python3_version}/config"
- if test -d "$d" && test -f "$d/config.c"; then
- vi_cv_path_python3_conf="$d"
- fi
---- 5572,5584 ----
- else
-
- vi_cv_path_python3_conf=
-+ config_dir="config"
-+ if test "${vi_cv_var_python3_abiflags}" != ""; then
-+ config_dir="${config_dir}-${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags}"
-+ fi
- for path in "${vi_cv_path_python3_pfx}" "${vi_cv_path_python3_epfx}"; do
- for subdir in lib64 lib share; do
-! d="${path}/${subdir}/python${vi_cv_var_python3_version}/${config_dir}"
- if test -d "$d" && test -f "$d/config.c"; then
- vi_cv_path_python3_conf="$d"
- fi
-***************
-*** 5592,5598 ****
- eval "`cd ${PYTHON3_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
- rm -f -- "${tmp_mkf}"
- vi_cv_path_python3_plibs="-L${PYTHON3_CONFDIR} -lpython${vi_cv_var_python3_version}"
-! vi_cv_path_python3_plibs="${vi_cv_path_python3_plibs} ${python3_BASEMODLIBS} ${python3_LIBS} ${python3_SYSLIBS} ${python3_LINKFORSHARED}"
- vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-ltermcap//`
- vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-lffi//`
-
---- 5613,5619 ----
- eval "`cd ${PYTHON3_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
- rm -f -- "${tmp_mkf}"
- vi_cv_path_python3_plibs="-L${PYTHON3_CONFDIR} -lpython${vi_cv_var_python3_version}"
-! vi_cv_path_python3_plibs="${vi_cv_path_python3_plibs} ${python3_BASEMODLIBS} ${python3_LIBS} ${python3_SYSLIBS}"
- vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-ltermcap//`
- vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-lffi//`
-
-***************
-*** 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
---- 5622,5630 ----
-
- 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}${vi_cv_var_python3_abiflags} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
- else
-! PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -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
-*** ../mercurial/vim73/src/configure.in 2011-05-10 15:41:59.000000000 +0200
---- src/configure.in 2011-06-12 21:31:18.000000000 +0200
-***************
-*** 992,997 ****
---- 992,1008 ----
- ${vi_cv_path_python3} -c 'import sys; print(sys.version[:3])'`
- ]])
-
-+ dnl -- get abiflags for python 3.2 or higher (PEP 3149)
-+ AC_CACHE_CHECK(Python's abiflags,vi_cv_var_python3_abiflags,
-+ [
-+ vi_cv_var_python3_abiflags=
-+ if ${vi_cv_path_python3} -c \
-+ "import sys; sys.exit(${vi_cv_var_python3_version} < 3.2)"
-+ then
-+ vi_cv_var_python3_abiflags=`${vi_cv_path_python3} -c \
-+ "import sys; print(sys.abiflags)"`
-+ fi ])
-+
- dnl -- find where python3 thinks it was installed
- AC_CACHE_CHECK(Python's install prefix,vi_cv_path_python3_pfx,
- [ vi_cv_path_python3_pfx=`
-***************
-*** 1021,1029 ****
- AC_CACHE_CHECK(Python's configuration directory,vi_cv_path_python3_conf,
- [
- vi_cv_path_python3_conf=
- for path in "${vi_cv_path_python3_pfx}" "${vi_cv_path_python3_epfx}"; do
- for subdir in lib64 lib share; do
-! d="${path}/${subdir}/python${vi_cv_var_python3_version}/config"
- if test -d "$d" && test -f "$d/config.c"; then
- vi_cv_path_python3_conf="$d"
- fi
---- 1032,1044 ----
- AC_CACHE_CHECK(Python's configuration directory,vi_cv_path_python3_conf,
- [
- vi_cv_path_python3_conf=
-+ config_dir="config"
-+ if test "${vi_cv_var_python3_abiflags}" != ""; then
-+ config_dir="${config_dir}-${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags}"
-+ fi
- for path in "${vi_cv_path_python3_pfx}" "${vi_cv_path_python3_epfx}"; do
- for subdir in lib64 lib share; do
-! d="${path}/${subdir}/python${vi_cv_var_python3_version}/${config_dir}"
- if test -d "$d" && test -f "$d/config.c"; then
- vi_cv_path_python3_conf="$d"
- fi
-***************
-*** 1055,1061 ****
- eval "`cd ${PYTHON3_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
- rm -f -- "${tmp_mkf}"
- vi_cv_path_python3_plibs="-L${PYTHON3_CONFDIR} -lpython${vi_cv_var_python3_version}"
-! vi_cv_path_python3_plibs="${vi_cv_path_python3_plibs} ${python3_BASEMODLIBS} ${python3_LIBS} ${python3_SYSLIBS} ${python3_LINKFORSHARED}"
- dnl remove -ltermcap, it can conflict with an earlier -lncurses
- vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-ltermcap//`
- vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-lffi//`
---- 1070,1076 ----
- eval "`cd ${PYTHON3_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
- rm -f -- "${tmp_mkf}"
- vi_cv_path_python3_plibs="-L${PYTHON3_CONFDIR} -lpython${vi_cv_var_python3_version}"
-! vi_cv_path_python3_plibs="${vi_cv_path_python3_plibs} ${python3_BASEMODLIBS} ${python3_LIBS} ${python3_SYSLIBS}"
- dnl remove -ltermcap, it can conflict with an earlier -lncurses
- vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-ltermcap//`
- vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-lffi//`
-***************
-*** 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.
---- 1078,1086 ----
-
- 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}${vi_cv_var_python3_abiflags} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
- else
-! PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -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.
-*** ../vim-7.3.211/src/version.c 2011-06-12 21:24:56.000000000 +0200
---- src/version.c 2011-06-12 21:35:31.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 212,
- /**/
-
---
-In Joseph Heller's novel "Catch-22", the main character tries to get out of a
-war by proving he is crazy. But the mere fact he wants to get out of the war
-only shows he isn't crazy -- creating the original "Catch-22".
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.213
-Fcc: 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.213
-Problem: Javascript object literal is not indented correctly.
-Solution: Make a special case for when "J1" is in 'cino'. (Luc Deschenaux)
-Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
-
-
-*** ../mercurial/vim73/src/misc1.c 2011-05-25 17:29:40.000000000 +0200
---- src/misc1.c 2011-06-10 04:58:10.000000000 +0200
-***************
-*** 6965,6971 ****
- * ldfd) {
- * }
- */
-! if ((ind_keep_case_label
- && cin_iscase(skipwhite(ml_get_curline()), FALSE)))
- amount = get_indent();
- else
---- 6965,6971 ----
- * ldfd) {
- * }
- */
-! if (ind_js || (ind_keep_case_label
- && cin_iscase(skipwhite(ml_get_curline()), FALSE)))
- amount = get_indent();
- else
-*** ../mercurial/vim73/src/testdir/test3.in 2011-05-25 15:16:06.000000000 +0200
---- src/testdir/test3.in 2011-06-12 21:44:12.000000000 +0200
-***************
-*** 1492,1501 ****
-
- STARTTEST
- :set cino=N-s
-! /namespaces
- =/^NAMESPACEEND
- ENDTEST
-
- /* valid namespaces with normal indent */
- namespace
- {
---- 1492,1502 ----
-
- STARTTEST
- :set cino=N-s
-! /^NAMESPACESTART
- =/^NAMESPACEEND
- ENDTEST
-
-+ NAMESPACESTART
- /* valid namespaces with normal indent */
- namespace
- {
-***************
-*** 1561,1566 ****
---- 1562,1588 ----
-
-
- STARTTEST
-+ :set cino=J1
-+ /^JSSTART
-+ =/^JSEND
-+ ENDTEST
-+
-+ JSSTART
-+ var bar = {
-+ foo: {
-+ that: this,
-+ some: ok,
-+ },
-+ "bar":{
-+ a : 2,
-+ b: "123abc",
-+ x: 4,
-+ "y": 5
-+ }
-+ }
-+ JSEND
-+
-+ STARTTEST
- :g/^STARTTEST/.,/^ENDTEST/d
- :1;/start of AUTO/,$wq! test.out
- ENDTEST
-*** ../mercurial/vim73/src/testdir/test3.ok 2011-05-25 15:16:06.000000000 +0200
---- src/testdir/test3.ok 2011-06-12 21:44:26.000000000 +0200
-***************
-*** 1337,1342 ****
---- 1337,1343 ----
- }
-
-
-+ NAMESPACESTART
- /* valid namespaces with normal indent */
- namespace
- {
-***************
-*** 1401,1403 ****
---- 1402,1420 ----
- NAMESPACEEND
-
-
-+
-+ JSSTART
-+ var bar = {
-+ foo: {
-+ that: this,
-+ some: ok,
-+ },
-+ "bar":{
-+ a : 2,
-+ b: "123abc",
-+ x: 4,
-+ "y": 5
-+ }
-+ }
-+ JSEND
-+
-*** ../vim-7.3.212/src/version.c 2011-06-12 21:37:06.000000000 +0200
---- src/version.c 2011-06-12 21:48:34.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 213,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-169. You hire a housekeeper for your home page.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.214
-Fcc: 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.214
-Problem: The text displayed by ":z-" isn't exactly like old Vi.
-Solution: Add one to the start line number. (ChangZhuo Chen)
-Files: src/ex_cmds.c
-
-
-*** ../mercurial/vim73/src/ex_cmds.c 2011-05-19 14:30:07.000000000 +0200
---- src/ex_cmds.c 2011-05-19 14:23:33.000000000 +0200
-***************
-*** 4097,4104 ****
- switch (*kind)
- {
- case '-':
-! start = lnum - bigness * (linenr_T)(x - kind);
-! end = start + bigness;
- curs = end;
- break;
-
---- 4097,4104 ----
- switch (*kind)
- {
- case '-':
-! start = lnum - bigness * (linenr_T)(x - kind) + 1;
-! end = start + bigness - 1;
- curs = end;
- break;
-
-*** ../vim-7.3.213/src/version.c 2011-06-12 21:51:01.000000000 +0200
---- src/version.c 2011-06-12 22:02:20.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 214,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-170. You introduce your wife as "my_lady@home.wife" and refer to your
- children as "forked processes."
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.215
-Fcc: 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.215 (after 7.3.210)
-Problem: Wrong file names in previous patch. (Toothpik)
-Solution: Include the option changes.
-Files: src/option.c, src/option.h
-
-
-*** ../mercurial/vim73/src/option.c 2011-05-19 13:40:47.000000000 +0200
---- src/option.c 2011-06-12 19:58:17.000000000 +0200
-***************
-*** 901,906 ****
---- 901,913 ----
- {(char_u *)0L, (char_u *)0L}
- #endif
- SCRIPTID_INIT},
-+ {"cscoperelative", "csre", P_BOOL|P_VI_DEF|P_VIM,
-+ #ifdef FEAT_CSCOPE
-+ (char_u *)&p_csre, PV_NONE,
-+ #else
-+ (char_u *)NULL, PV_NONE,
-+ #endif
-+ {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT},
- {"cscopetag", "cst", P_BOOL|P_VI_DEF|P_VIM,
- #ifdef FEAT_CSCOPE
- (char_u *)&p_cst, PV_NONE,
-*** ../mercurial/vim73/src/option.h 2011-05-19 13:40:47.000000000 +0200
---- src/option.h 2011-06-12 19:58:49.000000000 +0200
-***************
-*** 391,396 ****
---- 391,397 ----
- EXTERN char_u *p_cpo; /* 'cpoptions' */
- #ifdef FEAT_CSCOPE
- EXTERN char_u *p_csprg; /* 'cscopeprg' */
-+ EXTERN int p_csre; /* 'cscoperelative' */
- # ifdef FEAT_QUICKFIX
- EXTERN char_u *p_csqf; /* 'cscopequickfix' */
- # define CSQF_CMDS "sgdctefi"
-*** ../vim-7.3.214/src/version.c 2011-06-12 22:03:15.000000000 +0200
---- src/version.c 2011-06-12 22:12:34.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 215,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-171. You invent another person and chat with yourself in empty chat rooms.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.216
-Fcc: 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.216
-Problem: When recovering a file a range of lines is missing. (Charles Jie)
-Solution: Reset the index when advancing to the next pointer block. Add a
- test to verify recovery works.
-Files: src/memline.c, src/testdir/test78.in, src/testdir/test78.ok,
- src/testdir/Makefile, 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
-
-
-*** ../mercurial/vim73/src/memline.c 2011-05-10 16:41:13.000000000 +0200
---- src/memline.c 2011-06-13 00:56:09.000000000 +0200
-***************
-*** 1507,1512 ****
---- 1507,1513 ----
- bnum = pp->pb_pointer[idx].pe_bnum;
- line_count = pp->pb_pointer[idx].pe_line_count;
- page_count = pp->pb_pointer[idx].pe_page_count;
-+ idx = 0;
- continue;
- }
- }
-*** ../mercurial/vim73/src/testdir/test78.in 2011-06-13 01:05:54.000000000 +0200
---- src/testdir/test78.in 2011-06-13 00:54:48.000000000 +0200
-***************
-*** 0 ****
---- 1,46 ----
-+ Inserts 10000 lines with text to fill the swap file with two levels of pointer
-+ blocks. Then recovers from the swap file and checks all text is restored.
-+
-+ We need about 10000 lines of 100 characters to get two levels of pointer
-+ blocks.
-+
-+ STARTTEST
-+ :so small.vim
-+ :set nocp fileformat=unix undolevels=-1
-+ :e! Xtest
-+ ggdG
-+ :let text = "\tabcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789"
-+ :let i = 1
-+ :let linecount = 10000
-+ :while i <= linecount | call append(i - 1, i . text) | let i += 1 | endwhile
-+ :preserve
-+ :" get the name of the swap file
-+ :redir => swapname
-+ :swapname
-+ :redir END
-+ :let swapname = substitute(swapname, '[[:blank:][:cntrl:]]*\(.\{-}\)[[:blank:][:cntrl:]]*$', '\1', '')
-+ :" make a copy of the swap file in Xswap
-+ :set bin
-+ :exe 'sp ' . swapname
-+ :w! Xswap
-+ :echo swapname
-+ :set nobin
-+ :new
-+ :only!
-+ :bwipe! Xtest
-+ :call rename('Xswap', swapname)
-+ :recover Xtest
-+ :call delete(swapname)
-+ :new
-+ :call append(0, 'recovery start')
-+ :wincmd w
-+ :let linedollar = line('$')
-+ :if linedollar < linecount | exe 'wincmd w' | call append(line('$'), "expected " . linecount . " lines but found only " . linedollar) | exe 'wincmd w' | let linecount = linedollar | endif
-+ :let i = 1
-+ :while i <= linecount | if getline(i) != i . text | exe 'wincmd w' | call append(line('$'), i . ' differs') | exe 'wincmd w' | endif | let i += 1 | endwhile
-+ :q!
-+ :call append(line('$'), 'recovery end')
-+ :w! test.out
-+ :qa!
-+ ENDTEST
-+
-*** ../mercurial/vim73/src/testdir/test78.ok 2011-06-13 01:05:54.000000000 +0200
---- src/testdir/test78.ok 2011-06-13 00:25:05.000000000 +0200
-***************
-*** 0 ****
---- 1,3 ----
-+ recovery start
-+
-+ recovery end
-*** ../mercurial/vim73/src/testdir/Makefile 2011-03-22 18:10:34.000000000 +0100
---- src/testdir/Makefile 2011-06-13 00:35:46.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 test75.out test76.out test77.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 test77.out test78.out
-
- SCRIPTS_GUI = test16.out
-
-***************
-*** 71,77 ****
- fi \
- else echo $* NO OUTPUT >>test.log; \
- fi"
-! # -rm -rf X* test.ok viminfo
-
- test49.out: test49.vim
-
---- 71,77 ----
- fi \
- else echo $* NO OUTPUT >>test.log; \
- fi"
-! -rm -rf X* test.ok viminfo
-
- test49.out: test49.vim
-
-*** ../mercurial/vim73/src/testdir/Make_amiga.mak 2011-03-22 18:10:34.000000000 +0100
---- src/testdir/Make_amiga.mak 2011-06-13 01:00:42.000000000 +0200
-***************
-*** 28,34 ****
- 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 test77.out
-
- .SUFFIXES: .in .out
-
---- 28,34 ----
- 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 test77.out test78.out
-
- .SUFFIXES: .in .out
-
-***************
-*** 125,127 ****
---- 125,128 ----
- test75.out: test75.in
- test76.out: test76.in
- test77.out: test77.in
-+ test78.out: test78.in
-*** ../mercurial/vim73/src/testdir/Make_dos.mak 2011-03-22 18:10:34.000000000 +0100
---- src/testdir/Make_dos.mak 2011-06-13 01:00:55.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 test75.out test76.out test77.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 test77.out test78.out
-
- SCRIPTS32 = test50.out test70.out
-
-*** ../mercurial/vim73/src/testdir/Make_ming.mak 2011-03-22 18:10:34.000000000 +0100
---- src/testdir/Make_ming.mak 2011-06-13 01:01:02.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 test75.out test76.out test77.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 test77.out test78.out
-
- SCRIPTS32 = test50.out test70.out
-
-*** ../mercurial/vim73/src/testdir/Make_os2.mak 2011-03-22 18:10:34.000000000 +0100
---- src/testdir/Make_os2.mak 2011-06-13 01:01:08.000000000 +0200
-***************
-*** 28,34 ****
- 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 test77.out
-
- .SUFFIXES: .in .out
-
---- 28,34 ----
- 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 test77.out test78.out
-
- .SUFFIXES: .in .out
-
-*** ../mercurial/vim73/src/testdir/Make_vms.mms 2011-04-28 19:05:01.000000000 +0200
---- src/testdir/Make_vms.mms 2011-06-13 01:01:29.000000000 +0200
-***************
-*** 4,10 ****
- # Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
- # Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
- #
-! # Last change: 2011 Mar 03
- #
- # 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: 2011 Jun 13
- #
- # 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.
-***************
-*** 75,81 ****
- 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 \
-! test77.out
-
- # Known problems:
- # Test 30: a problem around mac format - unknown reason
---- 75,81 ----
- 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 \
-! test77.out test78.out
-
- # Known problems:
- # Test 30: a problem around mac format - unknown reason
-*** ../vim-7.3.215/src/version.c 2011-06-12 22:13:37.000000000 +0200
---- src/version.c 2011-06-13 00:59:02.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 216,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-172. You join listservers just for the extra e-mail.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.217
-Fcc: 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.217
-Problem: Inside an "if" a ":wincmd" causes problems.
-Solution: When skipping commands let ":wincmd" skip over its argument.
-Files: src/ex_docmd.c
-
-
-*** ../mercurial/vim73/src/ex_docmd.c 2011-05-25 12:51:17.000000000 +0200
---- src/ex_docmd.c 2011-06-13 01:15:17.000000000 +0200
-***************
-*** 2595,2600 ****
---- 2595,2601 ----
- case CMD_unlet:
- case CMD_verbose:
- case CMD_vertical:
-+ case CMD_wincmd:
- break;
-
- default: goto doend;
-***************
-*** 8237,8243 ****
- p = skipwhite(p);
- if (*p != NUL && *p != '"' && eap->nextcmd == NULL)
- EMSG(_(e_invarg));
-! else
- {
- /* Pass flags on for ":vertical wincmd ]". */
- postponed_split_flags = cmdmod.split;
---- 8238,8244 ----
- p = skipwhite(p);
- if (*p != NUL && *p != '"' && eap->nextcmd == NULL)
- EMSG(_(e_invarg));
-! else if (!eap->skip)
- {
- /* Pass flags on for ":vertical wincmd ]". */
- postponed_split_flags = cmdmod.split;
-*** ../vim-7.3.216/src/version.c 2011-06-13 01:07:22.000000000 +0200
---- src/version.c 2011-06-13 01:18:48.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 217,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-173. You keep tracking down the email addresses of all your friends
- (even childhood friends).
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.218
-Fcc: 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.218 (after 7.3.212)
-Problem: Tiny configuration problem with Python 3.
-Solution: Add abiflags in one more place. (Andreas Behr)
-Files: src/auto/configure, src/configure.in
-
-
-*** ../mercurial/vim73/src/auto/configure 2011-06-12 21:37:06.000000000 +0200
---- src/auto/configure 2011-06-13 01:26:50.000000000 +0200
-***************
-*** 5607,5613 ****
- @echo "python3_BASEMODLIBS='$(BASEMODLIBS)'"
- @echo "python3_LIBS='$(LIBS)'"
- @echo "python3_SYSLIBS='$(SYSLIBS)'"
-- @echo "python3_LINKFORSHARED='$(LINKFORSHARED)'"
- @echo "python3_INSTSONAME='$(INSTSONAME)'"
- eof
- eval "`cd ${PYTHON3_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
---- 5607,5612 ----
-***************
-*** 5624,5630 ****
- 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}${vi_cv_var_python3_abiflags} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
- else
-! PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -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
---- 5623,5629 ----
- 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}${vi_cv_var_python3_abiflags} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
- else
-! PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
- fi
- PYTHON3_SRC="if_python3.c"
- if test "x$MACOSX" = "xyes"; then
-*** ../mercurial/vim73/src/configure.in 2011-06-12 21:37:06.000000000 +0200
---- src/configure.in 2011-06-13 01:26:35.000000000 +0200
-***************
-*** 1063,1069 ****
- @echo "python3_BASEMODLIBS='$(BASEMODLIBS)'"
- @echo "python3_LIBS='$(LIBS)'"
- @echo "python3_SYSLIBS='$(SYSLIBS)'"
-- @echo "python3_LINKFORSHARED='$(LINKFORSHARED)'"
- @echo "python3_INSTSONAME='$(INSTSONAME)'"
- eof
- dnl -- delete the lines from make about Entering/Leaving directory
---- 1063,1068 ----
-***************
-*** 1080,1086 ****
- 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}${vi_cv_var_python3_abiflags} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
- else
-! PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -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.
---- 1079,1085 ----
- 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}${vi_cv_var_python3_abiflags} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
- else
-! PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -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.
-*** ../vim-7.3.217/src/version.c 2011-06-13 01:19:48.000000000 +0200
---- src/version.c 2011-06-13 01:29:42.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 218,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-174. You know what a listserv is.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.219
-Fcc: 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.219
-Problem: Can't compile with GTK on Mac.
-Solution: Add some #ifdef trickery. (Ben Schmidt)
-Files: src/os_mac_conv.c, src/os_macosx.m, src/vim.h
-
-
-*** ../mercurial/vim73/src/os_mac_conv.c 2010-08-16 21:23:30.000000000 +0200
---- src/os_mac_conv.c 2011-06-13 01:55:17.000000000 +0200
-***************
-*** 14,19 ****
---- 14,21 ----
- */
-
- #define NO_X11_INCLUDES
-+ #define BalloonEval int /* used in header files */
-+
- #include "vim.h"
- #ifndef FEAT_GUI_MAC
- # include <CoreServices/CoreServices.h>
-*** ../mercurial/vim73/src/os_macosx.m 2010-10-10 17:08:28.000000000 +0200
---- src/os_macosx.m 2011-06-13 01:58:47.000000000 +0200
-***************
-*** 18,23 ****
---- 18,24 ----
- /* Avoid a conflict for the definition of Boolean between Mac header files and
- * X11 header files. */
- #define NO_X11_INCLUDES
-+ #define BalloonEval int /* used in header files */
-
- #include "vim.h"
- #import <Cocoa/Cocoa.h>
-***************
-*** 27,35 ****
- * Clipboard support for the console.
- * Don't include this when building the GUI version, the functions in
- * gui_mac.c are used then. TODO: remove those instead?
-! * But for MacVim we need these ones.
- */
-! #if defined(FEAT_CLIPBOARD) && (!defined(FEAT_GUI) || defined(FEAT_GUI_MACVIM))
-
- /* Used to identify clipboard data copied from Vim. */
-
---- 28,36 ----
- * Clipboard support for the console.
- * Don't include this when building the GUI version, the functions in
- * gui_mac.c are used then. TODO: remove those instead?
-! * But for MacVim we do need these ones.
- */
-! #if defined(FEAT_CLIPBOARD) && (!defined(FEAT_GUI_ENABLED) || defined(FEAT_GUI_MACVIM))
-
- /* Used to identify clipboard data copied from Vim. */
-
-*** ../mercurial/vim73/src/vim.h 2011-05-19 18:26:34.000000000 +0200
---- src/vim.h 2011-06-13 01:57:17.000000000 +0200
-***************
-*** 121,126 ****
---- 121,127 ----
- || defined(FEAT_GUI_W32) \
- || defined(FEAT_GUI_W16) \
- || defined(FEAT_GUI_PHOTON)
-+ # define FEAT_GUI_ENABLED /* also defined with NO_X11_INCLUDES */
- # if !defined(FEAT_GUI) && !defined(NO_X11_INCLUDES)
- # define FEAT_GUI
- # endif
-*** ../vim-7.3.218/src/version.c 2011-06-13 01:32:42.000000000 +0200
---- src/version.c 2011-06-13 02:03:02.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 219,
- /**/
-
---
-If Microsoft would build a car...
-... the oil, water temperature, and alternator warning lights would
-all be replaced by a single "General Protection Fault" warning light.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.220
-Fcc: 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.220
-Problem: Python 3: vim.error is a 'str' instead of an 'Exception' object,
- so 'except' or 'raise' it causes a 'SystemError' exception.
- Buffer objects do not support slice assignment.
- When exchanging text between Vim and Python, multibyte texts become
- gabage or cause Unicode Expceptions, etc.
- 'py3file' tries to read in the file as Unicode, sometimes causes
- UnicodeDecodeException
-Solution: Fix the problems. (lilydjwg)
-Files: src/if_py_both.h, src/if_python.c, src/if_python3.c
-
-
-*** ../mercurial/vim73/src/if_py_both.h 2011-03-22 15:47:18.000000000 +0100
---- src/if_py_both.h 2011-06-18 23:54:25.000000000 +0200
-***************
-*** 65,74 ****
- OutputWrite(PyObject *self, PyObject *args)
- {
- int len;
-! char *str;
- int error = ((OutputObject *)(self))->error;
-
-! if (!PyArg_ParseTuple(args, "s#", &str, &len))
- return NULL;
-
- Py_BEGIN_ALLOW_THREADS
---- 65,74 ----
- OutputWrite(PyObject *self, PyObject *args)
- {
- int len;
-! char *str = NULL;
- int error = ((OutputObject *)(self))->error;
-
-! if (!PyArg_ParseTuple(args, "es#", p_enc, &str, &len))
- return NULL;
-
- Py_BEGIN_ALLOW_THREADS
-***************
-*** 76,81 ****
---- 76,82 ----
- writer((writefn)(error ? emsg : msg), (char_u *)str, len);
- Python_Release_Vim();
- Py_END_ALLOW_THREADS
-+ PyMem_Free(str);
-
- Py_INCREF(Py_None);
- return Py_None;
-***************
-*** 104,113 ****
- for (i = 0; i < n; ++i)
- {
- PyObject *line = PyList_GetItem(list, i);
-! char *str;
- PyInt len;
-
-! if (!PyArg_Parse(line, "s#", &str, &len)) {
- PyErr_SetString(PyExc_TypeError, _("writelines() requires list of strings"));
- Py_DECREF(list);
- return NULL;
---- 105,114 ----
- for (i = 0; i < n; ++i)
- {
- PyObject *line = PyList_GetItem(list, i);
-! char *str = NULL;
- PyInt len;
-
-! if (!PyArg_Parse(line, "es#", p_enc, &str, &len)) {
- PyErr_SetString(PyExc_TypeError, _("writelines() requires list of strings"));
- Py_DECREF(list);
- return NULL;
-***************
-*** 118,123 ****
---- 119,125 ----
- writer((writefn)(error ? emsg : msg), (char_u *)str, len);
- Python_Release_Vim();
- Py_END_ALLOW_THREADS
-+ PyMem_Free(str);
- }
-
- Py_DECREF(list);
-***************
-*** 681,686 ****
---- 683,689 ----
- {
- const char *str;
- char *save;
-+ PyObject *bytes;
- PyInt len;
- PyInt i;
- char *p;
-***************
-*** 691,698 ****
- return NULL;
- }
-
-! str = PyString_AsString(obj);
-! len = PyString_Size(obj);
-
- /*
- * Error checking: String must not contain newlines, as we
---- 694,702 ----
- return NULL;
- }
-
-! bytes = PyString_AsBytes(obj); /* for Python 2 this does nothing */
-! str = PyString_AsString(bytes);
-! len = PyString_Size(bytes);
-
- /*
- * Error checking: String must not contain newlines, as we
-***************
-*** 731,736 ****
---- 735,741 ----
- }
-
- save[i] = '\0';
-+ PyString_FreeBytes(bytes); /* Python 2 does nothing here */
-
- return save;
- }
-***************
-*** 817,823 ****
- invalidate_botline();
- }
-
-! /* Replace a line in the specified buffer. The line number is
- * in Vim format (1-based). The replacement line is given as
- * a Python string object. The object is checked for validity
- * and correct format. Errors are returned as a value of FAIL.
---- 822,829 ----
- invalidate_botline();
- }
-
-! /*
-! * Replace a line in the specified buffer. The line number is
- * in Vim format (1-based). The replacement line is given as
- * a Python string object. The object is checked for validity
- * and correct format. Errors are returned as a value of FAIL.
-***************
-*** 908,913 ****
---- 914,1106 ----
- }
- }
-
-+ /* Replace a range of lines in the specified buffer. The line numbers are in
-+ * Vim format (1-based). The range is from lo up to, but not including, hi.
-+ * The replacement lines are given as a Python list of string objects. The
-+ * list is checked for validity and correct format. Errors are returned as a
-+ * value of FAIL. The return value is OK on success.
-+ * If OK is returned and len_change is not NULL, *len_change
-+ * is set to the change in the buffer length.
-+ */
-+ static int
-+ SetBufferLineList(buf_T *buf, PyInt lo, PyInt hi, PyObject *list, PyInt *len_change)
-+ {
-+ /* First of all, we check the thpe of the supplied Python object.
-+ * There are three cases:
-+ * 1. NULL, or None - this is a deletion.
-+ * 2. A list - this is a replacement.
-+ * 3. Anything else - this is an error.
-+ */
-+ if (list == Py_None || list == NULL)
-+ {
-+ PyInt i;
-+ PyInt n = (int)(hi - lo);
-+ buf_T *savebuf = curbuf;
-+
-+ PyErr_Clear();
-+ curbuf = buf;
-+
-+ if (u_savedel((linenr_T)lo, (long)n) == FAIL)
-+ PyErr_SetVim(_("cannot save undo information"));
-+ else
-+ {
-+ for (i = 0; i < n; ++i)
-+ {
-+ if (ml_delete((linenr_T)lo, FALSE) == FAIL)
-+ {
-+ PyErr_SetVim(_("cannot delete line"));
-+ break;
-+ }
-+ }
-+ if (buf == curwin->w_buffer)
-+ py_fix_cursor((linenr_T)lo, (linenr_T)hi, (linenr_T)-n);
-+ deleted_lines_mark((linenr_T)lo, (long)i);
-+ }
-+
-+ curbuf = savebuf;
-+
-+ if (PyErr_Occurred() || VimErrorCheck())
-+ return FAIL;
-+
-+ if (len_change)
-+ *len_change = -n;
-+
-+ return OK;
-+ }
-+ else if (PyList_Check(list))
-+ {
-+ PyInt i;
-+ PyInt new_len = PyList_Size(list);
-+ PyInt old_len = hi - lo;
-+ PyInt extra = 0; /* lines added to text, can be negative */
-+ char **array;
-+ buf_T *savebuf;
-+
-+ if (new_len == 0) /* avoid allocating zero bytes */
-+ array = NULL;
-+ else
-+ {
-+ array = (char **)alloc((unsigned)(new_len * sizeof(char *)));
-+ if (array == NULL)
-+ {
-+ PyErr_NoMemory();
-+ return FAIL;
-+ }
-+ }
-+
-+ for (i = 0; i < new_len; ++i)
-+ {
-+ PyObject *line = PyList_GetItem(list, i);
-+
-+ array[i] = StringToLine(line);
-+ if (array[i] == NULL)
-+ {
-+ while (i)
-+ vim_free(array[--i]);
-+ vim_free(array);
-+ return FAIL;
-+ }
-+ }
-+
-+ savebuf = curbuf;
-+
-+ PyErr_Clear();
-+ curbuf = buf;
-+
-+ if (u_save((linenr_T)(lo-1), (linenr_T)hi) == FAIL)
-+ PyErr_SetVim(_("cannot save undo information"));
-+
-+ /* If the size of the range is reducing (ie, new_len < old_len) we
-+ * need to delete some old_len. We do this at the start, by
-+ * repeatedly deleting line "lo".
-+ */
-+ if (!PyErr_Occurred())
-+ {
-+ for (i = 0; i < old_len - new_len; ++i)
-+ if (ml_delete((linenr_T)lo, FALSE) == FAIL)
-+ {
-+ PyErr_SetVim(_("cannot delete line"));
-+ break;
-+ }
-+ extra -= i;
-+ }
-+
-+ /* For as long as possible, replace the existing old_len with the
-+ * new old_len. This is a more efficient operation, as it requires
-+ * less memory allocation and freeing.
-+ */
-+ if (!PyErr_Occurred())
-+ {
-+ for (i = 0; i < old_len && i < new_len; ++i)
-+ if (ml_replace((linenr_T)(lo+i), (char_u *)array[i], FALSE)
-+ == FAIL)
-+ {
-+ PyErr_SetVim(_("cannot replace line"));
-+ break;
-+ }
-+ }
-+ else
-+ i = 0;
-+
-+ /* Now we may need to insert the remaining new old_len. If we do, we
-+ * must free the strings as we finish with them (we can't pass the
-+ * responsibility to vim in this case).
-+ */
-+ if (!PyErr_Occurred())
-+ {
-+ while (i < new_len)
-+ {
-+ if (ml_append((linenr_T)(lo + i - 1),
-+ (char_u *)array[i], 0, FALSE) == FAIL)
-+ {
-+ PyErr_SetVim(_("cannot insert line"));
-+ break;
-+ }
-+ vim_free(array[i]);
-+ ++i;
-+ ++extra;
-+ }
-+ }
-+
-+ /* Free any left-over old_len, as a result of an error */
-+ while (i < new_len)
-+ {
-+ vim_free(array[i]);
-+ ++i;
-+ }
-+
-+ /* Free the array of old_len. All of its contents have now
-+ * been dealt with (either freed, or the responsibility passed
-+ * to vim.
-+ */
-+ vim_free(array);
-+
-+ /* Adjust marks. Invalidate any which lie in the
-+ * changed range, and move any in the remainder of the buffer.
-+ */
-+ mark_adjust((linenr_T)lo, (linenr_T)(hi - 1),
-+ (long)MAXLNUM, (long)extra);
-+ changed_lines((linenr_T)lo, 0, (linenr_T)hi, (long)extra);
-+
-+ if (buf == curwin->w_buffer)
-+ py_fix_cursor((linenr_T)lo, (linenr_T)hi, (linenr_T)extra);
-+
-+ curbuf = savebuf;
-+
-+ if (PyErr_Occurred() || VimErrorCheck())
-+ return FAIL;
-+
-+ if (len_change)
-+ *len_change = new_len - old_len;
-+
-+ return OK;
-+ }
-+ else
-+ {
-+ PyErr_BadArgument();
-+ return FAIL;
-+ }
-+ }
-
- /* Insert a number of lines into the specified buffer after the specifed line.
- * The line number is in Vim format (1-based). The lines to be inserted are
-***************
-*** 1108,1113 ****
---- 1301,1340 ----
- return -1;
-
- if (new_end)
-+ *new_end = end + len_change;
-+
-+ return 0;
-+ }
-+
-+ static PyInt
-+ RBAsSlice(BufferObject *self, PyInt lo, PyInt hi, PyObject *val, PyInt start, PyInt end, PyInt *new_end)
-+ {
-+ PyInt size;
-+ PyInt len_change;
-+
-+ /* Self must be a valid buffer */
-+ if (CheckBuffer(self))
-+ return -1;
-+
-+ /* Sort out the slice range */
-+ size = end - start + 1;
-+
-+ if (lo < 0)
-+ lo = 0;
-+ else if (lo > size)
-+ lo = size;
-+ if (hi < 0)
-+ hi = 0;
-+ if (hi < lo)
-+ hi = lo;
-+ else if (hi > size)
-+ hi = size;
-+
-+ if (SetBufferLineList(self->buf, lo + start, hi + start,
-+ val, &len_change) == FAIL)
-+ return -1;
-+
-+ if (new_end)
- *new_end = end + len_change;
-
- return 0;
-*** ../mercurial/vim73/src/if_python.c 2011-03-26 18:32:00.000000000 +0100
---- src/if_python.c 2011-06-19 00:02:15.000000000 +0200
-***************
-*** 56,61 ****
---- 56,65 ----
-
- static void init_structs(void);
-
-+ /* No-op conversion functions, use with care! */
-+ #define PyString_AsBytes(obj) (obj)
-+ #define PyString_FreeBytes(obj)
-+
- #if !defined(FEAT_PYTHON) && defined(PROTO)
- /* Use this to be able to generate prototypes without python being used. */
- # define PyObject Py_ssize_t
-***************
-*** 129,134 ****
---- 133,139 ----
- */
- # define PyArg_Parse dll_PyArg_Parse
- # define PyArg_ParseTuple dll_PyArg_ParseTuple
-+ # define PyMem_Free dll_PyMem_Free
- # define PyDict_SetItemString dll_PyDict_SetItemString
- # define PyErr_BadArgument dll_PyErr_BadArgument
- # define PyErr_Clear dll_PyErr_Clear
-***************
-*** 189,194 ****
---- 194,200 ----
- */
- static int(*dll_PyArg_Parse)(PyObject *, char *, ...);
- static int(*dll_PyArg_ParseTuple)(PyObject *, char *, ...);
-+ static int(*dll_PyMem_Free)(void *);
- static int(*dll_PyDict_SetItemString)(PyObject *dp, char *key, PyObject *item);
- static int(*dll_PyErr_BadArgument)(void);
- static void(*dll_PyErr_Clear)(void);
-***************
-*** 271,276 ****
---- 277,283 ----
- {
- {"PyArg_Parse", (PYTHON_PROC*)&dll_PyArg_Parse},
- {"PyArg_ParseTuple", (PYTHON_PROC*)&dll_PyArg_ParseTuple},
-+ {"PyMem_Free", (PYTHON_PROC*)&dll_PyMem_Free},
- {"PyDict_SetItemString", (PYTHON_PROC*)&dll_PyDict_SetItemString},
- {"PyErr_BadArgument", (PYTHON_PROC*)&dll_PyErr_BadArgument},
- {"PyErr_Clear", (PYTHON_PROC*)&dll_PyErr_Clear},
-***************
-*** 833,876 ****
- static PyObject *CurrentGetattr(PyObject *, char *);
- static int CurrentSetattr(PyObject *, char *, PyObject *);
-
-- /* Common routines for buffers and line ranges
-- * -------------------------------------------
-- */
--
-- static PyInt
-- RBAssSlice(BufferObject *self, PyInt lo, PyInt hi, PyObject *val, PyInt start, PyInt end, PyInt *new_end)
-- {
-- PyInt size;
-- PyInt len_change;
--
-- /* Self must be a valid buffer */
-- if (CheckBuffer(self))
-- return -1;
--
-- /* Sort out the slice range */
-- size = end - start + 1;
--
-- if (lo < 0)
-- lo = 0;
-- else if (lo > size)
-- lo = size;
-- if (hi < 0)
-- hi = 0;
-- if (hi < lo)
-- hi = lo;
-- else if (hi > size)
-- hi = size;
--
-- if (SetBufferLineList(self->buf, lo + start, hi + start,
-- val, &len_change) == FAIL)
-- return -1;
--
-- if (new_end)
-- *new_end = end + len_change;
--
-- return 0;
-- }
--
- static PySequenceMethods BufferAsSeq = {
- (PyInquiry) BufferLength, /* sq_length, len(x) */
- (binaryfunc) 0, /* BufferConcat, */ /* sq_concat, x+y */
---- 840,845 ----
-***************
-*** 1038,1044 ****
- static PyInt
- BufferAssSlice(PyObject *self, PyInt lo, PyInt hi, PyObject *val)
- {
-! return RBAssSlice((BufferObject *)(self), lo, hi, val, 1,
- (PyInt)((BufferObject *)(self))->buf->b_ml.ml_line_count,
- NULL);
- }
---- 1007,1013 ----
- static PyInt
- BufferAssSlice(PyObject *self, PyInt lo, PyInt hi, PyObject *val)
- {
-! return RBAsSlice((BufferObject *)(self), lo, hi, val, 1,
- (PyInt)((BufferObject *)(self))->buf->b_ml.ml_line_count,
- NULL);
- }
-***************
-*** 1088,1094 ****
- static PyInt
- RangeAssSlice(PyObject *self, PyInt lo, PyInt hi, PyObject *val)
- {
-! return RBAssSlice(((RangeObject *)(self))->buf, lo, hi, val,
- ((RangeObject *)(self))->start,
- ((RangeObject *)(self))->end,
- &((RangeObject *)(self))->end);
---- 1057,1063 ----
- static PyInt
- RangeAssSlice(PyObject *self, PyInt lo, PyInt hi, PyObject *val)
- {
-! return RBAsSlice(((RangeObject *)(self))->buf, lo, hi, val,
- ((RangeObject *)(self))->start,
- ((RangeObject *)(self))->end,
- &((RangeObject *)(self))->end);
-***************
-*** 1435,1628 ****
- * 4. Utility functions for handling the interface between Vim and Python.
- */
-
-- /* Replace a range of lines in the specified buffer. The line numbers are in
-- * Vim format (1-based). The range is from lo up to, but not including, hi.
-- * The replacement lines are given as a Python list of string objects. The
-- * list is checked for validity and correct format. Errors are returned as a
-- * value of FAIL. The return value is OK on success.
-- * If OK is returned and len_change is not NULL, *len_change
-- * is set to the change in the buffer length.
-- */
-- static int
-- SetBufferLineList(buf_T *buf, PyInt lo, PyInt hi, PyObject *list, PyInt *len_change)
-- {
-- /* First of all, we check the thpe of the supplied Python object.
-- * There are three cases:
-- * 1. NULL, or None - this is a deletion.
-- * 2. A list - this is a replacement.
-- * 3. Anything else - this is an error.
-- */
-- if (list == Py_None || list == NULL)
-- {
-- PyInt i;
-- PyInt n = (int)(hi - lo);
-- buf_T *savebuf = curbuf;
--
-- PyErr_Clear();
-- curbuf = buf;
--
-- if (u_savedel((linenr_T)lo, (long)n) == FAIL)
-- PyErr_SetVim(_("cannot save undo information"));
-- else
-- {
-- for (i = 0; i < n; ++i)
-- {
-- if (ml_delete((linenr_T)lo, FALSE) == FAIL)
-- {
-- PyErr_SetVim(_("cannot delete line"));
-- break;
-- }
-- }
-- if (buf == curwin->w_buffer)
-- py_fix_cursor((linenr_T)lo, (linenr_T)hi, (linenr_T)-n);
-- deleted_lines_mark((linenr_T)lo, (long)i);
-- }
--
-- curbuf = savebuf;
--
-- if (PyErr_Occurred() || VimErrorCheck())
-- return FAIL;
--
-- if (len_change)
-- *len_change = -n;
--
-- return OK;
-- }
-- else if (PyList_Check(list))
-- {
-- PyInt i;
-- PyInt new_len = PyList_Size(list);
-- PyInt old_len = hi - lo;
-- PyInt extra = 0; /* lines added to text, can be negative */
-- char **array;
-- buf_T *savebuf;
--
-- if (new_len == 0) /* avoid allocating zero bytes */
-- array = NULL;
-- else
-- {
-- array = (char **)alloc((unsigned)(new_len * sizeof(char *)));
-- if (array == NULL)
-- {
-- PyErr_NoMemory();
-- return FAIL;
-- }
-- }
--
-- for (i = 0; i < new_len; ++i)
-- {
-- PyObject *line = PyList_GetItem(list, i);
--
-- array[i] = StringToLine(line);
-- if (array[i] == NULL)
-- {
-- while (i)
-- vim_free(array[--i]);
-- vim_free(array);
-- return FAIL;
-- }
-- }
--
-- savebuf = curbuf;
--
-- PyErr_Clear();
-- curbuf = buf;
--
-- if (u_save((linenr_T)(lo-1), (linenr_T)hi) == FAIL)
-- PyErr_SetVim(_("cannot save undo information"));
--
-- /* If the size of the range is reducing (ie, new_len < old_len) we
-- * need to delete some old_len. We do this at the start, by
-- * repeatedly deleting line "lo".
-- */
-- if (!PyErr_Occurred())
-- {
-- for (i = 0; i < old_len - new_len; ++i)
-- if (ml_delete((linenr_T)lo, FALSE) == FAIL)
-- {
-- PyErr_SetVim(_("cannot delete line"));
-- break;
-- }
-- extra -= i;
-- }
--
-- /* For as long as possible, replace the existing old_len with the
-- * new old_len. This is a more efficient operation, as it requires
-- * less memory allocation and freeing.
-- */
-- if (!PyErr_Occurred())
-- {
-- for (i = 0; i < old_len && i < new_len; ++i)
-- if (ml_replace((linenr_T)(lo+i), (char_u *)array[i], FALSE)
-- == FAIL)
-- {
-- PyErr_SetVim(_("cannot replace line"));
-- break;
-- }
-- }
-- else
-- i = 0;
--
-- /* Now we may need to insert the remaining new old_len. If we do, we
-- * must free the strings as we finish with them (we can't pass the
-- * responsibility to vim in this case).
-- */
-- if (!PyErr_Occurred())
-- {
-- while (i < new_len)
-- {
-- if (ml_append((linenr_T)(lo + i - 1),
-- (char_u *)array[i], 0, FALSE) == FAIL)
-- {
-- PyErr_SetVim(_("cannot insert line"));
-- break;
-- }
-- vim_free(array[i]);
-- ++i;
-- ++extra;
-- }
-- }
--
-- /* Free any left-over old_len, as a result of an error */
-- while (i < new_len)
-- {
-- vim_free(array[i]);
-- ++i;
-- }
--
-- /* Free the array of old_len. All of its contents have now
-- * been dealt with (either freed, or the responsibility passed
-- * to vim.
-- */
-- vim_free(array);
--
-- /* Adjust marks. Invalidate any which lie in the
-- * changed range, and move any in the remainder of the buffer.
-- */
-- mark_adjust((linenr_T)lo, (linenr_T)(hi - 1),
-- (long)MAXLNUM, (long)extra);
-- changed_lines((linenr_T)lo, 0, (linenr_T)hi, (long)extra);
--
-- if (buf == curwin->w_buffer)
-- py_fix_cursor((linenr_T)lo, (linenr_T)hi, (linenr_T)extra);
--
-- curbuf = savebuf;
--
-- if (PyErr_Occurred() || VimErrorCheck())
-- return FAIL;
--
-- if (len_change)
-- *len_change = new_len - old_len;
--
-- return OK;
-- }
-- else
-- {
-- PyErr_BadArgument();
-- return FAIL;
-- }
-- }
--
- /* Convert a Vim line into a Python string.
- * All internal newlines are replaced by null characters.
- *
---- 1404,1409 ----
-*** ../mercurial/vim73/src/if_python3.c 2011-06-12 21:37:06.000000000 +0200
---- src/if_python3.c 2011-06-19 00:10:42.000000000 +0200
-***************
-*** 70,77 ****
-
- #define PyInt Py_ssize_t
- #define PyString_Check(obj) PyUnicode_Check(obj)
-! #define PyString_AsString(obj) _PyUnicode_AsString(obj)
-! #define PyString_Size(obj) PyUnicode_GET_SIZE(obj)
- #define PyString_FromString(repr) PyUnicode_FromString(repr)
-
- #if defined(DYNAMIC_PYTHON3) || defined(PROTO)
---- 70,79 ----
-
- #define PyInt Py_ssize_t
- #define PyString_Check(obj) PyUnicode_Check(obj)
-! #define PyString_AsBytes(obj) PyUnicode_AsEncodedString(obj, (char *)p_enc, NULL);
-! #define PyString_FreeBytes(obj) Py_XDECREF(bytes)
-! #define PyString_AsString(obj) PyBytes_AsString(obj)
-! #define PyString_Size(obj) PyBytes_GET_SIZE(bytes)
- #define PyString_FromString(repr) PyUnicode_FromString(repr)
-
- #if defined(DYNAMIC_PYTHON3) || defined(PROTO)
-***************
-*** 99,104 ****
---- 101,107 ----
- # define PyArg_Parse py3_PyArg_Parse
- # undef PyArg_ParseTuple
- # define PyArg_ParseTuple py3_PyArg_ParseTuple
-+ # define PyMem_Free py3_PyMem_Free
- # define PyDict_SetItemString py3_PyDict_SetItemString
- # define PyErr_BadArgument py3_PyErr_BadArgument
- # define PyErr_Clear py3_PyErr_Clear
-***************
-*** 140,147 ****
---- 143,155 ----
- # define PyModule_AddObject py3_PyModule_AddObject
- # define PyImport_AppendInittab py3_PyImport_AppendInittab
- # define _PyUnicode_AsString py3__PyUnicode_AsString
-+ # undef PyUnicode_AsEncodedString
-+ # define PyUnicode_AsEncodedString py3_PyUnicode_AsEncodedString
-+ # undef PyBytes_AsString
-+ # define PyBytes_AsString py3_PyBytes_AsString
- # define PyObject_GenericGetAttr py3_PyObject_GenericGetAttr
- # define PySlice_Type (*py3_PySlice_Type)
-+ # define PyErr_NewException py3_PyErr_NewException
- # ifdef Py_DEBUG
- # define _Py_NegativeRefcount py3__Py_NegativeRefcount
- # define _Py_RefTotal (*py3__Py_RefTotal)
-***************
-*** 157,164 ****
- # define PyModule_Create2 py3_PyModule_Create2
- # undef PyUnicode_FromString
- # define PyUnicode_FromString py3_PyUnicode_FromString
-! # undef PyUnicode_FromStringAndSize
-! # define PyUnicode_FromStringAndSize py3_PyUnicode_FromStringAndSize
-
- # ifdef Py_DEBUG
- # undef PyObject_NEW
---- 165,172 ----
- # define PyModule_Create2 py3_PyModule_Create2
- # undef PyUnicode_FromString
- # define PyUnicode_FromString py3_PyUnicode_FromString
-! # undef PyUnicode_Decode
-! # define PyUnicode_Decode py3_PyUnicode_Decode
-
- # ifdef Py_DEBUG
- # undef PyObject_NEW
-***************
-*** 199,205 ****
- static int (*py3_PyType_Ready)(PyTypeObject *type);
- static int (*py3_PyDict_SetItemString)(PyObject *dp, char *key, PyObject *item);
- static PyObject* (*py3_PyUnicode_FromString)(const char *u);
-! static PyObject* (*py3_PyUnicode_FromStringAndSize)(const char *u, Py_ssize_t size);
- static long (*py3_PyLong_AsLong)(PyObject *);
- static void (*py3_PyErr_SetNone)(PyObject *);
- static void (*py3_PyEval_InitThreads)(void);
---- 207,214 ----
- static int (*py3_PyType_Ready)(PyTypeObject *type);
- static int (*py3_PyDict_SetItemString)(PyObject *dp, char *key, PyObject *item);
- static PyObject* (*py3_PyUnicode_FromString)(const char *u);
-! static PyObject* (*py3_PyUnicode_Decode)(const char *u, Py_ssize_t size,
-! const char *encoding, const char *errors);
- static long (*py3_PyLong_AsLong)(PyObject *);
- static void (*py3_PyErr_SetNone)(PyObject *);
- static void (*py3_PyEval_InitThreads)(void);
-***************
-*** 207,212 ****
---- 216,222 ----
- static PyThreadState*(*py3_PyEval_SaveThread)(void);
- static int (*py3_PyArg_Parse)(PyObject *, char *, ...);
- static int (*py3_PyArg_ParseTuple)(PyObject *, char *, ...);
-+ static int (*py3_PyMem_Free)(void *);
- static int (*py3_Py_IsInitialized)(void);
- static void (*py3_PyErr_Clear)(void);
- static PyObject*(*py3__PyObject_Init)(PyObject *, PyTypeObject *);
-***************
-*** 214,224 ****
---- 224,237 ----
- static int (*py3_PyModule_AddObject)(PyObject *m, const char *name, PyObject *o);
- static int (*py3_PyImport_AppendInittab)(const char *name, PyObject* (*initfunc)(void));
- static char* (*py3__PyUnicode_AsString)(PyObject *unicode);
-+ static PyObject* (*py3_PyUnicode_AsEncodedString)(PyObject *unicode, const char* encoding, const char* errors);
-+ static char* (*py3_PyBytes_AsString)(PyObject *bytes);
- static PyObject* (*py3_PyObject_GenericGetAttr)(PyObject *obj, PyObject *name);
- static PyObject* (*py3_PyModule_Create2)(struct PyModuleDef* module, int module_api_version);
- static PyObject* (*py3_PyType_GenericAlloc)(PyTypeObject *type, Py_ssize_t nitems);
- static PyObject* (*py3_PyType_GenericNew)(PyTypeObject *type, PyObject *args, PyObject *kwds);
- static PyTypeObject* py3_PySlice_Type;
-+ static PyObject* (*py3_PyErr_NewException)(char *name, PyObject *base, PyObject *dict);
- # ifdef Py_DEBUG
- static void (*py3__Py_NegativeRefcount)(const char *fname, int lineno, PyObject *op);
- static Py_ssize_t* py3__Py_RefTotal;
-***************
-*** 259,264 ****
---- 272,278 ----
- {"Py_SetPythonHome", (PYTHON_PROC*)&py3_Py_SetPythonHome},
- {"Py_Initialize", (PYTHON_PROC*)&py3_Py_Initialize},
- {"PyArg_ParseTuple", (PYTHON_PROC*)&py3_PyArg_ParseTuple},
-+ {"PyMem_Free", (PYTHON_PROC*)&py3_PyMem_Free},
- {"PyList_New", (PYTHON_PROC*)&py3_PyList_New},
- {"PyGILState_Ensure", (PYTHON_PROC*)&py3_PyGILState_Ensure},
- {"PyGILState_Release", (PYTHON_PROC*)&py3_PyGILState_Release},
-***************
-*** 289,295 ****
- {"PyEval_RestoreThread", (PYTHON_PROC*)&py3_PyEval_RestoreThread},
- {"PyEval_SaveThread", (PYTHON_PROC*)&py3_PyEval_SaveThread},
- {"PyArg_Parse", (PYTHON_PROC*)&py3_PyArg_Parse},
-- {"PyArg_ParseTuple", (PYTHON_PROC*)&py3_PyArg_ParseTuple},
- {"Py_IsInitialized", (PYTHON_PROC*)&py3_Py_IsInitialized},
- {"_Py_NoneStruct", (PYTHON_PROC*)&py3__Py_NoneStruct},
- {"PyErr_Clear", (PYTHON_PROC*)&py3_PyErr_Clear},
---- 303,308 ----
-***************
-*** 297,307 ****
---- 310,322 ----
- {"PyModule_AddObject", (PYTHON_PROC*)&py3_PyModule_AddObject},
- {"PyImport_AppendInittab", (PYTHON_PROC*)&py3_PyImport_AppendInittab},
- {"_PyUnicode_AsString", (PYTHON_PROC*)&py3__PyUnicode_AsString},
-+ {"PyBytes_AsString", (PYTHON_PROC*)&py3_PyBytes_AsString},
- {"PyObject_GenericGetAttr", (PYTHON_PROC*)&py3_PyObject_GenericGetAttr},
- {"PyModule_Create2", (PYTHON_PROC*)&py3_PyModule_Create2},
- {"PyType_GenericAlloc", (PYTHON_PROC*)&py3_PyType_GenericAlloc},
- {"PyType_GenericNew", (PYTHON_PROC*)&py3_PyType_GenericNew},
- {"PySlice_Type", (PYTHON_PROC*)&py3_PySlice_Type},
-+ {"PyErr_NewException", (PYTHON_PROC*)&py3_PyErr_NewException},
- # ifdef Py_DEBUG
- {"_Py_NegativeRefcount", (PYTHON_PROC*)&py3__Py_NegativeRefcount},
- {"_Py_RefTotal", (PYTHON_PROC*)&py3__Py_RefTotal},
-***************
-*** 337,343 ****
- py3_runtime_link_init(char *libname, int verbose)
- {
- 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.
---- 352,358 ----
- py3_runtime_link_init(char *libname, int verbose)
- {
- int i;
-! void *ucs_from_string, *ucs_decode, *ucs_as_encoded_string;
-
- # 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.
-***************
-*** 377,395 ****
- /* Load unicode functions separately as only the ucs2 or the ucs4 functions
- * will be present in the library. */
- ucs_from_string = symbol_from_dll(hinstPy3, "PyUnicodeUCS2_FromString");
-! ucs_from_string_and_size = symbol_from_dll(hinstPy3,
-! "PyUnicodeUCS2_FromStringAndSize");
-! if (!ucs_from_string || !ucs_from_string_and_size)
- {
- ucs_from_string = symbol_from_dll(hinstPy3,
- "PyUnicodeUCS4_FromString");
-! ucs_from_string_and_size = symbol_from_dll(hinstPy3,
-! "PyUnicodeUCS4_FromStringAndSize");
- }
-! if (ucs_from_string && ucs_from_string_and_size)
- {
- py3_PyUnicode_FromString = ucs_from_string;
-! py3_PyUnicode_FromStringAndSize = ucs_from_string_and_size;
- }
- else
- {
---- 392,415 ----
- /* Load unicode functions separately as only the ucs2 or the ucs4 functions
- * will be present in the library. */
- ucs_from_string = symbol_from_dll(hinstPy3, "PyUnicodeUCS2_FromString");
-! ucs_decode = symbol_from_dll(hinstPy3,
-! "PyUnicodeUCS2_Decode");
-! ucs_as_encoded_string = symbol_from_dll(hinstPy3,
-! "PyUnicodeUCS2_AsEncodedString");
-! if (!ucs_from_string || !ucs_decode || !ucs_as_encoded_string)
- {
- ucs_from_string = symbol_from_dll(hinstPy3,
- "PyUnicodeUCS4_FromString");
-! ucs_decode = symbol_from_dll(hinstPy3,
-! "PyUnicodeUCS4_Decode");
-! ucs_as_encoded_string = symbol_from_dll(hinstPy3,
-! "PyUnicodeUCS4_AsEncodedString");
- }
-! if (ucs_from_string && ucs_decode && ucs_as_encoded_string)
- {
- py3_PyUnicode_FromString = ucs_from_string;
-! py3_PyUnicode_Decode = ucs_decode;
-! py3_PyUnicode_AsEncodedString = ucs_as_encoded_string;
- }
- else
- {
-***************
-*** 567,574 ****
- /* Remove the element from sys.path that was added because of our
- * argv[0] value in Py3Init_vim(). Previously we used an empty
- * string, but dependinding on the OS we then get an empty entry or
-! * the current directory in sys.path. */
-! PyRun_SimpleString("import sys; sys.path = list(filter(lambda x: x != '/must>not&exist', sys.path))");
-
- // lock is created and acquired in PyEval_InitThreads() and thread
- // state is created in Py_Initialize()
---- 587,597 ----
- /* Remove the element from sys.path that was added because of our
- * argv[0] value in Py3Init_vim(). Previously we used an empty
- * string, but dependinding on the OS we then get an empty entry or
-! * the current directory in sys.path.
-! * Only after vim has been imported, the element does exist in
-! * sys.path.
-! */
-! PyRun_SimpleString("import vim; import sys; sys.path = list(filter(lambda x: not x.endswith('must>not&exist'), sys.path))");
-
- // lock is created and acquired in PyEval_InitThreads() and thread
- // state is created in Py_Initialize()
-***************
-*** 605,610 ****
---- 628,635 ----
- #if defined(HAVE_LOCALE_H) || defined(X_LOCALE)
- char *saved_locale;
- #endif
-+ PyObject *cmdstr;
-+ PyObject *cmdbytes;
-
- #if defined(MACOS) && !defined(MACOS_X_UNIX)
- GetPort(&oldPort);
-***************
-*** 634,640 ****
-
- pygilstate = PyGILState_Ensure();
-
-! PyRun_SimpleString((char *)(cmd));
-
- PyGILState_Release(pygilstate);
-
---- 659,671 ----
-
- pygilstate = PyGILState_Ensure();
-
-! /* PyRun_SimpleString expects a UTF-8 string. Wrong encoding may cause
-! * SyntaxError (unicode error). */
-! cmdstr = PyUnicode_Decode(cmd, strlen(cmd), (char *)p_enc, NULL);
-! cmdbytes = PyUnicode_AsEncodedString(cmdstr, "utf-8", NULL);
-! Py_XDECREF(cmdstr);
-! PyRun_SimpleString(PyBytes_AsString(cmdbytes));
-! Py_XDECREF(cmdbytes);
-
- PyGILState_Release(pygilstate);
-
-***************
-*** 693,699 ****
- * different options under Windows, meaning that stdio pointers aren't
- * compatible between the two. Yuk.
- *
-! * construct: exec(compile(open('a_filename').read(), 'a_filename', 'exec'))
- *
- * We need to escape any backslashes or single quotes in the file name, so that
- * Python won't mangle the file name.
---- 724,733 ----
- * different options under Windows, meaning that stdio pointers aren't
- * compatible between the two. Yuk.
- *
-! * construct: exec(compile(open('a_filename', 'rb').read(), 'a_filename', 'exec'))
-! *
-! * Using bytes so that Python can detect the source encoding as it normally
-! * does. The doc does not say "compile" accept bytes, though.
- *
- * We need to escape any backslashes or single quotes in the file name, so that
- * Python won't mangle the file name.
-***************
-*** 716,723 ****
- return;
- if (i==0)
- {
-! strcpy(p,"').read(),'");
-! p += 11;
- }
- else
- {
---- 750,757 ----
- return;
- if (i==0)
- {
-! strcpy(p,"','rb').read(),'");
-! p += 16;
- }
- else
- {
-***************
-*** 812,819 ****
-
- static Py_ssize_t BufferLength(PyObject *);
- static PyObject *BufferItem(PyObject *, Py_ssize_t);
-- static Py_ssize_t BufferAsItem(PyObject *, Py_ssize_t, PyObject *);
- static PyObject* BufferSubscript(PyObject *self, PyObject* idx);
-
-
- /* Line range type - Implementation functions
---- 846,853 ----
-
- static Py_ssize_t BufferLength(PyObject *);
- static PyObject *BufferItem(PyObject *, Py_ssize_t);
- static PyObject* BufferSubscript(PyObject *self, PyObject* idx);
-+ static Py_ssize_t BufferAsSubscript(PyObject *self, PyObject* idx, PyObject* val);
-
-
- /* Line range type - Implementation functions
-***************
-*** 835,841 ****
- (ssizeargfunc) 0, /* sq_repeat, x*n */
- (ssizeargfunc) BufferItem, /* sq_item, x[i] */
- 0, /* was_sq_slice, x[i:j] */
-! (ssizeobjargproc) BufferAsItem, /* sq_ass_item, x[i]=v */
- 0, /* sq_ass_slice, x[i:j]=v */
- 0, /* sq_contains */
- 0, /* sq_inplace_concat */
---- 869,875 ----
- (ssizeargfunc) 0, /* sq_repeat, x*n */
- (ssizeargfunc) BufferItem, /* sq_item, x[i] */
- 0, /* was_sq_slice, x[i:j] */
-! 0, /* sq_ass_item, x[i]=v */
- 0, /* sq_ass_slice, x[i:j]=v */
- 0, /* sq_contains */
- 0, /* sq_inplace_concat */
-***************
-*** 845,851 ****
- PyMappingMethods BufferAsMapping = {
- /* mp_length */ (lenfunc)BufferLength,
- /* mp_subscript */ (binaryfunc)BufferSubscript,
-! /* mp_ass_subscript */ (objobjargproc)0,
- };
-
-
---- 879,885 ----
- PyMappingMethods BufferAsMapping = {
- /* mp_length */ (lenfunc)BufferLength,
- /* mp_subscript */ (binaryfunc)BufferSubscript,
-! /* mp_ass_subscript */ (objobjargproc)BufferAsSubscript,
- };
-
-
-***************
-*** 897,902 ****
---- 931,938 ----
-
- if (this->buf && this->buf != INVALID_BUFFER_VALUE)
- this->buf->b_python3_ref = NULL;
-+
-+ Py_TYPE(self)->tp_free((PyObject*)self);
- }
-
- static PyObject *
-***************
-*** 975,989 ****
- (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count);
- }
-
-- static Py_ssize_t
-- BufferAsItem(PyObject *self, Py_ssize_t n, PyObject *val)
-- {
-- return RBAsItem((BufferObject *)(self), n, val, 1,
-- (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count,
-- NULL);
-- }
--
--
- static PyObject *
- BufferSubscript(PyObject *self, PyObject* idx)
- {
---- 1011,1016 ----
-***************
-*** 999,1011 ****
- &step, &slicelen) < 0) {
- return NULL;
- }
-! return BufferSlice(self,start,stop+1);
- } else {
- PyErr_SetString(PyExc_IndexError, "Index must be int or slice");
- return NULL;
- }
- }
-
- static PySequenceMethods RangeAsSeq = {
- (lenfunc) RangeLength, /* sq_length, len(x) */
- (binaryfunc) 0, /* RangeConcat, sq_concat, x+y */
---- 1026,1064 ----
- &step, &slicelen) < 0) {
- return NULL;
- }
-! return BufferSlice(self,start,stop);
- } else {
- PyErr_SetString(PyExc_IndexError, "Index must be int or slice");
- return NULL;
- }
- }
-
-+ static Py_ssize_t
-+ BufferAsSubscript(PyObject *self, PyObject* idx, PyObject* val)
-+ {
-+ if (PyLong_Check(idx)) {
-+ long n = PyLong_AsLong(idx);
-+ return RBAsItem((BufferObject *)(self), n, val, 1,
-+ (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count,
-+ NULL);
-+ } else if (PySlice_Check(idx)) {
-+ Py_ssize_t start, stop, step, slicelen;
-+
-+ if (PySlice_GetIndicesEx((PySliceObject *)idx,
-+ (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count+1,
-+ &start, &stop,
-+ &step, &slicelen) < 0) {
-+ return -1;
-+ }
-+ return RBAsSlice((BufferObject *)(self), start, stop, val, 1,
-+ (PyInt)((BufferObject *)(self))->buf->b_ml.ml_line_count,
-+ NULL);
-+ } else {
-+ PyErr_SetString(PyExc_IndexError, "Index must be int or slice");
-+ return -1;
-+ }
-+ }
-+
- static PySequenceMethods RangeAsSeq = {
- (lenfunc) RangeLength, /* sq_length, len(x) */
- (binaryfunc) 0, /* RangeConcat, sq_concat, x+y */
-***************
-*** 1032,1037 ****
---- 1085,1091 ----
- RangeDestructor(PyObject *self)
- {
- Py_DECREF(((RangeObject *)(self))->buf);
-+ Py_TYPE(self)->tp_free((PyObject*)self);
- }
-
- static PyObject *
-***************
-*** 1159,1164 ****
---- 1213,1220 ----
-
- if (this->win && this->win != INVALID_WINDOW_VALUE)
- this->win->w_python3_ref = NULL;
-+
-+ Py_TYPE(self)->tp_free((PyObject*)self);
- }
-
- static PyObject *
-***************
-*** 1350,1357 ****
- PySys_SetArgv(1, argv);
-
- mod = PyModule_Create(&vimmodule);
-
-! VimError = Py_BuildValue("s", "vim.error");
-
- PyModule_AddObject(mod, "error", VimError);
- Py_INCREF((PyObject *)(void *)&TheBufferList);
---- 1406,1416 ----
- PySys_SetArgv(1, argv);
-
- mod = PyModule_Create(&vimmodule);
-+ if (mod == NULL)
-+ return NULL;
-
-! VimError = PyErr_NewException("vim.error", NULL, NULL);
-! Py_INCREF(VimError);
-
- PyModule_AddObject(mod, "error", VimError);
- Py_INCREF((PyObject *)(void *)&TheBufferList);
-***************
-*** 1404,1410 ****
- }
- *p = '\0';
-
-! result = PyUnicode_FromStringAndSize(tmp, len);
-
- vim_free(tmp);
- return result;
---- 1463,1469 ----
- }
- *p = '\0';
-
-! result = PyUnicode_Decode(tmp, len, (char *)p_enc, NULL);
-
- vim_free(tmp);
- return result;
-*** ../vim-7.3.219/src/version.c 2011-06-13 02:03:55.000000000 +0200
---- src/version.c 2011-06-19 00:25:38.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 220,
- /**/
-
---
-I'm in shape. Round IS a shape.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.221
-Fcc: 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.221
-Problem: Text from the clipboard is sometimes handled as linewise, but not
- consistently.
-Solution: Assume the text is linewise when it ends in a CR or NL.
-Files: src/gui_gtk_x11.c, src/gui_mac.c, src/ops.c, src/os_msdos.c,
- src/os_mswin.c, src/os_qnx.c, src/ui.c
-
-
-*** ../mercurial/vim73/src/gui_gtk_x11.c 2011-02-25 17:10:22.000000000 +0100
---- src/gui_gtk_x11.c 2011-06-19 00:58:31.000000000 +0200
-***************
-*** 1173,1179 ****
- char_u *tmpbuf = NULL;
- guchar *tmpbuf_utf8 = NULL;
- int len;
-! int motion_type;
-
- if (data->selection == clip_plus.gtk_sel_atom)
- cbd = &clip_plus;
---- 1173,1179 ----
- char_u *tmpbuf = NULL;
- guchar *tmpbuf_utf8 = NULL;
- int len;
-! int motion_type = MAUTO;
-
- if (data->selection == clip_plus.gtk_sel_atom)
- cbd = &clip_plus;
-***************
-*** 1182,1188 ****
-
- text = (char_u *)data->data;
- len = data->length;
-- motion_type = MCHAR;
-
- if (text == NULL || len <= 0)
- {
---- 1182,1187 ----
-*** ../mercurial/vim73/src/gui_mac.c 2011-06-12 20:33:30.000000000 +0200
---- src/gui_mac.c 2011-06-19 00:59:07.000000000 +0200
-***************
-*** 4671,4677 ****
- if (flavor)
- type = **textOfClip;
- else
-! type = (strchr(*textOfClip, '\r') != NULL) ? MLINE : MCHAR;
-
- tempclip = lalloc(scrapSize + 1, TRUE);
- mch_memmove(tempclip, *textOfClip + flavor, scrapSize);
---- 4671,4677 ----
- if (flavor)
- type = **textOfClip;
- else
-! type = MAUTO;
-
- tempclip = lalloc(scrapSize + 1, TRUE);
- mch_memmove(tempclip, *textOfClip + flavor, scrapSize);
-*** ../mercurial/vim73/src/ops.c 2011-04-01 16:28:33.000000000 +0200
---- src/ops.c 2011-06-19 00:59:39.000000000 +0200
-***************
-*** 5733,5739 ****
- }
- }
-
-! /* Convert from the GUI selection string into the '*'/'+' register */
- void
- clip_yank_selection(type, str, len, cbd)
- int type;
---- 5733,5741 ----
- }
- }
-
-! /*
-! * Convert from the GUI selection string into the '*'/'+' register.
-! */
- void
- clip_yank_selection(type, str, len, cbd)
- int type;
-***************
-*** 6090,6098 ****
- if (yank_type == MBLOCK)
- yank_type = MAUTO;
- #endif
-- if (yank_type == MAUTO)
-- yank_type = ((len > 0 && (str[len - 1] == '\n' || str[len - 1] == '\r'))
-- ? MLINE : MCHAR);
- str_to_reg(y_current, yank_type, str, len, block_len);
-
- # ifdef FEAT_CLIPBOARD
---- 6092,6097 ----
-***************
-*** 6113,6125 ****
- * is appended.
- */
- static void
-! str_to_reg(y_ptr, type, str, len, blocklen)
- struct yankreg *y_ptr; /* pointer to yank register */
-! int type; /* MCHAR, MLINE or MBLOCK */
- char_u *str; /* string to put in register */
- long len; /* length of string */
- long blocklen; /* width of Visual block */
- {
- int lnum;
- long start;
- long i;
---- 6112,6125 ----
- * is appended.
- */
- static void
-! str_to_reg(y_ptr, yank_type, str, len, blocklen)
- struct yankreg *y_ptr; /* pointer to yank register */
-! int yank_type; /* MCHAR, MLINE, MBLOCK, MAUTO */
- char_u *str; /* string to put in register */
- long len; /* length of string */
- long blocklen; /* width of Visual block */
- {
-+ int type; /* MCHAR, MLINE or MBLOCK */
- int lnum;
- long start;
- long i;
-***************
-*** 6136,6141 ****
---- 6136,6147 ----
- if (y_ptr->y_array == NULL) /* NULL means empty register */
- y_ptr->y_size = 0;
-
-+ if (yank_type == MAUTO)
-+ type = ((len > 0 && (str[len - 1] == NL || str[len - 1] == CAR))
-+ ? MLINE : MCHAR);
-+ else
-+ type = yank_type;
-+
- /*
- * Count the number of lines within the string
- */
-*** ../mercurial/vim73/src/os_msdos.c 2010-12-17 18:06:00.000000000 +0100
---- src/os_msdos.c 2011-06-19 01:00:56.000000000 +0200
-***************
-*** 2232,2238 ****
- void
- clip_mch_request_selection(VimClipboard *cbd)
- {
-! int type = MCHAR;
- char_u *pAllocated = NULL;
- char_u *pClipText = NULL;
- int clip_data_format = 0;
---- 2232,2238 ----
- void
- clip_mch_request_selection(VimClipboard *cbd)
- {
-! int type = MAUTO;
- char_u *pAllocated = NULL;
- char_u *pClipText = NULL;
- int clip_data_format = 0;
-***************
-*** 2280,2293 ****
- {
- clip_data_format = CF_TEXT;
- pClipText = pAllocated;
-- type = (vim_strchr((char*)pClipText, '\r') != NULL) ? MLINE : MCHAR;
- }
-
- else if ((pAllocated = Win16GetClipboardData(CF_OEMTEXT)) != NULL)
- {
- clip_data_format = CF_OEMTEXT;
- pClipText = pAllocated;
-- type = (vim_strchr((char*)pClipText, '\r') != NULL) ? MLINE : MCHAR;
- }
-
- /* Did we get anything? */
---- 2280,2291 ----
-*** ../mercurial/vim73/src/os_mswin.c 2011-01-17 20:08:04.000000000 +0100
---- src/os_mswin.c 2011-06-19 01:01:51.000000000 +0200
-***************
-*** 1410,1418 ****
- {
- char_u *temp_clipboard;
-
-! /* If the type is not known guess it. */
- if (metadata.type == -1)
-! metadata.type = (vim_strchr(str, '\n') == NULL) ? MCHAR : MLINE;
-
- /* Translate <CR><NL> into <NL>. */
- temp_clipboard = crnl_to_nl(str, &str_size);
---- 1410,1418 ----
- {
- char_u *temp_clipboard;
-
-! /* If the type is not known detect it. */
- if (metadata.type == -1)
-! metadata.type = MAUTO;
-
- /* Translate <CR><NL> into <NL>. */
- temp_clipboard = crnl_to_nl(str, &str_size);
-*** ../mercurial/vim73/src/os_qnx.c 2010-05-15 21:22:11.000000000 +0200
---- src/os_qnx.c 2011-06-19 01:02:26.000000000 +0200
-***************
-*** 93,99 ****
- clip_length = clip_header->length - 1;
-
- if( clip_text != NULL && is_type_set == FALSE )
-! type = (strchr( clip_text, '\r' ) != NULL) ? MLINE : MCHAR;
- }
-
- if( (clip_text != NULL) && (clip_length > 0) )
---- 93,99 ----
- clip_length = clip_header->length - 1;
-
- if( clip_text != NULL && is_type_set == FALSE )
-! type = MAUTO;
- }
-
- if( (clip_text != NULL) && (clip_length > 0) )
-*** ../mercurial/vim73/src/ui.c 2010-09-21 22:09:28.000000000 +0200
---- src/ui.c 2011-06-19 01:03:31.000000000 +0200
-***************
-*** 1609,1615 ****
-
- #if defined(FEAT_HANGULIN) || defined(PROTO)
- void
-! push_raw_key (s, len)
- char_u *s;
- int len;
- {
---- 1609,1615 ----
-
- #if defined(FEAT_HANGULIN) || defined(PROTO)
- void
-! push_raw_key(s, len)
- char_u *s;
- int len;
- {
-***************
-*** 2016,2022 ****
- long_u *length;
- int *format;
- {
-! int motion_type;
- long_u len;
- char_u *p;
- char **text_list = NULL;
---- 2016,2022 ----
- long_u *length;
- int *format;
- {
-! int motion_type = MAUTO;
- long_u len;
- char_u *p;
- char **text_list = NULL;
-***************
-*** 2036,2042 ****
- *(int *)success = FALSE;
- return;
- }
-- motion_type = MCHAR;
- p = (char_u *)value;
- len = *length;
- if (*type == vim_atom)
---- 2036,2041 ----
-*** ../vim-7.3.220/src/version.c 2011-06-19 00:27:46.000000000 +0200
---- src/version.c 2011-06-19 01:03:59.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 221,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-190. You quickly hand over your wallet, leather jacket, and car keys
- during a mugging, then proceed to beat the crap out of your
- assailant when he asks for your laptop.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.22
-Fcc: 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.222
-Problem: Warning for building GvimExt.
-Solution: Comment-out the DESCRIPTION line. (Mike Williams)
-Files: src/GvimExt/gvimext.def, src/GvimExt/gvimext_ming.def
-
-
-*** ../mercurial/vim73/src/GvimExt/gvimext.def 2010-05-15 21:22:11.000000000 +0200
---- src/GvimExt/gvimext.def 2011-06-15 03:50:55.000000000 +0200
-***************
-*** 1,7 ****
- ;gvimdef.def : Declares the module parameters for the DLL.
-
- LIBRARY gvimext
-! DESCRIPTION 'Vim Shell Extension'
-
- EXPORTS
- DllCanUnloadNow private
---- 1,7 ----
- ;gvimdef.def : Declares the module parameters for the DLL.
-
- LIBRARY gvimext
-! ; DESCRIPTION 'Vim Shell Extension'
-
- EXPORTS
- DllCanUnloadNow private
-*** ../mercurial/vim73/src/GvimExt/gvimext_ming.def 2010-05-15 21:22:11.000000000 +0200
---- src/GvimExt/gvimext_ming.def 2011-06-15 03:51:05.000000000 +0200
-***************
-*** 3,9 ****
- ;Hence this is the same file as gvimext.def with private removed
-
- LIBRARY gvimext
-! DESCRIPTION 'Vim Shell Extension build with MinGW'
-
- EXPORTS
- DllCanUnloadNow = DllCanUnloadNow@0
---- 3,9 ----
- ;Hence this is the same file as gvimext.def with private removed
-
- LIBRARY gvimext
-! ; DESCRIPTION 'Vim Shell Extension build with MinGW'
-
- EXPORTS
- DllCanUnloadNow = DllCanUnloadNow@0
-*** ../vim-7.3.221/src/version.c 2011-06-19 01:14:23.000000000 +0200
---- src/version.c 2011-06-19 01:26:57.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 222,
- /**/
-
---
-What is the difference between a professional and an amateur?
-The ark was built by an amateur; professionals gave us the Titanic.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.223
-Fcc: 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.223
-Problem: MingW cross compilation doesn't work with tiny features.
-Solution: Move acp_to_enc(), enc_to_utf16() and utf16_to_enc() outside of
- "#ifdef CLIPBOARD". Fix typo in makefile.
-Files: src/Make_ming.mak, src/os_mswin.c
-
-
-*** ../mercurial/vim73/src/Make_ming.mak 2010-12-30 14:50:46.000000000 +0100
---- src/Make_ming.mak 2011-06-19 01:20:16.000000000 +0200
-***************
-*** 87,93 ****
-
- # If you are using gettext-0.10.35 from http://sourceforge.net/projects/gettext
- # or gettext-0.10.37 from http://sourceforge.net/projects/mingwrep/
-! # uncomment the following, but I can't build a static versión with them, ?-(|
- #GETTEXT=c:/gettext-0.10.37-20010430
- #STATIC_GETTEXT=USE_STATIC_GETTEXT
- #DYNAMIC_GETTEXT=DYNAMIC_GETTEXT
---- 87,93 ----
-
- # If you are using gettext-0.10.35 from http://sourceforge.net/projects/gettext
- # or gettext-0.10.37 from http://sourceforge.net/projects/mingwrep/
-! # uncomment the following, but I can't build a static version with them, ?-(|
- #GETTEXT=c:/gettext-0.10.37-20010430
- #STATIC_GETTEXT=USE_STATIC_GETTEXT
- #DYNAMIC_GETTEXT=DYNAMIC_GETTEXT
-*** ../mercurial/vim73/src/os_mswin.c 2011-06-19 01:14:23.000000000 +0200
---- src/os_mswin.c 2011-06-19 01:25:23.000000000 +0200
-***************
-*** 1105,1236 ****
- return ret;
- }
-
-- #if defined(FEAT_MBYTE) || defined(PROTO)
-- /*
-- * Note: the following two functions are only guaranteed to work when using
-- * valid MS-Windows codepages or when iconv() is available.
-- */
--
-- /*
-- * Convert "str" from 'encoding' to UTF-16.
-- * Input in "str" with length "*lenp". When "lenp" is NULL, use strlen().
-- * Output is returned as an allocated string. "*lenp" is set to the length of
-- * the result. A trailing NUL is always added.
-- * Returns NULL when out of memory.
-- */
-- short_u *
-- enc_to_utf16(char_u *str, int *lenp)
-- {
-- vimconv_T conv;
-- WCHAR *ret;
-- char_u *allocbuf = NULL;
-- int len_loc;
-- int length;
--
-- if (lenp == NULL)
-- {
-- len_loc = (int)STRLEN(str) + 1;
-- lenp = &len_loc;
-- }
--
-- if (enc_codepage > 0)
-- {
-- /* We can do any CP### -> UTF-16 in one pass, and we can do it
-- * without iconv() (convert_* may need iconv). */
-- MultiByteToWideChar_alloc(enc_codepage, 0, str, *lenp, &ret, &length);
-- }
-- else
-- {
-- /* Use "latin1" by default, we might be called before we have p_enc
-- * set up. Convert to utf-8 first, works better with iconv(). Does
-- * nothing if 'encoding' is "utf-8". */
-- conv.vc_type = CONV_NONE;
-- if (convert_setup(&conv, p_enc ? p_enc : (char_u *)"latin1",
-- (char_u *)"utf-8") == FAIL)
-- return NULL;
-- if (conv.vc_type != CONV_NONE)
-- {
-- str = allocbuf = string_convert(&conv, str, lenp);
-- if (str == NULL)
-- return NULL;
-- }
-- convert_setup(&conv, NULL, NULL);
--
-- length = utf8_to_utf16(str, *lenp, NULL, NULL);
-- ret = (WCHAR *)alloc((unsigned)((length + 1) * sizeof(WCHAR)));
-- if (ret != NULL)
-- {
-- utf8_to_utf16(str, *lenp, (short_u *)ret, NULL);
-- ret[length] = 0;
-- }
--
-- vim_free(allocbuf);
-- }
--
-- *lenp = length;
-- return (short_u *)ret;
-- }
--
-- /*
-- * Convert an UTF-16 string to 'encoding'.
-- * Input in "str" with length (counted in wide characters) "*lenp". When
-- * "lenp" is NULL, use wcslen().
-- * Output is returned as an allocated string. If "*lenp" is not NULL it is
-- * set to the length of the result.
-- * Returns NULL when out of memory.
-- */
-- char_u *
-- utf16_to_enc(short_u *str, int *lenp)
-- {
-- vimconv_T conv;
-- char_u *utf8_str = NULL, *enc_str = NULL;
-- int len_loc;
--
-- if (lenp == NULL)
-- {
-- len_loc = (int)wcslen(str) + 1;
-- lenp = &len_loc;
-- }
--
-- if (enc_codepage > 0)
-- {
-- /* We can do any UTF-16 -> CP### in one pass. */
-- int length;
--
-- WideCharToMultiByte_alloc(enc_codepage, 0, str, *lenp,
-- (LPSTR *)&enc_str, &length, 0, 0);
-- *lenp = length;
-- return enc_str;
-- }
--
-- /* Avoid allocating zero bytes, it generates an error message. */
-- utf8_str = alloc(utf16_to_utf8(str, *lenp == 0 ? 1 : *lenp, NULL));
-- if (utf8_str != NULL)
-- {
-- *lenp = utf16_to_utf8(str, *lenp, utf8_str);
--
-- /* We might be called before we have p_enc set up. */
-- conv.vc_type = CONV_NONE;
-- convert_setup(&conv, (char_u *)"utf-8",
-- p_enc? p_enc: (char_u *)"latin1");
-- if (conv.vc_type == CONV_NONE)
-- {
-- /* p_enc is utf-8, so we're done. */
-- enc_str = utf8_str;
-- }
-- else
-- {
-- enc_str = string_convert(&conv, utf8_str, lenp);
-- vim_free(utf8_str);
-- }
--
-- convert_setup(&conv, NULL, NULL);
-- }
--
-- return enc_str;
-- }
-- #endif /* FEAT_MBYTE */
--
- /*
- * Wait for another process to Close the Clipboard.
- * Returns TRUE for success.
---- 1105,1110 ----
-***************
-*** 1436,1467 ****
- #endif
- }
-
-- #if (defined(FEAT_MBYTE) && defined(WIN3264)) || defined(PROTO)
-- /*
-- * Convert from the active codepage to 'encoding'.
-- * Input is "str[str_size]".
-- * The result is in allocated memory: "out[outlen]". With terminating NUL.
-- */
-- void
-- acp_to_enc(str, str_size, out, outlen)
-- char_u *str;
-- int str_size;
-- char_u **out;
-- int *outlen;
--
-- {
-- LPWSTR widestr;
--
-- MultiByteToWideChar_alloc(GetACP(), 0, str, str_size, &widestr, outlen);
-- if (widestr != NULL)
-- {
-- ++*outlen; /* Include the 0 after the string */
-- *out = utf16_to_enc((short_u *)widestr, outlen);
-- vim_free(widestr);
-- }
-- }
-- #endif
--
- /*
- * Send the current selection to the clipboard.
- */
---- 1310,1315 ----
-***************
-*** 1626,1631 ****
---- 1474,1631 ----
-
- #endif /* FEAT_CLIPBOARD */
-
-+ #if defined(FEAT_MBYTE) || defined(PROTO)
-+ /*
-+ * Note: the following two functions are only guaranteed to work when using
-+ * valid MS-Windows codepages or when iconv() is available.
-+ */
-+
-+ /*
-+ * Convert "str" from 'encoding' to UTF-16.
-+ * Input in "str" with length "*lenp". When "lenp" is NULL, use strlen().
-+ * Output is returned as an allocated string. "*lenp" is set to the length of
-+ * the result. A trailing NUL is always added.
-+ * Returns NULL when out of memory.
-+ */
-+ short_u *
-+ enc_to_utf16(char_u *str, int *lenp)
-+ {
-+ vimconv_T conv;
-+ WCHAR *ret;
-+ char_u *allocbuf = NULL;
-+ int len_loc;
-+ int length;
-+
-+ if (lenp == NULL)
-+ {
-+ len_loc = (int)STRLEN(str) + 1;
-+ lenp = &len_loc;
-+ }
-+
-+ if (enc_codepage > 0)
-+ {
-+ /* We can do any CP### -> UTF-16 in one pass, and we can do it
-+ * without iconv() (convert_* may need iconv). */
-+ MultiByteToWideChar_alloc(enc_codepage, 0, str, *lenp, &ret, &length);
-+ }
-+ else
-+ {
-+ /* Use "latin1" by default, we might be called before we have p_enc
-+ * set up. Convert to utf-8 first, works better with iconv(). Does
-+ * nothing if 'encoding' is "utf-8". */
-+ conv.vc_type = CONV_NONE;
-+ if (convert_setup(&conv, p_enc ? p_enc : (char_u *)"latin1",
-+ (char_u *)"utf-8") == FAIL)
-+ return NULL;
-+ if (conv.vc_type != CONV_NONE)
-+ {
-+ str = allocbuf = string_convert(&conv, str, lenp);
-+ if (str == NULL)
-+ return NULL;
-+ }
-+ convert_setup(&conv, NULL, NULL);
-+
-+ length = utf8_to_utf16(str, *lenp, NULL, NULL);
-+ ret = (WCHAR *)alloc((unsigned)((length + 1) * sizeof(WCHAR)));
-+ if (ret != NULL)
-+ {
-+ utf8_to_utf16(str, *lenp, (short_u *)ret, NULL);
-+ ret[length] = 0;
-+ }
-+
-+ vim_free(allocbuf);
-+ }
-+
-+ *lenp = length;
-+ return (short_u *)ret;
-+ }
-+
-+ /*
-+ * Convert an UTF-16 string to 'encoding'.
-+ * Input in "str" with length (counted in wide characters) "*lenp". When
-+ * "lenp" is NULL, use wcslen().
-+ * Output is returned as an allocated string. If "*lenp" is not NULL it is
-+ * set to the length of the result.
-+ * Returns NULL when out of memory.
-+ */
-+ char_u *
-+ utf16_to_enc(short_u *str, int *lenp)
-+ {
-+ vimconv_T conv;
-+ char_u *utf8_str = NULL, *enc_str = NULL;
-+ int len_loc;
-+
-+ if (lenp == NULL)
-+ {
-+ len_loc = (int)wcslen(str) + 1;
-+ lenp = &len_loc;
-+ }
-+
-+ if (enc_codepage > 0)
-+ {
-+ /* We can do any UTF-16 -> CP### in one pass. */
-+ int length;
-+
-+ WideCharToMultiByte_alloc(enc_codepage, 0, str, *lenp,
-+ (LPSTR *)&enc_str, &length, 0, 0);
-+ *lenp = length;
-+ return enc_str;
-+ }
-+
-+ /* Avoid allocating zero bytes, it generates an error message. */
-+ utf8_str = alloc(utf16_to_utf8(str, *lenp == 0 ? 1 : *lenp, NULL));
-+ if (utf8_str != NULL)
-+ {
-+ *lenp = utf16_to_utf8(str, *lenp, utf8_str);
-+
-+ /* We might be called before we have p_enc set up. */
-+ conv.vc_type = CONV_NONE;
-+ convert_setup(&conv, (char_u *)"utf-8",
-+ p_enc? p_enc: (char_u *)"latin1");
-+ if (conv.vc_type == CONV_NONE)
-+ {
-+ /* p_enc is utf-8, so we're done. */
-+ enc_str = utf8_str;
-+ }
-+ else
-+ {
-+ enc_str = string_convert(&conv, utf8_str, lenp);
-+ vim_free(utf8_str);
-+ }
-+
-+ convert_setup(&conv, NULL, NULL);
-+ }
-+
-+ return enc_str;
-+ }
-+ #endif /* FEAT_MBYTE */
-+
-+ #if (defined(FEAT_MBYTE) && defined(WIN3264)) || defined(PROTO)
-+ /*
-+ * Convert from the active codepage to 'encoding'.
-+ * Input is "str[str_size]".
-+ * The result is in allocated memory: "out[outlen]". With terminating NUL.
-+ */
-+ void
-+ acp_to_enc(str, str_size, out, outlen)
-+ char_u *str;
-+ int str_size;
-+ char_u **out;
-+ int *outlen;
-+
-+ {
-+ LPWSTR widestr;
-+
-+ MultiByteToWideChar_alloc(GetACP(), 0, str, str_size, &widestr, outlen);
-+ if (widestr != NULL)
-+ {
-+ ++*outlen; /* Include the 0 after the string */
-+ *out = utf16_to_enc((short_u *)widestr, outlen);
-+ vim_free(widestr);
-+ }
-+ }
-+ #endif
-+
-
- /*
- * Debugging helper: expose the MCH_WRITE_DUMP stuff to other modules
-*** ../vim-7.3.222/src/version.c 2011-06-19 01:27:29.000000000 +0200
---- src/version.c 2011-06-19 01:28:41.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 223,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-191. You rate eating establishments not by the quality of the food,
- but by the availability of electrical outlets for your PowerBook.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.224
-Fcc: 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.224
-Problem: Can't pass dict to sort function.
-Solution: Add the optional {dict} argument to sort(). (ZyX)
-Files: runtime/doc/eval.txt, src/eval.c
-
-
-*** ../mercurial/vim73/runtime/doc/eval.txt 2011-05-19 17:25:36.000000000 +0200
---- runtime/doc/eval.txt 2011-06-19 02:42:52.000000000 +0200
-***************
-*** 1919,1925 ****
- simplify( {filename}) String simplify filename as much as possible
- sin( {expr}) Float sine of {expr}
- sinh( {expr}) Float hyperbolic sine of {expr}
-! sort( {list} [, {func}]) List sort {list}, using {func} to compare
- soundfold( {word}) String sound-fold {word}
- spellbadword() String badly spelled word at cursor
- spellsuggest( {word} [, {max} [, {capital}]])
---- 1922,1929 ----
- simplify( {filename}) String simplify filename as much as possible
- sin( {expr}) Float sine of {expr}
- sinh( {expr}) Float hyperbolic sine of {expr}
-! sort( {list} [, {func} [, {dict}]])
-! List sort {list}, using {func} to compare
- soundfold( {word}) String sound-fold {word}
- spellbadword() String badly spelled word at cursor
- spellsuggest( {word} [, {max} [, {capital}]])
-***************
-*** 5275,5281 ****
- {only available when compiled with the |+float| feature}
-
-
-! sort({list} [, {func}]) *sort()* *E702*
- Sort the items in {list} in-place. Returns {list}. If you
- want a list to remain unmodified make a copy first: >
- :let sortedlist = sort(copy(mylist))
---- 5279,5285 ----
- {only available when compiled with the |+float| feature}
-
-
-! sort({list} [, {func} [, {dict}]]) *sort()* *E702*
- Sort the items in {list} in-place. Returns {list}. If you
- want a list to remain unmodified make a copy first: >
- :let sortedlist = sort(copy(mylist))
-***************
-*** 5283,5288 ****
---- 5287,5294 ----
- Numbers sort after Strings, |Lists| after Numbers.
- For sorting text in the current buffer use |:sort|.
- When {func} is given and it is one then case is ignored.
-+ {dict} is for functions with the "dict" attribute. It will be
-+ used to set the local variable "self". |Dictionary-function|
- When {func} is a |Funcref| or a function name, this function
- is called to compare items. The function is invoked with two
- items as argument and must return zero if they are equal, 1 or
-*** ../mercurial/vim73/src/eval.c 2011-05-19 18:26:34.000000000 +0200
---- src/eval.c 2011-06-19 02:51:13.000000000 +0200
-***************
-*** 7930,7936 ****
- {"sin", 1, 1, f_sin},
- {"sinh", 1, 1, f_sinh},
- #endif
-! {"sort", 1, 2, f_sort},
- {"soundfold", 1, 1, f_soundfold},
- {"spellbadword", 0, 1, f_spellbadword},
- {"spellsuggest", 1, 3, f_spellsuggest},
---- 7930,7936 ----
- {"sin", 1, 1, f_sin},
- {"sinh", 1, 1, f_sinh},
- #endif
-! {"sort", 1, 3, f_sort},
- {"soundfold", 1, 1, f_soundfold},
- {"spellbadword", 0, 1, f_spellbadword},
- {"spellsuggest", 1, 3, f_spellsuggest},
-***************
-*** 16366,16371 ****
---- 16366,16372 ----
-
- static int item_compare_ic;
- static char_u *item_compare_func;
-+ static dict_T *item_compare_selfdict;
- static int item_compare_func_err;
- #define ITEM_COMPARE_FAIL 999
-
-***************
-*** 16425,16431 ****
-
- rettv.v_type = VAR_UNKNOWN; /* clear_tv() uses this */
- res = call_func(item_compare_func, (int)STRLEN(item_compare_func),
-! &rettv, 2, argv, 0L, 0L, &dummy, TRUE, NULL);
- clear_tv(&argv[0]);
- clear_tv(&argv[1]);
-
---- 16426,16433 ----
-
- rettv.v_type = VAR_UNKNOWN; /* clear_tv() uses this */
- res = call_func(item_compare_func, (int)STRLEN(item_compare_func),
-! &rettv, 2, argv, 0L, 0L, &dummy, TRUE,
-! item_compare_selfdict);
- clear_tv(&argv[0]);
- clear_tv(&argv[1]);
-
-***************
-*** 16471,16478 ****
---- 16473,16482 ----
-
- item_compare_ic = FALSE;
- item_compare_func = NULL;
-+ item_compare_selfdict = NULL;
- if (argvars[1].v_type != VAR_UNKNOWN)
- {
-+ /* optional second argument: {func} */
- if (argvars[1].v_type == VAR_FUNC)
- item_compare_func = argvars[1].vval.v_string;
- else
-***************
-*** 16487,16492 ****
---- 16491,16507 ----
- else
- item_compare_func = get_tv_string(&argvars[1]);
- }
-+
-+ if (argvars[2].v_type != VAR_UNKNOWN)
-+ {
-+ /* optional third argument: {dict} */
-+ if (argvars[2].v_type != VAR_DICT)
-+ {
-+ EMSG(_(e_dictreq));
-+ return;
-+ }
-+ item_compare_selfdict = argvars[2].vval.v_dict;
-+ }
- }
-
- /* Make an array with each entry pointing to an item in the List. */
-*** ../vim-7.3.223/src/version.c 2011-06-19 01:30:01.000000000 +0200
---- src/version.c 2011-06-19 02:52:46.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 224,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-193. You ask your girlfriend to drive home so you can sit back with
- your PDA and download the information to your laptop
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.225
-Fcc: 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.225
-Problem: Using "\n" in a substitute inside ":s" does not result in a line
- break.
-Solution: Change behavior inside vim_regexec_nl(). Add tests. (Motoya
- Kurotsu)
-Files: src/regexp.c, src/testdir/test79.in, src/testdir/test79.ok,
- src/testdir/test80.in, src/testdir/test80.ok,
- src/testdir/Makefile, 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
-
-*** ../mercurial/vim73/src/regexp.c 2010-09-14 10:55:24.000000000 +0200
---- src/regexp.c 2011-06-19 04:03:54.000000000 +0200
-***************
-*** 6872,6877 ****
---- 6872,6878 ----
- static regmmatch_T *submatch_mmatch;
- static linenr_T submatch_firstlnum;
- static linenr_T submatch_maxline;
-+ static int submatch_line_lbr;
- #endif
-
- #if defined(FEAT_MODIFY_FNAME) || defined(FEAT_EVAL) || defined(PROTO)
-***************
-*** 6998,7003 ****
---- 6999,7005 ----
- submatch_mmatch = reg_mmatch;
- submatch_firstlnum = reg_firstlnum;
- submatch_maxline = reg_maxline;
-+ submatch_line_lbr = reg_line_lbr;
- save_reg_win = reg_win;
- save_ireg_ic = ireg_ic;
- can_f_submatch = TRUE;
-***************
-*** 7009,7017 ****
-
- for (s = eval_result; *s != NUL; mb_ptr_adv(s))
- {
-! /* Change NL to CR, so that it becomes a line break.
- * Skip over a backslashed character. */
-! if (*s == NL)
- *s = CAR;
- else if (*s == '\\' && s[1] != NUL)
- {
---- 7011,7020 ----
-
- for (s = eval_result; *s != NUL; mb_ptr_adv(s))
- {
-! /* Change NL to CR, so that it becomes a line break,
-! * unless called from vim_regexec_nl().
- * Skip over a backslashed character. */
-! if (*s == NL && !submatch_line_lbr)
- *s = CAR;
- else if (*s == '\\' && s[1] != NUL)
- {
-***************
-*** 7020,7027 ****
- * :s/abc\\\ndef/\="aaa\\\nbbb"/ on text:
- * abc\
- * def
- */
-! if (*s == NL)
- *s = CAR;
- had_backslash = TRUE;
- }
---- 7023,7031 ----
- * :s/abc\\\ndef/\="aaa\\\nbbb"/ on text:
- * abc\
- * def
-+ * Not when called from vim_regexec_nl().
- */
-! if (*s == NL && !submatch_line_lbr)
- *s = CAR;
- had_backslash = TRUE;
- }
-***************
-*** 7044,7049 ****
---- 7048,7054 ----
- reg_mmatch = submatch_mmatch;
- reg_firstlnum = submatch_firstlnum;
- reg_maxline = submatch_maxline;
-+ reg_line_lbr = submatch_line_lbr;
- reg_win = save_reg_win;
- ireg_ic = save_ireg_ic;
- can_f_submatch = FALSE;
-*** ../mercurial/vim73/src/testdir/test79.in 2011-06-19 04:30:54.000000000 +0200
---- src/testdir/test79.in 2011-06-19 03:45:26.000000000 +0200
-***************
-*** 0 ****
---- 1,213 ----
-+ Test for *sub-replace-special* and *sub-replace-expression* on :substitute.
-+ Test for submatch() on :substitue.
-+ Test for *:s%* on :substitute.
-+
-+ STARTTEST
-+ :so small.vim
-+ ENDTEST
-+
-+ Results of test71:
-+
-+ STARTTEST
-+ :set magic
-+ :set cpo&
-+ /^TEST/
-+ j:s/A/&&/
-+ j:s/B/\&/
-+ j:s/C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\0\9\8\7\6\5\4\3\2\1/
-+ j:s/D/d/
-+ j:s/E/~/
-+ j:s/F/\~/
-+ j:s/G/\ugg/
-+ j:s/H/\Uh\Eh/
-+ j:s/I/\lII/
-+ j:s/J/\LJ\EJ/
-+ j:s/K/\Uk\ek/
-+ j:s/L/ /
-+ j:s/M/\r/
-+ j:s/N/\ /
-+ j:s/O/\n/
-+ j:s/P/\b/
-+ j:s/Q/\t/
-+ j:s/R/\\/
-+ j:s/S/\c/
-+ j:s/T/
-+ ENDTEST
-+
-+ TEST_1:
-+ A
-+ B
-+ C123456789
-+ D
-+ E
-+ F
-+ G
-+ H
-+ I
-+ J
-+ K
-+ lLl
-+ mMm
-+ nNn
-+ oOo
-+ pPp
-+ qQq
-+ rRr
-+ sSs
-+ tTt
-+
-+ STARTTEST
-+ :set nomagic
-+ :set cpo&
-+ /^TEST/
-+ j:s/A/&&/
-+ j:s/B/\&/
-+ j:s/\mC\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\0\9\8\7\6\5\4\3\2\1/
-+ j:s/D/d/
-+ j:s/E/~/
-+ j:s/F/\~/
-+ j:s/G/\ugg/
-+ j:s/H/\Uh\Eh/
-+ j:s/I/\lII/
-+ j:s/J/\LJ\EJ/
-+ j:s/K/\Uk\ek/
-+ j:s/L/ /
-+ j:s/M/\r/
-+ j:s/N/\ /
-+ j:s/O/\n/
-+ j:s/P/\b/
-+ j:s/Q/\t/
-+ j:s/R/\\/
-+ j:s/S/\c/
-+ j:s/T/
-+ ENDTEST
-+
-+ TEST_2:
-+ A
-+ B
-+ C123456789
-+ D
-+ E
-+ F
-+ G
-+ H
-+ I
-+ J
-+ K
-+ lLl
-+ mMm
-+ nNn
-+ oOo
-+ pPp
-+ qQq
-+ rRr
-+ sSs
-+ tTt
-+
-+ STARTTEST
-+ :set magic&
-+ :set cpo&
-+ /^TEST/
-+ j:s/A/\='\'/
-+ j:s/B/\='\\'/
-+ j:s/C/\=' '/
-+ j:s/D/\='\ '/
-+ j:s/E/\='\\ '/
-+ j:s/F/\='\r'/
-+ j:s/G/\='
-+ j:s/H/\='\
-+ j:s/I/\='\\
-+ j:s/J/\='\n'/
-+ j:s/K/\="\r"/
-+ j:s/L/\="\n"/
-+ ENDTEST
-+
-+ TEST_3:
-+ aAa
-+ bBb
-+ cCc
-+ dDd
-+ eEe
-+ fFf
-+ gGg
-+ hHh
-+ iIi
-+ jJj
-+ kKk
-+ lLl
-+
-+ STARTTEST
-+ :set magic&
-+ :set cpo&
-+ /^TEST/
-+ j:s/A/\=substitute(submatch(0), '.', '\', '')/
-+ j:s/B/\=substitute(submatch(0), '.', '\\', '')/
-+ j:s/C/\=substitute(submatch(0), '.', ' ', '')/
-+ j:s/D/\=substitute(submatch(0), '.', '\ ', '')/
-+ j:s/E/\=substitute(submatch(0), '.', '\\ ', '')/
-+ j:s/F/\=substitute(submatch(0), '.', '\r', '')/
-+ j:s/G/\=substitute(submatch(0), '.', '
-+ j:s/H/\=substitute(submatch(0), '.', '\
-+ j:s/I/\=substitute(submatch(0), '.', '\\
-+ j:s/J/\=substitute(submatch(0), '.', '\n', '')/
-+ j:s/K/\=substitute(submatch(0), '.', "\r", '')/
-+ j:s/L/\=substitute(submatch(0), '.', "\n", '')/
-+ ENDTEST
-+
-+ TEST_4:
-+ aAa
-+ bBb
-+ cCc
-+ dDd
-+ eEe
-+ fFf
-+ gGg
-+ hHh
-+ iIi
-+ jJj
-+ kKk
-+ lLl
-+
-+ STARTTEST
-+ :set magic&
-+ :set cpo&
-+ /^TEST/
-+ j:s/A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\=submatch(0) . submatch(9) . submatch(8) . submatch(7) . submatch(6) . submatch(5) . submatch(4) . submatch(3) . submatch(2) . submatch(1)/
-+ ENDTEST
-+
-+ TEST_5:
-+ A123456789
-+
-+ STARTTEST
-+ :set magic&
-+ /^TEST/
-+ :set cpo+=/
-+ j:s/A/a/
-+ j:s/B/%/
-+ :set cpo-=/
-+ j:s/C/c/
-+ j:s/D/%/
-+ ENDTEST
-+
-+ TEST_6:
-+ A
-+ B
-+ C
-+ D
-+
-+ STARTTEST
-+ :set magic&
-+ :set cpo&
-+ /^TEST/
-+ j:s/A./\=submatch(0)/
-+ j:s/B./\=submatch(0)/
-+ ENDTEST
-+
-+ TEST_7:
-+ A A
-+ B
-+
-+ STARTTEST
-+ :g/^STARTTEST/.,/^ENDTEST/d
-+ :1;/^Results/,$wq! test.out
-+ ENDTEST
-*** ../mercurial/vim73/src/testdir/test79.ok 2011-06-19 04:30:54.000000000 +0200
---- src/testdir/test79.ok 2011-06-19 03:45:26.000000000 +0200
-***************
-*** 0 ****
---- 1,118 ----
-+ Results of test71:
-+
-+
-+ TEST_1:
-+ AA
-+ &
-+ C123456789987654321
-+ d
-+ d
-+ ~
-+ Gg
-+ Hh
-+ iI
-+ jJ
-+ Kk
-+ l
-+ l
-+ m
-+ m
-+ n n
-+ o
-+ pp
-+ q q
-+ r\r
-+ scs
-+ t
-+
-+
-+ TEST_2:
-+ &&
-+ B
-+ C123456789987654321
-+ d
-+ ~
-+ ~
-+ Gg
-+ Hh
-+ iI
-+ jJ
-+ Kk
-+ l
-+ l
-+ m
-+ m
-+ n n
-+ o
-+ pp
-+ q q
-+ r\r
-+ scs
-+ t
-+
-+
-+ TEST_3:
-+ a\a
-+ b\\b
-+ c
-+ c
-+ d\
-+ d
-+ e\\
-+ e
-+ f\rf
-+ g
-+ g
-+ h\
-+ h
-+ i\\
-+ i
-+ j\nj
-+ k
-+ k
-+ l
-+ l
-+
-+
-+ TEST_4:
-+ a\a
-+ b\b
-+ c
-+ c
-+ d
-+ d
-+ e\
-+ e
-+ f
-+ f
-+ g
-+ g
-+ h
-+ h
-+ i\
-+ i
-+ j
-+ j
-+ k
-+ k
-+ l
-+ l
-+
-+
-+ TEST_5:
-+ A123456789987654321
-+
-+
-+ TEST_6:
-+ a
-+ a
-+ c
-+ %
-+
-+
-+ TEST_7:
-+ A
-+ A
-+ B
-+ B
-+
-*** ../mercurial/vim73/src/testdir/test80.in 2011-06-19 04:30:54.000000000 +0200
---- src/testdir/test80.in 2011-06-19 03:45:26.000000000 +0200
-***************
-*** 0 ****
---- 1,150 ----
-+ Test for *sub-replace-special* and *sub-replace-expression* on substitue().
-+ Test for submatch() on substitue().
-+ Test for *:s%* on :substitute.
-+
-+ STARTTEST
-+ :so small.vim
-+ ENDTEST
-+
-+ TEST_1:
-+
-+ STARTTEST
-+ :set magic
-+ :set cpo&
-+ :$put =\"\n\nTEST_1:\"
-+ :$put =substitute('A', 'A', '&&', '')
-+ :$put =substitute('B', 'B', '\&', '')
-+ :$put =substitute('C123456789', 'C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\0\9\8\7\6\5\4\3\2\1', '')
-+ :$put =substitute('D', 'D', 'd', '')
-+ :$put =substitute('E', 'E', '~', '')
-+ :$put =substitute('F', 'F', '\~', '')
-+ :$put =substitute('G', 'G', '\ugg', '')
-+ :$put =substitute('H', 'H', '\Uh\Eh', '')
-+ :$put =substitute('I', 'I', '\lII', '')
-+ :$put =substitute('J', 'J', '\LJ\EJ', '')
-+ :$put =substitute('K', 'K', '\Uk\ek', '')
-+ :$put =substitute('lLl', 'L', ' ', '')
-+ :$put =substitute('mMm', 'M', '\r', '')
-+ :$put =substitute('nNn', 'N', '\ ', '')
-+ :$put =substitute('oOo', 'O', '\n', '')
-+ :$put =substitute('pPp', 'P', '\b', '')
-+ :$put =substitute('qQq', 'Q', '\t', '')
-+ :$put =substitute('rRr', 'R', '\\', '')
-+ :$put =substitute('sSs', 'S', '\c', '')
-+ :$put =substitute('uUu', 'U', \"\n\", '')
-+ :$put =substitute('vVv', 'V', \"\b\", '')
-+ :$put =substitute('wWw', 'W', \"\\\", '')
-+ :$put =substitute('xXx', 'X', \"\r\", '')
-+ /^TEST_2
-+ ENDTEST
-+
-+ TEST_2:
-+
-+ STARTTEST
-+ :set nomagic
-+ :set cpo&
-+ :$put =\"\n\nTEST_2:\"
-+ :$put =substitute('A', 'A', '&&', '')
-+ :$put =substitute('B', 'B', '\&', '')
-+ :$put =substitute('C123456789', 'C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\0\9\8\7\6\5\4\3\2\1', '')
-+ :$put =substitute('D', 'D', 'd', '')
-+ :$put =substitute('E', 'E', '~', '')
-+ :$put =substitute('F', 'F', '\~', '')
-+ :$put =substitute('G', 'G', '\ugg', '')
-+ :$put =substitute('H', 'H', '\Uh\Eh', '')
-+ :$put =substitute('I', 'I', '\lII', '')
-+ :$put =substitute('J', 'J', '\LJ\EJ', '')
-+ :$put =substitute('K', 'K', '\Uk\ek', '')
-+ :$put =substitute('lLl', 'L', ' ', '')
-+ :$put =substitute('mMm', 'M', '\r', '')
-+ :$put =substitute('nNn', 'N', '\ ', '')
-+ :$put =substitute('oOo', 'O', '\n', '')
-+ :$put =substitute('pPp', 'P', '\b', '')
-+ :$put =substitute('qQq', 'Q', '\t', '')
-+ :$put =substitute('rRr', 'R', '\\', '')
-+ :$put =substitute('sSs', 'S', '\c', '')
-+ :$put =substitute('tTt', 'T', \"\r\", '')
-+ :$put =substitute('uUu', 'U', \"\n\", '')
-+ :$put =substitute('vVv', 'V', \"\b\", '')
-+ :$put =substitute('wWw', 'W', \"\\\", '')
-+ /^TEST_3
-+ ENDTEST
-+
-+ TEST_3:
-+
-+ STARTTEST
-+ :set magic&
-+ :set cpo&
-+ :$put =\"\n\nTEST_3:\"
-+ :let y = substitute('aAa', 'A', '\="\\"', '') | $put =y
-+ :let y = substitute('bBb', 'B', '\="\\\\"', '') | $put =y
-+ :let y = substitute('cCc', 'C', '\=" "', '') | $put =y
-+ :let y = substitute('dDd', 'D', '\="\\ "', '') | $put =y
-+ :let y = substitute('eEe', 'E', '\="\\\\ "', '') | $put =y
-+ :let y = substitute('fFf', 'F', '\="\\r"', '') | $put =y
-+ :let y = substitute('jJj', 'J', '\="\\n"', '') | $put =y
-+ :let y = substitute('kKk', 'K', '\="\r"', '') | $put =y
-+ :let y = substitute('lLl', 'L', '\="\n"', '') | $put =y
-+ /^TEST_4
-+ ENDTEST
-+
-+ TEST_4:
-+
-+ STARTTEST
-+ :set magic&
-+ :set cpo&
-+ :$put =\"\n\nTEST_4:\"
-+ :let y = substitute('aAa', 'A', '\=substitute(submatch(0), ".", "\\", "")', '') | $put =y
-+ :let y = substitute('bBb', 'B', '\=substitute(submatch(0), ".", "\\\\", "")', '') | $put =y
-+ :let y = substitute('cCc', 'C', '\=substitute(submatch(0), ".", " ", "")', '') | $put =y
-+ :let y = substitute('dDd', 'D', '\=substitute(submatch(0), ".", "\\ ", "")', '') | $put =y
-+ :let y = substitute('eEe', 'E', '\=substitute(submatch(0), ".", "\\\\ ", "")', '') | $put =y
-+ :let y = substitute('fFf', 'F', '\=substitute(submatch(0), ".", "\\r", "")', '') | $put =y
-+ :let y = substitute('jJj', 'J', '\=substitute(submatch(0), ".", "\\n", "")', '') | $put =y
-+ :let y = substitute('kKk', 'K', '\=substitute(submatch(0), ".", "\r", "")', '') | $put =y
-+ :let y = substitute('lLl', 'L', '\=substitute(submatch(0), ".", "\n", "")', '') | $put =y
-+ /^TEST_5
-+ ENDTEST
-+
-+ TEST_5:
-+
-+ STARTTEST
-+ :set magic&
-+ :set cpo&
-+ :$put =\"\n\nTEST_5:\"
-+ :$put =substitute('A123456789', 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\=submatch(0) . submatch(9) . submatch(8) . submatch(7) . submatch(6) . submatch(5) . submatch(4) . submatch(3) . submatch(2) . submatch(1)', '')
-+ /^TEST_6
-+ ENDTEST
-+
-+ TEST_6:
-+
-+ STARTTEST
-+ :set magic&
-+ :$put =\"\n\nTEST_6:\"
-+ :set cpo+=/
-+ :$put =substitute('A', 'A', 'a', '')
-+ :$put =substitute('B', 'B', '%', '')
-+ :set cpo-=/
-+ :$put =substitute('C', 'C', 'c', '')
-+ :$put =substitute('D', 'D', '%', '')
-+ /^TEST_7
-+ ENDTEST
-+
-+ TEST_7:
-+
-+ STARTTEST
-+ :set magic&
-+ :set cpo&
-+ :$put =\"\n\nTEST_7:\"
-+ :$put =substitute('A A', 'A.', '\=submatch(0)', '')
-+ :$put =substitute(\"B\nB\", 'B.', '\=submatch(0)', '')
-+ /^TEST_8
-+ ENDTEST
-+
-+ TEST_8:
-+
-+ STARTTEST
-+ :/^Results/,$wq! test.out
-+ ENDTEST
-+
-+ Results of test72:
-*** ../mercurial/vim73/src/testdir/test80.ok 2011-06-19 04:30:54.000000000 +0200
---- src/testdir/test80.ok 2011-06-19 03:45:26.000000000 +0200
-***************
-*** 0 ****
---- 1,101 ----
-+ Results of test72:
-+
-+
-+ TEST_1:
-+ AA
-+ &
-+ C123456789987654321
-+ d
-+ ~
-+ ~
-+ Gg
-+ Hh
-+ iI
-+ jJ
-+ Kk
-+ l l
-+ m m
-+ n n
-+ o
-+ o
-+ pp
-+ q q
-+ r\r
-+ scs
-+ u
-+ u
-+ vv
-+ w\w
-+ x x
-+
-+
-+ TEST_2:
-+ AA
-+ &
-+ C123456789987654321
-+ d
-+ ~
-+ ~
-+ Gg
-+ Hh
-+ iI
-+ jJ
-+ Kk
-+ l l
-+ m m
-+ n n
-+ o
-+ o
-+ pp
-+ q q
-+ r\r
-+ scs
-+ t t
-+ u
-+ u
-+ vv
-+ w\w
-+
-+
-+ TEST_3:
-+ a\a
-+ b\\b
-+ c c
-+ d\ d
-+ e\\ e
-+ f\rf
-+ j\nj
-+ k k
-+ l
-+ l
-+
-+
-+ TEST_4:
-+ a\a
-+ b\b
-+ c c
-+ d d
-+ e\ e
-+ f f
-+ j
-+ j
-+ k k
-+ l
-+ l
-+
-+
-+ TEST_5:
-+ A123456789987654321
-+
-+
-+ TEST_6:
-+ a
-+ %
-+ c
-+ %
-+
-+
-+ TEST_7:
-+ A A
-+ B
-+ B
-*** ../mercurial/vim73/src/testdir/Makefile 2011-06-13 01:07:22.000000000 +0200
---- src/testdir/Makefile 2011-06-19 03:53:36.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 test75.out test76.out test77.out test78.out
-
- SCRIPTS_GUI = test16.out
-
---- 25,32 ----
- 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 test77.out test78.out \
-! test79.out test80.out
-
- SCRIPTS_GUI = test16.out
-
-*** ../mercurial/vim73/src/testdir/Make_amiga.mak 2011-06-13 01:07:22.000000000 +0200
---- src/testdir/Make_amiga.mak 2011-06-19 03:52:32.000000000 +0200
-***************
-*** 28,34 ****
- 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 test77.out test78.out
-
- .SUFFIXES: .in .out
-
---- 28,34 ----
- 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 test77.out test78.out test79.out test80.out
-
- .SUFFIXES: .in .out
-
-***************
-*** 126,128 ****
---- 126,130 ----
- test76.out: test76.in
- test77.out: test77.in
- test78.out: test78.in
-+ test79.out: test79.in
-+ test80.out: test80.in
-*** ../mercurial/vim73/src/testdir/Make_dos.mak 2011-06-13 01:07:22.000000000 +0200
---- src/testdir/Make_dos.mak 2011-06-19 03:52:43.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 test75.out test76.out test77.out test78.out
-
- SCRIPTS32 = test50.out test70.out
-
---- 28,35 ----
- 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 test77.out test78.out \
-! test79.out test80.out
-
- SCRIPTS32 = test50.out test70.out
-
-*** ../mercurial/vim73/src/testdir/Make_ming.mak 2011-06-13 01:07:22.000000000 +0200
---- src/testdir/Make_ming.mak 2011-06-19 03:52:58.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 test75.out test76.out test77.out test78.out
-
- SCRIPTS32 = test50.out test70.out
-
---- 48,55 ----
- 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 test77.out test78.out \
-! test79.out test80.out
-
- SCRIPTS32 = test50.out test70.out
-
-*** ../mercurial/vim73/src/testdir/Make_os2.mak 2011-06-13 01:07:22.000000000 +0200
---- src/testdir/Make_os2.mak 2011-06-19 03:53:09.000000000 +0200
-***************
-*** 28,34 ****
- 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 test77.out test78.out
-
- .SUFFIXES: .in .out
-
---- 28,34 ----
- 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 test77.out test78.out test79.out test80.out
-
- .SUFFIXES: .in .out
-
-*** ../mercurial/vim73/src/testdir/Make_vms.mms 2011-06-13 01:07:22.000000000 +0200
---- src/testdir/Make_vms.mms 2011-06-19 03:53:18.000000000 +0200
-***************
-*** 4,10 ****
- # Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
- # Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
- #
-! # Last change: 2011 Jun 13
- #
- # 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: 2011 Jun 19
- #
- # 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.
-***************
-*** 75,81 ****
- 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 \
-! test77.out test78.out
-
- # Known problems:
- # Test 30: a problem around mac format - unknown reason
---- 75,81 ----
- 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 \
-! test77.out test78.out test79.out test80.out
-
- # Known problems:
- # Test 30: a problem around mac format - unknown reason
-*** ../vim-7.3.224/src/version.c 2011-06-19 02:55:32.000000000 +0200
---- src/version.c 2011-06-19 04:27:54.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 225,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-194. Your business cards contain your e-mail and home page address.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.226
-Fcc: 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.226
-Problem: On a 64 bit system "syn sync fromstart" is very slow. (Bjorn
- Steinbrink)
-Solution: Store the state when starting to parse from the first line.
-Files: src/syntax.c
-
-
-*** ../mercurial/vim73/src/syntax.c 2011-05-25 17:56:23.000000000 +0200
---- src/syntax.c 2011-06-19 04:47:08.000000000 +0200
-***************
-*** 559,565 ****
- if (INVALID_STATE(&current_state))
- {
- syn_sync(wp, lnum, last_valid);
-! first_stored = current_lnum + syn_block->b_syn_sync_minlines;
- }
- else
- first_stored = current_lnum;
---- 559,571 ----
- if (INVALID_STATE(&current_state))
- {
- syn_sync(wp, lnum, last_valid);
-! if (current_lnum == 1)
-! /* First line is always valid, no matter "minlines". */
-! first_stored = 1;
-! else
-! /* Need to parse "minlines" lines before state can be considered
-! * valid to store. */
-! first_stored = current_lnum + syn_block->b_syn_sync_minlines;
- }
- else
- first_stored = current_lnum;
-*** ../vim-7.3.225/src/version.c 2011-06-19 04:31:54.000000000 +0200
---- src/version.c 2011-06-19 04:49:53.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 226,
- /**/
-
---
-Press any key to continue, press any other key to quit.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.227
-Fcc: 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.227 (after 7.3.221)
-Problem: Mac OS doesn't have the linewise clipboard fix.
-Solution: Also change the Mac OS file. (Bjorn Winckler)
-Files: src/os_macosx.m
-
-
-*** ../mercurial/vim73/src/os_macosx.m 2011-06-13 02:03:55.000000000 +0200
---- src/os_macosx.m 2011-06-20 00:23:57.000000000 +0200
-***************
-*** 65,71 ****
- NSString *bestType = [pb availableTypeFromArray:supportedTypes];
- if (!bestType) goto releasepool;
-
-! int motion_type = MCHAR;
- NSString *string = nil;
-
- if ([bestType isEqual:VimPboardType])
---- 65,71 ----
- NSString *bestType = [pb availableTypeFromArray:supportedTypes];
- if (!bestType) goto releasepool;
-
-! int motion_type = MAUTO;
- NSString *string = nil;
-
- if ([bestType isEqual:VimPboardType])
-***************
-*** 89,97 ****
-
- if (!string)
- {
-! /* Use NSStringPboardType. The motion type is set to line-wise if the
-! * string contains at least one EOL character, otherwise it is set to
-! * character-wise (block-wise is never used).
- */
- NSMutableString *mstring =
- [[pb stringForType:NSStringPboardType] mutableCopy];
---- 89,95 ----
-
- if (!string)
- {
-! /* Use NSStringPboardType. The motion type is detected automatically.
- */
- NSMutableString *mstring =
- [[pb stringForType:NSStringPboardType] mutableCopy];
-***************
-*** 108,126 ****
- options:0 range:range];
- }
-
-- /* Scan for newline character to decide whether the string should be
-- * pasted line-wise or character-wise.
-- */
-- motion_type = MCHAR;
-- if (0 < n || NSNotFound != [mstring rangeOfString:@"\n"].location)
-- motion_type = MLINE;
--
- string = mstring;
- }
-
- if (!(MCHAR == motion_type || MLINE == motion_type || MBLOCK == motion_type
- || MAUTO == motion_type))
-! motion_type = MCHAR;
-
- char_u *str = (char_u*)[string UTF8String];
- int len = [string lengthOfBytesUsingEncoding:NSUTF8StringEncoding];
---- 106,118 ----
- options:0 range:range];
- }
-
- string = mstring;
- }
-
-+ /* Default to MAUTO, uses MCHAR or MLINE depending on trailing NL. */
- if (!(MCHAR == motion_type || MLINE == motion_type || MBLOCK == motion_type
- || MAUTO == motion_type))
-! motion_type = MAUTO;
-
- char_u *str = (char_u*)[string UTF8String];
- int len = [string lengthOfBytesUsingEncoding:NSUTF8StringEncoding];
-*** ../vim-7.3.226/src/version.c 2011-06-19 04:54:17.000000000 +0200
---- src/version.c 2011-06-20 00:21:53.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 227,
- /**/
-
---
-Some of the well know MS-Windows errors:
- EMULTI Multitasking attempted, system confused
- EKEYBOARD Keyboard locked, try getting out of this one!
- EXPLAIN Unexplained error, please tell us what happened
- EFUTURE Reserved for our future mistakes
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.228
-Fcc: 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.228
-Problem: "2gj" does not always move to the correct position.
-Solution: Get length of line after moving to a next line. (James Vega)
-Files: src/normal.c
-
-
-*** ../mercurial/vim73/src/normal.c 2011-05-10 17:29:28.000000000 +0200
---- src/normal.c 2011-06-20 00:41:43.000000000 +0200
-***************
-*** 4533,4538 ****
---- 4533,4539 ----
- }
- curwin->w_cursor.lnum++;
- curwin->w_curswant %= width2;
-+ linelen = linetabsize(ml_get_curline());
- }
- }
- }
-*** ../vim-7.3.227/src/version.c 2011-06-20 00:25:37.000000000 +0200
---- src/version.c 2011-06-20 00:45:15.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 228,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-197. Your desk collapses under the weight of your computer peripherals.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.229
-Fcc: 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.229
-Problem: Using fork() makes gvim crash on Mac when build with
- CoreFoundation.
-Solution: Disallow fork() when __APPLE__ is defined. (Hisashi T Fujinaka)
-Files: src/gui.c
-
-
-*** ../mercurial/vim73/src/gui.c 2011-05-10 16:41:13.000000000 +0200
---- src/gui.c 2011-06-20 00:51:21.000000000 +0200
-***************
-*** 59,65 ****
- gui_start()
- {
- char_u *old_term;
-! #if defined(UNIX) && !defined(__BEOS__) && !defined(MACOS_X)
- # define MAY_FORK
- int dofork = TRUE;
- #endif
---- 59,66 ----
- gui_start()
- {
- char_u *old_term;
-! #if defined(UNIX) && !defined(__BEOS__) && !defined(MACOS_X) \
-! && !defined(__APPLE__)
- # define MAY_FORK
- int dofork = TRUE;
- #endif
-*** ../vim-7.3.228/src/version.c 2011-06-20 00:45:55.000000000 +0200
---- src/version.c 2011-06-20 00:50:42.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 229,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-198. You read all the quotes at Netaholics Anonymous and keep thinking
- "What's wrong with that?"
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.230
-Fcc: 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.230
-Problem: ":wundo" and ":rundo" don't unescape their argument. (Aaron
- Thoma)
-Solution: Use FILE1 instead of XFILE.
-Files: src/ex_cmds.h
-
-
-*** ../mercurial/vim73/src/ex_cmds.h 2010-08-20 11:09:02.000000000 +0200
---- src/ex_cmds.h 2011-06-20 04:44:13.000000000 +0200
-***************
-*** 788,794 ****
- EX(CMD_rubyfile, "rubyfile", ex_rubyfile,
- RANGE|FILE1|NEEDARG|CMDWIN),
- EX(CMD_rundo, "rundo", ex_rundo,
-! NEEDARG|EXTRA|XFILE),
- EX(CMD_rviminfo, "rviminfo", ex_viminfo,
- BANG|FILE1|TRLBAR|CMDWIN),
- EX(CMD_substitute, "substitute", do_sub,
---- 788,794 ----
- EX(CMD_rubyfile, "rubyfile", ex_rubyfile,
- RANGE|FILE1|NEEDARG|CMDWIN),
- EX(CMD_rundo, "rundo", ex_rundo,
-! NEEDARG|FILE1),
- EX(CMD_rviminfo, "rviminfo", ex_viminfo,
- BANG|FILE1|TRLBAR|CMDWIN),
- EX(CMD_substitute, "substitute", do_sub,
-***************
-*** 1078,1084 ****
- EX(CMD_wsverb, "wsverb", ex_wsverb,
- EXTRA|NOTADR|NEEDARG),
- EX(CMD_wundo, "wundo", ex_wundo,
-! BANG|NEEDARG|EXTRA|XFILE),
- EX(CMD_wviminfo, "wviminfo", ex_viminfo,
- BANG|FILE1|TRLBAR|CMDWIN),
- EX(CMD_xit, "xit", ex_exit,
---- 1078,1084 ----
- EX(CMD_wsverb, "wsverb", ex_wsverb,
- EXTRA|NOTADR|NEEDARG),
- EX(CMD_wundo, "wundo", ex_wundo,
-! BANG|NEEDARG|FILE1),
- EX(CMD_wviminfo, "wviminfo", ex_viminfo,
- BANG|FILE1|TRLBAR|CMDWIN),
- EX(CMD_xit, "xit", ex_exit,
-*** ../vim-7.3.229/src/version.c 2011-06-20 00:53:10.000000000 +0200
---- src/version.c 2011-06-20 05:02:40.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 230,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-201. When somebody asks you where you are, you tell them in which chat room.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.231
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Note: this is a weird patch, it redoes patches from 7.3.202 and 7.3.203
-that failed when applied as a patch, but the mercurial repository
-already had this, thus won't change anything there.
-
-
-Patch 7.3.231
-Problem: Runtime file patches failed.
-Solution: Redo the patches made against the patched files instead of the
- files in the mercurial repository.
-Files: runtime/doc/indent.txt, runtime/doc/os_win32.txt
-
-
-*** ../vim-7.3.230/runtime/doc/indent.txt 2011-05-25 15:16:06.000000000 +0200
---- runtime/doc/indent.txt 2011-05-31 22:23:39.000000000 +0200
-***************
-*** 356,363 ****
- BaseClass(3) BaseClass(3)
- {} {}
- <
-! +N Indent a continuation line (a line that spills onto the next) N
-! additional characters. (default 'shiftwidth').
-
- cino= cino=+10 >
- a = b + 9 * a = b + 9 *
---- 357,368 ----
- BaseClass(3) BaseClass(3)
- {} {}
- <
-! *cino-+*
-! +N Indent a continuation line (a line that spills onto the next)
-! inside a function N additional characters. (default
-! 'shiftwidth').
-! Outside of a function, when the previous line ended in a
-! backslash, the 2 * N is used.
-
- cino= cino=+10 >
- a = b + 9 * a = b + 9 *
-***************
-*** 509,522 ****
---- 514,532 ----
- }
- }
- <
-+ *cino-)*
- )N Vim searches for unclosed parentheses at most N lines away.
- This limits the time needed to search for parentheses. (default
- 20 lines).
-
-+ *cino-star*
- *N Vim searches for unclosed comments at most N lines away. This
- limits the time needed to search for the start of a comment.
-+ If your /* */ comments stop indenting afer N lines this is the
-+ value you will want to change.
- (default 70 lines).
-
-+ *cino-#*
- #N When N is non-zero recognize shell/Perl comments, starting with
- '#'. Default N is zero: don't recognizes '#' comments. Note
- that lines starting with # will still be seen as preprocessor
-*** ../vim-7.3.230/runtime/doc/os_win32.txt 2010-08-15 21:57:16.000000000 +0200
---- runtime/doc/os_win32.txt 2011-05-28 18:17:58.000000000 +0200
-***************
-*** 313,318 ****
---- 313,349 ----
- with :!start do not get passed Vim's open file handles, which means they do
- not have to be closed before Vim.
- To avoid this special treatment, use ":! start".
-+ There are two optional arguments (see the next Q):
-+ /min the window will be minimized.
-+ /b" no console window will be opened
-+ You can only one of these flags at a time. A second second one will be
-+ treated as the start of the command.
-+
-+ Q. How do I avoid getting a window for programs that I run asynchronously?
-+ A. You have two possible solutions depending on what exactly do you want:
-+ 1) You may use the /min flag in order to run program in a minimized state
-+ with no other changes. It will work equally for console and GUI
-+ applications.
-+ 2) You can use the /b flag to run console applications without creating a
-+ console window for them (GUI applications are not affected). But you
-+ should use this flag only if the application you run doesn't require any
-+ input. Otherwise it will get an EOF error because its input stream
-+ (stdin) would be redirected to \\.\NUL (stdoud and stderr too).
-+
-+ Example for a console application, run Exuberant ctags: >
-+ :!start /min ctags -R .
-+ < When it has finished you should see file named "tags" in your current
-+ directory. You should notice the window title blinking on your taskbar.
-+ This is more noticable for commands that take longer.
-+ Now delete the "tags" file and run this command: >
-+ :!start /b ctags -R .
-+ < You should have the same "tags" file, but this time there will be no
-+ blinking on the taskbar.
-+ Example for a GUI application: >
-+ :!start /min notepad
-+ :!start /b notepad
-+ < The first command runs notepad minimized and the second one runs it
-+ normally.
-
- Q. I'm using Win32s, and when I try to run an external command like "make",
- Vim doesn't wait for it to finish! Help!
-*** ../vim-7.3.230/src/version.c 2011-06-20 05:02:53.000000000 +0200
---- src/version.c 2011-06-26 03:14:03.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 231,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-222. You send more than 20 personal e-mails a day.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.232
-Fcc: 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.232
-Problem: Python doesn't compile without +multi_byte
-Solution: Use "latin1" when MULTI_BYTE is not defined.
-Files: src/if_py_both.h
-
-
-*** ../vim-7.3.231/src/if_py_both.h 2011-06-19 00:27:46.000000000 +0200
---- src/if_py_both.h 2011-06-26 03:58:07.000000000 +0200
-***************
-*** 12,17 ****
---- 12,23 ----
- * Common code for if_python.c and if_python3.c.
- */
-
-+ #ifdef FEAT_MBYTE
-+ # define ENC_OPT p_enc
-+ #else
-+ # define ENC_OPT "latin1"
-+ #endif
-+
- /*
- * obtain a lock on the Vim data structures
- */
-***************
-*** 68,74 ****
- char *str = NULL;
- int error = ((OutputObject *)(self))->error;
-
-! if (!PyArg_ParseTuple(args, "es#", p_enc, &str, &len))
- return NULL;
-
- Py_BEGIN_ALLOW_THREADS
---- 74,80 ----
- char *str = NULL;
- int error = ((OutputObject *)(self))->error;
-
-! if (!PyArg_ParseTuple(args, "es#", ENC_OPT, &str, &len))
- return NULL;
-
- Py_BEGIN_ALLOW_THREADS
-***************
-*** 108,114 ****
- char *str = NULL;
- PyInt len;
-
-! if (!PyArg_Parse(line, "es#", p_enc, &str, &len)) {
- PyErr_SetString(PyExc_TypeError, _("writelines() requires list of strings"));
- Py_DECREF(list);
- return NULL;
---- 114,120 ----
- char *str = NULL;
- PyInt len;
-
-! if (!PyArg_Parse(line, "es#", ENC_OPT, &str, &len)) {
- PyErr_SetString(PyExc_TypeError, _("writelines() requires list of strings"));
- Py_DECREF(list);
- return NULL;
-*** ../vim-7.3.231/src/version.c 2011-06-26 03:16:58.000000000 +0200
---- src/version.c 2011-06-26 04:00:40.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 232,
- /**/
-
---
-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/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.233
-Fcc: 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.233
-Problem: ":scriptnames" and ":breaklist" show long file names.
-Solution: Shorten to use "~/" when possible. (Jean-Rene David)
-Files: src/ex_cmds2.c
-
-
-*** ../vim-7.3.232/src/ex_cmds2.c 2011-05-19 18:26:34.000000000 +0200
---- src/ex_cmds2.c 2011-06-26 04:20:24.000000000 +0200
-***************
-*** 682,691 ****
- for (i = 0; i < dbg_breakp.ga_len; ++i)
- {
- bp = &BREAKP(i);
- smsg((char_u *)_("%3d %s %s line %ld"),
- bp->dbg_nr,
- bp->dbg_type == DBG_FUNC ? "func" : "file",
-! bp->dbg_name,
- (long)bp->dbg_lnum);
- }
- }
---- 682,693 ----
- for (i = 0; i < dbg_breakp.ga_len; ++i)
- {
- bp = &BREAKP(i);
-+ if (bp->dbg_type == DBG_FILE)
-+ home_replace(NULL, bp->dbg_name, NameBuff, MAXPATHL, TRUE);
- smsg((char_u *)_("%3d %s %s line %ld"),
- bp->dbg_nr,
- bp->dbg_type == DBG_FUNC ? "func" : "file",
-! bp->dbg_type == DBG_FUNC ? bp->dbg_name : NameBuff,
- (long)bp->dbg_lnum);
- }
- }
-***************
-*** 3268,3274 ****
-
- for (i = 1; i <= script_items.ga_len && !got_int; ++i)
- if (SCRIPT_ITEM(i).sn_name != NULL)
-! smsg((char_u *)"%3d: %s", i, SCRIPT_ITEM(i).sn_name);
- }
-
- # if defined(BACKSLASH_IN_FILENAME) || defined(PROTO)
---- 3270,3280 ----
-
- for (i = 1; i <= script_items.ga_len && !got_int; ++i)
- if (SCRIPT_ITEM(i).sn_name != NULL)
-! {
-! home_replace(NULL, SCRIPT_ITEM(i).sn_name,
-! NameBuff, MAXPATHL, TRUE);
-! smsg((char_u *)"%3d: %s", i, NameBuff);
-! }
- }
-
- # if defined(BACKSLASH_IN_FILENAME) || defined(PROTO)
-*** ../vim-7.3.232/src/version.c 2011-06-26 04:01:37.000000000 +0200
---- src/version.c 2011-06-26 04:23:48.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 233,
- /**/
-
---
-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/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.234
-Fcc: 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.234
-Problem: With GTK menu may be popping down.
-Solution: Use event time instead of GDK_CURRENT_TIME. (Hong Xu)
-Files: src/gui.c, src/gui.h, src/gui_gtk.c, src/gui_gtk_x11.c
-
-
-*** ../vim-7.3.233/src/gui.c 2011-06-20 00:53:10.000000000 +0200
---- src/gui.c 2011-06-26 04:38:09.000000000 +0200
-***************
-*** 84,89 ****
---- 84,93 ----
- gui.starting = TRUE;
- full_screen = FALSE;
-
-+ #ifdef FEAT_GUI_GTK
-+ gui.event_time = GDK_CURRENT_TIME;
-+ #endif
-+
- #ifdef MAY_FORK
- if (!gui.dofork || vim_strchr(p_go, GO_FORG) || recursive)
- dofork = FALSE;
-*** ../vim-7.3.233/src/gui.h 2011-05-10 16:41:13.000000000 +0200
---- src/gui.h 2011-06-26 04:41:21.000000000 +0200
-***************
-*** 401,406 ****
---- 401,408 ----
- GtkAccelGroup *accel_group;
- GtkWidget *filedlg; /* file selection dialog */
- char_u *browse_fname; /* file name from filedlg */
-+
-+ guint32 event_time;
- #endif /* FEAT_GUI_GTK */
-
- #if defined(FEAT_GUI_TABLINE) \
-*** ../vim-7.3.233/src/gui_gtk.c 2011-01-17 20:08:03.000000000 +0100
---- src/gui_gtk.c 2011-06-26 04:38:09.000000000 +0200
-***************
-*** 1391,1397 ****
- gtk_menu_popup(GTK_MENU(menu->submenu_id),
- NULL, NULL,
- (GtkMenuPositionFunc)NULL, NULL,
-! 3U, (guint32)GDK_CURRENT_TIME);
- }
-
- /* Ugly global variable to pass "mouse_pos" flag from gui_make_popup() to
---- 1391,1397 ----
- gtk_menu_popup(GTK_MENU(menu->submenu_id),
- NULL, NULL,
- (GtkMenuPositionFunc)NULL, NULL,
-! 3U, gui.event_time);
- }
-
- /* Ugly global variable to pass "mouse_pos" flag from gui_make_popup() to
-*** ../vim-7.3.233/src/gui_gtk_x11.c 2011-06-19 01:14:22.000000000 +0200
---- src/gui_gtk_x11.c 2011-06-26 04:39:57.000000000 +0200
-***************
-*** 88,95 ****
- # include <X11/Sunkeysym.h>
- #endif
-
-- static guint32 clipboard_event_time = CurrentTime;
--
- /*
- * Easy-to-use macro for multihead support.
- */
---- 88,93 ----
-***************
-*** 934,940 ****
- guint state;
- char_u *s, *d;
-
-! clipboard_event_time = event->time;
- key_sym = event->keyval;
- state = event->state;
-
---- 932,938 ----
- guint state;
- char_u *s, *d;
-
-! gui.event_time = event->time;
- key_sym = event->keyval;
- state = event->state;
-
-***************
-*** 1129,1135 ****
- GdkEventKey *event,
- gpointer data UNUSED)
- {
-! clipboard_event_time = event->time;
- /*
- * GTK+ 2 input methods may do fancy stuff on key release events too.
- * With the default IM for instance, you can enter any UCS code point
---- 1127,1133 ----
- GdkEventKey *event,
- gpointer data UNUSED)
- {
-! gui.event_time = event->time;
- /*
- * GTK+ 2 input methods may do fancy stuff on key release events too.
- * With the default IM for instance, you can enter any UCS code point
-***************
-*** 1622,1628 ****
- int x, y;
- int_u vim_modifiers;
-
-! clipboard_event_time = event->time;
-
- /* Make sure we have focus now we've been selected */
- if (gtk_socket_id != 0 && !GTK_WIDGET_HAS_FOCUS(widget))
---- 1620,1626 ----
- int x, y;
- int_u vim_modifiers;
-
-! gui.event_time = event->time;
-
- /* Make sure we have focus now we've been selected */
- if (gtk_socket_id != 0 && !GTK_WIDGET_HAS_FOCUS(widget))
-***************
-*** 1733,1739 ****
- int x, y;
- int_u vim_modifiers;
-
-! clipboard_event_time = event->time;
-
- /* Remove any motion "machine gun" timers used for automatic further
- extension of allocation areas if outside of the applications window
---- 1731,1737 ----
- int x, y;
- int_u vim_modifiers;
-
-! gui.event_time = event->time;
-
- /* Remove any motion "machine gun" timers used for automatic further
- extension of allocation areas if outside of the applications window
-***************
-*** 5654,5660 ****
- int success;
-
- success = gtk_selection_owner_set(gui.drawarea, cbd->gtk_sel_atom,
-! clipboard_event_time);
- gui_mch_update();
- return (success) ? OK : FAIL;
- }
---- 5652,5658 ----
- int success;
-
- success = gtk_selection_owner_set(gui.drawarea, cbd->gtk_sel_atom,
-! gui.event_time);
- gui_mch_update();
- return (success) ? OK : FAIL;
- }
-*** ../vim-7.3.233/src/version.c 2011-06-26 04:25:24.000000000 +0200
---- src/version.c 2011-06-26 04:47:02.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 234,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-225. You sign up for free subscriptions for all the computer magazines
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.235
-Fcc: 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.235
-Problem: ";" gets stuck on a "t" command, it's not useful.
-Solution: Add the ';' flag in 'cpo'. (Christian Brabandt)
-Files: runtime/doc/motion.txt, runtime/doc/options.txt, src/option.h,
- src/search.c src/testdir/test81.in, src/testdir/test81.ok,
- src/testdir/Makefile, src/testdir/Make_amiga.mak,
- src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
- src/testdir/Make_os2.mak, src/testdir/Make_vms.mms
-
-
-*** ../vim-7.3.234/runtime/doc/motion.txt 2010-08-15 21:57:17.000000000 +0200
---- runtime/doc/motion.txt 2011-06-26 05:15:58.000000000 +0200
-***************
-*** 269,279 ****
- {char} can be entered like with the |f| command.
-
- *;*
-! ; Repeat latest f, t, F or T [count] times.
-
- *,*
- , Repeat latest f, t, F or T in opposite direction
-! [count] times.
-
- ==============================================================================
- 3. Up-down motions *up-down-motions*
---- 269,279 ----
- {char} can be entered like with the |f| command.
-
- *;*
-! ; Repeat latest f, t, F or T [count] times. See |cpo-;|
-
- *,*
- , Repeat latest f, t, F or T in opposite direction
-! [count] times. See also |cpo-;|
-
- ==============================================================================
- 3. Up-down motions *up-down-motions*
-*** ../vim-7.3.234/runtime/doc/options.txt 2011-06-12 20:42:17.000000000 +0200
---- runtime/doc/options.txt 2011-06-26 05:15:58.000000000 +0200
-***************
-*** 2090,2095 ****
---- 2117,2128 ----
- *cpo->*
- > When appending to a register, put a line break before
- the appended text.
-+ *cpo-;*
-+ ; When using |,| or |;| to repeat the last |t| search
-+ and the cursor is right in front of the searched
-+ character, the cursor won't move. When not included,
-+ the cursor would skip over it and jump to the
-+ following occurence.
-
- POSIX flags. These are not included in the Vi default value, except
- when $VIM_POSIX was set on startup. |posix|
-*** ../vim-7.3.234/src/option.h 2011-06-12 22:13:37.000000000 +0200
---- src/option.h 2011-06-26 05:17:58.000000000 +0200
-***************
-*** 169,178 ****
- #define CPO_SUBPERCENT '/' /* % in :s string uses previous one */
- #define CPO_BACKSL '\\' /* \ is not special in [] */
- #define CPO_CHDIR '.' /* don't chdir if buffer is modified */
- /* default values for Vim, Vi and POSIX */
- #define CPO_VIM "aABceFs"
-! #define CPO_VI "aAbBcCdDeEfFgHiIjJkKlLmMnoOpPqrRsStuvwWxXyZ$!%*-+<>"
-! #define CPO_ALL "aAbBcCdDeEfFgHiIjJkKlLmMnoOpPqrRsStuvwWxXyZ$!%*-+<>#{|&/\\."
-
- /* characters for p_ww option: */
- #define WW_ALL "bshl<>[],~"
---- 169,180 ----
- #define CPO_SUBPERCENT '/' /* % in :s string uses previous one */
- #define CPO_BACKSL '\\' /* \ is not special in [] */
- #define CPO_CHDIR '.' /* don't chdir if buffer is modified */
-+ #define CPO_SCOLON ';' /* using "," and ";" will skip over char if
-+ * cursor would not move */
- /* default values for Vim, Vi and POSIX */
- #define CPO_VIM "aABceFs"
-! #define CPO_VI "aAbBcCdDeEfFgHiIjJkKlLmMnoOpPqrRsStuvwWxXyZ$!%*-+<>;"
-! #define CPO_ALL "aAbBcCdDeEfFgHiIjJkKlLmMnoOpPqrRsStuvwWxXyZ$!%*-+<>#{|&/\\.;"
-
- /* characters for p_ww option: */
- #define WW_ALL "bshl<>[],~"
-*** ../vim-7.3.234/src/search.c 2011-05-10 16:41:13.000000000 +0200
---- src/search.c 2011-06-26 05:20:45.000000000 +0200
-***************
-*** 1546,1551 ****
---- 1546,1552 ----
- int col;
- char_u *p;
- int len;
-+ int stop = TRUE;
- #ifdef FEAT_MBYTE
- static char_u bytes[MB_MAXBYTES];
- static int bytelen = 1; /* >1 for multi-byte char */
-***************
-*** 1580,1585 ****
---- 1581,1592 ----
- t_cmd = last_t_cmd;
- c = lastc;
- /* For multi-byte re-use last bytes[] and bytelen. */
-+
-+ /* Force a move of at least one char, so ";" and "," will move the
-+ * cursor, even if the cursor is right in front of char we are looking
-+ * at. */
-+ if (vim_strchr(p_cpo, CPO_SCOLON) == NULL && count == 1)
-+ stop = FALSE;
- }
-
- if (dir == BACKWARD)
-***************
-*** 1612,1625 ****
- }
- if (bytelen == 1)
- {
-! if (p[col] == c)
- break;
- }
- else
- {
-! if (vim_memcmp(p + col, bytes, bytelen) == 0)
- break;
- }
- }
- }
- else
---- 1619,1633 ----
- }
- if (bytelen == 1)
- {
-! if (p[col] == c && stop)
- break;
- }
- else
- {
-! if (vim_memcmp(p + col, bytes, bytelen) == 0 && stop)
- break;
- }
-+ stop = TRUE;
- }
- }
- else
-***************
-*** 1629,1636 ****
- {
- if ((col += dir) < 0 || col >= len)
- return FAIL;
-! if (p[col] == c)
- break;
- }
- }
- }
---- 1637,1645 ----
- {
- if ((col += dir) < 0 || col >= len)
- return FAIL;
-! if (p[col] == c && stop)
- break;
-+ stop = TRUE;
- }
- }
- }
-*** ../vim-7.3.234/src/testdir/test81.in 2011-06-26 05:34:33.000000000 +0200
---- src/testdir/test81.in 2011-06-26 05:30:31.000000000 +0200
-***************
-*** 0 ****
---- 1,18 ----
-+ Test for t movement command and 'cpo-;' setting
-+
-+ STARTTEST
-+ :set nocompatible
-+ :set cpo-=;
-+ /firstline/
-+ j0tt;D
-+ $Ty;D:set cpo+=;
-+ j0tt;;D
-+ $Ty;;D:?firstline?+1,$w! test.out
-+ :qa!
-+ ENDTEST
-+
-+ firstline
-+ aaa two three four
-+ bbb yee yoo four
-+ ccc two three four
-+ ddd yee yoo four
-*** ../vim-7.3.234/src/testdir/test81.ok 2011-06-26 05:34:33.000000000 +0200
---- src/testdir/test81.ok 2011-06-26 05:31:33.000000000 +0200
-***************
-*** 0 ****
---- 1,4 ----
-+ aaa two
-+ bbb y
-+ ccc
-+ ddd yee y
-*** ../vim-7.3.234/src/testdir/Makefile 2011-06-19 04:31:54.000000000 +0200
---- src/testdir/Makefile 2011-06-26 05:09:56.000000000 +0200
-***************
-*** 26,32 ****
- 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 test77.out test78.out \
-! test79.out test80.out
-
- SCRIPTS_GUI = test16.out
-
---- 26,32 ----
- 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 test77.out test78.out \
-! test79.out test80.out test81.out
-
- SCRIPTS_GUI = test16.out
-
-*** ../vim-7.3.234/src/testdir/Make_amiga.mak 2011-06-19 04:31:54.000000000 +0200
---- src/testdir/Make_amiga.mak 2011-06-26 05:09:07.000000000 +0200
-***************
-*** 28,34 ****
- 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 test77.out test78.out test79.out test80.out
-
- .SUFFIXES: .in .out
-
---- 28,35 ----
- 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 test77.out test78.out test79.out test80.out \
-! test81.out
-
- .SUFFIXES: .in .out
-
-***************
-*** 128,130 ****
---- 129,132 ----
- test78.out: test78.in
- test79.out: test79.in
- test80.out: test80.in
-+ test81.out: test81.in
-*** ../vim-7.3.234/src/testdir/Make_dos.mak 2011-06-19 04:31:54.000000000 +0200
---- src/testdir/Make_dos.mak 2011-06-26 05:09:16.000000000 +0200
-***************
-*** 29,35 ****
- 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 test77.out test78.out \
-! test79.out test80.out
-
- SCRIPTS32 = test50.out test70.out
-
---- 29,35 ----
- 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 test77.out test78.out \
-! test79.out test80.out test81.out
-
- SCRIPTS32 = test50.out test70.out
-
-*** ../vim-7.3.234/src/testdir/Make_ming.mak 2011-06-19 04:31:54.000000000 +0200
---- src/testdir/Make_ming.mak 2011-06-26 05:09:24.000000000 +0200
-***************
-*** 49,55 ****
- 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 test77.out test78.out \
-! test79.out test80.out
-
- SCRIPTS32 = test50.out test70.out
-
---- 49,55 ----
- 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 test77.out test78.out \
-! test79.out test80.out test81.out
-
- SCRIPTS32 = test50.out test70.out
-
-*** ../vim-7.3.234/src/testdir/Make_os2.mak 2011-06-19 04:31:54.000000000 +0200
---- src/testdir/Make_os2.mak 2011-06-26 05:09:33.000000000 +0200
-***************
-*** 28,34 ****
- 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 test77.out test78.out test79.out test80.out
-
- .SUFFIXES: .in .out
-
---- 28,35 ----
- 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 test77.out test78.out test79.out test80.out \
-! test81.out
-
- .SUFFIXES: .in .out
-
-*** ../vim-7.3.234/src/testdir/Make_vms.mms 2011-06-19 04:31:54.000000000 +0200
---- src/testdir/Make_vms.mms 2011-06-26 05:09:42.000000000 +0200
-***************
-*** 4,10 ****
- # Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
- # Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
- #
-! # Last change: 2011 Jun 19
- #
- # 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: 2011 Jun 26
- #
- # 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.
-***************
-*** 75,81 ****
- 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 \
-! test77.out test78.out test79.out test80.out
-
- # Known problems:
- # Test 30: a problem around mac format - unknown reason
---- 75,81 ----
- 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 \
-! test77.out test78.out test79.out test80.out test81.out
-
- # Known problems:
- # Test 30: a problem around mac format - unknown reason
-*** ../vim-7.3.234/src/version.c 2011-06-26 04:48:56.000000000 +0200
---- src/version.c 2011-06-26 05:33:53.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 235,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-226. You sit down at the computer right after dinner and your spouse
- says "See you in the morning."
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.236
-Fcc: 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.236 (after 7.3.232)
-Problem: Python 3 doesn't compile without +multi_byte
-Solution: Use "latin1" when MULTI_BYTE is not defined. (lilydjwg)
-Files: src/if_python3.c
-
-
-*** ../vim-7.3.235/src/if_python3.c 2011-06-19 00:27:46.000000000 +0200
---- src/if_python3.c 2011-06-26 19:10:57.000000000 +0200
-***************
-*** 70,76 ****
-
- #define PyInt Py_ssize_t
- #define PyString_Check(obj) PyUnicode_Check(obj)
-! #define PyString_AsBytes(obj) PyUnicode_AsEncodedString(obj, (char *)p_enc, NULL);
- #define PyString_FreeBytes(obj) Py_XDECREF(bytes)
- #define PyString_AsString(obj) PyBytes_AsString(obj)
- #define PyString_Size(obj) PyBytes_GET_SIZE(bytes)
---- 70,76 ----
-
- #define PyInt Py_ssize_t
- #define PyString_Check(obj) PyUnicode_Check(obj)
-! #define PyString_AsBytes(obj) PyUnicode_AsEncodedString(obj, (char *)ENC_OPT, NULL);
- #define PyString_FreeBytes(obj) Py_XDECREF(bytes)
- #define PyString_AsString(obj) PyBytes_AsString(obj)
- #define PyString_Size(obj) PyBytes_GET_SIZE(bytes)
-***************
-*** 661,667 ****
-
- /* PyRun_SimpleString expects a UTF-8 string. Wrong encoding may cause
- * SyntaxError (unicode error). */
-! cmdstr = PyUnicode_Decode(cmd, strlen(cmd), (char *)p_enc, NULL);
- cmdbytes = PyUnicode_AsEncodedString(cmdstr, "utf-8", NULL);
- Py_XDECREF(cmdstr);
- PyRun_SimpleString(PyBytes_AsString(cmdbytes));
---- 661,667 ----
-
- /* PyRun_SimpleString expects a UTF-8 string. Wrong encoding may cause
- * SyntaxError (unicode error). */
-! cmdstr = PyUnicode_Decode(cmd, strlen(cmd), (char *)ENC_OPT, NULL);
- cmdbytes = PyUnicode_AsEncodedString(cmdstr, "utf-8", NULL);
- Py_XDECREF(cmdstr);
- PyRun_SimpleString(PyBytes_AsString(cmdbytes));
-***************
-*** 1463,1469 ****
- }
- *p = '\0';
-
-! result = PyUnicode_Decode(tmp, len, (char *)p_enc, NULL);
-
- vim_free(tmp);
- return result;
---- 1463,1469 ----
- }
- *p = '\0';
-
-! result = PyUnicode_Decode(tmp, len, (char *)ENC_OPT, NULL);
-
- vim_free(tmp);
- return result;
-*** ../vim-7.3.235/src/version.c 2011-06-26 05:36:07.000000000 +0200
---- src/version.c 2011-06-26 19:12:12.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 236,
- /**/
-
---
-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/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.237
-Fcc: 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.237
-Problem: "filetype" completion doesn't work on Windows. (Yue Wu)
-Solution: Don't use a glob pattern for the directories, use a list of
- directories. (Dominique Pelle)
-Files: src/ex_getln.c
-
-
-*** ../vim-7.3.236/src/ex_getln.c 2011-05-19 18:26:34.000000000 +0200
---- src/ex_getln.c 2011-06-26 19:36:36.000000000 +0200
-***************
-*** 110,116 ****
- static int expand_showtail __ARGS((expand_T *xp));
- #ifdef FEAT_CMDL_COMPL
- static int expand_shellcmd __ARGS((char_u *filepat, int *num_file, char_u ***file, int flagsarg));
-! static int ExpandRTDir __ARGS((char_u *pat, int *num_file, char_u ***file, char *dirname));
- # if defined(FEAT_USR_CMDS) && defined(FEAT_EVAL)
- static int ExpandUserDefined __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file));
- static int ExpandUserList __ARGS((expand_T *xp, int *num_file, char_u ***file));
---- 110,116 ----
- static int expand_showtail __ARGS((expand_T *xp));
- #ifdef FEAT_CMDL_COMPL
- static int expand_shellcmd __ARGS((char_u *filepat, int *num_file, char_u ***file, int flagsarg));
-! static int ExpandRTDir __ARGS((char_u *pat, int *num_file, char_u ***file, char *dirname[]));
- # if defined(FEAT_USR_CMDS) && defined(FEAT_EVAL)
- static int ExpandUserDefined __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file));
- static int ExpandUserList __ARGS((expand_T *xp, int *num_file, char_u ***file));
-***************
-*** 4536,4548 ****
- || xp->xp_context == EXPAND_TAGS_LISTFILES)
- return expand_tags(xp->xp_context == EXPAND_TAGS, pat, num_file, file);
- if (xp->xp_context == EXPAND_COLORS)
-! return ExpandRTDir(pat, num_file, file, "colors");
- if (xp->xp_context == EXPAND_COMPILER)
-! return ExpandRTDir(pat, num_file, file, "compiler");
- if (xp->xp_context == EXPAND_OWNSYNTAX)
-! return ExpandRTDir(pat, num_file, file, "syntax");
- if (xp->xp_context == EXPAND_FILETYPE)
-! return ExpandRTDir(pat, num_file, file, "{syntax,indent,ftplugin}");
- # if defined(FEAT_USR_CMDS) && defined(FEAT_EVAL)
- if (xp->xp_context == EXPAND_USER_LIST)
- return ExpandUserList(xp, num_file, file);
---- 4536,4560 ----
- || xp->xp_context == EXPAND_TAGS_LISTFILES)
- return expand_tags(xp->xp_context == EXPAND_TAGS, pat, num_file, file);
- if (xp->xp_context == EXPAND_COLORS)
-! {
-! char *directories[] = {"colors", NULL};
-! return ExpandRTDir(pat, num_file, file, directories);
-! }
- if (xp->xp_context == EXPAND_COMPILER)
-! {
-! char *directories[] = {"colors", NULL};
-! return ExpandRTDir(pat, num_file, file, directories);
-! }
- if (xp->xp_context == EXPAND_OWNSYNTAX)
-! {
-! char *directories[] = {"syntax", NULL};
-! return ExpandRTDir(pat, num_file, file, directories);
-! }
- if (xp->xp_context == EXPAND_FILETYPE)
-! {
-! char *directories[] = {"syntax", "indent", "ftplugin", NULL};
-! return ExpandRTDir(pat, num_file, file, directories);
-! }
- # if defined(FEAT_USR_CMDS) && defined(FEAT_EVAL)
- if (xp->xp_context == EXPAND_USER_LIST)
- return ExpandUserList(xp, num_file, file);
-***************
-*** 4995,5051 ****
- /*
- * Expand color scheme, compiler or filetype names:
- * 'runtimepath'/{dirnames}/{pat}.vim
-! * dirnames may contain one directory (ex: "colorscheme") or can be a glob
-! * expression matching multiple directories (ex: "{syntax,ftplugin,indent}").
- */
- static int
- ExpandRTDir(pat, num_file, file, dirnames)
- char_u *pat;
- int *num_file;
- char_u ***file;
-! char *dirnames;
- {
-! char_u *all;
- char_u *s;
- char_u *e;
- garray_T ga;
-
- *num_file = 0;
- *file = NULL;
-! s = alloc((unsigned)(STRLEN(pat) + STRLEN(dirnames) + 7));
-! if (s == NULL)
-! return FAIL;
-! sprintf((char *)s, "%s/%s*.vim", dirnames, pat);
-! all = globpath(p_rtp, s, 0);
-! vim_free(s);
-! if (all == NULL)
-! return FAIL;
-
-! ga_init2(&ga, (int)sizeof(char *), 3);
-! for (s = all; *s != NUL; s = e)
- {
-! e = vim_strchr(s, '\n');
-! if (e == NULL)
-! e = s + STRLEN(s);
-! if (ga_grow(&ga, 1) == FAIL)
-! break;
-! if (e - 4 > s && STRNICMP(e - 4, ".vim", 4) == 0)
- {
-! for (s = e - 4; s > all; mb_ptr_back(all, s))
-! if (*s == '\n' || vim_ispathsep(*s))
-! break;
-! ++s;
-! ((char_u **)ga.ga_data)[ga.ga_len] =
- vim_strnsave(s, (int)(e - s - 4));
-! ++ga.ga_len;
- }
-! if (*e != NUL)
-! ++e;
- }
-! vim_free(all);
-
- /* Sort and remove duplicates which can happen when specifying multiple
-! * directories in dirnames such as "{syntax,ftplugin,indent}". */
- remove_duplicates(&ga);
-
- *file = ga.ga_data;
---- 5007,5074 ----
- /*
- * Expand color scheme, compiler or filetype names:
- * 'runtimepath'/{dirnames}/{pat}.vim
-! * "dirnames" is an array with one or more directory names.
- */
- static int
- ExpandRTDir(pat, num_file, file, dirnames)
- char_u *pat;
- int *num_file;
- char_u ***file;
-! char *dirnames[];
- {
-! char_u *matches;
- char_u *s;
- char_u *e;
- garray_T ga;
-+ int i;
-+ int pat_len;
-
- *num_file = 0;
- *file = NULL;
-! pat_len = STRLEN(pat);
-! ga_init2(&ga, (int)sizeof(char *), 10);
-
-! for (i = 0; dirnames[i] != NULL; ++i)
- {
-! s = alloc((unsigned)(STRLEN(dirnames[i]) + pat_len + 7));
-! if (s == NULL)
- {
-! ga_clear_strings(&ga);
-! return FAIL;
-! }
-! sprintf((char *)s, "%s/%s*.vim", dirnames[i], pat);
-! matches = globpath(p_rtp, s, 0);
-! vim_free(s);
-! if (matches == NULL)
-! continue;
-!
-! for (s = matches; *s != NUL; s = e)
-! {
-! e = vim_strchr(s, '\n');
-! if (e == NULL)
-! e = s + STRLEN(s);
-! if (ga_grow(&ga, 1) == FAIL)
-! break;
-! if (e - 4 > s && STRNICMP(e - 4, ".vim", 4) == 0)
-! {
-! for (s = e - 4; s > matches; mb_ptr_back(matches, s))
-! if (*s == '\n' || vim_ispathsep(*s))
-! break;
-! ++s;
-! ((char_u **)ga.ga_data)[ga.ga_len] =
- vim_strnsave(s, (int)(e - s - 4));
-! ++ga.ga_len;
-! }
-! if (*e != NUL)
-! ++e;
- }
-! vim_free(matches);
- }
-! if (ga.ga_len == 0)
-! return FAIL;
-
- /* Sort and remove duplicates which can happen when specifying multiple
-! * directories in dirnames. */
- remove_duplicates(&ga);
-
- *file = ga.ga_data;
-*** ../vim-7.3.236/src/version.c 2011-06-26 19:13:33.000000000 +0200
---- src/version.c 2011-06-26 19:39:39.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 237,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-230. You spend your Friday nights typing away at your keyboard
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.238
-Fcc: 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.238
-Problem: Compiler warning for conversion.
-Solution: Add type cast. (Mike Williams)
-Files: src/ex_getln.c
-
-
-*** ../vim-7.3.237/src/ex_getln.c 2011-06-26 19:40:14.000000000 +0200
---- src/ex_getln.c 2011-07-04 14:23:27.000000000 +0200
-***************
-*** 5025,5031 ****
-
- *num_file = 0;
- *file = NULL;
-! pat_len = STRLEN(pat);
- ga_init2(&ga, (int)sizeof(char *), 10);
-
- for (i = 0; dirnames[i] != NULL; ++i)
---- 5025,5031 ----
-
- *num_file = 0;
- *file = NULL;
-! pat_len = (int)STRLEN(pat);
- ga_init2(&ga, (int)sizeof(char *), 10);
-
- for (i = 0; dirnames[i] != NULL; ++i)
-*** ../vim-7.3.237/src/version.c 2011-06-26 19:40:14.000000000 +0200
---- src/version.c 2011-07-07 15:04:00.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 238,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-255. You work for a newspaper and your editor asks you to write an
- article about Internet addiction...in the "first person."
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.239
-Fcc: 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.239
-Problem: Python corrects the cursor column without taking 'virtualedit'
- into account. (lilydjwg)
-Solution: Call check_cursor_col_win().
-Files: src/if_py_both.h, src/mbyte.c, src/misc2.c, src/normal.c,
- src/proto/mbyte.pro, src/proto/misc2.pro
-
-
-*** ../vim-7.3.238/src/if_py_both.h 2011-06-26 04:01:37.000000000 +0200
---- src/if_py_both.h 2011-07-07 14:28:19.000000000 +0200
-***************
-*** 534,540 ****
- {
- long lnum;
- long col;
-- long len;
-
- if (!PyArg_Parse(val, "(ll)", &lnum, &col))
- return -1;
---- 534,539 ----
-***************
-*** 549,566 ****
- if (VimErrorCheck())
- return -1;
-
-- /* When column is out of range silently correct it. */
-- len = (long)STRLEN(ml_get_buf(this->win->w_buffer, lnum, FALSE));
-- if (col > len)
-- col = len;
--
- this->win->w_cursor.lnum = lnum;
- this->win->w_cursor.col = col;
- #ifdef FEAT_VIRTUALEDIT
- this->win->w_cursor.coladd = 0;
- #endif
-! update_screen(VALID);
-
- return 0;
- }
- else if (strcmp(name, "height") == 0)
---- 548,562 ----
- if (VimErrorCheck())
- return -1;
-
- this->win->w_cursor.lnum = lnum;
- this->win->w_cursor.col = col;
- #ifdef FEAT_VIRTUALEDIT
- this->win->w_cursor.coladd = 0;
- #endif
-! /* When column is out of range silently correct it. */
-! check_cursor_col_win(this->win);
-
-+ update_screen(VALID);
- return 0;
- }
- else if (strcmp(name, "height") == 0)
-*** ../vim-7.3.238/src/mbyte.c 2011-04-11 14:29:13.000000000 +0200
---- src/mbyte.c 2011-07-07 14:27:07.000000000 +0200
-***************
-*** 3563,3569 ****
- void
- mb_adjust_cursor()
- {
-! mb_adjustpos(&curwin->w_cursor);
- }
-
- /*
---- 3563,3569 ----
- void
- mb_adjust_cursor()
- {
-! mb_adjustpos(curbuf, &curwin->w_cursor);
- }
-
- /*
-***************
-*** 3571,3577 ****
- * If it points to a tail byte it's moved backwards to the head byte.
- */
- void
-! mb_adjustpos(lp)
- pos_T *lp;
- {
- char_u *p;
---- 3571,3578 ----
- * If it points to a tail byte it's moved backwards to the head byte.
- */
- void
-! mb_adjustpos(buf, lp)
-! buf_T *buf;
- pos_T *lp;
- {
- char_u *p;
-***************
-*** 3582,3588 ****
- #endif
- )
- {
-! p = ml_get(lp->lnum);
- lp->col -= (*mb_head_off)(p, p + lp->col);
- #ifdef FEAT_VIRTUALEDIT
- /* Reset "coladd" when the cursor would be on the right half of a
---- 3583,3589 ----
- #endif
- )
- {
-! p = ml_get_buf(buf, lp->lnum, FALSE);
- lp->col -= (*mb_head_off)(p, p + lp->col);
- #ifdef FEAT_VIRTUALEDIT
- /* Reset "coladd" when the cursor would be on the right half of a
-*** ../vim-7.3.238/src/misc2.c 2011-04-11 16:56:29.000000000 +0200
---- src/misc2.c 2011-07-07 14:27:50.000000000 +0200
-***************
-*** 333,339 ****
- #ifdef FEAT_MBYTE
- /* prevent from moving onto a trail byte */
- if (has_mbyte)
-! mb_adjustpos(pos);
- #endif
-
- if (col < wcol)
---- 333,339 ----
- #ifdef FEAT_MBYTE
- /* prevent from moving onto a trail byte */
- if (has_mbyte)
-! mb_adjustpos(curbuf, pos);
- #endif
-
- if (col < wcol)
-***************
-*** 544,559 ****
- void
- check_cursor_col()
- {
- colnr_T len;
- #ifdef FEAT_VIRTUALEDIT
-! colnr_T oldcol = curwin->w_cursor.col;
-! colnr_T oldcoladd = curwin->w_cursor.col + curwin->w_cursor.coladd;
- #endif
-
-! len = (colnr_T)STRLEN(ml_get_curline());
- if (len == 0)
-! curwin->w_cursor.col = 0;
-! else if (curwin->w_cursor.col >= len)
- {
- /* Allow cursor past end-of-line when:
- * - in Insert mode or restarting Insert mode
---- 544,569 ----
- void
- check_cursor_col()
- {
-+ check_cursor_col_win(curwin);
-+ }
-+
-+ /*
-+ * Make sure win->w_cursor.col is valid.
-+ */
-+ void
-+ check_cursor_col_win(win)
-+ win_T *win;
-+ {
- colnr_T len;
- #ifdef FEAT_VIRTUALEDIT
-! colnr_T oldcol = win->w_cursor.col;
-! colnr_T oldcoladd = win->w_cursor.col + win->w_cursor.coladd;
- #endif
-
-! len = (colnr_T)STRLEN(ml_get_buf(win->w_buffer, win->w_cursor.lnum, FALSE));
- if (len == 0)
-! win->w_cursor.col = 0;
-! else if (win->w_cursor.col >= len)
- {
- /* Allow cursor past end-of-line when:
- * - in Insert mode or restarting Insert mode
-***************
-*** 567,599 ****
- || (ve_flags & VE_ONEMORE)
- #endif
- || virtual_active())
-! curwin->w_cursor.col = len;
- else
- {
-! curwin->w_cursor.col = len - 1;
- #ifdef FEAT_MBYTE
-! /* prevent cursor from moving on the trail byte */
- if (has_mbyte)
-! mb_adjust_cursor();
- #endif
- }
- }
-! else if (curwin->w_cursor.col < 0)
-! curwin->w_cursor.col = 0;
-
- #ifdef FEAT_VIRTUALEDIT
- /* If virtual editing is on, we can leave the cursor on the old position,
- * only we must set it to virtual. But don't do it when at the end of the
- * line. */
- if (oldcol == MAXCOL)
-! curwin->w_cursor.coladd = 0;
- else if (ve_flags == VE_ALL)
- {
-! if (oldcoladd > curwin->w_cursor.col)
-! curwin->w_cursor.coladd = oldcoladd - curwin->w_cursor.col;
- else
- /* avoid weird number when there is a miscalculation or overflow */
-! curwin->w_cursor.coladd = 0;
- }
- #endif
- }
---- 577,609 ----
- || (ve_flags & VE_ONEMORE)
- #endif
- || virtual_active())
-! win->w_cursor.col = len;
- else
- {
-! win->w_cursor.col = len - 1;
- #ifdef FEAT_MBYTE
-! /* Move the cursor to the head byte. */
- if (has_mbyte)
-! mb_adjustpos(win->w_buffer, &win->w_cursor);
- #endif
- }
- }
-! else if (win->w_cursor.col < 0)
-! win->w_cursor.col = 0;
-
- #ifdef FEAT_VIRTUALEDIT
- /* If virtual editing is on, we can leave the cursor on the old position,
- * only we must set it to virtual. But don't do it when at the end of the
- * line. */
- if (oldcol == MAXCOL)
-! win->w_cursor.coladd = 0;
- else if (ve_flags == VE_ALL)
- {
-! if (oldcoladd > win->w_cursor.col)
-! win->w_cursor.coladd = oldcoladd - win->w_cursor.col;
- else
- /* avoid weird number when there is a miscalculation or overflow */
-! win->w_cursor.coladd = 0;
- }
- #endif
- }
-*** ../vim-7.3.238/src/normal.c 2011-06-20 00:45:55.000000000 +0200
---- src/normal.c 2011-07-07 14:27:57.000000000 +0200
-***************
-*** 8774,8780 ****
- {
- --pp->col;
- #ifdef FEAT_MBYTE
-! mb_adjustpos(pp);
- #endif
- }
- else if (pp->lnum > 1)
---- 8774,8780 ----
- {
- --pp->col;
- #ifdef FEAT_MBYTE
-! mb_adjustpos(curbuf, pp);
- #endif
- }
- else if (pp->lnum > 1)
-*** ../vim-7.3.238/src/proto/mbyte.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/mbyte.pro 2011-07-07 14:27:09.000000000 +0200
-***************
-*** 56,62 ****
- int utf_valid_string __ARGS((char_u *s, char_u *end));
- int dbcs_screen_tail_off __ARGS((char_u *base, char_u *p));
- void mb_adjust_cursor __ARGS((void));
-! void mb_adjustpos __ARGS((pos_T *lp));
- char_u *mb_prevptr __ARGS((char_u *line, char_u *p));
- int mb_charlen __ARGS((char_u *str));
- int mb_charlen_len __ARGS((char_u *str, int len));
---- 56,62 ----
- int utf_valid_string __ARGS((char_u *s, char_u *end));
- int dbcs_screen_tail_off __ARGS((char_u *base, char_u *p));
- void mb_adjust_cursor __ARGS((void));
-! void mb_adjustpos __ARGS((buf_T *buf, pos_T *lp));
- char_u *mb_prevptr __ARGS((char_u *line, char_u *p));
- int mb_charlen __ARGS((char_u *str));
- int mb_charlen_len __ARGS((char_u *str, int len));
-*** ../vim-7.3.238/src/proto/misc2.pro 2011-04-11 16:56:29.000000000 +0200
---- src/proto/misc2.pro 2011-07-07 14:26:57.000000000 +0200
-***************
-*** 14,19 ****
---- 14,20 ----
- linenr_T get_cursor_rel_lnum __ARGS((win_T *wp, linenr_T lnum));
- void check_cursor_lnum __ARGS((void));
- void check_cursor_col __ARGS((void));
-+ void check_cursor_col_win __ARGS((win_T *win));
- void check_cursor __ARGS((void));
- void adjust_cursor_col __ARGS((void));
- int leftcol_changed __ARGS((void));
-*** ../vim-7.3.238/src/version.c 2011-07-07 15:04:38.000000000 +0200
---- src/version.c 2011-07-07 15:05:49.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 239,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-256. You are able to write down over 250 symptoms of being an internet
- addict, even though they only asked for 101.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.240
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Note: I haven't verified this works or even compiles. Please send me a
-patch if you see a problem and can fix it.
-
-Patch 7.3.240
-Problem: External commands can't use pipes on MS-Windows.
-Solution: Implement pipes and use them when 'shelltemp' isn't set. (Vincent
- Berthoux)
-Files: src/eval.c, src/ex_cmds.c, src/misc2.c, src/os_unix.c,
- src/os_win32.c, src/proto/misc2.pro, src/ui.c
-
-
-*** ../vim-7.3.239/src/eval.c 2011-06-19 02:55:32.000000000 +0200
---- src/eval.c 2011-07-07 15:44:56.000000000 +0200
-***************
-*** 11931,11937 ****
- #ifdef FEAT_SEARCHPATH
- "file_in_path",
- #endif
-! #if defined(UNIX) && !defined(USE_SYSTEM)
- "filterpipe",
- #endif
- #ifdef FEAT_FIND_ID
---- 11931,11937 ----
- #ifdef FEAT_SEARCHPATH
- "file_in_path",
- #endif
-! #if (defined(UNIX) && !defined(USE_SYSTEM)) || defined(WIN3264)
- "filterpipe",
- #endif
- #ifdef FEAT_FIND_ID
-*** ../vim-7.3.239/src/ex_cmds.c 2011-06-12 22:03:15.000000000 +0200
---- src/ex_cmds.c 2011-07-07 15:44:56.000000000 +0200
-***************
-*** 1107,1113 ****
- if (do_out)
- shell_flags |= SHELL_DOOUT;
-
-! #if !defined(USE_SYSTEM) && defined(UNIX)
- if (!do_in && do_out && !p_stmp)
- {
- /* Use a pipe to fetch stdout of the command, do not use a temp file. */
---- 1107,1113 ----
- if (do_out)
- shell_flags |= SHELL_DOOUT;
-
-! #if (!defined(USE_SYSTEM) && defined(UNIX)) || defined(WIN3264)
- if (!do_in && do_out && !p_stmp)
- {
- /* Use a pipe to fetch stdout of the command, do not use a temp file. */
-*** ../vim-7.3.239/src/misc2.c 2011-07-07 15:08:53.000000000 +0200
---- src/misc2.c 2011-07-07 15:55:42.000000000 +0200
-***************
-*** 2146,2151 ****
---- 2146,2170 ----
- }
- }
-
-+ #if (defined(UNIX) && !defined(USE_SYSTEM)) || defined(WIN3264)
-+ /*
-+ * Append the text in "gap" below the cursor line and clear "gap".
-+ */
-+ void
-+ append_ga_line(gap)
-+ garray_T *gap;
-+ {
-+ /* Remove trailing CR. */
-+ if (gap->ga_len > 0
-+ && !curbuf->b_p_bin
-+ && ((char_u *)gap->ga_data)[gap->ga_len - 1] == CAR)
-+ --gap->ga_len;
-+ ga_append(gap, NUL);
-+ ml_append(curwin->w_cursor.lnum++, gap->ga_data, 0, FALSE);
-+ gap->ga_len = 0;
-+ }
-+ #endif
-+
- /************************************************************************
- * functions that use lookup tables for various things, generally to do with
- * special key codes.
-*** ../vim-7.3.239/src/os_unix.c 2011-04-11 16:56:29.000000000 +0200
---- src/os_unix.c 2011-07-07 15:54:58.000000000 +0200
-***************
-*** 3660,3686 ****
- /* Nothing to do. */
- }
-
-- #ifndef USE_SYSTEM
-- static void append_ga_line __ARGS((garray_T *gap));
--
-- /*
-- * Append the text in "gap" below the cursor line and clear "gap".
-- */
-- static void
-- append_ga_line(gap)
-- garray_T *gap;
-- {
-- /* Remove trailing CR. */
-- if (gap->ga_len > 0
-- && !curbuf->b_p_bin
-- && ((char_u *)gap->ga_data)[gap->ga_len - 1] == CAR)
-- --gap->ga_len;
-- ga_append(gap, NUL);
-- ml_append(curwin->w_cursor.lnum++, gap->ga_data, 0, FALSE);
-- gap->ga_len = 0;
-- }
-- #endif
--
- int
- mch_call_shell(cmd, options)
- char_u *cmd;
---- 3660,3665 ----
-*** ../vim-7.3.239/src/os_win32.c 2011-05-25 17:06:16.000000000 +0200
---- src/os_win32.c 2011-07-07 16:08:30.000000000 +0200
-***************
-*** 417,422 ****
---- 417,427 ----
- static PGNSECINFO pGetNamedSecurityInfo;
- #endif
-
-+ typedef BOOL (WINAPI *PSETHANDLEINFORMATION)(HANDLE, DWORD, DWORD);
-+
-+ static BOOL allowPiping = FALSE;
-+ static PSETHANDLEINFORMATION pSetHandleInformation;
-+
- /*
- * Set g_PlatformId to VER_PLATFORM_WIN32_NT (NT) or
- * VER_PLATFORM_WIN32_WINDOWS (Win95).
-***************
-*** 467,472 ****
---- 472,489 ----
- }
- }
- #endif
-+ /*
-+ * If we are on windows NT, try to load the pipe functions, only
-+ * available from Win2K.
-+ */
-+ if (g_PlatformId == VER_PLATFORM_WIN32_NT)
-+ {
-+ HANDLE kernel32 = GetModuleHandle("kernel32");
-+ pSetHandleInformation = (PSETHANDLEINFORMATION)GetProcAddress(
-+ kernel32, "SetHandleInformation");
-+
-+ allowPiping = pSetHandleInformation != NULL;
-+ }
- done = TRUE;
- }
- }
-***************
-*** 1635,1641 ****
- }
-
- #if ((defined(__MINGW32__) || defined (__CYGWIN32__)) && \
-! __MSVCRT_VERSION__ >= 0x800) || (defined(_MSC_VER) && _MSC_VER >= 1400)
- /*
- * Bad parameter handler.
- *
---- 1652,1658 ----
- }
-
- #if ((defined(__MINGW32__) || defined (__CYGWIN32__)) && \
-! __MSVCRT_VERSION__ >= 0x800) || (defined(_MSC_VER) && _MSC_VER >= 1400)
- /*
- * Bad parameter handler.
- *
-***************
-*** 3210,3216 ****
- * 4. Prompt the user to press a key to close the console window
- */
- static int
-! mch_system(char *cmd, int options)
- {
- STARTUPINFO si;
- PROCESS_INFORMATION pi;
---- 3227,3233 ----
- * 4. Prompt the user to press a key to close the console window
- */
- static int
-! mch_system_classic(char *cmd, int options)
- {
- STARTUPINFO si;
- PROCESS_INFORMATION pi;
-***************
-*** 3315,3320 ****
---- 3332,3829 ----
-
- return ret;
- }
-+
-+ /*
-+ * Thread launched by the gui to send the current buffer data to the
-+ * process. This way avoid to hang up vim totally if the children
-+ * process take a long time to process the lines.
-+ */
-+ static DWORD WINAPI
-+ sub_process_writer(LPVOID param)
-+ {
-+ HANDLE g_hChildStd_IN_Wr = param;
-+ linenr_T lnum = curbuf->b_op_start.lnum;
-+ DWORD len = 0;
-+ DWORD l;
-+ char_u *lp = ml_get(lnum);
-+ char_u *s;
-+ int written = 0;
-+
-+ for (;;)
-+ {
-+ l = (DWORD)STRLEN(lp + written);
-+ if (l == 0)
-+ len = 0;
-+ else if (lp[written] == NL)
-+ {
-+ /* NL -> NUL translation */
-+ WriteFile(g_hChildStd_IN_Wr, "", 1, &len, NULL);
-+ }
-+ else
-+ {
-+ s = vim_strchr(lp + written, NL);
-+ WriteFile(g_hChildStd_IN_Wr, (char *)lp + written,
-+ s == NULL ? l : (DWORD)(s - (lp + written)),
-+ &len, NULL);
-+ }
-+ if (len == (int)l)
-+ {
-+ /* Finished a line, add a NL, unless this line should not have
-+ * one. */
-+ if (lnum != curbuf->b_op_end.lnum
-+ || !curbuf->b_p_bin
-+ || (lnum != curbuf->b_no_eol_lnum
-+ && (lnum != curbuf->b_ml.ml_line_count
-+ || curbuf->b_p_eol)))
-+ {
-+ WriteFile(g_hChildStd_IN_Wr, "\n", 1, &ignored, NULL);
-+ }
-+
-+ ++lnum;
-+ if (lnum > curbuf->b_op_end.lnum)
-+ break;
-+
-+ lp = ml_get(lnum);
-+ written = 0;
-+ }
-+ else if (len > 0)
-+ written += len;
-+ }
-+
-+ /* finished all the lines, close pipe */
-+ CloseHandle(g_hChildStd_IN_Wr);
-+ ExitThread(0);
-+ }
-+
-+
-+ # define BUFLEN 100 /* length for buffer, stolen from unix version */
-+
-+ /*
-+ * This function read from the children's stdout and write the
-+ * data on screen or in the buffer accordingly.
-+ */
-+ static void
-+ dump_pipe(int options,
-+ HANDLE g_hChildStd_OUT_Rd,
-+ garray_T *ga,
-+ char_u buffer[],
-+ DWORD *buffer_off)
-+ {
-+ DWORD availableBytes = 0;
-+ DWORD i;
-+ int c;
-+ char_u *p;
-+ int ret;
-+ DWORD len;
-+ DWORD toRead;
-+ int repeatCount;
-+
-+ /* we query the pipe to see if there is any data to read
-+ * to avoid to perform a blocking read */
-+ ret = PeekNamedPipe(g_hChildStd_OUT_Rd, /* pipe to query */
-+ NULL, /* optional buffer */
-+ 0, /* buffe size */
-+ NULL, /* number of read bytes */
-+ &availableBytes, /* available bytes total */
-+ NULL); /* byteLeft */
-+
-+ repeatCount = 0;
-+ /* We got real data in the pipe, read it */
-+ while (ret != 0 && availableBytes > 0 && availableBytes > 0)
-+ {
-+ repeatCount++;
-+ toRead =
-+ # ifdef FEAT_MBYTE
-+ (DWORD)(BUFLEN - *buffer_off);
-+ # else
-+ (DWORD)BUFLEN;
-+ # endif
-+ toRead = availableBytes < toRead ? availableBytes : toRead;
-+ ReadFile(g_hChildStd_OUT_Rd, buffer
-+ # ifdef FEAT_MBYTE
-+ + *buffer_off, toRead
-+ # else
-+ , toRead
-+ # endif
-+ , &len, NULL);
-+
-+ /* If we haven't read anything, there is a problem */
-+ if (len == 0)
-+ break;
-+
-+ availableBytes -= len;
-+
-+ if (options & SHELL_READ)
-+ {
-+ /* Do NUL -> NL translation, append NL separated
-+ * lines to the current buffer. */
-+ for (i = 0; i < len; ++i)
-+ {
-+ if (buffer[i] == NL)
-+ append_ga_line(ga);
-+ else if (buffer[i] == NUL)
-+ ga_append(ga, NL);
-+ else
-+ ga_append(ga, buffer[i]);
-+ }
-+ }
-+ # ifdef FEAT_MBYTE
-+ else if (has_mbyte)
-+ {
-+ int l;
-+
-+ len += *buffer_off;
-+ buffer[len] = NUL;
-+
-+ /* Check if the last character in buffer[] is
-+ * incomplete, keep these bytes for the next
-+ * round. */
-+ for (p = buffer; p < buffer + len; p += l)
-+ {
-+ l = mb_cptr2len(p);
-+ if (l == 0)
-+ l = 1; /* NUL byte? */
-+ else if (MB_BYTE2LEN(*p) != l)
-+ break;
-+ }
-+ if (p == buffer) /* no complete character */
-+ {
-+ /* avoid getting stuck at an illegal byte */
-+ if (len >= 12)
-+ ++p;
-+ else
-+ {
-+ *buffer_off = len;
-+ return;
-+ }
-+ }
-+ c = *p;
-+ *p = NUL;
-+ msg_puts(buffer);
-+ if (p < buffer + len)
-+ {
-+ *p = c;
-+ *buffer_off = (DWORD)((buffer + len) - p);
-+ mch_memmove(buffer, p, *buffer_off);
-+ return;
-+ }
-+ *buffer_off = 0;
-+ }
-+ # endif /* FEAT_MBYTE */
-+ else
-+ {
-+ buffer[len] = NUL;
-+ msg_puts(buffer);
-+ }
-+
-+ windgoto(msg_row, msg_col);
-+ cursor_on();
-+ out_flush();
-+ }
-+ }
-+
-+ /*
-+ * Version of system to use for windows NT > 5.0 (Win2K), use pipe
-+ * for communication and doesn't open any new window.
-+ */
-+ static int
-+ mch_system_piped(char *cmd, int options)
-+ {
-+ STARTUPINFO si;
-+ PROCESS_INFORMATION pi;
-+ DWORD ret = 0;
-+
-+ HANDLE g_hChildStd_IN_Rd = NULL;
-+ HANDLE g_hChildStd_IN_Wr = NULL;
-+ HANDLE g_hChildStd_OUT_Rd = NULL;
-+ HANDLE g_hChildStd_OUT_Wr = NULL;
-+
-+ char_u buffer[BUFLEN + 1]; /* reading buffer + size */
-+ DWORD len;
-+
-+ /* buffer used to receive keys */
-+ char_u ta_buf[BUFLEN + 1]; /* TypeAHead */
-+ int ta_len = 0; /* valid bytes in ta_buf[] */
-+
-+ DWORD i;
-+ int c;
-+ int noread_cnt = 0;
-+ garray_T ga;
-+ int delay = 1;
-+ # ifdef FEAT_MBYTE
-+ DWORD buffer_off = 0; /* valid bytes in buffer[] */
-+ # endif
-+
-+ SECURITY_ATTRIBUTES saAttr;
-+
-+ /* Set the bInheritHandle flag so pipe handles are inherited. */
-+ saAttr.nLength = sizeof(SECURITY_ATTRIBUTES);
-+ saAttr.bInheritHandle = TRUE;
-+ saAttr.lpSecurityDescriptor = NULL;
-+
-+ if ( ! CreatePipe(&g_hChildStd_OUT_Rd, &g_hChildStd_OUT_Wr, &saAttr, 0)
-+ /* Ensure the read handle to the pipe for STDOUT is not inherited. */
-+ || ! pSetHandleInformation(g_hChildStd_OUT_Rd, HANDLE_FLAG_INHERIT, 0)
-+ /* Create a pipe for the child process's STDIN. */
-+ || ! CreatePipe(&g_hChildStd_IN_Rd, &g_hChildStd_IN_Wr, &saAttr, 0)
-+ /* Ensure the write handle to the pipe for STDIN is not inherited. */
-+ || ! pSetHandleInformation(g_hChildStd_IN_Wr, HANDLE_FLAG_INHERIT, 0) )
-+ {
-+ CloseHandle(g_hChildStd_IN_Rd);
-+ CloseHandle(g_hChildStd_IN_Wr);
-+ CloseHandle(g_hChildStd_OUT_Rd);
-+ CloseHandle(g_hChildStd_OUT_Wr);
-+ MSG_PUTS(_("\nCannot create pipes\n"));
-+ }
-+
-+ si.cb = sizeof(si);
-+ si.lpReserved = NULL;
-+ si.lpDesktop = NULL;
-+ si.lpTitle = NULL;
-+ si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
-+
-+ /* set-up our file redirection */
-+ si.hStdError = g_hChildStd_OUT_Wr;
-+ si.hStdOutput = g_hChildStd_OUT_Wr;
-+ si.hStdInput = g_hChildStd_IN_Rd;
-+ si.wShowWindow = SW_HIDE;
-+ si.cbReserved2 = 0;
-+ si.lpReserved2 = NULL;
-+
-+ if (options & SHELL_READ)
-+ ga_init2(&ga, 1, BUFLEN);
-+
-+ /* Now, run the command */
-+ CreateProcess(NULL, /* Executable name */
-+ cmd, /* Command to execute */
-+ NULL, /* Process security attributes */
-+ NULL, /* Thread security attributes */
-+
-+ // this command can be litigeous, handle inheritence was
-+ // deactivated for pending temp file, but, if we deactivate
-+ // it, the pipes don't work for some reason.
-+ TRUE, /* Inherit handles, first deactivated,
-+ * but needed */
-+ CREATE_DEFAULT_ERROR_MODE, /* Creation flags */
-+ NULL, /* Environment */
-+ NULL, /* Current directory */
-+ &si, /* Startup information */
-+ &pi); /* Process information */
-+
-+
-+ /* Close our unused side of the pipes */
-+ CloseHandle(g_hChildStd_IN_Rd);
-+ CloseHandle(g_hChildStd_OUT_Wr);
-+
-+ if (options & SHELL_WRITE)
-+ {
-+ HANDLE thread =
-+ CreateThread(NULL, /* security attributes */
-+ 0, /* default stack size */
-+ sub_process_writer, /* function to be executed */
-+ g_hChildStd_IN_Wr, /* parameter */
-+ 0, /* creation flag, start immediately */
-+ NULL); /* we don't care about thread id */
-+ CloseHandle(thread);
-+ g_hChildStd_IN_Wr = NULL;
-+ }
-+
-+ /* Keep updating the window while waiting for the shell to finish. */
-+ for (;;)
-+ {
-+ MSG msg;
-+
-+ if (PeekMessage(&msg, (HWND)NULL, 0, 0, PM_REMOVE))
-+ {
-+ TranslateMessage(&msg);
-+ DispatchMessage(&msg);
-+ }
-+
-+ /* write pipe information in the window */
-+ if ((options & (SHELL_READ|SHELL_WRITE))
-+ # ifdef FEAT_GUI
-+ || gui.in_use
-+ # endif
-+ )
-+ {
-+ len = 0;
-+ if (!(options & SHELL_EXPAND)
-+ && ((options &
-+ (SHELL_READ|SHELL_WRITE|SHELL_COOKED))
-+ != (SHELL_READ|SHELL_WRITE|SHELL_COOKED)
-+ # ifdef FEAT_GUI
-+ || gui.in_use
-+ # endif
-+ )
-+ && (ta_len > 0 || noread_cnt > 4))
-+ {
-+ if (ta_len == 0)
-+ {
-+ /* Get extra characters when we don't have any. Reset the
-+ * counter and timer. */
-+ noread_cnt = 0;
-+ # if defined(HAVE_GETTIMEOFDAY) && defined(HAVE_SYS_TIME_H)
-+ gettimeofday(&start_tv, NULL);
-+ # endif
-+ len = ui_inchar(ta_buf, BUFLEN, 10L, 0);
-+ }
-+ if (ta_len > 0 || len > 0)
-+ {
-+ /*
-+ * For pipes: Check for CTRL-C: send interrupt signal to
-+ * child. Check for CTRL-D: EOF, close pipe to child.
-+ */
-+ if (len == 1 && cmd != NULL)
-+ {
-+ if (ta_buf[ta_len] == Ctrl_C)
-+ {
-+ /* Learn what exit code is expected, for
-+ * now put 9 as SIGKILL */
-+ TerminateProcess(pi.hProcess, 9);
-+ }
-+ if (ta_buf[ta_len] == Ctrl_D)
-+ {
-+ CloseHandle(g_hChildStd_IN_Wr);
-+ g_hChildStd_IN_Wr = NULL;
-+ }
-+ }
-+
-+ /* replace K_BS by <BS> and K_DEL by <DEL> */
-+ for (i = ta_len; i < ta_len + len; ++i)
-+ {
-+ if (ta_buf[i] == CSI && len - i > 2)
-+ {
-+ c = TERMCAP2KEY(ta_buf[i + 1], ta_buf[i + 2]);
-+ if (c == K_DEL || c == K_KDEL || c == K_BS)
-+ {
-+ mch_memmove(ta_buf + i + 1, ta_buf + i + 3,
-+ (size_t)(len - i - 2));
-+ if (c == K_DEL || c == K_KDEL)
-+ ta_buf[i] = DEL;
-+ else
-+ ta_buf[i] = Ctrl_H;
-+ len -= 2;
-+ }
-+ }
-+ else if (ta_buf[i] == '\r')
-+ ta_buf[i] = '\n';
-+ # ifdef FEAT_MBYTE
-+ if (has_mbyte)
-+ i += (*mb_ptr2len_len)(ta_buf + i,
-+ ta_len + len - i) - 1;
-+ # endif
-+ }
-+
-+ /*
-+ * For pipes: echo the typed characters. For a pty this
-+ * does not seem to work.
-+ */
-+ for (i = ta_len; i < ta_len + len; ++i)
-+ {
-+ if (ta_buf[i] == '\n' || ta_buf[i] == '\b')
-+ msg_putchar(ta_buf[i]);
-+ # ifdef FEAT_MBYTE
-+ else if (has_mbyte)
-+ {
-+ int l = (*mb_ptr2len)(ta_buf + i);
-+
-+ msg_outtrans_len(ta_buf + i, l);
-+ i += l - 1;
-+ }
-+ # endif
-+ else
-+ msg_outtrans_len(ta_buf + i, 1);
-+ }
-+ windgoto(msg_row, msg_col);
-+ out_flush();
-+
-+ ta_len += len;
-+
-+ /*
-+ * Write the characters to the child, unless EOF has been
-+ * typed for pipes. Write one character at a time, to
-+ * avoid losing too much typeahead. When writing buffer
-+ * lines, drop the typed characters (only check for
-+ * CTRL-C).
-+ */
-+ if (options & SHELL_WRITE)
-+ ta_len = 0;
-+ else if (g_hChildStd_IN_Wr != NULL)
-+ {
-+ WriteFile(g_hChildStd_IN_Wr, (char*)ta_buf,
-+ 1, &len, NULL);
-+ // if we are typing in, we want to keep things reactive
-+ delay = 1;
-+ if (len > 0)
-+ {
-+ ta_len -= len;
-+ mch_memmove(ta_buf, ta_buf + len, ta_len);
-+ }
-+ }
-+ }
-+ }
-+ }
-+
-+ if (ta_len)
-+ ui_inchar_undo(ta_buf, ta_len);
-+
-+ if (WaitForSingleObject(pi.hProcess, delay) != WAIT_TIMEOUT)
-+ {
-+ dump_pipe(options, g_hChildStd_OUT_Rd,
-+ &ga, buffer, &buffer_off);
-+ break;
-+ }
-+
-+ ++noread_cnt;
-+ dump_pipe(options, g_hChildStd_OUT_Rd,
-+ &ga, buffer, &buffer_off);
-+
-+ /* We start waiting for a very short time and then increase it, so
-+ * that we respond quickly when the process is quick, and don't
-+ * consume too much overhead when it's slow. */
-+ if (delay < 50)
-+ delay += 10;
-+ }
-+
-+ /* Close the pipe */
-+ CloseHandle(g_hChildStd_OUT_Rd);
-+ if (g_hChildStd_IN_Wr != NULL)
-+ CloseHandle(g_hChildStd_IN_Wr);
-+
-+ WaitForSingleObject(pi.hProcess, INFINITE);
-+
-+ /* Get the command exit code */
-+ GetExitCodeProcess(pi.hProcess, &ret);
-+
-+ if (options & SHELL_READ)
-+ {
-+ if (ga.ga_len > 0)
-+ {
-+ append_ga_line(&ga);
-+ /* remember that the NL was missing */
-+ curbuf->b_no_eol_lnum = curwin->w_cursor.lnum;
-+ }
-+ else
-+ curbuf->b_no_eol_lnum = 0;
-+ ga_clear(&ga);
-+ }
-+
-+ /* Close the handles to the subprocess, so that it goes away */
-+ CloseHandle(pi.hThread);
-+ CloseHandle(pi.hProcess);
-+
-+ return ret;
-+ }
-+
-+ static int
-+ mch_system(char *cmd, int options)
-+ {
-+ /* if we can pipe and the shelltemp option is off */
-+ if (allowPiping && !p_stmp)
-+ return mch_system_piped(cmd, options);
-+ else
-+ return mch_system_classic(cmd, options);
-+ }
- #else
-
- # define mch_system(c, o) system(c)
-***************
-*** 3388,3394 ****
- char_u *newcmd;
- long_u cmdlen = (
- #ifdef FEAT_GUI_W32
-! STRLEN(vimrun_path) +
- #endif
- STRLEN(p_sh) + STRLEN(p_shcf) + STRLEN(cmd) + 10);
-
---- 3897,3903 ----
- char_u *newcmd;
- long_u cmdlen = (
- #ifdef FEAT_GUI_W32
-! (allowPiping && !p_stmp ? 0 : STRLEN(vimrun_path)) +
- #endif
- STRLEN(p_sh) + STRLEN(p_shcf) + STRLEN(cmd) + 10);
-
-***************
-*** 3497,3503 ****
- MB_ICONWARNING);
- need_vimrun_warning = FALSE;
- }
-! if (!s_dont_use_vimrun)
- /* Use vimrun to execute the command. It opens a console
- * window, which can be closed without killing Vim. */
- vim_snprintf((char *)newcmd, cmdlen, "%s%s%s %s %s",
---- 4006,4012 ----
- MB_ICONWARNING);
- need_vimrun_warning = FALSE;
- }
-! if (!s_dont_use_vimrun && (!allowPiping || p_stmp))
- /* Use vimrun to execute the command. It opens a console
- * window, which can be closed without killing Vim. */
- vim_snprintf((char *)newcmd, cmdlen, "%s%s%s %s %s",
-***************
-*** 3521,3527 ****
- /* Print the return value, unless "vimrun" was used. */
- if (x != 0 && !(options & SHELL_SILENT) && !emsg_silent
- #if defined(FEAT_GUI_W32)
-! && ((options & SHELL_DOOUT) || s_dont_use_vimrun)
- #endif
- )
- {
---- 4030,4037 ----
- /* Print the return value, unless "vimrun" was used. */
- if (x != 0 && !(options & SHELL_SILENT) && !emsg_silent
- #if defined(FEAT_GUI_W32)
-! && ((options & SHELL_DOOUT) || s_dont_use_vimrun
-! || (allowPiping && !p_stmp))
- #endif
- )
- {
-*** ../vim-7.3.239/src/proto/misc2.pro 2011-07-07 15:08:53.000000000 +0200
---- src/proto/misc2.pro 2011-07-07 15:56:16.000000000 +0200
-***************
-*** 58,63 ****
---- 58,64 ----
- char_u *ga_concat_strings __ARGS((garray_T *gap));
- void ga_concat __ARGS((garray_T *gap, char_u *s));
- void ga_append __ARGS((garray_T *gap, int c));
-+ void append_ga_line __ARGS((garray_T *gap));
- int name_to_mod_mask __ARGS((int c));
- int simplify_key __ARGS((int key, int *modifiers));
- int handle_x_keys __ARGS((int key));
-*** ../vim-7.3.239/src/ui.c 2011-06-19 01:14:23.000000000 +0200
---- src/ui.c 2011-07-07 15:44:56.000000000 +0200
-***************
-*** 58,64 ****
- #endif
- }
-
-! #if defined(UNIX) || defined(VMS) || defined(PROTO)
- /*
- * When executing an external program, there may be some typed characters that
- * are not consumed by it. Give them back to ui_inchar() and they are stored
---- 58,64 ----
- #endif
- }
-
-! #if defined(UNIX) || defined(VMS) || defined(PROTO) || defined(WIN3264)
- /*
- * When executing an external program, there may be some typed characters that
- * are not consumed by it. Give them back to ui_inchar() and they are stored
-*** ../vim-7.3.239/src/version.c 2011-07-07 15:08:53.000000000 +0200
---- src/version.c 2011-07-07 16:14:20.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 240,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-257. Your "hundred-and-one" lists include well over 101 items, since you
- automatically interpret all numbers in hexadecimal notation.
- (hex 101 = decimal 257)
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.241
-Fcc: 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.241
-Problem: Using CTRL-R CTRL-W on the command line may insert only part of
- the word.
-Solution: Use the cursor position instead of assuming it is at the end of
- the command. (Tyru)
-Files: src/ex_getln.c
-
-
-*** ../vim-7.3.240/src/ex_getln.c 2011-07-07 15:04:38.000000000 +0200
---- src/ex_getln.c 2011-07-07 16:38:50.000000000 +0200
-***************
-*** 3046,3052 ****
- int len;
-
- /* Locate start of last word in the cmd buffer. */
-! for (w = ccline.cmdbuff + ccline.cmdlen; w > ccline.cmdbuff; )
- {
- #ifdef FEAT_MBYTE
- if (has_mbyte)
---- 3046,3052 ----
- int len;
-
- /* Locate start of last word in the cmd buffer. */
-! for (w = ccline.cmdbuff + ccline.cmdpos; w > ccline.cmdbuff; )
- {
- #ifdef FEAT_MBYTE
- if (has_mbyte)
-***************
-*** 3064,3070 ****
- --w;
- }
- }
-! len = (int)((ccline.cmdbuff + ccline.cmdlen) - w);
- if (p_ic ? STRNICMP(w, arg, len) == 0 : STRNCMP(w, arg, len) == 0)
- p += len;
- }
---- 3064,3070 ----
- --w;
- }
- }
-! len = (int)((ccline.cmdbuff + ccline.cmdpos) - w);
- if (p_ic ? STRNICMP(w, arg, len) == 0 : STRNCMP(w, arg, len) == 0)
- p += len;
- }
-*** ../vim-7.3.240/src/version.c 2011-07-07 16:20:45.000000000 +0200
---- src/version.c 2011-07-07 16:41:29.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 241,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-258. When you want to see your girlfriend, you surf to her homepage.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.242
-Fcc: 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.242
-Problem: Illegal memory access in after_pathsep().
-Solution: Check that the pointer is not at the start of the file name.
- (Dominique Pelle)
-Files: src/misc2.c
-
-
-*** ../vim-7.3.241/src/misc2.c 2011-07-07 16:20:45.000000000 +0200
---- src/misc2.c 2011-07-07 17:05:41.000000000 +0200
-***************
-*** 3247,3253 ****
- #if defined(FEAT_MBYTE) || defined(PROTO)
- /*
- * Return TRUE if "p" points to just after a path separator.
-! * Take care of multi-byte characters.
- * "b" must point to the start of the file name
- */
- int
---- 3247,3253 ----
- #if defined(FEAT_MBYTE) || defined(PROTO)
- /*
- * Return TRUE if "p" points to just after a path separator.
-! * Takes care of multi-byte characters.
- * "b" must point to the start of the file name
- */
- int
-***************
-*** 3255,3261 ****
- char_u *b;
- char_u *p;
- {
-! return vim_ispathsep(p[-1])
- && (!has_mbyte || (*mb_head_off)(b, p - 1) == 0);
- }
- #endif
---- 3255,3261 ----
- char_u *b;
- char_u *p;
- {
-! return p > b && vim_ispathsep(p[-1])
- && (!has_mbyte || (*mb_head_off)(b, p - 1) == 0);
- }
- #endif
-*** ../vim-7.3.241/src/version.c 2011-07-07 16:44:33.000000000 +0200
---- src/version.c 2011-07-07 17:05:49.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 242,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-260. Co-workers have to E-mail you about the fire alarm to get
- you out of the building.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.243
-Fcc: 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.243
-Problem: Illegal memory access in readline().
-Solution: Swap the conditions. (Dominique Pelle)
-Files: src/eval.c
-
-
-*** ../vim-7.3.242/src/eval.c 2011-07-07 16:20:45.000000000 +0200
---- src/eval.c 2011-07-07 17:32:16.000000000 +0200
-***************
-*** 14318,14324 ****
- tolist = 0;
- for ( ; filtd < buflen || readlen <= 0; ++filtd)
- {
-! if (buf[filtd] == '\n' || readlen <= 0)
- {
- /* In binary mode add an empty list item when the last
- * non-empty line ends in a '\n'. */
---- 14318,14324 ----
- tolist = 0;
- for ( ; filtd < buflen || readlen <= 0; ++filtd)
- {
-! if (readlen <= 0 || buf[filtd] == '\n')
- {
- /* In binary mode add an empty list item when the last
- * non-empty line ends in a '\n'. */
-*** ../vim-7.3.242/src/version.c 2011-07-07 17:15:29.000000000 +0200
---- src/version.c 2011-07-07 17:32:30.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 243,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-261. You find diskettes in your pockets when doing laundry.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.244
-Fcc: 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.244
-Problem: MS-Windows: Build problem with old compiler. (John Beckett)
-Solution: Only use HandleToLong() when available. (Mike Williams)
-Files: src/gui_w32.c
-
-
-*** ../vim-7.3.243/src/gui_w32.c 2011-05-25 21:18:02.000000000 +0200
---- src/gui_w32.c 2011-07-07 17:42:36.000000000 +0200
-***************
-*** 1574,1579 ****
---- 1574,1583 ----
- #endif
-
- #ifdef FEAT_EVAL
-+ # if _MSC_VER < 1400
-+ /* HandleToLong() only exists in compilers that can do 64 bit builds */
-+ # define HandleToLong(h) ((long)(h))
-+ # endif
- /* set the v:windowid variable */
- set_vim_var_nr(VV_WINDOWID, HandleToLong(s_hwnd));
- #endif
-*** ../vim-7.3.243/src/version.c 2011-07-07 17:36:52.000000000 +0200
---- src/version.c 2011-07-07 17:43:21.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 244,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-262. Your computer has it's own phone line - but your daughter doesn't.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.245
-Fcc: 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.245
-Problem: Python 3.2 libraries not correctly detected.
-Solution: Add the suffix to the library name. (Niclas Zeising)
-Files: src/auto/configure, src/configure.in
-
-
-*** ../vim-7.3.244/src/auto/configure 2011-06-13 01:32:42.000000000 +0200
---- src/auto/configure 2011-07-13 17:57:05.000000000 +0200
-***************
-*** 5611,5617 ****
- eof
- eval "`cd ${PYTHON3_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
- rm -f -- "${tmp_mkf}"
-! vi_cv_path_python3_plibs="-L${PYTHON3_CONFDIR} -lpython${vi_cv_var_python3_version}"
- vi_cv_path_python3_plibs="${vi_cv_path_python3_plibs} ${python3_BASEMODLIBS} ${python3_LIBS} ${python3_SYSLIBS}"
- vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-ltermcap//`
- vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-lffi//`
---- 5611,5617 ----
- eof
- eval "`cd ${PYTHON3_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
- rm -f -- "${tmp_mkf}"
-! vi_cv_path_python3_plibs="-L${PYTHON3_CONFDIR} -lpython${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags}"
- vi_cv_path_python3_plibs="${vi_cv_path_python3_plibs} ${python3_BASEMODLIBS} ${python3_LIBS} ${python3_SYSLIBS}"
- vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-ltermcap//`
- vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-lffi//`
-*** ../vim-7.3.244/src/configure.in 2011-06-13 01:32:42.000000000 +0200
---- src/configure.in 2011-07-13 17:57:01.000000000 +0200
-***************
-*** 1068,1074 ****
- dnl -- delete the lines from make about Entering/Leaving directory
- eval "`cd ${PYTHON3_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
- rm -f -- "${tmp_mkf}"
-! vi_cv_path_python3_plibs="-L${PYTHON3_CONFDIR} -lpython${vi_cv_var_python3_version}"
- vi_cv_path_python3_plibs="${vi_cv_path_python3_plibs} ${python3_BASEMODLIBS} ${python3_LIBS} ${python3_SYSLIBS}"
- dnl remove -ltermcap, it can conflict with an earlier -lncurses
- vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-ltermcap//`
---- 1068,1074 ----
- dnl -- delete the lines from make about Entering/Leaving directory
- eval "`cd ${PYTHON3_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
- rm -f -- "${tmp_mkf}"
-! vi_cv_path_python3_plibs="-L${PYTHON3_CONFDIR} -lpython${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags}"
- vi_cv_path_python3_plibs="${vi_cv_path_python3_plibs} ${python3_BASEMODLIBS} ${python3_LIBS} ${python3_SYSLIBS}"
- dnl remove -ltermcap, it can conflict with an earlier -lncurses
- vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-ltermcap//`
-*** ../vim-7.3.244/src/version.c 2011-07-07 17:43:37.000000000 +0200
---- src/version.c 2011-07-15 13:09:17.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 245,
- /**/
-
-
---
- 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/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.246
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.246 (after 7.3.235)
-Problem: Repeating "f4" in "4444" skips one 4.
-Solution: Check the t_cmd flag. (Christian Brabandt)
-Files: src/search.c
-
-
-*** ../vim-7.3.245/src/search.c 2011-06-26 05:36:07.000000000 +0200
---- src/search.c 2011-07-15 13:16:49.000000000 +0200
-***************
-*** 1585,1591 ****
- /* Force a move of at least one char, so ";" and "," will move the
- * cursor, even if the cursor is right in front of char we are looking
- * at. */
-! if (vim_strchr(p_cpo, CPO_SCOLON) == NULL && count == 1)
- stop = FALSE;
- }
-
---- 1585,1591 ----
- /* Force a move of at least one char, so ";" and "," will move the
- * cursor, even if the cursor is right in front of char we are looking
- * at. */
-! if (vim_strchr(p_cpo, CPO_SCOLON) == NULL && count == 1 && t_cmd)
- stop = FALSE;
- }
-
-*** ../vim-7.3.245/src/version.c 2011-07-15 13:09:46.000000000 +0200
---- src/version.c 2011-07-15 13:20:40.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 246,
- /**/
-
---
- GALAHAD turns back. We see from his POV the lovely ZOOT standing by him
- smiling enchantingly and a number of equally delectable GIRLIES draped
- around in the seductively poulticed room. They look at him smilingly and
- wave.
- "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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.247
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.247
-Problem: Running tests changes the users viminfo file. Test for patch
- 7.3.246 missing.
-Solution: Add "nviminfo" to the 'viminfo' option. Include the test.
-Files: src/testdir/test78.in, src/testdir/test81.in
-
-
-*** ../vim-7.3.246/src/testdir/test78.in 2011-06-13 01:07:22.000000000 +0200
---- src/testdir/test78.in 2011-07-15 13:26:22.000000000 +0200
-***************
-*** 6,12 ****
-
- STARTTEST
- :so small.vim
-! :set nocp fileformat=unix undolevels=-1
- :e! Xtest
- ggdG
- :let text = "\tabcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789"
---- 6,12 ----
-
- STARTTEST
- :so small.vim
-! :set nocp fileformat=unix undolevels=-1 viminfo+=nviminfo
- :e! Xtest
- ggdG
- :let text = "\tabcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789"
-*** ../vim-7.3.246/src/testdir/test81.in 2011-06-26 05:36:07.000000000 +0200
---- src/testdir/test81.in 2011-07-15 13:25:00.000000000 +0200
-***************
-*** 1,10 ****
- Test for t movement command and 'cpo-;' setting
-
- STARTTEST
-! :set nocompatible
- :set cpo-=;
- /firstline/
- j0tt;D
- $Ty;D:set cpo+=;
- j0tt;;D
- $Ty;;D:?firstline?+1,$w! test.out
---- 1,12 ----
- Test for t movement command and 'cpo-;' setting
-
- STARTTEST
-! :set nocompatible viminfo+=nviminfo
- :set cpo-=;
- /firstline/
- j0tt;D
-+ 0fz;D
-+ $Fy;D
- $Ty;D:set cpo+=;
- j0tt;;D
- $Ty;;D:?firstline?+1,$w! test.out
-***************
-*** 13,18 ****
---- 15,22 ----
-
- firstline
- aaa two three four
-+ zzz
-+ yyy
- bbb yee yoo four
- ccc two three four
- ddd yee yoo four
-*** ../vim-7.3.246/src/version.c 2011-07-15 13:21:24.000000000 +0200
---- src/version.c 2011-07-15 13:31:14.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 247,
- /**/
-
---
-ZOOT: I'm afraid our life must seem very dull and quiet compared to yours.
- We are but eightscore young blondes, all between sixteen and
- nineteen-and-a-half, cut off in this castle, with no one to protect us.
- Oooh. It is a lonely life ... bathing ... dressing ... undressing ...
- making exciting underwear....
- "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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.248
-Fcc: 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.248
-Problem: PC Install instructions missing install instructions.
-Solution: Step-by-step explanation. (Michael Soyka)
-Files: src/INSTALLpc.txt
-
-
-*** ../vim-7.3.247/src/INSTALLpc.txt 2011-06-12 20:36:00.000000000 +0200
---- src/INSTALLpc.txt 2011-07-15 13:49:46.000000000 +0200
-***************
-*** 11,19 ****
- this, then you will get the default behavior as is documented, which should
- be fine for most people.
-
-! With the exception of the last two sections (Windows 3.1 and MS-DOS),
-! this document assumes that you are building Vim for Win32
-! (Windows NT/2000/XP/2003/Vista and Windows 95/98/Me)
-
-
- Contents:
---- 11,19 ----
- this, then you will get the default behavior as is documented, which should
- be fine for most people.
-
-! With the exception of two sections (Windows 3.1 and MS-DOS), this document
-! assumes that you are building Vim for Win32 or later.
-! (Windows 95/98/Me/NT/2000/XP/2003/Vista/7)
-
-
- Contents:
-***************
-*** 27,32 ****
---- 27,35 ----
- 8. Windows 3.1
- 9. MS-DOS
-
-+ 10. Installing after building from sources
-+
-+
- The currently preferred method is using the free Visual C++ Toolkit 2008
- |msvc-2008-express|, the produced binary runs on most MS-Windows systems. If
- you need the executable to run on Windows 98 or ME, use the 2003 one
-***************
-*** 409,411 ****
---- 412,470 ----
-
- If you get all kinds of strange error messages when compiling, try adding
- changing the file format from "unix" to "dos".
-+
-+
-+ 10. Installing after building from sources
-+ ==========================================
-+
-+ [provided by Michael Soyka]
-+
-+ After you've built the Vim binaries as described above, you're ready to
-+ install Vim on your system. However, if you've obtained the Vim sources
-+ using Mercurial or by downloading them as a unix tar file, you must first
-+ create a "vim73" directory. If you instead downloaded the sources as
-+ zip files, you can skip this setup as the zip archives already have the
-+ correct directory structure.
-+
-+ A. Create a Vim "runtime" subdirectory named "vim73"
-+ -----------------------------------------------------
-+ If you obtained your Vim sources as zip files, you can skip this step.
-+ Otherwise, continue reading.
-+
-+ Go to the directory that contains the Vim "src" and "runtime"
-+ directories and create a new subdirectory named "vim73".
-+
-+ Copy the "runtime" files into "vim73":
-+ copy runtime\* vim73
-+
-+ B. Copy the new binaries into the "vim73" directory
-+ ----------------------------------------------------
-+ Regardless of how you installed the Vim sources, you need to copy the
-+ new binaries you created above into "vim73":
-+
-+ copy src\*.exe vim73
-+ copy src\GvimExt\gvimext.dll vim73
-+ copy src\xxd\xxd.exe vim73
-+
-+ C. Move the "vim73" directory into the Vim installation subdirectory
-+ ---------------------------------------------------------------------
-+ Move the "vim73" subdirectory into the subdirectory where you want Vim
-+ to be installed. Typically, this subdirectory will be named "vim".
-+ If you already have a "vim73" subdirectory in "vim", delete it first
-+ by running its unstal.exe program.
-+
-+ D. Install Vim
-+ ---------------
-+ "cd" to your Vim installation subdirectory "vim\vim73" and run the
-+ "install.exe" program. It will ask you a number of questions about
-+ how you would like to have your Vim setup. Among these are:
-+ - You can tell it to write a "_vimrc" file with your preferences in the
-+ parent directory.
-+ - It can also install an "Edit with Vim" entry in the Windows Explorer
-+ popup menu.
-+ - You can have it create batch files, so that you can run Vim from the
-+ console or in a shell. You can select one of the directories in your
-+ PATH or add the directory to PATH using the Windows Control Panel.
-+ - Create entries for Vim on the desktop and in the Start menu.
-+
-+ Happy Vimming!
-*** ../vim-7.3.247/src/version.c 2011-07-15 13:33:17.000000000 +0200
---- src/version.c 2011-07-15 13:51:03.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 248,
- /**/
-
---
-Linux is just like a wigwam: no Windows, no Gates and an Apache inside.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.249
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.249
-Problem: Wrong indenting for array initializer.
-Solution: Detect '}' in a better way. (Lech Lorens)
-Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
-
-
-*** ../vim-7.3.248/src/misc1.c 2011-06-12 21:51:01.000000000 +0200
---- src/misc1.c 2011-07-15 14:06:44.000000000 +0200
-***************
-*** 7945,7952 ****
- * If we're at the end of a block, skip to the start of
- * that block.
- */
-! curwin->w_cursor.col = 0;
-! if (*cin_skipcomment(l) == '}'
- && (trypos = find_start_brace(ind_maxcomment))
- != NULL) /* XXX */
- {
---- 7945,7951 ----
- * If we're at the end of a block, skip to the start of
- * that block.
- */
-! if (find_last_paren(l, '{', '}')
- && (trypos = find_start_brace(ind_maxcomment))
- != NULL) /* XXX */
- {
-*** ../vim-7.3.248/src/testdir/test3.in 2011-06-12 21:51:01.000000000 +0200
---- src/testdir/test3.in 2011-07-15 14:03:41.000000000 +0200
-***************
-*** 1452,1457 ****
---- 1452,1487 ----
-
- STARTTEST
- :set cino&
-+ :set cino+=l1
-+ 2kdd=][
-+ ENDTEST
-+
-+ void func(void)
-+ {
-+ int tab[] =
-+ {
-+ 1, 2, 3,
-+ 4, 5, 6};
-+
-+ printf("Indent this line correctly!\n");
-+
-+ switch (foo)
-+ {
-+ case bar:
-+ printf("bar");
-+ break;
-+ case baz: {
-+ printf("baz");
-+ break;
-+ }
-+ case quux:
-+ printf("But don't break the indentation of this instruction\n");
-+ break;
-+ }
-+ }
-+
-+ STARTTEST
-+ :set cino&
- 2kdd=][
- ENDTEST
-
-*** ../vim-7.3.248/src/testdir/test3.ok 2011-06-12 21:51:01.000000000 +0200
---- src/testdir/test3.ok 2011-07-15 14:03:41.000000000 +0200
-***************
-*** 1310,1315 ****
---- 1310,1340 ----
-
- void func(void)
- {
-+ int tab[] =
-+ {
-+ 1, 2, 3,
-+ 4, 5, 6};
-+
-+ printf("Indent this line correctly!\n");
-+
-+ switch (foo)
-+ {
-+ case bar:
-+ printf("bar");
-+ break;
-+ case baz: {
-+ printf("baz");
-+ break;
-+ }
-+ case quux:
-+ printf("But don't break the indentation of this instruction\n");
-+ break;
-+ }
-+ }
-+
-+
-+ void func(void)
-+ {
- cout << "a"
- << "b"
- << ") :"
-*** ../vim-7.3.248/src/version.c 2011-07-15 13:51:57.000000000 +0200
---- src/version.c 2011-07-15 14:12:05.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 249,
- /**/
-
---
- GALAHAD hurries to the door and pushes through it. As he leaves the room
- we CUT TO the reverse to show that he is now in a room full of bathing
- and romping GIRLIES, all innocent, wide-eyed and beautiful. They smile
- enchantingly at him as he tries to keep walking without being diverted by
- the lovely sights assaulting his eyeballs.
- "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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.250
-Fcc: 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.250
-Problem: Python: Errors in Unicode characters not handled nicely.
-Solution: Add the surrogateescape error handler. (lilydjwg)
-Files: src/if_python3.c
-
-
-*** ../vim-7.3.249/src/if_python3.c 2011-06-26 19:13:33.000000000 +0200
---- src/if_python3.c 2011-07-15 15:50:01.000000000 +0200
-***************
-*** 68,76 ****
-
- static void init_structs(void);
-
- #define PyInt Py_ssize_t
- #define PyString_Check(obj) PyUnicode_Check(obj)
-! #define PyString_AsBytes(obj) PyUnicode_AsEncodedString(obj, (char *)ENC_OPT, NULL);
- #define PyString_FreeBytes(obj) Py_XDECREF(bytes)
- #define PyString_AsString(obj) PyBytes_AsString(obj)
- #define PyString_Size(obj) PyBytes_GET_SIZE(bytes)
---- 68,83 ----
-
- static void init_structs(void);
-
-+ /* The "surrogateescape" error handler is new in Python 3.1 */
-+ #if PY_VERSION_HEX >= 0x030100f0
-+ # define CODEC_ERROR_HANDLER "surrogateescape"
-+ #else
-+ # define CODEC_ERROR_HANDLER NULL
-+ #endif
-+
- #define PyInt Py_ssize_t
- #define PyString_Check(obj) PyUnicode_Check(obj)
-! #define PyString_AsBytes(obj) PyUnicode_AsEncodedString(obj, (char *)ENC_OPT, CODEC_ERROR_HANDLER);
- #define PyString_FreeBytes(obj) Py_XDECREF(bytes)
- #define PyString_AsString(obj) PyBytes_AsString(obj)
- #define PyString_Size(obj) PyBytes_GET_SIZE(bytes)
-***************
-*** 661,668 ****
-
- /* PyRun_SimpleString expects a UTF-8 string. Wrong encoding may cause
- * SyntaxError (unicode error). */
-! cmdstr = PyUnicode_Decode(cmd, strlen(cmd), (char *)ENC_OPT, NULL);
-! cmdbytes = PyUnicode_AsEncodedString(cmdstr, "utf-8", NULL);
- Py_XDECREF(cmdstr);
- PyRun_SimpleString(PyBytes_AsString(cmdbytes));
- Py_XDECREF(cmdbytes);
---- 668,676 ----
-
- /* PyRun_SimpleString expects a UTF-8 string. Wrong encoding may cause
- * SyntaxError (unicode error). */
-! cmdstr = PyUnicode_Decode(cmd, strlen(cmd),
-! (char *)ENC_OPT, CODEC_ERROR_HANDLER);
-! cmdbytes = PyUnicode_AsEncodedString(cmdstr, "utf-8", CODEC_ERROR_HANDLER);
- Py_XDECREF(cmdstr);
- PyRun_SimpleString(PyBytes_AsString(cmdbytes));
- Py_XDECREF(cmdbytes);
-***************
-*** 1463,1469 ****
- }
- *p = '\0';
-
-! result = PyUnicode_Decode(tmp, len, (char *)ENC_OPT, NULL);
-
- vim_free(tmp);
- return result;
---- 1471,1477 ----
- }
- *p = '\0';
-
-! result = PyUnicode_Decode(tmp, len, (char *)ENC_OPT, CODEC_ERROR_HANDLER);
-
- vim_free(tmp);
- return result;
-*** ../vim-7.3.249/src/version.c 2011-07-15 14:12:25.000000000 +0200
---- src/version.c 2011-07-15 15:46:19.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 250,
- /**/
-
---
-DINGO: You must spank her well and after you have spanked her you
- may deal with her as you like and then ... spank me.
-AMAZING: And spank me!
-STUNNER: And me.
-LOVELY: And me.
- "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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.251
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.251
-Problem: "gH<Del>" deletes the current line, except when it's the last
- line.
-Solution: Set the "include" flag to indicate the last line is to be deleted.
-Files: src/normal.c, src/ops.c
-
-
-*** ../vim-7.3.250/src/normal.c 2011-07-07 15:08:53.000000000 +0200
---- src/normal.c 2011-07-15 16:53:12.000000000 +0200
-***************
-*** 1795,1811 ****
- {
- oap->inclusive = FALSE;
- /* Try to include the newline, unless it's an operator
-! * that works on lines only */
-! if (*p_sel != 'o'
-! && !op_on_lines(oap->op_type)
-! && oap->end.lnum < curbuf->b_ml.ml_line_count)
- {
-! ++oap->end.lnum;
-! oap->end.col = 0;
- # ifdef FEAT_VIRTUALEDIT
-! oap->end.coladd = 0;
- # endif
-! ++oap->line_count;
- }
- }
- }
---- 1795,1819 ----
- {
- oap->inclusive = FALSE;
- /* Try to include the newline, unless it's an operator
-! * that works on lines only. */
-! if (*p_sel != 'o' && !op_on_lines(oap->op_type))
- {
-! if (oap->end.lnum < curbuf->b_ml.ml_line_count)
-! {
-! ++oap->end.lnum;
-! oap->end.col = 0;
- # ifdef FEAT_VIRTUALEDIT
-! oap->end.coladd = 0;
- # endif
-! ++oap->line_count;
-! }
-! else
-! {
-! /* Cannot move below the last line, make the op
-! * inclusive to tell the operation to include the
-! * line break. */
-! oap->inclusive = TRUE;
-! }
- }
- }
- }
-*** ../vim-7.3.250/src/ops.c 2011-06-19 01:14:22.000000000 +0200
---- src/ops.c 2011-07-15 17:28:28.000000000 +0200
-***************
-*** 1650,1656 ****
- && oap->line_count > 1
- && oap->op_type == OP_DELETE)
- {
-! ptr = ml_get(oap->end.lnum) + oap->end.col + oap->inclusive;
- ptr = skipwhite(ptr);
- if (*ptr == NUL && inindent(0))
- oap->motion_type = MLINE;
---- 1650,1658 ----
- && oap->line_count > 1
- && oap->op_type == OP_DELETE)
- {
-! ptr = ml_get(oap->end.lnum) + oap->end.col;
-! if (*ptr != NUL)
-! ptr += oap->inclusive;
- ptr = skipwhite(ptr);
- if (*ptr == NUL && inindent(0))
- oap->motion_type = MLINE;
-***************
-*** 1920,1930 ****
- curwin->w_cursor.coladd = 0;
- }
- #endif
-! (void)del_bytes((long)n, !virtual_op, oap->op_type == OP_DELETE
- #ifdef FEAT_VISUAL
- && !oap->is_VIsual
- #endif
- );
- }
- else /* delete characters between lines */
- {
---- 1922,1941 ----
- curwin->w_cursor.coladd = 0;
- }
- #endif
-! if (oap->inclusive && oap->end.lnum == curbuf->b_ml.ml_line_count
-! && n > (int)STRLEN(ml_get(oap->end.lnum)))
-! {
-! /* Special case: gH<Del> deletes the last line. */
-! del_lines(1L, FALSE);
-! }
-! else
-! {
-! (void)del_bytes((long)n, !virtual_op, oap->op_type == OP_DELETE
- #ifdef FEAT_VISUAL
- && !oap->is_VIsual
- #endif
- );
-+ }
- }
- else /* delete characters between lines */
- {
-***************
-*** 1941,1957 ****
- ++curwin->w_cursor.lnum;
- del_lines((long)(oap->line_count - 2), FALSE);
-
-! /* delete from start of line until op_end */
-! curwin->w_cursor.col = 0;
-! (void)del_bytes((long)(oap->end.col + 1 - !oap->inclusive),
-! !virtual_op, oap->op_type == OP_DELETE
- #ifdef FEAT_VISUAL
- && !oap->is_VIsual
- #endif
- );
-! curwin->w_cursor = curpos; /* restore curwin->w_cursor */
-!
-! (void)do_join(2, FALSE, FALSE);
- }
- }
-
---- 1952,1980 ----
- ++curwin->w_cursor.lnum;
- del_lines((long)(oap->line_count - 2), FALSE);
-
-! n = (oap->end.col + 1 - !oap->inclusive);
-! if (oap->inclusive && oap->end.lnum == curbuf->b_ml.ml_line_count
-! && n > (int)STRLEN(ml_get(oap->end.lnum)))
-! {
-! /* Special case: gH<Del> deletes the last line. */
-! del_lines(1L, FALSE);
-! curwin->w_cursor = curpos; /* restore curwin->w_cursor */
-! if (curwin->w_cursor.lnum > 1)
-! --curwin->w_cursor.lnum;
-! }
-! else
-! {
-! /* delete from start of line until op_end */
-! curwin->w_cursor.col = 0;
-! (void)del_bytes((long)n, !virtual_op, oap->op_type == OP_DELETE
- #ifdef FEAT_VISUAL
- && !oap->is_VIsual
- #endif
- );
-! curwin->w_cursor = curpos; /* restore curwin->w_cursor */
-! }
-! if (curwin->w_cursor.lnum < curbuf->b_ml.ml_line_count)
-! (void)do_join(2, FALSE, FALSE);
- }
- }
-
-*** ../vim-7.3.250/src/version.c 2011-07-15 15:54:39.000000000 +0200
---- src/version.c 2011-07-15 17:35:18.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 251,
- /**/
-
---
- ### Hiroshima 45, Chernobyl 86, Windows 95 ###
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.252
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.252 (after 7.3.247)
-Problem: Tests fail. (David Northfield)
-Solution: Add missing update for .ok file.
-Files: src/testdir/test81.ok
-
-
-*** ../vim-7.3.251/src/testdir/test81.ok 2011-06-26 05:36:07.000000000 +0200
---- src/testdir/test81.ok 2011-07-15 13:14:27.000000000 +0200
-***************
-*** 1,4 ****
---- 1,6 ----
- aaa two
-+ z
-+ y
- bbb y
- ccc
- ddd yee y
-*** ../vim-7.3.251/src/version.c 2011-07-15 17:51:30.000000000 +0200
---- src/version.c 2011-07-15 17:55:25.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 252,
- /**/
-
---
-You cannot propel yourself forward by patting yourself on the back.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.253
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.253
-Problem: "echo 'abc' > ''" returns 0 or 1, depending on 'ignorecase'.
- Checks in mb_strnicmp() for illegal and truncated bytes are
- wrong. Should not assume that byte length is equal before case
- folding.
-Solution: Add utf_safe_read_char_adv() and utf_strnicmp(). Add a test for
- this. (Ivan Krasilnikov)
-Files: src/mbyte.c src/testdir/test82.in, src/testdir/test82.ok,
- src/testdir/Makefile, src/testdir/Make_amiga.mak,
- src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
- src/testdir/Make_os2.mak, src/testdir/Make_vms.mms
-
-
-*** ../vim-7.3.252/src/mbyte.c 2011-07-07 15:08:53.000000000 +0200
---- src/mbyte.c 2011-07-15 20:13:52.000000000 +0200
-***************
-*** 132,137 ****
---- 132,138 ----
- static int dbcs_char2cells __ARGS((int c));
- static int dbcs_ptr2cells_len __ARGS((char_u *p, int size));
- static int dbcs_ptr2char __ARGS((char_u *p));
-+ static int utf_safe_read_char_adv __ARGS((char_u **s, size_t *n));
-
- /*
- * Lookup table to quickly get the length in bytes of a UTF-8 character from
-***************
-*** 1701,1706 ****
---- 1702,1767 ----
- }
-
- /*
-+ * Convert a UTF-8 byte sequence to a wide character.
-+ * String is assumed to be terminated by NUL or after "n" bytes, whichever
-+ * comes first.
-+ * The function is safe in the sense that it never accesses memory beyond the
-+ * first "n" bytes of "s".
-+ *
-+ * On success, returns decoded codepoint, advances "s" to the beginning of
-+ * next character and decreases "n" accordingly.
-+ *
-+ * If end of string was reached, returns 0 and, if "n" > 0, advances "s" past
-+ * NUL byte.
-+ *
-+ * If byte sequence is illegal or incomplete, returns -1 and does not advance
-+ * "s".
-+ */
-+ static int
-+ utf_safe_read_char_adv(s, n)
-+ char_u **s;
-+ size_t *n;
-+ {
-+ int c, k;
-+
-+ if (*n == 0) /* end of buffer */
-+ return 0;
-+
-+ k = utf8len_tab_zero[**s];
-+
-+ if (k == 1)
-+ {
-+ /* ASCII character or NUL */
-+ (*n)--;
-+ return *(*s)++;
-+ }
-+
-+ if ((size_t)k <= *n)
-+ {
-+ /* We have a multibyte sequence and it isn't truncated by buffer
-+ * limits so utf_ptr2char() is safe to use. Or the first byte is
-+ * illegal (k=0), and it's also safe to use utf_ptr2char(). */
-+ c = utf_ptr2char(*s);
-+
-+ /* On failure, utf_ptr2char() returns the first byte, so here we
-+ * check equality with the first byte. The only non-ASCII character
-+ * which equals the first byte of its own UTF-8 representation is
-+ * U+00C3 (UTF-8: 0xC3 0x83), so need to check that special case too.
-+ * It's safe even if n=1, else we would have k=2 > n. */
-+ if (c != (int)(**s) || (c == 0xC3 && (*s)[1] == 0x83))
-+ {
-+ /* byte sequence was successfully decoded */
-+ *s += k;
-+ *n -= k;
-+ return c;
-+ }
-+ }
-+
-+ /* byte sequence is incomplete or illegal */
-+ return -1;
-+ }
-+
-+ /*
- * Get character at **pp and advance *pp to the next character.
- * Note: composing characters are skipped!
- */
-***************
-*** 2667,2673 ****
- {0x10400,0x10427,1,40}
- };
-
-! static int utf_convert(int a, convertStruct table[], int tableSize);
-
- /*
- * Generic conversion function for case operations.
---- 2728,2735 ----
- {0x10400,0x10427,1,40}
- };
-
-! static int utf_convert __ARGS((int a, convertStruct table[], int tableSize));
-! static int utf_strnicmp __ARGS((char_u *s1, char_u *s2, size_t n1, size_t n2));
-
- /*
- * Generic conversion function for case operations.
-***************
-*** 3079,3084 ****
---- 3141,3220 ----
- return (utf_tolower(a) != a);
- }
-
-+ static int
-+ utf_strnicmp(s1, s2, n1, n2)
-+ char_u *s1, *s2;
-+ size_t n1, n2;
-+ {
-+ int c1, c2, cdiff;
-+ char_u buffer[6];
-+
-+ for (;;)
-+ {
-+ c1 = utf_safe_read_char_adv(&s1, &n1);
-+ c2 = utf_safe_read_char_adv(&s2, &n2);
-+
-+ if (c1 <= 0 || c2 <= 0)
-+ break;
-+
-+ if (c1 == c2)
-+ continue;
-+
-+ cdiff = utf_fold(c1) - utf_fold(c2);
-+ if (cdiff != 0)
-+ return cdiff;
-+ }
-+
-+ /* some string ended or has an incomplete/illegal character sequence */
-+
-+ if (c1 == 0 || c2 == 0)
-+ {
-+ /* some string ended. shorter string is smaller */
-+ if (c1 == 0 && c2 == 0)
-+ return 0;
-+ return c1 == 0 ? -1 : 1;
-+ }
-+
-+ /* Continue with bytewise comparison to produce some result that
-+ * would make comparison operations involving this function transitive.
-+ *
-+ * If only one string had an error, comparison should be made with
-+ * folded version of the other string. In this case it is enough
-+ * to fold just one character to determine the result of comparison. */
-+
-+ if (c1 != -1 && c2 == -1)
-+ {
-+ n1 = utf_char2bytes(utf_fold(c1), buffer);
-+ s1 = buffer;
-+ }
-+ else if (c2 != -1 && c1 == -1)
-+ {
-+ n2 = utf_char2bytes(utf_fold(c2), buffer);
-+ s2 = buffer;
-+ }
-+
-+ while (n1 > 0 && n2 > 0 && *s1 != NUL && *s2 != NUL)
-+ {
-+ cdiff = (int)(*s1) - (int)(*s2);
-+ if (cdiff != 0)
-+ return cdiff;
-+
-+ s1++;
-+ s2++;
-+ n1--;
-+ n2--;
-+ }
-+
-+ if (n1 > 0 && *s1 == NUL)
-+ n1 = 0;
-+ if (n2 > 0 && *s2 == NUL)
-+ n2 = 0;
-+
-+ if (n1 == 0 && n2 == 0)
-+ return 0;
-+ return n1 == 0 ? -1 : 1;
-+ }
-+
- /*
- * Version of strnicmp() that handles multi-byte characters.
- * Needed for Big5, Sjift-JIS and UTF-8 encoding. Other DBCS encodings can
-***************
-*** 3092,3140 ****
- char_u *s1, *s2;
- size_t nn;
- {
-! int i, j, l;
- int cdiff;
-- int incomplete = FALSE;
- int n = (int)nn;
-
-! for (i = 0; i < n; i += l)
- {
-! if (s1[i] == NUL && s2[i] == NUL) /* both strings end */
-! return 0;
-! if (enc_utf8)
-! {
-! l = utf_byte2len(s1[i]);
-! if (l > n - i)
-! {
-! l = n - i; /* incomplete character */
-! incomplete = TRUE;
-! }
-! /* Check directly first, it's faster. */
-! for (j = 0; j < l; ++j)
-! {
-! if (s1[i + j] != s2[i + j])
-! break;
-! if (s1[i + j] == 0)
-! /* Both stings have the same bytes but are incomplete or
-! * have illegal bytes, accept them as equal. */
-! l = j;
-! }
-! if (j < l)
-! {
-! /* 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)
-! return cdiff;
-! }
-! }
-! else
- {
- l = (*mb_ptr2len)(s1 + i);
- if (l <= 1)
- {
---- 3228,3248 ----
- char_u *s1, *s2;
- size_t nn;
- {
-! int i, l;
- int cdiff;
- int n = (int)nn;
-
-! if (enc_utf8)
- {
-! return utf_strnicmp(s1, s2, nn, nn);
-! }
-! else
-! {
-! for (i = 0; i < n; i += l)
- {
-+ if (s1[i] == NUL && s2[i] == NUL) /* both strings end */
-+ return 0;
-+
- l = (*mb_ptr2len)(s1 + i);
- if (l <= 1)
- {
-*** ../vim-7.3.252/src/testdir/test82.in 2011-07-15 21:16:03.000000000 +0200
---- src/testdir/test82.in 2011-07-15 18:22:46.000000000 +0200
-***************
-*** 0 ****
---- 1,93 ----
-+ Tests for case-insensitive UTF-8 comparisons (utf_strnicmp() in mbyte.c)
-+
-+ STARTTEST
-+ :so small.vim
-+ :if !has("multi_byte")
-+ : e! test.ok
-+ : w! test.out
-+ : qa!
-+ :endif
-+ :set enc=utf8
-+ ggdG
-+ :
-+ :function! Ch(a, op, b, expected)
-+ : if eval(printf('"%s" %s "%s"', a:a, a:op, a:b)) != a:expected
-+ : call append(line('$'), printf('"%s" %s "%s" should return %d', a:a, a:op, a:b, a:expected))
-+ : else
-+ : let b:passed += 1
-+ : endif
-+ :endfunction
-+ :
-+ :function! Chk(a, b, result)
-+ : if a:result == 0
-+ : call Ch(a:a, '==?', a:b, 1)
-+ : call Ch(a:a, '!=?', a:b, 0)
-+ : call Ch(a:a, '<=?', a:b, 1)
-+ : call Ch(a:a, '>=?', a:b, 1)
-+ : call Ch(a:a, '<?', a:b, 0)
-+ : call Ch(a:a, '>?', a:b, 0)
-+ : elseif a:result > 0
-+ : call Ch(a:a, '==?', a:b, 0)
-+ : call Ch(a:a, '!=?', a:b, 1)
-+ : call Ch(a:a, '<=?', a:b, 0)
-+ : call Ch(a:a, '>=?', a:b, 1)
-+ : call Ch(a:a, '<?', a:b, 0)
-+ : call Ch(a:a, '>?', a:b, 1)
-+ : else
-+ : call Ch(a:a, '==?', a:b, 0)
-+ : call Ch(a:a, '!=?', a:b, 1)
-+ : call Ch(a:a, '<=?', a:b, 1)
-+ : call Ch(a:a, '>=?', a:b, 0)
-+ : call Ch(a:a, '<?', a:b, 1)
-+ : call Ch(a:a, '>?', a:b, 0)
-+ : endif
-+ :endfunction
-+ :
-+ :function! Check(a, b, result)
-+ : call Chk(a:a, a:b, a:result)
-+ : call Chk(a:b, a:a, -a:result)
-+ :endfunction
-+ :
-+ :function! LT(a, b)
-+ : call Check(a:a, a:b, -1)
-+ :endfunction
-+ :
-+ :function! GT(a, b)
-+ : call Check(a:a, a:b, 1)
-+ :endfunction
-+ :
-+ :function! EQ(a, b)
-+ : call Check(a:a, a:b, 0)
-+ :endfunction
-+ :
-+ :let b:passed=0
-+ :call EQ('', '')
-+ :call LT('', 'a')
-+ :call EQ('abc', 'abc')
-+ :call EQ('Abc', 'abC')
-+ :call LT('ab', 'abc')
-+ :call LT('AB', 'abc')
-+ :call LT('ab', 'aBc')
-+ :call EQ('\xd0\xb9\xd1\x86\xd1\x83\xd0\xba\xd0\xb5\xd0\xbd', '\xd0\xb9\xd0\xa6\xd0\xa3\xd0\xba\xd0\x95\xd0\xbd')
-+ :call LT('\xd0\xb9\xd1\x86\xd1\x83\xd0\xba\xd0\xb5\xd0\xbd', '\xd0\xaf\xd1\x86\xd1\x83\xd0\xba\xd0\xb5\xd0\xbd')
-+ :call EQ('\xe2\x84\xaa', 'k')
-+ :call LT('\xe2\x84\xaa', 'kkkkkk')
-+ :call EQ('\xe2\x84\xaa\xe2\x84\xaa\xe2\x84\xaa', 'kkk')
-+ :call LT('kk', '\xe2\x84\xaa\xe2\x84\xaa\xe2\x84\xaa')
-+ :call EQ('\xe2\x84\xaa\xe2\x84\xa6k\xe2\x84\xaak\xcf\x89', 'k\xcf\x89\xe2\x84\xaakk\xe2\x84\xa6')
-+ :call EQ('Abc\x80', 'AbC\x80')
-+ :call LT('Abc\x80', 'AbC\x81')
-+ :call LT('Abc', 'AbC\x80')
-+ :call LT('abc\x80DEF', 'abc\x80def') " case folding stops at the first bad character
-+ :call LT('\xc3XYZ', '\xc3xyz')
-+ :call EQ('\xef\xbc\xba', '\xef\xbd\x9a') " FF3A (upper), FF5A (lower)
-+ :call GT('\xef\xbc\xba', '\xef\xbc\xff') " first string is ok and equals \xef\xbd\x9a after folding, second string is illegal and was left unchanged, then the strings were bytewise compared
-+ :call LT('\xc3', '\xc3\x83')
-+ :call EQ('\xc3\xa3xYz', '\xc3\x83XyZ')
-+ :for n in range(0x60, 0xFF) | call LT(printf('xYz\x%.2X', n-1), printf('XyZ\x%.2X', n)) | endfor
-+ :for n in range(0x80, 0xBF) | call EQ(printf('xYz\xc2\x%.2XUvW', n), printf('XyZ\xc2\x%.2XuVw', n)) | endfor
-+ :for n in range(0xC0, 0xFF) | call LT(printf('xYz\xc2\x%.2XUvW', n), printf('XyZ\xc2\x%.2XuVw', n)) | endfor
-+ :call append(0, printf('%d checks passed', b:passed))
-+ :wq! test.out
-+ ENDTEST
-+
-*** ../vim-7.3.252/src/testdir/test82.ok 2011-07-15 21:16:03.000000000 +0200
---- src/testdir/test82.ok 2011-07-15 18:37:33.000000000 +0200
-***************
-*** 0 ****
---- 1,2 ----
-+ 3732 checks passed
-+
-*** ../vim-7.3.252/src/testdir/Makefile 2011-06-26 05:36:07.000000000 +0200
---- src/testdir/Makefile 2011-07-15 18:30:08.000000000 +0200
-***************
-*** 26,32 ****
- 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 test77.out test78.out \
-! test79.out test80.out test81.out
-
- SCRIPTS_GUI = test16.out
-
---- 26,32 ----
- 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 test77.out test78.out \
-! test79.out test80.out test81.out test82.out
-
- SCRIPTS_GUI = test16.out
-
-*** ../vim-7.3.252/src/testdir/Make_amiga.mak 2011-06-26 05:36:07.000000000 +0200
---- src/testdir/Make_amiga.mak 2011-07-15 18:29:50.000000000 +0200
-***************
-*** 29,35 ****
- test66.out test67.out test68.out test69.out test70.out \
- test71.out test72.out test73.out test74.out test75.out \
- test76.out test77.out test78.out test79.out test80.out \
-! test81.out
-
- .SUFFIXES: .in .out
-
---- 29,35 ----
- test66.out test67.out test68.out test69.out test70.out \
- test71.out test72.out test73.out test74.out test75.out \
- test76.out test77.out test78.out test79.out test80.out \
-! test81.out test82.out
-
- .SUFFIXES: .in .out
-
-***************
-*** 130,132 ****
---- 130,133 ----
- test79.out: test79.in
- test80.out: test80.in
- test81.out: test81.in
-+ test82.out: test82.in
-*** ../vim-7.3.252/src/testdir/Make_dos.mak 2011-06-26 05:36:07.000000000 +0200
---- src/testdir/Make_dos.mak 2011-07-15 18:30:02.000000000 +0200
-***************
-*** 29,35 ****
- 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 test77.out test78.out \
-! test79.out test80.out test81.out
-
- SCRIPTS32 = test50.out test70.out
-
---- 29,35 ----
- 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 test77.out test78.out \
-! test79.out test80.out test81.out test82.out
-
- SCRIPTS32 = test50.out test70.out
-
-*** ../vim-7.3.252/src/testdir/Make_ming.mak 2011-06-26 05:36:07.000000000 +0200
---- src/testdir/Make_ming.mak 2011-07-15 18:30:15.000000000 +0200
-***************
-*** 49,55 ****
- 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 test77.out test78.out \
-! test79.out test80.out test81.out
-
- SCRIPTS32 = test50.out test70.out
-
---- 49,55 ----
- 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 test77.out test78.out \
-! test79.out test80.out test81.out test82.out
-
- SCRIPTS32 = test50.out test70.out
-
-*** ../vim-7.3.252/src/testdir/Make_os2.mak 2011-06-26 05:36:07.000000000 +0200
---- src/testdir/Make_os2.mak 2011-07-15 18:30:25.000000000 +0200
-***************
-*** 29,35 ****
- test66.out test67.out test68.out test69.out test70.out \
- test71.out test72.out test73.out test74.out test75.out \
- test76.out test77.out test78.out test79.out test80.out \
-! test81.out
-
- .SUFFIXES: .in .out
-
---- 29,35 ----
- test66.out test67.out test68.out test69.out test70.out \
- test71.out test72.out test73.out test74.out test75.out \
- test76.out test77.out test78.out test79.out test80.out \
-! test81.out test82.out
-
- .SUFFIXES: .in .out
-
-*** ../vim-7.3.252/src/testdir/Make_vms.mms 2011-06-26 05:36:07.000000000 +0200
---- src/testdir/Make_vms.mms 2011-07-15 18:30:33.000000000 +0200
-***************
-*** 4,10 ****
- # Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
- # Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
- #
-! # Last change: 2011 Jun 26
- #
- # 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: 2011 Jul 15
- #
- # 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.
-***************
-*** 75,81 ****
- 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 \
-! test77.out test78.out test79.out test80.out test81.out
-
- # Known problems:
- # Test 30: a problem around mac format - unknown reason
---- 75,82 ----
- 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 \
-! test77.out test78.out test79.out test80.out test81.out \
-! test82.out
-
- # Known problems:
- # Test 30: a problem around mac format - unknown reason
-*** ../vim-7.3.252/src/version.c 2011-07-15 17:56:11.000000000 +0200
---- src/version.c 2011-07-15 21:12:26.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 253,
- /**/
-
---
-"Intelligence has much less practical application than you'd think."
- -- Scott Adams, Dilbert.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.254
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.254
-Problem: The coladd field is not reset when setting the line number for a
- ":call" command.
-Solution: Reset it.
-Files: src/eval.c
-
-
-*** ../vim-7.3.253/src/eval.c 2011-07-07 17:36:52.000000000 +0200
---- src/eval.c 2011-07-07 17:51:42.000000000 +0200
-***************
-*** 3430,3435 ****
---- 3430,3438 ----
- {
- curwin->w_cursor.lnum = lnum;
- curwin->w_cursor.col = 0;
-+ #ifdef FEAT_VIRTUALEDIT
-+ curwin->w_cursor.coladd = 0;
-+ #endif
- }
- arg = startarg;
- if (get_func_tv(name, (int)STRLEN(name), &rettv, &arg,
-*** ../vim-7.3.253/src/version.c 2011-07-15 21:16:54.000000000 +0200
---- src/version.c 2011-07-15 21:23:16.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 254,
- /**/
-
---
-Eight Megabytes And Continually Swapping.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.255
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.255
-Problem: When editing a file such as "File[2010-08-15].vim" an E16 error is
- given. (Manuel Stol)
-Solution: Don't give an error for failing to compile the regexp.
-Files: src/ex_docmd.c, src/misc1.c, src/vim.h
-
-
-*** ../vim-7.3.254/src/ex_docmd.c 2011-06-13 01:19:48.000000000 +0200
---- src/ex_docmd.c 2011-07-20 14:48:01.000000000 +0200
-***************
-*** 7069,7075 ****
- old_arg_count = GARGCOUNT;
- if (expand_wildcards(old_arg_count, old_arg_files,
- &new_arg_file_count, &new_arg_files,
-! EW_FILE|EW_NOTFOUND|EW_ADDSLASH) == OK
- && new_arg_file_count > 0)
- {
- alist_set(&global_alist, new_arg_file_count, new_arg_files,
---- 7069,7075 ----
- old_arg_count = GARGCOUNT;
- if (expand_wildcards(old_arg_count, old_arg_files,
- &new_arg_file_count, &new_arg_files,
-! EW_FILE|EW_NOTFOUND|EW_ADDSLASH|EW_NOERROR) == OK
- && new_arg_file_count > 0)
- {
- alist_set(&global_alist, new_arg_file_count, new_arg_files,
-*** ../vim-7.3.254/src/misc1.c 2011-07-15 14:12:25.000000000 +0200
---- src/misc1.c 2011-07-20 14:55:09.000000000 +0200
-***************
-*** 9043,9050 ****
---- 9043,9054 ----
- }
-
- /* compile the regexp into a program */
-+ if (flags & EW_NOERROR)
-+ ++emsg_silent;
- regmatch.rm_ic = TRUE; /* Always ignore case */
- regmatch.regprog = vim_regcomp(pat, RE_MAGIC);
-+ if (flags & EW_NOERROR)
-+ --emsg_silent;
- vim_free(pat);
-
- if (regmatch.regprog == NULL)
-*** ../vim-7.3.254/src/vim.h 2011-06-13 02:03:55.000000000 +0200
---- src/vim.h 2011-07-20 14:50:13.000000000 +0200
-***************
-*** 815,820 ****
---- 815,821 ----
- #define EW_EXEC 0x40 /* executable files */
- #define EW_PATH 0x80 /* search in 'path' too */
- #define EW_ICASE 0x100 /* ignore case */
-+ #define EW_NOERROR 0x200 /* no error for bad regexp */
- /* 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.254/src/version.c 2011-07-15 21:24:06.000000000 +0200
---- src/version.c 2011-07-20 15:03:52.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 255,
- /**/
-
---
-Not too long ago, a program was something you watched on TV...
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.256
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.256
-Problem: Javascript indenting not sufficiently tested.
-Solution: Add more tests. (Luc Deschenaux) Mark the lines that are indented
- wrong.
-Files: src/testdir/test3.in, src/testdir/test3.ok
-
-
-*** ../vim-7.3.255/src/testdir/test3.in 2011-07-15 14:12:25.000000000 +0200
---- src/testdir/test3.in 2011-07-15 21:05:49.000000000 +0200
-***************
-*** 1592,1598 ****
-
-
- STARTTEST
-! :set cino=J1
- /^JSSTART
- =/^JSEND
- ENDTEST
---- 1592,1598 ----
-
-
- STARTTEST
-! :set cino=j1,J1
- /^JSSTART
- =/^JSEND
- ENDTEST
-***************
-*** 1613,1618 ****
---- 1613,1757 ----
- JSEND
-
- STARTTEST
-+ :set cino=j1,J1
-+ /^JSSTART
-+ =/^JSEND
-+ ENDTEST
-+
-+ JSSTART
-+ var foo = [
-+ 1, // indent 8 more
-+ 2,
-+ 3
-+ ]; // indent 8 less
-+ JSEND
-+
-+ STARTTEST
-+ :set cino=j1,J1
-+ /^JSSTART
-+ =/^JSEND
-+ ENDTEST
-+
-+ JSSTART
-+ function bar() {
-+ var foo = [
-+ 1,
-+ 2,
-+ 3
-+ ]; // indent 16 less
-+ }
-+ JSEND
-+
-+ STARTTEST
-+ :set cino=j1,J1
-+ /^JSSTART
-+ =/^JSEND
-+ ENDTEST
-+
-+ JSSTART
-+ (function($){
-+
-+ var class_name='myclass';
-+
-+ function private_method() {
-+ }
-+
-+ var public_method={
-+ method: function(options,args){
-+ private_method();
-+ }
-+ }
-+
-+ function init(options) {
-+
-+ $(this).data(class_name+'_public',$.extend({},{
-+ foo: 'bar',
-+ bar: 2, // indent 8 more
-+ foobar: [ // indent 8 more
-+ 1, // indent 8 more
-+ 2, // indent 16 more
-+ 3 // indent 16 more
-+ ],
-+ callback: function(){ // indent 8 more
-+ return true; // indent 8 more
-+ } // indent 8 more
-+ }, options||{}));
-+ }
-+
-+ $.fn[class_name]=function() {
-+
-+ var _arguments=arguments;
-+ return this.each(function(){
-+
-+ var options=$(this).data(class_name+'_public');
-+ if (!options) {
-+ init.apply(this,_arguments);
-+
-+ } else {
-+ var method=public_method[_arguments[0]];
-+
-+ if (typeof(method)!='function') {
-+ console.log(class_name+' has no method "'+_arguments[0]+'"');
-+ return false;
-+ }
-+ _arguments[0]=options;
-+ method.apply(this,_arguments);
-+ }
-+ });
-+ }
-+
-+ })(jQuery);
-+ JSEND
-+
-+ STARTTEST
-+ :set cino=j1,J1
-+ /^JSSTART
-+ =/^JSEND
-+ ENDTEST
-+
-+ JSSTART
-+ function init(options) {
-+ $(this).data(class_name+'_public',$.extend({},{
-+ foo: 'bar',
-+ bar: 2,
-+ foobar: [
-+ 1, // indent 8 more
-+ 2, // indent 8 more
-+ 3 // indent 8 more
-+ ],
-+ callback: function(){
-+ return true;
-+ }
-+ }, options||{}));
-+ }
-+ JSEND
-+
-+ STARTTEST
-+ :set cino=j1,J1
-+ /^JSSTART
-+ =/^JSEND
-+ ENDTEST
-+
-+ JSSTART
-+ (function($){
-+ function init(options) {
-+ $(this).data(class_name+'_public',$.extend({},{
-+ foo: 'bar',
-+ bar: 2, // indent 8 more
-+ foobar: [ // indent 8 more
-+ 1, // indent 8 more
-+ 2, // indent 16 more
-+ 3 // indent 16 more
-+ ],
-+ callback: function(){ // indent 8 more
-+ return true; // indent 8 more
-+ } // indent 8 more
-+ }, options||{}));
-+ }
-+ })(jQuery);
-+ JSEND
-+
-+ STARTTEST
- :g/^STARTTEST/.,/^ENDTEST/d
- :1;/start of AUTO/,$wq! test.out
- ENDTEST
-*** ../vim-7.3.255/src/testdir/test3.ok 2011-07-15 14:12:25.000000000 +0200
---- src/testdir/test3.ok 2011-07-15 21:06:38.000000000 +0200
-***************
-*** 1443,1445 ****
---- 1443,1559 ----
- }
- JSEND
-
-+
-+ JSSTART
-+ var foo = [
-+ 1, // indent 8 more
-+ 2,
-+ 3
-+ ]; // indent 8 less
-+ JSEND
-+
-+
-+ JSSTART
-+ function bar() {
-+ var foo = [
-+ 1,
-+ 2,
-+ 3
-+ ]; // indent 16 less
-+ }
-+ JSEND
-+
-+
-+ JSSTART
-+ (function($){
-+
-+ var class_name='myclass';
-+
-+ function private_method() {
-+ }
-+
-+ var public_method={
-+ method: function(options,args){
-+ private_method();
-+ }
-+ }
-+
-+ function init(options) {
-+
-+ $(this).data(class_name+'_public',$.extend({},{
-+ foo: 'bar',
-+ bar: 2, // indent 8 more
-+ foobar: [ // indent 8 more
-+ 1, // indent 8 more
-+ 2, // indent 16 more
-+ 3 // indent 16 more
-+ ],
-+ callback: function(){ // indent 8 more
-+ return true; // indent 8 more
-+ } // indent 8 more
-+ }, options||{}));
-+ }
-+
-+ $.fn[class_name]=function() {
-+
-+ var _arguments=arguments;
-+ return this.each(function(){
-+
-+ var options=$(this).data(class_name+'_public');
-+ if (!options) {
-+ init.apply(this,_arguments);
-+
-+ } else {
-+ var method=public_method[_arguments[0]];
-+
-+ if (typeof(method)!='function') {
-+ console.log(class_name+' has no method "'+_arguments[0]+'"');
-+ return false;
-+ }
-+ _arguments[0]=options;
-+ method.apply(this,_arguments);
-+ }
-+ });
-+ }
-+
-+ })(jQuery);
-+ JSEND
-+
-+
-+ JSSTART
-+ function init(options) {
-+ $(this).data(class_name+'_public',$.extend({},{
-+ foo: 'bar',
-+ bar: 2,
-+ foobar: [
-+ 1, // indent 8 more
-+ 2, // indent 8 more
-+ 3 // indent 8 more
-+ ],
-+ callback: function(){
-+ return true;
-+ }
-+ }, options||{}));
-+ }
-+ JSEND
-+
-+
-+ JSSTART
-+ (function($){
-+ function init(options) {
-+ $(this).data(class_name+'_public',$.extend({},{
-+ foo: 'bar',
-+ bar: 2, // indent 8 more
-+ foobar: [ // indent 8 more
-+ 1, // indent 8 more
-+ 2, // indent 16 more
-+ 3 // indent 16 more
-+ ],
-+ callback: function(){ // indent 8 more
-+ return true; // indent 8 more
-+ } // indent 8 more
-+ }, options||{}));
-+ }
-+ })(jQuery);
-+ JSEND
-+
-*** ../vim-7.3.255/src/version.c 2011-07-20 15:04:52.000000000 +0200
---- src/version.c 2011-07-20 15:08:13.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 256,
- /**/
-
---
-Not too long ago, a keyboard was something to make music with...
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.257
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.257
-Problem: Not all completions are available to user commands.
-Solution: Add "color", "compiler", "file_in_path" and "locale". (Dominique
- Pelle)
-Files: src/ex_docmd.c, runtime/doc/map.txt
-
-
-*** ../vim-7.3.256/src/ex_docmd.c 2011-07-20 15:04:52.000000000 +0200
---- src/ex_docmd.c 2011-07-20 16:10:28.000000000 +0200
-***************
-*** 5297,5303 ****
---- 5297,5305 ----
- {
- {EXPAND_AUGROUP, "augroup"},
- {EXPAND_BUFFERS, "buffer"},
-+ {EXPAND_COLORS, "color"},
- {EXPAND_COMMANDS, "command"},
-+ {EXPAND_COMPILER, "compiler"},
- #if defined(FEAT_CSCOPE)
- {EXPAND_CSCOPE, "cscope"},
- #endif
-***************
-*** 5310,5319 ****
---- 5312,5326 ----
- {EXPAND_EVENTS, "event"},
- {EXPAND_EXPRESSION, "expression"},
- {EXPAND_FILES, "file"},
-+ {EXPAND_FILES_IN_PATH, "file_in_path"},
- {EXPAND_FILETYPE, "filetype"},
- {EXPAND_FUNCTIONS, "function"},
- {EXPAND_HELP, "help"},
- {EXPAND_HIGHLIGHT, "highlight"},
-+ #if (defined(HAVE_LOCALE_H) || defined(X_LOCALE)) \
-+ && (defined(FEAT_GETTEXT) || defined(FEAT_MBYTE))
-+ {EXPAND_LOCALES, "locale"},
-+ #endif
- {EXPAND_MAPPINGS, "mapping"},
- {EXPAND_MENUS, "menu"},
- {EXPAND_OWNSYNTAX, "syntax"},
-*** ../vim-7.3.256/runtime/doc/map.txt 2011-05-19 17:25:36.000000000 +0200
---- runtime/doc/map.txt 2011-07-20 16:10:28.000000000 +0200
-***************
-*** 1202,1221 ****
---- 1211,1236 ----
-
- -complete=augroup autocmd groups
- -complete=buffer buffer names
-+ -complete=color color schemes
- -complete=command Ex command (and arguments)
-+ -complete=compiler compilers
-+ -complete=cscope |:cscope| suboptions
- -complete=dir directory names
- -complete=environment environment variable names
- -complete=event autocommand events
- -complete=expression Vim expression
- -complete=file file and directory names
-+ -complete=file_in_path file and directory names in |'path'|
- -complete=filetype filetype names |'filetype'|
- -complete=function function name
- -complete=help help subjects
- -complete=highlight highlight groups
-+ -complete=locale locale names (as output of locale -a)
- -complete=mapping mapping name
- -complete=menu menus
- -complete=option options
- -complete=shellcmd Shell command
-+ -complete=sign |:sign| suboptions
- -complete=syntax syntax file names |'syntax'|
- -complete=tag tags
- -complete=tag_listfiles tags, file names are shown when CTRL-D is hit
-*** ../vim-7.3.256/src/version.c 2011-07-20 15:09:38.000000000 +0200
---- src/version.c 2011-07-20 16:30:31.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 257,
- /**/
-
---
-I have to exercise early in the morning before my brain
-figures out what I'm doing.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.258
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.258
-Problem: MS-Windows: The edit with existing vim context menu entries can be
- unwanted.
-Solution: Let a registry entry disable them. (Jerome Vuarand)
-Files: src/GvimExt/gvimext.cpp
-
-
-*** ../vim-7.3.257/src/GvimExt/gvimext.cpp 2010-08-15 21:57:29.000000000 +0200
---- src/GvimExt/gvimext.cpp 2011-07-20 16:48:09.000000000 +0200
-***************
-*** 586,593 ****
-
- // Initialize m_cntOfHWnd to 0
- m_cntOfHWnd = 0;
-! // Retrieve all the vim instances
-! EnumWindows(EnumWindowsProc, (LPARAM)this);
-
- if (cbFiles > 1)
- {
---- 586,608 ----
-
- // Initialize m_cntOfHWnd to 0
- m_cntOfHWnd = 0;
-!
-! HKEY keyhandle;
-! bool showExisting = true;
-!
-! // Check whether "Edit with existing Vim" entries are disabled.
-! if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Vim\\Gvim", 0,
-! KEY_READ, &keyhandle) == ERROR_SUCCESS)
-! {
-! if (RegQueryValueEx(keyhandle, "DisableEditWithExisting", 0, NULL,
-! NULL, NULL) == ERROR_SUCCESS)
-! showExisting = false;
-! RegCloseKey(keyhandle);
-! }
-!
-! // Retrieve all the vim instances, unless disabled.
-! if (showExisting)
-! EnumWindows(EnumWindowsProc, (LPARAM)this);
-
- if (cbFiles > 1)
- {
-*** ../vim-7.3.257/src/version.c 2011-07-20 16:36:35.000000000 +0200
---- src/version.c 2011-07-20 16:54:34.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 258,
- /**/
-
---
-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/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.259
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.259
-Problem: Equivalence classes only work for latin characters.
-Solution: Add the Unicode equivalence characters. (Dominique Pelle)
-Files: runtime/doc/pattern.txt, src/regexp.c, src/testdir/test44.in,
- src/testdir/test44.ok
-
-
-*** ../vim-7.3.258/runtime/doc/pattern.txt 2010-08-15 21:57:14.000000000 +0200
---- runtime/doc/pattern.txt 2011-07-20 17:44:03.000000000 +0200
-***************
-*** 1027,1037 ****
- These items only work for 8-bit characters.
- */[[=* *[==]*
- - An equivalence class. This means that characters are matched that
-! have almost the same meaning, e.g., when ignoring accents. The form
-! is:
- [=a=]
-- Currently this is only implemented for latin1. Also works for the
-- latin1 characters in utf-8 and latin9.
- */[[.* *[..]*
- - A collation element. This currently simply accepts a single
- character in the form:
---- 1036,1044 ----
- These items only work for 8-bit characters.
- */[[=* *[==]*
- - An equivalence class. This means that characters are matched that
-! have almost the same meaning, e.g., when ignoring accents. This
-! only works for Unicode, latin1 and latin9. The form is:
- [=a=]
- */[[.* *[..]*
- - A collation element. This currently simply accepts a single
- character in the form:
-*** ../vim-7.3.258/src/regexp.c 2011-06-19 04:31:54.000000000 +0200
---- src/regexp.c 2011-07-20 17:56:52.000000000 +0200
-***************
-*** 666,673 ****
---- 666,677 ----
- static void regc __ARGS((int b));
- #ifdef FEAT_MBYTE
- static void regmbc __ARGS((int c));
-+ # define REGMBC(x) regmbc(x);
-+ # define CASEMBC(x) case x:
- #else
- # define regmbc(c) regc(c)
-+ # define REGMBC(x)
-+ # define CASEMBC(x)
- #endif
- static void reginsert __ARGS((int, char_u *));
- static void reginsert_limits __ARGS((int, long, long, char_u *));
-***************
-*** 787,854 ****
- switch (c)
- {
- case 'A': case '\300': case '\301': case '\302':
- case '\303': case '\304': case '\305':
- regmbc('A'); regmbc('\300'); regmbc('\301');
- regmbc('\302'); regmbc('\303'); regmbc('\304');
- regmbc('\305');
- return;
- case 'C': case '\307':
- regmbc('C'); regmbc('\307');
- return;
- case 'E': case '\310': case '\311': case '\312': case '\313':
- regmbc('E'); regmbc('\310'); regmbc('\311');
- regmbc('\312'); regmbc('\313');
- return;
- case 'I': case '\314': case '\315': case '\316': case '\317':
- regmbc('I'); regmbc('\314'); regmbc('\315');
- regmbc('\316'); regmbc('\317');
- return;
- case 'N': case '\321':
- regmbc('N'); regmbc('\321');
- return;
- case 'O': case '\322': case '\323': case '\324': case '\325':
-! case '\326':
- regmbc('O'); regmbc('\322'); regmbc('\323');
- regmbc('\324'); regmbc('\325'); regmbc('\326');
- return;
- case 'U': case '\331': case '\332': case '\333': case '\334':
- regmbc('U'); regmbc('\331'); regmbc('\332');
- regmbc('\333'); regmbc('\334');
- return;
- case 'Y': case '\335':
- regmbc('Y'); regmbc('\335');
- return;
- case 'a': case '\340': case '\341': case '\342':
- case '\343': case '\344': case '\345':
- regmbc('a'); regmbc('\340'); regmbc('\341');
- regmbc('\342'); regmbc('\343'); regmbc('\344');
- regmbc('\345');
- return;
- case 'c': case '\347':
- regmbc('c'); regmbc('\347');
- return;
- case 'e': case '\350': case '\351': case '\352': case '\353':
- regmbc('e'); regmbc('\350'); regmbc('\351');
- regmbc('\352'); regmbc('\353');
- return;
- case 'i': case '\354': case '\355': case '\356': case '\357':
- regmbc('i'); regmbc('\354'); regmbc('\355');
- regmbc('\356'); regmbc('\357');
- return;
- case 'n': case '\361':
- regmbc('n'); regmbc('\361');
- return;
- case 'o': case '\362': case '\363': case '\364': case '\365':
-! case '\366':
- regmbc('o'); regmbc('\362'); regmbc('\363');
- regmbc('\364'); regmbc('\365'); regmbc('\366');
- return;
- case 'u': case '\371': case '\372': case '\373': case '\374':
- regmbc('u'); regmbc('\371'); regmbc('\372');
- regmbc('\373'); regmbc('\374');
- return;
- case 'y': case '\375': case '\377':
- regmbc('y'); regmbc('\375'); regmbc('\377');
- return;
- }
- #endif
---- 791,1085 ----
- switch (c)
- {
- case 'A': case '\300': case '\301': case '\302':
-+ CASEMBC(0x100) CASEMBC(0x102) CASEMBC(0x104) CASEMBC(0x1cd)
-+ CASEMBC(0x1de) CASEMBC(0x1e0) CASEMBC(0x1ea2)
- case '\303': case '\304': case '\305':
- regmbc('A'); regmbc('\300'); regmbc('\301');
- regmbc('\302'); regmbc('\303'); regmbc('\304');
- regmbc('\305');
-+ REGMBC(0x100) REGMBC(0x102) REGMBC(0x104)
-+ REGMBC(0x1cd) REGMBC(0x1de) REGMBC(0x1e0)
-+ REGMBC(0x1ea2)
-+ return;
-+ case 'B': CASEMBC(0x1e02) CASEMBC(0x1e06)
-+ regmbc('B'); REGMBC(0x1e02) REGMBC(0x1e06)
- return;
- case 'C': case '\307':
-+ CASEMBC(0x106) CASEMBC(0x108) CASEMBC(0x10a) CASEMBC(0x10c)
- regmbc('C'); regmbc('\307');
-+ REGMBC(0x106) REGMBC(0x108) REGMBC(0x10a)
-+ REGMBC(0x10c)
-+ return;
-+ case 'D': CASEMBC(0x10e) CASEMBC(0x110) CASEMBC(0x1e0a)
-+ CASEMBC(0x1e0e) CASEMBC(0x1e10)
-+ regmbc('D'); REGMBC(0x10e) REGMBC(0x110)
-+ REGMBC(0x1e0a) REGMBC(0x1e0e) REGMBC(0x1e10)
- return;
- case 'E': case '\310': case '\311': case '\312': case '\313':
-+ CASEMBC(0x112) CASEMBC(0x114) CASEMBC(0x116) CASEMBC(0x118)
-+ CASEMBC(0x11a) CASEMBC(0x1eba) CASEMBC(0x1ebc)
- regmbc('E'); regmbc('\310'); regmbc('\311');
- regmbc('\312'); regmbc('\313');
-+ REGMBC(0x112) REGMBC(0x114) REGMBC(0x116)
-+ REGMBC(0x118) REGMBC(0x11a) REGMBC(0x1eba)
-+ REGMBC(0x1ebc)
-+ return;
-+ case 'F': CASEMBC(0x1e1e)
-+ regmbc('F'); REGMBC(0x1e1e)
-+ return;
-+ case 'G': CASEMBC(0x11c) CASEMBC(0x11e) CASEMBC(0x120)
-+ CASEMBC(0x122) CASEMBC(0x1e4) CASEMBC(0x1e6) CASEMBC(0x1f4)
-+ CASEMBC(0x1e20)
-+ regmbc('G'); REGMBC(0x11c) REGMBC(0x11e)
-+ REGMBC(0x120) REGMBC(0x122) REGMBC(0x1e4)
-+ REGMBC(0x1e6) REGMBC(0x1f4) REGMBC(0x1e20)
-+ return;
-+ case 'H': CASEMBC(0x124) CASEMBC(0x126) CASEMBC(0x1e22)
-+ CASEMBC(0x1e26) CASEMBC(0x1e28)
-+ regmbc('H'); REGMBC(0x124) REGMBC(0x126)
-+ REGMBC(0x1e22) REGMBC(0x1e26) REGMBC(0x1e28)
- return;
- case 'I': case '\314': case '\315': case '\316': case '\317':
-+ CASEMBC(0x128) CASEMBC(0x12a) CASEMBC(0x12c) CASEMBC(0x12e)
-+ CASEMBC(0x130) CASEMBC(0x1cf) CASEMBC(0x1ec8)
- regmbc('I'); regmbc('\314'); regmbc('\315');
- regmbc('\316'); regmbc('\317');
-+ REGMBC(0x128) REGMBC(0x12a) REGMBC(0x12c)
-+ REGMBC(0x12e) REGMBC(0x130) REGMBC(0x1cf)
-+ REGMBC(0x1ec8)
-+ return;
-+ case 'J': CASEMBC(0x134)
-+ regmbc('J'); REGMBC(0x134)
-+ return;
-+ case 'K': CASEMBC(0x136) CASEMBC(0x1e8) CASEMBC(0x1e30)
-+ CASEMBC(0x1e34)
-+ regmbc('K'); REGMBC(0x136) REGMBC(0x1e8)
-+ REGMBC(0x1e30) REGMBC(0x1e34)
-+ return;
-+ case 'L': CASEMBC(0x139) CASEMBC(0x13b) CASEMBC(0x13d)
-+ CASEMBC(0x13f) CASEMBC(0x141) CASEMBC(0x1e3a)
-+ regmbc('L'); REGMBC(0x139) REGMBC(0x13b)
-+ REGMBC(0x13d) REGMBC(0x13f) REGMBC(0x141)
-+ REGMBC(0x1e3a)
-+ return;
-+ case 'M': CASEMBC(0x1e3e) CASEMBC(0x1e40)
-+ regmbc('M'); REGMBC(0x1e3e) REGMBC(0x1e40)
- return;
- case 'N': case '\321':
-+ CASEMBC(0x143) CASEMBC(0x145) CASEMBC(0x147) CASEMBC(0x1e44)
-+ CASEMBC(0x1e48)
- regmbc('N'); regmbc('\321');
-+ REGMBC(0x143) REGMBC(0x145) REGMBC(0x147)
-+ REGMBC(0x1e44) REGMBC(0x1e48)
- return;
- case 'O': case '\322': case '\323': case '\324': case '\325':
-! case '\326': case '\330':
-! CASEMBC(0x14c) CASEMBC(0x14e) CASEMBC(0x150) CASEMBC(0x1a0)
-! CASEMBC(0x1d1) CASEMBC(0x1ea) CASEMBC(0x1ec) CASEMBC(0x1ece)
- regmbc('O'); regmbc('\322'); regmbc('\323');
- regmbc('\324'); regmbc('\325'); regmbc('\326');
-+ regmbc('\330');
-+ REGMBC(0x14c) REGMBC(0x14e) REGMBC(0x150)
-+ REGMBC(0x1a0) REGMBC(0x1d1) REGMBC(0x1ea)
-+ REGMBC(0x1ec) REGMBC(0x1ece)
-+ return;
-+ case 'P': case 0x1e54: case 0x1e56:
-+ regmbc('P'); REGMBC(0x1e54) REGMBC(0x1e56)
-+ return;
-+ case 'R': CASEMBC(0x154) CASEMBC(0x156) CASEMBC(0x158)
-+ CASEMBC(0x1e58) CASEMBC(0x1e5e)
-+ regmbc('R'); REGMBC(0x154) REGMBC(0x156) REGMBC(0x158)
-+ REGMBC(0x1e58) REGMBC(0x1e5e)
-+ return;
-+ case 'S': CASEMBC(0x15a) CASEMBC(0x15c) CASEMBC(0x15e)
-+ CASEMBC(0x160) CASEMBC(0x1e60)
-+ regmbc('S'); REGMBC(0x15a) REGMBC(0x15c)
-+ REGMBC(0x15e) REGMBC(0x160) REGMBC(0x1e60)
-+ return;
-+ case 'T': CASEMBC(0x162) CASEMBC(0x164) CASEMBC(0x166)
-+ CASEMBC(0x1e6a) CASEMBC(0x1e6e)
-+ regmbc('T'); REGMBC(0x162) REGMBC(0x164)
-+ REGMBC(0x166) REGMBC(0x1e6a) REGMBC(0x1e6e)
- return;
- case 'U': case '\331': case '\332': case '\333': case '\334':
-+ CASEMBC(0x168) CASEMBC(0x16a) CASEMBC(0x16c) CASEMBC(0x16e)
-+ CASEMBC(0x170) CASEMBC(0x172) CASEMBC(0x1af) CASEMBC(0x1d3)
-+ CASEMBC(0x1ee6)
- regmbc('U'); regmbc('\331'); regmbc('\332');
- regmbc('\333'); regmbc('\334');
-+ REGMBC(0x168) REGMBC(0x16a) REGMBC(0x16c)
-+ REGMBC(0x16e) REGMBC(0x170) REGMBC(0x172)
-+ REGMBC(0x1af) REGMBC(0x1d3) REGMBC(0x1ee6)
-+ return;
-+ case 'V': CASEMBC(0x1e7c)
-+ regmbc('V'); REGMBC(0x1e7c)
-+ return;
-+ case 'W': CASEMBC(0x174) CASEMBC(0x1e80) CASEMBC(0x1e82)
-+ CASEMBC(0x1e84) CASEMBC(0x1e86)
-+ regmbc('W'); REGMBC(0x174) REGMBC(0x1e80)
-+ REGMBC(0x1e82) REGMBC(0x1e84) REGMBC(0x1e86)
-+ return;
-+ case 'X': CASEMBC(0x1e8a) CASEMBC(0x1e8c)
-+ regmbc('X'); REGMBC(0x1e8a) REGMBC(0x1e8c)
- return;
- case 'Y': case '\335':
-+ CASEMBC(0x176) CASEMBC(0x178) CASEMBC(0x1e8e) CASEMBC(0x1ef2)
-+ CASEMBC(0x1ef6) CASEMBC(0x1ef8)
- regmbc('Y'); regmbc('\335');
-+ REGMBC(0x176) REGMBC(0x178) REGMBC(0x1e8e)
-+ REGMBC(0x1ef2) REGMBC(0x1ef6) REGMBC(0x1ef8)
-+ return;
-+ case 'Z': CASEMBC(0x179) CASEMBC(0x17b) CASEMBC(0x17d)
-+ CASEMBC(0x1b5) CASEMBC(0x1e90) CASEMBC(0x1e94)
-+ regmbc('Z'); REGMBC(0x179) REGMBC(0x17b)
-+ REGMBC(0x17d) REGMBC(0x1b5) REGMBC(0x1e90)
-+ REGMBC(0x1e94)
- return;
- case 'a': case '\340': case '\341': case '\342':
- case '\343': case '\344': case '\345':
-+ CASEMBC(0x101) CASEMBC(0x103) CASEMBC(0x105) CASEMBC(0x1ce)
-+ CASEMBC(0x1df) CASEMBC(0x1e1) CASEMBC(0x1ea3)
- regmbc('a'); regmbc('\340'); regmbc('\341');
- regmbc('\342'); regmbc('\343'); regmbc('\344');
- regmbc('\345');
-+ REGMBC(0x101) REGMBC(0x103) REGMBC(0x105)
-+ REGMBC(0x1ce) REGMBC(0x1df) REGMBC(0x1e1)
-+ REGMBC(0x1ea3)
-+ return;
-+ case 'b': CASEMBC(0x1e03) CASEMBC(0x1e07)
-+ regmbc('b'); REGMBC(0x1e03) REGMBC(0x1e07)
- return;
- case 'c': case '\347':
-+ CASEMBC(0x107) CASEMBC(0x109) CASEMBC(0x10b) CASEMBC(0x10d)
- regmbc('c'); regmbc('\347');
-+ REGMBC(0x107) REGMBC(0x109) REGMBC(0x10b)
-+ REGMBC(0x10d)
-+ return;
-+ case 'd': CASEMBC(0x10f) CASEMBC(0x111) CASEMBC(0x1d0b)
-+ CASEMBC(0x1e11)
-+ regmbc('d'); REGMBC(0x10f) REGMBC(0x111)
-+ REGMBC(0x1e0b) REGMBC(0x01e0f) REGMBC(0x1e11)
- return;
- case 'e': case '\350': case '\351': case '\352': case '\353':
-+ CASEMBC(0x113) CASEMBC(0x115) CASEMBC(0x117) CASEMBC(0x119)
-+ CASEMBC(0x11b) CASEMBC(0x1ebb) CASEMBC(0x1ebd)
- regmbc('e'); regmbc('\350'); regmbc('\351');
- regmbc('\352'); regmbc('\353');
-+ REGMBC(0x113) REGMBC(0x115) REGMBC(0x117)
-+ REGMBC(0x119) REGMBC(0x11b) REGMBC(0x1ebb)
-+ REGMBC(0x1ebd)
-+ return;
-+ case 'f': CASEMBC(0x1e1f)
-+ regmbc('f'); REGMBC(0x1e1f)
-+ return;
-+ case 'g': CASEMBC(0x11d) CASEMBC(0x11f) CASEMBC(0x121)
-+ CASEMBC(0x123) CASEMBC(0x1e5) CASEMBC(0x1e7) CASEMBC(0x1f5)
-+ CASEMBC(0x1e21)
-+ regmbc('g'); REGMBC(0x11d) REGMBC(0x11f)
-+ REGMBC(0x121) REGMBC(0x123) REGMBC(0x1e5)
-+ REGMBC(0x1e7) REGMBC(0x1f5) REGMBC(0x1e21)
-+ return;
-+ case 'h': CASEMBC(0x125) CASEMBC(0x127) CASEMBC(0x1e23)
-+ CASEMBC(0x1e27) CASEMBC(0x1e29) CASEMBC(0x1e96)
-+ regmbc('h'); REGMBC(0x125) REGMBC(0x127)
-+ REGMBC(0x1e23) REGMBC(0x1e27) REGMBC(0x1e29)
-+ REGMBC(0x1e96)
- return;
- case 'i': case '\354': case '\355': case '\356': case '\357':
-+ CASEMBC(0x129) CASEMBC(0x12b) CASEMBC(0x12d) CASEMBC(0x12f)
-+ CASEMBC(0x1d0) CASEMBC(0x1ec9)
- regmbc('i'); regmbc('\354'); regmbc('\355');
- regmbc('\356'); regmbc('\357');
-+ REGMBC(0x129) REGMBC(0x12b) REGMBC(0x12d)
-+ REGMBC(0x12f) REGMBC(0x1d0) REGMBC(0x1ec9)
-+ return;
-+ case 'j': CASEMBC(0x135) CASEMBC(0x1f0)
-+ regmbc('j'); REGMBC(0x135) REGMBC(0x1f0)
-+ return;
-+ case 'k': CASEMBC(0x137) CASEMBC(0x1e9) CASEMBC(0x1e31)
-+ CASEMBC(0x1e35)
-+ regmbc('k'); REGMBC(0x137) REGMBC(0x1e9)
-+ REGMBC(0x1e31) REGMBC(0x1e35)
-+ return;
-+ case 'l': CASEMBC(0x13a) CASEMBC(0x13c) CASEMBC(0x13e)
-+ CASEMBC(0x140) CASEMBC(0x142) CASEMBC(0x1e3b)
-+ regmbc('l'); REGMBC(0x13a) REGMBC(0x13c)
-+ REGMBC(0x13e) REGMBC(0x140) REGMBC(0x142)
-+ REGMBC(0x1e3b)
-+ return;
-+ case 'm': CASEMBC(0x1e3f) CASEMBC(0x1e41)
-+ regmbc('m'); REGMBC(0x1e3f) REGMBC(0x1e41)
- return;
- case 'n': case '\361':
-+ CASEMBC(0x144) CASEMBC(0x146) CASEMBC(0x148) CASEMBC(0x149)
-+ CASEMBC(0x1e45) CASEMBC(0x1e49)
- regmbc('n'); regmbc('\361');
-+ REGMBC(0x144) REGMBC(0x146) REGMBC(0x148)
-+ REGMBC(0x149) REGMBC(0x1e45) REGMBC(0x1e49)
- return;
- case 'o': case '\362': case '\363': case '\364': case '\365':
-! case '\366': case '\370':
-! CASEMBC(0x14d) CASEMBC(0x14f) CASEMBC(0x151) CASEMBC(0x1a1)
-! CASEMBC(0x1d2) CASEMBC(0x1eb) CASEMBC(0x1ed) CASEMBC(0x1ecf)
- regmbc('o'); regmbc('\362'); regmbc('\363');
- regmbc('\364'); regmbc('\365'); regmbc('\366');
-+ regmbc('\370');
-+ REGMBC(0x14d) REGMBC(0x14f) REGMBC(0x151)
-+ REGMBC(0x1a1) REGMBC(0x1d2) REGMBC(0x1eb)
-+ REGMBC(0x1ed) REGMBC(0x1ecf)
-+ return;
-+ case 'p': CASEMBC(0x1e55) CASEMBC(0x1e57)
-+ regmbc('p'); REGMBC(0x1e55) REGMBC(0x1e57)
-+ return;
-+ case 'r': CASEMBC(0x155) CASEMBC(0x157) CASEMBC(0x159)
-+ CASEMBC(0x1e59) CASEMBC(0x1e5f)
-+ regmbc('r'); REGMBC(0x155) REGMBC(0x157) REGMBC(0x159)
-+ REGMBC(0x1e59) REGMBC(0x1e5f)
-+ return;
-+ case 's': CASEMBC(0x15b) CASEMBC(0x15d) CASEMBC(0x15f)
-+ CASEMBC(0x161) CASEMBC(0x1e61)
-+ regmbc('s'); REGMBC(0x15b) REGMBC(0x15d)
-+ REGMBC(0x15f) REGMBC(0x161) REGMBC(0x1e61)
-+ return;
-+ case 't': CASEMBC(0x163) CASEMBC(0x165) CASEMBC(0x167)
-+ CASEMBC(0x1e6b) CASEMBC(0x1e6f) CASEMBC(0x1e97)
-+ regmbc('t'); REGMBC(0x163) REGMBC(0x165) REGMBC(0x167)
-+ REGMBC(0x1e6b) REGMBC(0x1e6f) REGMBC(0x1e97)
- return;
- case 'u': case '\371': case '\372': case '\373': case '\374':
-+ CASEMBC(0x169) CASEMBC(0x16b) CASEMBC(0x16d) CASEMBC(0x16f)
-+ CASEMBC(0x171) CASEMBC(0x173) CASEMBC(0x1b0) CASEMBC(0x1d4)
-+ CASEMBC(0x1ee7)
- regmbc('u'); regmbc('\371'); regmbc('\372');
- regmbc('\373'); regmbc('\374');
-+ REGMBC(0x169) REGMBC(0x16b) REGMBC(0x16d)
-+ REGMBC(0x16f) REGMBC(0x171) REGMBC(0x173)
-+ REGMBC(0x1b0) REGMBC(0x1d4) REGMBC(0x1ee7)
-+ return;
-+ case 'v': CASEMBC(0x1e7d)
-+ regmbc('v'); REGMBC(0x1e7d)
-+ return;
-+ case 'w': CASEMBC(0x175) CASEMBC(0x1e81) CASEMBC(0x1e83)
-+ CASEMBC(0x1e85) CASEMBC(0x1e87) CASEMBC(0x1e98)
-+ regmbc('w'); REGMBC(0x175) REGMBC(0x1e81)
-+ REGMBC(0x1e83) REGMBC(0x1e85) REGMBC(0x1e87)
-+ REGMBC(0x1e98)
-+ return;
-+ case 'x': CASEMBC(0x1e8b) CASEMBC(0x1e8d)
-+ regmbc('x'); REGMBC(0x1e8b) REGMBC(0x1e8d)
- return;
- case 'y': case '\375': case '\377':
-+ CASEMBC(0x177) CASEMBC(0x1e8f) CASEMBC(0x1e99)
-+ CASEMBC(0x1ef3) CASEMBC(0x1ef7) CASEMBC(0x1ef9)
- regmbc('y'); regmbc('\375'); regmbc('\377');
-+ REGMBC(0x177) REGMBC(0x1e8f) REGMBC(0x1e99)
-+ REGMBC(0x1ef3) REGMBC(0x1ef7) REGMBC(0x1ef9)
-+ return;
-+ case 'z': CASEMBC(0x17a) CASEMBC(0x17c) CASEMBC(0x17e)
-+ CASEMBC(0x1b6) CASEMBC(0x1e91) CASEMBC(0x1e95)
-+ regmbc('z'); REGMBC(0x17a) REGMBC(0x17c)
-+ REGMBC(0x17e) REGMBC(0x1b6) REGMBC(0x1e91)
-+ REGMBC(0x1e95)
- return;
- }
- #endif
-***************
-*** 2468,2473 ****
---- 2699,2706 ----
- regmbc(c)
- int c;
- {
-+ if (!has_mbyte && c > 0xff)
-+ return;
- if (regcode == JUST_CALC_SIZE)
- regsize += (*mb_char2len)(c);
- else
-***************
-*** 2588,2594 ****
- else
- offset = (int)(val - scan);
- /* When the offset uses more than 16 bits it can no longer fit in the two
-! * bytes avaliable. Use a global flag to avoid having to check return
- * values in too many places. */
- if (offset > 0xffff)
- reg_toolong = TRUE;
---- 2821,2827 ----
- else
- offset = (int)(val - scan);
- /* When the offset uses more than 16 bits it can no longer fit in the two
-! * bytes available. Use a global flag to avoid having to check return
- * values in too many places. */
- if (offset > 0xffff)
- reg_toolong = TRUE;
-*** ../vim-7.3.258/src/testdir/test44.in 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test44.in 2011-07-20 17:36:49.000000000 +0200
-***************
-*** 27,32 ****
---- 27,34 ----
- x/\%U12345678
- x/[\U1234abcd\u1234\uabcd]
- x/\%d21879b
-+ x/ [[=A=]]* [[=B=]]* [[=C=]]* [[=D=]]* [[=E=]]* [[=F=]]* [[=G=]]* [[=H=]]* [[=I=]]* [[=J=]]* [[=K=]]* [[=L=]]* [[=M=]]* [[=N=]]* [[=O=]]* [[=P=]]* [[=Q=]]* [[=R=]]* [[=S=]]* [[=T=]]* [[=U=]]* [[=V=]]* [[=W=]]* [[=X=]]* [[=Y=]]* [[=Z=]]*/e
-+ x/ [[=a=]]* [[=b=]]* [[=c=]]* [[=d=]]* [[=e=]]* [[=f=]]* [[=g=]]* [[=h=]]* [[=i=]]* [[=j=]]* [[=k=]]* [[=l=]]* [[=m=]]* [[=n=]]* [[=o=]]* [[=p=]]* [[=q=]]* [[=r=]]* [[=s=]]* [[=t=]]* [[=u=]]* [[=v=]]* [[=w=]]* [[=x=]]* [[=y=]]* [[=z=]]*/e
- x:?^1?,$w! test.out
- :e! test.out
- G:put =matchstr(\"×בגד\", \".\", 0, 2) " ב
-***************
-*** 53,55 ****
---- 55,59 ----
- e ü’…™¸y
- f ü’Š¯z
- g aå•·bb
-+ h AÀÃÂÃÄÅĀĂĄÇǞǠẢ BḂḆ CÇĆĈĊČ DÄŽÄḊḎḠEÈÉÊËĒĔĖĘĚẺẼ FḞ GĜĞĠĢǤǦǴḠ HĤĦḢḦḨ IÃŒÃÃŽÃĨĪĬĮİÇỈ JÄ´ KĶǨḰḴ LĹĻĽĿÅḺ MḾṀ NÑŃŅŇṄṈ OÒÓÔÕÖØŌŎÅƠǑǪǬỎ PṔṖ Q RŔŖŘṘṞ SŚŜŞŠṠ TŢŤŦṪṮ UÙÚÛÜŨŪŬŮŰŲƯǓỦ Vá¹¼ WŴẀẂẄẆ XẊẌ YÃŶŸẎỲỶỸ ZŹŻŽƵáºáº”
-+ i aàáâãäåÄăąǎǟǡả bḃḇ cÃ§Ä‡Ä‰Ä‹Ä dÄđḋá¸á¸‘ eèéêëēĕėęěẻẽ fḟ gÄğġģǥǧǵḡ hĥħḣḧḩẖ iìíîïĩīĭįÇỉ jĵǰ kķǩḱḵ lĺļľŀłḻ mḿṠnñńņňʼnṅṉ oòóôõöøÅÅÅ‘Æ¡Ç’Ç«Ç­á» pṕṗ q rŕŗřṙṟ sÅ›Åşšṡ tţťŧṫṯẗ uùúûüũūŭůűųưǔủ vá¹½ wŵáºáºƒáº…ẇẘ xẋẠyýÿŷáºáº™á»³á»·á»¹ zźżžƶẑẕ
-*** ../vim-7.3.258/src/testdir/test44.ok 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test44.ok 2011-07-20 17:36:49.000000000 +0200
-***************
-*** 14,19 ****
---- 14,21 ----
- e y
- f z
- g abb
-+ h AÀÃÂÃÄÅĀĂĄÇǞǠẢ BḂḆ CÇĆĈĊČ DÄŽÄḊḎḠEÈÉÊËĒĔĖĘĚẺẼ FḞ GĜĞĠĢǤǦǴḠ HĤĦḢḦḨ IÃŒÃÃŽÃĨĪĬĮİÇỈ JÄ´ KĶǨḰḴ LĹĻĽĿÅḺ MḾṀ NÑŃŅŇṄṈ OÒÓÔÕÖØŌŎÅƠǑǪǬỎ PṔṖ Q RŔŖŘṘṞ SŚŜŞŠṠ TŢŤŦṪṮ UÙÚÛÜŨŪŬŮŰŲƯǓỦ Vá¹¼ WŴẀẂẄẆ XẊẌ YÃŶŸẎỲỶỸ ZŹŻŽƵáº
-+ i aàáâãäåÄăąǎǟǡả bḃḇ cÃ§Ä‡Ä‰Ä‹Ä dÄđḋá¸á¸‘ eèéêëēĕėęěẻẽ fḟ gÄğġģǥǧǵḡ hĥħḣḧḩẖ iìíîïĩīĭįÇỉ jĵǰ kķǩḱḵ lĺļľŀłḻ mḿṠnñńņňʼnṅṉ oòóôõöøÅÅÅ‘Æ¡Ç’Ç«Ç­á» pṕṗ q rŕŗřṙṟ sÅ›Åşšṡ tţťŧṫṯẗ uùúûüũūŭůűųưǔủ vá¹½ wŵáºáºƒáº…ẇẘ xẋẠyýÿŷáºáº™á»³á»·á»¹ zźżžƶẑ
- ב
- בג
- ×
-*** ../vim-7.3.258/src/version.c 2011-07-20 17:27:17.000000000 +0200
---- src/version.c 2011-07-20 17:38:32.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 259,
- /**/
-
---
-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/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.260
-Fcc: 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.260
-Problem: CursorHold triggers on an incomplete mapping. (Will Gray)
-Solution: Don't trigger CursorHold when there is typeahead.
-Files: src/fileio.c
-
-
-*** ../vim-7.3.259/src/fileio.c 2011-05-19 17:25:36.000000000 +0200
---- src/fileio.c 2011-07-20 18:22:16.000000000 +0200
-***************
-*** 9044,9050 ****
- {
- int state;
-
-! if (!did_cursorhold && has_cursorhold() && !Recording
- #ifdef FEAT_INS_EXPAND
- && !ins_compl_active()
- #endif
---- 9044,9053 ----
- {
- int state;
-
-! if (!did_cursorhold
-! && has_cursorhold()
-! && !Recording
-! && typebuf.tb_len == 0
- #ifdef FEAT_INS_EXPAND
- && !ins_compl_active()
- #endif
-***************
-*** 9935,9940 ****
---- 9938,9945 ----
- if ((c == ';' || c == '>') && match == FALSE)
- {
- *pattern = NUL; /* Terminate the string */
-+ /* TODO: match with 'filetype' of buffer that "fname" comes
-+ * from. */
- match = mch_check_filetype(fname, type_start);
- *pattern = c; /* Restore the terminator */
- type_start = pattern + 1;
-*** ../vim-7.3.259/src/version.c 2011-07-20 17:58:14.000000000 +0200
---- src/version.c 2011-07-20 18:25:15.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 260,
- /**/
-
---
-LAUNCELOT: At last! A call! A cry of distress ...
- (he draws his sword, and turns to CONCORDE)
- Concorde! Brave, Concorde ... you shall not have died in vain!
-CONCORDE: I'm not quite dead, sir ...
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.261
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.261
-Problem: G++ error message errornously recognized as error.
-Solution: Ignore "In file included from" line also when it ends in a colon.
- (Fernando Castillo)
-Files: src/option.h
-
-
-*** ../vim-7.3.260/src/option.h 2011-06-26 05:36:07.000000000 +0200
---- src/option.h 2011-07-27 13:44:08.000000000 +0200
-***************
-*** 33,39 ****
- # ifdef EBCDIC
- #define DFLT_EFM "%*[^ ] %*[^ ] %f:%l%*[ ]%m,%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory `%f',%X%*\\a[%*\\d]: Leaving directory `%f',%DMaking %*\\a in %f,%f|%l| %m"
- # else
-! #define DFLT_EFM "%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%-G%f:%l: (Each undeclared identifier is reported only once,%-G%f:%l: for each function it appears in.),%-GIn file included from %f:%l:%c,%-GIn file included from %f:%l,%-Gfrom %f:%l:%c,%-Gfrom %f:%l,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory `%f',%X%*\\a[%*\\d]: Leaving directory `%f',%D%*\\a: Entering directory `%f',%X%*\\a: Leaving directory `%f',%DMaking %*\\a in %f,%f|%l| %m"
- # endif
- # endif
- # endif
---- 33,39 ----
- # ifdef EBCDIC
- #define DFLT_EFM "%*[^ ] %*[^ ] %f:%l%*[ ]%m,%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory `%f',%X%*\\a[%*\\d]: Leaving directory `%f',%DMaking %*\\a in %f,%f|%l| %m"
- # else
-! #define DFLT_EFM "%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%-G%f:%l: (Each undeclared identifier is reported only once,%-G%f:%l: for each function it appears in.),%-GIn file included from %f:%l:%c:,%-GIn file included from %f:%l:%c,%-GIn file included from %f:%l,%-Gfrom %f:%l:%c,%-Gfrom %f:%l,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory `%f',%X%*\\a[%*\\d]: Leaving directory `%f',%D%*\\a: Entering directory `%f',%X%*\\a: Leaving directory `%f',%DMaking %*\\a in %f,%f|%l| %m"
- # endif
- # endif
- # endif
-*** ../vim-7.3.260/src/version.c 2011-07-20 18:29:33.000000000 +0200
---- src/version.c 2011-07-27 13:46:23.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 261,
- /**/
-
---
-Have you heard about the new Barbie doll? It's called Divorce
-Barbie. It comes with all of Ken's stuff.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.262
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.262
-Problem: Photon code style doesn't match Vim style.
-Solution: Clean up some of it. (Elias Diem)
-Files: src/gui_photon.c
-
-
-*** ../vim-7.3.261/src/gui_photon.c 2011-01-17 20:08:03.000000000 +0100
---- src/gui_photon.c 2011-07-27 14:07:02.000000000 +0200
-***************
-*** 32,40 ****
- #endif
-
- #define ARRAY_LENGTH(a) (sizeof(a) / sizeof(a[0]))
-! #define RGB(r,g,b) PgRGB(r,g,b)
-
-! #define EVENT_BUFFER_SIZE sizeof( PhEvent_t ) + 1000
-
- /* Some defines for gui_mch_mousehide() */
- #define MOUSE_HIDE TRUE
---- 32,40 ----
- #endif
-
- #define ARRAY_LENGTH(a) (sizeof(a) / sizeof(a[0]))
-! #define RGB(r, g, b) PgRGB(r, g, b)
-
-! #define EVENT_BUFFER_SIZE sizeof(PhEvent_t) + 1000
-
- /* Some defines for gui_mch_mousehide() */
- #define MOUSE_HIDE TRUE
-***************
-*** 206,258 ****
- static PtCallbackF_t gui_ph_handle_menu_unrealized;
-
- #ifdef USE_PANEL_GROUP
-! static void gui_ph_get_panelgroup_margins( short*, short*, short*, short* );
- #endif
-
- #ifdef FEAT_TOOLBAR
-! static PhImage_t *gui_ph_toolbar_find_icon( vimmenu_T *menu );
- #endif
-
-! static void gui_ph_draw_start( void );
-! static void gui_ph_draw_end( void );
-
- /* Set the text for the balloon */
-! static PtWidget_t * gui_ph_show_tooltip( PtWidget_t *window,
- PtWidget_t *widget,
- int position,
- char *text,
- char *font,
- PgColor_t fill_color,
-! PgColor_t text_color );
-
- /****************************************************************************/
-
-! static PtWidget_t * gui_ph_show_tooltip( PtWidget_t *window,
- PtWidget_t *widget,
- int position,
- char *text,
- char *font,
- PgColor_t fill_color,
-! PgColor_t text_color )
- {
- PtArg_t arg;
- vimmenu_T *menu;
- char_u *tooltip;
-
-! PtSetArg( &arg, Pt_ARG_POINTER, &menu, 0 );
-! PtGetResources( widget, 1, &arg );
-
- /* Override the text and position */
-
- tooltip = text;
-! if( menu != NULL )
- {
- int index = MENU_INDEX_TIP;
-! if( menu->strings[ index ] != NULL )
- tooltip = menu->strings[ index ];
- }
-
-! return( PtInflateBalloon(
- window,
- widget,
- /* Don't put the balloon at the bottom,
---- 206,258 ----
- static PtCallbackF_t gui_ph_handle_menu_unrealized;
-
- #ifdef USE_PANEL_GROUP
-! static void gui_ph_get_panelgroup_margins(short*, short*, short*, short*);
- #endif
-
- #ifdef FEAT_TOOLBAR
-! static PhImage_t *gui_ph_toolbar_find_icon(vimmenu_T *menu);
- #endif
-
-! static void gui_ph_draw_start(void);
-! static void gui_ph_draw_end(void);
-
- /* Set the text for the balloon */
-! static PtWidget_t * gui_ph_show_tooltip(PtWidget_t *window,
- PtWidget_t *widget,
- int position,
- char *text,
- char *font,
- PgColor_t fill_color,
-! PgColor_t text_color);
-
- /****************************************************************************/
-
-! static PtWidget_t * gui_ph_show_tooltip(PtWidget_t *window,
- PtWidget_t *widget,
- int position,
- char *text,
- char *font,
- PgColor_t fill_color,
-! PgColor_t text_color)
- {
- PtArg_t arg;
- vimmenu_T *menu;
- char_u *tooltip;
-
-! PtSetArg(&arg, Pt_ARG_POINTER, &menu, 0);
-! PtGetResources(widget, 1, &arg);
-
- /* Override the text and position */
-
- tooltip = text;
-! if (menu != NULL)
- {
- int index = MENU_INDEX_TIP;
-! if (menu->strings[ index ] != NULL)
- tooltip = menu->strings[ index ];
- }
-
-! return PtInflateBalloon(
- window,
- widget,
- /* Don't put the balloon at the bottom,
-***************
-*** 261,285 ****
- tooltip,
- font,
- fill_color,
-! text_color ) );
- }
-
- static void
-! gui_ph_resize_container( void )
- {
- PhArea_t area;
-
-! PtWidgetArea( gui.vimWindow, &area );
-! PtWidgetPos ( gui.vimContainer, &area.pos );
-
-! PtSetResource( gui.vimContainer, Pt_ARG_AREA, &area, 0 );
- }
-
- static int
- gui_ph_handle_menu_resize(
- PtWidget_t *widget,
- void *other,
-! PtCallbackInfo_t *info )
- {
- PtContainerCallback_t *sizes = info->cbdata;
- PtWidget_t *container;
---- 261,285 ----
- tooltip,
- font,
- fill_color,
-! text_color);
- }
-
- static void
-! gui_ph_resize_container(void)
- {
- PhArea_t area;
-
-! PtWidgetArea(gui.vimWindow, &area);
-! PtWidgetPos (gui.vimContainer, &area.pos);
-
-! PtSetResource(gui.vimContainer, Pt_ARG_AREA, &area, 0);
- }
-
- static int
- gui_ph_handle_menu_resize(
- PtWidget_t *widget,
- void *other,
-! PtCallbackInfo_t *info)
- {
- PtContainerCallback_t *sizes = info->cbdata;
- PtWidget_t *container;
-***************
-*** 291,297 ****
- /* Because vim treats the toolbar and menubar separately,
- * and here they're lumped together into a PtToolbarGroup,
- * we only need either menu_height or toolbar_height set at once */
-! if( gui.menu_is_active )
- {
- gui.menu_height = height;
- gui.toolbar_height = 0;
---- 291,297 ----
- /* Because vim treats the toolbar and menubar separately,
- * and here they're lumped together into a PtToolbarGroup,
- * we only need either menu_height or toolbar_height set at once */
-! if (gui.menu_is_active)
- {
- gui.menu_height = height;
- gui.toolbar_height = 0;
-***************
-*** 310,325 ****
- container = gui.vimContainer;
- #endif
-
-! PtSetResource( container, Pt_ARG_POS, &below_menu, 0 );
-
- gui_ph_resize_container();
-
- #ifdef USE_PANEL_GROUP
- gui_ph_get_panelgroup_margins(
- &pg_margin_top, &pg_margin_bottom,
-! &pg_margin_left, &pg_margin_right );
- #endif
-! return( Pt_CONTINUE );
- }
-
- /*
---- 310,325 ----
- container = gui.vimContainer;
- #endif
-
-! PtSetResource(container, Pt_ARG_POS, &below_menu, 0);
-
- gui_ph_resize_container();
-
- #ifdef USE_PANEL_GROUP
- gui_ph_get_panelgroup_margins(
- &pg_margin_top, &pg_margin_bottom,
-! &pg_margin_left, &pg_margin_right);
- #endif
-! return Pt_CONTINUE;
- }
-
- /*
-***************
-*** 330,352 ****
- gui_ph_handle_timer_cursor(
- PtWidget_t *widget,
- void *data,
-! PtCallbackInfo_t *info )
- {
-! if( blink_state == BLINK_ON )
- {
- gui_undraw_cursor();
- blink_state = BLINK_OFF;
-! PtSetResource( gui_ph_timer_cursor, Pt_ARG_TIMER_INITIAL,
-! blink_offtime, 0 );
- }
- else
- {
- gui_update_cursor(TRUE, FALSE);
- blink_state = BLINK_ON;
-! PtSetResource( gui_ph_timer_cursor, Pt_ARG_TIMER_INITIAL,
-! blink_ontime, 0 );
- }
-! return( Pt_CONTINUE );
- }
-
- static int
---- 330,352 ----
- gui_ph_handle_timer_cursor(
- PtWidget_t *widget,
- void *data,
-! PtCallbackInfo_t *info)
- {
-! if (blink_state == BLINK_ON)
- {
- gui_undraw_cursor();
- blink_state = BLINK_OFF;
-! PtSetResource(gui_ph_timer_cursor, Pt_ARG_TIMER_INITIAL,
-! blink_offtime, 0);
- }
- else
- {
- gui_update_cursor(TRUE, FALSE);
- blink_state = BLINK_ON;
-! PtSetResource(gui_ph_timer_cursor, Pt_ARG_TIMER_INITIAL,
-! blink_ontime, 0);
- }
-! return Pt_CONTINUE;
- }
-
- static int
-***************
-*** 354,360 ****
- {
- is_timeout = TRUE;
-
-! return( Pt_CONTINUE );
- }
-
- static int
---- 354,360 ----
- {
- is_timeout = TRUE;
-
-! return Pt_CONTINUE;
- }
-
- static int
-***************
-*** 402,408 ****
- break;
- }
-
-! return( Pt_CONTINUE );
- }
-
- static int
---- 402,408 ----
- break;
- }
-
-! return Pt_CONTINUE;
- }
-
- static int
-***************
-*** 426,438 ****
-
- case Pt_SCROLL_SET:
- /* FIXME: return straight away here? */
-! return( Pt_CONTINUE );
- break;
- }
-
- gui_drag_scrollbar(sb, value, dragging);
- }
-! return( Pt_CONTINUE );
- }
-
- static int
---- 426,438 ----
-
- case Pt_SCROLL_SET:
- /* FIXME: return straight away here? */
-! return Pt_CONTINUE;
- break;
- }
-
- gui_drag_scrollbar(sb, value, dragging);
- }
-! return Pt_CONTINUE;
- }
-
- static int
-***************
-*** 453,459 ****
- /* We're a good lil photon program, aren't we? yes we are, yeess wee arrr */
- if( key->key_flags & Pk_KF_Compose )
- {
-! return( Pt_CONTINUE );
- }
-
- if( (key->key_flags & Pk_KF_Cap_Valid) &&
---- 453,459 ----
- /* We're a good lil photon program, aren't we? yes we are, yeess wee arrr */
- if( key->key_flags & Pk_KF_Compose )
- {
-! return Pt_CONTINUE;
- }
-
- if( (key->key_flags & Pk_KF_Cap_Valid) &&
-***************
-*** 473,479 ****
- gui_is_menu_shortcut( key->key_cap ) ) ) )
- {
- /* Fallthrough and let photon look for the hotkey */
-! return( Pt_CONTINUE );
- }
- #endif
-
---- 473,479 ----
- gui_is_menu_shortcut( key->key_cap ) ) ) )
- {
- /* Fallthrough and let photon look for the hotkey */
-! return Pt_CONTINUE;
- }
- #endif
-
-***************
-*** 544,550 ****
- add_to_input_buf( string, len );
- }
-
-! return( Pt_CONSUME );
- }
- len = 0;
- #endif
---- 544,550 ----
- add_to_input_buf( string, len );
- }
-
-! return Pt_CONSUME;
- }
- len = 0;
- #endif
-***************
-*** 579,585 ****
- }
- else
- {
-! return( Pt_CONTINUE );
- }
- }
- else
---- 579,585 ----
- }
- else
- {
-! return Pt_CONTINUE;
- }
- }
- else
-***************
-*** 622,632 ****
- if( len > 0 )
- {
- add_to_input_buf( string, len );
-! return( Pt_CONSUME );
- }
- }
-
-! return( Pt_CONTINUE );
- }
-
- static int
---- 622,632 ----
- if( len > 0 )
- {
- add_to_input_buf( string, len );
-! return Pt_CONSUME;
- }
- }
-
-! return Pt_CONTINUE;
- }
-
- static int
-***************
-*** 652,658 ****
- if( info->event->type == Ph_EV_PTR_MOTION_NOBUTTON )
- {
- gui_mouse_moved( mouse_x, mouse_y );
-! return( Pt_CONTINUE );
- }
-
- if( pointer->key_mods & Pk_KM_Shift )
---- 652,658 ----
- if( info->event->type == Ph_EV_PTR_MOTION_NOBUTTON )
- {
- gui_mouse_moved( mouse_x, mouse_y );
-! return Pt_CONTINUE;
- }
-
- if( pointer->key_mods & Pk_KM_Shift )
-***************
-*** 702,708 ****
- gui_send_mouse_event( button , mouse_x, mouse_y, repeated_click, modifiers );
- }
-
-! return( Pt_CONTINUE );
- }
-
- /* Handle a focus change of the PtRaw widget */
---- 702,708 ----
- gui_send_mouse_event( button , mouse_x, mouse_y, repeated_click, modifiers );
- }
-
-! return Pt_CONTINUE;
- }
-
- /* Handle a focus change of the PtRaw widget */
-***************
-*** 721,727 ****
- PtAddEventHandler( gui.vimTextArea, Ph_EV_PTR_MOTION_NOBUTTON,
- gui_ph_handle_mouse, NULL );
- }
-! return( Pt_CONTINUE );
- }
-
- static void
---- 721,727 ----
- PtAddEventHandler( gui.vimTextArea, Ph_EV_PTR_MOTION_NOBUTTON,
- gui_ph_handle_mouse, NULL );
- }
-! return Pt_CONTINUE;
- }
-
- static void
-***************
-*** 793,799 ****
- PtRealizeWidget( menu->submenu_id );
- }
-
-! return( Pt_CONTINUE );
- }
-
- /* This is used for pulldown/popup menus and also toolbar buttons */
---- 793,799 ----
- PtRealizeWidget( menu->submenu_id );
- }
-
-! return Pt_CONTINUE;
- }
-
- /* This is used for pulldown/popup menus and also toolbar buttons */
-***************
-*** 805,811 ****
- vimmenu_T *menu = (vimmenu_T *) data;
- gui_menu_cb( menu );
- }
-! return( Pt_CONTINUE );
- }
-
- /* Stop focus from disappearing into the menubar... */
---- 805,811 ----
- vimmenu_T *menu = (vimmenu_T *) data;
- gui_menu_cb( menu );
- }
-! return Pt_CONTINUE;
- }
-
- /* Stop focus from disappearing into the menubar... */
-***************
-*** 816,822 ****
- PtCallbackInfo_t *info )
- {
- PtGiveFocus( gui.vimTextArea, NULL );
-! return( Pt_CONTINUE );
- }
-
- static int
---- 816,822 ----
- PtCallbackInfo_t *info )
- {
- PtGiveFocus( gui.vimTextArea, NULL );
-! return Pt_CONTINUE;
- }
-
- static int
-***************
-*** 826,832 ****
- PtCallbackInfo_t *info )
- {
- gui_set_shellsize( FALSE, TRUE, RESIZE_BOTH );
-! return( Pt_CONTINUE );
- }
-
- /****************************************************************************/
---- 826,832 ----
- PtCallbackInfo_t *info )
- {
- gui_set_shellsize( FALSE, TRUE, RESIZE_BOTH );
-! return Pt_CONTINUE;
- }
-
- /****************************************************************************/
-***************
-*** 878,884 ****
- ( STRCMP( items->dname, name ) != 0 ) )
- items = items->next;
- }
-! return( items );
- }
-
- static void
---- 878,884 ----
- ( STRCMP( items->dname, name ) != 0 ) )
- items = items->next;
- }
-! return items;
- }
-
- static void
-***************
-*** 927,933 ****
- gui_menu_cb( menu );
- }
- }
-! return( Pt_CONTINUE );
- }
-
- static void
---- 927,933 ----
- gui_menu_cb( menu );
- }
- }
-! return Pt_CONTINUE;
- }
-
- static void
-***************
-*** 974,983 ****
- mark++;
-
- if( *mark == ')' )
-! return( TRUE);
- }
- }
-! return( FALSE );
- }
-
- static void
---- 974,983 ----
- mark++;
-
- if( *mark == ')' )
-! return TRUE;
- }
- }
-! return FALSE;
- }
-
- static void
-***************
-*** 1057,1063 ****
- gui_ph_pg_remove_buffer( menu->dname );
- }
-
-! return( Pt_CONTINUE );
- }
- #endif
-
---- 1057,1063 ----
- gui_ph_pg_remove_buffer( menu->dname );
- }
-
-! return Pt_CONTINUE;
- }
- #endif
-
-***************
-*** 1071,1077 ****
- PtContainerHold( gui.vimContainer );
- }
-
-! return( Pt_CONTINUE );
- }
-
- /****************************************************************************/
---- 1071,1077 ----
- PtContainerHold( gui.vimContainer );
- }
-
-! return Pt_CONTINUE;
- }
-
- /****************************************************************************/
-***************
-*** 1126,1132 ****
-
- gui.event_buffer = (PhEvent_t *) alloc( EVENT_BUFFER_SIZE );
- if( gui.event_buffer == NULL )
-! return( FAIL );
-
- /* Get a translation so we can convert from ISO Latin-1 to UTF */
- charset_translate = PxTranslateSet( NULL, "latin1" );
---- 1126,1132 ----
-
- gui.event_buffer = (PhEvent_t *) alloc( EVENT_BUFFER_SIZE );
- if( gui.event_buffer == NULL )
-! return FAIL;
-
- /* Get a translation so we can convert from ISO Latin-1 to UTF */
- charset_translate = PxTranslateSet( NULL, "latin1" );
-***************
-*** 1141,1147 ****
- PtSetArg( &args[ n++ ], Pt_ARG_DIM, &window_size, 0 );
- gui.vimWindow = PtCreateWidget( PtWindow, NULL, n, args );
- if( gui.vimWindow == NULL )
-! return( FAIL );
-
- PtAddCallback( gui.vimWindow, Pt_CB_WINDOW, gui_ph_handle_window_cb, NULL );
- PtAddCallback( gui.vimWindow, Pt_CB_WINDOW_OPENING,
---- 1141,1147 ----
- PtSetArg( &args[ n++ ], Pt_ARG_DIM, &window_size, 0 );
- gui.vimWindow = PtCreateWidget( PtWindow, NULL, n, args );
- if( gui.vimWindow == NULL )
-! return FAIL;
-
- PtAddCallback( gui.vimWindow, Pt_CB_WINDOW, gui_ph_handle_window_cb, NULL );
- PtAddCallback( gui.vimWindow, Pt_CB_WINDOW_OPENING,
-***************
-*** 1158,1164 ****
-
- gui.vimPanelGroup = PtCreateWidget( PtPanelGroup, gui.vimWindow, n, args );
- if( gui.vimPanelGroup == NULL )
-! return( FAIL );
-
- PtAddCallback( gui.vimPanelGroup, Pt_CB_PG_PANEL_SWITCHING,
- gui_ph_handle_pg_change, NULL );
---- 1158,1164 ----
-
- gui.vimPanelGroup = PtCreateWidget( PtPanelGroup, gui.vimWindow, n, args );
- if( gui.vimPanelGroup == NULL )
-! return FAIL;
-
- PtAddCallback( gui.vimPanelGroup, Pt_CB_PG_PANEL_SWITCHING,
- gui_ph_handle_pg_change, NULL );
-***************
-*** 1172,1178 ****
-
- gui.vimContainer = PtCreateWidget( PtPane, gui.vimWindow, n, args );
- if( gui.vimContainer == NULL )
-! return( FAIL );
-
- PtAddCallback( gui.vimContainer, Pt_CB_RESIZE, gui_ph_pane_resize, NULL );
- #endif
---- 1172,1178 ----
-
- gui.vimContainer = PtCreateWidget( PtPane, gui.vimWindow, n, args );
- if( gui.vimContainer == NULL )
-! return FAIL;
-
- PtAddCallback( gui.vimContainer, Pt_CB_RESIZE, gui_ph_pane_resize, NULL );
- #endif
-***************
-*** 1195,1201 ****
-
- gui.vimTextArea = PtCreateWidget( PtRaw, Pt_DFLT_PARENT, n, args );
- if( gui.vimTextArea == NULL)
-! return( FAIL );
-
- /* TODO: use PtAddEventHandlers instead? */
- /* Not using Ph_EV_BUT_REPEAT because vim wouldn't use it anyway */
---- 1195,1201 ----
-
- gui.vimTextArea = PtCreateWidget( PtRaw, Pt_DFLT_PARENT, n, args );
- if( gui.vimTextArea == NULL)
-! return FAIL;
-
- /* TODO: use PtAddEventHandlers instead? */
- /* Not using Ph_EV_BUT_REPEAT because vim wouldn't use it anyway */
-***************
-*** 1220,1230 ****
- */
- gui_ph_timer_cursor = PtCreateWidget( PtTimer, gui.vimWindow, 0, NULL );
- if( gui_ph_timer_cursor == NULL )
-! return( FAIL );
-
- gui_ph_timer_timeout = PtCreateWidget( PtTimer, gui.vimWindow, 0, NULL );
- if( gui_ph_timer_timeout == NULL )
-! return( FAIL );
-
- PtAddCallback( gui_ph_timer_cursor, Pt_CB_TIMER_ACTIVATE,
- gui_ph_handle_timer_cursor, NULL);
---- 1220,1230 ----
- */
- gui_ph_timer_cursor = PtCreateWidget( PtTimer, gui.vimWindow, 0, NULL );
- if( gui_ph_timer_cursor == NULL )
-! return FAIL;
-
- gui_ph_timer_timeout = PtCreateWidget( PtTimer, gui.vimWindow, 0, NULL );
- if( gui_ph_timer_timeout == NULL )
-! return FAIL;
-
- PtAddCallback( gui_ph_timer_cursor, Pt_CB_TIMER_ACTIVATE,
- gui_ph_handle_timer_cursor, NULL);
-***************
-*** 1239,1245 ****
- gui.vimToolBarGroup = PtCreateWidget( PtToolbarGroup, gui.vimWindow,
- n, args );
- if( gui.vimToolBarGroup == NULL )
-! return( FAIL );
-
- PtAddCallback( gui.vimToolBarGroup, Pt_CB_RESIZE,
- gui_ph_handle_menu_resize, NULL );
---- 1239,1245 ----
- gui.vimToolBarGroup = PtCreateWidget( PtToolbarGroup, gui.vimWindow,
- n, args );
- if( gui.vimToolBarGroup == NULL )
-! return FAIL;
-
- PtAddCallback( gui.vimToolBarGroup, Pt_CB_RESIZE,
- gui_ph_handle_menu_resize, NULL );
-***************
-*** 1254,1260 ****
- }
- gui.vimMenuBar = PtCreateWidget( PtMenuBar, gui.vimToolBarGroup, n, args );
- if( gui.vimMenuBar == NULL )
-! return( FAIL );
-
- # ifdef FEAT_TOOLBAR
- n = 0;
---- 1254,1260 ----
- }
- gui.vimMenuBar = PtCreateWidget( PtMenuBar, gui.vimToolBarGroup, n, args );
- if( gui.vimMenuBar == NULL )
-! return FAIL;
-
- # ifdef FEAT_TOOLBAR
- n = 0;
-***************
-*** 1273,1279 ****
-
- gui.vimToolBar = PtCreateWidget( PtToolbar, gui.vimToolBarGroup, n, args );
- if( gui.vimToolBar == NULL )
-! return( FAIL );
-
- /*
- * Size for the toolbar is fetched in gui_mch_show_toolbar, after
---- 1273,1279 ----
-
- gui.vimToolBar = PtCreateWidget( PtToolbar, gui.vimToolBarGroup, n, args );
- if( gui.vimToolBar == NULL )
-! return FAIL;
-
- /*
- * Size for the toolbar is fetched in gui_mch_show_toolbar, after
-***************
-*** 1284,1296 ****
-
- #endif
-
-! return( OK );
- }
-
- int
- gui_mch_init_check(void)
- {
-! return( (is_photon_available == TRUE) ? OK : FAIL );
- }
-
- int
---- 1284,1296 ----
-
- #endif
-
-! return OK;
- }
-
- int
- gui_mch_init_check(void)
- {
-! return (is_photon_available == TRUE) ? OK : FAIL;
- }
-
- int
-***************
-*** 1310,1316 ****
- if (gui_win_x != -1 && gui_win_y != -1)
- gui_mch_set_winpos(gui_win_x, gui_win_y);
-
-! return( (PtRealizeWidget( gui.vimWindow ) == 0) ? OK : FAIL );
- }
-
- void
---- 1310,1316 ----
- if (gui_win_x != -1 && gui_win_y != -1)
- gui_mch_set_winpos(gui_win_x, gui_win_y);
-
-! return (PtRealizeWidget( gui.vimWindow ) == 0) ? OK : FAIL;
- }
-
- void
-***************
-*** 1336,1342 ****
- exit_gui_mch_update( void *data )
- {
- *(int *)data = FALSE;
-! return( Pt_END );
- }
-
- void
---- 1336,1342 ----
- exit_gui_mch_update( void *data )
- {
- *(int *)data = FALSE;
-! return Pt_END;
- }
-
- void
-***************
-*** 1365,1374 ****
- if( input_available() )
- {
- PtSetResource( gui_ph_timer_timeout, Pt_ARG_TIMER_INITIAL, 0, 0 );
-! return( OK );
- }
- else if( is_timeout == TRUE )
-! return( FAIL );
- }
- }
-
---- 1365,1374 ----
- if( input_available() )
- {
- PtSetResource( gui_ph_timer_timeout, Pt_ARG_TIMER_INITIAL, 0, 0 );
-! return OK;
- }
- else if( is_timeout == TRUE )
-! return FAIL;
- }
- }
-
-***************
-*** 1446,1454 ****
- vim_free( default_path );
-
- if( file.ret == Pt_FSDIALOG_BTN1 )
-! return( vim_strsave( file.path ) );
- }
-! return( NULL );
- }
- #endif
-
---- 1446,1454 ----
- vim_free( default_path );
-
- if( file.ret == Pt_FSDIALOG_BTN1 )
-! return vim_strsave(file.path);
- }
-! return NULL;
- }
- #endif
-
-***************
-*** 1470,1476 ****
-
- PtModalUnblock( modal_ctrl, (void *) button );
-
-! return( Pt_TRUE );
- }
-
- static int
---- 1470,1476 ----
-
- PtModalUnblock( modal_ctrl, (void *) button );
-
-! return Pt_TRUE;
- }
-
- static int
-***************
-*** 1478,1484 ****
- {
- if( info->reason_subtype == Pt_EDIT_ACTIVATE )
- gui_ph_dialog_close( 1, data );
-! return( Pt_CONTINUE );
- }
-
- static int
---- 1478,1484 ----
- {
- if( info->reason_subtype == Pt_EDIT_ACTIVATE )
- gui_ph_dialog_close( 1, data );
-! return Pt_CONTINUE;
- }
-
- static int
-***************
-*** 1490,1498 ****
- if( ( key->key_flags & Pk_KF_Cap_Valid ) && ( key->key_cap == Pk_Escape ) )
- {
- gui_ph_dialog_close( 0, data );
-! return( Pt_CONSUME );
- }
-! return( Pt_PROCESS );
- }
-
- int
---- 1490,1498 ----
- if( ( key->key_flags & Pk_KF_Cap_Valid ) && ( key->key_cap == Pk_Escape ) )
- {
- gui_ph_dialog_close( 0, data );
-! return Pt_CONSUME;
- }
-! return Pt_PROCESS;
- }
-
- int
-***************
-*** 1519,1525 ****
- button_count = len = i = 0;
-
- if( buttons == NULL || *buttons == NUL )
-! return( -1 );
-
- /* There is one less separator than buttons, so bump up the button count */
- button_count = 1;
---- 1519,1525 ----
- button_count = len = i = 0;
-
- if( buttons == NULL || *buttons == NUL )
-! return -1;
-
- /* There is one less separator than buttons, so bump up the button count */
- button_count = 1;
-***************
-*** 1637,1643 ****
- vim_free( button_array );
- vim_free( buttons_copy );
-
-! return( dialog_result );
- }
- #endif
- /****************************************************************************/
---- 1637,1643 ----
- vim_free( button_array );
- vim_free( buttons_copy );
-
-! return dialog_result;
- }
- #endif
- /****************************************************************************/
-***************
-*** 1653,1659 ****
- *x = pos->x;
- *y = pos->y;
-
-! return( OK );
- }
-
- void
---- 1653,1659 ----
- *x = pos->x;
- *y = pos->y;
-
-! return OK;
- }
-
- void
-***************
-*** 1975,1985 ****
- hex_digit(int c)
- {
- if (VIM_ISDIGIT(c))
-! return( c - '0' );
- c = TOLOWER_ASC(c);
- if (c >= 'a' && c <= 'f')
-! return( c - 'a' + 10 );
-! return( -1000 );
- }
-
-
---- 1975,1985 ----
- hex_digit(int c)
- {
- if (VIM_ISDIGIT(c))
-! return c - '0';
- c = TOLOWER_ASC(c);
- if (c >= 'a' && c <= 'f')
-! return c - 'a' + 10;
-! return -1000;
- }
-
-
-***************
-*** 2065,2077 ****
- b = hex_digit( name[5] ) * 16 + hex_digit( name[6] );
- if( r < 0 || g < 0 || b < 0 )
- return INVALCOLOR;
-! return( RGB( r, g, b ) );
- }
-
- for( i = 0; i < ARRAY_LENGTH( table ); i++ )
- {
- if( STRICMP( name, table[i].name ) == 0 )
-! return( table[i].colour );
- }
-
- /*
---- 2065,2077 ----
- b = hex_digit( name[5] ) * 16 + hex_digit( name[6] );
- if( r < 0 || g < 0 || b < 0 )
- return INVALCOLOR;
-! return RGB(r, g, b);
- }
-
- for( i = 0; i < ARRAY_LENGTH( table ); i++ )
- {
- if( STRICMP( name, table[i].name ) == 0 )
-! return table[i].colour;
- }
-
- /*
-***************
-*** 2115,2121 ****
- if (STRICMP(color, name) == 0)
- {
- fclose(fd);
-! return( (guicolor_T) RGB(r,g,b) );
- }
- }
-
---- 2115,2121 ----
- if (STRICMP(color, name) == 0)
- {
- fclose(fd);
-! return (guicolor_T)RGB(r, g, b);
- }
- }
-
-***************
-*** 2451,2458 ****
- for (i = 0; special_keys[i].key_sym != 0; i++)
- if (name[0] == special_keys[i].vim_code0 &&
- name[1] == special_keys[i].vim_code1)
-! return( OK );
-! return( FAIL );
- }
-
- /****************************************************************************/
---- 2451,2458 ----
- for (i = 0; special_keys[i].key_sym != 0; i++)
- if (name[0] == special_keys[i].vim_code0 &&
- name[1] == special_keys[i].vim_code1)
-! return OK;
-! return FAIL;
- }
-
- /****************************************************************************/
-***************
-*** 2512,2518 ****
-
- temp_phi = &external_icon;
- }
-! return( temp_phi );
- }
-
- /*
---- 2512,2518 ----
-
- temp_phi = &external_icon;
- }
-! return temp_phi;
- }
-
- /*
-***************
-*** 2541,2556 ****
- icon = gui_ph_toolbar_load_icon( full_pathname );
-
- if( icon != NULL )
-! return( icon );
- }
-
- if( menu->iconidx >= 0 &&
- ( menu->iconidx < ARRAY_LENGTH( gui_ph_toolbar_images ) ) )
- {
-! return( gui_ph_toolbar_images[ menu->iconidx ] );
- }
-
-! return( NULL );
- }
- #endif
-
---- 2541,2556 ----
- icon = gui_ph_toolbar_load_icon( full_pathname );
-
- if( icon != NULL )
-! return icon;
- }
-
- if( menu->iconidx >= 0 &&
- ( menu->iconidx < ARRAY_LENGTH( gui_ph_toolbar_images ) ) )
- {
-! return gui_ph_toolbar_images[menu->iconidx];
- }
-
-! return NULL;
- }
- #endif
-
-***************
-*** 2895,2905 ****
- * at least has the bits we're checking for */
- if( font_size == info.size &&
- style == (info.style & style) )
-! return( (GuiFont) font_tag );
- }
- vim_free( font_tag );
- }
-! return( NULL );
- }
-
- /*
---- 2895,2905 ----
- * at least has the bits we're checking for */
- if( font_size == info.size &&
- style == (info.style & style) )
-! return (GuiFont)font_tag;
- }
- vim_free( font_tag );
- }
-! return NULL;
- }
-
- /*
-***************
-*** 2957,2965 ****
- }
- }
- }
-! return( TRUE );
- }
-! return( FALSE );
- }
-
- int
---- 2957,2965 ----
- }
- }
- }
-! return TRUE;
- }
-! return FALSE;
- }
-
- int
-***************
-*** 2985,2991 ****
- "pcterm12", -1, PHFONT_FIXED, NULL );
-
- if( font_tag == NULL )
-! return( FAIL );
-
- gui_mch_free_font( gui.norm_font );
- gui.norm_font = font_tag;
---- 2985,2991 ----
- "pcterm12", -1, PHFONT_FIXED, NULL );
-
- if( font_tag == NULL )
-! return FAIL;
-
- gui_mch_free_font( gui.norm_font );
- gui.norm_font = font_tag;
-***************
-*** 2997,3009 ****
- {
- if( gui_ph_parse_font_name( vim_font_name, &font_name, &font_flags,
- &font_size ) == FALSE )
-! return( FAIL );
-
- font_tag = gui_ph_get_font( font_name, font_flags, font_size, 0 );
- if( font_tag == NULL )
- {
- vim_free( font_name );
-! return( FAIL );
- }
-
- gui_mch_free_font( gui.norm_font );
---- 2997,3009 ----
- {
- if( gui_ph_parse_font_name( vim_font_name, &font_name, &font_flags,
- &font_size ) == FALSE )
-! return FAIL;
-
- font_tag = gui_ph_get_font( font_name, font_flags, font_size, 0 );
- if( font_tag == NULL )
- {
- vim_free( font_name );
-! return FAIL;
- }
-
- gui_mch_free_font( gui.norm_font );
-***************
-*** 3026,3032 ****
- gui.char_ascent = - extent.ul.y;
-
- vim_free( font_name );
-! return( OK );
- }
-
- /*
---- 3026,3032 ----
- gui.char_ascent = - extent.ul.y;
-
- vim_free( font_name );
-! return OK;
- }
-
- /*
-***************
-*** 3042,3048 ****
- gui.char_height = - info.ascender + info.descender + p_linespace;
- gui.char_ascent = - info.ascender + p_linespace / 2;
-
-! return( OK );
- }
-
- GuiFont
---- 3042,3048 ----
- gui.char_height = - info.ascender + info.descender + p_linespace;
- gui.char_ascent = - info.ascender + p_linespace / 2;
-
-! return OK;
- }
-
- GuiFont
-***************
-*** 3060,3072 ****
- vim_free( font_name );
-
- if( font_tag != NULL )
-! return( (GuiFont) font_tag );
- }
-
- if( report_error )
- EMSG2(e_font, vim_font_name );
-
-! return( FAIL );
- }
-
- #if defined(FEAT_EVAL) || defined(PROTO)
---- 3060,3072 ----
- vim_free( font_name );
-
- if( font_tag != NULL )
-! return (GuiFont)font_tag;
- }
-
- if( report_error )
- EMSG2(e_font, vim_font_name );
-
-! return FAIL;
- }
-
- #if defined(FEAT_EVAL) || defined(PROTO)
-*** ../vim-7.3.261/src/version.c 2011-07-27 13:59:12.000000000 +0200
---- src/version.c 2011-07-27 14:08:08.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 262,
- /**/
-
---
-You know you use Vim too much when you have this alias in your
-~/.bashrc file: alias :e=/bin/vim (Eljay Love-Jensen)
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.263
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.263
-Problem: Perl and Tcl have a few code style problems.
-Solution: Clean it up. (Elias Diem)
-Files: src/if_perl.xs, src/if_tcl.c
-
-
-*** ../vim-7.3.262/src/if_perl.xs 2010-10-23 14:02:48.000000000 +0200
---- src/if_perl.xs 2011-07-27 14:11:03.000000000 +0200
-***************
-*** 755,761 ****
- #ifdef HAVE_SANDBOX
- if (sandbox)
- {
-! safe = perl_get_sv( "VIM::safe", FALSE );
- # ifndef MAKE_TEST /* avoid a warning for unreachable code */
- if (safe == NULL || !SvTRUE(safe))
- EMSG(_("E299: Perl evaluation forbidden in sandbox without the Safe module"));
---- 755,761 ----
- #ifdef HAVE_SANDBOX
- if (sandbox)
- {
-! safe = perl_get_sv("VIM::safe", FALSE);
- # ifndef MAKE_TEST /* avoid a warning for unreachable code */
- if (safe == NULL || !SvTRUE(safe))
- EMSG(_("E299: Perl evaluation forbidden in sandbox without the Safe module"));
-***************
-*** 1108,1114 ****
- VIWIN win
-
- PPCODE:
-! if(items == 1)
- {
- EXTEND(sp, 2);
- if (!win_valid(win))
---- 1108,1114 ----
- VIWIN win
-
- PPCODE:
-! if (items == 1)
- {
- EXTEND(sp, 2);
- if (!win_valid(win))
-***************
-*** 1116,1122 ****
- PUSHs(sv_2mortal(newSViv(win->w_cursor.lnum)));
- PUSHs(sv_2mortal(newSViv(win->w_cursor.col)));
- }
-! else if(items == 3)
- {
- int lnum, col;
-
---- 1116,1122 ----
- PUSHs(sv_2mortal(newSViv(win->w_cursor.lnum)));
- PUSHs(sv_2mortal(newSViv(win->w_cursor.col)));
- }
-! else if (items == 3)
- {
- int lnum, col;
-
-***************
-*** 1249,1257 ****
- {
- lnum = SvIV(ST(1));
- count = 1 + SvIV(ST(2)) - lnum;
-! if(count == 0)
- count = 1;
-! if(count < 0)
- {
- lnum -= count;
- count = -count;
---- 1249,1257 ----
- {
- lnum = SvIV(ST(1));
- count = 1 + SvIV(ST(2)) - lnum;
-! if (count == 0)
- count = 1;
-! if (count < 0)
- {
- lnum -= count;
- count = -count;
-*** ../vim-7.3.262/src/if_tcl.c 2010-12-17 20:23:56.000000000 +0100
---- src/if_tcl.c 2011-07-27 14:11:03.000000000 +0200
-***************
-*** 1884,1897 ****
- {
- int newerr = OK;
-
-! if (error == TCL_EXIT )
- {
- int retval;
- char buf[50];
- Tcl_Obj *robj;
-
- robj = Tcl_GetObjResult(tclinfo.interp);
-! if( Tcl_GetIntFromObj(tclinfo.interp, robj, &retval) != TCL_OK )
- {
- EMSG(_("E281: TCL ERROR: exit code is not int!? Please report this to vim-dev@vim.org"));
- newerr = FAIL;
---- 1884,1897 ----
- {
- int newerr = OK;
-
-! if (error == TCL_EXIT)
- {
- int retval;
- char buf[50];
- Tcl_Obj *robj;
-
- robj = Tcl_GetObjResult(tclinfo.interp);
-! if (Tcl_GetIntFromObj(tclinfo.interp, robj, &retval) != TCL_OK)
- {
- EMSG(_("E281: TCL ERROR: exit code is not int!? Please report this to vim-dev@vim.org"));
- newerr = FAIL;
-***************
-*** 1900,1906 ****
- {
- sprintf(buf, _("E572: exit code %d"), retval);
- tclerrmsg(buf);
-! if (retval == 0 )
- {
- did_emsg = 0;
- newerr = OK;
---- 1900,1906 ----
- {
- sprintf(buf, _("E572: exit code %d"), retval);
- tclerrmsg(buf);
-! if (retval == 0)
- {
- did_emsg = 0;
- newerr = OK;
-*** ../vim-7.3.262/src/version.c 2011-07-27 14:09:05.000000000 +0200
---- src/version.c 2011-07-27 14:12:05.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 263,
- /**/
-
---
-DEAD PERSON: I don't want to go in the cart!
-CUSTOMER: Oh, don't be such a baby.
-MORTICIAN: I can't take him...
-DEAD PERSON: I feel fine!
-CUSTOMER: Oh, do us a favor...
-MORTICIAN: I can't.
- 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/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.264
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.264
-Problem: When the current directory name contains wildcard characters, such
- as "foo[with]bar", the tags file can't be found. (Jeremy
- Erickson)
-Solution: When searching for matching files also match without expanding
- wildcards. This is a bit of a hack.
-Files: src/vim.h, src/misc1.c, src/misc2.c
-
-
-*** ../vim-7.3.263/src/vim.h 2011-07-20 15:04:52.000000000 +0200
---- src/vim.h 2011-07-27 16:21:38.000000000 +0200
-***************
-*** 816,821 ****
---- 816,822 ----
- #define EW_PATH 0x80 /* search in 'path' too */
- #define EW_ICASE 0x100 /* ignore case */
- #define EW_NOERROR 0x200 /* no error for bad regexp */
-+ #define EW_NOTWILD 0x400 /* add match with literal name if exists */
- /* 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.263/src/misc1.c 2011-07-20 15:04:52.000000000 +0200
---- src/misc1.c 2011-07-27 17:24:39.000000000 +0200
-***************
-*** 9119,9125 ****
- * all entries found with "matchname". */
- if ((p[0] != '.' || starts_with_dot)
- && (matchname == NULL
-! || vim_regexec(&regmatch, p, (colnr_T)0)))
- {
- #ifdef WIN3264
- STRCPY(s, p);
---- 9119,9127 ----
- * all entries found with "matchname". */
- if ((p[0] != '.' || starts_with_dot)
- && (matchname == NULL
-! || vim_regexec(&regmatch, p, (colnr_T)0)
-! || ((flags & EW_NOTWILD)
-! && fnamencmp(path + (s - buf), p, e - s) == 0)))
- {
- #ifdef WIN3264
- STRCPY(s, p);
-***************
-*** 9323,9329 ****
- e = p;
- *e = NUL;
-
-! /* now we have one wildcard component between "s" and "e" */
- /* Remove backslashes between "wildoff" and the start of the wildcard
- * component. */
- for (p = buf + wildoff; p < s; ++p)
---- 9325,9331 ----
- e = p;
- *e = NUL;
-
-! /* Now we have one wildcard component between "s" and "e". */
- /* Remove backslashes between "wildoff" and the start of the wildcard
- * component. */
- for (p = buf + wildoff; p < s; ++p)
-***************
-*** 9390,9396 ****
- if (dp == NULL)
- break;
- if ((dp->d_name[0] != '.' || starts_with_dot)
-! && vim_regexec(&regmatch, (char_u *)dp->d_name, (colnr_T)0))
- {
- STRCPY(s, dp->d_name);
- len = STRLEN(buf);
---- 9392,9400 ----
- if (dp == NULL)
- break;
- if ((dp->d_name[0] != '.' || starts_with_dot)
-! && (vim_regexec(&regmatch, (char_u *)dp->d_name, (colnr_T)0)
-! || ((flags & EW_NOTWILD)
-! && fnamencmp(path + (s - buf), dp->d_name, e - s) == 0)))
- {
- STRCPY(s, dp->d_name);
- len = STRLEN(buf);
-*** ../vim-7.3.263/src/misc2.c 2011-07-07 17:15:29.000000000 +0200
---- src/misc2.c 2011-07-27 17:21:10.000000000 +0200
-***************
-*** 4653,4661 ****
- {
- if (r_ptr[0] == '\\' && r_ptr[1] == ';')
- {
-! /* overwrite the escape char,
-! * use STRLEN(r_ptr) to move the trailing '\0'
-! */
- STRMOVE(r_ptr, r_ptr + 1);
- r_ptr++;
- }
---- 4653,4660 ----
- {
- if (r_ptr[0] == '\\' && r_ptr[1] == ';')
- {
-! /* Overwrite the escape char,
-! * use STRLEN(r_ptr) to move the trailing '\0'. */
- STRMOVE(r_ptr, r_ptr + 1);
- r_ptr++;
- }
-***************
-*** 4914,4923 ****
- stackp->ffs_filearray_size = 0;
- }
- else
- expand_wildcards((dirptrs[1] == NULL) ? 1 : 2, dirptrs,
- &stackp->ffs_filearray_size,
- &stackp->ffs_filearray,
-! EW_DIR|EW_ADDSLASH|EW_SILENT);
-
- stackp->ffs_filearray_cur = 0;
- stackp->ffs_stage = 0;
---- 4913,4925 ----
- stackp->ffs_filearray_size = 0;
- }
- else
-+ /* Add EW_NOTWILD because the expanded path may contain
-+ * wildcard characters that are to be taken literally.
-+ * This is a bit of a hack. */
- expand_wildcards((dirptrs[1] == NULL) ? 1 : 2, dirptrs,
- &stackp->ffs_filearray_size,
- &stackp->ffs_filearray,
-! EW_DIR|EW_ADDSLASH|EW_SILENT|EW_NOTWILD);
-
- stackp->ffs_filearray_cur = 0;
- stackp->ffs_stage = 0;
-*** ../vim-7.3.263/src/version.c 2011-07-27 14:15:41.000000000 +0200
---- src/version.c 2011-07-27 17:25:44.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 264,
- /**/
-
---
-CUSTOMER: You're not fooling anyone y'know. Look, isn't there something
- you can do?
-DEAD PERSON: I feel happy... I feel happy.
- [whop]
-CUSTOMER: Ah, thanks very much.
-MORTICIAN: Not at all. See you on Thursday.
-CUSTOMER: Right.
- 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/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.265
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.265
-Problem: When storing a pattern in search history there is no proper check
- for the separator character.
-Solution: Pass the separator character to in_history(). (Muraoka Taro)
-Files: src/ex_getln.c
-
-
-*** ../vim-7.3.264/src/ex_getln.c 2011-07-07 16:44:33.000000000 +0200
---- src/ex_getln.c 2011-07-27 17:50:35.000000000 +0200
-***************
-*** 67,73 ****
-
- static int hist_char2type __ARGS((int c));
-
-! static int in_history __ARGS((int, char_u *, int));
- # ifdef FEAT_EVAL
- static int calc_hist_idx __ARGS((int histype, int num));
- # endif
---- 67,73 ----
-
- static int hist_char2type __ARGS((int c));
-
-! static int in_history __ARGS((int, char_u *, int, int));
- # ifdef FEAT_EVAL
- static int calc_hist_idx __ARGS((int histype, int num));
- # endif
-***************
-*** 5289,5301 ****
- * If 'move_to_front' is TRUE, matching entry is moved to end of history.
- */
- static int
-! in_history(type, str, move_to_front)
- int type;
- char_u *str;
- int move_to_front; /* Move the entry to the front if it exists */
- {
- int i;
- int last_i = -1;
-
- if (hisidx[type] < 0)
- return FALSE;
---- 5289,5303 ----
- * If 'move_to_front' is TRUE, matching entry is moved to end of history.
- */
- static int
-! in_history(type, str, move_to_front, sep)
- int type;
- char_u *str;
- int move_to_front; /* Move the entry to the front if it exists */
-+ int sep;
- {
- int i;
- int last_i = -1;
-+ char_u *p;
-
- if (hisidx[type] < 0)
- return FALSE;
-***************
-*** 5304,5310 ****
- {
- if (history[type][i].hisstr == NULL)
- return FALSE;
-! if (STRCMP(str, history[type][i].hisstr) == 0)
- {
- if (!move_to_front)
- return TRUE;
---- 5306,5317 ----
- {
- if (history[type][i].hisstr == NULL)
- return FALSE;
-!
-! /* For search history, check that the separator character matches as
-! * well. */
-! p = history[type][i].hisstr;
-! if (STRCMP(str, p) == 0
-! && (type != HIST_SEARCH || sep == p[STRLEN(p) + 1]))
- {
- if (!move_to_front)
- return TRUE;
-***************
-*** 5398,5404 ****
- }
- last_maptick = -1;
- }
-! if (!in_history(histype, new_entry, TRUE))
- {
- if (++hisidx[histype] == hislen)
- hisidx[histype] = 0;
---- 5405,5411 ----
- }
- last_maptick = -1;
- }
-! if (!in_history(histype, new_entry, TRUE, sep))
- {
- if (++hisidx[histype] == hislen)
- hisidx[histype] = 0;
-***************
-*** 5977,5983 ****
- if (val != NULL && *val != NUL)
- {
- if (!in_history(type, val + (type == HIST_SEARCH),
-! viminfo_add_at_front))
- {
- /* Need to re-allocate to append the separator byte. */
- len = STRLEN(val);
---- 5984,5990 ----
- if (val != NULL && *val != NUL)
- {
- if (!in_history(type, val + (type == HIST_SEARCH),
-! viminfo_add_at_front, *val))
- {
- /* Need to re-allocate to append the separator byte. */
- len = STRLEN(val);
-*** ../vim-7.3.264/src/version.c 2011-07-27 17:31:42.000000000 +0200
---- src/version.c 2011-07-27 17:58:22.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 265,
- /**/
-
---
- [clop clop]
-MORTICIAN: Who's that then?
-CUSTOMER: I don't know.
-MORTICIAN: Must be a king.
-CUSTOMER: Why?
-MORTICIAN: He hasn't got shit all over him.
- 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/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.266
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.266
-Problem: In Gvim with iBus typing space in Insert mode doesn't work.
-Solution: Clear xim_expected_char after checking it.
-Files: src/mbyte.c
-
-
-*** ../vim-7.3.265/src/mbyte.c 2011-07-15 21:16:54.000000000 +0200
---- src/mbyte.c 2011-07-27 18:21:13.000000000 +0200
-***************
-*** 5170,5175 ****
---- 5170,5179 ----
- /* We had a keypad key, and XIM tried to thieve it */
- return FALSE;
-
-+ /* This is supposed to fix a problem with iBus, that space
-+ * characters don't work in input mode. */
-+ xim_expected_char = NUL;
-+
- /* Normal processing */
- return imresult;
- }
-*** ../vim-7.3.265/src/version.c 2011-07-27 17:58:42.000000000 +0200
---- src/version.c 2011-07-27 18:23:00.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 266,
- /**/
-
---
- [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/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.267
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.267
-Problem: Ruby on Mac OS X 10.7 may crash.
-Solution: Avoid alloc(0). (Bjorn Winckler)
-Files: src/if_ruby.c
-
-
-*** ../vim-7.3.266/src/if_ruby.c 2011-01-17 19:53:20.000000000 +0100
---- src/if_ruby.c 2011-08-04 18:57:43.000000000 +0200
-***************
-*** 761,771 ****
- char *buff, *p;
-
- str = rb_obj_as_string(str);
-! buff = ALLOCA_N(char, RSTRING_LEN(str));
-! strcpy(buff, RSTRING_PTR(str));
-! p = strchr(buff, '\n');
-! if (p) *p = '\0';
-! MSG(buff);
- return Qnil;
- }
-
---- 761,779 ----
- char *buff, *p;
-
- str = rb_obj_as_string(str);
-! if (RSTRING_LEN(str) > 0)
-! {
-! /* Only do this when the string isn't empty, alloc(0) causes trouble. */
-! buff = ALLOCA_N(char, RSTRING_LEN(str));
-! strcpy(buff, RSTRING_PTR(str));
-! p = strchr(buff, '\n');
-! if (p) *p = '\0';
-! MSG(buff);
-! }
-! else
-! {
-! MSG("");
-! }
- return Qnil;
- }
-
-*** ../vim-7.3.266/src/version.c 2011-07-27 18:25:40.000000000 +0200
---- src/version.c 2011-08-04 19:07:45.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 267,
- /**/
-
---
-There are 10 kinds of people: Those who understand binary and those who don't.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.268
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.268
-Problem: Vim freezes when executing an external command with zsh.
-Solution: Use O_NOCTTY both in the master and slave. (Bjorn Winckler)
-Files: src/os_unix.c
-
-
-*** ../vim-7.3.267/src/os_unix.c 2011-07-07 16:20:45.000000000 +0200
---- src/os_unix.c 2011-08-04 19:06:14.000000000 +0200
-***************
-*** 3889,3899 ****
- if (p_guipty && !(options & (SHELL_READ|SHELL_WRITE)))
- {
- pty_master_fd = OpenPTY(&tty_name); /* open pty */
-! if (pty_master_fd >= 0 && ((pty_slave_fd =
-! open(tty_name, O_RDWR | O_EXTRA, 0)) < 0))
- {
-! close(pty_master_fd);
-! pty_master_fd = -1;
- }
- }
- /*
---- 3889,3909 ----
- if (p_guipty && !(options & (SHELL_READ|SHELL_WRITE)))
- {
- pty_master_fd = OpenPTY(&tty_name); /* open pty */
-! if (pty_master_fd >= 0)
- {
-! /* Leaving out O_NOCTTY may lead to waitpid() always returning
-! * 0 on Mac OS X 10.7 thereby causing freezes. Let's assume
-! * adding O_NOCTTY always works when defined. */
-! #ifdef O_NOCTTY
-! pty_slave_fd = open(tty_name, O_RDWR | O_NOCTTY | O_EXTRA, 0);
-! #else
-! pty_slave_fd = open(tty_name, O_RDWR | O_EXTRA, 0);
-! #endif
-! if (pty_slave_fd < 0)
-! {
-! close(pty_master_fd);
-! pty_master_fd = -1;
-! }
- }
- }
- /*
-*** ../vim-7.3.267/src/version.c 2011-08-04 19:34:55.000000000 +0200
---- src/version.c 2011-08-04 19:36:00.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 268,
- /**/
-
---
-Mental Floss prevents moral decay!
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.269
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.269
-Problem: 'shellcmdflag' only works with one flag.
-Solution: Split into multiple arguments. (Gary Johnson)
-Files: src/os_unix.c
-
-
-*** ../vim-7.3.268/src/os_unix.c 2011-08-04 19:36:47.000000000 +0200
---- src/os_unix.c 2011-08-04 20:27:13.000000000 +0200
-***************
-*** 3795,3802 ****
---- 3795,3804 ----
- int retval = -1;
- char **argv = NULL;
- int argc;
-+ char_u *p_shcf_copy = NULL;
- int i;
- char_u *p;
-+ char_u *s;
- int inquote;
- int pty_master_fd = -1; /* for pty's */
- # ifdef FEAT_GUI
-***************
-*** 3855,3860 ****
---- 3857,3875 ----
- }
- if (argv == NULL)
- {
-+ /*
-+ * Account for possible multiple args in p_shcf.
-+ */
-+ p = p_shcf;
-+ for (;;)
-+ {
-+ p = skiptowhite(p);
-+ if (*p == NUL)
-+ break;
-+ ++argc;
-+ p = skipwhite(p);
-+ }
-+
- argv = (char **)alloc((unsigned)((argc + 4) * sizeof(char *)));
- if (argv == NULL) /* out of memory */
- goto error;
-***************
-*** 3864,3870 ****
- {
- if (extra_shell_arg != NULL)
- argv[argc++] = (char *)extra_shell_arg;
-! argv[argc++] = (char *)p_shcf;
- argv[argc++] = (char *)cmd;
- }
- argv[argc] = NULL;
---- 3879,3901 ----
- {
- if (extra_shell_arg != NULL)
- argv[argc++] = (char *)extra_shell_arg;
-!
-! /* Break 'shellcmdflag' into white separated parts. This doesn't
-! * handle quoted strings, they are very unlikely to appear. */
-! p_shcf_copy = alloc((unsigned)STRLEN(p_shcf) + 1);
-! if (p_shcf_copy == NULL) /* out of memory */
-! goto error;
-! s = p_shcf_copy;
-! p = p_shcf;
-! while (*p != NUL)
-! {
-! argv[argc++] = (char *)s;
-! while (*p && *p != ' ' && *p != TAB)
-! *s++ = *p++;
-! *s++ = NUL;
-! p = skipwhite(p);
-! }
-!
- argv[argc++] = (char *)cmd;
- }
- argv[argc] = NULL;
-***************
-*** 4677,4682 ****
---- 4708,4714 ----
- }
- }
- vim_free(argv);
-+ vim_free(p_shcf_copy);
-
- error:
- if (!did_settmode)
-*** ../vim-7.3.268/src/version.c 2011-08-04 19:36:47.000000000 +0200
---- src/version.c 2011-08-04 20:30:44.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 269,
- /**/
-
---
-Be nice to your kids... they'll be the ones choosing your nursing home.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.270
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.270
-Problem: Illegal memory access.
-Solution: Swap conditions. (Dominique Pelle)
-Files: src/ops.c
-
-
-*** ../vim-7.3.269/src/ops.c 2011-07-15 17:51:30.000000000 +0200
---- src/ops.c 2011-08-10 12:07:22.000000000 +0200
-***************
-*** 6311,6317 ****
- *wc += words;
-
- /* Add eol_size if the end of line was reached before hitting limit. */
-! if (line[i] == NUL && i < limit)
- {
- i += eol_size;
- chars += eol_size;
---- 6311,6317 ----
- *wc += words;
-
- /* Add eol_size if the end of line was reached before hitting limit. */
-! if (i < limit && line[i] == NUL)
- {
- i += eol_size;
- chars += eol_size;
-*** ../vim-7.3.269/src/version.c 2011-08-04 20:31:50.000000000 +0200
---- src/version.c 2011-08-10 12:09:30.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 270,
- /**/
-
---
-An indication you must be a manager:
-You give constructive feedback to your dog.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.271
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.271
-Problem: Code not following Vim coding style.
-Solution: Fix the style. (Elias Diem)
-Files: src/gui_photon.c
-
-
-*** ../vim-7.3.270/src/gui_photon.c 2011-07-27 14:09:05.000000000 +0200
---- src/gui_photon.c 2011-08-10 12:18:35.000000000 +0200
-***************
-*** 358,378 ****
- }
-
- static int
-! gui_ph_handle_window_cb( PtWidget_t *widget, void *data, PtCallbackInfo_t *info )
- {
- PhWindowEvent_t *we = info->cbdata;
- ushort_t *width, *height;
-
-! switch( we->event_f ) {
- case Ph_WM_CLOSE:
- gui_shell_closed();
- break;
-
- case Ph_WM_FOCUS:
- /* Just in case it's hidden and needs to be shown */
-! gui_mch_mousehide( MOUSE_SHOW );
-
-! if( we->event_state == Ph_WM_EVSTATE_FOCUS )
- {
- gui_focus_change(TRUE);
- gui_mch_start_blink();
---- 358,378 ----
- }
-
- static int
-! gui_ph_handle_window_cb(PtWidget_t *widget, void *data, PtCallbackInfo_t *info)
- {
- PhWindowEvent_t *we = info->cbdata;
- ushort_t *width, *height;
-
-! switch (we->event_f) {
- case Ph_WM_CLOSE:
- gui_shell_closed();
- break;
-
- case Ph_WM_FOCUS:
- /* Just in case it's hidden and needs to be shown */
-! gui_mch_mousehide(MOUSE_SHOW);
-
-! if (we->event_state == Ph_WM_EVSTATE_FOCUS)
- {
- gui_focus_change(TRUE);
- gui_mch_start_blink();
-***************
-*** 385,401 ****
- break;
-
- case Ph_WM_RESIZE:
-! PtGetResource( gui.vimWindow, Pt_ARG_WIDTH, &width, 0 );
-! PtGetResource( gui.vimWindow, Pt_ARG_HEIGHT, &height, 0 );
- #ifdef USE_PANEL_GROUP
- width -= (pg_margin_left + pg_margin_right);
- height -= (pg_margin_top + pg_margin_bottom);
- #endif
-! gui_resize_shell( *width, *height );
-! gui_set_shellsize( FALSE, FALSE, RESIZE_BOTH );
- is_ignore_draw = FALSE;
-! PtEndFlux( gui.vimContainer );
-! PtContainerRelease( gui.vimContainer );
- break;
-
- default:
---- 385,401 ----
- break;
-
- case Ph_WM_RESIZE:
-! PtGetResource(gui.vimWindow, Pt_ARG_WIDTH, &width, 0);
-! PtGetResource(gui.vimWindow, Pt_ARG_HEIGHT, &height, 0);
- #ifdef USE_PANEL_GROUP
- width -= (pg_margin_left + pg_margin_right);
- height -= (pg_margin_top + pg_margin_bottom);
- #endif
-! gui_resize_shell(*width, *height);
-! gui_set_shellsize(FALSE, FALSE, RESIZE_BOTH);
- is_ignore_draw = FALSE;
-! PtEndFlux(gui.vimContainer);
-! PtContainerRelease(gui.vimContainer);
- break;
-
- default:
-***************
-*** 406,412 ****
- }
-
- static int
-! gui_ph_handle_scrollbar( PtWidget_t *widget, void *data, PtCallbackInfo_t *info )
- {
- PtScrollbarCallback_t *scroll;
- scrollbar_T *sb;
---- 406,412 ----
- }
-
- static int
-! gui_ph_handle_scrollbar(PtWidget_t *widget, void *data, PtCallbackInfo_t *info)
- {
- PtScrollbarCallback_t *scroll;
- scrollbar_T *sb;
-***************
-*** 415,424 ****
- scroll = info->cbdata;
-
- sb = (scrollbar_T *) data;
-! if( sb != NULL )
- {
- value = scroll->position;
-! switch( scroll->action )
- {
- case Pt_SCROLL_DRAGGED:
- dragging = TRUE;
---- 415,424 ----
- scroll = info->cbdata;
-
- sb = (scrollbar_T *) data;
-! if (sb != NULL)
- {
- value = scroll->position;
-! switch (scroll->action)
- {
- case Pt_SCROLL_DRAGGED:
- dragging = TRUE;
-***************
-*** 436,532 ****
- }
-
- static int
-! gui_ph_handle_keyboard( PtWidget_t *widget, void *data, PtCallbackInfo_t *info )
- {
- PhKeyEvent_t *key;
- unsigned char string[6];
- int len, i;
- int ch, modifiers;
-
-! key = PhGetData( info->event );
-
- ch = modifiers = len = 0;
-
-! if( p_mh )
-! gui_mch_mousehide( MOUSE_HIDE );
-
- /* We're a good lil photon program, aren't we? yes we are, yeess wee arrr */
-! if( key->key_flags & Pk_KF_Compose )
- {
- return Pt_CONTINUE;
- }
-
-! if( (key->key_flags & Pk_KF_Cap_Valid) &&
-! PkIsKeyDown( key->key_flags ) )
- {
- #ifdef FEAT_MENU
- /*
- * Only show the menu if the Alt key is down, and the Shift & Ctrl
- * keys aren't down, as well as the other conditions
- */
-! if( ( ( key->key_mods & Pk_KM_Alt ) &&
-! !( key->key_mods & Pk_KM_Shift ) &&
-! !( key->key_mods & Pk_KM_Ctrl ) ) &&
- gui.menu_is_active &&
-! ( *p_wak == 'y' ||
-! ( *p_wak == 'm' &&
-! gui_is_menu_shortcut( key->key_cap ) ) ) )
- {
- /* Fallthrough and let photon look for the hotkey */
- return Pt_CONTINUE;
- }
- #endif
-
-! for( i = 0; special_keys[i].key_sym != 0; i++ )
- {
-! if( special_keys[i].key_sym == key->key_cap )
- {
- len = 0;
-! if( special_keys[i].vim_code1 == NUL )
- ch = special_keys[i].vim_code0;
- else
- {
- /* Detect if a keypad number key has been pressed
- * and change the key if Num Lock is on */
-! if( key->key_cap >= Pk_KP_Enter && key->key_cap <= Pk_KP_9
-! && ( key->key_mods & Pk_KM_Num_Lock ) )
- {
- /* FIXME: For now, just map the key to a ascii value
- * (see <photon/PkKeyDef.h>) */
- ch = key->key_cap - 0xf080;
- }
- else
-! ch = TO_SPECIAL( special_keys[i].vim_code0,
-! special_keys[i].vim_code1 );
- }
- break;
- }
- }
-
-! if( key->key_mods & Pk_KM_Ctrl )
- modifiers |= MOD_MASK_CTRL;
-! if( key->key_mods & Pk_KM_Alt )
- modifiers |= MOD_MASK_ALT;
-! if( key->key_mods & Pk_KM_Shift )
- modifiers |= MOD_MASK_SHIFT;
-
- /* Is this not a special key? */
-! if( special_keys[i].key_sym == 0 )
- {
-! ch = PhTo8859_1( key );
-! if( ch == -1
- #ifdef FEAT_MBYTE
-! || ( enc_utf8 && ch > 127 )
- #endif
- )
- {
- #ifdef FEAT_MBYTE
-! len = PhKeyToMb( string, key );
-! if( len > 0 )
- {
- static char buf[6];
- int src_taken, dst_made;
-! if( enc_utf8 != TRUE )
- {
- PxTranslateFromUTF(
- charset_translate,
---- 436,532 ----
- }
-
- static int
-! gui_ph_handle_keyboard(PtWidget_t *widget, void *data, PtCallbackInfo_t *info)
- {
- PhKeyEvent_t *key;
- unsigned char string[6];
- int len, i;
- int ch, modifiers;
-
-! key = PhGetData(info->event);
-
- ch = modifiers = len = 0;
-
-! if (p_mh)
-! gui_mch_mousehide(MOUSE_HIDE);
-
- /* We're a good lil photon program, aren't we? yes we are, yeess wee arrr */
-! if (key->key_flags & Pk_KF_Compose)
- {
- return Pt_CONTINUE;
- }
-
-! if ((key->key_flags & Pk_KF_Cap_Valid) &&
-! PkIsKeyDown(key->key_flags))
- {
- #ifdef FEAT_MENU
- /*
- * Only show the menu if the Alt key is down, and the Shift & Ctrl
- * keys aren't down, as well as the other conditions
- */
-! if (((key->key_mods & Pk_KM_Alt) &&
-! !(key->key_mods & Pk_KM_Shift) &&
-! !(key->key_mods & Pk_KM_Ctrl)) &&
- gui.menu_is_active &&
-! (*p_wak == 'y' ||
-! (*p_wak == 'm' &&
-! gui_is_menu_shortcut(key->key_cap))))
- {
- /* Fallthrough and let photon look for the hotkey */
- return Pt_CONTINUE;
- }
- #endif
-
-! for(i = 0; special_keys[i].key_sym != 0; i++)
- {
-! if (special_keys[i].key_sym == key->key_cap)
- {
- len = 0;
-! if (special_keys[i].vim_code1 == NUL)
- ch = special_keys[i].vim_code0;
- else
- {
- /* Detect if a keypad number key has been pressed
- * and change the key if Num Lock is on */
-! if (key->key_cap >= Pk_KP_Enter && key->key_cap <= Pk_KP_9
-! && (key->key_mods & Pk_KM_Num_Lock))
- {
- /* FIXME: For now, just map the key to a ascii value
- * (see <photon/PkKeyDef.h>) */
- ch = key->key_cap - 0xf080;
- }
- else
-! ch = TO_SPECIAL(special_keys[i].vim_code0,
-! special_keys[i].vim_code1);
- }
- break;
- }
- }
-
-! if (key->key_mods & Pk_KM_Ctrl)
- modifiers |= MOD_MASK_CTRL;
-! if (key->key_mods & Pk_KM_Alt)
- modifiers |= MOD_MASK_ALT;
-! if (key->key_mods & Pk_KM_Shift)
- modifiers |= MOD_MASK_SHIFT;
-
- /* Is this not a special key? */
-! if (special_keys[i].key_sym == 0)
- {
-! ch = PhTo8859_1(key);
-! if (ch == -1
- #ifdef FEAT_MBYTE
-! || (enc_utf8 && ch > 127)
- #endif
- )
- {
- #ifdef FEAT_MBYTE
-! len = PhKeyToMb(string, key);
-! if (len > 0)
- {
- static char buf[6];
- int src_taken, dst_made;
-! if (enc_utf8 != TRUE)
- {
- PxTranslateFromUTF(
- charset_translate,
-***************
-*** 2931,2943 ****
- name_len = (int_u) ( mark - vim_font );
-
- *font_name = vim_strnsave( vim_font, name_len );
-! if( *font_name != NULL )
- {
-! if( mark != NULL )
- {
-! while( *mark != NUL && *mark++ == ':')
- {
-! switch( tolower( *mark++ ) )
- {
- case 'a': *font_flags |= PF_STYLE_ANTIALIAS; break;
- case 'b': *font_flags |= PF_STYLE_BOLD; break;
---- 2931,2943 ----
- name_len = (int_u) ( mark - vim_font );
-
- *font_name = vim_strnsave( vim_font, name_len );
-! if (*font_name != NULL)
- {
-! if (mark != NULL)
- {
-! while (*mark != NUL && *mark++ == ':')
- {
-! switch (tolower(*mark++))
- {
- case 'a': *font_flags |= PF_STYLE_ANTIALIAS; break;
- case 'b': *font_flags |= PF_STYLE_BOLD; break;
-***************
-*** 2946,2952 ****
- case 's':
- size = getdigits( &mark );
- /* Restrict the size to some vague limits */
-! if( size < 1 || size > 100 )
- size = 8;
-
- *font_size = size;
---- 2946,2952 ----
- case 's':
- size = getdigits( &mark );
- /* Restrict the size to some vague limits */
-! if (size < 1 || size > 100)
- size = 8;
-
- *font_size = size;
-***************
-*** 2973,2990 ****
- FontQueryInfo info;
- PhRect_t extent;
-
-! if( vim_font_name == NULL )
- {
- /* Default font */
- vim_font_name = "PC Terminal";
- }
-
-! if( STRCMP( vim_font_name, "*" ) == 0 )
- {
- font_tag = PtFontSelection( gui.vimWindow, NULL, NULL,
- "pcterm12", -1, PHFONT_FIXED, NULL );
-
-! if( font_tag == NULL )
- return FAIL;
-
- gui_mch_free_font( gui.norm_font );
---- 2973,2990 ----
- FontQueryInfo info;
- PhRect_t extent;
-
-! if (vim_font_name == NULL)
- {
- /* Default font */
- vim_font_name = "PC Terminal";
- }
-
-! if (STRCMP( vim_font_name, "*" ) == 0)
- {
- font_tag = PtFontSelection( gui.vimWindow, NULL, NULL,
- "pcterm12", -1, PHFONT_FIXED, NULL );
-
-! if (font_tag == NULL)
- return FAIL;
-
- gui_mch_free_font( gui.norm_font );
-***************
-*** 2995,3006 ****
- }
- else
- {
-! if( gui_ph_parse_font_name( vim_font_name, &font_name, &font_flags,
-! &font_size ) == FALSE )
- return FAIL;
-
- font_tag = gui_ph_get_font( font_name, font_flags, font_size, 0 );
-! if( font_tag == NULL )
- {
- vim_free( font_name );
- return FAIL;
---- 2995,3006 ----
- }
- else
- {
-! if (gui_ph_parse_font_name( vim_font_name, &font_name, &font_flags,
-! &font_size ) == FALSE)
- return FAIL;
-
- font_tag = gui_ph_get_font( font_name, font_flags, font_size, 0 );
-! if (font_tag == NULL)
- {
- vim_free( font_name );
- return FAIL;
-***************
-*** 3053,3069 ****
- int_u font_size = 12;
- int_u font_flags = 0;
-
-! if( gui_ph_parse_font_name( vim_font_name, &font_name, &font_flags,
-! &font_size ) != FALSE )
- {
- font_tag = gui_ph_get_font( font_name, font_flags, font_size, -1 );
- vim_free( font_name );
-
-! if( font_tag != NULL )
- return (GuiFont)font_tag;
- }
-
-! if( report_error )
- EMSG2(e_font, vim_font_name );
-
- return FAIL;
---- 3053,3069 ----
- int_u font_size = 12;
- int_u font_flags = 0;
-
-! if (gui_ph_parse_font_name( vim_font_name, &font_name, &font_flags,
-! &font_size ) != FALSE)
- {
- font_tag = gui_ph_get_font( font_name, font_flags, font_size, -1 );
- vim_free( font_name );
-
-! if (font_tag != NULL)
- return (GuiFont)font_tag;
- }
-
-! if (report_error)
- EMSG2(e_font, vim_font_name );
-
- return FAIL;
-*** ../vim-7.3.270/src/version.c 2011-08-10 12:10:55.000000000 +0200
---- src/version.c 2011-08-10 12:17:06.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 271,
- /**/
-
---
-An indication you must be a manager:
-You believe you never have any problems in your life, just
-"issues" and "improvement opportunities".
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.272
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.272
-Problem: ":put =list" does not add an empty line for a trailing empty
- item.
-Solution: Add a trailing NL when turning a list into a string.
-Files: src/eval.c
-
-
-*** ../vim-7.3.271/src/eval.c 2011-07-15 21:24:06.000000000 +0200
---- src/eval.c 2011-08-10 12:31:51.000000000 +0200
-***************
-*** 1357,1363 ****
---- 1357,1367 ----
- {
- ga_init2(&ga, (int)sizeof(char), 80);
- if (tv.vval.v_list != NULL)
-+ {
- list_join(&ga, tv.vval.v_list, (char_u *)"\n", TRUE, 0);
-+ if (tv.vval.v_list->lv_len > 0)
-+ ga_append(&ga, NL);
-+ }
- ga_append(&ga, NUL);
- retval = (char_u *)ga.ga_data;
- }
-*** ../vim-7.3.271/src/version.c 2011-08-10 12:19:00.000000000 +0200
---- src/version.c 2011-08-10 12:36:41.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 272,
- /**/
-
---
-Lose weight, NEVER Diet again with
- The "Invisible Weight Loss Patch"
- (spam e-mail)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.273
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.273
-Problem: A BOM in an error file is seen as text. (Aleksey Baibarin)
-Solution: Remove the BOM from the text before evaluating. (idea by Christian
- Brabandt)
-Files: src/quickfix.c, src/mbyte.c, src/proto/mbyte.pro,
- src/testdir/test10.in
-
-
-*** ../vim-7.3.272/src/quickfix.c 2011-05-19 17:42:54.000000000 +0200
---- src/quickfix.c 2011-08-10 12:56:15.000000000 +0200
-***************
-*** 561,566 ****
---- 561,570 ----
- break;
-
- IObuff[CMDBUFFSIZE - 2] = NUL; /* for very long lines */
-+ #ifdef FEAT_MBYTE
-+ remove_bom(IObuff);
-+ #endif
-+
- if ((efmp = vim_strrchr(IObuff, '\n')) != NULL)
- *efmp = NUL;
- #ifdef USE_CRNL
-*** ../vim-7.3.272/src/mbyte.c 2011-07-27 18:25:40.000000000 +0200
---- src/mbyte.c 2011-08-10 13:11:56.000000000 +0200
-***************
-*** 838,843 ****
---- 838,864 ----
- }
-
- /*
-+ * Remove all BOM from "s" by moving remaining text.
-+ */
-+ void
-+ remove_bom(s)
-+ char_u *s;
-+ {
-+ if (enc_utf8)
-+ {
-+ char_u *p = s;
-+
-+ while ((p = vim_strbyte(p, 0xef)) != NULL)
-+ {
-+ if (p[1] == 0xbb && p[2] == 0xbf)
-+ STRMOVE(p, p + 3);
-+ else
-+ ++p;
-+ }
-+ }
-+ }
-+
-+ /*
- * Get class of pointer:
- * 0 for blank or NUL
- * 1 for punctuation
-*** ../vim-7.3.272/src/proto/mbyte.pro 2011-07-07 15:08:53.000000000 +0200
---- src/proto/mbyte.pro 2011-08-10 12:50:44.000000000 +0200
-***************
-*** 2,7 ****
---- 2,8 ----
- int enc_canon_props __ARGS((char_u *name));
- char_u *mb_init __ARGS((void));
- int bomb_size __ARGS((void));
-+ void remove_bom __ARGS((char_u *s));
- int mb_get_class __ARGS((char_u *p));
- int dbcs_class __ARGS((unsigned lead, unsigned trail));
- int latin_char2len __ARGS((int c));
-*** ../vim-7.3.272/src/testdir/test10.in 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test10.in 2011-08-10 13:01:46.000000000 +0200
-***************
-*** 2,7 ****
---- 2,10 ----
-
- STARTTEST
- :so small.vim
-+ :" Also test a BOM is ignored.
-+ :so mbyte.vim
-+ :set encoding=utf-8
- :/start of errorfile/,/end of errorfile/w! Xerrorfile
- :/start of testfile/,/end of testfile/w! Xtestfile
- :cf Xerrorfile
-***************
-*** 20,26 ****
-
- start of errorfile
- "Xtestfile", line 4.12: 1506-045 (S) Undeclared identifier fd_set.
-! "Xtestfile", line 7 col 19; this is an error
- gcc -c -DHAVE_CONFIsing-prototypes -I/usr/X11R6/include version.c
- Xtestfile:13: parse error before `asd'
- make: *** [vim] Error 1
---- 23,29 ----
-
- start of errorfile
- "Xtestfile", line 4.12: 1506-045 (S) Undeclared identifier fd_set.
-! "Xtestfile", line 7 col 19; this is an error
- gcc -c -DHAVE_CONFIsing-prototypes -I/usr/X11R6/include version.c
- Xtestfile:13: parse error before `asd'
- make: *** [vim] Error 1
-*** ../vim-7.3.272/src/version.c 2011-08-10 12:38:02.000000000 +0200
---- src/version.c 2011-08-10 13:14:35.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 273,
- /**/
-
---
-Compilation process failed successfully.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.274
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.274
-Problem: With concealed characters tabs do not have the right size.
-Solution: Use VCOL_HLC instead of vcol. (Eiichi Sato)
-Files: src/screen.c
-
-
-*** ../vim-7.3.273/src/screen.c 2011-03-22 13:29:20.000000000 +0100
---- src/screen.c 2011-08-10 14:22:47.000000000 +0200
-***************
-*** 4252,4258 ****
- {
- /* tab amount depends on current column */
- n_extra = (int)wp->w_buffer->b_p_ts
-! - vcol % (int)wp->w_buffer->b_p_ts - 1;
- #ifdef FEAT_MBYTE
- mb_utf8 = FALSE; /* don't draw as UTF-8 */
- #endif
---- 4252,4258 ----
- {
- /* tab amount depends on current column */
- n_extra = (int)wp->w_buffer->b_p_ts
-! - VCOL_HLC % (int)wp->w_buffer->b_p_ts - 1;
- #ifdef FEAT_MBYTE
- mb_utf8 = FALSE; /* don't draw as UTF-8 */
- #endif
-*** ../vim-7.3.273/src/version.c 2011-08-10 13:21:30.000000000 +0200
---- src/version.c 2011-08-10 14:23:38.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 274,
- /**/
-
---
- Arthur pulls Pin out. The MONK blesses the grenade as ...
-ARTHUR: (quietly) One, two, five ...
-GALAHAD: Three, sir!
-ARTHUR: Three.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.275
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.275
-Problem: MS-Windows: When using a black background some screen updates
- cause the window to flicker.
-Solution: Add WS_CLIPCHILDREN to CreateWindow(). (René Aguirre)
-Files: src/gui_w32.c
-
-
-*** ../vim-7.3.274/src/gui_w32.c 2011-07-07 17:43:37.000000000 +0200
---- src/gui_w32.c 2011-08-10 14:40:58.000000000 +0200
-***************
-*** 1379,1385 ****
- s_hwnd = CreateWindowEx(
- WS_EX_MDICHILD,
- szVimWndClass, "Vim MSWindows GUI",
-! WS_OVERLAPPEDWINDOW | WS_CHILD | WS_CLIPSIBLINGS | 0xC000,
- gui_win_x == -1 ? CW_USEDEFAULT : gui_win_x,
- gui_win_y == -1 ? CW_USEDEFAULT : gui_win_y,
- 100, /* Any value will do */
---- 1379,1386 ----
- s_hwnd = CreateWindowEx(
- WS_EX_MDICHILD,
- szVimWndClass, "Vim MSWindows GUI",
-! WS_OVERLAPPEDWINDOW | WS_CHILD
-! | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | 0xC000,
- gui_win_x == -1 ? CW_USEDEFAULT : gui_win_x,
- gui_win_y == -1 ? CW_USEDEFAULT : gui_win_y,
- 100, /* Any value will do */
-***************
-*** 1410,1416 ****
- * titlebar, it will be reparented below. */
- s_hwnd = CreateWindow(
- szVimWndClass, "Vim MSWindows GUI",
-! win_socket_id == 0 ? WS_OVERLAPPEDWINDOW : WS_POPUP,
- gui_win_x == -1 ? CW_USEDEFAULT : gui_win_x,
- gui_win_y == -1 ? CW_USEDEFAULT : gui_win_y,
- 100, /* Any value will do */
---- 1411,1418 ----
- * titlebar, it will be reparented below. */
- s_hwnd = CreateWindow(
- szVimWndClass, "Vim MSWindows GUI",
-! (win_socket_id == 0 ? WS_OVERLAPPEDWINDOW : WS_POPUP)
-! | WS_CLIPSIBLINGS | WS_CLIPCHILDREN,
- gui_win_x == -1 ? CW_USEDEFAULT : gui_win_x,
- gui_win_y == -1 ? CW_USEDEFAULT : gui_win_y,
- 100, /* Any value will do */
-*** ../vim-7.3.274/src/version.c 2011-08-10 14:32:33.000000000 +0200
---- src/version.c 2011-08-10 14:39:14.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 275,
- /**/
-
---
-ARTHUR: What does it say?
-BROTHER MAYNARD: It reads ... "Here may be found the last words of Joseph of
- Aramathea." "He who is valorous and pure of heart may find
- the Holy Grail in the aaaaarrrrrrggghhh..."
-ARTHUR: What?
-BROTHER MAYNARD: "The Aaaaarrrrrrggghhh..."
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.276
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.276
-Problem: GvimExt sets $LANG in the wrong way.
-Solution: Save the environment and use it for gvim. (Yasuhiro Matsumoto)
-Files: src/GvimExt/gvimext.cpp
-
-
-*** ../vim-7.3.275/src/GvimExt/gvimext.cpp 2011-07-20 17:27:17.000000000 +0200
---- src/GvimExt/gvimext.cpp 2011-08-10 16:25:32.000000000 +0200
-***************
-*** 142,147 ****
---- 142,148 ----
- static int dyn_libintl_init(char *dir);
- static void dyn_libintl_end(void);
-
-+ static wchar_t *oldenv = NULL;
- static HINSTANCE hLibintlDLL = 0;
- static char *(*dyn_libintl_gettext)(const char *) = null_libintl_gettext;
- static char *(*dyn_libintl_textdomain)(const char *) = null_libintl_textdomain;
-***************
-*** 339,346 ****
- inc_cRefThisDLL()
- {
- #ifdef FEAT_GETTEXT
-! if (g_cRefThisDll == 0)
- dyn_gettext_load();
- #endif
- InterlockedIncrement((LPLONG)&g_cRefThisDll);
- }
---- 340,349 ----
- inc_cRefThisDLL()
- {
- #ifdef FEAT_GETTEXT
-! if (g_cRefThisDll == 0) {
- dyn_gettext_load();
-+ oldenv = GetEnvironmentStringsW();
-+ }
- #endif
- InterlockedIncrement((LPLONG)&g_cRefThisDll);
- }
-***************
-*** 349,356 ****
- dec_cRefThisDLL()
- {
- #ifdef FEAT_GETTEXT
-! if (InterlockedDecrement((LPLONG)&g_cRefThisDll) == 0)
- dyn_gettext_free();
- #else
- InterlockedDecrement((LPLONG)&g_cRefThisDll);
- #endif
---- 352,364 ----
- dec_cRefThisDLL()
- {
- #ifdef FEAT_GETTEXT
-! if (InterlockedDecrement((LPLONG)&g_cRefThisDll) == 0) {
- dyn_gettext_free();
-+ if (oldenv != NULL) {
-+ FreeEnvironmentStringsW(oldenv);
-+ oldenv = NULL;
-+ }
-+ }
- #else
- InterlockedDecrement((LPLONG)&g_cRefThisDll);
- #endif
-***************
-*** 905,912 ****
- NULL, // Process handle not inheritable.
- NULL, // Thread handle not inheritable.
- FALSE, // Set handle inheritance to FALSE.
-! 0, // No creation flags.
-! NULL, // Use parent's environment block.
- NULL, // Use parent's starting directory.
- &si, // Pointer to STARTUPINFO structure.
- &pi) // Pointer to PROCESS_INFORMATION structure.
---- 913,920 ----
- NULL, // Process handle not inheritable.
- NULL, // Thread handle not inheritable.
- FALSE, // Set handle inheritance to FALSE.
-! oldenv == NULL ? 0 : CREATE_UNICODE_ENVIRONMENT,
-! oldenv, // Use unmodified environment block.
- NULL, // Use parent's starting directory.
- &si, // Pointer to STARTUPINFO structure.
- &pi) // Pointer to PROCESS_INFORMATION structure.
-***************
-*** 987,994 ****
- NULL, // Process handle not inheritable.
- NULL, // Thread handle not inheritable.
- FALSE, // Set handle inheritance to FALSE.
-! 0, // No creation flags.
-! NULL, // Use parent's environment block.
- NULL, // Use parent's starting directory.
- &si, // Pointer to STARTUPINFO structure.
- &pi) // Pointer to PROCESS_INFORMATION structure.
---- 995,1002 ----
- NULL, // Process handle not inheritable.
- NULL, // Thread handle not inheritable.
- FALSE, // Set handle inheritance to FALSE.
-! oldenv == NULL ? 0 : CREATE_UNICODE_ENVIRONMENT,
-! oldenv, // Use unmodified environment block.
- NULL, // Use parent's starting directory.
- &si, // Pointer to STARTUPINFO structure.
- &pi) // Pointer to PROCESS_INFORMATION structure.
-*** ../vim-7.3.275/src/version.c 2011-08-10 15:56:24.000000000 +0200
---- src/version.c 2011-08-10 16:28:42.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 276,
- /**/
-
---
-User: I'm having problems with my text editor.
-Help desk: Which editor are you using?
-User: I don't know, but it's version VI (pronounced: 6).
-Help desk: Oh, then you should upgrade to version VIM (pronounced: 994).
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.277
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.277
-Problem: MS-Windows: some characters do not show in dialogs.
-Solution: Use the wide methods when available. (Yanwei Jia)
-Files: src/gui_w32.c, src/gui_w48.c, src/os_mswin.c, src/os_win32.c,
- src/os_win32.h
-
-
-*** ../vim-7.3.276/src/gui_w32.c 2011-08-10 15:56:24.000000000 +0200
---- src/gui_w32.c 2011-08-10 16:52:55.000000000 +0200
-***************
-*** 1270,1275 ****
---- 1270,1294 ----
- pGetMonitorInfo = (TGetMonitorInfo)GetProcAddress(user32_lib,
- "GetMonitorInfoA");
- }
-+
-+ #ifdef FEAT_MBYTE
-+ /* If the OS is Windows NT, use wide functions;
-+ * this enables common dialogs input unicode from IME. */
-+ if (os_version.dwPlatformId == VER_PLATFORM_WIN32_NT)
-+ {
-+ pDispatchMessage = DispatchMessageW;
-+ pGetMessage = GetMessageW;
-+ pIsDialogMessage = IsDialogMessageW;
-+ pPeekMessage = PeekMessageW;
-+ }
-+ else
-+ {
-+ pDispatchMessage = DispatchMessageA;
-+ pGetMessage = GetMessageA;
-+ pIsDialogMessage = IsDialogMessageA;
-+ pPeekMessage = PeekMessageA;
-+ }
-+ #endif
- }
-
- /*
-*** ../vim-7.3.276/src/gui_w48.c 2010-10-20 21:22:17.000000000 +0200
---- src/gui_w48.c 2011-08-10 16:49:39.000000000 +0200
-***************
-*** 390,396 ****
- KillTimer(NULL, idEvent);
-
- /* Eat spurious WM_TIMER messages */
-! while (PeekMessage(&msg, hwnd, WM_TIMER, WM_TIMER, PM_REMOVE))
- ;
-
- if (blink_state == BLINK_ON)
---- 390,396 ----
- KillTimer(NULL, idEvent);
-
- /* Eat spurious WM_TIMER messages */
-! while (pPeekMessage(&msg, hwnd, WM_TIMER, WM_TIMER, PM_REMOVE))
- ;
-
- if (blink_state == BLINK_ON)
-***************
-*** 418,424 ****
- {
- KillTimer(NULL, blink_timer);
- /* Eat spurious WM_TIMER messages */
-! while (PeekMessage(&msg, s_hwnd, WM_TIMER, WM_TIMER, PM_REMOVE))
- ;
- blink_timer = 0;
- }
---- 418,424 ----
- {
- KillTimer(NULL, blink_timer);
- /* Eat spurious WM_TIMER messages */
-! while (pPeekMessage(&msg, s_hwnd, WM_TIMER, WM_TIMER, PM_REMOVE))
- ;
- blink_timer = 0;
- }
-***************
-*** 476,482 ****
- s_timed_out = TRUE;
-
- /* Eat spurious WM_TIMER messages */
-! while (PeekMessage(&msg, hwnd, WM_TIMER, WM_TIMER, PM_REMOVE))
- ;
- if (idEvent == s_wait_timer)
- s_wait_timer = 0;
---- 476,482 ----
- s_timed_out = TRUE;
-
- /* Eat spurious WM_TIMER messages */
-! while (pPeekMessage(&msg, hwnd, WM_TIMER, WM_TIMER, PM_REMOVE))
- ;
- if (idEvent == s_wait_timer)
- s_wait_timer = 0;
-***************
-*** 1707,1713 ****
- static char_u k10[] = {K_SPECIAL, 'k', ';', 0};
- #endif
-
-! GetMessage(&msg, NULL, 0, 0);
-
- #ifdef FEAT_OLE
- /* Look after OLE Automation commands */
---- 1707,1713 ----
- static char_u k10[] = {K_SPECIAL, 'k', ';', 0};
- #endif
-
-! pGetMessage(&msg, NULL, 0, 0);
-
- #ifdef FEAT_OLE
- /* Look after OLE Automation commands */
-***************
-*** 1718,1724 ****
- {
- /* Message can't be ours, forward it. Fixes problem with Ultramon
- * 3.0.4 */
-! DispatchMessage(&msg);
- }
- else
- {
---- 1718,1724 ----
- {
- /* Message can't be ours, forward it. Fixes problem with Ultramon
- * 3.0.4 */
-! pDispatchMessage(&msg);
- }
- else
- {
-***************
-*** 1749,1762 ****
- if (msg.message == WM_USER)
- {
- MyTranslateMessage(&msg);
-! DispatchMessage(&msg);
- return;
- }
- #endif
-
- #ifdef MSWIN_FIND_REPLACE
- /* Don't process messages used by the dialog */
-! if (s_findrep_hwnd != NULL && IsDialogMessage(s_findrep_hwnd, &msg))
- {
- HandleMouseHide(msg.message, msg.lParam);
- return;
---- 1749,1762 ----
- if (msg.message == WM_USER)
- {
- MyTranslateMessage(&msg);
-! pDispatchMessage(&msg);
- return;
- }
- #endif
-
- #ifdef MSWIN_FIND_REPLACE
- /* Don't process messages used by the dialog */
-! if (s_findrep_hwnd != NULL && pIsDialogMessage(s_findrep_hwnd, &msg))
- {
- HandleMouseHide(msg.message, msg.lParam);
- return;
-***************
-*** 1928,1934 ****
- if (vk != VK_F10 || check_map(k10, State, FALSE, TRUE, FALSE,
- NULL, NULL) == NULL)
- #endif
-! DispatchMessage(&msg);
- }
-
- /*
---- 1928,1934 ----
- if (vk != VK_F10 || check_map(k10, State, FALSE, TRUE, FALSE,
- NULL, NULL) == NULL)
- #endif
-! pDispatchMessage(&msg);
- }
-
- /*
-***************
-*** 1943,1949 ****
- MSG msg;
-
- if (!s_busy_processing)
-! while (PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE)
- && !vim_is_input_buf_full())
- process_message();
- }
---- 1943,1949 ----
- MSG msg;
-
- if (!s_busy_processing)
-! while (pPeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE)
- && !vim_is_input_buf_full())
- process_message();
- }
-***************
-*** 2019,2025 ****
- KillTimer(NULL, s_wait_timer);
-
- /* Eat spurious WM_TIMER messages */
-! while (PeekMessage(&msg, s_hwnd, WM_TIMER, WM_TIMER, PM_REMOVE))
- ;
- s_wait_timer = 0;
- }
---- 2019,2025 ----
- KillTimer(NULL, s_wait_timer);
-
- /* Eat spurious WM_TIMER messages */
-! while (pPeekMessage(&msg, s_hwnd, WM_TIMER, WM_TIMER, PM_REMOVE))
- ;
- s_wait_timer = 0;
- }
-*** ../vim-7.3.276/src/os_mswin.c 2011-06-19 01:30:01.000000000 +0200
---- src/os_mswin.c 2011-08-10 16:45:24.000000000 +0200
-***************
-*** 1856,1867 ****
- {
- MSG msg;
-
-! while (!*bUserAbort && PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
- {
-! if (!hDlgPrint || !IsDialogMessage(hDlgPrint, &msg))
- {
- TranslateMessage(&msg);
-! DispatchMessage(&msg);
- }
- }
- return !*bUserAbort;
---- 1856,1867 ----
- {
- MSG msg;
-
-! while (!*bUserAbort && pPeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
- {
-! if (!hDlgPrint || !pIsDialogMessage(hDlgPrint, &msg))
- {
- TranslateMessage(&msg);
-! pDispatchMessage(&msg);
- }
- }
- return !*bUserAbort;
-***************
-*** 3132,3141 ****
- {
- MSG msg;
-
-! while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
- {
- TranslateMessage(&msg);
-! DispatchMessage(&msg);
- }
- }
-
---- 3132,3141 ----
- {
- MSG msg;
-
-! while (pPeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
- {
- TranslateMessage(&msg);
-! pDispatchMessage(&msg);
- }
- }
-
-*** ../vim-7.3.276/src/os_win32.c 2011-07-07 16:20:45.000000000 +0200
---- src/os_win32.c 2011-08-10 16:54:50.000000000 +0200
-***************
-*** 152,157 ****
---- 152,165 ----
- # define wcsicmp(a, b) wcscmpi((a), (b))
- #endif
-
-+ /* Enable common dialogs input unicode from IME if posible. */
-+ #ifdef FEAT_MBYTE
-+ LRESULT (WINAPI *pDispatchMessage)(LPMSG) = DispatchMessage;
-+ BOOL (WINAPI *pGetMessage)(LPMSG, HWND, UINT, UINT) = GetMessage;
-+ BOOL (WINAPI *pIsDialogMessage)(HWND, LPMSG) = IsDialogMessage;
-+ BOOL (WINAPI *pPeekMessage)(LPMSG, HWND, UINT, UINT, UINT) = PeekMessage;
-+ #endif
-+
- #ifndef FEAT_GUI_W32
- /* Win32 Console handles for input and output */
- static HANDLE g_hConIn = INVALID_HANDLE_VALUE;
-***************
-*** 3284,3293 ****
- {
- MSG msg;
-
-! if (PeekMessage(&msg, (HWND)NULL, 0, 0, PM_REMOVE))
- {
- TranslateMessage(&msg);
-! DispatchMessage(&msg);
- }
- if (WaitForSingleObject(pi.hProcess, delay) != WAIT_TIMEOUT)
- break;
---- 3292,3301 ----
- {
- MSG msg;
-
-! if (pPeekMessage(&msg, (HWND)NULL, 0, 0, PM_REMOVE))
- {
- TranslateMessage(&msg);
-! pDispatchMessage(&msg);
- }
- if (WaitForSingleObject(pi.hProcess, delay) != WAIT_TIMEOUT)
- break;
-*** ../vim-7.3.276/src/os_win32.h 2011-05-05 18:31:54.000000000 +0200
---- src/os_win32.h 2011-08-10 16:51:58.000000000 +0200
-***************
-*** 193,195 ****
---- 193,209 ----
- #else
- # define vim_mkdir(x, y) mch_mkdir(x)
- #endif
-+
-+ /* Enable common dialogs input unicode from IME if posible. */
-+ #ifdef FEAT_MBYTE
-+ /* The variables are defined in os_win32.c. */
-+ extern LRESULT (WINAPI *pDispatchMessage)(LPMSG);
-+ extern BOOL (WINAPI *pGetMessage)(LPMSG, HWND, UINT, UINT);
-+ extern BOOL (WINAPI *pIsDialogMessage)(HWND, LPMSG);
-+ extern BOOL (WINAPI *pPeekMessage)(LPMSG, HWND, UINT, UINT, UINT);
-+ #else
-+ # define pDispatchMessage DispatchMessage
-+ # define pGetMessage GetMessage
-+ # define pIsDialogMessage IsDialogMessage
-+ # define pPeekMessage PeekMessage
-+ #endif
-*** ../vim-7.3.276/src/version.c 2011-08-10 16:31:18.000000000 +0200
---- src/version.c 2011-08-10 17:06:55.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 277,
- /**/
-
---
-Veni, Vidi, VW -- I came, I saw, I drove around in a little car.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.278
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.278
-Problem: Passing the file name to open in VisVim doesn't work.
-Solution: Adjust the index and check for end of buffer. (Jiri Sedlak)
-Files: src/VisVim/Commands.cpp
-
-
-*** ../vim-7.3.277/src/VisVim/Commands.cpp 2010-08-15 21:57:27.000000000 +0200
---- src/VisVim/Commands.cpp 2011-08-10 17:21:27.000000000 +0200
-***************
-*** 549,555 ****
- if (g_bNewTabs)
- {
- sprintf(VimCmd, ":tab drop ");
-! s = VimCmd + 11;
- }
- else
- {
---- 549,555 ----
- if (g_bNewTabs)
- {
- sprintf(VimCmd, ":tab drop ");
-! s = VimCmd + 10;
- }
- else
- {
-***************
-*** 557,564 ****
- s = VimCmd + 6;
- }
- sprintf(FileNameTmp, "%S", (char *)FileName);
-! for (p = FileNameTmp; *p != '\0' && s < FileNameTmp + MAX_OLE_STR - 4;
-! ++p)
- if (*p == '\\')
- *s++ = '/';
- else
---- 557,563 ----
- s = VimCmd + 6;
- }
- sprintf(FileNameTmp, "%S", (char *)FileName);
-! for (p = FileNameTmp; *p != '\0' && s < VimCmd + MAX_OLE_STR - 4; ++p)
- if (*p == '\\')
- *s++ = '/';
- else
-*** ../vim-7.3.277/src/version.c 2011-08-10 17:07:56.000000000 +0200
---- src/version.c 2011-08-10 17:25:20.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 278,
- /**/
-
---
-ARTHUR: But if he was dying, he wouldn't bother to carve
- "Aaaaarrrrrrggghhh". He'd just say it.
-BROTHER MAYNARD: It's down there carved in stone.
-GALAHAD: Perhaps he was dictating.
- "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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.279
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.279
-Problem: With GTK, when gvim is full-screen and a tab is opened and using a
- specific monitor configuration the window is too big.
-Solution: Adjust the window size like on MS-Windows. (Yukihiro Nakadaira)
-Files: src/gui.c, src/gui_gtk_x11.c, src/proto/gui_gtk_x11.pro
-
-
-*** ../vim-7.3.278/src/gui.c 2011-06-26 04:48:56.000000000 +0200
---- src/gui.c 2011-08-10 17:40:31.000000000 +0200
-***************
-*** 1407,1413 ****
- if (!gui.shell_created)
- return;
-
-! #ifdef MSWIN
- /* If not setting to a user specified size and maximized, calculate the
- * number of characters that fit in the maximized window. */
- if (!mustset && gui_mch_maximized())
---- 1407,1413 ----
- if (!gui.shell_created)
- return;
-
-! #if defined(MSWIN) || defined(FEAT_GUI_GTK)
- /* If not setting to a user specified size and maximized, calculate the
- * number of characters that fit in the maximized window. */
- if (!mustset && gui_mch_maximized())
-*** ../vim-7.3.278/src/gui_gtk_x11.c 2011-06-26 04:48:56.000000000 +0200
---- src/gui_gtk_x11.c 2011-08-10 17:42:19.000000000 +0200
-***************
-*** 3900,3905 ****
---- 3900,3920 ----
- }
-
- /*
-+ * Called when the font changed while the window is maximized. Compute the
-+ * new Rows and Columns. This is like resizing the window.
-+ */
-+ void
-+ gui_mch_newfont()
-+ {
-+ int w, h;
-+
-+ gtk_window_get_size(GTK_WINDOW(gui.mainwin), &w, &h);
-+ w -= get_menu_tool_width();
-+ h -= get_menu_tool_height();
-+ gui_resize_shell(w, h);
-+ }
-+
-+ /*
- * Set the windows size.
- */
- void
-***************
-*** 4409,4422 ****
-
- if (gui_mch_maximized())
- {
-- int w, h;
--
- /* Update lines and columns in accordance with the new font, keep the
- * window maximized. */
-! gtk_window_get_size(GTK_WINDOW(gui.mainwin), &w, &h);
-! w -= get_menu_tool_width();
-! h -= get_menu_tool_height();
-! gui_resize_shell(w, h);
- }
- else
- {
---- 4424,4432 ----
-
- if (gui_mch_maximized())
- {
- /* Update lines and columns in accordance with the new font, keep the
- * window maximized. */
-! gui_mch_newfont();
- }
- else
- {
-*** ../vim-7.3.278/src/proto/gui_gtk_x11.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/gui_gtk_x11.pro 2011-08-10 17:42:29.000000000 +0200
-***************
-*** 20,25 ****
---- 20,26 ----
- void gui_mch_set_winpos __ARGS((int x, int y));
- int gui_mch_maximized __ARGS((void));
- void gui_mch_unmaximize __ARGS((void));
-+ void gui_mch_newfont __ARGS((void));
- void gui_mch_set_shellsize __ARGS((int width, int height, int min_width, int min_height, int base_width, int base_height, int direction));
- void gui_mch_get_screen_dimensions __ARGS((int *screen_w, int *screen_h));
- void gui_mch_settitle __ARGS((char_u *title, char_u *icon));
-*** ../vim-7.3.278/src/version.c 2011-08-10 17:25:48.000000000 +0200
---- src/version.c 2011-08-10 17:43:22.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 279,
- /**/
-
---
-LAUNCELOT: Isn't there a St. Aaaaarrrrrrggghhh's in Cornwall?
-ARTHUR: No, that's Saint Ives.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.280
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.280
-Problem: ":lmake" does not update the quickfix window title.
-Solution: Update the title. (Lech Lorens)
-Files: src/quickfix.c, src/testdir/test10.in, src/testdir/test10.ok
-
-
-*** ../vim-7.3.279/src/quickfix.c 2011-08-10 13:21:30.000000000 +0200
---- src/quickfix.c 2011-08-10 18:09:19.000000000 +0200
-***************
-*** 126,131 ****
---- 126,132 ----
- static win_T *qf_find_win __ARGS((qf_info_T *qi));
- static buf_T *qf_find_buf __ARGS((qf_info_T *qi));
- static void qf_update_buffer __ARGS((qf_info_T *qi));
-+ static void qf_set_title __ARGS((qf_info_T *qi));
- static void qf_fill_buffer __ARGS((qf_info_T *qi));
- #endif
- static char_u *get_mef_name __ARGS((void));
-***************
-*** 2388,2395 ****
- qf_fill_buffer(qi);
-
- if (qi->qf_lists[qi->qf_curlist].qf_title != NULL)
-! set_internal_string_var((char_u *)"w:quickfix_title",
-! qi->qf_lists[qi->qf_curlist].qf_title);
-
- curwin->w_cursor.lnum = qi->qf_lists[qi->qf_curlist].qf_index;
- curwin->w_cursor.col = 0;
---- 2389,2395 ----
- qf_fill_buffer(qi);
-
- if (qi->qf_lists[qi->qf_curlist].qf_title != NULL)
-! qf_set_title(qi);
-
- curwin->w_cursor.lnum = qi->qf_lists[qi->qf_curlist].qf_index;
- curwin->w_cursor.col = 0;
-***************
-*** 2526,2531 ****
---- 2526,2533 ----
- qf_info_T *qi;
- {
- buf_T *buf;
-+ win_T *win;
-+ win_T *curwin_save;
- aco_save_T aco;
-
- /* Check if a buffer for the quickfix list exists. Update it. */
-***************
-*** 2537,2542 ****
---- 2539,2554 ----
-
- qf_fill_buffer(qi);
-
-+ if (qi->qf_lists[qi->qf_curlist].qf_title != NULL
-+ && (win = qf_find_win(qi)) != NULL)
-+ {
-+ curwin_save = curwin;
-+ curwin = win;
-+ qf_set_title(qi);
-+ curwin = curwin_save;
-+
-+ }
-+
- /* restore curwin/curbuf and a few other things */
- aucmd_restbuf(&aco);
-
-***************
-*** 2544,2549 ****
---- 2556,2569 ----
- }
- }
-
-+ static void
-+ qf_set_title(qi)
-+ qf_info_T *qi;
-+ {
-+ set_internal_string_var((char_u *)"w:quickfix_title",
-+ qi->qf_lists[qi->qf_curlist].qf_title);
-+ }
-+
- /*
- * Fill current buffer with quickfix errors, replacing any previous contents.
- * curbuf must be the quickfix buffer!
-*** ../vim-7.3.279/src/testdir/test10.in 2011-08-10 13:21:30.000000000 +0200
---- src/testdir/test10.in 2011-08-10 18:28:31.000000000 +0200
-***************
-*** 5,13 ****
- :" Also test a BOM is ignored.
- :so mbyte.vim
- :set encoding=utf-8
-! :/start of errorfile/,/end of errorfile/w! Xerrorfile
- :/start of testfile/,/end of testfile/w! Xtestfile
-! :cf Xerrorfile
- rA
- :cn
- rB
---- 5,20 ----
- :" Also test a BOM is ignored.
- :so mbyte.vim
- :set encoding=utf-8
-! :7/start of errorfile/,/end of errorfile/w! Xerrorfile1
-! :7/start of errorfile/,/end of errorfile/-1w! Xerrorfile2
- :/start of testfile/,/end of testfile/w! Xtestfile
-! :cf Xerrorfile2
-! :clast
-! :copen
-! :let a=w:quickfix_title
-! :wincmd p
-! gR=a 
-! :cf Xerrorfile1
- rA
- :cn
- rB
-***************
-*** 17,22 ****
---- 24,34 ----
- rD
- :cn
- rE
-+ :cn
-+ :wincmd w
-+ :let a=w:quickfix_title
-+ :wincmd p
-+ gR=a 
- :w! test.out " Write contents of this file
- :qa!
- ENDTEST
-***************
-*** 33,38 ****
---- 45,52 ----
- "Xtestfile", linenr 19: yet another problem
-
- Does anyone know what is the problem and how to correction it?
-+ "Xtestfile", line 21 col 9: What is the title of the quickfix window?
-+ "Xtestfile", line 22 col 9: What is the title of the quickfix window?
- end of errorfile
-
- start of testfile
-*** ../vim-7.3.279/src/testdir/test10.ok 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test10.ok 2011-08-10 18:03:53.000000000 +0200
-***************
-*** 18,23 ****
- line 18 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
- Eine 19 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
- line 20 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-! line 21 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-! line 22 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
- end of testfile
---- 18,23 ----
- line 18 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
- Eine 19 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
- line 20 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-! line 21 :cf Xerrorfile1xxxxxxxxxxxxxxx
-! line 22 :cf Xerrorfile2xxxxxxxxxxxxxxx
- end of testfile
-*** ../vim-7.3.279/src/version.c 2011-08-10 17:44:41.000000000 +0200
---- src/version.c 2011-08-10 18:35:52.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 280,
- /**/
-
---
-"When I die, I want a tombstone that says "GAME OVER" - Ton Richters
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.281
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.281
-Problem: After using "expand('%:8')" the buffer name is changed.
-Solution: Make a copy of the file name before shortening it.
-Files: src/eval.c
-
-
-*** ../vim-7.3.280/src/eval.c 2011-08-10 12:38:02.000000000 +0200
---- src/eval.c 2011-08-17 15:12:39.000000000 +0200
-***************
-*** 23205,23210 ****
---- 23205,23211 ----
- int c;
- int has_fullname = 0;
- #ifdef WIN3264
-+ char_u *fname_start = *fnamep;
- int has_shortname = 0;
- #endif
-
-***************
-*** 23379,23402 ****
- }
-
- #ifdef WIN3264
-! /* Check shortname after we have done 'heads' and before we do 'tails'
- */
- if (has_shortname)
- {
-! pbuf = NULL;
-! /* Copy the string if it is shortened by :h */
-! if (*fnamelen < (int)STRLEN(*fnamep))
- {
- p = vim_strnsave(*fnamep, *fnamelen);
-! if (p == 0)
- return -1;
- vim_free(*bufp);
- *bufp = *fnamep = p;
- }
-
- /* Split into two implementations - makes it easier. First is where
-! * there isn't a full name already, second is where there is.
-! */
- if (!has_fullname && !vim_isAbsName(*fnamep))
- {
- if (shortpath_for_partial(fnamep, bufp, fnamelen) == FAIL)
---- 23380,23404 ----
- }
-
- #ifdef WIN3264
-! /*
-! * Handle ":8" after we have done 'heads' and before we do 'tails'.
- */
- if (has_shortname)
- {
-! /* Copy the string if it is shortened by :h and when it wasn't copied
-! * yet, because we are going to change it in place. Avoids changing
-! * the buffer name for "%:8". */
-! if (*fnamelen < (int)STRLEN(*fnamep) || *fnamep == fname_start)
- {
- p = vim_strnsave(*fnamep, *fnamelen);
-! if (p == NULL)
- return -1;
- vim_free(*bufp);
- *bufp = *fnamep = p;
- }
-
- /* Split into two implementations - makes it easier. First is where
-! * there isn't a full name already, second is where there is. */
- if (!has_fullname && !vim_isAbsName(*fnamep))
- {
- if (shortpath_for_partial(fnamep, bufp, fnamelen) == FAIL)
-***************
-*** 23404,23421 ****
- }
- else
- {
-! int l;
-
-! /* Simple case, already have the full-name
- * Nearly always shorter, so try first time. */
-- l = *fnamelen;
- if (get_short_pathname(fnamep, bufp, &l) == FAIL)
- return -1;
-
- if (l == 0)
- {
-! /* Couldn't find the filename.. search the paths.
-! */
- l = *fnamelen;
- if (shortpath_for_invalid_fname(fnamep, bufp, &l) == FAIL)
- return -1;
---- 23406,23421 ----
- }
- else
- {
-! int l = *fnamelen;
-
-! /* Simple case, already have the full-name.
- * Nearly always shorter, so try first time. */
- if (get_short_pathname(fnamep, bufp, &l) == FAIL)
- return -1;
-
- if (l == 0)
- {
-! /* Couldn't find the filename, search the paths. */
- l = *fnamelen;
- if (shortpath_for_invalid_fname(fnamep, bufp, &l) == FAIL)
- return -1;
-*** ../vim-7.3.280/src/version.c 2011-08-10 18:36:49.000000000 +0200
---- src/version.c 2011-08-17 15:21:41.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 281,
- /**/
-
---
-Kisses may last for as much as, but no more than, five minutes.
- [real standing law in Iowa, 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.282
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.282
-Problem: When using input() and :echo in a loop the displayed text is
- incorrect. (Benjamin Fritz)
-Solution: Only restore the cursor position when there is a command line.
- (Ben Schmidt)
-Files: src/ex_getln.c
-
-
-*** ../vim-7.3.281/src/ex_getln.c 2011-07-27 17:58:42.000000000 +0200
---- src/ex_getln.c 2011-08-17 15:57:39.000000000 +0200
-***************
-*** 1969,1976 ****
- # endif
- s = getcmdline(firstc, 1L, 0);
- restore_cmdline(&save_ccline);
-! /* Restore msg_col, the prompt from input() may have changed it. */
-! msg_col = msg_col_save;
-
- return s;
- }
---- 1969,1980 ----
- # endif
- s = getcmdline(firstc, 1L, 0);
- restore_cmdline(&save_ccline);
-! /* Restore msg_col, the prompt from input() may have changed it.
-! * But only if called recursively and the commandline is therefore being
-! * restored to an old one; if not, the input() prompt stays on the screen,
-! * so we need its modified msg_col left intact. */
-! if (ccline.cmdbuff != NULL)
-! msg_col = msg_col_save;
-
- return s;
- }
-*** ../vim-7.3.281/src/version.c 2011-08-17 15:23:16.000000000 +0200
---- src/version.c 2011-08-17 16:24:04.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 282,
- /**/
-
---
-Why don't cannibals eat clowns?
-Because they taste funny.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.283
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.283
-Problem: An expression mapping with a multi-byte character containing a
- 0x80 byte gets messed up. (ZyX)
-Solution: Unescape the expression before evaluating it (Yukihiro Nakadaira)
-Files: src/getchar.c
-
-
-*** ../vim-7.3.282/src/getchar.c 2011-04-28 17:30:05.000000000 +0200
---- src/getchar.c 2011-08-17 17:04:38.000000000 +0200
-***************
-*** 3262,3270 ****
- validate_maphash();
-
- /*
-! * find end of keys and skip CTRL-Vs (and backslashes) in it
- * Accept backslash like CTRL-V when 'cpoptions' does not contain 'B'.
-! * with :unmap white space is included in the keys, no argument possible
- */
- p = keys;
- do_backslash = (vim_strchr(p_cpo, CPO_BSLASH) == NULL);
---- 3262,3270 ----
- validate_maphash();
-
- /*
-! * Find end of keys and skip CTRL-Vs (and backslashes) in it.
- * Accept backslash like CTRL-V when 'cpoptions' does not contain 'B'.
-! * with :unmap white space is included in the keys, no argument possible.
- */
- p = keys;
- do_backslash = (vim_strchr(p_cpo, CPO_BSLASH) == NULL);
-***************
-*** 4506,4517 ****
---- 4506,4528 ----
- {
- char_u *res;
- char_u *p;
-+ char_u *expr;
- char_u *save_cmd;
- pos_T save_cursor;
-
-+ /* Remove escaping of CSI, because "str" is in a format to be used as
-+ * typeahead. */
-+ expr = vim_strsave(str);
-+ if (expr == NULL)
-+ return NULL;
-+ vim_unescape_csi(expr);
-+
- save_cmd = save_cmdline_alloc();
- if (save_cmd == NULL)
-+ {
-+ vim_free(expr);
- return NULL;
-+ }
-
- /* Forbid changing text or using ":normal" to avoid most of the bad side
- * effects. Also restore the cursor position. */
-***************
-*** 4521,4527 ****
- #endif
- set_vim_var_char(c); /* set v:char to the typed character */
- save_cursor = curwin->w_cursor;
-! p = eval_to_string(str, NULL, FALSE);
- --textlock;
- #ifdef FEAT_EX_EXTRA
- --ex_normal_lock;
---- 4532,4538 ----
- #endif
- set_vim_var_char(c); /* set v:char to the typed character */
- save_cursor = curwin->w_cursor;
-! p = eval_to_string(expr, NULL, FALSE);
- --textlock;
- #ifdef FEAT_EX_EXTRA
- --ex_normal_lock;
-***************
-*** 4529,4536 ****
---- 4540,4550 ----
- curwin->w_cursor = save_cursor;
-
- restore_cmdline_alloc(save_cmd);
-+ vim_free(expr);
-+
- if (p == NULL)
- return NULL;
-+ /* Escape CSI in the result to be able to use the string as typeahead. */
- res = vim_strsave_escape_csi(p);
- vim_free(p);
-
-*** ../vim-7.3.282/src/version.c 2011-08-17 16:25:43.000000000 +0200
---- src/version.c 2011-08-17 17:17:03.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 283,
- /**/
-
---
-bashian roulette:
-$ ((RANDOM%6)) || 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.284
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.284
-Problem: The str2special() function doesn't handle multi-byte characters
- properly.
-Solution: Recognize multi-byte characters. (partly by Vladimir Vichniakov)
-Files: src/getchar.c, src/message.c, src/misc2.c
-
-
-*** ../vim-7.3.283/src/getchar.c 2011-08-17 17:18:14.000000000 +0200
---- src/getchar.c 2011-08-17 20:11:58.000000000 +0200
-***************
-*** 3964,3970 ****
- if (*mp->m_str == NUL)
- msg_puts_attr((char_u *)"<Nop>", hl_attr(HLF_8));
- else
-! msg_outtrans_special(mp->m_str, FALSE);
- #ifdef FEAT_EVAL
- if (p_verbose > 0)
- last_set_msg(mp->m_script_ID);
---- 3964,3980 ----
- if (*mp->m_str == NUL)
- msg_puts_attr((char_u *)"<Nop>", hl_attr(HLF_8));
- else
-! {
-! /* Remove escaping of CSI, because "m_str" is in a format to be used
-! * as typeahead. */
-! char_u *s = vim_strsave(mp->m_str);
-! if (s != NULL)
-! {
-! vim_unescape_csi(s);
-! msg_outtrans_special(s, FALSE);
-! vim_free(s);
-! }
-! }
- #ifdef FEAT_EVAL
- if (p_verbose > 0)
- last_set_msg(mp->m_script_ID);
-*** ../vim-7.3.283/src/message.c 2011-03-22 13:07:19.000000000 +0100
---- src/message.c 2011-08-17 18:40:10.000000000 +0200
-***************
-*** 1547,1562 ****
- if (IS_SPECIAL(c) || modifiers) /* special key */
- special = TRUE;
- }
-- *sp = str + 1;
-
- #ifdef FEAT_MBYTE
-! /* For multi-byte characters check for an illegal byte. */
-! if (has_mbyte && MB_BYTE2LEN(*str) > (*mb_ptr2len)(str))
- {
-! transchar_nonprint(buf, c);
-! return buf;
- }
- #endif
-
- /* Make unprintable characters in <> form, also <M-Space> and <Tab>.
- * Use <Space> only for lhs of a mapping. */
---- 1547,1573 ----
- if (IS_SPECIAL(c) || modifiers) /* special key */
- special = TRUE;
- }
-
- #ifdef FEAT_MBYTE
-! if (has_mbyte && !IS_SPECIAL(c))
- {
-! int len = (*mb_ptr2len)(str);
-!
-! /* For multi-byte characters check for an illegal byte. */
-! if (has_mbyte && MB_BYTE2LEN(*str) > len)
-! {
-! transchar_nonprint(buf, c);
-! *sp = str + 1;
-! return buf;
-! }
-! /* Since 'special' is TRUE the multi-byte character 'c' will be
-! * processed by get_special_key_name() */
-! c = (*mb_ptr2char)(str);
-! *sp = str + len;
- }
-+ else
- #endif
-+ *sp = str + 1;
-
- /* Make unprintable characters in <> form, also <M-Space> and <Tab>.
- * Use <Space> only for lhs of a mapping. */
-*** ../vim-7.3.283/src/misc2.c 2011-07-27 17:31:42.000000000 +0200
---- src/misc2.c 2011-08-17 20:27:30.000000000 +0200
-***************
-*** 2754,2759 ****
---- 2754,2760 ----
- int bit;
- int key;
- unsigned long n;
-+ int l;
-
- src = *srcp;
- if (src[0] != '<')
-***************
-*** 2766,2773 ****
- if (*bp == '-')
- {
- last_dash = bp;
-! if (bp[1] != NUL && bp[2] == '>')
-! ++bp; /* anything accepted, like <C-?> */
- }
- if (bp[0] == 't' && bp[1] == '_' && bp[2] && bp[3])
- bp += 3; /* skip t_xx, xx may be '-' or '>' */
---- 2767,2783 ----
- if (*bp == '-')
- {
- last_dash = bp;
-! if (bp[1] != NUL)
-! {
-! #ifdef FEAT_MBYTE
-! if (has_mbyte)
-! l = mb_ptr2len(bp + 1);
-! else
-! #endif
-! l = 1;
-! if (bp[l + 1] == '>')
-! bp += l; /* anything accepted, like <C-?> */
-! }
- }
- if (bp[0] == 't' && bp[1] == '_' && bp[2] && bp[3])
- bp += 3; /* skip t_xx, xx may be '-' or '>' */
-***************
-*** 2777,2791 ****
- {
- end_of_name = bp + 1;
-
-- if (STRNICMP(src + 1, "char-", 5) == 0 && VIM_ISDIGIT(src[6]))
-- {
-- /* <Char-123> or <Char-033> or <Char-0x33> */
-- vim_str2nr(src + 6, NULL, NULL, TRUE, TRUE, NULL, &n);
-- *modp = 0;
-- *srcp = end_of_name;
-- return (int)n;
-- }
--
- /* Which modifiers are given? */
- modifiers = 0x0;
- for (bp = src + 1; bp < last_dash; bp++)
---- 2787,2792 ----
-***************
-*** 2804,2814 ****
- */
- if (bp >= last_dash)
- {
- /*
- * Modifier with single letter, or special key name.
- */
-! if (modifiers != 0 && last_dash[2] == '>')
-! key = last_dash[1];
- else
- {
- key = get_special_key_code(last_dash + 1);
---- 2805,2831 ----
- */
- if (bp >= last_dash)
- {
-+ if (STRNICMP(last_dash + 1, "char-", 5) == 0
-+ && VIM_ISDIGIT(last_dash[6]))
-+ {
-+ /* <Char-123> or <Char-033> or <Char-0x33> */
-+ vim_str2nr(last_dash + 6, NULL, NULL, TRUE, TRUE, NULL, &n);
-+ *modp = modifiers;
-+ *srcp = end_of_name;
-+ return (int)n;
-+ }
-+
- /*
- * Modifier with single letter, or special key name.
- */
-! #ifdef FEAT_MBYTE
-! if (has_mbyte)
-! l = mb_ptr2len(last_dash + 1);
-! else
-! #endif
-! l = 1;
-! if (modifiers != 0 && last_dash[l + 1] == '>')
-! key = PTR2CHAR(last_dash + 1);
- else
- {
- key = get_special_key_code(last_dash + 1);
-*** ../vim-7.3.283/src/version.c 2011-08-17 17:18:14.000000000 +0200
---- src/version.c 2011-08-17 20:27:47.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 284,
- /**/
-
---
-Snoring is prohibited unless all bedroom windows are closed and securely
-locked.
- [real standing law in Massachusetts, United States of America]
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.285
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.285 (after 7.3.284)
-Problem: Mapping <Char-123> no longer works.
-Solution: Properly check for "char-". Add a test for it.
-Files: src/misc2.c, src/testdir/test75.in, src/testdir/test75.ok
-
-
-*** ../vim-7.3.284/src/misc2.c 2011-08-17 20:33:18.000000000 +0200
---- src/misc2.c 2011-08-19 22:08:37.000000000 +0200
-***************
-*** 2781,2786 ****
---- 2781,2792 ----
- }
- if (bp[0] == 't' && bp[1] == '_' && bp[2] && bp[3])
- bp += 3; /* skip t_xx, xx may be '-' or '>' */
-+ else if (STRNICMP(bp, "char-", 5) == 0)
-+ {
-+ vim_str2nr(bp + 5, NULL, &l, TRUE, TRUE, NULL, NULL);
-+ bp += l + 5;
-+ break;
-+ }
- }
-
- if (*bp == '>') /* found matching '>' */
-***************
-*** 2810,2836 ****
- {
- /* <Char-123> or <Char-033> or <Char-0x33> */
- vim_str2nr(last_dash + 6, NULL, NULL, TRUE, TRUE, NULL, &n);
-! *modp = modifiers;
-! *srcp = end_of_name;
-! return (int)n;
- }
--
-- /*
-- * Modifier with single letter, or special key name.
-- */
-- #ifdef FEAT_MBYTE
-- if (has_mbyte)
-- l = mb_ptr2len(last_dash + 1);
-- else
-- #endif
-- l = 1;
-- if (modifiers != 0 && last_dash[l + 1] == '>')
-- key = PTR2CHAR(last_dash + 1);
- else
- {
-! key = get_special_key_code(last_dash + 1);
-! if (!keep_x_key)
-! key = handle_x_keys(key);
- }
-
- /*
---- 2816,2842 ----
- {
- /* <Char-123> or <Char-033> or <Char-0x33> */
- vim_str2nr(last_dash + 6, NULL, NULL, TRUE, TRUE, NULL, &n);
-! key = (int)n;
- }
- else
- {
-! /*
-! * Modifier with single letter, or special key name.
-! */
-! #ifdef FEAT_MBYTE
-! if (has_mbyte)
-! l = mb_ptr2len(last_dash + 1);
-! else
-! #endif
-! l = 1;
-! if (modifiers != 0 && last_dash[l + 1] == '>')
-! key = PTR2CHAR(last_dash + 1);
-! else
-! {
-! key = get_special_key_code(last_dash + 1);
-! if (!keep_x_key)
-! key = handle_x_keys(key);
-! }
- }
-
- /*
-*** ../vim-7.3.284/src/testdir/test75.in 2010-10-20 21:22:17.000000000 +0200
---- src/testdir/test75.in 2011-08-19 22:05:13.000000000 +0200
-***************
-*** 2,7 ****
---- 2,8 ----
-
- STARTTEST
- :so small.vim
-+ :set cpo-=<
- :" Test maparg() with a string result
- :map foo<C-V> is<F4>foo
- :vnoremap <script> <buffer> <expr> <silent> bar isbar
-***************
-*** 9,14 ****
---- 10,20 ----
- :call append('$', string(maparg('foo<C-V>', '', 0, 1)))
- :call append('$', string(maparg('bar', '', 0, 1)))
- :"
-+ :map abc x<char-114>x
-+ :call append('$', maparg('abc'))
-+ :map abc y<S-char-114>y
-+ :call append('$', maparg('abc'))
-+ :"
- :/^eof/+1,$w! test.out
- :qa!
- ENDTEST
-*** ../vim-7.3.284/src/testdir/test75.ok 2010-10-20 21:22:17.000000000 +0200
---- src/testdir/test75.ok 2011-08-19 21:53:26.000000000 +0200
-***************
-*** 1,3 ****
---- 1,5 ----
- 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}
-+ xrx
-+ yRy
-*** ../vim-7.3.284/src/version.c 2011-08-17 20:33:18.000000000 +0200
---- src/version.c 2011-08-19 22:15:22.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 285,
- /**/
-
-
---
-No man may purchase alcohol without written consent from his wife.
- [real standing law in Pennsylvania, 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.286
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.286
-Problem: Crash when using "zd" on a large number of folds. (Sam King)
-Solution: Recompute pointer after reallocating array. Move fewer entries
- when making room.
-Files: src/fold.c
-
-
-*** ../vim-7.3.285/src/fold.c 2010-08-15 21:57:27.000000000 +0200
---- src/fold.c 2011-08-26 16:03:56.000000000 +0200
-***************
-*** 1469,1479 ****
- }
- else
- {
-! /* move nested folds one level up, to overwrite the fold that is
- * deleted. */
- moved = fp->fd_nested.ga_len;
- if (ga_grow(gap, (int)(moved - 1)) == OK)
- {
- /* adjust fd_top and fd_flags for the moved folds */
- nfp = (fold_T *)fp->fd_nested.ga_data;
- for (i = 0; i < moved; ++i)
---- 1469,1482 ----
- }
- else
- {
-! /* Move nested folds one level up, to overwrite the fold that is
- * deleted. */
- moved = fp->fd_nested.ga_len;
- if (ga_grow(gap, (int)(moved - 1)) == OK)
- {
-+ /* Get "fp" again, the array may have been reallocated. */
-+ fp = (fold_T *)gap->ga_data + idx;
-+
- /* adjust fd_top and fd_flags for the moved folds */
- nfp = (fold_T *)fp->fd_nested.ga_data;
- for (i = 0; i < moved; ++i)
-***************
-*** 1486,1494 ****
- }
-
- /* move the existing folds down to make room */
-! if (idx < gap->ga_len)
- mch_memmove(fp + moved, fp + 1,
-! sizeof(fold_T) * (gap->ga_len - idx));
- /* move the contained folds one level up */
- mch_memmove(fp, nfp, (size_t)(sizeof(fold_T) * moved));
- vim_free(nfp);
---- 1489,1497 ----
- }
-
- /* move the existing folds down to make room */
-! if (idx + 1 < gap->ga_len)
- mch_memmove(fp + moved, fp + 1,
-! sizeof(fold_T) * (gap->ga_len - (idx + 1)));
- /* move the contained folds one level up */
- mch_memmove(fp, nfp, (size_t)(sizeof(fold_T) * moved));
- vim_free(nfp);
-*** ../vim-7.3.285/src/version.c 2011-08-19 22:28:58.000000000 +0200
---- src/version.c 2011-08-26 16:07:59.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 286,
- /**/
-
---
-To keep milk from turning sour: Keep it in the cow.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.287
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.287
-Problem: Can't compile with MSVC and tiny options.
-Solution: Move variables and #ifdefs. (Sergey Khorev)
-Files: src/os_win32.c
-
-
-*** ../vim-7.3.286/src/os_win32.c 2011-08-10 17:07:56.000000000 +0200
---- src/os_win32.c 2011-08-27 15:07:28.000000000 +0200
-***************
-*** 3419,3426 ****
- {
- DWORD availableBytes = 0;
- DWORD i;
-- int c;
-- char_u *p;
- int ret;
- DWORD len;
- DWORD toRead;
---- 3419,3424 ----
-***************
-*** 3479,3484 ****
---- 3477,3484 ----
- else if (has_mbyte)
- {
- int l;
-+ int c;
-+ char_u *p;
-
- len += *buffer_off;
- buffer[len] = NUL;
-***************
-*** 3558,3566 ****
- int noread_cnt = 0;
- garray_T ga;
- int delay = 1;
-- # ifdef FEAT_MBYTE
- DWORD buffer_off = 0; /* valid bytes in buffer[] */
-- # endif
-
- SECURITY_ATTRIBUTES saAttr;
-
---- 3558,3564 ----
-***************
-*** 3777,3790 ****
-
- if (WaitForSingleObject(pi.hProcess, delay) != WAIT_TIMEOUT)
- {
-! dump_pipe(options, g_hChildStd_OUT_Rd,
-! &ga, buffer, &buffer_off);
- break;
- }
-
- ++noread_cnt;
-! dump_pipe(options, g_hChildStd_OUT_Rd,
-! &ga, buffer, &buffer_off);
-
- /* We start waiting for a very short time and then increase it, so
- * that we respond quickly when the process is quick, and don't
---- 3775,3786 ----
-
- if (WaitForSingleObject(pi.hProcess, delay) != WAIT_TIMEOUT)
- {
-! dump_pipe(options, g_hChildStd_OUT_Rd, &ga, buffer, &buffer_off);
- break;
- }
-
- ++noread_cnt;
-! dump_pipe(options, g_hChildStd_OUT_Rd, &ga, buffer, &buffer_off);
-
- /* We start waiting for a very short time and then increase it, so
- * that we respond quickly when the process is quick, and don't
-*** ../vim-7.3.286/src/version.c 2011-08-26 16:12:55.000000000 +0200
---- src/version.c 2011-08-27 15:08:27.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 287,
- /**/
-
---
-SUPERIMPOSE "England AD 787". After a few more seconds we hear hoofbeats in
-the distance. They come slowly closer. Then out of the mist comes KING
-ARTHUR followed by a SERVANT who is banging two half coconuts together.
- "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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.288
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.288
-Problem: has('python') may give an error message for not being able to load
- the library after using python3.
-Solution: Only give the error when the verbose argument is true.
-Files: src/if_python.c, src/if_python3.c
-
-
-*** ../vim-7.3.287/src/if_python.c 2011-06-19 00:27:46.000000000 +0200
---- src/if_python.c 2011-08-21 17:03:52.000000000 +0200
-***************
-*** 368,374 ****
- * standard C extension libraries of one or both python versions. */
- if (python3_loaded())
- {
-! EMSG(_("E836: This Vim cannot execute :python after using :py3"));
- return FAIL;
- }
- #endif
---- 368,375 ----
- * standard C extension libraries of one or both python versions. */
- if (python3_loaded())
- {
-! if (verbose)
-! EMSG(_("E836: This Vim cannot execute :python after using :py3"));
- return FAIL;
- }
- #endif
-*** ../vim-7.3.287/src/if_python3.c 2011-07-15 15:54:39.000000000 +0200
---- src/if_python3.c 2011-08-21 17:05:19.000000000 +0200
-***************
-*** 367,373 ****
- * standard C extension libraries of one or both python versions. */
- if (python_loaded())
- {
-! EMSG(_("E837: This Vim cannot execute :py3 after using :python"));
- return FAIL;
- }
- # endif
---- 367,374 ----
- * standard C extension libraries of one or both python versions. */
- if (python_loaded())
- {
-! if (verbose)
-! EMSG(_("E837: This Vim cannot execute :py3 after using :python"));
- return FAIL;
- }
- # endif
-*** ../vim-7.3.287/src/version.c 2011-08-27 15:10:00.000000000 +0200
---- src/version.c 2011-08-28 15:59:11.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 288,
- /**/
-
---
-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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.289
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.289
-Problem: Complete function isn't called when the leader changed.
-Solution: Call ins_compl_restart() when the leader changed. (Taro Muraoka)
-Files: src/edit.c
-
-
-*** ../vim-7.3.288/src/edit.c 2011-05-19 17:25:36.000000000 +0200
---- src/edit.c 2011-08-28 15:53:47.000000000 +0200
-***************
-*** 3367,3372 ****
---- 3367,3381 ----
- ins_bytes(compl_leader + ins_compl_len());
- compl_used_match = FALSE;
-
-+ #ifdef FEAT_COMPL_FUNC
-+ /*
-+ * To call eval 'completefunc' when leader is changed, restart completion
-+ * every time.
-+ */
-+ if (ctrl_x_mode == CTRL_X_FUNCTION || ctrl_x_mode == CTRL_X_OMNI)
-+ ins_compl_restart();
-+ #endif
-+
- if (compl_started)
- ins_compl_set_original_text(compl_leader);
- else
-*** ../vim-7.3.288/src/version.c 2011-08-28 16:00:14.000000000 +0200
---- src/version.c 2011-08-28 16:01:22.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 289,
- /**/
-
---
-THEOREM: VI is perfect.
-PROOF: VI in roman numerals is 6. The natural numbers < 6 which divide 6 are
-1, 2, and 3. 1+2+3 = 6. So 6 is a perfect number. Therefore, VI is perfect.
-QED
- -- Arthur Tateishi
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.290
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.290
-Problem: When a BufWriteCmd autocommand resets 'modified' this doesn't
- change older buffer states to be marked as 'modified' like
- ":write" does. (Yukihiro Nakadaira)
-Solution: When the BufWriteCmd resets 'modified' then adjust the undo
- information like ":write" does.
-Files: src/fileio.c
-
-
-*** ../vim-7.3.289/src/fileio.c 2011-07-20 18:29:33.000000000 +0200
---- src/fileio.c 2011-08-29 21:49:27.000000000 +0200
-***************
-*** 3342,3349 ****
- }
- else if (reset_changed && whole)
- {
-! if (!(did_cmd = apply_autocmds_exarg(EVENT_BUFWRITECMD,
-! sfname, sfname, FALSE, curbuf, eap)))
- {
- #ifdef FEAT_QUICKFIX
- if (overwriting && bt_nofile(curbuf))
---- 3342,3363 ----
- }
- else if (reset_changed && whole)
- {
-! int was_changed = curbufIsChanged();
-!
-! did_cmd = apply_autocmds_exarg(EVENT_BUFWRITECMD,
-! sfname, sfname, FALSE, curbuf, eap);
-! if (did_cmd)
-! {
-! if (was_changed && !curbufIsChanged())
-! {
-! /* Written everything correctly and BufWriteCmd has reset
-! * 'modified': Correct the undo information so that an
-! * undo now sets 'modified'. */
-! u_unchanged(curbuf);
-! u_update_save_nr(curbuf);
-! }
-! }
-! else
- {
- #ifdef FEAT_QUICKFIX
- if (overwriting && bt_nofile(curbuf))
-*** ../vim-7.3.289/src/version.c 2011-08-28 16:02:23.000000000 +0200
---- src/version.c 2011-09-02 11:37:25.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 290,
- /**/
-
---
-OLD WOMAN: Well, how did you become king, then?
-ARTHUR: The Lady of the Lake, her arm clad in the purest shimmering samite,
- held Excalibur aloft from the bosom of the water to signify by Divine
- Providence ... that I, Arthur, was to carry Excalibur ... That is
- why I am your king!
- "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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.291
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.291
-Problem: Configure doesn't work properly with Python3.
-Solution: Put -ldl before $LDFLAGS. Add PY3_NO_RTLD_GLOBAL. (Roland
- Puntaier)
-Files: src/config.h.in, src/auto/configure, src/configure.in
-
-
-*** ../vim-7.3.290/src/config.h.in 2010-10-27 16:49:41.000000000 +0200
---- src/config.h.in 2011-09-02 11:22:21.000000000 +0200
-***************
-*** 346,351 ****
---- 346,354 ----
- /* Define if dynamic python does not require RTLD_GLOBAL */
- #undef PY_NO_RTLD_GLOBAL
-
-+ /* Define if dynamic python3 does not require RTLD_GLOBAL */
-+ #undef PY3_NO_RTLD_GLOBAL
-+
- /* Define if you want to include the Ruby interpreter. */
- #undef FEAT_RUBY
-
-*** ../vim-7.3.290/src/auto/configure 2011-07-15 13:09:46.000000000 +0200
---- src/auto/configure 2011-09-02 11:23:15.000000000 +0200
-***************
-*** 5733,5739 ****
- cflags_save=$CFLAGS
- CFLAGS="$CFLAGS $PYTHON_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;}
---- 5733,5739 ----
- cflags_save=$CFLAGS
- CFLAGS="$CFLAGS $PYTHON_CFLAGS"
- ldflags_save=$LDFLAGS
-! LDFLAGS="-ldl $LDFLAGS"
- 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;}
-***************
-*** 5798,5804 ****
- 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;}
---- 5798,5804 ----
- cflags_save=$CFLAGS
- CFLAGS="$CFLAGS $PYTHON3_CFLAGS"
- ldflags_save=$LDFLAGS
-! LDFLAGS="-ldl $LDFLAGS"
- 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;}
-*** ../vim-7.3.290/src/configure.in 2011-07-15 13:09:46.000000000 +0200
---- src/configure.in 2011-09-02 11:19:51.000000000 +0200
-***************
-*** 1161,1167 ****
- cflags_save=$CFLAGS
- CFLAGS="$CFLAGS $PYTHON_CFLAGS"
- ldflags_save=$LDFLAGS
-! LDFLAGS="$LDFLAGS -ldl"
- AC_RUN_IFELSE([
- #include <dlfcn.h>
- /* If this program fails, then RTLD_GLOBAL is needed.
---- 1161,1168 ----
- cflags_save=$CFLAGS
- CFLAGS="$CFLAGS $PYTHON_CFLAGS"
- ldflags_save=$LDFLAGS
-! dnl -ldl must go first to make this work on Archlinux (Roland Puntaier)
-! LDFLAGS="-ldl $LDFLAGS"
- AC_RUN_IFELSE([
- #include <dlfcn.h>
- /* If this program fails, then RTLD_GLOBAL is needed.
-***************
-*** 1205,1211 ****
- cflags_save=$CFLAGS
- CFLAGS="$CFLAGS $PYTHON3_CFLAGS"
- ldflags_save=$LDFLAGS
-! LDFLAGS="$LDFLAGS -ldl"
- AC_RUN_IFELSE([
- #include <dlfcn.h>
- #include <wchar.h>
---- 1206,1213 ----
- cflags_save=$CFLAGS
- CFLAGS="$CFLAGS $PYTHON3_CFLAGS"
- ldflags_save=$LDFLAGS
-! dnl -ldl must go first to make this work on Archlinux (Roland Puntaier)
-! LDFLAGS="-ldl $LDFLAGS"
- AC_RUN_IFELSE([
- #include <dlfcn.h>
- #include <wchar.h>
-*** ../vim-7.3.290/src/version.c 2011-09-02 11:56:15.000000000 +0200
---- src/version.c 2011-09-02 12:25:13.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 291,
- /**/
-
---
-DENNIS: Look, strange women lying on their backs in ponds handing out
- swords ... that's no basis for a system of government. Supreme
- executive power derives from a mandate from the masses, not from some
- farcical aquatic ceremony.
- "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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.292
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.292
-Problem: Crash when using fold markers and selecting a visual block that
- includes a folded line and goes to end of line. (Sam Lidder)
-Solution: Check for the column to be MAXCOL. (James Vega)
-Files: src/screen.c
-
-
-*** ../vim-7.3.291/src/screen.c 2011-08-10 14:32:33.000000000 +0200
---- src/screen.c 2011-09-02 13:58:18.000000000 +0200
-***************
-*** 2531,2537 ****
- /* Visual block mode: highlight the chars part of the block */
- if (wp->w_old_cursor_fcol + txtcol < (colnr_T)W_WIDTH(wp))
- {
-! if (wp->w_old_cursor_lcol + txtcol < (colnr_T)W_WIDTH(wp))
- len = wp->w_old_cursor_lcol;
- else
- len = W_WIDTH(wp) - txtcol;
---- 2531,2539 ----
- /* Visual block mode: highlight the chars part of the block */
- if (wp->w_old_cursor_fcol + txtcol < (colnr_T)W_WIDTH(wp))
- {
-! if (wp->w_old_cursor_lcol != MAXCOL
-! && wp->w_old_cursor_lcol + txtcol
-! < (colnr_T)W_WIDTH(wp))
- len = wp->w_old_cursor_lcol;
- else
- len = W_WIDTH(wp) - txtcol;
-*** ../vim-7.3.291/src/version.c 2011-09-02 12:27:20.000000000 +0200
---- src/version.c 2011-09-02 14:00:03.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 292,
- /**/
-
---
-Hacker: Someone skilled in computer programming (good guy).
-Cracker: A hacker that uses his skills to crack software (bad guy).
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.293
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.293
-Problem: MSVC compiler has a problem with non-ASCII characters.
-Solution: Avoid non-ASCII characters. (Hong Xu)
-Files: src/ascii.h, src/spell.c
-
-
-*** ../vim-7.3.292/src/ascii.h 2011-05-10 16:41:13.000000000 +0200
---- src/ascii.h 2011-09-02 14:12:48.000000000 +0200
-***************
-*** 123,129 ****
- #define DCS 0x90 /* Device Control String */
- #define STERM 0x9c /* String Terminator */
-
-! #define POUND '£'
-
- #define CTRL_F_STR "\056"
- #define CTRL_H_STR "\026"
---- 123,129 ----
- #define DCS 0x90 /* Device Control String */
- #define STERM 0x9c /* String Terminator */
-
-! #define POUND '\xA3'
-
- #define CTRL_F_STR "\056"
- #define CTRL_H_STR "\026"
-*** ../vim-7.3.292/src/spell.c 2011-04-11 21:35:03.000000000 +0200
---- src/spell.c 2011-09-02 14:13:30.000000000 +0200
-***************
-*** 11197,11203 ****
- c = *s++;
-
- #ifdef FEAT_MBYTE
-! /* We only change ß to SS when we are certain latin1 is used. It
- * would cause weird errors in other 8-bit encodings. */
- if (enc_latin1like && c == 0xdf)
- {
---- 11197,11203 ----
- c = *s++;
-
- #ifdef FEAT_MBYTE
-! /* We only change 0xdf to SS when we are certain latin1 is used. It
- * would cause weird errors in other 8-bit encodings. */
- if (enc_latin1like && c == 0xdf)
- {
-*** ../vim-7.3.292/src/version.c 2011-09-02 14:07:31.000000000 +0200
---- src/version.c 2011-09-02 14:13:57.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 293,
- /**/
-
---
- A village. Sound of chanting of Latin canon, punctuated by short, sharp
- cracks. It comes nearer. We see it is a line of MONKS ala SEVENTH SEAL
- flagellation scene, chanting and banging themselves on the foreheads with
- wooden boards.
- "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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.294
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.294 (after 7.3.289)
-Problem: Patch 289 causes more problems than it solves.
-Solution: Rever the patch untill a better solution is found.
-Files: src/edit.c
-
-
-*** ../vim-7.3.293/src/edit.c 2011-08-28 16:02:23.000000000 +0200
---- src/edit.c 2011-09-05 20:07:49.000000000 +0200
-***************
-*** 3367,3381 ****
- ins_bytes(compl_leader + ins_compl_len());
- compl_used_match = FALSE;
-
-- #ifdef FEAT_COMPL_FUNC
-- /*
-- * To call eval 'completefunc' when leader is changed, restart completion
-- * every time.
-- */
-- if (ctrl_x_mode == CTRL_X_FUNCTION || ctrl_x_mode == CTRL_X_OMNI)
-- ins_compl_restart();
-- #endif
--
- if (compl_started)
- ins_compl_set_original_text(compl_leader);
- else
---- 3367,3372 ----
-*** ../vim-7.3.293/src/version.c 2011-09-02 14:18:14.000000000 +0200
---- src/version.c 2011-09-05 20:08:27.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 294,
- /**/
-
---
-Scientists decoded the first message from an alien civilization:
- SIMPLY SEND 6 TIMES 10 TO THE 50 ATOMS OF HYDROGEN TO THE STAR
-SYSTEM AT THE TOP OF THE LIST, CROSS OFF THAT STAR SYSTEM, THEN PUT
-YOUR STAR SYSTEM AT THE BOTTOM OF THE LIST AND SEND IT TO 100 OTHER
-STAR SYSTEMS. WITHIN ONE TENTH GALACTIC ROTATION YOU WILL RECEIVE
-ENOUGH HYDROGREN TO POWER YOUR CIVILIZATION UNTIL ENTROPY REACHES ITS
-MAXIMUM! IT REALLY WORKS!
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.295
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.295
-Problem: When filtering text with an external command Vim may not read all
- the output.
-Solution: When select() is interrupted loop and try again. (James Vega)
-Files: src/os_unix.c
-
-
-*** ../vim-7.3.294/src/os_unix.c 2011-08-04 20:31:50.000000000 +0200
---- src/os_unix.c 2011-09-07 13:34:09.000000000 +0200
-***************
-*** 4819,4825 ****
-
- /*
- * Wait "msec" msec until a character is available from file descriptor "fd".
-! * Time == -1 will block forever.
- * When a GUI is being used, this will not be used for input -- webb
- * Returns also, when a request from Sniff is waiting -- toni.
- * Or when a Linux GPM mouse event is waiting.
---- 4819,4826 ----
-
- /*
- * Wait "msec" msec until a character is available from file descriptor "fd".
-! * "msec" == 0 will check for characters once.
-! * "msec" == -1 will block until a character is available.
- * When a GUI is being used, this will not be used for input -- webb
- * Returns also, when a request from Sniff is waiting -- toni.
- * Or when a Linux GPM mouse event is waiting.
-***************
-*** 5057,5063 ****
- /*
- * Select on ready for reading and exceptional condition (end of file).
- */
-! FD_ZERO(&rfds); /* calls bzero() on a sun */
- FD_ZERO(&efds);
- FD_SET(fd, &rfds);
- # if !defined(__QNX__) && !defined(__CYGWIN32__)
---- 5058,5065 ----
- /*
- * Select on ready for reading and exceptional condition (end of file).
- */
-! select_eintr:
-! FD_ZERO(&rfds);
- FD_ZERO(&efds);
- FD_SET(fd, &rfds);
- # if !defined(__QNX__) && !defined(__CYGWIN32__)
-***************
-*** 5117,5122 ****
---- 5119,5132 ----
- # else
- ret = select(maxfd + 1, &rfds, NULL, &efds, tvp);
- # endif
-+ # ifdef EINTR
-+ if (ret == -1 && errno == EINTR)
-+ /* Interrupted by a signal, need to try again. We ignore msec
-+ * here, because we do want to check even after a timeout if
-+ * characters are available. Needed for reading output of an
-+ * external command after the process has finished. */
-+ goto select_eintr;
-+ # endif
- # ifdef __TANDEM
- if (ret == -1 && errno == ENOTSUP)
- {
-***************
-*** 5124,5130 ****
- FD_ZERO(&efds);
- ret = 0;
- }
-! #endif
- # ifdef FEAT_MZSCHEME
- if (ret == 0 && mzquantum_used)
- /* loop if MzThreads must be scheduled and timeout occurred */
---- 5134,5140 ----
- FD_ZERO(&efds);
- ret = 0;
- }
-! # endif
- # ifdef FEAT_MZSCHEME
- if (ret == 0 && mzquantum_used)
- /* loop if MzThreads must be scheduled and timeout occurred */
-*** ../vim-7.3.294/src/version.c 2011-09-05 20:13:37.000000000 +0200
---- src/version.c 2011-09-07 14:05:05.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 295,
- /**/
-
---
-"You're fired." (1980)
-"You're laid off." (1985)
-"You're downsized." (1990)
-"You're rightsized." (1992)
- (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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.296
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.296
-Problem: When writing to an external command a zombie process may be left
- behind.
-Solution: Wait on the process. (James Vega)
-Files: src/os_unix.c
-
-
-*** ../vim-7.3.295/src/os_unix.c 2011-09-07 14:06:38.000000000 +0200
---- src/os_unix.c 2011-09-07 14:54:11.000000000 +0200
-***************
-*** 154,159 ****
---- 154,166 ----
-
- static void may_core_dump __ARGS((void));
-
-+ #ifdef HAVE_UNION_WAIT
-+ typedef union wait waitstatus;
-+ #else
-+ typedef int waitstatus;
-+ #endif
-+ static int wait4pid __ARGS((pid_t, waitstatus *));
-+
- static int WaitForChar __ARGS((long));
- #if defined(__BEOS__)
- int RealWaitForChar __ARGS((int, long, int *));
-***************
-*** 3660,3665 ****
---- 3667,3713 ----
- /* Nothing to do. */
- }
-
-+ /*
-+ * Wait for process "child" to end.
-+ * Return "child" if it exited properly, <= 0 on error.
-+ */
-+ static pid_t
-+ wait4pid(child, status)
-+ pid_t child;
-+ waitstatus *status;
-+ {
-+ pid_t wait_pid = 0;
-+
-+ while (wait_pid != child)
-+ {
-+ # ifdef _THREAD_SAFE
-+ /* Ugly hack: when compiled with Python threads are probably
-+ * used, in which case wait() sometimes hangs for no obvious
-+ * reason. Use waitpid() instead and loop (like the GUI). */
-+ # ifdef __NeXT__
-+ wait_pid = wait4(child, status, WNOHANG, (struct rusage *)0);
-+ # else
-+ wait_pid = waitpid(child, status, WNOHANG);
-+ # endif
-+ if (wait_pid == 0)
-+ {
-+ /* Wait for 1/100 sec before trying again. */
-+ mch_delay(10L, TRUE);
-+ continue;
-+ }
-+ # else
-+ wait_pid = wait(status);
-+ # endif
-+ if (wait_pid <= 0
-+ # ifdef ECHILD
-+ && errno == ECHILD
-+ # endif
-+ )
-+ break;
-+ }
-+ return wait_pid;
-+ }
-+
- int
- mch_call_shell(cmd, options)
- char_u *cmd;
-***************
-*** 4234,4240 ****
- {
- MSG_PUTS(_("\nCannot fork\n"));
- }
-! else if (wpid == 0)
- {
- linenr_T lnum = curbuf->b_op_start.lnum;
- int written = 0;
---- 4282,4288 ----
- {
- MSG_PUTS(_("\nCannot fork\n"));
- }
-! else if (wpid == 0) /* child */
- {
- linenr_T lnum = curbuf->b_op_start.lnum;
- int written = 0;
-***************
-*** 4242,4248 ****
- char_u *s;
- size_t l;
-
-- /* child */
- close(fromshell_fd);
- for (;;)
- {
---- 4290,4295 ----
-***************
-*** 4287,4293 ****
- }
- _exit(0);
- }
-! else
- {
- close(toshell_fd);
- toshell_fd = -1;
---- 4334,4340 ----
- }
- _exit(0);
- }
-! else /* parent */
- {
- close(toshell_fd);
- toshell_fd = -1;
-***************
-*** 4584,4590 ****
- * typed characters (otherwise we would lose typeahead).
- */
- # ifdef __NeXT__
-! wait_pid = wait4(pid, &status, WNOHANG, (struct rusage *) 0);
- # else
- wait_pid = waitpid(pid, &status, WNOHANG);
- # endif
---- 4631,4637 ----
- * typed characters (otherwise we would lose typeahead).
- */
- # ifdef __NeXT__
-! wait_pid = wait4(pid, &status, WNOHANG, (struct rusage *)0);
- # else
- wait_pid = waitpid(pid, &status, WNOHANG);
- # endif
-***************
-*** 4633,4665 ****
- * Don't wait if wait_pid was already set above, indicating the
- * child already exited.
- */
-! while (wait_pid != pid)
-! {
-! # ifdef _THREAD_SAFE
-! /* Ugly hack: when compiled with Python threads are probably
-! * used, in which case wait() sometimes hangs for no obvious
-! * reason. Use waitpid() instead and loop (like the GUI). */
-! # ifdef __NeXT__
-! wait_pid = wait4(pid, &status, WNOHANG, (struct rusage *)0);
-! # else
-! wait_pid = waitpid(pid, &status, WNOHANG);
-! # endif
-! if (wait_pid == 0)
-! {
-! /* Wait for 1/100 sec before trying again. */
-! mch_delay(10L, TRUE);
-! continue;
-! }
-! # else
-! wait_pid = wait(&status);
-! # endif
-! if (wait_pid <= 0
-! # ifdef ECHILD
-! && errno == ECHILD
-! # endif
-! )
-! break;
-! }
-
- # ifdef FEAT_GUI
- /* Close slave side of pty. Only do this after the child has
---- 4680,4687 ----
- * Don't wait if wait_pid was already set above, indicating the
- * child already exited.
- */
-! if (wait_pid != pid)
-! wait_pid = wait4pid(pid, &status);
-
- # ifdef FEAT_GUI
- /* Close slave side of pty. Only do this after the child has
-***************
-*** 4672,4678 ****
---- 4694,4703 ----
- /* Make sure the child that writes to the external program is
- * dead. */
- if (wpid > 0)
-+ {
- kill(wpid, SIGKILL);
-+ wait4pid(wpid, NULL);
-+ }
-
- /*
- * Set to raw mode right now, otherwise a CTRL-C after
-*** ../vim-7.3.295/src/version.c 2011-09-07 14:06:39.000000000 +0200
---- src/version.c 2011-09-07 15:03:24.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 296,
- /**/
-
---
-If your company is not involved in something called "ISO 9000" you probably
-have no idea what it is. If your company _is_ involved in ISO 9000 then you
-definitely have no idea what it is.
- (Scott Adams - The Dilbert principle)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.297
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.297
-Problem: Can't load Perl 5.14 dynamically.
-Solution: Add code in #ifdefs. (Charles Cooper)
-Files: if_perl.xs
-
-
-*** ../vim-7.3.296/src/if_perl.xs 2011-07-27 14:15:41.000000000 +0200
---- src/if_perl.xs 2011-09-07 18:47:07.000000000 +0200
-***************
-*** 147,153 ****
---- 147,158 ----
- # define Perl_save_int dll_Perl_save_int
- # define Perl_stack_grow dll_Perl_stack_grow
- # define Perl_set_context dll_Perl_set_context
-+ # if (PERL_REVISION == 5) && (PERL_VERSION >= 14)
-+ # define Perl_sv_2bool_flags dll_Perl_sv_2bool_flags
-+ # define Perl_xs_apiversion_bootcheck dll_Perl_xs_apiversion_bootcheck
-+ # else
- # define Perl_sv_2bool dll_Perl_sv_2bool
-+ # endif
- # define Perl_sv_2iv dll_Perl_sv_2iv
- # define Perl_sv_2mortal dll_Perl_sv_2mortal
- # if (PERL_REVISION == 5) && (PERL_VERSION >= 8)
-***************
-*** 252,258 ****
---- 257,268 ----
- static void (*Perl_save_int)(pTHX_ int*);
- static SV** (*Perl_stack_grow)(pTHX_ SV**, SV**p, int);
- static SV** (*Perl_set_context)(void*);
-+ #if (PERL_REVISION == 5) && (PERL_VERSION >= 14)
-+ static bool (*Perl_sv_2bool_flags)(pTHX_ SV*, I32);
-+ static void (*Perl_xs_apiversion_bootcheck)(pTHX_ SV *module, const char *api_p, STRLEN api_len);
-+ #else
- static bool (*Perl_sv_2bool)(pTHX_ SV*);
-+ #endif
- static IV (*Perl_sv_2iv)(pTHX_ SV*);
- static SV* (*Perl_sv_2mortal)(pTHX_ SV*);
- #if (PERL_REVISION == 5) && (PERL_VERSION >= 8)
-***************
-*** 360,366 ****
---- 370,381 ----
- {"Perl_save_int", (PERL_PROC*)&Perl_save_int},
- {"Perl_stack_grow", (PERL_PROC*)&Perl_stack_grow},
- {"Perl_set_context", (PERL_PROC*)&Perl_set_context},
-+ #if (PERL_REVISION == 5) && (PERL_VERSION >= 14)
-+ {"Perl_sv_2bool_flags", (PERL_PROC*)&Perl_sv_2bool_flags},
-+ {"Perl_xs_apiversion_bootcheck",(PERL_PROC*)&Perl_xs_apiversion_bootcheck},
-+ #else
- {"Perl_sv_2bool", (PERL_PROC*)&Perl_sv_2bool},
-+ #endif
- {"Perl_sv_2iv", (PERL_PROC*)&Perl_sv_2iv},
- {"Perl_sv_2mortal", (PERL_PROC*)&Perl_sv_2mortal},
- #if (PERL_REVISION == 5) && (PERL_VERSION >= 8)
-***************
-*** 407,412 ****
---- 422,430 ----
- {"Perl_sv_free2", (PERL_PROC*)&Perl_sv_free2},
- {"Perl_sys_init", (PERL_PROC*)&Perl_sys_init},
- {"Perl_sys_term", (PERL_PROC*)&Perl_sys_term},
-+ {"Perl_call_list", (PERL_PROC*)&Perl_call_list},
-+ # if (PERL_REVISION == 5) && (PERL_VERSION >= 14)
-+ # else
- {"Perl_ISv_ptr", (PERL_PROC*)&Perl_ISv_ptr},
- {"Perl_Istack_max_ptr", (PERL_PROC*)&Perl_Istack_max_ptr},
- {"Perl_Istack_base_ptr", (PERL_PROC*)&Perl_Istack_base_ptr},
-***************
-*** 418,432 ****
- {"Perl_Imarkstack_max_ptr", (PERL_PROC*)&Perl_Imarkstack_max_ptr},
- {"Perl_Istack_sp_ptr", (PERL_PROC*)&Perl_Istack_sp_ptr},
- {"Perl_Iop_ptr", (PERL_PROC*)&Perl_Iop_ptr},
-- {"Perl_call_list", (PERL_PROC*)&Perl_call_list},
- {"Perl_Iscopestack_ix_ptr", (PERL_PROC*)&Perl_Iscopestack_ix_ptr},
- {"Perl_Iunitcheckav_ptr", (PERL_PROC*)&Perl_Iunitcheckav_ptr},
- #endif
- {"Perl_Idefgv_ptr", (PERL_PROC*)&Perl_Idefgv_ptr},
- {"Perl_Ierrgv_ptr", (PERL_PROC*)&Perl_Ierrgv_ptr},
- {"Perl_Isv_yes_ptr", (PERL_PROC*)&Perl_Isv_yes_ptr},
-- {"boot_DynaLoader", (PERL_PROC*)&boot_DynaLoader},
- {"Perl_Gthr_key_ptr", (PERL_PROC*)&Perl_Gthr_key_ptr},
- {"", NULL},
- };
-
---- 436,453 ----
- {"Perl_Imarkstack_max_ptr", (PERL_PROC*)&Perl_Imarkstack_max_ptr},
- {"Perl_Istack_sp_ptr", (PERL_PROC*)&Perl_Istack_sp_ptr},
- {"Perl_Iop_ptr", (PERL_PROC*)&Perl_Iop_ptr},
- {"Perl_Iscopestack_ix_ptr", (PERL_PROC*)&Perl_Iscopestack_ix_ptr},
- {"Perl_Iunitcheckav_ptr", (PERL_PROC*)&Perl_Iunitcheckav_ptr},
-+ # endif
- #endif
-+ #if (PERL_REVISION == 5) && (PERL_VERSION >= 14)
-+ #else
- {"Perl_Idefgv_ptr", (PERL_PROC*)&Perl_Idefgv_ptr},
- {"Perl_Ierrgv_ptr", (PERL_PROC*)&Perl_Ierrgv_ptr},
- {"Perl_Isv_yes_ptr", (PERL_PROC*)&Perl_Isv_yes_ptr},
- {"Perl_Gthr_key_ptr", (PERL_PROC*)&Perl_Gthr_key_ptr},
-+ #endif
-+ {"boot_DynaLoader", (PERL_PROC*)&boot_DynaLoader},
- {"", NULL},
- };
-
-*** ../vim-7.3.296/src/version.c 2011-09-07 15:04:26.000000000 +0200
---- src/version.c 2011-09-07 18:45:28.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 297,
- /**/
-
---
-At some point in the project somebody will start whining about the need to
-determine the project "requirements". This involves interviewing people who
-don't know what they want but, curiously, know exactly when they need it.
- (Scott Adams - The Dilbert principle)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.298
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.298
-Problem: Built-in colors are different from rgb.txt.
-Solution: Adjust the color values. (Benjamin Haskell)
-Files: src/gui_photon.c, src/gui_w48.c
-
-
-*** ../vim-7.3.297/src/gui_photon.c 2011-08-10 12:19:00.000000000 +0200
---- src/gui_photon.c 2011-09-07 18:55:09.000000000 +0200
-***************
-*** 2007,2014 ****
- static GuiColourTable table[] =
- {
- {"Black", RGB(0x00, 0x00, 0x00)},
-! {"DarkGray", RGB(0x80, 0x80, 0x80)},
-! {"DarkGrey", RGB(0x80, 0x80, 0x80)},
- {"Gray", RGB(0xC0, 0xC0, 0xC0)},
- {"Grey", RGB(0xC0, 0xC0, 0xC0)},
- {"LightGray", RGB(0xD3, 0xD3, 0xD3)},
---- 2007,2014 ----
- static GuiColourTable table[] =
- {
- {"Black", RGB(0x00, 0x00, 0x00)},
-! {"DarkGray", RGB(0xA9, 0xA9, 0xA9)},
-! {"DarkGrey", RGB(0xA9, 0xA9, 0xA9)},
- {"Gray", RGB(0xC0, 0xC0, 0xC0)},
- {"Grey", RGB(0xC0, 0xC0, 0xC0)},
- {"LightGray", RGB(0xD3, 0xD3, 0xD3)},
-***************
-*** 2037,2055 ****
- {"LightRed", RGB(0xFF, 0xA0, 0xA0)},
- {"DarkBlue", RGB(0x00, 0x00, 0x80)},
- {"Blue", RGB(0x00, 0x00, 0xFF)},
-! {"LightBlue", RGB(0xA0, 0xA0, 0xFF)},
- {"DarkGreen", RGB(0x00, 0x80, 0x00)},
- {"Green", RGB(0x00, 0xFF, 0x00)},
-! {"LightGreen", RGB(0xA0, 0xFF, 0xA0)},
- {"DarkCyan", RGB(0x00, 0x80, 0x80)},
- {"Cyan", RGB(0x00, 0xFF, 0xFF)},
-! {"LightCyan", RGB(0xA0, 0xFF, 0xFF)},
- {"DarkMagenta", RGB(0x80, 0x00, 0x80)},
- {"Magenta", RGB(0xFF, 0x00, 0xFF)},
- {"LightMagenta", RGB(0xFF, 0xA0, 0xFF)},
- {"Brown", RGB(0x80, 0x40, 0x40)},
- {"Yellow", RGB(0xFF, 0xFF, 0x00)},
-! {"LightYellow", RGB(0xFF, 0xFF, 0xA0)},
- {"SeaGreen", RGB(0x2E, 0x8B, 0x57)},
- {"Orange", RGB(0xFF, 0xA5, 0x00)},
- {"Purple", RGB(0xA0, 0x20, 0xF0)},
---- 2037,2055 ----
- {"LightRed", RGB(0xFF, 0xA0, 0xA0)},
- {"DarkBlue", RGB(0x00, 0x00, 0x80)},
- {"Blue", RGB(0x00, 0x00, 0xFF)},
-! {"LightBlue", RGB(0xAD, 0xD8, 0xE6)},
- {"DarkGreen", RGB(0x00, 0x80, 0x00)},
- {"Green", RGB(0x00, 0xFF, 0x00)},
-! {"LightGreen", RGB(0x90, 0xEE, 0x90)},
- {"DarkCyan", RGB(0x00, 0x80, 0x80)},
- {"Cyan", RGB(0x00, 0xFF, 0xFF)},
-! {"LightCyan", RGB(0xE0, 0xFF, 0xFF)},
- {"DarkMagenta", RGB(0x80, 0x00, 0x80)},
- {"Magenta", RGB(0xFF, 0x00, 0xFF)},
- {"LightMagenta", RGB(0xFF, 0xA0, 0xFF)},
- {"Brown", RGB(0x80, 0x40, 0x40)},
- {"Yellow", RGB(0xFF, 0xFF, 0x00)},
-! {"LightYellow", RGB(0xFF, 0xFF, 0xE0)},
- {"SeaGreen", RGB(0x2E, 0x8B, 0x57)},
- {"Orange", RGB(0xFF, 0xA5, 0x00)},
- {"Purple", RGB(0xA0, 0x20, 0xF0)},
-*** ../vim-7.3.297/src/gui_w48.c 2011-08-10 17:07:56.000000000 +0200
---- src/gui_w48.c 2011-09-07 18:55:09.000000000 +0200
-***************
-*** 1411,1422 ****
- static guicolor_tTable table[] =
- {
- {"Black", RGB(0x00, 0x00, 0x00)},
-! {"DarkGray", RGB(0x80, 0x80, 0x80)},
-! {"DarkGrey", RGB(0x80, 0x80, 0x80)},
- {"Gray", RGB(0xC0, 0xC0, 0xC0)},
- {"Grey", RGB(0xC0, 0xC0, 0xC0)},
-! {"LightGray", RGB(0xE0, 0xE0, 0xE0)},
-! {"LightGrey", RGB(0xE0, 0xE0, 0xE0)},
- {"Gray10", RGB(0x1A, 0x1A, 0x1A)},
- {"Grey10", RGB(0x1A, 0x1A, 0x1A)},
- {"Gray20", RGB(0x33, 0x33, 0x33)},
---- 1411,1422 ----
- static guicolor_tTable table[] =
- {
- {"Black", RGB(0x00, 0x00, 0x00)},
-! {"DarkGray", RGB(0xA9, 0xA9, 0xA9)},
-! {"DarkGrey", RGB(0xA9, 0xA9, 0xA9)},
- {"Gray", RGB(0xC0, 0xC0, 0xC0)},
- {"Grey", RGB(0xC0, 0xC0, 0xC0)},
-! {"LightGray", RGB(0xD3, 0xD3, 0xD3)},
-! {"LightGrey", RGB(0xD3, 0xD3, 0xD3)},
- {"Gray10", RGB(0x1A, 0x1A, 0x1A)},
- {"Grey10", RGB(0x1A, 0x1A, 0x1A)},
- {"Gray20", RGB(0x33, 0x33, 0x33)},
-***************
-*** 1441,1459 ****
- {"LightRed", RGB(0xFF, 0xA0, 0xA0)},
- {"DarkBlue", RGB(0x00, 0x00, 0x80)},
- {"Blue", RGB(0x00, 0x00, 0xFF)},
-! {"LightBlue", RGB(0xA0, 0xA0, 0xFF)},
- {"DarkGreen", RGB(0x00, 0x80, 0x00)},
- {"Green", RGB(0x00, 0xFF, 0x00)},
-! {"LightGreen", RGB(0xA0, 0xFF, 0xA0)},
- {"DarkCyan", RGB(0x00, 0x80, 0x80)},
- {"Cyan", RGB(0x00, 0xFF, 0xFF)},
-! {"LightCyan", RGB(0xA0, 0xFF, 0xFF)},
- {"DarkMagenta", RGB(0x80, 0x00, 0x80)},
- {"Magenta", RGB(0xFF, 0x00, 0xFF)},
- {"LightMagenta", RGB(0xFF, 0xA0, 0xFF)},
- {"Brown", RGB(0x80, 0x40, 0x40)},
- {"Yellow", RGB(0xFF, 0xFF, 0x00)},
-! {"LightYellow", RGB(0xFF, 0xFF, 0xA0)},
- {"DarkYellow", RGB(0xBB, 0xBB, 0x00)},
- {"SeaGreen", RGB(0x2E, 0x8B, 0x57)},
- {"Orange", RGB(0xFF, 0xA5, 0x00)},
---- 1441,1459 ----
- {"LightRed", RGB(0xFF, 0xA0, 0xA0)},
- {"DarkBlue", RGB(0x00, 0x00, 0x80)},
- {"Blue", RGB(0x00, 0x00, 0xFF)},
-! {"LightBlue", RGB(0xAD, 0xD8, 0xE6)},
- {"DarkGreen", RGB(0x00, 0x80, 0x00)},
- {"Green", RGB(0x00, 0xFF, 0x00)},
-! {"LightGreen", RGB(0x90, 0xEE, 0x90)},
- {"DarkCyan", RGB(0x00, 0x80, 0x80)},
- {"Cyan", RGB(0x00, 0xFF, 0xFF)},
-! {"LightCyan", RGB(0xE0, 0xFF, 0xFF)},
- {"DarkMagenta", RGB(0x80, 0x00, 0x80)},
- {"Magenta", RGB(0xFF, 0x00, 0xFF)},
- {"LightMagenta", RGB(0xFF, 0xA0, 0xFF)},
- {"Brown", RGB(0x80, 0x40, 0x40)},
- {"Yellow", RGB(0xFF, 0xFF, 0x00)},
-! {"LightYellow", RGB(0xFF, 0xFF, 0xE0)},
- {"DarkYellow", RGB(0xBB, 0xBB, 0x00)},
- {"SeaGreen", RGB(0x2E, 0x8B, 0x57)},
- {"Orange", RGB(0xFF, 0xA5, 0x00)},
-*** ../vim-7.3.297/src/version.c 2011-09-07 18:47:19.000000000 +0200
---- src/version.c 2011-09-07 18:55:27.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 298,
- /**/
-
---
-You can test a person's importance in the organization by asking how much RAM
-his computer has. Anybody who knows the answer to that question is not a
-decision-maker.
- (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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.299
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.299
-Problem: Source code not in Vim style.
-Solution: Adjust the style. (Elias Diem)
-Files: src/gui_photon.c
-
-
-*** ../vim-7.3.298/src/gui_photon.c 2011-09-07 18:58:24.000000000 +0200
---- src/gui_photon.c 2011-09-07 19:02:59.000000000 +0200
-***************
-*** 535,547 ****
- &src_taken,
- buf,
- 6,
-! &dst_made );
-
-! add_to_input_buf( buf, dst_made );
- }
- else
- {
-! add_to_input_buf( string, len );
- }
-
- return Pt_CONSUME;
---- 535,547 ----
- &src_taken,
- buf,
- 6,
-! &dst_made);
-
-! add_to_input_buf(buf, dst_made);
- }
- else
- {
-! add_to_input_buf(string, len);
- }
-
- return Pt_CONSUME;
-***************
-*** 549,579 ****
- len = 0;
- #endif
- ch = key->key_cap;
-! if( ch < 0xff )
- {
- /* FIXME: is this the right thing to do? */
-! if( modifiers & MOD_MASK_CTRL )
- {
- modifiers &= ~MOD_MASK_CTRL;
-
-! if( ( ch >= 'a' && ch <= 'z' ) ||
- ch == '[' ||
- ch == ']' ||
-! ch == '\\' )
-! ch = Ctrl_chr( ch );
-! else if( ch == '2' )
- ch = NUL;
-! else if( ch == '6' )
- ch = 0x1e;
-! else if( ch == '-' )
- ch = 0x1f;
- else
- modifiers |= MOD_MASK_CTRL;
- }
-
-! if( modifiers & MOD_MASK_ALT )
- {
-! ch = Meta( ch );
- modifiers &= ~MOD_MASK_ALT;
- }
- }
---- 549,579 ----
- len = 0;
- #endif
- ch = key->key_cap;
-! if (ch < 0xff)
- {
- /* FIXME: is this the right thing to do? */
-! if (modifiers & MOD_MASK_CTRL)
- {
- modifiers &= ~MOD_MASK_CTRL;
-
-! if ((ch >= 'a' && ch <= 'z') ||
- ch == '[' ||
- ch == ']' ||
-! ch == '\\')
-! ch = Ctrl_chr(ch);
-! else if (ch == '2')
- ch = NUL;
-! else if (ch == '6')
- ch = 0x1e;
-! else if (ch == '-')
- ch = 0x1f;
- else
- modifiers |= MOD_MASK_CTRL;
- }
-
-! if (modifiers & MOD_MASK_ALT)
- {
-! ch = Meta(ch);
- modifiers &= ~MOD_MASK_ALT;
- }
- }
-***************
-*** 586,604 ****
- modifiers &= ~MOD_MASK_SHIFT;
- }
-
-! ch = simplify_key( ch, &modifiers );
-! if( modifiers )
- {
- string[ len++ ] = CSI;
- string[ len++ ] = KS_MODIFIER;
- string[ len++ ] = modifiers;
- }
-
-! if( IS_SPECIAL( ch ) )
- {
- string[ len++ ] = CSI;
-! string[ len++ ] = K_SECOND( ch );
-! string[ len++ ] = K_THIRD( ch );
- }
- else
- {
---- 586,604 ----
- modifiers &= ~MOD_MASK_SHIFT;
- }
-
-! ch = simplify_key(ch, &modifiers);
-! if (modifiers)
- {
- string[ len++ ] = CSI;
- string[ len++ ] = KS_MODIFIER;
- string[ len++ ] = modifiers;
- }
-
-! if (IS_SPECIAL(ch))
- {
- string[ len++ ] = CSI;
-! string[ len++ ] = K_SECOND(ch);
-! string[ len++ ] = K_THIRD(ch);
- }
- else
- {
-***************
-*** 619,627 ****
- string[ len++ ] = KE_CSI;
- }
-
-! if( len > 0 )
- {
-! add_to_input_buf( string, len );
- return Pt_CONSUME;
- }
- }
---- 619,627 ----
- string[ len++ ] = KE_CSI;
- }
-
-! if (len > 0)
- {
-! add_to_input_buf(string, len);
- return Pt_CONSUME;
- }
- }
-***************
-*** 630,646 ****
- }
-
- static int
-! gui_ph_handle_mouse( PtWidget_t *widget, void *data, PtCallbackInfo_t *info )
- {
- PhPointerEvent_t *pointer;
- PhRect_t *pos;
- int button = 0, repeated_click, modifiers = 0x0;
- short mouse_x, mouse_y;
-
-! pointer = PhGetData( info->event );
-! pos = PhGetRects( info->event );
-
-! gui_mch_mousehide( MOUSE_SHOW );
-
- /*
- * Coordinates need to be relative to the base window,
---- 630,646 ----
- }
-
- static int
-! gui_ph_handle_mouse(PtWidget_t *widget, void *data, PtCallbackInfo_t *info)
- {
- PhPointerEvent_t *pointer;
- PhRect_t *pos;
- int button = 0, repeated_click, modifiers = 0x0;
- short mouse_x, mouse_y;
-
-! pointer = PhGetData(info->event);
-! pos = PhGetRects(info->event);
-
-! gui_mch_mousehide(MOUSE_SHOW);
-
- /*
- * Coordinates need to be relative to the base window,
-***************
-*** 649,675 ****
- mouse_x = pos->ul.x + gui.border_width;
- mouse_y = pos->ul.y + gui.border_width;
-
-! if( info->event->type == Ph_EV_PTR_MOTION_NOBUTTON )
- {
-! gui_mouse_moved( mouse_x, mouse_y );
- return Pt_CONTINUE;
- }
-
-! if( pointer->key_mods & Pk_KM_Shift )
- modifiers |= MOUSE_SHIFT;
-! if( pointer->key_mods & Pk_KM_Ctrl )
- modifiers |= MOUSE_CTRL;
-! if( pointer->key_mods & Pk_KM_Alt )
- modifiers |= MOUSE_ALT;
-
- /*
- * FIXME More than one button may be involved, but for
- * now just deal with one
- */
-! if( pointer->buttons & Ph_BUTTON_SELECT )
- button = MOUSE_LEFT;
-
-! if( pointer->buttons & Ph_BUTTON_MENU )
- {
- button = MOUSE_RIGHT;
- /* Need the absolute coordinates for the popup menu */
---- 649,675 ----
- mouse_x = pos->ul.x + gui.border_width;
- mouse_y = pos->ul.y + gui.border_width;
-
-! if (info->event->type == Ph_EV_PTR_MOTION_NOBUTTON)
- {
-! gui_mouse_moved(mouse_x, mouse_y);
- return Pt_CONTINUE;
- }
-
-! if (pointer->key_mods & Pk_KM_Shift)
- modifiers |= MOUSE_SHIFT;
-! if (pointer->key_mods & Pk_KM_Ctrl)
- modifiers |= MOUSE_CTRL;
-! if (pointer->key_mods & Pk_KM_Alt)
- modifiers |= MOUSE_ALT;
-
- /*
- * FIXME More than one button may be involved, but for
- * now just deal with one
- */
-! if (pointer->buttons & Ph_BUTTON_SELECT)
- button = MOUSE_LEFT;
-
-! if (pointer->buttons & Ph_BUTTON_MENU)
- {
- button = MOUSE_RIGHT;
- /* Need the absolute coordinates for the popup menu */
-***************
-*** 677,705 ****
- abs_mouse.y = pointer->pos.y;
- }
-
-! if( pointer->buttons & Ph_BUTTON_ADJUST )
- button = MOUSE_MIDDLE;
-
- /* Catch a real release (not phantom or other releases */
-! if( info->event->type == Ph_EV_BUT_RELEASE )
- button = MOUSE_RELEASE;
-
-! if( info->event->type & Ph_EV_PTR_MOTION_BUTTON )
- button = MOUSE_DRAG;
-
- #if 0
- /* Vim doesn't use button repeats */
-! if( info->event->type & Ph_EV_BUT_REPEAT )
- button = MOUSE_DRAG;
- #endif
-
- /* Don't do anything if it is one of the phantom mouse release events */
-! if( ( button != MOUSE_RELEASE ) ||
-! ( info->event->subtype == Ph_EV_RELEASE_REAL ) )
- {
- repeated_click = (pointer->click_count >= 2) ? TRUE : FALSE;
-
-! gui_send_mouse_event( button , mouse_x, mouse_y, repeated_click, modifiers );
- }
-
- return Pt_CONTINUE;
---- 677,705 ----
- abs_mouse.y = pointer->pos.y;
- }
-
-! if (pointer->buttons & Ph_BUTTON_ADJUST)
- button = MOUSE_MIDDLE;
-
- /* Catch a real release (not phantom or other releases */
-! if (info->event->type == Ph_EV_BUT_RELEASE)
- button = MOUSE_RELEASE;
-
-! if (info->event->type & Ph_EV_PTR_MOTION_BUTTON)
- button = MOUSE_DRAG;
-
- #if 0
- /* Vim doesn't use button repeats */
-! if (info->event->type & Ph_EV_BUT_REPEAT)
- button = MOUSE_DRAG;
- #endif
-
- /* Don't do anything if it is one of the phantom mouse release events */
-! if ((button != MOUSE_RELEASE) ||
-! (info->event->subtype == Ph_EV_RELEASE_REAL))
- {
- repeated_click = (pointer->click_count >= 2) ? TRUE : FALSE;
-
-! gui_send_mouse_event(button , mouse_x, mouse_y, repeated_click, modifiers);
- }
-
- return Pt_CONTINUE;
-***************
-*** 707,741 ****
-
- /* Handle a focus change of the PtRaw widget */
- static int
-! gui_ph_handle_focus( PtWidget_t *widget, void *data, PtCallbackInfo_t *info )
- {
-! if( info->reason == Pt_CB_LOST_FOCUS )
- {
-! PtRemoveEventHandler( gui.vimTextArea, Ph_EV_PTR_MOTION_NOBUTTON,
-! gui_ph_handle_mouse, NULL );
-
-! gui_mch_mousehide( MOUSE_SHOW );
- }
- else
- {
-! PtAddEventHandler( gui.vimTextArea, Ph_EV_PTR_MOTION_NOBUTTON,
-! gui_ph_handle_mouse, NULL );
- }
- return Pt_CONTINUE;
- }
-
- static void
-! gui_ph_handle_raw_draw( PtWidget_t *widget, PhTile_t *damage )
- {
- PhRect_t *r;
- PhPoint_t offset;
- PhPoint_t translation;
-
-! if( is_ignore_draw == TRUE )
- return;
-
-! PtSuperClassDraw( PtBasic, widget, damage );
-! PgGetTranslation( &translation );
- PgClearTranslation();
-
- #if 0
---- 707,741 ----
-
- /* Handle a focus change of the PtRaw widget */
- static int
-! gui_ph_handle_focus(PtWidget_t *widget, void *data, PtCallbackInfo_t *info)
- {
-! if (info->reason == Pt_CB_LOST_FOCUS)
- {
-! PtRemoveEventHandler(gui.vimTextArea, Ph_EV_PTR_MOTION_NOBUTTON,
-! gui_ph_handle_mouse, NULL);
-
-! gui_mch_mousehide(MOUSE_SHOW);
- }
- else
- {
-! PtAddEventHandler(gui.vimTextArea, Ph_EV_PTR_MOTION_NOBUTTON,
-! gui_ph_handle_mouse, NULL);
- }
- return Pt_CONTINUE;
- }
-
- static void
-! gui_ph_handle_raw_draw(PtWidget_t *widget, PhTile_t *damage)
- {
- PhRect_t *r;
- PhPoint_t offset;
- PhPoint_t translation;
-
-! if (is_ignore_draw == TRUE)
- return;
-
-! PtSuperClassDraw(PtBasic, widget, damage);
-! PgGetTranslation(&translation);
- PgClearTranslation();
-
- #if 0
-***************
-*** 750,770 ****
- out_flush();
- #endif
-
-! PtWidgetOffset( widget, &offset );
-! PhTranslatePoint( &offset, PtWidgetPos( gui.vimTextArea, NULL ) );
-
- #if 1
- /* Redraw individual damage regions */
-! if( damage->next != NULL )
- damage = damage->next;
-
-! while( damage != NULL )
- {
- r = &damage->rect;
- gui_redraw(
- r->ul.x - offset.x, r->ul.y - offset.y,
- r->lr.x - r->ul.x + 1,
-! r->lr.y - r->ul.y + 1 );
- damage = damage->next;
- }
- #else
---- 750,770 ----
- out_flush();
- #endif
-
-! PtWidgetOffset(widget, &offset);
-! PhTranslatePoint(&offset, PtWidgetPos(gui.vimTextArea, NULL));
-
- #if 1
- /* Redraw individual damage regions */
-! if (damage->next != NULL)
- damage = damage->next;
-
-! while(damage != NULL)
- {
- r = &damage->rect;
- gui_redraw(
- r->ul.x - offset.x, r->ul.y - offset.y,
- r->lr.x - r->ul.x + 1,
-! r->lr.y - r->ul.y + 1);
- damage = damage->next;
- }
- #else
-***************
-*** 773,796 ****
- gui_redraw(
- r->ul.x - offset.x, r->ul.y - offset.y,
- r->lr.x - r->ul.x + 1,
-! r->lr.y - r->ul.y + 1 );
- #endif
-
-! PgSetTranslation( &translation, 0 );
- }
-
- static int
- gui_ph_handle_pulldown_menu(
- PtWidget_t *widget,
- void *data,
-! PtCallbackInfo_t *info )
- {
-! if( data != NULL )
- {
- vimmenu_T *menu = (vimmenu_T *) data;
-
-! PtPositionMenu( menu->submenu_id, NULL );
-! PtRealizeWidget( menu->submenu_id );
- }
-
- return Pt_CONTINUE;
---- 773,796 ----
- gui_redraw(
- r->ul.x - offset.x, r->ul.y - offset.y,
- r->lr.x - r->ul.x + 1,
-! r->lr.y - r->ul.y + 1);
- #endif
-
-! PgSetTranslation(&translation, 0);
- }
-
- static int
- gui_ph_handle_pulldown_menu(
- PtWidget_t *widget,
- void *data,
-! PtCallbackInfo_t *info)
- {
-! if (data != NULL)
- {
- vimmenu_T *menu = (vimmenu_T *) data;
-
-! PtPositionMenu(menu->submenu_id, NULL);
-! PtRealizeWidget(menu->submenu_id);
- }
-
- return Pt_CONTINUE;
-*** ../vim-7.3.298/src/version.c 2011-09-07 18:58:24.000000000 +0200
---- src/version.c 2011-09-07 19:01:17.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 299,
- /**/
-
---
-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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.300
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.300
-Problem: Python doesn't parse multi-byte argument correctly.
-Solution: Use "t" instead of "s". (lilydjwg)
-Files: src/if_py_both.h
-
-
-*** ../vim-7.3.299/src/if_py_both.h 2011-07-07 15:08:53.000000000 +0200
---- src/if_py_both.h 2011-09-07 19:25:12.000000000 +0200
-***************
-*** 74,80 ****
- char *str = NULL;
- int error = ((OutputObject *)(self))->error;
-
-! if (!PyArg_ParseTuple(args, "es#", ENC_OPT, &str, &len))
- return NULL;
-
- Py_BEGIN_ALLOW_THREADS
---- 74,80 ----
- char *str = NULL;
- int error = ((OutputObject *)(self))->error;
-
-! if (!PyArg_ParseTuple(args, "et#", ENC_OPT, &str, &len))
- return NULL;
-
- Py_BEGIN_ALLOW_THREADS
-***************
-*** 114,120 ****
- char *str = NULL;
- PyInt len;
-
-! if (!PyArg_Parse(line, "es#", ENC_OPT, &str, &len)) {
- PyErr_SetString(PyExc_TypeError, _("writelines() requires list of strings"));
- Py_DECREF(list);
- return NULL;
---- 114,120 ----
- char *str = NULL;
- PyInt len;
-
-! if (!PyArg_Parse(line, "et#", ENC_OPT, &str, &len)) {
- PyErr_SetString(PyExc_TypeError, _("writelines() requires list of strings"));
- Py_DECREF(list);
- return NULL;
-*** ../vim-7.3.299/src/version.c 2011-09-07 19:08:57.000000000 +0200
---- src/version.c 2011-09-07 19:26:05.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 300,
- /**/
-
---
-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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.301
-Fcc: 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.301
-Problem: When 'smartindent' and 'copyindent' are set a Tab is used even
- though 'expandtab' is set.
-Solution: Do not insert Tabs. Add a test. (Christian Brabandt)
-Files: src/misc1.c, src/testdir/test19.in, src/testdir/test19.ok
-
-
-*** ../vim-7.3.300/src/misc1.c 2011-07-27 17:31:42.000000000 +0200
---- src/misc1.c 2011-09-07 19:37:04.000000000 +0200
-***************
-*** 363,369 ****
-
- /* Fill to next tabstop with a tab, if possible */
- tab_pad = (int)curbuf->b_p_ts - (ind_done % (int)curbuf->b_p_ts);
-! if (todo >= tab_pad)
- {
- todo -= tab_pad;
- ++ind_len;
---- 363,369 ----
-
- /* Fill to next tabstop with a tab, if possible */
- tab_pad = (int)curbuf->b_p_ts - (ind_done % (int)curbuf->b_p_ts);
-! if (todo >= tab_pad && !curbuf->b_p_et)
- {
- todo -= tab_pad;
- ++ind_len;
-***************
-*** 372,378 ****
- }
-
- /* Add tabs required for indent */
-! while (todo >= (int)curbuf->b_p_ts)
- {
- todo -= (int)curbuf->b_p_ts;
- ++ind_len;
---- 372,378 ----
- }
-
- /* Add tabs required for indent */
-! while (todo >= (int)curbuf->b_p_ts && !curbuf->b_p_et)
- {
- todo -= (int)curbuf->b_p_ts;
- ++ind_len;
-*** ../vim-7.3.300/src/testdir/test19.in 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test19.in 2011-09-07 19:46:17.000000000 +0200
-***************
-*** 12,17 ****
---- 12,20 ----
- 0wR 
- :" Test replacing with Tabs
- 0wR 
-+ :" Test that copyindent works with expandtab set
-+ :set expandtab smartindent copyindent ts=8 sw=8 sts=8
-+ :exe "norm! o{\<cr>x"
- :?^start?,$w! test.out
- :qa!
- ENDTEST
-*** ../vim-7.3.300/src/testdir/test19.ok 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test19.ok 2011-09-07 19:37:04.000000000 +0200
-***************
-*** 5,7 ****
---- 5,9 ----
- a cde
- hi
- test text
-+ {
-+ x
-*** ../vim-7.3.300/src/version.c 2011-09-07 19:30:17.000000000 +0200
---- src/version.c 2011-09-07 19:38:48.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 301,
- /**/
-
---
-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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.302
-Fcc: 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.302 (after 7.3.301)
-Problem: Test 19 fails without 'smartindent' and +eval.
-Solution: Don't use ":exe". Source small.vim.
-Files: src/testdir/test19.in
-
-
-*** ../vim-7.3.301/src/testdir/test19.in 2011-09-07 19:58:04.000000000 +0200
---- src/testdir/test19.in 2011-09-08 20:32:33.000000000 +0200
-***************
-*** 1,6 ****
---- 1,7 ----
- Tests for "r<Tab>" with 'smarttab' and 'expandtab' set/not set.
-
- STARTTEST
-+ :so small.vim
- :set smarttab expandtab ts=8 sw=4
- :" make sure that backspace works, no matter what termcap is used
- :set t_kD=x7f t_kb=x08
-***************
-*** 14,21 ****
- 0wR 
- :" Test that copyindent works with expandtab set
- :set expandtab smartindent copyindent ts=8 sw=8 sts=8
-! :exe "norm! o{\<cr>x"
-! :?^start?,$w! test.out
- :qa!
- ENDTEST
-
---- 15,22 ----
- 0wR 
- :" Test that copyindent works with expandtab set
- :set expandtab smartindent copyindent ts=8 sw=8 sts=8
-! o{
-! x:?^start?,$w! test.out
- :qa!
- ENDTEST
-
-*** ../vim-7.3.301/src/version.c 2011-09-07 19:58:04.000000000 +0200
---- src/version.c 2011-09-08 23:22:01.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 302,
- /**/
-
---
-Engineers are always delighted to share wisdom, even in areas in which they
-have no experience whatsoever. Their logic provides them with inherent
-insight into any field of expertise. This can be a problem when dealing with
-the illogical people who believe that knowledge can only be derived through
-experience.
- (Scott Adams - The Dilbert principle)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.303
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.303 (after 7.3.296)
-Problem: Compilation error.
-Solution: Correct return type from int to pid_t. (Danek Duvall)
-Files: src/os_unix.c
-
-
-*** ../vim-7.3.302/src/os_unix.c 2011-09-07 15:04:26.000000000 +0200
---- src/os_unix.c 2011-09-08 20:47:47.000000000 +0200
-***************
-*** 159,165 ****
- #else
- typedef int waitstatus;
- #endif
-! static int wait4pid __ARGS((pid_t, waitstatus *));
-
- static int WaitForChar __ARGS((long));
- #if defined(__BEOS__)
---- 159,165 ----
- #else
- typedef int waitstatus;
- #endif
-! static pid_t wait4pid __ARGS((pid_t, waitstatus *));
-
- static int WaitForChar __ARGS((long));
- #if defined(__BEOS__)
-*** ../vim-7.3.302/src/version.c 2011-09-08 23:22:35.000000000 +0200
---- src/version.c 2011-09-08 23:23:43.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 303,
- /**/
-
---
-For humans, honesty is a matter of degree. Engineers are always honest in
-matters of technology and human relationships. That's why it's a good idea
-to keep engineers away from customers, romantic interests, and other people
-who can't handle the truth.
- (Scott Adams - The Dilbert principle)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.304
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.304
-Problem: Strawberry Perl doesn't work on MS-Windows.
-Solution: Use xsubpp if needed. (Yasuhiro Matsumoto)
-Files: src/Make_ming.mak, src/Make_mvc.mak
-
-
-*** ../vim-7.3.303/src/Make_ming.mak 2011-06-19 01:30:01.000000000 +0200
---- src/Make_ming.mak 2011-09-14 10:44:55.000000000 +0200
-***************
-*** 108,113 ****
---- 108,120 ----
- # on NT, it's here:
- PERLLIB=$(PERL)/lib
- PERLLIBS=$(PERLLIB)/Core
-+ XSUBPP=$(PERLLIB)/ExtUtils/xsubpp
-+ XSUBPP_EXISTS=$(shell perl -e "print 1 unless -e '$(XSUBPP)'")
-+ ifeq "$(XSUBPP_EXISTS)" ""
-+ XSUBPP=perl $(XSUBPP)
-+ else
-+ XSUBPP=xsubpp
-+ endif
- endif
-
- # uncomment 'LUA' if you want a Lua-enabled version
-***************
-*** 696,702 ****
- endif
-
- if_perl.c: if_perl.xs typemap
-! perl $(PERLLIB)/ExtUtils/xsubpp -prototypes -typemap \
- $(PERLLIB)/ExtUtils/typemap if_perl.xs > $@
-
- $(OUTDIR)/netbeans.o: netbeans.c $(INCL) $(NBDEBUG_INCL) $(NBDEBUG_SRC)
---- 703,709 ----
- endif
-
- if_perl.c: if_perl.xs typemap
-! $(XSUBPP) -prototypes -typemap \
- $(PERLLIB)/ExtUtils/typemap if_perl.xs > $@
-
- $(OUTDIR)/netbeans.o: netbeans.c $(INCL) $(NBDEBUG_INCL) $(NBDEBUG_SRC)
-*** ../vim-7.3.303/src/Make_mvc.mak 2011-06-12 20:31:25.000000000 +0200
---- src/Make_mvc.mak 2011-09-14 10:46:08.000000000 +0200
-***************
-*** 785,790 ****
---- 785,795 ----
- PERL_INC = /I $(PERL_INCDIR)
- PERL_OBJ = $(OUTDIR)\if_perl.obj $(OUTDIR)\if_perlsfio.obj
- XSUBPP = $(PERL)\lib\ExtUtils\xsubpp
-+ !if exist($(XSUBPP)
-+ XSUBPP = $(PERL_EXE) $(XSUBPP)
-+ !else
-+ XSUBPP = xsubpp
-+ !endif
- XSUBPP_TYPEMAP = $(PERL)\lib\ExtUtils\typemap
-
- !endif
-***************
-*** 1041,1047 ****
- $(CC) $(CFLAGS) $(LUA_INC) if_lua.c
-
- if_perl.c : if_perl.xs typemap
-! $(PERL_EXE) $(XSUBPP) -prototypes -typemap $(XSUBPP_TYPEMAP) \
- -typemap typemap if_perl.xs > if_perl.c
-
- $(OUTDIR)/if_perl.obj: $(OUTDIR) if_perl.c $(INCL)
---- 1046,1052 ----
- $(CC) $(CFLAGS) $(LUA_INC) if_lua.c
-
- if_perl.c : if_perl.xs typemap
-! $(XSUBPP) -prototypes -typemap $(XSUBPP_TYPEMAP) \
- -typemap typemap if_perl.xs > if_perl.c
-
- $(OUTDIR)/if_perl.obj: $(OUTDIR) if_perl.c $(INCL)
-*** ../vim-7.3.303/src/version.c 2011-09-08 23:24:09.000000000 +0200
---- src/version.c 2011-09-14 10:47:41.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 304,
- /**/
-
---
-It's totally unfair to suggest - as many have - that engineers are socially
-inept. Engineers simply have different objectives when it comes to social
-interaction.
- (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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.305
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.305
-Problem: Auto-loading a function while editing the command line causes
- scrolling up the display.
-Solution: Don't set msg_scroll when defining a function and the user is not
- typing. (Yasuhiro Matsumoto)
-Files: src/eval.c
-
-
-*** ../vim-7.3.304/src/eval.c 2011-08-17 15:23:16.000000000 +0200
---- src/eval.c 2011-09-14 14:28:21.000000000 +0200
-***************
-*** 20786,20792 ****
- nesting = 0;
- for (;;)
- {
-! msg_scroll = TRUE;
- need_wait_return = FALSE;
- sourcing_lnum_off = sourcing_lnum;
-
---- 20786,20793 ----
- nesting = 0;
- for (;;)
- {
-! if (KeyTyped)
-! msg_scroll = TRUE;
- need_wait_return = FALSE;
- sourcing_lnum_off = sourcing_lnum;
-
-*** ../vim-7.3.304/src/version.c 2011-09-14 10:49:44.000000000 +0200
---- src/version.c 2011-09-14 14:30:49.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 305,
- /**/
-
---
-If someone questions your market projections, simply point out that your
-target market is "People who are nuts" and "People who will buy any damn
-thing". Nobody is going to tell you there aren't enough of those people
-to go around.
- (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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.306
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.306
-Problem: When closing a window there is a chance that deleting a scrollbar
- triggers a GUI resize, which uses the window while it is not in a
- valid state.
-Solution: Set the buffer pointer to NULL to be able to detect the invalid
- situation. Fix a few places that used the buffer pointer
- incorrectly.
-Files: src/buffer.c, src/ex_cmds.c, src/term.c, src/window.c
-
-
-*** ../vim-7.3.305/src/buffer.c 2011-05-19 13:40:47.000000000 +0200
---- src/buffer.c 2011-09-10 13:46:59.000000000 +0200
-***************
-*** 416,421 ****
---- 416,423 ----
- #endif
-
- buf_freeall(buf, (del_buf ? BFA_DEL : 0) + (wipe_buf ? BFA_WIPE : 0));
-+ if (win_valid(win) && win->w_buffer == buf)
-+ win->w_buffer = NULL; /* make sure we don't use the buffer now */
-
- #ifdef FEAT_AUTOCMD
- /* Autocommands may have deleted the buffer. */
-***************
-*** 560,565 ****
---- 562,571 ----
- #ifdef FEAT_DIFF
- diff_buf_delete(buf); /* Can't use 'diff' for unloaded buffer. */
- #endif
-+ #ifdef FEAT_SYN_HL
-+ if (curwin->w_buffer == buf)
-+ reset_synblock(curwin); /* remove any ownsyntax */
-+ #endif
-
- #ifdef FEAT_FOLDING
- /* No folds in an empty buffer. */
-***************
-*** 1346,1351 ****
---- 1352,1361 ----
- # endif
- #endif
- {
-+ #ifdef FEAT_SYN_HL
-+ if (prevbuf == curwin->w_buffer)
-+ reset_synblock(curwin);
-+ #endif
- #ifdef FEAT_WINDOWS
- if (unload)
- close_windows(prevbuf, FALSE);
-***************
-*** 1395,1404 ****
- foldUpdateAll(curwin); /* update folds (later). */
- #endif
-
-- #ifdef FEAT_SYN_HL
-- reset_synblock(curwin);
-- curwin->w_s = &(buf->b_s);
-- #endif
- /* Get the buffer in the current window. */
- curwin->w_buffer = buf;
- curbuf = buf;
---- 1405,1410 ----
-***************
-*** 1409,1414 ****
---- 1415,1424 ----
- diff_buf_add(curbuf);
- #endif
-
-+ #ifdef FEAT_SYN_HL
-+ curwin->w_s = &(buf->b_s);
-+ #endif
-+
- /* Cursor on first line by default. */
- curwin->w_cursor.lnum = 1;
- curwin->w_cursor.col = 0;
-*** ../vim-7.3.305/src/ex_cmds.c 2011-07-07 16:20:45.000000000 +0200
---- src/ex_cmds.c 2011-09-10 13:39:13.000000000 +0200
-***************
-*** 3619,3628 ****
- */
- check_arg_idx(curwin);
-
-- #ifdef FEAT_SYN_HL
-- reset_synblock(curwin); /* remove any ownsyntax */
-- #endif
--
- #ifdef FEAT_AUTOCMD
- if (!auto_buf)
- #endif
---- 3619,3624 ----
-*** ../vim-7.3.305/src/term.c 2011-05-10 16:41:13.000000000 +0200
---- src/term.c 2011-09-14 14:39:39.000000000 +0200
-***************
-*** 3017,3028 ****
- if (width < 0 || height < 0) /* just checking... */
- return;
-
-! if (State == HITRETURN || State == SETWSIZE) /* postpone the resizing */
- {
- State = SETWSIZE;
- return;
- }
-
- ++busy;
-
- #ifdef AMIGA
---- 3017,3036 ----
- if (width < 0 || height < 0) /* just checking... */
- return;
-
-! if (State == HITRETURN || State == SETWSIZE)
- {
-+ /* postpone the resizing */
- State = SETWSIZE;
- return;
- }
-
-+ /* curwin->w_buffer can be NULL when we are closing a window and the
-+ * buffer has already been closed and removing a scrollbar causes a resize
-+ * event. Don't resize then, it will happen after entering another buffer.
-+ */
-+ if (curwin->w_buffer == NULL)
-+ return;
-+
- ++busy;
-
- #ifdef AMIGA
-*** ../vim-7.3.305/src/window.c 2011-01-08 14:45:57.000000000 +0100
---- src/window.c 2011-09-10 14:04:56.000000000 +0200
-***************
-*** 1226,1240 ****
- }
- newp->w_tagstackidx = oldp->w_tagstackidx;
- newp->w_tagstacklen = oldp->w_tagstacklen;
-! # ifdef FEAT_FOLDING
- copyFoldingState(oldp, newp);
-! # endif
-
- win_init_some(newp, oldp);
-
-! # ifdef FEAT_SYN_HL
- check_colorcolumn(newp);
-! # endif
- }
-
- /*
---- 1226,1240 ----
- }
- newp->w_tagstackidx = oldp->w_tagstackidx;
- newp->w_tagstacklen = oldp->w_tagstacklen;
-! #ifdef FEAT_FOLDING
- copyFoldingState(oldp, newp);
-! #endif
-
- win_init_some(newp, oldp);
-
-! #ifdef FEAT_SYN_HL
- check_colorcolumn(newp);
-! #endif
- }
-
- /*
-***************
-*** 2212,2217 ****
---- 2212,2222 ----
- out_flush();
- #endif
-
-+ #ifdef FEAT_SYN_HL
-+ /* Free independent synblock before the buffer is freed. */
-+ reset_synblock(win);
-+ #endif
-+
- /*
- * Close the link to the buffer.
- */
-***************
-*** 2222,2228 ****
- if (!win_valid(win) || last_window() || curtab != prev_curtab)
- return;
-
-! /* Free the memory used for the window. */
- wp = win_free_mem(win, &dir, NULL);
-
- /* Make sure curwin isn't invalid. It can cause severe trouble when
---- 2227,2234 ----
- if (!win_valid(win) || last_window() || curtab != prev_curtab)
- return;
-
-! /* Free the memory used for the window and get the window that received
-! * the screen space. */
- wp = win_free_mem(win, &dir, NULL);
-
- /* Make sure curwin isn't invalid. It can cause severe trouble when
-***************
-*** 3247,3252 ****
---- 3253,3261 ----
- else
- wp->w_farsi = W_CONV;
- #endif
-+ #ifdef FEAT_SYN_HL
-+ wp->w_s = &wp->w_buffer->b_s;
-+ #endif
- }
-
- /*
-***************
-*** 4437,4443 ****
- #endif /* FEAT_GUI */
-
- #ifdef FEAT_SYN_HL
-- reset_synblock(wp); /* free independent synblock */
- vim_free(wp->w_p_cc_cols);
- #endif
-
---- 4446,4451 ----
-*** ../vim-7.3.305/src/version.c 2011-09-14 14:33:47.000000000 +0200
---- src/version.c 2011-09-14 14:35:30.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 306,
- /**/
-
---
-A consultant is a person who takes your money and annoys your employees while
-tirelessly searching for the best way to extend the consulting contract.
- (Scott Adams - The Dilbert principle)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.307
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.307
-Problem: Python 3 doesn't support slice assignment.
-Solution: Implement slices. (Brett Overesch, Roland Puntaier)
-Files: src/if_python3.c
-
-
-*** ../vim-7.3.306/src/if_python3.c 2011-08-28 16:00:14.000000000 +0200
---- src/if_python3.c 2011-09-14 15:01:26.000000000 +0200
-***************
-*** 855,862 ****
-
- static Py_ssize_t BufferLength(PyObject *);
- static PyObject *BufferItem(PyObject *, Py_ssize_t);
-! static PyObject* BufferSubscript(PyObject *self, PyObject* idx);
-! static Py_ssize_t BufferAsSubscript(PyObject *self, PyObject* idx, PyObject* val);
-
-
- /* Line range type - Implementation functions
---- 855,862 ----
-
- static Py_ssize_t BufferLength(PyObject *);
- static PyObject *BufferItem(PyObject *, Py_ssize_t);
-! static PyObject* BufferSubscript(PyObject *self, PyObject *idx);
-! static Py_ssize_t BufferAsSubscript(PyObject *self, PyObject *idx, PyObject *val);
-
-
- /* Line range type - Implementation functions
-***************
-*** 865,872 ****
-
- #define RangeType_Check(obj) ((obj)->ob_base.ob_type == &RangeType)
-
-! static PyObject* RangeSubscript(PyObject *self, PyObject* idx);
- static Py_ssize_t RangeAsItem(PyObject *, Py_ssize_t, PyObject *);
-
- /* Current objects type - Implementation functions
- * -----------------------------------------------
---- 865,873 ----
-
- #define RangeType_Check(obj) ((obj)->ob_base.ob_type == &RangeType)
-
-! static PyObject* RangeSubscript(PyObject *self, PyObject *idx);
- static Py_ssize_t RangeAsItem(PyObject *, Py_ssize_t, PyObject *);
-+ static Py_ssize_t RangeAsSubscript(PyObject *self, PyObject *idx, PyObject *val);
-
- /* Current objects type - Implementation functions
- * -----------------------------------------------
-***************
-*** 1035,1041 ****
- &step, &slicelen) < 0) {
- return NULL;
- }
-! return BufferSlice(self,start,stop);
- } else {
- PyErr_SetString(PyExc_IndexError, "Index must be int or slice");
- return NULL;
---- 1036,1042 ----
- &step, &slicelen) < 0) {
- return NULL;
- }
-! return BufferSlice(self, start, stop);
- } else {
- PyErr_SetString(PyExc_IndexError, "Index must be int or slice");
- return NULL;
-***************
-*** 1084,1090 ****
- PyMappingMethods RangeAsMapping = {
- /* mp_length */ (lenfunc)RangeLength,
- /* mp_subscript */ (binaryfunc)RangeSubscript,
-! /* mp_ass_subscript */ (objobjargproc)0,
- };
-
- /* Line range object - Implementation
---- 1085,1091 ----
- PyMappingMethods RangeAsMapping = {
- /* mp_length */ (lenfunc)RangeLength,
- /* mp_subscript */ (binaryfunc)RangeSubscript,
-! /* mp_ass_subscript */ (objobjargproc)RangeAsSubscript,
- };
-
- /* Line range object - Implementation
-***************
-*** 1123,1128 ****
---- 1124,1138 ----
- &((RangeObject *)(self))->end);
- }
-
-+ static Py_ssize_t
-+ RangeAsSlice(PyObject *self, Py_ssize_t lo, Py_ssize_t hi, PyObject *val)
-+ {
-+ return RBAsSlice(((RangeObject *)(self))->buf, lo, hi, val,
-+ ((RangeObject *)(self))->start,
-+ ((RangeObject *)(self))->end,
-+ &((RangeObject *)(self))->end);
-+ }
-+
- static PyObject *
- RangeSubscript(PyObject *self, PyObject* idx)
- {
-***************
-*** 1138,1150 ****
- &step, &slicelen) < 0) {
- return NULL;
- }
-! return RangeSlice(self,start,stop+1);
- } else {
- PyErr_SetString(PyExc_IndexError, "Index must be int or slice");
- return NULL;
- }
- }
-
- /* Buffer list object - Definitions
- */
-
---- 1148,1183 ----
- &step, &slicelen) < 0) {
- return NULL;
- }
-! return RangeSlice(self, start, stop);
- } else {
- PyErr_SetString(PyExc_IndexError, "Index must be int or slice");
- return NULL;
- }
- }
-
-+ static Py_ssize_t
-+ RangeAsSubscript(PyObject *self, PyObject *idx, PyObject *val)
-+ {
-+ if (PyLong_Check(idx)) {
-+ long n = PyLong_AsLong(idx);
-+ return RangeAsItem(self, n, val);
-+ } else if (PySlice_Check(idx)) {
-+ Py_ssize_t start, stop, step, slicelen;
-+
-+ if (PySlice_GetIndicesEx((PySliceObject *)idx,
-+ ((RangeObject *)(self))->end-((RangeObject *)(self))->start+1,
-+ &start, &stop,
-+ &step, &slicelen) < 0) {
-+ return -1;
-+ }
-+ return RangeAsSlice(self, start, stop, val);
-+ } else {
-+ PyErr_SetString(PyExc_IndexError, "Index must be int or slice");
-+ return -1;
-+ }
-+ }
-+
-+
- /* Buffer list object - Definitions
- */
-
-*** ../vim-7.3.306/src/version.c 2011-09-14 14:43:21.000000000 +0200
---- src/version.c 2011-09-14 14:58:16.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 307,
- /**/
-
---
-The process for understanding customers primarily involves sitting around with
-other marketing people and talking about what you would to if you were dumb
-enough to be a customer.
- (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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.308
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.308
-Problem: Writing to 'verbosefile' has problems, e.g. for :highlight.
-Solution: Do not use a separate verbose_write() function but write with the
- same code that does redirecting. (Yasuhiro Matsumoto)
-Files: src/message.c
-
-
-*** ../vim-7.3.307/src/message.c 2011-08-17 20:33:18.000000000 +0200
---- src/message.c 2011-09-14 15:32:57.000000000 +0200
-***************
-*** 39,45 ****
- static void msg_screen_putchar __ARGS((int c, int attr));
- static int msg_check_screen __ARGS((void));
- static void redir_write __ARGS((char_u *s, int maxlen));
-- static void verbose_write __ARGS((char_u *s, int maxlen));
- #ifdef FEAT_CON_DIALOG
- static char_u *msg_show_console_dialog __ARGS((char_u *message, char_u *buttons, int dfltbutton));
- static int confirm_msg_used = FALSE; /* displaying confirm_msg */
---- 39,44 ----
-***************
-*** 58,63 ****
---- 57,65 ----
- static struct msg_hist *last_msg_hist = NULL;
- static int msg_hist_len = 0;
-
-+ static FILE *verbose_fd = NULL;
-+ static int verbose_did_open = FALSE;
-+
- /*
- * When writing messages to the screen, there are many different situations.
- * A number of variables is used to remember the current state:
-***************
-*** 1551,1557 ****
- #ifdef FEAT_MBYTE
- if (has_mbyte && !IS_SPECIAL(c))
- {
-! int len = (*mb_ptr2len)(str);
-
- /* For multi-byte characters check for an illegal byte. */
- if (has_mbyte && MB_BYTE2LEN(*str) > len)
---- 1553,1559 ----
- #ifdef FEAT_MBYTE
- if (has_mbyte && !IS_SPECIAL(c))
- {
-! int len = (*mb_ptr2len)(str);
-
- /* For multi-byte characters check for an illegal byte. */
- if (has_mbyte && MB_BYTE2LEN(*str) > len)
-***************
-*** 1560,1569 ****
- *sp = str + 1;
- return buf;
- }
-! /* Since 'special' is TRUE the multi-byte character 'c' will be
-! * processed by get_special_key_name() */
-! c = (*mb_ptr2char)(str);
-! *sp = str + len;
- }
- else
- #endif
---- 1562,1571 ----
- *sp = str + 1;
- return buf;
- }
-! /* Since 'special' is TRUE the multi-byte character 'c' will be
-! * processed by get_special_key_name() */
-! c = (*mb_ptr2char)(str);
-! *sp = str + len;
- }
- else
- #endif
-***************
-*** 3065,3076 ****
- if (redir_off)
- return;
-
-! /*
-! * If 'verbosefile' is set write message in that file.
-! * Must come before the rest because of updating "msg_col".
-! */
-! if (*p_vfile != NUL)
-! verbose_write(s, maxlen);
-
- if (redirecting())
- {
---- 3067,3075 ----
- if (redir_off)
- return;
-
-! /* If 'verbosefile' is set prepare for writing in that file. */
-! if (*p_vfile != NUL && verbose_fd == NULL)
-! verbose_open();
-
- if (redirecting())
- {
-***************
-*** 3084,3092 ****
- write_reg_contents(redir_reg, (char_u *)" ", -1, TRUE);
- else if (redir_vname)
- var_redir_str((char_u *)" ", -1);
-! else if (redir_fd)
- #endif
- fputs(" ", redir_fd);
- ++cur_col;
- }
- }
---- 3083,3094 ----
- write_reg_contents(redir_reg, (char_u *)" ", -1, TRUE);
- else if (redir_vname)
- var_redir_str((char_u *)" ", -1);
-! else
- #endif
-+ if (redir_fd != NULL)
- fputs(" ", redir_fd);
-+ if (verbose_fd != NULL)
-+ fputs(" ", verbose_fd);
- ++cur_col;
- }
- }
-***************
-*** 3098,3110 ****
- var_redir_str(s, maxlen);
- #endif
-
-! /* Adjust the current column */
- while (*s != NUL && (maxlen < 0 || (int)(s - str) < maxlen))
- {
- #ifdef FEAT_EVAL
-! if (!redir_reg && !redir_vname && redir_fd != NULL)
- #endif
-! putc(*s, redir_fd);
- if (*s == '\r' || *s == '\n')
- cur_col = 0;
- else if (*s == '\t')
---- 3100,3115 ----
- var_redir_str(s, maxlen);
- #endif
-
-! /* Write and adjust the current column. */
- while (*s != NUL && (maxlen < 0 || (int)(s - str) < maxlen))
- {
- #ifdef FEAT_EVAL
-! if (!redir_reg && !redir_vname)
- #endif
-! if (redir_fd != NULL)
-! putc(*s, redir_fd);
-! if (verbose_fd != NULL)
-! putc(*s, verbose_fd);
- if (*s == '\r' || *s == '\n')
- cur_col = 0;
- else if (*s == '\t')
-***************
-*** 3122,3128 ****
- int
- redirecting()
- {
-! return redir_fd != NULL
- #ifdef FEAT_EVAL
- || redir_reg || redir_vname
- #endif
---- 3127,3133 ----
- int
- redirecting()
- {
-! return redir_fd != NULL || *p_vfile != NUL
- #ifdef FEAT_EVAL
- || redir_reg || redir_vname
- #endif
-***************
-*** 3180,3188 ****
- cmdline_row = msg_row;
- }
-
-- static FILE *verbose_fd = NULL;
-- static int verbose_did_open = FALSE;
--
- /*
- * Called when 'verbosefile' is set: stop writing to the file.
- */
---- 3185,3190 ----
-***************
-*** 3220,3268 ****
- }
-
- /*
-- * Write a string to 'verbosefile'.
-- * When "maxlen" is -1 write the whole string, otherwise up to "maxlen" bytes.
-- */
-- static void
-- verbose_write(str, maxlen)
-- char_u *str;
-- int maxlen;
-- {
-- char_u *s = str;
-- static int cur_col = 0;
--
-- /* Open the file when called the first time. */
-- if (verbose_fd == NULL)
-- verbose_open();
--
-- if (verbose_fd != NULL)
-- {
-- /* If the string doesn't start with CR or NL, go to msg_col */
-- if (*s != '\n' && *s != '\r')
-- {
-- while (cur_col < msg_col)
-- {
-- fputs(" ", verbose_fd);
-- ++cur_col;
-- }
-- }
--
-- /* Adjust the current column */
-- while (*s != NUL && (maxlen < 0 || (int)(s - str) < maxlen))
-- {
-- putc(*s, verbose_fd);
-- if (*s == '\r' || *s == '\n')
-- cur_col = 0;
-- else if (*s == '\t')
-- cur_col += (8 - cur_col % 8);
-- else
-- ++cur_col;
-- ++s;
-- }
-- }
-- }
--
-- /*
- * Give a warning message (for searching).
- * Use 'w' highlighting and may repeat the message after redrawing
- */
---- 3222,3227 ----
-*** ../vim-7.3.307/src/version.c 2011-09-14 15:01:54.000000000 +0200
---- src/version.c 2011-09-14 15:38:31.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 308,
- /**/
-
---
-The average life of an organization chart is six months. You can safely
-ignore any order from your boss that would take six months to complete.
- (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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.309
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.309 (after 7.3.307)
-Problem: Warnings for pointer types.
-Solution: Change PySliceObject to PyObject.
-Files: src/if_python3.c
-
-
-*** ../vim-7.3.308/src/if_python3.c 2011-09-14 15:01:54.000000000 +0200
---- src/if_python3.c 2011-09-14 15:30:45.000000000 +0200
-***************
-*** 1030,1036 ****
- } else if (PySlice_Check(idx)) {
- Py_ssize_t start, stop, step, slicelen;
-
-! if (PySlice_GetIndicesEx((PySliceObject *)idx,
- (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count+1,
- &start, &stop,
- &step, &slicelen) < 0) {
---- 1030,1036 ----
- } else if (PySlice_Check(idx)) {
- Py_ssize_t start, stop, step, slicelen;
-
-! if (PySlice_GetIndicesEx((PyObject *)idx,
- (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count+1,
- &start, &stop,
- &step, &slicelen) < 0) {
-***************
-*** 1054,1060 ****
- } else if (PySlice_Check(idx)) {
- Py_ssize_t start, stop, step, slicelen;
-
-! if (PySlice_GetIndicesEx((PySliceObject *)idx,
- (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count+1,
- &start, &stop,
- &step, &slicelen) < 0) {
---- 1054,1060 ----
- } else if (PySlice_Check(idx)) {
- Py_ssize_t start, stop, step, slicelen;
-
-! if (PySlice_GetIndicesEx((PyObject *)idx,
- (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count+1,
- &start, &stop,
- &step, &slicelen) < 0) {
-***************
-*** 1142,1148 ****
- } else if (PySlice_Check(idx)) {
- Py_ssize_t start, stop, step, slicelen;
-
-! if (PySlice_GetIndicesEx((PySliceObject *)idx,
- ((RangeObject *)(self))->end-((RangeObject *)(self))->start+1,
- &start, &stop,
- &step, &slicelen) < 0) {
---- 1142,1148 ----
- } else if (PySlice_Check(idx)) {
- Py_ssize_t start, stop, step, slicelen;
-
-! if (PySlice_GetIndicesEx((PyObject *)idx,
- ((RangeObject *)(self))->end-((RangeObject *)(self))->start+1,
- &start, &stop,
- &step, &slicelen) < 0) {
-***************
-*** 1164,1170 ****
- } else if (PySlice_Check(idx)) {
- Py_ssize_t start, stop, step, slicelen;
-
-! if (PySlice_GetIndicesEx((PySliceObject *)idx,
- ((RangeObject *)(self))->end-((RangeObject *)(self))->start+1,
- &start, &stop,
- &step, &slicelen) < 0) {
---- 1164,1170 ----
- } else if (PySlice_Check(idx)) {
- Py_ssize_t start, stop, step, slicelen;
-
-! if (PySlice_GetIndicesEx((PyObject *)idx,
- ((RangeObject *)(self))->end-((RangeObject *)(self))->start+1,
- &start, &stop,
- &step, &slicelen) < 0) {
-*** ../vim-7.3.308/src/version.c 2011-09-14 15:39:26.000000000 +0200
---- src/version.c 2011-09-14 15:40:17.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 309,
- /**/
-
---
-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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.310
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.310
-Problem: Code not following Vim style.
-Solution: Fix the style. (Elias Diem)
-Files: src/gui_photon.c
-
-
-*** ../vim-7.3.309/src/gui_photon.c 2011-09-07 19:08:57.000000000 +0200
---- src/gui_photon.c 2011-09-14 16:01:55.000000000 +0200
-***************
-*** 477,483 ****
- }
- #endif
-
-! for(i = 0; special_keys[i].key_sym != 0; i++)
- {
- if (special_keys[i].key_sym == key->key_cap)
- {
---- 477,483 ----
- }
- #endif
-
-! for (i = 0; special_keys[i].key_sym != 0; i++)
- {
- if (special_keys[i].key_sym == key->key_cap)
- {
-***************
-*** 758,764 ****
- if (damage->next != NULL)
- damage = damage->next;
-
-! while(damage != NULL)
- {
- r = &damage->rect;
- gui_redraw(
---- 758,764 ----
- if (damage->next != NULL)
- damage = damage->next;
-
-! while (damage != NULL)
- {
- r = &damage->rect;
- gui_redraw(
-***************
-*** 798,809 ****
-
- /* This is used for pulldown/popup menus and also toolbar buttons */
- static int
-! gui_ph_handle_menu( PtWidget_t *widget, void *data, PtCallbackInfo_t *info )
- {
-! if( data != NULL )
- {
- vimmenu_T *menu = (vimmenu_T *) data;
-! gui_menu_cb( menu );
- }
- return Pt_CONTINUE;
- }
---- 798,809 ----
-
- /* This is used for pulldown/popup menus and also toolbar buttons */
- static int
-! gui_ph_handle_menu(PtWidget_t *widget, void *data, PtCallbackInfo_t *info)
- {
-! if (data != NULL)
- {
- vimmenu_T *menu = (vimmenu_T *) data;
-! gui_menu_cb(menu);
- }
- return Pt_CONTINUE;
- }
-***************
-*** 813,821 ****
- gui_ph_handle_menu_unrealized(
- PtWidget_t *widget,
- void *data,
-! PtCallbackInfo_t *info )
- {
-! PtGiveFocus( gui.vimTextArea, NULL );
- return Pt_CONTINUE;
- }
-
---- 813,821 ----
- gui_ph_handle_menu_unrealized(
- PtWidget_t *widget,
- void *data,
-! PtCallbackInfo_t *info)
- {
-! PtGiveFocus(gui.vimTextArea, NULL);
- return Pt_CONTINUE;
- }
-
-***************
-*** 823,831 ****
- gui_ph_handle_window_open(
- PtWidget_t *widget,
- void *data,
-! PtCallbackInfo_t *info )
- {
-! gui_set_shellsize( FALSE, TRUE, RESIZE_BOTH );
- return Pt_CONTINUE;
- }
-
---- 823,831 ----
- gui_ph_handle_window_open(
- PtWidget_t *widget,
- void *data,
-! PtCallbackInfo_t *info)
- {
-! gui_set_shellsize(FALSE, TRUE, RESIZE_BOTH);
- return Pt_CONTINUE;
- }
-
-***************
-*** 836,909 ****
-
- /* TODO: Set a clipping rect? */
- static void
-! gui_ph_draw_start( void )
- {
- PhGC_t *gc;
-
- gc = PgGetGC();
-! PgSetRegion( PtWidgetRid( PtFindDisjoint( gui.vimTextArea ) ) );
-! PgClearClippingsCx( gc );
-! PgClearTranslationCx( gc );
-
-! PtWidgetOffset( gui.vimTextArea, &gui_ph_raw_offset );
-! PhTranslatePoint( &gui_ph_raw_offset, PtWidgetPos( gui.vimTextArea, NULL ) );
-
-! PgSetTranslation( &gui_ph_raw_offset, Pg_RELATIVE );
- }
-
- static void
-! gui_ph_draw_end( void )
- {
- gui_ph_raw_offset.x = -gui_ph_raw_offset.x;
- gui_ph_raw_offset.y = -gui_ph_raw_offset.y;
-! PgSetTranslation( &gui_ph_raw_offset, Pg_RELATIVE );
- }
-
- #ifdef USE_PANEL_GROUP
- static vimmenu_T *
-! gui_ph_find_buffer_item( char_u *name )
- {
- vimmenu_T *top_level = root_menu;
- vimmenu_T *items = NULL;
-
-! while( top_level != NULL &&
-! ( STRCMP( top_level->dname, "Buffers" ) != 0 ) )
- top_level = top_level->next;
-
-! if( top_level != NULL )
- {
- items = top_level->children;
-
-! while( items != NULL &&
-! ( STRCMP( items->dname, name ) != 0 ) )
- items = items->next;
- }
- return items;
- }
-
- static void
-! gui_ph_pg_set_buffer_num( int_u buf_num )
- {
- int i;
- char search[16];
- char *mark;
-
-! if( gui.vimTextArea == NULL || buf_num == 0 )
- return;
-
- search[0] = '(';
-! ultoa( buf_num, &search[1], 10 );
-! STRCAT( search, ")" );
-
-! for( i = 0; i < num_panels; i++ )
- {
- /* find the last "(" in the panel title and see if the buffer
- * number in the title matches the one we're looking for */
-! mark = STRRCHR( panel_titles[ i ], '(' );
-! if( mark != NULL && STRCMP( mark, search ) == 0 )
- {
-! PtSetResource( gui.vimPanelGroup, Pt_ARG_PG_CURRENT_INDEX,
-! i, 0 );
- }
- }
- }
---- 836,909 ----
-
- /* TODO: Set a clipping rect? */
- static void
-! gui_ph_draw_start(void)
- {
- PhGC_t *gc;
-
- gc = PgGetGC();
-! PgSetRegion(PtWidgetRid(PtFindDisjoint(gui.vimTextArea)));
-! PgClearClippingsCx(gc);
-! PgClearTranslationCx(gc);
-
-! PtWidgetOffset(gui.vimTextArea, &gui_ph_raw_offset);
-! PhTranslatePoint(&gui_ph_raw_offset, PtWidgetPos(gui.vimTextArea, NULL));
-
-! PgSetTranslation(&gui_ph_raw_offset, Pg_RELATIVE);
- }
-
- static void
-! gui_ph_draw_end(void)
- {
- gui_ph_raw_offset.x = -gui_ph_raw_offset.x;
- gui_ph_raw_offset.y = -gui_ph_raw_offset.y;
-! PgSetTranslation(&gui_ph_raw_offset, Pg_RELATIVE);
- }
-
- #ifdef USE_PANEL_GROUP
- static vimmenu_T *
-! gui_ph_find_buffer_item(char_u *name)
- {
- vimmenu_T *top_level = root_menu;
- vimmenu_T *items = NULL;
-
-! while (top_level != NULL &&
-! (STRCMP(top_level->dname, "Buffers") != 0))
- top_level = top_level->next;
-
-! if (top_level != NULL)
- {
- items = top_level->children;
-
-! while (items != NULL &&
-! (STRCMP(items->dname, name) != 0))
- items = items->next;
- }
- return items;
- }
-
- static void
-! gui_ph_pg_set_buffer_num(int_u buf_num)
- {
- int i;
- char search[16];
- char *mark;
-
-! if (gui.vimTextArea == NULL || buf_num == 0)
- return;
-
- search[0] = '(';
-! ultoa(buf_num, &search[1], 10);
-! STRCAT(search, ")");
-
-! for (i = 0; i < num_panels; i++)
- {
- /* find the last "(" in the panel title and see if the buffer
- * number in the title matches the one we're looking for */
-! mark = STRRCHR(panel_titles[ i ], '(');
-! if (mark != NULL && STRCMP(mark, search) == 0)
- {
-! PtSetResource(gui.vimPanelGroup, Pt_ARG_PG_CURRENT_INDEX,
-! i, 0);
- }
- }
- }
-***************
-*** 912,930 ****
- gui_ph_handle_pg_change(
- PtWidget_t *widget,
- void *data,
-! PtCallbackInfo_t *info )
- {
- vimmenu_T *menu;
- PtPanelGroupCallback_t *panel;
-
-! if( info->event != NULL )
- {
- panel = info->cbdata;
-! if( panel->new_panel != NULL )
- {
-! menu = gui_ph_find_buffer_item( panel->new_panel );
-! if( menu )
-! gui_menu_cb( menu );
- }
- }
- return Pt_CONTINUE;
---- 912,930 ----
- gui_ph_handle_pg_change(
- PtWidget_t *widget,
- void *data,
-! PtCallbackInfo_t *info)
- {
- vimmenu_T *menu;
- PtPanelGroupCallback_t *panel;
-
-! if (info->event != NULL)
- {
- panel = info->cbdata;
-! if (panel->new_panel != NULL)
- {
-! menu = gui_ph_find_buffer_item(panel->new_panel);
-! if (menu)
-! gui_menu_cb(menu);
- }
- }
- return Pt_CONTINUE;
-***************
-*** 935,951 ****
- short *top,
- short *bottom,
- short *left,
-! short *right )
- {
- unsigned short abs_raw_x, abs_raw_y, abs_panel_x, abs_panel_y;
- const unsigned short *margin_top, *margin_bottom;
- const unsigned short *margin_left, *margin_right;
-
-! PtGetAbsPosition( gui.vimTextArea, &abs_raw_x, &abs_raw_y );
-! PtGetAbsPosition( gui.vimPanelGroup, &abs_panel_x, &abs_panel_y );
-
-! PtGetResource( gui.vimPanelGroup, Pt_ARG_MARGIN_RIGHT, &margin_right, 0 );
-! PtGetResource( gui.vimPanelGroup, Pt_ARG_MARGIN_BOTTOM, &margin_bottom, 0 );
-
- abs_raw_x -= abs_panel_x;
- abs_raw_y -= abs_panel_y;
---- 935,951 ----
- short *top,
- short *bottom,
- short *left,
-! short *right)
- {
- unsigned short abs_raw_x, abs_raw_y, abs_panel_x, abs_panel_y;
- const unsigned short *margin_top, *margin_bottom;
- const unsigned short *margin_left, *margin_right;
-
-! PtGetAbsPosition(gui.vimTextArea, &abs_raw_x, &abs_raw_y);
-! PtGetAbsPosition(gui.vimPanelGroup, &abs_panel_x, &abs_panel_y);
-
-! PtGetResource(gui.vimPanelGroup, Pt_ARG_MARGIN_RIGHT, &margin_right, 0);
-! PtGetResource(gui.vimPanelGroup, Pt_ARG_MARGIN_BOTTOM, &margin_bottom, 0);
-
- abs_raw_x -= abs_panel_x;
- abs_raw_y -= abs_panel_y;
-***************
-*** 959,979 ****
-
- /* Used for the tabs for PtPanelGroup */
- static int
-! gui_ph_is_buffer_item( vimmenu_T *menu, vimmenu_T *parent )
- {
- char *mark;
-
-! if( STRCMP( parent->dname, "Buffers" ) == 0 )
- {
- /* Look for '(' digits ')' */
-! mark = vim_strchr( menu->dname, '(' );
-! if( mark != NULL )
- {
- mark++;
-! while( isdigit( *mark ) )
- mark++;
-
-! if( *mark == ')' )
- return TRUE;
- }
- }
---- 959,979 ----
-
- /* Used for the tabs for PtPanelGroup */
- static int
-! gui_ph_is_buffer_item(vimmenu_T *menu, vimmenu_T *parent)
- {
- char *mark;
-
-! if (STRCMP(parent->dname, "Buffers") == 0)
- {
- /* Look for '(' digits ')' */
-! mark = vim_strchr(menu->dname, '(');
-! if (mark != NULL)
- {
- mark++;
-! while (isdigit(*mark))
- mark++;
-
-! if (*mark == ')')
- return TRUE;
- }
- }
-***************
-*** 981,1043 ****
- }
-
- static void
-! gui_ph_pg_add_buffer(char *name )
- {
- char **new_titles = NULL;
-
-! new_titles = (char **) alloc( ( num_panels + 1 ) * sizeof( char ** ) );
-! if( new_titles != NULL )
- {
-! if( num_panels > 0 )
-! memcpy( new_titles, panel_titles, num_panels * sizeof( char ** ) );
-
- new_titles[ num_panels++ ] = name;
-
-! PtSetResource( gui.vimPanelGroup, Pt_ARG_PG_PANEL_TITLES, new_titles,
-! num_panels );
-
-! vim_free( panel_titles );
- panel_titles = new_titles;
- }
- }
-
- static void
-! gui_ph_pg_remove_buffer( char *name )
- {
- int i;
- char **new_titles = NULL;
-
- /* If there is only 1 panel, we just use the temporary place holder */
-! if( num_panels > 1 )
- {
-! new_titles = (char **) alloc( ( num_panels - 1 ) * sizeof( char ** ) );
-! if( new_titles != NULL )
- {
- char **s = new_titles;
- /* Copy all the titles except the one we're removing */
-! for( i = 0; i < num_panels; i++ )
- {
-! if( STRCMP( panel_titles[ i ], name ) != 0 )
- {
- *s++ = panel_titles[ i ];
- }
- }
- num_panels--;
-
-! PtSetResource( gui.vimPanelGroup, Pt_ARG_PG_PANEL_TITLES, new_titles,
-! num_panels );
-
-! vim_free( panel_titles );
- panel_titles = new_titles;
- }
- }
- else
- {
- num_panels--;
-! PtSetResource( gui.vimPanelGroup, Pt_ARG_PG_PANEL_TITLES, &empty_title,
-! 1 );
-
-! vim_free( panel_titles );
- panel_titles = NULL;
- }
- }
---- 981,1043 ----
- }
-
- static void
-! gui_ph_pg_add_buffer(char *name)
- {
- char **new_titles = NULL;
-
-! new_titles = (char **) alloc((num_panels + 1) * sizeof(char **));
-! if (new_titles != NULL)
- {
-! if (num_panels > 0)
-! memcpy(new_titles, panel_titles, num_panels * sizeof(char **));
-
- new_titles[ num_panels++ ] = name;
-
-! PtSetResource(gui.vimPanelGroup, Pt_ARG_PG_PANEL_TITLES, new_titles,
-! num_panels);
-
-! vim_free(panel_titles);
- panel_titles = new_titles;
- }
- }
-
- static void
-! gui_ph_pg_remove_buffer(char *name)
- {
- int i;
- char **new_titles = NULL;
-
- /* If there is only 1 panel, we just use the temporary place holder */
-! if (num_panels > 1)
- {
-! new_titles = (char **) alloc((num_panels - 1) * sizeof(char **));
-! if (new_titles != NULL)
- {
- char **s = new_titles;
- /* Copy all the titles except the one we're removing */
-! for (i = 0; i < num_panels; i++)
- {
-! if (STRCMP(panel_titles[ i ], name) != 0)
- {
- *s++ = panel_titles[ i ];
- }
- }
- num_panels--;
-
-! PtSetResource(gui.vimPanelGroup, Pt_ARG_PG_PANEL_TITLES, new_titles,
-! num_panels);
-
-! vim_free(panel_titles);
- panel_titles = new_titles;
- }
- }
- else
- {
- num_panels--;
-! PtSetResource(gui.vimPanelGroup, Pt_ARG_PG_PANEL_TITLES, &empty_title,
-! 1);
-
-! vim_free(panel_titles);
- panel_titles = NULL;
- }
- }
-***************
-*** 1047,1060 ****
- gui_ph_handle_buffer_remove(
- PtWidget_t *widget,
- void *data,
-! PtCallbackInfo_t *info )
- {
- vimmenu_T *menu;
-
-! if( data != NULL )
- {
- menu = (vimmenu_T *) data;
-! gui_ph_pg_remove_buffer( menu->dname );
- }
-
- return Pt_CONTINUE;
---- 1047,1060 ----
- gui_ph_handle_buffer_remove(
- PtWidget_t *widget,
- void *data,
-! PtCallbackInfo_t *info)
- {
- vimmenu_T *menu;
-
-! if (data != NULL)
- {
- menu = (vimmenu_T *) data;
-! gui_ph_pg_remove_buffer(menu->dname);
- }
-
- return Pt_CONTINUE;
-***************
-*** 1062,1074 ****
- #endif
-
- static int
-! gui_ph_pane_resize( PtWidget_t *widget, void *data, PtCallbackInfo_t *info )
- {
-! if( PtWidgetIsRealized( widget ) )
- {
- is_ignore_draw = TRUE;
-! PtStartFlux( gui.vimContainer );
-! PtContainerHold( gui.vimContainer );
- }
-
- return Pt_CONTINUE;
---- 1062,1074 ----
- #endif
-
- static int
-! gui_ph_pane_resize(PtWidget_t *widget, void *data, PtCallbackInfo_t *info)
- {
-! if (PtWidgetIsRealized(widget))
- {
- is_ignore_draw = TRUE;
-! PtStartFlux(gui.vimContainer);
-! PtContainerHold(gui.vimContainer);
- }
-
- return Pt_CONTINUE;
-***************
-*** 1078,1084 ****
-
- #ifdef FEAT_MBYTE
- void
-! gui_ph_encoding_changed( int new_encoding )
- {
- /* Default encoding is latin1 */
- char *charset = "latin1";
---- 1078,1084 ----
-
- #ifdef FEAT_MBYTE
- void
-! gui_ph_encoding_changed(int new_encoding)
- {
- /* Default encoding is latin1 */
- char *charset = "latin1";
-***************
-*** 1094,1106 ****
- { DBCS_CHS, "gb" }
- };
-
-! for( i = 0; i < ARRAY_LENGTH( charsets ); i++ )
- {
-! if( new_encoding == charsets[ i ].encoding )
- charset = charsets[ i ].name;
- }
-
-! charset_translate = PxTranslateSet( charset_translate, charset );
- }
- #endif
-
---- 1094,1106 ----
- { DBCS_CHS, "gb" }
- };
-
-! for (i = 0; i < ARRAY_LENGTH(charsets); i++)
- {
-! if (new_encoding == charsets[ i ].encoding)
- charset = charsets[ i ].name;
- }
-
-! charset_translate = PxTranslateSet(charset_translate, charset);
- }
- #endif
-
-***************
-*** 1112,1118 ****
- int *argc;
- char **argv;
- {
-! PtInit( NULL );
- }
-
- int
---- 1112,1118 ----
- int *argc;
- char **argv;
- {
-! PtInit(NULL);
- }
-
- int
-***************
-*** 1124,1213 ****
- PhDim_t window_size = {100, 100}; /* Arbitrary values */
- PhPoint_t pos = {0, 0};
-
-! gui.event_buffer = (PhEvent_t *) alloc( EVENT_BUFFER_SIZE );
-! if( gui.event_buffer == NULL )
- return FAIL;
-
- /* Get a translation so we can convert from ISO Latin-1 to UTF */
-! charset_translate = PxTranslateSet( NULL, "latin1" );
-
- /* The +2 is for the 1 pixel dark line on each side */
- gui.border_offset = gui.border_width = GUI_PH_MARGIN + 2;
-
- /* Handle close events ourselves */
-! PtSetArg( &args[ n++ ], Pt_ARG_WINDOW_MANAGED_FLAGS, Pt_FALSE, Ph_WM_CLOSE );
-! PtSetArg( &args[ n++ ], Pt_ARG_WINDOW_NOTIFY_FLAGS, Pt_TRUE,
-! Ph_WM_CLOSE | Ph_WM_RESIZE | Ph_WM_FOCUS );
-! PtSetArg( &args[ n++ ], Pt_ARG_DIM, &window_size, 0 );
-! gui.vimWindow = PtCreateWidget( PtWindow, NULL, n, args );
-! if( gui.vimWindow == NULL )
- return FAIL;
-
-! PtAddCallback( gui.vimWindow, Pt_CB_WINDOW, gui_ph_handle_window_cb, NULL );
-! PtAddCallback( gui.vimWindow, Pt_CB_WINDOW_OPENING,
-! gui_ph_handle_window_open, NULL );
-
- n = 0;
-! PtSetArg( &args[ n++ ], Pt_ARG_ANCHOR_FLAGS, Pt_ANCHOR_ALL, Pt_IS_ANCHORED );
-! PtSetArg( &args[ n++ ], Pt_ARG_DIM, &window_size, 0 );
-! PtSetArg( &args[ n++ ], Pt_ARG_POS, &pos, 0 );
-
- #ifdef USE_PANEL_GROUP
- /* Put in a temprary place holder title */
-! PtSetArg( &args[ n++ ], Pt_ARG_PG_PANEL_TITLES, &empty_title, 1 );
-
-! gui.vimPanelGroup = PtCreateWidget( PtPanelGroup, gui.vimWindow, n, args );
-! if( gui.vimPanelGroup == NULL )
- return FAIL;
-
-! PtAddCallback( gui.vimPanelGroup, Pt_CB_PG_PANEL_SWITCHING,
-! gui_ph_handle_pg_change, NULL );
- #else
- /* Turn off all edge decorations */
-! PtSetArg( &args[ n++ ], Pt_ARG_BASIC_FLAGS, Pt_FALSE, Pt_ALL );
-! PtSetArg( &args[ n++ ], Pt_ARG_BEVEL_WIDTH, 0, 0 );
-! PtSetArg( &args[ n++ ], Pt_ARG_MARGIN_WIDTH, 0, 0 );
-! PtSetArg( &args[ n++ ], Pt_ARG_MARGIN_HEIGHT, 0, 0 );
-! PtSetArg( &args[ n++ ], Pt_ARG_CONTAINER_FLAGS, Pt_TRUE, Pt_AUTO_EXTENT );
-
-! gui.vimContainer = PtCreateWidget( PtPane, gui.vimWindow, n, args );
-! if( gui.vimContainer == NULL )
- return FAIL;
-
-! PtAddCallback( gui.vimContainer, Pt_CB_RESIZE, gui_ph_pane_resize, NULL );
- #endif
-
- /* Size for the text area is set in gui_mch_set_text_area_pos */
- n = 0;
-
-! PtSetArg( &args[ n++ ], Pt_ARG_RAW_DRAW_F, gui_ph_handle_raw_draw, 1 );
-! PtSetArg( &args[ n++ ], Pt_ARG_BEVEL_WIDTH, GUI_PH_MARGIN, 0 );
- /*
- * Using focus render also causes the whole widget to be redrawn
- * whenever it changes focus, which is very annoying :p
- */
-! PtSetArg( &args[ n++ ], Pt_ARG_FLAGS, Pt_TRUE,
-! Pt_GETS_FOCUS | Pt_HIGHLIGHTED );
- #ifndef FEAT_MOUSESHAPE
-! PtSetArg( &args[ n++ ], Pt_ARG_CURSOR_TYPE, GUI_PH_MOUSE_TYPE, 0 );
-! PtSetArg( &args[ n++ ], Pt_ARG_CURSOR_COLOR, gui_ph_mouse_color, 0 );
- #endif
-
-! gui.vimTextArea = PtCreateWidget( PtRaw, Pt_DFLT_PARENT, n, args );
-! if( gui.vimTextArea == NULL)
- return FAIL;
-
- /* TODO: use PtAddEventHandlers instead? */
- /* Not using Ph_EV_BUT_REPEAT because vim wouldn't use it anyway */
-! PtAddEventHandler( gui.vimTextArea,
- Ph_EV_BUT_PRESS | Ph_EV_BUT_RELEASE | Ph_EV_PTR_MOTION_BUTTON,
-! gui_ph_handle_mouse, NULL );
-! PtAddEventHandler( gui.vimTextArea, Ph_EV_KEY,
-! gui_ph_handle_keyboard, NULL );
-! PtAddCallback( gui.vimTextArea, Pt_CB_GOT_FOCUS,
-! gui_ph_handle_focus, NULL );
-! PtAddCallback( gui.vimTextArea, Pt_CB_LOST_FOCUS,
-! gui_ph_handle_focus, NULL );
-
- /*
- * Now that the text area widget has been created, set up the colours,
---- 1124,1213 ----
- PhDim_t window_size = {100, 100}; /* Arbitrary values */
- PhPoint_t pos = {0, 0};
-
-! gui.event_buffer = (PhEvent_t *) alloc(EVENT_BUFFER_SIZE);
-! if (gui.event_buffer == NULL)
- return FAIL;
-
- /* Get a translation so we can convert from ISO Latin-1 to UTF */
-! charset_translate = PxTranslateSet(NULL, "latin1");
-
- /* The +2 is for the 1 pixel dark line on each side */
- gui.border_offset = gui.border_width = GUI_PH_MARGIN + 2;
-
- /* Handle close events ourselves */
-! PtSetArg(&args[ n++ ], Pt_ARG_WINDOW_MANAGED_FLAGS, Pt_FALSE, Ph_WM_CLOSE);
-! PtSetArg(&args[ n++ ], Pt_ARG_WINDOW_NOTIFY_FLAGS, Pt_TRUE,
-! Ph_WM_CLOSE | Ph_WM_RESIZE | Ph_WM_FOCUS);
-! PtSetArg(&args[ n++ ], Pt_ARG_DIM, &window_size, 0);
-! gui.vimWindow = PtCreateWidget(PtWindow, NULL, n, args);
-! if (gui.vimWindow == NULL)
- return FAIL;
-
-! PtAddCallback(gui.vimWindow, Pt_CB_WINDOW, gui_ph_handle_window_cb, NULL);
-! PtAddCallback(gui.vimWindow, Pt_CB_WINDOW_OPENING,
-! gui_ph_handle_window_open, NULL);
-
- n = 0;
-! PtSetArg(&args[ n++ ], Pt_ARG_ANCHOR_FLAGS, Pt_ANCHOR_ALL, Pt_IS_ANCHORED);
-! PtSetArg(&args[ n++ ], Pt_ARG_DIM, &window_size, 0);
-! PtSetArg(&args[ n++ ], Pt_ARG_POS, &pos, 0);
-
- #ifdef USE_PANEL_GROUP
- /* Put in a temprary place holder title */
-! PtSetArg(&args[ n++ ], Pt_ARG_PG_PANEL_TITLES, &empty_title, 1);
-
-! gui.vimPanelGroup = PtCreateWidget(PtPanelGroup, gui.vimWindow, n, args);
-! if (gui.vimPanelGroup == NULL)
- return FAIL;
-
-! PtAddCallback(gui.vimPanelGroup, Pt_CB_PG_PANEL_SWITCHING,
-! gui_ph_handle_pg_change, NULL);
- #else
- /* Turn off all edge decorations */
-! PtSetArg(&args[ n++ ], Pt_ARG_BASIC_FLAGS, Pt_FALSE, Pt_ALL);
-! PtSetArg(&args[ n++ ], Pt_ARG_BEVEL_WIDTH, 0, 0);
-! PtSetArg(&args[ n++ ], Pt_ARG_MARGIN_WIDTH, 0, 0);
-! PtSetArg(&args[ n++ ], Pt_ARG_MARGIN_HEIGHT, 0, 0);
-! PtSetArg(&args[ n++ ], Pt_ARG_CONTAINER_FLAGS, Pt_TRUE, Pt_AUTO_EXTENT);
-
-! gui.vimContainer = PtCreateWidget(PtPane, gui.vimWindow, n, args);
-! if (gui.vimContainer == NULL)
- return FAIL;
-
-! PtAddCallback(gui.vimContainer, Pt_CB_RESIZE, gui_ph_pane_resize, NULL);
- #endif
-
- /* Size for the text area is set in gui_mch_set_text_area_pos */
- n = 0;
-
-! PtSetArg(&args[ n++ ], Pt_ARG_RAW_DRAW_F, gui_ph_handle_raw_draw, 1);
-! PtSetArg(&args[ n++ ], Pt_ARG_BEVEL_WIDTH, GUI_PH_MARGIN, 0);
- /*
- * Using focus render also causes the whole widget to be redrawn
- * whenever it changes focus, which is very annoying :p
- */
-! PtSetArg(&args[ n++ ], Pt_ARG_FLAGS, Pt_TRUE,
-! Pt_GETS_FOCUS | Pt_HIGHLIGHTED);
- #ifndef FEAT_MOUSESHAPE
-! PtSetArg(&args[ n++ ], Pt_ARG_CURSOR_TYPE, GUI_PH_MOUSE_TYPE, 0);
-! PtSetArg(&args[ n++ ], Pt_ARG_CURSOR_COLOR, gui_ph_mouse_color, 0);
- #endif
-
-! gui.vimTextArea = PtCreateWidget(PtRaw, Pt_DFLT_PARENT, n, args);
-! if (gui.vimTextArea == NULL)
- return FAIL;
-
- /* TODO: use PtAddEventHandlers instead? */
- /* Not using Ph_EV_BUT_REPEAT because vim wouldn't use it anyway */
-! PtAddEventHandler(gui.vimTextArea,
- Ph_EV_BUT_PRESS | Ph_EV_BUT_RELEASE | Ph_EV_PTR_MOTION_BUTTON,
-! gui_ph_handle_mouse, NULL);
-! PtAddEventHandler(gui.vimTextArea, Ph_EV_KEY,
-! gui_ph_handle_keyboard, NULL);
-! PtAddCallback(gui.vimTextArea, Pt_CB_GOT_FOCUS,
-! gui_ph_handle_focus, NULL);
-! PtAddCallback(gui.vimTextArea, Pt_CB_LOST_FOCUS,
-! gui_ph_handle_focus, NULL);
-
- /*
- * Now that the text area widget has been created, set up the colours,
-***************
-*** 1218,1278 ****
- * Create the two timers, not as accurate as using the kernel timer
- * functions, but good enough
- */
-! gui_ph_timer_cursor = PtCreateWidget( PtTimer, gui.vimWindow, 0, NULL );
-! if( gui_ph_timer_cursor == NULL )
- return FAIL;
-
-! gui_ph_timer_timeout = PtCreateWidget( PtTimer, gui.vimWindow, 0, NULL );
-! if( gui_ph_timer_timeout == NULL )
- return FAIL;
-
-! PtAddCallback( gui_ph_timer_cursor, Pt_CB_TIMER_ACTIVATE,
- gui_ph_handle_timer_cursor, NULL);
-! PtAddCallback( gui_ph_timer_timeout, Pt_CB_TIMER_ACTIVATE,
- gui_ph_handle_timer_timeout, NULL);
-
- #ifdef FEAT_MENU
- n = 0;
-! PtSetArg( &args[ n++ ], Pt_ARG_WIDTH, window_size.w, 0 );
-! PtSetArg( &args[ n++ ], Pt_ARG_ANCHOR_FLAGS, Pt_ANCHOR_LEFT_RIGHT,
-! Pt_IS_ANCHORED );
-! gui.vimToolBarGroup = PtCreateWidget( PtToolbarGroup, gui.vimWindow,
-! n, args );
-! if( gui.vimToolBarGroup == NULL )
- return FAIL;
-
-! PtAddCallback( gui.vimToolBarGroup, Pt_CB_RESIZE,
-! gui_ph_handle_menu_resize, NULL );
-
- n = 0;
- flags = 0;
-! PtSetArg( &args[ n++ ], Pt_ARG_WIDTH, window_size.w, 0 );
-! if( ! vim_strchr( p_go, GO_MENUS ) )
- {
- flags |= Pt_DELAY_REALIZE;
-! PtSetArg( &args[ n++ ], Pt_ARG_FLAGS, Pt_TRUE, flags );
- }
-! gui.vimMenuBar = PtCreateWidget( PtMenuBar, gui.vimToolBarGroup, n, args );
-! if( gui.vimMenuBar == NULL )
- return FAIL;
-
- # ifdef FEAT_TOOLBAR
- n = 0;
-
-! PtSetArg( &args[ n++ ], Pt_ARG_ANCHOR_FLAGS,
-! Pt_ANCHOR_LEFT_RIGHT |Pt_TOP_ANCHORED_TOP, Pt_IS_ANCHORED );
-! PtSetArg( &args[ n++ ], Pt_ARG_RESIZE_FLAGS, Pt_TRUE,
-! Pt_RESIZE_Y_AS_REQUIRED );
-! PtSetArg( &args[ n++ ], Pt_ARG_WIDTH, window_size.w, 0 );
-
- flags = Pt_GETS_FOCUS;
-! if( ! vim_strchr( p_go, GO_TOOLBAR ) )
- flags |= Pt_DELAY_REALIZE;
-
-! PtSetArg( &args[ n++ ], Pt_ARG_FLAGS, Pt_DELAY_REALIZE, flags );
-
-! gui.vimToolBar = PtCreateWidget( PtToolbar, gui.vimToolBarGroup, n, args );
-! if( gui.vimToolBar == NULL )
- return FAIL;
-
- /*
---- 1218,1278 ----
- * Create the two timers, not as accurate as using the kernel timer
- * functions, but good enough
- */
-! gui_ph_timer_cursor = PtCreateWidget(PtTimer, gui.vimWindow, 0, NULL);
-! if (gui_ph_timer_cursor == NULL)
- return FAIL;
-
-! gui_ph_timer_timeout = PtCreateWidget(PtTimer, gui.vimWindow, 0, NULL);
-! if (gui_ph_timer_timeout == NULL)
- return FAIL;
-
-! PtAddCallback(gui_ph_timer_cursor, Pt_CB_TIMER_ACTIVATE,
- gui_ph_handle_timer_cursor, NULL);
-! PtAddCallback(gui_ph_timer_timeout, Pt_CB_TIMER_ACTIVATE,
- gui_ph_handle_timer_timeout, NULL);
-
- #ifdef FEAT_MENU
- n = 0;
-! PtSetArg(&args[ n++ ], Pt_ARG_WIDTH, window_size.w, 0);
-! PtSetArg(&args[ n++ ], Pt_ARG_ANCHOR_FLAGS, Pt_ANCHOR_LEFT_RIGHT,
-! Pt_IS_ANCHORED);
-! gui.vimToolBarGroup = PtCreateWidget(PtToolbarGroup, gui.vimWindow,
-! n, args);
-! if (gui.vimToolBarGroup == NULL)
- return FAIL;
-
-! PtAddCallback(gui.vimToolBarGroup, Pt_CB_RESIZE,
-! gui_ph_handle_menu_resize, NULL);
-
- n = 0;
- flags = 0;
-! PtSetArg(&args[ n++ ], Pt_ARG_WIDTH, window_size.w, 0);
-! if (! vim_strchr(p_go, GO_MENUS))
- {
- flags |= Pt_DELAY_REALIZE;
-! PtSetArg(&args[ n++ ], Pt_ARG_FLAGS, Pt_TRUE, flags);
- }
-! gui.vimMenuBar = PtCreateWidget(PtMenuBar, gui.vimToolBarGroup, n, args);
-! if (gui.vimMenuBar == NULL)
- return FAIL;
-
- # ifdef FEAT_TOOLBAR
- n = 0;
-
-! PtSetArg(&args[ n++ ], Pt_ARG_ANCHOR_FLAGS,
-! Pt_ANCHOR_LEFT_RIGHT |Pt_TOP_ANCHORED_TOP, Pt_IS_ANCHORED);
-! PtSetArg(&args[ n++ ], Pt_ARG_RESIZE_FLAGS, Pt_TRUE,
-! Pt_RESIZE_Y_AS_REQUIRED);
-! PtSetArg(&args[ n++ ], Pt_ARG_WIDTH, window_size.w, 0);
-
- flags = Pt_GETS_FOCUS;
-! if (! vim_strchr(p_go, GO_TOOLBAR))
- flags |= Pt_DELAY_REALIZE;
-
-! PtSetArg(&args[ n++ ], Pt_ARG_FLAGS, Pt_DELAY_REALIZE, flags);
-
-! gui.vimToolBar = PtCreateWidget(PtToolbar, gui.vimToolBarGroup, n, args);
-! if (gui.vimToolBar == NULL)
- return FAIL;
-
- /*
-***************
-*** 1310,1329 ****
- if (gui_win_x != -1 && gui_win_y != -1)
- gui_mch_set_winpos(gui_win_x, gui_win_y);
-
-! return (PtRealizeWidget( gui.vimWindow ) == 0) ? OK : FAIL;
- }
-
- void
- gui_mch_exit(int rc)
- {
-! PtDestroyWidget( gui.vimWindow );
-
-! PxTranslateSet( charset_translate, NULL );
-
-! vim_free( gui.event_buffer );
-
- #ifdef USE_PANEL_GROUPS
-! vim_free( panel_titles );
- #endif
- }
-
---- 1310,1329 ----
- if (gui_win_x != -1 && gui_win_y != -1)
- gui_mch_set_winpos(gui_win_x, gui_win_y);
-
-! return (PtRealizeWidget(gui.vimWindow) == 0) ? OK : FAIL;
- }
-
- void
- gui_mch_exit(int rc)
- {
-! PtDestroyWidget(gui.vimWindow);
-
-! PxTranslateSet(charset_translate, NULL);
-
-! vim_free(gui.event_buffer);
-
- #ifdef USE_PANEL_GROUPS
-! vim_free(panel_titles);
- #endif
- }
-
-***************
-*** 1333,1339 ****
- /* When no events are available, photon will call this function, working is
- * set to FALSE, and the gui_mch_update loop will exit. */
- static int
-! exit_gui_mch_update( void *data )
- {
- *(int *)data = FALSE;
- return Pt_END;
---- 1333,1339 ----
- /* When no events are available, photon will call this function, working is
- * set to FALSE, and the gui_mch_update loop will exit. */
- static int
-! exit_gui_mch_update(void *data)
- {
- *(int *)data = FALSE;
- return Pt_END;
-***************
-*** 1344,1351 ****
- {
- int working = TRUE;
-
-! PtAppAddWorkProc( NULL, exit_gui_mch_update, &working );
-! while( ( working == TRUE ) && !vim_is_input_buf_full())
- {
- PtProcessEvent();
- }
---- 1344,1351 ----
- {
- int working = TRUE;
-
-! PtAppAddWorkProc(NULL, exit_gui_mch_update, &working);
-! while ((working == TRUE) && !vim_is_input_buf_full())
- {
- PtProcessEvent();
- }
-***************
-*** 1356,1378 ****
- {
- is_timeout = FALSE;
-
-! if( wtime > 0 )
-! PtSetResource( gui_ph_timer_timeout, Pt_ARG_TIMER_INITIAL, wtime, 0 );
-
-! while( 1 )
- {
- PtProcessEvent();
-! if( input_available() )
- {
-! PtSetResource( gui_ph_timer_timeout, Pt_ARG_TIMER_INITIAL, 0, 0 );
- return OK;
- }
-! else if( is_timeout == TRUE )
- return FAIL;
- }
- }
-
-! #if defined( FEAT_BROWSE ) || defined( PROTO )
- /*
- * Put up a file requester.
- * Returns the selected name in allocated memory, or NULL for Cancel.
---- 1356,1378 ----
- {
- is_timeout = FALSE;
-
-! if (wtime > 0)
-! PtSetResource(gui_ph_timer_timeout, Pt_ARG_TIMER_INITIAL, wtime, 0);
-
-! while (1)
- {
- PtProcessEvent();
-! if (input_available())
- {
-! PtSetResource(gui_ph_timer_timeout, Pt_ARG_TIMER_INITIAL, 0, 0);
- return OK;
- }
-! else if (is_timeout == TRUE)
- return FAIL;
- }
- }
-
-! #if defined(FEAT_BROWSE) || defined(PROTO)
- /*
- * Put up a file requester.
- * Returns the selected name in allocated memory, or NULL for Cancel.
-***************
-*** 1398,1409 ****
- char_u *open_text = NULL;
-
- flags = 0;
-! memset( &file, 0, sizeof( file ) );
-
-! default_path = alloc( MAXPATHL + 1 + NAME_MAX + 1 );
-! if( default_path != NULL )
- {
-! if( saving == TRUE )
- {
- /* Don't need Pt_FSR_CONFIRM_EXISTING, vim will ask anyway */
- flags |= Pt_FSR_NO_FCHECK;
---- 1398,1409 ----
- char_u *open_text = NULL;
-
- flags = 0;
-! memset(&file, 0, sizeof(file));
-
-! default_path = alloc(MAXPATHL + 1 + NAME_MAX + 1);
-! if (default_path != NULL)
- {
-! if (saving == TRUE)
- {
- /* Don't need Pt_FSR_CONFIRM_EXISTING, vim will ask anyway */
- flags |= Pt_FSR_NO_FCHECK;
-***************
-*** 1411,1433 ****
- }
-
- /* combine the directory and filename into a single path */
-! if( initdir == NULL || *initdir == NUL )
- {
-! mch_dirname( default_path, MAXPATHL );
- initdir = default_path;
- }
- else
- {
-! STRCPY( default_path, initdir );
- initdir = default_path;
- }
-
-! if( default_name != NULL )
- {
-! if( default_path[ STRLEN( default_path ) - 1 ] != '/' )
-! STRCAT( default_path, "/" );
-
-! STRCAT( default_path, default_name );
- }
-
- /* TODO: add a filter? */
---- 1411,1433 ----
- }
-
- /* combine the directory and filename into a single path */
-! if (initdir == NULL || *initdir == NUL)
- {
-! mch_dirname(default_path, MAXPATHL);
- initdir = default_path;
- }
- else
- {
-! STRCPY(default_path, initdir);
- initdir = default_path;
- }
-
-! if (default_name != NULL)
- {
-! if (default_path[ STRLEN(default_path) - 1 ] != '/')
-! STRCAT(default_path, "/");
-
-! STRCAT(default_path, default_name);
- }
-
- /* TODO: add a filter? */
-***************
-*** 1441,1495 ****
- NULL,
- NULL,
- &file,
-! flags );
-
-! vim_free( default_path );
-
-! if( file.ret == Pt_FSDIALOG_BTN1 )
- return vim_strsave(file.path);
- }
- return NULL;
- }
- #endif
-
-! #if defined( FEAT_GUI_DIALOG ) || defined( PROTO )
- static PtWidget_t *gui_ph_dialog_text = NULL;
-
- static int
-! gui_ph_dialog_close( int button, void *data )
- {
- PtModalCtrl_t *modal_ctrl = data;
- char_u *dialog_text, *vim_text;
-
-! if( gui_ph_dialog_text != NULL )
- {
-! PtGetResource( gui_ph_dialog_text, Pt_ARG_TEXT_STRING, &dialog_text, 0 );
-! PtGetResource( gui_ph_dialog_text, Pt_ARG_POINTER, &vim_text, 0 );
-! STRNCPY( vim_text, dialog_text, IOSIZE - 1 );
- }
-
-! PtModalUnblock( modal_ctrl, (void *) button );
-
- return Pt_TRUE;
- }
-
- static int
-! gui_ph_dialog_text_enter( PtWidget_t *widget, void *data, PtCallbackInfo_t *info )
- {
-! if( info->reason_subtype == Pt_EDIT_ACTIVATE )
-! gui_ph_dialog_close( 1, data );
- return Pt_CONTINUE;
- }
-
- static int
-! gui_ph_dialog_esc( PtWidget_t *widget, void *data, PtCallbackInfo_t *info )
- {
- PhKeyEvent_t *key;
-
-! key = PhGetData( info->event );
-! if( ( key->key_flags & Pk_KF_Cap_Valid ) && ( key->key_cap == Pk_Escape ) )
- {
-! gui_ph_dialog_close( 0, data );
- return Pt_CONSUME;
- }
- return Pt_PROCESS;
---- 1441,1495 ----
- NULL,
- NULL,
- &file,
-! flags);
-
-! vim_free(default_path);
-
-! if (file.ret == Pt_FSDIALOG_BTN1)
- return vim_strsave(file.path);
- }
- return NULL;
- }
- #endif
-
-! #if defined(FEAT_GUI_DIALOG) || defined(PROTO)
- static PtWidget_t *gui_ph_dialog_text = NULL;
-
- static int
-! gui_ph_dialog_close(int button, void *data)
- {
- PtModalCtrl_t *modal_ctrl = data;
- char_u *dialog_text, *vim_text;
-
-! if (gui_ph_dialog_text != NULL)
- {
-! PtGetResource(gui_ph_dialog_text, Pt_ARG_TEXT_STRING, &dialog_text, 0);
-! PtGetResource(gui_ph_dialog_text, Pt_ARG_POINTER, &vim_text, 0);
-! STRNCPY(vim_text, dialog_text, IOSIZE - 1);
- }
-
-! PtModalUnblock(modal_ctrl, (void *) button);
-
- return Pt_TRUE;
- }
-
- static int
-! gui_ph_dialog_text_enter(PtWidget_t *widget, void *data, PtCallbackInfo_t *info)
- {
-! if (info->reason_subtype == Pt_EDIT_ACTIVATE)
-! gui_ph_dialog_close(1, data);
- return Pt_CONTINUE;
- }
-
- static int
-! gui_ph_dialog_esc(PtWidget_t *widget, void *data, PtCallbackInfo_t *info)
- {
- PhKeyEvent_t *key;
-
-! key = PhGetData(info->event);
-! if ((key->key_flags & Pk_KF_Cap_Valid) && (key->key_cap == Pk_Escape))
- {
-! gui_ph_dialog_close(0, data);
- return Pt_CONSUME;
- }
- return Pt_PROCESS;
-***************
-*** 1518,1557 ****
-
- button_count = len = i = 0;
-
-! if( buttons == NULL || *buttons == NUL )
- return -1;
-
- /* There is one less separator than buttons, so bump up the button count */
- button_count = 1;
-
- /* Count string length and number of seperators */
-! for( str = buttons; *str; str++ )
- {
- len++;
-! if( *str == DLG_BUTTON_SEP )
- button_count++;
- }
-
-! if ( title == NULL )
- title = "Vim";
-
-! buttons_copy = alloc( len + 1 );
-! button_array = (char_u **) alloc( button_count * sizeof( char_u * ) );
-! if( buttons_copy != NULL && button_array != NULL )
- {
-! STRCPY( buttons_copy, buttons );
-
- /*
- * Convert DLG_BUTTON_SEP into NUL's and fill in
- * button_array with the pointer to each NUL terminated string
- */
- str = buttons_copy;
-! for( i = 0; i < button_count; i++ )
- {
- button_array[ i ] = str;
-! for( ; *str; str++ )
- {
-! if( *str == DLG_BUTTON_SEP )
- {
- *str++ = NUL;
- break;
---- 1518,1557 ----
-
- button_count = len = i = 0;
-
-! if (buttons == NULL || *buttons == NUL)
- return -1;
-
- /* There is one less separator than buttons, so bump up the button count */
- button_count = 1;
-
- /* Count string length and number of seperators */
-! for (str = buttons; *str; str++)
- {
- len++;
-! if (*str == DLG_BUTTON_SEP)
- button_count++;
- }
-
-! if (title == NULL)
- title = "Vim";
-
-! buttons_copy = alloc(len + 1);
-! button_array = (char_u **) alloc(button_count * sizeof(char_u *));
-! if (buttons_copy != NULL && button_array != NULL)
- {
-! STRCPY(buttons_copy, buttons);
-
- /*
- * Convert DLG_BUTTON_SEP into NUL's and fill in
- * button_array with the pointer to each NUL terminated string
- */
- str = buttons_copy;
-! for (i = 0; i < button_count; i++)
- {
- button_array[ i ] = str;
-! for (; *str; str++)
- {
-! if (*str == DLG_BUTTON_SEP)
- {
- *str++ = NUL;
- break;
-***************
-*** 1565,1571 ****
- NULL,
- message, NULL,
- button_count, (const char **) button_array, NULL,
-! default_button, 0, Pt_MODAL );
- #else
- /* Writing the dialog ourselves lets us add extra features, like
- * trapping the escape key and returning 0 to vim */
---- 1565,1571 ----
- NULL,
- message, NULL,
- button_count, (const char **) button_array, NULL,
-! default_button, 0, Pt_MODAL);
- #else
- /* Writing the dialog ourselves lets us add extra features, like
- * trapping the escape key and returning 0 to vim */
-***************
-*** 1576,1607 ****
- PtModalCtrl_t modal_ctrl;
- PtDialogInfo_t di;
-
-! memset( &di, 0, sizeof( di ) );
-! memset( &modal_ctrl, 0, sizeof( modal_ctrl ) );
-
- n = 0;
-! PtSetArg( &args[n++], Pt_ARG_GROUP_ROWS_COLS, 0, 0 );
-! PtSetArg( &args[n++], Pt_ARG_WIDTH, 350, 0 );
-! PtSetArg( &args[n++], Pt_ARG_GROUP_ORIENTATION,
-! Pt_GROUP_VERTICAL, 0 );
-! PtSetArg( &args[n++], Pt_ARG_GROUP_FLAGS,
-! Pt_TRUE, Pt_GROUP_NO_KEYS | Pt_GROUP_STRETCH_HORIZONTAL );
-! PtSetArg( &args[n++], Pt_ARG_CONTAINER_FLAGS, Pt_FALSE, Pt_TRUE );
-! pane = PtCreateWidget( PtGroup, NULL, n, args );
-
- n = 0;
-! PtSetArg( &args[n++], Pt_ARG_TEXT_STRING, message, 0 );
-! PtCreateWidget( PtLabel, pane, n, args );
-
-! if( textfield != NULL )
- {
- n = 0;
-! PtSetArg( &args[n++], Pt_ARG_MAX_LENGTH, IOSIZE - 1, 0 );
-! PtSetArg( &args[n++], Pt_ARG_TEXT_STRING, textfield, 0 );
-! PtSetArg( &args[n++], Pt_ARG_POINTER, textfield, 0 );
-! gui_ph_dialog_text = PtCreateWidget( PtText, pane, n, args );
-! PtAddCallback( gui_ph_dialog_text, Pt_CB_ACTIVATE,
-! gui_ph_dialog_text_enter, &modal_ctrl );
- }
-
- di.parent = gui.vimWindow;
---- 1576,1607 ----
- PtModalCtrl_t modal_ctrl;
- PtDialogInfo_t di;
-
-! memset(&di, 0, sizeof(di));
-! memset(&modal_ctrl, 0, sizeof(modal_ctrl));
-
- n = 0;
-! PtSetArg(&args[n++], Pt_ARG_GROUP_ROWS_COLS, 0, 0);
-! PtSetArg(&args[n++], Pt_ARG_WIDTH, 350, 0);
-! PtSetArg(&args[n++], Pt_ARG_GROUP_ORIENTATION,
-! Pt_GROUP_VERTICAL, 0);
-! PtSetArg(&args[n++], Pt_ARG_GROUP_FLAGS,
-! Pt_TRUE, Pt_GROUP_NO_KEYS | Pt_GROUP_STRETCH_HORIZONTAL);
-! PtSetArg(&args[n++], Pt_ARG_CONTAINER_FLAGS, Pt_FALSE, Pt_TRUE);
-! pane = PtCreateWidget(PtGroup, NULL, n, args);
-
- n = 0;
-! PtSetArg(&args[n++], Pt_ARG_TEXT_STRING, message, 0);
-! PtCreateWidget(PtLabel, pane, n, args);
-
-! if (textfield != NULL)
- {
- n = 0;
-! PtSetArg(&args[n++], Pt_ARG_MAX_LENGTH, IOSIZE - 1, 0);
-! PtSetArg(&args[n++], Pt_ARG_TEXT_STRING, textfield, 0);
-! PtSetArg(&args[n++], Pt_ARG_POINTER, textfield, 0);
-! gui_ph_dialog_text = PtCreateWidget(PtText, pane, n, args);
-! PtAddCallback(gui_ph_dialog_text, Pt_CB_ACTIVATE,
-! gui_ph_dialog_text_enter, &modal_ctrl);
- }
-
- di.parent = gui.vimWindow;
-***************
-*** 1616,1641 ****
- di.callback = gui_ph_dialog_close;
- di.data = &modal_ctrl;
-
-! dialog = PtCreateDialog( &di );
-! PtAddFilterCallback( dialog, Ph_EV_KEY,
-! gui_ph_dialog_esc, &modal_ctrl );
-
-! if( gui_ph_dialog_text != NULL )
-! PtGiveFocus( gui_ph_dialog_text, NULL );
-
- /* Open dialog, block the vim window and wait for the dialog to close */
-! PtRealizeWidget( dialog );
-! PtMakeModal( dialog, Ph_CURSOR_NOINPUT, Ph_CURSOR_DEFAULT_COLOR );
-! dialog_result = (int) PtModalBlock( &modal_ctrl, 0 );
-
-! PtDestroyWidget( dialog );
- gui_ph_dialog_text = NULL;
- }
- #endif
- }
-
-! vim_free( button_array );
-! vim_free( buttons_copy );
-
- return dialog_result;
- }
---- 1616,1641 ----
- di.callback = gui_ph_dialog_close;
- di.data = &modal_ctrl;
-
-! dialog = PtCreateDialog(&di);
-! PtAddFilterCallback(dialog, Ph_EV_KEY,
-! gui_ph_dialog_esc, &modal_ctrl);
-
-! if (gui_ph_dialog_text != NULL)
-! PtGiveFocus(gui_ph_dialog_text, NULL);
-
- /* Open dialog, block the vim window and wait for the dialog to close */
-! PtRealizeWidget(dialog);
-! PtMakeModal(dialog, Ph_CURSOR_NOINPUT, Ph_CURSOR_DEFAULT_COLOR);
-! dialog_result = (int) PtModalBlock(&modal_ctrl, 0);
-
-! PtDestroyWidget(dialog);
- gui_ph_dialog_text = NULL;
- }
- #endif
- }
-
-! vim_free(button_array);
-! vim_free(buttons_copy);
-
- return dialog_result;
- }
-***************
-*** 1648,1654 ****
- {
- PhPoint_t *pos;
-
-! pos = PtWidgetPos( gui.vimWindow, NULL );
-
- *x = pos->x;
- *y = pos->y;
---- 1648,1654 ----
- {
- PhPoint_t *pos;
-
-! pos = PtWidgetPos(gui.vimWindow, NULL);
-
- *x = pos->x;
- *y = pos->y;
-***************
-*** 1661,1667 ****
- {
- PhPoint_t pos = { x, y };
-
-! PtSetResource( gui.vimWindow, Pt_ARG_POS, &pos, 0 );
- }
-
- void
---- 1661,1667 ----
- {
- PhPoint_t pos = { x, y };
-
-! PtSetResource(gui.vimWindow, Pt_ARG_POS, &pos, 0);
- }
-
- void
-***************
-*** 1677,1686 ****
- window_size.h += pg_margin_top + pg_margin_bottom;
- #endif
-
-! PtSetResource( gui.vimWindow, Pt_ARG_MINIMUM_DIM, &min_size, 0 );
-! PtSetResource( gui.vimWindow, Pt_ARG_DIM, &window_size, 0 );
-
-! if( ! PtWidgetIsRealized( gui.vimWindow ) )
- gui_ph_resize_container();
- }
-
---- 1677,1686 ----
- window_size.h += pg_margin_top + pg_margin_bottom;
- #endif
-
-! PtSetResource(gui.vimWindow, Pt_ARG_MINIMUM_DIM, &min_size, 0);
-! PtSetResource(gui.vimWindow, Pt_ARG_DIM, &window_size, 0);
-
-! if (! PtWidgetIsRealized(gui.vimWindow))
- gui_ph_resize_container();
- }
-
-***************
-*** 1693,1700 ****
- {
- PhRect_t console;
-
-! PhWindowQueryVisible( Ph_QUERY_WORKSPACE, 0,
-! PhInputGroup( NULL ), &console );
-
- *screen_w = console.lr.x - console.ul.x + 1;
- *screen_h = console.lr.y - console.ul.y + 1;
---- 1693,1700 ----
- {
- PhRect_t console;
-
-! PhWindowQueryVisible(Ph_QUERY_WORKSPACE, 0,
-! PhInputGroup(NULL), &console);
-
- *screen_w = console.lr.x - console.ul.x + 1;
- *screen_h = console.lr.y - console.ul.y + 1;
-***************
-*** 1705,1715 ****
- {
- PhWindowEvent_t event;
-
-! memset( &event, 0, sizeof (event) );
- event.event_f = Ph_WM_HIDE;
- event.event_state = Ph_WM_EVSTATE_HIDE;
-! event.rid = PtWidgetRid( gui.vimWindow );
-! PtForwardWindowEvent( &event );
- }
-
- #if defined(FEAT_EVAL) || defined(PROTO)
---- 1705,1715 ----
- {
- PhWindowEvent_t event;
-
-! memset(&event, 0, sizeof (event));
- event.event_f = Ph_WM_HIDE;
- event.event_state = Ph_WM_EVSTATE_HIDE;
-! event.rid = PtWidgetRid(gui.vimWindow);
-! PtForwardWindowEvent(&event);
- }
-
- #if defined(FEAT_EVAL) || defined(PROTO)
-***************
-*** 1721,1731 ****
- {
- PhWindowEvent_t event;
-
-! memset( &event, 0, sizeof (event) );
- event.event_f = Ph_WM_TOFRONT;
- event.event_state = Ph_WM_EVSTATE_FFRONT;
-! event.rid = PtWidgetRid( gui.vimWindow );
-! PtForwardWindowEvent( &event );
- }
- #endif
-
---- 1721,1731 ----
- {
- PhWindowEvent_t event;
-
-! memset(&event, 0, sizeof (event));
- event.event_f = Ph_WM_TOFRONT;
- event.event_state = Ph_WM_EVSTATE_FFRONT;
-! event.rid = PtWidgetRid(gui.vimWindow);
-! PtForwardWindowEvent(&event);
- }
- #endif
-
-***************
-*** 1733,1741 ****
- gui_mch_settitle(char_u *title, char_u *icon)
- {
- #ifdef USE_PANEL_GROUP
-! gui_ph_pg_set_buffer_num( curwin->w_buffer->b_fnum );
- #endif
-! PtSetResource( gui.vimWindow, Pt_ARG_WINDOW_TITLE, title, 0 );
- /* Not sure what to do with the icon text, set balloon text somehow? */
- }
-
---- 1733,1741 ----
- gui_mch_settitle(char_u *title, char_u *icon)
- {
- #ifdef USE_PANEL_GROUP
-! gui_ph_pg_set_buffer_num(curwin->w_buffer->b_fnum);
- #endif
-! PtSetResource(gui.vimWindow, Pt_ARG_WINDOW_TITLE, title, 0);
- /* Not sure what to do with the icon text, set balloon text somehow? */
- }
-
-***************
-*** 1748,1757 ****
- int n = 0;
- PtArg_t args[3];
-
-! PtSetArg( &args[ n++ ], Pt_ARG_MAXIMUM, max, 0 );
-! PtSetArg( &args[ n++ ], Pt_ARG_SLIDER_SIZE, size, 0 );
-! PtSetArg( &args[ n++ ], Pt_ARG_GAUGE_VALUE, val, 0 );
-! PtSetResources( sb->id, n, args );
- }
-
- void
---- 1748,1757 ----
- int n = 0;
- PtArg_t args[3];
-
-! PtSetArg(&args[ n++ ], Pt_ARG_MAXIMUM, max, 0);
-! PtSetArg(&args[ n++ ], Pt_ARG_SLIDER_SIZE, size, 0);
-! PtSetArg(&args[ n++ ], Pt_ARG_GAUGE_VALUE, val, 0);
-! PtSetResources(sb->id, n, args);
- }
-
- void
-***************
-*** 1759,1765 ****
- {
- PhArea_t area = {{ x, y }, { w, h }};
-
-! PtSetResource( sb->id, Pt_ARG_AREA, &area, 0 );
- }
-
- void
---- 1759,1765 ----
- {
- PhArea_t area = {{ x, y }, { w, h }};
-
-! PtSetResource(sb->id, Pt_ARG_AREA, &area, 0);
- }
-
- void
-***************
-*** 1775,1786 ****
- *
- * Also, don't let the scrollbar get focus
- */
-! PtSetArg( &args[ n++ ], Pt_ARG_FLAGS, Pt_DELAY_REALIZE,
-! Pt_DELAY_REALIZE | Pt_GETS_FOCUS );
-! PtSetArg( &args[ n++ ], Pt_ARG_SCROLLBAR_FLAGS, Pt_SCROLLBAR_SHOW_ARROWS, 0);
- #if 0
- /* Don't need this anchoring for the scrollbars */
-! if( orient == SBAR_HORIZ )
- {
- anchor_flags = Pt_BOTTOM_ANCHORED_BOTTOM |
- Pt_LEFT_ANCHORED_LEFT | Pt_RIGHT_ANCHORED_RIGHT;
---- 1775,1786 ----
- *
- * Also, don't let the scrollbar get focus
- */
-! PtSetArg(&args[ n++ ], Pt_ARG_FLAGS, Pt_DELAY_REALIZE,
-! Pt_DELAY_REALIZE | Pt_GETS_FOCUS);
-! PtSetArg(&args[ n++ ], Pt_ARG_SCROLLBAR_FLAGS, Pt_SCROLLBAR_SHOW_ARROWS, 0);
- #if 0
- /* Don't need this anchoring for the scrollbars */
-! if (orient == SBAR_HORIZ)
- {
- anchor_flags = Pt_BOTTOM_ANCHORED_BOTTOM |
- Pt_LEFT_ANCHORED_LEFT | Pt_RIGHT_ANCHORED_RIGHT;
-***************
-*** 1788,1827 ****
- else
- {
- anchor_flags = Pt_BOTTOM_ANCHORED_BOTTOM | Pt_TOP_ANCHORED_TOP;
-! if( sb->wp != NULL )
- {
-! if( sb == &sb->wp->w_scrollbars[ SBAR_LEFT ] )
- anchor_flags |= Pt_LEFT_ANCHORED_LEFT;
- else
- anchor_flags |= Pt_RIGHT_ANCHORED_RIGHT;
- }
- }
-! PtSetArg( &args[ n++ ], Pt_ARG_ANCHOR_FLAGS, anchor_flags, Pt_IS_ANCHORED );
- #endif
-! PtSetArg( &args[ n++ ], Pt_ARG_ORIENTATION,
-! (orient == SBAR_HORIZ) ? Pt_HORIZONTAL : Pt_VERTICAL, 0 );
- #ifdef USE_PANEL_GROUP
-! sb->id = PtCreateWidget( PtScrollbar, gui.vimPanelGroup, n, args );
- #else
-! sb->id = PtCreateWidget( PtScrollbar, gui.vimContainer, n, args );
- #endif
-
-! PtAddCallback( sb->id, Pt_CB_SCROLLBAR_MOVE, gui_ph_handle_scrollbar, sb );
- }
-
- void
- gui_mch_enable_scrollbar(scrollbar_T *sb, int flag)
- {
-! if( flag != 0 )
-! PtRealizeWidget( sb->id );
- else
-! PtUnrealizeWidget( sb->id );
- }
-
- void
- gui_mch_destroy_scrollbar(scrollbar_T *sb)
- {
-! PtDestroyWidget( sb->id );
- sb->id = NULL;
- }
-
---- 1788,1827 ----
- else
- {
- anchor_flags = Pt_BOTTOM_ANCHORED_BOTTOM | Pt_TOP_ANCHORED_TOP;
-! if (sb->wp != NULL)
- {
-! if (sb == &sb->wp->w_scrollbars[ SBAR_LEFT ])
- anchor_flags |= Pt_LEFT_ANCHORED_LEFT;
- else
- anchor_flags |= Pt_RIGHT_ANCHORED_RIGHT;
- }
- }
-! PtSetArg(&args[ n++ ], Pt_ARG_ANCHOR_FLAGS, anchor_flags, Pt_IS_ANCHORED);
- #endif
-! PtSetArg(&args[ n++ ], Pt_ARG_ORIENTATION,
-! (orient == SBAR_HORIZ) ? Pt_HORIZONTAL : Pt_VERTICAL, 0);
- #ifdef USE_PANEL_GROUP
-! sb->id = PtCreateWidget(PtScrollbar, gui.vimPanelGroup, n, args);
- #else
-! sb->id = PtCreateWidget(PtScrollbar, gui.vimContainer, n, args);
- #endif
-
-! PtAddCallback(sb->id, Pt_CB_SCROLLBAR_MOVE, gui_ph_handle_scrollbar, sb);
- }
-
- void
- gui_mch_enable_scrollbar(scrollbar_T *sb, int flag)
- {
-! if (flag != 0)
-! PtRealizeWidget(sb->id);
- else
-! PtUnrealizeWidget(sb->id);
- }
-
- void
- gui_mch_destroy_scrollbar(scrollbar_T *sb)
- {
-! PtDestroyWidget(sb->id);
- sb->id = NULL;
- }
-
-***************
-*** 1866,1873 ****
- return;
-
- if (shape == MSHAPE_HIDE || gui.pointer_hidden)
-! PtSetResource( gui.vimTextArea, Pt_ARG_CURSOR_TYPE, Ph_CURSOR_NONE,
-! 0 );
- else
- {
- if (shape >= MSHAPE_NUMBERED)
---- 1866,1873 ----
- return;
-
- if (shape == MSHAPE_HIDE || gui.pointer_hidden)
-! PtSetResource(gui.vimTextArea, Pt_ARG_CURSOR_TYPE, Ph_CURSOR_NONE,
-! 0);
- else
- {
- if (shape >= MSHAPE_NUMBERED)
-***************
-*** 1875,1881 ****
- else
- id = mshape_ids[shape];
-
-! PtSetResource( gui.vimTextArea, Pt_ARG_CURSOR_TYPE, id, 0 );
- }
- if (shape != MSHAPE_HIDE)
- last_shape = shape;
---- 1875,1881 ----
- else
- id = mshape_ids[shape];
-
-! PtSetResource(gui.vimTextArea, Pt_ARG_CURSOR_TYPE, id, 0);
- }
- if (shape != MSHAPE_HIDE)
- last_shape = shape;
-***************
-*** 1885,1903 ****
- void
- gui_mch_mousehide(int hide)
- {
-! if( gui.pointer_hidden != hide )
- {
- gui.pointer_hidden = hide;
- #ifdef FEAT_MOUSESHAPE
-! if( hide )
-! PtSetResource( gui.vimTextArea, Pt_ARG_CURSOR_TYPE,
-! Ph_CURSOR_NONE, 0 );
- else
-! mch_set_mouse_shape( last_shape );
- #else
-! PtSetResource( gui.vimTextArea, Pt_ARG_CURSOR_TYPE,
-! ( hide == MOUSE_SHOW ) ? GUI_PH_MOUSE_TYPE : Ph_CURSOR_NONE,
-! 0 );
- #endif
- }
- }
---- 1885,1903 ----
- void
- gui_mch_mousehide(int hide)
- {
-! if (gui.pointer_hidden != hide)
- {
- gui.pointer_hidden = hide;
- #ifdef FEAT_MOUSESHAPE
-! if (hide)
-! PtSetResource(gui.vimTextArea, Pt_ARG_CURSOR_TYPE,
-! Ph_CURSOR_NONE, 0);
- else
-! mch_set_mouse_shape(last_shape);
- #else
-! PtSetResource(gui.vimTextArea, Pt_ARG_CURSOR_TYPE,
-! (hide == MOUSE_SHOW) ? GUI_PH_MOUSE_TYPE : Ph_CURSOR_NONE,
-! 0);
- #endif
- }
- }
-***************
-*** 1910,1917 ****
-
- /* FIXME: does this return the correct position,
- * with respect to the border? */
-! PhQueryCursor( PhInputGroup( NULL ), &info );
-! PtGetAbsPosition( gui.vimTextArea , &ix, &iy );
-
- *x = info.pos.x - ix;
- *y = info.pos.y - iy;
---- 1910,1917 ----
-
- /* FIXME: does this return the correct position,
- * with respect to the border? */
-! PhQueryCursor(PhInputGroup(NULL), &info);
-! PtGetAbsPosition(gui.vimTextArea , &ix, &iy);
-
- *x = info.pos.x - ix;
- *y = info.pos.y - iy;
-***************
-*** 1922,1930 ****
- {
- short abs_x, abs_y;
-
-! PtGetAbsPosition( gui.vimTextArea, &abs_x, &abs_y );
- /* Add the border offset? */
-! PhMoveCursorAbs( PhInputGroup( NULL ), abs_x + x, abs_y + y );
- }
-
- /****************************************************************************/
---- 1922,1930 ----
- {
- short abs_x, abs_y;
-
-! PtGetAbsPosition(gui.vimTextArea, &abs_x, &abs_y);
- /* Add the border offset? */
-! PhMoveCursorAbs(PhInputGroup(NULL), abs_x + x, abs_y + y);
- }
-
- /****************************************************************************/
-***************
-*** 1952,1974 ****
- color_diff = gui_get_lightness(gui_ph_mouse_color)
- - gui_get_lightness(gui.back_pixel);
-
-! if( abs( color_diff ) < 64 )
- {
- short r, g, b;
- /* not a great algorithm... */
-! r = PgRedValue( gui_ph_mouse_color ) ^ 255;
-! g = PgGreenValue( gui_ph_mouse_color ) ^ 255;
-! b = PgBlueValue( gui_ph_mouse_color ) ^ 255;
-
- #ifndef FEAT_MOUSESHAPE
-! gui_ph_mouse_color = PgRGB( r, g, b );
-! PtSetResource( gui.vimTextArea, Pt_ARG_CURSOR_COLOR,
-! gui_ph_mouse_color, 0 );
- #endif
- }
- #endif
-
-! PtSetResource( gui.vimTextArea, Pt_ARG_FILL_COLOR, gui.back_pixel, 0 );
- }
-
- static int
---- 1952,1974 ----
- color_diff = gui_get_lightness(gui_ph_mouse_color)
- - gui_get_lightness(gui.back_pixel);
-
-! if (abs(color_diff) < 64)
- {
- short r, g, b;
- /* not a great algorithm... */
-! r = PgRedValue(gui_ph_mouse_color) ^ 255;
-! g = PgGreenValue(gui_ph_mouse_color) ^ 255;
-! b = PgBlueValue(gui_ph_mouse_color) ^ 255;
-
- #ifndef FEAT_MOUSESHAPE
-! gui_ph_mouse_color = PgRGB(r, g, b);
-! PtSetResource(gui.vimTextArea, Pt_ARG_CURSOR_COLOR,
-! gui_ph_mouse_color, 0);
- #endif
- }
- #endif
-
-! PtSetResource(gui.vimTextArea, Pt_ARG_FILL_COLOR, gui.back_pixel, 0);
- }
-
- static int
-***************
-*** 2058,2076 ****
- };
-
- /* is name #rrggbb format? */
-! if( name[0] == '#' && STRLEN( name ) == 7 )
- {
-! r = hex_digit( name[1] ) * 16 + hex_digit( name[2] );
-! g = hex_digit( name[3] ) * 16 + hex_digit( name[4] );
-! b = hex_digit( name[5] ) * 16 + hex_digit( name[6] );
-! if( r < 0 || g < 0 || b < 0 )
- return INVALCOLOR;
- return RGB(r, g, b);
- }
-
-! for( i = 0; i < ARRAY_LENGTH( table ); i++ )
- {
-! if( STRICMP( name, table[i].name ) == 0 )
- return table[i].colour;
- }
-
---- 2058,2076 ----
- };
-
- /* is name #rrggbb format? */
-! if (name[0] == '#' && STRLEN(name) == 7)
- {
-! r = hex_digit(name[1]) * 16 + hex_digit(name[2]);
-! g = hex_digit(name[3]) * 16 + hex_digit(name[4]);
-! b = hex_digit(name[5]) * 16 + hex_digit(name[6]);
-! if (r < 0 || g < 0 || b < 0)
- return INVALCOLOR;
- return RGB(r, g, b);
- }
-
-! for (i = 0; i < ARRAY_LENGTH(table); i++)
- {
-! if (STRICMP(name, table[i].name) == 0)
- return table[i].colour;
- }
-
-***************
-*** 2129,2141 ****
- void
- gui_mch_set_fg_color(guicolor_T color)
- {
-! PgSetTextColor( color );
- }
-
- void
- gui_mch_set_bg_color(guicolor_T color)
- {
-! PgSetFillColor( color );
- }
-
- void
---- 2129,2141 ----
- void
- gui_mch_set_fg_color(guicolor_T color)
- {
-! PgSetTextColor(color);
- }
-
- void
- gui_mch_set_bg_color(guicolor_T color)
- {
-! PgSetFillColor(color);
- }
-
- void
-***************
-*** 2148,2168 ****
- {
- PhRect_t rect;
-
-! rect.ul.x = FILL_X( col );
-! rect.ul.y = FILL_Y( row );
-
- /* FIXME: This has an off by one pixel problem */
- rect.lr.x = rect.ul.x + nc * gui.char_width;
- rect.lr.y = rect.ul.y + nr * gui.char_height;
-! if( nc > 0 )
- rect.lr.x -= 1;
-! if( nr > 0 )
- rect.lr.y -= 1;
-
- DRAW_START;
-! PgSetDrawMode( Pg_DrawModeDSTINVERT );
-! PgDrawRect( &rect, Pg_DRAW_FILL );
-! PgSetDrawMode( Pg_DrawModeSRCCOPY );
- DRAW_END;
- }
-
---- 2148,2168 ----
- {
- PhRect_t rect;
-
-! rect.ul.x = FILL_X(col);
-! rect.ul.y = FILL_Y(row);
-
- /* FIXME: This has an off by one pixel problem */
- rect.lr.x = rect.ul.x + nc * gui.char_width;
- rect.lr.y = rect.ul.y + nr * gui.char_height;
-! if (nc > 0)
- rect.lr.x -= 1;
-! if (nr > 0)
- rect.lr.y -= 1;
-
- DRAW_START;
-! PgSetDrawMode(Pg_DrawModeDSTINVERT);
-! PgDrawRect(&rect, Pg_DRAW_FILL);
-! PgSetDrawMode(Pg_DrawModeSRCCOPY);
- DRAW_END;
- }
-
-***************
-*** 2170,2182 ****
- gui_mch_clear_block(int row1, int col1, int row2, int col2)
- {
- PhRect_t block = {
-! { FILL_X( col1 ), FILL_Y( row1 ) },
-! { FILL_X( col2 + 1 ) - 1, FILL_Y( row2 + 1 ) - 1}
- };
-
- DRAW_START;
-! gui_mch_set_bg_color( gui.back_pixel );
-! PgDrawRect( &block, Pg_DRAW_FILL );
- DRAW_END;
- }
-
---- 2170,2182 ----
- gui_mch_clear_block(int row1, int col1, int row2, int col2)
- {
- PhRect_t block = {
-! { FILL_X(col1), FILL_Y(row1) },
-! { FILL_X(col2 + 1) - 1, FILL_Y(row2 + 1) - 1}
- };
-
- DRAW_START;
-! gui_mch_set_bg_color(gui.back_pixel);
-! PgDrawRect(&block, Pg_DRAW_FILL);
- DRAW_END;
- }
-
-***************
-*** 2189,2200 ****
- Rows * gui.char_height + gui.border_width - 1 }
- };
-
-! if( is_ignore_draw == TRUE )
- return;
-
- DRAW_START;
-! gui_mch_set_bg_color( gui.back_pixel );
-! PgDrawRect( &text_rect, Pg_DRAW_FILL );
- DRAW_END;
- }
-
---- 2189,2200 ----
- Rows * gui.char_height + gui.border_width - 1 }
- };
-
-! if (is_ignore_draw == TRUE)
- return;
-
- DRAW_START;
-! gui_mch_set_bg_color(gui.back_pixel);
-! PgDrawRect(&text_rect, Pg_DRAW_FILL);
- DRAW_END;
- }
-
-***************
-*** 2204,2231 ****
- PhRect_t rect;
- PhPoint_t delta;
-
-! rect.ul.x = FILL_X( gui.scroll_region_left );
-! rect.ul.y = FILL_Y( row + num_lines );
-
-! rect.lr.x = FILL_X( gui.scroll_region_right + 1 ) - 1;
-! rect.lr.y = FILL_Y( gui.scroll_region_bot + 1) - 1;
-
-! PtWidgetOffset( gui.vimTextArea, &gui_ph_raw_offset );
-! PhTranslatePoint( &gui_ph_raw_offset, PtWidgetPos(gui.vimTextArea, NULL));
-! PhTranslateRect( &rect, &gui_ph_raw_offset );
-
- delta.x = 0;
- delta.y = -num_lines * gui.char_height;
-
- PgFlush();
-
-! PhBlit( PtWidgetRid( PtFindDisjoint( gui.vimTextArea ) ), &rect, &delta );
-
- gui_clear_block(
- gui.scroll_region_bot - num_lines + 1,
- gui.scroll_region_left,
- gui.scroll_region_bot,
-! gui.scroll_region_right );
- }
-
- void
---- 2204,2231 ----
- PhRect_t rect;
- PhPoint_t delta;
-
-! rect.ul.x = FILL_X(gui.scroll_region_left);
-! rect.ul.y = FILL_Y(row + num_lines);
-
-! rect.lr.x = FILL_X(gui.scroll_region_right + 1) - 1;
-! rect.lr.y = FILL_Y(gui.scroll_region_bot + 1) - 1;
-
-! PtWidgetOffset(gui.vimTextArea, &gui_ph_raw_offset);
-! PhTranslatePoint(&gui_ph_raw_offset, PtWidgetPos(gui.vimTextArea, NULL));
-! PhTranslateRect(&rect, &gui_ph_raw_offset);
-
- delta.x = 0;
- delta.y = -num_lines * gui.char_height;
-
- PgFlush();
-
-! PhBlit(PtWidgetRid(PtFindDisjoint(gui.vimTextArea)), &rect, &delta);
-
- gui_clear_block(
- gui.scroll_region_bot - num_lines + 1,
- gui.scroll_region_left,
- gui.scroll_region_bot,
-! gui.scroll_region_right);
- }
-
- void
-***************
-*** 2234,2258 ****
- PhRect_t rect;
- PhPoint_t delta;
-
-! rect.ul.x = FILL_X( gui.scroll_region_left );
-! rect.ul.y = FILL_Y( row );
-
-! rect.lr.x = FILL_X( gui.scroll_region_right + 1 ) - 1;
-! rect.lr.y = FILL_Y( gui.scroll_region_bot - num_lines + 1 ) - 1;
-
-! PtWidgetOffset( gui.vimTextArea, &gui_ph_raw_offset );
-! PhTranslatePoint( &gui_ph_raw_offset, PtWidgetPos( gui.vimTextArea, NULL ) );
-! PhTranslateRect( &rect, &gui_ph_raw_offset );
-
- delta.x = 0;
- delta.y = num_lines * gui.char_height;
-
- PgFlush();
-
-! PhBlit( PtWidgetRid( PtFindDisjoint( gui.vimTextArea ) ) , &rect, &delta );
-
-! gui_clear_block( row, gui.scroll_region_left,
-! row + num_lines - 1, gui.scroll_region_right );
- }
-
- void
---- 2234,2258 ----
- PhRect_t rect;
- PhPoint_t delta;
-
-! rect.ul.x = FILL_X(gui.scroll_region_left);
-! rect.ul.y = FILL_Y(row);
-
-! rect.lr.x = FILL_X(gui.scroll_region_right + 1) - 1;
-! rect.lr.y = FILL_Y(gui.scroll_region_bot - num_lines + 1) - 1;
-
-! PtWidgetOffset(gui.vimTextArea, &gui_ph_raw_offset);
-! PhTranslatePoint(&gui_ph_raw_offset, PtWidgetPos(gui.vimTextArea, NULL));
-! PhTranslateRect(&rect, &gui_ph_raw_offset);
-
- delta.x = 0;
- delta.y = num_lines * gui.char_height;
-
- PgFlush();
-
-! PhBlit(PtWidgetRid(PtFindDisjoint(gui.vimTextArea)) , &rect, &delta);
-
-! gui_clear_block(row, gui.scroll_region_left,
-! row + num_lines - 1, gui.scroll_region_right);
- }
-
- void
-***************
-*** 2261,2297 ****
- static char *utf8_buffer = NULL;
- static int utf8_len = 0;
-
-! PhPoint_t pos = { TEXT_X( col ), TEXT_Y( row ) };
- PhRect_t rect;
-
-! if( is_ignore_draw == TRUE )
- return;
-
- DRAW_START;
-
-! if( !( flags & DRAW_TRANSP ) )
- {
- PgDrawIRect(
-! FILL_X( col ), FILL_Y( row ),
-! FILL_X( col + len ) - 1, FILL_Y( row + 1 ) - 1,
-! Pg_DRAW_FILL );
- }
-
-! if( flags & DRAW_UNDERL )
-! PgSetUnderline( gui.norm_pixel, Pg_TRANSPARENT, 0 );
-
-! if( charset_translate != NULL
- #ifdef FEAT_MBYTE
- && enc_utf8 == 0
- #endif
-! )
- {
- int src_taken, dst_made;
-
- /* Use a static buffer to avoid large amounts of de/allocations */
-! if( utf8_len < len )
- {
-! utf8_buffer = realloc( utf8_buffer, len * MB_LEN_MAX );
- utf8_len = len;
- }
-
---- 2261,2297 ----
- static char *utf8_buffer = NULL;
- static int utf8_len = 0;
-
-! PhPoint_t pos = { TEXT_X(col), TEXT_Y(row) };
- PhRect_t rect;
-
-! if (is_ignore_draw == TRUE)
- return;
-
- DRAW_START;
-
-! if (!(flags & DRAW_TRANSP))
- {
- PgDrawIRect(
-! FILL_X(col), FILL_Y(row),
-! FILL_X(col + len) - 1, FILL_Y(row + 1) - 1,
-! Pg_DRAW_FILL);
- }
-
-! if (flags & DRAW_UNDERL)
-! PgSetUnderline(gui.norm_pixel, Pg_TRANSPARENT, 0);
-
-! if (charset_translate != NULL
- #ifdef FEAT_MBYTE
- && enc_utf8 == 0
- #endif
-! )
- {
- int src_taken, dst_made;
-
- /* Use a static buffer to avoid large amounts of de/allocations */
-! if (utf8_len < len)
- {
-! utf8_buffer = realloc(utf8_buffer, len * MB_LEN_MAX);
- utf8_len = len;
- }
-
-***************
-*** 2302,2337 ****
- &src_taken,
- utf8_buffer,
- utf8_len,
-! &dst_made );
- s = utf8_buffer;
- len = dst_made;
- }
-
-! PgDrawText( s, len, &pos, 0 );
-
-! if( flags & DRAW_BOLD )
- {
- /* FIXME: try and only calculate these values once... */
-! rect.ul.x = FILL_X( col ) + 1;
-! rect.ul.y = FILL_Y( row );
-! rect.lr.x = FILL_X( col + len ) - 1;
-! rect.lr.y = FILL_Y( row + 1) - 1;
-! /* PgSetUserClip( NULL ) causes the scrollbar to not redraw... */
- #if 0
- pos.x++;
-
-! PgSetUserClip( &rect );
-! PgDrawText( s, len, &pos, 0 );
-! PgSetUserClip( NULL );
- #else
-! rect.lr.y -= ( p_linespace + 1 ) / 2;
- /* XXX: DrawTextArea doesn't work with phditto */
-! PgDrawTextArea( s, len, &rect, Pg_TEXT_BOTTOM );
- #endif
- }
-
-! if( flags & DRAW_UNDERL )
-! PgSetUnderline( Pg_TRANSPARENT, Pg_TRANSPARENT, 0 );
-
- DRAW_END;
- }
---- 2302,2337 ----
- &src_taken,
- utf8_buffer,
- utf8_len,
-! &dst_made);
- s = utf8_buffer;
- len = dst_made;
- }
-
-! PgDrawText(s, len, &pos, 0);
-
-! if (flags & DRAW_BOLD)
- {
- /* FIXME: try and only calculate these values once... */
-! rect.ul.x = FILL_X(col) + 1;
-! rect.ul.y = FILL_Y(row);
-! rect.lr.x = FILL_X(col + len) - 1;
-! rect.lr.y = FILL_Y(row + 1) - 1;
-! /* PgSetUserClip(NULL) causes the scrollbar to not redraw... */
- #if 0
- pos.x++;
-
-! PgSetUserClip(&rect);
-! PgDrawText(s, len, &pos, 0);
-! PgSetUserClip(NULL);
- #else
-! rect.lr.y -= (p_linespace + 1) / 2;
- /* XXX: DrawTextArea doesn't work with phditto */
-! PgDrawTextArea(s, len, &rect, Pg_TEXT_BOTTOM);
- #endif
- }
-
-! if (flags & DRAW_UNDERL)
-! PgSetUnderline(Pg_TRANSPARENT, Pg_TRANSPARENT, 0);
-
- DRAW_END;
- }
-***************
-*** 2346,2359 ****
-
- /* FIXME: Double width characters */
-
-! r.ul.x = FILL_X( gui.col );
-! r.ul.y = FILL_Y( gui.row );
- r.lr.x = r.ul.x + gui.char_width - 1;
- r.lr.y = r.ul.y + gui.char_height - 1;
-
- DRAW_START;
-! PgSetStrokeColor( color );
-! PgDrawRect( &r, Pg_DRAW_STROKE );
- DRAW_END;
- }
-
---- 2346,2359 ----
-
- /* FIXME: Double width characters */
-
-! r.ul.x = FILL_X(gui.col);
-! r.ul.y = FILL_Y(gui.row);
- r.lr.x = r.ul.x + gui.char_width - 1;
- r.lr.y = r.ul.y + gui.char_height - 1;
-
- DRAW_START;
-! PgSetStrokeColor(color);
-! PgDrawRect(&r, Pg_DRAW_STROKE);
- DRAW_END;
- }
-
-***************
-*** 2362,2375 ****
- {
- PhRect_t r;
-
-! r.ul.x = FILL_X( gui.col );
-! r.ul.y = FILL_Y( gui.row ) + gui.char_height - h;
- r.lr.x = r.ul.x + w - 1;
- r.lr.y = r.ul.y + h - 1;
-
- DRAW_START;
-! gui_mch_set_bg_color( color );
-! PgDrawRect( &r, Pg_DRAW_FILL );
- DRAW_END;
- }
-
---- 2362,2375 ----
- {
- PhRect_t r;
-
-! r.ul.x = FILL_X(gui.col);
-! r.ul.y = FILL_Y(gui.row) + gui.char_height - h;
- r.lr.x = r.ul.x + w - 1;
- r.lr.y = r.ul.y + h - 1;
-
- DRAW_START;
-! gui_mch_set_bg_color(color);
-! PgDrawRect(&r, Pg_DRAW_FILL);
- DRAW_END;
- }
-
-***************
-*** 2385,2394 ****
- gui_mch_start_blink(void)
- {
- /* Only turn on the timer on if none of the times are zero */
-! if( blink_waittime && blink_ontime && blink_offtime && gui.in_focus)
- {
-! PtSetResource( gui_ph_timer_cursor, Pt_ARG_TIMER_INITIAL,
-! blink_waittime, 0 );
- blink_state = BLINK_ON;
- gui_update_cursor(TRUE, FALSE);
- }
---- 2385,2394 ----
- gui_mch_start_blink(void)
- {
- /* Only turn on the timer on if none of the times are zero */
-! if (blink_waittime && blink_ontime && blink_offtime && gui.in_focus)
- {
-! PtSetResource(gui_ph_timer_cursor, Pt_ARG_TIMER_INITIAL,
-! blink_waittime, 0);
- blink_state = BLINK_ON;
- gui_update_cursor(TRUE, FALSE);
- }
-***************
-*** 2397,2405 ****
- void
- gui_mch_stop_blink(void)
- {
-! PtSetResource( gui_ph_timer_cursor, Pt_ARG_TIMER_INITIAL, 0, 0 );
-
-! if( blink_state == BLINK_OFF )
- gui_update_cursor(TRUE, FALSE);
-
- blink_state = BLINK_NONE;
---- 2397,2405 ----
- void
- gui_mch_stop_blink(void)
- {
-! PtSetResource(gui_ph_timer_cursor, Pt_ARG_TIMER_INITIAL, 0, 0);
-
-! if (blink_state == BLINK_OFF)
- gui_update_cursor(TRUE, FALSE);
-
- blink_state = BLINK_NONE;
-***************
-*** 2417,2431 ****
- void
- gui_mch_flash(int msec)
- {
-! PgSetFillXORColor( Pg_BLACK, Pg_WHITE );
-! PgSetDrawMode( Pg_DRAWMODE_XOR );
- gui_mch_clear_all();
- gui_mch_flush();
-
-! ui_delay( (long) msec, TRUE );
-
- gui_mch_clear_all();
-! PgSetDrawMode( Pg_DRAWMODE_OPAQUE );
- gui_mch_flush();
- }
-
---- 2417,2431 ----
- void
- gui_mch_flash(int msec)
- {
-! PgSetFillXORColor(Pg_BLACK, Pg_WHITE);
-! PgSetDrawMode(Pg_DRAWMODE_XOR);
- gui_mch_clear_all();
- gui_mch_flush();
-
-! ui_delay((long) msec, TRUE);
-
- gui_mch_clear_all();
-! PgSetDrawMode(Pg_DRAWMODE_OPAQUE);
- gui_mch_flush();
- }
-
-***************
-*** 2440,2446 ****
- {
- PhArea_t area = {{x, y}, {w, h}};
-
-! PtSetResource( gui.vimTextArea, Pt_ARG_AREA, &area, 0 );
- }
-
- int
---- 2440,2446 ----
- {
- PhArea_t area = {{x, y}, {w, h}};
-
-! PtSetResource(gui.vimTextArea, Pt_ARG_AREA, &area, 0);
- }
-
- int
-***************
-*** 2496,2514 ****
- };
-
- static PhImage_t *
-! gui_ph_toolbar_load_icon( char_u *iconfile )
- {
- static PhImage_t external_icon;
- PhImage_t *temp_phi = NULL;
-
-! temp_phi = PxLoadImage( iconfile, NULL );
-! if( temp_phi != NULL )
- {
- /* The label widget will free the image/palette/etc. for us when
- * it's destroyed */
- temp_phi->flags |= Ph_RELEASE_IMAGE_ALL;
-! memcpy( &external_icon, temp_phi, sizeof( external_icon ) );
-! free( temp_phi );
-
- temp_phi = &external_icon;
- }
---- 2496,2514 ----
- };
-
- static PhImage_t *
-! gui_ph_toolbar_load_icon(char_u *iconfile)
- {
- static PhImage_t external_icon;
- PhImage_t *temp_phi = NULL;
-
-! temp_phi = PxLoadImage(iconfile, NULL);
-! if (temp_phi != NULL)
- {
- /* The label widget will free the image/palette/etc. for us when
- * it's destroyed */
- temp_phi->flags |= Ph_RELEASE_IMAGE_ALL;
-! memcpy(&external_icon, temp_phi, sizeof(external_icon));
-! free(temp_phi);
-
- temp_phi = &external_icon;
- }
-***************
-*** 2523,2551 ****
- * PhImage_t are copied, and the original PhImage_t aren't needed anymore).
- */
- static PhImage_t *
-! gui_ph_toolbar_find_icon( vimmenu_T *menu )
- {
- char_u full_pathname[ MAXPATHL + 1 ];
- PhImage_t *icon = NULL;
-
-! if( menu->icon_builtin == FALSE )
- {
-! if( menu->iconfile != NULL )
- /* TODO: use gui_find_iconfile() */
-! icon = gui_ph_toolbar_load_icon( menu->iconfile );
-
- /* TODO: Restrict loading to just .png? Search for any format? */
-! if( ( icon == NULL ) &&
-! ( ( gui_find_bitmap( menu->name, full_pathname, "gif" ) == OK ) ||
-! ( gui_find_bitmap( menu->name, full_pathname, "png" ) == OK ) ) )
-! icon = gui_ph_toolbar_load_icon( full_pathname );
-
-! if( icon != NULL )
- return icon;
- }
-
-! if( menu->iconidx >= 0 &&
-! ( menu->iconidx < ARRAY_LENGTH( gui_ph_toolbar_images ) ) )
- {
- return gui_ph_toolbar_images[menu->iconidx];
- }
---- 2523,2551 ----
- * PhImage_t are copied, and the original PhImage_t aren't needed anymore).
- */
- static PhImage_t *
-! gui_ph_toolbar_find_icon(vimmenu_T *menu)
- {
- char_u full_pathname[ MAXPATHL + 1 ];
- PhImage_t *icon = NULL;
-
-! if (menu->icon_builtin == FALSE)
- {
-! if (menu->iconfile != NULL)
- /* TODO: use gui_find_iconfile() */
-! icon = gui_ph_toolbar_load_icon(menu->iconfile);
-
- /* TODO: Restrict loading to just .png? Search for any format? */
-! if ((icon == NULL) &&
-! ((gui_find_bitmap(menu->name, full_pathname, "gif") == OK) ||
-! (gui_find_bitmap(menu->name, full_pathname, "png") == OK)))
-! icon = gui_ph_toolbar_load_icon(full_pathname);
-
-! if (icon != NULL)
- return icon;
- }
-
-! if (menu->iconidx >= 0 &&
-! (menu->iconidx < ARRAY_LENGTH(gui_ph_toolbar_images)))
- {
- return gui_ph_toolbar_images[menu->iconidx];
- }
-***************
-*** 2554,2567 ****
- }
- #endif
-
-! #if defined( FEAT_MENU ) || defined( PROTO )
- void
- gui_mch_enable_menu(int flag)
- {
-! if( flag != 0 )
-! PtRealizeWidget( gui.vimMenuBar );
- else
-! PtUnrealizeWidget( gui.vimMenuBar );
- }
-
- void
---- 2554,2567 ----
- }
- #endif
-
-! #if defined(FEAT_MENU) || defined(PROTO)
- void
- gui_mch_enable_menu(int flag)
- {
-! if (flag != 0)
-! PtRealizeWidget(gui.vimMenuBar);
- else
-! PtUnrealizeWidget(gui.vimMenuBar);
- }
-
- void
-***************
-*** 2572,2601 ****
-
- /* Change the position of a menu button in the parent */
- static void
-! gui_ph_position_menu( PtWidget_t *widget, int priority )
- {
- PtWidget_t *traverse;
- vimmenu_T *menu;
-
-! traverse = PtWidgetChildBack( PtWidgetParent( widget ) );
-
- /* Iterate through the list of widgets in traverse, until
- * we find the position we want to insert our widget into */
- /* TODO: traverse from front to back, possible speedup? */
-! while( traverse != NULL )
- {
-! PtGetResource( traverse, Pt_ARG_POINTER, &menu, 0 );
-
-! if( menu != NULL &&
- priority < menu->priority &&
-! widget != traverse )
- {
- /* Insert the widget before the current traverse widget */
-! PtWidgetInsert( widget, traverse, 1 );
- return;
- }
-
-! traverse = PtWidgetBrotherInFront( traverse );
- }
- }
-
---- 2572,2601 ----
-
- /* Change the position of a menu button in the parent */
- static void
-! gui_ph_position_menu(PtWidget_t *widget, int priority)
- {
- PtWidget_t *traverse;
- vimmenu_T *menu;
-
-! traverse = PtWidgetChildBack(PtWidgetParent(widget));
-
- /* Iterate through the list of widgets in traverse, until
- * we find the position we want to insert our widget into */
- /* TODO: traverse from front to back, possible speedup? */
-! while (traverse != NULL)
- {
-! PtGetResource(traverse, Pt_ARG_POINTER, &menu, 0);
-
-! if (menu != NULL &&
- priority < menu->priority &&
-! widget != traverse)
- {
- /* Insert the widget before the current traverse widget */
-! PtWidgetInsert(widget, traverse, 1);
- return;
- }
-
-! traverse = PtWidgetBrotherInFront(traverse);
- }
- }
-
-***************
-*** 2611,2621 ****
-
- menu->submenu_id = menu->id = NULL;
-
-! if( menu_is_menubar( menu->name ) )
- {
-
-! accel_key = vim_strchr( menu->name, '&' );
-! if( accel_key != NULL )
- {
- mnemonic_str[0] = accel_key[1];
- mnemonic_str[1] = NUL;
---- 2611,2621 ----
-
- menu->submenu_id = menu->id = NULL;
-
-! if (menu_is_menubar(menu->name))
- {
-
-! accel_key = vim_strchr(menu->name, '&');
-! if (accel_key != NULL)
- {
- mnemonic_str[0] = accel_key[1];
- mnemonic_str[1] = NUL;
-***************
-*** 2623,2673 ****
-
- /* Create the menu button */
- n = 0;
-! PtSetArg( &args[ n++ ], Pt_ARG_TEXT_STRING, menu->dname, 0 );
-! PtSetArg( &args[ n++ ], Pt_ARG_ACCEL_TEXT, menu->actext, 0 );
-! if( accel_key != NULL )
-! PtSetArg( &args[ n++ ], Pt_ARG_ACCEL_KEY, mnemonic_str, 0 );
-! PtSetArg( &args[ n++ ], Pt_ARG_POINTER, menu, 0 );
-
-! if( parent != NULL )
-! PtSetArg( &args[ n++ ], Pt_ARG_BUTTON_TYPE, Pt_MENU_RIGHT, 0 );
-
-! menu->id = PtCreateWidget( PtMenuButton,
- (parent == NULL) ? gui.vimMenuBar : parent->submenu_id,
-! n, args );
-
-! PtAddCallback( menu->id, Pt_CB_ARM, gui_ph_handle_pulldown_menu, menu );
-
- /* Create the actual menu */
- n = 0;
-! if( parent != NULL )
-! PtSetArg( &args[ n++ ], Pt_ARG_MENU_FLAGS, Pt_TRUE, Pt_MENU_CHILD );
-
-! menu->submenu_id = PtCreateWidget( PtMenu, menu->id, n, args );
-
-! if( parent == NULL )
- {
-! PtAddCallback( menu->submenu_id, Pt_CB_UNREALIZED,
-! gui_ph_handle_menu_unrealized, menu );
-
-! if( menu->mnemonic != 0 )
- {
-! PtAddHotkeyHandler( gui.vimWindow, tolower( menu->mnemonic ),
-! Pk_KM_Alt, 0, menu, gui_ph_handle_pulldown_menu );
- }
- }
-
-! gui_ph_position_menu( menu->id, menu->priority );
-
- /* Redraw menubar here instead of gui_mch_draw_menubar */
-! if( gui.menu_is_active )
-! PtRealizeWidget( menu->id );
- }
-! else if( menu_is_popup( menu->name ) )
- {
-! menu->submenu_id = PtCreateWidget( PtMenu, gui.vimWindow, 0, NULL );
-! PtAddCallback( menu->submenu_id, Pt_CB_UNREALIZED,
-! gui_ph_handle_menu_unrealized, menu );
- }
- }
-
---- 2623,2673 ----
-
- /* Create the menu button */
- n = 0;
-! PtSetArg(&args[ n++ ], Pt_ARG_TEXT_STRING, menu->dname, 0);
-! PtSetArg(&args[ n++ ], Pt_ARG_ACCEL_TEXT, menu->actext, 0);
-! if (accel_key != NULL)
-! PtSetArg(&args[ n++ ], Pt_ARG_ACCEL_KEY, mnemonic_str, 0);
-! PtSetArg(&args[ n++ ], Pt_ARG_POINTER, menu, 0);
-
-! if (parent != NULL)
-! PtSetArg(&args[ n++ ], Pt_ARG_BUTTON_TYPE, Pt_MENU_RIGHT, 0);
-
-! menu->id = PtCreateWidget(PtMenuButton,
- (parent == NULL) ? gui.vimMenuBar : parent->submenu_id,
-! n, args);
-
-! PtAddCallback(menu->id, Pt_CB_ARM, gui_ph_handle_pulldown_menu, menu);
-
- /* Create the actual menu */
- n = 0;
-! if (parent != NULL)
-! PtSetArg(&args[ n++ ], Pt_ARG_MENU_FLAGS, Pt_TRUE, Pt_MENU_CHILD);
-
-! menu->submenu_id = PtCreateWidget(PtMenu, menu->id, n, args);
-
-! if (parent == NULL)
- {
-! PtAddCallback(menu->submenu_id, Pt_CB_UNREALIZED,
-! gui_ph_handle_menu_unrealized, menu);
-
-! if (menu->mnemonic != 0)
- {
-! PtAddHotkeyHandler(gui.vimWindow, tolower(menu->mnemonic),
-! Pk_KM_Alt, 0, menu, gui_ph_handle_pulldown_menu);
- }
- }
-
-! gui_ph_position_menu(menu->id, menu->priority);
-
- /* Redraw menubar here instead of gui_mch_draw_menubar */
-! if (gui.menu_is_active)
-! PtRealizeWidget(menu->id);
- }
-! else if (menu_is_popup(menu->name))
- {
-! menu->submenu_id = PtCreateWidget(PtMenu, gui.vimWindow, 0, NULL);
-! PtAddCallback(menu->submenu_id, Pt_CB_UNREALIZED,
-! gui_ph_handle_menu_unrealized, menu);
- }
- }
-
-***************
-*** 2681,2784 ****
- PtArg_t args[13];
-
- n = 0;
-! PtSetArg( &args[ n++ ], Pt_ARG_POINTER, menu, 0 );
-
- #ifdef FEAT_TOOLBAR
-! if( menu_is_toolbar( parent->name ) )
- {
-! if( menu_is_separator( menu->name ) )
- {
-! PtSetArg( &args[ n++ ], Pt_ARG_SEP_FLAGS,
-! Pt_SEP_VERTICAL, Pt_SEP_ORIENTATION );
-! PtSetArg( &args[ n++ ], Pt_ARG_SEP_TYPE, Pt_ETCHED_IN, 0 );
-! PtSetArg( &args[ n++ ], Pt_ARG_ANCHOR_FLAGS,
-! Pt_TRUE, Pt_ANCHOR_TOP_BOTTOM );
-! PtSetArg( &args[ n++ ], Pt_ARG_WIDTH, 2, 0 );
-! menu->id = PtCreateWidget( PtSeparator, gui.vimToolBar, n, args );
- }
- else
- {
-! if( strstr( (const char *) p_toolbar, "text" ) != NULL )
- {
-! PtSetArg( &args[ n++ ], Pt_ARG_BALLOON_POSITION,
-! Pt_BALLOON_BOTTOM, 0 );
-! PtSetArg( &args[ n++ ], Pt_ARG_TEXT_STRING, menu->dname, 0 );
-! PtSetArg( &args[ n++ ], Pt_ARG_TEXT_FONT, "TextFont08", 0 );
- }
-! if( ( strstr( (const char *) p_toolbar, "icons" ) != NULL ) &&
-! ( gui_ph_toolbar_images != NULL ) )
- {
-! PtSetArg( &args[ n++ ], Pt_ARG_LABEL_IMAGE,
-! gui_ph_toolbar_find_icon( menu ), 0 );
-! PtSetArg( &args[ n++ ], Pt_ARG_LABEL_TYPE, Pt_TEXT_IMAGE, 0 );
-! PtSetArg( &args[ n++ ], Pt_ARG_TEXT_IMAGE_SPACING, 0, 0 );
- }
-! if( strstr( (const char *) p_toolbar, "tooltips" ) != NULL )
- {
-! PtSetArg( &args[ n++ ], Pt_ARG_LABEL_BALLOON,
-! gui_ph_show_tooltip, 0 );
-! PtSetArg( &args[ n++ ], Pt_ARG_LABEL_FLAGS,
-! Pt_TRUE, Pt_SHOW_BALLOON );
- }
-! PtSetArg( &args[ n++ ], Pt_ARG_MARGIN_HEIGHT, 1, 0 );
-! PtSetArg( &args[ n++ ], Pt_ARG_MARGIN_WIDTH, 1, 0 );
-! PtSetArg( &args[ n++ ], Pt_ARG_FLAGS, Pt_FALSE,
-! Pt_HIGHLIGHTED | Pt_GETS_FOCUS );
-! PtSetArg( &args[ n++ ], Pt_ARG_FILL_COLOR, Pg_TRANSPARENT, 0 );
-! menu->id = PtCreateWidget( PtButton, gui.vimToolBar, n, args );
-
-! PtAddCallback( menu->id, Pt_CB_ACTIVATE, gui_ph_handle_menu, menu );
- }
- /* Update toolbar if it's open */
-! if( PtWidgetIsRealized( gui.vimToolBar ) )
-! PtRealizeWidget( menu->id );
- }
- else
- #endif
-! if( menu_is_separator( menu->name ) )
- {
-! menu->id = PtCreateWidget( PtSeparator, parent->submenu_id, n, args );
- }
- else
- {
-! accel_key = vim_strchr( menu->name, '&' );
-! if( accel_key != NULL )
- {
- mnemonic_str[0] = accel_key[1];
- mnemonic_str[1] = NUL;
- }
-
-! PtSetArg( &args[ n++ ], Pt_ARG_TEXT_STRING, menu->dname, 0 );
-! if( accel_key != NULL )
-! PtSetArg( &args[ n++ ], Pt_ARG_ACCEL_KEY, mnemonic_str,
-! 0 );
-
-! PtSetArg( &args[ n++ ], Pt_ARG_ACCEL_TEXT, menu->actext, 0 );
-
-! menu->id = PtCreateWidget( PtMenuButton, parent->submenu_id, n, args );
-
-! PtAddCallback( menu->id, Pt_CB_ACTIVATE, gui_ph_handle_menu, menu );
-
- #ifdef USE_PANEL_GROUP
-! if( gui_ph_is_buffer_item( menu, parent ) == TRUE )
- {
-! PtAddCallback( menu->id, Pt_CB_DESTROYED,
-! gui_ph_handle_buffer_remove, menu );
-! gui_ph_pg_add_buffer( menu->dname );
- }
- #endif
- }
-
-! gui_ph_position_menu( menu->id, menu->priority );
- }
-
- void
- gui_mch_destroy_menu(vimmenu_T *menu)
- {
-! if( menu->submenu_id != NULL )
-! PtDestroyWidget( menu->submenu_id );
-! if( menu->id != NULL )
-! PtDestroyWidget( menu->id );
-
- menu->submenu_id = NULL;
- menu->id = NULL;
---- 2681,2784 ----
- PtArg_t args[13];
-
- n = 0;
-! PtSetArg(&args[ n++ ], Pt_ARG_POINTER, menu, 0);
-
- #ifdef FEAT_TOOLBAR
-! if (menu_is_toolbar(parent->name))
- {
-! if (menu_is_separator(menu->name))
- {
-! PtSetArg(&args[ n++ ], Pt_ARG_SEP_FLAGS,
-! Pt_SEP_VERTICAL, Pt_SEP_ORIENTATION);
-! PtSetArg(&args[ n++ ], Pt_ARG_SEP_TYPE, Pt_ETCHED_IN, 0);
-! PtSetArg(&args[ n++ ], Pt_ARG_ANCHOR_FLAGS,
-! Pt_TRUE, Pt_ANCHOR_TOP_BOTTOM);
-! PtSetArg(&args[ n++ ], Pt_ARG_WIDTH, 2, 0);
-! menu->id = PtCreateWidget(PtSeparator, gui.vimToolBar, n, args);
- }
- else
- {
-! if (strstr((const char *) p_toolbar, "text") != NULL)
- {
-! PtSetArg(&args[ n++ ], Pt_ARG_BALLOON_POSITION,
-! Pt_BALLOON_BOTTOM, 0);
-! PtSetArg(&args[ n++ ], Pt_ARG_TEXT_STRING, menu->dname, 0);
-! PtSetArg(&args[ n++ ], Pt_ARG_TEXT_FONT, "TextFont08", 0);
- }
-! if ((strstr((const char *) p_toolbar, "icons") != NULL) &&
-! (gui_ph_toolbar_images != NULL))
- {
-! PtSetArg(&args[ n++ ], Pt_ARG_LABEL_IMAGE,
-! gui_ph_toolbar_find_icon(menu), 0);
-! PtSetArg(&args[ n++ ], Pt_ARG_LABEL_TYPE, Pt_TEXT_IMAGE, 0);
-! PtSetArg(&args[ n++ ], Pt_ARG_TEXT_IMAGE_SPACING, 0, 0);
- }
-! if (strstr((const char *) p_toolbar, "tooltips") != NULL)
- {
-! PtSetArg(&args[ n++ ], Pt_ARG_LABEL_BALLOON,
-! gui_ph_show_tooltip, 0);
-! PtSetArg(&args[ n++ ], Pt_ARG_LABEL_FLAGS,
-! Pt_TRUE, Pt_SHOW_BALLOON);
- }
-! PtSetArg(&args[ n++ ], Pt_ARG_MARGIN_HEIGHT, 1, 0);
-! PtSetArg(&args[ n++ ], Pt_ARG_MARGIN_WIDTH, 1, 0);
-! PtSetArg(&args[ n++ ], Pt_ARG_FLAGS, Pt_FALSE,
-! Pt_HIGHLIGHTED | Pt_GETS_FOCUS);
-! PtSetArg(&args[ n++ ], Pt_ARG_FILL_COLOR, Pg_TRANSPARENT, 0);
-! menu->id = PtCreateWidget(PtButton, gui.vimToolBar, n, args);
-
-! PtAddCallback(menu->id, Pt_CB_ACTIVATE, gui_ph_handle_menu, menu);
- }
- /* Update toolbar if it's open */
-! if (PtWidgetIsRealized(gui.vimToolBar))
-! PtRealizeWidget(menu->id);
- }
- else
- #endif
-! if (menu_is_separator(menu->name))
- {
-! menu->id = PtCreateWidget(PtSeparator, parent->submenu_id, n, args);
- }
- else
- {
-! accel_key = vim_strchr(menu->name, '&');
-! if (accel_key != NULL)
- {
- mnemonic_str[0] = accel_key[1];
- mnemonic_str[1] = NUL;
- }
-
-! PtSetArg(&args[ n++ ], Pt_ARG_TEXT_STRING, menu->dname, 0);
-! if (accel_key != NULL)
-! PtSetArg(&args[ n++ ], Pt_ARG_ACCEL_KEY, mnemonic_str,
-! 0);
-
-! PtSetArg(&args[ n++ ], Pt_ARG_ACCEL_TEXT, menu->actext, 0);
-
-! menu->id = PtCreateWidget(PtMenuButton, parent->submenu_id, n, args);
-
-! PtAddCallback(menu->id, Pt_CB_ACTIVATE, gui_ph_handle_menu, menu);
-
- #ifdef USE_PANEL_GROUP
-! if (gui_ph_is_buffer_item(menu, parent) == TRUE)
- {
-! PtAddCallback(menu->id, Pt_CB_DESTROYED,
-! gui_ph_handle_buffer_remove, menu);
-! gui_ph_pg_add_buffer(menu->dname);
- }
- #endif
- }
-
-! gui_ph_position_menu(menu->id, menu->priority);
- }
-
- void
- gui_mch_destroy_menu(vimmenu_T *menu)
- {
-! if (menu->submenu_id != NULL)
-! PtDestroyWidget(menu->submenu_id);
-! if (menu->id != NULL)
-! PtDestroyWidget(menu->id);
-
- menu->submenu_id = NULL;
- menu->id = NULL;
-***************
-*** 2789,2800 ****
- {
- long flags, mask, fields;
-
-! if( menu->id == NULL )
- return;
-
-! flags = PtWidgetFlags( menu->id );
-! if( PtWidgetIsClass( menu->id, PtMenuButton ) &&
-! PtWidgetIsClass( PtWidgetParent( menu->id ), PtMenu ) )
- {
- fields = Pt_FALSE;
- mask = Pt_SELECTABLE | Pt_HIGHLIGHTED;
---- 2789,2800 ----
- {
- long flags, mask, fields;
-
-! if (menu->id == NULL)
- return;
-
-! flags = PtWidgetFlags(menu->id);
-! if (PtWidgetIsClass(menu->id, PtMenuButton) &&
-! PtWidgetIsClass(PtWidgetParent(menu->id), PtMenu))
- {
- fields = Pt_FALSE;
- mask = Pt_SELECTABLE | Pt_HIGHLIGHTED;
-***************
-*** 2805,2815 ****
- mask = Pt_BLOCKED | Pt_GHOST;
- }
-
-! if( ! grey )
- fields = ~fields;
-
-! PtSetResource( menu->id, Pt_ARG_FLAGS, fields,
-! mask );
- }
-
- void
---- 2805,2815 ----
- mask = Pt_BLOCKED | Pt_GHOST;
- }
-
-! if (! grey)
- fields = ~fields;
-
-! PtSetResource(menu->id, Pt_ARG_FLAGS, fields,
-! mask);
- }
-
- void
-***************
-*** 2830,2837 ****
- void
- gui_mch_show_popupmenu(vimmenu_T *menu)
- {
-! PtSetResource( menu->submenu_id, Pt_ARG_POS, &abs_mouse, 0 );
-! PtRealizeWidget( menu->submenu_id );
- }
-
- void
---- 2830,2837 ----
- void
- gui_mch_show_popupmenu(vimmenu_T *menu)
- {
-! PtSetResource(menu->submenu_id, Pt_ARG_POS, &abs_mouse, 0);
-! PtRealizeWidget(menu->submenu_id);
- }
-
- void
-***************
-*** 2842,2855 ****
-
- #endif
-
-! #if defined( FEAT_TOOLBAR ) || defined( PROTO )
- void
- gui_mch_show_toolbar(int showit)
- {
-! if( showit )
-! PtRealizeWidget( gui.vimToolBar );
- else
-! PtUnrealizeWidget( gui.vimToolBar );
- }
- #endif
-
---- 2842,2855 ----
-
- #endif
-
-! #if defined(FEAT_TOOLBAR) || defined(PROTO)
- void
- gui_mch_show_toolbar(int showit)
- {
-! if (showit)
-! PtRealizeWidget(gui.vimToolBar);
- else
-! PtUnrealizeWidget(gui.vimToolBar);
- }
- #endif
-
-***************
-*** 2870,2903 ****
- FontQueryInfo info;
- int_u style;
-
-! font_tag = alloc( MAX_FONT_TAG );
-! if( font_tag != NULL )
- {
-! if( PfGenerateFontName( font_name, font_flags, font_size,
-! font_tag ) != NULL )
- {
- /* Enforce some limits on the font used */
- style = PHFONT_INFO_FIXED;
-
-! if( enforce & PF_STYLE_BOLD )
- style |= PHFONT_INFO_BOLD;
-! if( enforce & PF_STYLE_ANTIALIAS )
- style |= PHFONT_INFO_ALIAS;
-! if( enforce & PF_STYLE_ITALIC )
- style |= PHFONT_INFO_ITALIC;
-
-! PfQueryFontInfo( font_tag, &info );
-
-! if( info.size == 0 )
- font_size = 0;
-
- /* Make sure font size matches, and that the font style
- * at least has the bits we're checking for */
-! if( font_size == info.size &&
-! style == (info.style & style) )
- return (GuiFont)font_tag;
- }
-! vim_free( font_tag );
- }
- return NULL;
- }
---- 2870,2903 ----
- FontQueryInfo info;
- int_u style;
-
-! font_tag = alloc(MAX_FONT_TAG);
-! if (font_tag != NULL)
- {
-! if (PfGenerateFontName(font_name, font_flags, font_size,
-! font_tag) != NULL)
- {
- /* Enforce some limits on the font used */
- style = PHFONT_INFO_FIXED;
-
-! if (enforce & PF_STYLE_BOLD)
- style |= PHFONT_INFO_BOLD;
-! if (enforce & PF_STYLE_ANTIALIAS)
- style |= PHFONT_INFO_ALIAS;
-! if (enforce & PF_STYLE_ITALIC)
- style |= PHFONT_INFO_ITALIC;
-
-! PfQueryFontInfo(font_tag, &info);
-
-! if (info.size == 0)
- font_size = 0;
-
- /* Make sure font size matches, and that the font style
- * at least has the bits we're checking for */
-! if (font_size == info.size &&
-! style == (info.style & style))
- return (GuiFont)font_tag;
- }
-! vim_free(font_tag);
- }
- return NULL;
- }
-***************
-*** 2919,2936 ****
- char_u *vim_font,
- char_u **font_name,
- int_u *font_flags,
-! int_u *font_size )
- {
- char_u *mark;
- int_u name_len, size;
-
-! mark = vim_strchr( vim_font, ':' );
-! if( mark == NULL )
-! name_len = STRLEN( vim_font );
- else
-! name_len = (int_u) ( mark - vim_font );
-
-! *font_name = vim_strnsave( vim_font, name_len );
- if (*font_name != NULL)
- {
- if (mark != NULL)
---- 2919,2936 ----
- char_u *vim_font,
- char_u **font_name,
- int_u *font_flags,
-! int_u *font_size)
- {
- char_u *mark;
- int_u name_len, size;
-
-! mark = vim_strchr(vim_font, ':');
-! if (mark == NULL)
-! name_len = STRLEN(vim_font);
- else
-! name_len = (int_u) (mark - vim_font);
-
-! *font_name = vim_strnsave(vim_font, name_len);
- if (*font_name != NULL)
- {
- if (mark != NULL)
-***************
-*** 2944,2950 ****
- case 'i': *font_flags |= PF_STYLE_ITALIC; break;
-
- case 's':
-! size = getdigits( &mark );
- /* Restrict the size to some vague limits */
- if (size < 1 || size > 100)
- size = 8;
---- 2944,2950 ----
- case 'i': *font_flags |= PF_STYLE_ITALIC; break;
-
- case 's':
-! size = getdigits(&mark);
- /* Restrict the size to some vague limits */
- if (size < 1 || size > 100)
- size = 8;
-***************
-*** 2979,3031 ****
- vim_font_name = "PC Terminal";
- }
-
-! if (STRCMP( vim_font_name, "*" ) == 0)
- {
-! font_tag = PtFontSelection( gui.vimWindow, NULL, NULL,
-! "pcterm12", -1, PHFONT_FIXED, NULL );
-
- if (font_tag == NULL)
- return FAIL;
-
-! gui_mch_free_font( gui.norm_font );
- gui.norm_font = font_tag;
-
-! PfQueryFontInfo( font_tag, &info );
-! font_name = vim_strsave( info.font );
- }
- else
- {
-! if (gui_ph_parse_font_name( vim_font_name, &font_name, &font_flags,
-! &font_size ) == FALSE)
- return FAIL;
-
-! font_tag = gui_ph_get_font( font_name, font_flags, font_size, 0 );
- if (font_tag == NULL)
- {
-! vim_free( font_name );
- return FAIL;
- }
-
-! gui_mch_free_font( gui.norm_font );
- gui.norm_font = font_tag;
- }
-
-! gui_mch_free_font( gui.bold_font );
-! gui.bold_font = gui_ph_get_font( font_name, font_flags | PF_STYLE_BOLD,
-! font_size, PF_STYLE_BOLD );
-!
-! gui_mch_free_font( gui.ital_font );
-! gui.ital_font = gui_ph_get_font( font_name, font_flags | PF_STYLE_ITALIC,
-! font_size, PF_STYLE_ITALIC );
-
- /* This extent was brought to you by the letter 'g' */
-! PfExtentText( &extent, NULL, font_tag, "g", 1 );
-
- gui.char_width = extent.lr.x - extent.ul.x + 1;
- gui.char_height = (- extent.ul.y) + extent.lr.y + 1;
- gui.char_ascent = - extent.ul.y;
-
-! vim_free( font_name );
- return OK;
- }
-
---- 2979,3031 ----
- vim_font_name = "PC Terminal";
- }
-
-! if (STRCMP(vim_font_name, "*") == 0)
- {
-! font_tag = PtFontSelection(gui.vimWindow, NULL, NULL,
-! "pcterm12", -1, PHFONT_FIXED, NULL);
-
- if (font_tag == NULL)
- return FAIL;
-
-! gui_mch_free_font(gui.norm_font);
- gui.norm_font = font_tag;
-
-! PfQueryFontInfo(font_tag, &info);
-! font_name = vim_strsave(info.font);
- }
- else
- {
-! if (gui_ph_parse_font_name(vim_font_name, &font_name, &font_flags,
-! &font_size) == FALSE)
- return FAIL;
-
-! font_tag = gui_ph_get_font(font_name, font_flags, font_size, 0);
- if (font_tag == NULL)
- {
-! vim_free(font_name);
- return FAIL;
- }
-
-! gui_mch_free_font(gui.norm_font);
- gui.norm_font = font_tag;
- }
-
-! gui_mch_free_font(gui.bold_font);
-! gui.bold_font = gui_ph_get_font(font_name, font_flags | PF_STYLE_BOLD,
-! font_size, PF_STYLE_BOLD);
-!
-! gui_mch_free_font(gui.ital_font);
-! gui.ital_font = gui_ph_get_font(font_name, font_flags | PF_STYLE_ITALIC,
-! font_size, PF_STYLE_ITALIC);
-
- /* This extent was brought to you by the letter 'g' */
-! PfExtentText(&extent, NULL, font_tag, "g", 1);
-
- gui.char_width = extent.lr.x - extent.ul.x + 1;
- gui.char_height = (- extent.ul.y) + extent.lr.y + 1;
- gui.char_ascent = - extent.ul.y;
-
-! vim_free(font_name);
- return OK;
- }
-
-***************
-*** 3037,3043 ****
- {
- FontQueryInfo info;
-
-! PfQueryFontInfo( gui.norm_font, &info );
-
- gui.char_height = - info.ascender + info.descender + p_linespace;
- gui.char_ascent = - info.ascender + p_linespace / 2;
---- 3037,3043 ----
- {
- FontQueryInfo info;
-
-! PfQueryFontInfo(gui.norm_font, &info);
-
- gui.char_height = - info.ascender + info.descender + p_linespace;
- gui.char_ascent = - info.ascender + p_linespace / 2;
-***************
-*** 3053,3070 ****
- int_u font_size = 12;
- int_u font_flags = 0;
-
-! if (gui_ph_parse_font_name( vim_font_name, &font_name, &font_flags,
-! &font_size ) != FALSE)
- {
-! font_tag = gui_ph_get_font( font_name, font_flags, font_size, -1 );
-! vim_free( font_name );
-
- if (font_tag != NULL)
- return (GuiFont)font_tag;
- }
-
- if (report_error)
-! EMSG2(e_font, vim_font_name );
-
- return FAIL;
- }
---- 3053,3070 ----
- int_u font_size = 12;
- int_u font_flags = 0;
-
-! if (gui_ph_parse_font_name(vim_font_name, &font_name, &font_flags,
-! &font_size) != FALSE)
- {
-! font_tag = gui_ph_get_font(font_name, font_flags, font_size, -1);
-! vim_free(font_name);
-
- if (font_tag != NULL)
- return (GuiFont)font_tag;
- }
-
- if (report_error)
-! EMSG2(e_font, vim_font_name);
-
- return FAIL;
- }
-***************
-*** 3088,3099 ****
- void
- gui_mch_set_font(GuiFont font)
- {
-! PgSetFont( font );
- }
-
- void
- gui_mch_free_font(GuiFont font)
- {
-! vim_free( font );
- }
-
---- 3088,3099 ----
- void
- gui_mch_set_font(GuiFont font)
- {
-! PgSetFont(font);
- }
-
- void
- gui_mch_free_font(GuiFont font)
- {
-! vim_free(font);
- }
-
-*** ../vim-7.3.309/src/version.c 2011-09-14 15:41:54.000000000 +0200
---- src/version.c 2011-09-14 16:01:50.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 310,
- /**/
-
---
-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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.311
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.311 (replaces 7.3.289)
-Problem: Complete function isn't called when the leader changed.
-Solution: Allow the complete function to return a dictionary with a flag
- that indicates ins_compl_restart() is to be called when the leader
- changes. (Taro Muraoka)
-Files: runtime/insert.txt, src/edit.c, src/eval.c, src/proto/eval.pro
-
-
-*** ../vim-7.3.310/src/edit.c 2011-09-05 20:13:37.000000000 +0200
---- src/edit.c 2011-09-14 16:43:14.000000000 +0200
-***************
-*** 135,140 ****
---- 135,142 ----
- static int compl_cont_mode = 0;
- static expand_T compl_xp;
-
-+ static int compl_opt_refresh_always = FALSE;
-+
- static void ins_ctrl_x __ARGS((void));
- static int has_compl_option __ARGS((int dict_opt));
- static int ins_compl_accept_char __ARGS((int c));
-***************
-*** 153,161 ****
- static void ins_compl_free __ARGS((void));
- static void ins_compl_clear __ARGS((void));
- static int ins_compl_bs __ARGS((void));
- static void ins_compl_new_leader __ARGS((void));
- static void ins_compl_addleader __ARGS((int c));
-! static int ins_compl_len __ARGS((void));
- static void ins_compl_restart __ARGS((void));
- static void ins_compl_set_original_text __ARGS((char_u *str));
- static void ins_compl_addfrommatch __ARGS((void));
---- 155,164 ----
- static void ins_compl_free __ARGS((void));
- static void ins_compl_clear __ARGS((void));
- static int ins_compl_bs __ARGS((void));
-+ static int ins_compl_need_restart __ARGS((void));
- static void ins_compl_new_leader __ARGS((void));
- static void ins_compl_addleader __ARGS((int c));
-! static int ins_compl_len __ARGS((void));
- static void ins_compl_restart __ARGS((void));
- static void ins_compl_set_original_text __ARGS((char_u *str));
- static void ins_compl_addfrommatch __ARGS((void));
-***************
-*** 163,168 ****
---- 166,172 ----
- static buf_T *ins_compl_next_buf __ARGS((buf_T *buf, int flag));
- #if defined(FEAT_COMPL_FUNC) || defined(FEAT_EVAL)
- static void ins_compl_add_list __ARGS((list_T *list));
-+ static void ins_compl_add_dict __ARGS((dict_T *dict));
- #endif
- static int ins_compl_get_exp __ARGS((pos_T *ini));
- static void ins_compl_delete __ARGS((void));
-***************
-*** 3341,3347 ****
- /* Deleted more than what was used to find matches or didn't finish
- * finding all matches: need to look for matches all over again. */
- if (curwin->w_cursor.col <= compl_col + compl_length
-! || compl_was_interrupted)
- ins_compl_restart();
-
- vim_free(compl_leader);
---- 3345,3351 ----
- /* Deleted more than what was used to find matches or didn't finish
- * finding all matches: need to look for matches all over again. */
- if (curwin->w_cursor.col <= compl_col + compl_length
-! || ins_compl_need_restart())
- ins_compl_restart();
-
- vim_free(compl_leader);
-***************
-*** 3355,3360 ****
---- 3359,3378 ----
- }
-
- /*
-+ * Return TRUE when we need to find matches again, ins_compl_restart() is to
-+ * be called.
-+ */
-+ static int
-+ ins_compl_need_restart()
-+ {
-+ /* Return TRUE if we didn't complete finding matches or when the
-+ * 'completefunc' returned "always" in the "refresh" dictionary item. */
-+ return compl_was_interrupted
-+ || ((ctrl_x_mode == CTRL_X_FUNCTION || ctrl_x_mode == CTRL_X_OMNI)
-+ && compl_opt_refresh_always);
-+ }
-+
-+ /*
- * Called after changing "compl_leader".
- * Show the popup menu with a different set of matches.
- * May also search for matches again if the previous search was interrupted.
-***************
-*** 3443,3449 ****
- ins_char(c);
-
- /* If we didn't complete finding matches we must search again. */
-! if (compl_was_interrupted)
- ins_compl_restart();
-
- vim_free(compl_leader);
---- 3461,3467 ----
- ins_char(c);
-
- /* If we didn't complete finding matches we must search again. */
-! if (ins_compl_need_restart())
- ins_compl_restart();
-
- vim_free(compl_leader);
-***************
-*** 3871,3882 ****
- int type; /* CTRL_X_OMNI or CTRL_X_FUNCTION */
- char_u *base;
- {
-! list_T *matchlist;
- 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)
---- 3889,3902 ----
- int type; /* CTRL_X_OMNI or CTRL_X_FUNCTION */
- char_u *base;
- {
-! list_T *matchlist = NULL;
-! dict_T *matchdict = NULL;
- char_u *args[2];
- char_u *funcname;
- pos_T pos;
- win_T *curwin_save;
- buf_T *curbuf_save;
-+ typval_T rettv;
-
- funcname = (type == CTRL_X_FUNCTION) ? curbuf->b_p_cfu : curbuf->b_p_ofu;
- if (*funcname == NUL)
-***************
-*** 3889,3895 ****
- 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));
---- 3909,3933 ----
- pos = curwin->w_cursor;
- curwin_save = curwin;
- curbuf_save = curbuf;
-!
-! /* Call a function, which returns a list or dict. */
-! if (call_vim_function(funcname, 2, args, FALSE, &rettv) == OK)
-! {
-! switch (rettv.v_type)
-! {
-! case VAR_LIST:
-! matchlist = rettv.vval.v_list;
-! break;
-! case VAR_DICT:
-! matchdict = rettv.vval.v_dict;
-! break;
-! default:
-! /* TODO: Give error message? */
-! clear_tv(&rettv);
-! break;
-! }
-! }
-!
- if (curwin_save != curwin || curbuf_save != curbuf)
- {
- EMSG(_(e_complwin));
-***************
-*** 3902,3911 ****
---- 3940,3954 ----
- EMSG(_(e_compldel));
- goto theend;
- }
-+
- if (matchlist != NULL)
- ins_compl_add_list(matchlist);
-+ else if (matchdict != NULL)
-+ ins_compl_add_dict(matchdict);
-
- theend:
-+ if (matchdict != NULL)
-+ dict_unref(matchdict);
- if (matchlist != NULL)
- list_unref(matchlist);
- }
-***************
-*** 3934,3939 ****
---- 3977,4009 ----
- }
-
- /*
-+ * Add completions from a dict.
-+ */
-+ static void
-+ ins_compl_add_dict(dict)
-+ dict_T *dict;
-+ {
-+ dictitem_T *refresh;
-+ dictitem_T *words;
-+
-+ /* Check for optional "refresh" item. */
-+ compl_opt_refresh_always = FALSE;
-+ refresh = dict_find(dict, (char_u *)"refresh", 7);
-+ if (refresh != NULL && refresh->di_tv.v_type == VAR_STRING)
-+ {
-+ char_u *v = refresh->di_tv.vval.v_string;
-+
-+ if (v != NULL && STRCMP(v, (char_u *)"always") == 0)
-+ compl_opt_refresh_always = TRUE;
-+ }
-+
-+ /* Add completions from a "words" list. */
-+ words = dict_find(dict, (char_u *)"words", 5);
-+ if (words != NULL && words->di_tv.v_type == VAR_LIST)
-+ ins_compl_add_list(words->di_tv.vval.v_list);
-+ }
-+
-+ /*
- * Add a match to the list of matches from a typeval_T.
- * If the given string is already in the list of completions, then return
- * NOTDONE, otherwise add it to the list and return OK. If there is an error,
-***************
-*** 5088,5093 ****
---- 5158,5169 ----
- return FAIL;
- }
-
-+ /*
-+ * Reset extended parameters of completion, when start new
-+ * completion.
-+ */
-+ compl_opt_refresh_always = FALSE;
-+
- if (col < 0)
- col = curs_col;
- compl_col = col;
-*** ../vim-7.3.310/src/eval.c 2011-09-14 14:33:47.000000000 +0200
---- src/eval.c 2011-09-14 16:16:47.000000000 +0200
-***************
-*** 380,388 ****
-
- static void prepare_vimvar __ARGS((int idx, typval_T *save_tv));
- static void restore_vimvar __ARGS((int idx, typval_T *save_tv));
-- #if defined(FEAT_USR_CMDS) && defined(FEAT_CMDL_COMPL)
-- static int call_vim_function __ARGS((char_u *func, int argc, char_u **argv, int safe, typval_T *rettv));
-- #endif
- static int ex_let_vars __ARGS((char_u *arg, typval_T *tv, int copy, int semicolon, int var_count, char_u *nextchars));
- static char_u *skip_var_list __ARGS((char_u *arg, int *var_count, int *semicolon));
- static char_u *skip_var_one __ARGS((char_u *arg));
---- 380,385 ----
-***************
-*** 451,457 ****
- static void set_ref_in_list __ARGS((list_T *l, int copyID));
- static void set_ref_in_item __ARGS((typval_T *tv, int copyID));
- static int rettv_dict_alloc __ARGS((typval_T *rettv));
-- static void dict_unref __ARGS((dict_T *d));
- static void dict_free __ARGS((dict_T *d, int recurse));
- static dictitem_T *dictitem_copy __ARGS((dictitem_T *org));
- static void dictitem_remove __ARGS((dict_T *dict, dictitem_T *item));
---- 448,453 ----
-***************
-*** 1563,1569 ****
- * arguments are currently supported.
- * Returns OK or FAIL.
- */
-! static int
- call_vim_function(func, argc, argv, safe, rettv)
- char_u *func;
- int argc;
---- 1559,1565 ----
- * arguments are currently supported.
- * Returns OK or FAIL.
- */
-! int
- call_vim_function(func, argc, argv, safe, rettv)
- char_u *func;
- int argc;
-***************
-*** 6903,6909 ****
- * Unreference a Dictionary: decrement the reference count and free it when it
- * becomes zero.
- */
-! static void
- dict_unref(d)
- dict_T *d;
- {
---- 6899,6905 ----
- * Unreference a Dictionary: decrement the reference count and free it when it
- * becomes zero.
- */
-! void
- dict_unref(d)
- dict_T *d;
- {
-*** ../vim-7.3.310/src/proto/eval.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/eval.pro 2011-09-14 16:16:47.000000000 +0200
-***************
-*** 23,28 ****
---- 23,29 ----
- list_T *eval_spell_expr __ARGS((char_u *badword, char_u *expr));
- int get_spellword __ARGS((list_T *list, char_u **pp));
- typval_T *eval_expr __ARGS((char_u *arg, char_u **nextcmd));
-+ int call_vim_function __ARGS((char_u *func, int argc, char_u **argv, int safe, typval_T *rettv));
- void *call_func_retstr __ARGS((char_u *func, int argc, char_u **argv, int safe));
- long call_func_retnr __ARGS((char_u *func, int argc, char_u **argv, int safe));
- void *call_func_retlist __ARGS((char_u *func, int argc, char_u **argv, int safe));
-***************
-*** 52,57 ****
---- 53,59 ----
- int list_append_string __ARGS((list_T *l, char_u *str, int len));
- int garbage_collect __ARGS((void));
- dict_T *dict_alloc __ARGS((void));
-+ void dict_unref __ARGS((dict_T *d));
- dictitem_T *dictitem_alloc __ARGS((char_u *key));
- void dictitem_free __ARGS((dictitem_T *item));
- int dict_add __ARGS((dict_T *d, dictitem_T *item));
-*** ../vim-7.3.310/src/version.c 2011-09-14 16:04:52.000000000 +0200
---- src/version.c 2011-09-14 16:25:08.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 311,
- /**/
-
---
-Contrary to popular belief, it's often your clothing that gets promoted, not
-you.
- (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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.312
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.312 (after 7.3.306)
-Problem: Can't compile with tiny features.
-Solution: Add #ifdef around win_valid().
-Files: src/buffer.c
-
-
-*** ../vim-7.3.311/src/buffer.c 2011-09-14 14:43:21.000000000 +0200
---- src/buffer.c 2011-09-14 17:46:24.000000000 +0200
-***************
-*** 416,422 ****
- #endif
-
- buf_freeall(buf, (del_buf ? BFA_DEL : 0) + (wipe_buf ? BFA_WIPE : 0));
-! if (win_valid(win) && win->w_buffer == buf)
- win->w_buffer = NULL; /* make sure we don't use the buffer now */
-
- #ifdef FEAT_AUTOCMD
---- 416,426 ----
- #endif
-
- buf_freeall(buf, (del_buf ? BFA_DEL : 0) + (wipe_buf ? BFA_WIPE : 0));
-! if (
-! #ifdef FEAT_WINDOWS
-! win_valid(win) &&
-! #endif
-! win->w_buffer == buf)
- win->w_buffer = NULL; /* make sure we don't use the buffer now */
-
- #ifdef FEAT_AUTOCMD
-*** ../vim-7.3.311/src/version.c 2011-09-14 16:52:02.000000000 +0200
---- src/version.c 2011-09-14 17:27:24.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 312,
- /**/
-
---
-You have heard the saying that if you put a thousand monkeys in a room with a
-thousand typewriters and waited long enough, eventually you would have a room
-full of dead monkeys.
- (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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.313
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.313 (after 7.3.307)
-Problem: One more warning when compiling with dynamic Python 3.
-Solution: Change PySliceObject to PyObject.
-Files: src/if_python3.c
-
-
-*** ../vim-7.3.312/src/if_python3.c 2011-09-14 15:41:54.000000000 +0200
---- src/if_python3.c 2011-09-14 18:54:49.000000000 +0200
-***************
-*** 194,200 ****
- static int (*py3_PySys_SetObject)(char *, PyObject *);
- static PyObject* (*py3_PyList_Append)(PyObject *, PyObject *);
- static Py_ssize_t (*py3_PyList_Size)(PyObject *);
-! static int (*py3_PySlice_GetIndicesEx)(PySliceObject *r, Py_ssize_t length,
- Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step, Py_ssize_t *slicelength);
- static PyObject* (*py3_PyErr_NoMemory)(void);
- static void (*py3_Py_Finalize)(void);
---- 194,200 ----
- static int (*py3_PySys_SetObject)(char *, PyObject *);
- static PyObject* (*py3_PyList_Append)(PyObject *, PyObject *);
- static Py_ssize_t (*py3_PyList_Size)(PyObject *);
-! static int (*py3_PySlice_GetIndicesEx)(PyObject *r, Py_ssize_t length,
- Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step, Py_ssize_t *slicelength);
- static PyObject* (*py3_PyErr_NoMemory)(void);
- static void (*py3_Py_Finalize)(void);
-*** ../vim-7.3.312/src/version.c 2011-09-14 17:50:05.000000000 +0200
---- src/version.c 2011-09-14 18:56:03.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 313,
- /**/
-
---
-All good vision statements are created by groups of people with bloated
-bladders who would rather be doing anything else.
- (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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.314
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.314 (after 7.3.304)
-Problem: Missing parenthesis.
-Solution: Add it. (Benjamin R. Haskell)
-Files: src/Make_mvc.mak
-
-
-*** ../vim-7.3.313/src/Make_mvc.mak 2011-09-14 10:49:44.000000000 +0200
---- src/Make_mvc.mak 2011-09-14 18:56:24.000000000 +0200
-***************
-*** 785,791 ****
- PERL_INC = /I $(PERL_INCDIR)
- PERL_OBJ = $(OUTDIR)\if_perl.obj $(OUTDIR)\if_perlsfio.obj
- XSUBPP = $(PERL)\lib\ExtUtils\xsubpp
-! !if exist($(XSUBPP)
- XSUBPP = $(PERL_EXE) $(XSUBPP)
- !else
- XSUBPP = xsubpp
---- 785,791 ----
- PERL_INC = /I $(PERL_INCDIR)
- PERL_OBJ = $(OUTDIR)\if_perl.obj $(OUTDIR)\if_perlsfio.obj
- XSUBPP = $(PERL)\lib\ExtUtils\xsubpp
-! !if exist($(XSUBPP))
- XSUBPP = $(PERL_EXE) $(XSUBPP)
- !else
- XSUBPP = xsubpp
-*** ../vim-7.3.313/src/version.c 2011-09-14 18:59:35.000000000 +0200
---- src/version.c 2011-09-14 19:01:12.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 314,
- /**/
-
---
-Often you're less important than your furniture. If you think about it, you
-can get fired but your furniture stays behind, gainfully employed at the
-company that didn't need _you_ anymore.
- (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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.315
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.315
-Problem: Opening a window before forking causes problems for GTK.
-Solution: Fork first, create the window in the child and report back to the
- parent process whether it worked. If successful the parent exits,
- if unsuccessful the child exits and the parent continues in the
- terminal. (Tim Starling)
-Files: src/gui.c
-
-
-*** ../vim-7.3.314/src/gui.c 2011-08-10 17:44:41.000000000 +0200
---- src/gui.c 2011-09-14 17:34:30.000000000 +0200
-***************
-*** 37,42 ****
---- 37,60 ----
- static void gui_set_bg_color __ARGS((char_u *name));
- static win_T *xy2win __ARGS((int x, int y));
-
-+ #if defined(UNIX) && !defined(__BEOS__) && !defined(MACOS_X) \
-+ && !defined(__APPLE__)
-+ # define MAY_FORK
-+ static void gui_do_fork __ARGS((void));
-+
-+ static int gui_read_child_pipe __ARGS((int fd));
-+
-+ /* Return values for gui_read_child_pipe */
-+ enum {
-+ GUI_CHILD_IO_ERROR,
-+ GUI_CHILD_OK,
-+ GUI_CHILD_FAILED
-+ };
-+
-+ #endif /* MAY_FORK */
-+
-+ static void gui_attempt_start __ARGS((void));
-+
- static int can_update_cursor = TRUE; /* can display the cursor */
-
- /*
-***************
-*** 59,105 ****
- gui_start()
- {
- char_u *old_term;
-- #if defined(UNIX) && !defined(__BEOS__) && !defined(MACOS_X) \
-- && !defined(__APPLE__)
-- # define MAY_FORK
-- int dofork = TRUE;
-- #endif
- static int recursive = 0;
-
- old_term = vim_strsave(T_NAME);
-
-- /*
-- * Set_termname() will call gui_init() to start the GUI.
-- * Set the "starting" flag, to indicate that the GUI will start.
-- *
-- * We don't want to open the GUI shell until after we've read .gvimrc,
-- * otherwise we don't know what font we will use, and hence we don't know
-- * what size the shell should be. So if there are errors in the .gvimrc
-- * file, they will have to go to the terminal: Set full_screen to FALSE.
-- * full_screen will be set to TRUE again by a successful termcapinit().
-- */
- settmode(TMODE_COOK); /* stop RAW mode */
- if (full_screen)
- cursor_on(); /* needed for ":gui" in .vimrc */
-- gui.starting = TRUE;
- full_screen = FALSE;
-
-! #ifdef FEAT_GUI_GTK
-! gui.event_time = GDK_CURRENT_TIME;
-! #endif
-
- #ifdef MAY_FORK
-! if (!gui.dofork || vim_strchr(p_go, GO_FORG) || recursive)
-! dofork = FALSE;
- #endif
-! ++recursive;
-!
-! termcapinit((char_u *)"builtin_gui");
-! gui.starting = recursive - 1;
-
- if (!gui.in_use) /* failed to start GUI */
- {
-! termcapinit(old_term); /* back to old term settings */
- settmode(TMODE_RAW); /* restart RAW mode */
- #ifdef FEAT_TITLE
- set_title_defaults(); /* set 'title' and 'icon' again */
---- 77,123 ----
- gui_start()
- {
- char_u *old_term;
- static int recursive = 0;
-
- old_term = vim_strsave(T_NAME);
-
- settmode(TMODE_COOK); /* stop RAW mode */
- if (full_screen)
- cursor_on(); /* needed for ":gui" in .vimrc */
- full_screen = FALSE;
-
-! ++recursive;
-
- #ifdef MAY_FORK
-! /*
-! * Quit the current process and continue in the child.
-! * Makes "gvim file" disconnect from the shell it was started in.
-! * Don't do this when Vim was started with "-f" or the 'f' flag is present
-! * in 'guioptions'.
-! */
-! if (gui.dofork && !vim_strchr(p_go, GO_FORG) && recursive <= 1)
-! {
-! gui_do_fork();
-! }
-! else
- #endif
-! {
-! gui_attempt_start();
-! }
-
- if (!gui.in_use) /* failed to start GUI */
- {
-! /* Back to old term settings
-! *
-! * FIXME: If we got here because a child process failed and flagged to
-! * the parent to resume, and X11 is enabled with FEAT_TITLE, this will
-! * hit an X11 I/O error and do a longjmp(), leaving recursive
-! * permanently set to 1. This is probably not as big a problem as it
-! * sounds, because gui_mch_init() in both gui_x11.c and gui_gtk_x11.c
-! * return "OK" unconditionally, so it would be very difficult to
-! * actually hit this case.
-! */
-! termcapinit(old_term);
- settmode(TMODE_RAW); /* restart RAW mode */
- #ifdef FEAT_TITLE
- set_title_defaults(); /* set 'title' and 'icon' again */
-***************
-*** 108,113 ****
---- 126,166 ----
-
- vim_free(old_term);
-
-+ #ifdef FEAT_AUTOCMD
-+ /* If the GUI started successfully, trigger the GUIEnter event, otherwise
-+ * the GUIFailed event. */
-+ gui_mch_update();
-+ apply_autocmds(gui.in_use ? EVENT_GUIENTER : EVENT_GUIFAILED,
-+ NULL, NULL, FALSE, curbuf);
-+ #endif
-+ --recursive;
-+ }
-+
-+ /*
-+ * Set_termname() will call gui_init() to start the GUI.
-+ * Set the "starting" flag, to indicate that the GUI will start.
-+ *
-+ * We don't want to open the GUI shell until after we've read .gvimrc,
-+ * otherwise we don't know what font we will use, and hence we don't know
-+ * what size the shell should be. So if there are errors in the .gvimrc
-+ * file, they will have to go to the terminal: Set full_screen to FALSE.
-+ * full_screen will be set to TRUE again by a successful termcapinit().
-+ */
-+ static void
-+ gui_attempt_start()
-+ {
-+ static int recursive = 0;
-+
-+ ++recursive;
-+ gui.starting = TRUE;
-+
-+ #ifdef FEAT_GUI_GTK
-+ gui.event_time = GDK_CURRENT_TIME;
-+ #endif
-+
-+ termcapinit((char_u *)"builtin_gui");
-+ gui.starting = recursive - 1;
-+
- #if defined(FEAT_GUI_GTK) || defined(FEAT_GUI_X11)
- if (gui.in_use)
- {
-***************
-*** 123,218 ****
- display_errors();
- }
- #endif
-
-! #if defined(MAY_FORK) && !defined(__QNXNTO__)
-! /*
-! * Quit the current process and continue in the child.
-! * Makes "gvim file" disconnect from the shell it was started in.
-! * Don't do this when Vim was started with "-f" or the 'f' flag is present
-! * in 'guioptions'.
-! */
-! if (gui.in_use && dofork)
- {
-! int pipefd[2]; /* pipe between parent and child */
-! int pipe_error;
-! char dummy;
-! pid_t pid = -1;
-!
-! /* Setup a pipe between the child and the parent, so that the parent
-! * knows when the child has done the setsid() call and is allowed to
-! * exit. */
-! pipe_error = (pipe(pipefd) < 0);
-! pid = fork();
-! if (pid > 0) /* Parent */
- {
-! /* Give the child some time to do the setsid(), otherwise the
-! * exit() may kill the child too (when starting gvim from inside a
-! * gvim). */
-! if (pipe_error)
-! ui_delay(300L, TRUE);
-! else
- {
-! /* The read returns when the child closes the pipe (or when
-! * the child dies for some reason). */
-! close(pipefd[1]);
-! ignored = (int)read(pipefd[0], &dummy, (size_t)1);
-! close(pipefd[0]);
- }
-!
-! /* When swapping screens we may need to go to the next line, e.g.,
-! * after a hit-enter prompt and using ":gui". */
-! if (newline_on_exit)
-! mch_errmsg("\r\n");
-!
-! /*
-! * The parent must skip the normal exit() processing, the child
-! * will do it. For example, GTK messes up signals when exiting.
-! */
-! _exit(0);
- }
-
-! # if defined(HAVE_SETSID) || defined(HAVE_SETPGID)
- /*
-! * Change our process group. On some systems/shells a CTRL-C in the
-! * shell where Vim was started would otherwise kill gvim!
- */
-! if (pid == 0) /* child */
- # if defined(HAVE_SETSID)
-! (void)setsid();
- # else
-! (void)setpgid(0, 0);
- # endif
- # endif
-! if (!pipe_error)
-! {
-! close(pipefd[0]);
-! close(pipefd[1]);
-! }
-
- # if defined(FEAT_GUI_GNOME) && defined(FEAT_SESSION)
-! /* Tell the session manager our new PID */
-! gui_mch_forked();
- # endif
- }
-- #else
-- # if defined(__QNXNTO__)
-- if (gui.in_use && dofork)
-- procmgr_daemon(0, PROCMGR_DAEMON_KEEPUMASK | PROCMGR_DAEMON_NOCHDIR |
-- PROCMGR_DAEMON_NOCLOSE | PROCMGR_DAEMON_NODEVNULL);
-- # endif
-- #endif
-
-! #ifdef FEAT_AUTOCMD
-! /* If the GUI started successfully, trigger the GUIEnter event, otherwise
-! * the GUIFailed event. */
-! gui_mch_update();
-! apply_autocmds(gui.in_use ? EVENT_GUIENTER : EVENT_GUIFAILED,
-! NULL, NULL, FALSE, curbuf);
- #endif
-
-! --recursive;
- }
-
- /*
- * Call this when vim starts up, whether or not the GUI is started
- */
---- 176,346 ----
- display_errors();
- }
- #endif
-+ --recursive;
-+ }
-
-! #ifdef MAY_FORK
-!
-! /* for waitpid() */
-! # if defined(HAVE_SYS_WAIT_H) || defined(HAVE_UNION_WAIT)
-! # include <sys/wait.h>
-! # endif
-!
-! /*
-! * Create a new process, by forking. In the child, start the GUI, and in
-! * the parent, exit.
-! *
-! * If something goes wrong, this will return with gui.in_use still set
-! * to FALSE, in which case the caller should continue execution without
-! * the GUI.
-! *
-! * If the child fails to start the GUI, then the child will exit and the
-! * parent will return. If the child succeeds, then the parent will exit
-! * and the child will return.
-! */
-! static void
-! gui_do_fork()
-! {
-! #ifdef __QNXNTO__
-! procmgr_daemon(0, PROCMGR_DAEMON_KEEPUMASK | PROCMGR_DAEMON_NOCHDIR |
-! PROCMGR_DAEMON_NOCLOSE | PROCMGR_DAEMON_NODEVNULL);
-! gui_attempt_start();
-! return;
-! #else
-! int pipefd[2]; /* pipe between parent and child */
-! int pipe_error;
-! int status;
-! int exit_status;
-! pid_t pid = -1;
-! FILE *parent_file;
-!
-! /* Setup a pipe between the child and the parent, so that the parent
-! * knows when the child has done the setsid() call and is allowed to
-! * exit. */
-! pipe_error = (pipe(pipefd) < 0);
-! pid = fork();
-! if (pid < 0) /* Fork error */
- {
-! EMSG(_("E851: Failed to create a new process for the GUI"));
-! return;
-! }
-! else if (pid > 0) /* Parent */
-! {
-! /* Give the child some time to do the setsid(), otherwise the
-! * exit() may kill the child too (when starting gvim from inside a
-! * gvim). */
-! if (!pipe_error)
- {
-! /* The read returns when the child closes the pipe (or when
-! * the child dies for some reason). */
-! close(pipefd[1]);
-! status = gui_read_child_pipe(pipefd[0]);
-! if (status == GUI_CHILD_FAILED)
- {
-! /* The child failed to start the GUI, so the caller must
-! * continue. There may be more error information written
-! * to stderr by the child. */
-! # ifdef __NeXT__
-! wait4(pid, &exit_status, 0, (struct rusage *)0);
-! # else
-! waitpid(pid, &exit_status, 0);
-! # endif
-! EMSG(_("E852: The child process failed to start the GUI"));
-! return;
- }
-! else if (status == GUI_CHILD_IO_ERROR)
-! {
-! pipe_error = TRUE;
-! }
-! /* else GUI_CHILD_OK: parent exit */
- }
-
-! if (pipe_error)
-! ui_delay(300L, TRUE);
-!
-! /* When swapping screens we may need to go to the next line, e.g.,
-! * after a hit-enter prompt and using ":gui". */
-! if (newline_on_exit)
-! mch_errmsg("\r\n");
-!
- /*
-! * The parent must skip the normal exit() processing, the child
-! * will do it. For example, GTK messes up signals when exiting.
- */
-! _exit(0);
-! }
-! /* Child */
-!
-! # if defined(HAVE_SETSID) || defined(HAVE_SETPGID)
-! /*
-! * Change our process group. On some systems/shells a CTRL-C in the
-! * shell where Vim was started would otherwise kill gvim!
-! */
- # if defined(HAVE_SETSID)
-! (void)setsid();
- # else
-! (void)setpgid(0, 0);
- # endif
- # endif
-! if (!pipe_error)
-! close(pipefd[0]);
-
- # if defined(FEAT_GUI_GNOME) && defined(FEAT_SESSION)
-! /* Tell the session manager our new PID */
-! gui_mch_forked();
- # endif
-+
-+ if (!pipe_error)
-+ parent_file = fdopen(pipefd[1], "w");
-+ else
-+ parent_file = NULL;
-+
-+ /* Try to start the GUI */
-+ gui_attempt_start();
-+
-+ /* Notify the parent */
-+ if (parent_file != NULL)
-+ {
-+ fputs(gui.in_use ? "ok" : "fail", parent_file);
-+ fclose(parent_file);
- }
-
-! /* If we failed to start the GUI, exit now. */
-! if (!gui.in_use)
-! exit(1);
- #endif
-+ }
-
-! /*
-! * Read from a pipe assumed to be connected to the child process (this
-! * function is called from the parent).
-! * Return GUI_CHILD_OK if the child successfully started the GUI,
-! * GUY_CHILD_FAILED if the child failed, or GUI_CHILD_IO_ERROR if there was
-! * some other error.
-! *
-! * The file descriptor will be closed before the function returns.
-! */
-! static int
-! gui_read_child_pipe(int fd)
-! {
-! size_t bytes_read;
-! FILE *file;
-! char buffer[10];
-!
-! file = fdopen(fd, "r");
-! if (!file)
-! return GUI_CHILD_IO_ERROR;
-!
-! bytes_read = fread(buffer, sizeof(char), sizeof(buffer)-1, file);
-! buffer[bytes_read] = '\0';
-! fclose(file);
-! if (strcmp(buffer, "ok") == 0)
-! return GUI_CHILD_OK;
-! return GUI_CHILD_FAILED;
- }
-
-+ #endif /* MAY_FORK */
-+
- /*
- * Call this when vim starts up, whether or not the GUI is started
- */
-*** ../vim-7.3.314/src/version.c 2011-09-14 19:01:38.000000000 +0200
---- src/version.c 2011-09-14 19:02:45.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 315,
- /**/
-
---
-A)bort, R)etry, B)ang it with a large hammer
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.316
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.316 (after 7.3.306)
-Problem: Crash when 'colorcolumn' is set and closing buffer.
-Solution: Check for w_buffer to be NULL. (Yasuhiro Matsumoto)
-Files: src/option.c
-
-
-*** ../vim-7.3.315/src/option.c 2011-06-12 22:13:37.000000000 +0200
---- src/option.c 2011-09-21 13:26:31.000000000 +0200
-***************
-*** 7036,7041 ****
---- 7036,7044 ----
- int i;
- int j = 0;
-
-+ if (wp->w_buffer == NULL)
-+ return NULL; /* buffer was closed */
-+
- for (s = wp->w_p_cc; *s != NUL && count < 255;)
- {
- if (*s == '-' || *s == '+')
-*** ../vim-7.3.315/src/version.c 2011-09-14 19:04:35.000000000 +0200
---- src/version.c 2011-09-21 13:40:05.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 316,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-25. You believe nothing looks sexier than a man in boxer shorts illuminated
- only by a 17" inch svga monitor.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.317
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.317
-Problem: Calling debug.debug() in Lua may cause Vim to hang.
-Solution: Add a better debug method. (Rob Hoelz, Luis Carvalho)
-Files: src/if_lua.c
-
-
-*** ../vim-7.3.316/src/if_lua.c 2011-01-17 19:53:20.000000000 +0100
---- src/if_lua.c 2011-09-21 17:15:21.000000000 +0200
-***************
-*** 100,105 ****
---- 100,106 ----
- #define lua_setfield dll_lua_setfield
- #define lua_rawset dll_lua_rawset
- #define lua_rawseti dll_lua_rawseti
-+ #define lua_remove dll_lua_remove
- #define lua_setmetatable dll_lua_setmetatable
- #define lua_call dll_lua_call
- #define lua_pcall dll_lua_pcall
-***************
-*** 161,166 ****
---- 162,168 ----
- void (*dll_lua_setfield) (lua_State *L, int idx, const char *k);
- void (*dll_lua_rawset) (lua_State *L, int idx);
- void (*dll_lua_rawseti) (lua_State *L, int idx, int n);
-+ void (*dll_lua_remove) (lua_State *L, int idx);
- int (*dll_lua_setmetatable) (lua_State *L, int objindex);
- void (*dll_lua_call) (lua_State *L, int nargs, int nresults);
- int (*dll_lua_pcall) (lua_State *L, int nargs, int nresults, int errfunc);
-***************
-*** 229,234 ****
---- 231,237 ----
- {"lua_setfield", (luaV_function) &dll_lua_setfield},
- {"lua_rawset", (luaV_function) &dll_lua_rawset},
- {"lua_rawseti", (luaV_function) &dll_lua_rawseti},
-+ {"lua_remove", (luaV_function) &dll_lua_remove},
- {"lua_setmetatable", (luaV_function) &dll_lua_setmetatable},
- {"lua_call", (luaV_function) &dll_lua_call},
- {"lua_pcall", (luaV_function) &dll_lua_pcall},
-***************
-*** 924,929 ****
---- 927,957 ----
- }
-
- static int
-+ luaV_debug(lua_State *L)
-+ {
-+ lua_settop(L, 0);
-+ lua_getglobal(L, "vim");
-+ lua_getfield(L, -1, "eval");
-+ lua_remove(L, -2); /* vim.eval at position 1 */
-+ for (;;)
-+ {
-+ const char *input;
-+ size_t l;
-+ lua_pushvalue(L, 1); /* vim.eval */
-+ lua_pushliteral(L, "input('lua_debug> ')");
-+ lua_call(L, 1, 1); /* return string */
-+ input = lua_tolstring(L, -1, &l);
-+ if (l == 0 || strcmp(input, "cont") == 0)
-+ return 0;
-+ msg_putchar('\n'); /* avoid outputting on input line */
-+ if (luaL_loadbuffer(L, input, l, "=(debug command)")
-+ || lua_pcall(L, 0, 0, 0))
-+ luaV_emsg(L);
-+ lua_settop(L, 1); /* remove eventual returns, but keep vim.eval */
-+ }
-+ }
-+
-+ static int
- luaV_command(lua_State *L)
- {
- do_cmdline_cmd((char_u *) luaL_checkstring(L, 1));
-***************
-*** 1082,1087 ****
---- 1110,1120 ----
- /* print */
- lua_pushcfunction(L, luaV_print);
- lua_setglobal(L, "print");
-+ /* debug.debug */
-+ lua_getglobal(L, "debug");
-+ lua_pushcfunction(L, luaV_debug);
-+ lua_setfield(L, -2, "debug");
-+ lua_pop(L, 1);
- /* free */
- lua_pushlightuserdata(L, (void *) LUAVIM_FREE);
- lua_pushcfunction(L, luaV_free);
-*** ../vim-7.3.316/src/version.c 2011-09-21 13:40:13.000000000 +0200
---- src/version.c 2011-09-21 17:14:01.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 317,
- /**/
-
---
-Q: What is the difference betwee open-source and commercial software?
-A: If you have a problem with commercial software you can call a phone
- number and they will tell you it might be solved in a future version.
- For open-source software there isn't a phone number to call, but you
- get the solution within a 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.318
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.318
-Problem: "C" on the last line deletes that line if it's blank.
-Solution: Only delete the last line for a delete operation. (James Vega)
-Files: src/ops.c
-
-
-*** ../vim-7.3.317/src/ops.c 2011-08-10 12:10:55.000000000 +0200
---- src/ops.c 2011-09-21 17:32:36.000000000 +0200
-***************
-*** 1922,1928 ****
- curwin->w_cursor.coladd = 0;
- }
- #endif
-! if (oap->inclusive && oap->end.lnum == curbuf->b_ml.ml_line_count
- && n > (int)STRLEN(ml_get(oap->end.lnum)))
- {
- /* Special case: gH<Del> deletes the last line. */
---- 1922,1930 ----
- curwin->w_cursor.coladd = 0;
- }
- #endif
-! if (oap->op_type == OP_DELETE
-! && oap->inclusive
-! && oap->end.lnum == curbuf->b_ml.ml_line_count
- && n > (int)STRLEN(ml_get(oap->end.lnum)))
- {
- /* Special case: gH<Del> deletes the last line. */
-***************
-*** 3331,3338 ****
- if (regname == '=')
- {
- /* For the = register we need to split the string at NL
-! * characters. */
-! /* Loop twice: count the number of lines and save them. */
- for (;;)
- {
- y_size = 0;
---- 3333,3340 ----
- if (regname == '=')
- {
- /* For the = register we need to split the string at NL
-! * characters.
-! * Loop twice: count the number of lines and save them. */
- for (;;)
- {
- y_size = 0;
-***************
-*** 3348,3354 ****
- if (y_array != NULL)
- *ptr = NUL;
- ++ptr;
-! /* A trailing '\n' makes the string linewise */
- if (*ptr == NUL)
- {
- y_type = MLINE;
---- 3350,3356 ----
- if (y_array != NULL)
- *ptr = NUL;
- ++ptr;
-! /* A trailing '\n' makes the register linewise. */
- if (*ptr == NUL)
- {
- y_type = MLINE;
-*** ../vim-7.3.317/src/version.c 2011-09-21 17:15:34.000000000 +0200
---- src/version.c 2011-09-21 17:31:48.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 318,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-26. You check your mail. It says "no new messages." So you check it again.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.319
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.319 (after 7.3.311)
-Problem: Redobuff doesn't always include changes of the completion leader.
-Solution: Insert backspaces as needed. (idea by Taro Muraoka)
-Files: src/edit.c
-
-
-*** ../vim-7.3.318/src/edit.c 2011-09-14 16:52:02.000000000 +0200
---- src/edit.c 2011-09-21 17:59:10.000000000 +0200
-***************
-*** 163,168 ****
---- 163,169 ----
- static void ins_compl_set_original_text __ARGS((char_u *str));
- static void ins_compl_addfrommatch __ARGS((void));
- static int ins_compl_prep __ARGS((int c));
-+ static void ins_compl_fixRedoBufForLeader __ARGS((char_u *ptr_arg));
- static buf_T *ins_compl_next_buf __ARGS((buf_T *buf, int flag));
- #if defined(FEAT_COMPL_FUNC) || defined(FEAT_EVAL)
- static void ins_compl_add_list __ARGS((list_T *list));
-***************
-*** 3713,3721 ****
- * memory that was used, and make sure we can redo the insert. */
- if (compl_curr_match != NULL || compl_leader != NULL || c == Ctrl_E)
- {
-- char_u *p;
-- int temp = 0;
--
- /*
- * If any of the original typed text has been changed, eg when
- * ignorecase is set, we must add back-spaces to the redo
---- 3714,3719 ----
-***************
-*** 3726,3750 ****
- */
- if (compl_curr_match != NULL && compl_used_match && c != Ctrl_E)
- ptr = compl_curr_match->cp_str;
-- else if (compl_leader != NULL)
-- ptr = compl_leader;
- else
-! ptr = compl_orig_text;
-! if (compl_orig_text != NULL)
-! {
-! p = compl_orig_text;
-! for (temp = 0; p[temp] != NUL && p[temp] == ptr[temp];
-! ++temp)
-! ;
-! #ifdef FEAT_MBYTE
-! if (temp > 0)
-! temp -= (*mb_head_off)(compl_orig_text, p + temp);
-! #endif
-! for (p += temp; *p != NUL; mb_ptr_adv(p))
-! AppendCharToRedobuff(K_BS);
-! }
-! if (ptr != NULL)
-! AppendToRedobuffLit(ptr + temp, -1);
- }
-
- #ifdef FEAT_CINDENT
---- 3724,3732 ----
- */
- if (compl_curr_match != NULL && compl_used_match && c != Ctrl_E)
- ptr = compl_curr_match->cp_str;
- else
-! ptr = NULL;
-! ins_compl_fixRedoBufForLeader(ptr);
- }
-
- #ifdef FEAT_CINDENT
-***************
-*** 3834,3839 ****
---- 3816,3859 ----
- }
-
- /*
-+ * Fix the redo buffer for the completion leader replacing some of the typed
-+ * text. This inserts backspaces and appends the changed text.
-+ * "ptr" is the known leader text or NUL.
-+ */
-+ static void
-+ ins_compl_fixRedoBufForLeader(ptr_arg)
-+ char_u *ptr_arg;
-+ {
-+ int len;
-+ char_u *p;
-+ char_u *ptr = ptr_arg;
-+
-+ if (ptr == NULL)
-+ {
-+ if (compl_leader != NULL)
-+ ptr = compl_leader;
-+ else
-+ return; /* nothing to do */
-+ }
-+ if (compl_orig_text != NULL)
-+ {
-+ p = compl_orig_text;
-+ for (len = 0; p[len] != NUL && p[len] == ptr[len]; ++len)
-+ ;
-+ #ifdef FEAT_MBYTE
-+ if (len > 0)
-+ len -= (*mb_head_off)(p, p + len);
-+ #endif
-+ for (p += len; *p != NUL; mb_ptr_adv(p))
-+ AppendCharToRedobuff(K_BS);
-+ }
-+ else
-+ len = 0;
-+ if (ptr != NULL)
-+ AppendToRedobuffLit(ptr + len, -1);
-+ }
-+
-+ /*
- * Loops through the list of windows, loaded-buffers or non-loaded-buffers
- * (depending on flag) starting from buf and looking for a non-scanned
- * buffer (other than curbuf). curbuf is special, if it is called with
-***************
-*** 5241,5246 ****
---- 5261,5270 ----
- else
- edit_submode = (char_u *)_(CTRL_X_MSG(ctrl_x_mode));
-
-+ /* If any of the original typed text has been changed we need to fix
-+ * the redo buffer. */
-+ ins_compl_fixRedoBufForLeader(NULL);
-+
- /* Always add completion for the original text. */
- vim_free(compl_orig_text);
- compl_orig_text = vim_strnsave(line + compl_col, compl_length);
-*** ../vim-7.3.318/src/version.c 2011-09-21 17:33:49.000000000 +0200
---- src/version.c 2011-09-21 18:21:07.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 319,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-27. You refer to your age as 3.x.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.320
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.320
-Problem: When a 0xa0 character is in a sourced file the error message for
- unrecognized command does not show the problem.
-Solution: Display 0xa0 as <a0>.
-Files: src/ex_docmd.c
-
-
-*** ../vim-7.3.319/src/ex_docmd.c 2011-07-20 16:36:35.000000000 +0200
---- src/ex_docmd.c 2011-09-21 19:02:15.000000000 +0200
-***************
-*** 61,66 ****
---- 61,67 ----
- static char_u *do_one_cmd __ARGS((char_u **, int, char_u *(*fgetline)(int, void *, int), void *cookie));
- static int if_level = 0; /* depth in :if */
- #endif
-+ static void append_command __ARGS((char_u *cmd));
- static char_u *find_command __ARGS((exarg_T *eap, int *full));
-
- static void ex_abbreviate __ARGS((exarg_T *eap));
-***************
-*** 2136,2145 ****
- {
- STRCPY(IObuff, _("E492: Not an editor command"));
- if (!sourcing)
-! {
-! STRCAT(IObuff, ": ");
-! STRNCAT(IObuff, *cmdlinep, 40);
-! }
- errormsg = IObuff;
- }
- goto doend;
---- 2137,2143 ----
- {
- STRCPY(IObuff, _("E492: Not an editor command"));
- if (!sourcing)
-! append_command(*cmdlinep);
- errormsg = IObuff;
- }
- goto doend;
-***************
-*** 2708,2715 ****
- STRCPY(IObuff, errormsg);
- errormsg = IObuff;
- }
-! STRCAT(errormsg, ": ");
-! STRNCAT(errormsg, *cmdlinep, IOSIZE - STRLEN(IObuff) - 1);
- }
- emsg(errormsg);
- }
---- 2706,2712 ----
- STRCPY(IObuff, errormsg);
- errormsg = IObuff;
- }
-! append_command(*cmdlinep);
- }
- emsg(errormsg);
- }
-***************
-*** 2797,2802 ****
---- 2794,2835 ----
- }
-
- /*
-+ * Append "cmd" to the error message in IObuff.
-+ * Takes care of limiting the length and handling 0xa0, which would be
-+ * invisible otherwise.
-+ */
-+ static void
-+ append_command(cmd)
-+ char_u *cmd;
-+ {
-+ char_u *s = cmd;
-+ char_u *d;
-+
-+ STRCAT(IObuff, ": ");
-+ d = IObuff + STRLEN(IObuff);
-+ while (*s != NUL && d - IObuff < IOSIZE - 7)
-+ {
-+ if (
-+ #ifdef FEAT_MBYTE
-+ enc_utf8 ? (s[0] == 0xc2 && s[1] == 0xa0) :
-+ #endif
-+ *s == 0xa0)
-+ {
-+ s +=
-+ #ifdef FEAT_MBYTE
-+ enc_utf8 ? 2 :
-+ #endif
-+ 1;
-+ STRCPY(d, "<a0>");
-+ d += 4;
-+ }
-+ else
-+ MB_COPY_CHAR(s, d);
-+ }
-+ *d = NUL;
-+ }
-+
-+ /*
- * Find an Ex command by its name, either built-in or user.
- * Start of the name can be found at eap->cmd.
- * Returns pointer to char after the command name.
-*** ../vim-7.3.319/src/version.c 2011-09-21 18:23:02.000000000 +0200
---- src/version.c 2011-09-21 19:04:35.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 320,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-28. You have comandeered your teenager's phone line for the net and even his
- friends know not to call on his line anymore.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.321
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.321
-Problem: Code not following Vim style.
-Solution: Fix the style. (Elias Diem)
-Files: src/os_qnx.c
-
-
-*** ../vim-7.3.320/src/os_qnx.c 2011-06-19 01:14:22.000000000 +0200
---- src/os_qnx.c 2011-09-21 19:48:08.000000000 +0200
-***************
-*** 24,33 ****
- #if defined(FEAT_GUI_PHOTON)
- PhChannelParms_t parms;
-
-! memset( &parms, 0, sizeof( parms ) );
- parms.flags = Ph_DYNAMIC_BUFFER;
-
-! is_photon_available = (PhAttach( NULL, &parms ) != NULL) ? TRUE : FALSE;
- #endif
- }
-
---- 24,33 ----
- #if defined(FEAT_GUI_PHOTON)
- PhChannelParms_t parms;
-
-! memset(&parms, 0, sizeof(parms));
- parms.flags = Ph_DYNAMIC_BUFFER;
-
-! is_photon_available = (PhAttach(NULL, &parms) != NULL) ? TRUE : FALSE;
- #endif
- }
-
-***************
-*** 39,46 ****
- /* Turn on the clipboard for a console vim when photon is running */
- void qnx_clip_init()
- {
-! if( is_photon_available == TRUE && !gui.in_use)
-! clip_init( TRUE );
- }
-
- /*****************************************************************************/
---- 39,46 ----
- /* Turn on the clipboard for a console vim when photon is running */
- void qnx_clip_init()
- {
-! if (is_photon_available == TRUE && !gui.in_use)
-! clip_init(TRUE);
- }
-
- /*****************************************************************************/
-***************
-*** 48,79 ****
-
- /* No support for owning the clipboard */
- int
-! clip_mch_own_selection( VimClipboard *cbd )
- {
- return FALSE;
- }
-
- void
-! clip_mch_lose_selection( VimClipboard *cbd )
- {
- }
-
- void
-! clip_mch_request_selection( VimClipboard *cbd )
- {
- int type = MLINE, clip_length = 0, is_type_set = FALSE;
- void *cbdata;
- PhClipHeader *clip_header;
- char_u *clip_text = NULL;
-
-! cbdata = PhClipboardPasteStart( PhInputGroup( NULL ));
-! if( cbdata != NULL )
- {
- /* Look for the vim specific clip first */
-! clip_header = PhClipboardPasteType( cbdata, CLIP_TYPE_VIM );
-! if( clip_header != NULL && clip_header->data != NULL )
- {
-! switch( *(char *) clip_header->data )
- {
- default: /* fallthrough to line type */
- case 'L': type = MLINE; break;
---- 48,79 ----
-
- /* No support for owning the clipboard */
- int
-! clip_mch_own_selection(VimClipboard *cbd)
- {
- return FALSE;
- }
-
- void
-! clip_mch_lose_selection(VimClipboard *cbd)
- {
- }
-
- void
-! clip_mch_request_selection(VimClipboard *cbd)
- {
- int type = MLINE, clip_length = 0, is_type_set = FALSE;
- void *cbdata;
- PhClipHeader *clip_header;
- char_u *clip_text = NULL;
-
-! cbdata = PhClipboardPasteStart(PhInputGroup(NULL));
-! if (cbdata != NULL)
- {
- /* Look for the vim specific clip first */
-! clip_header = PhClipboardPasteType(cbdata, CLIP_TYPE_VIM);
-! if (clip_header != NULL && clip_header->data != NULL)
- {
-! switch(*(char *) clip_header->data)
- {
- default: /* fallthrough to line type */
- case 'L': type = MLINE; break;
-***************
-*** 86,112 ****
- }
-
- /* Try for just normal text */
-! clip_header = PhClipboardPasteType( cbdata, CLIP_TYPE_TEXT );
-! if( clip_header != NULL )
- {
- clip_text = clip_header->data;
- clip_length = clip_header->length - 1;
-
-! if( clip_text != NULL && is_type_set == FALSE )
- type = MAUTO;
- }
-
-! if( (clip_text != NULL) && (clip_length > 0) )
- {
-! clip_yank_selection( type, clip_text, clip_length, cbd );
- }
-
-! PhClipboardPasteFinish( cbdata );
- }
- }
-
- void
-! clip_mch_set_selection( VimClipboard *cbd )
- {
- int type;
- long_u len;
---- 86,112 ----
- }
-
- /* Try for just normal text */
-! clip_header = PhClipboardPasteType(cbdata, CLIP_TYPE_TEXT);
-! if (clip_header != NULL)
- {
- clip_text = clip_header->data;
- clip_length = clip_header->length - 1;
-
-! if (clip_text != NULL && is_type_set == FALSE)
- type = MAUTO;
- }
-
-! if ((clip_text != NULL) && (clip_length > 0))
- {
-! clip_yank_selection(type, clip_text, clip_length, cbd);
- }
-
-! PhClipboardPasteFinish(cbdata);
- }
- }
-
- void
-! clip_mch_set_selection(VimClipboard *cbd)
- {
- int type;
- long_u len;
-***************
-*** 114,144 ****
- PhClipHeader clip_header[2];
-
- /* Prevent recursion from clip_get_selection() */
-! if( cbd->owned == TRUE )
- return;
-
- cbd->owned = TRUE;
-! clip_get_selection( cbd );
- cbd->owned = FALSE;
-
-! type = clip_convert_selection( &str, &len, cbd );
-! if( type >= 0 )
- {
-! text_clip = lalloc( len + 1, TRUE ); /* Normal text */
-
-! if( text_clip && vim_clip )
- {
-! memset( clip_header, 0, sizeof( clip_header ) );
-
-! STRNCPY( clip_header[0].type, CLIP_TYPE_VIM, 8 );
-! clip_header[0].length = sizeof( vim_clip );
- clip_header[0].data = vim_clip;
-
-! STRNCPY( clip_header[1].type, CLIP_TYPE_TEXT, 8 );
- clip_header[1].length = len + 1;
- clip_header[1].data = text_clip;
-
-! switch( type )
- {
- default: /* fallthrough to MLINE */
- case MLINE: *vim_clip = 'L'; break;
---- 114,144 ----
- PhClipHeader clip_header[2];
-
- /* Prevent recursion from clip_get_selection() */
-! if (cbd->owned == TRUE)
- return;
-
- cbd->owned = TRUE;
-! clip_get_selection(cbd);
- cbd->owned = FALSE;
-
-! type = clip_convert_selection(&str, &len, cbd);
-! if (type >= 0)
- {
-! text_clip = lalloc(len + 1, TRUE); /* Normal text */
-
-! if (text_clip && vim_clip)
- {
-! memset(clip_header, 0, sizeof(clip_header));
-
-! STRNCPY(clip_header[0].type, CLIP_TYPE_VIM, 8);
-! clip_header[0].length = sizeof(vim_clip);
- clip_header[0].data = vim_clip;
-
-! STRNCPY(clip_header[1].type, CLIP_TYPE_TEXT, 8);
- clip_header[1].length = len + 1;
- clip_header[1].data = text_clip;
-
-! switch(type)
- {
- default: /* fallthrough to MLINE */
- case MLINE: *vim_clip = 'L'; break;
-***************
-*** 148,161 ****
- #endif
- }
-
-! vim_strncpy( text_clip, str, len );
-
- vim_clip[ 1 ] = NUL;
-
-! PhClipboardCopy( PhInputGroup( NULL ), 2, clip_header);
- }
-! vim_free( text_clip );
- }
-! vim_free( str );
- }
- #endif
---- 148,161 ----
- #endif
- }
-
-! vim_strncpy(text_clip, str, len);
-
- vim_clip[ 1 ] = NUL;
-
-! PhClipboardCopy(PhInputGroup(NULL), 2, clip_header);
- }
-! vim_free(text_clip);
- }
-! vim_free(str);
- }
- #endif
-*** ../vim-7.3.320/src/version.c 2011-09-21 19:10:42.000000000 +0200
---- src/version.c 2011-09-21 19:47:50.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 321,
- /**/
-
---
-Bypasses are devices that allow some people to dash from point A to
-point B very fast while other people dash from point B to point A very
-fast. People living at point C, being a point directly in between, are
-often given to wonder what's so great about point A that so many people
-from point B are so keen to get there and what's so great about point B
-that so many people from point A are so keen to get there. They often
-wish that people would just once and for all work out where the hell
-they wanted to be.
- -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.322
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.322
-Problem: #ifdef for PDP_RETVAL doesn't work, INT_PTR can be a typedef.
-Solution: Check the MSC version and 64 bit flags. (Sergiu Dotenco)
-Files: src/os_mswin.c
-
-
-*** ../vim-7.3.321/src/os_mswin.c 2011-08-10 17:07:56.000000000 +0200
---- src/os_mswin.c 2011-09-21 20:09:05.000000000 +0200
-***************
-*** 1781,1787 ****
- }
-
- /* Attempt to make this work for old and new compilers */
-! #if !defined(_MSC_VER) || (_MSC_VER < 1300) || !defined(INT_PTR)
- # define PDP_RETVAL BOOL
- #else
- # define PDP_RETVAL INT_PTR
---- 1781,1787 ----
- }
-
- /* Attempt to make this work for old and new compilers */
-! #if !defined(_WIN64) && (!defined(_MSC_VER) || _MSC_VER < 1300)
- # define PDP_RETVAL BOOL
- #else
- # define PDP_RETVAL INT_PTR
-*** ../vim-7.3.321/src/version.c 2011-09-21 19:50:00.000000000 +0200
---- src/version.c 2011-09-21 20:08:29.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 322,
- /**/
-
---
-Don't Panic!
- -- The Hitchhiker's Guide to the Galaxy
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.323
-Fcc: 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.323
-Problem: The default 'errorformat' does not ignore some "included from"
- lines.
-Solution: Add a few more patterns. (Ben Boeckel)
-Files: src/option.h
-
-
-*** ../vim-7.3.322/src/option.h 2011-07-27 13:59:12.000000000 +0200
---- src/option.h 2011-09-30 14:32:13.000000000 +0200
-***************
-*** 33,39 ****
- # ifdef EBCDIC
- #define DFLT_EFM "%*[^ ] %*[^ ] %f:%l%*[ ]%m,%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory `%f',%X%*\\a[%*\\d]: Leaving directory `%f',%DMaking %*\\a in %f,%f|%l| %m"
- # else
-! #define DFLT_EFM "%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%-G%f:%l: (Each undeclared identifier is reported only once,%-G%f:%l: for each function it appears in.),%-GIn file included from %f:%l:%c:,%-GIn file included from %f:%l:%c,%-GIn file included from %f:%l,%-Gfrom %f:%l:%c,%-Gfrom %f:%l,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory `%f',%X%*\\a[%*\\d]: Leaving directory `%f',%D%*\\a: Entering directory `%f',%X%*\\a: Leaving directory `%f',%DMaking %*\\a in %f,%f|%l| %m"
- # endif
- # endif
- # endif
---- 33,39 ----
- # ifdef EBCDIC
- #define DFLT_EFM "%*[^ ] %*[^ ] %f:%l%*[ ]%m,%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory `%f',%X%*\\a[%*\\d]: Leaving directory `%f',%DMaking %*\\a in %f,%f|%l| %m"
- # else
-! #define DFLT_EFM "%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%-G%f:%l: (Each undeclared identifier is reported only once,%-G%f:%l: for each function it appears in.),%-GIn file included from %f:%l:%c:,%-GIn file included from %f:%l:%c\\,,%-GIn file included from %f:%l:%c,%-GIn file included from %f:%l,%-G%*[ ]from %f:%l:%c,%-G%*[ ]from %f:%l:,%-G%*[ ]from %f:%l\\,,%-G%*[ ]from %f:%l,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory `%f',%X%*\\a[%*\\d]: Leaving directory `%f',%D%*\\a: Entering directory `%f',%X%*\\a: Leaving directory `%f',%DMaking %*\\a in %f,%f|%l| %m"
- # endif
- # endif
- # endif
-*** ../vim-7.3.322/src/version.c 2011-09-21 20:09:38.000000000 +0200
---- src/version.c 2011-09-30 14:38:59.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 323,
- /**/
-
---
-Due knot trussed yore spell chequer two fined awl miss steaks.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.324
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.324 (after 7.3.237)
-Problem: Completion for ":compiler" shows color scheme names.
-Solution: Fix the directory name. (James Vega)
-Files: src/ex_getln.c
-
-
-*** ../vim-7.3.323/src/ex_getln.c 2011-08-17 16:25:43.000000000 +0200
---- src/ex_getln.c 2011-09-30 16:22:14.000000000 +0200
-***************
-*** 4546,4552 ****
- }
- if (xp->xp_context == EXPAND_COMPILER)
- {
-! char *directories[] = {"colors", NULL};
- return ExpandRTDir(pat, num_file, file, directories);
- }
- if (xp->xp_context == EXPAND_OWNSYNTAX)
---- 4546,4552 ----
- }
- if (xp->xp_context == EXPAND_COMPILER)
- {
-! char *directories[] = {"compiler", NULL};
- return ExpandRTDir(pat, num_file, file, directories);
- }
- if (xp->xp_context == EXPAND_OWNSYNTAX)
-*** ../vim-7.3.323/src/version.c 2011-09-30 14:44:49.000000000 +0200
---- src/version.c 2011-09-30 16:23:15.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 324,
- /**/
-
-
---
-hundred-and-one symptoms of being an internet addict:
-31. You code your homework in HTML and give your instructor the URL.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.325
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.325
-Problem: A duplicated function argument gives an internal error.
-Solution: Give a proper error message. (based on patch by Tyru)
-Files: src/eval.c
-
-
-*** ../vim-7.3.324/src/eval.c 2011-09-14 16:52:02.000000000 +0200
---- src/eval.c 2011-09-30 16:32:20.000000000 +0200
-***************
-*** 20461,20466 ****
---- 20461,20467 ----
- exarg_T *eap;
- {
- char_u *theline;
-+ int i;
- int j;
- int c;
- int saved_did_emsg;
-***************
-*** 20707,20712 ****
---- 20708,20722 ----
- arg = vim_strsave(arg);
- if (arg == NULL)
- goto erret;
-+
-+ /* Check for duplicate argument name. */
-+ for (i = 0; i < newargs.ga_len; ++i)
-+ if (STRCMP(((char_u **)(newargs.ga_data))[i], arg) == 0)
-+ {
-+ EMSG2(_("E853: Duplicate argument name: %s"), arg);
-+ goto erret;
-+ }
-+
- ((char_u **)(newargs.ga_data))[newargs.ga_len] = arg;
- *p = c;
- newargs.ga_len++;
-*** ../vim-7.3.324/src/version.c 2011-09-30 16:23:21.000000000 +0200
---- src/version.c 2011-09-30 16:39:16.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 325,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-32. You don't know what sex three of your closest friends are, because they
- have neutral nicknames and you never bothered to ask.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.326
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.326
-Problem: MingW 4.6 no longer supports the -mno-cygwin option.
-Solution: Split the Cygwin and MingW makefiles. (Matsushita Shougo)
-Files: src/GvimExt/Make_cyg.mak, src/GvimExt/Make_ming.mak,
- src/Make_cyg.mak, src/Make_ming.mak, src/xxd/Make_ming.mak,
- Filelist
-
-
-*** ../vim-7.3.325/src/GvimExt/Make_cyg.mak 2011-09-30 16:55:18.000000000 +0200
---- src/GvimExt/Make_cyg.mak 2011-09-30 16:45:49.000000000 +0200
-***************
-*** 0 ****
---- 1,77 ----
-+ # Project: gvimext
-+ # Generates gvimext.dll with gcc.
-+ # To be used with Cygwin.
-+ #
-+ # Originally, the DLL base address was fixed: -Wl,--image-base=0x1C000000
-+ # Now it is allocated dymanically by the linker by evaluating all DLLs
-+ # already loaded in memory. The binary image contains as well information
-+ # for automatic pseudo-rebasing, if needed by the system. ALV 2004-02-29
-+
-+ # If cross-compiling set this to yes, else set it to no
-+ CROSS = no
-+ #CROSS = yes
-+ # For the old MinGW 2.95 (the one you get e.g. with debian woody)
-+ # set the following variable to yes and check if the executables are
-+ # really named that way.
-+ # If you have a newer MinGW or you are using cygwin set it to no and
-+ # 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)
-+ CXXFLAGS := -O2 -mno-cygwin -fvtable-thunks
-+ else
-+ CXXFLAGS := -O2 -mno-cygwin
-+ endif
-+ else
-+ CXXFLAGS := -O2 -mno-cygwin
-+ ifneq (sh.exe, $(SHELL))
-+ DEL = rm
-+ else
-+ DEL = del
-+ 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
-+ OBJ := gvimext.o
-+
-+ DLL := gvimext.dll
-+
-+ .PHONY: all all-before all-after clean clean-custom
-+
-+ 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 \
-+ $^ \
-+ -Wl,--no-whole-archive \
-+ $(LIBS)
-+
-+ gvimext.o: gvimext.cpp
-+ $(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.325/src/GvimExt/Make_ming.mak 2010-12-30 14:50:46.000000000 +0100
---- src/GvimExt/Make_ming.mak 2011-09-30 16:47:09.000000000 +0200
-***************
-*** 1,6 ****
- # Project: gvimext
- # Generates gvimext.dll with gcc.
-! # Can be used for Cygwin and MingW (MingW ignores -mno-cygwin)
- #
- # Originally, the DLL base address was fixed: -Wl,--image-base=0x1C000000
- # Now it is allocated dymanically by the linker by evaluating all DLLs
---- 1,6 ----
- # Project: gvimext
- # Generates gvimext.dll with gcc.
-! # To be used with MingW.
- #
- # Originally, the DLL base address was fixed: -Wl,--image-base=0x1C000000
- # Now it is allocated dymanically by the linker by evaluating all DLLs
-***************
-*** 31,42 ****
- ifeq ($(CROSS),yes)
- DEL = rm
- ifeq ($(MINGWOLD),yes)
-! CXXFLAGS := -O2 -mno-cygwin -fvtable-thunks
- else
-! CXXFLAGS := -O2 -mno-cygwin
- endif
- else
-! CXXFLAGS := -O2 -mno-cygwin
- ifneq (sh.exe, $(SHELL))
- DEL = rm
- else
---- 31,42 ----
- ifeq ($(CROSS),yes)
- DEL = rm
- ifeq ($(MINGWOLD),yes)
-! CXXFLAGS := -O2 -fvtable-thunks
- else
-! CXXFLAGS := -O2
- endif
- else
-! CXXFLAGS := -O2
- ifneq (sh.exe, $(SHELL))
- DEL = rm
- else
-***************
-*** 75,78 ****
-
- clean: clean-custom
- -$(DEL) $(OBJ) $(RES) $(DLL)
--
---- 75,77 ----
-*** ../vim-7.3.325/src/Make_cyg.mak 2010-11-03 21:59:23.000000000 +0100
---- src/Make_cyg.mak 2011-09-30 16:48:11.000000000 +0200
-***************
-*** 536,542 ****
- $(MAKE) -C xxd -f Make_cyg.mak CC=$(CC) USEDLL=$(USEDLL)
-
- GvimExt/gvimext.dll: GvimExt/gvimext.cpp GvimExt/gvimext.rc GvimExt/gvimext.h
-! $(MAKE) -C GvimExt -f Make_ming.mak CROSS_COMPILE=$(CROSS_COMPILE)
-
- vimrun.exe: vimrun.c
- $(CC) $(CFLAGS) -o vimrun.exe vimrun.c $(LIBS)
---- 536,542 ----
- $(MAKE) -C xxd -f Make_cyg.mak CC=$(CC) USEDLL=$(USEDLL)
-
- GvimExt/gvimext.dll: GvimExt/gvimext.cpp GvimExt/gvimext.rc GvimExt/gvimext.h
-! $(MAKE) -C GvimExt -f Make_cyg.mak CROSS_COMPILE=$(CROSS_COMPILE)
-
- vimrun.exe: vimrun.c
- $(CC) $(CFLAGS) -o vimrun.exe vimrun.c $(LIBS)
-***************
-*** 565,571 ****
- endif
- -$(DEL) pathdef.c
- $(MAKE) -C xxd -f Make_cyg.mak clean
-! $(MAKE) -C GvimExt -f Make_ming.mak clean
-
- distclean: clean
- -$(DEL) obj$(DIRSLASH)*.o
---- 565,571 ----
- endif
- -$(DEL) pathdef.c
- $(MAKE) -C xxd -f Make_cyg.mak clean
-! $(MAKE) -C GvimExt -f Make_cyg.mak clean
-
- distclean: clean
- -$(DEL) obj$(DIRSLASH)*.o
-*** ../vim-7.3.325/src/Make_ming.mak 2011-09-14 10:49:44.000000000 +0200
---- src/Make_ming.mak 2011-09-30 16:48:11.000000000 +0200
-***************
-*** 641,647 ****
- upx vim.exe
-
- xxd/xxd.exe: xxd/xxd.c
-! $(MAKE) -C xxd -f Make_cyg.mak CC=$(CC)
-
- GvimExt/gvimext.dll: GvimExt/gvimext.cpp GvimExt/gvimext.rc GvimExt/gvimext.h
- $(MAKE) -C GvimExt -f Make_ming.mak CROSS=$(CROSS) CROSS_COMPILE=$(CROSS_COMPILE)
---- 641,647 ----
- upx vim.exe
-
- xxd/xxd.exe: xxd/xxd.c
-! $(MAKE) -C xxd -f Make_ming.mak CC=$(CC)
-
- GvimExt/gvimext.dll: GvimExt/gvimext.cpp GvimExt/gvimext.rc GvimExt/gvimext.h
- $(MAKE) -C GvimExt -f Make_ming.mak CROSS=$(CROSS) CROSS_COMPILE=$(CROSS_COMPILE)
-***************
-*** 659,665 ****
- -$(DEL) mzscheme_base.c
- endif
- $(MAKE) -C GvimExt -f Make_ming.mak clean
-! $(MAKE) -C xxd -f Make_cyg.mak clean
-
- ###########################################################################
- INCL = vim.h feature.h os_win32.h os_dos.h ascii.h keymap.h term.h macros.h \
---- 659,665 ----
- -$(DEL) mzscheme_base.c
- endif
- $(MAKE) -C GvimExt -f Make_ming.mak clean
-! $(MAKE) -C xxd -f Make_ming.mak clean
-
- ###########################################################################
- INCL = vim.h feature.h os_win32.h os_dos.h ascii.h keymap.h term.h macros.h \
-*** ../vim-7.3.325/src/xxd/Make_ming.mak 2011-09-30 16:55:18.000000000 +0200
---- src/xxd/Make_ming.mak 2011-09-30 16:48:34.000000000 +0200
-***************
-*** 0 ****
---- 1,28 ----
-+ # The most simplistic Makefile, for MinGW gcc on MS-DOS
-+
-+ ifndef USEDLL
-+ USEDLL = no
-+ endif
-+
-+ ifeq (yes, $(USEDLL))
-+ DEFINES =
-+ LIBS = -lc
-+ else
-+ DEFINES =
-+ LIBS =
-+ endif
-+
-+ CC = gcc
-+ CFLAGS = -O2 -Wall -DWIN32 $(DEFINES)
-+
-+ ifneq (sh.exe, $(SHELL))
-+ DEL = rm
-+ else
-+ DEL = del
-+ endif
-+
-+ xxd.exe: xxd.c
-+ $(CC) $(CFLAGS) -s -o xxd.exe xxd.c $(LIBS)
-+
-+ clean:
-+ -$(DEL) xxd.exe
-*** ../vim-7.3.325/Filelist 2011-06-12 20:36:00.000000000 +0200
---- Filelist 2011-09-30 16:49:29.000000000 +0200
-***************
-*** 313,318 ****
---- 313,319 ----
- src/xxd/Make_bc5.mak \
- src/xxd/Make_cyg.mak \
- src/xxd/Make_djg.mak \
-+ src/xxd/Make_ming.mak \
- src/xxd/Make_mvc.mak \
- nsis/gvim.nsi \
- nsis/README.txt \
-*** ../vim-7.3.325/src/version.c 2011-09-30 16:39:41.000000000 +0200
---- src/version.c 2011-09-30 16:49:57.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 326,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-33. You name your children Eudora, Mozilla and Dotcom.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.327
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.327
-Problem: When jumping to a help tag a closed fold doesn't open.
-Solution: Save and restore KeyTyped. (Yasuhiro Matsumoto)
-Files: src/ex_cmds.c
-
-
-*** ../vim-7.3.326/src/ex_cmds.c 2011-09-14 14:43:21.000000000 +0200
---- src/ex_cmds.c 2011-09-30 17:24:03.000000000 +0200
-***************
-*** 5508,5513 ****
---- 5508,5516 ----
- int len;
- char_u *lang;
- #endif
-+ #ifdef FEAT_FOLDING
-+ int old_KeyTyped = KeyTyped;
-+ #endif
-
- if (eap != NULL)
- {
-***************
-*** 5671,5676 ****
---- 5674,5685 ----
- if (!p_im)
- restart_edit = 0; /* don't want insert mode in help file */
-
-+ #ifdef FEAT_FOLDING
-+ /* Restore KeyTyped, setting 'filetype=help' may reset it.
-+ * It is needed for do_tag top open folds under the cursor. */
-+ KeyTyped = old_KeyTyped;
-+ #endif
-+
- if (tag != NULL)
- do_tag(tag, DT_HELP, 1, FALSE, TRUE);
-
-*** ../vim-7.3.326/src/version.c 2011-09-30 16:56:00.000000000 +0200
---- src/version.c 2011-09-30 17:24:17.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 327,
- /**/
-
---
-Q. What happens to programmers when they die?
-A: MS-Windows programmers are reinstalled. C++ programmers become undefined,
- anyone who refers to them will die as well. Java programmers reincarnate
- after being garbage collected.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.328
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.328
-Problem: When command line wraps the cursor may be displayed wrong when
- there are multi-byte characters.
-Solution: Position the cursor before drawing the text. (Yasuhiro Matsumoto)
-Files: src/ex_getln.c
-
-
-*** ../vim-7.3.327/src/ex_getln.c 2011-09-30 16:23:21.000000000 +0200
---- src/ex_getln.c 2011-09-30 17:39:27.000000000 +0200
-***************
-*** 2870,2875 ****
---- 2870,2876 ----
- {
- msg_no_more = TRUE;
- i = cmdline_row;
-+ cursorcmd();
- draw_cmdline(ccline.cmdpos, ccline.cmdlen - ccline.cmdpos);
- /* Avoid clearing the rest of the line too often. */
- if (cmdline_row != i || ccline.overstrike)
-*** ../vim-7.3.327/src/version.c 2011-09-30 17:30:27.000000000 +0200
---- src/version.c 2011-09-30 17:45:28.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 328,
- /**/
-
---
-To define recursion, we must first define recursion.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.329
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.329
-Problem: When skipping over code from ":for" to ":endfor" get an error for
- calling a dict function. (Yasuhiro Matsumoto)
-Solution: Ignore errors when skipping over :call command.
-Files: src/ex_docmd.c, src/eval.c
-
-
-*** ../vim-7.3.328/src/ex_docmd.c 2011-09-21 19:10:42.000000000 +0200
---- src/ex_docmd.c 2011-09-30 17:59:51.000000000 +0200
-***************
-*** 371,381 ****
- # define ex_endif ex_ni
- # define ex_else ex_ni
- # define ex_while ex_ni
-- # define ex_for ex_ni
- # define ex_continue ex_ni
- # define ex_break ex_ni
- # define ex_endwhile ex_ni
-- # define ex_endfor ex_ni
- # define ex_throw ex_ni
- # define ex_try ex_ni
- # define ex_catch ex_ni
---- 371,379 ----
-*** ../vim-7.3.328/src/eval.c 2011-09-30 16:39:41.000000000 +0200
---- src/eval.c 2011-09-30 18:29:58.000000000 +0200
-***************
-*** 3377,3383 ****
- /* 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;
- }
-
---- 3377,3386 ----
- /* 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 */
-! ++emsg_skip;
-! if (eval0(eap->arg, &rettv, &eap->nextcmd, FALSE) != FAIL)
-! clear_tv(&rettv);
-! --emsg_skip;
- return;
- }
-
-*** ../vim-7.3.328/src/version.c 2011-09-30 17:46:14.000000000 +0200
---- src/version.c 2011-09-30 18:32:27.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 329,
- /**/
-
---
-Have you heard about the new Beowulf cluster? It's so fast, it executes
-an infinite loop in 6 seconds.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.330
-Fcc: 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.330
-Problem: When longjmp() is invoked if the X server gives an error the state
- is not properly restored.
-Solution: Reset vgetc_busy. (Yukihiro Nakadaira)
-Files: src/main.c
-
-
-*** ../vim-7.3.329/src/main.c 2011-05-10 16:41:13.000000000 +0200
---- src/main.c 2011-10-04 16:41:03.000000000 +0200
-***************
-*** 1009,1014 ****
---- 1009,1015 ----
- skip_redraw = FALSE;
- RedrawingDisabled = 0;
- no_wait_return = 0;
-+ vgetc_busy = 0;
- # ifdef FEAT_EVAL
- emsg_skip = 0;
- # endif
-*** ../vim-7.3.329/src/version.c 2011-09-30 18:35:49.000000000 +0200
---- src/version.c 2011-10-04 16:42:23.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 330,
- /**/
-
---
-Just remember...if the world didn't suck, we'd all fall off.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.331
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.331
-Problem: "vit" selects wrong text when a tag name starts with the same text
- as an outer tag name. (Ben Fritz)
-Solution: Add "\>" to the pattern to check for word boundary.
-Files: src/search.c
-
-
-*** ../vim-7.3.330/src/search.c 2011-07-15 13:21:24.000000000 +0200
---- src/search.c 2011-10-04 16:54:08.000000000 +0200
-***************
-*** 3927,3933 ****
- curwin->w_cursor = old_pos;
- goto theend;
- }
-! sprintf((char *)spat, "<%.*s\\%%(\\_[^>]\\{-}[^/]>\\|>\\)\\c", len, p);
- sprintf((char *)epat, "</%.*s>\\c", len, p);
-
- r = do_searchpair(spat, (char_u *)"", epat, FORWARD, (char_u *)"",
---- 3927,3933 ----
- curwin->w_cursor = old_pos;
- goto theend;
- }
-! sprintf((char *)spat, "<%.*s\\>\\%%(\\_[^>]\\{-}[^/]>\\|>\\)\\c", len, p);
- sprintf((char *)epat, "</%.*s>\\c", len, p);
-
- r = do_searchpair(spat, (char_u *)"", epat, FORWARD, (char_u *)"",
-*** ../vim-7.3.330/src/version.c 2011-10-04 16:43:49.000000000 +0200
---- src/version.c 2011-10-04 16:59:47.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 331,
- /**/
-
---
-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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.332
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.332 (after 7.3.202)
-Problem: Indent after "public:" is not increased in C++ code. (Lech Lorens)
-Solution: Check for namespace after the regular checks. (partly by Martin
- Gieseking)
-Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
-
-
-*** ../vim-7.3.331/src/misc1.c 2011-09-07 19:58:04.000000000 +0200
---- src/misc1.c 2011-10-04 17:59:52.000000000 +0200
-***************
-*** 6389,6394 ****
---- 6389,6395 ----
- int lookfor_cpp_namespace = FALSE;
- int cont_amount = 0; /* amount for continuation line */
- int original_line_islabel;
-+ int added_to_amount = 0;
-
- for (options = curbuf->b_p_cino; *options; )
- {
-***************
-*** 7216,7267 ****
- else
- amount += ind_continuation;
- }
-! else if (lookfor_cpp_namespace)
- {
-! if (curwin->w_cursor.lnum == ourscope)
-! continue;
-
-! if (curwin->w_cursor.lnum == 0
-! || curwin->w_cursor.lnum
- < ourscope - FIND_NAMESPACE_LIM)
-! break;
-
-! l = ml_get_curline();
-
-! /*
-! * If we're in a comment now, skip to the start of the
-! * comment.
-! */
-! trypos = find_start_comment(ind_maxcomment);
-! if (trypos != NULL)
-! {
-! curwin->w_cursor.lnum = trypos->lnum + 1;
-! curwin->w_cursor.col = 0;
-! continue;
-! }
-!
-! /*
-! * Skip preprocessor directives and blank lines.
-! */
-! if (cin_ispreproc_cont(&l, &curwin->w_cursor.lnum))
-! continue;
-
-! if (cin_is_cpp_namespace(l))
-! {
-! amount += ind_cpp_namespace;
-! break;
-! }
-
-! if (cin_nocode(l))
-! continue;
-
-! }
-! else if (lookfor != LOOKFOR_TERM
-! && lookfor != LOOKFOR_CPP_BASECLASS)
-! {
-! amount = scope_amount;
-! if (theline[0] == '{')
-! amount += ind_open_extra;
- }
- break;
- }
---- 7217,7275 ----
- else
- amount += ind_continuation;
- }
-! else
- {
-! if (lookfor != LOOKFOR_TERM
-! && lookfor != LOOKFOR_CPP_BASECLASS)
-! {
-! amount = scope_amount;
-! if (theline[0] == '{')
-! {
-! amount += ind_open_extra;
-! added_to_amount = ind_open_extra;
-! }
-! }
-
-! if (lookfor_cpp_namespace)
-! {
-! /*
-! * Looking for C++ namespace, need to look further
-! * back.
-! */
-! if (curwin->w_cursor.lnum == ourscope)
-! continue;
-!
-! if (curwin->w_cursor.lnum == 0
-! || curwin->w_cursor.lnum
- < ourscope - FIND_NAMESPACE_LIM)
-! break;
-
-! l = ml_get_curline();
-
-! /* If we're in a comment now, skip to the start of
-! * the comment. */
-! trypos = find_start_comment(ind_maxcomment);
-! if (trypos != NULL)
-! {
-! curwin->w_cursor.lnum = trypos->lnum + 1;
-! curwin->w_cursor.col = 0;
-! continue;
-! }
-
-! /* Skip preprocessor directives and blank lines. */
-! if (cin_ispreproc_cont(&l, &curwin->w_cursor.lnum))
-! continue;
-
-! /* Finally the actual check for "namespace". */
-! if (cin_is_cpp_namespace(l))
-! {
-! amount += ind_cpp_namespace - added_to_amount;
-! break;
-! }
-
-! if (cin_nocode(l))
-! continue;
-! }
- }
- break;
- }
-*** ../vim-7.3.331/src/testdir/test3.in 2011-07-20 15:09:38.000000000 +0200
---- src/testdir/test3.in 2011-10-04 17:45:20.000000000 +0200
-***************
-*** 1309,1314 ****
---- 1309,1328 ----
- };
-
- STARTTEST
-+ :set cino=(0,gs,hs
-+ 2kdd]]=][
-+ ENDTEST
-+
-+ class Foo : public Bar
-+ {
-+ public:
-+ virtual void method1(void) = 0;
-+ virtual void method2(int arg1,
-+ int arg2,
-+ int arg3) = 0;
-+ };
-+
-+ STARTTEST
- :set cino=+20
- 2kdd]]=][
- ENDTEST
-*** ../vim-7.3.331/src/testdir/test3.ok 2011-07-20 15:09:38.000000000 +0200
---- src/testdir/test3.ok 2011-10-04 17:47:25.000000000 +0200
-***************
-*** 1190,1195 ****
---- 1190,1205 ----
- };
-
-
-+ class Foo : public Bar
-+ {
-+ public:
-+ virtual void method1(void) = 0;
-+ virtual void method2(int arg1,
-+ int arg2,
-+ int arg3) = 0;
-+ };
-+
-+
- void
- foo()
- {
-*** ../vim-7.3.331/src/version.c 2011-10-04 17:00:13.000000000 +0200
---- src/version.c 2011-10-04 18:02:17.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 332,
- /**/
-
---
-Latest survey shows that 3 out of 4 people make up 75% of the
-world's population.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.333
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.333
-Problem: Using "." to repeat a Visual delete counts the size in bytes, not
- characters. (Connor Lane Smith)
-Solution: Store the virtual column numbers instead of byte positions.
-Files: src/normal.c
-
-
-*** ../vim-7.3.332/src/normal.c 2011-07-15 17:51:30.000000000 +0200
---- src/normal.c 2011-10-04 19:47:14.000000000 +0200
-***************
-*** 20,26 ****
- */
- static int resel_VIsual_mode = NUL; /* 'v', 'V', or Ctrl-V */
- static linenr_T resel_VIsual_line_count; /* number of lines */
-! static colnr_T resel_VIsual_col; /* nr of cols or end col */
-
- static int restart_VIsual_select = 0;
- #endif
---- 20,26 ----
- */
- static int resel_VIsual_mode = NUL; /* 'v', 'V', or Ctrl-V */
- static linenr_T resel_VIsual_line_count; /* number of lines */
-! static colnr_T resel_VIsual_vcol; /* nr of cols or end col */
-
- static int restart_VIsual_select = 0;
- #endif
-***************
-*** 1436,1442 ****
- /* The visual area is remembered for redo */
- static int redo_VIsual_mode = NUL; /* 'v', 'V', or Ctrl-V */
- static linenr_T redo_VIsual_line_count; /* number of lines */
-! static colnr_T redo_VIsual_col; /* number of cols or end column */
- static long redo_VIsual_count; /* count for Visual operator */
- # ifdef FEAT_VIRTUALEDIT
- int include_line_break = FALSE;
---- 1436,1442 ----
- /* The visual area is remembered for redo */
- static int redo_VIsual_mode = NUL; /* 'v', 'V', or Ctrl-V */
- static linenr_T redo_VIsual_line_count; /* number of lines */
-! static colnr_T redo_VIsual_vcol; /* number of cols or end column */
- static long redo_VIsual_count; /* count for Visual operator */
- # ifdef FEAT_VIRTUALEDIT
- int include_line_break = FALSE;
-***************
-*** 1549,1570 ****
- #ifdef FEAT_VISUAL
- if (redo_VIsual_busy)
- {
- oap->start = curwin->w_cursor;
- curwin->w_cursor.lnum += redo_VIsual_line_count - 1;
- if (curwin->w_cursor.lnum > curbuf->b_ml.ml_line_count)
- curwin->w_cursor.lnum = curbuf->b_ml.ml_line_count;
- VIsual_mode = redo_VIsual_mode;
-! if (VIsual_mode == 'v')
- {
-! if (redo_VIsual_line_count <= 1)
-! curwin->w_cursor.col += redo_VIsual_col - 1;
- else
-! curwin->w_cursor.col = redo_VIsual_col;
-! }
-! if (redo_VIsual_col == MAXCOL)
-! {
-! curwin->w_curswant = MAXCOL;
-! coladvance((colnr_T)MAXCOL);
- }
- cap->count0 = redo_VIsual_count;
- if (redo_VIsual_count != 0)
---- 1549,1579 ----
- #ifdef FEAT_VISUAL
- if (redo_VIsual_busy)
- {
-+ /* Redo of an operation on a Visual area. Use the same size from
-+ * redo_VIsual_line_count and redo_VIsual_vcol. */
- oap->start = curwin->w_cursor;
- curwin->w_cursor.lnum += redo_VIsual_line_count - 1;
- if (curwin->w_cursor.lnum > curbuf->b_ml.ml_line_count)
- curwin->w_cursor.lnum = curbuf->b_ml.ml_line_count;
- VIsual_mode = redo_VIsual_mode;
-! if (redo_VIsual_vcol == MAXCOL || VIsual_mode == 'v')
- {
-! if (VIsual_mode == 'v')
-! {
-! if (redo_VIsual_line_count <= 1)
-! {
-! validate_virtcol();
-! curwin->w_curswant =
-! curwin->w_virtcol + redo_VIsual_vcol - 1;
-! }
-! else
-! curwin->w_curswant = redo_VIsual_vcol;
-! }
- else
-! {
-! curwin->w_curswant = MAXCOL;
-! }
-! coladvance(curwin->w_curswant);
- }
- cap->count0 = redo_VIsual_count;
- if (redo_VIsual_count != 0)
-***************
-*** 1710,1716 ****
- }
- }
- else if (redo_VIsual_busy)
-! oap->end_vcol = oap->start_vcol + redo_VIsual_col - 1;
- /*
- * Correct oap->end.col and oap->start.col to be the
- * upper-left and lower-right corner of the block area.
---- 1719,1725 ----
- }
- }
- else if (redo_VIsual_busy)
-! oap->end_vcol = oap->start_vcol + redo_VIsual_vcol - 1;
- /*
- * Correct oap->end.col and oap->start.col to be the
- * upper-left and lower-right corner of the block area.
-***************
-*** 1735,1747 ****
- */
- resel_VIsual_mode = VIsual_mode;
- if (curwin->w_curswant == MAXCOL)
-! resel_VIsual_col = MAXCOL;
-! else if (VIsual_mode == Ctrl_V)
-! resel_VIsual_col = oap->end_vcol - oap->start_vcol + 1;
-! else if (oap->line_count > 1)
-! resel_VIsual_col = oap->end.col;
- else
-! resel_VIsual_col = oap->end.col - oap->start.col + 1;
- resel_VIsual_line_count = oap->line_count;
- }
-
---- 1744,1765 ----
- */
- resel_VIsual_mode = VIsual_mode;
- if (curwin->w_curswant == MAXCOL)
-! resel_VIsual_vcol = MAXCOL;
- else
-! {
-! if (VIsual_mode != Ctrl_V)
-! getvvcol(curwin, &(oap->end),
-! NULL, NULL, &oap->end_vcol);
-! if (VIsual_mode == Ctrl_V || oap->line_count <= 1)
-! {
-! if (VIsual_mode != Ctrl_V)
-! getvvcol(curwin, &(oap->start),
-! &oap->start_vcol, NULL, NULL);
-! resel_VIsual_vcol = oap->end_vcol - oap->start_vcol + 1;
-! }
-! else
-! resel_VIsual_vcol = oap->end_vcol;
-! }
- resel_VIsual_line_count = oap->line_count;
- }
-
-***************
-*** 1769,1775 ****
- if (!redo_VIsual_busy)
- {
- redo_VIsual_mode = resel_VIsual_mode;
-! redo_VIsual_col = resel_VIsual_col;
- redo_VIsual_line_count = resel_VIsual_line_count;
- redo_VIsual_count = cap->count0;
- }
---- 1787,1793 ----
- if (!redo_VIsual_busy)
- {
- redo_VIsual_mode = resel_VIsual_mode;
-! redo_VIsual_vcol = resel_VIsual_vcol;
- redo_VIsual_line_count = resel_VIsual_line_count;
- redo_VIsual_count = cap->count0;
- }
-***************
-*** 7631,7642 ****
- if (VIsual_mode == 'v')
- {
- if (resel_VIsual_line_count <= 1)
-! curwin->w_cursor.col += resel_VIsual_col * cap->count0 - 1;
- else
-! curwin->w_cursor.col = resel_VIsual_col;
-! check_cursor_col();
- }
-! if (resel_VIsual_col == MAXCOL)
- {
- curwin->w_curswant = MAXCOL;
- coladvance((colnr_T)MAXCOL);
---- 7649,7664 ----
- if (VIsual_mode == 'v')
- {
- if (resel_VIsual_line_count <= 1)
-! {
-! validate_virtcol();
-! curwin->w_curswant = curwin->w_virtcol
-! + resel_VIsual_vcol * cap->count0 - 1;
-! }
- else
-! curwin->w_curswant = resel_VIsual_vcol;
-! coladvance(curwin->w_curswant);
- }
-! if (resel_VIsual_vcol == MAXCOL)
- {
- curwin->w_curswant = MAXCOL;
- coladvance((colnr_T)MAXCOL);
-***************
-*** 7645,7651 ****
- {
- validate_virtcol();
- curwin->w_curswant = curwin->w_virtcol
-! + resel_VIsual_col * cap->count0 - 1;
- coladvance(curwin->w_curswant);
- }
- else
---- 7667,7673 ----
- {
- validate_virtcol();
- curwin->w_curswant = curwin->w_virtcol
-! + resel_VIsual_vcol * cap->count0 - 1;
- coladvance(curwin->w_curswant);
- }
- else
-*** ../vim-7.3.332/src/version.c 2011-10-04 18:03:43.000000000 +0200
---- src/version.c 2011-10-04 21:05:44.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 333,
- /**/
-
---
-It was recently discovered that research causes cancer in rats.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.334
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.334
-Problem: Latest MingW about XSUBPP referencing itself. (Gongqian Li)
-Solution: Rename the first use to XSUBPPTRY.
-Files: src/Make_ming.mak
-
-
-*** ../vim-7.3.333/src/Make_ming.mak 2011-09-30 16:56:00.000000000 +0200
---- src/Make_ming.mak 2011-10-09 14:23:06.000000000 +0200
-***************
-*** 108,117 ****
- # on NT, it's here:
- PERLLIB=$(PERL)/lib
- PERLLIBS=$(PERLLIB)/Core
-! XSUBPP=$(PERLLIB)/ExtUtils/xsubpp
-! XSUBPP_EXISTS=$(shell perl -e "print 1 unless -e '$(XSUBPP)'")
- ifeq "$(XSUBPP_EXISTS)" ""
-! XSUBPP=perl $(XSUBPP)
- else
- XSUBPP=xsubpp
- endif
---- 108,117 ----
- # on NT, it's here:
- PERLLIB=$(PERL)/lib
- PERLLIBS=$(PERLLIB)/Core
-! XSUBPPTRY=$(PERLLIB)/ExtUtils/xsubpp
-! XSUBPP_EXISTS=$(shell perl -e "print 1 unless -e '$(XSUBPPTRY)'")
- ifeq "$(XSUBPP_EXISTS)" ""
-! XSUBPP=perl $(XSUBPPTRY)
- else
- XSUBPP=xsubpp
- endif
-*** ../vim-7.3.333/src/version.c 2011-10-04 21:22:40.000000000 +0200
---- src/version.c 2011-10-12 14:10:20.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 334,
- /**/
-
---
-Q: Should I clean my house or work on Vim?
-A: Whatever contains more bugs.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.335
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.335
-Problem: When 'imdisable' is reset from an autocommand in Insert mode it
- doesn't take effect.
-Solution: Call im_set_active() in Insert mode. (Taro Muraoka)
-Files: src/option.c
-
-
-*** ../vim-7.3.334/src/option.c 2011-09-21 13:40:13.000000000 +0200
---- src/option.c 2011-10-12 14:09:46.000000000 +0200
-***************
-*** 7806,7811 ****
---- 7806,7815 ----
- /* Only de-activate it here, it will be enabled when changing mode. */
- if (p_imdisable)
- im_set_active(FALSE);
-+ else if (State & INSERT)
-+ /* When the option is set from an autocommand, it may need to take
-+ * effect right away. */
-+ im_set_active(curbuf->b_p_iminsert == B_IMODE_IM);
- }
- #endif
-
-*** ../vim-7.3.334/src/version.c 2011-10-12 14:11:43.000000000 +0200
---- src/version.c 2011-10-12 16:56:30.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 335,
- /**/
-
---
-Time is money. Especially if you make clocks.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.336
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.336
-Problem: When a tags file specifies an encoding different from 'enc' it
- may hang and using a pattern doesn't work.
-Solution: Convert the whole line. Continue reading the header after the
- SORT tag. Add test83. (Yukihiro Nakadaira)
-Files: src/tag.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/test83-tags2, src/testdir/test83-tags3,
- src/testdir/test83.in, src/testdir/test83.ok
-
-
-*** ../vim-7.3.335/src/tag.c 2011-04-11 21:35:03.000000000 +0200
---- src/tag.c 2011-10-12 19:51:04.000000000 +0200
-***************
-*** 1277,1282 ****
---- 1277,1283 ----
- {
- FILE *fp;
- char_u *lbuf; /* line buffer */
-+ int lbuf_size = LSIZE; /* length of lbuf */
- char_u *tag_fname; /* name of tag file */
- tagname_T tn; /* info for get_tagfname() */
- int first_file; /* trying first tag file */
-***************
-*** 1291,1296 ****
---- 1292,1298 ----
- char_u *s;
- int i;
- #ifdef FEAT_TAG_BINS
-+ int tag_file_sorted = NUL; /* !_TAG_FILE_SORTED value */
- struct tag_search_info /* Binary search file offsets */
- {
- off_t low_offset; /* offset for first char of first line that
-***************
-*** 1360,1372 ****
- char_u *saved_pat = NULL; /* copy of pat[] */
- #endif
-
-- /* Use two sets of variables for the pattern: "orgpat" holds the values
-- * for the original pattern and "convpat" converted from 'encoding' to
-- * encoding of the tags file. "pats" point to either one of these. */
-- pat_T *pats;
- pat_T orgpat; /* holds unconverted pattern info */
- #ifdef FEAT_MBYTE
-- pat_T convpat; /* holds converted pattern info */
- vimconv_T vimconv;
- #endif
-
---- 1362,1369 ----
-***************
-*** 1390,1396 ****
-
- help_save = curbuf->b_help;
- orgpat.pat = pat;
-- pats = &orgpat;
- #ifdef FEAT_MBYTE
- vimconv.vc_type = CONV_NONE;
- #endif
---- 1387,1392 ----
-***************
-*** 1398,1404 ****
- /*
- * Allocate memory for the buffers that are used
- */
-! lbuf = alloc(LSIZE);
- tag_fname = alloc(MAXPATHL + 1);
- #ifdef FEAT_EMACS_TAGS
- ebuf = alloc(LSIZE);
---- 1394,1400 ----
- /*
- * Allocate memory for the buffers that are used
- */
-! lbuf = alloc(lbuf_size);
- tag_fname = alloc(MAXPATHL + 1);
- #ifdef FEAT_EMACS_TAGS
- ebuf = alloc(LSIZE);
-***************
-*** 1424,1453 ****
- if (help_only) /* want tags from help file */
- curbuf->b_help = TRUE; /* will be restored later */
-
-! pats->len = (int)STRLEN(pat);
- #ifdef FEAT_MULTI_LANG
- if (curbuf->b_help)
- {
- /* When "@ab" is specified use only the "ab" language, otherwise
- * search all languages. */
-! if (pats->len > 3 && pat[pats->len - 3] == '@'
-! && ASCII_ISALPHA(pat[pats->len - 2])
-! && ASCII_ISALPHA(pat[pats->len - 1]))
- {
-! saved_pat = vim_strnsave(pat, pats->len - 3);
- if (saved_pat != NULL)
- {
-! help_lang_find = &pat[pats->len - 2];
-! pats->pat = saved_pat;
-! pats->len -= 3;
- }
- }
- }
- #endif
-! if (p_tl != 0 && pats->len > p_tl) /* adjust for 'taglength' */
-! pats->len = p_tl;
-
-! prepare_pats(pats, has_re);
-
- #ifdef FEAT_TAG_BINS
- /* This is only to avoid a compiler warning for using search_info
---- 1420,1449 ----
- if (help_only) /* want tags from help file */
- curbuf->b_help = TRUE; /* will be restored later */
-
-! orgpat.len = (int)STRLEN(pat);
- #ifdef FEAT_MULTI_LANG
- if (curbuf->b_help)
- {
- /* When "@ab" is specified use only the "ab" language, otherwise
- * search all languages. */
-! if (orgpat.len > 3 && pat[orgpat.len - 3] == '@'
-! && ASCII_ISALPHA(pat[orgpat.len - 2])
-! && ASCII_ISALPHA(pat[orgpat.len - 1]))
- {
-! saved_pat = vim_strnsave(pat, orgpat.len - 3);
- if (saved_pat != NULL)
- {
-! help_lang_find = &pat[orgpat.len - 2];
-! orgpat.pat = saved_pat;
-! orgpat.len -= 3;
- }
- }
- }
- #endif
-! if (p_tl != 0 && orgpat.len > p_tl) /* adjust for 'taglength' */
-! orgpat.len = p_tl;
-
-! prepare_pats(&orgpat, has_re);
-
- #ifdef FEAT_TAG_BINS
- /* This is only to avoid a compiler warning for using search_info
-***************
-*** 1466,1478 ****
- * Only ignore case when TAG_NOIC not used or 'ignorecase' set.
- */
- #ifdef FEAT_TAG_BINS
-! pats->regmatch.rm_ic = ((p_ic || !noic)
-! && (findall || pats->headlen == 0 || !p_tbs));
- for (round = 1; round <= 2; ++round)
- {
-! linear = (pats->headlen == 0 || !p_tbs || round == 2);
- #else
-! pats->regmatch.rm_ic = (p_ic || !noic);
- #endif
-
- /*
---- 1462,1474 ----
- * Only ignore case when TAG_NOIC not used or 'ignorecase' set.
- */
- #ifdef FEAT_TAG_BINS
-! orgpat.regmatch.rm_ic = ((p_ic || !noic)
-! && (findall || orgpat.headlen == 0 || !p_tbs));
- for (round = 1; round <= 2; ++round)
- {
-! linear = (orgpat.headlen == 0 || !p_tbs || round == 2);
- #else
-! orgpat.regmatch.rm_ic = (p_ic || !noic);
- #endif
-
- /*
-***************
-*** 1701,1706 ****
---- 1697,1732 ----
- }
- line_read_in:
-
-+ #ifdef FEAT_MBYTE
-+ if (vimconv.vc_type != CONV_NONE)
-+ {
-+ char_u *conv_line;
-+ int len;
-+
-+ /* Convert every line. Converting the pattern from 'enc' to
-+ * the tags file encoding doesn't work, because characters are
-+ * not recognized. */
-+ conv_line = string_convert(&vimconv, lbuf, NULL);
-+ if (conv_line != NULL)
-+ {
-+ /* Copy or swap lbuf and conv_line. */
-+ len = (int)STRLEN(conv_line) + 1;
-+ if (len > lbuf_size)
-+ {
-+ vim_free(lbuf);
-+ lbuf = conv_line;
-+ lbuf_size = len;
-+ }
-+ else
-+ {
-+ STRCPY(lbuf, conv_line);
-+ vim_free(conv_line);
-+ }
-+ }
-+ }
-+ #endif
-+
-+
- #ifdef FEAT_EMACS_TAGS
- /*
- * Emacs tags line with CTRL-L: New file name on next line.
-***************
-*** 1770,1775 ****
---- 1796,1828 ----
- */
- if (state == TS_START)
- {
-+ if (STRNCMP(lbuf, "!_TAG_", 6) <= 0)
-+ {
-+ /*
-+ * Read header line.
-+ */
-+ #ifdef FEAT_TAG_BINS
-+ if (STRNCMP(lbuf, "!_TAG_FILE_SORTED\t", 18) == 0)
-+ tag_file_sorted = lbuf[18];
-+ #endif
-+ #ifdef FEAT_MBYTE
-+ if (STRNCMP(lbuf, "!_TAG_FILE_ENCODING\t", 20) == 0)
-+ {
-+ /* Prepare to convert every line from the specified
-+ * encoding to 'encoding'. */
-+ for (p = lbuf + 20; *p > ' ' && *p < 127; ++p)
-+ ;
-+ *p = NUL;
-+ convert_setup(&vimconv, lbuf + 20, p_enc);
-+ }
-+ #endif
-+
-+ /* Read the next line. Unrecognized flags are ignored. */
-+ continue;
-+ }
-+
-+ /* Headers ends. */
-+
- #ifdef FEAT_TAG_BINS
- /*
- * When there is no tag head, or ignoring case, need to do a
-***************
-*** 1786,1809 ****
- if (linear)
- # endif
- state = TS_LINEAR;
-! else if (STRNCMP(lbuf, "!_TAG_", 6) > 0)
- state = TS_BINARY;
-! else if (STRNCMP(lbuf, "!_TAG_FILE_SORTED\t", 18) == 0)
-! {
-! /* Check sorted flag */
-! if (lbuf[18] == '1')
- state = TS_BINARY;
-! else if (lbuf[18] == '2')
-! {
-! state = TS_BINARY;
-! sortic = TRUE;
-! pats->regmatch.rm_ic = (p_ic || !noic);
-! }
-! else
-! state = TS_LINEAR;
- }
-
-! if (state == TS_BINARY && pats->regmatch.rm_ic && !sortic)
- {
- /* binary search won't work for ignoring case, use linear
- * search. */
---- 1839,1858 ----
- if (linear)
- # endif
- state = TS_LINEAR;
-! else if (tag_file_sorted == NUL)
- state = TS_BINARY;
-! else if (tag_file_sorted == '1')
- state = TS_BINARY;
-! else if (tag_file_sorted == '2')
-! {
-! state = TS_BINARY;
-! sortic = TRUE;
-! orgpat.regmatch.rm_ic = (p_ic || !noic);
- }
-+ else
-+ state = TS_LINEAR;
-
-! if (state == TS_BINARY && orgpat.regmatch.rm_ic && !sortic)
- {
- /* binary search won't work for ignoring case, use linear
- * search. */
-***************
-*** 1843,1882 ****
- #endif
- }
-
-- #ifdef FEAT_MBYTE
-- if (lbuf[0] == '!' && pats == &orgpat
-- && STRNCMP(lbuf, "!_TAG_FILE_ENCODING\t", 20) == 0)
-- {
-- /* Convert the search pattern from 'encoding' to the
-- * specified encoding. */
-- for (p = lbuf + 20; *p > ' ' && *p < 127; ++p)
-- ;
-- *p = NUL;
-- convert_setup(&vimconv, p_enc, lbuf + 20);
-- if (vimconv.vc_type != CONV_NONE)
-- {
-- convpat.pat = string_convert(&vimconv, pats->pat, NULL);
-- if (convpat.pat != NULL)
-- {
-- pats = &convpat;
-- pats->len = (int)STRLEN(pats->pat);
-- prepare_pats(pats, has_re);
-- pats->regmatch.rm_ic = orgpat.regmatch.rm_ic;
-- }
-- }
--
-- /* Prepare for converting a match the other way around. */
-- convert_setup(&vimconv, lbuf + 20, p_enc);
-- continue;
-- }
-- #endif
--
- /*
- * Figure out where the different strings are in this line.
- * For "normal" tags: Do a quick check if the tag matches.
- * This speeds up tag searching a lot!
- */
-! if (pats->headlen
- #ifdef FEAT_EMACS_TAGS
- && !is_etag
- #endif
---- 1892,1903 ----
- #endif
- }
-
- /*
- * Figure out where the different strings are in this line.
- * For "normal" tags: Do a quick check if the tag matches.
- * This speeds up tag searching a lot!
- */
-! if (orgpat.headlen
- #ifdef FEAT_EMACS_TAGS
- && !is_etag
- #endif
-***************
-*** 1933,1941 ****
- cmplen = (int)(tagp.tagname_end - tagp.tagname);
- if (p_tl != 0 && cmplen > p_tl) /* adjust for 'taglength' */
- cmplen = p_tl;
-! if (has_re && pats->headlen < cmplen)
-! cmplen = pats->headlen;
-! else if (state == TS_LINEAR && pats->headlen != cmplen)
- continue;
-
- #ifdef FEAT_TAG_BINS
---- 1954,1962 ----
- cmplen = (int)(tagp.tagname_end - tagp.tagname);
- if (p_tl != 0 && cmplen > p_tl) /* adjust for 'taglength' */
- cmplen = p_tl;
-! if (has_re && orgpat.headlen < cmplen)
-! cmplen = orgpat.headlen;
-! else if (state == TS_LINEAR && orgpat.headlen != cmplen)
- continue;
-
- #ifdef FEAT_TAG_BINS
-***************
-*** 1954,1963 ****
- * Compare the current tag with the searched tag.
- */
- if (sortic)
-! tagcmp = tag_strnicmp(tagp.tagname, pats->head,
- (size_t)cmplen);
- else
-! tagcmp = STRNCMP(tagp.tagname, pats->head, cmplen);
-
- /*
- * A match with a shorter tag means to search forward.
---- 1975,1984 ----
- * Compare the current tag with the searched tag.
- */
- if (sortic)
-! tagcmp = tag_strnicmp(tagp.tagname, orgpat.head,
- (size_t)cmplen);
- else
-! tagcmp = STRNCMP(tagp.tagname, orgpat.head, cmplen);
-
- /*
- * A match with a shorter tag means to search forward.
-***************
-*** 1965,1973 ****
- */
- if (tagcmp == 0)
- {
-! if (cmplen < pats->headlen)
- tagcmp = -1;
-! else if (cmplen > pats->headlen)
- tagcmp = 1;
- }
-
---- 1986,1994 ----
- */
- if (tagcmp == 0)
- {
-! if (cmplen < orgpat.headlen)
- tagcmp = -1;
-! else if (cmplen > orgpat.headlen)
- tagcmp = 1;
- }
-
-***************
-*** 2011,2017 ****
- }
- else if (state == TS_SKIP_BACK)
- {
-! if (MB_STRNICMP(tagp.tagname, pats->head, cmplen) != 0)
- state = TS_STEP_FORWARD;
- else
- /* Have to skip back more. Restore the curr_offset
---- 2032,2038 ----
- }
- else if (state == TS_SKIP_BACK)
- {
-! if (MB_STRNICMP(tagp.tagname, orgpat.head, cmplen) != 0)
- state = TS_STEP_FORWARD;
- else
- /* Have to skip back more. Restore the curr_offset
-***************
-*** 2021,2027 ****
- }
- else if (state == TS_STEP_FORWARD)
- {
-! if (MB_STRNICMP(tagp.tagname, pats->head, cmplen) != 0)
- {
- if ((off_t)ftell(fp) > search_info.match_offset)
- break; /* past last match */
---- 2042,2048 ----
- }
- else if (state == TS_STEP_FORWARD)
- {
-! if (MB_STRNICMP(tagp.tagname, orgpat.head, cmplen) != 0)
- {
- if ((off_t)ftell(fp) > search_info.match_offset)
- break; /* past last match */
-***************
-*** 2032,2038 ****
- else
- #endif
- /* skip this match if it can't match */
-! if (MB_STRNICMP(tagp.tagname, pats->head, cmplen) != 0)
- continue;
-
- /*
---- 2053,2059 ----
- else
- #endif
- /* skip this match if it can't match */
-! if (MB_STRNICMP(tagp.tagname, orgpat.head, cmplen) != 0)
- continue;
-
- /*
-***************
-*** 2083,2123 ****
- if (p_tl != 0 && cmplen > p_tl) /* adjust for 'taglength' */
- cmplen = p_tl;
- /* if tag length does not match, don't try comparing */
-! if (pats->len != cmplen)
- match = FALSE;
- else
- {
-! if (pats->regmatch.rm_ic)
- {
-! match = (MB_STRNICMP(tagp.tagname, pats->pat, cmplen) == 0);
- if (match)
-! match_no_ic = (STRNCMP(tagp.tagname, pats->pat,
- cmplen) == 0);
- }
- else
-! match = (STRNCMP(tagp.tagname, pats->pat, cmplen) == 0);
- }
-
- /*
- * Has a regexp: Also find tags matching regexp.
- */
- match_re = FALSE;
-! if (!match && pats->regmatch.regprog != NULL)
- {
- int cc;
-
- cc = *tagp.tagname_end;
- *tagp.tagname_end = NUL;
-! match = vim_regexec(&pats->regmatch, tagp.tagname, (colnr_T)0);
- if (match)
- {
-! matchoff = (int)(pats->regmatch.startp[0] - tagp.tagname);
-! if (pats->regmatch.rm_ic)
- {
-! pats->regmatch.rm_ic = FALSE;
-! match_no_ic = vim_regexec(&pats->regmatch, tagp.tagname,
- (colnr_T)0);
-! pats->regmatch.rm_ic = TRUE;
- }
- }
- *tagp.tagname_end = cc;
---- 2104,2144 ----
- if (p_tl != 0 && cmplen > p_tl) /* adjust for 'taglength' */
- cmplen = p_tl;
- /* if tag length does not match, don't try comparing */
-! if (orgpat.len != cmplen)
- match = FALSE;
- else
- {
-! if (orgpat.regmatch.rm_ic)
- {
-! match = (MB_STRNICMP(tagp.tagname, orgpat.pat, cmplen) == 0);
- if (match)
-! match_no_ic = (STRNCMP(tagp.tagname, orgpat.pat,
- cmplen) == 0);
- }
- else
-! match = (STRNCMP(tagp.tagname, orgpat.pat, cmplen) == 0);
- }
-
- /*
- * Has a regexp: Also find tags matching regexp.
- */
- match_re = FALSE;
-! if (!match && orgpat.regmatch.regprog != NULL)
- {
- int cc;
-
- cc = *tagp.tagname_end;
- *tagp.tagname_end = NUL;
-! match = vim_regexec(&orgpat.regmatch, tagp.tagname, (colnr_T)0);
- if (match)
- {
-! matchoff = (int)(orgpat.regmatch.startp[0] - tagp.tagname);
-! if (orgpat.regmatch.rm_ic)
- {
-! orgpat.regmatch.rm_ic = FALSE;
-! match_no_ic = vim_regexec(&orgpat.regmatch, tagp.tagname,
- (colnr_T)0);
-! orgpat.regmatch.rm_ic = TRUE;
- }
- }
- *tagp.tagname_end = cc;
-***************
-*** 2174,2180 ****
- else
- mtt = MT_GL_OTH;
- }
-! if (pats->regmatch.rm_ic && !match_no_ic)
- mtt += MT_IC_OFF;
- if (match_re)
- mtt += MT_RE_OFF;
---- 2195,2201 ----
- else
- mtt = MT_GL_OTH;
- }
-! if (orgpat.regmatch.rm_ic && !match_no_ic)
- mtt += MT_IC_OFF;
- if (match_re)
- mtt += MT_RE_OFF;
-***************
-*** 2187,2221 ****
- */
- if (ga_grow(&ga_match[mtt], 1) == OK)
- {
-- #ifdef FEAT_MBYTE
-- char_u *conv_line = NULL;
-- char_u *lbuf_line = lbuf;
--
-- if (vimconv.vc_type != CONV_NONE)
-- {
-- /* Convert the tag line from the encoding of the tags
-- * file to 'encoding'. Then parse the line again. */
-- conv_line = string_convert(&vimconv, lbuf, NULL);
-- if (conv_line != NULL)
-- {
-- if (parse_tag_line(conv_line,
-- #ifdef FEAT_EMACS_TAGS
-- is_etag,
-- #endif
-- &tagp) == OK)
-- lbuf_line = conv_line;
-- else
-- /* doesn't work, go back to unconverted line. */
-- (void)parse_tag_line(lbuf,
-- #ifdef FEAT_EMACS_TAGS
-- is_etag,
-- #endif
-- &tagp);
-- }
-- }
-- #else
-- # define lbuf_line lbuf
-- #endif
- if (help_only)
- {
- #ifdef FEAT_MULTI_LANG
---- 2208,2213 ----
-***************
-*** 2307,2313 ****
- * without Emacs tags: <mtt><tag_fname><NUL><lbuf>
- */
- len = (int)STRLEN(tag_fname)
-! + (int)STRLEN(lbuf_line) + 3;
- #ifdef FEAT_EMACS_TAGS
- if (is_etag)
- len += (int)STRLEN(ebuf) + 1;
---- 2299,2305 ----
- * without Emacs tags: <mtt><tag_fname><NUL><lbuf>
- */
- len = (int)STRLEN(tag_fname)
-! + (int)STRLEN(lbuf) + 3;
- #ifdef FEAT_EMACS_TAGS
- if (is_etag)
- len += (int)STRLEN(ebuf) + 1;
-***************
-*** 2337,2343 ****
- else
- *s++ = NUL;
- #endif
-! STRCPY(s, lbuf_line);
- }
- }
-
---- 2329,2335 ----
- else
- *s++ = NUL;
- #endif
-! STRCPY(s, lbuf);
- }
- }
-
-***************
-*** 2373,2382 ****
- else
- vim_free(mfp);
- }
-- #ifdef FEAT_MBYTE
-- /* Note: this makes the values in "tagp" invalid! */
-- vim_free(conv_line);
-- #endif
- }
- else /* Out of memory! Just forget about the rest. */
- {
---- 2365,2370 ----
-***************
-*** 2415,2433 ****
- }
- #endif
- #ifdef FEAT_MBYTE
-- if (pats == &convpat)
-- {
-- /* Go back from converted pattern to original pattern. */
-- vim_free(pats->pat);
-- vim_free(pats->regmatch.regprog);
-- orgpat.regmatch.rm_ic = pats->regmatch.rm_ic;
-- pats = &orgpat;
-- }
- if (vimconv.vc_type != CONV_NONE)
- convert_setup(&vimconv, NULL, NULL);
- #endif
-
- #ifdef FEAT_TAG_BINS
- if (sort_error)
- {
- EMSG2(_("E432: Tags file not sorted: %s"), tag_fname);
---- 2403,2414 ----
- }
- #endif
- #ifdef FEAT_MBYTE
- if (vimconv.vc_type != CONV_NONE)
- convert_setup(&vimconv, NULL, NULL);
- #endif
-
- #ifdef FEAT_TAG_BINS
-+ tag_file_sorted = NUL;
- if (sort_error)
- {
- EMSG2(_("E432: Tags file not sorted: %s"), tag_fname);
-***************
-*** 2461,2473 ****
- #ifdef FEAT_TAG_BINS
- /* stop searching when already did a linear search, or when TAG_NOIC
- * used, and 'ignorecase' not set or already did case-ignore search */
-! if (stop_searching || linear || (!p_ic && noic) || pats->regmatch.rm_ic)
- break;
- # ifdef FEAT_CSCOPE
- if (use_cscope)
- break;
- # endif
-! pats->regmatch.rm_ic = TRUE; /* try another time while ignoring case */
- }
- #endif
-
---- 2442,2454 ----
- #ifdef FEAT_TAG_BINS
- /* stop searching when already did a linear search, or when TAG_NOIC
- * used, and 'ignorecase' not set or already did case-ignore search */
-! if (stop_searching || linear || (!p_ic && noic) || orgpat.regmatch.rm_ic)
- break;
- # ifdef FEAT_CSCOPE
- if (use_cscope)
- break;
- # endif
-! orgpat.regmatch.rm_ic = TRUE; /* try another time while ignoring case */
- }
- #endif
-
-***************
-*** 2480,2486 ****
-
- findtag_end:
- vim_free(lbuf);
-! vim_free(pats->regmatch.regprog);
- vim_free(tag_fname);
- #ifdef FEAT_EMACS_TAGS
- vim_free(ebuf);
---- 2461,2467 ----
-
- findtag_end:
- vim_free(lbuf);
-! vim_free(orgpat.regmatch.regprog);
- vim_free(tag_fname);
- #ifdef FEAT_EMACS_TAGS
- vim_free(ebuf);
-*** ../vim-7.3.335/src/testdir/Make_amiga.mak 2011-07-15 21:16:54.000000000 +0200
---- src/testdir/Make_amiga.mak 2011-10-12 19:21:00.000000000 +0200
-***************
-*** 29,35 ****
- test66.out test67.out test68.out test69.out test70.out \
- test71.out test72.out test73.out test74.out test75.out \
- test76.out test77.out test78.out test79.out test80.out \
-! test81.out test82.out
-
- .SUFFIXES: .in .out
-
---- 29,35 ----
- test66.out test67.out test68.out test69.out test70.out \
- test71.out test72.out test73.out test74.out test75.out \
- test76.out test77.out test78.out test79.out test80.out \
-! test81.out test82.out test83.out
-
- .SUFFIXES: .in .out
-
-***************
-*** 131,133 ****
---- 131,134 ----
- test80.out: test80.in
- test81.out: test81.in
- test82.out: test82.in
-+ test83.out: test83.in
-*** ../vim-7.3.335/src/testdir/Make_dos.mak 2011-07-15 21:16:54.000000000 +0200
---- src/testdir/Make_dos.mak 2011-10-12 17:39:03.000000000 +0200
-***************
-*** 29,35 ****
- 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 test77.out test78.out \
-! test79.out test80.out test81.out test82.out
-
- SCRIPTS32 = test50.out test70.out
-
---- 29,35 ----
- 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 test77.out test78.out \
-! test79.out test80.out test81.out test82.out test83.out
-
- SCRIPTS32 = test50.out test70.out
-
-*** ../vim-7.3.335/src/testdir/Make_ming.mak 2011-07-15 21:16:54.000000000 +0200
---- src/testdir/Make_ming.mak 2011-10-12 17:39:03.000000000 +0200
-***************
-*** 49,55 ****
- 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 test77.out test78.out \
-! test79.out test80.out test81.out test82.out
-
- SCRIPTS32 = test50.out test70.out
-
---- 49,55 ----
- 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 test77.out test78.out \
-! test79.out test80.out test81.out test82.out test83.out
-
- SCRIPTS32 = test50.out test70.out
-
-*** ../vim-7.3.335/src/testdir/Make_os2.mak 2011-07-15 21:16:54.000000000 +0200
---- src/testdir/Make_os2.mak 2011-10-12 17:39:03.000000000 +0200
-***************
-*** 29,35 ****
- test66.out test67.out test68.out test69.out test70.out \
- test71.out test72.out test73.out test74.out test75.out \
- test76.out test77.out test78.out test79.out test80.out \
-! test81.out test82.out
-
- .SUFFIXES: .in .out
-
---- 29,35 ----
- test66.out test67.out test68.out test69.out test70.out \
- test71.out test72.out test73.out test74.out test75.out \
- test76.out test77.out test78.out test79.out test80.out \
-! test81.out test82.out test83.out
-
- .SUFFIXES: .in .out
-
-*** ../vim-7.3.335/src/testdir/Make_vms.mms 2011-07-15 21:16:54.000000000 +0200
---- src/testdir/Make_vms.mms 2011-10-12 17:39:03.000000000 +0200
-***************
-*** 76,82 ****
- test66.out test67.out test68.out test69.out \
- test71.out test72.out test74.out test75.out test76.out \
- test77.out test78.out test79.out test80.out test81.out \
-! test82.out
-
- # Known problems:
- # Test 30: a problem around mac format - unknown reason
---- 76,82 ----
- test66.out test67.out test68.out test69.out \
- test71.out test72.out test74.out test75.out test76.out \
- test77.out test78.out test79.out test80.out test81.out \
-! test82.out test83.out
-
- # Known problems:
- # Test 30: a problem around mac format - unknown reason
-*** ../vim-7.3.335/src/testdir/Makefile 2011-07-15 21:16:54.000000000 +0200
---- src/testdir/Makefile 2011-10-12 17:39:03.000000000 +0200
-***************
-*** 26,32 ****
- 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 test77.out test78.out \
-! test79.out test80.out test81.out test82.out
-
- SCRIPTS_GUI = test16.out
-
---- 26,32 ----
- 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 test77.out test78.out \
-! test79.out test80.out test81.out test82.out test83.out
-
- SCRIPTS_GUI = test16.out
-
-***************
-*** 72,78 ****
- fi \
- else echo $* NO OUTPUT >>test.log; \
- fi"
-! -rm -rf X* test.ok viminfo
-
- test49.out: test49.vim
-
---- 72,78 ----
- fi \
- else echo $* NO OUTPUT >>test.log; \
- fi"
-! # -rm -rf X* test.ok viminfo
-
- test49.out: test49.vim
-
-*** ../vim-7.3.335/src/testdir/test83-tags2 2011-10-12 19:49:38.000000000 +0200
---- src/testdir/test83-tags2 2011-10-12 19:34:15.000000000 +0200
-***************
-*** 0 ****
---- 1,2 ----
-+ !_TAG_FILE_ENCODING cp932 //
-+ ‚`‚a‚b Xtags2.txt /‚`‚a‚b
-*** ../vim-7.3.335/src/testdir/test83-tags3 2011-10-12 19:49:38.000000000 +0200
---- src/testdir/test83-tags3 2011-10-12 19:35:42.000000000 +0200
-***************
-*** 0 ****
---- 1,102 ----
-+ !_TAG_FILE_SORTED 1 //
-+ !_TAG_FILE_ENCODING cp932 //
-+ abc1 Xtags3.txt /‚`‚a‚b
-+ abc2 Xtags3.txt /‚`‚a‚b
-+ abc3 Xtags3.txt /‚`‚a‚b
-+ abc4 Xtags3.txt /‚`‚a‚b
-+ abc5 Xtags3.txt /‚`‚a‚b
-+ abc6 Xtags3.txt /‚`‚a‚b
-+ abc7 Xtags3.txt /‚`‚a‚b
-+ abc8 Xtags3.txt /‚`‚a‚b
-+ abc9 Xtags3.txt /‚`‚a‚b
-+ abc10 Xtags3.txt /‚`‚a‚b
-+ abc11 Xtags3.txt /‚`‚a‚b
-+ abc12 Xtags3.txt /‚`‚a‚b
-+ abc13 Xtags3.txt /‚`‚a‚b
-+ abc14 Xtags3.txt /‚`‚a‚b
-+ abc15 Xtags3.txt /‚`‚a‚b
-+ abc16 Xtags3.txt /‚`‚a‚b
-+ abc17 Xtags3.txt /‚`‚a‚b
-+ abc18 Xtags3.txt /‚`‚a‚b
-+ abc19 Xtags3.txt /‚`‚a‚b
-+ abc20 Xtags3.txt /‚`‚a‚b
-+ abc21 Xtags3.txt /‚`‚a‚b
-+ abc22 Xtags3.txt /‚`‚a‚b
-+ abc23 Xtags3.txt /‚`‚a‚b
-+ abc24 Xtags3.txt /‚`‚a‚b
-+ abc25 Xtags3.txt /‚`‚a‚b
-+ abc26 Xtags3.txt /‚`‚a‚b
-+ abc27 Xtags3.txt /‚`‚a‚b
-+ abc28 Xtags3.txt /‚`‚a‚b
-+ abc29 Xtags3.txt /‚`‚a‚b
-+ abc30 Xtags3.txt /‚`‚a‚b
-+ abc31 Xtags3.txt /‚`‚a‚b
-+ abc32 Xtags3.txt /‚`‚a‚b
-+ abc33 Xtags3.txt /‚`‚a‚b
-+ abc34 Xtags3.txt /‚`‚a‚b
-+ abc35 Xtags3.txt /‚`‚a‚b
-+ abc36 Xtags3.txt /‚`‚a‚b
-+ abc37 Xtags3.txt /‚`‚a‚b
-+ abc38 Xtags3.txt /‚`‚a‚b
-+ abc39 Xtags3.txt /‚`‚a‚b
-+ abc40 Xtags3.txt /‚`‚a‚b
-+ abc41 Xtags3.txt /‚`‚a‚b
-+ abc42 Xtags3.txt /‚`‚a‚b
-+ abc43 Xtags3.txt /‚`‚a‚b
-+ abc44 Xtags3.txt /‚`‚a‚b
-+ abc45 Xtags3.txt /‚`‚a‚b
-+ abc46 Xtags3.txt /‚`‚a‚b
-+ abc47 Xtags3.txt /‚`‚a‚b
-+ abc48 Xtags3.txt /‚`‚a‚b
-+ abc49 Xtags3.txt /‚`‚a‚b
-+ abc50 Xtags3.txt /‚`‚a‚b
-+ abc51 Xtags3.txt /‚`‚a‚b
-+ abc52 Xtags3.txt /‚`‚a‚b
-+ abc53 Xtags3.txt /‚`‚a‚b
-+ abc54 Xtags3.txt /‚`‚a‚b
-+ abc55 Xtags3.txt /‚`‚a‚b
-+ abc56 Xtags3.txt /‚`‚a‚b
-+ abc57 Xtags3.txt /‚`‚a‚b
-+ abc58 Xtags3.txt /‚`‚a‚b
-+ abc59 Xtags3.txt /‚`‚a‚b
-+ abc60 Xtags3.txt /‚`‚a‚b
-+ abc61 Xtags3.txt /‚`‚a‚b
-+ abc62 Xtags3.txt /‚`‚a‚b
-+ abc63 Xtags3.txt /‚`‚a‚b
-+ abc64 Xtags3.txt /‚`‚a‚b
-+ abc65 Xtags3.txt /‚`‚a‚b
-+ abc66 Xtags3.txt /‚`‚a‚b
-+ abc67 Xtags3.txt /‚`‚a‚b
-+ abc68 Xtags3.txt /‚`‚a‚b
-+ abc69 Xtags3.txt /‚`‚a‚b
-+ abc70 Xtags3.txt /‚`‚a‚b
-+ abc71 Xtags3.txt /‚`‚a‚b
-+ abc72 Xtags3.txt /‚`‚a‚b
-+ abc73 Xtags3.txt /‚`‚a‚b
-+ abc74 Xtags3.txt /‚`‚a‚b
-+ abc75 Xtags3.txt /‚`‚a‚b
-+ abc76 Xtags3.txt /‚`‚a‚b
-+ abc77 Xtags3.txt /‚`‚a‚b
-+ abc78 Xtags3.txt /‚`‚a‚b
-+ abc79 Xtags3.txt /‚`‚a‚b
-+ abc80 Xtags3.txt /‚`‚a‚b
-+ abc81 Xtags3.txt /‚`‚a‚b
-+ abc82 Xtags3.txt /‚`‚a‚b
-+ abc83 Xtags3.txt /‚`‚a‚b
-+ abc84 Xtags3.txt /‚`‚a‚b
-+ abc85 Xtags3.txt /‚`‚a‚b
-+ abc86 Xtags3.txt /‚`‚a‚b
-+ abc87 Xtags3.txt /‚`‚a‚b
-+ abc88 Xtags3.txt /‚`‚a‚b
-+ abc89 Xtags3.txt /‚`‚a‚b
-+ abc90 Xtags3.txt /‚`‚a‚b
-+ abc91 Xtags3.txt /‚`‚a‚b
-+ abc92 Xtags3.txt /‚`‚a‚b
-+ abc93 Xtags3.txt /‚`‚a‚b
-+ abc94 Xtags3.txt /‚`‚a‚b
-+ abc95 Xtags3.txt /‚`‚a‚b
-+ abc96 Xtags3.txt /‚`‚a‚b
-+ abc97 Xtags3.txt /‚`‚a‚b
-+ abc98 Xtags3.txt /‚`‚a‚b
-+ abc99 Xtags3.txt /‚`‚a‚b
-+ abc100 Xtags3.txt /‚`‚a‚b
-*** ../vim-7.3.335/src/testdir/test83.in 2011-10-12 19:49:38.000000000 +0200
---- src/testdir/test83.in 2011-10-12 19:40:47.000000000 +0200
-***************
-*** 0 ****
---- 1,76 ----
-+ Tests for tag search with !_TAG_FILE_ENCODING.
-+
-+ STARTTEST
-+ :so mbyte.vim
-+ :if !has('iconv')
-+ : e! test.ok
-+ : w! test.out
-+ : qa!
-+ :endif
-+ :set enc=utf8
-+
-+ :/^text for tags1$/,/^text for tags1$/+1w! Xtags1.txt
-+ :/^text for tags2$/,/^text for tags2$/+1w! Xtags2.txt
-+ :/^text for tags3$/,/^text for tags3$/+1w! Xtags3.txt
-+ :/^tags1$/+1,/^tags1-end$/-1w! Xtags1
-+
-+ ggdG
-+
-+ :call setline('.', 'Results of test83')
-+
-+ :" case1:
-+ :new
-+ :set tags=Xtags1
-+ :let v:errmsg = ''
-+ :tag abcdefghijklmnopqrs
-+ :if v:errmsg =~ 'E426:' || getline('.') != 'abcdefghijklmnopqrs'
-+ : close
-+ : put ='case1: failed'
-+ :else
-+ : close
-+ : put ='case1: ok'
-+ :endif
-+
-+ :" case2:
-+ :new
-+ :set tags=test83-tags2
-+ :let v:errmsg = ''
-+ :tag /.BC
-+ :if v:errmsg =~ 'E426:' || getline('.') != 'ABC'
-+ : close
-+ : put ='case2: failed'
-+ :else
-+ : close
-+ : put ='case2: ok'
-+ :endif
-+
-+ :" case3:
-+ :new
-+ :set tags=test83-tags3
-+ :let v:errmsg = ''
-+ :tag abc50
-+ :if v:errmsg =~ 'E426:' || getline('.') != 'ABC'
-+ : close
-+ : put ='case3: failed'
-+ :else
-+ : close
-+ : put ='case3: ok'
-+ :endif
-+ :close
-+
-+ :wq! test.out
-+ ENDTEST
-+
-+ text for tags1
-+ abcdefghijklmnopqrs
-+
-+ text for tags2
-+ ABC
-+
-+ text for tags3
-+ ABC
-+
-+ tags1
-+ !_TAG_FILE_ENCODING utf-8 //
-+ abcdefghijklmnopqrs Xtags1.txt /abcdefghijklmnopqrs
-+ tags1-end
-*** ../vim-7.3.335/src/testdir/test83.ok 2011-10-12 19:49:38.000000000 +0200
---- src/testdir/test83.ok 2011-10-12 17:39:03.000000000 +0200
-***************
-*** 0 ****
---- 1,4 ----
-+ Results of test83
-+ case1: ok
-+ case2: ok
-+ case3: ok
-*** ../vim-7.3.335/src/version.c 2011-10-12 16:57:07.000000000 +0200
---- src/version.c 2011-10-12 19:45:46.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 336,
- /**/
-
-
---
-hundred-and-one symptoms of being an internet addict:
-62. If your doorbell rings, you think that new mail has arrived. And then
- you're disappointed that it's only someone at the door.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.337
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.337 (after 7.3.295)
-Problem: Screen doesn't update after resizing the xterm until a character
- is typed.
-Solution: When the select call is interrupted check do_resize. (Taylor
- Hedberg)
-Files: src/os_unix.c
-
-
-*** ../vim-7.3.336/src/os_unix.c 2011-09-08 23:24:09.000000000 +0200
---- src/os_unix.c 2011-10-12 20:57:15.000000000 +0200
-***************
-*** 5146,5156 ****
---- 5146,5163 ----
- # endif
- # ifdef EINTR
- if (ret == -1 && errno == EINTR)
-+ {
-+ /* Check whether window has been resized, EINTR may be caused by
-+ * SIGWINCH. */
-+ if (do_resize)
-+ handle_resize();
-+
- /* Interrupted by a signal, need to try again. We ignore msec
- * here, because we do want to check even after a timeout if
- * characters are available. Needed for reading output of an
- * external command after the process has finished. */
- goto select_eintr;
-+ }
- # endif
- # ifdef __TANDEM
- if (ret == -1 && errno == ENOTSUP)
-*** ../vim-7.3.336/src/version.c 2011-10-12 19:53:31.000000000 +0200
---- src/version.c 2011-10-12 21:03:47.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 337,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-64. The remote to the T.V. is missing...and you don't even care.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.338
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.338
-Problem: Using getchar() in an expression mapping doesn't work well.
-Solution: Don't save and restore the typeahead. (James Vega)
-Files: src/getchar.c, src/testdir/test34.ok
-
-
-*** ../vim-7.3.337/src/getchar.c 2011-08-17 20:33:18.000000000 +0200
---- src/getchar.c 2011-10-12 21:53:27.000000000 +0200
-***************
-*** 2460,2486 ****
-
- /*
- * Handle ":map <expr>": evaluate the {rhs} as an
-! * expression. Save and restore the typeahead so that
-! * getchar() can be used. Also save and restore the
-! * command line for "normal :".
- */
- if (mp->m_expr)
- {
-- tasave_T tabuf;
- int save_vgetc_busy = vgetc_busy;
-
-! save_typeahead(&tabuf);
-! if (tabuf.typebuf_valid)
-! {
-! vgetc_busy = 0;
-! save_m_keys = vim_strsave(mp->m_keys);
-! save_m_str = vim_strsave(mp->m_str);
-! s = eval_map_expr(save_m_str, NUL);
-! vgetc_busy = save_vgetc_busy;
-! }
-! else
-! s = NULL;
-! restore_typeahead(&tabuf);
- }
- else
- #endif
---- 2460,2477 ----
-
- /*
- * Handle ":map <expr>": evaluate the {rhs} as an
-! * expression. Also save and restore the command line
-! * for "normal :".
- */
- if (mp->m_expr)
- {
- int save_vgetc_busy = vgetc_busy;
-
-! vgetc_busy = 0;
-! save_m_keys = vim_strsave(mp->m_keys);
-! save_m_str = vim_strsave(mp->m_str);
-! s = eval_map_expr(save_m_str, NUL);
-! vgetc_busy = save_vgetc_busy;
- }
- else
- #endif
-*** ../vim-7.3.337/src/testdir/test34.ok 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test34.ok 2011-10-12 21:59:39.000000000 +0200
-***************
-*** 1,5 ****
- xxx4asdf fail nop ok 9 333
-! XX111XX
- ---222---
- 1. one
- 2. two
---- 1,5 ----
- xxx4asdf fail nop ok 9 333
-! XX111-XX
- ---222---
- 1. one
- 2. two
-*** ../vim-7.3.337/src/version.c 2011-10-12 21:04:15.000000000 +0200
---- src/version.c 2011-10-12 21:20:31.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 338,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-65. The last time you looked at the clock it was 11:30pm, and in what
- seems like only a few seconds later, your sister runs past you to
- catch her 7am school bus.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.339
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.339
-Problem: "make shadow" doesn't link all test files.
-Solution: Add a line in Makefile and Filelist.
-Files: src/Makefile, Filelist
-
-
-*** ../vim-7.3.338/Filelist 2011-09-30 16:56:00.000000000 +0200
---- Filelist 2011-10-16 14:00:42.000000000 +0200
-***************
-*** 81,86 ****
---- 81,87 ----
- src/testdir/test[0-9]*.ok \
- src/testdir/test49.vim \
- src/testdir/test60.vim \
-+ src/testdir/test83-tags? \
- src/proto.h \
- src/proto/blowfish.pro \
- src/proto/buffer.pro \
-*** ../vim-7.3.338/src/Makefile 2011-05-19 13:40:47.000000000 +0200
---- src/Makefile 2011-10-16 13:59:40.000000000 +0200
-***************
-*** 2328,2333 ****
---- 2328,2334 ----
- ../../testdir/vimrc.unix \
- ../../testdir/*.in \
- ../../testdir/*.vim \
-+ ../../testdir/test83-tags? \
- ../../testdir/*.ok .
-
- # Link needed for doing "make install" in a shadow directory.
-*** ../vim-7.3.338/src/version.c 2011-10-12 22:02:07.000000000 +0200
---- src/version.c 2011-10-20 16:34:28.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 339,
- /**/
-
---
-From "know your smileys":
- :-O>-o Smiley American tourist (note big mouth and camera)
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.340
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.340
-Problem: When 'verbosefile' is set ftplugof.vim can give an error.
-Solution: Only remove filetypeplugin autocommands when they exist. (Yasuhiro
- Matsumoto)
-Files: runtime/ftplugof.vim
-
-
-*** ../vim-7.3.339/runtime/ftplugof.vim 2010-08-15 21:57:11.000000000 +0200
---- runtime/ftplugof.vim 2011-10-20 16:51:00.000000000 +0200
-***************
-*** 1,11 ****
- " Vim support file to switch off loading plugins for file types
- "
- " Maintainer: Bram Moolenaar <Bram@vim.org>
-! " Last Change: 2002 Apr 04
-
- if exists("did_load_ftplugin")
- unlet did_load_ftplugin
- endif
-
-! " Remove all autocommands in the filetypeplugin group
-! silent! au! filetypeplugin *
---- 1,13 ----
- " Vim support file to switch off loading plugins for file types
- "
- " Maintainer: Bram Moolenaar <Bram@vim.org>
-! " Last Change: 2011 Oct 20
-
- if exists("did_load_ftplugin")
- unlet did_load_ftplugin
- endif
-
-! " Remove all autocommands in the filetypeplugin group, if any exist.
-! if exists("#filetypeplugin")
-! silent! au! filetypeplugin *
-! endif
-*** ../vim-7.3.339/src/version.c 2011-10-20 16:35:25.000000000 +0200
---- src/version.c 2011-10-20 18:01:18.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 340,
- /**/
-
---
-How many light bulbs does it take to change a person?
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.341
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.341
-Problem: Local help files are only listed in help.txt, not in translated
- help files.
-Solution: Also find translated help files. (Yasuhiro Matsumoto)
-Files: src/ex_cmds.c
-
-
-*** ../vim-7.3.340/src/ex_cmds.c 2011-09-30 17:30:27.000000000 +0200
---- src/ex_cmds.c 2011-10-20 17:39:45.000000000 +0200
-***************
-*** 5982,5987 ****
---- 5982,5988 ----
- char_u *line;
- int in_example = FALSE;
- int len;
-+ char_u *fname;
- char_u *p;
- char_u *rt;
- int mustfree;
-***************
-*** 6028,6151 ****
- }
-
- /*
-! * In the "help.txt" file, add the locally added help files.
-! * This uses the very first line in the help file.
- */
-! if (fnamecmp(gettail(curbuf->b_fname), "help.txt") == 0)
- {
- for (lnum = 1; lnum < curbuf->b_ml.ml_line_count; ++lnum)
- {
- line = ml_get_buf(curbuf, lnum, FALSE);
-! if (strstr((char *)line, "*local-additions*") != NULL)
- {
-! /* Go through all directories in 'runtimepath', skipping
-! * $VIMRUNTIME. */
-! p = p_rtp;
-! while (*p != NUL)
- {
-! copy_option_part(&p, NameBuff, MAXPATHL, ",");
-! mustfree = FALSE;
-! rt = vim_getenv((char_u *)"VIMRUNTIME", &mustfree);
-! if (fullpathcmp(rt, NameBuff, FALSE) != FPC_SAME)
-! {
-! int fcount;
-! char_u **fnames;
-! FILE *fd;
-! char_u *s;
-! int fi;
- #ifdef FEAT_MBYTE
-! vimconv_T vc;
-! char_u *cp;
- #endif
-
-! /* Find all "doc/ *.txt" files in this directory. */
-! add_pathsep(NameBuff);
-! STRCAT(NameBuff, "doc/*.txt");
-! if (gen_expand_wildcards(1, &NameBuff, &fcount,
-! &fnames, EW_FILE|EW_SILENT) == OK
-! && fcount > 0)
- {
-! for (fi = 0; fi < fcount; ++fi)
- {
-! fd = mch_fopen((char *)fnames[fi], "r");
-! if (fd != NULL)
- {
-! vim_fgets(IObuff, IOSIZE, fd);
-! if (IObuff[0] == '*'
-! && (s = vim_strchr(IObuff + 1, '*'))
-! != NULL)
-! {
-! #ifdef FEAT_MBYTE
-! int this_utf = MAYBE;
- #endif
-! /* Change tag definition to a
-! * reference and remove <CR>/<NL>. */
-! IObuff[0] = '|';
-! *s = '|';
-! while (*s != NUL)
-! {
-! if (*s == '\r' || *s == '\n')
-! *s = NUL;
- #ifdef FEAT_MBYTE
-! /* The text is utf-8 when a byte
-! * above 127 is found and no
-! * illegal byte sequence is found.
-! */
-! if (*s >= 0x80 && this_utf != FALSE)
-! {
-! int l;
-!
-! this_utf = TRUE;
-! l = utf_ptr2len(s);
-! if (l == 1)
-! this_utf = FALSE;
-! s += l - 1;
-! }
- #endif
-! ++s;
-! }
- #ifdef FEAT_MBYTE
-! /* The help file is latin1 or utf-8;
-! * conversion to the current
-! * 'encoding' may be required. */
-! vc.vc_type = CONV_NONE;
-! convert_setup(&vc, (char_u *)(
-! this_utf == TRUE ? "utf-8"
-! : "latin1"), p_enc);
-! if (vc.vc_type == CONV_NONE)
-! /* No conversion needed. */
-! cp = IObuff;
-! else
- {
-! /* Do the conversion. If it fails
-! * use the unconverted text. */
-! cp = string_convert(&vc, IObuff,
-! NULL);
-! if (cp == NULL)
-! cp = IObuff;
- }
-! convert_setup(&vc, NULL, NULL);
-
-! ml_append(lnum, cp, (colnr_T)0, FALSE);
-! if (cp != IObuff)
-! vim_free(cp);
- #else
-! ml_append(lnum, IObuff, (colnr_T)0,
-! FALSE);
- #endif
-! ++lnum;
-! }
-! fclose(fd);
- }
- }
-- FreeWild(fcount, fnames);
- }
- }
-- if (mustfree)
-- vim_free(rt);
- }
-! break;
- }
- }
- }
- }
---- 6029,6215 ----
- }
-
- /*
-! * In the "help.txt" and "help.abx" file, add the locally added help
-! * files. This uses the very first line in the help file.
- */
-! fname = gettail(curbuf->b_fname);
-! if (fnamecmp(fname, "help.txt") == 0
-! #ifdef FEAT_MULTI_LANG
-! || (fnamencmp(fname, "help.", 5) == 0
-! && ASCII_ISALPHA(fname[5])
-! && ASCII_ISALPHA(fname[6])
-! && TOLOWER_ASC(fname[7]) == 'x'
-! && fname[8] == NUL)
-! #endif
-! )
- {
- for (lnum = 1; lnum < curbuf->b_ml.ml_line_count; ++lnum)
- {
- line = ml_get_buf(curbuf, lnum, FALSE);
-! if (strstr((char *)line, "*local-additions*") == NULL)
-! continue;
-!
-! /* Go through all directories in 'runtimepath', skipping
-! * $VIMRUNTIME. */
-! p = p_rtp;
-! while (*p != NUL)
- {
-! copy_option_part(&p, NameBuff, MAXPATHL, ",");
-! mustfree = FALSE;
-! rt = vim_getenv((char_u *)"VIMRUNTIME", &mustfree);
-! if (fullpathcmp(rt, NameBuff, FALSE) != FPC_SAME)
- {
-! int fcount;
-! char_u **fnames;
-! FILE *fd;
-! char_u *s;
-! int fi;
- #ifdef FEAT_MBYTE
-! vimconv_T vc;
-! char_u *cp;
- #endif
-
-! /* Find all "doc/ *.txt" files in this directory. */
-! add_pathsep(NameBuff);
-! #ifdef FEAT_MULTI_LANG
-! STRCAT(NameBuff, "doc/*.??[tx]");
-! #else
-! STRCAT(NameBuff, "doc/*.txt");
-! #endif
-! if (gen_expand_wildcards(1, &NameBuff, &fcount,
-! &fnames, EW_FILE|EW_SILENT) == OK
-! && fcount > 0)
-! {
-! #ifdef FEAT_MULTI_LANG
-! int i1;
-! int i2;
-! char_u *f1;
-! char_u *f2;
-! char_u *t1;
-! char_u *e1;
-! char_u *e2;
-!
-! /* If foo.abx is found use it instead of foo.txt in
-! * the same directory. */
-! for (i1 = 0; i1 < fcount; ++i1)
- {
-! for (i2 = 0; i2 < fcount; ++i2)
- {
-! if (i1 == i2)
-! continue;
-! if (fnames[i1] == NULL || fnames[i2] == NULL)
-! continue;
-! f1 = fnames[i1];
-! f2 = fnames[i2];
-! t1 = gettail(f1);
-! if (fnamencmp(f1, f2, t1 - f1) != 0)
-! continue;
-! e1 = vim_strrchr(t1, '.');
-! e2 = vim_strrchr(gettail(f2), '.');
-! if (e1 == NUL || e2 == NUL)
-! continue;
-! if (fnamecmp(e1, ".txt") != 0
-! && fnamecmp(e1, fname + 4) != 0)
- {
-! /* Not .txt and not .abx, remove it. */
-! vim_free(fnames[i1]);
-! fnames[i1] = NULL;
-! continue;
-! }
-! if (fnamencmp(f1, f2, e1 - f1) != 0)
-! continue;
-! if (fnamecmp(e1, ".txt") == 0
-! && fnamecmp(e2, fname + 4) == 0)
-! {
-! /* use .abx instead of .txt */
-! vim_free(fnames[i1]);
-! fnames[i1] = NULL;
-! }
-! }
-! }
- #endif
-! for (fi = 0; fi < fcount; ++fi)
-! {
-! if (fnames[fi] == NULL)
-! continue;
-! fd = mch_fopen((char *)fnames[fi], "r");
-! if (fd != NULL)
-! {
-! vim_fgets(IObuff, IOSIZE, fd);
-! if (IObuff[0] == '*'
-! && (s = vim_strchr(IObuff + 1, '*'))
-! != NULL)
-! {
- #ifdef FEAT_MBYTE
-! int this_utf = MAYBE;
- #endif
-! /* Change tag definition to a
-! * reference and remove <CR>/<NL>. */
-! IObuff[0] = '|';
-! *s = '|';
-! while (*s != NUL)
-! {
-! if (*s == '\r' || *s == '\n')
-! *s = NUL;
- #ifdef FEAT_MBYTE
-! /* The text is utf-8 when a byte
-! * above 127 is found and no
-! * illegal byte sequence is found.
-! */
-! if (*s >= 0x80 && this_utf != FALSE)
- {
-! int l;
-!
-! this_utf = TRUE;
-! l = utf_ptr2len(s);
-! if (l == 1)
-! this_utf = FALSE;
-! s += l - 1;
- }
-! #endif
-! ++s;
-! }
-! #ifdef FEAT_MBYTE
-! /* The help file is latin1 or utf-8;
-! * conversion to the current
-! * 'encoding' may be required. */
-! vc.vc_type = CONV_NONE;
-! convert_setup(&vc, (char_u *)(
-! this_utf == TRUE ? "utf-8"
-! : "latin1"), p_enc);
-! if (vc.vc_type == CONV_NONE)
-! /* No conversion needed. */
-! cp = IObuff;
-! else
-! {
-! /* Do the conversion. If it fails
-! * use the unconverted text. */
-! cp = string_convert(&vc, IObuff,
-! NULL);
-! if (cp == NULL)
-! cp = IObuff;
-! }
-! convert_setup(&vc, NULL, NULL);
-
-! ml_append(lnum, cp, (colnr_T)0, FALSE);
-! if (cp != IObuff)
-! vim_free(cp);
- #else
-! ml_append(lnum, IObuff, (colnr_T)0,
-! FALSE);
- #endif
-! ++lnum;
- }
-+ fclose(fd);
- }
- }
-+ FreeWild(fcount, fnames);
- }
- }
-! if (mustfree)
-! vim_free(rt);
- }
-+ break;
- }
- }
- }
-*** ../vim-7.3.340/src/version.c 2011-10-20 18:12:27.000000000 +0200
---- src/version.c 2011-10-20 18:13:46.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 341,
- /**/
-
---
-From "know your smileys":
- :-)-O Smiling doctor with stethoscope
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.342
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.342
-Problem: Code not in Vim style.
-Solution: Fix the style. (Elias Diem)
-Files: src/os_amiga.c, src/os_mac_conv.c, src/os_win16.c
-
-
-*** ../vim-7.3.341/src/os_amiga.c 2010-08-15 21:57:27.000000000 +0200
---- src/os_amiga.c 2011-10-20 18:19:45.000000000 +0200
-***************
-*** 1022,1028 ****
-
- /* insure longword alignment */
- #ifdef __amigaos4__
-! if(!(id = AllocDosObject(DOS_INFODATA, 0)))
- goto out;
- #else
- id = (struct InfoData *)(((long)id_a + 3L) & ~3L);
---- 1022,1028 ----
-
- /* insure longword alignment */
- #ifdef __amigaos4__
-! if (!(id = AllocDosObject(DOS_INFODATA, 0)))
- goto out;
- #else
- id = (struct InfoData *)(((long)id_a + 3L) & ~3L);
-*** ../vim-7.3.341/src/os_mac_conv.c 2011-06-13 02:03:55.000000000 +0200
---- src/os_mac_conv.c 2011-10-20 18:19:45.000000000 +0200
-***************
-*** 77,83 ****
- *unconvlenp = 0;
- cfstr = CFStringCreateWithBytes(NULL, ptr, len, from, 0);
-
-! if(cfstr == NULL)
- fprintf(stderr, "Encoding failed\n");
- /* When conversion failed, try excluding bytes from the end, helps when
- * there is an incomplete byte sequence. Only do up to 6 bytes to avoid
---- 77,83 ----
- *unconvlenp = 0;
- cfstr = CFStringCreateWithBytes(NULL, ptr, len, from, 0);
-
-! if (cfstr == NULL)
- fprintf(stderr, "Encoding failed\n");
- /* When conversion failed, try excluding bytes from the end, helps when
- * there is an incomplete byte sequence. Only do up to 6 bytes to avoid
-*** ../vim-7.3.341/src/os_win16.c 2010-12-17 20:23:56.000000000 +0100
---- src/os_win16.c 2011-10-20 18:19:45.000000000 +0200
-***************
-*** 243,251 ****
- /* Wait for the command to terminate before continuing */
- while (GetModuleUsage((HINSTANCE)h_module) > 0 && again )
- {
-! while( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) && again )
- {
-! if(msg.message == WM_QUIT)
-
- {
- PostQuitMessage(msg.wParam);
---- 243,251 ----
- /* Wait for the command to terminate before continuing */
- while (GetModuleUsage((HINSTANCE)h_module) > 0 && again )
- {
-! while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) && again)
- {
-! if (msg.message == WM_QUIT)
-
- {
- PostQuitMessage(msg.wParam);
-*** ../vim-7.3.341/src/version.c 2011-10-20 18:17:38.000000000 +0200
---- src/version.c 2011-10-20 18:21:43.000000000 +0200
-***************
-*** 711,712 ****
---- 711,714 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 342,
- /**/
-
---
-You are only young once, but you can stay immature indefinitely.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.343
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.343
-Problem: No mouse support for urxvt.
-Solution: Implement urxvt mouse support, also for > 252 columns. (Yiding
- Jia)
-Files: src/feature.h, src/keymap.h, src/option.h, src/os_unix.c,
- src/term.c, src/version.c
-
-
-*** ../vim-7.3.342/src/feature.h 2011-05-19 13:40:47.000000000 +0200
---- src/feature.h 2011-10-20 21:02:15.000000000 +0200
-***************
-*** 1053,1058 ****
---- 1053,1061 ----
- # ifdef FEAT_BIG
- # define FEAT_MOUSE_DEC
- # endif
-+ # ifdef FEAT_BIG
-+ # define FEAT_MOUSE_URXVT
-+ # endif
- # if defined(FEAT_NORMAL) && (defined(MSDOS) || defined(WIN3264))
- # define DOS_MOUSE
- # endif
-***************
-*** 1068,1080 ****
- #if defined(FEAT_NORMAL) && defined(HAVE_SYSMOUSE)
- # define FEAT_SYSMOUSE
- #endif
- /* Define FEAT_MOUSE when any of the above is defined or FEAT_GUI. */
- #if !defined(FEAT_MOUSE_TTY) \
- && (defined(FEAT_MOUSE_XTERM) \
-! || defined(FEAT_MOUSE_NET) || defined(FEAT_MOUSE_DEC) \
-! || defined(DOS_MOUSE) || defined(FEAT_MOUSE_GPM) \
-! || defined(FEAT_MOUSE_JSB) || defined(FEAT_MOUSE_PTERM) \
-! || defined(FEAT_SYSMOUSE))
- # define FEAT_MOUSE_TTY /* include non-GUI mouse support */
- #endif
- #if !defined(FEAT_MOUSE) && (defined(FEAT_MOUSE_TTY) || defined(FEAT_GUI))
---- 1071,1093 ----
- #if defined(FEAT_NORMAL) && defined(HAVE_SYSMOUSE)
- # define FEAT_SYSMOUSE
- #endif
-+
-+ /* urxvt is a small variation of mouse_xterm, and shares its code */
-+ #if defined(FEAT_MOUSE_URXVT) && !defined(FEAT_MOUSE_XTERM)
-+ # define FEAT_MOUSE_XTERM
-+ #endif
-+
- /* Define FEAT_MOUSE when any of the above is defined or FEAT_GUI. */
- #if !defined(FEAT_MOUSE_TTY) \
- && (defined(FEAT_MOUSE_XTERM) \
-! || defined(FEAT_MOUSE_NET) \
-! || defined(FEAT_MOUSE_DEC) \
-! || defined(DOS_MOUSE) \
-! || defined(FEAT_MOUSE_GPM) \
-! || defined(FEAT_MOUSE_JSB) \
-! || defined(FEAT_MOUSE_PTERM) \
-! || defined(FEAT_SYSMOUSE) \
-! || defined(FEAT_MOUSE_URXVT))
- # define FEAT_MOUSE_TTY /* include non-GUI mouse support */
- #endif
- #if !defined(FEAT_MOUSE) && (defined(FEAT_MOUSE_TTY) || defined(FEAT_GUI))
-*** ../vim-7.3.342/src/keymap.h 2010-08-15 21:57:32.000000000 +0200
---- src/keymap.h 2011-10-20 21:00:37.000000000 +0200
-***************
-*** 92,104 ****
- */
- #define KS_TEAROFF 244
-
-! /* used for JSB term mouse */
- #define KS_JSBTERM_MOUSE 243
-
-! /* used a termcap entry that produces a normal character */
- #define KS_KEY 242
-
-! /* Used for the qnx pterm mouse */
- #define KS_PTERM_MOUSE 241
-
- /* Used for click in a tab pages label. */
---- 92,104 ----
- */
- #define KS_TEAROFF 244
-
-! /* Used for JSB term mouse. */
- #define KS_JSBTERM_MOUSE 243
-
-! /* Used a termcap entry that produces a normal character. */
- #define KS_KEY 242
-
-! /* Used for the qnx pterm mouse. */
- #define KS_PTERM_MOUSE 241
-
- /* Used for click in a tab pages label. */
-***************
-*** 107,112 ****
---- 107,115 ----
- /* Used for menu in a tab pages line. */
- #define KS_TABMENU 239
-
-+ /* Used for the urxvt mouse. */
-+ #define KS_URXVT_MOUSE 238
-+
- /*
- * Filler used after KS_SPECIAL and others
- */
-*** ../vim-7.3.342/src/option.h 2011-09-30 14:44:49.000000000 +0200
---- src/option.h 2011-10-20 19:38:59.000000000 +0200
-***************
-*** 819,825 ****
- EXTERN char_u *p_ttym; /* 'ttymouse' */
- EXTERN unsigned ttym_flags;
- # ifdef IN_OPTION_C
-! static char *(p_ttym_values[]) = {"xterm", "xterm2", "dec", "netterm", "jsbterm", "pterm", NULL};
- # endif
- # define TTYM_XTERM 0x01
- # define TTYM_XTERM2 0x02
---- 819,825 ----
- EXTERN char_u *p_ttym; /* 'ttymouse' */
- EXTERN unsigned ttym_flags;
- # ifdef IN_OPTION_C
-! static char *(p_ttym_values[]) = {"xterm", "xterm2", "dec", "netterm", "jsbterm", "pterm", "urxvt", NULL};
- # endif
- # define TTYM_XTERM 0x01
- # define TTYM_XTERM2 0x02
-***************
-*** 827,832 ****
---- 827,833 ----
- # define TTYM_NETTERM 0x08
- # define TTYM_JSBTERM 0x10
- # define TTYM_PTERM 0x20
-+ # define TTYM_URXVT 0x40
- #endif
- EXTERN char_u *p_udir; /* 'undodir' */
- EXTERN long p_ul; /* 'undolevels' */
-*** ../vim-7.3.342/src/os_unix.c 2011-10-12 21:04:15.000000000 +0200
---- src/os_unix.c 2011-10-20 21:02:00.000000000 +0200
-***************
-*** 2158,2167 ****
---- 2158,2170 ----
- * Return non-zero when using an xterm mouse, according to 'ttymouse'.
- * Return 1 for "xterm".
- * Return 2 for "xterm2".
-+ * Return 3 for "urxvt".
- */
- int
- use_xterm_mouse()
- {
-+ if (ttym_flags == TTYM_URXVT)
-+ return 3;
- if (ttym_flags == TTYM_XTERM2)
- return 2;
- if (ttym_flags == TTYM_XTERM)
-***************
-*** 3318,3323 ****
---- 3321,3337 ----
- return;
-
- xterm_mouse_vers = use_xterm_mouse();
-+
-+ # ifdef FEAT_MOUSE_URXVT
-+ if (ttym_flags == TTYM_URXVT) {
-+ out_str_nf((char_u *)
-+ (on
-+ ? IF_EB("\033[?1015h", ESC_STR "[?1015h")
-+ : IF_EB("\033[?1015l", ESC_STR "[?1015l")));
-+ ison = on;
-+ }
-+ # endif
-+
- if (xterm_mouse_vers > 0)
- {
- if (on) /* enable mouse events, use mouse tracking if available */
-***************
-*** 3434,3439 ****
---- 3448,3456 ----
- {
- # ifdef FEAT_MOUSE_XTERM
- if (use_xterm_mouse()
-+ # ifdef FEAT_MOUSE_URXVT
-+ && use_xterm_mouse() != 3
-+ # endif
- # ifdef FEAT_GUI
- && !gui.in_use
- # endif
-***************
-*** 3523,3528 ****
---- 3540,3566 ----
- else
- del_mouse_termcode(KS_PTERM_MOUSE);
- # endif
-+ # ifdef FEAT_MOUSE_URXVT
-+ /* same as the dec mouse */
-+ if (use_xterm_mouse() == 3
-+ # ifdef FEAT_GUI
-+ && !gui.in_use
-+ # endif
-+ )
-+ {
-+ set_mouse_termcode(KS_URXVT_MOUSE, (char_u *)(term_is_8bit(T_NAME)
-+ ? IF_EB("\233", CSI_STR)
-+ : IF_EB("\033[", ESC_STR "[")));
-+
-+ if (*p_mouse != NUL)
-+ {
-+ mch_setmouse(FALSE);
-+ setmouse();
-+ }
-+ }
-+ else
-+ del_mouse_termcode(KS_URXVT_MOUSE);
-+ # endif
- }
- #endif
-
-*** ../vim-7.3.342/src/version.c 2011-10-20 18:24:16.000000000 +0200
---- src/version.c 2011-10-20 19:40:48.000000000 +0200
-***************
-*** 380,383 ****
---- 380,388 ----
- "-mouse_xterm",
- # endif
-+ # ifdef FEAT_MOUSE_URXVT
-+ "+mouse_urxvt",
-+ # else
-+ "-mouse_urxvt",
-+ # endif
- #endif
- #ifdef __QNX__
-***************
-*** 711,712 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 343,
- /**/
-
---
-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/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.344
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.344
-Problem: Problem with GUI startup related to XInitThreads.
-Solution: Use read() and write() instead of fputs() and fread(). (James
- Vega)
-Files: src/gui.c
-
-
-*** ../vim-7.3.343/src/gui.c 2011-09-14 19:04:35.000000000 +0200
---- src/gui.c 2011-10-20 21:23:43.000000000 +0200
-***************
-*** 212,218 ****
- int status;
- int exit_status;
- pid_t pid = -1;
-- FILE *parent_file;
-
- /* Setup a pipe between the child and the parent, so that the parent
- * knows when the child has done the setsid() call and is allowed to
---- 212,217 ----
-***************
-*** 290,308 ****
- gui_mch_forked();
- # endif
-
-- if (!pipe_error)
-- parent_file = fdopen(pipefd[1], "w");
-- else
-- parent_file = NULL;
--
- /* Try to start the GUI */
- gui_attempt_start();
-
- /* Notify the parent */
-! if (parent_file != NULL)
- {
-! fputs(gui.in_use ? "ok" : "fail", parent_file);
-! fclose(parent_file);
- }
-
- /* If we failed to start the GUI, exit now. */
---- 289,305 ----
- gui_mch_forked();
- # endif
-
- /* Try to start the GUI */
- gui_attempt_start();
-
- /* Notify the parent */
-! if (!pipe_error)
- {
-! if (gui.in_use)
-! write_eintr(pipefd[1], "ok", 3);
-! else
-! write_eintr(pipefd[1], "fail", 5);
-! close(pipefd[1]);
- }
-
- /* If we failed to start the GUI, exit now. */
-***************
-*** 323,339 ****
- static int
- gui_read_child_pipe(int fd)
- {
-! size_t bytes_read;
-! FILE *file;
-! char buffer[10];
-!
-! file = fdopen(fd, "r");
-! if (!file)
- return GUI_CHILD_IO_ERROR;
-!
-! bytes_read = fread(buffer, sizeof(char), sizeof(buffer)-1, file);
-! buffer[bytes_read] = '\0';
-! fclose(file);
- if (strcmp(buffer, "ok") == 0)
- return GUI_CHILD_OK;
- return GUI_CHILD_FAILED;
---- 320,335 ----
- static int
- gui_read_child_pipe(int fd)
- {
-! long bytes_read;
-! #define READ_BUFFER_SIZE 10
-! char buffer[READ_BUFFER_SIZE];
-!
-! bytes_read = read_eintr(fd, buffer, READ_BUFFER_SIZE - 1);
-! #undef READ_BUFFER_SIZE
-! close(fd);
-! if (bytes_read < 0)
- return GUI_CHILD_IO_ERROR;
-! buffer[bytes_read] = NUL;
- if (strcmp(buffer, "ok") == 0)
- return GUI_CHILD_OK;
- return GUI_CHILD_FAILED;
-*** ../vim-7.3.343/src/version.c 2011-10-20 21:09:25.000000000 +0200
---- src/version.c 2011-10-20 21:27:31.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 344,
- /**/
-
---
-From "know your smileys":
- *<|:-) Santa Claus (Ho Ho Ho)
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.345
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.345
-Problem: When switching language with ":lang" the window title doesn't
- change until later.
-Solution: Update the window title right away. (Dominique Pelle)
-Files: src/ex_cmds2.c
-
-
-*** ../vim-7.3.344/src/ex_cmds2.c 2011-06-26 04:25:24.000000000 +0200
---- src/ex_cmds2.c 2011-10-20 21:31:09.000000000 +0200
-***************
-*** 4154,4159 ****
---- 4154,4162 ----
- /* Set v:lang, v:lc_time and v:ctype to the final result. */
- set_lang_var();
- # endif
-+ # ifdef FEAT_TITLE
-+ maketitle();
-+ # endif
- }
- }
- }
-*** ../vim-7.3.344/src/version.c 2011-10-20 21:27:57.000000000 +0200
---- src/version.c 2011-10-20 21:38:32.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 345,
- /**/
-
---
-You can't have everything. Where would you put it?
- -- Steven Wright
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.346
-Fcc: 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.346
-Problem: It's hard to test netbeans commands.
-Solution: Process netbeans commands after :sleep. (Xavier de Gaye)
-Files: runtime/doc/netbeans.txt, src/ex_docmd.c, src/netbeans.c
-
-
-*** ../vim-7.3.345/runtime/doc/netbeans.txt 2010-09-29 17:26:57.000000000 +0200
---- runtime/doc/netbeans.txt 2011-10-20 21:51:41.000000000 +0200
-***************
-*** 1,4 ****
-! *netbeans.txt* For Vim version 7.3. Last change: 2010 Aug 20
-
-
- VIM REFERENCE MANUAL by Gordon Prieur et al.
---- 1,4 ----
-! *netbeans.txt* For Vim version 7.3. Last change: 2011 Oct 20
-
-
- VIM REFERENCE MANUAL by Gordon Prieur et al.
-***************
-*** 263,268 ****
---- 263,274 ----
- plain UTF-8 text this protocol could also be used with any other communication
- mechanism.
-
-+ Netbeans messages are processed when Vim is idle, waiting for user input.
-+ When Vim is run in non-interactive mode, for example when running an automated
-+ test case that sources a Vim script, the idle loop may not be called often
-+ enough. In that case, insert |sleep| commands in the Vim script. The |sleep|
-+ command does invoke Netbeans messages processing.
-+
- 6.1 Kinds of messages |nb-messages|
- 6.2 Terms |nb-terms|
- 6.3 Commands |nb-commands|
-***************
-*** 820,826 ****
- ==============================================================================
- 7. NetBeans commands *netbeans-commands*
-
-! *:nbstart* *E511*
- :nbs[tart] {connection} Start a new Netbeans session with {connection} as the
- socket connection parameters. The format of
- {connection} is described in |netbeans-parameters|.
---- 826,832 ----
- ==============================================================================
- 7. NetBeans commands *netbeans-commands*
-
-! *:nbstart* *E511* *E838*
- :nbs[tart] {connection} Start a new Netbeans session with {connection} as the
- socket connection parameters. The format of
- {connection} is described in |netbeans-parameters|.
-***************
-*** 833,843 ****
- signs.
-
- *:nbkey*
-! :nb[key] {key} Pass the {key} to the Vim Controller for processing
-!
-! When a hot-key has been installed with the specialKeys command, this command
-! can be used to generate a hotkey messages to the Vim Controller. The events
-! newDotAndMark, keyCommand and keyAtPos are generated (in this order).
-
-
- ==============================================================================
---- 839,854 ----
- signs.
-
- *:nbkey*
-! :nb[key] {key} Pass the {key} to the Vim Controller for processing.
-! When a hot-key has been installed with the specialKeys
-! command, this command can be used to generate a hotkey
-! message to the Vim Controller.
-! This command can also be used to pass any text to the
-! Vim Controller. It is used by Pyclewn, for example,
-! to build the complete set of gdb commands as Vim user
-! commands.
-! The events newDotAndMark, keyCommand and keyAtPos are
-! generated (in this order).
-
-
- ==============================================================================
-*** ../vim-7.3.345/src/ex_docmd.c 2011-09-30 18:35:49.000000000 +0200
---- src/ex_docmd.c 2011-10-20 21:50:06.000000000 +0200
-***************
-*** 8205,8210 ****
---- 8205,8216 ----
- {
- ui_delay(msec - done > 1000L ? 1000L : msec - done, TRUE);
- ui_breakcheck();
-+ #ifdef FEAT_NETBEANS_INTG
-+ /* Process the netbeans messages that may have been received in the
-+ * call to ui_breakcheck() when the GUI is in use. This may occur when
-+ * running a test case. */
-+ netbeans_parse_messages();
-+ #endif
- }
- }
-
-*** ../vim-7.3.345/src/netbeans.c 2011-04-11 21:35:03.000000000 +0200
---- src/netbeans.c 2011-10-20 21:47:17.000000000 +0200
-***************
-*** 14,19 ****
---- 14,26 ----
- * which are *between* characters, whereas vim uses line number
- * and column number which are *on* characters.
- * See ":help netbeans-protocol" for explanation.
-+ *
-+ * The Netbeans messages are received and queued in the gui event loop, or in
-+ * the select loop when Vim runs in a terminal. These messages are processed
-+ * by netbeans_parse_messages() which is invoked in the idle loop when Vim is
-+ * waiting for user input. The function netbeans_parse_messages() is also
-+ * called from the ":sleep" command, to allow the execution of test cases that
-+ * may not invoke the idle loop.
- */
-
- #include "vim.h"
-*** ../vim-7.3.345/src/version.c 2011-10-20 21:57:43.000000000 +0200
---- src/version.c 2011-10-20 21:50:23.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 346,
- /**/
-
---
-From "know your smileys":
- ...---... SOS
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.347
-Fcc: 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.347
-Problem: When dropping text from a browser on Vim it receives HTML even
- though "html" is excluded from 'clipboard'. (Andrei Avk)
-Solution: Fix the condition for TARGET_HTML.
-Files: src/gui_gtk_x11.c
-
-
-*** ../vim-7.3.346/src/gui_gtk_x11.c 2011-08-10 17:44:41.000000000 +0200
---- src/gui_gtk_x11.c 2011-10-23 20:56:38.000000000 +0200
-***************
-*** 3081,3087 ****
-
- for (i = 0; i < (int)N_DND_TARGETS; ++i)
- {
-! if (!clip_html && selection_targets[i].info == TARGET_HTML)
- n_targets--;
- else
- targets[j++] = dnd_targets[i];
---- 3081,3087 ----
-
- for (i = 0; i < (int)N_DND_TARGETS; ++i)
- {
-! if (!clip_html && dnd_targets[i].info == TARGET_HTML)
- n_targets--;
- else
- targets[j++] = dnd_targets[i];
-*** ../vim-7.3.346/src/version.c 2011-10-20 21:58:20.000000000 +0200
---- src/version.c 2011-10-26 11:35:23.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 347,
- /**/
-
---
-I AM THANKFUL...
-...for a lawn that needs mowing, windows that need cleaning
-and gutters that need fixing because it means I have a home.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.348
-Fcc: 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.348
-Problem: "call range(1, 947948399)" causes a crash. (ZyX)
-Solution: Avoid a loop in the out of memory message.
-Files: src/misc2.c
-
-
-*** ../vim-7.3.347/src/misc2.c 2011-08-19 22:28:58.000000000 +0200
---- src/misc2.c 2011-10-26 11:17:26.000000000 +0200
-***************
-*** 1012,1019 ****
- {
- /* Don't hide this message */
- emsg_silent = 0;
-! EMSGN(_("E342: Out of memory! (allocating %lu bytes)"), size);
- did_outofmem_msg = TRUE;
- }
- }
-
---- 1012,1023 ----
- {
- /* Don't hide this message */
- emsg_silent = 0;
-!
-! /* Must come first to avoid coming back here when printing the error
-! * message fails, e.g. when setting v:errmsg. */
- did_outofmem_msg = TRUE;
-+
-+ EMSGN(_("E342: Out of memory! (allocating %lu bytes)"), size);
- }
- }
-
-*** ../vim-7.3.347/src/version.c 2011-10-26 11:36:21.000000000 +0200
---- src/version.c 2011-10-26 11:38:33.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 348,
- /**/
-
---
-A fool learns from his mistakes, a wise man from someone else's.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.349
-Fcc: 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.349
-Problem: When running out of memory during startup trying to open a
- swapfile will loop forever.
-Solution: Let findswapname() set dirp to NULL if out of memory.
-Files: src/memline.c
-
-
-*** ../vim-7.3.348/src/memline.c 2011-06-13 01:07:22.000000000 +0200
---- src/memline.c 2011-10-26 11:26:06.000000000 +0200
-***************
-*** 621,626 ****
---- 621,628 ----
- break;
- fname = findswapname(buf, &dirp, mfp->mf_fname);
- /* alloc's fname */
-+ if (dirp == NULL) /* out of memory */
-+ break;
- if (fname == NULL) /* no file name found for this dir */
- continue;
-
-***************
-*** 744,749 ****
---- 746,753 ----
- * and creating it, another Vim creates the file. In that case the
- * creation will fail and we will use another directory. */
- fname = findswapname(buf, &dirp, NULL); /* allocates fname */
-+ if (dirp == NULL)
-+ break; /* out of memory */
- if (fname == NULL)
- continue;
- if (mf_open_file(mfp, fname) == OK) /* consumes fname! */
-***************
-*** 4114,4119 ****
---- 4118,4124 ----
- *
- * Several names are tried to find one that does not exist
- * Returns the name in allocated memory or NULL.
-+ * When out of memory "dirp" is set to NULL.
- *
- * Note: If BASENAMELEN is not correct, you will get error messages for
- * not being able to open the swap or undo file
-***************
-*** 4157,4163 ****
- * First allocate some memory to put the directory name in.
- */
- dir_name = alloc((unsigned)STRLEN(*dirp) + 1);
-! if (dir_name != NULL)
- (void)copy_option_part(dirp, dir_name, 31000, ",");
-
- /*
---- 4162,4170 ----
- * First allocate some memory to put the directory name in.
- */
- dir_name = alloc((unsigned)STRLEN(*dirp) + 1);
-! if (dir_name == NULL)
-! *dirp = NULL;
-! else
- (void)copy_option_part(dirp, dir_name, 31000, ",");
-
- /*
-*** ../vim-7.3.348/src/version.c 2011-10-26 11:40:56.000000000 +0200
---- src/version.c 2011-10-26 11:43:05.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 349,
- /**/
-
---
-I AM THANKFUL...
-...for all the complaining I hear about the government
-because it means we have freedom of speech.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.350
-Fcc: 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.350
-Problem: Block of code after ":lua << EOF" may not work. (Paul Isambert)
-Solution: Recognize the ":lua" command, skip to EOF.
-Files: src/eval.c
-
-
-*** ../vim-7.3.349/src/eval.c 2011-09-30 18:35:49.000000000 +0200
---- src/eval.c 2011-10-26 13:12:06.000000000 +0200
-***************
-*** 20899,20904 ****
---- 20899,20906 ----
- && (!ASCII_ISALPHA(p[2]) || p[2] == 'r'))
- || (p[0] == 't' && p[1] == 'c'
- && (!ASCII_ISALPHA(p[2]) || p[2] == 'l'))
-+ || (p[0] == 'l' && p[1] == 'u' && p[2] == 'a'
-+ && !ASCII_ISALPHA(p[3]))
- || (p[0] == 'r' && p[1] == 'u' && p[2] == 'b'
- && (!ASCII_ISALPHA(p[3]) || p[3] == 'y'))
- || (p[0] == 'm' && p[1] == 'z'
-*** ../vim-7.3.349/src/version.c 2011-10-26 11:44:15.000000000 +0200
---- src/version.c 2011-10-26 13:13:21.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 350,
- /**/
-
---
-From "know your smileys":
- :-| :-| Deja' vu!
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.351
-Fcc: 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.351
-Problem: Text formatting uses start of insert position when it should not.
- (Peter Wagenaar)
-Solution: Do not use Insstart when intentionally formatting.
-Files: src/edit.c
-
-
-*** ../vim-7.3.350/src/edit.c 2011-09-21 18:23:02.000000000 +0200
---- src/edit.c 2011-10-26 16:58:21.000000000 +0200
-***************
-*** 6078,6083 ****
---- 6078,6084 ----
- * Stop at first entered white when 'formatoptions' has 'v'
- */
- while ((!fo_ins_blank && !has_format_option(FO_INS_VI))
-+ || (flags & INSCHAR_FORMAT)
- || curwin->w_cursor.lnum != Insstart.lnum
- || curwin->w_cursor.col >= Insstart.col)
- {
-*** ../vim-7.3.350/src/version.c 2011-10-26 13:19:23.000000000 +0200
---- src/version.c 2011-10-26 17:03:37.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 351,
- /**/
-
---
-From "know your smileys":
- :-* A big kiss!
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.352
-Fcc: 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.352
-Problem: When completing methods dict functions and script-local functions
- get in the way.
-Solution: Sort function names starting with "<" to the end. (Yasuhiro
- Matsumoto)
-Files: src/ex_getln.c
-
-
-*** ../vim-7.3.351/src/ex_getln.c 2011-09-30 17:46:14.000000000 +0200
---- src/ex_getln.c 2011-10-26 21:37:53.000000000 +0200
-***************
-*** 121,126 ****
---- 121,134 ----
- static int ex_window __ARGS((void));
- #endif
-
-+ #if defined(FEAT_CMDL_COMPL) || defined(PROTO)
-+ static int
-+ #ifdef __BORLANDC__
-+ _RTLENTRYF
-+ #endif
-+ sort_func_compare __ARGS((const void *s1, const void *s2));
-+ #endif
-+
- /*
- * getcmdline() - accept a command line starting with firstc.
- *
-***************
-*** 3286,3291 ****
---- 3294,3317 ----
- return check_abbr(c, ccline.cmdbuff, ccline.cmdpos, 0);
- }
-
-+ #if defined(FEAT_CMDL_COMPL) || defined(PROTO)
-+ static int
-+ #ifdef __BORLANDC__
-+ _RTLENTRYF
-+ #endif
-+ sort_func_compare(s1, s2)
-+ const void *s1;
-+ const void *s2;
-+ {
-+ char_u *p1 = *(char_u **)s1;
-+ char_u *p2 = *(char_u **)s2;
-+
-+ if (*p1 != '<' && *p2 == '<') return -1;
-+ if (*p1 == '<' && *p2 != '<') return 1;
-+ return STRCMP(p1, p2);
-+ }
-+ #endif
-+
- /*
- * Return FAIL if this is not an appropriate context in which to do
- * completion of anything, return OK if it is (even if there are no matches).
-***************
-*** 4735,4741 ****
-
- /* Sort the results. Keep menu's in the specified order. */
- if (xp->xp_context != EXPAND_MENUNAMES && xp->xp_context != EXPAND_MENUS)
-! sort_strings(*file, *num_file);
-
- #ifdef FEAT_CMDL_COMPL
- /* Reset the variables used for special highlight names expansion, so that
---- 4761,4776 ----
-
- /* Sort the results. Keep menu's in the specified order. */
- if (xp->xp_context != EXPAND_MENUNAMES && xp->xp_context != EXPAND_MENUS)
-! {
-! if (xp->xp_context == EXPAND_EXPRESSION
-! || xp->xp_context == EXPAND_FUNCTIONS
-! || xp->xp_context == EXPAND_USER_FUNC)
-! /* <SNR> functions should be sorted to the end. */
-! qsort((void *)*file, (size_t)*num_file, sizeof(char_u *),
-! sort_func_compare);
-! else
-! sort_strings(*file, *num_file);
-! }
-
- #ifdef FEAT_CMDL_COMPL
- /* Reset the variables used for special highlight names expansion, so that
-*** ../vim-7.3.351/src/version.c 2011-10-26 17:04:23.000000000 +0200
---- src/version.c 2011-10-26 21:49:53.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 352,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-94. Now admit it... How many of you have made "modem noises" into
- the phone just to see if it was possible? :-)
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.353
-Fcc: 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.353 (after 7.3.343)
-Problem: Missing part of the urxvt patch.
-Solution: Add the change in term.c
-Files: src/term.c
-
-
-*** ../vim-7.3.352/src/term.c 2011-09-14 14:43:21.000000000 +0200
---- src/term.c 2011-10-26 23:48:01.000000000 +0200
-***************
-*** 4008,4014 ****
- }
-
- #ifdef FEAT_TERMRESPONSE
-! if (key_name[0] == NUL)
- {
- /* Check for xterm version string: "<Esc>[>{x};{vers};{y}c". Also
- * eat other possible responses to t_RV, rxvt returns
---- 4008,4016 ----
- }
-
- #ifdef FEAT_TERMRESPONSE
-! if (key_name[0] == NUL
-! /* URXVT mouse uses <ESC>[#;#;#M, but we are matching <ESC>[ */
-! || key_name[0] == KS_URXVT_MOUSE)
- {
- /* Check for xterm version string: "<Esc>[>{x};{vers};{y}c". Also
- * eat other possible responses to t_RV, rxvt returns
-***************
-*** 4047,4053 ****
- if (tp[1 + (tp[0] != CSI)] == '>' && j == 2)
- {
- /* if xterm version >= 95 use mouse dragging */
-! if (extra >= 95)
- set_option_value((char_u *)"ttym", 0L,
- (char_u *)"xterm2", 0);
- /* if xterm version >= 141 try to get termcap codes */
---- 4049,4055 ----
- if (tp[1 + (tp[0] != CSI)] == '>' && j == 2)
- {
- /* if xterm version >= 95 use mouse dragging */
-! if (extra >= 95 && ttym_flags != TTYM_URXVT)
- set_option_value((char_u *)"ttym", 0L,
- (char_u *)"xterm2", 0);
- /* if xterm version >= 141 try to get termcap codes */
-***************
-*** 4141,4146 ****
---- 4143,4151 ----
- # ifdef FEAT_MOUSE_PTERM
- || key_name[0] == (int)KS_PTERM_MOUSE
- # endif
-+ # ifdef FEAT_MOUSE_URXVT
-+ || key_name[0] == (int)KS_URXVT_MOUSE
-+ # endif
- )
- {
- is_click = is_drag = FALSE;
-***************
-*** 4219,4225 ****
---- 4224,4292 ----
- else
- break;
- }
-+ }
-+
-+ # ifdef FEAT_MOUSE_URXVT
-+ if (key_name[0] == (int)KS_URXVT_MOUSE)
-+ {
-+ for (;;)
-+ {
-+ /* URXVT 1015 mouse reporting mode:
-+ * Almost identical to xterm mouse mode, except the values
-+ * are decimal instead of bytes.
-+ *
-+ * \033[%d;%d;%dM
-+ * ^-- row
-+ * ^----- column
-+ * ^-------- code
-+ */
-+ p = tp + slen;
-+
-+ mouse_code = getdigits(&p);
-+ if (*p++ != ';')
-+ return -1;
-+
-+ mouse_col = getdigits(&p) - 1;
-+ if (*p++ != ';')
-+ return -1;
-+
-+ mouse_row = getdigits(&p) - 1;
-+ if (*p++ != 'M')
-+ return -1;
-+
-+ slen += (int)(p - (tp + slen));
-+
-+ /* skip this one if next one has same code (like xterm
-+ * case) */
-+ j = termcodes[idx].len;
-+ if (STRNCMP(tp, tp + slen, (size_t)j) == 0) {
-+ /* check if the command is complete by looking for the
-+ * M */
-+ int slen2;
-+ int cmd_complete = 0;
-+ for (slen2 = slen; slen2 < len; slen2++) {
-+ if (tp[slen2] == 'M') {
-+ cmd_complete = 1;
-+ break;
-+ }
-+ }
-+ p += j;
-+ if (cmd_complete && getdigits(&p) == mouse_code) {
-+ slen += j; /* skip the \033[ */
-+ continue;
-+ }
-+ }
-+ break;
-+ }
-+ }
-+ # endif
-
-+ if (key_name[0] == (int)KS_MOUSE
-+ #ifdef FEAT_MOUSE_URXVT
-+ || key_name[0] == (int)KS_URXVT_MOUSE
-+ #endif
-+ )
-+ {
- # if !defined(MSWIN) && !defined(MSDOS)
- /*
- * Handle mouse events.
-*** ../vim-7.3.352/src/version.c 2011-10-26 22:02:10.000000000 +0200
---- src/version.c 2011-10-26 23:43:26.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 353,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-99. The hum of a cooling fan and the click of keys is comforting to you.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.354
-Fcc: 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.354
-Problem: ":set backspace+=eol" doesn't work when 'backspace' has a
- backwards compatible value of 2.
-Solution: Convert the number to a string. (Hirohito Higashi)
-Files: src/option.c
-
-
-*** ../vim-7.3.353/src/option.c 2011-10-12 16:57:07.000000000 +0200
---- src/option.c 2011-11-30 11:11:15.000000000 +0100
-***************
-*** 4567,4572 ****
---- 4567,4597 ----
- arg = errbuf;
- }
- /*
-+ * Convert 'backspace' number to string, for
-+ * adding, prepending and removing string.
-+ */
-+ else if (varp == (char_u *)&p_bs
-+ && VIM_ISDIGIT(**(char_u **)varp))
-+ {
-+ i = getdigits((char_u **)varp);
-+ switch (i)
-+ {
-+ case 0:
-+ *(char_u **)varp = empty_option;
-+ break;
-+ case 1:
-+ *(char_u **)varp = vim_strsave(
-+ (char_u *)"indent,eol");
-+ break;
-+ case 2:
-+ *(char_u **)varp = vim_strsave(
-+ (char_u *)"indent,eol,start");
-+ break;
-+ }
-+ vim_free(oldval);
-+ oldval = *(char_u **)varp;
-+ }
-+ /*
- * Convert 'whichwrap' number to string, for
- * backwards compatibility with Vim 3.0.
- * Misuse errbuf[] for the resulting string.
-*** ../vim-7.3.353/src/version.c 2011-10-26 23:48:17.000000000 +0200
---- src/version.c 2011-11-30 11:14:44.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 354,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-206. You religiously respond immediately to e-mail, while ignoring
- your growing pile of snail mail.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.355
-Fcc: 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.355
-Problem: GTK warnings when using netrw.vim. (Ivan Krasilnikov)
-Solution: Do not remove the beval event handler twice.
-Files: src/option.c
-
-
-*** ../vim-7.3.354/src/option.c 2011-11-30 11:15:40.000000000 +0100
---- src/option.c 2011-11-30 11:11:15.000000000 +0100
-***************
-*** 7796,7804 ****
- #ifdef FEAT_BEVAL
- else if ((int *)varp == &p_beval)
- {
-! if (p_beval == TRUE)
- gui_mch_enable_beval_area(balloonEval);
-! else
- gui_mch_disable_beval_area(balloonEval);
- }
- #endif
---- 7796,7804 ----
- #ifdef FEAT_BEVAL
- else if ((int *)varp == &p_beval)
- {
-! if (p_beval && !old_value)
- gui_mch_enable_beval_area(balloonEval);
-! else if (!p_beval && old_value)
- gui_mch_disable_beval_area(balloonEval);
- }
- #endif
-*** ../vim-7.3.354/src/version.c 2011-11-30 11:15:40.000000000 +0100
---- src/version.c 2011-11-30 11:30:55.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 355,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-209. Your house stinks because you haven't cleaned it in a 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.356
-Fcc: 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.356
-Problem: Using "o" with 'cindent' set may freeze Vim. (lolilolicon)
-Solution: Skip over {} correctly. (Hari G)
-Files: src/misc1.c
-
-
-*** ../vim-7.3.355/src/misc1.c 2011-10-04 18:03:43.000000000 +0200
---- src/misc1.c 2011-11-30 12:56:55.000000000 +0100
-***************
-*** 6127,6133 ****
-
- /*
- * Set w_cursor.col to the column number of the last unmatched ')' or '{' in
-! * line "l".
- */
- static int
- find_last_paren(l, start, end)
---- 6127,6133 ----
-
- /*
- * Set w_cursor.col to the column number of the last unmatched ')' or '{' in
-! * line "l". "l" must point to the start of the line.
- */
- static int
- find_last_paren(l, start, end)
-***************
-*** 6140,6146 ****
-
- curwin->w_cursor.col = 0; /* default is start of line */
-
-! for (i = 0; l[i]; i++)
- {
- i = (int)(cin_skipcomment(l + i) - l); /* ignore parens in comments */
- i = (int)(skip_string(l + i) - l); /* ignore parens in quotes */
---- 6140,6146 ----
-
- curwin->w_cursor.col = 0; /* default is start of line */
-
-! for (i = 0; l[i] != NUL; i++)
- {
- i = (int)(cin_skipcomment(l + i) - l); /* ignore parens in comments */
- i = (int)(skip_string(l + i) - l); /* ignore parens in quotes */
-***************
-*** 7953,7958 ****
---- 7953,7959 ----
- * If we're at the end of a block, skip to the start of
- * that block.
- */
-+ l = ml_get_curline();
- if (find_last_paren(l, '{', '}')
- && (trypos = find_start_brace(ind_maxcomment))
- != NULL) /* XXX */
-*** ../vim-7.3.355/src/version.c 2011-11-30 11:31:25.000000000 +0100
---- src/version.c 2011-11-30 13:02:52.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 356,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-213. Your kids start referring to you as "that guy in front of the monitor."
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.357
-Fcc: 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.357
-Problem: Compiler warning in MS-Windows console build.
-Solution: Adjust return type of PrintHookProc(). (Mike Williams)
-Files: src/os_mswin.c
-
-
-*** ../vim-7.3.356/src/os_mswin.c 2011-09-21 20:09:38.000000000 +0200
---- src/os_mswin.c 2011-11-30 13:41:13.000000000 +0100
-***************
-*** 1869,1875 ****
-
- #ifndef FEAT_GUI
-
-! static UINT CALLBACK
- PrintHookProc(
- HWND hDlg, // handle to dialog box
- UINT uiMsg, // message identifier
---- 1869,1875 ----
-
- #ifndef FEAT_GUI
-
-! static UINT_PTR CALLBACK
- PrintHookProc(
- HWND hDlg, // handle to dialog box
- UINT uiMsg, // message identifier
-*** ../vim-7.3.356/src/version.c 2011-11-30 13:03:24.000000000 +0100
---- src/version.c 2011-11-30 13:41:55.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 357,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-215. Your mouse-clicking forearm rivals Popeye's.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.358
-Fcc: 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.358 (after 7.3.353)
-Problem: Mouse support doesn't work properly.
-Solution: Add HMT_URXVT. (lilydjwg, James McCoy)
-Files: src/term.c
-
-
-*** ../vim-7.3.357/src/term.c 2011-10-26 23:48:17.000000000 +0200
---- src/term.c 2011-11-30 14:42:22.000000000 +0100
-***************
-*** 1996,2001 ****
---- 1996,2002 ----
- # define HMT_DEC 4
- # define HMT_JSBTERM 8
- # define HMT_PTERM 16
-+ # define HMT_URXVT 32
- static int has_mouse_termcode = 0;
- # endif
-
-***************
-*** 2031,2036 ****
---- 2032,2042 ----
- has_mouse_termcode |= HMT_PTERM;
- else
- # endif
-+ # ifdef FEAT_MOUSE_URXVT
-+ if (n == KS_URXVT_MOUSE)
-+ has_mouse_termcode |= HMT_URXVT;
-+ else
-+ # endif
- has_mouse_termcode |= HMT_NORMAL;
- # endif
- }
-***************
-*** 2068,2073 ****
---- 2074,2084 ----
- has_mouse_termcode &= ~HMT_PTERM;
- else
- # endif
-+ # ifdef FEAT_MOUSE_URXVT
-+ if (n == KS_URXVT_MOUSE)
-+ has_mouse_termcode &= ~HMT_URXVT;
-+ else
-+ # endif
- has_mouse_termcode &= ~HMT_NORMAL;
- # endif
- }
-*** ../vim-7.3.357/src/version.c 2011-11-30 13:42:40.000000000 +0100
---- src/version.c 2011-11-30 14:45:06.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 358,
- /**/
-
---
-I noticed my daughter's Disney-net password on a sticky note:
-"MickeyMinnieGoofyPluto". I asked her why it was so long.
-"Because they say it has to have at least four characters."
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.359
-Fcc: 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.359
-Problem: Command line completion shows dict functions.
-Solution: Skip dict functions for completion. (Yasuhiro Matsumoto)
-Files: src/eval.c
-
-
-*** ../vim-7.3.358/src/eval.c 2011-10-26 13:19:23.000000000 +0200
---- src/eval.c 2011-11-30 14:53:38.000000000 +0100
-***************
-*** 875,881 ****
-
- #ifdef EBCDIC
- /*
-! * Sort the function table, to enable binary sort.
- */
- sortFunctions();
- #endif
---- 875,881 ----
-
- #ifdef EBCDIC
- /*
-! * Sort the function table, to enable binary search.
- */
- sortFunctions();
- #endif
-***************
-*** 21737,21742 ****
---- 21737,21745 ----
- ++hi;
- fp = HI2UF(hi);
-
-+ if (fp->uf_flags & FC_DICT)
-+ return NULL; /* don't show dict functions */
-+
- if (STRLEN(fp->uf_name) + 4 >= IOSIZE)
- return fp->uf_name; /* prevents overflow */
-
-*** ../vim-7.3.358/src/version.c 2011-11-30 14:47:12.000000000 +0100
---- src/version.c 2011-11-30 14:56:57.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 359,
- /**/
-
---
-'Psychologist' -- Someone who looks at everyone else when
-an attractive woman enters the room.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.360
-Fcc: 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.360
-Problem: Interrupting the load of an autoload function may cause a crash.
-Solution: Do not use the hashitem when not valid. (Yukihiro Nakadaira)
-Files: src/eval.c
-
-
-*** ../vim-7.3.359/src/eval.c 2011-11-30 14:57:26.000000000 +0100
---- src/eval.c 2011-11-30 15:06:53.000000000 +0100
-***************
-*** 19589,19597 ****
- * worked find the variable again. Don't auto-load a script if it was
- * loaded already, otherwise it would be loaded every time when
- * checking if a function name is a Funcref variable. */
-! if (ht == &globvarht && !writing
-! && script_autoload(varname, FALSE) && !aborting())
- hi = hash_find(ht, varname);
- if (HASHITEM_EMPTY(hi))
- return NULL;
- }
---- 19589,19602 ----
- * worked find the variable again. Don't auto-load a script if it was
- * loaded already, otherwise it would be loaded every time when
- * checking if a function name is a Funcref variable. */
-! if (ht == &globvarht && !writing)
-! {
-! /* Note: script_autoload() may make "hi" invalid. It must either
-! * be obtained again or not used. */
-! if (!script_autoload(varname, FALSE) || aborting())
-! return NULL;
- hi = hash_find(ht, varname);
-+ }
- if (HASHITEM_EMPTY(hi))
- return NULL;
- }
-*** ../vim-7.3.359/src/version.c 2011-11-30 14:57:26.000000000 +0100
---- src/version.c 2011-11-30 15:17:28.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 360,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-217. Your sex life has drastically improved...so what if it's only cyber-sex!
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.361
-Fcc: 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.361
-Problem: Accessing memory after it is freed when EXITFREE is defined.
-Solution: Don't access curwin when firstwin is NULL. (Dominique Pelle)
-Files: src/buffer.c
-
-*** ../vim-7.3.360/src/buffer.c 2011-09-14 17:50:05.000000000 +0200
---- src/buffer.c 2011-11-30 15:38:00.000000000 +0100
-***************
-*** 567,574 ****
- diff_buf_delete(buf); /* Can't use 'diff' for unloaded buffer. */
- #endif
- #ifdef FEAT_SYN_HL
-! if (curwin->w_buffer == buf)
-! reset_synblock(curwin); /* remove any ownsyntax */
- #endif
-
- #ifdef FEAT_FOLDING
---- 567,575 ----
- diff_buf_delete(buf); /* Can't use 'diff' for unloaded buffer. */
- #endif
- #ifdef FEAT_SYN_HL
-! /* Remove any ownsyntax, unless exiting. */
-! if (firstwin != NULL && curwin->w_buffer == buf)
-! reset_synblock(curwin);
- #endif
-
- #ifdef FEAT_FOLDING
-*** ../vim-7.3.360/src/version.c 2011-11-30 15:19:25.000000000 +0100
---- src/version.c 2011-11-30 15:40:22.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 361,
- /**/
-
-
---
-From the classified section of a city newspaper:
-Dog for sale: eats anything and is fond of children.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.362
-Fcc: 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.362
-Problem: ml_get error when using ":g" with folded lines.
-Solution: Adjust the line number for changed_lines(). (Christian Brabandt)
-Files: src/ex_cmds.c
-
-
-*** ../vim-7.3.361/src/ex_cmds.c 2011-10-20 18:17:38.000000000 +0200
---- src/ex_cmds.c 2011-11-30 16:58:34.000000000 +0100
-***************
-*** 820,826 ****
- curwin->w_cursor.lnum = dest + (line2 - line1) + 1;
-
- if (line1 < dest)
-! changed_lines(line1, 0, dest + num_lines + 1, 0L);
- else
- changed_lines(dest + 1, 0, line1 + num_lines, 0L);
-
---- 820,832 ----
- curwin->w_cursor.lnum = dest + (line2 - line1) + 1;
-
- if (line1 < dest)
-! {
-! dest += num_lines + 1;
-! last_line = curbuf->b_ml.ml_line_count;
-! if (dest > last_line + 1)
-! dest = last_line + 1;
-! changed_lines(line1, 0, dest, 0L);
-! }
- else
- changed_lines(dest + 1, 0, line1 + num_lines, 0L);
-
-*** ../vim-7.3.361/src/version.c 2011-11-30 15:40:51.000000000 +0100
---- src/version.c 2011-11-30 17:01:07.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 362,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-218. Your spouse hands you a gift wrapped magnet with your PC's name
- on it and you accuse him or her of genocide.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.363
-Fcc: 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.363
-Problem: C indenting is wrong after #endif followed by a semicolon.
-Solution: Add special handling for a semicolon in a line by itself. (Lech
- Lorens)
-Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
-
-
-*** ../vim-7.3.362/src/misc1.c 2011-11-30 13:03:24.000000000 +0100
---- src/misc1.c 2011-11-30 17:10:59.000000000 +0100
-***************
-*** 8143,8148 ****
---- 8143,8171 ----
- break;
-
- /*
-+ * Find a line only has a semicolon that belongs to a previous
-+ * line ending in '}', e.g. before an #endif. Don't increase
-+ * indent then.
-+ */
-+ if (*(look = skipwhite(l)) == ';' && cin_nocode(look + 1))
-+ {
-+ pos_T curpos_save = curwin->w_cursor;
-+
-+ while (curwin->w_cursor.lnum > 1)
-+ {
-+ look = ml_get(--curwin->w_cursor.lnum);
-+ if (!(cin_nocode(look) || cin_ispreproc_cont(
-+ &look, &curwin->w_cursor.lnum)))
-+ break;
-+ }
-+ if (curwin->w_cursor.lnum > 0
-+ && cin_ends_in(look, (char_u *)"}", NULL))
-+ break;
-+
-+ curwin->w_cursor = curpos_save;
-+ }
-+
-+ /*
- * If the PREVIOUS line is a function declaration, the current
- * line (and the ones that follow) needs to be indented as
- * parameters.
-*** ../vim-7.3.362/src/testdir/test3.in 2011-10-04 18:03:43.000000000 +0200
---- src/testdir/test3.in 2011-11-30 17:05:20.000000000 +0100
-***************
-*** 1454,1459 ****
---- 1454,1469 ----
- printf("This line used to be indented incorrectly.\n");
- }
-
-+ int foo[]
-+ #ifdef BAR
-+
-+ = { 1, 2, 3,
-+ 4, 5, 6 }
-+
-+ #endif
-+ ;
-+ int baz;
-+
- void func3(void)
- {
- int tab[] = {
-*** ../vim-7.3.362/src/testdir/test3.ok 2011-10-04 18:03:43.000000000 +0200
---- src/testdir/test3.ok 2011-11-30 17:05:20.000000000 +0100
-***************
-*** 1307,1312 ****
---- 1307,1322 ----
- printf("This line used to be indented incorrectly.\n");
- }
-
-+ int foo[]
-+ #ifdef BAR
-+
-+ = { 1, 2, 3,
-+ 4, 5, 6 }
-+
-+ #endif
-+ ;
-+ int baz;
-+
- void func3(void)
- {
- int tab[] = {
-*** ../vim-7.3.362/src/version.c 2011-11-30 17:01:55.000000000 +0100
---- src/version.c 2011-11-30 17:06:57.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 363,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-220. Your wife asks for sex and you tell her where to find you on IRC.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.364
-Fcc: 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.364 (after 7.3.353)
-Problem: Can't compile on HP-UX. (John Marriott)
-Solution: Only use TTYM_URXVT when it is defined.
-Files: src/term.c
-
-
-*** ../vim-7.3.363/src/term.c 2011-11-30 14:47:12.000000000 +0100
---- src/term.c 2011-12-01 20:53:57.000000000 +0100
-***************
-*** 4060,4066 ****
- if (tp[1 + (tp[0] != CSI)] == '>' && j == 2)
- {
- /* if xterm version >= 95 use mouse dragging */
-! if (extra >= 95 && ttym_flags != TTYM_URXVT)
- set_option_value((char_u *)"ttym", 0L,
- (char_u *)"xterm2", 0);
- /* if xterm version >= 141 try to get termcap codes */
---- 4060,4070 ----
- if (tp[1 + (tp[0] != CSI)] == '>' && j == 2)
- {
- /* if xterm version >= 95 use mouse dragging */
-! if (extra >= 95
-! # ifdef TTYM_URXVT
-! && ttym_flags != TTYM_URXVT
-! # endif
-! )
- set_option_value((char_u *)"ttym", 0L,
- (char_u *)"xterm2", 0);
- /* if xterm version >= 141 try to get termcap codes */
-*** ../vim-7.3.363/src/version.c 2011-11-30 17:20:18.000000000 +0100
---- src/version.c 2011-12-01 20:56:55.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 364,
- /**/
-
---
-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/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.365
-Fcc: 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.365
-Problem: Crash when using a large Unicode character in a file that has
- syntax highlighting. (ngollan)
-Solution: Check for going past the end of the utf tables. (Dominique Pelle)
-Files: src/mbyte.c
-
-
-*** ../vim-7.3.364/src/mbyte.c 2011-08-10 13:21:30.000000000 +0200
---- src/mbyte.c 2011-12-08 15:09:13.000000000 +0100
-***************
-*** 2764,2782 ****
- int tableSize;
- {
- int start, mid, end; /* indices into table */
-
- start = 0;
-! end = tableSize / sizeof(convertStruct);
- while (start < end)
- {
- /* need to search further */
-! mid = (end + start) /2;
- if (table[mid].rangeEnd < a)
- start = mid + 1;
- else
- end = mid;
- }
-! if (table[start].rangeStart <= a && a <= table[start].rangeEnd
- && (a - table[start].rangeStart) % table[start].step == 0)
- return (a + table[start].offset);
- else
---- 2764,2785 ----
- int tableSize;
- {
- int start, mid, end; /* indices into table */
-+ int entries = tableSize / sizeof(convertStruct);
-
- start = 0;
-! end = entries;
- while (start < end)
- {
- /* need to search further */
-! mid = (end + start) / 2;
- if (table[mid].rangeEnd < a)
- start = mid + 1;
- else
- end = mid;
- }
-! if (start < entries
-! && table[start].rangeStart <= a
-! && a <= table[start].rangeEnd
- && (a - table[start].rangeStart) % table[start].step == 0)
- return (a + table[start].offset);
- else
-***************
-*** 2791,2797 ****
- utf_fold(a)
- int a;
- {
-! return utf_convert(a, foldCase, sizeof(foldCase));
- }
-
- static convertStruct toLower[] =
---- 2794,2800 ----
- utf_fold(a)
- int a;
- {
-! return utf_convert(a, foldCase, (int)sizeof(foldCase));
- }
-
- static convertStruct toLower[] =
-***************
-*** 3119,3125 ****
- return TOUPPER_LOC(a);
-
- /* For any other characters use the above mapping table. */
-! return utf_convert(a, toUpper, sizeof(toUpper));
- }
-
- int
---- 3122,3128 ----
- return TOUPPER_LOC(a);
-
- /* For any other characters use the above mapping table. */
-! return utf_convert(a, toUpper, (int)sizeof(toUpper));
- }
-
- int
-***************
-*** 3152,3158 ****
- return TOLOWER_LOC(a);
-
- /* For any other characters use the above mapping table. */
-! return utf_convert(a, toLower, sizeof(toLower));
- }
-
- int
---- 3155,3161 ----
- return TOLOWER_LOC(a);
-
- /* For any other characters use the above mapping table. */
-! return utf_convert(a, toLower, (int)sizeof(toLower));
- }
-
- int
-*** ../vim-7.3.364/src/version.c 2011-12-01 20:59:16.000000000 +0100
---- src/version.c 2011-12-08 15:07:53.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 365,
- /**/
-
---
-Hear about the guy who played a blank tape at full blast?
-The mime next door went nuts.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.366
-Fcc: 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.366
-Problem: A tags file with an extremely long name causes errors.
-Solution: Ignore tags that are too long. (Arno Renevier)
-Files: src/tag.c
-
-
-*** ../vim-7.3.365/src/tag.c 2011-10-12 19:53:31.000000000 +0200
---- src/tag.c 2011-12-08 13:32:51.000000000 +0100
-***************
-*** 1906,1917 ****
- tagp.tagname = lbuf;
- #ifdef FEAT_TAG_ANYWHITE
- tagp.tagname_end = skiptowhite(lbuf);
-! if (*tagp.tagname_end == NUL) /* corrupted tag line */
- #else
- tagp.tagname_end = vim_strchr(lbuf, TAB);
-! if (tagp.tagname_end == NULL) /* corrupted tag line */
- #endif
- {
- line_error = TRUE;
- break;
- }
---- 1906,1931 ----
- tagp.tagname = lbuf;
- #ifdef FEAT_TAG_ANYWHITE
- tagp.tagname_end = skiptowhite(lbuf);
-! if (*tagp.tagname_end == NUL)
- #else
- tagp.tagname_end = vim_strchr(lbuf, TAB);
-! if (tagp.tagname_end == NULL)
- #endif
- {
-+ if (vim_strchr(lbuf, NL) == NULL)
-+ {
-+ /* Truncated line, ignore it. Has been reported for
-+ * Mozilla JS with extremely long names. */
-+ if (p_verbose >= 5)
-+ {
-+ verbose_enter();
-+ MSG(_("Ignoring long line in tags file"));
-+ verbose_leave();
-+ }
-+ continue;
-+ }
-+
-+ /* Corrupted tag line. */
- line_error = TRUE;
- break;
- }
-*** ../vim-7.3.365/src/version.c 2011-12-08 15:09:46.000000000 +0100
---- src/version.c 2011-12-08 15:11:10.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 366,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-246. You use up your free 100 hours in less than a 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.367
-Fcc: 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.367
-Problem: :wundo and :rundo use a wrong checksum.
-Solution: Include the last line when computing the hash. (Christian Brabandt)
-Files: src/undo.c
-
-
-*** ../vim-7.3.366/src/undo.c 2011-01-22 21:25:07.000000000 +0100
---- src/undo.c 2011-12-08 14:19:03.000000000 +0100
-***************
-*** 719,725 ****
- char_u *p;
-
- sha256_start(&ctx);
-! for (lnum = 1; lnum < curbuf->b_ml.ml_line_count; ++lnum)
- {
- p = ml_get(lnum);
- sha256_update(&ctx, p, (UINT32_T)(STRLEN(p) + 1));
---- 719,725 ----
- char_u *p;
-
- sha256_start(&ctx);
-! for (lnum = 1; lnum <= curbuf->b_ml.ml_line_count; ++lnum)
- {
- p = ml_get(lnum);
- sha256_update(&ctx, p, (UINT32_T)(STRLEN(p) + 1));
-*** ../vim-7.3.366/src/version.c 2011-12-08 15:12:08.000000000 +0100
---- src/version.c 2011-12-08 15:13:32.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 367,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-247. You use www.switchboard.com instead of dialing 411 and 555-12-12
- for directory assistance.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.368
-Fcc: 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.368
-Problem: Gcc complains about redefining _FORTIFY_SOURCE.
-Solution: Undefine it before redefining it.
-Files: src/Makefile, src/configure.in, src/auto/configure
-
-
-*** ../vim-7.3.367/src/Makefile 2011-10-20 16:35:25.000000000 +0200
---- src/Makefile 2011-12-08 15:16:13.000000000 +0100
-***************
-*** 561,568 ****
- #CFLAGS = -g -O2 '-DSTARTUPTIME="vimstartup"' -fno-strength-reduce -Wall -Wmissing-prototypes
-
- # Use this with GCC to check for mistakes, unused arguments, etc.
-! #CFLAGS = -g -Wall -Wextra -Wmissing-prototypes -Wunreachable-code -D_FORTIFY_SOURCE=1
-! #CFLAGS = -g -O2 -Wall -Wextra -Wmissing-prototypes -D_FORTIFY_SOURCE=1 -DU_DEBUG
- #PYTHON_CFLAGS_EXTRA = -Wno-missing-field-initializers
- #MZSCHEME_CFLAGS_EXTRA = -Wno-unreachable-code -Wno-unused-parameter
-
---- 561,568 ----
- #CFLAGS = -g -O2 '-DSTARTUPTIME="vimstartup"' -fno-strength-reduce -Wall -Wmissing-prototypes
-
- # Use this with GCC to check for mistakes, unused arguments, etc.
-! #CFLAGS = -g -Wall -Wextra -Wmissing-prototypes -Wunreachable-code -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
-! #CFLAGS = -g -O2 -Wall -Wextra -Wmissing-prototypes -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -DU_DEBUG
- #PYTHON_CFLAGS_EXTRA = -Wno-missing-field-initializers
- #MZSCHEME_CFLAGS_EXTRA = -Wno-unreachable-code -Wno-unused-parameter
-
-*** ../vim-7.3.367/src/configure.in 2011-09-02 12:27:20.000000000 +0200
---- src/configure.in 2011-12-01 20:23:22.000000000 +0100
-***************
-*** 3584,3592 ****
- dnl -D_FORTIFY_SOURCE=2 crashes Vim on strcpy(buf, "000") when buf is
- dnl declared as char x[1] but actually longer. Introduced in gcc 4.0.
- dnl Also remove duplicate _FORTIFY_SOURCE arguments.
- AC_MSG_CHECKING(whether we need -D_FORTIFY_SOURCE=1)
- if test "$gccmajor" -gt "3"; then
-! CFLAGS=`echo "$CFLAGS" | sed -e 's/-Wp,-D_FORTIFY_SOURCE=.//g' -e 's/-D_FORTIFY_SOURCE=.//g' -e 's/$/ -D_FORTIFY_SOURCE=1/'`
- AC_MSG_RESULT(yes)
- else
- AC_MSG_RESULT(no)
---- 3584,3593 ----
- dnl -D_FORTIFY_SOURCE=2 crashes Vim on strcpy(buf, "000") when buf is
- dnl declared as char x[1] but actually longer. Introduced in gcc 4.0.
- dnl Also remove duplicate _FORTIFY_SOURCE arguments.
-+ dnl And undefine it first to avoid a warning.
- AC_MSG_CHECKING(whether we need -D_FORTIFY_SOURCE=1)
- if test "$gccmajor" -gt "3"; then
-! CFLAGS=`echo "$CFLAGS" | sed -e 's/-Wp,-D_FORTIFY_SOURCE=.//g' -e 's/-D_FORTIFY_SOURCE=.//g' -e 's/$/ -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1/'`
- AC_MSG_RESULT(yes)
- else
- AC_MSG_RESULT(no)
-*** ../vim-7.3.367/src/auto/configure 2011-09-02 12:27:20.000000000 +0200
---- src/auto/configure 2011-12-01 20:24:02.000000000 +0100
-***************
-*** 12483,12492 ****
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
- $as_echo "no" >&6; }
- fi
-! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need -D_FORTIFY_SOURCE=1" >&5
- $as_echo_n "checking whether we need -D_FORTIFY_SOURCE=1... " >&6; }
- if test "$gccmajor" -gt "3"; then
-! CFLAGS=`echo "$CFLAGS" | sed -e 's/-Wp,-D_FORTIFY_SOURCE=.//g' -e 's/-D_FORTIFY_SOURCE=.//g' -e 's/$/ -D_FORTIFY_SOURCE=1/'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
- $as_echo "yes" >&6; }
- else
---- 12483,12492 ----
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
- $as_echo "no" >&6; }
- fi
-! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need -D_FORTIFY_SOURCE=1" >&5
- $as_echo_n "checking whether we need -D_FORTIFY_SOURCE=1... " >&6; }
- if test "$gccmajor" -gt "3"; then
-! CFLAGS=`echo "$CFLAGS" | sed -e 's/-Wp,-D_FORTIFY_SOURCE=.//g' -e 's/-D_FORTIFY_SOURCE=.//g' -e 's/$/ -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1/'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
- $as_echo "yes" >&6; }
- else
-*** ../vim-7.3.367/src/version.c 2011-12-08 15:14:04.000000000 +0100
---- src/version.c 2011-12-08 15:15:13.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 368,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-248. You sign your letters with your e-mail address instead of your name.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.369
-Fcc: 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.369
-Problem: When compiled with Gnome get an error message when using --help.
-Solution: Don't fork. (Ivan Krasilnikov)
-Files: src/main.c
-
-
-*** ../vim-7.3.368/src/main.c 2011-10-04 16:43:49.000000000 +0200
---- src/main.c 2011-12-01 20:27:11.000000000 +0100
-***************
-*** 3294,3300 ****
---- 3294,3303 ----
- #ifdef FEAT_GUI_GNOME
- /* Gnome gives extra messages for --help if we continue, but not for -h. */
- if (gui.starting)
-+ {
- mch_msg("\n");
-+ gui.dofork = FALSE;
-+ }
- else
- #endif
- mch_exit(0);
-*** ../vim-7.3.368/src/version.c 2011-12-08 15:17:28.000000000 +0100
---- src/version.c 2011-12-08 15:57:03.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 369,
- /**/
-
---
-Vi is clearly superior to emacs, since "vi" has only two characters
-(and two keystrokes), while "emacs" has five. (Randy C. Ford)
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.370
-Fcc: 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.370
-Problem: Compiler warns for unused variable in Lua interface.
-Solution: Remove the variable.
-Files: src/if_lua.c
-
-
-*** ../vim-7.3.369/src/if_lua.c 2011-09-21 17:15:34.000000000 +0200
---- src/if_lua.c 2011-12-01 20:19:17.000000000 +0100
-***************
-*** 1044,1056 ****
- static int
- luaV_open(lua_State *L)
- {
-- luaV_Buffer *b;
- char_u *s = NULL;
- #ifdef HAVE_SANDBOX
- luaV_checksandbox(L);
- #endif
- if (lua_isstring(L, 1)) s = (char_u *) lua_tostring(L, 1);
-! b = luaV_pushbuffer(L, buflist_new(s, NULL, 1L, BLN_LISTED));
- return 1;
- }
-
---- 1044,1055 ----
- static int
- luaV_open(lua_State *L)
- {
- char_u *s = NULL;
- #ifdef HAVE_SANDBOX
- luaV_checksandbox(L);
- #endif
- if (lua_isstring(L, 1)) s = (char_u *) lua_tostring(L, 1);
-! luaV_pushbuffer(L, buflist_new(s, NULL, 1L, BLN_LISTED));
- return 1;
- }
-
-*** ../vim-7.3.369/src/version.c 2011-12-08 15:57:54.000000000 +0100
---- src/version.c 2011-12-08 15:59:35.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 370,
- /**/
-
---
-Emacs is a nice OS - but it lacks a good text editor.
-That's why I am using Vim. --Anonymous
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.371
-Fcc: 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.371
-Problem: Crash in autocomplete. (Greg Weber)
-Solution: Check not going over allocated buffer size.
-Files: src/misc2.c
-
-
-*** ../vim-7.3.370/src/misc2.c 2011-10-26 11:40:56.000000000 +0200
---- src/misc2.c 2011-12-08 17:49:23.000000000 +0100
-***************
-*** 4293,4298 ****
---- 4293,4300 ----
- static int ff_path_in_stoplist __ARGS((char_u *, int, char_u **));
- #endif
-
-+ static char_u e_pathtoolong[] = N_("E854: path too long for completion");
-+
- #if 0
- /*
- * if someone likes findfirst/findnext, here are the functions
-***************
-*** 4589,4594 ****
---- 4591,4601 ----
- len = 0;
- while (*wc_part != NUL)
- {
-+ if (len + 5 >= MAXPATHL)
-+ {
-+ EMSG(_(e_pathtoolong));
-+ break;
-+ }
- if (STRNCMP(wc_part, "**", 2) == 0)
- {
- ff_expand_buffer[len++] = *wc_part++;
-***************
-*** 4634,4639 ****
---- 4641,4652 ----
- }
-
- /* create an absolute path */
-+ if (STRLEN(search_ctx->ffsc_start_dir)
-+ + STRLEN(search_ctx->ffsc_fix_path) + 3 >= MAXPATHL)
-+ {
-+ EMSG(_(e_pathtoolong));
-+ goto error_return;
-+ }
- STRCPY(ff_expand_buffer, search_ctx->ffsc_start_dir);
- add_pathsep(ff_expand_buffer);
- STRCAT(ff_expand_buffer, search_ctx->ffsc_fix_path);
-*** ../vim-7.3.370/src/version.c 2011-12-08 16:00:12.000000000 +0100
---- src/version.c 2011-12-08 17:46:41.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 371,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-253. You wait for a slow loading web page before going to the toilet.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.372
-Fcc: 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.372
-Problem: When using a command line mapping to <Up> with file name
- completion to go one directory up, 'wildchar' is inserted.
- (Yasuhiro Matsumoto)
-Solution: Set the KeyTyped flag.
-Files: src/ex_getln.c
-
-
-*** ../vim-7.3.371/src/ex_getln.c 2011-10-26 22:02:10.000000000 +0200
---- src/ex_getln.c 2011-12-08 18:40:49.000000000 +0100
-***************
-*** 645,651 ****
---- 645,655 ----
- }
- else if (ccline.cmdpos > i)
- cmdline_del(i);
-+
-+ /* Now complete in the new directory. Set KeyTyped in case the
-+ * Up key came from a mapping. */
- c = p_wc;
-+ KeyTyped = TRUE;
- }
- }
-
-*** ../vim-7.3.371/src/version.c 2011-12-08 17:49:31.000000000 +0100
---- src/version.c 2011-12-08 18:42:54.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 372,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-255. You work for a newspaper and your editor asks you to write an
- article about Internet addiction...in the "first person."
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.373
-Fcc: 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.373 (after 7.3.366)
-Problem: A tags file with an extremely long name may cause an infinite loop.
-Solution: When encountering a long name switch to linear search.
-Files: src/tag.c
-
-
-*** ../vim-7.3.372/src/tag.c 2011-12-08 15:12:08.000000000 +0100
---- src/tag.c 2011-12-14 14:13:28.000000000 +0100
-***************
-*** 1854,1860 ****
-
- if (state == TS_BINARY && orgpat.regmatch.rm_ic && !sortic)
- {
-! /* binary search won't work for ignoring case, use linear
- * search. */
- linear = TRUE;
- state = TS_LINEAR;
---- 1854,1860 ----
-
- if (state == TS_BINARY && orgpat.regmatch.rm_ic && !sortic)
- {
-! /* Binary search won't work for ignoring case, use linear
- * search. */
- linear = TRUE;
- state = TS_LINEAR;
-***************
-*** 1922,1927 ****
---- 1922,1940 ----
- MSG(_("Ignoring long line in tags file"));
- verbose_leave();
- }
-+ #ifdef FEAT_TAG_BINS
-+ if (state != TS_LINEAR)
-+ {
-+ /* Avoid getting stuck. */
-+ linear = TRUE;
-+ state = TS_LINEAR;
-+ # ifdef HAVE_FSEEKO
-+ fseeko(fp, search_info.low_offset, SEEK_SET);
-+ # else
-+ fseek(fp, (long)search_info.low_offset, SEEK_SET);
-+ # endif
-+ }
-+ #endif
- continue;
- }
-
-*** ../vim-7.3.372/src/version.c 2011-12-08 18:44:47.000000000 +0100
---- src/version.c 2011-12-14 14:12:06.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 373,
- /**/
-
---
-ZOOT: I'm afraid our life must seem very dull and quiet compared to yours.
- We are but eightscore young blondes, all between sixteen and
- nineteen-and-a-half, cut off in this castle, with no one to protect us.
- Oooh. It is a lonely life ... bathing ... dressing ... undressing ...
- making exciting underwear....
- "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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.374
-Fcc: 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.374
-Problem: ++encoding does not work properly.
-Solution: Recognize ++encoding before ++enc. (Charles Cooper)
-Files: src/ex_docmd.c
-
-
-*** ../vim-7.3.373/src/ex_docmd.c 2011-10-20 21:58:20.000000000 +0200
---- src/ex_docmd.c 2011-12-14 14:46:05.000000000 +0100
-***************
-*** 4840,4851 ****
- #ifdef FEAT_MBYTE
- else if (STRNCMP(arg, "enc", 3) == 0)
- {
-! arg += 3;
-! pp = &eap->force_enc;
-! }
-! else if (STRNCMP(arg, "encoding", 8) == 0)
-! {
-! arg += 8;
- pp = &eap->force_enc;
- }
- else if (STRNCMP(arg, "bad", 3) == 0)
---- 4840,4849 ----
- #ifdef FEAT_MBYTE
- else if (STRNCMP(arg, "enc", 3) == 0)
- {
-! if (STRNCMP(arg, "encoding", 8) == 0)
-! arg += 8;
-! else
-! arg += 3;
- pp = &eap->force_enc;
- }
- else if (STRNCMP(arg, "bad", 3) == 0)
-*** ../vim-7.3.373/src/version.c 2011-12-14 14:15:12.000000000 +0100
---- src/version.c 2011-12-14 14:44:01.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 374,
- /**/
-
---
-Linux is just like a wigwam: no Windows, no Gates and an Apache inside.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.375
-Fcc: 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.375
-Problem: Duplicate return statement.
-Solution: Remove the superfluous one. (Dominique Pelle)
-Files: src/gui_mac.c
-
-
-*** ../vim-7.3.374/src/gui_mac.c 2011-06-19 01:14:22.000000000 +0200
---- src/gui_mac.c 2011-12-10 17:20:59.000000000 +0100
-***************
-*** 3216,3222 ****
- {
- /* TODO:
- * This proc is called when Normal is set to a value
-! * so what msut be done? I don't know
- */
- }
-
---- 3216,3222 ----
- {
- /* TODO:
- * This proc is called when Normal is set to a value
-! * so what must be done? I don't know
- */
- }
-
-***************
-*** 3303,3309 ****
- *x = bounds.left;
- *y = bounds.top;
- return OK;
-- return FAIL;
- }
-
- /*
---- 3303,3308 ----
-*** ../vim-7.3.374/src/version.c 2011-12-14 14:49:41.000000000 +0100
---- src/version.c 2011-12-14 15:06:01.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 375,
- /**/
-
---
-GALAHAD: No look, really, this isn't nescess ...
-PIGLET: We must examine you.
-GALAHAD: There's nothing wrong with ... that.
- "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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.376
-Fcc: 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.376
-Problem: Win32: Toolbar repainting does not work when the mouse pointer
- hovers over a button.
-Solution: Call DefWindowProc() when not handling an event. (Sergiu Dotenco)
-Files: src/gui_w32.c
-
-
-*** ../vim-7.3.375/src/gui_w32.c 2011-08-10 17:07:56.000000000 +0200
---- src/gui_w32.c 2011-12-14 15:14:48.000000000 +0100
-***************
-*** 1101,1107 ****
- return MyWindowProc(hwnd, uMsg, wParam, lParam);
- }
-
-! return 1;
- }
-
- /*
---- 1101,1107 ----
- return MyWindowProc(hwnd, uMsg, wParam, lParam);
- }
-
-! return DefWindowProc(hwnd, uMsg, wParam, lParam);
- }
-
- /*
-*** ../vim-7.3.375/src/version.c 2011-12-14 15:07:11.000000000 +0100
---- src/version.c 2011-12-14 15:23:10.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 376,
- /**/
-
---
- GALAHAD hurries to the door and pushes through it. As he leaves the room
- we CUT TO the reverse to show that he is now in a room full of bathing
- and romping GIRLIES, all innocent, wide-eyed and beautiful. They smile
- enchantingly at him as he tries to keep walking without being diverted by
- the lovely sights assaulting his eyeballs.
- "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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.377
-Fcc: 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.377
-Problem: No support for bitwise AND, OR, XOR and invert.
-Solution: Add and(), or(), invert() and xor() functions.
-Files: src/eval.c, src/testdir/test49.in, src/testdir/test65.in,
- src/testdir/test65.ok, runtime/doc/eval.txt
-
-
-*** ../vim-7.3.376/src/eval.c 2011-11-30 15:19:25.000000000 +0100
---- src/eval.c 2011-12-11 13:49:31.000000000 +0100
-***************
-*** 474,479 ****
---- 474,480 ----
- static void f_acos __ARGS((typval_T *argvars, typval_T *rettv));
- #endif
- static void f_add __ARGS((typval_T *argvars, typval_T *rettv));
-+ static void f_and __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_append __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_argc __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_argidx __ARGS((typval_T *argvars, typval_T *rettv));
-***************
-*** 602,607 ****
---- 603,609 ----
- static void f_inputsave __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_inputsecret __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_insert __ARGS((typval_T *argvars, typval_T *rettv));
-+ static void f_invert __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_isdirectory __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_islocked __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_items __ARGS((typval_T *argvars, typval_T *rettv));
-***************
-*** 640,645 ****
---- 642,648 ----
- #endif
- static void f_nextnonblank __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_nr2char __ARGS((typval_T *argvars, typval_T *rettv));
-+ static void f_or __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_pathshorten __ARGS((typval_T *argvars, typval_T *rettv));
- #ifdef FEAT_FLOAT
- static void f_pow __ARGS((typval_T *argvars, typval_T *rettv));
-***************
-*** 751,756 ****
---- 754,760 ----
- static void f_winsaveview __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_winwidth __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_writefile __ARGS((typval_T *argvars, typval_T *rettv));
-+ static void f_xor __ARGS((typval_T *argvars, typval_T *rettv));
-
- static int list2fpos __ARGS((typval_T *arg, pos_T *posp, int *fnump));
- static pos_T *var2fpos __ARGS((typval_T *varp, int dollar_lnum, int *fnum));
-***************
-*** 7715,7720 ****
---- 7719,7725 ----
- {"acos", 1, 1, f_acos}, /* WJMc */
- #endif
- {"add", 2, 2, f_add},
-+ {"and", 2, 2, f_and},
- {"append", 2, 2, f_append},
- {"argc", 0, 0, f_argc},
- {"argidx", 0, 0, f_argidx},
-***************
-*** 7850,7855 ****
---- 7855,7861 ----
- {"inputsave", 0, 0, f_inputsave},
- {"inputsecret", 1, 2, f_inputsecret},
- {"insert", 2, 3, f_insert},
-+ {"invert", 1, 1, f_invert},
- {"isdirectory", 1, 1, f_isdirectory},
- {"islocked", 1, 1, f_islocked},
- {"items", 1, 1, f_items},
-***************
-*** 7888,7893 ****
---- 7894,7900 ----
- #endif
- {"nextnonblank", 1, 1, f_nextnonblank},
- {"nr2char", 1, 1, f_nr2char},
-+ {"or", 2, 2, f_or},
- {"pathshorten", 1, 1, f_pathshorten},
- #ifdef FEAT_FLOAT
- {"pow", 2, 2, f_pow},
-***************
-*** 7999,8004 ****
---- 8006,8012 ----
- {"winsaveview", 0, 0, f_winsaveview},
- {"winwidth", 1, 1, f_winwidth},
- {"writefile", 2, 3, f_writefile},
-+ {"xor", 2, 2, f_xor},
- };
-
- #if defined(FEAT_CMDL_COMPL) || defined(PROTO)
-***************
-*** 8572,8577 ****
---- 8580,8597 ----
- }
-
- /*
-+ * "and(expr, expr)" function
-+ */
-+ static void
-+ f_and(argvars, rettv)
-+ typval_T *argvars;
-+ typval_T *rettv;
-+ {
-+ rettv->vval.v_number = get_tv_number_chk(&argvars[0], NULL)
-+ & get_tv_number_chk(&argvars[1], NULL);
-+ }
-+
-+ /*
- * "append(lnum, string/list)" function
- */
- static void
-***************
-*** 12958,12963 ****
---- 12978,12994 ----
- }
-
- /*
-+ * "invert(expr)" function
-+ */
-+ static void
-+ f_invert(argvars, rettv)
-+ typval_T *argvars;
-+ typval_T *rettv;
-+ {
-+ rettv->vval.v_number = ~get_tv_number_chk(&argvars[0], NULL);
-+ }
-+
-+ /*
- * "isdirectory()" function
- */
- static void
-***************
-*** 14108,14113 ****
---- 14139,14156 ----
- }
-
- /*
-+ * "or(expr, expr)" function
-+ */
-+ static void
-+ f_or(argvars, rettv)
-+ typval_T *argvars;
-+ typval_T *rettv;
-+ {
-+ rettv->vval.v_number = get_tv_number_chk(&argvars[0], NULL)
-+ | get_tv_number_chk(&argvars[1], NULL);
-+ }
-+
-+ /*
- * "pathshorten()" function
- */
- static void
-***************
-*** 18394,18399 ****
---- 18437,18455 ----
- }
-
- /*
-+ * "xor(expr, expr)" function
-+ */
-+ static void
-+ f_xor(argvars, rettv)
-+ typval_T *argvars;
-+ typval_T *rettv;
-+ {
-+ rettv->vval.v_number = get_tv_number_chk(&argvars[0], NULL)
-+ ^ get_tv_number_chk(&argvars[1], NULL);
-+ }
-+
-+
-+ /*
- * Translate a String variable into a position.
- * Returns NULL when there is an error.
- */
-*** ../vim-7.3.376/src/testdir/test65.in 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test65.in 2011-12-11 13:55:06.000000000 +0100
-***************
-*** 1,4 ****
-! Test for floating point.
-
- STARTTEST
- :so small.vim
---- 1,4 ----
-! Test for floating point and logical operators.
-
- STARTTEST
- :so small.vim
-***************
-*** 72,77 ****
---- 72,94 ----
- :$put ='float2nr'
- :$put =float2nr(123.456)
- :$put =float2nr(-123.456)
-+ :$put ='AND'
-+ :$put =and(127, 127)
-+ :$put =and(127, 16)
-+ :$put =and(127, 128)
-+ :$put ='OR'
-+ :$put =or(16, 7)
-+ :$put =or(8, 7)
-+ :$put =or(0, 123)
-+ :$put ='XOR'
-+ :$put =xor(127, 127)
-+ :$put =xor(127, 16)
-+ :$put =xor(127, 128)
-+ :$put ='invert'
-+ :$put =and(invert(127), 65535)
-+ :$put =and(invert(16), 65535)
-+ :$put =and(invert(128), 65535)
-+ :$put =invert(1.0)
- :/^Results/,$wq! test.out
- ENDTEST
-
-*** ../vim-7.3.376/src/testdir/test65.ok 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test65.ok 2011-12-11 13:55:30.000000000 +0100
-***************
-*** 54,56 ****
---- 54,73 ----
- float2nr
- 123
- -123
-+ AND
-+ 127
-+ 16
-+ 0
-+ OR
-+ 23
-+ 15
-+ 123
-+ XOR
-+ 0
-+ 111
-+ 255
-+ invert
-+ 65408
-+ 65519
-+ 65407
-+ 0
-*** ../vim-7.3.376/runtime/doc/eval.txt 2011-06-19 02:55:32.000000000 +0200
---- runtime/doc/eval.txt 2011-12-14 15:28:23.000000000 +0100
-***************
-*** 798,808 ****
- For |Lists| only "+" is possible and then both expr6 must be a list. The
- result is a new list with the two lists Concatenated.
-
-! expr7 * expr7 .. number multiplication *expr-star*
-! expr7 / expr7 .. number division *expr-/*
-! expr7 % expr7 .. number modulo *expr-%*
-
- For all, except ".", Strings are converted to Numbers.
-
- Note the difference between "+" and ".":
- "123" + "456" = 579
---- 800,811 ----
- For |Lists| only "+" is possible and then both expr6 must be a list. The
- result is a new list with the two lists Concatenated.
-
-! expr7 * expr7 .. Number multiplication *expr-star*
-! expr7 / expr7 .. Number division *expr-/*
-! expr7 % expr7 .. Number modulo *expr-%*
-
- For all, except ".", Strings are converted to Numbers.
-+ For bitwise operators see |and()|, |or()| and |xor()|.
-
- Note the difference between "+" and ".":
- "123" + "456" = 579
-***************
-*** 1679,1684 ****
---- 1688,1694 ----
- abs( {expr}) Float or Number absolute value of {expr}
- acos( {expr}) Float arc cosine of {expr}
- add( {list}, {item}) List append {item} to |List| {list}
-+ and( {expr}, {expr}) Number bitwise AND
- append( {lnum}, {string}) Number append {string} below line {lnum}
- append( {lnum}, {list}) Number append lines {list} below line {lnum}
- argc() Number number of files in the argument list
-***************
-*** 1817,1822 ****
---- 1827,1833 ----
- inputsave() Number save and clear typeahead
- inputsecret( {prompt} [, {text}]) String like input() but hiding the text
- insert( {list}, {item} [, {idx}]) List insert {item} in {list} [before {idx}]
-+ invert( {expr}) Number bitwise invert
- isdirectory( {directory}) Number TRUE if {directory} is a directory
- islocked( {expr}) Number TRUE if {expr} is locked
- items( {dict}) List key-value pairs in {dict}
-***************
-*** 1856,1861 ****
---- 1868,1874 ----
- mzeval( {expr}) any evaluate |MzScheme| expression
- nextnonblank( {lnum}) Number line nr of non-blank line >= {lnum}
- nr2char( {expr}) String single char with ASCII value {expr}
-+ or( {expr}, {expr}) Number bitwise OR
- pathshorten( {expr}) String shorten directory names in a path
- pow( {x}, {y}) Float {x} to the power of {y}
- prevnonblank( {lnum}) Number line nr of non-blank line <= {lnum}
-***************
-*** 1978,1983 ****
---- 1992,1998 ----
- winwidth( {nr}) Number width of window {nr}
- writefile( {list}, {fname} [, {binary}])
- Number write list of lines to file {fname}
-+ xor( {expr}, {expr}) Number bitwise XOR
-
- abs({expr}) *abs()*
- Return the absolute value of {expr}. When {expr} evaluates to
-***************
-*** 2017,2022 ****
---- 2032,2044 ----
- Use |insert()| to add an item at another position.
-
-
-+ and({expr}, {expr}) *and()*
-+ Bitwise AND on the two arguments. The arguments are converted
-+ to a number. A List, Dict or Float argument causes an error.
-+ Example: >
-+ :let flag = and(bits, 0x80)
-+
-+
- append({lnum}, {expr}) *append()*
- When {expr} is a |List|: Append each item of the |List| as a
- text line below line {lnum} in the current buffer.
-***************
-*** 3770,3775 ****
---- 3798,3808 ----
- Note that when {item} is a |List| it is inserted as a single
- item. Use |extend()| to concatenate |Lists|.
-
-+ invert({expr}) *invert()*
-+ Bitwise invert. The argument is converted to a number. A
-+ List, Dict or Float argument causes an error. Example: >
-+ :let bits = invert(bits)
-+
- isdirectory({directory}) *isdirectory()*
- The result is a Number, which is non-zero when a directory
- with the name {directory} exists. If {directory} doesn't
-***************
-*** 4334,4339 ****
---- 4368,4380 ----
- call setpos('.', save_cursor)
- < Also see |setpos()|.
-
-+ or({expr}, {expr}) *or()*
-+ Bitwise OR on the two arguments. The arguments are converted
-+ to a number. A List, Dict or Float argument causes an error.
-+ Example: >
-+ :let bits = or(bits, 0x80)
-+
-+
- pathshorten({expr}) *pathshorten()*
- Shorten directory names in the path {expr} and return the
- result. The tail, the file name, is kept as-is. The other
-***************
-*** 6097,6103 ****
- To copy a file byte for byte: >
- :let fl = readfile("foo", "b")
- :call writefile(fl, "foocopy", "b")
-! <
-
- *feature-list*
- There are three types of features:
---- 6149,6163 ----
- To copy a file byte for byte: >
- :let fl = readfile("foo", "b")
- :call writefile(fl, "foocopy", "b")
-!
-!
-! xor({expr}, {expr}) *xor()*
-! Bitwise XOR on the two arguments. The arguments are converted
-! to a number. A List, Dict or Float argument causes an error.
-! Example: >
-! :let bits = xor(bits, 0x80)
-!
-!
-
- *feature-list*
- There are three types of features:
-*** ../vim-7.3.376/src/version.c 2011-12-14 15:23:53.000000000 +0100
---- src/version.c 2011-12-14 15:28:39.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 377,
- /**/
-
---
-DINGO: Wicked wicked Zoot ... she is a bad person and she must pay the
- penalty. And here in Castle Anthrax, we have but one punishment
- ... you must tie her down on a bed ... and spank her. Come!
-GIRLS: A spanking! A spanking!
- "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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.378
-Fcc: 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.378
-Problem: When cross-compiling the check for uint32_t fails.
-Solution: Only give a warning message. (Maksim Melnikau)
-Files: src/configure.in, src/auto/configure
-
-
-*** ../vim-7.3.377/src/configure.in 2011-12-08 15:17:28.000000000 +0100
---- src/configure.in 2011-12-14 19:18:36.000000000 +0100
-***************
-*** 3283,3289 ****
- }],
- AC_MSG_RESULT(ok),
- AC_MSG_ERROR([WRONG! uint32_t not defined correctly.]),
-! AC_MSG_ERROR([could not compile program using uint32_t.]))
-
- dnl Check for memmove() before bcopy(), makes memmove() be used when both are
- dnl present, fixes problem with incompatibility between Solaris 2.4 and 2.5.
---- 3283,3289 ----
- }],
- AC_MSG_RESULT(ok),
- AC_MSG_ERROR([WRONG! uint32_t not defined correctly.]),
-! AC_MSG_WARN([cannot check uint32_t when cross-compiling.]))
-
- dnl Check for memmove() before bcopy(), makes memmove() be used when both are
- dnl present, fixes problem with incompatibility between Solaris 2.4 and 2.5.
-*** ../vim-7.3.377/src/auto/configure 2011-12-08 15:17:28.000000000 +0100
---- src/auto/configure 2011-12-14 19:20:55.000000000 +0100
-***************
-*** 11777,11783 ****
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking uint32_t is 32 bits" >&5
- $as_echo_n "checking uint32_t is 32 bits... " >&6; }
- if test "$cross_compiling" = yes; then :
-! as_fn_error "could not compile program using uint32_t." "$LINENO" 5
- else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h. */
---- 11777,11784 ----
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking uint32_t is 32 bits" >&5
- $as_echo_n "checking uint32_t is 32 bits... " >&6; }
- if test "$cross_compiling" = yes; then :
-! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check uint32_t when cross-compiling." >&5
-! $as_echo "$as_me: WARNING: cannot check uint32_t when cross-compiling." >&2;}
- else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h. */
-*** ../vim-7.3.377/src/version.c 2011-12-14 15:32:44.000000000 +0100
---- src/version.c 2011-12-14 19:21:08.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 378,
- /**/
-
---
- ### Hiroshima 45, Chernobyl 86, Windows 95 ###
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.379
-Fcc: 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.379
-Problem: C-indenting wrong for static enum.
-Solution: Skip over "static". (Lech Lorens)
-Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
-
-
-*** ../vim-7.3.378/src/misc1.c 2011-11-30 17:20:18.000000000 +0100
---- src/misc1.c 2011-12-14 19:37:48.000000000 +0100
-***************
-*** 5138,5143 ****
---- 5138,5146 ----
- if (STRNCMP(s, "typedef", 7) == 0 && !vim_isIDc(s[7]))
- s = cin_skipcomment(s + 7);
-
-+ if (STRNCMP(s, "static", 6) == 0 && !vim_isIDc(s[6]))
-+ s = cin_skipcomment(s + 6);
-+
- if (STRNCMP(s, "enum", 4) == 0 && !vim_isIDc(s[4]))
- return TRUE;
-
-*** ../vim-7.3.378/src/testdir/test3.in 2011-11-30 17:20:18.000000000 +0100
---- src/testdir/test3.in 2011-12-14 20:03:11.000000000 +0100
-***************
-*** 299,316 ****
-
- enum soppie
- {
-! yes = 0,
-! no,
-! maybe
- };
-
- typedef enum soppie
- {
-! yes = 0,
-! no,
-! maybe
- };
-
- {
- int a,
- b;
---- 299,323 ----
-
- enum soppie
- {
-! yes = 0,
-! no,
-! maybe
- };
-
- typedef enum soppie
- {
-! yes = 0,
-! no,
-! maybe
- };
-
-+ static enum
-+ {
-+ yes = 0,
-+ no,
-+ maybe
-+ } soppie;
-+
- {
- int a,
- b;
-*** ../vim-7.3.378/src/testdir/test3.ok 2011-11-30 17:20:18.000000000 +0100
---- src/testdir/test3.ok 2011-12-14 19:37:48.000000000 +0100
-***************
-*** 299,304 ****
---- 299,311 ----
- maybe
- };
-
-+ static enum
-+ {
-+ yes = 0,
-+ no,
-+ maybe
-+ } soppie;
-+
- {
- int a,
- b;
-*** ../vim-7.3.378/src/version.c 2011-12-14 19:22:29.000000000 +0100
---- src/version.c 2011-12-14 20:02:19.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 379,
- /**/
-
---
-You cannot propel yourself forward by patting yourself on the back.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.380
-Fcc: 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.380
-Problem: C-indenting wrong for a function header.
-Solution: Skip to the start paren. (Lech Lorens)
-Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
-
-
-*** ../vim-7.3.379/src/misc1.c 2011-12-14 20:05:17.000000000 +0100
---- src/misc1.c 2011-12-14 20:16:43.000000000 +0100
-***************
-*** 4943,4949 ****
- static int cin_islinecomment __ARGS((char_u *));
- static int cin_isterminated __ARGS((char_u *, int, int));
- static int cin_isinit __ARGS((void));
-! static int cin_isfuncdecl __ARGS((char_u **, linenr_T));
- static int cin_isif __ARGS((char_u *));
- static int cin_iselse __ARGS((char_u *));
- static int cin_isdo __ARGS((char_u *));
---- 4943,4949 ----
- static int cin_islinecomment __ARGS((char_u *));
- static int cin_isterminated __ARGS((char_u *, int, int));
- static int cin_isinit __ARGS((void));
-! static int cin_isfuncdecl __ARGS((char_u **, linenr_T, linenr_T, int, int));
- static int cin_isif __ARGS((char_u *));
- static int cin_iselse __ARGS((char_u *));
- static int cin_isdo __ARGS((char_u *));
-***************
-*** 5585,5605 ****
- * "sp" points to a string with the line. When looking at other lines it must
- * be restored to the line. When it's NULL fetch lines here.
- * "lnum" is where we start looking.
- */
- static int
-! cin_isfuncdecl(sp, first_lnum)
- char_u **sp;
- linenr_T first_lnum;
- {
- char_u *s;
- linenr_T lnum = first_lnum;
- int retval = FALSE;
-
- if (sp == NULL)
- s = ml_get(lnum);
- else
- s = *sp;
-
- /* Ignore line starting with #. */
- if (cin_ispreproc(s))
- return FALSE;
---- 5585,5621 ----
- * "sp" points to a string with the line. When looking at other lines it must
- * be restored to the line. When it's NULL fetch lines here.
- * "lnum" is where we start looking.
-+ * "min_lnum" is the line before which we will not be looking.
- */
- static int
-! cin_isfuncdecl(sp, first_lnum, min_lnum, ind_maxparen, ind_maxcomment)
- char_u **sp;
- linenr_T first_lnum;
-+ linenr_T min_lnum;
-+ int ind_maxparen;
-+ int ind_maxcomment;
- {
- char_u *s;
- linenr_T lnum = first_lnum;
- int retval = FALSE;
-+ pos_T *trypos;
-+ int just_started = TRUE;
-
- if (sp == NULL)
- s = ml_get(lnum);
- else
- s = *sp;
-
-+ if (find_last_paren(s, '(', ')')
-+ && (trypos = find_match_paren(ind_maxparen, ind_maxcomment)) != NULL)
-+ {
-+ lnum = trypos->lnum;
-+ if (lnum < min_lnum)
-+ return FALSE;
-+
-+ s = ml_get(lnum);
-+ }
-+
- /* Ignore line starting with #. */
- if (cin_ispreproc(s))
- return FALSE;
-***************
-*** 5650,5662 ****
- /* Require a comma at end of the line or a comma or ')' at the
- * start of next line. */
- s = skipwhite(s);
-! if (!comma && *s != ',' && *s != ')')
- break;
- }
- else if (cin_iscomment(s)) /* ignore comments */
- s = cin_skipcomment(s);
- else
- ++s;
- }
-
- done:
---- 5666,5682 ----
- /* Require a comma at end of the line or a comma or ')' at the
- * start of next line. */
- s = skipwhite(s);
-! if (!just_started && (!comma && *s != ',' && *s != ')'))
- break;
-+ just_started = FALSE;
- }
- else if (cin_iscomment(s)) /* ignore comments */
- s = cin_skipcomment(s);
- else
-+ {
- ++s;
-+ just_started = FALSE;
-+ }
- }
-
- done:
-***************
-*** 7158,7164 ****
- * (it's a variable declaration).
- */
- if (start_brace != BRACE_IN_COL0
-! || !cin_isfuncdecl(&l, curwin->w_cursor.lnum))
- {
- /* if the line is terminated with another ','
- * it is a continued variable initialization.
---- 7178,7185 ----
- * (it's a variable declaration).
- */
- if (start_brace != BRACE_IN_COL0
-! || !cin_isfuncdecl(&l, curwin->w_cursor.lnum,
-! 0, ind_maxparen, ind_maxcomment))
- {
- /* if the line is terminated with another ','
- * it is a continued variable initialization.
-***************
-*** 8019,8025 ****
- && vim_strchr(theline, '}') == NULL
- && !cin_ends_in(theline, (char_u *)":", NULL)
- && !cin_ends_in(theline, (char_u *)",", NULL)
-! && cin_isfuncdecl(NULL, cur_curpos.lnum + 1)
- && !cin_isterminated(theline, FALSE, TRUE))
- {
- amount = ind_func_type;
---- 8040,8048 ----
- && vim_strchr(theline, '}') == NULL
- && !cin_ends_in(theline, (char_u *)":", NULL)
- && !cin_ends_in(theline, (char_u *)",", NULL)
-! && cin_isfuncdecl(NULL, cur_curpos.lnum + 1,
-! cur_curpos.lnum + 1,
-! ind_maxparen, ind_maxcomment)
- && !cin_isterminated(theline, FALSE, TRUE))
- {
- amount = ind_func_type;
-***************
-*** 8125,8131 ****
- * If the line looks like a function declaration, and we're
- * not in a comment, put it the left margin.
- */
-! if (cin_isfuncdecl(NULL, cur_curpos.lnum)) /* XXX */
- break;
- l = ml_get_curline();
-
---- 8148,8155 ----
- * If the line looks like a function declaration, and we're
- * not in a comment, put it the left margin.
- */
-! if (cin_isfuncdecl(NULL, cur_curpos.lnum, 0,
-! ind_maxparen, ind_maxcomment)) /* XXX */
- break;
- l = ml_get_curline();
-
-***************
-*** 8173,8179 ****
- * line (and the ones that follow) needs to be indented as
- * parameters.
- */
-! if (cin_isfuncdecl(&l, curwin->w_cursor.lnum))
- {
- amount = ind_param;
- break;
---- 8197,8204 ----
- * line (and the ones that follow) needs to be indented as
- * parameters.
- */
-! if (cin_isfuncdecl(&l, curwin->w_cursor.lnum, 0,
-! ind_maxparen, ind_maxcomment))
- {
- amount = ind_param;
- break;
-*** ../vim-7.3.379/src/testdir/test3.in 2011-12-14 20:05:17.000000000 +0100
---- src/testdir/test3.in 2011-12-14 20:11:24.000000000 +0100
-***************
-*** 1429,1435 ****
-
- STARTTEST
- :set cino&
-! 2kdd=4][
- ENDTEST
-
- void func(void)
---- 1429,1435 ----
-
- STARTTEST
- :set cino&
-! 2kdd=7][
- ENDTEST
-
- void func(void)
-***************
-*** 1478,1484 ****
- 3, 4,
- 5, 6};
-
-! printf("Don't you dare indent this line incorrectly!\n);
- }
-
- STARTTEST
---- 1478,1506 ----
- 3, 4,
- 5, 6};
-
-! printf("Don't you dare indent this line incorrectly!\n");
-! }
-!
-! void
-! func4(a, b,
-! c)
-! int a;
-! int b;
-! int c;
-! {
-! }
-!
-! void
-! func5(
-! int a,
-! int b)
-! {
-! }
-!
-! void
-! func6(
-! int a)
-! {
- }
-
- STARTTEST
-*** ../vim-7.3.379/src/testdir/test3.ok 2011-12-14 20:05:17.000000000 +0100
---- src/testdir/test3.ok 2011-12-14 20:11:24.000000000 +0100
-***************
-*** 1331,1337 ****
- 3, 4,
- 5, 6};
-
-! printf("Don't you dare indent this line incorrectly!\n);
- }
-
-
---- 1331,1359 ----
- 3, 4,
- 5, 6};
-
-! printf("Don't you dare indent this line incorrectly!\n");
-! }
-!
-! void
-! func4(a, b,
-! c)
-! int a;
-! int b;
-! int c;
-! {
-! }
-!
-! void
-! func5(
-! int a,
-! int b)
-! {
-! }
-!
-! void
-! func6(
-! int a)
-! {
- }
-
-
-*** ../vim-7.3.379/src/version.c 2011-12-14 20:05:17.000000000 +0100
---- src/version.c 2011-12-14 20:20:50.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 380,
- /**/
-
---
-"Intelligence has much less practical application than you'd think."
- -- Scott Adams, Dilbert.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.381
-Fcc: 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.381
-Problem: Configure silently skips interfaces that won't work.
-Solution: Add the --enable-fail_if_missing argument. (Shlomi Fish)
-Files: src/Makefile, src/configure.in, src/auto/configure
-
-
-*** ../vim-7.3.380/src/Makefile 2011-12-08 15:17:28.000000000 +0100
---- src/Makefile 2011-12-14 20:49:26.000000000 +0100
-***************
-*** 389,394 ****
---- 389,399 ----
- #CONF_OPT_PLTHOME = --with-plthome=/usr/local/drscheme
- #CONF_OPT_PLTHOME = --with-plthome=/home/me/mz
-
-+ # Uncomment the next line to fail if one of the requested language interfaces
-+ # cannot be configured. Without this Vim will be build anyway, without
-+ # the failing interfaces.
-+ #CONF_OPT_FAIL = --enable-fail-if-missing
-+
- # PERL
- # Uncomment one of these when you want to include the Perl interface.
- # First one is for static linking, second one for dynamic loading.
-***************
-*** 1648,1654 ****
- CC="$(CC)" CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" \
- LDFLAGS="$(LDFLAGS)" $(CONF_SHELL) srcdir="$(srcdir)" \
- ./configure $(CONF_OPT_GUI) $(CONF_OPT_X) $(CONF_OPT_XSMP) \
-! $(CONF_OPT_DARWIN) $(CONF_OPT_PERL) $(CONF_OPT_PYTHON) $(CONF_OPT_PYTHON3) \
- $(CONF_OPT_TCL) $(CONF_OPT_RUBY) $(CONF_OPT_NLS) \
- $(CONF_OPT_CSCOPE) $(CONF_OPT_MULTIBYTE) $(CONF_OPT_INPUT) \
- $(CONF_OPT_OUTPUT) $(CONF_OPT_GPM) $(CONF_OPT_WORKSHOP) \
---- 1653,1660 ----
- CC="$(CC)" CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" \
- LDFLAGS="$(LDFLAGS)" $(CONF_SHELL) srcdir="$(srcdir)" \
- ./configure $(CONF_OPT_GUI) $(CONF_OPT_X) $(CONF_OPT_XSMP) \
-! $(CONF_OPT_DARWIN) $(CONF_OPT_FAIL) \
-! $(CONF_OPT_PERL) $(CONF_OPT_PYTHON) $(CONF_OPT_PYTHON3) \
- $(CONF_OPT_TCL) $(CONF_OPT_RUBY) $(CONF_OPT_NLS) \
- $(CONF_OPT_CSCOPE) $(CONF_OPT_MULTIBYTE) $(CONF_OPT_INPUT) \
- $(CONF_OPT_OUTPUT) $(CONF_OPT_GPM) $(CONF_OPT_WORKSHOP) \
-*** ../vim-7.3.380/src/configure.in 2011-12-14 19:22:29.000000000 +0100
---- src/configure.in 2011-12-14 20:46:36.000000000 +0100
-***************
-*** 28,33 ****
---- 28,43 ----
- AC_HEADER_STDC
- AC_HEADER_SYS_WAIT
-
-+ dnl Check for the flag that fails if stuff are missing.
-+
-+ AC_MSG_CHECKING(--enable-fail-if-missing argument)
-+ AC_ARG_ENABLE(fail_if_missing,
-+ [ --enable-fail-if-missing Fail if dependencies on additional features
-+ specified on the command line are missing.],
-+ [fail_if_missing="yes"],
-+ [fail_if_missing="no"])
-+ AC_MSG_RESULT($fail_if_missing)
-+
- dnl Set default value for CFLAGS if none is defined or it's empty
- if test -z "$CFLAGS"; then
- CFLAGS="-O"
-***************
-*** 491,496 ****
---- 501,509 ----
- LUA_CFLAGS="-DDYNAMIC_LUA_DLL=\\\"liblua${vi_cv_version_lua}.so$LUA_SONAME\\\" $LUA_CFLAGS"
- fi
- fi
-+ if test "$fail_if_missing" = "yes" -a -z "$LUA_SRC"; then
-+ AC_MSG_ERROR([could not configure lua])
-+ fi
- AC_SUBST(LUA_SRC)
- AC_SUBST(LUA_OBJ)
- AC_SUBST(LUA_PRO)
-***************
-*** 781,786 ****
---- 794,803 ----
- PERL_CFLAGS="-DDYNAMIC_PERL_DLL=\\\"$libperl\\\" $PERL_CFLAGS"
- fi
- fi
-+
-+ if test "$fail_if_missing" = "yes" -a "$perl_ok" != "yes"; then
-+ AC_MSG_ERROR([could not configure perl])
-+ fi
- fi
- AC_SUBST(shrpenv)
- AC_SUBST(PERL_SRC)
-***************
-*** 966,971 ****
---- 983,992 ----
- AC_MSG_RESULT(too old)
- fi
- fi
-+
-+ if test "$fail_if_missing" = "yes" -a "$python_ok" != "yes"; then
-+ AC_MSG_ERROR([could not configure python])
-+ fi
- fi
-
- AC_SUBST(PYTHON_CONFDIR)
-***************
-*** 1389,1394 ****
---- 1410,1418 ----
- AC_MSG_RESULT(too old; need Tcl version 8.0 or later)
- fi
- fi
-+ if test "$fail_if_missing" = "yes" -a -z "$TCL_SRC"; then
-+ AC_MSG_ERROR([could not configure Tcl])
-+ fi
- fi
- AC_SUBST(TCL_SRC)
- AC_SUBST(TCL_OBJ)
-***************
-*** 1469,1474 ****
---- 1493,1502 ----
- AC_MSG_RESULT(too old; need Ruby version 1.6.0 or later)
- fi
- fi
-+
-+ if test "$fail_if_missing" = "yes" -a -z "$RUBY_OBJ"; then
-+ AC_MSG_ERROR([could not configure Ruby])
-+ fi
- fi
- AC_SUBST(RUBY_SRC)
- AC_SUBST(RUBY_OBJ)
-*** ../vim-7.3.380/src/auto/configure 2011-12-14 19:22:29.000000000 +0100
---- src/auto/configure 2011-12-14 20:49:51.000000000 +0100
-***************
-*** 741,746 ****
---- 741,747 ----
- ac_subst_files=''
- ac_user_opts='
- enable_option_checking
-+ enable_fail_if_missing
- enable_darwin
- with_mac_arch
- with_developer_dir
-***************
-*** 1418,1423 ****
---- 1419,1426 ----
- --disable-option-checking ignore unrecognized --enable/--with options
- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
-+ --enable-fail-if-missing Fail if dependencies on additional features
-+ specified on the command line are missing.
- --disable-darwin Disable Darwin (Mac OS X) support.
- --disable-selinux Don't check for SELinux support.
- --disable-xsmp Disable XSMP session management
-***************
-*** 3949,3954 ****
---- 3952,3970 ----
- fi
-
-
-+
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking --enable-fail-if-missing argument" >&5
-+ $as_echo_n "checking --enable-fail-if-missing argument... " >&6; }
-+ # Check whether --enable-fail_if_missing was given.
-+ if test "${enable_fail_if_missing+set}" = set; then :
-+ enableval=$enable_fail_if_missing; fail_if_missing="yes"
-+ else
-+ fail_if_missing="no"
-+ fi
-+
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fail_if_missing" >&5
-+ $as_echo "$fail_if_missing" >&6; }
-+
- if test -z "$CFLAGS"; then
- CFLAGS="-O"
- test "$GCC" = yes && CFLAGS="-O2 -fno-strength-reduce -Wall"
-***************
-*** 4727,4732 ****
---- 4743,4751 ----
- LUA_CFLAGS="-DDYNAMIC_LUA_DLL=\\\"liblua${vi_cv_version_lua}.so$LUA_SONAME\\\" $LUA_CFLAGS"
- fi
- fi
-+ if test "$fail_if_missing" = "yes" -a -z "$LUA_SRC"; then
-+ as_fn_error "could not configure lua" "$LINENO" 5
-+ fi
-
-
-
-***************
-*** 5140,5145 ****
---- 5159,5168 ----
- PERL_CFLAGS="-DDYNAMIC_PERL_DLL=\\\"$libperl\\\" $PERL_CFLAGS"
- fi
- fi
-+
-+ if test "$fail_if_missing" = "yes" -a "$perl_ok" != "yes"; then
-+ as_fn_error "could not configure perl" "$LINENO" 5
-+ fi
- fi
-
-
-***************
-*** 5429,5434 ****
---- 5452,5461 ----
- $as_echo "too old" >&6; }
- fi
- fi
-+
-+ if test "$fail_if_missing" = "yes" -a "$python_ok" != "yes"; then
-+ as_fn_error "could not configure python" "$LINENO" 5
-+ fi
- fi
-
-
-***************
-*** 6216,6221 ****
---- 6243,6251 ----
- $as_echo "too old; need Tcl version 8.0 or later" >&6; }
- fi
- fi
-+ if test "$fail_if_missing" = "yes" -a -z "$TCL_SRC"; then
-+ as_fn_error "could not configure Tcl" "$LINENO" 5
-+ fi
- fi
-
-
-***************
-*** 6353,6358 ****
---- 6383,6392 ----
- $as_echo "too old; need Ruby version 1.6.0 or later" >&6; }
- fi
- fi
-+
-+ if test "$fail_if_missing" = "yes" -a -z "$RUBY_OBJ"; then
-+ as_fn_error "could not configure Ruby" "$LINENO" 5
-+ fi
- fi
-
-
-*** ../vim-7.3.380/src/version.c 2011-12-14 20:21:29.000000000 +0100
---- src/version.c 2011-12-14 20:50:42.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 381,
- /**/
-
---
-The psychic said, "God bless you." I said, "I didn't sneeze." She
-looked deep into my eyes and said, "You will, eventually." And, damn
-if she wasn't right. Two days later, I sneezed. --Ellen Degeneres
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.382
-Fcc: 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.382 (after 7.3.376)
-Problem: IME characters are inserted twice.
-Solution: Do not call DefWindowProc() if the event was handled. (Yasuhiro
- Matsumoto)
-Files: src/gui_w32.c
-
-
-*** ../vim-7.3.381/src/gui_w32.c 2011-12-14 15:23:53.000000000 +0100
---- src/gui_w32.c 2011-12-15 21:50:51.000000000 +0100
-***************
-*** 798,804 ****
- if (pt.y < rect.top)
- {
- show_tabline_popup_menu();
-! return 0;
- }
- }
- return MyWindowProc(hwnd, uMsg, wParam, lParam);
---- 798,804 ----
- if (pt.y < rect.top)
- {
- show_tabline_popup_menu();
-! return 0L;
- }
- }
- return MyWindowProc(hwnd, uMsg, wParam, lParam);
-***************
-*** 828,834 ****
---- 828,837 ----
-
- case WM_ENDSESSION:
- if (wParam) /* system only really goes down when wParam is TRUE */
-+ {
- _OnEndSession();
-+ return 0L;
-+ }
- break;
-
- case WM_CHAR:
-***************
-*** 866,872 ****
- * are received, mouse pointer remains hidden. */
- return MyWindowProc(hwnd, uMsg, wParam, lParam);
- #else
-! return 0;
- #endif
-
- case WM_SIZING: /* HANDLE_MSG doesn't seem to handle this one */
---- 869,875 ----
- * are received, mouse pointer remains hidden. */
- return MyWindowProc(hwnd, uMsg, wParam, lParam);
- #else
-! return 0L;
- #endif
-
- case WM_SIZING: /* HANDLE_MSG doesn't seem to handle this one */
-***************
-*** 874,880 ****
-
- case WM_MOUSEWHEEL:
- _OnMouseWheel(hwnd, HIWORD(wParam));
-! break;
-
- /* Notification for change in SystemParametersInfo() */
- case WM_SETTINGCHANGE:
---- 877,883 ----
-
- case WM_MOUSEWHEEL:
- _OnMouseWheel(hwnd, HIWORD(wParam));
-! return 0L;
-
- /* Notification for change in SystemParametersInfo() */
- case WM_SETTINGCHANGE:
-***************
-*** 987,999 ****
---- 990,1008 ----
- case TCN_SELCHANGE:
- if (gui_mch_showing_tabline()
- && ((LPNMHDR)lParam)->hwndFrom == s_tabhwnd)
-+ {
- send_tabline_event(TabCtrl_GetCurSel(s_tabhwnd) + 1);
-+ return 0L;
-+ }
- break;
-
- case NM_RCLICK:
- if (gui_mch_showing_tabline()
- && ((LPNMHDR)lParam)->hwndFrom == s_tabhwnd)
-+ {
- show_tabline_popup_menu();
-+ return 0L;
-+ }
- break;
- # endif
- default:
-***************
-*** 1037,1042 ****
---- 1046,1052 ----
- out_flush();
- did_menu_tip = TRUE;
- }
-+ return 0L;
- }
- break;
- #endif
-***************
-*** 1079,1096 ****
- case WM_IME_NOTIFY:
- if (!_OnImeNotify(hwnd, (DWORD)wParam, (DWORD)lParam))
- return MyWindowProc(hwnd, uMsg, wParam, lParam);
-! break;
- case WM_IME_COMPOSITION:
- if (!_OnImeComposition(hwnd, wParam, lParam))
- return MyWindowProc(hwnd, uMsg, wParam, lParam);
-! break;
- #endif
-
- default:
- if (uMsg == msh_msgmousewheel && msh_msgmousewheel != 0)
- { /* handle MSH_MOUSEWHEEL messages for Intellimouse */
- _OnMouseWheel(hwnd, HIWORD(wParam));
-! break;
- }
- #ifdef MSWIN_FIND_REPLACE
- else if (uMsg == s_findrep_msg && s_findrep_msg != 0)
---- 1089,1107 ----
- case WM_IME_NOTIFY:
- if (!_OnImeNotify(hwnd, (DWORD)wParam, (DWORD)lParam))
- return MyWindowProc(hwnd, uMsg, wParam, lParam);
-! return 1L;
-!
- case WM_IME_COMPOSITION:
- if (!_OnImeComposition(hwnd, wParam, lParam))
- return MyWindowProc(hwnd, uMsg, wParam, lParam);
-! return 1L;
- #endif
-
- default:
- if (uMsg == msh_msgmousewheel && msh_msgmousewheel != 0)
- { /* handle MSH_MOUSEWHEEL messages for Intellimouse */
- _OnMouseWheel(hwnd, HIWORD(wParam));
-! return 0L;
- }
- #ifdef MSWIN_FIND_REPLACE
- else if (uMsg == s_findrep_msg && s_findrep_msg != 0)
-*** ../vim-7.3.381/src/version.c 2011-12-14 20:51:19.000000000 +0100
---- src/version.c 2011-12-15 21:48:49.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 382,
- /**/
-
---
-Even got a Datapoint 3600(?) with a DD50 connector instead of the
-usual DB25... what a nightmare trying to figure out the pinout
-for *that* with no spex...
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.383
-Fcc: 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.383
-Problem: For EBCDIC pound sign is defined as 't'.
-Solution: Correctly define POUND.
-Files: src/ascii.h
-
-
-*** ../vim-7.3.382/src/ascii.h 2011-09-02 14:18:14.000000000 +0200
---- src/ascii.h 2011-12-17 21:38:36.000000000 +0100
-***************
-*** 123,129 ****
- #define DCS 0x90 /* Device Control String */
- #define STERM 0x9c /* String Terminator */
-
-! #define POUND '\xA3'
-
- #define CTRL_F_STR "\056"
- #define CTRL_H_STR "\026"
---- 123,129 ----
- #define DCS 0x90 /* Device Control String */
- #define STERM 0x9c /* String Terminator */
-
-! #define POUND 0xB1
-
- #define CTRL_F_STR "\056"
- #define CTRL_H_STR "\026"
-*** ../vim-7.3.382/src/version.c 2011-12-15 21:51:32.000000000 +0100
---- src/version.c 2011-12-23 12:46:08.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 383,
- /**/
-
---
-Vim is like Emacs without all the typing. (John "Johann" Spetz)
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.384
-Fcc: 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.384
-Problem: Mapping CTRL-K in Insert mode breaks CTRL-X CTRL-K for dictionary
- completion.
-Solution: Add CTRL-K to the list of recognized keys. (James McCoy)
-Files: src/edit.c
-
-
-*** ../vim-7.3.383/src/edit.c 2011-10-26 17:04:23.000000000 +0200
---- src/edit.c 2011-12-23 12:36:22.000000000 +0100
-***************
-*** 2183,2189 ****
- || c == Ctrl_I || c == Ctrl_D || c == Ctrl_P
- || c == Ctrl_N || c == Ctrl_T || c == Ctrl_V
- || c == Ctrl_Q || c == Ctrl_U || c == Ctrl_O
-! || c == Ctrl_S || c == 's');
- case CTRL_X_SCROLL:
- return (c == Ctrl_Y || c == Ctrl_E);
- case CTRL_X_WHOLE_LINE:
---- 2183,2189 ----
- || c == Ctrl_I || c == Ctrl_D || c == Ctrl_P
- || c == Ctrl_N || c == Ctrl_T || c == Ctrl_V
- || c == Ctrl_Q || c == Ctrl_U || c == Ctrl_O
-! || c == Ctrl_S || c == Ctrl_K || c == 's');
- case CTRL_X_SCROLL:
- return (c == Ctrl_Y || c == Ctrl_E);
- case CTRL_X_WHOLE_LINE:
-*** ../vim-7.3.383/src/version.c 2011-12-23 12:46:56.000000000 +0100
---- src/version.c 2011-12-23 12:53:38.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 384,
- /**/
-
---
-Q: Is selling software the same as selling hardware?
-A: No, good hardware is sold new, good software has already been used by many.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.385
-Fcc: 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.385
-Problem: When using an expression mapping on the command line the cursor
- ends up in the wrong place. (Yasuhiro Matsumoto)
-Solution: Save and restore msg_col and msg_row when evaluating the
- expression.
-Files: src/getchar.
-
-
-*** ../vim-7.3.384/src/getchar.c 2011-10-12 22:02:07.000000000 +0200
---- src/getchar.c 2011-12-14 18:37:52.000000000 +0100
-***************
-*** 4510,4515 ****
---- 4510,4517 ----
- char_u *expr;
- char_u *save_cmd;
- pos_T save_cursor;
-+ int save_msg_col;
-+ int save_msg_row;
-
- /* Remove escaping of CSI, because "str" is in a format to be used as
- * typeahead. */
-***************
-*** 4533,4544 ****
---- 4535,4550 ----
- #endif
- set_vim_var_char(c); /* set v:char to the typed character */
- save_cursor = curwin->w_cursor;
-+ save_msg_col = msg_col;
-+ save_msg_row = msg_row;
- p = eval_to_string(expr, NULL, FALSE);
- --textlock;
- #ifdef FEAT_EX_EXTRA
- --ex_normal_lock;
- #endif
- curwin->w_cursor = save_cursor;
-+ msg_col = save_msg_col;
-+ msg_row = save_msg_row;
-
- restore_cmdline_alloc(save_cmd);
- vim_free(expr);
-*** ../vim-7.3.384/src/version.c 2011-12-23 13:14:58.000000000 +0100
---- src/version.c 2011-12-23 14:53:23.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 385,
- /**/
-
---
-`When any government, or any church for that matter, undertakes to say to
- its subjects, "This you may not read, this you must not see, this you are
- forbidden to know," the end result is tyranny and oppression no matter how
- holy the motives' -- Robert A Heinlein, "If this goes on --"
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.386
-Fcc: 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.386
-Problem: Test 83 fails when iconv does not support cp932. (raf)
-Solution: Test if conversion works. (Yukihiro Nakadaira)
-Files: src/testdir/test83.in
-
-
-*** ../vim-7.3.385/src/testdir/test83.in 2011-10-12 19:53:31.000000000 +0200
---- src/testdir/test83.in 2011-12-21 21:01:44.000000000 +0100
-***************
-*** 2,8 ****
-
- STARTTEST
- :so mbyte.vim
-! :if !has('iconv')
- : e! test.ok
- : w! test.out
- : qa!
---- 2,8 ----
-
- STARTTEST
- :so mbyte.vim
-! :if !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21"
- : e! test.ok
- : w! test.out
- : qa!
-*** ../vim-7.3.385/src/version.c 2011-12-23 14:54:01.000000000 +0100
---- src/version.c 2011-12-23 14:55:38.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 386,
- /**/
-
---
-WOMAN: King of the who?
-ARTHUR: The Britons.
-WOMAN: Who are the Britons?
-ARTHUR: Well, we all are. we're all Britons and I am your king.
- The Quest for the Holy Grail (Monty Python)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.387
-Fcc: 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.387 (after 7.3.386)
-Problem: Test 83 may fail for some encodings.
-Solution: Set 'encoding' to utf-8 earlier.
-Files: src/testdir/test83.in
-
-
-*** ../vim-7.3.386/src/testdir/test83.in 2011-12-23 14:56:24.000000000 +0100
---- src/testdir/test83.in 2011-12-30 13:05:05.000000000 +0100
-***************
-*** 2,13 ****
-
- STARTTEST
- :so mbyte.vim
- :if !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21"
- : e! test.ok
- : w! test.out
- : qa!
- :endif
-- :set enc=utf8
-
- :/^text for tags1$/,/^text for tags1$/+1w! Xtags1.txt
- :/^text for tags2$/,/^text for tags2$/+1w! Xtags2.txt
---- 2,13 ----
-
- STARTTEST
- :so mbyte.vim
-+ :set enc=utf8
- :if !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21"
- : e! test.ok
- : w! test.out
- : qa!
- :endif
-
- :/^text for tags1$/,/^text for tags1$/+1w! Xtags1.txt
- :/^text for tags2$/,/^text for tags2$/+1w! Xtags2.txt
-*** ../vim-7.3.386/src/version.c 2011-12-23 14:56:24.000000000 +0100
---- src/version.c 2011-12-30 13:06:17.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 387,
- /**/
-
---
-Mental Floss prevents moral decay!
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.388
-Fcc: 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.388
-Problem: Crash on exit when EXITFREE is defined and using tiny features.
-Solution: Check for NULL window pointer. (Dominique Pelle)
-Files: src/buffer.c
-
-
-*** ../vim-7.3.387/src/buffer.c 2011-11-30 15:40:51.000000000 +0100
---- src/buffer.c 2011-12-30 13:35:26.000000000 +0100
-***************
-*** 419,424 ****
---- 419,426 ----
- if (
- #ifdef FEAT_WINDOWS
- win_valid(win) &&
-+ #else
-+ win != NULL &&
- #endif
- win->w_buffer == buf)
- win->w_buffer = NULL; /* make sure we don't use the buffer now */
-*** ../vim-7.3.387/src/version.c 2011-12-30 13:09:15.000000000 +0100
---- src/version.c 2011-12-30 13:37:23.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 388,
- /**/
-
---
-Be nice to your kids... they'll be the ones choosing your nursing home.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.389
-Fcc: 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.389
-Problem: After typing at a prompt the "MORE" message appears too soon.
-Solution: reset lines_left in msg_end_prompt(). (Eswald)
-Files: src/message.c
-
-
-*** ../vim-7.3.388/src/message.c 2011-09-14 15:39:26.000000000 +0200
---- src/message.c 2011-12-30 14:08:05.000000000 +0100
-***************
-*** 85,91 ****
- * need_wait_return to be set. This is a hack to make ":ts"
- * work without an extra prompt.
- * lines_left Number of lines available for messages before the
-! * more-prompt is to be given.
- * need_wait_return TRUE when the hit-return prompt is needed.
- * Reset: After giving the hit-return prompt, when the user
- * has answered some other prompt.
---- 85,91 ----
- * need_wait_return to be set. This is a hack to make ":ts"
- * work without an extra prompt.
- * lines_left Number of lines available for messages before the
-! * more-prompt is to be given. -1 when not set.
- * need_wait_return TRUE when the hit-return prompt is needed.
- * Reset: After giving the hit-return prompt, when the user
- * has answered some other prompt.
-***************
-*** 855,860 ****
---- 855,861 ----
- cmdline_row = msg_row;
- msg_col = 0;
- msg_clr_eos();
-+ lines_left = -1;
- }
- #endif
-
-*** ../vim-7.3.388/src/version.c 2011-12-30 13:39:04.000000000 +0100
---- src/version.c 2011-12-30 14:11:00.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 389,
- /**/
-
---
-Proofread carefully to see if you any words out.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.390
-Fcc: 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.390
-Problem: Using NULL buffer pointer in a window.
-Solution: Check for w_buffer being NULL in more places. (Bjorn Winckler)
-Files: src/ex_cmds.c, src/quickfix.c, src/window.c
-
-
-*** ../vim-7.3.389/src/ex_cmds.c 2011-11-30 17:01:55.000000000 +0100
---- src/ex_cmds.c 2011-12-30 14:59:57.000000000 +0100
-***************
-*** 3390,3395 ****
---- 3390,3402 ----
- (flags & ECMD_HIDE) ? 0 : DOBUF_UNLOAD);
-
- #ifdef FEAT_AUTOCMD
-+ /* Autocommands may open a new window and leave oldwin open
-+ * which leads to crashes since the above call sets
-+ * oldwin->w_buffer to NULL. */
-+ if (curwin != oldwin && oldwin != aucmd_win
-+ && win_valid(oldwin) && oldwin->w_buffer == NULL)
-+ win_close(oldwin, FALSE);
-+
- # ifdef FEAT_EVAL
- if (aborting()) /* autocmds may abort script processing */
- {
-*** ../vim-7.3.389/src/quickfix.c 2011-08-10 18:36:49.000000000 +0200
---- src/quickfix.c 2011-12-30 14:45:19.000000000 +0100
-***************
-*** 2675,2681 ****
- bt_quickfix(buf)
- buf_T *buf;
- {
-! return (buf->b_p_bt[0] == 'q');
- }
-
- /*
---- 2675,2681 ----
- bt_quickfix(buf)
- buf_T *buf;
- {
-! return buf != NULL && buf->b_p_bt[0] == 'q';
- }
-
- /*
-***************
-*** 2686,2693 ****
- bt_nofile(buf)
- buf_T *buf;
- {
-! return (buf->b_p_bt[0] == 'n' && buf->b_p_bt[2] == 'f')
-! || buf->b_p_bt[0] == 'a';
- }
-
- /*
---- 2686,2693 ----
- bt_nofile(buf)
- buf_T *buf;
- {
-! return buf != NULL && ((buf->b_p_bt[0] == 'n' && buf->b_p_bt[2] == 'f')
-! || buf->b_p_bt[0] == 'a');
- }
-
- /*
-***************
-*** 2697,2703 ****
- bt_dontwrite(buf)
- buf_T *buf;
- {
-! return (buf->b_p_bt[0] == 'n');
- }
-
- int
---- 2697,2703 ----
- bt_dontwrite(buf)
- buf_T *buf;
- {
-! return buf != NULL && buf->b_p_bt[0] == 'n';
- }
-
- int
-*** ../vim-7.3.389/src/window.c 2011-09-14 14:43:21.000000000 +0200
---- src/window.c 2011-12-30 14:44:18.000000000 +0100
-***************
-*** 2170,2176 ****
-
- /* When closing the help window, try restoring a snapshot after closing
- * the window. Otherwise clear the snapshot, it's now invalid. */
-! if (win->w_buffer->b_help)
- help_window = TRUE;
- else
- clear_snapshot(curtab, SNAP_HELP_IDX);
---- 2170,2176 ----
-
- /* When closing the help window, try restoring a snapshot after closing
- * the window. Otherwise clear the snapshot, it's now invalid. */
-! if (win->w_buffer != NULL && win->w_buffer->b_help)
- help_window = TRUE;
- else
- clear_snapshot(curtab, SNAP_HELP_IDX);
-***************
-*** 2214,2226 ****
-
- #ifdef FEAT_SYN_HL
- /* Free independent synblock before the buffer is freed. */
-! reset_synblock(win);
- #endif
-
- /*
- * Close the link to the buffer.
- */
-! close_buffer(win, win->w_buffer, free_buf ? DOBUF_UNLOAD : 0);
-
- /* Autocommands may have closed the window already, or closed the only
- * other window or moved to another tab page. */
---- 2214,2228 ----
-
- #ifdef FEAT_SYN_HL
- /* Free independent synblock before the buffer is freed. */
-! if (win->w_buffer != NULL)
-! reset_synblock(win);
- #endif
-
- /*
- * Close the link to the buffer.
- */
-! if (win->w_buffer != NULL)
-! close_buffer(win, win->w_buffer, free_buf ? DOBUF_UNLOAD : 0);
-
- /* Autocommands may have closed the window already, or closed the only
- * other window or moved to another tab page. */
-*** ../vim-7.3.389/src/version.c 2011-12-30 14:14:16.000000000 +0100
---- src/version.c 2011-12-30 14:38:39.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 390,
- /**/
-
---
-There can't be a crisis today, my schedule is already full.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.391
-Fcc: 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.391
-Problem: Can't check if the XPM_W32 feature is enabled.
-Solution: Add xpm_w32 to the list of features. (kat)
-Files: src/eval.c
-
-
-*** ../vim-7.3.390/src/eval.c 2011-12-14 15:32:44.000000000 +0100
---- src/eval.c 2012-01-04 14:33:22.000000000 +0100
-***************
-*** 12260,12265 ****
---- 12260,12268 ----
- #ifdef FEAT_XFONTSET
- "xfontset",
- #endif
-+ #ifdef FEAT_XPM_W32
-+ "xpm_w32",
-+ #endif
- #ifdef USE_XSMP
- "xsmp",
- #endif
-*** ../vim-7.3.390/src/version.c 2011-12-30 15:01:55.000000000 +0100
---- src/version.c 2012-01-04 14:34:31.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 391,
- /**/
-
---
-ROBIN: The what?
-ARTHUR: The Holy Hand Grenade of Antioch. 'Tis one of the sacred relics
- Brother Maynard always carries with him.
-ALL: Yes. Of course.
-ARTHUR: (shouting) Bring up the Holy Hand Grenade!
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.392
-Fcc: 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.392
-Problem: When setting 'undofile' while the file is already loaded but
- unchanged, try reading the undo file. (Andy Wokula)
-Solution: Compute a checksum of the text when 'undofile' is set. (Christian
- Brabandt)
-Files: src/option.c, src/testdir/test72.in, src/testdir/test72.ok
-
-
-*** ../vim-7.3.391/src/option.c 2011-11-30 11:31:25.000000000 +0100
---- src/option.c 2012-01-04 19:34:11.000000000 +0100
-***************
-*** 7516,7521 ****
---- 7516,7545 ----
- compatible_set();
- }
-
-+ #ifdef FEAT_PERSISTENT_UNDO
-+ /* 'undofile' */
-+ else if ((int *)varp == &curbuf->b_p_udf || (int *)varp == &p_udf)
-+ {
-+ char_u hash[UNDO_HASH_SIZE];
-+ buf_T *save_curbuf = curbuf;
-+
-+ for (curbuf = firstbuf; curbuf != NULL; curbuf = curbuf->b_next)
-+ {
-+ /* When 'undofile' is set globally: for every buffer, otherwise
-+ * only for the current buffer: Try to read in the undofile, if
-+ * one exists and the buffer wasn't changed. */
-+ if ((curbuf == save_curbuf
-+ || (opt_flags & OPT_GLOBAL) || opt_flags == 0)
-+ && !curbufIsChanged())
-+ {
-+ u_compute_hash(hash);
-+ u_read_undo(NULL, hash, curbuf->b_fname);
-+ }
-+ }
-+ curbuf = save_curbuf;
-+ }
-+ #endif
-+
- /* 'list', 'number' */
- else if ((int *)varp == &curwin->w_p_list
- || (int *)varp == &curwin->w_p_nu
-*** ../vim-7.3.391/src/testdir/test72.in 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test72.in 2012-01-04 19:04:17.000000000 +0100
-***************
-*** 51,56 ****
---- 51,62 ----
- :e Xtestfile
- uuu:w >>test.out
- :"
-+ :" Test that reading the undofiles when setting undofile works
-+ :set noundofile ul=0
-+ i
-+ u:e! Xtestfile
-+ :set undofile ul=100
-+ uuuuuu:w >>test.out
- :" And now with encryption, cryptmethod=zip
- :e! Xtestfile
- :set undofile cm=zip
-*** ../vim-7.3.391/src/testdir/test72.ok 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test72.ok 2012-01-04 19:04:17.000000000 +0100
-***************
-*** 7,12 ****
---- 7,22 ----
- eight
- nine
- ten
-+ one
-+ two
-+ three
-+ four
-+ five
-+ six
-+ seven
-+ eight
-+ nine
-+ ten
- monday
- wednesday
- thursday
-*** ../vim-7.3.391/src/version.c 2012-01-04 14:35:31.000000000 +0100
---- src/version.c 2012-01-04 19:33:41.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 392,
- /**/
-
---
-BROTHER MAYNARD: Armaments Chapter Two Verses Nine to Twenty One.
-ANOTHER MONK: And St. Attila raised his hand grenade up on high saying "O
- Lord bless this thy hand grenade that with it thou mayest
- blow thine enemies to tiny bits, in thy mercy. "and the Lord
- did grin and people did feast upon the lambs and sloths and
- carp and anchovies and orang-utans and breakfast cereals and
- fruit bats and...
-BROTHER MAYNARD: Skip a bit brother ...
- "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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.393
-Fcc: 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.393
-Problem: Win32: When resizing Vim it is always moved to the primary monitor
- if the secondary monitor is on the left.
-Solution: Use the nearest monitor. (Yukihiro Nakadaira)
-Files: src/gui_w32.c
-
-
-*** ../vim-7.3.392/src/gui_w32.c 2011-12-15 21:51:32.000000000 +0100
---- src/gui_w32.c 2012-01-04 20:25:58.000000000 +0100
-***************
-*** 1661,1669 ****
- {
- RECT workarea_rect;
- int win_width, win_height;
-- int win_xpos, win_ypos;
- WINDOWPLACEMENT wndpl;
-- int workarea_left;
-
- /* Try to keep window completely on screen. */
- /* Get position of the screen work area. This is the part that is not
---- 1661,1667 ----
-***************
-*** 1685,1693 ****
- GetWindowPlacement(s_hwnd, &wndpl);
- }
-
-- win_xpos = wndpl.rcNormalPosition.left;
-- win_ypos = wndpl.rcNormalPosition.top;
--
- /* compute the size of the outside of the window */
- win_width = width + GetSystemMetrics(SM_CXFRAME) * 2;
- win_height = height + GetSystemMetrics(SM_CYFRAME) * 2
---- 1683,1688 ----
-***************
-*** 1697,1732 ****
- #endif
- ;
-
-! /* There is an inconsistency when using two monitors and Vim is on the
-! * second (right) one: win_xpos will be the offset from the workarea of
-! * the left monitor. While with one monitor it's the offset from the
-! * workarea (including a possible taskbar on the left). Detect the second
-! * monitor by checking for the left offset to be quite big. */
-! if (workarea_rect.left > 300)
-! workarea_left = 0;
-! else
-! workarea_left = workarea_rect.left;
-
-! /* If the window is going off the screen, move it on to the screen.
-! * win_xpos and win_ypos are relative to the workarea. */
- if ((direction & RESIZE_HOR)
-! && workarea_left + win_xpos + win_width > workarea_rect.right)
-! win_xpos = workarea_rect.right - win_width - workarea_left;
-
-! if ((direction & RESIZE_HOR) && win_xpos < 0)
-! win_xpos = 0;
-
- if ((direction & RESIZE_VERT)
-! && workarea_rect.top + win_ypos + win_height > workarea_rect.bottom)
-! win_ypos = workarea_rect.bottom - win_height - workarea_rect.top;
-
-! if ((direction & RESIZE_VERT) && win_ypos < 0)
-! win_ypos = 0;
-!
-! wndpl.rcNormalPosition.left = win_xpos;
-! wndpl.rcNormalPosition.right = win_xpos + win_width;
-! wndpl.rcNormalPosition.top = win_ypos;
-! wndpl.rcNormalPosition.bottom = win_ypos + win_height;
-
- /* set window position - we should use SetWindowPlacement rather than
- * SetWindowPos as the MSDN docs say the coord systems returned by
---- 1692,1723 ----
- #endif
- ;
-
-! /* The following should take care of keeping Vim on the same monitor, no
-! * matter if the secondary monitor is left or right of the primary
-! * monitor. */
-! wndpl.rcNormalPosition.right = wndpl.rcNormalPosition.left + win_width;
-! wndpl.rcNormalPosition.bottom = wndpl.rcNormalPosition.top + win_height;
-
-! /* If the window is going off the screen, move it on to the screen. */
- if ((direction & RESIZE_HOR)
-! && wndpl.rcNormalPosition.right > workarea_rect.right)
-! OffsetRect(&wndpl.rcNormalPosition,
-! workarea_rect.right - wndpl.rcNormalPosition.right, 0);
-
-! if ((direction & RESIZE_HOR)
-! && wndpl.rcNormalPosition.left < workarea_rect.left)
-! OffsetRect(&wndpl.rcNormalPosition,
-! workarea_rect.left - wndpl.rcNormalPosition.left, 0);
-
- if ((direction & RESIZE_VERT)
-! && wndpl.rcNormalPosition.bottom > workarea_rect.bottom)
-! OffsetRect(&wndpl.rcNormalPosition,
-! 0, workarea_rect.bottom - wndpl.rcNormalPosition.bottom);
-
-! if ((direction & RESIZE_VERT)
-! && wndpl.rcNormalPosition.top < workarea_rect.top)
-! OffsetRect(&wndpl.rcNormalPosition,
-! 0, workarea_rect.top - wndpl.rcNormalPosition.top);
-
- /* set window position - we should use SetWindowPlacement rather than
- * SetWindowPos as the MSDN docs say the coord systems returned by
-*** ../vim-7.3.392/src/version.c 2012-01-04 19:34:32.000000000 +0100
---- src/version.c 2012-01-04 20:28:57.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 393,
- /**/
-
---
-I wonder, do vegetarians eat fruit bats?
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.394
-Fcc: 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.394
-Problem: When placing a mark while starting up a screen redraw messes up
- the screen. (lith)
-Solution: Don't redraw while still starting up. (Christian Brabandt)
-Files: src/screen.c
-
-
-*** ../vim-7.3.393/src/screen.c 2011-09-02 14:07:31.000000000 +0200
---- src/screen.c 2012-01-10 12:36:52.000000000 +0100
-***************
-*** 764,772 ****
- doit = TRUE;
- }
-
-! /* Return when there is nothing to do or screen updating already
-! * happening. */
-! if (!doit || updating_screen)
- return;
-
- /* update all windows that need updating */
---- 764,776 ----
- doit = TRUE;
- }
-
-! /* Return when there is nothing to do, screen updating is already
-! * happening (recursive call) or still starting up. */
-! if (!doit || updating_screen
-! #ifdef FEAT_GUI
-! || gui.starting
-! #endif
-! || starting)
- return;
-
- /* update all windows that need updating */
-*** ../vim-7.3.393/src/version.c 2012-01-04 20:29:18.000000000 +0100
---- src/version.c 2012-01-10 12:41:32.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 394,
- /**/
-
---
-It is illegal for anyone to try and stop a child from playfully jumping over
-puddles of water.
- [real standing law in California, 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.395
-Fcc: 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.395 (after 7.3.251)
-Problem: "dv?bar" in the last line deletes too much and breaks undo.
-Solution: Only adjust the cursor position when it's after the last line of
- the buffer. Add a test. (Christian Brabandt)
-Files: src/ops.c, src/testdir/test43.in, src/testdir/test43.ok
-
-
-*** ../vim-7.3.394/src/ops.c 2011-09-21 17:33:49.000000000 +0200
---- src/ops.c 2012-01-10 13:28:05.000000000 +0100
-***************
-*** 1961,1968 ****
- /* Special case: gH<Del> deletes the last line. */
- del_lines(1L, FALSE);
- curwin->w_cursor = curpos; /* restore curwin->w_cursor */
-! if (curwin->w_cursor.lnum > 1)
-! --curwin->w_cursor.lnum;
- }
- else
- {
---- 1962,1969 ----
- /* Special case: gH<Del> deletes the last line. */
- del_lines(1L, FALSE);
- curwin->w_cursor = curpos; /* restore curwin->w_cursor */
-! if (curwin->w_cursor.lnum > curbuf->b_ml.ml_line_count)
-! curwin->w_cursor.lnum = curbuf->b_ml.ml_line_count;
- }
- else
- {
-***************
-*** 4434,4440 ****
- #endif
-
- /*
-! * implementation of the format operator 'gq'
- */
- void
- op_format(oap, keep_cursor)
---- 4435,4441 ----
- #endif
-
- /*
-! * Implementation of the format operator 'gq'.
- */
- void
- op_format(oap, keep_cursor)
-*** ../vim-7.3.394/src/testdir/test43.in 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test43.in 2012-01-10 13:41:13.000000000 +0100
-***************
-*** 13,19 ****
- x:set magic
- /\v(a)(b)\2\1\1/e
- x/\V[ab]\(\[xy]\)\1
-! x:?^1?,$w! test.out
- :qa!
- ENDTEST
-
---- 13,23 ----
- x:set magic
- /\v(a)(b)\2\1\1/e
- x/\V[ab]\(\[xy]\)\1
-! x:$
-! :set undolevels=100
-! dv?bar?
-! Yup:"
-! :?^1?,$w! test.out
- :qa!
- ENDTEST
-
-***************
-*** 25,27 ****
---- 29,33 ----
- 6 x ^aa$ x
- 7 (a)(b) abbaa
- 8 axx [ab]xx
-+ 9 foobar
-+
-*** ../vim-7.3.394/src/testdir/test43.ok 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test43.ok 2012-01-10 13:42:39.000000000 +0100
-***************
-*** 6,8 ****
---- 6,11 ----
- 6 x aa$ x
- 7 (a)(b) abba
- 8 axx ab]xx
-+ 9 foobar
-+ 9 foo
-+
-*** ../vim-7.3.394/src/version.c 2012-01-10 12:42:05.000000000 +0100
---- src/version.c 2012-01-10 13:30:40.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 395,
- /**/
-
---
-The Law, in its majestic equality, forbids the rich, as well as the
-poor, to sleep under the bridges, to beg in the streets, and to steal
-bread. -- Anatole France
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.396
-Fcc: 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.396
-Problem: After forcing an operator to be characterwise it can still become
- linewise when spanning whole lines.
-Solution: Don't make the operator linewise when motion_force was set.
- (Christian Brabandt)
-Files: src/ops.c
-
-
-*** ../vim-7.3.395/src/ops.c 2012-01-10 13:44:23.000000000 +0100
---- src/ops.c 2012-01-10 13:28:05.000000000 +0100
-***************
-*** 1648,1653 ****
---- 1648,1654 ----
- && !oap->block_mode
- #endif
- && oap->line_count > 1
-+ && oap->motion_force == NUL
- && oap->op_type == OP_DELETE)
- {
- ptr = ml_get(oap->end.lnum) + oap->end.col;
-*** ../vim-7.3.395/src/version.c 2012-01-10 13:44:23.000000000 +0100
---- src/version.c 2012-01-10 13:45:31.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 396,
- /**/
-
---
-Any sufficiently advanced technology is indistinguishable from magic.
- Arthur C. Clarke
-Any sufficiently advanced bug is indistinguishable from a feature.
- Rich Kulawiec
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.397
-Fcc: 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.397
-Problem: ":helpgrep" does not work properly when 'encoding' is not utf-8 or
- latin1.
-Solution: Convert non-ascii lines to 'encoding'. (Yasuhiro Matsumoto)
-Files: src/quickfix.c, src/spell.c, src/misc2.c, src/proto/misc2.pro
-
-
-*** ../vim-7.3.396/src/quickfix.c 2011-12-30 15:01:55.000000000 +0100
---- src/quickfix.c 2012-01-10 16:18:51.000000000 +0100
-***************
-*** 3914,3919 ****
---- 3914,3929 ----
- regmatch.rm_ic = FALSE;
- if (regmatch.regprog != NULL)
- {
-+ #ifdef FEAT_MBYTE
-+ vimconv_T vc;
-+
-+ /* Help files are in utf-8 or latin1, convert lines when 'encoding'
-+ * differs. */
-+ vc.vc_type = CONV_NONE;
-+ if (!enc_utf8)
-+ convert_setup(&vc, (char_u *)"utf-8", p_enc);
-+ #endif
-+
- /* create a new quickfix list */
- qf_new_list(qi, *eap->cmdlinep);
-
-***************
-*** 3948,3968 ****
- lnum = 1;
- while (!vim_fgets(IObuff, IOSIZE, fd) && !got_int)
- {
-! if (vim_regexec(&regmatch, IObuff, (colnr_T)0))
- {
-! int l = (int)STRLEN(IObuff);
-
- /* remove trailing CR, LF, spaces, etc. */
-! while (l > 0 && IObuff[l - 1] <= ' ')
-! IObuff[--l] = NUL;
-
- if (qf_add_entry(qi, &prevp,
- NULL, /* dir */
- fnames[fi],
- 0,
-! IObuff,
- lnum,
-! (int)(regmatch.startp[0] - IObuff)
- + 1, /* col */
- FALSE, /* vis_col */
- NULL, /* search pattern */
---- 3958,3990 ----
- lnum = 1;
- while (!vim_fgets(IObuff, IOSIZE, fd) && !got_int)
- {
-! char_u *line = IObuff;
-! #ifdef FEAT_MBYTE
-! /* Convert a line if 'encoding' is not utf-8 and
-! * the line contains a non-ASCII character. */
-! if (vc.vc_type != CONV_NONE
-! && has_non_ascii(IObuff)) {
-! line = string_convert(&vc, IObuff, NULL);
-! if (line == NULL)
-! line = IObuff;
-! }
-! #endif
-!
-! if (vim_regexec(&regmatch, line, (colnr_T)0))
- {
-! int l = (int)STRLEN(line);
-
- /* remove trailing CR, LF, spaces, etc. */
-! while (l > 0 && line[l - 1] <= ' ')
-! line[--l] = NUL;
-
- if (qf_add_entry(qi, &prevp,
- NULL, /* dir */
- fnames[fi],
- 0,
-! line,
- lnum,
-! (int)(regmatch.startp[0] - line)
- + 1, /* col */
- FALSE, /* vis_col */
- NULL, /* search pattern */
-***************
-*** 3972,3980 ****
---- 3994,4010 ----
- ) == FAIL)
- {
- got_int = TRUE;
-+ #ifdef FEAT_MBYTE
-+ if (line != IObuff)
-+ vim_free(line);
-+ #endif
- break;
- }
- }
-+ #ifdef FEAT_MBYTE
-+ if (line != IObuff)
-+ vim_free(line);
-+ #endif
- ++lnum;
- line_breakcheck();
- }
-***************
-*** 3984,3990 ****
---- 4014,4025 ----
- FreeWild(fcount, fnames);
- }
- }
-+
- vim_free(regmatch.regprog);
-+ #ifdef FEAT_MBYTE
-+ if (vc.vc_type != CONV_NONE)
-+ convert_setup(&vc, NULL, NULL);
-+ #endif
-
- qi->qf_lists[qi->qf_curlist].qf_nonevalid = FALSE;
- qi->qf_lists[qi->qf_curlist].qf_ptr =
-*** ../vim-7.3.396/src/spell.c 2011-09-02 14:18:14.000000000 +0200
---- src/spell.c 2012-01-10 16:19:33.000000000 +0100
-***************
-*** 5020,5026 ****
- static int str_equal __ARGS((char_u *s1, char_u *s2));
- static void add_fromto __ARGS((spellinfo_T *spin, garray_T *gap, char_u *from, char_u *to));
- static int sal_to_bool __ARGS((char_u *s));
-- static int has_non_ascii __ARGS((char_u *s));
- static void spell_free_aff __ARGS((afffile_T *aff));
- static int spell_read_dic __ARGS((spellinfo_T *spin, char_u *fname, afffile_T *affile));
- static int get_affix_flags __ARGS((afffile_T *affile, char_u *afflist));
---- 5020,5025 ----
-***************
-*** 6485,6507 ****
- }
-
- /*
-- * Return TRUE if string "s" contains a non-ASCII character (128 or higher).
-- * When "s" is NULL FALSE is returned.
-- */
-- static int
-- has_non_ascii(s)
-- char_u *s;
-- {
-- char_u *p;
--
-- if (s != NULL)
-- for (p = s; *p != NUL; ++p)
-- if (*p >= 128)
-- return TRUE;
-- return FALSE;
-- }
--
-- /*
- * Free the structure filled by spell_read_aff().
- */
- static void
---- 6484,6489 ----
-*** ../vim-7.3.396/src/misc2.c 2011-12-08 17:49:31.000000000 +0100
---- src/misc2.c 2012-01-10 16:25:53.000000000 +0100
-***************
-*** 6541,6543 ****
---- 6541,6563 ----
- #endif
-
- #endif
-+
-+ #if (defined(FEAT_MBYTE) && defined(FEAT_QUICKFIX)) \
-+ || defined(FEAT_SPELL) || defined(PROTO)
-+ /*
-+ * Return TRUE if string "s" contains a non-ASCII character (128 or higher).
-+ * When "s" is NULL FALSE is returned.
-+ */
-+ int
-+ has_non_ascii(s)
-+ char_u *s;
-+ {
-+ char_u *p;
-+
-+ if (s != NULL)
-+ for (p = s; *p != NUL; ++p)
-+ if (*p >= 128)
-+ return TRUE;
-+ return FALSE;
-+ }
-+ #endif
-*** ../vim-7.3.396/src/proto/misc2.pro 2011-07-07 16:20:45.000000000 +0200
---- src/proto/misc2.pro 2012-01-10 16:20:03.000000000 +0100
-***************
-*** 116,119 ****
---- 116,120 ----
- char_u *read_string __ARGS((FILE *fd, int cnt));
- int put_bytes __ARGS((FILE *fd, long_u nr, int len));
- void put_time __ARGS((FILE *fd, time_t the_time));
-+ int has_non_ascii __ARGS((char_u *s));
- /* vim: set ft=c : */
-*** ../vim-7.3.396/src/version.c 2012-01-10 13:46:18.000000000 +0100
---- src/version.c 2012-01-10 16:26:32.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 397,
- /**/
-
---
-Biting someone with your natural teeth is "simple assault," while biting
-someone with your false teeth is "aggravated assault."
- [real standing law in Louisana, 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.398
-Fcc: 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.398
-Problem: When creating more than 10 location lists and adding items one by
- one a previous location may be used. (Audrius Kažukauskas)
-Solution: Clear the location list completely when adding the tenth one.
-Files: src/quickfix.c
-
-
-*** ../vim-7.3.397/src/quickfix.c 2012-01-10 16:28:41.000000000 +0100
---- src/quickfix.c 2012-01-10 16:58:52.000000000 +0100
-***************
-*** 899,906 ****
- }
- else
- qi->qf_curlist = qi->qf_listcount++;
-! qi->qf_lists[qi->qf_curlist].qf_index = 0;
-! qi->qf_lists[qi->qf_curlist].qf_count = 0;
- if (qf_title != NULL)
- {
- char_u *p = alloc((int)STRLEN(qf_title) + 2);
---- 899,905 ----
- }
- else
- qi->qf_curlist = qi->qf_listcount++;
-! vim_memset(&qi->qf_lists[qi->qf_curlist], 0, (size_t)(sizeof(qf_list_T)));
- if (qf_title != NULL)
- {
- char_u *p = alloc((int)STRLEN(qf_title) + 2);
-***************
-*** 909,916 ****
- if (p != NULL)
- sprintf((char *)p, ":%s", (char *)qf_title);
- }
-- else
-- qi->qf_lists[qi->qf_curlist].qf_title = NULL;
- }
-
- /*
---- 908,913 ----
-*** ../vim-7.3.397/src/version.c 2012-01-10 16:28:41.000000000 +0100
---- src/version.c 2012-01-10 17:13:09.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 398,
- /**/
-
---
-Why don't cannibals eat clowns?
-Because they taste funny.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.399
-Fcc: 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.399
-Problem: ":cd" doesn't work when the path contains wildcards. (Yukihiro
- Nakadaira)
-Solution: Ignore wildcard errors when the EW_NOTWILD flag is used.
-Files: src/misc1.c
-
-
-*** ../vim-7.3.398/src/misc1.c 2011-12-14 20:21:29.000000000 +0100
---- src/misc1.c 2012-01-10 17:57:42.000000000 +0100
-***************
-*** 9103,9117 ****
- }
-
- /* compile the regexp into a program */
-! if (flags & EW_NOERROR)
- ++emsg_silent;
- regmatch.rm_ic = TRUE; /* Always ignore case */
- regmatch.regprog = vim_regcomp(pat, RE_MAGIC);
-! if (flags & EW_NOERROR)
- --emsg_silent;
- vim_free(pat);
-
-! if (regmatch.regprog == NULL)
- {
- vim_free(buf);
- return 0;
---- 9103,9117 ----
- }
-
- /* compile the regexp into a program */
-! if (flags & (EW_NOERROR | EW_NOTWILD))
- ++emsg_silent;
- regmatch.rm_ic = TRUE; /* Always ignore case */
- regmatch.regprog = vim_regcomp(pat, RE_MAGIC);
-! if (flags & (EW_NOERROR | EW_NOTWILD))
- --emsg_silent;
- vim_free(pat);
-
-! if (regmatch.regprog == NULL && (flags & EW_NOTWILD) == 0)
- {
- vim_free(buf);
- return 0;
-***************
-*** 9179,9185 ****
- * all entries found with "matchname". */
- if ((p[0] != '.' || starts_with_dot)
- && (matchname == NULL
-! || vim_regexec(&regmatch, p, (colnr_T)0)
- || ((flags & EW_NOTWILD)
- && fnamencmp(path + (s - buf), p, e - s) == 0)))
- {
---- 9179,9186 ----
- * all entries found with "matchname". */
- if ((p[0] != '.' || starts_with_dot)
- && (matchname == NULL
-! || (regmatch.regprog != NULL
-! && vim_regexec(&regmatch, p, (colnr_T)0))
- || ((flags & EW_NOTWILD)
- && fnamencmp(path + (s - buf), p, e - s) == 0)))
- {
-***************
-*** 9419,9428 ****
- else
- regmatch.rm_ic = FALSE; /* Don't ignore case */
- #endif
- regmatch.regprog = vim_regcomp(pat, RE_MAGIC);
- vim_free(pat);
-
-! if (regmatch.regprog == NULL)
- {
- vim_free(buf);
- return 0;
---- 9420,9433 ----
- else
- regmatch.rm_ic = FALSE; /* Don't ignore case */
- #endif
-+ if (flags & (EW_NOERROR | EW_NOTWILD))
-+ ++emsg_silent;
- regmatch.regprog = vim_regcomp(pat, RE_MAGIC);
-+ if (flags & (EW_NOERROR | EW_NOTWILD))
-+ --emsg_silent;
- vim_free(pat);
-
-! if (regmatch.regprog == NULL && (flags & EW_NOTWILD) == 0)
- {
- vim_free(buf);
- return 0;
-***************
-*** 9452,9458 ****
- if (dp == NULL)
- break;
- if ((dp->d_name[0] != '.' || starts_with_dot)
-! && (vim_regexec(&regmatch, (char_u *)dp->d_name, (colnr_T)0)
- || ((flags & EW_NOTWILD)
- && fnamencmp(path + (s - buf), dp->d_name, e - s) == 0)))
- {
---- 9457,9464 ----
- if (dp == NULL)
- break;
- if ((dp->d_name[0] != '.' || starts_with_dot)
-! && ((regmatch.regprog != NULL && vim_regexec(&regmatch,
-! (char_u *)dp->d_name, (colnr_T)0))
- || ((flags & EW_NOTWILD)
- && fnamencmp(path + (s - buf), dp->d_name, e - s) == 0)))
- {
-*** ../vim-7.3.398/src/version.c 2012-01-10 17:13:48.000000000 +0100
---- src/version.c 2012-01-10 18:21:05.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 399,
- /**/
-
---
-Close your shells, or I'll kill -9 you
-Tomorrow I'll quota you
-Remember the disks'll always be full
-And then while I'm away
-I'll write ~ everyday
-And I'll send-pr all my buggings to you.
- [ CVS log "Beatles style" for FreeBSD ports/INDEX, Satoshi Asami ]
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.400
-Fcc: 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.400
-Problem: Compiler warnings for shadowed variables.
-Solution: Remove or rename the variables.
-Files: src/charset.c, src/digraph.c, src/edit.c, src/eval.c, src/fold.c,
- src/getchar.c, src/message.c, src/misc2.c, src/move.c,
- src/netbeans.c, src/option.c, src/os_unix.c, src/screen.c,
- src/search.c, src/spell.c, src/syntax.c, src/tag.c, src/window.c
-
-
-*** ../vim-7.3.399/src/charset.c 2010-08-15 21:57:25.000000000 +0200
---- src/charset.c 2012-01-10 21:55:50.000000000 +0100
-***************
-*** 463,503 ****
- if (enc_utf8)
- {
- int c = utf_ptr2char(STR_PTR(i));
-! int ol = utf_ptr2len(STR_PTR(i));
- int lc = utf_tolower(c);
-
- /* Only replace the character when it is not an invalid
- * sequence (ASCII character or more than one byte) and
- * utf_tolower() doesn't return the original character. */
-! if ((c < 0x80 || ol > 1) && c != lc)
- {
-! int nl = utf_char2len(lc);
-
- /* If the byte length changes need to shift the following
- * characters forward or backward. */
-! if (ol != nl)
- {
-! if (nl > ol)
- {
-! if (buf == NULL ? ga_grow(&ga, nl - ol + 1) == FAIL
-! : len + nl - ol >= buflen)
- {
- /* out of memory, keep old char */
- lc = c;
-! nl = ol;
- }
- }
-! if (ol != nl)
- {
- if (buf == NULL)
- {
-! STRMOVE(GA_PTR(i) + nl, GA_PTR(i) + ol);
-! ga.ga_len += nl - ol;
- }
- else
- {
-! STRMOVE(buf + i + nl, buf + i + ol);
-! len += nl - ol;
- }
- }
- }
---- 463,504 ----
- if (enc_utf8)
- {
- int c = utf_ptr2char(STR_PTR(i));
-! int olen = utf_ptr2len(STR_PTR(i));
- int lc = utf_tolower(c);
-
- /* Only replace the character when it is not an invalid
- * sequence (ASCII character or more than one byte) and
- * utf_tolower() doesn't return the original character. */
-! if ((c < 0x80 || olen > 1) && c != lc)
- {
-! int nlen = utf_char2len(lc);
-
- /* If the byte length changes need to shift the following
- * characters forward or backward. */
-! if (olen != nlen)
- {
-! if (nlen > olen)
- {
-! if (buf == NULL
-! ? ga_grow(&ga, nlen - olen + 1) == FAIL
-! : len + nlen - olen >= buflen)
- {
- /* out of memory, keep old char */
- lc = c;
-! nlen = olen;
- }
- }
-! if (olen != nlen)
- {
- if (buf == NULL)
- {
-! STRMOVE(GA_PTR(i) + nlen, GA_PTR(i) + olen);
-! ga.ga_len += nlen - olen;
- }
- else
- {
-! STRMOVE(buf + i + nlen, buf + i + olen);
-! len += nlen - olen;
- }
- }
- }
-*** ../vim-7.3.399/src/digraph.c 2010-08-15 21:57:28.000000000 +0200
---- src/digraph.c 2012-01-10 21:57:16.000000000 +0100
-***************
-*** 2080,2092 ****
- /*
- * Lookup the pair "char1", "char2" in the digraph tables.
- * If no match, return "char2".
-! * If "meta" is TRUE and "char1" is a space, return "char2" | 0x80.
- */
- static int
-! getexactdigraph(char1, char2, meta)
- int char1;
- int char2;
-! int meta;
- {
- int i;
- int retval = 0;
---- 2080,2092 ----
- /*
- * Lookup the pair "char1", "char2" in the digraph tables.
- * If no match, return "char2".
-! * If "meta_char" is TRUE and "char1" is a space, return "char2" | 0x80.
- */
- static int
-! getexactdigraph(char1, char2, meta_char)
- int char1;
- int char2;
-! int meta_char;
- {
- int i;
- int retval = 0;
-***************
-*** 2159,2165 ****
-
- if (retval == 0) /* digraph deleted or not found */
- {
-! if (char1 == ' ' && meta) /* <space> <char> --> meta-char */
- return (char2 | 0x80);
- return char2;
- }
---- 2159,2165 ----
-
- if (retval == 0) /* digraph deleted or not found */
- {
-! if (char1 == ' ' && meta_char) /* <space> <char> --> meta-char */
- return (char2 | 0x80);
- return char2;
- }
-***************
-*** 2171,2186 ****
- * Allow for both char1-char2 and char2-char1
- */
- int
-! getdigraph(char1, char2, meta)
- int char1;
- int char2;
-! int meta;
- {
- int retval;
-
-! if (((retval = getexactdigraph(char1, char2, meta)) == char2)
- && (char1 != char2)
-! && ((retval = getexactdigraph(char2, char1, meta)) == char1))
- return char2;
- return retval;
- }
---- 2171,2186 ----
- * Allow for both char1-char2 and char2-char1
- */
- int
-! getdigraph(char1, char2, meta_char)
- int char1;
- int char2;
-! int meta_char;
- {
- int retval;
-
-! if (((retval = getexactdigraph(char1, char2, meta_char)) == char2)
- && (char1 != char2)
-! && ((retval = getexactdigraph(char2, char1, meta_char)) == char1))
- return char2;
- return retval;
- }
-*** ../vim-7.3.399/src/edit.c 2011-12-23 13:14:58.000000000 +0100
---- src/edit.c 2012-01-10 21:58:28.000000000 +0100
-***************
-*** 4003,4026 ****
- ins_compl_add_dict(dict)
- dict_T *dict;
- {
-! dictitem_T *refresh;
-! dictitem_T *words;
-
- /* Check for optional "refresh" item. */
- compl_opt_refresh_always = FALSE;
-! refresh = dict_find(dict, (char_u *)"refresh", 7);
-! if (refresh != NULL && refresh->di_tv.v_type == VAR_STRING)
- {
-! char_u *v = refresh->di_tv.vval.v_string;
-
- if (v != NULL && STRCMP(v, (char_u *)"always") == 0)
- compl_opt_refresh_always = TRUE;
- }
-
- /* Add completions from a "words" list. */
-! words = dict_find(dict, (char_u *)"words", 5);
-! if (words != NULL && words->di_tv.v_type == VAR_LIST)
-! ins_compl_add_list(words->di_tv.vval.v_list);
- }
-
- /*
---- 4003,4026 ----
- ins_compl_add_dict(dict)
- dict_T *dict;
- {
-! dictitem_T *di_refresh;
-! dictitem_T *di_words;
-
- /* Check for optional "refresh" item. */
- compl_opt_refresh_always = FALSE;
-! di_refresh = dict_find(dict, (char_u *)"refresh", 7);
-! if (di_refresh != NULL && di_refresh->di_tv.v_type == VAR_STRING)
- {
-! char_u *v = di_refresh->di_tv.vval.v_string;
-
- if (v != NULL && STRCMP(v, (char_u *)"always") == 0)
- compl_opt_refresh_always = TRUE;
- }
-
- /* Add completions from a "words" list. */
-! di_words = dict_find(dict, (char_u *)"words", 5);
-! if (di_words != NULL && di_words->di_tv.v_type == VAR_LIST)
-! ins_compl_add_list(di_words->di_tv.vval.v_list);
- }
-
- /*
-*** ../vim-7.3.399/src/eval.c 2012-01-04 14:35:31.000000000 +0100
---- src/eval.c 2012-01-10 22:00:50.000000000 +0100
-***************
-*** 6573,6587 ****
-
- /*
- * Join list "l" into a string in "*gap", using separator "sep".
-! * When "echo" is TRUE use String as echoed, otherwise as inside a List.
- * Return FAIL or OK.
- */
- static int
-! list_join(gap, l, sep, echo, copyID)
- garray_T *gap;
- list_T *l;
- char_u *sep;
-! int echo;
- int copyID;
- {
- int first = TRUE;
---- 6573,6587 ----
-
- /*
- * Join list "l" into a string in "*gap", using separator "sep".
-! * When "echo_style" is TRUE use String as echoed, otherwise as inside a List.
- * Return FAIL or OK.
- */
- static int
-! list_join(gap, l, sep, echo_style, copyID)
- garray_T *gap;
- list_T *l;
- char_u *sep;
-! int echo_style;
- int copyID;
- {
- int first = TRUE;
-***************
-*** 6597,6603 ****
- else
- ga_concat(gap, sep);
-
-! if (echo)
- s = echo_string(&item->li_tv, &tofree, numbuf, copyID);
- else
- s = tv2string(&item->li_tv, &tofree, numbuf, copyID);
---- 6597,6603 ----
- else
- ga_concat(gap, sep);
-
-! if (echo_style)
- s = echo_string(&item->li_tv, &tofree, numbuf, copyID);
- else
- s = tv2string(&item->li_tv, &tofree, numbuf, copyID);
-***************
-*** 17893,17899 ****
- typval_T *argvars;
- typval_T *rettv;
- {
-! char_u *instr;
- char_u *fromstr;
- char_u *tostr;
- char_u *p;
---- 17893,17899 ----
- typval_T *argvars;
- typval_T *rettv;
- {
-! char_u *in_str;
- char_u *fromstr;
- char_u *tostr;
- char_u *p;
-***************
-*** 17910,17916 ****
- char_u buf2[NUMBUFLEN];
- garray_T ga;
-
-! instr = get_tv_string(&argvars[0]);
- fromstr = get_tv_string_buf_chk(&argvars[1], buf);
- tostr = get_tv_string_buf_chk(&argvars[2], buf2);
-
---- 17910,17916 ----
- char_u buf2[NUMBUFLEN];
- garray_T ga;
-
-! in_str = get_tv_string(&argvars[0]);
- fromstr = get_tv_string_buf_chk(&argvars[1], buf);
- tostr = get_tv_string_buf_chk(&argvars[2], buf2);
-
-***************
-*** 17936,17954 ****
- }
-
- /* fromstr and tostr have to contain the same number of chars */
-! while (*instr != NUL)
- {
- #ifdef FEAT_MBYTE
- if (has_mbyte)
- {
-! inlen = (*mb_ptr2len)(instr);
-! cpstr = instr;
- cplen = inlen;
- idx = 0;
- for (p = fromstr; *p != NUL; p += fromlen)
- {
- fromlen = (*mb_ptr2len)(p);
-! if (fromlen == inlen && STRNCMP(instr, p, inlen) == 0)
- {
- for (p = tostr; *p != NUL; p += tolen)
- {
---- 17936,17954 ----
- }
-
- /* fromstr and tostr have to contain the same number of chars */
-! while (*in_str != NUL)
- {
- #ifdef FEAT_MBYTE
- if (has_mbyte)
- {
-! inlen = (*mb_ptr2len)(in_str);
-! cpstr = in_str;
- cplen = inlen;
- idx = 0;
- for (p = fromstr; *p != NUL; p += fromlen)
- {
- fromlen = (*mb_ptr2len)(p);
-! if (fromlen == inlen && STRNCMP(in_str, p, inlen) == 0)
- {
- for (p = tostr; *p != NUL; p += tolen)
- {
-***************
-*** 17967,17977 ****
- ++idx;
- }
-
-! if (first && cpstr == instr)
- {
- /* Check that fromstr and tostr have the same number of
- * (multi-byte) characters. Done only once when a character
-! * of instr doesn't appear in fromstr. */
- first = FALSE;
- for (p = tostr; *p != NUL; p += tolen)
- {
---- 17967,17977 ----
- ++idx;
- }
-
-! if (first && cpstr == in_str)
- {
- /* Check that fromstr and tostr have the same number of
- * (multi-byte) characters. Done only once when a character
-! * of in_str doesn't appear in fromstr. */
- first = FALSE;
- for (p = tostr; *p != NUL; p += tolen)
- {
-***************
-*** 17986,18003 ****
- mch_memmove((char *)ga.ga_data + ga.ga_len, cpstr, (size_t)cplen);
- ga.ga_len += cplen;
-
-! instr += inlen;
- }
- else
- #endif
- {
- /* When not using multi-byte chars we can do it faster. */
-! p = vim_strchr(fromstr, *instr);
- if (p != NULL)
- ga_append(&ga, tostr[p - fromstr]);
- else
-! ga_append(&ga, *instr);
-! ++instr;
- }
- }
-
---- 17986,18003 ----
- mch_memmove((char *)ga.ga_data + ga.ga_len, cpstr, (size_t)cplen);
- ga.ga_len += cplen;
-
-! in_str += inlen;
- }
- else
- #endif
- {
- /* When not using multi-byte chars we can do it faster. */
-! p = vim_strchr(fromstr, *in_str);
- if (p != NULL)
- ga_append(&ga, tostr[p - fromstr]);
- else
-! ga_append(&ga, *in_str);
-! ++in_str;
- }
- }
-
-*** ../vim-7.3.399/src/fold.c 2011-08-26 16:12:55.000000000 +0200
---- src/fold.c 2012-01-10 22:01:26.000000000 +0100
-***************
-*** 1033,1042 ****
- * Init the fold info in a new window.
- */
- void
-! foldInitWin(newwin)
-! win_T *newwin;
- {
-! ga_init2(&newwin->w_folds, (int)sizeof(fold_T), 10);
- }
-
- /* find_wl_entry() {{{2 */
---- 1033,1042 ----
- * Init the fold info in a new window.
- */
- void
-! foldInitWin(new_win)
-! win_T *new_win;
- {
-! ga_init2(&new_win->w_folds, (int)sizeof(fold_T), 10);
- }
-
- /* find_wl_entry() {{{2 */
-*** ../vim-7.3.399/src/getchar.c 2011-12-23 14:54:01.000000000 +0100
---- src/getchar.c 2012-01-10 22:02:30.000000000 +0100
-***************
-*** 418,429 ****
-
- /*
- * Remove the contents of the stuff buffer and the mapped characters in the
-! * typeahead buffer (used in case of an error). If 'typeahead' is true,
- * flush all typeahead characters (used when interrupted by a CTRL-C).
- */
- void
-! flush_buffers(typeahead)
-! int typeahead;
- {
- init_typebuf();
-
---- 418,429 ----
-
- /*
- * Remove the contents of the stuff buffer and the mapped characters in the
-! * typeahead buffer (used in case of an error). If "flush_typeahead" is true,
- * flush all typeahead characters (used when interrupted by a CTRL-C).
- */
- void
-! flush_buffers(flush_typeahead)
-! int flush_typeahead;
- {
- init_typebuf();
-
-***************
-*** 431,437 ****
- while (read_stuff(TRUE) != NUL)
- ;
-
-! if (typeahead) /* remove all typeahead */
- {
- /*
- * We have to get all characters, because we may delete the first part
---- 431,437 ----
- while (read_stuff(TRUE) != NUL)
- ;
-
-! if (flush_typeahead) /* remove all typeahead */
- {
- /*
- * We have to get all characters, because we may delete the first part
-*** ../vim-7.3.399/src/message.c 2011-12-30 14:14:16.000000000 +0100
---- src/message.c 2012-01-10 22:03:56.000000000 +0100
-***************
-*** 2487,2493 ****
- #ifdef FEAT_CON_DIALOG
- int retval = FALSE;
- #endif
-! int scroll;
- msgchunk_T *mp_last = NULL;
- msgchunk_T *mp;
- int i;
---- 2487,2493 ----
- #ifdef FEAT_CON_DIALOG
- int retval = FALSE;
- #endif
-! int toscroll;
- msgchunk_T *mp_last = NULL;
- msgchunk_T *mp;
- int i;
-***************
-*** 2538,2586 ****
- }
- #endif
-
-! scroll = 0;
- switch (c)
- {
- case BS: /* scroll one line back */
- case K_BS:
- case 'k':
- case K_UP:
-! scroll = -1;
- break;
-
- case CAR: /* one extra line */
- case NL:
- case 'j':
- case K_DOWN:
-! scroll = 1;
- break;
-
- case 'u': /* Up half a page */
-! scroll = -(Rows / 2);
- break;
-
- case 'd': /* Down half a page */
-! scroll = Rows / 2;
- break;
-
- case 'b': /* one page back */
- case K_PAGEUP:
-! scroll = -(Rows - 1);
- break;
-
- case ' ': /* one extra page */
- case 'f':
- case K_PAGEDOWN:
- case K_LEFTMOUSE:
-! scroll = Rows - 1;
- break;
-
- case 'g': /* all the way back to the start */
-! scroll = -999999;
- break;
-
- case 'G': /* all the way to the end */
-! scroll = 999999;
- lines_left = 999999;
- break;
-
---- 2538,2586 ----
- }
- #endif
-
-! toscroll = 0;
- switch (c)
- {
- case BS: /* scroll one line back */
- case K_BS:
- case 'k':
- case K_UP:
-! toscroll = -1;
- break;
-
- case CAR: /* one extra line */
- case NL:
- case 'j':
- case K_DOWN:
-! toscroll = 1;
- break;
-
- case 'u': /* Up half a page */
-! toscroll = -(Rows / 2);
- break;
-
- case 'd': /* Down half a page */
-! toscroll = Rows / 2;
- break;
-
- case 'b': /* one page back */
- case K_PAGEUP:
-! toscroll = -(Rows - 1);
- break;
-
- case ' ': /* one extra page */
- case 'f':
- case K_PAGEDOWN:
- case K_LEFTMOUSE:
-! toscroll = Rows - 1;
- break;
-
- case 'g': /* all the way back to the start */
-! toscroll = -999999;
- break;
-
- case 'G': /* all the way to the end */
-! toscroll = 999999;
- lines_left = 999999;
- break;
-
-***************
-*** 2633,2641 ****
- continue;
- }
-
-! if (scroll != 0)
- {
-! if (scroll < 0)
- {
- /* go to start of last line */
- if (mp_last == NULL)
---- 2633,2641 ----
- continue;
- }
-
-! if (toscroll != 0)
- {
-! if (toscroll < 0)
- {
- /* go to start of last line */
- if (mp_last == NULL)
-***************
-*** 2653,2659 ****
- if (mp != NULL && mp->sb_prev != NULL)
- {
- /* Find line to be displayed at top. */
-! for (i = 0; i > scroll; --i)
- {
- if (mp == NULL || mp->sb_prev == NULL)
- break;
---- 2653,2659 ----
- if (mp != NULL && mp->sb_prev != NULL)
- {
- /* Find line to be displayed at top. */
-! for (i = 0; i > toscroll; --i)
- {
- if (mp == NULL || mp->sb_prev == NULL)
- break;
-***************
-*** 2664,2670 ****
- mp_last = msg_sb_start(mp_last->sb_prev);
- }
-
-! if (scroll == -1 && screen_ins_lines(0, 0, 1,
- (int)Rows, NULL) == OK)
- {
- /* display line at top */
---- 2664,2670 ----
- mp_last = msg_sb_start(mp_last->sb_prev);
- }
-
-! if (toscroll == -1 && screen_ins_lines(0, 0, 1,
- (int)Rows, NULL) == OK)
- {
- /* display line at top */
-***************
-*** 2680,2692 ****
- ++msg_scrolled;
- }
- }
-! scroll = 0;
- }
- }
- else
- {
- /* First display any text that we scrolled back. */
-! while (scroll > 0 && mp_last != NULL)
- {
- /* scroll up, display line at bottom */
- msg_scroll_up();
---- 2680,2692 ----
- ++msg_scrolled;
- }
- }
-! toscroll = 0;
- }
- }
- else
- {
- /* First display any text that we scrolled back. */
-! while (toscroll > 0 && mp_last != NULL)
- {
- /* scroll up, display line at bottom */
- msg_scroll_up();
-***************
-*** 2694,2704 ****
- screen_fill((int)Rows - 2, (int)Rows - 1, 0,
- (int)Columns, ' ', ' ', 0);
- mp_last = disp_sb_line((int)Rows - 2, mp_last);
-! --scroll;
- }
- }
-
-! if (scroll <= 0)
- {
- /* displayed the requested text, more prompt again */
- screen_fill((int)Rows - 1, (int)Rows, 0,
---- 2694,2704 ----
- screen_fill((int)Rows - 2, (int)Rows - 1, 0,
- (int)Columns, ' ', ' ', 0);
- mp_last = disp_sb_line((int)Rows - 2, mp_last);
-! --toscroll;
- }
- }
-
-! if (toscroll <= 0)
- {
- /* displayed the requested text, more prompt again */
- screen_fill((int)Rows - 1, (int)Rows, 0,
-***************
-*** 2708,2714 ****
- }
-
- /* display more text, return to caller */
-! lines_left = scroll;
- }
-
- break;
---- 2708,2714 ----
- }
-
- /* display more text, return to caller */
-! lines_left = toscroll;
- }
-
- break;
-*** ../vim-7.3.399/src/misc2.c 2012-01-10 16:28:41.000000000 +0100
---- src/misc2.c 2012-01-10 22:04:25.000000000 +0100
-***************
-*** 1559,1565 ****
- if (enc_utf8)
- {
- int c, uc;
-! int nl;
- char_u *s;
-
- c = utf_ptr2char(p);
---- 1559,1565 ----
- if (enc_utf8)
- {
- int c, uc;
-! int newl;
- char_u *s;
-
- c = utf_ptr2char(p);
-***************
-*** 1568,1588 ****
- /* Reallocate string when byte count changes. This is rare,
- * thus it's OK to do another malloc()/free(). */
- l = utf_ptr2len(p);
-! nl = utf_char2len(uc);
-! if (nl != l)
- {
-! s = alloc((unsigned)STRLEN(res) + 1 + nl - l);
- if (s == NULL)
- break;
- mch_memmove(s, res, p - res);
-! STRCPY(s + (p - res) + nl, p + l);
- p = s + (p - res);
- vim_free(res);
- res = s;
- }
-
- utf_char2bytes(uc, p);
-! p += nl;
- }
- else if (has_mbyte && (l = (*mb_ptr2len)(p)) > 1)
- p += l; /* skip multi-byte character */
---- 1568,1588 ----
- /* Reallocate string when byte count changes. This is rare,
- * thus it's OK to do another malloc()/free(). */
- l = utf_ptr2len(p);
-! newl = utf_char2len(uc);
-! if (newl != l)
- {
-! s = alloc((unsigned)STRLEN(res) + 1 + newl - l);
- if (s == NULL)
- break;
- mch_memmove(s, res, p - res);
-! STRCPY(s + (p - res) + newl, p + l);
- p = s + (p - res);
- vim_free(res);
- res = s;
- }
-
- utf_char2bytes(uc, p);
-! p += newl;
- }
- else if (has_mbyte && (l = (*mb_ptr2len)(p)) > 1)
- p += l; /* skip multi-byte character */
-*** ../vim-7.3.399/src/move.c 2011-02-01 18:01:06.000000000 +0100
---- src/move.c 2012-01-10 22:05:22.000000000 +0100
-***************
-*** 926,933 ****
- * Also updates curwin->w_leftcol.
- */
- void
-! curs_columns(scroll)
-! int scroll; /* when TRUE, may scroll horizontally */
- {
- int diff;
- int extra; /* offset for first screen line */
---- 926,933 ----
- * Also updates curwin->w_leftcol.
- */
- void
-! curs_columns(may_scroll)
-! int may_scroll; /* when TRUE, may scroll horizontally */
- {
- int diff;
- int extra; /* offset for first screen line */
-***************
-*** 1014,1020 ****
- /* No line wrapping: compute curwin->w_leftcol if scrolling is on and line
- * is not folded.
- * If scrolling is off, curwin->w_leftcol is assumed to be 0 */
-! else if (scroll
- #ifdef FEAT_FOLDING
- && !curwin->w_cline_folded
- #endif
---- 1014,1020 ----
- /* No line wrapping: compute curwin->w_leftcol if scrolling is on and line
- * is not folded.
- * If scrolling is off, curwin->w_leftcol is assumed to be 0 */
-! else if (may_scroll
- #ifdef FEAT_FOLDING
- && !curwin->w_cline_folded
- #endif
-*** ../vim-7.3.399/src/netbeans.c 2011-10-20 21:58:20.000000000 +0200
---- src/netbeans.c 2012-01-10 22:16:26.000000000 +0100
-***************
-*** 1395,1401 ****
- int cmdno,
- char_u *args) /* points to space before arguments or NUL */
- {
-! int doupdate = 0;
- long off = 0;
- nbbuf_T *buf = nb_get_buf(bufno);
- static int skip = 0;
---- 1395,1401 ----
- int cmdno,
- char_u *args) /* points to space before arguments or NUL */
- {
-! int do_update = 0;
- long off = 0;
- nbbuf_T *buf = nb_get_buf(bufno);
- static int skip = 0;
-***************
-*** 1600,1606 ****
- last.lnum, last.col));
- del_from_lnum = first.lnum;
- del_to_lnum = last.lnum;
-! doupdate = 1;
-
- /* Get the position of the first byte after the deleted
- * section. "next" is NULL when deleting to the end of the
---- 1600,1606 ----
- last.lnum, last.col));
- del_from_lnum = first.lnum;
- del_to_lnum = last.lnum;
-! do_update = 1;
-
- /* Get the position of the first byte after the deleted
- * section. "next" is NULL when deleting to the end of the
-***************
-*** 1777,1783 ****
- lnum = lnum_start;
-
- /* Loop over the "\n" separated lines of the argument. */
-! doupdate = 1;
- while (*args != NUL)
- {
- nl = vim_strchr(args, '\n');
---- 1777,1783 ----
- lnum = lnum_start;
-
- /* Loop over the "\n" separated lines of the argument. */
-! do_update = 1;
- while (*args != NUL)
- {
- nl = vim_strchr(args, '\n');
-***************
-*** 1992,1998 ****
- EMSG("E640: invalid buffer identifier in initDone");
- return FAIL;
- }
-! doupdate = 1;
- buf->initDone = TRUE;
- nb_set_curbuf(buf->bufp);
- #if defined(FEAT_AUTOCMD)
---- 1992,1998 ----
- EMSG("E640: invalid buffer identifier in initDone");
- return FAIL;
- }
-! do_update = 1;
- buf->initDone = TRUE;
- nb_set_curbuf(buf->bufp);
- #if defined(FEAT_AUTOCMD)
-***************
-*** 2081,2087 ****
- ECMD_HIDE + ECMD_OLDBUF, curwin);
- buf->bufp = curbuf;
- buf->initDone = TRUE;
-! doupdate = 1;
- #if defined(FEAT_TITLE)
- maketitle();
- #endif
---- 2081,2087 ----
- ECMD_HIDE + ECMD_OLDBUF, curwin);
- buf->bufp = curbuf;
- buf->initDone = TRUE;
-! do_update = 1;
- #if defined(FEAT_TITLE)
- maketitle();
- #endif
-***************
-*** 2109,2115 ****
- exarg.forceit = FALSE;
- dosetvisible = TRUE;
- goto_buffer(&exarg, DOBUF_FIRST, FORWARD, buf->bufp->b_fnum);
-! doupdate = 1;
- dosetvisible = FALSE;
-
- #ifdef FEAT_GUI
---- 2109,2115 ----
- exarg.forceit = FALSE;
- dosetvisible = TRUE;
- goto_buffer(&exarg, DOBUF_FIRST, FORWARD, buf->bufp->b_fnum);
-! do_update = 1;
- dosetvisible = FALSE;
-
- #ifdef FEAT_GUI
-***************
-*** 2309,2315 ****
- buf->bufp->b_fnum, TRUE);
- buf->bufp = NULL;
- buf->initDone = FALSE;
-! doupdate = 1;
- /* =====================================================================*/
- }
- else if (streq((char *)cmd, "setStyle")) /* obsolete... */
---- 2309,2315 ----
- buf->bufp->b_fnum, TRUE);
- buf->bufp = NULL;
- buf->initDone = FALSE;
-! do_update = 1;
- /* =====================================================================*/
- }
- else if (streq((char *)cmd, "setStyle")) /* obsolete... */
-***************
-*** 2400,2406 ****
- return FAIL;
- }
-
-! doupdate = 1;
-
- cp = (char *)args;
- serNum = strtol(cp, &cp, 10);
---- 2400,2406 ----
- return FAIL;
- }
-
-! do_update = 1;
-
- cp = (char *)args;
- serNum = strtol(cp, &cp, 10);
-***************
-*** 2448,2454 ****
- nbdebug((" invalid buffer identifier in removeAnno\n"));
- return FAIL;
- }
-! doupdate = 1;
- cp = (char *)args;
- serNum = strtol(cp, &cp, 10);
- args = (char_u *)cp;
---- 2448,2454 ----
- nbdebug((" invalid buffer identifier in removeAnno\n"));
- return FAIL;
- }
-! do_update = 1;
- cp = (char *)args;
- serNum = strtol(cp, &cp, 10);
- args = (char_u *)cp;
-***************
-*** 2493,2499 ****
- len = strtol(cp, NULL, 10);
- args = (char_u *)cp;
- pos = off2pos(buf->bufp, off);
-! doupdate = 1;
- if (!pos)
- nbdebug((" no such start pos in %s, %ld\n", cmd, off));
- else
---- 2493,2499 ----
- len = strtol(cp, NULL, 10);
- args = (char_u *)cp;
- pos = off2pos(buf->bufp, off);
-! do_update = 1;
- if (!pos)
- nbdebug((" no such start pos in %s, %ld\n", cmd, off));
- else
-***************
-*** 2555,2561 ****
- inAtomic = 0;
- if (needupdate)
- {
-! doupdate = 1;
- needupdate = 0;
- }
- /* =====================================================================*/
---- 2555,2561 ----
- inAtomic = 0;
- if (needupdate)
- {
-! do_update = 1;
- needupdate = 0;
- }
- /* =====================================================================*/
-***************
-*** 2636,2653 ****
- * Unrecognized command is ignored.
- */
- }
-! if (inAtomic && doupdate)
- {
- needupdate = 1;
-! doupdate = 0;
- }
-
- /*
- * Is this needed? I moved the netbeans_Xt_connect() later during startup
- * and it may no longer be necessary. If its not needed then needupdate
-! * and doupdate can also be removed.
- */
-! if (buf != NULL && buf->initDone && doupdate)
- {
- update_screen(NOT_VALID);
- setcursor();
---- 2636,2653 ----
- * Unrecognized command is ignored.
- */
- }
-! if (inAtomic && do_update)
- {
- needupdate = 1;
-! do_update = 0;
- }
-
- /*
- * Is this needed? I moved the netbeans_Xt_connect() later during startup
- * and it may no longer be necessary. If its not needed then needupdate
-! * and do_update can also be removed.
- */
-! if (buf != NULL && buf->initDone && do_update)
- {
- update_screen(NOT_VALID);
- setcursor();
-*** ../vim-7.3.399/src/option.c 2012-01-04 19:34:32.000000000 +0100
---- src/option.c 2012-01-10 22:06:03.000000000 +0100
-***************
-*** 8584,8591 ****
- long_u flags;
- {
- /* Careful: P_RCLR and P_RALL are a combination of other P_ flags */
-! int clear = (flags & P_RCLR) == P_RCLR;
-! int all = ((flags & P_RALL) == P_RALL || clear);
-
- #ifdef FEAT_WINDOWS
- if ((flags & P_RSTAT) || all) /* mark all status lines dirty */
---- 8584,8591 ----
- long_u flags;
- {
- /* Careful: P_RCLR and P_RALL are a combination of other P_ flags */
-! int doclear = (flags & P_RCLR) == P_RCLR;
-! int all = ((flags & P_RALL) == P_RALL || doclear);
-
- #ifdef FEAT_WINDOWS
- if ((flags & P_RSTAT) || all) /* mark all status lines dirty */
-***************
-*** 8596,8602 ****
- changed_window_setting();
- if (flags & P_RBUF)
- redraw_curbuf_later(NOT_VALID);
-! if (clear)
- redraw_all_later(CLEAR);
- else if (all)
- redraw_all_later(NOT_VALID);
---- 8596,8602 ----
- changed_window_setting();
- if (flags & P_RBUF)
- redraw_curbuf_later(NOT_VALID);
-! if (doclear)
- redraw_all_later(CLEAR);
- else if (all)
- redraw_all_later(NOT_VALID);
-*** ../vim-7.3.399/src/os_unix.c 2011-10-20 21:09:25.000000000 +0200
---- src/os_unix.c 2012-01-10 21:48:49.000000000 +0100
-***************
-*** 3884,3890 ****
- char_u *p_shcf_copy = NULL;
- int i;
- char_u *p;
-- char_u *s;
- int inquote;
- int pty_master_fd = -1; /* for pty's */
- # ifdef FEAT_GUI
---- 3884,3889 ----
-***************
-*** 3963,3968 ****
---- 3962,3969 ----
- }
- if (cmd != NULL)
- {
-+ char_u *s;
-+
- if (extra_shell_arg != NULL)
- argv[argc++] = (char *)extra_shell_arg;
-
-***************
-*** 4325,4331 ****
- linenr_T lnum = curbuf->b_op_start.lnum;
- int written = 0;
- char_u *lp = ml_get(lnum);
-- char_u *s;
- size_t l;
-
- close(fromshell_fd);
---- 4326,4331 ----
-***************
-*** 4339,4345 ****
- len = write(toshell_fd, "", (size_t)1);
- else
- {
-! s = vim_strchr(lp + written, NL);
- len = write(toshell_fd, (char *)lp + written,
- s == NULL ? l
- : (size_t)(s - (lp + written)));
---- 4339,4346 ----
- len = write(toshell_fd, "", (size_t)1);
- else
- {
-! char_u *s = vim_strchr(lp + written, NL);
-!
- len = write(toshell_fd, (char *)lp + written,
- s == NULL ? l
- : (size_t)(s - (lp + written)));
-*** ../vim-7.3.399/src/screen.c 2012-01-10 12:42:05.000000000 +0100
---- src/screen.c 2012-01-10 22:06:51.000000000 +0100
-***************
-*** 7849,7863 ****
-
- /*
- * screen_valid - allocate screen buffers if size changed
-! * If "clear" is TRUE: clear screen if it has been resized.
- * Returns TRUE if there is a valid screen to write to.
- * Returns FALSE when starting up and screen not initialized yet.
- */
- int
-! screen_valid(clear)
-! int clear;
- {
-! screenalloc(clear); /* allocate screen buffers if size changed */
- return (ScreenLines != NULL);
- }
-
---- 7849,7863 ----
-
- /*
- * screen_valid - allocate screen buffers if size changed
-! * If "doclear" is TRUE: clear screen if it has been resized.
- * Returns TRUE if there is a valid screen to write to.
- * Returns FALSE when starting up and screen not initialized yet.
- */
- int
-! screen_valid(doclear)
-! int doclear;
- {
-! screenalloc(doclear); /* allocate screen buffers if size changed */
- return (ScreenLines != NULL);
- }
-
-***************
-*** 7872,7879 ****
- * final size of the shell is needed.
- */
- void
-! screenalloc(clear)
-! int clear;
- {
- int new_row, old_row;
- #ifdef FEAT_GUI
---- 7872,7879 ----
- * final size of the shell is needed.
- */
- void
-! screenalloc(doclear)
-! int doclear;
- {
- int new_row, old_row;
- #ifdef FEAT_GUI
-***************
-*** 8069,8075 ****
- * (used when resizing the window at the "--more--" prompt or when
- * executing an external command, for the GUI).
- */
-! if (!clear)
- {
- (void)vim_memset(new_ScreenLines + new_row * Columns,
- ' ', (size_t)Columns * sizeof(schar_T));
---- 8069,8075 ----
- * (used when resizing the window at the "--more--" prompt or when
- * executing an external command, for the GUI).
- */
-! if (!doclear)
- {
- (void)vim_memset(new_ScreenLines + new_row * Columns,
- ' ', (size_t)Columns * sizeof(schar_T));
-***************
-*** 8159,8165 ****
- screen_Columns = Columns;
-
- must_redraw = CLEAR; /* need to clear the screen later */
-! if (clear)
- screenclear2();
-
- #ifdef FEAT_GUI
---- 8159,8165 ----
- screen_Columns = Columns;
-
- must_redraw = CLEAR; /* need to clear the screen later */
-! if (doclear)
- screenclear2();
-
- #ifdef FEAT_GUI
-*** ../vim-7.3.399/src/search.c 2011-10-04 17:00:13.000000000 +0200
---- src/search.c 2012-01-10 22:07:16.000000000 +0100
-***************
-*** 2402,2425 ****
- {
- if (vim_strchr(p, ';') != NULL) /* there may be comments */
- {
-! int instr = FALSE; /* inside of string */
-
- p = line; /* scan from start */
- while ((p = vim_strpbrk(p, (char_u *)"\";")) != NULL)
- {
- if (*p == '"')
- {
-! if (instr)
- {
- if (*(p - 1) != '\\') /* skip escaped quote */
-! instr = FALSE;
- }
- else if (p == line || ((p - line) >= 2
- /* skip #\" form */
- && *(p - 1) != '\\' && *(p - 2) != '#'))
-! instr = TRUE;
- }
-! else if (!instr && ((p - line) < 2
- || (*(p - 1) != '\\' && *(p - 2) != '#')))
- break; /* found! */
- ++p;
---- 2402,2425 ----
- {
- if (vim_strchr(p, ';') != NULL) /* there may be comments */
- {
-! int in_str = FALSE; /* inside of string */
-
- p = line; /* scan from start */
- while ((p = vim_strpbrk(p, (char_u *)"\";")) != NULL)
- {
- if (*p == '"')
- {
-! if (in_str)
- {
- if (*(p - 1) != '\\') /* skip escaped quote */
-! in_str = FALSE;
- }
- else if (p == line || ((p - line) >= 2
- /* skip #\" form */
- && *(p - 1) != '\\' && *(p - 2) != '#'))
-! in_str = TRUE;
- }
-! else if (!in_str && ((p - line) < 2
- || (*(p - 1) != '\\' && *(p - 2) != '#')))
- break; /* found! */
- ++p;
-*** ../vim-7.3.399/src/spell.c 2012-01-10 16:28:41.000000000 +0100
---- src/spell.c 2012-01-10 22:09:23.000000000 +0100
-***************
-*** 5049,5055 ****
- static int offset2bytes __ARGS((int nr, char_u *buf));
- static int bytes2offset __ARGS((char_u **pp));
- static void sug_write __ARGS((spellinfo_T *spin, char_u *fname));
-! static void mkspell __ARGS((int fcount, char_u **fnames, int ascii, int overwrite, int added_word));
- static void spell_message __ARGS((spellinfo_T *spin, char_u *str));
- static void init_spellfile __ARGS((void));
-
---- 5049,5055 ----
- static int offset2bytes __ARGS((int nr, char_u *buf));
- static int bytes2offset __ARGS((char_u **pp));
- static void sug_write __ARGS((spellinfo_T *spin, char_u *fname));
-! static void mkspell __ARGS((int fcount, char_u **fnames, int ascii, int over_write, int added_word));
- static void spell_message __ARGS((spellinfo_T *spin, char_u *str));
- static void init_spellfile __ARGS((void));
-
-***************
-*** 9085,9095 ****
- * and ".spl" is appended to make the output file name.
- */
- static void
-! mkspell(fcount, fnames, ascii, overwrite, added_word)
- int fcount;
- char_u **fnames;
- int ascii; /* -ascii argument given */
-! int overwrite; /* overwrite existing output file */
- int added_word; /* invoked through "zg" */
- {
- char_u *fname = NULL;
---- 9085,9095 ----
- * and ".spl" is appended to make the output file name.
- */
- static void
-! mkspell(fcount, fnames, ascii, over_write, added_word)
- int fcount;
- char_u **fnames;
- int ascii; /* -ascii argument given */
-! int over_write; /* overwrite existing output file */
- int added_word; /* invoked through "zg" */
- {
- char_u *fname = NULL;
-***************
-*** 9173,9179 ****
- {
- /* Check for overwriting before doing things that may take a lot of
- * time. */
-! if (!overwrite && mch_stat((char *)wfname, &st) >= 0)
- {
- EMSG(_(e_exists));
- goto theend;
---- 9173,9179 ----
- {
- /* Check for overwriting before doing things that may take a lot of
- * time. */
-! if (!over_write && mch_stat((char *)wfname, &st) >= 0)
- {
- EMSG(_(e_exists));
- goto theend;
-*** ../vim-7.3.399/src/syntax.c 2011-06-19 04:54:17.000000000 +0200
---- src/syntax.c 2012-01-10 22:10:23.000000000 +0100
-***************
-*** 4006,4022 ****
- }
-
- static void
-! syn_list_flags(nl, flags, attr)
-! struct name_list *nl;
- int flags;
- int attr;
- {
- int i;
-
-! for (i = 0; nl[i].flag != 0; ++i)
-! if (flags & nl[i].flag)
- {
-! msg_puts_attr((char_u *)nl[i].name, attr);
- msg_putchar(' ');
- }
- }
---- 4006,4022 ----
- }
-
- static void
-! syn_list_flags(nlist, flags, attr)
-! struct name_list *nlist;
- int flags;
- int attr;
- {
- int i;
-
-! for (i = 0; nlist[i].flag != 0; ++i)
-! if (flags & nlist[i].flag)
- {
-! msg_puts_attr((char_u *)nlist[i].name, attr);
- msg_putchar(' ');
- }
- }
-*** ../vim-7.3.399/src/tag.c 2011-12-14 14:15:12.000000000 +0100
---- src/tag.c 2012-01-10 21:51:05.000000000 +0100
-***************
-*** 1353,1359 ****
- int match_count = 0; /* number of matches found */
- char_u **matches;
- int mtt;
-- int len;
- int help_save;
- #ifdef FEAT_MULTI_LANG
- int help_pri = 0;
---- 1353,1358 ----
-***************
-*** 2235,2240 ****
---- 2234,2241 ----
- */
- if (ga_grow(&ga_match[mtt], 1) == OK)
- {
-+ int len;
-+
- if (help_only)
- {
- #ifdef FEAT_MULTI_LANG
-*** ../vim-7.3.399/src/window.c 2011-12-30 15:01:55.000000000 +0100
---- src/window.c 2012-01-10 22:11:41.000000000 +0100
-***************
-*** 683,701 ****
- }
-
- /*
-! * When "newwin" is NULL: split the current window in two.
-! * When "newwin" is not NULL: insert this window at the far
- * top/left/right/bottom.
- * return FAIL for failure, OK otherwise
- */
- int
-! win_split_ins(size, flags, newwin, dir)
- int size;
- int flags;
-! win_T *newwin;
- int dir;
- {
-! win_T *wp = newwin;
- win_T *oldwin;
- int new_size = size;
- int i;
---- 683,701 ----
- }
-
- /*
-! * When "new_wp" is NULL: split the current window in two.
-! * When "new_wp" is not NULL: insert this window at the far
- * top/left/right/bottom.
- * return FAIL for failure, OK otherwise
- */
- int
-! win_split_ins(size, flags, new_wp, dir)
- int size;
- int flags;
-! win_T *new_wp;
- int dir;
- {
-! win_T *wp = new_wp;
- win_T *oldwin;
- int new_size = size;
- int i;
-***************
-*** 718,724 ****
- /* add a status line when p_ls == 1 and splitting the first window */
- if (lastwin == firstwin && p_ls == 1 && oldwin->w_status_height == 0)
- {
-! if (oldwin->w_height <= p_wmh && newwin == NULL)
- {
- EMSG(_(e_noroom));
- return FAIL;
---- 718,724 ----
- /* add a status line when p_ls == 1 and splitting the first window */
- if (lastwin == firstwin && p_ls == 1 && oldwin->w_status_height == 0)
- {
-! if (oldwin->w_height <= p_wmh && new_wp == NULL)
- {
- EMSG(_(e_noroom));
- return FAIL;
-***************
-*** 751,757 ****
- }
- else
- available = oldwin->w_width;
-! if (available < needed && newwin == NULL)
- {
- EMSG(_(e_noroom));
- return FAIL;
---- 751,757 ----
- }
- else
- available = oldwin->w_width;
-! if (available < needed && new_wp == NULL)
- {
- EMSG(_(e_noroom));
- return FAIL;
-***************
-*** 815,821 ****
- available = oldwin->w_height;
- needed += p_wmh;
- }
-! if (available < needed && newwin == NULL)
- {
- EMSG(_(e_noroom));
- return FAIL;
---- 815,821 ----
- available = oldwin->w_height;
- needed += p_wmh;
- }
-! if (available < needed && new_wp == NULL)
- {
- EMSG(_(e_noroom));
- return FAIL;
-***************
-*** 888,907 ****
- p_sb))))
- {
- /* new window below/right of current one */
-! if (newwin == NULL)
- wp = win_alloc(oldwin, FALSE);
- else
- win_append(oldwin, wp);
- }
- else
- {
-! if (newwin == NULL)
- wp = win_alloc(oldwin->w_prev, FALSE);
- else
- win_append(oldwin->w_prev, wp);
- }
-
-! if (newwin == NULL)
- {
- if (wp == NULL)
- return FAIL;
---- 888,907 ----
- p_sb))))
- {
- /* new window below/right of current one */
-! if (new_wp == NULL)
- wp = win_alloc(oldwin, FALSE);
- else
- win_append(oldwin, wp);
- }
- else
- {
-! if (new_wp == NULL)
- wp = win_alloc(oldwin->w_prev, FALSE);
- else
- win_append(oldwin->w_prev, wp);
- }
-
-! if (new_wp == NULL)
- {
- if (wp == NULL)
- return FAIL;
-***************
-*** 972,981 ****
- frp->fr_parent = curfrp;
- }
-
-! if (newwin == NULL)
- frp = wp->w_frame;
- else
-! frp = newwin->w_frame;
- frp->fr_parent = curfrp->fr_parent;
-
- /* Insert the new frame at the right place in the frame list. */
---- 972,981 ----
- frp->fr_parent = curfrp;
- }
-
-! if (new_wp == NULL)
- frp = wp->w_frame;
- else
-! frp = new_wp->w_frame;
- frp->fr_parent = curfrp->fr_parent;
-
- /* Insert the new frame at the right place in the frame list. */
-***************
-*** 4284,4302 ****
- win_T *after UNUSED;
- int hidden UNUSED;
- {
-! win_T *newwin;
-
- /*
- * allocate window structure and linesizes arrays
- */
-! newwin = (win_T *)alloc_clear((unsigned)sizeof(win_T));
-! if (newwin != NULL && win_alloc_lines(newwin) == FAIL)
- {
-! vim_free(newwin);
-! newwin = NULL;
- }
-
-! if (newwin != NULL)
- {
- #ifdef FEAT_AUTOCMD
- /* Don't execute autocommands while the window is not properly
---- 4284,4302 ----
- win_T *after UNUSED;
- int hidden UNUSED;
- {
-! win_T *new_wp;
-
- /*
- * allocate window structure and linesizes arrays
- */
-! new_wp = (win_T *)alloc_clear((unsigned)sizeof(win_T));
-! if (new_wp != NULL && win_alloc_lines(new_wp) == FAIL)
- {
-! vim_free(new_wp);
-! new_wp = NULL;
- }
-
-! if (new_wp != NULL)
- {
- #ifdef FEAT_AUTOCMD
- /* Don't execute autocommands while the window is not properly
-***************
-*** 4309,4361 ****
- */
- #ifdef FEAT_WINDOWS
- if (!hidden)
-! win_append(after, newwin);
- #endif
- #ifdef FEAT_VERTSPLIT
-! newwin->w_wincol = 0;
-! newwin->w_width = Columns;
- #endif
-
- /* position the display and the cursor at the top of the file. */
-! newwin->w_topline = 1;
- #ifdef FEAT_DIFF
-! newwin->w_topfill = 0;
- #endif
-! newwin->w_botline = 2;
-! newwin->w_cursor.lnum = 1;
- #ifdef FEAT_SCROLLBIND
-! newwin->w_scbind_pos = 1;
- #endif
-
- /* We won't calculate w_fraction until resizing the window */
-! newwin->w_fraction = 0;
-! newwin->w_prev_fraction_row = -1;
-
- #ifdef FEAT_GUI
- if (gui.in_use)
- {
-! gui_create_scrollbar(&newwin->w_scrollbars[SBAR_LEFT],
-! SBAR_LEFT, newwin);
-! gui_create_scrollbar(&newwin->w_scrollbars[SBAR_RIGHT],
-! SBAR_RIGHT, newwin);
- }
- #endif
- #ifdef FEAT_EVAL
- /* init w: variables */
-! init_var_dict(&newwin->w_vars, &newwin->w_winvar);
- #endif
- #ifdef FEAT_FOLDING
-! foldInitWin(newwin);
- #endif
- #ifdef FEAT_AUTOCMD
- unblock_autocmds();
- #endif
- #ifdef FEAT_SEARCH_EXTRA
-! newwin->w_match_head = NULL;
-! newwin->w_next_match_id = 4;
- #endif
- }
-! return newwin;
- }
-
- #if defined(FEAT_WINDOWS) || defined(PROTO)
---- 4309,4361 ----
- */
- #ifdef FEAT_WINDOWS
- if (!hidden)
-! win_append(after, new_wp);
- #endif
- #ifdef FEAT_VERTSPLIT
-! new_wp->w_wincol = 0;
-! new_wp->w_width = Columns;
- #endif
-
- /* position the display and the cursor at the top of the file. */
-! new_wp->w_topline = 1;
- #ifdef FEAT_DIFF
-! new_wp->w_topfill = 0;
- #endif
-! new_wp->w_botline = 2;
-! new_wp->w_cursor.lnum = 1;
- #ifdef FEAT_SCROLLBIND
-! new_wp->w_scbind_pos = 1;
- #endif
-
- /* We won't calculate w_fraction until resizing the window */
-! new_wp->w_fraction = 0;
-! new_wp->w_prev_fraction_row = -1;
-
- #ifdef FEAT_GUI
- if (gui.in_use)
- {
-! gui_create_scrollbar(&new_wp->w_scrollbars[SBAR_LEFT],
-! SBAR_LEFT, new_wp);
-! gui_create_scrollbar(&new_wp->w_scrollbars[SBAR_RIGHT],
-! SBAR_RIGHT, new_wp);
- }
- #endif
- #ifdef FEAT_EVAL
- /* init w: variables */
-! init_var_dict(&new_wp->w_vars, &new_wp->w_winvar);
- #endif
- #ifdef FEAT_FOLDING
-! foldInitWin(new_wp);
- #endif
- #ifdef FEAT_AUTOCMD
- unblock_autocmds();
- #endif
- #ifdef FEAT_SEARCH_EXTRA
-! new_wp->w_match_head = NULL;
-! new_wp->w_next_match_id = 4;
- #endif
- }
-! return new_wp;
- }
-
- #if defined(FEAT_WINDOWS) || defined(PROTO)
-*** ../vim-7.3.399/src/version.c 2012-01-10 18:37:53.000000000 +0100
---- src/version.c 2012-01-10 22:23:10.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 400,
- /**/
-
---
-A parent can be arrested if his child cannot hold back a burp during a church
-service.
- [real standing law in Nebraska, 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.401
-Fcc: 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.401
-Problem: A couple more shadowed variables.
-Solution: Rename the variables.
-Files: src/netbeans.c
-
-
-*** ../vim-7.3.400/src/netbeans.c 2012-01-10 22:26:12.000000000 +0100
---- src/netbeans.c 2012-01-10 22:30:17.000000000 +0100
-***************
-*** 443,449 ****
- FILE *fp;
- char_u buf[BUFSIZ];
- char_u *lp;
-! char_u *nl;
- #ifdef UNIX
- struct stat st;
-
---- 443,449 ----
- FILE *fp;
- char_u buf[BUFSIZ];
- char_u *lp;
-! char_u *nlp;
- #ifdef UNIX
- struct stat st;
-
-***************
-*** 472,479 ****
- /* Read the file. There should be one of each parameter */
- while ((lp = (char_u *)fgets((char *)buf, BUFSIZ, fp)) != NULL)
- {
-! if ((nl = vim_strchr(lp, '\n')) != NULL)
-! *nl = 0; /* strip off the trailing newline */
-
- if (STRNCMP(lp, "host=", 5) == 0)
- {
---- 472,479 ----
- /* Read the file. There should be one of each parameter */
- while ((lp = (char_u *)fgets((char *)buf, BUFSIZ, fp)) != NULL)
- {
-! if ((nlp = vim_strchr(lp, '\n')) != NULL)
-! *nlp = 0; /* strip off the trailing newline */
-
- if (STRNCMP(lp, "host=", 5) == 0)
- {
-***************
-*** 1740,1746 ****
- int added = 0;
- int oldFire = netbeansFireChanges;
- int old_b_changed;
-! char_u *nl;
- linenr_T lnum;
- linenr_T lnum_start;
- pos_T *pos;
---- 1740,1746 ----
- int added = 0;
- int oldFire = netbeansFireChanges;
- int old_b_changed;
-! char_u *nlp;
- linenr_T lnum;
- linenr_T lnum_start;
- pos_T *pos;
-***************
-*** 1780,1787 ****
- do_update = 1;
- while (*args != NUL)
- {
-! nl = vim_strchr(args, '\n');
-! if (nl == NULL)
- {
- /* Incomplete line, probably truncated. Next "insert"
- * command should append to this one. */
---- 1780,1787 ----
- do_update = 1;
- while (*args != NUL)
- {
-! nlp = vim_strchr(args, '\n');
-! if (nlp == NULL)
- {
- /* Incomplete line, probably truncated. Next "insert"
- * command should append to this one. */
-***************
-*** 1789,1801 ****
- }
- else
- {
-! len = nl - args;
-
- /*
- * We need to detect EOL style, because the commands
- * use a character offset.
- */
-! if (nl > args && nl[-1] == '\r')
- {
- ff_detected = EOL_DOS;
- --len;
---- 1789,1801 ----
- }
- else
- {
-! len = nlp - args;
-
- /*
- * We need to detect EOL style, because the commands
- * use a character offset.
- */
-! if (nlp > args && nlp[-1] == '\r')
- {
- ff_detected = EOL_DOS;
- --len;
-***************
-*** 1814,1820 ****
-
- /* Insert halfway a line. For simplicity we assume we
- * need to append to the line. */
-! newline = alloc_check((unsigned)(STRLEN(oldline) + len + 1));
- if (newline != NULL)
- {
- STRCPY(newline, oldline);
---- 1814,1821 ----
-
- /* Insert halfway a line. For simplicity we assume we
- * need to append to the line. */
-! newline = alloc_check(
-! (unsigned)(STRLEN(oldline) + len + 1));
- if (newline != NULL)
- {
- STRCPY(newline, oldline);
-***************
-*** 1826,1839 ****
- {
- /* Append a new line. Not that we always do this,
- * also when the text doesn't end in a "\n". */
-! ml_append((linenr_T)(lnum - 1), args, (colnr_T)(len + 1), FALSE);
- ++added;
- }
-
-! if (nl == NULL)
- break;
- ++lnum;
-! args = nl + 1;
- }
-
- /* Adjust the marks below the inserted lines. */
---- 1827,1841 ----
- {
- /* Append a new line. Not that we always do this,
- * also when the text doesn't end in a "\n". */
-! ml_append((linenr_T)(lnum - 1), args,
-! (colnr_T)(len + 1), FALSE);
- ++added;
- }
-
-! if (nlp == NULL)
- break;
- ++lnum;
-! args = nlp + 1;
- }
-
- /* Adjust the marks below the inserted lines. */
-*** ../vim-7.3.400/src/version.c 2012-01-10 22:26:12.000000000 +0100
---- src/version.c 2012-01-10 22:30:47.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 401,
- /**/
-
---
-So when I saw the post to comp.editors, I rushed over to the FTP site to
-grab it. So I yank apart the tarball, light x candles, where x= the
-vim version multiplied by the md5sum of the source divided by the MAC of
-my NIC (8A3FA78155A8A1D346C3C4A), put on black robes, dim the lights,
-wave a dead chicken over the hard drive, and summon the power of GNU GCC
-with the magic words "make config ; make!".
- [Jason Spence, compiling Vim 5.0]
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.402
-Fcc: 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.402
-Problem: When jumping to the first error a line of the buffer is sometimes
- redrawn on top of the list of errors.
-Solution: Do not call update_topline_redraw() if the display was scrolled
- up.
-Files: src/quickfix.c
-
-
-*** ../vim-7.3.401/src/quickfix.c 2012-01-10 17:13:48.000000000 +0100
---- src/quickfix.c 2012-01-20 13:13:25.000000000 +0100
-***************
-*** 1842,1849 ****
- #endif
- if (print_message)
- {
-! /* Update the screen before showing the message */
-! update_topline_redraw();
- sprintf((char *)IObuff, _("(%d of %d)%s%s: "), qf_index,
- qi->qf_lists[qi->qf_curlist].qf_count,
- qf_ptr->qf_cleared ? _(" (line deleted)") : "",
---- 1842,1851 ----
- #endif
- if (print_message)
- {
-! /* Update the screen before showing the message, unless the screen
-! * scrolled up. */
-! if (!msg_scrolled)
-! update_topline_redraw();
- sprintf((char *)IObuff, _("(%d of %d)%s%s: "), qf_index,
- qi->qf_lists[qi->qf_curlist].qf_count,
- qf_ptr->qf_cleared ? _(" (line deleted)") : "",
-*** ../vim-7.3.401/src/version.c 2012-01-10 22:31:26.000000000 +0100
---- src/version.c 2012-01-20 13:17:50.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 402,
- /**/
-
---
-If all you have is a hammer, everything looks like a nail.
-When your hammer is C++, everything begins to look like a thumb.
- -- Steve Hoflich, comp.lang.c++
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.403
-Fcc: 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.403
-Problem: ":helpgrep" does not trigger QuickFixCmd* autocommands.
-Solution: Trigger the autocommands. (Christian Brabandt)
-Files: src/quickfix.c
-
-
-*** ../vim-7.3.402/src/quickfix.c 2012-01-20 13:28:28.000000000 +0100
---- src/quickfix.c 2012-01-20 13:37:10.000000000 +0100
-***************
-*** 3878,3893 ****
- qf_info_T *qi = &ql_info;
- int new_qi = FALSE;
- win_T *wp;
-!
-! /* Make 'cpoptions' empty, the 'l' flag should not be used here. */
-! save_cpo = p_cpo;
-! p_cpo = empty_option;
-
- #ifdef FEAT_MULTI_LANG
- /* Check for a specified language */
- lang = check_help_lang(eap->arg);
- #endif
-
- if (eap->cmdidx == CMD_lhelpgrep)
- {
- /* Find an existing help window */
---- 3878,3912 ----
- qf_info_T *qi = &ql_info;
- int new_qi = FALSE;
- win_T *wp;
-! #ifdef FEAT_AUTOCMD
-! char_u *au_name = NULL;
-! #endif
-
- #ifdef FEAT_MULTI_LANG
- /* Check for a specified language */
- lang = check_help_lang(eap->arg);
- #endif
-
-+ #ifdef FEAT_AUTOCMD
-+ switch (eap->cmdidx)
-+ {
-+ case CMD_helpgrep: au_name = (char_u *)"helpgrep"; break;
-+ case CMD_lhelpgrep: au_name = (char_u *)"lhelpgrep"; break;
-+ default: break;
-+ }
-+ if (au_name != NULL)
-+ {
-+ apply_autocmds(EVENT_QUICKFIXCMDPRE, au_name,
-+ curbuf->b_fname, TRUE, curbuf);
-+ if (did_throw || force_abort)
-+ return;
-+ }
-+ #endif
-+
-+ /* Make 'cpoptions' empty, the 'l' flag should not be used here. */
-+ save_cpo = p_cpo;
-+ p_cpo = empty_option;
-+
- if (eap->cmdidx == CMD_lhelpgrep)
- {
- /* Find an existing help window */
-***************
-*** 4036,4041 ****
---- 4055,4071 ----
- qf_update_buffer(qi);
- #endif
-
-+ #ifdef FEAT_AUTOCMD
-+ if (au_name != NULL)
-+ {
-+ apply_autocmds(EVENT_QUICKFIXCMDPOST, au_name,
-+ curbuf->b_fname, TRUE, curbuf);
-+ if (!new_qi && qi != &ql_info && qf_find_buf(qi) == NULL)
-+ /* autocommands made "qi" invalid */
-+ return;
-+ }
-+ #endif
-+
- /* Jump to first match. */
- if (qi->qf_lists[qi->qf_curlist].qf_count > 0)
- qf_jump(qi, 0, 0, FALSE);
-*** ../vim-7.3.402/src/version.c 2012-01-20 13:28:28.000000000 +0100
---- src/version.c 2012-01-20 13:30:37.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 403,
- /**/
-
---
-Looking at Perl through Lisp glasses, Perl looks atrocious.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.404
-Fcc: 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.404
-Problem: When a complete function uses refresh "always" redo will not work
- properly.
-Solution: Do not reset compl_leader when compl_opt_refresh_always is set.
- (Yasuhiro Matsumoto)
-Files: src/edit.c
-
-
-*** ../vim-7.3.403/src/edit.c 2012-01-10 22:26:12.000000000 +0100
---- src/edit.c 2012-01-20 14:26:06.000000000 +0100
-***************
-*** 3465,3475 ****
- if (ins_compl_need_restart())
- ins_compl_restart();
-
-! vim_free(compl_leader);
-! compl_leader = vim_strnsave(ml_get_curline() + compl_col,
- (int)(curwin->w_cursor.col - compl_col));
-! if (compl_leader != NULL)
-! ins_compl_new_leader();
- }
-
- /*
---- 3465,3481 ----
- if (ins_compl_need_restart())
- ins_compl_restart();
-
-! /* When 'always' is set, don't reset compl_leader. While completing,
-! * cursor don't point original position, changing compl_leader would
-! * break redo. */
-! if (!compl_opt_refresh_always)
-! {
-! vim_free(compl_leader);
-! compl_leader = vim_strnsave(ml_get_curline() + compl_col,
- (int)(curwin->w_cursor.col - compl_col));
-! if (compl_leader != NULL)
-! ins_compl_new_leader();
-! }
- }
-
- /*
-***************
-*** 4554,4559 ****
---- 4560,4570 ----
- int found_end = FALSE;
- int advance;
-
-+ /* When user complete function return -1 for findstart which is next
-+ * time of 'always', compl_shown_match become NULL. */
-+ if (compl_shown_match == NULL)
-+ return -1;
-+
- if (compl_leader != NULL
- && (compl_shown_match->cp_flags & ORIGINAL_TEXT) == 0)
- {
-*** ../vim-7.3.403/src/version.c 2012-01-20 13:39:03.000000000 +0100
---- src/version.c 2012-01-20 14:31:26.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 404,
- /**/
-
---
-ARTHUR: I've said I'm sorry about the old woman, but from the behind you
- looked ...
-DENNIS: What I object to is that you automatically treat me like an inferior...
-ARTHUR: Well ... I AM king.
- "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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.405
-Fcc: 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.405
-Problem: When xterm gets back the function keys it may delete the urxvt
- mouse termcap code.
-Solution: Check for the whole code, not just the start. (Egmont Koblinger)
-Files: src/keymap.h, src/misc2.c, src/term.c
-
-
-*** ../vim-7.3.404/src/keymap.h 2011-10-20 21:09:25.000000000 +0200
---- src/keymap.h 2012-01-20 16:35:43.000000000 +0100
-***************
-*** 411,416 ****
---- 411,417 ----
- #define K_DEC_MOUSE TERMCAP2KEY(KS_DEC_MOUSE, KE_FILLER)
- #define K_JSBTERM_MOUSE TERMCAP2KEY(KS_JSBTERM_MOUSE, KE_FILLER)
- #define K_PTERM_MOUSE TERMCAP2KEY(KS_PTERM_MOUSE, KE_FILLER)
-+ #define K_URXVT_MOUSE TERMCAP2KEY(KS_URXVT_MOUSE, KE_FILLER)
-
- #define K_SELECT TERMCAP2KEY(KS_SELECT, KE_FILLER)
- #define K_TEAROFF TERMCAP2KEY(KS_TEAROFF, KE_FILLER)
-*** ../vim-7.3.404/src/misc2.c 2012-01-10 22:26:12.000000000 +0100
---- src/misc2.c 2012-01-20 16:38:27.000000000 +0100
-***************
-*** 2416,2425 ****
---- 2416,2436 ----
- {'<', (char_u *)"lt"},
-
- {K_MOUSE, (char_u *)"Mouse"},
-+ #ifdef FEAT_MOUSE_NET
- {K_NETTERM_MOUSE, (char_u *)"NetMouse"},
-+ #endif
-+ #ifdef FEAT_MOUSE_DEC
- {K_DEC_MOUSE, (char_u *)"DecMouse"},
-+ #endif
-+ #ifdef FEAT_MOUSE_JSB
- {K_JSBTERM_MOUSE, (char_u *)"JsbMouse"},
-+ #endif
-+ #ifdef FEAT_MOUSE_PTERM
- {K_PTERM_MOUSE, (char_u *)"PtermMouse"},
-+ #endif
-+ #ifdef FEAT_MOUSE_URXVT
-+ {K_URXVT_MOUSE, (char_u *)"UrxvtMouse"},
-+ #endif
- {K_LEFTMOUSE, (char_u *)"LeftMouse"},
- {K_LEFTMOUSE_NM, (char_u *)"LeftMouseNM"},
- {K_LEFTDRAG, (char_u *)"LeftDrag"},
-*** ../vim-7.3.404/src/term.c 2011-12-01 20:59:16.000000000 +0100
---- src/term.c 2012-01-20 16:50:41.000000000 +0100
-***************
-*** 5252,5263 ****
- char_u *src;
- {
- int i;
-! int slen;
-
- for (i = 0; i < tc_len; ++i)
- {
-! slen = termcodes[i].len;
-! if (slen > 1 && STRNCMP(termcodes[i].code, src, (size_t)slen) == 0)
- return i;
- }
- return -1;
---- 5252,5263 ----
- char_u *src;
- {
- int i;
-! int slen = STRLEN(src);
-
- for (i = 0; i < tc_len; ++i)
- {
-! if (slen == termcodes[i].len
-! && STRNCMP(termcodes[i].code, src, (size_t)slen) == 0)
- return i;
- }
- return -1;
-*** ../vim-7.3.404/src/version.c 2012-01-20 14:32:22.000000000 +0100
---- src/version.c 2012-01-20 16:59:47.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 405,
- /**/
-
---
-"The future's already arrived - it's just not evenly distributed yet."
- -- William Gibson
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.406
-Fcc: 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.406
-Problem: Multi-byte characters in b:browsefilter are not handled correctly.
-Solution: First use convert_filter() normally and then convert to wide
- characters. (Taro Muraoka)
-Files: src/gui_w48.c
-
-
-*** ../vim-7.3.405/src/gui_w48.c 2011-09-07 18:58:24.000000000 +0200
---- src/gui_w48.c 2012-01-20 17:54:19.000000000 +0100
-***************
-*** 328,333 ****
---- 328,337 ----
- static LRESULT _OnImeNotify(HWND hWnd, DWORD dwCommand, DWORD dwData);
- #endif
-
-+ #if defined(FEAT_MBYTE) && defined(WIN3264)
-+ static char_u *convert_filter(char_u *s);
-+ #endif
-+
- #ifdef DEBUG_PRINT_ERROR
- /*
- * Print out the last Windows error message
-***************
-*** 3275,3302 ****
-
- # if defined(FEAT_MBYTE) && defined(WIN3264)
- /*
-! * Wide version of convert_filter(). Keep in sync!
- */
- static WCHAR *
- convert_filterW(char_u *s)
- {
-! WCHAR *res;
-! unsigned s_len = (unsigned)STRLEN(s);
-! unsigned i;
-
-! res = (WCHAR *)alloc((s_len + 3) * sizeof(WCHAR));
-! if (res != NULL)
-! {
-! for (i = 0; i < s_len; ++i)
-! if (s[i] == '\t' || s[i] == '\n')
-! res[i] = '\0';
-! else
-! res[i] = s[i];
-! res[s_len] = NUL;
-! /* Add two extra NULs to make sure it's properly terminated. */
-! res[s_len + 1] = NUL;
-! res[s_len + 2] = NUL;
-! }
- return res;
- }
-
---- 3279,3298 ----
-
- # if defined(FEAT_MBYTE) && defined(WIN3264)
- /*
-! * Wide version of convert_filter().
- */
- static WCHAR *
- convert_filterW(char_u *s)
- {
-! char_u *tmp;
-! int len;
-
-! tmp = convert_filter(s);
-! if (tmp == NULL)
-! return NULL;
-! len = (int)STRLEN(s) + 3;
-! res = enc_to_utf16(tmp, &len);
-! vim_free(tmp);
- return res;
- }
-
-*** ../vim-7.3.405/src/version.c 2012-01-20 17:15:47.000000000 +0100
---- src/version.c 2012-01-20 17:57:09.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 406,
- /**/
-
---
-DENNIS: Look, strange women lying on their backs in ponds handing out
- swords ... that's no basis for a system of government. Supreme
- executive power derives from a mandate from the masses, not from some
- farcical aquatic ceremony.
- "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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.407
-Fcc: 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.407
-Problem: ":12verbose call F()" may duplicate text while trying to truncate.
- (Thinca)
-Solution: Only truncate when there is not enough room. Also check the byte
- length of the buffer.
-Files: src/buffer.c, src/eval.c, src/ex_getln.c, src/message.c,
- src/proto/message.pro
-
-
-*** ../vim-7.3.406/src/buffer.c 2011-12-30 13:39:04.000000000 +0100
---- src/buffer.c 2012-01-20 18:37:43.000000000 +0100
-***************
-*** 3258,3266 ****
- if (maxlen > 0)
- {
- /* make it shorter by removing a bit in the middle */
-! len = vim_strsize(buf);
-! if (len > maxlen)
-! trunc_string(buf, buf, maxlen);
- }
- }
- }
---- 3258,3265 ----
- if (maxlen > 0)
- {
- /* make it shorter by removing a bit in the middle */
-! if (vim_strsize(buf) > maxlen)
-! trunc_string(buf, buf, maxlen, IOSIZE);
- }
- }
- }
-*** ../vim-7.3.406/src/eval.c 2012-01-10 22:26:12.000000000 +0100
---- src/eval.c 2012-01-20 20:43:32.000000000 +0100
-***************
-*** 22163,22170 ****
- s = tv2string(&argvars[i], &tofree, numbuf2, 0);
- if (s != NULL)
- {
-! trunc_string(s, buf, MSG_BUF_CLEN);
-! msg_puts(buf);
- vim_free(tofree);
- }
- }
---- 22163,22174 ----
- s = tv2string(&argvars[i], &tofree, numbuf2, 0);
- if (s != NULL)
- {
-! if (vim_strsize(s) > MSG_BUF_CLEN)
-! {
-! trunc_string(s, buf, MSG_BUF_CLEN, MSG_BUF_LEN);
-! s = buf;
-! }
-! msg_puts(s);
- vim_free(tofree);
- }
- }
-***************
-*** 22252,22259 ****
- s = tv2string(fc->rettv, &tofree, numbuf2, 0);
- if (s != NULL)
- {
-! trunc_string(s, buf, MSG_BUF_CLEN);
-! smsg((char_u *)_("%s returning %s"), sourcing_name, buf);
- vim_free(tofree);
- }
- }
---- 22256,22267 ----
- s = tv2string(fc->rettv, &tofree, numbuf2, 0);
- if (s != NULL)
- {
-! if (vim_strsize(s) > MSG_BUF_CLEN)
-! {
-! trunc_string(s, buf, MSG_BUF_CLEN, MSG_BUF_LEN);
-! s = buf;
-! }
-! smsg((char_u *)_("%s returning %s"), sourcing_name, s);
- vim_free(tofree);
- }
- }
-*** ../vim-7.3.406/src/ex_getln.c 2011-12-08 18:44:47.000000000 +0100
---- src/ex_getln.c 2012-01-20 18:40:46.000000000 +0100
-***************
-*** 5923,5929 ****
- hist[i].hisnum);
- if (vim_strsize(hist[i].hisstr) > (int)Columns - 10)
- trunc_string(hist[i].hisstr, IObuff + STRLEN(IObuff),
-! (int)Columns - 10);
- else
- STRCAT(IObuff, hist[i].hisstr);
- msg_outtrans(IObuff);
---- 5923,5929 ----
- hist[i].hisnum);
- if (vim_strsize(hist[i].hisstr) > (int)Columns - 10)
- trunc_string(hist[i].hisstr, IObuff + STRLEN(IObuff),
-! (int)Columns - 10, IOSIZE - STRLEN(IObuff));
- else
- STRCAT(IObuff, hist[i].hisstr);
- msg_outtrans(IObuff);
-*** ../vim-7.3.406/src/message.c 2012-01-10 22:26:12.000000000 +0100
---- src/message.c 2012-01-20 20:38:29.000000000 +0100
-***************
-*** 222,236 ****
- if (enc_utf8)
- /* may have up to 18 bytes per cell (6 per char, up to two
- * composing chars) */
-! buf = alloc((room + 2) * 18);
- else if (enc_dbcs == DBCS_JPNU)
- /* may have up to 2 bytes per cell for euc-jp */
-! buf = alloc((room + 2) * 2);
- else
- #endif
-! buf = alloc(room + 2);
- if (buf != NULL)
-! trunc_string(s, buf, room);
- }
- }
- return buf;
---- 222,237 ----
- if (enc_utf8)
- /* may have up to 18 bytes per cell (6 per char, up to two
- * composing chars) */
-! len = (room + 2) * 18;
- else if (enc_dbcs == DBCS_JPNU)
- /* may have up to 2 bytes per cell for euc-jp */
-! len = (room + 2) * 2;
- else
- #endif
-! len = room + 2;
-! buf = alloc(len);
- if (buf != NULL)
-! trunc_string(s, buf, room, len);
- }
- }
- return buf;
-***************
-*** 241,250 ****
- * "s" and "buf" may be equal.
- */
- void
-! trunc_string(s, buf, room)
- char_u *s;
- char_u *buf;
- int room;
- {
- int half;
- int len;
---- 242,252 ----
- * "s" and "buf" may be equal.
- */
- void
-! trunc_string(s, buf, room, buflen)
- char_u *s;
- char_u *buf;
- int room;
-+ int buflen;
- {
- int half;
- int len;
-***************
-*** 257,263 ****
- len = 0;
-
- /* First part: Start of the string. */
-! for (e = 0; len < half; ++e)
- {
- if (s[e] == NUL)
- {
---- 259,265 ----
- len = 0;
-
- /* First part: Start of the string. */
-! for (e = 0; len < half && e < buflen; ++e)
- {
- if (s[e] == NUL)
- {
-***************
-*** 274,280 ****
- if (has_mbyte)
- for (n = (*mb_ptr2len)(s + e); --n > 0; )
- {
-! ++e;
- buf[e] = s[e];
- }
- #endif
---- 276,283 ----
- if (has_mbyte)
- for (n = (*mb_ptr2len)(s + e); --n > 0; )
- {
-! if (++e == buflen)
-! break;
- buf[e] = s[e];
- }
- #endif
-***************
-*** 319,326 ****
- }
-
- /* Set the middle and copy the last part. */
-! mch_memmove(buf + e, "...", (size_t)3);
-! STRMOVE(buf + e + 3, s + i);
- }
-
- /*
---- 322,340 ----
- }
-
- /* Set the middle and copy the last part. */
-! if (e + 3 < buflen)
-! {
-! mch_memmove(buf + e, "...", (size_t)3);
-! len = STRLEN(s + i) + 1;
-! if (len >= buflen - e - 3)
-! len = buflen - e - 3 - 1;
-! mch_memmove(buf + e + 3, s + i, len);
-! buf[e + 3 + len - 1] = NUL;
-! }
-! else
-! {
-! buf[e - 1] = NUL; // make sure it is truncated
-! }
- }
-
- /*
-*** ../vim-7.3.406/src/proto/message.pro 2011-01-17 20:08:03.000000000 +0100
---- src/proto/message.pro 2012-01-20 18:51:19.000000000 +0100
-***************
-*** 4,10 ****
- int msg_attr __ARGS((char_u *s, int attr));
- int msg_attr_keep __ARGS((char_u *s, int attr, int keep));
- char_u *msg_strtrunc __ARGS((char_u *s, int force));
-! void trunc_string __ARGS((char_u *s, char_u *buf, int room));
- void reset_last_sourcing __ARGS((void));
- void msg_source __ARGS((int attr));
- int emsg_not_now __ARGS((void));
---- 4,10 ----
- int msg_attr __ARGS((char_u *s, int attr));
- int msg_attr_keep __ARGS((char_u *s, int attr, int keep));
- char_u *msg_strtrunc __ARGS((char_u *s, int force));
-! void trunc_string __ARGS((char_u *s, char_u *buf, int room, int buflen));
- void reset_last_sourcing __ARGS((void));
- void msg_source __ARGS((int attr));
- int emsg_not_now __ARGS((void));
-*** ../vim-7.3.406/src/version.c 2012-01-20 17:57:47.000000000 +0100
---- src/version.c 2012-01-20 20:42:23.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 407,
- /**/
-
---
-Hanson's Treatment of Time:
- There are never enough hours in a day, but always too
- many days before Saturday.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.408
-Fcc: 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.408 (after 7.3.406)
-Problem: Missing declaration.
-Solution: Add the declaration. (John Marriott)
-Files: src/gui_w48.c
-
-
-*** ../vim-7.3.407/src/gui_w48.c 2012-01-20 17:57:47.000000000 +0100
---- src/gui_w48.c 2012-01-20 20:51:57.000000000 +0100
-***************
-*** 3286,3291 ****
---- 3286,3292 ----
- {
- char_u *tmp;
- int len;
-+ WCHAR *res;
-
- tmp = convert_filter(s);
- if (tmp == NULL)
-*** ../vim-7.3.407/src/version.c 2012-01-20 20:44:38.000000000 +0100
---- src/version.c 2012-01-20 20:52:56.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 408,
- /**/
-
---
-BLACK KNIGHT: None shall pass.
-ARTHUR: I have no quarrel with you, brave Sir knight, but I must cross
- this bridge.
-BLACK KNIGHT: Then you shall die.
- "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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.409
-Fcc: 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.409
-Problem: The license in pty.c is unclear.
-Solution: Add a comment about the license.
-Files: src/pty.c
-
-
-*** ../vim-7.3.408/src/pty.c 2011-05-19 13:40:47.000000000 +0200
---- src/pty.c 2012-01-20 21:07:56.000000000 +0100
-***************
-*** 14,19 ****
---- 14,23 ----
- * It has been modified to work better with Vim.
- * The parts that are not used in Vim have been deleted.
- * See the "screen" sources for the complete stuff.
-+ *
-+ * This specific version is distibuted under the Vim license (attribution by
-+ * Juergen Weigert), the GPL applies to the original version, see the
-+ * copyright notice below.
- */
-
- /* Copyright (c) 1993
-*** ../vim-7.3.408/src/version.c 2012-01-20 20:54:15.000000000 +0100
---- src/version.c 2012-01-20 21:13:11.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 409,
- /**/
-
---
-ARTHUR: What are you going to do. bleed on me?
- "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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.410
-Fcc: 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.410
-Problem: Compiler error for // comment. (Joachim Schmitz)
-Solution: Turn into /* comment */.
-Files: src/message.c
-
-
-*** ../vim-7.3.409/src/message.c 2012-01-20 20:44:38.000000000 +0100
---- src/message.c 2012-01-23 20:46:36.000000000 +0100
-***************
-*** 333,339 ****
- }
- else
- {
-! buf[e - 1] = NUL; // make sure it is truncated
- }
- }
-
---- 333,339 ----
- }
- else
- {
-! buf[e - 1] = NUL; /* make sure it is truncated */
- }
- }
-
-*** ../vim-7.3.409/src/version.c 2012-01-20 21:13:55.000000000 +0100
---- src/version.c 2012-01-23 20:47:30.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 410,
- /**/
-
-
---
-Are leaders born or made? And if they're made, can we return them under
-warranty?
- (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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.411
-Fcc: 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.411
-Problem: Pasting in Visual mode using the "" register does not work. (John
- Beckett)
-Solution: Detect that the write is overwriting the pasted register.
- (Christian Brabandt)
-Files: src/normal.c
-
-
-*** ../vim-7.3.410/src/normal.c 2011-10-04 21:22:40.000000000 +0200
---- src/normal.c 2012-01-23 22:13:44.000000000 +0100
-***************
-*** 9329,9335 ****
- # ifdef FEAT_CLIPBOARD
- adjust_clip_reg(&regname);
- # endif
-! if (regname == 0 || VIM_ISDIGIT(regname)
- # ifdef FEAT_CLIPBOARD
- || (clip_unnamed && (regname == '*' || regname == '+'))
- # endif
---- 9329,9335 ----
- # ifdef FEAT_CLIPBOARD
- adjust_clip_reg(&regname);
- # endif
-! if (regname == 0 || regname == '"' || VIM_ISDIGIT(regname)
- # ifdef FEAT_CLIPBOARD
- || (clip_unnamed && (regname == '*' || regname == '+'))
- # endif
-*** ../vim-7.3.410/src/version.c 2012-01-23 20:48:34.000000000 +0100
---- src/version.c 2012-01-26 11:42:33.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 411,
- /**/
-
---
-Engineers understand that their appearance only bothers other people and
-therefore it is not worth optimizing.
- (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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.412
-Fcc: 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.412
-Problem: Storing a float in a session file has an additional '&'.
-Solution: Remove the '&'. (Yasuhiro Matsumoto)
-Files: src/eval.c
-
-
-*** ../vim-7.3.411/src/eval.c 2012-01-20 20:44:38.000000000 +0100
---- src/eval.c 2012-01-26 11:39:39.000000000 +0100
-***************
-*** 22929,22935 ****
- f = -f;
- sign = '-';
- }
-! if ((fprintf(fd, "let %s = %c&%f",
- this_var->di_key, sign, f) < 0)
- || put_eol(fd) == FAIL)
- return FAIL;
---- 22929,22935 ----
- f = -f;
- sign = '-';
- }
-! if ((fprintf(fd, "let %s = %c%f",
- this_var->di_key, sign, f) < 0)
- || put_eol(fd) == FAIL)
- return FAIL;
-*** ../vim-7.3.411/src/version.c 2012-01-26 11:43:04.000000000 +0100
---- src/version.c 2012-01-26 11:44:56.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 412,
- /**/
-
---
-Imagine a world without hypothetical situations.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.413
-Fcc: 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.413
-Problem: Build warnings on MS-Windows.
-Solution: Add type casts. (Mike Williams)
-Files: src/ex_getln.c, src/message.c, src/term.c
-
-
-*** ../vim-7.3.412/src/ex_getln.c 2012-01-20 20:44:38.000000000 +0100
---- src/ex_getln.c 2012-01-26 12:58:54.000000000 +0100
-***************
-*** 5923,5929 ****
- hist[i].hisnum);
- if (vim_strsize(hist[i].hisstr) > (int)Columns - 10)
- trunc_string(hist[i].hisstr, IObuff + STRLEN(IObuff),
-! (int)Columns - 10, IOSIZE - STRLEN(IObuff));
- else
- STRCAT(IObuff, hist[i].hisstr);
- msg_outtrans(IObuff);
---- 5923,5929 ----
- hist[i].hisnum);
- if (vim_strsize(hist[i].hisstr) > (int)Columns - 10)
- trunc_string(hist[i].hisstr, IObuff + STRLEN(IObuff),
-! (int)Columns - 10, IOSIZE - (int)STRLEN(IObuff));
- else
- STRCAT(IObuff, hist[i].hisstr);
- msg_outtrans(IObuff);
-*** ../vim-7.3.412/src/message.c 2012-01-23 20:48:34.000000000 +0100
---- src/message.c 2012-01-26 12:58:54.000000000 +0100
-***************
-*** 325,331 ****
- if (e + 3 < buflen)
- {
- mch_memmove(buf + e, "...", (size_t)3);
-! len = STRLEN(s + i) + 1;
- if (len >= buflen - e - 3)
- len = buflen - e - 3 - 1;
- mch_memmove(buf + e + 3, s + i, len);
---- 325,331 ----
- if (e + 3 < buflen)
- {
- mch_memmove(buf + e, "...", (size_t)3);
-! len = (int)STRLEN(s + i) + 1;
- if (len >= buflen - e - 3)
- len = buflen - e - 3 - 1;
- mch_memmove(buf + e + 3, s + i, len);
-*** ../vim-7.3.412/src/term.c 2012-01-20 17:15:47.000000000 +0100
---- src/term.c 2012-01-26 12:58:54.000000000 +0100
-***************
-*** 5252,5258 ****
- char_u *src;
- {
- int i;
-! int slen = STRLEN(src);
-
- for (i = 0; i < tc_len; ++i)
- {
---- 5252,5258 ----
- char_u *src;
- {
- int i;
-! int slen = (int)STRLEN(src);
-
- for (i = 0; i < tc_len; ++i)
- {
-*** ../vim-7.3.412/src/version.c 2012-01-26 11:45:25.000000000 +0100
---- src/version.c 2012-01-26 12:59:14.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 413,
- /**/
-
---
-It doesn't really matter what you are able to do if you don't do it.
- (Bram Moolenaar)
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.414
-Fcc: 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.414
-Problem: Using CTRL-A on "000" drops the leading zero, while on "001" it
- doesn't.
-Solution: Detect "000" as an octal number. (James McCoy)
-Files: src/charset.c
-
-
-*** ../vim-7.3.413/src/charset.c 2012-01-10 22:26:12.000000000 +0100
---- src/charset.c 2012-01-26 13:33:45.000000000 +0100
-***************
-*** 764,770 ****
- }
-
- /*
-! * Return the number of characters string "s" will take on the screen,
- * counting TABs as two characters: "^I".
- */
- int
---- 764,770 ----
- }
-
- /*
-! * Return the number of character cells string "s" will take on the screen,
- * counting TABs as two characters: "^I".
- */
- int
-***************
-*** 775,782 ****
- }
-
- /*
-! * Return the number of characters string "s[len]" will take on the screen,
-! * counting TABs as two characters: "^I".
- */
- int
- vim_strnsize(s, len)
---- 775,782 ----
- }
-
- /*
-! * Return the number of character cells string "s[len]" will take on the
-! * screen, counting TABs as two characters: "^I".
- */
- int
- vim_strnsize(s, len)
-***************
-*** 1830,1836 ****
- hex = 0; /* can't be octal */
- break;
- }
-! if (ptr[n] > '0')
- hex = '0'; /* assume octal */
- }
- }
---- 1830,1836 ----
- hex = 0; /* can't be octal */
- break;
- }
-! if (ptr[n] >= '0')
- hex = '0'; /* assume octal */
- }
- }
-*** ../vim-7.3.413/src/version.c 2012-01-26 13:01:54.000000000 +0100
---- src/version.c 2012-01-26 13:38:04.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 414,
- /**/
-
---
-No engineer can take a shower without wondering if some sort of Teflon coating
-would make showering unnecessary.
- (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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.415
-Fcc: 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.415 (after 7.3.359)
-Problem: Completion of functions stops once a dictionary is encountered.
- (James McCoy)
-Solution: Return an empty string instead of NULL.
-Files: src/eval.c
-
-
-*** ../vim-7.3.414/src/eval.c 2012-01-26 11:45:25.000000000 +0100
---- src/eval.c 2012-01-26 13:45:52.000000000 +0100
-***************
-*** 21802,21808 ****
- fp = HI2UF(hi);
-
- if (fp->uf_flags & FC_DICT)
-! return NULL; /* don't show dict functions */
-
- if (STRLEN(fp->uf_name) + 4 >= IOSIZE)
- return fp->uf_name; /* prevents overflow */
---- 21802,21808 ----
- fp = HI2UF(hi);
-
- if (fp->uf_flags & FC_DICT)
-! return ""; /* don't show dict functions */
-
- if (STRLEN(fp->uf_name) + 4 >= IOSIZE)
- return fp->uf_name; /* prevents overflow */
-*** ../vim-7.3.414/src/version.c 2012-01-26 13:40:04.000000000 +0100
---- src/version.c 2012-01-26 14:32:16.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 415,
- /**/
-
---
-Normal people believe that if it ain't broke, don't fix it. Engineers believe
-that if it ain't broke, it doesn't have enough features yet.
- (Scott Adams - The Dilbert principle)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.416
-Fcc: 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.416 (after 7.3.415)
-Problem: Compiler warning for wrong pointer.
-Solution: Add type cast.
-Files: src/eval.c
-
-
-*** ../vim-7.3.415/src/eval.c 2012-01-26 14:32:26.000000000 +0100
---- src/eval.c 2012-01-26 15:42:56.000000000 +0100
-***************
-*** 21802,21808 ****
- fp = HI2UF(hi);
-
- if (fp->uf_flags & FC_DICT)
-! return ""; /* don't show dict functions */
-
- if (STRLEN(fp->uf_name) + 4 >= IOSIZE)
- return fp->uf_name; /* prevents overflow */
---- 21802,21808 ----
- fp = HI2UF(hi);
-
- if (fp->uf_flags & FC_DICT)
-! return (char_u *)""; /* don't show dict functions */
-
- if (STRLEN(fp->uf_name) + 4 >= IOSIZE)
- return fp->uf_name; /* prevents overflow */
-*** ../vim-7.3.415/src/version.c 2012-01-26 14:32:26.000000000 +0100
---- src/version.c 2012-01-26 15:43:31.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 416,
- /**/
-
---
-It's totally unfair to suggest - as many have - that engineers are socially
-inept. Engineers simply have different objectives when it comes to social
-interaction.
- (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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.417
-Fcc: 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.417 (after 7.3.395)
-Problem: Test 43 fails with a tiny build.
-Solution: Only run test 43 with at least a small build.
-Files: src/testdir/test43.in
-
-
-*** ../vim-7.3.415/src/testdir/test43.in 2012-01-10 13:44:23.000000000 +0100
---- src/testdir/test43.in 2012-01-26 18:00:06.000000000 +0100
-***************
-*** 1,6 ****
---- 1,7 ----
- Tests for regexp with various magic settings.
-
- STARTTEST
-+ :so small.vim
- :set nocompatible viminfo+=nviminfo
- /^1
- /a*b\{2}c\+/e
-*** ../vim-7.3.415/src/version.c 2012-01-26 14:32:26.000000000 +0100
---- src/version.c 2012-01-26 18:02:30.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 417,
- /**/
-
---
-I learned the customs and mannerisms of engineers by observing them, much the
-way Jane Goodall learned about the great apes, but without the hassle of
-grooming.
- (Scott Adams - The Dilbert principle)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.418
-Fcc: 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.418
-Problem: When a user complete function returns -1 an error message is
- given.
-Solution: When -2 is returned stop completion silently. (Yasuhiro Matsumoto)
-Files: src/edit.c
-
-
-*** ../vim-7.3.417/src/edit.c 2012-01-20 14:32:22.000000000 +0100
---- src/edit.c 2012-01-26 18:32:23.000000000 +0100
-***************
-*** 5189,5194 ****
---- 5189,5199 ----
- return FAIL;
- }
-
-+ /* Return value -2 means the user complete function wants to
-+ * cancel the complete without an error. */
-+ if (col == -2)
-+ return FAIL;
-+
- /*
- * Reset extended parameters of completion, when start new
- * completion.
-*** ../vim-7.3.417/src/version.c 2012-01-26 18:58:13.000000000 +0100
---- src/version.c 2012-01-26 18:42:14.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 418,
- /**/
-
---
-If someone questions your market projections, simply point out that your
-target market is "People who are nuts" and "People who will buy any damn
-thing". Nobody is going to tell you there aren't enough of those people
-to go around.
- (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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.419
-Fcc: 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.419
-Problem: DBCS encoding in a user command does not always work.
-Solution: Skip over DBCS characters. (Yasuhiro Matsumoto)
-Files: src/ex_docmd.c
-
-
-*** ../vim-7.3.418/src/ex_docmd.c 2011-12-14 14:49:41.000000000 +0100
---- src/ex_docmd.c 2012-01-26 20:04:01.000000000 +0100
-***************
-*** 5967,5973 ****
- result = STRLEN(eap->arg) + 2;
- for (p = eap->arg; *p; ++p)
- {
-! if (*p == '\\' || *p == '"')
- ++result;
- }
-
---- 5967,5980 ----
- result = STRLEN(eap->arg) + 2;
- for (p = eap->arg; *p; ++p)
- {
-! #ifdef FEAT_MBYTE
-! if (enc_dbcs != 0 && (*mb_ptr2len)(p) == 2)
-! /* DBCS can contain \ in a trail byte, skip the
-! * double-byte character. */
-! ++p;
-! else
-! #endif
-! if (*p == '\\' || *p == '"')
- ++result;
- }
-
-***************
-*** 5976,5982 ****
- *buf++ = '"';
- for (p = eap->arg; *p; ++p)
- {
-! if (*p == '\\' || *p == '"')
- *buf++ = '\\';
- *buf++ = *p;
- }
---- 5983,5996 ----
- *buf++ = '"';
- for (p = eap->arg; *p; ++p)
- {
-! #ifdef FEAT_MBYTE
-! if (enc_dbcs != 0 && (*mb_ptr2len)(p) == 2)
-! /* DBCS can contain \ in a trail byte, copy the
-! * double-byte character to avoid escaping. */
-! *buf++ = *p++;
-! else
-! #endif
-! if (*p == '\\' || *p == '"')
- *buf++ = '\\';
- *buf++ = *p;
- }
-*** ../vim-7.3.418/src/version.c 2012-01-26 18:58:25.000000000 +0100
---- src/version.c 2012-01-26 20:40:34.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 419,
- /**/
-
---
-You have heard the saying that if you put a thousand monkeys in a room with a
-thousand typewriters and waited long enough, eventually you would have a room
-full of dead monkeys.
- (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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.420
-Fcc: 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.420
-Problem: "it" and "at" don't work properly with a dash in the tag name.
-Solution: Require a space to match the tag name. (Christian Brabandt)
-Files: src/search.c
-
-
-*** ../vim-7.3.419/src/search.c 2012-01-10 22:26:12.000000000 +0100
---- src/search.c 2012-01-26 20:51:43.000000000 +0100
-***************
-*** 3918,3924 ****
- curwin->w_cursor = old_pos;
- goto theend;
- }
-! spat = alloc(len + 29);
- epat = alloc(len + 9);
- if (spat == NULL || epat == NULL)
- {
---- 3918,3924 ----
- curwin->w_cursor = old_pos;
- goto theend;
- }
-! spat = alloc(len + 31);
- epat = alloc(len + 9);
- if (spat == NULL || epat == NULL)
- {
-***************
-*** 3927,3933 ****
- curwin->w_cursor = old_pos;
- goto theend;
- }
-! sprintf((char *)spat, "<%.*s\\>\\%%(\\_[^>]\\{-}[^/]>\\|>\\)\\c", len, p);
- sprintf((char *)epat, "</%.*s>\\c", len, p);
-
- r = do_searchpair(spat, (char_u *)"", epat, FORWARD, (char_u *)"",
---- 3927,3933 ----
- curwin->w_cursor = old_pos;
- goto theend;
- }
-! sprintf((char *)spat, "<%.*s\\>\\%%(\\s\\_[^>]\\{-}[^/]>\\|>\\)\\c", len, p);
- sprintf((char *)epat, "</%.*s>\\c", len, p);
-
- r = do_searchpair(spat, (char_u *)"", epat, FORWARD, (char_u *)"",
-*** ../vim-7.3.419/src/version.c 2012-01-26 20:41:22.000000000 +0100
---- src/version.c 2012-01-26 20:51:16.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 420,
- /**/
-
---
-All good vision statements are created by groups of people with bloated
-bladders who would rather be doing anything else.
- (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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.421
-Fcc: 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.421
-Problem: Get E832 when setting 'undofile' in vimrc and there is a file to
- be edited on the command line. (Toothpik)
-Solution: Do not try reading the undo file for a file that wasn't loaded.
-Files: src/option.c
-
-
-*** ../vim-7.3.420/src/option.c 2012-01-10 22:26:12.000000000 +0100
---- src/option.c 2012-01-28 17:55:24.000000000 +0100
-***************
-*** 7527,7536 ****
- {
- /* When 'undofile' is set globally: for every buffer, otherwise
- * only for the current buffer: Try to read in the undofile, if
-! * one exists and the buffer wasn't changed. */
- if ((curbuf == save_curbuf
- || (opt_flags & OPT_GLOBAL) || opt_flags == 0)
-! && !curbufIsChanged())
- {
- u_compute_hash(hash);
- u_read_undo(NULL, hash, curbuf->b_fname);
---- 7527,7537 ----
- {
- /* When 'undofile' is set globally: for every buffer, otherwise
- * only for the current buffer: Try to read in the undofile, if
-! * one exists and the buffer wasn't changed and the buffer was
-! * loaded. */
- if ((curbuf == save_curbuf
- || (opt_flags & OPT_GLOBAL) || opt_flags == 0)
-! && !curbufIsChanged() && curbuf->b_ml.ml_mfp != NULL)
- {
- u_compute_hash(hash);
- u_read_undo(NULL, hash, curbuf->b_fname);
-*** ../vim-7.3.420/src/version.c 2012-01-26 20:58:21.000000000 +0100
---- src/version.c 2012-01-28 18:03:09.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 421,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-4. Your eyeglasses have a web site burned in on them.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.422
-Fcc: 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.422
-Problem: Python 3 does not have __members__.
-Solution: Add "name" and "number" in another way. (lilydjwg)
-Files: src/if_py_both.h, src/if_python3.c
-
-
-*** ../vim-7.3.421/src/if_py_both.h 2011-09-07 19:30:17.000000000 +0200
---- src/if_py_both.h 2012-02-04 19:59:43.000000000 +0100
-***************
-*** 1479,1484 ****
---- 1479,1487 ----
- {"append", BufferAppend, 1, "Append data to Vim buffer" },
- {"mark", BufferMark, 1, "Return (row,col) representing position of named mark" },
- {"range", BufferRange, 1, "Return a range object which represents the part of the given buffer between line numbers s and e" },
-+ #if PY_VERSION_HEX >= 0x03000000
-+ {"__dir__", BufferDir, 4, "List its attributes" },
-+ #endif
- { NULL, NULL, 0, NULL }
- };
-
-*** ../vim-7.3.421/src/if_python3.c 2011-09-14 18:59:35.000000000 +0200
---- src/if_python3.c 2012-02-04 20:13:00.000000000 +0100
-***************
-*** 468,473 ****
---- 468,474 ----
- static PyObject *BufferNew (buf_T *);
- static PyObject *WindowNew(win_T *);
- static PyObject *LineToString(const char *);
-+ static PyObject *BufferDir(PyObject *, PyObject *);
-
- static PyTypeObject RangeType;
-
-***************
-*** 961,973 ****
- return Py_BuildValue("s", this->buf->b_ffname);
- else if (strcmp(name, "number") == 0)
- return Py_BuildValue("n", this->buf->b_fnum);
-- else if (strcmp(name,"__members__") == 0)
-- return Py_BuildValue("[ss]", "name", "number");
- else
- return PyObject_GenericGetAttr(self, nameobj);
- }
-
- static PyObject *
- BufferRepr(PyObject *self)
- {
- static char repr[100];
---- 962,979 ----
- return Py_BuildValue("s", this->buf->b_ffname);
- else if (strcmp(name, "number") == 0)
- return Py_BuildValue("n", this->buf->b_fnum);
- else
- return PyObject_GenericGetAttr(self, nameobj);
- }
-
- static PyObject *
-+ BufferDir(PyObject *self UNUSED, PyObject *args UNUSED)
-+ {
-+ return Py_BuildValue("[sssss]", "name", "number",
-+ "append", "mark", "range");
-+ }
-+
-+ static PyObject *
- BufferRepr(PyObject *self)
- {
- static char repr[100];
-*** ../vim-7.3.421/src/version.c 2012-01-28 18:03:30.000000000 +0100
---- src/version.c 2012-02-04 20:14:58.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 422,
- /**/
-
---
-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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.423
-Fcc: 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.423
-Problem: Small mistakes in comments, proto and indent.
-Solution: Fix the mistakes.
-Files: src/ex_cmds2.c, src/structs.h, src/ui.c, src/proto/ex_docmd.pro
-
-
-*** ../vim-7.3.422/src/ex_cmds2.c 2011-10-20 21:38:37.000000000 +0200
---- src/ex_cmds2.c 2011-11-30 11:02:20.000000000 +0100
-***************
-*** 1939,1945 ****
- }
-
- /*
-! * Return TRUE if window "win" is editing then file at the current argument
- * index.
- */
- static int
---- 1939,1945 ----
- }
-
- /*
-! * Return TRUE if window "win" is editing the file at the current argument
- * index.
- */
- static int
-*** ../vim-7.3.422/src/structs.h 2011-05-19 13:40:47.000000000 +0200
---- src/structs.h 2011-09-10 13:48:53.000000000 +0200
-***************
-*** 1846,1852 ****
- often, keep it the first item!) */
-
- #if defined(FEAT_SYN_HL) || defined(FEAT_SPELL)
-! synblock_T *w_s;
- #endif
-
- #ifdef FEAT_WINDOWS
---- 1846,1852 ----
- often, keep it the first item!) */
-
- #if defined(FEAT_SYN_HL) || defined(FEAT_SPELL)
-! synblock_T *w_s; /* for :ownsyntax */
- #endif
-
- #ifdef FEAT_WINDOWS
-*** ../vim-7.3.422/src/ui.c 2011-07-07 16:20:45.000000000 +0200
---- src/ui.c 2012-01-21 14:03:42.000000000 +0100
-***************
-*** 2363,2376 ****
- 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));
---- 2363,2376 ----
- 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));
-*** ../vim-7.3.422/src/proto/ex_docmd.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/ex_docmd.pro 2011-01-16 00:22:21.000000000 +0100
-***************
-*** 1,7 ****
- /* ex_docmd.c */
- void do_exmode __ARGS((int improved));
- int do_cmdline_cmd __ARGS((char_u *cmd));
-! int do_cmdline __ARGS((char_u *cmdline, char_u *(*getline)(int, void *, int), void *cookie, int flags));
- int getline_equal __ARGS((char_u *(*fgetline)(int, void *, int), void *cookie, char_u *(*func)(int, void *, int)));
- void *getline_cookie __ARGS((char_u *(*fgetline)(int, void *, int), void *cookie));
- int checkforcmd __ARGS((char_u **pp, char *cmd, int len));
---- 1,7 ----
- /* ex_docmd.c */
- void do_exmode __ARGS((int improved));
- int do_cmdline_cmd __ARGS((char_u *cmd));
-! int do_cmdline __ARGS((char_u *cmdline, char_u *(*fgetline)(int, void *, int), void *cookie, int flags));
- int getline_equal __ARGS((char_u *(*fgetline)(int, void *, int), void *cookie, char_u *(*func)(int, void *, int)));
- void *getline_cookie __ARGS((char_u *(*fgetline)(int, void *, int), void *cookie));
- int checkforcmd __ARGS((char_u **pp, char *cmd, int len));
-*** ../vim-7.3.422/src/version.c 2012-02-04 20:17:21.000000000 +0100
---- src/version.c 2012-02-04 21:56:43.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 423,
- /**/
-
---
-In many of the more relaxed civilizations on the Outer Eastern Rim of the
-Galaxy, "The Hitchhiker's Guide to the Galaxy" has already supplanted the
-great "Encyclopedia Galactica" as the standard repository of all knowledge
-and wisdom, for though it has many omissions and contains much that is
-apocryphal, or at least wildly inaccurate, it scores over the older, more
-pedestrian work in two important respects.
-First, it is slightly cheaper; and second, it has the words "DON'T PANIC"
-inscribed in large friendly letters on its cover.
- -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.424
-Fcc: 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.424
-Problem: Win16 version missing some functions.
-Solution: Add #defines for the functions.
-Files: src/gui_w16.c
-
-
-*** ../vim-7.3.423/src/gui_w16.c 2011-01-17 20:08:03.000000000 +0100
---- src/gui_w16.c 2011-08-10 16:50:21.000000000 +0200
-***************
-*** 21,26 ****
---- 21,32 ----
- *
- */
-
-+ /* Win16 doesn't use the "W" methods. */
-+ #define pDispatchMessage DispatchMessage
-+ #define pGetMessage GetMessage
-+ #define pIsDialogMessage IsDialogMessage
-+ #define pPeekMessage PeekMessage
-+
- /*
- * Include the common stuff for MS-Windows GUI.
- */
-*** ../vim-7.3.423/src/version.c 2012-02-04 21:57:44.000000000 +0100
---- src/version.c 2012-02-04 22:01:13.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 424,
- /**/
-
---
-Now it is such a bizarrely improbable coincidence that anything as
-mind-bogglingly useful as the Babel fish could have evolved purely by chance
-that some thinkers have chosen to see it as a final and clinching proof of the
-NON-existence of God.
-The argument goes something like this: 'I refuse to prove that I exist,' says
-God, 'for proof denies faith, and without faith I am nothing.'
-'But,' says Man, 'the Babel fish is a dead giveaway, isn't it? It could not
-have evolved by chance. It proves you exist, and so therefore, by your own
-arguments, you don't. QED.'
-'Oh dear,' says God, 'I hadn't thought of that,' and promptly vanishes in a
-puff of logic.
-'Oh, that was easy,' says Man, and for an encore goes on to prove that black
-is white and gets himself killed on the next pedestrian crossing.
- -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.425
-Fcc: 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.425 (after 7.3.265)
-Problem: Search history lines are duplicated. (Edwin Steiner)
-Solution: Convert separator character from space to NUL.
-Files: src/ex_getln.c
-
-
-*** ../vim-7.3.424/src/ex_getln.c 2012-01-26 13:01:54.000000000 +0100
---- src/ex_getln.c 2012-02-04 22:27:43.000000000 +0100
-***************
-*** 6027,6034 ****
- val = viminfo_readstring(virp, 1, TRUE);
- if (val != NULL && *val != NUL)
- {
- if (!in_history(type, val + (type == HIST_SEARCH),
-! viminfo_add_at_front, *val))
- {
- /* Need to re-allocate to append the separator byte. */
- len = STRLEN(val);
---- 6027,6036 ----
- val = viminfo_readstring(virp, 1, TRUE);
- if (val != NULL && *val != NUL)
- {
-+ int sep = (*val == ' ' ? NUL : *val);
-+
- if (!in_history(type, val + (type == HIST_SEARCH),
-! viminfo_add_at_front, sep))
- {
- /* Need to re-allocate to append the separator byte. */
- len = STRLEN(val);
-***************
-*** 6040,6046 ****
- /* Search entry: Move the separator from the first
- * column to after the NUL. */
- mch_memmove(p, val + 1, (size_t)len);
-! p[len] = (*val == ' ' ? NUL : *val);
- }
- else
- {
---- 6042,6048 ----
- /* Search entry: Move the separator from the first
- * column to after the NUL. */
- mch_memmove(p, val + 1, (size_t)len);
-! p[len] = sep;
- }
- else
- {
-*** ../vim-7.3.424/src/version.c 2012-02-04 22:01:44.000000000 +0100
---- src/version.c 2012-02-04 22:30:36.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 425,
- /**/
-
---
-"So this is it," said Arthur, "we are going to die."
-"Yes," said Ford, "except...no! Wait a minute!" He suddenly lunged across
-the chamber at something behind Arthur's line of vision. "What's this
-switch?" he cried.
-"What? Where?" cried Arthur, twisting around.
-"No, I was only fooling," said Ford, "we are going to die after all."
- -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.426
-Fcc: 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.426
-Problem: With '$' in 'cpoptions' the $ is not displayed in the first
- column.
-Solution: Use -1 instead of 0 as a special value. (Hideki Eiraku and
- Hirohito Higashi)
-Files: src/edit.c, src/globals.h, src/move.c, src/screen.c, src/search.c
-
-
-*** ../vim-7.3.425/src/edit.c 2012-01-26 18:58:25.000000000 +0100
---- src/edit.c 2012-02-04 23:23:45.000000000 +0100
-***************
-*** 1763,1771 ****
- static void
- undisplay_dollar()
- {
-! if (dollar_vcol)
- {
-! dollar_vcol = 0;
- redrawWinline(curwin->w_cursor.lnum, FALSE);
- }
- }
---- 1763,1771 ----
- static void
- undisplay_dollar()
- {
-! if (dollar_vcol >= 0)
- {
-! dollar_vcol = -1;
- redrawWinline(curwin->w_cursor.lnum, FALSE);
- }
- }
-***************
-*** 5441,5447 ****
- compl_curr_match->cp_number);
- edit_submode_extra = match_ref;
- edit_submode_highl = HLF_R;
-! if (dollar_vcol)
- curs_columns(FALSE);
- }
- }
---- 5441,5447 ----
- compl_curr_match->cp_number);
- edit_submode_extra = match_ref;
- edit_submode_highl = HLF_R;
-! if (dollar_vcol >= 0)
- curs_columns(FALSE);
- }
- }
-***************
-*** 8961,8967 ****
- * We can emulate the vi behaviour by pretending there is a dollar
- * displayed even when there isn't.
- * --pkv Sun Jan 19 01:56:40 EST 2003 */
-! if (vim_strchr(p_cpo, CPO_BACKSPACE) != NULL && dollar_vcol == 0)
- dollar_vcol = curwin->w_virtcol;
-
- #ifdef FEAT_FOLDING
---- 8961,8967 ----
- * We can emulate the vi behaviour by pretending there is a dollar
- * displayed even when there isn't.
- * --pkv Sun Jan 19 01:56:40 EST 2003 */
-! if (vim_strchr(p_cpo, CPO_BACKSPACE) != NULL && dollar_vcol == -1)
- dollar_vcol = curwin->w_virtcol;
-
- #ifdef FEAT_FOLDING
-*** ../vim-7.3.425/src/globals.h 2011-05-10 16:41:13.000000000 +0200
---- src/globals.h 2012-02-04 23:24:07.000000000 +0100
-***************
-*** 113,121 ****
- * When '$' is included in 'cpoptions' option set:
- * When a change command is given that deletes only part of a line, a dollar
- * is put at the end of the changed text. dollar_vcol is set to the virtual
-! * column of this '$'.
- */
-! EXTERN colnr_T dollar_vcol INIT(= 0);
-
- #ifdef FEAT_INS_EXPAND
- /*
---- 113,121 ----
- * When '$' is included in 'cpoptions' option set:
- * When a change command is given that deletes only part of a line, a dollar
- * is put at the end of the changed text. dollar_vcol is set to the virtual
-! * column of this '$'. -1 is used to indicate no $ is being displayed.
- */
-! EXTERN colnr_T dollar_vcol INIT(= -1);
-
- #ifdef FEAT_INS_EXPAND
- /*
-*** ../vim-7.3.425/src/move.c 2012-01-10 22:26:12.000000000 +0100
---- src/move.c 2012-02-04 23:21:08.000000000 +0100
-***************
-*** 362,368 ****
- #endif
- )
- {
-! dollar_vcol = 0;
- if (curwin->w_skipcol != 0)
- {
- curwin->w_skipcol = 0;
---- 362,368 ----
- #endif
- )
- {
-! dollar_vcol = -1;
- if (curwin->w_skipcol != 0)
- {
- curwin->w_skipcol = 0;
-***************
-*** 966,972 ****
-
- /* remove '$' from change command when cursor moves onto it */
- if (startcol > dollar_vcol)
-! dollar_vcol = 0;
-
- extra = curwin_col_off();
- curwin->w_wcol = curwin->w_virtcol + extra;
---- 966,972 ----
-
- /* remove '$' from change command when cursor moves onto it */
- if (startcol > dollar_vcol)
-! dollar_vcol = -1;
-
- extra = curwin_col_off();
- curwin->w_wcol = curwin->w_virtcol + extra;
-*** ../vim-7.3.425/src/screen.c 2012-01-10 22:26:12.000000000 +0100
---- src/screen.c 2012-02-04 23:22:44.000000000 +0100
-***************
-*** 1637,1647 ****
- * When at start of changed lines: May scroll following lines
- * up or down to minimize redrawing.
- * Don't do this when the change continues until the end.
-! * Don't scroll when dollar_vcol is non-zero, keep the "$".
- */
- if (lnum == mod_top
- && mod_bot != MAXLNUM
-! && !(dollar_vcol != 0 && mod_bot == mod_top + 1))
- {
- int old_rows = 0;
- int new_rows = 0;
---- 1637,1647 ----
- * When at start of changed lines: May scroll following lines
- * up or down to minimize redrawing.
- * Don't do this when the change continues until the end.
-! * Don't scroll when dollar_vcol >= 0, keep the "$".
- */
- if (lnum == mod_top
- && mod_bot != MAXLNUM
-! && !(dollar_vcol >= 0 && mod_bot == mod_top + 1))
- {
- int old_rows = 0;
- int new_rows = 0;
-***************
-*** 1868,1879 ****
- if (row > wp->w_height) /* past end of screen */
- {
- /* we may need the size of that too long line later on */
-! if (dollar_vcol == 0)
- wp->w_lines[idx].wl_size = plines_win(wp, lnum, TRUE);
- ++idx;
- break;
- }
-! if (dollar_vcol == 0)
- wp->w_lines[idx].wl_size = row - srow;
- ++idx;
- #ifdef FEAT_FOLDING
---- 1868,1879 ----
- if (row > wp->w_height) /* past end of screen */
- {
- /* we may need the size of that too long line later on */
-! if (dollar_vcol == -1)
- wp->w_lines[idx].wl_size = plines_win(wp, lnum, TRUE);
- ++idx;
- break;
- }
-! if (dollar_vcol == -1)
- wp->w_lines[idx].wl_size = row - srow;
- ++idx;
- #ifdef FEAT_FOLDING
-***************
-*** 1990,1996 ****
- }
- #endif
- }
-! else if (dollar_vcol == 0)
- wp->w_botline = lnum;
-
- /* make sure the rest of the screen is blank */
---- 1990,1996 ----
- }
- #endif
- }
-! else if (dollar_vcol == -1)
- wp->w_botline = lnum;
-
- /* make sure the rest of the screen is blank */
-***************
-*** 2005,2011 ****
- wp->w_old_botfill = wp->w_botfill;
- #endif
-
-! if (dollar_vcol == 0)
- {
- /*
- * There is a trick with w_botline. If we invalidate it on each
---- 2005,2011 ----
- wp->w_old_botfill = wp->w_botfill;
- #endif
-
-! if (dollar_vcol == -1)
- {
- /*
- * There is a trick with w_botline. If we invalidate it on each
-***************
-*** 3564,3570 ****
- }
-
- /* When still displaying '$' of change command, stop at cursor */
-! if (dollar_vcol != 0 && wp == curwin
- && lnum == wp->w_cursor.lnum && vcol >= (long)wp->w_virtcol
- #ifdef FEAT_DIFF
- && filler_todo <= 0
---- 3564,3570 ----
- }
-
- /* When still displaying '$' of change command, stop at cursor */
-! if (dollar_vcol >= 0 && wp == curwin
- && lnum == wp->w_cursor.lnum && vcol >= (long)wp->w_virtcol
- #ifdef FEAT_DIFF
- && filler_todo <= 0
-*** ../vim-7.3.425/src/search.c 2012-01-26 20:58:21.000000000 +0100
---- src/search.c 2012-02-04 23:23:10.000000000 +0100
-***************
-*** 2501,2508 ****
- save_siso = p_siso;
- /* Handle "$" in 'cpo': If the ')' is typed on top of the "$",
- * stop displaying the "$". */
-! if (dollar_vcol > 0 && dollar_vcol == curwin->w_virtcol)
-! dollar_vcol = 0;
- ++curwin->w_virtcol; /* do display ')' just before "$" */
- update_screen(VALID); /* show the new char first */
-
---- 2501,2508 ----
- save_siso = p_siso;
- /* Handle "$" in 'cpo': If the ')' is typed on top of the "$",
- * stop displaying the "$". */
-! if (dollar_vcol >= 0 && dollar_vcol == curwin->w_virtcol)
-! dollar_vcol = -1;
- ++curwin->w_virtcol; /* do display ')' just before "$" */
- update_screen(VALID); /* show the new char first */
-
-*** ../vim-7.3.425/src/version.c 2012-02-04 22:44:27.000000000 +0100
---- src/version.c 2012-02-04 23:32:55.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 426,
- /**/
-
-
---
-I am also told that there is a logical proof out there somewhere
-that demonstrates that there is no task which duct tape cannot handle.
- -- Paul Brannan
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.427
-Fcc: 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.427
-Problem: readfile() can be slow with long lines.
-Solution: Use realloc() instead of alloc(). (John Little)
-Files: src/eval.c
-
-
-*** ../vim-7.3.426/src/eval.c 2012-01-26 14:32:26.000000000 +0100
---- src/eval.c 2012-02-05 00:25:39.000000000 +0100
-***************
-*** 14325,14346 ****
- typval_T *rettv;
- {
- int binary = FALSE;
- char_u *fname;
- FILE *fd;
-! listitem_T *li;
-! #define FREAD_SIZE 200 /* optimized for text lines */
-! char_u buf[FREAD_SIZE];
-! int readlen; /* size of last fread() */
-! int buflen; /* nr of valid chars in buf[] */
-! int filtd; /* how much in buf[] was NUL -> '\n' filtered */
-! int tolist; /* first byte in buf[] still to be put in list */
-! int chop; /* how many CR to chop off */
-! char_u *prev = NULL; /* previously read bytes, if any */
-! int prevlen = 0; /* length of "prev" if not NULL */
-! char_u *s;
-! int len;
-! long maxline = MAXLNUM;
-! long cnt = 0;
-
- if (argvars[1].v_type != VAR_UNKNOWN)
- {
---- 14325,14343 ----
- typval_T *rettv;
- {
- int binary = FALSE;
-+ int failed = FALSE;
- char_u *fname;
- FILE *fd;
-! char_u buf[(IOSIZE/256)*256]; /* rounded to avoid odd + 1 */
-! int io_size = sizeof(buf);
-! int readlen; /* size of last fread() */
-! char_u *prev = NULL; /* previously read bytes, if any */
-! long prevlen = 0; /* length of data in prev */
-! long prevsize = 0; /* size of prev buffer */
-! long maxline = MAXLNUM;
-! long cnt = 0;
-! char_u *p; /* position in buf */
-! char_u *start; /* start of current line */
-
- if (argvars[1].v_type != VAR_UNKNOWN)
- {
-***************
-*** 14362,14410 ****
- return;
- }
-
-- filtd = 0;
- while (cnt < maxline || maxline < 0)
- {
-! readlen = (int)fread(buf + filtd, 1, FREAD_SIZE - filtd, fd);
-! buflen = filtd + readlen;
-! tolist = 0;
-! for ( ; filtd < buflen || readlen <= 0; ++filtd)
-! {
-! if (readlen <= 0 || buf[filtd] == '\n')
-! {
-! /* In binary mode add an empty list item when the last
-! * non-empty line ends in a '\n'. */
-! if (!binary && readlen == 0 && filtd == 0 && prev == NULL)
-! break;
-
-! /* Found end-of-line or end-of-file: add a text line to the
-! * list. */
-! chop = 0;
-! if (!binary)
-! while (filtd - chop - 1 >= tolist
-! && buf[filtd - chop - 1] == '\r')
-! ++chop;
-! len = filtd - tolist - chop;
-! if (prev == NULL)
-! s = vim_strnsave(buf + tolist, len);
- else
- {
-! s = alloc((unsigned)(prevlen + len + 1));
-! if (s != NULL)
- {
-! mch_memmove(s, prev, prevlen);
-! vim_free(prev);
-! prev = NULL;
-! mch_memmove(s + prevlen, buf + tolist, len);
- s[prevlen + len] = NUL;
- }
- }
-! tolist = filtd + 1;
-
-! li = listitem_alloc();
-! if (li == NULL)
- {
- vim_free(s);
- break;
- }
- li->li_tv.v_type = VAR_STRING;
---- 14359,14419 ----
- return;
- }
-
- while (cnt < maxline || maxline < 0)
- {
-! readlen = (int)fread(buf, 1, io_size, fd);
-!
-! /* This for loop processes what was read, but is also entered at end
-! * of file so that either:
-! * - an incomplete line gets written
-! * - a "binary" file gets an empty line at the end if it ends in a
-! * newline. */
-! for (p = buf, start = buf;
-! p < buf + readlen || (readlen <= 0 && (prevlen > 0 || binary));
-! ++p)
-! {
-! if (*p == '\n' || readlen <= 0)
-! {
-! listitem_T *li;
-! char_u *s = NULL;
-! long_u len = p - start;
-
-! /* Finished a line. Remove CRs before NL. */
-! if (readlen > 0 && !binary)
-! {
-! while (len > 0 && start[len - 1] == '\r')
-! --len;
-! /* removal may cross back to the "prev" string */
-! if (len == 0)
-! while (prevlen > 0 && prev[prevlen - 1] == '\r')
-! --prevlen;
-! }
-! if (prevlen == 0)
-! s = vim_strnsave(start, len);
- else
- {
-! /* Change "prev" buffer to be the right size. This way
-! * the bytes are only copied once, and very long lines are
-! * allocated only once. */
-! if ((s = vim_realloc(prev, prevlen + len + 1)) != NULL)
- {
-! mch_memmove(s + prevlen, start, len);
- s[prevlen + len] = NUL;
-+ prev = NULL; /* the list will own the string */
-+ prevlen = prevsize = 0;
- }
- }
-! if (s == NULL)
-! {
-! do_outofmem_msg((long_u) prevlen + len + 1);
-! failed = TRUE;
-! break;
-! }
-
-! if ((li = listitem_alloc()) == NULL)
- {
- vim_free(s);
-+ failed = TRUE;
- break;
- }
- li->li_tv.v_type = VAR_STRING;
-***************
-*** 14412,14485 ****
- li->li_tv.vval.v_string = s;
- list_append(rettv->vval.v_list, li);
-
-! if (++cnt >= maxline && maxline >= 0)
-! break;
-! if (readlen <= 0)
- break;
- }
-! else if (buf[filtd] == NUL)
-! buf[filtd] = '\n';
- #ifdef FEAT_MBYTE
-! else if (buf[filtd] == 0xef
-! && enc_utf8
-! && filtd + 2 < buflen
-! && !binary
-! && buf[filtd + 1] == 0xbb
-! && buf[filtd + 2] == 0xbf)
-! {
-! /* remove utf-8 byte order mark */
-! mch_memmove(buf + filtd, buf + filtd + 3, buflen - filtd - 3);
-! --filtd;
-! buflen -= 3;
- }
- #endif
-! }
-! if (readlen <= 0)
-! break;
-
-! if (tolist == 0)
- {
-! if (buflen >= FREAD_SIZE / 2)
- {
-! /* "buf" is full, need to move text to an allocated buffer */
-! if (prev == NULL)
- {
-! prev = vim_strnsave(buf, buflen);
-! prevlen = buflen;
- }
-! else
- {
-! s = alloc((unsigned)(prevlen + buflen));
-! if (s != NULL)
-! {
-! mch_memmove(s, prev, prevlen);
-! mch_memmove(s + prevlen, buf, buflen);
-! vim_free(prev);
-! prev = s;
-! prevlen += buflen;
-! }
- }
-! filtd = 0;
- }
- }
-! else
-! {
-! mch_memmove(buf, buf + tolist, buflen - tolist);
-! filtd -= tolist;
-! }
-! }
-
- /*
- * For a negative line count use only the lines at the end of the file,
- * free the rest.
- */
-! if (maxline < 0)
- while (cnt > -maxline)
- {
- listitem_remove(rettv->vval.v_list, rettv->vval.v_list->lv_first);
- --cnt;
- }
-
- vim_free(prev);
- fclose(fd);
- }
---- 14421,14529 ----
- li->li_tv.vval.v_string = s;
- list_append(rettv->vval.v_list, li);
-
-! start = p + 1; /* step over newline */
-! if ((++cnt >= maxline && maxline >= 0) || readlen <= 0)
- break;
- }
-! else if (*p == NUL)
-! *p = '\n';
- #ifdef FEAT_MBYTE
-! /* Check for utf8 "bom"; U+FEFF is encoded as EF BB BF. Do this
-! * when finding the BF and check the previous two bytes. */
-! else if (*p == 0xbf && enc_utf8 && !binary)
-! {
-! /* Find the two bytes before the 0xbf. If p is at buf, or buf
-! * + 1, these may be in the "prev" string. */
-! char_u back1 = p >= buf + 1 ? p[-1]
-! : prevlen >= 1 ? prev[prevlen - 1] : NUL;
-! char_u back2 = p >= buf + 2 ? p[-2]
-! : p == buf + 1 && prevlen >= 1 ? prev[prevlen - 1]
-! : prevlen >= 2 ? prev[prevlen - 2] : NUL;
-!
-! if (back2 == 0xef && back1 == 0xbb)
-! {
-! char_u *dest = p - 2;
-!
-! /* Usually a BOM is at the beginning of a file, and so at
-! * the beginning of a line; then we can just step over it.
-! */
-! if (start == dest)
-! start = p + 1;
-! else
-! {
-! /* have to shuffle buf to close gap */
-! int adjust_prevlen = 0;
-!
-! if (dest < buf)
-! {
-! adjust_prevlen = buf - dest; /* must be 1 or 2 */
-! dest = buf;
-! }
-! if (readlen > p - buf + 1)
-! mch_memmove(dest, p + 1, readlen - (p - buf) - 1);
-! readlen -= 3 - adjust_prevlen;
-! prevlen -= adjust_prevlen;
-! p = dest - 1;
-! }
-! }
- }
- #endif
-! } /* for */
-
-! if (failed || (cnt >= maxline && maxline >= 0) || readlen <= 0)
-! break;
-! if (start < p)
- {
-! /* There's part of a line in buf, store it in "prev". */
-! if (p - start + prevlen >= prevsize)
- {
-! /* need bigger "prev" buffer */
-! char_u *newprev;
-!
-! /* A common use case is ordinary text files and "prev" gets a
-! * fragment of a line, so the first allocation is made
-! * small, to avoid repeatedly 'allocing' large and
-! * 'reallocing' small. */
-! if (prevsize == 0)
-! prevsize = p - start;
-! else
- {
-! long grow50pc = (prevsize * 3) / 2;
-! long growmin = (p - start) * 2 + prevlen;
-! prevsize = grow50pc > growmin ? grow50pc : growmin;
- }
-! if ((newprev = vim_realloc(prev, prevsize)) == NULL)
- {
-! do_outofmem_msg((long_u)prevsize);
-! failed = TRUE;
-! break;
- }
-! prev = newprev;
- }
-+ /* Add the line part to end of "prev". */
-+ mch_memmove(prev + prevlen, start, p - start);
-+ prevlen += p - start;
- }
-! } /* while */
-
- /*
- * For a negative line count use only the lines at the end of the file,
- * free the rest.
- */
-! if (!failed && maxline < 0)
- while (cnt > -maxline)
- {
- listitem_remove(rettv->vval.v_list, rettv->vval.v_list->lv_first);
- --cnt;
- }
-
-+ if (failed)
-+ {
-+ list_free(rettv->vval.v_list, TRUE);
-+ /* readfile doc says an empty list is returned on error */
-+ rettv->vval.v_list = list_alloc();
-+ }
-+
- vim_free(prev);
- fclose(fd);
- }
-*** ../vim-7.3.426/src/version.c 2012-02-04 23:34:57.000000000 +0100
---- src/version.c 2012-02-05 00:38:34.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 427,
- /**/
-
---
-One difference between a man and a machine is that a machine is quiet
-when well oiled.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.428
-Fcc: 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.428
-Problem: Win32: an xpm file without a mask crashes Vim.
-Solution: Fail when the mask is missing. (Dave Bodenstab)
-Files: src/xpm_w32.c
-
-
-*** ../vim-7.3.427/src/xpm_w32.c 2010-08-15 21:57:25.000000000 +0200
---- src/xpm_w32.c 2012-02-05 00:46:13.000000000 +0100
-***************
-*** 1,4 ****
-! /*
- * Load XPM image.
- *
- * This function is placed in separate file because Xpm headers conflict with
---- 1,5 ----
-! /* vi:set ts=8 sts=4 sw=4:
-! *
- * Load XPM image.
- *
- * This function is placed in separate file because Xpm headers conflict with
-***************
-*** 30,38 ****
- #include "xpm.h"
-
- /*
-! * Tries to load Xpm image from file 'filename'.
-! * If fails return -1.
-! * success - 0 and image and mask BITMAPS
- */
- int
- LoadXpmImage(filename, hImage, hShape)
---- 31,40 ----
- #include "xpm.h"
-
- /*
-! * Tries to load an Xpm image from the file "filename".
-! * Returns -1 on failure.
-! * Returns 0 on success and stores image and mask BITMAPS in "hImage" and
-! * "hShape".
- */
- int
- LoadXpmImage(filename, hImage, hShape)
-***************
-*** 40,46 ****
- HBITMAP *hImage;
- HBITMAP *hShape;
- {
-! XImage *img; /* loaded image */
- XImage *shp; /* shapeimage */
- XpmAttributes attr;
- int res;
---- 42,48 ----
- HBITMAP *hImage;
- HBITMAP *hShape;
- {
-! XImage *img; /* loaded image */
- XImage *shp; /* shapeimage */
- XpmAttributes attr;
- int res;
-***************
-*** 51,60 ****
- DeleteDC(hdc);
- if (res < 0)
- return -1;
-! else
- {
-! *hImage = img->bitmap;
-! *hShape = shp->bitmap;
-! return 0;
- }
- }
---- 53,65 ----
- DeleteDC(hdc);
- if (res < 0)
- return -1;
-! if (shp == NULL)
- {
-! if (img)
-! XDestroyImage(img);
-! return -1;
- }
-+ *hImage = img->bitmap;
-+ *hShape = shp->bitmap;
-+ return 0;
- }
-*** ../vim-7.3.427/src/version.c 2012-02-05 00:39:14.000000000 +0100
---- src/version.c 2012-02-05 00:47:08.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 428,
- /**/
-
---
-I'm not familiar with this proof, but I'm aware of a significant
-following of toddlers who believe that peanut butter is the solution
-to all of life's problems... -- Tim Hammerquist
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.429
-Fcc: 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.429
-Problem: When 'cpoptions' includes "E" "c0" in the first column is an
- error. The redo register is then set to the errornous command.
-Solution: Do not set the redo register if the command fails because of an
- empty region. (Hideki Eiraku)
-Files: src/getchar.c, src/normal.c, src/proto/getchar.pro
-
-
-*** ../vim-7.3.428/src/getchar.c 2012-01-10 22:26:12.000000000 +0100
---- src/getchar.c 2012-02-05 01:05:09.000000000 +0100
-***************
-*** 470,475 ****
---- 470,493 ----
- }
- }
-
-+ /*
-+ * Discard the contents of the redo buffer and restore the previous redo
-+ * buffer.
-+ */
-+ void
-+ CancelRedo()
-+ {
-+ if (!block_redo)
-+ {
-+ free_buff(&redobuff);
-+ redobuff = old_redobuff;
-+ old_redobuff.bh_first.b_next = NULL;
-+ start_stuff();
-+ while (read_stuff(TRUE) != NUL)
-+ ;
-+ }
-+ }
-+
- #if defined(FEAT_AUTOCMD) || defined(FEAT_EVAL) || defined(PROTO)
- /*
- * Save redobuff and old_redobuff to save_redobuff and save_old_redobuff.
-***************
-*** 691,699 ****
- * Read a character from the redo buffer. Translates K_SPECIAL, CSI and
- * multibyte characters.
- * The redo buffer is left as it is.
-! * if init is TRUE, prepare for redo, return FAIL if nothing to redo, OK
-! * otherwise
-! * if old is TRUE, use old_redobuff instead of redobuff
- */
- static int
- read_redo(init, old_redo)
---- 709,717 ----
- * Read a character from the redo buffer. Translates K_SPECIAL, CSI and
- * multibyte characters.
- * The redo buffer is left as it is.
-! * If init is TRUE, prepare for redo, return FAIL if nothing to redo, OK
-! * otherwise.
-! * If old is TRUE, use old_redobuff instead of redobuff.
- */
- static int
- read_redo(init, old_redo)
-*** ../vim-7.3.428/src/normal.c 2012-01-26 11:43:04.000000000 +0100
---- src/normal.c 2012-02-05 01:06:01.000000000 +0100
-***************
-*** 1978,1984 ****
---- 1978,1987 ----
- VIsual_reselect = FALSE; /* don't reselect now */
- #endif
- if (empty_region_error)
-+ {
- vim_beep();
-+ CancelRedo();
-+ }
- else
- {
- (void)op_delete(oap);
-***************
-*** 1992,1998 ****
---- 1995,2004 ----
- if (empty_region_error)
- {
- if (!gui_yank)
-+ {
- vim_beep();
-+ CancelRedo();
-+ }
- }
- else
- (void)op_yank(oap, FALSE, !gui_yank);
-***************
-*** 2004,2010 ****
---- 2010,2019 ----
- VIsual_reselect = FALSE; /* don't reselect now */
- #endif
- if (empty_region_error)
-+ {
- vim_beep();
-+ CancelRedo();
-+ }
- else
- {
- /* This is a new edit command, not a restart. Need to
-***************
-*** 2066,2072 ****
---- 2075,2084 ----
- case OP_LOWER:
- case OP_ROT13:
- if (empty_region_error)
-+ {
- vim_beep();
-+ CancelRedo();
-+ }
- else
- op_tilde(oap);
- check_cursor_col();
-***************
-*** 2099,2105 ****
---- 2111,2120 ----
- #endif
- #ifdef FEAT_VISUALEXTRA
- if (empty_region_error)
-+ {
- vim_beep();
-+ CancelRedo();
-+ }
- else
- {
- /* This is a new edit command, not a restart. Need to
-***************
-*** 2129,2135 ****
---- 2144,2153 ----
- #ifdef FEAT_VISUALEXTRA
- if (empty_region_error)
- #endif
-+ {
- vim_beep();
-+ CancelRedo();
-+ }
- #ifdef FEAT_VISUALEXTRA
- else
- op_replace(oap, cap->nchar);
-*** ../vim-7.3.428/src/proto/getchar.pro 2010-10-20 21:22:17.000000000 +0200
---- src/proto/getchar.pro 2012-02-05 01:05:20.000000000 +0100
-***************
-*** 4,11 ****
- char_u *get_inserted __ARGS((void));
- int stuff_empty __ARGS((void));
- void typeahead_noflush __ARGS((int c));
-! void flush_buffers __ARGS((int typeahead));
- void ResetRedobuff __ARGS((void));
- void saveRedobuff __ARGS((void));
- void restoreRedobuff __ARGS((void));
- void AppendToRedobuff __ARGS((char_u *s));
---- 4,12 ----
- char_u *get_inserted __ARGS((void));
- int stuff_empty __ARGS((void));
- void typeahead_noflush __ARGS((int c));
-! void flush_buffers __ARGS((int flush_typeahead));
- void ResetRedobuff __ARGS((void));
-+ void CancelRedo __ARGS((void));
- void saveRedobuff __ARGS((void));
- void restoreRedobuff __ARGS((void));
- void AppendToRedobuff __ARGS((char_u *s));
-*** ../vim-7.3.428/src/version.c 2012-02-05 00:47:56.000000000 +0100
---- src/version.c 2012-02-05 01:09:23.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 429,
- /**/
-
---
-The History of every major Galactic Civilization tends to pass through
-three distinct and recognizable phases, those of Survival, Inquiry and
-Sophistication, otherwise known as the How, Why and Where phases.
-For instance, the first phase is characterized by the question 'How can
-we eat?' the second by the question 'Why do we eat?' and the third by
-the question 'Where shall we have lunch?'
- -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.430
-Fcc: 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.430
-Problem: When a custom filetype detection uses "augroup END" the conf
- fileytpe detection does not have the filetypedetect group.
-Solution: Always end the group and include filetypedetect in the conf
- autocommand. (Lech Lorens)
-Files: runtime/filetype.vim
-
-
-*** ../vim-7.3.429/runtime/filetype.vim 2012-02-05 20:08:08.000000000 +0100
---- runtime/filetype.vim 2012-02-05 19:59:40.000000000 +0100
-***************
-*** 2545,2561 ****
- " detected filetypes.
- runtime! ftdetect/*.vim
-
-
- " Generic configuration file (check this last, it's just guessing!)
-! au BufNewFile,BufRead,StdinReadPost *
- \ if !did_filetype() && expand("<amatch>") !~ g:ft_ignore_pat
- \ && (getline(1) =~ '^#' || getline(2) =~ '^#' || getline(3) =~ '^#'
- \ || getline(4) =~ '^#' || getline(5) =~ '^#') |
- \ setf conf |
- \ endif
-
-- augroup END
--
-
- " If the GUI is already running, may still need to install the Syntax menu.
- " Don't do it when the 'M' flag is included in 'guioptions'.
---- 2545,2563 ----
- " detected filetypes.
- runtime! ftdetect/*.vim
-
-+ " NOTE: The above command could have ended the filetypedetect autocmd group
-+ " and started another one. Let's make sure it has ended to get to a consistant
-+ " state.
-+ augroup END
-
- " Generic configuration file (check this last, it's just guessing!)
-! au filetypedetect BufNewFile,BufRead,StdinReadPost *
- \ if !did_filetype() && expand("<amatch>") !~ g:ft_ignore_pat
- \ && (getline(1) =~ '^#' || getline(2) =~ '^#' || getline(3) =~ '^#'
- \ || getline(4) =~ '^#' || getline(5) =~ '^#') |
- \ setf conf |
- \ endif
-
-
- " If the GUI is already running, may still need to install the Syntax menu.
- " Don't do it when the 'M' flag is included in 'guioptions'.
-*** ../vim-7.3.429/src/version.c 2012-02-05 01:18:41.000000000 +0100
---- src/version.c 2012-02-05 20:02:18.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 430,
- /**/
-
---
-The technology involved in making anything invisible is so infinitely
-complex that nine hundred and ninety-nine billion, nine hundred and
-ninety-nine million, nine hundred and ninety-nine thousand, nine hundred
-and ninety-nine times out of a trillion it is much simpler and more
-effective just to take the thing away and do without it.
- -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.431
-Fcc: 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.431
-Problem: Fetching a key at a prompt may be confused by escape sequences.
- Especially when getting a prompt at a VimEnter autocommand.
- (Alex Efros)
-Solution: Properly handle escape sequences deleted by check_termcode().
-Files: src/getchar.c, src/misc1.c, src/term.c, src/proto/term.pro
-
-
-*** ../vim-7.3.430/src/getchar.c 2012-02-05 01:18:41.000000000 +0100
---- src/getchar.c 2012-02-05 22:04:33.000000000 +0100
-***************
-*** 2282,2288 ****
- typebuf.tb_off] == RM_YES))
- && !timedout)
- {
-! keylen = check_termcode(max_mlen + 1, NULL, 0);
-
- /* If no termcode matched but 'pastetoggle'
- * matched partially it's like an incomplete key
---- 2282,2289 ----
- typebuf.tb_off] == RM_YES))
- && !timedout)
- {
-! keylen = check_termcode(max_mlen + 1,
-! NULL, 0, NULL);
-
- /* If no termcode matched but 'pastetoggle'
- * matched partially it's like an incomplete key
-*** ../vim-7.3.430/src/misc1.c 2012-01-10 18:37:53.000000000 +0100
---- src/misc1.c 2012-02-05 21:59:53.000000000 +0100
-***************
-*** 3105,3112 ****
- int
- get_keystroke()
- {
-! #define CBUFLEN 151
-! char_u buf[CBUFLEN];
- int len = 0;
- int n;
- int save_mapped_ctrl_c = mapped_ctrl_c;
---- 3105,3113 ----
- int
- get_keystroke()
- {
-! char_u *buf = NULL;
-! int buflen = 150;
-! int maxlen;
- int len = 0;
- int n;
- int save_mapped_ctrl_c = mapped_ctrl_c;
-***************
-*** 3118,3129 ****
- cursor_on();
- out_flush();
-
- /* First time: blocking wait. Second time: wait up to 100ms for a
-! * terminal code to complete. Leave some room for check_termcode() to
-! * insert a key code into (max 5 chars plus NUL). And
-! * fix_input_buffer() can triple the number of bytes. */
-! n = ui_inchar(buf + len, (CBUFLEN - 6 - len) / 3,
-! len == 0 ? -1L : 100L, 0);
- if (n > 0)
- {
- /* Replace zero and CSI by a special key code. */
---- 3119,3147 ----
- cursor_on();
- out_flush();
-
-+ /* Leave some room for check_termcode() to insert a key code into (max
-+ * 5 chars plus NUL). And fix_input_buffer() can triple the number of
-+ * bytes. */
-+ maxlen = (buflen - 6 - len) / 3;
-+ if (buf == NULL)
-+ buf = alloc(buflen);
-+ else if (maxlen < 10)
-+ {
-+ /* Need some more space. This migth happen when receiving a long
-+ * escape sequence. */
-+ buflen += 100;
-+ buf = vim_realloc(buf, buflen);
-+ maxlen = (buflen - 6 - len) / 3;
-+ }
-+ if (buf == NULL)
-+ {
-+ do_outofmem_msg((long_u)buflen);
-+ return ESC; /* panic! */
-+ }
-+
- /* First time: blocking wait. Second time: wait up to 100ms for a
-! * terminal code to complete. */
-! n = ui_inchar(buf + len, maxlen, len == 0 ? -1L : 100L, 0);
- if (n > 0)
- {
- /* Replace zero and CSI by a special key code. */
-***************
-*** 3135,3141 ****
- ++waited; /* keep track of the waiting time */
-
- /* Incomplete termcode and not timed out yet: get more characters */
-! if ((n = check_termcode(1, buf, len)) < 0
- && (!p_ttimeout || waited * 100L < (p_ttm < 0 ? p_tm : p_ttm)))
- continue;
-
---- 3153,3159 ----
- ++waited; /* keep track of the waiting time */
-
- /* Incomplete termcode and not timed out yet: get more characters */
-! if ((n = check_termcode(1, buf, buflen, &len)) < 0
- && (!p_ttimeout || waited * 100L < (p_ttm < 0 ? p_tm : p_ttm)))
- continue;
-
-***************
-*** 3203,3209 ****
- {
- if (MB_BYTE2LEN(n) > len)
- continue; /* more bytes to get */
-! buf[len >= CBUFLEN ? CBUFLEN - 1 : len] = NUL;
- n = (*mb_ptr2char)(buf);
- }
- #endif
---- 3221,3227 ----
- {
- if (MB_BYTE2LEN(n) > len)
- continue; /* more bytes to get */
-! buf[len >= buflen ? buflen - 1 : len] = NUL;
- n = (*mb_ptr2char)(buf);
- }
- #endif
-***************
-*** 3213,3218 ****
---- 3231,3237 ----
- #endif
- break;
- }
-+ vim_free(buf);
-
- mapped_ctrl_c = save_mapped_ctrl_c;
- return n;
-*** ../vim-7.3.430/src/term.c 2012-01-26 13:01:54.000000000 +0100
---- src/term.c 2012-02-05 21:45:09.000000000 +0100
-***************
-*** 3785,3798 ****
- * 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.
-! * When "buf" is not NULL, it is used instead of typebuf.tb_buf[]. "buflen" is
-! * then the length of the string in buf[].
- */
- int
-! check_termcode(max_offset, buf, buflen)
- int max_offset;
- char_u *buf;
-! int buflen;
- {
- char_u *tp;
- char_u *p;
---- 3785,3800 ----
- * 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.
-! * When "buf" is not NULL, buf[bufsize] is used instead of typebuf.tb_buf[].
-! * "buflen" is then the length of the string in buf[] and is updated for
-! * inserts and deletes.
- */
- int
-! check_termcode(max_offset, buf, bufsize, buflen)
- int max_offset;
- char_u *buf;
-! int bufsize;
-! int *buflen;
- {
- char_u *tp;
- char_u *p;
-***************
-*** 3864,3873 ****
- }
- else
- {
-! if (offset >= buflen)
- break;
- tp = buf + offset;
-! len = buflen - offset;
- }
-
- /*
---- 3866,3875 ----
- }
- else
- {
-! if (offset >= *buflen)
- break;
- tp = buf + offset;
-! len = *buflen - offset;
- }
-
- /*
-***************
-*** 5002,5013 ****
- if (extra < 0)
- /* remove matched characters */
- mch_memmove(buf + offset, buf + offset - extra,
-! (size_t)(buflen + offset + extra));
- else if (extra > 0)
-! /* insert the extra space we need */
- mch_memmove(buf + offset + extra, buf + offset,
-! (size_t)(buflen - offset));
- mch_memmove(buf + offset, string, (size_t)new_slen);
- }
- return retval == 0 ? (len + extra + offset) : retval;
- }
---- 5004,5021 ----
- if (extra < 0)
- /* remove matched characters */
- mch_memmove(buf + offset, buf + offset - extra,
-! (size_t)(*buflen + offset + extra));
- else if (extra > 0)
-! {
-! /* Insert the extra space we need. If there is insufficient
-! * space return -1. */
-! if (*buflen + extra + new_slen >= bufsize)
-! return -1;
- mch_memmove(buf + offset + extra, buf + offset,
-! (size_t)(*buflen - offset));
-! }
- mch_memmove(buf + offset, string, (size_t)new_slen);
-+ *buflen = *buflen + extra + new_slen;
- }
- return retval == 0 ? (len + extra + offset) : retval;
- }
-*** ../vim-7.3.430/src/proto/term.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/term.pro 2012-02-05 21:45:16.000000000 +0100
-***************
-*** 50,56 ****
- char_u *get_termcode __ARGS((int i));
- void del_termcode __ARGS((char_u *name));
- void set_mouse_topline __ARGS((win_T *wp));
-! int check_termcode __ARGS((int max_offset, char_u *buf, int buflen));
- char_u *replace_termcodes __ARGS((char_u *from, char_u **bufp, int from_part, int do_lt, int special));
- int find_term_bykeys __ARGS((char_u *src));
- void show_termcodes __ARGS((void));
---- 50,56 ----
- char_u *get_termcode __ARGS((int i));
- void del_termcode __ARGS((char_u *name));
- void set_mouse_topline __ARGS((win_T *wp));
-! int check_termcode __ARGS((int max_offset, char_u *buf, int bufsize, int *buflen));
- char_u *replace_termcodes __ARGS((char_u *from, char_u **bufp, int from_part, int do_lt, int special));
- int find_term_bykeys __ARGS((char_u *src));
- void show_termcodes __ARGS((void));
-*** ../vim-7.3.430/src/version.c 2012-02-05 20:08:30.000000000 +0100
---- src/version.c 2012-02-05 22:03:43.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 431,
- /**/
-
---
-"You know, it's at times like this when I'm trapped in a Vogon airlock with
-a man from Betelgeuse and about to die of asphyxiation in deep space that I
-really wish I'd listened to what my mother told me when I was young!"
-"Why, what did she tell you?"
-"I don't know, I didn't listen!"
- -- Arthur Dent and Ford Prefect in Douglas Adams'
- "The Hitchhiker's Guide to the Galaxy"
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.432
-Fcc: 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.432
-Problem: ACLs are not supported for ZFS or NFSv4 on Solaris.
-Solution: Add configure check and code. (Danek Duvall)
-Files: src/configure.in, src/auto/configure, src/config.h.in,
- src/os_unix.c
-
-
-*** ../vim-7.3.431/src/configure.in 2011-12-14 20:51:19.000000000 +0100
---- src/configure.in 2012-02-05 22:40:22.000000000 +0100
-***************
-*** 3106,3111 ****
---- 3106,3112 ----
-
- dnl Link with -lposix1e for ACL stuff; if not found, try -lacl for SGI
- dnl when -lacl works, also try to use -lattr (required for Debian).
-+ dnl On Solaris, use the acl_get/set functions in libsec, if present.
- AC_MSG_CHECKING(--disable-acl argument)
- AC_ARG_ENABLE(acl,
- [ --disable-acl Don't check for ACL support.],
-***************
-*** 3128,3133 ****
---- 3129,3135 ----
- AC_MSG_RESULT(yes); AC_DEFINE(HAVE_POSIX_ACL),
- AC_MSG_RESULT(no))
-
-+ AC_CHECK_LIB(sec, acl_get, [LIBS="$LIBS -lsec"; AC_DEFINE(HAVE_SOLARIS_ZFS_ACL)],
- AC_MSG_CHECKING(for Solaris ACL support)
- AC_TRY_LINK([
- #ifdef HAVE_SYS_ACL_H
-***************
-*** 3135,3141 ****
- #endif], [acl("foo", GETACLCNT, 0, NULL);
- ],
- AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SOLARIS_ACL),
-! AC_MSG_RESULT(no))
-
- AC_MSG_CHECKING(for AIX ACL support)
- AC_TRY_LINK([
---- 3137,3143 ----
- #endif], [acl("foo", GETACLCNT, 0, NULL);
- ],
- AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SOLARIS_ACL),
-! AC_MSG_RESULT(no)))
-
- AC_MSG_CHECKING(for AIX ACL support)
- AC_TRY_LINK([
-*** ../vim-7.3.431/src/auto/configure 2011-12-14 20:51:19.000000000 +0100
---- src/auto/configure 2012-02-05 22:41:01.000000000 +0100
-***************
-*** 11328,11334 ****
- rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-
-! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Solaris ACL support" >&5
- $as_echo_n "checking for Solaris ACL support... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h. */
---- 11328,11374 ----
- rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-
-! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for acl_get in -lsec" >&5
-! $as_echo_n "checking for acl_get in -lsec... " >&6; }
-! if test "${ac_cv_lib_sec_acl_get+set}" = set; then :
-! $as_echo_n "(cached) " >&6
-! else
-! ac_check_lib_save_LIBS=$LIBS
-! LIBS="-lsec $LIBS"
-! cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-! /* end confdefs.h. */
-!
-! /* Override any GCC internal prototype to avoid an error.
-! Use char because int might match the return type of a GCC
-! builtin and then its argument prototype would still apply. */
-! #ifdef __cplusplus
-! extern "C"
-! #endif
-! char acl_get ();
-! int
-! main ()
-! {
-! return acl_get ();
-! ;
-! return 0;
-! }
-! _ACEOF
-! if ac_fn_c_try_link "$LINENO"; then :
-! ac_cv_lib_sec_acl_get=yes
-! else
-! ac_cv_lib_sec_acl_get=no
-! fi
-! rm -f core conftest.err conftest.$ac_objext \
-! conftest$ac_exeext conftest.$ac_ext
-! LIBS=$ac_check_lib_save_LIBS
-! fi
-! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sec_acl_get" >&5
-! $as_echo "$ac_cv_lib_sec_acl_get" >&6; }
-! if test "x$ac_cv_lib_sec_acl_get" = x""yes; then :
-! LIBS="$LIBS -lsec"; $as_echo "#define HAVE_SOLARIS_ZFS_ACL 1" >>confdefs.h
-!
-! else
-! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Solaris ACL support" >&5
- $as_echo_n "checking for Solaris ACL support... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h. */
-***************
-*** 11355,11360 ****
---- 11395,11402 ----
- fi
- rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-+ fi
-+
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for AIX ACL support" >&5
- $as_echo_n "checking for AIX ACL support... " >&6; }
-*** ../vim-7.3.431/src/config.h.in 2011-09-02 12:27:20.000000000 +0200
---- src/config.h.in 2012-02-05 22:40:22.000000000 +0100
-***************
-*** 363,368 ****
---- 363,369 ----
-
- /* Define if you want to add support for ACL */
- #undef HAVE_POSIX_ACL
-+ #undef HAVE_SOLARIS_ZFS_ACL
- #undef HAVE_SOLARIS_ACL
- #undef HAVE_AIX_ACL
-
-*** ../vim-7.3.431/src/os_unix.c 2012-01-10 22:26:12.000000000 +0100
---- src/os_unix.c 2012-02-05 22:40:22.000000000 +0100
-***************
-*** 2746,2751 ****
---- 2746,2758 ----
- #ifdef HAVE_POSIX_ACL
- ret = (vim_acl_T)acl_get_file((char *)fname, ACL_TYPE_ACCESS);
- #else
-+ #ifdef HAVE_SOLARIS_ZFS_ACL
-+ acl_t *aclent;
-+
-+ if (acl_get((char *)fname, 0, &aclent) < 0)
-+ return NULL;
-+ ret = (vim_acl_T)aclent;
-+ #else
- #ifdef HAVE_SOLARIS_ACL
- vim_acl_solaris_T *aclent;
-
-***************
-*** 2791,2796 ****
---- 2798,2804 ----
- ret = (vim_acl_T)aclent;
- #endif /* HAVE_AIX_ACL */
- #endif /* HAVE_SOLARIS_ACL */
-+ #endif /* HAVE_SOLARIS_ZFS_ACL */
- #endif /* HAVE_POSIX_ACL */
- return ret;
- }
-***************
-*** 2808,2813 ****
---- 2816,2824 ----
- #ifdef HAVE_POSIX_ACL
- acl_set_file((char *)fname, ACL_TYPE_ACCESS, (acl_t)aclent);
- #else
-+ #ifdef HAVE_SOLARIS_ZFS_ACL
-+ acl_set((char *)fname, (acl_t *)aclent);
-+ #else
- #ifdef HAVE_SOLARIS_ACL
- acl((char *)fname, SETACL, ((vim_acl_solaris_T *)aclent)->acl_cnt,
- ((vim_acl_solaris_T *)aclent)->acl_entry);
-***************
-*** 2816,2821 ****
---- 2827,2833 ----
- chacl((char *)fname, aclent, ((struct acl *)aclent)->acl_len);
- #endif /* HAVE_AIX_ACL */
- #endif /* HAVE_SOLARIS_ACL */
-+ #endif /* HAVE_SOLARIS_ZFS_ACL */
- #endif /* HAVE_POSIX_ACL */
- }
-
-***************
-*** 2828,2833 ****
---- 2840,2848 ----
- #ifdef HAVE_POSIX_ACL
- acl_free((acl_t)aclent);
- #else
-+ #ifdef HAVE_SOLARIS_ZFS_ACL
-+ acl_free((acl_t *)aclent);
-+ #else
- #ifdef HAVE_SOLARIS_ACL
- free(((vim_acl_solaris_T *)aclent)->acl_entry);
- free(aclent);
-***************
-*** 2836,2841 ****
---- 2851,2857 ----
- free(aclent);
- #endif /* HAVE_AIX_ACL */
- #endif /* HAVE_SOLARIS_ACL */
-+ #endif /* HAVE_SOLARIS_ZFS_ACL */
- #endif /* HAVE_POSIX_ACL */
- }
- #endif
-*** ../vim-7.3.431/src/version.c 2012-02-05 22:05:44.000000000 +0100
---- src/version.c 2012-02-05 22:44:10.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 432,
- /**/
-
---
-If you put 7 of the most talented OSS developers in a room for a week
-and asked them to fix a bug in a spreadsheet program, in 1 week
-you'd have 2 new mail readers and a text-based web browser.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.433
-Fcc: 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.433
-Problem: Using continued lines in a Vim script can be slow.
-Solution: Instead of reallocating for every line use a growarray. (Yasuhiro
- Matsumoto)
-Files: src/ex_cmds2.c
-
-
-*** ../vim-7.3.432/src/ex_cmds2.c 2012-02-04 21:57:44.000000000 +0100
---- src/ex_cmds2.c 2012-02-05 23:06:31.000000000 +0100
-***************
-*** 3439,3460 ****
- {
- /* compensate for the one line read-ahead */
- --sourcing_lnum;
-! for (;;)
- {
-! sp->nextline = get_one_sourceline(sp);
-! if (sp->nextline == NULL)
-! break;
-! p = skipwhite(sp->nextline);
-! if (*p != '\\')
-! break;
-! s = alloc((unsigned)(STRLEN(line) + STRLEN(p)));
-! if (s == NULL) /* out of memory */
-! break;
-! STRCPY(s, line);
-! STRCAT(s, p + 1);
- vim_free(line);
-! line = s;
-! vim_free(sp->nextline);
- }
- }
-
---- 3439,3470 ----
- {
- /* compensate for the one line read-ahead */
- --sourcing_lnum;
-!
-! /* Get the next line and concatenate it when it starts with a
-! * backslash. We always need to read the next line, keep it in
-! * sp->nextline. */
-! sp->nextline = get_one_sourceline(sp);
-! if (sp->nextline != NULL && *(p = skipwhite(sp->nextline)) == '\\')
- {
-! garray_T ga;
-!
-! ga_init2(&ga, (int)sizeof(char_u), 200);
-! ga_concat(&ga, line);
-! ga_concat(&ga, p + 1);
-! for (;;)
-! {
-! vim_free(sp->nextline);
-! sp->nextline = get_one_sourceline(sp);
-! if (sp->nextline == NULL)
-! break;
-! p = skipwhite(sp->nextline);
-! if (*p != '\\')
-! break;
-! ga_concat(&ga, p + 1);
-! }
-! ga_append(&ga, NUL);
- vim_free(line);
-! line = ga.ga_data;
- }
- }
-
-*** ../vim-7.3.432/src/version.c 2012-02-05 22:51:27.000000000 +0100
---- src/version.c 2012-02-05 23:09:21.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 433,
- /**/
-
---
-Due knot trussed yore spell chequer two fined awl miss steaks.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.434
-Fcc: 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.434
-Problem: Using join() can be slow.
-Solution: Compute the size of the result before allocation to avoid a lot of
- allocations and copies. (Taro Muraoka)
-Files: src/eval.c
-
-
-*** ../vim-7.3.433/src/eval.c 2012-02-05 00:39:14.000000000 +0100
---- src/eval.c 2012-02-06 00:05:31.000000000 +0100
-***************
-*** 442,447 ****
---- 442,448 ----
- static list_T *list_copy __ARGS((list_T *orig, int deep, int copyID));
- static void list_remove __ARGS((list_T *l, listitem_T *item, listitem_T *item2));
- static char_u *list2string __ARGS((typval_T *tv, int copyID));
-+ static int list_join_inner __ARGS((garray_T *gap, list_T *l, char_u *sep, int echo_style, int copyID, garray_T *join_gap));
- static int list_join __ARGS((garray_T *gap, list_T *l, char_u *sep, int echo, int copyID));
- static int free_unref_items __ARGS((int copyID));
- static void set_ref_in_ht __ARGS((hashtab_T *ht, int copyID));
-***************
-*** 6571,6617 ****
- return (char_u *)ga.ga_data;
- }
-
-! /*
-! * Join list "l" into a string in "*gap", using separator "sep".
-! * When "echo_style" is TRUE use String as echoed, otherwise as inside a List.
-! * Return FAIL or OK.
-! */
- static int
-! list_join(gap, l, sep, echo_style, copyID)
-! garray_T *gap;
- list_T *l;
- char_u *sep;
- int echo_style;
- int copyID;
- {
- int first = TRUE;
- char_u *tofree;
- char_u numbuf[NUMBUFLEN];
- listitem_T *item;
- char_u *s;
-
- for (item = l->lv_first; item != NULL && !got_int; item = item->li_next)
- {
-- if (first)
-- first = FALSE;
-- else
-- ga_concat(gap, sep);
--
- if (echo_style)
- s = echo_string(&item->li_tv, &tofree, numbuf, copyID);
- else
- s = tv2string(&item->li_tv, &tofree, numbuf, copyID);
-- if (s != NULL)
-- ga_concat(gap, s);
-- vim_free(tofree);
- if (s == NULL)
- return FAIL;
- line_breakcheck();
- }
- return OK;
- }
-
- /*
- * Garbage collection for lists and dictionaries.
- *
- * We use reference counts to be able to free most items right away when they
---- 6572,6690 ----
- return (char_u *)ga.ga_data;
- }
-
-! typedef struct join_S {
-! char_u *s;
-! char_u *tofree;
-! } join_T;
-!
- static int
-! list_join_inner(gap, l, sep, echo_style, copyID, join_gap)
-! garray_T *gap; /* to store the result in */
- list_T *l;
- char_u *sep;
- int echo_style;
- int copyID;
-+ garray_T *join_gap; /* to keep each list item string */
- {
-+ int i;
-+ join_T *p;
-+ int len;
-+ int sumlen = 0;
- int first = TRUE;
- char_u *tofree;
- char_u numbuf[NUMBUFLEN];
- listitem_T *item;
- char_u *s;
-
-+ /* Stringify each item in the list. */
- for (item = l->lv_first; item != NULL && !got_int; item = item->li_next)
- {
- if (echo_style)
- s = echo_string(&item->li_tv, &tofree, numbuf, copyID);
- else
- s = tv2string(&item->li_tv, &tofree, numbuf, copyID);
- if (s == NULL)
- return FAIL;
-+
-+ len = (int)STRLEN(s);
-+ sumlen += len;
-+
-+ ga_grow(join_gap, 1);
-+ p = ((join_T *)join_gap->ga_data) + (join_gap->ga_len++);
-+ if (tofree != NULL || s != numbuf)
-+ {
-+ p->s = s;
-+ p->tofree = tofree;
-+ }
-+ else
-+ {
-+ p->s = vim_strnsave(s, len);
-+ p->tofree = p->s;
-+ }
-+
-+ line_breakcheck();
-+ }
-+
-+ /* Allocate result buffer with its total size, avoid re-allocation and
-+ * multiple copy operations. Add 2 for a tailing ']' and NUL. */
-+ if (join_gap->ga_len >= 2)
-+ sumlen += (int)STRLEN(sep) * (join_gap->ga_len - 1);
-+ if (ga_grow(gap, sumlen + 2) == FAIL)
-+ return FAIL;
-+
-+ for (i = 0; i < join_gap->ga_len && !got_int; ++i)
-+ {
-+ if (first)
-+ first = FALSE;
-+ else
-+ ga_concat(gap, sep);
-+ p = ((join_T *)join_gap->ga_data) + i;
-+
-+ if (p->s != NULL)
-+ ga_concat(gap, p->s);
- line_breakcheck();
- }
-+
- return OK;
- }
-
- /*
-+ * Join list "l" into a string in "*gap", using separator "sep".
-+ * When "echo_style" is TRUE use String as echoed, otherwise as inside a List.
-+ * Return FAIL or OK.
-+ */
-+ static int
-+ list_join(gap, l, sep, echo_style, copyID)
-+ garray_T *gap;
-+ list_T *l;
-+ char_u *sep;
-+ int echo_style;
-+ int copyID;
-+ {
-+ garray_T join_ga;
-+ int retval;
-+ join_T *p;
-+ int i;
-+
-+ ga_init2(&join_ga, (int)sizeof(join_T), l->lv_len);
-+ retval = list_join_inner(gap, l, sep, echo_style, copyID, &join_ga);
-+
-+ /* Dispose each item in join_ga. */
-+ if (join_ga.ga_data != NULL)
-+ {
-+ p = (join_T *)join_ga.ga_data;
-+ for (i = 0; i < join_ga.ga_len; ++i)
-+ {
-+ vim_free(p->tofree);
-+ ++p;
-+ }
-+ ga_clear(&join_ga);
-+ }
-+
-+ return retval;
-+ }
-+
-+ /*
- * Garbage collection for lists and dictionaries.
- *
- * We use reference counts to be able to free most items right away when they
-***************
-*** 13406,13412 ****
- char_u *rhs;
- int mode;
- int abbr = FALSE;
-! int get_dict = FALSE;
- mapblock_T *mp;
- int buffer_local;
-
---- 13479,13485 ----
- char_u *rhs;
- int mode;
- int abbr = FALSE;
-! int get_dict = FALSE;
- mapblock_T *mp;
- int buffer_local;
-
-*** ../vim-7.3.433/src/version.c 2012-02-05 23:10:25.000000000 +0100
---- src/version.c 2012-02-06 00:10:23.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 434,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-30. Even though you died last week, you've managed to retain OPS on your
- favorite IRC channel.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.435
-Fcc: 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.435
-Problem: Compiler warning for unused variable.
-Solution: Move the variable inside #ifdef.
-Files: src/ex_cmds2.c
-
-
-*** ../vim-7.3.434/src/ex_cmds2.c 2012-02-05 23:10:25.000000000 +0100
---- src/ex_cmds2.c 2012-02-06 06:16:28.000000000 +0100
-***************
-*** 3400,3406 ****
- {
- struct source_cookie *sp = (struct source_cookie *)cookie;
- char_u *line;
-! char_u *p, *s;
-
- #ifdef FEAT_EVAL
- /* If breakpoints have been added/deleted need to check for it. */
---- 3400,3406 ----
- {
- struct source_cookie *sp = (struct source_cookie *)cookie;
- char_u *line;
-! char_u *p;
-
- #ifdef FEAT_EVAL
- /* If breakpoints have been added/deleted need to check for it. */
-***************
-*** 3471,3476 ****
---- 3471,3478 ----
- #ifdef FEAT_MBYTE
- if (line != NULL && sp->conv.vc_type != CONV_NONE)
- {
-+ char_u *s;
-+
- /* Convert the encoding of the script line. */
- s = string_convert(&sp->conv, line, NULL);
- if (s != NULL)
-*** ../vim-7.3.434/src/version.c 2012-02-06 00:13:16.000000000 +0100
---- src/version.c 2012-02-11 20:38:49.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 435,
- /**/
-
---
-Light travels faster than sound. This is why some people
-appear bright until you hear them speak
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.436
-Fcc: 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.436
-Problem: Compiler warnings for types on Windows.
-Solution: Add type casts. (Mike Williams)
-Files: src/eval.c
-
-
-*** ../vim-7.3.435/src/eval.c 2012-02-06 00:13:16.000000000 +0100
---- src/eval.c 2012-02-11 20:38:16.000000000 +0100
-***************
-*** 14462,14468 ****
- --prevlen;
- }
- if (prevlen == 0)
-! s = vim_strnsave(start, len);
- else
- {
- /* Change "prev" buffer to be the right size. This way
---- 14462,14468 ----
- --prevlen;
- }
- if (prevlen == 0)
-! s = vim_strnsave(start, (int)len);
- else
- {
- /* Change "prev" buffer to be the right size. This way
-***************
-*** 14529,14535 ****
-
- if (dest < buf)
- {
-! adjust_prevlen = buf - dest; /* must be 1 or 2 */
- dest = buf;
- }
- if (readlen > p - buf + 1)
---- 14529,14535 ----
-
- if (dest < buf)
- {
-! adjust_prevlen = (int)(buf - dest); /* must be 1 or 2 */
- dest = buf;
- }
- if (readlen > p - buf + 1)
-***************
-*** 14558,14568 ****
- * small, to avoid repeatedly 'allocing' large and
- * 'reallocing' small. */
- if (prevsize == 0)
-! prevsize = p - start;
- else
- {
- long grow50pc = (prevsize * 3) / 2;
-! long growmin = (p - start) * 2 + prevlen;
- prevsize = grow50pc > growmin ? grow50pc : growmin;
- }
- if ((newprev = vim_realloc(prev, prevsize)) == NULL)
---- 14558,14568 ----
- * small, to avoid repeatedly 'allocing' large and
- * 'reallocing' small. */
- if (prevsize == 0)
-! prevsize = (long)(p - start);
- else
- {
- long grow50pc = (prevsize * 3) / 2;
-! long growmin = (long)((p - start) * 2 + prevlen);
- prevsize = grow50pc > growmin ? grow50pc : growmin;
- }
- if ((newprev = vim_realloc(prev, prevsize)) == NULL)
-***************
-*** 14575,14581 ****
- }
- /* Add the line part to end of "prev". */
- mch_memmove(prev + prevlen, start, p - start);
-! prevlen += p - start;
- }
- } /* while */
-
---- 14575,14581 ----
- }
- /* Add the line part to end of "prev". */
- mch_memmove(prev + prevlen, start, p - start);
-! prevlen += (long)(p - start);
- }
- } /* while */
-
-*** ../vim-7.3.435/src/version.c 2012-02-11 20:40:49.000000000 +0100
---- src/version.c 2012-02-11 20:43:18.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 436,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-39. You move into a new house and decide to Netscape before you landscape.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.437
-Fcc: 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.437
-Problem: Continue looping inside FOR_ALL_TAB_WINDOWS even when already done.
-Solution: Use goto instead of break. (Hirohito Higashi)
-Files: src/fileio.c, src/globals.h
-
-
-*** ../vim-7.3.436/src/fileio.c 2011-09-02 11:56:15.000000000 +0200
---- src/fileio.c 2012-02-11 23:40:23.000000000 +0100
-***************
-*** 8898,8907 ****
- if (tp != curtab)
- goto_tabpage_tp(tp);
- win_goto(aucmd_win);
-! break;
- }
- }
- }
-
- /* Remove the window and frame from the tree of frames. */
- (void)winframe_remove(curwin, &dummy, NULL);
---- 8898,8908 ----
- if (tp != curtab)
- goto_tabpage_tp(tp);
- win_goto(aucmd_win);
-! goto win_found;
- }
- }
- }
-+ win_found:
-
- /* Remove the window and frame from the tree of frames. */
- (void)winframe_remove(curwin, &dummy, NULL);
-*** ../vim-7.3.436/src/globals.h 2012-02-04 23:34:57.000000000 +0100
---- src/globals.h 2012-02-11 23:43:45.000000000 +0100
-***************
-*** 535,540 ****
---- 535,544 ----
- EXTERN win_T *prevwin INIT(= NULL); /* previous window */
- # define W_NEXT(wp) ((wp)->w_next)
- # define FOR_ALL_WINDOWS(wp) for (wp = firstwin; wp != NULL; wp = wp->w_next)
-+ /*
-+ * When using this macro "break" only breaks out of the inner loop. Use "goto"
-+ * to break out of the tabpage loop.
-+ */
- # define FOR_ALL_TAB_WINDOWS(tp, wp) \
- for ((tp) = first_tabpage; (tp) != NULL; (tp) = (tp)->tp_next) \
- for ((wp) = ((tp) == curtab) \
-*** ../vim-7.3.436/src/version.c 2012-02-11 20:44:01.000000000 +0100
---- src/version.c 2012-02-11 23:40:47.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 437,
- /**/
-
---
-The future isn't what it used to be.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.438
-Fcc: 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.438
-Problem: There is no way to avoid ":doautoall" reading modelines.
-Solution: Add the <nomodeline> argument. Adjust documentation.
-Files: src/fileio.c, runtime/doc/autocmd.txt
-
-
-*** ../vim-7.3.437/src/fileio.c 2012-02-11 23:45:30.000000000 +0100
---- src/fileio.c 2012-02-12 00:08:17.000000000 +0100
-***************
-*** 8739,8744 ****
---- 8739,8752 ----
- int retval;
- aco_save_T aco;
- buf_T *buf;
-+ char_u *arg = eap->arg;
-+ int call_do_modelines = TRUE;
-+
-+ if (STRNCMP(arg, "<nomodeline>", 12) == 0)
-+ {
-+ call_do_modelines = FALSE;
-+ arg = skipwhite(arg + 12);
-+ }
-
- /*
- * This is a bit tricky: For some commands curwin->w_buffer needs to be
-***************
-*** 8755,8765 ****
- aucmd_prepbuf(&aco, buf);
-
- /* execute the autocommands for this buffer */
-! retval = do_doautocmd(eap->arg, FALSE);
-
-! /* Execute the modeline settings, but don't set window-local
-! * options if we are using the current window for another buffer. */
-! do_modelines(curwin == aucmd_win ? OPT_NOWIN : 0);
-
- /* restore the current window */
- aucmd_restbuf(&aco);
---- 8763,8777 ----
- aucmd_prepbuf(&aco, buf);
-
- /* execute the autocommands for this buffer */
-! retval = do_doautocmd(arg, FALSE);
-
-! if (call_do_modelines)
-! {
-! /* Execute the modeline settings, but don't set window-local
-! * options if we are using the current window for another
-! * buffer. */
-! do_modelines(curwin == aucmd_win ? OPT_NOWIN : 0);
-! }
-
- /* restore the current window */
- aucmd_restbuf(&aco);
-*** ../vim-7.3.437/runtime/doc/autocmd.txt 2011-05-19 17:25:36.000000000 +0200
---- runtime/doc/autocmd.txt 2012-02-12 00:03:45.000000000 +0100
-***************
-*** 1065,1077 ****
- autocommands for that group. Note: if you use an
- undefined group name, Vim gives you an error message.
-
-- After applying the autocommands the modelines are
-- processed, so that their settings overrule the
-- settings from autocommands, like what happens when
-- editing a file.
--
- *:doautoa* *:doautoall*
-! :doautoa[ll] [group] {event} [fname]
- Like ":doautocmd", but apply the autocommands to each
- loaded buffer. Note that [fname] is used to select
- the autocommands, not the buffers to which they are
---- 1073,1080 ----
- autocommands for that group. Note: if you use an
- undefined group name, Vim gives you an error message.
-
- *:doautoa* *:doautoall*
-! :doautoa[ll] [<nomodeline>] [group] {event} [fname]
- Like ":doautocmd", but apply the autocommands to each
- loaded buffer. Note that [fname] is used to select
- the autocommands, not the buffers to which they are
-***************
-*** 1082,1087 ****
---- 1085,1096 ----
- This command is intended for autocommands that set
- options, change highlighting, and things like that.
-
-+ After applying the autocommands the modelines are
-+ processed, so that their settings overrule the
-+ settings from autocommands, like what happens when
-+ editing a file. This is skipped when the <nomodeline>
-+ argument is present.
-+
- ==============================================================================
- 10. Using autocommands *autocmd-use*
-
-*** ../vim-7.3.437/src/version.c 2012-02-11 23:45:30.000000000 +0100
---- src/version.c 2012-02-12 00:16:04.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 438,
- /**/
-
---
-"Oh, no! NOT the Spanish Inquisition!"
-"NOBODY expects the Spanish Inquisition!!!"
- -- Monty Python sketch --
-"Oh, no! NOT another option!"
-"EVERYBODY expects another option!!!"
- -- Discussion in vim-dev mailing list --
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.439
-Fcc: 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.439
-Problem: Compiler warnings to size casts in Perl interface.
-Solution: Use XS macros. (James McCoy)
-Files: src/if_perl.xs, src/typemap
-
-
-*** ../vim-7.3.438/src/if_perl.xs 2011-09-07 18:47:19.000000000 +0200
---- src/if_perl.xs 2012-02-12 00:28:52.000000000 +0100
-***************
-*** 611,617 ****
- if (ptr->w_perl_private == NULL)
- {
- ptr->w_perl_private = newSV(0);
-! sv_setiv(ptr->w_perl_private, (IV)ptr);
- }
- else
- SvREFCNT_inc(ptr->w_perl_private);
---- 611,617 ----
- if (ptr->w_perl_private == NULL)
- {
- ptr->w_perl_private = newSV(0);
-! sv_setiv(ptr->w_perl_private, PTR2IV(ptr));
- }
- else
- SvREFCNT_inc(ptr->w_perl_private);
-***************
-*** 629,635 ****
- if (ptr->b_perl_private == NULL)
- {
- ptr->b_perl_private = newSV(0);
-! sv_setiv(ptr->b_perl_private, (IV)ptr);
- }
- else
- SvREFCNT_inc(ptr->b_perl_private);
---- 629,635 ----
- if (ptr->b_perl_private == NULL)
- {
- ptr->b_perl_private = newSV(0);
-! sv_setiv(ptr->b_perl_private, PTR2IV(ptr));
- }
- else
- SvREFCNT_inc(ptr->b_perl_private);
-*** ../vim-7.3.438/src/typemap 2010-08-15 21:57:29.000000000 +0200
---- src/typemap 2012-02-12 00:28:52.000000000 +0100
-***************
-*** 6,12 ****
- T_VIOBJNOMUNGE
- if (sv_isa($arg, \"${ntype}\")) {
- IV tmp = SvIV((SV*)SvRV($arg));
-! $var = ($type) tmp;
- if (!tmp)
- croak(\"$ntype no longer exists\");
- }
---- 6,12 ----
- T_VIOBJNOMUNGE
- if (sv_isa($arg, \"${ntype}\")) {
- IV tmp = SvIV((SV*)SvRV($arg));
-! $var = INT2PTR($type, tmp);
- if (!tmp)
- croak(\"$ntype no longer exists\");
- }
-*** ../vim-7.3.438/src/version.c 2012-02-12 00:18:54.000000000 +0100
---- src/version.c 2012-02-12 00:31:18.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 439,
- /**/
-
---
-Microsoft is to software what McDonalds is to gourmet cooking
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.440
-Fcc: 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.440
-Problem: Vim does not support UTF8_STRING for the X selection.
-Solution: Add UTF8_STRING atom support. (Alex Efros) Use it only when
- 'encoding' is set to Unicode.
-Files: src/ui.c
-
-
-*** ../vim-7.3.439/src/ui.c 2012-02-04 21:57:44.000000000 +0100
---- src/ui.c 2012-02-12 01:28:30.000000000 +0100
-***************
-*** 1917,1922 ****
---- 1917,1923 ----
- static Atom vim_atom; /* Vim's own special selection format */
- #ifdef FEAT_MBYTE
- static Atom vimenc_atom; /* Vim's extended selection format */
-+ static Atom utf8_atom;
- #endif
- static Atom compound_text_atom;
- static Atom text_atom;
-***************
-*** 1930,1935 ****
---- 1931,1937 ----
- vim_atom = XInternAtom(dpy, VIM_ATOM_NAME, False);
- #ifdef FEAT_MBYTE
- vimenc_atom = XInternAtom(dpy, VIMENC_ATOM_NAME,False);
-+ utf8_atom = XInternAtom(dpy, "UTF8_STRING", False);
- #endif
- compound_text_atom = XInternAtom(dpy, "COMPOUND_TEXT", False);
- text_atom = XInternAtom(dpy, "TEXT", False);
-***************
-*** 2074,2080 ****
- }
- #endif
-
-! else if (*type == compound_text_atom || (
- #ifdef FEAT_MBYTE
- enc_dbcs != 0 &&
- #endif
---- 2076,2086 ----
- }
- #endif
-
-! else if (*type == compound_text_atom
-! #ifdef FEAT_MBYTE
-! || *type == utf8_atom
-! #endif
-! || (
- #ifdef FEAT_MBYTE
- enc_dbcs != 0 &&
- #endif
-***************
-*** 2128,2134 ****
- #else
- 1
- #endif
-! ; i < 5; i++)
- {
- switch (i)
- {
---- 2134,2140 ----
- #else
- 1
- #endif
-! ; i < 6; i++)
- {
- switch (i)
- {
-***************
-*** 2136,2145 ****
- case 0: type = vimenc_atom; break;
- #endif
- case 1: type = vim_atom; break;
-! case 2: type = compound_text_atom; break;
-! case 3: type = text_atom; break;
- default: type = XA_STRING;
- }
- success = MAYBE;
- XtGetSelectionValue(myShell, cbd->sel_atom, type,
- clip_x11_request_selection_cb, (XtPointer)&success, CurrentTime);
---- 2142,2159 ----
- case 0: type = vimenc_atom; break;
- #endif
- case 1: type = vim_atom; break;
-! #ifdef FEAT_MBYTE
-! case 2: type = utf8_atom; break;
-! #endif
-! case 3: type = compound_text_atom; break;
-! case 4: type = text_atom; break;
- default: type = XA_STRING;
- }
-+ #ifdef FEAT_MBYTE
-+ if (type == utf8_atom && !enc_utf8)
-+ /* Only request utf-8 when 'encoding' is utf8. */
-+ continue;
-+ #endif
- success = MAYBE;
- XtGetSelectionValue(myShell, cbd->sel_atom, type,
- clip_x11_request_selection_cb, (XtPointer)&success, CurrentTime);
-***************
-*** 2230,2247 ****
- {
- Atom *array;
-
-! if ((array = (Atom *)XtMalloc((unsigned)(sizeof(Atom) * 6))) == NULL)
- return False;
- *value = (XtPointer)array;
- i = 0;
-- array[i++] = XA_STRING;
- array[i++] = targets_atom;
- #ifdef FEAT_MBYTE
- array[i++] = vimenc_atom;
- #endif
- array[i++] = vim_atom;
- array[i++] = text_atom;
- array[i++] = compound_text_atom;
- *type = XA_ATOM;
- /* This used to be: *format = sizeof(Atom) * 8; but that caused
- * crashes on 64 bit machines. (Peter Derr) */
---- 2244,2266 ----
- {
- Atom *array;
-
-! if ((array = (Atom *)XtMalloc((unsigned)(sizeof(Atom) * 7))) == NULL)
- return False;
- *value = (XtPointer)array;
- i = 0;
- array[i++] = targets_atom;
- #ifdef FEAT_MBYTE
- array[i++] = vimenc_atom;
- #endif
- array[i++] = vim_atom;
-+ #ifdef FEAT_MBYTE
-+ if (enc_utf8)
-+ array[i++] = utf8_atom;
-+ #endif
-+ array[i++] = XA_STRING;
- array[i++] = text_atom;
- array[i++] = compound_text_atom;
-+
- *type = XA_ATOM;
- /* This used to be: *format = sizeof(Atom) * 8; but that caused
- * crashes on 64 bit machines. (Peter Derr) */
-***************
-*** 2253,2258 ****
---- 2272,2278 ----
- if ( *target != XA_STRING
- #ifdef FEAT_MBYTE
- && *target != vimenc_atom
-+ && *target != utf8_atom
- #endif
- && *target != vim_atom
- && *target != text_atom
-***************
-*** 2282,2294 ****
- return False;
- }
-
-! if (*target == XA_STRING)
- {
- mch_memmove(result, string, (size_t)(*length));
-! *type = XA_STRING;
- }
-! else if (*target == compound_text_atom
-! || *target == text_atom)
- {
- XTextProperty text_prop;
- char *string_nt = (char *)alloc((unsigned)*length + 1);
---- 2302,2317 ----
- return False;
- }
-
-! if (*target == XA_STRING
-! #ifdef FEAT_MBYTE
-! || (*target == utf8_atom && enc_utf8)
-! #endif
-! )
- {
- mch_memmove(result, string, (size_t)(*length));
-! *type = *target;
- }
-! else if (*target == compound_text_atom || *target == text_atom)
- {
- XTextProperty text_prop;
- char *string_nt = (char *)alloc((unsigned)*length + 1);
-*** ../vim-7.3.439/src/version.c 2012-02-12 00:31:47.000000000 +0100
---- src/version.c 2012-02-12 01:34:22.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 440,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-42. Your virtual girlfriend finds a new net sweetheart with a larger bandwidth.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.441
-Fcc: 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.441
-Problem: Newer versions of MzScheme (Racket) require earlier (trampolined)
- initialisation.
-Solution: Call mzscheme_main() early in main(). (Sergey Khorev)
-Files: src/Make_mvc.mak, src/if_mzsch.c, src/main.c,
- src/proto/if_mzsch.pro
-
-
-*** ../vim-7.3.440/src/Make_mvc.mak 2011-09-14 19:01:38.000000000 +0200
---- src/Make_mvc.mak 2012-02-12 01:46:05.000000000 +0100
-***************
-*** 740,745 ****
---- 740,747 ----
- !endif
- !endif
- MZSCHEME_OBJ = $(OUTDIR)\if_mzsch.obj
-+ # increase stack size
-+ MZSCHEME_LIB = $(MZSCHEME_LIB) /STACK:8388608
- !endif
-
- # Perl interface
-*** ../vim-7.3.440/src/if_mzsch.c 2010-11-03 21:59:23.000000000 +0100
---- src/if_mzsch.c 2012-02-12 01:47:31.000000000 +0100
-***************
-*** 31,38 ****
- * depend". */
- #if defined(FEAT_MZSCHEME) || defined(PROTO)
-
-- #include <assert.h>
--
- /* Base data structures */
- #define SCHEME_VIMBUFFERP(obj) SAME_TYPE(SCHEME_TYPE(obj), mz_buffer_type)
- #define SCHEME_VIMWINDOWP(obj) SAME_TYPE(SCHEME_TYPE(obj), mz_window_type)
---- 31,36 ----
-***************
-*** 559,575 ****
- hMzSch = vimLoadLib(sch_dll);
- hMzGC = vimLoadLib(gc_dll);
-
-! if (!hMzSch)
- {
- if (verbose)
-! EMSG2(_(e_loadlib), sch_dll);
- return FAIL;
- }
-
-! if (!hMzGC)
- {
- if (verbose)
-! EMSG2(_(e_loadlib), gc_dll);
- return FAIL;
- }
-
---- 557,573 ----
- hMzSch = vimLoadLib(sch_dll);
- hMzGC = vimLoadLib(gc_dll);
-
-! if (!hMzGC)
- {
- if (verbose)
-! EMSG2(_(e_loadlib), gc_dll);
- return FAIL;
- }
-
-! if (!hMzSch)
- {
- if (verbose)
-! EMSG2(_(e_loadlib), sch_dll);
- return FAIL;
- }
-
-***************
-*** 798,862 ****
- 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);
- #else
-! mzscheme_env_main(NULL, 0, NULL);
- #endif
- }
-
- static int
-! mzscheme_env_main(Scheme_Env *env, int argc UNUSED, char **argv UNUSED)
- {
-! /* neither argument nor return values are used */
-! #ifdef MZ_PRECISE_GC
-! # if MZSCHEME_VERSION_MAJOR < 400
-! /*
-! * Starting from version 4.x, embedding applications must use
-! * scheme_main_setup/scheme_main_stack_setup trampolines
-! * rather than setting stack base directly with scheme_set_stack_base
-! */
- Scheme_Object *dummy = NULL;
- MZ_GC_DECL_REG(1);
- MZ_GC_VAR_IN_REG(0, dummy);
-
- stack_base = &__gc_var_stack__;
- # else
-- /* environment has been created by us by Scheme */
-- environment = env;
-- # endif
-- /*
-- * In 4.x, all activities must be performed inside trampoline
-- * so we are forced to initialise GC immediately
-- * This can be postponed in 3.x but I see no point in implementing
-- * a feature which will work in older versions only.
-- * One would better use conservative GC if he needs dynamic MzScheme
-- */
-- mzscheme_init();
-- #else
- int dummy = 0;
- stack_base = (void *)&dummy;
- #endif
-! main_loop(FALSE, FALSE);
-! #if defined(MZ_PRECISE_GC) && MZSCHEME_VERSION_MAJOR < 400
- /* releasing dummy */
- MZ_GC_REG();
- MZ_GC_UNREG();
- #endif
-! return 0;
- }
-
- static void
- startup_mzscheme(void)
- {
-! #if !defined(MZ_PRECISE_GC) || MZSCHEME_VERSION_MAJOR < 400
- scheme_set_stack_base(stack_base, 1);
- #endif
-
---- 796,863 ----
- static __declspec(thread) void *tls_space;
- #endif
-
-! /*
-! * Since version 4.x precise GC requires trampolined startup.
-! * Futures and places in version 5.x need it too.
-! */
-! #if defined(MZ_PRECISE_GC) && MZSCHEME_VERSION_MAJOR >= 400 \
-! || MZSCHEME_VERSION_MAJOR >= 500 && (defined(MZ_USE_FUTURES) || defined(MZ_USE_PLACES))
-! # ifdef DYNAMIC_MZSCHEME
-! # error Precise GC v.4+ or Racket with futures/places do not support dynamic MzScheme
-! # endif
-! # define TRAMPOLINED_MZVIM_STARTUP
-! #endif
-!
-! int
-! mzscheme_main(int argc, char** argv)
- {
- #if MZSCHEME_VERSION_MAJOR >= 500 && defined(WIN32) && defined(USE_THREAD_LOCAL)
- scheme_register_tls_space(&tls_space, 0);
- #endif
-! #ifdef TRAMPOLINED_MZVIM_STARTUP
-! return scheme_main_setup(TRUE, mzscheme_env_main, argc, argv);
- #else
-! return mzscheme_env_main(NULL, argc, argv);
- #endif
- }
-
- static int
-! mzscheme_env_main(Scheme_Env *env, int argc, char **argv)
- {
-! int vim_main_result;
-! #ifdef TRAMPOLINED_MZVIM_STARTUP
-! /* Scheme has created the environment for us */
-! environment = env;
-! #else
-! # ifdef MZ_PRECISE_GC
- Scheme_Object *dummy = NULL;
- MZ_GC_DECL_REG(1);
- MZ_GC_VAR_IN_REG(0, dummy);
-
- stack_base = &__gc_var_stack__;
- # else
- int dummy = 0;
- stack_base = (void *)&dummy;
-+ # endif
- #endif
-!
-! /* mzscheme_main is called as a trampoline from main.
-! * We trampoline into vim_main2
-! * Passing argc, argv through from mzscheme_main
-! */
-! vim_main_result = vim_main2(argc, argv);
-! #if !defined(TRAMPOLINED_MZVIM_STARTUP) && defined(MZ_PRECISE_GC)
- /* releasing dummy */
- MZ_GC_REG();
- MZ_GC_UNREG();
- #endif
-! return vim_main_result;
- }
-
- static void
- startup_mzscheme(void)
- {
-! #ifndef TRAMPOLINED_MZVIM_STARTUP
- scheme_set_stack_base(stack_base, 1);
- #endif
-
-***************
-*** 868,874 ****
- MZ_REGISTER_STATIC(exn_message);
- MZ_REGISTER_STATIC(vim_exn);
-
-! #if !defined(MZ_PRECISE_GC) || MZSCHEME_VERSION_MAJOR < 400
- /* in newer versions of precise GC the initial env has been created */
- environment = scheme_basic_env();
- #endif
---- 869,875 ----
- MZ_REGISTER_STATIC(exn_message);
- MZ_REGISTER_STATIC(vim_exn);
-
-! #ifndef TRAMPOLINED_MZVIM_STARTUP
- /* in newer versions of precise GC the initial env has been created */
- environment = scheme_basic_env();
- #endif
-***************
-*** 3013,3019 ****
- MZ_GC_REG();
-
- tmp = scheme_make_struct_names(exn_name, scheme_null, 0, &nc);
-- assert(nc <= 5);
- mch_memmove(exn_names, tmp, nc * sizeof(Scheme_Object *));
- MZ_GC_CHECK();
-
---- 3014,3019 ----
-*** ../vim-7.3.440/src/main.c 2011-12-08 15:57:54.000000000 +0100
---- src/main.c 2012-02-12 01:49:50.000000000 +0100
-***************
-*** 554,559 ****
---- 554,584 ----
- debug_break_level = params.use_debug_break_level;
- #endif
-
-+ #ifdef FEAT_MZSCHEME
-+ /*
-+ * Newer version of MzScheme (Racket) require earlier (trampolined)
-+ * initialisation via scheme_main_setup.
-+ * Implement this by initialising it as early as possible
-+ * and splitting off remaining Vim main into vim_main2
-+ */
-+ {
-+ /* Pack up preprocessed command line arguments.
-+ * It is safe because Scheme does not access argc/argv. */
-+ char *args[2];
-+ args[0] = (char *)fname;
-+ args[1] = (char *)&params;
-+ return mzscheme_main(2, args);
-+ }
-+ }
-+
-+ int vim_main2(int argc, char **argv)
-+ {
-+ char_u *fname = (char_u *)argv[0];
-+ mparm_T params;
-+
-+ memcpy(&params, argv[1], sizeof(params));
-+ #endif
-+
- /* Execute --cmd arguments. */
- exe_pre_commands(&params);
-
-***************
-*** 957,970 ****
-
- /*
- * Call the main command loop. This never returns.
-! * For embedded MzScheme the main_loop will be called by Scheme
-! * for proper stack tracking
-! */
-! #ifndef FEAT_MZSCHEME
- main_loop(FALSE, FALSE);
-- #else
-- mzscheme_main();
-- #endif
-
- return 0;
- }
---- 982,989 ----
-
- /*
- * Call the main command loop. This never returns.
-! */
- main_loop(FALSE, FALSE);
-
- return 0;
- }
-*** ../vim-7.3.440/src/proto/if_mzsch.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/if_mzsch.pro 2012-02-12 01:50:57.000000000 +0100
-***************
-*** 14,19 ****
- void mzvim_reset_timer __ARGS((void));
- void *mzvim_eval_string __ARGS((char_u *str));
- int mzthreads_allowed __ARGS((void));
-! void mzscheme_main __ARGS((void));
- void do_mzeval __ARGS((char_u *str, typval_T *rettv));
- /* vim: set ft=c : */
---- 14,20 ----
- void mzvim_reset_timer __ARGS((void));
- void *mzvim_eval_string __ARGS((char_u *str));
- int mzthreads_allowed __ARGS((void));
-! int mzscheme_main __ARGS((int argc, char **argv));
- void do_mzeval __ARGS((char_u *str, typval_T *rettv));
-+ int vim_main2 __ARGS((int argc, char **argv));
- /* vim: set ft=c : */
-*** ../vim-7.3.440/src/version.c 2012-02-12 01:35:06.000000000 +0100
---- src/version.c 2012-02-12 01:54:14.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 441,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-43. You tell the kids they can't use the computer because "Daddy's got work to
- do" and you don't even have a job.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.442
-Fcc: 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.442 (after 7.3.438)
-Problem: Still read modelines for ":doautocmd".
-Solution: Move check for <nomodeline> to separate function.
-Files: src/fileio.c, src/ex_docmd.c, src/proto/fileio.pro,
- runtime/doc/autocmd.txt
-
-
-*** ../vim-7.3.441/src/fileio.c 2012-02-12 00:18:54.000000000 +0100
---- src/fileio.c 2012-02-12 20:05:35.000000000 +0100
-***************
-*** 8740,8752 ****
- aco_save_T aco;
- buf_T *buf;
- char_u *arg = eap->arg;
-! int call_do_modelines = TRUE;
-!
-! if (STRNCMP(arg, "<nomodeline>", 12) == 0)
-! {
-! call_do_modelines = FALSE;
-! arg = skipwhite(arg + 12);
-! }
-
- /*
- * This is a bit tricky: For some commands curwin->w_buffer needs to be
---- 8740,8746 ----
- aco_save_T aco;
- buf_T *buf;
- char_u *arg = eap->arg;
-! int call_do_modelines = check_nomodeline(&arg);
-
- /*
- * This is a bit tricky: For some commands curwin->w_buffer needs to be
-***************
-*** 8786,8791 ****
---- 8780,8802 ----
- }
-
- /*
-+ * Check *argp for <nomodeline>. When it is present return FALSE, otherwise
-+ * return TRUE and advance *argp to after it.
-+ * Thus return TRUE when do_modelines() should be called.
-+ */
-+ int
-+ check_nomodeline(argp)
-+ char_u **argp;
-+ {
-+ if (STRNCMP(*argp, "<nomodeline>", 12) == 0)
-+ {
-+ *argp = skipwhite(*argp + 12);
-+ return FALSE;
-+ }
-+ return TRUE;
-+ }
-+
-+ /*
- * Prepare for executing autocommands for (hidden) buffer "buf".
- * Search for a visible window containing the current buffer. If there isn't
- * one then use "aucmd_win".
-*** ../vim-7.3.441/src/ex_docmd.c 2012-01-26 20:41:22.000000000 +0100
---- src/ex_docmd.c 2012-02-12 20:05:18.000000000 +0100
-***************
-*** 4955,4961 ****
- map_clear(eap->cmd, eap->arg, TRUE, TRUE);
- }
-
-! #ifdef FEAT_AUTOCMD
- static void
- ex_autocmd(eap)
- exarg_T *eap;
---- 4955,4961 ----
- map_clear(eap->cmd, eap->arg, TRUE, TRUE);
- }
-
-! #if defined(FEAT_AUTOCMD) || defined(PROTO)
- static void
- ex_autocmd(eap)
- exarg_T *eap;
-***************
-*** 4982,4989 ****
- ex_doautocmd(eap)
- exarg_T *eap;
- {
-! (void)do_doautocmd(eap->arg, TRUE);
-! do_modelines(0);
- }
- #endif
-
---- 4982,4993 ----
- ex_doautocmd(eap)
- exarg_T *eap;
- {
-! char_u *arg = eap->arg;
-! int call_do_modelines = check_nomodeline(&arg);
-!
-! (void)do_doautocmd(arg, TRUE);
-! if (call_do_modelines) /* Only when there is no <nomodeline>. */
-! do_modelines(0);
- }
- #endif
-
-*** ../vim-7.3.441/src/proto/fileio.pro 2010-12-17 16:27:10.000000000 +0100
---- src/proto/fileio.pro 2012-02-12 20:05:26.000000000 +0100
-***************
-*** 35,40 ****
---- 35,41 ----
- void do_autocmd __ARGS((char_u *arg, int forceit));
- int do_doautocmd __ARGS((char_u *arg, int do_msg));
- void ex_doautoall __ARGS((exarg_T *eap));
-+ int check_nomodeline __ARGS((char_u **argp));
- void aucmd_prepbuf __ARGS((aco_save_T *aco, buf_T *buf));
- void aucmd_restbuf __ARGS((aco_save_T *aco));
- int apply_autocmds __ARGS((event_T event, char_u *fname, char_u *fname_io, int force, buf_T *buf));
-*** ../vim-7.3.441/runtime/doc/autocmd.txt 2012-02-12 00:18:54.000000000 +0100
---- runtime/doc/autocmd.txt 2012-02-12 20:11:05.000000000 +0100
-***************
-*** 1064,1069 ****
---- 1072,1085 ----
- argument is included, Vim executes only the matching
- autocommands for that group. Note: if you use an
- undefined group name, Vim gives you an error message.
-+ *<nomodeline>*
-+ After applying the autocommands the modelines are
-+ processed, so that their settings overrule the
-+ settings from autocommands, like what happens when
-+ editing a file. This is skipped when the <nomodeline>
-+ argument is present. You probably want to use
-+ <nomodeline> for events that are not used when loading
-+ a buffer, such as |User|.
-
- *:doautoa* *:doautoall*
- :doautoa[ll] [<nomodeline>] [group] {event} [fname]
-***************
-*** 1077,1088 ****
- This command is intended for autocommands that set
- options, change highlighting, and things like that.
-
-- After applying the autocommands the modelines are
-- processed, so that their settings overrule the
-- settings from autocommands, like what happens when
-- editing a file. This is skipped when the <nomodeline>
-- argument is present.
--
- ==============================================================================
- 10. Using autocommands *autocmd-use*
-
---- 1093,1098 ----
-*** ../vim-7.3.441/src/version.c 2012-02-12 01:55:50.000000000 +0100
---- src/version.c 2012-02-12 20:11:34.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 442,
- /**/
-
---
-The real
-trick is
-this: to
-keep the
-lines as
-short as
-possible
-and keep
-the size
-the same
-yet free
-from the
-need for
-hyphena-
-Dammit!! (Matthew Winn)
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.443
-Fcc: 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.443
-Problem: MS-Windows: 'shcf' and 'shellxquote' defaults are not very good.
-Solution: Make a better guess when 'shell' is set to "cmd.exe". (Ben Fritz)
-Files: src/option.c, runtime/doc/options.txt
-
-
-*** ../vim-7.3.442/src/option.c 2012-01-28 18:03:30.000000000 +0100
---- src/option.c 2012-02-12 23:17:55.000000000 +0100
-***************
-*** 3883,3889 ****
-
- #if defined(MSDOS) || defined(WIN3264) || defined(OS2)
- /*
-! * Set 'shellcmdflag and 'shellquote' depending on the 'shell' option.
- * This is done after other initializations, where 'shell' might have been
- * set, but only if they have not been set before. Default for p_shcf is
- * "/c", for p_shq is "". For "sh" like shells it is changed here to
---- 3883,3890 ----
-
- #if defined(MSDOS) || defined(WIN3264) || defined(OS2)
- /*
-! * Set 'shellcmdflag', 'shellxquote', and 'shellquote' depending on the
-! * 'shell' option.
- * This is done after other initializations, where 'shell' might have been
- * set, but only if they have not been set before. Default for p_shcf is
- * "/c", for p_shq is "". For "sh" like shells it is changed here to
-***************
-*** 3920,3925 ****
---- 3921,3962 ----
- # endif
- # endif
- }
-+ else if (strstr((char *)gettail(p_sh), "cmd.exe") != NULL)
-+ {
-+ int idx3;
-+
-+ /*
-+ * cmd.exe on Windows will strip the first and last double quote given
-+ * on the command line, e.g. most of the time things like:
-+ * cmd /c "my path/to/echo" "my args to echo"
-+ * become:
-+ * my path/to/echo" "my args to echo
-+ * when executed.
-+ *
-+ * To avoid this, use the /s argument in addition to /c to force the
-+ * stripping behavior, and also set shellxquote to automatically
-+ * surround the entire command in quotes (which get stripped as
-+ * noted).
-+ */
-+
-+ /* Set shellxquote default to add the quotes to be stripped. */
-+ idx3 = findoption((char_u *)"sxq");
-+ if (idx3 >= 0 && !(options[idx3].flags & P_WAS_SET))
-+ {
-+ p_sxq = (char_u *)"\"";
-+ options[idx3].def_val[VI_DEFAULT] = p_sxq;
-+ }
-+
-+ /* Set shellcmdflag default to always strip the quotes, note the order
-+ * between /s and /c is important or cmd.exe will treat the /s as part
-+ * of the command to be executed. */
-+ idx3 = findoption((char_u *)"shcf");
-+ if (idx3 >= 0 && !(options[idx3].flags & P_WAS_SET))
-+ {
-+ p_shcf = (char_u *)"/s /c";
-+ options[idx3].def_val[VI_DEFAULT] = p_shcf;
-+ }
-+ }
- #endif
-
- #ifdef FEAT_TITLE
-*** ../vim-7.3.442/runtime/doc/options.txt 2011-06-26 05:36:07.000000000 +0200
---- runtime/doc/options.txt 2012-02-12 23:21:59.000000000 +0100
-***************
-*** 5880,5895 ****
- security reasons.
-
- *'shellcmdflag'* *'shcf'*
-! 'shellcmdflag' 'shcf' string (default: "-c", MS-DOS and Win32, when 'shell'
-! does not contain "sh" somewhere: "/c")
- global
- {not in Vi}
- Flag passed to the shell to execute "!" and ":!" commands; e.g.,
- "bash.exe -c ls" or "command.com /c dir". For the MS-DOS-like
- systems, the default is set according to the value of 'shell', to
- reduce the need to set this option by the user. It's not used for
-! OS/2 (EMX figures this out itself). See |option-backslash| about
-! including spaces and backslashes. See |dos-shell|.
- This option cannot be set from a |modeline| or in the |sandbox|, for
- security reasons.
-
---- 5899,5919 ----
- security reasons.
-
- *'shellcmdflag'* *'shcf'*
-! 'shellcmdflag' 'shcf' string (default: "-c";
-! Win32, when 'shell' is cmd.exe: "/s /c";
-! MS-DOS and Win32, when 'shell' neither is
-! cmd.exe nor contains "sh" somewhere: "/c")
- global
- {not in Vi}
- Flag passed to the shell to execute "!" and ":!" commands; e.g.,
- "bash.exe -c ls" or "command.com /c dir". For the MS-DOS-like
- systems, the default is set according to the value of 'shell', to
- reduce the need to set this option by the user. It's not used for
-! OS/2 (EMX figures this out itself).
-! On Unix it can have more than one flag. Each white space separated
-! part is passed as an argument to the shell command.
-! See |option-backslash| about including spaces and backslashes.
-! Also see |dos-shell| for MS-DOS and MS-Windows.
- This option cannot be set from a |modeline| or in the |sandbox|, for
- security reasons.
-
-***************
-*** 5910,5918 ****
- For Unix the default it "| tee". The stdout of the compiler is saved
- in a file and echoed to the screen. If the 'shell' option is "csh" or
- "tcsh" after initializations, the default becomes "|& tee". If the
-! 'shell' option is "sh", "ksh", "zsh" or "bash" the default becomes
-! "2>&1| tee". This means that stderr is also included. Before using
-! the 'shell' option a path is removed, thus "/bin/sh" uses "sh".
- The initialization of this option is done after reading the ".vimrc"
- and the other initializations, so that when the 'shell' option is set
- there, the 'shellpipe' option changes automatically, unless it was
---- 5934,5943 ----
- For Unix the default it "| tee". The stdout of the compiler is saved
- in a file and echoed to the screen. If the 'shell' option is "csh" or
- "tcsh" after initializations, the default becomes "|& tee". If the
-! 'shell' option is "sh", "ksh", "mksh", "pdksh", "zsh" or "bash" the
-! default becomes "2>&1| tee". This means that stderr is also included.
-! Before using the 'shell' option a path is removed, thus "/bin/sh" uses
-! "sh".
- The initialization of this option is done after reading the ".vimrc"
- and the other initializations, so that when the 'shell' option is set
- there, the 'shellpipe' option changes automatically, unless it was
-***************
-*** 6017,6024 ****
-
- *'shellxquote'* *'sxq'*
- 'shellxquote' 'sxq' string (default: "";
-! for Win32, when 'shell' contains "sh"
-! somewhere: "\""
- for Unix, when using system(): "\"")
- global
- {not in Vi}
---- 6043,6050 ----
-
- *'shellxquote'* *'sxq'*
- 'shellxquote' 'sxq' string (default: "";
-! for Win32, when 'shell' is cmd.exe or
-! contains "sh" somewhere: "\""
- for Unix, when using system(): "\"")
- global
- {not in Vi}
-***************
-*** 6026,6036 ****
- the "!" and ":!" commands. Includes the redirection. See
- 'shellquote' to exclude the redirection. It's probably not useful
- to set both options.
-! This is an empty string by default. Known to be useful for
-! third-party shells when using the Win32 version, such as the MKS Korn
-! Shell or bash, where it should be "\"". The default is adjusted
-! according the value of 'shell', to reduce the need to set this option
-! by the user. See |dos-shell|.
- This option cannot be set from a |modeline| or in the |sandbox|, for
- security reasons.
-
---- 6052,6063 ----
- the "!" and ":!" commands. Includes the redirection. See
- 'shellquote' to exclude the redirection. It's probably not useful
- to set both options.
-! This is an empty string by default on most systems, but is known to be
-! useful for on Win32 version, either for cmd.exe which automatically
-! strips off the first and last quote on a command, or 3rd-party shells
-! such as the MKS Korn Shell or bash, where it should be "\"". The
-! default is adjusted according the value of 'shell', to reduce the need
-! to set this option by the user. See |dos-shell|.
- This option cannot be set from a |modeline| or in the |sandbox|, for
- security reasons.
-
-*** ../vim-7.3.442/src/version.c 2012-02-12 20:13:55.000000000 +0100
---- src/version.c 2012-02-12 23:18:40.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 443,
- /**/
-
---
-CVS sux, men don't like commitment
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.444
-Fcc: 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.444
-Problem: ":all!" and ":sall!" give error E477, even though the
- documentation says these are valid commands.
-Solution: Support the exclamation mark. (Hirohito Higashi)
-Files: src/ex_cmds.h, src/testdir/test31.in, src/testdir/test31.ok
-
-
-*** ../vim-7.3.443/src/ex_cmds.h 2011-06-20 05:02:53.000000000 +0200
---- src/ex_cmds.h 2012-02-12 23:53:31.000000000 +0100
-***************
-*** 102,108 ****
- EX(CMD_aboveleft, "aboveleft", ex_wrongmodifier,
- NEEDARG|EXTRA|NOTRLCOM),
- EX(CMD_all, "all", ex_all,
-! RANGE|NOTADR|COUNT|TRLBAR),
- EX(CMD_amenu, "amenu", ex_menu,
- RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_anoremenu, "anoremenu", ex_menu,
---- 102,108 ----
- EX(CMD_aboveleft, "aboveleft", ex_wrongmodifier,
- NEEDARG|EXTRA|NOTRLCOM),
- EX(CMD_all, "all", ex_all,
-! BANG|RANGE|NOTADR|COUNT|TRLBAR),
- EX(CMD_amenu, "amenu", ex_menu,
- RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_anoremenu, "anoremenu", ex_menu,
-***************
-*** 798,804 ****
- EX(CMD_sargument, "sargument", ex_argument,
- BANG|RANGE|NOTADR|COUNT|EXTRA|EDITCMD|ARGOPT|TRLBAR),
- EX(CMD_sall, "sall", ex_all,
-! RANGE|NOTADR|COUNT|TRLBAR),
- EX(CMD_sandbox, "sandbox", ex_wrongmodifier,
- NEEDARG|EXTRA|NOTRLCOM),
- EX(CMD_saveas, "saveas", ex_write,
---- 798,804 ----
- EX(CMD_sargument, "sargument", ex_argument,
- BANG|RANGE|NOTADR|COUNT|EXTRA|EDITCMD|ARGOPT|TRLBAR),
- EX(CMD_sall, "sall", ex_all,
-! BANG|RANGE|NOTADR|COUNT|TRLBAR),
- EX(CMD_sandbox, "sandbox", ex_wrongmodifier,
- NEEDARG|EXTRA|NOTRLCOM),
- EX(CMD_saveas, "saveas", ex_write,
-*** ../vim-7.3.443/src/testdir/test31.in 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test31.in 2012-02-12 23:57:42.000000000 +0100
-***************
-*** 63,68 ****
---- 63,74 ----
- :" write "testtext 1"
- A 3:close!
- :w >>test.out
-+ :set nohidden
-+ :" test ":all!" hides changed buffer; write "testtext 2 2 2"
-+ :sp Xtest4
-+ GA 4:all!
-+ :1wincmd w
-+ :w >>test.out
- :qa!
- ENDTEST
-
-*** ../vim-7.3.443/src/testdir/test31.ok 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test31.ok 2012-02-13 00:00:13.000000000 +0100
-***************
-*** 9,11 ****
---- 9,12 ----
- testtext 1
- testtext 3 3 3
- testtext 1
-+ testtext 2 2 2
-*** ../vim-7.3.443/src/version.c 2012-02-12 23:23:25.000000000 +0100
---- src/version.c 2012-02-12 23:52:47.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 444,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-50. The last girl you picked up was only a jpeg.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.445
-Fcc: 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.445 (after 7.3.443)
-Problem: Can't properly escape commands for cmd.exe.
-Solution: Default 'shellxquote' to '('. Append ')' to make '(command)'.
- No need to use "/s" for 'shellcmdflag'.
-Files: src/misc2.c, src/option.c, src/os_win32.c
-
-
-*** ../vim-7.3.444/src/misc2.c 2012-01-20 17:15:47.000000000 +0100
---- src/misc2.c 2012-02-16 05:34:37.000000000 +0100
-***************
-*** 3230,3236 ****
- {
- STRCPY(ncmd, p_sxq);
- STRCAT(ncmd, cmd);
-! STRCAT(ncmd, p_sxq);
- retval = mch_call_shell(ncmd, opt);
- vim_free(ncmd);
- }
---- 3230,3240 ----
- {
- STRCPY(ncmd, p_sxq);
- STRCAT(ncmd, cmd);
-! /* When 'shellxquote' is ( append ).
-! * When 'shellxquote' is "( append )". */
-! STRCAT(ncmd, STRCMP(p_sxq, "(") == 0 ? (char_u *)")"
-! : STRCMP(p_sxq, "\"(") == 0 ? (char_u *)")\""
-! : p_sxq);
- retval = mch_call_shell(ncmd, opt);
- vim_free(ncmd);
- }
-*** ../vim-7.3.444/src/option.c 2012-02-12 23:23:25.000000000 +0100
---- src/option.c 2012-02-19 18:08:48.000000000 +0100
-***************
-*** 3933,3959 ****
- * my path/to/echo" "my args to echo
- * when executed.
- *
-! * To avoid this, use the /s argument in addition to /c to force the
-! * stripping behavior, and also set shellxquote to automatically
-! * surround the entire command in quotes (which get stripped as
-! * noted).
- */
--
-- /* Set shellxquote default to add the quotes to be stripped. */
- idx3 = findoption((char_u *)"sxq");
- if (idx3 >= 0 && !(options[idx3].flags & P_WAS_SET))
- {
-! p_sxq = (char_u *)"\"";
- options[idx3].def_val[VI_DEFAULT] = p_sxq;
- }
-
-- /* Set shellcmdflag default to always strip the quotes, note the order
-- * between /s and /c is important or cmd.exe will treat the /s as part
-- * of the command to be executed. */
- idx3 = findoption((char_u *)"shcf");
- if (idx3 >= 0 && !(options[idx3].flags & P_WAS_SET))
- {
-! p_shcf = (char_u *)"/s /c";
- options[idx3].def_val[VI_DEFAULT] = p_shcf;
- }
- }
---- 3933,3954 ----
- * my path/to/echo" "my args to echo
- * when executed.
- *
-! * To avoid this, set shellxquote to surround the command in
-! * parenthesis. This appears to make most commands work, without
-! * breaking commands that worked previously, such as
-! * '"path with spaces/cmd" "a&b"'.
- */
- idx3 = findoption((char_u *)"sxq");
- if (idx3 >= 0 && !(options[idx3].flags & P_WAS_SET))
- {
-! p_sxq = (char_u *)"(";
- options[idx3].def_val[VI_DEFAULT] = p_sxq;
- }
-
- idx3 = findoption((char_u *)"shcf");
- if (idx3 >= 0 && !(options[idx3].flags & P_WAS_SET))
- {
-! p_shcf = (char_u *)"/c";
- options[idx3].def_val[VI_DEFAULT] = p_shcf;
- }
- }
-*** ../vim-7.3.444/src/os_win32.c 2011-08-27 15:10:00.000000000 +0200
---- src/os_win32.c 2012-02-19 18:11:23.000000000 +0100
-***************
-*** 3908,3915 ****
- newcmd = lalloc(cmdlen, TRUE);
- if (newcmd != NULL)
- {
-! char_u *cmdbase = (*cmd == '"' ? cmd + 1 : cmd);
-
- if ((STRNICMP(cmdbase, "start", 5) == 0) && vim_iswhite(cmdbase[5]))
- {
- STARTUPINFO si;
---- 3908,3920 ----
- newcmd = lalloc(cmdlen, TRUE);
- if (newcmd != NULL)
- {
-! char_u *cmdbase = cmd;
-
-+ /* Skip a leading ", ( and "(. */
-+ if (*cmdbase == '"' )
-+ ++cmdbase;
-+ if (*cmdbase == '(')
-+ ++cmdbase;
- if ((STRNICMP(cmdbase, "start", 5) == 0) && vim_iswhite(cmdbase[5]))
- {
- STARTUPINFO si;
-***************
-*** 3953,3968 ****
- * empty, keep the double quotes around the command.
- * Otherwise remove the double quotes, they aren't needed
- * here, because we don't use a shell to run the command. */
-! if (*cmd == '"' && *p_sxq == NUL)
- {
-! newcmd[0] = '"';
-! STRCPY(newcmd + 1, cmdbase);
-! }
-! else
-! {
-! STRCPY(newcmd, cmdbase);
-! if (*cmd == '"' && *newcmd != NUL)
-! newcmd[STRLEN(newcmd) - 1] = NUL;
- }
-
- /*
---- 3958,3983 ----
- * empty, keep the double quotes around the command.
- * Otherwise remove the double quotes, they aren't needed
- * here, because we don't use a shell to run the command. */
-! if (cmdbase > cmd)
- {
-! if (STRNCMP(cmd, p_sxq, cmd - cmdbase) != 0)
-! {
-! STRCPY(newcmd, cmd);
-! }
-! else
-! {
-! char_u *p;
-!
-! STRCPY(newcmd, cmdbase);
-! /* Remove a trailing ", ) and )" if they have a match
-! * at the start of the command. */
-! p = newcmd + STRLEN(newcmd);
-! if (p > newcmd && p[-1] == '"' && *cmd == '"')
-! *--p = NUL;
-! if (p > newcmd && p[-1] == ')'
-! && (*cmd =='(' || cmd[1] == '('))
-! *--p = NUL;
-! }
- }
-
- /*
-***************
-*** 3970,3976 ****
- * inherit our handles which causes unpleasant dangling swap
- * files if we exit before the spawned process
- */
-! if (CreateProcess (NULL, // Executable name
- newcmd, // Command to execute
- NULL, // Process security attributes
- NULL, // Thread security attributes
---- 3985,3991 ----
- * inherit our handles which causes unpleasant dangling swap
- * files if we exit before the spawned process
- */
-! if (CreateProcess(NULL, // Executable name
- newcmd, // Command to execute
- NULL, // Process security attributes
- NULL, // Thread security attributes
-*** ../vim-7.3.444/src/version.c 2012-02-13 00:01:38.000000000 +0100
---- src/version.c 2012-02-19 18:01:46.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 445,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-80. At parties, you introduce your spouse as your "service provider."
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.446
-Fcc: 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.446 (after 7.3.445)
-Problem: Win32: External commands with special characters don't work.
-Solution: Add the 'shellxescape' option.
-Files: src/misc2.c, src/option.c, src/option.h, runtime/doc/options.txt
-
-
-*** ../vim-7.3.445/src/misc2.c 2012-02-19 18:19:24.000000000 +0100
---- src/misc2.c 2012-02-20 22:05:22.000000000 +0100
-***************
-*** 3225,3235 ****
- retval = mch_call_shell(cmd, opt);
- else
- {
-! ncmd = alloc((unsigned)(STRLEN(cmd) + STRLEN(p_sxq) * 2 + 1));
- if (ncmd != NULL)
- {
- STRCPY(ncmd, p_sxq);
-! STRCAT(ncmd, cmd);
- /* When 'shellxquote' is ( append ).
- * When 'shellxquote' is "( append )". */
- STRCAT(ncmd, STRCMP(p_sxq, "(") == 0 ? (char_u *)")"
---- 3225,3243 ----
- retval = mch_call_shell(cmd, opt);
- else
- {
-! char_u *ecmd = cmd;
-!
-! if (*p_sxe != NUL && STRCMP(p_sxq, "(") == 0)
-! {
-! ecmd = vim_strsave_escaped_ext(cmd, p_sxe, '^', FALSE);
-! if (ecmd == NULL)
-! ecmd = cmd;
-! }
-! ncmd = alloc((unsigned)(STRLEN(ecmd) + STRLEN(p_sxq) * 2 + 1));
- if (ncmd != NULL)
- {
- STRCPY(ncmd, p_sxq);
-! STRCAT(ncmd, ecmd);
- /* When 'shellxquote' is ( append ).
- * When 'shellxquote' is "( append )". */
- STRCAT(ncmd, STRCMP(p_sxq, "(") == 0 ? (char_u *)")"
-***************
-*** 3240,3245 ****
---- 3248,3255 ----
- }
- else
- retval = -1;
-+ if (ecmd != cmd)
-+ vim_free(ecmd);
- }
- #ifdef FEAT_GUI
- --hold_gui_events;
-*** ../vim-7.3.445/src/option.c 2012-02-19 18:19:24.000000000 +0100
---- src/option.c 2012-02-20 22:01:07.000000000 +0100
-***************
-*** 2273,2278 ****
---- 2273,2287 ----
- (char_u *)"",
- #endif
- (char_u *)0L} SCRIPTID_INIT},
-+ {"shellxescape", "sxe", P_STRING|P_VI_DEF|P_SECURE,
-+ (char_u *)&p_sxe, PV_NONE,
-+ {
-+ #if defined(MSDOS) || defined(WIN16) || defined(WIN3264)
-+ (char_u *)"\"&|<>()@^",
-+ #else
-+ (char_u *)"",
-+ #endif
-+ (char_u *)0L} SCRIPTID_INIT},
- {"shiftround", "sr", P_BOOL|P_VI_DEF|P_VIM,
- (char_u *)&p_sr, PV_NONE,
- {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
-*** ../vim-7.3.445/src/option.h 2011-10-20 21:09:25.000000000 +0200
---- src/option.h 2012-02-20 21:45:31.000000000 +0100
-***************
-*** 712,717 ****
---- 712,718 ----
- #endif
- EXTERN char_u *p_shq; /* 'shellquote' */
- EXTERN char_u *p_sxq; /* 'shellxquote' */
-+ EXTERN char_u *p_sxe; /* 'shellxescape' */
- EXTERN char_u *p_srr; /* 'shellredir' */
- #ifdef AMIGA
- EXTERN long p_st; /* 'shelltype' */
-*** ../vim-7.3.445/runtime/doc/options.txt 2012-02-12 23:23:25.000000000 +0100
---- runtime/doc/options.txt 2012-02-20 22:09:19.000000000 +0100
-***************
-*** 6023,6030 ****
-
- *'shellxquote'* *'sxq'*
- 'shellxquote' 'sxq' string (default: "";
-! for Win32, when 'shell' is cmd.exe or
-! contains "sh" somewhere: "\""
- for Unix, when using system(): "\"")
- global
- {not in Vi}
---- 6042,6050 ----
-
- *'shellxquote'* *'sxq'*
- 'shellxquote' 'sxq' string (default: "";
-! for Win32, when 'shell' is cmd.exe: "("
-! for Win32, when 'shell' contains "sh"
-! somewhere: "\""
- for Unix, when using system(): "\"")
- global
- {not in Vi}
-***************
-*** 6032,6037 ****
---- 6052,6060 ----
- the "!" and ":!" commands. Includes the redirection. See
- 'shellquote' to exclude the redirection. It's probably not useful
- to set both options.
-+ When the value is '(' then ')' is appended. When the value is '"('
-+ then ')"' is appended.
-+ When the value is '(' then also see 'shellxescape'.
- This is an empty string by default on most systems, but is known to be
- useful for on Win32 version, either for cmd.exe which automatically
- strips off the first and last quote on a command, or 3rd-party shells
-***************
-*** 6041,6046 ****
---- 6064,6079 ----
- This option cannot be set from a |modeline| or in the |sandbox|, for
- security reasons.
-
-+ *'shellxescape'* *'sxe'*
-+ 'shellxescape' 'sxe' string (default: "";
-+ for MS-DOS and MS-Windows: "\"&|<>()@^")
-+ global
-+ {not in Vi}
-+ When 'shellxquote' is set to "(" then the characters listed in this
-+ option will be escaped with a '^' character. This makes it possible
-+ to execute most external commands with cmd.exe.
-+
-+
- *'shiftround'* *'sr'* *'noshiftround'* *'nosr'*
- 'shiftround' 'sr' boolean (default off)
- global
-*** ../vim-7.3.445/src/version.c 2012-02-19 18:19:24.000000000 +0100
---- src/version.c 2012-02-20 22:12:32.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 446,
- /**/
-
---
-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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.447
-Fcc: 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.447 (after 7.3.446)
-Problem: Win32: External commands with "start" do not work.
-Solution: Unescape part of the command. (Yasuhiro Matsumoto)
-Files: src/os_win32.c
-
-
-*** ../vim-7.3.446/src/os_win32.c 2012-02-19 18:19:24.000000000 +0100
---- src/os_win32.c 2012-02-21 20:56:51.000000000 +0100
-***************
-*** 259,264 ****
---- 259,287 ----
- }
-
- /*
-+ * Unescape characters in "p" that appear in "escaped".
-+ */
-+ static void
-+ unescape_shellxquote(char_u *p, char_u *escaped)
-+ {
-+ int l = STRLEN(p);
-+ int n;
-+
-+ while (*p != NUL)
-+ {
-+ if (*p == '^' && vim_strchr(escaped, p[1]) != NULL)
-+ mch_memmove(p, p + 1, l--);
-+ #ifdef FEAT_MBYTE
-+ n = (*mb_ptr2len)(p);
-+ #else
-+ n = 1;
-+ #endif
-+ p += n;
-+ l -= n;
-+ }
-+ }
-+
-+ /*
- * Load library "name".
- */
- HINSTANCE
-***************
-*** 3559,3564 ****
---- 3582,3588 ----
- garray_T ga;
- int delay = 1;
- DWORD buffer_off = 0; /* valid bytes in buffer[] */
-+ char *p = NULL;
-
- SECURITY_ATTRIBUTES saAttr;
-
-***************
-*** 3599,3607 ****
- if (options & SHELL_READ)
- ga_init2(&ga, 1, BUFLEN);
-
- /* Now, run the command */
- CreateProcess(NULL, /* Executable name */
-! cmd, /* Command to execute */
- NULL, /* Process security attributes */
- NULL, /* Thread security attributes */
-
---- 3623,3640 ----
- if (options & SHELL_READ)
- ga_init2(&ga, 1, BUFLEN);
-
-+ if (cmd != NULL)
-+ {
-+ p = (char *)vim_strsave((char_u *)cmd);
-+ if (p != NULL)
-+ unescape_shellxquote((char_u *)p, p_sxe);
-+ else
-+ p = cmd;
-+ }
-+
- /* Now, run the command */
- CreateProcess(NULL, /* Executable name */
-! p, /* Command to execute */
- NULL, /* Process security attributes */
- NULL, /* Thread security attributes */
-
-***************
-*** 3616,3621 ****
---- 3649,3656 ----
- &si, /* Startup information */
- &pi); /* Process information */
-
-+ if (p != cmd)
-+ vim_free(p);
-
- /* Close our unused side of the pipes */
- CloseHandle(g_hChildStd_IN_Rd);
-***************
-*** 3898,4018 ****
- else
- {
- /* we use "command" or "cmd" to start the shell; slow but easy */
-! char_u *newcmd;
-! long_u cmdlen = (
-! #ifdef FEAT_GUI_W32
-! (allowPiping && !p_stmp ? 0 : STRLEN(vimrun_path)) +
-! #endif
-! STRLEN(p_sh) + STRLEN(p_shcf) + STRLEN(cmd) + 10);
-!
-! newcmd = lalloc(cmdlen, TRUE);
-! if (newcmd != NULL)
-! {
-! char_u *cmdbase = cmd;
-!
-! /* Skip a leading ", ( and "(. */
-! if (*cmdbase == '"' )
-! ++cmdbase;
-! if (*cmdbase == '(')
-! ++cmdbase;
-! if ((STRNICMP(cmdbase, "start", 5) == 0) && vim_iswhite(cmdbase[5]))
-! {
-! STARTUPINFO si;
-! PROCESS_INFORMATION pi;
-! DWORD flags = CREATE_NEW_CONSOLE;
-!
-! si.cb = sizeof(si);
-! si.lpReserved = NULL;
-! si.lpDesktop = NULL;
-! si.lpTitle = NULL;
-! si.dwFlags = 0;
-! si.cbReserved2 = 0;
-! si.lpReserved2 = NULL;
-!
-! cmdbase = skipwhite(cmdbase + 5);
-! if ((STRNICMP(cmdbase, "/min", 4) == 0)
-! && vim_iswhite(cmdbase[4]))
-! {
-! cmdbase = skipwhite(cmdbase + 4);
-! si.dwFlags = STARTF_USESHOWWINDOW;
-! si.wShowWindow = SW_SHOWMINNOACTIVE;
-! }
-! else if ((STRNICMP(cmdbase, "/b", 2) == 0)
-! && vim_iswhite(cmdbase[2]))
-! {
-! cmdbase = skipwhite(cmdbase + 2);
-! flags = CREATE_NO_WINDOW;
-! si.dwFlags = STARTF_USESTDHANDLES;
-! si.hStdInput = CreateFile("\\\\.\\NUL", // File name
-! GENERIC_READ, // Access flags
-! 0, // Share flags
-! NULL, // Security att.
-! OPEN_EXISTING, // Open flags
-! FILE_ATTRIBUTE_NORMAL, // File att.
-! NULL); // Temp file
-! si.hStdOutput = si.hStdInput;
-! si.hStdError = si.hStdInput;
-! }
-
-! /* When the command is in double quotes, but 'shellxquote' is
-! * empty, keep the double quotes around the command.
-! * Otherwise remove the double quotes, they aren't needed
-! * here, because we don't use a shell to run the command. */
-! if (cmdbase > cmd)
-! {
-! if (STRNCMP(cmd, p_sxq, cmd - cmdbase) != 0)
-! {
-! STRCPY(newcmd, cmd);
-! }
-! else
-! {
-! char_u *p;
-
-! STRCPY(newcmd, cmdbase);
-! /* Remove a trailing ", ) and )" if they have a match
-! * at the start of the command. */
-! p = newcmd + STRLEN(newcmd);
-! if (p > newcmd && p[-1] == '"' && *cmd == '"')
-! *--p = NUL;
-! if (p > newcmd && p[-1] == ')'
-! && (*cmd =='(' || cmd[1] == '('))
-! *--p = NUL;
-! }
-! }
-
-! /*
-! * Now, start the command as a process, so that it doesn't
-! * inherit our handles which causes unpleasant dangling swap
-! * files if we exit before the spawned process
-! */
-! if (CreateProcess(NULL, // Executable name
-! newcmd, // Command to execute
-! NULL, // Process security attributes
-! NULL, // Thread security attributes
-! FALSE, // Inherit handles
-! flags, // Creation flags
-! NULL, // Environment
-! NULL, // Current directory
-! &si, // Startup information
-! &pi)) // Process information
-! x = 0;
-! else
-! {
-! x = -1;
- #ifdef FEAT_GUI_W32
-! EMSG(_("E371: Command not found"));
- #endif
-- }
-- if (si.hStdInput != NULL)
-- {
-- /* Close the handle to \\.\NUL */
-- CloseHandle(si.hStdInput);
-- }
-- /* Close the handles to the subprocess, so that it goes away */
-- CloseHandle(pi.hThread);
-- CloseHandle(pi.hProcess);
- }
-! else
- {
- #if defined(FEAT_GUI_W32)
- if (need_vimrun_warning)
---- 3933,4048 ----
- else
- {
- /* we use "command" or "cmd" to start the shell; slow but easy */
-! char_u *cmdbase = cmd;
-
-! /* Skip a leading ", ( and "(. */
-! if (*cmdbase == '"' )
-! ++cmdbase;
-! if (*cmdbase == '(')
-! ++cmdbase;
-!
-! if ((STRNICMP(cmdbase, "start", 5) == 0) && vim_iswhite(cmdbase[5]))
-! {
-! STARTUPINFO si;
-! PROCESS_INFORMATION pi;
-! DWORD flags = CREATE_NEW_CONSOLE;
-! char_u *p;
-!
-! si.cb = sizeof(si);
-! si.lpReserved = NULL;
-! si.lpDesktop = NULL;
-! si.lpTitle = NULL;
-! si.dwFlags = 0;
-! si.cbReserved2 = 0;
-! si.lpReserved2 = NULL;
-!
-! cmdbase = skipwhite(cmdbase + 5);
-! if ((STRNICMP(cmdbase, "/min", 4) == 0)
-! && vim_iswhite(cmdbase[4]))
-! {
-! cmdbase = skipwhite(cmdbase + 4);
-! si.dwFlags = STARTF_USESHOWWINDOW;
-! si.wShowWindow = SW_SHOWMINNOACTIVE;
-! }
-! else if ((STRNICMP(cmdbase, "/b", 2) == 0)
-! && vim_iswhite(cmdbase[2]))
-! {
-! cmdbase = skipwhite(cmdbase + 2);
-! flags = CREATE_NO_WINDOW;
-! si.dwFlags = STARTF_USESTDHANDLES;
-! si.hStdInput = CreateFile("\\\\.\\NUL", // File name
-! GENERIC_READ, // Access flags
-! 0, // Share flags
-! NULL, // Security att.
-! OPEN_EXISTING, // Open flags
-! FILE_ATTRIBUTE_NORMAL, // File att.
-! NULL); // Temp file
-! si.hStdOutput = si.hStdInput;
-! si.hStdError = si.hStdInput;
-! }
-!
-! /* Remove a trailing ", ) and )" if they have a match
-! * at the start of the command. */
-! if (cmdbase > cmd)
-! {
-! p = cmdbase + STRLEN(cmdbase);
-! if (p > cmdbase && p[-1] == '"' && *cmd == '"')
-! *--p = NUL;
-! if (p > cmdbase && p[-1] == ')'
-! && (*cmd =='(' || cmd[1] == '('))
-! *--p = NUL;
-! }
-
-! /*
-! * Unescape characters in shellxescape. This is workaround for
-! * /b option. Only redirect character should be unescaped.
-! */
-! unescape_shellxquote(cmdbase,
-! (flags & CREATE_NEW_CONSOLE) ? p_sxe : "<>");
-
-! /*
-! * Now, start the command as a process, so that it doesn't
-! * inherit our handles which causes unpleasant dangling swap
-! * files if we exit before the spawned process
-! */
-! if (CreateProcess(NULL, // Executable name
-! cmdbase, // Command to execute
-! NULL, // Process security attributes
-! NULL, // Thread security attributes
-! FALSE, // Inherit handles
-! flags, // Creation flags
-! NULL, // Environment
-! NULL, // Current directory
-! &si, // Startup information
-! &pi)) // Process information
-! x = 0;
-! else
-! {
-! x = -1;
- #ifdef FEAT_GUI_W32
-! EMSG(_("E371: Command not found"));
- #endif
- }
-! if (si.hStdInput != NULL)
-! {
-! /* Close the handle to \\.\NUL */
-! CloseHandle(si.hStdInput);
-! }
-! /* Close the handles to the subprocess, so that it goes away */
-! CloseHandle(pi.hThread);
-! CloseHandle(pi.hProcess);
-! }
-! else
-! {
-! char_u *newcmd;
-! long_u cmdlen = (
-! #ifdef FEAT_GUI_W32
-! (allowPiping && !p_stmp ? 0 : STRLEN(vimrun_path)) +
-! #endif
-! STRLEN(p_sh) + STRLEN(p_shcf) + STRLEN(cmd) + 10);
-!
-! newcmd = lalloc(cmdlen, TRUE);
-! if (newcmd != NULL)
- {
- #if defined(FEAT_GUI_W32)
- if (need_vimrun_warning)
-***************
-*** 4038,4045 ****
- vim_snprintf((char *)newcmd, cmdlen, "%s %s %s",
- p_sh, p_shcf, cmd);
- x = mch_system((char *)newcmd, options);
- }
-- vim_free(newcmd);
- }
- }
-
---- 4068,4075 ----
- vim_snprintf((char *)newcmd, cmdlen, "%s %s %s",
- p_sh, p_shcf, cmd);
- x = mch_system((char *)newcmd, options);
-+ vim_free(newcmd);
- }
- }
- }
-
-*** ../vim-7.3.446/src/version.c 2012-02-20 22:18:23.000000000 +0100
---- src/version.c 2012-02-21 21:20:05.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 447,
- /**/
-
---
-From "know your smileys":
- :----} You lie like Pinocchio
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.448
-Fcc: 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.448 (after 7.3.447)
-Problem: Win32: Still a problem with "!start /b".
-Solution: Escape only '|'. (Yasuhiro Matsumoto)
-Files: src/os_win32.c
-
-
-*** ../vim-7.3.447/src/os_win32.c 2012-02-21 21:22:40.000000000 +0100
---- src/os_win32.c 2012-02-22 13:06:55.000000000 +0100
-***************
-*** 3933,3939 ****
- else
- {
- /* we use "command" or "cmd" to start the shell; slow but easy */
-! char_u *cmdbase = cmd;
-
- /* Skip a leading ", ( and "(. */
- if (*cmdbase == '"' )
---- 3933,3941 ----
- else
- {
- /* we use "command" or "cmd" to start the shell; slow but easy */
-! char_u *newcmd = NULL;
-! char_u *cmdbase = cmd;
-! long_u cmdlen;
-
- /* Skip a leading ", ( and "(. */
- if (*cmdbase == '"' )
-***************
-*** 3971,3982 ****
- flags = CREATE_NO_WINDOW;
- si.dwFlags = STARTF_USESTDHANDLES;
- si.hStdInput = CreateFile("\\\\.\\NUL", // File name
-! GENERIC_READ, // Access flags
- 0, // Share flags
-! NULL, // Security att.
-! OPEN_EXISTING, // Open flags
-! FILE_ATTRIBUTE_NORMAL, // File att.
-! NULL); // Temp file
- si.hStdOutput = si.hStdInput;
- si.hStdError = si.hStdInput;
- }
---- 3973,3984 ----
- flags = CREATE_NO_WINDOW;
- si.dwFlags = STARTF_USESTDHANDLES;
- si.hStdInput = CreateFile("\\\\.\\NUL", // File name
-! GENERIC_READ, // Access flags
- 0, // Share flags
-! NULL, // Security att.
-! OPEN_EXISTING, // Open flags
-! FILE_ATTRIBUTE_NORMAL, // File att.
-! NULL); // Temp file
- si.hStdOutput = si.hStdInput;
- si.hStdError = si.hStdInput;
- }
-***************
-*** 3993,4004 ****
- *--p = NUL;
- }
-
- /*
-! * Unescape characters in shellxescape. This is workaround for
-! * /b option. Only redirect character should be unescaped.
- */
-! unescape_shellxquote(cmdbase,
-! (flags & CREATE_NEW_CONSOLE) ? p_sxe : "<>");
-
- /*
- * Now, start the command as a process, so that it doesn't
---- 3995,4030 ----
- *--p = NUL;
- }
-
-+ newcmd = cmdbase;
-+ unescape_shellxquote(cmdbase, p_sxe);
-+
- /*
-! * If creating new console, arguments are passed to the
-! * 'cmd.exe' as-is. If it's not, arguments are not treated
-! * correctly for current 'cmd.exe'. So unescape characters in
-! * shellxescape except '|' for avoiding to be treated as
-! * argument to them. Pass the arguments to sub-shell.
- */
-! if (flags != CREATE_NEW_CONSOLE)
-! {
-! char_u *subcmd;
-! char_u *cmd_shell = default_shell();
-!
-! subcmd = vim_strsave_escaped_ext(cmdbase, "|", '^', FALSE);
-! if (subcmd != NULL)
-! {
-! /* make "cmd.exe /c arguments" */
-! cmdlen = STRLEN(cmd_shell) + STRLEN(subcmd) + 5;
-! vim_free(subcmd);
-!
-! newcmd = lalloc(cmdlen, TRUE);
-! if (newcmd != NULL)
-! vim_snprintf((char *)newcmd, cmdlen, "%s /c %s",
-! default_shell, subcmd);
-! else
-! newcmd = cmdbase;
-! }
-! }
-
- /*
- * Now, start the command as a process, so that it doesn't
-***************
-*** 4006,4012 ****
- * files if we exit before the spawned process
- */
- if (CreateProcess(NULL, // Executable name
-! cmdbase, // Command to execute
- NULL, // Process security attributes
- NULL, // Thread security attributes
- FALSE, // Inherit handles
---- 4032,4038 ----
- * files if we exit before the spawned process
- */
- if (CreateProcess(NULL, // Executable name
-! newcmd, // Command to execute
- NULL, // Process security attributes
- NULL, // Thread security attributes
- FALSE, // Inherit handles
-***************
-*** 4023,4028 ****
---- 4049,4058 ----
- EMSG(_("E371: Command not found"));
- #endif
- }
-+
-+ if (newcmd != cmdbase)
-+ vim_free(newcmd);
-+
- if (si.hStdInput != NULL)
- {
- /* Close the handle to \\.\NUL */
-***************
-*** 4034,4041 ****
- }
- else
- {
-! char_u *newcmd;
-! long_u cmdlen = (
- #ifdef FEAT_GUI_W32
- (allowPiping && !p_stmp ? 0 : STRLEN(vimrun_path)) +
- #endif
---- 4064,4070 ----
- }
- else
- {
-! cmdlen = (
- #ifdef FEAT_GUI_W32
- (allowPiping && !p_stmp ? 0 : STRLEN(vimrun_path)) +
- #endif
-*** ../vim-7.3.447/src/version.c 2012-02-21 21:22:40.000000000 +0100
---- src/version.c 2012-02-22 13:02:15.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 448,
- /**/
-
---
-From "know your smileys":
- ~#:-( I just washed my hair, and I can't do nuthin' with 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.449
-Fcc: 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.449
-Problem: Crash when a BufWinLeave autocommand closes the only other window.
- (Daniel Hunt)
-Solution: Abort closing a buffer when it becomes the only one.
-Files: src/buffer.c, src/proto/buffer.pro, src/ex_cmds.c, src/ex_getln.c,
- src/misc2.c, src/quickfix.c, src/window.c, src/proto/window.pro
-
-
-*** ../vim-7.3.448/src/buffer.c 2012-01-20 20:44:38.000000000 +0100
---- src/buffer.c 2012-02-22 14:50:42.000000000 +0100
-***************
-*** 64,69 ****
---- 64,72 ----
- static char *msg_loclist = N_("[Location List]");
- static char *msg_qflist = N_("[Quickfix List]");
- #endif
-+ #ifdef FEAT_AUTOCMD
-+ static char *e_auabort = N_("E855: Autocommands caused command to abort");
-+ #endif
-
- /*
- * Open current buffer, that is: open the memfile and read the file into
-***************
-*** 96,102 ****
- * There MUST be a memfile, otherwise we can't do anything
- * If we can't create one for the current buffer, take another buffer
- */
-! close_buffer(NULL, curbuf, 0);
- for (curbuf = firstbuf; curbuf != NULL; curbuf = curbuf->b_next)
- if (curbuf->b_ml.ml_mfp != NULL)
- break;
---- 99,105 ----
- * There MUST be a memfile, otherwise we can't do anything
- * If we can't create one for the current buffer, take another buffer
- */
-! close_buffer(NULL, curbuf, 0, FALSE);
- for (curbuf = firstbuf; curbuf != NULL; curbuf = curbuf->b_next)
- if (curbuf->b_ml.ml_mfp != NULL)
- break;
-***************
-*** 316,327 ****
- * get a new buffer very soon!
- *
- * The 'bufhidden' option can force freeing and deleting.
- */
- void
-! close_buffer(win, buf, action)
- win_T *win; /* if not NULL, set b_last_cursor */
- buf_T *buf;
- int action;
- {
- #ifdef FEAT_AUTOCMD
- int is_curbuf;
---- 319,335 ----
- * get a new buffer very soon!
- *
- * The 'bufhidden' option can force freeing and deleting.
-+ *
-+ * When "abort_if_last" is TRUE then do not close the buffer if autocommands
-+ * cause there to be only one window with this buffer. e.g. when ":quit" is
-+ * supposed to close the window but autocommands close all other windows.
- */
- void
-! close_buffer(win, buf, action, abort_if_last)
- win_T *win; /* if not NULL, set b_last_cursor */
- buf_T *buf;
- int action;
-+ int abort_if_last;
- {
- #ifdef FEAT_AUTOCMD
- int is_curbuf;
-***************
-*** 371,378 ****
- {
- apply_autocmds(EVENT_BUFWINLEAVE, buf->b_fname, buf->b_fname,
- FALSE, buf);
-! if (!buf_valid(buf)) /* autocommands may delete the buffer */
- return;
-
- /* When the buffer becomes hidden, but is not unloaded, trigger
- * BufHidden */
---- 379,390 ----
- {
- apply_autocmds(EVENT_BUFWINLEAVE, buf->b_fname, buf->b_fname,
- FALSE, buf);
-! /* Return if autocommands deleted the buffer or made it the only one. */
-! if (!buf_valid(buf) || (abort_if_last && one_window()))
-! {
-! EMSG(_(e_auabort));
- return;
-+ }
-
- /* When the buffer becomes hidden, but is not unloaded, trigger
- * BufHidden */
-***************
-*** 380,387 ****
- {
- apply_autocmds(EVENT_BUFHIDDEN, buf->b_fname, buf->b_fname,
- FALSE, buf);
-! if (!buf_valid(buf)) /* autocmds may delete the buffer */
- return;
- }
- # ifdef FEAT_EVAL
- if (aborting()) /* autocmds may abort script processing */
---- 392,404 ----
- {
- apply_autocmds(EVENT_BUFHIDDEN, buf->b_fname, buf->b_fname,
- FALSE, buf);
-! /* Return if autocommands deleted the buffer or made it the only
-! * one. */
-! if (!buf_valid(buf) || (abort_if_last && one_window()))
-! {
-! EMSG(_(e_auabort));
- return;
-+ }
- }
- # ifdef FEAT_EVAL
- if (aborting()) /* autocmds may abort script processing */
-***************
-*** 775,781 ****
- * open a new, empty buffer. */
- swap_exists_action = SEA_NONE; /* don't want it again */
- swap_exists_did_quit = TRUE;
-! close_buffer(curwin, curbuf, DOBUF_UNLOAD);
- if (!buf_valid(old_curbuf) || old_curbuf == curbuf)
- old_curbuf = buflist_new(NULL, NULL, 1L, BLN_CURBUF | BLN_LISTED);
- if (old_curbuf != NULL)
---- 792,798 ----
- * open a new, empty buffer. */
- swap_exists_action = SEA_NONE; /* don't want it again */
- swap_exists_did_quit = TRUE;
-! close_buffer(curwin, curbuf, DOBUF_UNLOAD, FALSE);
- if (!buf_valid(old_curbuf) || old_curbuf == curbuf)
- old_curbuf = buflist_new(NULL, NULL, 1L, BLN_CURBUF | BLN_LISTED);
- if (old_curbuf != NULL)
-***************
-*** 1122,1128 ****
- * if the buffer still exists.
- */
- if (buf != curbuf && buf_valid(buf) && buf->b_nwindows == 0)
-! close_buffer(NULL, buf, action);
- return retval;
- }
-
---- 1139,1145 ----
- * if the buffer still exists.
- */
- if (buf != curbuf && buf_valid(buf) && buf->b_nwindows == 0)
-! close_buffer(NULL, buf, action, FALSE);
- return retval;
- }
-
-***************
-*** 1146,1152 ****
- close_windows(buf, FALSE);
- #endif
- if (buf != curbuf && buf_valid(buf) && buf->b_nwindows <= 0)
-! close_buffer(NULL, buf, action);
- return OK;
- }
-
---- 1163,1169 ----
- close_windows(buf, FALSE);
- #endif
- if (buf != curbuf && buf_valid(buf) && buf->b_nwindows <= 0)
-! close_buffer(NULL, buf, action, FALSE);
- return OK;
- }
-
-***************
-*** 1378,1384 ****
- close_buffer(prevbuf == curwin->w_buffer ? curwin : NULL, prevbuf,
- unload ? action : (action == DOBUF_GOTO
- && !P_HID(prevbuf)
-! && !bufIsChanged(prevbuf)) ? DOBUF_UNLOAD : 0);
- }
- }
- #ifdef FEAT_AUTOCMD
---- 1395,1401 ----
- close_buffer(prevbuf == curwin->w_buffer ? curwin : NULL, prevbuf,
- unload ? action : (action == DOBUF_GOTO
- && !P_HID(prevbuf)
-! && !bufIsChanged(prevbuf)) ? DOBUF_UNLOAD : 0, FALSE);
- }
- }
- #ifdef FEAT_AUTOCMD
-***************
-*** 2708,2714 ****
- vim_free(ffname);
- return FAIL;
- }
-! close_buffer(NULL, obuf, DOBUF_WIPE); /* delete from the list */
- }
- sfname = vim_strsave(sfname);
- if (ffname == NULL || sfname == NULL)
---- 2725,2732 ----
- vim_free(ffname);
- return FAIL;
- }
-! /* delete from the list */
-! close_buffer(NULL, obuf, DOBUF_WIPE, FALSE);
- }
- sfname = vim_strsave(sfname);
- if (ffname == NULL || sfname == NULL)
-***************
-*** 5638,5644 ****
- if (!aucmd) /* Don't trigger BufDelete autocommands here. */
- block_autocmds();
- #endif
-! close_buffer(NULL, buf, DOBUF_WIPE);
- #ifdef FEAT_AUTOCMD
- if (!aucmd)
- unblock_autocmds();
---- 5656,5662 ----
- if (!aucmd) /* Don't trigger BufDelete autocommands here. */
- block_autocmds();
- #endif
-! close_buffer(NULL, buf, DOBUF_WIPE, FALSE);
- #ifdef FEAT_AUTOCMD
- if (!aucmd)
- unblock_autocmds();
-*** ../vim-7.3.448/src/proto/buffer.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/buffer.pro 2012-02-22 14:04:26.000000000 +0100
-***************
-*** 1,7 ****
- /* buffer.c */
- int open_buffer __ARGS((int read_stdin, exarg_T *eap, int flags));
- int buf_valid __ARGS((buf_T *buf));
-! void close_buffer __ARGS((win_T *win, buf_T *buf, int action));
- void buf_clear_file __ARGS((buf_T *buf));
- void buf_freeall __ARGS((buf_T *buf, int flags));
- void goto_buffer __ARGS((exarg_T *eap, int start, int dir, int count));
---- 1,7 ----
- /* buffer.c */
- int open_buffer __ARGS((int read_stdin, exarg_T *eap, int flags));
- int buf_valid __ARGS((buf_T *buf));
-! void close_buffer __ARGS((win_T *win, buf_T *buf, int action, int abort_if_last));
- void buf_clear_file __ARGS((buf_T *buf));
- void buf_freeall __ARGS((buf_T *buf, int flags));
- void goto_buffer __ARGS((exarg_T *eap, int start, int dir, int count));
-*** ../vim-7.3.448/src/ex_cmds.c 2011-12-30 15:01:55.000000000 +0100
---- src/ex_cmds.c 2012-02-22 14:00:32.000000000 +0100
-***************
-*** 3387,3393 ****
- /* close the link to the current buffer */
- u_sync(FALSE);
- close_buffer(oldwin, curbuf,
-! (flags & ECMD_HIDE) ? 0 : DOBUF_UNLOAD);
-
- #ifdef FEAT_AUTOCMD
- /* Autocommands may open a new window and leave oldwin open
---- 3387,3393 ----
- /* close the link to the current buffer */
- u_sync(FALSE);
- close_buffer(oldwin, curbuf,
-! (flags & ECMD_HIDE) ? 0 : DOBUF_UNLOAD, FALSE);
-
- #ifdef FEAT_AUTOCMD
- /* Autocommands may open a new window and leave oldwin open
-*** ../vim-7.3.448/src/ex_getln.c 2012-02-04 22:44:27.000000000 +0100
---- src/ex_getln.c 2012-02-22 14:01:56.000000000 +0100
-***************
-*** 6443,6449 ****
- /* win_close() may have already wiped the buffer when 'bh' is
- * set to 'wipe' */
- if (buf_valid(bp))
-! close_buffer(NULL, bp, DOBUF_WIPE);
-
- /* Restore window sizes. */
- win_size_restore(&winsizes);
---- 6443,6449 ----
- /* win_close() may have already wiped the buffer when 'bh' is
- * set to 'wipe' */
- if (buf_valid(bp))
-! close_buffer(NULL, bp, DOBUF_WIPE, FALSE);
-
- /* Restore window sizes. */
- win_size_restore(&winsizes);
-*** ../vim-7.3.448/src/misc2.c 2012-02-20 22:18:22.000000000 +0100
---- src/misc2.c 2012-02-22 14:02:12.000000000 +0100
-***************
-*** 1173,1179 ****
- for (buf = firstbuf; buf != NULL; )
- {
- nextbuf = buf->b_next;
-! close_buffer(NULL, buf, DOBUF_WIPE);
- if (buf_valid(buf))
- buf = nextbuf; /* didn't work, try next one */
- else
---- 1173,1179 ----
- for (buf = firstbuf; buf != NULL; )
- {
- nextbuf = buf->b_next;
-! close_buffer(NULL, buf, DOBUF_WIPE, FALSE);
- if (buf_valid(buf))
- buf = nextbuf; /* didn't work, try next one */
- else
-*** ../vim-7.3.448/src/quickfix.c 2012-01-20 13:39:03.000000000 +0100
---- src/quickfix.c 2012-02-22 14:02:20.000000000 +0100
-***************
-*** 3565,3571 ****
- buf_T *buf;
- {
- if (curbuf != buf) /* safety check */
-! close_buffer(NULL, buf, DOBUF_UNLOAD);
- }
-
- #if defined(FEAT_EVAL) || defined(PROTO)
---- 3565,3571 ----
- buf_T *buf;
- {
- if (curbuf != buf) /* safety check */
-! close_buffer(NULL, buf, DOBUF_UNLOAD, FALSE);
- }
-
- #if defined(FEAT_EVAL) || defined(PROTO)
-*** ../vim-7.3.448/src/window.c 2012-01-10 22:26:12.000000000 +0100
---- src/window.c 2012-02-22 14:08:13.000000000 +0100
-***************
-*** 23,29 ****
- static void win_totop __ARGS((int size, int flags));
- static void win_equal_rec __ARGS((win_T *next_curwin, int current, frame_T *topfr, int dir, int col, int row, int width, int height));
- static int last_window __ARGS((void));
-- static int one_window __ARGS((void));
- static win_T *win_free_mem __ARGS((win_T *win, int *dirp, tabpage_T *tp));
- static frame_T *win_altframe __ARGS((win_T *win, tabpage_T *tp));
- static tabpage_T *alt_tabpage __ARGS((void));
---- 23,28 ----
-***************
-*** 2083,2089 ****
- * Return TRUE if there is only one window other than "aucmd_win" in the
- * current tab page.
- */
-! static int
- one_window()
- {
- #ifdef FEAT_AUTOCMD
---- 2082,2088 ----
- * Return TRUE if there is only one window other than "aucmd_win" in the
- * current tab page.
- */
-! int
- one_window()
- {
- #ifdef FEAT_AUTOCMD
-***************
-*** 2109,2115 ****
- * Close window "win". Only works for the current tab page.
- * If "free_buf" is TRUE related buffer may be unloaded.
- *
-! * called by :quit, :close, :xit, :wq and findtag()
- */
- void
- win_close(win, free_buf)
---- 2108,2114 ----
- * Close window "win". Only works for the current tab page.
- * If "free_buf" is TRUE related buffer may be unloaded.
- *
-! * Called by :quit, :close, :xit, :wq and findtag().
- */
- void
- win_close(win, free_buf)
-***************
-*** 2222,2228 ****
- * Close the link to the buffer.
- */
- if (win->w_buffer != NULL)
-! close_buffer(win, win->w_buffer, free_buf ? DOBUF_UNLOAD : 0);
-
- /* Autocommands may have closed the window already, or closed the only
- * other window or moved to another tab page. */
---- 2221,2227 ----
- * Close the link to the buffer.
- */
- if (win->w_buffer != NULL)
-! close_buffer(win, win->w_buffer, free_buf ? DOBUF_UNLOAD : 0, TRUE);
-
- /* Autocommands may have closed the window already, or closed the only
- * other window or moved to another tab page. */
-***************
-*** 2328,2334 ****
- int free_tp = FALSE;
-
- /* Close the link to the buffer. */
-! close_buffer(win, win->w_buffer, free_buf ? DOBUF_UNLOAD : 0);
-
- /* Careful: Autocommands may have closed the tab page or made it the
- * current tab page. */
---- 2327,2333 ----
- int free_tp = FALSE;
-
- /* Close the link to the buffer. */
-! close_buffer(win, win->w_buffer, free_buf ? DOBUF_UNLOAD : 0, FALSE);
-
- /* Careful: Autocommands may have closed the tab page or made it the
- * current tab page. */
-*** ../vim-7.3.448/src/proto/window.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/window.pro 2012-02-22 14:08:28.000000000 +0100
-***************
-*** 1,13 ****
- /* window.c */
- void do_window __ARGS((int nchar, long Prenum, int xchar));
- int win_split __ARGS((int size, int flags));
-! int win_split_ins __ARGS((int size, int flags, win_T *newwin, int dir));
- int win_valid __ARGS((win_T *win));
- int win_count __ARGS((void));
- int make_windows __ARGS((int count, int vertical));
- void win_move_after __ARGS((win_T *win1, win_T *win2));
- void win_equal __ARGS((win_T *next_curwin, int current, int dir));
- void close_windows __ARGS((buf_T *buf, int keep_curwin));
- void win_close __ARGS((win_T *win, int free_buf));
- void win_close_othertab __ARGS((win_T *win, int free_buf, tabpage_T *tp));
- void win_free_all __ARGS((void));
---- 1,14 ----
- /* window.c */
- void do_window __ARGS((int nchar, long Prenum, int xchar));
- int win_split __ARGS((int size, int flags));
-! int win_split_ins __ARGS((int size, int flags, win_T *new_wp, int dir));
- int win_valid __ARGS((win_T *win));
- int win_count __ARGS((void));
- int make_windows __ARGS((int count, int vertical));
- void win_move_after __ARGS((win_T *win1, win_T *win2));
- void win_equal __ARGS((win_T *next_curwin, int current, int dir));
- void close_windows __ARGS((buf_T *buf, int keep_curwin));
-+ int one_window __ARGS((void));
- void win_close __ARGS((win_T *win, int free_buf));
- void win_close_othertab __ARGS((win_T *win, int free_buf, tabpage_T *tp));
- void win_free_all __ARGS((void));
-*** ../vim-7.3.448/src/version.c 2012-02-22 13:07:02.000000000 +0100
---- src/version.c 2012-02-22 14:55:21.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 449,
- /**/
-
---
-From "know your smileys":
- :-)-O Smiling doctor with stethoscope
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.450
-Fcc: 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.450 (after 7.3.448)
-Problem: Win32: Still a problem with "!start /b".
-Solution: Fix pointer use. (Yasuhiro Matsumoto)
-Files: src/os_win32.c
-
-
-*** ../vim-7.3.449/src/os_win32.c 2012-02-22 13:07:02.000000000 +0100
---- src/os_win32.c 2012-02-22 15:29:56.000000000 +0100
-***************
-*** 4008,4028 ****
- if (flags != CREATE_NEW_CONSOLE)
- {
- char_u *subcmd;
-! char_u *cmd_shell = default_shell();
-
- subcmd = vim_strsave_escaped_ext(cmdbase, "|", '^', FALSE);
- if (subcmd != NULL)
- {
- /* make "cmd.exe /c arguments" */
- cmdlen = STRLEN(cmd_shell) + STRLEN(subcmd) + 5;
-- vim_free(subcmd);
--
- newcmd = lalloc(cmdlen, TRUE);
- if (newcmd != NULL)
- vim_snprintf((char *)newcmd, cmdlen, "%s /c %s",
-! default_shell, subcmd);
- else
- newcmd = cmdbase;
- }
- }
-
---- 4008,4030 ----
- if (flags != CREATE_NEW_CONSOLE)
- {
- char_u *subcmd;
-! char_u *cmd_shell = mch_getenv("COMSPEC");
-!
-! if (cmd_shell == NULL || *cmd_shell == NUL)
-! cmd_shell = default_shell();
-
- subcmd = vim_strsave_escaped_ext(cmdbase, "|", '^', FALSE);
- if (subcmd != NULL)
- {
- /* make "cmd.exe /c arguments" */
- cmdlen = STRLEN(cmd_shell) + STRLEN(subcmd) + 5;
- newcmd = lalloc(cmdlen, TRUE);
- if (newcmd != NULL)
- vim_snprintf((char *)newcmd, cmdlen, "%s /c %s",
-! cmd_shell, subcmd);
- else
- newcmd = cmdbase;
-+ vim_free(subcmd);
- }
- }
-
-*** ../vim-7.3.449/src/version.c 2012-02-22 14:58:24.000000000 +0100
---- src/version.c 2012-02-22 15:33:53.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 450,
- /**/
-
---
-You are only young once, but you can stay immature indefinitely.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.451
-Fcc: 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.451
-Problem: Tcl doesn't work on 64 bit MS-Windows.
-Solution: Make it work. (Dave Bodenstab)
-Files: src/Make_mvc.mak, src/if_tcl.c
-
-
-*** ../vim-7.3.450/src/Make_mvc.mak 2012-02-12 01:55:50.000000000 +0100
---- src/Make_mvc.mak 2012-02-22 15:43:01.000000000 +0100
-***************
-*** 616,622 ****
- -DDYNAMIC_TCL_VER=\"$(TCL_VER_LONG)\"
- TCL_OBJ = $(OUTDIR)\if_tcl.obj
- TCL_INC = /I "$(TCL)\Include" /I "$(TCL)"
-! TCL_LIB = $(TCL)\lib\tclstub$(TCL_VER).lib
- !else
- CFLAGS = $(CFLAGS) -DFEAT_TCL
- TCL_OBJ = $(OUTDIR)\if_tcl.obj
---- 616,622 ----
- -DDYNAMIC_TCL_VER=\"$(TCL_VER_LONG)\"
- TCL_OBJ = $(OUTDIR)\if_tcl.obj
- TCL_INC = /I "$(TCL)\Include" /I "$(TCL)"
-! TCL_LIB = "$(TCL)\lib\tclstub$(TCL_VER).lib"
- !else
- CFLAGS = $(CFLAGS) -DFEAT_TCL
- TCL_OBJ = $(OUTDIR)\if_tcl.obj
-*** ../vim-7.3.450/src/if_tcl.c 2011-07-27 14:15:41.000000000 +0200
---- src/if_tcl.c 2012-02-22 15:47:00.000000000 +0100
-***************
-*** 79,90 ****
- typedef struct
- {
- Tcl_Interp *interp;
- int range_start, range_end;
- int lbase;
- char *curbuf, *curwin;
- } tcl_info;
-
-! static tcl_info tclinfo = { NULL, 0, 0, 0, NULL, NULL };
-
- #define VAR_RANGE1 "::vim::range(start)"
- #define VAR_RANGE2 "::vim::range(begin)"
---- 79,91 ----
- typedef struct
- {
- Tcl_Interp *interp;
-+ int exitvalue;
- int range_start, range_end;
- int lbase;
- char *curbuf, *curwin;
- } tcl_info;
-
-! static tcl_info tclinfo = { NULL, 0, 0, 0, 0, NULL, NULL };
-
- #define VAR_RANGE1 "::vim::range(start)"
- #define VAR_RANGE2 "::vim::range(begin)"
-***************
-*** 279,294 ****
- ****************************************************************************/
-
- /*
-! * Replace standard "exit" and "catch" commands.
- *
-! * This is a design flaw in Tcl - the standard "exit" command just calls
-! * exit() and kills the application. It should return TCL_EXIT to the
-! * app, which then decides if it wants to terminate or not. In our case,
-! * we just delete the Tcl interpreter (and create a new one with the next
-! * :tcl command).
- */
-- #define TCL_EXIT 5
--
- static int
- exitcmd(dummy, interp, objc, objv)
- ClientData dummy UNUSED;
---- 280,298 ----
- ****************************************************************************/
-
- /*
-! * Replace standard "exit" command.
- *
-! * Delete the Tcl interpreter; a new one will be created with the next
-! * :tcl command). The exit code is saved (and retrieved in tclexit()).
-! * Since Tcl's exit is never expected to return and this replacement
-! * does, then (except for a trivial case) additional Tcl commands will
-! * be run. Since the interpreter is now marked as deleted, an error
-! * will be returned -- typically "attempt to call eval in deleted
-! * interpreter". Hopefully, at this point, checks for TCL_ERROR take
-! * place and control percolates back up to Vim -- but with this new error
-! * string in the interpreter's result value. Therefore it would be
-! * useless for this routine to return the exit code via Tcl_SetResult().
- */
- static int
- exitcmd(dummy, interp, objc, objv)
- ClientData dummy UNUSED;
-***************
-*** 305,351 ****
- break;
- /* FALLTHROUGH */
- case 1:
-! Tcl_SetObjResult(interp, Tcl_NewIntObj(value));
-! return TCL_EXIT;
-! default:
-! Tcl_WrongNumArgs(interp, 1, objv, "?returnCode?");
-! }
-! return TCL_ERROR;
-! }
-
-! static int
-! catchcmd(dummy, interp, objc, objv)
-! ClientData dummy UNUSED;
-! Tcl_Interp *interp;
-! int objc;
-! Tcl_Obj *CONST objv[];
-! {
-! char *varname = NULL;
-! int result;
-!
-! switch (objc)
-! {
-! case 3:
-! varname = Tcl_GetStringFromObj(objv[2], NULL);
-! /* fallthrough */
-! case 2:
-! Tcl_ResetResult(interp);
-! Tcl_AllowExceptions(interp);
-! result = Tcl_EvalObj(interp, objv[1]);
-! if (result == TCL_EXIT)
-! return result;
-! if (varname)
-! {
-! if (Tcl_SetVar(interp, varname, Tcl_GetStringResult(interp), 0) == NULL)
-! {
-! Tcl_SetResult(interp, "couldn't save command result in variable", TCL_STATIC);
-! return TCL_ERROR;
-! }
-! }
-! Tcl_SetObjResult(interp, Tcl_NewIntObj(result));
-! return TCL_OK;
- default:
-! Tcl_WrongNumArgs(interp, 1, objv, "command ?varName?");
- }
- return TCL_ERROR;
- }
---- 309,320 ----
- break;
- /* FALLTHROUGH */
- case 1:
-! tclinfo.exitvalue = value;
-
-! Tcl_DeleteInterp(interp);
-! break;
- default:
-! Tcl_WrongNumArgs(interp, 1, objv, "?returnCode?");
- }
- return TCL_ERROR;
- }
-***************
-*** 372,377 ****
---- 341,347 ----
- /*
- * "::vim::buffer list" - create a list of buffer commands.
- * "::vim::buffer {N}" - create buffer command for buffer N.
-+ * "::vim::buffer exists {N}" - test if buffer N exists.
- * "::vim::buffer new" - create a new buffer (not implemented)
- */
- static int
-***************
-*** 1663,1669 ****
- static Tcl_ChannelType channel_type =
- {
- "vimmessage", /* typeName */
-! NULL, /* version */
- channel_close, /* closeProc */
- channel_input, /* inputProc */
- channel_output, /* outputProc */
---- 1633,1639 ----
- static Tcl_ChannelType channel_type =
- {
- "vimmessage", /* typeName */
-! TCL_CHANNEL_VERSION_2, /* version */
- channel_close, /* closeProc */
- channel_input, /* inputProc */
- channel_output, /* outputProc */
-***************
-*** 1678,1683 ****
---- 1648,1655 ----
- NULL, /* flushProc */
- NULL, /* handlerProc */
- #endif
-+ /* The following should not be necessary since TCL_CHANNEL_VERSION_2 was
-+ * set above */
- #ifdef TCL_CHANNEL_VERSION_3
- NULL, /* wideSeekProc */
- #endif
-***************
-*** 1741,1747 ****
- Tcl_Interp *interp;
- static Tcl_Channel ch1, ch2;
-
-! /* replace stdout and stderr */
- ch1 = Tcl_CreateChannel(&channel_type, "vimout", VIMOUT, TCL_WRITABLE);
- ch2 = Tcl_CreateChannel(&channel_type, "vimerr", VIMERR, TCL_WRITABLE);
- Tcl_SetStdChannel(ch1, TCL_STDOUT);
---- 1713,1721 ----
- Tcl_Interp *interp;
- static Tcl_Channel ch1, ch2;
-
-! /* Create replacement channels for stdout and stderr; this has to be
-! * done each time an interpreter is created since the channels are closed
-! * when the interpreter is deleted */
- ch1 = Tcl_CreateChannel(&channel_type, "vimout", VIMOUT, TCL_WRITABLE);
- ch2 = Tcl_CreateChannel(&channel_type, "vimerr", VIMERR, TCL_WRITABLE);
- Tcl_SetStdChannel(ch1, TCL_STDOUT);
-***************
-*** 1761,1775 ****
- #endif
-
- Tcl_SetChannelOption(interp, ch1, "-buffering", "line");
- Tcl_SetChannelOption(interp, ch2, "-buffering", "line");
-
-! /* replace some standard Tcl commands */
- Tcl_DeleteCommand(interp, "exit");
- Tcl_CreateObjCommand(interp, "exit", exitcmd,
- (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
-- Tcl_DeleteCommand(interp, "catch");
-- Tcl_CreateObjCommand(interp, "catch", catchcmd,
-- (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
-
- /* new commands, in ::vim namespace */
- Tcl_CreateObjCommand(interp, "::vim::buffer", buffercmd,
---- 1735,1752 ----
- #endif
-
- Tcl_SetChannelOption(interp, ch1, "-buffering", "line");
-+ #ifdef WIN3264
-+ Tcl_SetChannelOption(interp, ch1, "-translation", "lf");
-+ #endif
- Tcl_SetChannelOption(interp, ch2, "-buffering", "line");
-+ #ifdef WIN3264
-+ Tcl_SetChannelOption(interp, ch2, "-translation", "lf");
-+ #endif
-
-! /* replace standard Tcl exit command */
- Tcl_DeleteCommand(interp, "exit");
- Tcl_CreateObjCommand(interp, "exit", exitcmd,
- (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
-
- /* new commands, in ::vim namespace */
- Tcl_CreateObjCommand(interp, "::vim::buffer", buffercmd,
-***************
-*** 1821,1826 ****
---- 1798,1805 ----
- tclinfo.range_end = row2tcl(eap->line2);
- tclupdatevars();
- }
-+
-+ tclinfo.exitvalue = 0;
- return OK;
- }
-
-***************
-*** 1884,1913 ****
- {
- int newerr = OK;
-
-! if (error == TCL_EXIT)
- {
-- int retval;
- char buf[50];
-- Tcl_Obj *robj;
-
-! robj = Tcl_GetObjResult(tclinfo.interp);
-! if (Tcl_GetIntFromObj(tclinfo.interp, robj, &retval) != TCL_OK)
- {
-! EMSG(_("E281: TCL ERROR: exit code is not int!? Please report this to vim-dev@vim.org"));
-! newerr = FAIL;
- }
- else
-! {
-! sprintf(buf, _("E572: exit code %d"), retval);
-! tclerrmsg(buf);
-! if (retval == 0)
-! {
-! did_emsg = 0;
-! newerr = OK;
-! }
-! else
-! newerr = FAIL;
-! }
-
- tcldelthisinterp();
- }
---- 1863,1885 ----
- {
- int newerr = OK;
-
-! if (Tcl_InterpDeleted(tclinfo.interp) /* True if we intercepted Tcl's exit command */
-! #if (TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION >= 5) || TCL_MAJOR_VERSION > 8
-! || Tcl_LimitExceeded(tclinfo.interp) /* True if the interpreter cannot continue */
-! #endif
-! )
- {
- char buf[50];
-
-! sprintf(buf, _("E572: exit code %d"), tclinfo.exitvalue);
-! tclerrmsg(buf);
-! if (tclinfo.exitvalue == 0)
- {
-! did_emsg = 0;
-! newerr = OK;
- }
- else
-! newerr = FAIL;
-
- tcldelthisinterp();
- }
-***************
-*** 2021,2027 ****
- Tcl_SetVar(tclinfo.interp, var_line, line, 0);
- Tcl_AllowExceptions(tclinfo.interp);
- err = Tcl_Eval(tclinfo.interp, script);
-! if (err != TCL_OK)
- break;
- line = (char *)Tcl_GetVar(tclinfo.interp, var_line, 0);
- if (line)
---- 1993,2004 ----
- Tcl_SetVar(tclinfo.interp, var_line, line, 0);
- Tcl_AllowExceptions(tclinfo.interp);
- err = Tcl_Eval(tclinfo.interp, script);
-! if (err != TCL_OK
-! || Tcl_InterpDeleted(tclinfo.interp)
-! #if (TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION >= 5) || TCL_MAJOR_VERSION > 8
-! || Tcl_LimitExceeded(tclinfo.interp)
-! #endif
-! )
- break;
- line = (char *)Tcl_GetVar(tclinfo.interp, var_line, 0);
- if (line)
-*** ../vim-7.3.450/src/version.c 2012-02-22 15:34:05.000000000 +0100
---- src/version.c 2012-02-22 16:00:49.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 451,
- /**/
-
---
-Where do you want to crash today?
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.452
-Fcc: 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.452
-Problem: Undo broken when pasting close to the last line. (Andrey Radev)
-Solution: Use a flag to remember if the deleted included the last line.
- (Christian Brabandt)
-Files: src/ops.c
-
-
-*** ../vim-7.3.451/src/ops.c 2012-01-10 13:46:18.000000000 +0100
---- src/ops.c 2012-02-22 17:32:40.000000000 +0100
-***************
-*** 1943,1954 ****
---- 1943,1956 ----
- else /* delete characters between lines */
- {
- pos_T curpos;
-+ int delete_last_line;
-
- /* save deleted and changed lines for undo */
- if (u_save((linenr_T)(curwin->w_cursor.lnum - 1),
- (linenr_T)(curwin->w_cursor.lnum + oap->line_count)) == FAIL)
- return FAIL;
-
-+ delete_last_line = (oap->end.lnum == curbuf->b_ml.ml_line_count);
- truncate_line(TRUE); /* delete from cursor to end of line */
-
- curpos = curwin->w_cursor; /* remember curwin->w_cursor */
-***************
-*** 1956,1962 ****
- del_lines((long)(oap->line_count - 2), FALSE);
-
- n = (oap->end.col + 1 - !oap->inclusive);
-! if (oap->inclusive && oap->end.lnum == curbuf->b_ml.ml_line_count
- && n > (int)STRLEN(ml_get(oap->end.lnum)))
- {
- /* Special case: gH<Del> deletes the last line. */
---- 1958,1964 ----
- del_lines((long)(oap->line_count - 2), FALSE);
-
- n = (oap->end.col + 1 - !oap->inclusive);
-! if (oap->inclusive && delete_last_line
- && n > (int)STRLEN(ml_get(oap->end.lnum)))
- {
- /* Special case: gH<Del> deletes the last line. */
-*** ../vim-7.3.451/src/version.c 2012-02-22 16:01:53.000000000 +0100
---- src/version.c 2012-02-22 17:37:18.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 452,
- /**/
-
---
-From "know your smileys":
- =):-) Uncle Sam
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.453
-Fcc: 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.453
-Problem: Pasting in the command line is slow.
-Solution: Don't redraw if there is another character to read. (Dominique
- Pelle)
-Files: src/ex_getln.c
-
-
-*** ../vim-7.3.452/src/ex_getln.c 2012-02-22 14:58:24.000000000 +0100
---- src/ex_getln.c 2012-02-22 17:53:32.000000000 +0100
-***************
-*** 1852,1859 ****
- # endif
- )
- /* Always redraw the whole command line to fix shaping and
-! * right-left typing. Not efficient, but it works. */
-! redrawcmd();
- #endif
- }
-
---- 1852,1862 ----
- # endif
- )
- /* Always redraw the whole command line to fix shaping and
-! * right-left typing. Not efficient, but it works.
-! * Do it only when there are no characters left to read
-! * to avoid useless intermediate redraws. */
-! if (vpeekc() == NUL)
-! redrawcmd();
- #endif
- }
-
-*** ../vim-7.3.452/src/version.c 2012-02-22 17:37:55.000000000 +0100
---- src/version.c 2012-02-22 17:56:59.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 453,
- /**/
-
---
-From "know your smileys":
- <<<:-{ Worf (Never smiles anyways, so he's a bad smiley)
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.454
-Fcc: 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.454
-Problem: Re-allocating memory slows Vim down.
-Solution: Use realloc() in ga_grow(). (Dominique Pelle)
-Files: src/misc2.c
-
-
-*** ../vim-7.3.453/src/misc2.c 2012-02-22 14:58:24.000000000 +0100
---- src/misc2.c 2012-02-22 18:07:45.000000000 +0100
-***************
-*** 2064,2087 ****
- garray_T *gap;
- int n;
- {
-! size_t len;
- char_u *pp;
-
- if (gap->ga_maxlen - gap->ga_len < n)
- {
- if (n < gap->ga_growsize)
- n = gap->ga_growsize;
-! len = gap->ga_itemsize * (gap->ga_len + n);
-! pp = alloc_clear((unsigned)len);
- if (pp == NULL)
- return FAIL;
- gap->ga_maxlen = gap->ga_len + n;
-- if (gap->ga_data != NULL)
-- {
-- mch_memmove(pp, gap->ga_data,
-- (size_t)(gap->ga_itemsize * gap->ga_len));
-- vim_free(gap->ga_data);
-- }
- gap->ga_data = pp;
- }
- return OK;
---- 2064,2085 ----
- garray_T *gap;
- int n;
- {
-! size_t old_len;
-! size_t new_len;
- char_u *pp;
-
- if (gap->ga_maxlen - gap->ga_len < n)
- {
- if (n < gap->ga_growsize)
- n = gap->ga_growsize;
-! new_len = gap->ga_itemsize * (gap->ga_len + n);
-! pp = (gap->ga_data == NULL)
-! ? alloc(new_len) : vim_realloc(gap->ga_data, new_len);
- if (pp == NULL)
- return FAIL;
-+ old_len = gap->ga_itemsize * gap->ga_maxlen;
-+ vim_memset(pp + old_len, 0, new_len - old_len);
- gap->ga_maxlen = gap->ga_len + n;
- gap->ga_data = pp;
- }
- return OK;
-*** ../vim-7.3.453/src/version.c 2012-02-22 17:58:00.000000000 +0100
---- src/version.c 2012-02-22 18:09:42.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 454,
- /**/
-
---
-From "know your smileys":
- (X0||) Double hamburger with lettuce and tomato
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.455
-Fcc: 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.455
-Problem: Using many continuation lines can be slow.
-Solution: Adjust the reallocation size to the current length.
-Files: src/ex_cmds2.c
-
-
-*** ../vim-7.3.454/src/ex_cmds2.c 2012-02-11 20:40:49.000000000 +0100
---- src/ex_cmds2.c 2012-02-22 18:24:11.000000000 +0100
-***************
-*** 3448,3454 ****
- {
- garray_T ga;
-
-! ga_init2(&ga, (int)sizeof(char_u), 200);
- ga_concat(&ga, line);
- ga_concat(&ga, p + 1);
- for (;;)
---- 3448,3454 ----
- {
- garray_T ga;
-
-! ga_init2(&ga, (int)sizeof(char_u), 400);
- ga_concat(&ga, line);
- ga_concat(&ga, p + 1);
- for (;;)
-***************
-*** 3460,3465 ****
---- 3460,3474 ----
- p = skipwhite(sp->nextline);
- if (*p != '\\')
- break;
-+ /* Adjust the growsize to the current length to speed up
-+ * concatenating many lines. */
-+ if (ga.ga_len > 400)
-+ {
-+ if (ga.ga_len > 8000)
-+ ga.ga_growsize = 8000;
-+ else
-+ ga.ga_growsize = ga.ga_len;
-+ }
- ga_concat(&ga, p + 1);
- }
- ga_append(&ga, NUL);
-*** ../vim-7.3.454/src/version.c 2012-02-22 18:12:29.000000000 +0100
---- src/version.c 2012-02-22 18:24:58.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 455,
- /**/
-
---
-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/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.456
-Fcc: 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.456
-Problem: ":tab drop file" has several problems, including moving the
- current window and opening a new tab for a file that already has a
- window.
-Solution: Refactor ":tab drop" handling. (Hirohito Higashi)
-Files: src/buffer.c, src/testdir/test62.in, src/testdir/test62.ok
-
-
-*** ../vim-7.3.455/src/buffer.c 2012-02-22 14:58:24.000000000 +0100
---- src/buffer.c 2012-02-22 19:08:34.000000000 +0100
-***************
-*** 4405,4411 ****
- {
- int i;
- win_T *wp, *wpnext;
-! char_u *opened; /* array of flags for which args are open */
- int opened_len; /* length of opened[] */
- int use_firstwin = FALSE; /* use first window for arglist */
- int split_ret = OK;
---- 4405,4416 ----
- {
- int i;
- win_T *wp, *wpnext;
-! char_u *opened; /* Array of weight for which args are open:
-! * 0: not opened
-! * 1: opened in other tab
-! * 2: opened in curtab
-! * 3: opened in curtab and curwin
-! */
- int opened_len; /* length of opened[] */
- int use_firstwin = FALSE; /* use first window for arglist */
- int split_ret = OK;
-***************
-*** 4414,4419 ****
---- 4419,4426 ----
- buf_T *buf;
- tabpage_T *tpnext;
- int had_tab = cmdmod.tab;
-+ win_T *old_curwin, *last_curwin;
-+ tabpage_T *old_curtab, *last_curtab;
- win_T *new_curwin = NULL;
- tabpage_T *new_curtab = NULL;
-
-***************
-*** 4430,4435 ****
---- 4437,4451 ----
- if (opened == NULL)
- return;
-
-+ /* Autocommands may do anything to the argument list. Make sure it's not
-+ * freed while we are working here by "locking" it. We still have to
-+ * watch out for its size to be changed. */
-+ alist = curwin->w_alist;
-+ ++alist->al_refcount;
-+
-+ old_curwin = curwin;
-+ old_curtab = curtab;
-+
- #ifdef FEAT_GUI
- need_mouse_correct = TRUE;
- #endif
-***************
-*** 4451,4486 ****
- wpnext = wp->w_next;
- buf = wp->w_buffer;
- if (buf->b_ffname == NULL
-! || buf->b_nwindows > 1
- #ifdef FEAT_VERTSPLIT
- || wp->w_width != Columns
- #endif
- )
-! i = ARGCOUNT;
- else
- {
- /* check if the buffer in this window is in the arglist */
-! for (i = 0; i < ARGCOUNT; ++i)
- {
-! if (ARGLIST[i].ae_fnum == buf->b_fnum
-! || fullpathcmp(alist_name(&ARGLIST[i]),
-! buf->b_ffname, TRUE) & FPC_SAME)
- {
-! if (i < opened_len)
- {
-! opened[i] = TRUE;
- if (i == 0)
- {
- new_curwin = wp;
- new_curtab = curtab;
- }
- }
-! if (wp->w_alist != curwin->w_alist)
- {
- /* Use the current argument list for all windows
- * containing a file from it. */
- alist_unlink(wp->w_alist);
-! wp->w_alist = curwin->w_alist;
- ++wp->w_alist->al_refcount;
- }
- break;
---- 4467,4517 ----
- wpnext = wp->w_next;
- buf = wp->w_buffer;
- if (buf->b_ffname == NULL
-! || (!keep_tabs && buf->b_nwindows > 1)
- #ifdef FEAT_VERTSPLIT
- || wp->w_width != Columns
- #endif
- )
-! i = opened_len;
- else
- {
- /* check if the buffer in this window is in the arglist */
-! for (i = 0; i < opened_len; ++i)
- {
-! if (i < alist->al_ga.ga_len
-! && (AARGLIST(alist)[i].ae_fnum == buf->b_fnum
-! || fullpathcmp(alist_name(&AARGLIST(alist)[i]),
-! buf->b_ffname, TRUE) & FPC_SAME))
- {
-! int weight = 1;
-!
-! if (old_curtab == curtab)
-! {
-! ++weight;
-! if (old_curwin == wp)
-! ++weight;
-! }
-!
-! if (weight > (int)opened[i])
- {
-! opened[i] = (char_u)weight;
- if (i == 0)
- {
-+ if (new_curwin != NULL)
-+ new_curwin->w_arg_idx = opened_len;
- new_curwin = wp;
- new_curtab = curtab;
- }
- }
-! else if (keep_tabs)
-! i = opened_len;
-!
-! if (wp->w_alist != alist)
- {
- /* Use the current argument list for all windows
- * containing a file from it. */
- alist_unlink(wp->w_alist);
-! wp->w_alist = alist;
- ++wp->w_alist->al_refcount;
- }
- break;
-***************
-*** 4489,4495 ****
- }
- wp->w_arg_idx = i;
-
-! if (i == ARGCOUNT && !keep_tabs) /* close this window */
- {
- if (P_HID(buf) || forceit || buf->b_nwindows > 1
- || !bufIsChanged(buf))
---- 4520,4526 ----
- }
- wp->w_arg_idx = i;
-
-! if (i == opened_len && !keep_tabs)/* close this window */
- {
- if (P_HID(buf) || forceit || buf->b_nwindows > 1
- || !bufIsChanged(buf))
-***************
-*** 4511,4517 ****
- }
- #ifdef FEAT_WINDOWS
- /* don't close last window */
-! if (firstwin == lastwin && first_tabpage->tp_next == NULL)
- #endif
- use_firstwin = TRUE;
- #ifdef FEAT_WINDOWS
---- 4542,4549 ----
- }
- #ifdef FEAT_WINDOWS
- /* don't close last window */
-! if (firstwin == lastwin
-! && (first_tabpage->tp_next == NULL || !had_tab))
- #endif
- use_firstwin = TRUE;
- #ifdef FEAT_WINDOWS
-***************
-*** 4545,4564 ****
- * Open a window for files in the argument list that don't have one.
- * ARGCOUNT may change while doing this, because of autocommands.
- */
-! if (count > ARGCOUNT || count <= 0)
-! count = ARGCOUNT;
-!
-! /* Autocommands may do anything to the argument list. Make sure it's not
-! * freed while we are working here by "locking" it. We still have to
-! * watch out for its size to be changed. */
-! alist = curwin->w_alist;
-! ++alist->al_refcount;
-
- #ifdef FEAT_AUTOCMD
- /* Don't execute Win/Buf Enter/Leave autocommands here. */
- ++autocmd_no_enter;
- ++autocmd_no_leave;
- #endif
- win_enter(lastwin, FALSE);
- #ifdef FEAT_WINDOWS
- /* ":drop all" should re-use an empty window to avoid "--remote-tab"
---- 4577,4592 ----
- * Open a window for files in the argument list that don't have one.
- * ARGCOUNT may change while doing this, because of autocommands.
- */
-! if (count > opened_len || count <= 0)
-! count = opened_len;
-
- #ifdef FEAT_AUTOCMD
- /* Don't execute Win/Buf Enter/Leave autocommands here. */
- ++autocmd_no_enter;
- ++autocmd_no_leave;
- #endif
-+ last_curwin = curwin;
-+ last_curtab = curtab;
- win_enter(lastwin, FALSE);
- #ifdef FEAT_WINDOWS
- /* ":drop all" should re-use an empty window to avoid "--remote-tab"
-***************
-*** 4568,4578 ****
- use_firstwin = TRUE;
- #endif
-
-! for (i = 0; i < count && i < alist->al_ga.ga_len && !got_int; ++i)
- {
- if (alist == &global_alist && i == global_alist.al_ga.ga_len - 1)
- arg_had_last = TRUE;
-! if (i < opened_len && opened[i])
- {
- /* Move the already present window to below the current window */
- if (curwin->w_arg_idx != i)
---- 4596,4606 ----
- use_firstwin = TRUE;
- #endif
-
-! for (i = 0; i < count && i < opened_len && !got_int; ++i)
- {
- if (alist == &global_alist && i == global_alist.al_ga.ga_len - 1)
- arg_had_last = TRUE;
-! if (opened[i] > 0)
- {
- /* Move the already present window to below the current window */
- if (curwin->w_arg_idx != i)
-***************
-*** 4581,4587 ****
- {
- if (wpnext->w_arg_idx == i)
- {
-! win_move_after(wpnext, curwin);
- break;
- }
- }
---- 4609,4621 ----
- {
- if (wpnext->w_arg_idx == i)
- {
-! if (keep_tabs)
-! {
-! new_curwin = wpnext;
-! new_curtab = curtab;
-! }
-! else
-! win_move_after(wpnext, curwin);
- break;
- }
- }
-***************
-*** 4636,4641 ****
---- 4670,4683 ----
- #ifdef FEAT_AUTOCMD
- --autocmd_no_enter;
- #endif
-+ /* restore last referenced tabpage's curwin */
-+ if (last_curtab != new_curtab)
-+ {
-+ if (valid_tabpage(last_curtab))
-+ goto_tabpage_tp(last_curtab);
-+ if (win_valid(last_curwin))
-+ win_enter(last_curwin, FALSE);
-+ }
- /* to window with first arg */
- if (valid_tabpage(new_curtab))
- goto_tabpage_tp(new_curtab);
-*** ../vim-7.3.455/src/testdir/test62.in 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test62.in 2012-02-22 18:45:10.000000000 +0100
-***************
-*** 50,55 ****
---- 50,92 ----
- :call append(line('$'), test_status)
- :"
- :"
-+ :" Test for ":tab drop exist-file" to keep current window.
-+ :sp test1
-+ :tab drop test1
-+ :let test_status = 'tab drop 1: fail'
-+ :if tabpagenr('$') == 1 && winnr('$') == 2 && winnr() == 1
-+ : let test_status = 'tab drop 1: pass'
-+ :endif
-+ :close
-+ :call append(line('$'), test_status)
-+ :"
-+ :"
-+ :" Test for ":tab drop new-file" to keep current window of tabpage 1.
-+ :split
-+ :tab drop newfile
-+ :let test_status = 'tab drop 2: fail'
-+ :if tabpagenr('$') == 2 && tabpagewinnr(1, '$') == 2 && tabpagewinnr(1) == 1
-+ : let test_status = 'tab drop 2: pass'
-+ :endif
-+ :tabclose
-+ :q
-+ :call append(line('$'), test_status)
-+ :"
-+ :"
-+ :" Test for ":tab drop multi-opend-file" to keep current tabpage and window.
-+ :new test1
-+ :tabnew
-+ :new test1
-+ :tab drop test1
-+ :let test_status = 'tab drop 3: fail'
-+ :if tabpagenr() == 2 && tabpagewinnr(2, '$') == 2 && tabpagewinnr(2) == 1
-+ : let test_status = 'tab drop 3: pass'
-+ :endif
-+ :tabclose
-+ :q
-+ :call append(line('$'), test_status)
-+ :"
-+ :"
- :/^Results/,$w! test.out
- :qa!
- ENDTEST
-*** ../vim-7.3.455/src/testdir/test62.ok 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test62.ok 2012-02-22 18:45:10.000000000 +0100
-***************
-*** 5,7 ****
---- 5,10 ----
- this is tab page 4
- gettabvar: pass
- settabvar: pass
-+ tab drop 1: pass
-+ tab drop 2: pass
-+ tab drop 3: pass
-*** ../vim-7.3.455/src/version.c 2012-02-22 18:29:29.000000000 +0100
---- src/version.c 2012-02-22 19:11:52.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 456,
- /**/
-
---
-% cat /usr/include/life.h
-void life(void);
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.457
-Fcc: 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.457
-Problem: When setting $VIMRUNTIME later the directory for fetching
- translated messages is not adjusted.
-Solution: Put bindtextdomain() in vim_setenv().
-Files: src/misc1.c
-
-
-*** ../vim-7.3.456/src/misc1.c 2012-02-05 22:05:44.000000000 +0100
---- src/misc1.c 2012-02-26 13:27:28.000000000 +0100
-***************
-*** 4133,4149 ****
- {
- vim_setenv((char_u *)"VIMRUNTIME", p);
- didset_vimruntime = TRUE;
-- #ifdef FEAT_GETTEXT
-- {
-- char_u *buf = concat_str(p, (char_u *)"/lang");
--
-- if (buf != NULL)
-- {
-- bindtextdomain(VIMPACKAGE, (char *)buf);
-- vim_free(buf);
-- }
-- }
-- #endif
- }
- else
- {
---- 4133,4138 ----
-***************
-*** 4221,4226 ****
---- 4210,4231 ----
- putenv((char *)envbuf);
- }
- #endif
-+ #ifdef FEAT_GETTEXT
-+ /*
-+ * When setting $VIMRUNTIME adjust the directory to find message
-+ * translations to $VIMRUNTIME/lang.
-+ */
-+ if (*val != NUL && STRICMP(name, "VIMRUNTIME") == 0)
-+ {
-+ char_u *buf = concat_str(val, (char_u *)"/lang");
-+
-+ if (buf != NULL)
-+ {
-+ bindtextdomain(VIMPACKAGE, (char *)buf);
-+ vim_free(buf);
-+ }
-+ }
-+ #endif
- }
-
- #if defined(FEAT_CMDL_COMPL) || defined(PROTO)
-*** ../vim-7.3.456/src/version.c 2012-02-22 19:13:00.000000000 +0100
---- src/version.c 2012-02-29 13:47:09.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 457,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-118. You are on a first-name basis with your ISP's staff.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.458
-Fcc: 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.458
-Problem: Crash when calling smsg() during startup.
-Solution: Don't use 'shortmess' when it is not set yet.
-Files: src/option.c
-
-
-*** ../vim-7.3.457/src/option.c 2012-02-20 22:18:22.000000000 +0100
---- src/option.c 2012-02-26 13:14:48.000000000 +0100
-***************
-*** 10984,10990 ****
- shortmess(x)
- int x;
- {
-! return ( vim_strchr(p_shm, x) != NULL
- || (vim_strchr(p_shm, 'a') != NULL
- && vim_strchr((char_u *)SHM_A, x) != NULL));
- }
---- 10984,10991 ----
- shortmess(x)
- int x;
- {
-! return p_shm != NULL &&
-! ( vim_strchr(p_shm, x) != NULL
- || (vim_strchr(p_shm, 'a') != NULL
- && vim_strchr((char_u *)SHM_A, x) != NULL));
- }
-*** ../vim-7.3.457/src/version.c 2012-02-29 13:49:03.000000000 +0100
---- src/version.c 2012-02-29 13:50:52.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 458,
- /**/
-
---
-Support your right to bare arms! Wear short sleeves!
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.459
-Fcc: 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.459
-Problem: Win32: Warnings for type conversion.
-Solution: Add type casts. (Mike Williams)
-Files: src/misc2.c, src/os_win32.c
-
-
-*** ../vim-7.3.458/src/misc2.c 2012-02-22 18:12:29.000000000 +0100
---- src/misc2.c 2012-02-29 13:44:17.000000000 +0100
-***************
-*** 2074,2080 ****
- n = gap->ga_growsize;
- new_len = gap->ga_itemsize * (gap->ga_len + n);
- pp = (gap->ga_data == NULL)
-! ? alloc(new_len) : vim_realloc(gap->ga_data, new_len);
- if (pp == NULL)
- return FAIL;
- old_len = gap->ga_itemsize * gap->ga_maxlen;
---- 2074,2080 ----
- n = gap->ga_growsize;
- new_len = gap->ga_itemsize * (gap->ga_len + n);
- pp = (gap->ga_data == NULL)
-! ? alloc((unsigned)new_len) : vim_realloc(gap->ga_data, new_len);
- if (pp == NULL)
- return FAIL;
- old_len = gap->ga_itemsize * gap->ga_maxlen;
-*** ../vim-7.3.458/src/os_win32.c 2012-02-22 15:34:05.000000000 +0100
---- src/os_win32.c 2012-02-29 13:43:39.000000000 +0100
-***************
-*** 264,270 ****
- static void
- unescape_shellxquote(char_u *p, char_u *escaped)
- {
-! int l = STRLEN(p);
- int n;
-
- while (*p != NUL)
---- 264,270 ----
- static void
- unescape_shellxquote(char_u *p, char_u *escaped)
- {
-! int l = (int)STRLEN(p);
- int n;
-
- while (*p != NUL)
-*** ../vim-7.3.458/src/version.c 2012-02-29 13:51:32.000000000 +0100
---- src/version.c 2012-02-29 13:58:08.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 459,
- /**/
-
---
-"A clear conscience is usually the sign of a bad memory."
- -- Steven Wright
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.460
-Fcc: 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.460
-Problem: Win32: UPX does not compress 64 bit binaries.
-Solution: Mention and add the alternative: mpress. (Dave Bodenstab)
-Files: src/INSTALLpc.txt, src/Make_ming.mak
-
-
-*** ../vim-7.3.459/src/INSTALLpc.txt 2011-07-15 13:51:57.000000000 +0200
---- src/INSTALLpc.txt 2012-02-29 14:01:34.000000000 +0100
-***************
-*** 239,244 ****
---- 239,250 ----
- found at
- http://www.upx.org/
-
-+ As of 2011, UPX still does not support compressing 64-bit EXE's; if you have
-+ built a 64-bit vim then an alternative to UPX is 'MPRESS'. MPRESS can be found
-+ at:
-+ http://www.matcode.com/mpress.htm
-+
-+
- ADDITION: NLS support with MinGW
-
- (by Eduardo F. Amatria <eferna1@platea.pntic.mec.es>)
-*** ../vim-7.3.459/src/Make_ming.mak 2011-10-12 14:11:43.000000000 +0200
---- src/Make_ming.mak 2012-02-29 16:54:09.000000000 +0100
-***************
-*** 14,22 ****
- # it's just run out of memory or something. Run again, and it will continue
- # with 'xxd'.
- #
-! # "make upx" makes *compressed* versions of the GUI and console EXEs, using the
-! # excellent UPX compressor:
- # http://upx.sourceforge.net/
- #
- # Maintained by Ron Aaron <ronaharon@yahoo.com>
- # updated 2003 Jan 20
---- 14,24 ----
- # it's just run out of memory or something. Run again, and it will continue
- # with 'xxd'.
- #
-! # "make upx" makes *compressed* versions of the 32 bit GUI and console EXEs,
-! # using the excellent UPX compressor:
- # http://upx.sourceforge.net/
-+ # "make mpress" uses the MPRESS compressor for 32- and 64-bit EXEs:
-+ # http://www.matcode.com/mpress.htm
- #
- # Maintained by Ron Aaron <ronaharon@yahoo.com>
- # updated 2003 Jan 20
-***************
-*** 640,645 ****
---- 642,651 ----
- upx gvim.exe
- upx vim.exe
-
-+ mpress: exes
-+ mpress gvim.exe
-+ mpress vim.exe
-+
- xxd/xxd.exe: xxd/xxd.c
- $(MAKE) -C xxd -f Make_ming.mak CC=$(CC)
-
-*** ../vim-7.3.459/src/version.c 2012-02-29 13:58:43.000000000 +0100
---- src/version.c 2012-02-29 16:54:40.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 460,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-119. You are reading a book and look for the scroll bar to get to
- the next page.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.461
-Fcc: 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.461
-Problem: The InsertCharPre autocommand event is not triggered during
- completion and when typing several characters quickly.
-Solution: Also trigger InsertCharPre during completion. Do not read ahead
- when an InsertCharPre autocommand is defined. (Yasuhiro Matsumoto)
-Files: src/edit.c, src/fileio.c, src/proto/fileio.pro
-
-
-*** ../vim-7.3.460/src/edit.c 2012-02-04 23:34:57.000000000 +0100
---- src/edit.c 2012-02-29 18:17:31.000000000 +0100
-***************
-*** 259,264 ****
---- 259,267 ----
- static void ins_try_si __ARGS((int c));
- #endif
- static colnr_T get_nolist_virtcol __ARGS((void));
-+ #ifdef FEAT_AUTOCMD
-+ static char_u *do_insert_char_pre __ARGS((int c));
-+ #endif
-
- static colnr_T Insstart_textlen; /* length of line when insert started */
- static colnr_T Insstart_blank_vcol; /* vcol for first inserted blank */
-***************
-*** 784,790 ****
- * completion: Add to "compl_leader". */
- if (ins_compl_accept_char(c))
- {
-! ins_compl_addleader(c);
- continue;
- }
-
---- 787,806 ----
- * completion: Add to "compl_leader". */
- if (ins_compl_accept_char(c))
- {
-! #ifdef FEAT_AUTOCMD
-! /* Trigger InsertCharPre. */
-! char_u *str = do_insert_char_pre(c);
-! char_u *p;
-!
-! if (str != NULL)
-! {
-! for (p = str; *p != NUL; mb_ptr_adv(p))
-! ins_compl_addleader(PTR2CHAR(p));
-! vim_free(str);
-! }
-! else
-! #endif
-! ins_compl_addleader(c);
- continue;
- }
-
-***************
-*** 1393,1426 ****
- #ifdef FEAT_AUTOCMD
- if (!p_paste)
- {
-! /* Trigger the InsertCharPre event. Lock the text to avoid
-! * weird things from happening. */
-! set_vim_var_char(c);
-! ++textlock;
-! if (apply_autocmds(EVENT_INSERTCHARPRE, NULL, NULL,
-! FALSE, curbuf))
-! {
-! /* Get the new value of v:char. If it is more than one
-! * character insert it literally. */
-! char_u *s = get_vim_var_str(VV_CHAR);
-! if (MB_CHARLEN(s) > 1)
- {
-! if (stop_arrow() != FAIL)
- {
-! ins_str(s);
-! AppendToRedobuffLit(s, -1);
- }
-! c = NUL;
- }
-! else
-! c = PTR2CHAR(s);
- }
-
-! set_vim_var_string(VV_CHAR, NULL, -1);
-! --textlock;
-!
-! /* If the new value is an empty string then don't insert a
-! * char. */
- if (c == NUL)
- break;
- }
---- 1409,1439 ----
- #ifdef FEAT_AUTOCMD
- if (!p_paste)
- {
-! /* Trigger InsertCharPre. */
-! char_u *str = do_insert_char_pre(c);
-! char_u *p;
-!
-! if (str != NULL)
-! {
-! if (*str != NUL && stop_arrow() != FAIL)
- {
-! /* Insert the new value of v:char literally. */
-! for (p = str; *p != NUL; mb_ptr_adv(p))
- {
-! c = PTR2CHAR(p);
-! if (c == CAR || c == K_KENTER || c == NL)
-! ins_eol(c);
-! else
-! ins_char(c);
- }
-! AppendToRedobuffLit(str, -1);
- }
-! vim_free(str);
-! c = NUL;
- }
-
-! /* If the new value is already inserted or an empty string
-! * then don't insert any character. */
- if (c == NUL)
- break;
- }
-***************
-*** 5883,5888 ****
---- 5896,5903 ----
- * Don't do this when 'cindent' or 'indentexpr' is set, because we might
- * need to re-indent at a ':', or any other character (but not what
- * 'paste' is set)..
-+ * Don't do this when there an InsertCharPre autocommand is defined,
-+ * because we need to fire the event for every character.
- */
- #ifdef USE_ON_FLY_SCROLL
- dont_scroll = FALSE; /* allow scrolling here */
-***************
-*** 5900,5905 ****
---- 5915,5923 ----
- #ifdef FEAT_RIGHTLEFT
- && !p_ri
- #endif
-+ #ifdef FEAT_AUTOCMD
-+ && !has_insertcharpre()
-+ #endif
- )
- {
- #define INPUT_BUFLEN 100
-***************
-*** 10068,10070 ****
---- 10086,10123 ----
- validate_virtcol();
- return curwin->w_virtcol;
- }
-+
-+ #ifdef FEAT_AUTOCMD
-+ /*
-+ * Handle the InsertCharPre autocommand.
-+ * "c" is the character that was typed.
-+ * Return a pointer to allocated memory with the replacement string.
-+ * Return NULL to continue inserting "c".
-+ */
-+ static char_u *
-+ do_insert_char_pre(c)
-+ int c;
-+ {
-+ char_u *res;
-+
-+ /* Return quickly when there is nothing to do. */
-+ if (!has_insertcharpre())
-+ return NULL;
-+
-+ /* Lock the text to avoid weird things from happening. */
-+ ++textlock;
-+ set_vim_var_char(c); /* set v:char */
-+
-+ if (apply_autocmds(EVENT_INSERTCHARPRE, NULL, NULL, FALSE, curbuf))
-+ /* Get the new value of v:char. It may be empty or more than one
-+ * character. */
-+ res = vim_strsave(get_vim_var_str(VV_CHAR));
-+ else
-+ res = NULL;
-+
-+ set_vim_var_string(VV_CHAR, NULL, -1); /* clear v:char */
-+ --textlock;
-+
-+ return res;
-+ }
-+ #endif
-*** ../vim-7.3.460/src/fileio.c 2012-02-12 20:13:55.000000000 +0100
---- src/fileio.c 2012-02-29 17:50:32.000000000 +0100
-***************
-*** 9116,9121 ****
---- 9116,9130 ----
- return (first_autopat[(int)EVENT_CURSORMOVEDI] != NULL);
- }
-
-+ /*
-+ * Return TRUE when there is an InsertCharPre autocommand defined.
-+ */
-+ int
-+ has_insertcharpre()
-+ {
-+ return (first_autopat[(int)EVENT_INSERTCHARPRE] != NULL);
-+ }
-+
- static int
- apply_autocmds_group(event, fname, fname_io, force, group, buf, eap)
- event_T event;
-*** ../vim-7.3.460/src/proto/fileio.pro 2012-02-12 20:13:55.000000000 +0100
---- src/proto/fileio.pro 2012-02-29 17:50:38.000000000 +0100
-***************
-*** 44,49 ****
---- 44,50 ----
- int trigger_cursorhold __ARGS((void));
- int has_cursormoved __ARGS((void));
- int has_cursormovedI __ARGS((void));
-+ int has_insertcharpre __ARGS((void));
- void block_autocmds __ARGS((void));
- void unblock_autocmds __ARGS((void));
- int has_autocmd __ARGS((event_T event, char_u *sfname, buf_T *buf));
-*** ../vim-7.3.460/src/version.c 2012-02-29 16:56:35.000000000 +0100
---- src/version.c 2012-02-29 18:15:34.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 461,
- /**/
-
---
-"Computers in the future may weigh no more than 1.5 tons."
- Popular Mechanics, 1949
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.462
-Fcc: 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.462
-Problem: When using ":loadview" folds may be closed unexpectedly.
-Solution: Take into account foldlevel. (Xavier de Gaye)
-Files: src/fold.c
-
-
-*** ../vim-7.3.461/src/fold.c 2012-01-10 22:26:12.000000000 +0100
---- src/fold.c 2012-02-29 19:18:07.000000000 +0100
-***************
-*** 3292,3298 ****
- /* put_folds() {{{2 */
- #if defined(FEAT_SESSION) || defined(PROTO)
- static int put_folds_recurse __ARGS((FILE *fd, garray_T *gap, linenr_T off));
-! static int put_foldopen_recurse __ARGS((FILE *fd, garray_T *gap, linenr_T off));
-
- /*
- * Write commands to "fd" to restore the manual folds in window "wp".
---- 3292,3299 ----
- /* put_folds() {{{2 */
- #if defined(FEAT_SESSION) || defined(PROTO)
- static int put_folds_recurse __ARGS((FILE *fd, garray_T *gap, linenr_T off));
-! static int put_foldopen_recurse __ARGS((FILE *fd, win_T *wp, garray_T *gap, linenr_T off));
-! static int put_fold_open_close __ARGS((FILE *fd, fold_T *fp, linenr_T off));
-
- /*
- * Write commands to "fd" to restore the manual folds in window "wp".
-***************
-*** 3312,3318 ****
-
- /* If some folds are manually opened/closed, need to restore that. */
- if (wp->w_fold_manual)
-! return put_foldopen_recurse(fd, &wp->w_folds, (linenr_T)0);
-
- return OK;
- }
---- 3313,3319 ----
-
- /* If some folds are manually opened/closed, need to restore that. */
- if (wp->w_fold_manual)
-! return put_foldopen_recurse(fd, wp, &wp->w_folds, (linenr_T)0);
-
- return OK;
- }
-***************
-*** 3352,3363 ****
- * Returns FAIL when writing failed.
- */
- static int
-! put_foldopen_recurse(fd, gap, off)
- FILE *fd;
- garray_T *gap;
- linenr_T off;
- {
- int i;
- fold_T *fp;
-
- fp = (fold_T *)gap->ga_data;
---- 3353,3366 ----
- * Returns FAIL when writing failed.
- */
- static int
-! put_foldopen_recurse(fd, wp, gap, off)
- FILE *fd;
-+ win_T *wp;
- garray_T *gap;
- linenr_T off;
- {
- int i;
-+ int level;
- fold_T *fp;
-
- fp = (fold_T *)gap->ga_data;
-***************
-*** 3367,3393 ****
- {
- if (fp->fd_nested.ga_len > 0)
- {
-! /* open/close nested folds while this fold is open */
- if (fprintf(fd, "%ld", fp->fd_top + off) < 0
- || put_eol(fd) == FAIL
- || put_line(fd, "normal zo") == FAIL)
- return FAIL;
-! if (put_foldopen_recurse(fd, &fp->fd_nested, off + fp->fd_top)
- == FAIL)
- return FAIL;
- }
-- if (fprintf(fd, "%ld", fp->fd_top + off) < 0
-- || put_eol(fd) == FAIL
-- || fprintf(fd, "normal z%c",
-- fp->fd_flags == FD_CLOSED ? 'c' : 'o') < 0
-- || put_eol(fd) == FAIL)
-- return FAIL;
- }
- ++fp;
- }
-
- return OK;
- }
- #endif /* FEAT_SESSION */
-
- /* }}}1 */
---- 3370,3429 ----
- {
- if (fp->fd_nested.ga_len > 0)
- {
-! /* open nested folds while this fold is open */
- if (fprintf(fd, "%ld", fp->fd_top + off) < 0
- || put_eol(fd) == FAIL
- || put_line(fd, "normal zo") == FAIL)
- return FAIL;
-! if (put_foldopen_recurse(fd, wp, &fp->fd_nested,
-! off + fp->fd_top)
- == FAIL)
- return FAIL;
-+ /* close the parent when needed */
-+ if (fp->fd_flags == FD_CLOSED)
-+ {
-+ if (put_fold_open_close(fd, fp, off) == FAIL)
-+ return FAIL;
-+ }
-+ }
-+ else
-+ {
-+ /* Open or close the leaf according to the window foldlevel.
-+ * Do not close a leaf that is already closed, as it will close
-+ * the parent. */
-+ level = foldLevelWin(wp, off + fp->fd_top);
-+ if ((fp->fd_flags == FD_CLOSED && wp->w_p_fdl >= level)
-+ || (fp->fd_flags != FD_CLOSED && wp->w_p_fdl < level))
-+ if (put_fold_open_close(fd, fp, off) == FAIL)
-+ return FAIL;
- }
- }
- ++fp;
- }
-
- return OK;
- }
-+
-+ /* put_fold_open_close() {{{2 */
-+ /*
-+ * Write the open or close command to "fd".
-+ * Returns FAIL when writing failed.
-+ */
-+ static int
-+ put_fold_open_close(fd, fp, off)
-+ FILE *fd;
-+ fold_T *fp;
-+ linenr_T off;
-+ {
-+ if (fprintf(fd, "%ld", fp->fd_top + off) < 0
-+ || put_eol(fd) == FAIL
-+ || fprintf(fd, "normal z%c",
-+ fp->fd_flags == FD_CLOSED ? 'c' : 'o') < 0
-+ || put_eol(fd) == FAIL)
-+ return FAIL;
-+
-+ return OK;
-+ }
- #endif /* FEAT_SESSION */
-
- /* }}}1 */
-*** ../vim-7.3.461/src/version.c 2012-02-29 18:22:03.000000000 +0100
---- src/version.c 2012-02-29 18:40:43.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 462,
- /**/
-
---
-~
-~
-~
-".signature" 4 lines, 50 characters written
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.463
-Fcc: 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.463
-Problem: When using ":s///c" the cursor is moved away from the match.
- (Lawman)
-Solution: Don't move the cursor when do_ask is set. (Christian Brabandt)
-Files: src/ex_cmds.c
-
-
-*** ../vim-7.3.462/src/ex_cmds.c 2012-02-22 14:58:24.000000000 +0100
---- src/ex_cmds.c 2012-03-07 14:54:21.000000000 +0100
-***************
-*** 5151,5160 ****
-
- if (!global_busy)
- {
-! if (endcolumn)
-! coladvance((colnr_T)MAXCOL);
-! else
-! beginline(BL_WHITE | BL_FIX);
- if (!do_sub_msg(do_count) && do_ask)
- MSG("");
- }
---- 5151,5163 ----
-
- if (!global_busy)
- {
-! if (!do_ask) /* when interactive leave cursor on the match */
-! {
-! if (endcolumn)
-! coladvance((colnr_T)MAXCOL);
-! else
-! beginline(BL_WHITE | BL_FIX);
-! }
- if (!do_sub_msg(do_count) && do_ask)
- MSG("");
- }
-*** ../vim-7.3.462/src/version.c 2012-02-29 19:19:57.000000000 +0100
---- src/version.c 2012-03-07 14:55:39.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 463,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-151. You find yourself engaged to someone you've never actually met,
- except through e-mail.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.464
-Fcc: 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.464
-Problem: Compiler warning for sprintf.
-Solution: Put the length in a variable. (Dominique Pelle)
-Files: src/version.c
-
-
-*** ../vim-7.3.463/src/version.c 2012-03-07 14:57:50.000000000 +0100
---- src/version.c 2012-03-07 17:58:41.000000000 +0100
-***************
-*** 2187,2198 ****
- /* 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
-! sprintf((char *)vers + 4, ".%d%s", highest_patch(),
-! mediumVersion + 4);
- }
- else
- sprintf((char *)vers + 3, ".%d", highest_patch());
---- 2189,2197 ----
- /* Check for 9.9x or 9.9xx, alpha/beta version */
- if (isalpha((int)vers[3]))
- {
-! int len = (isalpha((int)vers[4])) ? 5 : 4;
-! sprintf((char *)vers + len, ".%d%s", highest_patch(),
-! mediumVersion + len);
- }
- else
- sprintf((char *)vers + 3, ".%d", highest_patch());
-*** ../vim-7.3.463/src/version.c 2012-03-07 14:57:50.000000000 +0100
---- src/version.c 2012-03-07 17:58:41.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 464,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-152. You find yourself falling for someone you've never seen or hardly
- know, but, boy can he/she TYPE!!!!!!
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.465
-Fcc: 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.465
-Problem: Cannot get file name with newline from glob().
-Solution: Add argument to glob() and expand() to indicate they must return a
- list. (Christian Brabandt)
-Files: runtime/doc/eval.txt, src/eval.c, src/ex_getln.c, src/vim.h
-
-
-*** ../vim-7.3.464/runtime/doc/eval.txt 2011-12-14 15:32:44.000000000 +0100
---- runtime/doc/eval.txt 2012-03-07 18:49:26.000000000 +0100
-***************
-*** 1738,1744 ****
- extend( {expr1}, {expr2} [, {expr3}])
- List/Dict insert items of {expr2} into {expr1}
- exp( {expr}) Float exponential of {expr}
-! expand( {expr} [, {flag}]) String expand special keywords in {expr}
- feedkeys( {string} [, {mode}]) Number add key sequence to typeahead buffer
- filereadable( {file}) Number TRUE if {file} is a readable file
- filewritable( {file}) Number TRUE if {file} is a writable file
---- 1746,1753 ----
- extend( {expr1}, {expr2} [, {expr3}])
- List/Dict insert items of {expr2} into {expr1}
- exp( {expr}) Float exponential of {expr}
-! expand( {expr} [, {nosuf} [, {list}]])
-! any expand special keywords in {expr}
- feedkeys( {string} [, {mode}]) Number add key sequence to typeahead buffer
- filereadable( {file}) Number TRUE if {file} is a readable file
- filewritable( {file}) Number TRUE if {file} is a writable file
-***************
-*** 1792,1798 ****
- getwinposx() Number X coord in pixels of GUI Vim window
- getwinposy() Number Y coord in pixels of GUI Vim window
- getwinvar( {nr}, {varname}) any variable {varname} in window {nr}
-! glob( {expr} [, {flag}]) String expand file wildcards in {expr}
- globpath( {path}, {expr} [, {flag}])
- String do glob({expr}) for all dirs in {path}
- has( {feature}) Number TRUE if feature {feature} supported
---- 1801,1808 ----
- getwinposx() Number X coord in pixels of GUI Vim window
- getwinposy() Number Y coord in pixels of GUI Vim window
- getwinvar( {nr}, {varname}) any variable {varname} in window {nr}
-! glob( {expr} [, {nosuf} [, {list}]])
-! any expand file wildcards in {expr}
- globpath( {path}, {expr} [, {flag}])
- String do glob({expr}) for all dirs in {path}
- has( {feature}) Number TRUE if feature {feature} supported
-***************
-*** 2731,2743 ****
- {only available when compiled with the |+float| feature}
-
-
-! expand({expr} [, {flag}]) *expand()*
- Expand wildcards and the following special keywords in {expr}.
-! The result is a String.
-
-! When there are several matches, they are separated by <NL>
-! characters. [Note: in version 5.0 a space was used, which
-! caused problems when a file name contains a space]
-
- If the expansion fails, the result is an empty string. A name
- for a non-existing file is not included.
---- 2744,2758 ----
- {only available when compiled with the |+float| feature}
-
-
-! expand({expr} [, {nosuf} [, {list}]]) *expand()*
- Expand wildcards and the following special keywords in {expr}.
-! 'wildignorecase' applies.
-
-! If {list} is given and it is non-zero, a List will be returned.
-! Otherwise the result is a String and when there are several
-! matches, they are separated by <NL> characters. [Note: in
-! version 5.0 a space was used, which caused problems when a
-! file name contains a space]
-
- If the expansion fails, the result is an empty string. A name
- for a non-existing file is not included.
-***************
-*** 2754,2759 ****
---- 2769,2775 ----
- <abuf> autocmd buffer number (as a String!)
- <amatch> autocmd matched name
- <sfile> sourced script file name
-+ <slnum> sourced script file line number
- <cword> word under the cursor
- <cWORD> WORD under the cursor
- <client> the {clientid} of the last received
-***************
-*** 2790,2799 ****
- When {expr} does not start with '%', '#' or '<', it is
- expanded like a file name is expanded on the command line.
- 'suffixes' and 'wildignore' are used, unless the optional
-! {flag} argument is given and it is non-zero. Names for
-! non-existing files are included. The "**" item can be used to
-! search in a directory tree. For example, to find all "README"
-! files in the current directory and below: >
- :echo expand("**/README")
- <
- Expand() can also be used to expand variables and environment
---- 2806,2815 ----
- When {expr} does not start with '%', '#' or '<', it is
- expanded like a file name is expanded on the command line.
- 'suffixes' and 'wildignore' are used, unless the optional
-! {nosuf} argument is given and it is non-zero.
-! Names for non-existing files are included. The "**" item can
-! be used to search in a directory tree. For example, to find
-! all "README" files in the current directory and below: >
- :echo expand("**/README")
- <
- Expand() can also be used to expand variables and environment
-***************
-*** 3437,3453 ****
- :let list_is_on = getwinvar(2, '&list')
- :echo "myvar = " . getwinvar(1, 'myvar')
- <
-! glob({expr} [, {flag}]) *glob()*
- Expand the file wildcards in {expr}. See |wildcards| for the
- use of special characters.
-! The result is a String.
-! When there are several matches, they are separated by <NL>
-! characters.
-! Unless the optional {flag} argument is given and is non-zero,
- the 'suffixes' and 'wildignore' options apply: Names matching
- one of the patterns in 'wildignore' will be skipped and
- 'suffixes' affect the ordering of matches.
-! If the expansion fails, the result is an empty string.
- A name for a non-existing file is not included.
-
- For most systems backticks can be used to get files names from
---- 3456,3478 ----
- :let list_is_on = getwinvar(2, '&list')
- :echo "myvar = " . getwinvar(1, 'myvar')
- <
-! glob({expr} [, {nosuf} [, {list}]]) *glob()*
- Expand the file wildcards in {expr}. See |wildcards| for the
- use of special characters.
-!
-! Unless the optional {nosuf} argument is given and is non-zero,
- the 'suffixes' and 'wildignore' options apply: Names matching
- one of the patterns in 'wildignore' will be skipped and
- 'suffixes' affect the ordering of matches.
-! 'wildignorecase' always applies.
-!
-! When {list} is present and it is non-zero the result is a List
-! with all matching files. The advantage of using a List is,
-! you also get filenames containing newlines correctly.
-! Otherwise the result is a String and when there are several
-! matches, they are separated by <NL> characters.
-!
-! If the expansion fails, the result is an empty String or List.
- A name for a non-existing file is not included.
-
- For most systems backticks can be used to get files names from
-*** ../vim-7.3.464/src/eval.c 2012-02-11 20:44:01.000000000 +0100
---- src/eval.c 2012-03-07 19:08:36.000000000 +0100
-***************
-*** 7852,7858 ****
- #ifdef FEAT_FLOAT
- {"exp", 1, 1, f_exp},
- #endif
-! {"expand", 1, 2, f_expand},
- {"extend", 2, 3, f_extend},
- {"feedkeys", 1, 2, f_feedkeys},
- {"file_readable", 1, 1, f_filereadable}, /* obsolete */
---- 7852,7858 ----
- #ifdef FEAT_FLOAT
- {"exp", 1, 1, f_exp},
- #endif
-! {"expand", 1, 3, f_expand},
- {"extend", 2, 3, f_extend},
- {"feedkeys", 1, 2, f_feedkeys},
- {"file_readable", 1, 1, f_filereadable}, /* obsolete */
-***************
-*** 7903,7909 ****
- {"getwinposx", 0, 0, f_getwinposx},
- {"getwinposy", 0, 0, f_getwinposy},
- {"getwinvar", 2, 2, f_getwinvar},
-! {"glob", 1, 2, f_glob},
- {"globpath", 2, 3, f_globpath},
- {"has", 1, 1, f_has},
- {"has_key", 2, 2, f_has_key},
---- 7903,7909 ----
- {"getwinposx", 0, 0, f_getwinposx},
- {"getwinposy", 0, 0, f_getwinposy},
- {"getwinvar", 2, 2, f_getwinvar},
-! {"glob", 1, 3, f_glob},
- {"globpath", 2, 3, f_globpath},
- {"has", 1, 1, f_has},
- {"has_key", 2, 2, f_has_key},
-***************
-*** 10019,10032 ****
- int options = WILD_SILENT|WILD_USE_NL|WILD_LIST_NOTFOUND;
- expand_T xpc;
- int error = FALSE;
-
- rettv->v_type = VAR_STRING;
- s = get_tv_string(&argvars[0]);
- if (*s == '%' || *s == '#' || *s == '<')
- {
- ++emsg_off;
-! rettv->vval.v_string = eval_vars(s, s, &len, NULL, &errormsg, NULL);
- --emsg_off;
- }
- else
- {
---- 10019,10051 ----
- int options = WILD_SILENT|WILD_USE_NL|WILD_LIST_NOTFOUND;
- expand_T xpc;
- int error = FALSE;
-+ char_u *result;
-
- rettv->v_type = VAR_STRING;
-+ if (argvars[1].v_type != VAR_UNKNOWN
-+ && argvars[2].v_type != VAR_UNKNOWN
-+ && get_tv_number_chk(&argvars[2], &error)
-+ && !error)
-+ {
-+ rettv->v_type = VAR_LIST;
-+ rettv->vval.v_list = NULL;
-+ }
-+
- s = get_tv_string(&argvars[0]);
- if (*s == '%' || *s == '#' || *s == '<')
- {
- ++emsg_off;
-! result = eval_vars(s, s, &len, NULL, &errormsg, NULL);
- --emsg_off;
-+ if (rettv->v_type == VAR_LIST)
-+ {
-+ if (rettv_list_alloc(rettv) != FAIL && result != NULL)
-+ list_append_string(rettv->vval.v_list, result, -1);
-+ else
-+ vim_free(result);
-+ }
-+ else
-+ rettv->vval.v_string = result;
- }
- else
- {
-***************
-*** 10041,10047 ****
- 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;
---- 10060,10077 ----
- xpc.xp_context = EXPAND_FILES;
- if (p_wic)
- options += WILD_ICASE;
-! if (rettv->v_type == VAR_STRING)
-! rettv->vval.v_string = ExpandOne(&xpc, s, NULL,
-! options, WILD_ALL);
-! else if (rettv_list_alloc(rettv) != FAIL)
-! {
-! int i;
-!
-! ExpandOne(&xpc, s, NULL, options, WILD_ALL_KEEP);
-! for (i = 0; i < xpc.xp_numfiles; i++)
-! list_append_string(rettv->vval.v_list, xpc.xp_files[i], -1);
-! ExpandCleanup(&xpc);
-! }
- }
- else
- rettv->vval.v_string = NULL;
-***************
-*** 11833,11851 ****
- int error = FALSE;
-
- /* When the optional second argument is non-zero, don't remove matches
-! * 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;
---- 11863,11901 ----
- int error = FALSE;
-
- /* When the optional second argument is non-zero, don't remove matches
-! * for 'wildignore' and don't put matches for 'suffixes' at the end. */
- rettv->v_type = VAR_STRING;
-+ if (argvars[1].v_type != VAR_UNKNOWN)
-+ {
-+ if (get_tv_number_chk(&argvars[1], &error))
-+ options |= WILD_KEEP_ALL;
-+ if (argvars[2].v_type != VAR_UNKNOWN
-+ && get_tv_number_chk(&argvars[2], &error))
-+ {
-+ rettv->v_type = VAR_LIST;
-+ rettv->vval.v_list = NULL;
-+ }
-+ }
- if (!error)
- {
- ExpandInit(&xpc);
- xpc.xp_context = EXPAND_FILES;
- if (p_wic)
- options += WILD_ICASE;
-! if (rettv->v_type == VAR_STRING)
-! rettv->vval.v_string = ExpandOne(&xpc, get_tv_string(&argvars[0]),
- NULL, options, WILD_ALL);
-+ else if (rettv_list_alloc(rettv) != FAIL)
-+ {
-+ int i;
-+
-+ ExpandOne(&xpc, get_tv_string(&argvars[0]),
-+ NULL, options, WILD_ALL_KEEP);
-+ for (i = 0; i < xpc.xp_numfiles; i++)
-+ list_append_string(rettv->vval.v_list, xpc.xp_files[i], -1);
-+
-+ ExpandCleanup(&xpc);
-+ }
- }
- else
- rettv->vval.v_string = NULL;
-*** ../vim-7.3.464/src/ex_getln.c 2012-02-22 17:58:00.000000000 +0100
---- src/ex_getln.c 2012-03-07 19:07:01.000000000 +0100
-***************
-*** 3461,3466 ****
---- 3461,3467 ----
- * mode = WILD_PREV: use previous match in multiple match, wrap to first
- * mode = WILD_ALL: return all matches concatenated
- * mode = WILD_LONGEST: return longest matched part
-+ * mode = WILD_ALL_KEEP: get all matches, keep matches
- *
- * options = WILD_LIST_NOTFOUND: list entries without a match
- * options = WILD_HOME_REPLACE: do home_replace() for buffer names
-***************
-*** 3584,3590 ****
- /*
- * Check for matching suffixes in file names.
- */
-! if (mode != WILD_ALL && mode != WILD_LONGEST)
- {
- if (xp->xp_numfiles)
- non_suf_match = xp->xp_numfiles;
---- 3585,3592 ----
- /*
- * Check for matching suffixes in file names.
- */
-! if (mode != WILD_ALL && mode != WILD_ALL_KEEP
-! && mode != WILD_LONGEST)
- {
- if (xp->xp_numfiles)
- non_suf_match = xp->xp_numfiles;
-*** ../vim-7.3.464/src/vim.h 2011-07-27 17:31:42.000000000 +0200
---- src/vim.h 2012-03-07 19:03:43.000000000 +0100
-***************
-*** 794,799 ****
---- 794,800 ----
- #define WILD_PREV 5
- #define WILD_ALL 6
- #define WILD_LONGEST 7
-+ #define WILD_ALL_KEEP 8
-
- #define WILD_LIST_NOTFOUND 1
- #define WILD_HOME_REPLACE 2
-*** ../vim-7.3.464/src/version.c 2012-03-07 18:04:00.000000000 +0100
---- src/version.c 2012-03-07 19:14:39.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 465,
- /**/
-
---
-Although the scythe isn't pre-eminent among the weapons of war, anyone who
-has been on the wrong end of, say, a peasants' revolt will know that in
-skilled hands it is fearsome.
- -- (Terry Pratchett, Mort)
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.466
-Fcc: 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.466
-Problem: Get ml_get error when ":behave mswin" was used and selecting
- several lines. (A. Sinan Unur)
-Solution: Adjust the end of the operation. (Christian Brabandt)
-Files: src/ops.c
-
-
-*** ../vim-7.3.465/src/ops.c 2012-02-22 17:37:55.000000000 +0100
---- src/ops.c 2012-03-07 19:27:08.000000000 +0100
-***************
-*** 1957,1962 ****
---- 1957,1965 ----
- ++curwin->w_cursor.lnum;
- del_lines((long)(oap->line_count - 2), FALSE);
-
-+ if (delete_last_line)
-+ oap->end.lnum = curbuf->b_ml.ml_line_count;
-+
- n = (oap->end.col + 1 - !oap->inclusive);
- if (oap->inclusive && delete_last_line
- && n > (int)STRLEN(ml_get(oap->end.lnum)))
-*** ../vim-7.3.465/src/version.c 2012-03-07 19:16:49.000000000 +0100
---- src/version.c 2012-03-07 19:29:52.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 466,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-153. You find yourself staring at your "inbox" waiting for new e-mail
- to arrive.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.467
-Fcc: 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.467
-Problem: Cursor positioned wrong at the command line when regaining focus
- and using some input method.
-Solution: Do not position the cursor in command line mode.
-Files: src/mbyte.c
-
-
-*** ../vim-7.3.466/src/mbyte.c 2011-12-08 15:09:46.000000000 +0100
---- src/mbyte.c 2012-03-07 19:36:44.000000000 +0100
-***************
-*** 4504,4510 ****
- vgetc_busy = TRUE;
- showmode();
- vgetc_busy = old_vgetc_busy;
-! setcursor();
- out_flush();
- }
-
---- 4504,4511 ----
- vgetc_busy = TRUE;
- showmode();
- vgetc_busy = old_vgetc_busy;
-! if ((State & NORMAL) || (State & INSERT))
-! setcursor();
- out_flush();
- }
-
-*** ../vim-7.3.466/src/version.c 2012-03-07 19:30:32.000000000 +0100
---- src/version.c 2012-03-07 19:38:22.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 467,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-154. You fondle your mouse.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.468
-Fcc: 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.468
-Problem: For some compilers the error file is not easily readable.
-Solution: Use QuickFixCmdPre for more commands. (Marcin Szamotulski)
-Files: runtime/doc/autocmd.txt, src/quickfix.c
-
-
-*** ../vim-7.3.467/runtime/doc/autocmd.txt 2012-02-12 20:13:55.000000000 +0100
---- runtime/doc/autocmd.txt 2012-03-07 20:07:23.000000000 +0100
-***************
-*** 695,701 ****
- QuickFixCmdPre Before a quickfix command is run (|:make|,
- |:lmake|, |:grep|, |:lgrep|, |:grepadd|,
- |:lgrepadd|, |:vimgrep|, |:lvimgrep|,
-! |:vimgrepadd|, |:lvimgrepadd|, |:cscope|).
- The pattern is matched against the command
- being run. When |:grep| is used but 'grepprg'
- is set to "internal" it still matches "grep".
---- 699,708 ----
- QuickFixCmdPre Before a quickfix command is run (|:make|,
- |:lmake|, |:grep|, |:lgrep|, |:grepadd|,
- |:lgrepadd|, |:vimgrep|, |:lvimgrep|,
-! |:vimgrepadd|, |:lvimgrepadd|, |:cscope|,
-! |:cfile|, |:cgetfile|, |:caddfile|, |:lfile|,
-! |:lgetfile|, |:laddfile|, |:helpgrep|,
-! |:lhelpgrep|).
- The pattern is matched against the command
- being run. When |:grep| is used but 'grepprg'
- is set to "internal" it still matches "grep".
-***************
-*** 706,712 ****
- *QuickFixCmdPost*
- QuickFixCmdPost Like QuickFixCmdPre, but after a quickfix
- command is run, before jumping to the first
-! location. See |QuickFixCmdPost-example|.
- *RemoteReply*
- RemoteReply When a reply from a Vim that functions as
- server was received |server2client()|. The
---- 713,722 ----
- *QuickFixCmdPost*
- QuickFixCmdPost Like QuickFixCmdPre, but after a quickfix
- command is run, before jumping to the first
-! location. For |:cfile| and |:lfile| commands
-! it is run after error file is read and before
-! moving to the first error.
-! See |QuickFixCmdPost-example|.
- *RemoteReply*
- RemoteReply When a reply from a Vim that functions as
- server was received |server2client()|. The
-*** ../vim-7.3.467/src/quickfix.c 2012-02-22 14:58:24.000000000 +0100
---- src/quickfix.c 2012-03-07 20:10:07.000000000 +0100
-***************
-*** 2995,3005 ****
- {
- win_T *wp = NULL;
- qf_info_T *qi = &ql_info;
-
- if (eap->cmdidx == CMD_lfile || eap->cmdidx == CMD_lgetfile
-! || eap->cmdidx == CMD_laddfile)
- wp = curwin;
-
- #ifdef FEAT_BROWSE
- if (cmdmod.browse)
- {
---- 2995,3022 ----
- {
- win_T *wp = NULL;
- qf_info_T *qi = &ql_info;
-+ #ifdef FEAT_AUTOCMD
-+ char_u *au_name = NULL;
-+ #endif
-
- if (eap->cmdidx == CMD_lfile || eap->cmdidx == CMD_lgetfile
-! || eap->cmdidx == CMD_laddfile)
- wp = curwin;
-
-+ #ifdef FEAT_AUTOCMD
-+ switch (eap->cmdidx)
-+ {
-+ case CMD_cfile: au_name = (char_u *)"cfile"; break;
-+ case CMD_cgetfile: au_name = (char_u *)"cgetfile"; break;
-+ case CMD_caddfile: au_name = (char_u *)"caddfile"; break;
-+ case CMD_lfile: au_name = (char_u *)"lfile"; break;
-+ case CMD_lgetfile: au_name = (char_u *)"lgetfile"; break;
-+ case CMD_laddfile: au_name = (char_u *)"laddfile"; break;
-+ default: break;
-+ }
-+ if (au_name != NULL)
-+ apply_autocmds(EVENT_QUICKFIXCMDPRE, au_name, NULL, FALSE, curbuf);
-+ #endif
- #ifdef FEAT_BROWSE
- if (cmdmod.browse)
- {
-***************
-*** 3031,3040 ****
---- 3048,3069 ----
- && (eap->cmdidx == CMD_cfile
- || eap->cmdidx == CMD_lfile))
- {
-+ #ifdef FEAT_AUTOCMD
-+ if (au_name != NULL)
-+ apply_autocmds(EVENT_QUICKFIXCMDPOST, au_name, NULL, FALSE, curbuf);
-+ #endif
- if (wp != NULL)
- qi = GET_LOC_LIST(wp);
- qf_jump(qi, 0, 0, eap->forceit); /* display first error */
- }
-+
-+ else
-+ {
-+ #ifdef FEAT_AUTOCMD
-+ if (au_name != NULL)
-+ apply_autocmds(EVENT_QUICKFIXCMDPOST, au_name, NULL, FALSE, curbuf);
-+ #endif
-+ }
- }
-
- /*
-*** ../vim-7.3.467/src/version.c 2012-03-07 19:38:52.000000000 +0100
---- src/version.c 2012-03-07 20:11:54.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 468,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-155. You forget to eat because you're too busy 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.469
-Fcc: 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.469
-Problem: Compiler warning for unused argument without some features.
-Solution: Add UNUSED.
-Files: src/buffer.c
-
-
-*** ../vim-7.3.468/src/buffer.c 2012-02-22 19:13:00.000000000 +0100
---- src/buffer.c 2012-03-07 22:30:56.000000000 +0100
-***************
-*** 329,335 ****
- win_T *win; /* if not NULL, set b_last_cursor */
- buf_T *buf;
- int action;
-! int abort_if_last;
- {
- #ifdef FEAT_AUTOCMD
- int is_curbuf;
---- 329,335 ----
- win_T *win; /* if not NULL, set b_last_cursor */
- buf_T *buf;
- int action;
-! int abort_if_last UNUSED;
- {
- #ifdef FEAT_AUTOCMD
- int is_curbuf;
-*** ../vim-7.3.468/src/version.c 2012-03-07 20:13:44.000000000 +0100
---- src/version.c 2012-03-07 22:51:54.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 469,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-157. You fum through a magazine, you first check to see if it has a web
- address.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.470
-Fcc: 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.470
-Problem: Test 62 fails when compiled without GUI and X11.
-Solution: Don't test :drop when it is not supported.
-Files: src/testdir/test62.in
-
-
-*** ../vim-7.3.469/src/testdir/test62.in 2012-02-22 19:13:00.000000000 +0100
---- src/testdir/test62.in 2012-03-07 22:46:17.000000000 +0100
-***************
-*** 49,55 ****
- :tabclose
- :call append(line('$'), test_status)
- :"
-! :"
- :" Test for ":tab drop exist-file" to keep current window.
- :sp test1
- :tab drop test1
---- 49,55 ----
- :tabclose
- :call append(line('$'), test_status)
- :"
-! :if has('gui') || has('clientserver')
- :" Test for ":tab drop exist-file" to keep current window.
- :sp test1
- :tab drop test1
-***************
-*** 85,90 ****
---- 85,96 ----
- :tabclose
- :q
- :call append(line('$'), test_status)
-+ :else
-+ :" :drop not supported
-+ :call append(line('$'), 'tab drop 1: pass')
-+ :call append(line('$'), 'tab drop 2: pass')
-+ :call append(line('$'), 'tab drop 3: pass')
-+ :endif
- :"
- :"
- :/^Results/,$w! test.out
-*** ../vim-7.3.469/src/version.c 2012-03-07 22:52:30.000000000 +0100
---- src/version.c 2012-03-07 22:53:40.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 470,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-158. You get a tuner card so you can watch TV while surfing.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.471
-Fcc: 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.471
-Problem: Can't abort listing placed signs.
-Solution: Check "got_int". (Christian Brabandt)
-Files: src/buffer.c, src/ex_cmds.c
-
-
-*** ../vim-7.3.470/src/buffer.c 2012-03-07 22:52:30.000000000 +0100
---- src/buffer.c 2012-03-16 13:54:48.000000000 +0100
-***************
-*** 5557,5563 ****
- buf = firstbuf;
- else
- buf = rbuf;
-! while (buf != NULL)
- {
- if (buf->b_signlist != NULL)
- {
---- 5557,5563 ----
- buf = firstbuf;
- else
- buf = rbuf;
-! while (buf != NULL && !got_int)
- {
- if (buf->b_signlist != NULL)
- {
-***************
-*** 5565,5571 ****
- MSG_PUTS_ATTR(lbuf, hl_attr(HLF_D));
- msg_putchar('\n');
- }
-! for (p = buf->b_signlist; p != NULL; p = p->next)
- {
- vim_snprintf(lbuf, BUFSIZ, _(" line=%ld id=%d name=%s"),
- (long)p->lnum, p->id, sign_typenr2name(p->typenr));
---- 5565,5571 ----
- MSG_PUTS_ATTR(lbuf, hl_attr(HLF_D));
- msg_putchar('\n');
- }
-! for (p = buf->b_signlist; p != NULL && !got_int; p = p->next)
- {
- vim_snprintf(lbuf, BUFSIZ, _(" line=%ld id=%d name=%s"),
- (long)p->lnum, p->id, sign_typenr2name(p->typenr));
-*** ../vim-7.3.470/src/ex_cmds.c 2012-03-07 14:57:50.000000000 +0100
---- src/ex_cmds.c 2012-03-16 13:58:50.000000000 +0100
-***************
-*** 6729,6735 ****
- if (idx == SIGNCMD_LIST && *arg == NUL)
- {
- /* ":sign list": list all defined signs */
-! for (sp = first_sign; sp != NULL; sp = sp->sn_next)
- sign_list_defined(sp);
- }
- else if (*arg == NUL)
---- 6729,6735 ----
- if (idx == SIGNCMD_LIST && *arg == NUL)
- {
- /* ":sign list": list all defined signs */
-! for (sp = first_sign; sp != NULL && !got_int; sp = sp->sn_next)
- sign_list_defined(sp);
- }
- else if (*arg == NUL)
-*** ../vim-7.3.470/src/version.c 2012-03-07 22:55:17.000000000 +0100
---- src/version.c 2012-03-16 13:55:28.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 471,
- /**/
-
---
-Some of the well know MS-Windows errors:
- EMEMORY Memory error caused by..., eh...
- ELICENSE Your license has expired, give us more money!
- EMOUSE Mouse moved, reinstall Windows
- EILLEGAL Illegal error, you are not allowed to see this
- EVIRUS Undetectable virus found
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.472
-Fcc: 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.472
-Problem: Crash when using ":redraw" in a BufEnter autocommand and
- switching to another tab. (驼峰)
-Solution: Move triggering the the autocommands to after correcting the
- option values. Also check the row value to be out of bounds.
- (Christian Brabandt, Sergey Khorev)
-Files: src/screen.c, src/window.c
-
-
-*** ../vim-7.3.471/src/screen.c 2012-02-04 23:34:57.000000000 +0100
---- src/screen.c 2012-03-16 18:59:20.000000000 +0100
-***************
-*** 5371,5376 ****
---- 5371,5382 ----
- # define CHAR_CELLS 1
- #endif
-
-+ /* Check for illegal row and col, just in case. */
-+ if (row >= Rows)
-+ row = Rows - 1;
-+ if (endcol > Columns)
-+ endcol = Columns;
-+
- # ifdef FEAT_CLIPBOARD
- clip_may_clear_selection(row, row);
- # endif
-*** ../vim-7.3.471/src/window.c 2012-02-22 14:58:24.000000000 +0100
---- src/window.c 2012-03-16 18:43:01.000000000 +0100
-***************
-*** 3676,3688 ****
- win_enter_ext(tp->tp_curwin, FALSE, TRUE);
- prevwin = next_prevwin;
-
-- #ifdef FEAT_AUTOCMD
-- apply_autocmds(EVENT_TABENTER, NULL, NULL, FALSE, curbuf);
--
-- if (old_curbuf != curbuf)
-- apply_autocmds(EVENT_BUFENTER, NULL, NULL, FALSE, curbuf);
-- #endif
--
- last_status(FALSE); /* status line may appear or disappear */
- (void)win_comp_pos(); /* recompute w_winrow for all windows */
- must_redraw = CLEAR; /* need to redraw everything */
---- 3676,3681 ----
-***************
-*** 3712,3717 ****
---- 3705,3718 ----
- gui_may_update_scrollbars();
- #endif
-
-+ #ifdef FEAT_AUTOCMD
-+ /* Apply autocommands after updating the display, when 'rows' and
-+ * 'columns' have been set correctly. */
-+ apply_autocmds(EVENT_TABENTER, NULL, NULL, FALSE, curbuf);
-+ if (old_curbuf != curbuf)
-+ apply_autocmds(EVENT_BUFENTER, NULL, NULL, FALSE, curbuf);
-+ #endif
-+
- redraw_all_later(CLEAR);
- }
-
-*** ../vim-7.3.471/src/version.c 2012-03-16 14:32:10.000000000 +0100
---- src/version.c 2012-03-16 19:02:53.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 472,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-200. You really believe in the concept of a "paperless" office.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.473
-Fcc: 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.473
-Problem: 'cursorbind' does not work correctly in combination with
- 'virtualedit' set to "all".
-Solution: Copy coladd. (Gary Johnson)
-Files: src/move.c
-
-
-*** ../vim-7.3.472/src/move.c 2012-02-04 23:34:57.000000000 +0100
---- src/move.c 2012-03-16 19:20:57.000000000 +0100
-***************
-*** 2843,2849 ****
- do_check_cursorbind()
- {
- linenr_T line = curwin->w_cursor.lnum;
-! colnr_T col = curwin->w_cursor.col;
- win_T *old_curwin = curwin;
- buf_T *old_curbuf = curbuf;
- int restart_edit_save;
---- 2843,2852 ----
- do_check_cursorbind()
- {
- linenr_T line = curwin->w_cursor.lnum;
-! colnr_T col = curwin->w_cursor.col;
-! # ifdef FEAT_VIRTUALEDIT
-! colnr_T coladd = curwin->w_cursor.coladd;
-! # endif
- win_T *old_curwin = curwin;
- buf_T *old_curbuf = curbuf;
- int restart_edit_save;
-***************
-*** 2875,2880 ****
---- 2878,2886 ----
- # endif
- curwin->w_cursor.lnum = line;
- curwin->w_cursor.col = col;
-+ # ifdef FEAT_VIRTUALEDIT
-+ curwin->w_cursor.coladd = coladd;
-+ # endif
-
- /* Make sure the cursor is in a valid position. Temporarily set
- * "restart_edit" to allow the cursor to be beyond the EOL. */
-*** ../vim-7.3.472/src/version.c 2012-03-16 19:07:54.000000000 +0100
---- src/version.c 2012-03-16 19:24:06.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 473,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-201. When somebody asks you where you are, you tell them in which chat room.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.474
-Fcc: 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.474
-Problem: Perl build with gcc 4 fails.
-Solution: Remove XS() statements. (Yasuhiro Matsumoto)
-Files: src/if_perl.xs
-
-
-*** ../vim-7.3.473/src/if_perl.xs 2012-02-12 00:31:47.000000000 +0100
---- src/if_perl.xs 2012-03-16 19:33:23.000000000 +0100
-***************
-*** 913,936 ****
- win_T *win_find_nr(int n) { return curwin; }
- #endif
-
-- XS(XS_VIM_Msg);
-- XS(XS_VIM_SetOption);
-- XS(XS_VIM_DoCommand);
-- XS(XS_VIM_Eval);
-- XS(XS_VIM_Buffers);
-- XS(XS_VIM_Windows);
-- XS(XS_VIWIN_DESTROY);
-- XS(XS_VIWIN_Buffer);
-- XS(XS_VIWIN_SetHeight);
-- XS(XS_VIWIN_Cursor);
-- XS(XS_VIBUF_DESTROY);
-- XS(XS_VIBUF_Name);
-- XS(XS_VIBUF_Number);
-- XS(XS_VIBUF_Count);
-- XS(XS_VIBUF_Get);
-- XS(XS_VIBUF_Set);
-- XS(XS_VIBUF_Delete);
-- XS(XS_VIBUF_Append);
- XS(boot_VIM);
-
- static void
---- 913,918 ----
-*** ../vim-7.3.473/src/version.c 2012-03-16 19:24:21.000000000 +0100
---- src/version.c 2012-03-16 19:28:03.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 474,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-202. You're amazed to find out Spam is a food.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.475
-Fcc: 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.475
-Problem: In a terminal with few colors the omnicomplete menu may be hard to
- see when using the default colors.
-Solution: Use more explicit colors. (suggested by Alex Henrie)
-Files: src/syntax.c
-
-
-*** ../vim-7.3.474/src/syntax.c 2012-01-10 22:26:12.000000000 +0100
---- src/syntax.c 2012-03-16 20:14:22.000000000 +0100
-***************
-*** 6516,6523 ****
- "DiffText term=reverse cterm=bold ctermbg=Red gui=bold guibg=Red"),
- #endif
- #ifdef FEAT_INS_EXPAND
-- CENT("PmenuThumb cterm=reverse",
-- "PmenuThumb cterm=reverse gui=reverse"),
- CENT("PmenuSbar ctermbg=Grey",
- "PmenuSbar ctermbg=Grey guibg=Grey"),
- #endif
---- 6516,6521 ----
-***************
-*** 6557,6566 ****
- "SpellLocal term=underline ctermbg=Cyan guisp=DarkCyan gui=undercurl"),
- #endif
- #ifdef FEAT_INS_EXPAND
-! CENT("Pmenu ctermbg=LightMagenta",
-! "Pmenu ctermbg=LightMagenta guibg=LightMagenta"),
-! CENT("PmenuSel ctermbg=LightGrey",
-! "PmenuSel ctermbg=LightGrey guibg=Grey"),
- #endif
- CENT("SpecialKey term=bold ctermfg=DarkBlue",
- "SpecialKey term=bold ctermfg=DarkBlue guifg=Blue"),
---- 6555,6566 ----
- "SpellLocal term=underline ctermbg=Cyan guisp=DarkCyan gui=undercurl"),
- #endif
- #ifdef FEAT_INS_EXPAND
-! CENT("PmenuThumb ctermbg=Black",
-! "PmenuThumb ctermbg=Black guibg=Black"),
-! CENT("Pmenu ctermbg=LightMagenta ctermfg=Black",
-! "Pmenu ctermbg=LightMagenta ctermfg=Black guibg=LightMagenta"),
-! CENT("PmenuSel ctermbg=LightGrey ctermfg=Black",
-! "PmenuSel ctermbg=LightGrey ctermfg=Black guibg=Grey"),
- #endif
- CENT("SpecialKey term=bold ctermfg=DarkBlue",
- "SpecialKey term=bold ctermfg=DarkBlue guifg=Blue"),
-***************
-*** 6645,6654 ****
- "SpellLocal term=underline ctermbg=Cyan guisp=Cyan gui=undercurl"),
- #endif
- #ifdef FEAT_INS_EXPAND
-! CENT("Pmenu ctermbg=Magenta",
-! "Pmenu ctermbg=Magenta guibg=Magenta"),
-! CENT("PmenuSel ctermbg=DarkGrey",
-! "PmenuSel ctermbg=DarkGrey guibg=DarkGrey"),
- #endif
- CENT("Title term=bold ctermfg=LightMagenta",
- "Title term=bold ctermfg=LightMagenta gui=bold guifg=Magenta"),
---- 6645,6656 ----
- "SpellLocal term=underline ctermbg=Cyan guisp=Cyan gui=undercurl"),
- #endif
- #ifdef FEAT_INS_EXPAND
-! CENT("PmenuThumb ctermbg=White",
-! "PmenuThumb ctermbg=White guibg=White"),
-! CENT("Pmenu ctermbg=Magenta ctermfg=Black",
-! "Pmenu ctermbg=Magenta ctermfg=Black guibg=Magenta"),
-! CENT("PmenuSel ctermbg=DarkGrey ctermfg=Black",
-! "PmenuSel ctermbg=DarkGrey ctermfg=Black guibg=DarkGrey"),
- #endif
- CENT("Title term=bold ctermfg=LightMagenta",
- "Title term=bold ctermfg=LightMagenta gui=bold guifg=Magenta"),
-*** ../vim-7.3.474/src/version.c 2012-03-16 19:34:43.000000000 +0100
---- src/version.c 2012-03-16 20:05:35.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 475,
- /**/
-
---
-Spam seems to be something useful to novices. Later you realize that
-it's a bunch of indigestable junk that only clogs your system.
-Applies to both the food and the e-mail!
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.476
-Fcc: 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.476
-Problem: When selecting a block, using "$" to include the end of each line
- and using "A" and typing a backspace strange things happen.
- (Yuangchen Xie)
-Solution: Avoid using a negative length. (Christian Brabandt)
-Files: src/ops.c
-
-
-*** ../vim-7.3.475/src/ops.c 2012-03-07 19:30:32.000000000 +0100
---- src/ops.c 2012-03-23 12:22:36.000000000 +0100
-***************
-*** 2602,2608 ****
- firstline = ml_get(oap->start.lnum) + bd.textcol;
- if (oap->op_type == OP_APPEND)
- firstline += bd.textlen;
-! if ((ins_len = (long)STRLEN(firstline) - pre_textlen) > 0)
- {
- ins_text = vim_strnsave(firstline, (int)ins_len);
- if (ins_text != NULL)
---- 2602,2609 ----
- firstline = ml_get(oap->start.lnum) + bd.textcol;
- if (oap->op_type == OP_APPEND)
- firstline += bd.textlen;
-! if (pre_textlen >= 0
-! && (ins_len = (long)STRLEN(firstline) - pre_textlen) > 0)
- {
- ins_text = vim_strnsave(firstline, (int)ins_len);
- if (ins_text != NULL)
-*** ../vim-7.3.475/src/version.c 2012-03-16 20:16:42.000000000 +0100
---- src/version.c 2012-03-23 14:14:49.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 476,
- /**/
-
---
-"Marriage is a wonderful institution...
-but who wants to live in an institution?"
- - Groucho Marx
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.477
-Fcc: 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.477
-Problem: Using ":echo" to output enough lines to scroll, then using "j" and
- "k" at the more prompt, displays the command on top of the output.
- (Marcin Szamotulski)
-Solution: Put the output below the command. (Christian Brabandt)
-Files: src/eval.c
-
-
-*** ../vim-7.3.476/src/eval.c 2012-03-07 19:16:49.000000000 +0100
---- src/eval.c 2012-03-23 15:11:30.000000000 +0100
-***************
-*** 20492,20498 ****
---- 20492,20503 ----
- /* Call msg_start() after eval1(), evaluating the expression
- * may cause a message to appear. */
- if (eap->cmdidx == CMD_echo)
-+ {
-+ /* Put the output below the command, makes scrolling back
-+ * at more prompt work. */
-+ msg_didout = TRUE;
- msg_start();
-+ }
- }
- else if (eap->cmdidx == CMD_echo)
- msg_puts_attr((char_u *)" ", echo_attr);
-*** ../vim-7.3.476/src/version.c 2012-03-23 14:16:19.000000000 +0100
---- src/version.c 2012-03-23 15:13:58.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 477,
- /**/
-
---
-"Marriage is when a man and woman become as one; the trouble starts
-when they try to decide which one"
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.478
-Fcc: 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.478
-Problem: Memory leak using the ':rv!' command when reading dictionary or
- list global variables i.e. with 'viminfo' containing !.
-Solution: Free the typeval. (Dominique Pelle)
-Files: src/eval.c
-
-
-*** ../vim-7.3.477/src/eval.c 2012-03-23 15:18:20.000000000 +0100
---- src/eval.c 2012-03-23 15:28:42.000000000 +0100
-***************
-*** 22976,22981 ****
---- 22976,22982 ----
- {
- vim_free(tv.vval.v_string);
- tv = *etv;
-+ vim_free(etv);
- }
- }
-
-*** ../vim-7.3.477/src/version.c 2012-03-23 15:18:20.000000000 +0100
---- src/version.c 2012-03-23 15:29:22.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 478,
- /**/
-
---
-"Marriage is the process of finding out what kind of man your wife
-would have preferred"
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.479
-Fcc: 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.479
-Problem: When 'cursorline' is set the line number highlighting can't be set
- separately.
-Solution: Add "CursorLineNr". (Howard Buchholz)
-Files: src/option.c, src/screen.c, src/syntax.c, src/vim.h
-
-
-*** ../vim-7.3.478/src/option.c 2012-02-29 13:51:32.000000000 +0100
---- src/option.c 2012-03-23 15:44:57.000000000 +0100
-***************
-*** 460,468 ****
- #if defined(FEAT_DIFF) || defined(FEAT_FOLDING) || defined(FEAT_SPELL) \
- || defined(FEAT_VERTSPLIT) || defined(FEAT_CLIPBOARD) \
- || defined(FEAT_INS_EXPAND) || defined(FEAT_SYN_HL) || defined(FEAT_CONCEAL)
-! # define HIGHLIGHT_INIT "8:SpecialKey,@:NonText,d:Directory,e:ErrorMsg,i:IncSearch,l:Search,m:MoreMsg,M:ModeMsg,n:LineNr,r:Question,s:StatusLine,S:StatusLineNC,c:VertSplit,t:Title,v:Visual,V:VisualNOS,w:WarningMsg,W:WildMenu,f:Folded,F:FoldColumn,A:DiffAdd,C:DiffChange,D:DiffDelete,T:DiffText,>:SignColumn,-:Conceal,B:SpellBad,P:SpellCap,R:SpellRare,L:SpellLocal,+:Pmenu,=:PmenuSel,x:PmenuSbar,X:PmenuThumb,*:TabLine,#:TabLineSel,_:TabLineFill,!:CursorColumn,.:CursorLine,o:ColorColumn"
- #else
-! # define HIGHLIGHT_INIT "8:SpecialKey,@:NonText,d:Directory,e:ErrorMsg,i:IncSearch,l:Search,m:MoreMsg,M:ModeMsg,n:LineNr,r:Question,s:StatusLine,S:StatusLineNC,t:Title,v:Visual,w:WarningMsg,W:WildMenu,>:SignColumn,*:TabLine,#:TabLineSel,_:TabLineFill"
- #endif
-
- /*
---- 460,468 ----
- #if defined(FEAT_DIFF) || defined(FEAT_FOLDING) || defined(FEAT_SPELL) \
- || defined(FEAT_VERTSPLIT) || defined(FEAT_CLIPBOARD) \
- || defined(FEAT_INS_EXPAND) || defined(FEAT_SYN_HL) || defined(FEAT_CONCEAL)
-! # define HIGHLIGHT_INIT "8:SpecialKey,@:NonText,d:Directory,e:ErrorMsg,i:IncSearch,l:Search,m:MoreMsg,M:ModeMsg,n:LineNr,N:CursorLineNr,r:Question,s:StatusLine,S:StatusLineNC,c:VertSplit,t:Title,v:Visual,V:VisualNOS,w:WarningMsg,W:WildMenu,f:Folded,F:FoldColumn,A:DiffAdd,C:DiffChange,D:DiffDelete,T:DiffText,>:SignColumn,-:Conceal,B:SpellBad,P:SpellCap,R:SpellRare,L:SpellLocal,+:Pmenu,=:PmenuSel,x:PmenuSbar,X:PmenuThumb,*:TabLine,#:TabLineSel,_:TabLineFill,!:CursorColumn,.:CursorLine,o:ColorColumn"
- #else
-! # define HIGHLIGHT_INIT "8:SpecialKey,@:NonText,d:Directory,e:ErrorMsg,i:IncSearch,l:Search,m:MoreMsg,M:ModeMsg,n:LineNr,N:CursorLineNr,r:Question,s:StatusLine,S:StatusLineNC,t:Title,v:Visual,w:WarningMsg,W:WildMenu,>:SignColumn,*:TabLine,#:TabLineSel,_:TabLineFill"
- #endif
-
- /*
-*** ../vim-7.3.478/src/screen.c 2012-03-16 19:07:54.000000000 +0100
---- src/screen.c 2012-03-23 16:09:15.000000000 +0100
-***************
-*** 3501,3509 ****
- char_attr = hl_attr(HLF_N);
- #ifdef FEAT_SYN_HL
- /* When 'cursorline' is set highlight the line number of
-! * the current line differently. */
- if (wp->w_p_cul && lnum == wp->w_cursor.lnum)
-! char_attr = hl_combine_attr(hl_attr(HLF_CUL), char_attr);
- #endif
- }
- }
---- 3501,3511 ----
- char_attr = hl_attr(HLF_N);
- #ifdef FEAT_SYN_HL
- /* When 'cursorline' is set highlight the line number of
-! * the current line differently.
-! * TODO: Can we use CursorLine instead of CursorLineNr
-! * when CursorLineNr isn't set? */
- if (wp->w_p_cul && lnum == wp->w_cursor.lnum)
-! char_attr = hl_attr(HLF_CLN);
- #endif
- }
- }
-*** ../vim-7.3.478/src/syntax.c 2012-03-16 20:16:42.000000000 +0100
---- src/syntax.c 2012-03-23 16:23:57.000000000 +0100
-***************
-*** 6538,6543 ****
---- 6538,6545 ----
- "Directory term=bold ctermfg=DarkBlue guifg=Blue"),
- CENT("LineNr term=underline ctermfg=Brown",
- "LineNr term=underline ctermfg=Brown guifg=Brown"),
-+ CENT("CursorLineNr term=bold ctermfg=Brown",
-+ "CursorLineNr term=bold ctermfg=Brown gui=bold guifg=Brown"),
- CENT("MoreMsg term=bold ctermfg=DarkGreen",
- "MoreMsg term=bold ctermfg=DarkGreen gui=bold guifg=SeaGreen"),
- CENT("Question term=standout ctermfg=DarkGreen",
-***************
-*** 6626,6631 ****
---- 6628,6635 ----
- "Directory term=bold ctermfg=LightCyan guifg=Cyan"),
- CENT("LineNr term=underline ctermfg=Yellow",
- "LineNr term=underline ctermfg=Yellow guifg=Yellow"),
-+ CENT("CursorLineNr term=bold ctermfg=Yellow",
-+ "CursorLineNr term=bold ctermfg=Yellow gui=bold guifg=Yellow"),
- CENT("MoreMsg term=bold ctermfg=LightGreen",
- "MoreMsg term=bold ctermfg=LightGreen gui=bold guifg=SeaGreen"),
- CENT("Question term=standout ctermfg=LightGreen",
-*** ../vim-7.3.478/src/vim.h 2012-03-07 19:16:49.000000000 +0100
---- src/vim.h 2012-03-23 15:44:57.000000000 +0100
-***************
-*** 1318,1323 ****
---- 1318,1324 ----
- , HLF_M /* "--More--" message */
- , HLF_CM /* Mode (e.g., "-- INSERT --") */
- , HLF_N /* line number for ":number" and ":#" commands */
-+ , HLF_CLN /* current line number */
- , HLF_R /* return to continue message and yes/no questions */
- , HLF_S /* status lines */
- , HLF_SNC /* status lines of not-current windows */
-***************
-*** 1355,1361 ****
- /* The HL_FLAGS must be in the same order as the HLF_ enums!
- * When changing this also adjust the default for 'highlight'. */
- #define HL_FLAGS {'8', '@', 'd', 'e', 'h', 'i', 'l', 'm', 'M', \
-! 'n', 'r', 's', 'S', 'c', 't', 'v', 'V', 'w', 'W', \
- 'f', 'F', 'A', 'C', 'D', 'T', '-', '>', \
- 'B', 'P', 'R', 'L', \
- '+', '=', 'x', 'X', '*', '#', '_', '!', '.', 'o'}
---- 1356,1362 ----
- /* The HL_FLAGS must be in the same order as the HLF_ enums!
- * When changing this also adjust the default for 'highlight'. */
- #define HL_FLAGS {'8', '@', 'd', 'e', 'h', 'i', 'l', 'm', 'M', \
-! 'n', 'N', 'r', 's', 'S', 'c', 't', 'v', 'V', 'w', 'W', \
- 'f', 'F', 'A', 'C', 'D', 'T', '-', '>', \
- 'B', 'P', 'R', 'L', \
- '+', '=', 'x', 'X', '*', '#', '_', '!', '.', 'o'}
-*** ../vim-7.3.478/src/version.c 2012-03-23 15:36:57.000000000 +0100
---- src/version.c 2012-03-23 16:16:41.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 479,
- /**/
-
---
-If you're sending someone Styrofoam, what do you pack it in?
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.480
-Fcc: 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.480
-Problem: When using ":qa" and there is a changed buffer picking the buffer
- to jump to is not very good.
-Solution: Consider current and other tab pages. (Hirohito Higashi)
-Files: src/ex_cmds2.c
-
-
-*** ../vim-7.3.479/src/ex_cmds2.c 2012-02-22 18:29:29.000000000 +0100
---- src/ex_cmds2.c 2012-03-23 17:01:31.000000000 +0100
-***************
-*** 1569,1574 ****
---- 1569,1594 ----
- || forceit);
- }
-
-+ static void add_bufnum __ARGS((int *bufnrs, int *bufnump, int nr));
-+
-+ /*
-+ * Add a buffer number to "bufnrs", unless it's already there.
-+ */
-+ static void
-+ add_bufnum(bufnrs, bufnump, nr)
-+ int *bufnrs;
-+ int *bufnump;
-+ int nr;
-+ {
-+ int i;
-+
-+ for (i = 0; i < *bufnump; ++i)
-+ if (bufnrs[i] == nr)
-+ return;
-+ bufnrs[*bufnump] = nr;
-+ *bufnump = *bufnump + 1;
-+ }
-+
- /*
- * Return TRUE if any buffer was changed and cannot be abandoned.
- * That changed buffer becomes the current buffer.
-***************
-*** 1577,1608 ****
- check_changed_any(hidden)
- int hidden; /* Only check hidden buffers */
- {
- buf_T *buf;
- int save;
- #ifdef FEAT_WINDOWS
- win_T *wp;
- #endif
-
-! for (;;)
- {
-! /* check curbuf first: if it was changed we can't abandon it */
-! if (!hidden && curbufIsChanged())
-! buf = curbuf;
-! else
- {
-! for (buf = firstbuf; buf != NULL; buf = buf->b_next)
-! if ((!hidden || buf->b_nwindows == 0) && bufIsChanged(buf))
-! break;
- }
-- if (buf == NULL) /* No buffers changed */
-- return FALSE;
--
-- /* Try auto-writing the buffer. If this fails but the buffer no
-- * longer exists it's not changed, that's OK. */
-- if (check_changed(buf, p_awa, TRUE, FALSE, TRUE) && buf_valid(buf))
-- break; /* didn't save - still changes */
- }
-
- exiting = FALSE;
- #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
- /*
---- 1597,1660 ----
- check_changed_any(hidden)
- int hidden; /* Only check hidden buffers */
- {
-+ int ret = FALSE;
- buf_T *buf;
- int save;
-+ int i;
-+ int bufnum = 0;
-+ int bufcount = 0;
-+ int *bufnrs;
- #ifdef FEAT_WINDOWS
-+ tabpage_T *tp;
- win_T *wp;
- #endif
-
-! for (buf = firstbuf; buf != NULL; buf = buf->b_next)
-! ++bufcount;
-!
-! if (bufcount == 0)
-! return FALSE;
-!
-! bufnrs = (int *)alloc(sizeof(int) * bufcount);
-! if (bufnrs == NULL)
-! return FALSE;
-!
-! /* curbuf */
-! bufnrs[bufnum++] = curbuf->b_fnum;
-! #ifdef FEAT_WINDOWS
-! /* buf in curtab */
-! FOR_ALL_WINDOWS(wp)
-! if (wp->w_buffer != curbuf)
-! add_bufnum(bufnrs, &bufnum, wp->w_buffer->b_fnum);
-!
-! /* buf in other tab */
-! for (tp = first_tabpage; tp != NULL; tp = tp->tp_next)
-! if (tp != curtab)
-! for (wp = tp->tp_firstwin; wp != NULL; wp = wp->w_next)
-! add_bufnum(bufnrs, &bufnum, wp->w_buffer->b_fnum);
-! #endif
-! /* any other buf */
-! for (buf = firstbuf; buf != NULL; buf = buf->b_next)
-! add_bufnum(bufnrs, &bufnum, buf->b_fnum);
-!
-! for (i = 0; i < bufnum; ++i)
- {
-! buf = buflist_findnr(bufnrs[i]);
-! if (buf == NULL)
-! continue;
-! if ((!hidden || buf->b_nwindows == 0) && bufIsChanged(buf))
- {
-! /* Try auto-writing the buffer. If this fails but the buffer no
-! * longer exists it's not changed, that's OK. */
-! if (check_changed(buf, p_awa, TRUE, FALSE, TRUE) && buf_valid(buf))
-! break; /* didn't save - still changes */
- }
- }
-
-+ if (i >= bufnum)
-+ goto theend;
-+
-+ ret = TRUE;
- exiting = FALSE;
- #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
- /*
-***************
-*** 1635,1658 ****
- #ifdef FEAT_WINDOWS
- /* Try to find a window that contains the buffer. */
- if (buf != curbuf)
-! for (wp = firstwin; wp != NULL; wp = wp->w_next)
- if (wp->w_buffer == buf)
- {
-! win_goto(wp);
- # ifdef FEAT_AUTOCMD
- /* Paranoia: did autocms wipe out the buffer with changes? */
- if (!buf_valid(buf))
-! return TRUE;
- # endif
-! break;
- }
- #endif
-
- /* Open the changed buffer in the current window. */
- if (buf != curbuf)
- set_curbuf(buf, DOBUF_GOTO);
-
-! return TRUE;
- }
-
- /*
---- 1687,1715 ----
- #ifdef FEAT_WINDOWS
- /* Try to find a window that contains the buffer. */
- if (buf != curbuf)
-! FOR_ALL_TAB_WINDOWS(tp, wp)
- if (wp->w_buffer == buf)
- {
-! goto_tabpage_win(tp, wp);
- # ifdef FEAT_AUTOCMD
- /* Paranoia: did autocms wipe out the buffer with changes? */
- if (!buf_valid(buf))
-! {
-! goto theend;
-! }
- # endif
-! goto buf_found;
- }
-+ buf_found:
- #endif
-
- /* Open the changed buffer in the current window. */
- if (buf != curbuf)
- set_curbuf(buf, DOBUF_GOTO);
-
-! theend:
-! vim_free(bufnrs);
-! return ret;
- }
-
- /*
-***************
-*** 3274,3280 ****
- home_replace(NULL, SCRIPT_ITEM(i).sn_name,
- NameBuff, MAXPATHL, TRUE);
- smsg((char_u *)"%3d: %s", i, NameBuff);
-! }
- }
-
- # if defined(BACKSLASH_IN_FILENAME) || defined(PROTO)
---- 3331,3337 ----
- home_replace(NULL, SCRIPT_ITEM(i).sn_name,
- NameBuff, MAXPATHL, TRUE);
- smsg((char_u *)"%3d: %s", i, NameBuff);
-! }
- }
-
- # if defined(BACKSLASH_IN_FILENAME) || defined(PROTO)
-*** ../vim-7.3.479/src/version.c 2012-03-23 16:25:13.000000000 +0100
---- src/version.c 2012-03-23 16:48:06.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 480,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-243. You unsuccessfully try to download a pizza from www.dominos.com.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.481
-Fcc: 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.481
-Problem: Changing 'virtualedit' in an operator function to "all" does not
- have the desired effect. (Aaron Bohannon)
-Solution: Save, reset and restore virtual_op when executing an operator
- function.
-Files: src/normal.c
-
-
-*** ../vim-7.3.480/src/normal.c 2012-02-05 01:18:41.000000000 +0100
---- src/normal.c 2012-03-28 12:59:46.000000000 +0200
-***************
-*** 2279,2284 ****
---- 2279,2285 ----
- {
- #ifdef FEAT_EVAL
- char_u *(argv[1]);
-+ int save_virtual_op = virtual_op;
-
- if (*p_opfunc == NUL)
- EMSG(_("E774: 'operatorfunc' is empty"));
-***************
-*** 2297,2303 ****
---- 2298,2311 ----
- argv[0] = (char_u *)"line";
- else
- argv[0] = (char_u *)"char";
-+
-+ /* Reset virtual_op so that 'virtualedit' can be changed in the
-+ * function. */
-+ virtual_op = MAYBE;
-+
- (void)call_func_retnr(p_opfunc, 1, argv, FALSE);
-+
-+ virtual_op = save_virtual_op;
- }
- #else
- EMSG(_("E775: Eval feature not available"));
-*** ../vim-7.3.480/src/version.c 2012-03-23 18:39:10.000000000 +0100
---- src/version.c 2012-03-28 12:50:20.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 481,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-269. You wonder how you can make your dustbin produce Sesame Street's
- Oscar's the Garbage Monster song when you empty 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.482
-Fcc: 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.482
-Problem: With 'cursorbind' set moving up/down does not always keep the same
- column.
-Solution: Set curswant appropriately. (Gary Johnson)
-Files: src/move.c
-
-
-*** ../vim-7.3.481/src/move.c 2012-03-16 19:24:21.000000000 +0100
---- src/move.c 2012-03-28 14:16:02.000000000 +0200
-***************
-*** 2847,2852 ****
---- 2847,2854 ----
- # ifdef FEAT_VIRTUALEDIT
- colnr_T coladd = curwin->w_cursor.coladd;
- # endif
-+ colnr_T curswant = curwin->w_curswant;
-+ int set_curswant = curwin->w_set_curswant;
- win_T *old_curwin = curwin;
- buf_T *old_curbuf = curbuf;
- int restart_edit_save;
-***************
-*** 2881,2886 ****
---- 2883,2890 ----
- # ifdef FEAT_VIRTUALEDIT
- curwin->w_cursor.coladd = coladd;
- # endif
-+ curwin->w_curswant = curswant;
-+ curwin->w_set_curswant = set_curswant;
-
- /* Make sure the cursor is in a valid position. Temporarily set
- * "restart_edit" to allow the cursor to be beyond the EOL. */
-*** ../vim-7.3.481/src/version.c 2012-03-28 12:59:53.000000000 +0200
---- src/version.c 2012-03-28 14:15:56.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 482,
- /**/
-
---
-Women are probably the main cause of free software starvation.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.483
-Fcc: 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.483 (after 7.3.477)
-Problem: More prompt shows up too often.
-Solution: Instead of adding a line break, only start a new line in the
- message history. (Christian Brabandt)
-Files: src/eval.c, src/message.c, src/proto/message.pro
-
-
-*** ../vim-7.3.482/src/eval.c 2012-03-23 15:36:57.000000000 +0100
---- src/eval.c 2012-03-28 16:41:03.000000000 +0200
-***************
-*** 20493,20501 ****
- * may cause a message to appear. */
- if (eap->cmdidx == CMD_echo)
- {
-! /* Put the output below the command, makes scrolling back
-! * at more prompt work. */
-! msg_didout = TRUE;
- msg_start();
- }
- }
---- 20493,20502 ----
- * may cause a message to appear. */
- if (eap->cmdidx == CMD_echo)
- {
-! /* Mark the saved text as finishing the line, so that what
-! * follows is displayed on a new line when scrolling back
-! * at the more prompt. */
-! msg_sb_eol();
- msg_start();
- }
- }
-*** ../vim-7.3.482/src/message.c 2012-01-26 13:01:54.000000000 +0100
---- src/message.c 2012-03-28 16:35:26.000000000 +0200
-***************
-*** 2348,2353 ****
---- 2348,2363 ----
- }
-
- /*
-+ * Mark the last message chunk as finishing the line.
-+ */
-+ void
-+ msg_sb_eol()
-+ {
-+ if (last_msgchunk != NULL)
-+ last_msgchunk->sb_eol = TRUE;
-+ }
-+
-+ /*
- * Display a screen line from previously displayed text at row "row".
- * Returns a pointer to the text for the next line (can be NULL).
- */
-*** ../vim-7.3.482/src/proto/message.pro 2012-01-20 20:44:38.000000000 +0100
---- src/proto/message.pro 2012-03-28 16:35:33.000000000 +0200
-***************
-*** 45,50 ****
---- 45,51 ----
- void may_clear_sb_text __ARGS((void));
- void clear_sb_text __ARGS((void));
- void show_sb_text __ARGS((void));
-+ void msg_sb_eol __ARGS((void));
- int msg_use_printf __ARGS((void));
- void mch_errmsg __ARGS((char *str));
- void mch_msg __ARGS((char *str));
-*** ../vim-7.3.482/src/version.c 2012-03-28 14:19:46.000000000 +0200
---- src/version.c 2012-03-28 16:48:53.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 483,
- /**/
-
---
- 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/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.484
-Fcc: 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.484
-Problem: The -E and --echo-wid command line arguments are not mentioned in
- "vim --help".
-Solution: Add the help lines. (Dominique Pelle)
-Files: src/main.c
-
-
-*** ../vim-7.3.483/src/main.c 2012-02-12 01:55:50.000000000 +0100
---- src/main.c 2012-03-28 16:55:03.000000000 +0200
-***************
-*** 3181,3186 ****
---- 3181,3187 ----
- #endif
- main_msg(_("-v\t\t\tVi mode (like \"vi\")"));
- main_msg(_("-e\t\t\tEx mode (like \"ex\")"));
-+ main_msg(_("-E\t\t\tImproved Ex mode"));
- main_msg(_("-s\t\t\tSilent (batch) mode (only for \"ex\")"));
- #ifdef FEAT_DIFF
- main_msg(_("-d\t\t\tDiff mode (like \"vimdiff\")"));
-***************
-*** 3304,3309 ****
---- 3305,3311 ----
- main_msg(_("-display <display>\tRun vim on <display> (also: --display)"));
- main_msg(_("--role <role>\tSet a unique role to identify the main window"));
- main_msg(_("--socketid <xid>\tOpen Vim inside another GTK widget"));
-+ main_msg(_("--echo-wid\t\tMake gvim echo the Window ID on stdout"));
- #endif
- #ifdef FEAT_GUI_W32
- main_msg(_("-P <parent title>\tOpen Vim inside parent application"));
-*** ../vim-7.3.483/src/version.c 2012-03-28 16:49:25.000000000 +0200
---- src/version.c 2012-03-28 17:10:08.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 484,
- /**/
-
---
- 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/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.485
-Fcc: 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.485
-Problem: When building Vim LDFLAGS isn't passed on to building xxd.
-Solution: Pass the LDFLAGS value. (James McCoy)
-Files: src/Makefile
-
-
-*** ../vim-7.3.484/src/Makefile 2011-12-14 20:51:19.000000000 +0100
---- src/Makefile 2012-03-28 17:16:06.000000000 +0200
-***************
-*** 1720,1726 ****
- sh $(srcdir)/link.sh
-
- xxd/xxd$(EXEEXT): xxd/xxd.c
-! cd xxd; CC="$(CC)" CFLAGS="$(CPPFLAGS) $(CFLAGS)" \
- $(MAKE) -f Makefile
-
- # Build the language specific files if they were unpacked.
---- 1720,1726 ----
- sh $(srcdir)/link.sh
-
- xxd/xxd$(EXEEXT): xxd/xxd.c
-! cd xxd; CC="$(CC)" CFLAGS="$(CPPFLAGS) $(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
- $(MAKE) -f Makefile
-
- # Build the language specific files if they were unpacked.
-*** ../vim-7.3.484/src/version.c 2012-03-28 17:10:26.000000000 +0200
---- src/version.c 2012-03-28 17:16:15.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 485,
- /**/
-
---
-GOD: That is your purpose Arthur ... the Quest for the 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/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.486
-Fcc: 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.486
-Problem: Build error with mingw64 on Windows 7.
-Solution: Avoid the step of going through vimres.res. (Guopeng Wen)
-Files: src/Make_ming.mak
-
-
-*** ../vim-7.3.485/src/Make_ming.mak 2012-02-29 16:56:35.000000000 +0100
---- src/Make_ming.mak 2012-03-28 17:41:55.000000000 +0200
-***************
-*** 681,691 ****
- $(OUTDIR)/%.o : %.c $(INCL)
- $(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)
---- 681,689 ----
- $(OUTDIR)/%.o : %.c $(INCL)
- $(CC) -c $(CFLAGS) $< -o $@
-
-! $(OUTDIR)/vimrc.o: vim.rc version.h gui_w32_rc.h
-! $(WINDRES) $(WINDRES_FLAGS) $(DEFINES) \
-! --input-format=rc --output-format=coff -i vim.rc -o $@
-
- $(OUTDIR):
- $(MKDIR) $(OUTDIR)
-*** ../vim-7.3.485/src/version.c 2012-03-28 17:17:45.000000000 +0200
---- src/version.c 2012-03-28 17:42:25.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 486,
- /**/
-
---
-There is a fine line between courage and foolishness.
-Unfortunately, it's not a fence.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.487
-Fcc: 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.487
-Problem: When setting 'timeoutlen' or 'ttimeoutlen' the column for vertical
- movement is reset unnecessarily.
-Solution: Do not set w_set_curswant for every option. Add a test for this.
- (Kana Natsuno) Add the P_CURSWANT flag for options.
-Files: src/option.c, src/testdir/test84.in, src/testdir/test84.ok,
- src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
- src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
- src/testdir/Make_vms.mms, src/testdir/Makefile
-
-
-*** ../vim-7.3.486/src/option.c 2012-03-23 16:25:13.000000000 +0100
---- src/option.c 2012-03-28 19:57:46.000000000 +0200
-***************
-*** 433,449 ****
- #define P_RCLR 0x7000 /* clear and redraw all */
-
- #define P_COMMA 0x8000 /* comma separated list */
-! #define P_NODUP 0x10000L/* don't allow duplicate strings */
-! #define P_FLAGLIST 0x20000L/* list of single-char flags */
-
-! #define P_SECURE 0x40000L/* cannot change in modeline or secure mode */
-! #define P_GETTEXT 0x80000L/* expand default value with _() */
-! #define P_NOGLOB 0x100000L/* do not use local value for global vimrc */
-! #define P_NFNAME 0x200000L/* only normal file name chars allowed */
-! #define P_INSECURE 0x400000L/* option was set from a modeline */
-! #define P_PRI_MKRC 0x800000L/* priority for :mkvimrc (setting option has
- side effects) */
-! #define P_NO_ML 0x1000000L/* not allowed in modeline */
-
- #define ISK_LATIN1 (char_u *)"@,48-57,_,192-255"
-
---- 433,451 ----
- #define P_RCLR 0x7000 /* clear and redraw all */
-
- #define P_COMMA 0x8000 /* comma separated list */
-! #define P_NODUP 0x10000L /* don't allow duplicate strings */
-! #define P_FLAGLIST 0x20000L /* list of single-char flags */
-
-! #define P_SECURE 0x40000L /* cannot change in modeline or secure mode */
-! #define P_GETTEXT 0x80000L /* expand default value with _() */
-! #define P_NOGLOB 0x100000L /* do not use local value for global vimrc */
-! #define P_NFNAME 0x200000L /* only normal file name chars allowed */
-! #define P_INSECURE 0x400000L /* option was set from a modeline */
-! #define P_PRI_MKRC 0x800000L /* priority for :mkvimrc (setting option has
- side effects) */
-! #define P_NO_ML 0x1000000L /* not allowed in modeline */
-! #define P_CURSWANT 0x2000000L /* update curswant required; not needed when
-! * there is a redraw flag */
-
- #define ISK_LATIN1 (char_u *)"@,48-57,_,192-255"
-
-***************
-*** 479,485 ****
- #endif
- options[] =
- {
-! {"aleph", "al", P_NUM|P_VI_DEF,
- #ifdef FEAT_RIGHTLEFT
- (char_u *)&p_aleph, PV_NONE,
- #else
---- 481,487 ----
- #endif
- options[] =
- {
-! {"aleph", "al", P_NUM|P_VI_DEF|P_CURSWANT,
- #ifdef FEAT_RIGHTLEFT
- (char_u *)&p_aleph, PV_NONE,
- #else
-***************
-*** 501,507 ****
- {(char_u *)FALSE, (char_u *)FALSE}
- #endif
- SCRIPTID_INIT},
-! {"arabic", "arab", P_BOOL|P_VI_DEF|P_VIM,
- #ifdef FEAT_ARABIC
- (char_u *)VAR_WIN, PV_ARAB,
- #else
---- 503,509 ----
- {(char_u *)FALSE, (char_u *)FALSE}
- #endif
- SCRIPTID_INIT},
-! {"arabic", "arab", P_BOOL|P_VI_DEF|P_VIM|P_CURSWANT,
- #ifdef FEAT_ARABIC
- (char_u *)VAR_WIN, PV_ARAB,
- #else
-***************
-*** 778,784 ****
- {"columns", "co", P_NUM|P_NODEFAULT|P_NO_MKRC|P_VI_DEF|P_RCLR,
- (char_u *)&Columns, PV_NONE,
- {(char_u *)80L, (char_u *)0L} SCRIPTID_INIT},
-! {"comments", "com", P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_NODUP,
- #ifdef FEAT_COMMENTS
- (char_u *)&p_com, PV_COM,
- {(char_u *)"s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-",
---- 780,786 ----
- {"columns", "co", P_NUM|P_NODEFAULT|P_NO_MKRC|P_VI_DEF|P_RCLR,
- (char_u *)&Columns, PV_NONE,
- {(char_u *)80L, (char_u *)0L} SCRIPTID_INIT},
-! {"comments", "com", P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_NODUP|P_CURSWANT,
- #ifdef FEAT_COMMENTS
- (char_u *)&p_com, PV_COM,
- {(char_u *)"s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-",
-***************
-*** 788,794 ****
- {(char_u *)0L, (char_u *)0L}
- #endif
- SCRIPTID_INIT},
-! {"commentstring", "cms", P_STRING|P_ALLOCED|P_VI_DEF,
- #ifdef FEAT_FOLDING
- (char_u *)&p_cms, PV_CMS,
- {(char_u *)"/*%s*/", (char_u *)0L}
---- 790,796 ----
- {(char_u *)0L, (char_u *)0L}
- #endif
- SCRIPTID_INIT},
-! {"commentstring", "cms", P_STRING|P_ALLOCED|P_VI_DEF|P_CURSWANT,
- #ifdef FEAT_FOLDING
- (char_u *)&p_cms, PV_CMS,
- {(char_u *)"/*%s*/", (char_u *)0L}
-***************
-*** 953,959 ****
- {"debug", NULL, P_STRING|P_VI_DEF,
- (char_u *)&p_debug, PV_NONE,
- {(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
-! {"define", "def", P_STRING|P_ALLOCED|P_VI_DEF,
- #ifdef FEAT_FIND_ID
- (char_u *)&p_def, PV_DEF,
- {(char_u *)"^\\s*#\\s*define", (char_u *)0L}
---- 955,961 ----
- {"debug", NULL, P_STRING|P_VI_DEF,
- (char_u *)&p_debug, PV_NONE,
- {(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
-! {"define", "def", P_STRING|P_ALLOCED|P_VI_DEF|P_CURSWANT,
- #ifdef FEAT_FIND_ID
- (char_u *)&p_def, PV_DEF,
- {(char_u *)"^\\s*#\\s*define", (char_u *)0L}
-***************
-*** 983,989 ****
- (char_u *)NULL, PV_NONE,
- #endif
- {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
-! {"diffexpr", "dex", P_STRING|P_VI_DEF|P_SECURE,
- #if defined(FEAT_DIFF) && defined(FEAT_EVAL)
- (char_u *)&p_dex, PV_NONE,
- {(char_u *)"", (char_u *)0L}
---- 985,991 ----
- (char_u *)NULL, PV_NONE,
- #endif
- {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
-! {"diffexpr", "dex", P_STRING|P_VI_DEF|P_SECURE|P_CURSWANT,
- #if defined(FEAT_DIFF) && defined(FEAT_EVAL)
- (char_u *)&p_dex, PV_NONE,
- {(char_u *)"", (char_u *)0L}
-***************
-*** 1099,1105 ****
- {(char_u *)0L, (char_u *)0L}
- #endif
- SCRIPTID_INIT},
-! {"fileformat", "ff", P_STRING|P_ALLOCED|P_VI_DEF|P_RSTAT|P_NO_MKRC,
- (char_u *)&p_ff, PV_FF,
- {(char_u *)DFLT_FF, (char_u *)0L} SCRIPTID_INIT},
- {"fileformats", "ffs", P_STRING|P_VIM|P_COMMA|P_NODUP,
---- 1101,1107 ----
- {(char_u *)0L, (char_u *)0L}
- #endif
- SCRIPTID_INIT},
-! {"fileformat", "ff", P_STRING|P_ALLOCED|P_VI_DEF|P_RSTAT|P_NO_MKRC|P_CURSWANT,
- (char_u *)&p_ff, PV_FF,
- {(char_u *)DFLT_FF, (char_u *)0L} SCRIPTID_INIT},
- {"fileformats", "ffs", P_STRING|P_VIM|P_COMMA|P_NODUP,
-***************
-*** 1159,1165 ****
- {"foldlevel", "fdl", P_NUM|P_VI_DEF|P_RWIN,
- (char_u *)VAR_WIN, PV_FDL,
- {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT},
-! {"foldlevelstart","fdls", P_NUM|P_VI_DEF,
- (char_u *)&p_fdls, PV_NONE,
- {(char_u *)-1L, (char_u *)0L} SCRIPTID_INIT},
- {"foldmarker", "fmr", P_STRING|P_ALLOCED|P_VIM|P_VI_DEF|
---- 1161,1167 ----
- {"foldlevel", "fdl", P_NUM|P_VI_DEF|P_RWIN,
- (char_u *)VAR_WIN, PV_FDL,
- {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT},
-! {"foldlevelstart","fdls", P_NUM|P_VI_DEF|P_CURSWANT,
- (char_u *)&p_fdls, PV_NONE,
- {(char_u *)-1L, (char_u *)0L} SCRIPTID_INIT},
- {"foldmarker", "fmr", P_STRING|P_ALLOCED|P_VIM|P_VI_DEF|
-***************
-*** 1176,1182 ****
- {"foldnestmax", "fdn", P_NUM|P_VI_DEF|P_RWIN,
- (char_u *)VAR_WIN, PV_FDN,
- {(char_u *)20L, (char_u *)0L} SCRIPTID_INIT},
-! {"foldopen", "fdo", P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
- (char_u *)&p_fdo, PV_NONE,
- {(char_u *)"block,hor,mark,percent,quickfix,search,tag,undo",
- (char_u *)0L} SCRIPTID_INIT},
---- 1178,1184 ----
- {"foldnestmax", "fdn", P_NUM|P_VI_DEF|P_RWIN,
- (char_u *)VAR_WIN, PV_FDN,
- {(char_u *)20L, (char_u *)0L} SCRIPTID_INIT},
-! {"foldopen", "fdo", P_STRING|P_VI_DEF|P_COMMA|P_NODUP|P_CURSWANT,
- (char_u *)&p_fdo, PV_NONE,
- {(char_u *)"block,hor,mark,percent,quickfix,search,tag,undo",
- (char_u *)0L} SCRIPTID_INIT},
-***************
-*** 1741,1747 ****
- {"matchtime", "mat", P_NUM|P_VI_DEF,
- (char_u *)&p_mat, PV_NONE,
- {(char_u *)5L, (char_u *)0L} SCRIPTID_INIT},
-! {"maxcombine", "mco", P_NUM|P_VI_DEF,
- #ifdef FEAT_MBYTE
- (char_u *)&p_mco, PV_NONE,
- #else
---- 1743,1749 ----
- {"matchtime", "mat", P_NUM|P_VI_DEF,
- (char_u *)&p_mat, PV_NONE,
- {(char_u *)5L, (char_u *)0L} SCRIPTID_INIT},
-! {"maxcombine", "mco", P_NUM|P_VI_DEF|P_CURSWANT,
- #ifdef FEAT_MBYTE
- (char_u *)&p_mco, PV_NONE,
- #else
-***************
-*** 2710,2716 ****
- {(char_u *)0L, (char_u *)0L}
- #endif
- SCRIPTID_INIT},
-! {"virtualedit", "ve", P_STRING|P_COMMA|P_NODUP|P_VI_DEF|P_VIM,
- #ifdef FEAT_VIRTUALEDIT
- (char_u *)&p_ve, PV_NONE,
- {(char_u *)"", (char_u *)""}
---- 2712,2718 ----
- {(char_u *)0L, (char_u *)0L}
- #endif
- SCRIPTID_INIT},
-! {"virtualedit", "ve", P_STRING|P_COMMA|P_NODUP|P_VI_DEF|P_VIM|P_CURSWANT,
- #ifdef FEAT_VIRTUALEDIT
- (char_u *)&p_ve, PV_NONE,
- {(char_u *)"", (char_u *)""}
-***************
-*** 7064,7071 ****
- }
- #endif
-
-! if (curwin->w_curswant != MAXCOL)
-! curwin->w_set_curswant = TRUE; /* in case 'showbreak' changed */
- #ifdef FEAT_GUI
- /* check redraw when it's not a GUI option or the GUI is active. */
- if (!redraw_gui_only || gui.in_use)
---- 7066,7075 ----
- }
- #endif
-
-! if (curwin->w_curswant != MAXCOL
-! && (options[opt_idx].flags & (P_CURSWANT | P_RCLR)) != 0)
-! curwin->w_set_curswant = TRUE;
-!
- #ifdef FEAT_GUI
- /* check redraw when it's not a GUI option or the GUI is active. */
- if (!redraw_gui_only || gui.in_use)
-***************
-*** 7587,7595 ****
- || (int *)varp == &curwin->w_p_nu
- || (int *)varp == &curwin->w_p_rnu)
- {
-- if (curwin->w_curswant != MAXCOL)
-- curwin->w_set_curswant = TRUE;
--
- /* If 'number' is set, reset 'relativenumber'. */
- /* If 'relativenumber' is set, reset 'number'. */
- if ((int *)varp == &curwin->w_p_nu && curwin->w_p_nu)
---- 7591,7596 ----
-***************
-*** 7834,7841 ****
- {
- if (curwin->w_p_wrap)
- curwin->w_leftcol = 0;
-- if (curwin->w_curswant != MAXCOL)
-- curwin->w_set_curswant = TRUE;
- }
-
- #ifdef FEAT_WINDOWS
---- 7835,7840 ----
-***************
-*** 8062,8092 ****
- curbuf->b_p_imsearch = B_IMODE_USE_INSERT;
- # endif
- }
-- if (curwin->w_curswant != MAXCOL)
-- curwin->w_set_curswant = TRUE;
- }
-
-- else if ((int *)varp == &p_arshape)
-- {
-- if (curwin->w_curswant != MAXCOL)
-- curwin->w_set_curswant = TRUE;
-- }
-- #endif
--
-- #ifdef FEAT_LINEBREAK
-- if ((int *)varp == &curwin->w_p_lbr)
-- {
-- if (curwin->w_curswant != MAXCOL)
-- curwin->w_set_curswant = TRUE;
-- }
-- #endif
--
-- #ifdef FEAT_RIGHTLEFT
-- if ((int *)varp == &curwin->w_p_rl)
-- {
-- if (curwin->w_curswant != MAXCOL)
-- curwin->w_set_curswant = TRUE;
-- }
- #endif
-
- /*
---- 8061,8068 ----
-***************
-*** 8096,8102 ****
- options[opt_idx].flags |= P_WAS_SET;
-
- comp_col(); /* in case 'ruler' or 'showcmd' changed */
-!
- check_redraw(options[opt_idx].flags);
-
- return NULL;
---- 8072,8080 ----
- options[opt_idx].flags |= P_WAS_SET;
-
- comp_col(); /* in case 'ruler' or 'showcmd' changed */
-! if (curwin->w_curswant != MAXCOL
-! && (options[opt_idx].flags & (P_CURSWANT | P_RCLR)) != 0)
-! curwin->w_set_curswant = TRUE;
- check_redraw(options[opt_idx].flags);
-
- return NULL;
-***************
-*** 8611,8618 ****
- options[opt_idx].flags |= P_WAS_SET;
-
- comp_col(); /* in case 'columns' or 'ls' changed */
-! if (curwin->w_curswant != MAXCOL)
-! curwin->w_set_curswant = TRUE; /* in case 'tabstop' changed */
- check_redraw(options[opt_idx].flags);
-
- return errmsg;
---- 8589,8597 ----
- options[opt_idx].flags |= P_WAS_SET;
-
- comp_col(); /* in case 'columns' or 'ls' changed */
-! if (curwin->w_curswant != MAXCOL
-! && (options[opt_idx].flags & (P_CURSWANT | P_RCLR)) != 0)
-! curwin->w_set_curswant = TRUE;
- check_redraw(options[opt_idx].flags);
-
- return errmsg;
-*** ../vim-7.3.486/src/testdir/test84.in 2012-03-28 19:55:12.000000000 +0200
---- src/testdir/test84.in 2012-03-28 19:46:53.000000000 +0200
-***************
-*** 0 ****
---- 1,35 ----
-+ Tests for curswant not changing when setting an option
-+
-+ STARTTEST
-+ :so small.vim
-+ :/^start target options$/+1,/^end target options$/-1 yank
-+ :let target_option_names = split(@0)
-+ :function TestCurswant(option_name)
-+ : normal! ggf8j
-+ : let curswant_before = winsaveview().curswant
-+ : execute 'let' '&'.a:option_name '=' '&'.a:option_name
-+ : let curswant_after = winsaveview().curswant
-+ : return [a:option_name, curswant_before, curswant_after]
-+ :endfunction
-+ :
-+ :new
-+ :put =['1234567890', '12345']
-+ :1 delete _
-+ :let result = []
-+ :for option_name in target_option_names
-+ : call add(result, TestCurswant(option_name))
-+ :endfor
-+ :
-+ :new
-+ :put =map(copy(result), 'join(v:val, '' '')')
-+ :1 delete _
-+ :write test.out
-+ :
-+ :qall!
-+ ENDTEST
-+
-+ start target options
-+ tabstop
-+ timeoutlen
-+ ttimeoutlen
-+ end target options
-*** ../vim-7.3.486/src/testdir/test84.ok 2012-03-28 19:55:12.000000000 +0200
---- src/testdir/test84.ok 2012-03-28 19:48:36.000000000 +0200
-***************
-*** 0 ****
---- 1,3 ----
-+ tabstop 7 4
-+ timeoutlen 7 7
-+ ttimeoutlen 7 7
-*** ../vim-7.3.486/src/testdir/Make_amiga.mak 2011-10-12 19:53:31.000000000 +0200
---- src/testdir/Make_amiga.mak 2012-03-28 18:14:08.000000000 +0200
-***************
-*** 29,35 ****
- test66.out test67.out test68.out test69.out test70.out \
- test71.out test72.out test73.out test74.out test75.out \
- test76.out test77.out test78.out test79.out test80.out \
-! test81.out test82.out test83.out
-
- .SUFFIXES: .in .out
-
---- 29,35 ----
- test66.out test67.out test68.out test69.out test70.out \
- test71.out test72.out test73.out test74.out test75.out \
- test76.out test77.out test78.out test79.out test80.out \
-! test81.out test82.out test83.out test84.out
-
- .SUFFIXES: .in .out
-
-***************
-*** 132,134 ****
---- 132,135 ----
- test81.out: test81.in
- test82.out: test82.in
- test83.out: test83.in
-+ test84.out: test84.in
-*** ../vim-7.3.486/src/testdir/Make_dos.mak 2011-10-12 19:53:31.000000000 +0200
---- src/testdir/Make_dos.mak 2012-03-28 18:14:41.000000000 +0200
-***************
-*** 29,35 ****
- 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 test77.out test78.out \
-! test79.out test80.out test81.out test82.out test83.out
-
- SCRIPTS32 = test50.out test70.out
-
---- 29,36 ----
- 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 test77.out test78.out \
-! test79.out test80.out test81.out test82.out test83.out \
-! test84.out
-
- SCRIPTS32 = test50.out test70.out
-
-*** ../vim-7.3.486/src/testdir/Make_ming.mak 2011-10-12 19:53:31.000000000 +0200
---- src/testdir/Make_ming.mak 2012-03-28 18:14:46.000000000 +0200
-***************
-*** 49,55 ****
- 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 test77.out test78.out \
-! test79.out test80.out test81.out test82.out test83.out
-
- SCRIPTS32 = test50.out test70.out
-
---- 49,56 ----
- 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 test77.out test78.out \
-! test79.out test80.out test81.out test82.out test83.out \
-! test84.out
-
- SCRIPTS32 = test50.out test70.out
-
-*** ../vim-7.3.486/src/testdir/Make_os2.mak 2011-10-12 19:53:31.000000000 +0200
---- src/testdir/Make_os2.mak 2012-03-28 18:15:00.000000000 +0200
-***************
-*** 29,35 ****
- test66.out test67.out test68.out test69.out test70.out \
- test71.out test72.out test73.out test74.out test75.out \
- test76.out test77.out test78.out test79.out test80.out \
-! test81.out test82.out test83.out
-
- .SUFFIXES: .in .out
-
---- 29,35 ----
- test66.out test67.out test68.out test69.out test70.out \
- test71.out test72.out test73.out test74.out test75.out \
- test76.out test77.out test78.out test79.out test80.out \
-! test81.out test82.out test83.out test84.out
-
- .SUFFIXES: .in .out
-
-*** ../vim-7.3.486/src/testdir/Make_vms.mms 2011-10-12 19:53:31.000000000 +0200
---- src/testdir/Make_vms.mms 2012-03-28 18:15:15.000000000 +0200
-***************
-*** 4,10 ****
- # Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
- # Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
- #
-! # Last change: 2011 Jul 15
- #
- # 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: 2012 Mar 28
- #
- # 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.
-***************
-*** 76,82 ****
- test66.out test67.out test68.out test69.out \
- test71.out test72.out test74.out test75.out test76.out \
- test77.out test78.out test79.out test80.out test81.out \
-! test82.out test83.out
-
- # Known problems:
- # Test 30: a problem around mac format - unknown reason
---- 76,82 ----
- test66.out test67.out test68.out test69.out \
- test71.out test72.out test74.out test75.out test76.out \
- test77.out test78.out test79.out test80.out test81.out \
-! test82.out test83.out test84.out
-
- # Known problems:
- # Test 30: a problem around mac format - unknown reason
-*** ../vim-7.3.486/src/testdir/Makefile 2011-10-12 19:53:31.000000000 +0200
---- src/testdir/Makefile 2012-03-28 18:15:29.000000000 +0200
-***************
-*** 26,32 ****
- 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 test77.out test78.out \
-! test79.out test80.out test81.out test82.out test83.out
-
- SCRIPTS_GUI = test16.out
-
---- 26,33 ----
- 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 test77.out test78.out \
-! test79.out test80.out test81.out test82.out test83.out \
-! test84.out
-
- SCRIPTS_GUI = test16.out
-
-*** ../vim-7.3.486/src/version.c 2012-03-28 17:43:06.000000000 +0200
---- src/version.c 2012-03-28 19:49:41.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 487,
- /**/
-
---
-"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/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.488
-Fcc: 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.488
-Problem: ":help!" in a help file does not work as document.
-Solution: When in a help file don't give an error message. (thinca)
-Files: src/ex_cmds.c
-
-
-*** ../vim-7.3.487/src/ex_cmds.c 2012-03-16 14:32:10.000000000 +0100
---- src/ex_cmds.c 2012-04-01 14:25:35.000000000 +0200
-***************
-*** 5546,5552 ****
- }
- arg = eap->arg;
-
-! if (eap->forceit && *arg == NUL)
- {
- EMSG(_("E478: Don't panic!"));
- return;
---- 5546,5552 ----
- }
- arg = eap->arg;
-
-! if (eap->forceit && *arg == NUL && !curbuf->b_help)
- {
- EMSG(_("E478: Don't panic!"));
- return;
-*** ../vim-7.3.487/src/version.c 2012-03-28 19:58:34.000000000 +0200
---- src/version.c 2012-04-05 16:04:13.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 488,
- /**/
-
-
---
-I'd like to meet the man who invented sex and see what he's working on now.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.489
-Fcc: 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.489
-Problem: CTRL-] in Insert mode does not expand abbreviation when used in a
- mapping. (Yichao Zhou)
-Solution: Special case using CTRL-]. (Christian Brabandt)
-Files: src/getchar.c, src/edit.c
-
-
-*** ../vim-7.3.488/src/getchar.c 2012-02-05 22:05:44.000000000 +0100
---- src/getchar.c 2012-04-05 15:54:00.000000000 +0200
-***************
-*** 4352,4359 ****
-
- if (typebuf.tb_no_abbr_cnt) /* abbrev. are not recursive */
- return FALSE;
-! if ((KeyNoremap & (RM_NONE|RM_SCRIPT)) != 0)
-! /* no remapping implies no abbreviation */
- return FALSE;
-
- /*
---- 4352,4360 ----
-
- if (typebuf.tb_no_abbr_cnt) /* abbrev. are not recursive */
- return FALSE;
-!
-! /* no remapping implies no abbreviation, except for CTRL-] */
-! if ((KeyNoremap & (RM_NONE|RM_SCRIPT)) != 0 && c != Ctrl_RSB)
- return FALSE;
-
- /*
-*** ../vim-7.3.488/src/edit.c 2012-02-29 18:22:03.000000000 +0100
---- src/edit.c 2012-04-05 15:57:46.000000000 +0200
-***************
-*** 1455,1467 ****
- Insstart_blank_vcol = get_nolist_virtcol();
- }
-
-! if (vim_iswordc(c) || !echeck_abbr(
- #ifdef FEAT_MBYTE
- /* Add ABBR_OFF for characters above 0x100, this is
- * what check_abbr() expects. */
- (has_mbyte && c >= 0x100) ? (c + ABBR_OFF) :
- #endif
-! c))
- {
- insert_special(c, FALSE, FALSE);
- #ifdef FEAT_RIGHTLEFT
---- 1455,1470 ----
- Insstart_blank_vcol = get_nolist_virtcol();
- }
-
-! /* Insert a normal character and check for abbreviations on a
-! * special character. Let CTRL-] expand abbreviations without
-! * inserting it. */
-! if (vim_iswordc(c) || (!echeck_abbr(
- #ifdef FEAT_MBYTE
- /* Add ABBR_OFF for characters above 0x100, this is
- * what check_abbr() expects. */
- (has_mbyte && c >= 0x100) ? (c + ABBR_OFF) :
- #endif
-! c) && c != Ctrl_RSB))
- {
- insert_special(c, FALSE, FALSE);
- #ifdef FEAT_RIGHTLEFT
-*** ../vim-7.3.488/src/version.c 2012-04-05 16:04:58.000000000 +0200
---- src/version.c 2012-04-05 16:06:12.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 489,
- /**/
-
---
-Just think of all the things we haven't thought of yet.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.490
-Fcc: 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.490
-Problem: Member confusion in Lua interface.
-Solution: Fix it. Add luaeval(). (Taro Muraoka, Luis Carvalho)
-Files: runtime/doc/if_lua.txt, src/eval.c, src/if_lua.c,
- src/proto/if_lua.pro
-
-
-*** ../vim-7.3.489/runtime/doc/if_lua.txt 2010-08-15 21:57:14.000000000 +0200
---- runtime/doc/if_lua.txt 2012-04-05 16:41:35.000000000 +0200
-***************
-*** 1,4 ****
-! *if_lua.txt* For Vim version 7.3. Last change: 2010 Jul 22
-
-
- VIM REFERENCE MANUAL by Luis Carvalho
---- 1,4 ----
-! *if_lua.txt* For Vim version 7.3. Last change: 2012 Jan 16
-
-
- VIM REFERENCE MANUAL by Luis Carvalho
-***************
-*** 8,15 ****
-
- 1. Commands |lua-commands|
- 2. The vim module |lua-vim|
-! 3. Buffer userdata |lua-buffer|
-! 4. Window userdata |lua-window|
-
- {Vi does not have any of these commands}
-
---- 8,18 ----
-
- 1. Commands |lua-commands|
- 2. The vim module |lua-vim|
-! 3. List userdata |lua-list|
-! 4. Dict userdata |lua-dict|
-! 5. Buffer userdata |lua-buffer|
-! 6. Window userdata |lua-window|
-! 7. The luaeval function |lua-luaeval|
-
- {Vi does not have any of these commands}
-
-***************
-*** 88,98 ****
- All these commands execute a Lua chunk from either the command line (:lua and
- :luado) or a file (:luafile) with the given line [range]. Similarly to the Lua
- interpreter, each chunk has its own scope and so only global variables are
-! shared between command calls. Lua default libraries "table", "string", "math",
-! and "package" are available, "io" and "debug" are not, and "os" is restricted
-! to functions "date", "clock", "time", "difftime", and "getenv". In addition,
-! Lua "print" function has its output redirected to the Vim message area, with
-! arguments separated by a white space instead of a tab.
-
- Lua uses the "vim" module (see |lua-vim|) to issue commands to Vim
- and manage buffers (|lua-buffer|) and windows (|lua-window|). However,
---- 91,99 ----
- All these commands execute a Lua chunk from either the command line (:lua and
- :luado) or a file (:luafile) with the given line [range]. Similarly to the Lua
- interpreter, each chunk has its own scope and so only global variables are
-! shared between command calls. All Lua default libraries are available. In
-! addition, Lua "print" function has its output redirected to the Vim message
-! area, with arguments separated by a white space instead of a tab.
-
- Lua uses the "vim" module (see |lua-vim|) to issue commands to Vim
- and manage buffers (|lua-buffer|) and windows (|lua-window|). However,
-***************
-*** 108,116 ****
- module also includes routines for buffer, window, and current line queries,
- Vim evaluation and command execution, and others.
-
-! vim.isbuffer(value) Returns 'true' (boolean, not string) if
-! "value" is a buffer userdata and 'false'
-! otherwise (see |lua-buffer|).
-
- vim.buffer([arg]) If "arg" is a number, returns buffer with
- number "arg" in the buffer list or, if "arg"
---- 109,117 ----
- module also includes routines for buffer, window, and current line queries,
- Vim evaluation and command execution, and others.
-
-! vim.list() Returns an empty list (see |List|).
-!
-! vim.dict() Returns an empty dictionary (see |Dictionary|).
-
- vim.buffer([arg]) If "arg" is a number, returns buffer with
- number "arg" in the buffer list or, if "arg"
-***************
-*** 121,136 ****
- 'true' returns the first buffer in the buffer
- list or else the current buffer.
-
-- vim.iswindow(value) Returns 'true' (boolean, not string) if
-- "value" is a window userdata and
-- 'false' otherwise (see |lua-window|).
--
- vim.window([arg]) If "arg" is a number, returns window with
- number "arg" or 'nil' (nil value, not string)
- if not found. Otherwise, if "toboolean(arg)"
- is 'true' returns the first window or else the
- current window.
-
- vim.command({cmd}) Executes the vim (ex-mode) command {cmd}.
- Examples: >
- :lua vim.command"set tw=60"
---- 122,142 ----
- 'true' returns the first buffer in the buffer
- list or else the current buffer.
-
- vim.window([arg]) If "arg" is a number, returns window with
- number "arg" or 'nil' (nil value, not string)
- if not found. Otherwise, if "toboolean(arg)"
- is 'true' returns the first window or else the
- current window.
-
-+ vim.type({arg}) Returns the type of {arg}. It is equivalent to
-+ Lua's "type" function, but returns "list",
-+ "dict", "buffer", or "window" if {arg} is a
-+ list, dictionary, buffer, or window,
-+ respectively. Examples: >
-+ :lua l = vim.list()
-+ :lua print(type(l), vim.type(l))
-+ :" userdata list
-+ <
- vim.command({cmd}) Executes the vim (ex-mode) command {cmd}.
- Examples: >
- :lua vim.command"set tw=60"
-***************
-*** 141,147 ****
- Vim strings and numbers are directly converted
- to Lua strings and numbers respectively. Vim
- lists and dictionaries are converted to Lua
-! tables (lists become integer-keyed tables).
- Examples: >
- :lua tw = vim.eval"&tw"
- :lua print(vim.eval"{'a': 'one'}".a)
---- 147,153 ----
- Vim strings and numbers are directly converted
- to Lua strings and numbers respectively. Vim
- lists and dictionaries are converted to Lua
-! userdata (see |lua-list| and |lua-dict|).
- Examples: >
- :lua tw = vim.eval"&tw"
- :lua print(vim.eval"{'a': 'one'}".a)
-***************
-*** 157,163 ****
-
-
- ==============================================================================
-! 3. Buffer userdata *lua-buffer*
-
- Buffer userdata represent vim buffers. A buffer userdata "b" has the following
- properties and methods:
---- 163,234 ----
-
-
- ==============================================================================
-! 3. List userdata *lua-list*
-!
-! List userdata represent vim lists, and the interface tries to follow closely
-! Vim's syntax for lists. Since lists are objects, changes in list references in
-! Lua are reflected in Vim and vice-versa. A list "l" has the following
-! properties and methods:
-!
-! Properties
-! ----------
-! o "#l" is the number of items in list "l", equivalent to "len(l)"
-! in Vim.
-! o "l[k]" returns the k-th item in "l"; "l" is zero-indexed, as in Vim.
-! To modify the k-th item, simply do "l[k] = newitem"; in
-! particular, "l[k] = nil" removes the k-th item from "l".
-! o "l()" returns an iterator for "l".
-!
-! Methods
-! -------
-! o "l:add(item)" appends "item" to the end of "l".
-! o "l:insert(item[, pos])" inserts "item" at (optional)
-! position "pos" in the list. The default value for "pos" is 0.
-!
-! Examples:
-! >
-! :let l = [1, 'item']
-! :lua l = vim.eval('l') -- same 'l'
-! :lua l:add(vim.list())
-! :lua l[0] = math.pi
-! :echo l[0] " 3.141593
-! :lua l[0] = nil -- remove first item
-! :lua l:insert(true, 1)
-! :lua print(l, #l, l[0], l[1], l[-1])
-! :lua for item in l() do print(item) end
-! <
-!
-! ==============================================================================
-! 4. Dict userdata *lua-dict*
-!
-! Similarly to list userdata, dict userdata represent vim dictionaries; since
-! dictionaries are also objects, references are kept between Lua and Vim. A dict
-! "d" has the following properties:
-!
-! Properties
-! ----------
-! o "#d" is the number of items in dict "d", equivalent to "len(d)"
-! in Vim.
-! o "d.key" or "d['key']" returns the value at entry "key" in "d".
-! To modify the entry at this key, simply do "d.key = newvalue"; in
-! particular, "d.key = nil" removes the entry from "d".
-! o "d()" returns an iterator for "d" and is equivalent to "items(d)" in
-! Vim.
-!
-! Examples:
-! >
-! :let d = {'n':10}
-! :lua d = vim.eval('d') -- same 'd'
-! :lua print(d, d.n, #d)
-! :let d.self = d
-! :lua for k, v in d() do print(d, k, v) end
-! :lua d.x = math.pi
-! :lua d.self = nil -- remove entry
-! :echo d
-! <
-!
-! ==============================================================================
-! 5. Buffer userdata *lua-buffer*
-
- Buffer userdata represent vim buffers. A buffer userdata "b" has the following
- properties and methods:
-***************
-*** 209,215 ****
- <
-
- ==============================================================================
-! 4. Window userdata *lua-window*
-
- Window objects represent vim windows. A window userdata "w" has the following
- properties and methods:
---- 280,286 ----
- <
-
- ==============================================================================
-! 6. Window userdata *lua-window*
-
- Window objects represent vim windows. A window userdata "w" has the following
- properties and methods:
-***************
-*** 241,244 ****
- <
-
- ==============================================================================
-! vim:tw=78:ts=8:ft=help:norl:
---- 312,340 ----
- <
-
- ==============================================================================
-! 7. The luaeval function *lua-luaeval*
-!
-! The (dual) equivalent of "vim.eval" for passing Lua values to Vim is
-! "luaeval". "luaeval" takes an expression string and an optional argument and
-! returns the result of the expression. It is semantically equivalent in Lua to:
-! >
-! local chunkheader = "local _A = select(1, ...) return "
-! function luaeval (expstr, arg)
-! local chunk = assert(loadstring(chunkheader .. expstr, "luaeval"))
-! return chunk(arg) -- return typval
-! end
-! <
-! Note that "_A" receives the argument to "luaeval". Examples: >
-!
-! :echo luaeval('math.pi')
-! :lua a = vim.list():add('newlist')
-! :let a = luaeval('a')
-! :echo a[0] " 'newlist'
-! :function Rand(x,y) " random uniform between x and y
-! : return luaeval('(_A.y-_A.x)*math.random()+_A.x', {'x':a:x,'y':a:y})
-! : endfunction
-! :echo Rand(1,10)
-!
-!
-! ==============================================================================
-! vim:tw=78:ts=8:noet:ft=help:norl:
-*** ../vim-7.3.489/src/eval.c 2012-03-28 16:49:25.000000000 +0200
---- src/eval.c 2012-04-05 16:41:35.000000000 +0200
-***************
-*** 622,627 ****
---- 622,630 ----
- static void f_log __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_log10 __ARGS((typval_T *argvars, typval_T *rettv));
- #endif
-+ #ifdef FEAT_LUA
-+ static void f_luaeval __ARGS((typval_T *argvars, typval_T *rettv));
-+ #endif
- static void f_map __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_maparg __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_mapcheck __ARGS((typval_T *argvars, typval_T *rettv));
-***************
-*** 6777,6782 ****
---- 6780,6789 ----
- /* v: vars */
- set_ref_in_ht(&vimvarht, copyID);
-
-+ #ifdef FEAT_LUA
-+ set_ref_in_lua(copyID);
-+ #endif
-+
- /*
- * 2. Free lists and dictionaries that are not referenced.
- */
-***************
-*** 7946,7951 ****
---- 7953,7961 ----
- {"log", 1, 1, f_log},
- {"log10", 1, 1, f_log10},
- #endif
-+ #ifdef FEAT_LUA
-+ {"luaeval", 1, 2, f_luaeval},
-+ #endif
- {"map", 2, 2, f_map},
- {"maparg", 1, 4, f_maparg},
- {"mapcheck", 1, 3, f_mapcheck},
-***************
-*** 13626,13631 ****
---- 13636,13658 ----
- }
- #endif
-
-+ #ifdef FEAT_LUA
-+ /*
-+ * "luaeval()" function
-+ */
-+ static void
-+ f_luaeval(argvars, rettv)
-+ typval_T *argvars;
-+ typval_T *rettv;
-+ {
-+ char_u *str;
-+ char_u buf[NUMBUFLEN];
-+
-+ str = get_tv_string_buf(&argvars[0], buf);
-+ do_luaeval(str, argvars + 1, rettv);
-+ }
-+ #endif
-+
- /*
- * "map()" function
- */
-*** ../vim-7.3.489/src/if_lua.c 2011-12-08 16:00:12.000000000 +0100
---- src/if_lua.c 2012-04-05 16:41:35.000000000 +0200
-***************
-*** 1,4 ****
-! /* vi:set ts=8 sts=4 sw=4:
- *
- * VIM - Vi IMproved by Bram Moolenaar
- *
---- 1,4 ----
-! /* vi:set ts=8 sts=4 sw=4 noet:
- *
- * VIM - Vi IMproved by Bram Moolenaar
- *
-***************
-*** 21,35 ****
---- 21,53 ----
-
- #define LUAVIM_CHUNKNAME "vim chunk"
- #define LUAVIM_NAME "vim"
-+ #define LUAVIM_EVALNAME "luaeval"
-+ #define LUAVIM_EVALHEADER "local _A=select(1,...) return "
-
- typedef buf_T *luaV_Buffer;
- typedef win_T *luaV_Window;
-+ typedef dict_T *luaV_Dict;
-+ typedef list_T *luaV_List;
- typedef void (*msgfunc_T)(char_u *);
-
-+ static const char LUAVIM_DICT[] = "dict";
-+ static const char LUAVIM_LIST[] = "list";
- static const char LUAVIM_BUFFER[] = "buffer";
- static const char LUAVIM_WINDOW[] = "window";
- static const char LUAVIM_FREE[] = "luaV_free";
-+ static const char LUAVIM_LUAEVAL[] = "luaV_luaeval";
-+ static const char LUAVIM_SETREF[] = "luaV_setref";
-
-+ /* most functions are closures with a cache table as first upvalue;
-+ * get/setudata manage references to vim userdata in cache table through
-+ * object pointers (light userdata) */
-+ #define luaV_getudata(L, v) \
-+ lua_pushlightuserdata((L), (void *) (v)); \
-+ lua_rawget((L), lua_upvalueindex(1))
-+ #define luaV_setudata(L, v) \
-+ lua_pushlightuserdata((L), (void *) (v)); \
-+ lua_pushvalue((L), -2); \
-+ lua_rawset((L), lua_upvalueindex(1))
- #define luaV_getfield(L, s) \
- lua_pushlightuserdata((L), (void *)(s)); \
- lua_rawget((L), LUA_REGISTRYINDEX)
-***************
-*** 38,43 ****
---- 56,70 ----
- #define luaV_msg(L) luaV_msgfunc((L), (msgfunc_T) msg)
- #define luaV_emsg(L) luaV_msgfunc((L), (msgfunc_T) emsg)
-
-+ static luaV_List *luaV_pushlist (lua_State *L, list_T *lis);
-+ static luaV_Dict *luaV_pushdict (lua_State *L, dict_T *dic);
-+
-+ #if LUA_VERSION_NUM <= 501
-+ #define luaV_openlib(L, l, n) luaL_openlib(L, NULL, l, n)
-+ #define luaL_typeerror luaL_typerror
-+ #else
-+ #define luaV_openlib luaL_setfuncs
-+ #endif
-
- #ifdef DYNAMIC_LUA
-
-***************
-*** 54,85 ****
- #endif
-
- /* lauxlib */
- #define luaL_register dll_luaL_register
- #define luaL_typerror dll_luaL_typerror
- #define luaL_checklstring dll_luaL_checklstring
- #define luaL_checkinteger dll_luaL_checkinteger
- #define luaL_optinteger dll_luaL_optinteger
- #define luaL_checktype dll_luaL_checktype
- #define luaL_error dll_luaL_error
-- #define luaL_loadfile dll_luaL_loadfile
-- #define luaL_loadbuffer dll_luaL_loadbuffer
- #define luaL_newstate dll_luaL_newstate
- #define luaL_buffinit dll_luaL_buffinit
-- #define luaL_prepbuffer dll_luaL_prepbuffer
- #define luaL_addlstring dll_luaL_addlstring
- #define luaL_pushresult dll_luaL_pushresult
- /* lua */
- #define lua_close dll_lua_close
- #define lua_gettop dll_lua_gettop
- #define lua_settop dll_lua_settop
- #define lua_pushvalue dll_lua_pushvalue
- #define lua_replace dll_lua_replace
- #define lua_isnumber dll_lua_isnumber
- #define lua_isstring dll_lua_isstring
- #define lua_type dll_lua_type
- #define lua_rawequal dll_lua_rawequal
-- #define lua_tonumber dll_lua_tonumber
-- #define lua_tointeger dll_lua_tointeger
- #define lua_toboolean dll_lua_toboolean
- #define lua_tolstring dll_lua_tolstring
- #define lua_touserdata dll_lua_touserdata
---- 81,134 ----
- #endif
-
- /* lauxlib */
-+ #if LUA_VERSION_NUM <= 501
- #define luaL_register dll_luaL_register
-+ #define luaL_prepbuffer dll_luaL_prepbuffer
-+ #define luaL_openlib dll_luaL_openlib
- #define luaL_typerror dll_luaL_typerror
-+ #define luaL_loadfile dll_luaL_loadfile
-+ #define luaL_loadbuffer dll_luaL_loadbuffer
-+ #else
-+ #define luaL_prepbuffsize dll_luaL_prepbuffsize
-+ #define luaL_setfuncs dll_luaL_setfuncs
-+ #define luaL_loadfilex dll_luaL_loadfilex
-+ #define luaL_loadbufferx dll_luaL_loadbufferx
-+ #define luaL_argerror dll_luaL_argerror
-+ #endif
- #define luaL_checklstring dll_luaL_checklstring
- #define luaL_checkinteger dll_luaL_checkinteger
- #define luaL_optinteger dll_luaL_optinteger
- #define luaL_checktype dll_luaL_checktype
- #define luaL_error dll_luaL_error
- #define luaL_newstate dll_luaL_newstate
- #define luaL_buffinit dll_luaL_buffinit
- #define luaL_addlstring dll_luaL_addlstring
- #define luaL_pushresult dll_luaL_pushresult
- /* lua */
-+ #if LUA_VERSION_NUM <= 501
-+ #define lua_tonumber dll_lua_tonumber
-+ #define lua_tointeger dll_lua_tointeger
-+ #define lua_call dll_lua_call
-+ #define lua_pcall dll_lua_pcall
-+ #else
-+ #define lua_tonumberx dll_lua_tonumberx
-+ #define lua_tointegerx dll_lua_tointegerx
-+ #define lua_callk dll_lua_callk
-+ #define lua_pcallk dll_lua_pcallk
-+ #define lua_getglobal dll_lua_getglobal
-+ #define lua_setglobal dll_lua_setglobal
-+ #define lua_typename dll_lua_typename
-+ #endif
- #define lua_close dll_lua_close
- #define lua_gettop dll_lua_gettop
- #define lua_settop dll_lua_settop
- #define lua_pushvalue dll_lua_pushvalue
- #define lua_replace dll_lua_replace
-+ #define lua_remove dll_lua_remove
- #define lua_isnumber dll_lua_isnumber
- #define lua_isstring dll_lua_isstring
- #define lua_type dll_lua_type
- #define lua_rawequal dll_lua_rawequal
- #define lua_toboolean dll_lua_toboolean
- #define lua_tolstring dll_lua_tolstring
- #define lua_touserdata dll_lua_touserdata
-***************
-*** 94,109 ****
- #define lua_pushlightuserdata dll_lua_pushlightuserdata
- #define lua_getfield dll_lua_getfield
- #define lua_rawget dll_lua_rawget
- #define lua_createtable dll_lua_createtable
- #define lua_newuserdata dll_lua_newuserdata
- #define lua_getmetatable dll_lua_getmetatable
- #define lua_setfield dll_lua_setfield
- #define lua_rawset dll_lua_rawset
- #define lua_rawseti dll_lua_rawseti
-- #define lua_remove dll_lua_remove
- #define lua_setmetatable dll_lua_setmetatable
-- #define lua_call dll_lua_call
-- #define lua_pcall dll_lua_pcall
- /* libs */
- #define luaopen_base dll_luaopen_base
- #define luaopen_table dll_luaopen_table
---- 143,156 ----
- #define lua_pushlightuserdata dll_lua_pushlightuserdata
- #define lua_getfield dll_lua_getfield
- #define lua_rawget dll_lua_rawget
-+ #define lua_rawgeti dll_lua_rawgeti
- #define lua_createtable dll_lua_createtable
- #define lua_newuserdata dll_lua_newuserdata
- #define lua_getmetatable dll_lua_getmetatable
- #define lua_setfield dll_lua_setfield
- #define lua_rawset dll_lua_rawset
- #define lua_rawseti dll_lua_rawseti
- #define lua_setmetatable dll_lua_setmetatable
- /* libs */
- #define luaopen_base dll_luaopen_base
- #define luaopen_table dll_luaopen_table
-***************
-*** 116,147 ****
- #define luaL_openlibs dll_luaL_openlibs
-
- /* lauxlib */
- void (*dll_luaL_register) (lua_State *L, const char *libname, const luaL_Reg *l);
- int (*dll_luaL_typerror) (lua_State *L, int narg, const char *tname);
- const char *(*dll_luaL_checklstring) (lua_State *L, int numArg, size_t *l);
- lua_Integer (*dll_luaL_checkinteger) (lua_State *L, int numArg);
- lua_Integer (*dll_luaL_optinteger) (lua_State *L, int nArg, lua_Integer def);
- void (*dll_luaL_checktype) (lua_State *L, int narg, int t);
- int (*dll_luaL_error) (lua_State *L, const char *fmt, ...);
-- int (*dll_luaL_loadfile) (lua_State *L, const char *filename);
-- int (*dll_luaL_loadbuffer) (lua_State *L, const char *buff, size_t sz, const char *name);
- lua_State *(*dll_luaL_newstate) (void);
- void (*dll_luaL_buffinit) (lua_State *L, luaL_Buffer *B);
-- char *(*dll_luaL_prepbuffer) (luaL_Buffer *B);
- void (*dll_luaL_addlstring) (luaL_Buffer *B, const char *s, size_t l);
- void (*dll_luaL_pushresult) (luaL_Buffer *B);
- /* lua */
- void (*dll_lua_close) (lua_State *L);
- int (*dll_lua_gettop) (lua_State *L);
- void (*dll_lua_settop) (lua_State *L, int idx);
- void (*dll_lua_pushvalue) (lua_State *L, int idx);
- void (*dll_lua_replace) (lua_State *L, int idx);
- int (*dll_lua_isnumber) (lua_State *L, int idx);
- int (*dll_lua_isstring) (lua_State *L, int idx);
- int (*dll_lua_type) (lua_State *L, int idx);
- int (*dll_lua_rawequal) (lua_State *L, int idx1, int idx2);
-- lua_Number (*dll_lua_tonumber) (lua_State *L, int idx);
-- lua_Integer (*dll_lua_tointeger) (lua_State *L, int idx);
- int (*dll_lua_toboolean) (lua_State *L, int idx);
- const char *(*dll_lua_tolstring) (lua_State *L, int idx, size_t *len);
- void *(*dll_lua_touserdata) (lua_State *L, int idx);
---- 163,218 ----
- #define luaL_openlibs dll_luaL_openlibs
-
- /* lauxlib */
-+ #if LUA_VERSION_NUM <= 501
- void (*dll_luaL_register) (lua_State *L, const char *libname, const luaL_Reg *l);
-+ char *(*dll_luaL_prepbuffer) (luaL_Buffer *B);
-+ void (*dll_luaL_openlib) (lua_State *L, const char *libname, const luaL_Reg *l, int nup);
- int (*dll_luaL_typerror) (lua_State *L, int narg, const char *tname);
-+ int (*dll_luaL_loadfile) (lua_State *L, const char *filename);
-+ int (*dll_luaL_loadbuffer) (lua_State *L, const char *buff, size_t sz, const char *name);
-+ #else
-+ char *(*dll_luaL_prepbuffsize) (luaL_Buffer *B, size_t sz);
-+ void (*dll_luaL_setfuncs) (lua_State *L, const luaL_Reg *l, int nup);
-+ int (*dll_luaL_loadfilex) (lua_State *L, const char *filename, const char *mode);
-+ int (*dll_luaL_loadbufferx) (lua_State *L, const char *buff, size_t sz, const char *name, const char *mode);
-+ int (*dll_luaL_argerror) (lua_State *L, int numarg, const char *extramsg);
-+ #endif
- const char *(*dll_luaL_checklstring) (lua_State *L, int numArg, size_t *l);
- lua_Integer (*dll_luaL_checkinteger) (lua_State *L, int numArg);
- lua_Integer (*dll_luaL_optinteger) (lua_State *L, int nArg, lua_Integer def);
- void (*dll_luaL_checktype) (lua_State *L, int narg, int t);
- int (*dll_luaL_error) (lua_State *L, const char *fmt, ...);
- lua_State *(*dll_luaL_newstate) (void);
- void (*dll_luaL_buffinit) (lua_State *L, luaL_Buffer *B);
- void (*dll_luaL_addlstring) (luaL_Buffer *B, const char *s, size_t l);
- void (*dll_luaL_pushresult) (luaL_Buffer *B);
- /* lua */
-+ #if LUA_VERSION_NUM <= 501
-+ lua_Number (*dll_lua_tonumber) (lua_State *L, int idx);
-+ lua_Integer (*dll_lua_tointeger) (lua_State *L, int idx);
-+ void (*dll_lua_call) (lua_State *L, int nargs, int nresults);
-+ int (*dll_lua_pcall) (lua_State *L, int nargs, int nresults, int errfunc);
-+ #else
-+ lua_Number (*dll_lua_tonumberx) (lua_State *L, int idx, int *isnum);
-+ lua_Integer (*dll_lua_tointegerx) (lua_State *L, int idx, int *isnum);
-+ void (*dll_lua_callk) (lua_State *L, int nargs, int nresults, int ctx,
-+ lua_CFunction k);
-+ int (*dll_lua_pcallk) (lua_State *L, int nargs, int nresults, int errfunc,
-+ int ctx, lua_CFunction k);
-+ void (*dll_lua_getglobal) (lua_State *L, const char *var);
-+ void (*dll_lua_setglobal) (lua_State *L, const char *var);
-+ const char *(*dll_lua_typename) (lua_State *L, int tp);
-+ #endif
- void (*dll_lua_close) (lua_State *L);
- int (*dll_lua_gettop) (lua_State *L);
- void (*dll_lua_settop) (lua_State *L, int idx);
- void (*dll_lua_pushvalue) (lua_State *L, int idx);
- void (*dll_lua_replace) (lua_State *L, int idx);
-+ void (*dll_lua_remove) (lua_State *L, int idx);
- int (*dll_lua_isnumber) (lua_State *L, int idx);
- int (*dll_lua_isstring) (lua_State *L, int idx);
- int (*dll_lua_type) (lua_State *L, int idx);
- int (*dll_lua_rawequal) (lua_State *L, int idx1, int idx2);
- int (*dll_lua_toboolean) (lua_State *L, int idx);
- const char *(*dll_lua_tolstring) (lua_State *L, int idx, size_t *len);
- void *(*dll_lua_touserdata) (lua_State *L, int idx);
-***************
-*** 156,171 ****
- void (*dll_lua_pushlightuserdata) (lua_State *L, void *p);
- void (*dll_lua_getfield) (lua_State *L, int idx, const char *k);
- void (*dll_lua_rawget) (lua_State *L, int idx);
- void (*dll_lua_createtable) (lua_State *L, int narr, int nrec);
- void *(*dll_lua_newuserdata) (lua_State *L, size_t sz);
- int (*dll_lua_getmetatable) (lua_State *L, int objindex);
- void (*dll_lua_setfield) (lua_State *L, int idx, const char *k);
- void (*dll_lua_rawset) (lua_State *L, int idx);
- void (*dll_lua_rawseti) (lua_State *L, int idx, int n);
-- void (*dll_lua_remove) (lua_State *L, int idx);
- int (*dll_lua_setmetatable) (lua_State *L, int objindex);
-- void (*dll_lua_call) (lua_State *L, int nargs, int nresults);
-- int (*dll_lua_pcall) (lua_State *L, int nargs, int nresults, int errfunc);
- /* libs */
- int (*dll_luaopen_base) (lua_State *L);
- int (*dll_luaopen_table) (lua_State *L);
---- 227,240 ----
- void (*dll_lua_pushlightuserdata) (lua_State *L, void *p);
- void (*dll_lua_getfield) (lua_State *L, int idx, const char *k);
- void (*dll_lua_rawget) (lua_State *L, int idx);
-+ void (*dll_lua_rawgeti) (lua_State *L, int idx, int n);
- void (*dll_lua_createtable) (lua_State *L, int narr, int nrec);
- void *(*dll_lua_newuserdata) (lua_State *L, size_t sz);
- int (*dll_lua_getmetatable) (lua_State *L, int objindex);
- void (*dll_lua_setfield) (lua_State *L, int idx, const char *k);
- void (*dll_lua_rawset) (lua_State *L, int idx);
- void (*dll_lua_rawseti) (lua_State *L, int idx, int n);
- int (*dll_lua_setmetatable) (lua_State *L, int objindex);
- /* libs */
- int (*dll_luaopen_base) (lua_State *L);
- int (*dll_luaopen_table) (lua_State *L);
-***************
-*** 185,216 ****
-
- static const luaV_Reg luaV_dll[] = {
- /* lauxlib */
- {"luaL_register", (luaV_function) &dll_luaL_register},
- {"luaL_typerror", (luaV_function) &dll_luaL_typerror},
- {"luaL_checklstring", (luaV_function) &dll_luaL_checklstring},
- {"luaL_checkinteger", (luaV_function) &dll_luaL_checkinteger},
- {"luaL_optinteger", (luaV_function) &dll_luaL_optinteger},
- {"luaL_checktype", (luaV_function) &dll_luaL_checktype},
- {"luaL_error", (luaV_function) &dll_luaL_error},
-- {"luaL_loadfile", (luaV_function) &dll_luaL_loadfile},
-- {"luaL_loadbuffer", (luaV_function) &dll_luaL_loadbuffer},
- {"luaL_newstate", (luaV_function) &dll_luaL_newstate},
- {"luaL_buffinit", (luaV_function) &dll_luaL_buffinit},
-- {"luaL_prepbuffer", (luaV_function) &dll_luaL_prepbuffer},
- {"luaL_addlstring", (luaV_function) &dll_luaL_addlstring},
- {"luaL_pushresult", (luaV_function) &dll_luaL_pushresult},
- /* lua */
- {"lua_close", (luaV_function) &dll_lua_close},
- {"lua_gettop", (luaV_function) &dll_lua_gettop},
- {"lua_settop", (luaV_function) &dll_lua_settop},
- {"lua_pushvalue", (luaV_function) &dll_lua_pushvalue},
- {"lua_replace", (luaV_function) &dll_lua_replace},
- {"lua_isnumber", (luaV_function) &dll_lua_isnumber},
- {"lua_isstring", (luaV_function) &dll_lua_isstring},
- {"lua_type", (luaV_function) &dll_lua_type},
- {"lua_rawequal", (luaV_function) &dll_lua_rawequal},
-- {"lua_tonumber", (luaV_function) &dll_lua_tonumber},
-- {"lua_tointeger", (luaV_function) &dll_lua_tointeger},
- {"lua_toboolean", (luaV_function) &dll_lua_toboolean},
- {"lua_tolstring", (luaV_function) &dll_lua_tolstring},
- {"lua_touserdata", (luaV_function) &dll_lua_touserdata},
---- 254,307 ----
-
- static const luaV_Reg luaV_dll[] = {
- /* lauxlib */
-+ #if LUA_VERSION_NUM <= 501
- {"luaL_register", (luaV_function) &dll_luaL_register},
-+ {"luaL_prepbuffer", (luaV_function) &dll_luaL_prepbuffer},
-+ {"luaL_openlib", (luaV_function) &dll_luaL_openlib},
- {"luaL_typerror", (luaV_function) &dll_luaL_typerror},
-+ {"luaL_loadfile", (luaV_function) &dll_luaL_loadfile},
-+ {"luaL_loadbuffer", (luaV_function) &dll_luaL_loadbuffer},
-+ #else
-+ {"luaL_prepbuffsize", (luaV_function) &dll_luaL_prepbuffsize},
-+ {"luaL_setfuncs", (luaV_function) &dll_luaL_setfuncs},
-+ {"luaL_loadfilex", (luaV_function) &dll_luaL_loadfilex},
-+ {"luaL_loadbufferx", (luaV_function) &dll_luaL_loadbufferx},
-+ {"luaL_argerror", (luaV_function) &dll_luaL_argerror},
-+ #endif
- {"luaL_checklstring", (luaV_function) &dll_luaL_checklstring},
- {"luaL_checkinteger", (luaV_function) &dll_luaL_checkinteger},
- {"luaL_optinteger", (luaV_function) &dll_luaL_optinteger},
- {"luaL_checktype", (luaV_function) &dll_luaL_checktype},
- {"luaL_error", (luaV_function) &dll_luaL_error},
- {"luaL_newstate", (luaV_function) &dll_luaL_newstate},
- {"luaL_buffinit", (luaV_function) &dll_luaL_buffinit},
- {"luaL_addlstring", (luaV_function) &dll_luaL_addlstring},
- {"luaL_pushresult", (luaV_function) &dll_luaL_pushresult},
- /* lua */
-+ #if LUA_VERSION_NUM <= 501
-+ {"lua_tonumber", (luaV_function) &dll_lua_tonumber},
-+ {"lua_tointeger", (luaV_function) &dll_lua_tointeger},
-+ {"lua_call", (luaV_function) &dll_lua_call},
-+ {"lua_pcall", (luaV_function) &dll_lua_pcall},
-+ #else
-+ {"lua_tonumberx", (luaV_function) &dll_lua_tonumberx},
-+ {"lua_tointegerx", (luaV_function) &dll_lua_tointegerx},
-+ {"lua_callk", (luaV_function) &dll_lua_callk},
-+ {"lua_pcallk", (luaV_function) &dll_lua_pcallk},
-+ {"lua_getglobal", (luaV_function) &dll_lua_getglobal},
-+ {"lua_setglobal", (luaV_function) &dll_lua_setglobal},
-+ {"lua_typename", (luaV_function) &dll_lua_typename},
-+ #endif
- {"lua_close", (luaV_function) &dll_lua_close},
- {"lua_gettop", (luaV_function) &dll_lua_gettop},
- {"lua_settop", (luaV_function) &dll_lua_settop},
- {"lua_pushvalue", (luaV_function) &dll_lua_pushvalue},
- {"lua_replace", (luaV_function) &dll_lua_replace},
-+ {"lua_remove", (luaV_function) &dll_lua_remove},
- {"lua_isnumber", (luaV_function) &dll_lua_isnumber},
- {"lua_isstring", (luaV_function) &dll_lua_isstring},
- {"lua_type", (luaV_function) &dll_lua_type},
- {"lua_rawequal", (luaV_function) &dll_lua_rawequal},
- {"lua_toboolean", (luaV_function) &dll_lua_toboolean},
- {"lua_tolstring", (luaV_function) &dll_lua_tolstring},
- {"lua_touserdata", (luaV_function) &dll_lua_touserdata},
-***************
-*** 225,240 ****
- {"lua_pushlightuserdata", (luaV_function) &dll_lua_pushlightuserdata},
- {"lua_getfield", (luaV_function) &dll_lua_getfield},
- {"lua_rawget", (luaV_function) &dll_lua_rawget},
- {"lua_createtable", (luaV_function) &dll_lua_createtable},
- {"lua_newuserdata", (luaV_function) &dll_lua_newuserdata},
- {"lua_getmetatable", (luaV_function) &dll_lua_getmetatable},
- {"lua_setfield", (luaV_function) &dll_lua_setfield},
- {"lua_rawset", (luaV_function) &dll_lua_rawset},
- {"lua_rawseti", (luaV_function) &dll_lua_rawseti},
-- {"lua_remove", (luaV_function) &dll_lua_remove},
- {"lua_setmetatable", (luaV_function) &dll_lua_setmetatable},
-- {"lua_call", (luaV_function) &dll_lua_call},
-- {"lua_pcall", (luaV_function) &dll_lua_pcall},
- /* libs */
- {"luaopen_base", (luaV_function) &dll_luaopen_base},
- {"luaopen_table", (luaV_function) &dll_luaopen_table},
---- 316,329 ----
- {"lua_pushlightuserdata", (luaV_function) &dll_lua_pushlightuserdata},
- {"lua_getfield", (luaV_function) &dll_lua_getfield},
- {"lua_rawget", (luaV_function) &dll_lua_rawget},
-+ {"lua_rawgeti", (luaV_function) &dll_lua_rawgeti},
- {"lua_createtable", (luaV_function) &dll_lua_createtable},
- {"lua_newuserdata", (luaV_function) &dll_lua_newuserdata},
- {"lua_getmetatable", (luaV_function) &dll_lua_getmetatable},
- {"lua_setfield", (luaV_function) &dll_lua_setfield},
- {"lua_rawset", (luaV_function) &dll_lua_rawset},
- {"lua_rawseti", (luaV_function) &dll_lua_rawseti},
- {"lua_setmetatable", (luaV_function) &dll_lua_setmetatable},
- /* libs */
- {"luaopen_base", (luaV_function) &dll_luaopen_base},
- {"luaopen_table", (luaV_function) &dll_luaopen_table},
-***************
-*** 294,299 ****
---- 383,398 ----
-
- #endif /* DYNAMIC_LUA */
-
-+ #if LUA_VERSION_NUM > 501
-+ static int
-+ luaL_typeerror (lua_State *L, int narg, const char *tname)
-+ {
-+ const char *msg = lua_pushfstring(L, "%s expected, got %s",
-+ tname, luaL_typename(L, narg));
-+ return luaL_argerror(L, narg, msg);
-+ }
-+ #endif
-+
-
- /* ======= Internal ======= */
-
-***************
-*** 327,343 ****
- }
-
- static void *
- luaV_checkudata(lua_State *L, int ud, const char *tname)
- {
- void *p = luaV_toudata(L, ud, tname);
-! if (p == NULL) luaL_typerror(L, ud, tname);
- return p;
- }
-
- static void
- luaV_pushtypval(lua_State *L, typval_T *tv)
- {
-! if (tv == NULL) luaL_error(L, "null type");
- switch (tv->v_type)
- {
- case VAR_STRING:
---- 426,460 ----
- }
-
- static void *
-+ luaV_checkcache(lua_State *L, void *p)
-+ {
-+ luaV_getudata(L, p);
-+ if (lua_isnil(L, -1)) luaL_error(L, "invalid object");
-+ lua_pop(L, 1);
-+ return p;
-+ }
-+
-+ #define luaV_unbox(L,luatyp,ud) (*((luatyp *) lua_touserdata((L),(ud))))
-+
-+ #define luaV_checkvalid(L,luatyp,ud) \
-+ luaV_checkcache((L), (void *) luaV_unbox((L),luatyp,(ud)))
-+
-+ static void *
- luaV_checkudata(lua_State *L, int ud, const char *tname)
- {
- void *p = luaV_toudata(L, ud, tname);
-! if (p == NULL) luaL_typeerror(L, ud, tname);
- return p;
- }
-
- static void
- luaV_pushtypval(lua_State *L, typval_T *tv)
- {
-! if (tv == NULL)
-! {
-! lua_pushnil(L);
-! return;
-! }
- switch (tv->v_type)
- {
- case VAR_STRING:
-***************
-*** 351,418 ****
- lua_pushnumber(L, (lua_Number) tv->vval.v_float);
- break;
- #endif
-! case VAR_LIST: {
-! list_T *l = tv->vval.v_list;
-
-! if (l != NULL)
- {
-! /* check cache */
-! lua_pushlightuserdata(L, (void *) l);
-! lua_rawget(L, LUA_ENVIRONINDEX);
-! if (lua_isnil(L, -1)) /* not interned? */
- {
-! listitem_T *li;
-! int n = 0;
-! lua_pop(L, 1); /* nil */
-! lua_newtable(L);
-! lua_pushlightuserdata(L, (void *) l);
-! lua_pushvalue(L, -2);
-! lua_rawset(L, LUA_ENVIRONINDEX);
-! for (li = l->lv_first; li != NULL; li = li->li_next)
-! {
-! luaV_pushtypval(L, &li->li_tv);
-! lua_rawseti(L, -2, ++n);
-! }
- }
-! }
-! else lua_pushnil(L);
-! break;
-! }
-! case VAR_DICT: {
-! dict_T *d = tv->vval.v_dict;
-!
-! if (d != NULL)
-! {
-! /* check cache */
-! lua_pushlightuserdata(L, (void *) d);
-! lua_rawget(L, LUA_ENVIRONINDEX);
-! if (lua_isnil(L, -1)) /* not interned? */
- {
-! hashtab_T *ht = &d->dv_hashtab;
-! hashitem_T *hi;
-! int n = ht->ht_used; /* remaining items */
-! lua_pop(L, 1); /* nil */
-! lua_newtable(L);
-! lua_pushlightuserdata(L, (void *) d);
-! lua_pushvalue(L, -2);
-! lua_rawset(L, LUA_ENVIRONINDEX);
-! for (hi = ht->ht_array; n > 0; hi++)
-! {
-! if (!HASHITEM_EMPTY(hi))
-! {
-! dictitem_T *di = dict_lookup(hi);
-! luaV_pushtypval(L, &di->di_tv);
-! lua_setfield(L, -2, (char *) hi->hi_key);
-! n--;
-! }
-! }
- }
- }
-- else lua_pushnil(L);
- break;
- }
- default:
-! luaL_error(L, "invalid type");
- }
- }
-
---- 468,537 ----
- lua_pushnumber(L, (lua_Number) tv->vval.v_float);
- break;
- #endif
-! case VAR_LIST:
-! luaV_pushlist(L, tv->vval.v_list);
-! break;
-! case VAR_DICT:
-! luaV_pushdict(L, tv->vval.v_dict);
-! break;
-! default:
-! lua_pushnil(L);
-! }
-! }
-
-! /* converts lua value at 'pos' to typval 'tv' */
-! static void
-! luaV_totypval (lua_State *L, int pos, typval_T *tv)
-! {
-! switch(lua_type(L, pos)) {
-! case LUA_TBOOLEAN:
-! tv->v_type = VAR_NUMBER;
-! tv->vval.v_number = (varnumber_T) lua_toboolean(L, pos);
-! break;
-! case LUA_TSTRING:
-! tv->v_type = VAR_STRING;
-! tv->vval.v_string = vim_strsave((char_u *) lua_tostring(L, pos));
-! break;
-! case LUA_TNUMBER:
-! #ifdef FEAT_FLOAT
-! tv->v_type = VAR_FLOAT;
-! tv->vval.v_float = (float_T) lua_tonumber(L, pos);
-! #else
-! tv->v_type = VAR_NUMBER;
-! tv->vval.v_number = (varnumber_T) lua_tointeger(L, pos);
-! #endif
-! break;
-! case LUA_TUSERDATA: {
-! void *p = lua_touserdata(L, pos);
-! if (lua_getmetatable(L, pos)) /* has metatable? */
- {
-! /* check list */
-! luaV_getfield(L, LUAVIM_LIST);
-! if (lua_rawequal(L, -1, -2))
- {
-! tv->v_type = VAR_LIST;
-! tv->vval.v_list = *((luaV_List *) p);
-! ++tv->vval.v_list->lv_refcount;
-! lua_pop(L, 2); /* MTs */
-! return;
- }
-! /* check dict */
-! luaV_getfield(L, LUAVIM_DICT);
-! if (lua_rawequal(L, -1, -3))
- {
-! tv->v_type = VAR_DICT;
-! tv->vval.v_dict = *((luaV_Dict *) p);
-! ++tv->vval.v_dict->dv_refcount;
-! lua_pop(L, 3); /* MTs */
-! return;
- }
-+ lua_pop(L, 3); /* MTs */
- }
- break;
- }
- default:
-! tv->v_type = VAR_NUMBER;
-! tv->vval.v_number = 0;
- }
- }
-
-***************
-*** 481,569 ****
- lua_pop(L, 2); /* original and modified strings */
- }
-
-
-! /* ======= Buffer type ======= */
-
-! static luaV_Buffer *
-! luaV_newbuffer(lua_State *L, buf_T *buf)
- {
-! luaV_Buffer *b = (luaV_Buffer *) lua_newuserdata(L, sizeof(luaV_Buffer));
-! *b = buf;
-! lua_pushlightuserdata(L, (void *) buf);
-! lua_pushvalue(L, -2);
-! lua_rawset(L, LUA_ENVIRONINDEX); /* env[buf] = udata */
-! /* to avoid GC, store as key in env */
-! lua_pushvalue(L, -1);
-! lua_pushboolean(L, 1);
-! lua_rawset(L, LUA_ENVIRONINDEX); /* env[udata] = true */
-! /* set metatable */
-! luaV_getfield(L, LUAVIM_BUFFER);
- lua_setmetatable(L, -2);
-! return b;
- }
-
-! static luaV_Buffer *
-! luaV_pushbuffer (lua_State *L, buf_T *buf)
- {
-! luaV_Buffer *b = NULL;
-! if (buf == NULL)
-! lua_pushnil(L);
-! else {
-! lua_pushlightuserdata(L, (void *) buf);
-! lua_rawget(L, LUA_ENVIRONINDEX);
-! if (lua_isnil(L, -1)) /* not interned? */
- {
-! lua_pop(L, 1);
-! b = luaV_newbuffer(L, buf);
- }
- else
-! b = (luaV_Buffer *) lua_touserdata(L, -1);
- }
-! return b;
- }
-
-! /* Buffer metamethods */
-
- static int
-! luaV_buffer_tostring(lua_State *L)
- {
-! lua_pushfstring(L, "%s: %p", LUAVIM_BUFFER, lua_touserdata(L, 1));
- return 1;
- }
-
- static int
- luaV_buffer_len(lua_State *L)
- {
-! luaV_Buffer *b = lua_touserdata(L, 1);
-! lua_pushinteger(L, (*b)->b_ml.ml_line_count);
- return 1;
- }
-
- static int
- luaV_buffer_call(lua_State *L)
- {
-! luaV_Buffer *b = (luaV_Buffer *) lua_touserdata(L, 1);
- lua_settop(L, 1);
-! set_curbuf(*b, DOBUF_SPLIT);
- return 1;
- }
-
- static int
- luaV_buffer_index(lua_State *L)
- {
-! luaV_Buffer *b = (luaV_Buffer *) lua_touserdata(L, 1);
- linenr_T n = (linenr_T) lua_tointeger(L, 2);
-! if (n > 0 && n <= (*b)->b_ml.ml_line_count)
-! luaV_pushline(L, *b, n);
- else if (lua_isstring(L, 2))
- {
- const char *s = lua_tostring(L, 2);
- if (strncmp(s, "name", 4) == 0)
-! lua_pushstring(L, (char *) (*b)->b_sfname);
- else if (strncmp(s, "fname", 5) == 0)
-! lua_pushstring(L, (char *) (*b)->b_ffname);
- else if (strncmp(s, "number", 6) == 0)
-! lua_pushinteger(L, (*b)->b_fnum);
- /* methods */
- else if (strncmp(s, "insert", 6) == 0
- || strncmp(s, "next", 4) == 0
---- 600,1107 ----
- lua_pop(L, 2); /* original and modified strings */
- }
-
-+ #define luaV_newtype(typ,tname,luatyp,luatname) \
-+ static luatyp * \
-+ luaV_new##tname (lua_State *L, typ *obj) \
-+ { \
-+ luatyp *o = (luatyp *) lua_newuserdata(L, sizeof(luatyp)); \
-+ *o = obj; \
-+ luaV_setudata(L, obj); /* cache[obj] = udata */ \
-+ luaV_getfield(L, luatname); \
-+ lua_setmetatable(L, -2); \
-+ return o; \
-+ }
-+
-+ #define luaV_pushtype(typ,tname,luatyp) \
-+ static luatyp * \
-+ luaV_push##tname (lua_State *L, typ *obj) \
-+ { \
-+ luatyp *o = NULL; \
-+ if (obj == NULL) \
-+ lua_pushnil(L); \
-+ else { \
-+ luaV_getudata(L, obj); \
-+ if (lua_isnil(L, -1)) /* not interned? */ \
-+ { \
-+ lua_pop(L, 1); \
-+ o = luaV_new##tname(L, obj); \
-+ } \
-+ else \
-+ o = (luatyp *) lua_touserdata(L, -1); \
-+ } \
-+ return o; \
-+ }
-+
-+ #define luaV_type_tostring(tname,luatname) \
-+ static int \
-+ luaV_##tname##_tostring (lua_State *L) \
-+ { \
-+ lua_pushfstring(L, "%s: %p", luatname, lua_touserdata(L, 1)); \
-+ return 1; \
-+ }
-+
-
-! /* adapted from eval.c */
-!
-! #define listitem_alloc() (listitem_T *)alloc(sizeof(listitem_T))
-!
-! static listitem_T *
-! list_find (list_T *l, long n)
-! {
-! listitem_T *li;
-! if (l == NULL || n < -l->lv_len || n >= l->lv_len)
-! return NULL;
-! if (n < 0) /* search backward? */
-! for (li = l->lv_last; n < -1; li = li->li_prev)
-! n++;
-! else /* search forward */
-! for (li = l->lv_first; n > 0; li = li->li_next)
-! n--;
-! return li;
-! }
-
-! static void
-! list_remove (list_T *l, listitem_T *li)
- {
-! listwatch_T *lw;
-! --l->lv_len;
-! /* fix watchers */
-! for (lw = l->lv_watch; lw != NULL; lw = lw->lw_next)
-! if (lw->lw_item == li)
-! lw->lw_item = li->li_next;
-! /* fix list pointers */
-! if (li->li_next == NULL) /* last? */
-! l->lv_last = li->li_prev;
-! else
-! li->li_next->li_prev = li->li_prev;
-! if (li->li_prev == NULL) /* first? */
-! l->lv_first = li->li_next;
-! else
-! li->li_prev->li_next = li->li_next;
-! l->lv_idx_item = NULL;
-! }
-!
-! static void
-! list_append(list_T *l, listitem_T *item)
-! {
-! if (l->lv_last == NULL) /* empty list? */
-! l->lv_first = item;
-! else
-! l->lv_last->li_next = item;
-! item->li_prev = l->lv_last;
-! item->li_next = NULL;
-! l->lv_last = item;
-! ++l->lv_len;
-! }
-!
-! static int
-! list_insert_tv(list_T *l, typval_T *tv, listitem_T *item)
-! {
-! listitem_T *ni = listitem_alloc();
-!
-! if (ni == NULL)
-! return FAIL;
-! copy_tv(tv, &ni->li_tv);
-! if (item == NULL)
-! list_append(l, ni);
-! else
-! {
-! ni->li_prev = item->li_prev;
-! ni->li_next = item;
-! if (item->li_prev == NULL)
-! {
-! l->lv_first = ni;
-! ++l->lv_idx;
-! }
-! else
-! {
-! item->li_prev->li_next = ni;
-! l->lv_idx_item = NULL;
-! }
-! item->li_prev = ni;
-! ++l->lv_len;
-! }
-! return OK;
-! }
-!
-! /* set references */
-!
-! static void set_ref_in_tv (typval_T *tv, int copyID);
-!
-! static void
-! set_ref_in_dict(dict_T *d, int copyID)
-! {
-! hashtab_T *ht = &d->dv_hashtab;
-! int n = ht->ht_used;
-! hashitem_T *hi;
-! for (hi = ht->ht_array; n > 0; ++hi)
-! if (!HASHITEM_EMPTY(hi))
-! {
-! dictitem_T *di = dict_lookup(hi);
-! set_ref_in_tv(&di->di_tv, copyID);
-! --n;
-! }
-! }
-!
-! static void
-! set_ref_in_list(list_T *l, int copyID)
-! {
-! listitem_T *li;
-! for (li = l->lv_first; li != NULL; li = li->li_next)
-! set_ref_in_tv(&li->li_tv, copyID);
-! }
-!
-! static void
-! set_ref_in_tv(typval_T *tv, int copyID)
-! {
-! if (tv->v_type == VAR_LIST)
-! {
-! list_T *l = tv->vval.v_list;
-! if (l != NULL && l->lv_copyID != copyID)
-! {
-! l->lv_copyID = copyID;
-! set_ref_in_list(l, copyID);
-! }
-! }
-! else if (tv->v_type == VAR_DICT)
-! {
-! dict_T *d = tv->vval.v_dict;
-! if (d != NULL && d->dv_copyID != copyID)
-! {
-! d->dv_copyID = copyID;
-! set_ref_in_dict(d, copyID);
-! }
-! }
-! }
-!
-!
-! /* ======= List type ======= */
-!
-! static luaV_List *
-! luaV_newlist (lua_State *L, list_T *lis)
-! {
-! luaV_List *l = (luaV_List *) lua_newuserdata(L, sizeof(luaV_List));
-! *l = lis;
-! lis->lv_refcount++; /* reference in Lua */
-! luaV_setudata(L, lis); /* cache[lis] = udata */
-! luaV_getfield(L, LUAVIM_LIST);
- lua_setmetatable(L, -2);
-! return l;
- }
-
-! luaV_pushtype(list_T, list, luaV_List)
-! luaV_type_tostring(list, LUAVIM_LIST)
-!
-! static int
-! luaV_list_gc (lua_State *L)
- {
-! list_unref(luaV_unbox(L, luaV_List, 1));
-! return 0;
-! }
-!
-! static int
-! luaV_list_len (lua_State *L)
-! {
-! list_T *l = luaV_unbox(L, luaV_List, 1);
-! lua_pushinteger(L, (l == NULL) ? 0 : (int) l->lv_len);
-! return 1;
-! }
-!
-! static int
-! luaV_list_iter (lua_State *L)
-! {
-! listitem_T *li = (listitem_T *) lua_touserdata(L, lua_upvalueindex(2));
-! if (li == NULL) return 0;
-! luaV_pushtypval(L, &li->li_tv);
-! lua_pushlightuserdata(L, (void *) li->li_next);
-! lua_replace(L, lua_upvalueindex(2));
-! return 1;
-! }
-!
-! static int
-! luaV_list_call (lua_State *L)
-! {
-! list_T *l = luaV_unbox(L, luaV_List, 1);
-! lua_pushvalue(L, lua_upvalueindex(1)); /* pass cache table along */
-! lua_pushlightuserdata(L, (void *) l->lv_first);
-! lua_pushcclosure(L, luaV_list_iter, 2);
-! return 1;
-! }
-!
-! static int
-! luaV_list_index (lua_State *L)
-! {
-! list_T *l = luaV_unbox(L, luaV_List, 1);
-! if (lua_isnumber(L, 2)) /* list item? */
-! {
-! listitem_T *li = list_find(l, (long) luaL_checkinteger(L, 2));
-! if (li == NULL)
-! lua_pushnil(L);
-! else
-! luaV_pushtypval(L, &li->li_tv);
-! }
-! else if (lua_isstring(L, 2)) /* method? */
-! {
-! const char *s = lua_tostring(L, 2);
-! if (strncmp(s, "add", 3) == 0
-! || strncmp(s, "insert", 6) == 0
-! || strncmp(s, "extend", 6) == 0)
- {
-! lua_getmetatable(L, 1);
-! lua_getfield(L, -1, s);
- }
- else
-! lua_pushnil(L);
- }
-! else
-! lua_pushnil(L);
-! return 1;
- }
-
-! static int
-! luaV_list_newindex (lua_State *L)
-! {
-! list_T *l = luaV_unbox(L, luaV_List, 1);
-! long n = (long) luaL_checkinteger(L, 2);
-! listitem_T *li;
-! if (l->lv_lock)
-! luaL_error(L, "list is locked");
-! li = list_find(l, n);
-! if (li == NULL) return 0;
-! if (lua_isnil(L, 3)) /* remove? */
-! {
-! list_remove(l, li);
-! clear_tv(&li->li_tv);
-! vim_free(li);
-! }
-! else
-! {
-! typval_T v;
-! luaV_totypval(L, 3, &v);
-! clear_tv(&li->li_tv);
-! copy_tv(&v, &li->li_tv);
-! }
-! return 0;
-! }
-
- static int
-! luaV_list_add (lua_State *L)
- {
-! luaV_List *lis = luaV_checkudata(L, 1, LUAVIM_LIST);
-! list_T *l = (list_T *) luaV_checkcache(L, (void *) *lis);
-! listitem_T *li;
-! if (l->lv_lock)
-! luaL_error(L, "list is locked");
-! li = listitem_alloc();
-! if (li != NULL)
-! {
-! typval_T v;
-! lua_settop(L, 2);
-! luaV_totypval(L, 2, &v);
-! copy_tv(&v, &li->li_tv);
-! list_append(l, li);
-! }
-! lua_settop(L, 1);
- return 1;
- }
-
- static int
-+ luaV_list_insert (lua_State *L)
-+ {
-+ luaV_List *lis = luaV_checkudata(L, 1, LUAVIM_LIST);
-+ list_T *l = (list_T *) luaV_checkcache(L, (void *) *lis);
-+ long pos = luaL_optlong(L, 3, 0);
-+ listitem_T *li = NULL;
-+ typval_T v;
-+ if (l->lv_lock)
-+ luaL_error(L, "list is locked");
-+ if (pos < l->lv_len)
-+ {
-+ li = list_find(l, pos);
-+ if (li == NULL)
-+ luaL_error(L, "invalid position");
-+ }
-+ lua_settop(L, 2);
-+ luaV_totypval(L, 2, &v);
-+ list_insert_tv(l, &v, li);
-+ lua_settop(L, 1);
-+ return 1;
-+ }
-+
-+ static const luaL_Reg luaV_List_mt[] = {
-+ {"__tostring", luaV_list_tostring},
-+ {"__gc", luaV_list_gc},
-+ {"__len", luaV_list_len},
-+ {"__call", luaV_list_call},
-+ {"__index", luaV_list_index},
-+ {"__newindex", luaV_list_newindex},
-+ {"add", luaV_list_add},
-+ {"insert", luaV_list_insert},
-+ {NULL, NULL}
-+ };
-+
-+
-+ /* ======= Dict type ======= */
-+
-+ static luaV_Dict *
-+ luaV_newdict (lua_State *L, dict_T *dic)
-+ {
-+ luaV_Dict *d = (luaV_Dict *) lua_newuserdata(L, sizeof(luaV_Dict));
-+ *d = dic;
-+ dic->dv_refcount++; /* reference in Lua */
-+ luaV_setudata(L, dic); /* cache[dic] = udata */
-+ luaV_getfield(L, LUAVIM_DICT);
-+ lua_setmetatable(L, -2);
-+ return d;
-+ }
-+
-+ luaV_pushtype(dict_T, dict, luaV_Dict)
-+ luaV_type_tostring(dict, LUAVIM_DICT)
-+
-+ static int
-+ luaV_dict_gc (lua_State *L)
-+ {
-+ dict_unref(luaV_unbox(L, luaV_Dict, 1));
-+ return 0;
-+ }
-+
-+ static int
-+ luaV_dict_len (lua_State *L)
-+ {
-+ dict_T *d = luaV_unbox(L, luaV_Dict, 1);
-+ lua_pushinteger(L, (d == NULL) ? 0 : (int) d->dv_hashtab.ht_used);
-+ return 1;
-+ }
-+
-+ static int
-+ luaV_dict_iter (lua_State *L)
-+ {
-+ hashitem_T *hi = (hashitem_T *) lua_touserdata(L, lua_upvalueindex(2));
-+ int n = lua_tointeger(L, lua_upvalueindex(3));
-+ dictitem_T *di;
-+ if (n <= 0) return 0;
-+ while (HASHITEM_EMPTY(hi)) hi++;
-+ di = dict_lookup(hi);
-+ lua_pushstring(L, (char *) hi->hi_key);
-+ luaV_pushtypval(L, &di->di_tv);
-+ lua_pushlightuserdata(L, (void *) (hi + 1));
-+ lua_replace(L, lua_upvalueindex(2));
-+ lua_pushinteger(L, n - 1);
-+ lua_replace(L, lua_upvalueindex(3));
-+ return 2;
-+ }
-+
-+ static int
-+ luaV_dict_call (lua_State *L)
-+ {
-+ dict_T *d = luaV_unbox(L, luaV_Dict, 1);
-+ hashtab_T *ht = &d->dv_hashtab;
-+ lua_pushvalue(L, lua_upvalueindex(1)); /* pass cache table along */
-+ lua_pushlightuserdata(L, (void *) ht->ht_array);
-+ lua_pushinteger(L, ht->ht_used); /* # remaining items */
-+ lua_pushcclosure(L, luaV_dict_iter, 3);
-+ return 1;
-+ }
-+
-+ static int
-+ luaV_dict_index (lua_State *L)
-+ {
-+ dict_T *d = luaV_unbox(L, luaV_Dict, 1);
-+ char_u *key = (char_u *) luaL_checkstring(L, 2);
-+ dictitem_T *di = dict_find(d, key, -1);
-+ if (di == NULL)
-+ lua_pushnil(L);
-+ else
-+ luaV_pushtypval(L, &di->di_tv);
-+ return 1;
-+ }
-+
-+ static int
-+ luaV_dict_newindex (lua_State *L)
-+ {
-+ dict_T *d = luaV_unbox(L, luaV_Dict, 1);
-+ char_u *key = (char_u *) luaL_checkstring(L, 2);
-+ dictitem_T *di;
-+ if (d->dv_lock)
-+ luaL_error(L, "dict is locked");
-+ di = dict_find(d, key, -1);
-+ if (di == NULL) /* non-existing key? */
-+ {
-+ if (lua_isnil(L, 3)) return 0;
-+ di = dictitem_alloc(key);
-+ if (di == NULL) return 0;
-+ if (dict_add(d, di) == FAIL)
-+ {
-+ vim_free(di);
-+ return 0;
-+ }
-+ }
-+ else
-+ clear_tv(&di->di_tv);
-+ if (lua_isnil(L, 3)) /* remove? */
-+ {
-+ hashitem_T *hi = hash_find(&d->dv_hashtab, di->di_key);
-+ hash_remove(&d->dv_hashtab, hi);
-+ dictitem_free(di);
-+ }
-+ else {
-+ typval_T v;
-+ luaV_totypval(L, 3, &v);
-+ copy_tv(&v, &di->di_tv);
-+ }
-+ return 0;
-+ }
-+
-+ static const luaL_Reg luaV_Dict_mt[] = {
-+ {"__tostring", luaV_dict_tostring},
-+ {"__gc", luaV_dict_gc},
-+ {"__len", luaV_dict_len},
-+ {"__call", luaV_dict_call},
-+ {"__index", luaV_dict_index},
-+ {"__newindex", luaV_dict_newindex},
-+ {NULL, NULL}
-+ };
-+
-+
-+ /* ======= Buffer type ======= */
-+
-+ luaV_newtype(buf_T, buffer, luaV_Buffer, LUAVIM_BUFFER)
-+ luaV_pushtype(buf_T, buffer, luaV_Buffer)
-+ luaV_type_tostring(buffer, LUAVIM_BUFFER)
-+
-+ static int
- luaV_buffer_len(lua_State *L)
- {
-! buf_T *b = (buf_T *) luaV_checkvalid(L, luaV_Buffer, 1);
-! lua_pushinteger(L, b->b_ml.ml_line_count);
- return 1;
- }
-
- static int
- luaV_buffer_call(lua_State *L)
- {
-! buf_T *b = (buf_T *) luaV_checkvalid(L, luaV_Buffer, 1);
- lua_settop(L, 1);
-! set_curbuf(b, DOBUF_SPLIT);
- return 1;
- }
-
- static int
- luaV_buffer_index(lua_State *L)
- {
-! buf_T *b = (buf_T *) luaV_checkvalid(L, luaV_Buffer, 1);
- linenr_T n = (linenr_T) lua_tointeger(L, 2);
-! if (n > 0 && n <= b->b_ml.ml_line_count)
-! luaV_pushline(L, b, n);
- else if (lua_isstring(L, 2))
- {
- const char *s = lua_tostring(L, 2);
- if (strncmp(s, "name", 4) == 0)
-! lua_pushstring(L, (char *) b->b_sfname);
- else if (strncmp(s, "fname", 5) == 0)
-! lua_pushstring(L, (char *) b->b_ffname);
- else if (strncmp(s, "number", 6) == 0)
-! lua_pushinteger(L, b->b_fnum);
- /* methods */
- else if (strncmp(s, "insert", 6) == 0
- || strncmp(s, "next", 4) == 0
-***************
-*** 584,600 ****
- static int
- luaV_buffer_newindex(lua_State *L)
- {
-! luaV_Buffer *b = (luaV_Buffer *) lua_touserdata(L, 1);
- linenr_T n = (linenr_T) luaL_checkinteger(L, 2);
- #ifdef HAVE_SANDBOX
- luaV_checksandbox(L);
- #endif
-! if (n < 1 || n > (*b)->b_ml.ml_line_count)
- luaL_error(L, "invalid line number");
- if (lua_isnil(L, 3)) /* delete line */
- {
- buf_T *buf = curbuf;
-! curbuf = *b;
- if (u_savedel(n, 1L) == FAIL)
- {
- curbuf = buf;
---- 1122,1138 ----
- static int
- luaV_buffer_newindex(lua_State *L)
- {
-! buf_T *b = (buf_T *) luaV_checkvalid(L, luaV_Buffer, 1);
- linenr_T n = (linenr_T) luaL_checkinteger(L, 2);
- #ifdef HAVE_SANDBOX
- luaV_checksandbox(L);
- #endif
-! if (n < 1 || n > b->b_ml.ml_line_count)
- luaL_error(L, "invalid line number");
- if (lua_isnil(L, 3)) /* delete line */
- {
- buf_T *buf = curbuf;
-! curbuf = b;
- if (u_savedel(n, 1L) == FAIL)
- {
- curbuf = buf;
-***************
-*** 607,613 ****
- }
- else {
- deleted_lines_mark(n, 1L);
-! if (*b == curwin->w_buffer) /* fix cursor in current window? */
- {
- if (curwin->w_cursor.lnum >= n)
- {
---- 1145,1151 ----
- }
- else {
- deleted_lines_mark(n, 1L);
-! if (b == curwin->w_buffer) /* fix cursor in current window? */
- {
- if (curwin->w_cursor.lnum >= n)
- {
-***************
-*** 627,633 ****
- else if (lua_isstring(L, 3)) /* update line */
- {
- buf_T *buf = curbuf;
-! curbuf = *b;
- if (u_savesub(n) == FAIL)
- {
- curbuf = buf;
---- 1165,1171 ----
- else if (lua_isstring(L, 3)) /* update line */
- {
- buf_T *buf = curbuf;
-! curbuf = b;
- if (u_savesub(n) == FAIL)
- {
- curbuf = buf;
-***************
-*** 640,646 ****
- }
- else changed_bytes(n, 0);
- curbuf = buf;
-! if (*b == curwin->w_buffer)
- check_cursor_col();
- }
- else
---- 1178,1184 ----
- }
- else changed_bytes(n, 0);
- curbuf = buf;
-! if (b == curwin->w_buffer)
- check_cursor_col();
- }
- else
-***************
-*** 651,658 ****
- static int
- luaV_buffer_insert(lua_State *L)
- {
-! luaV_Buffer *b = luaV_checkudata(L, 1, LUAVIM_BUFFER);
-! linenr_T last = (*b)->b_ml.ml_line_count;
- linenr_T n = (linenr_T) luaL_optinteger(L, 3, last);
- buf_T *buf;
- luaL_checktype(L, 2, LUA_TSTRING);
---- 1189,1197 ----
- static int
- luaV_buffer_insert(lua_State *L)
- {
-! luaV_Buffer *lb = luaV_checkudata(L, 1, LUAVIM_BUFFER);
-! buf_T *b = (buf_T *) luaV_checkcache(L, (void *) *lb);
-! linenr_T last = b->b_ml.ml_line_count;
- linenr_T n = (linenr_T) luaL_optinteger(L, 3, last);
- buf_T *buf;
- luaL_checktype(L, 2, LUA_TSTRING);
-***************
-*** 664,670 ****
- if (n > last) n = last;
- /* insert */
- buf = curbuf;
-! curbuf = *b;
- if (u_save(n, n + 1) == FAIL)
- {
- curbuf = buf;
---- 1203,1209 ----
- if (n > last) n = last;
- /* insert */
- buf = curbuf;
-! curbuf = b;
- if (u_save(n, n + 1) == FAIL)
- {
- curbuf = buf;
-***************
-*** 686,692 ****
- luaV_buffer_next(lua_State *L)
- {
- luaV_Buffer *b = luaV_checkudata(L, 1, LUAVIM_BUFFER);
-! luaV_pushbuffer(L, (*b)->b_next);
- return 1;
- }
-
---- 1225,1232 ----
- luaV_buffer_next(lua_State *L)
- {
- luaV_Buffer *b = luaV_checkudata(L, 1, LUAVIM_BUFFER);
-! buf_T *buf = (buf_T *) luaV_checkcache(L, (void *) *b);
-! luaV_pushbuffer(L, buf->b_next);
- return 1;
- }
-
-***************
-*** 694,700 ****
- luaV_buffer_previous(lua_State *L)
- {
- luaV_Buffer *b = luaV_checkudata(L, 1, LUAVIM_BUFFER);
-! luaV_pushbuffer(L, (*b)->b_prev);
- return 1;
- }
-
---- 1234,1241 ----
- luaV_buffer_previous(lua_State *L)
- {
- luaV_Buffer *b = luaV_checkudata(L, 1, LUAVIM_BUFFER);
-! buf_T *buf = (buf_T *) luaV_checkcache(L, (void *) *b);
-! luaV_pushbuffer(L, buf->b_prev);
- return 1;
- }
-
-***************
-*** 702,709 ****
- luaV_buffer_isvalid(lua_State *L)
- {
- luaV_Buffer *b = luaV_checkudata(L, 1, LUAVIM_BUFFER);
-! lua_pushlightuserdata(L, (void *) (*b));
-! lua_rawget(L, LUA_ENVIRONINDEX);
- lua_pushboolean(L, !lua_isnil(L, -1));
- return 1;
- }
---- 1243,1249 ----
- luaV_buffer_isvalid(lua_State *L)
- {
- luaV_Buffer *b = luaV_checkudata(L, 1, LUAVIM_BUFFER);
-! luaV_getudata(L, *b);
- lua_pushboolean(L, !lua_isnil(L, -1));
- return 1;
- }
-***************
-*** 724,801 ****
-
- /* ======= Window type ======= */
-
-! static luaV_Window *
-! luaV_newwindow(lua_State *L, win_T *win)
-! {
-! luaV_Window *w = (luaV_Window *) lua_newuserdata(L, sizeof(luaV_Window));
-! *w = win;
-! lua_pushlightuserdata(L, (void *) win);
-! lua_pushvalue(L, -2);
-! lua_rawset(L, LUA_ENVIRONINDEX); /* env[win] = udata */
-! /* to avoid GC, store as key in env */
-! lua_pushvalue(L, -1);
-! lua_pushboolean(L, 1);
-! lua_rawset(L, LUA_ENVIRONINDEX); /* env[udata] = true */
-! /* set metatable */
-! luaV_getfield(L, LUAVIM_WINDOW);
-! lua_setmetatable(L, -2);
-! return w;
-! }
-!
-! static luaV_Window *
-! luaV_pushwindow(lua_State *L, win_T *win)
-! {
-! luaV_Window *w = NULL;
-! if (win == NULL)
-! lua_pushnil(L);
-! else {
-! lua_pushlightuserdata(L, (void *) win);
-! lua_rawget(L, LUA_ENVIRONINDEX);
-! if (lua_isnil(L, -1)) /* not interned? */
-! {
-! lua_pop(L, 1);
-! w = luaV_newwindow(L, win);
-! }
-! else w = (luaV_Window *) lua_touserdata(L, -1);
-! }
-! return w;
-! }
-!
-! /* Window metamethods */
-!
-! static int
-! luaV_window_tostring(lua_State *L)
-! {
-! lua_pushfstring(L, "%s: %p", LUAVIM_WINDOW, lua_touserdata(L, 1));
-! return 1;
-! }
-
- static int
- luaV_window_call(lua_State *L)
- {
-! luaV_Window *w = (luaV_Window *) lua_touserdata(L, 1);
- lua_settop(L, 1);
-! win_goto(*w);
- return 1;
- }
-
- static int
- luaV_window_index(lua_State *L)
- {
-! luaV_Window *w = (luaV_Window *) lua_touserdata(L, 1);
- const char *s = luaL_checkstring(L, 2);
- if (strncmp(s, "buffer", 6) == 0)
-! luaV_pushbuffer(L, (*w)->w_buffer);
- else if (strncmp(s, "line", 4) == 0)
-! lua_pushinteger(L, (*w)->w_cursor.lnum);
- else if (strncmp(s, "col", 3) == 0)
-! lua_pushinteger(L, (*w)->w_cursor.col + 1);
- #ifdef FEAT_VERTSPLIT
- else if (strncmp(s, "width", 5) == 0)
-! lua_pushinteger(L, W_WIDTH((*w)));
- #endif
- else if (strncmp(s, "height", 6) == 0)
-! lua_pushinteger(L, (*w)->w_height);
- /* methods */
- else if (strncmp(s, "next", 4) == 0
- || strncmp(s, "previous", 8) == 0
---- 1264,1299 ----
-
- /* ======= Window type ======= */
-
-! luaV_newtype(win_T, window, luaV_Window, LUAVIM_WINDOW)
-! luaV_pushtype(win_T, window, luaV_Window)
-! luaV_type_tostring(window, LUAVIM_WINDOW)
-
- static int
- luaV_window_call(lua_State *L)
- {
-! win_T *w = (win_T *) luaV_checkvalid(L, luaV_Window, 1);
- lua_settop(L, 1);
-! win_goto(w);
- return 1;
- }
-
- static int
- luaV_window_index(lua_State *L)
- {
-! win_T *w = (win_T *) luaV_checkvalid(L, luaV_Window, 1);
- const char *s = luaL_checkstring(L, 2);
- if (strncmp(s, "buffer", 6) == 0)
-! luaV_pushbuffer(L, w->w_buffer);
- else if (strncmp(s, "line", 4) == 0)
-! lua_pushinteger(L, w->w_cursor.lnum);
- else if (strncmp(s, "col", 3) == 0)
-! lua_pushinteger(L, w->w_cursor.col + 1);
- #ifdef FEAT_VERTSPLIT
- else if (strncmp(s, "width", 5) == 0)
-! lua_pushinteger(L, W_WIDTH(w));
- #endif
- else if (strncmp(s, "height", 6) == 0)
-! lua_pushinteger(L, w->w_height);
- /* methods */
- else if (strncmp(s, "next", 4) == 0
- || strncmp(s, "previous", 8) == 0
-***************
-*** 812,818 ****
- static int
- luaV_window_newindex (lua_State *L)
- {
-! luaV_Window *w = (luaV_Window *) lua_touserdata(L, 1);
- const char *s = luaL_checkstring(L, 2);
- int v = luaL_checkinteger(L, 3);
- if (strncmp(s, "line", 4) == 0)
---- 1310,1316 ----
- static int
- luaV_window_newindex (lua_State *L)
- {
-! win_T *w = (win_T *) luaV_checkvalid(L, luaV_Window, 1);
- const char *s = luaL_checkstring(L, 2);
- int v = luaL_checkinteger(L, 3);
- if (strncmp(s, "line", 4) == 0)
-***************
-*** 820,828 ****
- #ifdef HAVE_SANDBOX
- luaV_checksandbox(L);
- #endif
-! if (v < 1 || v > (*w)->w_buffer->b_ml.ml_line_count)
- luaL_error(L, "line out of range");
-! (*w)->w_cursor.lnum = v;
- update_screen(VALID);
- }
- else if (strncmp(s, "col", 3) == 0)
---- 1318,1326 ----
- #ifdef HAVE_SANDBOX
- luaV_checksandbox(L);
- #endif
-! if (v < 1 || v > w->w_buffer->b_ml.ml_line_count)
- luaL_error(L, "line out of range");
-! w->w_cursor.lnum = v;
- update_screen(VALID);
- }
- else if (strncmp(s, "col", 3) == 0)
-***************
-*** 830,836 ****
- #ifdef HAVE_SANDBOX
- luaV_checksandbox(L);
- #endif
-! (*w)->w_cursor.col = v - 1;
- update_screen(VALID);
- }
- #ifdef FEAT_VERTSPLIT
---- 1328,1334 ----
- #ifdef HAVE_SANDBOX
- luaV_checksandbox(L);
- #endif
-! w->w_cursor.col = v - 1;
- update_screen(VALID);
- }
- #ifdef FEAT_VERTSPLIT
-***************
-*** 840,846 ****
- #ifdef FEAT_GUI
- need_mouse_correct = TRUE;
- #endif
-! curwin = *w;
- win_setwidth(v);
- curwin = win;
- }
---- 1338,1344 ----
- #ifdef FEAT_GUI
- need_mouse_correct = TRUE;
- #endif
-! curwin = w;
- win_setwidth(v);
- curwin = win;
- }
-***************
-*** 851,857 ****
- #ifdef FEAT_GUI
- need_mouse_correct = TRUE;
- #endif
-! curwin = *w;
- win_setheight(v);
- curwin = win;
- }
---- 1349,1355 ----
- #ifdef FEAT_GUI
- need_mouse_correct = TRUE;
- #endif
-! curwin = w;
- win_setheight(v);
- curwin = win;
- }
-***************
-*** 864,870 ****
- luaV_window_next(lua_State *L)
- {
- luaV_Window *w = luaV_checkudata(L, 1, LUAVIM_WINDOW);
-! luaV_pushwindow(L, (*w)->w_next);
- return 1;
- }
-
---- 1362,1369 ----
- luaV_window_next(lua_State *L)
- {
- luaV_Window *w = luaV_checkudata(L, 1, LUAVIM_WINDOW);
-! win_T *win = (win_T *) luaV_checkcache(L, (void *) *w);
-! luaV_pushwindow(L, win->w_next);
- return 1;
- }
-
-***************
-*** 872,878 ****
- luaV_window_previous(lua_State *L)
- {
- luaV_Window *w = luaV_checkudata(L, 1, LUAVIM_WINDOW);
-! luaV_pushwindow(L, (*w)->w_prev);
- return 1;
- }
-
---- 1371,1378 ----
- luaV_window_previous(lua_State *L)
- {
- luaV_Window *w = luaV_checkudata(L, 1, LUAVIM_WINDOW);
-! win_T *win = (win_T *) luaV_checkcache(L, (void *) *w);
-! luaV_pushwindow(L, win->w_prev);
- return 1;
- }
-
-***************
-*** 880,887 ****
- luaV_window_isvalid(lua_State *L)
- {
- luaV_Window *w = luaV_checkudata(L, 1, LUAVIM_WINDOW);
-! lua_pushlightuserdata(L, (void *) (*w));
-! lua_rawget(L, LUA_ENVIRONINDEX);
- lua_pushboolean(L, !lua_isnil(L, -1));
- return 1;
- }
---- 1380,1386 ----
- luaV_window_isvalid(lua_State *L)
- {
- luaV_Window *w = luaV_checkudata(L, 1, LUAVIM_WINDOW);
-! luaV_getudata(L, *w);
- lua_pushboolean(L, !lua_isnil(L, -1));
- return 1;
- }
-***************
-*** 983,988 ****
---- 1482,1509 ----
- }
-
- static int
-+ luaV_list(lua_State *L)
-+ {
-+ list_T *l = list_alloc();
-+ if (l == NULL)
-+ lua_pushnil(L);
-+ else
-+ luaV_newlist(L, l);
-+ return 1;
-+ }
-+
-+ static int
-+ luaV_dict(lua_State *L)
-+ {
-+ dict_T *d = dict_alloc();
-+ if (d == NULL)
-+ lua_pushnil(L);
-+ else
-+ luaV_newdict(L, d);
-+ return 1;
-+ }
-+
-+ static int
- luaV_buffer(lua_State *L)
- {
- buf_T *buf;
-***************
-*** 1008,1022 ****
- break;
- }
- }
-- if (buf == NULL) /* not found? */
-- lua_pushnil(L);
-- else
-- luaV_pushbuffer(L, buf);
- }
-! else {
- buf = (lua_toboolean(L, 1)) ? firstbuf : curbuf; /* first buffer? */
-! luaV_pushbuffer(L, buf);
-! }
- return 1;
- }
-
---- 1529,1538 ----
- break;
- }
- }
- }
-! else
- buf = (lua_toboolean(L, 1)) ? firstbuf : curbuf; /* first buffer? */
-! luaV_pushbuffer(L, buf);
- return 1;
- }
-
-***************
-*** 1029,1043 ****
- int n = lua_tointeger(L, 1);
- for (win = firstwin; win != NULL; win = win->w_next, n--)
- if (n == 1) break;
-- if (win == NULL) /* not found? */
-- lua_pushnil(L);
-- else
-- luaV_pushwindow(L, win);
- }
-! else {
- win = (lua_toboolean(L, 1)) ? firstwin : curwin; /* first window? */
-! luaV_pushwindow(L, win);
-! }
- return 1;
- }
-
---- 1545,1554 ----
- int n = lua_tointeger(L, 1);
- for (win = firstwin; win != NULL; win = win->w_next, n--)
- if (n == 1) break;
- }
-! else
- win = (lua_toboolean(L, 1)) ? firstwin : curwin; /* first window? */
-! luaV_pushwindow(L, win);
- return 1;
- }
-
-***************
-*** 1054,1086 ****
- }
-
- static int
-! luaV_isbuffer(lua_State *L)
-! {
-! lua_pushboolean(L, luaV_toudata(L, 1, LUAVIM_BUFFER) != NULL);
-! return 1;
-! }
-!
-! static int
-! luaV_iswindow(lua_State *L)
- {
-! lua_pushboolean(L, luaV_toudata(L, 1, LUAVIM_WINDOW) != NULL);
-! return 1;
-! }
-!
-! /* for freeing buffer and window objects; lightuserdata as arg */
-! static int
-! luaV_free(lua_State *L)
-! {
-! lua_pushvalue(L, 1); /* lightudata */
-! lua_rawget(L, LUA_ENVIRONINDEX);
-! if (!lua_isnil(L, -1))
- {
-! lua_pushnil(L);
-! lua_rawset(L, LUA_ENVIRONINDEX); /* env[udata] = nil */
-! lua_pushnil(L);
-! lua_rawset(L, LUA_ENVIRONINDEX); /* env[lightudata] = nil */
- }
-! return 0;
- }
-
- static const luaL_Reg luaV_module[] = {
---- 1565,1606 ----
- }
-
- static int
-! luaV_type(lua_State *L)
- {
-! luaL_checkany(L, 1);
-! if (lua_type(L, 1) == LUA_TUSERDATA) /* check vim udata? */
- {
-! lua_settop(L, 1);
-! if (lua_getmetatable(L, 1))
-! {
-! luaV_getfield(L, LUAVIM_LIST);
-! if (lua_rawequal(L, -1, 2))
-! {
-! lua_pushstring(L, "list");
-! return 1;
-! }
-! luaV_getfield(L, LUAVIM_DICT);
-! if (lua_rawequal(L, -1, 2))
-! {
-! lua_pushstring(L, "dict");
-! return 1;
-! }
-! luaV_getfield(L, LUAVIM_BUFFER);
-! if (lua_rawequal(L, -1, 2))
-! {
-! lua_pushstring(L, "buffer");
-! return 1;
-! }
-! luaV_getfield(L, LUAVIM_WINDOW);
-! if (lua_rawequal(L, -1, 2))
-! {
-! lua_pushstring(L, "window");
-! return 1;
-! }
-! }
- }
-! lua_pushstring(L, luaL_typename(L, 1)); /* fallback */
-! return 1;
- }
-
- static const luaL_Reg luaV_module[] = {
-***************
-*** 1088,1111 ****
- {"eval", luaV_eval},
- {"beep", luaV_beep},
- {"line", luaV_line},
- {"buffer", luaV_buffer},
- {"window", luaV_window},
- {"open", luaV_open},
-! {"isbuffer", luaV_isbuffer},
-! {"iswindow", luaV_iswindow},
- {NULL, NULL}
- };
-
- static int
- luaopen_vim(lua_State *L)
- {
-! /* set environment */
- lua_newtable(L);
- lua_newtable(L);
-! lua_pushliteral(L, "v");
- lua_setfield(L, -2, "__mode");
-! lua_setmetatable(L, -2);
-! lua_replace(L, LUA_ENVIRONINDEX);
- /* print */
- lua_pushcfunction(L, luaV_print);
- lua_setglobal(L, "print");
---- 1608,1695 ----
- {"eval", luaV_eval},
- {"beep", luaV_beep},
- {"line", luaV_line},
-+ {"list", luaV_list},
-+ {"dict", luaV_dict},
- {"buffer", luaV_buffer},
- {"window", luaV_window},
- {"open", luaV_open},
-! {"type", luaV_type},
- {NULL, NULL}
- };
-
-+ /* for freeing list, dict, buffer and window objects; lightuserdata as arg */
-+ static int
-+ luaV_free(lua_State *L)
-+ {
-+ lua_pushnil(L);
-+ luaV_setudata(L, lua_touserdata(L, 1));
-+ return 0;
-+ }
-+
-+ static int
-+ luaV_luaeval (lua_State *L)
-+ {
-+ luaL_Buffer b;
-+ size_t l;
-+ const char *str = lua_tolstring(L, 1, &l);
-+ typval_T *arg = (typval_T *) lua_touserdata(L, 2);
-+ typval_T *rettv = (typval_T *) lua_touserdata(L, 3);
-+ luaL_buffinit(L, &b);
-+ luaL_addlstring(&b, LUAVIM_EVALHEADER, sizeof(LUAVIM_EVALHEADER) - 1);
-+ luaL_addlstring(&b, str, l);
-+ luaL_pushresult(&b);
-+ str = lua_tolstring(L, -1, &l);
-+ if (luaL_loadbuffer(L, str, l, LUAVIM_EVALNAME)) /* compile error? */
-+ {
-+ luaV_emsg(L);
-+ return 0;
-+ }
-+ luaV_pushtypval(L, arg);
-+ if (lua_pcall(L, 1, 1, 0)) /* running error? */
-+ {
-+ luaV_emsg(L);
-+ return 0;
-+ }
-+ luaV_totypval(L, -1, rettv);
-+ return 0;
-+ }
-+
-+ static int
-+ luaV_setref (lua_State *L)
-+ {
-+ int copyID = lua_tointeger(L, 1);
-+ typval_T tv;
-+ luaV_getfield(L, LUAVIM_LIST);
-+ luaV_getfield(L, LUAVIM_DICT);
-+ lua_pushnil(L);
-+ while (lua_next(L, lua_upvalueindex(1)) != 0) /* traverse cache table */
-+ {
-+ lua_getmetatable(L, -1);
-+ if (lua_rawequal(L, -1, 2)) /* list? */
-+ {
-+ tv.v_type = VAR_LIST;
-+ tv.vval.v_list = (list_T *) lua_touserdata(L, 4); /* key */
-+ }
-+ else if (lua_rawequal(L, -1, 3)) /* dict? */
-+ {
-+ tv.v_type = VAR_DICT;
-+ tv.vval.v_dict = (dict_T *) lua_touserdata(L, 4); /* key */
-+ }
-+ lua_pop(L, 2); /* metatable and value */
-+ set_ref_in_tv(&tv, copyID);
-+ }
-+ return 0;
-+ }
-+
- static int
- luaopen_vim(lua_State *L)
- {
-! /* set cache table */
- lua_newtable(L);
- lua_newtable(L);
-! lua_pushstring(L, "v");
- lua_setfield(L, -2, "__mode");
-! lua_setmetatable(L, -2); /* cache is weak-valued */
- /* print */
- lua_pushcfunction(L, luaV_print);
- lua_setglobal(L, "print");
-***************
-*** 1116,1129 ****
- lua_pop(L, 1);
- /* free */
- lua_pushlightuserdata(L, (void *) LUAVIM_FREE);
-! lua_pushcfunction(L, luaV_free);
- lua_rawset(L, LUA_REGISTRYINDEX);
- /* register */
- luaV_newmetatable(L, LUAVIM_BUFFER);
-! luaL_register(L, NULL, luaV_Buffer_mt);
- luaV_newmetatable(L, LUAVIM_WINDOW);
-! luaL_register(L, NULL, luaV_Window_mt);
-! luaL_register(L, LUAVIM_NAME, luaV_module);
- return 0;
- }
-
---- 1700,1735 ----
- lua_pop(L, 1);
- /* free */
- lua_pushlightuserdata(L, (void *) LUAVIM_FREE);
-! lua_pushvalue(L, 1); /* cache table */
-! lua_pushcclosure(L, luaV_free, 1);
-! lua_rawset(L, LUA_REGISTRYINDEX);
-! /* luaeval */
-! lua_pushlightuserdata(L, (void *) LUAVIM_LUAEVAL);
-! lua_pushvalue(L, 1); /* cache table */
-! lua_pushcclosure(L, luaV_luaeval, 1);
-! lua_rawset(L, LUA_REGISTRYINDEX);
-! /* setref */
-! lua_pushlightuserdata(L, (void *) LUAVIM_SETREF);
-! lua_pushvalue(L, 1); /* cache table */
-! lua_pushcclosure(L, luaV_setref, 1);
- lua_rawset(L, LUA_REGISTRYINDEX);
- /* register */
-+ luaV_newmetatable(L, LUAVIM_LIST);
-+ lua_pushvalue(L, 1);
-+ luaV_openlib(L, luaV_List_mt, 1);
-+ luaV_newmetatable(L, LUAVIM_DICT);
-+ lua_pushvalue(L, 1);
-+ luaV_openlib(L, luaV_Dict_mt, 1);
- luaV_newmetatable(L, LUAVIM_BUFFER);
-! lua_pushvalue(L, 1); /* cache table */
-! luaV_openlib(L, luaV_Buffer_mt, 1);
- luaV_newmetatable(L, LUAVIM_WINDOW);
-! lua_pushvalue(L, 1); /* cache table */
-! luaV_openlib(L, luaV_Window_mt, 1);
-! lua_newtable(L); /* vim table */
-! lua_pushvalue(L, 1); /* cache table */
-! luaV_openlib(L, luaV_module, 1);
-! lua_setglobal(L, LUAVIM_NAME);
- return 0;
- }
-
-***************
-*** 1154,1160 ****
- static lua_State *L = NULL;
-
- static int
-! lua_is_open(void)
- {
- return L != NULL;
- }
---- 1760,1766 ----
- static lua_State *L = NULL;
-
- static int
-! lua_isopen(void)
- {
- return L != NULL;
- }
-***************
-*** 1162,1168 ****
- static int
- lua_init(void)
- {
-! if (L == NULL)
- {
- #ifdef DYNAMIC_LUA
- if (!lua_enabled(TRUE))
---- 1768,1774 ----
- static int
- lua_init(void)
- {
-! if (!lua_isopen())
- {
- #ifdef DYNAMIC_LUA
- if (!lua_enabled(TRUE))
-***************
-*** 1179,1185 ****
- void
- lua_end(void)
- {
-! if (L != NULL)
- {
- lua_close(L);
- L = NULL;
---- 1785,1791 ----
- void
- lua_end(void)
- {
-! if (lua_isopen())
- {
- lua_close(L);
- L = NULL;
-***************
-*** 1273,1295 ****
- }
- }
-
-! /* buffer */
- void
-! lua_buffer_free(buf_T *buf)
- {
-! if (!lua_is_open()) return;
-! luaV_getfield(L, LUAVIM_FREE);
-! lua_pushlightuserdata(L, (void *) buf);
-! lua_call(L, 1, 0);
- }
-
-- /* window */
- void
-! lua_window_free(win_T *win)
- {
-! if (!lua_is_open()) return;
-! luaV_getfield(L, LUAVIM_FREE);
-! lua_pushlightuserdata(L, (void *) win);
- lua_call(L, 1, 0);
- }
-
---- 1879,1914 ----
- }
- }
-
-! #define luaV_freetype(typ,tname) \
-! void \
-! lua_##tname##_free(typ *o) \
-! { \
-! if (!lua_isopen()) return; \
-! luaV_getfield(L, LUAVIM_FREE); \
-! lua_pushlightuserdata(L, (void *) o); \
-! lua_call(L, 1, 0); \
-! }
-!
-! luaV_freetype(buf_T, buffer)
-! luaV_freetype(win_T, window)
-!
- void
-! do_luaeval (char_u *str, typval_T *arg, typval_T *rettv)
- {
-! lua_init();
-! luaV_getfield(L, LUAVIM_LUAEVAL);
-! lua_pushstring(L, (char *) str);
-! lua_pushlightuserdata(L, (void *) arg);
-! lua_pushlightuserdata(L, (void *) rettv);
-! lua_call(L, 3, 0);
- }
-
- void
-! set_ref_in_lua (int copyID)
- {
-! if (!lua_isopen()) return;
-! luaV_getfield(L, LUAVIM_SETREF);
-! lua_pushinteger(L, copyID);
- lua_call(L, 1, 0);
- }
-
-*** ../vim-7.3.489/src/proto/if_lua.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/if_lua.pro 2012-04-05 16:41:35.000000000 +0200
-***************
-*** 6,9 ****
---- 6,11 ----
- void ex_luafile __ARGS((exarg_T *eap));
- void lua_buffer_free __ARGS((buf_T *buf));
- void lua_window_free __ARGS((win_T *win));
-+ void do_luaeval __ARGS((char_u *str, typval_T *arg, typval_T *rettv));
-+ void set_ref_in_lua __ARGS((int copyID));
- /* vim: set ft=c : */
-*** ../vim-7.3.489/src/version.c 2012-04-05 16:07:01.000000000 +0200
---- src/version.c 2012-04-05 16:52:08.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 490,
- /**/
-
---
-Even got a Datapoint 3600(?) with a DD50 connector instead of the
-usual DB25... what a nightmare trying to figure out the pinout
-for *that* with no spex...
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.491
-Fcc: 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.491
-Problem: No tests for Lua.
-Solution: Add some simple tests for Lua. (Luis Carvalho)
-Files: src/testdir/test1.in, src/testdir/test85.in, src/testdir/test85.ok
- src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
- src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
- src/testdir/Make_vms.mms, src/testdir/Makefile
-
-
-*** ../vim-7.3.490/src/testdir/test1.in 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test1.in 2012-04-05 16:37:37.000000000 +0200
-***************
-*** 15,20 ****
---- 15,21 ----
- be set like small.vim above. mbyte.vim is sourced by tests that require the
- +multi_byte feature.
- Similar logic is applied to the +mzscheme feature, using mzscheme.vim.
-+ Similar logic is applied to the +lua feature, using lua.vim.
-
- STARTTEST
- :" Write a single line to test.out to check if testing works at all.
-***************
-*** 28,37 ****
---- 29,45 ----
- qa!
- :w! mbyte.vim
- :w! mzscheme.vim
-+ :w! lua.vim
-+ :"
- :" If +multi_byte feature supported, make mbyte.vim empty.
- :if has("multi_byte") | sp another | w! mbyte.vim | q | endif
-+ :"
- :" If +mzscheme feature supported, make mzscheme.vim empty.
- :if has("mzscheme") | sp another | w! mzscheme.vim | q | endif
-+ :"
-+ :" If +lua feature supported, make lua.vim empty.
-+ :if has("lua") | sp another | w! lua.vim | q | endif
-+ :"
- :" If +eval feature supported quit here, leaving tiny.vim and small.vim empty.
- :" Otherwise write small.vim to skip the test.
- :if 1 | q! | endif
-*** ../vim-7.3.490/src/testdir/test85.in 2012-04-05 16:56:12.000000000 +0200
---- src/testdir/test85.in 2012-04-05 16:44:00.000000000 +0200
-***************
-*** 0 ****
---- 1,42 ----
-+ Test for Lua interface and luaeval() function
-+
-+ STARTTEST
-+ :so small.vim
-+ :so lua.vim
-+ :set nocompatible viminfo+=nviminfo
-+ :lua l = vim.list():add"item0":add"dictionary with list OK":add"item2"
-+ :lua h = vim.dict(); h.list = l
-+ :call garbagecollect()
-+ /^1
-+ :" change buffer contents
-+ :lua curbuf = vim.buffer()
-+ :lua curline = vim.eval"line('.')"
-+ :lua curbuf[curline] = "1 changed line 1"
-+ :" scalar test
-+ :let tmp_string = luaeval('"string"')
-+ :let tmp_1000 = luaeval('1000')
-+ :if printf("%s%.0f", tmp_string, tmp_1000) == "string1000"
-+ :let scalar_res = "OK"
-+ :else
-+ :let scalar_res = "FAILED"
-+ :endif
-+ :call append(search("^1"), "scalar test " . scalar_res)
-+ :" dictionary containing a list
-+ :let tmp = luaeval("h").list[1]
-+ :/^2/put =tmp
-+ :" circular list (at the same time test lists containing lists)
-+ :lua l[2] = l
-+ :let l2 = luaeval("h").list
-+ :if l2[2] == l2
-+ :let res = "OK"
-+ :else
-+ :let res = "FAILED"
-+ :endif
-+ :call setline(search("^3"), "circular test " . res)
-+ :?^1?,$w! test.out
-+ :qa!
-+ ENDTEST
-+
-+ 1 line 1
-+ 2 line 2
-+ 3 line 3
-*** ../vim-7.3.490/src/testdir/test85.ok 2012-04-05 16:56:12.000000000 +0200
---- src/testdir/test85.ok 2012-04-05 16:18:56.000000000 +0200
-***************
-*** 0 ****
---- 1,5 ----
-+ 1 changed line 1
-+ scalar test OK
-+ 2 line 2
-+ dictionary with list OK
-+ circular test OK
-*** ../vim-7.3.490/src/testdir/Make_amiga.mak 2012-03-28 19:58:34.000000000 +0200
---- src/testdir/Make_amiga.mak 2012-04-05 16:21:55.000000000 +0200
-***************
-*** 13,18 ****
---- 13,19 ----
- # test25 uses symbolic link
- # test27 can't edit file with "*"
- # test52 only for Win32
-+ # test85 no Lua interface
-
- SCRIPTS = test1.out test3.out test4.out test5.out test6.out \
- test7.out test8.out test9.out \
-*** ../vim-7.3.490/src/testdir/Make_dos.mak 2012-03-28 19:58:34.000000000 +0200
---- src/testdir/Make_dos.mak 2012-04-05 16:22:16.000000000 +0200
-***************
-*** 30,36 ****
- test68.out test69.out test71.out test72.out test73.out \
- test74.out test75.out test76.out test77.out test78.out \
- test79.out test80.out test81.out test82.out test83.out \
-! test84.out
-
- SCRIPTS32 = test50.out test70.out
-
---- 30,36 ----
- test68.out test69.out test71.out test72.out test73.out \
- test74.out test75.out test76.out test77.out test78.out \
- test79.out test80.out test81.out test82.out test83.out \
-! test84.out test85.out
-
- SCRIPTS32 = test50.out test70.out
-
-*** ../vim-7.3.490/src/testdir/Make_ming.mak 2012-03-28 19:58:34.000000000 +0200
---- src/testdir/Make_ming.mak 2012-04-05 16:22:25.000000000 +0200
-***************
-*** 50,56 ****
- test68.out test69.out test71.out test72.out test73.out \
- test74.out test75.out test76.out test77.out test78.out \
- test79.out test80.out test81.out test82.out test83.out \
-! test84.out
-
- SCRIPTS32 = test50.out test70.out
-
---- 50,56 ----
- test68.out test69.out test71.out test72.out test73.out \
- test74.out test75.out test76.out test77.out test78.out \
- test79.out test80.out test81.out test82.out test83.out \
-! test84.out test85.out
-
- SCRIPTS32 = test50.out test70.out
-
-*** ../vim-7.3.490/src/testdir/Make_os2.mak 2012-03-28 19:58:34.000000000 +0200
---- src/testdir/Make_os2.mak 2012-04-05 16:22:38.000000000 +0200
-***************
-*** 13,18 ****
---- 13,19 ----
- # test25 uses symbolic link
- # test27 can't edit file with "*" in file name
- # test52 only for Win32
-+ # test85 no Lua interface
-
- SCRIPTS = test1.out test3.out test4.out test5.out test6.out \
- test7.out test8.out test9.out \
-*** ../vim-7.3.490/src/testdir/Make_vms.mms 2012-03-28 19:58:34.000000000 +0200
---- src/testdir/Make_vms.mms 2012-04-05 16:23:08.000000000 +0200
-***************
-*** 4,10 ****
- # Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
- # Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
- #
-! # Last change: 2012 Mar 28
- #
- # 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: 2012 Apr 05
- #
- # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
- # Edit the lines in the Configuration section below to select.
-***************
-*** 89,94 ****
---- 89,95 ----
- # with too many dots).
- #
- # Test 72: unknown reason
-+ # Test 85: no Lua interface
-
- .IFDEF WANT_GUI
- SCRIPT_GUI = test16.out
-*** ../vim-7.3.490/src/testdir/Makefile 2012-03-28 19:58:34.000000000 +0200
---- src/testdir/Makefile 2012-04-05 16:21:13.000000000 +0200
-***************
-*** 27,33 ****
- test69.out test70.out test71.out test72.out test73.out \
- test74.out test75.out test76.out test77.out test78.out \
- test79.out test80.out test81.out test82.out test83.out \
-! test84.out
-
- SCRIPTS_GUI = test16.out
-
---- 27,33 ----
- test69.out test70.out test71.out test72.out test73.out \
- test74.out test75.out test76.out test77.out test78.out \
- test79.out test80.out test81.out test82.out test83.out \
-! test84.out test85.out
-
- SCRIPTS_GUI = test16.out
-
-*** ../vim-7.3.490/src/version.c 2012-04-05 16:53:56.000000000 +0200
---- src/version.c 2012-04-05 16:55:27.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 491,
- /**/
-
---
-You had connectors? Eeee, when I were a lad we 'ad to carry the
-bits between the computer and the terminal with a spoon...
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.492
-Fcc: 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.492
-Problem: Can't indent conditions separately from function arguments.
-Solution: Add the 'k' flag in 'cino. (Lech Lorens)
-Files: runtime/doc/indent.txt, src/misc1.c, src/testdir/test3.in,
- src/testdir/test3.ok
-
-
-*** ../vim-7.3.491/runtime/doc/indent.txt 2011-06-26 03:16:58.000000000 +0200
---- runtime/doc/indent.txt 2012-04-05 17:12:14.000000000 +0200
-***************
-*** 459,464 ****
---- 460,481 ----
- a_short_line(argument, a_short_line(argument,
- argument); argument);
- <
-+ *cino-k*
-+ kN When in unclosed parentheses which follow "if", "for" or
-+ "while" and N is non-zero, overrides the behaviour defined by
-+ "(N": causes the indent to be N characters relative to the outer
-+ context (i.e. the line where "if", "for" or "while" is). Has
-+ no effect on deeper levels of nesting. Affects flags like "wN"
-+ only for the "if", "for" and "while" conditions. If 0, defaults
-+ to behaviour defined by the "(N" flag. (default: 0).
-+
-+ cino=(0 cino=(0,ks >
-+ if (condition1 if (condition1
-+ && condition2) && condition2)
-+ action(); action();
-+ function(argument1 function(argument1
-+ && argument2); && argument2);
-+ <
- *cino-m*
- mN When N is non-zero, line up a line starting with a closing
- parentheses with the first character of the line with the
-***************
-*** 527,540 ****
-
- *cino-#*
- #N When N is non-zero recognize shell/Perl comments, starting with
-! '#'. Default N is zero: don't recognizes '#' comments. Note
- that lines starting with # will still be seen as preprocessor
- lines.
-
-
- The defaults, spelled out in full, are:
- cinoptions=>s,e0,n0,f0,{0,}0,^0,L-1,:s,=s,l0,b0,gs,hs,N0,ps,ts,is,+s,
-! c3,C0,/0,(2s,us,U0,w0,W0,m0,j0,J0,)20,*70,#0
-
- Vim puts a line in column 1 if:
- - It starts with '#' (preprocessor directives), if 'cinkeys' contains '#'.
---- 546,559 ----
-
- *cino-#*
- #N When N is non-zero recognize shell/Perl comments, starting with
-! '#'. Default N is zero: don't recognize '#' comments. Note
- that lines starting with # will still be seen as preprocessor
- lines.
-
-
- The defaults, spelled out in full, are:
- cinoptions=>s,e0,n0,f0,{0,}0,^0,L-1,:s,=s,l0,b0,gs,hs,N0,ps,ts,is,+s,
-! c3,C0,/0,(2s,us,U0,w0,W0,k0,m0,j0,J0,)20,*70,#0
-
- Vim puts a line in column 1 if:
- - It starts with '#' (preprocessor directives), if 'cinkeys' contains '#'.
-*** ../vim-7.3.491/src/misc1.c 2012-02-29 13:49:03.000000000 +0100
---- src/misc1.c 2012-04-05 17:12:14.000000000 +0200
-***************
-*** 5771,5776 ****
---- 5771,5822 ----
- }
-
- /*
-+ * Check whether in "p" there is an "if", "for" or "while" before offset.
-+ * Return 0 if there is none.
-+ * Otherwise return !0 and update "*poffset" to point to the place where the
-+ * string was found.
-+ */
-+ static int
-+ cin_is_if_for_while_before_offset(line, offset, poffset)
-+ char_u *line;
-+ size_t offset;
-+ int *poffset;
-+ {
-+
-+ if (offset-- < 2)
-+ return 0;
-+ while (offset > 2 && vim_iswhite(line[offset]))
-+ --offset;
-+
-+ offset -= 1;
-+ if (!STRNCMP(line + offset, "if", 2))
-+ goto probablyFound;
-+
-+ if (offset >= 1)
-+ {
-+ offset -= 1;
-+ if (!STRNCMP(line + offset, "for", 3))
-+ goto probablyFound;
-+
-+ if (offset >= 2)
-+ {
-+ offset -= 2;
-+ if (!STRNCMP(line + offset, "while", 5))
-+ goto probablyFound;
-+ }
-+ }
-+
-+ return 0;
-+ probablyFound:
-+ if (!offset || !vim_isIDc(line[offset - 1]))
-+ {
-+ *poffset = offset;
-+ return 1;
-+ }
-+ return 0;
-+ }
-+
-+ /*
- * Return TRUE if we are at the end of a do-while.
- * do
- * nothing;
-***************
-*** 6124,6130 ****
-
- /*
- * Find the matching '(', failing if it is in a comment.
-! * Return NULL of no match found.
- */
- static pos_T *
- find_match_paren(ind_maxparen, ind_maxcomment) /* XXX */
---- 6170,6176 ----
-
- /*
- * Find the matching '(', failing if it is in a comment.
-! * Return NULL if no match found.
- */
- static pos_T *
- find_match_paren(ind_maxparen, ind_maxcomment) /* XXX */
-***************
-*** 6393,6398 ****
---- 6439,6450 ----
- */
- int ind_cpp_namespace = 0;
-
-+ /*
-+ * handle continuation lines containing conditions of if(), for() and
-+ * while()
-+ */
-+ int ind_if_for_while = 0;
-+
- pos_T cur_curpos;
- int amount;
- int scope_amount;
-***************
-*** 6437,6442 ****
---- 6489,6495 ----
- int cont_amount = 0; /* amount for continuation line */
- int original_line_islabel;
- int added_to_amount = 0;
-+ int is_if_for_while = 0;
-
- for (options = curbuf->b_p_cino; *options; )
- {
-***************
-*** 6509,6514 ****
---- 6562,6568 ----
- case 'l': ind_keep_case_label = n; break;
- case '#': ind_hash_comment = n; break;
- case 'N': ind_cpp_namespace = n; break;
-+ case 'k': ind_if_for_while = n; break;
- }
- if (*options == ',')
- ++options;
-***************
-*** 6812,6817 ****
---- 6866,6900 ----
- if (amount == -1)
- {
- int ignore_paren_col = 0;
-+ int is_if_for_while = 0;
-+
-+ if (ind_if_for_while)
-+ {
-+ /* Look for the outermost opening parenthesis on this line
-+ * and check whether it belongs to an "if", "for" or "while". */
-+
-+ pos_T cursor_save = curwin->w_cursor;
-+ pos_T outermost;
-+ char_u *line;
-+ int look_col;
-+
-+ trypos = &our_paren_pos;
-+ do {
-+ outermost = *trypos;
-+ curwin->w_cursor.lnum = outermost.lnum;
-+ curwin->w_cursor.col = outermost.col;
-+
-+ trypos = find_match_paren(ind_maxparen, ind_maxcomment);
-+ } while (trypos && trypos->lnum == outermost.lnum);
-+
-+ curwin->w_cursor = cursor_save;
-+
-+ line = ml_get(outermost.lnum);
-+
-+ is_if_for_while =
-+ cin_is_if_for_while_before_offset(line, outermost.col,
-+ &outermost.col);
-+ }
-
- amount = skip_label(our_paren_pos.lnum, &look, ind_maxcomment);
- look = skipwhite(look);
-***************
-*** 6836,6842 ****
- curwin->w_cursor.lnum = save_lnum;
- look = ml_get(our_paren_pos.lnum) + look_col;
- }
-! if (theline[0] == ')' || ind_unclosed == 0
- || (!ind_unclosed_noignore && *look == '('
- && ignore_paren_col == 0))
- {
---- 6919,6925 ----
- curwin->w_cursor.lnum = save_lnum;
- look = ml_get(our_paren_pos.lnum) + look_col;
- }
-! if (theline[0] == ')' || (ind_unclosed == 0 && is_if_for_while == 0)
- || (!ind_unclosed_noignore && *look == '('
- && ignore_paren_col == 0))
- {
-***************
-*** 6907,6913 ****
- {
- /* Line up with the start of the matching paren line. */
- }
-! else if (ind_unclosed == 0 || (!ind_unclosed_noignore
- && *look == '(' && ignore_paren_col == 0))
- {
- if (cur_amount != MAXCOL)
---- 6990,6997 ----
- {
- /* Line up with the start of the matching paren line. */
- }
-! else if ((ind_unclosed == 0 && is_if_for_while == 0)
-! || (!ind_unclosed_noignore
- && *look == '(' && ignore_paren_col == 0))
- {
- if (cur_amount != MAXCOL)
-***************
-*** 6943,6949 ****
- if (find_match_paren(ind_maxparen, ind_maxcomment) != NULL)
- amount += ind_unclosed2;
- else
-! amount += ind_unclosed;
- }
- /*
- * For a line starting with ')' use the minimum of the two
---- 7027,7038 ----
- if (find_match_paren(ind_maxparen, ind_maxcomment) != NULL)
- amount += ind_unclosed2;
- else
-! {
-! if (is_if_for_while)
-! amount += ind_if_for_while;
-! else
-! amount += ind_unclosed;
-! }
- }
- /*
- * For a line starting with ')' use the minimum of the two
-*** ../vim-7.3.491/src/testdir/test3.in 2011-12-14 20:21:29.000000000 +0100
---- src/testdir/test3.in 2012-04-05 17:12:14.000000000 +0200
-***************
-*** 1574,1579 ****
---- 1574,1793 ----
- }
-
- STARTTEST
-+ :set cino=k2s,(0
-+ 2kdd3j=][
-+ ENDTEST
-+
-+ void func(void)
-+ {
-+ if (condition1
-+ && condition2)
-+ action();
-+ function(argument1
-+ && argument2);
-+
-+ if (c1 && (c2 ||
-+ c3))
-+ foo;
-+ if (c1 &&
-+ (c2 || c3))
-+ {
-+ }
-+
-+ if ( c1
-+ && ( c2
-+ || c3))
-+ foo;
-+ func( c1
-+ && ( c2
-+ || c3))
-+ foo;
-+ }
-+
-+ STARTTEST
-+ :set cino=k2s,(s
-+ 2kdd3j=][
-+ ENDTEST
-+
-+ void func(void)
-+ {
-+ if (condition1
-+ && condition2)
-+ action();
-+ function(argument1
-+ && argument2);
-+
-+ if (c1 && (c2 ||
-+ c3))
-+ foo;
-+ if (c1 &&
-+ (c2 || c3))
-+ {
-+ }
-+
-+ if ( c1
-+ && ( c2
-+ || c3))
-+ foo;
-+ func( c1
-+ && ( c2
-+ || c3))
-+ foo;
-+ }
-+
-+ STARTTEST
-+ :set cino=k2s,(s,U1
-+ 2kdd3j=][
-+ ENDTEST
-+
-+ void func(void)
-+ {
-+ if (condition1
-+ && condition2)
-+ action();
-+ function(argument1
-+ && argument2);
-+
-+ if (c1 && (c2 ||
-+ c3))
-+ foo;
-+ if (c1 &&
-+ (c2 || c3))
-+ {
-+ }
-+ if (c123456789
-+ && (c22345
-+ || c3))
-+ printf("foo\n");
-+
-+ c = c1 &&
-+ (
-+ c2 ||
-+ c3
-+ ) && c4;
-+ }
-+
-+ STARTTEST
-+ :set cino=k2s,(0,W4
-+ 2kdd3j=][
-+ ENDTEST
-+
-+ void func(void)
-+ {
-+ if (condition1
-+ && condition2)
-+ action();
-+ function(argument1
-+ && argument2);
-+
-+ if (c1 && (c2 ||
-+ c3))
-+ foo;
-+ if (c1 &&
-+ (c2 || c3))
-+ {
-+ }
-+ if (c123456789
-+ && (c22345
-+ || c3))
-+ printf("foo\n");
-+
-+ if ( c1
-+ && ( c2
-+ || c3))
-+ foo;
-+
-+ a_long_line(
-+ argument,
-+ argument);
-+ a_short_line(argument,
-+ argument);
-+ }
-+
-+ STARTTEST
-+ :set cino=k2s,u2
-+ 2kdd3j=][
-+ ENDTEST
-+
-+ void func(void)
-+ {
-+ if (condition1
-+ && condition2)
-+ action();
-+ function(argument1
-+ && argument2);
-+
-+ if (c1 && (c2 ||
-+ c3))
-+ foo;
-+ if (c1 &&
-+ (c2 || c3))
-+ {
-+ }
-+ if (c123456789
-+ && (c22345
-+ || c3))
-+ printf("foo\n");
-+ }
-+
-+ STARTTEST
-+ :set cino=k2s,(0,w1
-+ 2kdd3j=][
-+ ENDTEST
-+
-+ void func(void)
-+ {
-+ if (condition1
-+ && condition2)
-+ action();
-+ function(argument1
-+ && argument2);
-+
-+ if (c1 && (c2 ||
-+ c3))
-+ foo;
-+ if (c1 &&
-+ (c2 || c3))
-+ {
-+ }
-+ if (c123456789
-+ && (c22345
-+ || c3))
-+ printf("foo\n");
-+
-+ if ( c1
-+ && ( c2
-+ || c3))
-+ foo;
-+ func( c1
-+ && ( c2
-+ || c3))
-+ foo;
-+ }
-+
-+ STARTTEST
-+ :set cino=k2,(s
-+ 2kdd3j=][
-+ ENDTEST
-+
-+ void func(void)
-+ {
-+ if (condition1
-+ && condition2)
-+ action();
-+ function(argument1
-+ && argument2);
-+
-+ if (c1 && (c2 ||
-+ c3))
-+ foo;
-+ if (c1 &&
-+ (c2 || c3))
-+ {
-+ }
-+ }
-+
-+ STARTTEST
- :set cino=N-s
- /^NAMESPACESTART
- =/^NAMESPACEEND
-*** ../vim-7.3.491/src/testdir/test3.ok 2011-12-14 20:21:29.000000000 +0100
---- src/testdir/test3.ok 2012-04-05 17:12:14.000000000 +0200
-***************
-*** 1411,1416 ****
---- 1411,1602 ----
- }
-
-
-+ void func(void)
-+ {
-+ if (condition1
-+ && condition2)
-+ action();
-+ function(argument1
-+ && argument2);
-+
-+ if (c1 && (c2 ||
-+ c3))
-+ foo;
-+ if (c1 &&
-+ (c2 || c3))
-+ {
-+ }
-+
-+ if ( c1
-+ && ( c2
-+ || c3))
-+ foo;
-+ func( c1
-+ && ( c2
-+ || c3))
-+ foo;
-+ }
-+
-+
-+ void func(void)
-+ {
-+ if (condition1
-+ && condition2)
-+ action();
-+ function(argument1
-+ && argument2);
-+
-+ if (c1 && (c2 ||
-+ c3))
-+ foo;
-+ if (c1 &&
-+ (c2 || c3))
-+ {
-+ }
-+
-+ if ( c1
-+ && ( c2
-+ || c3))
-+ foo;
-+ func( c1
-+ && ( c2
-+ || c3))
-+ foo;
-+ }
-+
-+
-+ void func(void)
-+ {
-+ if (condition1
-+ && condition2)
-+ action();
-+ function(argument1
-+ && argument2);
-+
-+ if (c1 && (c2 ||
-+ c3))
-+ foo;
-+ if (c1 &&
-+ (c2 || c3))
-+ {
-+ }
-+ if (c123456789
-+ && (c22345
-+ || c3))
-+ printf("foo\n");
-+
-+ c = c1 &&
-+ (
-+ c2 ||
-+ c3
-+ ) && c4;
-+ }
-+
-+
-+ void func(void)
-+ {
-+ if (condition1
-+ && condition2)
-+ action();
-+ function(argument1
-+ && argument2);
-+
-+ if (c1 && (c2 ||
-+ c3))
-+ foo;
-+ if (c1 &&
-+ (c2 || c3))
-+ {
-+ }
-+ if (c123456789
-+ && (c22345
-+ || c3))
-+ printf("foo\n");
-+
-+ if ( c1
-+ && ( c2
-+ || c3))
-+ foo;
-+
-+ a_long_line(
-+ argument,
-+ argument);
-+ a_short_line(argument,
-+ argument);
-+ }
-+
-+
-+ void func(void)
-+ {
-+ if (condition1
-+ && condition2)
-+ action();
-+ function(argument1
-+ && argument2);
-+
-+ if (c1 && (c2 ||
-+ c3))
-+ foo;
-+ if (c1 &&
-+ (c2 || c3))
-+ {
-+ }
-+ if (c123456789
-+ && (c22345
-+ || c3))
-+ printf("foo\n");
-+ }
-+
-+
-+ void func(void)
-+ {
-+ if (condition1
-+ && condition2)
-+ action();
-+ function(argument1
-+ && argument2);
-+
-+ if (c1 && (c2 ||
-+ c3))
-+ foo;
-+ if (c1 &&
-+ (c2 || c3))
-+ {
-+ }
-+ if (c123456789
-+ && (c22345
-+ || c3))
-+ printf("foo\n");
-+
-+ if ( c1
-+ && ( c2
-+ || c3))
-+ foo;
-+ func( c1
-+ && ( c2
-+ || c3))
-+ foo;
-+ }
-+
-+
-+ void func(void)
-+ {
-+ if (condition1
-+ && condition2)
-+ action();
-+ function(argument1
-+ && argument2);
-+
-+ if (c1 && (c2 ||
-+ c3))
-+ foo;
-+ if (c1 &&
-+ (c2 || c3))
-+ {
-+ }
-+ }
-+
-+
- NAMESPACESTART
- /* valid namespaces with normal indent */
- namespace
-*** ../vim-7.3.491/src/version.c 2012-04-05 16:56:38.000000000 +0200
---- src/version.c 2012-04-05 17:14:18.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 492,
- /**/
-
---
-You were lucky to have a LAKE! There were a hundred and sixty of
-us living in a small shoebox in the middle of the road.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.493
-Fcc: 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.493 (after 7.3.492)
-Problem: Two unused variables.
-Solution: Remove them. (Hong Xu)
-Files: src/misc1.c
-
-
-*** ../vim-7.3.492/src/misc1.c 2012-04-05 17:17:38.000000000 +0200
---- src/misc1.c 2012-04-06 13:49:39.000000000 +0200
-***************
-*** 6489,6495 ****
- int cont_amount = 0; /* amount for continuation line */
- int original_line_islabel;
- int added_to_amount = 0;
-- int is_if_for_while = 0;
-
- for (options = curbuf->b_p_cino; *options; )
- {
---- 6489,6494 ----
-***************
-*** 6876,6882 ****
- pos_T cursor_save = curwin->w_cursor;
- pos_T outermost;
- char_u *line;
-- int look_col;
-
- trypos = &our_paren_pos;
- do {
---- 6875,6880 ----
-*** ../vim-7.3.492/src/version.c 2012-04-05 17:17:38.000000000 +0200
---- src/version.c 2012-04-06 13:50:21.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 493,
- /**/
-
---
-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/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.494
-Fcc: 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.494 (after 7.3.491)
-Problem: Can't compile with Lua 9.1 or dynamic Lua.
-Solution: Fix dll_ methods. Fix luado(). (Muraoka Taro, Luis Carvalho)
-Files: src/if_lua.c
-
-
-*** ../vim-7.3.493/src/if_lua.c 2012-04-05 16:53:56.000000000 +0200
---- src/if_lua.c 2012-04-06 14:24:06.000000000 +0200
-***************
-*** 95,100 ****
---- 95,101 ----
- #define luaL_loadbufferx dll_luaL_loadbufferx
- #define luaL_argerror dll_luaL_argerror
- #endif
-+ #define luaL_checkany dll_luaL_checkany
- #define luaL_checklstring dll_luaL_checklstring
- #define luaL_checkinteger dll_luaL_checkinteger
- #define luaL_optinteger dll_luaL_optinteger
-***************
-*** 117,124 ****
- #define lua_pcallk dll_lua_pcallk
- #define lua_getglobal dll_lua_getglobal
- #define lua_setglobal dll_lua_setglobal
-- #define lua_typename dll_lua_typename
- #endif
- #define lua_close dll_lua_close
- #define lua_gettop dll_lua_gettop
- #define lua_settop dll_lua_settop
---- 118,125 ----
- #define lua_pcallk dll_lua_pcallk
- #define lua_getglobal dll_lua_getglobal
- #define lua_setglobal dll_lua_setglobal
- #endif
-+ #define lua_typename dll_lua_typename
- #define lua_close dll_lua_close
- #define lua_gettop dll_lua_gettop
- #define lua_settop dll_lua_settop
-***************
-*** 151,156 ****
---- 152,158 ----
- #define lua_rawset dll_lua_rawset
- #define lua_rawseti dll_lua_rawseti
- #define lua_setmetatable dll_lua_setmetatable
-+ #define lua_next dll_lua_next
- /* libs */
- #define luaopen_base dll_luaopen_base
- #define luaopen_table dll_luaopen_table
-***************
-*** 177,182 ****
---- 179,185 ----
- int (*dll_luaL_loadbufferx) (lua_State *L, const char *buff, size_t sz, const char *name, const char *mode);
- int (*dll_luaL_argerror) (lua_State *L, int numarg, const char *extramsg);
- #endif
-+ void (*dll_luaL_checkany) (lua_State *L, int narg);
- const char *(*dll_luaL_checklstring) (lua_State *L, int numArg, size_t *l);
- lua_Integer (*dll_luaL_checkinteger) (lua_State *L, int numArg);
- lua_Integer (*dll_luaL_optinteger) (lua_State *L, int nArg, lua_Integer def);
-***************
-*** 201,208 ****
- int ctx, lua_CFunction k);
- void (*dll_lua_getglobal) (lua_State *L, const char *var);
- void (*dll_lua_setglobal) (lua_State *L, const char *var);
-- const char *(*dll_lua_typename) (lua_State *L, int tp);
- #endif
- void (*dll_lua_close) (lua_State *L);
- int (*dll_lua_gettop) (lua_State *L);
- void (*dll_lua_settop) (lua_State *L, int idx);
---- 204,211 ----
- int ctx, lua_CFunction k);
- void (*dll_lua_getglobal) (lua_State *L, const char *var);
- void (*dll_lua_setglobal) (lua_State *L, const char *var);
- #endif
-+ const char *(*dll_lua_typename) (lua_State *L, int tp);
- void (*dll_lua_close) (lua_State *L);
- int (*dll_lua_gettop) (lua_State *L);
- void (*dll_lua_settop) (lua_State *L, int idx);
-***************
-*** 235,240 ****
---- 238,244 ----
- void (*dll_lua_rawset) (lua_State *L, int idx);
- void (*dll_lua_rawseti) (lua_State *L, int idx, int n);
- int (*dll_lua_setmetatable) (lua_State *L, int objindex);
-+ int (*dll_lua_next) (lua_State *L, int idx);
- /* libs */
- int (*dll_luaopen_base) (lua_State *L);
- int (*dll_luaopen_table) (lua_State *L);
-***************
-*** 268,273 ****
---- 272,278 ----
- {"luaL_loadbufferx", (luaV_function) &dll_luaL_loadbufferx},
- {"luaL_argerror", (luaV_function) &dll_luaL_argerror},
- #endif
-+ {"luaL_checkany", (luaV_function) &dll_luaL_checkany},
- {"luaL_checklstring", (luaV_function) &dll_luaL_checklstring},
- {"luaL_checkinteger", (luaV_function) &dll_luaL_checkinteger},
- {"luaL_optinteger", (luaV_function) &dll_luaL_optinteger},
-***************
-*** 290,297 ****
- {"lua_pcallk", (luaV_function) &dll_lua_pcallk},
- {"lua_getglobal", (luaV_function) &dll_lua_getglobal},
- {"lua_setglobal", (luaV_function) &dll_lua_setglobal},
-- {"lua_typename", (luaV_function) &dll_lua_typename},
- #endif
- {"lua_close", (luaV_function) &dll_lua_close},
- {"lua_gettop", (luaV_function) &dll_lua_gettop},
- {"lua_settop", (luaV_function) &dll_lua_settop},
---- 295,302 ----
- {"lua_pcallk", (luaV_function) &dll_lua_pcallk},
- {"lua_getglobal", (luaV_function) &dll_lua_getglobal},
- {"lua_setglobal", (luaV_function) &dll_lua_setglobal},
- #endif
-+ {"lua_typename", (luaV_function) &dll_lua_typename},
- {"lua_close", (luaV_function) &dll_lua_close},
- {"lua_gettop", (luaV_function) &dll_lua_gettop},
- {"lua_settop", (luaV_function) &dll_lua_settop},
-***************
-*** 324,329 ****
---- 329,335 ----
- {"lua_rawset", (luaV_function) &dll_lua_rawset},
- {"lua_rawseti", (luaV_function) &dll_lua_rawseti},
- {"lua_setmetatable", (luaV_function) &dll_lua_setmetatable},
-+ {"lua_next", (luaV_function) &dll_lua_next},
- /* libs */
- {"luaopen_base", (luaV_function) &dll_luaopen_base},
- {"luaopen_table", (luaV_function) &dll_luaopen_table},
-***************
-*** 1828,1834 ****
- }
- luaV_setrange(L, eap->line1, eap->line2);
- luaL_buffinit(L, &b);
-! luaL_addlstring(&b, "return function(line) ", 22); /* header */
- luaL_addlstring(&b, s, strlen(s));
- luaL_addlstring(&b, " end", 4); /* footer */
- luaL_pushresult(&b);
---- 1834,1840 ----
- }
- luaV_setrange(L, eap->line1, eap->line2);
- luaL_buffinit(L, &b);
-! luaL_addlstring(&b, "return function(line, linenr) ", 30); /* header */
- luaL_addlstring(&b, s, strlen(s));
- luaL_addlstring(&b, " end", 4); /* footer */
- luaL_pushresult(&b);
-***************
-*** 1845,1851 ****
- {
- lua_pushvalue(L, -1); /* function */
- luaV_pushline(L, curbuf, l); /* current line as arg */
-! if (lua_pcall(L, 1, 1, 0))
- {
- luaV_emsg(L);
- break;
---- 1851,1858 ----
- {
- lua_pushvalue(L, -1); /* function */
- luaV_pushline(L, curbuf, l); /* current line as arg */
-! lua_pushinteger(L, l); /* current line number as arg */
-! if (lua_pcall(L, 2, 1, 0))
- {
- luaV_emsg(L);
- break;
-*** ../vim-7.3.493/src/version.c 2012-04-06 13:56:00.000000000 +0200
---- src/version.c 2012-04-06 14:25:11.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 494,
- /**/
-
---
-Why doesn't Tarzan have a beard?
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.4
-Fcc: 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.495 (after 7.3.492)
-Problem: Compiler warnings.
-Solution: Add function declaration. Remove "offset" argument.
-Files: src/misc1.c
-
-
-*** ../vim-7.3.494/src/misc1.c 2012-04-06 13:56:00.000000000 +0200
---- src/misc1.c 2012-04-09 20:25:58.000000000 +0200
-***************
-*** 4972,4977 ****
---- 4972,4978 ----
- static int cin_iselse __ARGS((char_u *));
- static int cin_isdo __ARGS((char_u *));
- static int cin_iswhileofdo __ARGS((char_u *, linenr_T, int));
-+ static int cin_is_if_for_while_before_offset __ARGS((char_u *line, int *poffset));
- static int cin_iswhileofdo_end __ARGS((int terminated, int ind_maxparen, int ind_maxcomment));
- static int cin_isbreak __ARGS((char_u *));
- static int cin_is_cpp_baseclass __ARGS((colnr_T *col));
-***************
-*** 5771,5787 ****
- }
-
- /*
-! * Check whether in "p" there is an "if", "for" or "while" before offset.
- * Return 0 if there is none.
- * Otherwise return !0 and update "*poffset" to point to the place where the
- * string was found.
- */
- static int
-! cin_is_if_for_while_before_offset(line, offset, poffset)
- char_u *line;
-- size_t offset;
- int *poffset;
- {
-
- if (offset-- < 2)
- return 0;
---- 5772,5788 ----
- }
-
- /*
-! * Check whether in "p" there is an "if", "for" or "while" before "*poffset".
- * Return 0 if there is none.
- * Otherwise return !0 and update "*poffset" to point to the place where the
- * string was found.
- */
- static int
-! cin_is_if_for_while_before_offset(line, poffset)
- char_u *line;
- int *poffset;
- {
-+ int offset = *poffset;
-
- if (offset-- < 2)
- return 0;
-***************
-*** 5805,5812 ****
- goto probablyFound;
- }
- }
--
- return 0;
- probablyFound:
- if (!offset || !vim_isIDc(line[offset - 1]))
- {
---- 5806,5813 ----
- goto probablyFound;
- }
- }
- return 0;
-+
- probablyFound:
- if (!offset || !vim_isIDc(line[offset - 1]))
- {
-***************
-*** 6890,6897 ****
- line = ml_get(outermost.lnum);
-
- is_if_for_while =
-! cin_is_if_for_while_before_offset(line, outermost.col,
-! &outermost.col);
- }
-
- amount = skip_label(our_paren_pos.lnum, &look, ind_maxcomment);
---- 6891,6897 ----
- line = ml_get(outermost.lnum);
-
- is_if_for_while =
-! cin_is_if_for_while_before_offset(line, &outermost.col);
- }
-
- amount = skip_label(our_paren_pos.lnum, &look, ind_maxcomment);
-*** ../vim-7.3.494/src/version.c 2012-04-06 14:30:55.000000000 +0200
---- src/version.c 2012-04-09 20:41:44.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 495,
- /**/
-
---
- [clop clop]
-GUARD #1: Halt! Who goes there?
-ARTHUR: It is I, Arthur, son of Uther Pendragon, from the castle of
- Camelot. King of the Britons, defeator of the Saxons, sovereign of
- all England!
-GUARD #1: Pull the other one!
- The Quest for the Holy Grail (Monty Python)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.496
-Fcc: 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.496
-Problem: MS-DOS: When "diff" trips over difference in line separators some
- tests fail.
-Solution: Make some .ok files use unix line separators. (David Pope)
-Files: src/testdir/Make_dos.mak, src/testdir/Make_ming.mak
-
-
-*** ../vim-7.3.495/src/testdir/Make_dos.mak 2012-04-05 16:56:38.000000000 +0200
---- src/testdir/Make_dos.mak 2012-04-09 21:23:43.000000000 +0200
-***************
-*** 52,58 ****
-
- fixff:
- -$(VIMPROG) -u dos.vim --noplugin "+argdo set ff=dos|upd" +q *.in *.ok
-! -$(VIMPROG) -u dos.vim --noplugin "+argdo set ff=unix|upd" +q dotest.in
-
- clean:
- -del *.out
---- 52,59 ----
-
- fixff:
- -$(VIMPROG) -u dos.vim --noplugin "+argdo set ff=dos|upd" +q *.in *.ok
-! -$(VIMPROG) -u dos.vim --noplugin "+argdo set ff=unix|upd" +q \
-! dotest.in test60.ok test71.ok test74.ok
-
- clean:
- -del *.out
-*** ../vim-7.3.495/src/testdir/Make_ming.mak 2012-04-05 16:56:38.000000000 +0200
---- src/testdir/Make_ming.mak 2012-04-09 21:25:55.000000000 +0200
-***************
-*** 75,80 ****
---- 75,82 ----
-
- fixff:
- -$(VIMPROG) -u dos.vim --noplugin "+argdo set ff=dos|upd" +q *.in *.ok
-+ -$(VIMPROG) -u dos.vim --noplugin "+argdo set ff=unix|upd" +q \
-+ dotest.in test60.ok test71.ok test74.ok
-
- clean:
- -$(DEL) *.out
-*** ../vim-7.3.495/src/version.c 2012-04-09 20:42:20.000000000 +0200
---- src/version.c 2012-04-13 19:10:04.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 496,
- /**/
-
---
-There are 2 kinds of people in my world: those who know Unix, Perl, Vim, GNU,
-Linux, etc, and those who know COBOL. It gets very difficult for me at
-parties, not knowing which group to socialise with :-)
- Sitaram Chamarty
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.497
-Fcc: 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.497
-Problem: Crash when doing ":python print" and compiled with gcc and
- the optimizer enabled.
-Solution: Avoid the crash, doesn't really fix the problem. (Christian
- Brabandt)
-Files: src/if_py_both.h
-
-
-*** ../vim-7.3.496/src/if_py_both.h 2012-02-04 20:17:21.000000000 +0100
---- src/if_py_both.h 2012-04-20 13:24:31.000000000 +0200
-***************
-*** 77,82 ****
---- 77,87 ----
- if (!PyArg_ParseTuple(args, "et#", ENC_OPT, &str, &len))
- return NULL;
-
-+ /* TODO: This works around a gcc optimizer problem and avoids Vim
-+ * from crashing. Should find a real solution. */
-+ if (str == NULL)
-+ return NULL;
-+
- Py_BEGIN_ALLOW_THREADS
- Python_Lock_Vim();
- writer((writefn)(error ? emsg : msg), (char_u *)str, len);
-*** ../vim-7.3.496/src/version.c 2012-04-13 19:11:16.000000000 +0200
---- src/version.c 2012-04-20 13:26:22.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 497,
- /**/
-
---
-There can't be a crisis today, my schedule is already full.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.498
-Fcc: 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.498
-Problem: The behavior of the "- register changes depending on value of
- the 'clipboard' option. (Szamotulski)
-Solution: Also set the "- register when the register is "*" or "+".
- (Christian Brabandt)
-Files: src/ops.c
-
-
-*** ../vim-7.3.497/src/ops.c 2012-03-23 14:16:19.000000000 +0100
---- src/ops.c 2012-04-20 13:36:32.000000000 +0200
-***************
-*** 1720,1728 ****
- did_yank = TRUE;
- }
-
-! /* Yank into small delete register when no register specified and the
-! * delete is within one line. */
-! if (oap->regname == 0 && oap->motion_type != MLINE
- && oap->line_count == 1)
- {
- oap->regname = '-';
---- 1720,1733 ----
- did_yank = TRUE;
- }
-
-! /* Yank into small delete register when no named register specified
-! * and the delete is within one line. */
-! if ((
-! #ifdef FEAT_CLIPBOARD
-! ((clip_unnamed & CLIP_UNNAMED) && oap->regname == '*') ||
-! ((clip_unnamed & CLIP_UNNAMED_PLUS) && oap->regname == '+') ||
-! #endif
-! oap->regname == 0) && oap->motion_type != MLINE
- && oap->line_count == 1)
- {
- oap->regname = '-';
-*** ../vim-7.3.497/src/version.c 2012-04-20 13:31:16.000000000 +0200
---- src/version.c 2012-04-20 13:45:26.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 498,
- /**/
-
---
-Did you ever stop to think... and forget to start again?
- -- Steven Wright
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.499
-Fcc: 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.499
-Problem: When using any interface language when Vim is waiting for a child
- process it gets confused by a child process started through the
- interface.
-Solution: Always used waitpid() instead of wait(). (Yasuhiro Matsumoto)
-Files: src/os_unix.c
-
-
-*** ../vim-7.3.498/src/os_unix.c 2012-02-05 22:51:27.000000000 +0100
---- src/os_unix.c 2012-04-20 15:47:17.000000000 +0200
-***************
-*** 3734,3757 ****
-
- while (wait_pid != child)
- {
-! # ifdef _THREAD_SAFE
-! /* Ugly hack: when compiled with Python threads are probably
-! * used, in which case wait() sometimes hangs for no obvious
-! * reason. Use waitpid() instead and loop (like the GUI). */
-! # ifdef __NeXT__
- wait_pid = wait4(child, status, WNOHANG, (struct rusage *)0);
-! # else
- wait_pid = waitpid(child, status, WNOHANG);
-! # endif
- if (wait_pid == 0)
- {
- /* Wait for 1/100 sec before trying again. */
- mch_delay(10L, TRUE);
- continue;
- }
-- # else
-- wait_pid = wait(status);
-- # endif
- if (wait_pid <= 0
- # ifdef ECHILD
- && errno == ECHILD
---- 3734,3754 ----
-
- while (wait_pid != child)
- {
-! /* When compiled with Python threads are probably used, in which case
-! * wait() sometimes hangs for no obvious reason. Use waitpid()
-! * instead and loop (like the GUI). Also needed for other interfaces,
-! * they might call system(). */
-! # ifdef __NeXT__
- wait_pid = wait4(child, status, WNOHANG, (struct rusage *)0);
-! # else
- wait_pid = waitpid(child, status, WNOHANG);
-! # endif
- if (wait_pid == 0)
- {
- /* Wait for 1/100 sec before trying again. */
- mch_delay(10L, TRUE);
- continue;
- }
- if (wait_pid <= 0
- # ifdef ECHILD
- && errno == ECHILD
-*** ../vim-7.3.498/src/version.c 2012-04-20 13:46:02.000000000 +0200
---- src/version.c 2012-04-20 15:54:05.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 499,
- /**/
-
---
-It's not hard to meet expenses, they're everywhere.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.500
-Fcc: 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.500
-Problem: Ming makefile unconditionally sets WINVER.
-Solution: Only defined when not already defined. (Yasuhiro Matsumoto)
-Files: src/Make_ming.mak
-
-
-*** ../vim-7.3.499/src/Make_ming.mak 2012-03-28 17:43:06.000000000 +0200
---- src/Make_ming.mak 2012-04-20 16:03:50.000000000 +0200
-***************
-*** 51,57 ****
---- 51,59 ----
- # set to yes to enable OLE support
- OLE=no
- # Set the default $(WINVER) to make it work with pre-Win2k
-+ ifndef WINVER
- WINVER = 0x0400
-+ endif
- # Set to yes to enable Cscope support
- CSCOPE=yes
- # Set to yes to enable Netbeans support
-*** ../vim-7.3.499/src/version.c 2012-04-20 15:55:10.000000000 +0200
---- src/version.c 2012-04-20 16:12:34.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 500,
- /**/
-
---
-Life is a gift, living is an art. (Bram Moolenaar)
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.501
-Fcc: 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.501
-Problem: Error for "flush" not being defined when using Ruby command.
-Solution: Defined "flush" as a no-op method. (Kent Sibilev)
-Files: src/if_ruby.c
-
-
-*** ../vim-7.3.500/src/if_ruby.c 2011-08-04 19:34:55.000000000 +0200
---- src/if_ruby.c 2012-04-20 16:18:56.000000000 +0200
-***************
-*** 1238,1243 ****
---- 1238,1248 ----
- return Qnil;
- }
-
-+ static VALUE f_nop(VALUE self)
-+ {
-+ return Qnil;
-+ }
-+
- static VALUE f_p(int argc, VALUE *argv, VALUE self UNUSED)
- {
- int i;
-***************
-*** 1259,1264 ****
---- 1264,1270 ----
-
- rb_stdout = rb_obj_alloc(rb_cObject);
- rb_define_singleton_method(rb_stdout, "write", vim_message, 1);
-+ rb_define_singleton_method(rb_stdout, "flush", f_nop, 0);
- rb_define_global_function("p", f_p, -1);
- }
-
-*** ../vim-7.3.500/src/version.c 2012-04-20 16:13:21.000000000 +0200
---- src/version.c 2012-04-20 16:19:03.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 501,
- /**/
-
---
-Q: What do you call a fish without an eye?
-A: fsh!
-Q: What do you call a deer with no eyes?
-A: no eye deer.
-Q: What do you call a deer with no eyes and no legs?
-A: still no eye deer.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.502
-Fcc: 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.502
-Problem: Netbeans insert halfway a line actually appends to the line.
-Solution: Insert halfway the line. (Brian Victor)
-Files: src/netbeans.c
-
-
-*** ../vim-7.3.501/src/netbeans.c 2012-01-10 22:31:26.000000000 +0100
---- src/netbeans.c 2012-04-20 19:44:31.000000000 +0200
-***************
-*** 1812,1825 ****
- char_u *oldline = ml_get(lnum);
- char_u *newline;
-
-! /* Insert halfway a line. For simplicity we assume we
-! * need to append to the line. */
- newline = alloc_check(
- (unsigned)(STRLEN(oldline) + len + 1));
- if (newline != NULL)
- {
-! STRCPY(newline, oldline);
- STRCAT(newline, args);
- ml_replace(lnum, newline, FALSE);
- }
- }
---- 1812,1826 ----
- char_u *oldline = ml_get(lnum);
- char_u *newline;
-
-! /* Insert halfway a line. */
- newline = alloc_check(
- (unsigned)(STRLEN(oldline) + len + 1));
- if (newline != NULL)
- {
-! mch_memmove(newline, oldline, (size_t)pos->col);
-! newline[pos->col] = NUL;
- STRCAT(newline, args);
-+ STRCAT(newline, oldline + pos->col);
- ml_replace(lnum, newline, FALSE);
- }
- }
-*** ../vim-7.3.501/src/version.c 2012-04-20 18:05:42.000000000 +0200
---- src/version.c 2012-04-20 19:46:48.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 502,
- /**/
-
---
-Time flies like an arrow.
-Fruit flies like a banana.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.503
-Fcc: 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.503 (after 7.3.501)
-Problem: Warning for unused argument.
-Solution: Add UNUSED.
-Files: src/if_ruby.c
-
-
-*** ../vim-7.3.502/src/if_ruby.c 2012-04-20 18:05:42.000000000 +0200
---- src/if_ruby.c 2012-04-25 12:26:38.000000000 +0200
-***************
-*** 1238,1244 ****
- return Qnil;
- }
-
-! static VALUE f_nop(VALUE self)
- {
- return Qnil;
- }
---- 1238,1244 ----
- return Qnil;
- }
-
-! static VALUE f_nop(VALUE self UNUSED)
- {
- return Qnil;
- }
-*** ../vim-7.3.502/src/version.c 2012-04-20 19:47:00.000000000 +0200
---- src/version.c 2012-04-25 12:27:30.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 503,
- /**/
-
---
-Why isn't there mouse-flavored cat food?
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.504
-Fcc: 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.504
-Problem: Commands in help files are not highlighted.
-Solution: Allow for commands in backticks. Adjust CTRL-] to remove the
- backticks.
-Files: src/ex_cmds.c
-
-
-*** ../vim-7.3.503/src/ex_cmds.c 2012-04-05 16:04:58.000000000 +0200
---- src/ex_cmds.c 2012-04-25 12:51:41.000000000 +0200
-***************
-*** 3421,3427 ****
- * and re-attach to buffer, perhaps.
- */
- if (curwin->w_s == &(curwin->w_buffer->b_s))
-! curwin->w_s = &(buf->b_s);
- #endif
- curwin->w_buffer = buf;
- curbuf = buf;
---- 3421,3427 ----
- * and re-attach to buffer, perhaps.
- */
- if (curwin->w_s == &(curwin->w_buffer->b_s))
-! curwin->w_s = &(buf->b_s);
- #endif
- curwin->w_buffer = buf;
- curbuf = buf;
-***************
-*** 5965,5970 ****
---- 5965,5993 ----
- break;
- }
- *d = NUL;
-+
-+ if (*IObuff == '`')
-+ {
-+ if (d > IObuff + 2 && d[-1] == '`')
-+ {
-+ /* remove the backticks from `command` */
-+ mch_memmove(IObuff, IObuff + 1, STRLEN(IObuff));
-+ d[-2] = NUL;
-+ }
-+ else if (d > IObuff + 3 && d[-2] == '`' && d[-1] == ',')
-+ {
-+ /* remove the backticks and comma from `command`, */
-+ mch_memmove(IObuff, IObuff + 1, STRLEN(IObuff));
-+ d[-3] = NUL;
-+ }
-+ else if (d > IObuff + 4 && d[-3] == '`'
-+ && d[-2] == '\\' && d[-1] == '.')
-+ {
-+ /* remove the backticks and dot from `command`\. */
-+ mch_memmove(IObuff, IObuff + 1, STRLEN(IObuff));
-+ d[-4] = NUL;
-+ }
-+ }
- }
- }
-
-*** ../vim-7.3.503/src/version.c 2012-04-25 12:28:05.000000000 +0200
---- src/version.c 2012-04-25 12:46:43.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 504,
- /**/
-
---
-TIM: That is not an ordinary rabbit ... 'tis the most foul cruel and
- bad-tempered thing you ever set eyes on.
-ROBIN: You tit. I soiled my armour I was so scared!
- "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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.505
-Fcc: 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.505
-Problem: Test 11 fails on MS-Windows in some versions.
-Solution: Fix #ifdefs for whether filtering through a pipe is possible. Move
- setting b_no_eol_lnum back to where it was before patch 7.3.124.
- (David Pope)
-Files: src/feature.h, src/eval.c, src/ex_cmds.c, src/fileio.c
-
-
-*** ../vim-7.3.504/src/feature.h 2011-10-20 21:09:25.000000000 +0200
---- src/feature.h 2012-04-25 16:44:26.000000000 +0200
-***************
-*** 1316,1318 ****
---- 1316,1326 ----
- #ifdef FEAT_NORMAL
- # define FEAT_PERSISTENT_UNDO
- #endif
-+
-+ /*
-+ * +filterpipe
-+ */
-+ #if (defined(UNIX) && !defined(USE_SYSTEM)) \
-+ || (defined(WIN3264) && defined(FEAT_GUI_W32))
-+ # define FEAT_FILTERPIPE
-+ #endif
-*** ../vim-7.3.504/src/eval.c 2012-04-05 16:53:55.000000000 +0200
---- src/eval.c 2012-04-25 16:43:53.000000000 +0200
-***************
-*** 12090,12096 ****
- #ifdef FEAT_SEARCHPATH
- "file_in_path",
- #endif
-! #if (defined(UNIX) && !defined(USE_SYSTEM)) || defined(WIN3264)
- "filterpipe",
- #endif
- #ifdef FEAT_FIND_ID
---- 12090,12096 ----
- #ifdef FEAT_SEARCHPATH
- "file_in_path",
- #endif
-! #ifdef FEAT_FILTERPIPE
- "filterpipe",
- #endif
- #ifdef FEAT_FIND_ID
-*** ../vim-7.3.504/src/ex_cmds.c 2012-04-25 12:57:23.000000000 +0200
---- src/ex_cmds.c 2012-04-25 16:46:02.000000000 +0200
-***************
-*** 1113,1119 ****
- if (do_out)
- shell_flags |= SHELL_DOOUT;
-
-! #if (!defined(USE_SYSTEM) && defined(UNIX)) || defined(WIN3264)
- if (!do_in && do_out && !p_stmp)
- {
- /* Use a pipe to fetch stdout of the command, do not use a temp file. */
---- 1113,1119 ----
- if (do_out)
- shell_flags |= SHELL_DOOUT;
-
-! #ifdef FEAT_FILTERPIPE
- if (!do_in && do_out && !p_stmp)
- {
- /* Use a pipe to fetch stdout of the command, do not use a temp file. */
-*** ../vim-7.3.504/src/fileio.c 2012-02-29 18:22:03.000000000 +0100
---- src/fileio.c 2012-04-25 16:40:37.000000000 +0200
-***************
-*** 2655,2664 ****
- }
- #endif
-
-- /* Reset now, following writes should not omit the EOL. Also, the line
-- * number will become invalid because of edits. */
-- curbuf->b_no_eol_lnum = 0;
--
- if (recoverymode && error)
- return FAIL;
- return OK;
---- 2655,2660 ----
-***************
-*** 5098,5103 ****
---- 5094,5101 ----
- {
- aco_save_T aco;
-
-+ curbuf->b_no_eol_lnum = 0; /* in case it was set by the previous read */
-+
- /*
- * Apply POST autocommands.
- * Careful: The autocommands may call buf_write() recursively!
-*** ../vim-7.3.504/src/version.c 2012-04-25 12:57:23.000000000 +0200
---- src/version.c 2012-04-25 16:49:50.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 505,
- /**/
-
---
-Lose weight, NEVER Diet again with
- The "Invisible Weight Loss Patch"
- (spam e-mail)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.506
-Fcc: 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.506
-Problem: GTK gives an error when selecting a non-existent file.
-Solution: Add a handler to avoid the error. (Christian Brabandt)
-Files: src/gui_gtk.c
-
-
-*** ../vim-7.3.505/src/gui_gtk.c 2011-06-26 04:48:56.000000000 +0200
---- src/gui_gtk.c 2012-04-25 17:08:58.000000000 +0200
-***************
-*** 90,95 ****
---- 90,100 ----
- static void entry_activate_cb(GtkWidget *widget, gpointer data);
- static void entry_changed_cb(GtkWidget *entry, GtkWidget *dialog);
- static void find_replace_cb(GtkWidget *widget, gpointer data);
-+ static void recent_func_log_func(
-+ const gchar *log_domain,
-+ GLogLevelFlags log_level,
-+ const gchar *message,
-+ gpointer user_data);
-
- #if defined(FEAT_TOOLBAR)
- /*
-***************
-*** 839,844 ****
---- 844,851 ----
- GtkWidget *fc;
- #endif
- char_u dirbuf[MAXPATHL];
-+ guint log_handler;
-+ const gchar *domain = "Gtk";
-
- title = CONVERT_TO_UTF8(title);
-
-***************
-*** 853,858 ****
---- 860,870 ----
- /* If our pointer is currently hidden, then we should show it. */
- gui_mch_mousehide(FALSE);
-
-+ /* Hack: The GTK file dialog warns when it can't access a new file, this
-+ * makes it shut up. http://bugzilla.gnome.org/show_bug.cgi?id=664587 */
-+ log_handler = g_log_set_handler(domain, G_LOG_LEVEL_WARNING,
-+ recent_func_log_func, NULL);
-+
- #ifdef USE_FILE_CHOOSER
- /* We create the dialog each time, so that the button text can be "Open"
- * or "Save" according to the action. */
-***************
-*** 916,921 ****
---- 928,934 ----
- gtk_widget_show(gui.filedlg);
- gtk_main();
- #endif
-+ g_log_remove_handler(domain, log_handler);
-
- CONVERT_TO_UTF8_FREE(title);
- if (gui.browse_fname == NULL)
-***************
-*** 1882,1884 ****
---- 1895,1908 ----
- * backwards compatibility anyway. */
- do_cmdline_cmd((char_u *)"emenu ToolBar.FindHelp");
- }
-+
-+ static void
-+ recent_func_log_func(const gchar *log_domain UNUSED,
-+ GLogLevelFlags log_level UNUSED,
-+ const gchar *message UNUSED,
-+ gpointer user_data UNUSED)
-+ {
-+ /* We just want to suppress the warnings. */
-+ /* http://bugzilla.gnome.org/show_bug.cgi?id=664587 */
-+ }
-+
-*** ../vim-7.3.505/src/version.c 2012-04-25 16:50:44.000000000 +0200
---- src/version.c 2012-04-25 17:08:28.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 506,
- /**/
-
---
-Compilation process failed successfully.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.507
-Fcc: 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.507
-Problem: When exiting with unsaved changes, selecting an existing file in
- the file dialog, there is no dialog to ask whether the existing
- file should be overwritten. (Felipe G. Nievinski)
-Solution: Call check_overwrite() before writing. (Christian Brabandt)
-Files: src/ex_cmds.c, src/ex_cmds2.c, src/proto/ex_cmds.pro
-
-
-*** ../vim-7.3.506/src/ex_cmds.c 2012-04-25 16:50:44.000000000 +0200
---- src/ex_cmds.c 2012-04-25 17:19:53.000000000 +0200
-***************
-*** 25,31 ****
- static int read_viminfo_up_to_marks __ARGS((vir_T *virp, int forceit, int writing));
- #endif
-
-- static int check_overwrite __ARGS((exarg_T *eap, buf_T *buf, char_u *fname, char_u *ffname, int other));
- static int check_readonly __ARGS((int *forceit, buf_T *buf));
- #ifdef FEAT_AUTOCMD
- static void delbuf_msg __ARGS((char_u *name));
---- 25,30 ----
-***************
-*** 2722,2728 ****
- * May set eap->forceit if a dialog says it's OK to overwrite.
- * Return OK if it's OK, FAIL if it is not.
- */
-! static int
- check_overwrite(eap, buf, fname, ffname, other)
- exarg_T *eap;
- buf_T *buf;
---- 2721,2727 ----
- * May set eap->forceit if a dialog says it's OK to overwrite.
- * Return OK if it's OK, FAIL if it is not.
- */
-! int
- check_overwrite(eap, buf, fname, ffname, other)
- exarg_T *eap;
- buf_T *buf;
-*** ../vim-7.3.506/src/ex_cmds2.c 2012-03-23 18:39:10.000000000 +0100
---- src/ex_cmds2.c 2012-04-25 17:24:37.000000000 +0200
-***************
-*** 1489,1494 ****
---- 1489,1495 ----
- char_u buff[DIALOG_MSG_SIZE];
- int ret;
- buf_T *buf2;
-+ exarg_T ea;
-
- dialog_msg(buff, _("Save changes to \"%s\"?"),
- (buf->b_fname != NULL) ?
-***************
-*** 1498,1510 ****
- else
- ret = vim_dialog_yesnocancel(VIM_QUESTION, NULL, buff, 1);
-
- if (ret == VIM_YES)
- {
- #ifdef FEAT_BROWSE
- /* May get file name, when there is none */
- browse_save_fname(buf);
- #endif
-! if (buf->b_fname != NULL) /* didn't hit Cancel */
- (void)buf_write_all(buf, FALSE);
- }
- else if (ret == VIM_NO)
---- 1499,1517 ----
- else
- ret = vim_dialog_yesnocancel(VIM_QUESTION, NULL, buff, 1);
-
-+ /* Init ea pseudo-structure, this is needed for the check_overwrite()
-+ * function. */
-+ ea.append = ea.forceit = FALSE;
-+
- if (ret == VIM_YES)
- {
- #ifdef FEAT_BROWSE
- /* May get file name, when there is none */
- browse_save_fname(buf);
- #endif
-! if (buf->b_fname != NULL && check_overwrite(&ea, buf,
-! buf->b_fname, buf->b_ffname, FALSE) == OK)
-! /* didn't hit Cancel */
- (void)buf_write_all(buf, FALSE);
- }
- else if (ret == VIM_NO)
-***************
-*** 1532,1538 ****
- /* May get file name, when there is none */
- browse_save_fname(buf2);
- #endif
-! if (buf2->b_fname != NULL) /* didn't hit Cancel */
- (void)buf_write_all(buf2, FALSE);
- #ifdef FEAT_AUTOCMD
- /* an autocommand may have deleted the buffer */
---- 1539,1547 ----
- /* May get file name, when there is none */
- browse_save_fname(buf2);
- #endif
-! if (buf2->b_fname != NULL && check_overwrite(&ea, buf2,
-! buf2->b_fname, buf2->b_ffname, FALSE) == OK)
-! /* didn't hit Cancel */
- (void)buf_write_all(buf2, FALSE);
- #ifdef FEAT_AUTOCMD
- /* an autocommand may have deleted the buffer */
-*** ../vim-7.3.506/src/proto/ex_cmds.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/ex_cmds.pro 2012-04-25 17:25:47.000000000 +0200
-***************
-*** 23,28 ****
---- 23,29 ----
- void ex_update __ARGS((exarg_T *eap));
- void ex_write __ARGS((exarg_T *eap));
- int do_write __ARGS((exarg_T *eap));
-+ int check_overwrite __ARGS((exarg_T *eap, buf_T *buf, char_u *fname, char_u *ffname, int other));
- void ex_wnext __ARGS((exarg_T *eap));
- void do_wqall __ARGS((exarg_T *eap));
- int not_writing __ARGS((void));
-*** ../vim-7.3.506/src/version.c 2012-04-25 17:10:12.000000000 +0200
---- src/version.c 2012-04-25 17:17:30.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 507,
- /**/
-
---
-BROTHER MAYNARD: Armaments Chapter Two Verses Nine to Twenty One.
-ANOTHER MONK: And St. Attila raised his hand grenade up on high saying "O
- Lord bless this thy hand grenade that with it thou mayest
- blow thine enemies to tiny bits, in thy mercy. "and the Lord
- did grin and people did feast upon the lambs and sloths and
- carp and anchovies and orang-utans and breakfast cereals and
- fruit bats and...
-BROTHER MAYNARD: Skip a bit brother ...
- "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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.508
-Fcc: 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.508
-Problem: Default for v:register is not set.
-Solution: Init v:register in eval_init(). Correct for 'clipboard' before the
- main loop. (Ingo Karkat)
-Files: src/eval.c, src/main.c
-
-
-*** ../vim-7.3.507/src/eval.c 2012-04-25 16:50:44.000000000 +0200
---- src/eval.c 2012-04-25 17:56:41.000000000 +0200
-***************
-*** 880,885 ****
---- 880,886 ----
- hash_add(&compat_hashtab, p->vv_di.di_key);
- }
- set_vim_var_nr(VV_SEARCHFORWARD, 1L);
-+ set_reg_var(0); /* default for v:register is not 0 but '"' */
-
- #ifdef EBCDIC
- /*
-*** ../vim-7.3.507/src/main.c 2012-03-28 17:10:26.000000000 +0200
---- src/main.c 2012-04-25 18:01:28.000000000 +0200
-***************
-*** 928,933 ****
---- 928,945 ----
- TIME_MSG("VimEnter autocommands");
- #endif
-
-+ #if defined(FEAT_EVAL) && defined(FEAT_CLIPBOARD)
-+ /* Adjust default register name for "unnamed" in 'clipboard'. Can only be
-+ * done after the clipboard is available and all initial commands that may
-+ * modify the 'clipboard' setting have run; i.e. just before entering the
-+ * main loop. */
-+ {
-+ int default_regname = 0;
-+ adjust_clip_reg(&default_regname);
-+ set_reg_var(default_regname);
-+ }
-+ #endif
-+
- #if defined(FEAT_DIFF) && defined(FEAT_SCROLLBIND)
- /* When a startup script or session file setup for diff'ing and
- * scrollbind, sync the scrollbind now. */
-***************
-*** 1357,1363 ****
- {
- apply_autocmds(EVENT_BUFWINLEAVE, buf->b_fname,
- buf->b_fname, FALSE, buf);
-! buf->b_changedtick = -1; /* note that we did it already */
- /* start all over, autocommands may mess up the lists */
- next_tp = first_tabpage;
- break;
---- 1369,1375 ----
- {
- apply_autocmds(EVENT_BUFWINLEAVE, buf->b_fname,
- buf->b_fname, FALSE, buf);
-! buf->b_changedtick = -1; /* note that we did it already */
- /* start all over, autocommands may mess up the lists */
- next_tp = first_tabpage;
- break;
-*** ../vim-7.3.507/src/version.c 2012-04-25 17:32:14.000000000 +0200
---- src/version.c 2012-04-25 18:00:28.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 508,
- /**/
-
---
-I wonder, do vegetarians eat fruit bats?
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.509
-Fcc: 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.509
-Problem: ":vimgrep" fails when 'autochdir' is set.
-Solution: A more generic solution for changing directory. (Ben Fritz)
-Files: src/quickfix.c
-
-
-*** ../vim-7.3.508/src/quickfix.c 2012-03-07 20:13:44.000000000 +0100
---- src/quickfix.c 2012-04-25 18:52:24.000000000 +0200
-***************
-*** 130,138 ****
- static void qf_fill_buffer __ARGS((qf_info_T *qi));
- #endif
- static char_u *get_mef_name __ARGS((void));
-! static buf_T *load_dummy_buffer __ARGS((char_u *fname));
-! static void wipe_dummy_buffer __ARGS((buf_T *buf));
-! static void unload_dummy_buffer __ARGS((buf_T *buf));
- static qf_info_T *ll_get_or_alloc_list __ARGS((win_T *));
-
- /* Quickfix window check helper macro */
---- 130,139 ----
- static void qf_fill_buffer __ARGS((qf_info_T *qi));
- #endif
- static char_u *get_mef_name __ARGS((void));
-! static void restore_start_dir __ARGS((char_u *dirname_start));
-! static buf_T *load_dummy_buffer __ARGS((char_u *fname, char_u *dirname_start, char_u *resulting_dir));
-! static void wipe_dummy_buffer __ARGS((buf_T *buf, char_u *dirname_start));
-! static void unload_dummy_buffer __ARGS((buf_T *buf, char_u *dirname_start));
- static qf_info_T *ll_get_or_alloc_list __ARGS((win_T *));
-
- /* Quickfix window check helper macro */
-***************
-*** 3237,3255 ****
-
- /* Load file into a buffer, so that 'fileencoding' is detected,
- * autocommands applied, etc. */
-! buf = load_dummy_buffer(fname);
-!
-! /* When autocommands changed directory: go back. We assume it was
-! * ":lcd %:p:h". */
-! mch_dirname(dirname_now, MAXPATHL);
-! if (STRCMP(dirname_start, dirname_now) != 0)
-! {
-! exarg_T ea;
-!
-! ea.arg = dirname_start;
-! ea.cmdidx = CMD_lcd;
-! ex_cd(&ea);
-! }
-
- p_mls = save_mls;
- #if defined(FEAT_AUTOCMD) && defined(FEAT_SYN_HL)
---- 3238,3244 ----
-
- /* Load file into a buffer, so that 'fileencoding' is detected,
- * autocommands applied, etc. */
-! buf = load_dummy_buffer(fname, dirname_start, dirname_now);
-
- p_mls = save_mls;
- #if defined(FEAT_AUTOCMD) && defined(FEAT_SYN_HL)
-***************
-*** 3320,3326 ****
- {
- /* Never keep a dummy buffer if there is another buffer
- * with the same name. */
-! wipe_dummy_buffer(buf);
- buf = NULL;
- }
- else if (!cmdmod.hide
---- 3309,3315 ----
- {
- /* Never keep a dummy buffer if there is another buffer
- * with the same name. */
-! wipe_dummy_buffer(buf, dirname_start);
- buf = NULL;
- }
- else if (!cmdmod.hide
-***************
-*** 3336,3347 ****
- * many swap files. */
- if (!found_match)
- {
-! wipe_dummy_buffer(buf);
- buf = NULL;
- }
- else if (buf != first_match_buf || (flags & VGR_NOJUMP))
- {
-! unload_dummy_buffer(buf);
- buf = NULL;
- }
- }
---- 3325,3336 ----
- * many swap files. */
- if (!found_match)
- {
-! wipe_dummy_buffer(buf, dirname_start);
- buf = NULL;
- }
- else if (buf != first_match_buf || (flags & VGR_NOJUMP))
- {
-! unload_dummy_buffer(buf, dirname_start);
- buf = NULL;
- }
- }
-***************
-*** 3487,3499 ****
- }
-
- /*
-! * Load file "fname" into a dummy buffer and return the buffer pointer.
- * Returns NULL if it fails.
-- * Must call unload_dummy_buffer() or wipe_dummy_buffer() later!
- */
- static buf_T *
-! load_dummy_buffer(fname)
- char_u *fname;
- {
- buf_T *newbuf;
- buf_T *newbuf_to_wipe = NULL;
---- 3476,3523 ----
- }
-
- /*
-! * Restore current working directory to "dirname_start" if they differ, taking
-! * into account whether it is set locally or globally.
-! */
-! static void
-! restore_start_dir(dirname_start)
-! char_u *dirname_start;
-! {
-! char_u *dirname_now = alloc(MAXPATHL);
-!
-! if (NULL != dirname_now)
-! {
-! mch_dirname(dirname_now, MAXPATHL);
-! if (STRCMP(dirname_start, dirname_now) != 0)
-! {
-! /* If the directory has changed, change it back by building up an
-! * appropriate ex command and executing it. */
-! exarg_T ea;
-!
-! ea.arg = dirname_start;
-! ea.cmdidx = (curwin->w_localdir == NULL) ? CMD_cd : CMD_lcd;
-! ex_cd(&ea);
-! }
-! }
-! }
-!
-! /*
-! * Load file "fname" into a dummy buffer and return the buffer pointer,
-! * placing the directory resulting from the buffer load into the
-! * "resulting_dir" pointer. "resulting_dir" must be allocated by the caller
-! * prior to calling this function. Restores directory to "dirname_start" prior
-! * to returning, if autocmds or the 'autochdir' option have changed it.
-! *
-! * If creating the dummy buffer does not fail, must call unload_dummy_buffer()
-! * or wipe_dummy_buffer() later!
-! *
- * Returns NULL if it fails.
- */
- static buf_T *
-! load_dummy_buffer(fname, dirname_start, resulting_dir)
- char_u *fname;
-+ char_u *dirname_start; /* in: old directory */
-+ char_u *resulting_dir; /* out: new directory */
- {
- buf_T *newbuf;
- buf_T *newbuf_to_wipe = NULL;
-***************
-*** 3548,3569 ****
- wipe_buffer(newbuf_to_wipe, FALSE);
- }
-
- if (!buf_valid(newbuf))
- return NULL;
- if (failed)
- {
-! wipe_dummy_buffer(newbuf);
- return NULL;
- }
- return newbuf;
- }
-
- /*
-! * Wipe out the dummy buffer that load_dummy_buffer() created.
- */
- static void
-! wipe_dummy_buffer(buf)
- buf_T *buf;
- {
- if (curbuf != buf) /* safety check */
- {
---- 3572,3604 ----
- wipe_buffer(newbuf_to_wipe, FALSE);
- }
-
-+ /*
-+ * When autocommands/'autochdir' option changed directory: go back.
-+ * Let the caller know what the resulting dir was first, in case it is
-+ * important.
-+ */
-+ mch_dirname(resulting_dir, MAXPATHL);
-+ restore_start_dir(dirname_start);
-+
- if (!buf_valid(newbuf))
- return NULL;
- if (failed)
- {
-! wipe_dummy_buffer(newbuf, dirname_start);
- return NULL;
- }
- return newbuf;
- }
-
- /*
-! * Wipe out the dummy buffer that load_dummy_buffer() created. Restores
-! * directory to "dirname_start" prior to returning, if autocmds or the
-! * 'autochdir' option have changed it.
- */
- static void
-! wipe_dummy_buffer(buf, dirname_start)
- buf_T *buf;
-+ char_u *dirname_start;
- {
- if (curbuf != buf) /* safety check */
- {
-***************
-*** 3583,3600 ****
- * new aborting error, interrupt, or uncaught exception. */
- leave_cleanup(&cs);
- #endif
- }
- }
-
- /*
-! * Unload the dummy buffer that load_dummy_buffer() created.
- */
- static void
-! unload_dummy_buffer(buf)
- buf_T *buf;
- {
- if (curbuf != buf) /* safety check */
- close_buffer(NULL, buf, DOBUF_UNLOAD, FALSE);
- }
-
- #if defined(FEAT_EVAL) || defined(PROTO)
---- 3618,3645 ----
- * new aborting error, interrupt, or uncaught exception. */
- leave_cleanup(&cs);
- #endif
-+ /* When autocommands/'autochdir' option changed directory: go back. */
-+ restore_start_dir(dirname_start);
- }
- }
-
- /*
-! * Unload the dummy buffer that load_dummy_buffer() created. Restores
-! * directory to "dirname_start" prior to returning, if autocmds or the
-! * 'autochdir' option have changed it.
- */
- static void
-! unload_dummy_buffer(buf, dirname_start)
- buf_T *buf;
-+ char_u *dirname_start;
- {
- if (curbuf != buf) /* safety check */
-+ {
- close_buffer(NULL, buf, DOBUF_UNLOAD, FALSE);
-+
-+ /* When autocommands/'autochdir' option changed directory: go back. */
-+ restore_start_dir(dirname_start);
-+ }
- }
-
- #if defined(FEAT_EVAL) || defined(PROTO)
-*** ../vim-7.3.508/src/version.c 2012-04-25 18:24:24.000000000 +0200
---- src/version.c 2012-04-25 18:43:10.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 509,
- /**/
-
---
- Arthur pulls Pin out. The MONK blesses the grenade as ...
-ARTHUR: (quietly) One, two, five ...
-GALAHAD: Three, sir!
-ARTHUR: Three.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.510
-Fcc: 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.510
-Problem: Test 77 fails on Solaris 7. (Michael Soyka)
-Solution: Replace any tabs with spaces.
-Files: src/testdir/test77.in
-
-
-*** ../vim-7.3.509/src/testdir/test77.in 2011-03-22 18:10:34.000000000 +0100
---- src/testdir/test77.in 2012-04-30 11:30:31.000000000 +0200
-***************
-*** 21,27 ****
- :while i <= 2000000 | call append(i, range(i, i + 99)) | let i += 100 | endwhile
- ggdd
- :w! Xtest
-! :!cksum Xtest > test.out
- :qa!
- ENDTEST
-
---- 21,29 ----
- :while i <= 2000000 | call append(i, range(i, i + 99)) | let i += 100 | endwhile
- ggdd
- :w! Xtest
-! :r !cksum Xtest
-! :s/\s/ /g
-! :.w! test.out
- :qa!
- ENDTEST
-
-*** ../vim-7.3.509/src/version.c 2012-04-25 18:57:17.000000000 +0200
---- src/version.c 2012-04-30 11:33:35.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 510,
- /**/
-
---
-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/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.511
-Fcc: 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.511
-Problem: Using a FileReadCmd autocommand that does ":e! {file}" may cause a
- crash. (Christian Brabandt)
-Solution: Properly restore curwin->w_s.
-Files: src/fileio.c
-
-
-*** ../vim-7.3.510/src/fileio.c 2012-04-25 16:50:44.000000000 +0200
---- src/fileio.c 2012-04-30 17:04:22.000000000 +0200
-***************
-*** 8982,8987 ****
---- 8982,8991 ----
- && buf_valid(aco->new_curbuf)
- && aco->new_curbuf->b_ml.ml_mfp != NULL)
- {
-+ # if defined(FEAT_SYN_HL) || defined(FEAT_SPELL)
-+ if (curwin->w_s == &curbuf->b_s)
-+ curwin->w_s = &aco->new_curbuf->b_s;
-+ # endif
- --curbuf->b_nwindows;
- curbuf = aco->new_curbuf;
- curwin->w_buffer = curbuf;
-*** ../vim-7.3.510/src/version.c 2012-04-30 11:34:20.000000000 +0200
---- src/version.c 2012-04-30 17:01:05.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 511,
- /**/
-
---
-There is no right or wrong, there is only your personal opinion.
- (Bram Moolenaar)
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.512
-Fcc: 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.512
-Problem: undofile() returns a useless name when passed an empty string.
-Solution: Return an empty string. (Christian Brabandt)
-Files: src/eval.c
-
-
-*** ../vim-7.3.511/src/eval.c 2012-04-25 18:24:24.000000000 +0200
---- src/eval.c 2012-04-30 17:23:26.000000000 +0200
-***************
-*** 18259,18269 ****
- rettv->v_type = VAR_STRING;
- #ifdef FEAT_PERSISTENT_UNDO
- {
-! char_u *ffname = FullName_save(get_tv_string(&argvars[0]), FALSE);
-
-! if (ffname != NULL)
-! rettv->vval.v_string = u_get_undo_file_name(ffname, FALSE);
-! vim_free(ffname);
- }
- #else
- rettv->vval.v_string = NULL;
---- 18259,18279 ----
- rettv->v_type = VAR_STRING;
- #ifdef FEAT_PERSISTENT_UNDO
- {
-! char_u *fname = get_tv_string(&argvars[0]);
-
-! if (*fname == NUL)
-! {
-! /* If there is no file name there will be no undo file. */
-! rettv->vval.v_string = NULL;
-! }
-! else
-! {
-! char_u *ffname = FullName_save(fname, FALSE);
-!
-! if (ffname != NULL)
-! rettv->vval.v_string = u_get_undo_file_name(ffname, FALSE);
-! vim_free(ffname);
-! }
- }
- #else
- rettv->vval.v_string = NULL;
-*** ../vim-7.3.511/src/version.c 2012-04-30 17:04:47.000000000 +0200
---- src/version.c 2012-04-30 17:24:42.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 512,
- /**/
-
---
-It is illegal for a driver to be blindfolded while operating a vehicle.
- [real standing law in Alabama, 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.513
-Fcc: 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.513
-Problem: Cannot use CTRL-E and CTRL-Y with "r".
-Solution: Make CTRL-E and CTRL-Y work like in Insert mode. (Christian
- Brabandt)
-Files: src/edit.c, src/normal.c, src/proto/edit.pro
-
-
-*** ../vim-7.3.512/src/edit.c 2012-04-05 16:07:01.000000000 +0200
---- src/edit.c 2012-04-30 17:53:47.000000000 +0200
-***************
-*** 253,259 ****
- #ifdef FEAT_DIGRAPHS
- static int ins_digraph __ARGS((void));
- #endif
-- static int ins_copychar __ARGS((linenr_T lnum));
- static int ins_ctrl_ey __ARGS((int tc));
- #ifdef FEAT_SMARTINDENT
- static void ins_try_si __ARGS((int c));
---- 253,258 ----
-***************
-*** 9899,9905 ****
- * Handle CTRL-E and CTRL-Y in Insert mode: copy char from other line.
- * Returns the char to be inserted, or NUL if none found.
- */
-! static int
- ins_copychar(lnum)
- linenr_T lnum;
- {
---- 9898,9904 ----
- * Handle CTRL-E and CTRL-Y in Insert mode: copy char from other line.
- * Returns the char to be inserted, or NUL if none found.
- */
-! int
- ins_copychar(lnum)
- linenr_T lnum;
- {
-*** ../vim-7.3.512/src/normal.c 2012-03-28 12:59:53.000000000 +0200
---- src/normal.c 2012-04-30 18:06:13.000000000 +0200
-***************
-*** 7070,7076 ****
- for (n = cap->count1; n > 0; --n)
- {
- State = REPLACE;
-! ins_char(cap->nchar);
- State = old_State;
- if (cap->ncharC1 != 0)
- ins_char(cap->ncharC1);
---- 7070,7087 ----
- for (n = cap->count1; n > 0; --n)
- {
- State = REPLACE;
-! if (cap->nchar == Ctrl_E || cap->nchar == Ctrl_Y)
-! {
-! int c = ins_copychar(curwin->w_cursor.lnum
-! + (cap->nchar == Ctrl_Y ? -1 : 1));
-! if (c != NUL)
-! ins_char(c);
-! else
-! /* will be decremented further down */
-! ++curwin->w_cursor.col;
-! }
-! else
-! ins_char(cap->nchar);
- State = old_State;
- if (cap->ncharC1 != 0)
- ins_char(cap->ncharC1);
-***************
-*** 7092,7098 ****
- * line will be changed.
- */
- ptr = ml_get_buf(curbuf, curwin->w_cursor.lnum, TRUE);
-! ptr[curwin->w_cursor.col] = cap->nchar;
- if (p_sm && msg_silent == 0)
- showmatch(cap->nchar);
- ++curwin->w_cursor.col;
---- 7103,7117 ----
- * line will be changed.
- */
- ptr = ml_get_buf(curbuf, curwin->w_cursor.lnum, TRUE);
-! if (cap->nchar == Ctrl_E || cap->nchar == Ctrl_Y)
-! {
-! int c = ins_copychar(curwin->w_cursor.lnum
-! + (cap->nchar == Ctrl_Y ? -1 : 1));
-! if (c != NUL)
-! ptr[curwin->w_cursor.col] = c;
-! }
-! else
-! ptr[curwin->w_cursor.col] = cap->nchar;
- if (p_sm && msg_silent == 0)
- showmatch(cap->nchar);
- ++curwin->w_cursor.col;
-*** ../vim-7.3.512/src/proto/edit.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/edit.pro 2012-04-30 17:54:41.000000000 +0200
-***************
-*** 39,42 ****
---- 39,43 ----
- int hkmap __ARGS((int c));
- void ins_scroll __ARGS((void));
- void ins_horscroll __ARGS((void));
-+ int ins_copychar __ARGS((linenr_T lnum));
- /* vim: set ft=c : */
-*** ../vim-7.3.512/src/version.c 2012-04-30 17:35:44.000000000 +0200
---- src/version.c 2012-04-30 18:17:52.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 513,
- /**/
-
---
-It is illegal for anyone to try and stop a child from playfully jumping over
-puddles of water.
- [real standing law in California, 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.514
-Fcc: 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.514
-Problem: No completion for :history command.
-Solution: Add the completion and update the docs. Also fix ":behave"
- completion. (Dominique Pelle)
-Files: runtime/doc/cmdline.txt, runtime/doc/map.txt, src/ex_docmd.c,
- src/ex_getln.c, src/vim.h
-
-
-*** ../vim-7.3.513/runtime/doc/cmdline.txt 2010-08-15 21:57:17.000000000 +0200
---- runtime/doc/cmdline.txt 2012-04-30 18:30:00.000000000 +0200
-***************
-*** 330,341 ****
-
- :his[tory] [{name}] [{first}][, [{last}]]
- List the contents of history {name} which can be:
-! c[md] or : command-line history
-! s[earch] or / search string history
-! e[xpr] or = expression register history
-! i[nput] or @ input line history
-! d[ebug] or > debug command history
-! a[ll] all of the above
- {not in Vi}
-
- If the numbers {first} and/or {last} are given, the respective
---- 330,341 ----
-
- :his[tory] [{name}] [{first}][, [{last}]]
- List the contents of history {name} which can be:
-! c[md] or : command-line history
-! s[earch] or / or ? search string history
-! e[xpr] or = expression register history
-! i[nput] or @ input line history
-! d[ebug] or > debug command history
-! a[ll] all of the above
- {not in Vi}
-
- If the numbers {first} and/or {last} are given, the respective
-*** ../vim-7.3.513/runtime/doc/map.txt 2011-07-20 16:36:35.000000000 +0200
---- runtime/doc/map.txt 2012-04-30 18:30:00.000000000 +0200
-***************
-*** 1202,1207 ****
---- 1219,1225 ----
-
- -complete=augroup autocmd groups
- -complete=buffer buffer names
-+ -complete=behave :behave suboptions
- -complete=color color schemes
- -complete=command Ex command (and arguments)
- -complete=compiler compilers
-***************
-*** 1216,1221 ****
---- 1234,1240 ----
- -complete=function function name
- -complete=help help subjects
- -complete=highlight highlight groups
-+ -complete=history :history suboptions
- -complete=locale locale names (as output of locale -a)
- -complete=mapping mapping name
- -complete=menu menus
-*** ../vim-7.3.513/src/ex_docmd.c 2012-02-12 20:13:55.000000000 +0100
---- src/ex_docmd.c 2012-04-30 18:33:27.000000000 +0200
-***************
-*** 3920,3927 ****
---- 3920,3935 ----
- #endif
- case CMD_behave:
- xp->xp_context = EXPAND_BEHAVE;
-+ xp->xp_pattern = arg;
- break;
-
-+ #if defined(FEAT_CMDHIST)
-+ case CMD_history:
-+ xp->xp_context = EXPAND_HISTORY;
-+ xp->xp_pattern = arg;
-+ break;
-+ #endif
-+
- #endif /* FEAT_CMDL_COMPL */
-
- default:
-***************
-*** 5329,5334 ****
---- 5337,5343 ----
- } command_complete[] =
- {
- {EXPAND_AUGROUP, "augroup"},
-+ {EXPAND_BEHAVE, "behave"},
- {EXPAND_BUFFERS, "buffer"},
- {EXPAND_COLORS, "color"},
- {EXPAND_COMMANDS, "command"},
-***************
-*** 5350,5357 ****
- {EXPAND_FUNCTIONS, "function"},
- {EXPAND_HELP, "help"},
- {EXPAND_HIGHLIGHT, "highlight"},
- #if (defined(HAVE_LOCALE_H) || defined(X_LOCALE)) \
-! && (defined(FEAT_GETTEXT) || defined(FEAT_MBYTE))
- {EXPAND_LOCALES, "locale"},
- #endif
- {EXPAND_MAPPINGS, "mapping"},
---- 5359,5369 ----
- {EXPAND_FUNCTIONS, "function"},
- {EXPAND_HELP, "help"},
- {EXPAND_HIGHLIGHT, "highlight"},
-+ #if defined(FEAT_CMDHIST)
-+ {EXPAND_HISTORY, "history"},
-+ #endif
- #if (defined(HAVE_LOCALE_H) || defined(X_LOCALE)) \
-! && (defined(FEAT_GETTEXT) || defined(FEAT_MBYTE))
- {EXPAND_LOCALES, "locale"},
- #endif
- {EXPAND_MAPPINGS, "mapping"},
-*** ../vim-7.3.513/src/ex_getln.c 2012-03-07 19:16:49.000000000 +0100
---- src/ex_getln.c 2012-04-30 18:36:04.000000000 +0200
-***************
-*** 25,31 ****
- int cmdlen; /* number of chars in command line */
- int cmdpos; /* current cursor position */
- int cmdspos; /* cursor column on screen */
-! int cmdfirstc; /* ':', '/', '?', '=' or NUL */
- int cmdindent; /* number of spaces before cmdline */
- char_u *cmdprompt; /* message in front of cmdline */
- int cmdattr; /* attributes for prompt */
---- 25,31 ----
- int cmdlen; /* number of chars in command line */
- int cmdpos; /* current cursor position */
- int cmdspos; /* cursor column on screen */
-! int cmdfirstc; /* ':', '/', '?', '=', '>' or NUL */
- int cmdindent; /* number of spaces before cmdline */
- char_u *cmdprompt; /* message in front of cmdline */
- int cmdattr; /* attributes for prompt */
-***************
-*** 111,116 ****
---- 111,119 ----
- #ifdef FEAT_CMDL_COMPL
- static int expand_shellcmd __ARGS((char_u *filepat, int *num_file, char_u ***file, int flagsarg));
- static int ExpandRTDir __ARGS((char_u *pat, int *num_file, char_u ***file, char *dirname[]));
-+ # ifdef FEAT_CMDHIST
-+ static char_u *get_history_arg __ARGS((expand_T *xp, int idx));
-+ # endif
- # if defined(FEAT_USR_CMDS) && defined(FEAT_EVAL)
- static int ExpandUserDefined __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file));
- static int ExpandUserList __ARGS((expand_T *xp, int *num_file, char_u ***file));
-***************
-*** 4628,4633 ****
---- 4631,4639 ----
- {
- {EXPAND_COMMANDS, get_command_name, FALSE, TRUE},
- {EXPAND_BEHAVE, get_behave_arg, TRUE, TRUE},
-+ #ifdef FEAT_CMDHIST
-+ {EXPAND_HISTORY, get_history_arg, TRUE, TRUE},
-+ #endif
- #ifdef FEAT_USR_CMDS
- {EXPAND_USER_COMMANDS, get_user_commands, FALSE, TRUE},
- {EXPAND_USER_CMD_FLAGS, get_user_cmd_flags, FALSE, TRUE},
-***************
-*** 5245,5250 ****
---- 5251,5284 ----
- NULL
- };
-
-+ #if defined(FEAT_CMDL_COMPL) || defined(PROTO)
-+ /*
-+ * Function given to ExpandGeneric() to obtain the possible first
-+ * arguments of the ":history command.
-+ */
-+ static char_u *
-+ get_history_arg(xp, idx)
-+ expand_T *xp UNUSED;
-+ int idx;
-+ {
-+ static char_u compl[2] = { NUL, NUL };
-+ char *short_names = ":=@>?/";
-+ int short_names_count = STRLEN(short_names);
-+ int history_name_count = sizeof(history_names) / sizeof(char *) - 1;
-+
-+ if (idx < short_names_count)
-+ {
-+ compl[0] = (char_u)short_names[idx];
-+ return compl;
-+ }
-+ if (idx < short_names_count + history_name_count)
-+ return (char_u *)history_names[idx - short_names_count];
-+ if (idx == short_names_count + history_name_count)
-+ return (char_u *)"all";
-+ return NULL;
-+ }
-+ #endif
-+
- /*
- * init_history() - Initialize the command line history.
- * Also used to re-allocate the history when the size changes.
-*** ../vim-7.3.513/src/vim.h 2012-03-23 16:25:13.000000000 +0100
---- src/vim.h 2012-04-30 18:30:00.000000000 +0200
-***************
-*** 781,786 ****
---- 781,787 ----
- #define EXPAND_FILES_IN_PATH 38
- #define EXPAND_OWNSYNTAX 39
- #define EXPAND_LOCALES 40
-+ #define EXPAND_HISTORY 41
-
- /* Values for exmode_active (0 is no exmode) */
- #define EXMODE_NORMAL 1
-*** ../vim-7.3.513/src/version.c 2012-04-30 18:18:43.000000000 +0200
---- src/version.c 2012-04-30 18:36:19.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 514,
- /**/
-
---
-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/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.515
-Fcc: 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.515
-Problem: 'wildignorecase' only applies to the last part of the path.
-Solution: Also ignore case for letters earlier in the path.
-Files: src/misc1.c
-
-
-*** ../vim-7.3.514/src/misc1.c 2012-04-09 20:42:20.000000000 +0200
---- src/misc1.c 2012-04-30 21:00:18.000000000 +0200
-***************
-*** 9461,9466 ****
---- 9461,9467 ----
-
- /*
- * Find the first part in the path name that contains a wildcard.
-+ * When EW_ICASE is set every letter is considered to be a wildcard.
- * Copy it into "buf", including the preceding characters.
- */
- p = buf;
-***************
-*** 9480,9486 ****
- s = p + 1;
- }
- else if (path_end >= path + wildoff
-! && vim_strchr((char_u *)"*?[{~$", *path_end) != NULL)
- e = p;
- #ifdef FEAT_MBYTE
- if (has_mbyte)
---- 9481,9492 ----
- s = p + 1;
- }
- else if (path_end >= path + wildoff
-! && (vim_strchr((char_u *)"*?[{~$", *path_end) != NULL
-! #ifndef CASE_INSENSITIVE_FILENAME
-! || ((flags & EW_ICASE)
-! && isalpha(PTR2CHAR(path_end)))
-! #endif
-! ))
- e = p;
- #ifdef FEAT_MBYTE
- if (has_mbyte)
-*** ../vim-7.3.514/src/version.c 2012-04-30 18:48:38.000000000 +0200
---- src/version.c 2012-04-30 21:05:10.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 515,
- /**/
-
---
-If an elephant is left tied to a parking meter, the parking fee has to be paid
-just as it would for a vehicle.
- [real standing law in Florida, United States of America]
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.516
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.516
-Problem: extend(o, o) may crash Vim.
-Solution: Fix crash and add test. (Thinca and Hirohito Higashi)
-Files: src/eval.c, src/testdir/test55.in, src/testdir/test55.ok
-
-
-*** ../vim-7.3.515/src/eval.c 2012-04-30 17:35:44.000000000 +0200
---- src/eval.c 2012-05-18 12:02:44.000000000 +0200
-***************
-*** 10191,10197 ****
- EMSG2(_("E737: Key already exists: %s"), hi2->hi_key);
- break;
- }
-! else if (*action == 'f')
- {
- clear_tv(&di1->di_tv);
- copy_tv(&HI2DI(hi2)->di_tv, &di1->di_tv);
---- 10191,10197 ----
- EMSG2(_("E737: Key already exists: %s"), hi2->hi_key);
- break;
- }
-! else if (*action == 'f' && HI2DI(hi2) != di1)
- {
- clear_tv(&di1->di_tv);
- copy_tv(&HI2DI(hi2)->di_tv, &di1->di_tv);
-*** ../vim-7.3.515/src/testdir/test55.in 2010-11-10 20:31:24.000000000 +0100
---- src/testdir/test55.in 2012-05-18 11:57:23.000000000 +0200
-***************
-*** 352,357 ****
---- 352,375 ----
- :let dict4copy = deepcopy(dict4)
- :$put =(l == lcopy)
- :$put =(dict4 == dict4copy)
-+ :"
-+ :" Pass the same List to extend()
-+ :let l = [1, 2, 3, 4, 5]
-+ :call extend(l, l)
-+ :$put =string(l)
-+ :"
-+ :" Pass the same Dict to extend()
-+ :let d = { 'a': {'b': 'B'}}
-+ :call extend(d, d)
-+ :$put =string(d)
-+ :"
-+ :" Pass the same Dict to extend() with "error"
-+ :try
-+ : call extend(d, d, "error")
-+ :catch
-+ : $put =v:exception[:15] . v:exception[-1:-1]
-+ :endtry
-+ :$put =string(d)
- :endfun
- :"
- :call Test(1, 2, [3, 4], {5: 6}) " This may take a while
-*** ../vim-7.3.515/src/testdir/test55.ok 2010-11-10 20:31:24.000000000 +0100
---- src/testdir/test55.ok 2012-05-18 11:57:01.000000000 +0200
-***************
-*** 111,113 ****
---- 111,117 ----
- 0
- 1
- 1
-+ [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
-+ {'a': {'b': 'B'}}
-+ Vim(call):E737: a
-+ {'a': {'b': 'B'}}
-*** ../vim-7.3.515/src/version.c 2012-04-30 21:09:38.000000000 +0200
---- src/version.c 2012-05-18 12:04:54.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 516,
- /**/
-
---
-I used to wonder about the meaning of life. But I looked it
-up in the dictionary under "L" and there it was - the meaning
-of life. It was less than I expected. - Dogbert
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.517
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.517
-Problem: Crash when using "vipvv". (Alexandre Provencio)
-Solution: Don't let the text length become negative.
-Files: src/ops.c
-
-
-*** ../vim-7.3.516/src/ops.c 2012-04-20 13:46:02.000000000 +0200
---- src/ops.c 2012-05-18 12:28:09.000000000 +0200
-***************
-*** 3042,3047 ****
---- 3042,3049 ----
- }
- #endif
- }
-+ if (endcol == MAXCOL)
-+ endcol = (colnr_T)STRLEN(p);
- if (startcol > endcol
- #ifdef FEAT_VIRTUALEDIT
- || is_oneChar
-***************
-*** 3050,3057 ****
- bd.textlen = 0;
- else
- {
-- if (endcol == MAXCOL)
-- endcol = (colnr_T)STRLEN(p);
- bd.textlen = endcol - startcol + oap->inclusive;
- }
- bd.textstart = p + startcol;
---- 3052,3057 ----
-*** ../vim-7.3.516/src/version.c 2012-05-18 12:06:58.000000000 +0200
---- src/version.c 2012-05-18 12:48:51.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 517,
- /**/
-
---
-BODY: I'm not dead!
-CART DRIVER: 'Ere. He says he's not dead.
-LARGE MAN: Yes he is.
-BODY: I'm not!
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.518
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.518
-Problem: When 'encoding' is a double-byte encoding ":helptags" may not find
- tags correctly.
-Solution: Use vim_strbyte() instead of vim_strchr(). (Yasuhiro Matsumoto)
-Files: src/ex_cmds.c
-
-
-*** ../vim-7.3.517/src/ex_cmds.c 2012-04-25 17:32:14.000000000 +0200
---- src/ex_cmds.c 2012-05-18 16:20:20.000000000 +0200
-***************
-*** 6535,6541 ****
- p1 = vim_strchr(IObuff, '*'); /* find first '*' */
- while (p1 != NULL)
- {
-! p2 = vim_strchr(p1 + 1, '*'); /* find second '*' */
- if (p2 != NULL && p2 > p1 + 1) /* skip "*" and "**" */
- {
- for (s = p1 + 1; s < p2; ++s)
---- 6535,6544 ----
- p1 = vim_strchr(IObuff, '*'); /* find first '*' */
- while (p1 != NULL)
- {
-! /* Use vim_strbyte() instead of vim_strchr() so that when
-! * 'encoding' is dbcs it still works, don't find '*' in the
-! * second byte. */
-! p2 = vim_strbyte(p1 + 1, '*'); /* find second '*' */
- if (p2 != NULL && p2 > p1 + 1) /* skip "*" and "**" */
- {
- for (s = p1 + 1; s < p2; ++s)
-*** ../vim-7.3.517/src/version.c 2012-05-18 12:49:33.000000000 +0200
---- src/version.c 2012-05-18 16:23:50.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 518,
- /**/
-
---
-If all you have is a hammer, everything looks like a nail.
-When your hammer is C++, everything begins to look like a thumb.
- -- Steve Hoflich, comp.lang.c++
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.519
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.519
-Problem: When completefunction returns it cannot indicate end of completion
- mode.
-Solution: Recognize completefunction returning -3. (Mtsushita Shougo)
-Files: src/edit.c
-
-
-*** ../vim-7.3.518/src/edit.c 2012-04-30 18:18:43.000000000 +0200
---- src/edit.c 2012-05-18 16:35:06.000000000 +0200
-***************
-*** 5205,5213 ****
- }
-
- /* Return value -2 means the user complete function wants to
-! * cancel the complete without an error. */
- if (col == -2)
- return FAIL;
-
- /*
- * Reset extended parameters of completion, when start new
---- 5205,5221 ----
- }
-
- /* Return value -2 means the user complete function wants to
-! * cancel the complete without an error.
-! * Return value -3 does the same as -2 and leaves CTRL-X mode.*/
- if (col == -2)
- return FAIL;
-+ if (col == -3)
-+ {
-+ ctrl_x_mode = 0;
-+ edit_submode = NULL;
-+ msg_clr_cmdline();
-+ return FAIL;
-+ }
-
- /*
- * Reset extended parameters of completion, when start new
-*** ../vim-7.3.518/src/version.c 2012-05-18 16:24:06.000000000 +0200
---- src/version.c 2012-05-18 16:34:27.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 519,
- /**/
-
---
-Looking at Perl through Lisp glasses, Perl looks atrocious.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.520
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.520
-Problem: Gvim starts up slow on Unbuntu 12.04.
-Solution: Move the call to gui_mch_init_check() to after fork(). (Yasuhiro
- Matsumoto) Do check $DISPLAY being set.
-Files: src/gui.c, src/gui_gtk_x11.c, src/proto/gui_gtk_x11.pro
-
-
-*** ../vim-7.3.519/src/gui.c 2011-10-20 21:27:57.000000000 +0200
---- src/gui.c 2012-05-18 16:53:14.000000000 +0200
-***************
-*** 270,275 ****
---- 270,281 ----
- }
- /* Child */
-
-+ #ifdef FEAT_GUI_GTK
-+ /* Call gtk_init_check() here after fork(). See gui_init_check(). */
-+ if (gui_mch_init_check() != OK)
-+ exit(1);
-+ #endif
-+
- # if defined(HAVE_SETSID) || defined(HAVE_SETPGID)
- /*
- * Change our process group. On some systems/shells a CTRL-C in the
-***************
-*** 430,436 ****
---- 436,452 ----
- #ifdef ALWAYS_USE_GUI
- result = OK;
- #else
-+ # ifdef FEAT_GUI_GTK
-+ /*
-+ * Note: Don't call gtk_init_check() before fork, it will be called after
-+ * the fork. When calling it before fork, it make vim hang for a while.
-+ * See gui_do_fork().
-+ * Use a simpler check if the GUI window can probably be opened.
-+ */
-+ result = gui.dofork ? gui_mch_early_init_check() : gui_mch_init_check();
-+ # else
- result = gui_mch_init_check();
-+ # endif
- #endif
- return result;
- }
-*** ../vim-7.3.519/src/gui_gtk_x11.c 2011-10-26 11:36:21.000000000 +0200
---- src/gui_gtk_x11.c 2012-05-18 17:00:45.000000000 +0200
-***************
-*** 1414,1420 ****
- }
-
- /*
-! * Check if the GUI can be started. Called before gvimrc is sourced.
- * Return OK or FAIL.
- */
- int
---- 1414,1442 ----
- }
-
- /*
-! * Check if the GUI can be started. Called before gvimrc is sourced and
-! * before fork().
-! * Return OK or FAIL.
-! */
-! int
-! gui_mch_early_init_check(void)
-! {
-! char_u *p;
-!
-! /* Guess that when $DISPLAY isn't set the GUI can't start. */
-! p = mch_getenv((char_u *)"DISPLAY");
-! if (p == NULL || *p == NUL)
-! {
-! gui.dying = TRUE;
-! EMSG(_((char *)e_opendisp));
-! return FAIL;
-! }
-! return OK;
-! }
-!
-! /*
-! * Check if the GUI can be started. Called before gvimrc is sourced but after
-! * fork().
- * Return OK or FAIL.
- */
- int
-***************
-*** 3050,3056 ****
-
- for (i = 0; i < (int)N_SELECTION_TARGETS; ++i)
- {
-! /* OpenOffice tries to use TARGET_HTML and fails when it doesn't
- * return something, instead of trying another target. Therefore only
- * offer TARGET_HTML when it works. */
- if (!clip_html && selection_targets[i].info == TARGET_HTML)
---- 3072,3078 ----
-
- for (i = 0; i < (int)N_SELECTION_TARGETS; ++i)
- {
-! /* OpenOffice tries to use TARGET_HTML and fails when we don't
- * return something, instead of trying another target. Therefore only
- * offer TARGET_HTML when it works. */
- if (!clip_html && selection_targets[i].info == TARGET_HTML)
-*** ../vim-7.3.519/src/proto/gui_gtk_x11.pro 2011-08-10 17:44:41.000000000 +0200
---- src/proto/gui_gtk_x11.pro 2012-05-18 16:54:28.000000000 +0200
-***************
-*** 4,9 ****
---- 4,10 ----
- void gui_mch_set_blinking __ARGS((long waittime, long on, long off));
- void gui_mch_stop_blink __ARGS((void));
- void gui_mch_start_blink __ARGS((void));
-+ int gui_mch_early_init_check __ARGS((void));
- int gui_mch_init_check __ARGS((void));
- void gui_mch_show_tabline __ARGS((int showit));
- int gui_mch_showing_tabline __ARGS((void));
-*** ../vim-7.3.519/src/version.c 2012-05-18 16:35:17.000000000 +0200
---- src/version.c 2012-05-18 16:45:30.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 520,
- /**/
-
---
-Bad programs can be written in any language.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.521
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.521
-Problem: Using "z=" on a multi-byte character may cause a crash.
-Solution: Don't use strlen() on an int pointer.
-Files: src/spell.c
-
-
-*** ../vim-7.3.520/src/spell.c 2012-01-10 22:26:12.000000000 +0100
---- src/spell.c 2012-05-18 18:01:58.000000000 +0200
-***************
-*** 14494,14506 ****
- int p0 = -333;
- int c0;
- int did_white = FALSE;
-
- /*
- * Convert the multi-byte string to a wide-character string.
- * Remove accents, if wanted. We actually remove all non-word characters.
- * But keep white space.
- */
-! n = 0;
- for (s = inword; *s != NUL; )
- {
- t = s;
---- 14494,14508 ----
- int p0 = -333;
- int c0;
- int did_white = FALSE;
-+ int wordlen;
-+
-
- /*
- * Convert the multi-byte string to a wide-character string.
- * Remove accents, if wanted. We actually remove all non-word characters.
- * But keep white space.
- */
-! wordlen = 0;
- for (s = inword; *s != NUL; )
- {
- t = s;
-***************
-*** 14521,14532 ****
- continue;
- }
- }
-! word[n++] = c;
- }
-! word[n] = NUL;
-
- /*
-! * This comes from Aspell phonet.cpp.
- * Converted from C++ to C. Added support for multi-byte chars.
- * Changed to keep spaces.
- */
---- 14523,14534 ----
- continue;
- }
- }
-! word[wordlen++] = c;
- }
-! word[wordlen] = NUL;
-
- /*
-! * This algorithm comes from Aspell phonet.cpp.
- * Converted from C++ to C. Added support for multi-byte chars.
- * Changed to keep spaces.
- */
-***************
-*** 14711,14717 ****
- }
- if (k > k0)
- mch_memmove(word + i + k0, word + i + k,
-! sizeof(int) * (STRLEN(word + i + k) + 1));
-
- /* new "actual letter" */
- c = word[i];
---- 14713,14719 ----
- }
- if (k > k0)
- mch_memmove(word + i + k0, word + i + k,
-! sizeof(int) * (wordlen - (i + k) + 1));
-
- /* new "actual letter" */
- c = word[i];
-***************
-*** 14739,14745 ****
- if (c != NUL)
- wres[reslen++] = c;
- mch_memmove(word, word + i + 1,
-! sizeof(int) * (STRLEN(word + i + 1) + 1));
- i = 0;
- z0 = 1;
- }
---- 14741,14747 ----
- if (c != NUL)
- wres[reslen++] = c;
- mch_memmove(word, word + i + 1,
-! sizeof(int) * (wordlen - (i + 1) + 1));
- i = 0;
- z0 = 1;
- }
-*** ../vim-7.3.520/src/version.c 2012-05-18 17:03:14.000000000 +0200
---- src/version.c 2012-05-18 18:06:29.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 521,
- /**/
-
---
-OLD WOMAN: King of the WHO?
-ARTHUR: The Britons.
-OLD WOMAN: Who are the Britons?
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.522
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.522
-Problem: Crash in vim_realloc() when using MEM_PROFILE.
-Solution: Avoid using a NULL argument. (Dominique Pelle)
-Files: src/eval.c
-
-
-*** ../vim-7.3.521/src/eval.c 2012-05-18 12:06:58.000000000 +0200
---- src/eval.c 2012-05-18 18:19:25.000000000 +0200
-***************
-*** 14643,14649 ****
- long growmin = (long)((p - start) * 2 + prevlen);
- prevsize = grow50pc > growmin ? grow50pc : growmin;
- }
-! if ((newprev = vim_realloc(prev, prevsize)) == NULL)
- {
- do_outofmem_msg((long_u)prevsize);
- failed = TRUE;
---- 14643,14651 ----
- long growmin = (long)((p - start) * 2 + prevlen);
- prevsize = grow50pc > growmin ? grow50pc : growmin;
- }
-! newprev = prev == NULL ? alloc(prevsize)
-! : vim_realloc(prev, prevsize);
-! if (newprev == NULL)
- {
- do_outofmem_msg((long_u)prevsize);
- failed = TRUE;
-*** ../vim-7.3.521/src/version.c 2012-05-18 18:07:57.000000000 +0200
---- src/version.c 2012-05-18 18:33:36.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 522,
- /**/
-
---
-ARTHUR: ... and I am your king ....
-OLD WOMAN: Ooooh! I didn't know we had a king. I thought we were an
- autonomous collective ...
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.523
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.523
-Problem: ":diffupdate" doesn't check for files changed elsewhere.
-Solution: Add the ! flag. (Christian Brabandt)
-Files: runtime/doc/diff.txt, src/diff.c, src/ex_cmds.h
-
-
-*** ../vim-7.3.522/runtime/doc/diff.txt 2010-08-15 21:57:16.000000000 +0200
---- runtime/doc/diff.txt 2012-05-18 18:41:49.000000000 +0200
-***************
-*** 178,184 ****
- nodiff" before hiding it.
-
- *:diffu* *:diffupdate*
-! :diffu[pdate] Update the diff highlighting and folds.
-
- Vim attempts to keep the differences updated when you make changes to the
- text. This mostly takes care of inserted and deleted lines. Changes within a
---- 178,184 ----
- nodiff" before hiding it.
-
- *:diffu* *:diffupdate*
-! :diffu[pdate][!] Update the diff highlighting and folds.
-
- Vim attempts to keep the differences updated when you make changes to the
- text. This mostly takes care of inserted and deleted lines. Changes within a
-***************
-*** 187,192 ****
---- 187,195 ----
-
- :diffupdate
-
-+ If the ! is included Vim will check if the file was changed externally and
-+ needs to be reloaded. It will prompt for each changed file, like `:checktime`
-+ was used.
-
- Vim will show filler lines for lines that are missing in one window but are
- present in another. These lines were inserted in another file or deleted in
-*** ../vim-7.3.522/src/diff.c 2010-09-21 16:56:29.000000000 +0200
---- src/diff.c 2012-05-18 18:45:09.000000000 +0200
-***************
-*** 783,788 ****
---- 783,797 ----
- goto theend;
- }
-
-+ /* :diffupdate! */
-+ if (eap != NULL && eap->forceit)
-+ for (idx_new = idx_orig; idx_new < DB_COUNT; ++idx_new)
-+ {
-+ buf = curtab->tp_diffbuf[idx_new];
-+ if (buf_valid(buf))
-+ buf_check_timestamp(buf, FALSE);
-+ }
-+
- /* Write the first buffer to a tempfile. */
- buf = curtab->tp_diffbuf[idx_orig];
- if (diff_write(buf, tmp_orig) == FAIL)
-*** ../vim-7.3.522/src/ex_cmds.h 2012-02-13 00:01:38.000000000 +0100
---- src/ex_cmds.h 2012-05-18 18:37:56.000000000 +0200
-***************
-*** 304,310 ****
- EX(CMD_display, "display", ex_display,
- EXTRA|NOTRLCOM|TRLBAR|SBOXOK|CMDWIN),
- EX(CMD_diffupdate, "diffupdate", ex_diffupdate,
-! TRLBAR),
- EX(CMD_diffget, "diffget", ex_diffgetput,
- RANGE|EXTRA|TRLBAR|MODIFY),
- EX(CMD_diffoff, "diffoff", ex_diffoff,
---- 304,310 ----
- EX(CMD_display, "display", ex_display,
- EXTRA|NOTRLCOM|TRLBAR|SBOXOK|CMDWIN),
- EX(CMD_diffupdate, "diffupdate", ex_diffupdate,
-! BANG|TRLBAR),
- EX(CMD_diffget, "diffget", ex_diffgetput,
- RANGE|EXTRA|TRLBAR|MODIFY),
- EX(CMD_diffoff, "diffoff", ex_diffoff,
-*** ../vim-7.3.522/src/version.c 2012-05-18 18:34:15.000000000 +0200
---- src/version.c 2012-05-18 18:39:13.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 523
- /**/
-
---
-"The future's already arrived - it's just not evenly distributed yet."
- -- William Gibson
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.524
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.524 (after 7.3.523)
-Problem: Missing comma.
-Solution: Add the comma.
-Files: src/version.c
-
-
-*** ../vim-7.3.523/src/version.c 2012-05-18 18:47:11.000000000 +0200
---- src/version.c 2012-05-18 21:52:26.000000000 +0200
-***************
-*** 715,721 ****
- static int included_patches[] =
- { /* Add new patch number below this line */
- /**/
-! 523
- /**/
- 522,
- /**/
---- 715,723 ----
- static int included_patches[] =
- { /* Add new patch number below this line */
- /**/
-! 524,
-! /**/
-! 523,
- /**/
- 522,
- /**/
-
---
-DENNIS: You can't expect to wield supreme executive power just 'cause some
- watery tart threw a sword at you!
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.525
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.525
-Problem: Compiler warning on 64 bit MS-Windows.
-Solution: Add type cast. (Mike Williams)
-Files: src/ex_getln.c
-
-
-*** ../vim-7.3.524/src/ex_getln.c 2012-04-30 18:48:38.000000000 +0200
---- src/ex_getln.c 2012-05-23 20:33:16.000000000 +0200
-***************
-*** 5263,5269 ****
- {
- static char_u compl[2] = { NUL, NUL };
- char *short_names = ":=@>?/";
-! int short_names_count = STRLEN(short_names);
- int history_name_count = sizeof(history_names) / sizeof(char *) - 1;
-
- if (idx < short_names_count)
---- 5263,5269 ----
- {
- static char_u compl[2] = { NUL, NUL };
- char *short_names = ":=@>?/";
-! int short_names_count = (int)STRLEN(short_names);
- int history_name_count = sizeof(history_names) / sizeof(char *) - 1;
-
- if (idx < short_names_count)
-*** ../vim-7.3.524/src/version.c 2012-05-18 21:53:29.000000000 +0200
---- src/version.c 2012-05-25 11:01:51.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 525,
- /**/
-
---
-For humans, honesty is a matter of degree. Engineers are always honest in
-matters of technology and human relationships. That's why it's a good idea
-to keep engineers away from customers, romantic interests, and other people
-who can't handle the truth.
- (Scott Adams - The Dilbert principle)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.526
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.526
-Problem: Confusing indenting for #ifdef.
-Solution: Remove and add indent. (Elias Diem)
-Files: src/normal.c
-
-
-*** ../vim-7.3.525/src/normal.c 2012-04-30 18:18:43.000000000 +0200
---- src/normal.c 2012-05-23 20:35:13.000000000 +0200
-***************
-*** 29,37 ****
- static void set_vcount_ca __ARGS((cmdarg_T *cap, int *set_prevcount));
- #endif
- static int
-! # ifdef __BORLANDC__
-! _RTLENTRYF
-! # endif
- nv_compare __ARGS((const void *s1, const void *s2));
- static int find_command __ARGS((int cmdchar));
- static void op_colon __ARGS((oparg_T *oap));
---- 29,37 ----
- static void set_vcount_ca __ARGS((cmdarg_T *cap, int *set_prevcount));
- #endif
- static int
-! #ifdef __BORLANDC__
-! _RTLENTRYF
-! #endif
- nv_compare __ARGS((const void *s1, const void *s2));
- static int find_command __ARGS((int cmdchar));
- static void op_colon __ARGS((oparg_T *oap));
-*** ../vim-7.3.525/src/version.c 2012-05-25 11:02:34.000000000 +0200
---- src/version.c 2012-05-25 11:03:37.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 526,
- /**/
-
---
-While it's true that many normal people whould prefer not to _date_ an
-engineer, most normal people harbor an intense desire to _mate_ with them,
-thus producing engineerlike children who will have high-paying jobs long
-before losing their virginity.
- (Scott Adams - The Dilbert principle)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.527
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=latin1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.527
-Problem: Clang complains about non-ASCII characters in a string.
-Solution: Change to \x88 form. (Dominique Pelle)
-Files: src/charset.c
-
-
-*** ../vim-7.3.526/src/charset.c 2012-01-26 13:40:04.000000000 +0100
---- src/charset.c 2012-05-25 11:49:58.000000000 +0200
-***************
-*** 1602,1611 ****
- #define LATIN1LOWER 'l'
- #define LATIN1UPPER 'U'
-
-- /* !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]%_'abcdefghijklmnopqrstuvwxyz{|}~ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ */
- static char_u latin1flags[257] = " UUUUUUUUUUUUUUUUUUUUUUUUUU llllllllllllllllllllllllll UUUUUUUUUUUUUUUUUUUUUUU UUUUUUUllllllllllllllllllllllll llllllll";
-! static char_u latin1upper[257] = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ÷ØÙÚÛÜÝÞÿ";
-! static char_u latin1lower[257] = " !\"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿àáâãäåæçèéêëìíîïðñòóôõö×øùúûüýþßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ";
-
- int
- vim_islower(c)
---- 1602,1610 ----
- #define LATIN1LOWER 'l'
- #define LATIN1UPPER 'U'
-
- static char_u latin1flags[257] = " UUUUUUUUUUUUUUUUUUUUUUUUUU llllllllllllllllllllllllll UUUUUUUUUUUUUUUUUUUUUUU UUUUUUUllllllllllllllllllllllll llllllll";
-! static char_u latin1upper[257] = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xf7\xd8\xd9\xda\xdb\xdc\xdd\xde\xff";
-! static char_u latin1lower[257] = " !\"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xd7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff";
-
- int
- vim_islower(c)
-*** ../vim-7.3.526/src/version.c 2012-05-25 11:04:34.000000000 +0200
---- src/version.c 2012-05-25 11:52:06.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 527,
- /**/
-
---
-An alien life briefly visits earth. Just before departing it leaves a
-message in the dust on the back of a white van. The world is shocked
-and wants to know what it means. After months of studies the worlds
-best linguistic scientists are able to decipher the message: "Wash me!".
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.528
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.528
-Problem: Crash when closing last window in a tab. (Alex Efros)
-Solution: Use common code in close_last_window_tabpage(). (Christian
- Brabandt)
-Files: src/window.c
-
-
-*** ../vim-7.3.527/src/window.c 2012-03-16 19:07:54.000000000 +0100
---- src/window.c 2012-05-25 12:25:16.000000000 +0200
-***************
-*** 23,28 ****
---- 23,29 ----
- static void win_totop __ARGS((int size, int flags));
- static void win_equal_rec __ARGS((win_T *next_curwin, int current, frame_T *topfr, int dir, int col, int row, int width, int height));
- static int last_window __ARGS((void));
-+ static int close_last_window_tabpage __ARGS((win_T *win, int free_buf, tabpage_T *prev_curtab));
- static win_T *win_free_mem __ARGS((win_T *win, int *dirp, tabpage_T *tp));
- static frame_T *win_altframe __ARGS((win_T *win, tabpage_T *tp));
- static tabpage_T *alt_tabpage __ARGS((void));
-***************
-*** 2105,2110 ****
---- 2106,2147 ----
- }
-
- /*
-+ * Close the possibly last window in a tab page.
-+ * Returns TRUE when the window was closed already.
-+ */
-+ static int
-+ close_last_window_tabpage(win, free_buf, prev_curtab)
-+ win_T *win;
-+ int free_buf;
-+ tabpage_T *prev_curtab;
-+ {
-+ if (firstwin == lastwin)
-+ {
-+ /*
-+ * Closing the last window in a tab page. First go to another tab
-+ * page and then close the window and the tab page. This avoids that
-+ * curwin and curtab are invalid while we are freeing memory, they may
-+ * be used in GUI events.
-+ */
-+ goto_tabpage_tp(alt_tabpage());
-+ redraw_tabline = TRUE;
-+
-+ /* Safety check: Autocommands may have closed the window when jumping
-+ * to the other tab page. */
-+ if (valid_tabpage(prev_curtab) && prev_curtab->tp_firstwin == win)
-+ {
-+ int h = tabline_height();
-+
-+ win_close_othertab(win, free_buf, prev_curtab);
-+ if (h != tabline_height())
-+ shell_new_rows();
-+ }
-+ return TRUE;
-+ }
-+ return FALSE;
-+ }
-+
-+ /*
- * Close window "win". Only works for the current tab page.
- * If "free_buf" is TRUE related buffer may be unloaded.
- *
-***************
-*** 2143,2171 ****
- }
- #endif
-
-! /*
-! * When closing the last window in a tab page first go to another tab
-! * page and then close the window and the tab page. This avoids that
-! * curwin and curtab are not invalid while we are freeing memory, they may
-! * be used in GUI events.
-! */
-! if (firstwin == lastwin)
-! {
-! goto_tabpage_tp(alt_tabpage());
-! redraw_tabline = TRUE;
-!
-! /* Safety check: Autocommands may have closed the window when jumping
-! * to the other tab page. */
-! if (valid_tabpage(prev_curtab) && prev_curtab->tp_firstwin == win)
-! {
-! int h = tabline_height();
-!
-! win_close_othertab(win, free_buf, prev_curtab);
-! if (h != tabline_height())
-! shell_new_rows();
-! }
-! return;
-! }
-
- /* When closing the help window, try restoring a snapshot after closing
- * the window. Otherwise clear the snapshot, it's now invalid. */
---- 2180,2190 ----
- }
- #endif
-
-! /* When closing the last window in a tab page first go to another tab page
-! * and then close the window and the tab page to avoid that curwin and
-! * curtab are invalid while we are freeing memory. */
-! if (close_last_window_tabpage(win, free_buf, prev_curtab))
-! return;
-
- /* When closing the help window, try restoring a snapshot after closing
- * the window. Otherwise clear the snapshot, it's now invalid. */
-***************
-*** 2225,2231 ****
-
- /* Autocommands may have closed the window already, or closed the only
- * other window or moved to another tab page. */
-! if (!win_valid(win) || last_window() || curtab != prev_curtab)
- return;
-
- /* Free the memory used for the window and get the window that received
---- 2244,2251 ----
-
- /* Autocommands may have closed the window already, or closed the only
- * other window or moved to another tab page. */
-! if (!win_valid(win) || last_window() || curtab != prev_curtab
-! || close_last_window_tabpage(win, free_buf, prev_curtab))
- return;
-
- /* Free the memory used for the window and get the window that received
-***************
-*** 2310,2316 ****
-
- /*
- * Close window "win" in tab page "tp", which is not the current tab page.
-! * This may be the last window ih that tab page and result in closing the tab,
- * thus "tp" may become invalid!
- * Caller must check if buffer is hidden and whether the tabline needs to be
- * updated.
---- 2330,2336 ----
-
- /*
- * Close window "win" in tab page "tp", which is not the current tab page.
-! * This may be the last window in that tab page and result in closing the tab,
- * thus "tp" may become invalid!
- * Caller must check if buffer is hidden and whether the tabline needs to be
- * updated.
-*** ../vim-7.3.527/src/version.c 2012-05-25 11:56:06.000000000 +0200
---- src/version.c 2012-05-25 12:38:25.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 528,
- /**/
-
---
-For society, it's probably a good thing that engineers value function over
-appearance. For example, you wouldn't want engineers to build nuclear power
-plants that only _look_ like they would keep all the radiation inside.
- (Scott Adams - The Dilbert principle)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.529
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.529
-Problem: Using a count before "v" and "V" does not work (Kikyous)
-Solution: Make the count select that many characters or lines. (Christian
- Brabandt)
-Files: src/normal.c
-
-
-*** ../vim-7.3.528/src/normal.c 2012-05-25 11:04:34.000000000 +0200
---- src/normal.c 2012-05-25 13:12:06.000000000 +0200
-***************
-*** 7660,7672 ****
- else /* start Visual mode */
- {
- check_visual_highlight();
-! if (cap->count0) /* use previously selected part */
- {
-! if (resel_VIsual_mode == NUL) /* there is none */
-! {
-! beep_flush();
-! return;
-! }
- VIsual = curwin->w_cursor;
-
- VIsual_active = TRUE;
---- 7660,7668 ----
- else /* start Visual mode */
- {
- check_visual_highlight();
-! if (cap->count0 > 0 && resel_VIsual_mode != NUL)
- {
-! /* use previously selected part */
- VIsual = curwin->w_cursor;
-
- VIsual_active = TRUE;
-***************
-*** 7725,7730 ****
---- 7721,7736 ----
- /* start Select mode when 'selectmode' contains "cmd" */
- may_start_select('c');
- n_start_visual_mode(cap->cmdchar);
-+ if (VIsual_mode != 'V' && *p_sel == 'e')
-+ ++cap->count1; /* include one more char */
-+ if (cap->count0 > 0 && --cap->count1 > 0)
-+ {
-+ /* With a count select that many characters or lines. */
-+ if (VIsual_mode == 'v' || VIsual_mode == Ctrl_V)
-+ nv_right(cap);
-+ else if (VIsual_mode == 'V')
-+ nv_down(cap);
-+ }
- }
- }
- }
-*** ../vim-7.3.528/src/version.c 2012-05-25 12:38:57.000000000 +0200
---- src/version.c 2012-05-25 12:59:58.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 529,
- /**/
-
---
-Normal people believe that if it ain't broke, don't fix it. Engineers believe
-that if it ain't broke, it doesn't have enough features yet.
- (Scott Adams - The Dilbert principle)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.530
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.530 (after 7.3.520)
-Problem: Gvim does not work when 'guioptions' includes "f". (Davido)
-Solution: Call gui_mch_init_check() when running GUI in the foreground.
- (Yasuhiro Matsumoto)
-Files: src/gui.c
-
-
-*** ../vim-7.3.529/src/gui.c 2012-05-18 17:03:13.000000000 +0200
---- src/gui.c 2012-05-25 14:01:26.000000000 +0200
-***************
-*** 102,107 ****
---- 102,111 ----
- else
- #endif
- {
-+ /* If there is 'f' in 'guioptions' and specify -g argument,
-+ * gui_mch_init_check() was not called yet. */
-+ if (gui_mch_init_check() != OK)
-+ exit(1);
- gui_attempt_start();
- }
-
-*** ../vim-7.3.529/src/version.c 2012-05-25 13:12:33.000000000 +0200
---- src/version.c 2012-05-25 14:05:46.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 530,
- /**/
-
---
-I think that you'll agree that engineers are very effective in their social
-interactions. It's the "normal" people who are nuts.
- (Scott Adams - The Dilbert principle)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.531
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.531 (after 7.3.530)
-Problem: GUI does not work on MS-Windows.
-Solution: Add the missing #ifdef. (Patrick Avery)
-Files: src/gui.c
-
-
-*** ../vim-7.3.530/src/gui.c 2012-05-25 14:06:18.000000000 +0200
---- src/gui.c 2012-05-27 00:34:51.000000000 +0200
-***************
-*** 102,111 ****
---- 102,113 ----
- else
- #endif
- {
-+ #ifdef FEAT_GUI_GTK
- /* If there is 'f' in 'guioptions' and specify -g argument,
- * gui_mch_init_check() was not called yet. */
- if (gui_mch_init_check() != OK)
- exit(1);
-+ #endif
- gui_attempt_start();
- }
-
-*** ../vim-7.3.530/src/version.c 2012-05-25 14:06:18.000000000 +0200
---- src/version.c 2012-05-27 00:37:33.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 531,
- /**/
-
---
-I learned the customs and mannerisms of engineers by observing them, much the
-way Jane Goodall learned about the great apes, but without the hassle of
-grooming.
- (Scott Adams - The Dilbert principle)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.532
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.532
-Problem: Compiler warning from Clang.
-Solution: Use a different way to point inside a string. (Dominique Pelle)
-Files: src/syntax.c
-
-
-*** ../vim-7.3.531/src/syntax.c 2012-03-23 16:25:13.000000000 +0100
---- src/syntax.c 2012-06-01 13:13:58.000000000 +0200
-***************
-*** 9476,9482 ****
- int cnt;
- int attr;
- {
-! msg_puts_attr((char_u *)("N \bI \b! \b" + cnt / 11), attr);
- msg_clr_eos();
- out_flush();
- ui_delay(cnt == 99 ? 40L : (long)cnt * 50L, FALSE);
---- 9476,9482 ----
- int cnt;
- int attr;
- {
-! msg_puts_attr((char_u *)&("N \bI \b! \b"[cnt / 11]), attr);
- msg_clr_eos();
- out_flush();
- ui_delay(cnt == 99 ? 40L : (long)cnt * 50L, FALSE);
-*** ../vim-7.3.531/src/version.c 2012-05-27 00:37:45.000000000 +0200
---- src/version.c 2012-06-01 13:14:51.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 532,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-8. You spend half of the plane trip with your laptop on your lap...and your
- child in the overhead compartment.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.533
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.533
-Problem: Memory leak when writing undo file.
-Solution: Free the ACL. (Dominique Pelle)
-Files: src/undo.c
-
-
-*** ../vim-7.3.532/src/undo.c 2011-12-08 15:14:04.000000000 +0100
---- src/undo.c 2012-06-01 13:38:42.000000000 +0200
-***************
-*** 1535,1540 ****
---- 1535,1541 ----
- /* For systems that support ACL: get the ACL from the original file. */
- acl = mch_get_acl(buf->b_ffname);
- mch_set_acl(file_name, acl);
-+ mch_free_acl(acl);
- }
- #endif
-
-*** ../vim-7.3.532/src/version.c 2012-06-01 13:18:48.000000000 +0200
---- src/version.c 2012-06-01 13:39:16.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 533,
- /**/
-
---
-"How is your new girlfriend?"
-"90-60-90 man!"
-"What, pale purple?"
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.534
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.534 (after 7.3.461)
-Problem: When using an InsertCharPre autocommand autoindent fails.
-Solution: Proper handling of v:char. (Alexey Radkov)
-Files: src/edit.c
-
-
-*** ../vim-7.3.533/src/edit.c 2012-05-18 16:35:17.000000000 +0200
---- src/edit.c 2012-06-01 14:41:06.000000000 +0200
-***************
-*** 10108,10129 ****
- do_insert_char_pre(c)
- int c;
- {
-! char_u *res;
-
- /* Return quickly when there is nothing to do. */
- if (!has_insertcharpre())
- return NULL;
-
- /* Lock the text to avoid weird things from happening. */
- ++textlock;
-! set_vim_var_char(c); /* set v:char */
-
- if (apply_autocmds(EVENT_INSERTCHARPRE, NULL, NULL, FALSE, curbuf))
-! /* Get the new value of v:char. It may be empty or more than one
-! * character. */
-! res = vim_strsave(get_vim_var_str(VV_CHAR));
-! else
-! res = NULL;
-
- set_vim_var_string(VV_CHAR, NULL, -1); /* clear v:char */
- --textlock;
---- 10108,10147 ----
- do_insert_char_pre(c)
- int c;
- {
-! char_u *res;
-! #ifdef FEAT_MBYTE
-! char_u buf[MB_MAXBYTES + 1];
-! #else
-! char_u buf[2];
-! #endif
-
- /* Return quickly when there is nothing to do. */
- if (!has_insertcharpre())
- return NULL;
-
-+ #ifdef FEAT_MBYTE
-+ if (has_mbyte)
-+ buf[(*mb_char2bytes)(c, buf)] = NUL;
-+ else
-+ #endif
-+ {
-+ buf[0] = c;
-+ buf[1] = NUL;
-+ }
-+
- /* Lock the text to avoid weird things from happening. */
- ++textlock;
-! set_vim_var_string(VV_CHAR, buf, -1); /* set v:char */
-
-+ res = NULL;
- if (apply_autocmds(EVENT_INSERTCHARPRE, NULL, NULL, FALSE, curbuf))
-! {
-! /* Get the value of v:char. It may be empty or more than one
-! * character. Only use it when changed, otherwise continue with the
-! * original character to avoid breaking autoindent. */
-! if (STRCMP(buf, get_vim_var_str(VV_CHAR)) != 0)
-! res = vim_strsave(get_vim_var_str(VV_CHAR));
-! }
-
- set_vim_var_string(VV_CHAR, NULL, -1); /* clear v:char */
- --textlock;
-*** ../vim-7.3.533/src/version.c 2012-06-01 13:46:06.000000000 +0200
---- src/version.c 2012-06-01 14:42:19.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 534,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-11. You find yourself typing "com" after every period when using a word
- processor.com
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.535
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.535
-Problem: Many #ifdefs for MB_MAXBYTES.
-Solution: Also define MB_MAXBYTES without the +multi_byte feature. Fix
- places where the buffer didn't include space for a NUL byte.
-Files: src/arabic.c, src/edit.c, src/eval.c, src/getchar.c, src/mbyte.c,
- src/misc1.c, src/screen.c, src/spell.c, src/vim.h
-
-
-*** ../vim-7.3.534/src/arabic.c 2010-08-15 21:57:28.000000000 +0200
---- src/arabic.c 2012-06-01 14:59:37.000000000 +0200
-***************
-*** 1066,1072 ****
-
- if (curr_c != c && ccp != NULL)
- {
-! char_u buf[MB_MAXBYTES];
-
- /* Update the first byte of the character. */
- (*mb_char2bytes)(curr_c, buf);
---- 1066,1072 ----
-
- if (curr_c != c && ccp != NULL)
- {
-! char_u buf[MB_MAXBYTES + 1];
-
- /* Update the first byte of the character. */
- (*mb_char2bytes)(curr_c, buf);
-*** ../vim-7.3.534/src/edit.c 2012-06-01 14:57:47.000000000 +0200
---- src/edit.c 2012-06-01 15:01:49.000000000 +0200
-***************
-*** 1648,1658 ****
- #define PC_STATUS_RIGHT 1 /* right halve of double-wide char */
- #define PC_STATUS_LEFT 2 /* left halve of double-wide char */
- #define PC_STATUS_SET 3 /* pc_bytes was filled */
-- #ifdef FEAT_MBYTE
- static char_u pc_bytes[MB_MAXBYTES + 1]; /* saved bytes */
-- #else
-- static char_u pc_bytes[2]; /* saved bytes */
-- #endif
- static int pc_attr;
- static int pc_row;
- static int pc_col;
---- 1648,1654 ----
-***************
-*** 6819,6829 ****
- char_u *s;
-
- vim_free(last_insert);
-- #ifdef FEAT_MBYTE
- last_insert = alloc(MB_MAXBYTES * 3 + 5);
-- #else
-- last_insert = alloc(6);
-- #endif
- if (last_insert != NULL)
- {
- s = last_insert;
---- 6815,6821 ----
-***************
-*** 6861,6867 ****
- char_u *s;
- {
- #ifdef FEAT_MBYTE
-! char_u temp[MB_MAXBYTES];
- int i;
- int len;
-
---- 6853,6859 ----
- char_u *s;
- {
- #ifdef FEAT_MBYTE
-! char_u temp[MB_MAXBYTES + 1];
- int i;
- int len;
-
-***************
-*** 7423,7429 ****
- int cc;
- {
- int n;
-! char_u buf[MB_MAXBYTES];
- int i;
- int c;
-
---- 7415,7421 ----
- int cc;
- {
- int n;
-! char_u buf[MB_MAXBYTES + 1];
- int i;
- int c;
-
-***************
-*** 10109,10119 ****
- int c;
- {
- char_u *res;
-- #ifdef FEAT_MBYTE
- char_u buf[MB_MAXBYTES + 1];
-- #else
-- char_u buf[2];
-- #endif
-
- /* Return quickly when there is nothing to do. */
- if (!has_insertcharpre())
---- 10101,10107 ----
-*** ../vim-7.3.534/src/eval.c 2012-05-18 18:34:15.000000000 +0200
---- src/eval.c 2012-06-01 15:02:08.000000000 +0200
-***************
-*** 19170,19180 ****
- set_vim_var_char(c)
- int c;
- {
-! #ifdef FEAT_MBYTE
-! char_u buf[MB_MAXBYTES];
-! #else
-! char_u buf[2];
-! #endif
-
- #ifdef FEAT_MBYTE
- if (has_mbyte)
---- 19170,19176 ----
- set_vim_var_char(c)
- int c;
- {
-! char_u buf[MB_MAXBYTES + 1];
-
- #ifdef FEAT_MBYTE
- if (has_mbyte)
-*** ../vim-7.3.534/src/getchar.c 2012-04-05 16:07:01.000000000 +0200
---- src/getchar.c 2012-06-01 15:03:51.000000000 +0200
-***************
-*** 723,729 ****
- int c;
- #ifdef FEAT_MBYTE
- int n;
-! char_u buf[MB_MAXBYTES];
- int i;
- #endif
-
---- 723,729 ----
- int c;
- #ifdef FEAT_MBYTE
- int n;
-! char_u buf[MB_MAXBYTES + 1];
- int i;
- #endif
-
-***************
-*** 1072,1078 ****
- int c;
- {
- #ifdef FEAT_MBYTE
-! char_u buf[MB_MAXBYTES];
- #else
- char_u buf[4];
- #endif
---- 1072,1078 ----
- int c;
- {
- #ifdef FEAT_MBYTE
-! char_u buf[MB_MAXBYTES + 1];
- #else
- char_u buf[4];
- #endif
-***************
-*** 1547,1553 ****
- int c, c2;
- #ifdef FEAT_MBYTE
- int n;
-! char_u buf[MB_MAXBYTES];
- int i;
- #endif
-
---- 1547,1553 ----
- int c, c2;
- #ifdef FEAT_MBYTE
- int n;
-! char_u buf[MB_MAXBYTES + 1];
- int i;
- #endif
-
-***************
-*** 4335,4345 ****
- int scol; /* starting column of the abbr. */
- int j;
- char_u *s;
-- #ifdef FEAT_MBYTE
- char_u tb[MB_MAXBYTES + 4];
-- #else
-- char_u tb[4];
-- #endif
- mapblock_T *mp;
- #ifdef FEAT_LOCALMAP
- mapblock_T *mp2;
---- 4335,4341 ----
-*** ../vim-7.3.534/src/mbyte.c 2012-03-07 19:38:52.000000000 +0100
---- src/mbyte.c 2012-06-01 15:04:27.000000000 +0200
-***************
-*** 708,714 ****
- */
- n = (i & 0x80) ? 2 : 1;
- # else
-! char buf[MB_MAXBYTES];
- # ifdef X_LOCALE
- # ifndef mblen
- # define mblen _Xmblen
---- 708,714 ----
- */
- n = (i & 0x80) ? 2 : 1;
- # else
-! char buf[MB_MAXBYTES + 1];
- # ifdef X_LOCALE
- # ifndef mblen
- # define mblen _Xmblen
-***************
-*** 1953,1959 ****
- /*
- * Convert the character at screen position "off" to a sequence of bytes.
- * Includes the composing characters.
-! * "buf" must at least have the length MB_MAXBYTES.
- * Only to be used when ScreenLinesUC[off] != 0.
- * Returns the produced number of bytes.
- */
---- 1953,1959 ----
- /*
- * Convert the character at screen position "off" to a sequence of bytes.
- * Includes the composing characters.
-! * "buf" must at least have the length MB_MAXBYTES + 1.
- * Only to be used when ScreenLinesUC[off] != 0.
- * Returns the produced number of bytes.
- */
-*** ../vim-7.3.534/src/misc1.c 2012-04-30 21:09:38.000000000 +0200
---- src/misc1.c 2012-06-01 15:04:56.000000000 +0200
-***************
-*** 1932,1938 ****
- int c;
- {
- #if defined(FEAT_MBYTE) || defined(PROTO)
-! char_u buf[MB_MAXBYTES];
- int n;
-
- n = (*mb_char2bytes)(c, buf);
---- 1932,1938 ----
- int c;
- {
- #if defined(FEAT_MBYTE) || defined(PROTO)
-! char_u buf[MB_MAXBYTES + 1];
- int n;
-
- n = (*mb_char2bytes)(c, buf);
-*** ../vim-7.3.534/src/screen.c 2012-03-23 16:25:13.000000000 +0100
---- src/screen.c 2012-06-01 15:06:03.000000000 +0200
-***************
-*** 6621,6636 ****
- int row, col;
- int attr;
- {
-- #ifdef FEAT_MBYTE
- char_u buf[MB_MAXBYTES + 1];
-
-! buf[(*mb_char2bytes)(c, buf)] = NUL;
-! #else
-! char_u buf[2];
-!
-! buf[0] = c;
-! buf[1] = NUL;
- #endif
- screen_puts(buf, row, col, attr);
- }
-
---- 6621,6637 ----
- int row, col;
- int attr;
- {
- char_u buf[MB_MAXBYTES + 1];
-
-! #ifdef FEAT_MBYTE
-! if (has_mbyte)
-! buf[(*mb_char2bytes)(c, buf)] = NUL;
-! else
- #endif
-+ {
-+ buf[0] = c;
-+ buf[1] = NUL;
-+ }
- screen_puts(buf, row, col, attr);
- }
-
-*** ../vim-7.3.534/src/spell.c 2012-05-18 18:07:57.000000000 +0200
---- src/spell.c 2012-06-01 15:06:30.000000000 +0200
-***************
-*** 13694,13700 ****
- {
- int m1, m2;
- #ifdef FEAT_MBYTE
-! char_u buf[MB_MAXBYTES];
- hashitem_T *hi;
-
- if (c1 >= 256)
---- 13694,13700 ----
- {
- int m1, m2;
- #ifdef FEAT_MBYTE
-! char_u buf[MB_MAXBYTES + 1];
- hashitem_T *hi;
-
- if (c1 >= 256)
-*** ../vim-7.3.534/src/vim.h 2012-04-30 18:48:38.000000000 +0200
---- src/vim.h 2012-06-01 14:59:28.000000000 +0200
-***************
-*** 1703,1708 ****
---- 1703,1710 ----
- * character of up to 6 bytes, or one 16-bit character of up to three bytes
- * plus six following composing characters of three bytes each. */
- # define MB_MAXBYTES 21
-+ #else
-+ # define MB_MAXBYTES 1
- #endif
-
- #if (defined(FEAT_PROFILE) || defined(FEAT_RELTIME)) && !defined(PROTO)
-***************
-*** 2017,2022 ****
---- 2019,2025 ----
- #pragma warning(disable : 4312)
- #endif
-
-+ /* Note: a NULL argument for vim_realloc() is not portable, don't use it. */
- #if defined(MEM_PROFILE)
- # define vim_realloc(ptr, size) mem_realloc((ptr), (size))
- #else
-*** ../vim-7.3.534/src/version.c 2012-06-01 14:57:47.000000000 +0200
---- src/version.c 2012-06-01 15:08:20.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 535,
- /**/
-
---
-Me? A skeptic? I trust you have proof.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.536
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.536
-Problem: When spell checking the German sharp s is not seen as a word
- character. (Aexl Bender)
-Solution: In utf_islower() return true for the sharp s. Note: also need
- updated spell file for this to take effect.
-Files: src/mbyte.c
-
-
-*** ../vim-7.3.535/src/mbyte.c 2012-06-01 15:20:49.000000000 +0200
---- src/mbyte.c 2012-06-01 16:50:41.000000000 +0200
-***************
-*** 2949,2955 ****
- {
- {0x61,0x7a,1,-32},
- {0xb5,0xb5,-1,743},
-! {0xe0,0xf6,1,-32},
- {0xf8,0xfe,1,-32},
- {0xff,0xff,-1,121},
- {0x101,0x12f,2,-1},
---- 2949,2955 ----
- {
- {0x61,0x7a,1,-32},
- {0xb5,0xb5,-1,743},
-! {0xe0,0xf6,1,-32}, /* 0xdf (German sharp s) is not upper-cased */
- {0xf8,0xfe,1,-32},
- {0xff,0xff,-1,121},
- {0x101,0x12f,2,-1},
-***************
-*** 3129,3135 ****
- utf_islower(a)
- int a;
- {
-! return (utf_toupper(a) != a);
- }
-
- /*
---- 3129,3136 ----
- utf_islower(a)
- int a;
- {
-! /* German sharp s is lower case but has no upper case equivalent. */
-! return (utf_toupper(a) != a) || a == 0xdf;
- }
-
- /*
-*** ../vim-7.3.535/src/version.c 2012-06-01 15:20:49.000000000 +0200
---- src/version.c 2012-06-01 17:45:17.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 536,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-16. You step out of your room and realize that your parents have moved and
- you don't have a clue when it happened.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.537
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.537
-Problem: Unecessary call to init_spell_chartab().
-Solution: Delete the call.
-Files: src/spell.c
-
-
-*** ../vim-7.3.536/src/spell.c 2012-06-01 15:20:49.000000000 +0200
---- src/spell.c 2012-06-01 17:49:44.000000000 +0200
-***************
-*** 4721,4728 ****
- int_wordlist = NULL;
- }
-
-- init_spell_chartab();
--
- vim_free(repl_to);
- repl_to = NULL;
- vim_free(repl_from);
---- 4721,4726 ----
-*** ../vim-7.3.536/src/version.c 2012-06-01 17:46:52.000000000 +0200
---- src/version.c 2012-06-01 17:49:08.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 537,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-17. You turn on your intercom when leaving the room so you can hear if new
- e-mail arrives.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.538
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.538
-Problem: 'efm' does not handle Tabs in pointer lines.
-Solution: Add Tab support. Improve tests. (Lech Lorens)
-Files: src/quickfix.c, src/testdir/test10.in, src/testdir/test10.ok
-
-
-*** ../vim-7.3.537/src/quickfix.c 2012-04-25 18:57:17.000000000 +0200
---- src/quickfix.c 2012-06-01 18:24:07.000000000 +0200
-***************
-*** 247,253 ****
- {'t', "."},
- {'m', ".\\+"},
- {'r', ".*"},
-! {'p', "[- .]*"},
- {'v', "\\d\\+"},
- {'s', ".\\+"}
- };
---- 247,253 ----
- {'t', "."},
- {'m', ".\\+"},
- {'r', ".*"},
-! {'p', "[- .]*"},
- {'v', "\\d\\+"},
- {'s', ".\\+"}
- };
-***************
-*** 677,687 ****
- }
- if ((i = (int)fmt_ptr->addr[7]) > 0) /* %p */
- {
- if (regmatch.startp[i] == NULL || regmatch.endp[i] == NULL)
- continue;
-! col = (int)(regmatch.endp[i] - regmatch.startp[i] + 1);
-! if (*((char_u *)regmatch.startp[i]) != TAB)
-! use_viscol = TRUE;
- }
- if ((i = (int)fmt_ptr->addr[8]) > 0) /* %v */
- {
---- 677,699 ----
- }
- if ((i = (int)fmt_ptr->addr[7]) > 0) /* %p */
- {
-+ char_u *match_ptr;
-+
- if (regmatch.startp[i] == NULL || regmatch.endp[i] == NULL)
- continue;
-! col = 0;
-! for (match_ptr = regmatch.startp[i];
-! match_ptr != regmatch.endp[i]; ++match_ptr)
-! {
-! ++col;
-! if (*match_ptr == TAB)
-! {
-! col += 7;
-! col -= col % 8;
-! }
-! }
-! ++col;
-! use_viscol = TRUE;
- }
- if ((i = (int)fmt_ptr->addr[8]) > 0) /* %v */
- {
-*** ../vim-7.3.537/src/testdir/test10.in 2011-08-10 18:36:49.000000000 +0200
---- src/testdir/test10.in 2012-06-01 18:22:40.000000000 +0200
-***************
-*** 8,48 ****
- :7/start of errorfile/,/end of errorfile/w! Xerrorfile1
- :7/start of errorfile/,/end of errorfile/-1w! Xerrorfile2
- :/start of testfile/,/end of testfile/w! Xtestfile
- :cf Xerrorfile2
- :clast
- :copen
- :let a=w:quickfix_title
- :wincmd p
-! gR=a 
- :cf Xerrorfile1
-! rA
- :cn
-! rB
- :cn
-! rC
- :cn
-! rD
- :cn
-! rE
- :cn
- :wincmd w
- :let a=w:quickfix_title
- :wincmd p
-! gR=a 
- :w! test.out " Write contents of this file
- :qa!
- ENDTEST
-
- start of errorfile
- "Xtestfile", line 4.12: 1506-045 (S) Undeclared identifier fd_set.
-! "Xtestfile", line 7 col 19; this is an error
- gcc -c -DHAVE_CONFIsing-prototypes -I/usr/X11R6/include version.c
-! Xtestfile:13: parse error before `asd'
- make: *** [vim] Error 1
-! in file "Xtestfile" linenr 16: there is an error
-
- 2 returned
-! "Xtestfile", linenr 19: yet another problem
-
- Does anyone know what is the problem and how to correction it?
- "Xtestfile", line 21 col 9: What is the title of the quickfix window?
---- 8,88 ----
- :7/start of errorfile/,/end of errorfile/w! Xerrorfile1
- :7/start of errorfile/,/end of errorfile/-1w! Xerrorfile2
- :/start of testfile/,/end of testfile/w! Xtestfile
-+ :set efm+==%f=\\,\ line\ %l%*\\D%v%*[^\ ]\ %m
-+ :set efm^=%AError\ in\ \"%f\"\ at\ line\ %l:,%Z%p^,%C%m
- :cf Xerrorfile2
- :clast
- :copen
- :let a=w:quickfix_title
- :wincmd p
-! lgR=a 
- :cf Xerrorfile1
-! grA
- :cn
-! gRLINE 6, COL 19
- :cn
-! gRNO COLUMN SPECIFIED
- :cn
-! gRAGAIN NO COLUMN
- :cn
-! gRCOL 1
- :cn
-+ gRCOL 2
-+ :cn
-+ gRCOL 10
-+ :cn
-+ gRVCOL 10
-+ :cn
-+ grI
-+ :cn
-+ gR. SPACE POINTER
-+ :cn
-+ gR. DOT POINTER
-+ :cn
-+ gR. DASH POINTER
-+ :cn
-+ gR. TAB-SPACE POINTER
-+ :clast
-+ :cprev
-+ :cprev
- :wincmd w
- :let a=w:quickfix_title
- :wincmd p
-! lgR=a 
- :w! test.out " Write contents of this file
- :qa!
- ENDTEST
-
- start of errorfile
- "Xtestfile", line 4.12: 1506-045 (S) Undeclared identifier fd_set.
-! "Xtestfile", line 6 col 19; this is an error
- gcc -c -DHAVE_CONFIsing-prototypes -I/usr/X11R6/include version.c
-! Xtestfile:9: parse error before `asd'
- make: *** [vim] Error 1
-! in file "Xtestfile" linenr 10: there is an error
-
- 2 returned
-! "Xtestfile", line 11 col 1; this is an error
-! "Xtestfile", line 12 col 2; this is another error
-! "Xtestfile", line 14:10; this is an error in column 10
-! =Xtestfile=, line 15:10; this is another error, but in vcol 10 this time
-! "Xtestfile", linenr 16: yet another problem
-! Error in "Xtestfile" at line 17:
-! x should be a dot
-! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 17
-! ^
-! Error in "Xtestfile" at line 18:
-! x should be a dot
-! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 18
-! .............^
-! Error in "Xtestfile" at line 19:
-! x should be a dot
-! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 19
-! --------------^
-! Error in "Xtestfile" at line 20:
-! x should be a dot
-! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 20
-! ^
-
- Does anyone know what is the problem and how to correction it?
- "Xtestfile", line 21 col 9: What is the title of the quickfix window?
-***************
-*** 50,74 ****
- end of errorfile
-
- start of testfile
-! line 2 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-! line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-! line 4 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-! line 5 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-! line 6 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-! line 7 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-! line 8 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-! line 9 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-! line 10 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-! line 11 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-! line 12 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-! line 13 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-! line 14 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-! line 15 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-! line 16 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-! line 17 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-! line 18 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-! line 19 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-! line 20 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-! line 21 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-! line 22 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
- end of testfile
---- 90,114 ----
- end of errorfile
-
- start of testfile
-! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 2
-! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 3
-! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 4
-! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 5
-! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 6
-! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 7
-! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 8
-! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 9
-! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 10
-! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 11
-! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 12
-! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 13
-! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 14
-! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 15
-! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 16
-! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 17
-! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 18
-! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 19
-! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 20
-! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 21
-! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 22
- end of testfile
-*** ../vim-7.3.537/src/testdir/test10.ok 2011-08-10 18:36:49.000000000 +0200
---- src/testdir/test10.ok 2012-06-01 18:22:40.000000000 +0200
-***************
-*** 1,23 ****
- start of testfile
-! line 2 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-! line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-! line 4 xxxAxxxxxxxxxxxxxxxxxxxxxxxxxx
-! line 5 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-! line 6 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-! line 7 xxxxxxxxxxBxxxxxxxxxxxxxxxxxxx
-! line 8 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-! line 9 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-! line 10 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-! line 11 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-! line 12 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-! Cine 13 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-! line 14 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-! line 15 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-! Dine 16 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-! line 17 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-! line 18 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-! Eine 19 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-! line 20 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-! line 21 :cf Xerrorfile1xxxxxxxxxxxxxxx
-! line 22 :cf Xerrorfile2xxxxxxxxxxxxxxx
- end of testfile
---- 1,23 ----
- start of testfile
-! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 2
-! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 3
-! xxxxxxxxxxAxxxxxxxxxxxxxxxxxxx line 4
-! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 5
-! xxxxxxxxxxxxxxxxxLINE 6, COL 19 line 6
-! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 7
-! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 8
-! NO COLUMN SPECIFIEDxxxxxxxxxxx line 9
-! AGAIN NO COLUMNxxxxxxxxxxxxxxx line 10
-! COL 1 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 11
-! COL 2xxxxxxxxxxxxxxxxxxxxxxxxx line 12
-! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 13
-! xxxxxxxxCOL 10xxxxxxxxxxxxxxxx line 14
-! xVCOL 10xxxxxxxxxxxxxxxxxxxxxx line 15
-! Ixxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 16
-! xxxx. SPACE POINTERxxxxxxxxxxx line 17
-! xxxxx. DOT POINTERxxxxxxxxxxxx line 18
-! xxxxxx. DASH POINTERxxxxxxxxxx line 19
-! xxxxxxx. TAB-SPACE POINTERxxxx line 20
-! xxxxxxxx:cf Xerrorfile1xxxxxxx line 21
-! xxxxxxxx:cf Xerrorfile2xxxxxxx line 22
- end of testfile
-*** ../vim-7.3.537/src/version.c 2012-06-01 17:49:51.000000000 +0200
---- src/version.c 2012-06-01 18:22:27.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 538,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-18. Your wife drapes a blond wig over your monitor to remind you of what she
- looks like.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.539
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.539
-Problem: Redrawing a character on the command line does not work properly
- for multi-byte charactes.
-Solution: Count the number of bytes in a character. (Yukihiro Nakadaira)
-Files: src/ex_getln.c
-
-
-*** ../vim-7.3.538/src/ex_getln.c 2012-05-25 11:02:34.000000000 +0200
---- src/ex_getln.c 2012-06-06 11:50:37.000000000 +0200
-***************
-*** 2764,2769 ****
---- 2764,2774 ----
- msg_no_more = TRUE;
- if (ccline.cmdlen == ccline.cmdpos)
- msg_putchar(' ');
-+ #ifdef FEAT_MBYTE
-+ else if (has_mbyte)
-+ draw_cmdline(ccline.cmdpos,
-+ (*mb_ptr2len)(ccline.cmdbuff + ccline.cmdpos));
-+ #endif
- else
- draw_cmdline(ccline.cmdpos, 1);
- msg_no_more = FALSE;
-*** ../vim-7.3.538/src/version.c 2012-06-01 18:34:37.000000000 +0200
---- src/version.c 2012-06-06 12:02:45.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 539,
- /**/
-
---
-If they don't keep on exercising their lips, he thought, their brains
-start working.
- -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.540
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.540
-Problem: Cursor is left on the text instead of the command line.
-Solution: Don't call setcursor() in command line mode.
-Files: src/getchar.c
-
-
-*** ../vim-7.3.539/src/getchar.c 2012-06-01 15:20:49.000000000 +0200
---- src/getchar.c 2012-06-06 11:58:05.000000000 +0200
-***************
-*** 2819,2825 ****
- edit_unputchar();
- if (State & CMDLINE)
- unputcmdline();
-! setcursor(); /* put cursor back where it belongs */
- }
-
- if (c < 0)
---- 2819,2826 ----
- edit_unputchar();
- if (State & CMDLINE)
- unputcmdline();
-! else
-! setcursor(); /* put cursor back where it belongs */
- }
-
- if (c < 0)
-*** ../vim-7.3.539/src/version.c 2012-06-06 12:02:57.000000000 +0200
---- src/version.c 2012-06-06 12:05:22.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 540,
- /**/
-
---
-"Making it up? Why should I want to make anything up? Life's bad enough
-as it is without wanting to invent any more of it."
- -- Marvin, the Paranoid Android in Douglas Adams'
- "The Hitchhiker's Guide to the Galaxy"
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.541
-Fcc: 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.541
-Problem: When joining lines comment leaders need to be removed manually.
-Solution: Add the 'j' flag to 'formatoptions'. (Lech Lorens)
-Files: runtime/doc/change.txt, src/edit.c, src/ex_docmd.c, src/misc1.c,
- src/normal.c, src/ops.c, src/option.h, src/proto/misc1.pro,
- src/proto/ops.pro, src/search.c, src/testdir/test29.in,
- src/testdir/test29.ok
-
-
-*** ../vim-7.3.540/runtime/doc/change.txt 2011-05-05 14:26:37.000000000 +0200
---- runtime/doc/change.txt 2012-06-06 13:05:04.000000000 +0200
-***************
-*** 1495,1500 ****
---- 1522,1533 ----
- characters. Overruled by the 'M' flag.
- 1 Don't break a line after a one-letter word. It's broken before it
- instead (if possible).
-+ j Where it makes sense, remove a comment leader when joining lines. For
-+ example, joining:
-+ int i; // the index ~
-+ // in the list ~
-+ Becomes:
-+ int i; // the index in the list ~
-
-
- With 't' and 'c' you can specify when Vim performs auto-wrapping:
-*** ../vim-7.3.540/src/edit.c 2012-06-01 15:20:49.000000000 +0200
---- src/edit.c 2012-06-06 13:00:29.000000000 +0200
-***************
-*** 5847,5853 ****
- * Need to remove existing (middle) comment leader and insert end
- * comment leader. First, check what comment leader we can find.
- */
-! i = get_leader_len(line = ml_get_curline(), &p, FALSE);
- if (i > 0 && vim_strchr(p, COM_MIDDLE) != NULL) /* Just checking */
- {
- /* Skip middle-comment string */
---- 5847,5853 ----
- * Need to remove existing (middle) comment leader and insert end
- * comment leader. First, check what comment leader we can find.
- */
-! i = get_leader_len(line = ml_get_curline(), &p, FALSE, TRUE);
- if (i > 0 && vim_strchr(p, COM_MIDDLE) != NULL) /* Just checking */
- {
- /* Skip middle-comment string */
-***************
-*** 6085,6091 ****
-
- /* Don't break until after the comment leader */
- if (do_comments)
-! leader_len = get_leader_len(ml_get_curline(), NULL, FALSE);
- else
- leader_len = 0;
-
---- 6085,6091 ----
-
- /* Don't break until after the comment leader */
- if (do_comments)
-! leader_len = get_leader_len(ml_get_curline(), NULL, FALSE, TRUE);
- else
- leader_len = 0;
-
-***************
-*** 6411,6417 ****
- /* With the 'c' flag in 'formatoptions' and 't' missing: only format
- * comments. */
- if (has_format_option(FO_WRAP_COMS) && !has_format_option(FO_WRAP)
-! && get_leader_len(old, NULL, FALSE) == 0)
- return;
- #endif
-
---- 6411,6417 ----
- /* With the 'c' flag in 'formatoptions' and 't' missing: only format
- * comments. */
- if (has_format_option(FO_WRAP_COMS) && !has_format_option(FO_WRAP)
-! && get_leader_len(old, NULL, FALSE, TRUE) == 0)
- return;
- #endif
-
-***************
-*** 8565,8571 ****
- {
- temp = curwin->w_cursor.col;
- if (!can_bs(BS_EOL) /* only if "eol" included */
-! || do_join(2, FALSE, TRUE) == FAIL)
- vim_beep();
- else
- curwin->w_cursor.col = temp;
---- 8565,8571 ----
- {
- temp = curwin->w_cursor.col;
- if (!can_bs(BS_EOL) /* only if "eol" included */
-! || do_join(2, FALSE, TRUE, FALSE) == FAIL)
- vim_beep();
- else
- curwin->w_cursor.col = temp;
-***************
-*** 8746,8752 ****
- ptr[len - 1] = NUL;
- }
-
-! (void)do_join(2, FALSE, FALSE);
- if (temp == NUL && gchar_cursor() != NUL)
- inc_cursor();
- }
---- 8746,8752 ----
- ptr[len - 1] = NUL;
- }
-
-! (void)do_join(2, FALSE, FALSE, FALSE);
- if (temp == NUL && gchar_cursor() != NUL)
- inc_cursor();
- }
-*** ../vim-7.3.540/src/ex_docmd.c 2012-04-30 18:48:38.000000000 +0200
---- src/ex_docmd.c 2012-06-06 13:00:29.000000000 +0200
-***************
-*** 8545,8551 ****
- }
- ++eap->line2;
- }
-! (void)do_join(eap->line2 - eap->line1 + 1, !eap->forceit, TRUE);
- beginline(BL_WHITE | BL_FIX);
- ex_may_print(eap);
- }
---- 8545,8551 ----
- }
- ++eap->line2;
- }
-! (void)do_join(eap->line2 - eap->line1 + 1, !eap->forceit, TRUE, TRUE);
- beginline(BL_WHITE | BL_FIX);
- ex_may_print(eap);
- }
-*** ../vim-7.3.540/src/misc1.c 2012-06-01 15:20:49.000000000 +0200
---- src/misc1.c 2012-06-06 13:27:32.000000000 +0200
-***************
-*** 671,677 ****
- ptr = saved_line;
- # ifdef FEAT_COMMENTS
- if (flags & OPENLINE_DO_COM)
-! lead_len = get_leader_len(ptr, NULL, FALSE);
- else
- lead_len = 0;
- # endif
---- 671,677 ----
- ptr = saved_line;
- # ifdef FEAT_COMMENTS
- if (flags & OPENLINE_DO_COM)
-! lead_len = get_leader_len(ptr, NULL, FALSE, TRUE);
- else
- lead_len = 0;
- # endif
-***************
-*** 693,699 ****
- }
- # ifdef FEAT_COMMENTS
- if (flags & OPENLINE_DO_COM)
-! lead_len = get_leader_len(ptr, NULL, FALSE);
- else
- lead_len = 0;
- if (lead_len > 0)
---- 693,699 ----
- }
- # ifdef FEAT_COMMENTS
- if (flags & OPENLINE_DO_COM)
-! lead_len = get_leader_len(ptr, NULL, FALSE, TRUE);
- else
- lead_len = 0;
- if (lead_len > 0)
-***************
-*** 836,842 ****
- */
- end_comment_pending = NUL;
- if (flags & OPENLINE_DO_COM)
-! lead_len = get_leader_len(saved_line, &lead_flags, dir == BACKWARD);
- else
- lead_len = 0;
- if (lead_len > 0)
---- 836,842 ----
- */
- end_comment_pending = NUL;
- if (flags & OPENLINE_DO_COM)
-! lead_len = get_leader_len(saved_line, &lead_flags, dir == BACKWARD, TRUE);
- else
- lead_len = 0;
- if (lead_len > 0)
-***************
-*** 1548,1561 ****
- * When "flags" is not NULL, it is set to point to the flags of the recognized
- * comment leader.
- * "backward" must be true for the "O" command.
- */
- int
-! get_leader_len(line, flags, backward)
- char_u *line;
- char_u **flags;
- int backward;
- {
- int i, j;
- int got_com = FALSE;
- int found_one;
- char_u part_buf[COM_MAX_LEN]; /* buffer for one option part */
---- 1548,1565 ----
- * When "flags" is not NULL, it is set to point to the flags of the recognized
- * comment leader.
- * "backward" must be true for the "O" command.
-+ * If "include_space" is set, include trailing whitespace while calculating the
-+ * length.
- */
- int
-! get_leader_len(line, flags, backward, include_space)
- char_u *line;
- char_u **flags;
- int backward;
-+ int include_space;
- {
- int i, j;
-+ int result;
- int got_com = FALSE;
- int found_one;
- char_u part_buf[COM_MAX_LEN]; /* buffer for one option part */
-***************
-*** 1565,1571 ****
- char_u *prev_list;
- char_u *saved_flags = NULL;
-
-! i = 0;
- while (vim_iswhite(line[i])) /* leading white space is ignored */
- ++i;
-
---- 1569,1575 ----
- char_u *prev_list;
- char_u *saved_flags = NULL;
-
-! result = i = 0;
- while (vim_iswhite(line[i])) /* leading white space is ignored */
- ++i;
-
-***************
-*** 1668,1684 ****
- if (!found_one)
- break;
-
- /* Include any trailing white space. */
- while (vim_iswhite(line[i]))
- ++i;
-
- /* If this comment doesn't nest, stop here. */
- got_com = TRUE;
- if (vim_strchr(part_buf, COM_NEST) == NULL)
- break;
- }
-
-! return (got_com ? i : 0);
- }
- #endif
-
---- 1672,1838 ----
- if (!found_one)
- break;
-
-+ result = i;
-+
- /* Include any trailing white space. */
- while (vim_iswhite(line[i]))
- ++i;
-
-+ if (include_space)
-+ result = i;
-+
- /* If this comment doesn't nest, stop here. */
- got_com = TRUE;
- if (vim_strchr(part_buf, COM_NEST) == NULL)
- break;
- }
-+ return result;
-+ }
-+
-+ /*
-+ * Return the offset at which the last comment in line starts. If there is no
-+ * comment in the whole line, -1 is returned.
-+ *
-+ * When "flags" is not null, it is set to point to the flags describing the
-+ * recognized comment leader.
-+ */
-+ int
-+ get_last_leader_offset(line, flags)
-+ char_u *line;
-+ char_u **flags;
-+ {
-+ int result = -1;
-+ int i, j;
-+ int lower_check_bound = 0;
-+ char_u *string;
-+ char_u *com_leader;
-+ char_u *com_flags;
-+ char_u *list;
-+ int found_one;
-+ char_u part_buf[COM_MAX_LEN]; /* buffer for one option part */
-+
-+ /*
-+ * Repeat to match several nested comment strings.
-+ */
-+ i = (int)STRLEN(line);
-+ while (--i >= lower_check_bound)
-+ {
-+ /*
-+ * scan through the 'comments' option for a match
-+ */
-+ found_one = FALSE;
-+ for (list = curbuf->b_p_com; *list; )
-+ {
-+ char_u *flags_save = list;
-+
-+ /*
-+ * Get one option part into part_buf[]. Advance list to next one.
-+ * put string at start of string.
-+ */
-+ (void)copy_option_part(&list, part_buf, COM_MAX_LEN, ",");
-+ string = vim_strchr(part_buf, ':');
-+ if (string == NULL) /* If everything is fine, this cannot actually
-+ * happen. */
-+ {
-+ continue;
-+ }
-+ *string++ = NUL; /* Isolate flags from string. */
-+ com_leader = string;
-+
-+ /*
-+ * Line contents and string must match.
-+ * When string starts with white space, must have some white space
-+ * (but the amount does not need to match, there might be a mix of
-+ * TABs and spaces).
-+ */
-+ if (vim_iswhite(string[0]))
-+ {
-+ if (i == 0 || !vim_iswhite(line[i - 1]))
-+ continue;
-+ while (vim_iswhite(string[0]))
-+ ++string;
-+ }
-+ for (j = 0; string[j] != NUL && string[j] == line[i + j]; ++j)
-+ /* do nothing */;
-+ if (string[j] != NUL)
-+ continue;
-+
-+ /*
-+ * When 'b' flag used, there must be white space or an
-+ * end-of-line after the string in the line.
-+ */
-+ if (vim_strchr(part_buf, COM_BLANK) != NULL
-+ && !vim_iswhite(line[i + j]) && line[i + j] != NUL)
-+ {
-+ continue;
-+ }
-+
-+ /*
-+ * We have found a match, stop searching.
-+ */
-+ found_one = TRUE;
-+
-+ if (flags)
-+ *flags = flags_save;
-+ com_flags = flags_save;
-+
-+ break;
-+ }
-
-! if (found_one)
-! {
-! char_u part_buf2[COM_MAX_LEN]; /* buffer for one option part */
-! int len1, len2, off;
-!
-! result = i;
-! /*
-! * If this comment nests, continue searching.
-! */
-! if (vim_strchr(part_buf, COM_NEST) != NULL)
-! continue;
-!
-! lower_check_bound = i;
-!
-! /* Let's verify whether the comment leader found is a substring
-! * of other comment leaders. If it is, let's adjust the
-! * lower_check_bound so that we make sure that we have determined
-! * the comment leader correctly.
-! */
-!
-! while (vim_iswhite(*com_leader))
-! ++com_leader;
-! len1 = (int)STRLEN(com_leader);
-!
-! for (list = curbuf->b_p_com; *list; )
-! {
-! char_u *flags_save = list;
-!
-! (void)copy_option_part(&list, part_buf2, COM_MAX_LEN, ",");
-! if (flags_save == com_flags)
-! continue;
-! string = vim_strchr(part_buf2, ':');
-! ++string;
-! while (vim_iswhite(*string))
-! ++string;
-! len2 = (int)STRLEN(string);
-! if (len2 == 0)
-! continue;
-!
-! /* Now we have to verify whether string ends with a substring
-! * beginning the com_leader. */
-! for (off = (len2 > i ? i : len2); off > 0 && off + len1 > len2;)
-! {
-! --off;
-! if (!STRNCMP(string + off, com_leader, len2 - off))
-! {
-! if (i - off < lower_check_bound)
-! lower_check_bound = i - off;
-! }
-! }
-! }
-! }
-! }
-! return result;
- }
- #endif
-
-*** ../vim-7.3.540/src/normal.c 2012-05-25 13:12:33.000000000 +0200
---- src/normal.c 2012-06-06 13:00:29.000000000 +0200
-***************
-*** 1968,1974 ****
- beep_flush();
- else
- {
-! (void)do_join(oap->line_count, oap->op_type == OP_JOIN, TRUE);
- auto_format(FALSE, TRUE);
- }
- break;
---- 1968,1974 ----
- beep_flush();
- else
- {
-! (void)do_join(oap->line_count, oap->op_type == OP_JOIN, TRUE, TRUE);
- auto_format(FALSE, TRUE);
- }
- break;
-***************
-*** 4426,4432 ****
- break;
- }
- #ifdef FEAT_COMMENTS
-! if (get_leader_len(ml_get_curline(), NULL, FALSE) > 0)
- {
- /* Ignore this line, continue at start of next line. */
- ++curwin->w_cursor.lnum;
---- 4426,4432 ----
- break;
- }
- #ifdef FEAT_COMMENTS
-! if (get_leader_len(ml_get_curline(), NULL, FALSE, TRUE) > 0)
- {
- /* Ignore this line, continue at start of next line. */
- ++curwin->w_cursor.lnum;
-***************
-*** 9324,9330 ****
- {
- prep_redo(cap->oap->regname, cap->count0,
- NUL, cap->cmdchar, NUL, NUL, cap->nchar);
-! (void)do_join(cap->count0, cap->nchar == NUL, TRUE);
- }
- }
- }
---- 9324,9330 ----
- {
- prep_redo(cap->oap->regname, cap->count0,
- NUL, cap->cmdchar, NUL, NUL, cap->nchar);
-! (void)do_join(cap->count0, cap->nchar == NUL, TRUE, TRUE);
- }
- }
- }
-*** ../vim-7.3.540/src/ops.c 2012-05-18 12:49:33.000000000 +0200
---- src/ops.c 2012-06-06 15:43:31.000000000 +0200
-***************
-*** 112,117 ****
---- 112,120 ----
- # endif
- #endif
- static void dis_msg __ARGS((char_u *p, int skip_esc));
-+ #if defined(FEAT_COMMENTS) || defined(PROTO)
-+ static char_u *skip_comment __ARGS((char_u *line, int process, int include_space, int *is_comment));
-+ #endif
- #ifdef FEAT_VISUAL
- static void block_prep __ARGS((oparg_T *oap, struct block_def *, linenr_T, int));
- #endif
-***************
-*** 1987,1993 ****
- curwin->w_cursor = curpos; /* restore curwin->w_cursor */
- }
- if (curwin->w_cursor.lnum < curbuf->b_ml.ml_line_count)
-! (void)do_join(2, FALSE, FALSE);
- }
- }
-
---- 1990,1996 ----
- curwin->w_cursor = curpos; /* restore curwin->w_cursor */
- }
- if (curwin->w_cursor.lnum < curbuf->b_ml.ml_line_count)
-! (void)do_join(2, FALSE, FALSE, FALSE);
- }
- }
-
-***************
-*** 4197,4213 ****
- ui_breakcheck();
- }
-
- /*
- * Join 'count' lines (minimal 2) at cursor position.
- * When "save_undo" is TRUE save lines for undo first.
- *
- * return FAIL for failure, OK otherwise
- */
- int
-! do_join(count, insert_space, save_undo)
- long count;
- int insert_space;
- int save_undo;
- {
- char_u *curr = NULL;
- char_u *curr_start = NULL;
---- 4200,4297 ----
- ui_breakcheck();
- }
-
-+ #if defined(FEAT_COMMENTS) || defined(PROTO)
-+ /*
-+ * If "process" is TRUE and the line begins with a comment leader (possibly
-+ * after some white space), return a pointer to the text after it. Put a boolean
-+ * value indicating whether the line ends with an unclosed comment in
-+ * "is_comment".
-+ * line - line to be processed,
-+ * process - if FALSE, will only check whether the line ends with an unclosed
-+ * comment,
-+ * include_space - whether to also skip space following the comment leader,
-+ * is_comment - will indicate whether the current line ends with an unclosed
-+ * comment.
-+ */
-+ static char_u *
-+ skip_comment(line, process, include_space, is_comment)
-+ char_u *line;
-+ int process;
-+ int include_space;
-+ int *is_comment;
-+ {
-+ char_u *comment_flags = NULL;
-+ int lead_len;
-+ int leader_offset = get_last_leader_offset(line, &comment_flags);
-+
-+ *is_comment = FALSE;
-+ if (leader_offset != -1)
-+ {
-+ /* Let's check whether the line ends with an unclosed comment.
-+ * If the last comment leader has COM_END in flags, there's no comment.
-+ */
-+ while (*comment_flags)
-+ {
-+ if (*comment_flags == COM_END
-+ || *comment_flags == ':')
-+ break;
-+ ++comment_flags;
-+ }
-+ if (*comment_flags != COM_END)
-+ *is_comment = TRUE;
-+ }
-+
-+ if (process == FALSE)
-+ return line;
-+
-+ lead_len = get_leader_len(line, &comment_flags, FALSE, include_space);
-+
-+ if (lead_len == 0)
-+ return line;
-+
-+ /* Find:
-+ * - COM_START,
-+ * - COM_END,
-+ * - colon,
-+ * whichever comes first.
-+ */
-+ while (*comment_flags)
-+ {
-+ if (*comment_flags == COM_START
-+ || *comment_flags == COM_END
-+ || *comment_flags == ':')
-+ {
-+ break;
-+ }
-+ ++comment_flags;
-+ }
-+
-+ /* If we found a colon, it means that we are not processing a line
-+ * starting with an opening or a closing part of a three-part
-+ * comment. That's good, because we don't want to remove those as
-+ * this would be annoying.
-+ */
-+ if (*comment_flags == ':' || *comment_flags == NUL)
-+ line += lead_len;
-+
-+ return line;
-+ }
-+ #endif
-+
- /*
- * Join 'count' lines (minimal 2) at cursor position.
- * When "save_undo" is TRUE save lines for undo first.
-+ * Set "use_formatoptions" to FALSE when e.g. processing
-+ * backspace and comment leaders should not be removed.
- *
- * return FAIL for failure, OK otherwise
- */
- int
-! do_join(count, insert_space, save_undo, use_formatoptions)
- long count;
- int insert_space;
- int save_undo;
-+ int use_formatoptions UNUSED;
- {
- char_u *curr = NULL;
- char_u *curr_start = NULL;
-***************
-*** 4221,4226 ****
---- 4305,4317 ----
- linenr_T t;
- colnr_T col = 0;
- int ret = OK;
-+ #if defined(FEAT_COMMENTS) || defined(PROTO)
-+ int *comments;
-+ int remove_comments = (use_formatoptions == TRUE)
-+ && has_format_option(FO_REMOVE_COMS);
-+ int prev_was_comment;
-+ #endif
-+
-
- if (save_undo && u_save((linenr_T)(curwin->w_cursor.lnum - 1),
- (linenr_T)(curwin->w_cursor.lnum + count)) == FAIL)
-***************
-*** 4232,4237 ****
---- 4323,4339 ----
- spaces = lalloc_clear((long_u)count, TRUE);
- if (spaces == NULL)
- return FAIL;
-+ #if defined(FEAT_COMMENTS) || defined(PROTO)
-+ if (remove_comments)
-+ {
-+ comments = (int *)lalloc_clear((long_u)count * sizeof(int), TRUE);
-+ if (comments == NULL)
-+ {
-+ vim_free(spaces);
-+ return FAIL;
-+ }
-+ }
-+ #endif
-
- /*
- * Don't move anything, just compute the final line length
-***************
-*** 4240,4245 ****
---- 4342,4366 ----
- for (t = 0; t < count; ++t)
- {
- curr = curr_start = ml_get((linenr_T)(curwin->w_cursor.lnum + t));
-+ #if defined(FEAT_COMMENTS) || defined(PROTO)
-+ if (remove_comments)
-+ {
-+ /* We don't want to remove the comment leader if the
-+ * previous line is not a comment. */
-+ if (t > 0 && prev_was_comment)
-+ {
-+
-+ char_u *new_curr = skip_comment(curr, TRUE, insert_space,
-+ &prev_was_comment);
-+ comments[t] = new_curr - curr;
-+ curr = new_curr;
-+ }
-+ else
-+ curr = skip_comment(curr, FALSE, insert_space,
-+ &prev_was_comment);
-+ }
-+ #endif
-+
- if (insert_space && t > 0)
- {
- curr = skipwhite(curr);
-***************
-*** 4327,4332 ****
---- 4448,4457 ----
- if (t == 0)
- break;
- curr = curr_start = ml_get((linenr_T)(curwin->w_cursor.lnum + t - 1));
-+ #if defined(FEAT_COMMENTS) || defined(PROTO)
-+ if (remove_comments)
-+ curr += comments[t - 1];
-+ #endif
- if (insert_space && t > 1)
- curr = skipwhite(curr);
- currsize = (int)STRLEN(curr);
-***************
-*** 4364,4369 ****
---- 4489,4498 ----
-
- theend:
- vim_free(spaces);
-+ #if defined(FEAT_COMMENTS) || defined(PROTO)
-+ if (remove_comments)
-+ vim_free(comments);
-+ #endif
- return ret;
- }
-
-***************
-*** 4788,4794 ****
- (long)-next_leader_len);
- #endif
- curwin->w_cursor.lnum--;
-! if (do_join(2, TRUE, FALSE) == FAIL)
- {
- beep_flush();
- break;
---- 4917,4923 ----
- (long)-next_leader_len);
- #endif
- curwin->w_cursor.lnum--;
-! if (do_join(2, TRUE, FALSE, FALSE) == FAIL)
- {
- beep_flush();
- break;
-***************
-*** 4844,4850 ****
-
- ptr = ml_get(lnum);
- if (do_comments)
-! *leader_len = get_leader_len(ptr, leader_flags, FALSE);
- else
- *leader_len = 0;
-
---- 4973,4979 ----
-
- ptr = ml_get(lnum);
- if (do_comments)
-! *leader_len = get_leader_len(ptr, leader_flags, FALSE, TRUE);
- else
- *leader_len = 0;
-
-*** ../vim-7.3.540/src/option.h 2012-02-20 22:18:22.000000000 +0100
---- src/option.h 2012-06-06 13:00:29.000000000 +0200
-***************
-*** 104,113 ****
- #define FO_ONE_LETTER '1'
- #define FO_WHITE_PAR 'w' /* trailing white space continues paragr. */
- #define FO_AUTO 'a' /* automatic formatting */
-
- #define DFLT_FO_VI "vt"
- #define DFLT_FO_VIM "tcq"
-! #define FO_ALL "tcroq2vlb1mMBn,aw" /* for do_set() */
-
- /* characters for the p_cpo option: */
- #define CPO_ALTREAD 'a' /* ":read" sets alternate file name */
---- 104,114 ----
- #define FO_ONE_LETTER '1'
- #define FO_WHITE_PAR 'w' /* trailing white space continues paragr. */
- #define FO_AUTO 'a' /* automatic formatting */
-+ #define FO_REMOVE_COMS 'j' /* remove comment leaders when joining lines */
-
- #define DFLT_FO_VI "vt"
- #define DFLT_FO_VIM "tcq"
-! #define FO_ALL "tcroq2vlb1mMBn,awj" /* for do_set() */
-
- /* characters for the p_cpo option: */
- #define CPO_ALTREAD 'a' /* ":read" sets alternate file name */
-*** ../vim-7.3.540/src/proto/misc1.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/misc1.pro 2012-06-06 13:00:29.000000000 +0200
-***************
-*** 6,12 ****
- int set_indent __ARGS((int size, int flags));
- int get_number_indent __ARGS((linenr_T lnum));
- int open_line __ARGS((int dir, int flags, int old_indent));
-! int get_leader_len __ARGS((char_u *line, char_u **flags, int backward));
- int plines __ARGS((linenr_T lnum));
- int plines_win __ARGS((win_T *wp, linenr_T lnum, int winheight));
- int plines_nofill __ARGS((linenr_T lnum));
---- 6,13 ----
- int set_indent __ARGS((int size, int flags));
- int get_number_indent __ARGS((linenr_T lnum));
- int open_line __ARGS((int dir, int flags, int old_indent));
-! int get_leader_len __ARGS((char_u *line, char_u **flags, int backward, int do_skip_space));
-! int get_last_leader_offset __ARGS((char_u *line, char_u **flags));
- int plines __ARGS((linenr_T lnum));
- int plines_win __ARGS((win_T *wp, linenr_T lnum, int winheight));
- int plines_nofill __ARGS((linenr_T lnum));
-*** ../vim-7.3.540/src/proto/ops.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/ops.pro 2012-06-06 13:00:29.000000000 +0200
-***************
-*** 36,42 ****
- int preprocs_left __ARGS((void));
- int get_register_name __ARGS((int num));
- void ex_display __ARGS((exarg_T *eap));
-! int do_join __ARGS((long count, int insert_space, int save_undo));
- void op_format __ARGS((oparg_T *oap, int keep_cursor));
- void op_formatexpr __ARGS((oparg_T *oap));
- int fex_format __ARGS((linenr_T lnum, long count, int c));
---- 36,42 ----
- int preprocs_left __ARGS((void));
- int get_register_name __ARGS((int num));
- void ex_display __ARGS((exarg_T *eap));
-! int do_join __ARGS((long count, int insert_space, int save_undo, int use_formatoptions));
- void op_format __ARGS((oparg_T *oap, int keep_cursor));
- void op_formatexpr __ARGS((oparg_T *oap));
- int fex_format __ARGS((linenr_T lnum, long count, int c));
-*** ../vim-7.3.540/src/search.c 2012-02-04 23:34:57.000000000 +0100
---- src/search.c 2012-06-06 13:00:29.000000000 +0200
-***************
-*** 1548,1554 ****
- int len;
- int stop = TRUE;
- #ifdef FEAT_MBYTE
-! static char_u bytes[MB_MAXBYTES];
- static int bytelen = 1; /* >1 for multi-byte char */
- #endif
-
---- 1548,1554 ----
- int len;
- int stop = TRUE;
- #ifdef FEAT_MBYTE
-! static char_u bytes[MB_MAXBYTES + 1];
- static int bytelen = 1; /* >1 for multi-byte char */
- #endif
-
-***************
-*** 4901,4907 ****
- #ifdef FEAT_COMMENTS
- if ((*line != '#' ||
- STRNCMP(skipwhite(line + 1), "define", 6) != 0)
-! && get_leader_len(line, NULL, FALSE))
- matched = FALSE;
-
- /*
---- 4901,4907 ----
- #ifdef FEAT_COMMENTS
- if ((*line != '#' ||
- STRNCMP(skipwhite(line + 1), "define", 6) != 0)
-! && get_leader_len(line, NULL, FALSE, TRUE))
- matched = FALSE;
-
- /*
-*** ../vim-7.3.540/src/testdir/test29.in 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test29.in 2012-06-06 15:44:38.000000000 +0200
-***************
-*** 4,19 ****
- and with 'cpoptions' flag 'j' set or not
-
- STARTTEST
- :set nocompatible viminfo+=nviminfo
- :set nojoinspaces
- :set cpoptions-=j
- /firstline/
-! j"tdGpJjJjJjJjJjJjJjJjJjJjJjJjJjJj05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions+=j
- j05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions-=j joinspaces
- j"tpJjJjJjJjJjJjJjJjJjJjJjJjJjJj05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions+=j
- j05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions-=j nojoinspaces compatible
-! j"tpJjJjJjJjJjJjJjJjJjJjJjJjJjJj4Jy3l$pjdG:?firstline?+1,$w! test.out
-! :qa!
- ENDTEST
-
- firstline
---- 4,20 ----
- and with 'cpoptions' flag 'j' set or not
-
- STARTTEST
-+ :so small.vim
- :set nocompatible viminfo+=nviminfo
- :set nojoinspaces
- :set cpoptions-=j
- /firstline/
-! j"td/^STARTTEST/-1
-! PJjJjJjJjJjJjJjJjJjJjJjJjJjJj05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions+=j
- j05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions-=j joinspaces
- j"tpJjJjJjJjJjJjJjJjJjJjJjJjJjJj05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions+=j
- j05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions-=j nojoinspaces compatible
-! j"tpJjJjJjJjJjJjJjJjJjJjJjJjJjJj4Jy3l$pjd/STARTTEST/-2
- ENDTEST
-
- firstline
-***************
-*** 54,56 ****
---- 55,181 ----
- hjkl iop!
- ert
-
-+ STARTTEST
-+ /^{/+1
-+ :set comments=s1:/*,mb:*,ex:*/,://
-+ :set nojoinspaces fo=j
-+ :set backspace=eol,start
-+ :.,+3join
-+ j4J
-+ :.,+2join
-+ j3J
-+ :.,+2join
-+ j3J
-+ :.,+2join
-+ jj3J
-+ ENDTEST
-+
-+ {
-+
-+ /*
-+ * Make sure the previous comment leader is not removed.
-+ */
-+
-+ /*
-+ * Make sure the previous comment leader is not removed.
-+ */
-+
-+ // Should the next comment leader be left alone?
-+ // Yes.
-+
-+ // Should the next comment leader be left alone?
-+ // Yes.
-+
-+ /* Here the comment leader should be left intact. */
-+ // And so should this one.
-+
-+ /* Here the comment leader should be left intact. */
-+ // And so should this one.
-+
-+ if (condition) // Remove the next comment leader!
-+ // OK, I will.
-+ action();
-+
-+ if (condition) // Remove the next comment leader!
-+ // OK, I will.
-+ action();
-+ }
-+
-+ STARTTEST
-+ /^{/+1
-+ :set comments=s1:/*,mb:*,ex:*/,://
-+ :set comments+=s1:>#,mb:#,ex:#<,:<
-+ :set cpoptions-=j joinspaces fo=j
-+ :set backspace=eol,start
-+ :.,+3join
-+ j4J
-+ :.,+2join
-+ j3J
-+ :.,+2join
-+ j3J
-+ :.,+2join
-+ jj3J
-+ j:.,+2join
-+ jj3J
-+ j:.,+5join
-+ j6J
-+ oSome code! // Make sure backspacing does not remove this comment leader.0i
-+ ENDTEST
-+
-+ {
-+
-+ /*
-+ * Make sure the previous comment leader is not removed.
-+ */
-+
-+ /*
-+ * Make sure the previous comment leader is not removed.
-+ */
-+
-+ // Should the next comment leader be left alone?
-+ // Yes.
-+
-+ // Should the next comment leader be left alone?
-+ // Yes.
-+
-+ /* Here the comment leader should be left intact. */
-+ // And so should this one.
-+
-+ /* Here the comment leader should be left intact. */
-+ // And so should this one.
-+
-+ if (condition) // Remove the next comment leader!
-+ // OK, I will.
-+ action();
-+
-+ if (condition) // Remove the next comment leader!
-+ // OK, I will.
-+ action();
-+
-+ int i = 7 /* foo *// 3
-+ // comment
-+ ;
-+
-+ int i = 7 /* foo *// 3
-+ // comment
-+ ;
-+
-+ ># Note that the last character of the ending comment leader (left angle
-+ # bracket) is a comment leader itself. Make sure that this comment leader is
-+ # not removed from the next line #<
-+ < On this line a new comment is opened which spans 2 lines. This comment should
-+ < retain its comment leader.
-+
-+ ># Note that the last character of the ending comment leader (left angle
-+ # bracket) is a comment leader itself. Make sure that this comment leader is
-+ # not removed from the next line #<
-+ < On this line a new comment is opened which spans 2 lines. This comment should
-+ < retain its comment leader.
-+
-+ }
-+
-+ STARTTEST
-+ :g/^STARTTEST/.,/^ENDTEST/d
-+ :?firstline?+1,$w! test.out
-+ :qa!
-+ ENDTEST
-*** ../vim-7.3.540/src/testdir/test29.ok 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test29.ok 2012-06-06 13:00:29.000000000 +0200
-***************
-*** 47,49 ****
---- 47,86 ----
- asdfasdf asdf
- asdfasdf asdf
- zx cvn. as dfg? hjkl iop! ert a
-+
-+
-+ {
-+ /* Make sure the previous comment leader is not removed. */
-+ /* Make sure the previous comment leader is not removed. */
-+ // Should the next comment leader be left alone? Yes.
-+ // Should the next comment leader be left alone? Yes.
-+ /* Here the comment leader should be left intact. */ // And so should this one.
-+ /* Here the comment leader should be left intact. */ // And so should this one.
-+ if (condition) // Remove the next comment leader! OK, I will.
-+ action();
-+ if (condition) // Remove the next comment leader! OK, I will.
-+ action();
-+ }
-+
-+
-+ {
-+ /* Make sure the previous comment leader is not removed. */
-+ /* Make sure the previous comment leader is not removed. */
-+ // Should the next comment leader be left alone? Yes.
-+ // Should the next comment leader be left alone? Yes.
-+ /* Here the comment leader should be left intact. */ // And so should this one.
-+ /* Here the comment leader should be left intact. */ // And so should this one.
-+ if (condition) // Remove the next comment leader! OK, I will.
-+ action();
-+ if (condition) // Remove the next comment leader! OK, I will.
-+ action();
-+ int i = 7 /* foo *// 3 // comment
-+ ;
-+ int i = 7 /* foo *// 3 // comment
-+ ;
-+ ># Note that the last character of the ending comment leader (left angle bracket) is a comment leader itself. Make sure that this comment leader is not removed from the next line #< < On this line a new comment is opened which spans 2 lines. This comment should retain its comment leader.
-+ ># Note that the last character of the ending comment leader (left angle bracket) is a comment leader itself. Make sure that this comment leader is not removed from the next line #< < On this line a new comment is opened which spans 2 lines. This comment should retain its comment leader.
-+
-+ Some code!// Make sure backspacing does not remove this comment leader.
-+ }
-+
-*** ../vim-7.3.540/src/version.c 2012-06-06 12:06:10.000000000 +0200
---- src/version.c 2012-06-06 16:10:03.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 541,
- /**/
-
---
-I have a drinking problem -- I don't have a drink!
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.542
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.542 (after 7.3.506)
-Problem: Function is sometimes unused.
-Solution: Add #ifdef.
-Files: src/gui_gtk.c
-
-
-*** ../vim-7.3.541/src/gui_gtk.c 2012-04-25 17:10:12.000000000 +0200
---- src/gui_gtk.c 2012-06-06 15:25:12.000000000 +0200
-***************
-*** 90,100 ****
---- 90,102 ----
- static void entry_activate_cb(GtkWidget *widget, gpointer data);
- static void entry_changed_cb(GtkWidget *entry, GtkWidget *dialog);
- static void find_replace_cb(GtkWidget *widget, gpointer data);
-+ #if defined(FEAT_BROWSE) || defined(PROTO)
- static void recent_func_log_func(
- const gchar *log_domain,
- GLogLevelFlags log_level,
- const gchar *message,
- gpointer user_data);
-+ #endif
-
- #if defined(FEAT_TOOLBAR)
- /*
-***************
-*** 1896,1901 ****
---- 1898,1904 ----
- do_cmdline_cmd((char_u *)"emenu ToolBar.FindHelp");
- }
-
-+ #if defined(FEAT_BROWSE) || defined(PROTO)
- static void
- recent_func_log_func(const gchar *log_domain UNUSED,
- GLogLevelFlags log_level UNUSED,
-***************
-*** 1905,1908 ****
- /* We just want to suppress the warnings. */
- /* http://bugzilla.gnome.org/show_bug.cgi?id=664587 */
- }
-!
---- 1908,1911 ----
- /* We just want to suppress the warnings. */
- /* http://bugzilla.gnome.org/show_bug.cgi?id=664587 */
- }
-! #endif
-*** ../vim-7.3.541/src/version.c 2012-06-06 16:12:54.000000000 +0200
---- src/version.c 2012-06-06 16:14:17.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 542,
- /**/
-
---
-How To Keep A Healthy Level Of Insanity:
-1. At lunch time, sit in your parked car with sunglasses on and point
- a hair dryer at passing cars. See if they slow down.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.543
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.543
-Problem: The cursor is in the wrong line after using ":copen". (John
- Beckett)
-Solution: Invoke more drastic redraw method.
-Files: src/eval.c
-
-
-*** ../vim-7.3.542/src/eval.c 2012-06-01 15:20:49.000000000 +0200
---- src/eval.c 2012-06-06 16:28:11.000000000 +0200
-***************
-*** 18507,18515 ****
- curwin->w_skipcol = get_dict_number(dict, (char_u *)"skipcol");
-
- check_cursor();
-! changed_cline_bef_curs();
-! invalidate_botline();
-! redraw_later(VALID);
-
- if (curwin->w_topline == 0)
- curwin->w_topline = 1;
---- 18507,18513 ----
- curwin->w_skipcol = get_dict_number(dict, (char_u *)"skipcol");
-
- check_cursor();
-! changed_window_setting();
-
- if (curwin->w_topline == 0)
- curwin->w_topline = 1;
-*** ../vim-7.3.542/src/version.c 2012-06-06 16:14:36.000000000 +0200
---- src/version.c 2012-06-06 16:28:16.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 543,
- /**/
-
---
-How To Keep A Healthy Level Of Insanity:
-2. Page yourself over the intercom. Don't disguise your voice.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.544
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.544
-Problem: There is no good way to close a quickfix window when closing the
- last ordinary window.
-Solution: Add the QuitPre autocommand.
-Files: src/ex_docmd.c, src/fileio.c, src/vim.h
-
-
-*** ../vim-7.3.543/src/ex_docmd.c 2012-06-06 16:12:54.000000000 +0200
---- src/ex_docmd.c 2012-06-06 17:58:41.000000000 +0200
-***************
-*** 6458,6463 ****
---- 6458,6464 ----
- return;
- }
- #ifdef FEAT_AUTOCMD
-+ apply_autocmds(EVENT_QUITPRE, NULL, NULL, FALSE, curbuf);
- if (curbuf_locked())
- return;
- #endif
-*** ../vim-7.3.543/src/fileio.c 2012-04-30 17:04:47.000000000 +0200
---- src/fileio.c 2012-06-06 17:32:12.000000000 +0200
-***************
-*** 7678,7683 ****
---- 7678,7684 ----
- {"MenuPopup", EVENT_MENUPOPUP},
- {"QuickFixCmdPost", EVENT_QUICKFIXCMDPOST},
- {"QuickFixCmdPre", EVENT_QUICKFIXCMDPRE},
-+ {"QuitPre", EVENT_QUITPRE},
- {"RemoteReply", EVENT_REMOTEREPLY},
- {"SessionLoadPost", EVENT_SESSIONLOADPOST},
- {"ShellCmdPost", EVENT_SHELLCMDPOST},
-*** ../vim-7.3.543/src/vim.h 2012-06-01 15:20:49.000000000 +0200
---- src/vim.h 2012-06-06 17:30:01.000000000 +0200
-***************
-*** 1264,1271 ****
- EVENT_INSERTENTER, /* when entering Insert mode */
- EVENT_INSERTLEAVE, /* when leaving Insert mode */
- EVENT_MENUPOPUP, /* just before popup menu is displayed */
-! EVENT_QUICKFIXCMDPOST, /* after :make, :grep etc */
-! EVENT_QUICKFIXCMDPRE, /* before :make, :grep etc */
- EVENT_SESSIONLOADPOST, /* after loading a session file */
- EVENT_STDINREADPOST, /* after reading from stdin */
- EVENT_STDINREADPRE, /* before reading from stdin */
---- 1264,1272 ----
- EVENT_INSERTENTER, /* when entering Insert mode */
- EVENT_INSERTLEAVE, /* when leaving Insert mode */
- EVENT_MENUPOPUP, /* just before popup menu is displayed */
-! EVENT_QUICKFIXCMDPOST, /* after :make, :grep etc. */
-! EVENT_QUICKFIXCMDPRE, /* before :make, :grep etc. */
-! EVENT_QUITPRE, /* before :quit */
- EVENT_SESSIONLOADPOST, /* after loading a session file */
- EVENT_STDINREADPOST, /* after reading from stdin */
- EVENT_STDINREADPRE, /* before reading from stdin */
-*** ../vim-7.3.543/src/version.c 2012-06-06 16:29:06.000000000 +0200
---- src/version.c 2012-06-06 18:02:09.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 544,
- /**/
-
---
-How To Keep A Healthy Level Of Insanity:
-3. Every time someone asks you to do something, ask if they want fries
- with that.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.545
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.545
-Problem: When closing a window or buffer autocommands may close it too,
- causing problems for where the autocommand was invoked from.
-Solution: Add the w_closing and b_closing flags. When set disallow ":q" and
- ":close" to prevent recursive closing.
-Files: src/structs.h, src/buffer.c, src/ex_docmd.c, src/window.c
-
-
-*** ../vim-7.3.544/src/structs.h 2012-02-04 21:57:44.000000000 +0100
---- src/structs.h 2012-06-06 16:43:34.000000000 +0200
-***************
-*** 1201,1206 ****
---- 1201,1210 ----
- typedef struct qf_info_S qf_info_T;
- #endif
-
-+ /*
-+ * These are items normally related to a buffer. But when using ":ownsyntax"
-+ * a window may have its own instance.
-+ */
- typedef struct {
- #ifdef FEAT_SYN_HL
- hashtab_T b_keywtab; /* syntax keywords hash table */
-***************
-*** 1290,1295 ****
---- 1294,1303 ----
- int b_nwindows; /* nr of windows open on this buffer */
-
- int b_flags; /* various BF_ flags */
-+ #ifdef FEAT_AUTOCMD
-+ int b_closing; /* buffer is being closed, don't let
-+ autocommands close it too. */
-+ #endif
-
- /*
- * b_ffname has the full path of the file (NULL for no name).
-***************
-*** 1853,1858 ****
---- 1861,1870 ----
- win_T *w_prev; /* link to previous window */
- win_T *w_next; /* link to next window */
- #endif
-+ #ifdef FEAT_AUTOCMD
-+ int w_closing; /* window is being closed, don't let
-+ autocommands close it too. */
-+ #endif
-
- frame_T *w_frame; /* frame containing this window */
-
-*** ../vim-7.3.544/src/buffer.c 2012-03-16 14:32:10.000000000 +0100
---- src/buffer.c 2012-06-06 18:57:27.000000000 +0200
-***************
-*** 377,404 ****
- /* When the buffer is no longer in a window, trigger BufWinLeave */
- if (buf->b_nwindows == 1)
- {
- apply_autocmds(EVENT_BUFWINLEAVE, buf->b_fname, buf->b_fname,
- FALSE, buf);
-! /* Return if autocommands deleted the buffer or made it the only one. */
-! if (!buf_valid(buf) || (abort_if_last && one_window()))
- {
- EMSG(_(e_auabort));
- return;
- }
-
- /* When the buffer becomes hidden, but is not unloaded, trigger
- * BufHidden */
- if (!unload_buf)
- {
- apply_autocmds(EVENT_BUFHIDDEN, buf->b_fname, buf->b_fname,
- FALSE, buf);
-! /* Return if autocommands deleted the buffer or made it the only
-! * one. */
-! if (!buf_valid(buf) || (abort_if_last && one_window()))
-! {
-! EMSG(_(e_auabort));
-! return;
-! }
- }
- # ifdef FEAT_EVAL
- if (aborting()) /* autocmds may abort script processing */
---- 377,411 ----
- /* When the buffer is no longer in a window, trigger BufWinLeave */
- if (buf->b_nwindows == 1)
- {
-+ buf->b_closing = TRUE;
- apply_autocmds(EVENT_BUFWINLEAVE, buf->b_fname, buf->b_fname,
- FALSE, buf);
-! if (!buf_valid(buf))
- {
-+ /* Autocommands deleted the buffer. */
-+ aucmd_abort:
- EMSG(_(e_auabort));
- return;
- }
-+ buf->b_closing = FALSE;
-+ if (abort_if_last && one_window())
-+ /* Autocommands made this the only window. */
-+ goto aucmd_abort;
-
- /* When the buffer becomes hidden, but is not unloaded, trigger
- * BufHidden */
- if (!unload_buf)
- {
-+ buf->b_closing = TRUE;
- apply_autocmds(EVENT_BUFHIDDEN, buf->b_fname, buf->b_fname,
- FALSE, buf);
-! if (!buf_valid(buf))
-! /* Autocommands deleted the buffer. */
-! goto aucmd_abort;
-! buf->b_closing = FALSE;
-! if (abort_if_last && one_window())
-! /* Autocommands made this the only window. */
-! goto aucmd_abort;
- }
- # ifdef FEAT_EVAL
- if (aborting()) /* autocmds may abort script processing */
-***************
-*** 552,557 ****
---- 559,565 ----
- #ifdef FEAT_AUTOCMD
- int is_curbuf = (buf == curbuf);
-
-+ buf->b_closing = TRUE;
- apply_autocmds(EVENT_BUFUNLOAD, buf->b_fname, buf->b_fname, FALSE, buf);
- if (!buf_valid(buf)) /* autocommands may delete the buffer */
- return;
-***************
-*** 568,573 ****
---- 576,582 ----
- if (!buf_valid(buf)) /* autocommands may delete the buffer */
- return;
- }
-+ buf->b_closing = FALSE;
- # ifdef FEAT_EVAL
- if (aborting()) /* autocmds may abort script processing */
- return;
-***************
-*** 1150,1155 ****
---- 1159,1167 ----
- * a window with this buffer.
- */
- while (buf == curbuf
-+ # ifdef FEAT_AUTOCMD
-+ && !(curwin->w_closing || curwin->w_buffer->b_closing)
-+ # endif
- && (firstwin != lastwin || first_tabpage->tp_next != NULL))
- win_close(curwin, FALSE);
- #endif
-***************
-*** 4750,4756 ****
- #ifdef FEAT_WINDOWS
- || (had_tab > 0 && wp != firstwin)
- #endif
-! ) && firstwin != lastwin)
- {
- win_close(wp, FALSE);
- #ifdef FEAT_AUTOCMD
---- 4762,4772 ----
- #ifdef FEAT_WINDOWS
- || (had_tab > 0 && wp != firstwin)
- #endif
-! ) && firstwin != lastwin
-! #ifdef FEAT_AUTOCMD
-! && !(wp->w_closing || wp->w_buffer->b_closing)
-! #endif
-! )
- {
- win_close(wp, FALSE);
- #ifdef FEAT_AUTOCMD
-*** ../vim-7.3.544/src/ex_docmd.c 2012-06-06 18:03:01.000000000 +0200
---- src/ex_docmd.c 2012-06-06 18:06:46.000000000 +0200
-***************
-*** 6459,6465 ****
- }
- #ifdef FEAT_AUTOCMD
- apply_autocmds(EVENT_QUITPRE, NULL, NULL, FALSE, curbuf);
-! if (curbuf_locked())
- return;
- #endif
-
---- 6459,6467 ----
- }
- #ifdef FEAT_AUTOCMD
- apply_autocmds(EVENT_QUITPRE, NULL, NULL, FALSE, curbuf);
-! /* Refuse to quick when locked or when the buffer in the last window is
-! * being closed (can only happen in autocommands). */
-! if (curbuf_locked() || (curbuf->b_nwindows == 1 && curbuf->b_closing))
- return;
- #endif
-
-*** ../vim-7.3.544/src/window.c 2012-05-25 12:38:57.000000000 +0200
---- src/window.c 2012-06-06 18:47:19.000000000 +0200
-***************
-*** 2034,2040 ****
-
- for (wp = firstwin; wp != NULL && lastwin != firstwin; )
- {
-! if (wp->w_buffer == buf && (!keep_curwin || wp != curwin))
- {
- win_close(wp, FALSE);
-
---- 2034,2044 ----
-
- for (wp = firstwin; wp != NULL && lastwin != firstwin; )
- {
-! if (wp->w_buffer == buf && (!keep_curwin || wp != curwin)
-! #ifdef FEAT_AUTOCMD
-! && !(wp->w_closing || wp->w_buffer->b_closing)
-! #endif
-! )
- {
- win_close(wp, FALSE);
-
-***************
-*** 2051,2057 ****
- nexttp = tp->tp_next;
- if (tp != curtab)
- for (wp = tp->tp_firstwin; wp != NULL; wp = wp->w_next)
-! if (wp->w_buffer == buf)
- {
- win_close_othertab(wp, FALSE, tp);
-
---- 2055,2065 ----
- nexttp = tp->tp_next;
- if (tp != curtab)
- for (wp = tp->tp_firstwin; wp != NULL; wp = wp->w_next)
-! if (wp->w_buffer == buf
-! #ifdef FEAT_AUTOCMD
-! && !(wp->w_closing || wp->w_buffer->b_closing)
-! #endif
-! )
- {
- win_close_othertab(wp, FALSE, tp);
-
-***************
-*** 2168,2173 ****
---- 2176,2183 ----
- }
-
- #ifdef FEAT_AUTOCMD
-+ if (win->w_closing || win->w_buffer->b_closing)
-+ return; /* window is already being closed */
- if (win == aucmd_win)
- {
- EMSG(_("E813: Cannot close autocmd window"));
-***************
-*** 2203,2219 ****
- wp = frame2win(win_altframe(win, NULL));
-
- /*
-! * Be careful: If autocommands delete the window, return now.
- */
- if (wp->w_buffer != curbuf)
- {
- other_buffer = TRUE;
- apply_autocmds(EVENT_BUFLEAVE, NULL, NULL, FALSE, curbuf);
-! if (!win_valid(win) || last_window())
- return;
- }
- apply_autocmds(EVENT_WINLEAVE, NULL, NULL, FALSE, curbuf);
-! if (!win_valid(win) || last_window())
- return;
- # ifdef FEAT_EVAL
- /* autocmds may abort script processing */
---- 2213,2238 ----
- wp = frame2win(win_altframe(win, NULL));
-
- /*
-! * Be careful: If autocommands delete the window or cause this window
-! * to be the last one left, return now.
- */
- if (wp->w_buffer != curbuf)
- {
- other_buffer = TRUE;
-+ win->w_closing = TRUE;
- apply_autocmds(EVENT_BUFLEAVE, NULL, NULL, FALSE, curbuf);
-! if (!win_valid(win))
-! return;
-! win->w_closing = FALSE;
-! if (last_window())
- return;
- }
-+ win->w_closing = TRUE;
- apply_autocmds(EVENT_WINLEAVE, NULL, NULL, FALSE, curbuf);
-! if (!win_valid(win))
-! return;
-! win->w_closing = FALSE;
-! if (last_window())
- return;
- # ifdef FEAT_EVAL
- /* autocmds may abort script processing */
-***************
-*** 2240,2246 ****
- * Close the link to the buffer.
- */
- if (win->w_buffer != NULL)
-! close_buffer(win, win->w_buffer, free_buf ? DOBUF_UNLOAD : 0, TRUE);
-
- /* Autocommands may have closed the window already, or closed the only
- * other window or moved to another tab page. */
---- 2259,2274 ----
- * Close the link to the buffer.
- */
- if (win->w_buffer != NULL)
-! {
-! #ifdef FEAT_AUTOCMD
-! win->w_closing = TRUE;
-! #endif
-! close_buffer(win, win->w_buffer, free_buf ? DOBUF_UNLOAD : 0, FALSE);
-! #ifdef FEAT_AUTOCMD
-! if (win_valid(win))
-! win->w_closing = FALSE;
-! #endif
-! }
-
- /* Autocommands may have closed the window already, or closed the only
- * other window or moved to another tab page. */
-***************
-*** 2346,2351 ****
---- 2374,2384 ----
- tabpage_T *ptp = NULL;
- int free_tp = FALSE;
-
-+ #ifdef FEAT_AUTOCMD
-+ if (win->w_closing || win->w_buffer->b_closing)
-+ return; /* window is already being closed */
-+ #endif
-+
- /* Close the link to the buffer. */
- close_buffer(win, win->w_buffer, free_buf ? DOBUF_UNLOAD : 0, FALSE);
-
-*** ../vim-7.3.544/src/version.c 2012-06-06 18:03:01.000000000 +0200
---- src/version.c 2012-06-06 18:53:06.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 545,
- /**/
-
---
-How To Keep A Healthy Level Of Insanity:
-4. Put your garbage can on your desk and label it "in".
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.546
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.546
-Problem: Bogus line break.
-Solution: Remove the line break.
-Files: src/screen.c
-
-
-*** ../vim-7.3.545/src/screen.c 2012-06-01 15:20:49.000000000 +0200
---- src/screen.c 2012-06-01 16:31:30.000000000 +0200
-***************
-*** 3228,3235 ****
- /* no bad word found at line start, don't check until end of a
- * word */
- spell_hlf = HLF_COUNT;
-! word_end = (int)(spell_to_word_end(ptr, wp)
-! - line + 1);
- }
- else
- {
---- 3228,3234 ----
- /* no bad word found at line start, don't check until end of a
- * word */
- spell_hlf = HLF_COUNT;
-! word_end = (int)(spell_to_word_end(ptr, wp) - line + 1);
- }
- else
- {
-*** ../vim-7.3.545/src/version.c 2012-06-06 19:02:40.000000000 +0200
---- src/version.c 2012-06-06 19:05:11.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 546,
- /**/
-
---
-How To Keep A Healthy Level Of Insanity:
-5. Put decaf in the coffee maker for 3 weeks. Once everyone has gotten
- over their caffeine addictions, switch to espresso.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.547
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.547 (after 7.3.541)
-Problem: Compiler warning for uninitialized variable.
-Solution: Initialize it.
-Files: src/ops.c
-
-
-*** ../vim-7.3.546/src/ops.c 2012-06-06 16:12:54.000000000 +0200
---- src/ops.c 2012-06-06 23:06:45.000000000 +0200
-***************
-*** 4306,4312 ****
- colnr_T col = 0;
- int ret = OK;
- #if defined(FEAT_COMMENTS) || defined(PROTO)
-! int *comments;
- int remove_comments = (use_formatoptions == TRUE)
- && has_format_option(FO_REMOVE_COMS);
- int prev_was_comment;
---- 4306,4312 ----
- colnr_T col = 0;
- int ret = OK;
- #if defined(FEAT_COMMENTS) || defined(PROTO)
-! int *comments = NULL;
- int remove_comments = (use_formatoptions == TRUE)
- && has_format_option(FO_REMOVE_COMS);
- int prev_was_comment;
-*** ../vim-7.3.546/src/version.c 2012-06-06 19:05:45.000000000 +0200
---- src/version.c 2012-06-06 23:07:26.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 547,
- /**/
-
---
-How To Keep A Healthy Level Of Insanity:
-9. As often as possible, skip rather than walk.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.548
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.548
-Problem: Compiler warning on 64 bit Windows.
-Solution: Add type cast. (Mike Williams)
-Files: src/ops.c
-
-
-*** ../vim-7.3.547/src/ops.c 2012-06-06 23:08:33.000000000 +0200
---- src/ops.c 2012-06-07 21:07:57.000000000 +0200
-***************
-*** 4352,4358 ****
-
- char_u *new_curr = skip_comment(curr, TRUE, insert_space,
- &prev_was_comment);
-! comments[t] = new_curr - curr;
- curr = new_curr;
- }
- else
---- 4352,4358 ----
-
- char_u *new_curr = skip_comment(curr, TRUE, insert_space,
- &prev_was_comment);
-! comments[t] = (int)(new_curr - curr);
- curr = new_curr;
- }
- else
-*** ../vim-7.3.547/src/version.c 2012-06-06 23:08:33.000000000 +0200
---- src/version.c 2012-06-07 21:08:35.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 548,
- /**/
-
---
-How To Keep A Healthy Level Of Insanity:
-17. When the money comes out the ATM, scream "I won!, I won! 3rd
- time this week!!!!!"
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.549
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.549
-Problem: In 'cinoptions' "0s" is interpreted as one shiftwidth. (David
- Pineau)
-Solution: Use the zero as zero. (Lech Lorens)
-Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
-
-
-*** ../vim-7.3.548/src/misc1.c 2012-06-06 16:12:54.000000000 +0200
---- src/misc1.c 2012-06-13 13:17:11.000000000 +0200
-***************
-*** 6635,6640 ****
---- 6635,6641 ----
- int whilelevel;
- linenr_T lnum;
- char_u *options;
-+ char_u *digits;
- int fraction = 0; /* init for GCC */
- int divider;
- int n;
-***************
-*** 6650,6655 ****
---- 6651,6657 ----
- l = options++;
- if (*options == '-')
- ++options;
-+ digits = options; /* remember where the digits start */
- n = getdigits(&options);
- divider = 0;
- if (*options == '.') /* ".5s" means a fraction */
-***************
-*** 6666,6672 ****
- }
- if (*options == 's') /* "2s" means two times 'shiftwidth' */
- {
-! if (n == 0 && fraction == 0)
- n = curbuf->b_p_sw; /* just "s" is one 'shiftwidth' */
- else
- {
---- 6668,6674 ----
- }
- if (*options == 's') /* "2s" means two times 'shiftwidth' */
- {
-! if (options == digits)
- n = curbuf->b_p_sw; /* just "s" is one 'shiftwidth' */
- else
- {
-*** ../vim-7.3.548/src/testdir/test3.in 2012-04-05 17:17:38.000000000 +0200
---- src/testdir/test3.in 2012-06-13 13:17:31.000000000 +0200
-***************
-*** 977,982 ****
---- 977,1000 ----
-
- STARTTEST
- :set cin
-+ :set cino=es,n0s
-+ /main
-+ =][
-+ ENDTEST
-+
-+ main(void)
-+ {
-+ /* Make sure that cino=X0s is not parsed like cino=Xs. */
-+ if (cond)
-+ foo();
-+ else
-+ {
-+ bar();
-+ }
-+ }
-+
-+ STARTTEST
-+ :set cin
- :set cino=
- ]]=][
- ENDTEST
-*** ../vim-7.3.548/src/testdir/test3.ok 2012-04-05 17:17:38.000000000 +0200
---- src/testdir/test3.ok 2012-06-13 13:17:31.000000000 +0200
-***************
-*** 940,945 ****
---- 940,957 ----
- }
-
-
-+ main(void)
-+ {
-+ /* Make sure that cino=X0s is not parsed like cino=Xs. */
-+ if (cond)
-+ foo();
-+ else
-+ {
-+ bar();
-+ }
-+ }
-+
-+
- {
- do
- {
-*** ../vim-7.3.548/src/version.c 2012-06-07 21:09:35.000000000 +0200
---- src/version.c 2012-06-13 13:37:18.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 549,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-29. Your phone bill comes to your doorstep in a box.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.550
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.550 (after 7.3.541)
-Problem: With "j" in 'formatoptions' a list leader is not removed. (Gary
- Johnson)
-Solution: Don't ignore the start of a three part comment. (Lech Lorens)
-Files: src/ops.c, src/testdir/test29.in, src/testdir/test29.ok
-
-
-*** ../vim-7.3.549/src/ops.c 2012-06-07 21:09:35.000000000 +0200
---- src/ops.c 2012-06-13 13:48:26.000000000 +0200
-***************
-*** 4250,4264 ****
- return line;
-
- /* Find:
-- * - COM_START,
- * - COM_END,
- * - colon,
- * whichever comes first.
- */
- while (*comment_flags)
- {
-! if (*comment_flags == COM_START
-! || *comment_flags == COM_END
- || *comment_flags == ':')
- {
- break;
---- 4250,4262 ----
- return line;
-
- /* Find:
- * - COM_END,
- * - colon,
- * whichever comes first.
- */
- while (*comment_flags)
- {
-! if (*comment_flags == COM_END
- || *comment_flags == ':')
- {
- break;
-***************
-*** 4267,4275 ****
- }
-
- /* If we found a colon, it means that we are not processing a line
-! * starting with an opening or a closing part of a three-part
-! * comment. That's good, because we don't want to remove those as
-! * this would be annoying.
- */
- if (*comment_flags == ':' || *comment_flags == NUL)
- line += lead_len;
---- 4265,4272 ----
- }
-
- /* If we found a colon, it means that we are not processing a line
-! * starting with a closing part of a three-part comment. That's good,
-! * because we don't want to remove those as this would be annoying.
- */
- if (*comment_flags == ':' || *comment_flags == NUL)
- line += lead_len;
-*** ../vim-7.3.549/src/testdir/test29.in 2012-06-06 16:12:54.000000000 +0200
---- src/testdir/test29.in 2012-06-13 13:48:26.000000000 +0200
-***************
-*** 103,114 ****
-
- STARTTEST
- /^{/+1
-! :set comments=s1:/*,mb:*,ex:*/,://
- :set comments+=s1:>#,mb:#,ex:#<,:<
- :set cpoptions-=j joinspaces fo=j
- :set backspace=eol,start
- :.,+3join
- j4J
- :.,+2join
- j3J
- :.,+2join
---- 103,117 ----
-
- STARTTEST
- /^{/+1
-! :set comments=sO:*\ -,mO:*\ \ ,exO:*/
-! :set comments+=s1:/*,mb:*,ex:*/,://
- :set comments+=s1:>#,mb:#,ex:#<,:<
- :set cpoptions-=j joinspaces fo=j
- :set backspace=eol,start
- :.,+3join
- j4J
-+ :.,+8join
-+ j9J
- :.,+2join
- j3J
- :.,+2join
-***************
-*** 132,137 ****
---- 135,158 ----
- * Make sure the previous comment leader is not removed.
- */
-
-+ /* List:
-+ * - item1
-+ * foo bar baz
-+ * foo bar baz
-+ * - item2
-+ * foo bar baz
-+ * foo bar baz
-+ */
-+
-+ /* List:
-+ * - item1
-+ * foo bar baz
-+ * foo bar baz
-+ * - item2
-+ * foo bar baz
-+ * foo bar baz
-+ */
-+
- // Should the next comment leader be left alone?
- // Yes.
-
-*** ../vim-7.3.549/src/testdir/test29.ok 2012-06-06 16:12:54.000000000 +0200
---- src/testdir/test29.ok 2012-06-13 13:48:26.000000000 +0200
-***************
-*** 66,71 ****
---- 66,73 ----
- {
- /* Make sure the previous comment leader is not removed. */
- /* Make sure the previous comment leader is not removed. */
-+ /* List: item1 foo bar baz foo bar baz item2 foo bar baz foo bar baz */
-+ /* List: item1 foo bar baz foo bar baz item2 foo bar baz foo bar baz */
- // Should the next comment leader be left alone? Yes.
- // Should the next comment leader be left alone? Yes.
- /* Here the comment leader should be left intact. */ // And so should this one.
-*** ../vim-7.3.549/src/version.c 2012-06-13 13:40:45.000000000 +0200
---- src/version.c 2012-06-13 13:50:23.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 550,
- /**/
-
---
-If you put 7 of the most talented OSS developers in a room for a week
-and asked them to fix a bug in a spreadsheet program, in 1 week
-you'd have 2 new mail readers and a text-based web browser.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.551
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.551
-Problem: When using :tablose a TabEnter autocommand is triggered too early.
- (Karthick)
-Solution: Don't trigger *Enter autocommands before closing the tab.
- (Christian Brabandt)
-Files: src/buffer.c, src/eval.c, src/ex_cmds2.c, src/fileio.c,
- src/proto/window.pro, src/window.c
-
-
-*** ../vim-7.3.550/src/buffer.c 2012-06-06 19:02:40.000000000 +0200
---- src/buffer.c 2012-06-13 14:18:58.000000000 +0200
-***************
-*** 4470,4476 ****
- * When the ":tab" modifier was used do this for all tab pages.
- */
- if (had_tab > 0)
-! goto_tabpage_tp(first_tabpage);
- for (;;)
- {
- tpnext = curtab->tp_next;
---- 4470,4476 ----
- * When the ":tab" modifier was used do this for all tab pages.
- */
- if (had_tab > 0)
-! goto_tabpage_tp(first_tabpage, TRUE);
- for (;;)
- {
- tpnext = curtab->tp_next;
-***************
-*** 4582,4588 ****
- if (!valid_tabpage(tpnext))
- tpnext = first_tabpage; /* start all over...*/
- # endif
-! goto_tabpage_tp(tpnext);
- }
-
- /*
---- 4582,4588 ----
- if (!valid_tabpage(tpnext))
- tpnext = first_tabpage; /* start all over...*/
- # endif
-! goto_tabpage_tp(tpnext, TRUE);
- }
-
- /*
-***************
-*** 4686,4698 ****
- if (last_curtab != new_curtab)
- {
- if (valid_tabpage(last_curtab))
-! goto_tabpage_tp(last_curtab);
- if (win_valid(last_curwin))
- win_enter(last_curwin, FALSE);
- }
- /* to window with first arg */
- if (valid_tabpage(new_curtab))
-! goto_tabpage_tp(new_curtab);
- if (win_valid(new_curwin))
- win_enter(new_curwin, FALSE);
-
---- 4686,4698 ----
- if (last_curtab != new_curtab)
- {
- if (valid_tabpage(last_curtab))
-! goto_tabpage_tp(last_curtab, TRUE);
- if (win_valid(last_curwin))
- win_enter(last_curwin, FALSE);
- }
- /* to window with first arg */
- if (valid_tabpage(new_curtab))
-! goto_tabpage_tp(new_curtab, TRUE);
- if (win_valid(new_curwin))
- win_enter(new_curwin, FALSE);
-
-***************
-*** 4744,4750 ****
- */
- #ifdef FEAT_WINDOWS
- if (had_tab > 0)
-! goto_tabpage_tp(first_tabpage);
- for (;;)
- {
- #endif
---- 4744,4750 ----
- */
- #ifdef FEAT_WINDOWS
- if (had_tab > 0)
-! goto_tabpage_tp(first_tabpage, TRUE);
- for (;;)
- {
- #endif
-***************
-*** 4784,4790 ****
- /* Without the ":tab" modifier only do the current tab page. */
- if (had_tab == 0 || tpnext == NULL)
- break;
-! goto_tabpage_tp(tpnext);
- }
- #endif
-
---- 4784,4790 ----
- /* Without the ":tab" modifier only do the current tab page. */
- if (had_tab == 0 || tpnext == NULL)
- break;
-! goto_tabpage_tp(tpnext, TRUE);
- }
- #endif
-
-*** ../vim-7.3.550/src/eval.c 2012-06-06 16:29:06.000000000 +0200
---- src/eval.c 2012-06-13 14:18:58.000000000 +0200
-***************
-*** 16415,16421 ****
- if (tp != NULL && varname != NULL && varp != NULL)
- {
- save_curtab = curtab;
-! goto_tabpage_tp(tp);
-
- tabvarname = alloc((unsigned)STRLEN(varname) + 3);
- if (tabvarname != NULL)
---- 16415,16421 ----
- if (tp != NULL && varname != NULL && varp != NULL)
- {
- save_curtab = curtab;
-! goto_tabpage_tp(tp, TRUE);
-
- tabvarname = alloc((unsigned)STRLEN(varname) + 3);
- if (tabvarname != NULL)
-***************
-*** 16428,16434 ****
-
- /* Restore current tabpage */
- if (valid_tabpage(save_curtab))
-! goto_tabpage_tp(save_curtab);
- }
- }
-
---- 16428,16434 ----
-
- /* Restore current tabpage */
- if (valid_tabpage(save_curtab))
-! goto_tabpage_tp(save_curtab, TRUE);
- }
- }
-
-***************
-*** 16492,16498 ****
- /* set curwin to be our win, temporarily */
- save_curwin = curwin;
- save_curtab = curtab;
-! goto_tabpage_tp(tp);
- if (!win_valid(win))
- return;
- curwin = win;
---- 16492,16498 ----
- /* set curwin to be our win, temporarily */
- save_curwin = curwin;
- save_curtab = curtab;
-! goto_tabpage_tp(tp, TRUE);
- if (!win_valid(win))
- return;
- curwin = win;
-***************
-*** 16527,16533 ****
- /* Restore current tabpage and window, if still valid (autocomands can
- * make them invalid). */
- if (valid_tabpage(save_curtab))
-! goto_tabpage_tp(save_curtab);
- if (win_valid(save_curwin))
- {
- curwin = save_curwin;
---- 16527,16533 ----
- /* Restore current tabpage and window, if still valid (autocomands can
- * make them invalid). */
- if (valid_tabpage(save_curtab))
-! goto_tabpage_tp(save_curtab, TRUE);
- if (win_valid(save_curwin))
- {
- curwin = save_curwin;
-*** ../vim-7.3.550/src/ex_cmds2.c 2012-04-25 17:32:14.000000000 +0200
---- src/ex_cmds2.c 2012-06-13 14:18:58.000000000 +0200
-***************
-*** 2476,2482 ****
- /* go to window "tp" */
- if (!valid_tabpage(tp))
- break;
-! goto_tabpage_tp(tp);
- tp = tp->tp_next;
- }
- #endif
---- 2476,2482 ----
- /* go to window "tp" */
- if (!valid_tabpage(tp))
- break;
-! goto_tabpage_tp(tp, TRUE);
- tp = tp->tp_next;
- }
- #endif
-*** ../vim-7.3.550/src/fileio.c 2012-06-06 18:03:01.000000000 +0200
---- src/fileio.c 2012-06-13 14:18:58.000000000 +0200
-***************
-*** 8918,8924 ****
- if (wp == aucmd_win)
- {
- if (tp != curtab)
-! goto_tabpage_tp(tp);
- win_goto(aucmd_win);
- goto win_found;
- }
---- 8918,8924 ----
- if (wp == aucmd_win)
- {
- if (tp != curtab)
-! goto_tabpage_tp(tp, TRUE);
- win_goto(aucmd_win);
- goto win_found;
- }
-*** ../vim-7.3.550/src/proto/window.pro 2012-02-22 14:58:24.000000000 +0100
---- src/proto/window.pro 2012-06-13 14:23:06.000000000 +0200
-***************
-*** 27,33 ****
- tabpage_T *find_tabpage __ARGS((int n));
- int tabpage_index __ARGS((tabpage_T *ftp));
- void goto_tabpage __ARGS((int n));
-! void goto_tabpage_tp __ARGS((tabpage_T *tp));
- void goto_tabpage_win __ARGS((tabpage_T *tp, win_T *wp));
- void tabpage_move __ARGS((int nr));
- void win_goto __ARGS((win_T *wp));
---- 27,33 ----
- tabpage_T *find_tabpage __ARGS((int n));
- int tabpage_index __ARGS((tabpage_T *ftp));
- void goto_tabpage __ARGS((int n));
-! void goto_tabpage_tp __ARGS((tabpage_T *tp, int trigger_autocmds));
- void goto_tabpage_win __ARGS((tabpage_T *tp, win_T *wp));
- void tabpage_move __ARGS((int nr));
- void win_goto __ARGS((win_T *wp));
-*** ../vim-7.3.550/src/window.c 2012-06-06 19:02:40.000000000 +0200
---- src/window.c 2012-06-13 14:24:38.000000000 +0200
-***************
-*** 45,51 ****
- #if defined(FEAT_WINDOWS) || defined(PROTO)
- static tabpage_T *alloc_tabpage __ARGS((void));
- static int leave_tabpage __ARGS((buf_T *new_curbuf));
-! static void enter_tabpage __ARGS((tabpage_T *tp, buf_T *old_curbuf));
- static void frame_fix_height __ARGS((win_T *wp));
- static int frame_minheight __ARGS((frame_T *topfrp, win_T *next_curwin));
- static void win_enter_ext __ARGS((win_T *wp, int undo_sync, int no_curwin));
---- 45,51 ----
- #if defined(FEAT_WINDOWS) || defined(PROTO)
- static tabpage_T *alloc_tabpage __ARGS((void));
- static int leave_tabpage __ARGS((buf_T *new_curbuf));
-! static void enter_tabpage __ARGS((tabpage_T *tp, buf_T *old_curbuf, int trigger_autocmds));
- static void frame_fix_height __ARGS((win_T *wp));
- static int frame_minheight __ARGS((frame_T *topfrp, win_T *next_curwin));
- static void win_enter_ext __ARGS((win_T *wp, int undo_sync, int no_curwin));
-***************
-*** 355,365 ****
- && valid_tabpage(oldtab))
- {
- newtab = curtab;
-! goto_tabpage_tp(oldtab);
- if (curwin == wp)
- win_close(curwin, FALSE);
- if (valid_tabpage(newtab))
-! goto_tabpage_tp(newtab);
- }
- }
- break;
---- 355,365 ----
- && valid_tabpage(oldtab))
- {
- newtab = curtab;
-! goto_tabpage_tp(oldtab, TRUE);
- if (curwin == wp)
- win_close(curwin, FALSE);
- if (valid_tabpage(newtab))
-! goto_tabpage_tp(newtab, TRUE);
- }
- }
- break;
-***************
-*** 2130,2137 ****
- * page and then close the window and the tab page. This avoids that
- * curwin and curtab are invalid while we are freeing memory, they may
- * be used in GUI events.
- */
-! goto_tabpage_tp(alt_tabpage());
- redraw_tabline = TRUE;
-
- /* Safety check: Autocommands may have closed the window when jumping
---- 2130,2139 ----
- * page and then close the window and the tab page. This avoids that
- * curwin and curtab are invalid while we are freeing memory, they may
- * be used in GUI events.
-+ * Don't trigger autocommands yet, they may use wrong values, so do
-+ * that below.
- */
-! goto_tabpage_tp(alt_tabpage(), FALSE);
- redraw_tabline = TRUE;
-
- /* Safety check: Autocommands may have closed the window when jumping
-***************
-*** 2144,2149 ****
---- 2146,2157 ----
- if (h != tabline_height())
- shell_new_rows();
- }
-+ /* Since goto_tabpage_tp above did not trigger *Enter autocommands, do
-+ * that now. */
-+ #ifdef FEAT_AUTOCMD
-+ apply_autocmds(EVENT_TABENTER, NULL, NULL, FALSE, curbuf);
-+ apply_autocmds(EVENT_WINENTER, NULL, NULL, FALSE, curbuf);
-+ #endif
- return TRUE;
- }
- return FALSE;
-***************
-*** 3556,3562 ****
- }
-
- /* Failed, get back the previous Tab page */
-! enter_tabpage(curtab, curbuf);
- return FAIL;
- }
-
---- 3564,3570 ----
- }
-
- /* Failed, get back the previous Tab page */
-! enter_tabpage(curtab, curbuf, TRUE);
- return FAIL;
- }
-
-***************
-*** 3709,3719 ****
- /*
- * Start using tab page "tp".
- * Only to be used after leave_tabpage() or freeing the current tab page.
- */
- static void
-! enter_tabpage(tp, old_curbuf)
- tabpage_T *tp;
- buf_T *old_curbuf UNUSED;
- {
- int old_off = tp->tp_firstwin->w_winrow;
- win_T *next_prevwin = tp->tp_prevwin;
---- 3717,3729 ----
- /*
- * Start using tab page "tp".
- * Only to be used after leave_tabpage() or freeing the current tab page.
-+ * Only trigger *Enter autocommands when trigger_autocmds is TRUE.
- */
- static void
-! enter_tabpage(tp, old_curbuf, trigger_autocmds)
- tabpage_T *tp;
- buf_T *old_curbuf UNUSED;
-+ int trigger_autocmds;
- {
- int old_off = tp->tp_firstwin->w_winrow;
- win_T *next_prevwin = tp->tp_prevwin;
-***************
-*** 3761,3769 ****
- #ifdef FEAT_AUTOCMD
- /* Apply autocommands after updating the display, when 'rows' and
- * 'columns' have been set correctly. */
-! apply_autocmds(EVENT_TABENTER, NULL, NULL, FALSE, curbuf);
-! if (old_curbuf != curbuf)
-! apply_autocmds(EVENT_BUFENTER, NULL, NULL, FALSE, curbuf);
- #endif
-
- redraw_all_later(CLEAR);
---- 3771,3782 ----
- #ifdef FEAT_AUTOCMD
- /* Apply autocommands after updating the display, when 'rows' and
- * 'columns' have been set correctly. */
-! if (trigger_autocmds)
-! {
-! apply_autocmds(EVENT_TABENTER, NULL, NULL, FALSE, curbuf);
-! if (old_curbuf != curbuf)
-! apply_autocmds(EVENT_BUFENTER, NULL, NULL, FALSE, curbuf);
-! }
- #endif
-
- redraw_all_later(CLEAR);
-***************
-*** 3839,3845 ****
- }
- }
-
-! goto_tabpage_tp(tp);
-
- #ifdef FEAT_GUI_TABLINE
- if (gui_use_tabline())
---- 3852,3858 ----
- }
- }
-
-! goto_tabpage_tp(tp, TRUE);
-
- #ifdef FEAT_GUI_TABLINE
- if (gui_use_tabline())
-***************
-*** 3849,3859 ****
-
- /*
- * Go to tabpage "tp".
- * Note: doesn't update the GUI tab.
- */
- void
-! goto_tabpage_tp(tp)
- tabpage_T *tp;
- {
- /* Don't repeat a message in another tab page. */
- set_keep_msg(NULL, 0);
---- 3862,3874 ----
-
- /*
- * Go to tabpage "tp".
-+ * Only trigger *Enter autocommands when trigger_autocmds is TRUE.
- * Note: doesn't update the GUI tab.
- */
- void
-! goto_tabpage_tp(tp, trigger_autocmds)
- tabpage_T *tp;
-+ int trigger_autocmds;
- {
- /* Don't repeat a message in another tab page. */
- set_keep_msg(NULL, 0);
-***************
-*** 3861,3869 ****
- if (tp != curtab && leave_tabpage(tp->tp_curwin->w_buffer) == OK)
- {
- if (valid_tabpage(tp))
-! enter_tabpage(tp, curbuf);
- else
-! enter_tabpage(curtab, curbuf);
- }
- }
-
---- 3876,3884 ----
- if (tp != curtab && leave_tabpage(tp->tp_curwin->w_buffer) == OK)
- {
- if (valid_tabpage(tp))
-! enter_tabpage(tp, curbuf, trigger_autocmds);
- else
-! enter_tabpage(curtab, curbuf, trigger_autocmds);
- }
- }
-
-***************
-*** 3876,3882 ****
- tabpage_T *tp;
- win_T *wp;
- {
-! goto_tabpage_tp(tp);
- if (curtab == tp && win_valid(wp))
- {
- win_enter(wp, TRUE);
---- 3891,3897 ----
- tabpage_T *tp;
- win_T *wp;
- {
-! goto_tabpage_tp(tp, TRUE);
- if (curtab == tp && win_valid(wp))
- {
- win_enter(wp, TRUE);
-*** ../vim-7.3.550/src/version.c 2012-06-13 14:01:36.000000000 +0200
---- src/version.c 2012-06-13 14:28:00.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 551,
- /**/
-
---
-Give a man a computer program and you give him a headache,
-but teach him to program computers and you give him the power
-to create headaches for others for the rest of his life...
- R. B. Forest
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.552
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.552
-Problem: Formatting inside comments does not use the "2" flag in
- 'formatoptions'.
-Solution: Support the "2" flag. (Tor Perkins)
-Files: src/vim.h, src/ops.c, src/edit.c, src/misc1.c,
- src/testdir/test68.in, src/testdir/test68.ok
-
-
-*** ../vim-7.3.551/src/vim.h 2012-06-06 18:03:01.000000000 +0200
---- src/vim.h 2012-06-13 16:07:27.000000000 +0200
-***************
-*** 1072,1083 ****
---- 1072,1085 ----
- #define INSCHAR_DO_COM 2 /* format comments */
- #define INSCHAR_CTRLV 4 /* char typed just after CTRL-V */
- #define INSCHAR_NO_FEX 8 /* don't use 'formatexpr' */
-+ #define INSCHAR_COM_LIST 16 /* format comments with list/2nd line indent */
-
- /* flags for open_line() */
- #define OPENLINE_DELSPACES 1 /* delete spaces after cursor */
- #define OPENLINE_DO_COM 2 /* format comments */
- #define OPENLINE_KEEPTRAIL 4 /* keep trailing spaces */
- #define OPENLINE_MARKFIX 8 /* fix mark positions */
-+ #define OPENLINE_COM_LIST 16 /* format comments with list/2nd line indent */
-
- /*
- * There are four history tables:
-*** ../vim-7.3.551/src/ops.c 2012-06-13 14:01:36.000000000 +0200
---- src/ops.c 2012-06-13 16:53:44.000000000 +0200
-***************
-*** 1727,1734 ****
- * and the delete is within one line. */
- if ((
- #ifdef FEAT_CLIPBOARD
-! ((clip_unnamed & CLIP_UNNAMED) && oap->regname == '*') ||
-! ((clip_unnamed & CLIP_UNNAMED_PLUS) && oap->regname == '+') ||
- #endif
- oap->regname == 0) && oap->motion_type != MLINE
- && oap->line_count == 1)
---- 1727,1734 ----
- * and the delete is within one line. */
- if ((
- #ifdef FEAT_CLIPBOARD
-! ((clip_unnamed & CLIP_UNNAMED) && oap->regname == '*') ||
-! ((clip_unnamed & CLIP_UNNAMED_PLUS) && oap->regname == '+') ||
- #endif
- oap->regname == 0) && oap->motion_type != MLINE
- && oap->line_count == 1)
-***************
-*** 4208,4217 ****
- * "is_comment".
- * line - line to be processed,
- * process - if FALSE, will only check whether the line ends with an unclosed
-! * comment,
- * include_space - whether to also skip space following the comment leader,
- * is_comment - will indicate whether the current line ends with an unclosed
-! * comment.
- */
- static char_u *
- skip_comment(line, process, include_space, is_comment)
---- 4208,4217 ----
- * "is_comment".
- * line - line to be processed,
- * process - if FALSE, will only check whether the line ends with an unclosed
-! * comment,
- * include_space - whether to also skip space following the comment leader,
- * is_comment - will indicate whether the current line ends with an unclosed
-! * comment.
- */
- static char_u *
- skip_comment(line, process, include_space, is_comment)
-***************
-*** 4723,4731 ****
- char_u *leader_flags = NULL; /* flags for leader of current line */
- char_u *next_leader_flags; /* flags for leader of next line */
- int do_comments; /* format comments */
- #endif
- int advance = TRUE;
-! int second_indent = -1;
- int do_second_indent;
- int do_number_indent;
- int do_trail_white;
---- 4723,4733 ----
- char_u *leader_flags = NULL; /* flags for leader of current line */
- char_u *next_leader_flags; /* flags for leader of next line */
- int do_comments; /* format comments */
-+ int do_comments_list = 0; /* format comments with 'n' or '2' */
- #endif
- int advance = TRUE;
-! int second_indent = -1; /* indent for second line (comment
-! * aware) */
- int do_second_indent;
- int do_number_indent;
- int do_trail_white;
-***************
-*** 4828,4845 ****
- if (first_par_line
- && (do_second_indent || do_number_indent)
- && prev_is_end_par
-! && curwin->w_cursor.lnum < curbuf->b_ml.ml_line_count
- #ifdef FEAT_COMMENTS
-! && leader_len == 0
-! && next_leader_len == 0
- #endif
-! )
-! {
-! if (do_second_indent
-! && !lineempty(curwin->w_cursor.lnum + 1))
-! second_indent = get_indent_lnum(curwin->w_cursor.lnum + 1);
- else if (do_number_indent)
-! second_indent = get_number_indent(curwin->w_cursor.lnum);
- }
-
- /*
---- 4830,4875 ----
- if (first_par_line
- && (do_second_indent || do_number_indent)
- && prev_is_end_par
-! && curwin->w_cursor.lnum < curbuf->b_ml.ml_line_count)
-! {
-! if (do_second_indent && !lineempty(curwin->w_cursor.lnum + 1))
-! {
- #ifdef FEAT_COMMENTS
-! if (leader_len == 0 && next_leader_len == 0)
-! {
-! /* no comment found */
- #endif
-! second_indent =
-! get_indent_lnum(curwin->w_cursor.lnum + 1);
-! #ifdef FEAT_COMMENTS
-! }
-! else
-! {
-! second_indent = next_leader_len;
-! do_comments_list = 1;
-! }
-! #endif
-! }
- else if (do_number_indent)
-! {
-! #ifdef FEAT_COMMENTS
-! if (leader_len == 0 && next_leader_len == 0)
-! {
-! /* no comment found */
-! #endif
-! second_indent =
-! get_number_indent(curwin->w_cursor.lnum);
-! #ifdef FEAT_COMMENTS
-! }
-! else
-! {
-! /* get_number_indent() is now "comment aware"... */
-! second_indent =
-! get_number_indent(curwin->w_cursor.lnum);
-! do_comments_list = 1;
-! }
-! #endif
-! }
- }
-
- /*
-***************
-*** 4878,4883 ****
---- 4908,4915 ----
- insertchar(NUL, INSCHAR_FORMAT
- #ifdef FEAT_COMMENTS
- + (do_comments ? INSCHAR_DO_COM : 0)
-+ + (do_comments && do_comments_list
-+ ? INSCHAR_COM_LIST : 0)
- #endif
- + (avoid_fex ? INSCHAR_NO_FEX : 0), second_indent);
- State = old_State;
-*** ../vim-7.3.551/src/edit.c 2012-06-06 16:12:54.000000000 +0200
---- src/edit.c 2012-06-13 16:54:10.000000000 +0200
-***************
-*** 1463,1469 ****
- * what check_abbr() expects. */
- (has_mbyte && c >= 0x100) ? (c + ABBR_OFF) :
- #endif
-! c) && c != Ctrl_RSB))
- {
- insert_special(c, FALSE, FALSE);
- #ifdef FEAT_RIGHTLEFT
---- 1463,1469 ----
- * what check_abbr() expects. */
- (has_mbyte && c >= 0x100) ? (c + ABBR_OFF) :
- #endif
-! c) && c != Ctrl_RSB))
- {
- insert_special(c, FALSE, FALSE);
- #ifdef FEAT_RIGHTLEFT
-***************
-*** 5769,5774 ****
---- 5769,5784 ----
- # define WHITECHAR(cc) vim_iswhite(cc)
- #endif
-
-+ /*
-+ * "flags": INSCHAR_FORMAT - force formatting
-+ * INSCHAR_CTRLV - char typed just after CTRL-V
-+ * INSCHAR_NO_FEX - don't use 'formatexpr'
-+ *
-+ * NOTE: passes the flags value straight through to internal_format() which,
-+ * beside INSCHAR_FORMAT (above), is also looking for these:
-+ * INSCHAR_DO_COM - format comments
-+ * INSCHAR_COM_LIST - format comments with num list or 2nd line indent
-+ */
- void
- insertchar(c, flags, second_indent)
- int c; /* character to insert or NUL */
-***************
-*** 6011,6016 ****
---- 6021,6029 ----
-
- /*
- * Format text at the current insert position.
-+ *
-+ * If the INSCHAR_COM_LIST flag is present, then the value of second_indent
-+ * will be the comment leader length sent to open_line().
- */
- static void
- internal_format(textwidth, second_indent, flags, format_only, c)
-***************
-*** 6289,6311 ****
- + (fo_white_par ? OPENLINE_KEEPTRAIL : 0)
- #ifdef FEAT_COMMENTS
- + (do_comments ? OPENLINE_DO_COM : 0)
- #endif
-! , old_indent);
-! old_indent = 0;
-
- replace_offset = 0;
- if (first_line)
- {
-! if (second_indent < 0 && has_format_option(FO_Q_NUMBER))
-! second_indent = get_number_indent(curwin->w_cursor.lnum -1);
-! if (second_indent >= 0)
- {
- #ifdef FEAT_VREPLACE
-! if (State & VREPLACE_FLAG)
-! change_indent(INDENT_SET, second_indent, FALSE, NUL, TRUE);
-! else
- #endif
-! (void)set_indent(second_indent, SIN_CHANGED);
- }
- first_line = FALSE;
- }
---- 6302,6337 ----
- + (fo_white_par ? OPENLINE_KEEPTRAIL : 0)
- #ifdef FEAT_COMMENTS
- + (do_comments ? OPENLINE_DO_COM : 0)
-+ + ((flags & INSCHAR_COM_LIST) ? OPENLINE_COM_LIST : 0)
- #endif
-! , ((flags & INSCHAR_COM_LIST) ? second_indent : old_indent));
-! if (!(flags & INSCHAR_COM_LIST))
-! old_indent = 0;
-
- replace_offset = 0;
- if (first_line)
- {
-! if (!(flags & INSCHAR_COM_LIST))
- {
-+ /*
-+ * This section is for numeric lists w/o comments. If comment
-+ * indents are needed with numeric lists (formatoptions=nq),
-+ * then the INSCHAR_COM_LIST flag will cause the corresponding
-+ * OPENLINE_COM_LIST flag to be passed through to open_line()
-+ * (as seen above)...
-+ */
-+ if (second_indent < 0 && has_format_option(FO_Q_NUMBER))
-+ second_indent = get_number_indent(curwin->w_cursor.lnum -1);
-+ if (second_indent >= 0)
-+ {
- #ifdef FEAT_VREPLACE
-! if (State & VREPLACE_FLAG)
-! change_indent(INDENT_SET, second_indent,
-! FALSE, NUL, TRUE);
-! else
- #endif
-! (void)set_indent(second_indent, SIN_CHANGED);
-! }
- }
- first_line = FALSE;
- }
-*** ../vim-7.3.551/src/misc1.c 2012-06-13 13:40:45.000000000 +0200
---- src/misc1.c 2012-06-13 16:54:59.000000000 +0200
-***************
-*** 423,449 ****
- {
- colnr_T col;
- pos_T pos;
-- regmmatch_T regmatch;
-
- if (lnum > curbuf->b_ml.ml_line_count)
- return -1;
- pos.lnum = 0;
-! regmatch.regprog = vim_regcomp(curbuf->b_p_flp, RE_MAGIC);
-! if (regmatch.regprog != NULL)
- {
-! regmatch.rmm_ic = FALSE;
-! regmatch.rmm_maxcol = 0;
-! if (vim_regexec_multi(&regmatch, curwin, curbuf, lnum,
-! (colnr_T)0, NULL))
- {
-! pos.lnum = regmatch.endpos[0].lnum + lnum;
-! pos.col = regmatch.endpos[0].col;
- #ifdef FEAT_VIRTUALEDIT
-! pos.coladd = 0;
- #endif
- }
- vim_free(regmatch.regprog);
- }
-
- if (pos.lnum == 0 || *ml_get_pos(&pos) == NUL)
- return -1;
---- 423,492 ----
- {
- colnr_T col;
- pos_T pos;
-
- if (lnum > curbuf->b_ml.ml_line_count)
- return -1;
- pos.lnum = 0;
-!
-! #ifdef FEAT_COMMENTS
-! if (has_format_option(FO_Q_COMS) && has_format_option(FO_Q_NUMBER))
- {
-! regmatch_T regmatch;
-! int lead_len; /* length of comment leader */
-!
-! lead_len = get_leader_len(ml_get(lnum), NULL, FALSE, TRUE);
-! regmatch.regprog = vim_regcomp(curbuf->b_p_flp, RE_MAGIC);
-! if (regmatch.regprog != NULL)
- {
-! regmatch.rm_ic = FALSE;
-!
-! /* vim_regexec() expects a pointer to a line. This lets us
-! * start matching for the flp beyond any comment leader... */
-! if (vim_regexec(&regmatch, ml_get(lnum) + lead_len, (colnr_T)0))
-! {
-! pos.lnum = lnum;
-! pos.col = *regmatch.endp - (ml_get(lnum) + lead_len);
-! pos.col += lead_len;
- #ifdef FEAT_VIRTUALEDIT
-! pos.coladd = 0;
- #endif
-+ }
- }
- vim_free(regmatch.regprog);
- }
-+ else
-+ {
-+ /*
-+ * What follows is the orig code that is not "comment aware"...
-+ *
-+ * I'm not sure if regmmatch_T (multi-match) is needed in this case.
-+ * It may be true that this section would work properly using the
-+ * regmatch_T code above, in which case, these two seperate sections
-+ * should be consolidated w/ FEAT_COMMENTS making lead_len > 0...
-+ */
-+ #endif
-+ regmmatch_T regmatch;
-+
-+ regmatch.regprog = vim_regcomp(curbuf->b_p_flp, RE_MAGIC);
-+
-+ if (regmatch.regprog != NULL)
-+ {
-+ regmatch.rmm_ic = FALSE;
-+ regmatch.rmm_maxcol = 0;
-+ if (vim_regexec_multi(&regmatch, curwin, curbuf,
-+ lnum, (colnr_T)0, NULL))
-+ {
-+ pos.lnum = regmatch.endpos[0].lnum + lnum;
-+ pos.col = regmatch.endpos[0].col;
-+ #ifdef FEAT_VIRTUALEDIT
-+ pos.coladd = 0;
-+ #endif
-+ }
-+ vim_free(regmatch.regprog);
-+ }
-+ #ifdef FEAT_COMMENTS
-+ }
-+ #endif
-
- if (pos.lnum == 0 || *ml_get_pos(&pos) == NUL)
- return -1;
-***************
-*** 502,515 ****
- * OPENLINE_DO_COM format comments
- * OPENLINE_KEEPTRAIL keep trailing spaces
- * OPENLINE_MARKFIX adjust mark positions after the line break
- *
- * Return TRUE for success, FALSE for failure
- */
- int
-! open_line(dir, flags, old_indent)
- int dir; /* FORWARD or BACKWARD */
- int flags;
-! int old_indent; /* indent for after ^^D in Insert mode */
- {
- char_u *saved_line; /* copy of the original line */
- char_u *next_line = NULL; /* copy of the next line */
---- 545,562 ----
- * OPENLINE_DO_COM format comments
- * OPENLINE_KEEPTRAIL keep trailing spaces
- * OPENLINE_MARKFIX adjust mark positions after the line break
-+ * OPENLINE_COM_LIST format comments with list or 2nd line indent
-+ *
-+ * "second_line_indent": indent for after ^^D in Insert mode or if flag
-+ * OPENLINE_COM_LIST
- *
- * Return TRUE for success, FALSE for failure
- */
- int
-! open_line(dir, flags, second_line_indent)
- int dir; /* FORWARD or BACKWARD */
- int flags;
-! int second_line_indent;
- {
- char_u *saved_line; /* copy of the original line */
- char_u *next_line = NULL; /* copy of the next line */
-***************
-*** 650,657 ****
- * count white space on current line
- */
- newindent = get_indent_str(saved_line, (int)curbuf->b_p_ts);
-! if (newindent == 0)
-! newindent = old_indent; /* for ^^D command in insert mode */
-
- #ifdef FEAT_SMARTINDENT
- /*
---- 697,704 ----
- * count white space on current line
- */
- newindent = get_indent_str(saved_line, (int)curbuf->b_p_ts);
-! if (newindent == 0 && !(flags & OPENLINE_COM_LIST))
-! newindent = second_line_indent; /* for ^^D command in insert mode */
-
- #ifdef FEAT_SMARTINDENT
- /*
-***************
-*** 1008,1015 ****
- if (lead_len)
- {
- /* allocate buffer (may concatenate p_exta later) */
-! leader = alloc(lead_len + lead_repl_len + extra_space +
-! extra_len + 1);
- allocated = leader; /* remember to free it later */
-
- if (leader == NULL)
---- 1055,1062 ----
- if (lead_len)
- {
- /* allocate buffer (may concatenate p_exta later) */
-! leader = alloc(lead_len + lead_repl_len + extra_space + extra_len
-! + (second_line_indent > 0 ? second_line_indent : 0));
- allocated = leader; /* remember to free it later */
-
- if (leader == NULL)
-***************
-*** 1304,1309 ****
---- 1351,1370 ----
- /* concatenate leader and p_extra, if there is a leader */
- if (lead_len)
- {
-+ if (flags & OPENLINE_COM_LIST && second_line_indent > 0)
-+ {
-+ int i;
-+ int padding = second_line_indent - (newindent + STRLEN(leader));
-+
-+ /* Here whitespace is inserted after the comment char.
-+ * Below, set_indent(newindent, SIN_INSERT) will insert the
-+ * whitespace needed before the comment char. */
-+ for (i = 0; i < padding; i++)
-+ {
-+ STRCAT(leader, " ");
-+ newcol++;
-+ }
-+ }
- STRCAT(leader, p_extra);
- p_extra = leader;
- did_ai = TRUE; /* So truncating blanks works with comments */
-***************
-*** 4966,4973 ****
- char_u *
- FullName_save(fname, force)
- char_u *fname;
-! int force; /* force expansion, even when it already looks
-! like a full path name */
- {
- char_u *buf;
- char_u *new_fname = NULL;
---- 5027,5034 ----
- char_u *
- FullName_save(fname, force)
- char_u *fname;
-! int force; /* force expansion, even when it already looks
-! * like a full path name */
- {
- char_u *buf;
- char_u *new_fname = NULL;
-*** ../vim-7.3.551/src/testdir/test68.in 2010-10-09 17:21:42.000000000 +0200
---- src/testdir/test68.in 2012-06-13 15:49:38.000000000 +0200
-***************
-*** 51,56 ****
---- 51,77 ----
- }
-
- STARTTEST
-+ /^{/+1
-+ :set tw=5 fo=qn comments=:#
-+ gwap
-+ ENDTEST
-+
-+ {
-+ # 1 a b
-+ }
-+
-+ STARTTEST
-+ /^{/+1
-+ :set tw=5 fo=q2 comments=:#
-+ gwap
-+ ENDTEST
-+
-+ {
-+ # x
-+ # a b
-+ }
-+
-+ STARTTEST
- /^{/+2
- :set tw& fo=a
- I^^
-*** ../vim-7.3.551/src/testdir/test68.ok 2010-10-09 17:21:42.000000000 +0200
---- src/testdir/test68.ok 2012-06-13 15:49:38.000000000 +0200
-***************
-*** 34,38 ****
---- 34,50 ----
- }
-
-
-+ {
-+ # 1 a
-+ # b
-+ }
-+
-+
-+ {
-+ # x a
-+ # b
-+ }
-+
-+
- { 1aa ^^2bb }
-
-*** ../vim-7.3.551/src/version.c 2012-06-13 14:28:16.000000000 +0200
---- src/version.c 2012-06-13 16:36:14.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 552,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-31. You code your homework in HTML and give your instructor the URL.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.553
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.553
-Problem: With double-width characters and 'listchars' containing "precedes"
- the text is displayed one cell off.
-Solution: Check for double-width character being overwritten by the
- "precedes" character. (Yasuhiro Matsumoto)
-Files: src/screen.c
-
-
-*** ../vim-7.3.552/src/screen.c 2012-06-06 19:05:45.000000000 +0200
---- src/screen.c 2012-06-13 17:55:10.000000000 +0200
-***************
-*** 89,94 ****
---- 89,97 ----
-
- #include "vim.h"
-
-+ #define MB_FILLER_CHAR '<' /* character used when a double-width character
-+ * doesn't fit. */
-+
- /*
- * The attributes that are actually active for writing to the screen.
- */
-***************
-*** 4016,4022 ****
- if (n_skip > 0 && mb_l > 1 && n_extra == 0)
- {
- n_extra = 1;
-! c_extra = '<';
- c = ' ';
- if (area_attr == 0 && search_attr == 0)
- {
---- 4019,4025 ----
- if (n_skip > 0 && mb_l > 1 && n_extra == 0)
- {
- n_extra = 1;
-! c_extra = MB_FILLER_CHAR;
- c = ' ';
- if (area_attr == 0 && search_attr == 0)
- {
-***************
-*** 4576,4581 ****
---- 4579,4593 ----
- c = lcs_prec;
- lcs_prec_todo = NUL;
- #ifdef FEAT_MBYTE
-+ if (has_mbyte && (*mb_char2cells)(mb_c) > 1)
-+ {
-+ /* Double-width character being overwritten by the "precedes"
-+ * character, need to fill up half the character. */
-+ c_extra = MB_FILLER_CHAR;
-+ n_extra = 1;
-+ n_attr = 2;
-+ extra_attr = hl_attr(HLF_AT);
-+ }
- mb_c = c;
- if (enc_utf8 && (*mb_char2len)(c) > 1)
- {
-*** ../vim-7.3.552/src/version.c 2012-06-13 17:28:51.000000000 +0200
---- src/version.c 2012-06-13 17:48:45.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 553,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-32. You don't know what sex three of your closest friends are, because they
- have neutral nicknames and you never bothered to ask.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.554
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.554 (after 7.3.551)
-Problem: Compiler warning for unused argument.
-Solution: Add UNUSED.
-Files: src/window.c
-
-
-*** ../vim-7.3.553/src/window.c 2012-06-13 14:28:16.000000000 +0200
---- src/window.c 2012-06-13 17:46:49.000000000 +0200
-***************
-*** 3723,3729 ****
- enter_tabpage(tp, old_curbuf, trigger_autocmds)
- tabpage_T *tp;
- buf_T *old_curbuf UNUSED;
-! int trigger_autocmds;
- {
- int old_off = tp->tp_firstwin->w_winrow;
- win_T *next_prevwin = tp->tp_prevwin;
---- 3723,3729 ----
- enter_tabpage(tp, old_curbuf, trigger_autocmds)
- tabpage_T *tp;
- buf_T *old_curbuf UNUSED;
-! int trigger_autocmds UNUSED;
- {
- int old_off = tp->tp_firstwin->w_winrow;
- win_T *next_prevwin = tp->tp_prevwin;
-*** ../vim-7.3.553/src/version.c 2012-06-13 18:06:32.000000000 +0200
---- src/version.c 2012-06-13 18:15:08.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 554,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-33. You name your children Eudora, Mozilla and Dotcom.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.555
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.555
-Problem: Building on IBM z/OS fails.
-Solution: Adjust configure. Use the QUOTESED value from config.mk instead of
- the hard coded one in Makefile. (Stephen Bovy)
-Files: src/configure.in, src/auto/configure, src/Makefile
-
-
-*** ../vim-7.3.554/src/configure.in 2012-02-05 22:51:27.000000000 +0100
---- src/configure.in 2012-06-13 18:52:11.000000000 +0200
-***************
-*** 329,343 ****
- echo ""
- echo "------------------------------------------"
- echo " On z/OS Unix, the environment variable"
-! echo " __CC_${ccn}MODE must be set to \"1\"!"
- echo " Do:"
- echo " export _CC_${ccn}MODE=1"
- echo " and then call configure again."
- echo "------------------------------------------"
- exit 1
- fi
-! CFLAGS="$CFLAGS -D_ALL_SOURCE -Wc,float\\(IEEE\\)";
-! LDFLAGS="$LDFLAGS -Wl,EDIT=NO"
- AC_MSG_RESULT(yes)
- ;;
- *) zOSUnix="no";
---- 329,346 ----
- echo ""
- echo "------------------------------------------"
- echo " On z/OS Unix, the environment variable"
-! echo " _CC_${ccn}MODE must be set to \"1\"!"
- echo " Do:"
- echo " export _CC_${ccn}MODE=1"
- echo " and then call configure again."
- echo "------------------------------------------"
- exit 1
- fi
-! # Set CFLAGS for configure process.
-! # This will be reset later for config.mk.
-! # Use haltonmsg to force error for missing H files.
-! CFLAGS="$CFLAGS -D_ALL_SOURCE -Wc,float(ieee),haltonmsg(3296)";
-! LDFLAGS="$LDFLAGS -Wl,EDIT=NO"
- AC_MSG_RESULT(yes)
- ;;
- *) zOSUnix="no";
-***************
-*** 2378,2387 ****
- if test -z "$SKIP_MOTIF"; then
- cppflags_save=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS $X_CFLAGS"
-! AC_CHECK_HEADERS(Xm/Xm.h Xm/XpmP.h Xm/JoinSideT.h Xm/TraitP.h Xm/Manager.h \
-! Xm/UnhighlightT.h Xm/Notebook.h)
-
-! if test $ac_cv_header_Xm_XpmP_h = yes; then
- dnl Solaris uses XpmAttributes_21, very annoying.
- AC_MSG_CHECKING([for XpmAttributes_21 in Xm/XpmP.h])
- AC_TRY_COMPILE([#include <Xm/XpmP.h>], [XpmAttributes_21 attr;],
---- 2381,2395 ----
- if test -z "$SKIP_MOTIF"; then
- cppflags_save=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS $X_CFLAGS"
-! if test "$zOSUnix" = "yes"; then
-! xmheader="Xm/Xm.h"
-! else
-! xmheader="Xm/Xm.h Xm/XpmP.h Xm/JoinSideT.h Xm/TraitP.h Xm/Manager.h
-! Xm/UnhighlightT.h Xm/Notebook.h"
-! fi
-! AC_CHECK_HEADERS($xmheader)
-
-! if test "x$ac_cv_header_Xm_XpmP_h" = "xyes"; then
- dnl Solaris uses XpmAttributes_21, very annoying.
- AC_MSG_CHECKING([for XpmAttributes_21 in Xm/XpmP.h])
- AC_TRY_COMPILE([#include <Xm/XpmP.h>], [XpmAttributes_21 attr;],
-***************
-*** 3642,3647 ****
---- 3650,3660 ----
- fi
- AC_SUBST(LINK_AS_NEEDED)
-
-+ # IBM z/OS reset CFLAGS for config.mk
-+ if test "$zOSUnix" = "yes"; then
-+ CFLAGS="-D_ALL_SOURCE -Wc,float\(ieee\),dll"
-+ fi
-+
- dnl write output files
- AC_OUTPUT(auto/config.mk:config.mk.in)
-
-*** ../vim-7.3.554/src/auto/configure 2012-02-05 22:51:27.000000000 +0100
---- src/auto/configure 2012-06-13 18:53:04.000000000 +0200
-***************
-*** 4426,4440 ****
- echo ""
- echo "------------------------------------------"
- echo " On z/OS Unix, the environment variable"
-! echo " __CC_${ccn}MODE must be set to \"1\"!"
- echo " Do:"
- echo " export _CC_${ccn}MODE=1"
- echo " and then call configure again."
- echo "------------------------------------------"
- exit 1
- fi
-! CFLAGS="$CFLAGS -D_ALL_SOURCE -Wc,float\\(IEEE\\)";
-! LDFLAGS="$LDFLAGS -Wl,EDIT=NO"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
- $as_echo "yes" >&6; }
- ;;
---- 4426,4443 ----
- echo ""
- echo "------------------------------------------"
- echo " On z/OS Unix, the environment variable"
-! echo " _CC_${ccn}MODE must be set to \"1\"!"
- echo " Do:"
- echo " export _CC_${ccn}MODE=1"
- echo " and then call configure again."
- echo "------------------------------------------"
- exit 1
- fi
-! # Set CFLAGS for configure process.
-! # This will be reset later for config.mk.
-! # Use haltonmsg to force error for missing H files.
-! CFLAGS="$CFLAGS -D_ALL_SOURCE -Wc,float(ieee),haltonmsg(3296)";
-! LDFLAGS="$LDFLAGS -Wl,EDIT=NO"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
- $as_echo "yes" >&6; }
- ;;
-***************
-*** 8697,8704 ****
- if test -z "$SKIP_MOTIF"; then
- cppflags_save=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS $X_CFLAGS"
-! for ac_header in Xm/Xm.h Xm/XpmP.h Xm/JoinSideT.h Xm/TraitP.h Xm/Manager.h \
-! Xm/UnhighlightT.h Xm/Notebook.h
- do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
- ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
---- 8700,8712 ----
- if test -z "$SKIP_MOTIF"; then
- cppflags_save=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS $X_CFLAGS"
-! if test "$zOSUnix" = "yes"; then
-! xmheader="Xm/Xm.h"
-! else
-! xmheader="Xm/Xm.h Xm/XpmP.h Xm/JoinSideT.h Xm/TraitP.h Xm/Manager.h
-! Xm/UnhighlightT.h Xm/Notebook.h"
-! fi
-! for ac_header in $xmheader
- do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
- ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-***************
-*** 8713,8719 ****
- done
-
-
-! if test $ac_cv_header_Xm_XpmP_h = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XpmAttributes_21 in Xm/XpmP.h" >&5
- $as_echo_n "checking for XpmAttributes_21 in Xm/XpmP.h... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
---- 8721,8727 ----
- done
-
-
-! if test "x$ac_cv_header_Xm_XpmP_h" = "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XpmAttributes_21 in Xm/XpmP.h" >&5
- $as_echo_n "checking for XpmAttributes_21 in Xm/XpmP.h... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-***************
-*** 12590,12595 ****
---- 12598,12608 ----
- fi
-
-
-+ # IBM z/OS reset CFLAGS for config.mk
-+ if test "$zOSUnix" = "yes"; then
-+ CFLAGS="-D_ALL_SOURCE -Wc,float\(ieee\),dll"
-+ fi
-+
- ac_config_files="$ac_config_files auto/config.mk:config.mk.in"
-
- cat >confcache <<\_ACEOF
-*** ../vim-7.3.554/src/Makefile 2012-03-28 17:17:45.000000000 +0200
---- src/Makefile 2012-06-13 18:48:13.000000000 +0200
-***************
-*** 875,880 ****
---- 875,884 ----
- #CFLAGS = -O -Qtarget=m88110compat
- #EXTRA_LIBS = -lgen
-
-+ # The value of QUOTESED comes from auto/config.mk.
-+ # Uncomment the next line to use the default value.
-+ # QUOTESED = sed -e 's/[\\"]/\\&/g' -e 's/\\"/"/' -e 's/\\";$$/";/'
-+
- ##################### end of system specific lines ################### }}}
-
- ### Names of the programs and targets {{{1
-***************
-*** 2411,2417 ****
- auto/osdef.h: auto/config.h osdef.sh osdef1.h.in osdef2.h.in
- CC="$(CC) $(OSDEF_CFLAGS)" srcdir=$(srcdir) sh $(srcdir)/osdef.sh
-
-- QUOTESED = sed -e 's/[\\"]/\\&/g' -e 's/\\"/"/' -e 's/\\";$$/";/'
- auto/pathdef.c: Makefile auto/config.mk
- -@echo creating $@
- -@echo '/* pathdef.c */' > $@
---- 2415,2420 ----
-*** ../vim-7.3.554/src/version.c 2012-06-13 18:15:13.000000000 +0200
---- src/version.c 2012-06-13 19:13:54.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 555,
- /**/
-
---
-My sister Cecilia opened a computer store in Hawaii.
-She sells C shells by the seashore.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.556
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.556
-Problem: Compiler warnings on 64 bit Windows.
-Solution: Add type casts. (Mike Williams)
-Files: src/misc1.c
-
-
-*** ../vim-7.3.555/src/misc1.c 2012-06-13 17:28:51.000000000 +0200
---- src/misc1.c 2012-06-14 20:55:47.000000000 +0200
-***************
-*** 445,452 ****
- if (vim_regexec(&regmatch, ml_get(lnum) + lead_len, (colnr_T)0))
- {
- pos.lnum = lnum;
-! pos.col = *regmatch.endp - (ml_get(lnum) + lead_len);
-! pos.col += lead_len;
- #ifdef FEAT_VIRTUALEDIT
- pos.coladd = 0;
- #endif
---- 445,451 ----
- if (vim_regexec(&regmatch, ml_get(lnum) + lead_len, (colnr_T)0))
- {
- pos.lnum = lnum;
-! pos.col = (colnr_T)(*regmatch.endp - ml_get(lnum));
- #ifdef FEAT_VIRTUALEDIT
- pos.coladd = 0;
- #endif
-***************
-*** 1354,1360 ****
- if (flags & OPENLINE_COM_LIST && second_line_indent > 0)
- {
- int i;
-! int padding = second_line_indent - (newindent + STRLEN(leader));
-
- /* Here whitespace is inserted after the comment char.
- * Below, set_indent(newindent, SIN_INSERT) will insert the
---- 1353,1360 ----
- if (flags & OPENLINE_COM_LIST && second_line_indent > 0)
- {
- int i;
-! int padding = second_line_indent
-! - (newindent + (int)STRLEN(leader));
-
- /* Here whitespace is inserted after the comment char.
- * Below, set_indent(newindent, SIN_INSERT) will insert the
-*** ../vim-7.3.555/src/version.c 2012-06-13 19:19:36.000000000 +0200
---- src/version.c 2012-06-14 20:54:59.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 556,
- /**/
-
---
-He who laughs last, thinks slowest.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.557
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.557
-Problem: Crash when an autocommand wipes out a buffer when it is hidden.
-Solution: Restore the current window when needed. (Christian Brabandt)
-Files: src/buffer.c
-
-
-*** ../vim-7.3.556/src/buffer.c 2012-06-13 14:28:16.000000000 +0200
---- src/buffer.c 2012-06-20 11:49:54.000000000 +0200
-***************
-*** 1363,1368 ****
---- 1363,1369 ----
- int action;
- {
- buf_T *prevbuf;
-+ win_T *prevwin;
- int unload = (action == DOBUF_UNLOAD || action == DOBUF_DEL
- || action == DOBUF_WIPE);
-
-***************
-*** 1402,1423 ****
- if (buf_valid(prevbuf))
- #endif
- {
- if (prevbuf == curbuf)
- u_sync(FALSE);
- close_buffer(prevbuf == curwin->w_buffer ? curwin : NULL, prevbuf,
- unload ? action : (action == DOBUF_GOTO
- && !P_HID(prevbuf)
- && !bufIsChanged(prevbuf)) ? DOBUF_UNLOAD : 0, FALSE);
- }
- }
- #ifdef FEAT_AUTOCMD
- /* An autocommand may have deleted "buf", already entered it (e.g., when
-! * it did ":bunload") or aborted the script processing! */
-! # ifdef FEAT_EVAL
-! if (buf_valid(buf) && buf != curbuf && !aborting())
-! # else
-! if (buf_valid(buf) && buf != curbuf)
-! # endif
- #endif
- enter_buffer(buf);
- }
---- 1403,1432 ----
- if (buf_valid(prevbuf))
- #endif
- {
-+ prevwin = curwin;
- if (prevbuf == curbuf)
- u_sync(FALSE);
- close_buffer(prevbuf == curwin->w_buffer ? curwin : NULL, prevbuf,
- unload ? action : (action == DOBUF_GOTO
- && !P_HID(prevbuf)
- && !bufIsChanged(prevbuf)) ? DOBUF_UNLOAD : 0, FALSE);
-+ if (curwin != prevwin && win_valid(prevwin))
-+ /* autocommands changed curwin, Grr! */
-+ curwin = prevwin;
- }
- }
- #ifdef FEAT_AUTOCMD
- /* An autocommand may have deleted "buf", already entered it (e.g., when
-! * it did ":bunload") or aborted the script processing!
-! * If curwin->w_buffer is null, enter_buffer() will make it valid again */
-! if ((buf_valid(buf) && buf != curbuf
-! #ifdef FEAT_EVAL
-! && !aborting()
-! #endif
-! #ifdef FEAT_WINDOWS
-! ) || curwin->w_buffer == NULL
-! #endif
-! )
- #endif
- enter_buffer(buf);
- }
-*** ../vim-7.3.556/src/version.c 2012-06-14 20:59:20.000000000 +0200
---- src/version.c 2012-06-20 11:53:56.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 557,
- /**/
-
---
-Don't read everything you believe.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.558
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.558
-Problem: Memory access error. (Gary Johnson)
-Solution: Allocate one more byte. (Dominique Pelle)
-Files: src/misc1.c
-
-
-*** ../vim-7.3.557/src/misc1.c 2012-06-14 20:59:20.000000000 +0200
---- src/misc1.c 2012-06-20 12:34:57.000000000 +0200
-***************
-*** 460,466 ****
- *
- * I'm not sure if regmmatch_T (multi-match) is needed in this case.
- * It may be true that this section would work properly using the
-! * regmatch_T code above, in which case, these two seperate sections
- * should be consolidated w/ FEAT_COMMENTS making lead_len > 0...
- */
- #endif
---- 460,466 ----
- *
- * I'm not sure if regmmatch_T (multi-match) is needed in this case.
- * It may be true that this section would work properly using the
-! * regmatch_T code above, in which case, these two separate sections
- * should be consolidated w/ FEAT_COMMENTS making lead_len > 0...
- */
- #endif
-***************
-*** 1053,1061 ****
- }
- if (lead_len)
- {
-! /* allocate buffer (may concatenate p_exta later) */
- leader = alloc(lead_len + lead_repl_len + extra_space + extra_len
-! + (second_line_indent > 0 ? second_line_indent : 0));
- allocated = leader; /* remember to free it later */
-
- if (leader == NULL)
---- 1053,1061 ----
- }
- if (lead_len)
- {
-! /* allocate buffer (may concatenate p_extra later) */
- leader = alloc(lead_len + lead_repl_len + extra_space + extra_len
-! + (second_line_indent > 0 ? second_line_indent : 0) + 1);
- allocated = leader; /* remember to free it later */
-
- if (leader == NULL)
-***************
-*** 3342,3348 ****
- buf = alloc(buflen);
- else if (maxlen < 10)
- {
-! /* Need some more space. This migth happen when receiving a long
- * escape sequence. */
- buflen += 100;
- buf = vim_realloc(buf, buflen);
---- 3342,3348 ----
- buf = alloc(buflen);
- else if (maxlen < 10)
- {
-! /* Need some more space. This might happen when receiving a long
- * escape sequence. */
- buflen += 100;
- buf = vim_realloc(buf, buflen);
-*** ../vim-7.3.557/src/version.c 2012-06-20 11:54:55.000000000 +0200
---- src/version.c 2012-06-20 12:36:29.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 558,
- /**/
-
---
-George: "I just got a new set of golf clubs for my wife!"
- John: "Great trade!"
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.559
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.559
-Problem: home_replace() does not work with 8.3 filename.
-Solution: Make ":p" expand 8.3 name to full path. (Yasuhiro Matsumoto)
-Files: src/eval.c, src/misc1.c
-
-
-*** ../vim-7.3.558/src/eval.c 2012-06-13 14:28:16.000000000 +0200
---- src/eval.c 2012-06-20 13:52:47.000000000 +0200
-***************
-*** 23554,23559 ****
---- 23554,23580 ----
- return -1;
- }
-
-+ #ifdef WIN3264
-+ # if _WIN32_WINNT >= 0x0500
-+ if (vim_strchr(*fnamep, '~') != NULL)
-+ {
-+ /* Expand 8.3 filename to full path. Needed to make sure the same
-+ * file does not have two different names.
-+ * Note: problem does not occur if _WIN32_WINNT < 0x0500. */
-+ p = alloc(_MAX_PATH + 1);
-+ if (p != NULL)
-+ {
-+ if (GetLongPathName(*fnamep, p, MAXPATHL))
-+ {
-+ vim_free(*bufp);
-+ *bufp = *fnamep = p;
-+ }
-+ else
-+ vim_free(p);
-+ }
-+ }
-+ # endif
-+ #endif
- /* Append a path separator to a directory. */
- if (mch_isdir(*fnamep))
- {
-*** ../vim-7.3.558/src/misc1.c 2012-06-20 12:40:01.000000000 +0200
---- src/misc1.c 2012-06-20 13:57:22.000000000 +0200
-***************
-*** 4499,4505 ****
- {
- size_t dirlen = 0, envlen = 0;
- size_t len;
-! char_u *homedir_env;
- char_u *p;
-
- if (src == NULL)
---- 4499,4505 ----
- {
- size_t dirlen = 0, envlen = 0;
- size_t len;
-! char_u *homedir_env, *homedir_env_orig;
- char_u *p;
-
- if (src == NULL)
-***************
-*** 4525,4533 ****
- dirlen = STRLEN(homedir);
-
- #ifdef VMS
-! homedir_env = mch_getenv((char_u *)"SYS$LOGIN");
- #else
-! homedir_env = mch_getenv((char_u *)"HOME");
- #endif
-
- if (homedir_env != NULL && *homedir_env == NUL)
---- 4525,4548 ----
- dirlen = STRLEN(homedir);
-
- #ifdef VMS
-! homedir_env_orig = homedir_env = mch_getenv((char_u *)"SYS$LOGIN");
- #else
-! homedir_env_orig = homedir_env = mch_getenv((char_u *)"HOME");
-! #endif
-! #if defined(FEAT_MODIFY_FNAME) || defined(WIN3264)
-! if (vim_strchr(homedir_env, '~') != NULL)
-! {
-! int usedlen = 0;
-! int flen;
-! char_u *fbuf = NULL;
-!
-! flen = (int)STRLEN(homedir_env);
-! (void)modify_fname(":p", &usedlen, &homedir_env, &fbuf, &flen);
-! flen = (int)STRLEN(homedir_env);
-! if (flen > 0 && vim_ispathsep(homedir_env[flen - 1]))
-! /* Remove the trailing / that is added to a directory. */
-! homedir_env[flen - 1] = NUL;
-! }
- #endif
-
- if (homedir_env != NULL && *homedir_env == NUL)
-***************
-*** 4585,4590 ****
---- 4600,4608 ----
- /* if (dstlen == 0) out of space, what to do??? */
-
- *dst = NUL;
-+
-+ if (homedir_env != homedir_env_orig)
-+ vim_free(homedir_env);
- }
-
- /*
-*** ../vim-7.3.558/src/version.c 2012-06-20 12:40:01.000000000 +0200
---- src/version.c 2012-06-20 14:02:11.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 559,
- /**/
-
---
-The future isn't what it used to be.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.560
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.560
-Problem: Get an error for a locked argument in extend().
-Solution: Initialize the lock flag for a dictionary. (Yukihiro Nakadaira)
-Files: src/eval.c
-
-
-*** ../vim-7.3.559/src/eval.c 2012-06-20 14:02:23.000000000 +0200
---- src/eval.c 2012-06-20 14:08:34.000000000 +0200
-***************
-*** 19981,19986 ****
---- 19981,19987 ----
- dictitem_T *dict_var;
- {
- hash_init(&dict->dv_hashtab);
-+ dict->dv_lock = 0;
- dict->dv_refcount = DO_NOT_FREE_CNT;
- dict->dv_copyID = 0;
- dict_var->di_tv.vval.v_dict = dict;
-*** ../vim-7.3.559/src/version.c 2012-06-20 14:02:23.000000000 +0200
---- src/version.c 2012-06-20 14:09:34.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 560,
- /**/
-
---
-"Oh, no! NOT the Spanish Inquisition!"
-"NOBODY expects the Spanish Inquisition!!!"
- -- Monty Python sketch --
-"Oh, no! NOT another option!"
-"EVERYBODY expects another option!!!"
- -- Discussion in vim-dev mailing list --
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.561
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.561
-Problem: Using refresh: always in a complete function breaks the "."
- command. (Val Markovic)
-Solution: Add match leader to the redo buffer. (Yasuhiro Matsumoto)
-Files: src/edit.c
-
-
-*** ../vim-7.3.560/src/edit.c 2012-06-13 17:28:51.000000000 +0200
---- src/edit.c 2012-06-20 14:22:23.000000000 +0200
-***************
-*** 3467,3476 ****
---- 3467,3480 ----
- (*mb_char2bytes)(c, buf);
- buf[cc] = NUL;
- ins_char_bytes(buf, cc);
-+ AppendToRedobuff(buf);
- }
- else
- #endif
-+ {
- ins_char(c);
-+ AppendCharToRedobuff(c);
-+ }
-
- /* If we didn't complete finding matches we must search again. */
- if (ins_compl_need_restart())
-*** ../vim-7.3.560/src/version.c 2012-06-20 14:13:02.000000000 +0200
---- src/version.c 2012-06-20 14:20:13.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 561,
- /**/
-
---
-Microsoft is to software what McDonalds is to gourmet cooking
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.562
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.562
-Problem: ":profdel" should not work when the +profile feature is disabled.
-Solution: Call ex_ni(). (Yasuhiro Matsumoto)
-Files: src/ex_cmds2.c
-
-
-*** ../vim-7.3.561/src/ex_cmds2.c 2012-06-13 14:28:16.000000000 +0200
---- src/ex_cmds2.c 2012-06-20 15:43:44.000000000 +0200
-***************
-*** 596,605 ****
- garray_T *gap;
-
- gap = &dbg_breakp;
-- #ifdef FEAT_PROFILE
- if (eap->cmdidx == CMD_profdel)
- gap = &prof_ga;
- #endif
-
- if (vim_isdigit(*eap->arg))
- {
---- 596,610 ----
- garray_T *gap;
-
- gap = &dbg_breakp;
- if (eap->cmdidx == CMD_profdel)
-+ {
-+ #ifdef FEAT_PROFILE
- gap = &prof_ga;
-+ #else
-+ ex_ni(eap);
-+ return;
- #endif
-+ }
-
- if (vim_isdigit(*eap->arg))
- {
-*** ../vim-7.3.561/src/version.c 2012-06-20 14:26:30.000000000 +0200
---- src/version.c 2012-06-20 15:44:00.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 562,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-42. Your virtual girlfriend finds a new net sweetheart with a larger bandwidth.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.563
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.563 (after 7.3.557)
-Problem: Can't build with tiny features.
-Solution: Add #ifdef.
-Files: src/buffer.c
-
-
-*** ../vim-7.3.562/src/buffer.c 2012-06-20 11:54:55.000000000 +0200
---- src/buffer.c 2012-06-20 17:40:59.000000000 +0200
-***************
-*** 1363,1369 ****
---- 1363,1371 ----
- int action;
- {
- buf_T *prevbuf;
-+ #ifdef FEAT_WINDOWS
- win_T *prevwin;
-+ #endif
- int unload = (action == DOBUF_UNLOAD || action == DOBUF_DEL
- || action == DOBUF_WIPE);
-
-***************
-*** 1403,1418 ****
---- 1405,1424 ----
- if (buf_valid(prevbuf))
- #endif
- {
-+ #ifdef FEAT_WINDOWS
- prevwin = curwin;
-+ #endif
- if (prevbuf == curbuf)
- u_sync(FALSE);
- close_buffer(prevbuf == curwin->w_buffer ? curwin : NULL, prevbuf,
- unload ? action : (action == DOBUF_GOTO
- && !P_HID(prevbuf)
- && !bufIsChanged(prevbuf)) ? DOBUF_UNLOAD : 0, FALSE);
-+ #ifdef FEAT_WINDOWS
- if (curwin != prevwin && win_valid(prevwin))
- /* autocommands changed curwin, Grr! */
- curwin = prevwin;
-+ #endif
- }
- }
- #ifdef FEAT_AUTOCMD
-***************
-*** 1420,1431 ****
- * it did ":bunload") or aborted the script processing!
- * If curwin->w_buffer is null, enter_buffer() will make it valid again */
- if ((buf_valid(buf) && buf != curbuf
-! #ifdef FEAT_EVAL
- && !aborting()
-! #endif
-! #ifdef FEAT_WINDOWS
- ) || curwin->w_buffer == NULL
-! #endif
- )
- #endif
- enter_buffer(buf);
---- 1426,1437 ----
- * it did ":bunload") or aborted the script processing!
- * If curwin->w_buffer is null, enter_buffer() will make it valid again */
- if ((buf_valid(buf) && buf != curbuf
-! # ifdef FEAT_EVAL
- && !aborting()
-! # endif
-! # ifdef FEAT_WINDOWS
- ) || curwin->w_buffer == NULL
-! # endif
- )
- #endif
- enter_buffer(buf);
-*** ../vim-7.3.562/src/version.c 2012-06-20 15:48:53.000000000 +0200
---- src/version.c 2012-06-20 17:54:01.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 563,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-45. You buy a Captain Kirk chair with a built-in keyboard and mouse.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.564
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.564 (after 7.3.559)
-Problem: Warning for pointer conversion.
-Solution: Add type cast.
-Files: src/misc1.c
-
-
-*** ../vim-7.3.563/src/misc1.c 2012-06-20 14:02:23.000000000 +0200
---- src/misc1.c 2012-06-20 17:41:22.000000000 +0200
-***************
-*** 4537,4543 ****
- char_u *fbuf = NULL;
-
- flen = (int)STRLEN(homedir_env);
-! (void)modify_fname(":p", &usedlen, &homedir_env, &fbuf, &flen);
- flen = (int)STRLEN(homedir_env);
- if (flen > 0 && vim_ispathsep(homedir_env[flen - 1]))
- /* Remove the trailing / that is added to a directory. */
---- 4537,4544 ----
- char_u *fbuf = NULL;
-
- flen = (int)STRLEN(homedir_env);
-! (void)modify_fname((char_u *)":p", &usedlen,
-! &homedir_env, &fbuf, &flen);
- flen = (int)STRLEN(homedir_env);
- if (flen > 0 && vim_ispathsep(homedir_env[flen - 1]))
- /* Remove the trailing / that is added to a directory. */
-*** ../vim-7.3.563/src/version.c 2012-06-20 17:54:34.000000000 +0200
---- src/version.c 2012-06-20 17:55:26.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 564,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-46. Your wife makes a new rule: "The computer cannot come to bed."
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.566
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.566
-Problem: Can't generate proto file for Python 3.
-Solution: Add PYTHON3_CFLAGS to LINT_CFLAGS.
-Files: src/Makefile
-
-
-*** ../vim-7.3.564/src/Makefile 2012-06-13 19:19:36.000000000 +0200
---- src/Makefile 2012-06-20 18:36:14.000000000 +0200
-***************
-*** 1339,1345 ****
- # with "-E".
- OSDEF_CFLAGS = $(PRE_DEFS) $(POST_DEFS)
-
-! LINT_CFLAGS = -DLINT -I. $(PRE_DEFS) $(POST_DEFS) $(RUBY_CFLAGS) $(LUA_CFLAGS) $(PERL_CFLAGS) $(PYTHON_CFLAGS) -Dinline= -D__extension__= -Dalloca=alloca
-
- LINT_EXTRA = -DUSE_SNIFF -DHANGUL_INPUT -D"__attribute__(x)="
-
---- 1339,1345 ----
- # with "-E".
- OSDEF_CFLAGS = $(PRE_DEFS) $(POST_DEFS)
-
-! LINT_CFLAGS = -DLINT -I. $(PRE_DEFS) $(POST_DEFS) $(RUBY_CFLAGS) $(LUA_CFLAGS) $(PERL_CFLAGS) $(PYTHON_CFLAGS) $(PYTHON3_CFLAGS) -Dinline= -D__extension__= -Dalloca=alloca
-
- LINT_EXTRA = -DUSE_SNIFF -DHANGUL_INPUT -D"__attribute__(x)="
-
-*** ../vim-7.3.564/src/version.c 2012-06-20 17:56:06.000000000 +0200
---- src/version.c 2012-06-20 18:39:04.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 565,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-47. You are so familiar with the WWW that you find the search engines useless.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.566
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.566 (after 7.3.561)
-Problem: Redo after completion does not work correctly when refresh: always
- is not used. (Raymond Ko)
-Solution: Check the compl_opt_refresh_always flag. (Christian Brabandt)
-Files: src/edit.c
-
-
-*** ../vim-7.3.565/src/edit.c 2012-06-20 14:26:30.000000000 +0200
---- src/edit.c 2012-06-20 22:52:03.000000000 +0200
-***************
-*** 3467,3479 ****
- (*mb_char2bytes)(c, buf);
- buf[cc] = NUL;
- ins_char_bytes(buf, cc);
-! AppendToRedobuff(buf);
- }
- else
- #endif
- {
- ins_char(c);
-! AppendCharToRedobuff(c);
- }
-
- /* If we didn't complete finding matches we must search again. */
---- 3467,3481 ----
- (*mb_char2bytes)(c, buf);
- buf[cc] = NUL;
- ins_char_bytes(buf, cc);
-! if (compl_opt_refresh_always)
-! AppendToRedobuff(buf);
- }
- else
- #endif
- {
- ins_char(c);
-! if (compl_opt_refresh_always)
-! AppendCharToRedobuff(c);
- }
-
- /* If we didn't complete finding matches we must search again. */
-***************
-*** 3481,3487 ****
- ins_compl_restart();
-
- /* When 'always' is set, don't reset compl_leader. While completing,
-! * cursor don't point original position, changing compl_leader would
- * break redo. */
- if (!compl_opt_refresh_always)
- {
---- 3483,3489 ----
- ins_compl_restart();
-
- /* When 'always' is set, don't reset compl_leader. While completing,
-! * cursor doesn't point original position, changing compl_leader would
- * break redo. */
- if (!compl_opt_refresh_always)
- {
-*** ../vim-7.3.565/src/version.c 2012-06-20 18:39:12.000000000 +0200
---- src/version.c 2012-06-20 22:54:27.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 566,
- /**/
-
---
-CVS sux, men don't like commitment
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.567
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.567
-Problem: Missing copyright notice.
-Solution: Add Vim copyright notice. (Taro Muraoka)
-Files: src/dehqx.py
-
-
-*** ../vim-7.3.566/src/dehqx.py 2010-08-15 21:57:32.000000000 +0200
---- src/dehqx.py 2012-06-29 11:27:41.000000000 +0200
-***************
-*** 1,7 ****
- # Python script to get both the data and resource fork from a BinHex encoded
- # file.
-! # Author: Taro Muraoka
-! # Last Change: 2003 Oct 25
-
- import sys
- import binhex
---- 1,10 ----
- # Python script to get both the data and resource fork from a BinHex encoded
- # file.
-! # Author: MURAOKA Taro <koron.kaoriya@gmail.com>
-! # Last Change: 2012 Jun 29
-! #
-! # Copyright (C) 2003,12 MURAOKA Taro <koron.kaoriya@gmail.com>
-! # THIS FILE IS DISTRIBUTED UNDER THE VIM LICENSE.
-
- import sys
- import binhex
-*** ../vim-7.3.566/src/version.c 2012-06-20 22:55:56.000000000 +0200
---- src/version.c 2012-06-29 11:45:36.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 567,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-66. You create a homepage with the impression to cure the afflicted...but
- your hidden agenda is to receive more e-mail.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.568
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.568
-Problem: Bad indents for #ifdefs.
-Solution: Add and remove spaces. (Elias Diem)
-Files: src/globals.h
-
-
-*** ../vim-7.3.567/src/globals.h 2012-02-11 23:45:30.000000000 +0100
---- src/globals.h 2012-06-29 12:32:14.000000000 +0200
-***************
-*** 513,520 ****
- # define ONE_CLIPBOARD
- # endif
-
-! #define CLIP_UNNAMED 1
-! #define CLIP_UNNAMED_PLUS 2
- EXTERN int clip_unnamed INIT(= 0); /* above two values or'ed */
-
- EXTERN int clip_autoselect INIT(= FALSE);
---- 513,520 ----
- # define ONE_CLIPBOARD
- # endif
-
-! # define CLIP_UNNAMED 1
-! # define CLIP_UNNAMED_PLUS 2
- EXTERN int clip_unnamed INIT(= 0); /* above two values or'ed */
-
- EXTERN int clip_autoselect INIT(= FALSE);
-***************
-*** 737,745 ****
- #endif
-
- EXTERN pos_T saved_cursor /* w_cursor before formatting text. */
-! # ifdef DO_INIT
- = INIT_POS_T(0, 0, 0)
-! # endif
- ;
-
- /*
---- 737,745 ----
- #endif
-
- EXTERN pos_T saved_cursor /* w_cursor before formatting text. */
-! #ifdef DO_INIT
- = INIT_POS_T(0, 0, 0)
-! #endif
- ;
-
- /*
-***************
-*** 807,815 ****
- # endif
- EXTERN int has_mbyte INIT(= 0); /* any multi-byte encoding */
-
-! #if defined(WIN3264) && defined(FEAT_MBYTE)
- EXTERN int wide_WindowProc INIT(= FALSE); /* use wide WindowProc() */
-! #endif
-
- /*
- * To speed up BYTELEN() we fill a table with the byte lengths whenever
---- 807,815 ----
- # endif
- EXTERN int has_mbyte INIT(= 0); /* any multi-byte encoding */
-
-! # if defined(WIN3264) && defined(FEAT_MBYTE)
- EXTERN int wide_WindowProc INIT(= FALSE); /* use wide WindowProc() */
-! # endif
-
- /*
- * To speed up BYTELEN() we fill a table with the byte lengths whenever
-***************
-*** 1099,1106 ****
- EXTERN int save_p_ls INIT(= -1); /* Save 'laststatus' setting */
- EXTERN int save_p_wmh INIT(= -1); /* Save 'winminheight' setting */
- EXTERN int wild_menu_showing INIT(= 0);
-! #define WM_SHOWN 1 /* wildmenu showing */
-! #define WM_SCROLLED 2 /* wildmenu showing with scroll */
- #endif
-
- #ifdef MSWIN
---- 1099,1106 ----
- EXTERN int save_p_ls INIT(= -1); /* Save 'laststatus' setting */
- EXTERN int save_p_wmh INIT(= -1); /* Save 'winminheight' setting */
- EXTERN int wild_menu_showing INIT(= 0);
-! # define WM_SHOWN 1 /* wildmenu showing */
-! # define WM_SCROLLED 2 /* wildmenu showing with scroll */
- #endif
-
- #ifdef MSWIN
-***************
-*** 1310,1318 ****
- EXTERN Atom commProperty INIT(= None);
- EXTERN char_u *serverDelayedStartName INIT(= NULL);
- # else
-! # ifdef PROTO
- typedef int HWND;
-! # endif
- EXTERN HWND clientWindow INIT(= 0);
- # endif
- #endif
---- 1310,1318 ----
- EXTERN Atom commProperty INIT(= None);
- EXTERN char_u *serverDelayedStartName INIT(= NULL);
- # else
-! # ifdef PROTO
- typedef int HWND;
-! # endif
- EXTERN HWND clientWindow INIT(= 0);
- # endif
- #endif
-*** ../vim-7.3.567/src/version.c 2012-06-29 11:46:28.000000000 +0200
---- src/version.c 2012-06-29 12:34:21.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 568,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-67. Your hard drive crashes. You haven't logged in for two hours. You start
- to twitch. You pick up the phone and manually dial your ISP's access
- number. You try to hum to communicate with the modem. You succeed.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.569
-Fcc: 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.569
-Problem: Evaluating Vim expression in Python is insufficient.
-Solution: Add vim.bindeval(). Also add pyeval() and py3eval(). (ZyX)
-Files: runtime/doc/eval.txt, runtime/doc/if_pyth.txt, src/eval.c,
- src/if_lua.c, src/if_py_both.h, src/if_python.c, src/if_python3.c,
- src/proto/eval.pro, src/proto/if_python.pro,
- src/proto/if_python3.pro, src/testdir/Make_amiga.mak,
- src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
- src/testdir/Make_os2.mak, src/testdir/Makefile,
- src/testdir/test86.in, src/testdir/test86.ok,
- src/testdir/test87.in, src/testdir/test87.ok
-
-
-*** ../vim-7.3.568/runtime/doc/eval.txt 2012-03-07 19:16:49.000000000 +0100
---- runtime/doc/eval.txt 2012-06-20 18:01:02.000000000 +0200
-***************
-*** 1836,1844 ****
- localtime() Number current time
- 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}
- match( {expr}, {pat}[, {start}[, {count}]])
---- 1847,1857 ----
- localtime() Number current time
- log( {expr}) Float natural logarithm (base e) of {expr}
- log10( {expr}) Float logarithm of Float {expr} to base 10
-+ luaeval( {expr}[, {expr}]) any evaluate |Lua| expression
- map( {expr}, {string}) List/Dict change each item in {expr} to {expr}
- maparg( {name}[, {mode} [, {abbr} [, {dict}]]])
-! String or Dict
-! rhs of mapping {name} in mode {mode}
- mapcheck( {name}[, {mode} [, {abbr}]])
- String check for mappings matching {name}
- match( {expr}, {pat}[, {start}[, {count}]])
-***************
-*** 1867,1872 ****
---- 1880,1887 ----
- prevnonblank( {lnum}) Number line nr of non-blank line <= {lnum}
- printf( {fmt}, {expr1}...) String format text
- pumvisible() Number whether popup menu is visible
-+ pyeval( {expr}) any evaluate |Python| expression
-+ py3eval( {expr}) any evaluate |python3| expression
- range( {expr} [, {max} [, {stride}]])
- List items from {expr} to {max}
- readfile( {fname} [, {binary} [, {max}]])
-***************
-*** 3980,3985 ****
---- 4003,4022 ----
- < -2.0
- {only available when compiled with the |+float| feature}
-
-+ luaeval({expr}[, {expr}]) *luaeval()*
-+ Evaluate Lua expression {expr} and return its result converted
-+ to Vim data structures. Second {expr} may hold additional
-+ argument accessible as _A inside first {expr}.
-+ Strings are returned as they are.
-+ Boolean objects are converted to numbers.
-+ Numbers are converted to |Float| values if vim was compiled
-+ with |+float| and to numbers otherwise.
-+ Dictionaries and lists obtained by vim.eval() are returned
-+ as-is.
-+ Other objects are returned as zero without any errors.
-+ See |lua-luaeval| for more details.
-+ {only available when compiled with the |+lua| feature}
-+
- map({expr}, {string}) *map()*
- {expr} must be a |List| or a |Dictionary|.
- Replace each item in {expr} with the result of evaluating
-***************
-*** 4574,4579 ****
---- 4612,4640 ----
- This can be used to avoid some things that would remove the
- popup menu.
-
-+ *E860* *E861*
-+ py3eval({expr}) *py3eval()*
-+ Evaluate Python expression {expr} and return its result
-+ converted to Vim data structures.
-+ Numbers and strings are returned as they are (strings are
-+ copied though, unicode strings are additionally converted to
-+ 'encoding').
-+ Lists are represented as Vim |List| type.
-+ Dictionaries are represented as Vim |Dictionary| type with
-+ keys converted to strings.
-+ {only available when compiled with the |+python3| feature}
-+
-+ *E858* *E859*
-+ pyeval({expr}) *pyeval()*
-+ Evaluate Python expression {expr} and return its result
-+ converted to Vim data structures.
-+ Numbers and strings are returned as they are (strings are
-+ copied though).
-+ Lists are represented as Vim |List| type.
-+ Dictionaries are represented as Vim |Dictionary| type with
-+ keys converted to strings.
-+ {only available when compiled with the |+python| feature}
-+
- *E726* *E727*
- range({expr} [, {max} [, {stride}]]) *range()*
- Returns a |List| with Numbers:
-***************
-*** 4807,4812 ****
---- 4868,4877 ----
- Search for regexp pattern {pattern}. The search starts at the
- cursor position (you can use |cursor()| to set it).
-
-+ If there is no match a 0 is returned and the cursor doesn't
-+ move. No error message is given.
-+ When a match has been found its line number is returned.
-+
- {flags} is a String, which can contain these character flags:
- 'b' search backward instead of forward
- 'c' accept a match at the cursor position
-*** ../vim-7.3.568/runtime/doc/if_pyth.txt 2010-08-15 21:57:12.000000000 +0200
---- runtime/doc/if_pyth.txt 2012-06-20 18:01:02.000000000 +0200
-***************
-*** 1,4 ****
-! *if_pyth.txt* For Vim version 7.3. Last change: 2010 Aug 13
-
-
- VIM REFERENCE MANUAL by Paul Moore
---- 1,4 ----
-! *if_pyth.txt* For Vim version 7.3. Last change: 2012 Feb 04
-
-
- VIM REFERENCE MANUAL by Paul Moore
-***************
-*** 6,18 ****
-
- The Python Interface to Vim *python* *Python*
-
-! 1. Commands |python-commands|
-! 2. The vim module |python-vim|
-! 3. Buffer objects |python-buffer|
-! 4. Range objects |python-range|
-! 5. Window objects |python-window|
-! 6. Dynamic loading |python-dynamic|
-! 7. Python 3 |python3|
-
- {Vi does not have any of these commands}
-
---- 6,19 ----
-
- The Python Interface to Vim *python* *Python*
-
-! 1. Commands |python-commands|
-! 2. The vim module |python-vim|
-! 3. Buffer objects |python-buffer|
-! 4. Range objects |python-range|
-! 5. Window objects |python-window|
-! 6. pyeval(), py3eval() Vim functions |python-pyeval|
-! 7. Dynamic loading |python-dynamic|
-! 8. Python 3 |python3|
-
- {Vi does not have any of these commands}
-
-***************
-*** 150,155 ****
---- 151,172 ----
- [{'cmd': '/^eval_expr(arg, nextcmd)$/', 'static': 0, 'name':
- 'eval_expr', 'kind': 'f', 'filename': './src/eval.c'}]
-
-+ vim.bindeval(str) *python-bindeval*
-+ Like |python-eval|, but
-+ 1. if expression evaluates to |List| or |Dictionary| it is returned as
-+ vimlist or vimdictionary python type that are connected to original
-+ list or dictionary. Thus modifications to these objects imply
-+ modifications of the original.
-+ 2. if expression evaluates to a function reference, then it returns
-+ callable vimfunction object. Use self keyword argument to assign
-+ |self| object for dictionary functions.
-+
-+ Note: this function has the same behavior as |lua-eval| (except that
-+ lua does not support running vim functions), |python-eval| is
-+ kept for backwards compatibility in order not to make scripts
-+ relying on outputs of vim.eval() being a copy of original or
-+ vim.eval("1") returning a string.
-+
-
-
- Error object of the "vim" module
-***************
-*** 222,229 ****
- - from indexing vim.buffers (|python-buffers|)
- - from the "buffer" attribute of a window (|python-window|)
-
-! Buffer objects have one read-only attribute - name - the full file name for
-! the buffer. They also have three methods (append, mark, and range; see below).
-
- You can also treat buffer objects as sequence objects. In this context, they
- act as if they were lists (yes, they are mutable) of strings, with each
---- 239,247 ----
- - from indexing vim.buffers (|python-buffers|)
- - from the "buffer" attribute of a window (|python-window|)
-
-! Buffer objects have two read-only attributes - name - the full file name for
-! the buffer, and number - the buffer number. They also have three methods
-! (append, mark, and range; see below).
-
- You can also treat buffer objects as sequence objects. In this context, they
- act as if they were lists (yes, they are mutable) of strings, with each
-***************
-*** 318,324 ****
- The width attribute is writable only if the screen is split vertically.
-
- ==============================================================================
-! 6. Dynamic loading *python-dynamic*
-
- On MS-Windows the Python library can be loaded dynamically. The |:version|
- output then includes |+python/dyn|.
---- 336,348 ----
- The width attribute is writable only if the screen is split vertically.
-
- ==============================================================================
-! 6. pyeval() and py3eval() Vim functions *python-pyeval*
-!
-! To facilitate bi-directional interface, you can use |pyeval()| and |py3eval()|
-! functions to evaluate Python expressions and pass their values to VimL.
-!
-! ==============================================================================
-! 7. Dynamic loading *python-dynamic*
-
- On MS-Windows the Python library can be loaded dynamically. The |:version|
- output then includes |+python/dyn|.
-***************
-*** 335,347 ****
- sure edit "gvim.exe" and search for "python\d*.dll\c".
-
- ==============================================================================
-! 7. Python 3 *python3*
-
- *:py3* *:python3*
- The |:py3| and |:python3| commands work similar to |:python|.
- *:py3file*
- The |:py3file| command works similar to |:pyfile|.
-
- Vim can be built in four ways (:version output):
- 1. No Python support (-python, -python3)
- 2. Python 2 support only (+python or +python/dyn, -python3)
---- 359,372 ----
- sure edit "gvim.exe" and search for "python\d*.dll\c".
-
- ==============================================================================
-! 8. Python 3 *python3*
-
- *:py3* *:python3*
- The |:py3| and |:python3| commands work similar to |:python|.
- *:py3file*
- The |:py3file| command works similar to |:pyfile|.
-
-+
- Vim can be built in four ways (:version output):
- 1. No Python support (-python, -python3)
- 2. Python 2 support only (+python or +python/dyn, -python3)
-***************
-*** 355,361 ****
- When doing this on Linux/Unix systems and importing global symbols, this leads
- to a crash when the second Python version is used. So either global symbols
- are loaded but only one Python version is activated, or no global symbols are
-! loaded. The latter makes Python's "import" fail on libaries that expect the
- symbols to be provided by Vim.
- *E836* *E837*
- Vim's configuration script makes a guess for all libraries based on one
---- 380,386 ----
- When doing this on Linux/Unix systems and importing global symbols, this leads
- to a crash when the second Python version is used. So either global symbols
- are loaded but only one Python version is activated, or no global symbols are
-! loaded. The latter makes Python's "import" fail on libraries that expect the
- symbols to be provided by Vim.
- *E836* *E837*
- Vim's configuration script makes a guess for all libraries based on one
-***************
-*** 377,382 ****
---- 402,419 ----
- 3. You undefine PY_NO_RTLD_GLOBAL in auto/config.h after configuration. This
- may crash Vim though.
-
-+ *has-python*
-+ You can test what Python version is available with: >
-+ if has('python')
-+ echo 'there is Python 2.x'
-+ elseif has('python3')
-+ echo 'there is Python 3.x'
-+ endif
-+
-+ Note however, that when Python 2 and 3 are both available and loaded
-+ dynamically, these has() calls will try to load them. If only one can be
-+ loaded at a time, just checking if Python 2 or 3 are available will prevent
-+ the other one from being available.
-
- ==============================================================================
- vim:tw=78:ts=8:ft=help:norl:
-*** ../vim-7.3.568/src/eval.c 2012-06-20 14:13:02.000000000 +0200
---- src/eval.c 2012-06-20 18:29:15.000000000 +0200
-***************
-*** 424,453 ****
- static int get_lit_string_tv __ARGS((char_u **arg, typval_T *rettv, int evaluate));
- static int get_list_tv __ARGS((char_u **arg, typval_T *rettv, int evaluate));
- static int rettv_list_alloc __ARGS((typval_T *rettv));
-- static listitem_T *listitem_alloc __ARGS((void));
- 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));
-- static void list_append __ARGS((list_T *l, listitem_T *item));
- static int list_append_number __ARGS((list_T *l, varnumber_T n));
-- static int list_insert_tv __ARGS((list_T *l, typval_T *tv, listitem_T *item));
- static int list_extend __ARGS((list_T *l1, list_T *l2, listitem_T *bef));
- static int list_concat __ARGS((list_T *l1, list_T *l2, typval_T *tv));
- static list_T *list_copy __ARGS((list_T *orig, int deep, int copyID));
-- static void list_remove __ARGS((list_T *l, listitem_T *item, listitem_T *item2));
- static char_u *list2string __ARGS((typval_T *tv, int copyID));
- static int list_join_inner __ARGS((garray_T *gap, list_T *l, char_u *sep, int echo_style, int copyID, garray_T *join_gap));
- static int list_join __ARGS((garray_T *gap, list_T *l, char_u *sep, int echo, int copyID));
- static int free_unref_items __ARGS((int copyID));
-- static void set_ref_in_ht __ARGS((hashtab_T *ht, int copyID));
-- static void set_ref_in_list __ARGS((list_T *l, int copyID));
-- static void set_ref_in_item __ARGS((typval_T *tv, int copyID));
- static int rettv_dict_alloc __ARGS((typval_T *rettv));
- static void dict_free __ARGS((dict_T *d, int recurse));
- static dictitem_T *dictitem_copy __ARGS((dictitem_T *org));
---- 424,444 ----
-***************
-*** 654,659 ****
---- 645,656 ----
- static void f_prevnonblank __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_printf __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_pumvisible __ARGS((typval_T *argvars, typval_T *rettv));
-+ #ifdef FEAT_PYTHON3
-+ static void f_py3eval __ARGS((typval_T *argvars, typval_T *rettv));
-+ #endif
-+ #ifdef FEAT_PYTHON
-+ static void f_pyeval __ARGS((typval_T *argvars, typval_T *rettv));
-+ #endif
- static void f_range __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_readfile __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_reltime __ARGS((typval_T *argvars, typval_T *rettv));
-***************
-*** 824,831 ****
- static char_u *autoload_name __ARGS((char_u *name));
- static void cat_func_name __ARGS((char_u *buf, ufunc_T *fp));
- static void func_free __ARGS((ufunc_T *fp));
-- static void func_unref __ARGS((char_u *name));
-- static void func_ref __ARGS((char_u *name));
- static void call_user_func __ARGS((ufunc_T *fp, int argcount, typval_T *argvars, typval_T *rettv, linenr_T firstline, linenr_T lastline, dict_T *selfdict));
- static int can_free_funccal __ARGS((funccall_T *fc, int copyID)) ;
- static void free_funccal __ARGS((funccall_T *fc, int free_val));
---- 821,826 ----
-***************
-*** 5927,5933 ****
- /*
- * Allocate a list item.
- */
-! static listitem_T *
- listitem_alloc()
- {
- return (listitem_T *)alloc(sizeof(listitem_T));
---- 5922,5928 ----
- /*
- * Allocate a list item.
- */
-! listitem_T *
- listitem_alloc()
- {
- return (listitem_T *)alloc(sizeof(listitem_T));
-***************
-*** 5947,5953 ****
- /*
- * Remove a list item from a List and free it. Also clears the value.
- */
-! static void
- listitem_remove(l, item)
- list_T *l;
- listitem_T *item;
---- 5942,5948 ----
- /*
- * Remove a list item from a List and free it. Also clears the value.
- */
-! void
- listitem_remove(l, item)
- list_T *l;
- listitem_T *item;
-***************
-*** 6123,6129 ****
- * A negative index is counted from the end; -1 is the last item.
- * Returns NULL when "n" is out of range.
- */
-! static listitem_T *
- list_find(l, n)
- list_T *l;
- long n;
---- 6118,6124 ----
- * A negative index is counted from the end; -1 is the last item.
- * Returns NULL when "n" is out of range.
- */
-! listitem_T *
- list_find(l, n)
- list_T *l;
- long n;
-***************
-*** 6265,6271 ****
- /*
- * Append item "item" to the end of list "l".
- */
-! static void
- list_append(l, item)
- list_T *l;
- listitem_T *item;
---- 6260,6266 ----
- /*
- * Append item "item" to the end of list "l".
- */
-! void
- list_append(l, item)
- list_T *l;
- listitem_T *item;
-***************
-*** 6378,6384 ****
- * If "item" is NULL append at the end.
- * Return FAIL when out of memory.
- */
-! static int
- list_insert_tv(l, tv, item)
- list_T *l;
- typval_T *tv;
---- 6373,6379 ----
- * If "item" is NULL append at the end.
- * Return FAIL when out of memory.
- */
-! int
- list_insert_tv(l, tv, item)
- list_T *l;
- typval_T *tv;
-***************
-*** 6523,6529 ****
- * Remove items "item" to "item2" from list "l".
- * Does not free the listitem or the value!
- */
-! static void
- list_remove(l, item, item2)
- list_T *l;
- listitem_T *item;
---- 6518,6524 ----
- * Remove items "item" to "item2" from list "l".
- * Does not free the listitem or the value!
- */
-! void
- list_remove(l, item, item2)
- list_T *l;
- listitem_T *item;
-***************
-*** 6785,6790 ****
---- 6780,6793 ----
- set_ref_in_lua(copyID);
- #endif
-
-+ #ifdef FEAT_PYTHON
-+ set_ref_in_python(copyID);
-+ #endif
-+
-+ #ifdef FEAT_PYTHON3
-+ set_ref_in_python3(copyID);
-+ #endif
-+
- /*
- * 2. Free lists and dictionaries that are not referenced.
- */
-***************
-*** 6870,6876 ****
- /*
- * Mark all lists and dicts referenced through hashtab "ht" with "copyID".
- */
-! static void
- set_ref_in_ht(ht, copyID)
- hashtab_T *ht;
- int copyID;
---- 6873,6879 ----
- /*
- * Mark all lists and dicts referenced through hashtab "ht" with "copyID".
- */
-! void
- set_ref_in_ht(ht, copyID)
- hashtab_T *ht;
- int copyID;
-***************
-*** 6890,6896 ****
- /*
- * Mark all lists and dicts referenced through list "l" with "copyID".
- */
-! static void
- set_ref_in_list(l, copyID)
- list_T *l;
- int copyID;
---- 6893,6899 ----
- /*
- * Mark all lists and dicts referenced through list "l" with "copyID".
- */
-! void
- set_ref_in_list(l, copyID)
- list_T *l;
- int copyID;
-***************
-*** 6904,6910 ****
- /*
- * Mark all lists and dicts referenced through typval "tv" with "copyID".
- */
-! static void
- set_ref_in_item(tv, copyID)
- typval_T *tv;
- int copyID;
---- 6907,6913 ----
- /*
- * Mark all lists and dicts referenced through typval "tv" with "copyID".
- */
-! void
- set_ref_in_item(tv, copyID)
- typval_T *tv;
- int copyID;
-***************
-*** 7986,7991 ****
---- 7989,8000 ----
- {"prevnonblank", 1, 1, f_prevnonblank},
- {"printf", 2, 19, f_printf},
- {"pumvisible", 0, 0, f_pumvisible},
-+ #ifdef FEAT_PYTHON3
-+ {"py3eval", 1, 1, f_py3eval},
-+ #endif
-+ #ifdef FEAT_PYTHON
-+ {"pyeval", 1, 1, f_pyeval},
-+ #endif
- {"range", 1, 3, f_range},
- {"readfile", 1, 3, f_readfile},
- {"reltime", 0, 2, f_reltime},
-***************
-*** 9150,9155 ****
---- 9159,9203 ----
- #endif
- }
-
-+ int
-+ func_call(name, args, selfdict, rettv)
-+ char_u *name;
-+ typval_T *args;
-+ dict_T *selfdict;
-+ typval_T *rettv;
-+ {
-+ listitem_T *item;
-+ typval_T argv[MAX_FUNC_ARGS + 1];
-+ int argc = 0;
-+ int dummy;
-+ int r = 0;
-+
-+ for (item = args->vval.v_list->lv_first; item != NULL;
-+ item = item->li_next)
-+ {
-+ if (argc == MAX_FUNC_ARGS)
-+ {
-+ EMSG(_("E699: Too many arguments"));
-+ break;
-+ }
-+ /* Make a copy of each argument. This is needed to be able to set
-+ * v_lock to VAR_FIXED in the copy without changing the original list.
-+ */
-+ copy_tv(&item->li_tv, &argv[argc++]);
-+ }
-+
-+ if (item == NULL)
-+ r = call_func(name, (int)STRLEN(name), rettv, argc, argv,
-+ curwin->w_cursor.lnum, curwin->w_cursor.lnum,
-+ &dummy, TRUE, selfdict);
-+
-+ /* Free the arguments. */
-+ while (argc > 0)
-+ clear_tv(&argv[--argc]);
-+
-+ return r;
-+ }
-+
- /*
- * "call(func, arglist)" function
- */
-***************
-*** 9159,9168 ****
- typval_T *rettv;
- {
- char_u *func;
-- typval_T argv[MAX_FUNC_ARGS + 1];
-- int argc = 0;
-- listitem_T *item;
-- int dummy;
- dict_T *selfdict = NULL;
-
- if (argvars[1].v_type != VAR_LIST)
---- 9207,9212 ----
-***************
-*** 9190,9217 ****
- selfdict = argvars[2].vval.v_dict;
- }
-
-! for (item = argvars[1].vval.v_list->lv_first; item != NULL;
-! item = item->li_next)
-! {
-! if (argc == MAX_FUNC_ARGS)
-! {
-! EMSG(_("E699: Too many arguments"));
-! break;
-! }
-! /* Make a copy of each argument. This is needed to be able to set
-! * v_lock to VAR_FIXED in the copy without changing the original list.
-! */
-! copy_tv(&item->li_tv, &argv[argc++]);
-! }
-!
-! if (item == NULL)
-! (void)call_func(func, (int)STRLEN(func), rettv, argc, argv,
-! curwin->w_cursor.lnum, curwin->w_cursor.lnum,
-! &dummy, TRUE, selfdict);
-!
-! /* Free the arguments. */
-! while (argc > 0)
-! clear_tv(&argv[--argc]);
- }
-
- #ifdef FEAT_FLOAT
---- 9234,9240 ----
- selfdict = argvars[2].vval.v_dict;
- }
-
-! (void)func_call(func, &argvars[1], selfdict, rettv);
- }
-
- #ifdef FEAT_FLOAT
-***************
-*** 14424,14429 ****
---- 14447,14486 ----
- #endif
- }
-
-+ #ifdef FEAT_PYTHON3
-+ /*
-+ * "py3eval()" function
-+ */
-+ static void
-+ f_py3eval(argvars, rettv)
-+ typval_T *argvars;
-+ typval_T *rettv;
-+ {
-+ char_u *str;
-+ char_u buf[NUMBUFLEN];
-+
-+ str = get_tv_string_buf(&argvars[0], buf);
-+ do_py3eval(str, rettv);
-+ }
-+ #endif
-+
-+ #ifdef FEAT_PYTHON
-+ /*
-+ * "pyeval()" function
-+ */
-+ static void
-+ f_pyeval(argvars, rettv)
-+ typval_T *argvars;
-+ typval_T *rettv;
-+ {
-+ char_u *str;
-+ char_u buf[NUMBUFLEN];
-+
-+ str = get_tv_string_buf(&argvars[0], buf);
-+ do_pyeval(str, rettv);
-+ }
-+ #endif
-+
- /*
- * "range()" function
- */
-***************
-*** 22139,22145 ****
- * Unreference a Function: decrement the reference count and free it when it
- * becomes zero. Only for numbered functions.
- */
-! static void
- func_unref(name)
- char_u *name;
- {
---- 22196,22202 ----
- * Unreference a Function: decrement the reference count and free it when it
- * becomes zero. Only for numbered functions.
- */
-! void
- func_unref(name)
- char_u *name;
- {
-***************
-*** 22163,22169 ****
- /*
- * Count a reference to a Function.
- */
-! static void
- func_ref(name)
- char_u *name;
- {
---- 22220,22226 ----
- /*
- * Count a reference to a Function.
- */
-! void
- func_ref(name)
- char_u *name;
- {
-*** ../vim-7.3.568/src/if_lua.c 2012-04-06 14:30:55.000000000 +0200
---- src/if_lua.c 2012-06-20 18:16:33.000000000 +0200
-***************
-*** 199,207 ****
- lua_Number (*dll_lua_tonumberx) (lua_State *L, int idx, int *isnum);
- lua_Integer (*dll_lua_tointegerx) (lua_State *L, int idx, int *isnum);
- void (*dll_lua_callk) (lua_State *L, int nargs, int nresults, int ctx,
-! lua_CFunction k);
- int (*dll_lua_pcallk) (lua_State *L, int nargs, int nresults, int errfunc,
-! int ctx, lua_CFunction k);
- void (*dll_lua_getglobal) (lua_State *L, const char *var);
- void (*dll_lua_setglobal) (lua_State *L, const char *var);
- #endif
---- 199,207 ----
- lua_Number (*dll_lua_tonumberx) (lua_State *L, int idx, int *isnum);
- lua_Integer (*dll_lua_tointegerx) (lua_State *L, int idx, int *isnum);
- void (*dll_lua_callk) (lua_State *L, int nargs, int nresults, int ctx,
-! lua_CFunction k);
- int (*dll_lua_pcallk) (lua_State *L, int nargs, int nresults, int errfunc,
-! int ctx, lua_CFunction k);
- void (*dll_lua_getglobal) (lua_State *L, const char *var);
- void (*dll_lua_setglobal) (lua_State *L, const char *var);
- #endif
-***************
-*** 394,400 ****
- luaL_typeerror (lua_State *L, int narg, const char *tname)
- {
- const char *msg = lua_pushfstring(L, "%s expected, got %s",
-! tname, luaL_typename(L, narg));
- return luaL_argerror(L, narg, msg);
- }
- #endif
---- 394,400 ----
- luaL_typeerror (lua_State *L, int narg, const char *tname)
- {
- const char *msg = lua_pushfstring(L, "%s expected, got %s",
-! tname, luaL_typename(L, narg));
- return luaL_argerror(L, narg, msg);
- }
- #endif
-***************
-*** 646,786 ****
- return 1; \
- }
-
--
-- /* adapted from eval.c */
--
-- #define listitem_alloc() (listitem_T *)alloc(sizeof(listitem_T))
--
-- static listitem_T *
-- list_find (list_T *l, long n)
-- {
-- listitem_T *li;
-- if (l == NULL || n < -l->lv_len || n >= l->lv_len)
-- return NULL;
-- if (n < 0) /* search backward? */
-- for (li = l->lv_last; n < -1; li = li->li_prev)
-- n++;
-- else /* search forward */
-- for (li = l->lv_first; n > 0; li = li->li_next)
-- n--;
-- return li;
-- }
--
-- static void
-- list_remove (list_T *l, listitem_T *li)
-- {
-- listwatch_T *lw;
-- --l->lv_len;
-- /* fix watchers */
-- for (lw = l->lv_watch; lw != NULL; lw = lw->lw_next)
-- if (lw->lw_item == li)
-- lw->lw_item = li->li_next;
-- /* fix list pointers */
-- if (li->li_next == NULL) /* last? */
-- l->lv_last = li->li_prev;
-- else
-- li->li_next->li_prev = li->li_prev;
-- if (li->li_prev == NULL) /* first? */
-- l->lv_first = li->li_next;
-- else
-- li->li_prev->li_next = li->li_next;
-- l->lv_idx_item = NULL;
-- }
--
-- static void
-- list_append(list_T *l, listitem_T *item)
-- {
-- if (l->lv_last == NULL) /* empty list? */
-- l->lv_first = item;
-- else
-- l->lv_last->li_next = item;
-- item->li_prev = l->lv_last;
-- item->li_next = NULL;
-- l->lv_last = item;
-- ++l->lv_len;
-- }
--
-- static int
-- list_insert_tv(list_T *l, typval_T *tv, listitem_T *item)
-- {
-- listitem_T *ni = listitem_alloc();
--
-- if (ni == NULL)
-- return FAIL;
-- copy_tv(tv, &ni->li_tv);
-- if (item == NULL)
-- list_append(l, ni);
-- else
-- {
-- ni->li_prev = item->li_prev;
-- ni->li_next = item;
-- if (item->li_prev == NULL)
-- {
-- l->lv_first = ni;
-- ++l->lv_idx;
-- }
-- else
-- {
-- item->li_prev->li_next = ni;
-- l->lv_idx_item = NULL;
-- }
-- item->li_prev = ni;
-- ++l->lv_len;
-- }
-- return OK;
-- }
--
-- /* set references */
--
-- static void set_ref_in_tv (typval_T *tv, int copyID);
--
-- static void
-- set_ref_in_dict(dict_T *d, int copyID)
-- {
-- hashtab_T *ht = &d->dv_hashtab;
-- int n = ht->ht_used;
-- hashitem_T *hi;
-- for (hi = ht->ht_array; n > 0; ++hi)
-- if (!HASHITEM_EMPTY(hi))
-- {
-- dictitem_T *di = dict_lookup(hi);
-- set_ref_in_tv(&di->di_tv, copyID);
-- --n;
-- }
-- }
--
-- static void
-- set_ref_in_list(list_T *l, int copyID)
-- {
-- listitem_T *li;
-- for (li = l->lv_first; li != NULL; li = li->li_next)
-- set_ref_in_tv(&li->li_tv, copyID);
-- }
--
-- static void
-- set_ref_in_tv(typval_T *tv, int copyID)
-- {
-- if (tv->v_type == VAR_LIST)
-- {
-- list_T *l = tv->vval.v_list;
-- if (l != NULL && l->lv_copyID != copyID)
-- {
-- l->lv_copyID = copyID;
-- set_ref_in_list(l, copyID);
-- }
-- }
-- else if (tv->v_type == VAR_DICT)
-- {
-- dict_T *d = tv->vval.v_dict;
-- if (d != NULL && d->dv_copyID != copyID)
-- {
-- d->dv_copyID = copyID;
-- set_ref_in_dict(d, copyID);
-- }
-- }
-- }
--
--
- /* ======= List type ======= */
-
- static luaV_List *
---- 646,651 ----
-***************
-*** 876,882 ****
- if (li == NULL) return 0;
- if (lua_isnil(L, 3)) /* remove? */
- {
-! list_remove(l, li);
- clear_tv(&li->li_tv);
- vim_free(li);
- }
---- 741,747 ----
- if (li == NULL) return 0;
- if (lua_isnil(L, 3)) /* remove? */
- {
-! list_remove(l, li, li);
- clear_tv(&li->li_tv);
- vim_free(li);
- }
-***************
-*** 904,911 ****
- typval_T v;
- lua_settop(L, 2);
- luaV_totypval(L, 2, &v);
-! copy_tv(&v, &li->li_tv);
-! list_append(l, li);
- }
- lua_settop(L, 1);
- return 1;
---- 769,775 ----
- typval_T v;
- lua_settop(L, 2);
- luaV_totypval(L, 2, &v);
-! list_append_tv(l, &v);
- }
- lua_settop(L, 1);
- return 1;
-***************
-*** 1682,1688 ****
- tv.vval.v_dict = (dict_T *) lua_touserdata(L, 4); /* key */
- }
- lua_pop(L, 2); /* metatable and value */
-! set_ref_in_tv(&tv, copyID);
- }
- return 0;
- }
---- 1546,1552 ----
- tv.vval.v_dict = (dict_T *) lua_touserdata(L, 4); /* key */
- }
- lua_pop(L, 2); /* metatable and value */
-! set_ref_in_item(&tv, copyID);
- }
- return 0;
- }
-*** ../vim-7.3.568/src/if_py_both.h 2012-04-20 13:31:16.000000000 +0200
---- src/if_py_both.h 2012-06-29 12:03:52.000000000 +0200
-***************
-*** 1,4 ****
-! /* vi:set ts=8 sts=4 sw=4:
- *
- * VIM - Vi IMproved by Bram Moolenaar
- *
---- 1,4 ----
-! /* vi:set ts=8 sts=4 sw=4 noet:
- *
- * VIM - Vi IMproved by Bram Moolenaar
- *
-***************
-*** 105,111 ****
- return NULL;
- Py_INCREF(list);
-
-! if (!PyList_Check(list)) {
- PyErr_SetString(PyExc_TypeError, _("writelines() requires list of strings"));
- Py_DECREF(list);
- return NULL;
---- 105,112 ----
- return NULL;
- Py_INCREF(list);
-
-! if (!PyList_Check(list))
-! {
- PyErr_SetString(PyExc_TypeError, _("writelines() requires list of strings"));
- Py_DECREF(list);
- return NULL;
-***************
-*** 119,125 ****
- char *str = NULL;
- PyInt len;
-
-! if (!PyArg_Parse(line, "et#", ENC_OPT, &str, &len)) {
- PyErr_SetString(PyExc_TypeError, _("writelines() requires list of strings"));
- Py_DECREF(list);
- return NULL;
---- 120,127 ----
- char *str = NULL;
- PyInt len;
-
-! if (!PyArg_Parse(line, "et#", ENC_OPT, &str, &len))
-! {
- PyErr_SetString(PyExc_TypeError, _("writelines() requires list of strings"));
- Py_DECREF(list);
- return NULL;
-***************
-*** 297,303 ****
- {
- PyObject *result;
- PyObject *newObj;
-! char ptrBuf[NUMBUFLEN];
-
- /* Avoid infinite recursion */
- if (depth > 100)
---- 299,305 ----
- {
- PyObject *result;
- PyObject *newObj;
-! char ptrBuf[sizeof(void *) * 2 + 3];
-
- /* Avoid infinite recursion */
- if (depth > 100)
-***************
-*** 312,320 ****
- if ((our_tv->v_type == VAR_LIST && our_tv->vval.v_list != NULL)
- || (our_tv->v_type == VAR_DICT && our_tv->vval.v_dict != NULL))
- {
-! sprintf(ptrBuf, PRINTF_DECIMAL_LONG_U,
-! our_tv->v_type == VAR_LIST ? (long_u)our_tv->vval.v_list
-! : (long_u)our_tv->vval.v_dict);
- result = PyDict_GetItemString(lookupDict, ptrBuf);
- if (result != NULL)
- {
---- 314,322 ----
- if ((our_tv->v_type == VAR_LIST && our_tv->vval.v_list != NULL)
- || (our_tv->v_type == VAR_DICT && our_tv->vval.v_dict != NULL))
- {
-! sprintf(ptrBuf, "%p",
-! our_tv->v_type == VAR_LIST ? (void *)our_tv->vval.v_list
-! : (void *)our_tv->vval.v_dict);
- result = PyDict_GetItemString(lookupDict, ptrBuf);
- if (result != NULL)
- {
-***************
-*** 374,509 ****
- hashitem_T *hi;
- dictitem_T *di;
-
-! PyDict_SetItemString(lookupDict, ptrBuf, result);
-
-! for (hi = ht->ht_array; todo > 0; ++hi)
- {
-! if (!HASHITEM_EMPTY(hi))
-! {
-! --todo;
-!
-! di = dict_lookup(hi);
-! newObj = VimToPython(&di->di_tv, depth + 1, lookupDict);
-! PyDict_SetItemString(result, (char *)hi->hi_key, newObj);
-! Py_DECREF(newObj);
-! }
- }
- }
- }
-! else
- {
-! Py_INCREF(Py_None);
-! result = Py_None;
- }
-
-! return result;
- }
-- #endif
-
- static PyObject *
-! VimEval(PyObject *self UNUSED, PyObject *args UNUSED)
- {
-! #ifdef FEAT_EVAL
-! char *expr;
-! typval_T *our_tv;
-! PyObject *result;
-! PyObject *lookup_dict;
-
-! if (!PyArg_ParseTuple(args, "s", &expr))
- return NULL;
-
-! Py_BEGIN_ALLOW_THREADS
-! Python_Lock_Vim();
-! our_tv = eval_expr((char_u *)expr, NULL);
-!
-! Python_Release_Vim();
-! Py_END_ALLOW_THREADS
-!
-! if (our_tv == NULL)
- {
-! PyErr_SetVim(_("invalid expression"));
- return NULL;
- }
-
-- /* Convert the Vim type into a Python type. Create a dictionary that's
-- * used to check for recursive loops. */
- lookup_dict = PyDict_New();
-! result = VimToPython(our_tv, 1, lookup_dict);
- Py_DECREF(lookup_dict);
-
-!
-! Py_BEGIN_ALLOW_THREADS
-! Python_Lock_Vim();
-! free_tv(our_tv);
-! Python_Release_Vim();
-! Py_END_ALLOW_THREADS
-!
-! return result;
-! #else
-! PyErr_SetVim(_("expressions disabled at compile time"));
-! return NULL;
-! #endif
- }
-
-! /*
-! * Vim module - Definitions
-! */
-!
-! static struct PyMethodDef VimMethods[] = {
-! /* name, function, calling, documentation */
-! {"command", VimCommand, 1, "Execute a Vim ex-mode command" },
-! {"eval", VimEval, 1, "Evaluate an expression using Vim evaluator" },
-! { NULL, NULL, 0, NULL }
- };
-
- typedef struct
- {
- PyObject_HEAD
-! buf_T *buf;
-! }
-! BufferObject;
-
-! #define INVALID_BUFFER_VALUE ((buf_T *)(-1))
-!
-! /*
-! * Buffer list object - Implementation
-! */
-
-! static PyInt
-! BufListLength(PyObject *self UNUSED)
- {
-! buf_T *b = firstbuf;
-! PyInt n = 0;
-
-! while (b)
- {
-! ++n;
-! b = b->b_next;
- }
-!
-! return n;
- }
-
- static PyObject *
-! BufListItem(PyObject *self UNUSED, PyInt n)
- {
-! buf_T *b;
-
-! for (b = firstbuf; b; b = b->b_next, --n)
- {
-! if (n == 0)
-! return BufferNew(b);
- }
-
-! PyErr_SetString(PyExc_IndexError, _("no such buffer"));
-! return NULL;
- }
-
-! typedef struct
-! {
-! PyObject_HEAD
-! win_T *win;
-! } WindowObject;
-
- #define INVALID_WINDOW_VALUE ((win_T *)(-1))
-
---- 376,1325 ----
- hashitem_T *hi;
- dictitem_T *di;
-
-! PyDict_SetItemString(lookupDict, ptrBuf, result);
-!
-! for (hi = ht->ht_array; todo > 0; ++hi)
-! {
-! if (!HASHITEM_EMPTY(hi))
-! {
-! --todo;
-!
-! di = dict_lookup(hi);
-! newObj = VimToPython(&di->di_tv, depth + 1, lookupDict);
-! PyDict_SetItemString(result, (char *)hi->hi_key, newObj);
-! Py_DECREF(newObj);
-! }
-! }
-! }
-! }
-! else
-! {
-! Py_INCREF(Py_None);
-! result = Py_None;
-! }
-!
-! return result;
-! }
-! #endif
-!
-! static PyObject *
-! VimEval(PyObject *self UNUSED, PyObject *args UNUSED)
-! {
-! #ifdef FEAT_EVAL
-! char *expr;
-! typval_T *our_tv;
-! PyObject *result;
-! PyObject *lookup_dict;
-!
-! if (!PyArg_ParseTuple(args, "s", &expr))
-! return NULL;
-!
-! Py_BEGIN_ALLOW_THREADS
-! Python_Lock_Vim();
-! our_tv = eval_expr((char_u *)expr, NULL);
-!
-! Python_Release_Vim();
-! Py_END_ALLOW_THREADS
-!
-! if (our_tv == NULL)
-! {
-! PyErr_SetVim(_("invalid expression"));
-! return NULL;
-! }
-!
-! /* Convert the Vim type into a Python type. Create a dictionary that's
-! * used to check for recursive loops. */
-! lookup_dict = PyDict_New();
-! result = VimToPython(our_tv, 1, lookup_dict);
-! Py_DECREF(lookup_dict);
-!
-!
-! Py_BEGIN_ALLOW_THREADS
-! Python_Lock_Vim();
-! free_tv(our_tv);
-! Python_Release_Vim();
-! Py_END_ALLOW_THREADS
-!
-! return result;
-! #else
-! PyErr_SetVim(_("expressions disabled at compile time"));
-! return NULL;
-! #endif
-! }
-!
-! static PyObject *ConvertToPyObject(typval_T *);
-!
-! static PyObject *
-! VimEvalPy(PyObject *self UNUSED, PyObject *args UNUSED)
-! {
-! #ifdef FEAT_EVAL
-! char *expr;
-! typval_T *our_tv;
-! PyObject *result;
-!
-! if (!PyArg_ParseTuple(args, "s", &expr))
-! return NULL;
-!
-! Py_BEGIN_ALLOW_THREADS
-! Python_Lock_Vim();
-! our_tv = eval_expr((char_u *)expr, NULL);
-!
-! Python_Release_Vim();
-! Py_END_ALLOW_THREADS
-!
-! if (our_tv == NULL)
-! {
-! PyErr_SetVim(_("invalid expression"));
-! return NULL;
-! }
-!
-! result = ConvertToPyObject(our_tv);
-! Py_BEGIN_ALLOW_THREADS
-! Python_Lock_Vim();
-! free_tv(our_tv);
-! Python_Release_Vim();
-! Py_END_ALLOW_THREADS
-!
-! return result;
-! #else
-! PyErr_SetVim(_("expressions disabled at compile time"));
-! return NULL;
-! #endif
-! }
-!
-! static PyObject *
-! VimStrwidth(PyObject *self UNUSED, PyObject *args)
-! {
-! char *expr;
-!
-! if (!PyArg_ParseTuple(args, "s", &expr))
-! return NULL;
-!
-! return PyLong_FromLong(mb_string2cells((char_u *)expr, STRLEN(expr)));
-! }
-!
-! /*
-! * Vim module - Definitions
-! */
-!
-! static struct PyMethodDef VimMethods[] = {
-! /* name, function, calling, documentation */
-! {"command", VimCommand, 1, "Execute a Vim ex-mode command" },
-! {"eval", VimEval, 1, "Evaluate an expression using Vim evaluator" },
-! {"bindeval", VimEvalPy, 1, "Like eval(), but returns objects attached to vim ones"},
-! {"strwidth", VimStrwidth, 1, "Screen string width, counts <Tab> as having width 1"},
-! { NULL, NULL, 0, NULL }
-! };
-!
-! typedef struct
-! {
-! PyObject_HEAD
-! buf_T *buf;
-! } BufferObject;
-!
-! #define INVALID_BUFFER_VALUE ((buf_T *)(-1))
-!
-! /*
-! * Buffer list object - Implementation
-! */
-!
-! static PyInt
-! BufListLength(PyObject *self UNUSED)
-! {
-! buf_T *b = firstbuf;
-! PyInt n = 0;
-!
-! while (b)
-! {
-! ++n;
-! b = b->b_next;
-! }
-!
-! return n;
-! }
-!
-! static PyObject *
-! BufListItem(PyObject *self UNUSED, PyInt n)
-! {
-! buf_T *b;
-!
-! for (b = firstbuf; b; b = b->b_next, --n)
-! {
-! if (n == 0)
-! return BufferNew(b);
-! }
-!
-! PyErr_SetString(PyExc_IndexError, _("no such buffer"));
-! return NULL;
-! }
-!
-! typedef struct
-! {
-! PyObject_HEAD
-! win_T *win;
-! } WindowObject;
-!
-! static int ConvertFromPyObject(PyObject *, typval_T *);
-! static int _ConvertFromPyObject(PyObject *, typval_T *, PyObject *);
-!
-! typedef struct pylinkedlist_S {
-! struct pylinkedlist_S *pll_next;
-! struct pylinkedlist_S *pll_prev;
-! PyObject *pll_obj;
-! } pylinkedlist_T;
-!
-! static pylinkedlist_T *lastdict = NULL;
-! static pylinkedlist_T *lastlist = NULL;
-!
-! static void
-! pyll_remove(pylinkedlist_T *ref, pylinkedlist_T **last)
-! {
-! if (ref->pll_prev == NULL)
-! {
-! if (ref->pll_next == NULL)
-! {
-! *last = NULL;
-! return;
-! }
-! }
-! else
-! ref->pll_prev->pll_next = ref->pll_next;
-!
-! if (ref->pll_next == NULL)
-! *last = ref->pll_prev;
-! else
-! ref->pll_next->pll_prev = ref->pll_prev;
-! }
-!
-! static void
-! pyll_add(PyObject *self, pylinkedlist_T *ref, pylinkedlist_T **last)
-! {
-! if (*last == NULL)
-! ref->pll_prev = NULL;
-! else
-! {
-! (*last)->pll_next = ref;
-! ref->pll_prev = *last;
-! }
-! ref->pll_next = NULL;
-! ref->pll_obj = self;
-! *last = ref;
-! }
-!
-! static PyTypeObject DictionaryType;
-!
-! typedef struct
-! {
-! PyObject_HEAD
-! dict_T *dict;
-! pylinkedlist_T ref;
-! } DictionaryObject;
-!
-! static PyObject *
-! DictionaryNew(dict_T *dict)
-! {
-! DictionaryObject *self;
-!
-! self = PyObject_NEW(DictionaryObject, &DictionaryType);
-! if (self == NULL)
-! return NULL;
-! self->dict = dict;
-! ++dict->dv_refcount;
-!
-! pyll_add((PyObject *)(self), &self->ref, &lastdict);
-!
-! return (PyObject *)(self);
-! }
-!
-! static int
-! pydict_to_tv(PyObject *obj, typval_T *tv, PyObject *lookupDict)
-! {
-! dict_T *d;
-! char_u *key;
-! dictitem_T *di;
-! PyObject *keyObject;
-! PyObject *valObject;
-! Py_ssize_t iter = 0;
-!
-! d = dict_alloc();
-! if (d == NULL)
-! {
-! PyErr_NoMemory();
-! return -1;
-! }
-!
-! tv->v_type = VAR_DICT;
-! tv->vval.v_dict = d;
-!
-! while (PyDict_Next(obj, &iter, &keyObject, &valObject))
-! {
-! DICTKEY_DECL
-!
-! if (keyObject == NULL)
-! return -1;
-! if (valObject == NULL)
-! return -1;
-!
-! DICTKEY_GET(-1)
-!
-! di = dictitem_alloc(key);
-!
-! DICTKEY_UNREF
-!
-! if (di == NULL)
-! {
-! PyErr_NoMemory();
-! return -1;
-! }
-! di->di_tv.v_lock = 0;
-!
-! if (_ConvertFromPyObject(valObject, &di->di_tv, lookupDict) == -1)
-! {
-! vim_free(di);
-! return -1;
-! }
-! if (dict_add(d, di) == FAIL)
-! {
-! vim_free(di);
-! PyErr_SetVim(_("failed to add key to dictionary"));
-! return -1;
-! }
-! }
-! return 0;
-! }
-!
-! static int
-! pymap_to_tv(PyObject *obj, typval_T *tv, PyObject *lookupDict)
-! {
-! dict_T *d;
-! char_u *key;
-! dictitem_T *di;
-! PyObject *list;
-! PyObject *litem;
-! PyObject *keyObject;
-! PyObject *valObject;
-! Py_ssize_t lsize;
-!
-! d = dict_alloc();
-! if (d == NULL)
-! {
-! PyErr_NoMemory();
-! return -1;
-! }
-!
-! tv->v_type = VAR_DICT;
-! tv->vval.v_dict = d;
-!
-! list = PyMapping_Items(obj);
-! lsize = PyList_Size(list);
-! while (lsize--)
-! {
-! DICTKEY_DECL
-!
-! litem = PyList_GetItem(list, lsize);
-! if (litem == NULL)
-! {
-! Py_DECREF(list);
-! return -1;
-! }
-!
-! keyObject = PyTuple_GetItem(litem, 0);
-! if (keyObject == NULL)
-! {
-! Py_DECREF(list);
-! Py_DECREF(litem);
-! return -1;
-! }
-!
-! DICTKEY_GET(-1)
-!
-! valObject = PyTuple_GetItem(litem, 1);
-! if (valObject == NULL)
-! {
-! Py_DECREF(list);
-! Py_DECREF(litem);
-! return -1;
-! }
-!
-! di = dictitem_alloc(key);
-!
-! DICTKEY_UNREF
-!
-! if (di == NULL)
-! {
-! Py_DECREF(list);
-! Py_DECREF(litem);
-! PyErr_NoMemory();
-! return -1;
-! }
-! di->di_tv.v_lock = 0;
-!
-! if (_ConvertFromPyObject(valObject, &di->di_tv, lookupDict) == -1)
-! {
-! vim_free(di);
-! Py_DECREF(list);
-! Py_DECREF(litem);
-! return -1;
-! }
-! if (dict_add(d, di) == FAIL)
-! {
-! vim_free(di);
-! Py_DECREF(list);
-! Py_DECREF(litem);
-! PyErr_SetVim(_("failed to add key to dictionary"));
-! return -1;
-! }
-! Py_DECREF(litem);
-! }
-! Py_DECREF(list);
-! return 0;
-! }
-!
-! static PyInt
-! DictionaryLength(PyObject *self)
-! {
-! return ((PyInt) ((((DictionaryObject *)(self))->dict->dv_hashtab.ht_used)));
-! }
-!
-! static PyObject *
-! DictionaryItem(PyObject *self, PyObject *keyObject)
-! {
-! char_u *key;
-! dictitem_T *val;
-! DICTKEY_DECL
-!
-! DICTKEY_GET(NULL)
-!
-! val = dict_find(((DictionaryObject *) (self))->dict, key, -1);
-!
-! DICTKEY_UNREF
-!
-! return ConvertToPyObject(&val->di_tv);
-! }
-!
-! static PyInt
-! DictionaryAssItem(PyObject *self, PyObject *keyObject, PyObject *valObject)
-! {
-! char_u *key;
-! typval_T tv;
-! dict_T *d = ((DictionaryObject *)(self))->dict;
-! dictitem_T *di;
-! DICTKEY_DECL
-!
-! if (d->dv_lock)
-! {
-! PyErr_SetVim(_("dict is locked"));
-! return -1;
-! }
-!
-! DICTKEY_GET(-1)
-!
-! di = dict_find(d, key, -1);
-!
-! if (valObject == NULL)
-! {
-! if (di == NULL)
-! {
-! PyErr_SetString(PyExc_IndexError, _("no such key in dictionary"));
-! return -1;
-! }
-! hashitem_T *hi = hash_find(&d->dv_hashtab, di->di_key);
-! hash_remove(&d->dv_hashtab, hi);
-! dictitem_free(di);
-! return 0;
-! }
-!
-! if (ConvertFromPyObject(valObject, &tv) == -1)
-! {
-! return -1;
-! }
-!
-! if (di == NULL)
-! {
-! di = dictitem_alloc(key);
-! if (di == NULL)
-! {
-! PyErr_NoMemory();
-! return -1;
-! }
-! di->di_tv.v_lock = 0;
-!
-! if (dict_add(d, di) == FAIL)
-! {
-! vim_free(di);
-! PyErr_SetVim(_("failed to add key to dictionary"));
-! return -1;
-! }
-! }
-! else
-! clear_tv(&di->di_tv);
-!
-! DICTKEY_UNREF
-!
-! copy_tv(&tv, &di->di_tv);
-! return 0;
-! }
-!
-! static PyObject *
-! DictionaryListKeys(PyObject *self)
-! {
-! dict_T *dict = ((DictionaryObject *)(self))->dict;
-! long_u todo = dict->dv_hashtab.ht_used;
-! Py_ssize_t i = 0;
-! PyObject *r;
-! hashitem_T *hi;
-!
-! r = PyList_New(todo);
-! for (hi = dict->dv_hashtab.ht_array; todo > 0; ++hi)
-! {
-! if (!HASHITEM_EMPTY(hi))
-! {
-! PyList_SetItem(r, i, PyBytes_FromString((char *)(hi->hi_key)));
-! --todo;
-! ++i;
-! }
-! }
-! return r;
-! }
-!
-! static struct PyMethodDef DictionaryMethods[] = {
-! {"keys", (PyCFunction)DictionaryListKeys, METH_NOARGS, ""},
-! { NULL, NULL, 0, NULL }
-! };
-!
-! static PyTypeObject ListType;
-!
-! typedef struct
-! {
-! PyObject_HEAD
-! list_T *list;
-! pylinkedlist_T ref;
-! } ListObject;
-!
-! static PyObject *
-! ListNew(list_T *list)
-! {
-! ListObject *self;
-!
-! self = PyObject_NEW(ListObject, &ListType);
-! if (self == NULL)
-! return NULL;
-! self->list = list;
-! ++list->lv_refcount;
-!
-! pyll_add((PyObject *)(self), &self->ref, &lastlist);
-!
-! return (PyObject *)(self);
-! }
-!
-! static int
-! list_py_concat(list_T *l, PyObject *obj, PyObject *lookupDict)
-! {
-! Py_ssize_t i;
-! Py_ssize_t lsize = PySequence_Size(obj);
-! PyObject *litem;
-! listitem_T *li;
-!
-! for(i=0; i<lsize; i++)
-! {
-! li = listitem_alloc();
-! if (li == NULL)
-! {
-! PyErr_NoMemory();
-! return -1;
-! }
-! li->li_tv.v_lock = 0;
-!
-! litem = PySequence_GetItem(obj, i);
-! if (litem == NULL)
-! return -1;
-! if (_ConvertFromPyObject(litem, &li->li_tv, lookupDict) == -1)
-! return -1;
-!
-! list_append(l, li);
-! }
-! return 0;
-! }
-!
-! static int
-! pyseq_to_tv(PyObject *obj, typval_T *tv, PyObject *lookupDict)
-! {
-! list_T *l;
-!
-! l = list_alloc();
-! if (l == NULL)
-! {
-! PyErr_NoMemory();
-! return -1;
-! }
-!
-! tv->v_type = VAR_LIST;
-! tv->vval.v_list = l;
-!
-! if (list_py_concat(l, obj, lookupDict) == -1)
-! return -1;
-!
-! return 0;
-! }
-!
-! static int
-! pyiter_to_tv(PyObject *obj, typval_T *tv, PyObject *lookupDict)
-! {
-! PyObject *iterator = PyObject_GetIter(obj);
-! PyObject *item;
-! list_T *l;
-! listitem_T *li;
-!
-! l = list_alloc();
-!
-! if (l == NULL)
-! {
-! PyErr_NoMemory();
-! return -1;
-! }
-!
-! tv->vval.v_list = l;
-! tv->v_type = VAR_LIST;
-!
-!
-! if (iterator == NULL)
-! return -1;
-!
-! while ((item = PyIter_Next(obj)))
-! {
-! li = listitem_alloc();
-! if (li == NULL)
-! {
-! PyErr_NoMemory();
-! return -1;
-! }
-! li->li_tv.v_lock = 0;
-!
-! if (_ConvertFromPyObject(item, &li->li_tv, lookupDict) == -1)
-! return -1;
-!
-! list_append(l, li);
-!
-! Py_DECREF(item);
-! }
-!
-! Py_DECREF(iterator);
-! return 0;
-! }
-!
-! static PyInt
-! ListLength(PyObject *self)
-! {
-! return ((PyInt) (((ListObject *) (self))->list->lv_len));
-! }
-!
-! static PyObject *
-! ListItem(PyObject *self, Py_ssize_t index)
-! {
-! listitem_T *li;
-!
-! if (index>=ListLength(self))
-! {
-! PyErr_SetString(PyExc_IndexError, "list index out of range");
-! return NULL;
-! }
-! li = list_find(((ListObject *) (self))->list, (long) index);
-! if (li == NULL)
-! {
-! PyErr_SetVim(_("internal error: failed to get vim list item"));
-! return NULL;
-! }
-! return ConvertToPyObject(&li->li_tv);
-! }
-!
-! #define PROC_RANGE \
-! if (last < 0) {\
-! if (last < -size) \
-! last = 0; \
-! else \
-! last += size; \
-! } \
-! if (first < 0) \
-! first = 0; \
-! if (first > size) \
-! first = size; \
-! if (last > size) \
-! last = size;
-!
-! static PyObject *
-! ListSlice(PyObject *self, Py_ssize_t first, Py_ssize_t last)
-! {
-! PyInt i;
-! PyInt size = ListLength(self);
-! PyInt n;
-! PyObject *list;
-! int reversed = 0;
-!
-! PROC_RANGE
-! if (first >= last)
-! first = last;
-!
-! n = last-first;
-! list = PyList_New(n);
-! if (list == NULL)
-! return NULL;
-!
-! for (i = 0; i < n; ++i)
-! {
-! PyObject *item = ListItem(self, i);
-! if (item == NULL)
-! {
-! Py_DECREF(list);
-! return NULL;
-! }
-!
-! if ((PyList_SetItem(list, ((reversed)?(n-i-1):(i)), item)))
-! {
-! Py_DECREF(item);
-! Py_DECREF(list);
-! return NULL;
-! }
-! }
-!
-! return list;
-! }
-!
-! static int
-! ListAssItem(PyObject *self, Py_ssize_t index, PyObject *obj)
-! {
-! typval_T tv;
-! list_T *l = ((ListObject *) (self))->list;
-! listitem_T *li;
-! Py_ssize_t length = ListLength(self);
-!
-! if (l->lv_lock)
-! {
-! PyErr_SetVim(_("list is locked"));
-! return -1;
-! }
-! if (index>length || (index==length && obj==NULL))
-! {
-! PyErr_SetString(PyExc_IndexError, "list index out of range");
-! return -1;
-! }
-!
-! if (obj == NULL)
-! {
-! li = list_find(l, (long) index);
-! list_remove(l, li, li);
-! clear_tv(&li->li_tv);
-! vim_free(li);
-! return 0;
-! }
-!
-! if (ConvertFromPyObject(obj, &tv) == -1)
-! return -1;
-!
-! if (index == length)
-! {
-! if (list_append_tv(l, &tv) == FAIL)
-! {
-! PyErr_SetVim(_("Failed to add item to list"));
-! return -1;
-! }
-! }
-! else
-! {
-! li = list_find(l, (long) index);
-! clear_tv(&li->li_tv);
-! copy_tv(&tv, &li->li_tv);
-! }
-! return 0;
-! }
-!
-! static int
-! ListAssSlice(PyObject *self, Py_ssize_t first, Py_ssize_t last, PyObject *obj)
-! {
-! PyInt size = ListLength(self);
-! Py_ssize_t i;
-! Py_ssize_t lsize;
-! PyObject *litem;
-! listitem_T *li;
-! listitem_T *next;
-! typval_T v;
-! list_T *l = ((ListObject *) (self))->list;
-!
-! if (l->lv_lock)
-! {
-! PyErr_SetVim(_("list is locked"));
-! return -1;
-! }
-!
-! PROC_RANGE
-
-! if (first == size)
-! li = NULL;
-! else
-! {
-! li = list_find(l, (long) first);
-! if (li == NULL)
-! {
-! PyErr_SetVim(_("internal error: no vim list item"));
-! return -1;
-! }
-! if (last > first)
-! {
-! i = last - first;
-! while (i-- && li != NULL)
- {
-! next = li->li_next;
-! listitem_remove(l, li);
-! li = next;
- }
- }
- }
-!
-! if (obj == NULL)
-! return 0;
-!
-! if (!PyList_Check(obj))
- {
-! PyErr_SetString(PyExc_TypeError, _("can only assign lists to slice"));
-! return -1;
- }
-
-! lsize = PyList_Size(obj);
-!
-! for(i=0; i<lsize; i++)
-! {
-! litem = PyList_GetItem(obj, i);
-! if (litem == NULL)
-! return -1;
-! if (ConvertFromPyObject(litem, &v) == -1)
-! return -1;
-! if (list_insert_tv(l, &v, li) == FAIL)
-! {
-! PyErr_SetVim(_("internal error: failed to add item to list"));
-! return -1;
-! }
-! }
-! return 0;
- }
-
- static PyObject *
-! ListConcatInPlace(PyObject *self, PyObject *obj)
- {
-! list_T *l = ((ListObject *) (self))->list;
-! PyObject *lookup_dict;
-
-! if (l->lv_lock)
-! {
-! PyErr_SetVim(_("list is locked"));
- return NULL;
-+ }
-
-! if (!PySequence_Check(obj))
- {
-! PyErr_SetString(PyExc_TypeError, _("can only concatenate with lists"));
- return NULL;
- }
-
- lookup_dict = PyDict_New();
-! if (list_py_concat(l, obj, lookup_dict) == -1)
-! {
-! Py_DECREF(lookup_dict);
-! return NULL;
-! }
- Py_DECREF(lookup_dict);
-
-! Py_INCREF(self);
-! return self;
- }
-
-! static struct PyMethodDef ListMethods[] = {
-! {"extend", (PyCFunction)ListConcatInPlace, METH_O, ""},
-! { NULL, NULL, 0, NULL }
- };
-
- typedef struct
- {
- PyObject_HEAD
-! char_u *name;
-! } FunctionObject;
-
-! static PyTypeObject FunctionType;
-
-! static PyObject *
-! FunctionNew(char_u *name)
- {
-! FunctionObject *self;
-
-! self = PyObject_NEW(FunctionObject, &FunctionType);
-! if (self == NULL)
-! return NULL;
-! self->name = PyMem_New(char_u, STRLEN(name) + 1);
-! if (self->name == NULL)
- {
-! PyErr_NoMemory();
-! return NULL;
- }
-! STRCPY(self->name, name);
-! func_ref(name);
-! return (PyObject *)(self);
- }
-
- static PyObject *
-! FunctionCall(PyObject *self, PyObject *argsObject, PyObject *kwargs)
- {
-! FunctionObject *this = (FunctionObject *)(self);
-! char_u *name = this->name;
-! typval_T args;
-! typval_T selfdicttv;
-! typval_T rettv;
-! dict_T *selfdict = NULL;
-! PyObject *selfdictObject;
-! PyObject *result;
-! int error;
-
-! if (ConvertFromPyObject(argsObject, &args) == -1)
-! return NULL;
-!
-! if (kwargs != NULL)
- {
-! selfdictObject = PyDict_GetItemString(kwargs, "self");
-! if (selfdictObject != NULL)
-! {
-! if (!PyDict_Check(selfdictObject))
-! {
-! PyErr_SetString(PyExc_TypeError, _("'self' argument must be a dictionary"));
-! clear_tv(&args);
-! return NULL;
-! }
-! if (ConvertFromPyObject(selfdictObject, &selfdicttv) == -1)
-! return NULL;
-! selfdict = selfdicttv.vval.v_dict;
-! }
- }
-
-! error = func_call(name, &args, selfdict, &rettv);
-! if (error != OK)
-! {
-! result = NULL;
-! PyErr_SetVim(_("failed to run function"));
-! }
-! else
-! result = ConvertToPyObject(&rettv);
-!
-! /* FIXME Check what should really be cleared. */
-! clear_tv(&args);
-! clear_tv(&rettv);
-! /*
-! * if (selfdict!=NULL)
-! * clear_tv(selfdicttv);
-! */
-!
-! return result;
- }
-
-! static struct PyMethodDef FunctionMethods[] = {
-! {"__call__", (PyCFunction)FunctionCall, METH_VARARGS|METH_KEYWORDS, ""},
-! { NULL, NULL, 0, NULL }
-! };
-
- #define INVALID_WINDOW_VALUE ((win_T *)(-1))
-
-***************
-*** 1567,1569 ****
---- 2383,2638 ----
- { NULL, NULL, 0, NULL }
- };
-
-+ static void
-+ set_ref_in_py(const int copyID)
-+ {
-+ pylinkedlist_T *cur;
-+ dict_T *dd;
-+ list_T *ll;
-+
-+ if (lastdict != NULL)
-+ for(cur = lastdict ; cur != NULL ; cur = cur->pll_prev)
-+ {
-+ dd = ((DictionaryObject *) (cur->pll_obj))->dict;
-+ if (dd->dv_copyID != copyID)
-+ {
-+ dd->dv_copyID = copyID;
-+ set_ref_in_ht(&dd->dv_hashtab, copyID);
-+ }
-+ }
-+
-+ if (lastlist != NULL)
-+ for(cur = lastlist ; cur != NULL ; cur = cur->pll_prev)
-+ {
-+ ll = ((ListObject *) (cur->pll_obj))->list;
-+ if (ll->lv_copyID != copyID)
-+ {
-+ ll->lv_copyID = copyID;
-+ set_ref_in_list(ll, copyID);
-+ }
-+ }
-+ }
-+
-+ static int
-+ set_string_copy(char_u *str, typval_T *tv)
-+ {
-+ tv->vval.v_string = vim_strsave(str);
-+ if (tv->vval.v_string == NULL)
-+ {
-+ PyErr_NoMemory();
-+ return -1;
-+ }
-+ return 0;
-+ }
-+
-+ #ifdef FEAT_EVAL
-+ typedef int (*pytotvfunc)(PyObject *, typval_T *, PyObject *);
-+
-+ static int
-+ convert_dl(PyObject *obj, typval_T *tv,
-+ pytotvfunc py_to_tv, PyObject *lookupDict)
-+ {
-+ PyObject *capsule;
-+ char hexBuf[sizeof(void *) * 2 + 3];
-+
-+ sprintf(hexBuf, "%p", obj);
-+
-+ capsule = PyDict_GetItemString(lookupDict, hexBuf);
-+ if (capsule == NULL)
-+ {
-+ capsule = PyCapsule_New(tv, NULL, NULL);
-+ PyDict_SetItemString(lookupDict, hexBuf, capsule);
-+ Py_DECREF(capsule);
-+ if (py_to_tv(obj, tv, lookupDict) == -1)
-+ {
-+ tv->v_type = VAR_UNKNOWN;
-+ return -1;
-+ }
-+ /* As we are not using copy_tv which increments reference count we must
-+ * do it ourself. */
-+ switch(tv->v_type)
-+ {
-+ case VAR_DICT: ++tv->vval.v_dict->dv_refcount; break;
-+ case VAR_LIST: ++tv->vval.v_list->lv_refcount; break;
-+ }
-+ }
-+ else
-+ {
-+ typval_T *v = PyCapsule_GetPointer(capsule, NULL);
-+ copy_tv(v, tv);
-+ }
-+ return 0;
-+ }
-+
-+ static int
-+ ConvertFromPyObject(PyObject *obj, typval_T *tv)
-+ {
-+ PyObject *lookup_dict;
-+ int r;
-+
-+ lookup_dict = PyDict_New();
-+ r = _ConvertFromPyObject(obj, tv, lookup_dict);
-+ Py_DECREF(lookup_dict);
-+ return r;
-+ }
-+
-+ static int
-+ _ConvertFromPyObject(PyObject *obj, typval_T *tv, PyObject *lookupDict)
-+ {
-+ if (obj->ob_type == &DictionaryType)
-+ {
-+ tv->v_type = VAR_DICT;
-+ tv->vval.v_dict = (((DictionaryObject *)(obj))->dict);
-+ ++tv->vval.v_dict->dv_refcount;
-+ }
-+ else if (obj->ob_type == &ListType)
-+ {
-+ tv->v_type = VAR_LIST;
-+ tv->vval.v_list = (((ListObject *)(obj))->list);
-+ ++tv->vval.v_list->lv_refcount;
-+ }
-+ else if (obj->ob_type == &FunctionType)
-+ {
-+ if (set_string_copy(((FunctionObject *) (obj))->name, tv) == -1)
-+ return -1;
-+
-+ tv->v_type = VAR_FUNC;
-+ func_ref(tv->vval.v_string);
-+ }
-+ #if PY_MAJOR_VERSION >= 3
-+ else if (PyBytes_Check(obj))
-+ {
-+ char_u *result = (char_u *) PyBytes_AsString(obj);
-+
-+ if (result == NULL)
-+ return -1;
-+
-+ if (set_string_copy(result, tv) == -1)
-+ return -1;
-+
-+ tv->v_type = VAR_STRING;
-+ }
-+ else if (PyUnicode_Check(obj))
-+ {
-+ PyObject *bytes;
-+ char_u *result;
-+
-+ bytes = PyString_AsBytes(obj);
-+ if (bytes == NULL)
-+ return -1;
-+
-+ result = (char_u *) PyBytes_AsString(bytes);
-+ if (result == NULL)
-+ return -1;
-+
-+ if (set_string_copy(result, tv) == -1)
-+ {
-+ Py_XDECREF(bytes);
-+ return -1;
-+ }
-+ Py_XDECREF(bytes);
-+
-+ tv->v_type = VAR_STRING;
-+ }
-+ #else
-+ else if (PyUnicode_Check(obj))
-+ {
-+ PyObject *bytes;
-+ char_u *result;
-+
-+ bytes = PyUnicode_AsEncodedString(obj, (char *)ENC_OPT, NULL);
-+ if (bytes == NULL)
-+ return -1;
-+
-+ result=(char_u *) PyString_AsString(bytes);
-+ if (result == NULL)
-+ return -1;
-+
-+ if (set_string_copy(result, tv) == -1)
-+ {
-+ Py_XDECREF(bytes);
-+ return -1;
-+ }
-+ Py_XDECREF(bytes);
-+
-+ tv->v_type = VAR_STRING;
-+ }
-+ else if (PyString_Check(obj))
-+ {
-+ char_u *result = (char_u *) PyString_AsString(obj);
-+
-+ if (result == NULL)
-+ return -1;
-+
-+ if (set_string_copy(result, tv) == -1)
-+ return -1;
-+
-+ tv->v_type = VAR_STRING;
-+ }
-+ else if (PyInt_Check(obj))
-+ {
-+ tv->v_type = VAR_NUMBER;
-+ tv->vval.v_number = (varnumber_T) PyInt_AsLong(obj);
-+ }
-+ #endif
-+ else if (PyLong_Check(obj))
-+ {
-+ tv->v_type = VAR_NUMBER;
-+ tv->vval.v_number = (varnumber_T) PyLong_AsLong(obj);
-+ }
-+ else if (PyDict_Check(obj))
-+ return convert_dl(obj, tv, pydict_to_tv, lookupDict);
-+ #ifdef FEAT_FLOAT
-+ else if (PyFloat_Check(obj))
-+ {
-+ tv->v_type = VAR_FLOAT;
-+ tv->vval.v_float = (float_T) PyFloat_AsDouble(obj);
-+ }
-+ #endif
-+ else if (PyIter_Check(obj))
-+ return convert_dl(obj, tv, pyiter_to_tv, lookupDict);
-+ else if (PySequence_Check(obj))
-+ return convert_dl(obj, tv, pyseq_to_tv, lookupDict);
-+ else if (PyMapping_Check(obj))
-+ return convert_dl(obj, tv, pymap_to_tv, lookupDict);
-+ else
-+ {
-+ PyErr_SetString(PyExc_TypeError, _("unable to convert to vim structure"));
-+ return -1;
-+ }
-+ return 0;
-+ }
-+
-+ static PyObject *
-+ ConvertToPyObject(typval_T *tv)
-+ {
-+ if (tv == NULL)
-+ {
-+ PyErr_SetVim(_("NULL reference passed"));
-+ return NULL;
-+ }
-+ switch (tv->v_type)
-+ {
-+ case VAR_STRING:
-+ return PyBytes_FromString((char *) tv->vval.v_string);
-+ case VAR_NUMBER:
-+ return PyLong_FromLong((long) tv->vval.v_number);
-+ #ifdef FEAT_FLOAT
-+ case VAR_FLOAT:
-+ return PyFloat_FromDouble((double) tv->vval.v_float);
-+ #endif
-+ case VAR_LIST:
-+ return ListNew(tv->vval.v_list);
-+ case VAR_DICT:
-+ return DictionaryNew(tv->vval.v_dict);
-+ case VAR_FUNC:
-+ return FunctionNew(tv->vval.v_string);
-+ case VAR_UNKNOWN:
-+ Py_INCREF(Py_None);
-+ return Py_None;
-+ default:
-+ PyErr_SetVim(_("internal error: invalid value type"));
-+ return NULL;
-+ }
-+ }
-+ #endif
-*** ../vim-7.3.568/src/if_python.c 2011-08-28 16:00:14.000000000 +0200
---- src/if_python.c 2012-06-29 12:47:48.000000000 +0200
-***************
-*** 1,4 ****
-! /* vi:set ts=8 sts=4 sw=4:
- *
- * VIM - Vi IMproved by Bram Moolenaar
- *
---- 1,4 ----
-! /* vi:set ts=8 sts=4 sw=4 noet:
- *
- * VIM - Vi IMproved by Bram Moolenaar
- *
-***************
-*** 56,61 ****
---- 56,63 ----
-
- static void init_structs(void);
-
-+ #define PyBytes_FromString PyString_FromString
-+
- /* No-op conversion functions, use with care! */
- #define PyString_AsBytes(obj) (obj)
- #define PyString_FreeBytes(obj)
-***************
-*** 122,132 ****
---- 124,136 ----
- /* This makes if_python.c compile without warnings against Python 2.5
- * on Win32 and Win64. */
- # undef PyRun_SimpleString
-+ # undef PyRun_String
- # undef PyArg_Parse
- # undef PyArg_ParseTuple
- # undef Py_BuildValue
- # undef Py_InitModule4
- # undef Py_InitModule4_64
-+ # undef PyObject_CallMethod
-
- /*
- * Wrapper defines
-***************
-*** 134,139 ****
---- 138,144 ----
- # define PyArg_Parse dll_PyArg_Parse
- # define PyArg_ParseTuple dll_PyArg_ParseTuple
- # define PyMem_Free dll_PyMem_Free
-+ # define PyMem_Malloc dll_PyMem_Malloc
- # define PyDict_SetItemString dll_PyDict_SetItemString
- # define PyErr_BadArgument dll_PyErr_BadArgument
- # define PyErr_Clear dll_PyErr_Clear
-***************
-*** 150,172 ****
---- 155,202 ----
- # endif
- # define PyInt_AsLong dll_PyInt_AsLong
- # define PyInt_FromLong dll_PyInt_FromLong
-+ # define PyLong_AsLong dll_PyLong_AsLong
-+ # define PyLong_FromLong dll_PyLong_FromLong
- # define PyInt_Type (*dll_PyInt_Type)
-+ # define PyLong_Type (*dll_PyLong_Type)
- # define PyList_GetItem dll_PyList_GetItem
- # define PyList_Append dll_PyList_Append
- # define PyList_New dll_PyList_New
- # define PyList_SetItem dll_PyList_SetItem
- # define PyList_Size dll_PyList_Size
- # define PyList_Type (*dll_PyList_Type)
-+ # define PySequence_Check dll_PySequence_Check
-+ # define PySequence_Size dll_PySequence_Size
-+ # define PySequence_GetItem dll_PySequence_GetItem
-+ # define PyTuple_Size dll_PyTuple_Size
-+ # define PyTuple_GetItem dll_PyTuple_GetItem
-+ # define PyTuple_Type (*dll_PyTuple_Type)
- # define PyImport_ImportModule dll_PyImport_ImportModule
- # define PyDict_New dll_PyDict_New
- # define PyDict_GetItemString dll_PyDict_GetItemString
-+ # define PyDict_Next dll_PyDict_Next
-+ # ifdef PyMapping_Items
-+ # define PY_NO_MAPPING_ITEMS
-+ # else
-+ # define PyMapping_Items dll_PyMapping_Items
-+ # endif
-+ # define PyObject_CallMethod dll_PyObject_CallMethod
-+ # define PyMapping_Check dll_PyMapping_Check
-+ # define PyIter_Next dll_PyIter_Next
- # define PyModule_GetDict dll_PyModule_GetDict
- # define PyRun_SimpleString dll_PyRun_SimpleString
-+ # define PyRun_String dll_PyRun_String
- # define PyString_AsString dll_PyString_AsString
- # define PyString_FromString dll_PyString_FromString
- # define PyString_FromStringAndSize dll_PyString_FromStringAndSize
- # define PyString_Size dll_PyString_Size
- # define PyString_Type (*dll_PyString_Type)
-+ # define PyUnicode_Type (*dll_PyUnicode_Type)
-+ # define PyUnicodeUCS4_AsEncodedString (*dll_PyUnicodeUCS4_AsEncodedString)
-+ # define PyFloat_AsDouble dll_PyFloat_AsDouble
-+ # define PyFloat_FromDouble dll_PyFloat_FromDouble
-+ # define PyFloat_Type (*dll_PyFloat_Type)
-+ # define PyImport_AddModule (*dll_PyImport_AddModule)
- # define PySys_SetObject dll_PySys_SetObject
- # define PySys_SetArgv dll_PySys_SetArgv
- # define PyType_Type (*dll_PyType_Type)
-***************
-*** 179,186 ****
---- 209,218 ----
- # define Py_Finalize dll_Py_Finalize
- # define Py_IsInitialized dll_Py_IsInitialized
- # define _PyObject_New dll__PyObject_New
-+ # define _PyObject_NextNotImplemented (*dll__PyObject_NextNotImplemented)
- # define _Py_NoneStruct (*dll__Py_NoneStruct)
- # define PyObject_Init dll__PyObject_Init
-+ # define PyObject_GetIter dll_PyObject_GetIter
- # if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02020000
- # define PyType_IsSubtype dll_PyType_IsSubtype
- # endif
-***************
-*** 188,193 ****
---- 220,227 ----
- # define PyObject_Malloc dll_PyObject_Malloc
- # define PyObject_Free dll_PyObject_Free
- # endif
-+ # define PyCapsule_New dll_PyCapsule_New
-+ # define PyCapsule_GetPointer dll_PyCapsule_GetPointer
-
- /*
- * Pointers for dynamic link
-***************
-*** 195,200 ****
---- 229,235 ----
- static int(*dll_PyArg_Parse)(PyObject *, char *, ...);
- static int(*dll_PyArg_ParseTuple)(PyObject *, char *, ...);
- static int(*dll_PyMem_Free)(void *);
-+ static void* (*dll_PyMem_Malloc)(size_t);
- static int(*dll_PyDict_SetItemString)(PyObject *dp, char *key, PyObject *item);
- static int(*dll_PyErr_BadArgument)(void);
- static void(*dll_PyErr_Clear)(void);
-***************
-*** 208,233 ****
- # ifdef PY_CAN_RECURSE
- static PyGILState_STATE (*dll_PyGILState_Ensure)(void);
- static void (*dll_PyGILState_Release)(PyGILState_STATE);
-! #endif
- static long(*dll_PyInt_AsLong)(PyObject *);
- static PyObject*(*dll_PyInt_FromLong)(long);
- static PyTypeObject* dll_PyInt_Type;
- static PyObject*(*dll_PyList_GetItem)(PyObject *, PyInt);
- static PyObject*(*dll_PyList_Append)(PyObject *, PyObject *);
- static PyObject*(*dll_PyList_New)(PyInt size);
- static int(*dll_PyList_SetItem)(PyObject *, PyInt, PyObject *);
- static PyInt(*dll_PyList_Size)(PyObject *);
- static PyTypeObject* dll_PyList_Type;
- static PyObject*(*dll_PyImport_ImportModule)(const char *);
- static PyObject*(*dll_PyDict_New)(void);
- static PyObject*(*dll_PyDict_GetItemString)(PyObject *, const char *);
- static PyObject*(*dll_PyModule_GetDict)(PyObject *);
- static int(*dll_PyRun_SimpleString)(char *);
- static char*(*dll_PyString_AsString)(PyObject *);
- static PyObject*(*dll_PyString_FromString)(const char *);
- static PyObject*(*dll_PyString_FromStringAndSize)(const char *, PyInt);
- static PyInt(*dll_PyString_Size)(PyObject *);
- static PyTypeObject* dll_PyString_Type;
- static int(*dll_PySys_SetObject)(char *, PyObject *);
- static int(*dll_PySys_SetArgv)(int, char **);
- static PyTypeObject* dll_PyType_Type;
---- 243,290 ----
- # ifdef PY_CAN_RECURSE
- static PyGILState_STATE (*dll_PyGILState_Ensure)(void);
- static void (*dll_PyGILState_Release)(PyGILState_STATE);
-! # endif
- static long(*dll_PyInt_AsLong)(PyObject *);
- static PyObject*(*dll_PyInt_FromLong)(long);
-+ static long(*dll_PyLong_AsLong)(PyObject *);
-+ static PyObject*(*dll_PyLong_FromLong)(long);
- static PyTypeObject* dll_PyInt_Type;
-+ static PyTypeObject* dll_PyLong_Type;
- static PyObject*(*dll_PyList_GetItem)(PyObject *, PyInt);
- static PyObject*(*dll_PyList_Append)(PyObject *, PyObject *);
- static PyObject*(*dll_PyList_New)(PyInt size);
- static int(*dll_PyList_SetItem)(PyObject *, PyInt, PyObject *);
- static PyInt(*dll_PyList_Size)(PyObject *);
- static PyTypeObject* dll_PyList_Type;
-+ static int (*dll_PySequence_Check)(PyObject *);
-+ static PyInt(*dll_PySequence_Size)(PyObject *);
-+ static PyObject*(*dll_PySequence_GetItem)(PyObject *, PyInt);
-+ static PyInt(*dll_PyTuple_Size)(PyObject *);
-+ static PyObject*(*dll_PyTuple_GetItem)(PyObject *, PyInt);
-+ static PyTypeObject* dll_PyTuple_Type;
- static PyObject*(*dll_PyImport_ImportModule)(const char *);
- static PyObject*(*dll_PyDict_New)(void);
- static PyObject*(*dll_PyDict_GetItemString)(PyObject *, const char *);
-+ static int (*dll_PyDict_Next)(PyObject *, Py_ssize_t *, PyObject **, PyObject **);
-+ # ifndef PY_NO_MAPPING_ITEMS
-+ static PyObject* (*dll_PyMapping_Items)(PyObject *);
-+ # endif
-+ static PyObject* (*dll_PyObject_CallMethod)(PyObject *, char *, PyObject *);
-+ static int (*dll_PyMapping_Check)(PyObject *);
-+ static PyObject* (*dll_PyIter_Next)(PyObject *);
- static PyObject*(*dll_PyModule_GetDict)(PyObject *);
- static int(*dll_PyRun_SimpleString)(char *);
-+ static PyObject *(*dll_PyRun_String)(char *, int, PyObject *, PyObject *);
- static char*(*dll_PyString_AsString)(PyObject *);
- static PyObject*(*dll_PyString_FromString)(const char *);
- static PyObject*(*dll_PyString_FromStringAndSize)(const char *, PyInt);
- static PyInt(*dll_PyString_Size)(PyObject *);
- static PyTypeObject* dll_PyString_Type;
-+ static PyTypeObject* dll_PyUnicode_Type;
-+ static PyObject *(*PyUnicodeUCS4_AsEncodedString)(PyObject *, char *, char *);
-+ static double(*dll_PyFloat_AsDouble)(PyObject *);
-+ static PyObject*(*dll_PyFloat_FromDouble)(double);
-+ static PyTypeObject* dll_PyFloat_Type;
- static int(*dll_PySys_SetObject)(char *, PyObject *);
- static int(*dll_PySys_SetArgv)(int, char **);
- static PyTypeObject* dll_PyType_Type;
-***************
-*** 235,246 ****
---- 292,306 ----
- 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 PyObject*(*dll_PyImport_AddModule)(char *);
- 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);
- static PyObject*(*dll__PyObject_New)(PyTypeObject *, PyObject *);
- static PyObject*(*dll__PyObject_Init)(PyObject *, PyTypeObject *);
-+ static PyObject* (*dll_PyObject_GetIter)(PyObject *);
-+ static iternextfunc dll__PyObject_NextNotImplemented;
- static PyObject* dll__Py_NoneStruct;
- # if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02020000
- static int (*dll_PyType_IsSubtype)(PyTypeObject *, PyTypeObject *);
-***************
-*** 249,254 ****
---- 309,316 ----
- static void* (*dll_PyObject_Malloc)(size_t);
- static void (*dll_PyObject_Free)(void*);
- # endif
-+ static PyObject* (*dll_PyCapsule_New)(void *, char *, PyCapsule_Destructor);
-+ static void* (*dll_PyCapsule_GetPointer)(PyObject *, char *);
-
- static HINSTANCE hinstPython = 0; /* Instance of python.dll */
-
-***************
-*** 278,283 ****
---- 340,346 ----
- {"PyArg_Parse", (PYTHON_PROC*)&dll_PyArg_Parse},
- {"PyArg_ParseTuple", (PYTHON_PROC*)&dll_PyArg_ParseTuple},
- {"PyMem_Free", (PYTHON_PROC*)&dll_PyMem_Free},
-+ {"PyMem_Malloc", (PYTHON_PROC*)&dll_PyMem_Malloc},
- {"PyDict_SetItemString", (PYTHON_PROC*)&dll_PyDict_SetItemString},
- {"PyErr_BadArgument", (PYTHON_PROC*)&dll_PyErr_BadArgument},
- {"PyErr_Clear", (PYTHON_PROC*)&dll_PyErr_Clear},
-***************
-*** 294,316 ****
---- 357,402 ----
- # endif
- {"PyInt_AsLong", (PYTHON_PROC*)&dll_PyInt_AsLong},
- {"PyInt_FromLong", (PYTHON_PROC*)&dll_PyInt_FromLong},
-+ {"PyLong_AsLong", (PYTHON_PROC*)&dll_PyLong_AsLong},
-+ {"PyLong_FromLong", (PYTHON_PROC*)&dll_PyLong_FromLong},
- {"PyInt_Type", (PYTHON_PROC*)&dll_PyInt_Type},
-+ {"PyLong_Type", (PYTHON_PROC*)&dll_PyLong_Type},
- {"PyList_GetItem", (PYTHON_PROC*)&dll_PyList_GetItem},
- {"PyList_Append", (PYTHON_PROC*)&dll_PyList_Append},
- {"PyList_New", (PYTHON_PROC*)&dll_PyList_New},
- {"PyList_SetItem", (PYTHON_PROC*)&dll_PyList_SetItem},
- {"PyList_Size", (PYTHON_PROC*)&dll_PyList_Size},
- {"PyList_Type", (PYTHON_PROC*)&dll_PyList_Type},
-+ {"PySequence_GetItem", (PYTHON_PROC*)&dll_PySequence_GetItem},
-+ {"PySequence_Size", (PYTHON_PROC*)&dll_PySequence_Size},
-+ {"PySequence_Check", (PYTHON_PROC*)&dll_PySequence_Check},
-+ {"PyTuple_GetItem", (PYTHON_PROC*)&dll_PyTuple_GetItem},
-+ {"PyTuple_Size", (PYTHON_PROC*)&dll_PyTuple_Size},
-+ {"PyTuple_Type", (PYTHON_PROC*)&dll_PyTuple_Type},
- {"PyImport_ImportModule", (PYTHON_PROC*)&dll_PyImport_ImportModule},
- {"PyDict_GetItemString", (PYTHON_PROC*)&dll_PyDict_GetItemString},
-+ {"PyDict_Next", (PYTHON_PROC*)&dll_PyDict_Next},
- {"PyDict_New", (PYTHON_PROC*)&dll_PyDict_New},
-+ # ifndef PY_NO_MAPPING_ITEMS
-+ {"PyMapping_Items", (PYTHON_PROC*)&dll_PyMapping_Items},
-+ # endif
-+ {"PyObject_CallMethod", (PYTHON_PROC*)&dll_PyObject_CallMethod},
-+ {"PyMapping_Check", (PYTHON_PROC*)&dll_PyMapping_Check},
-+ {"PyIter_Next", (PYTHON_PROC*)&dll_PyIter_Next},
- {"PyModule_GetDict", (PYTHON_PROC*)&dll_PyModule_GetDict},
- {"PyRun_SimpleString", (PYTHON_PROC*)&dll_PyRun_SimpleString},
-+ {"PyRun_String", (PYTHON_PROC*)&dll_PyRun_String},
- {"PyString_AsString", (PYTHON_PROC*)&dll_PyString_AsString},
- {"PyString_FromString", (PYTHON_PROC*)&dll_PyString_FromString},
- {"PyString_FromStringAndSize", (PYTHON_PROC*)&dll_PyString_FromStringAndSize},
- {"PyString_Size", (PYTHON_PROC*)&dll_PyString_Size},
- {"PyString_Type", (PYTHON_PROC*)&dll_PyString_Type},
-+ {"PyUnicode_Type", (PYTHON_PROC*)&dll_PyUnicode_Type},
-+ {"PyUnicodeUCS4_AsEncodedString", (PYTHON_PROC*)&dll_PyUnicodeUCS4_AsEncodedString},
-+ {"PyFloat_Type", (PYTHON_PROC*)&dll_PyFloat_Type},
-+ {"PyFloat_AsDouble", (PYTHON_PROC*)&dll_PyFloat_AsDouble},
-+ {"PyFloat_FromDouble", (PYTHON_PROC*)&dll_PyFloat_FromDouble},
-+ {"PyImport_AddModule", (PYTHON_PROC*)&dll_PyImport_AddModule},
- {"PySys_SetObject", (PYTHON_PROC*)&dll_PySys_SetObject},
- {"PySys_SetArgv", (PYTHON_PROC*)&dll_PySys_SetArgv},
- {"PyType_Type", (PYTHON_PROC*)&dll_PyType_Type},
-***************
-*** 328,333 ****
---- 414,421 ----
- {"Py_IsInitialized", (PYTHON_PROC*)&dll_Py_IsInitialized},
- {"_PyObject_New", (PYTHON_PROC*)&dll__PyObject_New},
- {"PyObject_Init", (PYTHON_PROC*)&dll__PyObject_Init},
-+ {"PyObject_GetIter", (PYTHON_PROC*)&dll_PyObject_GetIter},
-+ {"_PyObject_NextNotImplemented", (PYTHON_PROC*)&dll__PyObject_NextNotImplemented},
- {"_Py_NoneStruct", (PYTHON_PROC*)&dll__Py_NoneStruct},
- # if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02020000
- {"PyType_IsSubtype", (PYTHON_PROC*)&dll_PyType_IsSubtype},
-***************
-*** 336,341 ****
---- 424,431 ----
- {"PyObject_Malloc", (PYTHON_PROC*)&dll_PyObject_Malloc},
- {"PyObject_Free", (PYTHON_PROC*)&dll_PyObject_Free},
- # endif
-+ {"PyCapsule_New", (PYTHON_PROC*)&dll_PyCapsule_New},
-+ {"PyCapsule_GetPointer", (PYTHON_PROC*)&dll_PyCapsule_GetPointer},
- {"", NULL},
- };
-
-***************
-*** 434,443 ****
---- 524,548 ----
-
- static PyObject *BufferNew (buf_T *);
- static PyObject *WindowNew(win_T *);
-+ static PyObject *DictionaryNew(dict_T *);
- static PyObject *LineToString(const char *);
-
- static PyTypeObject RangeType;
-
-+ static int initialised = 0;
-+ #define PYINITIALISED initialised
-+
-+ /* Add conversion from PyInt? */
-+ #define DICTKEY_GET(err) \
-+ if (!PyString_Check(keyObject)) \
-+ { \
-+ PyErr_SetString(PyExc_TypeError, _("only string keys are allowed")); \
-+ return err; \
-+ } \
-+ key = (char_u *) PyString_AsString(keyObject);
-+ #define DICTKEY_UNREF
-+ #define DICTKEY_DECL
-+
- /*
- * Include the code shared with if_python3.c
- */
-***************
-*** 451,456 ****
---- 556,563 ----
- static PyInt RangeStart;
- static PyInt RangeEnd;
-
-+ static PyObject *globals;
-+
- static void PythonIO_Flush(void);
- static int PythonIO_Init(void);
- static int PythonMod_Init(void);
-***************
-*** 466,473 ****
- * 1. Python interpreter main program.
- */
-
-- static int initialised = 0;
--
- #if PYTHON_API_VERSION < 1007 /* Python 1.4 */
- typedef PyObject PyThreadState;
- #endif
---- 573,578 ----
-***************
-*** 581,586 ****
---- 686,693 ----
- if (PythonMod_Init())
- goto fail;
-
-+ globals = PyModule_GetDict(PyImport_AddModule("__main__"));
-+
- /* Remove the element from sys.path that was added because of our
- * argv[0] value in PythonMod_Init(). Previously we used an empty
- * string, but dependinding on the OS we then get an empty entry or
-***************
-*** 609,615 ****
- * External interface
- */
- static void
-! DoPythonCommand(exarg_T *eap, const char *cmd)
- {
- #ifndef PY_CAN_RECURSE
- static int recursive = 0;
---- 716,722 ----
- * External interface
- */
- static void
-! DoPythonCommand(exarg_T *eap, const char *cmd, typval_T *rettv)
- {
- #ifndef PY_CAN_RECURSE
- static int recursive = 0;
-***************
-*** 639,646 ****
- if (Python_Init())
- goto theend;
-
-! RangeStart = eap->line1;
-! RangeEnd = eap->line2;
- Python_Release_Vim(); /* leave vim */
-
- #if defined(HAVE_LOCALE_H) || defined(X_LOCALE)
---- 746,761 ----
- if (Python_Init())
- goto theend;
-
-! if (rettv == NULL)
-! {
-! RangeStart = eap->line1;
-! RangeEnd = eap->line2;
-! }
-! else
-! {
-! RangeStart = (PyInt) curwin->w_cursor.lnum;
-! RangeEnd = RangeStart;
-! }
- Python_Release_Vim(); /* leave vim */
-
- #if defined(HAVE_LOCALE_H) || defined(X_LOCALE)
-***************
-*** 658,664 ****
-
- Python_RestoreThread(); /* enter python */
-
-! PyRun_SimpleString((char *)(cmd));
-
- Python_SaveThread(); /* leave python */
-
---- 773,795 ----
-
- Python_RestoreThread(); /* enter python */
-
-! if (rettv == NULL)
-! PyRun_SimpleString((char *)(cmd));
-! else
-! {
-! PyObject *r;
-!
-! r = PyRun_String((char *)(cmd), Py_eval_input, globals, globals);
-! if (r == NULL)
-! EMSG(_("E858: Eval did not return a valid python object"));
-! else
-! {
-! if (ConvertFromPyObject(r, rettv) == -1)
-! EMSG(_("E859: Failed to convert returned python object to vim value"));
-! Py_DECREF(r);
-! }
-! PyErr_Clear();
-! }
-
- Python_SaveThread(); /* leave python */
-
-***************
-*** 680,686 ****
- #ifndef PY_CAN_RECURSE
- --recursive;
- #endif
-! return; /* keeps lint happy */
- }
-
- /*
---- 811,817 ----
- #ifndef PY_CAN_RECURSE
- --recursive;
- #endif
-! return;
- }
-
- /*
-***************
-*** 695,703 ****
- if (!eap->skip)
- {
- if (script == NULL)
-! DoPythonCommand(eap, (char *)eap->arg);
- else
-! DoPythonCommand(eap, (char *)script);
- }
- vim_free(script);
- }
---- 826,834 ----
- if (!eap->skip)
- {
- if (script == NULL)
-! DoPythonCommand(eap, (char *)eap->arg, NULL);
- else
-! DoPythonCommand(eap, (char *)script, NULL);
- }
- vim_free(script);
- }
-***************
-*** 743,749 ****
- *p++ = '\0';
-
- /* Execute the file */
-! DoPythonCommand(eap, buffer);
- }
-
- /******************************************************
---- 874,880 ----
- *p++ = '\0';
-
- /* Execute the file */
-! DoPythonCommand(eap, buffer, NULL);
- }
-
- /******************************************************
-***************
-*** 765,778 ****
- static int
- OutputSetattr(PyObject *self, char *name, PyObject *val)
- {
-! if (val == NULL) {
- PyErr_SetString(PyExc_AttributeError, _("can't delete OutputObject attributes"));
- return -1;
- }
-
- if (strcmp(name, "softspace") == 0)
- {
-! if (!PyInt_Check(val)) {
- PyErr_SetString(PyExc_TypeError, _("softspace must be an integer"));
- return -1;
- }
---- 896,911 ----
- static int
- OutputSetattr(PyObject *self, char *name, PyObject *val)
- {
-! if (val == NULL)
-! {
- PyErr_SetString(PyExc_AttributeError, _("can't delete OutputObject attributes"));
- return -1;
- }
-
- if (strcmp(name, "softspace") == 0)
- {
-! if (!PyInt_Check(val))
-! {
- PyErr_SetString(PyExc_TypeError, _("softspace must be an integer"));
- return -1;
- }
-***************
-*** 800,805 ****
---- 933,941 ----
- * 3. Implementation of the Vim module for Python
- */
-
-+ static PyObject *ConvertToPyObject(typval_T *);
-+ static int ConvertFromPyObject(PyObject *, typval_T *);
-+
- /* Window type - Implementation functions
- * --------------------------------------
- */
-***************
-*** 1441,1446 ****
---- 1577,1748 ----
- return result;
- }
-
-+ static void DictionaryDestructor(PyObject *);
-+ static PyObject *DictionaryGetattr(PyObject *, char*);
-+
-+ static PyMappingMethods DictionaryAsMapping = {
-+ (PyInquiry) DictionaryLength,
-+ (binaryfunc) DictionaryItem,
-+ (objobjargproc) DictionaryAssItem,
-+ };
-+
-+ static PyTypeObject DictionaryType = {
-+ PyObject_HEAD_INIT(0)
-+ 0,
-+ "vimdictionary",
-+ sizeof(DictionaryObject),
-+ 0,
-+
-+ (destructor) DictionaryDestructor,
-+ (printfunc) 0,
-+ (getattrfunc) DictionaryGetattr,
-+ (setattrfunc) 0,
-+ (cmpfunc) 0,
-+ (reprfunc) 0,
-+
-+ 0, /* as number */
-+ 0, /* as sequence */
-+ &DictionaryAsMapping, /* as mapping */
-+
-+ (hashfunc) 0,
-+ (ternaryfunc) 0,
-+ (reprfunc) 0,
-+ };
-+
-+ static void
-+ DictionaryDestructor(PyObject *self)
-+ {
-+ DictionaryObject *this = ((DictionaryObject *) (self));
-+
-+ pyll_remove(&this->ref, &lastdict);
-+ dict_unref(this->dict);
-+
-+ Py_DECREF(self);
-+ }
-+
-+ static PyObject *
-+ DictionaryGetattr(PyObject *self, char *name)
-+ {
-+ return Py_FindMethod(DictionaryMethods, self, name);
-+ }
-+
-+ static void ListDestructor(PyObject *);
-+ static PyObject *ListGetattr(PyObject *, char *);
-+
-+ static PySequenceMethods ListAsSeq = {
-+ (PyInquiry) ListLength,
-+ (binaryfunc) 0,
-+ (PyIntArgFunc) 0,
-+ (PyIntArgFunc) ListItem,
-+ (PyIntIntArgFunc) ListSlice,
-+ (PyIntObjArgProc) ListAssItem,
-+ (PyIntIntObjArgProc) ListAssSlice,
-+ (objobjproc) 0,
-+ #if PY_MAJOR_VERSION >= 2
-+ (binaryfunc) ListConcatInPlace,
-+ 0,
-+ #endif
-+ };
-+
-+ static PyTypeObject ListType = {
-+ PyObject_HEAD_INIT(0)
-+ 0,
-+ "vimlist",
-+ sizeof(ListObject),
-+ 0,
-+
-+ (destructor) ListDestructor,
-+ (printfunc) 0,
-+ (getattrfunc) ListGetattr,
-+ (setattrfunc) 0,
-+ (cmpfunc) 0,
-+ (reprfunc) 0,
-+
-+ 0, /* as number */
-+ &ListAsSeq, /* as sequence */
-+ 0, /* as mapping */
-+
-+ (hashfunc) 0,
-+ (ternaryfunc) 0,
-+ (reprfunc) 0,
-+ };
-+
-+ static void
-+ ListDestructor(PyObject *self)
-+ {
-+ ListObject *this = ((ListObject *) (self));
-+
-+ pyll_remove(&this->ref, &lastlist);
-+ list_unref(this->list);
-+
-+ Py_DECREF(self);
-+ }
-+
-+ static PyObject *
-+ ListGetattr(PyObject *self, char *name)
-+ {
-+ return Py_FindMethod(ListMethods, self, name);
-+ }
-+
-+ static void FunctionDestructor(PyObject *);
-+ static PyObject *FunctionGetattr(PyObject *, char *);
-+
-+ static PyTypeObject FunctionType = {
-+ PyObject_HEAD_INIT(0)
-+ 0,
-+ "vimfunction",
-+ sizeof(FunctionObject),
-+ 0,
-+
-+ (destructor) FunctionDestructor,
-+ (printfunc) 0,
-+ (getattrfunc) FunctionGetattr,
-+ (setattrfunc) 0,
-+ (cmpfunc) 0,
-+ (reprfunc) 0,
-+
-+ 0, /* as number */
-+ 0, /* as sequence */
-+ 0, /* as mapping */
-+
-+ (hashfunc) 0,
-+ (ternaryfunc) FunctionCall,
-+ (reprfunc) 0,
-+ };
-+
-+ static void
-+ FunctionDestructor(PyObject *self)
-+ {
-+ FunctionObject *this = (FunctionObject *) (self);
-+
-+ func_unref(this->name);
-+ PyMem_Del(this->name);
-+
-+ Py_DECREF(self);
-+ }
-+
-+ static PyObject *
-+ FunctionGetattr(PyObject *self, char *name)
-+ {
-+ FunctionObject *this = (FunctionObject *)(self);
-+
-+ if (strcmp(name, "name") == 0)
-+ return PyString_FromString((char *)(this->name));
-+ else
-+ return Py_FindMethod(FunctionMethods, self, name);
-+ }
-+
-+ void
-+ do_pyeval (char_u *str, typval_T *rettv)
-+ {
-+ DoPythonCommand(NULL, (char *) str, rettv);
-+ switch(rettv->v_type)
-+ {
-+ case VAR_DICT: ++rettv->vval.v_dict->dv_refcount; break;
-+ case VAR_LIST: ++rettv->vval.v_list->lv_refcount; break;
-+ case VAR_FUNC: func_ref(rettv->vval.v_string); break;
-+ }
-+ }
-
- /* Don't generate a prototype for the next function, it generates an error on
- * newer Python versions. */
-***************
-*** 1453,1458 ****
---- 1755,1766 ----
- }
- #endif /* Python 1.4 */
-
-+ void
-+ set_ref_in_python (int copyID)
-+ {
-+ set_ref_in_py(copyID);
-+ }
-+
- static void
- init_structs(void)
- {
-*** ../vim-7.3.568/src/if_python3.c 2012-02-04 20:17:21.000000000 +0100
---- src/if_python3.c 2012-06-29 11:54:10.000000000 +0200
-***************
-*** 77,83 ****
-
- #define PyInt Py_ssize_t
- #define PyString_Check(obj) PyUnicode_Check(obj)
-! #define PyString_AsBytes(obj) PyUnicode_AsEncodedString(obj, (char *)ENC_OPT, CODEC_ERROR_HANDLER);
- #define PyString_FreeBytes(obj) Py_XDECREF(bytes)
- #define PyString_AsString(obj) PyBytes_AsString(obj)
- #define PyString_Size(obj) PyBytes_GET_SIZE(bytes)
---- 77,83 ----
-
- #define PyInt Py_ssize_t
- #define PyString_Check(obj) PyUnicode_Check(obj)
-! #define PyString_AsBytes(obj) PyUnicode_AsEncodedString(obj, (char *)ENC_OPT, CODEC_ERROR_HANDLER)
- #define PyString_FreeBytes(obj) Py_XDECREF(bytes)
- #define PyString_AsString(obj) PyBytes_AsString(obj)
- #define PyString_Size(obj) PyBytes_GET_SIZE(bytes)
-***************
-*** 109,114 ****
---- 109,115 ----
- # undef PyArg_ParseTuple
- # define PyArg_ParseTuple py3_PyArg_ParseTuple
- # define PyMem_Free py3_PyMem_Free
-+ # define PyMem_Malloc py3_PyMem_Malloc
- # define PyDict_SetItemString py3_PyDict_SetItemString
- # define PyErr_BadArgument py3_PyErr_BadArgument
- # define PyErr_Clear py3_PyErr_Clear
-***************
-*** 128,141 ****
---- 129,155 ----
- # define PyList_New py3_PyList_New
- # define PyList_SetItem py3_PyList_SetItem
- # define PyList_Size py3_PyList_Size
-+ # define PySequence_Check py3_PySequence_Check
-+ # define PySequence_Size py3_PySequence_Size
-+ # define PySequence_GetItem py3_PySequence_GetItem
-+ # define PyTuple_Size py3_PyTuple_Size
-+ # define PyTuple_GetItem py3_PyTuple_GetItem
- # define PySlice_GetIndicesEx py3_PySlice_GetIndicesEx
- # define PyImport_ImportModule py3_PyImport_ImportModule
-+ # define PyImport_AddModule py3_PyImport_AddModule
- # define PyObject_Init py3__PyObject_Init
- # define PyDict_New py3_PyDict_New
- # define PyDict_GetItemString py3_PyDict_GetItemString
-+ # define PyDict_Next py3_PyDict_Next
-+ # define PyMapping_Check py3_PyMapping_Check
-+ # define PyMapping_Items py3_PyMapping_Items
-+ # define PyIter_Next py3_PyIter_Next
-+ # define PyObject_GetIter py3_PyObject_GetIter
- # define PyModule_GetDict py3_PyModule_GetDict
- #undef PyRun_SimpleString
- # define PyRun_SimpleString py3_PyRun_SimpleString
-+ #undef PyRun_String
-+ # define PyRun_String py3_PyRun_String
- # define PySys_SetObject py3_PySys_SetObject
- # define PySys_SetArgv py3_PySys_SetArgv
- # define PyType_Type (*py3_PyType_Type)
-***************
-*** 147,152 ****
---- 161,167 ----
- # define Py_Finalize py3_Py_Finalize
- # define Py_IsInitialized py3_Py_IsInitialized
- # define _Py_NoneStruct (*py3__Py_NoneStruct)
-+ # define _PyObject_NextNotImplemented (*py3__PyObject_NextNotImplemented)
- # define PyModule_AddObject py3_PyModule_AddObject
- # define PyImport_AppendInittab py3_PyImport_AppendInittab
- # define _PyUnicode_AsString py3__PyUnicode_AsString
-***************
-*** 154,161 ****
---- 169,181 ----
- # define PyUnicode_AsEncodedString py3_PyUnicode_AsEncodedString
- # undef PyBytes_AsString
- # define PyBytes_AsString py3_PyBytes_AsString
-+ # undef PyBytes_FromString
-+ # define PyBytes_FromString py3_PyBytes_FromString
-+ # define PyFloat_FromDouble py3_PyFloat_FromDouble
-+ # define PyFloat_AsDouble py3_PyFloat_AsDouble
- # define PyObject_GenericGetAttr py3_PyObject_GenericGetAttr
- # define PySlice_Type (*py3_PySlice_Type)
-+ # define PyFloat_Type (*py3_PyFloat_Type)
- # define PyErr_NewException py3_PyErr_NewException
- # ifdef Py_DEBUG
- # define _Py_NegativeRefcount py3__Py_NegativeRefcount
-***************
-*** 174,179 ****
---- 194,202 ----
- # define PyUnicode_FromString py3_PyUnicode_FromString
- # undef PyUnicode_Decode
- # define PyUnicode_Decode py3_PyUnicode_Decode
-+ # define PyType_IsSubtype py3_PyType_IsSubtype
-+ # define PyCapsule_New py3_PyCapsule_New
-+ # define PyCapsule_GetPointer py3_PyCapsule_GetPointer
-
- # ifdef Py_DEBUG
- # undef PyObject_NEW
-***************
-*** 194,215 ****
---- 217,250 ----
- static int (*py3_PySys_SetObject)(char *, PyObject *);
- static PyObject* (*py3_PyList_Append)(PyObject *, PyObject *);
- static Py_ssize_t (*py3_PyList_Size)(PyObject *);
-+ static int (*py3_PySequence_Check)(PyObject *);
-+ static Py_ssize_t (*py3_PySequence_Size)(PyObject *);
-+ static PyObject* (*py3_PySequence_GetItem)(PyObject *, Py_ssize_t);
-+ static Py_ssize_t (*py3_PyTuple_Size)(PyObject *);
-+ static PyObject* (*py3_PyTuple_GetItem)(PyObject *, Py_ssize_t);
-+ static int (*py3_PyMapping_Check)(PyObject *);
-+ static PyObject* (*py3_PyMapping_Items)(PyObject *);
- static int (*py3_PySlice_GetIndicesEx)(PyObject *r, Py_ssize_t length,
- Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step, Py_ssize_t *slicelength);
- static PyObject* (*py3_PyErr_NoMemory)(void);
- static void (*py3_Py_Finalize)(void);
- static void (*py3_PyErr_SetString)(PyObject *, const char *);
- static int (*py3_PyRun_SimpleString)(char *);
-+ static PyObject* (*py3_PyRun_String)(char *, int, PyObject *, PyObject *);
- static PyObject* (*py3_PyList_GetItem)(PyObject *, Py_ssize_t);
- static PyObject* (*py3_PyImport_ImportModule)(const char *);
-+ static PyObject* (*py3_PyImport_AddModule)(const char *);
- static int (*py3_PyErr_BadArgument)(void);
- static PyTypeObject* py3_PyType_Type;
- static PyObject* (*py3_PyErr_Occurred)(void);
- static PyObject* (*py3_PyModule_GetDict)(PyObject *);
- static int (*py3_PyList_SetItem)(PyObject *, Py_ssize_t, PyObject *);
- static PyObject* (*py3_PyDict_GetItemString)(PyObject *, const char *);
-+ static int (*py3_PyDict_Next)(PyObject *, Py_ssize_t *, PyObject **, PyObject **);
- static PyObject* (*py3_PyLong_FromLong)(long);
- static PyObject* (*py3_PyDict_New)(void);
-+ static PyObject* (*py3_PyIter_Next)(PyObject *);
-+ static PyObject* (*py3_PyObject_GetIter)(PyObject *);
- static PyObject* (*py3_Py_BuildValue)(char *, ...);
- static int (*py3_PyType_Ready)(PyTypeObject *type);
- static int (*py3_PyDict_SetItemString)(PyObject *dp, char *key, PyObject *item);
-***************
-*** 224,244 ****
---- 259,287 ----
- static int (*py3_PyArg_Parse)(PyObject *, char *, ...);
- static int (*py3_PyArg_ParseTuple)(PyObject *, char *, ...);
- static int (*py3_PyMem_Free)(void *);
-+ static void* (*py3_PyMem_Malloc)(size_t);
- static int (*py3_Py_IsInitialized)(void);
- static void (*py3_PyErr_Clear)(void);
- static PyObject*(*py3__PyObject_Init)(PyObject *, PyTypeObject *);
-+ static iternextfunc py3__PyObject_NextNotImplemented;
- static PyObject* py3__Py_NoneStruct;
- static int (*py3_PyModule_AddObject)(PyObject *m, const char *name, PyObject *o);
- static int (*py3_PyImport_AppendInittab)(const char *name, PyObject* (*initfunc)(void));
- static char* (*py3__PyUnicode_AsString)(PyObject *unicode);
- static PyObject* (*py3_PyUnicode_AsEncodedString)(PyObject *unicode, const char* encoding, const char* errors);
- static char* (*py3_PyBytes_AsString)(PyObject *bytes);
-+ static PyObject* (*py3_PyBytes_FromString)(char *str);
-+ static PyObject* (*py3_PyFloat_FromDouble)(double num);
-+ static double (*py3_PyFloat_AsDouble)(PyObject *);
- static PyObject* (*py3_PyObject_GenericGetAttr)(PyObject *obj, PyObject *name);
- static PyObject* (*py3_PyModule_Create2)(struct PyModuleDef* module, int module_api_version);
- static PyObject* (*py3_PyType_GenericAlloc)(PyTypeObject *type, Py_ssize_t nitems);
- static PyObject* (*py3_PyType_GenericNew)(PyTypeObject *type, PyObject *args, PyObject *kwds);
- static PyTypeObject* py3_PySlice_Type;
-+ static PyTypeObject* py3_PyFloat_Type;
- static PyObject* (*py3_PyErr_NewException)(char *name, PyObject *base, PyObject *dict);
-+ static PyObject* (*py3_PyCapsule_New)(void *, char *, PyCapsule_Destructor);
-+ static void* (*py3_PyCapsule_GetPointer)(PyObject *, char *);
- # ifdef Py_DEBUG
- static void (*py3__Py_NegativeRefcount)(const char *fname, int lineno, PyObject *op);
- static Py_ssize_t* py3__Py_RefTotal;
-***************
-*** 249,254 ****
---- 292,298 ----
- static void (*py3_PyObject_Free)(void*);
- static void* (*py3_PyObject_Malloc)(size_t);
- # endif
-+ static int (*py3_PyType_IsSubtype)(PyTypeObject *, PyTypeObject *);
-
- static HINSTANCE hinstPy3 = 0; /* Instance of python.dll */
-
-***************
-*** 280,304 ****
---- 324,361 ----
- {"Py_Initialize", (PYTHON_PROC*)&py3_Py_Initialize},
- {"PyArg_ParseTuple", (PYTHON_PROC*)&py3_PyArg_ParseTuple},
- {"PyMem_Free", (PYTHON_PROC*)&py3_PyMem_Free},
-+ {"PyMem_Malloc", (PYTHON_PROC*)&py3_PyMem_Malloc},
- {"PyList_New", (PYTHON_PROC*)&py3_PyList_New},
- {"PyGILState_Ensure", (PYTHON_PROC*)&py3_PyGILState_Ensure},
- {"PyGILState_Release", (PYTHON_PROC*)&py3_PyGILState_Release},
- {"PySys_SetObject", (PYTHON_PROC*)&py3_PySys_SetObject},
- {"PyList_Append", (PYTHON_PROC*)&py3_PyList_Append},
- {"PyList_Size", (PYTHON_PROC*)&py3_PyList_Size},
-+ {"PySequence_Check", (PYTHON_PROC*)&py3_PySequence_Check},
-+ {"PySequence_Size", (PYTHON_PROC*)&py3_PySequence_Size},
-+ {"PySequence_GetItem", (PYTHON_PROC*)&py3_PySequence_GetItem},
-+ {"PyTuple_Size", (PYTHON_PROC*)&py3_PyTuple_Size},
-+ {"PyTuple_GetItem", (PYTHON_PROC*)&py3_PyTuple_GetItem},
- {"PySlice_GetIndicesEx", (PYTHON_PROC*)&py3_PySlice_GetIndicesEx},
- {"PyErr_NoMemory", (PYTHON_PROC*)&py3_PyErr_NoMemory},
- {"Py_Finalize", (PYTHON_PROC*)&py3_Py_Finalize},
- {"PyErr_SetString", (PYTHON_PROC*)&py3_PyErr_SetString},
- {"PyRun_SimpleString", (PYTHON_PROC*)&py3_PyRun_SimpleString},
-+ {"PyRun_String", (PYTHON_PROC*)&py3_PyRun_String},
- {"PyList_GetItem", (PYTHON_PROC*)&py3_PyList_GetItem},
- {"PyImport_ImportModule", (PYTHON_PROC*)&py3_PyImport_ImportModule},
-+ {"PyImport_AddModule", (PYTHON_PROC*)&py3_PyImport_AddModule},
- {"PyErr_BadArgument", (PYTHON_PROC*)&py3_PyErr_BadArgument},
- {"PyType_Type", (PYTHON_PROC*)&py3_PyType_Type},
- {"PyErr_Occurred", (PYTHON_PROC*)&py3_PyErr_Occurred},
- {"PyModule_GetDict", (PYTHON_PROC*)&py3_PyModule_GetDict},
- {"PyList_SetItem", (PYTHON_PROC*)&py3_PyList_SetItem},
- {"PyDict_GetItemString", (PYTHON_PROC*)&py3_PyDict_GetItemString},
-+ {"PyDict_Next", (PYTHON_PROC*)&py3_PyDict_Next},
-+ {"PyMapping_Check", (PYTHON_PROC*)&py3_PyMapping_Check},
-+ {"PyMapping_Items", (PYTHON_PROC*)&py3_PyMapping_Items},
-+ {"PyIter_Next", (PYTHON_PROC*)&py3_PyIter_Next},
-+ {"PyObject_GetIter", (PYTHON_PROC*)&py3_PyObject_GetIter},
- {"PyLong_FromLong", (PYTHON_PROC*)&py3_PyLong_FromLong},
- {"PyDict_New", (PYTHON_PROC*)&py3_PyDict_New},
- {"Py_BuildValue", (PYTHON_PROC*)&py3_Py_BuildValue},
-***************
-*** 311,316 ****
---- 368,374 ----
- {"PyEval_SaveThread", (PYTHON_PROC*)&py3_PyEval_SaveThread},
- {"PyArg_Parse", (PYTHON_PROC*)&py3_PyArg_Parse},
- {"Py_IsInitialized", (PYTHON_PROC*)&py3_Py_IsInitialized},
-+ {"_PyObject_NextNotImplemented", (PYTHON_PROC*)&py3__PyObject_NextNotImplemented},
- {"_Py_NoneStruct", (PYTHON_PROC*)&py3__Py_NoneStruct},
- {"PyErr_Clear", (PYTHON_PROC*)&py3_PyErr_Clear},
- {"PyObject_Init", (PYTHON_PROC*)&py3__PyObject_Init},
-***************
-*** 318,328 ****
---- 376,390 ----
- {"PyImport_AppendInittab", (PYTHON_PROC*)&py3_PyImport_AppendInittab},
- {"_PyUnicode_AsString", (PYTHON_PROC*)&py3__PyUnicode_AsString},
- {"PyBytes_AsString", (PYTHON_PROC*)&py3_PyBytes_AsString},
-+ {"PyBytes_FromString", (PYTHON_PROC*)&py3_PyBytes_FromString},
-+ {"PyFloat_FromDouble", (PYTHON_PROC*)&py3_PyFloat_FromDouble},
-+ {"PyFloat_AsDouble", (PYTHON_PROC*)&py3_PyFloat_AsDouble},
- {"PyObject_GenericGetAttr", (PYTHON_PROC*)&py3_PyObject_GenericGetAttr},
- {"PyModule_Create2", (PYTHON_PROC*)&py3_PyModule_Create2},
- {"PyType_GenericAlloc", (PYTHON_PROC*)&py3_PyType_GenericAlloc},
- {"PyType_GenericNew", (PYTHON_PROC*)&py3_PyType_GenericNew},
- {"PySlice_Type", (PYTHON_PROC*)&py3_PySlice_Type},
-+ {"PyFloat_Type", (PYTHON_PROC*)&py3_PyFloat_Type},
- {"PyErr_NewException", (PYTHON_PROC*)&py3_PyErr_NewException},
- # ifdef Py_DEBUG
- {"_Py_NegativeRefcount", (PYTHON_PROC*)&py3__Py_NegativeRefcount},
-***************
-*** 334,339 ****
---- 396,404 ----
- {"PyObject_Malloc", (PYTHON_PROC*)&py3_PyObject_Malloc},
- {"PyObject_Free", (PYTHON_PROC*)&py3_PyObject_Free},
- # endif
-+ {"PyType_IsSubtype", (PYTHON_PROC*)&py3_PyType_IsSubtype},
-+ {"PyCapsule_New", (PYTHON_PROC*)&py3_PyCapsule_New},
-+ {"PyCapsule_GetPointer", (PYTHON_PROC*)&py3_PyCapsule_GetPointer},
- {"", NULL},
- };
-
-***************
-*** 472,482 ****
---- 537,577 ----
-
- static PyTypeObject RangeType;
-
-+ static int py3initialised = 0;
-+
-+ #define PYINITIALISED py3initialised
-+
-+ /* Add conversion from PyInt? */
-+ #define DICTKEY_GET(err) \
-+ if (PyBytes_Check(keyObject)) \
-+ key = (char_u *) PyBytes_AsString(keyObject); \
-+ else if (PyUnicode_Check(keyObject)) \
-+ { \
-+ bytes = PyString_AsBytes(keyObject); \
-+ if (bytes == NULL) \
-+ return err; \
-+ key = (char_u *) PyBytes_AsString(bytes); \
-+ if (key == NULL) \
-+ return err; \
-+ } \
-+ else \
-+ { \
-+ PyErr_SetString(PyExc_TypeError, _("only string keys are allowed")); \
-+ return err; \
-+ }
-+ #define DICTKEY_UNREF \
-+ if (bytes != NULL) \
-+ Py_XDECREF(bytes);
-+
-+ #define DICTKEY_DECL PyObject *bytes = NULL;
-+
- /*
- * Include the code shared with if_python.c
- */
- #include "if_py_both.h"
-
-+ #define PY3OBJ_DELETED(obj) (obj->ob_base.ob_refcnt<=0)
-+
- static void
- call_PyObject_Free(void *p)
- {
-***************
-*** 506,511 ****
---- 601,608 ----
- static Py_ssize_t RangeStart;
- static Py_ssize_t RangeEnd;
-
-+ static PyObject *globals;
-+
- static int PythonIO_Init(void);
- static void PythonIO_Fini(void);
- PyMODINIT_FUNC Py3Init_vim(void);
-***************
-*** 514,521 ****
- * 1. Python interpreter main program.
- */
-
-- static int py3initialised = 0;
--
- static PyGILState_STATE pygilstate = PyGILState_UNLOCKED;
-
- void
---- 611,616 ----
-***************
-*** 593,598 ****
---- 688,695 ----
-
- PyImport_AppendInittab("vim", Py3Init_vim);
-
-+ globals = PyModule_GetDict(PyImport_AddModule("__main__"));
-+
- /* Remove the element from sys.path that was added because of our
- * argv[0] value in Py3Init_vim(). Previously we used an empty
- * string, but dependinding on the OS we then get an empty entry or
-***************
-*** 629,635 ****
- * External interface
- */
- static void
-! DoPy3Command(exarg_T *eap, const char *cmd)
- {
- #if defined(MACOS) && !defined(MACOS_X_UNIX)
- GrafPtr oldPort;
---- 726,732 ----
- * External interface
- */
- static void
-! DoPy3Command(exarg_T *eap, const char *cmd, typval_T *rettv)
- {
- #if defined(MACOS) && !defined(MACOS_X_UNIX)
- GrafPtr oldPort;
-***************
-*** 649,656 ****
- if (Python3_Init())
- goto theend;
-
-! RangeStart = eap->line1;
-! RangeEnd = eap->line2;
- Python_Release_Vim(); /* leave vim */
-
- #if defined(HAVE_LOCALE_H) || defined(X_LOCALE)
---- 746,761 ----
- if (Python3_Init())
- goto theend;
-
-! if (rettv == NULL)
-! {
-! RangeStart = eap->line1;
-! RangeEnd = eap->line2;
-! }
-! else
-! {
-! RangeStart = (PyInt) curwin->w_cursor.lnum;
-! RangeEnd = RangeStart;
-! }
- Python_Release_Vim(); /* leave vim */
-
- #if defined(HAVE_LOCALE_H) || defined(X_LOCALE)
-***************
-*** 674,680 ****
- (char *)ENC_OPT, CODEC_ERROR_HANDLER);
- cmdbytes = PyUnicode_AsEncodedString(cmdstr, "utf-8", CODEC_ERROR_HANDLER);
- Py_XDECREF(cmdstr);
-! PyRun_SimpleString(PyBytes_AsString(cmdbytes));
- Py_XDECREF(cmdbytes);
-
- PyGILState_Release(pygilstate);
---- 779,802 ----
- (char *)ENC_OPT, CODEC_ERROR_HANDLER);
- cmdbytes = PyUnicode_AsEncodedString(cmdstr, "utf-8", CODEC_ERROR_HANDLER);
- Py_XDECREF(cmdstr);
-! if (rettv == NULL)
-! PyRun_SimpleString(PyBytes_AsString(cmdbytes));
-! else
-! {
-! PyObject *r;
-!
-! r = PyRun_String(PyBytes_AsString(cmdbytes), Py_eval_input,
-! globals, globals);
-! if (r == NULL)
-! EMSG(_("E860: Eval did not return a valid python 3 object"));
-! else
-! {
-! if (ConvertFromPyObject(r, rettv) == -1)
-! EMSG(_("E861: Failed to convert returned python 3 object to vim value"));
-! Py_DECREF(r);
-! }
-! PyErr_Clear();
-! }
- Py_XDECREF(cmdbytes);
-
- PyGILState_Release(pygilstate);
-***************
-*** 709,717 ****
- if (!eap->skip)
- {
- if (script == NULL)
-! DoPy3Command(eap, (char *)eap->arg);
- else
-! DoPy3Command(eap, (char *)script);
- }
- vim_free(script);
- }
---- 831,839 ----
- if (!eap->skip)
- {
- if (script == NULL)
-! DoPy3Command(eap, (char *)eap->arg, NULL);
- else
-! DoPy3Command(eap, (char *)script, NULL);
- }
- vim_free(script);
- }
-***************
-*** 772,778 ****
-
-
- /* Execute the file */
-! DoPy3Command(eap, buffer);
- }
-
- /******************************************************
---- 894,900 ----
-
-
- /* Execute the file */
-! DoPy3Command(eap, buffer, NULL);
- }
-
- /******************************************************
-***************
-*** 802,815 ****
- if (PyUnicode_Check(nameobj))
- name = _PyUnicode_AsString(nameobj);
-
-! if (val == NULL) {
- PyErr_SetString(PyExc_AttributeError, _("can't delete OutputObject attributes"));
- return -1;
- }
-
- if (strcmp(name, "softspace") == 0)
- {
-! if (!PyLong_Check(val)) {
- PyErr_SetString(PyExc_TypeError, _("softspace must be an integer"));
- return -1;
- }
---- 924,939 ----
- if (PyUnicode_Check(nameobj))
- name = _PyUnicode_AsString(nameobj);
-
-! if (val == NULL)
-! {
- PyErr_SetString(PyExc_AttributeError, _("can't delete OutputObject attributes"));
- return -1;
- }
-
- if (strcmp(name, "softspace") == 0)
- {
-! if (!PyLong_Check(val))
-! {
- PyErr_SetString(PyExc_TypeError, _("softspace must be an integer"));
- return -1;
- }
-***************
-*** 1030,1049 ****
- static PyObject *
- BufferSubscript(PyObject *self, PyObject* idx)
- {
-! if (PyLong_Check(idx)) {
- long _idx = PyLong_AsLong(idx);
- return BufferItem(self,_idx);
-! } else if (PySlice_Check(idx)) {
- Py_ssize_t start, stop, step, slicelen;
-
- if (PySlice_GetIndicesEx((PyObject *)idx,
- (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count+1,
- &start, &stop,
-! &step, &slicelen) < 0) {
- return NULL;
- }
- return BufferSlice(self, start, stop);
-! } else {
- PyErr_SetString(PyExc_IndexError, "Index must be int or slice");
- return NULL;
- }
---- 1154,1178 ----
- static PyObject *
- BufferSubscript(PyObject *self, PyObject* idx)
- {
-! if (PyLong_Check(idx))
-! {
- long _idx = PyLong_AsLong(idx);
- return BufferItem(self,_idx);
-! } else if (PySlice_Check(idx))
-! {
- Py_ssize_t start, stop, step, slicelen;
-
- if (PySlice_GetIndicesEx((PyObject *)idx,
- (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count+1,
- &start, &stop,
-! &step, &slicelen) < 0)
-! {
- return NULL;
- }
- return BufferSlice(self, start, stop);
-! }
-! else
-! {
- PyErr_SetString(PyExc_IndexError, "Index must be int or slice");
- return NULL;
- }
-***************
-*** 1052,1075 ****
- static Py_ssize_t
- BufferAsSubscript(PyObject *self, PyObject* idx, PyObject* val)
- {
-! if (PyLong_Check(idx)) {
- long n = PyLong_AsLong(idx);
- return RBAsItem((BufferObject *)(self), n, val, 1,
- (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count,
- NULL);
-! } else if (PySlice_Check(idx)) {
- Py_ssize_t start, stop, step, slicelen;
-
- if (PySlice_GetIndicesEx((PyObject *)idx,
- (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count+1,
- &start, &stop,
-! &step, &slicelen) < 0) {
- return -1;
- }
- return RBAsSlice((BufferObject *)(self), start, stop, val, 1,
- (PyInt)((BufferObject *)(self))->buf->b_ml.ml_line_count,
- NULL);
-! } else {
- PyErr_SetString(PyExc_IndexError, "Index must be int or slice");
- return -1;
- }
---- 1181,1209 ----
- static Py_ssize_t
- BufferAsSubscript(PyObject *self, PyObject* idx, PyObject* val)
- {
-! if (PyLong_Check(idx))
-! {
- long n = PyLong_AsLong(idx);
- return RBAsItem((BufferObject *)(self), n, val, 1,
- (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count,
- NULL);
-! } else if (PySlice_Check(idx))
-! {
- Py_ssize_t start, stop, step, slicelen;
-
- if (PySlice_GetIndicesEx((PyObject *)idx,
- (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count+1,
- &start, &stop,
-! &step, &slicelen) < 0)
-! {
- return -1;
- }
- return RBAsSlice((BufferObject *)(self), start, stop, val, 1,
- (PyInt)((BufferObject *)(self))->buf->b_ml.ml_line_count,
- NULL);
-! }
-! else
-! {
- PyErr_SetString(PyExc_IndexError, "Index must be int or slice");
- return -1;
- }
-***************
-*** 1142,1161 ****
- static PyObject *
- RangeSubscript(PyObject *self, PyObject* idx)
- {
-! if (PyLong_Check(idx)) {
- long _idx = PyLong_AsLong(idx);
- return RangeItem(self,_idx);
-! } else if (PySlice_Check(idx)) {
- Py_ssize_t start, stop, step, slicelen;
-
- if (PySlice_GetIndicesEx((PyObject *)idx,
- ((RangeObject *)(self))->end-((RangeObject *)(self))->start+1,
- &start, &stop,
-! &step, &slicelen) < 0) {
- return NULL;
- }
- return RangeSlice(self, start, stop);
-! } else {
- PyErr_SetString(PyExc_IndexError, "Index must be int or slice");
- return NULL;
- }
---- 1276,1300 ----
- static PyObject *
- RangeSubscript(PyObject *self, PyObject* idx)
- {
-! if (PyLong_Check(idx))
-! {
- long _idx = PyLong_AsLong(idx);
- return RangeItem(self,_idx);
-! } else if (PySlice_Check(idx))
-! {
- Py_ssize_t start, stop, step, slicelen;
-
- if (PySlice_GetIndicesEx((PyObject *)idx,
- ((RangeObject *)(self))->end-((RangeObject *)(self))->start+1,
- &start, &stop,
-! &step, &slicelen) < 0)
-! {
- return NULL;
- }
- return RangeSlice(self, start, stop);
-! }
-! else
-! {
- PyErr_SetString(PyExc_IndexError, "Index must be int or slice");
- return NULL;
- }
-***************
-*** 1164,1183 ****
- static Py_ssize_t
- RangeAsSubscript(PyObject *self, PyObject *idx, PyObject *val)
- {
-! if (PyLong_Check(idx)) {
- long n = PyLong_AsLong(idx);
- return RangeAsItem(self, n, val);
-! } else if (PySlice_Check(idx)) {
- Py_ssize_t start, stop, step, slicelen;
-
- if (PySlice_GetIndicesEx((PyObject *)idx,
- ((RangeObject *)(self))->end-((RangeObject *)(self))->start+1,
- &start, &stop,
-! &step, &slicelen) < 0) {
- return -1;
- }
- return RangeAsSlice(self, start, stop, val);
-! } else {
- PyErr_SetString(PyExc_IndexError, "Index must be int or slice");
- return -1;
- }
---- 1303,1327 ----
- static Py_ssize_t
- RangeAsSubscript(PyObject *self, PyObject *idx, PyObject *val)
- {
-! if (PyLong_Check(idx))
-! {
- long n = PyLong_AsLong(idx);
- return RangeAsItem(self, n, val);
-! } else if (PySlice_Check(idx))
-! {
- Py_ssize_t start, stop, step, slicelen;
-
- if (PySlice_GetIndicesEx((PyObject *)idx,
- ((RangeObject *)(self))->end-((RangeObject *)(self))->start+1,
- &start, &stop,
-! &step, &slicelen) < 0)
-! {
- return -1;
- }
- return RangeAsSlice(self, start, stop, val);
-! }
-! else
-! {
- PyErr_SetString(PyExc_IndexError, "Index must be int or slice");
- return -1;
- }
-***************
-*** 1390,1395 ****
---- 1534,1680 ----
- }
- }
-
-+ /* Dictionary object - Definitions
-+ */
-+
-+ static PyInt DictionaryLength(PyObject *);
-+
-+ static PyMappingMethods DictionaryAsMapping = {
-+ /* mp_length */ (lenfunc) DictionaryLength,
-+ /* mp_subscript */ (binaryfunc) DictionaryItem,
-+ /* mp_ass_subscript */ (objobjargproc) DictionaryAssItem,
-+ };
-+
-+ static PyTypeObject DictionaryType;
-+
-+ static void
-+ DictionaryDestructor(PyObject *self)
-+ {
-+ DictionaryObject *this = (DictionaryObject *)(self);
-+
-+ pyll_remove(&this->ref, &lastdict);
-+ dict_unref(this->dict);
-+
-+ Py_TYPE(self)->tp_free((PyObject*)self);
-+ }
-+
-+ /* List object - Definitions
-+ */
-+
-+ static PyInt ListLength(PyObject *);
-+ static PyObject *ListItem(PyObject *, Py_ssize_t);
-+
-+ static PySequenceMethods ListAsSeq = {
-+ (lenfunc) ListLength, /* sq_length, len(x) */
-+ (binaryfunc) 0, /* RangeConcat, sq_concat, x+y */
-+ (ssizeargfunc) 0, /* RangeRepeat, sq_repeat, x*n */
-+ (ssizeargfunc) ListItem, /* sq_item, x[i] */
-+ (void *) 0, /* was_sq_slice, x[i:j] */
-+ (ssizeobjargproc) ListAssItem, /* sq_as_item, x[i]=v */
-+ (void *) 0, /* was_sq_ass_slice, x[i:j]=v */
-+ 0, /* sq_contains */
-+ (binaryfunc) ListConcatInPlace,/* sq_inplace_concat */
-+ 0, /* sq_inplace_repeat */
-+ };
-+
-+ static PyObject *ListSubscript(PyObject *, PyObject *);
-+ static Py_ssize_t ListAsSubscript(PyObject *, PyObject *, PyObject *);
-+
-+ static PyMappingMethods ListAsMapping = {
-+ /* mp_length */ (lenfunc) ListLength,
-+ /* mp_subscript */ (binaryfunc) ListSubscript,
-+ /* mp_ass_subscript */ (objobjargproc) ListAsSubscript,
-+ };
-+
-+ static PyTypeObject ListType;
-+
-+ static PyObject *
-+ ListSubscript(PyObject *self, PyObject* idxObject)
-+ {
-+ if (PyLong_Check(idxObject))
-+ {
-+ long idx = PyLong_AsLong(idxObject);
-+ return ListItem(self, idx);
-+ }
-+ else if (PySlice_Check(idxObject))
-+ {
-+ Py_ssize_t start, stop, step, slicelen;
-+
-+ if (PySlice_GetIndicesEx(idxObject, ListLength(self), &start, &stop,
-+ &step, &slicelen) < 0)
-+ return NULL;
-+ return ListSlice(self, start, stop);
-+ }
-+ else
-+ {
-+ PyErr_SetString(PyExc_IndexError, "Index must be int or slice");
-+ return NULL;
-+ }
-+ }
-+
-+ static Py_ssize_t
-+ ListAsSubscript(PyObject *self, PyObject *idxObject, PyObject *obj)
-+ {
-+ if (PyLong_Check(idxObject))
-+ {
-+ long idx = PyLong_AsLong(idxObject);
-+ return ListAssItem(self, idx, obj);
-+ }
-+ else if (PySlice_Check(idxObject))
-+ {
-+ Py_ssize_t start, stop, step, slicelen;
-+
-+ if (PySlice_GetIndicesEx(idxObject, ListLength(self), &start, &stop,
-+ &step, &slicelen) < 0)
-+ return -1;
-+ return ListAssSlice(self, start, stop, obj);
-+ }
-+ else
-+ {
-+ PyErr_SetString(PyExc_IndexError, "Index must be int or slice");
-+ return -1;
-+ }
-+ }
-+
-+ static void
-+ ListDestructor(PyObject *self)
-+ {
-+ ListObject *this = (ListObject *)(self);
-+
-+ pyll_remove(&this->ref, &lastlist);
-+ list_unref(this->list);
-+
-+ Py_TYPE(self)->tp_free((PyObject*)self);
-+ }
-+
-+ /* Function object - Definitions
-+ */
-+
-+ static void
-+ FunctionDestructor(PyObject *self)
-+ {
-+ FunctionObject *this = (FunctionObject *) (self);
-+
-+ func_unref(this->name);
-+ PyMem_Del(this->name);
-+
-+ Py_TYPE(self)->tp_free((PyObject*)self);
-+ }
-+
-+ static PyObject *
-+ FunctionGetattro(PyObject *self, PyObject *nameobj)
-+ {
-+ FunctionObject *this = (FunctionObject *)(self);
-+ char *name = "";
-+ if (PyUnicode_Check(nameobj))
-+ name = _PyUnicode_AsString(nameobj);
-+
-+ if (strcmp(name, "name") == 0)
-+ return PyUnicode_FromString((char *)(this->name));
-+
-+ return PyObject_GenericGetAttr(self, nameobj);
-+ }
-+
- /* External interface
- */
-
-***************
-*** 1449,1454 ****
---- 1734,1742 ----
- PyType_Ready(&BufListType);
- PyType_Ready(&WinListType);
- PyType_Ready(&CurrentType);
-+ PyType_Ready(&DictionaryType);
-+ PyType_Ready(&ListType);
-+ PyType_Ready(&FunctionType);
-
- /* Set sys.argv[] to avoid a crash in warn(). */
- PySys_SetArgv(1, argv);
-***************
-*** 1517,1522 ****
---- 1805,1828 ----
- return result;
- }
-
-+ void
-+ do_py3eval (char_u *str, typval_T *rettv)
-+ {
-+ DoPy3Command(NULL, (char *) str, rettv);
-+ switch(rettv->v_type)
-+ {
-+ case VAR_DICT: ++rettv->vval.v_dict->dv_refcount; break;
-+ case VAR_LIST: ++rettv->vval.v_list->lv_refcount; break;
-+ case VAR_FUNC: func_ref(rettv->vval.v_string); break;
-+ }
-+ }
-+
-+ void
-+ set_ref_in_python3 (int copyID)
-+ {
-+ set_ref_in_py(copyID);
-+ }
-+
- static void
- init_structs(void)
- {
-***************
-*** 1598,1603 ****
---- 1904,1938 ----
- CurrentType.tp_flags = Py_TPFLAGS_DEFAULT;
- CurrentType.tp_doc = "vim current object";
-
-+ vim_memset(&DictionaryType, 0, sizeof(DictionaryType));
-+ DictionaryType.tp_name = "vim.dictionary";
-+ DictionaryType.tp_basicsize = sizeof(DictionaryObject);
-+ DictionaryType.tp_dealloc = DictionaryDestructor;
-+ DictionaryType.tp_as_mapping = &DictionaryAsMapping;
-+ DictionaryType.tp_flags = Py_TPFLAGS_DEFAULT;
-+ DictionaryType.tp_doc = "dictionary pushing modifications to vim structure";
-+ DictionaryType.tp_methods = DictionaryMethods;
-+
-+ vim_memset(&ListType, 0, sizeof(ListType));
-+ ListType.tp_name = "vim.list";
-+ ListType.tp_dealloc = ListDestructor;
-+ ListType.tp_basicsize = sizeof(ListObject);
-+ ListType.tp_as_sequence = &ListAsSeq;
-+ ListType.tp_as_mapping = &ListAsMapping;
-+ ListType.tp_flags = Py_TPFLAGS_DEFAULT;
-+ ListType.tp_doc = "list pushing modifications to vim structure";
-+ ListType.tp_methods = ListMethods;
-+
-+ vim_memset(&FunctionType, 0, sizeof(FunctionType));
-+ FunctionType.tp_name = "vim.list";
-+ FunctionType.tp_basicsize = sizeof(FunctionObject);
-+ FunctionType.tp_getattro = FunctionGetattro;
-+ FunctionType.tp_dealloc = FunctionDestructor;
-+ FunctionType.tp_call = FunctionCall;
-+ FunctionType.tp_flags = Py_TPFLAGS_DEFAULT;
-+ FunctionType.tp_doc = "object that calls vim function";
-+ FunctionType.tp_methods = FunctionMethods;
-+
- vim_memset(&vimmodule, 0, sizeof(vimmodule));
- vimmodule.m_name = "vim";
- vimmodule.m_doc = vim_module_doc;
-*** ../vim-7.3.568/src/proto/eval.pro 2011-09-14 16:52:02.000000000 +0200
---- src/proto/eval.pro 2012-06-20 18:20:28.000000000 +0200
-***************
-*** 46,57 ****
---- 46,66 ----
- list_T *list_alloc __ARGS((void));
- void list_unref __ARGS((list_T *l));
- void list_free __ARGS((list_T *l, int recurse));
-+ listitem_T *listitem_alloc __ARGS((void));
-+ void listitem_remove __ARGS((list_T *l, listitem_T *item));
- dictitem_T *dict_lookup __ARGS((hashitem_T *hi));
-+ listitem_T *list_find __ARGS((list_T *l, long n));
- char_u *list_find_str __ARGS((list_T *l, long idx));
-+ void list_append __ARGS((list_T *l, listitem_T *item));
- int list_append_tv __ARGS((list_T *l, typval_T *tv));
- int list_append_dict __ARGS((list_T *list, dict_T *dict));
- int list_append_string __ARGS((list_T *l, char_u *str, int len));
-+ int list_insert_tv __ARGS((list_T *l, typval_T *tv, listitem_T *item));
-+ void list_remove __ARGS((list_T *l, listitem_T *item, listitem_T *item2));
- int garbage_collect __ARGS((void));
-+ void set_ref_in_ht __ARGS((hashtab_T *ht, int copyID));
-+ void set_ref_in_list __ARGS((list_T *l, int copyID));
-+ void set_ref_in_item __ARGS((typval_T *tv, int copyID));
- dict_T *dict_alloc __ARGS((void));
- void dict_unref __ARGS((dict_T *d));
- dictitem_T *dictitem_alloc __ARGS((char_u *key));
-***************
-*** 64,69 ****
---- 73,79 ----
- long get_dict_number __ARGS((dict_T *d, char_u *key));
- char_u *get_function_name __ARGS((expand_T *xp, int idx));
- char_u *get_expr_name __ARGS((expand_T *xp, int idx));
-+ int func_call __ARGS((char_u *name, typval_T *args, dict_T *selfdict, typval_T *rettv));
- long do_searchpair __ARGS((char_u *spat, char_u *mpat, char_u *epat, int dir, char_u *skip, int flags, pos_T *match_pos, linenr_T lnum_stop, long time_limit));
- void set_vim_var_nr __ARGS((int idx, long val));
- long get_vim_var_nr __ARGS((int idx));
-***************
-*** 94,99 ****
---- 104,111 ----
- void func_dump_profile __ARGS((FILE *fd));
- char_u *get_user_func_name __ARGS((expand_T *xp, int idx));
- void ex_delfunction __ARGS((exarg_T *eap));
-+ void func_unref __ARGS((char_u *name));
-+ void func_ref __ARGS((char_u *name));
- void ex_return __ARGS((exarg_T *eap));
- int do_return __ARGS((exarg_T *eap, int reanimate, int is_cmd, void *rettv));
- void discard_pending_return __ARGS((void *rettv));
-*** ../vim-7.3.568/src/proto/if_python.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/if_python.pro 2012-06-20 18:23:06.000000000 +0200
-***************
-*** 6,9 ****
---- 6,11 ----
- void ex_pyfile __ARGS((exarg_T *eap));
- void python_buffer_free __ARGS((buf_T *buf));
- void python_window_free __ARGS((win_T *win));
-+ void do_pyeval __ARGS((char_u *str, typval_T *rettv));
-+ void set_ref_in_python __ARGS((int copyID));
- /* vim: set ft=c : */
-*** ../vim-7.3.568/src/proto/if_python3.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/if_python3.pro 2012-06-20 18:34:26.000000000 +0200
-***************
-*** 6,9 ****
---- 6,11 ----
- void ex_py3file __ARGS((exarg_T *eap));
- void python3_buffer_free __ARGS((buf_T *buf));
- void python3_window_free __ARGS((win_T *win));
-+ void do_py3eval __ARGS((char_u *str, typval_T *rettv));
-+ void set_ref_in_python3 __ARGS((int copyID));
- /* vim: set ft=c : */
-*** ../vim-7.3.568/src/testdir/Make_amiga.mak 2012-04-05 16:56:38.000000000 +0200
---- src/testdir/Make_amiga.mak 2012-06-20 18:43:05.000000000 +0200
-***************
-*** 14,19 ****
---- 14,20 ----
- # test27 can't edit file with "*"
- # test52 only for Win32
- # test85 no Lua interface
-+ # test86, 87 no Python interface
-
- SCRIPTS = test1.out test3.out test4.out test5.out test6.out \
- test7.out test8.out test9.out \
-*** ../vim-7.3.568/src/testdir/Make_dos.mak 2012-04-13 19:11:16.000000000 +0200
---- src/testdir/Make_dos.mak 2012-06-20 18:43:45.000000000 +0200
-***************
-*** 30,36 ****
- test68.out test69.out test71.out test72.out test73.out \
- test74.out test75.out test76.out test77.out test78.out \
- test79.out test80.out test81.out test82.out test83.out \
-! test84.out test85.out
-
- SCRIPTS32 = test50.out test70.out
-
---- 30,36 ----
- test68.out test69.out test71.out test72.out test73.out \
- test74.out test75.out test76.out test77.out test78.out \
- test79.out test80.out test81.out test82.out test83.out \
-! test84.out test85.out test86.out test87.out
-
- SCRIPTS32 = test50.out test70.out
-
-*** ../vim-7.3.568/src/testdir/Make_ming.mak 2012-04-13 19:11:16.000000000 +0200
---- src/testdir/Make_ming.mak 2012-06-20 18:44:12.000000000 +0200
-***************
-*** 50,56 ****
- test68.out test69.out test71.out test72.out test73.out \
- test74.out test75.out test76.out test77.out test78.out \
- test79.out test80.out test81.out test82.out test83.out \
-! test84.out test85.out
-
- SCRIPTS32 = test50.out test70.out
-
---- 50,56 ----
- test68.out test69.out test71.out test72.out test73.out \
- test74.out test75.out test76.out test77.out test78.out \
- test79.out test80.out test81.out test82.out test83.out \
-! test84.out test85.out test86.out test87.out
-
- SCRIPTS32 = test50.out test70.out
-
-*** ../vim-7.3.568/src/testdir/Make_os2.mak 2012-04-05 16:56:38.000000000 +0200
---- src/testdir/Make_os2.mak 2012-06-20 18:44:32.000000000 +0200
-***************
-*** 14,19 ****
---- 14,20 ----
- # test27 can't edit file with "*" in file name
- # test52 only for Win32
- # test85 no Lua interface
-+ # test86, 87 no Python interface
-
- SCRIPTS = test1.out test3.out test4.out test5.out test6.out \
- test7.out test8.out test9.out \
-*** ../vim-7.3.568/src/testdir/Makefile 2012-04-05 16:56:38.000000000 +0200
---- src/testdir/Makefile 2012-06-29 11:56:00.000000000 +0200
-***************
-*** 27,33 ****
- test69.out test70.out test71.out test72.out test73.out \
- test74.out test75.out test76.out test77.out test78.out \
- test79.out test80.out test81.out test82.out test83.out \
-! test84.out test85.out
-
- SCRIPTS_GUI = test16.out
-
---- 27,33 ----
- test69.out test70.out test71.out test72.out test73.out \
- test74.out test75.out test76.out test77.out test78.out \
- test79.out test80.out test81.out test82.out test83.out \
-! test84.out test85.out test86.out test87.out
-
- SCRIPTS_GUI = test16.out
-
-*** ../vim-7.3.568/src/testdir/test86.in 2012-06-20 20:19:31.000000000 +0200
---- src/testdir/test86.in 2012-06-20 18:01:02.000000000 +0200
-***************
-*** 0 ****
---- 1,211 ----
-+ Tests for various python features. vim: set ft=vim :
-+
-+ STARTTEST
-+ :so small.vim
-+ :if !has('python') | e! test.ok | wq! test.out | endif
-+ :py import vim
-+ :fun Test()
-+ :let l = []
-+ :py l=vim.bindeval('l')
-+ :py f=vim.bindeval('function("strlen")')
-+ :" Extending List directly with different types
-+ :py l.extend([1, "as'd", [1, 2, f, {'a': 1}]])
-+ :$put =string(l)
-+ :$put =string(l[-1])
-+ :try
-+ : $put =string(l[-4])
-+ :catch
-+ : $put =v:exception[:13]
-+ :endtry
-+ :" List assignment
-+ :py l[0]=0
-+ :$put =string(l)
-+ :py l[-2]=f
-+ :$put =string(l)
-+ :"
-+ :" Extending Dictionary directly with different types
-+ :let d = {}
-+ :py d=vim.bindeval('d')
-+ :py d['1']='asd'
-+ :py d['b']=[1, 2, f]
-+ :py d['-1']={'a': 1}
-+ :let dkeys = []
-+ :py dk=vim.bindeval('dkeys')
-+ :py dkeys=d.keys()
-+ :py dkeys.sort()
-+ :py dk.extend(dkeys)
-+ :$put =string(dkeys)
-+ :for [key, val] in sort(items(d))
-+ : $put =string(key) . ' : ' . string(val)
-+ : unlet key val
-+ :endfor
-+ :"
-+ :" removing items with del
-+ :py del l[2]
-+ :$put =string(l)
-+ :let l = range(8)
-+ :py l=vim.bindeval('l')
-+ :try
-+ : py del l[:3]
-+ : py del l[1:]
-+ :catch
-+ : $put =v:exception
-+ :endtry
-+ :$put =string(l)
-+ :"
-+ :py del d['-1']
-+ :$put =string(d)
-+ :"
-+ :" removing items out of range: silently skip items that don't exist
-+ :let l = [0, 1, 2, 3]
-+ :py l=vim.bindeval('l')
-+ :" The following two ranges delete nothing as they match empty list:
-+ :py del l[2:1]
-+ :$put =string(l)
-+ :py del l[2:2]
-+ :$put =string(l)
-+ :py del l[2:3]
-+ :$put =string(l)
-+ :let l = [0, 1, 2, 3]
-+ :py l=vim.bindeval('l')
-+ :py del l[2:4]
-+ :$put =string(l)
-+ :let l = [0, 1, 2, 3]
-+ :py l=vim.bindeval('l')
-+ :py del l[2:5]
-+ :$put =string(l)
-+ :let l = [0, 1, 2, 3]
-+ :py l=vim.bindeval('l')
-+ :py del l[2:6]
-+ :$put =string(l)
-+ :let l = [0, 1, 2, 3]
-+ :py l=vim.bindeval('l')
-+ :" The following two ranges delete nothing as they match empty list:
-+ :py del l[-1:2]
-+ :$put =string(l)
-+ :py del l[-2:2]
-+ :$put =string(l)
-+ :py del l[-3:2]
-+ :$put =string(l)
-+ :let l = [0, 1, 2, 3]
-+ :py l=vim.bindeval('l')
-+ :py del l[-4:2]
-+ :$put =string(l)
-+ :let l = [0, 1, 2, 3]
-+ :py l=vim.bindeval('l')
-+ :py del l[-5:2]
-+ :$put =string(l)
-+ :let l = [0, 1, 2, 3]
-+ :py l=vim.bindeval('l')
-+ :py del l[-6:2]
-+ :$put =string(l)
-+ :"
-+ :" Slice assignment to a list
-+ :let l = [0, 1, 2, 3]
-+ :py l=vim.bindeval('l')
-+ :py l[0:0]=['a']
-+ :$put =string(l)
-+ :let l = [0, 1, 2, 3]
-+ :py l=vim.bindeval('l')
-+ :py l[1:2]=['b']
-+ :$put =string(l)
-+ :let l = [0, 1, 2, 3]
-+ :py l=vim.bindeval('l')
-+ :py l[2:4]=['c']
-+ :$put =string(l)
-+ :let l = [0, 1, 2, 3]
-+ :py l=vim.bindeval('l')
-+ :py l[4:4]=['d']
-+ :$put =string(l)
-+ :let l = [0, 1, 2, 3]
-+ :py l=vim.bindeval('l')
-+ :py l[-1:2]=['e']
-+ :$put =string(l)
-+ :let l = [0, 1, 2, 3]
-+ :py l=vim.bindeval('l')
-+ :py l[-10:2]=['f']
-+ :$put =string(l)
-+ :let l = [0, 1, 2, 3]
-+ :py l=vim.bindeval('l')
-+ :py l[2:-10]=['g']
-+ :$put =string(l)
-+ :let l = []
-+ :py l=vim.bindeval('l')
-+ :py l[0:0]=['h']
-+ :$put =string(l)
-+ :"
-+ :" Locked variables
-+ :let l = [0, 1, 2, 3]
-+ :py l=vim.bindeval('l')
-+ :lockvar! l
-+ :py l[2]='i'
-+ :$put =string(l)
-+ :unlockvar! l
-+ :"
-+ :" Function calls
-+ :function New(...)
-+ :return ['NewStart']+a:000+['NewEnd']
-+ :endfunction
-+ :function DictNew(...) dict
-+ :return ['DictNewStart']+a:000+['DictNewEnd', self]
-+ :endfunction
-+ :let l=[function('New'), function('DictNew')]
-+ :py l=vim.bindeval('l')
-+ :py l.extend(list(l[0](1, 2, 3)))
-+ :$put =string(l)
-+ :py l.extend(list(l[1](1, 2, 3, self={'a': 'b'})))
-+ :$put =string(l)
-+ :py l.extend([l[0].name])
-+ :$put =string(l)
-+ :try
-+ : py l[1](1, 2, 3)
-+ :catch
-+ : $put =v:exception[:16]
-+ :endtry
-+ :delfunction New
-+ :try
-+ : py l[0](1, 2, 3)
-+ :catch
-+ : $put =v:exception[:16]
-+ :endtry
-+ :if has('float')
-+ : let l=[0.0]
-+ : py l=vim.bindeval('l')
-+ : py l.extend([0.0])
-+ : $put =string(l)
-+ :else
-+ : $put ='[0.0, 0.0]'
-+ :endif
-+ :"
-+ :" pyeval()
-+ :let l=pyeval('range(3)')
-+ :$put =string(l)
-+ :let d=pyeval('{"a": "b", "c": 1, "d": ["e"]}')
-+ :$put =sort(items(d))
-+ :try
-+ : let undef=pyeval('undefined_name')
-+ :catch
-+ : $put =v:exception[:13]
-+ :endtry
-+ :try
-+ : let vim=pyeval('vim')
-+ :catch
-+ : $put =v:exception[:13]
-+ :endtry
-+ :if has('float')
-+ : let f=pyeval('0.0')
-+ : $put =string(f)
-+ :else
-+ : $put ='0.0'
-+ :endif
-+ :endfun
-+ :"
-+ :call Test()
-+ :"
-+ :delfunc Test
-+ :call garbagecollect(1)
-+ :"
-+ :/^start:/,$wq! test.out
-+ ENDTEST
-+
-+ start:
-*** ../vim-7.3.568/src/testdir/test86.ok 2012-06-20 20:19:31.000000000 +0200
---- src/testdir/test86.ok 2012-06-20 18:01:02.000000000 +0200
-***************
-*** 0 ****
---- 1,47 ----
-+ start:
-+ [1, 'as''d', [1, 2, function('strlen'), {'a': 1}]]
-+ [1, 2, function('strlen'), {'a': 1}]
-+ Vim(put):E684:
-+ [0, 'as''d', [1, 2, function('strlen'), {'a': 1}]]
-+ [0, function('strlen'), [1, 2, function('strlen'), {'a': 1}]]
-+ ['-1', '1', 'b']
-+ '-1' : {'a': 1}
-+ '1' : 'asd'
-+ 'b' : [1, 2, function('strlen')]
-+ [0, function('strlen')]
-+ [3]
-+ {'1': 'asd', 'b': [1, 2, function('strlen')]}
-+ [0, 1, 2, 3]
-+ [0, 1, 2, 3]
-+ [0, 1, 3]
-+ [0, 1]
-+ [0, 1]
-+ [0, 1]
-+ [0, 1, 2, 3]
-+ [0, 1, 2, 3]
-+ [0, 2, 3]
-+ [2, 3]
-+ [2, 3]
-+ [2, 3]
-+ ['a', 0, 1, 2, 3]
-+ [0, 'b', 2, 3]
-+ [0, 1, 'c']
-+ [0, 1, 2, 3, 'd']
-+ [0, 1, 2, 'e', 3]
-+ ['f', 2, 3]
-+ [0, 1, 'g', 2, 3]
-+ ['h']
-+ [0, 1, 2, 3]
-+ [function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd']
-+ [function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd', 'DictNewStart', 1, 2, 3, 'DictNewEnd', {'a': 'b'}]
-+ [function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd', 'DictNewStart', 1, 2, 3, 'DictNewEnd', {'a': 'b'}, 'New']
-+ Vim(python):E725:
-+ Vim(python):E117:
-+ [0.0, 0.0]
-+ [0, 1, 2]
-+ ['a', 'b']
-+ ['c', 1]
-+ ['d', ['e']]
-+ Vim(let):E858:
-+ Vim(let):E859:
-+ 0.0
-*** ../vim-7.3.568/src/testdir/test87.in 2012-06-20 20:19:31.000000000 +0200
---- src/testdir/test87.in 2012-06-20 18:01:02.000000000 +0200
-***************
-*** 0 ****
---- 1,211 ----
-+ Tests for various python features. vim: set ft=vim :
-+
-+ STARTTEST
-+ :so small.vim
-+ :if !has('python3') | e! test.ok | wq! test.out | endif
-+ :py3 import vim
-+ :fun Test()
-+ :let l = []
-+ :py3 l=vim.bindeval('l')
-+ :py3 f=vim.bindeval('function("strlen")')
-+ :" Extending List directly with different types
-+ :py3 l+=[1, "as'd", [1, 2, f, {'a': 1}]]
-+ :$put =string(l)
-+ :$put =string(l[-1])
-+ :try
-+ : $put =string(l[-4])
-+ :catch
-+ : $put =v:exception[:13]
-+ :endtry
-+ :" List assignment
-+ :py3 l[0]=0
-+ :$put =string(l)
-+ :py3 l[-2]=f
-+ :$put =string(l)
-+ :"
-+ :" Extending Dictionary directly with different types
-+ :let d = {}
-+ :py3 d=vim.bindeval('d')
-+ :py3 d['1']='asd'
-+ :py3 d['b']=[1, 2, f]
-+ :py3 d['-1']={'a': 1}
-+ :let dkeys = []
-+ :py3 dk=vim.bindeval('dkeys')
-+ :py3 dkeys=d.keys()
-+ :py3 dkeys.sort()
-+ :py3 dk+=dkeys
-+ :$put =string(dkeys)
-+ :for [key, val] in sort(items(d))
-+ : $put =string(key) . ' : ' . string(val)
-+ : unlet key val
-+ :endfor
-+ :"
-+ :" removing items with del
-+ :py3 del l[2]
-+ :$put =string(l)
-+ :let l = range(8)
-+ :py3 l=vim.bindeval('l')
-+ :try
-+ : py3 del l[:3]
-+ : py3 del l[1:]
-+ :catch
-+ : $put =v:exception
-+ :endtry
-+ :$put =string(l)
-+ :"
-+ :py3 del d['-1']
-+ :$put =string(d)
-+ :"
-+ :" removing items out of range: silently skip items that don't exist
-+ :let l = [0, 1, 2, 3]
-+ :py3 l=vim.bindeval('l')
-+ :" The following two ranges delete nothing as they match empty list:
-+ :py3 del l[2:1]
-+ :$put =string(l)
-+ :py3 del l[2:2]
-+ :$put =string(l)
-+ :py3 del l[2:3]
-+ :$put =string(l)
-+ :let l = [0, 1, 2, 3]
-+ :py3 l=vim.bindeval('l')
-+ :py3 del l[2:4]
-+ :$put =string(l)
-+ :let l = [0, 1, 2, 3]
-+ :py3 l=vim.bindeval('l')
-+ :py3 del l[2:5]
-+ :$put =string(l)
-+ :let l = [0, 1, 2, 3]
-+ :py3 l=vim.bindeval('l')
-+ :py3 del l[2:6]
-+ :$put =string(l)
-+ :let l = [0, 1, 2, 3]
-+ :py3 l=vim.bindeval('l')
-+ :" The following two ranges delete nothing as they match empty list:
-+ :py3 del l[-1:2]
-+ :$put =string(l)
-+ :py3 del l[-2:2]
-+ :$put =string(l)
-+ :py3 del l[-3:2]
-+ :$put =string(l)
-+ :let l = [0, 1, 2, 3]
-+ :py3 l=vim.bindeval('l')
-+ :py3 del l[-4:2]
-+ :$put =string(l)
-+ :let l = [0, 1, 2, 3]
-+ :py3 l=vim.bindeval('l')
-+ :py3 del l[-5:2]
-+ :$put =string(l)
-+ :let l = [0, 1, 2, 3]
-+ :py3 l=vim.bindeval('l')
-+ :py3 del l[-6:2]
-+ :$put =string(l)
-+ :"
-+ :" Slice assignment to a list
-+ :let l = [0, 1, 2, 3]
-+ :py3 l=vim.bindeval('l')
-+ :py3 l[0:0]=['a']
-+ :$put =string(l)
-+ :let l = [0, 1, 2, 3]
-+ :py3 l=vim.bindeval('l')
-+ :py3 l[1:2]=['b']
-+ :$put =string(l)
-+ :let l = [0, 1, 2, 3]
-+ :py3 l=vim.bindeval('l')
-+ :py3 l[2:4]=['c']
-+ :$put =string(l)
-+ :let l = [0, 1, 2, 3]
-+ :py3 l=vim.bindeval('l')
-+ :py3 l[4:4]=['d']
-+ :$put =string(l)
-+ :let l = [0, 1, 2, 3]
-+ :py3 l=vim.bindeval('l')
-+ :py3 l[-1:2]=['e']
-+ :$put =string(l)
-+ :let l = [0, 1, 2, 3]
-+ :py3 l=vim.bindeval('l')
-+ :py3 l[-10:2]=['f']
-+ :$put =string(l)
-+ :let l = [0, 1, 2, 3]
-+ :py3 l=vim.bindeval('l')
-+ :py3 l[2:-10]=['g']
-+ :$put =string(l)
-+ :let l = []
-+ :py3 l=vim.bindeval('l')
-+ :py3 l[0:0]=['h']
-+ :$put =string(l)
-+ :"
-+ :" Locked variables
-+ :let l = [0, 1, 2, 3]
-+ :py3 l=vim.bindeval('l')
-+ :lockvar! l
-+ :py3 l[2]='i'
-+ :$put =string(l)
-+ :unlockvar! l
-+ :"
-+ :" Function calls
-+ :function New(...)
-+ :return ['NewStart']+a:000+['NewEnd']
-+ :endfunction
-+ :function DictNew(...) dict
-+ :return ['DictNewStart']+a:000+['DictNewEnd', self]
-+ :endfunction
-+ :let l=[function('New'), function('DictNew')]
-+ :py3 l=vim.bindeval('l')
-+ :py3 l.extend(list(l[0](1, 2, 3)))
-+ :$put =string(l)
-+ :py3 l.extend(list(l[1](1, 2, 3, self={'a': 'b'})))
-+ :$put =string(l)
-+ :py3 l+=[l[0].name]
-+ :$put =string(l)
-+ :try
-+ : py3 l[1](1, 2, 3)
-+ :catch
-+ : $put =v:exception[:13]
-+ :endtry
-+ :delfunction New
-+ :try
-+ : py3 l[0](1, 2, 3)
-+ :catch
-+ : $put =v:exception[:13]
-+ :endtry
-+ :if has('float')
-+ : let l=[0.0]
-+ : py3 l=vim.bindeval('l')
-+ : py3 l.extend([0.0])
-+ : $put =string(l)
-+ :else
-+ : $put ='[0.0, 0.0]'
-+ :endif
-+ :"
-+ :" py3eval()
-+ :let l=py3eval('[0, 1, 2]')
-+ :$put =string(l)
-+ :let d=py3eval('{"a": "b", "c": 1, "d": ["e"]}')
-+ :$put =sort(items(d))
-+ :try
-+ : let undef=py3eval('undefined_name')
-+ :catch
-+ : $put =v:exception[:13]
-+ :endtry
-+ :try
-+ : let vim=py3eval('vim')
-+ :catch
-+ : $put =v:exception[:13]
-+ :endtry
-+ :if has('float')
-+ : let f=py3eval('0.0')
-+ : $put =string(f)
-+ :else
-+ : $put ='0.0'
-+ :endif
-+ :endfun
-+ :"
-+ :call Test()
-+ :"
-+ :delfunc Test
-+ :call garbagecollect(1)
-+ :"
-+ :/^start:/,$wq! test.out
-+ ENDTEST
-+
-+ start:
-*** ../vim-7.3.568/src/testdir/test87.ok 2012-06-20 20:19:31.000000000 +0200
---- src/testdir/test87.ok 2012-06-20 18:01:02.000000000 +0200
-***************
-*** 0 ****
---- 1,47 ----
-+ start:
-+ [1, 'as''d', [1, 2, function('strlen'), {'a': 1}]]
-+ [1, 2, function('strlen'), {'a': 1}]
-+ Vim(put):E684:
-+ [0, 'as''d', [1, 2, function('strlen'), {'a': 1}]]
-+ [0, function('strlen'), [1, 2, function('strlen'), {'a': 1}]]
-+ ['-1', '1', 'b']
-+ '-1' : {'a': 1}
-+ '1' : 'asd'
-+ 'b' : [1, 2, function('strlen')]
-+ [0, function('strlen')]
-+ [3]
-+ {'1': 'asd', 'b': [1, 2, function('strlen')]}
-+ [0, 1, 2, 3]
-+ [0, 1, 2, 3]
-+ [0, 1, 3]
-+ [0, 1]
-+ [0, 1]
-+ [0, 1]
-+ [0, 1, 2, 3]
-+ [0, 1, 2, 3]
-+ [0, 2, 3]
-+ [2, 3]
-+ [2, 3]
-+ [2, 3]
-+ ['a', 0, 1, 2, 3]
-+ [0, 'b', 2, 3]
-+ [0, 1, 'c']
-+ [0, 1, 2, 3, 'd']
-+ [0, 1, 2, 'e', 3]
-+ ['f', 2, 3]
-+ [0, 1, 'g', 2, 3]
-+ ['h']
-+ [0, 1, 2, 3]
-+ [function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd']
-+ [function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd', 'DictNewStart', 1, 2, 3, 'DictNewEnd', {'a': 'b'}]
-+ [function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd', 'DictNewStart', 1, 2, 3, 'DictNewEnd', {'a': 'b'}, 'New']
-+ Vim(py3):E725:
-+ Vim(py3):E117:
-+ [0.0, 0.0]
-+ [0, 1, 2]
-+ ['a', 'b']
-+ ['c', 1]
-+ ['d', ['e']]
-+ Vim(let):E860:
-+ Vim(let):E861:
-+ 0.0
-*** ../vim-7.3.568/src/version.c 2012-06-29 12:35:40.000000000 +0200
---- src/version.c 2012-06-29 12:47:03.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 569,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-69. Yahoo welcomes you with your own start page
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.570
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.570
-Problem: ":vimgrep" does not obey 'wildignore'.
-Solution: Apply 'wildignore' and 'suffixes' to ":vimgrep". (Ingo Karkat)
-Files: src/ex_cmds2.c, src/proto/ex_cmds2.pro, src/quickfix.c, src/spell.c
-
-
-*** ../vim-7.3.569/src/ex_cmds2.c 2012-06-20 15:48:53.000000000 +0200
---- src/ex_cmds2.c 2012-06-29 12:43:34.000000000 +0200
-***************
-*** 1850,1871 ****
- #if defined(FEAT_QUICKFIX) || defined(FEAT_SYN_HL) || defined(PROTO)
- /*
- * Parse a list of arguments (file names), expand them and return in
-! * "fnames[fcountp]".
- * Return FAIL or OK.
- */
- int
-! get_arglist_exp(str, fcountp, fnamesp)
- char_u *str;
- int *fcountp;
- char_u ***fnamesp;
- {
- garray_T ga;
- int i;
-
- if (get_arglist(&ga, str) == FAIL)
- return FAIL;
-! i = gen_expand_wildcards(ga.ga_len, (char_u **)ga.ga_data,
-! fcountp, fnamesp, EW_FILE|EW_NOTFOUND);
- ga_clear(&ga);
- return i;
- }
---- 1850,1877 ----
- #if defined(FEAT_QUICKFIX) || defined(FEAT_SYN_HL) || defined(PROTO)
- /*
- * Parse a list of arguments (file names), expand them and return in
-! * "fnames[fcountp]". When "wig" is TRUE, removes files matching 'wildignore'.
- * Return FAIL or OK.
- */
- int
-! get_arglist_exp(str, fcountp, fnamesp, wig)
- char_u *str;
- int *fcountp;
- char_u ***fnamesp;
-+ int wig;
- {
- garray_T ga;
- int i;
-
- if (get_arglist(&ga, str) == FAIL)
- return FAIL;
-! if (wig == TRUE)
-! i = expand_wildcards(ga.ga_len, (char_u **)ga.ga_data,
-! fcountp, fnamesp, EW_FILE|EW_NOTFOUND);
-! else
-! i = gen_expand_wildcards(ga.ga_len, (char_u **)ga.ga_data,
-! fcountp, fnamesp, EW_FILE|EW_NOTFOUND);
-!
- ga_clear(&ga);
- return i;
- }
-*** ../vim-7.3.569/src/proto/ex_cmds2.pro 2011-05-19 18:26:34.000000000 +0200
---- src/proto/ex_cmds2.pro 2012-06-29 12:43:49.000000000 +0200
-***************
-*** 42,48 ****
- int check_fname __ARGS((void));
- int buf_write_all __ARGS((buf_T *buf, int forceit));
- int get_arglist __ARGS((garray_T *gap, char_u *str));
-! int get_arglist_exp __ARGS((char_u *str, int *fcountp, char_u ***fnamesp));
- void set_arglist __ARGS((char_u *str));
- void check_arg_idx __ARGS((win_T *win));
- void ex_args __ARGS((exarg_T *eap));
---- 42,48 ----
- int check_fname __ARGS((void));
- int buf_write_all __ARGS((buf_T *buf, int forceit));
- int get_arglist __ARGS((garray_T *gap, char_u *str));
-! int get_arglist_exp __ARGS((char_u *str, int *fcountp, char_u ***fnamesp, int wig));
- void set_arglist __ARGS((char_u *str));
- void check_arg_idx __ARGS((win_T *win));
- void ex_args __ARGS((exarg_T *eap));
-*** ../vim-7.3.569/src/quickfix.c 2012-06-01 18:34:37.000000000 +0200
---- src/quickfix.c 2012-06-29 12:43:49.000000000 +0200
-***************
-*** 3189,3195 ****
- ;
-
- /* parse the list of arguments */
-! if (get_arglist_exp(p, &fcount, &fnames) == FAIL)
- goto theend;
- if (fcount == 0)
- {
---- 3189,3195 ----
- ;
-
- /* parse the list of arguments */
-! if (get_arglist_exp(p, &fcount, &fnames, TRUE) == FAIL)
- goto theend;
- if (fcount == 0)
- {
-*** ../vim-7.3.569/src/spell.c 2012-06-01 17:49:51.000000000 +0200
---- src/spell.c 2012-06-29 12:43:49.000000000 +0200
-***************
-*** 8553,8559 ****
- }
-
- /* Expand all the remaining arguments (e.g., $VIMRUNTIME). */
-! if (get_arglist_exp(arg, &fcount, &fnames) == OK)
- {
- mkspell(fcount, fnames, ascii, eap->forceit, FALSE);
- FreeWild(fcount, fnames);
---- 8553,8559 ----
- }
-
- /* Expand all the remaining arguments (e.g., $VIMRUNTIME). */
-! if (get_arglist_exp(arg, &fcount, &fnames, FALSE) == OK)
- {
- mkspell(fcount, fnames, ascii, eap->forceit, FALSE);
- FreeWild(fcount, fnames);
-*** ../vim-7.3.569/src/version.c 2012-06-29 12:54:32.000000000 +0200
---- src/version.c 2012-06-29 12:56:12.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 570,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-70. ISDN lines are added to your house on a hourly basis
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.571
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.571
-Problem: Duplicated condition.
-Solution: Remove one. (Dominique Pelle)
-Files: src/os_win32.c
-
-
-*** ../vim-7.3.570/src/os_win32.c 2012-02-29 13:58:43.000000000 +0100
---- src/os_win32.c 2012-06-29 13:10:54.000000000 +0200
-***************
-*** 308,314 ****
- # ifndef GETTEXT_DLL
- # define GETTEXT_DLL "libintl.dll"
- # endif
-! /* Dummy funcitons */
- static char *null_libintl_gettext(const char *);
- static char *null_libintl_textdomain(const char *);
- static char *null_libintl_bindtextdomain(const char *, const char *);
---- 308,314 ----
- # ifndef GETTEXT_DLL
- # define GETTEXT_DLL "libintl.dll"
- # endif
-! /* Dummy functions */
- static char *null_libintl_gettext(const char *);
- static char *null_libintl_textdomain(const char *);
- static char *null_libintl_bindtextdomain(const char *, const char *);
-***************
-*** 1409,1415 ****
-
-
- /*
-! * mch_inchar(): low-level input funcion.
- * Get one or more characters from the keyboard or the mouse.
- * If time == 0, do not wait for characters.
- * If time == n, wait a short time for characters.
---- 1409,1415 ----
-
-
- /*
-! * mch_inchar(): low-level input function.
- * Get one or more characters from the keyboard or the mouse.
- * If time == 0, do not wait for characters.
- * If time == n, wait a short time for characters.
-***************
-*** 3451,3464 ****
- * to avoid to perform a blocking read */
- ret = PeekNamedPipe(g_hChildStd_OUT_Rd, /* pipe to query */
- NULL, /* optional buffer */
-! 0, /* buffe size */
- NULL, /* number of read bytes */
- &availableBytes, /* available bytes total */
- NULL); /* byteLeft */
-
- repeatCount = 0;
- /* We got real data in the pipe, read it */
-! while (ret != 0 && availableBytes > 0 && availableBytes > 0)
- {
- repeatCount++;
- toRead =
---- 3451,3464 ----
- * to avoid to perform a blocking read */
- ret = PeekNamedPipe(g_hChildStd_OUT_Rd, /* pipe to query */
- NULL, /* optional buffer */
-! 0, /* buffer size */
- NULL, /* number of read bytes */
- &availableBytes, /* available bytes total */
- NULL); /* byteLeft */
-
- repeatCount = 0;
- /* We got real data in the pipe, read it */
-! while (ret != 0 && availableBytes > 0)
- {
- repeatCount++;
- toRead =
-***************
-*** 3638,3644 ****
- NULL, /* Process security attributes */
- NULL, /* Thread security attributes */
-
-! // this command can be litigeous, handle inheritence was
- // deactivated for pending temp file, but, if we deactivate
- // it, the pipes don't work for some reason.
- TRUE, /* Inherit handles, first deactivated,
---- 3638,3644 ----
- NULL, /* Process security attributes */
- NULL, /* Thread security attributes */
-
-! // this command can be litigious, handle inheritance was
- // deactivated for pending temp file, but, if we deactivate
- // it, the pipes don't work for some reason.
- TRUE, /* Inherit handles, first deactivated,
-*** ../vim-7.3.570/src/version.c 2012-06-29 12:57:03.000000000 +0200
---- src/version.c 2012-06-29 13:12:31.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 571,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-71. You wonder how people walk
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.572
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.572
-Problem: Duplicate statement in if and else. (Dominique Pelle)
-Solution: Remove the condition and add a TODO.
-Files: src/gui_xmebw.c
-
-
-*** ../vim-7.3.571/src/gui_xmebw.c 2010-08-15 21:57:29.000000000 +0200
---- src/gui_xmebw.c 2012-06-29 13:17:15.000000000 +0200
-***************
-*** 375,385 ****
-
- XGetGeometry(dpy, pix, &root, &x, &y, &width, &height, &border, &depth);
-
-! if (eb->enhancedbutton.label_location == (int)XmTOP
-! || eb->enhancedbutton.label_location == (int)XmBOTTOM)
-! shift = eb->primitive.shadow_thickness / 2;
-! else
-! shift = eb->primitive.shadow_thickness / 2;
-
- if (shift < 1)
- shift = 1;
---- 375,382 ----
-
- XGetGeometry(dpy, pix, &root, &x, &y, &width, &height, &border, &depth);
-
-! /* TODO: does the shift depend on label_location somehow? */
-! shift = eb->primitive.shadow_thickness / 2;
-
- if (shift < 1)
- shift = 1;
-*** ../vim-7.3.571/src/version.c 2012-06-29 13:13:59.000000000 +0200
---- src/version.c 2012-06-29 13:18:41.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 572,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-72. Somebody at IRC just mentioned a way to obtain full motion video without
- a PC using a wireless protocol called NTSC, you wonder how you never
- heard about it
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.573
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.573
-Problem: Using array index before bounds checking.
-Solution: Swap the parts of the condition. (Dominique Pelle)
-Files: src/ops.c
-
-
-*** ../vim-7.3.572/src/ops.c 2012-06-13 17:28:51.000000000 +0200
---- src/ops.c 2012-06-29 13:27:11.000000000 +0200
-***************
-*** 6458,6464 ****
- long chars = 0;
- int is_word = 0;
-
-! for (i = 0; line[i] && i < limit; )
- {
- if (is_word)
- {
---- 6458,6464 ----
- long chars = 0;
- int is_word = 0;
-
-! for (i = 0; i < limit && line[i] != NUL; )
- {
- if (is_word)
- {
-*** ../vim-7.3.572/src/version.c 2012-06-29 13:19:23.000000000 +0200
---- src/version.c 2012-06-29 13:27:59.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 573,
- /**/
-
---
-"Thou shalt not follow the Null Pointer, for at its end Chaos and
-Madness lie."
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.574
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.574
-Problem: When pasting a register in the search command line a CTRL-L
- character is not pasted. (Dominique Pelle)
-Solution: Escape the CTRL-L. (Christian Brabandt)
-Files: src/ex_getln.c
-
-
-*** ../vim-7.3.573/src/ex_getln.c 2012-06-06 12:02:57.000000000 +0200
---- src/ex_getln.c 2012-06-29 13:39:03.000000000 +0200
-***************
-*** 3133,3139 ****
- else
- #endif
- c = *s++;
-! if (cv == Ctrl_V || c == ESC || c == Ctrl_C || c == CAR || c == NL
- #ifdef UNIX
- || c == intr_char
- #endif
---- 3133,3140 ----
- else
- #endif
- c = *s++;
-! if (cv == Ctrl_V || c == ESC || c == Ctrl_C
-! || c == CAR || c == NL || c == Ctrl_L
- #ifdef UNIX
- || c == intr_char
- #endif
-***************
-*** 4692,4698 ****
- if (tab[i].ic)
- regmatch.rm_ic = TRUE;
- ret = ExpandGeneric(xp, &regmatch, num_file, file,
-! tab[i].func, tab[i].escaped);
- break;
- }
- }
---- 4693,4699 ----
- if (tab[i].ic)
- regmatch.rm_ic = TRUE;
- ret = ExpandGeneric(xp, &regmatch, num_file, file,
-! tab[i].func, tab[i].escaped);
- break;
- }
- }
-***************
-*** 5125,5131 ****
- vim_free(matches);
- }
- if (ga.ga_len == 0)
-! return FAIL;
-
- /* Sort and remove duplicates which can happen when specifying multiple
- * directories in dirnames. */
---- 5126,5132 ----
- vim_free(matches);
- }
- if (ga.ga_len == 0)
-! return FAIL;
-
- /* Sort and remove duplicates which can happen when specifying multiple
- * directories in dirnames. */
-*** ../vim-7.3.573/src/version.c 2012-06-29 13:34:15.000000000 +0200
---- src/version.c 2012-06-29 13:38:22.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 574,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-73. You give your dog used motherboards instead of bones
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.575
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.575
-Problem: "ygt" tries to yank instead of giving an error. (Daniel Mueller)
-Solution: Check for a pending operator.
-Files: src/normal.c
-
-
-*** ../vim-7.3.574/src/normal.c 2012-06-06 16:12:54.000000000 +0200
---- src/normal.c 2012-06-29 13:50:26.000000000 +0200
-***************
-*** 8393,8402 ****
-
- #ifdef FEAT_WINDOWS
- case 't':
-! goto_tabpage((int)cap->count0);
- break;
- case 'T':
-! goto_tabpage(-(int)cap->count1);
- break;
- #endif
-
---- 8393,8404 ----
-
- #ifdef FEAT_WINDOWS
- case 't':
-! if (!checkclearop(oap))
-! goto_tabpage((int)cap->count0);
- break;
- case 'T':
-! if (!checkclearop(oap))
-! goto_tabpage(-(int)cap->count1);
- break;
- #endif
-
-*** ../vim-7.3.574/src/version.c 2012-06-29 13:44:37.000000000 +0200
---- src/version.c 2012-06-29 13:52:01.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 575,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-74. Your most erotic dreams are about cybersex
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.576
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.576
-Problem: Formatting of lists inside comments is not right yet.
-Solution: Use another solution and add a test. (Tor Perkins)
-Files: src/edit.c, src/misc1.c, src/testdir/test68.in,
- src/testdir/test69.ok
-
-
-*** ../vim-7.3.575/src/edit.c 2012-06-20 22:55:56.000000000 +0200
---- src/edit.c 2012-06-29 14:10:36.000000000 +0200
-***************
-*** 6320,6333 ****
- if (!(flags & INSCHAR_COM_LIST))
- {
- /*
-! * This section is for numeric lists w/o comments. If comment
-! * indents are needed with numeric lists (formatoptions=nq),
-! * then the INSCHAR_COM_LIST flag will cause the corresponding
-! * OPENLINE_COM_LIST flag to be passed through to open_line()
-! * (as seen above)...
- */
- if (second_indent < 0 && has_format_option(FO_Q_NUMBER))
-! second_indent = get_number_indent(curwin->w_cursor.lnum -1);
- if (second_indent >= 0)
- {
- #ifdef FEAT_VREPLACE
---- 6320,6334 ----
- if (!(flags & INSCHAR_COM_LIST))
- {
- /*
-! * This section is for auto-wrap of numeric lists. When not
-! * in insert mode (i.e. format_lines()), the INSCHAR_COM_LIST
-! * flag will be set and open_line() will handle it (as seen
-! * above). The code here (and in get_number_indent()) will
-! * recognize comments if needed...
- */
- if (second_indent < 0 && has_format_option(FO_Q_NUMBER))
-! second_indent =
-! get_number_indent(curwin->w_cursor.lnum - 1);
- if (second_indent >= 0)
- {
- #ifdef FEAT_VREPLACE
-***************
-*** 6336,6342 ****
---- 6337,6367 ----
- FALSE, NUL, TRUE);
- else
- #endif
-+ #ifdef FEAT_COMMENTS
-+ if (leader_len > 0 && second_indent - leader_len > 0)
-+ {
-+ int i;
-+ int padding = second_indent - leader_len;
-+
-+ /* We started at the first_line of a numbered list
-+ * that has a comment. the open_line() function has
-+ * inserted the proper comment leader and positioned
-+ * the cursor at the end of the split line. Now we
-+ * add the additional whitespace needed after the
-+ * comment leader for the numbered list. */
-+ for (i = 0; i < padding; i++)
-+ {
-+ ins_str((char_u *)" ");
-+ changed_bytes(curwin->w_cursor.lnum, leader_len);
-+ }
-+ }
-+ else
-+ {
-+ #endif
- (void)set_indent(second_indent, SIN_CHANGED);
-+ #ifdef FEAT_COMMENTS
-+ }
-+ #endif
- }
- }
- first_line = FALSE;
-*** ../vim-7.3.575/src/misc1.c 2012-06-20 17:56:06.000000000 +0200
---- src/misc1.c 2012-06-29 14:10:12.000000000 +0200
-***************
-*** 424,491 ****
- colnr_T col;
- pos_T pos;
-
- if (lnum > curbuf->b_ml.ml_line_count)
- return -1;
- pos.lnum = 0;
-
- #ifdef FEAT_COMMENTS
-! if (has_format_option(FO_Q_COMS) && has_format_option(FO_Q_NUMBER))
-! {
-! regmatch_T regmatch;
-! int lead_len; /* length of comment leader */
-!
- lead_len = get_leader_len(ml_get(lnum), NULL, FALSE, TRUE);
-- regmatch.regprog = vim_regcomp(curbuf->b_p_flp, RE_MAGIC);
-- if (regmatch.regprog != NULL)
-- {
-- regmatch.rm_ic = FALSE;
--
-- /* vim_regexec() expects a pointer to a line. This lets us
-- * start matching for the flp beyond any comment leader... */
-- if (vim_regexec(&regmatch, ml_get(lnum) + lead_len, (colnr_T)0))
-- {
-- pos.lnum = lnum;
-- pos.col = (colnr_T)(*regmatch.endp - ml_get(lnum));
-- #ifdef FEAT_VIRTUALEDIT
-- pos.coladd = 0;
- #endif
-! }
-! }
-! vim_free(regmatch.regprog);
-! }
-! else
- {
-! /*
-! * What follows is the orig code that is not "comment aware"...
-! *
-! * I'm not sure if regmmatch_T (multi-match) is needed in this case.
-! * It may be true that this section would work properly using the
-! * regmatch_T code above, in which case, these two separate sections
-! * should be consolidated w/ FEAT_COMMENTS making lead_len > 0...
-! */
-! #endif
-! regmmatch_T regmatch;
-
-! regmatch.regprog = vim_regcomp(curbuf->b_p_flp, RE_MAGIC);
-!
-! if (regmatch.regprog != NULL)
- {
-! regmatch.rmm_ic = FALSE;
-! regmatch.rmm_maxcol = 0;
-! if (vim_regexec_multi(&regmatch, curwin, curbuf,
-! lnum, (colnr_T)0, NULL))
-! {
-! pos.lnum = regmatch.endpos[0].lnum + lnum;
-! pos.col = regmatch.endpos[0].col;
- #ifdef FEAT_VIRTUALEDIT
-! pos.coladd = 0;
- #endif
-- }
-- vim_free(regmatch.regprog);
- }
-- #ifdef FEAT_COMMENTS
- }
-! #endif
-
- if (pos.lnum == 0 || *ml_get_pos(&pos) == NUL)
- return -1;
---- 424,458 ----
- colnr_T col;
- pos_T pos;
-
-+ regmatch_T regmatch;
-+ int lead_len = 0; /* length of comment leader */
-+
- if (lnum > curbuf->b_ml.ml_line_count)
- return -1;
- pos.lnum = 0;
-
- #ifdef FEAT_COMMENTS
-! /* In format_lines() (i.e. not insert mode), fo+=q is needed too... */
-! if ((State & INSERT) || has_format_option(FO_Q_COMS))
- lead_len = get_leader_len(ml_get(lnum), NULL, FALSE, TRUE);
- #endif
-! regmatch.regprog = vim_regcomp(curbuf->b_p_flp, RE_MAGIC);
-! if (regmatch.regprog != NULL)
- {
-! regmatch.rm_ic = FALSE;
-
-! /* vim_regexec() expects a pointer to a line. This lets us
-! * start matching for the flp beyond any comment leader... */
-! if (vim_regexec(&regmatch, ml_get(lnum) + lead_len, (colnr_T)0))
- {
-! pos.lnum = lnum;
-! pos.col = (colnr_T)(*regmatch.endp - ml_get(lnum));
- #ifdef FEAT_VIRTUALEDIT
-! pos.coladd = 0;
- #endif
- }
- }
-! vim_free(regmatch.regprog);
-
- if (pos.lnum == 0 || *ml_get_pos(&pos) == NUL)
- return -1;
-*** ../vim-7.3.575/src/testdir/test68.in 2012-06-13 17:28:51.000000000 +0200
---- src/testdir/test68.in 2012-06-29 14:27:27.000000000 +0200
-***************
-*** 52,57 ****
---- 52,68 ----
-
- STARTTEST
- /^{/+1
-+ :set tw=5 fo=tcn comments=:#
-+ A bjA b
-+ ENDTEST
-+
-+ {
-+ 1 a
-+ # 1 a
-+ }
-+
-+ STARTTEST
-+ /^{/+1
- :set tw=5 fo=qn comments=:#
- gwap
- ENDTEST
-***************
-*** 83,88 ****
---- 94,107 ----
- }
-
- STARTTEST
-+ /^#/
-+ :setl tw=12 fo=tqnc comments=:#
-+ A foobar
-+ ENDTEST
-+
-+ # 1 xxxxx
-+
-+ STARTTEST
- :g/^STARTTEST/.,/^ENDTEST/d
- :1;/^Results/,$wq! test.out
- ENDTEST
-*** ../vim-7.3.575/src/version.c 2012-06-29 13:56:01.000000000 +0200
---- src/version.c 2012-06-29 15:03:10.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 576,
- /**/
-
---
-Proof techniques #2: Proof by Oddity.
- SAMPLE: To prove that horses have an infinite number of legs.
-(1) Horses have an even number of legs.
-(2) They have two legs in back and fore legs in front.
-(3) This makes a total of six legs, which certainly is an odd number of
- legs for a horse.
-(4) But the only number that is both odd and even is infinity.
-(5) Therefore, horses must have an infinite number of legs.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.577
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.577
-Problem: Size of memory does not fit in 32 bit unsigned.
-Solution: Use Kbyte instead of byte. Call GlobalMemoryStatusEx() instead of
- GlobalMemoryStatus() when available.
-Files: src/misc2.c, src/option.c, src/os_amiga.c, src/os_msdos.c,
- src/os_win16.c, src/os_win32.c
-
-
-*** ../vim-7.3.576/src/misc2.c 2012-02-29 13:58:43.000000000 +0100
---- src/misc2.c 2012-06-29 15:30:54.000000000 +0200
-***************
-*** 815,820 ****
---- 815,821 ----
- #else
- # define KEEP_ROOM (2 * 8192L)
- #endif
-+ #define KEEP_ROOM_KB (KEEP_ROOM / 1024L)
-
- /*
- * Note: if unsigned is 16 bits we can only allocate up to 64K with alloc().
-***************
-*** 940,946 ****
- allocated = 0;
- # endif
- /* 3. check for available memory: call mch_avail_mem() */
-! if (mch_avail_mem(TRUE) < KEEP_ROOM && !releasing)
- {
- free((char *)p); /* System is low... no go! */
- p = NULL;
---- 941,947 ----
- allocated = 0;
- # endif
- /* 3. check for available memory: call mch_avail_mem() */
-! if (mch_avail_mem(TRUE) < KEEP_ROOM_KB && !releasing)
- {
- free((char *)p); /* System is low... no go! */
- p = NULL;
-*** ../vim-7.3.576/src/option.c 2012-03-28 19:58:34.000000000 +0200
---- src/option.c 2012-06-29 15:31:46.000000000 +0200
-***************
-*** 3154,3160 ****
- {
- #ifdef HAVE_AVAIL_MEM
- /* Use amount of memory available at this moment. */
-! n = (mch_avail_mem(FALSE) >> 11);
- #else
- # ifdef HAVE_TOTAL_MEM
- /* Use amount of memory available to Vim. */
---- 3154,3160 ----
- {
- #ifdef HAVE_AVAIL_MEM
- /* Use amount of memory available at this moment. */
-! n = (mch_avail_mem(FALSE) >> 1);
- #else
- # ifdef HAVE_TOTAL_MEM
- /* Use amount of memory available to Vim. */
-***************
-*** 6702,6708 ****
- {
- for (s = *varp; *s;)
- {
-! while(*s == ',' || *s == ' ')
- s++;
- if (!*s)
- break;
---- 6702,6708 ----
- {
- for (s = *varp; *s;)
- {
-! while (*s == ',' || *s == ' ')
- s++;
- if (!*s)
- break;
-***************
-*** 7391,7397 ****
- new_unnamed |= CLIP_UNNAMED;
- p += 7;
- }
-! else if (STRNCMP(p, "unnamedplus", 11) == 0
- && (p[11] == ',' || p[11] == NUL))
- {
- new_unnamed |= CLIP_UNNAMED_PLUS;
---- 7391,7397 ----
- new_unnamed |= CLIP_UNNAMED;
- p += 7;
- }
-! else if (STRNCMP(p, "unnamedplus", 11) == 0
- && (p[11] == ',' || p[11] == NUL))
- {
- new_unnamed |= CLIP_UNNAMED_PLUS;
-*** ../vim-7.3.576/src/os_amiga.c 2011-10-20 18:24:16.000000000 +0200
---- src/os_amiga.c 2012-06-29 15:33:59.000000000 +0200
-***************
-*** 191,206 ****
- }
-
- /*
-! * Return amount of memory still available.
- */
- long_u
- mch_avail_mem(special)
- int special;
- {
- #ifdef __amigaos4__
-! return (long_u)AvailMem(MEMF_ANY);
- #else
-! return (long_u)AvailMem(special ? (long)MEMF_CHIP : (long)MEMF_ANY);
- #endif
- }
-
---- 191,206 ----
- }
-
- /*
-! * Return amount of memory still available in Kbyte.
- */
- long_u
- mch_avail_mem(special)
- int special;
- {
- #ifdef __amigaos4__
-! return (long_u)AvailMem(MEMF_ANY) >> 10;
- #else
-! return (long_u)(AvailMem(special ? (long)MEMF_CHIP : (long)MEMF_ANY)) >> 10;
- #endif
- }
-
-*** ../vim-7.3.576/src/os_msdos.c 2011-06-19 01:14:22.000000000 +0200
---- src/os_msdos.c 2012-06-29 15:33:26.000000000 +0200
-***************
-*** 550,564 ****
- #endif
-
- /*
-! * Return amount of memory currently available.
- */
- long_u
- mch_avail_mem(int special)
- {
- #ifdef DJGPP
-! return _go32_dpmi_remaining_virtual_memory();
- #else
-! return coreleft();
- #endif
- }
-
---- 550,564 ----
- #endif
-
- /*
-! * Return amount of memory currently available in Kbyte.
- */
- long_u
- mch_avail_mem(int special)
- {
- #ifdef DJGPP
-! return _go32_dpmi_remaining_virtual_memory() >> 10;
- #else
-! return coreleft() >> 10;
- #endif
- }
-
-*** ../vim-7.3.576/src/os_win16.c 2011-10-20 18:24:16.000000000 +0200
---- src/os_win16.c 2012-06-29 15:34:18.000000000 +0200
-***************
-*** 379,391 ****
-
-
- /*
-! * How much memory is available?
- */
- long_u
- mch_avail_mem(
- int special)
- {
-! return GetFreeSpace(0);
- }
-
-
---- 379,391 ----
-
-
- /*
-! * How much memory is available in Kbyte?
- */
- long_u
- mch_avail_mem(
- int special)
- {
-! return GetFreeSpace(0) >> 10;
- }
-
-
-*** ../vim-7.3.576/src/os_win32.c 2012-06-29 13:13:59.000000000 +0200
---- src/os_win32.c 2012-06-29 15:39:52.000000000 +0200
-***************
-*** 4992,5009 ****
-
-
- /*
-! * How much memory is available?
- * Return sum of available physical and page file memory.
- */
- /*ARGSUSED*/
- long_u
- mch_avail_mem(int special)
- {
-! MEMORYSTATUS ms;
-
-! ms.dwLength = sizeof(MEMORYSTATUS);
-! GlobalMemoryStatus(&ms);
-! return (long_u) (ms.dwAvailPhys + ms.dwAvailPageFile);
- }
-
- #ifdef FEAT_MBYTE
---- 4992,5020 ----
-
-
- /*
-! * How much memory is available in Kbyte?
- * Return sum of available physical and page file memory.
- */
- /*ARGSUSED*/
- long_u
- mch_avail_mem(int special)
- {
-! if (g_PlatformId != VER_PLATFORM_WIN32_NT)
-! {
-! MEMORYSTATUS ms;
-
-! ms.dwLength = sizeof(MEMORYSTATUS);
-! GlobalMemoryStatus(&ms);
-! return (long_u)((ms.dwAvailPhys + ms.dwAvailPageFile) >> 10);
-! }
-! else
-! {
-! MEMORYSTATUSEX ms;
-!
-! ms.dwLength = sizeof(MEMORYSTATUSEX);
-! GlobalMemoryStatusEx(&ms);
-! return (long_u)((ms.ullAvailPhys + ms.ullAvailPageFile) >> 10);
-! }
- }
-
- #ifdef FEAT_MBYTE
-*** ../vim-7.3.576/src/version.c 2012-06-29 15:04:34.000000000 +0200
---- src/version.c 2012-06-29 15:45:44.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 577,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-75. You start wondering whether you could actually upgrade your brain
- with a Pentium Pro microprocessor 80. The upgrade works just fine.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.578
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.578
-Problem: Misplaced declaration.
-Solution: Move declaration to start of block.
-Files: src/if_py_both.h
-
-
-*** ../vim-7.3.577/src/if_py_both.h 2012-06-29 12:54:32.000000000 +0200
---- src/if_py_both.h 2012-06-29 16:15:29.000000000 +0200
-***************
-*** 818,838 ****
-
- if (valObject == NULL)
- {
- if (di == NULL)
- {
- PyErr_SetString(PyExc_IndexError, _("no such key in dictionary"));
- return -1;
- }
-! hashitem_T *hi = hash_find(&d->dv_hashtab, di->di_key);
- hash_remove(&d->dv_hashtab, hi);
- dictitem_free(di);
- return 0;
- }
-
- if (ConvertFromPyObject(valObject, &tv) == -1)
-- {
- return -1;
-- }
-
- if (di == NULL)
- {
---- 818,838 ----
-
- if (valObject == NULL)
- {
-+ hashitem_T *hi;
-+
- if (di == NULL)
- {
- PyErr_SetString(PyExc_IndexError, _("no such key in dictionary"));
- return -1;
- }
-! hi = hash_find(&d->dv_hashtab, di->di_key);
- hash_remove(&d->dv_hashtab, hi);
- dictitem_free(di);
- return 0;
- }
-
- if (ConvertFromPyObject(valObject, &tv) == -1)
- return -1;
-
- if (di == NULL)
- {
-*** ../vim-7.3.577/src/version.c 2012-06-29 15:51:26.000000000 +0200
---- src/version.c 2012-06-29 16:18:10.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 578,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-77. The phone company asks you to test drive their new PBX system
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.579
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.579 (after 7.3.569)
-Problem: Can't compile with Python 2.5.
-Solution: Use PyCObject when Capsules are not available.
-Files: src/if_py_both.h, src/if_python.c, src/if_python3.c
-
-
-*** ../vim-7.3.578/src/if_py_both.h 2012-06-29 16:19:46.000000000 +0200
---- src/if_py_both.h 2012-06-29 16:15:29.000000000 +0200
-***************
-*** 56,62 ****
- /* name, function, calling, documentation */
- {"write", OutputWrite, 1, ""},
- {"writelines", OutputWritelines, 1, ""},
-! {"flush", OutputFlush, 1, ""},
- { NULL, NULL, 0, NULL}
- };
-
---- 56,62 ----
- /* name, function, calling, documentation */
- {"write", OutputWrite, 1, ""},
- {"writelines", OutputWritelines, 1, ""},
-! {"flush", OutputFlush, 1, ""},
- { NULL, NULL, 0, NULL}
- };
-
-***************
-*** 506,513 ****
- /* name, function, calling, documentation */
- {"command", VimCommand, 1, "Execute a Vim ex-mode command" },
- {"eval", VimEval, 1, "Evaluate an expression using Vim evaluator" },
-! {"bindeval", VimEvalPy, 1, "Like eval(), but returns objects attached to vim ones"},
-! {"strwidth", VimStrwidth, 1, "Screen string width, counts <Tab> as having width 1"},
- { NULL, NULL, 0, NULL }
- };
-
---- 506,513 ----
- /* name, function, calling, documentation */
- {"command", VimCommand, 1, "Execute a Vim ex-mode command" },
- {"eval", VimEval, 1, "Evaluate an expression using Vim evaluator" },
-! {"bindeval", VimEvalPy, 1, "Like eval(), but returns objects attached to vim ones"},
-! {"strwidth", VimStrwidth, 1, "Screen string width, counts <Tab> as having width 1"},
- { NULL, NULL, 0, NULL }
- };
-
-***************
-*** 2432,2448 ****
---- 2432,2463 ----
- convert_dl(PyObject *obj, typval_T *tv,
- pytotvfunc py_to_tv, PyObject *lookupDict)
- {
-+ # ifdef PY_USE_CAPSULE
- PyObject *capsule;
-+ # else
-+ PyCObject *cobject;
-+ # endif
- char hexBuf[sizeof(void *) * 2 + 3];
-
- sprintf(hexBuf, "%p", obj);
-
-+ # ifdef PY_USE_CAPSULE
- capsule = PyDict_GetItemString(lookupDict, hexBuf);
- if (capsule == NULL)
-+ # else
-+ cobject = (PyCObject *)PyDict_GetItemString(lookupDict, hexBuf);
-+ if (cobject == NULL)
-+ # endif
- {
-+ # ifdef PY_USE_CAPSULE
- capsule = PyCapsule_New(tv, NULL, NULL);
- PyDict_SetItemString(lookupDict, hexBuf, capsule);
- Py_DECREF(capsule);
-+ # else
-+ cobject = PyCObject_FromVoidPtr(tv, NULL);
-+ PyDict_SetItemString(lookupDict, hexBuf, cobject);
-+ Py_DECREF(cobject);
-+ # endif
- if (py_to_tv(obj, tv, lookupDict) == -1)
- {
- tv->v_type = VAR_UNKNOWN;
-***************
-*** 2458,2464 ****
- }
- else
- {
-! typval_T *v = PyCapsule_GetPointer(capsule, NULL);
- copy_tv(v, tv);
- }
- return 0;
---- 2473,2485 ----
- }
- else
- {
-! typval_T *v;
-!
-! # ifdef PY_USE_CAPSULE
-! v = PyCapsule_GetPointer(capsule, NULL);
-! # else
-! v = PyCObject_AsVoidPtr(cobject);
-! # endif
- copy_tv(v, tv);
- }
- return 0;
-*** ../vim-7.3.578/src/if_python.c 2012-06-29 12:54:32.000000000 +0200
---- src/if_python.c 2012-06-29 16:17:44.000000000 +0200
-***************
-*** 71,76 ****
---- 71,80 ----
- # define PySequenceMethods Py_ssize_t
- #endif
-
-+ #if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02070000
-+ # define PY_USE_CAPSULE
-+ #endif
-+
- #if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02050000
- # define PyInt Py_ssize_t
- # define PyInquiry lenfunc
-***************
-*** 220,227 ****
- # define PyObject_Malloc dll_PyObject_Malloc
- # define PyObject_Free dll_PyObject_Free
- # endif
-! # define PyCapsule_New dll_PyCapsule_New
-! # define PyCapsule_GetPointer dll_PyCapsule_GetPointer
-
- /*
- * Pointers for dynamic link
---- 224,236 ----
- # define PyObject_Malloc dll_PyObject_Malloc
- # define PyObject_Free dll_PyObject_Free
- # endif
-! # ifdef PY_USE_CAPSULE
-! # define PyCapsule_New dll_PyCapsule_New
-! # define PyCapsule_GetPointer dll_PyCapsule_GetPointer
-! # else
-! # define PyCObject_FromVoidPtr dll_PyCObject_FromVoidPtr
-! # define PyCObject_AsVoidPtr dll_PyCObject_AsVoidPtr
-! # endif
-
- /*
- * Pointers for dynamic link
-***************
-*** 309,316 ****
---- 318,330 ----
- static void* (*dll_PyObject_Malloc)(size_t);
- static void (*dll_PyObject_Free)(void*);
- # endif
-+ # ifdef PY_USE_CAPSULE
- static PyObject* (*dll_PyCapsule_New)(void *, char *, PyCapsule_Destructor);
- static void* (*dll_PyCapsule_GetPointer)(PyObject *, char *);
-+ # else
-+ static PyCObject* (*dll_PyCObject_FromVoidPtr)(void *cobj, void (*destr)(void *));
-+ static void* (*dll_PyCObject_AsVoidPtr)(PyCObject *);
-+ # endif
-
- static HINSTANCE hinstPython = 0; /* Instance of python.dll */
-
-***************
-*** 403,409 ****
- {"PyType_Ready", (PYTHON_PROC*)&dll_PyType_Ready},
- {"Py_BuildValue", (PYTHON_PROC*)&dll_Py_BuildValue},
- {"Py_FindMethod", (PYTHON_PROC*)&dll_Py_FindMethod},
-! # if (PY_VERSION_HEX >= 0x02050000) && SIZEOF_SIZE_T != SIZEOF_INT
- {"Py_InitModule4_64", (PYTHON_PROC*)&dll_Py_InitModule4},
- # else
- {"Py_InitModule4", (PYTHON_PROC*)&dll_Py_InitModule4},
---- 417,424 ----
- {"PyType_Ready", (PYTHON_PROC*)&dll_PyType_Ready},
- {"Py_BuildValue", (PYTHON_PROC*)&dll_Py_BuildValue},
- {"Py_FindMethod", (PYTHON_PROC*)&dll_Py_FindMethod},
-! # if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02050000 \
-! && SIZEOF_SIZE_T != SIZEOF_INT
- {"Py_InitModule4_64", (PYTHON_PROC*)&dll_Py_InitModule4},
- # else
- {"Py_InitModule4", (PYTHON_PROC*)&dll_Py_InitModule4},
-***************
-*** 424,431 ****
---- 439,451 ----
- {"PyObject_Malloc", (PYTHON_PROC*)&dll_PyObject_Malloc},
- {"PyObject_Free", (PYTHON_PROC*)&dll_PyObject_Free},
- # endif
-+ # ifdef PY_USE_CAPSULE
- {"PyCapsule_New", (PYTHON_PROC*)&dll_PyCapsule_New},
- {"PyCapsule_GetPointer", (PYTHON_PROC*)&dll_PyCapsule_GetPointer},
-+ # else
-+ {"PyCObject_FromVoidPtr", (PYTHON_PROC*)&dll_PyCObject_FromVoidPtr},
-+ {"PyCObject_AsVoidPtr", (PYTHON_PROC*)&dll_PyCObject_AsVoidPtr},
-+ # endif
- {"", NULL},
- };
-
-*** ../vim-7.3.578/src/if_python3.c 2012-06-29 12:54:32.000000000 +0200
---- src/if_python3.c 2012-06-29 16:16:54.000000000 +0200
-***************
-*** 75,80 ****
---- 75,83 ----
- # define CODEC_ERROR_HANDLER NULL
- #endif
-
-+ /* Python 3 does not support CObjects, always use Capsules */
-+ #define PY_USE_CAPSULE
-+
- #define PyInt Py_ssize_t
- #define PyString_Check(obj) PyUnicode_Check(obj)
- #define PyString_AsBytes(obj) PyUnicode_AsEncodedString(obj, (char *)ENC_OPT, CODEC_ERROR_HANDLER)
-*** ../vim-7.3.578/src/version.c 2012-06-29 16:19:46.000000000 +0200
---- src/version.c 2012-06-29 16:21:25.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 579,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-78. You find yourself dialing IP numbers on the phone.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.580
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.580
-Problem: Warning on 64 bit MS-Windows.
-Solution: Add type cast. (Mike Williams)
-Files: src/if_py_both.h
-
-
-*** ../vim-7.3.579/src/if_py_both.h 2012-06-29 16:28:23.000000000 +0200
---- src/if_py_both.h 2012-06-29 17:49:59.000000000 +0200
-***************
-*** 495,501 ****
- if (!PyArg_ParseTuple(args, "s", &expr))
- return NULL;
-
-! return PyLong_FromLong(mb_string2cells((char_u *)expr, STRLEN(expr)));
- }
-
- /*
---- 495,501 ----
- if (!PyArg_ParseTuple(args, "s", &expr))
- return NULL;
-
-! return PyLong_FromLong(mb_string2cells((char_u *)expr, (int)STRLEN(expr)));
- }
-
- /*
-*** ../vim-7.3.579/src/version.c 2012-06-29 16:28:23.000000000 +0200
---- src/version.c 2012-06-29 17:50:36.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 580,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-79. All of your most erotic dreams have a scrollbar at the right side.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.581
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.581
-Problem: Problems compiling with Python.
-Solution: Pick UCS2 or UCS4 function at runtime. (lilydjwg)
-Files: src/if_python.c
-
-
-*** ../vim-7.3.580/src/if_python.c 2012-06-29 16:28:23.000000000 +0200
---- src/if_python.c 2012-06-29 19:10:53.000000000 +0200
-***************
-*** 196,202 ****
- # define PyString_Size dll_PyString_Size
- # define PyString_Type (*dll_PyString_Type)
- # define PyUnicode_Type (*dll_PyUnicode_Type)
-! # define PyUnicodeUCS4_AsEncodedString (*dll_PyUnicodeUCS4_AsEncodedString)
- # define PyFloat_AsDouble dll_PyFloat_AsDouble
- # define PyFloat_FromDouble dll_PyFloat_FromDouble
- # define PyFloat_Type (*dll_PyFloat_Type)
---- 196,203 ----
- # define PyString_Size dll_PyString_Size
- # define PyString_Type (*dll_PyString_Type)
- # define PyUnicode_Type (*dll_PyUnicode_Type)
-! # undef PyUnicode_AsEncodedString
-! # define PyUnicode_AsEncodedString py_PyUnicode_AsEncodedString
- # define PyFloat_AsDouble dll_PyFloat_AsDouble
- # define PyFloat_FromDouble dll_PyFloat_FromDouble
- # define PyFloat_Type (*dll_PyFloat_Type)
-***************
-*** 290,296 ****
- static PyInt(*dll_PyString_Size)(PyObject *);
- static PyTypeObject* dll_PyString_Type;
- static PyTypeObject* dll_PyUnicode_Type;
-! static PyObject *(*PyUnicodeUCS4_AsEncodedString)(PyObject *, char *, char *);
- static double(*dll_PyFloat_AsDouble)(PyObject *);
- static PyObject*(*dll_PyFloat_FromDouble)(double);
- static PyTypeObject* dll_PyFloat_Type;
---- 291,297 ----
- static PyInt(*dll_PyString_Size)(PyObject *);
- static PyTypeObject* dll_PyString_Type;
- static PyTypeObject* dll_PyUnicode_Type;
-! static PyObject *(*py_PyUnicode_AsEncodedString)(PyObject *, char *, char *);
- static double(*dll_PyFloat_AsDouble)(PyObject *);
- static PyObject*(*dll_PyFloat_FromDouble)(double);
- static PyTypeObject* dll_PyFloat_Type;
-***************
-*** 406,412 ****
- {"PyString_Size", (PYTHON_PROC*)&dll_PyString_Size},
- {"PyString_Type", (PYTHON_PROC*)&dll_PyString_Type},
- {"PyUnicode_Type", (PYTHON_PROC*)&dll_PyUnicode_Type},
-- {"PyUnicodeUCS4_AsEncodedString", (PYTHON_PROC*)&dll_PyUnicodeUCS4_AsEncodedString},
- {"PyFloat_Type", (PYTHON_PROC*)&dll_PyFloat_Type},
- {"PyFloat_AsDouble", (PYTHON_PROC*)&dll_PyFloat_AsDouble},
- {"PyFloat_FromDouble", (PYTHON_PROC*)&dll_PyFloat_FromDouble},
---- 407,412 ----
-***************
-*** 471,476 ****
---- 471,477 ----
- python_runtime_link_init(char *libname, int verbose)
- {
- int i;
-+ void *ucs_as_encoded_string;
-
- #if !(defined(PY_NO_RTLD_GLOBAL) && defined(PY3_NO_RTLD_GLOBAL)) && defined(UNIX) && defined(FEAT_PYTHON3)
- /* Can't have Python and Python3 loaded at the same time.
-***************
-*** 506,511 ****
---- 507,531 ----
- return FAIL;
- }
- }
-+
-+ /* Load unicode functions separately as only the ucs2 or the ucs4 functions
-+ * will be present in the library. */
-+ ucs_as_encoded_string = symbol_from_dll(hinstPython,
-+ "PyUnicodeUCS2_AsEncodedString");
-+ if (ucs_as_encoded_string == NULL)
-+ ucs_as_encoded_string = symbol_from_dll(hinstPython,
-+ "PyUnicodeUCS4_AsEncodedString");
-+ if (ucs_as_encoded_string != NULL)
-+ py_PyUnicode_AsEncodedString = ucs_as_encoded_string;
-+ else
-+ {
-+ close_dll(hinstPython);
-+ hinstPython = 0;
-+ if (verbose)
-+ EMSG2(_(e_loadfunc), "PyUnicode_UCSX_*");
-+ return FAIL;
-+ }
-+
- return OK;
- }
-
-*** ../vim-7.3.580/src/version.c 2012-06-29 17:51:58.000000000 +0200
---- src/version.c 2012-06-29 19:13:47.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 581,
- /**/
-
---
-ASCII stupid question, get a stupid ANSI.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.582
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.582 (after 7.3.576)
-Problem: Missing parts of the test OK file.
-Solution: Add the missing parts.
-Files: src/testdir/test68.ok
-
-
-*** ../vim-7.3.581/src/testdir/test68.ok 2012-06-13 17:28:51.000000000 +0200
---- src/testdir/test68.ok 2012-06-29 15:00:13.000000000 +0200
-***************
-*** 35,40 ****
---- 35,48 ----
-
-
- {
-+ 1 a
-+ b
-+ # 1 a
-+ # b
-+ }
-+
-+
-+ {
- # 1 a
- # b
- }
-***************
-*** 48,50 ****
---- 56,62 ----
-
- { 1aa ^^2bb }
-
-+
-+ # 1 xxxxx
-+ # foobar
-+
-*** ../vim-7.3.581/src/version.c 2012-06-29 19:14:48.000000000 +0200
---- src/version.c 2012-06-29 23:57:43.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 582,
- /**/
-
---
-If your nose runs, and your feet smell, you might be upside down.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.583
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.583
-Problem: PyObject_NextNotImplemented is not defined before Python 2.7.
- (Danek Duvall)
-Solution: Add #ifdefs.
-Files: src/if_python.c
-
-
-*** ../vim-7.3.582/src/if_python.c 2012-06-29 19:14:48.000000000 +0200
---- src/if_python.c 2012-06-30 12:59:38.000000000 +0200
-***************
-*** 214,220 ****
- # define Py_Finalize dll_Py_Finalize
- # define Py_IsInitialized dll_Py_IsInitialized
- # define _PyObject_New dll__PyObject_New
-! # define _PyObject_NextNotImplemented (*dll__PyObject_NextNotImplemented)
- # define _Py_NoneStruct (*dll__Py_NoneStruct)
- # define PyObject_Init dll__PyObject_Init
- # define PyObject_GetIter dll_PyObject_GetIter
---- 214,222 ----
- # define Py_Finalize dll_Py_Finalize
- # define Py_IsInitialized dll_Py_IsInitialized
- # define _PyObject_New dll__PyObject_New
-! # if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02070000
-! # define _PyObject_NextNotImplemented (*dll__PyObject_NextNotImplemented)
-! # endif
- # define _Py_NoneStruct (*dll__Py_NoneStruct)
- # define PyObject_Init dll__PyObject_Init
- # define PyObject_GetIter dll_PyObject_GetIter
-***************
-*** 310,316 ****
---- 312,320 ----
- static PyObject*(*dll__PyObject_New)(PyTypeObject *, PyObject *);
- static PyObject*(*dll__PyObject_Init)(PyObject *, PyTypeObject *);
- static PyObject* (*dll_PyObject_GetIter)(PyObject *);
-+ # if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02070000
- static iternextfunc dll__PyObject_NextNotImplemented;
-+ # endif
- static PyObject* dll__Py_NoneStruct;
- # if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02020000
- static int (*dll_PyType_IsSubtype)(PyTypeObject *, PyTypeObject *);
-***************
-*** 430,436 ****
---- 434,442 ----
- {"_PyObject_New", (PYTHON_PROC*)&dll__PyObject_New},
- {"PyObject_Init", (PYTHON_PROC*)&dll__PyObject_Init},
- {"PyObject_GetIter", (PYTHON_PROC*)&dll_PyObject_GetIter},
-+ # if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02070000
- {"_PyObject_NextNotImplemented", (PYTHON_PROC*)&dll__PyObject_NextNotImplemented},
-+ # endif
- {"_Py_NoneStruct", (PYTHON_PROC*)&dll__Py_NoneStruct},
- # if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02020000
- {"PyType_IsSubtype", (PYTHON_PROC*)&dll_PyType_IsSubtype},
-*** ../vim-7.3.582/src/version.c 2012-06-29 23:57:50.000000000 +0200
---- src/version.c 2012-06-30 13:20:46.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 583,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-90. Instead of calling you to dinner, your spouse sends e-mail.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.584
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.584
-Problem: PyCObject is not always defined.
-Solution: Use PyObject instead.
-Files: src/if_py_both.h, src/if_python.c
-
-
-*** ../vim-7.3.583/src/if_py_both.h 2012-06-29 17:51:58.000000000 +0200
---- src/if_py_both.h 2012-06-30 13:25:24.000000000 +0200
-***************
-*** 2432,2463 ****
- convert_dl(PyObject *obj, typval_T *tv,
- pytotvfunc py_to_tv, PyObject *lookupDict)
- {
-- # ifdef PY_USE_CAPSULE
- PyObject *capsule;
-- # else
-- PyCObject *cobject;
-- # endif
- char hexBuf[sizeof(void *) * 2 + 3];
-
- sprintf(hexBuf, "%p", obj);
-
- # ifdef PY_USE_CAPSULE
- capsule = PyDict_GetItemString(lookupDict, hexBuf);
-- if (capsule == NULL)
- # else
-! cobject = (PyCObject *)PyDict_GetItemString(lookupDict, hexBuf);
-! if (cobject == NULL)
- # endif
- {
- # ifdef PY_USE_CAPSULE
- capsule = PyCapsule_New(tv, NULL, NULL);
-- PyDict_SetItemString(lookupDict, hexBuf, capsule);
-- Py_DECREF(capsule);
- # else
-! cobject = PyCObject_FromVoidPtr(tv, NULL);
-! PyDict_SetItemString(lookupDict, hexBuf, cobject);
-! Py_DECREF(cobject);
- # endif
- if (py_to_tv(obj, tv, lookupDict) == -1)
- {
- tv->v_type = VAR_UNKNOWN;
---- 2432,2456 ----
- convert_dl(PyObject *obj, typval_T *tv,
- pytotvfunc py_to_tv, PyObject *lookupDict)
- {
- PyObject *capsule;
- char hexBuf[sizeof(void *) * 2 + 3];
-
- sprintf(hexBuf, "%p", obj);
-
- # ifdef PY_USE_CAPSULE
- capsule = PyDict_GetItemString(lookupDict, hexBuf);
- # else
-! capsule = (PyObject *)PyDict_GetItemString(lookupDict, hexBuf);
- # endif
-+ if (capsule == NULL)
- {
- # ifdef PY_USE_CAPSULE
- capsule = PyCapsule_New(tv, NULL, NULL);
- # else
-! capsule = PyCObject_FromVoidPtr(tv, NULL);
- # endif
-+ PyDict_SetItemString(lookupDict, hexBuf, capsule);
-+ Py_DECREF(capsule);
- if (py_to_tv(obj, tv, lookupDict) == -1)
- {
- tv->v_type = VAR_UNKNOWN;
-***************
-*** 2478,2484 ****
- # ifdef PY_USE_CAPSULE
- v = PyCapsule_GetPointer(capsule, NULL);
- # else
-! v = PyCObject_AsVoidPtr(cobject);
- # endif
- copy_tv(v, tv);
- }
---- 2471,2477 ----
- # ifdef PY_USE_CAPSULE
- v = PyCapsule_GetPointer(capsule, NULL);
- # else
-! v = PyCObject_AsVoidPtr(capsule);
- # endif
- copy_tv(v, tv);
- }
-*** ../vim-7.3.583/src/if_python.c 2012-06-30 13:21:03.000000000 +0200
---- src/if_python.c 2012-06-30 13:23:22.000000000 +0200
-***************
-*** 327,334 ****
- static PyObject* (*dll_PyCapsule_New)(void *, char *, PyCapsule_Destructor);
- static void* (*dll_PyCapsule_GetPointer)(PyObject *, char *);
- # else
-! static PyCObject* (*dll_PyCObject_FromVoidPtr)(void *cobj, void (*destr)(void *));
-! static void* (*dll_PyCObject_AsVoidPtr)(PyCObject *);
- # endif
-
- static HINSTANCE hinstPython = 0; /* Instance of python.dll */
---- 327,334 ----
- static PyObject* (*dll_PyCapsule_New)(void *, char *, PyCapsule_Destructor);
- static void* (*dll_PyCapsule_GetPointer)(PyObject *, char *);
- # else
-! static PyObject* (*dll_PyCObject_FromVoidPtr)(void *cobj, void (*destr)(void *));
-! static void* (*dll_PyCObject_AsVoidPtr)(PyObject *);
- # endif
-
- static HINSTANCE hinstPython = 0; /* Instance of python.dll */
-*** ../vim-7.3.583/src/version.c 2012-06-30 13:21:03.000000000 +0200
---- src/version.c 2012-06-30 13:33:08.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 584,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-91. It's Saturday afternoon in the middle of May and you
- are on computer.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.585
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.585
-Problem: Calling changed_bytes() too often.
-Solution: Move changed_bytes() out of a loop. (Tor Perkins)
-Files: src/edit.c
-
-
-*** ../vim-7.3.584/src/edit.c 2012-06-29 15:04:34.000000000 +0200
---- src/edit.c 2012-07-06 13:29:25.000000000 +0200
-***************
-*** 6350,6359 ****
- * add the additional whitespace needed after the
- * comment leader for the numbered list. */
- for (i = 0; i < padding; i++)
-- {
- ins_str((char_u *)" ");
-! changed_bytes(curwin->w_cursor.lnum, leader_len);
-! }
- }
- else
- {
---- 6350,6357 ----
- * add the additional whitespace needed after the
- * comment leader for the numbered list. */
- for (i = 0; i < padding; i++)
- ins_str((char_u *)" ");
-! changed_bytes(curwin->w_cursor.lnum, leader_len);
- }
- else
- {
-*** ../vim-7.3.584/src/version.c 2012-07-06 13:36:02.000000000 +0200
---- src/version.c 2012-07-06 13:35:03.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 585,
- /**/
-
---
-From "know your smileys":
- :'-D Laughing so much that they're crying
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.586
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.586
-Problem: When compiling with Cygwin or MingW MEMORYSTATUSEX is not defined.
-Solution: Set the default for WINVER to 0x0500.
-Files: src/Make_ming.mak, src/Make_cyg.mak
-
-
-*** ../vim-7.3.585/src/Make_ming.mak 2012-04-20 16:13:21.000000000 +0200
---- src/Make_ming.mak 2012-06-30 21:23:55.000000000 +0200
-***************
-*** 52,58 ****
- OLE=no
- # Set the default $(WINVER) to make it work with pre-Win2k
- ifndef WINVER
-! WINVER = 0x0400
- endif
- # Set to yes to enable Cscope support
- CSCOPE=yes
---- 52,58 ----
- OLE=no
- # Set the default $(WINVER) to make it work with pre-Win2k
- ifndef WINVER
-! WINVER = 0x0500
- endif
- # Set to yes to enable Cscope support
- CSCOPE=yes
-*** ../vim-7.3.585/src/Make_cyg.mak 2011-09-30 16:56:00.000000000 +0200
---- src/Make_cyg.mak 2012-06-30 21:23:42.000000000 +0200
-***************
-*** 1,6 ****
- #
- # Makefile for VIM on Win32, using Cygnus gcc
-! # Last updated by Dan Sharp. Last Change: 2010 Nov 03
- #
- # Also read INSTALLpc.txt!
- #
---- 1,6 ----
- #
- # Makefile for VIM on Win32, using Cygnus gcc
-! # Last updated by Dan Sharp. Last Change: 2012 Jun 30
- #
- # Also read INSTALLpc.txt!
- #
-***************
-*** 48,54 ****
- # -L/lib/w32api to EXTRA_LIBS.
- # POSTSCRIPT no or yes: set to yes for PostScript printing (no)
- # FEATURES TINY, SMALL, NORMAL, BIG or HUGE (BIG)
-! # WINVER Lowest Win32 version to support. (0x0400)
- # CSCOPE no or yes: to include cscope interface support (yes)
- # OPTIMIZE SPACE, SPEED, or MAXSPEED: set optimization level (MAXSPEED)
- # NETBEANS no or yes: to include netbeans interface support (yes when GUI
---- 48,54 ----
- # -L/lib/w32api to EXTRA_LIBS.
- # POSTSCRIPT no or yes: set to yes for PostScript printing (no)
- # FEATURES TINY, SMALL, NORMAL, BIG or HUGE (BIG)
-! # WINVER Lowest Win32 version to support. (0x0500)
- # CSCOPE no or yes: to include cscope interface support (yes)
- # OPTIMIZE SPACE, SPEED, or MAXSPEED: set optimization level (MAXSPEED)
- # NETBEANS no or yes: to include netbeans interface support (yes when GUI
-***************
-*** 85,91 ****
- endif
-
- ifndef WINVER
-! WINVER = 0x0400
- endif
-
- ifndef CSCOPE
---- 85,91 ----
- endif
-
- ifndef WINVER
-! WINVER = 0x0500
- endif
-
- ifndef CSCOPE
-*** ../vim-7.3.585/src/version.c 2012-07-06 13:36:36.000000000 +0200
---- src/version.c 2012-07-06 13:39:41.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 586,
- /**/
-
---
-From "know your smileys":
- :-& Eating spaghetti
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.587
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.587
-Problem: Compiler warning for local var shadowing global var.
-Solution: Rename the var and move it to an inner block. (Christian Brabandt)
-Files: src/buffer.c
-
-
-*** ../vim-7.3.586/src/buffer.c 2012-06-20 17:54:34.000000000 +0200
---- src/buffer.c 2012-07-06 16:19:32.000000000 +0200
-***************
-*** 1363,1371 ****
- int action;
- {
- buf_T *prevbuf;
-- #ifdef FEAT_WINDOWS
-- win_T *prevwin;
-- #endif
- int unload = (action == DOBUF_UNLOAD || action == DOBUF_DEL
- || action == DOBUF_WIPE);
-
---- 1363,1368 ----
-***************
-*** 1406,1412 ****
- #endif
- {
- #ifdef FEAT_WINDOWS
-! prevwin = curwin;
- #endif
- if (prevbuf == curbuf)
- u_sync(FALSE);
---- 1403,1409 ----
- #endif
- {
- #ifdef FEAT_WINDOWS
-! win_T *previouswin = curwin;
- #endif
- if (prevbuf == curbuf)
- u_sync(FALSE);
-***************
-*** 1415,1423 ****
- && !P_HID(prevbuf)
- && !bufIsChanged(prevbuf)) ? DOBUF_UNLOAD : 0, FALSE);
- #ifdef FEAT_WINDOWS
-! if (curwin != prevwin && win_valid(prevwin))
- /* autocommands changed curwin, Grr! */
-! curwin = prevwin;
- #endif
- }
- }
---- 1412,1420 ----
- && !P_HID(prevbuf)
- && !bufIsChanged(prevbuf)) ? DOBUF_UNLOAD : 0, FALSE);
- #ifdef FEAT_WINDOWS
-! if (curwin != previouswin && win_valid(previouswin))
- /* autocommands changed curwin, Grr! */
-! curwin = previouswin;
- #endif
- }
- }
-*** ../vim-7.3.586/src/version.c 2012-07-06 13:40:44.000000000 +0200
---- src/version.c 2012-07-06 16:19:08.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 587,
- /**/
-
---
-There's no place like $(HOME)!
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.588
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.588
-Problem: Crash on NULL pointer.
-Solution: Fix the immediate problem by checking for NULL. (Lech Lorens)
-Files: src/window.c
-
-
-*** ../vim-7.3.587/src/window.c 2012-06-13 18:15:13.000000000 +0200
---- src/window.c 2012-07-06 16:32:59.000000000 +0200
-***************
-*** 2184,2190 ****
- }
-
- #ifdef FEAT_AUTOCMD
-! if (win->w_closing || win->w_buffer->b_closing)
- return; /* window is already being closed */
- if (win == aucmd_win)
- {
---- 2184,2190 ----
- }
-
- #ifdef FEAT_AUTOCMD
-! if (win->w_closing || (win->w_buffer != NULL && win->w_buffer->b_closing))
- return; /* window is already being closed */
- if (win == aucmd_win)
- {
-***************
-*** 3723,3729 ****
- enter_tabpage(tp, old_curbuf, trigger_autocmds)
- tabpage_T *tp;
- buf_T *old_curbuf UNUSED;
-! int trigger_autocmds UNUSED;
- {
- int old_off = tp->tp_firstwin->w_winrow;
- win_T *next_prevwin = tp->tp_prevwin;
---- 3723,3729 ----
- enter_tabpage(tp, old_curbuf, trigger_autocmds)
- tabpage_T *tp;
- buf_T *old_curbuf UNUSED;
-! int trigger_autocmds UNUSED;
- {
- int old_off = tp->tp_firstwin->w_winrow;
- win_T *next_prevwin = tp->tp_prevwin;
-***************
-*** 3868,3874 ****
- void
- goto_tabpage_tp(tp, trigger_autocmds)
- tabpage_T *tp;
-! int trigger_autocmds;
- {
- /* Don't repeat a message in another tab page. */
- set_keep_msg(NULL, 0);
---- 3868,3874 ----
- void
- goto_tabpage_tp(tp, trigger_autocmds)
- tabpage_T *tp;
-! int trigger_autocmds;
- {
- /* Don't repeat a message in another tab page. */
- set_keep_msg(NULL, 0);
-*** ../vim-7.3.587/src/version.c 2012-07-06 16:21:58.000000000 +0200
---- src/version.c 2012-07-06 16:37:47.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 588,
- /**/
-
---
-Momento mori, ergo carpe diem
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.589
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.589
-Problem: Crash when $HOME is not set.
-Solution: Check for a NULL pointer. (Chris Webb)
-Files: src/misc1.c
-
-
-*** ../vim-7.3.588/src/misc1.c 2012-06-29 15:04:34.000000000 +0200
---- src/misc1.c 2012-07-06 16:44:39.000000000 +0200
-***************
-*** 4496,4503 ****
- #else
- homedir_env_orig = homedir_env = mch_getenv((char_u *)"HOME");
- #endif
- #if defined(FEAT_MODIFY_FNAME) || defined(WIN3264)
-! if (vim_strchr(homedir_env, '~') != NULL)
- {
- int usedlen = 0;
- int flen;
---- 4496,4507 ----
- #else
- homedir_env_orig = homedir_env = mch_getenv((char_u *)"HOME");
- #endif
-+ /* Empty is the same as not set. */
-+ if (homedir_env != NULL && *homedir_env == NUL)
-+ homedir_env = NULL;
-+
- #if defined(FEAT_MODIFY_FNAME) || defined(WIN3264)
-! if (homedir_env != NULL && vim_strchr(homedir_env, '~') != NULL)
- {
- int usedlen = 0;
- int flen;
-***************
-*** 4513,4520 ****
- }
- #endif
-
-- if (homedir_env != NULL && *homedir_env == NUL)
-- homedir_env = NULL;
- if (homedir_env != NULL)
- envlen = STRLEN(homedir_env);
-
---- 4517,4522 ----
-*** ../vim-7.3.588/src/version.c 2012-07-06 16:39:43.000000000 +0200
---- src/version.c 2012-07-06 16:45:18.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 589,
- /**/
-
---
-I AM THANKFUL...
-...for the taxes that I pay because it means that I am employed.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.590
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.590
-Problem: The '< and '> marks cannot be set directly.
-Solution: Allow setting '< and '>. (Christian Brabandt)
-Files: src/mark.c
-
-
-*** ../vim-7.3.589/src/mark.c 2011-02-25 15:11:17.000000000 +0100
---- src/mark.c 2012-07-06 17:47:23.000000000 +0200
-***************
-*** 98,103 ****
---- 98,116 ----
- return OK;
- }
-
-+ #ifdef FEAT_VISUAL
-+ if (c == '<')
-+ {
-+ curbuf->b_visual.vi_start = *pos;
-+ return OK;
-+ }
-+ if (c == '>')
-+ {
-+ curbuf->b_visual.vi_end = *pos;
-+ return OK;
-+ }
-+ #endif
-+
- #ifndef EBCDIC
- if (c > 'z') /* some islower() and isupper() cannot handle
- characters above 127 */
-*** ../vim-7.3.589/src/version.c 2012-07-06 16:49:37.000000000 +0200
---- src/version.c 2012-07-06 17:49:00.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 590,
- /**/
-
---
-The primary purpose of the DATA statement is to give names to constants;
-instead of referring to pi as 3.141592653589793 at every appearance, the
-variable PI can be given that value with a DATA statement and used instead
-of the longer form of the constant. This also simplifies modifying the
-program, should the value of pi change.
- -- FORTRAN manual for Xerox Computers
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.591
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.591
-Problem: Can only move to a tab by absolute number.
-Solution: Move a number of tabs to the left or the right. (Lech Lorens)
-Files: runtime/doc/tabpage.txt, src/ex_cmds.h, src/ex_docmd.c,
- src/testdir/test62.in, src/testdir/test62.ok, src/window.c
-
-
-*** ../vim-7.3.590/runtime/doc/tabpage.txt 2010-08-15 21:57:17.000000000 +0200
---- runtime/doc/tabpage.txt 2012-07-06 18:10:06.000000000 +0200
-***************
-*** 173,182 ****
---- 173,192 ----
- REORDERING TAB PAGES:
-
- :tabm[ove] [N] *:tabm* *:tabmove*
-+ :[N]tabm[ove]
- Move the current tab page to after tab page N. Use zero to
- make the current tab page the first one. Without N the tab
- page is made the last one.
-
-+ :tabm[ove] +[N]
-+ :tabm[ove] -[N]
-+ Move the current tab page N places to the right (with +) or to
-+ the left (with -).
-+
-+ Note that although it is possible to move a tab behind the N-th one by using
-+ :Ntabmove, it is impossible to move it by N places by using :+Ntabmove. For
-+ clarification what +N means in this context see |[range]|.
-+
-
- LOOPING OVER TAB PAGES:
-
-*** ../vim-7.3.590/src/ex_cmds.h 2012-05-18 18:47:11.000000000 +0200
---- src/ex_cmds.h 2012-07-06 18:10:13.000000000 +0200
-***************
-*** 944,950 ****
- EX(CMD_tabfirst, "tabfirst", ex_tabnext,
- TRLBAR),
- EX(CMD_tabmove, "tabmove", ex_tabmove,
-! RANGE|NOTADR|ZEROR|COUNT|TRLBAR|ZEROR),
- EX(CMD_tablast, "tablast", ex_tabnext,
- TRLBAR),
- EX(CMD_tabnext, "tabnext", ex_tabnext,
---- 944,950 ----
- EX(CMD_tabfirst, "tabfirst", ex_tabnext,
- TRLBAR),
- EX(CMD_tabmove, "tabmove", ex_tabmove,
-! RANGE|NOTADR|ZEROR|EXTRA|NOSPC|TRLBAR),
- EX(CMD_tablast, "tablast", ex_tabnext,
- TRLBAR),
- EX(CMD_tabnext, "tabnext", ex_tabnext,
-*** ../vim-7.3.590/src/ex_docmd.c 2012-06-06 19:02:40.000000000 +0200
---- src/ex_docmd.c 2012-07-06 18:16:25.000000000 +0200
-***************
-*** 7478,7484 ****
- ex_tabmove(eap)
- exarg_T *eap;
- {
-! tabpage_move(eap->addr_count == 0 ? 9999 : (int)eap->line2);
- }
-
- /*
---- 7478,7519 ----
- ex_tabmove(eap)
- exarg_T *eap;
- {
-! int tab_number = 9999;
-!
-! if (eap->arg && *eap->arg != NUL)
-! {
-! char_u *p = eap->arg;
-! int relative = 0; /* argument +N/-N means: move N places to the
-! * right/left relative to the current position. */
-!
-! if (*eap->arg == '-')
-! {
-! relative = -1;
-! p = eap->arg + 1;
-! }
-! else if (*eap->arg == '+')
-! {
-! relative = 1;
-! p = eap->arg + 1;
-! }
-! else
-! p = eap->arg;
-!
-! if (p == skipdigits(p))
-! {
-! /* No numbers as argument. */
-! eap->errmsg = e_invarg;
-! return;
-! }
-!
-! tab_number = getdigits(&p);
-! if (relative != 0)
-! tab_number = tab_number * relative + tabpage_index(curtab) - 1;;
-! }
-! else if (eap->addr_count != 0)
-! tab_number = eap->line2;
-!
-! tabpage_move(tab_number);
- }
-
- /*
-*** ../vim-7.3.590/src/testdir/test62.in 2012-03-07 22:55:17.000000000 +0100
---- src/testdir/test62.in 2012-07-06 18:10:13.000000000 +0200
-***************
-*** 93,98 ****
---- 93,126 ----
- :endif
- :"
- :"
-+ :for i in range(9) | tabnew | endfor
-+ 1gt
-+ Go=tabpagenr() 
-+ :tabmove 5
-+ i=tabpagenr() 
-+ :tabmove -2
-+ i=tabpagenr() 
-+ :tabmove +4
-+ i=tabpagenr() 
-+ :tabmove
-+ i=tabpagenr() 
-+ :tabmove -20
-+ i=tabpagenr() 
-+ :tabmove +20
-+ i=tabpagenr() 
-+ :3tabmove
-+ i=tabpagenr() 
-+ :7tabmove 5
-+ i=tabpagenr() 
-+ :let a='No error caught.'
-+ :try
-+ :tabmove foo
-+ :catch E474
-+ :let a='E474 caught.'
-+ :endtry
-+ i=a 
-+ :"
-+ :"
- :/^Results/,$w! test.out
- :qa!
- ENDTEST
-*** ../vim-7.3.590/src/testdir/test62.ok 2012-02-22 19:13:00.000000000 +0100
---- src/testdir/test62.ok 2012-07-06 18:10:13.000000000 +0200
-***************
-*** 8,10 ****
---- 8,20 ----
- tab drop 1: pass
- tab drop 2: pass
- tab drop 3: pass
-+ 1
-+ 6
-+ 4
-+ 8
-+ 10
-+ 1
-+ 10
-+ 4
-+ 6
-+ E474 caught.
-*** ../vim-7.3.590/src/window.c 2012-07-06 16:39:43.000000000 +0200
---- src/window.c 2012-07-06 18:10:13.000000000 +0200
-***************
-*** 3929,3935 ****
- }
-
- /* Re-insert it at the specified position. */
-! if (n == 0)
- {
- curtab->tp_next = first_tabpage;
- first_tabpage = curtab;
---- 3929,3935 ----
- }
-
- /* Re-insert it at the specified position. */
-! if (n <= 0)
- {
- curtab->tp_next = first_tabpage;
- first_tabpage = curtab;
-*** ../vim-7.3.590/src/version.c 2012-07-06 17:51:24.000000000 +0200
---- src/version.c 2012-07-06 18:11:08.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 591,
- /**/
-
---
-Bare feet magnetize sharp metal objects so they point upward from the
-floor -- especially in the dark.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.592
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.592
-Problem: Vim on GTK does not support g:browsefilter.
-Solution: Add a GtkFileFilter to the file chooser. (Christian Brabandt)
-Files: src/gui_gtk.c
-
-
-*** ../vim-7.3.591/src/gui_gtk.c 2012-06-06 16:14:36.000000000 +0200
---- src/gui_gtk.c 2012-07-10 13:08:06.000000000 +0200
-***************
-*** 840,846 ****
- char_u *dflt,
- char_u *ext UNUSED,
- char_u *initdir,
-! char_u *filter UNUSED)
- {
- #ifdef USE_FILE_CHOOSER
- GtkWidget *fc;
---- 840,846 ----
- char_u *dflt,
- char_u *ext UNUSED,
- char_u *initdir,
-! char_u *filter)
- {
- #ifdef USE_FILE_CHOOSER
- GtkWidget *fc;
-***************
-*** 848,853 ****
---- 848,854 ----
- char_u dirbuf[MAXPATHL];
- guint log_handler;
- const gchar *domain = "Gtk";
-+ GtkFileFilter *gfilter;
-
- title = CONVERT_TO_UTF8(title);
-
-***************
-*** 879,884 ****
---- 880,924 ----
- NULL);
- gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(fc),
- (const gchar *)dirbuf);
-+
-+ if (filter != NULL && *filter != NUL)
-+ {
-+ int i = 0;
-+ char_u *patt;
-+ char_u *p = filter;
-+
-+ gfilter = gtk_file_filter_new();
-+ patt = alloc(STRLEN(filter));
-+ while (p != NULL && *p != NUL)
-+ {
-+ if (*p == '\n' || *p == ';' || *p == '\t')
-+ {
-+ STRNCPY(patt, filter, i);
-+ patt[i] = '\0';
-+ if (*p == '\t')
-+ gtk_file_filter_set_name(gfilter, (gchar *)patt);
-+ else
-+ {
-+ gtk_file_filter_add_pattern(gfilter, (gchar *)patt);
-+ if (*p == '\n')
-+ {
-+ gtk_file_chooser_add_filter((GtkFileChooser *)fc,
-+ gfilter);
-+ if (*(p + 1) != NUL)
-+ gfilter = gtk_file_filter_new();
-+ }
-+ }
-+ filter = ++p;
-+ i = 0;
-+ }
-+ else
-+ {
-+ p++;
-+ i++;
-+ }
-+ }
-+ vim_free(patt);
-+ }
- if (saving && dflt != NULL && *dflt != NUL)
- gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(fc), (char *)dflt);
-
-***************
-*** 1304,1310 ****
- gtk_widget_show(entry);
-
- /* Make Enter work like pressing OK. */
-! gtk_entry_set_activates_default(GTK_ENTRY(entry), TRUE);
-
- text = CONVERT_TO_UTF8(textfield);
- gtk_entry_set_text(GTK_ENTRY(entry), (const char *)text);
---- 1344,1350 ----
- gtk_widget_show(entry);
-
- /* Make Enter work like pressing OK. */
-! gtk_entry_set_activates_default(GTK_ENTRY(entry), TRUE);
-
- text = CONVERT_TO_UTF8(textfield);
- gtk_entry_set_text(GTK_ENTRY(entry), (const char *)text);
-*** ../vim-7.3.591/src/version.c 2012-07-06 18:27:34.000000000 +0200
---- src/version.c 2012-07-10 13:00:29.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 592,
- /**/
-
---
-To be rich is not the end, but only a change of worries.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.593
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.593
-Problem: No easy way to decide if b:browsefilter will work.
-Solution: Add the browsefilter feature.
-Files: src/gui_gtk.c, src/eval.c, src/vim.h
-
-
-*** ../vim-7.3.592/src/gui_gtk.c 2012-07-10 13:12:46.000000000 +0200
---- src/gui_gtk.c 2012-07-10 13:40:38.000000000 +0200
-***************
-*** 779,787 ****
- /*
- * Implementation of the file selector related stuff
- */
-- #if GTK_CHECK_VERSION(2,4,0)
-- # define USE_FILE_CHOOSER
-- #endif
-
- #ifndef USE_FILE_CHOOSER
- static void
---- 779,784 ----
-*** ../vim-7.3.592/src/eval.c 2012-06-29 12:54:32.000000000 +0200
---- src/eval.c 2012-07-10 13:34:10.000000000 +0200
-***************
-*** 12044,12049 ****
---- 12044,12054 ----
- "all_builtin_terms",
- # endif
- #endif
-+ #if defined(FEAT_BROWSE) && (defined(USE_FILE_CHOOSER) \
-+ || defined(FEAT_GUI_W32) \
-+ || defined(FEAT_GUI_MOTIF))
-+ "browsefilter",
-+ #endif
- #ifdef FEAT_BYTEOFF
- "byte_offset",
- #endif
-*** ../vim-7.3.592/src/vim.h 2012-06-13 17:28:51.000000000 +0200
---- src/vim.h 2012-07-10 13:30:44.000000000 +0200
-***************
-*** 2125,2130 ****
---- 2125,2136 ----
- # endif
- #endif
-
-+ #if defined(FEAT_BROWSE) && defined(GTK_CHECK_VERSION)
-+ # if GTK_CHECK_VERSION(2,4,0)
-+ # define USE_FILE_CHOOSER
-+ # endif
-+ #endif
-+
- #ifndef FEAT_NETBEANS_INTG
- # undef NBDEBUG
- #endif
-*** ../vim-7.3.592/src/version.c 2012-07-10 13:12:46.000000000 +0200
---- src/version.c 2012-07-10 13:34:50.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 593,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-102. When filling out your driver's license application, you give
- your IP address.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.594
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.594
-Problem: The X command server doesn't work perfectly. It sends an empty
- reply for as-keys requests.
-Solution: Remove duplicate ga_init2(). Do not send a reply for as-keys
- requests. (Brian Burns)
-Files: src/if_xcmdsrv.c
-
-
-*** ../vim-7.3.593/src/if_xcmdsrv.c 2010-08-15 21:57:27.000000000 +0200
---- src/if_xcmdsrv.c 2012-07-10 14:15:59.000000000 +0200
-***************
-*** 655,661 ****
- if (SendInit(dpy) < 0)
- return NULL;
- }
-- ga_init2(&ga, 1, 100);
-
- /*
- * Read the registry property.
---- 655,660 ----
-***************
-*** 1198,1206 ****
- if ((*p == 'c' || *p == 'k') && (p[1] == 0))
- {
- Window resWindow;
-! char_u *name, *script, *serial, *end, *res;
- Bool asKeys = *p == 'k';
-- garray_T reply;
- char_u *enc;
-
- /*
---- 1197,1204 ----
- if ((*p == 'c' || *p == 'k') && (p[1] == 0))
- {
- Window resWindow;
-! char_u *name, *script, *serial, *end;
- Bool asKeys = *p == 'k';
- char_u *enc;
-
- /*
-***************
-*** 1256,1305 ****
- if (script == NULL || name == NULL)
- continue;
-
-! /*
-! * Initialize the result property, so that we're ready at any
-! * time if we need to return an error.
-! */
-! if (resWindow != None)
-! {
-! ga_init2(&reply, 1, 100);
- #ifdef FEAT_MBYTE
-! ga_grow(&reply, 50 + STRLEN(p_enc));
-! sprintf(reply.ga_data, "%cr%c-E %s%c-s %s%c-r ",
- 0, 0, p_enc, 0, serial, 0);
-! reply.ga_len = 14 + STRLEN(p_enc) + STRLEN(serial);
- #else
-! ga_grow(&reply, 50);
-! sprintf(reply.ga_data, "%cr%c-s %s%c-r ", 0, 0, serial, 0);
-! reply.ga_len = 10 + STRLEN(serial);
- #endif
-! }
-! res = NULL;
-! if (serverName != NULL && STRICMP(name, serverName) == 0)
-! {
-! script = serverConvert(enc, script, &tofree);
-! if (asKeys)
-! server_to_input_buf(script);
-! else
-! res = eval_client_expr_to_string(script);
-! vim_free(tofree);
-! }
-! if (resWindow != None)
-! {
-! if (res != NULL)
-! ga_concat(&reply, res);
-! else if (asKeys == 0)
-! {
-! ga_concat(&reply, (char_u *)_(e_invexprmsg));
-! ga_append(&reply, 0);
-! ga_concat(&reply, (char_u *)"-c 1");
-! }
-! ga_append(&reply, NUL);
-! (void)AppendPropCarefully(dpy, resWindow, commProperty,
-! reply.ga_data, reply.ga_len);
-! ga_clear(&reply);
-! }
-! vim_free(res);
- }
- else if (*p == 'r' && p[1] == 0)
- {
---- 1254,1305 ----
- if (script == NULL || name == NULL)
- continue;
-
-! if (serverName != NULL && STRICMP(name, serverName) == 0)
-! {
-! script = serverConvert(enc, script, &tofree);
-! if (asKeys)
-! server_to_input_buf(script);
-! else
-! {
-! char_u *res;
-!
-! res = eval_client_expr_to_string(script);
-! if (resWindow != None)
-! {
-! garray_T reply;
-!
-! /* Initialize the result property. */
-! ga_init2(&reply, 1, 100);
- #ifdef FEAT_MBYTE
-! ga_grow(&reply, 50 + STRLEN(p_enc));
-! sprintf(reply.ga_data, "%cr%c-E %s%c-s %s%c-r ",
- 0, 0, p_enc, 0, serial, 0);
-! reply.ga_len = 14 + STRLEN(p_enc) + STRLEN(serial);
- #else
-! ga_grow(&reply, 50);
-! sprintf(reply.ga_data, "%cr%c-s %s%c-r ",
-! 0, 0, serial, 0);
-! reply.ga_len = 10 + STRLEN(serial);
- #endif
-!
-! /* Evaluate the expression and return the result. */
-! if (res != NULL)
-! ga_concat(&reply, res);
-! else
-! {
-! ga_concat(&reply, (char_u *)_(e_invexprmsg));
-! ga_append(&reply, 0);
-! ga_concat(&reply, (char_u *)"-c 1");
-! }
-! ga_append(&reply, NUL);
-! (void)AppendPropCarefully(dpy, resWindow, commProperty,
-! reply.ga_data, reply.ga_len);
-! ga_clear(&reply);
-! }
-! vim_free(res);
-! }
-! vim_free(tofree);
-! }
- }
- else if (*p == 'r' && p[1] == 0)
- {
-*** ../vim-7.3.593/src/version.c 2012-07-10 13:41:09.000000000 +0200
---- src/version.c 2012-07-10 14:17:50.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 594,
- /**/
-
---
-A meeting is an event at which the minutes are kept and the hours are lost.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.595
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.595
-Problem: The X command server responds slowly
-Solution: Change the loop that waits for replies. (Brian Burns)
-Files: src/if_xcmdsrv.c
-
-
-*** ../vim-7.3.594/src/if_xcmdsrv.c 2012-07-10 14:25:00.000000000 +0200
---- src/if_xcmdsrv.c 2012-07-10 14:44:13.000000000 +0200
-***************
-*** 572,632 ****
- {
- time_t start;
- time_t now;
-- time_t lastChk = 0;
- XEvent event;
-! XPropertyEvent *e = (XPropertyEvent *)&event;
-! # define SEND_MSEC_POLL 50
-
- time(&start);
-! while (endCond(endData) == 0)
- {
- time(&now);
- if (seconds >= 0 && (now - start) >= seconds)
- break;
-! if (now != lastChk)
-! {
-! lastChk = now;
-! if (!WindowValid(dpy, w))
-! break;
-! /*
-! * Sometimes the PropertyChange event doesn't come.
-! * This can be seen in eg: vim -c 'echo remote_expr("gvim", "3+2")'
-! */
-! serverEventProc(dpy, NULL);
-! }
- if (localLoop)
- {
-- /* Just look out for the answer without calling back into Vim */
- #ifndef HAVE_SELECT
-- struct pollfd fds;
--
-- fds.fd = ConnectionNumber(dpy);
-- fds.events = POLLIN;
- if (poll(&fds, 1, SEND_MSEC_POLL) < 0)
- break;
- #else
-! fd_set fds;
-! struct timeval tv;
-!
-! tv.tv_sec = 0;
-! tv.tv_usec = SEND_MSEC_POLL * 1000;
-! FD_ZERO(&fds);
-! FD_SET(ConnectionNumber(dpy), &fds);
-! if (select(ConnectionNumber(dpy) + 1, &fds, NULL, NULL, &tv) < 0)
- break;
- #endif
-- while (XEventsQueued(dpy, QueuedAfterReading) > 0)
-- {
-- XNextEvent(dpy, &event);
-- if (event.type == PropertyNotify && e->window == commWindow)
-- serverEventProc(dpy, &event);
-- }
- }
- else
- {
- if (got_int)
- break;
-! ui_delay((long)SEND_MSEC_POLL, TRUE);
- ui_breakcheck();
- }
- }
---- 572,626 ----
- {
- time_t start;
- time_t now;
- XEvent event;
-!
-! #define UI_MSEC_DELAY 50
-! #define SEND_MSEC_POLL 500
-! #ifndef HAVE_SELECT
-! struct pollfd fds;
-!
-! fds.fd = ConnectionNumber(dpy);
-! fds.events = POLLIN;
-! #else
-! fd_set fds;
-! struct timeval tv;
-!
-! tv.tv_sec = 0;
-! tv.tv_usec = SEND_MSEC_POLL * 1000;
-! FD_ZERO(&fds);
-! FD_SET(ConnectionNumber(dpy), &fds);
-! #endif
-
- time(&start);
-! while (TRUE)
- {
-+ while (XCheckWindowEvent(dpy, commWindow, PropertyChangeMask, &event))
-+ serverEventProc(dpy, &event);
-+
-+ if (endCond(endData) != 0)
-+ break;
-+ if (!WindowValid(dpy, w))
-+ break;
- time(&now);
- if (seconds >= 0 && (now - start) >= seconds)
- break;
-!
-! /* Just look out for the answer without calling back into Vim */
- if (localLoop)
- {
- #ifndef HAVE_SELECT
- if (poll(&fds, 1, SEND_MSEC_POLL) < 0)
- break;
- #else
-! if (select(FD_SETSIZE, &fds, NULL, NULL, &tv) < 0)
- break;
- #endif
- }
- else
- {
- if (got_int)
- break;
-! ui_delay((long)UI_MSEC_DELAY, TRUE);
- ui_breakcheck();
- }
- }
-*** ../vim-7.3.594/src/version.c 2012-07-10 14:25:00.000000000 +0200
---- src/version.c 2012-07-10 14:52:16.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 595,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-104. When people ask about the Presidential Election you ask "Which country?"
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.596
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.596
-Problem: Can't remove all signs for a file or buffer.
-Solution: Support "*" for the sign id. (Christian Brabandt)
-Files: runtime/doc/sign.txt, src/buffer.c, src/ex_cmds.c,
- src/proto/buffer.pro
-
-
-*** ../vim-7.3.595/runtime/doc/sign.txt 2010-08-15 21:57:17.000000000 +0200
---- runtime/doc/sign.txt 2012-07-10 15:05:19.000000000 +0200
-***************
-*** 150,157 ****
- Remove the previously placed sign {id} from file {fname}.
- See remark above about {fname} |:sign-fname|.
-
- :sign unplace {id} buffer={nr}
-! Same, but use buffer {nr}.
-
- :sign unplace {id}
- Remove the previously placed sign {id} from all files it
---- 153,166 ----
- Remove the previously placed sign {id} from file {fname}.
- See remark above about {fname} |:sign-fname|.
-
-+ :sign unplace * file={fname}
-+ Remove all placed signs in file {fname}.
-+
- :sign unplace {id} buffer={nr}
-! Remove the previously placed sign {id} from buffer {nr}.
-!
-! :sign unplace * buffer={nr}
-! Remove all placed signs in buffer {nr}.
-
- :sign unplace {id}
- Remove the previously placed sign {id} from all files it
-*** ../vim-7.3.595/src/buffer.c 2012-07-06 16:21:58.000000000 +0200
---- src/buffer.c 2012-07-10 15:06:05.000000000 +0200
-***************
-*** 57,63 ****
-
- #if defined(FEAT_SIGNS)
- static void insert_sign __ARGS((buf_T *buf, signlist_T *prev, signlist_T *next, int id, linenr_T lnum, int typenr));
-- static void buf_delete_signs __ARGS((buf_T *buf));
- #endif
-
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
---- 57,62 ----
-***************
-*** 5537,5543 ****
- /*
- * Delete signs in buffer "buf".
- */
-! static void
- buf_delete_signs(buf)
- buf_T *buf;
- {
---- 5536,5542 ----
- /*
- * Delete signs in buffer "buf".
- */
-! void
- buf_delete_signs(buf)
- buf_T *buf;
- {
-*** ../vim-7.3.595/src/ex_cmds.c 2012-05-18 16:24:06.000000000 +0200
---- src/ex_cmds.c 2012-07-10 15:14:22.000000000 +0200
-***************
-*** 6997,7002 ****
---- 6997,7012 ----
- lnum = atoi((char *)arg);
- arg = skiptowhite(arg);
- }
-+ else if (STRNCMP(arg, "*", 1) == 0 && idx == SIGNCMD_UNPLACE)
-+ {
-+ if (id != -1)
-+ {
-+ EMSG(_(e_invarg));
-+ return;
-+ }
-+ id = -2;
-+ arg = skiptowhite(arg + 1);
-+ }
- else if (STRNCMP(arg, "name=", 5) == 0)
- {
- arg += 5;
-***************
-*** 7033,7039 ****
- {
- EMSG2(_("E158: Invalid buffer name: %s"), arg);
- }
-! else if (id <= 0)
- {
- if (lnum >= 0 || sign_name != NULL)
- EMSG(_(e_invarg));
---- 7043,7049 ----
- {
- EMSG2(_("E158: Invalid buffer name: %s"), arg);
- }
-! else if (id <= 0 && !(idx == SIGNCMD_UNPLACE && id == -2))
- {
- if (lnum >= 0 || sign_name != NULL)
- EMSG(_(e_invarg));
-***************
-*** 7074,7084 ****
- }
- else if (idx == SIGNCMD_UNPLACE)
- {
-- /* ":sign unplace {id} file={fname}" */
- if (lnum >= 0 || sign_name != NULL)
- EMSG(_(e_invarg));
- else
- {
- lnum = buf_delsign(buf, id);
- update_debug_sign(buf, lnum);
- }
---- 7084,7100 ----
- }
- else if (idx == SIGNCMD_UNPLACE)
- {
- if (lnum >= 0 || sign_name != NULL)
- EMSG(_(e_invarg));
-+ else if (id == -2)
-+ {
-+ /* ":sign unplace * file={fname}" */
-+ redraw_buf_later(buf, NOT_VALID);
-+ buf_delete_signs(buf);
-+ }
- else
- {
-+ /* ":sign unplace {id} file={fname}" */
- lnum = buf_delsign(buf, id);
- update_debug_sign(buf, lnum);
- }
-*** ../vim-7.3.595/src/proto/buffer.pro 2012-02-22 14:58:24.000000000 +0100
---- src/proto/buffer.pro 2012-07-10 15:06:10.000000000 +0200
-***************
-*** 60,65 ****
---- 60,66 ----
- int buf_findsign_id __ARGS((buf_T *buf, linenr_T lnum));
- int buf_findsigntype_id __ARGS((buf_T *buf, linenr_T lnum, int typenr));
- int buf_signcount __ARGS((buf_T *buf, linenr_T lnum));
-+ void buf_delete_signs __ARGS((buf_T *buf));
- void buf_delete_all_signs __ARGS((void));
- void sign_list_placed __ARGS((buf_T *rbuf));
- void sign_mark_adjust __ARGS((linenr_T line1, linenr_T line2, long amount, long amount_after));
-*** ../vim-7.3.595/src/version.c 2012-07-10 14:56:42.000000000 +0200
---- src/version.c 2012-07-10 15:16:40.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 596,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-105. When someone asks you for your address, you tell them your URL.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.597
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.597
-Problem: 'clipboard' "autoselect" only applies to the * register. (Sergey
- Vakulenko)
-Solution: Make 'autoselect' work for the + register. (Christian Brabant)
- Add the "autoselectplus" option in 'clipboard' and the "P" flag in
- 'guioptions'.
-Files: runtime/doc/options.txt, src/normal.c, src/ops.c, src/screen.c,
- src/ui.c, src/globals.h, src/proto/ui.pro, src/option.h, src/gui.c
-
-
-*** ../vim-7.3.596/runtime/doc/options.txt 2012-02-20 22:18:23.000000000 +0100
---- runtime/doc/options.txt 2012-07-10 15:40:35.000000000 +0200
-***************
-*** 1437,1442 ****
---- 1452,1458 ----
- This option is a list of comma separated names.
- These names are recognized:
-
-+ *clipboard-unnamed*
- unnamed When included, Vim will use the clipboard register '*'
- for all yank, delete, change and put operations which
- would normally go to the unnamed register. When a
-***************
-*** 1446,1460 ****
- explicitly accessed using the "* notation. Also see
- |gui-clipboard|.
-
- unnamedplus A variant of "unnamed" flag which uses the clipboard
- register '+' (|quoteplus|) instead of register '*' for
- all operations except yank. Yank shall copy the text
- into register '+' and also into '*' when "unnamed" is
- included.
-! Only available with the |+x11| feature.
- Availability can be checked with: >
- if has('unnamedplus')
- <
- autoselect Works like the 'a' flag in 'guioptions': If present,
- then whenever Visual mode is started, or the Visual
- area extended, Vim tries to become the owner of the
---- 1462,1478 ----
- explicitly accessed using the "* notation. Also see
- |gui-clipboard|.
-
-+ *clipboard-unnamedplus*
- unnamedplus A variant of "unnamed" flag which uses the clipboard
- register '+' (|quoteplus|) instead of register '*' for
- all operations except yank. Yank shall copy the text
- into register '+' and also into '*' when "unnamed" is
- included.
-! Only available with the |+X11| feature.
- Availability can be checked with: >
- if has('unnamedplus')
- <
-+ *clipboard-autoselect*
- autoselect Works like the 'a' flag in 'guioptions': If present,
- then whenever Visual mode is started, or the Visual
- area extended, Vim tries to become the owner of the
-***************
-*** 1466,1474 ****
---- 1484,1499 ----
- "autoselect" flag is used.
- Also applies to the modeless selection.
-
-+ *clipboard-autoselectplus*
-+ autoselectplus Like "autoselect" but using the + register instead of
-+ the * register. Compare to the 'P' flag in
-+ 'guioptions'.
-+
-+ *clipboard-autoselectml*
- autoselectml Like "autoselect", but for the modeless selection
- only. Compare to the 'A' flag in 'guioptions'.
-
-+ *clipboard-html*
- html When the clipboard contains HTML, use this when
- pasting. When putting text on the clipboard, mark it
- as HTML. This works to copy rendered HTML from
-***************
-*** 1479,1484 ****
---- 1504,1510 ----
- Only supported for GTK version 2 and later.
- Only available with the |+multi_byte| feature.
-
-+ *clipboard-exclude*
- exclude:{pattern}
- Defines a pattern that is matched against the name of
- the terminal 'term'. If there is a match, no
-***************
-*** 3547,3552 ****
---- 3600,3608 ----
- windowing system's global selection unless explicitly told to
- by a yank or delete operation for the "* register.
- The same applies to the modeless selection.
-+ *'go-P'*
-+ 'P' Like autoselect but using the "+ register instead of the "*
-+ register.
- *'go-A'*
- 'A' Autoselect for the modeless selection. Like 'a', but only
- applies to the modeless selection.
-*** ../vim-7.3.596/src/normal.c 2012-06-29 13:56:01.000000000 +0200
---- src/normal.c 2012-07-10 15:44:24.000000000 +0200
-***************
-*** 1451,1457 ****
- * This could call do_pending_operator() recursively, but that's OK
- * because gui_yank will be TRUE for the nested call.
- */
-! if (clip_star.available
- && oap->op_type != OP_NOP
- && !gui_yank
- # ifdef FEAT_VISUAL
---- 1451,1457 ----
- * This could call do_pending_operator() recursively, but that's OK
- * because gui_yank will be TRUE for the nested call.
- */
-! if ((clip_star.available || clip_plus.available)
- && oap->op_type != OP_NOP
- && !gui_yank
- # ifdef FEAT_VISUAL
-*** ../vim-7.3.596/src/ops.c 2012-06-29 13:34:15.000000000 +0200
---- src/ops.c 2012-07-10 16:20:29.000000000 +0200
-***************
-*** 962,969 ****
- * selection too. */
- if (name == '*' && clip_star.available)
- {
-! if (clip_isautosel())
-! clip_update_selection();
- may_get_selection(name);
- }
- #endif
---- 962,975 ----
- * selection too. */
- if (name == '*' && clip_star.available)
- {
-! if (clip_isautosel_star())
-! clip_update_selection(&clip_star);
-! may_get_selection(name);
-! }
-! if (name == '+' && clip_plus.available)
-! {
-! if (clip_isautosel_plus())
-! clip_update_selection(&clip_plus);
- may_get_selection(name);
- }
- #endif
-***************
-*** 3190,3196 ****
-
- clip_own_selection(&clip_plus);
- clip_gen_set_selection(&clip_plus);
-! if (!clip_isautosel() && !did_star && curr == &(y_regs[PLUS_REGISTER]))
- {
- copy_yank_reg(&(y_regs[STAR_REGISTER]));
- clip_own_selection(&clip_star);
---- 3196,3203 ----
-
- clip_own_selection(&clip_plus);
- clip_gen_set_selection(&clip_plus);
-! if (!clip_isautosel_star() && !did_star
-! && curr == &(y_regs[PLUS_REGISTER]))
- {
- copy_yank_reg(&(y_regs[STAR_REGISTER]));
- clip_own_selection(&clip_star);
-*** ../vim-7.3.596/src/screen.c 2012-06-13 18:06:32.000000000 +0200
---- src/screen.c 2012-07-10 16:39:01.000000000 +0200
-***************
-*** 519,526 ****
- # endif
- # ifdef FEAT_CLIPBOARD
- /* When Visual area changed, may have to update selection. */
-! if (clip_star.available && clip_isautosel())
-! clip_update_selection();
- # endif
- #ifdef FEAT_GUI
- /* Remove the cursor before starting to do anything, because
---- 519,528 ----
- # endif
- # ifdef FEAT_CLIPBOARD
- /* When Visual area changed, may have to update selection. */
-! if (clip_star.available && clip_isautosel_star())
-! clip_update_selection(&clip_star);
-! if (clip_plus.available && clip_isautosel_plus())
-! clip_update_selection(&clip_plus);
- # endif
- #ifdef FEAT_GUI
- /* Remove the cursor before starting to do anything, because
-***************
-*** 814,821 ****
-
- #ifdef FEAT_CLIPBOARD
- /* When Visual area changed, may have to update selection. */
-! if (clip_star.available && clip_isautosel())
-! clip_update_selection();
- #endif
-
- win_update(wp);
---- 816,825 ----
-
- #ifdef FEAT_CLIPBOARD
- /* When Visual area changed, may have to update selection. */
-! if (clip_star.available && clip_isautosel_star())
-! clip_update_selection(&clip_star);
-! if (clip_plus.available && clip_isautosel_plus())
-! clip_update_selection(&clip_plus);
- #endif
-
- win_update(wp);
-***************
-*** 3000,3006 ****
- area_highlighting = TRUE;
- attr = hl_attr(HLF_V);
- #if defined(FEAT_CLIPBOARD) && defined(FEAT_X11)
-! if (clip_star.available && !clip_star.owned && clip_isautosel())
- attr = hl_attr(HLF_VNC);
- #endif
- }
---- 3004,3013 ----
- area_highlighting = TRUE;
- attr = hl_attr(HLF_V);
- #if defined(FEAT_CLIPBOARD) && defined(FEAT_X11)
-! if ((clip_star.available && !clip_star.owned
-! && clip_isautosel_star())
-! || (clip_plus.available && !clip_plus.owned
-! && clip_isautosel_plus()))
- attr = hl_attr(HLF_VNC);
- #endif
- }
-***************
-*** 9060,9066 ****
- || (wp != NULL && wp->w_width != Columns)
- # endif
- )
-! clip_clear_selection();
- else
- clip_scroll_selection(-line_count);
- #endif
---- 9067,9073 ----
- || (wp != NULL && wp->w_width != Columns)
- # endif
- )
-! clip_clear_selection(&clip_star);
- else
- clip_scroll_selection(-line_count);
- #endif
-***************
-*** 9281,9287 ****
- || (wp != NULL && wp->w_width != Columns)
- # endif
- )
-! clip_clear_selection();
- else
- clip_scroll_selection(line_count);
- #endif
---- 9288,9294 ----
- || (wp != NULL && wp->w_width != Columns)
- # endif
- )
-! clip_clear_selection(&clip_star);
- else
- clip_scroll_selection(line_count);
- #endif
-*** ../vim-7.3.596/src/ui.c 2012-02-12 01:35:06.000000000 +0100
---- src/ui.c 2012-07-10 16:43:17.000000000 +0200
-***************
-*** 381,386 ****
---- 381,388 ----
-
- #if defined(FEAT_CLIPBOARD) || defined(PROTO)
-
-+ static void clip_copy_selection __ARGS((VimClipboard *clip));
-+
- /*
- * Selection stuff using Visual mode, for cutting and pasting text to other
- * windows.
-***************
-*** 423,431 ****
- * this is called whenever VIsual mode is ended.
- */
- void
-! clip_update_selection()
- {
-! pos_T start, end;
-
- /* If visual mode is only due to a redo command ("."), then ignore it */
- if (!redo_VIsual_busy && VIsual_active && (State & NORMAL))
---- 425,434 ----
- * this is called whenever VIsual mode is ended.
- */
- void
-! clip_update_selection(clip)
-! VimClipboard *clip;
- {
-! pos_T start, end;
-
- /* If visual mode is only due to a redo command ("."), then ignore it */
- if (!redo_VIsual_busy && VIsual_active && (State & NORMAL))
-***************
-*** 444,460 ****
- start = curwin->w_cursor;
- end = VIsual;
- }
-! if (!equalpos(clip_star.start, start)
-! || !equalpos(clip_star.end, end)
-! || clip_star.vmode != VIsual_mode)
- {
-! clip_clear_selection();
-! clip_star.start = start;
-! clip_star.end = end;
-! clip_star.vmode = VIsual_mode;
-! clip_free_selection(&clip_star);
-! clip_own_selection(&clip_star);
-! clip_gen_set_selection(&clip_star);
- }
- }
- }
---- 447,463 ----
- start = curwin->w_cursor;
- end = VIsual;
- }
-! if (!equalpos(clip->start, start)
-! || !equalpos(clip->end, end)
-! || clip->vmode != VIsual_mode)
- {
-! clip_clear_selection(clip);
-! clip->start = start;
-! clip->end = end;
-! clip->vmode = VIsual_mode;
-! clip_free_selection(clip);
-! clip_own_selection(clip);
-! clip_gen_set_selection(clip);
- }
- }
- }
-***************
-*** 475,481 ****
- int was_owned = cbd->owned;
-
- cbd->owned = (clip_gen_own_selection(cbd) == OK);
-! if (!was_owned && cbd == &clip_star)
- {
- /* May have to show a different kind of highlighting for the
- * selected area. There is no specific redraw command for this,
---- 478,484 ----
- int was_owned = cbd->owned;
-
- cbd->owned = (clip_gen_own_selection(cbd) == OK);
-! if (!was_owned && (cbd == &clip_star || cbd == &clip_plus))
- {
- /* May have to show a different kind of highlighting for the
- * selected area. There is no specific redraw command for this,
-***************
-*** 483,489 ****
- if (cbd->owned
- && (get_real_state() == VISUAL
- || get_real_state() == SELECTMODE)
-! && clip_isautosel()
- && hl_attr(HLF_V) != hl_attr(HLF_VNC))
- redraw_curbuf_later(INVERTED_ALL);
- }
---- 486,493 ----
- if (cbd->owned
- && (get_real_state() == VISUAL
- || get_real_state() == SELECTMODE)
-! && (cbd == &clip_star ? clip_isautosel_star()
-! : clip_isautosel_plus())
- && hl_attr(HLF_V) != hl_attr(HLF_VNC))
- redraw_curbuf_later(INVERTED_ALL);
- }
-***************
-*** 502,513 ****
- #ifdef FEAT_X11
- int was_owned = cbd->owned;
- #endif
-! int visual_selection = (cbd == &clip_star);
-
- clip_free_selection(cbd);
- cbd->owned = FALSE;
- if (visual_selection)
-! clip_clear_selection();
- clip_gen_lose_selection(cbd);
- #ifdef FEAT_X11
- if (visual_selection)
---- 506,520 ----
- #ifdef FEAT_X11
- int was_owned = cbd->owned;
- #endif
-! int visual_selection = FALSE;
-!
-! if (cbd == &clip_star || cbd == &clip_plus)
-! visual_selection = TRUE;
-
- clip_free_selection(cbd);
- cbd->owned = FALSE;
- if (visual_selection)
-! clip_clear_selection(cbd);
- clip_gen_lose_selection(cbd);
- #ifdef FEAT_X11
- if (visual_selection)
-***************
-*** 518,524 ****
- if (was_owned
- && (get_real_state() == VISUAL
- || get_real_state() == SELECTMODE)
-! && clip_isautosel()
- && hl_attr(HLF_V) != hl_attr(HLF_VNC))
- {
- update_curbuf(INVERTED_ALL);
---- 525,532 ----
- if (was_owned
- && (get_real_state() == VISUAL
- || get_real_state() == SELECTMODE)
-! && (cbd == &clip_star ?
-! clip_isautosel_star() : clip_isautosel_plus())
- && hl_attr(HLF_V) != hl_attr(HLF_VNC))
- {
- update_curbuf(INVERTED_ALL);
-***************
-*** 534,551 ****
- #endif
- }
-
-! void
-! clip_copy_selection()
-! {
-! if (VIsual_active && (State & NORMAL) && clip_star.available)
-! {
-! if (clip_isautosel())
-! clip_update_selection();
-! clip_free_selection(&clip_star);
-! clip_own_selection(&clip_star);
-! if (clip_star.owned)
-! clip_get_selection(&clip_star);
-! clip_gen_set_selection(&clip_star);
- }
- }
-
---- 542,559 ----
- #endif
- }
-
-! static void
-! clip_copy_selection(clip)
-! VimClipboard *clip;
-! {
-! if (VIsual_active && (State & NORMAL) && clip->available)
-! {
-! clip_update_selection(clip);
-! clip_free_selection(clip);
-! clip_own_selection(clip);
-! if (clip->owned)
-! clip_get_selection(clip);
-! clip_gen_set_selection(clip);
- }
- }
-
-***************
-*** 555,575 ****
- void
- clip_auto_select()
- {
-! if (clip_isautosel())
-! clip_copy_selection();
- }
-
- /*
-! * Return TRUE if automatic selection of Visual area is desired.
- */
- int
-! clip_isautosel()
- {
- return (
- #ifdef FEAT_GUI
- gui.in_use ? (vim_strchr(p_go, GO_ASEL) != NULL) :
- #endif
-! clip_autoselect);
- }
-
-
---- 563,600 ----
- void
- clip_auto_select()
- {
-! if (clip_isautosel_star())
-! clip_copy_selection(&clip_star);
-! if (clip_isautosel_plus())
-! clip_copy_selection(&clip_plus);
- }
-
- /*
-! * Return TRUE if automatic selection of Visual area is desired for the *
-! * register.
- */
- int
-! clip_isautosel_star()
- {
- return (
- #ifdef FEAT_GUI
- gui.in_use ? (vim_strchr(p_go, GO_ASEL) != NULL) :
- #endif
-! clip_autoselect_star);
-! }
-!
-! /*
-! * Return TRUE if automatic selection of Visual area is desired for the +
-! * register.
-! */
-! int
-! clip_isautosel_plus()
-! {
-! return (
-! #ifdef FEAT_GUI
-! gui.in_use ? (vim_strchr(p_go, GO_ASELPLUS) != NULL) :
-! #endif
-! clip_autoselect_plus);
- }
-
-
-***************
-*** 657,663 ****
- VimClipboard *cb = &clip_star;
-
- if (cb->state == SELECT_DONE)
-! clip_clear_selection();
-
- row = check_row(row);
- col = check_col(col);
---- 682,688 ----
- VimClipboard *cb = &clip_star;
-
- if (cb->state == SELECT_DONE)
-! clip_clear_selection(cb);
-
- row = check_row(row);
- col = check_col(col);
-***************
-*** 749,755 ****
- printf("Selection ended: (%u,%u) to (%u,%u)\n", cb->start.lnum,
- cb->start.col, cb->end.lnum, cb->end.col);
- #endif
-! if (clip_isautosel()
- || (
- #ifdef FEAT_GUI
- gui.in_use ? (vim_strchr(p_go, GO_ASELML) != NULL) :
---- 774,780 ----
- printf("Selection ended: (%u,%u) to (%u,%u)\n", cb->start.lnum,
- cb->start.col, cb->end.lnum, cb->end.col);
- #endif
-! if (clip_isautosel_star()
- || (
- #ifdef FEAT_GUI
- gui.in_use ? (vim_strchr(p_go, GO_ASELML) != NULL) :
-***************
-*** 932,947 ****
- * Called from outside to clear selected region from the display
- */
- void
-! clip_clear_selection()
- {
-- VimClipboard *cb = &clip_star;
-
-! if (cb->state == SELECT_CLEARED)
- return;
-
-! clip_invert_area((int)cb->start.lnum, cb->start.col, (int)cb->end.lnum,
-! cb->end.col, CLIP_CLEAR);
-! cb->state = SELECT_CLEARED;
- }
-
- /*
---- 957,972 ----
- * Called from outside to clear selected region from the display
- */
- void
-! clip_clear_selection(cbd)
-! VimClipboard *cbd;
- {
-
-! if (cbd->state == SELECT_CLEARED)
- return;
-
-! clip_invert_area((int)cbd->start.lnum, cbd->start.col, (int)cbd->end.lnum,
-! cbd->end.col, CLIP_CLEAR);
-! cbd->state = SELECT_CLEARED;
- }
-
- /*
-***************
-*** 954,960 ****
- if (clip_star.state == SELECT_DONE
- && row2 >= clip_star.start.lnum
- && row1 <= clip_star.end.lnum)
-! clip_clear_selection();
- }
-
- /*
---- 979,985 ----
- if (clip_star.state == SELECT_DONE
- && row2 >= clip_star.start.lnum
- && row1 <= clip_star.end.lnum)
-! clip_clear_selection(&clip_star);
- }
-
- /*
-*** ../vim-7.3.596/src/globals.h 2012-06-29 12:35:40.000000000 +0200
---- src/globals.h 2012-07-10 16:35:13.000000000 +0200
-***************
-*** 517,523 ****
- # define CLIP_UNNAMED_PLUS 2
- EXTERN int clip_unnamed INIT(= 0); /* above two values or'ed */
-
-! EXTERN int clip_autoselect INIT(= FALSE);
- EXTERN int clip_autoselectml INIT(= FALSE);
- EXTERN int clip_html INIT(= FALSE);
- EXTERN regprog_T *clip_exclude_prog INIT(= NULL);
---- 517,524 ----
- # define CLIP_UNNAMED_PLUS 2
- EXTERN int clip_unnamed INIT(= 0); /* above two values or'ed */
-
-! EXTERN int clip_autoselect_star INIT(= FALSE);
-! EXTERN int clip_autoselect_plus INIT(= FALSE);
- EXTERN int clip_autoselectml INIT(= FALSE);
- EXTERN int clip_html INIT(= FALSE);
- EXTERN regprog_T *clip_exclude_prog INIT(= NULL);
-*** ../vim-7.3.596/src/proto/ui.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/ui.pro 2012-07-10 16:37:35.000000000 +0200
-***************
-*** 11,27 ****
- void ui_new_shellsize __ARGS((void));
- void ui_breakcheck __ARGS((void));
- void clip_init __ARGS((int can_use));
-! void clip_update_selection __ARGS((void));
- void clip_own_selection __ARGS((VimClipboard *cbd));
- void clip_lose_selection __ARGS((VimClipboard *cbd));
-- void clip_copy_selection __ARGS((void));
- void clip_auto_select __ARGS((void));
-! int clip_isautosel __ARGS((void));
- void clip_modeless __ARGS((int button, int is_click, int is_drag));
- void clip_start_selection __ARGS((int col, int row, int repeated_click));
- void clip_process_selection __ARGS((int button, int col, int row, int_u repeated_click));
- void clip_may_redraw_selection __ARGS((int row, int col, int len));
-! void clip_clear_selection __ARGS((void));
- void clip_may_clear_selection __ARGS((int row1, int row2));
- void clip_scroll_selection __ARGS((int rows));
- void clip_copy_modeless_selection __ARGS((int both));
---- 11,27 ----
- void ui_new_shellsize __ARGS((void));
- void ui_breakcheck __ARGS((void));
- void clip_init __ARGS((int can_use));
-! void clip_update_selection __ARGS((VimClipboard *clip));
- void clip_own_selection __ARGS((VimClipboard *cbd));
- void clip_lose_selection __ARGS((VimClipboard *cbd));
- void clip_auto_select __ARGS((void));
-! int clip_isautosel_star __ARGS((void));
-! int clip_isautosel_plus __ARGS((void));
- void clip_modeless __ARGS((int button, int is_click, int is_drag));
- void clip_start_selection __ARGS((int col, int row, int repeated_click));
- void clip_process_selection __ARGS((int button, int col, int row, int_u repeated_click));
- void clip_may_redraw_selection __ARGS((int row, int col, int len));
-! void clip_clear_selection __ARGS((VimClipboard *cbd));
- void clip_may_clear_selection __ARGS((int row1, int row2));
- void clip_scroll_selection __ARGS((int rows));
- void clip_copy_modeless_selection __ARGS((int both));
-*** ../vim-7.3.596/src/option.h 2012-06-06 16:12:54.000000000 +0200
---- src/option.h 2012-07-10 15:54:32.000000000 +0200
-***************
-*** 229,234 ****
---- 229,235 ----
- #define GO_MENUS 'm' /* use menu bar */
- #define GO_NOSYSMENU 'M' /* don't source system menu */
- #define GO_POINTER 'p' /* pointer enter/leave callbacks */
-+ #define GO_ASELPLUS 'P' /* autoselectPlus */
- #define GO_RIGHT 'r' /* use right scrollbar */
- #define GO_VRIGHT 'R' /* right scrollbar with vert split */
- #define GO_TEAROFF 't' /* add tear-off menu items */
-*** ../vim-7.3.596/src/gui.c 2012-05-27 00:37:45.000000000 +0200
---- src/gui.c 2012-07-10 16:43:34.000000000 +0200
-***************
-*** 3154,3160 ****
- }
-
- if (clip_star.state != SELECT_CLEARED && !did_clip)
-! clip_clear_selection();
- #endif
-
- /* Don't put events in the input queue now. */
---- 3154,3160 ----
- }
-
- if (clip_star.state != SELECT_CLEARED && !did_clip)
-! clip_clear_selection(&clip_star);
- #endif
-
- /* Don't put events in the input queue now. */
-*** ../vim-7.3.596/src/version.c 2012-07-10 15:18:18.000000000 +0200
---- src/version.c 2012-07-10 16:32:16.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 597,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-106. When told to "go to your room" you inform your parents that you
- can't...because you were kicked out and banned.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.598
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.598
-Problem: Cannot act upon end of completion. (Taro Muraoka)
-Solution: Add an autocommand event that is triggered when completion has
- finished. (Idea by Florian Klein)
-Files: src/edit.c, src/fileio.c, src/vim.h
-
-
-*** ../vim-7.3.597/src/edit.c 2012-07-06 13:36:36.000000000 +0200
---- src/edit.c 2012-07-10 17:02:37.000000000 +0200
-***************
-*** 3824,3829 ****
---- 3824,3834 ----
- if (want_cindent && in_cinkeys(KEY_COMPLETE, ' ', inindent(0)))
- do_c_expr_indent();
- #endif
-+ #ifdef FEAT_AUTOCMD
-+ /* Trigger the CompleteDone event to give scripts a chance to act
-+ * upon the completion. */
-+ apply_autocmds(EVENT_COMPLETEDONE, NULL, NULL, FALSE, curbuf);
-+ #endif
- }
- }
-
-*** ../vim-7.3.597/src/fileio.c 2012-06-13 14:28:16.000000000 +0200
---- src/fileio.c 2012-07-10 17:05:51.000000000 +0200
-***************
-*** 7643,7648 ****
---- 7643,7649 ----
- {"CmdwinEnter", EVENT_CMDWINENTER},
- {"CmdwinLeave", EVENT_CMDWINLEAVE},
- {"ColorScheme", EVENT_COLORSCHEME},
-+ {"CompleteDone", EVENT_COMPLETEDONE},
- {"CursorHold", EVENT_CURSORHOLD},
- {"CursorHoldI", EVENT_CURSORHOLDI},
- {"CursorMoved", EVENT_CURSORMOVED},
-*** ../vim-7.3.597/src/vim.h 2012-07-10 13:41:09.000000000 +0200
---- src/vim.h 2012-07-10 17:06:24.000000000 +0200
-***************
-*** 1241,1246 ****
---- 1241,1247 ----
- EVENT_CMDWINENTER, /* after entering the cmdline window */
- EVENT_CMDWINLEAVE, /* before leaving the cmdline window */
- EVENT_COLORSCHEME, /* after loading a colorscheme */
-+ EVENT_COMPLETEDONE, /* after finishing insert complete */
- EVENT_FILEAPPENDPOST, /* after appending to a file */
- EVENT_FILEAPPENDPRE, /* before appending to a file */
- EVENT_FILEAPPENDCMD, /* append to a file using command */
-*** ../vim-7.3.597/src/version.c 2012-07-10 16:49:08.000000000 +0200
---- src/version.c 2012-07-10 17:08:41.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 598,
- /**/
-
---
-Laughing helps. It's like jogging on the inside.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.599
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.599 (after 7.3.597)
-Problem: Missing change in one file.
-Solution: Patch for changed clip_autoselect().
-Files: src/option.c
-
-
-*** ../vim-7.3.598/src/option.c 2012-06-29 15:51:26.000000000 +0200
---- src/option.c 2012-07-10 16:35:07.000000000 +0200
-***************
-*** 7377,7383 ****
- check_clipboard_option()
- {
- int new_unnamed = 0;
-! int new_autoselect = FALSE;
- int new_autoselectml = FALSE;
- int new_html = FALSE;
- regprog_T *new_exclude_prog = NULL;
---- 7377,7384 ----
- check_clipboard_option()
- {
- int new_unnamed = 0;
-! int new_autoselect_star = FALSE;
-! int new_autoselect_plus = FALSE;
- int new_autoselectml = FALSE;
- int new_html = FALSE;
- regprog_T *new_exclude_prog = NULL;
-***************
-*** 7398,7410 ****
- p += 11;
- }
- else if (STRNCMP(p, "autoselect", 10) == 0
-! && (p[10] == ',' || p[10] == NUL))
- {
-! new_autoselect = TRUE;
- p += 10;
- }
- else if (STRNCMP(p, "autoselectml", 12) == 0
-! && (p[12] == ',' || p[12] == NUL))
- {
- new_autoselectml = TRUE;
- p += 12;
---- 7399,7417 ----
- p += 11;
- }
- else if (STRNCMP(p, "autoselect", 10) == 0
-! && (p[10] == ',' || p[10] == NUL))
- {
-! new_autoselect_star = TRUE;
- p += 10;
- }
-+ else if (STRNCMP(p, "autoselectplus", 14) == 0
-+ && (p[14] == ',' || p[14] == NUL))
-+ {
-+ new_autoselect_plus = TRUE;
-+ p += 14;
-+ }
- else if (STRNCMP(p, "autoselectml", 12) == 0
-! && (p[12] == ',' || p[12] == NUL))
- {
- new_autoselectml = TRUE;
- p += 12;
-***************
-*** 7433,7439 ****
- if (errmsg == NULL)
- {
- clip_unnamed = new_unnamed;
-! clip_autoselect = new_autoselect;
- clip_autoselectml = new_autoselectml;
- clip_html = new_html;
- vim_free(clip_exclude_prog);
---- 7440,7447 ----
- if (errmsg == NULL)
- {
- clip_unnamed = new_unnamed;
-! clip_autoselect_star = new_autoselect_star;
-! clip_autoselect_plus = new_autoselect_plus;
- clip_autoselectml = new_autoselectml;
- clip_html = new_html;
- vim_free(clip_exclude_prog);
-*** ../vim-7.3.598/src/version.c 2012-07-10 17:14:50.000000000 +0200
---- src/version.c 2012-07-10 18:30:17.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 599,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-108. While reading a magazine, you look for the Zoom icon for a better
- look at a photograph.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.600
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.600
-Problem: <f-args> is not expanded properly with DBCS encoding.
-Solution: Skip over character instead of byte. (Yukihiro Nakadaira)
-Files: src/ex_docmd.c
-
-
-*** ../vim-7.3.599/src/ex_docmd.c 2012-07-06 18:27:34.000000000 +0200
---- src/ex_docmd.c 2012-07-10 19:20:10.000000000 +0200
-***************
-*** 5845,5852 ****
---- 5845,5858 ----
- }
- else
- {
-+ #ifdef FEAT_MBYTE
-+ int charlen = (*mb_ptr2len)(p);
-+ len += charlen;
-+ p += charlen;
-+ #else
- ++len;
- ++p;
-+ #endif
- }
- }
-
-***************
-*** 5889,5895 ****
- }
- else
- {
-! *q++ = *p++;
- }
- }
- *q++ = '"';
---- 5895,5901 ----
- }
- else
- {
-! MB_COPY_CHAR(p, q);
- }
- }
- *q++ = '"';
-*** ../vim-7.3.599/src/version.c 2012-07-10 18:31:49.000000000 +0200
---- src/version.c 2012-07-10 19:21:29.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 600,
- /**/
-
---
-In a world without walls and borders, who needs windows and gates?
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.601
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.601
-Problem: Bad code style.
-Solution: Insert space, remove parens.
-Files: src/farsi.c
-
-
-*** ../vim-7.3.600/src/farsi.c 2010-08-15 21:57:28.000000000 +0200
---- src/farsi.c 2012-07-12 21:59:15.000000000 +0200
-***************
-*** 1813,1819 ****
- ptr[i] = toF_leading(ptr[i]);
- ++i;
-
-! while(canF_Rjoin(ptr[i]) && (i < llen))
- {
- ptr[i] = toF_Rjoin(ptr[i]);
- if (F_isterm(ptr[i]) || !F_isalpha(ptr[i]))
---- 1813,1819 ----
- ptr[i] = toF_leading(ptr[i]);
- ++i;
-
-! while (canF_Rjoin(ptr[i]) && i < llen)
- {
- ptr[i] = toF_Rjoin(ptr[i]);
- if (F_isterm(ptr[i]) || !F_isalpha(ptr[i]))
-*** ../vim-7.3.600/src/version.c 2012-07-10 19:25:06.000000000 +0200
---- src/version.c 2012-07-16 17:25:48.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 601,
- /**/
-
---
-There are three kinds of persons: Those who can count and those who can't.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.602
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.602
-Problem: Missing files in distribution.
-Solution: Update the list of files.
-Files: Filelist
-
-
-*** ../vim-7.3.601/Filelist 2011-10-20 16:35:25.000000000 +0200
---- Filelist 2012-06-20 12:06:41.000000000 +0200
-***************
-*** 463,468 ****
---- 463,469 ----
- runtime/macros/hanoi/hanoi.vim \
- runtime/macros/hanoi/poster \
- runtime/macros/justify.vim \
-+ runtime/macros/less.bat \
- runtime/macros/less.sh \
- runtime/macros/less.vim \
- runtime/macros/life/click.me \
-***************
-*** 666,671 ****
---- 667,674 ----
-
- # generic language files
- LANG_GEN = \
-+ runtime/doc/*-de.1 \
-+ runtime/doc/*-de.UTF-8.1 \
- runtime/doc/*-fr.1 \
- runtime/doc/*-fr.UTF-8.1 \
- runtime/doc/*-it.1 \
-*** ../vim-7.3.601/src/version.c 2012-07-16 17:26:18.000000000 +0200
---- src/version.c 2012-07-16 17:27:31.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 602,
- /**/
-
---
-Never eat yellow snow.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.603
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.603
-Problem: It is possible to add replace builtin functions by calling
- extend() on g:.
-Solution: Add a flag to a dict to indicate it is a scope. Check for
- existing functions. (ZyX)
-Files: src/buffer.c, src/eval.c, src/proto/eval.pro, src/structs.h,
- src/testdir/test34.in, src/testdir/test34.ok, src/window.c
-
-
-*** ../vim-7.3.602/src/buffer.c 2012-07-10 15:18:18.000000000 +0200
---- src/buffer.c 2012-07-16 16:52:58.000000000 +0200
-***************
-*** 1747,1753 ****
- buf->b_wininfo->wi_win = curwin;
-
- #ifdef FEAT_EVAL
-! init_var_dict(&buf->b_vars, &buf->b_bufvar); /* init b: variables */
- #endif
- #ifdef FEAT_SYN_HL
- hash_init(&buf->b_s.b_keywtab);
---- 1747,1754 ----
- buf->b_wininfo->wi_win = curwin;
-
- #ifdef FEAT_EVAL
-! /* init b: variables */
-! init_var_dict(&buf->b_vars, &buf->b_bufvar, VAR_SCOPE);
- #endif
- #ifdef FEAT_SYN_HL
- hash_init(&buf->b_s.b_keywtab);
-*** ../vim-7.3.602/src/eval.c 2012-07-10 13:41:09.000000000 +0200
---- src/eval.c 2012-07-16 17:18:11.000000000 +0200
-***************
-*** 850,857 ****
- int i;
- struct vimvar *p;
-
-! init_var_dict(&globvardict, &globvars_var);
-! init_var_dict(&vimvardict, &vimvars_var);
- vimvardict.dv_lock = VAR_FIXED;
- hash_init(&compat_hashtab);
- hash_init(&func_hashtab);
---- 850,857 ----
- int i;
- struct vimvar *p;
-
-! init_var_dict(&globvardict, &globvars_var, VAR_DEF_SCOPE);
-! init_var_dict(&vimvardict, &vimvars_var, VAR_SCOPE);
- vimvardict.dv_lock = VAR_FIXED;
- hash_init(&compat_hashtab);
- hash_init(&func_hashtab);
-***************
-*** 2725,2738 ****
- lp->ll_dict = lp->ll_tv->vval.v_dict;
- lp->ll_di = dict_find(lp->ll_dict, key, len);
-
-! /* When assigning to g: check that a function and variable name is
-! * valid. */
-! if (rettv != NULL && lp->ll_dict == &globvardict)
- {
-! if (rettv->v_type == VAR_FUNC
- && var_check_func_name(key, lp->ll_di == NULL))
-! return NULL;
-! if (!valid_varname(key))
- return NULL;
- }
-
---- 2725,2750 ----
- lp->ll_dict = lp->ll_tv->vval.v_dict;
- lp->ll_di = dict_find(lp->ll_dict, key, len);
-
-! /* When assigning to a scope dictionary check that a function and
-! * variable name is valid (only variable name unless it is l: or
-! * g: dictionary). Disallow overwriting a builtin function. */
-! if (rettv != NULL && lp->ll_dict->dv_scope != 0)
- {
-! int prevval;
-! int wrong;
-!
-! if (len != -1)
-! {
-! prevval = key[len];
-! key[len] = NUL;
-! }
-! wrong = (lp->ll_dict->dv_scope == VAR_DEF_SCOPE
-! && rettv->v_type == VAR_FUNC
- && var_check_func_name(key, lp->ll_di == NULL))
-! || !valid_varname(key);
-! if (len != -1)
-! key[len] = prevval;
-! if (wrong)
- return NULL;
- }
-
-***************
-*** 6951,6957 ****
- d = (dict_T *)alloc(sizeof(dict_T));
- if (d != NULL)
- {
-! /* Add the list to the list of dicts for garbage collection. */
- if (first_dict != NULL)
- first_dict->dv_used_prev = d;
- d->dv_used_next = first_dict;
---- 6963,6969 ----
- d = (dict_T *)alloc(sizeof(dict_T));
- if (d != NULL)
- {
-! /* Add the dict to the list of dicts for garbage collection. */
- if (first_dict != NULL)
- first_dict->dv_used_prev = d;
- d->dv_used_next = first_dict;
-***************
-*** 6960,6965 ****
---- 6972,6978 ----
-
- hash_init(&d->dv_hashtab);
- d->dv_lock = 0;
-+ d->dv_scope = 0;
- d->dv_refcount = 0;
- d->dv_copyID = 0;
- }
-***************
-*** 10203,10208 ****
---- 10216,10234 ----
- {
- --todo;
- di1 = dict_find(d1, hi2->hi_key, -1);
-+ if (d1->dv_scope != 0)
-+ {
-+ /* Disallow replacing a builtin function in l: and g:.
-+ * Check the key to be valid when adding to any
-+ * scope. */
-+ if (d1->dv_scope == VAR_DEF_SCOPE
-+ && HI2DI(hi2)->di_tv.v_type == VAR_FUNC
-+ && var_check_func_name(hi2->hi_key,
-+ di1 == NULL))
-+ break;
-+ if (!valid_varname(hi2->hi_key))
-+ break;
-+ }
- if (di1 == NULL)
- {
- di1 = dictitem_copy(HI2DI(hi2));
-***************
-*** 20027,20033 ****
- {
- sv = SCRIPT_SV(ga_scripts.ga_len + 1) =
- (scriptvar_T *)alloc_clear(sizeof(scriptvar_T));
-! init_var_dict(&sv->sv_dict, &sv->sv_var);
- ++ga_scripts.ga_len;
- }
- }
---- 20053,20059 ----
- {
- sv = SCRIPT_SV(ga_scripts.ga_len + 1) =
- (scriptvar_T *)alloc_clear(sizeof(scriptvar_T));
-! init_var_dict(&sv->sv_dict, &sv->sv_var, VAR_SCOPE);
- ++ga_scripts.ga_len;
- }
- }
-***************
-*** 20038,20049 ****
- * point to it.
- */
- void
-! init_var_dict(dict, dict_var)
- dict_T *dict;
- dictitem_T *dict_var;
- {
- hash_init(&dict->dv_hashtab);
- dict->dv_lock = 0;
- dict->dv_refcount = DO_NOT_FREE_CNT;
- dict->dv_copyID = 0;
- dict_var->di_tv.vval.v_dict = dict;
---- 20064,20077 ----
- * point to it.
- */
- void
-! init_var_dict(dict, dict_var, scope)
- dict_T *dict;
- dictitem_T *dict_var;
-+ int scope;
- {
- hash_init(&dict->dv_hashtab);
- dict->dv_lock = 0;
-+ dict->dv_scope = scope;
- dict->dv_refcount = DO_NOT_FREE_CNT;
- dict->dv_copyID = 0;
- dict_var->di_tv.vval.v_dict = dict;
-***************
-*** 22304,22310 ****
- /*
- * Init l: variables.
- */
-! init_var_dict(&fc->l_vars, &fc->l_vars_var);
- if (selfdict != NULL)
- {
- /* Set l:self to "selfdict". Use "name" to avoid a warning from
---- 22332,22338 ----
- /*
- * Init l: variables.
- */
-! init_var_dict(&fc->l_vars, &fc->l_vars_var, VAR_DEF_SCOPE);
- if (selfdict != NULL)
- {
- /* Set l:self to "selfdict". Use "name" to avoid a warning from
-***************
-*** 22325,22331 ****
- * Set a:0 to "argcount".
- * Set a:000 to a list with room for the "..." arguments.
- */
-! init_var_dict(&fc->l_avars, &fc->l_avars_var);
- add_nr_var(&fc->l_avars, &fc->fixvar[fixvar_idx++].var, "0",
- (varnumber_T)(argcount - fp->uf_args.ga_len));
- /* Use "name" to avoid a warning from some compiler that checks the
---- 22353,22359 ----
- * Set a:0 to "argcount".
- * Set a:000 to a list with room for the "..." arguments.
- */
-! init_var_dict(&fc->l_avars, &fc->l_avars_var, VAR_SCOPE);
- add_nr_var(&fc->l_avars, &fc->fixvar[fixvar_idx++].var, "0",
- (varnumber_T)(argcount - fp->uf_args.ga_len));
- /* Use "name" to avoid a warning from some compiler that checks the
-*** ../vim-7.3.602/src/proto/eval.pro 2012-06-29 12:54:32.000000000 +0200
---- src/proto/eval.pro 2012-07-16 16:55:16.000000000 +0200
-***************
-*** 93,99 ****
- char_u *get_tv_string_chk __ARGS((typval_T *varp));
- char_u *get_var_value __ARGS((char_u *name));
- void new_script_vars __ARGS((scid_T id));
-! void init_var_dict __ARGS((dict_T *dict, dictitem_T *dict_var));
- void vars_clear __ARGS((hashtab_T *ht));
- void copy_tv __ARGS((typval_T *from, typval_T *to));
- void ex_echo __ARGS((exarg_T *eap));
---- 93,99 ----
- char_u *get_tv_string_chk __ARGS((typval_T *varp));
- char_u *get_var_value __ARGS((char_u *name));
- void new_script_vars __ARGS((scid_T id));
-! void init_var_dict __ARGS((dict_T *dict, dictitem_T *dict_var, int scope));
- void vars_clear __ARGS((hashtab_T *ht));
- void copy_tv __ARGS((typval_T *from, typval_T *to));
- void ex_echo __ARGS((exarg_T *eap));
-*** ../vim-7.3.602/src/structs.h 2012-06-06 19:02:40.000000000 +0200
---- src/structs.h 2012-07-16 16:56:43.000000000 +0200
-***************
-*** 1106,1111 ****
---- 1106,1116 ----
- #define VAR_DICT 5 /* "v_dict" is used */
- #define VAR_FLOAT 6 /* "v_float" is used */
-
-+ /* Values for "dv_scope". */
-+ #define VAR_SCOPE 1 /* a:, v:, s:, etc. scope dictionaries */
-+ #define VAR_DEF_SCOPE 2 /* l:, g: scope dictionaries: here funcrefs are not
-+ allowed to mask existing functions */
-+
- /* Values for "v_lock". */
- #define VAR_LOCKED 1 /* locked with lock(), can use unlock() */
- #define VAR_FIXED 2 /* locked forever */
-***************
-*** 1181,1186 ****
---- 1186,1192 ----
- int dv_copyID; /* ID used by deepcopy() */
- dict_T *dv_copydict; /* copied dict used by deepcopy() */
- char dv_lock; /* zero, VAR_LOCKED, VAR_FIXED */
-+ char dv_scope; /* zero, VAR_SCOPE, VAR_DEF_SCOPE */
- dict_T *dv_used_next; /* next dict in used dicts list */
- dict_T *dv_used_prev; /* previous dict in used dicts list */
- };
-*** ../vim-7.3.602/src/testdir/test34.in 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test34.in 2012-07-16 16:51:29.000000000 +0200
-***************
-*** 1,5 ****
---- 1,6 ----
- Test for user functions.
- Also test an <expr> mapping calling a function.
-+ Also test that a builtin function cannot be replaced.
-
- STARTTEST
- :so small.vim
-***************
-*** 58,64 ****
- ---*---
- (one
- (two
-! [(one again:$-5,$w! test.out
- :delfunc Table
- :delfunc Compute
- :delfunc Expr1
---- 59,68 ----
- ---*---
- (one
- (two
-! [(one again:call append(line('$'), max([1, 2, 3]))
-! :call extend(g:, {'max': function('min')})
-! :call append(line('$'), max([1, 2, 3]))
-! :$-7,$w! test.out
- :delfunc Table
- :delfunc Compute
- :delfunc Expr1
-*** ../vim-7.3.602/src/testdir/test34.ok 2011-10-12 22:02:07.000000000 +0200
---- src/testdir/test34.ok 2012-07-16 16:43:15.000000000 +0200
-***************
-*** 4,6 ****
---- 4,8 ----
- 1. one
- 2. two
- 1. one again
-+ 3
-+ 3
-*** ../vim-7.3.602/src/window.c 2012-07-06 18:27:34.000000000 +0200
---- src/window.c 2012-07-16 16:53:45.000000000 +0200
-***************
-*** 3468,3474 ****
- # endif
- #ifdef FEAT_EVAL
- /* init t: variables */
-! init_var_dict(&tp->tp_vars, &tp->tp_winvar);
- #endif
- tp->tp_ch_used = p_ch;
- }
---- 3468,3474 ----
- # endif
- #ifdef FEAT_EVAL
- /* init t: variables */
-! init_var_dict(&tp->tp_vars, &tp->tp_winvar, VAR_SCOPE);
- #endif
- tp->tp_ch_used = p_ch;
- }
-***************
-*** 4410,4416 ****
- #endif
- #ifdef FEAT_EVAL
- /* init w: variables */
-! init_var_dict(&new_wp->w_vars, &new_wp->w_winvar);
- #endif
- #ifdef FEAT_FOLDING
- foldInitWin(new_wp);
---- 4410,4416 ----
- #endif
- #ifdef FEAT_EVAL
- /* init w: variables */
-! init_var_dict(&new_wp->w_vars, &new_wp->w_winvar, VAR_SCOPE);
- #endif
- #ifdef FEAT_FOLDING
- foldInitWin(new_wp);
-*** ../vim-7.3.602/src/version.c 2012-07-16 17:27:57.000000000 +0200
---- src/version.c 2012-07-16 17:29:06.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 603,
- /**/
-
---
-Birthdays are healthy. The more you have them, the longer you live.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.604
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.604
-Problem: inputdialog() doesn't use the cancel argument in the console.
- (David Fishburn)
-Solution: Use the third argument. (Christian Brabant)
-Files: src/eval.c
-
-
-*** ../vim-7.3.603/src/eval.c 2012-07-16 17:31:48.000000000 +0200
---- src/eval.c 2012-07-16 19:20:47.000000000 +0200
-***************
-*** 12940,12945 ****
---- 12940,12946 ----
- int xp_namelen;
- long argt;
-
-+ /* input() with a third argument: completion */
- rettv->vval.v_string = NULL;
-
- xp_name = get_tv_string_buf_chk(&argvars[2], buf);
-***************
-*** 12958,12963 ****
---- 12959,12969 ----
- rettv->vval.v_string =
- getcmdline_prompt(inputsecret_flag ? NUL : '@', p, echo_attr,
- xp_type, xp_arg);
-+ if (rettv->vval.v_string == NULL
-+ && argvars[1].v_type != VAR_UNKNOWN
-+ && argvars[2].v_type != VAR_UNKNOWN)
-+ rettv->vval.v_string = vim_strsave(get_tv_string_buf(
-+ &argvars[2], buf));
-
- vim_free(xp_arg);
-
-*** ../vim-7.3.603/src/version.c 2012-07-16 17:31:48.000000000 +0200
---- src/version.c 2012-07-16 19:23:11.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 604,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-135. You cut classes or miss work so you can stay home and browse the web.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.605
-Fcc: 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.605 (after 7.3.577)
-Problem: MS-Windows: Can't compile with older compilers. (Titov Anatoly)
-Solution: Add #ifdef for MEMORYSTATUSEX.
-Files: src/os_win32.c
-
-
-*** ../vim-7.3.604/src/os_win32.c 2012-06-29 15:51:26.000000000 +0200
---- src/os_win32.c 2012-07-19 11:35:00.000000000 +0200
-***************
-*** 4999,5020 ****
- long_u
- mch_avail_mem(int special)
- {
-! if (g_PlatformId != VER_PLATFORM_WIN32_NT)
-! {
-! MEMORYSTATUS ms;
-!
-! ms.dwLength = sizeof(MEMORYSTATUS);
-! GlobalMemoryStatus(&ms);
-! return (long_u)((ms.dwAvailPhys + ms.dwAvailPageFile) >> 10);
-! }
-! else
- {
- MEMORYSTATUSEX ms;
-
- ms.dwLength = sizeof(MEMORYSTATUSEX);
- GlobalMemoryStatusEx(&ms);
- return (long_u)((ms.ullAvailPhys + ms.ullAvailPageFile) >> 10);
- }
- }
-
- #ifdef FEAT_MBYTE
---- 4999,5025 ----
- long_u
- mch_avail_mem(int special)
- {
-! #ifdef MEMORYSTATUSEX
-! PlatformId();
-! if (g_PlatformId == VER_PLATFORM_WIN32_NT)
- {
- MEMORYSTATUSEX ms;
-
-+ /* Need to use GlobalMemoryStatusEx() when there is more memory than
-+ * what fits in 32 bits. But it's not always available. */
- ms.dwLength = sizeof(MEMORYSTATUSEX);
- GlobalMemoryStatusEx(&ms);
- return (long_u)((ms.ullAvailPhys + ms.ullAvailPageFile) >> 10);
- }
-+ else
-+ #endif
-+ {
-+ MEMORYSTATUS ms;
-+
-+ ms.dwLength = sizeof(MEMORYSTATUS);
-+ GlobalMemoryStatus(&ms);
-+ return (long_u)((ms.dwAvailPhys + ms.dwAvailPageFile) >> 10);
-+ }
- }
-
- #ifdef FEAT_MBYTE
-*** ../vim-7.3.604/src/version.c 2012-07-16 19:27:25.000000000 +0200
---- src/version.c 2012-07-19 11:36:12.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 605,
- /**/
-
---
-Fingers not found - Pound head on keyboard 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.606
-Fcc: 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.606
-Problem: CTRL-P completion has a problem with multi-byte characters.
-Solution: Check for next character being NUL properly. (Yasuhiro Matsumoto)
-Files: src/search.c, src/macros.h
-
-
-*** ../vim-7.3.605/src/search.c 2012-06-06 16:12:54.000000000 +0200
---- src/search.c 2012-07-19 17:09:20.000000000 +0200
-***************
-*** 5141,5147 ****
- && !(compl_cont_status & CONT_SOL)
- #endif
- && *startp != NUL
-! && *(p = startp + 1) != NUL)
- goto search_line;
- }
- line_breakcheck();
---- 5141,5147 ----
- && !(compl_cont_status & CONT_SOL)
- #endif
- && *startp != NUL
-! && *(p = startp + MB_PTR2LEN(startp)) != NUL)
- goto search_line;
- }
- line_breakcheck();
-*** ../vim-7.3.605/src/macros.h 2010-09-21 16:56:29.000000000 +0200
---- src/macros.h 2012-07-19 17:08:38.000000000 +0200
-***************
-*** 259,264 ****
---- 259,266 ----
- * PTR2CHAR(): get character from pointer.
- */
- #ifdef FEAT_MBYTE
-+ /* Get the length of the character p points to */
-+ # define MB_PTR2LEN(p) (has_mbyte ? (*mb_ptr2len)(p) : 1)
- /* Advance multi-byte pointer, skip over composing chars. */
- # define mb_ptr_adv(p) p += has_mbyte ? (*mb_ptr2len)(p) : 1
- /* Advance multi-byte pointer, do not skip over composing chars. */
-***************
-*** 272,277 ****
---- 274,280 ----
- # define MB_CHARLEN(p) (has_mbyte ? mb_charlen(p) : (int)STRLEN(p))
- # define PTR2CHAR(p) (has_mbyte ? mb_ptr2char(p) : (int)*(p))
- #else
-+ # define MB_PTR2LEN(p) 1
- # define mb_ptr_adv(p) ++p
- # define mb_cptr_adv(p) ++p
- # define mb_ptr_back(s, p) --p
-*** ../vim-7.3.605/src/version.c 2012-07-19 11:37:22.000000000 +0200
---- src/version.c 2012-07-19 17:13:53.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 606,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-151. You find yourself engaged to someone you've never actually met,
- except through e-mail.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.607
-Fcc: 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.607
-Problem: With an 8 color terminal the selected menu item is black on black,
- because darkGrey as bg is the same as black.
-Solution: Swap fg and bg colors. (James McCoy)
-Files: src/syntax.c
-
-
-*** ../vim-7.3.606/src/syntax.c 2012-06-01 13:18:48.000000000 +0200
---- src/syntax.c 2012-07-19 17:34:42.000000000 +0200
-***************
-*** 6653,6660 ****
- "PmenuThumb ctermbg=White guibg=White"),
- CENT("Pmenu ctermbg=Magenta ctermfg=Black",
- "Pmenu ctermbg=Magenta ctermfg=Black guibg=Magenta"),
-! CENT("PmenuSel ctermbg=DarkGrey ctermfg=Black",
-! "PmenuSel ctermbg=DarkGrey ctermfg=Black guibg=DarkGrey"),
- #endif
- CENT("Title term=bold ctermfg=LightMagenta",
- "Title term=bold ctermfg=LightMagenta gui=bold guifg=Magenta"),
---- 6653,6660 ----
- "PmenuThumb ctermbg=White guibg=White"),
- CENT("Pmenu ctermbg=Magenta ctermfg=Black",
- "Pmenu ctermbg=Magenta ctermfg=Black guibg=Magenta"),
-! CENT("PmenuSel ctermbg=Black ctermfg=DarkGrey",
-! "PmenuSel ctermbg=Black ctermfg=DarkGrey guibg=DarkGrey"),
- #endif
- CENT("Title term=bold ctermfg=LightMagenta",
- "Title term=bold ctermfg=LightMagenta gui=bold guifg=Magenta"),
-*** ../vim-7.3.606/src/version.c 2012-07-19 17:18:21.000000000 +0200
---- src/version.c 2012-07-19 17:38:05.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 607,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-152. You find yourself falling for someone you've never seen or hardly
- know, but, boy can he/she TYPE!!!!!!
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.608
-Fcc: 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.608
-Problem: winrestview() does not always restore the view correctly.
-Solution: Call win_new_height() and win_new_width(). (Lech Lorens)
-Files: src/eval.c, src/proto/window.pro, src/window.c
-
-
-*** ../vim-7.3.607/src/eval.c 2012-07-16 19:27:25.000000000 +0200
---- src/eval.c 2012-07-19 17:50:16.000000000 +0200
-***************
-*** 18601,18606 ****
---- 18601,18610 ----
- curwin->w_skipcol = get_dict_number(dict, (char_u *)"skipcol");
-
- check_cursor();
-+ win_new_height(curwin, curwin->w_height);
-+ # ifdef FEAT_VERTSPLIT
-+ win_new_width(curwin, W_WIDTH(curwin));
-+ # endif
- changed_window_setting();
-
- if (curwin->w_topline == 0)
-*** ../vim-7.3.607/src/proto/window.pro 2012-06-13 14:28:16.000000000 +0200
---- src/proto/window.pro 2012-07-19 18:05:10.000000000 +0200
-***************
-*** 51,56 ****
---- 51,58 ----
- void win_setminheight __ARGS((void));
- void win_drag_status_line __ARGS((win_T *dragwin, int offset));
- void win_drag_vsep_line __ARGS((win_T *dragwin, int offset));
-+ void win_new_height __ARGS((win_T *wp, int height));
-+ void win_new_width __ARGS((win_T *wp, int width));
- void win_comp_scroll __ARGS((win_T *wp));
- void command_height __ARGS((void));
- void last_status __ARGS((int morewin));
-*** ../vim-7.3.607/src/window.c 2012-07-16 17:31:48.000000000 +0200
---- src/window.c 2012-07-19 18:05:18.000000000 +0200
-***************
-*** 54,60 ****
- static void frame_insert __ARGS((frame_T *before, frame_T *frp));
- static void frame_remove __ARGS((frame_T *frp));
- #ifdef FEAT_VERTSPLIT
-- static void win_new_width __ARGS((win_T *wp, int width));
- static void win_goto_ver __ARGS((int up, long count));
- static void win_goto_hor __ARGS((int left, long count));
- #endif
---- 54,59 ----
-***************
-*** 71,77 ****
-
- 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 ":\\" */
---- 70,75 ----
-***************
-*** 5557,5563 ****
- * This takes care of the things inside the window, not what happens to the
- * window position, the frame or to other windows.
- */
-! static void
- win_new_height(wp, height)
- win_T *wp;
- int height;
---- 5555,5561 ----
- * This takes care of the things inside the window, not what happens to the
- * window position, the frame or to other windows.
- */
-! void
- win_new_height(wp, height)
- win_T *wp;
- int height;
-***************
-*** 5697,5703 ****
- /*
- * Set the width of a window.
- */
-! static void
- win_new_width(wp, width)
- win_T *wp;
- int width;
---- 5695,5701 ----
- /*
- * Set the width of a window.
- */
-! void
- win_new_width(wp, width)
- win_T *wp;
- int width;
-*** ../vim-7.3.607/src/version.c 2012-07-19 17:39:01.000000000 +0200
---- src/version.c 2012-07-19 17:53:37.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 608,
- /**/
-
---
-Although the scythe isn't pre-eminent among the weapons of war, anyone who
-has been on the wrong end of, say, a peasants' revolt will know that in
-skilled hands it is fearsome.
- -- (Terry Pratchett, Mort)
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.609
-Fcc: 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.609
-Problem: File names in :checkpath! output are garbled.
-Solution: Check for \zs in the pattern. (Lech Lorens)
-Files: src/search.c, src/testdir/test17.in, src/testdir/test17.ok
-
-
-*** ../vim-7.3.608/src/search.c 2012-07-19 17:18:21.000000000 +0200
---- src/search.c 2012-07-25 13:33:08.000000000 +0200
-***************
-*** 4740,4756 ****
- * Isolate the file name.
- * Include the surrounding "" or <> if present.
- */
-! for (p = incl_regmatch.endp[0]; !vim_isfilec(*p); p++)
-! ;
-! for (i = 0; vim_isfilec(p[i]); i++)
-! ;
- if (i == 0)
- {
- /* Nothing found, use the rest of the line. */
- p = incl_regmatch.endp[0];
- i = (int)STRLEN(p);
- }
-! else
- {
- if (p[-1] == '"' || p[-1] == '<')
- {
---- 4740,4772 ----
- * Isolate the file name.
- * Include the surrounding "" or <> if present.
- */
-! if (inc_opt != NULL
-! && strstr((char *)inc_opt, "\\zs") != NULL)
-! {
-! /* pattern contains \zs, use the match */
-! p = incl_regmatch.startp[0];
-! i = (int)(incl_regmatch.endp[0]
-! - incl_regmatch.startp[0]);
-! }
-! else
-! {
-! /* find the file name after the end of the match */
-! for (p = incl_regmatch.endp[0];
-! *p && !vim_isfilec(*p); p++)
-! ;
-! for (i = 0; vim_isfilec(p[i]); i++)
-! ;
-! }
-!
- if (i == 0)
- {
- /* Nothing found, use the rest of the line. */
- p = incl_regmatch.endp[0];
- i = (int)STRLEN(p);
- }
-! /* Avoid checking before the start of the line, can
-! * happen if \zs appears in the regexp. */
-! else if (p > line)
- {
- if (p[-1] == '"' || p[-1] == '<')
- {
-*** ../vim-7.3.608/src/testdir/test17.in 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test17.in 2012-07-25 13:41:43.000000000 +0200
-***************
-*** 1,4 ****
-! Tests for "gf" on ${VAR}
-
- STARTTEST
- :so small.vim
---- 1,6 ----
-! Tests for:
-! - "gf" on ${VAR},
-! - ":checkpath!" with various 'include' settings.
-
- STARTTEST
- :so small.vim
-***************
-*** 20,27 ****
- :endif
- gf
- :w! test.out
-! :qa!
- ENDTEST
-
- ${CDIR}/test17a.in
- $TDIR/test17a.in
---- 22,120 ----
- :endif
- gf
- :w! test.out
-! :brewind
- ENDTEST
-
- ${CDIR}/test17a.in
- $TDIR/test17a.in
-+
-+ STARTTEST
-+ :" check for 'include' without \zs or \ze
-+ :lang C
-+ :!rm -f ./Xbase.a
-+ :!rm -rf ./Xdir1
-+ :!mkdir -p Xdir1/dir2
-+ :e Xdir1/dir2/foo.a
-+ i#include "bar.a"
-+ :w
-+ :e Xdir1/dir2/bar.a
-+ i#include "baz.a"
-+ :w
-+ :e Xdir1/dir2/baz.a
-+ i#include "foo.a"
-+ :w
-+ :e Xbase.a
-+ :set path=Xdir1/dir2
-+ i#include <foo.a>
-+ :w
-+ :redir! >>test.out
-+ :checkpath!
-+ :redir END
-+ :brewind
-+ ENDTEST
-+
-+ STARTTEST
-+ :" check for 'include' with \zs and \ze
-+ :!rm -f ./Xbase.b
-+ :!rm -rf ./Xdir1
-+ :!mkdir -p Xdir1/dir2
-+ :let &include='^\s*%inc\s*/\zs[^/]\+\ze'
-+ :function! DotsToSlashes()
-+ : return substitute(v:fname, '\.', '/', 'g') . '.b'
-+ :endfunction
-+ :let &includeexpr='DotsToSlashes()'
-+ :e Xdir1/dir2/foo.b
-+ i%inc /bar/
-+ :w
-+ :e Xdir1/dir2/bar.b
-+ i%inc /baz/
-+ :w
-+ :e Xdir1/dir2/baz.b
-+ i%inc /foo/
-+ :w
-+ :e Xbase.b
-+ :set path=Xdir1/dir2
-+ i%inc /foo/
-+ :w
-+ :redir! >>test.out
-+ :checkpath!
-+ :redir END
-+ :brewind
-+ ENDTEST
-+
-+ STARTTEST
-+ :" check for 'include' with \zs and no \ze
-+ :!rm -f ./Xbase.c
-+ :!rm -rf ./Xdir1
-+ :!mkdir -p Xdir1/dir2
-+ :let &include='^\s*%inc\s*\%([[:upper:]][^[:space:]]*\s\+\)\?\zs\S\+\ze'
-+ :function! StripNewlineChar()
-+ : if v:fname =~ '\n$'
-+ : return v:fname[:-2]
-+ : endif
-+ : return v:fname
-+ :endfunction
-+ :let &includeexpr='StripNewlineChar()'
-+ :e Xdir1/dir2/foo.c
-+ i%inc bar.c
-+ :w
-+ :e Xdir1/dir2/bar.c
-+ i%inc baz.c
-+ :w
-+ :e Xdir1/dir2/baz.c
-+ i%inc foo.c
-+ :w
-+ :e Xdir1/dir2/FALSE.c
-+ i%inc foo.c
-+ :w
-+ :e Xbase.c
-+ :set path=Xdir1/dir2
-+ i%inc FALSE.c foo.c
-+ :w
-+ :redir! >>test.out
-+ :checkpath!
-+ :redir END
-+ :brewind
-+ :q
-+ ENDTEST
-+
-*** ../vim-7.3.608/src/testdir/test17.ok 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test17.ok 2012-07-25 13:45:37.000000000 +0200
-***************
-*** 1,3 ****
---- 1,33 ----
- This file is just to test "gf" in test 17.
- The contents is not important.
- Just testing!
-+
-+
-+ --- Included files in path ---
-+ Xdir1/dir2/foo.a
-+ Xdir1/dir2/foo.a -->
-+ Xdir1/dir2/bar.a
-+ Xdir1/dir2/bar.a -->
-+ Xdir1/dir2/baz.a
-+ Xdir1/dir2/baz.a -->
-+ "foo.a" (Already listed)
-+
-+
-+ --- Included files in path ---
-+ Xdir1/dir2/foo.b
-+ Xdir1/dir2/foo.b -->
-+ Xdir1/dir2/bar.b
-+ Xdir1/dir2/bar.b -->
-+ Xdir1/dir2/baz.b
-+ Xdir1/dir2/baz.b -->
-+ foo (Already listed)
-+
-+
-+ --- Included files in path ---
-+ Xdir1/dir2/foo.c
-+ Xdir1/dir2/foo.c -->
-+ Xdir1/dir2/bar.c
-+ Xdir1/dir2/bar.c -->
-+ Xdir1/dir2/baz.c
-+ Xdir1/dir2/baz.c -->
-+ foo.c^@ (Already listed)
-*** ../vim-7.3.608/src/version.c 2012-07-19 18:05:40.000000000 +0200
---- src/version.c 2012-07-25 13:38:54.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 609,
- /**/
-
---
-"The question of whether computers can think is just like the question
-of whether submarines can swim." -- Edsger W. Dijkstra
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.610
-Fcc: 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.610
-Problem: Cannot operate on the text that a search pattern matches.
-Solution: Add the "gn" and "gN" commands. (Christian Brabandt)
-Files: runtime/doc/index.txt, runtime/doc/visual.txt, src/normal.c,
- src/proto/search.pro, src/search.c, src/testdir/test53.in,
- src/testdir/test53.ok
-
-
-*** ../vim-7.3.609/runtime/doc/index.txt 2010-08-15 21:57:18.000000000 +0200
---- runtime/doc/index.txt 2012-07-25 14:27:20.000000000 +0200
-***************
-*** 719,726 ****
---- 719,729 ----
- |gH| gH start Select line mode
- |gI| gI 2 like "I", but always start in column 1
- |gJ| gJ 2 join lines without inserting space
-+ |gN| gN 1,2 find the previous match with the last used
-+ search pattern and Visually select it
- |gP| ["x]gP 2 put the text [from register x] before the
- cursor N times, leave the cursor after it
-+ |gQ| gQ switch to "Ex" mode with Vim editing
- |gR| gR 2 enter Virtual Replace mode
- |gU| gU{motion} 2 make Nmove text uppercase
- |gV| gV don't reselect the previous Visual area
-***************
-*** 750,755 ****
---- 753,760 ----
- lines down
- |gk| gk 1 like "k", but when 'wrap' on go N screen
- lines up
-+ |gn| gn 1,2 find the next match with the last used
-+ search pattern and Visually select it
- |gm| gm 1 go to character at middle of the screenline
- |go| go 1 cursor to byte N in the buffer
- |gp| ["x]gp 2 put the text [from register x] after the
-*** ../vim-7.3.609/runtime/doc/visual.txt 2010-08-15 21:57:16.000000000 +0200
---- runtime/doc/visual.txt 2012-07-25 14:42:22.000000000 +0200
-***************
-*** 94,99 ****
---- 99,116 ----
- After using "p" or "P" in Visual mode the text that
- was put will be selected.
-
-+ *gn* *v_gn*
-+ gn Search forward for the last used search pattern, like
-+ with `n`, and start Visual mode to select the match.
-+ If the cursor is on the match, visually selects it.
-+ If an operator is pending, operates on the match.
-+ E.g., "dgn" deletes the text of the next match.
-+ If Visual mode is active, extends the selection
-+ until the end of the next match.
-+
-+ *gN* *v_gN*
-+ gN Like |gn| but searches backward, like with `N`.
-+
- *<LeftMouse>*
- <LeftMouse> Set the current cursor position. If Visual mode is
- active it is stopped. Only when 'mouse' option is
-*** ../vim-7.3.609/src/normal.c 2012-07-10 16:49:08.000000000 +0200
---- src/normal.c 2012-07-25 14:31:40.000000000 +0200
-***************
-*** 1780,1789 ****
- {
- /* Prepare for redoing. Only use the nchar field for "r",
- * otherwise it might be the second char of the operator. */
-! prep_redo(oap->regname, 0L, NUL, 'v',
-! get_op_char(oap->op_type),
-! get_extra_op_char(oap->op_type),
-! oap->op_type == OP_REPLACE ? cap->nchar : NUL);
- if (!redo_VIsual_busy)
- {
- redo_VIsual_mode = resel_VIsual_mode;
---- 1780,1797 ----
- {
- /* Prepare for redoing. Only use the nchar field for "r",
- * otherwise it might be the second char of the operator. */
-! if (cap->cmdchar == 'g' && (cap->nchar == 'n'
-! || cap->nchar == 'N'))
-! /* "gn" and "gN" are a bit different */
-! prep_redo(oap->regname, 0L, NUL, cap->cmdchar, cap->nchar,
-! get_op_char(oap->op_type),
-! get_extra_op_char(oap->op_type));
-! else
-! prep_redo(oap->regname, 0L, NUL, 'v',
-! get_op_char(oap->op_type),
-! get_extra_op_char(oap->op_type),
-! oap->op_type == OP_REPLACE
-! ? cap->nchar : NUL);
- if (!redo_VIsual_busy)
- {
- redo_VIsual_mode = resel_VIsual_mode;
-***************
-*** 7987,7992 ****
---- 7995,8011 ----
- cap->arg = TRUE;
- nv_visual(cap);
- break;
-+
-+ /* "gn", "gN" visually select next/previous search match
-+ * "gn" selects next match
-+ * "gN" selects previous match
-+ */
-+ case 'N':
-+ case 'n':
-+ if (!current_search(cap->count1, cap->nchar == 'n'))
-+ beep_flush();
-+
-+ break;
- #endif /* FEAT_VISUAL */
-
- /*
-*** ../vim-7.3.609/src/proto/search.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/search.pro 2012-07-25 14:24:01.000000000 +0200
-***************
-*** 27,32 ****
---- 27,33 ----
- int end_word __ARGS((long count, int bigword, int stop, int empty));
- int bckend_word __ARGS((long count, int bigword, int eol));
- int current_word __ARGS((oparg_T *oap, long count, int include, int bigword));
-+ int current_search __ARGS((long count, int forward));
- int current_sent __ARGS((oparg_T *oap, long count, int include));
- int current_block __ARGS((oparg_T *oap, long count, int include, int what, int other));
- int current_tagblock __ARGS((oparg_T *oap, long count_arg, int include));
-*** ../vim-7.3.609/src/search.c 2012-07-25 13:46:25.000000000 +0200
---- src/search.c 2012-07-25 14:54:28.000000000 +0200
-***************
-*** 3397,3402 ****
---- 3397,3547 ----
- return OK;
- }
-
-+ #if defined(FEAT_VISUAL) || defined(PROTO)
-+ /*
-+ * Find next search match under cursor, cursor at end.
-+ * Used while an operator is pending, and in Visual mode.
-+ * TODO: redo only works when used in operator pending mode
-+ */
-+ int
-+ current_search(count, forward)
-+ long count;
-+ int forward; /* move forward or backwards */
-+ {
-+ pos_T start_pos; /* position before the pattern */
-+ pos_T orig_pos; /* position of the cursor at beginning */
-+ pos_T pos; /* position after the pattern */
-+ int i;
-+ int dir;
-+ int result; /* result of various function calls */
-+ char_u old_p_ws = p_ws;
-+ int visual_active = FALSE;
-+ int flags = 0;
-+ pos_T save_VIsual;
-+
-+
-+ /* wrapping should not occur */
-+ p_ws = FALSE;
-+
-+ /* Correct cursor when 'selection' is exclusive */
-+ if (VIsual_active && *p_sel == 'e' && lt(VIsual, curwin->w_cursor))
-+ dec_cursor();
-+
-+ if (VIsual_active)
-+ {
-+ orig_pos = curwin->w_cursor;
-+ save_VIsual = VIsual;
-+ visual_active = TRUE;
-+
-+ /* just started visual selection, only one character */
-+ if (equalpos(VIsual, curwin->w_cursor))
-+ visual_active = FALSE;
-+
-+ pos = curwin->w_cursor;
-+ start_pos = VIsual;
-+
-+ /* make sure, searching further will extend the match */
-+ if (VIsual_active)
-+ {
-+ if (forward)
-+ incl(&pos);
-+ else
-+ decl(&pos);
-+ }
-+ }
-+ else
-+ orig_pos = pos = start_pos = curwin->w_cursor;
-+
-+ /*
-+ * The trick is to first search backwards and then search forward again,
-+ * so that a match at the current cursor position will be correctly
-+ * captured.
-+ */
-+ for (i = 0; i < 2; i++)
-+ {
-+ if (i && count == 1)
-+ flags = SEARCH_START;
-+
-+ if (forward)
-+ dir = i;
-+ else
-+ dir = !i;
-+ result = searchit(curwin, curbuf, &pos, (dir ? FORWARD : BACKWARD),
-+ spats[last_idx].pat, (long) (i ? count : 1),
-+ SEARCH_KEEP | flags | (dir ? 0 : SEARCH_END),
-+ RE_SEARCH, 0, NULL);
-+
-+ /* First search may fail, but then start searching from the
-+ * beginning of the file (cursor might be on the search match)
-+ * except when Visual mode is active, so that extending the visual
-+ * selection works. */
-+ if (!result && i) /* not found, abort */
-+ {
-+ curwin->w_cursor = orig_pos;
-+ if (VIsual_active)
-+ VIsual = save_VIsual;
-+ p_ws = old_p_ws;
-+ return FAIL;
-+ }
-+ else if (!i && !result && !visual_active)
-+ {
-+ if (forward) /* try again from start of buffer */
-+ {
-+ clearpos(&pos);
-+ }
-+ else /* try again from end of buffer */
-+ {
-+ /* searching backwards, so set pos to last line and col */
-+ pos.lnum = curwin->w_buffer->b_ml.ml_line_count;
-+ pos.col = STRLEN(ml_get(curwin->w_buffer->b_ml.ml_line_count));
-+ }
-+ }
-+
-+ }
-+
-+ start_pos = pos;
-+ flags = (forward ? SEARCH_END : 0);
-+
-+ /* move to match */
-+ result = searchit(curwin, curbuf, &pos, (forward ? FORWARD : BACKWARD),
-+ spats[last_idx].pat, 0L, flags | SEARCH_KEEP, RE_SEARCH, 0, NULL);
-+
-+ if (!VIsual_active)
-+ VIsual = start_pos;
-+
-+ p_ws = old_p_ws;
-+ curwin->w_cursor = pos;
-+ VIsual_active = TRUE;
-+ VIsual_mode = 'v';
-+
-+ if (VIsual_active)
-+ {
-+ redraw_curbuf_later(INVERTED); /* update the inversion */
-+ if (*p_sel == 'e' && ltoreq(VIsual, curwin->w_cursor))
-+ inc_cursor();
-+ }
-+
-+ #ifdef FEAT_FOLDING
-+ if (fdo_flags & FDO_SEARCH && KeyTyped)
-+ foldOpenCursor();
-+ #endif
-+
-+ may_start_select('c');
-+ #ifdef FEAT_MOUSE
-+ setmouse();
-+ #endif
-+ #ifdef FEAT_CLIPBOARD
-+ /* Make sure the clipboard gets updated. Needed because start and
-+ * end are still the same, and the selection needs to be owned */
-+ clip_star.vmode = NUL;
-+ #endif
-+ redraw_curbuf_later(INVERTED);
-+ showmode();
-+
-+ return OK;
-+ }
-+ #endif /* FEAT_VISUAL */
-+
- /*
- * Find sentence(s) under the cursor, cursor at end.
- * When Visual active, extend it by one or more sentences.
-***************
-*** 3420,3426 ****
-
- #ifdef FEAT_VISUAL
- /*
-! * When visual area is bigger than one character: Extend it.
- */
- if (VIsual_active && !equalpos(start_pos, VIsual))
- {
---- 3565,3571 ----
-
- #ifdef FEAT_VISUAL
- /*
-! * When the Visual area is bigger than one character: Extend it.
- */
- if (VIsual_active && !equalpos(start_pos, VIsual))
- {
-***************
-*** 3508,3515 ****
- #endif
-
- /*
-! * If cursor started on blank, check if it is just before the start of the
-! * next sentence.
- */
- while (c = gchar_pos(&pos), vim_iswhite(c)) /* vim_iswhite() is a macro */
- incl(&pos);
---- 3653,3660 ----
- #endif
-
- /*
-! * If the cursor started on a blank, check if it is just before the start
-! * of the next sentence.
- */
- while (c = gchar_pos(&pos), vim_iswhite(c)) /* vim_iswhite() is a macro */
- incl(&pos);
-***************
-*** 3558,3564 ****
- #ifdef FEAT_VISUAL
- if (VIsual_active)
- {
-! /* avoid getting stuck with "is" on a single space before a sent. */
- if (equalpos(start_pos, curwin->w_cursor))
- goto extend;
- if (*p_sel == 'e')
---- 3703,3709 ----
- #ifdef FEAT_VISUAL
- if (VIsual_active)
- {
-! /* Avoid getting stuck with "is" on a single space before a sentence. */
- if (equalpos(start_pos, curwin->w_cursor))
- goto extend;
- if (*p_sel == 'e')
-*** ../vim-7.3.609/src/testdir/test53.in 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test53.in 2012-07-25 15:01:34.000000000 +0200
-***************
-*** 28,33 ****
---- 28,40 ----
- :put =matchstr(\"abcd\", \".\", 0, -1) " a
- :put =match(\"abcd\", \".\", 0, 5) " -1
- :put =match(\"abcd\", \".\", 0, -1) " 0
-+ /^foobar
-+ gncsearchmatch/one\_s*two\_s
-+ :1
-+ gnd
-+ /[a]bcdx
-+ :1
-+ 2gnd
- :/^start:/,/^end:/wq! test.out
- ENDTEST
-
-***************
-*** 45,48 ****
---- 52,60 ----
- -<b>asdf<i>Xasdf</i>asdf</b>-
- -<b>asdX<i>as<b />df</i>asdf</b>-
- </begin>
-+ SEARCH:
-+ foobar
-+ one
-+ two
-+ abcdx | abcdx | abcdx
- end:
-*** ../vim-7.3.609/src/testdir/test53.ok 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test53.ok 2012-07-25 14:24:01.000000000 +0200
-***************
-*** 18,21 ****
---- 18,24 ----
- a
- -1
- 0
-+ SEARCH:
-+ searchmatch
-+ abcdx | | abcdx
- end:
-*** ../vim-7.3.609/src/version.c 2012-07-25 13:46:25.000000000 +0200
---- src/version.c 2012-07-25 15:03:43.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 610,
- /**/
-
---
-Did you ever see a "Hit any key to continue" message in a music piece?
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.611
-Fcc: 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.611
-Problem: Can't use Vim dictionary as self argument in Python.
-Solution: Fix the check for the "self" argument. (ZyX)
-Files: src/if_py_both.h
-
-
-*** ../vim-7.3.610/src/if_py_both.h 2012-06-30 13:34:29.000000000 +0200
---- src/if_py_both.h 2012-07-25 15:32:10.000000000 +0200
-***************
-*** 1284,1292 ****
- selfdictObject = PyDict_GetItemString(kwargs, "self");
- if (selfdictObject != NULL)
- {
-! if (!PyDict_Check(selfdictObject))
- {
-! PyErr_SetString(PyExc_TypeError, _("'self' argument must be a dictionary"));
- clear_tv(&args);
- return NULL;
- }
---- 1284,1293 ----
- selfdictObject = PyDict_GetItemString(kwargs, "self");
- if (selfdictObject != NULL)
- {
-! if (!PyMapping_Check(selfdictObject))
- {
-! PyErr_SetString(PyExc_TypeError,
-! _("'self' argument must be a dictionary"));
- clear_tv(&args);
- return NULL;
- }
-*** ../vim-7.3.610/src/version.c 2012-07-25 15:06:20.000000000 +0200
---- src/version.c 2012-07-25 15:32:24.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 611,
- /**/
-
---
-In Joseph Heller's novel "Catch-22", the main character tries to get out of a
-war by proving he is crazy. But the mere fact he wants to get out of the war
-only shows he isn't crazy -- creating the original "Catch-22".
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.612
-Fcc: 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.612
-Problem: Auto formatting messes up text when 'fo' contains "2". (ZyX)
-Solution: Decrement "less_cols". (Tor Perkins)
-Files: src/misc1.c, src/testdir/test68.in, src/testdir/test68.ok
-
-
-*** ../vim-7.3.611/src/misc1.c 2012-07-06 16:49:37.000000000 +0200
---- src/misc1.c 2012-07-25 16:03:58.000000000 +0200
-***************
-*** 1329,1334 ****
---- 1329,1335 ----
- for (i = 0; i < padding; i++)
- {
- STRCAT(leader, " ");
-+ less_cols--;
- newcol++;
- }
- }
-*** ../vim-7.3.611/src/testdir/test68.in 2012-06-29 15:04:34.000000000 +0200
---- src/testdir/test68.in 2012-07-25 15:57:06.000000000 +0200
-***************
-*** 94,99 ****
---- 94,109 ----
- }
-
- STARTTEST
-+ /mno pqr/
-+ :setl tw=20 fo=an12wcq comments=s1:/*,mb:*,ex:*/
-+ A vwx yz
-+ ENDTEST
-+
-+ /* abc def ghi jkl
-+ * mno pqr stu
-+ */
-+
-+ STARTTEST
- /^#/
- :setl tw=12 fo=tqnc comments=:#
- A foobar
-*** ../vim-7.3.611/src/testdir/test68.ok 2012-06-29 23:57:50.000000000 +0200
---- src/testdir/test68.ok 2012-07-25 16:03:05.000000000 +0200
-***************
-*** 57,62 ****
---- 57,68 ----
- { 1aa ^^2bb }
-
-
-+ /* abc def ghi jkl
-+ * mno pqr stu
-+ * vwx yz
-+ */
-+
-+
- # 1 xxxxx
- # foobar
-
-*** ../vim-7.3.611/src/version.c 2012-07-25 15:36:00.000000000 +0200
---- src/version.c 2012-07-25 16:08:02.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 612,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-169. You hire a housekeeper for your home page.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.613
-Fcc: 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.613
-Problem: Including Python's config.c in the build causes trouble. It is
- not clear why it was there.
-Solution: Omit the config file. (James McCoy)
-Files: src/Makefile, src/auto/configure, src/configure.in
-
-
-*** ../vim-7.3.612/src/Makefile 2012-06-20 18:39:12.000000000 +0200
---- src/Makefile 2012-07-25 16:22:57.000000000 +0200
-***************
-*** 2559,2577 ****
- objects/if_perlsfio.o: if_perlsfio.c
- $(CCC) $(PERL_CFLAGS) -o $@ if_perlsfio.c
-
-- objects/py_config.o: $(PYTHON_CONFDIR)/config.c
-- $(CCC) $(PYTHON_CFLAGS) -o $@ $(PYTHON_CONFDIR)/config.c \
-- -I$(PYTHON_CONFDIR) -DHAVE_CONFIG_H -DNO_MAIN
--
- objects/py_getpath.o: $(PYTHON_CONFDIR)/getpath.c
- $(CCC) $(PYTHON_CFLAGS) -o $@ $(PYTHON_CONFDIR)/getpath.c \
- -I$(PYTHON_CONFDIR) -DHAVE_CONFIG_H -DNO_MAIN \
- $(PYTHON_GETPATH_CFLAGS)
-
-- objects/py3_config.o: $(PYTHON3_CONFDIR)/config.c
-- $(CCC) $(PYTHON3_CFLAGS) -o $@ $(PYTHON3_CONFDIR)/config.c \
-- -I$(PYTHON3_CONFDIR) -DHAVE_CONFIG_H -DNO_MAIN
--
- objects/if_python.o: if_python.c if_py_both.h
- $(CCC) $(PYTHON_CFLAGS) $(PYTHON_CFLAGS_EXTRA) -o $@ if_python.c
-
---- 2559,2569 ----
-*** ../vim-7.3.612/src/auto/configure 2012-06-13 19:19:36.000000000 +0200
---- src/auto/configure 2012-07-25 16:23:49.000000000 +0200
-***************
-*** 5357,5367 ****
- 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
-! PYTHON_OBJ="objects/if_python.o"
-! else
-! PYTHON_OBJ="objects/if_python.o objects/py_config.o"
-! fi
- if test "${vi_cv_var_python_version}" = "1.4"; then
- PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
- fi
---- 5357,5363 ----
- 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"
-! PYTHON_OBJ="objects/if_python.o"
- if test "${vi_cv_var_python_version}" = "1.4"; then
- PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
- fi
-***************
-*** 5656,5666 ****
- PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
- fi
- PYTHON3_SRC="if_python3.c"
-! if test "x$MACOSX" = "xyes"; then
-! PYTHON3_OBJ="objects/if_python3.o"
-! else
-! PYTHON3_OBJ="objects/if_python3.o objects/py3_config.o"
-! fi
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -pthread should be used" >&5
- $as_echo_n "checking if -pthread should be used... " >&6; }
---- 5652,5658 ----
- PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
- fi
- PYTHON3_SRC="if_python3.c"
-! PYTHON3_OBJ="objects/if_python3.o"
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -pthread should be used" >&5
- $as_echo_n "checking if -pthread should be used... " >&6; }
-*** ../vim-7.3.612/src/configure.in 2012-06-13 19:19:36.000000000 +0200
---- src/configure.in 2012-07-25 16:23:41.000000000 +0200
-***************
-*** 916,927 ****
- 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.
-! if test "x$MACOSX" = "xyes"; then
-! PYTHON_OBJ="objects/if_python.o"
-! else
-! PYTHON_OBJ="objects/if_python.o objects/py_config.o"
-! fi
- if test "${vi_cv_var_python_version}" = "1.4"; then
- PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
- fi
---- 916,922 ----
- 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"
-! PYTHON_OBJ="objects/if_python.o"
- if test "${vi_cv_var_python_version}" = "1.4"; then
- PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
- fi
-***************
-*** 1106,1117 ****
- PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -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.
-! if test "x$MACOSX" = "xyes"; then
-! PYTHON3_OBJ="objects/if_python3.o"
-! else
-! PYTHON3_OBJ="objects/if_python3.o objects/py3_config.o"
-! fi
-
- dnl On FreeBSD linking with "-pthread" is required to use threads.
- dnl _THREAD_SAFE must be used for compiling then.
---- 1101,1107 ----
- PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
- fi
- PYTHON3_SRC="if_python3.c"
-! PYTHON3_OBJ="objects/if_python3.o"
-
- dnl On FreeBSD linking with "-pthread" is required to use threads.
- dnl _THREAD_SAFE must be used for compiling then.
-*** ../vim-7.3.612/src/version.c 2012-07-25 16:09:59.000000000 +0200
---- src/version.c 2012-07-25 16:29:52.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 613,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-170. You introduce your wife as "my_lady@home.wife" and refer to your
- children as "forked processes."
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.614
-Fcc: 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.614
-Problem: Number argument gets turned into a number while it should be a
- string.
-Solution: Add flag to the call_vim_function() call. (Yasuhiro Matsumoto)
-Files: src/edit.c, src/eval.c, src/proto/eval.pro
-
-
-*** ../vim-7.3.613/src/edit.c 2012-07-10 17:14:50.000000000 +0200
---- src/edit.c 2012-07-25 16:40:07.000000000 +0200
-***************
-*** 3959,3965 ****
- curbuf_save = curbuf;
-
- /* Call a function, which returns a list or dict. */
-! if (call_vim_function(funcname, 2, args, FALSE, &rettv) == OK)
- {
- switch (rettv.v_type)
- {
---- 3959,3965 ----
- curbuf_save = curbuf;
-
- /* Call a function, which returns a list or dict. */
-! if (call_vim_function(funcname, 2, args, FALSE, FALSE, &rettv) == OK)
- {
- switch (rettv.v_type)
- {
-*** ../vim-7.3.613/src/eval.c 2012-07-19 18:05:40.000000000 +0200
---- src/eval.c 2012-07-25 16:42:41.000000000 +0200
-***************
-*** 1564,1574 ****
- * Returns OK or FAIL.
- */
- int
-! call_vim_function(func, argc, argv, safe, rettv)
- char_u *func;
- int argc;
- char_u **argv;
- int safe; /* use the sandbox */
- typval_T *rettv;
- {
- typval_T *argvars;
---- 1564,1575 ----
- * Returns OK or FAIL.
- */
- int
-! call_vim_function(func, argc, argv, safe, str_arg_only, rettv)
- char_u *func;
- int argc;
- char_u **argv;
- int safe; /* use the sandbox */
-+ int str_arg_only; /* all arguments are strings */
- typval_T *rettv;
- {
- typval_T *argvars;
-***************
-*** 1593,1600 ****
- continue;
- }
-
-! /* Recognize a number argument, the others must be strings. */
-! vim_str2nr(argv[i], NULL, &len, TRUE, TRUE, &n, NULL);
- if (len != 0 && len == (int)STRLEN(argv[i]))
- {
- argvars[i].v_type = VAR_NUMBER;
---- 1594,1604 ----
- continue;
- }
-
-! if (str_arg_only)
-! len = 0;
-! else
-! /* Recognize a number argument, the others must be strings. */
-! vim_str2nr(argv[i], NULL, &len, TRUE, TRUE, &n, NULL);
- if (len != 0 && len == (int)STRLEN(argv[i]))
- {
- argvars[i].v_type = VAR_NUMBER;
-***************
-*** 1646,1652 ****
- typval_T rettv;
- char_u *retval;
-
-! if (call_vim_function(func, argc, argv, safe, &rettv) == FAIL)
- return NULL;
-
- retval = vim_strsave(get_tv_string(&rettv));
---- 1650,1657 ----
- typval_T rettv;
- char_u *retval;
-
-! /* All arguments are passed as strings, no conversion to number. */
-! if (call_vim_function(func, argc, argv, safe, TRUE, &rettv) == FAIL)
- return NULL;
-
- retval = vim_strsave(get_tv_string(&rettv));
-***************
-*** 1671,1677 ****
- typval_T rettv;
- long retval;
-
-! if (call_vim_function(func, argc, argv, safe, &rettv) == FAIL)
- return -1;
-
- retval = get_tv_number_chk(&rettv, NULL);
---- 1676,1683 ----
- typval_T rettv;
- long retval;
-
-! /* All arguments are passed as strings, no conversion to number. */
-! if (call_vim_function(func, argc, argv, safe, TRUE, &rettv) == FAIL)
- return -1;
-
- retval = get_tv_number_chk(&rettv, NULL);
-***************
-*** 1694,1700 ****
- {
- typval_T rettv;
-
-! if (call_vim_function(func, argc, argv, safe, &rettv) == FAIL)
- return NULL;
-
- if (rettv.v_type != VAR_LIST)
---- 1700,1707 ----
- {
- typval_T rettv;
-
-! /* All arguments are passed as strings, no conversion to number. */
-! if (call_vim_function(func, argc, argv, safe, TRUE, &rettv) == FAIL)
- return NULL;
-
- if (rettv.v_type != VAR_LIST)
-*** ../vim-7.3.613/src/proto/eval.pro 2012-07-16 17:31:48.000000000 +0200
---- src/proto/eval.pro 2012-07-25 16:42:59.000000000 +0200
-***************
-*** 23,29 ****
- list_T *eval_spell_expr __ARGS((char_u *badword, char_u *expr));
- int get_spellword __ARGS((list_T *list, char_u **pp));
- typval_T *eval_expr __ARGS((char_u *arg, char_u **nextcmd));
-! int call_vim_function __ARGS((char_u *func, int argc, char_u **argv, int safe, typval_T *rettv));
- void *call_func_retstr __ARGS((char_u *func, int argc, char_u **argv, int safe));
- long call_func_retnr __ARGS((char_u *func, int argc, char_u **argv, int safe));
- void *call_func_retlist __ARGS((char_u *func, int argc, char_u **argv, int safe));
---- 23,29 ----
- list_T *eval_spell_expr __ARGS((char_u *badword, char_u *expr));
- int get_spellword __ARGS((list_T *list, char_u **pp));
- typval_T *eval_expr __ARGS((char_u *arg, char_u **nextcmd));
-! int call_vim_function __ARGS((char_u *func, int argc, char_u **argv, int safe, int str_arg_only, typval_T *rettv));
- void *call_func_retstr __ARGS((char_u *func, int argc, char_u **argv, int safe));
- long call_func_retnr __ARGS((char_u *func, int argc, char_u **argv, int safe));
- void *call_func_retlist __ARGS((char_u *func, int argc, char_u **argv, int safe));
-*** ../vim-7.3.613/src/version.c 2012-07-25 16:32:03.000000000 +0200
---- src/version.c 2012-07-25 16:46:11.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 614,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-171. You invent another person and chat with yourself in empty chat rooms.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.615
-Fcc: 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.615
-Problem: Completion for a user command does not recognize backslash before
- a space.
-Solution: Recognize escaped characters. (Yasuhiro Matsumoto)
-Files: src/ex_docmd.c
-
-
-*** ../vim-7.3.614/src/ex_docmd.c 2012-07-10 19:25:06.000000000 +0200
---- src/ex_docmd.c 2012-07-25 17:10:16.000000000 +0200
-***************
-*** 3390,3401 ****
- return NULL;
-
- /* Find start of last argument (argument just before cursor): */
-! p = buff + STRLEN(buff);
-! while (p != arg && *p != ' ' && *p != TAB)
-! p--;
-! if (*p == ' ' || *p == TAB)
-! p++;
- xp->xp_pattern = p;
-
- if (ea.argt & XFILE)
- {
---- 3390,3412 ----
- return NULL;
-
- /* Find start of last argument (argument just before cursor): */
-! p = buff;
- xp->xp_pattern = p;
-+ len = STRLEN(buff);
-+ while (*p && p < buff + len)
-+ {
-+ if (*p == ' ' || *p == TAB)
-+ {
-+ /* argument starts after a space */
-+ xp->xp_pattern = ++p;
-+ }
-+ else
-+ {
-+ if (*p == '\\' && *(p + 1) != NUL)
-+ ++p; /* skip over escaped character */
-+ mb_ptr_adv(p);
-+ }
-+ }
-
- if (ea.argt & XFILE)
- {
-***************
-*** 3821,3828 ****
- if (compl == EXPAND_MAPPINGS)
- return set_context_in_map_cmd(xp, (char_u *)"map",
- arg, forceit, FALSE, FALSE, CMD_map);
-! while ((xp->xp_pattern = vim_strchr(arg, ' ')) != NULL)
-! arg = xp->xp_pattern + 1;
- xp->xp_pattern = arg;
- }
- xp->xp_context = compl;
---- 3832,3853 ----
- if (compl == EXPAND_MAPPINGS)
- return set_context_in_map_cmd(xp, (char_u *)"map",
- arg, forceit, FALSE, FALSE, CMD_map);
-! /* Find start of last argument. */
-! p = arg;
-! while (*p)
-! {
-! if (*p == ' ')
-! {
-! /* argument starts after a space */
-! arg = p + 1;
-! }
-! else
-! {
-! if (*p == '\\' && *(p + 1) != NUL)
-! ++p; /* skip over escaped character */
-! mb_ptr_adv(p);
-! }
-! }
- xp->xp_pattern = arg;
- }
- xp->xp_context = compl;
-*** ../vim-7.3.614/src/version.c 2012-07-25 16:46:59.000000000 +0200
---- src/version.c 2012-07-25 17:17:05.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 615,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-172. You join listservers just for the extra e-mail.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.616
-Fcc: 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.616 (after 7.3.610)
-Problem: Can't compile without +visual.
-Solution: Add #ifdef.
-Files: src/normal.c
-
-
-*** ../vim-7.3.615/src/normal.c 2012-07-25 15:06:20.000000000 +0200
---- src/normal.c 2012-07-27 20:52:01.000000000 +0200
-***************
-*** 8002,8008 ****
---- 8002,8010 ----
- */
- case 'N':
- case 'n':
-+ #ifdef FEAT_VISUAL
- if (!current_search(cap->count1, cap->nchar == 'n'))
-+ #endif
- beep_flush();
-
- break;
-*** ../vim-7.3.615/src/version.c 2012-07-25 17:22:17.000000000 +0200
---- src/version.c 2012-07-27 20:52:58.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 616,
- /**/
-
---
-The CIA drives around in cars with the "Intel inside" logo.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.617
-Fcc: 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.617 (after 7.3.615)
-Problem: Hang on completion.
-Solution: Skip over the space. (Yasuhiro Matsumoto)
-Files: src/ex_docmd.c
-
-
-*** ../vim-7.3.616/src/ex_docmd.c 2012-07-25 17:22:17.000000000 +0200
---- src/ex_docmd.c 2012-07-27 21:07:42.000000000 +0200
-***************
-*** 3837,3852 ****
- while (*p)
- {
- if (*p == ' ')
-- {
- /* argument starts after a space */
- arg = p + 1;
-! }
-! else
-! {
-! if (*p == '\\' && *(p + 1) != NUL)
-! ++p; /* skip over escaped character */
-! mb_ptr_adv(p);
-! }
- }
- xp->xp_pattern = arg;
- }
---- 3837,3847 ----
- while (*p)
- {
- if (*p == ' ')
- /* argument starts after a space */
- arg = p + 1;
-! else if (*p == '\\' && *(p + 1) != NUL)
-! ++p; /* skip over escaped character */
-! mb_ptr_adv(p);
- }
- xp->xp_pattern = arg;
- }
-*** ../vim-7.3.616/src/version.c 2012-07-27 21:05:51.000000000 +0200
---- src/version.c 2012-07-27 21:08:31.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 617,
- /**/
-
---
-If Microsoft would build a car...
-... You'd have to press the "Start" button to turn the engine off.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.618
-Fcc: 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.618 (after 7.3.616)
-Problem: Still doesn't compile with small features.
-Solution: Move current_search() out of #ifdef. (Dominique Pelle)
-Files: src/normal.c, src/search.c
-
-
-*** ../vim-7.3.617/src/normal.c 2012-07-27 21:05:51.000000000 +0200
---- src/normal.c 2012-07-28 13:34:13.000000000 +0200
-***************
-*** 7995,8000 ****
---- 7995,8001 ----
- cap->arg = TRUE;
- nv_visual(cap);
- break;
-+ #endif /* FEAT_VISUAL */
-
- /* "gn", "gN" visually select next/previous search match
- * "gn" selects next match
-***************
-*** 8006,8014 ****
- if (!current_search(cap->count1, cap->nchar == 'n'))
- #endif
- beep_flush();
--
- break;
-- #endif /* FEAT_VISUAL */
-
- /*
- * "gj" and "gk" two new funny movement keys -- up and down
---- 8007,8013 ----
-*** ../vim-7.3.617/src/search.c 2012-07-25 15:06:20.000000000 +0200
---- src/search.c 2012-07-28 13:37:19.000000000 +0200
-***************
-*** 3397,3547 ****
- return OK;
- }
-
-- #if defined(FEAT_VISUAL) || defined(PROTO)
-- /*
-- * Find next search match under cursor, cursor at end.
-- * Used while an operator is pending, and in Visual mode.
-- * TODO: redo only works when used in operator pending mode
-- */
-- int
-- current_search(count, forward)
-- long count;
-- int forward; /* move forward or backwards */
-- {
-- pos_T start_pos; /* position before the pattern */
-- pos_T orig_pos; /* position of the cursor at beginning */
-- pos_T pos; /* position after the pattern */
-- int i;
-- int dir;
-- int result; /* result of various function calls */
-- char_u old_p_ws = p_ws;
-- int visual_active = FALSE;
-- int flags = 0;
-- pos_T save_VIsual;
--
--
-- /* wrapping should not occur */
-- p_ws = FALSE;
--
-- /* Correct cursor when 'selection' is exclusive */
-- if (VIsual_active && *p_sel == 'e' && lt(VIsual, curwin->w_cursor))
-- dec_cursor();
--
-- if (VIsual_active)
-- {
-- orig_pos = curwin->w_cursor;
-- save_VIsual = VIsual;
-- visual_active = TRUE;
--
-- /* just started visual selection, only one character */
-- if (equalpos(VIsual, curwin->w_cursor))
-- visual_active = FALSE;
--
-- pos = curwin->w_cursor;
-- start_pos = VIsual;
--
-- /* make sure, searching further will extend the match */
-- if (VIsual_active)
-- {
-- if (forward)
-- incl(&pos);
-- else
-- decl(&pos);
-- }
-- }
-- else
-- orig_pos = pos = start_pos = curwin->w_cursor;
--
-- /*
-- * The trick is to first search backwards and then search forward again,
-- * so that a match at the current cursor position will be correctly
-- * captured.
-- */
-- for (i = 0; i < 2; i++)
-- {
-- if (i && count == 1)
-- flags = SEARCH_START;
--
-- if (forward)
-- dir = i;
-- else
-- dir = !i;
-- result = searchit(curwin, curbuf, &pos, (dir ? FORWARD : BACKWARD),
-- spats[last_idx].pat, (long) (i ? count : 1),
-- SEARCH_KEEP | flags | (dir ? 0 : SEARCH_END),
-- RE_SEARCH, 0, NULL);
--
-- /* First search may fail, but then start searching from the
-- * beginning of the file (cursor might be on the search match)
-- * except when Visual mode is active, so that extending the visual
-- * selection works. */
-- if (!result && i) /* not found, abort */
-- {
-- curwin->w_cursor = orig_pos;
-- if (VIsual_active)
-- VIsual = save_VIsual;
-- p_ws = old_p_ws;
-- return FAIL;
-- }
-- else if (!i && !result && !visual_active)
-- {
-- if (forward) /* try again from start of buffer */
-- {
-- clearpos(&pos);
-- }
-- else /* try again from end of buffer */
-- {
-- /* searching backwards, so set pos to last line and col */
-- pos.lnum = curwin->w_buffer->b_ml.ml_line_count;
-- pos.col = STRLEN(ml_get(curwin->w_buffer->b_ml.ml_line_count));
-- }
-- }
--
-- }
--
-- start_pos = pos;
-- flags = (forward ? SEARCH_END : 0);
--
-- /* move to match */
-- result = searchit(curwin, curbuf, &pos, (forward ? FORWARD : BACKWARD),
-- spats[last_idx].pat, 0L, flags | SEARCH_KEEP, RE_SEARCH, 0, NULL);
--
-- if (!VIsual_active)
-- VIsual = start_pos;
--
-- p_ws = old_p_ws;
-- curwin->w_cursor = pos;
-- VIsual_active = TRUE;
-- VIsual_mode = 'v';
--
-- if (VIsual_active)
-- {
-- redraw_curbuf_later(INVERTED); /* update the inversion */
-- if (*p_sel == 'e' && ltoreq(VIsual, curwin->w_cursor))
-- inc_cursor();
-- }
--
-- #ifdef FEAT_FOLDING
-- if (fdo_flags & FDO_SEARCH && KeyTyped)
-- foldOpenCursor();
-- #endif
--
-- may_start_select('c');
-- #ifdef FEAT_MOUSE
-- setmouse();
-- #endif
-- #ifdef FEAT_CLIPBOARD
-- /* Make sure the clipboard gets updated. Needed because start and
-- * end are still the same, and the selection needs to be owned */
-- clip_star.vmode = NUL;
-- #endif
-- redraw_curbuf_later(INVERTED);
-- showmode();
--
-- return OK;
-- }
-- #endif /* FEAT_VISUAL */
--
- /*
- * Find sentence(s) under the cursor, cursor at end.
- * When Visual active, extend it by one or more sentences.
---- 3397,3402 ----
-***************
-*** 4670,4675 ****
---- 4525,4675 ----
-
- #endif /* FEAT_TEXTOBJ */
-
-+ #if defined(FEAT_VISUAL) || defined(PROTO)
-+ /*
-+ * Find next search match under cursor, cursor at end.
-+ * Used while an operator is pending, and in Visual mode.
-+ * TODO: redo only works when used in operator pending mode
-+ */
-+ int
-+ current_search(count, forward)
-+ long count;
-+ int forward; /* move forward or backwards */
-+ {
-+ pos_T start_pos; /* position before the pattern */
-+ pos_T orig_pos; /* position of the cursor at beginning */
-+ pos_T pos; /* position after the pattern */
-+ int i;
-+ int dir;
-+ int result; /* result of various function calls */
-+ char_u old_p_ws = p_ws;
-+ int visual_active = FALSE;
-+ int flags = 0;
-+ pos_T save_VIsual;
-+
-+
-+ /* wrapping should not occur */
-+ p_ws = FALSE;
-+
-+ /* Correct cursor when 'selection' is exclusive */
-+ if (VIsual_active && *p_sel == 'e' && lt(VIsual, curwin->w_cursor))
-+ dec_cursor();
-+
-+ if (VIsual_active)
-+ {
-+ orig_pos = curwin->w_cursor;
-+ save_VIsual = VIsual;
-+ visual_active = TRUE;
-+
-+ /* just started visual selection, only one character */
-+ if (equalpos(VIsual, curwin->w_cursor))
-+ visual_active = FALSE;
-+
-+ pos = curwin->w_cursor;
-+ start_pos = VIsual;
-+
-+ /* make sure, searching further will extend the match */
-+ if (VIsual_active)
-+ {
-+ if (forward)
-+ incl(&pos);
-+ else
-+ decl(&pos);
-+ }
-+ }
-+ else
-+ orig_pos = pos = start_pos = curwin->w_cursor;
-+
-+ /*
-+ * The trick is to first search backwards and then search forward again,
-+ * so that a match at the current cursor position will be correctly
-+ * captured.
-+ */
-+ for (i = 0; i < 2; i++)
-+ {
-+ if (i && count == 1)
-+ flags = SEARCH_START;
-+
-+ if (forward)
-+ dir = i;
-+ else
-+ dir = !i;
-+ result = searchit(curwin, curbuf, &pos, (dir ? FORWARD : BACKWARD),
-+ spats[last_idx].pat, (long) (i ? count : 1),
-+ SEARCH_KEEP | flags | (dir ? 0 : SEARCH_END),
-+ RE_SEARCH, 0, NULL);
-+
-+ /* First search may fail, but then start searching from the
-+ * beginning of the file (cursor might be on the search match)
-+ * except when Visual mode is active, so that extending the visual
-+ * selection works. */
-+ if (!result && i) /* not found, abort */
-+ {
-+ curwin->w_cursor = orig_pos;
-+ if (VIsual_active)
-+ VIsual = save_VIsual;
-+ p_ws = old_p_ws;
-+ return FAIL;
-+ }
-+ else if (!i && !result && !visual_active)
-+ {
-+ if (forward) /* try again from start of buffer */
-+ {
-+ clearpos(&pos);
-+ }
-+ else /* try again from end of buffer */
-+ {
-+ /* searching backwards, so set pos to last line and col */
-+ pos.lnum = curwin->w_buffer->b_ml.ml_line_count;
-+ pos.col = STRLEN(ml_get(curwin->w_buffer->b_ml.ml_line_count));
-+ }
-+ }
-+
-+ }
-+
-+ start_pos = pos;
-+ flags = (forward ? SEARCH_END : 0);
-+
-+ /* move to match */
-+ result = searchit(curwin, curbuf, &pos, (forward ? FORWARD : BACKWARD),
-+ spats[last_idx].pat, 0L, flags | SEARCH_KEEP, RE_SEARCH, 0, NULL);
-+
-+ if (!VIsual_active)
-+ VIsual = start_pos;
-+
-+ p_ws = old_p_ws;
-+ curwin->w_cursor = pos;
-+ VIsual_active = TRUE;
-+ VIsual_mode = 'v';
-+
-+ if (VIsual_active)
-+ {
-+ redraw_curbuf_later(INVERTED); /* update the inversion */
-+ if (*p_sel == 'e' && ltoreq(VIsual, curwin->w_cursor))
-+ inc_cursor();
-+ }
-+
-+ #ifdef FEAT_FOLDING
-+ if (fdo_flags & FDO_SEARCH && KeyTyped)
-+ foldOpenCursor();
-+ #endif
-+
-+ may_start_select('c');
-+ #ifdef FEAT_MOUSE
-+ setmouse();
-+ #endif
-+ #ifdef FEAT_CLIPBOARD
-+ /* Make sure the clipboard gets updated. Needed because start and
-+ * end are still the same, and the selection needs to be owned */
-+ clip_star.vmode = NUL;
-+ #endif
-+ redraw_curbuf_later(INVERTED);
-+ showmode();
-+
-+ return OK;
-+ }
-+ #endif /* FEAT_VISUAL */
-+
- #if defined(FEAT_LISP) || defined(FEAT_CINDENT) || defined(FEAT_TEXTOBJ) \
- || defined(PROTO)
- /*
-*** ../vim-7.3.617/src/version.c 2012-07-27 21:12:03.000000000 +0200
---- src/version.c 2012-07-29 12:54:29.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 618,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-185. You order fast food over the Internet
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.619
-Fcc: 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.619
-Problem: When executing a shell command Vim may become slow to respond.
-Solution: Don't wait after every processed message. (idea by Yasuhiro
- Matsumoto)
-Files: src/os_win32.c
-
-
-*** ../vim-7.3.618/src/os_win32.c 2012-07-19 11:37:22.000000000 +0200
---- src/os_win32.c 2012-08-02 12:30:52.000000000 +0200
-***************
-*** 3319,3324 ****
---- 3319,3326 ----
- {
- TranslateMessage(&msg);
- pDispatchMessage(&msg);
-+ delay = 1;
-+ continue;
- }
- if (WaitForSingleObject(pi.hProcess, delay) != WAIT_TIMEOUT)
- break;
-*** ../vim-7.3.618/src/version.c 2012-07-29 12:55:21.000000000 +0200
---- src/version.c 2012-08-02 12:29:08.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 619,
- /**/
-
---
-Some of the well know MS-Windows errors:
- EMULTI Multitasking attempted, system confused
- EKEYBOARD Keyboard locked, try getting out of this one!
- EXPLAIN Unexplained error, please tell us what happened
- EFUTURE Reserved for our future mistakes
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.620
-Fcc: 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.620
-Problem: Building with recent Ruby on Win32 doesn't work.
-Solution: Add a separate argument for the API version. (Yasuhiro Matsumoto)
-Files: src/Make_ming.mak, src/Make_mvc.mak
-
-
-*** ../vim-7.3.619/src/Make_ming.mak 2012-07-06 13:40:44.000000000 +0200
---- src/Make_ming.mak 2012-08-02 17:02:34.000000000 +0200
-***************
-*** 260,266 ****
- # DYNAMIC_RUBY=yes (to load the Ruby DLL dynamically)
- # RUBY_VER=[Ruby version, eg 16, 17] (default is 16)
- # RUBY_VER_LONG=[Ruby version, eg 1.6, 1.7] (default is 1.6)
-! # You must set RUBY_VER_LONG when change RUBY_VER.
- #RUBY=c:/ruby
- ifdef RUBY
- ifndef DYNAMIC_RUBY
---- 260,268 ----
- # DYNAMIC_RUBY=yes (to load the Ruby DLL dynamically)
- # RUBY_VER=[Ruby version, eg 16, 17] (default is 16)
- # RUBY_VER_LONG=[Ruby version, eg 1.6, 1.7] (default is 1.6)
-! # You must set RUBY_VER_LONG when changing RUBY_VER.
-! # You must set RUBY_API_VER version to RUBY_VER_LONG.
-! # Don't set ruby API version to RUBY_VER like 191.
- #RUBY=c:/ruby
- ifdef RUBY
- ifndef DYNAMIC_RUBY
-***************
-*** 273,278 ****
---- 275,283 ----
- ifndef RUBY_VER_LONG
- RUBY_VER_LONG = 1.6
- endif
-+ ifndef RUBY_API_VER
-+ RUBY_API_VER = $(subst .,,$(RUBY_VER_LONG))
-+ endif
-
- ifndef RUBY_PLATFORM
- ifeq ($(RUBY_VER), 16)
-***************
-*** 288,296 ****
-
- ifndef RUBY_INSTALL_NAME
- ifeq ($(RUBY_VER), 16)
-! RUBY_INSTALL_NAME = mswin32-ruby$(RUBY_VER)
- else
-! RUBY_INSTALL_NAME = msvcrt-ruby$(RUBY_VER)
- endif
- endif
-
---- 293,301 ----
-
- ifndef RUBY_INSTALL_NAME
- ifeq ($(RUBY_VER), 16)
-! RUBY_INSTALL_NAME = mswin32-ruby$(RUBY_API_VER)
- else
-! RUBY_INSTALL_NAME = msvcrt-ruby$(RUBY_API_VER)
- endif
- endif
-
-*** ../vim-7.3.619/src/Make_mvc.mak 2012-02-22 16:01:53.000000000 +0100
---- src/Make_mvc.mak 2012-08-02 17:42:31.000000000 +0200
-***************
-*** 63,68 ****
---- 63,70 ----
- # RUBY_VER=[Ruby version, eg 16, 17] (default is 18)
- # RUBY_VER_LONG=[Ruby version, eg 1.6, 1.7] (default is 1.8)
- # You must set RUBY_VER_LONG when change RUBY_VER.
-+ # You must set RUBY_API_VER to RUBY_VER_LONG.
-+ # Don't set ruby API version to RUBY_VER like 191.
- #
- # Tcl interface:
- # TCL=[Path to Tcl directory]
-***************
-*** 807,834 ****
- !ifndef RUBY_VER_LONG
- RUBY_VER_LONG = 1.8
- !endif
-
- !if $(RUBY_VER) >= 18
- !ifndef RUBY_PLATFORM
- RUBY_PLATFORM = i386-mswin32
- !endif
- !ifndef RUBY_INSTALL_NAME
-! RUBY_INSTALL_NAME = msvcrt-ruby$(RUBY_VER)
- !endif
- !else
- !ifndef RUBY_PLATFORM
- RUBY_PLATFORM = i586-mswin32
- !endif
- !ifndef RUBY_INSTALL_NAME
-! RUBY_INSTALL_NAME = mswin32-ruby$(RUBY_VER)
- !endif
- !endif # $(RUBY_VER) >= 18
-
- !message Ruby requested (version $(RUBY_VER)) - root dir is "$(RUBY)"
- CFLAGS = $(CFLAGS) -DFEAT_RUBY
- RUBY_OBJ = $(OUTDIR)\if_ruby.obj
-! !if $(RUBY_VER) >= 190
-! RUBY_INC = /I "$(RUBY)\include\ruby-$(RUBY_VER_LONG)\$(RUBY_PLATFORM)" /I "$(RUBY)\include\ruby-$(RUBY_VER_LONG)"
- !else
- RUBY_INC = /I "$(RUBY)\lib\ruby\$(RUBY_VER_LONG)\$(RUBY_PLATFORM)"
- !endif
---- 813,843 ----
- !ifndef RUBY_VER_LONG
- RUBY_VER_LONG = 1.8
- !endif
-+ !ifndef RUBY_API_VER
-+ RUBY_API_VER = $(RUBY_VER_LONG:.=)
-+ !endif
-
- !if $(RUBY_VER) >= 18
- !ifndef RUBY_PLATFORM
- RUBY_PLATFORM = i386-mswin32
- !endif
- !ifndef RUBY_INSTALL_NAME
-! RUBY_INSTALL_NAME = msvcrt-ruby$(RUBY_API_VER)
- !endif
- !else
- !ifndef RUBY_PLATFORM
- RUBY_PLATFORM = i586-mswin32
- !endif
- !ifndef RUBY_INSTALL_NAME
-! RUBY_INSTALL_NAME = mswin32-ruby$(RUBY_API_VER)
- !endif
- !endif # $(RUBY_VER) >= 18
-
- !message Ruby requested (version $(RUBY_VER)) - root dir is "$(RUBY)"
- CFLAGS = $(CFLAGS) -DFEAT_RUBY
- RUBY_OBJ = $(OUTDIR)\if_ruby.obj
-! !if $(RUBY_VER) >= 19
-! RUBY_INC = /I "$(RUBY)\lib\ruby\$(RUBY_VER_LONG)\$(RUBY_PLATFORM)" /I "$(RUBY)\include\ruby-$(RUBY_VER_LONG)" /I "$(RUBY)\include\ruby-$(RUBY_VER_LONG)\$(RUBY_PLATFORM)"
- !else
- RUBY_INC = /I "$(RUBY)\lib\ruby\$(RUBY_VER_LONG)\$(RUBY_PLATFORM)"
- !endif
-*** ../vim-7.3.619/src/version.c 2012-08-02 12:31:40.000000000 +0200
---- src/version.c 2012-08-02 21:20:28.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 620,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-199. You read this entire list of symptoms, looking for something
- that doesn't describe you.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.621
-Fcc: 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.621
-Problem: Compiler warnings on 64 bit windows.
-Solution: Add type casts. (Mike Williams)
-Files: src/ex_docmd.c, src/search.c
-
-
-*** ../vim-7.3.620/src/ex_docmd.c 2012-07-27 21:12:03.000000000 +0200
---- src/ex_docmd.c 2012-08-02 21:19:22.000000000 +0200
-***************
-*** 3392,3398 ****
- /* Find start of last argument (argument just before cursor): */
- p = buff;
- xp->xp_pattern = p;
-! len = STRLEN(buff);
- while (*p && p < buff + len)
- {
- if (*p == ' ' || *p == TAB)
---- 3392,3398 ----
- /* Find start of last argument (argument just before cursor): */
- p = buff;
- xp->xp_pattern = p;
-! len = (int)STRLEN(buff);
- while (*p && p < buff + len)
- {
- if (*p == ' ' || *p == TAB)
-*** ../vim-7.3.620/src/search.c 2012-07-29 12:55:21.000000000 +0200
---- src/search.c 2012-08-02 21:20:02.000000000 +0200
-***************
-*** 4621,4627 ****
- {
- /* searching backwards, so set pos to last line and col */
- pos.lnum = curwin->w_buffer->b_ml.ml_line_count;
-! pos.col = STRLEN(ml_get(curwin->w_buffer->b_ml.ml_line_count));
- }
- }
-
---- 4621,4628 ----
- {
- /* searching backwards, so set pos to last line and col */
- pos.lnum = curwin->w_buffer->b_ml.ml_line_count;
-! pos.col = (colnr_T)STRLEN(
-! ml_get(curwin->w_buffer->b_ml.ml_line_count));
- }
- }
-
-*** ../vim-7.3.620/src/version.c 2012-08-02 21:21:43.000000000 +0200
---- src/version.c 2012-08-02 21:23:13.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 621,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-200. You really believe in the concept of a "paperless" office.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.622
-Fcc: 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.622
-Problem: XPM library for Win32 can't be found.
-Solution: Suggest using the one from the Vim ftp site.
-Files: src/Make_mvc.mak
-
-
-*** ../vim-7.3.621/src/Make_mvc.mak 2012-08-02 21:21:43.000000000 +0200
---- src/Make_mvc.mak 2012-08-02 21:45:52.000000000 +0200
-***************
-*** 281,287 ****
-
- !ifdef XPM
- # XPM - Include support for XPM signs
-! # you can get xpm.lib from http://iamphet.nm.ru/xpm or create it yourself
- XPM_OBJ = $(OBJDIR)/xpm_w32.obj
- XPM_DEFS = -DFEAT_XPM_W32
- XPM_LIB = $(XPM)\lib\libXpm.lib
---- 281,291 ----
-
- !ifdef XPM
- # XPM - Include support for XPM signs
-! # You need to download or build xpm.lib somehow.
-! # You can get the most recent version of libXpm-*.zip from
-! # http://cgit.freedesktop.org/xorg/lib/libXpm
-! # from which you must build xpm.lib yourself
-! # OR get and unpack: ftp://ftp.vim.org/pub/vim/pcextra/xpm.zip
- XPM_OBJ = $(OBJDIR)/xpm_w32.obj
- XPM_DEFS = -DFEAT_XPM_W32
- XPM_LIB = $(XPM)\lib\libXpm.lib
-*** ../vim-7.3.621/src/version.c 2012-08-02 21:24:38.000000000 +0200
---- src/version.c 2012-08-02 21:46:43.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 622,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-202. You're amazed to find out Spam is a food.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.623
-Fcc: 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.623
-Problem: Perl 5.14 commands crash Vim on MS-Windows.
-Solution: Use perl_get_sv() instead of GvSV(). (Raymond Ko)
-Files: src/if_perl.xs
-
-
-*** ../vim-7.3.622/src/if_perl.xs 2012-03-16 19:34:43.000000000 +0100
---- src/if_perl.xs 2012-08-08 13:15:29.000000000 +0200
-***************
-*** 76,81 ****
---- 76,87 ----
- # define EXTERN_C
- #endif
-
-+ #if (PERL_REVISION == 5) && (PERL_VERSION >= 14) && defined(_MSC_VER)
-+ /* Using PL_errgv to get the error message after perl_eval_sv() causes a crash
-+ * with MSVC and Perl version 5.14. */
-+ # define AVOID_PL_ERRGV
-+ #endif
-+
- /* Compatibility hacks over */
-
- static PerlInterpreter *perl_interp = NULL;
-***************
-*** 796,802 ****
---- 802,812 ----
-
- SvREFCNT_dec(sv);
-
-+ #ifdef AVOID_PL_ERRGV
-+ err = SvPV(perl_get_sv("@", GV_ADD), length);
-+ #else
- err = SvPV(GvSV(PL_errgv), length);
-+ #endif
-
- FREETMPS;
- LEAVE;
-***************
-*** 866,872 ****
---- 876,886 ----
- sv_catpvn(sv, "}", 1);
- perl_eval_sv(sv, G_DISCARD | G_NOARGS);
- SvREFCNT_dec(sv);
-+ #ifdef AVOID_PL_ERRGV
-+ str = SvPV(perl_get_sv("@", GV_ADD), length);
-+ #else
- str = SvPV(GvSV(PL_errgv), length);
-+ #endif
- if (length)
- goto err;
-
-***************
-*** 880,886 ****
---- 894,904 ----
- sv_setpv(GvSV(PL_defgv), (char *)ml_get(i));
- PUSHMARK(sp);
- perl_call_pv("VIM::perldo", G_SCALAR | G_EVAL);
-+ #ifdef AVOID_PL_ERRGV
-+ str = SvPV(perl_get_sv("@", GV_ADD), length);
-+ #else
- str = SvPV(GvSV(PL_errgv), length);
-+ #endif
- if (length)
- break;
- SPAGAIN;
-*** ../vim-7.3.622/src/version.c 2012-08-02 21:48:20.000000000 +0200
---- src/version.c 2012-08-08 13:08:10.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 623,
- /**/
-
---
-Don't be humble ... you're not that great.
- -- Golda Meir
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.624
-Fcc: 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.624
-Problem: When cancelling input() it returns the third argument. That should
- only happen for inputdialog().
-Solution: Check if inputdialog() was used. (Hirohito Higashi)
-Files: src/eval.c
-
-
-*** ../vim-7.3.623/src/eval.c 2012-07-25 16:46:59.000000000 +0200
---- src/eval.c 2012-08-08 14:31:48.000000000 +0200
-***************
-*** 12966,12972 ****
- rettv->vval.v_string =
- getcmdline_prompt(inputsecret_flag ? NUL : '@', p, echo_attr,
- xp_type, xp_arg);
-! if (rettv->vval.v_string == NULL
- && argvars[1].v_type != VAR_UNKNOWN
- && argvars[2].v_type != VAR_UNKNOWN)
- rettv->vval.v_string = vim_strsave(get_tv_string_buf(
---- 12966,12972 ----
- rettv->vval.v_string =
- getcmdline_prompt(inputsecret_flag ? NUL : '@', p, echo_attr,
- xp_type, xp_arg);
-! if (inputdialog && rettv->vval.v_string == NULL
- && argvars[1].v_type != VAR_UNKNOWN
- && argvars[2].v_type != VAR_UNKNOWN)
- rettv->vval.v_string = vim_strsave(get_tv_string_buf(
-*** ../vim-7.3.623/src/version.c 2012-08-08 13:17:26.000000000 +0200
---- src/version.c 2012-08-08 14:28:46.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 624,
- /**/
-
---
-Your fault: 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.625
-Fcc: 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.625
-Problem: "gn" does not handle zero-width matches correctly.
-Solution: Handle zero-width patterns specially. (Christian Brabandt)
-Files: src/search.c
-
-
-*** ../vim-7.3.624/src/search.c 2012-08-02 21:24:38.000000000 +0200
---- src/search.c 2012-08-08 15:25:12.000000000 +0200
-***************
-*** 4546,4551 ****
---- 4546,4554 ----
- int visual_active = FALSE;
- int flags = 0;
- pos_T save_VIsual;
-+ regmmatch_T regmatch;
-+ int nmatched = 0;
-+ int zerowidth = FALSE;
-
-
- /* wrapping should not occur */
-***************
-*** 4581,4603 ****
- orig_pos = pos = start_pos = curwin->w_cursor;
-
- /*
- * The trick is to first search backwards and then search forward again,
- * so that a match at the current cursor position will be correctly
- * captured.
- */
- for (i = 0; i < 2; i++)
- {
-- if (i && count == 1)
-- flags = SEARCH_START;
--
- if (forward)
- dir = i;
- else
- dir = !i;
- result = searchit(curwin, curbuf, &pos, (dir ? FORWARD : BACKWARD),
- spats[last_idx].pat, (long) (i ? count : 1),
-! SEARCH_KEEP | flags | (dir ? 0 : SEARCH_END),
-! RE_SEARCH, 0, NULL);
-
- /* First search may fail, but then start searching from the
- * beginning of the file (cursor might be on the search match)
---- 4584,4625 ----
- orig_pos = pos = start_pos = curwin->w_cursor;
-
- /*
-+ * Check for zero-width pattern.
-+ */
-+ if (search_regcomp(spats[last_idx].pat, RE_SEARCH, RE_SEARCH,
-+ ((SEARCH_HIS + SEARCH_KEEP)), &regmatch) == FAIL)
-+ return FAIL;
-+
-+ /* Zero-width pattern should match somewhere, then we can check if start
-+ * and end are in the same position. */
-+ nmatched = vim_regexec_multi(&regmatch, curwin, curbuf,
-+ curwin->w_cursor.lnum, (colnr_T)0, NULL);
-+ if (called_emsg)
-+ return FAIL;
-+ if (nmatched && regmatch.startpos[0].lnum == regmatch.endpos[0].lnum
-+ && regmatch.endpos[0].col == regmatch.startpos[0].col)
-+ zerowidth = TRUE;
-+ vim_free(regmatch.regprog);
-+
-+ /*
- * The trick is to first search backwards and then search forward again,
- * so that a match at the current cursor position will be correctly
- * captured.
- */
- for (i = 0; i < 2; i++)
- {
- if (forward)
- dir = i;
- else
- dir = !i;
-+
-+ flags = 0;
-+ if (!dir && !zerowidth)
-+ flags = SEARCH_END;
-+
- result = searchit(curwin, curbuf, &pos, (dir ? FORWARD : BACKWARD),
- spats[last_idx].pat, (long) (i ? count : 1),
-! SEARCH_KEEP | flags, RE_SEARCH, 0, NULL);
-
- /* First search may fail, but then start searching from the
- * beginning of the file (cursor might be on the search match)
-***************
-*** 4629,4638 ****
- }
-
- start_pos = pos;
-! flags = (forward ? SEARCH_END : 0);
-
-! /* move to match */
-! result = searchit(curwin, curbuf, &pos, (forward ? FORWARD : BACKWARD),
- spats[last_idx].pat, 0L, flags | SEARCH_KEEP, RE_SEARCH, 0, NULL);
-
- if (!VIsual_active)
---- 4651,4662 ----
- }
-
- start_pos = pos;
-! flags = forward ? SEARCH_END : 0;
-
-! /* move to match, except for zero-width matches, in which case, we are
-! * already on the next match */
-! if (!zerowidth)
-! result = searchit(curwin, curbuf, &pos, (forward ? FORWARD : BACKWARD),
- spats[last_idx].pat, 0L, flags | SEARCH_KEEP, RE_SEARCH, 0, NULL);
-
- if (!VIsual_active)
-*** ../vim-7.3.624/src/version.c 2012-08-08 14:33:16.000000000 +0200
---- src/version.c 2012-08-08 15:21:53.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 625,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-222. You send more than 20 personal e-mails a day.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.626
-Fcc: 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.626
-Problem: Python interface doesn't build with Python 2.4 or older.
-Solution: Define Py_ssize_t. (Benjamin Bannier)
-Files: src/if_py_both.h
-
-
-*** ../vim-7.3.625/src/if_py_both.h 2012-07-25 15:36:00.000000000 +0200
---- src/if_py_both.h 2012-08-08 15:53:24.000000000 +0200
-***************
-*** 12,17 ****
---- 12,21 ----
- * Common code for if_python.c and if_python3.c.
- */
-
-+ #if PY_VERSION_HEX < 0x02050000
-+ typedef int Py_ssize_t; /* Python 2.4 and earlier don't have this type. */
-+ #endif
-+
- #ifdef FEAT_MBYTE
- # define ENC_OPT p_enc
- #else
-*** ../vim-7.3.625/src/version.c 2012-08-08 15:27:54.000000000 +0200
---- src/version.c 2012-08-08 15:52:07.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 626,
- /**/
-
---
-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/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.627
-Fcc: 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.627
-Problem: When using the "n" flag with the ":s" command a \= substitution
- will not be evaluated.
-Solution: Do perform the evaluation, so that a function can be invoked at
- every matching position without changing the text. (Christian
- Brabandt)
-Files: src/ex_cmds.c
-
-
-*** ../vim-7.3.626/src/ex_cmds.c 2012-07-10 15:18:18.000000000 +0200
---- src/ex_cmds.c 2012-08-08 16:44:16.000000000 +0200
-***************
-*** 4264,4269 ****
---- 4264,4272 ----
- int endcolumn = FALSE; /* cursor in last column when done */
- pos_T old_cursor = curwin->w_cursor;
- int start_nsubs;
-+ #ifdef FEAT_EVAL
-+ int save_ma = 0;
-+ #endif
-
- cmd = eap->arg;
- if (!global_busy)
-***************
-*** 4668,4674 ****
- }
- sub_nsubs++;
- did_sub = TRUE;
-! goto skip;
- }
-
- if (do_ask)
---- 4671,4682 ----
- }
- sub_nsubs++;
- did_sub = TRUE;
-! #ifdef FEAT_EVAL
-! /* Skip the substitution, unless an expression is used,
-! * then it is evaluated in the sandbox. */
-! if (!(sub[0] == '\\' && sub[1] == '='))
-! #endif
-! goto skip;
- }
-
- if (do_ask)
-***************
-*** 4840,4849 ****
---- 4848,4874 ----
- /*
- * 3. substitute the string.
- */
-+ #ifdef FEAT_EVAL
-+ if (do_count)
-+ {
-+ /* prevent accidently changing the buffer by a function */
-+ save_ma = curbuf->b_p_ma;
-+ curbuf->b_p_ma = FALSE;
-+ sandbox++;
-+ }
-+ #endif
- /* get length of substitution part */
- sublen = vim_regsub_multi(&regmatch,
- sub_firstlnum - regmatch.startpos[0].lnum,
- sub, sub_firstline, FALSE, p_magic, TRUE);
-+ #ifdef FEAT_EVAL
-+ if (do_count)
-+ {
-+ curbuf->b_p_ma = save_ma;
-+ sandbox--;
-+ goto skip;
-+ }
-+ #endif
-
- /* When the match included the "$" of the last line it may
- * go beyond the last line of the buffer. */
-*** ../vim-7.3.626/src/version.c 2012-08-08 16:05:03.000000000 +0200
---- src/version.c 2012-08-08 16:48:45.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 627,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-225. You sign up for free subscriptions for all the computer magazines
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.628
-Fcc: 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.628
-Problem: ":open" does not allow for a !, which results in a confusing error
- message. (Shawn Wilson)
-Solution: Allow ! on ":open". (Christian Brabandt)
-Files: src/ex_cmds.h
-
-
-*** ../vim-7.3.627/src/ex_cmds.h 2012-07-06 18:27:34.000000000 +0200
---- src/ex_cmds.h 2012-08-08 17:15:45.000000000 +0200
-***************
-*** 662,668 ****
- EX(CMD_nunmenu, "nunmenu", ex_menu,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_open, "open", ex_open,
-! RANGE|EXTRA),
- EX(CMD_oldfiles, "oldfiles", ex_oldfiles,
- BANG|TRLBAR|SBOXOK|CMDWIN),
- EX(CMD_omap, "omap", ex_map,
---- 662,668 ----
- EX(CMD_nunmenu, "nunmenu", ex_menu,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_open, "open", ex_open,
-! RANGE|BANG|EXTRA),
- EX(CMD_oldfiles, "oldfiles", ex_oldfiles,
- BANG|TRLBAR|SBOXOK|CMDWIN),
- EX(CMD_omap, "omap", ex_map,
-*** ../vim-7.3.627/src/version.c 2012-08-08 16:50:40.000000000 +0200
---- src/version.c 2012-08-08 17:30:14.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 628,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-226. You sit down at the computer right after dinner and your spouse
- says "See you in the morning."
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.629
-Fcc: 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.629
-Problem: There is no way to make 'shiftwidth' follow 'tabstop'.
-Solution: When 'shiftwidth' is zero use the value of 'tabstop'. (Christian
- Brabandt)
-Files: src/edit.c, src/ex_getln.c, src/fold.c, src/misc1.c, src/ops.c,
- src/option.c, src/proto/option.pro
-
-
-*** ../vim-7.3.628/src/edit.c 2012-07-25 16:46:59.000000000 +0200
---- src/edit.c 2012-08-08 17:55:37.000000000 +0200
-***************
-*** 8899,8907 ****
-
- *inserted_space_p = FALSE;
- if (p_sta && in_indent)
-! ts = curbuf->b_p_sw;
- else
-! ts = curbuf->b_p_sts;
- /* Compute the virtual column where we want to be. Since
- * 'showbreak' may get in the way, need to get the last column of
- * the previous character. */
---- 8899,8907 ----
-
- *inserted_space_p = FALSE;
- if (p_sta && in_indent)
-! ts = (int)get_sw_value();
- else
-! ts = (int)curbuf->b_p_sts;
- /* Compute the virtual column where we want to be. Since
- * 'showbreak' may get in the way, need to get the last column of
- * the previous character. */
-***************
-*** 9589,9595 ****
- * When nothing special, insert TAB like a normal character
- */
- if (!curbuf->b_p_et
-! && !(p_sta && ind && curbuf->b_p_ts != curbuf->b_p_sw)
- && curbuf->b_p_sts == 0)
- return TRUE;
-
---- 9589,9595 ----
- * When nothing special, insert TAB like a normal character
- */
- if (!curbuf->b_p_et
-! && !(p_sta && ind && curbuf->b_p_ts != get_sw_value())
- && curbuf->b_p_sts == 0)
- return TRUE;
-
-***************
-*** 9605,9611 ****
- AppendToRedobuff((char_u *)"\t");
-
- if (p_sta && ind) /* insert tab in indent, use 'shiftwidth' */
-! temp = (int)curbuf->b_p_sw;
- else if (curbuf->b_p_sts > 0) /* use 'softtabstop' when set */
- temp = (int)curbuf->b_p_sts;
- else /* otherwise use 'tabstop' */
---- 9605,9611 ----
- AppendToRedobuff((char_u *)"\t");
-
- if (p_sta && ind) /* insert tab in indent, use 'shiftwidth' */
-! temp = (int)get_sw_value();
- else if (curbuf->b_p_sts > 0) /* use 'softtabstop' when set */
- temp = (int)curbuf->b_p_sts;
- else /* otherwise use 'tabstop' */
-*** ../vim-7.3.628/src/ex_getln.c 2012-06-29 13:44:37.000000000 +0200
---- src/ex_getln.c 2012-08-08 17:39:40.000000000 +0200
-***************
-*** 2268,2277 ****
-
- if (c1 == Ctrl_T)
- {
- p = (char_u *)line_ga.ga_data;
- p[line_ga.ga_len] = NUL;
- indent = get_indent_str(p, 8);
-! indent += curbuf->b_p_sw - indent % curbuf->b_p_sw;
- add_indent:
- while (get_indent_str(p, 8) < indent)
- {
---- 2268,2279 ----
-
- if (c1 == Ctrl_T)
- {
-+ long sw = get_sw_value();
-+
- p = (char_u *)line_ga.ga_data;
- p[line_ga.ga_len] = NUL;
- indent = get_indent_str(p, 8);
-! indent += sw - indent % sw;
- add_indent:
- while (get_indent_str(p, 8) < indent)
- {
-***************
-*** 2323,2329 ****
- p[line_ga.ga_len] = NUL;
- indent = get_indent_str(p, 8);
- --indent;
-! indent -= indent % curbuf->b_p_sw;
- }
- while (get_indent_str(p, 8) > indent)
- {
---- 2325,2331 ----
- p[line_ga.ga_len] = NUL;
- indent = get_indent_str(p, 8);
- --indent;
-! indent -= indent % get_sw_value();
- }
- while (get_indent_str(p, 8) > indent)
- {
-*** ../vim-7.3.628/src/fold.c 2012-02-29 19:19:57.000000000 +0100
---- src/fold.c 2012-08-08 17:40:11.000000000 +0200
-***************
-*** 3025,3031 ****
- flp->lvl = -1;
- }
- else
-! flp->lvl = get_indent_buf(buf, lnum) / buf->b_p_sw;
- if (flp->lvl > flp->wp->w_p_fdn)
- {
- flp->lvl = flp->wp->w_p_fdn;
---- 3025,3031 ----
- flp->lvl = -1;
- }
- else
-! flp->lvl = get_indent_buf(buf, lnum) / get_sw_value();
- if (flp->lvl > flp->wp->w_p_fdn)
- {
- flp->lvl = flp->wp->w_p_fdn;
-*** ../vim-7.3.628/src/misc1.c 2012-07-25 16:09:59.000000000 +0200
---- src/misc1.c 2012-08-08 17:43:07.000000000 +0200
-***************
-*** 1389,1397 ****
- #ifdef FEAT_SMARTINDENT
- if (did_si)
- {
- if (p_sr)
-! newindent -= newindent % (int)curbuf->b_p_sw;
-! newindent += (int)curbuf->b_p_sw;
- }
- #endif
- /* Copy the indent */
---- 1389,1399 ----
- #ifdef FEAT_SMARTINDENT
- if (did_si)
- {
-+ int sw = (int)get_sw_value();
-+
- if (p_sr)
-! newindent -= newindent % sw;
-! newindent += sw;
- }
- #endif
- /* Copy the indent */
-***************
-*** 6461,6471 ****
- int
- get_c_indent()
- {
- /*
- * spaces from a block's opening brace the prevailing indent for that
- * block should be
- */
-! int ind_level = curbuf->b_p_sw;
-
- /*
- * spaces from the edge of the line an open brace that's at the end of a
---- 6463,6476 ----
- int
- get_c_indent()
- {
-+ int sw = (int)get_sw_value();
-+
- /*
- * spaces from a block's opening brace the prevailing indent for that
- * block should be
- */
-!
-! int ind_level = sw;
-
- /*
- * spaces from the edge of the line an open brace that's at the end of a
-***************
-*** 6512,6523 ****
- /*
- * spaces from the switch() indent a "case xx" label should be located
- */
-! int ind_case = curbuf->b_p_sw;
-
- /*
- * spaces from the "case xx:" code after a switch() should be located
- */
-! int ind_case_code = curbuf->b_p_sw;
-
- /*
- * lineup break at end of case in switch() with case label
---- 6517,6528 ----
- /*
- * spaces from the switch() indent a "case xx" label should be located
- */
-! int ind_case = sw;
-
- /*
- * spaces from the "case xx:" code after a switch() should be located
- */
-! int ind_case_code = sw;
-
- /*
- * lineup break at end of case in switch() with case label
-***************
-*** 6528,6572 ****
- * spaces from the class declaration indent a scope declaration label
- * should be located
- */
-! int ind_scopedecl = curbuf->b_p_sw;
-
- /*
- * spaces from the scope declaration label code should be located
- */
-! int ind_scopedecl_code = curbuf->b_p_sw;
-
- /*
- * amount K&R-style parameters should be indented
- */
-! int ind_param = curbuf->b_p_sw;
-
- /*
- * amount a function type spec should be indented
- */
-! int ind_func_type = curbuf->b_p_sw;
-
- /*
- * amount a cpp base class declaration or constructor initialization
- * should be indented
- */
-! int ind_cpp_baseclass = curbuf->b_p_sw;
-
- /*
- * additional spaces beyond the prevailing indent a continuation line
- * should be located
- */
-! int ind_continuation = curbuf->b_p_sw;
-
- /*
- * spaces from the indent of the line with an unclosed parentheses
- */
-! int ind_unclosed = curbuf->b_p_sw * 2;
-
- /*
- * spaces from the indent of the line with an unclosed parentheses, which
- * itself is also unclosed
- */
-! int ind_unclosed2 = curbuf->b_p_sw;
-
- /*
- * suppress ignoring spaces from the indent of a line starting with an
---- 6533,6577 ----
- * spaces from the class declaration indent a scope declaration label
- * should be located
- */
-! int ind_scopedecl = sw;
-
- /*
- * spaces from the scope declaration label code should be located
- */
-! int ind_scopedecl_code = sw;
-
- /*
- * amount K&R-style parameters should be indented
- */
-! int ind_param = sw;
-
- /*
- * amount a function type spec should be indented
- */
-! int ind_func_type = sw;
-
- /*
- * amount a cpp base class declaration or constructor initialization
- * should be indented
- */
-! int ind_cpp_baseclass = sw;
-
- /*
- * additional spaces beyond the prevailing indent a continuation line
- * should be located
- */
-! int ind_continuation = sw;
-
- /*
- * spaces from the indent of the line with an unclosed parentheses
- */
-! int ind_unclosed = sw * 2;
-
- /*
- * spaces from the indent of the line with an unclosed parentheses, which
- * itself is also unclosed
- */
-! int ind_unclosed2 = sw;
-
- /*
- * suppress ignoring spaces from the indent of a line starting with an
-***************
-*** 6719,6730 ****
- if (*options == 's') /* "2s" means two times 'shiftwidth' */
- {
- if (options == digits)
-! n = curbuf->b_p_sw; /* just "s" is one 'shiftwidth' */
- else
- {
-! n *= curbuf->b_p_sw;
- if (divider)
-! n += (curbuf->b_p_sw * fraction + divider / 2) / divider;
- }
- ++options;
- }
---- 6724,6735 ----
- if (*options == 's') /* "2s" means two times 'shiftwidth' */
- {
- if (options == digits)
-! n = sw; /* just "s" is one 'shiftwidth' */
- else
- {
-! n *= sw;
- if (divider)
-! n += (sw * fraction + divider / 2) / divider;
- }
- ++options;
- }
-*** ../vim-7.3.628/src/ops.c 2012-07-10 16:49:08.000000000 +0200
---- src/ops.c 2012-08-08 17:34:28.000000000 +0200
-***************
-*** 332,338 ****
- {
- int count;
- int i, j;
-! int p_sw = (int)curbuf->b_p_sw;
-
- count = get_indent(); /* get current indent */
-
---- 332,338 ----
- {
- int count;
- int i, j;
-! int p_sw = (int)get_sw_value();
-
- count = get_indent(); /* get current indent */
-
-***************
-*** 388,394 ****
- int total;
- char_u *newp, *oldp;
- int oldcol = curwin->w_cursor.col;
-! int p_sw = (int)curbuf->b_p_sw;
- int p_ts = (int)curbuf->b_p_ts;
- struct block_def bd;
- int incr;
---- 388,394 ----
- int total;
- char_u *newp, *oldp;
- int oldcol = curwin->w_cursor.col;
-! int p_sw = (int)get_sw_value();
- int p_ts = (int)curbuf->b_p_ts;
- struct block_def bd;
- int incr;
-*** ../vim-7.3.628/src/option.c 2012-07-10 18:31:49.000000000 +0200
---- src/option.c 2012-08-08 17:45:01.000000000 +0200
-***************
-*** 8125,8131 ****
- need_mouse_correct = TRUE;
- #endif
-
-! if (curbuf->b_p_sw <= 0)
- {
- errmsg = e_positive;
- curbuf->b_p_sw = curbuf->b_p_ts;
---- 8125,8131 ----
- need_mouse_correct = TRUE;
- #endif
-
-! if (curbuf->b_p_sw < 0)
- {
- errmsg = e_positive;
- curbuf->b_p_sw = curbuf->b_p_ts;
-***************
-*** 11419,11421 ****
---- 11419,11431 ----
- {
- return check_opt_strings(p, p_ff_values, FALSE);
- }
-+
-+ /*
-+ * Return the effective shiftwidth value for current buffer, using the
-+ * 'tabstop' value when 'shiftwidth' is zero.
-+ */
-+ long
-+ get_sw_value()
-+ {
-+ return curbuf->b_p_sw ? curbuf->b_p_sw : curbuf->b_p_ts;
-+ }
-*** ../vim-7.3.628/src/proto/option.pro 2011-01-22 00:11:42.000000000 +0100
---- src/proto/option.pro 2012-08-08 17:34:33.000000000 +0200
-***************
-*** 56,59 ****
---- 56,60 ----
- void save_file_ff __ARGS((buf_T *buf));
- int file_ff_differs __ARGS((buf_T *buf, int ignore_empty));
- int check_ff_value __ARGS((char_u *p));
-+ long get_sw_value __ARGS((void));
- /* vim: set ft=c : */
-*** ../vim-7.3.628/src/version.c 2012-08-08 17:31:36.000000000 +0200
---- src/version.c 2012-08-08 17:57:48.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 629,
- /**/
-
---
-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/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.630
-Fcc: 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.630
-Problem: "|" does not behave correctly when 'virtualedit' is set.
-Solution: Call validate_virtcol(). (David Bürgin)
-Files: src/normal.c
-
-
-*** ../vim-7.3.629/src/normal.c 2012-07-29 12:55:21.000000000 +0200
---- src/normal.c 2012-08-15 13:20:13.000000000 +0200
-***************
-*** 7786,7792 ****
---- 7786,7795 ----
- * virtualedit. Recalculate curwin->w_cursor to avoid bad hilighting.
- */
- if (c == Ctrl_V && (ve_flags & VE_BLOCK) && gchar_cursor() == TAB)
-+ {
-+ validate_virtcol();
- coladvance(curwin->w_virtcol);
-+ }
- #endif
- VIsual = curwin->w_cursor;
-
-*** ../vim-7.3.629/src/version.c 2012-08-08 18:01:00.000000000 +0200
---- src/version.c 2012-08-15 13:30:30.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 630,
- /**/
-
---
-"Marriage is when a man and woman become as one; the trouble starts
-when they try to decide which one"
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.631
-Fcc: 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.631
-Problem: Cannot complete user names.
-Solution: Add user name completion. (Dominique Pelle)
-Files: runtime/doc/map.txt, src/auto/configure, src/config.h.in,
- src/configure.in, src/ex_docmd.c, src/ex_getln.c,
- src/misc1.c, src/misc2.c, src/proto/misc1.pro, src/vim.h
-
-
-*** ../vim-7.3.630/runtime/doc/map.txt 2012-04-30 18:48:38.000000000 +0200
---- runtime/doc/map.txt 2012-08-15 13:46:34.000000000 +0200
-***************
-*** 1227,1232 ****
---- 1244,1250 ----
- -complete=syntax syntax file names |'syntax'|
- -complete=tag tags
- -complete=tag_listfiles tags, file names are shown when CTRL-D is hit
-+ -complete=user user names
- -complete=var user variables
- -complete=custom,{func} custom completion, defined via {func}
- -complete=customlist,{func} custom completion, defined via {func}
-*** ../vim-7.3.630/src/auto/configure 2012-07-25 16:32:03.000000000 +0200
---- src/auto/configure 2012-08-15 13:48:06.000000000 +0200
-***************
-*** 10631,10637 ****
- fi
-
- for ac_func in bcmp fchdir fchown fsync getcwd getpseudotty \
-! getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
- memset mkdtemp nanosleep opendir putenv qsort readlink select setenv \
- setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
- sigvec strcasecmp strerror strftime stricmp strncasecmp \
---- 10631,10637 ----
- fi
-
- for ac_func in bcmp fchdir fchown fsync getcwd getpseudotty \
-! getpwent getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
- memset mkdtemp nanosleep opendir putenv qsort readlink select setenv \
- setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
- sigvec strcasecmp strerror strftime stricmp strncasecmp \
-*** ../vim-7.3.630/src/config.h.in 2012-02-05 22:51:27.000000000 +0100
---- src/config.h.in 2012-08-15 13:46:35.000000000 +0200
-***************
-*** 161,166 ****
---- 161,167 ----
- #undef HAVE_FSYNC
- #undef HAVE_GETCWD
- #undef HAVE_GETPSEUDOTTY
-+ #undef HAVE_GETPWENT
- #undef HAVE_GETPWNAM
- #undef HAVE_GETPWUID
- #undef HAVE_GETRLIMIT
-*** ../vim-7.3.630/src/configure.in 2012-07-25 16:32:03.000000000 +0200
---- src/configure.in 2012-08-15 13:46:35.000000000 +0200
-***************
-*** 2994,3000 ****
- dnl Check for functions in one big call, to reduce the size of configure.
- dnl Can only be used for functions that do not require any include.
- AC_CHECK_FUNCS(bcmp fchdir fchown fsync getcwd getpseudotty \
-! getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
- memset mkdtemp nanosleep opendir putenv qsort readlink select setenv \
- setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
- sigvec strcasecmp strerror strftime stricmp strncasecmp \
---- 2994,3000 ----
- dnl Check for functions in one big call, to reduce the size of configure.
- dnl Can only be used for functions that do not require any include.
- AC_CHECK_FUNCS(bcmp fchdir fchown fsync getcwd getpseudotty \
-! getpwent getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
- memset mkdtemp nanosleep opendir putenv qsort readlink select setenv \
- setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
- sigvec strcasecmp strerror strftime stricmp strncasecmp \
-*** ../vim-7.3.630/src/ex_docmd.c 2012-08-02 21:24:38.000000000 +0200
---- src/ex_docmd.c 2012-08-15 13:54:29.000000000 +0200
-***************
-*** 3515,3520 ****
---- 3515,3537 ----
- #endif
- }
- }
-+ #if defined(FEAT_CMDL_COMPL)
-+ /* Check for user names */
-+ if (*xp->xp_pattern == '~')
-+ {
-+ for (p = xp->xp_pattern + 1; *p != NUL && *p != '/'; ++p)
-+ ;
-+ /* Complete ~user only if it partially matches a user name.
-+ * A full match ~user<Tab> will be replaced by user's home
-+ * directory i.e. something like ~user<Tab> -> /home/user/ */
-+ if (*p == NUL && p > xp->xp_pattern + 1
-+ && match_user(xp->xp_pattern + 1) == 1)
-+ {
-+ xp->xp_context = EXPAND_USER;
-+ ++xp->xp_pattern;
-+ }
-+ }
-+ #endif
- }
-
- /*
-***************
-*** 5396,5401 ****
---- 5413,5419 ----
- #endif
- {EXPAND_TAGS, "tag"},
- {EXPAND_TAGS_LISTFILES, "tag_listfiles"},
-+ {EXPAND_USER, "user"},
- {EXPAND_USER_VARS, "var"},
- {0, NULL}
- };
-*** ../vim-7.3.630/src/ex_getln.c 2012-08-08 18:01:00.000000000 +0200
---- src/ex_getln.c 2012-08-15 13:46:35.000000000 +0200
-***************
-*** 4336,4341 ****
---- 4336,4342 ----
- * EXPAND_EXPRESSION Complete internal or user defined function/variable
- * names in expressions, eg :while s^I
- * EXPAND_ENV_VARS Complete environment variable names
-+ * EXPAND_USER Complete user names
- */
- static void
- set_expand_context(xp)
-***************
-*** 4681,4686 ****
---- 4682,4688 ----
- {EXPAND_LOCALES, get_locales, TRUE, FALSE},
- #endif
- {EXPAND_ENV_VARS, get_env_name, TRUE, TRUE},
-+ {EXPAND_USER, get_users, TRUE, FALSE},
- };
- int i;
-
-*** ../vim-7.3.630/src/misc1.c 2012-08-08 18:01:00.000000000 +0200
---- src/misc1.c 2012-08-15 13:57:53.000000000 +0200
-***************
-*** 18,23 ****
---- 18,28 ----
- static char_u *remove_tail __ARGS((char_u *p, char_u *pend, char_u *name));
- static int copy_indent __ARGS((int size, char_u *src));
-
-+ /* All user names (for ~user completion as done by shell). */
-+ #if defined(FEAT_CMDL_COMPL) || defined(PROTO)
-+ static garray_T ga_users;
-+ #endif
-+
- /*
- * Count the size (in window cells) of the indent in the current line.
- */
-***************
-*** 3782,3787 ****
---- 3787,3800 ----
- {
- vim_free(homedir);
- }
-+
-+ # ifdef FEAT_CMDL_COMPL
-+ void
-+ free_users()
-+ {
-+ ga_clear_strings(&ga_users);
-+ }
-+ # endif
- #endif
-
- /*
-***************
-*** 4451,4456 ****
---- 4464,4543 ----
- return name;
- # endif
- }
-+
-+ /*
-+ * Find all user names for user completion.
-+ * Done only once and then cached.
-+ */
-+ static void
-+ init_users() {
-+ static int lazy_init_done = FALSE;
-+
-+ if (lazy_init_done)
-+ return;
-+
-+ lazy_init_done = TRUE;
-+ ga_init2(&ga_users, sizeof(char_u *), 20);
-+
-+ # if defined(HAVE_GETPWENT) && defined(HAVE_PWD_H)
-+ {
-+ char_u* user;
-+ struct passwd* pw;
-+
-+ setpwent();
-+ while ((pw = getpwent()) != NULL)
-+ /* pw->pw_name shouldn't be NULL but just in case... */
-+ if (pw->pw_name != NULL)
-+ {
-+ if (ga_grow(&ga_users, 1) == FAIL)
-+ break;
-+ user = vim_strsave((char_u*)pw->pw_name);
-+ if (user == NULL)
-+ break;
-+ ((char_u **)(ga_users.ga_data))[ga_users.ga_len++] = user;
-+ }
-+ endpwent();
-+ }
-+ # endif
-+ }
-+
-+ /*
-+ * Function given to ExpandGeneric() to obtain an user names.
-+ */
-+ char_u*
-+ get_users(xp, idx)
-+ expand_T *xp UNUSED;
-+ int idx;
-+ {
-+ init_users();
-+ if (idx < ga_users.ga_len)
-+ return ((char_u **)ga_users.ga_data)[idx];
-+ return NULL;
-+ }
-+
-+ /*
-+ * Check whether name matches a user name. Return:
-+ * 0 if name does not match any user name.
-+ * 1 if name partially matches the beginning of a user name.
-+ * 2 is name fully matches a user name.
-+ */
-+ int match_user(name)
-+ char_u* name;
-+ {
-+ int i;
-+ int n = (int)STRLEN(name);
-+ int result = 0;
-+
-+ init_users();
-+ for (i = 0; i < ga_users.ga_len; i++)
-+ {
-+ if (STRCMP(((char_u **)ga_users.ga_data)[i], name) == 0)
-+ return 2; /* full match */
-+ if (STRNCMP(((char_u **)ga_users.ga_data)[i], name, n) == 0)
-+ result = 1; /* partial match */
-+ }
-+ return result;
-+ }
- #endif
-
- /*
-*** ../vim-7.3.630/src/misc2.c 2012-06-29 15:51:26.000000000 +0200
---- src/misc2.c 2012-08-15 13:46:35.000000000 +0200
-***************
-*** 1110,1115 ****
---- 1110,1118 ----
- free_all_marks();
- alist_clear(&global_alist);
- free_homedir();
-+ # if defined(FEAT_CMDL_COMPL)
-+ free_users();
-+ # endif
- free_search_patterns();
- free_old_sub();
- free_last_insert();
-*** ../vim-7.3.630/src/proto/misc1.pro 2012-06-06 16:12:54.000000000 +0200
---- src/proto/misc1.pro 2012-08-15 13:46:35.000000000 +0200
-***************
-*** 50,55 ****
---- 50,56 ----
- void vim_beep __ARGS((void));
- void init_homedir __ARGS((void));
- void free_homedir __ARGS((void));
-+ void free_users __ARGS((void));
- char_u *expand_env_save __ARGS((char_u *src));
- char_u *expand_env_save_opt __ARGS((char_u *src, int one));
- void expand_env __ARGS((char_u *src, char_u *dst, int dstlen));
-***************
-*** 57,62 ****
---- 58,65 ----
- char_u *vim_getenv __ARGS((char_u *name, int *mustfree));
- void vim_setenv __ARGS((char_u *name, char_u *val));
- char_u *get_env_name __ARGS((expand_T *xp, int idx));
-+ char_u *get_users __ARGS((expand_T *xp, int idx));
-+ int match_user __ARGS((char_u* name));
- void home_replace __ARGS((buf_T *buf, char_u *src, char_u *dst, int dstlen, int one));
- char_u *home_replace_save __ARGS((buf_T *buf, char_u *src));
- int fullpathcmp __ARGS((char_u *s1, char_u *s2, int checkname));
-*** ../vim-7.3.630/src/vim.h 2012-07-10 17:14:50.000000000 +0200
---- src/vim.h 2012-08-15 13:46:35.000000000 +0200
-***************
-*** 782,787 ****
---- 782,788 ----
- #define EXPAND_OWNSYNTAX 39
- #define EXPAND_LOCALES 40
- #define EXPAND_HISTORY 41
-+ #define EXPAND_USER 42
-
- /* Values for exmode_active (0 is no exmode) */
- #define EXMODE_NORMAL 1
-*** ../vim-7.3.630/src/version.c 2012-08-15 13:30:55.000000000 +0200
---- src/version.c 2012-08-15 14:01:12.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 631,
- /**/
-
---
-"Marriage is the process of finding out what kind of man your wife
-would have preferred"
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.632
-Fcc: 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.632
-Problem: Cannot select beyond 222 columns with the mouse in xterm.
-Solution: Add support for SGR mouse tracking. (Hayaki Saito)
-Files: runtime/doc/options.txt, src/feature.h, src/keymap.h, src/misc2.c,
- src/option.h, src/os_unix.c, src/term.c, src/version.c
-
-
-*** ../vim-7.3.631/runtime/doc/options.txt 2012-07-10 16:49:08.000000000 +0200
---- runtime/doc/options.txt 2012-08-15 16:04:26.000000000 +0200
-***************
-*** 7383,7388 ****
---- 7424,7435 ----
- jsbterm JSB term mouse handling.
- *pterm-mouse*
- pterm QNX pterm mouse handling.
-+ *urxvt-mouse*
-+ urxvt Mouse handling for the urxvt (rxvt-unicode) terminal.
-+ *sgr-mouse*
-+ sgr Mouse handling for the terminal that emits SGR-styled
-+ mouse reporting. Works with xterm version 277 or
-+ later.
-
- The mouse handling must be enabled at compile time |+mouse_xterm|
- |+mouse_dec| |+mouse_netterm|.
-***************
-*** 7395,7400 ****
---- 7442,7448 ----
- or "xterm2" already. The main use of this option is to set it to
- "xterm", when the terminal name doesn't start with "xterm", but it can
- handle xterm mouse codes.
-+ The "sgr" value will be set if the xterm version is 277 or later.
- The "xterm2" value will be set if the xterm version is reported to be
- 95 or higher. This only works when compiled with the |+termresponse|
- feature and if |t_RV| is set to the escape sequence to request the
-*** ../vim-7.3.631/src/feature.h 2012-04-25 16:50:44.000000000 +0200
---- src/feature.h 2012-08-15 15:46:07.000000000 +0200
-***************
-*** 1056,1061 ****
---- 1056,1064 ----
- # ifdef FEAT_BIG
- # define FEAT_MOUSE_URXVT
- # endif
-+ # ifdef FEAT_BIG
-+ # define FEAT_MOUSE_SGR
-+ # endif
- # if defined(FEAT_NORMAL) && (defined(MSDOS) || defined(WIN3264))
- # define DOS_MOUSE
- # endif
-***************
-*** 1077,1082 ****
---- 1080,1090 ----
- # define FEAT_MOUSE_XTERM
- #endif
-
-+ /* sgr is a small variation of mouse_xterm, and shares its code */
-+ #if defined(FEAT_MOUSE_SGR) && !defined(FEAT_MOUSE_XTERM)
-+ # define FEAT_MOUSE_XTERM
-+ #endif
-+
- /* Define FEAT_MOUSE when any of the above is defined or FEAT_GUI. */
- #if !defined(FEAT_MOUSE_TTY) \
- && (defined(FEAT_MOUSE_XTERM) \
-***************
-*** 1087,1093 ****
- || defined(FEAT_MOUSE_JSB) \
- || defined(FEAT_MOUSE_PTERM) \
- || defined(FEAT_SYSMOUSE) \
-! || defined(FEAT_MOUSE_URXVT))
- # define FEAT_MOUSE_TTY /* include non-GUI mouse support */
- #endif
- #if !defined(FEAT_MOUSE) && (defined(FEAT_MOUSE_TTY) || defined(FEAT_GUI))
---- 1095,1102 ----
- || defined(FEAT_MOUSE_JSB) \
- || defined(FEAT_MOUSE_PTERM) \
- || defined(FEAT_SYSMOUSE) \
-! || defined(FEAT_MOUSE_URXVT) \
-! || defined(FEAT_MOUSE_SGR))
- # define FEAT_MOUSE_TTY /* include non-GUI mouse support */
- #endif
- #if !defined(FEAT_MOUSE) && (defined(FEAT_MOUSE_TTY) || defined(FEAT_GUI))
-*** ../vim-7.3.631/src/keymap.h 2012-01-20 17:15:47.000000000 +0100
---- src/keymap.h 2012-08-15 15:46:07.000000000 +0200
-***************
-*** 110,115 ****
---- 110,118 ----
- /* Used for the urxvt mouse. */
- #define KS_URXVT_MOUSE 238
-
-+ /* Used for the sgr mouse. */
-+ #define KS_SGR_MOUSE 237
-+
- /*
- * Filler used after KS_SPECIAL and others
- */
-***************
-*** 412,417 ****
---- 415,421 ----
- #define K_JSBTERM_MOUSE TERMCAP2KEY(KS_JSBTERM_MOUSE, KE_FILLER)
- #define K_PTERM_MOUSE TERMCAP2KEY(KS_PTERM_MOUSE, KE_FILLER)
- #define K_URXVT_MOUSE TERMCAP2KEY(KS_URXVT_MOUSE, KE_FILLER)
-+ #define K_SGR_MOUSE TERMCAP2KEY(KS_SGR_MOUSE, KE_FILLER)
-
- #define K_SELECT TERMCAP2KEY(KS_SELECT, KE_FILLER)
- #define K_TEAROFF TERMCAP2KEY(KS_TEAROFF, KE_FILLER)
-*** ../vim-7.3.631/src/misc2.c 2012-08-15 14:04:50.000000000 +0200
---- src/misc2.c 2012-08-15 15:46:07.000000000 +0200
-***************
-*** 2433,2438 ****
---- 2433,2441 ----
- #ifdef FEAT_MOUSE_URXVT
- {K_URXVT_MOUSE, (char_u *)"UrxvtMouse"},
- #endif
-+ #ifdef FEAT_MOUSE_SGR
-+ {K_SGR_MOUSE, (char_u *)"SgrMouse"},
-+ #endif
- {K_LEFTMOUSE, (char_u *)"LeftMouse"},
- {K_LEFTMOUSE_NM, (char_u *)"LeftMouseNM"},
- {K_LEFTDRAG, (char_u *)"LeftDrag"},
-*** ../vim-7.3.631/src/option.h 2012-07-10 16:49:08.000000000 +0200
---- src/option.h 2012-08-15 15:46:07.000000000 +0200
-***************
-*** 822,828 ****
- EXTERN char_u *p_ttym; /* 'ttymouse' */
- EXTERN unsigned ttym_flags;
- # ifdef IN_OPTION_C
-! static char *(p_ttym_values[]) = {"xterm", "xterm2", "dec", "netterm", "jsbterm", "pterm", "urxvt", NULL};
- # endif
- # define TTYM_XTERM 0x01
- # define TTYM_XTERM2 0x02
---- 822,828 ----
- EXTERN char_u *p_ttym; /* 'ttymouse' */
- EXTERN unsigned ttym_flags;
- # ifdef IN_OPTION_C
-! static char *(p_ttym_values[]) = {"xterm", "xterm2", "dec", "netterm", "jsbterm", "pterm", "urxvt", "sgr", NULL};
- # endif
- # define TTYM_XTERM 0x01
- # define TTYM_XTERM2 0x02
-***************
-*** 831,836 ****
---- 831,837 ----
- # define TTYM_JSBTERM 0x10
- # define TTYM_PTERM 0x20
- # define TTYM_URXVT 0x40
-+ # define TTYM_SGR 0x80
- #endif
- EXTERN char_u *p_udir; /* 'undodir' */
- EXTERN long p_ul; /* 'undolevels' */
-*** ../vim-7.3.631/src/os_unix.c 2012-04-20 15:55:10.000000000 +0200
---- src/os_unix.c 2012-08-15 16:06:54.000000000 +0200
-***************
-*** 2159,2168 ****
---- 2159,2171 ----
- * Return 1 for "xterm".
- * Return 2 for "xterm2".
- * Return 3 for "urxvt".
-+ * Return 4 for "sgr".
- */
- int
- use_xterm_mouse()
- {
-+ if (ttym_flags == TTYM_SGR)
-+ return 4;
- if (ttym_flags == TTYM_URXVT)
- return 3;
- if (ttym_flags == TTYM_XTERM2)
-***************
-*** 3339,3345 ****
- xterm_mouse_vers = use_xterm_mouse();
-
- # ifdef FEAT_MOUSE_URXVT
-! if (ttym_flags == TTYM_URXVT) {
- out_str_nf((char_u *)
- (on
- ? IF_EB("\033[?1015h", ESC_STR "[?1015h")
---- 3342,3349 ----
- xterm_mouse_vers = use_xterm_mouse();
-
- # ifdef FEAT_MOUSE_URXVT
-! if (ttym_flags == TTYM_URXVT)
-! {
- out_str_nf((char_u *)
- (on
- ? IF_EB("\033[?1015h", ESC_STR "[?1015h")
-***************
-*** 3348,3353 ****
---- 3352,3368 ----
- }
- # endif
-
-+ # ifdef FEAT_MOUSE_SGR
-+ if (ttym_flags == TTYM_SGR)
-+ {
-+ out_str_nf((char_u *)
-+ (on
-+ ? IF_EB("\033[?1006h", ESC_STR "[?1006h")
-+ : IF_EB("\033[?1006l", ESC_STR "[?1006l")));
-+ ison = on;
-+ }
-+ # endif
-+
- if (xterm_mouse_vers > 0)
- {
- if (on) /* enable mouse events, use mouse tracking if available */
-***************
-*** 3577,3582 ****
---- 3592,3618 ----
- else
- del_mouse_termcode(KS_URXVT_MOUSE);
- # endif
-+ # ifdef FEAT_MOUSE_SGR
-+ /* same as the dec mouse */
-+ if (use_xterm_mouse() == 4
-+ # ifdef FEAT_GUI
-+ && !gui.in_use
-+ # endif
-+ )
-+ {
-+ set_mouse_termcode(KS_SGR_MOUSE, (char_u *)(term_is_8bit(T_NAME)
-+ ? IF_EB("\233<", CSI_STR "<")
-+ : IF_EB("\033[<", ESC_STR "[<")));
-+
-+ if (*p_mouse != NUL)
-+ {
-+ mch_setmouse(FALSE);
-+ setmouse();
-+ }
-+ }
-+ else
-+ del_mouse_termcode(KS_SGR_MOUSE);
-+ # endif
- }
- #endif
-
-*** ../vim-7.3.631/src/term.c 2012-02-05 22:05:44.000000000 +0100
---- src/term.c 2012-08-15 16:14:09.000000000 +0200
-***************
-*** 1997,2002 ****
---- 1997,2003 ----
- # define HMT_JSBTERM 8
- # define HMT_PTERM 16
- # define HMT_URXVT 32
-+ # define HMT_SGR 64
- static int has_mouse_termcode = 0;
- # endif
-
-***************
-*** 2037,2042 ****
---- 2038,2048 ----
- has_mouse_termcode |= HMT_URXVT;
- else
- # endif
-+ # ifdef FEAT_MOUSE_SGR
-+ if (n == KS_SGR_MOUSE)
-+ has_mouse_termcode |= HMT_SGR;
-+ else
-+ # endif
- has_mouse_termcode |= HMT_NORMAL;
- # endif
- }
-***************
-*** 2079,2084 ****
---- 2085,2095 ----
- has_mouse_termcode &= ~HMT_URXVT;
- else
- # endif
-+ # ifdef FEAT_MOUSE_SGR
-+ if (n == KS_SGR_MOUSE)
-+ has_mouse_termcode &= ~HMT_SGR;
-+ else
-+ # endif
- has_mouse_termcode &= ~HMT_NORMAL;
- # endif
- }
-***************
-*** 4023,4029 ****
- #ifdef FEAT_TERMRESPONSE
- if (key_name[0] == NUL
- /* URXVT mouse uses <ESC>[#;#;#M, but we are matching <ESC>[ */
-! || key_name[0] == KS_URXVT_MOUSE)
- {
- /* Check for xterm version string: "<Esc>[>{x};{vers};{y}c". Also
- * eat other possible responses to t_RV, rxvt returns
---- 4034,4041 ----
- #ifdef FEAT_TERMRESPONSE
- if (key_name[0] == NUL
- /* URXVT mouse uses <ESC>[#;#;#M, but we are matching <ESC>[ */
-! || key_name[0] == KS_URXVT_MOUSE
-! || key_name[0] == KS_SGR_MOUSE)
- {
- /* Check for xterm version string: "<Esc>[>{x};{vers};{y}c". Also
- * eat other possible responses to t_RV, rxvt returns
-***************
-*** 4061,4066 ****
---- 4073,4088 ----
-
- if (tp[1 + (tp[0] != CSI)] == '>' && j == 2)
- {
-+ # ifdef TTYM_SGR
-+ if (extra >= 277
-+ # ifdef TTYM_URXVT
-+ && ttym_flags != TTYM_URXVT
-+ # endif
-+ )
-+ set_option_value((char_u *)"ttym", 0L,
-+ (char_u *)"sgr", 0);
-+ else
-+ # endif
- /* if xterm version >= 95 use mouse dragging */
- if (extra >= 95
- # ifdef TTYM_URXVT
-***************
-*** 4147,4167 ****
- /*
- * If it is a mouse click, get the coordinates.
- */
-! if (key_name[0] == (int)KS_MOUSE
- # ifdef FEAT_MOUSE_JSB
-! || key_name[0] == (int)KS_JSBTERM_MOUSE
- # endif
- # ifdef FEAT_MOUSE_NET
-! || key_name[0] == (int)KS_NETTERM_MOUSE
- # endif
- # ifdef FEAT_MOUSE_DEC
-! || key_name[0] == (int)KS_DEC_MOUSE
- # endif
- # ifdef FEAT_MOUSE_PTERM
-! || key_name[0] == (int)KS_PTERM_MOUSE
- # endif
- # ifdef FEAT_MOUSE_URXVT
-! || key_name[0] == (int)KS_URXVT_MOUSE
- # endif
- )
- {
---- 4169,4192 ----
- /*
- * If it is a mouse click, get the coordinates.
- */
-! if (key_name[0] == KS_MOUSE
- # ifdef FEAT_MOUSE_JSB
-! || key_name[0] == KS_JSBTERM_MOUSE
- # endif
- # ifdef FEAT_MOUSE_NET
-! || key_name[0] == KS_NETTERM_MOUSE
- # endif
- # ifdef FEAT_MOUSE_DEC
-! || key_name[0] == KS_DEC_MOUSE
- # endif
- # ifdef FEAT_MOUSE_PTERM
-! || key_name[0] == KS_PTERM_MOUSE
- # endif
- # ifdef FEAT_MOUSE_URXVT
-! || key_name[0] == KS_URXVT_MOUSE
-! # endif
-! # ifdef FEAT_MOUSE_SGR
-! || key_name[0] == KS_SGR_MOUSE
- # endif
- )
- {
-***************
-*** 4243,4250 ****
- }
- }
-
-! # ifdef FEAT_MOUSE_URXVT
-! if (key_name[0] == (int)KS_URXVT_MOUSE)
- {
- for (;;)
- {
---- 4268,4276 ----
- }
- }
-
-! # if defined(FEAT_MOUSE_URXVT) || defined(FEAT_MOUSE_SGR)
-! if (key_name[0] == KS_URXVT_MOUSE
-! || key_name[0] == KS_SGR_MOUSE)
- {
- for (;;)
- {
-***************
-*** 4256,4261 ****
---- 4282,4301 ----
- * ^-- row
- * ^----- column
- * ^-------- code
-+ *
-+ * SGR 1006 mouse reporting mode:
-+ * Almost identical to xterm mouse mode, except the values
-+ * are decimal instead of bytes.
-+ *
-+ * \033[<%d;%d;%dM
-+ * ^-- row
-+ * ^----- column
-+ * ^-------- code
-+ *
-+ * \033[<%d;%d;%dm : mouse release event
-+ * ^-- row
-+ * ^----- column
-+ * ^-------- code
- */
- p = tp + slen;
-
-***************
-*** 4263,4294 ****
- if (*p++ != ';')
- return -1;
-
- mouse_col = getdigits(&p) - 1;
- if (*p++ != ';')
- return -1;
-
- mouse_row = getdigits(&p) - 1;
-! if (*p++ != 'M')
- return -1;
-
- slen += (int)(p - (tp + slen));
-
- /* skip this one if next one has same code (like xterm
- * case) */
- j = termcodes[idx].len;
-! if (STRNCMP(tp, tp + slen, (size_t)j) == 0) {
-! /* check if the command is complete by looking for the
-! * M */
- int slen2;
- int cmd_complete = 0;
-! for (slen2 = slen; slen2 < len; slen2++) {
-! if (tp[slen2] == 'M') {
- cmd_complete = 1;
- break;
- }
- }
- p += j;
-! if (cmd_complete && getdigits(&p) == mouse_code) {
- slen += j; /* skip the \033[ */
- continue;
- }
---- 4303,4348 ----
- if (*p++ != ';')
- return -1;
-
-+ /* when mouse reporting is SGR, add 32 to mouse code */
-+ if (key_name[0] == KS_SGR_MOUSE)
-+ mouse_code += 32;
-+
- mouse_col = getdigits(&p) - 1;
- if (*p++ != ';')
- return -1;
-
- mouse_row = getdigits(&p) - 1;
-! if (key_name[0] == KS_SGR_MOUSE && *p == 'm')
-! mouse_code |= MOUSE_RELEASE;
-! else if (*p != 'M')
- return -1;
-+ p++;
-
- slen += (int)(p - (tp + slen));
-
- /* skip this one if next one has same code (like xterm
- * case) */
- j = termcodes[idx].len;
-! if (STRNCMP(tp, tp + slen, (size_t)j) == 0)
-! {
- int slen2;
- int cmd_complete = 0;
-!
-! /* check if the command is complete by looking for the
-! * 'M' */
-! for (slen2 = slen; slen2 < len; slen2++)
-! {
-! if (tp[slen2] == 'M'
-! || (key_name[0] == KS_SGR_MOUSE
-! && tp[slen2] == 'm'))
-! {
- cmd_complete = 1;
- break;
- }
- }
- p += j;
-! if (cmd_complete && getdigits(&p) == mouse_code)
-! {
- slen += j; /* skip the \033[ */
- continue;
- }
-***************
-*** 4302,4307 ****
---- 4356,4364 ----
- #ifdef FEAT_MOUSE_URXVT
- || key_name[0] == (int)KS_URXVT_MOUSE
- #endif
-+ #ifdef FEAT_MOUSE_SGR
-+ || key_name[0] == KS_SGR_MOUSE
-+ #endif
- )
- {
- # if !defined(MSWIN) && !defined(MSDOS)
-*** ../vim-7.3.631/src/version.c 2012-08-15 14:04:50.000000000 +0200
---- src/version.c 2012-08-15 15:47:30.000000000 +0200
-***************
-*** 384,389 ****
---- 384,394 ----
- # else
- "-mouse_urxvt",
- # endif
-+ # ifdef FEAT_MOUSE_SGR
-+ "+mouse_sgr",
-+ # else
-+ "-mouse_sgr",
-+ # endif
- #endif
- #ifdef __QNX__
- # ifdef FEAT_MOUSE_PTERM
-*** ../vim-7.3.631/src/version.c 2012-08-15 14:04:50.000000000 +0200
---- src/version.c 2012-08-15 15:47:30.000000000 +0200
-***************
-*** 716,717 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 632,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-243. You unsuccessfully try to download a pizza from www.dominos.com.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.633
-Fcc: 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.633
-Problem: Selection remains displayed as selected after selecting another
- text.
-Solution: Call xterm_update() before select(). (Andrew Pimlott)
-Files: src/os_unix.c
-
-
-*** ../vim-7.3.632/src/os_unix.c 2012-08-15 16:20:59.000000000 +0200
---- src/os_unix.c 2012-08-15 17:15:58.000000000 +0200
-***************
-*** 5196,5201 ****
---- 5196,5205 ----
- FD_SET(ConnectionNumber(xterm_dpy), &rfds);
- if (maxfd < ConnectionNumber(xterm_dpy))
- maxfd = ConnectionNumber(xterm_dpy);
-+
-+ /* An event may have already been read but not handled. In
-+ * particulary, XFlush may cause this. */
-+ xterm_update();
- }
- # endif
- # ifdef FEAT_MOUSE_GPM
-***************
-*** 5216,5229 ****
- maxfd = xsmp_icefd;
- }
- # endif
-! #ifdef FEAT_NETBEANS_INTG
- if (nb_fd != -1)
- {
- FD_SET(nb_fd, &rfds);
- if (maxfd < nb_fd)
- maxfd = nb_fd;
- }
-! #endif
-
- # ifdef OLD_VMS
- /* Old VMS as v6.2 and older have broken select(). It waits more than
---- 5220,5233 ----
- maxfd = xsmp_icefd;
- }
- # endif
-! # ifdef FEAT_NETBEANS_INTG
- if (nb_fd != -1)
- {
- FD_SET(nb_fd, &rfds);
- if (maxfd < nb_fd)
- maxfd = nb_fd;
- }
-! # endif
-
- # ifdef OLD_VMS
- /* Old VMS as v6.2 and older have broken select(). It waits more than
-*** ../vim-7.3.632/src/version.c 2012-08-15 16:20:59.000000000 +0200
---- src/version.c 2012-08-15 17:22:17.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 633,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-245. You use Real Audio to listen to a radio station from a distant
- city rather than turn on your stereo system.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.634
-Fcc: 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.634
-Problem: Month/Day format for undo is confusing. (Marcin Szamotulski)
-Solution: Always use Year/Month/Day, should work for everybody.
-Files: src/undo.c
-
-
-*** ../vim-7.3.633/src/undo.c 2012-06-01 13:46:06.000000000 +0200
---- src/undo.c 2012-08-23 12:43:24.000000000 +0200
-***************
-*** 2880,2890 ****
- 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
---- 2880,2887 ----
- if (time(NULL) - tt < (60L * 60L * 12L))
- /* within 12 hours */
- (void)strftime((char *)buf, buflen, "%H:%M:%S", curtime);
- else
-! /* longer ago */
- (void)strftime((char *)buf, buflen, "%Y/%m/%d %H:%M:%S", curtime);
- }
- else
-*** ../vim-7.3.633/src/version.c 2012-08-15 17:26:53.000000000 +0200
---- src/version.c 2012-08-23 12:58:36.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 634,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-10E. You start counting in hex.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.635
-Fcc: 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.635
-Problem: Issue 21: System call during startup sets 'lines' to a wrong
- value. (Karl Yngve)
-Solution: Don't set the shell size while the GUI is still starting up.
- (Christian Brabandt)
-Files: src/ui.c
-
-
-*** ../vim-7.3.634/src/ui.c 2012-07-10 16:49:08.000000000 +0200
---- src/ui.c 2012-08-23 13:25:26.000000000 +0200
-***************
-*** 298,303 ****
---- 298,306 ----
- int retval;
-
- #ifdef FEAT_GUI
-+ if (gui.starting)
-+ /* possibly a system call during startup, check later */
-+ return OK;
- if (gui.in_use)
- retval = gui_get_shellsize();
- else
-*** ../vim-7.3.634/src/version.c 2012-08-23 12:58:56.000000000 +0200
---- src/version.c 2012-08-23 13:27:00.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 635,
- /**/
-
---
-ARTHUR: This new learning amazes me, Sir Bedevere. Explain again how sheep's
- bladders may be employed to prevent earthquakes.
- "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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.636
-Fcc: 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.636 (after 7.3.625)
-Problem: Not all zero-width matches handled correctly for "gn".
-Solution: Move zero-width detection to a separate function. (Christian
- Brabandt)
-Files: src/search.c
-
-
-*** ../vim-7.3.635/src/search.c 2012-08-08 15:27:54.000000000 +0200
---- src/search.c 2012-08-23 15:52:50.000000000 +0200
-***************
-*** 4526,4531 ****
---- 4526,4533 ----
- #endif /* FEAT_TEXTOBJ */
-
- #if defined(FEAT_VISUAL) || defined(PROTO)
-+ static int is_zerowidth __ARGS((char_u *pattern));
-+
- /*
- * Find next search match under cursor, cursor at end.
- * Used while an operator is pending, and in Visual mode.
-***************
-*** 4546,4556 ****
- int visual_active = FALSE;
- int flags = 0;
- pos_T save_VIsual;
-- regmmatch_T regmatch;
-- int nmatched = 0;
- int zerowidth = FALSE;
-
--
- /* wrapping should not occur */
- p_ws = FALSE;
-
---- 4548,4555 ----
-***************
-*** 4583,4606 ****
- else
- orig_pos = pos = start_pos = curwin->w_cursor;
-
-! /*
-! * Check for zero-width pattern.
-! */
-! if (search_regcomp(spats[last_idx].pat, RE_SEARCH, RE_SEARCH,
-! ((SEARCH_HIS + SEARCH_KEEP)), &regmatch) == FAIL)
- return FAIL;
-
-- /* Zero-width pattern should match somewhere, then we can check if start
-- * and end are in the same position. */
-- nmatched = vim_regexec_multi(&regmatch, curwin, curbuf,
-- curwin->w_cursor.lnum, (colnr_T)0, NULL);
-- if (called_emsg)
-- return FAIL;
-- if (nmatched && regmatch.startpos[0].lnum == regmatch.endpos[0].lnum
-- && regmatch.endpos[0].col == regmatch.startpos[0].col)
-- zerowidth = TRUE;
-- vim_free(regmatch.regprog);
--
- /*
- * The trick is to first search backwards and then search forward again,
- * so that a match at the current cursor position will be correctly
---- 4582,4592 ----
- else
- orig_pos = pos = start_pos = curwin->w_cursor;
-
-! /* Is the pattern is zero-width? */
-! zerowidth = is_zerowidth(spats[last_idx].pat);
-! if (zerowidth == -1)
- return FAIL;
-
- /*
- * The trick is to first search backwards and then search forward again,
- * so that a match at the current cursor position will be correctly
-***************
-*** 4693,4698 ****
---- 4679,4721 ----
-
- return OK;
- }
-+
-+ /*
-+ * Check if the pattern is zero-width.
-+ * Returns TRUE, FALSE or -1 for failure.
-+ */
-+ static int
-+ is_zerowidth(pattern)
-+ char_u *pattern;
-+ {
-+ regmmatch_T regmatch;
-+ int nmatched = 0;
-+ int result = -1;
-+ pos_T pos;
-+
-+ if (search_regcomp(pattern, RE_SEARCH, RE_SEARCH,
-+ SEARCH_KEEP, &regmatch) == FAIL)
-+ return -1;
-+
-+ /* move to match */
-+ clearpos(&pos);
-+ if (searchit(curwin, curbuf, &pos, FORWARD, spats[last_idx].pat, 1,
-+ SEARCH_KEEP, RE_SEARCH, 0, NULL) != FAIL)
-+ {
-+ /* Zero-width pattern should match somewhere, then we can check if
-+ * start and end are in the same position. */
-+ nmatched = vim_regexec_multi(&regmatch, curwin, curbuf,
-+ pos.lnum, (colnr_T)0, NULL);
-+
-+ if (!called_emsg)
-+ result = (nmatched != 0
-+ && regmatch.startpos[0].lnum == regmatch.endpos[0].lnum
-+ && regmatch.startpos[0].col == regmatch.endpos[0].col);
-+ }
-+
-+ vim_free(regmatch.regprog);
-+ return result;
-+ }
- #endif /* FEAT_VISUAL */
-
- #if defined(FEAT_LISP) || defined(FEAT_CINDENT) || defined(FEAT_TEXTOBJ) \
-*** ../vim-7.3.635/src/version.c 2012-08-23 13:28:50.000000000 +0200
---- src/version.c 2012-08-23 15:25:23.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 636,
- /**/
-
---
-Edison's greatest achievement came in 1879, when he invented the
-electric company. Edison's design was a brilliant adaptation of the
-simple electrical circuit: the electric company sends electricity
-through a wire to a customer, then immediately gets the electricity
-back through another wire
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.637
-Fcc: 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.637
-Problem: Cannot catch the error caused by a foldopen when there is no fold.
- (ZyX, Issue 48)
-Solution: Do not break out of the loop early when inside try/catch.
- (Christian Brabandt) Except when there is a syntax error.
-Files: src/ex_docmd.c, src/globals.h
-
-
-*** ../vim-7.3.636/src/ex_docmd.c 2012-08-15 14:04:50.000000000 +0200
---- src/ex_docmd.c 2012-08-23 18:39:08.000000000 +0200
-***************
-*** 1295,1301 ****
- && cstack.cs_trylevel == 0
- #endif
- )
-! && !(did_emsg && used_getline
- && (getline_equal(fgetline, cookie, getexmodeline)
- || getline_equal(fgetline, cookie, getexline)))
- && (next_cmdline != NULL
---- 1295,1308 ----
- && cstack.cs_trylevel == 0
- #endif
- )
-! && !(did_emsg
-! #ifdef FEAT_EVAL
-! /* Keep going when inside try/catch, so that the error can be
-! * dealth with, except when it is a syntax error, it may cause
-! * the :endtry to be missed. */
-! && (cstack.cs_trylevel == 0 || did_emsg_syntax)
-! #endif
-! && used_getline
- && (getline_equal(fgetline, cookie, getexmodeline)
- || getline_equal(fgetline, cookie, getexline)))
- && (next_cmdline != NULL
-***************
-*** 1305,1310 ****
---- 1312,1318 ----
- || (flags & DOCMD_REPEAT)));
-
- vim_free(cmdline_copy);
-+ did_emsg_syntax = FALSE;
- #ifdef FEAT_EVAL
- free_cmdlines(&lines_ga);
- ga_clear(&lines_ga);
-***************
-*** 2137,2142 ****
---- 2145,2151 ----
- if (!sourcing)
- append_command(*cmdlinep);
- errormsg = IObuff;
-+ did_emsg_syntax = TRUE;
- }
- goto doend;
- }
-*** ../vim-7.3.636/src/globals.h 2012-07-10 16:49:08.000000000 +0200
---- src/globals.h 2012-08-23 18:29:09.000000000 +0200
-***************
-*** 183,188 ****
---- 183,190 ----
- #endif
- EXTERN int did_emsg; /* set by emsg() when the message
- is displayed or thrown */
-+ EXTERN int did_emsg_syntax; /* did_emsg set because of a
-+ syntax error */
- EXTERN int called_emsg; /* always set by emsg() */
- EXTERN int ex_exitval INIT(= 0); /* exit value for ex mode */
- EXTERN int emsg_on_display INIT(= FALSE); /* there is an error message */
-*** ../vim-7.3.636/src/version.c 2012-08-23 15:53:00.000000000 +0200
---- src/version.c 2012-08-23 17:59:12.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 637,
- /**/
-
---
-GOD: That is your purpose Arthur ... the Quest for the 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/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.638
-Fcc: 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.638
-Problem: Unecessary redraw of the previous character.
-Solution: Check if the character is double-width. (Jon Long)
-Files: src/screen.c
-
-
-*** ../vim-7.3.637/src/screen.c 2012-07-10 16:49:08.000000000 +0200
---- src/screen.c 2012-08-23 18:49:33.000000000 +0200
-***************
-*** 5332,5339 ****
- && (ScreenLinesUC[off_from] != ScreenLinesUC[off_to]
- || (ScreenLinesUC[off_from] != 0
- && comp_char_differs(off_from, off_to))
-! || (cols > 1 && ScreenLines[off_from + 1]
-! != ScreenLines[off_to + 1])))
- #endif
- ))
- return TRUE;
---- 5332,5340 ----
- && (ScreenLinesUC[off_from] != ScreenLinesUC[off_to]
- || (ScreenLinesUC[off_from] != 0
- && comp_char_differs(off_from, off_to))
-! || ((*mb_off2cells)(off_from, off_from + cols) > 1
-! && ScreenLines[off_from + 1]
-! != ScreenLines[off_to + 1])))
- #endif
- ))
- return TRUE;
-*** ../vim-7.3.637/src/version.c 2012-08-23 18:43:06.000000000 +0200
---- src/version.c 2012-08-23 18:47:11.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 638,
- /**/
-
---
-There is a fine line between courage and foolishness.
-Unfortunately, it's not a fence.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.639
-Fcc: 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.639
-Problem: It's not easy to build Vim on Windows with XPM support.
-Solution: Include the required files, they are quite small. Update the
- MSVC makefile to use them. Binary files are in the next patch.
- (Sergey Khorev)
-Files: src/xpm/COPYRIGHT, src/xpm/README.txt, src/xpm/include/simx.h,
- src/xpm/include/xpm.h, src/Make_mvc.mak, src/bigvim.bat,
- src/bigvim64.bat, Filelist
-
-
-*** ../vim-7.3.638/src/xpm/COPYRIGHT 1970-01-01 01:00:00.000000000 +0100
---- src/xpm/COPYRIGHT 1998-03-19 23:51:00.000000000 +0100
-***************
-*** 0 ****
---- 1,31 ----
-+ /*
-+ * Copyright (C) 1989-95 GROUPE BULL
-+ *
-+ * Permission is hereby granted, free of charge, to any person obtaining a copy
-+ * of this software and associated documentation files (the "Software"), to
-+ * deal in the Software without restriction, including without limitation the
-+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-+ * sell copies of the Software, and to permit persons to whom the Software is
-+ * furnished to do so, subject to the following conditions:
-+ *
-+ * The above copyright notice and this permission notice shall be included in
-+ * all copies or substantial portions of the Software.
-+ *
-+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-+ * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-+ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-+ *
-+ * Except as contained in this notice, the name of GROUPE BULL shall not be
-+ * used in advertising or otherwise to promote the sale, use or other dealings
-+ * in this Software without prior written authorization from GROUPE BULL.
-+ */
-+
-+ Arnaud LE HORS BULL Research FRANCE -- Koala Project
-+ (XPM - X PixMap format version 2 & 3)
-+ Internet: lehors@sophia.inria.fr
-+ Surface Mail: Arnaud LE HORS, INRIA - Sophia Antipolis,
-+ 2004, route des Lucioles, 06565 Valbonne Cedex -- FRANCE
-+ Voice phone: (33) 93.65.77.71, Fax: (33) 93 65 77 66, Telex: 97 00 50 F
-*** ../vim-7.3.638/src/xpm/README.txt 1970-01-01 01:00:00.000000000 +0100
---- src/xpm/README.txt 2012-08-29 13:29:17.000000000 +0200
-***************
-*** 0 ****
---- 1,23 ----
-+ This is XPM library compiled for Windows which is intended for use with Vim
-+ 'signs' feature.
-+
-+ Libraries in x86 directory were compiled with MSVC6 and MinGW. Proposed
-+ commands to compile Vim are:
-+
-+ Any version of MSVC starting from version 6.0:
-+ nmake -f Make_mvc.mak GUI=yes CSCOPE=yes NETBEANS=yes XPM=e:\hg\xpm\x86
-+
-+ MinGW:
-+ mingw32-make -f Make_ming.mak GUI=yes CSCOPE=yes XPM=e:/hg/xpm/x86
-+
-+ Microsoft Visual C++ on x64 (tested with versions 2008 and 2010):
-+ nmake -f Make_mvc.mak GUI=yes CSCOPE=yes XPM=E:\HG\xpm\x64
-+
-+ To test, open some file in Vim and execute commands below:
-+ :exe 'sign define vimxpm icon='.$VIMRUNTIME.'\\vim32x32.xpm'
-+ :exe 'sign place 1 line=1 name=vimxpm file='.expand('%:p')
-+
-+
-+ See COPYRIGHT for XPM licence.
-+
-+ If you have questions please email sergey.khorev@gmail.com.
-*** ../vim-7.3.638/src/xpm/include/simx.h 1970-01-01 01:00:00.000000000 +0100
---- src/xpm/include/simx.h 1998-03-19 23:51:00.000000000 +0100
-***************
-*** 0 ****
---- 1,139 ----
-+ /*
-+ * Copyright (C) 1989-95 GROUPE BULL
-+ *
-+ * Permission is hereby granted, free of charge, to any person obtaining a copy
-+ * of this software and associated documentation files (the "Software"), to
-+ * deal in the Software without restriction, including without limitation the
-+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-+ * sell copies of the Software, and to permit persons to whom the Software is
-+ * furnished to do so, subject to the following conditions:
-+ *
-+ * The above copyright notice and this permission notice shall be included in
-+ * all copies or substantial portions of the Software.
-+ *
-+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-+ * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-+ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-+ *
-+ * Except as contained in this notice, the name of GROUPE BULL shall not be
-+ * used in advertising or otherwise to promote the sale, use or other dealings
-+ * in this Software without prior written authorization from GROUPE BULL.
-+ */
-+
-+ /*****************************************************************************\
-+ * simx.h: 0.1a *
-+ * *
-+ * This emulates some Xlib functionality for MSW. It's not a general solution, *
-+ * it is close related to XPM-lib. It is only intended to satisfy what is need *
-+ * there. Thus allowing to read XPM files under MS windows. *
-+ * *
-+ * Developed by HeDu 3/94 (hedu@cul-ipn.uni-kiel.de) *
-+ \*****************************************************************************/
-+
-+
-+ #ifndef _SIMX_H
-+ #define _SIMX_H
-+
-+ #ifdef FOR_MSW
-+
-+ #include "windows.h" /* MS windows GDI types */
-+
-+ /*
-+ * minimal portability layer between ansi and KR C
-+ */
-+ /* this comes from xpm.h, and is here again, to avoid complicated
-+ includes, since this is included from xpm.h */
-+ /* these defines get undefed at the end of this file */
-+ #if __STDC__ || defined(__cplusplus) || defined(c_plusplus)
-+ /* ANSI || C++ */
-+ #define FUNC(f, t, p) extern t f p
-+ #define LFUNC(f, t, p) static t f p
-+ #else /* k&R */
-+ #define FUNC(f, t, p) extern t f()
-+ #define LFUNC(f, t, p) static t f()
-+ #endif
-+
-+
-+ FUNC(boundCheckingMalloc, void *, (long s));
-+ FUNC(boundCheckingCalloc, void *, (long num, long s));
-+ FUNC(boundCheckingRealloc, void *, (void *p, long s));
-+
-+ /* define MSW types for X window types,
-+ I don't know much about MSW, but the following defines do the job */
-+
-+ typedef HDC Display; /* this should be similar */
-+ typedef void *Screen; /* not used */
-+ typedef void *Visual; /* not used yet, is for GRAY, COLOR,
-+ * MONO */
-+
-+ typedef void *Colormap; /* should be COLORPALETTE, not done
-+ * yet */
-+
-+ typedef COLORREF Pixel;
-+
-+ #define PIXEL_ALREADY_TYPEDEFED /* to let xpm.h know about it */
-+
-+ typedef struct {
-+ Pixel pixel;
-+ BYTE red, green, blue;
-+ } XColor;
-+
-+ typedef struct {
-+ HBITMAP bitmap;
-+ unsigned int width;
-+ unsigned int height;
-+ unsigned int depth;
-+ } XImage;
-+
-+ #if defined(__cplusplus) || defined(c_plusplus)
-+ extern "C" {
-+ #endif
-+ /* some replacements for X... functions */
-+
-+ /* XDefaultXXX */
-+ FUNC(XDefaultVisual, Visual *, (Display *display, Screen *screen));
-+ FUNC(XDefaultScreen, Screen *, (Display *d));
-+ FUNC(XDefaultColormap, Colormap *, (Display *display, Screen *screen));
-+ FUNC(XDefaultDepth, int, (Display *d, Screen *s));
-+
-+ /* color related */
-+ FUNC(XParseColor, int, (Display *, Colormap *, char *, XColor *));
-+ FUNC(XAllocColor, int, (Display *, Colormap *, XColor *));
-+ FUNC(XQueryColors, void, (Display *display, Colormap *colormap,
-+ XColor *xcolors, int ncolors));
-+ FUNC(XFreeColors, int, (Display *d, Colormap cmap,
-+ unsigned long pixels[],
-+ int npixels, unsigned long planes));
-+ /* XImage */
-+ FUNC(XCreateImage, XImage *, (Display *, Visual *, int depth, int format,
-+ int x, int y, int width, int height,
-+ int pad, int foo));
-+
-+ /* free and destroy bitmap */
-+ FUNC(XDestroyImage, void /* ? */ , (XImage *));
-+ /* free only, bitmap remains */
-+ FUNC(XImageFree, void, (XImage *));
-+ #if defined(__cplusplus) || defined(c_plusplus)
-+ } /* end of extern "C" */
-+ #endif /* cplusplus */
-+
-+ #define ZPixmap 1 /* not really used */
-+ #define XYBitmap 1 /* not really used */
-+
-+ #ifndef True
-+ #define True 1
-+ #define False 0
-+ #endif
-+ #ifndef Bool
-+ typedef BOOL Bool; /* take MSW bool */
-+ #endif
-+ /* make these local here, simx.c gets the same from xpm.h */
-+ #undef LFUNC
-+ #undef FUNC
-+
-+ #endif /* def FOR_MSW */
-+
-+ #endif /* _SIMX_H */
-*** ../vim-7.3.638/src/xpm/include/xpm.h 1970-01-01 01:00:00.000000000 +0100
---- src/xpm/include/xpm.h 1998-03-19 23:51:00.000000000 +0100
-***************
-*** 0 ****
---- 1,501 ----
-+ /*
-+ * Copyright (C) 1989-95 GROUPE BULL
-+ *
-+ * Permission is hereby granted, free of charge, to any person obtaining a copy
-+ * of this software and associated documentation files (the "Software"), to
-+ * deal in the Software without restriction, including without limitation the
-+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-+ * sell copies of the Software, and to permit persons to whom the Software is
-+ * furnished to do so, subject to the following conditions:
-+ *
-+ * The above copyright notice and this permission notice shall be included in
-+ * all copies or substantial portions of the Software.
-+ *
-+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-+ * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-+ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-+ *
-+ * Except as contained in this notice, the name of GROUPE BULL shall not be
-+ * used in advertising or otherwise to promote the sale, use or other dealings
-+ * in this Software without prior written authorization from GROUPE BULL.
-+ */
-+
-+ /*****************************************************************************\
-+ * xpm.h: *
-+ * *
-+ * XPM library *
-+ * Include file *
-+ * *
-+ * Developed by Arnaud Le Hors *
-+ \*****************************************************************************/
-+
-+ /*
-+ * The code related to FOR_MSW has been added by
-+ * HeDu (hedu@cul-ipn.uni-kiel.de) 4/94
-+ */
-+
-+ /*
-+ * The code related to AMIGA has been added by
-+ * Lorens Younes (d93-hyo@nada.kth.se) 4/96
-+ */
-+
-+ #ifndef XPM_h
-+ #define XPM_h
-+
-+ /*
-+ * first some identification numbers:
-+ * the version and revision numbers are determined with the following rule:
-+ * SO Major number = LIB minor version number.
-+ * SO Minor number = LIB sub-minor version number.
-+ * e.g: Xpm version 3.2f
-+ * we forget the 3 which is the format number, 2 gives 2, and f gives 6.
-+ * thus we have XpmVersion = 2 and XpmRevision = 6
-+ * which gives SOXPMLIBREV = 2.6
-+ *
-+ * Then the XpmIncludeVersion number is built from these numbers.
-+ */
-+ #define XpmFormat 3
-+ #define XpmVersion 4
-+ #define XpmRevision 11
-+ #define XpmIncludeVersion ((XpmFormat * 100 + XpmVersion) * 100 + XpmRevision)
-+
-+ #ifndef XPM_NUMBERS
-+
-+ #ifdef FOR_MSW
-+ # define SYSV /* uses memcpy string.h etc. */
-+ # include <malloc.h>
-+ # include "simx.h" /* defines some X stuff using MSW types */
-+ #define NEED_STRCASECMP /* at least for MSVC++ */
-+ #else /* FOR_MSW */
-+ # ifdef AMIGA
-+ # include "amigax.h"
-+ # else /* not AMIGA */
-+ # include <X11/Xlib.h>
-+ # include <X11/Xutil.h>
-+ # endif /* not AMIGA */
-+ #endif /* FOR_MSW */
-+
-+ /* let's define Pixel if it is not done yet */
-+ #if ! defined(_XtIntrinsic_h) && ! defined(PIXEL_ALREADY_TYPEDEFED)
-+ typedef unsigned long Pixel; /* Index into colormap */
-+ # define PIXEL_ALREADY_TYPEDEFED
-+ #endif
-+
-+ /* make sure we know whether function prototypes are needed or not */
-+ #ifndef NeedFunctionPrototypes
-+ # if defined(__STDC__) || defined(__cplusplus) || defined(c_plusplus)
-+ # define NeedFunctionPrototypes 1
-+ # else
-+ # define NeedFunctionPrototypes 0
-+ # endif
-+ #endif
-+
-+
-+ /* Return ErrorStatus codes:
-+ * null if full success
-+ * positive if partial success
-+ * negative if failure
-+ */
-+
-+ #define XpmColorError 1
-+ #define XpmSuccess 0
-+ #define XpmOpenFailed -1
-+ #define XpmFileInvalid -2
-+ #define XpmNoMemory -3
-+ #define XpmColorFailed -4
-+
-+ typedef struct {
-+ char *name; /* Symbolic color name */
-+ char *value; /* Color value */
-+ Pixel pixel; /* Color pixel */
-+ } XpmColorSymbol;
-+
-+ typedef struct {
-+ char *name; /* name of the extension */
-+ unsigned int nlines; /* number of lines in this extension */
-+ char **lines; /* pointer to the extension array of strings */
-+ } XpmExtension;
-+
-+ typedef struct {
-+ char *string; /* characters string */
-+ char *symbolic; /* symbolic name */
-+ char *m_color; /* monochrom default */
-+ char *g4_color; /* 4 level grayscale default */
-+ char *g_color; /* other level grayscale default */
-+ char *c_color; /* color default */
-+ } XpmColor;
-+
-+ typedef struct {
-+ unsigned int width; /* image width */
-+ unsigned int height; /* image height */
-+ unsigned int cpp; /* number of characters per pixel */
-+ unsigned int ncolors; /* number of colors */
-+ XpmColor *colorTable; /* list of related colors */
-+ unsigned int *data; /* image data */
-+ } XpmImage;
-+
-+ typedef struct {
-+ unsigned long valuemask; /* Specifies which attributes are defined */
-+ char *hints_cmt; /* Comment of the hints section */
-+ char *colors_cmt; /* Comment of the colors section */
-+ char *pixels_cmt; /* Comment of the pixels section */
-+ unsigned int x_hotspot; /* Returns the x hotspot's coordinate */
-+ unsigned int y_hotspot; /* Returns the y hotspot's coordinate */
-+ unsigned int nextensions; /* number of extensions */
-+ XpmExtension *extensions; /* pointer to array of extensions */
-+ } XpmInfo;
-+
-+ typedef int (*XpmAllocColorFunc)(
-+ #if NeedFunctionPrototypes
-+ Display* /* display */,
-+ Colormap /* colormap */,
-+ char* /* colorname */,
-+ XColor* /* xcolor */,
-+ void* /* closure */
-+ #endif
-+ );
-+
-+ typedef int (*XpmFreeColorsFunc)(
-+ #if NeedFunctionPrototypes
-+ Display* /* display */,
-+ Colormap /* colormap */,
-+ Pixel* /* pixels */,
-+ int /* npixels */,
-+ void* /* closure */
-+ #endif
-+ );
-+
-+ typedef struct {
-+ unsigned long valuemask; /* Specifies which attributes are
-+ defined */
-+
-+ Visual *visual; /* Specifies the visual to use */
-+ Colormap colormap; /* Specifies the colormap to use */
-+ unsigned int depth; /* Specifies the depth */
-+ unsigned int width; /* Returns the width of the created
-+ pixmap */
-+ unsigned int height; /* Returns the height of the created
-+ pixmap */
-+ unsigned int x_hotspot; /* Returns the x hotspot's
-+ coordinate */
-+ unsigned int y_hotspot; /* Returns the y hotspot's
-+ coordinate */
-+ unsigned int cpp; /* Specifies the number of char per
-+ pixel */
-+ Pixel *pixels; /* List of used color pixels */
-+ unsigned int npixels; /* Number of used pixels */
-+ XpmColorSymbol *colorsymbols; /* List of color symbols to override */
-+ unsigned int numsymbols; /* Number of symbols */
-+ char *rgb_fname; /* RGB text file name */
-+ unsigned int nextensions; /* Number of extensions */
-+ XpmExtension *extensions; /* List of extensions */
-+
-+ unsigned int ncolors; /* Number of colors */
-+ XpmColor *colorTable; /* List of colors */
-+ /* 3.2 backward compatibility code */
-+ char *hints_cmt; /* Comment of the hints section */
-+ char *colors_cmt; /* Comment of the colors section */
-+ char *pixels_cmt; /* Comment of the pixels section */
-+ /* end 3.2 bc */
-+ unsigned int mask_pixel; /* Color table index of transparent
-+ color */
-+
-+ /* Color Allocation Directives */
-+ Bool exactColors; /* Only use exact colors for visual */
-+ unsigned int closeness; /* Allowable RGB deviation */
-+ unsigned int red_closeness; /* Allowable red deviation */
-+ unsigned int green_closeness; /* Allowable green deviation */
-+ unsigned int blue_closeness; /* Allowable blue deviation */
-+ int color_key; /* Use colors from this color set */
-+
-+ Pixel *alloc_pixels; /* Returns the list of alloc'ed color
-+ pixels */
-+ int nalloc_pixels; /* Returns the number of alloc'ed
-+ color pixels */
-+
-+ Bool alloc_close_colors; /* Specify whether close colors should
-+ be allocated using XAllocColor
-+ or not */
-+ int bitmap_format; /* Specify the format of 1bit depth
-+ images: ZPixmap or XYBitmap */
-+
-+ /* Color functions */
-+ XpmAllocColorFunc alloc_color; /* Application color allocator */
-+ XpmFreeColorsFunc free_colors; /* Application color de-allocator */
-+ void *color_closure; /* Application private data to pass to
-+ alloc_color and free_colors */
-+
-+ } XpmAttributes;
-+
-+ /* XpmAttributes value masks bits */
-+ #define XpmVisual (1L<<0)
-+ #define XpmColormap (1L<<1)
-+ #define XpmDepth (1L<<2)
-+ #define XpmSize (1L<<3) /* width & height */
-+ #define XpmHotspot (1L<<4) /* x_hotspot & y_hotspot */
-+ #define XpmCharsPerPixel (1L<<5)
-+ #define XpmColorSymbols (1L<<6)
-+ #define XpmRgbFilename (1L<<7)
-+ /* 3.2 backward compatibility code */
-+ #define XpmInfos (1L<<8)
-+ #define XpmReturnInfos XpmInfos
-+ /* end 3.2 bc */
-+ #define XpmReturnPixels (1L<<9)
-+ #define XpmExtensions (1L<<10)
-+ #define XpmReturnExtensions XpmExtensions
-+
-+ #define XpmExactColors (1L<<11)
-+ #define XpmCloseness (1L<<12)
-+ #define XpmRGBCloseness (1L<<13)
-+ #define XpmColorKey (1L<<14)
-+
-+ #define XpmColorTable (1L<<15)
-+ #define XpmReturnColorTable XpmColorTable
-+
-+ #define XpmReturnAllocPixels (1L<<16)
-+ #define XpmAllocCloseColors (1L<<17)
-+ #define XpmBitmapFormat (1L<<18)
-+
-+ #define XpmAllocColor (1L<<19)
-+ #define XpmFreeColors (1L<<20)
-+ #define XpmColorClosure (1L<<21)
-+
-+
-+ /* XpmInfo value masks bits */
-+ #define XpmComments XpmInfos
-+ #define XpmReturnComments XpmComments
-+
-+ /* XpmAttributes mask_pixel value when there is no mask */
-+ #ifndef FOR_MSW
-+ #define XpmUndefPixel 0x80000000
-+ #else
-+ /* int is only 16 bit for MSW */
-+ #define XpmUndefPixel 0x8000
-+ #endif
-+
-+ /*
-+ * color keys for visual type, they must fit along with the number key of
-+ * each related element in xpmColorKeys[] defined in XpmI.h
-+ */
-+ #define XPM_MONO 2
-+ #define XPM_GREY4 3
-+ #define XPM_GRAY4 3
-+ #define XPM_GREY 4
-+ #define XPM_GRAY 4
-+ #define XPM_COLOR 5
-+
-+
-+ /* macros for forward declarations of functions with prototypes */
-+ #if NeedFunctionPrototypes
-+ #define FUNC(f, t, p) extern t f p
-+ #define LFUNC(f, t, p) static t f p
-+ #else
-+ #define FUNC(f, t, p) extern t f()
-+ #define LFUNC(f, t, p) static t f()
-+ #endif
-+
-+
-+ /*
-+ * functions declarations
-+ */
-+
-+ #ifdef __cplusplus
-+ extern "C" {
-+ #endif
-+
-+ /* FOR_MSW, all ..Pixmap.. are excluded, only the ..XImage.. are used */
-+ /* Same for Amiga! */
-+
-+ #if !defined(FOR_MSW) && !defined(AMIGA)
-+ FUNC(XpmCreatePixmapFromData, int, (Display *display,
-+ Drawable d,
-+ char **data,
-+ Pixmap *pixmap_return,
-+ Pixmap *shapemask_return,
-+ XpmAttributes *attributes));
-+
-+ FUNC(XpmCreateDataFromPixmap, int, (Display *display,
-+ char ***data_return,
-+ Pixmap pixmap,
-+ Pixmap shapemask,
-+ XpmAttributes *attributes));
-+
-+ FUNC(XpmReadFileToPixmap, int, (Display *display,
-+ Drawable d,
-+ char *filename,
-+ Pixmap *pixmap_return,
-+ Pixmap *shapemask_return,
-+ XpmAttributes *attributes));
-+
-+ FUNC(XpmWriteFileFromPixmap, int, (Display *display,
-+ char *filename,
-+ Pixmap pixmap,
-+ Pixmap shapemask,
-+ XpmAttributes *attributes));
-+ #endif
-+
-+ FUNC(XpmCreateImageFromData, int, (Display *display,
-+ char **data,
-+ XImage **image_return,
-+ XImage **shapemask_return,
-+ XpmAttributes *attributes));
-+
-+ FUNC(XpmCreateDataFromImage, int, (Display *display,
-+ char ***data_return,
-+ XImage *image,
-+ XImage *shapeimage,
-+ XpmAttributes *attributes));
-+
-+ FUNC(XpmReadFileToImage, int, (Display *display,
-+ char *filename,
-+ XImage **image_return,
-+ XImage **shapeimage_return,
-+ XpmAttributes *attributes));
-+
-+ FUNC(XpmWriteFileFromImage, int, (Display *display,
-+ char *filename,
-+ XImage *image,
-+ XImage *shapeimage,
-+ XpmAttributes *attributes));
-+
-+ FUNC(XpmCreateImageFromBuffer, int, (Display *display,
-+ char *buffer,
-+ XImage **image_return,
-+ XImage **shapemask_return,
-+ XpmAttributes *attributes));
-+ #if !defined(FOR_MSW) && !defined(AMIGA)
-+ FUNC(XpmCreatePixmapFromBuffer, int, (Display *display,
-+ Drawable d,
-+ char *buffer,
-+ Pixmap *pixmap_return,
-+ Pixmap *shapemask_return,
-+ XpmAttributes *attributes));
-+
-+ FUNC(XpmCreateBufferFromImage, int, (Display *display,
-+ char **buffer_return,
-+ XImage *image,
-+ XImage *shapeimage,
-+ XpmAttributes *attributes));
-+
-+ FUNC(XpmCreateBufferFromPixmap, int, (Display *display,
-+ char **buffer_return,
-+ Pixmap pixmap,
-+ Pixmap shapemask,
-+ XpmAttributes *attributes));
-+ #endif
-+ FUNC(XpmReadFileToBuffer, int, (char *filename, char **buffer_return));
-+ FUNC(XpmWriteFileFromBuffer, int, (char *filename, char *buffer));
-+
-+ FUNC(XpmReadFileToData, int, (char *filename, char ***data_return));
-+ FUNC(XpmWriteFileFromData, int, (char *filename, char **data));
-+
-+ FUNC(XpmAttributesSize, int, ());
-+ FUNC(XpmFreeAttributes, void, (XpmAttributes *attributes));
-+ FUNC(XpmFreeExtensions, void, (XpmExtension *extensions,
-+ int nextensions));
-+
-+ FUNC(XpmFreeXpmImage, void, (XpmImage *image));
-+ FUNC(XpmFreeXpmInfo, void, (XpmInfo *info));
-+ FUNC(XpmGetErrorString, char *, (int errcode));
-+ FUNC(XpmLibraryVersion, int, ());
-+
-+ /* XpmImage functions */
-+ FUNC(XpmReadFileToXpmImage, int, (char *filename,
-+ XpmImage *image,
-+ XpmInfo *info));
-+
-+ FUNC(XpmWriteFileFromXpmImage, int, (char *filename,
-+ XpmImage *image,
-+ XpmInfo *info));
-+ #if !defined(FOR_MSW) && !defined(AMIGA)
-+ FUNC(XpmCreatePixmapFromXpmImage, int, (Display *display,
-+ Drawable d,
-+ XpmImage *image,
-+ Pixmap *pixmap_return,
-+ Pixmap *shapemask_return,
-+ XpmAttributes *attributes));
-+ #endif
-+ FUNC(XpmCreateImageFromXpmImage, int, (Display *display,
-+ XpmImage *image,
-+ XImage **image_return,
-+ XImage **shapeimage_return,
-+ XpmAttributes *attributes));
-+
-+ FUNC(XpmCreateXpmImageFromImage, int, (Display *display,
-+ XImage *image,
-+ XImage *shapeimage,
-+ XpmImage *xpmimage,
-+ XpmAttributes *attributes));
-+ #if !defined(FOR_MSW) && !defined(AMIGA)
-+ FUNC(XpmCreateXpmImageFromPixmap, int, (Display *display,
-+ Pixmap pixmap,
-+ Pixmap shapemask,
-+ XpmImage *xpmimage,
-+ XpmAttributes *attributes));
-+ #endif
-+ FUNC(XpmCreateDataFromXpmImage, int, (char ***data_return,
-+ XpmImage *image,
-+ XpmInfo *info));
-+
-+ FUNC(XpmCreateXpmImageFromData, int, (char **data,
-+ XpmImage *image,
-+ XpmInfo *info));
-+
-+ FUNC(XpmCreateXpmImageFromBuffer, int, (char *buffer,
-+ XpmImage *image,
-+ XpmInfo *info));
-+
-+ FUNC(XpmCreateBufferFromXpmImage, int, (char **buffer_return,
-+ XpmImage *image,
-+ XpmInfo *info));
-+
-+ FUNC(XpmGetParseError, int, (char *filename,
-+ int *linenum_return,
-+ int *charnum_return));
-+
-+ FUNC(XpmFree, void, (void *ptr));
-+
-+ #ifdef __cplusplus
-+ } /* for C++ V2.0 */
-+ #endif
-+
-+
-+ /* backward compatibility */
-+
-+ /* for version 3.0c */
-+ #define XpmPixmapColorError XpmColorError
-+ #define XpmPixmapSuccess XpmSuccess
-+ #define XpmPixmapOpenFailed XpmOpenFailed
-+ #define XpmPixmapFileInvalid XpmFileInvalid
-+ #define XpmPixmapNoMemory XpmNoMemory
-+ #define XpmPixmapColorFailed XpmColorFailed
-+
-+ #define XpmReadPixmapFile(dpy, d, file, pix, mask, att) \
-+ XpmReadFileToPixmap(dpy, d, file, pix, mask, att)
-+ #define XpmWritePixmapFile(dpy, file, pix, mask, att) \
-+ XpmWriteFileFromPixmap(dpy, file, pix, mask, att)
-+
-+ /* for version 3.0b */
-+ #define PixmapColorError XpmColorError
-+ #define PixmapSuccess XpmSuccess
-+ #define PixmapOpenFailed XpmOpenFailed
-+ #define PixmapFileInvalid XpmFileInvalid
-+ #define PixmapNoMemory XpmNoMemory
-+ #define PixmapColorFailed XpmColorFailed
-+
-+ #define ColorSymbol XpmColorSymbol
-+
-+ #define XReadPixmapFile(dpy, d, file, pix, mask, att) \
-+ XpmReadFileToPixmap(dpy, d, file, pix, mask, att)
-+ #define XWritePixmapFile(dpy, file, pix, mask, att) \
-+ XpmWriteFileFromPixmap(dpy, file, pix, mask, att)
-+ #define XCreatePixmapFromData(dpy, d, data, pix, mask, att) \
-+ XpmCreatePixmapFromData(dpy, d, data, pix, mask, att)
-+ #define XCreateDataFromPixmap(dpy, data, pix, mask, att) \
-+ XpmCreateDataFromPixmap(dpy, data, pix, mask, att)
-+
-+ #endif /* XPM_NUMBERS */
-+ #endif
-*** ../vim-7.3.638/src/Make_mvc.mak 2012-08-02 21:48:20.000000000 +0200
---- src/Make_mvc.mak 2012-08-29 13:46:05.000000000 +0200
-***************
-*** 89,94 ****
---- 89,96 ----
- # Netbeans Support: NETBEANS=[yes or no] (default is yes if GUI is yes)
- #
- # XPM Image Support: XPM=[path to XPM directory]
-+ # Default is "xpm", using the files included in the distribution.
-+ # Use "no" to disable this feature.
- #
- # Optimization: OPTIMIZE=[SPACE, SPEED, MAXSPEED] (default is MAXSPEED)
- #
-***************
-*** 279,295 ****
- NETBEANS_LIB = WSock32.lib
- !endif
-
-! !ifdef XPM
- # XPM - Include support for XPM signs
-! # You need to download or build xpm.lib somehow.
-! # You can get the most recent version of libXpm-*.zip from
-! # http://cgit.freedesktop.org/xorg/lib/libXpm
-! # from which you must build xpm.lib yourself
-! # OR get and unpack: ftp://ftp.vim.org/pub/vim/pcextra/xpm.zip
- XPM_OBJ = $(OBJDIR)/xpm_w32.obj
- XPM_DEFS = -DFEAT_XPM_W32
- XPM_LIB = $(XPM)\lib\libXpm.lib
-! XPM_INC = -I $(XPM)\include
- !endif
- !endif
-
---- 281,301 ----
- NETBEANS_LIB = WSock32.lib
- !endif
-
-! !ifndef XPM
-! # XPM is not set, use the included xpm files, depending on the architecture.
-! !if ("$(CPU)" == "AMD64") || ("$(CPU)" == "IA64")
-! XPM = xpm\x64
-! !else
-! XPM = xpm\x86
-! !endif
-! !endif
-! !if "$(XPM)" != "no"
- # XPM - Include support for XPM signs
-! # See the xpm directory for more information.
- XPM_OBJ = $(OBJDIR)/xpm_w32.obj
- XPM_DEFS = -DFEAT_XPM_W32
- XPM_LIB = $(XPM)\lib\libXpm.lib
-! XPM_INC = -I $(XPM)\include -I $(XPM)\..\include
- !endif
- !endif
-
-*** ../vim-7.3.638/src/bigvim.bat 2010-08-15 21:57:29.000000000 +0200
---- src/bigvim.bat 2012-08-29 13:46:18.000000000 +0200
-***************
-*** 1,3 ****
- :: command to build big Vim with OLE, Perl, Python, Ruby and Tcl
-! nmake -f Make_mvc.mak GUI=yes OLE=yes PERL=E:\perl512 DYNAMIC_PERL=yes PERL_VER=512 PYTHON=e:\python27 DYNAMIC_PYTHON=yes PYTHON_VER=27 PYTHON3=e:\python31 DYNAMIC_PYTHON3=yes PYTHON3_VER=31 RUBY=e:\ruby191 DYNAMIC_RUBY=yes RUBY_VER=191 RUBY_VER_LONG=1.9.1 TCL=e:\tcl DYNAMIC_TCL=yes %1 IME=yes CSCOPE=yes XPM=e:\xpm
-
---- 1,5 ----
- :: command to build big Vim with OLE, Perl, Python, Ruby and Tcl
-! SET VCDIR="C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\"
-! SET TOOLDIR=E:\
-! %VCDIR%nmake -f Make_mvc.mak GUI=yes OLE=yes PERL=E:\perl514 DYNAMIC_PERL=yes PERL_VER=514 PYTHON=%TOOLDIR%python27 DYNAMIC_PYTHON=yes PYTHON_VER=27 PYTHON3=%TOOLDIR%python32 DYNAMIC_PYTHON3=yes PYTHON3_VER=32 RUBY=%TOOLDIR%ruby192 DYNAMIC_RUBY=yes RUBY_VER=192 RUBY_VER_LONG=1.9.2 TCL=%TOOLDIR%tcl TCL_VER=85 TCL_VER_LONG=8.5 DYNAMIC_TCL=yes %1 IME=yes CSCOPE=yes
-
-*** ../vim-7.3.638/src/bigvim64.bat 2012-08-29 14:16:38.000000000 +0200
---- src/bigvim64.bat 2012-08-29 13:46:35.000000000 +0200
-***************
-*** 0 ****
---- 1,6 ----
-+ :: command to build big Vim 64 bit with OLE, Perl, Python, Ruby and Tcl
-+ :: First run: %VCDIR%\vcvarsall.bat x86_amd64
-+ SET VCDIR="C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\"
-+ SET TOOLDIR=E:\
-+ %VCDIR%\bin\nmake -f Make_mvc.mak CPU=AMD64 GUI=yes OLE=yes PERL=E:\perl514 DYNAMIC_PERL=yes PERL_VER=514 PYTHON=%TOOLDIR%python27 DYNAMIC_PYTHON=yes PYTHON_VER=27 PYTHON3=%TOOLDIR%python32 DYNAMIC_PYTHON3=yes PYTHON3_VER=32 RUBY=%TOOLDIR%ruby192 DYNAMIC_RUBY=yes RUBY_VER=192 RUBY_VER_LONG=1.9.2 TCL=%TOOLDIR%tcl TCL_VER=85 TCL_VER_LONG=8.5 DYNAMIC_TCL=yes %1 IME=yes CSCOPE=yes
-+
-*** ../vim-7.3.638/Filelist 2012-07-16 17:27:57.000000000 +0200
---- Filelist 2012-08-29 13:53:52.000000000 +0200
-***************
-*** 349,354 ****
---- 349,360 ----
- src/vim*.ico \
- src/vim.tlb \
- src/vimtbar.lib \
-+ src/xpm/COPYRIGHT \
-+ src/xpm/README.txt \
-+ src/xpm/include/*.h \
-+ src/xpm/x64/lib/libXpm.lib \
-+ src/xpm/x86/lib/libXpm.a \
-+ src/xpm/x86/lib/libXpm.lib \
- src/vimtbar.dll \
- nsis/icons/*.bmp \
- nsis/icons/*.ico \
-*** ../vim-7.3.638/src/version.c 2012-08-29 14:17:51.000000000 +0200
---- src/version.c 2012-08-29 14:14:19.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 639,
- /**/
-
---
-A successful man is one who makes more money than his wife can spend.
-A successful woman is one who can find such a man.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.640
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=latin1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.640
-Problem: It's not easy to build Vim on Windows with XPM support.
-Solution: Binary files for 7.3.639. (Sergey Khorev)
-Files: src/xpm/x64/lib/libXpm.lib, src/xpm/x86/lib/libXpm.a,
- src/xpm/x86/lib/libXpm.lib
-
-
-NOTE: These are binary files, this may not work for everybody, thus I
-put them in a separate patch.
-
-
-*** ../vim-7.3.639/src/xpm/x64/lib/libXpm.lib 1970-01-01 01:00:00.000000000 +0100
---- src/xpm/x64/lib/libXpm.lib 2012-08-26 17:34:14.000000000 +0200
-***************
-*** 0 ****
---- 1,469 ----
-+ !<arch>
-+ / 1345988052 0 12499 `
-+
-+
-+
-+
-+ / 1345988052 0 11841 `
-+ 
-+ ´
-+
-+ WrFFrI.obj/ 1345988051 100666 12566 `
-+ d†>
-+ 
-+
-+
-+
-+
-+ d
-+ P
-+
-+
-+ t
-+ 
-+ T
-+ 2`,
-+ "XPMENDEXT"
-+ "%s"
-+ "XPMEXT %s"
-+ sAƒy(
-+
-+
-+
-+
-+ static char * %s[] = {
-+
-+
-+
-+ 
-+ ªXÞ+
-+ d†
-+ 
-+ parse.obj/ 1345988051 100666 16304 `
-+ d†7
-+ 
-+ 
-+
-+
-+
-+ HÿÈDþ„ÀuñD‹åH”$P
-+ ÿ„Àuò‹t$,D‹l$(HƒÃ0ÿÆH‰\$0‰t$,A;õƒˆ
-+ HÿˆLÿ„Éuò3íDÂ{ÆD$P
-+ HÿÈDÿ„ÀuñH”$P
-+ HÿˆLÿ„ÉuòAÂEÿH‰~(ˆL$PD;àsI‹Îè
-+
-+
-+
-+
-+
-+ ¸ýÿÿÿé)
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+ ÿÿÿD
-+ àÃÀ`P0
-+
-+ H‹L$(è
-+ s.9|$Xt!LÂC(HÂS0H‹Ãè
-+
-+
-+ 
-+
-+ d†
-+ 
-+ 4
-+ 2`w
-+ simx.obj/ 1345988050 100666 8727 `
-+ d†2
-+ 
-+ 
-+ 4
-+ 2p3ÀÃÂAÃø wÂAÃÃÂAŸƒøwÂA©ÃÂA¿ƒøwÂAÉÃ3ÀÃHē(L‹ÚL‹ÑH…É„Â
-+ ‹ÃÃâè
-+ 
-+ T
-+
-+ R`Hƒì(H…Étè
-+
-+ 
-+ 20@comp.id xƒ
-+
-+
-+ scan.obj/ 1345988050 100666 8135 `
-+ d†
-+ 
-+ H‰\$0‹ZH‰|$8‹zH™;ßs9(t
-+ ÿÃHƒÀ;ßrò;ßu,‹R;úr҉VÃâè
-+
-+
-+ ¸ýÿÿÿé&
-+ ÿÂIÿÀA;ÖrÚA;ÖtNH‹D$HH…ÀtJ‹<Àë HÂ<RHÃçIûIÂ\$àI+ü¾
-+
-+
-+ 
-+
-+
-+ 
-+ rgb.obj/ 1345988050 100666 39939 `
-+ d†ö
-+ 
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+ +
-+ ,
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+ &(
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+ S•
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+ RdFToI.obj/ 1345988049 100666 5315 `
-+ d†
-+ 
-+
-+
-+
-+
-+
-+
-+ Ç
-+
-+
-+ RdFToDat.obj/ 1345988049 100666 1111 `
-+ d†
-+ 
-+ RdFToBuf.obj/ 1345988049 100666 2845 `
-+ d†
-+ 
-+
-+
-+
-+ misc.obj/ 1345988048 100666 2352 `
-+ d†
-+ 
-+
-+
-+ d†
-+ 
-+ s‹S(…ÒtH‹K0è
-+
-+
-+
-+
-+ 
-+ 20Ç
-+ sÂ
-+ sÂ
-+
-+
-+ Image.obj/ 1345988048 100666 1064 `
-+ d†
-+ 
-+ d†
-+ 
-+
-+
-+
-+
-+
-+
-+
-+
-+ 
-+ 4
-+ 2pH‰\$H‰|$¶L‹Y3ÀH‹úL‹ÑL‹Â„Ût$D¶Ëffff„
-+ 
-+ t
-+ 
-+ 4
-+ 2pH‰t$WHē H‹yH‹ñH…ÿtFHcH‰\$0HÂÇH;ßv f„
-+ 
-+ d
-+ 2p@comp.id xƒ
-+
-+
-+ d†=
-+ 
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+ 
-+
-+
-+
-+
-+
-+
-+
-+
-+ „ÉuÉA€9
-+ „Àt4Aƒûÿuـ>
-+ ƒøÿuÀ>
-+
-+
-+ T
-+
-+ Àp`P
-+ 
-+ 4
-+ 2pH‰\$VWATHÂì0
-+ H‰¹(
-+ ¸þÿÿÿéÃ
-+
-+
-+
-+ 
-+ CrIFrDat.obj/ 1345988047 100666 2621 `
-+ d†
-+ 
-+ CrIFrBuf.obj/ 1345988047 100666 2483 `
-+ d†
-+ 
-+ create.obj/ 1345988047 100666 16420 `
-+ d†,
-+ 
-+
-+
-+
-+
-+
-+
-+
-+
-+ D‹Ã‰Œ$
-+ ƒøuÂHë ¹
-+ ‹´$Â
-+ 
-+ Ô
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+ 
-+ Àp`P
-+
-+ öt‹këI‹Ãè
-+ s3ƒ¼$„
-+ 
-+
-+
-+
-+
-+ d†)
-+ 
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+ HÿÂAˆLÿ„ÉuñI‰E
-+ Àp`P
-+ E…Àt&fff„
-+ ‰E
-+
-+ Ä
-+ ƒ…
-+ ‰D$0ë‹ñ‰L$8E‹g º
-+ Àp`P
-+
-+
-+ 
-+
-+
-+ d†)
-+ 
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+ …Àt.L‹Èffffff„
-+
-+ t
-+ àÃ`,
-+ "XPMENDEXT"
-+ "%s"
-+ "XPMEXT %s"
-+ I‹xH…ÿt3ÀHƒÉÿò®HքÂD
-+ H‹|$ÃH‹|$‹ÂÃ
-+ Aº E‹çrD‹æH…ÛtAº
-+ sA‹P(…Òt I‹H0è
-+ ÿ„ÀuòE…ätL‹CM…ÀtH >HÂ
-+ ÿ„Àuòý‰|$@E…ät L‹CM…Àt‹ÃHÂ
-+
-+ Àp`P
-+
-+
-+ static char * image_name[] = {
-+
-+ 
-+
-+
-+
-+
-+
-+
-+
-+
-+ d†2
-+ 
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+ T
-+ T
-+ T
-+ H‰Q0‰Q8H‰Qp‰QhH‰QxH‰‘€
-+ sH‹G0H‰C`‹G(‰CXL‰o0D‰o(öL‹l$Ptƒ ‹G ‰C$‹G$‰C(ƒ ‹F‹ ‰C,ƒÉ‰ ‹‰C‹F‰C HƒÄ _^[Ãa
-+
-+
-+
-+
-+
-+
-+
-+ s‹SX…ÒtH‹K`è
-+ 
-+ 4
-+ 2p@comp.id xƒ
-+
-+
-+ 
-+ 
-\ No newline at end of file
-*** ../vim-7.3.639/src/xpm/x86/lib/libXpm.a 1970-01-01 01:00:00.000000000 +0100
---- src/xpm/x86/lib/libXpm.a 2012-08-26 17:30:56.000000000 +0200
-***************
-*** 0 ****
---- 1,125 ----
-+ !<arch>
-+ / 1345987854 0 0 0 1562 `
-+
-+
-+
-+
-+
-+
-+ L
-+ L
-+
-+
-+
-+
-+ "XÇFPMENÇFDEXTfÇF "
-+
-+ static char * image_name[] = {
-+
-+ "XPMEXT %s"
-+ "%s"
-+
-+ CrDatFrI.o/ 1345987850 0 0 100666 3164 `
-+ L
-+
-+ ‰…äûÿÿ‹…°ûÿÿ@‰…àûÿÿé+ùÿÿf‰$Cè
-+ L
-+ ýÿÿéíüÿÿº
-+
-+ ‰B…ÿ„Ä
-+ ùÿÿéÃûÿÿ1À‹Âh÷ÿÿ‰…L÷ÿÿ9ÂL÷ÿÿƒÃýÿÿ‹E ‰$è
-+ ûÿÿ‹U ‰$è
-+
-+
-+
-+
-+ CrIFrBuf.o/ 1345987850 0 0 100666 1275 `
-+ L
-+ CrIFrDat.o/ 1345987850 0 0 100666 1318 `
-+ L
-+ L
-+ ˆ ¶8Èu„ÉuބÀt.‹Eð)xƒÄ1À[^_]É4$è
-+ uՋ]ä1ÿë΋Eð‰xë¶
-+ uً]äF1ÿGCˆ ¶8ÈtԄÀt+º
-+ …É„
-+ º
-+ õÿÿ¶
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+ L
-+ Image.o/ 1345987851 0 0 100666 579 `
-+ L
-+ Info.o/ 1345987851 0 0 100666 901 `
-+ L
-+
-+
-+ ‹A‰B‹A‰B]Ä
-+ misc.o/ 1345987852 0 0 100666 1002 `
-+ L
-+ ‹E¹
-+ L
-+
-+
-+
-+ L
-+
-+ L
-+ rgb.o/ 1345987852 0 0 100666 7632 `
-+ L
-+
-+
-+
-+
-+ 
-+ 
-+ L
-+
-+
-+
-+
-+
-+
-+
-+
-+ simx.o/ 1345987853 0 0 100666 2040 `
-+ L
-+
-+ 뛾Cècþÿÿ‰Eè¾CèWþÿÿ‰Eì¾CèKþÿÿ뀉ö¼'
-+
-+ L
-+
-+ L
-+ éêýÿÿü¸<
-+ ‰B1Àé+ûÿÿ‰$è
-+
-+
-+
-+
-+
-+
-+ 
-+ WrFFrDat.o/ 1345987853 0 0 100666 672 `
-+ L
-+
-+ L
-+ static char * %s[] = {
-+
-+
-+
-+ "XPMEXT %s"
-+ "%s"
-+ "XPMENDEXT"
-+
-+
-*** ../vim-7.3.639/src/xpm/x86/lib/libXpm.lib 1970-01-01 01:00:00.000000000 +0100
---- src/xpm/x86/lib/libXpm.lib 2012-08-26 17:29:16.000000000 +0200
-***************
-*** 0 ****
---- 1,332 ----
-+ !<arch>
-+ / 1345987754 0 11348 `
-+
-+ 
-+
-+ L%
-+ 
-+
-+
-+
-+
-+
-+ static char * %s[] = {
-+
-+
-+ "XPMENDEXT"
-+ "%s"
-+ "XPMEXT %s"
-+
-+
-+
-+ L
-+ 
-+
-+
-+ L
-+ 
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+ w3Ҋ‘
-+ ‹K¾A‰KˆFMu»ƒÿÆ
-+ ‹K¾A‰KˆFOu»‹¼$0
-+ 
-+ ‹N¾A‰NˆD< G;ûr¸‹”$<
-+ ‹K¾A‰KˆD4 F;÷r¸‹„$0
-+ ‹F¾8@‰F…ÿŽù
-+ ‹N¾A‰N…À~o=
-+ ‹N¾A‰N…ÀŽúþÿÿ=
-+
-+
-+
-+
-+ L
-+ 
-+
-+
-+ simx.obj/ 1345987753 100666 5012 `
-+ L!
-+ 
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+ ÃçPè
-+
-+
-+
-+
-+
-+
-+ L
-+ 
-+
-+ ;õt‹~‹^‹L$<;Ãt‹¨ uöÄt ‹A ‰D$4ë‰l$4‹Ëj¯ÃQè
-+ ¾ýÿÿÿé
-+ ¾ýÿÿÿéó
-+ ¾ýÿÿÿé€
-+ _^]¸
-+ _^]¸ýÿÿÿ[á
-+ öt‹Cë‹´$8
-+ ‹T$0 @ÂÊ+ÇÂwð½
-+
-+
-+ iãb
-+
-+
-+ rgb.obj/ 1345987753 100666 36745 `
-+ Lõ
-+ 
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+ :
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+ 
-+ ‹T$ 3ɊÌÂáÿ
-+ ‹L$$Ãè%ÿ
-+
-+
-+
-+
-+
-+
-+
-+
-+ &(
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+ S•
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+ RdFToI.obj/ 1345987752 100666 3302 `
-+ L
-+ 
-+
-+
-+
-+
-+ L
-+ 
-+
-+
-+ L
-+ 
-+ _^ƒÈÿ[Ā$ÃÂT$ RVè
-+
-+
-+
-+ misc.obj/ 1345987752 100666 2557 `
-+ L
-+ 
-+ 
-+
-+ æ
-+
-+
-+ 
-+ Info.obj/ 1345987752 100666 1477 `
-+ L
-+ 
-+
-+ Image.obj/ 1345987752 100666 815 `
-+ L
-+ 
-+
-+ hashtab.obj/ 1345987751 100666 2249 `
-+ L
-+ 
-+ 3ÀW‹n ˆL$„Ét‹øÃç+ø¾ÃŠJÇB„Éuì‹3Ò÷ó‹L•
-+ _^]¸ýÿÿÿ[à‰F ;Èv ƒé;ÈÇ
-+
-+
-+
-+
-+ data.obj/ 1345987751 100666 8777 `
-+ L%
-+ 
-+
-+
-+
-+ 
-+
-+
-+
-+
-+
-+
-+
-+
-+ Š@„ɉFuòŠ†
-+ ;Ãu Vè
-+ 
-+ ‹µ
-+ ‰ž
-+
-+
-+
-+ CrIFrDat.obj/ 1345987751 100666 1726 `
-+ L
-+ 
-+
-+
-+
-+
-+ L
-+ 
-+
-+
-+
-+
-+ create.obj/ 1345987751 100666 11128 `
-+ L
-+ 
-+ öt‹GëUè
-+ »ýÿÿÿé0
-+ »ýÿÿÿé
-+ »ýÿÿÿéî
-+ öt‹Fë‹|$DWè
-+ ÇD$
-+ ÇD$ 
-+ ‹T$XÇ
-+ ¸
-+ ¸
-+ öt‹GëVè
-+ ¾ýÿÿÿéE
-+ ¾ýÿÿÿé
-+ ¾ýÿÿÿéù
-+ ¾ýÿÿÿéÓ
-+ ‹O¾A‰OˆD4‹„$4
-+ ÿÿÿ‹D$‹Œ$,
-+ ‹K¾A‰KˆD4F;÷r¸‹„$0
-+ ‹E¾0@‰E…öŽö
-+ ‹N¾A‰N…ÀŽýþÿÿ=
-+
-+
-+ L
-+ 
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+ ¾ýÿÿÿé“
-+ ¾ýÿÿÿéú
-+ H‰D$(u²‹T$‹K•
-+ v‹>ƒÉÿ3ÀƒÆò®÷ÑIKÂT
-+ uê‹D$ƒÅ H‰D$‹D$uµ_^][‹L$ ƒÂ
-+ @‰‹T$‰ÃÂÂÂÂÂÂÂÂ
-+
-+
-+
-+
-+
-+ L
-+ 
-+
-+
-+ ‹‰L$„áu‰l$;Ãtr‹öÄtk‹C;Ã…td‰L$ ‹KPQè
-+ 
-+
-+
-+
-+ static char * image_name[] = {
-+
-+ ÿÿÿ_^]3À[ÂÄ
-+ v‹è‹>ƒÉÿ3ÀƒÆò®÷ÑIMÂT
-+ uê‹D$ƒÃ H‰D$uÀ_^]ÂB [ÃÂB ÃÂÂÂÂÂÂÂÂÂÂÂÂÂÂ
-+ "XPMENDEXT"
-+ "%s"
-+ "XPMEXT %s"
-+ ‹~ …ÿtƒÉÿ3Àò®÷ÑI_^ÂD
-+ Ã_‹Â^Ã
-+
-+
-+
-+ Attrib.obj/ 1345987750 100666 3166 `
-+ L
-+ 
-+
-+
-+
-+
-\ No newline at end of file
-*** ../vim-7.3.639/src/version.c 2012-08-29 14:18:26.000000000 +0200
---- src/version.c 2012-08-29 14:19:56.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 640,
- /**/
-
---
-GALAHAD: No. Look, I can tackle this lot single-handed!
-GIRLS: Yes, yes, let him Tackle us single-handed!
- "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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.641
-Fcc: 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.641
-Problem: ":mkview" uses ":normal" instead of ":normal!" for folds. (Dan)
-Solution: Add the bang. (Christian Brabandt)
-Files: src/fold.c
-
-
-*** ../vim-7.3.640/src/fold.c 2012-08-08 18:01:00.000000000 +0200
---- src/fold.c 2012-08-29 15:17:39.000000000 +0200
-***************
-*** 3373,3379 ****
- /* open nested folds while this fold is open */
- if (fprintf(fd, "%ld", fp->fd_top + off) < 0
- || put_eol(fd) == FAIL
-! || put_line(fd, "normal zo") == FAIL)
- return FAIL;
- if (put_foldopen_recurse(fd, wp, &fp->fd_nested,
- off + fp->fd_top)
---- 3373,3379 ----
- /* open nested folds while this fold is open */
- if (fprintf(fd, "%ld", fp->fd_top + off) < 0
- || put_eol(fd) == FAIL
-! || put_line(fd, "normal! zo") == FAIL)
- return FAIL;
- if (put_foldopen_recurse(fd, wp, &fp->fd_nested,
- off + fp->fd_top)
-***************
-*** 3417,3423 ****
- {
- if (fprintf(fd, "%ld", fp->fd_top + off) < 0
- || put_eol(fd) == FAIL
-! || fprintf(fd, "normal z%c",
- fp->fd_flags == FD_CLOSED ? 'c' : 'o') < 0
- || put_eol(fd) == FAIL)
- return FAIL;
---- 3417,3423 ----
- {
- if (fprintf(fd, "%ld", fp->fd_top + off) < 0
- || put_eol(fd) == FAIL
-! || fprintf(fd, "normal! z%c",
- fp->fd_flags == FD_CLOSED ? 'c' : 'o') < 0
- || put_eol(fd) == FAIL)
- return FAIL;
-*** ../vim-7.3.640/src/version.c 2012-08-29 14:23:06.000000000 +0200
---- src/version.c 2012-08-29 15:18:26.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 641,
- /**/
-
---
-You cannot propel yourself forward by patting yourself on the back.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.642
-Fcc: 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.642
-Problem: Segfault with specific autocommands. Was OK after 7.3.449 and
- before 7.3.545. (Richard Brown)
-Solution: Pass TRUE for abort_if_last in the call to close_buffer().
- (Christian Brabandt)
-Files: src/window.c
-
-
-*** ../vim-7.3.641/src/window.c 2012-07-19 18:05:40.000000000 +0200
---- src/window.c 2012-08-29 15:42:15.000000000 +0200
-***************
-*** 2269,2275 ****
- #ifdef FEAT_AUTOCMD
- win->w_closing = TRUE;
- #endif
-! close_buffer(win, win->w_buffer, free_buf ? DOBUF_UNLOAD : 0, FALSE);
- #ifdef FEAT_AUTOCMD
- if (win_valid(win))
- win->w_closing = FALSE;
---- 2269,2275 ----
- #ifdef FEAT_AUTOCMD
- win->w_closing = TRUE;
- #endif
-! close_buffer(win, win->w_buffer, free_buf ? DOBUF_UNLOAD : 0, TRUE);
- #ifdef FEAT_AUTOCMD
- if (win_valid(win))
- win->w_closing = FALSE;
-*** ../vim-7.3.641/src/version.c 2012-08-29 15:22:14.000000000 +0200
---- src/version.c 2012-08-29 15:49:52.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 642,
- /**/
-
---
-The psychic said, "God bless you." I said, "I didn't sneeze." She
-looked deep into my eyes and said, "You will, eventually." And, damn
-if she wasn't right. Two days later, I sneezed. --Ellen Degeneres
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.643
-Fcc: 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.643 (after 7.3.635)
-Problem: MS-Windows: When starting gvim maximized 'lines' and 'columns' are
- wrong. (Christian Robinson)
-Solution: Move the check for gui.starting from ui_get_shellsize() to
- check_shellsize().
-Files: src/ui.c, src/term.c
-
-
-*** ../vim-7.3.642/src/ui.c 2012-08-23 13:28:50.000000000 +0200
---- src/ui.c 2012-08-29 16:20:04.000000000 +0200
-***************
-*** 298,306 ****
- int retval;
-
- #ifdef FEAT_GUI
-- if (gui.starting)
-- /* possibly a system call during startup, check later */
-- return OK;
- if (gui.in_use)
- retval = gui_get_shellsize();
- else
---- 298,303 ----
-*** ../vim-7.3.642/src/term.c 2012-08-15 16:20:59.000000000 +0200
---- src/term.c 2012-08-29 16:22:25.000000000 +0200
-***************
-*** 3006,3012 ****
- int old_Rows = Rows;
- int old_Columns = Columns;
-
-! if (!exiting)
- {
- (void)ui_get_shellsize();
- check_shellsize();
---- 3006,3018 ----
- int old_Rows = Rows;
- int old_Columns = Columns;
-
-! if (!exiting
-! #ifdef FEAT_GUI
-! /* Do not get the size when executing a shell command during
-! * startup. */
-! && !gui.starting
-! #endif
-! )
- {
- (void)ui_get_shellsize();
- check_shellsize();
-*** ../vim-7.3.642/src/version.c 2012-08-29 15:50:22.000000000 +0200
---- src/version.c 2012-08-29 16:25:42.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 643,
- /**/
-
---
-Eight Megabytes And Continually Swapping.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.644
-Fcc: 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.644
-Problem: Dead code for BeOS GUI.
-Solution: Remove unused __BEOS__ stuff.
-Files: src/gui.c
-
-
-*** ../vim-7.3.643/src/gui.c 2012-07-10 16:49:08.000000000 +0200
---- src/gui.c 2012-08-29 16:28:46.000000000 +0200
-***************
-*** 37,44 ****
- static void gui_set_bg_color __ARGS((char_u *name));
- static win_T *xy2win __ARGS((int x, int y));
-
-! #if defined(UNIX) && !defined(__BEOS__) && !defined(MACOS_X) \
-! && !defined(__APPLE__)
- # define MAY_FORK
- static void gui_do_fork __ARGS((void));
-
---- 37,43 ----
- static void gui_set_bg_color __ARGS((char_u *name));
- static win_T *xy2win __ARGS((int x, int y));
-
-! #if defined(UNIX) && !defined(MACOS_X) && !defined(__APPLE__)
- # define MAY_FORK
- static void gui_do_fork __ARGS((void));
-
-***************
-*** 784,794 ****
- gui_exit(rc)
- int rc;
- {
-- #ifndef __BEOS__
- /* don't free the fonts, it leads to a BUS error
- * richard@whitequeen.com Jul 99 */
- free_highlight_fonts();
-- #endif
- gui.in_use = FALSE;
- gui_mch_exit(rc);
- }
---- 783,791 ----
-*** ../vim-7.3.643/src/version.c 2012-08-29 16:26:01.000000000 +0200
---- src/version.c 2012-08-29 16:33:30.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 644,
- /**/
-
---
-E M A C S
-s e l o h
-c t t n i
-a a t f
-p r t
-e o
- l
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.645
-Fcc: 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.645
-Problem: No tests for patch 7.3.625 and 7.3.637.
-Solution: Add more tests for the "gn" command and try/catch. (Christian
- Brabandt)
-Files: src/testdir/test53.in, src/testdir/test53.ok,
- src/testdir/test55.in, src/testdir/test55.ok
-
-
-*** ../vim-7.3.644/src/testdir/test53.in 2012-07-25 15:06:20.000000000 +0200
---- src/testdir/test53.in 2012-08-29 16:37:44.000000000 +0200
-***************
-*** 34,40 ****
- gnd
- /[a]bcdx
- :1
-! 2gnd
- :/^start:/,/^end:/wq! test.out
- ENDTEST
-
---- 34,46 ----
- gnd
- /[a]bcdx
- :1
-! 2gnd/join
-! /$
-! 0gnd
-! /\>\zs
-! 0gnd/^
-! gnd$h/\zs
-! gnd
- :/^start:/,/^end:/wq! test.out
- ENDTEST
-
-***************
-*** 57,60 ****
---- 63,70 ----
- one
- two
- abcdx | abcdx | abcdx
-+ join
-+ lines
-+ zero width pattern
-+ delete first and last chars
- end:
-*** ../vim-7.3.644/src/testdir/test53.ok 2012-07-25 15:06:20.000000000 +0200
---- src/testdir/test53.ok 2012-08-29 16:37:48.000000000 +0200
-***************
-*** 21,24 ****
---- 21,27 ----
- SEARCH:
- searchmatch
- abcdx | | abcdx
-+ join lines
-+ zerowidth pattern
-+ elete first and last char
- end:
-*** ../vim-7.3.644/src/testdir/test55.in 2012-05-18 12:06:58.000000000 +0200
---- src/testdir/test55.in 2012-08-29 16:50:51.000000000 +0200
-***************
-*** 378,383 ****
---- 378,393 ----
- :unlet dict
- :call garbagecollect(1)
- :"
-+ :" test for patch 7.3.637
-+ :let a = 'No error caught'
-+ :try|foldopen|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry
-+ o=a :"
-+ :lang C
-+ :redir => a
-+ :try|foobar|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry
-+ :redir END
-+ o=a :"
-+ :"
- :/^start:/,$wq! test.out
- ENDTEST
-
-*** ../vim-7.3.644/src/testdir/test55.ok 2012-05-18 12:06:58.000000000 +0200
---- src/testdir/test55.ok 2012-08-29 16:51:15.000000000 +0200
-***************
-*** 115,117 ****
---- 115,123 ----
- {'a': {'b': 'B'}}
- Vim(call):E737: a
- {'a': {'b': 'B'}}
-+ Vim(foldopen):E490:
-+
-+
-+ Error detected while processing :
-+ E492: Not an editor command: foobar|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry
-+
-*** ../vim-7.3.644/src/version.c 2012-08-29 16:34:23.000000000 +0200
---- src/version.c 2012-08-29 16:37:20.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 645,
- /**/
-
---
-TALL KNIGHT OF NI: Ni!
- "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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.646
-Fcc: 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.646
-Problem: When reloading a buffer the undo file becomes unusable unless ":w"
- is executed. (Dmitri Frank)
-Solution: After reloading the buffer write the undo file. (Christian
- Brabandt)
-Files: src/fileio.c
-
-
-*** ../vim-7.3.645/src/fileio.c 2012-07-10 17:14:50.000000000 +0200
---- src/fileio.c 2012-08-29 18:19:44.000000000 +0200
-***************
-*** 7060,7067 ****
---- 7060,7082 ----
- }
-
- if (reload)
-+ {
- /* Reload the buffer. */
- buf_reload(buf, orig_mode);
-+ #ifdef FEAT_PERSISTENT_UNDO
-+ if (buf->b_p_udf && buf->b_ffname != NULL)
-+ {
-+ char_u hash[UNDO_HASH_SIZE];
-+ buf_T *save_curbuf = curbuf;
-+
-+ /* Any existing undo file is unusable, write it now. */
-+ curbuf = buf;
-+ u_compute_hash(hash);
-+ u_write_undo(NULL, FALSE, buf, hash);
-+ curbuf = save_curbuf;
-+ }
-+ #endif
-+ }
-
- #ifdef FEAT_AUTOCMD
- /* Trigger FileChangedShell when the file was changed in any way. */
-*** ../vim-7.3.645/src/version.c 2012-08-29 16:55:09.000000000 +0200
---- src/version.c 2012-08-29 18:21:07.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 646,
- /**/
-
---
- An extraordinary TALL KNIGHT in all black (possibly John with Mike on his
- shoulders) walks out from the dark trees. He is extremely fierce and
- gruesome countenance. He walks towards KING ARTHUR and PATSY, who are
- wazzing like mad. (Salopian slang, meaning very scared. almost to the
- point of wetting oneself, e.g. before an important football match or
- prior to a postering. Salopian slang meaning a beating by the school
- praeposters. Sorry about the Salopian slant to this stage direction - Ed.)
- "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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.647
-Fcc: 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.647
-Problem: "gnd" doesn't work correctly in Visual mode.
-Solution: Handle Visual mode differently in "gn". (Christian Brabandt)
-Files: src/search.c, src/testdir/test53.in, src/testdir/test53.ok
-
-
-*** ../vim-7.3.646/src/search.c 2012-08-23 15:53:00.000000000 +0200
---- src/search.c 2012-09-05 12:11:58.000000000 +0200
-***************
-*** 4545,4551 ****
- int dir;
- int result; /* result of various function calls */
- char_u old_p_ws = p_ws;
-- int visual_active = FALSE;
- int flags = 0;
- pos_T save_VIsual;
- int zerowidth = FALSE;
---- 4545,4550 ----
-***************
-*** 4561,4571 ****
- {
- orig_pos = curwin->w_cursor;
- save_VIsual = VIsual;
-- visual_active = TRUE;
--
-- /* just started visual selection, only one character */
-- if (equalpos(VIsual, curwin->w_cursor))
-- visual_active = FALSE;
-
- pos = curwin->w_cursor;
- start_pos = VIsual;
---- 4560,4565 ----
-***************
-*** 4619,4625 ****
- p_ws = old_p_ws;
- return FAIL;
- }
-! else if (!i && !result && !visual_active)
- {
- if (forward) /* try again from start of buffer */
- {
---- 4613,4619 ----
- p_ws = old_p_ws;
- return FAIL;
- }
-! else if (!i && !result)
- {
- if (forward) /* try again from start of buffer */
- {
-***************
-*** 4691,4697 ****
- regmmatch_T regmatch;
- int nmatched = 0;
- int result = -1;
-! pos_T pos;
-
- if (search_regcomp(pattern, RE_SEARCH, RE_SEARCH,
- SEARCH_KEEP, &regmatch) == FAIL)
---- 4685,4692 ----
- regmmatch_T regmatch;
- int nmatched = 0;
- int result = -1;
-! pos_T pos;
-! int save_called_emsg = called_emsg;
-
- if (search_regcomp(pattern, RE_SEARCH, RE_SEARCH,
- SEARCH_KEEP, &regmatch) == FAIL)
-***************
-*** 4704,4718 ****
- {
- /* Zero-width pattern should match somewhere, then we can check if
- * start and end are in the same position. */
- nmatched = vim_regexec_multi(&regmatch, curwin, curbuf,
- pos.lnum, (colnr_T)0, NULL);
-
- if (!called_emsg)
- result = (nmatched != 0
-! && regmatch.startpos[0].lnum == regmatch.endpos[0].lnum
-! && regmatch.startpos[0].col == regmatch.endpos[0].col);
- }
-
- vim_free(regmatch.regprog);
- return result;
- }
---- 4699,4715 ----
- {
- /* Zero-width pattern should match somewhere, then we can check if
- * start and end are in the same position. */
-+ called_emsg = FALSE;
- nmatched = vim_regexec_multi(&regmatch, curwin, curbuf,
- pos.lnum, (colnr_T)0, NULL);
-
- if (!called_emsg)
- result = (nmatched != 0
-! && regmatch.startpos[0].lnum == regmatch.endpos[0].lnum
-! && regmatch.startpos[0].col == regmatch.endpos[0].col);
- }
-
-+ called_emsg |= save_called_emsg;
- vim_free(regmatch.regprog);
- return result;
- }
-*** ../vim-7.3.646/src/testdir/test53.in 2012-08-29 16:55:09.000000000 +0200
---- src/testdir/test53.in 2012-09-05 12:12:03.000000000 +0200
-***************
-*** 40,46 ****
- /\>\zs
- 0gnd/^
- gnd$h/\zs
-! gnd
- :/^start:/,/^end:/wq! test.out
- ENDTEST
-
---- 40,47 ----
- /\>\zs
- 0gnd/^
- gnd$h/\zs
-! gnd/[u]niquepattern/s
-! vlgnd
- :/^start:/,/^end:/wq! test.out
- ENDTEST
-
-***************
-*** 67,70 ****
---- 68,72 ----
- lines
- zero width pattern
- delete first and last chars
-+ uniquepattern uniquepattern
- end:
-*** ../vim-7.3.646/src/testdir/test53.ok 2012-08-29 16:55:09.000000000 +0200
---- src/testdir/test53.ok 2012-09-05 12:12:08.000000000 +0200
-***************
-*** 24,27 ****
---- 24,28 ----
- join lines
- zerowidth pattern
- elete first and last char
-+ uniquepattern
- end:
-*** ../vim-7.3.646/src/version.c 2012-08-29 18:50:50.000000000 +0200
---- src/version.c 2012-09-05 12:13:37.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 647,
- /**/
-
---
- ** Hello and Welcome to the Psychiatric Hotline **
-If you are obsessive-compulsive, please press 1 repeatedly.
-If you are co-dependent, please ask someone to press 2.
-If you have multiple personalities, please press 3, 4, 5 and 6.
-If you are paranoid-delusional, we know who you are and what you want
- - just stay on the line so we can trace the call.
-If you are schizophrenic, listen carefully and a little voice will
- tell you which number to press next.
-If you are manic-depressive, it doesn't matter which number you press
- - no one will answer.
-If you suffer from panic attacks, push every button you can find.
-If you are sane, please hold on - we have the rest of humanity on the
- other line and they desparately want to ask you a few questions.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.648
-Fcc: 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.648
-Problem: Crash when using a very long file name. (ZyX)
-Solution: Properly check length of buffer space.
-Files: src/buffer.c
-
-
-*** ../vim-7.3.647/src/buffer.c 2012-07-16 17:31:48.000000000 +0200
---- src/buffer.c 2012-09-05 13:17:38.000000000 +0200
-***************
-*** 3234,3245 ****
- {
- /* format: "fname + (path) (1 of 2) - VIM" */
-
- if (curbuf->b_fname == NULL)
-! vim_strncpy(buf, (char_u *)_("[No Name]"), IOSIZE - 100);
- else
- {
- p = transstr(gettail(curbuf->b_fname));
-! vim_strncpy(buf, p, IOSIZE - 100);
- vim_free(p);
- }
-
---- 3234,3248 ----
- {
- /* format: "fname + (path) (1 of 2) - VIM" */
-
-+ #define SPACE_FOR_FNAME (IOSIZE - 100)
-+ #define SPACE_FOR_DIR (IOSIZE - 20)
-+ #define SPACE_FOR_ARGNR (IOSIZE - 10) /* at least room for " - VIM" */
- if (curbuf->b_fname == NULL)
-! vim_strncpy(buf, (char_u *)_("[No Name]"), SPACE_FOR_FNAME);
- else
- {
- p = transstr(gettail(curbuf->b_fname));
-! vim_strncpy(buf, p, SPACE_FOR_FNAME);
- vim_free(p);
- }
-
-***************
-*** 3263,3269 ****
- buf[off++] = ' ';
- buf[off++] = '(';
- home_replace(curbuf, curbuf->b_ffname,
-! buf + off, IOSIZE - off, TRUE);
- #ifdef BACKSLASH_IN_FILENAME
- /* avoid "c:/name" to be reduced to "c" */
- if (isalpha(buf[off]) && buf[off + 1] == ':')
---- 3266,3272 ----
- buf[off++] = ' ';
- buf[off++] = '(';
- home_replace(curbuf, curbuf->b_ffname,
-! buf + off, SPACE_FOR_DIR - off, TRUE);
- #ifdef BACKSLASH_IN_FILENAME
- /* avoid "c:/name" to be reduced to "c" */
- if (isalpha(buf[off]) && buf[off + 1] == ':')
-***************
-*** 3274,3291 ****
- if (p == buf + off)
- /* must be a help buffer */
- vim_strncpy(buf + off, (char_u *)_("help"),
-! (size_t)(IOSIZE - off - 1));
- else
- *p = NUL;
-
-! /* translate unprintable chars */
-! p = transstr(buf + off);
-! vim_strncpy(buf + off, p, (size_t)(IOSIZE - off - 1));
-! vim_free(p);
- STRCAT(buf, ")");
- }
-
-! append_arg_number(curwin, buf, IOSIZE, FALSE);
-
- #if defined(FEAT_CLIENTSERVER)
- if (serverName != NULL)
---- 3277,3304 ----
- if (p == buf + off)
- /* must be a help buffer */
- vim_strncpy(buf + off, (char_u *)_("help"),
-! (size_t)(SPACE_FOR_DIR - off - 1));
- else
- *p = NUL;
-
-! /* Translate unprintable chars and concatenate. Keep some
-! * room for the server name. When there is no room (very long
-! * file name) use (...). */
-! if (off < SPACE_FOR_DIR)
-! {
-! p = transstr(buf + off);
-! vim_strncpy(buf + off, p, (size_t)(SPACE_FOR_DIR - off));
-! vim_free(p);
-! }
-! else
-! {
-! vim_strncpy(buf + off, (char_u *)"...",
-! (size_t)(SPACE_FOR_ARGNR - off));
-! }
- STRCAT(buf, ")");
- }
-
-! append_arg_number(curwin, buf, SPACE_FOR_ARGNR, FALSE);
-
- #if defined(FEAT_CLIENTSERVER)
- if (serverName != NULL)
-*** ../vim-7.3.647/src/version.c 2012-09-05 12:16:40.000000000 +0200
---- src/version.c 2012-09-05 13:29:53.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 648,
- /**/
-
---
-Q: How does a UNIX Guru do Sex ?
-A: unzip;strip;touch;finger;mount;fsck;more;yes;umount;sleep
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.649
-Fcc: 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.649
-Problem: When 'clipboard' is set to "unnamed" small deletes end up in the
- numbered registers. (Ingo Karkat)
-Solution: Use the original register name to decide whether to put a delete
- in a numbered register. (Christian Brabandt)
-Files: src/ops.c
-
-
-*** ../vim-7.3.648/src/ops.c 2012-08-08 18:01:00.000000000 +0200
---- src/ops.c 2012-09-05 14:13:32.000000000 +0200
-***************
-*** 1623,1628 ****
---- 1623,1629 ----
- #endif
- linenr_T old_lcount = curbuf->b_ml.ml_line_count;
- int did_yank = FALSE;
-+ int orig_regname = oap->regname;
-
- if (curbuf->b_ml.ml_flags & ML_EMPTY) /* nothing to do */
- return OK;
-***************
-*** 1715,1722 ****
- /*
- * Put deleted text into register 1 and shift number registers if the
- * delete contains a line break, or when a regname has been specified.
- */
-! if (oap->regname != 0 || oap->motion_type == MLINE
- || oap->line_count > 1 || oap->use_reg_one)
- {
- y_current = &y_regs[9];
---- 1716,1725 ----
- /*
- * Put deleted text into register 1 and shift number registers if the
- * delete contains a line break, or when a regname has been specified.
-+ * Use the register name from before adjust_clip_reg() may have
-+ * changed it.
- */
-! if (orig_regname != 0 || oap->motion_type == MLINE
- || oap->line_count > 1 || oap->use_reg_one)
- {
- y_current = &y_regs[9];
-*** ../vim-7.3.648/src/version.c 2012-09-05 13:30:22.000000000 +0200
---- src/version.c 2012-09-05 14:17:55.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 649,
- /**/
-
---
-'I generally avoid temptation unless I can't resist it."
- -- Mae West
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.650
-Fcc: 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.650
-Problem: Completion after ":help \{-" gives an error message and messes up
- the command line.
-Solution: Cancel the tag search if the pattern can't be compiled. (Yasuhiro
- Matsumoto)
-Files: src/tag.c
-
-
-*** ../vim-7.3.649/src/tag.c 2012-01-10 22:26:12.000000000 +0100
---- src/tag.c 2012-09-05 14:56:52.000000000 +0200
-***************
-*** 1443,1448 ****
---- 1443,1450 ----
- orgpat.len = p_tl;
-
- prepare_pats(&orgpat, has_re);
-+ if (has_re && orgpat.regmatch.regprog == NULL)
-+ goto findtag_end;
-
- #ifdef FEAT_TAG_BINS
- /* This is only to avoid a compiler warning for using search_info
-*** ../vim-7.3.649/src/version.c 2012-09-05 14:18:42.000000000 +0200
---- src/version.c 2012-09-05 15:01:07.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 650,
- /**/
-
---
-GUARD #1: What, ridden on a horse?
-ARTHUR: Yes!
-GUARD #1: You're using coconuts!
-ARTHUR: What?
-GUARD #1: You've got two empty halves of coconut and you're bangin' 'em
- together.
- 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/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.651
-Fcc: 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.651
-Problem: Completion after ":help \{-" gives an error message.
-Solution: Prepend a backslash.
-Files: src/ex_cmds.c
-
-
-*** ../vim-7.3.650/src/ex_cmds.c 2012-08-08 16:50:40.000000000 +0200
---- src/ex_cmds.c 2012-09-05 15:10:13.000000000 +0200
-***************
-*** 4851,4857 ****
- #ifdef FEAT_EVAL
- if (do_count)
- {
-! /* prevent accidently changing the buffer by a function */
- save_ma = curbuf->b_p_ma;
- curbuf->b_p_ma = FALSE;
- sandbox++;
---- 4851,4857 ----
- #ifdef FEAT_EVAL
- if (do_count)
- {
-! /* prevent accidentally changing the buffer by a function */
- save_ma = curbuf->b_p_ma;
- curbuf->b_p_ma = FALSE;
- sandbox++;
-***************
-*** 5264,5270 ****
- * is assumed to be 'p' if missing.
- *
- * This is implemented in two passes: first we scan the file for the pattern and
-! * set a mark for each line that (not) matches. secondly we execute the command
- * for each line that has a mark. This is required because after deleting
- * lines we do not know where to search for the next match.
- */
---- 5264,5270 ----
- * is assumed to be 'p' if missing.
- *
- * This is implemented in two passes: first we scan the file for the pattern and
-! * set a mark for each line that (not) matches. Secondly we execute the command
- * for each line that has a mark. This is required because after deleting
- * lines we do not know where to search for the next match.
- */
-***************
-*** 5896,5904 ****
- }
- else
- {
-! /* replace "[:...:]" with "\[:...:]"; "[+...]" with "\[++...]" */
-! if (arg[0] == '[' && (arg[1] == ':'
-! || (arg[1] == '+' && arg[2] == '+')))
- *d++ = '\\';
-
- for (s = arg; *s; ++s)
---- 5896,5909 ----
- }
- else
- {
-! /* Replace:
-! * "[:...:]" with "\[:...:]"
-! * "[++...]" with "\[++...]"
-! * "\{" with "\\{"
-! */
-! if ((arg[0] == '[' && (arg[1] == ':'
-! || (arg[1] == '+' && arg[2] == '+')))
-! || (arg[0] == '\\' && arg[1] == '{'))
- *d++ = '\\';
-
- for (s = arg; *s; ++s)
-*** ../vim-7.3.650/src/version.c 2012-09-05 15:03:27.000000000 +0200
---- src/version.c 2012-09-05 15:12:51.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 651,
- /**/
-
---
-GUARD #1: Where'd you get the coconut?
-ARTHUR: We found them.
-GUARD #1: Found them? In Mercea? The coconut's tropical!
-ARTHUR: What do you mean?
-GUARD #1: Well, this is a temperate zone.
- 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/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.652
-Fcc: 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.652
-Problem: Workaround for Python crash isn't perfect.
-Solution: Change the type of the length argument. (Sean Estabrooks)
-Files: src/if_py_both.h
-
-
-*** ../vim-7.3.651/src/if_py_both.h 2012-08-08 16:05:03.000000000 +0200
---- src/if_py_both.h 2012-09-05 17:15:31.000000000 +0200
-***************
-*** 74,91 ****
- static PyObject *
- OutputWrite(PyObject *self, PyObject *args)
- {
-! int len;
- char *str = NULL;
- int error = ((OutputObject *)(self))->error;
-
- if (!PyArg_ParseTuple(args, "et#", ENC_OPT, &str, &len))
- return NULL;
-
-- /* TODO: This works around a gcc optimizer problem and avoids Vim
-- * from crashing. Should find a real solution. */
-- if (str == NULL)
-- return NULL;
--
- Py_BEGIN_ALLOW_THREADS
- Python_Lock_Vim();
- writer((writefn)(error ? emsg : msg), (char_u *)str, len);
---- 74,86 ----
- static PyObject *
- OutputWrite(PyObject *self, PyObject *args)
- {
-! Py_ssize_t len;
- char *str = NULL;
- int error = ((OutputObject *)(self))->error;
-
- if (!PyArg_ParseTuple(args, "et#", ENC_OPT, &str, &len))
- return NULL;
-
- Py_BEGIN_ALLOW_THREADS
- Python_Lock_Vim();
- writer((writefn)(error ? emsg : msg), (char_u *)str, len);
-*** ../vim-7.3.651/src/version.c 2012-09-05 15:15:01.000000000 +0200
---- src/version.c 2012-09-05 17:27:46.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 652,
- /**/
-
---
-GUARD #2: It could be carried by an African swallow!
-GUARD #1: Oh, yeah, an African swallow maybe, but not a European swallow,
- that's my point.
-GUARD #2: Oh, yeah, I agree with that...
- 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/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.653
-Fcc: 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.653
-Problem: MingW needs build rule for included XPM files. Object directory
- for 32 and 64 builds is the same, also for MSVC.
-Solution: Add MingW build rule to use included XPM files. Add the CPU or
- architecture to the object directory name. (Sergey Khorev)
-Files: src/Make_ming.mak, src/Make_mvc.mak, src/xpm/README.txt
-
-
-*** ../vim-7.3.652/src/Make_ming.mak 2012-08-02 21:21:43.000000000 +0200
---- src/Make_ming.mak 2012-09-05 17:43:11.000000000 +0200
-***************
-*** 1,14 ****
-! # Makefile for VIM on Win32, using 'EGCS/mingw32 1.1.2'.
- # Info at http://www.mingw.org
-! # Also requires 'GNU make 3.77', which you can get through a link
-! # to 'JanJaap's page from the above page.
- # Get missing libraries from http://gnuwin32.sf.net.
- #
- # Tested on Win32 NT 4 and Win95.
- #
-! # To make everything, just 'make -f Make_ming.mak'
-! # To make just e.g. gvim.exe, 'make -f Make_ming.mak gvim.exe'
-! # After a run, you can 'make -f Make_ming.mak clean' to clean up
- #
- # NOTE: Sometimes 'GNU Make' will stop after building vimrun.exe -- I think
- # it's just run out of memory or something. Run again, and it will continue
---- 1,15 ----
-! # Makefile for VIM on Win32
-! #
- # Info at http://www.mingw.org
-! # Alternative x86 and 64-builds: http://mingw-w64.sourceforge.net
-! # Also requires GNU make, which you can download from the same sites.
- # Get missing libraries from http://gnuwin32.sf.net.
- #
- # Tested on Win32 NT 4 and Win95.
- #
-! # To make everything, just 'make -f Make_ming.mak'.
-! # To make just e.g. gvim.exe, 'make -f Make_ming.mak gvim.exe'.
-! # After a run, you can 'make -f Make_ming.mak clean' to clean up.
- #
- # NOTE: Sometimes 'GNU Make' will stop after building vimrun.exe -- I think
- # it's just run out of memory or something. Run again, and it will continue
-***************
-*** 20,27 ****
- # "make mpress" uses the MPRESS compressor for 32- and 64-bit EXEs:
- # http://www.matcode.com/mpress.htm
- #
-! # Maintained by Ron Aaron <ronaharon@yahoo.com>
-! # updated 2003 Jan 20
-
- #>>>>> choose options:
- # set to yes for a debug build
---- 21,28 ----
- # "make mpress" uses the MPRESS compressor for 32- and 64-bit EXEs:
- # http://www.matcode.com/mpress.htm
- #
-! # Maintained by Ron Aaron <ronaharon@yahoo.com> et al.
-! # Updated 2012 Sep 5.
-
- #>>>>> choose options:
- # set to yes for a debug build
-***************
-*** 31,62 ****
- # set to yes to make gvim, no for vim
- GUI=yes
- # FEATURES=[TINY | SMALL | NORMAL | BIG | HUGE]
-! # set to TINY to make minimal version (few features)
- FEATURES=BIG
-! # set to one of i386, i486, i586, i686 as the minimum target processor
- ARCH=i386
-! # set to yes to cross-compile from unix; no=native Windows
- CROSS=no
-! # set to path to iconv.h and libiconv.a to enable using 'iconv.dll'
- #ICONV="."
- ICONV=yes
- GETTEXT=yes
-! # set to yes to include multibyte support
- MBYTE=yes
-! # set to yes to include IME support
- IME=yes
- DYNAMIC_IME=yes
-! # set to yes to enable writing a postscript file with :hardcopy
- POSTSCRIPT=no
-! # set to yes to enable OLE support
- OLE=no
-! # Set the default $(WINVER) to make it work with pre-Win2k
- ifndef WINVER
- WINVER = 0x0500
- endif
-! # Set to yes to enable Cscope support
- CSCOPE=yes
-! # Set to yes to enable Netbeans support
- NETBEANS=$(GUI)
-
-
---- 32,64 ----
- # set to yes to make gvim, no for vim
- GUI=yes
- # FEATURES=[TINY | SMALL | NORMAL | BIG | HUGE]
-! # Set to TINY to make minimal version (few features).
- FEATURES=BIG
-! # Set to one of i386, i486, i586, i686 as the minimum target processor.
-! # For amd64/x64 architecture set ARCH=x86-64 .
- ARCH=i386
-! # Set to yes to cross-compile from unix; no=native Windows.
- CROSS=no
-! # Set to path to iconv.h and libiconv.a to enable using 'iconv.dll'.
- #ICONV="."
- ICONV=yes
- GETTEXT=yes
-! # Set to yes to include multibyte support.
- MBYTE=yes
-! # Set to yes to include IME support.
- IME=yes
- DYNAMIC_IME=yes
-! # Set to yes to enable writing a postscript file with :hardcopy.
- POSTSCRIPT=no
-! # Set to yes to enable OLE support.
- OLE=no
-! # Set the default $(WINVER) to make it work with pre-Win2k.
- ifndef WINVER
- WINVER = 0x0500
- endif
-! # Set to yes to enable Cscope support.
- CSCOPE=yes
-! # Set to yes to enable Netbeans support.
- NETBEANS=$(GUI)
-
-
-***************
-*** 431,441 ****
- endif
- endif
-
-- ifdef XPM
- # Only allow XPM for a GUI build.
- ifeq (yes, $(GUI))
-! CFLAGS += -DFEAT_XPM_W32 -I $(XPM)/include
- endif
- endif
-
- ifeq ($(DEBUG),yes)
---- 433,464 ----
- endif
- endif
-
- # Only allow XPM for a GUI build.
- ifeq (yes, $(GUI))
-!
-! ifndef XPM
-! ifeq ($(ARCH),i386)
-! XPM = xpm/x86
-! endif
-! ifeq ($(ARCH),i486)
-! XPM = xpm/x86
-! endif
-! ifeq ($(ARCH),i586)
-! XPM = xpm/x86
-! endif
-! ifeq ($(ARCH),i686)
-! XPM = xpm/x86
- endif
-+ ifeq ($(ARCH),x86-64)
-+ XPM = xpm/x64
-+ endif
-+ endif
-+ ifdef XPM
-+ ifneq ($(XPM),no)
-+ CFLAGS += -DFEAT_XPM_W32 -I $(XPM)/include -I $(XPM)/../include
-+ endif
-+ endif
-+
- endif
-
- ifeq ($(DEBUG),yes)
-***************
-*** 565,574 ****
- DEFINES += $(DEF_GUI)
- OBJ += $(GUIOBJ)
- LFLAGS += -mwindows
-! OUTDIR = gobj$(DEBUG_SUFFIX)$(MZSCHEME_SUFFIX)
- else
- TARGET := vim$(DEBUG_SUFFIX).exe
-! OUTDIR = obj$(DEBUG_SUFFIX)$(MZSCHEME_SUFFIX)
- endif
-
- ifdef GETTEXT
---- 588,597 ----
- DEFINES += $(DEF_GUI)
- OBJ += $(GUIOBJ)
- LFLAGS += -mwindows
-! OUTDIR = gobj$(DEBUG_SUFFIX)$(MZSCHEME_SUFFIX)$(ARCH)
- else
- TARGET := vim$(DEBUG_SUFFIX).exe
-! OUTDIR = obj$(DEBUG_SUFFIX)$(MZSCHEME_SUFFIX)$(ARCH)
- endif
-
- ifdef GETTEXT
-*** ../vim-7.3.652/src/Make_mvc.mak 2012-08-29 14:18:26.000000000 +0200
---- src/Make_mvc.mak 2012-09-05 17:33:56.000000000 +0200
-***************
-*** 213,218 ****
---- 213,219 ----
- # We're on Windows 95
- CPU = i386
- !endif # !PROCESSOR_ARCHITECTURE
-+ OBJDIR = $(OBJDIR)$(CPU)
-
- # Build a retail version by default
-
-***************
-*** 283,292 ****
-
- !ifndef XPM
- # XPM is not set, use the included xpm files, depending on the architecture.
-! !if ("$(CPU)" == "AMD64") || ("$(CPU)" == "IA64")
- XPM = xpm\x64
-! !else
- XPM = xpm\x86
- !endif
- !endif
- !if "$(XPM)" != "no"
---- 284,295 ----
-
- !ifndef XPM
- # XPM is not set, use the included xpm files, depending on the architecture.
-! !if "$(CPU)" == "AMD64"
- XPM = xpm\x64
-! !elseif "$(CPU)" == "i386"
- XPM = xpm\x86
-+ !else
-+ XPM = no
- !endif
- !endif
- !if "$(XPM)" != "no"
-*** ../vim-7.3.652/src/xpm/README.txt 2012-08-29 14:18:26.000000000 +0200
---- src/xpm/README.txt 2012-09-05 17:35:34.000000000 +0200
-***************
-*** 10,15 ****
---- 10,18 ----
- MinGW:
- mingw32-make -f Make_ming.mak GUI=yes CSCOPE=yes XPM=e:/hg/xpm/x86
-
-+ MinGW 64 for x64:
-+ mingw32-make -f Make_ming.mak GUI=yes ARCH=x86-64 XPM=E:\HG\xpm\x64
-+
- Microsoft Visual C++ on x64 (tested with versions 2008 and 2010):
- nmake -f Make_mvc.mak GUI=yes CSCOPE=yes XPM=E:\HG\xpm\x64
-
-*** ../vim-7.3.652/src/version.c 2012-09-05 17:28:08.000000000 +0200
---- src/version.c 2012-09-05 17:53:15.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 653,
- /**/
-
---
-GUARD #2: Wait a minute -- supposing two swallows carried it together?
-GUARD #1: No, they'd have to have it on a line.
-GUARD #2: Well, simple! They'd just use a standard creeper!
-GUARD #1: What, held under the dorsal guiding feathers?
-GUARD #2: Well, why not?
- The Quest for the Holy Grail (Monty Python)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.654
-Fcc: 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.654
-Problem: When creating a Vim dictionary from Python objects an empty key
- might be used.
-Solution: Do not use empty keys, throw an IndexError. (ZyX)
-Files: src/if_py_both.h
-
-
-*** ../vim-7.3.653/src/if_py_both.h 2012-09-05 17:28:08.000000000 +0200
---- src/if_py_both.h 2012-09-05 18:35:18.000000000 +0200
-***************
-*** 607,612 ****
---- 607,620 ----
-
- static PyTypeObject DictionaryType;
-
-+ #define DICTKEY_GET_NOTEMPTY(err) \
-+ DICTKEY_GET(err) \
-+ if (*key == NUL) \
-+ { \
-+ PyErr_SetString(PyExc_ValueError, _("empty keys are not allowed")); \
-+ return err; \
-+ }
-+
- typedef struct
- {
- PyObject_HEAD
-***************
-*** 659,665 ****
- if (valObject == NULL)
- return -1;
-
-! DICTKEY_GET(-1)
-
- di = dictitem_alloc(key);
-
---- 667,673 ----
- if (valObject == NULL)
- return -1;
-
-! DICTKEY_GET_NOTEMPTY(-1)
-
- di = dictitem_alloc(key);
-
-***************
-*** 730,736 ****
- return -1;
- }
-
-! DICTKEY_GET(-1)
-
- valObject = PyTuple_GetItem(litem, 1);
- if (valObject == NULL)
---- 738,744 ----
- return -1;
- }
-
-! DICTKEY_GET_NOTEMPTY(-1)
-
- valObject = PyTuple_GetItem(litem, 1);
- if (valObject == NULL)
-***************
-*** 784,799 ****
- DictionaryItem(PyObject *self, PyObject *keyObject)
- {
- char_u *key;
-! dictitem_T *val;
- DICTKEY_DECL
-
-! DICTKEY_GET(NULL)
-
-! val = dict_find(((DictionaryObject *) (self))->dict, key, -1);
-
- DICTKEY_UNREF
-
-! return ConvertToPyObject(&val->di_tv);
- }
-
- static PyInt
---- 792,813 ----
- DictionaryItem(PyObject *self, PyObject *keyObject)
- {
- char_u *key;
-! dictitem_T *di;
- DICTKEY_DECL
-
-! DICTKEY_GET_NOTEMPTY(NULL)
-!
-! di = dict_find(((DictionaryObject *) (self))->dict, key, -1);
-
-! if (di == NULL)
-! {
-! PyErr_SetString(PyExc_IndexError, _("no such key in dictionary"));
-! return NULL;
-! }
-
- DICTKEY_UNREF
-
-! return ConvertToPyObject(&di->di_tv);
- }
-
- static PyInt
-***************
-*** 811,817 ****
- return -1;
- }
-
-! DICTKEY_GET(-1)
-
- di = dict_find(d, key, -1);
-
---- 825,831 ----
- return -1;
- }
-
-! DICTKEY_GET_NOTEMPTY(-1)
-
- di = dict_find(d, key, -1);
-
-*** ../vim-7.3.653/src/version.c 2012-09-05 17:57:34.000000000 +0200
---- src/version.c 2012-09-05 18:38:43.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 654,
- /**/
-
---
-MORTICIAN: What?
-CUSTOMER: Nothing -- here's your nine pence.
-DEAD PERSON: I'm not dead!
-MORTICIAN: Here -- he says he's not dead!
-CUSTOMER: Yes, he is.
-DEAD PERSON: I'm not!
- The Quest for the Holy Grail (Monty Python)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.655
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Note: the patch probably doesn't work, since this is a binary file.
-Get the file from Mercurial instead.
-
-Patch 7.3.655
-Problem: 64 bit MingW xpm .a file is missing.
-Solution: Add the file. (Sergey Khorev)
-Files: src/xpm/x64/lib/libXpm.a
-
-
-*** ../vim-7.3.654/src/xpm/x64/lib/libXpm.a 2012-09-05 18:48:11.000000000 +0200
---- src/xpm/x64/lib/libXpm.a 2012-09-01 07:46:16.000000000 +0200
-***************
-*** 0 ****
---- 1,238 ----
-+ !<arch>
-+ / 1346471174 0 0 0 1492 `
-+
-+ d†
-+ ‹ƒ¸
-+ CrBufFrI.o/ 1346471168 0 0 100666 3329 `
-+ d†
-+
-+
-+ staticI¼ char * I¾me[] = {‰éL‰¬$ˆ
-+
-+
-+
-+
-+ "XPMENEÂ| ÇFDEXTH‰fÇF "
-+
-+
-+ "XPMEXT %s"
-+ "%s"
-+
-+ p PÀÃàð 
-+ CrDatFrI.o/ 1346471168 0 0 100666 3136 `
-+ d†
-+ 
-+ AƒÅÇD$h
-+
-+ p PÀÃàð 
-+ d†
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+ ‹“À
-+ 
-+ ‹“À
-+ p PÀÃàð
-+
-+ p PÀÃàð
-+ 
-+ 20`pPÀ
-+
-+ p PÀÃàð
-+
-+ p PÀÃàð
-+
-+ p PÀÃàð
-+
-+
-+
-+ CrIFrBuf.o/ 1346471169 0 0 100666 1452 `
-+ d†
-+ 0 `pPÀÃà
-+ 
-+ L
-+ d†
-+ 0 `pPÀÃà
-+ 
-+ L
-+ d†
-+ HÇÂ(
-+
-+ p PÀÃàð
-+
-+ p PÀÃàð
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+ hashtab.o/ 1346471170 0 0 100666 1598 `
-+ d†
-+ 
-+ ƒÀ‰Cë¸f‹+ºVUUUL‹cA½ýÿÿÿÂt-
-+ 
-+ 20`pPÀ 
-+ d†
-+ d†
-+ d†
-+ d†
-+ 0 `pPÀÃà
-+
-+ RdFToDat.o/ 1346471171 0 0 100666 851 `
-+ d†
-+
-+ RdFToI.o/ 1346471172 0 0 100666 2495 `
-+ d†
-+ HƒÄ0[é
-+ H‹
-+ þÿÿ‹D$(HÂÄp
-+ 
-+ N
-+ rgb.o/ 1346471172 0 0 100666 9826 `
-+ d†
-+ fÂÂoD9Ã¥3BÂD%
-+
-+
-+
-+ 
-+ 
-+ p PÀÃàð
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+ d†
-+
-+
-+ 9ýv‰øHÂÂ;u ë
-+
-+ p PÀÃàð
-+ p PÀÃàð
-+ p PÀÃàð
-+ d†
-+
-+ ‰ÇÃçè?þÿÿø‰D$,é9ÿÿÿ@
-+
-+ d†
-+
-+ parse.o/ 1346471173 0 0 100666 9240 `
-+ d†
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+ HƒÂ0¶ f‰„LP
-+
-+
-+
-+
-+
-+
-+
-+ HƒÂÂÂÿþþþ÷Ñ!È%€€€€té‰ÃÃé©€€
-+ ýÿÿfff.„
-+
-+ p PÀÃàð
-+
-+ p PÀÃàð
-+
-+ p PÀÃàð
-+ p PÀÃàð
-+
-+
-+
-+
-+
-+ d†
-+
-+ WrFFrI.o/ 1346471174 0 0 100666 3804 `
-+ d†
-+ static char * %s[] = {
-+
-+
-+
-+
-+ "XPMEXT %s"
-+ "%s"
-+ "XPMENDEXT"
-+
-+
-+ p PÀÃàð 
-\ No newline at end of file
-*** ../vim-7.3.654/src/version.c 2012-09-05 18:45:24.000000000 +0200
---- src/version.c 2012-09-05 18:46:57.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 655,
- /**/
-
---
-Shit makes the flowers grow and that's beautiful
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.656
-Fcc: 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.656
-Problem: Internal error in :pyeval.
-Solution: Handle failed object conversion. (ZyX)
-Files: src/if_python.c, src/if_python3.c
-
-
-*** ../vim-7.3.655/src/if_python.c 2012-06-30 13:34:29.000000000 +0200
---- src/if_python.c 2012-09-05 18:52:50.000000000 +0200
-***************
-*** 1025,1032 ****
-
- static PySequenceMethods BufferAsSeq = {
- (PyInquiry) BufferLength, /* sq_length, len(x) */
-! (binaryfunc) 0, /* BufferConcat, */ /* sq_concat, x+y */
-! (PyIntArgFunc) 0, /* BufferRepeat, */ /* sq_repeat, x*n */
- (PyIntArgFunc) BufferItem, /* sq_item, x[i] */
- (PyIntIntArgFunc) BufferSlice, /* sq_slice, x[i:j] */
- (PyIntObjArgProc) BufferAssItem, /* sq_ass_item, x[i]=v */
---- 1025,1032 ----
-
- static PySequenceMethods BufferAsSeq = {
- (PyInquiry) BufferLength, /* sq_length, len(x) */
-! (binaryfunc) 0, /* BufferConcat, sq_concat, x+y */
-! (PyIntArgFunc) 0, /* BufferRepeat, sq_repeat, x*n */
- (PyIntArgFunc) BufferItem, /* sq_item, x[i] */
- (PyIntIntArgFunc) BufferSlice, /* sq_slice, x[i:j] */
- (PyIntObjArgProc) BufferAssItem, /* sq_ass_item, x[i]=v */
-***************
-*** 1787,1792 ****
---- 1787,1796 ----
- case VAR_DICT: ++rettv->vval.v_dict->dv_refcount; break;
- case VAR_LIST: ++rettv->vval.v_list->lv_refcount; break;
- case VAR_FUNC: func_ref(rettv->vval.v_string); break;
-+ case VAR_UNKNOWN:
-+ rettv->v_type = VAR_NUMBER;
-+ rettv->vval.v_number = 0;
-+ break;
- }
- }
-
-*** ../vim-7.3.655/src/if_python3.c 2012-06-29 16:28:23.000000000 +0200
---- src/if_python3.c 2012-09-05 18:52:50.000000000 +0200
-***************
-*** 1817,1822 ****
---- 1817,1826 ----
- case VAR_DICT: ++rettv->vval.v_dict->dv_refcount; break;
- case VAR_LIST: ++rettv->vval.v_list->lv_refcount; break;
- case VAR_FUNC: func_ref(rettv->vval.v_string); break;
-+ case VAR_UNKNOWN:
-+ rettv->v_type = VAR_NUMBER;
-+ rettv->vval.v_number = 0;
-+ break;
- }
- }
-
-*** ../vim-7.3.655/src/version.c 2012-09-05 18:48:22.000000000 +0200
---- src/version.c 2012-09-05 18:53:20.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 656,
- /**/
-
---
-DEAD PERSON: I'm getting better!
-CUSTOMER: No, you're not -- you'll be stone dead in a moment.
-MORTICIAN: Oh, I can't take him like that -- it's against regulations.
- 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/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.657
-Fcc: 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.657
-Problem: Python bindings silently truncate string values containing NUL.
-Solution: Fail when a string contains NUL. (ZyX)
-Files: src/if_python.c, src/if_python3.c
-
-
-*** ../vim-7.3.656/src/if_python.c 2012-09-05 18:54:37.000000000 +0200
---- src/if_python.c 2012-09-05 19:02:07.000000000 +0200
-***************
-*** 191,196 ****
---- 191,197 ----
- # define PyRun_SimpleString dll_PyRun_SimpleString
- # define PyRun_String dll_PyRun_String
- # define PyString_AsString dll_PyString_AsString
-+ # define PyString_AsStringAndSize dll_PyString_AsStringAndSize
- # define PyString_FromString dll_PyString_FromString
- # define PyString_FromStringAndSize dll_PyString_FromStringAndSize
- # define PyString_Size dll_PyString_Size
-***************
-*** 288,293 ****
---- 289,295 ----
- static int(*dll_PyRun_SimpleString)(char *);
- static PyObject *(*dll_PyRun_String)(char *, int, PyObject *, PyObject *);
- static char*(*dll_PyString_AsString)(PyObject *);
-+ static int(*dll_PyString_AsStringAndSize)(PyObject *, char **, int *);
- static PyObject*(*dll_PyString_FromString)(const char *);
- static PyObject*(*dll_PyString_FromStringAndSize)(const char *, PyInt);
- static PyInt(*dll_PyString_Size)(PyObject *);
-***************
-*** 406,411 ****
---- 408,414 ----
- {"PyRun_SimpleString", (PYTHON_PROC*)&dll_PyRun_SimpleString},
- {"PyRun_String", (PYTHON_PROC*)&dll_PyRun_String},
- {"PyString_AsString", (PYTHON_PROC*)&dll_PyString_AsString},
-+ {"PyString_AsStringAndSize", (PYTHON_PROC*)&dll_PyString_AsStringAndSize},
- {"PyString_FromString", (PYTHON_PROC*)&dll_PyString_FromString},
- {"PyString_FromStringAndSize", (PYTHON_PROC*)&dll_PyString_FromStringAndSize},
- {"PyString_Size", (PYTHON_PROC*)&dll_PyString_Size},
-***************
-*** 578,591 ****
- static int initialised = 0;
- #define PYINITIALISED initialised
-
-- /* Add conversion from PyInt? */
- #define DICTKEY_GET(err) \
- if (!PyString_Check(keyObject)) \
- { \
- PyErr_SetString(PyExc_TypeError, _("only string keys are allowed")); \
- return err; \
- } \
-! key = (char_u *) PyString_AsString(keyObject);
- #define DICTKEY_UNREF
- #define DICTKEY_DECL
-
---- 581,595 ----
- static int initialised = 0;
- #define PYINITIALISED initialised
-
- #define DICTKEY_GET(err) \
- if (!PyString_Check(keyObject)) \
- { \
- PyErr_SetString(PyExc_TypeError, _("only string keys are allowed")); \
- return err; \
- } \
-! if (PyString_AsStringAndSize(keyObject, (char **) &key, NULL) == -1) \
-! return err;
-!
- #define DICTKEY_UNREF
- #define DICTKEY_DECL
-
-*** ../vim-7.3.656/src/if_python3.c 2012-09-05 18:54:37.000000000 +0200
---- src/if_python3.c 2012-09-05 19:02:07.000000000 +0200
-***************
-*** 172,177 ****
---- 172,178 ----
- # define PyUnicode_AsEncodedString py3_PyUnicode_AsEncodedString
- # undef PyBytes_AsString
- # define PyBytes_AsString py3_PyBytes_AsString
-+ # define PyBytes_AsStringAndSize py3_PyBytes_AsStringAndSize
- # undef PyBytes_FromString
- # define PyBytes_FromString py3_PyBytes_FromString
- # define PyFloat_FromDouble py3_PyFloat_FromDouble
-***************
-*** 273,278 ****
---- 274,280 ----
- static char* (*py3__PyUnicode_AsString)(PyObject *unicode);
- static PyObject* (*py3_PyUnicode_AsEncodedString)(PyObject *unicode, const char* encoding, const char* errors);
- static char* (*py3_PyBytes_AsString)(PyObject *bytes);
-+ static int (*py3_PyBytes_AsStringAndSize)(PyObject *bytes, char **buffer, int *length);
- static PyObject* (*py3_PyBytes_FromString)(char *str);
- static PyObject* (*py3_PyFloat_FromDouble)(double num);
- static double (*py3_PyFloat_AsDouble)(PyObject *);
-***************
-*** 379,384 ****
---- 381,387 ----
- {"PyImport_AppendInittab", (PYTHON_PROC*)&py3_PyImport_AppendInittab},
- {"_PyUnicode_AsString", (PYTHON_PROC*)&py3__PyUnicode_AsString},
- {"PyBytes_AsString", (PYTHON_PROC*)&py3_PyBytes_AsString},
-+ {"PyBytes_AsStringAndSize", (PYTHON_PROC*)&py3_PyBytes_AsStringAndSize},
- {"PyBytes_FromString", (PYTHON_PROC*)&py3_PyBytes_FromString},
- {"PyFloat_FromDouble", (PYTHON_PROC*)&py3_PyFloat_FromDouble},
- {"PyFloat_AsDouble", (PYTHON_PROC*)&py3_PyFloat_AsDouble},
-***************
-*** 544,560 ****
-
- #define PYINITIALISED py3initialised
-
-! /* Add conversion from PyInt? */
- #define DICTKEY_GET(err) \
- if (PyBytes_Check(keyObject)) \
-! key = (char_u *) PyBytes_AsString(keyObject); \
- else if (PyUnicode_Check(keyObject)) \
- { \
- bytes = PyString_AsBytes(keyObject); \
- if (bytes == NULL) \
- return err; \
-! key = (char_u *) PyBytes_AsString(bytes); \
-! if (key == NULL) \
- return err; \
- } \
- else \
---- 547,566 ----
-
- #define PYINITIALISED py3initialised
-
-! #define DICTKEY_DECL PyObject *bytes = NULL;
-!
- #define DICTKEY_GET(err) \
- if (PyBytes_Check(keyObject)) \
-! { \
-! if (PyBytes_AsStringAndSize(keyObject, (char **) &key, NULL) == -1) \
-! return err; \
-! } \
- else if (PyUnicode_Check(keyObject)) \
- { \
- bytes = PyString_AsBytes(keyObject); \
- if (bytes == NULL) \
- return err; \
-! if (PyBytes_AsStringAndSize(bytes, (char **) &key, NULL) == -1) \
- return err; \
- } \
- else \
-***************
-*** 562,573 ****
- PyErr_SetString(PyExc_TypeError, _("only string keys are allowed")); \
- return err; \
- }
- #define DICTKEY_UNREF \
- if (bytes != NULL) \
- Py_XDECREF(bytes);
-
-- #define DICTKEY_DECL PyObject *bytes = NULL;
--
- /*
- * Include the code shared with if_python.c
- */
---- 568,578 ----
- PyErr_SetString(PyExc_TypeError, _("only string keys are allowed")); \
- return err; \
- }
-+
- #define DICTKEY_UNREF \
- if (bytes != NULL) \
- Py_XDECREF(bytes);
-
- /*
- * Include the code shared with if_python.c
- */
-*** ../vim-7.3.656/src/version.c 2012-09-05 18:54:37.000000000 +0200
---- src/version.c 2012-09-05 19:03:03.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 657,
- /**/
-
---
-Have you heard about the new Barbie doll? It's called Divorce
-Barbie. It comes with all of Ken's stuff.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.658
-Fcc: 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.658
-Problem: NUL bytes truncate strings when converted from Python.
-Solution: Handle truncation as an error. (ZyX)
-Files: src/if_py_both.h, src/if_python3.c
-
-
-*** ../vim-7.3.657/src/if_py_both.h 2012-09-05 18:45:24.000000000 +0200
---- src/if_py_both.h 2012-09-05 19:05:27.000000000 +0200
-***************
-*** 2530,2537 ****
- #if PY_MAJOR_VERSION >= 3
- else if (PyBytes_Check(obj))
- {
-! char_u *result = (char_u *) PyBytes_AsString(obj);
-
- if (result == NULL)
- return -1;
-
---- 2530,2539 ----
- #if PY_MAJOR_VERSION >= 3
- else if (PyBytes_Check(obj))
- {
-! char_u *result;
-
-+ if (PyString_AsStringAndSize(obj, (char **) &result, NULL) == -1)
-+ return -1;
- if (result == NULL)
- return -1;
-
-***************
-*** 2549,2555 ****
- if (bytes == NULL)
- return -1;
-
-! result = (char_u *) PyBytes_AsString(bytes);
- if (result == NULL)
- return -1;
-
---- 2551,2558 ----
- if (bytes == NULL)
- return -1;
-
-! if(PyString_AsStringAndSize(bytes, (char **) &result, NULL) == -1)
-! return -1;
- if (result == NULL)
- return -1;
-
-***************
-*** 2572,2578 ****
- if (bytes == NULL)
- return -1;
-
-! result=(char_u *) PyString_AsString(bytes);
- if (result == NULL)
- return -1;
-
---- 2575,2582 ----
- if (bytes == NULL)
- return -1;
-
-! if(PyString_AsStringAndSize(bytes, (char **) &result, NULL) == -1)
-! return -1;
- if (result == NULL)
- return -1;
-
-***************
-*** 2587,2594 ****
- }
- else if (PyString_Check(obj))
- {
-! char_u *result = (char_u *) PyString_AsString(obj);
-
- if (result == NULL)
- return -1;
-
---- 2591,2600 ----
- }
- else if (PyString_Check(obj))
- {
-! char_u *result;
-
-+ if(PyString_AsStringAndSize(obj, (char **) &result, NULL) == -1)
-+ return -1;
- if (result == NULL)
- return -1;
-
-*** ../vim-7.3.657/src/if_python3.c 2012-09-05 19:03:51.000000000 +0200
---- src/if_python3.c 2012-09-05 19:05:27.000000000 +0200
-***************
-*** 85,90 ****
---- 85,91 ----
- #define PyString_AsString(obj) PyBytes_AsString(obj)
- #define PyString_Size(obj) PyBytes_GET_SIZE(bytes)
- #define PyString_FromString(repr) PyUnicode_FromString(repr)
-+ #define PyString_AsStringAndSize(obj, buffer, len) PyBytes_AsStringAndSize(obj, buffer, len)
-
- #if defined(DYNAMIC_PYTHON3) || defined(PROTO)
-
-***************
-*** 552,558 ****
- #define DICTKEY_GET(err) \
- if (PyBytes_Check(keyObject)) \
- { \
-! if (PyBytes_AsStringAndSize(keyObject, (char **) &key, NULL) == -1) \
- return err; \
- } \
- else if (PyUnicode_Check(keyObject)) \
---- 553,559 ----
- #define DICTKEY_GET(err) \
- if (PyBytes_Check(keyObject)) \
- { \
-! if (PyString_AsStringAndSize(keyObject, (char **) &key, NULL) == -1) \
- return err; \
- } \
- else if (PyUnicode_Check(keyObject)) \
-***************
-*** 560,566 ****
- bytes = PyString_AsBytes(keyObject); \
- if (bytes == NULL) \
- return err; \
-! if (PyBytes_AsStringAndSize(bytes, (char **) &key, NULL) == -1) \
- return err; \
- } \
- else \
---- 561,567 ----
- bytes = PyString_AsBytes(keyObject); \
- if (bytes == NULL) \
- return err; \
-! if (PyString_AsStringAndSize(bytes, (char **) &key, NULL) == -1) \
- return err; \
- } \
- else \
-*** ../vim-7.3.657/src/version.c 2012-09-05 19:03:51.000000000 +0200
---- src/version.c 2012-09-05 19:07:40.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 658,
- /**/
-
---
-You know you use Vim too much when you have this alias in your
-~/.bashrc file: alias :e=/bin/vim (Eljay Love-Jensen)
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.659
-Fcc: 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.659
-Problem: Recent Python changes are not tested.
-Solution: Add tests for Python bindings. (ZyX)
-Files: src/testdir/test86.in, src/testdir/test86.ok,
- src/testdir/test87.in, src/testdir/test87.ok
-
-
-*** ../vim-7.3.658/src/testdir/test86.in 2012-06-29 12:54:32.000000000 +0200
---- src/testdir/test86.in 2012-09-05 19:11:36.000000000 +0200
-***************
-*** 176,203 ****
- :else
- : $put ='[0.0, 0.0]'
- :endif
- :"
- :" pyeval()
- :let l=pyeval('range(3)')
- :$put =string(l)
- :let d=pyeval('{"a": "b", "c": 1, "d": ["e"]}')
- :$put =sort(items(d))
-- :try
-- : let undef=pyeval('undefined_name')
-- :catch
-- : $put =v:exception[:13]
-- :endtry
-- :try
-- : let vim=pyeval('vim')
-- :catch
-- : $put =v:exception[:13]
-- :endtry
- :if has('float')
- : let f=pyeval('0.0')
- : $put =string(f)
- :else
- : $put ='0.0'
- :endif
- :endfun
- :"
- :call Test()
---- 176,237 ----
- :else
- : $put ='[0.0, 0.0]'
- :endif
-+ :let messages=[]
-+ :py <<EOF
-+ d=vim.bindeval('{}')
-+ m=vim.bindeval('messages')
-+ try:
-+ d['abc']
-+ except Exception as e:
-+ m.extend([e.__class__.__name__])
-+
-+ try:
-+ d['abc']="\0"
-+ except Exception as e:
-+ m.extend([e.__class__.__name__])
-+
-+ try:
-+ d['abc']=vim
-+ except Exception as e:
-+ m.extend([e.__class__.__name__])
-+
-+ try:
-+ d['']=1
-+ except Exception as e:
-+ m.extend([e.__class__.__name__])
-+
-+ try:
-+ d['a\0b']=1
-+ except Exception as e:
-+ m.extend([e.__class__.__name__])
-+
-+ try:
-+ d[b'a\0b']=1
-+ except Exception as e:
-+ m.extend([e.__class__.__name__])
-+ EOF
-+ :$put =messages
- :"
- :" pyeval()
- :let l=pyeval('range(3)')
- :$put =string(l)
- :let d=pyeval('{"a": "b", "c": 1, "d": ["e"]}')
- :$put =sort(items(d))
- :if has('float')
- : let f=pyeval('0.0')
- : $put =string(f)
- :else
- : $put ='0.0'
- :endif
-+ :" Invalid values:
-+ :for e in ['"\0"', '{"\0": 1}', 'undefined_name', 'vim']
-+ : try
-+ : let v=pyeval(e)
-+ : catch
-+ : let toput=e.":\t".v:exception[:13]
-+ : $put =toput
-+ : endtry
-+ :endfor
- :endfun
- :"
- :call Test()
-*** ../vim-7.3.658/src/testdir/test86.ok 2012-06-29 12:54:32.000000000 +0200
---- src/testdir/test86.ok 2012-09-05 19:11:36.000000000 +0200
-***************
-*** 38,47 ****
- Vim(python):E725:
- Vim(python):E117:
- [0.0, 0.0]
- [0, 1, 2]
- ['a', 'b']
- ['c', 1]
- ['d', ['e']]
-- Vim(let):E858:
-- Vim(let):E859:
- 0.0
---- 38,55 ----
- Vim(python):E725:
- Vim(python):E117:
- [0.0, 0.0]
-+ IndexError
-+ TypeError
-+ TypeError
-+ ValueError
-+ TypeError
-+ TypeError
- [0, 1, 2]
- ['a', 'b']
- ['c', 1]
- ['d', ['e']]
- 0.0
-+ "\0": Vim(let):E859:
-+ {"\0": 1}: Vim(let):E859:
-+ undefined_name: Vim(let):E858:
-+ vim: Vim(let):E859:
-*** ../vim-7.3.658/src/testdir/test87.in 2012-06-29 12:54:32.000000000 +0200
---- src/testdir/test87.in 2012-09-05 19:11:36.000000000 +0200
-***************
-*** 176,203 ****
- :else
- : $put ='[0.0, 0.0]'
- :endif
- :"
- :" py3eval()
- :let l=py3eval('[0, 1, 2]')
- :$put =string(l)
- :let d=py3eval('{"a": "b", "c": 1, "d": ["e"]}')
- :$put =sort(items(d))
-- :try
-- : let undef=py3eval('undefined_name')
-- :catch
-- : $put =v:exception[:13]
-- :endtry
-- :try
-- : let vim=py3eval('vim')
-- :catch
-- : $put =v:exception[:13]
-- :endtry
- :if has('float')
- : let f=py3eval('0.0')
- : $put =string(f)
- :else
- : $put ='0.0'
- :endif
- :endfun
- :"
- :call Test()
---- 176,237 ----
- :else
- : $put ='[0.0, 0.0]'
- :endif
-+ :let messages=[]
-+ :py3 <<EOF
-+ d=vim.bindeval('{}')
-+ m=vim.bindeval('messages')
-+ try:
-+ d['abc']
-+ except Exception as e:
-+ m.extend([e.__class__.__name__])
-+
-+ try:
-+ d['abc']="\0"
-+ except Exception as e:
-+ m.extend([e.__class__.__name__])
-+
-+ try:
-+ d['abc']=vim
-+ except Exception as e:
-+ m.extend([e.__class__.__name__])
-+
-+ try:
-+ d['']=1
-+ except Exception as e:
-+ m.extend([e.__class__.__name__])
-+
-+ try:
-+ d['a\0b']=1
-+ except Exception as e:
-+ m.extend([e.__class__.__name__])
-+
-+ try:
-+ d[b'a\0b']=1
-+ except Exception as e:
-+ m.extend([e.__class__.__name__])
-+ EOF
-+ :$put =messages
- :"
- :" py3eval()
- :let l=py3eval('[0, 1, 2]')
- :$put =string(l)
- :let d=py3eval('{"a": "b", "c": 1, "d": ["e"]}')
- :$put =sort(items(d))
- :if has('float')
- : let f=py3eval('0.0')
- : $put =string(f)
- :else
- : $put ='0.0'
- :endif
-+ :" Invalid values:
-+ :for e in ['"\0"', '{"\0": 1}', 'undefined_name', 'vim']
-+ : try
-+ : let v=py3eval(e)
-+ : catch
-+ : let toput=e.":\t".v:exception[:13]
-+ : $put =toput
-+ : endtry
-+ :endfor
- :endfun
- :"
- :call Test()
-*** ../vim-7.3.658/src/testdir/test87.ok 2012-06-29 12:54:32.000000000 +0200
---- src/testdir/test87.ok 2012-09-05 19:11:36.000000000 +0200
-***************
-*** 38,47 ****
- Vim(py3):E725:
- Vim(py3):E117:
- [0.0, 0.0]
- [0, 1, 2]
- ['a', 'b']
- ['c', 1]
- ['d', ['e']]
-- Vim(let):E860:
-- Vim(let):E861:
- 0.0
---- 38,55 ----
- Vim(py3):E725:
- Vim(py3):E117:
- [0.0, 0.0]
-+ IndexError
-+ TypeError
-+ TypeError
-+ ValueError
-+ TypeError
-+ TypeError
- [0, 1, 2]
- ['a', 'b']
- ['c', 1]
- ['d', ['e']]
- 0.0
-+ "\0": Vim(let):E861:
-+ {"\0": 1}: Vim(let):E861:
-+ undefined_name: Vim(let):E860:
-+ vim: Vim(let):E861:
-*** ../vim-7.3.658/src/version.c 2012-09-05 19:09:06.000000000 +0200
---- src/version.c 2012-09-05 19:16:52.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 659,
- /**/
-
---
-DEAD PERSON: I don't want to go in the cart!
-CUSTOMER: Oh, don't be such a baby.
-MORTICIAN: I can't take him...
-DEAD PERSON: I feel fine!
-CUSTOMER: Oh, do us a favor...
-MORTICIAN: I can't.
- 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/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.660
-Fcc: 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.660
-Problem: ":help !" jumps to help for ":!".
-Solution: Adjust check for tag header line. (Andy Wokula)
-Files: src/tag.c
-
-
-*** ../vim-7.3.659/src/tag.c 2012-09-05 15:03:27.000000000 +0200
---- src/tag.c 2012-09-12 18:10:01.000000000 +0200
-***************
-*** 1797,1803 ****
- */
- if (state == TS_START)
- {
-! if (STRNCMP(lbuf, "!_TAG_", 6) <= 0)
- {
- /*
- * Read header line.
---- 1797,1803 ----
- */
- if (state == TS_START)
- {
-! if (STRNCMP(lbuf, "!_TAG_", 6) == 0)
- {
- /*
- * Read header line.
-*** ../vim-7.3.659/src/version.c 2012-09-05 19:17:37.000000000 +0200
---- src/version.c 2012-09-12 18:18:30.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 660,
- /**/
-
---
-Q: How does a UNIX Guru pick up a girl?
-A: look; grep; which; eval; nice; uname; talk; date;
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.661
-Fcc: 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.661 (after 7.3.652)
-Problem: SEGV in Python code.
-Solution: Initialize len to zero. Use the right function depending on
- version. (Maxim Philippov)
-Files: src/if_py_both.h, src/if_python.c, src/if_python3.c
-
-
-*** ../vim-7.3.660/src/if_py_both.h 2012-09-05 19:09:06.000000000 +0200
---- src/if_py_both.h 2012-09-12 19:50:07.000000000 +0200
-***************
-*** 74,80 ****
- static PyObject *
- OutputWrite(PyObject *self, PyObject *args)
- {
-! Py_ssize_t len;
- char *str = NULL;
- int error = ((OutputObject *)(self))->error;
-
---- 74,80 ----
- static PyObject *
- OutputWrite(PyObject *self, PyObject *args)
- {
-! Py_ssize_t len = 0;
- char *str = NULL;
- int error = ((OutputObject *)(self))->error;
-
-*** ../vim-7.3.660/src/if_python.c 2012-09-05 19:03:51.000000000 +0200
---- src/if_python.c 2012-09-12 19:52:10.000000000 +0200
-***************
-*** 44,51 ****
- # undef _XOPEN_SOURCE /* pyconfig.h defines it as well. */
- #endif
-
-- #define PY_SSIZE_T_CLEAN
--
- #include <Python.h>
- #if defined(MACOS) && !defined(MACOS_X_UNIX)
- # include "macglue.h"
---- 44,49 ----
-***************
-*** 54,59 ****
---- 52,61 ----
- #undef main /* Defined in python.h - aargh */
- #undef HAVE_FCNTL_H /* Clash with os_win32.h */
-
-+ #if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02050000
-+ # define PY_SSIZE_T_CLEAN
-+ #endif
-+
- static void init_structs(void);
-
- #define PyBytes_FromString PyString_FromString
-***************
-*** 358,365 ****
---- 360,374 ----
- PYTHON_PROC *ptr;
- } python_funcname_table[] =
- {
-+ #ifndef PY_SSIZE_T_CLEAN
- {"PyArg_Parse", (PYTHON_PROC*)&dll_PyArg_Parse},
- {"PyArg_ParseTuple", (PYTHON_PROC*)&dll_PyArg_ParseTuple},
-+ {"Py_BuildValue", (PYTHON_PROC*)&dll_Py_BuildValue},
-+ #else
-+ {"_PyArg_Parse_SizeT", (PYTHON_PROC*)&dll_PyArg_Parse},
-+ {"_PyArg_ParseTuple_SizeT", (PYTHON_PROC*)&dll_PyArg_ParseTuple},
-+ {"_Py_BuildValue_SizeT", (PYTHON_PROC*)&dll_Py_BuildValue},
-+ #endif
- {"PyMem_Free", (PYTHON_PROC*)&dll_PyMem_Free},
- {"PyMem_Malloc", (PYTHON_PROC*)&dll_PyMem_Malloc},
- {"PyDict_SetItemString", (PYTHON_PROC*)&dll_PyDict_SetItemString},
-***************
-*** 422,428 ****
- {"PySys_SetArgv", (PYTHON_PROC*)&dll_PySys_SetArgv},
- {"PyType_Type", (PYTHON_PROC*)&dll_PyType_Type},
- {"PyType_Ready", (PYTHON_PROC*)&dll_PyType_Ready},
-- {"Py_BuildValue", (PYTHON_PROC*)&dll_Py_BuildValue},
- {"Py_FindMethod", (PYTHON_PROC*)&dll_Py_FindMethod},
- # if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02050000 \
- && SIZEOF_SIZE_T != SIZEOF_INT
---- 431,436 ----
-*** ../vim-7.3.660/src/if_python3.c 2012-09-05 19:09:06.000000000 +0200
---- src/if_python3.c 2012-09-12 19:52:10.000000000 +0200
-***************
-*** 42,49 ****
- # undef _DEBUG
- #endif
-
-- #define PY_SSIZE_T_CLEAN
--
- #ifdef F_BLANK
- # undef F_BLANK
- #endif
---- 42,47 ----
-***************
-*** 66,71 ****
---- 64,73 ----
- #undef main /* Defined in python.h - aargh */
- #undef HAVE_FCNTL_H /* Clash with os_win32.h */
-
-+ #if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02050000
-+ # define PY_SSIZE_T_CLEAN
-+ #endif
-+
- static void init_structs(void);
-
- /* The "surrogateescape" error handler is new in Python 3.1 */
-***************
-*** 328,334 ****
---- 330,342 ----
- {"PySys_SetArgv", (PYTHON_PROC*)&py3_PySys_SetArgv},
- {"Py_SetPythonHome", (PYTHON_PROC*)&py3_Py_SetPythonHome},
- {"Py_Initialize", (PYTHON_PROC*)&py3_Py_Initialize},
-+ #ifndef PY_SSIZE_T_CLEAN
- {"PyArg_ParseTuple", (PYTHON_PROC*)&py3_PyArg_ParseTuple},
-+ {"Py_BuildValue", (PYTHON_PROC*)&py3_Py_BuildValue},
-+ #else
-+ {"_PyArg_ParseTuple_SizeT", (PYTHON_PROC*)&py3_PyArg_ParseTuple},
-+ {"_Py_BuildValue_SizeT", (PYTHON_PROC*)&py3_Py_BuildValue},
-+ #endif
- {"PyMem_Free", (PYTHON_PROC*)&py3_PyMem_Free},
- {"PyMem_Malloc", (PYTHON_PROC*)&py3_PyMem_Malloc},
- {"PyList_New", (PYTHON_PROC*)&py3_PyList_New},
-***************
-*** 364,370 ****
- {"PyObject_GetIter", (PYTHON_PROC*)&py3_PyObject_GetIter},
- {"PyLong_FromLong", (PYTHON_PROC*)&py3_PyLong_FromLong},
- {"PyDict_New", (PYTHON_PROC*)&py3_PyDict_New},
-- {"Py_BuildValue", (PYTHON_PROC*)&py3_Py_BuildValue},
- {"PyType_Ready", (PYTHON_PROC*)&py3_PyType_Ready},
- {"PyDict_SetItemString", (PYTHON_PROC*)&py3_PyDict_SetItemString},
- {"PyLong_AsLong", (PYTHON_PROC*)&py3_PyLong_AsLong},
---- 372,377 ----
-*** ../vim-7.3.660/src/version.c 2012-09-12 18:19:39.000000000 +0200
---- src/version.c 2012-09-12 19:53:52.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 661,
- /**/
-
---
-Courtroom Quote #19:
-Q: Doctor, how many autopsies have you performed on dead people?
-A: All my autopsies have been performed on dead people.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.662
-Fcc: 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.662
-Problem: Can't build Ruby interface with Ruby 1.9.3.
-Solution: Add missing functions. (V. Ondruch)
-Files: src/if_ruby.c
-
-
-*** ../vim-7.3.661/src/if_ruby.c 2012-04-25 12:28:05.000000000 +0200
---- src/if_ruby.c 2012-09-18 16:31:45.000000000 +0200
-***************
-*** 178,183 ****
---- 178,186 ----
- #define rb_hash_new dll_rb_hash_new
- #define rb_inspect dll_rb_inspect
- #define rb_int2inum dll_rb_int2inum
-+ #define rb_fix2int dll_rb_fix2int
-+ #define rb_num2int dll_rb_num2int
-+ #define rb_num2uint dll_rb_num2uint
- #define rb_lastline_get dll_rb_lastline_get
- #define rb_lastline_set dll_rb_lastline_set
- #define rb_load_protect dll_rb_load_protect
-***************
-*** 268,274 ****
- static VALUE (*dll_rb_hash_new) (void);
- static VALUE (*dll_rb_inspect) (VALUE);
- static VALUE (*dll_rb_int2inum) (long);
-! static VALUE (*dll_rb_int2inum) (long);
- static VALUE (*dll_rb_lastline_get) (void);
- static void (*dll_rb_lastline_set) (VALUE);
- static void (*dll_rb_load_protect) (VALUE, int, int*);
---- 271,279 ----
- static VALUE (*dll_rb_hash_new) (void);
- static VALUE (*dll_rb_inspect) (VALUE);
- static VALUE (*dll_rb_int2inum) (long);
-! static long (*dll_rb_fix2int) (VALUE);
-! static long (*dll_rb_num2int) (VALUE);
-! static unsigned long (*dll_rb_num2uint) (VALUE);
- static VALUE (*dll_rb_lastline_get) (void);
- static void (*dll_rb_lastline_set) (VALUE);
- static void (*dll_rb_load_protect) (VALUE, int, int*);
-***************
-*** 377,382 ****
---- 382,390 ----
- {"rb_hash_new", (RUBY_PROC*)&dll_rb_hash_new},
- {"rb_inspect", (RUBY_PROC*)&dll_rb_inspect},
- {"rb_int2inum", (RUBY_PROC*)&dll_rb_int2inum},
-+ {"rb_fix2int", (RUBY_PROC*)&dll_rb_fix2int},
-+ {"rb_num2int", (RUBY_PROC*)&dll_rb_num2int},
-+ {"rb_num2uint", (RUBY_PROC*)&dll_rb_num2uint},
- {"rb_lastline_get", (RUBY_PROC*)&dll_rb_lastline_get},
- {"rb_lastline_set", (RUBY_PROC*)&dll_rb_lastline_set},
- {"rb_load_protect", (RUBY_PROC*)&dll_rb_load_protect},
-*** ../vim-7.3.661/src/version.c 2012-09-12 20:21:38.000000000 +0200
---- src/version.c 2012-09-18 16:35:53.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 662,
- /**/
-
---
-FATHER: We are here today to witness the union of two young people in the
- joyful bond of the holy wedlock. Unfortunately, one of them, my son
- Herbert, has just fallen to his death.
- [Murmurs from CROWD; the BRIDE smiles with relief, coughs.]
- "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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.663
-Fcc: 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.663
-Problem: End of color scheme name not clear in E185. (Aaron Lewis)
-Solution: Put the name in single quotes.
-Files: src/ex_docmd.c
-
-
-*** ../vim-7.3.662/src/ex_docmd.c 2012-08-23 18:43:06.000000000 +0200
---- src/ex_docmd.c 2012-09-14 20:49:29.000000000 +0200
-***************
-*** 6466,6472 ****
- #endif
- }
- else if (load_colors(eap->arg) == FAIL)
-! EMSG2(_("E185: Cannot find color scheme %s"), eap->arg);
- }
-
- static void
---- 6466,6472 ----
- #endif
- }
- else if (load_colors(eap->arg) == FAIL)
-! EMSG2(_("E185: Cannot find color scheme '%s'"), eap->arg);
- }
-
- static void
-*** ../vim-7.3.662/src/version.c 2012-09-18 16:36:26.000000000 +0200
---- src/version.c 2012-09-18 16:44:57.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 663,
- /**/
-
---
-Yesterday is history.
-Tomorrow is a mystery.
-Today is a gift.
-That's why it is called 'present'.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.664
-Fcc: 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.664
-Problem: Buffer overflow in unescaping text. (Raymond Ko)
-Solution: Limit check for multi-byte character to 4 bytes.
-Files: src/mbyte.c
-
-
-*** ../vim-7.3.663/src/mbyte.c 2012-06-01 17:46:52.000000000 +0200
---- src/mbyte.c 2012-09-18 17:53:05.000000000 +0200
-***************
-*** 3793,3805 ****
- mb_unescape(pp)
- char_u **pp;
- {
-! static char_u buf[MB_MAXBYTES + 1];
-! int n, m = 0;
- char_u *str = *pp;
-
- /* Must translate K_SPECIAL KS_SPECIAL KE_FILLER to K_SPECIAL and CSI
-! * KS_EXTRA KE_CSI to CSI. */
-! for (n = 0; str[n] != NUL && m <= MB_MAXBYTES; ++n)
- {
- if (str[n] == K_SPECIAL
- && str[n + 1] == KS_SPECIAL
---- 3793,3807 ----
- mb_unescape(pp)
- char_u **pp;
- {
-! static char_u buf[6];
-! int n;
-! int m = 0;
- char_u *str = *pp;
-
- /* Must translate K_SPECIAL KS_SPECIAL KE_FILLER to K_SPECIAL and CSI
-! * KS_EXTRA KE_CSI to CSI.
-! * Maximum length of a utf-8 character is 4 bytes. */
-! for (n = 0; str[n] != NUL && m < 4; ++n)
- {
- if (str[n] == K_SPECIAL
- && str[n + 1] == KS_SPECIAL
-***************
-*** 3836,3841 ****
---- 3838,3847 ----
- *pp = str + n + 1;
- return buf;
- }
-+
-+ /* Bail out quickly for ASCII. */
-+ if (buf[0] < 128)
-+ break;
- }
- return NULL;
- }
-*** ../vim-7.3.663/src/version.c 2012-09-18 16:47:00.000000000 +0200
---- src/version.c 2012-09-18 18:01:14.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 664,
- /**/
-
---
-There are three kinds of people: Those who can count & those who can't.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.665
-Fcc: 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.665
-Problem: MSVC 11 is not supported.
-Solution: Recognize MSVC 11. (Raymond Ko)
-Files: src/Make_mvc.mak
-
-
-*** ../vim-7.3.664/src/Make_mvc.mak 2012-09-05 17:57:34.000000000 +0200
---- src/Make_mvc.mak 2012-09-18 18:24:48.000000000 +0200
-***************
-*** 395,400 ****
---- 395,403 ----
- !if "$(_NMAKE_VER)" == "10.00.30319.01"
- MSVCVER = 10.0
- !endif
-+ !if "$(_NMAKE_VER)" == "11.00.50727.1"
-+ MSVCVER = 11.0
-+ !endif
- !endif
-
- # Abort bulding VIM if version of VC is unrecognised.
-***************
-*** 409,415 ****
- !endif
-
- # Convert processor ID to MVC-compatible number
-! !if ("$(MSVCVER)" != "8.0") && ("$(MSVCVER)" != "9.0") && ("$(MSVCVER)" != "10.0")
- !if "$(CPUNR)" == "i386"
- CPUARG = /G3
- !elseif "$(CPUNR)" == "i486"
---- 412,418 ----
- !endif
-
- # Convert processor ID to MVC-compatible number
-! !if ("$(MSVCVER)" != "8.0") && ("$(MSVCVER)" != "9.0") && ("$(MSVCVER)" != "10.0") && ("$(MSVCVER)" != "11.0")
- !if "$(CPUNR)" == "i386"
- CPUARG = /G3
- !elseif "$(CPUNR)" == "i486"
-***************
-*** 443,449 ****
- OPTFLAG = /Ox
- !endif
-
-! !if ("$(MSVCVER)" == "8.0") || ("$(MSVCVER)" == "9.0") || ("$(MSVCVER)" == "10.0")
- # Use link time code generation if not worried about size
- !if "$(OPTIMIZE)" != "SPACE"
- OPTFLAG = $(OPTFLAG) /GL
---- 446,452 ----
- OPTFLAG = /Ox
- !endif
-
-! !if ("$(MSVCVER)" == "8.0") || ("$(MSVCVER)" == "9.0") || ("$(MSVCVER)" == "10.0") || ("$(MSVCVER)" == "11.0")
- # Use link time code generation if not worried about size
- !if "$(OPTIMIZE)" != "SPACE"
- OPTFLAG = $(OPTFLAG) /GL
-*** ../vim-7.3.664/src/version.c 2012-09-18 18:03:33.000000000 +0200
---- src/version.c 2012-09-18 18:26:16.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 665,
- /**/
-
---
-There are 10 kinds of people: Those who understand binary and those who don't.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.6
-Fcc: 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.666
-Problem: With MSVC 11 Win32.mak is not found.
-Solution: Add the SDK_INCLUDE_DIR variable. (Raymond Ko)
-Files: src/Make_mvc.mak
-
-
-*** ../vim-7.3.665/src/Make_mvc.mak 2012-09-18 18:27:07.000000000 +0200
---- src/Make_mvc.mak 2012-09-18 21:58:09.000000000 +0200
-***************
-*** 1,7 ****
- # Makefile for Vim on Win32 (Windows NT/2000/XP/2003 and Windows 95/98/Me)
- # and Win64, using the Microsoft Visual C++ compilers. Known to work with
- # VC5, VC6 (VS98), VC7.0 (VS2002), VC7.1 (VS2003), VC8 (VS2005),
-! # VC9 (VS2008), and VC10 (VS2010).
- #
- # To build using other Windows compilers, see INSTALLpc.txt
- #
---- 1,7 ----
- # Makefile for Vim on Win32 (Windows NT/2000/XP/2003 and Windows 95/98/Me)
- # and Win64, using the Microsoft Visual C++ compilers. Known to work with
- # VC5, VC6 (VS98), VC7.0 (VS2002), VC7.1 (VS2003), VC8 (VS2005),
-! # VC9 (VS2008), VC10 (VS2010) and VC11 (VS2012)
- #
- # To build using other Windows compilers, see INSTALLpc.txt
- #
-***************
-*** 15,20 ****
---- 15,23 ----
- # This will build the console version of Vim with no additional interfaces.
- # To add features, define any of the following:
- #
-+ # For MSVC 11 you need to specify where the Win32.mak file is, e.g.:
-+ # SDK_INCLUDE_DIR="C:\Program Files\Microsoft SDKs\Windows\v7.1\Include"
-+ #
- # !!!! After changing features do "nmake clean" first !!!!
- #
- # Feature Set: FEATURES=[TINY, SMALL, NORMAL, BIG, HUGE] (default is BIG)
-***************
-*** 227,233 ****
---- 230,241 ----
-
- # Get all sorts of useful, standard macros from the Platform SDK.
-
-+ !ifdef SDK_INCLUDE_DIR
-+ !include $(SDK_INCLUDE_DIR)\Win32.mak
-+ !else
- !include <Win32.mak>
-+ !endif
-+
-
- # Flag to turn on Win64 compatibility warnings for VC7.x and VC8.
- WP64CHECK = /Wp64
-***************
-*** 911,917 ****
-
- # Report link time code generation progress if used.
- !ifdef NODEBUG
-! !if ("$(MSVCVER)" == "8.0") || ("$(MSVCVER)" == "9.0") || ("$(MSVCVER)" == "10.0")
- !if "$(OPTIMIZE)" != "SPACE"
- LINKARGS1 = $(LINKARGS1) /LTCG:STATUS
- !endif
---- 919,925 ----
-
- # Report link time code generation progress if used.
- !ifdef NODEBUG
-! !if ("$(MSVCVER)" == "8.0") || ("$(MSVCVER)" == "9.0") || ("$(MSVCVER)" == "10.0") || ("$(MSVCVER)" == "11.0")
- !if "$(OPTIMIZE)" != "SPACE"
- LINKARGS1 = $(LINKARGS1) /LTCG:STATUS
- !endif
-*** ../vim-7.3.665/src/version.c 2012-09-18 18:27:07.000000000 +0200
---- src/version.c 2012-09-18 21:58:44.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 666,
- /**/
-
---
-Be nice to your kids... they'll be the ones choosing your nursing home.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.667
-Fcc: 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.667
-Problem: Unused variables in Perl interface.
-Solution: Adjust #ifdefs.
-Files: src/if_perl.xs
-
-
-*** ../vim-7.3.666/src/if_perl.xs 2012-08-08 13:17:26.000000000 +0200
---- src/if_perl.xs 2012-09-21 12:39:29.000000000 +0200
-***************
-*** 315,320 ****
---- 315,323 ----
- static void (*Perl_sv_free2)(pTHX_ SV*);
- static void (*Perl_sys_init)(int* argc, char*** argv);
- static void (*Perl_sys_term)(void);
-+ static void (*Perl_call_list)(pTHX_ I32, AV*);
-+ # if (PERL_REVISION == 5) && (PERL_VERSION >= 14)
-+ # else
- static SV** (*Perl_ISv_ptr)(register PerlInterpreter*);
- static SV*** (*Perl_Istack_max_ptr)(register PerlInterpreter*);
- static SV*** (*Perl_Istack_base_ptr)(register PerlInterpreter*);
-***************
-*** 326,341 ****
- static I32** (*Perl_Imarkstack_max_ptr)(register PerlInterpreter*);
- static SV*** (*Perl_Istack_sp_ptr)(register PerlInterpreter*);
- static OP** (*Perl_Iop_ptr)(register PerlInterpreter*);
-- static void (*Perl_call_list)(pTHX_ I32, AV*);
- static I32* (*Perl_Iscopestack_ix_ptr)(register PerlInterpreter*);
- static AV** (*Perl_Iunitcheckav_ptr)(register PerlInterpreter*);
- #endif
-
- static GV** (*Perl_Idefgv_ptr)(register PerlInterpreter*);
- static GV** (*Perl_Ierrgv_ptr)(register PerlInterpreter*);
- static SV* (*Perl_Isv_yes_ptr)(register PerlInterpreter*);
-- static void (*boot_DynaLoader)_((pTHX_ CV*));
- static perl_key* (*Perl_Gthr_key_ptr)_((pTHX));
-
- /*
- * Table of name to function pointer of perl.
---- 329,347 ----
- static I32** (*Perl_Imarkstack_max_ptr)(register PerlInterpreter*);
- static SV*** (*Perl_Istack_sp_ptr)(register PerlInterpreter*);
- static OP** (*Perl_Iop_ptr)(register PerlInterpreter*);
- static I32* (*Perl_Iscopestack_ix_ptr)(register PerlInterpreter*);
- static AV** (*Perl_Iunitcheckav_ptr)(register PerlInterpreter*);
-+ # endif
- #endif
-
-+ #if (PERL_REVISION == 5) && (PERL_VERSION >= 14)
-+ #else
- static GV** (*Perl_Idefgv_ptr)(register PerlInterpreter*);
- static GV** (*Perl_Ierrgv_ptr)(register PerlInterpreter*);
- static SV* (*Perl_Isv_yes_ptr)(register PerlInterpreter*);
- static perl_key* (*Perl_Gthr_key_ptr)_((pTHX));
-+ #endif
-+ static void (*boot_DynaLoader)_((pTHX_ CV*));
-
- /*
- * Table of name to function pointer of perl.
-*** ../vim-7.3.666/src/version.c 2012-09-18 22:00:02.000000000 +0200
---- src/version.c 2012-09-21 12:40:57.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 667,
- /**/
-
---
-Two cows are standing together in a field. One asks the other:
-"So what do you think about this Mad Cow Disease?"
-The other replies: "That doesn't concern me. I'm a helicopter."
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.668
-Fcc: 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.668
-Problem: Building with Perl loaded dynamically still uses static library.
-Solution: Adjust use of PL_thr_key. (Ken Takata)
-Files: src/if_perl.xs
-
-
-*** ../vim-7.3.667/src/if_perl.xs 2012-09-21 12:42:38.000000000 +0200
---- src/if_perl.xs 2012-09-21 12:47:55.000000000 +0200
-***************
-*** 155,161 ****
- # define Perl_set_context dll_Perl_set_context
- # if (PERL_REVISION == 5) && (PERL_VERSION >= 14)
- # define Perl_sv_2bool_flags dll_Perl_sv_2bool_flags
-! # define Perl_xs_apiversion_bootcheck dll_Perl_xs_apiversion_bootcheck
- # else
- # define Perl_sv_2bool dll_Perl_sv_2bool
- # endif
---- 155,161 ----
- # define Perl_set_context dll_Perl_set_context
- # if (PERL_REVISION == 5) && (PERL_VERSION >= 14)
- # define Perl_sv_2bool_flags dll_Perl_sv_2bool_flags
-! # define Perl_xs_apiversion_bootcheck dll_Perl_xs_apiversion_bootcheck
- # else
- # define Perl_sv_2bool dll_Perl_sv_2bool
- # endif
-***************
-*** 225,230 ****
---- 225,233 ----
- # define Perl_call_list dll_Perl_call_list
- # define Perl_Iscopestack_ix_ptr dll_Perl_Iscopestack_ix_ptr
- # define Perl_Iunitcheckav_ptr dll_Perl_Iunitcheckav_ptr
-+ # if (PERL_REVISION == 5) && (PERL_VERSION >= 14)
-+ # define PL_thr_key *dll_PL_thr_key
-+ # endif
-
- /*
- * Declare HANDLE for perl.dll and function pointers.
-***************
-*** 335,340 ****
---- 338,344 ----
- #endif
-
- #if (PERL_REVISION == 5) && (PERL_VERSION >= 14)
-+ static perl_key* dll_PL_thr_key;
- #else
- static GV** (*Perl_Idefgv_ptr)(register PerlInterpreter*);
- static GV** (*Perl_Ierrgv_ptr)(register PerlInterpreter*);
-***************
-*** 453,458 ****
---- 457,463 ----
- # endif
- #endif
- #if (PERL_REVISION == 5) && (PERL_VERSION >= 14)
-+ {"PL_thr_key", (PERL_PROC*)&dll_PL_thr_key},
- #else
- {"Perl_Idefgv_ptr", (PERL_PROC*)&Perl_Idefgv_ptr},
- {"Perl_Ierrgv_ptr", (PERL_PROC*)&Perl_Ierrgv_ptr},
-*** ../vim-7.3.667/src/version.c 2012-09-21 12:42:38.000000000 +0200
---- src/version.c 2012-09-21 12:49:06.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 668,
- /**/
-
---
-Michael: There is no such thing as a dump question.
-Bernard: Sure there is. For example "what is a core dump?"
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.669
-Fcc: 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.669
-Problem: When building with Cygwin loading Python dynamically fails.
-Solution: Use DLLLIBRARY instead of INSTSONAME. (Ken Takata)
-Files: src/configure.in, src/auto/configure
-
-
-*** ../vim-7.3.668/src/configure.in 2012-08-15 14:04:50.000000000 +0200
---- src/configure.in 2012-09-21 12:52:32.000000000 +0200
-***************
-*** 889,894 ****
---- 889,895 ----
- @echo "python_LIBS='$(LIBS)'"
- @echo "python_SYSLIBS='$(SYSLIBS)'"
- @echo "python_LINKFORSHARED='$(LINKFORSHARED)'"
-+ @echo "python_DLLLIBRARY='$(DLLLIBRARY)'"
- @echo "python_INSTSONAME='$(INSTSONAME)'"
- eof
- dnl -- delete the lines from make about Entering/Leaving directory
-***************
-*** 909,914 ****
---- 910,918 ----
- fi
- ])
-
-+ if test "X$python_DLLLIBRARY" != "X"; then
-+ python_INSTSONAME="$python_DLLLIBRARY"
-+ fi
- 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}\\\""
-***************
-*** 1082,1087 ****
---- 1086,1092 ----
- @echo "python3_BASEMODLIBS='$(BASEMODLIBS)'"
- @echo "python3_LIBS='$(LIBS)'"
- @echo "python3_SYSLIBS='$(SYSLIBS)'"
-+ @echo "python3_DLLLIBRARY='$(DLLLIBRARY)'"
- @echo "python3_INSTSONAME='$(INSTSONAME)'"
- eof
- dnl -- delete the lines from make about Entering/Leaving directory
-***************
-*** 1094,1099 ****
---- 1099,1107 ----
- vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-lffi//`
- ])
-
-+ if test "X$python3_DLLLIBRARY" != "X"; then
-+ python3_INSTSONAME="$python3_DLLLIBRARY"
-+ fi
- 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}${vi_cv_var_python3_abiflags} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
-*** ../vim-7.3.668/src/auto/configure 2012-08-15 14:04:50.000000000 +0200
---- src/auto/configure 2012-09-21 13:06:09.000000000 +0200
-***************
-*** 5330,5335 ****
---- 5330,5336 ----
- @echo "python_LIBS='$(LIBS)'"
- @echo "python_SYSLIBS='$(SYSLIBS)'"
- @echo "python_LINKFORSHARED='$(LINKFORSHARED)'"
-+ @echo "python_DLLLIBRARY='$(DLLLIBRARY)'"
- @echo "python_INSTSONAME='$(INSTSONAME)'"
- eof
- eval "`cd ${PYTHON_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
-***************
-*** 5350,5355 ****
---- 5351,5359 ----
- fi
-
-
-+ if test "X$python_DLLLIBRARY" != "X"; then
-+ python_INSTSONAME="$python_DLLLIBRARY"
-+ fi
- 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}\\\""
-***************
-*** 5633,5638 ****
---- 5637,5643 ----
- @echo "python3_BASEMODLIBS='$(BASEMODLIBS)'"
- @echo "python3_LIBS='$(LIBS)'"
- @echo "python3_SYSLIBS='$(SYSLIBS)'"
-+ @echo "python3_DLLLIBRARY='$(DLLLIBRARY)'"
- @echo "python3_INSTSONAME='$(INSTSONAME)'"
- eof
- eval "`cd ${PYTHON3_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
-***************
-*** 5645,5650 ****
---- 5650,5658 ----
- fi
-
-
-+ if test "X$python3_DLLLIBRARY" != "X"; then
-+ python3_INSTSONAME="$python3_DLLLIBRARY"
-+ fi
- 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}${vi_cv_var_python3_abiflags} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
-*** ../vim-7.3.668/src/version.c 2012-09-21 12:50:44.000000000 +0200
---- src/version.c 2012-09-21 12:54:42.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 669,
- /**/
-
---
-TALL KNIGHT: We are now no longer the Knights Who Say Ni!
-ONE KNIGHT: Ni!
-OTHERS: Sh!
-ONE KNIGHT: (whispers) Sorry.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.670
-Fcc: 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.670
-Problem: Python: memory leaks when there are exceptions.
-Solution: Add DICTKEY_UNREF in the right places. (ZyX)
-Files: src/if_py_both.h
-
-
-*** ../vim-7.3.669/src/if_py_both.h 2012-09-12 20:21:38.000000000 +0200
---- src/if_py_both.h 2012-09-21 13:32:13.000000000 +0200
-***************
-*** 799,812 ****
-
- di = dict_find(((DictionaryObject *) (self))->dict, key, -1);
-
- if (di == NULL)
- {
- PyErr_SetString(PyExc_IndexError, _("no such key in dictionary"));
- return NULL;
- }
-
-- DICTKEY_UNREF
--
- return ConvertToPyObject(&di->di_tv);
- }
-
---- 799,812 ----
-
- di = dict_find(((DictionaryObject *) (self))->dict, key, -1);
-
-+ DICTKEY_UNREF
-+
- if (di == NULL)
- {
- PyErr_SetString(PyExc_IndexError, _("no such key in dictionary"));
- return NULL;
- }
-
- return ConvertToPyObject(&di->di_tv);
- }
-
-***************
-*** 835,840 ****
---- 835,841 ----
-
- if (di == NULL)
- {
-+ DICTKEY_UNREF
- PyErr_SetString(PyExc_IndexError, _("no such key in dictionary"));
- return -1;
- }
-***************
-*** 859,864 ****
---- 860,866 ----
-
- if (dict_add(d, di) == FAIL)
- {
-+ DICTKEY_UNREF
- vim_free(di);
- PyErr_SetVim(_("failed to add key to dictionary"));
- return -1;
-*** ../vim-7.3.669/src/version.c 2012-09-21 13:26:44.000000000 +0200
---- src/version.c 2012-09-21 13:42:43.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 670,
- /**/
-
---
-TALL KNIGHT: Firstly. You must get us another shrubbery!
-OTHER KNIGHTS: More shrubberies! More shrubberies for the ex-Knights of Ni!
-ARTHUR: Not another shrubbery -
- "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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.671
-Fcc: 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.671
-Problem: More Python code can be shared between Python 2 and 3.
-Solution: Move code to if_py_both.h. (ZyX)
-Files: src/if_py_both.h, src/if_python.c, src/if_python3.c
-
-
-*** ../vim-7.3.670/src/if_py_both.h 2012-09-21 13:43:09.000000000 +0200
---- src/if_py_both.h 2012-09-21 13:45:02.000000000 +0200
-***************
-*** 71,76 ****
---- 71,101 ----
- /* Output buffer management
- */
-
-+ static int
-+ OutputSetattr(PyObject *self, char *name, PyObject *val)
-+ {
-+ if (val == NULL)
-+ {
-+ PyErr_SetString(PyExc_AttributeError, _("can't delete OutputObject attributes"));
-+ return -1;
-+ }
-+
-+ if (strcmp(name, "softspace") == 0)
-+ {
-+ if (!PyInt_Check(val))
-+ {
-+ PyErr_SetString(PyExc_TypeError, _("softspace must be an integer"));
-+ return -1;
-+ }
-+
-+ ((OutputObject *)(self))->softspace = PyInt_AsLong(val);
-+ return 0;
-+ }
-+
-+ PyErr_SetString(PyExc_AttributeError, _("invalid attribute"));
-+ return -1;
-+ }
-+
- static PyObject *
- OutputWrite(PyObject *self, PyObject *args)
- {
-*** ../vim-7.3.670/src/if_python.c 2012-09-12 20:21:38.000000000 +0200
---- src/if_python.c 2012-09-21 13:45:02.000000000 +0200
-***************
-*** 951,981 ****
- return Py_FindMethod(OutputMethods, self, name);
- }
-
-- static int
-- OutputSetattr(PyObject *self, char *name, PyObject *val)
-- {
-- if (val == NULL)
-- {
-- PyErr_SetString(PyExc_AttributeError, _("can't delete OutputObject attributes"));
-- return -1;
-- }
--
-- if (strcmp(name, "softspace") == 0)
-- {
-- if (!PyInt_Check(val))
-- {
-- PyErr_SetString(PyExc_TypeError, _("softspace must be an integer"));
-- return -1;
-- }
--
-- ((OutputObject *)(self))->softspace = PyInt_AsLong(val);
-- return 0;
-- }
--
-- PyErr_SetString(PyExc_AttributeError, _("invalid attribute"));
-- return -1;
-- }
--
- /***************/
-
- static int
---- 951,956 ----
-*** ../vim-7.3.670/src/if_python3.c 2012-09-12 20:21:38.000000000 +0200
---- src/if_python3.c 2012-09-21 13:45:02.000000000 +0200
-***************
-*** 88,93 ****
---- 88,96 ----
- #define PyString_Size(obj) PyBytes_GET_SIZE(bytes)
- #define PyString_FromString(repr) PyUnicode_FromString(repr)
- #define PyString_AsStringAndSize(obj, buffer, len) PyBytes_AsStringAndSize(obj, buffer, len)
-+ #define PyInt_Check(obj) PyLong_Check(obj)
-+ #define PyInt_FromLong(i) PyLong_FromLong(i)
-+ #define PyInt_AsLong(obj) PyLong_AsLong(obj)
-
- #if defined(DYNAMIC_PYTHON3) || defined(PROTO)
-
-***************
-*** 586,591 ****
---- 589,599 ----
- */
- #include "if_py_both.h"
-
-+ #define GET_ATTR_STRING(name, nameobj) \
-+ char *name = ""; \
-+ if(PyUnicode_Check(nameobj)) \
-+ name = _PyUnicode_AsString(nameobj)
-+
- #define PY3OBJ_DELETED(obj) (obj->ob_base.ob_refcnt<=0)
-
- static void
-***************
-*** 923,931 ****
- static PyObject *
- OutputGetattro(PyObject *self, PyObject *nameobj)
- {
-! char *name = "";
-! if (PyUnicode_Check(nameobj))
-! name = _PyUnicode_AsString(nameobj);
-
- if (strcmp(name, "softspace") == 0)
- return PyLong_FromLong(((OutputObject *)(self))->softspace);
---- 931,937 ----
- static PyObject *
- OutputGetattro(PyObject *self, PyObject *nameobj)
- {
-! GET_ATTR_STRING(name, nameobj);
-
- if (strcmp(name, "softspace") == 0)
- return PyLong_FromLong(((OutputObject *)(self))->softspace);
-***************
-*** 936,965 ****
- static int
- OutputSetattro(PyObject *self, PyObject *nameobj, PyObject *val)
- {
-! char *name = "";
-! if (PyUnicode_Check(nameobj))
-! name = _PyUnicode_AsString(nameobj);
-!
-! if (val == NULL)
-! {
-! PyErr_SetString(PyExc_AttributeError, _("can't delete OutputObject attributes"));
-! return -1;
-! }
-
-! if (strcmp(name, "softspace") == 0)
-! {
-! if (!PyLong_Check(val))
-! {
-! PyErr_SetString(PyExc_TypeError, _("softspace must be an integer"));
-! return -1;
-! }
-!
-! ((OutputObject *)(self))->softspace = PyLong_AsLong(val);
-! return 0;
-! }
-!
-! PyErr_SetString(PyExc_AttributeError, _("invalid attribute"));
-! return -1;
- }
-
- /***************/
---- 942,950 ----
- static int
- OutputSetattro(PyObject *self, PyObject *nameobj, PyObject *val)
- {
-! GET_ATTR_STRING(name, nameobj);
-
-! return OutputSetattr(self, name, val);
- }
-
- /***************/
-***************
-*** 1091,1099 ****
- {
- BufferObject *this = (BufferObject *)(self);
-
-! char *name = "";
-! if (PyUnicode_Check(nameobj))
-! name = _PyUnicode_AsString(nameobj);
-
- if (CheckBuffer(this))
- return NULL;
---- 1076,1082 ----
- {
- BufferObject *this = (BufferObject *)(self);
-
-! GET_ATTR_STRING(name, nameobj);
-
- if (CheckBuffer(this))
- return NULL;
-***************
-*** 1257,1265 ****
- static PyObject *
- RangeGetattro(PyObject *self, PyObject *nameobj)
- {
-! char *name = "";
-! if (PyUnicode_Check(nameobj))
-! name = _PyUnicode_AsString(nameobj);
-
- if (strcmp(name, "start") == 0)
- return Py_BuildValue("n", ((RangeObject *)(self))->start - 1);
---- 1240,1246 ----
- static PyObject *
- RangeGetattro(PyObject *self, PyObject *nameobj)
- {
-! GET_ATTR_STRING(name, nameobj);
-
- if (strcmp(name, "start") == 0)
- return Py_BuildValue("n", ((RangeObject *)(self))->start - 1);
-***************
-*** 1430,1439 ****
- {
- WindowObject *this = (WindowObject *)(self);
-
-! char *name = "";
-! if (PyUnicode_Check(nameobj))
-! name = _PyUnicode_AsString(nameobj);
-!
-
- if (CheckWindow(this))
- return NULL;
---- 1411,1417 ----
- {
- WindowObject *this = (WindowObject *)(self);
-
-! GET_ATTR_STRING(name, nameobj);
-
- if (CheckWindow(this))
- return NULL;
-***************
-*** 1461,1470 ****
- static int
- WindowSetattro(PyObject *self, PyObject *nameobj, PyObject *val)
- {
-! char *name = "";
-!
-! if (PyUnicode_Check(nameobj))
-! name = _PyUnicode_AsString(nameobj);
-
- return WindowSetattr(self, name, val);
- }
---- 1439,1445 ----
- static int
- WindowSetattro(PyObject *self, PyObject *nameobj, PyObject *val)
- {
-! GET_ATTR_STRING(name, nameobj);
-
- return WindowSetattr(self, name, val);
- }
-***************
-*** 1508,1516 ****
- static PyObject *
- CurrentGetattro(PyObject *self UNUSED, PyObject *nameobj)
- {
-! char *name = "";
-! if (PyUnicode_Check(nameobj))
-! name = _PyUnicode_AsString(nameobj);
-
- if (strcmp(name, "buffer") == 0)
- return (PyObject *)BufferNew(curbuf);
---- 1483,1489 ----
- static PyObject *
- CurrentGetattro(PyObject *self UNUSED, PyObject *nameobj)
- {
-! GET_ATTR_STRING(name, nameobj);
-
- if (strcmp(name, "buffer") == 0)
- return (PyObject *)BufferNew(curbuf);
-***************
-*** 1681,1689 ****
- FunctionGetattro(PyObject *self, PyObject *nameobj)
- {
- FunctionObject *this = (FunctionObject *)(self);
-! char *name = "";
-! if (PyUnicode_Check(nameobj))
-! name = _PyUnicode_AsString(nameobj);
-
- if (strcmp(name, "name") == 0)
- return PyUnicode_FromString((char *)(this->name));
---- 1654,1661 ----
- FunctionGetattro(PyObject *self, PyObject *nameobj)
- {
- FunctionObject *this = (FunctionObject *)(self);
-!
-! GET_ATTR_STRING(name, nameobj);
-
- if (strcmp(name, "name") == 0)
- return PyUnicode_FromString((char *)(this->name));
-*** ../vim-7.3.670/src/version.c 2012-09-21 13:43:09.000000000 +0200
---- src/version.c 2012-09-21 13:45:28.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 671,
- /**/
-
---
-The war between Emacs and Vi is over. Vi has won with 3 to 1.
- http://www.ssc.com/lg/issue30/raymond.html
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.672
-Fcc: 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.672
-Problem: Not possible to lock/unlock lists in Python interface.
-Solution: Add .locked and .scope attributes. (ZyX)
-Files: runtime/doc/if_pyth.txt, src/if_py_both.h, src/if_python.c,
- src/if_python3.c, src/testdir/test86.in, src/testdir/test86.ok,
- src/testdir/test87.in, src/testdir/test87.ok
-
-
-*** ../vim-7.3.671/runtime/doc/if_pyth.txt 2012-06-29 12:54:32.000000000 +0200
---- runtime/doc/if_pyth.txt 2012-09-21 13:49:14.000000000 +0200
-***************
-*** 27,33 ****
-
- *:python* *:py* *E205* *E263* *E264*
- :[range]py[thon] {stmt}
-! Execute Python statement {stmt}.
-
- :[range]py[thon] << {endmarker}
- {script}
---- 27,35 ----
-
- *:python* *:py* *E205* *E263* *E264*
- :[range]py[thon] {stmt}
-! Execute Python statement {stmt}. A simple check if
-! the `:python` command is working: >
-! :python print "Hello"
-
- :[range]py[thon] << {endmarker}
- {script}
-***************
-*** 157,162 ****
---- 159,184 ----
- vimlist or vimdictionary python type that are connected to original
- list or dictionary. Thus modifications to these objects imply
- modifications of the original.
-+
-+ Additionally, vimlist and vimdictionary type have read-write
-+ `.locked` attribute that returns
-+ Value Meaning ~
-+ zero Variable is not locked
-+ vim.VAR_LOCKED Variable is locked, but can be unlocked
-+ vim.VAR_FIXED Variable is locked and can’t be unlocked
-+ integer constants. If variable is not fixed, you can do
-+ `var.locked=True` to lock it and `var.locked=False` to unlock.
-+ There is no recursive locking like |:lockvar|! does. There is also
-+ no way to lock a specific key or check whether it is locked (in any
-+ case these locks are ignored by anything except |:let|: |extend()|
-+ does not care, neither does python interface).
-+
-+ Vimdictionary type also supports `.scope` attribute which is one of
-+ Value Meaning ~
-+ zero Dictionary is not a scope one
-+ vim.VAR_DEF_SCOPE Function-local or global scope dictionary
-+ vim.VAR_SCOPE Other scope dictionary
-+
- 2. if expression evaluates to a function reference, then it returns
- callable vimfunction object. Use self keyword argument to assign
- |self| object for dictionary functions.
-***************
-*** 362,369 ****
- 8. Python 3 *python3*
-
- *:py3* *:python3*
-! The |:py3| and |:python3| commands work similar to |:python|.
-! *:py3file*
- The |:py3file| command works similar to |:pyfile|.
-
-
---- 384,393 ----
- 8. Python 3 *python3*
-
- *:py3* *:python3*
-! The |:py3| and |:python3| commands work similar to |:python|. A simple check
-! if the `:py3` command is wrong: >
-! :py3 print("Hello")
-! < *:py3file*
- The |:py3file| command works similar to |:pyfile|.
-
-
-*** ../vim-7.3.671/src/if_py_both.h 2012-09-21 13:45:57.000000000 +0200
---- src/if_py_both.h 2012-09-21 13:49:14.000000000 +0200
-***************
-*** 808,813 ****
---- 808,851 ----
- }
-
- static PyInt
-+ DictionarySetattr(DictionaryObject *self, char *name, PyObject *val)
-+ {
-+ if (val == NULL)
-+ {
-+ PyErr_SetString(PyExc_AttributeError, _("Cannot delete DictionaryObject attributes"));
-+ return -1;
-+ }
-+
-+ if (strcmp(name, "locked") == 0)
-+ {
-+ if (self->dict->dv_lock == VAR_FIXED)
-+ {
-+ PyErr_SetString(PyExc_TypeError, _("Cannot modify fixed dictionary"));
-+ return -1;
-+ }
-+ else
-+ {
-+ if (!PyBool_Check(val))
-+ {
-+ PyErr_SetString(PyExc_TypeError, _("Only boolean objects are allowed"));
-+ return -1;
-+ }
-+
-+ if (val == Py_True)
-+ self->dict->dv_lock = VAR_LOCKED;
-+ else
-+ self->dict->dv_lock = 0;
-+ }
-+ return 0;
-+ }
-+ else
-+ {
-+ PyErr_SetString(PyExc_AttributeError, _("Cannot set this attribute"));
-+ return -1;
-+ }
-+ }
-+
-+ static PyInt
- DictionaryLength(PyObject *self)
- {
- return ((PyInt) ((((DictionaryObject *)(self))->dict->dv_hashtab.ht_used)));
-***************
-*** 1271,1276 ****
---- 1309,1352 ----
- return self;
- }
-
-+ static int
-+ ListSetattr(ListObject *self, char *name, PyObject *val)
-+ {
-+ if (val == NULL)
-+ {
-+ PyErr_SetString(PyExc_AttributeError, _("Cannot delete DictionaryObject attributes"));
-+ return -1;
-+ }
-+
-+ if (strcmp(name, "locked") == 0)
-+ {
-+ if (self->list->lv_lock == VAR_FIXED)
-+ {
-+ PyErr_SetString(PyExc_TypeError, _("Cannot modify fixed list"));
-+ return -1;
-+ }
-+ else
-+ {
-+ if (!PyBool_Check(val))
-+ {
-+ PyErr_SetString(PyExc_TypeError, _("Only boolean objects are allowed"));
-+ return -1;
-+ }
-+
-+ if (val == Py_True)
-+ self->list->lv_lock = VAR_LOCKED;
-+ else
-+ self->list->lv_lock = 0;
-+ }
-+ return 0;
-+ }
-+ else
-+ {
-+ PyErr_SetString(PyExc_AttributeError, _("Cannot set this attribute"));
-+ return -1;
-+ }
-+ }
-+
- static struct PyMethodDef ListMethods[] = {
- {"extend", (PyCFunction)ListConcatInPlace, METH_O, ""},
- { NULL, NULL, 0, NULL }
-*** ../vim-7.3.671/src/if_python.c 2012-09-21 13:45:57.000000000 +0200
---- src/if_python.c 2012-09-21 13:49:14.000000000 +0200
-***************
-*** 163,168 ****
---- 163,169 ----
- # define PyInt_FromLong dll_PyInt_FromLong
- # define PyLong_AsLong dll_PyLong_AsLong
- # define PyLong_FromLong dll_PyLong_FromLong
-+ # define PyBool_Type (*dll_PyBool_Type)
- # define PyInt_Type (*dll_PyInt_Type)
- # define PyLong_Type (*dll_PyLong_Type)
- # define PyList_GetItem dll_PyList_GetItem
-***************
-*** 221,226 ****
---- 222,229 ----
- # define _PyObject_NextNotImplemented (*dll__PyObject_NextNotImplemented)
- # endif
- # define _Py_NoneStruct (*dll__Py_NoneStruct)
-+ # define _Py_ZeroStruct (*dll__Py_ZeroStruct)
-+ # define _Py_TrueStruct (*dll__Py_TrueStruct)
- # define PyObject_Init dll__PyObject_Init
- # define PyObject_GetIter dll_PyObject_GetIter
- # if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02020000
-***************
-*** 263,268 ****
---- 266,272 ----
- static PyObject*(*dll_PyInt_FromLong)(long);
- static long(*dll_PyLong_AsLong)(PyObject *);
- static PyObject*(*dll_PyLong_FromLong)(long);
-+ static PyTypeObject* dll_PyBool_Type;
- static PyTypeObject* dll_PyInt_Type;
- static PyTypeObject* dll_PyLong_Type;
- static PyObject*(*dll_PyList_GetItem)(PyObject *, PyInt);
-***************
-*** 320,325 ****
---- 324,331 ----
- static iternextfunc dll__PyObject_NextNotImplemented;
- # endif
- static PyObject* dll__Py_NoneStruct;
-+ static PyObject* _Py_ZeroStruct;
-+ static PyObject* dll__Py_TrueStruct;
- # if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02020000
- static int (*dll_PyType_IsSubtype)(PyTypeObject *, PyTypeObject *);
- # endif
-***************
-*** 389,394 ****
---- 395,401 ----
- {"PyInt_FromLong", (PYTHON_PROC*)&dll_PyInt_FromLong},
- {"PyLong_AsLong", (PYTHON_PROC*)&dll_PyLong_AsLong},
- {"PyLong_FromLong", (PYTHON_PROC*)&dll_PyLong_FromLong},
-+ {"PyBool_Type", (PYTHON_PROC*)&dll_PyBool_Type},
- {"PyInt_Type", (PYTHON_PROC*)&dll_PyInt_Type},
- {"PyLong_Type", (PYTHON_PROC*)&dll_PyLong_Type},
- {"PyList_GetItem", (PYTHON_PROC*)&dll_PyList_GetItem},
-***************
-*** 449,454 ****
---- 456,463 ----
- {"_PyObject_NextNotImplemented", (PYTHON_PROC*)&dll__PyObject_NextNotImplemented},
- # endif
- {"_Py_NoneStruct", (PYTHON_PROC*)&dll__Py_NoneStruct},
-+ {"_Py_ZeroStruct", (PYTHON_PROC*)&dll__Py_ZeroStruct},
-+ {"_Py_TrueStruct", (PYTHON_PROC*)&dll__Py_TrueStruct},
- # if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02020000
- {"PyType_IsSubtype", (PYTHON_PROC*)&dll_PyType_IsSubtype},
- # endif
-***************
-*** 1563,1568 ****
---- 1572,1581 ----
- PyDict_SetItemString(dict, "buffers", (PyObject *)(void *)&TheBufferList);
- PyDict_SetItemString(dict, "current", (PyObject *)(void *)&TheCurrent);
- PyDict_SetItemString(dict, "windows", (PyObject *)(void *)&TheWindowList);
-+ PyDict_SetItemString(dict, "VAR_LOCKED", PyInt_FromLong(VAR_LOCKED));
-+ PyDict_SetItemString(dict, "VAR_FIXED", PyInt_FromLong(VAR_FIXED));
-+ PyDict_SetItemString(dict, "VAR_SCOPE", PyInt_FromLong(VAR_SCOPE));
-+ PyDict_SetItemString(dict, "VAR_DEF_SCOPE", PyInt_FromLong(VAR_DEF_SCOPE));
-
- if (PyErr_Occurred())
- return -1;
-***************
-*** 1629,1635 ****
- (destructor) DictionaryDestructor,
- (printfunc) 0,
- (getattrfunc) DictionaryGetattr,
-! (setattrfunc) 0,
- (cmpfunc) 0,
- (reprfunc) 0,
-
---- 1642,1648 ----
- (destructor) DictionaryDestructor,
- (printfunc) 0,
- (getattrfunc) DictionaryGetattr,
-! (setattrfunc) DictionarySetattr,
- (cmpfunc) 0,
- (reprfunc) 0,
-
-***************
-*** 1656,1661 ****
---- 1669,1681 ----
- static PyObject *
- DictionaryGetattr(PyObject *self, char *name)
- {
-+ DictionaryObject *this = ((DictionaryObject *) (self));
-+
-+ if (strcmp(name, "locked") == 0)
-+ return PyInt_FromLong(this->dict->dv_lock);
-+ else if (strcmp(name, "scope") == 0)
-+ return PyInt_FromLong(this->dict->dv_scope);
-+
- return Py_FindMethod(DictionaryMethods, self, name);
- }
-
-***************
-*** 1687,1693 ****
- (destructor) ListDestructor,
- (printfunc) 0,
- (getattrfunc) ListGetattr,
-! (setattrfunc) 0,
- (cmpfunc) 0,
- (reprfunc) 0,
-
---- 1707,1713 ----
- (destructor) ListDestructor,
- (printfunc) 0,
- (getattrfunc) ListGetattr,
-! (setattrfunc) ListSetattr,
- (cmpfunc) 0,
- (reprfunc) 0,
-
-***************
-*** 1714,1719 ****
---- 1734,1742 ----
- static PyObject *
- ListGetattr(PyObject *self, char *name)
- {
-+ if (strcmp(name, "locked") == 0)
-+ return PyInt_FromLong(((ListObject *)(self))->list->lv_lock);
-+
- return Py_FindMethod(ListMethods, self, name);
- }
-
-*** ../vim-7.3.671/src/if_python3.c 2012-09-21 13:45:57.000000000 +0200
---- src/if_python3.c 2012-09-21 13:49:14.000000000 +0200
-***************
-*** 161,167 ****
- # define PyRun_String py3_PyRun_String
- # define PySys_SetObject py3_PySys_SetObject
- # define PySys_SetArgv py3_PySys_SetArgv
-- # define PyType_Type (*py3_PyType_Type)
- # define PyType_Ready py3_PyType_Ready
- #undef Py_BuildValue
- # define Py_BuildValue py3_Py_BuildValue
---- 161,166 ----
-***************
-*** 170,175 ****
---- 169,176 ----
- # define Py_Finalize py3_Py_Finalize
- # define Py_IsInitialized py3_Py_IsInitialized
- # define _Py_NoneStruct (*py3__Py_NoneStruct)
-+ # define _Py_FalseStruct (*py3__Py_FalseStruct)
-+ # define _Py_TrueStruct (*py3__Py_TrueStruct)
- # define _PyObject_NextNotImplemented (*py3__PyObject_NextNotImplemented)
- # define PyModule_AddObject py3_PyModule_AddObject
- # define PyImport_AppendInittab py3_PyImport_AppendInittab
-***************
-*** 184,191 ****
---- 185,194 ----
- # define PyFloat_FromDouble py3_PyFloat_FromDouble
- # define PyFloat_AsDouble py3_PyFloat_AsDouble
- # define PyObject_GenericGetAttr py3_PyObject_GenericGetAttr
-+ # define PyType_Type (*py3_PyType_Type)
- # define PySlice_Type (*py3_PySlice_Type)
- # define PyFloat_Type (*py3_PyFloat_Type)
-+ # define PyBool_Type (*py3_PyBool_Type)
- # define PyErr_NewException py3_PyErr_NewException
- # ifdef Py_DEBUG
- # define _Py_NegativeRefcount py3__Py_NegativeRefcount
-***************
-*** 245,251 ****
- static PyObject* (*py3_PyImport_ImportModule)(const char *);
- static PyObject* (*py3_PyImport_AddModule)(const char *);
- static int (*py3_PyErr_BadArgument)(void);
-- static PyTypeObject* py3_PyType_Type;
- static PyObject* (*py3_PyErr_Occurred)(void);
- static PyObject* (*py3_PyModule_GetDict)(PyObject *);
- static int (*py3_PyList_SetItem)(PyObject *, Py_ssize_t, PyObject *);
---- 248,253 ----
-***************
-*** 275,280 ****
---- 277,284 ----
- static PyObject*(*py3__PyObject_Init)(PyObject *, PyTypeObject *);
- static iternextfunc py3__PyObject_NextNotImplemented;
- static PyObject* py3__Py_NoneStruct;
-+ static PyObject* py3__Py_FalseStruct;
-+ static PyObject* py3__Py_TrueStruct;
- static int (*py3_PyModule_AddObject)(PyObject *m, const char *name, PyObject *o);
- static int (*py3_PyImport_AppendInittab)(const char *name, PyObject* (*initfunc)(void));
- static char* (*py3__PyUnicode_AsString)(PyObject *unicode);
-***************
-*** 288,295 ****
---- 292,301 ----
- static PyObject* (*py3_PyModule_Create2)(struct PyModuleDef* module, int module_api_version);
- static PyObject* (*py3_PyType_GenericAlloc)(PyTypeObject *type, Py_ssize_t nitems);
- static PyObject* (*py3_PyType_GenericNew)(PyTypeObject *type, PyObject *args, PyObject *kwds);
-+ static PyTypeObject* py3_PyType_Type;
- static PyTypeObject* py3_PySlice_Type;
- static PyTypeObject* py3_PyFloat_Type;
-+ static PyTypeObject* py3_PyBool_Type;
- static PyObject* (*py3_PyErr_NewException)(char *name, PyObject *base, PyObject *dict);
- static PyObject* (*py3_PyCapsule_New)(void *, char *, PyCapsule_Destructor);
- static void* (*py3_PyCapsule_GetPointer)(PyObject *, char *);
-***************
-*** 363,369 ****
- {"PyImport_ImportModule", (PYTHON_PROC*)&py3_PyImport_ImportModule},
- {"PyImport_AddModule", (PYTHON_PROC*)&py3_PyImport_AddModule},
- {"PyErr_BadArgument", (PYTHON_PROC*)&py3_PyErr_BadArgument},
-- {"PyType_Type", (PYTHON_PROC*)&py3_PyType_Type},
- {"PyErr_Occurred", (PYTHON_PROC*)&py3_PyErr_Occurred},
- {"PyModule_GetDict", (PYTHON_PROC*)&py3_PyModule_GetDict},
- {"PyList_SetItem", (PYTHON_PROC*)&py3_PyList_SetItem},
---- 369,374 ----
-***************
-*** 386,391 ****
---- 391,398 ----
- {"Py_IsInitialized", (PYTHON_PROC*)&py3_Py_IsInitialized},
- {"_PyObject_NextNotImplemented", (PYTHON_PROC*)&py3__PyObject_NextNotImplemented},
- {"_Py_NoneStruct", (PYTHON_PROC*)&py3__Py_NoneStruct},
-+ {"_Py_FalseStruct", (PYTHON_PROC*)&py3__Py_FalseStruct},
-+ {"_Py_TrueStruct", (PYTHON_PROC*)&py3__Py_TrueStruct},
- {"PyErr_Clear", (PYTHON_PROC*)&py3_PyErr_Clear},
- {"PyObject_Init", (PYTHON_PROC*)&py3__PyObject_Init},
- {"PyModule_AddObject", (PYTHON_PROC*)&py3_PyModule_AddObject},
-***************
-*** 400,407 ****
---- 407,416 ----
- {"PyModule_Create2", (PYTHON_PROC*)&py3_PyModule_Create2},
- {"PyType_GenericAlloc", (PYTHON_PROC*)&py3_PyType_GenericAlloc},
- {"PyType_GenericNew", (PYTHON_PROC*)&py3_PyType_GenericNew},
-+ {"PyType_Type", (PYTHON_PROC*)&py3_PyType_Type},
- {"PySlice_Type", (PYTHON_PROC*)&py3_PySlice_Type},
- {"PyFloat_Type", (PYTHON_PROC*)&py3_PyFloat_Type},
-+ {"PyBool_Type", (PYTHON_PROC*)&py3_PyBool_Type},
- {"PyErr_NewException", (PYTHON_PROC*)&py3_PyErr_NewException},
- # ifdef Py_DEBUG
- {"_Py_NegativeRefcount", (PYTHON_PROC*)&py3__Py_NegativeRefcount},
-***************
-*** 1534,1539 ****
---- 1543,1570 ----
- /* mp_ass_subscript */ (objobjargproc) DictionaryAssItem,
- };
-
-+ static PyObject *
-+ DictionaryGetattro(PyObject *self, PyObject *nameobj)
-+ {
-+ DictionaryObject *this = ((DictionaryObject *) (self));
-+
-+ GET_ATTR_STRING(name, nameobj);
-+
-+ if (strcmp(name, "locked") == 0)
-+ return PyLong_FromLong(this->dict->dv_lock);
-+ else if (strcmp(name, "scope") == 0)
-+ return PyLong_FromLong(this->dict->dv_scope);
-+
-+ return PyObject_GenericGetAttr(self, nameobj);
-+ }
-+
-+ static int
-+ DictionarySetattro(PyObject *self, PyObject *nameobj, PyObject *val)
-+ {
-+ GET_ATTR_STRING(name, nameobj);
-+ return DictionarySetattr((DictionaryObject *) self, name, val);
-+ }
-+
- static PyTypeObject DictionaryType;
-
- static void
-***************
-*** 1625,1630 ****
---- 1656,1679 ----
- }
- }
-
-+ static PyObject *
-+ ListGetattro(PyObject *self, PyObject *nameobj)
-+ {
-+ GET_ATTR_STRING(name, nameobj);
-+
-+ if (strcmp(name, "locked") == 0)
-+ return PyLong_FromLong(((ListObject *) (self))->list->lv_lock);
-+
-+ return PyObject_GenericGetAttr(self, nameobj);
-+ }
-+
-+ static int
-+ ListSetattro(PyObject *self, PyObject *nameobj, PyObject *val)
-+ {
-+ GET_ATTR_STRING(name, nameobj);
-+ return ListSetattr((ListObject *) self, name, val);
-+ }
-+
- static void
- ListDestructor(PyObject *self)
- {
-***************
-*** 1713,1718 ****
---- 1762,1768 ----
- PyMODINIT_FUNC Py3Init_vim(void)
- {
- PyObject *mod;
-+ PyObject *tmp;
- /* The special value is removed from sys.path in Python3_Init(). */
- static wchar_t *(argv[2]) = {L"/must>not&exist/foo", NULL};
-
-***************
-*** 1744,1749 ****
---- 1794,1809 ----
- Py_INCREF((PyObject *)(void *)&TheWindowList);
- PyModule_AddObject(mod, "windows", (PyObject *)(void *)&TheWindowList);
-
-+ #define ADD_INT_CONSTANT(name, value) \
-+ tmp = PyLong_FromLong(value); \
-+ Py_INCREF(tmp); \
-+ PyModule_AddObject(mod, name, tmp)
-+
-+ ADD_INT_CONSTANT("VAR_LOCKED", VAR_LOCKED);
-+ ADD_INT_CONSTANT("VAR_FIXED", VAR_FIXED);
-+ ADD_INT_CONSTANT("VAR_SCOPE", VAR_SCOPE);
-+ ADD_INT_CONSTANT("VAR_DEF_SCOPE", VAR_DEF_SCOPE);
-+
- if (PyErr_Occurred())
- return NULL;
-
-***************
-*** 1899,1904 ****
---- 1959,1966 ----
- vim_memset(&DictionaryType, 0, sizeof(DictionaryType));
- DictionaryType.tp_name = "vim.dictionary";
- DictionaryType.tp_basicsize = sizeof(DictionaryObject);
-+ DictionaryType.tp_getattro = DictionaryGetattro;
-+ DictionaryType.tp_setattro = DictionarySetattro;
- DictionaryType.tp_dealloc = DictionaryDestructor;
- DictionaryType.tp_as_mapping = &DictionaryAsMapping;
- DictionaryType.tp_flags = Py_TPFLAGS_DEFAULT;
-***************
-*** 1909,1914 ****
---- 1971,1978 ----
- ListType.tp_name = "vim.list";
- ListType.tp_dealloc = ListDestructor;
- ListType.tp_basicsize = sizeof(ListObject);
-+ ListType.tp_getattro = ListGetattro;
-+ ListType.tp_setattro = ListSetattro;
- ListType.tp_as_sequence = &ListAsSeq;
- ListType.tp_as_mapping = &ListAsMapping;
- ListType.tp_flags = Py_TPFLAGS_DEFAULT;
-*** ../vim-7.3.671/src/testdir/test86.in 2012-09-05 19:17:37.000000000 +0200
---- src/testdir/test86.in 2012-09-21 13:49:14.000000000 +0200
-***************
-*** 211,216 ****
---- 211,251 ----
- m.extend([e.__class__.__name__])
- EOF
- :$put =messages
-+ :unlet messages
-+ :" locked and scope attributes
-+ :let d={} | let dl={} | lockvar dl
-+ :for s in split("d dl v: g:")
-+ : let name=tr(s, ':', 's')
-+ : execute 'py '.name.'=vim.bindeval("'.s.'")'
-+ : let toput=s.' : '.join(map(['locked', 'scope'], 'v:val.":".pyeval(name.".".v:val)'), ';')
-+ : $put =toput
-+ :endfor
-+ :silent! let d.abc=1
-+ :silent! let dl.abc=1
-+ :py d.locked=True
-+ :py dl.locked=False
-+ :silent! let d.def=1
-+ :silent! let dl.def=1
-+ :put ='d:'.string(d)
-+ :put ='dl:'.string(dl)
-+ :unlet d dl
-+ :
-+ :let l=[] | let ll=[] | lockvar ll
-+ :for s in split("l ll")
-+ : let name=tr(s, ':', 's')
-+ : execute 'py '.name.'=vim.bindeval("'.s.'")'
-+ : let toput=s.' : locked:'.pyeval(name.'.locked')
-+ : $put =toput
-+ :endfor
-+ :silent! call extend(l, [0])
-+ :silent! call extend(ll, [0])
-+ :py l.locked=True
-+ :py ll.locked=False
-+ :silent! call extend(l, [1])
-+ :silent! call extend(ll, [1])
-+ :put ='l:'.string(l)
-+ :put ='ll:'.string(ll)
-+ :unlet l ll
- :"
- :" pyeval()
- :let l=pyeval('range(3)')
-***************
-*** 240,245 ****
---- 275,281 ----
- :call garbagecollect(1)
- :"
- :/^start:/,$wq! test.out
-+ :call getchar()
- ENDTEST
-
- start:
-*** ../vim-7.3.671/src/testdir/test86.ok 2012-09-05 19:17:37.000000000 +0200
---- src/testdir/test86.ok 2012-09-21 13:49:14.000000000 +0200
-***************
-*** 44,49 ****
---- 44,59 ----
- ValueError
- TypeError
- TypeError
-+ d : locked:0;scope:0
-+ dl : locked:1;scope:0
-+ v: : locked:2;scope:1
-+ g: : locked:0;scope:2
-+ d:{'abc': 1}
-+ dl:{'def': 1}
-+ l : locked:0
-+ ll : locked:1
-+ l:[0]
-+ ll:[1]
- [0, 1, 2]
- ['a', 'b']
- ['c', 1]
-*** ../vim-7.3.671/src/testdir/test87.in 2012-09-05 19:17:37.000000000 +0200
---- src/testdir/test87.in 2012-09-21 13:49:14.000000000 +0200
-***************
-*** 211,216 ****
---- 211,251 ----
- m.extend([e.__class__.__name__])
- EOF
- :$put =messages
-+ :unlet messages
-+ :" locked and scope attributes
-+ :let d={} | let dl={} | lockvar dl
-+ :for s in split("d dl v: g:")
-+ : let name=tr(s, ':', 's')
-+ : execute 'py3 '.name.'=vim.bindeval("'.s.'")'
-+ : let toput=s.' : '.join(map(['locked', 'scope'], 'v:val.":".py3eval(name.".".v:val)'), ';')
-+ : $put =toput
-+ :endfor
-+ :silent! let d.abc=1
-+ :silent! let dl.abc=1
-+ :py3 d.locked=True
-+ :py3 dl.locked=False
-+ :silent! let d.def=1
-+ :silent! let dl.def=1
-+ :put ='d:'.string(d)
-+ :put ='dl:'.string(dl)
-+ :unlet d dl
-+ :
-+ :let l=[] | let ll=[] | lockvar ll
-+ :for s in split("l ll")
-+ : let name=tr(s, ':', 's')
-+ : execute 'py3 '.name.'=vim.bindeval("'.s.'")'
-+ : let toput=s.' : locked:'.py3eval(name.'.locked')
-+ : $put =toput
-+ :endfor
-+ :silent! call extend(l, [0])
-+ :silent! call extend(ll, [0])
-+ :py3 l.locked=True
-+ :py3 ll.locked=False
-+ :silent! call extend(l, [1])
-+ :silent! call extend(ll, [1])
-+ :put ='l:'.string(l)
-+ :put ='ll:'.string(ll)
-+ :unlet l ll
- :"
- :" py3eval()
- :let l=py3eval('[0, 1, 2]')
-*** ../vim-7.3.671/src/testdir/test87.ok 2012-09-05 19:17:37.000000000 +0200
---- src/testdir/test87.ok 2012-09-21 13:49:14.000000000 +0200
-***************
-*** 44,49 ****
---- 44,59 ----
- ValueError
- TypeError
- TypeError
-+ d : locked:0;scope:0
-+ dl : locked:1;scope:0
-+ v: : locked:2;scope:1
-+ g: : locked:0;scope:2
-+ d:{'abc': 1}
-+ dl:{'def': 1}
-+ l : locked:0
-+ ll : locked:1
-+ l:[0]
-+ ll:[1]
- [0, 1, 2]
- ['a', 'b']
- ['c', 1]
-*** ../vim-7.3.671/src/version.c 2012-09-21 13:45:57.000000000 +0200
---- src/version.c 2012-09-21 13:48:18.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 672,
- /**/
-
---
-Vi beats Emacs to death, and then again!
- http://linuxtoday.com/stories/5764.html
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.673
-Fcc: 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.673
-Problem: Using "gN" while 'selection' is "exclusive" misses one character.
- (Ben Fritz)
-Solution: Check the direction when compensating for exclusive selection.
- (Christian Brabandt)
-Files: src/search.c
-
-
-*** ../vim-7.3.672/src/search.c 2012-09-05 12:16:39.000000000 +0200
---- src/search.c 2012-10-03 13:28:49.000000000 +0200
-***************
-*** 4650,4657 ****
- if (VIsual_active)
- {
- redraw_curbuf_later(INVERTED); /* update the inversion */
-! if (*p_sel == 'e' && ltoreq(VIsual, curwin->w_cursor))
-! inc_cursor();
- }
-
- #ifdef FEAT_FOLDING
---- 4650,4664 ----
- if (VIsual_active)
- {
- redraw_curbuf_later(INVERTED); /* update the inversion */
-! if (*p_sel == 'e')
-! {
-! /* Correction for exclusive selection depends on the direction. */
-! if (forward && ltoreq(VIsual, curwin->w_cursor))
-! inc_cursor();
-! else if (!forward && ltoreq(curwin->w_cursor, VIsual))
-! inc(&VIsual);
-! }
-!
- }
-
- #ifdef FEAT_FOLDING
-*** ../vim-7.3.672/src/version.c 2012-09-21 14:00:05.000000000 +0200
---- src/version.c 2012-10-03 13:31:45.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 673,
- /**/
-
---
-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/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.674
-Fcc: 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.674
-Problem: Can't compile with Lua/dyn on Cygwin.
-Solution: Adjust configure to use the right library name. (Ken Takata)
-Files: src/configure.in, src/auto/configure
-
-
-*** ../vim-7.3.673/src/configure.in 2012-09-21 13:26:44.000000000 +0200
---- src/configure.in 2012-10-03 14:39:42.000000000 +0200
-***************
-*** 455,485 ****
-
- LUA_INC=
- if test "X$vi_cv_path_lua_pfx" != "X"; then
- AC_MSG_CHECKING(if lua.h can be found in $vi_cv_path_lua_pfx/include)
- if test -f $vi_cv_path_lua_pfx/include/lua.h; then
- AC_MSG_RESULT(yes)
- else
- AC_MSG_RESULT(no)
-! dnl -- try to find Lua executable
-! AC_PATH_PROG(vi_cv_path_lua, lua)
-! if test "X$vi_cv_path_lua" != "X"; then
-! dnl -- find Lua version
-! AC_CACHE_CHECK(Lua version, vi_cv_version_lua,
-! [ vi_cv_version_lua=`${vi_cv_path_lua} -e "print(_VERSION)" | sed 's/.* //'` ])
-! AC_MSG_CHECKING(if lua.h can be found in $vi_cv_path_lua_pfx/include/lua$vi_cv_version_lua)
-! if test -f $vi_cv_path_lua_pfx/include/lua$vi_cv_version_lua/lua.h; then
-! AC_MSG_RESULT(yes)
-! LUA_INC=/lua$vi_cv_version_lua
-! else
-! AC_MSG_RESULT(no)
-! vi_cv_path_lua_pfx=
-! fi
- fi
- fi
- fi
-
- if test "X$vi_cv_path_lua_pfx" != "X"; then
-! if test "X$vi_cv_version_lua" != "X"; then
- dnl Test alternate location using version
- LUA_LIBS="-L${vi_cv_path_lua_pfx}/lib -llua$vi_cv_version_lua"
- else
---- 455,485 ----
-
- LUA_INC=
- if test "X$vi_cv_path_lua_pfx" != "X"; then
-+ dnl -- try to find Lua executable
-+ AC_PATH_PROG(vi_cv_path_lua, lua)
-+ if test "X$vi_cv_path_lua" != "X"; then
-+ dnl -- find Lua version
-+ AC_CACHE_CHECK(Lua version, vi_cv_version_lua,
-+ [ vi_cv_version_lua=`${vi_cv_path_lua} -e "print(_VERSION)" | sed 's/.* //'` ])
-+ fi
- AC_MSG_CHECKING(if lua.h can be found in $vi_cv_path_lua_pfx/include)
- if test -f $vi_cv_path_lua_pfx/include/lua.h; then
- AC_MSG_RESULT(yes)
- else
- AC_MSG_RESULT(no)
-! AC_MSG_CHECKING(if lua.h can be found in $vi_cv_path_lua_pfx/include/lua$vi_cv_version_lua)
-! if test -f $vi_cv_path_lua_pfx/include/lua$vi_cv_version_lua/lua.h; then
-! AC_MSG_RESULT(yes)
-! LUA_INC=/lua$vi_cv_version_lua
-! else
-! AC_MSG_RESULT(no)
-! vi_cv_path_lua_pfx=
- fi
- fi
- fi
-
- if test "X$vi_cv_path_lua_pfx" != "X"; then
-! if test "X$LUA_INC" != "X"; then
- dnl Test alternate location using version
- LUA_LIBS="-L${vi_cv_path_lua_pfx}/lib -llua$vi_cv_version_lua"
- else
-***************
-*** 491,507 ****
- LUA_PRO="if_lua.pro"
- AC_DEFINE(FEAT_LUA)
- if test "$enable_luainterp" = "dynamic"; then
-! dnl Determine the SONAME for the current version, but fallback to
-! dnl liblua${vi_cv_version_lua}.so if no SONAME-versioned file is found.
-! for i in 0 1 2 3 4 5 6 7 8 9; do
-! if test -f "${vi_cv_path_lua_pfx}/lib/liblua${vi_cv_version_lua}.so.$i"; then
-! LUA_SONAME=".$i"
-! break
-! fi
-! done
- AC_DEFINE(DYNAMIC_LUA)
- LUA_LIBS=""
-! LUA_CFLAGS="-DDYNAMIC_LUA_DLL=\\\"liblua${vi_cv_version_lua}.so$LUA_SONAME\\\" $LUA_CFLAGS"
- fi
- fi
- if test "$fail_if_missing" = "yes" -a -z "$LUA_SRC"; then
---- 491,512 ----
- LUA_PRO="if_lua.pro"
- AC_DEFINE(FEAT_LUA)
- if test "$enable_luainterp" = "dynamic"; then
-! if test -f "${vi_cv_path_lua_pfx}/bin/cyglua-${vi_cv_version_lua}.dll"; then
-! vi_cv_dll_name_lua="cyglua-${vi_cv_version_lua}.dll"
-! else
-! dnl Determine the SONAME for the current version, but fallback to
-! dnl liblua${vi_cv_version_lua}.so if no SONAME-versioned file is found.
-! for i in 0 1 2 3 4 5 6 7 8 9; do
-! if test -f "${vi_cv_path_lua_pfx}/lib/liblua${vi_cv_version_lua}.so.$i"; then
-! LUA_SONAME=".$i"
-! break
-! fi
-! done
-! vi_cv_dll_name_lua="liblua${vi_cv_version_lua}.so$LUA_SONAME"
-! fi
- AC_DEFINE(DYNAMIC_LUA)
- LUA_LIBS=""
-! LUA_CFLAGS="-DDYNAMIC_LUA_DLL=\\\"${vi_cv_dll_name_lua}\\\" $LUA_CFLAGS"
- fi
- fi
- if test "$fail_if_missing" = "yes" -a -z "$LUA_SRC"; then
-*** ../vim-7.3.673/src/auto/configure 2012-09-21 13:26:44.000000000 +0200
---- src/auto/configure 2012-10-03 14:42:13.000000000 +0200
-***************
-*** 4648,4662 ****
-
- LUA_INC=
- if test "X$vi_cv_path_lua_pfx" != "X"; then
-! { $as_echo "$as_me:${as_lineno-$LINENO}: checking if lua.h can be found in $vi_cv_path_lua_pfx/include" >&5
-! $as_echo_n "checking if lua.h can be found in $vi_cv_path_lua_pfx/include... " >&6; }
-! if test -f $vi_cv_path_lua_pfx/include/lua.h; 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; }
-! # Extract the first word of "lua", so it can be a program name with args.
- set dummy lua; ac_word=$2
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
- $as_echo_n "checking for $ac_word... " >&6; }
---- 4648,4654 ----
-
- LUA_INC=
- if test "X$vi_cv_path_lua_pfx" != "X"; then
-! # Extract the first word of "lua", so it can be a program name with args.
- set dummy lua; ac_word=$2
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
- $as_echo_n "checking for $ac_word... " >&6; }
-***************
-*** 4696,4703 ****
- fi
-
-
-! if test "X$vi_cv_path_lua" != "X"; then
-! { $as_echo "$as_me:${as_lineno-$LINENO}: checking Lua version" >&5
- $as_echo_n "checking Lua version... " >&6; }
- if test "${vi_cv_version_lua+set}" = set; then :
- $as_echo_n "(cached) " >&6
---- 4688,4695 ----
- fi
-
-
-! if test "X$vi_cv_path_lua" != "X"; then
-! { $as_echo "$as_me:${as_lineno-$LINENO}: checking Lua version" >&5
- $as_echo_n "checking Lua version... " >&6; }
- if test "${vi_cv_version_lua+set}" = set; then :
- $as_echo_n "(cached) " >&6
-***************
-*** 4706,4728 ****
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $vi_cv_version_lua" >&5
- $as_echo "$vi_cv_version_lua" >&6; }
-! { $as_echo "$as_me:${as_lineno-$LINENO}: checking if lua.h can be found in $vi_cv_path_lua_pfx/include/lua$vi_cv_version_lua" >&5
- $as_echo_n "checking if lua.h can be found in $vi_cv_path_lua_pfx/include/lua$vi_cv_version_lua... " >&6; }
-! if test -f $vi_cv_path_lua_pfx/include/lua$vi_cv_version_lua/lua.h; then
-! { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
- $as_echo "yes" >&6; }
-! LUA_INC=/lua$vi_cv_version_lua
-! else
-! { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
- $as_echo "no" >&6; }
-! vi_cv_path_lua_pfx=
-! fi
- fi
- fi
- fi
-
- if test "X$vi_cv_path_lua_pfx" != "X"; then
-! if test "X$vi_cv_version_lua" != "X"; then
- LUA_LIBS="-L${vi_cv_path_lua_pfx}/lib -llua$vi_cv_version_lua"
- else
- LUA_LIBS="-L${vi_cv_path_lua_pfx}/lib -llua"
---- 4698,4728 ----
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $vi_cv_version_lua" >&5
- $as_echo "$vi_cv_version_lua" >&6; }
-! fi
-! { $as_echo "$as_me:${as_lineno-$LINENO}: checking if lua.h can be found in $vi_cv_path_lua_pfx/include" >&5
-! $as_echo_n "checking if lua.h can be found in $vi_cv_path_lua_pfx/include... " >&6; }
-! if test -f $vi_cv_path_lua_pfx/include/lua.h; 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; }
-! { $as_echo "$as_me:${as_lineno-$LINENO}: checking if lua.h can be found in $vi_cv_path_lua_pfx/include/lua$vi_cv_version_lua" >&5
- $as_echo_n "checking if lua.h can be found in $vi_cv_path_lua_pfx/include/lua$vi_cv_version_lua... " >&6; }
-! if test -f $vi_cv_path_lua_pfx/include/lua$vi_cv_version_lua/lua.h; then
-! { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
- $as_echo "yes" >&6; }
-! LUA_INC=/lua$vi_cv_version_lua
-! else
-! { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
- $as_echo "no" >&6; }
-! vi_cv_path_lua_pfx=
- fi
- fi
- fi
-
- if test "X$vi_cv_path_lua_pfx" != "X"; then
-! if test "X$LUA_INC" != "X"; then
- LUA_LIBS="-L${vi_cv_path_lua_pfx}/lib -llua$vi_cv_version_lua"
- else
- LUA_LIBS="-L${vi_cv_path_lua_pfx}/lib -llua"
-***************
-*** 4734,4749 ****
- $as_echo "#define FEAT_LUA 1" >>confdefs.h
-
- if test "$enable_luainterp" = "dynamic"; then
-! for i in 0 1 2 3 4 5 6 7 8 9; do
-! if test -f "${vi_cv_path_lua_pfx}/lib/liblua${vi_cv_version_lua}.so.$i"; then
-! LUA_SONAME=".$i"
-! break
-! fi
-! done
- $as_echo "#define DYNAMIC_LUA 1" >>confdefs.h
-
- LUA_LIBS=""
-! LUA_CFLAGS="-DDYNAMIC_LUA_DLL=\\\"liblua${vi_cv_version_lua}.so$LUA_SONAME\\\" $LUA_CFLAGS"
- fi
- fi
- if test "$fail_if_missing" = "yes" -a -z "$LUA_SRC"; then
---- 4734,4754 ----
- $as_echo "#define FEAT_LUA 1" >>confdefs.h
-
- if test "$enable_luainterp" = "dynamic"; then
-! if test -f "${vi_cv_path_lua_pfx}/bin/cyglua-${vi_cv_version_lua}.dll"; then
-! vi_cv_dll_name_lua="cyglua-${vi_cv_version_lua}.dll"
-! else
-! for i in 0 1 2 3 4 5 6 7 8 9; do
-! if test -f "${vi_cv_path_lua_pfx}/lib/liblua${vi_cv_version_lua}.so.$i"; then
-! LUA_SONAME=".$i"
-! break
-! fi
-! done
-! vi_cv_dll_name_lua="liblua${vi_cv_version_lua}.so$LUA_SONAME"
-! fi
- $as_echo "#define DYNAMIC_LUA 1" >>confdefs.h
-
- LUA_LIBS=""
-! LUA_CFLAGS="-DDYNAMIC_LUA_DLL=\\\"${vi_cv_dll_name_lua}\\\" $LUA_CFLAGS"
- fi
- fi
- if test "$fail_if_missing" = "yes" -a -z "$LUA_SRC"; then
-*** ../vim-7.3.673/src/version.c 2012-10-03 13:35:45.000000000 +0200
---- src/version.c 2012-10-03 14:44:56.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 674,
- /**/
-
---
-The Law, in its majestic equality, forbids the rich, as well as the
-poor, to sleep under the bridges, to beg in the streets, and to steal
-bread. -- Anatole France
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.675
-Fcc: 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.675
-Problem: Using uninitialized memory with very long file name.
-Solution: Put NUL after text when it is truncated. (ZyX)
-Files: src/buffer.c
-
-
-*** ../vim-7.3.674/src/buffer.c 2012-09-05 13:30:22.000000000 +0200
---- src/buffer.c 2012-10-03 16:25:12.000000000 +0200
-***************
-*** 3058,3064 ****
-
- *p++ = '"';
- if (buf_spname(curbuf) != NULL)
-! STRCPY(p, buf_spname(curbuf));
- else
- {
- if (!fullname && curbuf->b_fname != NULL)
---- 3058,3064 ----
-
- *p++ = '"';
- if (buf_spname(curbuf) != NULL)
-! vim_strncpy(p, buf_spname(curbuf), IOSIZE - (p - buffer) - 1);
- else
- {
- if (!fullname && curbuf->b_fname != NULL)
-*** ../vim-7.3.674/src/version.c 2012-10-03 14:48:03.000000000 +0200
---- src/version.c 2012-10-03 16:29:28.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 675,
- /**/
-
---
-It is illegal to rob a bank and then shoot at the bank teller with a water
-pistol.
- [real standing law in Louisana, 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.676
-Fcc: 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.676
-Problem: Ruby compilation on Windows 32 bit doesn't work.
-Solution: Only use some functions for 64 bit. (Ken Takata)
-Files: src/if_ruby.c
-
-
-*** ../vim-7.3.675/src/if_ruby.c 2012-09-18 16:36:26.000000000 +0200
---- src/if_ruby.c 2012-10-03 17:55:58.000000000 +0200
-***************
-*** 178,186 ****
---- 178,188 ----
- #define rb_hash_new dll_rb_hash_new
- #define rb_inspect dll_rb_inspect
- #define rb_int2inum dll_rb_int2inum
-+ #if SIZEOF_INT < SIZEOF_LONG /* 64 bits only */
- #define rb_fix2int dll_rb_fix2int
- #define rb_num2int dll_rb_num2int
- #define rb_num2uint dll_rb_num2uint
-+ #endif
- #define rb_lastline_get dll_rb_lastline_get
- #define rb_lastline_set dll_rb_lastline_set
- #define rb_load_protect dll_rb_load_protect
-***************
-*** 271,279 ****
---- 273,283 ----
- static VALUE (*dll_rb_hash_new) (void);
- static VALUE (*dll_rb_inspect) (VALUE);
- static VALUE (*dll_rb_int2inum) (long);
-+ #if SIZEOF_INT < SIZEOF_LONG /* 64 bits only */
- static long (*dll_rb_fix2int) (VALUE);
- static long (*dll_rb_num2int) (VALUE);
- static unsigned long (*dll_rb_num2uint) (VALUE);
-+ #endif
- static VALUE (*dll_rb_lastline_get) (void);
- static void (*dll_rb_lastline_set) (VALUE);
- static void (*dll_rb_load_protect) (VALUE, int, int*);
-***************
-*** 382,390 ****
---- 386,396 ----
- {"rb_hash_new", (RUBY_PROC*)&dll_rb_hash_new},
- {"rb_inspect", (RUBY_PROC*)&dll_rb_inspect},
- {"rb_int2inum", (RUBY_PROC*)&dll_rb_int2inum},
-+ #if SIZEOF_INT < SIZEOF_LONG /* 64 bits only */
- {"rb_fix2int", (RUBY_PROC*)&dll_rb_fix2int},
- {"rb_num2int", (RUBY_PROC*)&dll_rb_num2int},
- {"rb_num2uint", (RUBY_PROC*)&dll_rb_num2uint},
-+ #endif
- {"rb_lastline_get", (RUBY_PROC*)&dll_rb_lastline_get},
- {"rb_lastline_set", (RUBY_PROC*)&dll_rb_lastline_set},
- {"rb_load_protect", (RUBY_PROC*)&dll_rb_load_protect},
-*** ../vim-7.3.675/src/version.c 2012-10-03 17:12:43.000000000 +0200
---- src/version.c 2012-10-03 17:52:11.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 676,
- /**/
-
---
-Why don't cannibals eat clowns?
-Because they taste funny.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.677
-Fcc: 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.677
-Problem: buf_spname() is used inconsistently.
-Solution: Make the return type a char_u pointer. Check the size of the
- returned string.
-Files: src/buffer.c, src/proto/buffer.pro, src/ex_cmds2.c,
- src/ex_docmd.c, src/memline.c, src/screen.c
-
-
-*** ../vim-7.3.676/src/buffer.c 2012-10-03 17:12:43.000000000 +0200
---- src/buffer.c 2012-10-03 18:14:34.000000000 +0200
-***************
-*** 2635,2641 ****
- continue;
- msg_putchar('\n');
- if (buf_spname(buf) != NULL)
-! STRCPY(NameBuff, buf_spname(buf));
- else
- home_replace(buf, buf->b_fname, NameBuff, MAXPATHL, TRUE);
-
---- 2635,2641 ----
- continue;
- msg_putchar('\n');
- if (buf_spname(buf) != NULL)
-! vim_strncpy(NameBuff, buf_spname(buf), MAXPATHL - 1);
- else
- home_replace(buf, buf->b_fname, NameBuff, MAXPATHL, TRUE);
-
-***************
-*** 3350,3356 ****
- else
- {
- if (buf_spname(curbuf) != NULL)
-! i_name = (char_u *)buf_spname(curbuf);
- else /* use file name only in icon */
- i_name = gettail(curbuf->b_ffname);
- *i_str = NUL;
---- 3350,3356 ----
- else
- {
- if (buf_spname(curbuf) != NULL)
-! i_name = buf_spname(curbuf);
- else /* use file name only in icon */
- i_name = gettail(curbuf->b_ffname);
- *i_str = NUL;
-***************
-*** 3766,3772 ****
- case STL_FILENAME:
- fillable = FALSE; /* don't change ' ' to fillchar */
- if (buf_spname(wp->w_buffer) != NULL)
-! STRCPY(NameBuff, buf_spname(wp->w_buffer));
- else
- {
- t = (opt == STL_FULLPATH) ? wp->w_buffer->b_ffname
---- 3766,3772 ----
- case STL_FILENAME:
- fillable = FALSE; /* don't change ' ' to fillchar */
- if (buf_spname(wp->w_buffer) != NULL)
-! vim_strncpy(NameBuff, buf_spname(wp->w_buffer), MAXPATHL - 1);
- else
- {
- t = (opt == STL_FULLPATH) ? wp->w_buffer->b_ffname
-***************
-*** 5244,5250 ****
- * Return special buffer name.
- * Returns NULL when the buffer has a normal file name.
- */
-! char *
- buf_spname(buf)
- buf_T *buf;
- {
---- 5244,5250 ----
- * Return special buffer name.
- * Returns NULL when the buffer has a normal file name.
- */
-! char_u *
- buf_spname(buf)
- buf_T *buf;
- {
-***************
-*** 5263,5271 ****
- goto win_found;
- win_found:
- if (win != NULL && win->w_llist_ref != NULL)
-! return _(msg_loclist);
- else
-! return _(msg_qflist);
- }
- #endif
- #ifdef FEAT_QUICKFIX
---- 5263,5271 ----
- goto win_found;
- win_found:
- if (win != NULL && win->w_llist_ref != NULL)
-! return (char_u *)_(msg_loclist);
- else
-! return (char_u *)_(msg_qflist);
- }
- #endif
- #ifdef FEAT_QUICKFIX
-***************
-*** 5274,5285 ****
- if (bt_nofile(buf))
- {
- if (buf->b_sfname != NULL)
-! return (char *)buf->b_sfname;
-! return _("[Scratch]");
- }
- #endif
- if (buf->b_fname == NULL)
-! return _("[No Name]");
- return NULL;
- }
-
---- 5274,5285 ----
- if (bt_nofile(buf))
- {
- if (buf->b_sfname != NULL)
-! return buf->b_sfname;
-! return (char_u *)_("[Scratch]");
- }
- #endif
- if (buf->b_fname == NULL)
-! return (char_u *)_("[No Name]");
- return NULL;
- }
-
-*** ../vim-7.3.676/src/proto/buffer.pro 2012-07-10 15:18:18.000000000 +0200
---- src/proto/buffer.pro 2012-10-03 18:17:58.000000000 +0200
-***************
-*** 51,57 ****
- void do_modelines __ARGS((int flags));
- int read_viminfo_bufferlist __ARGS((vir_T *virp, int writing));
- void write_viminfo_bufferlist __ARGS((FILE *fp));
-! char *buf_spname __ARGS((buf_T *buf));
- void buf_addsign __ARGS((buf_T *buf, int id, linenr_T lnum, int typenr));
- linenr_T buf_change_sign_type __ARGS((buf_T *buf, int markId, int typenr));
- int buf_getsigntype __ARGS((buf_T *buf, linenr_T lnum, int type));
---- 51,57 ----
- void do_modelines __ARGS((int flags));
- int read_viminfo_bufferlist __ARGS((vir_T *virp, int writing));
- void write_viminfo_bufferlist __ARGS((FILE *fp));
-! char_u *buf_spname __ARGS((buf_T *buf));
- void buf_addsign __ARGS((buf_T *buf, int id, linenr_T lnum, int typenr));
- linenr_T buf_change_sign_type __ARGS((buf_T *buf, int markId, int typenr));
- int buf_getsigntype __ARGS((buf_T *buf, linenr_T lnum, int type));
-*** ../vim-7.3.676/src/ex_cmds2.c 2012-06-29 12:57:03.000000000 +0200
---- src/ex_cmds2.c 2012-10-03 18:15:26.000000000 +0200
-***************
-*** 1688,1695 ****
- msg_didout = FALSE;
- }
- if (EMSG2(_("E162: No write since last change for buffer \"%s\""),
-! buf_spname(buf) != NULL ? (char_u *)buf_spname(buf) :
-! buf->b_fname))
- {
- save = no_wait_return;
- no_wait_return = FALSE;
---- 1688,1694 ----
- msg_didout = FALSE;
- }
- if (EMSG2(_("E162: No write since last change for buffer \"%s\""),
-! buf_spname(buf) != NULL ? buf_spname(buf) : buf->b_fname))
- {
- save = no_wait_return;
- no_wait_return = FALSE;
-*** ../vim-7.3.676/src/ex_docmd.c 2012-09-18 16:47:00.000000000 +0200
---- src/ex_docmd.c 2012-10-03 18:15:47.000000000 +0200
-***************
-*** 7602,7608 ****
- msg_putchar(bufIsChanged(wp->w_buffer) ? '+' : ' ');
- msg_putchar(' ');
- if (buf_spname(wp->w_buffer) != NULL)
-! STRCPY(IObuff, buf_spname(wp->w_buffer));
- else
- home_replace(wp->w_buffer, wp->w_buffer->b_fname,
- IObuff, IOSIZE, TRUE);
---- 7602,7608 ----
- msg_putchar(bufIsChanged(wp->w_buffer) ? '+' : ' ');
- msg_putchar(' ');
- if (buf_spname(wp->w_buffer) != NULL)
-! vim_strncpy(IObuff, buf_spname(wp->w_buffer), IOSIZE - 1);
- else
- home_replace(wp->w_buffer, wp->w_buffer->b_fname,
- IObuff, IOSIZE, TRUE);
-*** ../vim-7.3.676/src/memline.c 2011-10-26 11:44:15.000000000 +0200
---- src/memline.c 2012-10-03 18:18:23.000000000 +0200
-***************
-*** 780,788 ****
- need_wait_return = TRUE; /* call wait_return later */
- ++no_wait_return;
- (void)EMSG2(_("E303: Unable to open swap file for \"%s\", recovery impossible"),
-! buf_spname(buf) != NULL
-! ? (char_u *)buf_spname(buf)
-! : buf->b_fname);
- --no_wait_return;
- }
-
---- 780,786 ----
- need_wait_return = TRUE; /* call wait_return later */
- ++no_wait_return;
- (void)EMSG2(_("E303: Unable to open swap file for \"%s\", recovery impossible"),
-! buf_spname(buf) != NULL ? buf_spname(buf) : buf->b_fname);
- --no_wait_return;
- }
-
-***************
-*** 1315,1321 ****
- smsg((char_u *)_("Using swap file \"%s\""), NameBuff);
-
- if (buf_spname(curbuf) != NULL)
-! STRCPY(NameBuff, buf_spname(curbuf));
- else
- home_replace(NULL, curbuf->b_ffname, NameBuff, MAXPATHL, TRUE);
- smsg((char_u *)_("Original file \"%s\""), NameBuff);
---- 1313,1319 ----
- smsg((char_u *)_("Using swap file \"%s\""), NameBuff);
-
- if (buf_spname(curbuf) != NULL)
-! vim_strncpy(NameBuff, buf_spname(curbuf), MAXPATHL - 1);
- else
- home_replace(NULL, curbuf->b_ffname, NameBuff, MAXPATHL, TRUE);
- smsg((char_u *)_("Original file \"%s\""), NameBuff);
-*** ../vim-7.3.676/src/screen.c 2012-08-23 18:55:50.000000000 +0200
---- src/screen.c 2012-10-03 18:17:25.000000000 +0200
-***************
-*** 9876,9882 ****
- buf_T *buf;
- {
- if (buf_spname(buf) != NULL)
-! STRCPY(NameBuff, buf_spname(buf));
- else
- home_replace(buf, buf->b_fname, NameBuff, MAXPATHL, TRUE);
- trans_characters(NameBuff, MAXPATHL);
---- 9876,9882 ----
- buf_T *buf;
- {
- if (buf_spname(buf) != NULL)
-! vim_strncpy(NameBuff, buf_spname(buf), MAXPATHL - 1);
- else
- home_replace(buf, buf->b_fname, NameBuff, MAXPATHL, TRUE);
- trans_characters(NameBuff, MAXPATHL);
-*** ../vim-7.3.676/src/version.c 2012-10-03 18:06:55.000000000 +0200
---- src/version.c 2012-10-03 18:22:18.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 677,
- /**/
-
---
-bashian roulette:
-$ ((RANDOM%6)) || 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.678
-Fcc: 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.678
-Problem: Ruby .so name may not be correct.
-Solution: Use the LIBRUBY_SO entry from the config. (Vit Ondruch)
-Files: src/configure.in, src/auto/configure
-
-
-*** ../vim-7.3.677/src/configure.in 2012-10-03 14:48:03.000000000 +0200
---- src/configure.in 2012-10-03 18:38:24.000000000 +0200
-***************
-*** 1487,1493 ****
- 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=
---- 1487,1493 ----
- RUBY_PRO="if_ruby.pro"
- AC_DEFINE(FEAT_RUBY)
- if test "$enable_rubyinterp" = "dynamic"; then
-! libruby=`$vi_cv_path_ruby -r rbconfig -e 'puts Config::CONFIG[["LIBRUBY_SO"]]'`
- AC_DEFINE(DYNAMIC_RUBY)
- RUBY_CFLAGS="-DDYNAMIC_RUBY_DLL=\\\"$libruby\\\" -DDYNAMIC_RUBY_VER=$rubyversion $RUBY_CFLAGS"
- RUBY_LIBS=
-*** ../vim-7.3.677/src/auto/configure 2012-10-03 14:48:03.000000000 +0200
---- src/auto/configure 2012-10-03 18:40:48.000000000 +0200
-***************
-*** 6376,6382 ****
- $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"
---- 6376,6382 ----
- $as_echo "#define FEAT_RUBY 1" >>confdefs.h
-
- if test "$enable_rubyinterp" = "dynamic"; then
-! libruby=`$vi_cv_path_ruby -r rbconfig -e 'puts Config::CONFIG["LIBRUBY_SO"]'`
- $as_echo "#define DYNAMIC_RUBY 1" >>confdefs.h
-
- RUBY_CFLAGS="-DDYNAMIC_RUBY_DLL=\\\"$libruby\\\" -DDYNAMIC_RUBY_VER=$rubyversion $RUBY_CFLAGS"
-*** ../vim-7.3.677/src/version.c 2012-10-03 18:24:55.000000000 +0200
---- src/version.c 2012-10-03 18:49:09.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 678,
- /**/
-
---
-Snoring is prohibited unless all bedroom windows are closed and securely
-locked.
- [real standing law in Massachusetts, United States of America]
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.679
-Fcc: 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.679
-Problem: Ruby detection uses Config, newer Ruby versions use RbConfig.
-Solution: Detect the need to use RbConfig. (Vit Ondruch)
-Files: src/configure.in, src/auto/configure
-
-
-*** ../vim-7.3.678/src/configure.in 2012-10-03 18:49:55.000000000 +0200
---- src/configure.in 2012-10-03 18:50:48.000000000 +0200
-***************
-*** 1442,1465 ****
- AC_MSG_CHECKING(Ruby version)
- if $vi_cv_path_ruby -e '(VERSION rescue RUBY_VERSION) >= "1.6.0" or exit 1' >/dev/null 2>/dev/null; then
- AC_MSG_RESULT(OK)
- AC_MSG_CHECKING(Ruby header files)
-! rubyhdrdir=`$vi_cv_path_ruby -r mkmf -e 'print Config::CONFIG[["rubyhdrdir"]] || Config::CONFIG[["archdir"]] || $hdrdir' 2>/dev/null`
- if test "X$rubyhdrdir" != "X"; then
- AC_MSG_RESULT($rubyhdrdir)
- RUBY_CFLAGS="-I$rubyhdrdir"
-! rubyarch=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["arch"]]'`
- if test -d "$rubyhdrdir/$rubyarch"; then
- RUBY_CFLAGS="$RUBY_CFLAGS -I$rubyhdrdir/$rubyarch"
- fi
-! rubyversion=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["ruby_version"]].gsub(/\./, "")[[0,2]]'`
- RUBY_CFLAGS="$RUBY_CFLAGS -DRUBY_VERSION=$rubyversion"
-! rubylibs=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["LIBS"]]'`
- if test "X$rubylibs" != "X"; then
- RUBY_LIBS="$rubylibs"
- fi
-! librubyarg=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["LIBRUBYARG"]])'`
-! librubya=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["LIBRUBY_A"]])'`
-! rubylibdir=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["libdir"]])'`
- if test -f "$rubylibdir/$librubya"; then
- librubyarg="$librubyarg"
- RUBY_LIBS="$RUBY_LIBS -L$rubylibdir"
---- 1442,1471 ----
- AC_MSG_CHECKING(Ruby version)
- if $vi_cv_path_ruby -e '(VERSION rescue RUBY_VERSION) >= "1.6.0" or exit 1' >/dev/null 2>/dev/null; then
- AC_MSG_RESULT(OK)
-+ AC_MSG_CHECKING(Ruby rbconfig)
-+ ruby_rbconfig="RbConfig"
-+ if ! $vi_cv_path_ruby -r rbconfig -e 'RbConfig' >/dev/null 2>/dev/null; then
-+ ruby_rbconfig="Config"
-+ fi
-+ AC_MSG_RESULT($ruby_rbconfig)
- AC_MSG_CHECKING(Ruby header files)
-! rubyhdrdir=`$vi_cv_path_ruby -r mkmf -e "print $ruby_rbconfig::CONFIG[['rubyhdrdir']] || $ruby_rbconfig::CONFIG[['archdir']] || \\$hdrdir" 2>/dev/null`
- if test "X$rubyhdrdir" != "X"; then
- AC_MSG_RESULT($rubyhdrdir)
- RUBY_CFLAGS="-I$rubyhdrdir"
-! rubyarch=`$vi_cv_path_ruby -r rbconfig -e "print $ruby_rbconfig::CONFIG[['arch']]"`
- if test -d "$rubyhdrdir/$rubyarch"; then
- RUBY_CFLAGS="$RUBY_CFLAGS -I$rubyhdrdir/$rubyarch"
- fi
-! rubyversion=`$vi_cv_path_ruby -r rbconfig -e "print $ruby_rbconfig::CONFIG[['ruby_version']].gsub(/\./, '')[[0,2]]"`
- RUBY_CFLAGS="$RUBY_CFLAGS -DRUBY_VERSION=$rubyversion"
-! rubylibs=`$vi_cv_path_ruby -r rbconfig -e "print $ruby_rbconfig::CONFIG[['LIBS']]"`
- if test "X$rubylibs" != "X"; then
- RUBY_LIBS="$rubylibs"
- fi
-! librubyarg=`$vi_cv_path_ruby -r rbconfig -e "print $ruby_rbconfig.expand($ruby_rbconfig::CONFIG[['LIBRUBYARG']])"`
-! librubya=`$vi_cv_path_ruby -r rbconfig -e "print $ruby_rbconfig.expand($ruby_rbconfig::CONFIG[['LIBRUBY_A']])"`
-! rubylibdir=`$vi_cv_path_ruby -r rbconfig -e "print $ruby_rbconfig.expand($ruby_rbconfig::CONFIG[['libdir']])"`
- if test -f "$rubylibdir/$librubya"; then
- librubyarg="$librubyarg"
- RUBY_LIBS="$RUBY_LIBS -L$rubylibdir"
-***************
-*** 1472,1478 ****
- if test "X$librubyarg" != "X"; then
- RUBY_LIBS="$librubyarg $RUBY_LIBS"
- fi
-! rubyldflags=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["LDFLAGS"]]'`
- if test "X$rubyldflags" != "X"; then
- dnl Ruby on Mac OS X 10.5 adds "-arch" flags but these should only
- dnl be included if requested by passing --with-mac-arch to
---- 1478,1484 ----
- if test "X$librubyarg" != "X"; then
- RUBY_LIBS="$librubyarg $RUBY_LIBS"
- fi
-! rubyldflags=`$vi_cv_path_ruby -r rbconfig -e "print $ruby_rbconfig::CONFIG[['LDFLAGS']]"`
- if test "X$rubyldflags" != "X"; then
- dnl Ruby on Mac OS X 10.5 adds "-arch" flags but these should only
- dnl be included if requested by passing --with-mac-arch to
-***************
-*** 1487,1493 ****
- RUBY_PRO="if_ruby.pro"
- AC_DEFINE(FEAT_RUBY)
- if test "$enable_rubyinterp" = "dynamic"; then
-! libruby=`$vi_cv_path_ruby -r rbconfig -e 'puts Config::CONFIG[["LIBRUBY_SO"]]'`
- AC_DEFINE(DYNAMIC_RUBY)
- RUBY_CFLAGS="-DDYNAMIC_RUBY_DLL=\\\"$libruby\\\" -DDYNAMIC_RUBY_VER=$rubyversion $RUBY_CFLAGS"
- RUBY_LIBS=
---- 1493,1499 ----
- RUBY_PRO="if_ruby.pro"
- AC_DEFINE(FEAT_RUBY)
- if test "$enable_rubyinterp" = "dynamic"; then
-! libruby=`$vi_cv_path_ruby -r rbconfig -e "puts $ruby_rbconfig::CONFIG[['LIBRUBY_SO']]"`
- AC_DEFINE(DYNAMIC_RUBY)
- RUBY_CFLAGS="-DDYNAMIC_RUBY_DLL=\\\"$libruby\\\" -DDYNAMIC_RUBY_VER=$rubyversion $RUBY_CFLAGS"
- RUBY_LIBS=
-*** ../vim-7.3.678/src/auto/configure 2012-10-03 18:49:55.000000000 +0200
---- src/auto/configure 2012-10-03 18:51:38.000000000 +0200
-***************
-*** 6332,6357 ****
- if $vi_cv_path_ruby -e '(VERSION rescue RUBY_VERSION) >= "1.6.0" or exit 1' >/dev/null 2>/dev/null; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
- $as_echo "OK" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Ruby header files" >&5
- $as_echo_n "checking Ruby header files... " >&6; }
-! rubyhdrdir=`$vi_cv_path_ruby -r mkmf -e 'print Config::CONFIG["rubyhdrdir"] || Config::CONFIG["archdir"] || $hdrdir' 2>/dev/null`
- if test "X$rubyhdrdir" != "X"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $rubyhdrdir" >&5
- $as_echo "$rubyhdrdir" >&6; }
- RUBY_CFLAGS="-I$rubyhdrdir"
-! rubyarch=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG["arch"]'`
- if test -d "$rubyhdrdir/$rubyarch"; then
- RUBY_CFLAGS="$RUBY_CFLAGS -I$rubyhdrdir/$rubyarch"
- fi
-! rubyversion=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG["ruby_version"].gsub(/\./, "")[0,2]'`
- RUBY_CFLAGS="$RUBY_CFLAGS -DRUBY_VERSION=$rubyversion"
-! rubylibs=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG["LIBS"]'`
- if test "X$rubylibs" != "X"; then
- RUBY_LIBS="$rubylibs"
- fi
-! librubyarg=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG["LIBRUBYARG"])'`
-! librubya=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG["LIBRUBY_A"])'`
-! rubylibdir=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG["libdir"])'`
- if test -f "$rubylibdir/$librubya"; then
- librubyarg="$librubyarg"
- RUBY_LIBS="$RUBY_LIBS -L$rubylibdir"
---- 6332,6365 ----
- if $vi_cv_path_ruby -e '(VERSION rescue RUBY_VERSION) >= "1.6.0" or exit 1' >/dev/null 2>/dev/null; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
- $as_echo "OK" >&6; }
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Ruby rbconfig" >&5
-+ $as_echo_n "checking Ruby rbconfig... " >&6; }
-+ ruby_rbconfig="RbConfig"
-+ if ! $vi_cv_path_ruby -r rbconfig -e 'RbConfig' >/dev/null 2>/dev/null; then
-+ ruby_rbconfig="Config"
-+ fi
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ruby_rbconfig" >&5
-+ $as_echo "$ruby_rbconfig" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Ruby header files" >&5
- $as_echo_n "checking Ruby header files... " >&6; }
-! rubyhdrdir=`$vi_cv_path_ruby -r mkmf -e "print $ruby_rbconfig::CONFIG['rubyhdrdir'] || $ruby_rbconfig::CONFIG['archdir'] || \\$hdrdir" 2>/dev/null`
- if test "X$rubyhdrdir" != "X"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $rubyhdrdir" >&5
- $as_echo "$rubyhdrdir" >&6; }
- RUBY_CFLAGS="-I$rubyhdrdir"
-! rubyarch=`$vi_cv_path_ruby -r rbconfig -e "print $ruby_rbconfig::CONFIG['arch']"`
- if test -d "$rubyhdrdir/$rubyarch"; then
- RUBY_CFLAGS="$RUBY_CFLAGS -I$rubyhdrdir/$rubyarch"
- fi
-! rubyversion=`$vi_cv_path_ruby -r rbconfig -e "print $ruby_rbconfig::CONFIG['ruby_version'].gsub(/\./, '')[0,2]"`
- RUBY_CFLAGS="$RUBY_CFLAGS -DRUBY_VERSION=$rubyversion"
-! rubylibs=`$vi_cv_path_ruby -r rbconfig -e "print $ruby_rbconfig::CONFIG['LIBS']"`
- if test "X$rubylibs" != "X"; then
- RUBY_LIBS="$rubylibs"
- fi
-! librubyarg=`$vi_cv_path_ruby -r rbconfig -e "print $ruby_rbconfig.expand($ruby_rbconfig::CONFIG['LIBRUBYARG'])"`
-! librubya=`$vi_cv_path_ruby -r rbconfig -e "print $ruby_rbconfig.expand($ruby_rbconfig::CONFIG['LIBRUBY_A'])"`
-! rubylibdir=`$vi_cv_path_ruby -r rbconfig -e "print $ruby_rbconfig.expand($ruby_rbconfig::CONFIG['libdir'])"`
- if test -f "$rubylibdir/$librubya"; then
- librubyarg="$librubyarg"
- RUBY_LIBS="$RUBY_LIBS -L$rubylibdir"
-***************
-*** 6363,6369 ****
- if test "X$librubyarg" != "X"; then
- RUBY_LIBS="$librubyarg $RUBY_LIBS"
- fi
-! rubyldflags=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG["LDFLAGS"]'`
- if test "X$rubyldflags" != "X"; then
- rubyldflags=`echo "$rubyldflags" | sed -e 's/-arch\ ppc//' -e 's/-arch\ i386//' -e 's/-arch\ x86_64//'`
- if test "X$rubyldflags" != "X"; then
---- 6371,6377 ----
- if test "X$librubyarg" != "X"; then
- RUBY_LIBS="$librubyarg $RUBY_LIBS"
- fi
-! rubyldflags=`$vi_cv_path_ruby -r rbconfig -e "print $ruby_rbconfig::CONFIG['LDFLAGS']"`
- if test "X$rubyldflags" != "X"; then
- rubyldflags=`echo "$rubyldflags" | sed -e 's/-arch\ ppc//' -e 's/-arch\ i386//' -e 's/-arch\ x86_64//'`
- if test "X$rubyldflags" != "X"; then
-***************
-*** 6376,6382 ****
- $as_echo "#define FEAT_RUBY 1" >>confdefs.h
-
- if test "$enable_rubyinterp" = "dynamic"; then
-! libruby=`$vi_cv_path_ruby -r rbconfig -e 'puts Config::CONFIG["LIBRUBY_SO"]'`
- $as_echo "#define DYNAMIC_RUBY 1" >>confdefs.h
-
- RUBY_CFLAGS="-DDYNAMIC_RUBY_DLL=\\\"$libruby\\\" -DDYNAMIC_RUBY_VER=$rubyversion $RUBY_CFLAGS"
---- 6384,6390 ----
- $as_echo "#define FEAT_RUBY 1" >>confdefs.h
-
- if test "$enable_rubyinterp" = "dynamic"; then
-! libruby=`$vi_cv_path_ruby -r rbconfig -e "puts $ruby_rbconfig::CONFIG['LIBRUBY_SO']"`
- $as_echo "#define DYNAMIC_RUBY 1" >>confdefs.h
-
- RUBY_CFLAGS="-DDYNAMIC_RUBY_DLL=\\\"$libruby\\\" -DDYNAMIC_RUBY_VER=$rubyversion $RUBY_CFLAGS"
-*** ../vim-7.3.678/src/version.c 2012-10-03 18:49:55.000000000 +0200
---- src/version.c 2012-10-03 21:08:31.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 679,
- /**/
-
---
-Close your shells, or I'll kill -9 you
-Tomorrow I'll quota you
-Remember the disks'll always be full
-And then while I'm away
-I'll write ~ everyday
-And I'll send-pr all my buggings to you.
- [ CVS log "Beatles style" for FreeBSD ports/INDEX, Satoshi Asami ]
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.680
-Fcc: 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.680
-Problem: Some files missing in the list of distributed files.
-Solution: Add lines for new files.
-Files: Filelist
-
-
-*** ../vim-7.3.679/Filelist 2012-08-29 14:18:26.000000000 +0200
---- Filelist 2012-09-21 14:53:59.000000000 +0200
-***************
-*** 261,266 ****
---- 261,267 ----
- src/Make_mvc.mak \
- src/Make_w16.mak \
- src/bigvim.bat \
-+ src/bigvim64.bat \
- src/msvcsetup.bat \
- src/msvc2008.bat \
- src/msvc2010.bat \
-***************
-*** 352,357 ****
---- 353,359 ----
- src/xpm/COPYRIGHT \
- src/xpm/README.txt \
- src/xpm/include/*.h \
-+ src/xpm/x64/lib/libXpm.a \
- src/xpm/x64/lib/libXpm.lib \
- src/xpm/x86/lib/libXpm.a \
- src/xpm/x86/lib/libXpm.lib \
-***************
-*** 692,697 ****
---- 694,700 ----
- runtime/tutor/tutor.utf-8 \
- runtime/tutor/tutor.?? \
- runtime/tutor/tutor.??.* \
-+ runtime/tutor/tutor.??_??.* \
- runtime/tutor/tutor.bar \
- runtime/tutor/tutor.bar.* \
- runtime/spell/README.txt \
-*** ../vim-7.3.679/src/version.c 2012-10-03 21:09:33.000000000 +0200
---- src/version.c 2012-10-03 21:32:38.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 680,
- /**/
-
---
-So when I saw the post to comp.editors, I rushed over to the FTP site to
-grab it. So I yank apart the tarball, light x candles, where x= the
-vim version multiplied by the md5sum of the source divided by the MAC of
-my NIC (8A3FA78155A8A1D346C3C4A), put on black robes, dim the lights,
-wave a dead chicken over the hard drive, and summon the power of GNU GCC
-with the magic words "make config ; make!".
- [Jason Spence, compiling Vim 5.0]
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.681
-Fcc: 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.681 (after 7.3.680)
-Problem: List of distributed files picks up backup files.
-Solution: Make tutor patterns more specific.
-Files: Filelist
-
-
-*** ../vim-7.3.680/Filelist 2012-10-03 21:33:37.000000000 +0200
---- Filelist 2012-10-03 21:44:29.000000000 +0200
-***************
-*** 693,702 ****
- runtime/tutor/Makefile \
- runtime/tutor/tutor.utf-8 \
- runtime/tutor/tutor.?? \
-! runtime/tutor/tutor.??.* \
-! runtime/tutor/tutor.??_??.* \
- runtime/tutor/tutor.bar \
-! runtime/tutor/tutor.bar.* \
- runtime/spell/README.txt \
- runtime/spell/??/*.diff \
- runtime/spell/??/main.aap \
---- 693,709 ----
- runtime/tutor/Makefile \
- runtime/tutor/tutor.utf-8 \
- runtime/tutor/tutor.?? \
-! runtime/tutor/tutor.??.utf-8 \
-! runtime/tutor/tutor.??.euc \
-! runtime/tutor/tutor.??.sjis \
-! runtime/tutor/tutor.??.iso9 \
-! runtime/tutor/tutor.??.big5 \
-! runtime/tutor/tutor.??.cp1250 \
-! runtime/tutor/tutor.??.cp1251 \
-! runtime/tutor/tutor.??.cp737 \
-! runtime/tutor/tutor.??_??.utf-8 \
- runtime/tutor/tutor.bar \
-! runtime/tutor/tutor.bar.utf-8 \
- runtime/spell/README.txt \
- runtime/spell/??/*.diff \
- runtime/spell/??/main.aap \
-*** ../vim-7.3.680/src/version.c 2012-10-03 21:33:37.000000000 +0200
---- src/version.c 2012-10-03 21:48:04.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 681,
- /**/
-
---
-Zen Microsystems: we're the om in .commmmmmmmm
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.682
-Fcc: 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.682 (after 7.3.677)
-Problem: Compiler complains about incompatible types.
-Solution: Remove type casts. (hint by Danek Duvall)
-Files: src/edit.c
-
-
-*** ../vim-7.3.681/src/edit.c 2012-08-08 18:01:00.000000000 +0200
---- src/edit.c 2012-10-04 22:33:22.000000000 +0200
-***************
-*** 4194,4201 ****
- ins_buf->b_fname == NULL
- ? buf_spname(ins_buf)
- : ins_buf->b_sfname == NULL
-! ? (char *)ins_buf->b_fname
-! : (char *)ins_buf->b_sfname);
- (void)msg_trunc_attr(IObuff, TRUE, hl_attr(HLF_R));
- }
- else if (*e_cpt == NUL)
---- 4194,4201 ----
- ins_buf->b_fname == NULL
- ? buf_spname(ins_buf)
- : ins_buf->b_sfname == NULL
-! ? ins_buf->b_fname
-! : ins_buf->b_sfname);
- (void)msg_trunc_attr(IObuff, TRUE, hl_attr(HLF_R));
- }
- else if (*e_cpt == NUL)
-*** ../vim-7.3.681/src/version.c 2012-10-03 21:48:38.000000000 +0200
---- src/version.c 2012-10-04 22:36:15.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 682,
- /**/
-
---
-Dogs must have a permit signed by the mayor in order to congregate in groups
-of three or more on private property.
- [real standing law in Oklahoma, 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.683
-Fcc: 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.683
-Problem: ":python" may crash when vimbindeval() returns None.
-Solution: Check for v_string to be NULL. (Yukihiro Nakadaira)
-Files: src/if_py_both.h
-
-
-*** ../vim-7.3.682/src/if_py_both.h 2012-09-21 14:00:05.000000000 +0200
---- src/if_py_both.h 2012-10-05 21:05:06.000000000 +0200
-***************
-*** 351,357 ****
-
- if (our_tv->v_type == VAR_STRING)
- {
-! result = Py_BuildValue("s", our_tv->vval.v_string);
- }
- else if (our_tv->v_type == VAR_NUMBER)
- {
---- 351,358 ----
-
- if (our_tv->v_type == VAR_STRING)
- {
-! result = Py_BuildValue("s", our_tv->vval.v_string == NULL
-! ? "" : (char *)our_tv->vval.v_string);
- }
- else if (our_tv->v_type == VAR_NUMBER)
- {
-***************
-*** 2751,2757 ****
- switch (tv->v_type)
- {
- case VAR_STRING:
-! return PyBytes_FromString((char *) tv->vval.v_string);
- case VAR_NUMBER:
- return PyLong_FromLong((long) tv->vval.v_number);
- #ifdef FEAT_FLOAT
---- 2752,2759 ----
- switch (tv->v_type)
- {
- case VAR_STRING:
-! return PyBytes_FromString(tv->vval.v_string == NULL
-! ? "" : (char *)tv->vval.v_string);
- case VAR_NUMBER:
- return PyLong_FromLong((long) tv->vval.v_number);
- #ifdef FEAT_FLOAT
-***************
-*** 2763,2769 ****
- case VAR_DICT:
- return DictionaryNew(tv->vval.v_dict);
- case VAR_FUNC:
-! return FunctionNew(tv->vval.v_string);
- case VAR_UNKNOWN:
- Py_INCREF(Py_None);
- return Py_None;
---- 2765,2772 ----
- case VAR_DICT:
- return DictionaryNew(tv->vval.v_dict);
- case VAR_FUNC:
-! return FunctionNew(tv->vval.v_string == NULL
-! ? (char_u *)"" : tv->vval.v_string);
- case VAR_UNKNOWN:
- Py_INCREF(Py_None);
- return Py_None;
-*** ../vim-7.3.682/src/version.c 2012-10-04 22:38:32.000000000 +0200
---- src/version.c 2012-10-05 21:04:19.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 683,
- /**/
-
---
-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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.684
-Fcc: 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.684
-Problem: "make test" does not delete lua.vim.
-Solution: Add lua.vim to the clean target. (Simon Ruderich)
-Files: src/testdir/Makefile, src/testdir/Make_dos.mak,
- src/testdir/Make_ming.mak, src/testdir/Make_vms.mms
-
-
-*** ../vim-7.3.683/src/testdir/Makefile 2012-06-29 12:54:32.000000000 +0200
---- src/testdir/Makefile 2012-10-06 19:04:54.000000000 +0200
-***************
-*** 48,57 ****
- $(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
- $(VALGRIND) $(VIMPROG) -u unix.vim -U NONE --noplugin -s dotest.in $*.in
- @/bin/sh -c "if diff test.out $*.ok; \
- then mv -f test.out $*.out; \
---- 48,57 ----
- $(SCRIPTS) $(SCRIPTS_GUI): $(VIMPROG)
-
- clean:
-! -rm -rf *.out *.failed *.rej *.orig test.log tiny.vim small.vim mbyte.vim mzscheme.vim lua.vim test.ok X* valgrind.* viminfo
-
- test1.out: test1.in
-! -rm -f $*.failed tiny.vim small.vim mbyte.vim mzscheme.vim lua.vim test.ok X* viminfo
- $(VALGRIND) $(VIMPROG) -u unix.vim -U NONE --noplugin -s dotest.in $*.in
- @/bin/sh -c "if diff test.out $*.ok; \
- then mv -f test.out $*.out; \
-***************
-*** 73,79 ****
- fi \
- else echo $* NO OUTPUT >>test.log; \
- fi"
-! # -rm -rf X* test.ok viminfo
-
- test49.out: test49.vim
-
---- 73,79 ----
- fi \
- else echo $* NO OUTPUT >>test.log; \
- fi"
-! -rm -rf X* test.ok viminfo
-
- test49.out: test49.vim
-
-*** ../vim-7.3.683/src/testdir/Make_dos.mak 2012-06-29 12:54:32.000000000 +0200
---- src/testdir/Make_dos.mak 2012-10-06 19:04:02.000000000 +0200
-***************
-*** 62,67 ****
---- 62,68 ----
- -if exist tiny.vim del tiny.vim
- -if exist mbyte.vim del mbyte.vim
- -if exist mzscheme.vim del mzscheme.vim
-+ -if exist lua.vim del lua.vim
- -del X*
- -if exist viminfo del viminfo
-
-*** ../vim-7.3.683/src/testdir/Make_ming.mak 2012-06-29 12:54:32.000000000 +0200
---- src/testdir/Make_ming.mak 2012-10-06 19:04:08.000000000 +0200
-***************
-*** 85,90 ****
---- 85,91 ----
- -$(DEL) tiny.vim
- -$(DEL) mbyte.vim
- -$(DEL) mzscheme.vim
-+ -$(DEL) lua.vim
- -$(DEL) X*
- -$(DEL) viminfo
-
-*** ../vim-7.3.683/src/testdir/Make_vms.mms 2012-04-05 16:56:38.000000000 +0200
---- src/testdir/Make_vms.mms 2012-10-06 19:04:34.000000000 +0200
-***************
-*** 4,10 ****
- # Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
- # Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
- #
-! # Last change: 2012 Apr 05
- #
- # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
- # Edit the lines in the Configuration section below to select.
---- 4,10 ----
- # Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
- # Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
- #
-! # Last change: 2012 Oct 06
- #
- # 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.
-***************
-*** 184,188 ****
---- 184,189 ----
- -@ if "''F$SEARCH("small.vim")'" .NES. "" then delete/noconfirm/nolog small.vim.*
- -@ if "''F$SEARCH("mbyte.vim")'" .NES. "" then delete/noconfirm/nolog mbyte.vim.*
- -@ if "''F$SEARCH("mzscheme.vim")'" .NES. "" then delete/noconfirm/nolog mzscheme.vim.*
-+ -@ if "''F$SEARCH("lua.vim")'" .NES. "" then delete/noconfirm/nolog lua.vim.*
- -@ if "''F$SEARCH("viminfo.*")'" .NES. "" then delete/noconfirm/nolog viminfo.*.*
-
-*** ../vim-7.3.683/src/version.c 2012-10-05 21:30:04.000000000 +0200
---- src/version.c 2012-10-06 18:59:40.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 684,
- /**/
-
---
-ERIC IDLE PLAYED: THE DEAD COLLECTOR, MR BINT (A VILLAGE NE'ER-DO -WELL VERY
- KEEN ON BURNING WITCHES), SIR ROBIN, THE GUARD WHO DOESN'T
- HICOUGH BUT TRIES TO GET THINGS STRAIGHT, CONCORDE (SIR
- LAUNCELOT'S TRUSTY STEED), ROGER THE SHRUBBER (A SHRUBBER),
- BROTHER MAYNARD
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.685
-Fcc: 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.685
-Problem: No test for what patch 7.3.673 fixes.
-Solution: Add a test. (Christian Brabandt)
-Files: src/testdir/test53.in, src/testdir/test53.ok
-
-
-*** ../vim-7.3.684/src/testdir/test53.in 2012-09-05 12:16:40.000000000 +0200
---- src/testdir/test53.in 2012-10-11 03:31:27.000000000 +0200
-***************
-*** 42,47 ****
---- 42,50 ----
- gnd$h/\zs
- gnd/[u]niquepattern/s
- vlgnd
-+ /mother
-+ :set selection=exclusive
-+ $cgNmongoose
- :/^start:/,/^end:/wq! test.out
- ENDTEST
-
-***************
-*** 69,72 ****
---- 72,76 ----
- zero width pattern
- delete first and last chars
- uniquepattern uniquepattern
-+ my very excellent mother just served us nachos
- end:
-*** ../vim-7.3.684/src/testdir/test53.ok 2012-09-05 12:16:40.000000000 +0200
---- src/testdir/test53.ok 2012-10-11 03:31:33.000000000 +0200
-***************
-*** 25,28 ****
---- 25,29 ----
- zerowidth pattern
- elete first and last char
- uniquepattern
-+ my very excellent mongoose just served us nachos
- end:
-*** ../vim-7.3.684/src/version.c 2012-10-06 19:10:29.000000000 +0200
---- src/version.c 2012-10-11 03:34:06.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 685,
- /**/
-
---
-FATAL ERROR! SYSTEM HALTED! - Press any key to continue doing nothing.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.686
-Fcc: 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.686
-Problem: Using CTRL-\ e mappings is useful also when entering an
- expression, but it doesn't work. (Marcin Szamotulski)
-Solution: Allow using CTRL-\ e when entering an expression if it was not
- typed.
-Files: src/ex_getln.c
-
-
-*** ../vim-7.3.685/src/ex_getln.c 2012-08-15 14:04:50.000000000 +0200
---- src/ex_getln.c 2012-10-11 03:54:04.000000000 +0200
-***************
-*** 667,675 ****
- c = plain_vgetc();
- --no_mapping;
- --allow_keys;
-! /* CTRL-\ e doesn't work when obtaining an expression. */
-! if (c != Ctrl_N && c != Ctrl_G
-! && (c != 'e' || ccline.cmdfirstc == '='))
- {
- vungetc(c);
- c = Ctrl_BSL;
---- 667,676 ----
- c = plain_vgetc();
- --no_mapping;
- --allow_keys;
-! /* CTRL-\ e doesn't work when obtaining an expression, unless it
-! * is in a mapping. */
-! if (c != Ctrl_N && c != Ctrl_G && (c != 'e'
-! || (ccline.cmdfirstc == '=' && KeyTyped)))
- {
- vungetc(c);
- c = Ctrl_BSL;
-*** ../vim-7.3.685/src/version.c 2012-10-11 03:35:38.000000000 +0200
---- src/version.c 2012-10-11 04:03:19.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 686,
- /**/
-
---
-(letter from Mark to Mike, about the film's probable certificate)
- I would like to get back to the Censor and agree to lose the shits, take
- the odd Jesus Christ out and lose Oh fuck off, but to retain 'fart in
- your general direction', 'castanets of your testicles' and 'oral sex'
- and ask him for an 'A' rating on that basis.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.687
-Fcc: 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.687
-Problem: Test 16 fails when $DISPLAY is not set.
-Solution: Skip the test when $DISPLAY is not set.
-Files: src/testdir/test16.in
-
-
-*** ../vim-7.3.686/src/testdir/test16.in 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test16.in 2012-10-11 04:02:11.000000000 +0200
-***************
-*** 2,7 ****
---- 2,8 ----
- For KDE set a font, empty 'guifont' may cause a hang.
-
- STARTTEST
-+ :if $DISPLAY == "" | e! test.ok | wq! test.out | endif
- :set exrc secure
- :if has("gui_kde")
- : set guifont=Courier\ 10\ Pitch/8/-1/5/50/0/0/0/0/0
-*** ../vim-7.3.686/src/version.c 2012-10-11 04:04:32.000000000 +0200
---- src/version.c 2012-10-11 04:31:10.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 687,
- /**/
-
---
-A fool must search for a greater fool to find admiration.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.688
-Fcc: 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.688
-Problem: Python 3.3 is not supported.
-Solution: Add Python 3.3 support (Ken Takata)
-Files: src/if_python3.c
-
-
-*** ../vim-7.3.687/src/if_python3.c 2012-09-21 14:00:05.000000000 +0200
---- src/if_python3.c 2012-10-14 03:19:53.000000000 +0200
-***************
-*** 174,180 ****
- # define _PyObject_NextNotImplemented (*py3__PyObject_NextNotImplemented)
- # define PyModule_AddObject py3_PyModule_AddObject
- # define PyImport_AppendInittab py3_PyImport_AppendInittab
-! # define _PyUnicode_AsString py3__PyUnicode_AsString
- # undef PyUnicode_AsEncodedString
- # define PyUnicode_AsEncodedString py3_PyUnicode_AsEncodedString
- # undef PyBytes_AsString
---- 174,185 ----
- # define _PyObject_NextNotImplemented (*py3__PyObject_NextNotImplemented)
- # define PyModule_AddObject py3_PyModule_AddObject
- # define PyImport_AppendInittab py3_PyImport_AppendInittab
-! # if PY_VERSION_HEX >= 0x030300f0
-! # undef _PyUnicode_AsString
-! # define _PyUnicode_AsString py3_PyUnicode_AsUTF8String
-! # else
-! # define _PyUnicode_AsString py3__PyUnicode_AsString
-! # endif
- # undef PyUnicode_AsEncodedString
- # define PyUnicode_AsEncodedString py3_PyUnicode_AsEncodedString
- # undef PyBytes_AsString
-***************
-*** 281,287 ****
---- 286,296 ----
- static PyObject* py3__Py_TrueStruct;
- static int (*py3_PyModule_AddObject)(PyObject *m, const char *name, PyObject *o);
- static int (*py3_PyImport_AppendInittab)(const char *name, PyObject* (*initfunc)(void));
-+ #if PY_VERSION_HEX >= 0x030300f0
-+ static char* (*py3_PyUnicode_AsUTF8String)(PyObject *unicode);
-+ #else
- static char* (*py3__PyUnicode_AsString)(PyObject *unicode);
-+ #endif
- static PyObject* (*py3_PyUnicode_AsEncodedString)(PyObject *unicode, const char* encoding, const char* errors);
- static char* (*py3_PyBytes_AsString)(PyObject *bytes);
- static int (*py3_PyBytes_AsStringAndSize)(PyObject *bytes, char **buffer, int *length);
-***************
-*** 397,403 ****
---- 406,416 ----
- {"PyObject_Init", (PYTHON_PROC*)&py3__PyObject_Init},
- {"PyModule_AddObject", (PYTHON_PROC*)&py3_PyModule_AddObject},
- {"PyImport_AppendInittab", (PYTHON_PROC*)&py3_PyImport_AppendInittab},
-+ #if PY_VERSION_HEX >= 0x030300f0
-+ {"PyUnicode_AsUTF8String", (PYTHON_PROC*)&py3_PyUnicode_AsUTF8String},
-+ #else
- {"_PyUnicode_AsString", (PYTHON_PROC*)&py3__PyUnicode_AsString},
-+ #endif
- {"PyBytes_AsString", (PYTHON_PROC*)&py3_PyBytes_AsString},
- {"PyBytes_AsStringAndSize", (PYTHON_PROC*)&py3_PyBytes_AsStringAndSize},
- {"PyBytes_FromString", (PYTHON_PROC*)&py3_PyBytes_FromString},
-***************
-*** 490,495 ****
---- 503,514 ----
-
- /* Load unicode functions separately as only the ucs2 or the ucs4 functions
- * will be present in the library. */
-+ #if PY_VERSION_HEX >= 0x030300f0
-+ ucs_from_string = symbol_from_dll(hinstPy3, "PyUnicode_FromString");
-+ ucs_decode = symbol_from_dll(hinstPy3, "PyUnicode_Decode");
-+ ucs_as_encoded_string = symbol_from_dll(hinstPy3,
-+ "PyUnicode_AsEncodedString");
-+ #else
- ucs_from_string = symbol_from_dll(hinstPy3, "PyUnicodeUCS2_FromString");
- ucs_decode = symbol_from_dll(hinstPy3,
- "PyUnicodeUCS2_Decode");
-***************
-*** 504,509 ****
---- 523,529 ----
- ucs_as_encoded_string = symbol_from_dll(hinstPy3,
- "PyUnicodeUCS4_AsEncodedString");
- }
-+ #endif
- if (ucs_from_string && ucs_decode && ucs_as_encoded_string)
- {
- py3_PyUnicode_FromString = ucs_from_string;
-***************
-*** 600,607 ****
-
- #define GET_ATTR_STRING(name, nameobj) \
- char *name = ""; \
-! if(PyUnicode_Check(nameobj)) \
-! name = _PyUnicode_AsString(nameobj)
-
- #define PY3OBJ_DELETED(obj) (obj->ob_base.ob_refcnt<=0)
-
---- 620,627 ----
-
- #define GET_ATTR_STRING(name, nameobj) \
- char *name = ""; \
-! if (PyUnicode_Check(nameobj)) \
-! name = _PyUnicode_AsString(nameobj)
-
- #define PY3OBJ_DELETED(obj) (obj->ob_base.ob_refcnt<=0)
-
-***************
-*** 704,709 ****
---- 724,731 ----
- Py_SetPythonHome(PYTHON3_HOME);
- #endif
-
-+ PyImport_AppendInittab("vim", Py3Init_vim);
-+
- #if !defined(MACOS) || defined(MACOS_X_UNIX)
- Py_Initialize();
- #else
-***************
-*** 719,726 ****
- if (PythonIO_Init())
- goto fail;
-
-- PyImport_AppendInittab("vim", Py3Init_vim);
--
- globals = PyModule_GetDict(PyImport_AddModule("__main__"));
-
- /* Remove the element from sys.path that was added because of our
---- 741,746 ----
-*** ../vim-7.3.687/src/version.c 2012-10-11 04:44:26.000000000 +0200
---- src/version.c 2012-10-14 03:00:57.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 688,
- /**/
-
---
-The problem with political jokes is that they get elected.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.689
-Fcc: 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.689
-Problem: MzScheme and Lua may use a NULL string.
-Solution: Use an empty string instead of NULL. (Yukihiro Nakadaira)
-Files: src/if_lua.c, src/if_mzsch.c
-
-
-*** ../vim-7.3.688/src/if_lua.c 2012-06-29 12:54:32.000000000 +0200
---- src/if_lua.c 2012-10-14 03:33:32.000000000 +0200
-***************
-*** 464,470 ****
- switch (tv->v_type)
- {
- case VAR_STRING:
-! lua_pushstring(L, (char *) tv->vval.v_string);
- break;
- case VAR_NUMBER:
- lua_pushinteger(L, (int) tv->vval.v_number);
---- 464,471 ----
- switch (tv->v_type)
- {
- case VAR_STRING:
-! lua_pushstring(L, tv->vval.v_string == NULL
-! ? "" : (char *)tv->vval.v_string);
- break;
- case VAR_NUMBER:
- lua_pushinteger(L, (int) tv->vval.v_number);
-*** ../vim-7.3.688/src/if_mzsch.c 2012-02-12 01:55:50.000000000 +0100
---- src/if_mzsch.c 2012-10-14 03:33:32.000000000 +0200
-***************
-*** 2649,2655 ****
- new_value = FALSE;
- else if (vim_value->v_type == VAR_STRING)
- {
-! result = scheme_make_string((char *)vim_value->vval.v_string);
- MZ_GC_CHECK();
- }
- else if (vim_value->v_type == VAR_NUMBER)
---- 2649,2656 ----
- new_value = FALSE;
- else if (vim_value->v_type == VAR_STRING)
- {
-! result = scheme_make_string(vim_value->vval.v_string == NULL
-! ? "" : (char *)vim_value->vval.v_string);
- MZ_GC_CHECK();
- }
- else if (vim_value->v_type == VAR_NUMBER)
-*** ../vim-7.3.688/src/version.c 2012-10-14 03:22:49.000000000 +0200
---- src/version.c 2012-10-14 03:33:49.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 689,
- /**/
-
---
-Computers make very fast, very accurate, mistakes.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.690
-Fcc: 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.690
-Problem: When the current directory name is exactly the maximum path length
- Vim may crash.
-Solution: Only add "/" when there is room. (Danek Duvall)
-Files: src/os_unix.c
-
-
-*** ../vim-7.3.689/src/os_unix.c 2012-08-15 17:26:53.000000000 +0200
---- src/os_unix.c 2012-10-14 04:28:40.000000000 +0200
-***************
-*** 2512,2526 ****
- }
-
- l = STRLEN(buf);
-! if (l >= len)
-! retval = FAIL;
- #ifndef VMS
-! else
-! {
-! if (l > 0 && buf[l - 1] != '/' && *fname != NUL
- && STRCMP(fname, ".") != 0)
-! STRCAT(buf, "/");
-! }
- #endif
- }
-
---- 2512,2523 ----
- }
-
- l = STRLEN(buf);
-! if (l >= len - 1)
-! retval = FAIL; /* no space for trailing "/" */
- #ifndef VMS
-! else if (l > 0 && buf[l - 1] != '/' && *fname != NUL
- && STRCMP(fname, ".") != 0)
-! STRCAT(buf, "/");
- #endif
- }
-
-*** ../vim-7.3.689/src/version.c 2012-10-14 03:41:54.000000000 +0200
---- src/version.c 2012-10-14 04:26:17.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 690,
- /**/
-
---
-SOLDIER: What? Ridden on a horse?
-ARTHUR: Yes!
-SOLDIER: You're using coconuts!
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.691
-Fcc: 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.691
-Problem: State specific to the Python thread is discarded.
-Solution: Keep state between threads. (Paul)
-Files: src/if_python.c
-
-
-*** ../vim-7.3.690/src/if_python.c 2012-09-21 14:00:05.000000000 +0200
---- src/if_python.c 2012-10-14 05:19:44.000000000 +0200
-***************
-*** 740,748 ****
- #else
- PyMac_Initialize();
- #endif
-! /* initialise threads */
- PyEval_InitThreads();
-!
- #ifdef DYNAMIC_PYTHON
- get_exceptions();
- #endif
---- 740,750 ----
- #else
- PyMac_Initialize();
- #endif
-! /* Initialise threads and save the state using PyGILState_Ensure.
-! * Without this call, thread-specific state (such as the system trace
-! * hook), will be lost between invocations of Python code. */
- PyEval_InitThreads();
-! pygilstate = PyGILState_Ensure();
- #ifdef DYNAMIC_PYTHON
- get_exceptions();
- #endif
-*** ../vim-7.3.690/src/version.c 2012-10-14 04:35:16.000000000 +0200
---- src/version.c 2012-10-14 05:14:35.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 691,
- /**/
-
---
-ARTHUR: The swallow may fly south with the sun, or the house martin or the
- plover seek warmer hot lands in winter, yet these are not strangers to
- our land.
-SOLDIER: Are you suggesting coconuts migrate?
- "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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.692
-Fcc: 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.692
-Problem: Can't build GTK version with GTK 2.0.
-Solution: Put GtkFileFilter declaration in the right place. (Yegappan
- Lakshmanan)
-Files: src/gui_gtk.c
-
-
-*** ../vim-7.3.691/src/gui_gtk.c 2012-07-10 13:41:09.000000000 +0200
---- src/gui_gtk.c 2012-10-18 05:12:34.000000000 +0200
-***************
-*** 845,851 ****
- char_u dirbuf[MAXPATHL];
- guint log_handler;
- const gchar *domain = "Gtk";
-- GtkFileFilter *gfilter;
-
- title = CONVERT_TO_UTF8(title);
-
---- 845,850 ----
-***************
-*** 883,888 ****
---- 882,888 ----
- int i = 0;
- char_u *patt;
- char_u *p = filter;
-+ GtkFileFilter *gfilter;
-
- gfilter = gtk_file_filter_new();
- patt = alloc(STRLEN(filter));
-*** ../vim-7.3.691/src/version.c 2012-10-14 05:20:05.000000000 +0200
---- src/version.c 2012-10-18 05:13:55.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 692,
- /**/
-
---
-"The future's already arrived - it's just not evenly distributed yet."
- -- William Gibson
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.693
-Fcc: 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.693
-Problem: Can't make 'softtabstop' follow 'shiftwidth'.
-Solution: When 'softtabstop' is negative use the value of 'shiftwidth'.
- (so8res)
-Files: src/edit.c, src/option.c, src/proto/option.pro
-
-
-*** ../vim-7.3.692/src/edit.c 2012-10-04 22:38:32.000000000 +0200
---- src/edit.c 2012-10-21 00:01:53.000000000 +0200
-***************
-*** 8885,8891 ****
- */
- if ( mode == BACKSPACE_CHAR
- && ((p_sta && in_indent)
-! || (curbuf->b_p_sts != 0
- && curwin->w_cursor.col > 0
- && (*(ml_get_cursor() - 1) == TAB
- || (*(ml_get_cursor() - 1) == ' '
---- 8885,8891 ----
- */
- if ( mode == BACKSPACE_CHAR
- && ((p_sta && in_indent)
-! || (get_sts_value() != 0
- && curwin->w_cursor.col > 0
- && (*(ml_get_cursor() - 1) == TAB
- || (*(ml_get_cursor() - 1) == ' '
-***************
-*** 8901,8907 ****
- if (p_sta && in_indent)
- ts = (int)get_sw_value();
- else
-! ts = (int)curbuf->b_p_sts;
- /* Compute the virtual column where we want to be. Since
- * 'showbreak' may get in the way, need to get the last column of
- * the previous character. */
---- 8901,8907 ----
- if (p_sta && in_indent)
- ts = (int)get_sw_value();
- else
-! ts = (int)get_sts_value();
- /* Compute the virtual column where we want to be. Since
- * 'showbreak' may get in the way, need to get the last column of
- * the previous character. */
-***************
-*** 9590,9596 ****
- */
- if (!curbuf->b_p_et
- && !(p_sta && ind && curbuf->b_p_ts != get_sw_value())
-! && curbuf->b_p_sts == 0)
- return TRUE;
-
- if (stop_arrow() == FAIL)
---- 9590,9596 ----
- */
- if (!curbuf->b_p_et
- && !(p_sta && ind && curbuf->b_p_ts != get_sw_value())
-! && get_sts_value() == 0)
- return TRUE;
-
- if (stop_arrow() == FAIL)
-***************
-*** 9606,9613 ****
-
- if (p_sta && ind) /* insert tab in indent, use 'shiftwidth' */
- temp = (int)get_sw_value();
-! else if (curbuf->b_p_sts > 0) /* use 'softtabstop' when set */
-! temp = (int)curbuf->b_p_sts;
- else /* otherwise use 'tabstop' */
- temp = (int)curbuf->b_p_ts;
- temp -= get_nolist_virtcol() % temp;
---- 9606,9613 ----
-
- if (p_sta && ind) /* insert tab in indent, use 'shiftwidth' */
- temp = (int)get_sw_value();
-! else if (curbuf->b_p_sts != 0) /* use 'softtabstop' when set */
-! temp = (int)get_sts_value();
- else /* otherwise use 'tabstop' */
- temp = (int)curbuf->b_p_ts;
- temp -= get_nolist_virtcol() % temp;
-***************
-*** 9635,9641 ****
- /*
- * When 'expandtab' not set: Replace spaces by TABs where possible.
- */
-! if (!curbuf->b_p_et && (curbuf->b_p_sts || (p_sta && ind)))
- {
- char_u *ptr;
- #ifdef FEAT_VREPLACE
---- 9635,9641 ----
- /*
- * When 'expandtab' not set: Replace spaces by TABs where possible.
- */
-! if (!curbuf->b_p_et && (get_sts_value() || (p_sta && ind)))
- {
- char_u *ptr;
- #ifdef FEAT_VREPLACE
-*** ../vim-7.3.692/src/option.c 2012-08-08 18:01:00.000000000 +0200
---- src/option.c 2012-10-21 00:05:06.000000000 +0200
-***************
-*** 8509,8519 ****
- p_window = Rows - 1;
- }
-
-- if (curbuf->b_p_sts < 0)
-- {
-- errmsg = e_positive;
-- curbuf->b_p_sts = 0;
-- }
- if (curbuf->b_p_ts <= 0)
- {
- errmsg = e_positive;
---- 8509,8514 ----
-***************
-*** 11429,11431 ****
---- 11424,11436 ----
- {
- return curbuf->b_p_sw ? curbuf->b_p_sw : curbuf->b_p_ts;
- }
-+
-+ /*
-+ * Return the effective softtabstop value for the current buffer, using the
-+ * 'tabstop' value when 'softtabstop' is negative.
-+ */
-+ long
-+ get_sts_value()
-+ {
-+ return curbuf->b_p_sts < 0 ? get_sw_value() : curbuf->b_p_sts;
-+ }
-*** ../vim-7.3.692/src/proto/option.pro 2012-08-08 18:01:00.000000000 +0200
---- src/proto/option.pro 2012-10-21 00:01:59.000000000 +0200
-***************
-*** 57,60 ****
---- 57,61 ----
- int file_ff_differs __ARGS((buf_T *buf, int ignore_empty));
- int check_ff_value __ARGS((char_u *p));
- long get_sw_value __ARGS((void));
-+ long get_sts_value __ARGS((void));
- /* vim: set ft=c : */
-*** ../vim-7.3.692/src/version.c 2012-10-18 05:18:27.000000000 +0200
---- src/version.c 2012-10-21 00:07:19.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 693,
- /**/
-
---
-FIRST VILLAGER: We have found a witch. May we burn her?
- "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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.694
-Fcc: 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.694
-Problem: Now that 'shiftwidth' may use the value of 'tabstop' it is not so
- easy to use in indent files.
-Solution: Add the shiftwidth() function. (so8res)
-Files: runtime/doc/eval.txt, src/eval.c
-
-
-*** ../vim-7.3.693/runtime/doc/eval.txt 2012-06-29 12:54:32.000000000 +0200
---- runtime/doc/eval.txt 2012-10-21 00:43:22.000000000 +0200
-***************
-*** 1921,1926 ****
---- 1932,1938 ----
- shellescape( {string} [, {special}])
- String escape {string} for use as shell
- command argument
-+ shiftwidth() Number effective value of 'shiftwidth'
- simplify( {filename}) String simplify filename as much as possible
- sin( {expr}) Float sine of {expr}
- sinh( {expr}) Float hyperbolic sine of {expr}
-***************
-*** 3732,3741 ****
- Like |input()|, but when the GUI is running and text dialogs
- are supported, a dialog window pops up to input the text.
- Example: >
-! :let n = inputdialog("value for shiftwidth", &sw)
-! :if n != ""
-! : let &sw = n
-! :endif
- < When the dialog is cancelled {cancelreturn} is returned. When
- omitted an empty string is returned.
- Hitting <Enter> works like pressing the OK button. Hitting
---- 3755,3764 ----
- Like |input()|, but when the GUI is running and text dialogs
- are supported, a dialog window pops up to input the text.
- Example: >
-! :let n = inputdialog("value for shiftwidth", shiftwidth())
-! :if n != ""
-! : let &sw = n
-! :endif
- < When the dialog is cancelled {cancelreturn} is returned. When
- omitted an empty string is returned.
- Hitting <Enter> works like pressing the OK button. Hitting
-***************
-*** 5308,5313 ****
---- 5332,5354 ----
- :call system("chmod +w -- " . shellescape(expand("%")))
-
-
-+ shiftwidth() *shiftwidth()*
-+ Returns the effective value of 'shiftwidth'. This is the
-+ 'shiftwidth' value unless it is zero, in which case it is the
-+ 'tabstop' value. To be backwards compatible in indent
-+ plugins, use this: >
-+ if exists('*shiftwidth')
-+ func s:sw()
-+ return shiftwidth()
-+ endfunc
-+ else
-+ func s:sw()
-+ return &sw
-+ endfunc
-+ endif
-+ < And then use s:sw() instead of &sw.
-+
-+
- simplify({filename}) *simplify()*
- Simplify the file name as much as possible without changing
- the meaning. Shortcuts (on MS-Windows) or symbolic links (on
-*** ../vim-7.3.693/src/eval.c 2012-08-08 14:33:16.000000000 +0200
---- src/eval.c 2012-10-21 00:29:15.000000000 +0200
-***************
-*** 687,692 ****
---- 687,693 ----
- static void f_settabwinvar __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_setwinvar __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_shellescape __ARGS((typval_T *argvars, typval_T *rettv));
-+ static void f_shiftwidth __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_simplify __ARGS((typval_T *argvars, typval_T *rettv));
- #ifdef FEAT_FLOAT
- static void f_sin __ARGS((typval_T *argvars, typval_T *rettv));
-***************
-*** 8051,8056 ****
---- 8052,8058 ----
- {"settabwinvar", 4, 4, f_settabwinvar},
- {"setwinvar", 3, 3, f_setwinvar},
- {"shellescape", 1, 2, f_shellescape},
-+ {"shiftwidth", 0, 0, f_shiftwidth},
- {"simplify", 1, 1, f_simplify},
- #ifdef FEAT_FLOAT
- {"sin", 1, 1, f_sin},
-***************
-*** 16652,16657 ****
---- 16654,16670 ----
- }
-
- /*
-+ * shiftwidth() function
-+ */
-+ static void
-+ f_shiftwidth(argvars, rettv)
-+ typval_T *argvars;
-+ typval_T *rettv;
-+ {
-+ rettv->vval.v_number = get_sw_value();
-+ }
-+
-+ /*
- * "simplify()" function
- */
- static void
-*** ../vim-7.3.693/src/version.c 2012-10-21 00:10:29.000000000 +0200
---- src/version.c 2012-10-21 00:30:27.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 694,
- /**/
-
---
-CRONE: Who sent you?
-ARTHUR: The Knights Who Say GNU!
-CRONE: Aaaagh! (she looks around in rear) No! We have no licenses here.
- "Monty Python and the Holy editor wars" PYTHON (MONTY) SOFTWARE LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.695
-Fcc: 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.695
-Problem: Balloon cannot show multi-byte text.
-Solution: Properly deal with multi-byte characters. (Dominique Pelle)
-Files: src/gui_beval.c, src/ui.c
-
-
-*** ../vim-7.3.694/src/gui_beval.c 2010-08-15 21:57:28.000000000 +0200
---- src/gui_beval.c 2012-10-21 00:54:19.000000000 +0200
-***************
-*** 359,365 ****
- }
- }
-
-! col = vcol2col(wp, lnum, col) - 1;
-
- if (VIsual_active
- && wp->w_buffer == curwin->w_buffer
---- 359,365 ----
- }
- }
-
-! col = vcol2col(wp, lnum, col);
-
- if (VIsual_active
- && wp->w_buffer == curwin->w_buffer
-***************
-*** 377,384 ****
- return FAIL;
-
- lbuf = ml_get_buf(curwin->w_buffer, VIsual.lnum, FALSE);
-! lbuf = vim_strnsave(lbuf + spos->col,
-! epos->col - spos->col + (*p_sel != 'e'));
- lnum = spos->lnum;
- col = spos->col;
- }
---- 377,386 ----
- return FAIL;
-
- lbuf = ml_get_buf(curwin->w_buffer, VIsual.lnum, FALSE);
-! len = epos->col - spos->col;
-! if (*p_sel != 'e')
-! len += MB_PTR2LEN(lbuf + epos->col);
-! lbuf = vim_strnsave(lbuf + spos->col, len);
- lnum = spos->lnum;
- col = spos->col;
- }
-*** ../vim-7.3.694/src/ui.c 2012-08-29 16:26:01.000000000 +0200
---- src/ui.c 2012-10-21 00:50:17.000000000 +0200
-***************
-*** 98,104 ****
- #endif
-
- /*
-! * ui_inchar(): low level input funcion.
- * Get characters from the keyboard.
- * Return the number of characters that are available.
- * If "wtime" == 0 do not wait for characters.
---- 98,104 ----
- #endif
-
- /*
-! * ui_inchar(): low level input function.
- * Get characters from the keyboard.
- * Return the number of characters that are available.
- * If "wtime" == 0 do not wait for characters.
-***************
-*** 493,499 ****
- }
- }
- #else
-! /* Only own the clibpard when we didn't own it yet. */
- if (!cbd->owned && cbd->available)
- cbd->owned = (clip_gen_own_selection(cbd) == OK);
- #endif
---- 493,499 ----
- }
- }
- #else
-! /* Only own the clipboard when we didn't own it yet. */
- if (!cbd->owned && cbd->available)
- cbd->owned = (clip_gen_own_selection(cbd) == OK);
- #endif
-***************
-*** 3132,3138 ****
- char_u *start;
-
- start = ptr = ml_get_buf(wp->w_buffer, lnum, FALSE);
-! while (count <= vcol && *ptr != NUL)
- {
- count += win_lbr_chartabsize(wp, ptr, count, NULL);
- mb_ptr_adv(ptr);
---- 3132,3138 ----
- char_u *start;
-
- start = ptr = ml_get_buf(wp->w_buffer, lnum, FALSE);
-! while (count < vcol && *ptr != NUL)
- {
- count += win_lbr_chartabsize(wp, ptr, count, NULL);
- mb_ptr_adv(ptr);
-*** ../vim-7.3.694/src/version.c 2012-10-21 00:44:59.000000000 +0200
---- src/version.c 2012-10-21 00:50:32.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 695,
- /**/
-
---
-BEDEVERE: Why do you think she is a witch?
-SECOND VILLAGER: She turned me into a newt.
-BEDEVERE: A newt?
-SECOND VILLAGER: (After looking at himself for some time) I got better.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.696
-Fcc: 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.696
-Problem: Message about added spell language can be wrong.
-Solution: Give correct message. Add g:menutrans_set_lang_to to allow for
- translation. (Jiri Sedlak)
-Files: runtime/menu.vim
-
-
-*** ../vim-7.3.695/runtime/menu.vim 2010-08-15 21:57:11.000000000 +0200
---- runtime/menu.vim 2012-10-21 01:17:27.000000000 +0200
-***************
-*** 434,439 ****
---- 434,443 ----
- let enc = &enc
- endif
-
-+ if !exists("g:menutrans_set_lang_to")
-+ let g:menutrans_set_lang_to = 'Set language to'
-+ endif
-+
- let found = 0
- let s = globpath(&rtp, "spell/*." . enc . ".spl")
- if s != ""
-***************
-*** 441,448 ****
- for f in split(s, "\n")
- let nm = substitute(f, '.*spell[/\\]\(..\)\.[^/\\]*\.spl', '\1', "")
- if nm != "en" && nm !~ '/'
- let found += 1
-! let menuname = '&Tools.&Spelling.Set\ language\ to\ "' . nm . '"'
- exe 'an 40.335.' . n . ' ' . menuname . ' :set spl=' . nm . ' spell<CR>'
- let s:undo_spellang += ['aun ' . menuname]
- endif
---- 445,453 ----
- for f in split(s, "\n")
- let nm = substitute(f, '.*spell[/\\]\(..\)\.[^/\\]*\.spl', '\1', "")
- if nm != "en" && nm !~ '/'
-+ let _nm = nm
- let found += 1
-! let menuname = '&Tools.&Spelling.' . escape(g:menutrans_set_lang_to, "\\. \t|") . '\ "' . nm . '"'
- exe 'an 40.335.' . n . ' ' . menuname . ' :set spl=' . nm . ' spell<CR>'
- let s:undo_spellang += ['aun ' . menuname]
- endif
-***************
-*** 452,458 ****
- if found == 0
- echomsg "Could not find other spell files"
- elseif found == 1
-! echomsg "Found spell file " . nm
- else
- echomsg "Found " . found . " more spell files"
- endif
---- 457,463 ----
- if found == 0
- echomsg "Could not find other spell files"
- elseif found == 1
-! echomsg "Found spell file " . _nm
- else
- echomsg "Found " . found . " more spell files"
- endif
-*** ../vim-7.3.695/src/version.c 2012-10-21 00:58:34.000000000 +0200
---- src/version.c 2012-10-21 01:15:00.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 696,
- /**/
-
---
-BEDEVERE: And what do you burn, apart from witches?
-FOURTH VILLAGER: ... Wood?
-BEDEVERE: So why do witches burn?
-SECOND VILLAGER: (pianissimo) ... Because they're made of wood...?
- "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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.697
-Fcc: 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.697
-Problem: Leaking resources when setting GUI font.
-Solution: Free the font. (Ken Takata)
-Files: src/syntax.c
-
-
-*** ../vim-7.3.696/src/syntax.c 2012-07-19 17:39:01.000000000 +0200
---- src/syntax.c 2012-10-21 01:37:19.000000000 +0200
-***************
-*** 105,111 ****
- # ifdef FEAT_XFONTSET
- static GuiFontset fontset_name2handle __ARGS((char_u *name, int fixed_width));
- # endif
-! static void hl_do_font __ARGS((int idx, char_u *arg, int do_normal, int do_menu, int do_tooltip));
- #endif
-
- /*
---- 105,111 ----
- # ifdef FEAT_XFONTSET
- static GuiFontset fontset_name2handle __ARGS((char_u *name, int fixed_width));
- # endif
-! static void hl_do_font __ARGS((int idx, char_u *arg, int do_normal, int do_menu, int do_tooltip, int free_font));
- #endif
-
- /*
-***************
-*** 7259,7272 ****
- HL_TABLE()[idx].sg_fontset = NOFONTSET;
- # endif
- hl_do_font(idx, arg, is_normal_group, is_menu_group,
-! is_tooltip_group);
-
- # ifdef FEAT_XFONTSET
- if (HL_TABLE()[idx].sg_fontset != NOFONTSET)
- {
-! /* New fontset was accepted. Free the old one, if there was
-! * one.
-! */
- gui_mch_free_fontset(temp_sg_fontset);
- vim_free(HL_TABLE()[idx].sg_font_name);
- HL_TABLE()[idx].sg_font_name = vim_strsave(arg);
---- 7259,7271 ----
- HL_TABLE()[idx].sg_fontset = NOFONTSET;
- # endif
- hl_do_font(idx, arg, is_normal_group, is_menu_group,
-! is_tooltip_group, FALSE);
-
- # ifdef FEAT_XFONTSET
- if (HL_TABLE()[idx].sg_fontset != NOFONTSET)
- {
-! /* New fontset was accepted. Free the old one, if there
-! * was one. */
- gui_mch_free_fontset(temp_sg_fontset);
- vim_free(HL_TABLE()[idx].sg_font_name);
- HL_TABLE()[idx].sg_font_name = vim_strsave(arg);
-***************
-*** 7277,7284 ****
- if (HL_TABLE()[idx].sg_font != NOFONT)
- {
- /* New font was accepted. Free the old one, if there was
-! * one.
-! */
- gui_mch_free_font(temp_sg_font);
- vim_free(HL_TABLE()[idx].sg_font_name);
- HL_TABLE()[idx].sg_font_name = vim_strsave(arg);
---- 7276,7282 ----
- if (HL_TABLE()[idx].sg_font != NOFONT)
- {
- /* New font was accepted. Free the old one, if there was
-! * one. */
- gui_mch_free_font(temp_sg_font);
- vim_free(HL_TABLE()[idx].sg_font_name);
- HL_TABLE()[idx].sg_font_name = vim_strsave(arg);
-***************
-*** 8064,8075 ****
- * Get the font or fontset for one highlight group.
- */
- static void
-! hl_do_font(idx, arg, do_normal, do_menu, do_tooltip)
- int idx;
- char_u *arg;
- int do_normal; /* set normal font */
- int do_menu UNUSED; /* set menu font */
- int do_tooltip UNUSED; /* set tooltip font */
- {
- # ifdef FEAT_XFONTSET
- /* If 'guifontset' is not empty, first try using the name as a
---- 8062,8074 ----
- * Get the font or fontset for one highlight group.
- */
- static void
-! hl_do_font(idx, arg, do_normal, do_menu, do_tooltip, free_font)
- int idx;
- char_u *arg;
- int do_normal; /* set normal font */
- int do_menu UNUSED; /* set menu font */
- int do_tooltip UNUSED; /* set tooltip font */
-+ int free_font; /* free current font/fontset */
- {
- # ifdef FEAT_XFONTSET
- /* If 'guifontset' is not empty, first try using the name as a
-***************
-*** 8083,8088 ****
---- 8082,8089 ----
- || do_tooltip
- # endif
- )
-+ if (free_fontset)
-+ gui_mch_free_fontset(HL_TABLE()[idx].sg_fontset);
- HL_TABLE()[idx].sg_fontset = fontset_name2handle(arg, 0
- # ifdef FONTSET_ALWAYS
- || do_menu
-***************
-*** 8093,8100 ****
- );
- if (HL_TABLE()[idx].sg_fontset != NOFONTSET)
- {
-! /* If it worked and it's the Normal group, use it as the
-! * normal fontset. Same for the Menu group. */
- if (do_normal)
- gui_init_font(arg, TRUE);
- # if (defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA)) && defined(FEAT_MENU)
---- 8094,8101 ----
- );
- if (HL_TABLE()[idx].sg_fontset != NOFONTSET)
- {
-! /* If it worked and it's the Normal group, use it as the normal
-! * fontset. Same for the Menu group. */
- if (do_normal)
- gui_init_font(arg, TRUE);
- # if (defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA)) && defined(FEAT_MENU)
-***************
-*** 8126,8131 ****
---- 8127,8134 ----
- else
- # endif
- {
-+ if (free_font)
-+ gui_mch_free_font(HL_TABLE()[idx].sg_font);
- HL_TABLE()[idx].sg_font = font_name2handle(arg);
- /* If it worked and it's the Normal group, use it as the
- * normal font. Same for the Menu group. */
-***************
-*** 9162,9168 ****
- if (HL_TABLE()[idx].sg_font_name != NULL)
- {
- hl_do_font(idx, HL_TABLE()[idx].sg_font_name, FALSE, do_menu,
-! do_tooltip);
- didit = TRUE;
- }
- if (HL_TABLE()[idx].sg_gui_fg_name != NULL)
---- 9165,9171 ----
- if (HL_TABLE()[idx].sg_font_name != NULL)
- {
- hl_do_font(idx, HL_TABLE()[idx].sg_font_name, FALSE, do_menu,
-! do_tooltip, TRUE);
- didit = TRUE;
- }
- if (HL_TABLE()[idx].sg_gui_fg_name != NULL)
-*** ../vim-7.3.696/src/version.c 2012-10-21 01:21:53.000000000 +0200
---- src/version.c 2012-10-21 01:27:55.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 697,
- /**/
-
---
-BEDEVERE: Wait. Wait ... tell me, what also floats on water?
-ALL: Bread? No, no, no. Apples .... gravy ... very small rocks ...
-ARTHUR: A duck.
- "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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.698
-Fcc: 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.698
-Problem: Python 3 does not preserve state beween commands.
-Solution: Preserve the state. (Paul Ollis)
-Files: src/if_python.c, src/if_python3.c
-
-
-*** ../vim-7.3.697/src/if_python.c 2012-10-14 05:20:05.000000000 +0200
---- src/if_python.c 2012-10-21 01:44:10.000000000 +0200
-***************
-*** 740,748 ****
- #else
- PyMac_Initialize();
- #endif
-! /* Initialise threads and save the state using PyGILState_Ensure.
-! * Without this call, thread-specific state (such as the system trace
-! * hook), will be lost between invocations of Python code. */
- PyEval_InitThreads();
- pygilstate = PyGILState_Ensure();
- #ifdef DYNAMIC_PYTHON
---- 740,749 ----
- #else
- PyMac_Initialize();
- #endif
-! /* Initialise threads, and save the state using PyGILState_Ensure.
-! * Without the call to PyGILState_Ensure, thread specific state (such
-! * as the system trace hook), will be lost between invocations of
-! * Python code. */
- PyEval_InitThreads();
- pygilstate = PyGILState_Ensure();
- #ifdef DYNAMIC_PYTHON
-*** ../vim-7.3.697/src/if_python3.c 2012-10-14 03:22:49.000000000 +0200
---- src/if_python3.c 2012-10-21 01:44:37.000000000 +0200
-***************
-*** 731,738 ****
- #else
- PyMac_Initialize();
- #endif
-! /* initialise threads, must be after Py_Initialize() */
- PyEval_InitThreads();
-
- #ifdef DYNAMIC_PYTHON3
- get_py3_exceptions();
---- 731,742 ----
- #else
- PyMac_Initialize();
- #endif
-! /* Initialise threads, and save the state using PyGILState_Ensure.
-! * Without the call to PyGILState_Ensure, thread specific state (such
-! * as the system trace hook), will be lost between invocations of
-! * Python code. */
- PyEval_InitThreads();
-+ pygilstate = PyGILState_Ensure();
-
- #ifdef DYNAMIC_PYTHON3
- get_py3_exceptions();
-*** ../vim-7.3.697/src/version.c 2012-10-21 01:40:24.000000000 +0200
---- src/version.c 2012-10-21 01:42:44.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 698,
- /**/
-
---
-ALL: A witch! A witch!
-WITCH: It's a fair cop.
-ALL: Burn her! Burn her! Let's make her into a ladder.
- "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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.699
-Fcc: 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.699
-Problem: When 'ttymouse' is set to "sgr" manually, it is overruled by
- automatic detection.
-Solution: Do not use automatic detection when 'ttymouse' was set manually.
- (Hayaki Saito)
-Files: src/term.c
-
-
-*** ../vim-7.3.698/src/term.c 2012-08-29 16:26:01.000000000 +0200
---- src/term.c 2012-10-21 02:07:25.000000000 +0200
-***************
-*** 4079,4102 ****
-
- if (tp[1 + (tp[0] != CSI)] == '>' && j == 2)
- {
- # ifdef TTYM_SGR
-! if (extra >= 277
-! # ifdef TTYM_URXVT
-! && ttym_flags != TTYM_URXVT
-! # endif
-! )
-! set_option_value((char_u *)"ttym", 0L,
- (char_u *)"sgr", 0);
-! else
- # endif
-! /* if xterm version >= 95 use mouse dragging */
-! if (extra >= 95
-! # ifdef TTYM_URXVT
-! && ttym_flags != TTYM_URXVT
-! # endif
-! )
-! set_option_value((char_u *)"ttym", 0L,
- (char_u *)"xterm2", 0);
- /* if xterm version >= 141 try to get termcap codes */
- if (extra >= 141)
- {
---- 4079,4100 ----
-
- if (tp[1 + (tp[0] != CSI)] == '>' && j == 2)
- {
-+ /* Only set 'ttymouse' automatically if it was not set
-+ * by the user already. */
-+ if (!option_was_set((char_u *)"ttym"))
-+ {
- # ifdef TTYM_SGR
-! if (extra >= 277)
-! set_option_value((char_u *)"ttym", 0L,
- (char_u *)"sgr", 0);
-! else
- # endif
-! /* if xterm version >= 95 use mouse dragging */
-! if (extra >= 95)
-! set_option_value((char_u *)"ttym", 0L,
- (char_u *)"xterm2", 0);
-+ }
-+
- /* if xterm version >= 141 try to get termcap codes */
- if (extra >= 141)
- {
-*** ../vim-7.3.698/src/version.c 2012-10-21 01:46:56.000000000 +0200
---- src/version.c 2012-10-21 02:09:17.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 699,
- /**/
-
---
-Never under any circumstances take a sleeping pill
-and a laxative on the same night.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.700
-Fcc: 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.700
-Problem: Cannot detect URXVT and SGR mouse support.
-Solution: add +mouse_urxvt and +mouse_sgr. (Hayaki Saito)
-Files: src/feature.h, src/eval.c
-
-
-*** ../vim-7.3.699/src/feature.h 2012-08-15 16:20:59.000000000 +0200
---- src/feature.h 2012-10-21 02:13:36.000000000 +0200
-***************
-*** 1038,1045 ****
---- 1038,1047 ----
- * +mouse_gpm Unix only: Include code for Linux console mouse
- * handling.
- * +mouse_pterm PTerm mouse support for QNX
-+ * +mouse_sgr Unix only: Include code for for SGR-styled mouse.
- * +mouse_sysmouse Unix only: Include code for FreeBSD and DragonFly
- * console mouse handling.
-+ * +mouse_urxvt Unix only: Include code for for urxvt mosue handling.
- * +mouse Any mouse support (any of the above enabled).
- */
- /* OS/2 and Amiga console have no mouse support */
-*** ../vim-7.3.699/src/eval.c 2012-10-21 00:44:59.000000000 +0200
---- src/eval.c 2012-10-21 02:12:48.000000000 +0200
-***************
-*** 12276,12284 ****
---- 12276,12290 ----
- # ifdef FEAT_MOUSE_PTERM
- "mouse_pterm",
- # endif
-+ # ifdef FEAT_MOUSE_SGR
-+ "mouse_sgr",
-+ # endif
- # ifdef FEAT_SYSMOUSE
- "mouse_sysmouse",
- # endif
-+ # ifdef FEAT_MOUSE_URXVT
-+ "mouse_urxvt",
-+ # endif
- # ifdef FEAT_MOUSE_XTERM
- "mouse_xterm",
- # endif
-*** ../vim-7.3.699/src/version.c 2012-10-21 02:10:20.000000000 +0200
---- src/version.c 2012-10-21 02:15:32.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 700,
- /**/
-
---
-If you had to identify, in one word, the reason why the
-human race has not achieved, and never will achieve, its
-full potential, that word would be "meetings."
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.701
-Fcc: 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.701
-Problem: MS-Windows: Crash with stack overflow when setting 'encoding'.
-Solution: Handle that loading the iconv library may be called recursively.
- (Jiri Sedlak)
-Files: src/os_win32.c
-
-
-*** ../vim-7.3.700/src/os_win32.c 2012-08-02 12:31:40.000000000 +0200
---- src/os_win32.c 2012-10-21 02:35:21.000000000 +0200
-***************
-*** 288,305 ****
- 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;
- }
---- 288,313 ----
- vimLoadLib(char *name)
- {
- HINSTANCE dll = NULL;
-! TCHAR old_dir[MAXPATHL];
-
-+ /* NOTE: Do not use mch_dirname() and mch_chdir() here, they may call
-+ * vimLoadLib() recursively, which causes a stack overflow. */
- if (exe_path == NULL)
- get_exe_name();
-! if (exe_path != NULL && GetCurrentDirectory(MAXPATHL, old_dir) != 0)
- {
- /* 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. */
-! SetCurrentDirectory(exe_path);
-! dll = LoadLibrary(name);
-! SetCurrentDirectory(old_dir);
-! }
-! else
-! {
-! /* We are not able to change directory to where the executable is, try
-! * to load library anyway. */
- dll = LoadLibrary(name);
- }
- return dll;
- }
-*** ../vim-7.3.700/src/version.c 2012-10-21 02:17:28.000000000 +0200
---- src/version.c 2012-10-21 02:35:48.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 701,
- /**/
-
---
-BEDEVERE: And that, my lord, is how we know the Earth to be banana-shaped.
- "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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.702
-Fcc: 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.702
-Problem: Nmake from VS6 service pack 6 is not recognized.
-Solution: Detect the version number. (Jiri Sedlak)
-Files: src/Make_mvc.mak
-
-
-*** ../vim-7.3.701/src/Make_mvc.mak 2012-09-18 22:00:02.000000000 +0200
---- src/Make_mvc.mak 2012-10-21 02:38:21.000000000 +0200
-***************
-*** 373,378 ****
---- 373,382 ----
- MSVCVER = 6.0
- CPU = ix86
- !endif
-+ !if "$(_NMAKE_VER)" == "6.00.9782.0"
-+ MSVCVER = 6.0
-+ CPU = ix86
-+ !endif
- !if "$(_NMAKE_VER)" == "7.00.9466"
- MSVCVER = 7.0
- !endif
-*** ../vim-7.3.701/src/version.c 2012-10-21 02:37:02.000000000 +0200
---- src/version.c 2012-10-21 02:40:00.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 702,
- /**/
-
---
-Back off man, I'm a scientist.
- -- Peter, Ghostbusters
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.703
-Fcc: 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.703
-Problem: When 'undofile' is reset the hash is computed unnecessarily.
-Solution: Only compute the hash when the option was set. (Christian Brabandt)
-Files: src/option.c
-
-
-*** ../vim-7.3.702/src/option.c 2012-10-21 00:10:29.000000000 +0200
---- src/option.c 2012-10-21 03:42:10.000000000 +0200
-***************
-*** 7573,7596 ****
- /* 'undofile' */
- else if ((int *)varp == &curbuf->b_p_udf || (int *)varp == &p_udf)
- {
-! char_u hash[UNDO_HASH_SIZE];
-! buf_T *save_curbuf = curbuf;
-!
-! for (curbuf = firstbuf; curbuf != NULL; curbuf = curbuf->b_next)
- {
-! /* When 'undofile' is set globally: for every buffer, otherwise
-! * only for the current buffer: Try to read in the undofile, if
-! * one exists and the buffer wasn't changed and the buffer was
-! * loaded. */
-! if ((curbuf == save_curbuf
-! || (opt_flags & OPT_GLOBAL) || opt_flags == 0)
-! && !curbufIsChanged() && curbuf->b_ml.ml_mfp != NULL)
- {
-! u_compute_hash(hash);
-! u_read_undo(NULL, hash, curbuf->b_fname);
- }
- }
-- curbuf = save_curbuf;
- }
- #endif
-
---- 7573,7602 ----
- /* 'undofile' */
- else if ((int *)varp == &curbuf->b_p_udf || (int *)varp == &p_udf)
- {
-! /* Only take action when the option was set. When reset we do not
-! * delete the undo file, the option may be set again without making
-! * any changes in between. */
-! if (curbuf->b_p_udf || p_udf)
- {
-! char_u hash[UNDO_HASH_SIZE];
-! buf_T *save_curbuf = curbuf;
-!
-! for (curbuf = firstbuf; curbuf != NULL; curbuf = curbuf->b_next)
- {
-! /* When 'undofile' is set globally: for every buffer, otherwise
-! * only for the current buffer: Try to read in the undofile,
-! * if one exists, the buffer wasn't changed and the buffer was
-! * loaded */
-! if ((curbuf == save_curbuf
-! || (opt_flags & OPT_GLOBAL) || opt_flags == 0)
-! && !curbufIsChanged() && curbuf->b_ml.ml_mfp != NULL)
-! {
-! u_compute_hash(hash);
-! u_read_undo(NULL, hash, curbuf->b_fname);
-! }
- }
-+ curbuf = save_curbuf;
- }
- }
- #endif
-
-*** ../vim-7.3.702/src/version.c 2012-10-21 02:41:04.000000000 +0200
---- src/version.c 2012-10-21 03:43:29.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 703,
- /**/
-
---
-Scientists decoded the first message from an alien civilization:
- SIMPLY SEND 6 TIMES 10 TO THE 50 ATOMS OF HYDROGEN TO THE STAR
-SYSTEM AT THE TOP OF THE LIST, CROSS OFF THAT STAR SYSTEM, THEN PUT
-YOUR STAR SYSTEM AT THE BOTTOM OF THE LIST AND SEND IT TO 100 OTHER
-STAR SYSTEMS. WITHIN ONE TENTH GALACTIC ROTATION YOU WILL RECEIVE
-ENOUGH HYDROGREN TO POWER YOUR CIVILIZATION UNTIL ENTROPY REACHES ITS
-MAXIMUM! IT REALLY WORKS!
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.704
-Fcc: 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.704
-Problem: Repeating "cgn" does not always work correctly.
-Solution: Also fetch the operator character. (Christian Brabandt)
-Files: src/normal.c
-
-
-*** ../vim-7.3.703/src/normal.c 2012-08-15 13:30:55.000000000 +0200
---- src/normal.c 2012-10-21 03:51:38.000000000 +0200
-***************
-*** 960,967 ****
- #ifdef FEAT_CMDL_INFO
- need_flushbuf |= add_to_showcmd(ca.nchar);
- #endif
- if (ca.nchar == 'r' || ca.nchar == '\'' || ca.nchar == '`'
-! || ca.nchar == Ctrl_BSL)
- {
- cp = &ca.extra_char; /* need to get a third character */
- if (ca.nchar != 'r')
---- 960,970 ----
- #ifdef FEAT_CMDL_INFO
- need_flushbuf |= add_to_showcmd(ca.nchar);
- #endif
-+ /* For "gn" from redo, need to get one more char to determine the
-+ * operator */
- if (ca.nchar == 'r' || ca.nchar == '\'' || ca.nchar == '`'
-! || ca.nchar == Ctrl_BSL
-! || ((ca.nchar == 'n' || ca.nchar == 'N') && !stuff_empty()))
- {
- cp = &ca.extra_char; /* need to get a third character */
- if (ca.nchar != 'r')
-***************
-*** 1083,1088 ****
---- 1086,1093 ----
- ca.nchar = ca.extra_char;
- idx = find_command(ca.cmdchar);
- }
-+ else if (ca.nchar == 'n' || ca.nchar == 'N')
-+ ca.oap->op_type = get_op_type(*cp, NUL);
- else if (*cp == Ctrl_BSL)
- {
- long towait = (p_ttm >= 0 ? p_ttm : p_tm);
-***************
-*** 8009,8015 ****
- #ifdef FEAT_VISUAL
- if (!current_search(cap->count1, cap->nchar == 'n'))
- #endif
-! beep_flush();
- break;
-
- /*
---- 8014,8020 ----
- #ifdef FEAT_VISUAL
- if (!current_search(cap->count1, cap->nchar == 'n'))
- #endif
-! clearopbeep(oap);
- break;
-
- /*
-*** ../vim-7.3.703/src/version.c 2012-10-21 03:45:57.000000000 +0200
---- src/version.c 2012-10-21 03:53:51.000000000 +0200
-***************
-*** 721,722 ****
---- 721,724 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 704,
- /**/
-
---
-The word "leader" is derived from the word "lead", as in the material that
-bullets are made out of. The term "leader" was popularized at about the same
-time as the invention of firearms. It grew out of the observation that the
-person in charge of every organization was the person whom everyone wanted to
-fill with hot lead.
- I don't recomment this; it's just a point of historical interest.
- (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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.705
-Fcc: 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.705
-Problem: Mouse features are not sorted properly. (Tony Mechelynck)
-Solution: Put the mouse features in alphabetical order.
-Files: src/version.c
-
-
-*** ../vim-7.3.704/src/version.c 2012-10-21 03:54:27.000000000 +0200
---- src/version.c 2012-10-21 03:59:04.000000000 +0200
-***************
-*** 348,353 ****
---- 348,354 ----
- # else
- "-mouse",
- #endif
-+
- #if defined(UNIX) || defined(VMS)
- # ifdef FEAT_MOUSE_DEC
- "+mouse_dec",
-***************
-*** 369,402 ****
- # else
- "-mouse_netterm",
- # endif
- # ifdef FEAT_SYSMOUSE
- "+mouse_sysmouse",
- # else
- "-mouse_sysmouse",
- # endif
-- # ifdef FEAT_MOUSE_XTERM
-- "+mouse_xterm",
-- # else
-- "-mouse_xterm",
-- # endif
- # ifdef FEAT_MOUSE_URXVT
- "+mouse_urxvt",
- # else
- "-mouse_urxvt",
- # endif
-! # ifdef FEAT_MOUSE_SGR
-! "+mouse_sgr",
-! # else
-! "-mouse_sgr",
-! # endif
-! #endif
-! #ifdef __QNX__
-! # ifdef FEAT_MOUSE_PTERM
-! "+mouse_pterm",
- # else
-! "-mouse_pterm",
- # endif
- #endif
- #ifdef FEAT_MBYTE_IME
- # ifdef DYNAMIC_IME
- "+multi_byte_ime/dyn",
---- 370,408 ----
- # else
- "-mouse_netterm",
- # endif
-+ #endif
-+
-+ #ifdef __QNX__
-+ # ifdef FEAT_MOUSE_PTERM
-+ "+mouse_pterm",
-+ # else
-+ "-mouse_pterm",
-+ # endif
-+ #endif
-+
-+ #if defined(UNIX) || defined(VMS)
-+ # ifdef FEAT_MOUSE_SGR
-+ "+mouse_sgr",
-+ # else
-+ "-mouse_sgr",
-+ # endif
- # ifdef FEAT_SYSMOUSE
- "+mouse_sysmouse",
- # else
- "-mouse_sysmouse",
- # endif
- # ifdef FEAT_MOUSE_URXVT
- "+mouse_urxvt",
- # else
- "-mouse_urxvt",
- # endif
-! # ifdef FEAT_MOUSE_XTERM
-! "+mouse_xterm",
- # else
-! "-mouse_xterm",
- # endif
- #endif
-+
- #ifdef FEAT_MBYTE_IME
- # ifdef DYNAMIC_IME
- "+multi_byte_ime/dyn",
-*** ../vim-7.3.704/src/version.c 2012-10-21 03:54:27.000000000 +0200
---- src/version.c 2012-10-21 03:59:04.000000000 +0200
-***************
-*** 721,722 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 705,
- /**/
-
---
-Are leaders born or made? And if they're made, can we return them under
-warranty?
- (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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.706
-Fcc: 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.706 (after 7.3.697)
-Problem: Can't build Motif version.
-Solution: Fix wrongly named variable. (Ike Devolder)
-Files: src/syntax.c
-
-
-*** ../vim-7.3.705/src/syntax.c 2012-10-21 01:40:24.000000000 +0200
---- src/syntax.c 2012-10-21 21:22:46.000000000 +0200
-***************
-*** 8082,8088 ****
- || do_tooltip
- # endif
- )
-! if (free_fontset)
- gui_mch_free_fontset(HL_TABLE()[idx].sg_fontset);
- HL_TABLE()[idx].sg_fontset = fontset_name2handle(arg, 0
- # ifdef FONTSET_ALWAYS
---- 8082,8088 ----
- || do_tooltip
- # endif
- )
-! if (free_font)
- gui_mch_free_fontset(HL_TABLE()[idx].sg_fontset);
- HL_TABLE()[idx].sg_fontset = fontset_name2handle(arg, 0
- # ifdef FONTSET_ALWAYS
-*** ../vim-7.3.705/src/version.c 2012-10-21 04:00:03.000000000 +0200
---- src/version.c 2012-10-21 21:25:07.000000000 +0200
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 706,
- /**/
-
---
-"You're fired." (1980)
-"You're laid off." (1985)
-"You're downsized." (1990)
-"You're rightsized." (1992)
- (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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.707
-Fcc: 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.707 (after 7.3.701)
-Problem: Problems loading a library for a file name with non-latin
- characters.
-Solution: Use wide system functions when possible. (Ken Takata)
-Files: src/os_win32.c, src/os_win32.h
-
-
-*** ../vim-7.3.706/src/os_win32.c 2012-10-21 02:37:02.000000000 +0200
---- src/os_win32.c 2012-10-21 21:33:58.000000000 +0200
-***************
-*** 287,313 ****
- HINSTANCE
- vimLoadLib(char *name)
- {
-! HINSTANCE dll = NULL;
-! TCHAR old_dir[MAXPATHL];
-
- /* NOTE: Do not use mch_dirname() and mch_chdir() here, they may call
- * vimLoadLib() recursively, which causes a stack overflow. */
- if (exe_path == NULL)
- get_exe_name();
-! if (exe_path != NULL && GetCurrentDirectory(MAXPATHL, old_dir) != 0)
- {
-! /* 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. */
-! SetCurrentDirectory(exe_path);
-! dll = LoadLibrary(name);
-! SetCurrentDirectory(old_dir);
-! }
-! else
-! {
-! /* We are not able to change directory to where the executable is, try
-! * to load library anyway. */
-! dll = LoadLibrary(name);
- }
- return dll;
- }
---- 287,326 ----
- HINSTANCE
- vimLoadLib(char *name)
- {
-! HINSTANCE dll = NULL;
-! char old_dir[MAXPATHL];
-
- /* NOTE: Do not use mch_dirname() and mch_chdir() here, they may call
- * vimLoadLib() recursively, which causes a stack overflow. */
- if (exe_path == NULL)
- get_exe_name();
-! if (exe_path != NULL)
- {
-! #ifdef FEAT_MBYTE
-! WCHAR old_dirw[MAXPATHL];
-!
-! if (GetCurrentDirectoryW(MAXPATHL, old_dirw) != 0)
-! {
-! /* 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. */
-! SetCurrentDirectory(exe_path);
-! dll = LoadLibrary(name);
-! SetCurrentDirectoryW(old_dirw);
-! return dll;
-! }
-! /* Retry with non-wide function (for Windows 98). */
-! if (GetLastError() == ERROR_CALL_NOT_IMPLEMENTED)
-! #endif
-! if (GetCurrentDirectory(MAXPATHL, old_dir) != 0)
-! {
-! /* 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. */
-! SetCurrentDirectory(exe_path);
-! dll = LoadLibrary(name);
-! SetCurrentDirectory(old_dir);
-! }
- }
- return dll;
- }
-*** ../vim-7.3.706/src/os_win32.h 2011-08-10 17:07:56.000000000 +0200
---- src/os_win32.h 2012-10-21 21:33:30.000000000 +0200
-***************
-*** 108,114 ****
- */
- #define CMDBUFFSIZE 1024 /* size of the command processing buffer */
-
-! /* _MAX_PATH is only 256 (stdlib.h), but we want more for the 'path' option,
- * thus use a larger number. */
- #define MAXPATHL 1024
-
---- 108,114 ----
- */
- #define CMDBUFFSIZE 1024 /* size of the command processing buffer */
-
-! /* _MAX_PATH is only 260 (stdlib.h), but we want more for the 'path' option,
- * thus use a larger number. */
- #define MAXPATHL 1024
-
-*** ../vim-7.3.706/src/version.c 2012-10-21 21:25:17.000000000 +0200
---- src/version.c 2012-10-21 21:37:52.000000000 +0200
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 707,
- /**/
-
---
-Our job was to build a computer information system for the branch banks. We
-were the perfect people for the job: Dean had seen a computer once, and I had
-heard Dean talk about it.
- (Scott Adams - The Dilbert principle)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.708
-Fcc: 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.708
-Problem: Filler lines above the first line may be hidden when opening Vim.
-Solution: Change how topfill is computed. (Christian Brabandt)
-Files: src/diff.c, src/testdir/test47.in, src/testdir/test47.ok
-
-
-*** ../vim-7.3.707/src/diff.c 2012-05-18 18:47:11.000000000 +0200
---- src/diff.c 2012-10-21 22:08:44.000000000 +0200
-***************
-*** 615,625 ****
- #endif
- /* A change may have made filler lines invalid, need to take care
- * of that for other windows. */
-! if (wp != curwin && wp->w_topfill > 0)
- {
-- n = diff_check(wp, wp->w_topline);
- if (wp->w_topfill > n)
- wp->w_topfill = (n < 0 ? 0 : n);
- }
- }
- }
---- 615,627 ----
- #endif
- /* A change may have made filler lines invalid, need to take care
- * of that for other windows. */
-! n = diff_check(wp, wp->w_topline);
-! if ((wp != curwin && wp->w_topfill > 0) || n > 0)
- {
- if (wp->w_topfill > n)
- wp->w_topfill = (n < 0 ? 0 : n);
-+ else if (n > 0 && n > wp->w_topfill)
-+ wp->w_topfill = n;
- }
- }
- }
-*** ../vim-7.3.707/src/testdir/test47.in 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test47.in 2012-10-21 22:08:44.000000000 +0200
-***************
-*** 36,42 ****
- :call append("$", two)
- :call append("$", three)
- :$-2,$w! test.out
-! :unlet one two three
- :qa!
- ENDTEST
-
---- 36,57 ----
- :call append("$", two)
- :call append("$", three)
- :$-2,$w! test.out
-! :" Test that diffing shows correct filler lines
-! :diffoff!
-! :windo :bw!
-! :enew
-! :put =range(4,10)
-! :1d _
-! :vnew
-! :put =range(1,10)
-! :1d _
-! :windo :diffthis
-! :wincmd h
-! :let w0=line('w0')
-! :enew
-! :put =w0
-! :.w >> test.out
-! :unlet! one two three w0
- :qa!
- ENDTEST
-
-*** ../vim-7.3.707/src/testdir/test47.ok 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test47.ok 2012-10-21 22:08:44.000000000 +0200
-***************
-*** 1,3 ****
---- 1,4 ----
- 2-4-5-6-8-9
- 1-2-4-5-8
- 2-3-4-5-6-7-8
-+ 1
-*** ../vim-7.3.707/src/version.c 2012-10-21 21:38:42.000000000 +0200
---- src/version.c 2012-10-21 22:10:42.000000000 +0200
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 708,
- /**/
-
---
-At some point in the project somebody will start whining about the need to
-determine the project "requirements". This involves interviewing people who
-don't know what they want but, curiously, know exactly when they need it.
- (Scott Adams - The Dilbert principle)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.709
-Fcc: 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.709
-Problem: Compiler warning for unused argument.
-Solution: Add UNUSED.
-Files: src/eval.c
-
-
-*** ../vim-7.3.708/src/eval.c 2012-10-21 02:17:28.000000000 +0200
---- src/eval.c 2012-10-21 23:53:32.000000000 +0200
-***************
-*** 16664,16670 ****
- */
- static void
- f_shiftwidth(argvars, rettv)
-! typval_T *argvars;
- typval_T *rettv;
- {
- rettv->vval.v_number = get_sw_value();
---- 16664,16670 ----
- */
- static void
- f_shiftwidth(argvars, rettv)
-! typval_T *argvars UNUSED;
- typval_T *rettv;
- {
- rettv->vval.v_number = get_sw_value();
-*** ../vim-7.3.708/src/version.c 2012-10-21 22:18:17.000000000 +0200
---- src/version.c 2012-10-21 23:55:01.000000000 +0200
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 709,
- /**/
-
---
-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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.710
-Fcc: 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.710 (after 7.3.704)
-Problem: Patch 7.3.704 breaks "fn".
-Solution: Add check for ca.cmdchar. (Christian Brabandt)
-Files: src/normal.c
-
-
-*** ../vim-7.3.709/src/normal.c 2012-10-21 03:54:27.000000000 +0200
---- src/normal.c 2012-10-23 05:02:27.000000000 +0200
-***************
-*** 1086,1092 ****
- ca.nchar = ca.extra_char;
- idx = find_command(ca.cmdchar);
- }
-! else if (ca.nchar == 'n' || ca.nchar == 'N')
- ca.oap->op_type = get_op_type(*cp, NUL);
- else if (*cp == Ctrl_BSL)
- {
---- 1086,1092 ----
- ca.nchar = ca.extra_char;
- idx = find_command(ca.cmdchar);
- }
-! else if ((ca.nchar == 'n' || ca.nchar == 'N') && ca.cmdchar == 'g')
- ca.oap->op_type = get_op_type(*cp, NUL);
- else if (*cp == Ctrl_BSL)
- {
-*** ../vim-7.3.709/src/version.c 2012-10-21 23:55:59.000000000 +0200
---- src/version.c 2012-10-23 04:59:21.000000000 +0200
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 710,
- /**/
-
---
-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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.711
-Fcc: 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.711 (after 7.3.688)
-Problem: vim.current.buffer is not available. (lilydjwg)
-Solution: Use py3_PyUnicode_AsUTF8 instead of py3_PyUnicode_AsUTF8String.
- (Ken Takata)
-Files: src/if_python3.c
-
-
-*** ../vim-7.3.710/src/if_python3.c 2012-10-21 01:46:56.000000000 +0200
---- src/if_python3.c 2012-10-23 05:15:31.000000000 +0200
-***************
-*** 176,182 ****
- # define PyImport_AppendInittab py3_PyImport_AppendInittab
- # if PY_VERSION_HEX >= 0x030300f0
- # undef _PyUnicode_AsString
-! # define _PyUnicode_AsString py3_PyUnicode_AsUTF8String
- # else
- # define _PyUnicode_AsString py3__PyUnicode_AsString
- # endif
---- 176,182 ----
- # define PyImport_AppendInittab py3_PyImport_AppendInittab
- # if PY_VERSION_HEX >= 0x030300f0
- # undef _PyUnicode_AsString
-! # define _PyUnicode_AsString py3_PyUnicode_AsUTF8
- # else
- # define _PyUnicode_AsString py3__PyUnicode_AsString
- # endif
-***************
-*** 286,296 ****
- static PyObject* py3__Py_TrueStruct;
- static int (*py3_PyModule_AddObject)(PyObject *m, const char *name, PyObject *o);
- static int (*py3_PyImport_AppendInittab)(const char *name, PyObject* (*initfunc)(void));
-! #if PY_VERSION_HEX >= 0x030300f0
-! static char* (*py3_PyUnicode_AsUTF8String)(PyObject *unicode);
-! #else
- static char* (*py3__PyUnicode_AsString)(PyObject *unicode);
-! #endif
- static PyObject* (*py3_PyUnicode_AsEncodedString)(PyObject *unicode, const char* encoding, const char* errors);
- static char* (*py3_PyBytes_AsString)(PyObject *bytes);
- static int (*py3_PyBytes_AsStringAndSize)(PyObject *bytes, char **buffer, int *length);
---- 286,296 ----
- static PyObject* py3__Py_TrueStruct;
- static int (*py3_PyModule_AddObject)(PyObject *m, const char *name, PyObject *o);
- static int (*py3_PyImport_AppendInittab)(const char *name, PyObject* (*initfunc)(void));
-! # if PY_VERSION_HEX >= 0x030300f0
-! static char* (*py3_PyUnicode_AsUTF8)(PyObject *unicode);
-! # else
- static char* (*py3__PyUnicode_AsString)(PyObject *unicode);
-! # endif
- static PyObject* (*py3_PyUnicode_AsEncodedString)(PyObject *unicode, const char* encoding, const char* errors);
- static char* (*py3_PyBytes_AsString)(PyObject *bytes);
- static int (*py3_PyBytes_AsStringAndSize)(PyObject *bytes, char **buffer, int *length);
-***************
-*** 348,360 ****
- {"PySys_SetArgv", (PYTHON_PROC*)&py3_PySys_SetArgv},
- {"Py_SetPythonHome", (PYTHON_PROC*)&py3_Py_SetPythonHome},
- {"Py_Initialize", (PYTHON_PROC*)&py3_Py_Initialize},
-! #ifndef PY_SSIZE_T_CLEAN
- {"PyArg_ParseTuple", (PYTHON_PROC*)&py3_PyArg_ParseTuple},
- {"Py_BuildValue", (PYTHON_PROC*)&py3_Py_BuildValue},
-! #else
- {"_PyArg_ParseTuple_SizeT", (PYTHON_PROC*)&py3_PyArg_ParseTuple},
- {"_Py_BuildValue_SizeT", (PYTHON_PROC*)&py3_Py_BuildValue},
-! #endif
- {"PyMem_Free", (PYTHON_PROC*)&py3_PyMem_Free},
- {"PyMem_Malloc", (PYTHON_PROC*)&py3_PyMem_Malloc},
- {"PyList_New", (PYTHON_PROC*)&py3_PyList_New},
---- 348,360 ----
- {"PySys_SetArgv", (PYTHON_PROC*)&py3_PySys_SetArgv},
- {"Py_SetPythonHome", (PYTHON_PROC*)&py3_Py_SetPythonHome},
- {"Py_Initialize", (PYTHON_PROC*)&py3_Py_Initialize},
-! # ifndef PY_SSIZE_T_CLEAN
- {"PyArg_ParseTuple", (PYTHON_PROC*)&py3_PyArg_ParseTuple},
- {"Py_BuildValue", (PYTHON_PROC*)&py3_Py_BuildValue},
-! # else
- {"_PyArg_ParseTuple_SizeT", (PYTHON_PROC*)&py3_PyArg_ParseTuple},
- {"_Py_BuildValue_SizeT", (PYTHON_PROC*)&py3_Py_BuildValue},
-! # endif
- {"PyMem_Free", (PYTHON_PROC*)&py3_PyMem_Free},
- {"PyMem_Malloc", (PYTHON_PROC*)&py3_PyMem_Malloc},
- {"PyList_New", (PYTHON_PROC*)&py3_PyList_New},
-***************
-*** 406,416 ****
- {"PyObject_Init", (PYTHON_PROC*)&py3__PyObject_Init},
- {"PyModule_AddObject", (PYTHON_PROC*)&py3_PyModule_AddObject},
- {"PyImport_AppendInittab", (PYTHON_PROC*)&py3_PyImport_AppendInittab},
-! #if PY_VERSION_HEX >= 0x030300f0
-! {"PyUnicode_AsUTF8String", (PYTHON_PROC*)&py3_PyUnicode_AsUTF8String},
-! #else
- {"_PyUnicode_AsString", (PYTHON_PROC*)&py3__PyUnicode_AsString},
-! #endif
- {"PyBytes_AsString", (PYTHON_PROC*)&py3_PyBytes_AsString},
- {"PyBytes_AsStringAndSize", (PYTHON_PROC*)&py3_PyBytes_AsStringAndSize},
- {"PyBytes_FromString", (PYTHON_PROC*)&py3_PyBytes_FromString},
---- 406,416 ----
- {"PyObject_Init", (PYTHON_PROC*)&py3__PyObject_Init},
- {"PyModule_AddObject", (PYTHON_PROC*)&py3_PyModule_AddObject},
- {"PyImport_AppendInittab", (PYTHON_PROC*)&py3_PyImport_AppendInittab},
-! # if PY_VERSION_HEX >= 0x030300f0
-! {"PyUnicode_AsUTF8", (PYTHON_PROC*)&py3_PyUnicode_AsUTF8},
-! # else
- {"_PyUnicode_AsString", (PYTHON_PROC*)&py3__PyUnicode_AsString},
-! # endif
- {"PyBytes_AsString", (PYTHON_PROC*)&py3_PyBytes_AsString},
- {"PyBytes_AsStringAndSize", (PYTHON_PROC*)&py3_PyBytes_AsStringAndSize},
- {"PyBytes_FromString", (PYTHON_PROC*)&py3_PyBytes_FromString},
-***************
-*** 503,514 ****
-
- /* Load unicode functions separately as only the ucs2 or the ucs4 functions
- * will be present in the library. */
-! #if PY_VERSION_HEX >= 0x030300f0
- ucs_from_string = symbol_from_dll(hinstPy3, "PyUnicode_FromString");
- ucs_decode = symbol_from_dll(hinstPy3, "PyUnicode_Decode");
- ucs_as_encoded_string = symbol_from_dll(hinstPy3,
- "PyUnicode_AsEncodedString");
-! #else
- ucs_from_string = symbol_from_dll(hinstPy3, "PyUnicodeUCS2_FromString");
- ucs_decode = symbol_from_dll(hinstPy3,
- "PyUnicodeUCS2_Decode");
---- 503,514 ----
-
- /* Load unicode functions separately as only the ucs2 or the ucs4 functions
- * will be present in the library. */
-! # if PY_VERSION_HEX >= 0x030300f0
- ucs_from_string = symbol_from_dll(hinstPy3, "PyUnicode_FromString");
- ucs_decode = symbol_from_dll(hinstPy3, "PyUnicode_Decode");
- ucs_as_encoded_string = symbol_from_dll(hinstPy3,
- "PyUnicode_AsEncodedString");
-! # else
- ucs_from_string = symbol_from_dll(hinstPy3, "PyUnicodeUCS2_FromString");
- ucs_decode = symbol_from_dll(hinstPy3,
- "PyUnicodeUCS2_Decode");
-***************
-*** 523,529 ****
- ucs_as_encoded_string = symbol_from_dll(hinstPy3,
- "PyUnicodeUCS4_AsEncodedString");
- }
-! #endif
- if (ucs_from_string && ucs_decode && ucs_as_encoded_string)
- {
- py3_PyUnicode_FromString = ucs_from_string;
---- 523,529 ----
- ucs_as_encoded_string = symbol_from_dll(hinstPy3,
- "PyUnicodeUCS4_AsEncodedString");
- }
-! # endif
- if (ucs_from_string && ucs_decode && ucs_as_encoded_string)
- {
- py3_PyUnicode_FromString = ucs_from_string;
-*** ../vim-7.3.710/src/version.c 2012-10-23 05:08:49.000000000 +0200
---- src/version.c 2012-10-23 05:14:27.000000000 +0200
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 711,
- /**/
-
---
-The fastest way to get an engineer to solve a problem is to declare that the
-problem is unsolvable. No engineer can walk away from an unsolvable problem
-until it's solved.
- (Scott Adams - The Dilbert principle)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.712
-Fcc: 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.712
-Problem: Nmake from VS2010 SP1 is not recognized.
-Solution: Add the version number. (Ken Takata)
-Files: src/Make_mvc.mak
-
-
-*** ../vim-7.3.711/src/Make_mvc.mak 2012-10-21 02:41:04.000000000 +0200
---- src/Make_mvc.mak 2012-10-23 05:33:33.000000000 +0200
-***************
-*** 407,412 ****
---- 407,415 ----
- !if "$(_NMAKE_VER)" == "10.00.30319.01"
- MSVCVER = 10.0
- !endif
-+ !if "$(_NMAKE_VER)" == "10.00.40219.01"
-+ MSVCVER = 10.0
-+ !endif
- !if "$(_NMAKE_VER)" == "11.00.50727.1"
- MSVCVER = 11.0
- !endif
-*** ../vim-7.3.711/src/version.c 2012-10-23 05:17:33.000000000 +0200
---- src/version.c 2012-10-23 05:34:24.000000000 +0200
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 712,
- /**/
-
---
-Engineers are widely recognized as superior marriage material: intelligent,
-dependable, employed, honest, and handy around the house.
- (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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.713
-Fcc: 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.713
-Problem: printf() can only align to bytes, not characters.
-Solution: Add the "S" item. (Christian Brabandt)
-Files: runtime/doc/eval.txt, src/message.c
-
-
-*** ../vim-7.3.712/runtime/doc/eval.txt 2012-10-21 00:44:59.000000000 +0200
---- runtime/doc/eval.txt 2012-11-14 18:00:40.000000000 +0100
-***************
-*** 4427,4432 ****
---- 4451,4457 ----
-
- Often used items are:
- %s string
-+ %6S string right-aligned in 6 display cells
- %6s string right-aligned in 6 bytes
- %.9s string truncated to 9 bytes
- %c single byte
-***************
-*** 4541,4546 ****
---- 4566,4575 ----
- s The text of the String argument is used. If a
- precision is specified, no more bytes than the number
- specified are used.
-+ S The text of the String argument is used. If a
-+ precision is specified, no more display cells than the
-+ number specified are used. Without the |+multi_byte|
-+ feature works just like 's'.
-
- *printf-f* *E807*
- f The Float argument is converted into a string of the
-*** ../vim-7.3.712/src/message.c 2012-03-28 16:49:25.000000000 +0200
---- src/message.c 2012-11-14 17:58:25.000000000 +0100
-***************
-*** 4290,4295 ****
---- 4290,4296 ----
- case '%':
- case 'c':
- case 's':
-+ case 'S':
- length_modifier = '\0';
- str_arg_l = 1;
- switch (fmt_spec)
-***************
-*** 4318,4323 ****
---- 4319,4325 ----
- }
-
- case 's':
-+ case 'S':
- str_arg =
- #ifndef HAVE_STDARG_H
- (char *)get_a_arg(arg_idx);
-***************
-*** 4354,4359 ****
---- 4356,4379 ----
- str_arg_l = (q == NULL) ? precision
- : (size_t)(q - str_arg);
- }
-+ #ifdef FEAT_MBYTE
-+ if (fmt_spec == 'S')
-+ {
-+ if (min_field_width != 0)
-+ min_field_width += STRLEN(str_arg)
-+ - mb_string2cells((char_u *)str_arg, -1);
-+ if (precision)
-+ {
-+ char_u *p1 = (char_u *)str_arg;
-+ size_t i;
-+
-+ for (i = 0; i < precision && *p1; i++)
-+ p1 += mb_ptr2len(p1);
-+
-+ str_arg_l = precision = p1 - (char_u *)str_arg;
-+ }
-+ }
-+ #endif
- break;
-
- default:
-*** ../vim-7.3.712/src/version.c 2012-10-23 05:35:30.000000000 +0200
---- src/version.c 2012-11-14 17:54:12.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 713,
- /**/
-
---
-In many of the more relaxed civilizations on the Outer Eastern Rim of the
-Galaxy, "The Hitchhiker's Guide to the Galaxy" has already supplanted the
-great "Encyclopedia Galactica" as the standard repository of all knowledge
-and wisdom, for though it has many omissions and contains much that is
-apocryphal, or at least wildly inaccurate, it scores over the older, more
-pedestrian work in two important respects.
-First, it is slightly cheaper; and second, it has the words "DON'T PANIC"
-inscribed in large friendly letters on its cover.
- -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.714
-Fcc: 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.714
-Problem: Inconsistency: :set can be used in the sandbox, but :setlocal and
- :setglobal cannot. (Michael Henry)
-Solution: Fix the flags for :setlocal and :setglobal. (Christian Brabandt)
-Files: src/ex_cmds.h
-
-
-*** ../vim-7.3.713/src/ex_cmds.h 2012-08-08 17:31:36.000000000 +0200
---- src/ex_cmds.h 2012-11-14 20:41:28.000000000 +0100
-***************
-*** 832,840 ****
- EX(CMD_setfiletype, "setfiletype", ex_setfiletype,
- TRLBAR|EXTRA|NEEDARG|CMDWIN),
- EX(CMD_setglobal, "setglobal", ex_set,
-! TRLBAR|EXTRA|CMDWIN),
- EX(CMD_setlocal, "setlocal", ex_set,
-! TRLBAR|EXTRA|CMDWIN),
- EX(CMD_sfind, "sfind", ex_splitview,
- BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR),
- EX(CMD_sfirst, "sfirst", ex_rewind,
---- 832,840 ----
- EX(CMD_setfiletype, "setfiletype", ex_setfiletype,
- TRLBAR|EXTRA|NEEDARG|CMDWIN),
- EX(CMD_setglobal, "setglobal", ex_set,
-! TRLBAR|EXTRA|CMDWIN|SBOXOK),
- EX(CMD_setlocal, "setlocal", ex_set,
-! TRLBAR|EXTRA|CMDWIN|SBOXOK),
- EX(CMD_sfind, "sfind", ex_splitview,
- BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR),
- EX(CMD_sfirst, "sfirst", ex_rewind,
-*** ../vim-7.3.713/src/version.c 2012-11-14 18:10:49.000000000 +0100
---- src/version.c 2012-11-14 20:43:01.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 714,
- /**/
-
---
-"So this is it," said Arthur, "we are going to die."
-"Yes," said Ford, "except...no! Wait a minute!" He suddenly lunged across
-the chamber at something behind Arthur's line of vision. "What's this
-switch?" he cried.
-"What? Where?" cried Arthur, twisting around.
-"No, I was only fooling," said Ford, "we are going to die after all."
- -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.715
-Fcc: 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.715
-Problem: Crash when calling setloclist() in BufUnload autocmd. (Marcin
- Szamotulski)
-Solution: Set w_llist to NULL when it was freed. Also add a test.
- (Christian Brabandt)
-Files: src/quickfix.c, src/testdir/test49.ok, src/testdir/test49.vim
-
-
-*** ../vim-7.3.714/src/quickfix.c 2012-06-29 12:57:03.000000000 +0200
---- src/quickfix.c 2012-11-14 22:33:20.000000000 +0100
-***************
-*** 107,113 ****
- };
-
- static int qf_init_ext __ARGS((qf_info_T *qi, char_u *efile, buf_T *buf, typval_T *tv, char_u *errorformat, int newlist, linenr_T lnumfirst, linenr_T lnumlast, char_u *qf_title));
-! static void qf_new_list __ARGS((qf_info_T *qi, char_u *qf_title));
- static void ll_free_all __ARGS((qf_info_T **pqi));
- static int qf_add_entry __ARGS((qf_info_T *qi, qfline_T **prevp, char_u *dir, char_u *fname, int bufnum, char_u *mesg, long lnum, int col, int vis_col, char_u *pattern, int nr, int type, int valid));
- static qf_info_T *ll_new_list __ARGS((void));
---- 107,113 ----
- };
-
- static int qf_init_ext __ARGS((qf_info_T *qi, char_u *efile, buf_T *buf, typval_T *tv, char_u *errorformat, int newlist, linenr_T lnumfirst, linenr_T lnumlast, char_u *qf_title));
-! static void qf_new_list __ARGS((qf_info_T *qi, char_u *qf_title, win_T *wp));
- static void ll_free_all __ARGS((qf_info_T **pqi));
- static int qf_add_entry __ARGS((qf_info_T *qi, qfline_T **prevp, char_u *dir, char_u *fname, int bufnum, char_u *mesg, long lnum, int col, int vis_col, char_u *pattern, int nr, int type, int valid));
- static qf_info_T *ll_new_list __ARGS((void));
-***************
-*** 266,272 ****
-
- if (newlist || qi->qf_curlist == qi->qf_listcount)
- /* make place for a new list */
-! qf_new_list(qi, qf_title);
- else if (qi->qf_lists[qi->qf_curlist].qf_count > 0)
- /* Adding to existing list, find last entry. */
- for (qfprev = qi->qf_lists[qi->qf_curlist].qf_start;
---- 266,272 ----
-
- if (newlist || qi->qf_curlist == qi->qf_listcount)
- /* make place for a new list */
-! qf_new_list(qi, qf_title, curwin);
- else if (qi->qf_lists[qi->qf_curlist].qf_count > 0)
- /* Adding to existing list, find last entry. */
- for (qfprev = qi->qf_lists[qi->qf_curlist].qf_start;
-***************
-*** 885,893 ****
- * Prepare for adding a new quickfix list.
- */
- static void
-! qf_new_list(qi, qf_title)
- qf_info_T *qi;
- char_u *qf_title;
- {
- int i;
-
---- 885,894 ----
- * Prepare for adding a new quickfix list.
- */
- static void
-! qf_new_list(qi, qf_title, wp)
- qf_info_T *qi;
- char_u *qf_title;
-+ win_T *wp;
- {
- int i;
-
-***************
-*** 897,903 ****
---- 898,908 ----
- * way with ":grep'.
- */
- while (qi->qf_listcount > qi->qf_curlist + 1)
-+ {
-+ if (wp != NULL && wp->w_llist == qi)
-+ wp->w_llist = NULL;
- qf_free(qi, --qi->qf_listcount);
-+ }
-
- /*
- * When the stack is full, remove to oldest entry
-***************
-*** 905,910 ****
---- 910,917 ----
- */
- if (qi->qf_listcount == LISTCOUNT)
- {
-+ if (wp != NULL && wp->w_llist == qi)
-+ wp->w_llist = NULL;
- qf_free(qi, 0);
- for (i = 1; i < LISTCOUNT; ++i)
- qi->qf_lists[i - 1] = qi->qf_lists[i];
-***************
-*** 3181,3187 ****
- eap->cmdidx != CMD_vimgrepadd && eap->cmdidx != CMD_lvimgrepadd)
- || qi->qf_curlist == qi->qf_listcount)
- /* make place for a new list */
-! qf_new_list(qi, *eap->cmdlinep);
- else if (qi->qf_lists[qi->qf_curlist].qf_count > 0)
- /* Adding to existing list, find last entry. */
- for (prevp = qi->qf_lists[qi->qf_curlist].qf_start;
---- 3188,3194 ----
- eap->cmdidx != CMD_vimgrepadd && eap->cmdidx != CMD_lvimgrepadd)
- || qi->qf_curlist == qi->qf_listcount)
- /* make place for a new list */
-! qf_new_list(qi, *eap->cmdlinep, curwin);
- else if (qi->qf_lists[qi->qf_curlist].qf_count > 0)
- /* Adding to existing list, find last entry. */
- for (prevp = qi->qf_lists[qi->qf_curlist].qf_start;
-***************
-*** 3747,3753 ****
-
- if (action == ' ' || qi->qf_curlist == qi->qf_listcount)
- /* make place for a new list */
-! qf_new_list(qi, title);
- else if (action == 'a' && qi->qf_lists[qi->qf_curlist].qf_count > 0)
- /* Adding to existing list, find last entry. */
- for (prevp = qi->qf_lists[qi->qf_curlist].qf_start;
---- 3754,3760 ----
-
- if (action == ' ' || qi->qf_curlist == qi->qf_listcount)
- /* make place for a new list */
-! qf_new_list(qi, title, wp);
- else if (action == 'a' && qi->qf_lists[qi->qf_curlist].qf_count > 0)
- /* Adding to existing list, find last entry. */
- for (prevp = qi->qf_lists[qi->qf_curlist].qf_start;
-***************
-*** 4029,4035 ****
- #endif
-
- /* create a new quickfix list */
-! qf_new_list(qi, *eap->cmdlinep);
-
- /* Go through all directories in 'runtimepath' */
- p = p_rtp;
---- 4036,4042 ----
- #endif
-
- /* create a new quickfix list */
-! qf_new_list(qi, *eap->cmdlinep, wp);
-
- /* Go through all directories in 'runtimepath' */
- p = p_rtp;
-*** ../vim-7.3.714/src/testdir/test49.ok 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test49.ok 2012-11-14 22:26:13.000000000 +0100
-***************
-*** 85,92 ****
- *** Test 83: OK (2835)
- *** Test 84: OK (934782101)
- *** Test 85: OK (198689)
-! --- Test 86: All tests were run with throwing exceptions on error.
- The $VIMNOERRTHROW control is not configured.
-! --- Test 86: All tests were run with throwing exceptions on interrupt.
- The $VIMNOINTTHROW control is not configured.
-! *** Test 86: OK (50443995)
---- 85,94 ----
- *** Test 83: OK (2835)
- *** Test 84: OK (934782101)
- *** Test 85: OK (198689)
-! --- Test 86: No Crash for vimgrep on BufUnload
-! *** Test 86: OK (0)
-! --- Test 87: All tests were run with throwing exceptions on error.
- The $VIMNOERRTHROW control is not configured.
-! --- Test 87: All tests were run with throwing exceptions on interrupt.
- The $VIMNOINTTHROW control is not configured.
-! *** Test 87: OK (50443995)
-*** ../vim-7.3.714/src/testdir/test49.vim 2010-09-29 16:55:45.000000000 +0200
---- src/testdir/test49.vim 2012-11-14 22:26:13.000000000 +0100
-***************
-*** 9603,9611 ****
-
- Xcheck 198689
-
-
- "-------------------------------------------------------------------------------
-! " Test 86: $VIMNOERRTHROW and $VIMNOINTTHROW support {{{1
- "
- " It is possible to configure Vim for throwing exceptions on error
- " or interrupt, controlled by variables $VIMNOERRTHROW and
---- 9603,9630 ----
-
- Xcheck 198689
-
-+ "-------------------------------------------------------------------------------
-+ " Test 86 setloclist crash {{{1
-+ "
-+ " Executing a setloclist() on BufUnload shouldn't crash Vim
-+ "-------------------------------------------------------------------------------
-+
-+ func F
-+ au BufUnload * :call setloclist(0, [{'bufnr':1, 'lnum':1, 'col':1, 'text': 'tango down'}])
-+
-+ :lvimgrep /.*/ *
-+ endfunc
-+
-+ XpathINIT
-+
-+ ExecAsScript F
-+
-+ delfunction F
-+ Xout "No Crash for vimgrep on BufUnload"
-+ Xcheck 0
-
- "-------------------------------------------------------------------------------
-! " Test 87: $VIMNOERRTHROW and $VIMNOINTTHROW support {{{1
- "
- " It is possible to configure Vim for throwing exceptions on error
- " or interrupt, controlled by variables $VIMNOERRTHROW and
-*** ../vim-7.3.714/src/version.c 2012-11-14 20:52:22.000000000 +0100
---- src/version.c 2012-11-14 22:36:45.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 715,
- /**/
-
---
-One difference between a man and a machine is that a machine is quiet
-when well oiled.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.716
-Fcc: 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.716
-Problem: Error on exit when using Python 3.
-Solution: Remove PythonIO_Fini(). (Roland Puntaier)
-Files: src/if_python3.c
-
-
-*** ../vim-7.3.715/src/if_python3.c 2012-10-23 05:17:33.000000000 +0200
---- src/if_python3.c 2012-11-20 10:59:54.000000000 +0100
-***************
-*** 657,663 ****
- static PyObject *globals;
-
- static int PythonIO_Init(void);
-- static void PythonIO_Fini(void);
- PyMODINIT_FUNC Py3Init_vim(void);
-
- /******************************************************
---- 657,662 ----
-***************
-*** 685,691 ****
- // acquire lock before finalizing
- pygilstate = PyGILState_Ensure();
-
-- PythonIO_Fini();
- Py_Finalize();
- }
-
---- 684,689 ----
-***************
-*** 989,1001 ****
- return PythonIO_Init_io();
- }
-
-- static void
-- PythonIO_Fini(void)
-- {
-- PySys_SetObject("stdout", NULL);
-- PySys_SetObject("stderr", NULL);
-- }
--
- /******************************************************
- * 3. Implementation of the Vim module for Python
- */
---- 987,992 ----
-*** ../vim-7.3.715/src/version.c 2012-11-14 22:38:04.000000000 +0100
---- src/version.c 2012-11-15 21:40:47.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 716,
- /**/
-
---
-Nothing is fool-proof to a sufficiently talented fool.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.717
-Fcc: 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.717
-Problem: When changing the font size, only MS-Windows limits the window
- size.
-Solution: Also limit the window size on other systems. (Roland Puntaier)
-Files: src/gui.c
-
-
-*** ../vim-7.3.716/src/gui.c 2012-08-29 16:34:23.000000000 +0200
---- src/gui.c 2012-11-20 12:01:08.000000000 +0100
-***************
-*** 905,917 ****
- # endif
- gui_mch_set_font(gui.norm_font);
- #endif
-! gui_set_shellsize(FALSE,
-! #ifdef MSWIN
-! TRUE
-! #else
-! FALSE
-! #endif
-! , RESIZE_BOTH);
- }
-
- return ret;
---- 905,911 ----
- # endif
- gui_mch_set_font(gui.norm_font);
- #endif
-! gui_set_shellsize(FALSE, TRUE, RESIZE_BOTH);
- }
-
- return ret;
-*** ../vim-7.3.716/src/version.c 2012-11-20 11:02:49.000000000 +0100
---- src/version.c 2012-11-20 12:02:04.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 717,
- /**/
-
---
-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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.718
-Fcc: 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.718
-Problem: When re-using the current buffer the buffer-local options stay.
-Solution: Re-initialize the buffer-local options. (Christian Brabandt)
-Files: src/buffer.c
-
-
-*** ../vim-7.3.717/src/buffer.c 2012-10-03 18:24:55.000000000 +0200
---- src/buffer.c 2012-11-17 14:11:35.000000000 +0100
-***************
-*** 1702,1707 ****
---- 1702,1712 ----
- #endif
- /* buf->b_nwindows = 0; why was this here? */
- free_buffer_stuff(buf, FALSE); /* delete local variables et al. */
-+
-+ /* Init the options. */
-+ buf->b_p_initialized = FALSE;
-+ buf_copy_options(buf, BCO_ENTER);
-+
- #ifdef FEAT_KEYMAP
- /* need to reload lmaps and set b:keymap_name */
- curbuf->b_kmap_state |= KEYMAP_INIT;
-*** ../vim-7.3.717/src/version.c 2012-11-20 12:03:02.000000000 +0100
---- src/version.c 2012-11-20 12:16:35.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 718,
- /**/
-
---
-Latest survey shows that 3 out of 4 people make up 75% of the
-world's population.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.719
-Fcc: 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.719
-Problem: Cannot run new version of cproto, it fails on missing include
- files.
-Solution: Add lots of #ifndef PROTO
-Files: src/os_amiga.c, src/os_amiga.h, src/gui_w16.c, src/gui_w48.c,
- src/gui_w32.c, src/vimio.h, src/os_msdos.c, src/os_msdos.h,
- src/os_win16.h, src/os_win16.c, src/os_win32.h, src/os_win32.c,
- src/os_mswin.c, src/gui_photon.c, src/os_unix.h, src/os_beos.c,
- src/os_beos.h
-
-
-*** ../vim-7.3.718/src/os_amiga.c 2012-06-29 15:51:26.000000000 +0200
---- src/os_amiga.c 2012-11-20 15:47:31.000000000 +0100
-***************
-*** 22,27 ****
---- 22,30 ----
- #undef TRUE /* will be redefined by exec/types.h */
- #undef FALSE
-
-+ /* cproto fails on missing include files, skip them */
-+ #ifndef PROTO
-+
- #ifndef LATTICE
- # include <exec/types.h>
- # include <exec/exec.h>
-***************
-*** 55,60 ****
---- 58,65 ----
- # include <libraries/arp_pragmas.h>
- #endif
-
-+ #endif /* PROTO */
-+
- /*
- * At this point TRUE and FALSE are defined as 1L and 0L, but we want 1 and 0.
- */
-***************
-*** 283,289 ****
- #endif
- }
-
-! #include <workbench/startup.h>
-
- /*
- * Check_win checks whether we have an interactive window.
---- 288,296 ----
- #endif
- }
-
-! #ifndef PROTO
-! # include <workbench/startup.h>
-! #endif
-
- /*
- * Check_win checks whether we have an interactive window.
-***************
-*** 1002,1008 ****
- * Heavely modified by mool.
- */
-
-! #include <devices/conunit.h>
-
- /*
- * try to get the real window size
---- 1009,1017 ----
- * Heavely modified by mool.
- */
-
-! #ifndef PROTO
-! # include <devices/conunit.h>
-! #endif
-
- /*
- * try to get the real window size
-***************
-*** 1129,1137 ****
- * say 'oml lib:amiga.lib -r sendpacket.o'
- */
-
- /* #include <proto/exec.h> */
- /* #include <proto/dos.h> */
-! #include <exec/memory.h>
-
- /*
- * Function - dos_packet written by Phil Lindsay, Carolyn Scheppner, and Andy
---- 1138,1148 ----
- * say 'oml lib:amiga.lib -r sendpacket.o'
- */
-
-+ #ifndef PROTO
- /* #include <proto/exec.h> */
- /* #include <proto/dos.h> */
-! # include <exec/memory.h>
-! #endif
-
- /*
- * Function - dos_packet written by Phil Lindsay, Carolyn Scheppner, and Andy
-*** ../vim-7.3.718/src/os_amiga.h 2010-08-15 21:57:25.000000000 +0200
---- src/os_amiga.h 2012-11-20 15:46:37.000000000 +0100
-***************
-*** 56,61 ****
---- 56,64 ----
- # define TEMPNAMELEN 12
- #endif
-
-+ /* cproto fails on missing include files */
-+ #ifndef PROTO
-+
- #include <exec/types.h>
- #include <libraries/dos.h>
- #include <libraries/dosextens.h>
-***************
-*** 67,72 ****
---- 70,77 ----
- # include <proto/intuition.h>
- #endif
-
-+ #endif /* PROTO */
-+
- #define FNAME_ILLEGAL ";*?`#%" /* illegal characters in a file name */
-
- /*
-***************
-*** 85,90 ****
---- 90,96 ----
- # include <unistd.h>
- #endif
-
-+ #ifndef PROTO
- /*
- * arpbase.h must be included before functions.h
- */
-***************
-*** 92,97 ****
---- 98,105 ----
- # include <libraries/arpbase.h>
- #endif
-
-+ #endif /* PROTO */
-+
- /*
- * This won't be needed if you have a version of Lattice 4.01 without broken
- * break signal handling.
-*** ../vim-7.3.718/src/gui_w16.c 2012-02-04 22:01:44.000000000 +0100
---- src/gui_w16.c 2012-11-20 15:55:04.000000000 +0100
-***************
-*** 1521,1527 ****
-
-
- #if defined(FEAT_TOOLBAR) || defined(PROTO)
-! #include "gui_w3~1.h"
- /*
- * Create the toolbar, initially unpopulated.
- * (just like the menu, there are no defaults, it's all
---- 1521,1532 ----
-
-
- #if defined(FEAT_TOOLBAR) || defined(PROTO)
-!
-! /* cproto fails on missing include files */
-! #ifndef PROTO
-! # include "gui_w3~1.h"
-! #endif
-!
- /*
- * Create the toolbar, initially unpopulated.
- * (just like the menu, there are no defaults, it's all
-*** ../vim-7.3.718/src/gui_w48.c 2012-01-20 20:54:15.000000000 +0100
---- src/gui_w48.c 2012-11-20 15:53:49.000000000 +0100
-***************
-*** 25,30 ****
---- 25,34 ----
- #ifdef DEBUG
- # include <tchar.h>
- #endif
-+
-+ /* cproto fails on missing include files */
-+ #ifndef PROTO
-+
- #ifndef __MINGW32__
- # include <shellapi.h>
- #endif
-***************
-*** 44,49 ****
---- 48,55 ----
- # include "glbl_ime.h"
- #endif
-
-+ #endif /* PROTO */
-+
- #ifdef FEAT_MENU
- # define MENUHINTS /* show menu hints in command line */
- #endif
-*** ../vim-7.3.718/src/gui_w32.c 2012-01-04 20:29:18.000000000 +0100
---- src/gui_w32.c 2012-11-20 15:56:31.000000000 +0100
-***************
-*** 198,208 ****
- static UINT_PTR BevalTimerId = 0;
- static DWORD LastActivity = 0;
-
- /*
- * excerpts from headers since this may not be presented
- * in the extremely old compilers
- */
-! #include <pshpack1.h>
-
- typedef struct _DllVersionInfo
- {
---- 198,214 ----
- static UINT_PTR BevalTimerId = 0;
- static DWORD LastActivity = 0;
-
-+
-+ /* cproto fails on missing include files */
-+ #ifndef PROTO
-+
- /*
- * excerpts from headers since this may not be presented
- * in the extremely old compilers
- */
-! # include <pshpack1.h>
-!
-! #endif
-
- typedef struct _DllVersionInfo
- {
-***************
-*** 213,219 ****
- DWORD dwPlatformID;
- } DLLVERSIONINFO;
-
-! #include <poppack.h>
-
- typedef struct tagTOOLINFOA_NEW
- {
---- 219,227 ----
- DWORD dwPlatformID;
- } DLLVERSIONINFO;
-
-! #ifndef PROTO
-! # include <poppack.h>
-! #endif
-
- typedef struct tagTOOLINFOA_NEW
- {
-*** ../vim-7.3.718/src/vimio.h 2010-08-15 21:57:28.000000000 +0200
---- src/vimio.h 2012-11-20 15:57:19.000000000 +0100
-***************
-*** 13,16 ****
- # define _CRT_NONSTDC_NO_DEPRECATE
- #endif
-
-! #include <io.h>
---- 13,19 ----
- # define _CRT_NONSTDC_NO_DEPRECATE
- #endif
-
-! /* cproto fails on missing include files */
-! #ifndef PROTO
-! # include <io.h>
-! #endif
-*** ../vim-7.3.718/src/os_msdos.c 2012-06-29 15:51:26.000000000 +0200
---- src/os_msdos.c 2012-11-20 15:59:18.000000000 +0100
-***************
-*** 23,29 ****
-
- #include "vim.h"
-
-! #include <conio.h>
-
- /*
- * MS-DOS only code, not used for Win16.
---- 23,32 ----
-
- #include "vim.h"
-
-! /* cproto fails on missing include files */
-! #ifndef PROTO
-! # include <conio.h>
-! #endif
-
- /*
- * MS-DOS only code, not used for Win16.
-***************
-*** 31,47 ****
- #ifndef WIN16
-
-
-! #include <bios.h>
-! #ifdef DJGPP
-! # include <dpmi.h>
-! # include <signal.h>
-! # include <sys/movedata.h>
-! # include <crt0.h>
-! # ifdef FEAT_CLIPBOARD
-! # include <sys/segments.h>
- # endif
-- #else
-- # include <alloc.h>
- #endif
-
- #if defined(DJGPP) || defined(PROTO)
---- 34,52 ----
- #ifndef WIN16
-
-
-! #ifndef PROTO
-! # include <bios.h>
-! # ifdef DJGPP
-! # include <dpmi.h>
-! # include <signal.h>
-! # include <sys/movedata.h>
-! # include <crt0.h>
-! # ifdef FEAT_CLIPBOARD
-! # include <sys/segments.h>
-! # endif
-! # else
-! # include <alloc.h>
- # endif
- #endif
-
- #if defined(DJGPP) || defined(PROTO)
-***************
-*** 2130,2137 ****
-
- #undef setlocale
-
-! #include <go32.h>
-! #include <inlines/ctype.ha>
- #include <locale.h>
-
- #define UPCASE (__dj_ISALNUM | __dj_ISALPHA | __dj_ISGRAPH | __dj_ISPRINT | __dj_ISUPPER)
---- 2135,2144 ----
-
- #undef setlocale
-
-! #ifndef PROTO
-! # include <go32.h>
-! # include <inlines/ctype.ha>
-! #endif
- #include <locale.h>
-
- #define UPCASE (__dj_ISALNUM | __dj_ISALPHA | __dj_ISGRAPH | __dj_ISPRINT | __dj_ISUPPER)
-*** ../vim-7.3.718/src/os_msdos.h 2010-08-15 21:57:25.000000000 +0200
---- src/os_msdos.h 2012-11-20 15:57:48.000000000 +0100
-***************
-*** 53,61 ****
-
- #define FNAME_ILLEGAL "\"*?><|" /* illegal characters in a file name */
-
-! #include <dos.h>
-! #include <dir.h>
-! #include <time.h>
-
- #ifdef DJGPP
- # include <unistd.h>
---- 53,64 ----
-
- #define FNAME_ILLEGAL "\"*?><|" /* illegal characters in a file name */
-
-! /* cproto fails on missing include files */
-! #ifndef PROTO
-! # include <dos.h>
-! # include <dir.h>
-! # include <time.h>
-! #endif
-
- #ifdef DJGPP
- # include <unistd.h>
-*** ../vim-7.3.718/src/os_win16.h 2010-08-15 21:57:25.000000000 +0200
---- src/os_win16.h 2012-11-20 16:00:33.000000000 +0100
-***************
-*** 63,78 ****
-
- #include <stdlib.h>
- #include <time.h>
-- #include <dos.h>
-- #include <dir.h>
-
-! #ifndef STRICT
-! # define STRICT
-! #endif
-! #ifndef COBJMACROS
-! # define COBJMACROS /* For OLE: Enable "friendlier" access to objects */
-! #endif
-! #include <windows.h>
-
- /*
- * plenty of memory, use large buffers
---- 63,83 ----
-
- #include <stdlib.h>
- #include <time.h>
-
-! /* cproto fails on missing include files */
-! #ifndef PROTO
-! # include <dos.h>
-! # include <dir.h>
-!
-! # ifndef STRICT
-! # define STRICT
-! # endif
-! # ifndef COBJMACROS
-! # define COBJMACROS /* For OLE: Enable "friendlier" access to objects */
-! # endif
-! # include <windows.h>
-!
-! #endif /* PROTO */
-
- /*
- * plenty of memory, use large buffers
-*** ../vim-7.3.718/src/os_win16.c 2012-06-29 15:51:26.000000000 +0200
---- src/os_win16.c 2012-11-20 16:01:50.000000000 +0100
-***************
-*** 22,37 ****
-
- #include "vim.h"
-
-! #include <dos.h>
- #include <string.h>
- #include <sys/types.h>
- #include <signal.h>
- #include <limits.h>
-- #include <process.h>
-
-! #undef chdir
-! #include <direct.h>
-! #include <shellapi.h> /* required for FindExecutable() */
-
-
- /* Record all output and all keyboard & mouse input */
---- 22,44 ----
-
- #include "vim.h"
-
-! /* cproto fails on missing include files */
-! #ifndef PROTO
-! # include <dos.h>
-! #endif
-!
- #include <string.h>
- #include <sys/types.h>
- #include <signal.h>
- #include <limits.h>
-
-! #ifndef PROTO
-! # include <process.h>
-!
-! # undef chdir
-! # include <direct.h>
-! # include <shellapi.h> /* required for FindExecutable() */
-! #endif
-
-
- /* Record all output and all keyboard & mouse input */
-*** ../vim-7.3.718/src/os_win32.h 2012-10-21 21:38:42.000000000 +0200
---- src/os_win32.h 2012-11-20 16:09:59.000000000 +0100
-***************
-*** 12,18 ****
-
- #include "os_dos.h" /* common MS-DOS and Win32 stuff */
- #ifndef __CYGWIN__
-! #include <direct.h> /* for _mkdir() */
- #endif
-
- /* Stop the VC2005 compiler from nagging. */
---- 12,21 ----
-
- #include "os_dos.h" /* common MS-DOS and Win32 stuff */
- #ifndef __CYGWIN__
-! /* cproto fails on missing include files */
-! # ifndef PROTO
-! # include <direct.h> /* for _mkdir() */
-! # endif
- #endif
-
- /* Stop the VC2005 compiler from nagging. */
-***************
-*** 101,107 ****
- #ifndef COBJMACROS
- # define COBJMACROS /* For OLE: Enable "friendlier" access to objects */
- #endif
-! #include <windows.h>
-
- /*
- * Win32 has plenty of memory, use large buffers
---- 104,112 ----
- #ifndef COBJMACROS
- # define COBJMACROS /* For OLE: Enable "friendlier" access to objects */
- #endif
-! #ifndef PROTO
-! # include <windows.h>
-! #endif
-
- /*
- * Win32 has plenty of memory, use large buffers
-***************
-*** 194,199 ****
---- 199,206 ----
- # define vim_mkdir(x, y) mch_mkdir(x)
- #endif
-
-+ #ifndef PROTO
-+
- /* Enable common dialogs input unicode from IME if posible. */
- #ifdef FEAT_MBYTE
- /* The variables are defined in os_win32.c. */
-***************
-*** 207,209 ****
---- 214,218 ----
- # define pIsDialogMessage IsDialogMessage
- # define pPeekMessage PeekMessage
- #endif
-+
-+ #endif /* PROTO */
-*** ../vim-7.3.718/src/os_win32.c 2012-10-21 21:38:42.000000000 +0200
---- src/os_win32.c 2012-11-20 16:12:09.000000000 +0100
-***************
-*** 29,35 ****
- #include <sys/types.h>
- #include <signal.h>
- #include <limits.h>
-! #include <process.h>
-
- #undef chdir
- #ifdef __GNUC__
---- 29,39 ----
- #include <sys/types.h>
- #include <signal.h>
- #include <limits.h>
-!
-! /* cproto fails on missing include files */
-! #ifndef PROTO
-! # include <process.h>
-! #endif
-
- #undef chdir
- #ifdef __GNUC__
-***************
-*** 40,47 ****
- # include <direct.h>
- #endif
-
-! #if defined(FEAT_TITLE) && !defined(FEAT_GUI_W32)
-! # include <shellapi.h>
- #endif
-
- #ifdef __MINGW32__
---- 44,53 ----
- # include <direct.h>
- #endif
-
-! #ifndef PROTO
-! # if defined(FEAT_TITLE) && !defined(FEAT_GUI_W32)
-! # include <shellapi.h>
-! # endif
- #endif
-
- #ifdef __MINGW32__
-***************
-*** 125,130 ****
---- 131,137 ----
- typedef int WORD;
- typedef int WCHAR;
- typedef void VOID;
-+ typedef int BY_HANDLE_FILE_INFORMATION;
- #endif
-
- #ifndef FEAT_GUI_W32
-***************
-*** 152,157 ****
---- 159,166 ----
- # define wcsicmp(a, b) wcscmpi((a), (b))
- #endif
-
-+ #ifndef PROTO
-+
- /* Enable common dialogs input unicode from IME if posible. */
- #ifdef FEAT_MBYTE
- LRESULT (WINAPI *pDispatchMessage)(LPMSG) = DispatchMessage;
-***************
-*** 160,165 ****
---- 169,176 ----
- BOOL (WINAPI *pPeekMessage)(LPMSG, HWND, UINT, UINT, UINT) = PeekMessage;
- #endif
-
-+ #endif /* PROTO */
-+
- #ifndef FEAT_GUI_W32
- /* Win32 Console handles for input and output */
- static HANDLE g_hConIn = INVALID_HANDLE_VALUE;
-***************
-*** 453,459 ****
- DWORD g_PlatformId;
-
- #ifdef HAVE_ACL
-! # include <aclapi.h>
- /*
- * These are needed to dynamically load the ADVAPI DLL, which is not
- * implemented under Windows 95 (and causes VIM to crash)
---- 464,473 ----
- DWORD g_PlatformId;
-
- #ifdef HAVE_ACL
-! # ifndef PROTO
-! # include <aclapi.h>
-! # endif
-!
- /*
- * These are needed to dynamically load the ADVAPI DLL, which is not
- * implemented under Windows 95 (and causes VIM to crash)
-***************
-*** 1658,1665 ****
- #endif /* FEAT_GUI_W32 */
- }
-
-! #ifndef __MINGW32__
-! # include <shellapi.h> /* required for FindExecutable() */
- #endif
-
- /*
---- 1672,1681 ----
- #endif /* FEAT_GUI_W32 */
- }
-
-! #ifndef PROTO
-! # ifndef __MINGW32__
-! # include <shellapi.h> /* required for FindExecutable() */
-! # endif
- #endif
-
- /*
-*** ../vim-7.3.718/src/os_mswin.c 2011-11-30 13:42:40.000000000 +0100
---- src/os_mswin.c 2012-11-20 16:15:05.000000000 +0100
-***************
-*** 26,38 ****
-
- #ifdef WIN16
- # define SHORT_FNAME /* always 8.3 file name */
-! # include <dos.h>
- # include <string.h>
- #endif
- #include <sys/types.h>
- #include <signal.h>
- #include <limits.h>
-! #include <process.h>
-
- #undef chdir
- #ifdef __GNUC__
---- 26,43 ----
-
- #ifdef WIN16
- # define SHORT_FNAME /* always 8.3 file name */
-! /* cproto fails on missing include files */
-! # ifndef PROTO
-! # include <dos.h>
-! # endif
- # include <string.h>
- #endif
- #include <sys/types.h>
- #include <signal.h>
- #include <limits.h>
-! #ifndef PROTO
-! # include <process.h>
-! #endif
-
- #undef chdir
- #ifdef __GNUC__
-***************
-*** 43,62 ****
- # include <direct.h>
- #endif
-
-! #if defined(FEAT_TITLE) && !defined(FEAT_GUI_W32)
-! # include <shellapi.h>
-! #endif
-!
-! #if defined(FEAT_PRINTER) && !defined(FEAT_POSTSCRIPT)
-! # include <dlgs.h>
-! # ifdef WIN3264
-! # include <winspool.h>
-! # else
-! # include <print.h>
- # endif
-! # include <commdlg.h>
- #endif
-
- #ifdef __MINGW32__
- # ifndef FROM_LEFT_1ST_BUTTON_PRESSED
- # define FROM_LEFT_1ST_BUTTON_PRESSED 0x0001
---- 48,70 ----
- # include <direct.h>
- #endif
-
-! #ifndef PROTO
-! # if defined(FEAT_TITLE) && !defined(FEAT_GUI_W32)
-! # include <shellapi.h>
- # endif
-!
-! # if defined(FEAT_PRINTER) && !defined(FEAT_POSTSCRIPT)
-! # include <dlgs.h>
-! # ifdef WIN3264
-! # include <winspool.h>
-! # else
-! # include <print.h>
-! # endif
-! # include <commdlg.h>
- #endif
-
-+ #endif /* PROTO */
-+
- #ifdef __MINGW32__
- # ifndef FROM_LEFT_1ST_BUTTON_PRESSED
- # define FROM_LEFT_1ST_BUTTON_PRESSED 0x0001
-***************
-*** 2410,2416 ****
-
-
- #if defined(FEAT_SHORTCUT) || defined(PROTO)
-! # include <shlobj.h>
-
- /*
- * When "fname" is the name of a shortcut (*.lnk) resolve the file it points
---- 2418,2426 ----
-
-
- #if defined(FEAT_SHORTCUT) || defined(PROTO)
-! # ifndef PROTO
-! # include <shlobj.h>
-! # endif
-
- /*
- * When "fname" is the name of a shortcut (*.lnk) resolve the file it points
-*** ../vim-7.3.718/src/gui_photon.c 2011-09-14 16:04:52.000000000 +0200
---- src/gui_photon.c 2012-11-20 16:16:11.000000000 +0100
-***************
-*** 13,20 ****
-
- #include "vim.h"
-
-! #ifdef FEAT_TOOLBAR
-! # include <photon/PxImage.h>
- #endif
-
- #if !defined(__QNX__)
---- 13,23 ----
-
- #include "vim.h"
-
-! /* cproto fails on missing include files */
-! #ifndef PROTO
-! # ifdef FEAT_TOOLBAR
-! # include <photon/PxImage.h>
-! # endif
- #endif
-
- #if !defined(__QNX__)
-*** ../vim-7.3.718/src/os_unix.h 2011-02-25 15:17:14.000000000 +0100
---- src/os_unix.h 2012-11-20 16:51:06.000000000 +0100
-***************
-*** 198,203 ****
---- 198,206 ----
- # define HAVE_TOTAL_MEM
- #endif
-
-+
-+ #ifndef PROTO
-+
- #ifdef VMS
- # include <unixio.h>
- # include <unixlib.h>
-***************
-*** 226,232 ****
---- 229,239 ----
- # ifdef FEAT_GUI_GTK
- # include "gui_gtk_vms.h"
- # endif
-+ #endif
-
-+ #endif /* PROTO */
-+
-+ #ifdef VMS
- typedef struct dsc$descriptor DESC;
- #endif
-
-*** ../vim-7.3.718/src/os_beos.c 2010-08-15 21:57:28.000000000 +0200
---- src/os_beos.c 2012-11-20 16:22:17.000000000 +0100
-***************
-*** 13,19 ****
-
- #include <float.h>
- #include <termios.h>
-! #include <kernel/OS.h>
- #include "vim.h"
-
- #if USE_THREAD_FOR_INPUT_WITH_TIMEOUT
---- 13,22 ----
-
- #include <float.h>
- #include <termios.h>
-! #ifndef PROTO
-! # include <kernel/OS.h>
-! #endif
-!
- #include "vim.h"
-
- #if USE_THREAD_FOR_INPUT_WITH_TIMEOUT
-*** ../vim-7.3.718/src/os_beos.h 2010-08-15 21:57:32.000000000 +0200
---- src/os_beos.h 2012-11-20 16:22:48.000000000 +0100
-***************
-*** 22,25 ****
-
- /* select emulation */
-
-! #include <net/socket.h> /* for typedefs and #defines only */
---- 22,27 ----
-
- /* select emulation */
-
-! #ifndef PROTO
-! # include <net/socket.h> /* for typedefs and #defines only */
-! #endif
-*** ../vim-7.3.718/src/version.c 2012-11-20 12:16:54.000000000 +0100
---- src/version.c 2012-11-20 16:32:18.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 719,
- /**/
-
---
-George: "I just got a new set of golf clubs for my wife!"
- John: "Great trade!"
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.720
-Fcc: 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.720
-Problem: Proto files are outdated.
-Solution: Update the newly generated proto files.
-Files: src/proto/digraph.pro, src/proto/fold.pro, src/proto/misc1.pro,
- src/proto/move.pro, src/proto/screen.pro, src/proto/search.pro,
- src/proto/os_win32.pro, src/proto/os_mswin.pro,
- src/proto/os_beos.pro
-
-*** ../vim-7.3.719/src/proto/digraph.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/digraph.pro 2012-11-20 16:51:45.000000000 +0100
-***************
-*** 1,7 ****
- /* digraph.c */
- int do_digraph __ARGS((int c));
- int get_digraph __ARGS((int cmdline));
-! int getdigraph __ARGS((int char1, int char2, int meta));
- void putdigraph __ARGS((char_u *str));
- void listdigraphs __ARGS((void));
- char_u *keymap_init __ARGS((void));
---- 1,7 ----
- /* digraph.c */
- int do_digraph __ARGS((int c));
- int get_digraph __ARGS((int cmdline));
-! int getdigraph __ARGS((int char1, int char2, int meta_char));
- void putdigraph __ARGS((char_u *str));
- void listdigraphs __ARGS((void));
- char_u *keymap_init __ARGS((void));
-*** ../vim-7.3.719/src/proto/fold.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/fold.pro 2012-11-20 16:51:49.000000000 +0100
-***************
-*** 27,33 ****
- void foldUpdate __ARGS((win_T *wp, linenr_T top, linenr_T bot));
- void foldUpdateAll __ARGS((win_T *win));
- int foldMoveTo __ARGS((int updown, int dir, long count));
-! void foldInitWin __ARGS((win_T *newwin));
- int find_wl_entry __ARGS((win_T *win, linenr_T lnum));
- void foldAdjustVisual __ARGS((void));
- void foldAdjustCursor __ARGS((void));
---- 27,33 ----
- void foldUpdate __ARGS((win_T *wp, linenr_T top, linenr_T bot));
- void foldUpdateAll __ARGS((win_T *win));
- int foldMoveTo __ARGS((int updown, int dir, long count));
-! void foldInitWin __ARGS((win_T *new_win));
- int find_wl_entry __ARGS((win_T *win, linenr_T lnum));
- void foldAdjustVisual __ARGS((void));
- void foldAdjustCursor __ARGS((void));
-*** ../vim-7.3.719/src/proto/misc1.pro 2012-08-15 14:04:50.000000000 +0200
---- src/proto/misc1.pro 2012-11-20 16:51:56.000000000 +0100
-***************
-*** 5,12 ****
- int get_indent_str __ARGS((char_u *ptr, int ts));
- int set_indent __ARGS((int size, int flags));
- int get_number_indent __ARGS((linenr_T lnum));
-! int open_line __ARGS((int dir, int flags, int old_indent));
-! int get_leader_len __ARGS((char_u *line, char_u **flags, int backward, int do_skip_space));
- int get_last_leader_offset __ARGS((char_u *line, char_u **flags));
- int plines __ARGS((linenr_T lnum));
- int plines_win __ARGS((win_T *wp, linenr_T lnum, int winheight));
---- 5,12 ----
- int get_indent_str __ARGS((char_u *ptr, int ts));
- int set_indent __ARGS((int size, int flags));
- int get_number_indent __ARGS((linenr_T lnum));
-! int open_line __ARGS((int dir, int flags, int second_line_indent));
-! int get_leader_len __ARGS((char_u *line, char_u **flags, int backward, int include_space));
- int get_last_leader_offset __ARGS((char_u *line, char_u **flags));
- int plines __ARGS((linenr_T lnum));
- int plines_win __ARGS((win_T *wp, linenr_T lnum, int winheight));
-***************
-*** 59,65 ****
- void vim_setenv __ARGS((char_u *name, char_u *val));
- char_u *get_env_name __ARGS((expand_T *xp, int idx));
- char_u *get_users __ARGS((expand_T *xp, int idx));
-! int match_user __ARGS((char_u* name));
- void home_replace __ARGS((buf_T *buf, char_u *src, char_u *dst, int dstlen, int one));
- char_u *home_replace_save __ARGS((buf_T *buf, char_u *src));
- int fullpathcmp __ARGS((char_u *s1, char_u *s2, int checkname));
---- 59,65 ----
- void vim_setenv __ARGS((char_u *name, char_u *val));
- char_u *get_env_name __ARGS((expand_T *xp, int idx));
- char_u *get_users __ARGS((expand_T *xp, int idx));
-! int match_user __ARGS((char_u *name));
- void home_replace __ARGS((buf_T *buf, char_u *src, char_u *dst, int dstlen, int one));
- char_u *home_replace_save __ARGS((buf_T *buf, char_u *src));
- int fullpathcmp __ARGS((char_u *s1, char_u *s2, int checkname));
-*** ../vim-7.3.719/src/proto/move.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/move.pro 2012-11-20 16:51:57.000000000 +0100
-***************
-*** 24,30 ****
- int curwin_col_off __ARGS((void));
- int win_col_off2 __ARGS((win_T *wp));
- int curwin_col_off2 __ARGS((void));
-! void curs_columns __ARGS((int scroll));
- void scrolldown __ARGS((long line_count, int byfold));
- void scrollup __ARGS((long line_count, int byfold));
- void check_topfill __ARGS((win_T *wp, int down));
---- 24,30 ----
- int curwin_col_off __ARGS((void));
- int win_col_off2 __ARGS((win_T *wp));
- int curwin_col_off2 __ARGS((void));
-! void curs_columns __ARGS((int may_scroll));
- void scrolldown __ARGS((long line_count, int byfold));
- void scrollup __ARGS((long line_count, int byfold));
- void check_topfill __ARGS((win_T *wp, int down));
-*** ../vim-7.3.719/src/proto/screen.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/screen.pro 2012-11-20 16:52:01.000000000 +0100
-***************
-*** 31,38 ****
- void screen_draw_rectangle __ARGS((int row, int col, int height, int width, int invert));
- void screen_fill __ARGS((int start_row, int end_row, int start_col, int end_col, int c1, int c2, int attr));
- void check_for_delay __ARGS((int check_msg_scroll));
-! int screen_valid __ARGS((int clear));
-! void screenalloc __ARGS((int clear));
- void free_screenlines __ARGS((void));
- void screenclear __ARGS((void));
- int can_clear __ARGS((char_u *p));
---- 31,38 ----
- void screen_draw_rectangle __ARGS((int row, int col, int height, int width, int invert));
- void screen_fill __ARGS((int start_row, int end_row, int start_col, int end_col, int c1, int c2, int attr));
- void check_for_delay __ARGS((int check_msg_scroll));
-! int screen_valid __ARGS((int doclear));
-! void screenalloc __ARGS((int doclear));
- void free_screenlines __ARGS((void));
- void screenclear __ARGS((void));
- int can_clear __ARGS((char_u *p));
-*** ../vim-7.3.719/src/proto/search.pro 2012-07-25 15:06:20.000000000 +0200
---- src/proto/search.pro 2012-11-20 16:52:01.000000000 +0100
-***************
-*** 27,38 ****
- int end_word __ARGS((long count, int bigword, int stop, int empty));
- int bckend_word __ARGS((long count, int bigword, int eol));
- int current_word __ARGS((oparg_T *oap, long count, int include, int bigword));
-- int current_search __ARGS((long count, int forward));
- int current_sent __ARGS((oparg_T *oap, long count, int include));
- int current_block __ARGS((oparg_T *oap, long count, int include, int what, int other));
- int current_tagblock __ARGS((oparg_T *oap, long count_arg, int include));
- int current_par __ARGS((oparg_T *oap, long count, int include, int type));
- int current_quote __ARGS((oparg_T *oap, long count, int include, int quotechar));
- int linewhite __ARGS((linenr_T lnum));
- void find_pattern_in_path __ARGS((char_u *ptr, int dir, int len, int whole, int skip_comments, int type, long count, int action, linenr_T start_lnum, linenr_T end_lnum));
- int read_viminfo_search_pattern __ARGS((vir_T *virp, int force));
---- 27,38 ----
- int end_word __ARGS((long count, int bigword, int stop, int empty));
- int bckend_word __ARGS((long count, int bigword, int eol));
- int current_word __ARGS((oparg_T *oap, long count, int include, int bigword));
- int current_sent __ARGS((oparg_T *oap, long count, int include));
- int current_block __ARGS((oparg_T *oap, long count, int include, int what, int other));
- int current_tagblock __ARGS((oparg_T *oap, long count_arg, int include));
- int current_par __ARGS((oparg_T *oap, long count, int include, int type));
- int current_quote __ARGS((oparg_T *oap, long count, int include, int quotechar));
-+ int current_search __ARGS((long count, int forward));
- int linewhite __ARGS((linenr_T lnum));
- void find_pattern_in_path __ARGS((char_u *ptr, int dir, int len, int whole, int skip_comments, int type, long count, int action, linenr_T start_lnum, linenr_T end_lnum));
- int read_viminfo_search_pattern __ARGS((vir_T *virp, int force));
-*** ../vim-7.3.719/src/proto/os_win32.pro 2011-05-05 18:31:54.000000000 +0200
---- src/proto/os_win32.pro 2012-11-20 16:52:13.000000000 +0100
-***************
-*** 22,28 ****
- int mch_isdir __ARGS((char_u *name));
- int mch_mkdir __ARGS((char_u *name));
- int mch_is_linked __ARGS((char_u *fname));
-! int win32_fileinfo __ARGS((char_u *name, BY_HANDLE_FILE_INFORMATION *lpFileInfo));
- int mch_writable __ARGS((char_u *name));
- int mch_can_exe __ARGS((char_u *name));
- int mch_nodetype __ARGS((char_u *name));
---- 22,28 ----
- int mch_isdir __ARGS((char_u *name));
- int mch_mkdir __ARGS((char_u *name));
- int mch_is_linked __ARGS((char_u *fname));
-! int win32_fileinfo __ARGS((char_u *fname, BY_HANDLE_FILE_INFORMATION *info));
- int mch_writable __ARGS((char_u *name));
- int mch_can_exe __ARGS((char_u *name));
- int mch_nodetype __ARGS((char_u *name));
-*** ../vim-7.3.719/src/proto/os_mswin.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/os_mswin.pro 2012-11-20 16:52:14.000000000 +0100
-***************
-*** 28,38 ****
- void WideCharToMultiByte_alloc __ARGS((UINT cp, DWORD flags, LPCWSTR in, int inlen, LPSTR *out, int *outlen, LPCSTR def, LPBOOL useddef));
- int clip_mch_own_selection __ARGS((VimClipboard *cbd));
- void clip_mch_lose_selection __ARGS((VimClipboard *cbd));
- short_u *enc_to_utf16 __ARGS((char_u *str, int *lenp));
- char_u *utf16_to_enc __ARGS((short_u *str, int *lenp));
-- void clip_mch_request_selection __ARGS((VimClipboard *cbd));
- void acp_to_enc __ARGS((char_u *str, int str_size, char_u **out, int *outlen));
-- void clip_mch_set_selection __ARGS((VimClipboard *cbd));
- void DumpPutS __ARGS((const char *psz));
- int mch_get_winpos __ARGS((int *x, int *y));
- void mch_set_winpos __ARGS((int x, int y));
---- 28,38 ----
- void WideCharToMultiByte_alloc __ARGS((UINT cp, DWORD flags, LPCWSTR in, int inlen, LPSTR *out, int *outlen, LPCSTR def, LPBOOL useddef));
- int clip_mch_own_selection __ARGS((VimClipboard *cbd));
- void clip_mch_lose_selection __ARGS((VimClipboard *cbd));
-+ void clip_mch_request_selection __ARGS((VimClipboard *cbd));
-+ void clip_mch_set_selection __ARGS((VimClipboard *cbd));
- short_u *enc_to_utf16 __ARGS((char_u *str, int *lenp));
- char_u *utf16_to_enc __ARGS((short_u *str, int *lenp));
- void acp_to_enc __ARGS((char_u *str, int str_size, char_u **out, int *outlen));
- void DumpPutS __ARGS((const char *psz));
- int mch_get_winpos __ARGS((int *x, int *y));
- void mch_set_winpos __ARGS((int x, int y));
-*** ../vim-7.3.719/src/version.c 2012-11-20 16:53:34.000000000 +0100
---- src/version.c 2012-11-20 16:55:09.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 720,
- /**/
-
---
-Light travels faster than sound. This is why some people
-appear bright until you hear them speak
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.721
-Fcc: 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.721
-Problem: Ruby interface defines local functions globally.
-Solution: Make the functions static.
-Files: src/if_ruby.c
-
-
-*** ../vim-7.3.720/src/if_ruby.c 2012-10-03 18:06:55.000000000 +0200
---- src/if_ruby.c 2012-11-20 15:35:46.000000000 +0100
-***************
-*** 336,346 ****
- #endif
-
- #ifdef RUBY19_OR_LATER
-! SIGNED_VALUE rb_num2long_stub(VALUE x)
- {
- return dll_rb_num2long(x);
- }
-! VALUE rb_int2big_stub(SIGNED_VALUE x)
- {
- return dll_rb_int2big(x);
- }
---- 336,346 ----
- #endif
-
- #ifdef RUBY19_OR_LATER
-! static SIGNED_VALUE rb_num2long_stub(VALUE x)
- {
- return dll_rb_num2long(x);
- }
-! static VALUE rb_int2big_stub(SIGNED_VALUE x)
- {
- return dll_rb_int2big(x);
- }
-*** ../vim-7.3.720/src/version.c 2012-11-20 16:56:49.000000000 +0100
---- src/version.c 2012-11-20 16:58:32.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 721,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-39. You move into a new house and decide to Netscape before you landscape.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.722
-Fcc: 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.722
-Problem: Perl flags may contain "-g", which breaks "make proto".
-Solution: Filter out the "-g" flag for cproto. (Ken Takata)
-Files: src/Makefile
-
-
-*** ../vim-7.3.721/src/Makefile 2012-07-25 16:32:03.000000000 +0200
---- src/Makefile 2012-11-20 17:02:22.000000000 +0100
-***************
-*** 1753,1762 ****
- # Filter out arguments that cproto doesn't support.
- # Don't pass "-pthread" to cproto, it sees it as a list of individual flags.
- # Don't pass "-fstack-protector" to cproto, for the same reason.
- # The -E"gcc -E" argument must be separate to avoid problems with shell
- # quoting.
- CPROTO = cproto $(PROTO_FLAGS) -DPROTO \
-! `echo '$(LINT_CFLAGS)' | sed -e 's/-pthread//g' -e 's/-fstack-protector//g'`
-
- ### Would be nice if this would work for "normal" make.
- ### Currently it only works for (Free)BSD make.
---- 1753,1763 ----
- # Filter out arguments that cproto doesn't support.
- # Don't pass "-pthread" to cproto, it sees it as a list of individual flags.
- # Don't pass "-fstack-protector" to cproto, for the same reason.
-+ # Don't pass "-g" to cproto.
- # The -E"gcc -E" argument must be separate to avoid problems with shell
- # quoting.
- CPROTO = cproto $(PROTO_FLAGS) -DPROTO \
-! `echo '$(LINT_CFLAGS)' | sed -e 's/-pthread//g' -e 's/-fstack-protector//g' -e 's/\ -g\ / /g'`
-
- ### Would be nice if this would work for "normal" make.
- ### Currently it only works for (Free)BSD make.
-*** ../vim-7.3.721/src/version.c 2012-11-20 16:59:09.000000000 +0100
---- src/version.c 2012-11-20 17:02:54.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 722,
- /**/
-
---
-The future isn't what it used to be.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.723
-Fcc: 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.723
-Problem: Various tiny problems.
-Solution: Various tiny fixes.
-Files: src/gui_mac.c, src/xpm_w32.c, src/netbeans.c, src/sha256.c,
- src/if_sniff.c, README.txt
-
-
-*** ../vim-7.3.722/src/gui_mac.c 2011-12-14 15:07:11.000000000 +0100
---- src/gui_mac.c 2012-06-20 18:16:12.000000000 +0200
-***************
-*** 5728,5734 ****
- 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);
---- 5728,5734 ----
- 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);
-*** ../vim-7.3.722/src/xpm_w32.c 2012-02-05 00:47:56.000000000 +0100
---- src/xpm_w32.c 2012-08-02 21:46:20.000000000 +0200
-***************
-*** 55,61 ****
- return -1;
- if (shp == NULL)
- {
-! if (img)
- XDestroyImage(img);
- return -1;
- }
---- 55,61 ----
- return -1;
- if (shp == NULL)
- {
-! if (img)
- XDestroyImage(img);
- return -1;
- }
-*** ../vim-7.3.722/src/netbeans.c 2012-04-20 19:47:00.000000000 +0200
---- src/netbeans.c 2012-06-20 19:56:18.000000000 +0200
-***************
-*** 978,984 ****
- buf_list_used = 0;
-
- /* free the queued key commands */
-! while(key_node != NULL && key_node != &keyHead)
- {
- keyQ_T *next = key_node->next;
- vim_free(key_node->keystr);
---- 978,984 ----
- buf_list_used = 0;
-
- /* free the queued key commands */
-! while (key_node != NULL && key_node != &keyHead)
- {
- keyQ_T *next = key_node->next;
- vim_free(key_node->keystr);
-***************
-*** 993,999 ****
- }
-
- /* free the queued netbeans commands */
-! while(cmd_node != NULL && cmd_node != &head)
- {
- queue_T *next = cmd_node->next;
- vim_free(cmd_node->buffer);
---- 993,999 ----
- }
-
- /* free the queued netbeans commands */
-! while (cmd_node != NULL && cmd_node != &head)
- {
- queue_T *next = cmd_node->next;
- vim_free(cmd_node->buffer);
-*** ../vim-7.3.722/src/sha256.c 2010-08-15 21:57:25.000000000 +0200
---- src/sha256.c 2012-03-18 21:35:07.000000000 +0100
-***************
-*** 7,15 ****
- * See README.txt for an overview of the Vim source code.
- *
- * FIPS-180-2 compliant SHA-256 implementation
-! * GPL by Christophe Devine.
- * Modified for md5deep, in public domain.
- * Modified For Vim, Mohsin Ahmed, http://www.cs.albany.edu/~mosh
- *
- * Vim specific notes:
- * Functions exported by this file:
---- 7,17 ----
- * See README.txt for an overview of the Vim source code.
- *
- * FIPS-180-2 compliant SHA-256 implementation
-! * GPL by Christophe Devine, applies to older version.
- * Modified for md5deep, in public domain.
- * Modified For Vim, Mohsin Ahmed, http://www.cs.albany.edu/~mosh
-+ * Mohsin Ahmed states this work is distributed under the VIM License or GPL,
-+ * at your choice.
- *
- * Vim specific notes:
- * Functions exported by this file:
-*** ../vim-7.3.722/src/if_sniff.c 2010-12-17 18:06:00.000000000 +0100
---- src/if_sniff.c 2012-06-20 19:56:09.000000000 +0200
-***************
-*** 449,455 ****
- if (!sniff_cmd)
- {
- struct sn_cmd_list *list = sniff_cmd_ext;
-! while(list)
- {
- if (!strcmp(cmd, list->sniff_cmd->cmd_name))
- {
---- 449,455 ----
- if (!sniff_cmd)
- {
- struct sn_cmd_list *list = sniff_cmd_ext;
-! while (list)
- {
- if (!strcmp(cmd, list->sniff_cmd->cmd_name))
- {
-***************
-*** 479,485 ****
- /* unescape message text */
- char *p = msg;
- char *end = p+strlen(msg);
-! while(*p)
- {
- if (*p == '\\')
- mch_memmove(p,p+1,end-p);
---- 479,485 ----
- /* unescape message text */
- char *p = msg;
- char *end = p+strlen(msg);
-! while (*p)
- {
- if (*p == '\\')
- mch_memmove(p,p+1,end-p);
-***************
-*** 489,495 ****
- SNIFF_TRACE1("request def = %s\n",def);
- SNIFF_TRACE1("request msg = %s\n",msg);
-
-! while(list && list->next_cmd)
- list = list->next_cmd;
- if (!list)
- sniff_cmd_ext = cmd_node;
---- 489,495 ----
- SNIFF_TRACE1("request def = %s\n",def);
- SNIFF_TRACE1("request msg = %s\n",msg);
-
-! while (list && list->next_cmd)
- list = list->next_cmd;
- if (!list)
- sniff_cmd_ext = cmd_node;
-***************
-*** 628,634 ****
- gui_mch_wait_for_chars(0L);
- #endif
- #ifdef WIN32
-! while(sniffBufStart != NULL)
- {
- struct sniffBufNode *node = sniffBufStart;
- sniffBufStart = sniffBufStart->next;
---- 628,634 ----
- gui_mch_wait_for_chars(0L);
- #endif
- #ifdef WIN32
-! while (sniffBufStart != NULL)
- {
- struct sniffBufNode *node = sniffBufStart;
- sniffBufStart = sniffBufStart->next;
-***************
-*** 789,795 ****
- command = buffer[0];
- arguments = &buffer[1];
- token = strtok(arguments, sniff_rq_sep);
-! while(argc <3)
- {
- if (token)
- {
---- 789,795 ----
- command = buffer[0];
- arguments = &buffer[1];
- token = strtok(arguments, sniff_rq_sep);
-! while (argc <3)
- {
- if (token)
- {
-***************
-*** 925,931 ****
- default :
- break;
- }
-! while(argc)
- vim_free(argv[--argc]);
- }
-
---- 925,931 ----
- default :
- break;
- }
-! while (argc)
- vim_free(argv[--argc]);
- }
-
-*** ../vim-7.3.722/README.txt 2010-08-15 21:56:43.000000000 +0200
---- README.txt 2012-10-28 18:58:18.000000000 +0100
-***************
-*** 97,103 ****
- If you have problems, have a look at the Vim FAQ:
- http://vimdoc.sf.net/vimfaq.html
-
-! Send bug reports to:
- Bram Moolenaar <Bram@vim.org>
-
- There are several mailing lists for Vim, see http://www.vim.org/maillist.php.
---- 97,107 ----
- If you have problems, have a look at the Vim FAQ:
- http://vimdoc.sf.net/vimfaq.html
-
-! If you still have problems, use one of the maillists to discuss t with Vim
-! users and developers:
-! http://www.vim.org/maillist.php
-!
-! If nothing else works, report bugs directly:
- Bram Moolenaar <Bram@vim.org>
-
- There are several mailing lists for Vim, see http://www.vim.org/maillist.php.
-*** ../vim-7.3.722/src/version.c 2012-11-20 17:03:23.000000000 +0100
---- src/version.c 2012-11-20 17:14:09.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 723,
- /**/
-
---
-"Oh, no! NOT the Spanish Inquisition!"
-"NOBODY expects the Spanish Inquisition!!!"
- -- Monty Python sketch --
-"Oh, no! NOT another option!"
-"EVERYBODY expects another option!!!"
- -- Discussion in vim-dev mailing list --
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.724
-Fcc: 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.724
-Problem: Building with Ruby and Tcl on MS-Windows 64 bit does not work.
-Solution: Remove Ruby and Tcl from the big MS-Windows build.
-Files: src/bigvim64.bat
-
-
-*** ../vim-7.3.723/src/bigvim64.bat 2012-08-29 14:18:26.000000000 +0200
---- src/bigvim64.bat 2012-08-29 17:32:55.000000000 +0200
-***************
-*** 1,6 ****
- :: command to build big Vim 64 bit with OLE, Perl, Python, Ruby and Tcl
- :: First run: %VCDIR%\vcvarsall.bat x86_amd64
- SET VCDIR="C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\"
- SET TOOLDIR=E:\
-! %VCDIR%\bin\nmake -f Make_mvc.mak CPU=AMD64 GUI=yes OLE=yes PERL=E:\perl514 DYNAMIC_PERL=yes PERL_VER=514 PYTHON=%TOOLDIR%python27 DYNAMIC_PYTHON=yes PYTHON_VER=27 PYTHON3=%TOOLDIR%python32 DYNAMIC_PYTHON3=yes PYTHON3_VER=32 RUBY=%TOOLDIR%ruby192 DYNAMIC_RUBY=yes RUBY_VER=192 RUBY_VER_LONG=1.9.2 TCL=%TOOLDIR%tcl TCL_VER=85 TCL_VER_LONG=8.5 DYNAMIC_TCL=yes %1 IME=yes CSCOPE=yes
-
---- 1,7 ----
- :: command to build big Vim 64 bit with OLE, Perl, Python, Ruby and Tcl
- :: First run: %VCDIR%\vcvarsall.bat x86_amd64
-+ :: Ruby and Tcl are excluded, doesn't seem to work.
- SET VCDIR="C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\"
- SET TOOLDIR=E:\
-! %VCDIR%\bin\nmake -f Make_mvc.mak CPU=AMD64 GUI=yes OLE=yes PERL=E:\perl514 DYNAMIC_PERL=yes PERL_VER=514 PYTHON=%TOOLDIR%python27 DYNAMIC_PYTHON=yes PYTHON_VER=27 PYTHON3=%TOOLDIR%python32 DYNAMIC_PYTHON3=yes PYTHON3_VER=32 %1 IME=yes CSCOPE=yes
-
-*** ../vim-7.3.723/src/version.c 2012-11-20 17:18:56.000000000 +0100
---- src/version.c 2012-11-20 17:20:51.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 724,
- /**/
-
---
-Microsoft is to software what McDonalds is to gourmet cooking
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.725
-Fcc: 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.725
-Problem: :aboveleft and :belowright have no effect on :copen.
-Solution: Check for cmdmod.split. (Christian Brabandt)
-Files: src/quickfix.c
-
-
-*** ../vim-7.3.724/src/quickfix.c 2012-11-14 22:38:04.000000000 +0100
---- src/quickfix.c 2012-11-20 17:51:59.000000000 +0100
-***************
-*** 2347,2354 ****
- /* The current window becomes the previous window afterwards. */
- win = curwin;
-
-! if (eap->cmdidx == CMD_copen || eap->cmdidx == CMD_cwindow)
-! /* Create the new window at the very bottom. */
- win_goto(lastwin);
- if (win_split(height, WSP_BELOW | WSP_NEWLOC) == FAIL)
- return; /* not enough room for window */
---- 2347,2356 ----
- /* The current window becomes the previous window afterwards. */
- win = curwin;
-
-! if ((eap->cmdidx == CMD_copen || eap->cmdidx == CMD_cwindow)
-! && cmdmod.split == 0)
-! /* Create the new window at the very bottom, except when
-! * :belowright or :aboveleft is used. */
- win_goto(lastwin);
- if (win_split(height, WSP_BELOW | WSP_NEWLOC) == FAIL)
- return; /* not enough room for window */
-*** ../vim-7.3.724/src/version.c 2012-11-20 17:21:29.000000000 +0100
---- src/version.c 2012-11-20 17:50:30.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 725,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-40. You tell the cab driver you live at
- http://123.elm.street/house/bluetrim.html
-41. You actually try that 123.elm.street address.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.726
-Fcc: 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.726
-Problem: Typos and duplicate info in README.
-Solution: Fix the text.
-Files: README.txt
-
-
-*** ../vim-7.3.725/README.txt 2012-11-20 17:18:56.000000000 +0100
---- README.txt 2012-11-21 12:28:58.000000000 +0100
-***************
-*** 97,111 ****
- If you have problems, have a look at the Vim FAQ:
- http://vimdoc.sf.net/vimfaq.html
-
-! If you still have problems, use one of the maillists to discuss t with Vim
-! users and developers:
- http://www.vim.org/maillist.php
-
- If nothing else works, report bugs directly:
- Bram Moolenaar <Bram@vim.org>
-
-- There are several mailing lists for Vim, see http://www.vim.org/maillist.php.
--
-
- MAIN AUTHOR
-
---- 97,109 ----
- If you have problems, have a look at the Vim FAQ:
- http://vimdoc.sf.net/vimfaq.html
-
-! If you still have problems or any other questions, use one of the mailing
-! lists to discuss them with Vim users and developers:
- http://www.vim.org/maillist.php
-
- If nothing else works, report bugs directly:
- Bram Moolenaar <Bram@vim.org>
-
-
- MAIN AUTHOR
-
-*** ../vim-7.3.725/src/version.c 2012-11-20 17:55:06.000000000 +0100
---- src/version.c 2012-11-23 21:44:38.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 726,
- /**/
-
---
-Q: Should I clean my house or work on Vim?
-A: Whatever contains more bugs.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.727
-Fcc: 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.727
-Problem: Can't always find Win32.mak when building GvimExt.
-Solution: Use same mechanism as in Make_mvc.mak. (Cade Foster)
-Files: src/GvimExt/Makefile
-
-
-*** ../vim-7.3.726/src/GvimExt/Makefile 2010-08-15 21:57:29.000000000 +0200
---- src/GvimExt/Makefile 2012-11-21 19:53:02.000000000 +0100
-***************
-*** 10,16 ****
- NODEBUG = 1
- !endif
-
-! !include <win32.mak>
-
- all: gvimext.dll
-
---- 10,20 ----
- NODEBUG = 1
- !endif
-
-! !ifdef SDK_INCLUDE_DIR
-! !include $(SDK_INCLUDE_DIR)\Win32.mak
-! !else
-! !include <Win32.mak>
-! !endif
-
- all: gvimext.dll
-
-*** ../vim-7.3.726/src/version.c 2012-11-23 21:45:20.000000000 +0100
---- src/version.c 2012-11-23 21:46:35.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 727,
- /**/
-
---
-Time is money. Especially if you make clocks.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.728
-Fcc: 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.728
-Problem: Cannot compile with MzScheme interface on Ubuntu 12.10.
-Solution: Find the collects directory under /usr/share.
-Files: src/configure.in, src/auto/configure
-
-
-*** ../vim-7.3.727/src/configure.in 2012-10-03 21:09:33.000000000 +0200
---- src/configure.in 2012-11-23 21:51:39.000000000 +0100
-***************
-*** 650,666 ****
- MZSCHEME_LIBS="${MZSCHEME_LIBS} -R ${vi_cv_path_mzscheme_pfx}/lib"
- fi
- 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
---- 650,679 ----
- MZSCHEME_LIBS="${MZSCHEME_LIBS} -R ${vi_cv_path_mzscheme_pfx}/lib"
- fi
- fi
-+
-+ AC_MSG_CHECKING(for racket collects directory)
- if test -d $vi_cv_path_mzscheme_pfx/lib/plt/collects; then
-! SCHEME_COLLECTS=$vi_cv_path_mzscheme_pfx/lib/plt/
- else
- if test -d $vi_cv_path_mzscheme_pfx/lib/racket/collects; then
-! SCHEME_COLLECTS=$vi_cv_path_mzscheme_pfx/lib/racket/
-! else
-! if test -d $vi_cv_path_mzscheme_pfx/share/racket/collects; then
-! SCHEME_COLLECTS=$vi_cv_path_mzscheme_pfx/share/racket/
-! fi
- fi
- fi
-! if test "X$SCHEME_COLLECTS" != "X" ; then
-! AC_MSG_RESULT(${SCHEME_COLLECTS})
-! else
-! AC_MSG_RESULT(not found)
-! fi
-!
-! AC_MSG_CHECKING(for mzscheme_base.c)
-! if test -f "${SCHEME_COLLECTS}collects/scheme/base.ss" ; then
- MZSCHEME_EXTRA="mzscheme_base.c"
- else
-! if test -f "${SCHEME_COLLECTS}collects/scheme/base.rkt" ; then
- MZSCHEME_EXTRA="mzscheme_base.c"
- fi
- fi
-***************
-*** 668,676 ****
- 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
- MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -I${SCHEME_INC} \
-! -DMZSCHEME_COLLECTS='\"${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects\"'"
- MZSCHEME_SRC="if_mzsch.c"
- MZSCHEME_OBJ="objects/if_mzsch.o"
- MZSCHEME_PRO="if_mzsch.pro"
---- 681,693 ----
- dnl need to generate bytecode for MzScheme base
- MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -DINCLUDE_MZSCHEME_BASE"
- MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc"
-+ AC_MSG_RESULT(needed)
-+ else
-+ AC_MSG_RESULT(not needed)
- fi
-+
- MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -I${SCHEME_INC} \
-! -DMZSCHEME_COLLECTS='\"${SCHEME_COLLECTS}collects\"'"
- MZSCHEME_SRC="if_mzsch.c"
- MZSCHEME_OBJ="objects/if_mzsch.o"
- MZSCHEME_PRO="if_mzsch.pro"
-*** ../vim-7.3.727/src/auto/configure 2012-10-03 21:09:33.000000000 +0200
---- src/auto/configure 2012-11-23 21:51:42.000000000 +0100
-***************
-*** 4957,4982 ****
- MZSCHEME_LIBS="${MZSCHEME_LIBS} -R ${vi_cv_path_mzscheme_pfx}/lib"
- fi
- 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} \
-! -DMZSCHEME_COLLECTS='\"${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects\"'"
- MZSCHEME_SRC="if_mzsch.c"
- MZSCHEME_OBJ="objects/if_mzsch.o"
- MZSCHEME_PRO="if_mzsch.pro"
---- 4957,5005 ----
- MZSCHEME_LIBS="${MZSCHEME_LIBS} -R ${vi_cv_path_mzscheme_pfx}/lib"
- fi
- fi
-+
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for racket collects directory" >&5
-+ $as_echo_n "checking for racket collects directory... " >&6; }
- if test -d $vi_cv_path_mzscheme_pfx/lib/plt/collects; then
-! SCHEME_COLLECTS=$vi_cv_path_mzscheme_pfx/lib/plt/
- else
- if test -d $vi_cv_path_mzscheme_pfx/lib/racket/collects; then
-! SCHEME_COLLECTS=$vi_cv_path_mzscheme_pfx/lib/racket/
-! else
-! if test -d $vi_cv_path_mzscheme_pfx/share/racket/collects; then
-! SCHEME_COLLECTS=$vi_cv_path_mzscheme_pfx/share/racket/
-! fi
- fi
- fi
-! if test "X$SCHEME_COLLECTS" != "X" ; then
-! { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${SCHEME_COLLECTS}" >&5
-! $as_echo "${SCHEME_COLLECTS}" >&6; }
-! else
-! { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
-! $as_echo "not found" >&6; }
-! fi
-!
-! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mzscheme_base.c" >&5
-! $as_echo_n "checking for mzscheme_base.c... " >&6; }
-! if test -f "${SCHEME_COLLECTS}collects/scheme/base.ss" ; then
- MZSCHEME_EXTRA="mzscheme_base.c"
- else
-! if test -f "${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"
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: needed" >&5
-+ $as_echo "needed" >&6; }
-+ else
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not needed" >&5
-+ $as_echo "not needed" >&6; }
- fi
-+
- MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -I${SCHEME_INC} \
-! -DMZSCHEME_COLLECTS='\"${SCHEME_COLLECTS}collects\"'"
- MZSCHEME_SRC="if_mzsch.c"
- MZSCHEME_OBJ="objects/if_mzsch.o"
- MZSCHEME_PRO="if_mzsch.pro"
-*** ../vim-7.3.727/src/version.c 2012-11-23 21:47:18.000000000 +0100
---- src/version.c 2012-11-23 21:54:13.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 728,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-60. As your car crashes through the guardrail on a mountain road, your first
- instinct is to search for the "back" button.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.729
-Fcc: 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.729
-Problem: Building with Ruby fails on some systems.
-Solution: Remove "static" and add #ifndef PROTO. (Ken Takata)
-Files: src/if_ruby.c
-
-
-*** ../vim-7.3.728/src/if_ruby.c 2012-11-20 16:59:09.000000000 +0100
---- src/if_ruby.c 2012-11-24 13:32:06.000000000 +0100
-***************
-*** 335,346 ****
- static void* (*ruby_process_options)(int, char**);
- #endif
-
-! #ifdef RUBY19_OR_LATER
-! static SIGNED_VALUE rb_num2long_stub(VALUE x)
- {
- return dll_rb_num2long(x);
- }
-! static VALUE rb_int2big_stub(SIGNED_VALUE x)
- {
- return dll_rb_int2big(x);
- }
---- 335,346 ----
- static void* (*ruby_process_options)(int, char**);
- #endif
-
-! #if defined(RUBY19_OR_LATER) && !defined(PROTO)
-! SIGNED_VALUE rb_num2long_stub(VALUE x)
- {
- return dll_rb_num2long(x);
- }
-! VALUE rb_int2big_stub(SIGNED_VALUE x)
- {
- return dll_rb_int2big(x);
- }
-*** ../vim-7.3.728/src/version.c 2012-11-23 21:54:43.000000000 +0100
---- src/version.c 2012-11-24 13:34:20.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 729,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-64. The remote to the T.V. is missing...and you don't even care.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.730
-Fcc: 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.730
-Problem: Crash in PHP file when using syntastic. (Ike Devolder)
-Solution: Avoid using NULL pointer. (Christian Brabandt)
-Files: src/quickfix.c
-
-
-*** ../vim-7.3.729/src/quickfix.c 2012-11-20 17:55:06.000000000 +0100
---- src/quickfix.c 2012-11-28 15:20:21.000000000 +0100
-***************
-*** 898,908 ****
- * way with ":grep'.
- */
- while (qi->qf_listcount > qi->qf_curlist + 1)
-- {
-- if (wp != NULL && wp->w_llist == qi)
-- wp->w_llist = NULL;
- qf_free(qi, --qi->qf_listcount);
-- }
-
- /*
- * When the stack is full, remove to oldest entry
---- 898,904 ----
-***************
-*** 910,917 ****
- */
- if (qi->qf_listcount == LISTCOUNT)
- {
-- if (wp != NULL && wp->w_llist == qi)
-- wp->w_llist = NULL;
- qf_free(qi, 0);
- for (i = 1; i < LISTCOUNT; ++i)
- qi->qf_lists[i - 1] = qi->qf_lists[i];
---- 906,911 ----
-***************
-*** 2135,2143 ****
- while (qi->qf_lists[idx].qf_count)
- {
- qfp = qi->qf_lists[idx].qf_start->qf_next;
-! vim_free(qi->qf_lists[idx].qf_start->qf_text);
-! vim_free(qi->qf_lists[idx].qf_start->qf_pattern);
-! vim_free(qi->qf_lists[idx].qf_start);
- qi->qf_lists[idx].qf_start = qfp;
- --qi->qf_lists[idx].qf_count;
- }
---- 2129,2140 ----
- while (qi->qf_lists[idx].qf_count)
- {
- qfp = qi->qf_lists[idx].qf_start->qf_next;
-! if (qi->qf_lists[idx].qf_title != NULL)
-! {
-! vim_free(qi->qf_lists[idx].qf_start->qf_text);
-! vim_free(qi->qf_lists[idx].qf_start->qf_pattern);
-! vim_free(qi->qf_lists[idx].qf_start);
-! }
- qi->qf_lists[idx].qf_start = qfp;
- --qi->qf_lists[idx].qf_count;
- }
-*** ../vim-7.3.729/src/version.c 2012-11-24 13:38:56.000000000 +0100
---- src/version.c 2012-11-28 15:16:16.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 730,
- /**/
-
-
---
-hundred-and-one symptoms of being an internet addict:
-89. In addition to your e-mail address being on your business
- cards you even have your own domain.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.731
-Fcc: 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.731
-Problem: Py3Init_vim() is exported uneccessarily.
-Solution: Make it static. (Ken Takata)
-Files: src/if_python3.c
-
-
-*** ../vim-7.3.730/src/if_python3.c 2012-11-20 11:02:49.000000000 +0100
---- src/if_python3.c 2012-11-28 15:32:00.000000000 +0100
-***************
-*** 657,663 ****
- static PyObject *globals;
-
- static int PythonIO_Init(void);
-! PyMODINIT_FUNC Py3Init_vim(void);
-
- /******************************************************
- * 1. Python interpreter main program.
---- 657,663 ----
- static PyObject *globals;
-
- static int PythonIO_Init(void);
-! static PyObject *Py3Init_vim(void);
-
- /******************************************************
- * 1. Python interpreter main program.
-***************
-*** 1773,1780 ****
-
- static struct PyModuleDef vimmodule;
-
-! #ifndef PROTO
-! PyMODINIT_FUNC Py3Init_vim(void)
- {
- PyObject *mod;
- PyObject *tmp;
---- 1773,1780 ----
-
- static struct PyModuleDef vimmodule;
-
-! static PyObject *
-! Py3Init_vim(void)
- {
- PyObject *mod;
- PyObject *tmp;
-***************
-*** 1824,1830 ****
-
- return mod;
- }
-- #endif
-
- /*************************************************************************
- * 4. Utility functions for handling the interface between Vim and Python.
---- 1824,1829 ----
-*** ../vim-7.3.730/src/version.c 2012-11-28 15:25:28.000000000 +0100
---- src/version.c 2012-11-28 15:30:47.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 731,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-90. Instead of calling you to dinner, your spouse sends e-mail.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.732
-Fcc: 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.732
-Problem: Compiler warnings for function arguments.
-Solution: Use inteptr_t instead of long.
-Files: src/if_mzsch.c
-
-
-*** ../vim-7.3.731/src/if_mzsch.c 2012-10-14 03:41:54.000000000 +0200
---- src/if_mzsch.c 2012-11-24 14:00:31.000000000 +0100
-***************
-*** 142,148 ****
- static int do_mzscheme_command(exarg_T *, void *, Scheme_Closed_Prim *what);
- static void startup_mzscheme(void);
- static char *string_to_line(Scheme_Object *obj);
-! static void do_output(char *mesg, long len);
- static void do_printf(char *format, ...);
- static void do_flush(void);
- static Scheme_Object *_apply_thunk_catch_exceptions(
---- 142,148 ----
- static int do_mzscheme_command(exarg_T *, void *, Scheme_Closed_Prim *what);
- static void startup_mzscheme(void);
- static char *string_to_line(Scheme_Object *obj);
-! static void do_output(char *mesg, intptr_t len);
- static void do_printf(char *format, ...);
- static void do_flush(void);
- static Scheme_Object *_apply_thunk_catch_exceptions(
-***************
-*** 1349,1356 ****
- }
-
- static void
-! do_output(char *mesg, long len UNUSED)
- {
- do_intrnl_output(mesg, 0);
- }
-
---- 1349,1357 ----
- }
-
- static void
-! do_output(char *mesg, intptr_t len UNUSED)
- {
-+ /* TODO: use len, the string may not be NUL terminated */
- do_intrnl_output(mesg, 0);
- }
-
-***************
-*** 1370,1376 ****
- do_flush(void)
- {
- char *buff;
-! long length;
-
- buff = scheme_get_sized_string_output(curerr, &length);
- MZ_GC_CHECK();
---- 1371,1377 ----
- do_flush(void)
- {
- char *buff;
-! intptr_t length;
-
- buff = scheme_get_sized_string_output(curerr, &length);
- MZ_GC_CHECK();
-***************
-*** 2588,2594 ****
- {
- char *scheme_str = NULL;
- char *vim_str = NULL;
-! long len;
- int i;
-
- scheme_str = scheme_display_to_string(obj, &len);
---- 2589,2595 ----
- {
- char *scheme_str = NULL;
- char *vim_str = NULL;
-! intptr_t len;
- int i;
-
- scheme_str = scheme_display_to_string(obj, &len);
-***************
-*** 2597,2606 ****
- * are replacing a single line, and we must replace it with
- * a single line.
- */
-! if (memchr(scheme_str, '\n', len))
- scheme_signal_error(_("string cannot contain newlines"));
-
-! vim_str = (char *)alloc(len + 1);
-
- /* Create a copy of the string, with internal nulls replaced by
- * newline characters, as is the vim convention.
---- 2598,2607 ----
- * are replacing a single line, and we must replace it with
- * a single line.
- */
-! if (memchr(scheme_str, '\n', (size_t)len))
- scheme_signal_error(_("string cannot contain newlines"));
-
-! vim_str = (char *)alloc((int)(len + 1));
-
- /* Create a copy of the string, with internal nulls replaced by
- * newline characters, as is the vim convention.
-*** ../vim-7.3.731/src/version.c 2012-11-28 15:33:10.000000000 +0100
---- src/version.c 2012-11-28 15:34:30.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 732,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-91. It's Saturday afternoon in the middle of May and you
- are on computer.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.733
-Fcc: 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.733
-Problem: Tests fail when including MzScheme.
-Solution: Change #ifdefs for vim_main2().
-Files: src/main.c
-
-
-*** ../vim-7.3.732/src/main.c 2012-04-25 18:24:24.000000000 +0200
---- src/main.c 2012-11-24 14:26:56.000000000 +0100
-***************
-*** 147,154 ****
- #define ME_INVALID_ARG 5
- };
-
-- #ifndef NO_VIM_MAIN /* skip this for unittests */
- #ifndef PROTO /* don't want a prototype for main() */
- int
- # ifdef VIMDLL
- _export
---- 147,154 ----
- #define ME_INVALID_ARG 5
- };
-
- #ifndef PROTO /* don't want a prototype for main() */
-+ #ifndef NO_VIM_MAIN /* skip this for unittests */
- int
- # ifdef VIMDLL
- _export
-***************
-*** 570,584 ****
- return mzscheme_main(2, args);
- }
- }
-
-! int vim_main2(int argc, char **argv)
- {
- char_u *fname = (char_u *)argv[0];
- mparm_T params;
-
- memcpy(&params, argv[1], sizeof(params));
- #endif
-
- /* Execute --cmd arguments. */
- exe_pre_commands(&params);
-
---- 570,596 ----
- return mzscheme_main(2, args);
- }
- }
-+ #endif
-+ #endif /* NO_VIM_MAIN */
-
-! /* vim_main2() needs to be produced when FEAT_MZSCHEME is defined even when
-! * NO_VIM_MAIN is defined. */
-! #ifdef FEAT_MZSCHEME
-! int
-! vim_main2(int argc UNUSED, char **argv UNUSED)
- {
-+ # ifndef NO_VIM_MAIN
- char_u *fname = (char_u *)argv[0];
- mparm_T params;
-
- memcpy(&params, argv[1], sizeof(params));
-+ # else
-+ return 0;
-+ }
-+ # endif
- #endif
-
-+ #ifndef NO_VIM_MAIN
- /* Execute --cmd arguments. */
- exe_pre_commands(&params);
-
-***************
-*** 999,1006 ****
-
- return 0;
- }
-- #endif /* PROTO */
- #endif /* NO_VIM_MAIN */
-
- /*
- * Main loop: Execute Normal mode commands until exiting Vim.
---- 1011,1018 ----
-
- return 0;
- }
- #endif /* NO_VIM_MAIN */
-+ #endif /* PROTO */
-
- /*
- * Main loop: Execute Normal mode commands until exiting Vim.
-*** ../vim-7.3.732/src/version.c 2012-11-28 15:37:46.000000000 +0100
---- src/version.c 2012-11-28 15:54:07.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 733,
- /**/
-
---
-From "know your smileys":
- :^[/ mean-smiley-with-cigarette
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.734
-Fcc: 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.734
-Problem: Cannot put help files in a sub-directory.
-Solution: Make :helptags work for sub-directories. (Charles Campbell)
-Files: src/ex_cmds.c
-
-
-*** ../vim-7.3.733/src/ex_cmds.c 2012-09-05 15:15:01.000000000 +0200
---- src/ex_cmds.c 2012-11-28 15:59:58.000000000 +0100
-***************
-*** 6344,6353 ****
- }
-
- #ifdef FEAT_MULTI_LANG
-! /* Get a list of all files in the directory. */
- STRCPY(NameBuff, dirname);
- add_pathsep(NameBuff);
-! STRCAT(NameBuff, "*");
- if (gen_expand_wildcards(1, &NameBuff, &filecount, &files,
- EW_FILE|EW_SILENT) == FAIL
- || filecount == 0)
---- 6344,6353 ----
- }
-
- #ifdef FEAT_MULTI_LANG
-! /* Get a list of all files in the help directory and in subdirectories. */
- STRCPY(NameBuff, dirname);
- add_pathsep(NameBuff);
-! STRCAT(NameBuff, "**");
- if (gen_expand_wildcards(1, &NameBuff, &filecount, &files,
- EW_FILE|EW_SILENT) == FAIL
- || filecount == 0)
-***************
-*** 6436,6443 ****
- helptags_one(dir, ext, tagfname, add_help_tags)
- char_u *dir; /* doc directory */
- char_u *ext; /* suffix, ".txt", ".itx", ".frx", etc. */
-! char_u *tagfname; /* "tags" for English, "tags-fr" for French. */
-! int add_help_tags; /* add "help-tags" tag */
- {
- FILE *fd_tags;
- FILE *fd;
---- 6436,6443 ----
- helptags_one(dir, ext, tagfname, add_help_tags)
- char_u *dir; /* doc directory */
- char_u *ext; /* suffix, ".txt", ".itx", ".frx", etc. */
-! char_u *tagfname; /* "tags" for English, "tags-fr" for French. */
-! int add_help_tags; /* add "help-tags" tag */
- {
- FILE *fd_tags;
- FILE *fd;
-***************
-*** 6449,6454 ****
---- 6449,6455 ----
- char_u *s;
- int i;
- char_u *fname;
-+ int dirlen;
- # ifdef FEAT_MBYTE
- int utf8 = MAYBE;
- int this_utf8;
-***************
-*** 6459,6467 ****
- /*
- * Find all *.txt files.
- */
- STRCPY(NameBuff, dir);
-! add_pathsep(NameBuff);
-! STRCAT(NameBuff, "*");
- STRCAT(NameBuff, ext);
- if (gen_expand_wildcards(1, &NameBuff, &filecount, &files,
- EW_FILE|EW_SILENT) == FAIL
---- 6460,6468 ----
- /*
- * Find all *.txt files.
- */
-+ dirlen = STRLEN(dir);
- STRCPY(NameBuff, dir);
-! STRCAT(NameBuff, "/**/*");
- STRCAT(NameBuff, ext);
- if (gen_expand_wildcards(1, &NameBuff, &filecount, &files,
- EW_FILE|EW_SILENT) == FAIL
-***************
-*** 6522,6528 ****
- EMSG2(_("E153: Unable to open %s for reading"), files[fi]);
- continue;
- }
-! fname = gettail(files[fi]);
-
- # ifdef FEAT_MBYTE
- firstline = TRUE;
---- 6523,6529 ----
- EMSG2(_("E153: Unable to open %s for reading"), files[fi]);
- continue;
- }
-! fname = files[fi] + dirlen + 1;
-
- # ifdef FEAT_MBYTE
- firstline = TRUE;
-*** ../vim-7.3.733/src/version.c 2012-11-28 15:55:37.000000000 +0100
---- src/version.c 2012-11-28 15:58:26.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 734,
- /**/
-
---
-From "know your smileys":
- y:-) Bad toupee
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.735
-Fcc: 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.735
-Problem: Cannot build Ruby 1.9 with MingW or Cygwin.
-Solution: Add another include directory. (Ken Takata)
-Files: src/Make_cyg.mak, src/Make_ming.mak
-
-
-*** ../vim-7.3.734/src/Make_cyg.mak 2012-07-06 13:40:44.000000000 +0200
---- src/Make_cyg.mak 2012-11-28 16:14:41.000000000 +0100
-***************
-*** 21,27 ****
- # TCL_VER define to version of TCL being used (83)
- # DYNAMIC_TCL no or yes: use yes to load the TCL DLL dynamically (yes)
- # RUBY define to path to Ruby dir to get Ruby support (not defined)
-! # RUBY_VER define to version of Ruby being used (16)
- # DYNAMIC_RUBY no or yes: use yes to load the Ruby DLL dynamically (yes)
- # MZSCHEME define to path to MzScheme dir to get MZSCHEME support (not defined)
- # MZSCHEME_VER define to version of MzScheme being used (209_000)
---- 21,31 ----
- # TCL_VER define to version of TCL being used (83)
- # DYNAMIC_TCL no or yes: use yes to load the TCL DLL dynamically (yes)
- # RUBY define to path to Ruby dir to get Ruby support (not defined)
-! # RUBY_VER define to version of Ruby being used (16)
-! # RUBY_VER_LONG same, but in format with dot. (1.6)
-! # You must set RUBY_VER_LONG when changing RUBY_VER.
-! # You must set RUBY_API_VER version to RUBY_VER_LONG.
-! # Don't set ruby API version to RUBY_VER like 191.
- # DYNAMIC_RUBY no or yes: use yes to load the Ruby DLL dynamically (yes)
- # MZSCHEME define to path to MzScheme dir to get MZSCHEME support (not defined)
- # MZSCHEME_VER define to version of MzScheme being used (209_000)
-***************
-*** 217,224 ****
---- 221,235 ----
- endif
- endif
-
-+ ifeq (19, $(word 1,$(sort 19 $(RUBY_VER))))
-+ RUBY_19_OR_LATER = 1
-+ endif
-+
- DEFINES += -DFEAT_RUBY
- INCLUDES += -I$(RUBY)/lib/ruby/$(RUBY_VER_LONG)/$(RUBY_PLATFORM)
-+ ifdef RUBY_19_OR_LATER
-+ INCLUDES += -I$(RUBY)/include/ruby-$(RUBY_VER_LONG) -I$(RUBY)/include/ruby-$(RUBY_VER_LONG)/$(RUBY_PLATFORM)
-+ endif
- EXTRA_OBJS += $(OUTDIR)/if_ruby.o
-
- ifeq (yes, $(DYNAMIC_RUBY))
-*** ../vim-7.3.734/src/Make_ming.mak 2012-09-05 17:57:34.000000000 +0200
---- src/Make_ming.mak 2012-11-28 16:14:16.000000000 +0100
-***************
-*** 301,307 ****
- endif
- endif
-
-! RUBYINC =-I $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/$(RUBY_PLATFORM) -I $(RUBY)/include/ruby-$(RUBY_VER_LONG) -I $(RUBY)/include/ruby-$(RUBY_VER_LONG)/$(RUBY_PLATFORM)
- ifeq (no, $(DYNAMIC_RUBY))
- RUBYLIB = -L$(RUBY)/lib -l$(RUBY_INSTALL_NAME)
- endif
---- 301,314 ----
- endif
- endif
-
-! ifeq (19, $(word 1,$(sort 19 $(RUBY_VER))))
-! RUBY_19_OR_LATER = 1
-! endif
-!
-! RUBYINC = -I $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/$(RUBY_PLATFORM)
-! ifdef RUBY_19_OR_LATER
-! RUBYINC += -I $(RUBY)/include/ruby-$(RUBY_VER_LONG) -I $(RUBY)/include/ruby-$(RUBY_VER_LONG)/$(RUBY_PLATFORM)
-! endif
- ifeq (no, $(DYNAMIC_RUBY))
- RUBYLIB = -L$(RUBY)/lib -l$(RUBY_INSTALL_NAME)
- endif
-*** ../vim-7.3.734/src/version.c 2012-11-28 16:06:13.000000000 +0100
---- src/version.c 2012-11-28 16:16:28.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 735,
- /**/
-
---
-From "know your smileys":
- :----} You lie like Pinocchio
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.736
-Fcc: 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.736
-Problem: File name completion in input() escapes white space. (Frederic
- Hardy)
-Solution: Do not escape white space. (Christian Brabandt)
-Files: src/ex_getln.c
-
-
-*** ../vim-7.3.735/src/ex_getln.c 2012-10-11 04:04:32.000000000 +0200
---- src/ex_getln.c 2012-11-28 16:42:12.000000000 +0100
-***************
-*** 102,108 ****
- static void redrawcmdprompt __ARGS((void));
- static void cursorcmd __ARGS((void));
- static int ccheck_abbr __ARGS((int));
-! static int nextwild __ARGS((expand_T *xp, int type, int options));
- static void escape_fname __ARGS((char_u **pp));
- static int showmatches __ARGS((expand_T *xp, int wildmenu));
- static void set_expand_context __ARGS((expand_T *xp));
---- 102,108 ----
- static void redrawcmdprompt __ARGS((void));
- static void cursorcmd __ARGS((void));
- static int ccheck_abbr __ARGS((int));
-! static int nextwild __ARGS((expand_T *xp, int type, int options, int escape));
- static void escape_fname __ARGS((char_u **pp));
- static int showmatches __ARGS((expand_T *xp, int wildmenu));
- static void set_expand_context __ARGS((expand_T *xp));
-***************
-*** 810,818 ****
- did_wild_list = TRUE;
- }
- if (wim_flags[wim_index] & WIM_LONGEST)
-! res = nextwild(&xpc, WILD_LONGEST, WILD_NO_BEEP);
- else if (wim_flags[wim_index] & WIM_FULL)
-! res = nextwild(&xpc, WILD_NEXT, WILD_NO_BEEP);
- else
- res = OK; /* don't insert 'wildchar' now */
- }
---- 810,820 ----
- did_wild_list = TRUE;
- }
- if (wim_flags[wim_index] & WIM_LONGEST)
-! res = nextwild(&xpc, WILD_LONGEST, WILD_NO_BEEP,
-! firstc != '@');
- else if (wim_flags[wim_index] & WIM_FULL)
-! res = nextwild(&xpc, WILD_NEXT, WILD_NO_BEEP,
-! firstc != '@');
- else
- res = OK; /* don't insert 'wildchar' now */
- }
-***************
-*** 823,831 ****
- /* if 'wildmode' first contains "longest", get longest
- * common part */
- if (wim_flags[0] & WIM_LONGEST)
-! res = nextwild(&xpc, WILD_LONGEST, WILD_NO_BEEP);
- else
-! res = nextwild(&xpc, WILD_EXPAND_KEEP, WILD_NO_BEEP);
-
- /* if interrupted while completing, behave like it failed */
- if (got_int)
---- 825,835 ----
- /* if 'wildmode' first contains "longest", get longest
- * common part */
- if (wim_flags[0] & WIM_LONGEST)
-! res = nextwild(&xpc, WILD_LONGEST, WILD_NO_BEEP,
-! firstc != '@');
- else
-! res = nextwild(&xpc, WILD_EXPAND_KEEP, WILD_NO_BEEP,
-! firstc != '@');
-
- /* if interrupted while completing, behave like it failed */
- if (got_int)
-***************
-*** 860,866 ****
- int p_wmnu_save = p_wmnu;
- p_wmnu = 0;
- #endif
-! nextwild(&xpc, WILD_PREV, 0); /* remove match */
- #ifdef FEAT_WILDMENU
- p_wmnu = p_wmnu_save;
- #endif
---- 864,871 ----
- int p_wmnu_save = p_wmnu;
- p_wmnu = 0;
- #endif
-! /* remove match */
-! nextwild(&xpc, WILD_PREV, 0, firstc != '@');
- #ifdef FEAT_WILDMENU
- p_wmnu = p_wmnu_save;
- #endif
-***************
-*** 874,882 ****
- redrawcmd();
- did_wild_list = TRUE;
- if (wim_flags[wim_index] & WIM_LONGEST)
-! nextwild(&xpc, WILD_LONGEST, WILD_NO_BEEP);
- else if (wim_flags[wim_index] & WIM_FULL)
-! nextwild(&xpc, WILD_NEXT, WILD_NO_BEEP);
- }
- else
- vim_beep();
---- 879,889 ----
- redrawcmd();
- did_wild_list = TRUE;
- if (wim_flags[wim_index] & WIM_LONGEST)
-! nextwild(&xpc, WILD_LONGEST, WILD_NO_BEEP,
-! firstc != '@');
- else if (wim_flags[wim_index] & WIM_FULL)
-! nextwild(&xpc, WILD_NEXT, WILD_NO_BEEP,
-! firstc != '@');
- }
- else
- vim_beep();
-***************
-*** 899,907 ****
- /* <S-Tab> goes to last match, in a clumsy way */
- if (c == K_S_TAB && KeyTyped)
- {
-! if (nextwild(&xpc, WILD_EXPAND_KEEP, 0) == OK
-! && nextwild(&xpc, WILD_PREV, 0) == OK
-! && nextwild(&xpc, WILD_PREV, 0) == OK)
- goto cmdline_changed;
- }
-
---- 906,914 ----
- /* <S-Tab> goes to last match, in a clumsy way */
- if (c == K_S_TAB && KeyTyped)
- {
-! if (nextwild(&xpc, WILD_EXPAND_KEEP, 0, firstc != '@') == OK
-! && nextwild(&xpc, WILD_PREV, 0, firstc != '@') == OK
-! && nextwild(&xpc, WILD_PREV, 0, firstc != '@') == OK)
- goto cmdline_changed;
- }
-
-***************
-*** 1418,1424 ****
- goto cmdline_not_changed;
-
- case Ctrl_A: /* all matches */
-! if (nextwild(&xpc, WILD_ALL, 0) == FAIL)
- break;
- goto cmdline_changed;
-
---- 1425,1431 ----
- goto cmdline_not_changed;
-
- case Ctrl_A: /* all matches */
-! if (nextwild(&xpc, WILD_ALL, 0, firstc != '@') == FAIL)
- break;
- goto cmdline_changed;
-
-***************
-*** 1454,1460 ****
- #endif
-
- /* completion: longest common part */
-! if (nextwild(&xpc, WILD_LONGEST, 0) == FAIL)
- break;
- goto cmdline_changed;
-
---- 1461,1467 ----
- #endif
-
- /* completion: longest common part */
-! if (nextwild(&xpc, WILD_LONGEST, 0, firstc != '@') == FAIL)
- break;
- goto cmdline_changed;
-
-***************
-*** 1462,1469 ****
- case Ctrl_P: /* previous match */
- if (xpc.xp_numfiles > 0)
- {
-! if (nextwild(&xpc, (c == Ctrl_P) ? WILD_PREV : WILD_NEXT, 0)
-! == FAIL)
- break;
- goto cmdline_changed;
- }
---- 1469,1476 ----
- case Ctrl_P: /* previous match */
- if (xpc.xp_numfiles > 0)
- {
-! if (nextwild(&xpc, (c == Ctrl_P) ? WILD_PREV : WILD_NEXT,
-! 0, firstc != '@') == FAIL)
- break;
- goto cmdline_changed;
- }
-***************
-*** 3338,3347 ****
- * normal character (instead of being expanded). This allows :s/^I^D etc.
- */
- static int
-! nextwild(xp, type, options)
- expand_T *xp;
- int type;
- int options; /* extra options for ExpandOne() */
- {
- int i, j;
- char_u *p1;
---- 3345,3355 ----
- * normal character (instead of being expanded). This allows :s/^I^D etc.
- */
- static int
-! nextwild(xp, type, options, escape)
- expand_T *xp;
- int type;
- int options; /* extra options for ExpandOne() */
-+ int escape; /* if TRUE, escape the returned matches */
- {
- int i, j;
- char_u *p1;
-***************
-*** 3390,3396 ****
- else
- {
- int use_options = options |
-! WILD_HOME_REPLACE|WILD_ADD_SLASH|WILD_SILENT|WILD_ESCAPE;
-
- if (p_wic)
- use_options += WILD_ICASE;
---- 3398,3406 ----
- else
- {
- int use_options = options |
-! WILD_HOME_REPLACE|WILD_ADD_SLASH|WILD_SILENT;
-! if (escape)
-! use_options |= WILD_ESCAPE;
-
- if (p_wic)
- use_options += WILD_ICASE;
-*** ../vim-7.3.735/src/version.c 2012-11-28 16:18:26.000000000 +0100
---- src/version.c 2012-11-28 16:30:45.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 736,
- /**/
-
---
-From "know your smileys":
- ;-0 Can't find shift key
- ,-9 Kann Umschalttaste nicht finden
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.737
-Fcc: 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.737
-Problem: When using do_cmdline() recursively did_endif is not reset,
- causing messages to be overwritten.
-Solution: Reset did_endif. (Christian Brabandt)
-Files: src/ex_docmd.c
-
-
-*** ../vim-7.3.736/src/ex_docmd.c 2012-10-03 18:24:55.000000000 +0200
---- src/ex_docmd.c 2012-11-28 17:25:27.000000000 +0100
-***************
-*** 1536,1541 ****
---- 1536,1543 ----
- if_level = 0;
- #endif
-
-+ did_endif = FALSE; /* in case do_cmdline used recursively */
-+
- --call_depth;
- return retval;
- }
-*** ../vim-7.3.736/src/version.c 2012-11-28 16:49:53.000000000 +0100
---- src/version.c 2012-11-28 17:33:54.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 737,
- /**/
-
---
-From "know your smileys":
- :-) Funny
- |-) Funny Oriental
- (-: Funny Australian
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.738
-Fcc: 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.738 (after 7.3.730)
-Problem: Unused function argument.
-Solution: Remove it. (Christian Brabandt)
-Files: src/quickfix.c
-
-
-*** ../vim-7.3.737/src/quickfix.c 2012-11-28 15:25:28.000000000 +0100
---- src/quickfix.c 2012-11-28 17:36:26.000000000 +0100
-***************
-*** 107,113 ****
- };
-
- static int qf_init_ext __ARGS((qf_info_T *qi, char_u *efile, buf_T *buf, typval_T *tv, char_u *errorformat, int newlist, linenr_T lnumfirst, linenr_T lnumlast, char_u *qf_title));
-! static void qf_new_list __ARGS((qf_info_T *qi, char_u *qf_title, win_T *wp));
- static void ll_free_all __ARGS((qf_info_T **pqi));
- static int qf_add_entry __ARGS((qf_info_T *qi, qfline_T **prevp, char_u *dir, char_u *fname, int bufnum, char_u *mesg, long lnum, int col, int vis_col, char_u *pattern, int nr, int type, int valid));
- static qf_info_T *ll_new_list __ARGS((void));
---- 107,113 ----
- };
-
- static int qf_init_ext __ARGS((qf_info_T *qi, char_u *efile, buf_T *buf, typval_T *tv, char_u *errorformat, int newlist, linenr_T lnumfirst, linenr_T lnumlast, char_u *qf_title));
-! static void qf_new_list __ARGS((qf_info_T *qi, char_u *qf_title));
- static void ll_free_all __ARGS((qf_info_T **pqi));
- static int qf_add_entry __ARGS((qf_info_T *qi, qfline_T **prevp, char_u *dir, char_u *fname, int bufnum, char_u *mesg, long lnum, int col, int vis_col, char_u *pattern, int nr, int type, int valid));
- static qf_info_T *ll_new_list __ARGS((void));
-***************
-*** 266,272 ****
-
- if (newlist || qi->qf_curlist == qi->qf_listcount)
- /* make place for a new list */
-! qf_new_list(qi, qf_title, curwin);
- else if (qi->qf_lists[qi->qf_curlist].qf_count > 0)
- /* Adding to existing list, find last entry. */
- for (qfprev = qi->qf_lists[qi->qf_curlist].qf_start;
---- 266,272 ----
-
- if (newlist || qi->qf_curlist == qi->qf_listcount)
- /* make place for a new list */
-! qf_new_list(qi, qf_title);
- else if (qi->qf_lists[qi->qf_curlist].qf_count > 0)
- /* Adding to existing list, find last entry. */
- for (qfprev = qi->qf_lists[qi->qf_curlist].qf_start;
-***************
-*** 885,894 ****
- * Prepare for adding a new quickfix list.
- */
- static void
-! qf_new_list(qi, qf_title, wp)
- qf_info_T *qi;
- char_u *qf_title;
-- win_T *wp;
- {
- int i;
-
---- 885,893 ----
- * Prepare for adding a new quickfix list.
- */
- static void
-! qf_new_list(qi, qf_title)
- qf_info_T *qi;
- char_u *qf_title;
- {
- int i;
-
-***************
-*** 3187,3193 ****
- eap->cmdidx != CMD_vimgrepadd && eap->cmdidx != CMD_lvimgrepadd)
- || qi->qf_curlist == qi->qf_listcount)
- /* make place for a new list */
-! qf_new_list(qi, *eap->cmdlinep, curwin);
- else if (qi->qf_lists[qi->qf_curlist].qf_count > 0)
- /* Adding to existing list, find last entry. */
- for (prevp = qi->qf_lists[qi->qf_curlist].qf_start;
---- 3186,3192 ----
- eap->cmdidx != CMD_vimgrepadd && eap->cmdidx != CMD_lvimgrepadd)
- || qi->qf_curlist == qi->qf_listcount)
- /* make place for a new list */
-! qf_new_list(qi, *eap->cmdlinep);
- else if (qi->qf_lists[qi->qf_curlist].qf_count > 0)
- /* Adding to existing list, find last entry. */
- for (prevp = qi->qf_lists[qi->qf_curlist].qf_start;
-***************
-*** 3753,3759 ****
-
- if (action == ' ' || qi->qf_curlist == qi->qf_listcount)
- /* make place for a new list */
-! qf_new_list(qi, title, wp);
- else if (action == 'a' && qi->qf_lists[qi->qf_curlist].qf_count > 0)
- /* Adding to existing list, find last entry. */
- for (prevp = qi->qf_lists[qi->qf_curlist].qf_start;
---- 3752,3758 ----
-
- if (action == ' ' || qi->qf_curlist == qi->qf_listcount)
- /* make place for a new list */
-! qf_new_list(qi, title);
- else if (action == 'a' && qi->qf_lists[qi->qf_curlist].qf_count > 0)
- /* Adding to existing list, find last entry. */
- for (prevp = qi->qf_lists[qi->qf_curlist].qf_start;
-***************
-*** 4035,4041 ****
- #endif
-
- /* create a new quickfix list */
-! qf_new_list(qi, *eap->cmdlinep, wp);
-
- /* Go through all directories in 'runtimepath' */
- p = p_rtp;
---- 4034,4040 ----
- #endif
-
- /* create a new quickfix list */
-! qf_new_list(qi, *eap->cmdlinep);
-
- /* Go through all directories in 'runtimepath' */
- p = p_rtp;
-*** ../vim-7.3.737/src/version.c 2012-11-28 17:34:43.000000000 +0100
---- src/version.c 2012-11-28 17:37:20.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 738,
- /**/
-
---
-From "know your smileys":
- :-H Is missing teeth
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.739
-Fcc: 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.739
-Problem: Computing number of lines may have an integer overflow.
-Solution: Check for MAXCOL explicitly. (Dominique Pelle)
-Files: src/move.c
-
-
-*** ../vim-7.3.738/src/move.c 2012-03-28 14:19:46.000000000 +0200
---- src/move.c 2012-11-28 18:15:42.000000000 +0100
-***************
-*** 2576,2582 ****
- else
- topline_back(lp);
- h2 = lp->height;
-! if (h2 + h1 > min_height)
- {
- *lp = loff0; /* no overlap */
- return;
---- 2576,2582 ----
- else
- topline_back(lp);
- h2 = lp->height;
-! if (h2 == MAXCOL || h2 + h1 > min_height)
- {
- *lp = loff0; /* no overlap */
- return;
-***************
-*** 2588,2594 ****
- else
- topline_back(lp);
- h3 = lp->height;
-! if (h3 + h2 > min_height)
- {
- *lp = loff0; /* no overlap */
- return;
---- 2588,2594 ----
- else
- topline_back(lp);
- h3 = lp->height;
-! if (h3 == MAXCOL || h3 + h2 > min_height)
- {
- *lp = loff0; /* no overlap */
- return;
-***************
-*** 2600,2606 ****
- else
- topline_back(lp);
- h4 = lp->height;
-! if (h4 + h3 + h2 > min_height || h3 + h2 + h1 > min_height)
- *lp = loff1; /* 1 line overlap */
- else
- *lp = loff2; /* 2 lines overlap */
---- 2600,2606 ----
- else
- topline_back(lp);
- h4 = lp->height;
-! if (h4 == MAXCOL || h4 + h3 + h2 > min_height || h3 + h2 + h1 > min_height)
- *lp = loff1; /* 1 line overlap */
- else
- *lp = loff2; /* 2 lines overlap */
-*** ../vim-7.3.738/src/version.c 2012-11-28 17:41:55.000000000 +0100
---- src/version.c 2012-11-28 18:16:40.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 739,
- /**/
-
---
-From "know your smileys":
- !-| I-am-a-Cylon-Centurian-with-one-red-eye-bouncing-back-and-forth
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.740
-Fcc: 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.740
-Problem: IOC tool complains about undefined behavior for int.
-Solution: Change to unsigned int. (Dominique Pelle)
-Files: src/hashtab.c, src/misc2.c
-
-
-*** ../vim-7.3.739/src/hashtab.c 2010-08-15 21:57:25.000000000 +0200
---- src/hashtab.c 2012-11-28 18:27:46.000000000 +0100
-***************
-*** 138,144 ****
- hash_T perturb;
- hashitem_T *freeitem;
- hashitem_T *hi;
-! int idx;
-
- #ifdef HT_DEBUG
- ++hash_count_lookup;
---- 138,144 ----
- hash_T perturb;
- hashitem_T *freeitem;
- hashitem_T *hi;
-! unsigned idx;
-
- #ifdef HT_DEBUG
- ++hash_count_lookup;
-***************
-*** 150,156 ****
- * - skip over a removed item
- * - return if the item matches
- */
-! idx = (int)(hash & ht->ht_mask);
- hi = &ht->ht_array[idx];
-
- if (hi->hi_key == NULL)
---- 150,156 ----
- * - skip over a removed item
- * - return if the item matches
- */
-! idx = (unsigned)(hash & ht->ht_mask);
- hi = &ht->ht_array[idx];
-
- if (hi->hi_key == NULL)
-***************
-*** 176,182 ****
- #ifdef HT_DEBUG
- ++hash_count_perturb; /* count a "miss" for hashtab lookup */
- #endif
-! idx = (int)((idx << 2) + idx + perturb + 1);
- hi = &ht->ht_array[idx & ht->ht_mask];
- if (hi->hi_key == NULL)
- return freeitem == NULL ? hi : freeitem;
---- 176,182 ----
- #ifdef HT_DEBUG
- ++hash_count_perturb; /* count a "miss" for hashtab lookup */
- #endif
-! idx = (unsigned)((idx << 2U) + idx + perturb + 1U);
- hi = &ht->ht_array[idx & ht->ht_mask];
- if (hi->hi_key == NULL)
- return freeitem == NULL ? hi : freeitem;
-***************
-*** 342,348 ****
- hashitem_T temparray[HT_INIT_SIZE];
- hashitem_T *oldarray, *newarray;
- hashitem_T *olditem, *newitem;
-! int newi;
- int todo;
- long_u oldsize, newsize;
- long_u minsize;
---- 342,348 ----
- hashitem_T temparray[HT_INIT_SIZE];
- hashitem_T *oldarray, *newarray;
- hashitem_T *olditem, *newitem;
-! unsigned newi;
- int todo;
- long_u oldsize, newsize;
- long_u minsize;
-***************
-*** 448,460 ****
- * the algorithm to find an item in hash_lookup(). But we only
- * need to search for a NULL key, thus it's simpler.
- */
-! newi = (int)(olditem->hi_hash & newmask);
- newitem = &newarray[newi];
-
- if (newitem->hi_key != NULL)
- for (perturb = olditem->hi_hash; ; perturb >>= PERTURB_SHIFT)
- {
-! newi = (int)((newi << 2) + newi + perturb + 1);
- newitem = &newarray[newi & newmask];
- if (newitem->hi_key == NULL)
- break;
---- 448,460 ----
- * the algorithm to find an item in hash_lookup(). But we only
- * need to search for a NULL key, thus it's simpler.
- */
-! newi = (unsigned)(olditem->hi_hash & newmask);
- newitem = &newarray[newi];
-
- if (newitem->hi_key != NULL)
- for (perturb = olditem->hi_hash; ; perturb >>= PERTURB_SHIFT)
- {
-! newi = (unsigned)((newi << 2U) + newi + perturb + 1U);
- newitem = &newarray[newi & newmask];
- if (newitem->hi_key == NULL)
- break;
-*** ../vim-7.3.739/src/misc2.c 2012-08-15 16:20:59.000000000 +0200
---- src/misc2.c 2012-11-28 18:27:46.000000000 +0100
-***************
-*** 3860,3866 ****
- ush temp; \
- \
- temp = (ush)keys[2] | 2; \
-! t = (int)(((unsigned)(temp * (temp ^ 1)) >> 8) & 0xff); \
- }
-
- /*
---- 3860,3866 ----
- ush temp; \
- \
- temp = (ush)keys[2] | 2; \
-! t = (int)(((unsigned)(temp * (temp ^ 1U)) >> 8) & 0xff); \
- }
-
- /*
-***************
-*** 4002,4008 ****
- ush temp;
-
- temp = (ush)keys[2] | 2;
-! temp = (int)(((unsigned)(temp * (temp ^ 1)) >> 8) & 0xff);
- UPDATE_KEYS_ZIP(*p ^= temp);
- }
- else
---- 4002,4008 ----
- ush temp;
-
- temp = (ush)keys[2] | 2;
-! temp = (int)(((unsigned)(temp * (temp ^ 1U)) >> 8) & 0xff);
- UPDATE_KEYS_ZIP(*p ^= temp);
- }
- else
-*** ../vim-7.3.739/src/version.c 2012-11-28 18:22:04.000000000 +0100
---- src/version.c 2012-11-28 18:28:00.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 740,
- /**/
-
---
-From "know your smileys":
- ~#:-( I just washed my hair, and I can't do nuthin' with 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.741
-Fcc: 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.741 (after 7.3.737)
-Problem: Tiny build fails.
-Solution: Move #ifdef. (Ike Devolder)
-Files: src/ex_docmd.c
-
-
-*** ../vim-7.3.740/src/ex_docmd.c 2012-11-28 17:34:43.000000000 +0100
---- src/ex_docmd.c 2012-11-28 19:09:39.000000000 +0100
-***************
-*** 1534,1542 ****
- * ":endif" (could be ":if x | foo | endif").
- */
- if_level = 0;
-- #endif
-
- did_endif = FALSE; /* in case do_cmdline used recursively */
-
- --call_depth;
- return retval;
---- 1534,1542 ----
- * ":endif" (could be ":if x | foo | endif").
- */
- if_level = 0;
-
- did_endif = FALSE; /* in case do_cmdline used recursively */
-+ #endif
-
- --call_depth;
- return retval;
-*** ../vim-7.3.740/src/version.c 2012-11-28 18:31:49.000000000 +0100
---- src/version.c 2012-11-28 19:09:15.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 741,
- /**/
-
---
-From "know your smileys":
- :-O>-o Smiley American tourist (note big mouth and camera)
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.742
-Fcc: 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.742
-Problem: Leaking memory when :vimgrep restores the directory.
-Solution: Free the allocated memory. (Christian Brabandt)
-Files: src/quickfix.c
-
-
-*** ../vim-7.3.741/src/quickfix.c 2012-11-28 17:41:55.000000000 +0100
---- src/quickfix.c 2012-11-28 22:09:40.000000000 +0100
-***************
-*** 3515,3520 ****
---- 3515,3521 ----
- ea.cmdidx = (curwin->w_localdir == NULL) ? CMD_cd : CMD_lcd;
- ex_cd(&ea);
- }
-+ vim_free(dirname_now);
- }
- }
-
-*** ../vim-7.3.741/src/version.c 2012-11-28 19:10:51.000000000 +0100
---- src/version.c 2012-11-28 22:11:50.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 742,
- /**/
-
---
-How many light bulbs does it take to change a person?
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.743
-Fcc: 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.743 (after 7.3.741)
-Problem: Tiny build still fails.
-Solution: Add #else in the right place.
-Files: src/ex_docmd.c
-
-
-*** ../vim-7.3.742/src/ex_docmd.c 2012-11-28 19:10:51.000000000 +0100
---- src/ex_docmd.c 2012-11-28 22:14:21.000000000 +0100
-***************
-*** 1528,1541 ****
- }
- }
-
-! #ifndef FEAT_EVAL
- /*
- * Reset if_level, in case a sourced script file contains more ":if" than
- * ":endif" (could be ":if x | foo | endif").
- */
- if_level = 0;
--
-- did_endif = FALSE; /* in case do_cmdline used recursively */
- #endif
-
- --call_depth;
---- 1528,1541 ----
- }
- }
-
-! #ifdef FEAT_EVAL
-! did_endif = FALSE; /* in case do_cmdline used recursively */
-! #else
- /*
- * Reset if_level, in case a sourced script file contains more ":if" than
- * ":endif" (could be ":if x | foo | endif").
- */
- if_level = 0;
- #endif
-
- --call_depth;
-*** ../vim-7.3.742/src/version.c 2012-11-28 22:12:40.000000000 +0100
---- src/version.c 2012-11-28 22:15:15.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 743,
- /**/
-
---
-From "know your smileys":
- :-)-O Smiling doctor with stethoscope
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.744
-Fcc: 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.744
-Problem: 64 bit compiler warning.
-Solution: Add type cast. (Mike Williams)
-Files: src/ex_cmds.c
-
-
-*** ../vim-7.3.743/src/ex_cmds.c 2012-11-28 16:06:13.000000000 +0100
---- src/ex_cmds.c 2012-11-29 20:08:10.000000000 +0100
-***************
-*** 6460,6466 ****
- /*
- * Find all *.txt files.
- */
-! dirlen = STRLEN(dir);
- STRCPY(NameBuff, dir);
- STRCAT(NameBuff, "/**/*");
- STRCAT(NameBuff, ext);
---- 6460,6466 ----
- /*
- * Find all *.txt files.
- */
-! dirlen = (int)STRLEN(dir);
- STRCPY(NameBuff, dir);
- STRCAT(NameBuff, "/**/*");
- STRCAT(NameBuff, ext);
-*** ../vim-7.3.743/src/version.c 2012-11-28 23:03:02.000000000 +0100
---- src/version.c 2012-11-29 20:08:37.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 744,
- /**/
-
---
-From "know your smileys":
- *<|:-) Santa Claus (Ho Ho Ho)
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.745
-Fcc: 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.745
-Problem: Automatically setting 'ttymouse' doesn't work.
-Solution: Reset the "option was set" flag when using the default.
-Files: src/option.c, src/proto/option.pro, src/term.c
-
-
-*** ../vim-7.3.744/src/option.c 2012-10-21 03:45:57.000000000 +0200
---- src/option.c 2012-12-03 20:07:32.000000000 +0100
-***************
-*** 11179,11184 ****
---- 11179,11197 ----
- }
-
- /*
-+ * Reset the flag indicating option "name" was set.
-+ */
-+ void
-+ reset_option_was_set(name)
-+ char_u *name;
-+ {
-+ int idx = findoption(name);
-+
-+ if (idx >= 0)
-+ options[idx].flags &= ~P_WAS_SET;
-+ }
-+
-+ /*
- * compatible_set() - Called when 'compatible' has been set or unset.
- *
- * When 'compatible' set: Set all relevant options (those that have the P_VIM)
-*** ../vim-7.3.744/src/proto/option.pro 2012-10-21 00:10:29.000000000 +0200
---- src/proto/option.pro 2012-12-03 20:08:36.000000000 +0100
-***************
-*** 52,57 ****
---- 52,58 ----
- void vimrc_found __ARGS((char_u *fname, char_u *envname));
- void change_compatible __ARGS((int on));
- int option_was_set __ARGS((char_u *name));
-+ void reset_option_was_set __ARGS((char_u *name));
- int can_bs __ARGS((int what));
- void save_file_ff __ARGS((buf_T *buf));
- int file_ff_differs __ARGS((buf_T *buf, int ignore_empty));
-*** ../vim-7.3.744/src/term.c 2012-10-21 02:10:20.000000000 +0200
---- src/term.c 2012-12-03 20:09:28.000000000 +0100
-***************
-*** 1864,1870 ****
---- 1864,1875 ----
- }
- # endif
- if (p != NULL)
-+ {
- set_option_value((char_u *)"ttym", 0L, p, 0);
-+ /* Reset the WAS_SET flag, 'ttymouse' can be set to "sgr" or
-+ * "xterm2" in check_termcode(). */
-+ reset_option_was_set((char_u *)"ttym");
-+ }
- if (p == NULL
- # ifdef FEAT_GUI
- || gui.in_use
-*** ../vim-7.3.744/src/version.c 2012-11-29 20:09:55.000000000 +0100
---- src/version.c 2012-12-05 14:39:33.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 745,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-97. Your mother tells you to remember something, and you look for
- a File/Save command.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.746
-Fcc: 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.746
-Problem: Memory leaks when using location lists.
-Solution: Set qf_title to something. (Christian Brabandt)
-Files: src/eval.c, src/quickfix.c
-
-
-*** ../vim-7.3.745/src/eval.c 2012-10-21 23:55:59.000000000 +0200
---- src/eval.c 2012-12-05 14:47:56.000000000 +0100
-***************
-*** 16292,16298 ****
- action = *act;
- }
-
-! if (l != NULL && set_errorlist(wp, l, action, NULL) == OK)
- rettv->vval.v_number = 0;
- }
- #endif
---- 16292,16299 ----
- action = *act;
- }
-
-! if (l != NULL && set_errorlist(wp, l, action,
-! (char_u *)(wp == NULL ? "setqflist()" : "setloclist()")) == OK)
- rettv->vval.v_number = 0;
- }
- #endif
-*** ../vim-7.3.745/src/quickfix.c 2012-11-28 22:12:40.000000000 +0100
---- src/quickfix.c 2012-12-05 14:51:52.000000000 +0100
-***************
-*** 2124,2138 ****
- int idx;
- {
- qfline_T *qfp;
-
- while (qi->qf_lists[idx].qf_count)
- {
- qfp = qi->qf_lists[idx].qf_start->qf_next;
-! if (qi->qf_lists[idx].qf_title != NULL)
- {
- vim_free(qi->qf_lists[idx].qf_start->qf_text);
- vim_free(qi->qf_lists[idx].qf_start->qf_pattern);
- vim_free(qi->qf_lists[idx].qf_start);
- }
- qi->qf_lists[idx].qf_start = qfp;
- --qi->qf_lists[idx].qf_count;
---- 2124,2145 ----
- int idx;
- {
- qfline_T *qfp;
-+ int stop = FALSE;
-
- while (qi->qf_lists[idx].qf_count)
- {
- qfp = qi->qf_lists[idx].qf_start->qf_next;
-! if (qi->qf_lists[idx].qf_title != NULL && !stop)
- {
- vim_free(qi->qf_lists[idx].qf_start->qf_text);
-+ stop = (qi->qf_lists[idx].qf_start == qfp);
- vim_free(qi->qf_lists[idx].qf_start->qf_pattern);
- vim_free(qi->qf_lists[idx].qf_start);
-+ if (stop)
-+ /* Somehow qf_count may have an incorrect value, set it to 1
-+ * to avoid crashing when it's wrong.
-+ * TODO: Avoid qf_count being incorrect. */
-+ qi->qf_lists[idx].qf_count = 1;
- }
- qi->qf_lists[idx].qf_start = qfp;
- --qi->qf_lists[idx].qf_count;
-*** ../vim-7.3.745/src/version.c 2012-12-05 14:42:56.000000000 +0100
---- src/version.c 2012-12-05 15:15:45.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 746,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-98. The Alta Vista administrators ask you what sites are missing
- in their index files.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.747
-Fcc: 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.747
-Problem: When characters are concealed text aligned with tabs are no longer
- aligned, e.g. at ":help :index".
-Solution: Compensate space for tabs for concealed characters. (Dominique
- Pelle)
-Files: src/screen.c
-
-
-*** ../vim-7.3.746/src/screen.c 2012-10-03 18:24:55.000000000 +0200
---- src/screen.c 2012-12-05 15:22:03.000000000 +0100
-***************
-*** 4269,4275 ****
- {
- /* tab amount depends on current column */
- n_extra = (int)wp->w_buffer->b_p_ts
-! - VCOL_HLC % (int)wp->w_buffer->b_p_ts - 1;
- #ifdef FEAT_MBYTE
- mb_utf8 = FALSE; /* don't draw as UTF-8 */
- #endif
---- 4269,4288 ----
- {
- /* tab amount depends on current column */
- n_extra = (int)wp->w_buffer->b_p_ts
-! - vcol % (int)wp->w_buffer->b_p_ts - 1;
-! #ifdef FEAT_CONCEAL
-! /* Tab alignment should be identical regardless of
-! * 'conceallevel' value. So tab compensates of all
-! * previous concealed characters, and thus resets vcol_off
-! * and boguscols accumulated so far in the line. Note that
-! * the tab can be longer than 'tabstop' when there
-! * are concealed characters. */
-! n_extra += vcol_off;
-! vcol -= vcol_off;
-! vcol_off = 0;
-! col -= boguscols;
-! boguscols = 0;
-! #endif
- #ifdef FEAT_MBYTE
- mb_utf8 = FALSE; /* don't draw as UTF-8 */
- #endif
-*** ../vim-7.3.746/src/version.c 2012-12-05 15:16:42.000000000 +0100
---- src/version.c 2012-12-05 15:22:27.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 747,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-99. The hum of a cooling fan and the click of keys is comforting to you.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.748
-Fcc: 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.748
-Problem: Cannot properly test conceal mode.
-Solution: Add the screencol() and screenrow() functions. Use them in
- test88. (Simon Ruderich)
-Files: runtime/doc/eval.txt, src/eval.c, src/proto/screen.pro,
- src/screen.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/test88.in,
- src/testdir/test88.ok
-
-
-*** ../vim-7.3.747/runtime/doc/eval.txt 2012-11-14 18:10:49.000000000 +0100
---- runtime/doc/eval.txt 2012-12-05 15:45:34.000000000 +0100
-***************
-*** 1892,1897 ****
---- 1903,1910 ----
- resolve( {filename}) String get filename a shortcut points to
- reverse( {list}) List reverse {list} in-place
- round( {expr}) Float round off {expr}
-+ screencol() Number current cursor column
-+ screenrow() Number current cursor row
- search( {pattern} [, {flags} [, {stopline} [, {timeout}]]])
- Number search for {pattern}
- searchdecl( {name} [, {global} [, {thisblock}]])
-***************
-*** 4848,4862 ****
- echo round(-4.5)
- < -5.0
- {only available when compiled with the |+float| feature}
-!
-!
- search({pattern} [, {flags} [, {stopline} [, {timeout}]]]) *search()*
- Search for regexp pattern {pattern}. The search starts at the
- cursor position (you can use |cursor()| to set it).
-
- If there is no match a 0 is returned and the cursor doesn't
- move. No error message is given.
-- When a match has been found its line number is returned.
-
- {flags} is a String, which can contain these character flags:
- 'b' search backward instead of forward
---- 4874,4907 ----
- echo round(-4.5)
- < -5.0
- {only available when compiled with the |+float| feature}
-!
-! screencol() *screencol()*
-! The result is a Number, which is the current screen column of
-! the cursor. The leftmost column has number 1.
-! This function is mainly used for testing.
-!
-! Note: Always returns the current screen column, thus if used
-! in a command (e.g. ":echo screencol()") it will return the
-! column inside the command line, which is 1 when the command is
-! executed. To get the cursor position in the file use one of
-! the following mappings: >
-! nnoremap <expr> GG ":echom ".screencol()."\n"
-! nnoremap <silent> GG :echom screencol()<CR>
-! <
-! screenrow() *screenrow()*
-! The result is a Number, which is the current screen row of the
-! cursor. The top line has number one.
-! This function is mainly used for testing.
-!
-! Note: Same restrictions as with |screencol()|.
-!
- search({pattern} [, {flags} [, {stopline} [, {timeout}]]]) *search()*
- Search for regexp pattern {pattern}. The search starts at the
- cursor position (you can use |cursor()| to set it).
-
-+ When a match has been found its line number is returned.
- If there is no match a 0 is returned and the cursor doesn't
- move. No error message is given.
-
- {flags} is a String, which can contain these character flags:
- 'b' search backward instead of forward
-*** ../vim-7.3.747/src/eval.c 2012-12-05 15:16:42.000000000 +0100
---- src/eval.c 2012-12-05 16:03:23.000000000 +0100
-***************
-*** 668,673 ****
---- 668,675 ----
- #ifdef FEAT_FLOAT
- static void f_round __ARGS((typval_T *argvars, typval_T *rettv));
- #endif
-+ static void f_screencol __ARGS((typval_T *argvars, typval_T *rettv));
-+ static void f_screenrow __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_search __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_searchdecl __ARGS((typval_T *argvars, typval_T *rettv));
- static void f_searchpair __ARGS((typval_T *argvars, typval_T *rettv));
-***************
-*** 8033,8038 ****
---- 8035,8042 ----
- #ifdef FEAT_FLOAT
- {"round", 1, 1, f_round},
- #endif
-+ {"screencol", 0, 0, f_screencol},
-+ {"screenrow", 0, 0, f_screenrow},
- {"search", 1, 4, f_search},
- {"searchdecl", 1, 3, f_searchdecl},
- {"searchpair", 3, 7, f_searchpair},
-***************
-*** 15725,15730 ****
---- 15729,15758 ----
- #endif
-
- /*
-+ * "screencol()" function
-+ *
-+ * First column is 1 to be consistent with virtcol().
-+ */
-+ static void
-+ f_screencol(argvars, rettv)
-+ typval_T *argvars UNUSED;
-+ typval_T *rettv;
-+ {
-+ rettv->vval.v_number = screen_screencol() + 1;
-+ }
-+
-+ /*
-+ * "screenrow()" function
-+ */
-+ static void
-+ f_screenrow(argvars, rettv)
-+ typval_T *argvars UNUSED;
-+ typval_T *rettv;
-+ {
-+ rettv->vval.v_number = screen_screenrow() + 1;
-+ }
-+
-+ /*
- * "search()" function
- */
- static void
-*** ../vim-7.3.747/src/proto/screen.pro 2012-11-20 16:56:49.000000000 +0100
---- src/proto/screen.pro 2012-12-05 15:57:35.000000000 +0100
-***************
-*** 50,53 ****
---- 50,55 ----
- int messaging __ARGS((void));
- void showruler __ARGS((int always));
- int number_width __ARGS((win_T *wp));
-+ int screen_screencol __ARGS((void));
-+ int screen_screenrow __ARGS((void));
- /* vim: set ft=c : */
-*** ../vim-7.3.747/src/screen.c 2012-12-05 15:32:24.000000000 +0100
---- src/screen.c 2012-12-05 15:58:02.000000000 +0100
-***************
-*** 10264,10266 ****
---- 10264,10286 ----
- return n;
- }
- #endif
-+
-+ /*
-+ * Return the current cursor column. This is the actual position on the
-+ * screen. First column is 0.
-+ */
-+ int
-+ screen_screencol()
-+ {
-+ return screen_cur_col;
-+ }
-+
-+ /*
-+ * Return the current cursor row. This is the actual position on the screen.
-+ * First row is 0.
-+ */
-+ int
-+ screen_screenrow()
-+ {
-+ return screen_cur_row;
-+ }
-*** ../vim-7.3.747/src/testdir/Make_amiga.mak 2012-06-29 12:54:32.000000000 +0200
---- src/testdir/Make_amiga.mak 2012-12-05 16:00:14.000000000 +0100
-***************
-*** 31,37 ****
- test66.out test67.out test68.out test69.out test70.out \
- test71.out test72.out test73.out test74.out test75.out \
- test76.out test77.out test78.out test79.out test80.out \
-! test81.out test82.out test83.out test84.out
-
- .SUFFIXES: .in .out
-
---- 31,37 ----
- test66.out test67.out test68.out test69.out test70.out \
- test71.out test72.out test73.out test74.out test75.out \
- test76.out test77.out test78.out test79.out test80.out \
-! test81.out test82.out test83.out test84.out test88.out
-
- .SUFFIXES: .in .out
-
-***************
-*** 135,137 ****
---- 135,138 ----
- test82.out: test82.in
- test83.out: test83.in
- test84.out: test84.in
-+ test88.out: test88.in
-*** ../vim-7.3.747/src/testdir/Make_dos.mak 2012-10-06 19:10:29.000000000 +0200
---- src/testdir/Make_dos.mak 2012-12-05 16:00:29.000000000 +0100
-***************
-*** 30,36 ****
- test68.out test69.out test71.out test72.out test73.out \
- test74.out test75.out test76.out test77.out test78.out \
- test79.out test80.out test81.out test82.out test83.out \
-! test84.out test85.out test86.out test87.out
-
- SCRIPTS32 = test50.out test70.out
-
---- 30,36 ----
- test68.out test69.out test71.out test72.out test73.out \
- test74.out test75.out test76.out test77.out test78.out \
- test79.out test80.out test81.out test82.out test83.out \
-! test84.out test85.out test86.out test87.out test88.out
-
- SCRIPTS32 = test50.out test70.out
-
-*** ../vim-7.3.747/src/testdir/Make_ming.mak 2012-10-06 19:10:29.000000000 +0200
---- src/testdir/Make_ming.mak 2012-12-05 16:00:40.000000000 +0100
-***************
-*** 50,56 ****
- test68.out test69.out test71.out test72.out test73.out \
- test74.out test75.out test76.out test77.out test78.out \
- test79.out test80.out test81.out test82.out test83.out \
-! test84.out test85.out test86.out test87.out
-
- SCRIPTS32 = test50.out test70.out
-
---- 50,56 ----
- test68.out test69.out test71.out test72.out test73.out \
- test74.out test75.out test76.out test77.out test78.out \
- test79.out test80.out test81.out test82.out test83.out \
-! test84.out test85.out test86.out test87.out test88.out
-
- SCRIPTS32 = test50.out test70.out
-
-*** ../vim-7.3.747/src/testdir/Make_os2.mak 2012-06-29 12:54:32.000000000 +0200
---- src/testdir/Make_os2.mak 2012-12-05 16:00:50.000000000 +0100
-***************
-*** 31,37 ****
- test66.out test67.out test68.out test69.out test70.out \
- test71.out test72.out test73.out test74.out test75.out \
- test76.out test77.out test78.out test79.out test80.out \
-! test81.out test82.out test83.out test84.out
-
- .SUFFIXES: .in .out
-
---- 31,37 ----
- test66.out test67.out test68.out test69.out test70.out \
- test71.out test72.out test73.out test74.out test75.out \
- test76.out test77.out test78.out test79.out test80.out \
-! test81.out test82.out test83.out test84.out test88.out
-
- .SUFFIXES: .in .out
-
-*** ../vim-7.3.747/src/testdir/Make_vms.mms 2012-10-06 19:10:29.000000000 +0200
---- src/testdir/Make_vms.mms 2012-12-05 16:01:03.000000000 +0100
-***************
-*** 4,10 ****
- # Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
- # Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
- #
-! # Last change: 2012 Oct 06
- #
- # 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: 2012 Dec 05
- #
- # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
- # Edit the lines in the Configuration section below to select.
-***************
-*** 76,82 ****
- test66.out test67.out test68.out test69.out \
- test71.out test72.out test74.out test75.out test76.out \
- test77.out test78.out test79.out test80.out test81.out \
-! test82.out test83.out test84.out
-
- # Known problems:
- # Test 30: a problem around mac format - unknown reason
---- 76,82 ----
- test66.out test67.out test68.out test69.out \
- test71.out test72.out test74.out test75.out test76.out \
- test77.out test78.out test79.out test80.out test81.out \
-! test82.out test83.out test84.out test88.out
-
- # Known problems:
- # Test 30: a problem around mac format - unknown reason
-*** ../vim-7.3.747/src/testdir/Makefile 2012-10-06 19:10:29.000000000 +0200
---- src/testdir/Makefile 2012-12-05 15:59:02.000000000 +0100
-***************
-*** 13,19 ****
-
- 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 \
- test18.out test19.out test20.out test21.out test22.out \
- test23.out test24.out test25.out test26.out test27.out \
- test28.out test29.out test30.out test31.out test32.out \
---- 13,19 ----
-
- 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 \
- test18.out test19.out test20.out test21.out test22.out \
- test23.out test24.out test25.out test26.out test27.out \
- test28.out test29.out test30.out test31.out test32.out \
-***************
-*** 27,33 ****
- test69.out test70.out test71.out test72.out test73.out \
- test74.out test75.out test76.out test77.out test78.out \
- test79.out test80.out test81.out test82.out test83.out \
-! test84.out test85.out test86.out test87.out
-
- SCRIPTS_GUI = test16.out
-
---- 27,33 ----
- test69.out test70.out test71.out test72.out test73.out \
- test74.out test75.out test76.out test77.out test78.out \
- test79.out test80.out test81.out test82.out test83.out \
-! test84.out test85.out test86.out test87.out test88.out
-
- SCRIPTS_GUI = test16.out
-
-*** ../vim-7.3.747/src/testdir/test88.in 2012-12-05 16:08:56.000000000 +0100
---- src/testdir/test88.in 2012-12-05 15:40:05.000000000 +0100
-***************
-*** 0 ****
---- 1,85 ----
-+ vim: set ft=vim
-+
-+ Tests for correct display (cursor column position) with +conceal and
-+ tabulators.
-+
-+ STARTTEST
-+ :so small.vim
-+ :if !has('conceal')
-+ e! test.ok
-+ wq! test.out
-+ :endif
-+ :" Conceal settings.
-+ :set conceallevel=2
-+ :set concealcursor=nc
-+ :syntax match test /|/ conceal
-+ :" Save current cursor position. Only works in <expr> mode, can't be used
-+ :" with :normal because it moves the cursor to the command line. Thanks to ZyX
-+ :" <zyx.vim@gmail.com> for the idea to use an <expr> mapping.
-+ :let positions = []
-+ :nnoremap <expr> GG ":let positions += ['".screenrow().":".screencol()."']\n"
-+ :" Start test.
-+ /^start:
-+ :normal ztj
-+ GGk
-+ :" We should end up in the same column when running these commands on the two
-+ :" lines.
-+ :normal ft
-+ GGk
-+ :normal $
-+ GGk
-+ :normal 0j
-+ GGk
-+ :normal ft
-+ GGk
-+ :normal $
-+ GGk
-+ :normal 0j0j
-+ GGk
-+ :" Same for next test block.
-+ :normal ft
-+ GGk
-+ :normal $
-+ GGk
-+ :normal 0j
-+ GGk
-+ :normal ft
-+ GGk
-+ :normal $
-+ GGk
-+ :normal 0j0j
-+ GGk
-+ :" And check W with multiple tabs and conceals in a line.
-+ :normal W
-+ GGk
-+ :normal W
-+ GGk
-+ :normal W
-+ GGk
-+ :normal $
-+ GGk
-+ :normal 0j
-+ GGk
-+ :normal W
-+ GGk
-+ :normal W
-+ GGk
-+ :normal W
-+ GGk
-+ :normal $
-+ GGk
-+ :" Display result.
-+ :call append('$', 'end:')
-+ :call append('$', positions)
-+ :/^end/,$wq! test.out
-+ ENDTEST
-+
-+ start:
-+ .concealed. text
-+ |concealed| text
-+
-+ .concealed. text
-+ |concealed| text
-+
-+ .a. .b. .c. .d.
-+ |a| |b| |c| |d|
-*** ../vim-7.3.747/src/testdir/test88.ok 2012-12-05 16:08:56.000000000 +0100
---- src/testdir/test88.ok 2012-12-05 15:40:05.000000000 +0100
-***************
-*** 0 ****
---- 1,23 ----
-+ end:
-+ 2:1
-+ 2:17
-+ 2:20
-+ 3:1
-+ 3:17
-+ 3:20
-+ 5:8
-+ 5:25
-+ 5:28
-+ 6:8
-+ 6:25
-+ 6:28
-+ 8:1
-+ 8:9
-+ 8:17
-+ 8:25
-+ 8:27
-+ 9:1
-+ 9:9
-+ 9:17
-+ 9:25
-+ 9:26
-*** ../vim-7.3.747/src/version.c 2012-12-05 15:32:24.000000000 +0100
---- src/version.c 2012-12-05 16:07:46.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 748,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-101. U can read htis w/o ny porblm and cant figur eout Y its evn listd.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.749
-Fcc: 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.749
-Problem: Python interface doesn't build without the multi-byte feature.
-Solution: Add #ifdef. (Ken Takata)
-Files: src/if_py_both.h
-
-
-*** ../vim-7.3.748/src/if_py_both.h 2012-10-05 21:30:04.000000000 +0200
---- src/if_py_both.h 2012-12-05 16:27:20.000000000 +0100
-***************
-*** 520,526 ****
- if (!PyArg_ParseTuple(args, "s", &expr))
- return NULL;
-
-! return PyLong_FromLong(mb_string2cells((char_u *)expr, (int)STRLEN(expr)));
- }
-
- /*
---- 520,532 ----
- if (!PyArg_ParseTuple(args, "s", &expr))
- return NULL;
-
-! return PyLong_FromLong(
-! #ifdef FEAT_MBYTE
-! mb_string2cells((char_u *)expr, (int)STRLEN(expr))
-! #else
-! STRLEN(expr)
-! #endif
-! );
- }
-
- /*
-*** ../vim-7.3.748/src/version.c 2012-12-05 16:10:21.000000000 +0100
---- src/version.c 2012-12-05 16:29:27.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 749,
- /**/
-
---
-Contrary to popular belief, Unix is user friendly.
-It just happens to be selective about who it makes friends with.
- -- Dave Parnas
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.750
-Fcc: 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.750
-Problem: The justify macro does not always work correctly.
-Solution: Fix off-by-one error (James McCoy)
-Files: runtime/macros/justify.vim
-
-
-*** ../vim-7.3.749/runtime/macros/justify.vim 2010-08-15 21:57:19.000000000 +0200
---- runtime/macros/justify.vim 2012-12-05 16:58:40.000000000 +0100
-***************
-*** 1,4 ****
-! " Function to left and rigt align text.
- "
- " Written by: Preben "Peppe" Guldberg <c928400@student.dtu.dk>
- " Created: 980806 14:13 (or around that time anyway)
---- 1,4 ----
-! " Function to left and right align text.
- "
- " Written by: Preben "Peppe" Guldberg <c928400@student.dtu.dk>
- " Created: 980806 14:13 (or around that time anyway)
-***************
-*** 256,273 ****
- let str = substitute(str, '\s\+$', '', '')
- let str = substitute(str, '^\s\+', '', '')
- let str = substitute(str, '\s\+', ' ', 'g')
-! " Use substitute() hack to get strlen in characters instead of bytes
-! let str_n = strlen(substitute(str, '.', 'x', 'g'))
-
- " Possible addition of space after punctuation
- if exists("join_str")
- let str = substitute(str, join_str, '\1 ', 'g')
- endif
-! let join_n = strlen(substitute(str, '.', 'x', 'g')) - str_n
-
- " Can extraspaces be added?
- " Note that str_n may be less than strlen(str) [joinspaces above]
-! if strlen(substitute(str, '.', 'x', 'g')) < tw - indent_n && str_n > 0
- " How many spaces should be added
- let s_add = tw - str_n - indent_n - join_n
- let s_nr = strlen(substitute(str, '\S', '', 'g') ) - join_n
---- 256,272 ----
- let str = substitute(str, '\s\+$', '', '')
- let str = substitute(str, '^\s\+', '', '')
- let str = substitute(str, '\s\+', ' ', 'g')
-! let str_n = strdisplaywidth(str)
-
- " Possible addition of space after punctuation
- if exists("join_str")
- let str = substitute(str, join_str, '\1 ', 'g')
- endif
-! let join_n = strdisplaywidth(str) - str_n
-
- " Can extraspaces be added?
- " Note that str_n may be less than strlen(str) [joinspaces above]
-! if strdisplaywidth(str) <= tw - indent_n && str_n > 0
- " How many spaces should be added
- let s_add = tw - str_n - indent_n - join_n
- let s_nr = strlen(substitute(str, '\S', '', 'g') ) - join_n
-*** ../vim-7.3.749/src/version.c 2012-12-05 16:30:03.000000000 +0100
---- src/version.c 2012-12-05 17:01:02.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 750,
- /**/
-
---
-To be rich is not the end, but only a change of worries.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.751
-Fcc: 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.751
-Problem: Test 61 is flaky, it fails once in a while.
-Solution: When it fails retry once.
-Files: src/testdir/Makefile
-
-
-*** ../vim-7.3.750/src/testdir/Makefile 2012-12-05 16:10:21.000000000 +0100
---- src/testdir/Makefile 2012-12-05 18:17:03.000000000 +0100
-***************
-*** 47,58 ****
-
- $(SCRIPTS) $(SCRIPTS_GUI): $(VIMPROG)
-
- clean:
-! -rm -rf *.out *.failed *.rej *.orig test.log tiny.vim small.vim mbyte.vim mzscheme.vim lua.vim test.ok X* valgrind.* viminfo
-
- test1.out: test1.in
-! -rm -f $*.failed tiny.vim small.vim mbyte.vim mzscheme.vim lua.vim test.ok X* viminfo
-! $(VALGRIND) $(VIMPROG) -u unix.vim -U NONE --noplugin -s dotest.in $*.in
- @/bin/sh -c "if diff test.out $*.ok; \
- then mv -f test.out $*.out; \
- else echo; \
---- 47,62 ----
-
- $(SCRIPTS) $(SCRIPTS_GUI): $(VIMPROG)
-
-+ RM_ON_RUN = test.out X* viminfo
-+ RM_ON_START = tiny.vim small.vim mbyte.vim mzscheme.vim lua.vim test.ok
-+ RUN_VIM = $(VALGRIND) $(VIMPROG) -u unix.vim -U NONE --noplugin -s dotest.in
-+
- clean:
-! -rm -rf *.out *.failed *.rej *.orig test.log $(RM_ON_RUN) $(RM_ON_START) valgrind.*
-
- test1.out: test1.in
-! -rm -rf $*.failed $(RM_ON_RUN) $(RM_ON_START)
-! $(RUN_VIM) $*.in
- @/bin/sh -c "if diff test.out $*.ok; \
- then mv -f test.out $*.out; \
- else echo; \
-***************
-*** 61,71 ****
- -rm -rf X* viminfo
-
- .in.out:
-! -rm -rf $*.failed test.ok test.out X* viminfo
- cp $*.ok test.ok
- # Sleep a moment to avoid that the xterm title is messed up
- @-sleep .2
-! -$(VALGRIND) $(VIMPROG) -u unix.vim -U NONE --noplugin -s dotest.in $*.in
- @/bin/sh -c "if test -f test.out; then\
- if diff test.out $*.ok; \
- then mv -f test.out $*.out; \
---- 65,86 ----
- -rm -rf X* viminfo
-
- .in.out:
-! -rm -rf $*.failed test.ok $(RM_ON_RUN)
- cp $*.ok test.ok
- # Sleep a moment to avoid that the xterm title is messed up
- @-sleep .2
-! -$(RUN_VIM) $*.in
-!
-! # For flaky tests retry one time.
-! @/bin/sh -c "if test -f test.out -a $* = test61; then \
-! if diff test.out $*.ok; \
-! then echo flaky test ok first time; \
-! else rm -rf $*.failed $(RM_ON_RUN); \
-! $(RUN_VIM) $*.in; \
-! fi \
-! fi"
-!
-! # Check if the test.out file matches test.ok.
- @/bin/sh -c "if test -f test.out; then\
- if diff test.out $*.ok; \
- then mv -f test.out $*.out; \
-*** ../vim-7.3.750/src/version.c 2012-12-05 17:03:17.000000000 +0100
---- src/version.c 2012-12-05 18:10:49.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 751,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-103. When you find yourself in the "Computer" section of Barnes & Noble
- enjoying 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.752
-Fcc: 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.752
-Problem: Test 49 script file doesn't fold properly.
-Solution: Add a colon.
-Files: src/testdir/test49.vim
-
-
-*** ../vim-7.3.751/src/testdir/test49.vim 2012-11-14 22:38:04.000000000 +0100
---- src/testdir/test49.vim 2012-11-23 22:08:37.000000000 +0100
-***************
-*** 1,6 ****
- " Vim script language tests
- " Author: Servatius Brandt <Servatius.Brandt@fujitsu-siemens.com>
-! " Last Change: 2010 Sep 29
-
- "-------------------------------------------------------------------------------
- " Test environment {{{1
---- 1,6 ----
- " Vim script language tests
- " Author: Servatius Brandt <Servatius.Brandt@fujitsu-siemens.com>
-! " Last Change: 2012 Nov 23
-
- "-------------------------------------------------------------------------------
- " Test environment {{{1
-***************
-*** 9604,9610 ****
- Xcheck 198689
-
- "-------------------------------------------------------------------------------
-! " Test 86 setloclist crash {{{1
- "
- " Executing a setloclist() on BufUnload shouldn't crash Vim
- "-------------------------------------------------------------------------------
---- 9604,9610 ----
- Xcheck 198689
-
- "-------------------------------------------------------------------------------
-! " Test 86: setloclist crash {{{1
- "
- " Executing a setloclist() on BufUnload shouldn't crash Vim
- "-------------------------------------------------------------------------------
-*** ../vim-7.3.751/src/version.c 2012-12-05 18:21:28.000000000 +0100
---- src/version.c 2012-12-05 18:59:50.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 752,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-106. When told to "go to your room" you inform your parents that you
- can't...because you were kicked out and banned.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.753
-Fcc: 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.753
-Problem: When there is a QuitPre autocommand using ":q" twice does not work
- for exiting when there are more files to edit.
-Solution: Do not decrement quitmore in an autocommand. (Techlive Zheng)
-Files: src/ex_docmd.c, src/fileio.c, src/proto/fileio.pro
-
-
-*** ../vim-7.3.752/src/ex_docmd.c 2012-11-28 23:03:02.000000000 +0100
---- src/ex_docmd.c 2012-12-05 19:07:01.000000000 +0100
-***************
-*** 1729,1739 ****
- ++ex_nesting_level;
- #endif
-
-! /* when not editing the last file :q has to be typed twice */
- if (quitmore
- #ifdef FEAT_EVAL
- /* avoid that a function call in 'statusline' does this */
- && !getline_equal(fgetline, cookie, get_func_line)
- #endif
- )
- --quitmore;
---- 1729,1741 ----
- ++ex_nesting_level;
- #endif
-
-! /* When the last file has not been edited :q has to be typed twice. */
- if (quitmore
- #ifdef FEAT_EVAL
- /* avoid that a function call in 'statusline' does this */
- && !getline_equal(fgetline, cookie, get_func_line)
-+ /* avoid that an autocommand, e.g. QuitPre, does this */
-+ && !getline_equal(fgetline, cookie, getnextac)
- #endif
- )
- --quitmore;
-*** ../vim-7.3.752/src/fileio.c 2012-08-29 18:50:50.000000000 +0200
---- src/fileio.c 2012-12-05 19:08:17.000000000 +0100
-***************
-*** 7774,7780 ****
- static int event_ignored __ARGS((event_T event));
- static int au_get_grouparg __ARGS((char_u **argp));
- static int do_autocmd_event __ARGS((event_T event, char_u *pat, int nested, char_u *cmd, int forceit, int group));
-- static char_u *getnextac __ARGS((int c, void *cookie, int indent));
- static int apply_autocmds_group __ARGS((event_T event, char_u *fname, char_u *fname_io, int force, int group, buf_T *buf, exarg_T *eap));
- static void auto_next_pat __ARGS((AutoPatCmd *apc, int stop_at_last));
-
---- 7774,7779 ----
-***************
-*** 9613,9619 ****
- * Called by do_cmdline() to get the next line for ":if".
- * Returns allocated string, or NULL for end of autocommands.
- */
-! static char_u *
- getnextac(c, cookie, indent)
- int c UNUSED;
- void *cookie;
---- 9612,9618 ----
- * Called by do_cmdline() to get the next line for ":if".
- * Returns allocated string, or NULL for end of autocommands.
- */
-! char_u *
- getnextac(c, cookie, indent)
- int c UNUSED;
- void *cookie;
-*** ../vim-7.3.752/src/proto/fileio.pro 2012-02-29 18:22:03.000000000 +0100
---- src/proto/fileio.pro 2012-12-05 19:08:24.000000000 +0100
-***************
-*** 47,52 ****
---- 47,53 ----
- int has_insertcharpre __ARGS((void));
- void block_autocmds __ARGS((void));
- void unblock_autocmds __ARGS((void));
-+ char_u *getnextac __ARGS((int c, void *cookie, int indent));
- int has_autocmd __ARGS((event_T event, char_u *sfname, buf_T *buf));
- char_u *get_augroup_name __ARGS((expand_T *xp, int idx));
- char_u *set_context_in_autocmd __ARGS((expand_T *xp, char_u *arg, int doautocmd));
-*** ../vim-7.3.752/src/version.c 2012-12-05 19:00:03.000000000 +0100
---- src/version.c 2012-12-05 19:08:34.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 753,
- /**/
-
---
-Laughing helps. It's like jogging on the inside.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.754
-Fcc: 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.754
-Problem: Latest nmake is not recognized.
-Solution: Add nmake version 11.00.51106.1. (Raymond Ko)
-Files: src/Make_mvc.mak
-
-
-*** ../vim-7.3.753/src/Make_mvc.mak 2012-10-23 05:35:30.000000000 +0200
---- src/Make_mvc.mak 2012-12-06 21:27:56.000000000 +0100
-***************
-*** 413,418 ****
---- 413,421 ----
- !if "$(_NMAKE_VER)" == "11.00.50727.1"
- MSVCVER = 11.0
- !endif
-+ !if "$(_NMAKE_VER)" == "11.00.51106.1"
-+ MSVCVER = 11.0
-+ !endif
- !endif
-
- # Abort bulding VIM if version of VC is unrecognised.
-*** ../vim-7.3.753/src/version.c 2012-12-05 19:13:11.000000000 +0100
---- src/version.c 2012-12-06 21:29:12.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 754,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-116. You are living with your boyfriend who networks your respective
- computers so you can sit in separate rooms and email each other
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.755
-Fcc: 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.755
-Problem: Autoconf doesn't find Python 3 if it's called "python".
-Solution: Search for "python2" and "python3" first, then "python".
-Files: src/configure.in, src/auto/configure
-
-
-*** ../vim-7.3.754/src/configure.in 2012-11-23 21:54:43.000000000 +0100
---- src/configure.in 2012-12-09 15:41:59.000000000 +0100
-***************
-*** 838,844 ****
- AC_MSG_RESULT($enable_pythoninterp)
- if test "$enable_pythoninterp" = "yes" -o "$enable_pythoninterp" = "dynamic"; then
- dnl -- find the python executable
-! AC_PATH_PROG(vi_cv_path_python, python)
- if test "X$vi_cv_path_python" != "X"; then
-
- dnl -- get its version number
---- 838,844 ----
- AC_MSG_RESULT($enable_pythoninterp)
- if test "$enable_pythoninterp" = "yes" -o "$enable_pythoninterp" = "dynamic"; then
- dnl -- find the python executable
-! AC_PATH_PROGS(vi_cv_path_python, python2 python)
- if test "X$vi_cv_path_python" != "X"; then
-
- dnl -- get its version number
-***************
-*** 1028,1034 ****
- AC_MSG_RESULT($enable_python3interp)
- if test "$enable_python3interp" = "yes" -o "$enable_python3interp" = "dynamic"; then
- dnl -- find the python3 executable
-! AC_PATH_PROG(vi_cv_path_python3, python3)
- if test "X$vi_cv_path_python3" != "X"; then
-
- dnl -- get its version number
---- 1028,1034 ----
- AC_MSG_RESULT($enable_python3interp)
- if test "$enable_python3interp" = "yes" -o "$enable_python3interp" = "dynamic"; then
- dnl -- find the python3 executable
-! AC_PATH_PROGS(vi_cv_path_python3, python3 python)
- if test "X$vi_cv_path_python3" != "X"; then
-
- dnl -- get its version number
-*** ../vim-7.3.754/src/auto/configure 2012-11-23 21:54:43.000000000 +0100
---- src/auto/configure 2012-12-12 14:23:46.000000000 +0100
-***************
-*** 5214,5221 ****
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_pythoninterp" >&5
- $as_echo "$enable_pythoninterp" >&6; }
- if test "$enable_pythoninterp" = "yes" -o "$enable_pythoninterp" = "dynamic"; then
-! # Extract the first word of "python", so it can be a program name with args.
-! set dummy python; ac_word=$2
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
- $as_echo_n "checking for $ac_word... " >&6; }
- if test "${ac_cv_path_vi_cv_path_python+set}" = set; then :
---- 5214,5223 ----
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_pythoninterp" >&5
- $as_echo "$enable_pythoninterp" >&6; }
- if test "$enable_pythoninterp" = "yes" -o "$enable_pythoninterp" = "dynamic"; then
-! for ac_prog in python2 python
-! do
-! # Extract the first word of "$ac_prog", so it can be a program name with args.
-! set dummy $ac_prog; ac_word=$2
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
- $as_echo_n "checking for $ac_word... " >&6; }
- if test "${ac_cv_path_vi_cv_path_python+set}" = set; then :
-***************
-*** 5254,5259 ****
---- 5256,5264 ----
- fi
-
-
-+ test -n "$vi_cv_path_python" && break
-+ done
-+
- if test "X$vi_cv_path_python" != "X"; then
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Python version" >&5
-***************
-*** 5509,5516 ****
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_python3interp" >&5
- $as_echo "$enable_python3interp" >&6; }
- if test "$enable_python3interp" = "yes" -o "$enable_python3interp" = "dynamic"; then
-! # Extract the first word of "python3", so it can be a program name with args.
-! set dummy python3; ac_word=$2
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
- $as_echo_n "checking for $ac_word... " >&6; }
- if test "${ac_cv_path_vi_cv_path_python3+set}" = set; then :
---- 5514,5523 ----
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_python3interp" >&5
- $as_echo "$enable_python3interp" >&6; }
- if test "$enable_python3interp" = "yes" -o "$enable_python3interp" = "dynamic"; then
-! for ac_prog in python3 python
-! do
-! # Extract the first word of "$ac_prog", so it can be a program name with args.
-! set dummy $ac_prog; ac_word=$2
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
- $as_echo_n "checking for $ac_word... " >&6; }
- if test "${ac_cv_path_vi_cv_path_python3+set}" = set; then :
-***************
-*** 5549,5554 ****
---- 5556,5564 ----
- fi
-
-
-+ test -n "$vi_cv_path_python3" && break
-+ done
-+
- if test "X$vi_cv_path_python3" != "X"; then
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Python version" >&5
-*** ../vim-7.3.754/src/version.c 2012-12-06 21:30:24.000000000 +0100
---- src/version.c 2012-12-12 14:23:14.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 755,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-145. You e-mail your boss, informing him you'll be late.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.756
-Fcc: 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.756
-Problem: A location list can get a wrong count in :lvimgrep.
-Solution: Check if the list was changed by autocommands. (mostly by
- Christian Brabandt)
-Files: src/quickfic.c
-
-
-*** ../vim-7.3.755/src/quickfix.c 2012-12-05 15:16:42.000000000 +0100
---- src/quickfix.c 2012-12-12 15:50:08.000000000 +0100
-***************
-*** 3109,3114 ****
---- 3109,3117 ----
- char_u *p;
- int fi;
- qf_info_T *qi = &ql_info;
-+ #ifdef FEAT_AUTOCMD
-+ qfline_T *cur_qf_start;
-+ #endif
- qfline_T *prevp = NULL;
- long lnum;
- buf_T *buf;
-***************
-*** 3218,3223 ****
---- 3221,3232 ----
- * ":lcd %:p:h" changes the meaning of short path names. */
- mch_dirname(dirname_start, MAXPATHL);
-
-+ #ifdef FEAT_AUTOCMD
-+ /* Remeber the value of qf_start, so that we can check for autocommands
-+ * changing the current quickfix list. */
-+ cur_qf_start = qi->qf_lists[qi->qf_curlist].qf_start;
-+ #endif
-+
- seconds = (time_t)0;
- for (fi = 0; fi < fcount && !got_int && tomatch > 0; ++fi)
- {
-***************
-*** 3273,3278 ****
---- 3282,3309 ----
- /* Use existing, loaded buffer. */
- using_dummy = FALSE;
-
-+ #ifdef FEAT_AUTOCMD
-+ if (cur_qf_start != qi->qf_lists[qi->qf_curlist].qf_start)
-+ {
-+ int idx;
-+
-+ /* Autocommands changed the quickfix list. Find the one we were
-+ * using and restore it. */
-+ for (idx = 0; idx < LISTCOUNT; ++idx)
-+ if (cur_qf_start == qi->qf_lists[idx].qf_start)
-+ {
-+ qi->qf_curlist = idx;
-+ break;
-+ }
-+ if (idx == LISTCOUNT)
-+ {
-+ /* List cannot be found, create a new one. */
-+ qf_new_list(qi, *eap->cmdlinep);
-+ cur_qf_start = qi->qf_lists[qi->qf_curlist].qf_start;
-+ }
-+ }
-+ #endif
-+
- if (buf == NULL)
- {
- if (!got_int)
-***************
-*** 3324,3329 ****
---- 3355,3363 ----
- if (got_int)
- break;
- }
-+ #ifdef FEAT_AUTOCMD
-+ cur_qf_start = qi->qf_lists[qi->qf_curlist].qf_start;
-+ #endif
-
- if (using_dummy)
- {
-*** ../vim-7.3.755/src/version.c 2012-12-12 14:25:01.000000000 +0100
---- src/version.c 2012-12-12 15:35:58.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 756,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-146. You experience ACTUAL physical withdrawal symptoms when away
- from your 'puter and 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.757
-Fcc: 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.757
-Problem: Issue 96: May access freed memory when a put command triggers
- autocommands. (Dominique Pelle)
-Solution: Call u_save() before getting y_array.
-Files: src/ops.c
-
-
-*** ../vim-7.3.756/src/ops.c 2012-09-05 14:18:42.000000000 +0200
---- src/ops.c 2012-12-12 16:03:35.000000000 +0100
-***************
-*** 3351,3356 ****
---- 3351,3362 ----
- return;
- }
-
-+ #ifdef FEAT_AUTOCMD
-+ /* Autocommands may be executed when saving lines for undo, which may make
-+ * y_array invalid. Start undo now to avoid that. */
-+ u_save(curwin->w_cursor.lnum, curwin->w_cursor.lnum + 1);
-+ #endif
-+
- if (insert_string != NULL)
- {
- y_type = MCHAR;
-*** ../vim-7.3.756/src/version.c 2012-12-12 15:55:16.000000000 +0100
---- src/version.c 2012-12-12 16:06:47.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 757,
- /**/
-
---
-We are the Borg of GNU GPL. We will assimilate your source code.
-Resistance is futile.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.758
-Fcc: 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.758
-Problem: Matchit plugin does not handle space in #ifdef.
-Solution: Change matching pattern to allow spaces. (Mike Morearty)
-Files: runtime/macros/matchit.vim
-
-
-*** ../vim-7.3.757/runtime/macros/matchit.vim 2010-08-15 21:57:19.000000000 +0200
---- runtime/macros/matchit.vim 2012-12-12 16:34:11.000000000 +0100
-***************
-*** 131,137 ****
- " let default = substitute(escape(&mps, '[$^.*~\\/?]'), '[,:]\+',
- " \ '\\|', 'g').'\|\/\*\|\*\/\|#if\>\|#ifdef\>\|#else\>\|#elif\>\|#endif\>'
- let default = escape(&mps, '[$^.*~\\/?]') . (strlen(&mps) ? "," : "") .
-! \ '\/\*:\*\/,#if\%(def\)\=:#else\>:#elif\>:#endif\>'
- " s:all = pattern with all the keywords
- let match_words = match_words . (strlen(match_words) ? "," : "") . default
- if match_words !~ s:notslash . '\\\d'
---- 131,137 ----
- " let default = substitute(escape(&mps, '[$^.*~\\/?]'), '[,:]\+',
- " \ '\\|', 'g').'\|\/\*\|\*\/\|#if\>\|#ifdef\>\|#else\>\|#elif\>\|#endif\>'
- let default = escape(&mps, '[$^.*~\\/?]') . (strlen(&mps) ? "," : "") .
-! \ '\/\*:\*\/,#\s*if\%(def\)\=:#\s*else\>:#\s*elif\>:#\s*endif\>'
- " s:all = pattern with all the keywords
- let match_words = match_words . (strlen(match_words) ? "," : "") . default
- if match_words !~ s:notslash . '\\\d'
-***************
-*** 649,655 ****
- " s:all regexp based on s:pat and the default groups
- " This part is copied and slightly modified from s:Match_wrapper().
- let default = escape(&mps, '[$^.*~\\/?]') . (strlen(&mps) ? "," : "") .
-! \ '\/\*:\*\/,#if\%(def\)\=:#else\>:#elif\>:#endif\>'
- " Allow b:match_words = "GetVimMatchWords()" .
- if b:match_words =~ ":"
- let match_words = b:match_words
---- 649,655 ----
- " s:all regexp based on s:pat and the default groups
- " This part is copied and slightly modified from s:Match_wrapper().
- let default = escape(&mps, '[$^.*~\\/?]') . (strlen(&mps) ? "," : "") .
-! \ '\/\*:\*\/,#\s*if\%(def\)\=:#\s*else\>:#\s*elif\>:#\s*endif\>'
- " Allow b:match_words = "GetVimMatchWords()" .
- if b:match_words =~ ":"
- let match_words = b:match_words
-***************
-*** 808,812 ****
---- 808,813 ----
- endfun
-
- let &cpo = s:save_cpo
-+ unlet s:save_cpo
-
- " vim:sts=2:sw=2:
-*** ../vim-7.3.757/src/version.c 2012-12-12 16:11:28.000000000 +0100
---- src/version.c 2012-12-12 16:41:40.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 758,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-147. You finally give up smoking...because it made the monitor dirty.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.759
-Fcc: 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.759
-Problem: MS-Windows: Updating the tabline is slow when there are many tabs.
-Solution: Disable redrawing while performing the update. (Arseny Kapoulkine)
-Files: src/gui_w48.c
-
-
-*** ../vim-7.3.758/src/gui_w48.c 2012-11-20 16:53:34.000000000 +0100
---- src/gui_w48.c 2012-12-12 17:10:21.000000000 +0100
-***************
-*** 2452,2458 ****
- TCITEM tie;
- int nr = 0;
- int curtabidx = 0;
-- RECT rc;
- #ifdef FEAT_MBYTE
- static int use_unicode = FALSE;
- int uu;
---- 2452,2457 ----
-***************
-*** 2479,2491 ****
- tie.mask = TCIF_TEXT;
- tie.iImage = -1;
-
- /* Add a label for each tab page. They all contain the same text area. */
- for (tp = first_tabpage; tp != NULL; tp = tp->tp_next, ++nr)
- {
- if (tp == curtab)
- curtabidx = nr;
-
-! if (!TabCtrl_GetItemRect(s_tabhwnd, nr, &rc))
- {
- /* Add the tab */
- tie.pszText = "-Empty-";
---- 2478,2493 ----
- tie.mask = TCIF_TEXT;
- tie.iImage = -1;
-
-+ /* Disable redraw for tab updates to eliminate O(N^2) draws. */
-+ SendMessage(s_tabhwnd, WM_SETREDRAW, (WPARAM)FALSE, 0);
-+
- /* Add a label for each tab page. They all contain the same text area. */
- for (tp = first_tabpage; tp != NULL; tp = tp->tp_next, ++nr)
- {
- if (tp == curtab)
- curtabidx = nr;
-
-! if (nr >= TabCtrl_GetItemCount(s_tabhwnd))
- {
- /* Add the tab */
- tie.pszText = "-Empty-";
-***************
-*** 2519,2529 ****
- }
-
- /* Remove any old labels. */
-! while (TabCtrl_GetItemRect(s_tabhwnd, nr, &rc))
- TabCtrl_DeleteItem(s_tabhwnd, nr);
-
- if (TabCtrl_GetCurSel(s_tabhwnd) != curtabidx)
- TabCtrl_SetCurSel(s_tabhwnd, curtabidx);
- }
-
- /*
---- 2521,2534 ----
- }
-
- /* Remove any old labels. */
-! while (nr < TabCtrl_GetItemCount(s_tabhwnd))
- TabCtrl_DeleteItem(s_tabhwnd, nr);
-
- if (TabCtrl_GetCurSel(s_tabhwnd) != curtabidx)
- TabCtrl_SetCurSel(s_tabhwnd, curtabidx);
-+
-+ /* Re-enable redraw. This should trigger a repaint. */
-+ SendMessage(s_tabhwnd, WM_SETREDRAW, (WPARAM)TRUE, 0);
- }
-
- /*
-*** ../vim-7.3.758/src/version.c 2012-12-12 16:43:52.000000000 +0100
---- src/version.c 2012-12-12 17:10:46.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 759,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-148. You find it easier to dial-up the National Weather Service
- Weather/your_town/now.html than to simply look out the window.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.760
-Fcc: 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.760
-Problem: dv_ deletes the white space before the line.
-Solution: Move the cursor to the first non-white. (Christian Brabandt)
-Files: src/normal.c, src/testdir/test19.in, src/testdir/test19.ok
-
-
-*** ../vim-7.3.759/src/normal.c 2012-10-23 05:08:49.000000000 +0200
---- src/normal.c 2012-12-12 17:23:00.000000000 +0100
-***************
-*** 8628,8634 ****
- cap->oap->motion_type = MLINE;
- if (cursor_down(cap->count1 - 1L, cap->oap->op_type == OP_NOP) == FAIL)
- clearopbeep(cap->oap);
-! else if ( cap->oap->op_type == OP_DELETE
- || cap->oap->op_type == OP_LSHIFT
- || cap->oap->op_type == OP_RSHIFT)
- beginline(BL_SOL | BL_FIX);
---- 8628,8636 ----
- cap->oap->motion_type = MLINE;
- if (cursor_down(cap->count1 - 1L, cap->oap->op_type == OP_NOP) == FAIL)
- clearopbeep(cap->oap);
-! else if ( (cap->oap->op_type == OP_DELETE /* only with linewise motions */
-! && cap->oap->motion_force != 'v'
-! && cap->oap->motion_force != Ctrl_V)
- || cap->oap->op_type == OP_LSHIFT
- || cap->oap->op_type == OP_RSHIFT)
- beginline(BL_SOL | BL_FIX);
-*** ../vim-7.3.759/src/testdir/test19.in 2011-09-08 23:22:35.000000000 +0200
---- src/testdir/test19.in 2012-12-12 17:19:36.000000000 +0100
-***************
-*** 1,4 ****
---- 1,5 ----
- Tests for "r<Tab>" with 'smarttab' and 'expandtab' set/not set.
-+ Also test that dv_ works correctly
-
- STARTTEST
- :so small.vim
-***************
-*** 16,22 ****
- :" Test that copyindent works with expandtab set
- :set expandtab smartindent copyindent ts=8 sw=8 sts=8
- o{
-! x:?^start?,$w! test.out
- :qa!
- ENDTEST
-
---- 17,25 ----
- :" Test that copyindent works with expandtab set
- :set expandtab smartindent copyindent ts=8 sw=8 sts=8
- o{
-! x:set nosol
-! /Second line/
-! fwdv_:?^start?,$w! test.out
- :qa!
- ENDTEST
-
-***************
-*** 27,29 ****
---- 30,33 ----
- a cde
- f ghi
- test text
-+ Second line beginning with whitespace
-*** ../vim-7.3.759/src/testdir/test19.ok 2011-09-07 19:58:04.000000000 +0200
---- src/testdir/test19.ok 2012-12-12 17:19:36.000000000 +0100
-***************
-*** 7,9 ****
---- 7,10 ----
- test text
- {
- x
-+ with whitespace
-*** ../vim-7.3.759/src/version.c 2012-12-12 17:12:21.000000000 +0100
---- src/version.c 2012-12-12 17:20:47.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 760,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-149. You find your computer sexier than your girlfriend
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.761
-Fcc: 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.761
-Problem: In Visual mode a "-p does not work. (Marcin Szamotulski)
-Solution: Avoid writing to "- before putting it. (Christian Brabandt)
-Files: src/normal.c, src/testdir/test48.in, src/testdir/test48.ok
-
-
-*** ../vim-7.3.760/src/normal.c 2012-12-12 17:33:26.000000000 +0100
---- src/normal.c 2012-12-12 18:11:06.000000000 +0100
-***************
-*** 9412,9425 ****
- # ifdef FEAT_CLIPBOARD
- adjust_clip_reg(&regname);
- # endif
-! if (regname == 0 || regname == '"' || VIM_ISDIGIT(regname)
- # ifdef FEAT_CLIPBOARD
- || (clip_unnamed && (regname == '*' || regname == '+'))
- # endif
-
- )
- {
-! /* the delete is going to overwrite the register we want to
- * put, save it first. */
- reg1 = get_register(regname, TRUE);
- }
---- 9412,9426 ----
- # ifdef FEAT_CLIPBOARD
- adjust_clip_reg(&regname);
- # endif
-! if (regname == 0 || regname == '"'
-! || VIM_ISDIGIT(regname) || regname == '-'
- # ifdef FEAT_CLIPBOARD
- || (clip_unnamed && (regname == '*' || regname == '+'))
- # endif
-
- )
- {
-! /* The delete is going to overwrite the register we want to
- * put, save it first. */
- reg1 = get_register(regname, TRUE);
- }
-*** ../vim-7.3.760/src/testdir/test48.in 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test48.in 2012-12-12 18:09:21.000000000 +0100
-***************
-*** 54,61 ****
---- 54,65 ----
- ^O3li4li4li <-- should show the name of a noted text editor
- ^o4li4li4li <-- and its version number-dd
- :"
-+ :" Test for yanking and pasting using the small delete register
-+ gg/^foo
-+ dewve"-p
- :wq! test.out
- ENDTEST
-+ foo, bar
- keyword keyw
- all your base are belong to us
- 1 2 3 4 5 6
-*** ../vim-7.3.760/src/testdir/test48.ok 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test48.ok 2012-12-12 18:09:25.000000000 +0100
-***************
-*** 1,3 ****
---- 1,4 ----
-+ , foo
- keyword keyword
- all your base
- are belong to vim
-*** ../vim-7.3.760/src/version.c 2012-12-12 17:33:26.000000000 +0100
---- src/version.c 2012-12-12 18:19:51.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 761,
- /**/
-
---
-You are not really successful until someone claims he sat
-beside you in school.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.762
-Fcc: 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.762 (after 7.3.759)
-Problem: On some systems the tabline is not redrawn.
-Solution: Call RedrawWindow(). (Charles Peacech)
-Files: src/gui_w48.c
-
-
-*** ../vim-7.3.761/src/gui_w48.c 2012-12-12 17:12:21.000000000 +0100
---- src/gui_w48.c 2012-12-16 12:45:47.000000000 +0100
-***************
-*** 2527,2534 ****
- if (TabCtrl_GetCurSel(s_tabhwnd) != curtabidx)
- TabCtrl_SetCurSel(s_tabhwnd, curtabidx);
-
-! /* Re-enable redraw. This should trigger a repaint. */
- SendMessage(s_tabhwnd, WM_SETREDRAW, (WPARAM)TRUE, 0);
- }
-
- /*
---- 2527,2536 ----
- if (TabCtrl_GetCurSel(s_tabhwnd) != curtabidx)
- TabCtrl_SetCurSel(s_tabhwnd, curtabidx);
-
-! /* Re-enable redraw and redraw. */
- SendMessage(s_tabhwnd, WM_SETREDRAW, (WPARAM)TRUE, 0);
-+ RedrawWindow(s_tabhwnd, NULL, NULL,
-+ RDW_ERASE | RDW_FRAME | RDW_INVALIDATE | RDW_ALLCHILDREN);
- }
-
- /*
-*** ../vim-7.3.761/src/version.c 2012-12-12 18:20:28.000000000 +0100
---- src/version.c 2012-12-16 12:46:44.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 762,
- /**/
-
---
-"The question of whether computers can think is just like the question
-of whether submarines can swim." -- Edsger W. Dijkstra
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.763
-Fcc: 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.763
-Problem: Jumping to a mark does not open a fold if it is in the same line.
- (Wiktor Ruben)
-Solution: Also compare the column after the jump. (Christian Brabandt)
-Files: src/normal.c
-
-
-*** ../vim-7.3.762/src/normal.c 2012-12-12 18:20:28.000000000 +0100
---- src/normal.c 2013-01-11 22:02:30.000000000 +0100
-***************
-*** 7523,7529 ****
- pos_T *pos;
- int c;
- #ifdef FEAT_FOLDING
-! linenr_T lnum = curwin->w_cursor.lnum;
- int old_KeyTyped = KeyTyped; /* getting file may reset it */
- #endif
-
---- 7523,7529 ----
- pos_T *pos;
- int c;
- #ifdef FEAT_FOLDING
-! pos_T old_cursor = curwin->w_cursor;
- int old_KeyTyped = KeyTyped; /* getting file may reset it */
- #endif
-
-***************
-*** 7552,7558 ****
- #endif
- #ifdef FEAT_FOLDING
- if (cap->oap->op_type == OP_NOP
-! && (pos == (pos_T *)-1 || lnum != curwin->w_cursor.lnum)
- && (fdo_flags & FDO_MARK)
- && old_KeyTyped)
- foldOpenCursor();
---- 7552,7558 ----
- #endif
- #ifdef FEAT_FOLDING
- if (cap->oap->op_type == OP_NOP
-! && (pos == (pos_T *)-1 || !equalpos(old_cursor, *pos))
- && (fdo_flags & FDO_MARK)
- && old_KeyTyped)
- foldOpenCursor();
-*** ../vim-7.3.762/src/version.c 2012-12-16 12:50:33.000000000 +0100
---- src/version.c 2013-01-17 13:23:27.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 763,
- /**/
-
---
-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/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.764
-Fcc: 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.764
-Problem: Not all message translation files are installed.
-Solution: Also install the converted files.
-Files: src/po/Makefile
-
-
-*** ../vim-7.3.763/src/po/Makefile 2010-08-15 21:57:26.000000000 +0200
---- src/po/Makefile 2013-01-17 13:30:30.000000000 +0100
-***************
-*** 20,25 ****
---- 20,26 ----
- ko \
- ko.UTF-8 \
- nb \
-+ nl \
- no \
- pl \
- pt_BR \
-***************
-*** 33,38 ****
---- 34,49 ----
- zh_TW \
- zh_TW.UTF-8
-
-+ CONVERTED = \
-+ cs.cp1250 \
-+ ja.sjis \
-+ pl.cp1250 \
-+ pl.UTF-8 \
-+ ru.cp1251 \
-+ sk.cp1250 \
-+ uk.cp1251 \
-+ zh_CN.cp936
-+
- MOFILES = \
- af.mo \
- ca.mo \
-***************
-*** 49,54 ****
---- 60,66 ----
- ko.mo \
- ko.UTF-8.mo \
- nb.mo \
-+ nl.mo \
- no.mo \
- pl.mo \
- pt_BR.mo \
-***************
-*** 62,68 ****
- zh_TW.UTF-8.mo \
- zh_TW.mo
-
-! CONVERTED = \
- cs.cp1250.mo \
- ja.sjis.mo \
- pl.cp1250.mo \
---- 74,80 ----
- zh_TW.UTF-8.mo \
- zh_TW.mo
-
-! MOCONVERTED = \
- cs.cp1250.mo \
- ja.sjis.mo \
- pl.cp1250.mo \
-***************
-*** 88,93 ****
---- 100,106 ----
- ko.ck \
- ko.UTF-8.ck \
- nb.ck \
-+ nl.ck \
- no.ck \
- pl.ck \
- pt_BR.ck \
-***************
-*** 123,129 ****
-
- .SUFFIXES:
- .SUFFIXES: .po .mo .pot .ck
-! .PHONY: all install uninstall prefixcheck converted check clean checkclean distclean update-po $(LANGUAGES)
-
- .po.mo:
- $(MSGFMT) -o $@ $<
---- 136,142 ----
-
- .SUFFIXES:
- .SUFFIXES: .po .mo .pot .ck
-! .PHONY: all install uninstall prefixcheck converted check clean checkclean distclean update-po $(LANGUAGES) $(CONVERTED)
-
- .po.mo:
- $(MSGFMT) -o $@ $<
-***************
-*** 132,144 ****
- $(VIM) -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq $<
- touch $@
-
-! all: $(MOFILES)
-
- check: $(CHECKFILES)
-
-! install: $(MOFILES)
- @$(MAKE) prefixcheck
-! for lang in $(LANGUAGES); do \
- dir=$(LOCALEDIR)/$$lang/; \
- if test ! -x "$$dir"; then \
- mkdir $$dir; chmod 755 $$dir; \
---- 145,157 ----
- $(VIM) -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq $<
- touch $@
-
-! all: $(MOFILES) $(MOCONVERTED)
-
- check: $(CHECKFILES)
-
-! install: $(MOFILES) $(MOCONVERTED)
- @$(MAKE) prefixcheck
-! for lang in $(LANGUAGES) $(CONVERTED); do \
- dir=$(LOCALEDIR)/$$lang/; \
- if test ! -x "$$dir"; then \
- mkdir $$dir; chmod 755 $$dir; \
-***************
-*** 155,167 ****
-
- uninstall:
- @$(MAKE) prefixcheck
-! for cat in $(MOFILES); do \
- cat=`basename $$cat`; \
- lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
- rm -f $(LOCALEDIR)/$$lang/LC_MESSAGES/$(PACKAGE).mo; \
- done
-
-! converted: $(CONVERTED)
-
- # Norwegian/Bokmal: "nb" is an alias for "no".
- # Copying the file is not efficient, but I don't know of another way to make
---- 168,180 ----
-
- uninstall:
- @$(MAKE) prefixcheck
-! for cat in $(MOFILES) $(MOCONVERTED); do \
- cat=`basename $$cat`; \
- lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
- rm -f $(LOCALEDIR)/$$lang/LC_MESSAGES/$(PACKAGE).mo; \
- done
-
-! converted: $(MOCONVERTED)
-
- # Norwegian/Bokmal: "nb" is an alias for "no".
- # Copying the file is not efficient, but I don't know of another way to make
-*** ../vim-7.3.763/src/version.c 2013-01-17 13:24:00.000000000 +0100
---- src/version.c 2013-01-17 13:25:41.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 764,
- /**/
-
---
-The software said it requires Windows 95 or better, so I installed Linux.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.765
-Fcc: 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.765
-Problem: Segfault when doing "cclose" on BufUnload in a python function.
- (Sean Reifschneider)
-Solution: Skip window with NULL buffer. (Christian Brabandt)
-Files: src/main.c, src/window.c
-
-
-*** ../vim-7.3.764/src/main.c 2012-11-28 15:55:37.000000000 +0100
---- src/main.c 2013-01-17 13:46:57.000000000 +0100
-***************
-*** 1376,1381 ****
---- 1376,1384 ----
- for (wp = (tp == curtab)
- ? firstwin : tp->tp_firstwin; wp != NULL; wp = wp->w_next)
- {
-+ if (wp->w_buffer == NULL)
-+ /* Autocmd must have close the buffer already, skip. */
-+ continue;
- buf = wp->w_buffer;
- if (buf->b_changedtick != -1)
- {
-*** ../vim-7.3.764/src/window.c 2012-08-29 15:50:22.000000000 +0200
---- src/window.c 2013-01-17 13:53:10.000000000 +0100
-***************
-*** 2276,2284 ****
- #endif
- }
-
- /* Autocommands may have closed the window already, or closed the only
- * other window or moved to another tab page. */
-! if (!win_valid(win) || last_window() || curtab != prev_curtab
- || close_last_window_tabpage(win, free_buf, prev_curtab))
- return;
-
---- 2276,2290 ----
- #endif
- }
-
-+ if (only_one_window() && win_valid(win) && win->w_buffer == NULL
-+ && (last_window() || curtab != prev_curtab
-+ || close_last_window_tabpage(win, free_buf, prev_curtab)))
-+ /* Autocommands have close all windows, quit now. */
-+ getout(0);
-+
- /* Autocommands may have closed the window already, or closed the only
- * other window or moved to another tab page. */
-! else if (!win_valid(win) || last_window() || curtab != prev_curtab
- || close_last_window_tabpage(win, free_buf, prev_curtab))
- return;
-
-***************
-*** 6282,6288 ****
- return FALSE;
-
- for (wp = firstwin; wp != NULL; wp = wp->w_next)
-! if ((!((wp->w_buffer->b_help && !curbuf->b_help)
- # ifdef FEAT_QUICKFIX
- || wp->w_p_pvw
- # endif
---- 6288,6295 ----
- return FALSE;
-
- for (wp = firstwin; wp != NULL; wp = wp->w_next)
-! if (wp->w_buffer != NULL
-! && (!((wp->w_buffer->b_help && !curbuf->b_help)
- # ifdef FEAT_QUICKFIX
- || wp->w_p_pvw
- # endif
-*** ../vim-7.3.764/src/version.c 2013-01-17 13:35:13.000000000 +0100
---- src/version.c 2013-01-17 13:56:56.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 765,
- /**/
-
---
- He was not in the least bit scared to be mashed into a pulp
- Or to have his eyes gouged out and his elbows broken;
- To have his kneecaps split and his body burned away
- And his limbs all hacked and mangled, brave Sir Robin.
- "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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.766
-Fcc: 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.766
-Problem: ":help cpo-*" jumps to the wrong place.
-Solution: Make it equivalent to ":help cpo-star".
-Files: src/ex_cmds.c
-
-
-*** ../vim-7.3.765/src/ex_cmds.c 2012-11-29 20:09:55.000000000 +0100
---- src/ex_cmds.c 2013-01-17 14:05:45.000000000 +0100
-***************
-*** 5849,5862 ****
- int i;
- static char *(mtable[]) = {"*", "g*", "[*", "]*", ":*",
- "/*", "/\\*", "\"*", "**",
-! "/\\(\\)",
- "?", ":?", "?<CR>", "g?", "g?g?", "g??", "z?",
- "/\\?", "/\\z(\\)", "\\=", ":s\\=",
- "[count]", "[quotex]", "[range]",
- "[pattern]", "\\|", "\\%$"};
- static char *(rtable[]) = {"star", "gstar", "[star", "]star", ":star",
- "/star", "/\\\\star", "quotestar", "starstar",
-! "/\\\\(\\\\)",
- "?", ":?", "?<CR>", "g?", "g?g?", "g??", "z?",
- "/\\\\?", "/\\\\z(\\\\)", "\\\\=", ":s\\\\=",
- "\\[count]", "\\[quotex]", "\\[range]",
---- 5849,5862 ----
- int i;
- static char *(mtable[]) = {"*", "g*", "[*", "]*", ":*",
- "/*", "/\\*", "\"*", "**",
-! "cpo-*", "/\\(\\)",
- "?", ":?", "?<CR>", "g?", "g?g?", "g??", "z?",
- "/\\?", "/\\z(\\)", "\\=", ":s\\=",
- "[count]", "[quotex]", "[range]",
- "[pattern]", "\\|", "\\%$"};
- static char *(rtable[]) = {"star", "gstar", "[star", "]star", ":star",
- "/star", "/\\\\star", "quotestar", "starstar",
-! "cpo-star", "/\\\\(\\\\)",
- "?", ":?", "?<CR>", "g?", "g?g?", "g??", "z?",
- "/\\\\?", "/\\\\z(\\\\)", "\\\\=", ":s\\\\=",
- "\\[count]", "\\[quotex]", "\\[range]",
-*** ../vim-7.3.765/src/version.c 2013-01-17 13:59:56.000000000 +0100
---- src/version.c 2013-01-17 14:09:04.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 766,
- /**/
-
---
-The greatest lies of all time:
- (1) The check is in the mail.
- (2) We have a really challenging assignment for you.
- (3) I love you.
- (4) All bugs have been fixed.
- (5) This won't hurt a bit.
- (6) Honey, I just need to debug this program and be home in 5 minutes.
- (7) I have just sent you an e-mail about that.
- (8) Of course I'll respect you in the morning.
- (9) I'm from the government, and I'm here to help you.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.767
-Fcc: 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.767
-Problem: (Win32) The _errno used for iconv may be the wrong one.
-Solution: Use the _errno from iconv.dll. (Ken Takata)
-Files: src/mbyte.c
-
-
-*** ../vim-7.3.766/src/mbyte.c 2012-09-18 18:03:33.000000000 +0200
---- src/mbyte.c 2013-01-17 14:33:42.000000000 +0100
-***************
-*** 3242,3248 ****
-
- /*
- * Version of strnicmp() that handles multi-byte characters.
-! * Needed for Big5, Sjift-JIS and UTF-8 encoding. Other DBCS encodings can
- * probably use strnicmp(), because there are no ASCII characters in the
- * second byte.
- * Returns zero if s1 and s2 are equal (ignoring case), the difference between
---- 3242,3248 ----
-
- /*
- * Version of strnicmp() that handles multi-byte characters.
-! * Needed for Big5, Shift-JIS and UTF-8 encoding. Other DBCS encodings can
- * probably use strnicmp(), because there are no ASCII characters in the
- * second byte.
- * Returns zero if s1 and s2 are equal (ignoring case), the difference between
-***************
-*** 4294,4299 ****
---- 4294,4337 ----
- # endif
-
- /*
-+ * Get the address of 'funcname' which is imported by 'hInst' DLL.
-+ */
-+ static void *
-+ get_iconv_import_func(HINSTANCE hInst, const char *funcname)
-+ {
-+ PBYTE pImage = (PBYTE)hInst;
-+ PIMAGE_DOS_HEADER pDOS = (PIMAGE_DOS_HEADER)hInst;
-+ PIMAGE_NT_HEADERS pPE;
-+ PIMAGE_IMPORT_DESCRIPTOR pImpDesc;
-+ PIMAGE_THUNK_DATA pIAT; /* Import Address Table */
-+ PIMAGE_THUNK_DATA pINT; /* Import Name Table */
-+ PIMAGE_IMPORT_BY_NAME pImpName;
-+
-+ if (pDOS->e_magic != IMAGE_DOS_SIGNATURE)
-+ return NULL;
-+ pPE = (PIMAGE_NT_HEADERS)(pImage + pDOS->e_lfanew);
-+ if (pPE->Signature != IMAGE_NT_SIGNATURE)
-+ return NULL;
-+ pImpDesc = (PIMAGE_IMPORT_DESCRIPTOR)(pImage
-+ + pPE->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT]
-+ .VirtualAddress);
-+ for (; pImpDesc->FirstThunk; ++pImpDesc)
-+ {
-+ pIAT = (PIMAGE_THUNK_DATA)(pImage + pImpDesc->FirstThunk);
-+ pINT = (PIMAGE_THUNK_DATA)(pImage + pImpDesc->OriginalFirstThunk);
-+ for (; pIAT->u1.Function; ++pIAT, ++pINT)
-+ {
-+ if (IMAGE_SNAP_BY_ORDINAL(pINT->u1.Ordinal))
-+ continue;
-+ pImpName = (PIMAGE_IMPORT_BY_NAME)(pImage + pINT->u1.AddressOfData);
-+ if (strcmp(pImpName->Name, funcname) == 0)
-+ return (void *)pIAT->u1.Function;
-+ }
-+ }
-+ return NULL;
-+ }
-+
-+ /*
- * Try opening the iconv.dll and return TRUE if iconv() can be used.
- */
- int
-***************
-*** 4326,4332 ****
- iconv_open = (void *)GetProcAddress(hIconvDLL, "libiconv_open");
- iconv_close = (void *)GetProcAddress(hIconvDLL, "libiconv_close");
- iconvctl = (void *)GetProcAddress(hIconvDLL, "libiconvctl");
-! iconv_errno = (void *)GetProcAddress(hMsvcrtDLL, "_errno");
- if (iconv == NULL || iconv_open == NULL || iconv_close == NULL
- || iconvctl == NULL || iconv_errno == NULL)
- {
---- 4364,4372 ----
- iconv_open = (void *)GetProcAddress(hIconvDLL, "libiconv_open");
- iconv_close = (void *)GetProcAddress(hIconvDLL, "libiconv_close");
- iconvctl = (void *)GetProcAddress(hIconvDLL, "libiconvctl");
-! iconv_errno = get_iconv_import_func(hIconvDLL, "_errno");
-! if (iconv_errno == NULL)
-! iconv_errno = (void *)GetProcAddress(hMsvcrtDLL, "_errno");
- if (iconv == NULL || iconv_open == NULL || iconv_close == NULL
- || iconvctl == NULL || iconv_errno == NULL)
- {
-*** ../vim-7.3.766/src/version.c 2013-01-17 14:09:39.000000000 +0100
---- src/version.c 2013-01-17 14:34:19.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 767,
- /**/
-
---
-FIRST HEAD: Oh! quick! get the sword out I want to cut his head off.
-THIRD HEAD: Oh, cut your own head off.
-SECOND HEAD: Yes - do us all a favour.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.768
-Fcc: 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.768
-Problem: settabvar() and setwinvar() may move the cursor.
-Solution: Save and restore the cursor position when appropriate. (idea by
- Yasuhiro Matsumoto)
-Files: src/edit.c
-
-
-*** ../vim-7.3.767/src/edit.c 2012-10-21 00:10:29.000000000 +0200
---- src/edit.c 2013-01-17 15:32:10.000000000 +0100
-***************
-*** 372,377 ****
---- 372,379 ----
- */
- if (cmdchar != 'r' && cmdchar != 'v')
- {
-+ pos_T save_cursor = curwin->w_cursor;
-+
- # ifdef FEAT_EVAL
- if (cmdchar == 'R')
- ptr = (char_u *)"r";
-***************
-*** 382,387 ****
---- 384,402 ----
- set_vim_var_string(VV_INSERTMODE, ptr, 1);
- # endif
- apply_autocmds(EVENT_INSERTENTER, NULL, NULL, FALSE, curbuf);
-+
-+ /* Since Insert mode was not started yet a call to check_cursor_col()
-+ * may have moved the cursor, especially with the "A" command. */
-+ if (curwin->w_cursor.col != save_cursor.col
-+ && curwin->w_cursor.lnum == save_cursor.lnum)
-+ {
-+ int save_state = State;
-+
-+ curwin->w_cursor = save_cursor;
-+ State = INSERT;
-+ check_cursor_col();
-+ State = save_state;
-+ }
- }
- #endif
-
-*** ../vim-7.3.767/src/version.c 2013-01-17 14:39:43.000000000 +0100
---- src/version.c 2013-01-17 15:10:48.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 768,
- /**/
-
---
-Life would be so much easier if we could just look at the source code.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.769
-Fcc: 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.769
-Problem: 'matchpairs' does not work with multi-byte characters.
-Solution: Make it work. (Christian Brabandt)
-Files: src/misc1.c, src/option.c, src/proto/option.pro, src/search.c,
- src/testdir/test69.in, src/testdir/test69.ok
-
-
-*** ../vim-7.3.768/src/misc1.c 2012-08-15 14:04:50.000000000 +0200
---- src/misc1.c 2013-01-17 15:55:09.000000000 +0100
-***************
-*** 2288,2301 ****
- */
- if (p_sm && (State & INSERT)
- && msg_silent == 0
-- #ifdef FEAT_MBYTE
-- && charlen == 1
-- #endif
- #ifdef FEAT_INS_EXPAND
- && !ins_compl_active()
- #endif
- )
-! showmatch(c);
-
- #ifdef FEAT_RIGHTLEFT
- if (!p_ri || (State & REPLACE_FLAG))
---- 2288,2305 ----
- */
- if (p_sm && (State & INSERT)
- && msg_silent == 0
- #ifdef FEAT_INS_EXPAND
- && !ins_compl_active()
- #endif
- )
-! {
-! #ifdef FEAT_MBYTE
-! if (has_mbyte)
-! showmatch(mb_ptr2char(buf));
-! else
-! #endif
-! showmatch(c);
-! }
-
- #ifdef FEAT_RIGHTLEFT
- if (!p_ri || (State & REPLACE_FLAG))
-*** ../vim-7.3.768/src/option.c 2012-12-05 14:42:56.000000000 +0100
---- src/option.c 2013-01-17 16:38:42.000000000 +0100
-***************
-*** 6149,6164 ****
- /* 'matchpairs' */
- else if (gvarp == &p_mps)
- {
-! /* Check for "x:y,x:y" */
-! for (p = *varp; *p != NUL; p += 4)
- {
-! if (p[1] != ':' || p[2] == NUL || (p[3] != NUL && p[3] != ','))
- {
-! errmsg = e_invarg;
-! break;
- }
-- if (p[3] == NUL)
-- break;
- }
- }
-
---- 6149,6194 ----
- /* 'matchpairs' */
- else if (gvarp == &p_mps)
- {
-! #ifdef FEAT_MBYTE
-! if (has_mbyte)
- {
-! for (p = *varp; *p != NUL; ++p)
- {
-! int x2,x3 = -1;
-!
-! if (*p != NUL)
-! p += mb_ptr2len(p);
-! if (*p != NUL)
-! x2 = *p++;
-! if (*p != NUL)
-! {
-! x3 = mb_ptr2char(p);
-! p += mb_ptr2len(p);
-! }
-! if (x2 != ':' || x2 == -1 || x3 == -1
-! || (*p != NUL && *p != ','))
-! {
-! errmsg = e_invarg;
-! break;
-! }
-! if (*p == NUL)
-! break;
-! }
-! }
-! else
-! #endif
-! {
-! /* Check for "x:y,x:y" */
-! for (p = *varp; *p != NUL; p += 4)
-! {
-! if (p[1] != ':' || p[2] == NUL || (p[3] != NUL && p[3] != ','))
-! {
-! errmsg = e_invarg;
-! break;
-! }
-! if (p[3] == NUL)
-! break;
- }
- }
- }
-
-***************
-*** 11453,11455 ****
---- 11483,11583 ----
- {
- return curbuf->b_p_sts < 0 ? get_sw_value() : curbuf->b_p_sts;
- }
-+
-+ /*
-+ * Check matchpairs option for "*initc".
-+ * If there is a match set "*initc" to the matching character and "*findc" to
-+ * the opposite character. Set "*backwards" to the direction.
-+ * When "switchit" is TRUE swap the direction.
-+ */
-+ void
-+ find_mps_values(initc, findc, backwards, switchit)
-+ int *initc;
-+ int *findc;
-+ int *backwards;
-+ int switchit;
-+ {
-+ char_u *ptr;
-+
-+ ptr = curbuf->b_p_mps;
-+ while (*ptr != NUL)
-+ {
-+ #ifdef FEAT_MBYTE
-+ if (has_mbyte)
-+ {
-+ char_u *prev;
-+
-+ if (mb_ptr2char(ptr) == *initc)
-+ {
-+ if (switchit)
-+ {
-+ *findc = *initc;
-+ *initc = mb_ptr2char(ptr + mb_ptr2len(ptr) + 1);
-+ *backwards = TRUE;
-+ }
-+ else
-+ {
-+ *findc = mb_ptr2char(ptr + mb_ptr2len(ptr) + 1);
-+ *backwards = FALSE;
-+ }
-+ return;
-+ }
-+ prev = ptr;
-+ ptr += mb_ptr2len(ptr) + 1;
-+ if (mb_ptr2char(ptr) == *initc)
-+ {
-+ if (switchit)
-+ {
-+ *findc = *initc;
-+ *initc = mb_ptr2char(prev);
-+ *backwards = FALSE;
-+ }
-+ else
-+ {
-+ *findc = mb_ptr2char(prev);
-+ *backwards = TRUE;
-+ }
-+ return;
-+ }
-+ ptr += mb_ptr2len(ptr);
-+ }
-+ else
-+ #endif
-+ {
-+ if (*ptr == *initc)
-+ {
-+ if (switchit)
-+ {
-+ *backwards = TRUE;
-+ *findc = *initc;
-+ *initc = ptr[2];
-+ }
-+ else
-+ {
-+ *backwards = FALSE;
-+ *findc = ptr[2];
-+ }
-+ return;
-+ }
-+ ptr += 2;
-+ if (*ptr == *initc)
-+ {
-+ if (switchit)
-+ {
-+ *backwards = FALSE;
-+ *findc = *initc;
-+ *initc = ptr[-2];
-+ }
-+ else
-+ {
-+ *backwards = TRUE;
-+ *findc = ptr[-2];
-+ }
-+ return;
-+ }
-+ ++ptr;
-+ }
-+ if (*ptr == ',')
-+ ++ptr;
-+ }
-+ }
-*** ../vim-7.3.768/src/proto/option.pro 2012-12-05 14:42:56.000000000 +0100
---- src/proto/option.pro 2013-01-17 16:39:30.000000000 +0100
-***************
-*** 59,62 ****
---- 59,63 ----
- int check_ff_value __ARGS((char_u *p));
- long get_sw_value __ARGS((void));
- long get_sts_value __ARGS((void));
-+ void find_mps_values __ARGS((int *initc, int *findc, int *backwards, int switchit));
- /* vim: set ft=c : */
-*** ../vim-7.3.768/src/search.c 2012-10-03 13:35:45.000000000 +0200
---- src/search.c 2013-01-17 16:50:12.000000000 +0100
-***************
-*** 1786,1813 ****
- }
- else if (initc != '#' && initc != NUL)
- {
-! /* 'matchpairs' is "x:y,x:y" */
-! for (ptr = curbuf->b_p_mps; *ptr; ptr += 2)
-! {
-! if (*ptr == initc)
-! {
-! findc = initc;
-! initc = ptr[2];
-! backwards = TRUE;
-! break;
-! }
-! ptr += 2;
-! if (*ptr == initc)
-! {
-! findc = initc;
-! initc = ptr[-2];
-! backwards = FALSE;
-! break;
-! }
-! if (ptr[1] != ',')
-! break;
-! }
-! if (!findc) /* invalid initc! */
- return NULL;
- }
- /*
---- 1786,1793 ----
- }
- else if (initc != '#' && initc != NUL)
- {
-! find_mps_values(&initc, &findc, &backwards, TRUE);
-! if (findc == NUL)
- return NULL;
- }
- /*
-***************
-*** 1886,1921 ****
- --pos.col;
- for (;;)
- {
-! initc = linep[pos.col];
- if (initc == NUL)
- break;
-
-! for (ptr = curbuf->b_p_mps; *ptr; ++ptr)
-! {
-! if (*ptr == initc)
-! {
-! findc = ptr[2];
-! backwards = FALSE;
-! break;
-! }
-! ptr += 2;
-! if (*ptr == initc)
-! {
-! findc = ptr[-2];
-! backwards = TRUE;
-! break;
-! }
-! if (!*++ptr)
-! break;
-! }
- if (findc)
- break;
-! #ifdef FEAT_MBYTE
-! if (has_mbyte)
-! pos.col += (*mb_ptr2len)(linep + pos.col);
-! else
-! #endif
-! ++pos.col;
- }
- if (!findc)
- {
---- 1866,1879 ----
- --pos.col;
- for (;;)
- {
-! initc = PTR2CHAR(linep + pos.col);
- if (initc == NUL)
- break;
-
-! find_mps_values(&initc, &findc, &backwards, FALSE);
- if (findc)
- break;
-! pos.col += MB_PTR2LEN(linep + pos.col);
- }
- if (!findc)
- {
-***************
-*** 2260,2266 ****
- * inquote if the number of quotes in a line is even, unless this
- * line or the previous one ends in a '\'. Complicated, isn't it?
- */
-! switch (c = linep[pos.col])
- {
- case NUL:
- /* at end of line without trailing backslash, reset inquote */
---- 2218,2225 ----
- * inquote if the number of quotes in a line is even, unless this
- * line or the previous one ends in a '\'. Complicated, isn't it?
- */
-! c = PTR2CHAR(linep + pos.col);
-! switch (c)
- {
- case NUL:
- /* at end of line without trailing backslash, reset inquote */
-***************
-*** 2469,2488 ****
- * Only show match for chars in the 'matchpairs' option.
- */
- /* 'matchpairs' is "x:y,x:y" */
-! for (p = curbuf->b_p_mps; *p != NUL; p += 2)
- {
- #ifdef FEAT_RIGHTLEFT
-! if (*p == c && (curwin->w_p_rl ^ p_ri))
-! break;
- #endif
-! p += 2;
-! if (*p == c
- #ifdef FEAT_RIGHTLEFT
- && !(curwin->w_p_rl ^ p_ri)
- #endif
- )
- break;
-! if (p[1] != ',')
- return;
- }
-
---- 2428,2450 ----
- * Only show match for chars in the 'matchpairs' option.
- */
- /* 'matchpairs' is "x:y,x:y" */
-! for (p = curbuf->b_p_mps; *p != NUL; ++p)
- {
-+ if (PTR2CHAR(p) == c
- #ifdef FEAT_RIGHTLEFT
-! && (curwin->w_p_rl ^ p_ri)
- #endif
-! )
-! break;
-! p += MB_PTR2LEN(p) + 1;
-! if (PTR2CHAR(p) == c
- #ifdef FEAT_RIGHTLEFT
- && !(curwin->w_p_rl ^ p_ri)
- #endif
- )
- break;
-! p += MB_PTR2LEN(p);
-! if (*p == NUL)
- return;
- }
-
-*** ../vim-7.3.768/src/testdir/test69.in 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test69.in 2013-01-17 15:55:09.000000000 +0100
-***************
-*** 1,4 ****
---- 1,5 ----
- Test for multi-byte text formatting.
-+ Also test, that 'mps' with multibyte chars works.
-
- STARTTEST
- :so mbyte.vim
-***************
-*** 134,139 ****
---- 135,149 ----
- }
-
- STARTTEST
-+ /^{/+1
-+ :set mps+=u2018:u2019
-+ d%
-+ ENDTEST
-+
-+ {
-+ ‘ two three ’ four
-+ }
-+ STARTTEST
- :g/^STARTTEST/.,/^ENDTEST/d
- :1;/^Results/,$wq! test.out
- ENDTEST
-*** ../vim-7.3.768/src/testdir/test69.ok 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test69.ok 2013-01-17 15:55:09.000000000 +0100
-***************
-*** 140,142 ****
---- 140,146 ----
- a
- }
-
-+
-+ {
-+ four
-+ }
-*** ../vim-7.3.768/src/version.c 2013-01-17 15:36:54.000000000 +0100
---- src/version.c 2013-01-17 15:55:49.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 769,
- /**/
-
---
-Microsoft's definition of a boolean: TRUE, FALSE, MAYBE
-"Embrace and extend"...?
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.770
-Fcc: 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.770
-Problem: Vim.h indentation is inconsistent.
-Solution: Adjust the indentation. (Elias Diem)
-Files: src/vim.h
-
-
-*** ../vim-7.3.769/src/vim.h 2012-08-15 14:04:50.000000000 +0200
---- src/vim.h 2013-01-17 17:12:54.000000000 +0100
-***************
-*** 104,110 ****
- # endif
- #endif
- #if defined(MACOS_X) || defined(MACOS_CLASSIC)
-! # define MACOS
- #endif
- #if defined(MACOS_X) && defined(MACOS_CLASSIC)
- Error: To compile for both MACOS X and Classic use a Classic Carbon
---- 104,110 ----
- # endif
- #endif
- #if defined(MACOS_X) || defined(MACOS_CLASSIC)
-! # define MACOS
- #endif
- #if defined(MACOS_X) && defined(MACOS_CLASSIC)
- Error: To compile for both MACOS X and Classic use a Classic Carbon
-***************
-*** 490,496 ****
- # include <string.h>
- # endif
- # if defined(HAVE_STRINGS_H) && !defined(NO_STRINGS_WITH_STRING_H)
-! # include <strings.h>
- # endif
- # ifdef HAVE_STAT_H
- # include <stat.h>
---- 490,496 ----
- # include <string.h>
- # endif
- # if defined(HAVE_STRINGS_H) && !defined(NO_STRINGS_WITH_STRING_H)
-! # include <strings.h>
- # endif
- # ifdef HAVE_STAT_H
- # include <stat.h>
-***************
-*** 515,536 ****
- # include <stdarg.h>
- #endif
-
-! # if defined(HAVE_SYS_SELECT_H) && \
- (!defined(HAVE_SYS_TIME_H) || defined(SYS_SELECT_WITH_SYS_TIME))
-! # include <sys/select.h>
-! # endif
-
-! # ifndef HAVE_SELECT
-! # ifdef HAVE_SYS_POLL_H
-! # include <sys/poll.h>
- # define HAVE_POLL
-- # else
-- # ifdef HAVE_POLL_H
-- # include <poll.h>
-- # define HAVE_POLL
-- # endif
- # endif
- # endif
-
- /* ================ end of the header file puzzle =============== */
-
---- 515,536 ----
- # include <stdarg.h>
- #endif
-
-! #if defined(HAVE_SYS_SELECT_H) && \
- (!defined(HAVE_SYS_TIME_H) || defined(SYS_SELECT_WITH_SYS_TIME))
-! # include <sys/select.h>
-! #endif
-
-! #ifndef HAVE_SELECT
-! # ifdef HAVE_SYS_POLL_H
-! # include <sys/poll.h>
-! # define HAVE_POLL
-! # else
-! # ifdef HAVE_POLL_H
-! # include <poll.h>
- # define HAVE_POLL
- # endif
- # endif
-+ #endif
-
- /* ================ end of the header file puzzle =============== */
-
-***************
-*** 1877,1884 ****
- /* VIM_ATOM_NAME is the older Vim-specific selection type for X11. Still
- * supported for when a mix of Vim versions is used. VIMENC_ATOM_NAME includes
- * the encoding to support Vims using different 'encoding' values. */
-! #define VIM_ATOM_NAME "_VIM_TEXT"
-! #define VIMENC_ATOM_NAME "_VIMENC_TEXT"
-
- /* Selection states for modeless selection */
- # define SELECT_CLEARED 0
---- 1877,1884 ----
- /* VIM_ATOM_NAME is the older Vim-specific selection type for X11. Still
- * supported for when a mix of Vim versions is used. VIMENC_ATOM_NAME includes
- * the encoding to support Vims using different 'encoding' values. */
-! # define VIM_ATOM_NAME "_VIM_TEXT"
-! # define VIMENC_ATOM_NAME "_VIMENC_TEXT"
-
- /* Selection states for modeless selection */
- # define SELECT_CLEARED 0
-*** ../vim-7.3.769/src/version.c 2013-01-17 17:01:57.000000000 +0100
---- src/version.c 2013-01-17 17:16:45.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 770,
- /**/
-
---
-FIRST HEAD: All right! All right! We'll kill him first and then have tea and
- biscuits.
- "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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.771
-Fcc: 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.771 (after 7.3.769)
-Problem: Uninitialized variable. (Yasuhiro Matsumoto)
-Solution: Set x2 to -1.
-Files: src/option.c
-
-
-*** ../vim-7.3.770/src/option.c 2013-01-17 17:01:56.000000000 +0100
---- src/option.c 2013-01-17 17:31:56.000000000 +0100
-***************
-*** 6154,6160 ****
- {
- for (p = *varp; *p != NUL; ++p)
- {
-! int x2,x3 = -1;
-
- if (*p != NUL)
- p += mb_ptr2len(p);
---- 6154,6161 ----
- {
- for (p = *varp; *p != NUL; ++p)
- {
-! int x2 = -1;
-! int x3 = -1;
-
- if (*p != NUL)
- p += mb_ptr2len(p);
-***************
-*** 6165,6172 ****
- x3 = mb_ptr2char(p);
- p += mb_ptr2len(p);
- }
-! if (x2 != ':' || x2 == -1 || x3 == -1
-! || (*p != NUL && *p != ','))
- {
- errmsg = e_invarg;
- break;
---- 6166,6172 ----
- x3 = mb_ptr2char(p);
- p += mb_ptr2len(p);
- }
-! if (x2 != ':' || x3 == -1 || (*p != NUL && *p != ','))
- {
- errmsg = e_invarg;
- break;
-*** ../vim-7.3.770/src/version.c 2013-01-17 17:17:21.000000000 +0100
---- src/version.c 2013-01-17 17:37:24.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 771,
- /**/
-
---
- GALAHAD turns back. We see from his POV the lovely ZOOT standing by him
- smiling enchantingly and a number of equally delectable GIRLIES draped
- around in the seductively poulticed room. They look at him smilingly and
- wave.
- "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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.772
-Fcc: 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.772
-Problem: Cursor is at the wrong location and below the end of the file
- after doing substitutions with confirm flag: %s/x/y/c
- (Dominique Pelle)
-Solution: Update the cursor position. (Christian Brabandt & Dominique)
-Files: src/ex_cmds.c
-
-
-*** ../vim-7.3.771/src/ex_cmds.c 2013-01-17 14:09:39.000000000 +0100
---- src/ex_cmds.c 2013-01-17 18:31:38.000000000 +0100
-***************
-*** 5200,5205 ****
---- 5200,5211 ----
- EMSG2(_(e_patnotf2), get_search_pat());
- }
-
-+ #ifdef FEAT_FOLDING
-+ if (do_ask && hasAnyFolding(curwin))
-+ /* Cursor position may require updating */
-+ changed_window_setting();
-+ #endif
-+
- vim_free(regmatch.regprog);
- }
-
-*** ../vim-7.3.771/src/version.c 2013-01-17 17:37:31.000000000 +0100
---- src/version.c 2013-01-17 18:32:56.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 772,
- /**/
-
---
-Linux is just like a wigwam: no Windows, no Gates and an Apache inside.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.773
-Fcc: 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.773 (after 7.3.767)
-Problem: Crash when OriginalFirstThunk is zero.
-Solution: Skip items with OriginalFirstThunk not set. (Ken Takata)
-Files: src/mbyte.c
-
-
-*** ../vim-7.3.772/src/mbyte.c 2013-01-17 14:39:43.000000000 +0100
---- src/mbyte.c 2013-01-19 13:59:21.000000000 +0100
-***************
-*** 4317,4322 ****
---- 4317,4324 ----
- .VirtualAddress);
- for (; pImpDesc->FirstThunk; ++pImpDesc)
- {
-+ if (!pImpDesc->OriginalFirstThunk)
-+ continue;
- pIAT = (PIMAGE_THUNK_DATA)(pImage + pImpDesc->FirstThunk);
- pINT = (PIMAGE_THUNK_DATA)(pImage + pImpDesc->OriginalFirstThunk);
- for (; pIAT->u1.Function; ++pIAT, ++pINT)
-*** ../vim-7.3.772/src/version.c 2013-01-17 18:33:58.000000000 +0100
---- src/version.c 2013-01-19 14:01:50.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 773,
- /**/
-
---
-Experience is what you get when you don't get what you 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.774
-Fcc: 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.774
-Problem: Tiny GUI version misses console dialog feature.
-Solution: Define FEAT_CON_DIALOG when apprpriate. (Christian Brabandt)
-Files: src/feature.h, src/gui.h
-
-
-*** ../vim-7.3.773/src/feature.h 2012-10-21 02:17:28.000000000 +0200
---- src/feature.h 2013-01-23 13:33:52.000000000 +0100
-***************
-*** 792,797 ****
---- 792,806 ----
- #endif
-
- /*
-+ * On some systems, when we compile with the GUI, we always use it. On Mac
-+ * there is no terminal version, and on Windows we can't figure out how to
-+ * fork one off with :gui.
-+ */
-+ #if defined(FEAT_GUI_MSWIN) || (defined(FEAT_GUI_MAC) && !defined(MACOS_X_UNIX))
-+ # define ALWAYS_USE_GUI
-+ #endif
-+
-+ /*
- * +dialog_gui Use GUI dialog.
- * +dialog_con May use Console dialog.
- * When none of these defined there is no dialog support.
-***************
-*** 820,825 ****
---- 829,837 ----
- || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_MSWIN) \
- || defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_MAC))
- # define FEAT_GUI_TEXTDIALOG
-+ # ifndef ALWAYS_USE_GUI
-+ # define FEAT_CON_DIALOG
-+ # endif
- #endif
-
- /* Mac specific thing: Codewarrior interface. */
-*** ../vim-7.3.773/src/gui.h 2011-06-26 04:48:56.000000000 +0200
---- src/gui.h 2013-01-23 13:33:24.000000000 +0100
-***************
-*** 59,73 ****
- #endif
-
- /*
-- * On some systems, when we compile with the GUI, we always use it. On Mac
-- * there is no terminal version, and on Windows we can't figure out how to
-- * fork one off with :gui.
-- */
-- #if defined(FEAT_GUI_MSWIN) || (defined(FEAT_GUI_MAC) && !defined(MACOS_X_UNIX))
-- # define ALWAYS_USE_GUI
-- #endif
--
-- /*
- * On some systems scrolling needs to be done right away instead of in the
- * main loop.
- */
---- 59,64 ----
-*** ../vim-7.3.773/src/version.c 2013-01-19 14:01:57.000000000 +0100
---- src/version.c 2013-01-23 13:38:12.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 774,
- /**/
-
---
-Overflow on /dev/null, please empty the bit bucket.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.775
-Fcc: 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.775
-Problem: Cygwin and Mingw builds miss dependency on gui_w48.c.
-Solution: Add a build rule. (Ken Takata)
-Files: src/Make_cyg.mak, src/Make_ming.mak
-
-
-*** ../vim-7.3.774/src/Make_cyg.mak 2012-11-28 16:18:26.000000000 +0100
---- src/Make_cyg.mak 2013-01-23 13:53:48.000000000 +0100
-***************
-*** 600,605 ****
---- 600,608 ----
- $(OUTDIR)/ex_eval.o: ex_eval.c $(INCL) ex_cmds.h
- $(CC) -c $(CFLAGS) ex_eval.c -o $(OUTDIR)/ex_eval.o
-
-+ $(OUTDIR)/gui_w32.o: gui_w32.c gui_w48.c $(INCL)
-+ $(CC) -c $(CFLAGS) gui_w32.c -o $(OUTDIR)/gui_w32.o
-+
- $(OUTDIR)/if_cscope.o: if_cscope.c $(INCL) if_cscope.h
- $(CC) -c $(CFLAGS) if_cscope.c -o $(OUTDIR)/if_cscope.o
-
-*** ../vim-7.3.774/src/Make_ming.mak 2012-11-28 16:18:26.000000000 +0100
---- src/Make_ming.mak 2013-01-23 13:53:48.000000000 +0100
-***************
-*** 731,736 ****
---- 731,739 ----
- $(OUTDIR)/ex_eval.o: ex_eval.c $(INCL) ex_cmds.h
- $(CC) -c $(CFLAGS) ex_eval.c -o $(OUTDIR)/ex_eval.o
-
-+ $(OUTDIR)/gui_w32.o: gui_w32.c gui_w48.c $(INCL)
-+ $(CC) -c $(CFLAGS) gui_w32.c -o $(OUTDIR)/gui_w32.o
-+
- $(OUTDIR)/if_cscope.o: if_cscope.c $(INCL) if_cscope.h
- $(CC) -c $(CFLAGS) if_cscope.c -o $(OUTDIR)/if_cscope.o
-
-*** ../vim-7.3.774/src/version.c 2013-01-23 13:40:54.000000000 +0100
---- src/version.c 2013-01-23 13:53:34.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 775,
- /**/
-
---
- ** Hello and Welcome to the Psychiatric Hotline **
-If you are obsessive-compulsive, please press 1 repeatedly.
-If you are co-dependent, please ask someone to press 2.
-If you have multiple personalities, please press 3, 4, 5 and 6.
-If you are paranoid-delusional, we know who you are and what you want
- - just stay on the line so we can trace the call.
-If you are schizophrenic, listen carefully and a little voice will
- tell you which number to press next.
-If you are manic-depressive, it doesn't matter which number you press
- - no one will answer.
-If you suffer from panic attacks, push every button you can find.
-If you are sane, please hold on - we have the rest of humanity on the
- other line and they desparately want to ask you a few questions.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.776
-Fcc: 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.776
-Problem: ml_get error when searching, caused by curwin not matching curbuf.
-Solution: Avoid changing curbuf. (Lech Lorens)
-Files: src/charset.c, src/eval.c, src/mark.c, src/proto/charset.pro,
- src/proto/mark.pro, src/regexp.c, src/syntax.c
-
-
-*** ../vim-7.3.775/src/charset.c 2012-05-25 11:56:06.000000000 +0200
---- src/charset.c 2013-01-23 15:43:37.000000000 +0100
-***************
-*** 905,910 ****
---- 905,918 ----
- vim_iswordc(c)
- int c;
- {
-+ return vim_iswordc_buf(c, curbuf);
-+ }
-+
-+ int
-+ vim_iswordc_buf(c, buf)
-+ int c;
-+ buf_T *buf;
-+ {
- #ifdef FEAT_MBYTE
- if (c >= 0x100)
- {
-***************
-*** 914,920 ****
- return utf_class(c) >= 2;
- }
- #endif
-! return (c > 0 && c < 0x100 && GET_CHARTAB(curbuf, c) != 0);
- }
-
- /*
---- 922,928 ----
- return utf_class(c) >= 2;
- }
- #endif
-! return (c > 0 && c < 0x100 && GET_CHARTAB(buf, c) != 0);
- }
-
- /*
-***************
-*** 933,939 ****
-
- #if defined(FEAT_SYN_HL) || defined(PROTO)
- int
-! vim_iswordc_buf(p, buf)
- char_u *p;
- buf_T *buf;
- {
---- 941,947 ----
-
- #if defined(FEAT_SYN_HL) || defined(PROTO)
- int
-! vim_iswordp_buf(p, buf)
- char_u *p;
- buf_T *buf;
- {
-*** ../vim-7.3.775/src/eval.c 2012-12-05 16:10:21.000000000 +0100
---- src/eval.c 2013-01-23 14:24:08.000000000 +0100
-***************
-*** 18884,18890 ****
- #endif
- if (name[0] == '\'') /* mark */
- {
-! pp = getmark_fnum(name[1], FALSE, fnum);
- if (pp == NULL || pp == (pos_T *)-1 || pp->lnum <= 0)
- return NULL;
- return pp;
---- 18884,18890 ----
- #endif
- if (name[0] == '\'') /* mark */
- {
-! pp = getmark_buf_fnum(curbuf, name[1], FALSE, fnum);
- if (pp == NULL || pp == (pos_T *)-1 || pp->lnum <= 0)
- return NULL;
- return pp;
-*** ../vim-7.3.775/src/mark.c 2012-07-06 17:51:24.000000000 +0200
---- src/mark.c 2013-01-23 14:24:16.000000000 +0100
-***************
-*** 304,310 ****
- #endif
-
- /*
-! * Find mark "c".
- * If "changefile" is TRUE it's allowed to edit another file for '0, 'A, etc.
- * If "fnum" is not NULL store the fnum there for '0, 'A etc., don't edit
- * another file.
---- 304,310 ----
- #endif
-
- /*
-! * Find mark "c" in buffer pointed to by "buf".
- * If "changefile" is TRUE it's allowed to edit another file for '0, 'A, etc.
- * If "fnum" is not NULL store the fnum there for '0, 'A etc., don't edit
- * another file.
-***************
-*** 315,329 ****
- * - -1 if mark is in other file and jumped there (only if changefile is TRUE)
- */
- pos_T *
- getmark(c, changefile)
- int c;
- int changefile;
- {
-! return getmark_fnum(c, changefile, NULL);
- }
-
- pos_T *
-! getmark_fnum(c, changefile, fnum)
- int c;
- int changefile;
- int *fnum;
---- 315,339 ----
- * - -1 if mark is in other file and jumped there (only if changefile is TRUE)
- */
- pos_T *
-+ getmark_buf(buf, c, changefile)
-+ buf_T *buf;
-+ int c;
-+ int changefile;
-+ {
-+ return getmark_buf_fnum(buf, c, changefile, NULL);
-+ }
-+
-+ pos_T *
- getmark(c, changefile)
- int c;
- int changefile;
- {
-! return getmark_buf_fnum(curbuf, c, changefile, NULL);
- }
-
- pos_T *
-! getmark_buf_fnum(buf, c, changefile, fnum)
-! buf_T *buf;
- int c;
- int changefile;
- int *fnum;
-***************
-*** 351,365 ****
- posp = &pos_copy; /* w_pcmark may be changed soon */
- }
- else if (c == '"') /* to pos when leaving buffer */
-! posp = &(curbuf->b_last_cursor);
- else if (c == '^') /* to where Insert mode stopped */
-! posp = &(curbuf->b_last_insert);
- else if (c == '.') /* to where last change was made */
-! posp = &(curbuf->b_last_change);
- else if (c == '[') /* to start of previous operator */
-! posp = &(curbuf->b_op_start);
- else if (c == ']') /* to end of previous operator */
-! posp = &(curbuf->b_op_end);
- else if (c == '{' || c == '}') /* to previous/next paragraph */
- {
- pos_T pos;
---- 361,375 ----
- posp = &pos_copy; /* w_pcmark may be changed soon */
- }
- else if (c == '"') /* to pos when leaving buffer */
-! posp = &(buf->b_last_cursor);
- else if (c == '^') /* to where Insert mode stopped */
-! posp = &(buf->b_last_insert);
- else if (c == '.') /* to where last change was made */
-! posp = &(buf->b_last_change);
- else if (c == '[') /* to start of previous operator */
-! posp = &(buf->b_op_start);
- else if (c == ']') /* to end of previous operator */
-! posp = &(buf->b_op_end);
- else if (c == '{' || c == '}') /* to previous/next paragraph */
- {
- pos_T pos;
-***************
-*** 395,402 ****
- #ifdef FEAT_VISUAL
- else if (c == '<' || c == '>') /* start/end of visual area */
- {
-! startp = &curbuf->b_visual.vi_start;
-! endp = &curbuf->b_visual.vi_end;
- if ((c == '<') == lt(*startp, *endp))
- posp = startp;
- else
---- 405,412 ----
- #ifdef FEAT_VISUAL
- else if (c == '<' || c == '>') /* start/end of visual area */
- {
-! startp = &buf->b_visual.vi_start;
-! endp = &buf->b_visual.vi_end;
- if ((c == '<') == lt(*startp, *endp))
- posp = startp;
- else
-***************
-*** 404,410 ****
- /*
- * For Visual line mode, set mark at begin or end of line
- */
-! if (curbuf->b_visual.vi_mode == 'V')
- {
- pos_copy = *posp;
- posp = &pos_copy;
---- 414,420 ----
- /*
- * For Visual line mode, set mark at begin or end of line
- */
-! if (buf->b_visual.vi_mode == 'V')
- {
- pos_copy = *posp;
- posp = &pos_copy;
-***************
-*** 420,426 ****
- #endif
- else if (ASCII_ISLOWER(c)) /* normal named mark */
- {
-! posp = &(curbuf->b_namedm[c - 'a']);
- }
- else if (ASCII_ISUPPER(c) || VIM_ISDIGIT(c)) /* named file mark */
- {
---- 430,436 ----
- #endif
- else if (ASCII_ISLOWER(c)) /* normal named mark */
- {
-! posp = &(buf->b_namedm[c - 'a']);
- }
- else if (ASCII_ISUPPER(c) || VIM_ISDIGIT(c)) /* named file mark */
- {
-***************
-*** 435,441 ****
-
- if (fnum != NULL)
- *fnum = namedfm[c].fmark.fnum;
-! else if (namedfm[c].fmark.fnum != curbuf->b_fnum)
- {
- /* mark is in another file */
- posp = &pos_copy;
---- 445,451 ----
-
- if (fnum != NULL)
- *fnum = namedfm[c].fmark.fnum;
-! else if (namedfm[c].fmark.fnum != buf->b_fnum)
- {
- /* mark is in another file */
- posp = &pos_copy;
-*** ../vim-7.3.775/src/proto/charset.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/charset.pro 2013-01-23 15:43:25.000000000 +0100
-***************
-*** 19,26 ****
- int win_linetabsize __ARGS((win_T *wp, char_u *p, colnr_T len));
- int vim_isIDc __ARGS((int c));
- int vim_iswordc __ARGS((int c));
- int vim_iswordp __ARGS((char_u *p));
-! int vim_iswordc_buf __ARGS((char_u *p, buf_T *buf));
- int vim_isfilec __ARGS((int c));
- int vim_isfilec_or_wc __ARGS((int c));
- int vim_isprintc __ARGS((int c));
---- 19,27 ----
- int win_linetabsize __ARGS((win_T *wp, char_u *p, colnr_T len));
- int vim_isIDc __ARGS((int c));
- int vim_iswordc __ARGS((int c));
-+ int vim_iswordc_buf __ARGS((int c, buf_T *buf));
- int vim_iswordp __ARGS((char_u *p));
-! int vim_iswordp_buf __ARGS((char_u *p, buf_T *buf));
- int vim_isfilec __ARGS((int c));
- int vim_isfilec_or_wc __ARGS((int c));
- int vim_isprintc __ARGS((int c));
-*** ../vim-7.3.775/src/proto/mark.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/mark.pro 2013-01-23 14:24:23.000000000 +0100
-***************
-*** 5,12 ****
- void checkpcmark __ARGS((void));
- pos_T *movemark __ARGS((int count));
- pos_T *movechangelist __ARGS((int count));
- pos_T *getmark __ARGS((int c, int changefile));
-! pos_T *getmark_fnum __ARGS((int c, int changefile, int *fnum));
- pos_T *getnextmark __ARGS((pos_T *startpos, int dir, int begin_line));
- void fmarks_check_names __ARGS((buf_T *buf));
- int check_mark __ARGS((pos_T *pos));
---- 5,13 ----
- void checkpcmark __ARGS((void));
- pos_T *movemark __ARGS((int count));
- pos_T *movechangelist __ARGS((int count));
-+ pos_T *getmark_buf __ARGS((buf_T *buf, int c, int changefile));
- pos_T *getmark __ARGS((int c, int changefile));
-! pos_T *getmark_buf_fnum __ARGS((buf_T *buf, int c, int changefile, int *fnum));
- pos_T *getnextmark __ARGS((pos_T *startpos, int dir, int begin_line));
- void fmarks_check_names __ARGS((buf_T *buf));
- int check_mark __ARGS((pos_T *pos));
-*** ../vim-7.3.775/src/regexp.c 2011-07-20 17:58:14.000000000 +0200
---- src/regexp.c 2013-01-23 14:19:15.000000000 +0100
-***************
-*** 3623,3629 ****
- proftime_T *tm; /* timeout limit or NULL */
- {
- long r;
-- buf_T *save_curbuf = curbuf;
-
- reg_match = NULL;
- reg_mmatch = rmp;
---- 3623,3628 ----
-***************
-*** 3638,3647 ****
- #endif
- ireg_maxcol = rmp->rmm_maxcol;
-
-- /* Need to switch to buffer "buf" to make vim_iswordc() work. */
-- curbuf = buf;
- r = vim_regexec_both(NULL, col, tm);
-- curbuf = save_curbuf;
-
- return r;
- }
---- 3637,3643 ----
-***************
-*** 4185,4191 ****
- int cmp = OPERAND(scan)[1];
- pos_T *pos;
-
-! pos = getmark(mark, FALSE);
- if (pos == NULL /* mark doesn't exist */
- || pos->lnum <= 0 /* mark isn't set (in curbuf) */
- || (pos->lnum == reglnum + reg_firstlnum
---- 4181,4187 ----
- int cmp = OPERAND(scan)[1];
- pos_T *pos;
-
-! pos = getmark_buf(reg_buf, mark, FALSE);
- if (pos == NULL /* mark doesn't exist */
- || pos->lnum <= 0 /* mark isn't set (in curbuf) */
- || (pos->lnum == reglnum + reg_firstlnum
-***************
-*** 4315,4322 ****
- #endif
- else
- {
-! if (!vim_iswordc(c)
-! || (reginput > regline && vim_iswordc(reginput[-1])))
- status = RA_NOMATCH;
- }
- break;
---- 4311,4318 ----
- #endif
- else
- {
-! if (!vim_iswordc_buf(c, reg_buf)
-! || (reginput > regline && vim_iswordc_buf(reginput[-1], reg_buf)))
- status = RA_NOMATCH;
- }
- break;
-***************
-*** 4339,4346 ****
- #endif
- else
- {
-! if (!vim_iswordc(reginput[-1])
-! || (reginput[0] != NUL && vim_iswordc(c)))
- status = RA_NOMATCH;
- }
- break; /* Matched with EOW */
---- 4335,4342 ----
- #endif
- else
- {
-! if (!vim_iswordc_buf(reginput[-1], reg_buf)
-! || (reginput[0] != NUL && vim_iswordc_buf(c, reg_buf)))
- status = RA_NOMATCH;
- }
- break; /* Matched with EOW */
-*** ../vim-7.3.775/src/syntax.c 2012-10-21 21:25:17.000000000 +0200
---- src/syntax.c 2013-01-23 14:19:15.000000000 +0100
-***************
-*** 1954,1962 ****
- if (do_keywords)
- {
- line = syn_getcurline();
-! if (vim_iswordc_buf(line + current_col, syn_buf)
- && (current_col == 0
-! || !vim_iswordc_buf(line + current_col - 1
- #ifdef FEAT_MBYTE
- - (has_mbyte
- ? (*mb_head_off)(line, line + current_col - 1)
---- 1954,1962 ----
- if (do_keywords)
- {
- line = syn_getcurline();
-! if (vim_iswordp_buf(line + current_col, syn_buf)
- && (current_col == 0
-! || !vim_iswordp_buf(line + current_col - 1
- #ifdef FEAT_MBYTE
- - (has_mbyte
- ? (*mb_head_off)(line, line + current_col - 1)
-***************
-*** 3280,3286 ****
- #endif
- ++kwlen;
- }
-! while (vim_iswordc_buf(kwp + kwlen, syn_buf));
-
- if (kwlen > MAXKEYWLEN)
- return 0;
---- 3280,3286 ----
- #endif
- ++kwlen;
- }
-! while (vim_iswordp_buf(kwp + kwlen, syn_buf));
-
- if (kwlen > MAXKEYWLEN)
- return 0;
-*** ../vim-7.3.775/src/version.c 2013-01-23 13:55:16.000000000 +0100
---- src/version.c 2013-01-23 14:19:44.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 776,
- /**/
-
---
-Q: How does a UNIX Guru do Sex ?
-A: unzip;strip;touch;finger;mount;fsck;more;yes;umount;sleep
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.777
-Fcc: 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.777
-Problem: When building with Gnome locale gets reset.
-Solution: Set locale after gnome_program_init(). (Christian Brabandt)
-Files: src/gui_gtk_x11.c
-
-
-*** ../vim-7.3.776/src/gui_gtk_x11.c 2012-05-18 17:03:14.000000000 +0200
---- src/gui_gtk_x11.c 2013-01-23 15:58:14.000000000 +0100
-***************
-*** 3130,3137 ****
---- 3130,3145 ----
- * exits on failure, but that's a non-issue because we already called
- * gtk_init_check() in gui_mch_init_check(). */
- if (using_gnome)
-+ {
- gnome_program_init(VIMPACKAGE, VIM_VERSION_SHORT,
- LIBGNOMEUI_MODULE, gui_argc, gui_argv, NULL);
-+ # if defined(FEAT_FLOAT) && defined(LC_NUMERIC)
-+ /* Make sure strtod() uses a decimal point, not a comma. Gnome init
-+ * may change it. */
-+ if (setlocale(LC_NUMERIC, NULL) != (char *) "C")
-+ setlocale(LC_NUMERIC, "C");
-+ # endif
-+ }
- #endif
- vim_free(gui_argv);
- gui_argv = NULL;
-*** ../vim-7.3.776/src/version.c 2013-01-23 15:53:08.000000000 +0100
---- src/version.c 2013-01-23 15:56:21.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 777,
- /**/
-
---
- [clop clop]
-GUARD #1: Halt! Who goes there?
-ARTHUR: It is I, Arthur, son of Uther Pendragon, from the castle of
- Camelot. King of the Britons, defeator of the Saxons, sovereign of
- all England!
-GUARD #1: Pull the other one!
- The Quest for the Holy Grail (Monty Python)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.778
-Fcc: 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.778
-Problem: Compiler error for adding up two pointers. (Titov Anatoly)
-Solution: Add a type cast. (Ken Takata)
-Files: src/mbyte.c
-
-
-*** ../vim-7.3.777/src/mbyte.c 2013-01-19 14:01:57.000000000 +0100
---- src/mbyte.c 2013-01-23 16:18:02.000000000 +0100
-***************
-*** 4325,4331 ****
- {
- if (IMAGE_SNAP_BY_ORDINAL(pINT->u1.Ordinal))
- continue;
-! pImpName = (PIMAGE_IMPORT_BY_NAME)(pImage + pINT->u1.AddressOfData);
- if (strcmp(pImpName->Name, funcname) == 0)
- return (void *)pIAT->u1.Function;
- }
---- 4325,4332 ----
- {
- if (IMAGE_SNAP_BY_ORDINAL(pINT->u1.Ordinal))
- continue;
-! pImpName = (PIMAGE_IMPORT_BY_NAME)(pImage
-! + (UINT_PTR)(pINT->u1.AddressOfData));
- if (strcmp(pImpName->Name, funcname) == 0)
- return (void *)pIAT->u1.Function;
- }
-*** ../vim-7.3.777/src/version.c 2013-01-23 16:00:05.000000000 +0100
---- src/version.c 2013-01-23 16:18:40.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 778,
- /**/
-
---
-'I generally avoid temptation unless I can't resist it."
- -- Mae West
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.779
-Fcc: 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.779
-Problem: Backwards search lands in wrong place when started on a multibyte
- character.
-Solution: Do not set extra_col for a backwards search. (Sung Pae)
-Files: src/search.c, src/testdir/test44.in, src/testdir/test44.ok
-
-
-*** ../vim-7.3.778/src/search.c 2013-01-17 17:01:57.000000000 +0100
---- src/search.c 2013-01-23 16:27:35.000000000 +0100
-***************
-*** 572,578 ****
- extra_col = 0;
- #ifdef FEAT_MBYTE
- /* Watch out for the "col" being MAXCOL - 2, used in a closed fold. */
-! else if (has_mbyte && pos->lnum >= 1 && pos->lnum <= buf->b_ml.ml_line_count
- && pos->col < MAXCOL - 2)
- {
- ptr = ml_get_buf(buf, pos->lnum, FALSE) + pos->col;
---- 572,579 ----
- extra_col = 0;
- #ifdef FEAT_MBYTE
- /* Watch out for the "col" being MAXCOL - 2, used in a closed fold. */
-! else if (dir != BACKWARD && has_mbyte
-! && pos->lnum >= 1 && pos->lnum <= buf->b_ml.ml_line_count
- && pos->col < MAXCOL - 2)
- {
- ptr = ml_get_buf(buf, pos->lnum, FALSE) + pos->col;
-*** ../vim-7.3.778/src/testdir/test44.in 2011-07-20 17:58:14.000000000 +0200
---- src/testdir/test44.in 2013-01-23 16:22:38.000000000 +0100
-***************
-*** 29,34 ****
---- 29,37 ----
- x/\%d21879b
- x/ [[=A=]]* [[=B=]]* [[=C=]]* [[=D=]]* [[=E=]]* [[=F=]]* [[=G=]]* [[=H=]]* [[=I=]]* [[=J=]]* [[=K=]]* [[=L=]]* [[=M=]]* [[=N=]]* [[=O=]]* [[=P=]]* [[=Q=]]* [[=R=]]* [[=S=]]* [[=T=]]* [[=U=]]* [[=V=]]* [[=W=]]* [[=X=]]* [[=Y=]]* [[=Z=]]*/e
- x/ [[=a=]]* [[=b=]]* [[=c=]]* [[=d=]]* [[=e=]]* [[=f=]]* [[=g=]]* [[=h=]]* [[=i=]]* [[=j=]]* [[=k=]]* [[=l=]]* [[=m=]]* [[=n=]]* [[=o=]]* [[=p=]]* [[=q=]]* [[=r=]]* [[=s=]]* [[=t=]]* [[=u=]]* [[=v=]]* [[=w=]]* [[=x=]]* [[=y=]]* [[=z=]]*/e
-+ x:" Test backwards search from a multi-byte char
-+ /x
-+ x?.
- x:?^1?,$w! test.out
- :e! test.out
- G:put =matchstr(\"×בגד\", \".\", 0, 2) " ב
-***************
-*** 57,59 ****
---- 60,63 ----
- g aå•·bb
- h AÀÃÂÃÄÅĀĂĄÇǞǠẢ BḂḆ CÇĆĈĊČ DÄŽÄḊḎḠEÈÉÊËĒĔĖĘĚẺẼ FḞ GĜĞĠĢǤǦǴḠ HĤĦḢḦḨ IÃŒÃÃŽÃĨĪĬĮİÇỈ JÄ´ KĶǨḰḴ LĹĻĽĿÅḺ MḾṀ NÑŃŅŇṄṈ OÒÓÔÕÖØŌŎÅƠǑǪǬỎ PṔṖ Q RŔŖŘṘṞ SŚŜŞŠṠ TŢŤŦṪṮ UÙÚÛÜŨŪŬŮŰŲƯǓỦ Vá¹¼ WŴẀẂẄẆ XẊẌ YÃŶŸẎỲỶỸ ZŹŻŽƵáºáº”
- i aàáâãäåÄăąǎǟǡả bḃḇ cÃ§Ä‡Ä‰Ä‹Ä dÄđḋá¸á¸‘ eèéêëēĕėęěẻẽ fḟ gÄğġģǥǧǵḡ hĥħḣḧḩẖ iìíîïĩīĭįÇỉ jĵǰ kķǩḱḵ lĺļľŀłḻ mḿṠnñńņňʼnṅṉ oòóôõöøÅÅÅ‘Æ¡Ç’Ç«Ç­á» pṕṗ q rŕŗřṙṟ sÅ›Åşšṡ tţťŧṫṯẗ uùúûüũūŭůűųưǔủ vá¹½ wŵáºáºƒáº…ẇẘ xẋẠyýÿŷáºáº™á»³á»·á»¹ zźżžƶẑẕ
-+ j 0123â¤x
-*** ../vim-7.3.778/src/testdir/test44.ok 2011-07-20 17:58:14.000000000 +0200
---- src/testdir/test44.ok 2013-01-23 16:22:38.000000000 +0100
-***************
-*** 16,21 ****
---- 16,22 ----
- g abb
- h AÀÃÂÃÄÅĀĂĄÇǞǠẢ BḂḆ CÇĆĈĊČ DÄŽÄḊḎḠEÈÉÊËĒĔĖĘĚẺẼ FḞ GĜĞĠĢǤǦǴḠ HĤĦḢḦḨ IÃŒÃÃŽÃĨĪĬĮİÇỈ JÄ´ KĶǨḰḴ LĹĻĽĿÅḺ MḾṀ NÑŃŅŇṄṈ OÒÓÔÕÖØŌŎÅƠǑǪǬỎ PṔṖ Q RŔŖŘṘṞ SŚŜŞŠṠ TŢŤŦṪṮ UÙÚÛÜŨŪŬŮŰŲƯǓỦ Vá¹¼ WŴẀẂẄẆ XẊẌ YÃŶŸẎỲỶỸ ZŹŻŽƵáº
- i aàáâãäåÄăąǎǟǡả bḃḇ cÃ§Ä‡Ä‰Ä‹Ä dÄđḋá¸á¸‘ eèéêëēĕėęěẻẽ fḟ gÄğġģǥǧǵḡ hĥħḣḧḩẖ iìíîïĩīĭįÇỉ jĵǰ kķǩḱḵ lĺļľŀłḻ mḿṠnñńņňʼnṅṉ oòóôõöøÅÅÅ‘Æ¡Ç’Ç«Ç­á» pṕṗ q rŕŗřṙṟ sÅ›Åşšṡ tţťŧṫṯẗ uùúûüũūŭůűųưǔủ vá¹½ wŵáºáºƒáº…ẇẘ xẋẠyýÿŷáºáº™á»³á»·á»¹ zźżžƶẑ
-+ j 012â¤
- ב
- בג
- ×
-*** ../vim-7.3.778/src/version.c 2013-01-23 16:19:17.000000000 +0100
---- src/version.c 2013-01-23 16:39:23.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 779,
- /**/
-
---
-Veni, Vidi, Video -- I came, I saw, I taped what I saw.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.780
-Fcc: 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.780
-Problem: char2nr() and nr2char() always use 'encoding'.
-Solution: Add argument to use utf-8 characters. (Yasuhiro Matsumoto)
-Files: runtime/doc/eval.txt, src/eval.c
-
-
-*** ../vim-7.3.779/runtime/doc/eval.txt 2012-12-05 16:10:21.000000000 +0100
---- runtime/doc/eval.txt 2013-01-23 17:00:52.000000000 +0100
-***************
-*** 1705,1711 ****
- any call {func} with arguments {arglist}
- ceil( {expr}) Float round {expr} up
- changenr() Number current change number
-! char2nr( {expr}) Number ASCII value of first char in {expr}
- cindent( {lnum}) Number C indent for line {lnum}
- clearmatches() none clear all matches
- col( {expr}) Number column nr of cursor or mark
---- 1716,1722 ----
- any call {func} with arguments {arglist}
- ceil( {expr}) Float round {expr} up
- changenr() Number current change number
-! char2nr( {expr}[, {utf8}]) Number ASCII/UTF8 value of first char in {expr}
- cindent( {lnum}) Number C indent for line {lnum}
- clearmatches() none clear all matches
- col( {expr}) Number column nr of cursor or mark
-***************
-*** 1862,1868 ****
- mode( [expr]) String current editing mode
- mzeval( {expr}) any evaluate |MzScheme| expression
- nextnonblank( {lnum}) Number line nr of non-blank line >= {lnum}
-! nr2char( {expr}) String single char with ASCII value {expr}
- or( {expr}, {expr}) Number bitwise OR
- pathshorten( {expr}) String shorten directory names in a path
- pow( {x}, {y}) Float {x} to the power of {y}
---- 1873,1879 ----
- mode( [expr]) String current editing mode
- mzeval( {expr}) any evaluate |MzScheme| expression
- nextnonblank( {lnum}) Number line nr of non-blank line >= {lnum}
-! nr2char( {expr}[, {utf8}]) String single char with ASCII/UTF8 value {expr}
- or( {expr}, {expr}) Number bitwise OR
- pathshorten( {expr}) String shorten directory names in a path
- pow( {x}, {y}) Float {x} to the power of {y}
-***************
-*** 2282,2295 ****
- redo it is the number of the redone change. After undo it is
- one less than the number of the undone change.
-
-! char2nr({expr}) *char2nr()*
- Return number value of the first char in {expr}. Examples: >
- char2nr(" ") returns 32
- char2nr("ABC") returns 65
-! < The current 'encoding' is used. Example for "utf-8": >
- char2nr("á") returns 225
- char2nr("á"[0]) returns 195
-! < |nr2char()| does the opposite.
-
- cindent({lnum}) *cindent()*
- Get the amount of indent for line {lnum} according the C
---- 2294,2310 ----
- redo it is the number of the redone change. After undo it is
- one less than the number of the undone change.
-
-! char2nr({expr}[, {utf8}]) *char2nr()*
- Return number value of the first char in {expr}. Examples: >
- char2nr(" ") returns 32
- char2nr("ABC") returns 65
-! < When {utf8} is omitted or zero, the current 'encoding' is used.
-! Example for "utf-8": >
- char2nr("á") returns 225
- char2nr("á"[0]) returns 195
-! < With {utf8} set to 1, always treat as utf-8 characters.
-! A combining character is a separate character.
-! |nr2char()| does the opposite.
-
- cindent({lnum}) *cindent()*
- Get the amount of indent for line {lnum} according the C
-*** ../vim-7.3.779/src/eval.c 2013-01-23 15:53:08.000000000 +0100
---- src/eval.c 2013-01-23 16:57:48.000000000 +0100
-***************
-*** 7854,7860 ****
- {"ceil", 1, 1, f_ceil},
- #endif
- {"changenr", 0, 0, f_changenr},
-! {"char2nr", 1, 1, f_char2nr},
- {"cindent", 1, 1, f_cindent},
- {"clearmatches", 0, 0, f_clearmatches},
- {"col", 1, 1, f_col},
---- 7854,7860 ----
- {"ceil", 1, 1, f_ceil},
- #endif
- {"changenr", 0, 0, f_changenr},
-! {"char2nr", 1, 2, f_char2nr},
- {"cindent", 1, 1, f_cindent},
- {"clearmatches", 0, 0, f_clearmatches},
- {"col", 1, 1, f_col},
-***************
-*** 8003,8009 ****
- {"mzeval", 1, 1, f_mzeval},
- #endif
- {"nextnonblank", 1, 1, f_nextnonblank},
-! {"nr2char", 1, 1, f_nr2char},
- {"or", 2, 2, f_or},
- {"pathshorten", 1, 1, f_pathshorten},
- #ifdef FEAT_FLOAT
---- 8003,8009 ----
- {"mzeval", 1, 1, f_mzeval},
- #endif
- {"nextnonblank", 1, 1, f_nextnonblank},
-! {"nr2char", 1, 2, f_nr2char},
- {"or", 2, 2, f_or},
- {"pathshorten", 1, 1, f_pathshorten},
- #ifdef FEAT_FLOAT
-***************
-*** 9303,9309 ****
- {
- #ifdef FEAT_MBYTE
- if (has_mbyte)
-! rettv->vval.v_number = (*mb_ptr2char)(get_tv_string(&argvars[0]));
- else
- #endif
- rettv->vval.v_number = get_tv_string(&argvars[0])[0];
---- 9303,9319 ----
- {
- #ifdef FEAT_MBYTE
- if (has_mbyte)
-! {
-! int utf8 = 0;
-!
-! if (argvars[1].v_type != VAR_UNKNOWN)
-! utf8 = get_tv_number_chk(&argvars[1], NULL);
-!
-! if (utf8)
-! rettv->vval.v_number = (*utf_ptr2char)(get_tv_string(&argvars[0]));
-! else
-! rettv->vval.v_number = (*mb_ptr2char)(get_tv_string(&argvars[0]));
-! }
- else
- #endif
- rettv->vval.v_number = get_tv_string(&argvars[0])[0];
-***************
-*** 14360,14366 ****
-
- #ifdef FEAT_MBYTE
- if (has_mbyte)
-! buf[(*mb_char2bytes)((int)get_tv_number(&argvars[0]), buf)] = NUL;
- else
- #endif
- {
---- 14370,14385 ----
-
- #ifdef FEAT_MBYTE
- if (has_mbyte)
-! {
-! int utf8 = 0;
-!
-! if (argvars[1].v_type != VAR_UNKNOWN)
-! utf8 = get_tv_number_chk(&argvars[1], NULL);
-! if (utf8)
-! buf[(*utf_char2bytes)((int)get_tv_number(&argvars[0]), buf)] = NUL;
-! else
-! buf[(*mb_char2bytes)((int)get_tv_number(&argvars[0]), buf)] = NUL;
-! }
- else
- #endif
- {
-*** ../vim-7.3.779/src/version.c 2013-01-23 16:43:07.000000000 +0100
---- src/version.c 2013-01-23 17:06:36.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 780,
- /**/
-
---
-A real patriot is the fellow who gets a parking ticket and rejoices
-that the system works.
-
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.781
-Fcc: 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.781
-Problem: Drawing with 'guifontwide' can be slow.
-Solution: Draw multiple characters at a time. (Taro Muraoka)
-Files: src/gui.c
-
-
-*** ../vim-7.3.780/src/gui.c 2012-11-20 12:03:02.000000000 +0100
---- src/gui.c 2013-01-23 17:28:48.000000000 +0100
-***************
-*** 2380,2386 ****
- int cl; /* byte length of current char */
- int comping; /* current char is composing */
- int scol = col; /* screen column */
-! int dowide; /* use 'guifontwide' */
-
- /* Break the string at a composing character, it has to be drawn on
- * top of the previous character. */
---- 2380,2388 ----
- int cl; /* byte length of current char */
- int comping; /* current char is composing */
- int scol = col; /* screen column */
-! int curr_wide; /* use 'guifontwide' */
-! int prev_wide = FALSE;
-! int wide_changed;
-
- /* Break the string at a composing character, it has to be drawn on
- * top of the previous character. */
-***************
-*** 2395,2403 ****
- && fontset == NOFONTSET
- # endif
- && gui.wide_font != NOFONT)
-! dowide = TRUE;
- else
-! dowide = FALSE;
- comping = utf_iscomposing(c);
- if (!comping) /* count cells from non-composing chars */
- cells += cn;
---- 2397,2405 ----
- && fontset == NOFONTSET
- # endif
- && gui.wide_font != NOFONT)
-! curr_wide = TRUE;
- else
-! curr_wide = FALSE;
- comping = utf_iscomposing(c);
- if (!comping) /* count cells from non-composing chars */
- cells += cn;
-***************
-*** 2405,2413 ****
- if (cl == 0) /* hit end of string */
- len = i + cl; /* len must be wrong "cannot happen" */
-
-! /* print the string so far if it's the last character or there is
- * a composing character. */
-! if (i + cl >= len || (comping && i > start) || dowide
- # if defined(FEAT_GUI_X11)
- || (cn > 1
- # ifdef FEAT_XFONTSET
---- 2407,2417 ----
- if (cl == 0) /* hit end of string */
- len = i + cl; /* len must be wrong "cannot happen" */
-
-! wide_changed = curr_wide != prev_wide;
-!
-! /* Print the string so far if it's the last character or there is
- * a composing character. */
-! if (i + cl >= len || (comping && i > start) || wide_changed
- # if defined(FEAT_GUI_X11)
- || (cn > 1
- # ifdef FEAT_XFONTSET
-***************
-*** 2419,2443 ****
- # endif
- )
- {
-! if (comping || dowide)
- thislen = i - start;
- else
- thislen = i - start + cl;
- if (thislen > 0)
- {
- gui_mch_draw_string(gui.row, scol, s + start, thislen,
- draw_flags);
- start += thislen;
- }
- scol += cells;
- cells = 0;
-! if (dowide)
- {
-! gui_mch_set_font(gui.wide_font);
-! gui_mch_draw_string(gui.row, scol - cn,
-! s + start, cl, draw_flags);
-! gui_mch_set_font(font);
-! start += cl;
- }
-
- # if defined(FEAT_GUI_X11)
---- 2423,2450 ----
- # endif
- )
- {
-! if (comping || wide_changed)
- thislen = i - start;
- else
- thislen = i - start + cl;
- if (thislen > 0)
- {
-+ if (prev_wide)
-+ gui_mch_set_font(gui.wide_font);
- gui_mch_draw_string(gui.row, scol, s + start, thislen,
- draw_flags);
-+ if (prev_wide)
-+ gui_mch_set_font(font);
- start += thislen;
- }
- scol += cells;
- cells = 0;
-! /* Adjust to not draw a character which width is changed
-! * against with last one. */
-! if (wide_changed && !comping)
- {
-! scol -= cn;
-! cl = 0;
- }
-
- # if defined(FEAT_GUI_X11)
-***************
-*** 2447,2453 ****
- # ifdef FEAT_XFONTSET
- && fontset == NOFONTSET
- # endif
-! && !dowide)
- gui_mch_draw_string(gui.row, scol - 1, (char_u *)" ",
- 1, draw_flags);
- # endif
---- 2454,2460 ----
- # ifdef FEAT_XFONTSET
- && fontset == NOFONTSET
- # endif
-! && !wide_changed)
- gui_mch_draw_string(gui.row, scol - 1, (char_u *)" ",
- 1, draw_flags);
- # endif
-***************
-*** 2465,2470 ****
---- 2472,2478 ----
- # endif
- start = i + cl;
- }
-+ prev_wide = curr_wide;
- }
- /* The stuff below assumes "len" is the length in screen columns. */
- len = scol - col;
-*** ../vim-7.3.780/src/version.c 2013-01-23 17:15:25.000000000 +0100
---- src/version.c 2013-01-23 17:28:17.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 781,
- /**/
-
---
-GUARD #1: Where'd you get the coconut?
-ARTHUR: We found them.
-GUARD #1: Found them? In Mercea? The coconut's tropical!
-ARTHUR: What do you mean?
-GUARD #1: Well, this is a temperate zone.
- 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/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.782
-Fcc: 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.782
-Problem: Windows: IME composition may use a wrong font.
-Solution: Use 'guifontwide' for IME when it is set. (Taro Muraoka)
-Files: runtime/doc/options.txt, src/gui.c, src/gui_w48.c,
- src/proto/gui_w16.pro, src/proto/gui_w32.pro
-
-
-*** ../vim-7.3.781/runtime/doc/options.txt 2012-08-15 16:20:59.000000000 +0200
---- runtime/doc/options.txt 2013-01-23 18:24:48.000000000 +0100
-***************
-*** 3518,3523 ****
---- 3560,3569 ----
- to set 'guifontwide' at all unless you want to override the choice
- made by Pango/Xft.
-
-+ Windows +multibyte only: *guifontwide_win_mbyte*
-+
-+ If set and vaild, 'guifontwide' is used for IME instead of 'guifont'.
-+
- *'guiheadroom'* *'ghr'*
- 'guiheadroom' 'ghr' number (default 50)
- global
-*** ../vim-7.3.781/src/gui.c 2013-01-23 17:43:52.000000000 +0100
---- src/gui.c 2013-01-23 18:24:48.000000000 +0100
-***************
-*** 1002,1007 ****
---- 1002,1010 ----
- else
- #endif
- gui.wide_font = font;
-+ #ifdef FEAT_GUI_MSWIN
-+ gui_mch_wide_font_changed();
-+ #endif
- return OK;
- }
- #endif
-*** ../vim-7.3.781/src/gui_w48.c 2012-12-16 12:50:33.000000000 +0100
---- src/gui_w48.c 2013-01-23 18:32:45.000000000 +0100
-***************
-*** 323,332 ****
---- 323,337 ----
-
- /*
- * For control IME.
-+ *
-+ * These LOGFONT used for IME.
- */
- #ifdef FEAT_MBYTE
- # ifdef USE_IM_CONTROL
-+ /* holds LOGFONT for 'guifontwide' if available, otherwise 'guifont' */
- static LOGFONT norm_logfont;
-+ /* holds LOGFONT for 'guifont' always. */
-+ static LOGFONT sub_logfont;
- # endif
- #endif
-
-***************
-*** 3090,3095 ****
---- 3095,3133 ----
- return res;
- }
-
-+
-+ #ifdef FEAT_MBYTE_IME
-+ /*
-+ * Set correct LOGFONT to IME. Use 'guifontwide' if available, otherwise use
-+ * 'guifont'
-+ */
-+ static void
-+ update_im_font()
-+ {
-+ LOGFONT lf_wide;
-+
-+ if (p_guifontwide != NULL && *p_guifontwide != NUL
-+ && get_logfont(&lf_wide, p_guifontwide, NULL, TRUE) == OK)
-+ norm_logfont = lf_wide;
-+ else
-+ norm_logfont = sub_logfont;
-+ im_set_font(&norm_logfont);
-+ }
-+ #endif
-+
-+ #ifdef FEAT_MBYTE
-+ /*
-+ * Handler of gui.wide_font (p_guifontwide) changed notification.
-+ */
-+ void
-+ gui_mch_wide_font_changed()
-+ {
-+ # ifdef FEAT_MBYTE_IME
-+ update_im_font();
-+ # endif
-+ }
-+ #endif
-+
- /*
- * Initialise vim to use the font with the given name.
- * Return FAIL if the font could not be loaded, OK otherwise.
-***************
-*** 3112,3120 ****
- font_name = lf.lfFaceName;
- #if defined(FEAT_MBYTE_IME) || defined(GLOBAL_IME)
- norm_logfont = lf;
- #endif
- #ifdef FEAT_MBYTE_IME
-! im_set_font(&lf);
- #endif
- gui_mch_free_font(gui.norm_font);
- gui.norm_font = font;
---- 3150,3159 ----
- font_name = lf.lfFaceName;
- #if defined(FEAT_MBYTE_IME) || defined(GLOBAL_IME)
- norm_logfont = lf;
-+ sub_logfont = lf;
- #endif
- #ifdef FEAT_MBYTE_IME
-! update_im_font();
- #endif
- gui_mch_free_font(gui.norm_font);
- gui.norm_font = font;
-*** ../vim-7.3.781/src/proto/gui_w16.pro 2011-01-17 20:08:03.000000000 +0100
---- src/proto/gui_w16.pro 2013-01-23 18:24:48.000000000 +0100
-***************
-*** 50,55 ****
---- 50,56 ----
- void gui_mch_insert_lines __ARGS((int row, int num_lines));
- void gui_mch_exit __ARGS((int rc));
- int gui_mch_init_font __ARGS((char_u *font_name, int fontset));
-+ void gui_mch_wide_font_changed __ARGS((void));
- int gui_mch_maximized __ARGS((void));
- void gui_mch_newfont __ARGS((void));
- void gui_mch_settitle __ARGS((char_u *title, char_u *icon));
-*** ../vim-7.3.781/src/proto/gui_w32.pro 2011-01-17 20:08:03.000000000 +0100
---- src/proto/gui_w32.pro 2013-01-23 18:24:48.000000000 +0100
-***************
-*** 50,55 ****
---- 50,56 ----
- void gui_mch_insert_lines __ARGS((int row, int num_lines));
- void gui_mch_exit __ARGS((int rc));
- int gui_mch_init_font __ARGS((char_u *font_name, int fontset));
-+ void gui_mch_wide_font_changed __ARGS((void));
- int gui_mch_maximized __ARGS((void));
- void gui_mch_newfont __ARGS((void));
- void gui_mch_settitle __ARGS((char_u *title, char_u *icon));
-*** ../vim-7.3.781/src/version.c 2013-01-23 17:43:52.000000000 +0100
---- src/version.c 2013-01-23 18:25:33.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 782,
- /**/
-
---
-"A mouse can be just as dangerous as a bullet or a bomb."
- (US Representative Lamar Smith, R-Texas)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.783
-Fcc: 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.783
-Problem: Crash when mark is not set. (Dominique Pelle)
-Solution: Check for NULL.
-Files: src/normal.c
-
-
-*** ../vim-7.3.782/src/normal.c 2013-01-17 13:24:00.000000000 +0100
---- src/normal.c 2013-01-24 20:57:53.000000000 +0100
-***************
-*** 7552,7557 ****
---- 7552,7558 ----
- #endif
- #ifdef FEAT_FOLDING
- if (cap->oap->op_type == OP_NOP
-+ && pos != NULL
- && (pos == (pos_T *)-1 || !equalpos(old_cursor, *pos))
- && (fdo_flags & FDO_MARK)
- && old_KeyTyped)
-*** ../vim-7.3.782/src/version.c 2013-01-23 18:37:31.000000000 +0100
---- src/version.c 2013-01-24 20:58:36.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 783,
- /**/
-
---
-Shit makes the flowers grow and that's beautiful
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.784
-Fcc: 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.784 (after 7.3.781)
-Problem: Error when 'guifontwide' has a comma.
-Solution: Use gui.wide_font. (Taro Muraoka)
-Files: src/gui_w48.c
-
-
-*** ../vim-7.3.783/src/gui_w48.c 2013-01-23 18:37:31.000000000 +0100
---- src/gui_w48.c 2013-01-25 19:26:23.000000000 +0100
-***************
-*** 3107,3113 ****
- LOGFONT lf_wide;
-
- if (p_guifontwide != NULL && *p_guifontwide != NUL
-! && get_logfont(&lf_wide, p_guifontwide, NULL, TRUE) == OK)
- norm_logfont = lf_wide;
- else
- norm_logfont = sub_logfont;
---- 3107,3114 ----
- LOGFONT lf_wide;
-
- if (p_guifontwide != NULL && *p_guifontwide != NUL
-! && gui.wide_font != NOFONT
-! && GetObject((HFONT)gui.wide_font, sizeof(lf_wide), &lf_wide))
- norm_logfont = lf_wide;
- else
- norm_logfont = sub_logfont;
-*** ../vim-7.3.783/src/version.c 2013-01-24 21:00:15.000000000 +0100
---- src/version.c 2013-01-25 19:27:52.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 784,
- /**/
-
---
-CUSTOMER: You're not fooling anyone y'know. Look, isn't there something
- you can do?
-DEAD PERSON: I feel happy... I feel happy.
- [whop]
-CUSTOMER: Ah, thanks very much.
-MORTICIAN: Not at all. See you on Thursday.
-CUSTOMER: Right.
- 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/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.785
-Fcc: 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.785 (after 7.3.776)
-Problem: Crash with specific use of search pattern.
-Solution: Initialize reg_buf to curbuf.
-Files: src/regexp.c
-
-
-*** ../vim-7.3.784/src/regexp.c 2013-01-23 15:53:08.000000000 +0100
---- src/regexp.c 2013-01-25 20:04:14.000000000 +0100
-***************
-*** 3413,3419 ****
- * reg_startpos <invalid> reg_mmatch->startpos
- * reg_endpos <invalid> reg_mmatch->endpos
- * reg_win NULL window in which to search
-! * reg_buf <invalid> buffer in which to search
- * reg_firstlnum <invalid> first line in which to search
- * reg_maxline 0 last line nr
- * reg_line_lbr FALSE or TRUE FALSE
---- 3413,3419 ----
- * reg_startpos <invalid> reg_mmatch->startpos
- * reg_endpos <invalid> reg_mmatch->endpos
- * reg_win NULL window in which to search
-! * reg_buf curbuf buffer in which to search
- * reg_firstlnum <invalid> first line in which to search
- * reg_maxline 0 last line nr
- * reg_line_lbr FALSE or TRUE FALSE
-***************
-*** 3571,3576 ****
---- 3571,3577 ----
- reg_mmatch = NULL;
- reg_maxline = 0;
- reg_line_lbr = FALSE;
-+ reg_buf = curbuf;
- reg_win = NULL;
- ireg_ic = rmp->rm_ic;
- #ifdef FEAT_MBYTE
-***************
-*** 3595,3600 ****
---- 3596,3602 ----
- reg_mmatch = NULL;
- reg_maxline = 0;
- reg_line_lbr = TRUE;
-+ reg_buf = curbuf;
- reg_win = NULL;
- ireg_ic = rmp->rm_ic;
- #ifdef FEAT_MBYTE
-***************
-*** 4311,4318 ****
- #endif
- else
- {
-! if (!vim_iswordc_buf(c, reg_buf)
-! || (reginput > regline && vim_iswordc_buf(reginput[-1], reg_buf)))
- status = RA_NOMATCH;
- }
- break;
---- 4313,4320 ----
- #endif
- else
- {
-! if (!vim_iswordc_buf(c, reg_buf) || (reginput > regline
-! && vim_iswordc_buf(reginput[-1], reg_buf)))
- status = RA_NOMATCH;
- }
- break;
-***************
-*** 7135,7140 ****
---- 7137,7143 ----
- reg_match = rmp;
- reg_mmatch = NULL;
- reg_maxline = 0;
-+ reg_buf = curbuf;
- return vim_regsub_both(source, dest, copy, magic, backslash);
- }
- #endif
-*** ../vim-7.3.784/src/version.c 2013-01-25 19:28:34.000000000 +0100
---- src/version.c 2013-01-25 20:09:30.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 785,
- /**/
-
---
-ARTHUR: Well, I can't just call you `Man'.
-DENNIS: Well, you could say `Dennis'.
-ARTHUR: Well, I didn't know you were called `Dennis.'
-DENNIS: Well, you didn't bother to find out, did you?
- The Quest for the Holy Grail (Monty Python)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.786
-Fcc: 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.786
-Problem: Python threads don't run in the background (issue 103).
-Solution: Move the statements to manipulate thread state.
-Files: src/if_python.c
-
-
-*** ../vim-7.3.785/src/if_python.c 2012-10-21 01:46:56.000000000 +0200
---- src/if_python.c 2013-01-30 11:38:06.000000000 +0100
-***************
-*** 740,751 ****
- #else
- PyMac_Initialize();
- #endif
-! /* Initialise threads, and save the state using PyGILState_Ensure.
-! * Without the call to PyGILState_Ensure, thread specific state (such
-! * as the system trace hook), will be lost between invocations of
-! * Python code. */
- PyEval_InitThreads();
-- pygilstate = PyGILState_Ensure();
- #ifdef DYNAMIC_PYTHON
- get_exceptions();
- #endif
---- 740,750 ----
- #else
- PyMac_Initialize();
- #endif
-! /* Initialise threads, and below save the state using
-! * PyGILState_Ensure. Without the call to PyGILState_Ensure, thread
-! * specific state (such as the system trace hook), will be lost
-! * between invocations of Python code. */
- PyEval_InitThreads();
- #ifdef DYNAMIC_PYTHON
- get_exceptions();
- #endif
-***************
-*** 756,761 ****
---- 755,764 ----
- if (PythonMod_Init())
- goto fail;
-
-+ /* The first python thread is vim's, release the lock. */
-+ Python_SaveThread();
-+ pygilstate = PyGILState_Ensure();
-+
- globals = PyModule_GetDict(PyImport_AddModule("__main__"));
-
- /* Remove the element from sys.path that was added because of our
-***************
-*** 764,771 ****
- * the current directory in sys.path. */
- PyRun_SimpleString("import sys; sys.path = filter(lambda x: x != '/must>not&exist', sys.path)");
-
-! /* the first python thread is vim's, release the lock */
-! Python_SaveThread();
-
- initialised = 1;
- }
---- 767,773 ----
- * the current directory in sys.path. */
- PyRun_SimpleString("import sys; sys.path = filter(lambda x: x != '/must>not&exist', sys.path)");
-
-! PyGILState_Release(pygilstate);
-
- initialised = 1;
- }
-*** ../vim-7.3.785/src/version.c 2013-01-25 20:10:58.000000000 +0100
---- src/version.c 2013-01-30 11:44:04.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 786,
- /**/
-
---
-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/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.787
-Fcc: 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.787
-Problem: With 'relativenumber' set it is not possible to see the absolute
- line number.
-Solution: For the cursor line show the absolute line number instead of a
- zero. (Nazri Ramliy)
-Files: src/screen.c
-
-
-*** ../vim-7.3.786/src/screen.c 2012-12-05 16:10:21.000000000 +0100
---- src/screen.c 2013-01-30 12:29:33.000000000 +0100
-***************
-*** 2319,2324 ****
---- 2319,2325 ----
- {
- int w = number_width(wp);
- long num;
-+ char *fmt = "%*ld ";
-
- if (len > w + 1)
- len = w + 1;
-***************
-*** 2327,2336 ****
- /* 'number' */
- 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
- if (wp->w_p_rl)
- /* the line number isn't reversed */
---- 2328,2344 ----
- /* 'number' */
- num = (long)lnum;
- else
-+ {
- /* 'relativenumber', don't use negative numbers */
- num = labs((long)get_cursor_rel_lnum(wp, lnum));
-+ if (num == 0)
-+ {
-+ num = lnum;
-+ fmt = "%-*ld ";
-+ }
-+ }
-
-! sprintf((char *)buf, fmt, w, num);
- #ifdef FEAT_RIGHTLEFT
- if (wp->w_p_rl)
- /* the line number isn't reversed */
-***************
-*** 3484,3498 ****
- )
- {
- long num;
-
- if (wp->w_p_nu)
- /* 'number' */
- 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);
- if (wp->w_skipcol > 0)
- for (p_extra = extra; *p_extra == ' '; ++p_extra)
---- 3492,3514 ----
- )
- {
- long num;
-+ char *fmt = "%*ld ";
-
- if (wp->w_p_nu)
- /* 'number' */
- num = (long)lnum;
- else
-+ {
- /* 'relativenumber', don't use negative numbers */
- num = labs((long)get_cursor_rel_lnum(wp, lnum));
-+ if (num == 0)
-+ {
-+ num = lnum;
-+ fmt = "%-*ld ";
-+ }
-+ }
-
-! sprintf((char *)extra, fmt,
- number_width(wp), num);
- if (wp->w_skipcol > 0)
- for (p_extra = extra; *p_extra == ' '; ++p_extra)
-***************
-*** 3513,3519 ****
- * the current line differently.
- * TODO: Can we use CursorLine instead of CursorLineNr
- * when CursorLineNr isn't set? */
-! if (wp->w_p_cul && lnum == wp->w_cursor.lnum)
- char_attr = hl_attr(HLF_CLN);
- #endif
- }
---- 3529,3536 ----
- * the current line differently.
- * TODO: Can we use CursorLine instead of CursorLineNr
- * when CursorLineNr isn't set? */
-! if ((wp->w_p_cul || wp->w_p_rnu)
-! && lnum == wp->w_cursor.lnum)
- char_attr = hl_attr(HLF_CLN);
- #endif
- }
-***************
-*** 10238,10249 ****
- int n;
- linenr_T lnum;
-
-! if (wp->w_p_nu)
-! /* 'number' */
-! lnum = wp->w_buffer->b_ml.ml_line_count;
-! else
-! /* 'relativenumber' */
-! lnum = wp->w_height;
-
- if (lnum == wp->w_nrwidth_line_count)
- return wp->w_nrwidth_width;
---- 10255,10261 ----
- int n;
- linenr_T lnum;
-
-! lnum = wp->w_buffer->b_ml.ml_line_count;
-
- if (lnum == wp->w_nrwidth_line_count)
- return wp->w_nrwidth_width;
-*** ../vim-7.3.786/src/version.c 2013-01-30 11:44:33.000000000 +0100
---- src/version.c 2013-01-30 12:25:10.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 787,
- /**/
-
---
-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/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.788
-Fcc: 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.788
-Problem: When only using patches build fails on missing nl.po.
-Solution: Create an empty nl.po file.
-Files: src/po/Makefile
-
-
-*** ../vim-7.3.787/src/po/Makefile 2013-01-17 13:35:13.000000000 +0100
---- src/po/Makefile 2013-01-30 12:50:41.000000000 +0100
-***************
-*** 176,181 ****
---- 176,185 ----
-
- converted: $(MOCONVERTED)
-
-+ # nl.po was added later, if it does not exist use an empty file.
-+ nl.po:
-+ touch nl.po
-+
- # Norwegian/Bokmal: "nb" is an alias for "no".
- # Copying the file is not efficient, but I don't know of another way to make
- # this work.
-*** ../vim-7.3.787/src/version.c 2013-01-30 12:31:32.000000000 +0100
---- src/version.c 2013-01-30 12:45:32.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 788,
- /**/
-
---
-"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/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.789
-Fcc: 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.789 (after 7.3.776)
-Problem: "\k" in regexp does not work in other window.
-Solution: Use the right buffer. (Yukihiro Nakadaira)
-Files: src/mbyte.c, src/proto/mbyte.pro, src/regexp.c
-
-
-*** ../vim-7.3.788/src/mbyte.c 2013-01-23 16:19:17.000000000 +0100
---- src/mbyte.c 2013-01-30 13:53:07.000000000 +0100
-***************
-*** 869,879 ****
- mb_get_class(p)
- char_u *p;
- {
- if (MB_BYTE2LEN(p[0]) == 1)
- {
- if (p[0] == NUL || vim_iswhite(p[0]))
- return 0;
-! if (vim_iswordc(p[0]))
- return 2;
- return 1;
- }
---- 869,887 ----
- mb_get_class(p)
- char_u *p;
- {
-+ return mb_get_class_buf(p, curbuf);
-+ }
-+
-+ int
-+ mb_get_class_buf(p, buf)
-+ char_u *p;
-+ buf_T *buf;
-+ {
- if (MB_BYTE2LEN(p[0]) == 1)
- {
- if (p[0] == NUL || vim_iswhite(p[0]))
- return 0;
-! if (vim_iswordc_buf(p[0], buf))
- return 2;
- return 1;
- }
-*** ../vim-7.3.788/src/proto/mbyte.pro 2011-08-10 13:21:30.000000000 +0200
---- src/proto/mbyte.pro 2013-01-30 13:53:27.000000000 +0100
-***************
-*** 4,9 ****
---- 4,10 ----
- int bomb_size __ARGS((void));
- void remove_bom __ARGS((char_u *s));
- int mb_get_class __ARGS((char_u *p));
-+ int mb_get_class_buf __ARGS((char_u *p, buf_T *buf));
- int dbcs_class __ARGS((unsigned lead, unsigned trail));
- int latin_char2len __ARGS((int c));
- int latin_char2bytes __ARGS((int c, char_u *buf));
-*** ../vim-7.3.788/src/regexp.c 2013-01-25 20:10:58.000000000 +0100
---- src/regexp.c 2013-01-30 13:55:39.000000000 +0100
-***************
-*** 4013,4020 ****
- reg_prev_class()
- {
- if (reginput > regline)
-! return mb_get_class(reginput - 1
-! - (*mb_head_off)(regline, reginput - 1));
- return -1;
- }
-
---- 4013,4020 ----
- reg_prev_class()
- {
- if (reginput > regline)
-! return mb_get_class_buf(reginput - 1
-! - (*mb_head_off)(regline, reginput - 1), reg_buf);
- return -1;
- }
-
-***************
-*** 4304,4310 ****
- int this_class;
-
- /* Get class of current and previous char (if it exists). */
-! this_class = mb_get_class(reginput);
- if (this_class <= 1)
- status = RA_NOMATCH; /* not on a word at all */
- else if (reg_prev_class() == this_class)
---- 4304,4310 ----
- int this_class;
-
- /* Get class of current and previous char (if it exists). */
-! this_class = mb_get_class_buf(reginput, reg_buf);
- if (this_class <= 1)
- status = RA_NOMATCH; /* not on a word at all */
- else if (reg_prev_class() == this_class)
-***************
-*** 4328,4334 ****
- int this_class, prev_class;
-
- /* Get class of current and previous char (if it exists). */
-! this_class = mb_get_class(reginput);
- prev_class = reg_prev_class();
- if (this_class == prev_class
- || prev_class == 0 || prev_class == 1)
---- 4328,4334 ----
- int this_class, prev_class;
-
- /* Get class of current and previous char (if it exists). */
-! this_class = mb_get_class_buf(reginput, reg_buf);
- prev_class = reg_prev_class();
- if (this_class == prev_class
- || prev_class == 0 || prev_class == 1)
-***************
-*** 4365,4378 ****
- break;
-
- case KWORD:
-! if (!vim_iswordp(reginput))
- status = RA_NOMATCH;
- else
- ADVANCE_REGINPUT();
- break;
-
- case SKWORD:
-! if (VIM_ISDIGIT(*reginput) || !vim_iswordp(reginput))
- status = RA_NOMATCH;
- else
- ADVANCE_REGINPUT();
---- 4365,4378 ----
- break;
-
- case KWORD:
-! if (!vim_iswordp_buf(reginput, reg_buf))
- status = RA_NOMATCH;
- else
- ADVANCE_REGINPUT();
- break;
-
- case SKWORD:
-! if (VIM_ISDIGIT(*reginput) || !vim_iswordp_buf(reginput, reg_buf))
- status = RA_NOMATCH;
- else
- ADVANCE_REGINPUT();
-***************
-*** 5734,5740 ****
- case SKWORD + ADD_NL:
- while (count < maxcount)
- {
-! if (vim_iswordp(scan) && (testval || !VIM_ISDIGIT(*scan)))
- {
- mb_ptr_adv(scan);
- }
---- 5734,5741 ----
- case SKWORD + ADD_NL:
- while (count < maxcount)
- {
-! if (vim_iswordp_buf(scan, reg_buf)
-! && (testval || !VIM_ISDIGIT(*scan)))
- {
- mb_ptr_adv(scan);
- }
-*** ../vim-7.3.788/src/version.c 2013-01-30 12:50:50.000000000 +0100
---- src/version.c 2013-01-30 13:58:07.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 789,
- /**/
-
---
-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/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.790
-Fcc: 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.790
-Problem: After reloading a buffer the modelines are not processed.
-Solution: call do_modelines(). (Ken Takata)
-Files: src/fileio.c
-
-
-*** ../vim-7.3.789/src/fileio.c 2012-12-05 19:13:11.000000000 +0100
---- src/fileio.c 2013-01-30 14:08:21.000000000 +0100
-***************
-*** 7243,7248 ****
---- 7243,7251 ----
- * reset it, might have had a read error. */
- if (orig_mode == curbuf->b_orig_mode)
- curbuf->b_p_ro |= old_ro;
-+
-+ /* Modelines must override settings done by autocommands. */
-+ do_modelines(0);
- }
-
- /* restore curwin/curbuf and a few other things */
-*** ../vim-7.3.789/src/version.c 2013-01-30 13:59:31.000000000 +0100
---- src/version.c 2013-01-30 14:02:30.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 790,
- /**/
-
---
-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/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.791
-Fcc: 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.791
-Problem: MzScheme interface doesn't work propely.
-Solution: Make it work better. (Sergey Khorev)
-Files: runtime/doc/if_mzsch.txt, src/configure.in, src/auto/configure,
- src/eval.c, src/if_mzsch.c, src/if_mzsch.h, src/Make_ming.mak,
- src/Make_mvc.mak, src/os_unix.c, src/proto/eval.pro,
- src/testdir/test70.in, src/testdir/test70.ok
-
-
-*** ../vim-7.3.790/runtime/doc/if_mzsch.txt 2010-08-15 21:57:14.000000000 +0200
---- runtime/doc/if_mzsch.txt 2013-01-30 14:26:44.000000000 +0100
-***************
-*** 11,17 ****
- 3. Threads |mzscheme-threads|
- 4. Vim access from MzScheme |mzscheme-vim|
- 5. mzeval() Vim function |mzscheme-mzeval|
-! 6. Dynamic loading |mzscheme-dynamic|
-
- {Vi does not have any of these commands}
-
---- 11,18 ----
- 3. Threads |mzscheme-threads|
- 4. Vim access from MzScheme |mzscheme-vim|
- 5. mzeval() Vim function |mzscheme-mzeval|
-! 6. Using Function references |mzscheme-funcref|
-! 7. Dynamic loading |mzscheme-dynamic|
-
- {Vi does not have any of these commands}
-
-***************
-*** 21,30 ****
- Based on the work of Brent Fulgham.
- Dynamic loading added by Sergey Khorev
-
-! For downloading MzScheme and other info:
-! http://www.plt-scheme.org/software/mzscheme/
-
-! Note: On FreeBSD you should use the "drscheme" port.
-
- ==============================================================================
- 1. Commands *mzscheme-commands*
---- 22,38 ----
- Based on the work of Brent Fulgham.
- Dynamic loading added by Sergey Khorev
-
-! MzScheme and PLT Scheme names have been rebranded as Racket. For more
-! information please check http://racket-lang.org
-
-! Futures and places of Racket version 5.x up to and including 5.3.1 do not
-! work correctly with processes created by Vim.
-! The simplest solution is to build Racket on your own with these features
-! disabled: >
-! ./configure --disable-futures --disable-places --prefix=your-install-prefix
-!
-! To speed up the process, you might also want to use --disable-gracket and
-! --disable-docs
-
- ==============================================================================
- 1. Commands *mzscheme-commands*
-***************
-*** 155,162 ****
- (eval {expr-string}) Evaluate the vim expression into
- respective MzScheme object: |Lists| are
- represented as Scheme lists,
-! |Dictionaries| as hash tables.
-! NOTE the name clashes with MzScheme eval
- (range-start) Start/End of the range passed with
- (range-end) the Scheme command.
- (beep) beep
---- 163,173 ----
- (eval {expr-string}) Evaluate the vim expression into
- respective MzScheme object: |Lists| are
- represented as Scheme lists,
-! |Dictionaries| as hash tables,
-! |Funcref|s as functions (see also
-! |mzscheme-funcref|)
-! NOTE the name clashes with MzScheme eval,
-! use module qualifiers to overcome this.
- (range-start) Start/End of the range passed with
- (range-end) the Scheme command.
- (beep) beep
-***************
-*** 237,243 ****
- evaluate MzScheme expressions and pass their values to VimL.
-
- ==============================================================================
-! 6. Dynamic loading *mzscheme-dynamic* *E815*
-
- On MS-Windows the MzScheme libraries can be loaded dynamically. The |:version|
- output then includes |+mzscheme/dyn|.
---- 248,270 ----
- evaluate MzScheme expressions and pass their values to VimL.
-
- ==============================================================================
-! 6. Using Function references *mzscheme-funcref*
-!
-! MzScheme interface allows use of |Funcref|s so you can call Vim functions
-! directly from Scheme. For instance: >
-! function! MyAdd2(arg)
-! return a:arg + 2
-! endfunction
-! mz (define f2 (vim-eval "function(\"MyAdd2\")"))
-! mz (f2 7)
-! < or : >
-! :mz (define indent (vim-eval "function('indent')"))
-! " return Vim indent for line 12
-! :mz (indent 12)
-! <
-!
-! ==============================================================================
-! 7. Dynamic loading *mzscheme-dynamic* *E815*
-
- On MS-Windows the MzScheme libraries can be loaded dynamically. The |:version|
- output then includes |+mzscheme/dyn|.
-*** ../vim-7.3.790/src/configure.in 2012-12-12 14:25:01.000000000 +0100
---- src/configure.in 2013-01-30 14:26:44.000000000 +0100
-***************
-*** 617,623 ****
-
- if test "X$vi_cv_path_mzscheme_pfx" != "X"; then
- if test "x$MACOSX" = "xyes"; then
-! MZSCHEME_LIBS="-framework PLT_MzScheme"
- 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"
---- 617,624 ----
-
- if test "X$vi_cv_path_mzscheme_pfx" != "X"; then
- if test "x$MACOSX" = "xyes"; then
-! MZSCHEME_LIBS="-framework Racket"
-! MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
- 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"
-***************
-*** 660,665 ****
---- 661,670 ----
- else
- if test -d $vi_cv_path_mzscheme_pfx/share/racket/collects; then
- SCHEME_COLLECTS=$vi_cv_path_mzscheme_pfx/share/racket/
-+ else
-+ if test -d $vi_cv_path_mzscheme_pfx/collects; then
-+ SCHEME_COLLECTS=$vi_cv_path_mzscheme_pfx/
-+ fi
- fi
- fi
- fi
-*** ../vim-7.3.790/src/auto/configure 2012-12-12 14:25:01.000000000 +0100
---- src/auto/configure 2013-01-30 14:27:31.000000000 +0100
-***************
-*** 4927,4933 ****
-
- if test "X$vi_cv_path_mzscheme_pfx" != "X"; then
- if test "x$MACOSX" = "xyes"; then
-! MZSCHEME_LIBS="-framework PLT_MzScheme"
- 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"
---- 4927,4934 ----
-
- if test "X$vi_cv_path_mzscheme_pfx" != "X"; then
- if test "x$MACOSX" = "xyes"; then
-! MZSCHEME_LIBS="-framework Racket"
-! MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
- 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"
-***************
-*** 4968,4973 ****
---- 4969,4978 ----
- else
- if test -d $vi_cv_path_mzscheme_pfx/share/racket/collects; then
- SCHEME_COLLECTS=$vi_cv_path_mzscheme_pfx/share/racket/
-+ else
-+ if test -d $vi_cv_path_mzscheme_pfx/collects; then
-+ SCHEME_COLLECTS=$vi_cv_path_mzscheme_pfx/
-+ fi
- fi
- fi
- fi
-*** ../vim-7.3.790/src/eval.c 2013-01-23 17:15:25.000000000 +0100
---- src/eval.c 2013-01-30 14:33:00.000000000 +0100
-***************
-*** 14333,14338 ****
---- 14333,14354 ----
- str = get_tv_string_buf(&argvars[0], buf);
- do_mzeval(str, rettv);
- }
-+
-+ void
-+ mzscheme_call_vim(name, args, rettv)
-+ char_u *name;
-+ typval_T *args;
-+ typval_T *rettv;
-+ {
-+ typval_T argvars[3];
-+
-+ argvars[0].v_type = VAR_STRING;
-+ argvars[0].vval.v_string = name;
-+ copy_tv(args, &argvars[1]);
-+ argvars[2].v_type = VAR_UNKNOWN;
-+ f_call(argvars, rettv);
-+ clear_tv(&argvars[1]);
-+ }
- #endif
-
- /*
-*** ../vim-7.3.790/src/if_mzsch.c 2012-11-28 15:37:46.000000000 +0100
---- src/if_mzsch.c 2013-01-30 14:34:37.000000000 +0100
-***************
-*** 1,11 ****
- /* vi:set ts=8 sts=4 sw=4:
- *
- * MzScheme interface by Sergey Khorev <sergey.khorev@gmail.com>
-! * Original work by Brent Fulgham <bfulgham@debian.org>
- * (Based on lots of help from Matthew Flatt)
- *
-- * TODO Convert byte-strings to char strings?
-- *
- * This consists of six parts:
- * 1. MzScheme interpreter main program
- * 2. Routines that handle the external interface between MzScheme and
---- 1,9 ----
- /* vi:set ts=8 sts=4 sw=4:
- *
- * MzScheme interface by Sergey Khorev <sergey.khorev@gmail.com>
-! * Based on work by Brent Fulgham <bfulgham@debian.org>
- * (Based on lots of help from Matthew Flatt)
- *
- * This consists of six parts:
- * 1. MzScheme interpreter main program
- * 2. Routines that handle the external interface between MzScheme and
-***************
-*** 142,148 ****
- static int do_mzscheme_command(exarg_T *, void *, Scheme_Closed_Prim *what);
- static void startup_mzscheme(void);
- static char *string_to_line(Scheme_Object *obj);
-! static void do_output(char *mesg, intptr_t len);
- static void do_printf(char *format, ...);
- static void do_flush(void);
- static Scheme_Object *_apply_thunk_catch_exceptions(
---- 140,151 ----
- static int do_mzscheme_command(exarg_T *, void *, Scheme_Closed_Prim *what);
- static void startup_mzscheme(void);
- static char *string_to_line(Scheme_Object *obj);
-! #if MZSCHEME_VERSION_MAJOR >= 500
-! # define OUTPUT_LEN_TYPE intptr_t
-! #else
-! # define OUTPUT_LEN_TYPE long
-! #endif
-! static void do_output(char *mesg, OUTPUT_LEN_TYPE len);
- static void do_printf(char *format, ...);
- static void do_flush(void);
- static Scheme_Object *_apply_thunk_catch_exceptions(
-***************
-*** 166,175 ****
- static int mzscheme_env_main(Scheme_Env *env, int argc, char **argv);
- static int mzscheme_init(void);
- #ifdef FEAT_EVAL
-! static Scheme_Object *vim_to_mzscheme(typval_T *vim_value, int depth,
- Scheme_Hash_Table *visited);
-! static int mzscheme_to_vim(Scheme_Object *obj, typval_T *tv, int depth,
- Scheme_Hash_Table *visited);
- #endif
-
- #ifdef MZ_PRECISE_GC
---- 169,181 ----
- static int mzscheme_env_main(Scheme_Env *env, int argc, char **argv);
- static int mzscheme_init(void);
- #ifdef FEAT_EVAL
-! static Scheme_Object *vim_to_mzscheme(typval_T *vim_value);
-! static Scheme_Object *vim_to_mzscheme_impl(typval_T *vim_value, int depth,
- Scheme_Hash_Table *visited);
-! static int mzscheme_to_vim(Scheme_Object *obj, typval_T *tv);
-! static int mzscheme_to_vim_impl(Scheme_Object *obj, typval_T *tv, int depth,
- Scheme_Hash_Table *visited);
-+ static Scheme_Object *vim_funcref(void *data, int argc, Scheme_Object **argv);
- #endif
-
- #ifdef MZ_PRECISE_GC
-***************
-*** 183,188 ****
---- 189,201 ----
- }
- static int buffer_fixup_proc(void *obj)
- {
-+ /* apparently not needed as the object will be uncollectable while
-+ * the buffer is alive
-+ */
-+ /*
-+ vim_mz_buffer* buf = (vim_mz_buffer*) obj;
-+ buf->buf->b_mzscheme_ref = GC_fixup_self(obj);
-+ */
- return buffer_size_proc(obj);
- }
- static int window_size_proc(void *obj UNUSED)
-***************
-*** 195,206 ****
- }
- static int window_fixup_proc(void *obj)
- {
- return window_size_proc(obj);
- }
- #endif
-
- #ifdef DYNAMIC_MZSCHEME
--
- static Scheme_Object *dll_scheme_eof;
- static Scheme_Object *dll_scheme_false;
- static Scheme_Object *dll_scheme_void;
---- 208,233 ----
- }
- static int window_fixup_proc(void *obj)
- {
-+ /* apparently not needed as the object will be uncollectable while
-+ * the window is alive
-+ */
-+ /*
-+ vim_mz_window* win = (vim_mz_window*) obj;
-+ win->win->w_mzscheme_ref = GC_fixup_self(obj);
-+ */
- return window_size_proc(obj);
- }
-+ /* with precise GC, w_mzscheme_ref and b_mzscheme_ref are immobile boxes
-+ * containing pointers to a window/buffer
-+ * with conservative GC these are simply pointers*/
-+ # define WINDOW_REF(win) *(vim_mz_window **)((win)->w_mzscheme_ref)
-+ # define BUFFER_REF(buf) *(vim_mz_buffer **)((buf)->b_mzscheme_ref)
-+ #else
-+ # define WINDOW_REF(win) (vim_mz_window *)((win)->w_mzscheme_ref)
-+ # define BUFFER_REF(buf) (vim_mz_buffer *)((buf)->b_mzscheme_ref)
- #endif
-
- #ifdef DYNAMIC_MZSCHEME
- static Scheme_Object *dll_scheme_eof;
- static Scheme_Object *dll_scheme_false;
- static Scheme_Object *dll_scheme_void;
-***************
-*** 319,324 ****
---- 346,352 ----
- (Scheme_Object *s);
- static Scheme_Object *(*dll_scheme_char_string_to_path)
- (Scheme_Object *s);
-+ static void *(*dll_scheme_set_collects_path)(Scheme_Object *p);
- # endif
- static Scheme_Hash_Table *(*dll_scheme_make_hash_table)(int type);
- static void (*dll_scheme_hash_set)(Scheme_Hash_Table *table,
-***************
-*** 378,388 ****
- # endif
- # define scheme_gc_ptr_ok dll_scheme_gc_ptr_ok
- # if MZSCHEME_VERSION_MAJOR < 299
-! # define scheme_get_sized_string_output dll_scheme_get_sized_string_output
- # else
- # define scheme_get_sized_byte_string_output \
- dll_scheme_get_sized_byte_string_output
-! # define scheme_get_param dll_scheme_get_param
- # endif
- # define scheme_intern_symbol dll_scheme_intern_symbol
- # define scheme_lookup_global dll_scheme_lookup_global
---- 406,416 ----
- # endif
- # define scheme_gc_ptr_ok dll_scheme_gc_ptr_ok
- # if MZSCHEME_VERSION_MAJOR < 299
-! # define scheme_get_sized_byte_string_output dll_scheme_get_sized_string_output
- # else
- # define scheme_get_sized_byte_string_output \
- dll_scheme_get_sized_byte_string_output
-! # define scheme_get_param dll_scheme_get_param
- # endif
- # define scheme_intern_symbol dll_scheme_intern_symbol
- # define scheme_lookup_global dll_scheme_lookup_global
-***************
-*** 391,398 ****
- # define scheme_make_pair dll_scheme_make_pair
- # define scheme_make_prim_w_arity dll_scheme_make_prim_w_arity
- # if MZSCHEME_VERSION_MAJOR < 299
-! # define scheme_make_string dll_scheme_make_string
-! # define scheme_make_string_output_port dll_scheme_make_string_output_port
- # else
- # define scheme_make_byte_string dll_scheme_make_byte_string
- # define scheme_make_byte_string_output_port \
---- 419,426 ----
- # define scheme_make_pair dll_scheme_make_pair
- # define scheme_make_prim_w_arity dll_scheme_make_prim_w_arity
- # if MZSCHEME_VERSION_MAJOR < 299
-! # define scheme_make_byte_string dll_scheme_make_string
-! # define scheme_make_byte_string_output_port dll_scheme_make_string_output_port
- # else
- # define scheme_make_byte_string dll_scheme_make_byte_string
- # define scheme_make_byte_string_output_port \
-***************
-*** 421,426 ****
---- 449,455 ----
- dll_scheme_char_string_to_byte_string
- # define scheme_char_string_to_path \
- dll_scheme_char_string_to_path
-+ # define scheme_set_collects_path dll_scheme_set_collects_path
- # endif
- # define scheme_make_hash_table dll_scheme_make_hash_table
- # define scheme_hash_set dll_scheme_hash_set
-***************
-*** 529,534 ****
---- 558,564 ----
- {"scheme_char_string_to_byte_string",
- (void **)&dll_scheme_char_string_to_byte_string},
- {"scheme_char_string_to_path", (void **)&dll_scheme_char_string_to_path},
-+ {"scheme_set_collects_path", (void **)&dll_scheme_set_collects_path},
- # endif
- {"scheme_make_hash_table", (void **)&dll_scheme_make_hash_table},
- {"scheme_hash_set", (void **)&dll_scheme_hash_set},
-***************
-*** 625,635 ****
- }
- #endif /* DYNAMIC_MZSCHEME */
-
- /* need to put it here for dynamic stuff to work */
- #if defined(INCLUDE_MZSCHEME_BASE)
- # include "mzscheme_base.c"
- #elif MZSCHEME_VERSION_MAJOR >= 400
-! # error MzScheme 4.x must include mzscheme_base.c, for MinGW32 you need to define MZSCHEME_GENERATE_BASE=yes
- #endif
-
- /*
---- 655,694 ----
- }
- #endif /* DYNAMIC_MZSCHEME */
-
-+ #if MZSCHEME_VERSION_MAJOR < 299
-+ # define GUARANTEED_STRING_ARG(proc, num) GUARANTEE_STRING(proc, num)
-+ #else
-+ static Scheme_Object *
-+ guaranteed_byte_string_arg(char *proc, int num, int argc, Scheme_Object **argv)
-+ {
-+ if (SCHEME_BYTE_STRINGP(argv[num]))
-+ {
-+ return argv[num];
-+ }
-+ else if (SCHEME_CHAR_STRINGP(argv[num]))
-+ {
-+ Scheme_Object *tmp = NULL;
-+ MZ_GC_DECL_REG(2);
-+ MZ_GC_VAR_IN_REG(0, argv[num]);
-+ MZ_GC_VAR_IN_REG(1, tmp);
-+ MZ_GC_REG();
-+ tmp = scheme_char_string_to_byte_string(argv[num]);
-+ MZ_GC_UNREG();
-+ return tmp;
-+ }
-+ else
-+ scheme_wrong_type(proc, "string", num, argc, argv);
-+ /* unreachable */
-+ return scheme_void;
-+ }
-+ # define GUARANTEED_STRING_ARG(proc, num) guaranteed_byte_string_arg(proc, num, argc, argv)
-+ #endif
-+
- /* need to put it here for dynamic stuff to work */
- #if defined(INCLUDE_MZSCHEME_BASE)
- # include "mzscheme_base.c"
- #elif MZSCHEME_VERSION_MAJOR >= 400
-! # error MzScheme >=4 must include mzscheme_base.c, for MinGW32 you need to define MZSCHEME_GENERATE_BASE=yes
- #endif
-
- /*
-***************
-*** 861,866 ****
---- 920,930 ----
- scheme_set_stack_base(stack_base, 1);
- #endif
-
-+ #ifndef TRAMPOLINED_MZVIM_STARTUP
-+ /* in newer versions of precise GC the initial env has been created */
-+ environment = scheme_basic_env();
-+ #endif
-+
- MZ_REGISTER_STATIC(environment);
- MZ_REGISTER_STATIC(curout);
- MZ_REGISTER_STATIC(curerr);
-***************
-*** 869,878 ****
- MZ_REGISTER_STATIC(exn_message);
- MZ_REGISTER_STATIC(vim_exn);
-
-- #ifndef TRAMPOLINED_MZVIM_STARTUP
-- /* in newer versions of precise GC the initial env has been created */
-- environment = scheme_basic_env();
-- #endif
- MZ_GC_CHECK();
-
- #ifdef INCLUDE_MZSCHEME_BASE
---- 933,938 ----
-***************
-*** 909,923 ****
- Scheme_Object *coll_byte_string = NULL;
- Scheme_Object *coll_char_string = NULL;
- Scheme_Object *coll_path = NULL;
-- Scheme_Object *coll_pair = NULL;
-- Scheme_Config *config = NULL;
-
-! MZ_GC_DECL_REG(5);
- MZ_GC_VAR_IN_REG(0, coll_byte_string);
- MZ_GC_VAR_IN_REG(1, coll_char_string);
- MZ_GC_VAR_IN_REG(2, coll_path);
-- MZ_GC_VAR_IN_REG(3, coll_pair);
-- MZ_GC_VAR_IN_REG(4, config);
- MZ_GC_REG();
- coll_byte_string = scheme_make_byte_string(MZSCHEME_COLLECTS);
- MZ_GC_CHECK();
---- 969,979 ----
- Scheme_Object *coll_byte_string = NULL;
- Scheme_Object *coll_char_string = NULL;
- Scheme_Object *coll_path = NULL;
-
-! MZ_GC_DECL_REG(3);
- MZ_GC_VAR_IN_REG(0, coll_byte_string);
- MZ_GC_VAR_IN_REG(1, coll_char_string);
- MZ_GC_VAR_IN_REG(2, coll_path);
- MZ_GC_REG();
- coll_byte_string = scheme_make_byte_string(MZSCHEME_COLLECTS);
- MZ_GC_CHECK();
-***************
-*** 925,935 ****
- MZ_GC_CHECK();
- coll_path = scheme_char_string_to_path(coll_char_string);
- MZ_GC_CHECK();
-! coll_pair = scheme_make_pair(coll_path, scheme_null);
-! MZ_GC_CHECK();
-! config = scheme_config;
-! MZ_GC_CHECK();
-! scheme_set_param(config, MZCONFIG_COLLECTION_PATHS, coll_pair);
- MZ_GC_CHECK();
- MZ_GC_UNREG();
- }
---- 981,987 ----
- MZ_GC_CHECK();
- coll_path = scheme_char_string_to_path(coll_char_string);
- MZ_GC_CHECK();
-! scheme_set_collects_path(coll_path);
- MZ_GC_CHECK();
- MZ_GC_UNREG();
- }
-***************
-*** 944,954 ****
- MZ_GC_VAR_IN_REG(1, coll_pair);
- MZ_GC_VAR_IN_REG(2, config);
- MZ_GC_REG();
-! coll_string = scheme_make_string(MZSCHEME_COLLECTS);
- MZ_GC_CHECK();
- coll_pair = scheme_make_pair(coll_string, scheme_null);
- MZ_GC_CHECK();
-! config = scheme_config;
- MZ_GC_CHECK();
- scheme_set_param(config, MZCONFIG_COLLECTION_PATHS, coll_pair);
- MZ_GC_CHECK();
---- 996,1006 ----
- MZ_GC_VAR_IN_REG(1, coll_pair);
- MZ_GC_VAR_IN_REG(2, config);
- MZ_GC_REG();
-! coll_string = scheme_make_byte_string(MZSCHEME_COLLECTS);
- MZ_GC_CHECK();
- coll_pair = scheme_make_pair(coll_string, scheme_null);
- MZ_GC_CHECK();
-! config = scheme_current_config();
- MZ_GC_CHECK();
- scheme_set_param(config, MZCONFIG_COLLECTION_PATHS, coll_pair);
- MZ_GC_CHECK();
-***************
-*** 991,997 ****
- MZ_GC_VAR_IN_REG(3, guard);
- MZ_GC_VAR_IN_REG(4, config);
- MZ_GC_REG();
-! config = scheme_config;
- MZ_GC_CHECK();
- args[0] = scheme_get_param(config, MZCONFIG_SECURITY_GUARD);
- MZ_GC_CHECK();
---- 1043,1049 ----
- MZ_GC_VAR_IN_REG(3, guard);
- MZ_GC_VAR_IN_REG(4, config);
- MZ_GC_REG();
-! config = scheme_current_config();
- MZ_GC_CHECK();
- args[0] = scheme_get_param(config, MZCONFIG_SECURITY_GUARD);
- MZ_GC_CHECK();
-***************
-*** 1055,1066 ****
- MZ_GC_DECL_REG(1);
- MZ_GC_VAR_IN_REG(0, config);
- MZ_GC_REG();
-! config = scheme_config;
- MZ_GC_CHECK();
- /* recreate ports each call effectively clearing these ones */
-! curout = scheme_make_string_output_port();
- MZ_GC_CHECK();
-! curerr = scheme_make_string_output_port();
- MZ_GC_CHECK();
- scheme_set_param(config, MZCONFIG_OUTPUT_PORT, curout);
- MZ_GC_CHECK();
---- 1107,1118 ----
- MZ_GC_DECL_REG(1);
- MZ_GC_VAR_IN_REG(0, config);
- MZ_GC_REG();
-! config = scheme_current_config();
- MZ_GC_CHECK();
- /* recreate ports each call effectively clearing these ones */
-! curout = scheme_make_byte_string_output_port();
- MZ_GC_CHECK();
-! curerr = scheme_make_byte_string_output_port();
- MZ_GC_CHECK();
- scheme_set_param(config, MZCONFIG_OUTPUT_PORT, curout);
- MZ_GC_CHECK();
-***************
-*** 1149,1161 ****
- {
- if (buf->b_mzscheme_ref)
- {
-! vim_mz_buffer *bp;
-
-! bp = buf->b_mzscheme_ref;
- bp->buf = INVALID_BUFFER_VALUE;
-! buf->b_mzscheme_ref = NULL;
- scheme_gc_ptr_ok(bp);
- MZ_GC_CHECK();
- }
- }
-
---- 1201,1221 ----
- {
- if (buf->b_mzscheme_ref)
- {
-! vim_mz_buffer *bp = NULL;
-! MZ_GC_DECL_REG(1);
-! MZ_GC_VAR_IN_REG(0, bp);
-! MZ_GC_REG();
-
-! bp = BUFFER_REF(buf);
- bp->buf = INVALID_BUFFER_VALUE;
-! #ifndef MZ_PRECISE_GC
- scheme_gc_ptr_ok(bp);
-+ #else
-+ scheme_free_immobile_box(buf->b_mzscheme_ref);
-+ #endif
-+ buf->b_mzscheme_ref = NULL;
- MZ_GC_CHECK();
-+ MZ_GC_UNREG();
- }
- }
-
-***************
-*** 1167,1178 ****
- {
- if (win->w_mzscheme_ref)
- {
-! vim_mz_window *wp;
-! wp = win->w_mzscheme_ref;
- wp->win = INVALID_WINDOW_VALUE;
-! win->w_mzscheme_ref = NULL;
- scheme_gc_ptr_ok(wp);
- MZ_GC_CHECK();
- }
- }
-
---- 1227,1246 ----
- {
- if (win->w_mzscheme_ref)
- {
-! vim_mz_window *wp = NULL;
-! MZ_GC_DECL_REG(1);
-! MZ_GC_VAR_IN_REG(0, wp);
-! MZ_GC_REG();
-! wp = WINDOW_REF(win);
- wp->win = INVALID_WINDOW_VALUE;
-! #ifndef MZ_PRECISE_GC
- scheme_gc_ptr_ok(wp);
-+ #else
-+ scheme_free_immobile_box(win->w_mzscheme_ref);
-+ #endif
-+ win->w_mzscheme_ref = NULL;
- MZ_GC_CHECK();
-+ MZ_GC_UNREG();
- }
- }
-
-***************
-*** 1349,1355 ****
- }
-
- static void
-! do_output(char *mesg, intptr_t len UNUSED)
- {
- /* TODO: use len, the string may not be NUL terminated */
- do_intrnl_output(mesg, 0);
---- 1417,1423 ----
- }
-
- static void
-! do_output(char *mesg, OUTPUT_LEN_TYPE len UNUSED)
- {
- /* TODO: use len, the string may not be NUL terminated */
- do_intrnl_output(mesg, 0);
-***************
-*** 1371,1379 ****
- do_flush(void)
- {
- char *buff;
-! intptr_t length;
-
-! buff = scheme_get_sized_string_output(curerr, &length);
- MZ_GC_CHECK();
- if (length)
- {
---- 1439,1447 ----
- do_flush(void)
- {
- char *buff;
-! OUTPUT_LEN_TYPE length;
-
-! buff = scheme_get_sized_byte_string_output(curerr, &length);
- MZ_GC_CHECK();
- if (length)
- {
-***************
-*** 1381,1387 ****
- return;
- }
-
-! buff = scheme_get_sized_string_output(curout, &length);
- MZ_GC_CHECK();
- if (length)
- do_output(buff, length);
---- 1449,1455 ----
- return;
- }
-
-! buff = scheme_get_sized_byte_string_output(curout, &length);
- MZ_GC_CHECK();
- if (length)
- do_output(buff, length);
-***************
-*** 1398,1409 ****
- vim_command(void *data, int argc, Scheme_Object **argv)
- {
- Vim_Prim *prim = (Vim_Prim *)data;
-! char *cmd = SCHEME_STR_VAL(GUARANTEE_STRING(prim->name, 0));
-
- /* may be use do_cmdline_cmd? */
-! do_cmdline((char_u *)cmd, NULL, NULL, DOCMD_NOWAIT|DOCMD_VERBOSE);
- update_screen(VALID);
-
- raise_if_error();
- return scheme_void;
- }
---- 1466,1482 ----
- vim_command(void *data, int argc, Scheme_Object **argv)
- {
- Vim_Prim *prim = (Vim_Prim *)data;
-! Scheme_Object *cmd = NULL;
-! MZ_GC_DECL_REG(1);
-! MZ_GC_VAR_IN_REG(0, cmd);
-! MZ_GC_REG();
-! cmd = GUARANTEED_STRING_ARG(prim->name, 0);
-
- /* may be use do_cmdline_cmd? */
-! do_cmdline(BYTE_STRING_VALUE(cmd), NULL, NULL, DOCMD_NOWAIT|DOCMD_VERBOSE);
- update_screen(VALID);
-
-+ MZ_GC_UNREG();
- raise_if_error();
- return scheme_void;
- }
-***************
-*** 1414,1439 ****
- {
- #ifdef FEAT_EVAL
- Vim_Prim *prim = (Vim_Prim *)data;
-! char *expr;
-! Scheme_Object *result;
-! /* hash table to store visited values to avoid infinite loops */
-! Scheme_Hash_Table *visited = NULL;
- typval_T *vim_result;
-!
-! MZ_GC_DECL_REG(1);
-! MZ_GC_VAR_IN_REG(0, visited);
- MZ_GC_REG();
-
-! visited = scheme_make_hash_table(SCHEME_hash_ptr);
-! MZ_GC_CHECK();
-!
-! expr = SCHEME_STR_VAL(GUARANTEE_STRING(prim->name, 0));
-! vim_result = eval_expr((char_u *)expr, NULL);
-
- if (vim_result == NULL)
- raise_vim_exn(_("invalid expression"));
-
-! result = vim_to_mzscheme(vim_result, 1, visited);
- free_tv(vim_result);
-
- MZ_GC_UNREG();
---- 1487,1508 ----
- {
- #ifdef FEAT_EVAL
- Vim_Prim *prim = (Vim_Prim *)data;
-! Scheme_Object *result = NULL;
- typval_T *vim_result;
-! Scheme_Object *expr = NULL;
-! MZ_GC_DECL_REG(2);
-! MZ_GC_VAR_IN_REG(0, result);
-! MZ_GC_VAR_IN_REG(1, expr);
- MZ_GC_REG();
-+ expr = GUARANTEED_STRING_ARG(prim->name, 0);
-
-! vim_result = eval_expr(BYTE_STRING_VALUE(expr), NULL);
-
- if (vim_result == NULL)
- raise_vim_exn(_("invalid expression"));
-
-! result = vim_to_mzscheme(vim_result);
-! MZ_GC_CHECK();
- free_tv(vim_result);
-
- MZ_GC_UNREG();
-***************
-*** 1474,1489 ****
- get_option(void *data, int argc, Scheme_Object **argv)
- {
- Vim_Prim *prim = (Vim_Prim *)data;
-- char_u *name;
- long value;
- char *strval;
- int rc;
-! Scheme_Object *rval;
- int opt_flags = 0;
- buf_T *save_curb = curbuf;
- win_T *save_curw = curwin;
-
-! name = (char_u *)SCHEME_STR_VAL(GUARANTEE_STRING(prim->name, 0));
-
- if (argc > 1)
- {
---- 1543,1563 ----
- get_option(void *data, int argc, Scheme_Object **argv)
- {
- Vim_Prim *prim = (Vim_Prim *)data;
- long value;
- char *strval;
- int rc;
-! Scheme_Object *rval = NULL;
-! Scheme_Object *name = NULL;
- int opt_flags = 0;
- buf_T *save_curb = curbuf;
- win_T *save_curw = curwin;
-
-! MZ_GC_DECL_REG(2);
-! MZ_GC_VAR_IN_REG(0, rval);
-! MZ_GC_VAR_IN_REG(1, name);
-! MZ_GC_REG();
-!
-! name = GUARANTEED_STRING_ARG(prim->name, 0);
-
- if (argc > 1)
- {
-***************
-*** 1513,1535 ****
- scheme_wrong_type(prim->name, "vim-buffer/window", 1, argc, argv);
- }
-
-! rc = get_option_value(name, &value, (char_u **)&strval, opt_flags);
- curbuf = save_curb;
- curwin = save_curw;
-
- switch (rc)
- {
- case 1:
- return scheme_make_integer_value(value);
- case 0:
-! rval = scheme_make_string(strval);
- MZ_GC_CHECK();
- vim_free(strval);
- return rval;
- case -1:
- case -2:
- raise_vim_exn(_("hidden option"));
- case -3:
- raise_vim_exn(_("unknown option"));
- }
- /* unreachable */
---- 1587,1613 ----
- scheme_wrong_type(prim->name, "vim-buffer/window", 1, argc, argv);
- }
-
-! rc = get_option_value(BYTE_STRING_VALUE(name), &value, (char_u **)&strval, opt_flags);
- curbuf = save_curb;
- curwin = save_curw;
-
- switch (rc)
- {
- case 1:
-+ MZ_GC_UNREG();
- return scheme_make_integer_value(value);
- case 0:
-! rval = scheme_make_byte_string(strval);
- MZ_GC_CHECK();
- vim_free(strval);
-+ MZ_GC_UNREG();
- return rval;
- case -1:
- case -2:
-+ MZ_GC_UNREG();
- raise_vim_exn(_("hidden option"));
- case -3:
-+ MZ_GC_UNREG();
- raise_vim_exn(_("unknown option"));
- }
- /* unreachable */
-***************
-*** 1540,1552 ****
- static Scheme_Object *
- set_option(void *data, int argc, Scheme_Object **argv)
- {
-! char_u *cmd;
- int opt_flags = 0;
- buf_T *save_curb = curbuf;
- win_T *save_curw = curwin;
- Vim_Prim *prim = (Vim_Prim *)data;
-
-- GUARANTEE_STRING(prim->name, 0);
- if (argc > 1)
- {
- if (M_global == NULL)
---- 1618,1635 ----
- static Scheme_Object *
- set_option(void *data, int argc, Scheme_Object **argv)
- {
-! char_u *command = NULL;
- int opt_flags = 0;
- buf_T *save_curb = curbuf;
- win_T *save_curw = curwin;
- Vim_Prim *prim = (Vim_Prim *)data;
-+ Scheme_Object *cmd = NULL;
-+
-+ MZ_GC_DECL_REG(1);
-+ MZ_GC_VAR_IN_REG(0, cmd);
-+ MZ_GC_REG();
-+ cmd = GUARANTEED_STRING_ARG(prim->name, 0);
-
- if (argc > 1)
- {
- if (M_global == NULL)
-***************
-*** 1575,1583 ****
- }
-
- /* do_set can modify cmd, make copy */
-! cmd = vim_strsave((char_u *)SCHEME_STR_VAL(argv[0]));
-! do_set(cmd, opt_flags);
-! vim_free(cmd);
- update_screen(NOT_VALID);
- curbuf = save_curb;
- curwin = save_curw;
---- 1658,1667 ----
- }
-
- /* do_set can modify cmd, make copy */
-! command = vim_strsave(BYTE_STRING_VALUE(cmd));
-! MZ_GC_UNREG();
-! do_set(command, opt_flags);
-! vim_free(command);
- update_screen(NOT_VALID);
- curbuf = save_curb;
- curwin = save_curw;
-***************
-*** 1639,1645 ****
-
- MZ_GC_DECL_REG(1);
- MZ_GC_VAR_IN_REG(0, self);
-- MZ_GC_REG();
-
- /* We need to handle deletion of windows underneath us.
- * If we add a "w_mzscheme_ref" field to the win_T structure,
---- 1723,1728 ----
-***************
-*** 1650,1667 ****
- * object, and reject them if the win_T *field is invalid.
- */
- if (win->w_mzscheme_ref != NULL)
-! return win->w_mzscheme_ref;
-
-! self = scheme_malloc_fail_ok(scheme_malloc, sizeof(vim_mz_window));
- vim_memset(self, 0, sizeof(vim_mz_window));
- scheme_dont_gc_ptr(self); /* because win isn't visible to GC */
- MZ_GC_CHECK();
-- win->w_mzscheme_ref = self;
- self->win = win;
- self->so.type = mz_window_type;
-
- MZ_GC_UNREG();
-! return (Scheme_Object *)(self);
- }
-
- /* (get-win-num [window]) */
---- 1733,1756 ----
- * object, and reject them if the win_T *field is invalid.
- */
- if (win->w_mzscheme_ref != NULL)
-! return (Scheme_Object *)WINDOW_REF(win);
-
-! MZ_GC_REG();
-! self = scheme_malloc_fail_ok(scheme_malloc_tagged, sizeof(vim_mz_window));
- vim_memset(self, 0, sizeof(vim_mz_window));
-+ #ifndef MZ_PRECISE_GC
- scheme_dont_gc_ptr(self); /* because win isn't visible to GC */
-+ #else
-+ win->w_mzscheme_ref = scheme_malloc_immobile_box(NULL);
-+ #endif
-+ MZ_GC_CHECK();
-+ WINDOW_REF(win) = self;
- MZ_GC_CHECK();
- self->win = win;
- self->so.type = mz_window_type;
-
- MZ_GC_UNREG();
-! return (Scheme_Object *)self;
- }
-
- /* (get-win-num [window]) */
-***************
-*** 1837,1858 ****
- mzscheme_open_buffer(void *data, int argc, Scheme_Object **argv)
- {
- Vim_Prim *prim = (Vim_Prim *)data;
-- char_u *fname;
- int num = 0;
-! Scheme_Object *onum;
-
- #ifdef HAVE_SANDBOX
- sandbox_check();
- #endif
-- fname = (char_u *)SCHEME_STR_VAL(GUARANTEE_STRING(prim->name, 0));
- /* TODO make open existing file */
-! num = buflist_add(fname, BLN_LISTED | BLN_CURBUF);
-
- if (num == 0)
- raise_vim_exn(_("couldn't open buffer"));
-
- onum = scheme_make_integer(num);
-! return get_buffer_by_num(data, 1, &onum);
- }
-
- /* (get-buff-by-num {buffernum}) */
---- 1926,1956 ----
- mzscheme_open_buffer(void *data, int argc, Scheme_Object **argv)
- {
- Vim_Prim *prim = (Vim_Prim *)data;
- int num = 0;
-! Scheme_Object *onum = NULL;
-! Scheme_Object *buf = NULL;
-! Scheme_Object *fname;
-!
-! MZ_GC_DECL_REG(3);
-! MZ_GC_VAR_IN_REG(0, onum);
-! MZ_GC_VAR_IN_REG(1, buf);
-! MZ_GC_VAR_IN_REG(2, fname);
-! MZ_GC_REG();
-! fname = GUARANTEED_STRING_ARG(prim->name, 0);
-
- #ifdef HAVE_SANDBOX
- sandbox_check();
- #endif
- /* TODO make open existing file */
-! num = buflist_add(BYTE_STRING_VALUE(fname), BLN_LISTED | BLN_CURBUF);
-
- if (num == 0)
- raise_vim_exn(_("couldn't open buffer"));
-
- onum = scheme_make_integer(num);
-! buf = get_buffer_by_num(data, 1, &onum);
-! MZ_GC_UNREG();
-! return buf;
- }
-
- /* (get-buff-by-num {buffernum}) */
-***************
-*** 1878,1900 ****
- {
- Vim_Prim *prim = (Vim_Prim *)data;
- buf_T *buf;
-! char_u *fname;
-
-! fname = (char_u *)SCHEME_STR_VAL(GUARANTEE_STRING(prim->name, 0));
-
- for (buf = firstbuf; buf; buf = buf->b_next)
- if (buf->b_ffname == NULL || buf->b_sfname == NULL)
- /* empty string */
- {
-! if (fname[0] == NUL)
-! return buffer_new(buf);
- }
-! else if (!fnamecmp(buf->b_ffname, fname)
-! || !fnamecmp(buf->b_sfname, fname))
- /* either short or long filename matches */
-! return buffer_new(buf);
-
-! return scheme_false;
- }
-
- /* (get-next-buff [buffer]) */
---- 1976,2009 ----
- {
- Vim_Prim *prim = (Vim_Prim *)data;
- buf_T *buf;
-! Scheme_Object *buffer = NULL;
-! Scheme_Object *fname = NULL;
-
-! MZ_GC_DECL_REG(2);
-! MZ_GC_VAR_IN_REG(0, buffer);
-! MZ_GC_VAR_IN_REG(1, fname);
-! MZ_GC_REG();
-! fname = GUARANTEED_STRING_ARG(prim->name, 0);
-! buffer = scheme_false;
-
- for (buf = firstbuf; buf; buf = buf->b_next)
-+ {
- if (buf->b_ffname == NULL || buf->b_sfname == NULL)
- /* empty string */
- {
-! if (BYTE_STRING_VALUE(fname)[0] == NUL)
-! buffer = buffer_new(buf);
- }
-! else if (!fnamecmp(buf->b_ffname, BYTE_STRING_VALUE(fname))
-! || !fnamecmp(buf->b_sfname, BYTE_STRING_VALUE(fname)))
-! {
- /* either short or long filename matches */
-! buffer = buffer_new(buf);
-! }
-! }
-
-! MZ_GC_UNREG();
-! return buffer;
- }
-
- /* (get-next-buff [buffer]) */
-***************
-*** 1951,1957 ****
- Vim_Prim *prim = (Vim_Prim *)data;
- vim_mz_buffer *buf = get_buffer_arg(prim->name, 0, argc, argv);
-
-! return scheme_make_string((char *)buf->buf->b_ffname);
- }
-
- /* (curr-buff) */
---- 2060,2066 ----
- Vim_Prim *prim = (Vim_Prim *)data;
- vim_mz_buffer *buf = get_buffer_arg(prim->name, 0, argc, argv);
-
-! return scheme_make_byte_string((char *)buf->buf->b_ffname);
- }
-
- /* (curr-buff) */
-***************
-*** 1968,1992 ****
-
- MZ_GC_DECL_REG(1);
- MZ_GC_VAR_IN_REG(0, self);
-- MZ_GC_REG();
-
- /* We need to handle deletion of buffers underneath us.
- * If we add a "b_mzscheme_ref" field to the buf_T structure,
- * then we can get at it in buf_freeall() in vim.
- */
- if (buf->b_mzscheme_ref)
-! return buf->b_mzscheme_ref;
-
-! self = scheme_malloc_fail_ok(scheme_malloc, sizeof(vim_mz_buffer));
- vim_memset(self, 0, sizeof(vim_mz_buffer));
-! scheme_dont_gc_ptr(self); /* because buf isn't visible to GC */
- MZ_GC_CHECK();
-- buf->b_mzscheme_ref = self;
- self->buf = buf;
- self->so.type = mz_buffer_type;
-
- MZ_GC_UNREG();
-! return (Scheme_Object *)(self);
- }
-
- /*
---- 2077,2106 ----
-
- MZ_GC_DECL_REG(1);
- MZ_GC_VAR_IN_REG(0, self);
-
- /* We need to handle deletion of buffers underneath us.
- * If we add a "b_mzscheme_ref" field to the buf_T structure,
- * then we can get at it in buf_freeall() in vim.
- */
- if (buf->b_mzscheme_ref)
-! return (Scheme_Object *)BUFFER_REF(buf);
-
-! MZ_GC_REG();
-! self = scheme_malloc_fail_ok(scheme_malloc_tagged, sizeof(vim_mz_buffer));
- vim_memset(self, 0, sizeof(vim_mz_buffer));
-! #ifndef MZ_PRECISE_GC
-! scheme_dont_gc_ptr(self); /* because buf isn't visible to GC */
-! #else
-! buf->b_mzscheme_ref = scheme_malloc_immobile_box(NULL);
-! #endif
-! MZ_GC_CHECK();
-! BUFFER_REF(buf) = self;
- MZ_GC_CHECK();
- self->buf = buf;
- self->so.type = mz_buffer_type;
-
- MZ_GC_UNREG();
-! return (Scheme_Object *)self;
- }
-
- /*
-***************
-*** 2023,2029 ****
- line = ml_get_buf(buf->buf, (linenr_T)linenr, FALSE);
-
- raise_if_error();
-! return scheme_make_string((char *)line);
- }
-
-
---- 2137,2143 ----
- line = ml_get_buf(buf->buf, (linenr_T)linenr, FALSE);
-
- raise_if_error();
-! return scheme_make_byte_string((char *)line);
- }
-
-
-***************
-*** 2066,2072 ****
-
- for (i = n; i >= 0; --i)
- {
-! Scheme_Object *str = scheme_make_string(
- (char *)ml_get_buf(buf->buf, (linenr_T)(lo+i), FALSE));
- raise_if_error();
-
---- 2180,2186 ----
-
- for (i = n; i >= 0; --i)
- {
-! Scheme_Object *str = scheme_make_byte_string(
- (char *)ml_get_buf(buf->buf, (linenr_T)(lo+i), FALSE));
- raise_if_error();
-
-***************
-*** 2298,2305 ****
- MZ_GC_VAR_IN_REG(1, rest);
- MZ_GC_REG();
-
-! array = (char **)alloc(new_len * sizeof(char *));
-! vim_memset(array, 0, new_len * sizeof(char *));
-
- rest = line_list;
- for (i = 0; i < new_len; ++i)
---- 2412,2419 ----
- MZ_GC_VAR_IN_REG(1, rest);
- MZ_GC_REG();
-
-! array = (char **)alloc((new_len+1)* sizeof(char *));
-! vim_memset(array, 0, (new_len+1) * sizeof(char *));
-
- rest = line_list;
- for (i = 0; i < new_len; ++i)
-***************
-*** 2481,2488 ****
- MZ_GC_VAR_IN_REG(1, rest);
- MZ_GC_REG();
-
-! array = (char **)alloc(size * sizeof(char *));
-! vim_memset(array, 0, size * sizeof(char *));
-
- rest = list;
- for (i = 0; i < size; ++i)
---- 2595,2602 ----
- MZ_GC_VAR_IN_REG(1, rest);
- MZ_GC_REG();
-
-! array = (char **)alloc((size+1) * sizeof(char *));
-! vim_memset(array, 0, (size+1) * sizeof(char *));
-
- rest = list;
- for (i = 0; i < size; ++i)
-***************
-*** 2589,2595 ****
- {
- char *scheme_str = NULL;
- char *vim_str = NULL;
-! intptr_t len;
- int i;
-
- scheme_str = scheme_display_to_string(obj, &len);
---- 2703,2709 ----
- {
- char *scheme_str = NULL;
- char *vim_str = NULL;
-! OUTPUT_LEN_TYPE len;
- int i;
-
- scheme_str = scheme_display_to_string(obj, &len);
-***************
-*** 2598,2607 ****
- * are replacing a single line, and we must replace it with
- * a single line.
- */
-! if (memchr(scheme_str, '\n', (size_t)len))
- scheme_signal_error(_("string cannot contain newlines"));
-
-! vim_str = (char *)alloc((int)(len + 1));
-
- /* Create a copy of the string, with internal nulls replaced by
- * newline characters, as is the vim convention.
---- 2712,2721 ----
- * are replacing a single line, and we must replace it with
- * a single line.
- */
-! if (memchr(scheme_str, '\n', len))
- scheme_signal_error(_("string cannot contain newlines"));
-
-! vim_str = (char *)alloc(len + 1);
-
- /* Create a copy of the string, with internal nulls replaced by
- * newline characters, as is the vim convention.
-***************
-*** 2625,2637 ****
- * Convert Vim value into MzScheme, adopted from if_python.c
- */
- static Scheme_Object *
-! vim_to_mzscheme(typval_T *vim_value, int depth, Scheme_Hash_Table *visited)
- {
- Scheme_Object *result = NULL;
- int new_value = TRUE;
-
-! MZ_GC_DECL_REG(1);
- MZ_GC_VAR_IN_REG(0, result);
- MZ_GC_REG();
-
- /* Avoid infinite recursion */
---- 2739,2773 ----
- * Convert Vim value into MzScheme, adopted from if_python.c
- */
- static Scheme_Object *
-! vim_to_mzscheme(typval_T *vim_value)
-! {
-! Scheme_Object *result = NULL;
-! /* hash table to store visited values to avoid infinite loops */
-! Scheme_Hash_Table *visited = NULL;
-!
-! MZ_GC_DECL_REG(2);
-! MZ_GC_VAR_IN_REG(0, result);
-! MZ_GC_VAR_IN_REG(1, visited);
-! MZ_GC_REG();
-!
-! visited = scheme_make_hash_table(SCHEME_hash_ptr);
-! MZ_GC_CHECK();
-!
-! result = vim_to_mzscheme_impl(vim_value, 1, visited);
-!
-! MZ_GC_UNREG();
-! return result;
-! }
-!
-! static Scheme_Object *
-! vim_to_mzscheme_impl(typval_T *vim_value, int depth, Scheme_Hash_Table *visited)
- {
- Scheme_Object *result = NULL;
- int new_value = TRUE;
-
-! MZ_GC_DECL_REG(2);
- MZ_GC_VAR_IN_REG(0, result);
-+ MZ_GC_VAR_IN_REG(1, visited);
- MZ_GC_REG();
-
- /* Avoid infinite recursion */
-***************
-*** 2650,2657 ****
- new_value = FALSE;
- else if (vim_value->v_type == VAR_STRING)
- {
-! result = scheme_make_string(vim_value->vval.v_string == NULL
-! ? "" : (char *)vim_value->vval.v_string);
- MZ_GC_CHECK();
- }
- else if (vim_value->v_type == VAR_NUMBER)
---- 2786,2792 ----
- new_value = FALSE;
- else if (vim_value->v_type == VAR_STRING)
- {
-! result = scheme_make_byte_string((char *)vim_value->vval.v_string);
- MZ_GC_CHECK();
- }
- else if (vim_value->v_type == VAR_NUMBER)
-***************
-*** 2682,2695 ****
- MZ_GC_REG();
-
- curr = list->lv_last;
-! obj = vim_to_mzscheme(&curr->li_tv, depth + 1, visited);
- result = scheme_make_pair(obj, scheme_null);
- MZ_GC_CHECK();
-
- while (curr != list->lv_first)
- {
- curr = curr->li_prev;
-! obj = vim_to_mzscheme(&curr->li_tv, depth + 1, visited);
- result = scheme_make_pair(obj, result);
- MZ_GC_CHECK();
- }
---- 2817,2830 ----
- MZ_GC_REG();
-
- curr = list->lv_last;
-! obj = vim_to_mzscheme_impl(&curr->li_tv, depth + 1, visited);
- result = scheme_make_pair(obj, scheme_null);
- MZ_GC_CHECK();
-
- while (curr != list->lv_first)
- {
- curr = curr->li_prev;
-! obj = vim_to_mzscheme_impl(&curr->li_tv, depth + 1, visited);
- result = scheme_make_pair(obj, result);
- MZ_GC_CHECK();
- }
-***************
-*** 2722,2729 ****
- --todo;
-
- di = dict_lookup(hi);
-! obj = vim_to_mzscheme(&di->di_tv, depth + 1, visited);
-! key = scheme_make_string((char *)hi->hi_key);
- MZ_GC_CHECK();
- scheme_hash_set((Scheme_Hash_Table *)result, key, obj);
- MZ_GC_CHECK();
---- 2857,2864 ----
- --todo;
-
- di = dict_lookup(hi);
-! obj = vim_to_mzscheme_impl(&di->di_tv, depth + 1, visited);
-! key = scheme_make_byte_string((char *)hi->hi_key);
- MZ_GC_CHECK();
- scheme_hash_set((Scheme_Hash_Table *)result, key, obj);
- MZ_GC_CHECK();
-***************
-*** 2732,2737 ****
---- 2867,2888 ----
- }
- MZ_GC_UNREG();
- }
-+ else if (vim_value->v_type == VAR_FUNC)
-+ {
-+ Scheme_Object *funcname = NULL;
-+
-+ MZ_GC_DECL_REG(1);
-+ MZ_GC_VAR_IN_REG(0, funcname);
-+ MZ_GC_REG();
-+
-+ funcname = scheme_make_byte_string((char *)vim_value->vval.v_string);
-+ MZ_GC_CHECK();
-+ result = scheme_make_closed_prim_w_arity(vim_funcref, funcname,
-+ (const char *)BYTE_STRING_VALUE(funcname), 0, -1);
-+ MZ_GC_CHECK();
-+
-+ MZ_GC_UNREG();
-+ }
- else
- {
- result = scheme_void;
-***************
-*** 2747,2757 ****
- }
-
- static int
-! mzscheme_to_vim(Scheme_Object *obj, typval_T *tv, int depth,
- Scheme_Hash_Table *visited)
- {
- int status = OK;
- typval_T *found;
- MZ_GC_CHECK();
- if (depth > 100) /* limit the deepest recursion level */
- {
---- 2898,2939 ----
- }
-
- static int
-! mzscheme_to_vim(Scheme_Object *obj, typval_T *tv)
-! {
-! int i, status;
-! Scheme_Hash_Table *visited = NULL;
-!
-! MZ_GC_DECL_REG(2);
-! MZ_GC_VAR_IN_REG(0, obj);
-! MZ_GC_VAR_IN_REG(1, visited);
-! MZ_GC_REG();
-!
-! visited = scheme_make_hash_table(SCHEME_hash_ptr);
-! MZ_GC_CHECK();
-!
-! status = mzscheme_to_vim_impl(obj, tv, 1, visited);
-! for (i = 0; i < visited->size; ++i)
-! {
-! /* free up remembered objects */
-! if (visited->vals[i] != NULL)
-! free_tv((typval_T *)visited->vals[i]);
-! }
-!
-! MZ_GC_UNREG();
-! return status;
-! }
-! static int
-! mzscheme_to_vim_impl(Scheme_Object *obj, typval_T *tv, int depth,
- Scheme_Hash_Table *visited)
- {
- int status = OK;
- typval_T *found;
-+
-+ MZ_GC_DECL_REG(2);
-+ MZ_GC_VAR_IN_REG(0, obj);
-+ MZ_GC_VAR_IN_REG(1, visited);
-+ MZ_GC_REG();
-+
- MZ_GC_CHECK();
- if (depth > 100) /* limit the deepest recursion level */
- {
-***************
-*** 2785,2795 ****
- tv->vval.v_float = SCHEME_DBL_VAL(obj);
- }
- # endif
-! else if (SCHEME_STRINGP(obj))
- {
- tv->v_type = VAR_STRING;
-! tv->vval.v_string = vim_strsave((char_u *)SCHEME_STR_VAL(obj));
- }
- else if (SCHEME_VECTORP(obj) || SCHEME_NULLP(obj)
- || SCHEME_PAIRP(obj) || SCHEME_MUTABLE_PAIRP(obj))
- {
---- 2967,2991 ----
- tv->vval.v_float = SCHEME_DBL_VAL(obj);
- }
- # endif
-! else if (SCHEME_BYTE_STRINGP(obj))
- {
- tv->v_type = VAR_STRING;
-! tv->vval.v_string = vim_strsave(BYTE_STRING_VALUE(obj));
- }
-+ # if MZSCHEME_VERSION_MAJOR >= 299
-+ else if (SCHEME_CHAR_STRINGP(obj))
-+ {
-+ Scheme_Object *tmp = NULL;
-+ MZ_GC_DECL_REG(1);
-+ MZ_GC_VAR_IN_REG(0, tmp);
-+ MZ_GC_REG();
-+
-+ tmp = scheme_char_string_to_byte_string(obj);
-+ tv->v_type = VAR_STRING;
-+ tv->vval.v_string = vim_strsave(BYTE_STRING_VALUE(tmp));
-+ MZ_GC_UNREG();
-+ }
-+ #endif
- else if (SCHEME_VECTORP(obj) || SCHEME_NULLP(obj)
- || SCHEME_PAIRP(obj) || SCHEME_MUTABLE_PAIRP(obj))
- {
-***************
-*** 2829,2835 ****
- for (i = 0; i < SCHEME_VEC_SIZE(obj); ++i)
- {
- cval = SCHEME_VEC_ELS(obj)[i];
-! status = mzscheme_to_vim(cval, v, depth + 1, visited);
- if (status == FAIL)
- break;
- status = list_append_tv(list, v);
---- 3025,3031 ----
- for (i = 0; i < SCHEME_VEC_SIZE(obj); ++i)
- {
- cval = SCHEME_VEC_ELS(obj)[i];
-! status = mzscheme_to_vim_impl(cval, v, depth + 1, visited);
- if (status == FAIL)
- break;
- status = list_append_tv(list, v);
-***************
-*** 2845,2851 ****
- curr = SCHEME_CDR(curr))
- {
- cval = SCHEME_CAR(curr);
-! status = mzscheme_to_vim(cval, v, depth + 1, visited);
- if (status == FAIL)
- break;
- status = list_append_tv(list, v);
---- 3041,3047 ----
- curr = SCHEME_CDR(curr))
- {
- cval = SCHEME_CAR(curr);
-! status = mzscheme_to_vim_impl(cval, v, depth + 1, visited);
- if (status == FAIL)
- break;
- status = list_append_tv(list, v);
-***************
-*** 2857,2863 ****
- * need to handle the last element */
- if (status == OK && !SCHEME_NULLP(curr))
- {
-! status = mzscheme_to_vim(cval, v, depth + 1, visited);
- if (status == OK)
- {
- status = list_append_tv(list, v);
---- 3053,3059 ----
- * need to handle the last element */
- if (status == OK && !SCHEME_NULLP(curr))
- {
-! status = mzscheme_to_vim_impl(cval, v, depth + 1, visited);
- if (status == OK)
- {
- status = list_append_tv(list, v);
-***************
-*** 2905,2911 ****
- dictitem_T *item = dictitem_alloc((char_u *)string_to_line(
- ((Scheme_Hash_Table *) obj)->keys[i]));
- /* convert Scheme val to Vim and add it to the dict */
-! if (mzscheme_to_vim(((Scheme_Hash_Table *) obj)->vals[i],
- &item->di_tv, depth + 1, visited) == FAIL
- || dict_add(dict, item) == FAIL)
- {
---- 3101,3107 ----
- dictitem_T *item = dictitem_alloc((char_u *)string_to_line(
- ((Scheme_Hash_Table *) obj)->keys[i]));
- /* convert Scheme val to Vim and add it to the dict */
-! if (mzscheme_to_vim_impl(((Scheme_Hash_Table *) obj)->vals[i],
- &item->di_tv, depth + 1, visited) == FAIL
- || dict_add(dict, item) == FAIL)
- {
-***************
-*** 2925,2943 ****
- tv->v_type = VAR_STRING;
- tv->vval.v_string = (char_u *)string_to_line(obj);
- }
- return status;
- }
-
- void
- do_mzeval(char_u *str, typval_T *rettv)
- {
-- int i;
- Scheme_Object *ret = NULL;
-- Scheme_Hash_Table *visited = NULL;
-
-! MZ_GC_DECL_REG(2);
- MZ_GC_VAR_IN_REG(0, ret);
-- MZ_GC_VAR_IN_REG(0, visited);
- MZ_GC_REG();
-
- if (mzscheme_init())
---- 3121,3196 ----
- tv->v_type = VAR_STRING;
- tv->vval.v_string = (char_u *)string_to_line(obj);
- }
-+ MZ_GC_UNREG();
- return status;
- }
-
-+ /* Scheme prim procedure wrapping Vim funcref */
-+ static Scheme_Object *
-+ vim_funcref(void *name, int argc, Scheme_Object **argv)
-+ {
-+ int i;
-+ typval_T args;
-+ int status = OK;
-+ Scheme_Object *result = NULL;
-+ list_T *list = list_alloc();
-+
-+ MZ_GC_DECL_REG(1);
-+ MZ_GC_VAR_IN_REG(0, result);
-+ MZ_GC_REG();
-+
-+ result = scheme_void;
-+ if (list == NULL)
-+ status = FAIL;
-+ else
-+ {
-+ args.v_type = VAR_LIST;
-+ args.vval.v_list = list;
-+ ++list->lv_refcount;
-+ for (i = 0; status == OK && i < argc; ++i)
-+ {
-+ typval_T *v = (typval_T *)alloc(sizeof(typval_T));
-+ if (v == NULL)
-+ status = FAIL;
-+ else
-+ {
-+ status = mzscheme_to_vim(argv[i], v);
-+ if (status == OK)
-+ {
-+ status = list_append_tv(list, v);
-+ clear_tv(v);
-+ }
-+ vim_free(v);
-+ }
-+ }
-+ if (status == OK)
-+ {
-+ typval_T ret;
-+ ret.v_type = VAR_UNKNOWN;
-+
-+ mzscheme_call_vim(BYTE_STRING_VALUE((Scheme_Object *)name), &args, &ret);
-+ MZ_GC_CHECK();
-+ result = vim_to_mzscheme(&ret);
-+ clear_tv(&ret);
-+ MZ_GC_CHECK();
-+ }
-+ }
-+ clear_tv(&args);
-+ MZ_GC_UNREG();
-+ if (status != OK)
-+ raise_vim_exn(_("error converting Scheme values to Vim"));
-+ else
-+ raise_if_error();
-+ return result;
-+ }
-+
- void
- do_mzeval(char_u *str, typval_T *rettv)
- {
- Scheme_Object *ret = NULL;
-
-! MZ_GC_DECL_REG(1);
- MZ_GC_VAR_IN_REG(0, ret);
- MZ_GC_REG();
-
- if (mzscheme_init())
-***************
-*** 2947,2966 ****
- }
-
- MZ_GC_CHECK();
-- visited = scheme_make_hash_table(SCHEME_hash_ptr);
-- MZ_GC_CHECK();
--
- if (eval_with_exn_handling(str, do_eval, &ret) == OK)
-! mzscheme_to_vim(ret, rettv, 1, visited);
-!
-! for (i = 0; i < visited->size; ++i)
-! {
-! /* free up remembered objects */
-! if (visited->vals[i] != NULL)
-! {
-! free_tv((typval_T *)visited->vals[i]);
-! }
-! }
-
- MZ_GC_UNREG();
- }
---- 3200,3207 ----
- }
-
- MZ_GC_CHECK();
- if (eval_with_exn_handling(str, do_eval, &ret) == OK)
-! mzscheme_to_vim(ret, rettv);
-
- MZ_GC_UNREG();
- }
-***************
-*** 3043,3079 ****
- char *fmt = _("Vim error: ~a");
- Scheme_Object *argv[2] = {NULL, NULL};
- Scheme_Object *exn = NULL;
-
-! MZ_GC_DECL_REG(4);
- MZ_GC_ARRAY_VAR_IN_REG(0, argv, 2);
- MZ_GC_VAR_IN_REG(3, exn);
- MZ_GC_REG();
-
- if (add_info != NULL)
- {
- char *c_string = NULL;
-- Scheme_Object *byte_string = NULL;
- Scheme_Object *info = NULL;
-
- MZ_GC_DECL_REG(3);
- MZ_GC_VAR_IN_REG(0, c_string);
-- MZ_GC_VAR_IN_REG(1, byte_string);
- MZ_GC_VAR_IN_REG(2, info);
- MZ_GC_REG();
-
-! info = scheme_make_string(add_info);
- MZ_GC_CHECK();
-! c_string = scheme_format(fmt, STRLEN(fmt), 1, &info, NULL);
- MZ_GC_CHECK();
-! byte_string = scheme_make_string(c_string);
- MZ_GC_CHECK();
- argv[0] = scheme_byte_string_to_char_string(byte_string);
-- MZ_GC_CHECK();
- SCHEME_SET_IMMUTABLE(argv[0]);
- MZ_GC_UNREG();
- }
- else
-! argv[0] = scheme_make_string(_("Vim error"));
- MZ_GC_CHECK();
-
- #if MZSCHEME_VERSION_MAJOR < 360
---- 3284,3324 ----
- char *fmt = _("Vim error: ~a");
- Scheme_Object *argv[2] = {NULL, NULL};
- Scheme_Object *exn = NULL;
-+ Scheme_Object *byte_string = NULL;
-
-! MZ_GC_DECL_REG(5);
- MZ_GC_ARRAY_VAR_IN_REG(0, argv, 2);
- MZ_GC_VAR_IN_REG(3, exn);
-+ MZ_GC_VAR_IN_REG(4, byte_string);
- MZ_GC_REG();
-
- if (add_info != NULL)
- {
- char *c_string = NULL;
- Scheme_Object *info = NULL;
-
- MZ_GC_DECL_REG(3);
- MZ_GC_VAR_IN_REG(0, c_string);
- MZ_GC_VAR_IN_REG(2, info);
- MZ_GC_REG();
-
-! info = scheme_make_byte_string(add_info);
- MZ_GC_CHECK();
-! c_string = scheme_format_utf8(fmt, STRLEN(fmt), 1, &info, NULL);
- MZ_GC_CHECK();
-! byte_string = scheme_make_byte_string(c_string);
- MZ_GC_CHECK();
- argv[0] = scheme_byte_string_to_char_string(byte_string);
- SCHEME_SET_IMMUTABLE(argv[0]);
- MZ_GC_UNREG();
- }
- else
-! {
-! byte_string = scheme_make_byte_string(_("Vim error"));
-! MZ_GC_CHECK();
-! argv[0] = scheme_byte_string_to_char_string(byte_string);
-! MZ_GC_CHECK();
-! }
- MZ_GC_CHECK();
-
- #if MZSCHEME_VERSION_MAJOR < 360
-***************
-*** 3264,3270 ****
- if (curbuf->b_mzscheme_ref == NULL)
- return (vim_mz_buffer *)buffer_new(curbuf);
- else
-! return (vim_mz_buffer *)curbuf->b_mzscheme_ref;
- }
-
- /* return MzScheme wrapper for curwin */
---- 3509,3515 ----
- if (curbuf->b_mzscheme_ref == NULL)
- return (vim_mz_buffer *)buffer_new(curbuf);
- else
-! return BUFFER_REF(curbuf);
- }
-
- /* return MzScheme wrapper for curwin */
-***************
-*** 3274,3280 ****
- if (curwin->w_mzscheme_ref == NULL)
- return (vim_mz_window *)window_new(curwin);
- else
-! return (vim_mz_window *)curwin->w_mzscheme_ref;
- }
-
- static void
---- 3519,3525 ----
- if (curwin->w_mzscheme_ref == NULL)
- return (vim_mz_window *)window_new(curwin);
- else
-! return WINDOW_REF(curwin);
- }
-
- static void
-*** ../vim-7.3.790/src/if_mzsch.h 2010-08-15 21:57:29.000000000 +0200
---- src/if_mzsch.h 2013-01-30 14:26:44.000000000 +0100
-***************
-*** 7,12 ****
---- 7,13 ----
- #ifdef __MINGW32__
- /* Hack to engage Cygwin-specific settings */
- # define __CYGWIN32__
-+ # include <stdint.h>
- #endif
-
- /* #ifdef needed for "make depend" */
-***************
-*** 20,50 ****
- #endif
-
- #if MZSCHEME_VERSION_MAJOR >= 299
-- /* macros to be compatible with 20x versions */
-- # define scheme_config scheme_current_config()
-- # define scheme_make_string scheme_make_byte_string
-- # define scheme_make_string_output_port scheme_make_byte_string_output_port
-- # define scheme_get_sized_string_output scheme_get_sized_byte_string_output
-- # define scheme_write_string scheme_write_byte_string
-- # define scheme_make_sized_string scheme_make_sized_byte_string
--
- # define SCHEME_STRINGP(obj) (SCHEME_BYTE_STRINGP(obj) || SCHEME_CHAR_STRINGP(obj))
-! # define SCHEME_STR_VAL(obj) SCHEME_BYTE_STR_VAL( \
-! (SCHEME_BYTE_STRINGP(obj) ? obj : scheme_char_string_to_byte_string(obj)))
-! # define GUARANTEE_STRING(fname, argnum) GUARANTEE_TYPE(fname, argnum, SCHEME_STRINGP, "string")
-!
-! # ifdef scheme_format
-! # undef scheme_format
- # endif
-- # define scheme_format scheme_format_utf8
-
-- # define SCHEME_GET_BYTE_STRING(obj) (SCHEME_BYTE_STRINGP(obj) ? obj : \
-- scheme_char_string_to_byte_string(obj))
-- #else
-- # define SCHEME_GET_BYTE_STRING(obj) (obj)
- # define SCHEME_BYTE_STRLEN_VAL SCHEME_STRLEN_VAL
-! # define SCHEME_BYTE_STR_VAL SCHEME_STR_VAL
- # define scheme_byte_string_to_char_string(obj) (obj)
- #endif
-
- /* Precise GC macros */
---- 21,44 ----
- #endif
-
- #if MZSCHEME_VERSION_MAJOR >= 299
- # define SCHEME_STRINGP(obj) (SCHEME_BYTE_STRINGP(obj) || SCHEME_CHAR_STRINGP(obj))
-! # define BYTE_STRING_VALUE(obj) ((char_u *)SCHEME_BYTE_STR_VAL(obj))
-! #else
-! /* macros for compatibility with older versions */
-! # define scheme_current_config() scheme_config
-! # define scheme_make_sized_byte_string scheme_make_sized_string
-! # define scheme_format_utf8 scheme_format
-! # ifndef DYNAMIC_MZSCHEME
-! /* for dynamic MzScheme there will be separate definitions in if_mzsch.c */
-! # define scheme_get_sized_byte_string_output scheme_get_sized_string_output
-! # define scheme_make_byte_string scheme_make_string
-! # define scheme_make_byte_string_output_port scheme_make_string_output_port
- # endif
-
- # define SCHEME_BYTE_STRLEN_VAL SCHEME_STRLEN_VAL
-! # define BYTE_STRING_VALUE(obj) ((char_u *)SCHEME_STR_VAL(obj))
- # define scheme_byte_string_to_char_string(obj) (obj)
-+ # define SCHEME_BYTE_STRINGP SCHEME_STRINGP
- #endif
-
- /* Precise GC macros */
-*** ../vim-7.3.790/src/Make_ming.mak 2013-01-23 13:55:16.000000000 +0100
---- src/Make_ming.mak 2013-01-30 14:26:44.000000000 +0100
-***************
-*** 384,389 ****
---- 384,392 ----
- 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
-+ ifeq (yes, "$(MZSCHEME_DEBUG)")
-+ CFLAGS += -DMZSCHEME_FORCE_GC
-+ endif
- endif
-
- ifdef RUBY
-*** ../vim-7.3.790/src/Make_mvc.mak 2012-12-06 21:30:24.000000000 +0100
---- src/Make_mvc.mak 2013-01-30 14:26:44.000000000 +0100
-***************
-*** 1096,1102 ****
- $(OUTDIR)/if_perlsfio.obj: $(OUTDIR) if_perlsfio.c $(INCL)
- $(CC) $(CFLAGS) $(PERL_INC) if_perlsfio.c
-
-! $(OUTDIR)/if_mzsch.obj: $(OUTDIR) if_mzsch.c $(INCL) $(MZSCHEME_EXTRA_DEP)
- $(CC) $(CFLAGS) if_mzsch.c \
- -DMZSCHEME_COLLECTS=\"$(MZSCHEME:\=\\)\\collects\"
- mzscheme_base.c:
---- 1096,1102 ----
- $(OUTDIR)/if_perlsfio.obj: $(OUTDIR) if_perlsfio.c $(INCL)
- $(CC) $(CFLAGS) $(PERL_INC) if_perlsfio.c
-
-! $(OUTDIR)/if_mzsch.obj: $(OUTDIR) if_mzsch.c if_mzsch.h $(INCL) $(MZSCHEME_EXTRA_DEP)
- $(CC) $(CFLAGS) if_mzsch.c \
- -DMZSCHEME_COLLECTS=\"$(MZSCHEME:\=\\)\\collects\"
- mzscheme_base.c:
-*** ../vim-7.3.790/src/os_unix.c 2012-10-14 04:35:16.000000000 +0200
---- src/os_unix.c 2013-01-30 14:26:44.000000000 +0100
-***************
-*** 278,284 ****
- #ifdef SIGBUS
- {SIGBUS, "BUS", TRUE},
- #endif
-! #ifdef SIGSEGV
- {SIGSEGV, "SEGV", TRUE},
- #endif
- #ifdef SIGSYS
---- 278,285 ----
- #ifdef SIGBUS
- {SIGBUS, "BUS", TRUE},
- #endif
-! #if defined(SIGSEGV) && !defined(FEAT_MZSCHEME)
-! /* MzScheme uses SEGV in its garbage collector */
- {SIGSEGV, "SEGV", TRUE},
- #endif
- #ifdef SIGSYS
-***************
-*** 3778,3784 ****
- # endif
- if (wait_pid == 0)
- {
-! /* Wait for 1/100 sec before trying again. */
- mch_delay(10L, TRUE);
- continue;
- }
---- 3779,3785 ----
- # endif
- if (wait_pid == 0)
- {
-! /* Wait for 10 msec before trying again. */
- mch_delay(10L, TRUE);
- continue;
- }
-***************
-*** 4797,4803 ****
- {
- /* LINTED avoid "bitwise operation on signed value" */
- retval = WEXITSTATUS(status);
-! if (retval && !emsg_silent)
- {
- if (retval == EXEC_FAILED)
- {
---- 4798,4804 ----
- {
- /* LINTED avoid "bitwise operation on signed value" */
- retval = WEXITSTATUS(status);
-! if (retval != 0 && !emsg_silent)
- {
- if (retval == EXEC_FAILED)
- {
-*** ../vim-7.3.790/src/proto/eval.pro 2012-07-25 16:46:59.000000000 +0200
---- src/proto/eval.pro 2013-01-30 14:32:04.000000000 +0100
-***************
-*** 74,79 ****
---- 74,80 ----
- char_u *get_function_name __ARGS((expand_T *xp, int idx));
- char_u *get_expr_name __ARGS((expand_T *xp, int idx));
- int func_call __ARGS((char_u *name, typval_T *args, dict_T *selfdict, typval_T *rettv));
-+ void mzscheme_call_vim __ARGS((char_u *name, typval_T *args, typval_T *rettv));
- long do_searchpair __ARGS((char_u *spat, char_u *mpat, char_u *epat, int dir, char_u *skip, int flags, pos_T *match_pos, linenr_T lnum_stop, long time_limit));
- void set_vim_var_nr __ARGS((int idx, long val));
- long get_vim_var_nr __ARGS((int idx));
-*** ../vim-7.3.790/src/testdir/test70.in 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test70.in 2013-01-30 14:50:02.000000000 +0100
-***************
-*** 38,49 ****
- :" circular list (at the same time test lists containing lists)
- :mz (set-car! (cddr l) l)
- :let l2 = mzeval("h")["list"]
-! :if l2[2] == l2
- :let res = "OK"
- :else
-! :let res = "FAILED"
- :endif
- :call setline(search("^3"), "circular test " . res)
- :?^1?,$w! test.out
- :qa!
- ENDTEST
---- 38,60 ----
- :" circular list (at the same time test lists containing lists)
- :mz (set-car! (cddr l) l)
- :let l2 = mzeval("h")["list"]
-! :" bug: this returns item2, but it should be l2
-! :if l2[2] == "item2"
- :let res = "OK"
- :else
-! :let res = "FAILED: " . l2[2]
- :endif
- :call setline(search("^3"), "circular test " . res)
-+ :" funcrefs
-+ :mz (define vim:max (vim-eval "function('max')"))
-+ :mz (define m (vim:max '(1 100 8)))
-+ :let m = mzeval('m')
-+ :if m == 100
-+ :let fref_res = "OK"
-+ :else
-+ :let fref_res = "FAILED: " . m
-+ :end
-+ :call append(line('$'), 'funcrefs '. fref_res)
- :?^1?,$w! test.out
- :qa!
- ENDTEST
-*** ../vim-7.3.790/src/testdir/test70.ok 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test70.ok 2013-01-30 14:26:44.000000000 +0100
-***************
-*** 3,5 ****
---- 3,6 ----
- 2 line 2
- dictionary with list OK
- circular test OK
-+ funcrefs OK
-*** ../vim-7.3.790/src/version.c 2013-01-30 14:13:52.000000000 +0100
---- src/version.c 2013-01-30 14:52:31.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 791,
- /**/
-
-
---
-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/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.792
-Fcc: 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.792
-Problem: ":substitute" works differently without confirmation.
-Solution: Do not change the text when asking for confirmation, only display
- it.
-Files: src/ex_cmds.c
-
-
-*** ../vim-7.3.791/src/ex_cmds.c 2013-01-17 18:33:58.000000000 +0100
---- src/ex_cmds.c 2013-01-30 16:01:58.000000000 +0100
-***************
-*** 4727,4732 ****
---- 4727,4734 ----
- }
- else
- {
-+ char_u *orig_line = NULL;
-+ int len_change = 0;
- #ifdef FEAT_FOLDING
- int save_p_fen = curwin->w_p_fen;
-
-***************
-*** 4737,4745 ****
- temp = RedrawingDisabled;
- RedrawingDisabled = 0;
-
- search_match_lines = regmatch.endpos[0].lnum
- - regmatch.startpos[0].lnum;
-! search_match_endcol = regmatch.endpos[0].col;
- highlight_match = TRUE;
-
- update_topline();
---- 4739,4781 ----
- temp = RedrawingDisabled;
- RedrawingDisabled = 0;
-
-+ if (new_start != NULL)
-+ {
-+ /* There already was a substitution, we would
-+ * like to show this to the user. We cannot
-+ * really update the line, it would change
-+ * what matches. Temporarily replace the line
-+ * and change it back afterwards. */
-+ orig_line = vim_strsave(ml_get(lnum));
-+ if (orig_line != NULL)
-+ {
-+ char_u *new_line = concat_str(new_start,
-+ sub_firstline + copycol);
-+
-+ if (new_line == NULL)
-+ {
-+ vim_free(orig_line);
-+ orig_line = NULL;
-+ }
-+ else
-+ {
-+ /* Position the cursor relative to the
-+ * end of the line, the previous
-+ * substitute may have inserted or
-+ * deleted characters before the
-+ * cursor. */
-+ len_change = STRLEN(new_line)
-+ - STRLEN(orig_line);
-+ curwin->w_cursor.col += len_change;
-+ ml_replace(lnum, new_line, FALSE);
-+ }
-+ }
-+ }
-+
- search_match_lines = regmatch.endpos[0].lnum
- - regmatch.startpos[0].lnum;
-! search_match_endcol = regmatch.endpos[0].col
-! + len_change;
- highlight_match = TRUE;
-
- update_topline();
-***************
-*** 4781,4786 ****
---- 4817,4826 ----
- msg_didout = FALSE; /* don't scroll up */
- msg_col = 0;
- gotocmdline(TRUE);
-+
-+ /* restore the line */
-+ if (orig_line != NULL)
-+ ml_replace(lnum, orig_line, FALSE);
- }
-
- need_wait_return = FALSE; /* no hit-return prompt */
-***************
-*** 5045,5058 ****
- * The check for nmatch_tl is needed for when multi-line
- * matching must replace the lines before trying to do another
- * match, otherwise "\@<=" won't work.
-- * When asking the user we like to show the already replaced
-- * text, but don't do it when "\<@=" or "\<@!" is used, it
-- * changes what matches.
- * When the match starts below where we start searching also
- * need to replace the line first (using \zs after \n).
- */
- if (lastone
-- || (do_ask && !re_lookbehind(regmatch.regprog))
- || nmatch_tl > 0
- || (nmatch = vim_regexec_multi(&regmatch, curwin,
- curbuf, sub_firstlnum,
---- 5085,5094 ----
-*** ../vim-7.3.791/src/version.c 2013-01-30 14:55:35.000000000 +0100
---- src/version.c 2013-01-30 16:25:36.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 792,
- /**/
-
---
-Trees moving back and forth is what makes the wind blow.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.793
-Fcc: 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.793 (after 7.3.792)
-Problem: New interactive :substutite behavior is not tested.
-Solution: Add tests. (Christian Brabandt)
-Files: src/testdir/test80.in, src/testdir/test80.ok
-
-
-*** ../vim-7.3.792/src/testdir/test80.in 2011-06-19 04:31:54.000000000 +0200
---- src/testdir/test80.in 2013-01-30 17:00:54.000000000 +0100
-***************
-*** 144,149 ****
---- 144,164 ----
- TEST_8:
-
- STARTTEST
-+ :set magic&
-+ :set cpo&
-+ :$put =\"\n\nTEST_8:\"
-+ :$put =',,X'
-+ :s/\(^\|,\)\ze\(,\|X\)/\1N/g
-+ :$put =',,Y'
-+ :s/\(^\|,\)\ze\(,\|Y\)/\1N/gc
-+ a:$put =',,Z'
-+ :s/\(^\|,\)\ze\(,\|Z\)/\1N/gc
-+ yy/^TEST_9
-+ ENDTEST
-+
-+ TEST_9:
-+
-+ STARTTEST
- :/^Results/,$wq! test.out
- ENDTEST
-
-*** ../vim-7.3.792/src/testdir/test80.ok 2011-06-19 04:31:54.000000000 +0200
---- src/testdir/test80.ok 2013-01-30 16:46:39.000000000 +0100
-***************
-*** 99,101 ****
---- 99,107 ----
- A A
- B
- B
-+
-+
-+ TEST_8:
-+ N,,NX
-+ N,,NY
-+ N,,NZ
-*** ../vim-7.3.792/src/version.c 2013-01-30 16:30:19.000000000 +0100
---- src/version.c 2013-01-30 17:01:33.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 793,
- /**/
-
---
-The early bird gets the worm. The second mouse gets the cheese.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.794
-Fcc: 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.794
-Problem: Tiny build fails. (Tony Mechelynck)
-Solution: Adjust #ifdefs.
-Files: src/charset.c
-
-
-*** ../vim-7.3.793/src/charset.c 2013-01-23 15:53:08.000000000 +0100
---- src/charset.c 2013-01-30 17:08:05.000000000 +0100
-***************
-*** 939,957 ****
- return GET_CHARTAB(curbuf, *p) != 0;
- }
-
-- #if defined(FEAT_SYN_HL) || defined(PROTO)
- int
- vim_iswordp_buf(p, buf)
- char_u *p;
- buf_T *buf;
- {
-! # ifdef FEAT_MBYTE
- if (has_mbyte && MB_BYTE2LEN(*p) > 1)
- return mb_get_class(p) >= 2;
-! # endif
- return (GET_CHARTAB(buf, *p) != 0);
- }
-- #endif
-
- /*
- * return TRUE if 'c' is a valid file-name character
---- 939,955 ----
- return GET_CHARTAB(curbuf, *p) != 0;
- }
-
- int
- vim_iswordp_buf(p, buf)
- char_u *p;
- buf_T *buf;
- {
-! #ifdef FEAT_MBYTE
- if (has_mbyte && MB_BYTE2LEN(*p) > 1)
- return mb_get_class(p) >= 2;
-! #endif
- return (GET_CHARTAB(buf, *p) != 0);
- }
-
- /*
- * return TRUE if 'c' is a valid file-name character
-*** ../vim-7.3.793/src/version.c 2013-01-30 17:03:25.000000000 +0100
---- src/version.c 2013-01-30 17:28:04.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 794,
- /**/
-
---
-LAUNCELOT: I am, sir. I am a Knight of King Arthur.
-FATHER: 'Mm ... very nice castle, Camelot ... very good pig country....
- "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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.795
-Fcc: 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.795
-Problem: MzScheme does not build with tiny features.
-Solution: Add #ifdefs. Also add UNUSED to avoid warnings. And change
- library ordering.
-Files: src/if_mzsch.c, src/Makefile
-
-
-*** ../vim-7.3.794/src/if_mzsch.c 2013-01-30 14:55:35.000000000 +0100
---- src/if_mzsch.c 2013-01-30 17:23:07.000000000 +0100
-***************
-*** 1483,1489 ****
-
- /* (eval {expr-string}) */
- static Scheme_Object *
-! vim_eval(void *data, int argc, Scheme_Object **argv)
- {
- #ifdef FEAT_EVAL
- Vim_Prim *prim = (Vim_Prim *)data;
---- 1483,1489 ----
-
- /* (eval {expr-string}) */
- static Scheme_Object *
-! vim_eval(void *data UNUSED, int argc UNUSED, Scheme_Object **argv UNUSED)
- {
- #ifdef FEAT_EVAL
- Vim_Prim *prim = (Vim_Prim *)data;
-***************
-*** 1686,1695 ****
- static Scheme_Object *
- get_window_count(void *data UNUSED, int argc UNUSED, Scheme_Object **argv UNUSED)
- {
-- win_T *w;
- int n = 0;
-
- for (w = firstwin; w != NULL; w = w->w_next)
- ++n;
- return scheme_make_integer(n);
- }
---- 1686,1697 ----
- static Scheme_Object *
- get_window_count(void *data UNUSED, int argc UNUSED, Scheme_Object **argv UNUSED)
- {
- int n = 0;
-+ #ifdef FEAT_WINDOWS
-+ win_T *w;
-
- for (w = firstwin; w != NULL; w = w->w_next)
-+ #endif
- ++n;
- return scheme_make_integer(n);
- }
-***************
-*** 1701,1712 ****
- Vim_Prim *prim = (Vim_Prim *)data;
- vim_mz_buffer *buf;
- Scheme_Object *list;
-! win_T *w;
-
- buf = get_buffer_arg(prim->name, 0, argc, argv);
- list = scheme_null;
-
-! for (w = firstwin; w != NULL; w = w->w_next)
- if (w->w_buffer == buf->buf)
- {
- list = scheme_make_pair(window_new(w), list);
---- 1703,1716 ----
- Vim_Prim *prim = (Vim_Prim *)data;
- vim_mz_buffer *buf;
- Scheme_Object *list;
-! win_T *w = firstwin;
-
- buf = get_buffer_arg(prim->name, 0, argc, argv);
- list = scheme_null;
-
-! #ifdef FEAT_WINDOWS
-! for ( ; w != NULL; w = w->w_next)
-! #endif
- if (w->w_buffer == buf->buf)
- {
- list = scheme_make_pair(window_new(w), list);
-***************
-*** 1755,1768 ****
-
- /* (get-win-num [window]) */
- static Scheme_Object *
-! get_window_num(void *data, int argc, Scheme_Object **argv)
- {
- Vim_Prim *prim = (Vim_Prim *)data;
- win_T *win = get_window_arg(prim->name, 0, argc, argv)->win;
-- int nr = 1;
- win_T *wp;
-
- for (wp = firstwin; wp != win; wp = wp->w_next)
- ++nr;
-
- return scheme_make_integer(nr);
---- 1759,1774 ----
-
- /* (get-win-num [window]) */
- static Scheme_Object *
-! get_window_num(void *data UNUSED, int argc UNUSED, Scheme_Object **argv UNUSED)
- {
-+ int nr = 1;
-+ #ifdef FEAT_WINDOWS
- Vim_Prim *prim = (Vim_Prim *)data;
- win_T *win = get_window_arg(prim->name, 0, argc, argv)->win;
- win_T *wp;
-
- for (wp = firstwin; wp != win; wp = wp->w_next)
-+ #endif
- ++nr;
-
- return scheme_make_integer(nr);
-***************
-*** 1773,1786 ****
- get_window_by_num(void *data, int argc, Scheme_Object **argv)
- {
- Vim_Prim *prim = (Vim_Prim *)data;
-! win_T *win;
- int fnum;
-
- fnum = SCHEME_INT_VAL(GUARANTEE_INTEGER(prim->name, 0));
- if (fnum < 1)
- scheme_signal_error(_("window index is out of range"));
-
-! for (win = firstwin; win != NULL; win = win->w_next, --fnum)
- if (fnum == 1) /* to be 1-based */
- return window_new(win);
-
---- 1779,1794 ----
- get_window_by_num(void *data, int argc, Scheme_Object **argv)
- {
- Vim_Prim *prim = (Vim_Prim *)data;
-! win_T *win = firstwin;
- int fnum;
-
- fnum = SCHEME_INT_VAL(GUARANTEE_INTEGER(prim->name, 0));
- if (fnum < 1)
- scheme_signal_error(_("window index is out of range"));
-
-! #ifdef FEAT_WINDOWS
-! for ( ; win != NULL; win = win->w_next, --fnum)
-! #endif
- if (fnum == 1) /* to be 1-based */
- return window_new(win);
-
-*** ../vim-7.3.794/src/Makefile 2012-11-20 17:03:23.000000000 +0100
---- src/Makefile 2013-01-30 17:34:55.000000000 +0100
-***************
-*** 1345,1350 ****
---- 1345,1352 ----
-
- DEPEND_CFLAGS = -DPROTO -DDEPEND -DFEAT_GUI $(LINT_CFLAGS)
-
-+ # Note: MZSCHEME_LIBS must come before LIBS, because LIBS adds -lm which is
-+ # needed by racket.
- ALL_LIB_DIRS = $(GUI_LIBS_DIR) $(X_LIBS_DIR)
- ALL_LIBS = \
- $(GUI_LIBS1) \
-***************
-*** 1353,1362 ****
- $(X_PRE_LIBS) \
- $(X_LIBS) \
- $(X_EXTRA_LIBS) \
- $(LIBS) \
- $(EXTRA_LIBS) \
- $(LUA_LIBS) \
-- $(MZSCHEME_LIBS) \
- $(PERL_LIBS) \
- $(PYTHON_LIBS) \
- $(PYTHON3_LIBS) \
---- 1355,1364 ----
- $(X_PRE_LIBS) \
- $(X_LIBS) \
- $(X_EXTRA_LIBS) \
-+ $(MZSCHEME_LIBS) \
- $(LIBS) \
- $(EXTRA_LIBS) \
- $(LUA_LIBS) \
- $(PERL_LIBS) \
- $(PYTHON_LIBS) \
- $(PYTHON3_LIBS) \
-*** ../vim-7.3.794/src/version.c 2013-01-30 17:30:14.000000000 +0100
---- src/version.c 2013-01-30 17:38:25.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 795,
- /**/
-
---
-GUEST: He's killed the best man!
-SECOND GUEST: (holding a limp WOMAN) He's killed my auntie.
-FATHER: No, please! This is supposed to be a happy occasion! Let's
- not bicker and argue about who killed who ...
- "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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.796
-Fcc: 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.796
-Problem: "/[^\n]" does match at a line break.
-Solution: Make it do the same as "/.". (Christian Brabandt)
-Files: src/regexp.c, src/testdir/test79.in, src/testdir/test79.ok
-
-
-*** ../vim-7.3.795/src/regexp.c 2013-01-30 13:59:31.000000000 +0100
---- src/regexp.c 2013-01-30 18:16:12.000000000 +0100
-***************
-*** 2397,2409 ****
- /* '\n' in range: also match NL */
- if (ret != JUST_CALC_SIZE)
- {
-! if (*ret == ANYBUT)
-! *ret = ANYBUT + ADD_NL;
-! else if (*ret == ANYOF)
- *ret = ANYOF + ADD_NL;
- /* else: must have had a \n already */
- }
-- *flagp |= HASNL;
- regparse++;
- startc = -1;
- }
---- 2397,2411 ----
- /* '\n' in range: also match NL */
- if (ret != JUST_CALC_SIZE)
- {
-! /* Using \n inside [^] does not change what
-! * matches. "[^\n]" is the same as ".". */
-! if (*ret == ANYOF)
-! {
- *ret = ANYOF + ADD_NL;
-+ *flagp |= HASNL;
-+ }
- /* else: must have had a \n already */
- }
- regparse++;
- startc = -1;
- }
-***************
-*** 4344,4349 ****
---- 4346,4352 ----
- break; /* Matched with EOW */
-
- case ANY:
-+ /* ANY does not match new lines. */
- if (c == NUL)
- status = RA_NOMATCH;
- else
-*** ../vim-7.3.795/src/testdir/test79.in 2011-06-19 04:31:54.000000000 +0200
---- src/testdir/test79.in 2013-01-30 17:56:11.000000000 +0100
-***************
-*** 201,211 ****
---- 201,215 ----
- /^TEST/
- j:s/A./\=submatch(0)/
- j:s/B./\=submatch(0)/
-+ /^Q$
-+ :s/Q[^\n]Q/\=submatch(0)."foobar"/
- ENDTEST
-
- TEST_7:
- A A
- B
-+ Q
-+ Q
-
- STARTTEST
- :g/^STARTTEST/.,/^ENDTEST/d
-*** ../vim-7.3.795/src/testdir/test79.ok 2011-06-19 04:31:54.000000000 +0200
---- src/testdir/test79.ok 2013-01-30 18:05:49.000000000 +0100
-***************
-*** 115,118 ****
---- 115,120 ----
- A
- B
- B
-+ Q
-+ Q
-
-*** ../vim-7.3.795/src/version.c 2013-01-30 17:41:43.000000000 +0100
---- src/version.c 2013-01-30 18:19:22.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 796,
- /**/
-
---
-FATHER: We are here today to witness the union of two young people in the
- joyful bond of the holy wedlock. Unfortunately, one of them, my son
- Herbert, has just fallen to his death.
- [Murmurs from CROWD; the BRIDE smiles with relief, coughs.]
- "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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.797
-Fcc: 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.797 (after 7.3.792)
-Problem: Compiler warning for size_t to int conversion. (Skeept)
-Solution: Add type casts.
-Files: src/ex_cmds.c
-
-
-*** ../vim-7.3.796/src/ex_cmds.c 2013-01-30 16:30:19.000000000 +0100
---- src/ex_cmds.c 2013-01-30 21:52:17.000000000 +0100
-***************
-*** 4764,4771 ****
- * substitute may have inserted or
- * deleted characters before the
- * cursor. */
-! len_change = STRLEN(new_line)
-! - STRLEN(orig_line);
- curwin->w_cursor.col += len_change;
- ml_replace(lnum, new_line, FALSE);
- }
---- 4764,4771 ----
- * substitute may have inserted or
- * deleted characters before the
- * cursor. */
-! len_change = (int)STRLEN(new_line)
-! - (int)STRLEN(orig_line);
- curwin->w_cursor.col += len_change;
- ml_replace(lnum, new_line, FALSE);
- }
-*** ../vim-7.3.796/src/version.c 2013-01-30 21:55:22.000000000 +0100
---- src/version.c 2013-01-30 21:53:17.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 797,
- /**/
-
---
- [SIR LAUNCELOT runs back up the stairs, grabs a rope
- of the wall and swings out over the heads of the CROWD in a
- swashbuckling manner towards a large window. He stops just short
- of the window and is left swing pathetically back and forth.]
-LAUNCELOT: Excuse me ... could somebody give me a push ...
- "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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.798
-Fcc: 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.798 (after 7.3.791)
-Problem: MzScheme: circular list does not work correctly.
-Solution: Separate Mac-specific code from generic code. (Sergey Khorev)
-Files: src/if_mzsch.c, src/testdir/test70.in
-
-
-*** ../vim-7.3.797/src/if_mzsch.c 2013-01-30 17:41:43.000000000 +0100
---- src/if_mzsch.c 2013-01-31 21:00:02.000000000 +0100
-***************
-*** 965,970 ****
---- 965,971 ----
- #ifdef MZSCHEME_COLLECTS
- /* setup 'current-library-collection-paths' parameter */
- # if MZSCHEME_VERSION_MAJOR >= 299
-+ # ifdef MACOS
- {
- Scheme_Object *coll_byte_string = NULL;
- Scheme_Object *coll_char_string = NULL;
-***************
-*** 985,990 ****
---- 986,1021 ----
- MZ_GC_CHECK();
- MZ_GC_UNREG();
- }
-+ # else
-+ {
-+ Scheme_Object *coll_byte_string = NULL;
-+ Scheme_Object *coll_char_string = NULL;
-+ Scheme_Object *coll_path = NULL;
-+ Scheme_Object *coll_pair = NULL;
-+ Scheme_Config *config = NULL;
-+
-+ MZ_GC_DECL_REG(5);
-+ MZ_GC_VAR_IN_REG(0, coll_byte_string);
-+ MZ_GC_VAR_IN_REG(1, coll_char_string);
-+ MZ_GC_VAR_IN_REG(2, coll_path);
-+ MZ_GC_VAR_IN_REG(3, coll_pair);
-+ MZ_GC_VAR_IN_REG(4, config);
-+ MZ_GC_REG();
-+ coll_byte_string = scheme_make_byte_string(MZSCHEME_COLLECTS);
-+ MZ_GC_CHECK();
-+ coll_char_string = scheme_byte_string_to_char_string(coll_byte_string);
-+ MZ_GC_CHECK();
-+ coll_path = scheme_char_string_to_path(coll_char_string);
-+ MZ_GC_CHECK();
-+ coll_pair = scheme_make_pair(coll_path, scheme_null);
-+ MZ_GC_CHECK();
-+ config = scheme_current_config();
-+ MZ_GC_CHECK();
-+ scheme_set_param(config, MZCONFIG_COLLECTION_PATHS, coll_pair);
-+ MZ_GC_CHECK();
-+ MZ_GC_UNREG();
-+ }
-+ # endif
- # else
- {
- Scheme_Object *coll_string = NULL;
-*** ../vim-7.3.797/src/testdir/test70.in 2013-01-30 14:55:35.000000000 +0100
---- src/testdir/test70.in 2013-01-31 21:00:06.000000000 +0100
-***************
-*** 38,45 ****
- :" circular list (at the same time test lists containing lists)
- :mz (set-car! (cddr l) l)
- :let l2 = mzeval("h")["list"]
-! :" bug: this returns item2, but it should be l2
-! :if l2[2] == "item2"
- :let res = "OK"
- :else
- :let res = "FAILED: " . l2[2]
---- 38,44 ----
- :" circular list (at the same time test lists containing lists)
- :mz (set-car! (cddr l) l)
- :let l2 = mzeval("h")["list"]
-! :if l2[2] == l2
- :let res = "OK"
- :else
- :let res = "FAILED: " . l2[2]
-*** ../vim-7.3.797/src/version.c 2013-01-30 21:55:45.000000000 +0100
---- src/version.c 2013-01-31 21:01:48.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 798,
- /**/
-
---
-Be nice to your kids... they'll be the ones choosing your nursing home.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.799
-Fcc: 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.799
-Problem: The color column is not correct when entering a buffer. (Ben
- Fritz)
-Solution: Call check_colorcolumn() if 'textwidth' changed. (Christian
- Brabandt)
-Files: src/buffer.c
-
-
-*** ../vim-7.3.798/src/buffer.c 2012-11-20 12:16:54.000000000 +0100
---- src/buffer.c 2013-02-06 11:52:54.000000000 +0100
-***************
-*** 1441,1446 ****
---- 1441,1448 ----
- enter_buffer(buf)
- buf_T *buf;
- {
-+ long old_tw = curbuf->b_p_tw;
-+
- /* Copy buffer and window local option values. Not for a help buffer. */
- buf_copy_options(buf, BCO_ENTER | BCO_NOHELP);
- if (!buf->b_help)
-***************
-*** 1464,1469 ****
---- 1466,1473 ----
-
- #ifdef FEAT_SYN_HL
- curwin->w_s = &(buf->b_s);
-+ if (old_tw != buf->b_p_tw)
-+ check_colorcolumn(curwin);
- #endif
-
- /* Cursor on first line by default. */
-*** ../vim-7.3.798/src/version.c 2013-01-31 21:09:10.000000000 +0100
---- src/version.c 2013-02-06 11:55:06.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 799,
- /**/
-
---
-I wonder, do vegetarians eat fruit bats?
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.800
-Fcc: 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.800
-Problem: The " mark is not adjusted when inserting lines. (Roland Eggner)
-Solution: Adjust the line number. (Christian Brabandt)
-Files: src/mark.c
-
-
-*** ../vim-7.3.799/src/mark.c 2013-01-23 15:53:08.000000000 +0100
---- src/mark.c 2013-02-06 12:29:46.000000000 +0100
-***************
-*** 1047,1052 ****
---- 1047,1053 ----
- #ifdef FEAT_WINDOWS
- tabpage_T *tab;
- #endif
-+ static pos_T initpos = INIT_POS_T(1, 0, 0);
-
- if (line2 < line1 && amount_after == 0L) /* nothing to do */
- return;
-***************
-*** 1072,1077 ****
---- 1073,1083 ----
- /* last change position */
- one_adjust(&(curbuf->b_last_change.lnum));
-
-+ /* last cursor position, if it was set */
-+ if (!equalpos(curbuf->b_last_cursor, initpos))
-+ one_adjust(&(curbuf->b_last_cursor.lnum));
-+
-+
- #ifdef FEAT_JUMPLIST
- /* list of change positions */
- for (i = 0; i < curbuf->b_changelistlen; ++i)
-*** ../vim-7.3.799/src/version.c 2013-02-06 12:14:36.000000000 +0100
---- src/version.c 2013-02-06 12:31:15.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 800,
- /**/
-
---
-ARTHUR: What does it say?
-BROTHER MAYNARD: It reads ... "Here may be found the last words of Joseph of
- Aramathea." "He who is valorous and pure of heart may find
- the Holy Grail in the aaaaarrrrrrggghhh..."
-ARTHUR: What?
-BROTHER MAYNARD: "The Aaaaarrrrrrggghhh..."
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.801
-Fcc: 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.801
-Problem: ":window set nu?" displays the cursor line. (Nazri Ramliy)
-Solution: Do not update the cursor line when conceallevel is zero or the
- screen has scrolled. (partly by Christian Brabandt)
-Files: src/window.c
-
-
-*** ../vim-7.3.800/src/window.c 2013-01-17 13:59:56.000000000 +0100
---- src/window.c 2013-02-06 13:28:10.000000000 +0100
-***************
-*** 3991,3999 ****
-
- #ifdef FEAT_CONCEAL
- /* Conceal cursor line in previous window, unconceal in current window. */
-! if (win_valid(owp))
- update_single_line(owp, owp->w_cursor.lnum);
-! update_single_line(curwin, curwin->w_cursor.lnum);
- #endif
- }
-
---- 3991,4000 ----
-
- #ifdef FEAT_CONCEAL
- /* Conceal cursor line in previous window, unconceal in current window. */
-! if (win_valid(owp) && owp->w_p_cole > 0 && !msg_scrolled)
- update_single_line(owp, owp->w_cursor.lnum);
-! if (curwin->w_p_cole > 0 && !msg_scrolled)
-! need_cursor_line_redraw = TRUE;
- #endif
- }
-
-*** ../vim-7.3.800/src/version.c 2013-02-06 12:33:15.000000000 +0100
---- src/version.c 2013-02-06 13:32:28.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 801,
- /**/
-
---
-ARTHUR: But if he was dying, he wouldn't bother to carve
- "Aaaaarrrrrrggghhh". He'd just say it.
-BROTHER MAYNARD: It's down there carved in stone.
-GALAHAD: Perhaps he was dictating.
- "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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.802
-Fcc: 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.802
-Problem: After setting 'isk' to a value ending in a comma appending to the
- option fails.
-Solution: Disallow a trailing comma for 'isk' and similar options.
-Files: src/charset.c
-
-
-*** ../vim-7.3.801/src/charset.c 2013-01-30 17:30:14.000000000 +0100
---- src/charset.c 2013-02-06 16:20:01.000000000 +0100
-***************
-*** 284,290 ****
---- 284,295 ----
- }
- ++c;
- }
-+
-+ c = *p;
- p = skip_to_option_part(p);
-+ if (c == ',' && *p == NUL)
-+ /* Trailing comma is not allowed. */
-+ return FAIL;
- }
- }
- chartab_initialized = TRUE;
-*** ../vim-7.3.801/src/version.c 2013-02-06 13:37:58.000000000 +0100
---- src/version.c 2013-02-06 16:21:18.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 802,
- /**/
-
---
-Dreams are free, but there's a small charge for alterations.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.803
-Fcc: 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.803 (after 7.3.792)
-Problem: Substitute with confirmation and then "q" does not replace
- anything. (John McGowan)
-Solution: Do not break the loop, skip to the end.
-Files: src/ex_cmds.c, src/testdir/test80.in, src/testdir/test80.ok
-
-
-*** ../vim-7.3.802/src/ex_cmds.c 2013-01-30 21:55:45.000000000 +0100
---- src/ex_cmds.c 2013-02-06 18:13:52.000000000 +0100
-***************
-*** 4878,4884 ****
- goto skip;
- }
- if (got_quit)
-! break;
- }
-
- /* Move the cursor to the start of the match, so that we can
---- 4878,4884 ----
- goto skip;
- }
- if (got_quit)
-! goto skip;
- }
-
- /* Move the cursor to the start of the match, so that we can
-*** ../vim-7.3.802/src/testdir/test80.in 2013-01-30 17:03:25.000000000 +0100
---- src/testdir/test80.in 2013-02-06 18:21:07.000000000 +0100
-***************
-*** 153,164 ****
- :s/\(^\|,\)\ze\(,\|Y\)/\1N/gc
- a:$put =',,Z'
- :s/\(^\|,\)\ze\(,\|Z\)/\1N/gc
-! yy/^TEST_9
- ENDTEST
-
- TEST_9:
-
- STARTTEST
- :/^Results/,$wq! test.out
- ENDTEST
-
---- 153,175 ----
- :s/\(^\|,\)\ze\(,\|Y\)/\1N/gc
- a:$put =',,Z'
- :s/\(^\|,\)\ze\(,\|Z\)/\1N/gc
-! yy/^TEST_9:
- ENDTEST
-
- TEST_9:
-
- STARTTEST
-+ :set magic&
-+ :set cpo&
-+ :$put =\"\n\nTEST_9:\"
-+ :$put ='xxx'
-+ :s/x/X/gc
-+ yyq/^TEST_10:
-+ ENDTEST
-+
-+ TEST_10:
-+
-+ STARTTEST
- :/^Results/,$wq! test.out
- ENDTEST
-
-*** ../vim-7.3.802/src/testdir/test80.ok 2013-01-30 17:03:25.000000000 +0100
---- src/testdir/test80.ok 2013-02-06 18:21:16.000000000 +0100
-***************
-*** 105,107 ****
---- 105,111 ----
- N,,NX
- N,,NY
- N,,NZ
-+
-+
-+ TEST_9:
-+ XXx
-*** ../vim-7.3.802/src/version.c 2013-02-06 16:26:20.000000000 +0100
---- src/version.c 2013-02-06 18:14:42.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 803,
- /**/
-
---
-To the optimist, the glass is half full.
-To the pessimist, the glass is half empty.
-To the engineer, the glass is twice as big as it needs to be.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.804
-Fcc: 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.804 (after 7.3.799)
-Problem: Compiler warning for tiny build. (Tony Mechelynck)
-Solution: Add #ifdefs around variable.
-Files: src/buffer.c
-
-
-*** ../vim-7.3.803/src/buffer.c 2013-02-06 12:14:36.000000000 +0100
---- src/buffer.c 2013-02-06 18:42:05.000000000 +0100
-***************
-*** 1441,1447 ****
---- 1441,1449 ----
- enter_buffer(buf)
- buf_T *buf;
- {
-+ #ifdef FEAT_SYN_HL
- long old_tw = curbuf->b_p_tw;
-+ #endif
-
- /* Copy buffer and window local option values. Not for a help buffer. */
- buf_copy_options(buf, BCO_ENTER | BCO_NOHELP);
-*** ../vim-7.3.803/src/version.c 2013-02-06 18:23:58.000000000 +0100
---- src/version.c 2013-02-06 18:42:59.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 804,
- /**/
-
---
-Sorry, no fortune today.
-
- /// 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 ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.805
-Fcc: 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.805
-Problem: Lua version 5.2 is not detected properly on Arch Linux.
-Solution: Adjust autoconf. (lilydjwg)
-Files: src/configure.in, src/auto/configure
-
-
-*** ../vim-7.3.804/src/configure.in 2013-01-30 14:55:34.000000000 +0100
---- src/configure.in 2013-02-06 19:22:17.000000000 +0100
-***************
-*** 496,508 ****
- else
- dnl Determine the SONAME for the current version, but fallback to
- dnl liblua${vi_cv_version_lua}.so if no SONAME-versioned file is found.
-! for i in 0 1 2 3 4 5 6 7 8 9; do
-! if test -f "${vi_cv_path_lua_pfx}/lib/liblua${vi_cv_version_lua}.so.$i"; then
-! LUA_SONAME=".$i"
-! break
-! fi
- done
-- vi_cv_dll_name_lua="liblua${vi_cv_version_lua}.so$LUA_SONAME"
- fi
- AC_DEFINE(DYNAMIC_LUA)
- LUA_LIBS=""
---- 496,510 ----
- else
- dnl Determine the SONAME for the current version, but fallback to
- dnl liblua${vi_cv_version_lua}.so if no SONAME-versioned file is found.
-! for LUA_SOVER in "${vi_cv_version_lua}.so" ".so.${vi_cv_version_lua}"; do
-! for i in 0 1 2 3 4 5 6 7 8 9; do
-! if test -f "${vi_cv_path_lua_pfx}/lib/liblua${LUA_SOVER}.$i"; then
-! LUA_SONAME=".$i"
-! break
-! fi
-! done
-! vi_cv_dll_name_lua="liblua${LUA_SOVER}$LUA_SONAME"
- done
- fi
- AC_DEFINE(DYNAMIC_LUA)
- LUA_LIBS=""
-*** ../vim-7.3.804/src/auto/configure 2013-01-30 14:55:34.000000000 +0100
---- src/auto/configure 2013-02-06 19:24:11.000000000 +0100
-***************
-*** 4737,4749 ****
- if test -f "${vi_cv_path_lua_pfx}/bin/cyglua-${vi_cv_version_lua}.dll"; then
- vi_cv_dll_name_lua="cyglua-${vi_cv_version_lua}.dll"
- else
-! for i in 0 1 2 3 4 5 6 7 8 9; do
-! if test -f "${vi_cv_path_lua_pfx}/lib/liblua${vi_cv_version_lua}.so.$i"; then
-! LUA_SONAME=".$i"
-! break
-! fi
- done
-- vi_cv_dll_name_lua="liblua${vi_cv_version_lua}.so$LUA_SONAME"
- fi
- $as_echo "#define DYNAMIC_LUA 1" >>confdefs.h
-
---- 4737,4751 ----
- if test -f "${vi_cv_path_lua_pfx}/bin/cyglua-${vi_cv_version_lua}.dll"; then
- vi_cv_dll_name_lua="cyglua-${vi_cv_version_lua}.dll"
- else
-! for LUA_SOVER in "${vi_cv_version_lua}.so" ".so.${vi_cv_version_lua}"; do
-! for i in 0 1 2 3 4 5 6 7 8 9; do
-! if test -f "${vi_cv_path_lua_pfx}/lib/liblua${LUA_SOVER}.$i"; then
-! LUA_SONAME=".$i"
-! break
-! fi
-! done
-! vi_cv_dll_name_lua="liblua${LUA_SOVER}$LUA_SONAME"
- done
- fi
- $as_echo "#define DYNAMIC_LUA 1" >>confdefs.h
-
-*** ../vim-7.3.804/src/version.c 2013-02-06 18:44:57.000000000 +0100
---- src/version.c 2013-02-06 19:26:37.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 805,
- /**/
-
---
-Permission is granted to read this message out aloud on Kings Cross Road,
-London, under the condition that the orator is properly dressed.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.806
-Fcc: 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.806
-Problem: Compiler warnings in Perl code when building with Visual studio
- 2012. (skeept)
-Solution: Add type casts. (Christian Brabandt, 2013 Jan 30)
-Files: src/if_perl.xs
-
-
-*** ../vim-7.3.805/src/if_perl.xs 2012-09-21 12:50:44.000000000 +0200
---- src/if_perl.xs 2013-02-06 19:55:12.000000000 +0100
-***************
-*** 1048,1054 ****
- {
- SV *sv = ST(i);
- if (SvIOK(sv))
-! b = SvIV(ST(i));
- else
- {
- char_u *pat;
---- 1048,1054 ----
- {
- SV *sv = ST(i);
- if (SvIOK(sv))
-! b = (int) SvIV(ST(i));
- else
- {
- char_u *pat;
-***************
-*** 1091,1097 ****
- {
- for (i = 0; i < items; i++)
- {
-! w = SvIV(ST(i));
- vimwin = win_find_nr(w);
- if (vimwin)
- XPUSHs(newWINrv(newSV(0), vimwin));
---- 1091,1097 ----
- {
- for (i = 0; i < items; i++)
- {
-! w = (int) SvIV(ST(i));
- vimwin = win_find_nr(w);
- if (vimwin)
- XPUSHs(newWINrv(newSV(0), vimwin));
-***************
-*** 1154,1161 ****
-
- if (!win_valid(win))
- win = curwin;
-! lnum = SvIV(ST(1));
-! col = SvIV(ST(2));
- win->w_cursor.lnum = lnum;
- win->w_cursor.col = col;
- check_cursor(); /* put cursor on an existing line */
---- 1154,1161 ----
-
- if (!win_valid(win))
- win = curwin;
-! lnum = (int) SvIV(ST(1));
-! col = (int) SvIV(ST(2));
- win->w_cursor.lnum = lnum;
- win->w_cursor.col = col;
- check_cursor(); /* put cursor on an existing line */
-***************
-*** 1216,1222 ****
- {
- for (i = 1; i < items; i++)
- {
-! lnum = SvIV(ST(i));
- if (lnum > 0 && lnum <= vimbuf->b_ml.ml_line_count)
- {
- line = ml_get_buf(vimbuf, lnum, FALSE);
---- 1216,1222 ----
- {
- for (i = 1; i < items; i++)
- {
-! lnum = (long) SvIV(ST(i));
- if (lnum > 0 && lnum <= vimbuf->b_ml.ml_line_count)
- {
- line = ml_get_buf(vimbuf, lnum, FALSE);
-***************
-*** 1239,1245 ****
- if (items < 3)
- croak("Usage: VIBUF::Set(vimbuf, lnum, @lines)");
-
-! lnum = SvIV(ST(1));
- for(i = 2; i < items; i++, lnum++)
- {
- line = SvPV(ST(i),PL_na);
---- 1239,1245 ----
- if (items < 3)
- croak("Usage: VIBUF::Set(vimbuf, lnum, @lines)");
-
-! lnum = (long) SvIV(ST(1));
- for(i = 2; i < items; i++, lnum++)
- {
- line = SvPV(ST(i),PL_na);
-***************
-*** 1274,1286 ****
- {
- if (items == 2)
- {
-! lnum = SvIV(ST(1));
- count = 1;
- }
- else if (items == 3)
- {
-! lnum = SvIV(ST(1));
-! count = 1 + SvIV(ST(2)) - lnum;
- if (count == 0)
- count = 1;
- if (count < 0)
---- 1274,1286 ----
- {
- if (items == 2)
- {
-! lnum = (long) SvIV(ST(1));
- count = 1;
- }
- else if (items == 3)
- {
-! lnum = (long) SvIV(ST(1));
-! count = (long) 1 + SvIV(ST(2)) - lnum;
- if (count == 0)
- count = 1;
- if (count < 0)
-***************
-*** 1331,1337 ****
- if (items < 3)
- croak("Usage: VIBUF::Append(vimbuf, lnum, @lines)");
-
-! lnum = SvIV(ST(1));
- for (i = 2; i < items; i++, lnum++)
- {
- line = SvPV(ST(i),PL_na);
---- 1331,1337 ----
- if (items < 3)
- croak("Usage: VIBUF::Append(vimbuf, lnum, @lines)");
-
-! lnum = (long) SvIV(ST(1));
- for (i = 2; i < items; i++, lnum++)
- {
- line = SvPV(ST(i),PL_na);
-*** ../vim-7.3.805/src/version.c 2013-02-06 19:49:38.000000000 +0100
---- src/version.c 2013-02-06 19:58:16.000000000 +0100
-***************
-*** 727,728 ****
---- 727,730 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 806,
- /**/
-
---
-BRIDGEKEEPER: What is your favorite colour?
-LAUNCELOT: Blue.
-BRIDGEKEEPER: Right. Off you go.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///