diff --git a/7.3.647 b/7.3.647 new file mode 100644 index 0000000..d1c524f --- /dev/null +++ b/7.3.647 @@ -0,0 +1,178 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.647 +Fcc: outbox +From: Bram Moolenaar +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, ®match) == 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, ®match) == 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(®match, 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(®match, 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 /// diff --git a/7.3.648 b/7.3.648 new file mode 100644 index 0000000..f51d99d --- /dev/null +++ b/7.3.648 @@ -0,0 +1,131 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.648 +Fcc: outbox +From: Bram Moolenaar +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 /// diff --git a/7.3.649 b/7.3.649 new file mode 100644 index 0000000..50c7ce8 --- /dev/null +++ b/7.3.649 @@ -0,0 +1,68 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.649 +Fcc: outbox +From: Bram Moolenaar +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 /// diff --git a/7.3.650 b/7.3.650 new file mode 100644 index 0000000..0937c12 --- /dev/null +++ b/7.3.650 @@ -0,0 +1,53 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.650 +Fcc: outbox +From: Bram Moolenaar +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 /// diff --git a/7.3.651 b/7.3.651 new file mode 100644 index 0000000..0a72424 --- /dev/null +++ b/7.3.651 @@ -0,0 +1,99 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.651 +Fcc: outbox +From: Bram Moolenaar +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 /// diff --git a/7.3.652 b/7.3.652 new file mode 100644 index 0000000..e05a9da --- /dev/null +++ b/7.3.652 @@ -0,0 +1,72 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.652 +Fcc: outbox +From: Bram Moolenaar +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 /// diff --git a/7.3.653 b/7.3.653 new file mode 100644 index 0000000..7a0691e --- /dev/null +++ b/7.3.653 @@ -0,0 +1,280 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.653 +Fcc: outbox +From: Bram Moolenaar +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 +! # 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 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 /// diff --git a/7.3.654 b/7.3.654 new file mode 100644 index 0000000..dca5aa7 --- /dev/null +++ b/7.3.654 @@ -0,0 +1,150 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.654 +Fcc: outbox +From: Bram Moolenaar +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 /// diff --git a/7.3.655 b/7.3.655 new file mode 100644 index 0000000..fc656eb Binary files /dev/null and b/7.3.655 differ diff --git a/7.3.656 b/7.3.656 new file mode 100644 index 0000000..a9d768b --- /dev/null +++ b/7.3.656 @@ -0,0 +1,84 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.656 +Fcc: outbox +From: Bram Moolenaar +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 /// diff --git a/7.3.657 b/7.3.657 new file mode 100644 index 0000000..158acbd --- /dev/null +++ b/7.3.657 @@ -0,0 +1,195 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.657 +Fcc: outbox +From: Bram Moolenaar +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 /// diff --git a/7.3.658 b/7.3.658 new file mode 100644 index 0000000..eeec468 --- /dev/null +++ b/7.3.658 @@ -0,0 +1,159 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.658 +Fcc: outbox +From: Bram Moolenaar +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 /// diff --git a/7.3.659 b/7.3.659 new file mode 100644 index 0000000..2a30e67 --- /dev/null +++ b/7.3.659 @@ -0,0 +1,295 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.659 +Fcc: outbox +From: Bram Moolenaar +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 < +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 /// diff --git a/7.3.661 b/7.3.661 new file mode 100644 index 0000000..3193e01 --- /dev/null +++ b/7.3.661 @@ -0,0 +1,160 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.661 +Fcc: outbox +From: Bram Moolenaar +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 + #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 /// diff --git a/7.3.662 b/7.3.662 new file mode 100644 index 0000000..609e0c5 --- /dev/null +++ b/7.3.662 @@ -0,0 +1,81 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.662 +Fcc: outbox +From: Bram Moolenaar +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 /// diff --git a/7.3.663 b/7.3.663 new file mode 100644 index 0000000..a6154f4 --- /dev/null +++ b/7.3.663 @@ -0,0 +1,54 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.663 +Fcc: outbox +From: Bram Moolenaar +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 /// diff --git a/7.3.664 b/7.3.664 new file mode 100644 index 0000000..b83c382 --- /dev/null +++ b/7.3.664 @@ -0,0 +1,78 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.664 +Fcc: outbox +From: Bram Moolenaar +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 /// diff --git a/7.3.665 b/7.3.665 new file mode 100644 index 0000000..2f6c30e --- /dev/null +++ b/7.3.665 @@ -0,0 +1,80 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.665 +Fcc: outbox +From: Bram Moolenaar +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 /// diff --git a/7.3.666 b/7.3.666 new file mode 100644 index 0000000..42900d1 --- /dev/null +++ b/7.3.666 @@ -0,0 +1,95 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.6 +Fcc: outbox +From: Bram Moolenaar +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 ++ !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 /// diff --git a/7.3.667 b/7.3.667 new file mode 100644 index 0000000..3f9f024 --- /dev/null +++ b/7.3.667 @@ -0,0 +1,86 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.667 +Fcc: outbox +From: Bram Moolenaar +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 /// diff --git a/7.3.668 b/7.3.668 new file mode 100644 index 0000000..4ddf206 --- /dev/null +++ b/7.3.668 @@ -0,0 +1,84 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.668 +Fcc: outbox +From: Bram Moolenaar +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 /// diff --git a/7.3.669 b/7.3.669 new file mode 100644 index 0000000..7fb1940 --- /dev/null +++ b/7.3.669 @@ -0,0 +1,128 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.669 +Fcc: outbox +From: Bram Moolenaar +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 /// diff --git a/7.3.670 b/7.3.670 new file mode 100644 index 0000000..91b4caa --- /dev/null +++ b/7.3.670 @@ -0,0 +1,88 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.670 +Fcc: outbox +From: Bram Moolenaar +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 /// diff --git a/7.3.671 b/7.3.671 new file mode 100644 index 0000000..c47e6f3 --- /dev/null +++ b/7.3.671 @@ -0,0 +1,311 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.671 +Fcc: outbox +From: Bram Moolenaar +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 /// diff --git a/7.3.672 b/7.3.672 new file mode 100644 index 0000000..b43b0f1 --- /dev/null +++ b/7.3.672 @@ -0,0 +1,699 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.672 +Fcc: outbox +From: Bram Moolenaar +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 /// diff --git a/7.3.673 b/7.3.673 new file mode 100644 index 0000000..8ab41a3 --- /dev/null +++ b/7.3.673 @@ -0,0 +1,64 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.673 +Fcc: outbox +From: Bram Moolenaar +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 /// diff --git a/7.3.674 b/7.3.674 new file mode 100644 index 0000000..ea3dc8d --- /dev/null +++ b/7.3.674 @@ -0,0 +1,286 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.674 +Fcc: outbox +From: Bram Moolenaar +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 /// diff --git a/7.3.675 b/7.3.675 new file mode 100644 index 0000000..7106917 --- /dev/null +++ b/7.3.675 @@ -0,0 +1,53 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.675 +Fcc: outbox +From: Bram Moolenaar +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 /// diff --git a/7.3.676 b/7.3.676 new file mode 100644 index 0000000..40d6f3d --- /dev/null +++ b/7.3.676 @@ -0,0 +1,77 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.676 +Fcc: outbox +From: Bram Moolenaar +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 /// diff --git a/7.3.677 b/7.3.677 new file mode 100644 index 0000000..bf6e91f --- /dev/null +++ b/7.3.677 @@ -0,0 +1,268 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.677 +Fcc: outbox +From: Bram Moolenaar +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 /// diff --git a/7.3.678 b/7.3.678 new file mode 100644 index 0000000..5f20da0 --- /dev/null +++ b/7.3.678 @@ -0,0 +1,72 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.678 +Fcc: outbox +From: Bram Moolenaar +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 /// diff --git a/7.3.679 b/7.3.679 new file mode 100644 index 0000000..f95bf5e --- /dev/null +++ b/7.3.679 @@ -0,0 +1,230 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.679 +Fcc: outbox +From: Bram Moolenaar +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 /// diff --git a/7.3.680 b/7.3.680 new file mode 100644 index 0000000..537eb58 --- /dev/null +++ b/7.3.680 @@ -0,0 +1,70 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.680 +Fcc: outbox +From: Bram Moolenaar +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 /// diff --git a/7.3.681 b/7.3.681 new file mode 100644 index 0000000..7794ce0 --- /dev/null +++ b/7.3.681 @@ -0,0 +1,64 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.681 +Fcc: outbox +From: Bram Moolenaar +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 /// diff --git a/7.3.682 b/7.3.682 new file mode 100644 index 0000000..a8e133e --- /dev/null +++ b/7.3.682 @@ -0,0 +1,55 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.682 +Fcc: outbox +From: Bram Moolenaar +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 /// diff --git a/README.patches b/README.patches index 477c90a..cb9e52e 100644 --- a/README.patches +++ b/README.patches @@ -677,3 +677,39 @@ Individual patches for Vim 7.3: 1925 7.3.644 dead code for BeOS GUI 2910 7.3.645 no tests for patch 7.3.625 and 7.3.637 2353 7.3.646 undo file unusable after reloading a buffer + 5213 7.3.647 "gnd" doesn't work correctly in Visual mode + 3831 7.3.648 crash when using a very long file name + 2256 7.3.649 with 'clipboard' set to "unnamed" small deletes go to "1 + 1679 7.3.650 Completing ":help \{-" gives error and messes up command line + 3120 7.3.651 Completing ":help \{-" gives error message + 2304 7.3.652 workaround for Python crash isn't perfect + 7986 7.3.653 lacking XPM support for MingW, 32 and 64 objects mixed up + 3301 7.3.654 creating Vim dictionary from Python an empty key might be used + 88812 7.3.655 64 bit MingW xpm .a file is missing + 3106 7.3.656 internal error in :pyeval + 6680 7.3.657 Python bindings silently truncate string values containing NUL + 4244 7.3.658 NUL bytes truncate strings when converted from Python + 6242 7.3.659 recent Python changes are not tested + 1448 7.3.660 ":help !" jumps to help for ":!" + 5339 7.3.661 (after 7.3.652) SEGV in Python code + 3126 7.3.662 can't build Ruby interface with Ruby 1.9.3 + 1498 7.3.663 end of color scheme name not clear in E185 + 2171 7.3.664 buffer overflow in unescaping multi-byte characters + 2414 7.3.665 MSVC 11 is not supported + 3195 7.3.666 Win32.mak can't be found + 3213 7.3.667 unused variables in Perl interface + 2763 7.3.668 loading Perl dynamically still uses static library + 4757 7.3.669 when building with Cygwin loading Python dynamically fails + 2318 7.3.670 tiny memory leak when throwing exception in Python + 8213 7.3.671 more Python code can be shared between Python 2 and 3 + 22436 7.3.672 not possible to lock/unlock lists in Python interface + 1967 7.3.673 "gN" while 'selection' is "exclusive" misses one character + 10873 7.3.674 can't compile with Lua/dyn on Cygwin + 1597 7.3.675 accessing uninitialized memory with a very long file name + 2721 7.3.676 Ruby compilation on Windows 32 bit doesn't work + 8428 7.3.677 buf_spname() is used inconsistently + 2887 7.3.678 Ruby .so name may not be correct + 11455 7.3.679 Ruby detection uses Config, newer Ruby versions use RbConfig + 2190 7.3.680 some files missing in the list of distributed files + 2014 7.3.681 list of distributed files picks up backup files + 1791 7.3.682 (after 7.3.677) compiler complains about incompatible types diff --git a/vim.spec b/vim.spec index 32fa4ff..7720f24 100644 --- a/vim.spec +++ b/vim.spec @@ -18,7 +18,7 @@ #used for pre-releases: %define beta %{nil} %define vimdir vim73%{?beta} -%define patchlevel 646 +%define patchlevel 682 Summary: The VIM editor URL: http://www.vim.org/ @@ -702,6 +702,42 @@ Patch643: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.643 Patch644: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.644 Patch645: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.645 Patch646: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.646 +Patch647: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.647 +Patch648: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.648 +Patch649: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.649 +Patch650: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.650 +Patch651: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.651 +Patch652: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.652 +Patch653: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.653 +Patch654: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.654 +Patch655: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.655 +Patch656: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.656 +Patch657: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.657 +Patch658: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.658 +Patch659: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.659 +Patch660: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.660 +Patch661: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.661 +Patch662: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.662 +Patch663: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.663 +Patch664: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.664 +Patch665: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.665 +Patch666: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.666 +Patch667: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.667 +Patch668: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.668 +Patch669: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.669 +Patch670: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.670 +Patch671: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.671 +Patch672: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.672 +Patch673: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.673 +Patch674: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.674 +Patch675: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.675 +Patch676: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.676 +Patch677: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.677 +Patch678: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.678 +Patch679: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.679 +Patch680: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.680 +Patch681: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.681 +Patch682: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.682 Patch3000: vim-7.3-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1494,6 +1530,42 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch644 -p0 %patch645 -p0 %patch646 -p0 +%patch647 -p0 +%patch648 -p0 +%patch649 -p0 +%patch650 -p0 +%patch651 -p0 +%patch652 -p0 +%patch653 -p0 +%patch654 -p0 +%patch655 -p0 +%patch656 -p0 +%patch657 -p0 +%patch658 -p0 +%patch659 -p0 +%patch660 -p0 +%patch661 -p0 +%patch662 -p0 +%patch663 -p0 +%patch664 -p0 +%patch665 -p0 +%patch666 -p0 +%patch667 -p0 +%patch668 -p0 +%patch669 -p0 +%patch670 -p0 +%patch671 -p0 +%patch672 -p0 +%patch673 -p0 +%patch674 -p0 +%patch675 -p0 +%patch676 -p0 +%patch677 -p0 +%patch678 -p0 +%patch679 -p0 +%patch680 -p0 +%patch681 -p0 +%patch682 -p0 # install spell files @@ -1524,7 +1596,9 @@ mv -f Makefile.tmp Makefile export CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2" export CXXFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2" -%configure --with-features=huge --enable-pythoninterp --enable-perlinterp \ +%configure --with-features=huge \ + --enable-pythoninterp=dynamic \ + --enable-perlinterp \ --disable-tclinterp --with-x=yes \ --enable-xim --enable-multibyte \ --with-tlib=ncurses \ @@ -1542,7 +1616,7 @@ export CXXFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_ --disable-selinux \ %endif %if "%{withruby}" == "1" - --enable-rubyinterp \ + --enable-rubyinterp=dynamic \ %else --disable-rubyinterp \ %endif @@ -1551,8 +1625,11 @@ make VIMRCLOC=/etc VIMRUNTIMEDIR=/usr/share/vim/%{vimdir} %{?_smp_mflags} cp vim gvim make clean -%configure --prefix=%{_prefix} --with-features=huge --enable-pythoninterp \ - --enable-perlinterp --disable-tclinterp --with-x=no \ +%configure --prefix=%{_prefix} --with-features=huge \ + --enable-pythoninterp=dynamic \ + --enable-perlinterp \ + --disable-tclinterp \ + --with-x=no \ --enable-gui=no --exec-prefix=%{_prefix} --enable-multibyte \ --enable-cscope --with-modified-by="" \ --with-tlib=ncurses \ @@ -1568,7 +1645,7 @@ make clean --disable-selinux \ %endif %if "%{withruby}" == "1" - --enable-rubyinterp \ + --enable-rubyinterp=dynamic \ %else --disable-rubyinterp \ %endif @@ -1951,6 +2028,10 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/icons/hicolor/*/apps/* %changelog +* Fri Oct 05 2012 Karsten Hopp 7.3.682-1 +- patchlevel 682 +- use --enable-rubyinterp=dynamic and --enable-pythoninterp=dynamic + * Mon Sep 03 2012 Karsten Hopp 7.3.646-1 - patchlevel 646