From 60309a9f54e880f9cf0f7d2a2d56c09b673d5558 Mon Sep 17 00:00:00 2001 From: Florian Pritz Date: Tue, 10 Mar 2009 18:39:17 +0100 Subject: updated vi, vim, gvim --- vi/PKGBUILD | 2 +- vi/vim-7.2/7.2.109 | 423 +++++++++++++++++++++++++++++++++++++++++++++++++++++ vi/vim-7.2/7.2.110 | 53 +++++++ vi/vim-7.2/7.2.111 | 88 +++++++++++ vi/vim-7.2/7.2.112 | 47 ++++++ vi/vim-7.2/7.2.113 | 99 +++++++++++++ vi/vim-7.2/7.2.114 | 86 +++++++++++ vi/vim-7.2/7.2.115 | 133 +++++++++++++++++ vi/vim-7.2/7.2.116 | 55 +++++++ vi/vim-7.2/7.2.117 | 107 ++++++++++++++ vi/vim-7.2/7.2.118 | 78 ++++++++++ vi/vim-7.2/7.2.119 | 51 +++++++ vi/vim-7.2/7.2.120 | 277 +++++++++++++++++++++++++++++++++++ vi/vim-7.2/7.2.121 | 180 +++++++++++++++++++++++ vi/vim-7.2/7.2.122 | 80 ++++++++++ vi/vim-7.2/7.2.123 | 50 +++++++ vi/vim-7.2/7.2.124 | 122 +++++++++++++++ vi/vim-7.2/7.2.125 | 161 ++++++++++++++++++++ vi/vim-7.2/7.2.126 | 174 ++++++++++++++++++++++ vi/vim-7.2/7.2.127 | 59 ++++++++ vi/vim-7.2/7.2.128 | 52 +++++++ vi/vim-7.2/7.2.129 | 73 +++++++++ vi/vim-7.2/7.2.130 | 413 +++++++++++++++++++++++++++++++++++++++++++++++++++ vi/vim-7.2/7.2.131 | 83 +++++++++++ vi/vim-7.2/7.2.132 | 268 +++++++++++++++++++++++++++++++++ 25 files changed, 3213 insertions(+), 1 deletion(-) create mode 100644 vi/vim-7.2/7.2.109 create mode 100644 vi/vim-7.2/7.2.110 create mode 100644 vi/vim-7.2/7.2.111 create mode 100644 vi/vim-7.2/7.2.112 create mode 100644 vi/vim-7.2/7.2.113 create mode 100644 vi/vim-7.2/7.2.114 create mode 100644 vi/vim-7.2/7.2.115 create mode 100644 vi/vim-7.2/7.2.116 create mode 100644 vi/vim-7.2/7.2.117 create mode 100644 vi/vim-7.2/7.2.118 create mode 100644 vi/vim-7.2/7.2.119 create mode 100644 vi/vim-7.2/7.2.120 create mode 100644 vi/vim-7.2/7.2.121 create mode 100644 vi/vim-7.2/7.2.122 create mode 100644 vi/vim-7.2/7.2.123 create mode 100644 vi/vim-7.2/7.2.124 create mode 100644 vi/vim-7.2/7.2.125 create mode 100644 vi/vim-7.2/7.2.126 create mode 100644 vi/vim-7.2/7.2.127 create mode 100644 vi/vim-7.2/7.2.128 create mode 100644 vi/vim-7.2/7.2.129 create mode 100644 vi/vim-7.2/7.2.130 create mode 100644 vi/vim-7.2/7.2.131 create mode 100644 vi/vim-7.2/7.2.132 (limited to 'vi') diff --git a/vi/PKGBUILD b/vi/PKGBUILD index e5af325..23bbe4a 100644 --- a/vi/PKGBUILD +++ b/vi/PKGBUILD @@ -3,7 +3,7 @@ pkgname=vi _srcver=7.2 -_patchlevel=108 +_patchlevel=132 pkgver=${_srcver}.${_patchlevel} pkgrel=1 pkgdesc="a highly configurable, improved version of the vi text editor (basic version)" diff --git a/vi/vim-7.2/7.2.109 b/vi/vim-7.2/7.2.109 new file mode 100644 index 0000000..8c3866c --- /dev/null +++ b/vi/vim-7.2/7.2.109 @@ -0,0 +1,423 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.109 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.109 +Problem: 'langmap' does not work for multi-byte characters. +Solution: Add a list of mapped multi-byte characters. (based on work by + Konstantin Korikov, Agathoklis Hatzimanikas) +Files: runtime/doc/options.txt, src/edit.c, src/getchar.c, src/macros.h, + src/normal.c, src/option.c, src/proto/option.pro, src/window.c + + +*** ../vim-7.2.108/runtime/doc/options.txt Fri Nov 28 10:59:57 2008 +--- runtime/doc/options.txt Wed Feb 11 18:59:34 2009 +*************** +*** 4175,4183 **** + be able to execute Normal mode commands. + This is the opposite of the 'keymap' option, where characters are + mapped in Insert mode. +- This only works for 8-bit characters. The value of 'langmap' may be +- specified with multi-byte characters (e.g., UTF-8), but only the lower +- 8 bits of each character will be used. + + Example (for Greek, in UTF-8): *greek* > + :set langmap=ΑA,ΒB,ΨC,ΔD,ΕE,ΦF,ΓG,ΗH,ΙI,ΞJ,ΚK,ΛL,ΜM,ΝN,ΟO,ΠP,QQ,ΡR,ΣS,ΤT,ΘU,ΩV,WW,ΧX,ΥY,ΖZ,αa,βb,ψc,δd,εe,φf,γg,ηh,ιi,ξj,κk,λl,μm,νn,οo,πp,qq,ρr,σs,τt,θu,ωv,ςw,χx,υy,ζz +--- 4188,4193 ---- +*** ../vim-7.2.108/src/edit.c Wed Feb 4 11:19:40 2009 +--- src/edit.c Sat Feb 21 19:54:03 2009 +*************** +*** 7703,7711 **** + */ + ++no_mapping; + regname = plain_vgetc(); +- #ifdef FEAT_LANGMAP + LANGMAP_ADJUST(regname, TRUE); +- #endif + if (regname == Ctrl_R || regname == Ctrl_O || regname == Ctrl_P) + { + /* Get a third key for literal register insertion */ +--- 7703,7709 ---- +*************** +*** 7714,7722 **** + add_to_showcmd_c(literally); + #endif + regname = plain_vgetc(); +- #ifdef FEAT_LANGMAP + LANGMAP_ADJUST(regname, TRUE); +- #endif + } + --no_mapping; + +--- 7712,7718 ---- +*** ../vim-7.2.108/src/macros.h Wed Aug 15 20:41:07 2007 +--- src/macros.h Sat Feb 21 19:55:38 2009 +*************** +*** 127,141 **** + #ifdef FEAT_LANGMAP + /* + * Adjust chars in a language according to 'langmap' option. +! * NOTE that there is NO overhead if 'langmap' is not set; but even +! * when set we only have to do 2 ifs and an array lookup. + * Don't apply 'langmap' if the character comes from the Stuff buffer. + * The do-while is just to ignore a ';' after the macro. + */ +! # define LANGMAP_ADJUST(c, condition) do { \ +! if (*p_langmap && (condition) && !KeyStuffed && (c) >= 0 && (c) < 256) \ +! c = langmap_mapchar[c]; \ + } while (0) + #endif + + /* +--- 127,157 ---- + #ifdef FEAT_LANGMAP + /* + * Adjust chars in a language according to 'langmap' option. +! * NOTE that there is no noticeable overhead if 'langmap' is not set. +! * When set the overhead for characters < 256 is small. + * Don't apply 'langmap' if the character comes from the Stuff buffer. + * The do-while is just to ignore a ';' after the macro. + */ +! # ifdef FEAT_MBYTE +! # define LANGMAP_ADJUST(c, condition) \ +! do { \ +! if (*p_langmap && (condition) && !KeyStuffed && (c) >= 0) \ +! { \ +! if ((c) < 256) \ +! c = langmap_mapchar[c]; \ +! else \ +! c = langmap_adjust_mb(c); \ +! } \ + } while (0) ++ # else ++ # define LANGMAP_ADJUST(c, condition) \ ++ do { \ ++ if (*p_langmap && (condition) && !KeyStuffed && (c) >= 0 && (c) < 256) \ ++ c = langmap_mapchar[c]; \ ++ } while (0) ++ # endif ++ #else ++ # define LANGMAP_ADJUST(c, condition) /* nop */ + #endif + + /* +*** ../vim-7.2.108/src/normal.c Wed Feb 4 11:45:28 2009 +--- src/normal.c Sat Feb 21 19:55:17 2009 +*************** +*** 651,660 **** + * Get the command character from the user. + */ + c = safe_vgetc(); +- +- #ifdef FEAT_LANGMAP + LANGMAP_ADJUST(c, TRUE); +- #endif + + #ifdef FEAT_VISUAL + /* +--- 651,657 ---- +*************** +*** 744,752 **** + } + ++no_zero_mapping; /* don't map zero here */ + c = plain_vgetc(); +- #ifdef FEAT_LANGMAP + LANGMAP_ADJUST(c, TRUE); +- #endif + --no_zero_mapping; + if (ctrl_w) + { +--- 741,747 ---- +*************** +*** 769,777 **** + ++no_mapping; + ++allow_keys; /* no mapping for nchar, but keys */ + c = plain_vgetc(); /* get next character */ +- #ifdef FEAT_LANGMAP + LANGMAP_ADJUST(c, TRUE); +- #endif + --no_mapping; + --allow_keys; + #ifdef FEAT_CMDL_INFO +--- 764,770 ---- +*************** +*** 959,967 **** + * "gr", "g'" and "g`". + */ + ca.nchar = plain_vgetc(); +- #ifdef FEAT_LANGMAP + LANGMAP_ADJUST(ca.nchar, TRUE); +- #endif + #ifdef FEAT_CMDL_INFO + need_flushbuf |= add_to_showcmd(ca.nchar); + #endif +--- 952,958 ---- +*************** +*** 1062,1071 **** + } + #endif + +- #ifdef FEAT_LANGMAP + /* adjust chars > 127, except after "tTfFr" commands */ + LANGMAP_ADJUST(*cp, !lang); +- #endif + #ifdef FEAT_RIGHTLEFT + /* adjust Hebrew mapped char */ + if (p_hkmap && lang && KeyTyped) +--- 1053,1060 ---- +*************** +*** 4630,4638 **** + ++no_mapping; + ++allow_keys; /* no mapping for nchar, but allow key codes */ + nchar = plain_vgetc(); +- #ifdef FEAT_LANGMAP + LANGMAP_ADJUST(nchar, TRUE); +- #endif + --no_mapping; + --allow_keys; + #ifdef FEAT_CMDL_INFO +--- 4619,4625 ---- +*************** +*** 4988,4996 **** + ++no_mapping; + ++allow_keys; /* no mapping for nchar, but allow key codes */ + nchar = plain_vgetc(); +- #ifdef FEAT_LANGMAP + LANGMAP_ADJUST(nchar, TRUE); +- #endif + --no_mapping; + --allow_keys; + #ifdef FEAT_CMDL_INFO +--- 4975,4981 ---- +*** ../vim-7.2.108/src/option.c Wed Feb 11 22:47:32 2009 +--- src/option.c Sat Feb 21 19:46:13 2009 +*************** +*** 10153,10177 **** + + #ifdef FEAT_LANGMAP + /* +! * Any character has an equivalent character. This is used for keyboards that +! * have a special language mode that sends characters above 128 (although +! * other characters can be translated too). + */ + + /* +! * char_u langmap_mapchar[256]; +! * Normally maps each of the 128 upper chars to an <128 ascii char; used to +! * "translate" native lang chars in normal mode or some cases of +! * insert mode without having to tediously switch lang mode back&forth. + */ + + static void + langmap_init() + { + int i; + +! for (i = 0; i < 256; i++) /* we init with a-one-to one map */ +! langmap_mapchar[i] = i; + } + + /* +--- 10153,10262 ---- + + #ifdef FEAT_LANGMAP + /* +! * Any character has an equivalent 'langmap' character. This is used for +! * keyboards that have a special language mode that sends characters above +! * 128 (although other characters can be translated too). The "to" field is a +! * Vim command character. This avoids having to switch the keyboard back to +! * ASCII mode when leaving Insert mode. +! * +! * langmap_mapchar[] maps any of 256 chars to an ASCII char used for Vim +! * commands. +! * When FEAT_MBYTE is defined langmap_mapga.ga_data is a sorted table of +! * langmap_entry_T. This does the same as langmap_mapchar[] for characters >= +! * 256. +! */ +! # ifdef FEAT_MBYTE +! /* +! * With multi-byte support use growarray for 'langmap' chars >= 256 + */ ++ typedef struct ++ { ++ int from; ++ int to; ++ } langmap_entry_T; ++ ++ static garray_T langmap_mapga; ++ static void langmap_set_entry __ARGS((int from, int to)); ++ ++ /* ++ * Search for an entry in "langmap_mapga" for "from". If found set the "to" ++ * field. If not found insert a new entry at the appropriate location. ++ */ ++ static void ++ langmap_set_entry(from, to) ++ int from; ++ int to; ++ { ++ langmap_entry_T *entries = (langmap_entry_T *)(langmap_mapga.ga_data); ++ int a = 0; ++ int b = langmap_mapga.ga_len; ++ ++ /* Do a binary search for an existing entry. */ ++ while (a != b) ++ { ++ int i = (a + b) / 2; ++ int d = entries[i].from - from; ++ ++ if (d == 0) ++ { ++ entries[i].to = to; ++ return; ++ } ++ if (d < 0) ++ a = i + 1; ++ else ++ b = i; ++ } ++ ++ if (ga_grow(&langmap_mapga, 1) != OK) ++ return; /* out of memory */ ++ ++ /* insert new entry at position "a" */ ++ entries = (langmap_entry_T *)(langmap_mapga.ga_data) + a; ++ mch_memmove(entries + 1, entries, ++ (langmap_mapga.ga_len - a) * sizeof(langmap_entry_T)); ++ ++langmap_mapga.ga_len; ++ entries[0].from = from; ++ entries[0].to = to; ++ } + + /* +! * Apply 'langmap' to multi-byte character "c" and return the result. + */ ++ int ++ langmap_adjust_mb(c) ++ int c; ++ { ++ langmap_entry_T *entries = (langmap_entry_T *)(langmap_mapga.ga_data); ++ int a = 0; ++ int b = langmap_mapga.ga_len; ++ ++ while (a != b) ++ { ++ int i = (a + b) / 2; ++ int d = entries[i].from - c; ++ ++ if (d == 0) ++ return entries[i].to; /* found matching entry */ ++ if (d < 0) ++ a = i + 1; ++ else ++ b = i; ++ } ++ return c; /* no entry found, return "c" unmodified */ ++ } ++ # endif + + static void + langmap_init() + { + int i; + +! for (i = 0; i < 256; i++) +! langmap_mapchar[i] = i; /* we init with a one-to-one map */ +! # ifdef FEAT_MBYTE +! ga_init2(&langmap_mapga, sizeof(langmap_entry_T), 8); +! # endif + } + + /* +*************** +*** 10185,10191 **** + char_u *p2; + int from, to; + +! langmap_init(); /* back to one-to-one map first */ + + for (p = p_langmap; p[0] != NUL; ) + { +--- 10270,10279 ---- + char_u *p2; + int from, to; + +! #ifdef FEAT_MBYTE +! ga_clear(&langmap_mapga); /* clear the previous map first */ +! #endif +! langmap_init(); /* back to one-to-one map */ + + for (p = p_langmap; p[0] != NUL; ) + { +*************** +*** 10235,10241 **** + transchar(from)); + return; + } +! langmap_mapchar[from & 255] = to; + + /* Advance to next pair */ + mb_ptr_adv(p); +--- 10323,10335 ---- + transchar(from)); + return; + } +! +! #ifdef FEAT_MBYTE +! if (from >= 256) +! langmap_set_entry(from, to); +! else +! #endif +! langmap_mapchar[from & 255] = to; + + /* Advance to next pair */ + mb_ptr_adv(p); +*** ../vim-7.2.108/src/proto/option.pro Sat May 5 19:28:04 2007 +--- src/proto/option.pro Wed Feb 11 21:21:05 2009 +*************** +*** 44,49 **** +--- 44,50 ---- + void set_context_in_set_cmd __ARGS((expand_T *xp, char_u *arg, int opt_flags)); + int ExpandSettings __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file)); + int ExpandOldSetting __ARGS((int *num_file, char_u ***file)); ++ int langmap_adjust_mb __ARGS((int c)); + int has_format_option __ARGS((int x)); + int shortmess __ARGS((int x)); + void vimrc_found __ARGS((char_u *fname, char_u *envname)); +*** ../vim-7.2.108/src/window.c Fri Nov 28 21:26:50 2008 +--- src/window.c Sat Feb 21 19:55:25 2009 +*************** +*** 594,602 **** + ++allow_keys; /* no mapping for xchar, but allow key codes */ + if (xchar == NUL) + xchar = plain_vgetc(); +- #ifdef FEAT_LANGMAP + LANGMAP_ADJUST(xchar, TRUE); +- #endif + --no_mapping; + --allow_keys; + #ifdef FEAT_CMDL_INFO +--- 594,600 ---- +*** ../vim-7.2.108/src/version.c Wed Feb 11 22:47:32 2009 +--- src/version.c Sat Feb 21 19:34:28 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 109, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +99. The hum of a cooling fan and the click of keys is comforting to you. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/vi/vim-7.2/7.2.110 b/vi/vim-7.2/7.2.110 new file mode 100644 index 0000000..4594e78 --- /dev/null +++ b/vi/vim-7.2/7.2.110 @@ -0,0 +1,53 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.110 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.110 +Problem: Compiler warning for unused variable. +Solution: Init the variable. +Files: src/ex_docmd.c + + +*** ../vim-7.2.109/src/ex_docmd.c Wed Jan 28 15:42:07 2009 +--- src/ex_docmd.c Tue Feb 17 03:47:13 2009 +*************** +*** 5916,5922 **** + char_u *q; + + char_u *start; +! char_u *end; + char_u *ksp; + size_t len, totlen; + +--- 5916,5922 ---- + char_u *q; + + char_u *start; +! char_u *end = NULL; + char_u *ksp; + size_t len, totlen; + +*** ../vim-7.2.109/src/version.c Sat Feb 21 20:27:00 2009 +--- src/version.c Sat Feb 21 20:35:50 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 110, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +100. The most exciting sporting events you noticed during summer 1996 + was Netscape vs. Microsoft. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/vi/vim-7.2/7.2.111 b/vi/vim-7.2/7.2.111 new file mode 100644 index 0000000..acc0be4 --- /dev/null +++ b/vi/vim-7.2/7.2.111 @@ -0,0 +1,88 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.111 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.111 +Problem: When using Visual block mode with 'cursorcolumn' it's unclear what + is selected. +Solution: Don't use 'cursorcolumn' highlighting inside the Visual selection. + (idea by Dominique Pelle) +Files: src/screen.c + + +*** ../vim-7.2.110/src/screen.c Wed Oct 1 21:09:02 2008 +--- src/screen.c Sat Feb 21 21:04:19 2009 +*************** +*** 2596,2601 **** +--- 2596,2602 ---- + int noinvcur = FALSE; /* don't invert the cursor */ + #ifdef FEAT_VISUAL + pos_T *top, *bot; ++ int lnum_in_visual_area = FALSE; + #endif + pos_T pos; + long v; +*************** +*** 2792,2800 **** + top = &VIsual; + bot = &curwin->w_cursor; + } + if (VIsual_mode == Ctrl_V) /* block mode */ + { +! if (lnum >= top->lnum && lnum <= bot->lnum) + { + fromcol = wp->w_old_cursor_fcol; + tocol = wp->w_old_cursor_lcol; +--- 2793,2802 ---- + top = &VIsual; + bot = &curwin->w_cursor; + } ++ lnum_in_visual_area = (lnum >= top->lnum && lnum <= bot->lnum); + if (VIsual_mode == Ctrl_V) /* block mode */ + { +! if (lnum_in_visual_area) + { + fromcol = wp->w_old_cursor_fcol; + tocol = wp->w_old_cursor_lcol; +*************** +*** 4557,4563 **** + * highlight the cursor position itself. */ + if (wp->w_p_cuc && vcol == (long)wp->w_virtcol + && lnum != wp->w_cursor.lnum +! && draw_state == WL_LINE) + { + vcol_save_attr = char_attr; + char_attr = hl_combine_attr(char_attr, hl_attr(HLF_CUC)); +--- 4560,4567 ---- + * highlight the cursor position itself. */ + if (wp->w_p_cuc && vcol == (long)wp->w_virtcol + && lnum != wp->w_cursor.lnum +! && draw_state == WL_LINE +! && !lnum_in_visual_area) + { + vcol_save_attr = char_attr; + char_attr = hl_combine_attr(char_attr, hl_attr(HLF_CUC)); +*** ../vim-7.2.110/src/version.c Sat Feb 21 20:36:30 2009 +--- src/version.c Sat Feb 21 21:08:14 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 111, + /**/ + +-- +Contrary to popular belief, Unix is user friendly. +It just happens to be selective about who it makes friends with. + -- Dave Parnas + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/vi/vim-7.2/7.2.112 b/vi/vim-7.2/7.2.112 new file mode 100644 index 0000000..6611999 --- /dev/null +++ b/vi/vim-7.2/7.2.112 @@ -0,0 +1,47 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.112 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.112 +Problem: Cursor invisible in Visual mode when 'number' is set and cursor in + first column. (Matti Niemenmaa, Renato Alves) +Solution: Check that vcol_prev is smaller than vcol. +Files: src/screen.c + + +*** ../vim-7.2.111/src/screen.c Sat Feb 21 21:10:24 2009 +--- src/screen.c Sat Feb 21 21:04:19 2009 +*************** +*** 3422,3427 **** +--- 3422,3428 ---- + && (*mb_ptr2cells)(ptr) > 1) + #endif + || ((int)vcol_prev == fromcol_prev ++ && vcol_prev < vcol /* not at margin */ + && vcol < tocol)) + area_attr = attr; /* start highlighting */ + else if (area_attr != 0 +*** ../vim-7.2.111/src/version.c Sat Feb 21 21:10:24 2009 +--- src/version.c Sat Feb 21 21:20:51 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 112, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +102. When filling out your driver's license application, you give + your IP address. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/vi/vim-7.2/7.2.113 b/vi/vim-7.2/7.2.113 new file mode 100644 index 0000000..f0e4ebf --- /dev/null +++ b/vi/vim-7.2/7.2.113 @@ -0,0 +1,99 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.113 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.113 +Problem: Crash for substitute() call using submatch(1) while there is no + such submatch. (Yukihiro Nakadaira) +Solution: Also check the start of the submatch is set, it can be NULL when + an attempted match didn't work out. +Files: src/regexp.c + + +*** ../vim-7.2.112/src/regexp.c Fri Aug 8 13:45:31 2008 +--- src/regexp.c Sat Feb 21 21:46:49 2009 +*************** +*** 4532,4538 **** + cleanup_subexpr(); + if (!REG_MULTI) /* Single-line regexp */ + { +! if (reg_endp[no] == NULL) + { + /* Backref was not set: Match an empty string. */ + len = 0; +--- 4532,4538 ---- + cleanup_subexpr(); + if (!REG_MULTI) /* Single-line regexp */ + { +! if (reg_startp[no] == NULL || reg_endp[no] == NULL) + { + /* Backref was not set: Match an empty string. */ + len = 0; +*************** +*** 4548,4554 **** + } + else /* Multi-line regexp */ + { +! if (reg_endpos[no].lnum < 0) + { + /* Backref was not set: Match an empty string. */ + len = 0; +--- 4548,4554 ---- + } + else /* Multi-line regexp */ + { +! if (reg_startpos[no].lnum < 0 || reg_endpos[no].lnum < 0) + { + /* Backref was not set: Match an empty string. */ + len = 0; +*************** +*** 7279,7291 **** + } + else + { +! if (submatch_match->endp[no] == NULL) + retval = NULL; + else +- { +- s = submatch_match->startp[no]; + retval = vim_strnsave(s, (int)(submatch_match->endp[no] - s)); +- } + } + + return retval; +--- 7279,7289 ---- + } + else + { +! s = submatch_match->startp[no]; +! if (s == NULL || submatch_match->endp[no] == NULL) + retval = NULL; + else + retval = vim_strnsave(s, (int)(submatch_match->endp[no] - s)); + } + + return retval; +*** ../vim-7.2.112/src/version.c Sat Feb 21 21:22:44 2009 +--- src/version.c Sat Feb 21 22:01:56 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 113, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +103. When you find yourself in the "Computer" section of Barnes & Noble + enjoying yourself. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/vi/vim-7.2/7.2.114 b/vi/vim-7.2/7.2.114 new file mode 100644 index 0000000..9742b52 --- /dev/null +++ b/vi/vim-7.2/7.2.114 @@ -0,0 +1,86 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.114 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.114 +Problem: Using wrong printf format. +Solution: Use "%ld" instead of "%d". (Dominique Pelle) +Files: src/netbeans.c + + +*** ../vim-7.2.113/src/netbeans.c Tue Jan 6 16:13:42 2009 +--- src/netbeans.c Tue Feb 17 03:21:33 2009 +*************** +*** 1924,1930 **** + vim_free(path); + if (bufp == NULL) + { +! nbdebug((" File %s not found in setBufferNumber\n", args)); + EMSG2("E642: File %s not found in setBufferNumber", args); + return FAIL; + } +--- 1924,1930 ---- + vim_free(path); + if (bufp == NULL) + { +! nbdebug((" File %s not found in setBufferNumber\n", args)); + EMSG2("E642: File %s not found in setBufferNumber", args); + return FAIL; + } +*************** +*** 2318,2324 **** + } + if (pos) + { +! coloncmd(":sign place %d line=%d name=%d buffer=%d", + serNum, pos->lnum, typeNum, buf->bufp->b_fnum); + if (typeNum == curPCtype) + coloncmd(":sign jump %d buffer=%d", serNum, +--- 2318,2324 ---- + } + if (pos) + { +! coloncmd(":sign place %d line=%ld name=%d buffer=%d", + serNum, pos->lnum, typeNum, buf->bufp->b_fnum); + if (typeNum == curPCtype) + coloncmd(":sign jump %d buffer=%d", serNum, +*************** +*** 2422,2428 **** + GUARDED) == 0) + { + coloncmd( +! ":sign place %d line=%d name=%d buffer=%d", + guardId++, lnum, GUARDED, + buf->bufp->b_fnum); + } +--- 2422,2428 ---- + GUARDED) == 0) + { + coloncmd( +! ":sign place %d line=%ld name=%d buffer=%d", + guardId++, lnum, GUARDED, + buf->bufp->b_fnum); + } +*** ../vim-7.2.113/src/version.c Sat Feb 21 22:03:06 2009 +--- src/version.c Sat Feb 21 22:11:21 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 114, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +104. When people ask about the Presidential Election you ask "Which country?" + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/vi/vim-7.2/7.2.115 b/vi/vim-7.2/7.2.115 new file mode 100644 index 0000000..b51a1f5 --- /dev/null +++ b/vi/vim-7.2/7.2.115 @@ -0,0 +1,133 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.115 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.115 +Problem: Some debugging code is never used. +Solution: Remove nbtrace() and nbprt(). (Dominique Pelle) +Files: src/nbdebug.c, src/nbdebug.h + +*** ../vim-7.2.114/src/nbdebug.c Tue Jun 24 23:54:30 2008 +--- src/nbdebug.c Tue Feb 17 03:26:07 2009 +*************** +*** 33,39 **** + u_int nb_dlevel = 0; /* nb_debug verbosity level */ + + void nbdb(char *, ...); +- void nbtrace(char *, ...); + + static int lookup(char *); + #ifdef USE_NB_ERRORHANDLER +--- 33,38 ---- +*************** +*** 100,124 **** + } /* end nbdebug_log_init */ + + +- +- +- void +- nbtrace( +- char *fmt, +- ...) +- { +- va_list ap; +- +- if (nb_debug!= NULL && (nb_dlevel & (NB_TRACE | NB_TRACE_VERBOSE))) { +- va_start(ap, fmt); +- vfprintf(nb_debug, fmt, ap); +- va_end(ap); +- fflush(nb_debug); +- } +- +- } /* end nbtrace */ +- +- + void + nbdbg( + char *fmt, +--- 99,104 ---- +*************** +*** 136,158 **** + } /* end nbdbg */ + + +- void +- nbprt( +- char *fmt, +- ...) +- { +- va_list ap; +- +- if (nb_debug != NULL && nb_dlevel & NB_PRINT) { +- va_start(ap, fmt); +- vfprintf(nb_debug, fmt, ap); +- va_end(ap); +- fflush(nb_debug); +- } +- +- } /* end nbprt */ +- +- + static int + lookup( + char *file) +--- 116,121 ---- +*** ../vim-7.2.114/src/nbdebug.h Wed Jun 25 00:47:21 2008 +--- src/nbdebug.h Tue Feb 17 03:26:38 2009 +*************** +*** 43,50 **** + + + void nbdbg(char *, ...); +- void nbprt(char *, ...); +- void nbtrace(char *, ...); + + void nbdebug_wait __ARGS((u_int wait_flags, char *wait_var, u_int wait_secs)); + void nbdebug_log_init __ARGS((char *log_var, char *level_var)); +--- 43,48 ---- +*************** +*** 70,88 **** + { + } + +- void +- nbprt( +- char *fmt, +- ...) +- { +- } +- +- void +- nbtrace( +- char *fmt, +- ...) +- { +- } +- + #endif /* NBDEBUG */ + #endif /* NBDEBUG_H */ +--- 68,72 ---- +*** ../vim-7.2.114/src/version.c Sat Feb 21 22:12:43 2009 +--- src/version.c Sat Feb 21 22:28:21 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 115, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +105. When someone asks you for your address, you tell them your URL. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/vi/vim-7.2/7.2.116 b/vi/vim-7.2/7.2.116 new file mode 100644 index 0000000..edd2bd1 --- /dev/null +++ b/vi/vim-7.2/7.2.116 @@ -0,0 +1,55 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.116 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.116 +Problem: Not all memory is freed when EXITFREE is defined. +Solution: Free allocated memory on exit. (Dominique Pelle) +Files: src/ex_docmd.c, src/gui_gtk_x11.c, src/misc2.c, src/search.c, + src/tag.c + + +*** ../vim-7.2.115/src/tag.c Tue Jan 13 17:27:18 2009 +--- src/tag.c Tue Feb 17 03:43:32 2009 +*************** +*** 2542,2547 **** +--- 2542,2556 ---- + { + ga_clear_strings(&tag_fnames); + do_tag(NULL, DT_FREE, 0, 0, 0); ++ tag_freematch(); ++ ++ # if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX) ++ if (ptag_entry.tagname) ++ { ++ vim_free(ptag_entry.tagname); ++ ptag_entry.tagname = NULL; ++ } ++ # endif + } + #endif + +*** ../vim-7.2.115/src/version.c Sat Feb 21 22:29:12 2009 +--- src/version.c Sat Feb 21 22:56:14 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 116, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +106. When told to "go to your room" you inform your parents that you + can't...because you were kicked out and banned. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/vi/vim-7.2/7.2.117 b/vi/vim-7.2/7.2.117 new file mode 100644 index 0000000..4c4e66a --- /dev/null +++ b/vi/vim-7.2/7.2.117 @@ -0,0 +1,107 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.117 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.117 +Problem: Location list incorrectly labelled "Quickfix List". +Solution: Break out of both loops for finding window for location list + buffer. (Lech Lorens) +Files: src/buffer.c, src/quickfix.c, src/screen.c + + +*** ../vim-7.2.116/src/buffer.c Tue Jan 6 16:13:42 2009 +--- src/buffer.c Tue Feb 17 04:00:51 2009 +*************** +*** 5098,5104 **** + */ + FOR_ALL_TAB_WINDOWS(tp, win) + if (win->w_buffer == buf) +! break; + if (win != NULL && win->w_llist_ref != NULL) + return _("[Location List]"); + else +--- 5098,5105 ---- + */ + FOR_ALL_TAB_WINDOWS(tp, win) + if (win->w_buffer == buf) +! goto win_found; +! win_found: + if (win != NULL && win->w_llist_ref != NULL) + return _("[Location List]"); + else +*** ../vim-7.2.116/src/quickfix.c Sat Nov 15 14:10:23 2008 +--- src/quickfix.c Sat Feb 21 22:54:25 2009 +*************** +*** 1610,1619 **** + { + goto_tabpage_win(tp, wp); + usable_win = 1; +! break; + } + } + } + + /* + * If there is only one window and it is the quickfix window, create a +--- 1612,1622 ---- + { + goto_tabpage_win(tp, wp); + usable_win = 1; +! goto win_found; + } + } + } ++ win_found: + + /* + * If there is only one window and it is the quickfix window, create a +*** ../vim-7.2.116/src/screen.c Sat Feb 21 21:22:44 2009 +--- src/screen.c Sat Feb 21 21:04:19 2009 +*************** +*** 7452,7461 **** + { + outofmem = TRUE; + #ifdef FEAT_WINDOWS +! break; + #endif + } + } + + #ifdef FEAT_MBYTE + for (i = 0; i < p_mco; ++i) +--- 7452,7464 ---- + { + outofmem = TRUE; + #ifdef FEAT_WINDOWS +! goto give_up; + #endif + } + } ++ #ifdef FEAT_WINDOWS ++ give_up: ++ #endif + + #ifdef FEAT_MBYTE + for (i = 0; i < p_mco; ++i) +*** ../vim-7.2.116/src/version.c Sat Feb 21 22:57:10 2009 +--- src/version.c Sat Feb 21 23:58:24 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 117, + /**/ + +-- +Laughing helps. It's like jogging on the inside. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/vi/vim-7.2/7.2.118 b/vi/vim-7.2/7.2.118 new file mode 100644 index 0000000..73b6cbb --- /dev/null +++ b/vi/vim-7.2/7.2.118 @@ -0,0 +1,78 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.118 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.118 +Problem: at the more prompt only does half a page. +Solution: Make go up a whole page. Also make 'f' go a page + forward, but not quit the more prompt. (Markus Heidelberg) +Files: src/message.c + + +*** ../vim-7.2.117/src/message.c Wed Feb 11 18:46:48 2009 +--- src/message.c Fri Feb 20 05:20:15 2009 +*************** +*** 976,982 **** + } + } + else if (msg_scrolled > Rows - 2 +! && (c == 'j' || c == K_DOWN || c == 'd')) + c = K_IGNORE; + } + } while ((had_got_int && c == Ctrl_C) +--- 976,982 ---- + } + } + else if (msg_scrolled > Rows - 2 +! && (c == 'j' || c == K_DOWN || c == 'd' || c == 'f')) + c = K_IGNORE; + } + } while ((had_got_int && c == Ctrl_C) +*************** +*** 2504,2510 **** + break; + + case 'u': /* Up half a page */ +- case K_PAGEUP: + scroll = -(Rows / 2); + break; + +--- 2504,2509 ---- +*************** +*** 2513,2522 **** +--- 2512,2523 ---- + break; + + case 'b': /* one page back */ ++ case K_PAGEUP: + scroll = -(Rows - 1); + break; + + case ' ': /* one extra page */ ++ case 'f': + case K_PAGEDOWN: + case K_LEFTMOUSE: + scroll = Rows - 1; +*** ../vim-7.2.117/src/version.c Sun Feb 22 00:01:42 2009 +--- src/version.c Sun Feb 22 00:57:16 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 118, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +109. You actually read -- and enjoy -- lists like this. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/vi/vim-7.2/7.2.119 b/vi/vim-7.2/7.2.119 new file mode 100644 index 0000000..f31f2e6 --- /dev/null +++ b/vi/vim-7.2/7.2.119 @@ -0,0 +1,51 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.119 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.119 +Problem: Status line is redrawn too often. +Solution: Check ScreeenLinesUC[] properly. (Yukihiro Nakadaira) +Files: src/screen.c + + +*** ../vim-7.2.118/src/screen.c Sun Feb 22 00:01:42 2009 +--- src/screen.c Sun Feb 22 01:07:38 2009 +*************** +*** 6362,6368 **** + && c == 0x8e + && ScreenLines2[off] != ptr[1]) + || (enc_utf8 +! && (ScreenLinesUC[off] != (u8char_T)u8c + || screen_comp_differs(off, u8cc))) + #endif + || ScreenAttrs[off] != attr +--- 6362,6368 ---- + && c == 0x8e + && ScreenLines2[off] != ptr[1]) + || (enc_utf8 +! && (ScreenLinesUC[off] != (u8char_T)(c >= 0x80 ? u8c : 0) + || screen_comp_differs(off, u8cc))) + #endif + || ScreenAttrs[off] != attr +*** ../vim-7.2.118/src/version.c Sun Feb 22 00:58:03 2009 +--- src/version.c Sun Feb 22 01:09:54 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 119, + /**/ + +-- +In a world without walls and borders, who needs windows and gates? + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/vi/vim-7.2/7.2.120 b/vi/vim-7.2/7.2.120 new file mode 100644 index 0000000..cf687f3 --- /dev/null +++ b/vi/vim-7.2/7.2.120 @@ -0,0 +1,277 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.120 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.120 +Problem: When opening the quickfix window or splitting the window and + setting the location list, the location list is copied and then + deleted, which is inefficient. +Solution: Don't copy the location list when not needed. (Lech Lorens) +Files: src/quickfix.c, src/vim.h, src/window.c + + +*** ../vim-7.2.119/src/quickfix.c Sun Feb 22 00:01:42 2009 +--- src/quickfix.c Sat Feb 21 22:54:25 2009 +*************** +*** 1419,1424 **** +--- 1419,1425 ---- + int opened_window = FALSE; + win_T *win; + win_T *altwin; ++ int flags; + #endif + win_T *oldwin = curwin; + int print_message = TRUE; +*************** +*** 1531,1537 **** + if (qf_ptr->qf_type == 1 && (!curwin->w_buffer->b_help || cmdmod.tab != 0)) + { + win_T *wp; +- int n; + + if (cmdmod.tab != 0) + wp = NULL; +--- 1532,1537 ---- +*************** +*** 1547,1559 **** + * Split off help window; put it at far top if no position + * specified, the current window is vertically split and narrow. + */ +! n = WSP_HELP; + # ifdef FEAT_VERTSPLIT + if (cmdmod.split == 0 && curwin->w_width != Columns + && curwin->w_width < 80) +! n |= WSP_TOP; + # endif +! if (win_split(0, n) == FAIL) + goto theend; + opened_window = TRUE; /* close it when fail */ + +--- 1547,1562 ---- + * Split off help window; put it at far top if no position + * specified, the current window is vertically split and narrow. + */ +! flags = WSP_HELP; + # ifdef FEAT_VERTSPLIT + if (cmdmod.split == 0 && curwin->w_width != Columns + && curwin->w_width < 80) +! flags |= WSP_TOP; + # endif +! if (qi != &ql_info) +! flags |= WSP_NEWLOC; /* don't copy the location list */ +! +! if (win_split(0, flags) == FAIL) + goto theend; + opened_window = TRUE; /* close it when fail */ + +*************** +*** 1563,1569 **** + if (qi != &ql_info) /* not a quickfix list */ + { + /* The new window should use the supplied location list */ +- qf_free_all(curwin); + curwin->w_llist = qi; + qi->qf_refcount++; + } +--- 1566,1571 ---- +*************** +*** 1624,1630 **** + { + ll_ref = curwin->w_llist_ref; + +! if (win_split(0, WSP_ABOVE) == FAIL) + goto failed; /* not enough room for window */ + opened_window = TRUE; /* close it when fail */ + p_swb = empty_option; /* don't split again */ +--- 1626,1635 ---- + { + ll_ref = curwin->w_llist_ref; + +! flags = WSP_ABOVE; +! if (ll_ref != NULL) +! flags |= WSP_NEWLOC; +! if (win_split(0, flags) == FAIL) + goto failed; /* not enough room for window */ + opened_window = TRUE; /* close it when fail */ + p_swb = empty_option; /* don't split again */ +*************** +*** 1636,1642 **** + { + /* The new window should use the location list from the + * location list window */ +- qf_free_all(curwin); + curwin->w_llist = ll_ref; + ll_ref->qf_refcount++; + } +--- 1641,1646 ---- +*************** +*** 2311,2325 **** + if (eap->cmdidx == CMD_copen || eap->cmdidx == CMD_cwindow) + /* Create the new window at the very bottom. */ + win_goto(lastwin); +! if (win_split(height, WSP_BELOW) == FAIL) + return; /* not enough room for window */ + #ifdef FEAT_SCROLLBIND + curwin->w_p_scb = FALSE; + #endif + +- /* Remove the location list for the quickfix window */ +- qf_free_all(curwin); +- + if (eap->cmdidx == CMD_lopen || eap->cmdidx == CMD_lwindow) + { + /* +--- 2315,2326 ---- + if (eap->cmdidx == CMD_copen || eap->cmdidx == CMD_cwindow) + /* Create the new window at the very bottom. */ + win_goto(lastwin); +! if (win_split(height, WSP_BELOW | WSP_NEWLOC) == FAIL) + return; /* not enough room for window */ + #ifdef FEAT_SCROLLBIND + curwin->w_p_scb = FALSE; + #endif + + if (eap->cmdidx == CMD_lopen || eap->cmdidx == CMD_lwindow) + { + /* +*** ../vim-7.2.119/src/vim.h Thu Nov 20 14:11:47 2008 +--- src/vim.h Sat Feb 21 22:53:03 2009 +*************** +*** 1057,1062 **** +--- 1057,1063 ---- + #define WSP_HELP 16 /* creating the help window */ + #define WSP_BELOW 32 /* put new window below/right */ + #define WSP_ABOVE 64 /* put new window above/left */ ++ #define WSP_NEWLOC 128 /* don't copy location list */ + + /* + * arguments for gui_set_shellsize() +*** ../vim-7.2.119/src/window.c Sat Feb 21 20:27:00 2009 +--- src/window.c Sat Feb 21 23:56:41 2009 +*************** +*** 12,18 **** + static int path_is_url __ARGS((char_u *p)); + #if defined(FEAT_WINDOWS) || defined(PROTO) + static int win_split_ins __ARGS((int size, int flags, win_T *newwin, int dir)); +! static void win_init __ARGS((win_T *newp, win_T *oldp)); + static void frame_comp_pos __ARGS((frame_T *topfrp, int *row, int *col)); + static void frame_setheight __ARGS((frame_T *curfrp, int height)); + #ifdef FEAT_VERTSPLIT +--- 12,18 ---- + static int path_is_url __ARGS((char_u *p)); + #if defined(FEAT_WINDOWS) || defined(PROTO) + static int win_split_ins __ARGS((int size, int flags, win_T *newwin, int dir)); +! static void win_init __ARGS((win_T *newp, win_T *oldp, int flags)); + static void frame_comp_pos __ARGS((frame_T *topfrp, int *row, int *col)); + static void frame_setheight __ARGS((frame_T *curfrp, int height)); + #ifdef FEAT_VERTSPLIT +*************** +*** 911,917 **** + return FAIL; + + /* make the contents of the new window the same as the current one */ +! win_init(wp, curwin); + } + + /* +--- 911,917 ---- + return FAIL; + + /* make the contents of the new window the same as the current one */ +! win_init(wp, curwin, flags); + } + + /* +*************** +*** 1160,1170 **** + * Initialize window "newp" from window "oldp". + * Used when splitting a window and when creating a new tab page. + * The windows will both edit the same buffer. + */ + static void +! win_init(newp, oldp) + win_T *newp; + win_T *oldp; + { + int i; + +--- 1160,1174 ---- + * Initialize window "newp" from window "oldp". + * Used when splitting a window and when creating a new tab page. + * The windows will both edit the same buffer. ++ * WSP_NEWLOC may be specified in flags to prevent the location list from ++ * being copied. + */ ++ /*ARGSUSED*/ + static void +! win_init(newp, oldp, flags) + win_T *newp; + win_T *oldp; ++ int flags; + { + int i; + +*************** +*** 1189,1195 **** + copy_jumplist(oldp, newp); + #endif + #ifdef FEAT_QUICKFIX +! copy_loclist(oldp, newp); + #endif + if (oldp->w_localdir != NULL) + newp->w_localdir = vim_strsave(oldp->w_localdir); +--- 1193,1206 ---- + copy_jumplist(oldp, newp); + #endif + #ifdef FEAT_QUICKFIX +! if (flags & WSP_NEWLOC) +! { +! /* Don't copy the location list. */ +! newp->w_llist = NULL; +! newp->w_llist_ref = NULL; +! } +! else +! copy_loclist(oldp, newp); + #endif + if (oldp->w_localdir != NULL) + newp->w_localdir = vim_strsave(oldp->w_localdir); +*************** +*** 3219,3225 **** + else + { + /* First window in new tab page, initialize it from "oldwin". */ +! win_init(curwin, oldwin); + + # ifdef FEAT_SCROLLBIND + /* We don't want scroll-binding in the first window. */ +--- 3230,3236 ---- + else + { + /* First window in new tab page, initialize it from "oldwin". */ +! win_init(curwin, oldwin, 0); + + # ifdef FEAT_SCROLLBIND + /* We don't want scroll-binding in the first window. */ +*** ../vim-7.2.119/src/version.c Sun Feb 22 01:13:45 2009 +--- src/version.c Sun Feb 22 02:32:14 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 120, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +110. You actually volunteer to become your employer's webmaster. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/vi/vim-7.2/7.2.121 b/vi/vim-7.2/7.2.121 new file mode 100644 index 0000000..ea5306f --- /dev/null +++ b/vi/vim-7.2/7.2.121 @@ -0,0 +1,180 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.121 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.121 +Problem: In gvim "!grep a *.c" spews out a lot of text that can't be + stopped with CTRL-C. +Solution: When looping to read and show text, do check for typed characters + every two seconds. +Files: src/os_unix.c + + +*** ../vim-7.2.120/src/os_unix.c Wed Feb 4 14:18:44 2009 +--- src/os_unix.c Sun Feb 22 00:54:05 2009 +*************** +*** 4092,4097 **** +--- 4092,4100 ---- + int fromshell_fd; + garray_T ga; + int noread_cnt; ++ # if defined(HAVE_GETTIMEOFDAY) && defined(HAVE_SYS_TIME_H) ++ struct timeval start_tv; ++ # endif + + # ifdef FEAT_GUI + if (pty_master_fd >= 0) +*************** +*** 4201,4207 **** + ga_init2(&ga, 1, BUFLEN); + + noread_cnt = 0; +! + for (;;) + { + /* +--- 4204,4212 ---- + ga_init2(&ga, 1, BUFLEN); + + noread_cnt = 0; +! # if defined(HAVE_GETTIMEOFDAY) && defined(HAVE_SYS_TIME_H) +! gettimeofday(&start_tv, NULL); +! # endif + for (;;) + { + /* +*************** +*** 4214,4238 **** + * that a typed password is echoed for ssh or gpg command. + * Don't get characters when the child has already + * finished (wait_pid == 0). +- * Don't get extra characters when we already have one. + * Don't read characters unless we didn't get output for a +! * while, avoids that ":r !ls" eats typeahead. + */ + len = 0; + if (!(options & SHELL_EXPAND) + && ((options & + (SHELL_READ|SHELL_WRITE|SHELL_COOKED)) + != (SHELL_READ|SHELL_WRITE|SHELL_COOKED) +! #ifdef FEAT_GUI + || gui.in_use +! #endif + ) + && wait_pid == 0 +! && (ta_len > 0 +! || (noread_cnt > 4 +! && (len = ui_inchar(ta_buf, +! BUFLEN, 10L, 0)) > 0))) + { + /* + * For pipes: + * Check for CTRL-C: send interrupt signal to child. +--- 4219,4252 ---- + * that a typed password is echoed for ssh or gpg command. + * Don't get characters when the child has already + * finished (wait_pid == 0). + * Don't read characters unless we didn't get output for a +! * while (noread_cnt > 4), avoids that ":r !ls" eats +! * typeahead. + */ + len = 0; + if (!(options & SHELL_EXPAND) + && ((options & + (SHELL_READ|SHELL_WRITE|SHELL_COOKED)) + != (SHELL_READ|SHELL_WRITE|SHELL_COOKED) +! # ifdef FEAT_GUI + || gui.in_use +! # endif + ) + && wait_pid == 0 +! && (ta_len > 0 || noread_cnt > 4)) + { ++ if (ta_len == 0) ++ { ++ /* Get extra characters when we don't have any. ++ * Reset the counter and timer. */ ++ noread_cnt = 0; ++ # if defined(HAVE_GETTIMEOFDAY) && defined(HAVE_SYS_TIME_H) ++ gettimeofday(&start_tv, NULL); ++ # endif ++ len = ui_inchar(ta_buf, BUFLEN, 10L, 0); ++ } ++ if (ta_len > 0 || len > 0) ++ { + /* + * For pipes: + * Check for CTRL-C: send interrupt signal to child. +*************** +*** 4334,4342 **** + { + ta_len -= len; + mch_memmove(ta_buf, ta_buf + len, ta_len); +- noread_cnt = 0; + } + } + } + + if (got_int) +--- 4348,4356 ---- + { + ta_len -= len; + mch_memmove(ta_buf, ta_buf + len, ta_len); + } + } ++ } + } + + if (got_int) +*************** +*** 4444,4449 **** +--- 4458,4482 ---- + out_flush(); + if (got_int) + break; ++ ++ # if defined(HAVE_GETTIMEOFDAY) && defined(HAVE_SYS_TIME_H) ++ { ++ struct timeval now_tv; ++ long msec; ++ ++ /* Avoid that we keep looping here without ++ * checking for a CTRL-C for a long time. Don't ++ * break out too often to avoid losing typeahead. */ ++ gettimeofday(&now_tv, NULL); ++ msec = (now_tv.tv_sec - start_tv.tv_sec) * 1000L ++ + (now_tv.tv_usec - start_tv.tv_usec) / 1000L; ++ if (msec > 2000) ++ { ++ noread_cnt = 5; ++ break; ++ } ++ } ++ # endif + } + + /* If we already detected the child has finished break the +*** ../vim-7.2.120/src/version.c Sun Feb 22 02:36:36 2009 +--- src/version.c Sun Feb 22 02:48:03 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 121, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +111. You and your friends get together regularly on IRC, even though + all of you live in the same city. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/vi/vim-7.2/7.2.122 b/vi/vim-7.2/7.2.122 new file mode 100644 index 0000000..18f6989 --- /dev/null +++ b/vi/vim-7.2/7.2.122 @@ -0,0 +1,80 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.122 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.122 +Problem: Invalid memory access when the VimResized autocommand changes + 'columns' and/or 'lines'. +Solution: After VimResized check for changed values. (Dominique Pelle) +Files: src/screen.c + + +*** ../vim-7.2.121/src/screen.c Sun Feb 22 01:13:45 2009 +--- src/screen.c Sun Feb 22 01:07:38 2009 +*************** +*** 7368,7374 **** +--- 7368,7378 ---- + #endif + static int entered = FALSE; /* avoid recursiveness */ + static int done_outofmem_msg = FALSE; /* did outofmem message */ ++ #ifdef FEAT_AUTOCMD ++ int retry_count = 0; + ++ retry: ++ #endif + /* + * Allocation of the screen buffers is done only when the size changes and + * when Rows and Columns have been set and we have started doing full +*************** +*** 7643,7650 **** + --RedrawingDisabled; + + #ifdef FEAT_AUTOCMD +! if (starting == 0) + apply_autocmds(EVENT_VIMRESIZED, NULL, NULL, FALSE, curbuf); + #endif + } + +--- 7647,7663 ---- + --RedrawingDisabled; + + #ifdef FEAT_AUTOCMD +! /* +! * Do not apply autocommands more than 3 times to avoid an endless loop +! * in case applying autocommands always changes Rows or Columns. +! */ +! if (starting == 0 && ++retry_count <= 3) +! { + apply_autocmds(EVENT_VIMRESIZED, NULL, NULL, FALSE, curbuf); ++ /* In rare cases, autocommands may have altered Rows or Columns, ++ * jump back to check if we need to allocate the screen again. */ ++ goto retry; ++ } + #endif + } + +*** ../vim-7.2.121/src/version.c Sun Feb 22 02:51:37 2009 +--- src/version.c Sun Feb 22 21:11:14 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 122, + /**/ + +-- +FIXME and XXX are two common keywords used to mark broken or incomplete code +not only since XXX as a sex reference would grab everbodys attention but +simply due to the fact that Vim would highlight these words. + -- Hendrik Scholz + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/vi/vim-7.2/7.2.123 b/vi/vim-7.2/7.2.123 new file mode 100644 index 0000000..4cf9b81 --- /dev/null +++ b/vi/vim-7.2/7.2.123 @@ -0,0 +1,50 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.123 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.123 +Problem: Typing 'q' at more prompt for ":map" output still displays another + line, causing another more prompt. (Markus Heidelberg) +Solution: Quit listing maps when 'q' typed. +Files: src/getchar.c + + +*** ../vim-7.2.122/src/getchar.c Fri Nov 28 12:05:07 2008 +--- src/getchar.c Sun Feb 22 23:10:45 2009 +*************** +*** 3816,3822 **** +--- 3816,3826 ---- + int len = 1; + + if (msg_didout || msg_silent != 0) ++ { + msg_putchar('\n'); ++ if (got_int) /* 'q' typed at MORE prompt */ ++ return; ++ } + if ((mp->m_mode & (INSERT + CMDLINE)) == INSERT + CMDLINE) + msg_putchar('!'); /* :map! */ + else if (mp->m_mode & INSERT) +*** ../vim-7.2.122/src/version.c Sun Feb 22 21:12:22 2009 +--- src/version.c Sun Feb 22 23:16:29 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 123, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +120. You ask a friend, "What's that big shiny thing?" He says, "It's the sun." + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/vi/vim-7.2/7.2.124 b/vi/vim-7.2/7.2.124 new file mode 100644 index 0000000..eca6bec --- /dev/null +++ b/vi/vim-7.2/7.2.124 @@ -0,0 +1,122 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.124 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.124 +Problem: Typing 'q' at more prompt for ":tselect" output still displays + more lines, causing another more prompt. (Markus Heidelberg) +Solution: Quit listing tags when 'q' typed. +Files: src/tag.c + + +*** ../vim-7.2.123/src/tag.c Sat Feb 21 22:57:10 2009 +--- src/tag.c Mon Feb 23 00:07:24 2009 +*************** +*** 618,624 **** + taglen_advance(taglen); + MSG_PUTS_ATTR(_("file\n"), hl_attr(HLF_T)); + +! for (i = 0; i < num_matches; ++i) + { + parse_match(matches[i], &tagp); + if (!new_tag && ( +--- 618,624 ---- + taglen_advance(taglen); + MSG_PUTS_ATTR(_("file\n"), hl_attr(HLF_T)); + +! for (i = 0; i < num_matches && !got_int; ++i) + { + parse_match(matches[i], &tagp); + if (!new_tag && ( +*************** +*** 655,660 **** +--- 655,662 ---- + } + if (msg_col > 0) + msg_putchar('\n'); ++ if (got_int) ++ break; + msg_advance(15); + + /* print any extra fields */ +*************** +*** 689,694 **** +--- 691,698 ---- + if (msg_col + ptr2cells(p) >= Columns) + { + msg_putchar('\n'); ++ if (got_int) ++ break; + msg_advance(15); + } + p = msg_outtrans_one(p, attr); +*************** +*** 704,709 **** +--- 708,715 ---- + if (msg_col > 15) + { + msg_putchar('\n'); ++ if (got_int) ++ break; + msg_advance(15); + } + } +*************** +*** 734,739 **** +--- 740,747 ---- + { + if (msg_col + (*p == TAB ? 1 : ptr2cells(p)) > Columns) + msg_putchar('\n'); ++ if (got_int) ++ break; + msg_advance(15); + + /* skip backslash used for escaping command char */ +*************** +*** 760,771 **** + if (msg_col) + msg_putchar('\n'); + ui_breakcheck(); +- if (got_int) +- { +- got_int = FALSE; /* only stop the listing */ +- break; +- } + } + ask_for_selection = TRUE; + } + #if defined(FEAT_QUICKFIX) && defined(FEAT_EVAL) +--- 768,776 ---- + if (msg_col) + msg_putchar('\n'); + ui_breakcheck(); + } ++ if (got_int) ++ got_int = FALSE; /* only stop the listing */ + ask_for_selection = TRUE; + } + #if defined(FEAT_QUICKFIX) && defined(FEAT_EVAL) +*** ../vim-7.2.123/src/version.c Sun Feb 22 23:42:08 2009 +--- src/version.c Mon Feb 23 00:51:57 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 124, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +123. You ask the car dealer to install an extra cigarette lighter + on your new car to power your notebook. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/vi/vim-7.2/7.2.125 b/vi/vim-7.2/7.2.125 new file mode 100644 index 0000000..460bdea --- /dev/null +++ b/vi/vim-7.2/7.2.125 @@ -0,0 +1,161 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.125 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.125 +Problem: Leaking memory when reading XPM bitmap for a sign. +Solution: Don't allocate the memory twice. (Dominique Pelle) +Files: src/gui_x11.c + + +*** ../vim-7.2.124/src/gui_x11.c Wed Nov 12 13:07:48 2008 +--- src/gui_x11.c Sun Feb 22 21:58:19 2009 +*************** +*** 1587,1592 **** +--- 1587,1594 ---- + XtCloseDisplay(gui.dpy); + gui.dpy = NULL; + vimShell = (Widget)0; ++ vim_free(gui_argv); ++ gui_argv = NULL; + } + + /* +*************** +*** 1761,1766 **** +--- 1763,1770 ---- + * says that this isn't needed when exiting, so just skip it. */ + XtCloseDisplay(gui.dpy); + #endif ++ vim_free(gui_argv); ++ gui_argv = NULL; + } + + /* +*************** +*** 3439,3485 **** + char_u *signfile; + { + XpmAttributes attrs; +! XImage *sign; + int status; + + /* + * Setup the color substitution table. + */ +- sign = NULL; + if (signfile[0] != NUL && signfile[0] != '-') + { +! sign = (XImage *)alloc(sizeof(XImage)); +! if (sign != NULL) + { +! XpmColorSymbol color[5] = +! { +! {"none", NULL, 0}, +! {"iconColor1", NULL, 0}, +! {"bottomShadowColor", NULL, 0}, +! {"topShadowColor", NULL, 0}, +! {"selectColor", NULL, 0} +! }; +! attrs.valuemask = XpmColorSymbols; +! attrs.numsymbols = 2; +! attrs.colorsymbols = color; +! attrs.colorsymbols[0].pixel = gui.back_pixel; +! attrs.colorsymbols[1].pixel = gui.norm_pixel; +! status = XpmReadFileToImage(gui.dpy, (char *)signfile, + &sign, NULL, &attrs); +! +! if (status == 0) +! { +! /* Sign width is fixed at two columns now. +! if (sign->width > gui.sign_width) +! gui.sign_width = sign->width + 8; */ +! } +! else +! { +! vim_free(sign); +! sign = NULL; +! EMSG(_(e_signdata)); +! } + } + } + + return (void *)sign; +--- 3443,3479 ---- + char_u *signfile; + { + XpmAttributes attrs; +! XImage *sign = NULL; + int status; + + /* + * Setup the color substitution table. + */ + if (signfile[0] != NUL && signfile[0] != '-') + { +! XpmColorSymbol color[5] = + { +! {"none", NULL, 0}, +! {"iconColor1", NULL, 0}, +! {"bottomShadowColor", NULL, 0}, +! {"topShadowColor", NULL, 0}, +! {"selectColor", NULL, 0} +! }; +! attrs.valuemask = XpmColorSymbols; +! attrs.numsymbols = 2; +! attrs.colorsymbols = color; +! attrs.colorsymbols[0].pixel = gui.back_pixel; +! attrs.colorsymbols[1].pixel = gui.norm_pixel; +! status = XpmReadFileToImage(gui.dpy, (char *)signfile, + &sign, NULL, &attrs); +! if (status == 0) +! { +! /* Sign width is fixed at two columns now. +! if (sign->width > gui.sign_width) +! gui.sign_width = sign->width + 8; */ + } ++ else ++ EMSG(_(e_signdata)); + } + + return (void *)sign; +*************** +*** 3489,3496 **** + gui_mch_destroy_sign(sign) + void *sign; + { +! XFree(((XImage *)sign)->data); +! vim_free(sign); + } + #endif + +--- 3483,3489 ---- + gui_mch_destroy_sign(sign) + void *sign; + { +! XDestroyImage((XImage*)sign); + } + #endif + +*** ../vim-7.2.124/src/version.c Mon Feb 23 00:53:35 2009 +--- src/version.c Tue Feb 24 04:09:33 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 125, + /**/ + +-- +I have a watch cat! Just break in and she'll watch. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/vi/vim-7.2/7.2.126 b/vi/vim-7.2/7.2.126 new file mode 100644 index 0000000..fe2dd65 --- /dev/null +++ b/vi/vim-7.2/7.2.126 @@ -0,0 +1,174 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.126 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.126 +Problem: When EXITFREE is defined signs are not freed. +Solution: Free all signs on exit. Also free keymaps. (Dominique Pelle) +Files: src/misc2.c, src/ex_cmds.c, src/proto/ex_cmds.pro + + +*** ../vim-7.2.125/src/misc2.c Thu Jan 22 21:31:24 2009 +--- src/misc2.c Sun Feb 22 22:04:53 2009 +*************** +*** 1010,1015 **** +--- 1010,1018 ---- + # if defined(FEAT_PROFILE) + do_cmdline_cmd((char_u *)"profdel *"); + # endif ++ # if defined(FEAT_KEYMAP) ++ do_cmdline_cmd((char_u *)"set keymap="); ++ #endif + + # ifdef FEAT_TITLE + free_titles(); +*************** +*** 1034,1039 **** +--- 1037,1045 ---- + free_regexp_stuff(); + free_tag_stuff(); + free_cd_dir(); ++ # ifdef FEAT_SIGNS ++ free_signs(); ++ # endif + # ifdef FEAT_EVAL + set_expr_line(NULL); + # endif +*** ../vim-7.2.125/src/ex_cmds.c Wed Feb 11 16:02:29 2009 +--- src/ex_cmds.c Sun Feb 22 22:07:08 2009 +*************** +*** 6541,6546 **** +--- 6541,6547 ---- + static int last_sign_typenr = MAX_TYPENR; /* is decremented */ + + static void sign_list_defined __ARGS((sign_T *sp)); ++ static void sign_undefine __ARGS((sign_T *sp, sign_T *sp_prev)); + + /* + * ":sign" command +*************** +*** 6749,6772 **** + /* ":sign list {name}" */ + sign_list_defined(sp); + else +- { + /* ":sign undefine {name}" */ +! vim_free(sp->sn_name); +! vim_free(sp->sn_icon); +! #ifdef FEAT_SIGN_ICONS +! if (sp->sn_image != NULL) +! { +! out_flush(); +! gui_mch_destroy_sign(sp->sn_image); +! } +! #endif +! vim_free(sp->sn_text); +! if (sp_prev == NULL) +! first_sign = sp->sn_next; +! else +! sp_prev->sn_next = sp->sn_next; +! vim_free(sp); +! } + } + } + else +--- 6750,6757 ---- + /* ":sign list {name}" */ + sign_list_defined(sp); + else + /* ":sign undefine {name}" */ +! sign_undefine(sp, sp_prev); + } + } + else +*************** +*** 7015,7020 **** +--- 7000,7030 ---- + } + + /* ++ * Undefine a sign and free its memory. ++ */ ++ static void ++ sign_undefine(sp, sp_prev) ++ sign_T *sp; ++ sign_T *sp_prev; ++ { ++ vim_free(sp->sn_name); ++ vim_free(sp->sn_icon); ++ #ifdef FEAT_SIGN_ICONS ++ if (sp->sn_image != NULL) ++ { ++ out_flush(); ++ gui_mch_destroy_sign(sp->sn_image); ++ } ++ #endif ++ vim_free(sp->sn_text); ++ if (sp_prev == NULL) ++ first_sign = sp->sn_next; ++ else ++ sp_prev->sn_next = sp->sn_next; ++ vim_free(sp); ++ } ++ ++ /* + * Get highlighting attribute for sign "typenr". + * If "line" is TRUE: line highl, if FALSE: text highl. + */ +*************** +*** 7088,7093 **** +--- 7098,7115 ---- + return (char_u *)_("[Deleted]"); + } + ++ #if defined(EXITFREE) || defined(PROTO) ++ /* ++ * Undefine/free all signs. ++ */ ++ void ++ free_signs() ++ { ++ while (first_sign != NULL) ++ sign_undefine(first_sign, NULL); ++ } ++ #endif ++ + #endif + + #if defined(FEAT_GUI) || defined(FEAT_CLIENTSERVER) || defined(PROTO) +*** ../vim-7.2.125/src/proto/ex_cmds.pro Sat Nov 15 14:10:23 2008 +--- src/proto/ex_cmds.pro Sun Feb 22 22:04:53 2009 +*************** +*** 40,45 **** +--- 40,46 ---- + int read_viminfo_sub_string __ARGS((vir_T *virp, int force)); + void write_viminfo_sub_string __ARGS((FILE *fp)); + void free_old_sub __ARGS((void)); ++ void free_signs __ARGS((void)); + int prepare_tagpreview __ARGS((int undo_sync)); + void ex_help __ARGS((exarg_T *eap)); + char_u *check_help_lang __ARGS((char_u *arg)); +*** ../vim-7.2.125/src/version.c Tue Feb 24 04:11:07 2009 +--- src/version.c Tue Feb 24 04:24:46 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 126, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +125. You begin to wonder how often it REALLY is necessary to get up + and shower or bathe. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/vi/vim-7.2/7.2.127 b/vi/vim-7.2/7.2.127 new file mode 100644 index 0000000..662fe0f --- /dev/null +++ b/vi/vim-7.2/7.2.127 @@ -0,0 +1,59 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.127 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.127 +Problem: When listing mappings and a wrapping line causes the more prompt, + after typing 'q' there can be another more prompt. (Markus + Heidelberg) +Solution: Set "lines_left" to allow more lines to be displayed. +Files: src/message.c + + +*** ../vim-7.2.126/src/message.c Sun Feb 22 00:58:03 2009 +--- src/message.c Mon Feb 23 04:17:39 2009 +*************** +*** 2553,2559 **** + { + /* Jump to the choices of the dialog. */ + retval = TRUE; +- lines_left = Rows - 1; + } + else + #endif +--- 2553,2558 ---- +*************** +*** 2561,2566 **** +--- 2560,2568 ---- + got_int = TRUE; + quit_more = TRUE; + } ++ /* When there is some more output (wrapping line) display that ++ * without another prompt. */ ++ lines_left = Rows - 1; + break; + + #ifdef FEAT_CLIPBOARD +*** ../vim-7.2.126/src/version.c Tue Feb 24 04:28:40 2009 +--- src/version.c Tue Feb 24 04:35:38 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 127, + /**/ + +-- +The difference between theory and practice, is that in theory, there +is no difference between theory and practice. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/vi/vim-7.2/7.2.128 b/vi/vim-7.2/7.2.128 new file mode 100644 index 0000000..0c17f18 --- /dev/null +++ b/vi/vim-7.2/7.2.128 @@ -0,0 +1,52 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.128 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.128 (after 7.2.055) +Problem: Using ":lcd" makes session files not work. +Solution: Compare return value of mch_chdir() properly. (Andreas Bernauer) +Files: src/ex_docmd.c + + +*** ../vim-7.2.127/src/ex_docmd.c Sat Feb 21 20:36:30 2009 +--- src/ex_docmd.c Sun Mar 1 02:39:38 2009 +*************** +*** 8792,8798 **** + else if (*dirnow != NUL + && (ssop_flags & SSOP_CURDIR) && globaldir != NULL) + { +! if (mch_chdir((char *)globaldir) == OK) + shorten_fnames(TRUE); + } + +--- 8799,8805 ---- + else if (*dirnow != NUL + && (ssop_flags & SSOP_CURDIR) && globaldir != NULL) + { +! if (mch_chdir((char *)globaldir) == 0) + shorten_fnames(TRUE); + } + +*** ../vim-7.2.127/src/version.c Tue Feb 24 04:36:50 2009 +--- src/version.c Sun Mar 1 02:42:47 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 128, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +138. You develop a liking for cold coffee. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/vi/vim-7.2/7.2.129 b/vi/vim-7.2/7.2.129 new file mode 100644 index 0000000..ca756cf --- /dev/null +++ b/vi/vim-7.2/7.2.129 @@ -0,0 +1,73 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.129 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.129 +Problem: When opening a command window from input() it uses the search + history. +Solution: Use get_cmdline_type(). (James Vega) +Files: src/ex_getln.c + + +*** ../vim-7.2.128/src/ex_getln.c Fri Nov 28 10:59:57 2008 +--- src/ex_getln.c Mon Mar 2 00:53:39 2009 +*************** +*** 6047,6055 **** + # endif + return K_IGNORE; + } +! cmdwin_type = ccline.cmdfirstc; +! if (cmdwin_type == NUL) +! cmdwin_type = '-'; + + /* Create the command-line buffer empty. */ + (void)do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, ECMD_HIDE, NULL); +--- 6062,6068 ---- + # endif + return K_IGNORE; + } +! cmdwin_type = get_cmdline_type(); + + /* Create the command-line buffer empty. */ + (void)do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, ECMD_HIDE, NULL); +*************** +*** 6073,6079 **** + /* Showing the prompt may have set need_wait_return, reset it. */ + need_wait_return = FALSE; + +! histtype = hist_char2type(ccline.cmdfirstc); + if (histtype == HIST_CMD || histtype == HIST_DEBUG) + { + if (p_wc == TAB) +--- 6086,6092 ---- + /* Showing the prompt may have set need_wait_return, reset it. */ + need_wait_return = FALSE; + +! histtype = hist_char2type(cmdwin_type); + if (histtype == HIST_CMD || histtype == HIST_DEBUG) + { + if (p_wc == TAB) +*** ../vim-7.2.128/src/version.c Sun Mar 1 02:43:50 2009 +--- src/version.c Mon Mar 2 02:10:11 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 129, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +146. You experience ACTUAL physical withdrawal symptoms when away + from your 'puter and the net. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/vi/vim-7.2/7.2.130 b/vi/vim-7.2/7.2.130 new file mode 100644 index 0000000..8d65468 --- /dev/null +++ b/vi/vim-7.2/7.2.130 @@ -0,0 +1,413 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.130 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.130 +Problem: Vim may haing until CTRL-C is typed when using CTRL-Z. +Solution: Avoid using pause(). Also use "volatile" for variables used in + signal functions. (Dominique Pelle) +Files: src/auto/configure, src/configure.in, src/config.h.in, + src/globals.h, src/os_unix.c + + +*** ../vim-7.2.129/src/auto/configure Thu Nov 20 10:36:04 2008 +--- src/auto/configure Mon Mar 2 02:36:52 2009 +*************** +*** 11565,11570 **** +--- 11565,11631 ---- + + fi + ++ { $as_echo "$as_me:$LINENO: checking for working volatile" >&5 ++ $as_echo_n "checking for working volatile... " >&6; } ++ if test "${ac_cv_c_volatile+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++ else ++ cat >conftest.$ac_ext <<_ACEOF ++ /* confdefs.h. */ ++ _ACEOF ++ cat confdefs.h >>conftest.$ac_ext ++ cat >>conftest.$ac_ext <<_ACEOF ++ /* end confdefs.h. */ ++ ++ int ++ main () ++ { ++ ++ volatile int x; ++ int * volatile y = (int *) 0; ++ return !x && !y; ++ ; ++ return 0; ++ } ++ _ACEOF ++ rm -f conftest.$ac_objext ++ if { (ac_try="$ac_compile" ++ case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++ esac ++ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++ $as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ac_cv_c_volatile=yes ++ else ++ $as_echo "$as_me: failed program was:" >&5 ++ sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_cv_c_volatile=no ++ fi ++ ++ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ fi ++ { $as_echo "$as_me:$LINENO: result: $ac_cv_c_volatile" >&5 ++ $as_echo "$ac_cv_c_volatile" >&6; } ++ if test $ac_cv_c_volatile = no; then ++ ++ cat >>confdefs.h <<\_ACEOF ++ #define volatile /**/ ++ _ACEOF ++ ++ fi ++ + { $as_echo "$as_me:$LINENO: checking for mode_t" >&5 + $as_echo_n "checking for mode_t... " >&6; } + if test "${ac_cv_type_mode_t+set}" = set; then +*** ../vim-7.2.129/src/configure.in Thu Nov 20 10:36:04 2008 +--- src/configure.in Sun Feb 22 21:47:44 2009 +*************** +*** 2148,2153 **** +--- 2148,2154 ---- + dnl Checks for typedefs, structures, and compiler characteristics. + AC_PROG_GCC_TRADITIONAL + AC_C_CONST ++ AC_C_VOLATILE + AC_TYPE_MODE_T + AC_TYPE_OFF_T + AC_TYPE_PID_T +*** ../vim-7.2.129/src/config.h.in Tue Jun 24 23:47:46 2008 +--- src/config.h.in Mon Feb 23 00:13:17 2009 +*************** +*** 50,55 **** +--- 50,58 ---- + /* Define to empty if the keyword does not work. */ + #undef const + ++ /* Define to empty if the keyword does not work. */ ++ #undef volatile ++ + /* Define to `int' if doesn't define. */ + #undef mode_t + +*** ../vim-7.2.129/src/globals.h Tue Jan 6 16:13:42 2009 +--- src/globals.h Mon Mar 2 02:40:16 2009 +*************** +*** 482,489 **** + /* + * While executing external commands or in Ex mode, should not insert GUI + * events in the input buffer: Set hold_gui_events to non-zero. + */ +! EXTERN int hold_gui_events INIT(= 0); + + /* + * When resizing the shell is postponed, remember the new size, and call +--- 482,491 ---- + /* + * While executing external commands or in Ex mode, should not insert GUI + * events in the input buffer: Set hold_gui_events to non-zero. ++ * ++ * volatile because it is used in signal handler sig_sysmouse(). + */ +! EXTERN volatile int hold_gui_events INIT(= 0); + + /* + * When resizing the shell is postponed, remember the new size, and call +*************** +*** 597,603 **** + EXTERN int really_exiting INIT(= FALSE); + /* TRUE when we are sure to exit, e.g., after + * a deadly signal */ +! EXTERN int full_screen INIT(= FALSE); + /* TRUE when doing full-screen output + * otherwise only writing some messages */ + +--- 599,606 ---- + EXTERN int really_exiting INIT(= FALSE); + /* TRUE when we are sure to exit, e.g., after + * a deadly signal */ +! /* volatile because it is used in signal handler deathtrap(). */ +! EXTERN volatile int full_screen INIT(= FALSE); + /* TRUE when doing full-screen output + * otherwise only writing some messages */ + +*************** +*** 739,748 **** + */ + EXTERN JMP_BUF lc_jump_env; /* argument to SETJMP() */ + # ifdef SIGHASARG +! EXTERN int lc_signal; /* catched signal number, 0 when no was signal +! catched; used for mch_libcall() */ + # endif +! EXTERN int lc_active INIT(= FALSE); /* TRUE when lc_jump_env is valid. */ + #endif + + #if defined(FEAT_MBYTE) || defined(FEAT_POSTSCRIPT) +--- 747,758 ---- + */ + EXTERN JMP_BUF lc_jump_env; /* argument to SETJMP() */ + # ifdef SIGHASARG +! /* volatile because it is used in signal handlers. */ +! EXTERN volatile int lc_signal; /* caught signal number, 0 when no was signal +! caught; used for mch_libcall() */ + # endif +! /* volatile because it is used in signal handler deathtrap(). */ +! EXTERN volatile int lc_active INIT(= FALSE); /* TRUE when lc_jump_env is valid. */ + #endif + + #if defined(FEAT_MBYTE) || defined(FEAT_POSTSCRIPT) +*************** +*** 986,992 **** + EXTERN FILE *scriptout INIT(= NULL); /* stream to write script to */ + EXTERN int read_cmd_fd INIT(= 0); /* fd to read commands from */ + +! EXTERN int got_int INIT(= FALSE); /* set to TRUE when interrupt + signal occurred */ + #ifdef USE_TERM_CONSOLE + EXTERN int term_console INIT(= FALSE); /* set to TRUE when console used */ +--- 996,1003 ---- + EXTERN FILE *scriptout INIT(= NULL); /* stream to write script to */ + EXTERN int read_cmd_fd INIT(= 0); /* fd to read commands from */ + +! /* volatile because it is used in signal handler catch_sigint(). */ +! EXTERN volatile int got_int INIT(= FALSE); /* set to TRUE when interrupt + signal occurred */ + #ifdef USE_TERM_CONSOLE + EXTERN int term_console INIT(= FALSE); /* set to TRUE when console used */ +*** ../vim-7.2.129/src/os_unix.c Sun Feb 22 02:51:37 2009 +--- src/os_unix.c Mon Mar 2 01:05:50 2009 +*************** +*** 181,187 **** + && defined(FEAT_TITLE) && !defined(FEAT_GUI_GTK) + # define SET_SIG_ALARM + static RETSIGTYPE sig_alarm __ARGS(SIGPROTOARG); +! static int sig_alarm_called; + #endif + static RETSIGTYPE deathtrap __ARGS(SIGPROTOARG); + +--- 181,188 ---- + && defined(FEAT_TITLE) && !defined(FEAT_GUI_GTK) + # define SET_SIG_ALARM + static RETSIGTYPE sig_alarm __ARGS(SIGPROTOARG); +! /* volatile because it is used in signal handler sig_alarm(). */ +! static volatile int sig_alarm_called; + #endif + static RETSIGTYPE deathtrap __ARGS(SIGPROTOARG); + +*************** +*** 201,213 **** + # define SIG_ERR ((RETSIGTYPE (*)())-1) + #endif + +! static int do_resize = FALSE; + #ifndef __EMX__ + static char_u *extra_shell_arg = NULL; + static int show_shell_mess = TRUE; + #endif +! static int deadly_signal = 0; /* The signal we caught */ +! static int in_mch_delay = FALSE; /* sleeping in mch_delay() */ + + static int curr_tmode = TMODE_COOK; /* contains current terminal mode */ + +--- 202,217 ---- + # define SIG_ERR ((RETSIGTYPE (*)())-1) + #endif + +! /* volatile because it is used in signal handler sig_winch(). */ +! static volatile int do_resize = FALSE; + #ifndef __EMX__ + static char_u *extra_shell_arg = NULL; + static int show_shell_mess = TRUE; + #endif +! /* volatile because it is used in signal handler deathtrap(). */ +! static volatile int deadly_signal = 0; /* The signal we caught */ +! /* volatile because it is used in signal handler deathtrap(). */ +! static volatile int in_mch_delay = FALSE; /* sleeping in mch_delay() */ + + static int curr_tmode = TMODE_COOK; /* contains current terminal mode */ + +*************** +*** 802,808 **** + #endif + + /* +! * We need correct potatotypes for a signal function, otherwise mean compilers + * will barf when the second argument to signal() is ``wrong''. + * Let me try it with a few tricky defines from my own osdef.h (jw). + */ +--- 806,812 ---- + #endif + + /* +! * We need correct prototypes for a signal function, otherwise mean compilers + * will barf when the second argument to signal() is ``wrong''. + * Let me try it with a few tricky defines from my own osdef.h (jw). + */ +*************** +*** 1068,1080 **** + SIGRETURN; + } + +! #ifdef _REENTRANT + /* + * On Solaris with multi-threading, suspending might not work immediately. + * Catch the SIGCONT signal, which will be used as an indication whether the + * suspending has been done or not. + */ +! static int sigcont_received; + static RETSIGTYPE sigcont_handler __ARGS(SIGPROTOARG); + + /* +--- 1072,1089 ---- + SIGRETURN; + } + +! #if defined(_REENTRANT) && defined(SIGCONT) + /* + * On Solaris with multi-threading, suspending might not work immediately. + * Catch the SIGCONT signal, which will be used as an indication whether the + * suspending has been done or not. ++ * ++ * On Linux, signal is not always handled immediately either. ++ * See https://bugs.launchpad.net/bugs/291373 ++ * ++ * volatile because it is used in in signal handler sigcont_handler(). + */ +! static volatile int sigcont_received; + static RETSIGTYPE sigcont_handler __ARGS(SIGPROTOARG); + + /* +*************** +*** 1118,1132 **** + } + # endif + +! # ifdef _REENTRANT + sigcont_received = FALSE; + # endif + kill(0, SIGTSTP); /* send ourselves a STOP signal */ +! # ifdef _REENTRANT +! /* When we didn't suspend immediately in the kill(), do it now. Happens +! * on multi-threaded Solaris. */ +! if (!sigcont_received) +! pause(); + # endif + + # ifdef FEAT_TITLE +--- 1127,1154 ---- + } + # endif + +! # if defined(_REENTRANT) && defined(SIGCONT) + sigcont_received = FALSE; + # endif + kill(0, SIGTSTP); /* send ourselves a STOP signal */ +! # if defined(_REENTRANT) && defined(SIGCONT) +! /* +! * Wait for the SIGCONT signal to be handled. It generally happens +! * immediately, but somehow not all the time. Do not call pause() +! * because there would be race condition which would hang Vim if +! * signal happened in between the test of sigcont_received and the +! * call to pause(). If signal is not yet received, call sleep(0) +! * to just yield CPU. Signal should then be received. If somehow +! * it's still not received, sleep 1, 2, 3 ms. Don't bother waiting +! * further if signal is not received after 1+2+3+4 ms (not expected +! * to happen). +! */ +! { +! long wait; +! for (wait = 0; !sigcont_received && wait <= 3L; wait++) +! /* Loop is not entered most of the time */ +! mch_delay(wait, FALSE); +! } + # endif + + # ifdef FEAT_TITLE +*************** +*** 1175,1181 **** + #ifdef SIGTSTP + signal(SIGTSTP, restricted ? SIG_IGN : SIG_DFL); + #endif +! #ifdef _REENTRANT + signal(SIGCONT, sigcont_handler); + #endif + +--- 1197,1203 ---- + #ifdef SIGTSTP + signal(SIGTSTP, restricted ? SIG_IGN : SIG_DFL); + #endif +! #if defined(_REENTRANT) && defined(SIGCONT) + signal(SIGCONT, sigcont_handler); + #endif + +*************** +*** 1234,1240 **** + reset_signals() + { + catch_signals(SIG_DFL, SIG_DFL); +! #ifdef _REENTRANT + /* SIGCONT isn't in the list, because its default action is ignore */ + signal(SIGCONT, SIG_DFL); + #endif +--- 1256,1262 ---- + reset_signals() + { + catch_signals(SIG_DFL, SIG_DFL); +! #if defined(_REENTRANT) && defined(SIGCONT) + /* SIGCONT isn't in the list, because its default action is ignore */ + signal(SIGCONT, SIG_DFL); + #endif +*************** +*** 5899,5905 **** +--- 5921,5929 ---- + * we are going to suspend or starting an external process + * so we shouldn't have problem with this + */ ++ # ifdef SIGTSTP + signal(SIGTSTP, restricted ? SIG_IGN : SIG_DFL); ++ # endif + return 1; /* succeed */ + } + if (gpm_fd == -2) +*** ../vim-7.2.129/src/version.c Mon Mar 2 02:11:09 2009 +--- src/version.c Mon Mar 2 02:36:00 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 130, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +148. You find it easier to dial-up the National Weather Service + Weather/your_town/now.html than to simply look out the window. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/vi/vim-7.2/7.2.131 b/vi/vim-7.2/7.2.131 new file mode 100644 index 0000000..fec2b5e --- /dev/null +++ b/vi/vim-7.2/7.2.131 @@ -0,0 +1,83 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.131 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.131 +Problem: When 'keymap' is cleared may still use the cursor highlighting for + when it's enabled. +Solution: Reset 'iminsert' and 'imsearch'. (partly by Dominique Pelle) + Also avoid ":setlocal" for these options have a global effect. +Files: src/option.c + + +*** ../vim-7.2.130/src/option.c Sat Feb 21 20:27:00 2009 +--- src/option.c Wed Mar 4 04:09:51 2009 +*************** +*** 5797,5810 **** + /* load or unload key mapping tables */ + errmsg = keymap_init(); + +! /* When successfully installed a new keymap switch on using it. */ +! if (*curbuf->b_p_keymap != NUL && errmsg == NULL) + { +! curbuf->b_p_iminsert = B_IMODE_LMAP; +! if (curbuf->b_p_imsearch != B_IMODE_USE_INSERT) +! curbuf->b_p_imsearch = B_IMODE_LMAP; +! set_iminsert_global(); +! set_imsearch_global(); + # ifdef FEAT_WINDOWS + status_redraw_curbuf(); + # endif +--- 5797,5824 ---- + /* load or unload key mapping tables */ + errmsg = keymap_init(); + +! if (errmsg == NULL) + { +! if (*curbuf->b_p_keymap != NUL) +! { +! /* Installed a new keymap, switch on using it. */ +! curbuf->b_p_iminsert = B_IMODE_LMAP; +! if (curbuf->b_p_imsearch != B_IMODE_USE_INSERT) +! curbuf->b_p_imsearch = B_IMODE_LMAP; +! } +! else +! { +! /* Cleared the keymap, may reset 'iminsert' and 'imsearch'. */ +! if (curbuf->b_p_iminsert == B_IMODE_LMAP) +! curbuf->b_p_iminsert = B_IMODE_NONE; +! if (curbuf->b_p_imsearch == B_IMODE_LMAP) +! curbuf->b_p_imsearch = B_IMODE_USE_INSERT; +! } +! if ((opt_flags & OPT_LOCAL) == 0) +! { +! set_iminsert_global(); +! set_imsearch_global(); +! } + # ifdef FEAT_WINDOWS + status_redraw_curbuf(); + # endif +*** ../vim-7.2.130/src/version.c Mon Mar 2 02:44:54 2009 +--- src/version.c Wed Mar 4 04:10:32 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 131, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +157. You fum through a magazine, you first check to see if it has a web + address. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/vi/vim-7.2/7.2.132 b/vi/vim-7.2/7.2.132 new file mode 100644 index 0000000..69e19ee --- /dev/null +++ b/vi/vim-7.2/7.2.132 @@ -0,0 +1,268 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.132 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.132 +Problem: When changing directory during a SwapExists autocmd freed memory + may be accessed. (Dominique Pelle) +Solution: Add the allbuf_lock flag. +Files: src/ex_getln.c, src/globals.h, src/fileio.c, + src/proto/ex_getln.pro + + +*** ../vim-7.2.131/src/ex_getln.c Mon Mar 2 02:11:09 2009 +--- src/ex_getln.c Mon Mar 2 00:53:39 2009 +*************** +*** 2000,2007 **** + + #if defined(FEAT_AUTOCMD) || defined(PROTO) + /* +! * Check if "curbuf_lock" is set and return TRUE when it is and give an error +! * message. + */ + int + curbuf_locked() +--- 2000,2007 ---- + + #if defined(FEAT_AUTOCMD) || defined(PROTO) + /* +! * Check if "curbuf_lock" or "allbuf_lock" is set and return TRUE when it is +! * and give an error message. + */ + int + curbuf_locked() +*************** +*** 2011,2016 **** +--- 2011,2031 ---- + EMSG(_("E788: Not allowed to edit another buffer now")); + return TRUE; + } ++ return allbuf_locked(); ++ } ++ ++ /* ++ * Check if "allbuf_lock" is set and return TRUE when it is and give an error ++ * message. ++ */ ++ int ++ allbuf_locked() ++ { ++ if (allbuf_lock > 0) ++ { ++ EMSG(_("E811: Not allowed to change buffer information now")); ++ return TRUE; ++ } + return FALSE; + } + #endif +*** ../vim-7.2.131/src/globals.h Mon Mar 2 02:44:54 2009 +--- src/globals.h Mon Mar 2 02:40:16 2009 +*************** +*** 619,624 **** +--- 619,629 ---- + EXTERN int curbuf_lock INIT(= 0); + /* non-zero when the current buffer can't be + * changed. Used for FileChangedRO. */ ++ EXTERN int allbuf_lock INIT(= 0); ++ /* non-zero when no buffer name can be ++ * changed, no buffer can be deleted and ++ * current directory can't be changed. ++ * Used for SwapExists et al. */ + #endif + #ifdef FEAT_EVAL + # define HAVE_SANDBOX +*** ../vim-7.2.131/src/fileio.c Wed Dec 31 16:20:54 2008 +--- src/fileio.c Sun Mar 1 23:37:10 2009 +*************** +*** 69,75 **** + static int au_find_group __ARGS((char_u *name)); + + # define AUGROUP_DEFAULT -1 /* default autocmd group */ +! # define AUGROUP_ERROR -2 /* errornouse autocmd group */ + # define AUGROUP_ALL -3 /* all autocmd groups */ + #endif + +--- 69,75 ---- + static int au_find_group __ARGS((char_u *name)); + + # define AUGROUP_DEFAULT -1 /* default autocmd group */ +! # define AUGROUP_ERROR -2 /* erroneous autocmd group */ + # define AUGROUP_ALL -3 /* all autocmd groups */ + #endif + +*************** +*** 144,150 **** + # endif + #endif + static int move_lines __ARGS((buf_T *frombuf, buf_T *tobuf)); +! + + void + filemess(buf, name, s, attr) +--- 144,152 ---- + # endif + #endif + static int move_lines __ARGS((buf_T *frombuf, buf_T *tobuf)); +! #ifdef FEAT_AUTOCMD +! static char *e_auchangedbuf = N_("E812: Autocommands changed buffer or buffer name"); +! #endif + + void + filemess(buf, name, s, attr) +*************** +*** 295,300 **** +--- 297,315 ---- + int conv_restlen = 0; /* nr of bytes in conv_rest[] */ + #endif + ++ #ifdef FEAT_AUTOCMD ++ /* Remember the initial values of curbuf, curbuf->b_ffname and ++ * curbuf->b_fname to detect whether they are altered as a result of ++ * executing nasty autocommands. Also check if "fname" and "sfname" ++ * point to one of these values. */ ++ buf_T *old_curbuf = curbuf; ++ char_u *old_b_ffname = curbuf->b_ffname; ++ char_u *old_b_fname = curbuf->b_fname; ++ int using_b_ffname = (fname == curbuf->b_ffname) ++ || (sfname == curbuf->b_ffname); ++ int using_b_fname = (fname == curbuf->b_fname) ++ || (sfname == curbuf->b_fname); ++ #endif + write_no_eol_lnum = 0; /* in case it was set by the previous read */ + + /* +*************** +*** 589,595 **** +--- 604,624 ---- + #ifdef FEAT_QUICKFIX + if (!bt_dontwrite(curbuf)) + #endif ++ { + check_need_swap(newfile); ++ #ifdef FEAT_AUTOCMD ++ /* SwapExists autocommand may mess things up */ ++ if (curbuf != old_curbuf ++ || (using_b_ffname ++ && (old_b_ffname != curbuf->b_ffname)) ++ || (using_b_fname ++ && (old_b_fname != curbuf->b_fname))) ++ { ++ EMSG(_(e_auchangedbuf)); ++ return FAIL; ++ } ++ #endif ++ } + if (dir_of_file_exists(fname)) + filemess(curbuf, sfname, (char_u *)_("[New File]"), 0); + else +*************** +*** 668,673 **** +--- 697,713 ---- + #endif + { + check_need_swap(newfile); ++ #ifdef FEAT_AUTOCMD ++ if (!read_stdin && (curbuf != old_curbuf ++ || (using_b_ffname && (old_b_ffname != curbuf->b_ffname)) ++ || (using_b_fname && (old_b_fname != curbuf->b_fname)))) ++ { ++ EMSG(_(e_auchangedbuf)); ++ if (!read_buffer) ++ close(fd); ++ return FAIL; ++ } ++ #endif + #ifdef UNIX + /* Set swap file protection bits after creating it. */ + if (swap_mode > 0 && curbuf->b_ml.ml_mfp->mf_fname != NULL) +*************** +*** 698,704 **** + { + int m = msg_scroll; + int n = msg_scrolled; +- buf_T *old_curbuf = curbuf; + + /* + * The file must be closed again, the autocommands may want to change +--- 738,743 ---- +*************** +*** 740,747 **** +--- 779,791 ---- + /* + * Don't allow the autocommands to change the current buffer. + * Try to re-open the file. ++ * ++ * Don't allow the autocommands to change the buffer name either ++ * (cd for example) if it invalidates fname or sfname. + */ + if (!read_stdin && (curbuf != old_curbuf ++ || (using_b_ffname && (old_b_ffname != curbuf->b_ffname)) ++ || (using_b_fname && (old_b_fname != curbuf->b_fname)) + || (fd = mch_open((char *)fname, O_RDONLY | O_EXTRA, 0)) < 0)) + { + --no_wait_return; +*************** +*** 6320,6326 **** + + if (!stuff_empty() || global_busy || !typebuf_typed() + #ifdef FEAT_AUTOCMD +! || autocmd_busy || curbuf_lock > 0 + #endif + ) + need_check_timestamps = TRUE; /* check later */ +--- 6364,6370 ---- + + if (!stuff_empty() || global_busy || !typebuf_typed() + #ifdef FEAT_AUTOCMD +! || autocmd_busy || curbuf_lock > 0 || allbuf_lock > 0 + #endif + ) + need_check_timestamps = TRUE; /* check later */ +*************** +*** 6522,6529 **** +--- 6566,6575 ---- + set_vim_var_string(VV_FCS_REASON, (char_u *)reason, -1); + set_vim_var_string(VV_FCS_CHOICE, (char_u *)"", -1); + # endif ++ ++allbuf_lock; + n = apply_autocmds(EVENT_FILECHANGEDSHELL, + buf->b_fname, buf->b_fname, FALSE, buf); ++ --allbuf_lock; + busy = FALSE; + if (n) + { +*** ../vim-7.2.131/src/proto/ex_getln.pro Fri Nov 28 10:59:57 2008 +--- src/proto/ex_getln.pro Sun Mar 1 00:27:12 2009 +*************** +*** 4,9 **** +--- 4,10 ---- + int text_locked __ARGS((void)); + void text_locked_msg __ARGS((void)); + int curbuf_locked __ARGS((void)); ++ int allbuf_locked __ARGS((void)); + char_u *getexline __ARGS((int c, void *dummy, int indent)); + char_u *getexmodeline __ARGS((int promptc, void *dummy, int indent)); + int cmdline_overstrike __ARGS((void)); +*** ../vim-7.2.131/src/version.c Wed Mar 4 04:11:56 2009 +--- src/version.c Thu Mar 5 03:08:54 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 132, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +168. You have your own domain name. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// -- cgit v1.2.3-24-g4f1b