+++ /dev/null
-To: vim-dev@vim.org
-Subject: patch 6.2.301
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.301
-Problem: The "select all" item from the popup menu doesn't work for Select
- mode.
-Solution: Use the same commands as for the "Edit.select all" menu.
- (Benji Fisher)
-Files: runtime/menu.vim
-
-
-*** ../vim-6.2.301/runtime/menu.vim Sun Jan 18 21:19:56 2004
---- runtime/menu.vim Mon Mar 1 16:43:00 2004
-***************
-*** 2,8 ****
- " You can also use this as a start for your own set of menus.
- "
- " Maintainer: Bram Moolenaar <Bram@vim.org>
-! " Last Change: 2004 Jan 08
-
- " Note that ":an" (short for ":anoremenu") is often used to make a menu work
- " in all modes and avoid side effects from mappings defined by the user.
---- 2,8 ----
- " You can also use this as a start for your own set of menus.
- "
- " Maintainer: Bram Moolenaar <Bram@vim.org>
-! " Last Change: 2004 Mar 01
-
- " Note that ":an" (short for ":anoremenu") is often used to make a menu work
- " in all modes and avoid side effects from mappings defined by the user.
-***************
-*** 145,150 ****
---- 145,161 ----
- nnoremap <silent> <script> <SID>Paste "=@+.'xy'<CR>gPFx"_2x
- endif
-
-+ " Use maps for items that are present both in Edit and Popup menu.
-+ if has("virtualedit")
-+ vnoremap <script> <SID>vPaste "-c<Esc><SID>Paste
-+ inoremap <script> <SID>iPaste <Esc><SID>Pastegi
-+ else
-+ vnoremap <script> <SID>vPaste "-c<Esc>gix<Esc><SID>Paste"_x
-+ inoremap <script> <SID>iPaste x<Esc><SID>Paste"_s
-+ endif
-+ nnoremap <SID>SelectAll :exe "norm gg" . (&slm == "" ? "VG" : "gH\<C-O>G")<CR>
-+
-+
- " Edit menu
- an 20.310 &Edit.&Undo<Tab>u u
- an 20.320 &Edit.&Redo<Tab>^R <C-R>
-***************
-*** 156,168 ****
- cnoremenu 20.350 &Edit.&Copy<Tab>"+y <C-Y>
- nnoremenu 20.360 &Edit.&Paste<Tab>"+gP "+gP
- cnoremenu &Edit.&Paste<Tab>"+gP <C-R>+
-! if has("virtualedit")
-! vnoremenu <script> &Edit.&Paste<Tab>"+gP "-c<Esc><SID>Paste
-! inoremenu <script> &Edit.&Paste<Tab>"+gP <Esc><SID>Pastegi
-! else
-! vnoremenu <script> &Edit.&Paste<Tab>"+gP "-c<Esc>gix<Esc><SID>Paste"_x
-! inoremenu <script> &Edit.&Paste<Tab>"+gP x<Esc><SID>Paste"_s
-! endif
- nnoremenu 20.370 &Edit.Put\ &Before<Tab>[p [p
- inoremenu &Edit.Put\ &Before<Tab>[p <C-O>[p
- nnoremenu 20.380 &Edit.Put\ &After<Tab>]p ]p
---- 167,174 ----
- cnoremenu 20.350 &Edit.&Copy<Tab>"+y <C-Y>
- nnoremenu 20.360 &Edit.&Paste<Tab>"+gP "+gP
- cnoremenu &Edit.&Paste<Tab>"+gP <C-R>+
-! vnoremenu <script> &Edit.&Paste<Tab>"+gP <SID>vPaste
-! inoremenu <script> &Edit.&Paste<Tab>"+gP <SID>iPaste
- nnoremenu 20.370 &Edit.Put\ &Before<Tab>[p [p
- inoremenu &Edit.Put\ &Before<Tab>[p <C-O>[p
- nnoremenu 20.380 &Edit.Put\ &After<Tab>]p ]p
-***************
-*** 170,176 ****
- if has("win32") || has("win16")
- vnoremenu 20.390 &Edit.&Delete<Tab>x x
- endif
-! an <silent> 20.400 &Edit.&Select\ all<Tab>ggVG :if &slm != ""<Bar>exe ":norm gggH<C-O>G"<Bar>else<Bar>exe ":norm ggVG"<Bar>endif<CR>
-
- an 20.405 &Edit.-SEP2- <Nop>
- if has("win32") || has("win16") || has("gui_gtk") || has("gui_motif")
---- 176,183 ----
- if has("win32") || has("win16")
- vnoremenu 20.390 &Edit.&Delete<Tab>x x
- endif
-! noremenu <script> <silent> 20.400 &Edit.&Select\ All<Tab>ggVG <C-\><C-N><SID>SelectAll
-! noremenu! <script> <silent> 20.400 &Edit.&Select\ All<Tab>ggVG <C-\><C-N><SID>SelectAll
-
- an 20.405 &Edit.-SEP2- <Nop>
- if has("win32") || has("win16") || has("gui_gtk") || has("gui_motif")
-***************
-*** 756,775 ****
- cnoremenu 1.30 PopUp.&Copy <C-Y>
- nnoremenu 1.40 PopUp.&Paste "+gP
- cnoremenu 1.40 PopUp.&Paste <C-R>+
-! if has("virtualedit")
-! vnoremenu <script> 1.40 PopUp.&Paste "-c<Esc><SID>Paste
-! inoremenu <script> 1.40 PopUp.&Paste <Esc><SID>Pastegi
-! else
-! vnoremenu <script> 1.40 PopUp.&Paste "-c<Esc>gix<Esc><SID>Paste"_x
-! inoremenu <script> 1.40 PopUp.&Paste x<Esc><SID>Paste"_s
-! endif
- vnoremenu 1.50 PopUp.&Delete x
- an 1.55 PopUp.-SEP2- <Nop>
- vnoremenu 1.60 PopUp.Select\ Blockwise <C-V>
- an 1.70 PopUp.Select\ &Word vaw
- an 1.80 PopUp.Select\ &Line V
- an 1.90 PopUp.Select\ &Block <C-V>
-! an 1.100 PopUp.Select\ &All ggVG
-
- " The GUI toolbar (for MS-Windows and GTK)
- if has("toolbar")
---- 763,779 ----
- cnoremenu 1.30 PopUp.&Copy <C-Y>
- nnoremenu 1.40 PopUp.&Paste "+gP
- cnoremenu 1.40 PopUp.&Paste <C-R>+
-! vnoremenu <script> 1.40 PopUp.&Paste <SID>vPaste
-! inoremenu <script> 1.40 PopUp.&Paste <SID>iPaste
- vnoremenu 1.50 PopUp.&Delete x
- an 1.55 PopUp.-SEP2- <Nop>
- vnoremenu 1.60 PopUp.Select\ Blockwise <C-V>
- an 1.70 PopUp.Select\ &Word vaw
- an 1.80 PopUp.Select\ &Line V
- an 1.90 PopUp.Select\ &Block <C-V>
-! noremenu <script> <silent> 1.100 PopUp.Select\ &All <C-\><C-N><SID>SelectAll
-! noremenu! <script> <silent> 1.100 PopUp.Select\ &All <C-\><C-N><SID>SelectAll
-!
-
- " The GUI toolbar (for MS-Windows and GTK)
- if has("toolbar")
-*** ../vim-6.2.301/src/version.c Mon Mar 1 10:34:00 2004
---- src/version.c Mon Mar 1 16:39:12 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 301,
- /**/
-
---
-ARTHUR: Will you ask your master if he wants to join my court at Camelot?!
-GUARD #1: But then of course African swallows are not migratory.
-GUARD #2: Oh, yeah...
-GUARD #1: So they couldn't bring a coconut back anyway...
- The Quest for the Holy Grail (Monty Python)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.302
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.302
-Problem: Using "CTRL-O ." in Insert mode doesn't work properly. (Benji
- Fisher)
-Solution: Restore "restart_edit" after an insert command that was not typed.
- Avoid waiting with displaying the mode when there is no text to be
- overwritten.
- Fix that "CTRL-O ." sometimes doesn't put the cursor back after
- the end-of-line. Only reset the flag that CTRL-O was used past
- the end of the line when restarting editing. Update "o_lnum"
- number when inserting text and "o_eol" is set.
-Files: src/edit.c, src/normal.c
-
-
-*** ../vim-6.2.301/src/edit.c Sun Feb 29 20:46:43 2004
---- src/edit.c Mon Mar 1 14:47:55 2004
-***************
-*** 422,431 ****
- }
- #endif
- }
- }
- else
- arrow_used = FALSE;
-- o_eol = FALSE;
-
- /* we are in insert mode now, don't need to start it anymore */
- need_start_insertmode = FALSE;
---- 422,431 ----
- }
- #endif
- }
-+ o_eol = FALSE;
- }
- else
- arrow_used = FALSE;
-
- /* we are in insert mode now, don't need to start it anymore */
- need_start_insertmode = FALSE;
-***************
-*** 779,785 ****
- restart_edit = 'R';
- else
- restart_edit = 'I';
-- o_lnum = curwin->w_cursor.lnum;
- #ifdef FEAT_VIRTUALEDIT
- if (virtual_active())
- o_eol = FALSE; /* cursor always keeps its column */
---- 779,784 ----
-***************
-*** 849,854 ****
---- 848,858 ----
- /*
- * This is the ONLY return from edit()!
- */
-+ /* Always update o_lnum, so that a "CTRL-O ." that adds a line
-+ * still puts the cursor back after the inserted text. */
-+ if (o_eol && gchar_cursor() == NUL)
-+ o_lnum = curwin->w_cursor.lnum;
-+
- if (ins_esc(&count, cmdchar))
- return (c == Ctrl_O);
- continue;
-*** ../vim-6.2.301/src/normal.c Sun Feb 29 21:06:13 2004
---- src/normal.c Mon Mar 1 16:50:17 2004
-***************
-*** 153,158 ****
---- 153,159 ----
- static void nv_normal __ARGS((cmdarg_T *cap));
- static void nv_esc __ARGS((cmdarg_T *oap));
- static void nv_edit __ARGS((cmdarg_T *cap));
-+ static void invoke_edit __ARGS((cmdarg_T *cap, int repl, int cmd, int startln));
- #ifdef FEAT_TEXTOBJ
- static void nv_object __ARGS((cmdarg_T *cap));
- #endif
-***************
-*** 1149,1155 ****
- )
- && (clear_cmdline
- || redraw_cmdline)
-! && msg_didany
- && !msg_nowait
- && KeyTyped)
- || (restart_edit != 0
---- 1150,1156 ----
- )
- && (clear_cmdline
- || redraw_cmdline)
-! && (msg_didout || (msg_didany && msg_scroll))
- && !msg_nowait
- && KeyTyped)
- || (restart_edit != 0
-***************
-*** 6114,6124 ****
- #endif
- stuffcharReadbuff('\r');
- stuffcharReadbuff(ESC);
-! /*
-! * Give 'r' to edit(), to get the redo command right.
-! */
-! if (edit('r', FALSE, cap->count1))
-! cap->retval |= CA_COMMAND_BUSY;
- }
- else
- {
---- 6115,6123 ----
- #endif
- stuffcharReadbuff('\r');
- stuffcharReadbuff(ESC);
-!
-! /* Give 'r' to edit(), to get the redo command right. */
-! invoke_edit(cap, TRUE, 'r', FALSE);
- }
- else
- {
-***************
-*** 6282,6292 ****
- if (virtual_active())
- coladvance(getviscol());
- #endif
-! /* This is a new edit command, not a restart. We don't edit
-! * recursively. */
-! restart_edit = 0;
-! if (edit(cap->arg ? 'V' : 'R', FALSE, cap->count1))
-! cap->retval |= CA_COMMAND_BUSY;
- }
- }
- }
---- 6281,6287 ----
- if (virtual_active())
- coladvance(getviscol());
- #endif
-! invoke_edit(cap, FALSE, cap->arg ? 'V' : 'R', FALSE);
- }
- }
- }
-***************
-*** 6299,6306 ****
- nv_vreplace(cap)
- cmdarg_T *cap;
- {
-- int restart_edit_save;
--
- # ifdef FEAT_VISUAL
- if (VIsual_active)
- {
---- 6294,6299 ----
-***************
-*** 6324,6337 ****
- if (virtual_active())
- coladvance(getviscol());
- # endif
-! /* This is a new edit command, not a restart. Do allow using
-! * CTRL-O rx from Insert mode. */
-! restart_edit_save = restart_edit;
-! restart_edit = 0;
-! if (edit('v', FALSE, cap->count1))
-! cap->retval |= CA_COMMAND_BUSY;
-! if (restart_edit == 0)
-! restart_edit = restart_edit_save;
- }
- }
- }
---- 6317,6323 ----
- if (virtual_active())
- coladvance(getviscol());
- # endif
-! invoke_edit(cap, TRUE, 'v', FALSE);
- }
- }
- }
-***************
-*** 7205,7217 ****
- case 'I':
- beginline(0);
- if (!checkclearopq(oap))
-! {
-! /* This is a new edit command, not a restart. We don't edit
-! * recursively. */
-! restart_edit = 0;
-! if (edit('g', FALSE, cap->count1))
-! cap->retval |= CA_COMMAND_BUSY;
-! }
- break;
-
- #ifdef FEAT_SEARCHPATH
---- 7198,7204 ----
- case 'I':
- beginline(0);
- if (!checkclearopq(oap))
-! invoke_edit(cap, FALSE, 'g', FALSE);
- break;
-
- #ifdef FEAT_SEARCHPATH
-***************
-*** 7394,7404 ****
- #endif
- 0, 0))
- {
-! /* This is a new edit command, not a restart. We don't edit
-! * recursively. */
-! restart_edit = 0;
-! if (edit(cap->cmdchar, TRUE, cap->count1))
-! cap->retval |= CA_COMMAND_BUSY;
- }
- }
- }
---- 7381,7387 ----
- #endif
- 0, 0))
- {
-! invoke_edit(cap, FALSE, cap->cmdchar, TRUE);
- }
- }
- }
-***************
-*** 7413,7421 ****
- if (!checkclearopq(cap->oap))
- {
- /*
-! * if restart_edit is TRUE, the last but one command is repeated
- * instead of the last command (inserting text). This is used for
-! * CTRL-O <.> in insert mode
- */
- if (start_redo(cap->count0, restart_edit != 0 && !arrow_used) == FAIL)
- clearopbeep(cap->oap);
---- 7396,7404 ----
- if (!checkclearopq(cap->oap))
- {
- /*
-! * If "restart_edit" is TRUE, the last but one command is repeated
- * instead of the last command (inserting text). This is used for
-! * CTRL-O <.> in insert mode.
- */
- if (start_redo(cap->count0, restart_edit != 0 && !arrow_used) == FAIL)
- clearopbeep(cap->oap);
-***************
-*** 7979,7990 ****
- }
- #endif
-
-! /* This is a new edit command, not a restart. We don't edit
-! * recursively. */
-! restart_edit = 0;
-! if (edit(cap->cmdchar, FALSE, cap->count1))
-! cap->retval |= CA_COMMAND_BUSY;
- }
- }
-
- #ifdef FEAT_TEXTOBJ
---- 7962,7999 ----
- }
- #endif
-
-! invoke_edit(cap, FALSE, cap->cmdchar, FALSE);
- }
-+ }
-+
-+ /*
-+ * Invoke edit() and take care of "restart_edit" and the return value.
-+ */
-+ static void
-+ invoke_edit(cap, repl, cmd, startln)
-+ cmdarg_T *cap;
-+ int repl; /* "r" or "gr" command */
-+ int cmd;
-+ int startln;
-+ {
-+ int restart_edit_save = 0;
-+
-+ /* Complicated: When the user types "a<C-O>a" we don't want to do Insert
-+ * mode recursively. But when doing "a<C-O>." or "a<C-O>rx" we do allow
-+ * it. */
-+ if (repl || !stuff_empty())
-+ restart_edit_save = restart_edit;
-+ else
-+ restart_edit_save = 0;
-+
-+ /* Always reset "restart_edit", this is not a restarted edit. */
-+ restart_edit = 0;
-+
-+ if (edit(cmd, startln, cap->count1))
-+ cap->retval |= CA_COMMAND_BUSY;
-+
-+ if (restart_edit == 0)
-+ restart_edit = restart_edit_save;
- }
-
- #ifdef FEAT_TEXTOBJ
-*** ../vim-6.2.301/src/version.c Mon Mar 1 16:43:34 2004
---- src/version.c Mon Mar 1 16:46:22 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 302,
- /**/
-
---
-MORTICIAN: Bring out your dead!
- [clang]
- Bring out your dead!
- [clang]
- Bring out your dead!
-CUSTOMER: Here's one -- nine pence.
-DEAD PERSON: I'm not dead!
- 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/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.303
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.303
-Problem: Cannot use Unicode digraphs while 'encoding' is not Unicode.
-Solution: Convert the character from Unicode to 'encoding' when needed.
- Use the Unicode digraphs for the Macintosh. (Eckehard Berns)
-Files: src/digraph.c
-
-
-*** ../vim-6.2.302/src/digraph.c Thu Feb 5 16:04:26 2004
---- src/digraph.c Wed Feb 25 15:12:53 2004
-***************
-*** 390,396 ****
- };
-
- # else
-! # ifdef MACOS
-
- /*
- * Macintosh digraphs
---- 390,396 ----
- };
-
- # else
-! # if defined(MACOS) && !defined(FEAT_MBYTE)
-
- /*
- * Macintosh digraphs
-***************
-*** 813,818 ****
---- 813,819 ----
- {'y', ':', 0xff},
-
- # ifdef FEAT_MBYTE
-+ # define USE_UNICODE_DIGRAPHS
-
- {'A', '-', 0x0100},
- {'a', '-', 0x0101},
-***************
-*** 2110,2115 ****
---- 2111,2149 ----
- }
- }
- #ifdef FEAT_MBYTE
-+ # ifdef USE_UNICODE_DIGRAPHS
-+ if (retval != 0 && !enc_utf8)
-+ {
-+ char_u buf[6], *to;
-+ vimconv_T vc;
-+ int utflen;
-+
-+ /*
-+ * Convert the Unicode digraph to 'encoding'.
-+ */
-+ i = utf_char2bytes(retval, buf);
-+ if (convert_setup(&vc, (char_u *)"utf-8", p_enc) == OK)
-+ {
-+ utflen = i;
-+ to = string_convert(&vc, buf, &i);
-+ if (to != NULL)
-+ {
-+ /* Checking for invalid values isn't very easy. Internal
-+ * latin1 conversion will return char 0xbf in case it can't be
-+ * converted */
-+ if ((i > 1 && !has_mbyte)
-+ || (vc.vc_type == CONV_TO_LATIN1 && utflen != 1
-+ && to[0] == 0xbf))
-+ /* assume invalid value */
-+ retval = 0;
-+ else
-+ retval = (*mb_ptr2char)(to);
-+ vim_free(to);
-+ }
-+ }
-+ }
-+ # endif
-+
- /* Ignore multi-byte characters when not in multi-byte mode. */
- if (!has_mbyte && retval > 0xff)
- retval = 0;
-***************
-*** 2219,2230 ****
- dp = digraphdefault;
- for (i = 0; dp->char1 != NUL && !got_int; ++i)
- {
- if (getexactdigraph(dp->char1, dp->char2, FALSE) == dp->result
-! #ifdef FEAT_MBYTE
- && (has_mbyte || dp->result <= 255)
-! #endif
- )
- printdigraph(dp);
- ++dp;
- ui_breakcheck();
- }
---- 2253,2277 ----
- dp = digraphdefault;
- for (i = 0; dp->char1 != NUL && !got_int; ++i)
- {
-+ #if defined(USE_UNICODE_DIGRAPHS) && defined(FEAT_MBYTE)
-+ digr_T tmp;
-+
-+ /* May need to convert the result to 'encoding'. */
-+ tmp.char1 = dp->char1;
-+ tmp.char2 = dp->char2;
-+ tmp.result = getexactdigraph(tmp.char1, tmp.char2, FALSE);
-+ if (tmp.result != 0 && tmp.result != tmp.char2
-+ && (has_mbyte || tmp.result <= 255))
-+ printdigraph(&tmp);
-+ #else
-+
- if (getexactdigraph(dp->char1, dp->char2, FALSE) == dp->result
-! # ifdef FEAT_MBYTE
- && (has_mbyte || dp->result <= 255)
-! # endif
- )
- printdigraph(dp);
-+ #endif
- ++dp;
- ui_breakcheck();
- }
-*** ../vim-6.2.302/src/version.c Mon Mar 1 16:54:50 2004
---- src/version.c Mon Mar 1 16:59:41 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 303,
- /**/
-
---
-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/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.304 (extra)
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.304 (extra, after 6.2.256)
-Problem: Mac: No proper support for 'encoding'. Conversion without iconv()
- is not possible.
-Solution: Convert input from 'termencoding' to 'encoding'. Add
- mac_string_convert(). Convert text for the clipboard when needed.
- (Eckehard Berns)
-Files: src/gui_mac.c, src/mbyte.c, src/structs.h, src/vim.h
-
-
-*** ../vim-6.2.303/src/gui_mac.c Sat Feb 28 15:30:58 2004
---- src/gui_mac.c Thu Feb 26 22:24:26 2004
-***************
-*** 2081,2087 ****
- {
- /* TODO: add support for COMMAND KEY */
- long menu;
-! unsigned char string[10];
- short num, i;
- short len = 0;
- KeySym key_sym;
---- 2081,2087 ----
- {
- /* TODO: add support for COMMAND KEY */
- long menu;
-! unsigned char string[20];
- short num, i;
- short len = 0;
- KeySym key_sym;
-***************
-*** 2190,2196 ****
- }
- else
- {
-! string[ len++ ] = key_char;
- }
-
- if (len == 1 && string[0] == CSI)
---- 2190,2225 ----
- }
- else
- {
-! #ifdef FEAT_MBYTE
-! if (input_conv.vc_type != CONV_NONE)
-! {
-! char_u from[2], *to;
-! int l;
-!
-! from[0] = key_char;
-! from[1] = NUL;
-! l = 1;
-! to = string_convert(&input_conv, from, &l);
-! if (to != NULL)
-! {
-! for (i = 0; i < l && len < 19; i++)
-! {
-! if (to[i] == CSI)
-! {
-! string[len++] = KS_EXTRA;
-! string[len++] = KE_CSI;
-! }
-! else
-! string[len++] = to[i];
-! }
-! vim_free(to);
-! }
-! else
-! string[len++] = key_char;
-! }
-! else
-! #endif
-! string[len++] = key_char;
- }
-
- if (len == 1 && string[0] == CSI)
-***************
-*** 3021,3026 ****
---- 3050,3059 ----
- }
- #endif
-
-+ #ifdef FEAT_MBYTE
-+ set_option_value((char_u *)"termencoding", 0L, (char_u *)"macroman", 0);
-+ #endif
-+
- /* TODO: Load bitmap if using TOOLBAR */
- return OK;
- }
-***************
-*** 3498,3509 ****
- int len;
- int flags;
- {
-
- #if defined(FEAT_GUI) && defined(MACOS_X)
- /*
- * On OS X, try using Quartz-style text antialiasing.
- */
-! SInt32 sys_version = 0;
-
- Gestalt(gestaltSystemVersion, &sys_version);
- if (sys_version >= 0x1020)
---- 3531,3555 ----
- int len;
- int flags;
- {
-+ #if defined(FEAT_GUI) && defined(MACOS_X)
-+ SInt32 sys_version;
-+ #endif
-+ #ifdef FEAT_MBYTE
-+ char_u *tofree = NULL;
-+
-+ if (output_conv.vc_type != CONV_NONE)
-+ {
-+ tofree = string_convert(&output_conv, s, &len);
-+ if (tofree != NULL)
-+ s = tofree;
-+ }
-+ #endif
-
- #if defined(FEAT_GUI) && defined(MACOS_X)
- /*
- * On OS X, try using Quartz-style text antialiasing.
- */
-! sys_version = 0;
-
- Gestalt(gestaltSystemVersion, &sys_version);
- if (sys_version >= 0x1020)
-***************
-*** 3578,3583 ****
---- 3624,3633 ----
- LineTo (FILL_X(col + len) - 1, FILL_Y(row + 1) - 1);
- }
- }
-+
-+ #ifdef FEAT_MBYTE
-+ vim_free(tofree);
-+ #endif
- }
-
- /*
-***************
-*** 3984,3990 ****
- #endif
- int type;
- char *searchCR;
-! char *tempclip;
-
-
- #ifdef USE_CARBONIZED
---- 4034,4040 ----
- #endif
- int type;
- char *searchCR;
-! char_u *tempclip;
-
-
- #ifdef USE_CARBONIZED
-***************
-*** 4012,4018 ****
- #ifdef USE_CARBONIZED
- /* In CARBON we don't need a Handle, a pointer is good */
- textOfClip = NewHandle (scrapSize);
-! /* tempclip = (char *)lalloc(scrapSize+1, TRUE); */
- #else
- textOfClip = NewHandle(0);
- #endif
---- 4062,4068 ----
- #ifdef USE_CARBONIZED
- /* In CARBON we don't need a Handle, a pointer is good */
- textOfClip = NewHandle (scrapSize);
-! /* tempclip = lalloc(scrapSize+1, TRUE); */
- #else
- textOfClip = NewHandle(0);
- #endif
-***************
-*** 4025,4035 ****
-
- type = (strchr(*textOfClip, '\r') != NULL) ? MLINE : MCHAR;
-
-! tempclip = (char *)lalloc(scrapSize+1, TRUE);
- STRNCPY(tempclip, *textOfClip, scrapSize);
- tempclip[scrapSize] = 0;
-
-! searchCR = tempclip;
- while (searchCR != NULL)
- {
- searchCR = strchr(searchCR, '\r');
---- 4075,4085 ----
-
- type = (strchr(*textOfClip, '\r') != NULL) ? MLINE : MCHAR;
-
-! tempclip = lalloc(scrapSize+1, TRUE);
- STRNCPY(tempclip, *textOfClip, scrapSize);
- tempclip[scrapSize] = 0;
-
-! searchCR = (char *)tempclip;
- while (searchCR != NULL)
- {
- searchCR = strchr(searchCR, '\r');
-***************
-*** 4039,4047 ****
-
- }
-
-! clip_yank_selection(type, (char_u *) tempclip, scrapSize, cbd);
-
-! free(tempclip);
- HUnlock(textOfClip);
-
- DisposeHandle(textOfClip);
---- 4089,4112 ----
-
- }
-
-! #ifdef FEAT_MBYTE
-! if (input_conv.vc_type != CONV_NONE)
-! {
-! char_u *to;
-! int l = scrapSize;
-!
-! to = string_convert(&input_conv, tempclip, &l);
-! if (to != NULL)
-! {
-! vim_free(tempclip);
-! tempclip = to;
-! scrapSize = l;
-! }
-! }
-! #endif
-! clip_yank_selection(type, tempclip, scrapSize, cbd);
-
-! vim_free(tempclip);
- HUnlock(textOfClip);
-
- DisposeHandle(textOfClip);
-***************
-*** 4094,4099 ****
---- 4159,4180 ----
- cbd->owned = FALSE;
-
- type = clip_convert_selection(&str, (long_u *) &scrapSize, cbd);
-+
-+ #ifdef FEAT_MBYTE
-+ if (str != NULL && output_conv.vc_type != CONV_NONE)
-+ {
-+ char_u *to;
-+ int l = scrapSize;
-+
-+ to = string_convert(&output_conv, str, &l);
-+ if (to != NULL)
-+ {
-+ vim_free(str);
-+ str = to;
-+ scrapSize = l;
-+ }
-+ }
-+ #endif
-
- if (type >= 0)
- {
-*** ../vim-6.2.303/src/mbyte.c Sun Feb 15 13:26:35 2004
---- src/mbyte.c Fri Feb 27 14:21:42 2004
-***************
-*** 217,223 ****
- #define IDX_CP1251 35
- {"cp1251", ENC_8BIT, 1251},
- #define IDX_MACROMAN 36
-! {"macroman", ENC_8BIT, 0},
- #define IDX_COUNT 37
- };
-
---- 248,254 ----
- #define IDX_CP1251 35
- {"cp1251", ENC_8BIT, 1251},
- #define IDX_MACROMAN 36
-! {"macroman", ENC_8BIT + ENC_MACROMAN, 0},
- #define IDX_COUNT 37
- };
-
-***************
-*** 5132,5137 ****
---- 5332,5356 ----
- vcp->vc_cpto = (to_prop & ENC_UNICODE) ? 0 : encname2codepage(to);
- }
- #endif
-+ #ifdef MACOS_X
-+ else if ((from_prop & ENC_MACROMAN) && (to_prop & ENC_LATIN1))
-+ {
-+ vcp->vc_type = CONV_MAC_LATIN1;
-+ }
-+ else if ((from_prop & ENC_MACROMAN) && (to_prop & ENC_UNICODE))
-+ {
-+ vcp->vc_type = CONV_MAC_UTF8;
-+ vcp->vc_factor = 2; /* up to twice as long */
-+ }
-+ else if ((from_prop & ENC_LATIN1) && (to_prop & ENC_MACROMAN))
-+ {
-+ vcp->vc_type = CONV_LATIN1_MAC;
-+ }
-+ else if ((from_prop & ENC_UNICODE) && (to_prop & ENC_MACROMAN))
-+ {
-+ vcp->vc_type = CONV_UTF8_MAC;
-+ }
-+ #endif
- # ifdef USE_ICONV
- else
- {
-***************
-*** 5177,5182 ****
---- 5396,5478 ----
- return dlen;
- }
-
-+ #if defined(MACOS_X)
-+ static char_u *mac_string_convert __ARGS((char_u *ptr, int len, int *lenp, CFStringEncoding from, CFStringEncoding to));
-+
-+ /*
-+ * A Mac version of string_convert() for special cases.
-+ */
-+ static char_u *
-+ mac_string_convert(ptr, len, lenp, from, to)
-+ char_u *ptr;
-+ int len;
-+ int *lenp;
-+ CFStringEncoding from;
-+ CFStringEncoding to;
-+ {
-+ char_u *retval, *d;
-+ CFStringRef cfstr;
-+ int buflen, in, out, l, i;
-+
-+ cfstr = CFStringCreateWithBytes(NULL, ptr, len, from, 0);
-+ if (cfstr == NULL)
-+ return NULL;
-+ if (to == kCFStringEncodingUTF8)
-+ buflen = len * 6 + 1;
-+ else
-+ buflen = len + 1;
-+ retval = alloc(buflen);
-+ if (retval == NULL)
-+ {
-+ CFRelease(cfstr);
-+ return NULL;
-+ }
-+ if (!CFStringGetCString(cfstr, retval, buflen, to))
-+ {
-+ CFRelease(cfstr);
-+ /* conversion failed for the whole string, but maybe it will work
-+ * for each character */
-+ for (d = retval, in = 0, out = 0; in < len && out < buflen - 1;)
-+ {
-+ if (from == kCFStringEncodingUTF8)
-+ l = utf_ptr2len_check(ptr + in);
-+ else
-+ l = 1;
-+ cfstr = CFStringCreateWithBytes(NULL, ptr + in, l, from, 0);
-+ if (cfstr == NULL)
-+ {
-+ *d++ = '?';
-+ out++;
-+ }
-+ else
-+ {
-+ if (!CFStringGetCString(cfstr, d, buflen - out, to))
-+ {
-+ *d++ = '?';
-+ out++;
-+ }
-+ else
-+ {
-+ i = strlen(d);
-+ d += i;
-+ out += i;
-+ }
-+ CFRelease(cfstr);
-+ }
-+ in += l;
-+ }
-+ *d = NUL;
-+ if (lenp != NULL)
-+ *lenp = out;
-+ return retval;
-+ }
-+ CFRelease(cfstr);
-+ if (lenp != NULL)
-+ *lenp = strlen(retval);
-+ return retval;
-+ }
-+ #endif
-+
- /*
- * Convert text "ptr[*lenp]" according to "vcp".
- * Returns the result in allocated memory and sets "*lenp".
-***************
-*** 5256,5261 ****
---- 5552,5583 ----
- if (lenp != NULL)
- *lenp = (int)(d - retval);
- break;
-+
-+ # ifdef MACOS_X
-+ case CONV_MAC_LATIN1:
-+ retval = mac_string_convert(ptr, len, lenp,
-+ kCFStringEncodingMacRoman,
-+ kCFStringEncodingISOLatin1);
-+ break;
-+
-+ case CONV_LATIN1_MAC:
-+ retval = mac_string_convert(ptr, len, lenp,
-+ kCFStringEncodingISOLatin1,
-+ kCFStringEncodingMacRoman);
-+ break;
-+
-+ case CONV_MAC_UTF8:
-+ retval = mac_string_convert(ptr, len, lenp,
-+ kCFStringEncodingMacRoman,
-+ kCFStringEncodingUTF8);
-+ break;
-+
-+ case CONV_UTF8_MAC:
-+ retval = mac_string_convert(ptr, len, lenp,
-+ kCFStringEncodingUTF8,
-+ kCFStringEncodingMacRoman);
-+ break;
-+ # endif
-
- # ifdef USE_ICONV
- case CONV_ICONV: /* conversion with output_conv.vc_fd */
-*** ../vim-6.2.303/src/structs.h Sun Feb 29 21:06:13 2004
---- src/structs.h Sun Feb 29 16:45:20 2004
-***************
-*** 832,837 ****
---- 832,843 ----
- #ifdef WIN3264
- # define CONV_CODEPAGE 4 /* codepage -> codepage */
- #endif
-+ #ifdef MACOS_X
-+ # define CONV_MAC_LATIN1 5
-+ # define CONV_LATIN1_MAC 6
-+ # define CONV_MAC_UTF8 7
-+ # define CONV_UTF8_MAC 8
-+ #endif
-
- /*
- * Structure used for mappings and abbreviations.
-*** ../vim-6.2.303/src/vim.h Sun Feb 29 21:06:13 2004
---- src/vim.h Wed Feb 25 14:42:25 2004
-***************
-*** 1656,1661 ****
---- 1656,1662 ----
- # define ENC_2WORD 0x100 /* Unicode: UTF-16 */
-
- # define ENC_LATIN1 0x200 /* Latin1 */
-+ # define ENC_MACROMAN 0x400 /* Mac Roman (not Macro Man! :-) */
- #endif
-
- #ifdef FEAT_MBYTE
-*** ../vim-6.2.303/src/version.c Mon Mar 1 17:01:39 2004
---- src/version.c Mon Mar 1 17:03:01 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 304,
- /**/
-
---
-Shit makes the flowers grow and that's beautiful
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.305
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.305 (after 6.2.300)
-Problem: Win32: Cannot build Python interface with Python 2.3. (Ajit
- Thakkar)
-Solution: Add two functions to the dynamic loading feature.
-Files: src/if_python.c
-
-
-*** ../vim-6.2.304/src/if_python.c Mon Mar 1 10:34:00 2004
---- src/if_python.c Mon Mar 1 20:02:36 2004
-***************
-*** 62,67 ****
---- 62,72 ----
- #define file_input 257
- #define eval_input 258
-
-+ #if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x020300F0
-+ /* Python 2.3: can invoke ":python" recursively. */
-+ # define PY_CAN_RECURSE
-+ #endif
-+
- #if defined(DYNAMIC_PYTHON) || defined(PROTO)
- # ifndef DYNAMIC_PYTHON
- # define HINSTANCE int /* for generating prototypes */
-***************
-*** 82,87 ****
---- 87,96 ----
- # define PyEval_InitThreads dll_PyEval_InitThreads
- # define PyEval_RestoreThread dll_PyEval_RestoreThread
- # define PyEval_SaveThread dll_PyEval_SaveThread
-+ # ifdef PY_CAN_RECURSE
-+ # define PyGILState_Ensure dll_PyGILState_Ensure
-+ # define PyGILState_Release dll_PyGILState_Release
-+ # endif
- # define PyInt_AsLong dll_PyInt_AsLong
- # define PyInt_FromLong dll_PyInt_FromLong
- # define PyInt_Type (*dll_PyInt_Type)
-***************
-*** 132,137 ****
---- 141,150 ----
- static void(*dll_PyEval_InitThreads)(void);
- static void(*dll_PyEval_RestoreThread)(PyThreadState *);
- static PyThreadState*(*dll_PyEval_SaveThread)(void);
-+ # ifdef PY_CAN_RECURSE
-+ static PyGILState_STATE (*dll_PyGILState_Ensure)(void);
-+ static void (*dll_PyGILState_Release)(PyGILState_STATE);
-+ #endif
- static long(*dll_PyInt_AsLong)(PyObject *);
- static PyObject*(*dll_PyInt_FromLong)(long);
- static PyTypeObject* dll_PyInt_Type;
-***************
-*** 204,209 ****
---- 217,226 ----
- {"PyEval_InitThreads", (PYTHON_PROC*)&dll_PyEval_InitThreads},
- {"PyEval_RestoreThread", (PYTHON_PROC*)&dll_PyEval_RestoreThread},
- {"PyEval_SaveThread", (PYTHON_PROC*)&dll_PyEval_SaveThread},
-+ # ifdef PY_CAN_RECURSE
-+ {"PyGILState_Ensure", (PYTHON_PROC*)&dll_PyGILState_Ensure},
-+ {"PyGILState_Release", (PYTHON_PROC*)&dll_PyGILState_Release},
-+ # endif
- {"PyInt_AsLong", (PYTHON_PROC*)&dll_PyInt_AsLong},
- {"PyInt_FromLong", (PYTHON_PROC*)&dll_PyInt_FromLong},
- {"PyInt_Type", (PYTHON_PROC*)&dll_PyInt_Type},
-***************
-*** 363,372 ****
- typedef PyObject PyThreadState;
- #endif /* Python 1.4 */
-
-! #if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x020300F0
-! /* Python 2.3: can invoke ":python" recursively. */
-! # define PY_CAN_RECURSE
-! #else
- static PyThreadState* saved_python_thread = NULL;
-
- /*
---- 380,386 ----
- typedef PyObject PyThreadState;
- #endif /* Python 1.4 */
-
-! #ifndef PY_CAN_RECURSE
- static PyThreadState* saved_python_thread = NULL;
-
- /*
-*** ../vim-6.2.304/src/version.c Mon Mar 1 17:11:04 2004
---- src/version.c Mon Mar 1 20:06:31 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 305,
- /**/
-
---
-A mathematician is a device for turning coffee into theorems.
- Paul Erdos
-A computer programmer is a device for turning coffee into bugs.
- Bram Moolenaar
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.306 (extra)
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.306 (extra)
-Problem: Win32: Building console version with BCC 5.5 gives a warning for
- get_cmd_args() prototype missing. (Ajit Thakkar)
-Solution: Don't build os_w32exe.c for the console version.
-Files: src/Make_bc5.mak
-
-
-*** ../vim-6.2.305/src/Make_bc5.mak Tue Feb 3 16:55:34 2004
---- src/Make_bc5.mak Mon Mar 1 19:51:44 2004
-***************
-*** 522,528 ****
- !endif
- !endif
-
-! vimobj = $(vimwinmain) \
- $(OBJDIR)\buffer.obj \
- $(OBJDIR)\charset.obj \
- $(OBJDIR)\diff.obj \
---- 522,528 ----
- !endif
- !endif
-
-! vimobj = \
- $(OBJDIR)\buffer.obj \
- $(OBJDIR)\charset.obj \
- $(OBJDIR)\diff.obj \
-***************
-*** 616,621 ****
---- 616,622 ----
-
- !if ("$(GUI)"=="yes")
- vimobj = $(vimobj) \
-+ $(vimwinmain) \
- $(OBJDIR)\gui.obj \
- $(OBJDIR)\gui_w32.obj
- !endif
-*** ../vim-6.2.305/src/version.c Mon Mar 1 20:07:25 2004
---- src/version.c Mon Mar 1 21:39:14 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 306,
- /**/
-
---
-Witches prefer brooms: vacuum-cleaners need extension cords!
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.307
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.307 (after 6.2.299)
-Problem: Installing help files fails.
-Solution: Expand wildcards for translated help files separately.
-Files: src/Makefile
-
-
-*** ../vim-6.2.306/src/Makefile Sun Feb 29 21:06:13 2004
---- src/Makefile Mon Mar 1 20:03:04 2004
-***************
-*** 1657,1663 ****
- # Generate the help tags with ":helptags" to handle all languages.
- -@cd $(HELPSOURCE); VIMEXE=$(VIMTARGET) $(MAKE) vimtags
- cd $(HELPSOURCE); \
-! files=`ls *.txt *.??x tags tags-??`; \
- $(INSTALL_DATA) $$files $(DEST_HELP); \
- cd $(DEST_HELP); \
- chmod $(HELPMOD) $$files
---- 1667,1674 ----
- # Generate the help tags with ":helptags" to handle all languages.
- -@cd $(HELPSOURCE); VIMEXE=$(VIMTARGET) $(MAKE) vimtags
- cd $(HELPSOURCE); \
-! files=`ls *.txt tags`; \
-! files="$$files `ls *.??x tags-?? 2>/dev/null || true`"; \
- $(INSTALL_DATA) $$files $(DEST_HELP); \
- cd $(DEST_HELP); \
- chmod $(HELPMOD) $$files
-*** ../vim-6.2.306/src/version.c Mon Mar 1 21:40:02 2004
---- src/version.c Mon Mar 1 21:48:46 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 307,
- /**/
-
---
-WOMAN: I didn't know we had a king. I thought we were an autonomous
- collective.
-DENNIS: You're fooling yourself. We're living in a dictatorship. A
- self-perpetuating autocracy in which the working classes--
-WOMAN: Oh there you go, bringing class into it again.
-DENNIS: That's what it's all about if only people would--
- The Quest for the Holy Grail (Monty Python)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.308
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.308
-Problem: Not all systems have "whoami", resulting in an empty user name.
-Solution: Use "logname" when possible, "whoami" otherwise. (David Boyce)
-Files: src/Makefile
-
-
-*** ../vim-6.2.307/src/Makefile Mon Mar 1 21:49:48 2004
---- src/Makefile Mon Mar 1 20:03:04 2004
-***************
-*** 2083,2089 ****
- -@echo 'char_u *compiled_user = (char_u *)"' | tr -d $(NL) >> $@
- -@if test -n "$(COMPILEDBY)"; then \
- echo "$(COMPILEDBY)" | tr -d $(NL) >> $@; \
-! else whoami | tr -d $(NL) >> $@; fi
- -@echo '";' >> $@
- -@echo 'char_u *compiled_sys = (char_u *)"' | tr -d $(NL) >> $@
- -@if test -z "$(COMPILEDBY)"; then hostname | tr -d $(NL) >> $@; fi
---- 2093,2099 ----
- -@echo 'char_u *compiled_user = (char_u *)"' | tr -d $(NL) >> $@
- -@if test -n "$(COMPILEDBY)"; then \
- echo "$(COMPILEDBY)" | tr -d $(NL) >> $@; \
-! else ((logname) 2>/dev/null || whoami) | tr -d $(NL) >> $@; fi
- -@echo '";' >> $@
- -@echo 'char_u *compiled_sys = (char_u *)"' | tr -d $(NL) >> $@
- -@if test -z "$(COMPILEDBY)"; then hostname | tr -d $(NL) >> $@; fi
-*** ../vim-6.2.307/src/version.c Mon Mar 1 21:49:48 2004
---- src/version.c Tue Mar 2 14:14:12 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 308,
- /**/
-
---
-"It's so simple to be wise. Just think of something stupid to say
-and then don't say it." -- Sam Levenson
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.309
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.309
-Problem: "3grx" waits for two ESC to be typed. (Jens Paulus)
-Solution: Append the ESC to the stuff buffer when redoing the "gr" insert.
-Files: src/edit.c
-
-
-*** ../vim-6.2.308/src/edit.c Mon Mar 1 16:54:50 2004
---- src/edit.c Tue Mar 2 14:50:56 2004
-***************
-*** 6061,6067 ****
- if (!arrow_used)
- {
- /*
-! * Don't append the ESC for "r<CR>".
- */
- if (cmdchar != 'r' && cmdchar != 'v')
- AppendToRedobuff(ESC_STR);
---- 6060,6066 ----
- if (!arrow_used)
- {
- /*
-! * Don't append the ESC for "r<CR>" and "grx".
- */
- if (cmdchar != 'r' && cmdchar != 'v')
- AppendToRedobuff(ESC_STR);
-***************
-*** 6070,6076 ****
- * Repeating insert may take a long time. Check for
- * interrupt now and then.
- */
-! if (*count)
- {
- line_breakcheck();
- if (got_int)
---- 6069,6075 ----
- * Repeating insert may take a long time. Check for
- * interrupt now and then.
- */
-! if (*count > 0)
- {
- line_breakcheck();
- if (got_int)
-***************
-*** 6080,6085 ****
---- 6079,6086 ----
- if (--*count > 0) /* repeat what was typed */
- {
- (void)start_redo_ins();
-+ if (cmdchar == 'r' || cmdchar == 'v')
-+ stuffReadbuff(ESC_STR); /* no ESC in redo buffer */
- ++RedrawingDisabled;
- disabled_redraw = TRUE;
- return FALSE; /* repeat the insert */
-*** ../vim-6.2.308/src/version.c Tue Mar 2 14:15:55 2004
---- src/version.c Tue Mar 2 14:53:09 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 309,
- /**/
-
---
--rwxr-xr-x 1 root 24 Oct 29 1929 /bin/ed
--rwxr-xr-t 4 root 131720 Jan 1 1970 /usr/ucb/vi
--rwxr-xr-x 1 root 5.89824e37 Oct 22 1990 /usr/bin/emacs
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.310
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.310
-Problem: When setting 'undolevels' to -1, making a change and setting
- 'undolevels' to a positive value an "undo list corrupt" error
- occurs. (Madoka Machitani)
-Solution: Sync undo before changing 'undolevels'.
-Files: src/option.c
-
-
-*** ../vim-6.2.309/src/option.c Sun Feb 29 21:06:13 2004
---- src/option.c Tue Mar 2 13:05:48 2004
-***************
-*** 6699,6704 ****
---- 6699,6713 ----
- }
- if (p_uc && !old_value)
- ml_open_files();
-+ }
-+
-+ /* sync undo before 'undolevels' changes */
-+ else if (pp == &p_ul)
-+ {
-+ /* use the old value, otherwise u_sync() may not work properly */
-+ p_ul = old_value;
-+ u_sync();
-+ p_ul = value;
- }
-
- /*
-*** ../vim-6.2.309/src/version.c Tue Mar 2 14:59:39 2004
---- src/version.c Tue Mar 2 15:09:43 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 310,
- /**/
-
---
-FATHER: You killed eight wedding guests in all!
-LAUNCELOT: Er, Well ... the thing is ... I thought your son was a lady.
-FATHER: I can understand that.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.311
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.311 (after 6.2.298)
-Problem: When making several changes in one line the changelist grows
- quickly. There is no error message for reaching the end of the
- changelist. Reading changelist marks from viminfo doesn't work
- properly.
-Solution: Only make a new entry in the changelist when making a change in
- another line or 'textwidth' columns away. Add E662, E663 and E664
- error messages. Put a changelist mark from viminfo one position
- before the end.
-Files: runtime/doc/motion.txt, src/mark.c, src/misc1.c, src/normal.c
-
-
-*** ../vim-6.2.310/runtime/doc/motion.txt Sun Feb 29 20:46:43 2004
---- runtime/doc/motion.txt Tue Mar 2 15:29:59 2004
-***************
-*** 1,4 ****
-! *motion.txt* For Vim version 6.2. Last change: 2004 Feb 29
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
---- 1,4 ----
-! *motion.txt* For Vim version 6.2. Last change: 2004 Mar 02
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
-***************
-*** 960,995 ****
- stored in the viminfo file and restored when starting Vim.
-
-
-! CHANGE LIST JUMPS *changelist* *change-list-jumps*
-!
-! For changes the cursor position is remembered. One position is remembered for
-! every change that can be undone. Two commands can be used to jump to
-! positions of changes, also those that have been undone.
-
-! *g;*
-! g; Go to [count] older cursor position in change list
-! (not a motion command).
- {not in Vi}
- {not available without the +jumplist feature}
-
-! *g,*
-! g, Go to [count] newer cursor position in change list
-! (not a motion command).
- {not in Vi}
- {not available without the +jumplist feature}
-
-! When you already are at the end or start of the change list you will get an
-! error message. When using a count you jump as far back or forward as
-! possible. Thus you can use "999g;" to go to the first change for which the
-! position is still remembered. The number of entries in the change list is
-! fixed and is the same as for the |jumplist|.
-
- Note that when text has been inserted or deleted the cursor position might be
-! a bit different from the position of the change.
-
- When the |:keepjumps| command modifier is used the position of a change is not
- remembered.
-
- ==============================================================================
- 9. Various motions *various-motions*
-
---- 968,1040 ----
- stored in the viminfo file and restored when starting Vim.
-
-
-! CHANGE LIST JUMPS *changelist* *change-list-jumps* *E664*
-
-! When making a change the cursor position is remembered. One position is
-! remembered for every change that can be undone, unless it is close to a
-! previous change. Two commands can be used to jump to positions of changes,
-! also those that have been undone:
-!
-! *g;* *E662*
-! g; Go to [count] older position in change list.
-! If [count] is larger than the number of older change
-! positions go to the oldest change.
-! If there is no older change an error message is given.
-! (not a motion command)
- {not in Vi}
- {not available without the +jumplist feature}
-
-! *g,* *E663*
-! g, Go to [count] newer cursor position in change list.
-! Just like "g;| but in the opposite direction.
-! (not a motion command)
- {not in Vi}
- {not available without the +jumplist feature}
-
-! When using a count you jump as far back or forward as possible. Thus you can
-! use "999g;" to go to the first change for which the position is still
-! remembered. The number of entries in the change list is fixed and is the same
-! as for the |jumplist|.
-!
-! When two undo-able changes are in the same line and at a column position less
-! than 'textwidth' apart only the last one is remembered. This avoids that a
-! sequence of small changes in a line, for example "xxxxx", adds many positions
-! to the change list. When 'textwidth' is zero 'wrapmargin' is used. When that
-! also isn't set a fixed number of 79 is used. Detail: For the computations
-! bytes are used, not characters, to avoid a speed penalty (this only matters
-! for multi-byte encodings).
-
- Note that when text has been inserted or deleted the cursor position might be
-! a bit different from the position of the change. Especially when lines have
-! been deleted.
-
- When the |:keepjumps| command modifier is used the position of a change is not
- remembered.
-
-+ *:changes*
-+ :changes Print the change list. A ">" character indicates the
-+ current position. Just after a change it is below the
-+ newest entry, indicating that "g;" takes you to the
-+ newest entry position. The first column indicates the
-+ count needed to take you to this position. Example:
-+
-+ change line col text ~
-+ 3 9 8 bla bla bla
-+ 2 11 57 foo is a bar
-+ 1 14 54 the latest changed line
-+ >
-+
-+ The "3g;" command takes you to line 9. Then the
-+ output of ":changes is:
-+
-+ change line col text ~
-+ > 0 9 8 bla bla bla
-+ 1 11 57 foo is a bar
-+ 2 14 54 the latest changed line
-+
-+ Now you can use "g," to go to line 11 and "2g," to go
-+ to line 14.
-+
- ==============================================================================
- 9. Various motions *various-motions*
-
-*** ../vim-6.2.310/src/mark.c Sun Feb 29 20:46:43 2004
---- src/mark.c Mon Mar 1 22:42:35 2004
-***************
-*** 898,904 ****
- #ifdef FEAT_JUMPLIST
- /* list of change positions */
- for (i = 0; i < curbuf->b_changelistlen; ++i)
-! one_adjust(&(curbuf->b_changelist[i].lnum));
- #endif
-
- #ifdef FEAT_VISUAL
---- 898,904 ----
- #ifdef FEAT_JUMPLIST
- /* list of change positions */
- for (i = 0; i < curbuf->b_changelistlen; ++i)
-! one_adjust_nodel(&(curbuf->b_changelist[i].lnum));
- #endif
-
- #ifdef FEAT_VISUAL
-***************
-*** 1470,1476 ****
- else
- ++curbuf->b_changelistlen;
- curbuf->b_changelist[
-! curbuf->b_changelistlen] = pos;
- #endif
- break;
- default: if ((i = line[1] - 'a') >= 0 && i < NMARKS)
---- 1470,1476 ----
- else
- ++curbuf->b_changelistlen;
- curbuf->b_changelist[
-! curbuf->b_changelistlen - 1] = pos;
- #endif
- break;
- default: if ((i = line[1] - 'a') >= 0 && i < NMARKS)
-*** ../vim-6.2.310/src/misc1.c Sun Feb 29 20:46:43 2004
---- src/misc1.c Tue Mar 2 10:48:59 2004
-***************
-*** 2494,2499 ****
---- 2501,2511 ----
- {
- win_T *wp;
- int i;
-+ #ifdef FEAT_JUMPLIST
-+ int cols;
-+ pos_T *p;
-+ int add;
-+ #endif
-
- /* mark the buffer as modified */
- changed();
-***************
-*** 2505,2539 ****
- curbuf->b_last_change.col = col;
-
- #ifdef FEAT_JUMPLIST
-! if (curbuf->b_new_change)
- {
-! /* This is the first of a new sequence of undo-able changes.
-! * Use a new position in the changelist. */
-! curbuf->b_new_change = FALSE;
-!
-! if (curbuf->b_changelistlen == JUMPLISTSIZE)
- {
-! /* changelist is full: remove oldest entry */
-! curbuf->b_changelistlen = JUMPLISTSIZE - 1;
-! mch_memmove(curbuf->b_changelist, curbuf->b_changelist + 1,
-! sizeof(pos_T) * (JUMPLISTSIZE - 1));
-! FOR_ALL_WINDOWS(wp)
- {
-! /* Correct position in changelist for other windows on
-! * this buffer. */
-! if (wp->w_buffer == curbuf && wp->w_changelistidx > 0)
-! --wp->w_changelistidx;
- }
- }
-! FOR_ALL_WINDOWS(wp)
- {
-! /* For other windows, if the position in the changelist is at
-! * the end it stays at the end. */
-! if (wp->w_buffer == curbuf
- && wp->w_changelistidx == curbuf->b_changelistlen)
-! ++wp->w_changelistidx;
- }
-- ++curbuf->b_changelistlen;
- }
- curbuf->b_changelist[curbuf->b_changelistlen - 1] =
- curbuf->b_last_change;
---- 2517,2575 ----
- curbuf->b_last_change.col = col;
-
- #ifdef FEAT_JUMPLIST
-! /* Create a new entry if a new undo-able change was started or we
-! * don't have an entry yet. */
-! if (curbuf->b_new_change || curbuf->b_changelistlen == 0)
- {
-! if (curbuf->b_changelistlen == 0)
-! add = TRUE;
-! else
- {
-! /* Don't create a new entry when the line number is the same
-! * as the last one and the column is not too far away. Avoids
-! * creating many entries for typing "xxxxx". */
-! p = &curbuf->b_changelist[curbuf->b_changelistlen - 1];
-! if (p->lnum != lnum)
-! add = TRUE;
-! else
- {
-! cols = comp_textwidth(FALSE);
-! if (cols == 0)
-! cols = 79;
-! add = (p->col + cols < col || col + cols < p->col);
- }
- }
-! if (add)
- {
-! /* This is the first of a new sequence of undo-able changes
-! * and it's at some distance of the last change. Use a new
-! * position in the changelist. */
-! curbuf->b_new_change = FALSE;
-!
-! if (curbuf->b_changelistlen == JUMPLISTSIZE)
-! {
-! /* changelist is full: remove oldest entry */
-! curbuf->b_changelistlen = JUMPLISTSIZE - 1;
-! mch_memmove(curbuf->b_changelist, curbuf->b_changelist + 1,
-! sizeof(pos_T) * (JUMPLISTSIZE - 1));
-! FOR_ALL_WINDOWS(wp)
-! {
-! /* Correct position in changelist for other windows on
-! * this buffer. */
-! if (wp->w_buffer == curbuf && wp->w_changelistidx > 0)
-! --wp->w_changelistidx;
-! }
-! }
-! FOR_ALL_WINDOWS(wp)
-! {
-! /* For other windows, if the position in the changelist is
-! * at the end it stays at the end. */
-! if (wp->w_buffer == curbuf
- && wp->w_changelistidx == curbuf->b_changelistlen)
-! ++wp->w_changelistidx;
-! }
-! ++curbuf->b_changelistlen;
- }
- }
- curbuf->b_changelist[curbuf->b_changelistlen - 1] =
- curbuf->b_last_change;
-*** ../vim-6.2.310/src/normal.c Mon Mar 1 16:54:50 2004
---- src/normal.c Mon Mar 1 22:30:36 2004
-***************
-*** 6549,6555 ****
- }
-
- /*
-! * Handle CTRL-O and CTRL-I commands.
- */
- static void
- nv_pcmark(cap)
---- 6549,6555 ----
- }
-
- /*
-! * Handle CTRL-O, CTRL-I, "g;" and "g," commands.
- */
- static void
- nv_pcmark(cap)
-***************
-*** 6575,6580 ****
---- 6575,6589 ----
- }
- else if (pos != NULL) /* can jump */
- nv_cursormark(cap, FALSE, pos);
-+ else if (cap->cmdchar == 'g')
-+ {
-+ if (curbuf->b_changelistlen == 0)
-+ EMSG(_("E664: changelist is empty"));
-+ else if (cap->count1 < 0)
-+ EMSG(_("E662: At start of changelist"));
-+ else
-+ EMSG(_("E663: At end of changelist"));
-+ }
- else
- clearopbeep(cap->oap);
- # ifdef FEAT_FOLDING
-*** ../vim-6.2.310/src/version.c Tue Mar 2 15:10:20 2004
---- src/version.c Tue Mar 2 15:30:56 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 311,
- /**/
-
---
-The early bird gets the worm. If you want something else for
-breakfast, get up later.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.312
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.312 (after 6.2.299)
-Problem: "make install" clears the screen when installing the docs.
-Solution: Execute ":helptags" in silent mode.
-Files: runtime/doc/Makefile
-
-
-*** ../vim-6.2.311/runtime/doc/Makefile Sun Jan 25 19:28:46 2004
---- runtime/doc/Makefile Wed Mar 3 19:23:05 2004
-***************
-*** 6,11 ****
---- 6,14 ----
-
- AWK = awk
-
-+ # Set to $(VIMTARGET) when executed from src/Makefile.
-+ VIMEXE = vim
-+
- # include the config.mk from the source directory. It's only needed to set
- # AWK, used for "make html". Comment this out if the include gives problems.
- include ../../src/auto/config.mk
-***************
-*** 251,260 ****
- all: tags vim.man vimdiff.man vimtutor.man xxd.man
-
- # Use Vim to generate the tags file. Can only be used when Vim has been
-! # compiled and installed.
- vimtags: $(DOCS)
-! vim -c "helptags ." -c quit
-
- tags: doctags $(DOCS)
- ./doctags $(DOCS) | LANG=C LC_ALL=C sort >tags
- uniq -d -2 tags
---- 254,264 ----
- all: tags vim.man vimdiff.man vimtutor.man xxd.man
-
- # Use Vim to generate the tags file. Can only be used when Vim has been
-! # compiled and installed. Supports multiple languages.
- vimtags: $(DOCS)
-! $(VIMEXE) -e -s -c "helptags ." -c quit
-
-+ # Use "doctags" to generate the tags file. Only works for English!
- tags: doctags $(DOCS)
- ./doctags $(DOCS) | LANG=C LC_ALL=C sort >tags
- uniq -d -2 tags
-*** ../vim-6.2.311/src/version.c Tue Mar 2 16:04:09 2004
---- src/version.c Wed Mar 3 19:21:48 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 312,
- /**/
-
---
-TIM: Too late.
-ARTHUR: What?
-TIM: There he is!
- [They all turn,, and see a large white RABBIT lollop a few yards out of the
- cave. Accompanied by terrifying chord and jarring metallic monster noise.]
- "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/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.313
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.313
-Problem: When opening folds in a diff window, other diff windows no longer
- show the same text.
-Solution: Sync the folds in diff windows.
-Files: src/diff.c, src/fold.c, src/move.c, src/proto/diff.pro,
- src/proto/move.pro
-
-
-*** ../vim-6.2.312/src/diff.c Fri Feb 20 21:36:20 2004
---- src/diff.c Tue Mar 2 16:32:40 2004
-***************
-*** 2102,2105 ****
---- 2102,2146 ----
-
- return OK;
- }
-+
-+ #if defined(FEAT_FOLDING) || defined(PROTO)
-+ /*
-+ * For line "lnum" in the current window find the equivalent lnum in window
-+ * "wp", compensating for inserted/deleted lines.
-+ */
-+ linenr_T
-+ diff_lnum_win(lnum, wp)
-+ linenr_T lnum;
-+ win_T *wp;
-+ {
-+ diff_T *dp;
-+ int idx;
-+ int i;
-+
-+ idx = diff_buf_idx(curbuf);
-+ if (idx == DB_COUNT) /* safety check */
-+ return (linenr_T)0;
-+
-+ if (diff_invalid)
-+ ex_diffupdate(NULL); /* update after a big change */
-+
-+ /* search for a change that includes "lnum" in the list of diffblocks. */
-+ for (dp = first_diff; dp != NULL; dp = dp->df_next)
-+ if (lnum <= dp->df_lnum[idx] + dp->df_count[idx])
-+ break;
-+
-+ /* When after the last change, compute relative to the last line number. */
-+ if (dp == NULL)
-+ return wp->w_buffer->b_ml.ml_line_count
-+ - (curbuf->b_ml.ml_line_count - lnum);
-+
-+ /* Find index for "wp". */
-+ i = diff_buf_idx(wp->w_buffer);
-+ if (i == DB_COUNT) /* safety check */
-+ return (linenr_T)0;
-+
-+ return lnum + (dp->df_lnum[i] - dp->df_lnum[idx]);
-+ }
-+ #endif
-+
- #endif /* FEAT_DIFF */
-*** ../vim-6.2.312/src/fold.c Fri Feb 20 21:36:20 2004
---- src/fold.c Tue Mar 2 17:02:36 2004
-***************
-*** 43,54 ****
---- 43,56 ----
- #define MAX_LEVEL 20 /* maximum fold depth */
-
- /* static functions {{{2 */
-+ static void newFoldLevelWin __ARGS((win_T *wp));
- static int checkCloseRec __ARGS((garray_T *gap, linenr_T lnum, int level));
- static int foldFind __ARGS((garray_T *gap, linenr_T lnum, fold_T **fpp));
- static int foldLevelWin __ARGS((win_T *wp, linenr_T lnum));
- static void checkupdate __ARGS((win_T *wp));
- static void setFoldRepeat __ARGS((linenr_T lnum, long count, int open));
- static linenr_T setManualFold __ARGS((linenr_T lnum, int opening, int recurse, int *donep));
-+ static linenr_T setManualFoldWin __ARGS((win_T *wp, linenr_T lnum, int opening, int recurse, int *donep));
- static void foldOpenNested __ARGS((fold_T *fpr));
- static void deleteFoldEntry __ARGS((garray_T *gap, int idx, int recursive));
- static void foldMarkAdjustRecurse __ARGS((garray_T *gap, linenr_T line1, linenr_T line2, long amount, long amount_after));
-***************
-*** 486,506 ****
- void
- newFoldLevel()
- {
- fold_T *fp;
- int i;
-
-! checkupdate(curwin);
-! if (curwin->w_fold_manual)
- {
- /* Set all flags for the first level of folds to FD_LEVEL. Following
- * manual open/close will then change the flags to FD_OPEN or
- * FD_CLOSED for those folds that don't use 'foldlevel'. */
-! fp = (fold_T *)curwin->w_folds.ga_data;
-! for (i = 0; i < curwin->w_folds.ga_len; ++i)
- fp[i].fd_flags = FD_LEVEL;
-! curwin->w_fold_manual = FALSE;
- }
-! changed_window_setting();
- }
-
- /* foldCheckClose() {{{2 */
---- 488,534 ----
- void
- newFoldLevel()
- {
-+ newFoldLevelWin(curwin);
-+
-+ #ifdef FEAT_DIFF
-+ if (foldmethodIsDiff(curwin) && curwin->w_p_scb)
-+ {
-+ win_T *wp;
-+
-+ /*
-+ * Set the same foldlevel in other windows in diff mode.
-+ */
-+ FOR_ALL_WINDOWS(wp)
-+ {
-+ if (wp != curwin && foldmethodIsDiff(wp) && wp->w_p_scb)
-+ {
-+ wp->w_p_fdl = curwin->w_p_fdl;
-+ newFoldLevelWin(wp);
-+ }
-+ }
-+ }
-+ #endif
-+ }
-+
-+ static void
-+ newFoldLevelWin(wp)
-+ win_T *wp;
-+ {
- fold_T *fp;
- int i;
-
-! checkupdate(wp);
-! if (wp->w_fold_manual)
- {
- /* Set all flags for the first level of folds to FD_LEVEL. Following
- * manual open/close will then change the flags to FD_OPEN or
- * FD_CLOSED for those folds that don't use 'foldlevel'. */
-! fp = (fold_T *)wp->w_folds.ga_data;
-! for (i = 0; i < wp->w_folds.ga_len; ++i)
- fp[i].fd_flags = FD_LEVEL;
-! wp->w_fold_manual = FALSE;
- }
-! changed_window_setting_win(wp);
- }
-
- /* foldCheckClose() {{{2 */
-***************
-*** 1232,1246 ****
- /* setManualFold() {{{2 */
- /*
- * Open or close the fold in the current window which contains "lnum".
- * "donep", when not NULL, points to flag that is set to DONE_FOLD when some
- * fold was found and to DONE_ACTION when some fold was opened or closed.
- * When "donep" is NULL give an error message when no fold was found for
-! * "lnum".
- * Return the line number of the next line that could be closed.
- * It's only valid when "opening" is TRUE!
- */
- static linenr_T
-! setManualFold(lnum, opening, recurse, donep)
- linenr_T lnum;
- int opening; /* TRUE when opening, FALSE when closing */
- int recurse; /* TRUE when closing/opening recursive */
---- 1260,1312 ----
- /* setManualFold() {{{2 */
- /*
- * Open or close the fold in the current window which contains "lnum".
-+ * Also does this for other windows in diff mode when needed.
-+ */
-+ static linenr_T
-+ setManualFold(lnum, opening, recurse, donep)
-+ linenr_T lnum;
-+ int opening; /* TRUE when opening, FALSE when closing */
-+ int recurse; /* TRUE when closing/opening recursive */
-+ int *donep;
-+ {
-+ #ifdef FEAT_DIFF
-+ if (foldmethodIsDiff(curwin) && curwin->w_p_scb)
-+ {
-+ win_T *wp;
-+ linenr_T lnum;
-+
-+ /*
-+ * Do the same operation in other windows in diff mode. Calculate the
-+ * line number from the diffs.
-+ */
-+ FOR_ALL_WINDOWS(wp)
-+ {
-+ if (wp != curwin && foldmethodIsDiff(wp) && wp->w_p_scb)
-+ {
-+ lnum = diff_lnum_win(curwin->w_cursor.lnum, wp);
-+ if (lnum != 0)
-+ (void)setManualFoldWin(wp, lnum, opening, recurse, NULL);
-+ }
-+ }
-+ }
-+ #endif
-+
-+ return setManualFoldWin(curwin, lnum, opening, recurse, donep);
-+ }
-+
-+ /* setManualFoldWin() {{{2 */
-+ /*
-+ * Open or close the fold in window "wp" which contains "lnum".
- * "donep", when not NULL, points to flag that is set to DONE_FOLD when some
- * fold was found and to DONE_ACTION when some fold was opened or closed.
- * When "donep" is NULL give an error message when no fold was found for
-! * "lnum", but only if "wp" is "curwin".
- * Return the line number of the next line that could be closed.
- * It's only valid when "opening" is TRUE!
- */
- static linenr_T
-! setManualFoldWin(wp, lnum, opening, recurse, donep)
-! win_T *wp;
- linenr_T lnum;
- int opening; /* TRUE when opening, FALSE when closing */
- int recurse; /* TRUE when closing/opening recursive */
-***************
-*** 1258,1269 ****
- linenr_T off = 0;
- int done = 0;
-
-! checkupdate(curwin);
-
- /*
- * Find the fold, open or close it.
- */
-! gap = &curwin->w_folds;
- for (;;)
- {
- if (!foldFind(gap, lnum, &fp))
---- 1324,1335 ----
- linenr_T off = 0;
- int done = 0;
-
-! checkupdate(wp);
-
- /*
- * Find the fold, open or close it.
- */
-! gap = &wp->w_folds;
- for (;;)
- {
- if (!foldFind(gap, lnum, &fp))
-***************
-*** 1285,1291 ****
- if (use_level || fp->fd_flags == FD_LEVEL)
- {
- use_level = TRUE;
-! if (level >= curwin->w_p_fdl)
- fp->fd_flags = FD_CLOSED;
- else
- fp->fd_flags = FD_OPEN;
---- 1351,1357 ----
- if (use_level || fp->fd_flags == FD_LEVEL)
- {
- use_level = TRUE;
-! if (level >= wp->w_p_fdl)
- fp->fd_flags = FD_CLOSED;
- else
- fp->fd_flags = FD_OPEN;
-***************
-*** 1331,1342 ****
- found->fd_flags = FD_CLOSED;
- done |= DONE_ACTION;
- }
-! curwin->w_fold_manual = TRUE;
- if (done & DONE_ACTION)
-! changed_window_setting();
- done |= DONE_FOLD;
- }
-! else if (donep == NULL)
- EMSG(_(e_nofold));
-
- if (donep != NULL)
---- 1397,1408 ----
- found->fd_flags = FD_CLOSED;
- done |= DONE_ACTION;
- }
-! wp->w_fold_manual = TRUE;
- if (done & DONE_ACTION)
-! changed_window_setting_win(wp);
- done |= DONE_FOLD;
- }
-! else if (donep == NULL && wp == curwin)
- EMSG(_(e_nofold));
-
- if (donep != NULL)
-*** ../vim-6.2.312/src/move.c Fri Feb 20 21:36:20 2004
---- src/move.c Tue Mar 2 16:41:52 2004
-***************
-*** 467,476 ****
- void
- changed_window_setting()
- {
-! curwin->w_lines_valid = 0;
-! changed_line_abv_curs();
-! curwin->w_valid &= ~(VALID_BOTLINE|VALID_BOTLINE_AP|VALID_TOPLINE);
-! redraw_later(NOT_VALID);
- }
-
- /*
---- 467,483 ----
- void
- changed_window_setting()
- {
-! changed_window_setting_win(curwin);
-! }
-!
-! void
-! changed_window_setting_win(wp)
-! win_T *wp;
-! {
-! wp->w_lines_valid = 0;
-! changed_line_abv_curs_win(wp);
-! wp->w_valid &= ~(VALID_BOTLINE|VALID_BOTLINE_AP|VALID_TOPLINE);
-! redraw_win_later(wp, NOT_VALID);
- }
-
- /*
-*** ../vim-6.2.312/src/proto/diff.pro Sun Jun 1 12:26:06 2003
---- src/proto/diff.pro Tue Mar 2 16:54:08 2004
-***************
-*** 19,22 ****
---- 19,23 ----
- void ex_diffgetput __ARGS((exarg_T *eap));
- int diff_mode_buf __ARGS((buf_T *buf));
- int diff_move_to __ARGS((int dir, long count));
-+ linenr_T diff_lnum_win __ARGS((linenr_T lnum, win_T *wp));
- /* vim: set ft=c : */
-*** ../vim-6.2.312/src/proto/move.pro Sun Jun 1 12:26:16 2003
---- src/proto/move.pro Tue Mar 2 16:54:12 2004
-***************
-*** 4,9 ****
---- 4,10 ----
- void update_curswant __ARGS((void));
- void check_cursor_moved __ARGS((win_T *wp));
- void changed_window_setting __ARGS((void));
-+ void changed_window_setting_win __ARGS((win_T *wp));
- void set_topline __ARGS((win_T *wp, linenr_T lnum));
- void changed_cline_bef_curs __ARGS((void));
- void changed_cline_bef_curs_win __ARGS((win_T *wp));
-*** ../vim-6.2.312/src/version.c Wed Mar 3 19:23:14 2004
---- src/version.c Wed Mar 3 21:03:54 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 313,
- /**/
-
---
-The Law of VIM:
-For each member b of the possible behaviour space B of program P, there exists
-a finite time t before which at least one user u in the total user space U of
-program P will request b becomes a member of the allowed behaviour space B'
-(B' <= B).
-In other words: Sooner or later everyone wants everything as an option.
- -- Vince Negri
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.314
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.314
-Problem: When 'virtualedit' is set "rx" may cause a crash with a blockwise
- selection and using "$". (Moritz Orbach)
-Solution: Don't try replacing chars in a line that has no characters in the
- block.
-Files: src/ops.c
-
-
-*** ../vim-6.2.313/src/ops.c Sun Feb 15 13:49:38 2004
---- src/ops.c Wed Mar 3 21:51:58 2004
-***************
-*** 1922,1929 ****
- for ( ; curwin->w_cursor.lnum <= oap->end.lnum; ++curwin->w_cursor.lnum)
- {
- block_prep(oap, &bd, curwin->w_cursor.lnum, TRUE);
-! if (bd.textlen == 0 && !virtual_op) /* nothing to delete */
-! continue;
-
- /* n == number of extra chars required
- * If we split a TAB, it may be replaced by several characters.
---- 1922,1929 ----
- for ( ; curwin->w_cursor.lnum <= oap->end.lnum; ++curwin->w_cursor.lnum)
- {
- block_prep(oap, &bd, curwin->w_cursor.lnum, TRUE);
-! if (bd.textlen == 0 && (!virtual_op || bd.is_MAX))
-! continue; /* nothing to replace */
-
- /* n == number of extra chars required
- * If we split a TAB, it may be replaced by several characters.
-*** ../vim-6.2.313/src/version.c Wed Mar 3 21:08:15 2004
---- src/version.c Wed Mar 3 23:00:31 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 314,
- /**/
-
---
-ARTHUR: Charge!
- [They all charge with swords drawn towards the RABBIT. A tremendous twenty
- second fight with Peckinpahish shots and borrowing heavily also on the
- Kung Fu and karate-type films ensues, in which some four KNIGHTS are
- comprehensively killed.]
-ARTHUR: Run away! Run away!
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.315
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.315
-Problem: Using CTRL-C in a Visual mode mapping while 'insertmode' is set
- stops Vim from returning to Insert mode.
-Solution: Don't reset "restart_edit" when a CTRL-C is found and 'insertmode'
- is set.
-Files: src/normal.c
-
-
-*** ../vim-6.2.314/src/normal.c Tue Mar 2 16:04:09 2004
---- src/normal.c Thu Mar 4 10:40:57 2004
-***************
-*** 7836,7842 ****
- && no_reason)
- MSG(_("Type :quit<Enter> to exit Vim"));
-
-! restart_edit = 0;
- #ifdef FEAT_CMDWIN
- if (cmdwin_type != 0)
- {
---- 7859,7868 ----
- && no_reason)
- MSG(_("Type :quit<Enter> to exit Vim"));
-
-! /* Don't reset "restart_edit" when 'insertmode' is set, it won't be
-! * set again below when halfway a mapping. */
-! if (!p_im)
-! restart_edit = 0;
- #ifdef FEAT_CMDWIN
- if (cmdwin_type != 0)
- {
-*** ../vim-6.2.314/src/version.c Wed Mar 3 23:01:29 2004
---- src/version.c Thu Mar 4 10:41:41 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 315,
- /**/
-
---
-ROBIN: The what?
-ARTHUR: The Holy Hand Grenade of Antioch. 'Tis one of the sacred relics
- Brother Maynard always carries with him.
-ALL: Yes. Of course.
-ARTHUR: (shouting) Bring up the Holy Hand Grenade!
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.316
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.316 (after 6.2.312)
-Problem: "make install" tries connecting to the X server when installing
- the docs. (Stephen Thomas)
-Solution: Add the "-X" argument.
-Files: runtime/doc/Makefile
-
-
-*** ../vim-6.2.315/runtime/doc/Makefile Wed Mar 3 19:23:14 2004
---- runtime/doc/Makefile Thu Mar 4 12:00:37 2004
-***************
-*** 256,262 ****
- # Use Vim to generate the tags file. Can only be used when Vim has been
- # compiled and installed. Supports multiple languages.
- vimtags: $(DOCS)
-! $(VIMEXE) -e -s -c "helptags ." -c quit
-
- # Use "doctags" to generate the tags file. Only works for English!
- tags: doctags $(DOCS)
---- 256,262 ----
- # Use Vim to generate the tags file. Can only be used when Vim has been
- # compiled and installed. Supports multiple languages.
- vimtags: $(DOCS)
-! $(VIMEXE) -e -s -X -c "helptags ." -c quit
-
- # Use "doctags" to generate the tags file. Only works for English!
- tags: doctags $(DOCS)
-*** ../vim-6.2.315/src/version.c Thu Mar 4 10:42:50 2004
---- src/version.c Thu Mar 4 14:19:15 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 316,
- /**/
-
---
-User: I'm having problems with my text editor.
-Help desk: Which editor are you using?
-User: I don't know, but it's version VI (pronounced: 6).
-Help desk: Oh, then you should upgrade to version VIM (pronounced: 994).
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.317
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.317 (after 6.2.313)
-Problem: When using "zi" in a diff window, other diff windows are not
- adjusted. (Richard Curnow)
-Solution: Distribute a change in 'foldenable' to other diff windows.
-Files: src/normal.c
-
-
-*** ../vim-6.2.316/src/normal.c Thu Mar 4 10:42:50 2004
---- src/normal.c Thu Mar 4 22:56:50 2004
-***************
-*** 4530,4538 ****
- }
-
- #ifdef FEAT_FOLDING
-! /* Redraw when 'foldenable' or 'foldlevel' changed */
- if (old_fen != curwin->w_p_fen)
- changed_window_setting();
- if (old_fdl != curwin->w_p_fdl)
- newFoldLevel();
- #endif
---- 4537,4565 ----
- }
-
- #ifdef FEAT_FOLDING
-! /* Redraw when 'foldenable' changed */
- if (old_fen != curwin->w_p_fen)
-+ {
-+ # ifdef FEAT_DIFF
-+ win_T *wp;
-+
-+ if (foldmethodIsDiff(curwin) && curwin->w_p_scb)
-+ {
-+ /* Adjust 'foldenable' in diff-synced windows. */
-+ FOR_ALL_WINDOWS(wp)
-+ {
-+ if (wp != curwin && foldmethodIsDiff(wp) && wp->w_p_scb)
-+ {
-+ wp->w_p_fen = curwin->w_p_fen;
-+ changed_window_setting_win(wp);
-+ }
-+ }
-+ }
-+ # endif
- changed_window_setting();
-+ }
-+
-+ /* Redraw when 'foldlevel' changed. */
- if (old_fdl != curwin->w_p_fdl)
- newFoldLevel();
- #endif
-*** ../vim-6.2.316/src/version.c Thu Mar 4 14:20:22 2004
---- src/version.c Fri Mar 5 12:10:41 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 317,
- /**/
-
---
-It is illegal for anyone to try and stop a child from playfully jumping over
-puddles of water.
- [real standing law in California, United States of America]
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.318
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.318
-Problem: When compiling with _THREAD_SAFE external commands don't echo
- typed characters.
-Solution: Don't set the terminal mode to TMODE_SLEEP when it's already at
- TMODE_COOK.
-Files: src/os_unix.c
-
-
-*** ../vim-6.2.317/src/os_unix.c Sun Feb 29 14:45:49 2004
---- src/os_unix.c Fri Mar 5 15:14:01 2004
-***************
-*** 526,532 ****
- /* Go to cooked mode without echo, to allow SIGINT interrupting us
- * here */
- old_tmode = curr_tmode;
-! settmode(TMODE_SLEEP);
-
- /*
- * Everybody sleeps in a different way...
---- 526,533 ----
- /* Go to cooked mode without echo, to allow SIGINT interrupting us
- * here */
- old_tmode = curr_tmode;
-! if (curr_tmode == TMODE_RAW)
-! settmode(TMODE_SLEEP);
-
- /*
- * Everybody sleeps in a different way...
-*** ../vim-6.2.317/src/version.c Fri Mar 5 12:12:37 2004
---- src/version.c Fri Mar 5 15:20:12 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 318,
- /**/
-
---
-If an elephant is left tied to a parking meter, the parking fee has to be paid
-just as it would for a vehicle.
- [real standing law in Florida, United States of America]
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.319 (extra)
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.319 (extra)
-Problem: Building gvimext.dll with Mingw doesn't work properly.
-Solution: Use gcc instead of dllwrap. Use long option names. (Alejandro
- Lopez-Valencia)
-Files: src/GvimExt/Make_ming.mak
-
-
-*** ../vim-6.2.318/src/GvimExt/Make_ming.mak Sun May 4 11:49:25 2003
---- src/GvimExt/Make_ming.mak Sun Feb 29 17:29:25 2004
-***************
-*** 2,44 ****
- # Generates gvimext.dll with gcc.
- # Can be used for Cygwin and MingW (MingW ignores -mno-cygwin)
- #
-! CPP := g++.exe
-! CC := gcc.exe
- CXXFLAGS := -O2 -mno-cygwin
- LIBS := -luuid
- WINDRES := windres.exe
-- DLLWRAP = dllwrap.exe
- RES := gvimext.res
- DEFFILE = gvimext_ming.def
-! STATICLIB = gvimext.a
-! EXPLIB = gvimext.exp
-! OBJ := gvimext.o $(RES)
-
-- INCS :=
- DLL := gvimext.dll
-
- .PHONY: all all-before all-after clean clean-custom
-
- all: all-before $(DLL) all-after
-
-
-! clean: clean-custom
-! ${RM} $(OBJ) $(DLL) ${RES} ${EXPLIB} $(STATICLIB)
-!
-
-! $(DLL): $(OBJ)
-! $(DLLWRAP) \
-! --def $(DEFFILE) \
-! --output-exp ${EXPLIB} \
-! --image-base 0x1C000000 \
-! --driver-name c++ \
-! --implib $(STATICLIB) \
-! $(OBJ) $(LIBS) \
-! --target=i386-mingw32 -mno-cygwin \
-! -o $(DLL) -s
-
-! gvimext.o: gvimext.cpp
-! $(CPP) -c $? -o $@ $(CXXFLAGS) -DFEAT_GETTEXT
-
-- ${RES}: gvimext_ming.rc
-- $(WINDRES) $? -I rc -o $@ -O coff -DMING
---- 2,41 ----
- # Generates gvimext.dll with gcc.
- # Can be used for Cygwin and MingW (MingW ignores -mno-cygwin)
- #
-! # Originally, the DLL base address was fixed: -Wl,--image-base=0x1C000000
-! # Now it is allocated dymanically by the linker by evaluating all DLLs
-! # already loaded in memory. The binary image contains as well information
-! # for automatic pseudo-rebasing, if needed by the system. ALV 2004-02-29
-!
-! CXX := g++
- CXXFLAGS := -O2 -mno-cygwin
- LIBS := -luuid
- WINDRES := windres.exe
- RES := gvimext.res
- DEFFILE = gvimext_ming.def
-! OBJ := gvimext.o
-
- DLL := gvimext.dll
-
- .PHONY: all all-before all-after clean clean-custom
-
- all: all-before $(DLL) all-after
-
-+ $(DLL): $(OBJ) $(RES) $(DEFFILE)
-+ $(CXX) -shared $(CXXFLAGS) -s -o $@ \
-+ -Wl,--enable-auto-image-base \
-+ -Wl,--enable-auto-import \
-+ -Wl,--whole-archive \
-+ $^ \
-+ -Wl,--no-whole-archive \
-+ $(LIBS)
-
-! gvimext.o: gvimext.cpp
-! $(CXX) $(CXXFLAGS) -DFEAT_GETTEXT -c $? -o $@
-
-! $(RES): gvimext_ming.rc
-! $(WINDRES) --input-format=rc --output-format=coff -DMING $? -o $@
-
-! clean: clean-custom
-! ${RM} $(OBJ) $(RES) $(DLL)
-
-*** ../vim-6.2.318/src/version.c Fri Mar 5 15:21:09 2004
---- src/version.c Sat Mar 6 21:03:41 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 319,
- /**/
-
---
-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/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.320
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.320
-Problem: Win32: Adding and removing the menubar resizes the Vim window.
- (Jonathon Merz)
-Solution: Don't let a resize event change 'lines' unexpectedly.
-Files: src/gui.c
-
-
-*** ../vim-6.2.319/src/gui.c Wed Feb 25 13:13:26 2004
---- src/gui.c Fri Mar 5 22:42:42 2004
-***************
-*** 3156,3162 ****
---- 3156,3166 ----
- #ifdef FEAT_MENU
- if (gui.menu_is_active != prev_menu_is_active)
- {
-+ /* We don't want a resize event change "Rows" here, save and
-+ * restore it. Resizing is handled below. */
-+ i = Rows;
- gui_mch_enable_menu(gui.menu_is_active);
-+ Rows = i;
- prev_menu_is_active = gui.menu_is_active;
- need_set_size = TRUE;
- if (gui.menu_is_active)
-***************
-*** 3192,3199 ****
- }
- #endif
- if (need_set_size)
-! /* Adjust the size of the window to avoid that part of our window
-! * is off-screen and a scrollbar can't be used, for example. */
- gui_set_shellsize(FALSE, fix_size);
- }
- }
---- 3196,3204 ----
- }
- #endif
- if (need_set_size)
-! /* Adjust the size of the window to make the text area keep the
-! * same size and to avoid that part of our window is off-screen
-! * and a scrollbar can't be used, for example. */
- gui_set_shellsize(FALSE, fix_size);
- }
- }
-*** ../vim-6.2.319/src/version.c Sat Mar 6 21:04:29 2004
---- src/version.c Sat Mar 6 21:05:52 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 320,
- /**/
-
---
-A special cleaning ordinance bans housewives from hiding dirt and dust under a
-rug in a dwelling.
- [real standing law in Pennsylvania, United States of America]
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.321
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.321
-Problem: When using modeless selection, wrapping lines are not recognized,
- a line break is always inserted.
-Solution: Add LineWraps[] to remember whether a line wrapped or not.
-Files: src/globals.h, src/screen.c, src/ui.c
-
-
-*** ../vim-6.2.320/src/globals.h Wed Oct 29 14:37:09 2003
---- src/globals.h Sat Mar 6 15:13:54 2004
-***************
-*** 39,44 ****
---- 39,45 ----
- EXTERN schar_T *ScreenLines INIT(= NULL);
- EXTERN sattr_T *ScreenAttrs INIT(= NULL);
- EXTERN unsigned *LineOffset INIT(= NULL);
-+ EXTERN char_u *LineWraps INIT(= NULL);
-
- #ifdef FEAT_MBYTE
- /*
-*** ../vim-6.2.320/src/screen.c Sun Jan 25 19:32:46 2004
---- src/screen.c Sat Mar 6 15:32:18 2004
-***************
-*** 14,23 ****
- * by remembering what is already on the screen, and only updating the parts
- * that changed.
- *
-! * ScreenLines[] contains a copy of the whole screen, as it is currently
-! * displayed (excluding text written by external commands).
-! * ScreenAttrs[] contains the associated attributes.
-! * LineOffset[] contains the offset into ScreenLines[] for each line.
- * For double-byte characters, two consecutive bytes in ScreenLines[] can form
- * one character which occupies two display cells.
- * For UTF-8 a multi-byte character is converted to Unicode and stored in
---- 14,26 ----
- * by remembering what is already on the screen, and only updating the parts
- * that changed.
- *
-! * ScreenLines[off] Contains a copy of the whole screen, as it is currently
-! * displayed (excluding text written by external commands).
-! * ScreenAttrs[off] Contains the associated attributes.
-! * LineOffset[row] Contains the offset into ScreenLines*[] and ScreenAttrs[]
-! * for each line.
-! * LineWraps[row] Flag for each line whether it wraps to the next line.
-! *
- * For double-byte characters, two consecutive bytes in ScreenLines[] can form
- * one character which occupies two display cells.
- * For UTF-8 a multi-byte character is converted to Unicode and stored in
-***************
-*** 4051,4105 ****
- break;
- }
-
-! /*
-! * Special trick to make copy/paste of wrapped lines work with
-! * xterm/screen: write an extra character beyond the end of the
-! * line. This will work with all terminal types (regardless of the
-! * xn,am settings).
-! * Only do this on a fast tty.
-! * Only do this if the cursor is on the current line (something
-! * has been written in it).
-! * Don't do this for the GUI.
-! * Don't do this for double-width characters.
-! * Don't do this for a window not at the right screen border.
-! */
-! if (p_tf && screen_cur_row == screen_row - 1
-! #ifdef FEAT_GUI
-! && !gui.in_use
-! #endif
- #ifdef FEAT_DIFF
- && filler_todo <= 0
- #endif
-- #ifdef FEAT_MBYTE
-- && !(has_mbyte
-- && ((*mb_off2cells)(LineOffset[screen_row]) == 2
-- || (*mb_off2cells)(LineOffset[screen_row - 1]
-- + (int)Columns - 2) == 2))
-- #endif
- && W_WIDTH(wp) == Columns)
- {
-! /* First make sure we are at the end of the screen line, then
-! * output the same character again to let the terminal know
-! * about the wrap. If the terminal doesn't auto-wrap, we
-! * overwrite the character. */
-! if (screen_cur_col != W_WIDTH(wp))
-! screen_char(LineOffset[screen_row - 1]
- + (unsigned)Columns - 1,
- screen_row - 1, (int)(Columns - 1));
-
- #ifdef FEAT_MBYTE
-! /* When there is a multi-byte character, just output a space
-! * to keep it simple. */
-! if (has_mbyte && mb_off2cells(LineOffset[screen_row - 1]
- + (unsigned)Columns - 1) != 1)
-! out_char(' ');
-! else
- #endif
-! out_char(ScreenLines[LineOffset[screen_row - 1]
- + (Columns - 1)]);
-! /* force a redraw of the first char on the next line */
-! ScreenAttrs[LineOffset[screen_row]] = (sattr_T)-1;
-! screen_start(); /* don't know where cursor is now */
- }
-
- col = 0;
---- 4053,4114 ----
- break;
- }
-
-! if (screen_cur_row == screen_row - 1
- #ifdef FEAT_DIFF
- && filler_todo <= 0
- #endif
- && W_WIDTH(wp) == Columns)
- {
-! /* Remember that the line wraps, used for modeless copy. */
-! LineWraps[screen_row - 1] = TRUE;
-!
-! /*
-! * Special trick to make copy/paste of wrapped lines work with
-! * xterm/screen: write an extra character beyond the end of
-! * the line. This will work with all terminal types
-! * (regardless of the xn,am settings).
-! * Only do this on a fast tty.
-! * Only do this if the cursor is on the current line
-! * (something has been written in it).
-! * Don't do this for the GUI.
-! * Don't do this for double-width characters.
-! * Don't do this for a window not at the right screen border.
-! */
-! if (p_tf
-! #ifdef FEAT_GUI
-! && !gui.in_use
-! #endif
-! #ifdef FEAT_MBYTE
-! && !(has_mbyte
-! && ((*mb_off2cells)(LineOffset[screen_row]) == 2
-! || (*mb_off2cells)(LineOffset[screen_row - 1]
-! + (int)Columns - 2) == 2))
-! #endif
-! )
-! {
-! /* First make sure we are at the end of the screen line,
-! * then output the same character again to let the
-! * terminal know about the wrap. If the terminal doesn't
-! * auto-wrap, we overwrite the character. */
-! if (screen_cur_col != W_WIDTH(wp))
-! screen_char(LineOffset[screen_row - 1]
- + (unsigned)Columns - 1,
- screen_row - 1, (int)(Columns - 1));
-
- #ifdef FEAT_MBYTE
-! /* When there is a multi-byte character, just output a
-! * space to keep it simple. */
-! if (has_mbyte && mb_off2cells(LineOffset[screen_row - 1]
- + (unsigned)Columns - 1) != 1)
-! out_char(' ');
-! else
- #endif
-! out_char(ScreenLines[LineOffset[screen_row - 1]
- + (Columns - 1)]);
-! /* force a redraw of the first char on the next line */
-! ScreenAttrs[LineOffset[screen_row]] = (sattr_T)-1;
-! screen_start(); /* don't know where cursor is now */
-! }
- }
-
- col = 0;
-***************
-*** 4509,4517 ****
- }
- }
-
-- #ifdef FEAT_VERTSPLIT
- if (clear_width > 0)
- {
- /* For a window that's left of another, draw the separator char. */
- if (col + coloff < Columns)
- {
---- 4518,4526 ----
- }
- }
-
- if (clear_width > 0)
- {
-+ #ifdef FEAT_VERTSPLIT
- /* For a window that's left of another, draw the separator char. */
- if (col + coloff < Columns)
- {
-***************
-*** 4543,4550 ****
- screen_char(off_to, row, col + coloff);
- }
- }
-! }
- #endif
- }
-
- #ifdef FEAT_RIGHTLEFT
---- 4552,4561 ----
- screen_char(off_to, row, col + coloff);
- }
- }
-! else
- #endif
-+ LineWraps[row] = FALSE;
-+ }
- }
-
- #ifdef FEAT_RIGHTLEFT
-***************
-*** 6290,6295 ****
---- 6301,6308 ----
- c = c2;
- }
- }
-+ if (end_col == Columns)
-+ LineWraps[row] = FALSE;
- if (row == Rows - 1) /* overwritten the command line */
- {
- redraw_cmdline = TRUE;
-***************
-*** 6363,6368 ****
---- 6376,6382 ----
- #endif
- sattr_T *new_ScreenAttrs;
- unsigned *new_LineOffset;
-+ char_u *new_LineWraps;
- static int entered = FALSE; /* avoid recursiveness */
-
- /*
-***************
-*** 6436,6441 ****
---- 6450,6456 ----
- (Rows + 1) * Columns * sizeof(sattr_T)), FALSE);
- new_LineOffset = (unsigned *)lalloc((long_u)(
- Rows * sizeof(unsigned)), FALSE);
-+ new_LineWraps = (char_u *)lalloc((long_u)(Rows * sizeof(char_u)), FALSE);
-
- FOR_ALL_WINDOWS(wp)
- {
-***************
-*** 6456,6461 ****
---- 6471,6477 ----
- #endif
- || new_ScreenAttrs == NULL
- || new_LineOffset == NULL
-+ || new_LineWraps == NULL
- || outofmem)
- {
- do_outofmem_msg((long_u)((Rows + 1) * Columns)); /* guess the size */
-***************
-*** 6475,6486 ****
---- 6491,6505 ----
- new_ScreenAttrs = NULL;
- vim_free(new_LineOffset);
- new_LineOffset = NULL;
-+ vim_free(new_LineWraps);
-+ new_LineWraps = NULL;
- }
- else
- {
- for (new_row = 0; new_row < Rows; ++new_row)
- {
- new_LineOffset[new_row] = new_row * Columns;
-+ new_LineWraps[new_row] = FALSE;
-
- /*
- * If the screen is not going to be cleared, copy as much as
-***************
-*** 6564,6569 ****
---- 6583,6589 ----
- #endif
- ScreenAttrs = new_ScreenAttrs;
- LineOffset = new_LineOffset;
-+ LineWraps = new_LineWraps;
-
- /* It's important that screen_Rows and screen_Columns reflect the actual
- * size of ScreenLines[]. Set them before calling anything. */
-***************
-*** 6636,6642 ****
---- 6656,6665 ----
-
- /* blank out ScreenLines */
- for (i = 0; i < Rows; ++i)
-+ {
- lineclear(LineOffset[i], (int)Columns);
-+ LineWraps[i] = FALSE;
-+ }
-
- if (can_clear(T_CL))
- {
-***************
-*** 7462,7467 ****
---- 7485,7491 ----
- lineclear(LineOffset[j] + wp->w_wincol, wp->w_width);
- else
- lineinvalid(LineOffset[j] + wp->w_wincol, wp->w_width);
-+ LineWraps[j] = FALSE;
- }
- else
- #endif
-***************
-*** 7469,7476 ****
---- 7493,7504 ----
- j = end - 1 - i;
- temp = LineOffset[j];
- while ((j -= line_count) >= row)
-+ {
- LineOffset[j + line_count] = LineOffset[j];
-+ LineWraps[j + line_count] = LineWraps[j];
-+ }
- LineOffset[j + line_count] = temp;
-+ LineWraps[j + line_count] = FALSE;
- if (can_clear((char_u *)" "))
- lineclear(temp, (int)Columns);
- else
-***************
-*** 7691,7696 ****
---- 7719,7725 ----
- lineclear(LineOffset[j] + wp->w_wincol, wp->w_width);
- else
- lineinvalid(LineOffset[j] + wp->w_wincol, wp->w_width);
-+ LineWraps[j] = FALSE;
- }
- else
- #endif
-***************
-*** 7699,7706 ****
---- 7728,7739 ----
- j = row + i;
- temp = LineOffset[j];
- while ((j += line_count) <= end - 1)
-+ {
- LineOffset[j - line_count] = LineOffset[j];
-+ LineWraps[j - line_count] = LineWraps[j];
-+ }
- LineOffset[j - line_count] = temp;
-+ LineWraps[j - line_count] = FALSE;
- if (can_clear((char_u *)" "))
- lineclear(temp, (int)Columns);
- else
-*** ../vim-6.2.320/src/ui.c Sun Feb 29 14:45:49 2004
---- src/ui.c Sat Mar 6 14:56:35 2004
-***************
-*** 1183,1189 ****
- }
-
- /* If after the first row, we need to always add a newline */
-! if (row > row1)
- *bufp++ = NL;
-
- if (row < screen_Rows && end_col <= screen_Columns)
---- 1183,1189 ----
- }
-
- /* If after the first row, we need to always add a newline */
-! if (row > row1 && !LineWraps[row - 1])
- *bufp++ = NL;
-
- if (row < screen_Rows && end_col <= screen_Columns)
-*** ../vim-6.2.320/src/version.c Sat Mar 6 21:06:59 2004
---- src/version.c Sat Mar 6 21:08:40 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 321,
- /**/
-
---
-No man may purchase alcohol without written consent from his wife.
- [real standing law in Pennsylvania, United States of America]
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.322
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.322
-Problem: With 'showcmd' set, after typing "dd" the next "d" may not be
- displayed. (Jens Paulus)
-Solution: Redraw the command line after updating the screen, scrolling may
- have set "clear_cmdline".
-Files: src/screen.c
-
-
-*** ../vim-6.2.321/src/screen.c Sat Mar 6 21:10:59 2004
---- src/screen.c Sat Mar 6 15:32:18 2004
-***************
-*** 412,422 ****
- type = NOT_VALID;
- }
-
-! if (clear_cmdline) /* first clear cmdline */
-! {
- check_for_delay(FALSE);
-- msg_clr_cmdline(); /* will reset clear_cmdline */
-- }
-
- /*
- * Only start redrawing if there is really something to do.
---- 412,419 ----
- type = NOT_VALID;
- }
-
-! if (clear_cmdline) /* going to clear cmdline (done below) */
- check_for_delay(FALSE);
-
- /*
- * Only start redrawing if there is really something to do.
-***************
-*** 534,540 ****
- gui_may_resize_shell();
- #endif
-
-! if (redraw_cmdline)
- showmode();
-
- /* May put up an introductory message when not editing a file */
---- 531,539 ----
- gui_may_resize_shell();
- #endif
-
-! /* Clear or redraw the command line. Done last, because scrolling may
-! * mess up the command line. */
-! if (clear_cmdline || redraw_cmdline)
- showmode();
-
- /* May put up an introductory message when not editing a file */
-*** ../vim-6.2.321/src/version.c Sat Mar 6 21:10:59 2004
---- src/version.c Sat Mar 6 21:12:17 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 322,
- /**/
-
---
-It is illegal to take more than three sips of beer at a time while standing.
- [real standing law in Texas, United States of America]
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.323
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.323
-Problem: Win32: expanding "~/file" in an autocommand pattern results in
- backslashes, while this pattern should only have forward slashes.
-Solution: Make expanding environment variables respect 'shellslash' and set
- p_ssl when expanding the autocommand pattern.
-Files: src/fileio.c, src/misc1.c, src/proto/fileio.pro
-
-
-*** ../vim-6.2.322/src/fileio.c Tue Feb 24 15:19:00 2004
---- src/fileio.c Sun Mar 7 14:54:00 2004
-***************
-*** 6255,6267 ****
- static EVENT_T last_event;
- static int last_group;
-
-! #ifdef BACKSLASH_IN_FILENAME
-! static void forward_slash __ARGS((char_u *));
-!
- /*
- * Convert all backslashes in fname to forward slashes in-place.
- */
-! static void
- forward_slash(fname)
- char_u *fname;
- {
---- 6260,6270 ----
- static EVENT_T last_event;
- static int last_group;
-
-! #if defined(BACKSLASH_IN_FILENAME) || defined(PROTO)
- /*
- * Convert all backslashes in fname to forward slashes in-place.
- */
-! void
- forward_slash(fname)
- char_u *fname;
- {
-***************
-*** 6717,6726 ****
- if (*cmd)
- *cmd++ = NUL;
-
-! /* expand environment variables in the pattern */
- if (vim_strchr(pat, '$') != NULL || vim_strchr(pat, '~') != NULL)
- {
- envpat = expand_env_save(pat);
- if (envpat != NULL)
- pat = envpat;
- }
---- 6720,6738 ----
- if (*cmd)
- *cmd++ = NUL;
-
-! /* Expand environment variables in the pattern. Set 'shellslash', we want
-! * forward slashes here. */
- if (vim_strchr(pat, '$') != NULL || vim_strchr(pat, '~') != NULL)
- {
-+ #ifdef BACKSLASH_IN_FILENAME
-+ int p_ssl_save = p_ssl;
-+
-+ p_ssl = TRUE;
-+ #endif
- envpat = expand_env_save(pat);
-+ #ifdef BACKSLASH_IN_FILENAME
-+ p_ssl = p_ssl_save;
-+ #endif
- if (envpat != NULL)
- pat = envpat;
- }
-*** ../vim-6.2.322/src/misc1.c Tue Mar 2 16:04:09 2004
---- src/misc1.c Sun Mar 7 14:53:43 2004
-***************
-*** 3335,3340 ****
---- 3358,3381 ----
- tail = (char_u *)""; /* for gcc */
- #endif /* UNIX || VMS */
- }
-+
-+ #ifdef BACKSLASH_IN_FILENAME
-+ /* If 'shellslash' is set change backslashes to forward slashes.
-+ * Can't use slash_adjust(), p_ssl may be set temporarily. */
-+ if (p_ssl && var != NULL && vim_strchr(var, '\\') != NULL)
-+ {
-+ char_u *p = vim_strsave(var);
-+
-+ if (p != NULL)
-+ {
-+ if (mustfree)
-+ vim_free(var);
-+ var = p;
-+ mustfree = TRUE;
-+ forward_slash(var);
-+ }
-+ }
-+ #endif
-
- /* If "var" contains white space, escape it with a backslash.
- * Required for ":e ~/tt" when $HOME includes a space. */
-*** ../vim-6.2.322/src/proto/fileio.pro Sun Jan 25 20:45:55 2004
---- src/proto/fileio.pro Sun Mar 7 14:59:51 2004
-***************
-*** 17,22 ****
---- 17,23 ----
- void write_lnum_adjust __ARGS((linenr_T offset));
- void vim_deltempdir __ARGS((void));
- char_u *vim_tempname __ARGS((int extra_char));
-+ void forward_slash __ARGS((char_u *fname));
- void do_augroup __ARGS((char_u *arg, int del_group));
- int check_ei __ARGS((void));
- void do_autocmd __ARGS((char_u *arg, int forceit));
-*** ../vim-6.2.322/src/version.c Sat Mar 6 21:13:14 2004
---- src/version.c Sun Mar 7 15:19:52 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 323,
- /**/
-
---
-Living on Earth includes an annual free trip around the Sun.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.324 (extra)
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.324 (extra)
-Problem: Win32: when "vimrun.exe" has a path with white space, such as
- "Program Files", executing external commands may fail.
-Solution: Put double quotes around the path to "vimrun".
-Files: src/os_win32.c
-
-
-*** ../vim-6.2.323/src/os_win32.c Sun Feb 29 14:48:02 2004
---- src/os_win32.c Sun Mar 7 16:08:19 2004
-***************
-*** 1492,1505 ****
- /* Look for 'vimrun' */
- if (!gui_is_win32s())
- {
-! char_u vimrun_location[_MAX_PATH + 2];
-
- /* First try in same directory as gvim.exe */
- STRCPY(vimrun_location, exe_name);
- STRCPY(gettail(vimrun_location), "vimrun.exe");
- if (mch_getperm(vimrun_location) >= 0)
- {
-! STRCPY(gettail(vimrun_location), "vimrun ");
- vimrun_path = (char *)vim_strsave(vimrun_location);
- s_dont_use_vimrun = FALSE;
- }
---- 1492,1515 ----
- /* Look for 'vimrun' */
- if (!gui_is_win32s())
- {
-! char_u vimrun_location[_MAX_PATH + 4];
-
- /* First try in same directory as gvim.exe */
- STRCPY(vimrun_location, exe_name);
- STRCPY(gettail(vimrun_location), "vimrun.exe");
- if (mch_getperm(vimrun_location) >= 0)
- {
-! if (*skiptowhite(vimrun_location) != NUL)
-! {
-! /* Enclose path with white space in double quotes. */
-! mch_memmove(vimrun_location + 1, vimrun_location,
-! STRLEN(vimrun_location) + 1);
-! *vimrun_location = '"';
-! STRCPY(gettail(vimrun_location), "vimrun\" ");
-! }
-! else
-! STRCPY(gettail(vimrun_location), "vimrun ");
-!
- vimrun_path = (char *)vim_strsave(vimrun_location);
- s_dont_use_vimrun = FALSE;
- }
-*** ../vim-6.2.323/src/version.c Sun Mar 7 15:21:39 2004
---- src/version.c Sun Mar 7 16:20:50 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 324,
- /**/
-
---
- Another bucket of what can only be described as human ordure hits ARTHUR.
-ARTHUR: ... Right! (to the KNIGHTS) That settles it!
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.325
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.325
-Problem: When $HOME includes a space, doing ":set tags=~/tags" doesn't
- work, the space is used to separate file names. (Brett Stahlman)
-Solution: Escape the space with a backslash.
-Files: src/option.c
-
-
-*** ../vim-6.2.324/src/option.c Tue Mar 2 15:10:20 2004
---- src/option.c Sun Mar 7 17:22:32 2004
-***************
-*** 4240,4247 ****
-
- /*
- * Expanding this with NameBuff, expand_env() must not be passed IObuff.
- */
-! expand_env(val, NameBuff, MAXPATHL);
- if (STRCMP(NameBuff, val) == 0) /* they are the same */
- return NULL;
-
---- 4240,4250 ----
-
- /*
- * Expanding this with NameBuff, expand_env() must not be passed IObuff.
-+ * Escape spaces when expanding 'tags', they are used to separate file
-+ * names.
- */
-! expand_env_esc(val, NameBuff, MAXPATHL,
-! (char_u **)options[opt_idx].var == &p_tags);
- if (STRCMP(NameBuff, val) == 0) /* they are the same */
- return NULL;
-
-*** ../vim-6.2.324/src/version.c Sun Mar 7 17:03:27 2004
---- src/version.c Sun Mar 7 18:18:40 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 325,
- /**/
-
---
-ARTHUR: CHARGE!
- [The mighty ARMY charges. Thundering noise of feet. Clatter of coconuts.
- Shouts etc. Suddenly there is a wail of a siren and a couple of police
- cars roar round in front of the charging ARMY and the POLICE leap out and
- stop them. TWO POLICEMAN and the HISTORIAN'S WIFE. Black Marias skid up
- behind them.]
-HISTORIAN'S WIFE: They're the ones, I'm sure.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.326
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.326
-Problem: ":windo set syntax=foo" doesn't work. (Tim Chase)
-Solution: Don't change 'eventignore' for ":windo".
-Files: src/ex_cmds2.c
-
-
-*** ../vim-6.2.325/src/ex_cmds2.c Sun Feb 29 21:06:13 2004
---- src/ex_cmds2.c Sun Mar 7 19:30:37 2004
-***************
-*** 1581,1587 ****
- buf_T *buf;
- int next_fnum = 0;
- #if defined(FEAT_AUTOCMD) && defined(FEAT_SYN_HL)
-! char_u *save_ei = vim_strsave(p_ei);
- char_u *new_ei;
- #endif
-
---- 1581,1587 ----
- buf_T *buf;
- int next_fnum = 0;
- #if defined(FEAT_AUTOCMD) && defined(FEAT_SYN_HL)
-! char_u *save_ei = NULL;
- char_u *new_ei;
- #endif
-
-***************
-*** 1594,1605 ****
- #endif
-
- #if defined(FEAT_AUTOCMD) && defined(FEAT_SYN_HL)
-! new_ei = vim_strnsave(p_ei, (int)STRLEN(p_ei) + 8);
-! if (new_ei != NULL)
- {
-! STRCAT(new_ei, ",Syntax");
-! set_string_option_direct((char_u *)"ei", -1, new_ei, OPT_FREE);
-! vim_free(new_ei);
- }
- #endif
-
---- 1594,1615 ----
- #endif
-
- #if defined(FEAT_AUTOCMD) && defined(FEAT_SYN_HL)
-! if (eap->cmdidx != CMD_windo)
- {
-! /* Add "Syntax" to 'eventignore' to skip loading syntax highlighting
-! * for every buffer loaded into the window. A considerable speed
-! * improvement. */
-! save_ei = vim_strsave(p_ei);
-! if (save_ei != NULL)
-! {
-! new_ei = vim_strnsave(p_ei, (int)STRLEN(p_ei) + 8);
-! if (new_ei != NULL)
-! {
-! STRCAT(new_ei, ",Syntax");
-! set_string_option_direct((char_u *)"ei", -1, new_ei, OPT_FREE);
-! vim_free(new_ei);
-! }
-! }
- }
- #endif
-
-***************
-*** 1692,1704 ****
- }
-
- #if defined(FEAT_AUTOCMD) && defined(FEAT_SYN_HL)
-! if (new_ei != NULL)
- {
- set_string_option_direct((char_u *)"ei", -1, save_ei, OPT_FREE);
- apply_autocmds(EVENT_SYNTAX, curbuf->b_p_syn,
-! curbuf->b_fname, TRUE, curbuf);
- }
-- vim_free(save_ei);
- #endif
- }
-
---- 1702,1714 ----
- }
-
- #if defined(FEAT_AUTOCMD) && defined(FEAT_SYN_HL)
-! if (save_ei != NULL)
- {
- set_string_option_direct((char_u *)"ei", -1, save_ei, OPT_FREE);
- apply_autocmds(EVENT_SYNTAX, curbuf->b_p_syn,
-! curbuf->b_fname, TRUE, curbuf);
-! vim_free(save_ei);
- }
- #endif
- }
-
-*** ../vim-6.2.325/src/version.c Sun Mar 7 19:33:37 2004
---- src/version.c Sun Mar 7 19:31:07 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 326,
- /**/
-
---
-"I love deadlines. I especially like the whooshing sound they
-make as they go flying by."
- -- Douglas Adams
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.327
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.327
-Problem: When formatting text all marks in the formatted lines are lost.
- A word is not joined to a previous line when this would be
- possible. (Mikolaj Machowski)
-Solution: Try to keep marks in the same position as much as possible.
- Also keep mark positions when joining lines.
- Start auto-formatting in the previous line when appropriate.
- Add the "gw" operator: Like "gq" but keep the cursor where it is.
-Files: runtime/doc/change.txt, src/edit.c, src/globals.h, src/mark.c,
- src/misc1.c, src/normal.c, src/ops.c, src/proto/edit.pro,
- src/proto/mark.pro, src/proto/ops.pro, src/structs.h, src/vim.h
-
-
-*** ../vim-6.2.326/runtime/doc/change.txt Sun Jun 1 12:20:31 2003
---- runtime/doc/change.txt Thu Mar 4 23:02:55 2004
-***************
-*** 1,4 ****
-! *change.txt* For Vim version 6.2. Last change: 2003 May 24
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
---- 1,4 ----
-! *change.txt* For Vim version 6.2. Last change: 2004 Mar 04
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
-***************
-*** 1104,1110 ****
- {Visual}gq Format the highlighted text. (for {Visual} see
- |Visual-mode|). {not in Vi}
-
-! Example: To format the current paragraph use: >
- gqap
-
- The "gq" command leaves the cursor in the line where the motion command takes
---- 1128,1140 ----
- {Visual}gq Format the highlighted text. (for {Visual} see
- |Visual-mode|). {not in Vi}
-
-! *gw*
-! gw{motion} Format the lines that {motion} moves over. Similar to
-! |gq| but puts the cursor back at the same position in
-! the text. However, 'formatprg' is not used.
-! {not in Vi}
-!
-! Example: To format the current paragraph use: *gqap* >
- gqap
-
- The "gq" command leaves the cursor in the line where the motion command takes
-***************
-*** 1112,1117 ****
---- 1142,1152 ----
- works well with "gqj" (format current and next line) and "gq}" (format until
- end of paragraph). Note: When 'formatprg' is set, "gq" leaves the cursor on
- the first formatted line (as with using a filter command).
-+
-+ If you want to format the current paragraph and continue where you were, use: >
-+ gwap
-+ If you always want to keep paragraphs formatted you may want to add the 'a'
-+ flag to 'formatoptions'. See |auto-format|.
-
- If the 'autoindent' option is on, Vim uses the indent of the first line for
- the following lines.
-*** ../vim-6.2.326/src/edit.c Tue Mar 2 14:59:39 2004
---- src/edit.c Mon Mar 8 11:55:50 2004
-***************
-*** 122,130 ****
- static void undisplay_dollar __ARGS((void));
- static void insert_special __ARGS((int, int, int));
- static void check_auto_format __ARGS((int));
-- #ifdef FEAT_COMMENTS
-- static int cmplen __ARGS((char_u *s1, char_u *s2));
-- #endif
- static void redo_literal __ARGS((int c));
- static void start_arrow __ARGS((pos_T *end_insert_pos));
- static void stop_insert __ARGS((pos_T *end_insert_pos, int esc));
---- 122,127 ----
-***************
-*** 874,880 ****
- /* insert the contents of a register */
- case Ctrl_R:
- ins_reg();
-! auto_format(FALSE);
- inserted_space = FALSE;
- break;
-
---- 871,877 ----
- /* insert the contents of a register */
- case Ctrl_R:
- ins_reg();
-! auto_format(FALSE, TRUE);
- inserted_space = FALSE;
- break;
-
-***************
-*** 969,975 ****
- }
- # endif
- ins_shift(c, lastc);
-! auto_format(FALSE);
- inserted_space = FALSE;
- break;
-
---- 966,972 ----
- }
- # endif
- ins_shift(c, lastc);
-! auto_format(FALSE, TRUE);
- inserted_space = FALSE;
- break;
-
-***************
-*** 977,1002 ****
- case K_DEL:
- case K_KDEL:
- ins_del();
-! auto_format(FALSE);
- break;
-
- /* delete character before the cursor */
- case K_BS:
- case Ctrl_H:
- did_backspace = ins_bs(c, BACKSPACE_CHAR, &inserted_space);
-! auto_format(FALSE);
- break;
-
- /* delete word before the cursor */
- case Ctrl_W:
- did_backspace = ins_bs(c, BACKSPACE_WORD, &inserted_space);
-! auto_format(FALSE);
- break;
-
- /* delete all inserted text in current line */
- case Ctrl_U:
- did_backspace = ins_bs(c, BACKSPACE_LINE, &inserted_space);
-! auto_format(FALSE);
- inserted_space = FALSE;
- break;
-
---- 974,999 ----
- case K_DEL:
- case K_KDEL:
- ins_del();
-! auto_format(FALSE, TRUE);
- break;
-
- /* delete character before the cursor */
- case K_BS:
- case Ctrl_H:
- did_backspace = ins_bs(c, BACKSPACE_CHAR, &inserted_space);
-! auto_format(FALSE, TRUE);
- break;
-
- /* delete word before the cursor */
- case Ctrl_W:
- did_backspace = ins_bs(c, BACKSPACE_WORD, &inserted_space);
-! auto_format(FALSE, TRUE);
- break;
-
- /* delete all inserted text in current line */
- case Ctrl_U:
- did_backspace = ins_bs(c, BACKSPACE_LINE, &inserted_space);
-! auto_format(FALSE, TRUE);
- inserted_space = FALSE;
- break;
-
-***************
-*** 1119,1125 ****
- inserted_space = FALSE;
- if (ins_tab())
- goto normalchar; /* insert TAB as a normal char */
-! auto_format(FALSE);
- break;
-
- case K_KENTER:
---- 1116,1122 ----
- inserted_space = FALSE;
- if (ins_tab())
- goto normalchar; /* insert TAB as a normal char */
-! auto_format(FALSE, TRUE);
- break;
-
- case K_KENTER:
-***************
-*** 1146,1152 ****
- #endif
- if (ins_eol(c) && !p_im)
- goto doESCkey; /* out of memory */
-! auto_format(FALSE);
- inserted_space = FALSE;
- break;
-
---- 1143,1149 ----
- #endif
- if (ins_eol(c) && !p_im)
- goto doESCkey; /* out of memory */
-! auto_format(FALSE, FALSE);
- inserted_space = FALSE;
- break;
-
-***************
-*** 1260,1266 ****
- revins_legal++;
- #endif
- c = Ctrl_V; /* pretend CTRL-V is last character */
-! auto_format(FALSE);
- }
- }
- break;
---- 1257,1263 ----
- revins_legal++;
- #endif
- c = Ctrl_V; /* pretend CTRL-V is last character */
-! auto_format(FALSE, TRUE);
- }
- }
- break;
-***************
-*** 1307,1313 ****
- #endif
- }
-
-! auto_format(FALSE);
-
- #ifdef FEAT_FOLDING
- /* When inserting a character the cursor line must never be in a
---- 1304,1310 ----
- #endif
- }
-
-! auto_format(FALSE, TRUE);
-
- #ifdef FEAT_FOLDING
- /* When inserting a character the cursor line must never be in a
-***************
-*** 1767,1774 ****
- if (State & VREPLACE_FLAG)
- {
- /* If orig_line didn't allocate, just return. At least we did the job,
-! * even if you can't backspace.
-! */
- if (orig_line == NULL)
- return;
-
---- 1764,1770 ----
- if (State & VREPLACE_FLAG)
- {
- /* If orig_line didn't allocate, just return. At least we did the job,
-! * even if you can't backspace. */
- if (orig_line == NULL)
- return;
-
-***************
-*** 2509,2515 ****
- curwin->w_cursor.col++;
- }
-
-! auto_format(FALSE);
-
- ins_compl_free();
- started_completion = FALSE;
---- 2505,2511 ----
- curwin->w_cursor.col++;
- }
-
-! auto_format(FALSE, TRUE);
-
- ins_compl_free();
- started_completion = FALSE;
-***************
-*** 4114,4120 ****
- * Split the line just before the margin.
- * Only insert/delete lines, but don't really redraw the window.
- */
-! open_line(FORWARD, OPENLINE_DELSPACES
- + (fo_white_par ? OPENLINE_KEEPTRAIL : 0)
- #ifdef FEAT_COMMENTS
- + (do_comments ? OPENLINE_DO_COM : 0)
---- 4110,4116 ----
- * Split the line just before the margin.
- * Only insert/delete lines, but don't really redraw the window.
- */
-! open_line(FORWARD, OPENLINE_DELSPACES + OPENLINE_MARKFIX
- + (fo_white_par ? OPENLINE_KEEPTRAIL : 0)
- #ifdef FEAT_COMMENTS
- + (do_comments ? OPENLINE_DO_COM : 0)
-***************
-*** 4366,4377 ****
- * saved here.
- */
- void
-! auto_format(trailblank)
- int trailblank; /* when TRUE also format with trailing blank */
- {
- pos_T pos;
- colnr_T len;
-! char_u *old, *pold;
- char_u *new, *pnew;
- int wasatend;
-
---- 4362,4374 ----
- * saved here.
- */
- void
-! auto_format(trailblank, prev_line)
- int trailblank; /* when TRUE also format with trailing blank */
-+ int prev_line; /* may start in previous line */
- {
- pos_T pos;
- colnr_T len;
-! char_u *old;
- char_u *new, *pnew;
- int wasatend;
-
-***************
-*** 4413,4490 ****
- return;
- #endif
-
-! old = vim_strsave(old);
-! format_lines((linenr_T)-1);
-
-! /* Advance to the same text position again. This is tricky, indents
-! * may have changed and comment leaders may have been inserted. */
-! curwin->w_cursor.lnum = pos.lnum;
-! curwin->w_cursor.col = 0;
-! pold = old;
-! while (1)
-! {
-! if (curwin->w_cursor.lnum > curbuf->b_ml.ml_line_count)
-! {
-! curwin->w_cursor.lnum = curbuf->b_ml.ml_line_count;
-! curwin->w_cursor.col = MAXCOL;
-! break;
-! }
-! /* Make "pold" and "pnew" point to the start of the line, ignoring
-! * indent and comment leader. */
-! pold = skipwhite(pold);
-! new = ml_get_curline();
-! pnew = skipwhite(new);
-! #ifdef FEAT_COMMENTS
-! len = get_leader_len(new, NULL, FALSE);
-! if (len > 0)
-! {
-! char_u *p;
-
-! /* Skip the leader if the old text matches after it, ignoring
-! * white space. Keep in mind that the leader may appear in
-! * the text! */
-! p = skipwhite(new + len);
-! if (cmplen(pold, pnew) < cmplen(pold, p))
-! pnew = p;
-! }
-! #endif
-
-! len = (colnr_T)STRLEN(pnew);
-! if ((pold - old) + len >= pos.col)
- {
-! if (pos.col <= (colnr_T)(pold - old))
-! curwin->w_cursor.col = (pnew - new);
-! else
-! curwin->w_cursor.col = pos.col - (pold - old) + (pnew - new);
-!
-! /* Insert mode: If the cursor is now after the end of the line
-! * while it previously wasn't, the line was broken. Because of
-! * the rule above we need to add a space when 'w' is in
-! * 'formatoptions' to keep a paragraph formatted. */
-! if (!wasatend && has_format_option(FO_WHITE_PAR))
-! {
-! len = STRLEN(new);
-! if (curwin->w_cursor.col == len)
-! {
-! pnew = vim_strnsave(new, len + 2);
-! pnew[len] = ' ';
-! pnew[len + 1] = NUL;
-! ml_replace(curwin->w_cursor.lnum, pnew, FALSE);
-! /* remove the space later */
-! did_add_space = TRUE;
-! }
-! else
-! /* may remove added space */
-! check_auto_format(FALSE);
-! }
-! break;
- }
-! /* Cursor wraps to next line */
-! ++curwin->w_cursor.lnum;
-! pold += len;
- }
- check_cursor();
-- vim_free(old);
- }
-
- /*
---- 4410,4468 ----
- return;
- #endif
-
-! /*
-! * May start formatting in a previous line, so that after "x" a word is
-! * moved to the previous line if it fits there now. Only when this is not
-! * the start of a paragraph.
-! */
-! if (prev_line && !paragraph_start(curwin->w_cursor.lnum))
-! {
-! --curwin->w_cursor.lnum;
-! if (u_save_cursor() == FAIL)
-! return;
-! }
-
-! /*
-! * Do the formatting and restore the cursor position. "saved_cursor" will
-! * be adjusted for the text formatting.
-! */
-! saved_cursor = pos;
-! format_lines((linenr_T)-1);
-! curwin->w_cursor = saved_cursor;
-! saved_cursor.lnum = 0;
-
-! if (curwin->w_cursor.lnum > curbuf->b_ml.ml_line_count)
-! {
-! /* "cannot happen" */
-! curwin->w_cursor.lnum = curbuf->b_ml.ml_line_count;
-! coladvance((colnr_T)MAXCOL);
-! }
-! else
-! check_cursor_col();
-
-! /* Insert mode: If the cursor is now after the end of the line while it
-! * previously wasn't, the line was broken. Because of the rule above we
-! * need to add a space when 'w' is in 'formatoptions' to keep a paragraph
-! * formatted. */
-! if (!wasatend && has_format_option(FO_WHITE_PAR))
-! {
-! new = ml_get_curline();
-! len = STRLEN(new);
-! if (curwin->w_cursor.col == len)
- {
-! pnew = vim_strnsave(new, len + 2);
-! pnew[len] = ' ';
-! pnew[len + 1] = NUL;
-! ml_replace(curwin->w_cursor.lnum, pnew, FALSE);
-! /* remove the space later */
-! did_add_space = TRUE;
- }
-! else
-! /* may remove added space */
-! check_auto_format(FALSE);
- }
-+
- check_cursor();
- }
-
- /*
-***************
-*** 4521,4552 ****
- }
- }
-
-- #ifdef FEAT_COMMENTS
-- /*
-- * Return the number of bytes for which strings "s1" and "s2" are equal.
-- */
-- static int
-- cmplen(s1, s2)
-- char_u *s1;
-- char_u *s2;
-- {
-- char_u *p1 = s1, *p2 = s2;
--
-- while (*p1 == *p2 && *p1 != NUL)
-- {
-- ++p1;
-- ++p2;
-- }
-- return (int)(p1 - s1);
-- }
-- #endif
--
- /*
- * Find out textwidth to be used for formatting:
- * if 'textwidth' option is set, use it
- * else if 'wrapmargin' option is set, use W_WIDTH(curwin) - 'wrapmargin'
- * if invalid value, use 0.
-! * Set default to window width (maximum 79) for "Q" command.
- */
- int
- comp_textwidth(ff)
---- 4499,4510 ----
- }
- }
-
- /*
- * Find out textwidth to be used for formatting:
- * if 'textwidth' option is set, use it
- * else if 'wrapmargin' option is set, use W_WIDTH(curwin) - 'wrapmargin'
- * if invalid value, use 0.
-! * Set default to window width (maximum 79) for "gq" operator.
- */
- int
- comp_textwidth(ff)
-***************
-*** 4694,4700 ****
- * a line and having it end in a space. But only do it when something
- * was actually inserted, otherwise undo won't work. */
- if (!ins_need_undo)
-! auto_format(TRUE);
-
- /* If a space was inserted for auto-formatting, remove it now. */
- check_auto_format(TRUE);
---- 4652,4675 ----
- * a line and having it end in a space. But only do it when something
- * was actually inserted, otherwise undo won't work. */
- if (!ins_need_undo)
-! {
-! /* When the cursor is at the end of the line after a space the
-! * formatting will move it to the following word. Avoid that by
-! * moving the cursor onto the space. */
-! cc = 'x';
-! if (curwin->w_cursor.col > 0 == NUL && gchar_cursor())
-! {
-! dec_cursor();
-! cc = gchar_cursor();
-! if (!vim_iswhite(cc))
-! inc_cursor();
-! }
-!
-! auto_format(TRUE, FALSE);
-!
-! if (vim_iswhite(cc) && gchar_cursor() != NUL)
-! inc_cursor();
-! }
-
- /* If a space was inserted for auto-formatting, remove it now. */
- check_auto_format(TRUE);
-*** ../vim-6.2.326/src/globals.h Sat Mar 6 21:10:59 2004
---- src/globals.h Sat Mar 6 15:13:54 2004
-***************
-*** 608,613 ****
---- 608,619 ----
- EXTERN int can_si_back INIT(= FALSE);
- #endif
-
-+ EXTERN pos_T saved_cursor /* w_cursor before formatting text. */
-+ # ifdef DO_INIT
-+ = INIT_POS_T
-+ # endif
-+ ;
-+
- /*
- * Stuff for insert mode.
- */
-*** ../vim-6.2.326/src/mark.c Tue Mar 2 16:04:09 2004
---- src/mark.c Thu Mar 4 13:50:05 2004
-***************
-*** 923,928 ****
---- 923,932 ----
- /* previous pcmark */
- one_adjust(&(curwin->w_prev_pcmark.lnum));
-
-+ /* saved cursor for formatting */
-+ if (saved_cursor.lnum != 0)
-+ one_adjust_nodel(&(saved_cursor.lnum));
-+
- /*
- * Adjust items in all windows related to the current buffer.
- */
-***************
-*** 1008,1013 ****
---- 1012,1117 ----
- /* adjust diffs */
- diff_mark_adjust(line1, line2, amount, amount_after);
- #endif
-+ }
-+
-+ /* This code is used often, needs to be fast. */
-+ #define col_adjust(pp) \
-+ { \
-+ posp = pp; \
-+ if (posp->lnum == lnum && posp->col >= mincol) \
-+ { \
-+ posp->lnum += lnum_amount; \
-+ if (col_amount < 0 && posp->col <= (colnr_T)-col_amount) \
-+ posp->col = 0; \
-+ else \
-+ posp->col += col_amount; \
-+ } \
-+ }
-+
-+ /*
-+ * Adjust marks in line "lnum" at column "mincol" and further: add
-+ * "lnum_amount" to the line number and add "col_amount" to the column
-+ * position.
-+ */
-+ void
-+ mark_col_adjust(lnum, mincol, lnum_amount, col_amount)
-+ linenr_T lnum;
-+ colnr_T mincol;
-+ long lnum_amount;
-+ long col_amount;
-+ {
-+ int i;
-+ int fnum = curbuf->b_fnum;
-+ win_T *win;
-+ pos_T *posp;
-+
-+ if ((col_amount == 0L && lnum_amount == 0L) || cmdmod.lockmarks)
-+ return; /* nothing to do */
-+
-+ /* named marks, lower case and upper case */
-+ for (i = 0; i < NMARKS; i++)
-+ {
-+ col_adjust(&(curbuf->b_namedm[i]));
-+ if (namedfm[i].fmark.fnum == fnum)
-+ col_adjust(&(namedfm[i].fmark.mark));
-+ }
-+ for (i = NMARKS; i < NMARKS + EXTRA_MARKS; i++)
-+ {
-+ if (namedfm[i].fmark.fnum == fnum)
-+ col_adjust(&(namedfm[i].fmark.mark));
-+ }
-+
-+ /* last Insert position */
-+ col_adjust(&(curbuf->b_last_insert));
-+
-+ /* last change position */
-+ col_adjust(&(curbuf->b_last_change));
-+
-+ #ifdef FEAT_JUMPLIST
-+ /* list of change positions */
-+ for (i = 0; i < curbuf->b_changelistlen; ++i)
-+ col_adjust(&(curbuf->b_changelist[i]));
-+ #endif
-+
-+ #ifdef FEAT_VISUAL
-+ /* Visual area */
-+ col_adjust(&(curbuf->b_visual_start));
-+ col_adjust(&(curbuf->b_visual_end));
-+ #endif
-+
-+ /* previous context mark */
-+ col_adjust(&(curwin->w_pcmark));
-+
-+ /* previous pcmark */
-+ col_adjust(&(curwin->w_prev_pcmark));
-+
-+ /* saved cursor for formatting */
-+ col_adjust(&saved_cursor);
-+
-+ /*
-+ * Adjust items in all windows related to the current buffer.
-+ */
-+ FOR_ALL_WINDOWS(win)
-+ {
-+ #ifdef FEAT_JUMPLIST
-+ /* marks in the jumplist */
-+ for (i = 0; i < win->w_jumplistlen; ++i)
-+ if (win->w_jumplist[i].fmark.fnum == fnum)
-+ col_adjust(&(win->w_jumplist[i].fmark.mark));
-+ #endif
-+
-+ if (win->w_buffer == curbuf)
-+ {
-+ /* marks in the tag stack */
-+ for (i = 0; i < win->w_tagstacklen; i++)
-+ if (win->w_tagstack[i].fmark.fnum == fnum)
-+ col_adjust(&(win->w_tagstack[i].fmark.mark));
-+
-+ /* cursor position for other windows with the same buffer */
-+ if (win != curwin)
-+ col_adjust(&win->w_cursor);
-+ }
-+ }
- }
-
- #ifdef FEAT_JUMPLIST
-*** ../vim-6.2.326/src/misc1.c Sun Mar 7 15:21:39 2004
---- src/misc1.c Mon Mar 8 10:27:17 2004
-***************
-*** 95,101 ****
- int flags;
- {
- char_u *p;
-! char_u *line;
- char_u *s;
- int todo;
- int ind_len;
---- 95,102 ----
- int flags;
- {
- char_u *p;
-! char_u *newline;
-! char_u *oldline;
- char_u *s;
- int todo;
- int ind_len;
-***************
-*** 110,116 ****
- */
- todo = size;
- ind_len = 0;
-! p = ml_get_curline();
-
- /* Calculate the buffer size for the new indent, and check to see if it
- * isn't already set */
---- 111,117 ----
- */
- todo = size;
- ind_len = 0;
-! p = oldline = ml_get_curline();
-
- /* Calculate the buffer size for the new indent, and check to see if it
- * isn't already set */
-***************
-*** 188,203 ****
-
- /* Allocate memory for the new line. */
- if (flags & SIN_INSERT)
-! p = ml_get_curline();
- else
- p = skipwhite(p);
- line_len = (int)STRLEN(p) + 1;
-! line = alloc(ind_len + line_len);
-! if (line == NULL)
- return FALSE;
-
- /* Put the characters in the new line. */
-! s = line;
- todo = size;
- /* if 'expandtab' isn't set: use TABs */
- if (!curbuf->b_p_et)
---- 189,204 ----
-
- /* Allocate memory for the new line. */
- if (flags & SIN_INSERT)
-! p = oldline;
- else
- p = skipwhite(p);
- line_len = (int)STRLEN(p) + 1;
-! newline = alloc(ind_len + line_len);
-! if (newline == NULL)
- return FALSE;
-
- /* Put the characters in the new line. */
-! s = newline;
- todo = size;
- /* if 'expandtab' isn't set: use TABs */
- if (!curbuf->b_p_et)
-***************
-*** 206,212 ****
- * the existing indent structure for the new indent */
- if (!(flags & SIN_INSERT) && curbuf->b_p_pi)
- {
-! p = ml_get_curline();
- ind_done = 0;
-
- while (todo > 0 && vim_iswhite(*p))
---- 207,213 ----
- * the existing indent structure for the new indent */
- if (!(flags & SIN_INSERT) && curbuf->b_p_pi)
- {
-! p = oldline;
- ind_done = 0;
-
- while (todo > 0 && vim_iswhite(*p))
-***************
-*** 256,267 ****
- /* Replace the line (unless undo fails). */
- if (!(flags & SIN_UNDO) || u_savesub(curwin->w_cursor.lnum) == OK)
- {
-! ml_replace(curwin->w_cursor.lnum, line, FALSE);
- if (flags & SIN_CHANGED)
- changed_bytes(curwin->w_cursor.lnum, 0);
- }
- else
-! vim_free(line);
-
- curwin->w_cursor.col = ind_len;
- return TRUE;
---- 257,272 ----
- /* Replace the line (unless undo fails). */
- if (!(flags & SIN_UNDO) || u_savesub(curwin->w_cursor.lnum) == OK)
- {
-! ml_replace(curwin->w_cursor.lnum, newline, FALSE);
- if (flags & SIN_CHANGED)
- changed_bytes(curwin->w_cursor.lnum, 0);
-+ /* Correct saved cursor position if it's after the indent. */
-+ if (saved_cursor.lnum == curwin->w_cursor.lnum
-+ && saved_cursor.col >= (colnr_T)(p - oldline))
-+ saved_cursor.col += ind_len - (p - oldline);
- }
- else
-! vim_free(newline);
-
- curwin->w_cursor.col = ind_len;
- return TRUE;
-***************
-*** 373,379 ****
-
- /*
- * Return the indent of the current line after a number. Return -1 if no
-! * number was found. Used for '1' in 'formatoptions': numbered list.
- */
- int
- get_number_indent(lnum)
---- 378,384 ----
-
- /*
- * Return the indent of the current line after a number. Return -1 if no
-! * number was found. Used for 'n' in 'formatoptions': numbered list.
- */
- int
- get_number_indent(lnum)
-***************
-*** 449,466 ****
- * Caller must take care of undo. Since VREPLACE may affect any number of
- * lines however, it may call u_save_cursor() again when starting to change a
- * new line.
- *
- * Return TRUE for success, FALSE for failure
- */
- int
- open_line(dir, flags, old_indent)
- int dir; /* FORWARD or BACKWARD */
-! int flags; /* OPENLINE_DELSPACES and OPENLINE_DO_COM */
- int old_indent; /* indent for after ^^D in Insert mode */
- {
- char_u *saved_line; /* copy of the original line */
- char_u *next_line = NULL; /* copy of the next line */
- char_u *p_extra = NULL; /* what goes to next line */
- pos_T old_cursor; /* old cursor position */
- int newcol = 0; /* new cursor column */
- int newindent = 0; /* auto-indent of the new line */
---- 454,477 ----
- * Caller must take care of undo. Since VREPLACE may affect any number of
- * lines however, it may call u_save_cursor() again when starting to change a
- * new line.
-+ * "flags": OPENLINE_DELSPACES delete spaces after cursor
-+ * OPENLINE_DO_COM format comments
-+ * OPENLINE_KEEPTRAIL keep trailing spaces
-+ * OPENLINE_MARKFIX adjust mark positions after the line break
- *
- * Return TRUE for success, FALSE for failure
- */
- int
- open_line(dir, flags, old_indent)
- int dir; /* FORWARD or BACKWARD */
-! int flags;
- int old_indent; /* indent for after ^^D in Insert mode */
- {
- char_u *saved_line; /* copy of the original line */
- char_u *next_line = NULL; /* copy of the next line */
- char_u *p_extra = NULL; /* what goes to next line */
-+ int less_cols = 0; /* less columns for mark in new line */
-+ int less_cols_off = 0; /* columns to skip for mark adjust */
- pos_T old_cursor; /* old cursor position */
- int newcol = 0; /* new cursor column */
- int newindent = 0; /* auto-indent of the new line */
-***************
-*** 1138,1147 ****
---- 1149,1162 ----
- if (REPLACE_NORMAL(State))
- replace_push(*p_extra);
- ++p_extra;
-+ ++less_cols_off;
- }
- }
- if (*p_extra != NUL)
- did_ai = FALSE; /* append some text, don't truncate now */
-+
-+ /* columns for marks adjusted for removed columns */
-+ less_cols = (int)(p_extra - saved_line);
- }
-
- if (p_extra == NULL)
-***************
-*** 1154,1159 ****
---- 1169,1175 ----
- STRCAT(leader, p_extra);
- p_extra = leader;
- did_ai = TRUE; /* So truncating blanks works with comments */
-+ less_cols -= lead_len;
- }
- else
- end_comment_pending = NUL; /* turns out there was no leader */
-***************
-*** 1225,1230 ****
---- 1241,1247 ----
- }
- else
- (void)set_indent(newindent, SIN_INSERT);
-+ less_cols -= curwin->w_cursor.col;
-
- ai_col = curwin->w_cursor.col;
-
-***************
-*** 1270,1275 ****
---- 1287,1298 ----
- changed_lines(curwin->w_cursor.lnum, curwin->w_cursor.col,
- curwin->w_cursor.lnum + 1, 1L);
- did_append = FALSE;
-+
-+ /* Move marks after the line break to the new line. */
-+ if (flags & OPENLINE_MARKFIX)
-+ mark_col_adjust(curwin->w_cursor.lnum,
-+ curwin->w_cursor.col + less_cols_off,
-+ 1L, (long)-less_cols);
- }
- else
- changed_bytes(curwin->w_cursor.lnum, curwin->w_cursor.col);
-***************
-*** 2309,2318 ****
- void
- changed()
- {
-- int save_msg_scroll = msg_scroll;
--
- if (!curbuf->b_changed)
- {
- change_warning(0);
- /* Create a swap file if that is wanted.
- * Don't do this for "nofile" and "nowrite" buffer types. */
---- 2332,2341 ----
- void
- changed()
- {
- if (!curbuf->b_changed)
- {
-+ int save_msg_scroll = msg_scroll;
-+
- change_warning(0);
- /* Create a swap file if that is wanted.
- * Don't do this for "nofile" and "nowrite" buffer types. */
-*** ../vim-6.2.326/src/normal.c Fri Mar 5 12:12:37 2004
---- src/normal.c Mon Mar 8 10:11:06 2004
-***************
-*** 1792,1798 ****
- oap->is_VIsual ? (int)cap->count1 :
- #endif
- 1);
-! auto_format(FALSE);
- break;
-
- case OP_JOIN_NS:
---- 1792,1798 ----
- oap->is_VIsual ? (int)cap->count1 :
- #endif
- 1);
-! auto_format(FALSE, TRUE);
- break;
-
- case OP_JOIN_NS:
-***************
-*** 1805,1811 ****
- else
- {
- do_do_join(oap->line_count, oap->op_type == OP_JOIN);
-! auto_format(FALSE);
- }
- break;
-
---- 1805,1811 ----
- else
- {
- do_do_join(oap->line_count, oap->op_type == OP_JOIN);
-! auto_format(FALSE, TRUE);
- }
- break;
-
-***************
-*** 1820,1826 ****
- (void)op_delete(oap);
- if (oap->motion_type == MLINE && has_format_option(FO_AUTO))
- u_save_cursor(); /* cursor line wasn't saved yet */
-! auto_format(FALSE);
- }
- break;
-
---- 1820,1826 ----
- (void)op_delete(oap);
- if (oap->motion_type == MLINE && has_format_option(FO_AUTO))
- u_save_cursor(); /* cursor line wasn't saved yet */
-! auto_format(FALSE, TRUE);
- }
- break;
-
-***************
-*** 1912,1918 ****
- if (*p_fp != NUL)
- op_colon(oap); /* use external command */
- else
-! op_format(oap); /* use internal function */
- break;
-
- case OP_INSERT:
---- 1912,1922 ----
- if (*p_fp != NUL)
- op_colon(oap); /* use external command */
- else
-! op_format(oap, FALSE); /* use internal function */
-! break;
-!
-! case OP_FORMAT2:
-! op_format(oap, TRUE); /* use internal function */
- break;
-
- case OP_INSERT:
-***************
-*** 1935,1941 ****
-
- /* TODO: when inserting in several lines, should format all
- * the lines. */
-! auto_format(FALSE);
-
- if (restart_edit == 0)
- restart_edit = restart_edit_save;
---- 1939,1945 ----
-
- /* TODO: when inserting in several lines, should format all
- * the lines. */
-! auto_format(FALSE, TRUE);
-
- if (restart_edit == 0)
- restart_edit = restart_edit_save;
-***************
-*** 7278,7289 ****
---- 7285,7298 ----
- /*
- * Two-character operators:
- * "gq" Format text
-+ * "gw" Format text and keep cursor position
- * "g~" Toggle the case of the text.
- * "gu" Change text to lower case.
- * "gU" Change text to upper case.
- * "g?" rot13 encoding
- */
- case 'q':
-+ case 'w':
- case '~':
- case 'u':
- case 'U':
-***************
-*** 8298,8304 ****
- if (reg2 != NULL)
- put_register(regname, reg2);
- #endif
-! auto_format(FALSE);
- }
- }
-
---- 8307,8313 ----
- if (reg2 != NULL)
- put_register(regname, reg2);
- #endif
-! auto_format(FALSE, TRUE);
- }
- }
-
-*** ../vim-6.2.326/src/ops.c Wed Mar 3 23:01:29 2004
---- src/ops.c Thu Mar 4 22:54:41 2004
-***************
-*** 163,168 ****
---- 163,169 ----
- {'z', 'C', TRUE}, /* OP_FOLDCLOSEREC */
- {'z', 'd', TRUE}, /* OP_FOLDDEL */
- {'z', 'D', TRUE}, /* OP_FOLDDELREC */
-+ {'g', 'w', TRUE}, /* OP_FORMAT2 */
- };
-
- /*
-***************
-*** 3845,3851 ****
- int insert_space;
- {
- char_u *curr;
-! char_u *next;
- char_u *newp;
- int endcurr1, endcurr2;
- int currsize; /* size of the current line */
---- 3846,3852 ----
- int insert_space;
- {
- char_u *curr;
-! char_u *next, *next_start;
- char_u *newp;
- int endcurr1, endcurr2;
- int currsize; /* size of the current line */
-***************
-*** 3883,3889 ****
- }
- }
-
-! next = ml_get((linenr_T)(curwin->w_cursor.lnum + 1));
- spaces = 0;
- if (insert_space)
- {
---- 3884,3890 ----
- }
- }
-
-! next = next_start = ml_get((linenr_T)(curwin->w_cursor.lnum + 1));
- spaces = 0;
- if (insert_space)
- {
-***************
-*** 3939,3946 ****
---- 3940,3953 ----
- * Delete the following line. To do this we move the cursor there
- * briefly, and then move it back. After del_lines() the cursor may
- * have moved up (last line deleted), so the current lnum is kept in t.
-+ *
-+ * Move marks from the deleted line to the joined line, adjusting the
-+ * column. This is not Vi compatible, but Vi deletes the marks, thus that
-+ * should not really be a problem.
- */
- t = curwin->w_cursor.lnum;
-+ mark_col_adjust(t + 1, (colnr_T)0, (linenr_T)-1,
-+ (long)(currsize + spaces - (next - next_start)));
- ++curwin->w_cursor.lnum;
- del_lines(1L, FALSE);
- curwin->w_cursor.lnum = t;
-***************
-*** 4039,4046 ****
- * implementation of the format operator 'gq'
- */
- void
-! op_format(oap)
- oparg_T *oap;
- {
- long old_line_count = curbuf->b_ml.ml_line_count;
-
---- 4046,4054 ----
- * implementation of the format operator 'gq'
- */
- void
-! op_format(oap, keep_cursor)
- oparg_T *oap;
-+ int keep_cursor; /* keep cursor on same text char */
- {
- long old_line_count = curbuf->b_ml.ml_line_count;
-
-***************
-*** 4057,4062 ****
---- 4065,4073 ----
- /* Set '[ mark at the start of the formatted area */
- curbuf->b_op_start = oap->start;
-
-+ if (keep_cursor)
-+ saved_cursor = curwin->w_cursor;
-+
- format_lines(oap->line_count);
-
- /*
-***************
-*** 4073,4078 ****
---- 4084,4095 ----
- /* put '] mark on the end of the formatted area */
- curbuf->b_op_end = curwin->w_cursor;
-
-+ if (keep_cursor)
-+ {
-+ curwin->w_cursor = saved_cursor;
-+ saved_cursor.lnum = 0;
-+ }
-+
- #ifdef FEAT_VISUAL
- if (oap->is_VIsual)
- {
-***************
-*** 4301,4306 ****
---- 4318,4326 ----
- break;
- #ifdef FEAT_COMMENTS
- (void)del_bytes((long)next_leader_len, FALSE);
-+ if (next_leader_len > 0)
-+ mark_col_adjust(curwin->w_cursor.lnum, (colnr_T)0, 0L,
-+ (long)-next_leader_len);
- #endif
- curwin->w_cursor.lnum--;
- if (do_join(TRUE) == FAIL)
-***************
-*** 4385,4390 ****
---- 4405,4466 ----
- return (*skipwhite(ml_get(lnum)) == NUL || startPS(lnum, NUL, FALSE));
- }
- #endif
-+
-+ /*
-+ * Return TRUE when a paragraph starts in line "lnum". Return FALSE when the
-+ * previous line is in the same paragraph. Used for auto-formatting.
-+ */
-+ int
-+ paragraph_start(lnum)
-+ linenr_T lnum;
-+ {
-+ char_u *p;
-+ #ifdef FEAT_COMMENTS
-+ int leader_len = 0; /* leader len of current line */
-+ char_u *leader_flags = NULL; /* flags for leader of current line */
-+ int next_leader_len; /* leader len of next line */
-+ char_u *next_leader_flags; /* flags for leader of next line */
-+ int do_comments; /* format comments */
-+ #endif
-+
-+ if (lnum <= 1)
-+ return TRUE; /* start of the file */
-+
-+ p = ml_get(lnum - 1);
-+ if (*p == NUL)
-+ return TRUE; /* after empty line */
-+
-+ #ifdef FEAT_COMMENTS
-+ do_comments = has_format_option(FO_Q_COMS);
-+ #endif
-+ if (fmt_check_par(lnum - 1
-+ #ifdef FEAT_COMMENTS
-+ , &leader_len, &leader_flags, do_comments
-+ #endif
-+ ))
-+ return TRUE; /* after non-paragraph line */
-+
-+ if (fmt_check_par(lnum
-+ #ifdef FEAT_COMMENTS
-+ , &next_leader_len, &next_leader_flags, do_comments
-+ #endif
-+ ))
-+ return TRUE; /* "lnum" is not a paragraph line */
-+
-+ if (has_format_option(FO_WHITE_PAR) && !ends_in_white(lnum - 1))
-+ return TRUE; /* missing trailing space in previous line. */
-+
-+ if (has_format_option(FO_Q_NUMBER) && (get_number_indent(lnum) > 0))
-+ return TRUE; /* numbered item starts in "lnum". */
-+
-+ #ifdef FEAT_COMMENTS
-+ if (!same_leader(leader_len, leader_flags,
-+ next_leader_len, next_leader_flags))
-+ return TRUE; /* change of comment leader. */
-+ #endif
-+
-+ return FALSE;
-+ }
-
- #ifdef FEAT_VISUAL
- /*
-*** ../vim-6.2.326/src/proto/edit.pro Sun Jan 18 20:28:27 2004
---- src/proto/edit.pro Mon Mar 8 10:11:10 2004
-***************
-*** 13,19 ****
- void ins_compl_check_keys __ARGS((void));
- int get_literal __ARGS((void));
- void insertchar __ARGS((int c, int flags, int second_indent));
-! void auto_format __ARGS((int trailblank));
- int comp_textwidth __ARGS((int ff));
- int stop_arrow __ARGS((void));
- void set_last_insert __ARGS((int c));
---- 13,19 ----
- void ins_compl_check_keys __ARGS((void));
- int get_literal __ARGS((void));
- void insertchar __ARGS((int c, int flags, int second_indent));
-! void auto_format __ARGS((int trailblank, int prev_line));
- int comp_textwidth __ARGS((int ff));
- int stop_arrow __ARGS((void));
- void set_last_insert __ARGS((int c));
-*** ../vim-6.2.326/src/proto/mark.pro Sun Feb 29 20:46:43 2004
---- src/proto/mark.pro Tue Mar 2 21:23:55 2004
-***************
-*** 14,19 ****
---- 14,20 ----
- void ex_jumps __ARGS((exarg_T *eap));
- void ex_changes __ARGS((exarg_T *eap));
- void mark_adjust __ARGS((linenr_T line1, linenr_T line2, long amount, long amount_after));
-+ void mark_col_adjust __ARGS((linenr_T lnum, colnr_T mincol, long lnum_amount, long col_amount));
- void copy_jumplist __ARGS((win_T *from, win_T *to));
- void free_jumplist __ARGS((win_T *wp));
- void set_last_cursor __ARGS((win_T *win));
-*** ../vim-6.2.326/src/proto/ops.pro Sun Jun 1 12:26:17 2003
---- src/proto/ops.pro Thu Mar 4 22:51:23 2004
-***************
-*** 31,38 ****
- void ex_display __ARGS((exarg_T *eap));
- void do_do_join __ARGS((long count, int insert_space));
- int do_join __ARGS((int insert_space));
-! void op_format __ARGS((oparg_T *oap));
- void format_lines __ARGS((linenr_T line_count));
- int do_addsub __ARGS((int command, linenr_T Prenum1));
- int read_viminfo_register __ARGS((vir_T *virp, int force));
- void write_viminfo_registers __ARGS((FILE *fp));
---- 31,39 ----
- void ex_display __ARGS((exarg_T *eap));
- void do_do_join __ARGS((long count, int insert_space));
- int do_join __ARGS((int insert_space));
-! void op_format __ARGS((oparg_T *oap, int keep_cursor));
- void format_lines __ARGS((linenr_T line_count));
-+ int paragraph_start __ARGS((linenr_T lnum));
- int do_addsub __ARGS((int command, linenr_T Prenum1));
- int read_viminfo_register __ARGS((vir_T *virp, int force));
- void write_viminfo_registers __ARGS((FILE *fp));
-*** ../vim-6.2.326/src/structs.h Mon Mar 1 17:11:04 2004
---- src/structs.h Thu Mar 4 13:44:30 2004
-***************
-*** 32,37 ****
---- 32,43 ----
- #endif
- } pos_T;
-
-+ #ifdef FEAT_VIRTUALEDIT
-+ # define INIT_POS_T {0, 0, 0}
-+ #else
-+ # define INIT_POS_T {0, 0}
-+ #endif
-+
- /*
- * Same, but without coladd.
- */
-*** ../vim-6.2.326/src/vim.h Mon Mar 1 17:11:04 2004
---- src/vim.h Thu Mar 4 22:50:17 2004
-***************
-*** 848,853 ****
---- 848,854 ----
- #define OPENLINE_DELSPACES 1 /* delete spaces after cursor */
- #define OPENLINE_DO_COM 2 /* format comments */
- #define OPENLINE_KEEPTRAIL 4 /* keep trailing spaces */
-+ #define OPENLINE_MARKFIX 8 /* fix mark positions */
-
- /*
- * There are four history tables:
-***************
-*** 1118,1123 ****
---- 1119,1125 ----
- #define OP_FOLDCLOSEREC 23 /* "zC" close folds recursively */
- #define OP_FOLDDEL 24 /* "zd" delete folds */
- #define OP_FOLDDELREC 25 /* "zD" delete folds recursively */
-+ #define OP_FORMAT2 26 /* "gw" format operator, keeps cursor pos */
-
- /*
- * Motion types, used for operators and for yank/delete registers.
-*** ../vim-6.2.326/src/version.c Sun Mar 7 19:33:55 2004
---- src/version.c Mon Mar 8 12:12:35 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 327,
- /**/
-
---
-A fool must search for a greater fool to find admiration.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.328
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.328
-Problem: XIM with GTK: It is hard to understand what XIM is doing.
-Solution: Add xim_log() to log XIM events and help with debugging.
-Files: src/mbyte.c
-
-
-*** ../vim-6.2.327/src/mbyte.c Mon Mar 1 17:11:04 2004
---- src/mbyte.c Fri Mar 5 15:57:24 2004
-***************
-*** 133,138 ****
---- 133,169 ----
- 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,6,6,1,1,
- };
-
-+ /*
-+ * XIM often causes trouble. Define XIM_DEBUG to get a log of XIM callbacks
-+ * in the "xim.log" file.
-+ */
-+ /* #define XIM_DEBUG */
-+ #ifdef XIM_DEBUG
-+ static void
-+ xim_log(char *s, ...)
-+ {
-+ va_list arglist;
-+ static FILE *fd = NULL;
-+
-+ if (fd == (FILE *)-1)
-+ return;
-+ if (fd == NULL)
-+ {
-+ fd = fopen("xim.log", "w");
-+ if (fd == NULL)
-+ {
-+ EMSG("Cannot open xim.log");
-+ fd = (FILE *)-1;
-+ return;
-+ }
-+ }
-+
-+ va_start(arglist, s);
-+ vfprintf(fd, s, arglist);
-+ va_end(arglist);
-+ }
-+ #endif
-+
- #endif
-
- #if defined(FEAT_MBYTE) || defined(FEAT_POSTSCRIPT) || defined(PROTO)
-***************
-*** 3007,3012 ****
---- 3038,3057 ----
-
- #if defined(FEAT_XIM) || defined(PROTO)
-
-+ # ifdef FEAT_GUI_GTK
-+ /*
-+ * Set preedit_start_col to the current cursor position.
-+ */
-+ static void
-+ init_preedit_start_col(void)
-+ {
-+ if (State & CMDLINE)
-+ preedit_start_col = cmdline_getvcol_cursor();
-+ else if (curwin != NULL)
-+ getvcol(curwin, &curwin->w_cursor, &preedit_start_col, NULL, NULL);
-+ }
-+ # endif
-+
- # if defined(HAVE_GTK2) && !defined(PROTO)
-
- static int im_is_active = FALSE; /* IM is enabled for current mode */
-***************
-*** 3128,3135 ****
- static void
- im_commit_cb(GtkIMContext *context, const gchar *str, gpointer data)
- {
-! int slen = (int)strlen(str);
-! int add_to_input = TRUE;
-
- /* The imhangul module doesn't reset the preedit string before
- * committing. Call im_delete_preedit() to work around that. */
---- 3173,3184 ----
- static void
- im_commit_cb(GtkIMContext *context, const gchar *str, gpointer data)
- {
-! int slen = (int)STRLEN(str);
-! int add_to_input = TRUE;
-!
-! #ifdef XIM_DEBUG
-! xim_log("im_commit_cb(): %s\n", str);
-! #endif
-
- /* The imhangul module doesn't reset the preedit string before
- * committing. Call im_delete_preedit() to work around that. */
-***************
-*** 3141,3166 ****
- /* Is this a single character that matches a keypad key that's just
- * been pressed? If so, we don't want it to be entered as such - let
- * us carry on processing the raw keycode so that it may be used in
-! * mappings as <kSomething>
-! */
- if (xim_expected_char != NUL)
- {
-! /* We're currently processing a keypad or other special key */
-! if (slen == 1 && str[0] == xim_expected_char)
-! {
-! /* It's a match - don't do it here */
-! xim_ignored_char = TRUE;
-! add_to_input = FALSE;
-! }
-! else
-! {
-! /* Not a match */
-! xim_ignored_char = FALSE;
-! }
- }
-
- if (add_to_input)
-! im_add_to_input((char_u *)str, slen);
-
- if (gtk_main_level() > 0)
- gtk_main_quit();
---- 3190,3214 ----
- /* Is this a single character that matches a keypad key that's just
- * been pressed? If so, we don't want it to be entered as such - let
- * us carry on processing the raw keycode so that it may be used in
-! * mappings as <kSomething>. */
- if (xim_expected_char != NUL)
- {
-! /* We're currently processing a keypad or other special key */
-! if (slen == 1 && str[0] == xim_expected_char)
-! {
-! /* It's a match - don't do it here */
-! xim_ignored_char = TRUE;
-! add_to_input = FALSE;
-! }
-! else
-! {
-! /* Not a match */
-! xim_ignored_char = FALSE;
-! }
- }
-
- if (add_to_input)
-! im_add_to_input((char_u *)str, slen);
-
- if (gtk_main_level() > 0)
- gtk_main_quit();
-***************
-*** 3173,3181 ****
---- 3221,3234 ----
- static void
- im_preedit_start_cb(GtkIMContext *context, gpointer data)
- {
-+ #ifdef XIM_DEBUG
-+ xim_log("im_preedit_start_cb()\n");
-+ #endif
-+
- im_is_active = TRUE;
- gui_update_cursor(TRUE, FALSE);
- }
-+
- /*
- * Callback invoked after end to the preedit.
- */
-***************
-*** 3183,3188 ****
---- 3236,3244 ----
- static void
- im_preedit_end_cb(GtkIMContext *context, gpointer data)
- {
-+ #ifdef XIM_DEBUG
-+ xim_log("im_preedit_end_cb()\n");
-+ #endif
- im_is_active = FALSE;
- gui_update_cursor(TRUE, FALSE);
- }
-***************
-*** 3239,3244 ****
---- 3295,3304 ----
- &preedit_string, NULL,
- &cursor_index);
-
-+ #ifdef XIM_DEBUG
-+ xim_log("im_preedit_changed_cb(): %s\n", preedit_string);
-+ #endif
-+
- g_return_if_fail(preedit_string != NULL); /* just in case */
-
- /* If at the start position (after typing backspace) preedit_start_col
-***************
-*** 3246,3258 ****
- if (cursor_index == 0)
- preedit_start_col = MAXCOL;
-
- if (preedit_start_col == MAXCOL && preedit_string[0] != '\0')
- {
- /* Urgh, this breaks if the input buffer isn't empty now */
-! if (State & CMDLINE)
-! preedit_start_col = cmdline_getvcol_cursor();
-! else if (curwin != NULL)
-! getvcol(curwin, &curwin->w_cursor, &preedit_start_col, NULL, NULL);
- }
-
- im_delete_preedit();
---- 3306,3316 ----
- if (cursor_index == 0)
- preedit_start_col = MAXCOL;
-
-+ /* If preedit_start_col is MAXCOL set it to the current cursor position. */
- if (preedit_start_col == MAXCOL && preedit_string[0] != '\0')
- {
- /* Urgh, this breaks if the input buffer isn't empty now */
-! init_preedit_start_col();
- }
-
- im_delete_preedit();
-***************
-*** 3396,3401 ****
---- 3454,3463 ----
- void
- xim_init(void)
- {
-+ #ifdef XIM_DEBUG
-+ xim_log("xim_init()\n");
-+ #endif
-+
- g_return_if_fail(gui.drawarea != NULL);
- g_return_if_fail(gui.drawarea->window != NULL);
-
-***************
-*** 3416,3421 ****
---- 3478,3487 ----
- void
- im_shutdown(void)
- {
-+ #ifdef XIM_DEBUG
-+ xim_log("im_shutdown()\n");
-+ #endif
-+
- if (xic != NULL)
- {
- gtk_im_context_focus_out(xic);
-***************
-*** 3559,3564 ****
---- 3625,3631 ----
- im_synthesize_keypress(GDK_Escape, 0U);
-
- gtk_im_context_reset(xic);
-+
- /*
- * HACK for Ami: This sequence of function calls makes Ami handle
- * the IM reset gratiously, without breaking loads of other stuff.
-***************
-*** 3677,3685 ****
- if (xim_expected_char != NUL && xim_ignored_char)
- /* We had a keypad key, and XIM tried to thieve it */
- return FALSE;
-! else
-! /* Normal processing */
-! return imresult;
- }
- }
-
---- 3744,3752 ----
- if (xim_expected_char != NUL && xim_ignored_char)
- /* We had a keypad key, and XIM tried to thieve it */
- return FALSE;
-!
-! /* Normal processing */
-! return imresult;
- }
- }
-
-***************
-*** 3959,3968 ****
- if (xim_input_style & XIMPreeditCallbacks)
- {
- preedit_buf_len = 0;
-! if (State & CMDLINE)
-! preedit_start_col = cmdline_getvcol_cursor();
-! else
-! getvcol(curwin, &curwin->w_cursor, &preedit_start_col, NULL, NULL);
- }
- #else
- # if 0
---- 4026,4032 ----
- if (xim_input_style & XIMPreeditCallbacks)
- {
- preedit_buf_len = 0;
-! init_preedit_start_col();
- }
- #else
- # if 0
-***************
-*** 4352,4357 ****
---- 4416,4425 ----
- Window x11_window;
- Display *x11_display;
-
-+ #ifdef XIM_DEBUG
-+ xim_log("xim_instantiate_cb()\n");
-+ #endif
-+
- gui_get_x11_windis(&x11_window, &x11_display);
- if (display != x11_display)
- return;
-***************
-*** 4373,4378 ****
---- 4441,4449 ----
- Window x11_window;
- Display *x11_display;
-
-+ #ifdef XIM_DEBUG
-+ xim_log("xim_destroy_cb()\n");
-+ #endif
- gui_get_x11_windis(&x11_window, &x11_display);
-
- xic = NULL;
-***************
-*** 4391,4396 ****
---- 4462,4471 ----
- Window x11_window;
- Display *x11_display;
-
-+ #ifdef XIM_DEBUG
-+ xim_log("xim_init()\n");
-+ #endif
-+
- gui_get_x11_windis(&x11_window, &x11_display);
-
- xic = NULL;
-***************
-*** 4643,4648 ****
---- 4718,4727 ----
- (int)GDK_IM_STATUS_NONE |
- (int)GDK_IM_STATUS_NOTHING;
-
-+ #ifdef XIM_DEBUG
-+ xim_log("xim_decide_input_style()\n");
-+ #endif
-+
- if (!gdk_im_ready())
- xim_input_style = 0;
- else
-***************
-*** 4672,4677 ****
---- 4751,4760 ----
- static void
- preedit_start_cbproc(XIC xic, XPointer client_data, XPointer call_data)
- {
-+ #ifdef XIM_DEBUG
-+ xim_log("xim_decide_input_style()\n");
-+ #endif
-+
- draw_feedback = NULL;
- xim_preediting = TRUE;
- gui_update_cursor(TRUE, FALSE);
-***************
-*** 4706,4721 ****
- char *src;
- GSList *event_queue;
-
- draw_data = (XIMPreeditDrawCallbackStruct *) call_data;
- text = (XIMText *) draw_data->text;
-
- if ((text == NULL && draw_data->chg_length == preedit_buf_len)
-! || preedit_buf_len == 0)
- {
-! if (State & CMDLINE)
-! preedit_start_col = cmdline_getvcol_cursor();
-! else
-! getvcol(curwin, &curwin->w_cursor, &preedit_start_col, NULL, NULL);
- vim_free(draw_feedback);
- draw_feedback = NULL;
- }
---- 4789,4805 ----
- char *src;
- GSList *event_queue;
-
-+ #ifdef XIM_DEBUG
-+ xim_log("preedit_draw_cbproc()\n");
-+ #endif
-+
- draw_data = (XIMPreeditDrawCallbackStruct *) call_data;
- text = (XIMText *) draw_data->text;
-
- if ((text == NULL && draw_data->chg_length == preedit_buf_len)
-! || preedit_buf_len == 0)
- {
-! init_preedit_start_col();
- vim_free(draw_feedback);
- draw_feedback = NULL;
- }
-***************
-*** 4840,4851 ****
---- 4924,4942 ----
- static void
- preedit_caret_cbproc(XIC xic, XPointer client_data, XPointer call_data)
- {
-+ #ifdef XIM_DEBUG
-+ xim_log("preedit_caret_cbproc()\n");
-+ #endif
- }
-
- /*ARGSUSED*/
- static void
- preedit_done_cbproc(XIC xic, XPointer client_data, XPointer call_data)
- {
-+ #ifdef XIM_DEBUG
-+ xim_log("preedit_done_cbproc()\n");
-+ #endif
-+
- vim_free(draw_feedback);
- draw_feedback = NULL;
- xim_preediting = FALSE;
-***************
-*** 4862,4867 ****
---- 4953,4962 ----
- {
- char *text;
-
-+ #ifdef XIM_DEBUG
-+ xim_log("xim_reset()\n");
-+ #endif
-+
- if (xic != NULL)
- {
- text = XmbResetIC(((GdkICPrivate *)xic)->xic);
-***************
-*** 4878,4883 ****
---- 4973,4982 ----
- int
- xim_queue_key_press_event(GdkEventKey *event, int down)
- {
-+ #ifdef XIM_DEBUG
-+ xim_log("xim_queue_key_press_event()\n");
-+ #endif
-+
- if (preedit_buf_len <= 0)
- return FALSE;
- if (processing_queued_event)
-***************
-*** 4928,4933 ****
---- 5027,5036 ----
- void
- xim_init(void)
- {
-+ #ifdef XIM_DEBUG
-+ xim_log("xim_init()\n");
-+ #endif
-+
- xic = NULL;
- xic_attr = NULL;
-
-***************
-*** 5031,5036 ****
---- 5134,5143 ----
- void
- im_shutdown(void)
- {
-+ #ifdef XIM_DEBUG
-+ xim_log("im_shutdown()\n");
-+ #endif
-+
- if (xic != NULL)
- {
- gdk_im_end();
-*** ../vim-6.2.327/src/version.c Mon Mar 8 12:27:39 2004
---- src/version.c Mon Mar 8 15:09:57 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 328,
- /**/
-
---
-Mynd you, m00se bites Kan be pretty nasti ...
- "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/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.329
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.329
-Problem: ":=" does not work Vi compatible. (Antony Scriven)
-Solution: Print the last line number instead of the current line. Don't
- print "line".
-Files: src/ex_cmds.h, src/ex_docmd.c
-
-
-*** ../vim-6.2.328/src/ex_cmds.h Sun Feb 29 21:06:13 2004
---- src/ex_cmds.h Mon Mar 8 10:59:47 2004
-***************
-*** 887,893 ****
- EX(CMD_lshift, "<", ex_operators,
- RANGE|WHOLEFOLD|COUNT|TRLBAR|CMDWIN|MODIFY),
- EX(CMD_equal, "=", ex_equal,
-! RANGE|TRLBAR|CMDWIN),
- EX(CMD_rshift, ">", ex_operators,
- RANGE|WHOLEFOLD|COUNT|TRLBAR|CMDWIN|MODIFY),
- EX(CMD_at, "@", ex_at,
---- 887,893 ----
- EX(CMD_lshift, "<", ex_operators,
- RANGE|WHOLEFOLD|COUNT|TRLBAR|CMDWIN|MODIFY),
- EX(CMD_equal, "=", ex_equal,
-! RANGE|TRLBAR|DFLALL|CMDWIN),
- EX(CMD_rshift, ">", ex_operators,
- RANGE|WHOLEFOLD|COUNT|TRLBAR|CMDWIN|MODIFY),
- EX(CMD_at, "@", ex_at,
-*** ../vim-6.2.328/src/ex_docmd.c Sun Feb 29 20:46:43 2004
---- src/ex_docmd.c Mon Mar 8 11:00:34 2004
-***************
-*** 6891,6897 ****
- ex_equal(eap)
- exarg_T *eap;
- {
-! smsg((char_u *)_("line %ld"), (long)eap->line2);
- }
-
- static void
---- 6889,6895 ----
- ex_equal(eap)
- exarg_T *eap;
- {
-! smsg((char_u *)"%ld", (long)eap->line2);
- }
-
- static void
-*** ../vim-6.2.328/src/version.c Mon Mar 8 15:12:09 2004
---- src/version.c Mon Mar 8 15:19:54 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 329,
- /**/
-
---
-It might look like I'm doing nothing, but at the cellular level
-I'm really quite busy.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.330 (extra)
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.330 (extra, after 6.2.267)
-Problem: Win32: Crash when tearing off a menu.
-Solution: Terminate a string with a NUL. (Yasuhiro Matsumoto)
-Files: src/gui_w32.c
-
-
-*** ../vim-6.2.329/src/gui_w32.c Thu Feb 19 15:17:18 2004
---- src/gui_w32.c Tue Mar 9 10:44:32 2004
-***************
-*** 3205,3210 ****
---- 3206,3212 ----
- break;
-
- STRNCPY(text, menu->name, nameLen);
-+ text[nameLen] = NUL;
- text = vim_strchr(text, TAB); /* stop at TAB before actext */
- if (text == NULL)
- text = label + nameLen; /* no actext, use whole name */
-*** ../vim-6.2.329/src/version.c Mon Mar 8 15:22:09 2004
---- src/version.c Tue Mar 9 10:46:15 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 330,
- /**/
-
---
-ARTHUR: Be quiet! I order you to shut up.
-OLD WOMAN: Order, eh -- who does he think he is?
-ARTHUR: I am your king!
-OLD WOMAN: Well, I didn't vote for you.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.330 (extra)
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.331 (after 6.2.327)
-Problem: "gwap" leaves cursor in the wrong line.
-Solution: Remember the cursor position before finding the ends of the
- paragraph.
-Files: src/normal.c, src/ops.c, src/structs.h
-
-
-*** ../vim-6.2.330/src/normal.c Mon Mar 8 12:27:39 2004
---- src/normal.c Tue Mar 9 11:41:22 2004
-***************
-*** 7288,7295 ****
- * "gU" Change text to upper case.
- * "g?" rot13 encoding
- */
-- case 'q':
- case 'w':
- case '~':
- case 'u':
- case 'U':
---- 7291,7300 ----
- * "gU" Change text to upper case.
- * "g?" rot13 encoding
- */
- case 'w':
-+ oap->cursor_start = curwin->w_cursor;
-+ /*FALLTHROUGH*/
-+ case 'q':
- case '~':
- case 'u':
- case 'U':
-*** ../vim-6.2.330/src/ops.c Mon Mar 8 12:27:39 2004
---- src/ops.c Tue Mar 9 11:44:28 2004
-***************
-*** 4066,4072 ****
- curbuf->b_op_start = oap->start;
-
- if (keep_cursor)
-! saved_cursor = curwin->w_cursor;
-
- format_lines(oap->line_count);
-
---- 4066,4072 ----
- curbuf->b_op_start = oap->start;
-
- if (keep_cursor)
-! saved_cursor = oap->cursor_start;
-
- format_lines(oap->line_count);
-
-*** ../vim-6.2.330/src/structs.h Mon Mar 8 12:27:39 2004
---- src/structs.h Tue Mar 9 12:40:34 2004
-***************
-*** 1602,1607 ****
---- 1602,1608 ----
- do_format()) */
- pos_T start; /* start of the operator */
- pos_T end; /* end of the operator */
-+ pos_T cursor_start; /* cursor position before motion for "gw" */
-
- long line_count; /* number of lines from op_start to op_end
- (inclusive) */
-*** ../vim-6.2.330/src/version.c Tue Mar 9 10:48:23 2004
---- src/version.c Tue Mar 9 12:28:30 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 331,
- /**/
-
---
-ARTHUR: What are you going to do. bleed on me?
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.332 (extra)
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.332 (extra)
-Problem: Amiga: Compile error for string array. Compiling the Amiga GUI
- doesn't work.
-Solution: Use a char pointer instead. Move including "gui_amiga.h" to after
- including "vim.h". Add a semicolon. (Ali Akcaagac)
-Files: src/gui_amiga.c, src/os_amiga.c
-
-
-*** ../vim-6.2.331/src/gui_amiga.c Sun Oct 6 20:44:33 2002
---- src/gui_amiga.c Mon Mar 8 12:01:01 2004
-***************
-*** 20,27 ****
- #include <proto/graphics.h>
- #include <proto/layers.h>
- #include <assert.h>
-- #include "gui_amiga.h"
- #include "vim.h"
- #include <math.h>
- #include <limits.h>
-
---- 20,27 ----
- #include <proto/graphics.h>
- #include <proto/layers.h>
- #include <assert.h>
- #include "vim.h"
-+ #include "gui_amiga.h"
- #include <math.h>
- #include <limits.h>
-
-***************
-*** 784,792 ****
- SetDrMd(gui.window->RPort, JAM2);
- atexit(atexitDoThis);
- TextDimensions();
-! returnCode = OK; /* we've had sucess */
- if (gui_win_x != -1 && gui_win_y != -1)
-! gui_mch_set_winpos(gui_win_x, gui_win_y)
- }
- gui.menu = NULL;
-
---- 784,792 ----
- SetDrMd(gui.window->RPort, JAM2);
- atexit(atexitDoThis);
- TextDimensions();
-! returnCode = OK; /* we've had success */
- if (gui_win_x != -1 && gui_win_y != -1)
-! gui_mch_set_winpos(gui_win_x, gui_win_y);
- }
- gui.menu = NULL;
-
-*** ../vim-6.2.331/src/os_amiga.c Sun Feb 29 14:48:02 2004
---- src/os_amiga.c Mon Mar 8 11:41:04 2004
-***************
-*** 307,313 ****
- static char_u *(constrings[3]) = {(char_u *)"con:0/0/662/210/",
- (char_u *)"con:0/0/640/200/",
- (char_u *)"con:0/0/320/200/"};
-! static char_u winerr[] = (char_u *)N_("VIM: Can't open window!\n");
- struct WBArg *argp;
- int ac;
- char *av;
---- 307,313 ----
- static char_u *(constrings[3]) = {(char_u *)"con:0/0/662/210/",
- (char_u *)"con:0/0/640/200/",
- (char_u *)"con:0/0/320/200/"};
-! static char_u *winerr = (char_u *)N_("VIM: Can't open window!\n");
- struct WBArg *argp;
- int ac;
- char *av;
-*** ../vim-6.2.331/src/version.c Tue Mar 9 12:41:56 2004
---- src/version.c Tue Mar 9 14:17:00 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 332,
- /**/
-
---
-BLACK KNIGHT: I'm invincible!
-ARTHUR: You're a looney.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.333 (extra)
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.333 (extra)
-Problem: Win32: printing doesn't work with specified font charset.
-Solution: Use the specified font charset. (Mike Williams)
-Files: src/os_mswin.c
-
-
-*** ../vim-6.2.332/src/os_mswin.c Tue Feb 3 16:55:34 2004
---- src/os_mswin.c Tue Mar 9 12:17:47 2004
-***************
-*** 1942,1948 ****
- for (pifUnderline = 0; pifUnderline <= 1; pifUnderline++)
- {
- fLogFont.lfWeight = boldface[pifBold];
-- fLogFont.lfCharSet = DEFAULT_CHARSET;
- fLogFont.lfItalic = pifItalic;
- fLogFont.lfUnderline = pifUnderline;
- prt_font_handles[pifBold][pifItalic][pifUnderline]
---- 1942,1947 ----
-*** ../vim-6.2.332/src/version.c Tue Mar 9 14:18:21 2004
---- src/version.c Tue Mar 9 14:19:47 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 333,
- /**/
-
---
-Mrs Abbott: I'm a paediatrician.
- Basil: Feet?
-Mrs Abbott: Children.
- Sybil: Oh, Basil!
- Basil: Well, children have feet, don't they? That's how they move
- around, my dear. You must take a look next time, it's most
- interesting. (Fawlty Towers)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.334 (extra)
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.334 (extra, after 6.2.296)
-Problem: Win32: evaluating client expression in debug mode requires typing
- "cont".
-Solution: Use eval_client_expr_to_string().
-Files: src/os_mswin.c
-
-
-*** ../vim-6.2.333/src/os_mswin.c Tue Mar 9 14:20:55 2004
---- src/os_mswin.c Tue Mar 9 12:17:47 2004
-***************
-*** 2336,2344 ****
- /* Remember who sent this, for <client> */
- clientWindow = sender;
-
-! ++emsg_skip;
-! res = eval_to_string(data->lpData, NULL);
-! --emsg_skip;
- if (res == NULL)
- {
- res = vim_strsave(_(e_invexprmsg));
---- 2336,2342 ----
- /* Remember who sent this, for <client> */
- clientWindow = sender;
-
-! res = eval_client_expr_to_string(data->lpData);
- if (res == NULL)
- {
- res = vim_strsave(_(e_invexprmsg));
-*** ../vim-6.2.333/src/version.c Tue Mar 9 14:20:55 2004
---- src/version.c Tue Mar 9 14:24:05 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 334,
- /**/
-
---
-Any resemblance between the above views and those of my employer, my terminal,
-or the view out my window are purely coincidental. Any resemblance between
-the above and my own views is non-deterministic. The question of the
-existence of views in the absence of anyone to hold them is left as an
-exercise for the reader. The question of the existence of the reader is left
-as an exercise for the second god coefficient. (A discussion of
-non-orthogonal, non-integral polytheism is beyond the scope of this article.)
- (Ralph Jennings)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.335
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.335
-Problem: The ":sign" command cannot be followed by another command.
-Solution: Add TRLBAR to the command flags.
-Files: src/ex_cmds.h
-
-
-*** ../vim-6.2.334/src/ex_cmds.h Mon Mar 8 15:22:09 2004
---- src/ex_cmds.h Tue Mar 9 15:01:26 2004
-***************
-*** 707,713 ****
- EX(CMD_simalt, "simalt", ex_simalt,
- NEEDARG|WORD1|TRLBAR|CMDWIN),
- EX(CMD_sign, "sign", ex_sign,
-! NEEDARG|RANGE|NOTADR|EXTRA|CMDWIN),
- EX(CMD_silent, "silent", ex_wrongmodifier,
- NEEDARG|EXTRA|BANG|NOTRLCOM|SBOXOK|CMDWIN),
- EX(CMD_sleep, "sleep", ex_sleep,
---- 707,713 ----
- EX(CMD_simalt, "simalt", ex_simalt,
- NEEDARG|WORD1|TRLBAR|CMDWIN),
- EX(CMD_sign, "sign", ex_sign,
-! NEEDARG|RANGE|NOTADR|EXTRA|CMDWIN|TRLBAR),
- EX(CMD_silent, "silent", ex_wrongmodifier,
- NEEDARG|EXTRA|BANG|NOTRLCOM|SBOXOK|CMDWIN),
- EX(CMD_sleep, "sleep", ex_sleep,
-*** ../vim-6.2.334/src/version.c Tue Mar 9 14:24:17 2004
---- src/version.c Tue Mar 9 15:10:37 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 335,
- /**/
-
---
- A village. Sound of chanting of Latin canon, punctuated by short, sharp
- cracks. It comes nearer. We see it is a line of MONKS ala SEVENTH SEAL
- flagellation scene, chanting and banging themselves on the foreheads with
- wooden boards.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.336
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.336 (after 6.2.327)
-Problem: Mixup of items in an expression.
-Solution: Move "== NUL" to the right spot.
-Files: src/edit.c
-
-
-*** ../vim-6.2.335/src/edit.c Mon Mar 8 12:27:39 2004
---- src/edit.c Tue Mar 9 17:08:58 2004
-***************
-*** 4657,4663 ****
- * formatting will move it to the following word. Avoid that by
- * moving the cursor onto the space. */
- cc = 'x';
-! if (curwin->w_cursor.col > 0 == NUL && gchar_cursor())
- {
- dec_cursor();
- cc = gchar_cursor();
---- 4657,4663 ----
- * formatting will move it to the following word. Avoid that by
- * moving the cursor onto the space. */
- cc = 'x';
-! if (curwin->w_cursor.col > 0 && gchar_cursor() == NUL)
- {
- dec_cursor();
- cc = gchar_cursor();
-*** ../vim-6.2.335/src/version.c Tue Mar 9 15:10:47 2004
---- src/version.c Tue Mar 9 17:12:01 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 336,
- /**/
-
---
-If you had to identify, in one word, the reason why the
-human race has not achieved, and never will achieve, its
-full potential, that word would be "meetings."
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.337
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.337 (extra, after 6.2.319)
-Problem: Building gvimext.dll with Mingw doesn't work properly.
-Solution: Fix white space and other details. (Alejandro Lopez-Valencia)
-Files: src/GvimExt/Make_ming.mak
-
-
-
-*** ../vim-6.2.336/src/GvimExt/Make_ming.mak Sat Mar 6 21:04:29 2004
---- src/GvimExt/Make_ming.mak Tue Mar 9 17:21:00 2004
-***************
-*** 22,41 ****
- all: all-before $(DLL) all-after
-
- $(DLL): $(OBJ) $(RES) $(DEFFILE)
-! $(CXX) -shared $(CXXFLAGS) -s -o $@ \
- -Wl,--enable-auto-image-base \
-! -Wl,--enable-auto-import \
-! -Wl,--whole-archive \
-! $^ \
-! -Wl,--no-whole-archive \
- $(LIBS)
-
- gvimext.o: gvimext.cpp
-! $(CXX) $(CXXFLAGS) -DFEAT_GETTEXT -c $? -o $@
-
- $(RES): gvimext_ming.rc
-! $(WINDRES) --input-format=rc --output-format=coff -DMING $? -o $@
-
- clean: clean-custom
-! ${RM} $(OBJ) $(RES) $(DLL)
-
---- 22,41 ----
- all: all-before $(DLL) all-after
-
- $(DLL): $(OBJ) $(RES) $(DEFFILE)
-! $(CXX) -shared $(CXXFLAGS) -s -o $@ \
- -Wl,--enable-auto-image-base \
-! -Wl,--enable-auto-import \
-! -Wl,--whole-archive \
-! $^ \
-! -Wl,--no-whole-archive \
- $(LIBS)
-
- gvimext.o: gvimext.cpp
-! $(CXX) $(CXXFLAGS) -DFEAT_GETTEXT -c $^ -o $@
-
- $(RES): gvimext_ming.rc
-! $(WINDRES) --input-format=rc --output-format=coff -DMING $^ -o $@
-
- clean: clean-custom
-! $(RM) $(OBJ) $(RES) $(DLL)
-
-*** ../vim-6.2.336/src/version.c Tue Mar 9 17:13:10 2004
---- src/version.c Tue Mar 9 19:39:49 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 337,
- /**/
-
---
-Managers are like cats in a litter box. They instinctively shuffle things
-around to conceal what they've done.
- (Scott Adams - The Dilbert principle)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.338
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.338 (after 6.2.331)
-Problem: When undoing "gwap" the cursor is always put at the start of the
- paragraph. When undoing auto-formatting the cursor may be above
- the change.
-Solution: Try to move the cursor back to where it was or to the first line
- that actually changed.
-Files: src/normal.c, src/ops.c, src/undo.c
-
-
-*** ../vim-6.2.337/src/normal.c Tue Mar 9 12:41:56 2004
---- src/normal.c Tue Mar 9 18:17:19 2004
-***************
-*** 7288,7297 ****
- * "gU" Change text to upper case.
- * "g?" rot13 encoding
- */
- case 'w':
- oap->cursor_start = curwin->w_cursor;
- /*FALLTHROUGH*/
-- case 'q':
- case '~':
- case 'u':
- case 'U':
---- 7291,7300 ----
- * "gU" Change text to upper case.
- * "g?" rot13 encoding
- */
-+ case 'q':
- case 'w':
- oap->cursor_start = curwin->w_cursor;
- /*FALLTHROUGH*/
- case '~':
- case 'u':
- case 'U':
-*** ../vim-6.2.337/src/ops.c Tue Mar 9 12:41:56 2004
---- src/ops.c Tue Mar 9 18:23:06 2004
-***************
-*** 4052,4060 ****
---- 4052,4065 ----
- {
- long old_line_count = curbuf->b_ml.ml_line_count;
-
-+ /* Place the cursor where the "gq" or "gw" command was given, so that "u"
-+ * can put it back there. */
-+ curwin->w_cursor = oap->cursor_start;
-+
- if (u_save((linenr_T)(oap->start.lnum - 1),
- (linenr_T)(oap->end.lnum + 1)) == FAIL)
- return;
-+ curwin->w_cursor = oap->start;
-
- #ifdef FEAT_VISUAL
- if (oap->is_VIsual)
-***************
-*** 4065,4070 ****
---- 4070,4077 ----
- /* Set '[ mark at the start of the formatted area */
- curbuf->b_op_start = oap->start;
-
-+ /* For "gw" remember the cursor position and put it back below (adjusted
-+ * for joined and split lines). */
- if (keep_cursor)
- saved_cursor = oap->cursor_start;
-
-*** ../vim-6.2.337/src/undo.c Sun Feb 29 20:46:43 2004
---- src/undo.c Tue Mar 9 18:33:05 2004
-***************
-*** 563,575 ****
- return;
- }
-
- if (top < newlnum)
- {
-! newlnum = top;
-! curwin->w_cursor.lnum = top + 1;
- }
-- oldsize = bot - top - 1; /* number of lines before undo */
-- newsize = uep->ue_size; /* number of lines after undo */
-
- empty_buffer = FALSE;
-
---- 563,602 ----
- return;
- }
-
-+ oldsize = bot - top - 1; /* number of lines before undo */
-+ newsize = uep->ue_size; /* number of lines after undo */
-+
- if (top < newlnum)
- {
-! /* If the saved cursor is somewhere in this undo block, move it to
-! * the remembered position. Makes "gwap" put the cursor back
-! * where it was. */
-! lnum = curbuf->b_u_curhead->uh_cursor.lnum;
-! if (lnum >= top && lnum <= top + newsize + 1)
-! {
-! curwin->w_cursor = curbuf->b_u_curhead->uh_cursor;
-! newlnum = curwin->w_cursor.lnum - 1;
-! }
-! else
-! {
-! /* Use the first line that actually changed. Avoids that
-! * undoing auto-formatting puts the cursor in the previous
-! * line. */
-! for (i = 0; i < newsize && i < oldsize; ++i)
-! if (STRCMP(uep->ue_array[i], ml_get(top + 1 + i)) != 0)
-! break;
-! if (i == newsize && newlnum == MAXLNUM && uep->ue_next == NULL)
-! {
-! newlnum = top;
-! curwin->w_cursor.lnum = newlnum + 1;
-! }
-! else if (i < newsize)
-! {
-! newlnum = top + i;
-! curwin->w_cursor.lnum = newlnum + 1;
-! }
-! }
- }
-
- empty_buffer = FALSE;
-
-*** ../vim-6.2.337/src/version.c Tue Mar 9 19:41:00 2004
---- src/version.c Tue Mar 9 19:43:47 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 338,
- /**/
-
---
-Your company is doomed if your primary product is overhead transparencies.
- (Scott Adams - The Dilbert principle)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.339
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.339
-Problem: Crash when using many different highlight groups and a User
- highlight group. (Juergen Kraemer)
-Solution: Do not use the sg_name_u pointer when it is NULL. Also simplify
- use of the highlight group table.
-Files: src/syntax.c
-
-
-*** ../vim-6.2.338/src/syntax.c Sun Feb 1 20:02:19 2004
---- src/syntax.c Wed Mar 10 15:53:39 2004
-***************
-*** 7738,7747 ****
- set_hl_attr(idx)
- int idx; /* index in array */
- {
-! attrentry_T at_en;
-
- /* The "Normal" group doesn't need an attribute number */
-! if (STRCMP(HL_TABLE()[idx].sg_name_u, "NORMAL") == 0)
- return;
-
- #ifdef FEAT_GUI
---- 7738,7748 ----
- set_hl_attr(idx)
- int idx; /* index in array */
- {
-! attrentry_T at_en;
-! struct hl_group *sgp = HL_TABLE() + idx;
-
- /* The "Normal" group doesn't need an attribute number */
-! if (sgp->sg_name_u != NULL && STRCMP(sgp->sg_name_u, "NORMAL") == 0)
- return;
-
- #ifdef FEAT_GUI
-***************
-*** 7749,7803 ****
- * For the GUI mode: If there are other than "normal" highlighting
- * attributes, need to allocate an attr number.
- */
-! if (HL_TABLE()[idx].sg_gui_fg == INVALCOLOR
-! && HL_TABLE()[idx].sg_gui_bg == INVALCOLOR
-! && HL_TABLE()[idx].sg_font == NOFONT
- # ifdef FEAT_XFONTSET
-! && HL_TABLE()[idx].sg_fontset == NOFONTSET
- # endif
- )
- {
-! HL_TABLE()[idx].sg_gui_attr = HL_TABLE()[idx].sg_gui;
- }
- else
- {
-! at_en.ae_attr = HL_TABLE()[idx].sg_gui;
-! at_en.ae_u.gui.fg_color = HL_TABLE()[idx].sg_gui_fg;
-! at_en.ae_u.gui.bg_color = HL_TABLE()[idx].sg_gui_bg;
-! at_en.ae_u.gui.font = HL_TABLE()[idx].sg_font;
- # ifdef FEAT_XFONTSET
-! at_en.ae_u.gui.fontset = HL_TABLE()[idx].sg_fontset;
- # endif
-! HL_TABLE()[idx].sg_gui_attr = get_attr_entry(&gui_attr_table, &at_en);
- }
- #endif
- /*
- * For the term mode: If there are other than "normal" highlighting
- * attributes, need to allocate an attr number.
- */
-! if (HL_TABLE()[idx].sg_start == NULL && HL_TABLE()[idx].sg_stop == NULL)
-! HL_TABLE()[idx].sg_term_attr = HL_TABLE()[idx].sg_term;
- else
- {
-! at_en.ae_attr = HL_TABLE()[idx].sg_term;
-! at_en.ae_u.term.start = HL_TABLE()[idx].sg_start;
-! at_en.ae_u.term.stop = HL_TABLE()[idx].sg_stop;
-! HL_TABLE()[idx].sg_term_attr = get_attr_entry(&term_attr_table, &at_en);
- }
-
- /*
- * For the color term mode: If there are other than "normal"
- * highlighting attributes, need to allocate an attr number.
- */
-! if (HL_TABLE()[idx].sg_cterm_fg == 0 && HL_TABLE()[idx].sg_cterm_bg == 0)
-! HL_TABLE()[idx].sg_cterm_attr = HL_TABLE()[idx].sg_cterm;
- else
- {
-! at_en.ae_attr = HL_TABLE()[idx].sg_cterm;
-! at_en.ae_u.cterm.fg_color = HL_TABLE()[idx].sg_cterm_fg;
-! at_en.ae_u.cterm.bg_color = HL_TABLE()[idx].sg_cterm_bg;
-! HL_TABLE()[idx].sg_cterm_attr =
-! get_attr_entry(&cterm_attr_table, &at_en);
- }
- }
-
---- 7750,7803 ----
- * For the GUI mode: If there are other than "normal" highlighting
- * attributes, need to allocate an attr number.
- */
-! if (sgp->sg_gui_fg == INVALCOLOR
-! && sgp->sg_gui_bg == INVALCOLOR
-! && sgp->sg_font == NOFONT
- # ifdef FEAT_XFONTSET
-! && sgp->sg_fontset == NOFONTSET
- # endif
- )
- {
-! sgp->sg_gui_attr = sgp->sg_gui;
- }
- else
- {
-! at_en.ae_attr = sgp->sg_gui;
-! at_en.ae_u.gui.fg_color = sgp->sg_gui_fg;
-! at_en.ae_u.gui.bg_color = sgp->sg_gui_bg;
-! at_en.ae_u.gui.font = sgp->sg_font;
- # ifdef FEAT_XFONTSET
-! at_en.ae_u.gui.fontset = sgp->sg_fontset;
- # endif
-! sgp->sg_gui_attr = get_attr_entry(&gui_attr_table, &at_en);
- }
- #endif
- /*
- * For the term mode: If there are other than "normal" highlighting
- * attributes, need to allocate an attr number.
- */
-! if (sgp->sg_start == NULL && sgp->sg_stop == NULL)
-! sgp->sg_term_attr = sgp->sg_term;
- else
- {
-! at_en.ae_attr = sgp->sg_term;
-! at_en.ae_u.term.start = sgp->sg_start;
-! at_en.ae_u.term.stop = sgp->sg_stop;
-! sgp->sg_term_attr = get_attr_entry(&term_attr_table, &at_en);
- }
-
- /*
- * For the color term mode: If there are other than "normal"
- * highlighting attributes, need to allocate an attr number.
- */
-! if (sgp->sg_cterm_fg == 0 && sgp->sg_cterm_bg == 0)
-! sgp->sg_cterm_attr = sgp->sg_cterm;
- else
- {
-! at_en.ae_attr = sgp->sg_cterm;
-! at_en.ae_u.cterm.fg_color = sgp->sg_cterm_fg;
-! at_en.ae_u.cterm.bg_color = sgp->sg_cterm_bg;
-! sgp->sg_cterm_attr = get_attr_entry(&cterm_attr_table, &at_en);
- }
- }
-
-*** ../vim-6.2.338/src/version.c Tue Mar 9 19:49:08 2004
---- src/version.c Wed Mar 10 16:21:38 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 339,
- /**/
-
---
-Engineers are always delighted to share wisdom, even in areas in which they
-have no experience whatsoever. Their logic provides them with inherent
-insight into any field of expertise. This can be a problem when dealing with
-the illogical people who believe that knowledge can only be derived through
-experience.
- (Scott Adams - The Dilbert principle)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.340
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.340
-Problem: ":reg" doesn't show the actual contents of the clipboard if it was
- filled outside of Vim. (Stuart MacDonald)
-Solution: Obtain the clipboard contents before displaying it.
-Files: src/ops.c
-
-
-*** ../vim-6.2.339/src/ops.c Tue Mar 9 19:49:08 2004
---- src/ops.c Thu Mar 11 17:40:10 2004
-***************
-*** 3649,3655 ****
- long j;
- char_u *p;
- struct yankreg *yb;
-! char_u name;
- int attr;
- char_u *arg = eap->arg;
-
---- 3649,3655 ----
- long j;
- char_u *p;
- struct yankreg *yb;
-! int name;
- int attr;
- char_u *arg = eap->arg;
-
-***************
-*** 3661,3666 ****
---- 3661,3678 ----
- MSG_PUTS_TITLE(_("\n--- Registers ---"));
- for (i = -1; i < NUM_REGISTERS && !got_int; ++i)
- {
-+ name = get_register_name(i);
-+ if (arg != NULL && vim_strchr(arg, name) == NULL)
-+ continue; /* did not ask for this register */
-+
-+ #ifdef FEAT_CLIPBOARD
-+ /* Adjust register name for "unnamed" in 'clipboard'.
-+ * When it's a clipboard register, fill it with the current contents
-+ * of the clipboard. */
-+ adjust_clip_reg(&name);
-+ (void)may_get_selection(name);
-+ #endif
-+
- if (i == -1)
- {
- if (y_previous != NULL)
-***************
-*** 3670,3678 ****
- }
- else
- yb = &(y_regs[i]);
-! name = get_register_name(i);
-! if (yb->y_array != NULL
-! && (arg == NULL || vim_strchr(arg, name) != NULL))
- {
- msg_putchar('\n');
- msg_putchar('"');
---- 3682,3688 ----
- }
- else
- yb = &(y_regs[i]);
-! if (yb->y_array != NULL)
- {
- msg_putchar('\n');
- msg_putchar('"');
-*** ../vim-6.2.339/src/version.c Wed Mar 10 16:22:45 2004
---- src/version.c Thu Mar 11 17:47:28 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 340,
- /**/
-
---
-login: yes
-password: I don't know, please tell me
-password is incorrect
-login: yes
-password: incorrect
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.341 (extra)
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.341 (extra)
-Problem: Win32: When the path to diff.exe contains a space and using the
- vimrc generated by the install program, diff mode does not work.
-Solution: Put the first double quote just before the space instead of before
- the path.
-Files: src/dosinst.c
-
-
-*** ../vim-6.2.340/src/dosinst.c Fri Jul 25 22:43:59 2003
---- src/dosinst.c Wed Mar 10 12:42:30 2004
-***************
-*** 1122,1127 ****
---- 1122,1128 ----
- {
- FILE *fd, *tfd;
- char *fname;
-+ char *p;
-
- /* If an old vimrc file exists, overwrite it.
- * Otherwise create a new one. */
-***************
-*** 1176,1186 ****
- fprintf(fd, " let opt = ''\n");
- fprintf(fd, " if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif\n");
- fprintf(fd, " if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif\n");
-! /* Use quotes here if the path includes a space. */
-! if (strchr(installdir, ' ') != NULL)
-! fprintf(fd, " silent execute '!\"%s\\diff\" -a ' . opt . '\"' . v:fname_in . '\" \"' . v:fname_new . '\" > \"' . v:fname_out . '\"'\n", installdir);
- else
-! fprintf(fd, " silent execute '!%s\\diff -a ' . opt . '\"' . v:fname_in . '\" \"' . v:fname_new . '\" > \"' . v:fname_out . '\"'\n", installdir);
- fprintf(fd, "endfunction\n");
- fprintf(fd, "\n");
- }
---- 1177,1196 ----
- fprintf(fd, " let opt = ''\n");
- fprintf(fd, " if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif\n");
- fprintf(fd, " if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif\n");
-! fprintf(fd, " silent execute '!");
-! p = strchr(installdir, ' ');
-! if (p != NULL)
-! {
-! /* The path has a space. Put a double quote just before the space
-! * and at the end of the command. Putting quotes around the whole
-! * thing doesn't work. */
-! *p = NUL;
-! fprintf(fd, "%s\" %s\\diff\"", installdir, p + 1);
-! *p = ' ';
-! }
- else
-! fprintf(fd, "%s\\diff", installdir);
-! fprintf(fd, " -a ' . opt . '\"' . v:fname_in . '\" \"' . v:fname_new . '\" > \"' . v:fname_out . '\"'\n");
- fprintf(fd, "endfunction\n");
- fprintf(fd, "\n");
- }
-*** ../vim-6.2.340/src/version.c Thu Mar 11 17:48:22 2004
---- src/version.c Thu Mar 11 20:45:16 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 341,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-4. Your eyeglasses have a web site burned in on them.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.342 (extra)
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.342 (extra)
-Problem: Win32: macros are not always used as expected.
-Solution: Define WINVER to 0x0400 instead of 0x400. (Alejandro
- Lopez-Valencia)
-Files: src/Make_bc5.mak, src/Make_cyg.mak, src/Make_mvc.mak
-
-
-*** ../vim-6.2.341/src/Make_bc5.mak Mon Mar 1 21:40:02 2004
---- src/Make_bc5.mak Tue Mar 9 16:47:21 2004
-***************
-*** 72,78 ****
- # POSTSCRIPT no or yes: set to yes for PostScript printing
- # FEATURES TINY, SMALL, NORMAL, BIG or HUGE
- # (BIG for WIN32, SMALL for DOS16)
-! # WINVER 0x400 or 0x500: minimum Win32 version to support (0x400)
- # CSCOPE no or yes: include support for Cscope interface (yes)
- # NETBEANS no or yes: include support for Netbeans interface (yes if GUI
- # is yes)
---- 72,78 ----
- # POSTSCRIPT no or yes: set to yes for PostScript printing
- # FEATURES TINY, SMALL, NORMAL, BIG or HUGE
- # (BIG for WIN32, SMALL for DOS16)
-! # WINVER 0x0400 or 0x0500: minimum Win32 version to support (0x0400)
- # CSCOPE no or yes: include support for Cscope interface (yes)
- # NETBEANS no or yes: include support for Netbeans interface (yes if GUI
- # is yes)
-***************
-*** 230,236 ****
-
- ### Set the default $(WINVER) to make it work with Bcc 5.5.
- !ifndef WINVER
-! WINVER = 0x400
- !endif
-
- #
---- 230,236 ----
-
- ### Set the default $(WINVER) to make it work with Bcc 5.5.
- !ifndef WINVER
-! WINVER = 0x0400
- !endif
-
- #
-*** ../vim-6.2.341/src/Make_cyg.mak Tue Feb 3 16:20:37 2004
---- src/Make_cyg.mak Tue Mar 9 15:41:56 2004
-***************
-*** 1,6 ****
- #
- # Makefile for VIM on Win32, using Cygnus gcc
-! # Last updated by Dan Sharp. Last Change: 2004 Feb 03
- #
- # This compiles Vim as a Windows application. If you want Vim to run as a
- # Cygwin application use the Makefile (just like on Unix).
---- 1,6 ----
- #
- # Makefile for VIM on Win32, using Cygnus gcc
-! # Last updated by Dan Sharp. Last Change: 2004 Mar 09
- #
- # This compiles Vim as a Windows application. If you want Vim to run as a
- # Cygwin application use the Makefile (just like on Unix).
-***************
-*** 31,37 ****
- # For USEDLL=yes the cygwin1.dll is required to run Vim.
- # POSTSCRIPT no or yes: set to yes for PostScript printing (no)
- # FEATURES TINY, SMALL, NORMAL, BIG or HUGE (BIG)
-! # WINVER Lowest Win32 version to support. (0x400)
- # CSCOPE no or yes: to include cscope interface support (yes)
- # OPTIMIZE SPACE, SPEED, or MAXSPEED: set optimization level (MAXSPEED)
- # NETBEANS no or yes: to include netbeans interface support (yes when GUI
---- 31,37 ----
- # For USEDLL=yes the cygwin1.dll is required to run Vim.
- # POSTSCRIPT no or yes: set to yes for PostScript printing (no)
- # FEATURES TINY, SMALL, NORMAL, BIG or HUGE (BIG)
-! # WINVER Lowest Win32 version to support. (0x0400)
- # CSCOPE no or yes: to include cscope interface support (yes)
- # OPTIMIZE SPACE, SPEED, or MAXSPEED: set optimization level (MAXSPEED)
- # NETBEANS no or yes: to include netbeans interface support (yes when GUI
-***************
-*** 71,77 ****
- endif
-
- ifndef WINVER
-! WINVER = 0x400
- endif
-
- ifndef CSCOPE
---- 71,77 ----
- endif
-
- ifndef WINVER
-! WINVER = 0x0400
- endif
-
- ifndef CSCOPE
-*** ../vim-6.2.341/src/Make_mvc.mak Tue Feb 3 16:14:03 2004
---- src/Make_mvc.mak Tue Mar 9 16:47:42 2004
-***************
-*** 53,59 ****
- # See http://sourceforge.net/projects/gettext/
- # PostScript printing: POSTSCRIPT=yes (default is no)
- # Feature Set: FEATURES=[TINY, SMALL, NORMAL, BIG, or HUGE] (default is BIG)
-! # Version Support: WINVER=[0x400, 0x500] (default is 0x400)
- # Processor Version: CPUNR=[i386, i486, i586, i686] (default is i386)
- # Optimization: OPTIMIZE=[SPACE, SPEED, MAXSPEED] (default is MAXSPEED)
- # Netbeans Support: NETBEANS=[yes or no] (default is yes if GUI is yes)
---- 53,59 ----
- # See http://sourceforge.net/projects/gettext/
- # PostScript printing: POSTSCRIPT=yes (default is no)
- # Feature Set: FEATURES=[TINY, SMALL, NORMAL, BIG, or HUGE] (default is BIG)
-! # Version Support: WINVER=[0x0400, 0x0500] (default is 0x0400)
- # Processor Version: CPUNR=[i386, i486, i586, i686] (default is i386)
- # Optimization: OPTIMIZE=[SPACE, SPEED, MAXSPEED] (default is MAXSPEED)
- # Netbeans Support: NETBEANS=[yes or no] (default is yes if GUI is yes)
-***************
-*** 230,236 ****
-
- ### Set the default $(WINVER) to make it work with VC++7.0 (VS.NET)
- !ifndef WINVER
-! WINVER = 0x400
- !endif
-
- # If you have a fixed directory for $VIM or $VIMRUNTIME, other than the normal
---- 230,236 ----
-
- ### Set the default $(WINVER) to make it work with VC++7.0 (VS.NET)
- !ifndef WINVER
-! WINVER = 0x0400
- !endif
-
- # If you have a fixed directory for $VIM or $VIMRUNTIME, other than the normal
-*** ../vim-6.2.341/src/version.c Thu Mar 11 20:46:51 2004
---- src/version.c Thu Mar 11 20:48:04 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 342,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-5. You find yourself brainstorming for new subjects to search.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.343
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.343
-Problem: Title doesn't work with some window managers. X11: Setting the
- text property for the window title is hard coded.
-Solution: Use STRING format when possible. Use the UTF-8 function when
- it's available and 'encoding' is utf-8. Use
- XStringListToTextProperty(). Do the same for the icon name.
- (David Harrison)
-Files: src/os_unix.c
-
-
-*** ../vim-6.2.342/src/os_unix.c Fri Mar 5 15:21:09 2004
---- src/os_unix.c Thu Mar 11 20:54:54 2004
-***************
-*** 1607,1612 ****
---- 1607,1619 ----
- return retval;
- }
-
-+ /* Are Xutf8 functions available? Avoid error from old compilers. */
-+ #if defined(X_HAVE_UTF8_STRING) && defined(FEAT_MBYTE)
-+ # if X_HAVE_UTF8_STRING
-+ # define USE_UTF8_STRING
-+ # endif
-+ #endif
-+
- /*
- * Set x11 Window Title
- *
-***************
-*** 1616,1646 ****
- set_x11_title(title)
- char_u *title;
- {
- #if XtSpecificationRelease >= 4
-- XTextProperty text_prop;
- # ifdef FEAT_XFONTSET
-! Status status;
-
-! status = XmbTextListToTextProperty(x11_display, (char **)&title, 1,
-! XCompoundTextStyle, &text_prop);
-! /* Status is a positive number when some chars could not be converted.
-! * Accept that, we don't know what to do otherwise. */
-! if (status < Success)
-! # endif
-! {
-! text_prop.value = title;
-! text_prop.nitems = STRLEN(title);
-! text_prop.encoding = XA_STRING;
-! text_prop.format = 8;
-! }
-! XSetWMName(x11_display, x11_window, &text_prop);
-! # ifdef FEAT_XFONTSET
-! if (status >= Success)
-! XFree((void *)text_prop.value);
- # endif
- #else
-! XStoreName(x11_display, x11_window, (char *)title);
- #endif
- XFlush(x11_display);
- }
-
---- 1623,1655 ----
- set_x11_title(title)
- char_u *title;
- {
-+ /* XmbSetWMProperties() and Xutf8SetWMProperties() should use a STRING
-+ * when possible, COMPOUND_TEXT otherwise. COMPOUND_TEXT isn't
-+ * supported everywhere and STRING doesn't work for multi-byte titles.
-+ */
-+ #ifdef USE_UTF8_STRING
-+ if (enc_utf8)
-+ Xutf8SetWMProperties(x11_display, x11_window, (const char *)title,
-+ NULL, NULL, 0, NULL, NULL, NULL);
-+ else
-+ #endif
-+ {
- #if XtSpecificationRelease >= 4
- # ifdef FEAT_XFONTSET
-! XmbSetWMProperties(x11_display, x11_window, (const char *)title,
-! NULL, NULL, 0, NULL, NULL, NULL);
-! # else
-! XTextProperty text_prop;
-
-! /* directly from example 3-18 "basicwin" of Xlib Programming Manual */
-! (void)XStringListToTextProperty((char **)&title, 1, &text_prop);
-! XSetWMProperties(x11_display, x11_window, &text_prop,
-! NULL, NULL, 0, NULL, NULL, NULL);
- # endif
- #else
-! XStoreName(x11_display, x11_window, (char *)title);
- #endif
-+ }
- XFlush(x11_display);
- }
-
-***************
-*** 1653,1683 ****
- set_x11_icon(icon)
- char_u *icon;
- {
- #if XtSpecificationRelease >= 4
-- XTextProperty text_prop;
- # ifdef FEAT_XFONTSET
-! Status status;
-
-! status = XmbTextListToTextProperty(x11_display, (char **)&icon, 1,
-! XCompoundTextStyle, &text_prop);
-! /* Status is a positive number when some chars could not be converted.
-! * Accept that, we don't know what to do otherwise. */
-! if (status < Success)
-! # endif
-! {
-! text_prop.value = icon;
-! text_prop.nitems = STRLEN(icon);
-! text_prop.encoding = XA_STRING;
-! text_prop.format = 8;
-! }
-! XSetWMIconName(x11_display, x11_window, &text_prop);
-! # ifdef FEAT_XFONTSET
-! if (status >= Success)
-! XFree((void *)text_prop.value);
- # endif
- #else
-! XSetIconName(x11_display, x11_window, (char *)icon);
- #endif
- XFlush(x11_display);
- }
-
---- 1662,1690 ----
- set_x11_icon(icon)
- char_u *icon;
- {
-+ /* See above for comments about using X*SetWMProperties(). */
-+ #ifdef USE_UTF8_STRING
-+ if (enc_utf8)
-+ Xutf8SetWMProperties(x11_display, x11_window, NULL, (const char *)icon,
-+ NULL, 0, NULL, NULL, NULL);
-+ else
-+ #endif
-+ {
- #if XtSpecificationRelease >= 4
- # ifdef FEAT_XFONTSET
-! XmbSetWMProperties(x11_display, x11_window, NULL, (const char *)icon,
-! NULL, 0, NULL, NULL, NULL);
-! # else
-! XTextProperty text_prop;
-
-! (void)XStringListToTextProperty((char **)&icon, 1, &text_prop);
-! XSetWMProperties(x11_display, x11_window, NULL, &text_prop,
-! NULL, 0, NULL, NULL, NULL);
- # endif
- #else
-! XSetIconName(x11_display, x11_window, (char *)icon);
- #endif
-+ }
- XFlush(x11_display);
- }
-
-*** ../vim-6.2.342/src/version.c Thu Mar 11 20:49:02 2004
---- src/version.c Thu Mar 11 20:50:31 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 343,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-6. You refuse to go to a vacation spot with no electricity and no phone lines.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.344 (extra)
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.344 (extra, after 6.2.337)
-Problem: Cannot build gvimext.dll with MingW on Linux.
-Solution: Add support for cross compiling. (Ronald Hoellwarth)
-Files: src/GvimExt/Make_ming.mak
-
-
-*** ../vim-6.2.343/src/GvimExt/Make_ming.mak Tue Mar 9 19:41:00 2004
---- src/GvimExt/Make_ming.mak Wed Mar 10 21:26:36 2004
-***************
-*** 7,19 ****
- # already loaded in memory. The binary image contains as well information
- # for automatic pseudo-rebasing, if needed by the system. ALV 2004-02-29
-
-! CXX := g++
- CXXFLAGS := -O2 -mno-cygwin
-! LIBS := -luuid
- WINDRES := windres.exe
- RES := gvimext.res
- DEFFILE = gvimext_ming.def
-! OBJ := gvimext.o
-
- DLL := gvimext.dll
-
---- 7,41 ----
- # already loaded in memory. The binary image contains as well information
- # for automatic pseudo-rebasing, if needed by the system. ALV 2004-02-29
-
-! # If cross-compiling set this to yes, else set it to no
-! CROSS = no
-! #CROSS = yes
-! # For the old MinGW 2.95 (the one you get e.g. with debian woody)
-! # set the following variable to yes and check if the executables are
-! # really named that way.
-! # If you have a newer MinGW or you are using cygwin set it to no and
-! # check also the executables
-! MINGWOLD = no
-!
-! ifeq ($(CROSS),yes)
-! ifeq ($(MINGWOLD),yes)
-! CXX = i586-mingw32msvc-g++
-! CXXFLAGS := -O2 -mno-cygwin -fvtable-thunks
-! WINDRES = i586-mingw32msvc-windres
-! else
-! CXX = i386-mingw32msvc-g++
- CXXFLAGS := -O2 -mno-cygwin
-! WINDRES = i386-mingw32msvc-windres
-! endif
-! else
-! CXX := g++.exe
- WINDRES := windres.exe
-+ CXXFLAGS := -O2 -mno-cygwin
-+ endif
-+ LIBS := -luuid
- RES := gvimext.res
- DEFFILE = gvimext_ming.def
-! OBJ := gvimext.o
-
- DLL := gvimext.dll
-
-***************
-*** 22,40 ****
- all: all-before $(DLL) all-after
-
- $(DLL): $(OBJ) $(RES) $(DEFFILE)
-! $(CXX) -shared $(CXXFLAGS) -s -o $@ \
- -Wl,--enable-auto-image-base \
-! -Wl,--enable-auto-import \
-! -Wl,--whole-archive \
-! $^ \
-! -Wl,--no-whole-archive \
- $(LIBS)
-
- gvimext.o: gvimext.cpp
-! $(CXX) $(CXXFLAGS) -DFEAT_GETTEXT -c $^ -o $@
-
- $(RES): gvimext_ming.rc
-! $(WINDRES) --input-format=rc --output-format=coff -DMING $^ -o $@
-
- clean: clean-custom
- $(RM) $(OBJ) $(RES) $(DLL)
---- 44,62 ----
- all: all-before $(DLL) all-after
-
- $(DLL): $(OBJ) $(RES) $(DEFFILE)
-! $(CXX) -shared $(CXXFLAGS) -s -o $@ \
- -Wl,--enable-auto-image-base \
-! -Wl,--enable-auto-import \
-! -Wl,--whole-archive \
-! $^ \
-! -Wl,--no-whole-archive \
- $(LIBS)
-
- gvimext.o: gvimext.cpp
-! $(CXX) $(CXXFLAGS) -DFEAT_GETTEXT -c $? -o $@
-
- $(RES): gvimext_ming.rc
-! $(WINDRES) --input-format=rc --output-format=coff -DMING $? -o $@
-
- clean: clean-custom
- $(RM) $(OBJ) $(RES) $(DLL)
-*** ../vim-6.2.343/src/version.c Thu Mar 11 20:55:09 2004
---- src/version.c Thu Mar 11 20:58:09 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 344,
- /**/
-
---
-The goal of science is to build better mousetraps.
-The goal of nature is to build better mice.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.345 (extra)
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.345 (extra)
-Problem: Win32: Copy/paste between two Vims fails if 'encoding' is not set
- properly or there are illegal bytes.
-Solution: Use a raw byte format. Always set it when copying. When pasting
- use the raw format if 'encoding' is the same.
-Files: src/os_mswin.c, src/os_win16.c, src/os_win32.c, src/vim.h
-
-
-*** ../vim-6.2.344/src/os_mswin.c Tue Mar 9 14:24:17 2004
---- src/os_mswin.c Wed Mar 10 21:11:19 2004
-***************
-*** 929,934 ****
---- 929,936 ----
- int type; /* MCHAR, MBLOCK or MLINE */
- int txtlen; /* length of CF_TEXT in bytes */
- int ucslen; /* length of CF_UNICODETEXT in words */
-+ int rawlen; /* length of clip_star.format_raw, including encoding,
-+ excluding terminating NUL */
- } VimClipType_t;
-
- /*
-***************
-*** 1123,1137 ****
- void
- clip_mch_request_selection(VimClipboard *cbd)
- {
-! VimClipType_t metadata = { -1, -1, -1 };
- HGLOBAL hMem = NULL;
- char_u *str = NULL;
- #if defined(FEAT_MBYTE) && defined(WIN3264)
- char_u *to_free = NULL;
- #endif
- char_u *hMemStr = NULL;
- int str_size = 0;
- int maxlen;
-
- /*
- * Don't pass GetActiveWindow() as an argument to OpenClipboard() because
---- 1125,1143 ----
- void
- clip_mch_request_selection(VimClipboard *cbd)
- {
-! VimClipType_t metadata = { -1, -1, -1, -1 };
- HGLOBAL hMem = NULL;
- char_u *str = NULL;
- #if defined(FEAT_MBYTE) && defined(WIN3264)
- char_u *to_free = NULL;
- #endif
-+ #ifdef FEAT_MBYTE
-+ HGLOBAL rawh = NULL;
-+ #endif
- char_u *hMemStr = NULL;
- int str_size = 0;
- int maxlen;
-+ size_t n;
-
- /*
- * Don't pass GetActiveWindow() as an argument to OpenClipboard() because
-***************
-*** 1151,1162 ****
- if ((meta_h = GetClipboardData(cbd->format)) != NULL
- && (meta_p = (VimClipType_t *)GlobalLock(meta_h)) != NULL)
- {
-! if (GlobalSize(meta_h) >= sizeof(VimClipType_t))
-! memcpy(&metadata, meta_p, sizeof(metadata));
- GlobalUnlock(meta_h);
- }
- }
-
- #if defined(FEAT_MBYTE) && defined(WIN3264)
- /* Try to get the clipboard in Unicode if it's not an empty string. */
- if (IsClipboardFormatAvailable(CF_UNICODETEXT) && metadata.ucslen != 0)
---- 1157,1201 ----
- if ((meta_h = GetClipboardData(cbd->format)) != NULL
- && (meta_p = (VimClipType_t *)GlobalLock(meta_h)) != NULL)
- {
-! /* The size of "VimClipType_t" changed, "rawlen" was added later.
-! * Only copy what is available for backwards compatibility. */
-! n = sizeof(VimClipType_t);
-! if (GlobalSize(meta_h) < n)
-! n = GlobalSize(meta_h);
-! memcpy(&metadata, meta_p, n);
- GlobalUnlock(meta_h);
- }
- }
-
-+ #ifdef FEAT_MBYTE
-+ /* Check for Vim's raw clipboard format first. This is used without
-+ * conversion, but only if 'encoding' matches. */
-+ if (IsClipboardFormatAvailable(cbd->format_raw)
-+ && metadata.rawlen > (int)STRLEN(p_enc))
-+ {
-+ /* We have raw data on the clipboard; try to get it. */
-+ if ((rawh = GetClipboardData(cbd->format_raw)) != NULL)
-+ {
-+ char_u *rawp;
-+
-+ rawp = (char_u *)GlobalLock(rawh);
-+ if (rawp != NULL && STRCMP(p_enc, rawp) == 0)
-+ {
-+ n = STRLEN(p_enc) + 1;
-+ str = rawp + n;
-+ str_size = metadata.rawlen - n;
-+ }
-+ else
-+ {
-+ GlobalUnlock(rawh);
-+ rawh = NULL;
-+ }
-+ }
-+ }
-+ if (str == NULL)
-+ {
-+ #endif
-+
- #if defined(FEAT_MBYTE) && defined(WIN3264)
- /* Try to get the clipboard in Unicode if it's not an empty string. */
- if (IsClipboardFormatAvailable(CF_UNICODETEXT) && metadata.ucslen != 0)
-***************
-*** 1231,1236 ****
---- 1270,1278 ----
- #endif
- }
- }
-+ #ifdef FEAT_MBYTE
-+ }
-+ #endif
-
- if (str != NULL && *str != NUL)
- {
-***************
-*** 1250,1257 ****
- }
-
- /* unlock the global object */
-! if (hMemStr != NULL)
- GlobalUnlock(hMem);
- CloseClipboard();
- #if defined(FEAT_MBYTE) && defined(WIN3264)
- vim_free(to_free);
---- 1292,1303 ----
- }
-
- /* unlock the global object */
-! if (hMem != NULL)
- GlobalUnlock(hMem);
-+ #ifdef FEAT_MBYTE
-+ if (rawh != NULL)
-+ GlobalUnlock(rawh);
-+ #endif
- CloseClipboard();
- #if defined(FEAT_MBYTE) && defined(WIN3264)
- vim_free(to_free);
-***************
-*** 1267,1272 ****
---- 1313,1319 ----
- char_u *str = NULL;
- VimClipType_t metadata;
- long_u txtlen;
-+ HGLOBAL hMemRaw = NULL;
- HGLOBAL hMem = NULL;
- HGLOBAL hMemVim = NULL;
- # if defined(FEAT_MBYTE) && defined(WIN3264)
-***************
-*** 1284,1289 ****
---- 1331,1359 ----
- return;
- metadata.txtlen = (int)txtlen;
- metadata.ucslen = 0;
-+ metadata.rawlen = 0;
-+
-+ #ifdef FEAT_MBYTE
-+ /* Always set the raw bytes: 'encoding', NUL and the text. This is used
-+ * when copy/paste from/to Vim with the same 'encoding', so that illegal
-+ * bytes can also be copied and no conversion is needed. */
-+ {
-+ LPSTR lpszMemRaw;
-+
-+ metadata.rawlen = txtlen + STRLEN(p_enc) + 1;
-+ hMemRaw = (LPSTR)GlobalAlloc(GMEM_MOVEABLE | GMEM_DDESHARE,
-+ metadata.rawlen + 1);
-+ lpszMemRaw = (LPSTR)GlobalLock(hMemRaw);
-+ if (lpszMemRaw != NULL)
-+ {
-+ STRCPY(lpszMemRaw, p_enc);
-+ memcpy(lpszMemRaw + STRLEN(p_enc) + 1, str, txtlen + 1);
-+ GlobalUnlock(hMemRaw);
-+ }
-+ else
-+ metadata.rawlen = 0;
-+ }
-+ #endif
-
- # if defined(FEAT_MBYTE) && defined(WIN3264)
- {
-***************
-*** 1385,1390 ****
---- 1455,1462 ----
-
- vim_free(str);
- /* Free any allocations we didn't give to the clipboard: */
-+ if (hMemRaw)
-+ GlobalFree(hMemRaw);
- if (hMem)
- GlobalFree(hMem);
- # if defined(FEAT_MBYTE) && defined(WIN3264)
-*** ../vim-6.2.344/src/os_win16.c Sat May 24 17:19:47 2003
---- src/os_win16.c Wed Mar 10 18:32:17 2004
-***************
-*** 179,184 ****
---- 179,185 ----
- * character to specify MCHAR, MLINE or MBLOCK.
- */
- clip_star.format = RegisterClipboardFormat("VimClipboard2");
-+ clip_star.format_raw = RegisterClipboardFormat("VimRawBytes");
- #endif
- }
-
-*** ../vim-6.2.344/src/os_win32.c Sun Mar 7 17:03:27 2004
---- src/os_win32.c Wed Mar 10 18:26:06 2004
-***************
-*** 1540,1545 ****
---- 1540,1546 ----
- * character to specify MCHAR, MLINE or MBLOCK.
- */
- clip_star.format = RegisterClipboardFormat("VimClipboard2");
-+ clip_star.format_raw = RegisterClipboardFormat("VimRawBytes");
- #endif
- }
-
-***************
-*** 2038,2043 ****
---- 2039,2045 ----
- * character to specify MCHAR, MLINE or MBLOCK.
- */
- clip_star.format = RegisterClipboardFormat("VimClipboard2");
-+ clip_star.format_raw = RegisterClipboardFormat("VimRawBytes");
- #endif
-
- /* This will be NULL on anything but NT 4.0 */
-*** ../vim-6.2.344/src/vim.h Mon Mar 8 12:27:39 2004
---- src/vim.h Wed Mar 10 18:28:34 2004
-***************
-*** 1520,1525 ****
---- 1520,1526 ----
-
- # ifdef MSWIN
- int_u format; /* Vim's own special clipboard format */
-+ int_u format_raw; /* Vim's raw text clipboard format */
- # endif
- # ifdef FEAT_GUI_BEOS
- /* no clipboard at the moment */
-*** ../vim-6.2.344/src/version.c Thu Mar 11 20:59:13 2004
---- src/version.c Thu Mar 11 21:01:16 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 345,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-7. You finally do take that vacation, but only after buying a cellular modem
- and a laptop.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.346
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.346
-Problem: Win32 console: After using "chcp" Vim does not detect the
- different codepage.
-Solution: Use GetConsoleCP() and when it is different from GetACP() set
- 'termencoding'.
-Files: src/option.c
-
-
-*** ../vim-6.2.345/src/option.c Sun Mar 7 19:33:37 2004
---- src/option.c Thu Mar 11 17:25:32 2004
-***************
-*** 2803,2808 ****
---- 2803,2828 ----
- opt_idx = findoption((char_u *)"encoding");
- options[opt_idx].def_val[VI_DEFAULT] = p_enc;
- options[opt_idx].flags |= P_DEF_ALLOCED;
-+
-+ # if defined(WIN3264) && !defined(FEAT_GUI)
-+ /* Win32 console: When GetACP() returns a different value from
-+ * GetConsoleCP() set 'termencoding'. */
-+ if (GetACP() != GetConsoleCP())
-+ {
-+ char buf[50];
-+
-+ sprintf(buf, "cp%ld", (long)GetConsoleCP());
-+ p_tenc = vim_strsave((char_u *)buf);
-+ if (p_tenc != NULL)
-+ {
-+ opt_idx = findoption((char_u *)"termencoding");
-+ options[opt_idx].def_val[VI_DEFAULT] = p_tenc;
-+ options[opt_idx].flags |= P_DEF_ALLOCED;
-+ }
-+ else
-+ p_tenc = empty_option;
-+ }
-+ # endif
- }
- else
- {
-*** ../vim-6.2.345/src/version.c Thu Mar 11 21:03:40 2004
---- src/version.c Thu Mar 11 21:07:08 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 346,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-8. You spend half of the plane trip with your laptop on your lap...and your
- child in the overhead compartment.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.347 (extra)
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.347 (extra)
-Problem: Win32: XP theme support is missing.
-Solution: Add a manifest and refer to it from the resource file. (Michael
- Wookey)
-Files: Makefile, src/gvim.exe.mnf, src/vim.rc
-
-
-*** ../vim-6.2.346/Makefile Sun Nov 2 15:37:11 2003
---- Makefile Fri Mar 12 15:22:57 2004
-***************
-*** 431,436 ****
---- 433,439 ----
- src/uninstal.c \
- src/vim.def \
- src/vim.rc \
-+ src/gvim.exe.mnf \
- src/vim16.def \
- src/vim16.rc \
- src/vimrun.c \
-*** ../vim-6.2.346/src/gvim.exe.mnf Fri Mar 12 15:24:30 2004
---- src/gvim.exe.mnf Wed Mar 10 17:25:22 2004
-***************
-*** 0 ****
---- 1,22 ----
-+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-+ <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
-+ <assemblyIdentity
-+ processorArchitecture="x86"
-+ version="6.2.0.0"
-+ type="win32"
-+ name="Vim"
-+ />
-+ <description>Vi Improved - A Text Editor</description>
-+ <dependency>
-+ <dependentAssembly>
-+ <assemblyIdentity
-+ type="win32"
-+ name="Microsoft.Windows.Common-Controls"
-+ version="6.0.0.0"
-+ publicKeyToken="6595b64144ccf1df"
-+ language="*"
-+ processorArchitecture="x86"
-+ />
-+ </dependentAssembly>
-+ </dependency>
-+ </assembly>
-*** ../vim-6.2.346/src/vim.rc Wed May 14 20:35:14 2003
---- src/vim.rc Fri Mar 12 15:22:40 2004
-***************
-*** 46,51 ****
---- 46,63 ----
- //
- IDB_TEAROFF BITMAP DISCARDABLE "tearoff.bmp"
- IDR_TOOLBAR1 BITMAP DISCARDABLE "tools.bmp"
-+
-+ //
-+ // WinXP theme support
-+ //
-+ #ifndef CREATEPROCESS_MANIFEST_RESOURCE_ID
-+ # define CREATEPROCESS_MANIFEST_RESOURCE_ID 1
-+ #endif
-+ #ifndef RT_MANIFEST
-+ # define RT_MANIFEST 24
-+ #endif
-+
-+ CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "gvim.exe.mnf"
- #endif // FEAT_GUI_W32
-
- //
-*** ../vim-6.2.346/src/version.c Thu Mar 11 21:08:44 2004
---- src/version.c Fri Mar 12 15:23:33 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 347,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-14. You start introducing yourself as "Jim at I-I-Net dot net dot au"
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.348
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.348
-Problem: Win32: "vim c:\dir\(test)" doesn't work, because the 'isfname'
- default value doesn't contain parenthesis.
-Solution: Temporarily add '(' and ')' to 'isfname' when expanding file name
- arguments.
-Files: src/main.c
-
-
-*** ../vim-6.2.347/src/main.c Sun Feb 29 14:45:49 2004
---- src/main.c Fri Mar 12 20:35:03 2004
-***************
-*** 1108,1114 ****
---- 1108,1121 ----
- * Expand wildcards in file names.
- */
- if (!literal)
-+ {
-+ /* Temporarily add '(' and ')' to 'isfname'. These are valid
-+ * filename characters but are excluded from 'isfname' to make
-+ * "gf" work on a file name in parenthesis (e.g.: see vim.h). */
-+ do_cmdline_cmd((char_u *)":set isf+=(,)");
- alist_expand();
-+ do_cmdline_cmd((char_u *)":set isf&");
-+ }
- #endif
- fname = alist_name(&GARGLIST[0]);
- }
-*** ../vim-6.2.347/src/version.c Fri Mar 12 15:26:18 2004
---- src/version.c Fri Mar 12 20:41:01 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 348,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-19. All of your friends have an @ in their names.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.349
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.349
-Problem: Finding a match using 'matchpairs' may cause a crash.
- 'matchpairs' is not used for 'showmatch'.
-Solution: Don't look past the NUL in 'matchpairs'. Use 'matchpairs' for
- 'showmatch'. (Dave Olszewkski)
-Files: src/misc1.c, src/normal.c, src/proto/search.pro, src/search.c
-
-
-*** ../vim-6.2.348/src/misc1.c Mon Mar 8 12:27:39 2004
---- src/misc1.c Fri Mar 12 11:45:19 2004
-***************
-*** 1943,1958 ****
- #ifdef FEAT_MBYTE
- && charlen == 1
- #endif
-! #ifdef FEAT_RIGHTLEFT
-! && ((!(curwin->w_p_rl ^ p_ri)
-! && (c == ')' || c == '}' || c == ']'))
-! || ((curwin->w_p_rl ^ p_ri)
-! && (c == '(' || c == '{' || c == '[')))
-! #else
-! && (c == ')' || c == '}' || c == ']')
-! #endif
-! )
-! showmatch();
-
- #ifdef FEAT_RIGHTLEFT
- if (!p_ri || (State & REPLACE_FLAG))
---- 1943,1950 ----
- #ifdef FEAT_MBYTE
- && charlen == 1
- #endif
-! )
-! showmatch(c);
-
- #ifdef FEAT_RIGHTLEFT
- if (!p_ri || (State & REPLACE_FLAG))
-*** ../vim-6.2.348/src/normal.c Tue Mar 9 19:49:08 2004
---- src/normal.c Fri Mar 12 11:46:51 2004
-***************
-*** 6188,6199 ****
- */
- ptr = ml_get_buf(curbuf, curwin->w_cursor.lnum, TRUE);
- ptr[curwin->w_cursor.col] = cap->nchar;
-! if ( p_sm
-! && msg_silent == 0
-! && (cap->nchar == ')'
-! || cap->nchar == '}'
-! || cap->nchar == ']'))
-! showmatch();
- ++curwin->w_cursor.col;
- }
- #ifdef FEAT_NETBEANS_INTG
---- 6191,6198 ----
- */
- ptr = ml_get_buf(curbuf, curwin->w_cursor.lnum, TRUE);
- ptr[curwin->w_cursor.col] = cap->nchar;
-! if (p_sm && msg_silent == 0)
-! showmatch(cap->nchar);
- ++curwin->w_cursor.col;
- }
- #ifdef FEAT_NETBEANS_INTG
-*** ../vim-6.2.348/src/proto/search.pro Sun Jun 1 12:26:19 2003
---- src/proto/search.pro Fri Mar 12 11:54:07 2004
-***************
-*** 14,20 ****
- int searchc __ARGS((cmdarg_T *cap, int t_cmd));
- pos_T *findmatch __ARGS((oparg_T *oap, int initc));
- pos_T *findmatchlimit __ARGS((oparg_T *oap, int initc, int flags, int maxtravel));
-! void showmatch __ARGS((void));
- int findsent __ARGS((int dir, long count));
- int findpar __ARGS((oparg_T *oap, int dir, long count, int what, int both));
- int startPS __ARGS((linenr_T lnum, int para, int both));
---- 14,20 ----
- int searchc __ARGS((cmdarg_T *cap, int t_cmd));
- pos_T *findmatch __ARGS((oparg_T *oap, int initc));
- pos_T *findmatchlimit __ARGS((oparg_T *oap, int initc, int flags, int maxtravel));
-! void showmatch __ARGS((int c));
- int findsent __ARGS((int dir, long count));
- int findpar __ARGS((oparg_T *oap, int dir, long count, int what, int both));
- int startPS __ARGS((linenr_T lnum, int para, int both));
-*** ../vim-6.2.348/src/search.c Sun Feb 15 13:49:38 2004
---- src/search.c Fri Mar 12 20:48:34 2004
-***************
-*** 1580,1585 ****
---- 1580,1587 ----
- backwards = FALSE;
- break;
- }
-+ if (ptr[1] != ',')
-+ break;
- }
- if (!findc) /* invalid initc! */
- return NULL;
-***************
-*** 2143,2159 ****
- * If there isn't a match, then beep.
- */
- void
-! showmatch()
- {
-! pos_T *lpos, save_cursor;
-! pos_T mpos;
-! colnr_T vcol;
-! long save_so;
-! long save_siso;
- #ifdef CURSOR_SHAPE
-! int save_state;
- #endif
-! colnr_T save_dollar_vcol;
-
- if ((lpos = findmatch(NULL, NUL)) == NULL) /* no match, so beep */
- vim_beep();
---- 2145,2184 ----
- * If there isn't a match, then beep.
- */
- void
-! showmatch(c)
-! int c; /* char to show match for */
- {
-! pos_T *lpos, save_cursor;
-! pos_T mpos;
-! colnr_T vcol;
-! long save_so;
-! long save_siso;
- #ifdef CURSOR_SHAPE
-! int save_state;
-! #endif
-! colnr_T save_dollar_vcol;
-! char_u *p;
-!
-! /*
-! * Only show match for chars in the 'matchpairs' option.
-! */
-! /* 'matchpairs' is "x:y,x:y" */
-! for (p = curbuf->b_p_mps; *p != NUL; p += 2)
-! {
-! #ifdef FEAT_RIGHTLEFT
-! if (*p == c && (curwin->w_p_rl ^ p_ri))
-! break;
-! #endif
-! p += 2;
-! if (*p == c
-! #ifdef FEAT_RIGHTLEFT
-! && !(curwin->w_p_rl ^ p_ri)
- #endif
-! )
-! break;
-! if (p[1] != ',')
-! return;
-! }
-
- if ((lpos = findmatch(NULL, NUL)) == NULL) /* no match, so beep */
- vim_beep();
-*** ../vim-6.2.348/src/version.c Fri Mar 12 20:42:24 2004
---- src/version.c Fri Mar 12 21:09:02 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 349,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-22. You've already visited all the links at Yahoo and you're halfway through
- Lycos.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.350
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.350
-Problem: Not enough info about startup timing.
-Solution: Add a few more TIME_MSG() calls.
-Files: src/main.c
-
-
-*** ../vim-6.2.349/src/main.c Fri Mar 12 20:42:24 2004
---- src/main.c Fri Mar 12 20:35:03 2004
-***************
-*** 1196,1202 ****
---- 1196,1205 ----
- {
- p = (char_u *)getenv("SESSION_MANAGER");
- if (p != NULL && *p != NUL)
-+ {
- xsmp_init();
-+ TIME_MSG("xsmp init");
-+ }
- }
- #endif
-
-***************
-*** 1592,1597 ****
---- 1595,1601 ----
- {
- (void)serverRegisterName(X_DISPLAY, servername);
- vim_free(servername);
-+ TIME_MSG("register server name");
- }
- else
- serverDelayedStartName = servername;
-***************
-*** 1656,1661 ****
---- 1660,1667 ----
- * defined by termcapinit and redifined in .exrc.
- */
- settmode(TMODE_RAW);
-+ TIME_MSG("setting raw mode");
-+
- if (need_wait_return || msg_didany)
- {
- wait_return(TRUE);
-***************
-*** 1663,1668 ****
---- 1669,1676 ----
- }
-
- starttermcap(); /* start termcap if not done by wait_return() */
-+ TIME_MSG("start termcap");
-+
- #ifdef FEAT_MOUSE
- setmouse(); /* may start using the mouse */
- #endif
-*** ../vim-6.2.349/src/version.c Fri Mar 12 21:13:03 2004
---- src/version.c Fri Mar 12 21:16:01 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 350,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-23. You can't call your mother...she doesn't have a modem.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.351 (extra)
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.351
-Problem: Win32: $HOME may be set to %USERPROFILE%.
-Solution: Expand %VAR% at the start of $HOME.
-Files: src/misc1.c
-
-
-*** ../vim-6.2.350/src/misc1.c Fri Mar 12 21:13:03 2004
---- src/misc1.c Fri Mar 12 21:54:05 2004
-***************
-*** 3107,3112 ****
---- 3107,3139 ----
-
- #ifdef WIN3264
- /*
-+ * Weird but true: $HOME may contain an indirect reference to another
-+ * variable, esp. "%USERPROFILE%". Happens when $USERPROFILE isn't set
-+ * when $HOME is being set.
-+ */
-+ if (var != NULL && *var == '%')
-+ {
-+ char_u *p;
-+ char_u *exp;
-+
-+ p = vim_strchr(var + 1, '%');
-+ if (p != NULL)
-+ {
-+ STRNCPY(NameBuff, var + 1, p - (var + 1));
-+ NameBuff[p - (var + 1)] = NUL;
-+ exp = mch_getenv(NameBuff);
-+ if (exp != NULL && *exp != NUL
-+ && STRLEN(exp) + STRLEN(p) < MAXPATHL)
-+ {
-+ sprintf((char *)NameBuff, "%s%s", exp, p + 1);
-+ var = NameBuff;
-+ /* Also set $HOME, it's needed for _viminfo. */
-+ vim_setenv((char_u *)"HOME", NameBuff);
-+ }
-+ }
-+ }
-+
-+ /*
- * Typically, $HOME is not defined on Windows, unless the user has
- * specifically defined it for Vim's sake. However, on Windows NT
- * platforms, $HOMEDRIVE and $HOMEPATH are automatically defined for
-*** ../vim-6.2.350/src/version.c Fri Mar 12 21:16:48 2004
---- src/version.c Fri Mar 12 21:56:38 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 351,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-25. You believe nothing looks sexier than a man in boxer shorts illuminated
- only by a 17" inch svga monitor.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.352
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.352 (after 6.2.335)
-Problem: ":sign texthl=||" does not work.
-Solution: Remove the check for a following command. Give an error for extra
- arguments after "buffer=1".
-Files: src/ex_cmds.c, src/ex_cmds.h
-
-
-*** ../vim-6.2.351/src/ex_cmds.c Sun Feb 29 21:06:13 2004
---- src/ex_cmds.c Sat Mar 13 14:26:18 2004
-***************
-*** 5777,5783 ****
- else if (STRNCMP(arg, "buffer=", 7) == 0)
- {
- arg += 7;
-! buf = buflist_findnr(atoi((char *)arg));
- break;
- }
- else
---- 5777,5785 ----
- else if (STRNCMP(arg, "buffer=", 7) == 0)
- {
- arg += 7;
-! buf = buflist_findnr(getdigits(&arg));
-! if (*skipwhite(arg) != NUL)
-! EMSG(_(e_trailing));
- break;
- }
- else
-*** ../vim-6.2.351/src/ex_cmds.h Tue Mar 9 15:10:47 2004
---- src/ex_cmds.h Sat Mar 13 12:47:09 2004
-***************
-*** 707,713 ****
- EX(CMD_simalt, "simalt", ex_simalt,
- NEEDARG|WORD1|TRLBAR|CMDWIN),
- EX(CMD_sign, "sign", ex_sign,
-! NEEDARG|RANGE|NOTADR|EXTRA|CMDWIN|TRLBAR),
- EX(CMD_silent, "silent", ex_wrongmodifier,
- NEEDARG|EXTRA|BANG|NOTRLCOM|SBOXOK|CMDWIN),
- EX(CMD_sleep, "sleep", ex_sleep,
---- 707,713 ----
- EX(CMD_simalt, "simalt", ex_simalt,
- NEEDARG|WORD1|TRLBAR|CMDWIN),
- EX(CMD_sign, "sign", ex_sign,
-! NEEDARG|RANGE|NOTADR|EXTRA|CMDWIN),
- EX(CMD_silent, "silent", ex_wrongmodifier,
- NEEDARG|EXTRA|BANG|NOTRLCOM|SBOXOK|CMDWIN),
- EX(CMD_sleep, "sleep", ex_sleep,
-*** ../vim-6.2.351/src/version.c Fri Mar 12 21:58:35 2004
---- src/version.c Sat Mar 13 14:23:14 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 352,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-27. You refer to your age as 3.x.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.353 (extra)
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.353 (extra)
-Problem: Win32: Supported server name length is limited. (Paul Bossi)
-Solution: Use MAX_PATH instead of 25.
-Files: src/os_mswin.c
-
-
-*** ../vim-6.2.352/src/os_mswin.c Thu Mar 11 21:03:40 2004
---- src/os_mswin.c Sat Mar 13 16:08:12 2004
-***************
-*** 2528,2534 ****
- enumWindowsGetServer(HWND hwnd, LPARAM lparam)
- {
- struct server_id *id = (struct server_id *)lparam;
-! char server[25];
-
- /* Get the title of the window */
- if (getVimServerName(hwnd, server, sizeof(server)) == 0)
---- 2528,2534 ----
- enumWindowsGetServer(HWND hwnd, LPARAM lparam)
- {
- struct server_id *id = (struct server_id *)lparam;
-! char server[MAX_PATH];
-
- /* Get the title of the window */
- if (getVimServerName(hwnd, server, sizeof(server)) == 0)
-***************
-*** 2549,2555 ****
- enumWindowsGetNames(HWND hwnd, LPARAM lparam)
- {
- garray_T *ga = (garray_T *)lparam;
-! char server[25];
-
- /* Get the title of the window */
- if (getVimServerName(hwnd, server, sizeof(server)) == 0)
---- 2549,2555 ----
- enumWindowsGetNames(HWND hwnd, LPARAM lparam)
- {
- garray_T *ga = (garray_T *)lparam;
-! char server[MAX_PATH];
-
- /* Get the title of the window */
- if (getVimServerName(hwnd, server, sizeof(server)) == 0)
-*** ../vim-6.2.352/src/version.c Sat Mar 13 14:28:50 2004
---- src/version.c Sat Mar 13 16:13:03 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 353,
- /**/
-
---
-Bypasses are devices that allow some people to dash from point A to
-point B very fast while other people dash from point B to point A very
-fast. People living at point C, being a point directly in between, are
-often given to wonder what's so great about point A that so many people
-from point B are so keen to get there and what's so great about point B
-that so many people from point A are so keen to get there. They often
-wish that people would just once and for all work out where the hell
-they wanted to be.
- -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.354 (extra)
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.354 (extra)
-Problem: Win32: When the mouse pointer is on a tear-off menu it is hidden
- when typing but is not redisplayed when moved. (Markx Hackmann)
-Solution: Handle the pointer move event for the tear-off menu window.
-Files: src/gui_w32.c
-
-
-*** ../vim-6.2.353/src/gui_w32.c Tue Mar 9 10:48:23 2004
---- src/gui_w32.c Sun Mar 14 14:33:29 2004
-***************
-*** 2829,2834 ****
---- 2830,2838 ----
- {
- if (message == WM_INITDIALOG)
- return (TRUE);
-+
-+ /* May show the mouse pointer again. */
-+ HandleMouseHide(message, lParam);
-
- if (message == WM_COMMAND)
- {
-*** ../vim-6.2.353/src/version.c Sat Mar 13 16:13:48 2004
---- src/version.c Sun Mar 14 14:36:28 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 354,
- /**/
-
---
-How To Keep A Healthy Level Of Insanity:
-5. Put decaf in the coffee maker for 3 weeks. Once everyone has gotten
- over their caffeine addictions, switch to expresso.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.355
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.355 (after 6.2.303)
-Problem: When 'encoding' is a double-byte encoding different from the
- current locale, the width of characters is not correct.
- Possible failure and memory leak when using iconv, Unicode
- digraphs and 'encoding' is not "utf-8".
-Solution: Use iconv() to discover the actual width of characters.
- Add the "vc_fail" field to vimconv_T.
- When converting a digraph, init the conversion type to NONE and
- cleanup afterwards.
-Files: src/digraph.c, src/mbyte.c, src/structs.h
-
-
-*** ../vim-6.2.354/src/digraph.c Mon Mar 1 17:01:39 2004
---- src/digraph.c Sun Mar 14 16:16:25 2004
-***************
-*** 2116,2145 ****
- {
- char_u buf[6], *to;
- vimconv_T vc;
-- int utflen;
-
- /*
- * Convert the Unicode digraph to 'encoding'.
- */
- i = utf_char2bytes(retval, buf);
- if (convert_setup(&vc, (char_u *)"utf-8", p_enc) == OK)
- {
-! utflen = i;
- to = string_convert(&vc, buf, &i);
- if (to != NULL)
- {
-! /* Checking for invalid values isn't very easy. Internal
-! * latin1 conversion will return char 0xbf in case it can't be
-! * converted */
-! if ((i > 1 && !has_mbyte)
-! || (vc.vc_type == CONV_TO_LATIN1 && utflen != 1
-! && to[0] == 0xbf))
-! /* assume invalid value */
-! retval = 0;
-! else
-! retval = (*mb_ptr2char)(to);
- vim_free(to);
- }
- }
- }
- # endif
---- 2116,2138 ----
- {
- char_u buf[6], *to;
- vimconv_T vc;
-
- /*
- * Convert the Unicode digraph to 'encoding'.
- */
- i = utf_char2bytes(retval, buf);
-+ retval = 0;
-+ vc.vc_type = CONV_NONE;
- if (convert_setup(&vc, (char_u *)"utf-8", p_enc) == OK)
- {
-! vc.vc_fail = TRUE;
- to = string_convert(&vc, buf, &i);
- if (to != NULL)
- {
-! retval = (*mb_ptr2char)(to);
- vim_free(to);
- }
-+ (void)convert_setup(&vc, NULL, NULL);
- }
- }
- # endif
-*** ../vim-6.2.354/src/mbyte.c Mon Mar 8 15:12:09 2004
---- src/mbyte.c Sun Mar 14 20:00:01 2004
-***************
-*** 408,413 ****
---- 408,419 ----
- int idx;
- int n;
- int enc_dbcs_new = 0;
-+ #if defined(USE_ICONV) && !defined(WIN3264) && !defined(WIN32UNIX) \
-+ && !defined(MACOS)
-+ # define LEN_FROM_CONV
-+ vimconv_T vimconv;
-+ char_u *p;
-+ #endif
-
- if (p_enc == NULL)
- {
-***************
-*** 555,560 ****
---- 561,582 ----
- /*
- * Fill the mb_bytelen_tab[] for MB_BYTE2LEN().
- */
-+ #ifdef LEN_FROM_CONV
-+ /* When 'encoding' is different from the current locale mblen() won't
-+ * work. Use conversion to "utf-8" instead. */
-+ vimconv.vc_type = CONV_NONE;
-+ if (enc_dbcs)
-+ {
-+ p = enc_locale();
-+ if (p == NULL || STRCMP(p, p_enc) != 0)
-+ {
-+ convert_setup(&vimconv, p_enc, (char_u *)"utf-8");
-+ vimconv.vc_fail = TRUE;
-+ }
-+ vim_free(p);
-+ }
-+ #endif
-+
- for (i = 0; i < 256; ++i)
- {
- /* Our own function to reliably check the length of UTF-8 characters,
-***************
-*** 589,610 ****
- n = 1;
- else
- {
-- /*
-- * mblen() should return -1 for invalid (means the leading
-- * multibyte) character. However there are some platform
-- * where mblen() returns 0 for invalid character. Therefore,
-- * following condition includes 0.
-- */
- buf[0] = i;
- buf[1] = 0;
-! #if 0
-! if (i >= 0x80)/* TESTING DBCS: 'encoding' != current locale */
-! #else
-! if (mblen(buf, (size_t)1) <= 0)
-! #endif
-! n = 2;
- else
-! n = 1;
- }
- # endif
- #endif
---- 611,648 ----
- n = 1;
- else
- {
- buf[0] = i;
- buf[1] = 0;
-! #ifdef LEN_FROM_CONV
-! if (vimconv.vc_type != CONV_NONE)
-! {
-! /*
-! * string_convert() should fail when converting the first
-! * byte of a double-byte character.
-! */
-! p = string_convert(&vimconv, (char_u *)buf, NULL);
-! if (p != NULL)
-! {
-! vim_free(p);
-! n = 1;
-! }
-! else
-! n = 2;
-! }
- else
-! #endif
-! {
-! /*
-! * mblen() should return -1 for invalid (means the leading
-! * multibyte) character. However there are some platforms
-! * where mblen() returns 0 for invalid character.
-! * Therefore, following condition includes 0.
-! */
-! if (mblen(buf, (size_t)1) <= 0)
-! n = 2;
-! else
-! n = 1;
-! }
- }
- # endif
- #endif
-***************
-*** 613,618 ****
---- 651,660 ----
- mb_bytelen_tab[i] = n;
- }
-
-+ #ifdef LEN_FROM_CONV
-+ convert_setup(&vimconv, NULL, NULL);
-+ #endif
-+
- /* The cell width depends on the type of multi-byte characters. */
- (void)init_chartab();
-
-***************
-*** 2824,2830 ****
-
- # if defined(USE_ICONV) || defined(PROTO)
-
-! static char_u *iconv_string __ARGS((iconv_t fd, char_u *str, int slen));
-
- /*
- * Call iconv_open() with a check if iconv() works properly (there are broken
---- 2866,2872 ----
-
- # if defined(USE_ICONV) || defined(PROTO)
-
-! static char_u *iconv_string __ARGS((vimconv_T *vcp, char_u *str, int slen));
-
- /*
- * Call iconv_open() with a check if iconv() works properly (there are broken
-***************
-*** 2885,2892 ****
- * Returns the converted string in allocated memory. NULL for an error.
- */
- static char_u *
-! iconv_string(fd, str, slen)
-! iconv_t fd;
- char_u *str;
- int slen;
- {
---- 2927,2934 ----
- * Returns the converted string in allocated memory. NULL for an error.
- */
- static char_u *
-! iconv_string(vcp, str, slen)
-! vimconv_T *vcp;
- char_u *str;
- int slen;
- {
-***************
-*** 2922,2928 ****
- tolen = len - done - 2;
- /* Avoid a warning for systems with a wrong iconv() prototype by
- * casting the second argument to void *. */
-! if (iconv(fd, (void *)&from, &fromlen, &to, &tolen) != (size_t)-1)
- {
- /* Finished, append a NUL. */
- *to = NUL;
---- 2964,2971 ----
- tolen = len - done - 2;
- /* Avoid a warning for systems with a wrong iconv() prototype by
- * casting the second argument to void *. */
-! if (iconv(vcp->vc_fd, (void *)&from, &fromlen, &to, &tolen)
-! != (size_t)-1)
- {
- /* Finished, append a NUL. */
- *to = NUL;
-***************
-*** 2930,2936 ****
- }
- /* Check both ICONV_EILSEQ and EILSEQ, because the dynamically loaded
- * iconv library may use one of them. */
-! if (ICONV_ERRNO == ICONV_EILSEQ || ICONV_ERRNO == EILSEQ)
- {
- /* Can't convert: insert a '?' and skip a character. This assumes
- * conversion from 'encoding' to something else. In other
---- 2973,2980 ----
- }
- /* Check both ICONV_EILSEQ and EILSEQ, because the dynamically loaded
- * iconv library may use one of them. */
-! if (!vcp->vc_fail && (ICONV_ERRNO == ICONV_EILSEQ
-! || ICONV_ERRNO == EILSEQ))
- {
- /* Can't convert: insert a '?' and skip a character. This assumes
- * conversion from 'encoding' to something else. In other
-***************
-*** 5209,5214 ****
---- 5253,5259 ----
- # endif
- vcp->vc_type = CONV_NONE;
- vcp->vc_factor = 1;
-+ vcp->vc_fail = FALSE;
-
- /* No conversion when one of the names is empty or they are equal. */
- if (from == NULL || *from == NUL || to == NULL || *to == NUL
-***************
-*** 5304,5319 ****
- }
-
- #if defined(MACOS_X)
-! static char_u *mac_string_convert __ARGS((char_u *ptr, int len, int *lenp, CFStringEncoding from, CFStringEncoding to));
-
- /*
- * A Mac version of string_convert() for special cases.
- */
- static char_u *
-! mac_string_convert(ptr, len, lenp, from, to)
- char_u *ptr;
- int len;
- int *lenp;
- CFStringEncoding from;
- CFStringEncoding to;
- {
---- 5349,5365 ----
- }
-
- #if defined(MACOS_X)
-! static char_u *mac_string_convert __ARGS((char_u *ptr, int len, int *lenp, int fail_on_error, CFStringEncoding from, CFStringEncoding to));
-
- /*
- * A Mac version of string_convert() for special cases.
- */
- static char_u *
-! mac_string_convert(ptr, len, lenp, fail_on_error, from, to)
- char_u *ptr;
- int len;
- int *lenp;
-+ int fail_on_error;
- CFStringEncoding from;
- CFStringEncoding to;
- {
-***************
-*** 5337,5342 ****
---- 5383,5394 ----
- if (!CFStringGetCString(cfstr, retval, buflen, to))
- {
- CFRelease(cfstr);
-+ if (fail_on_error)
-+ {
-+ vim_free(retval);
-+ return NULL;
-+ }
-+
- /* conversion failed for the whole string, but maybe it will work
- * for each character */
- for (d = retval, in = 0, out = 0; in < len && out < buflen - 1;)
-***************
-*** 5384,5389 ****
---- 5436,5442 ----
- * Convert text "ptr[*lenp]" according to "vcp".
- * Returns the result in allocated memory and sets "*lenp".
- * When "lenp" is NULL, use NUL terminated strings.
-+ * Illegal chars are often changed to "?", unless vcp->vc_fail is set.
- * When something goes wrong, NULL is returned and "*lenp" is unchanged.
- */
- char_u *
-***************
-*** 5445,5450 ****
---- 5498,5508 ----
- {
- if (c < 0x100)
- *d++ = c;
-+ else if (vcp->vc_fail)
-+ {
-+ vim_free(retval);
-+ return NULL;
-+ }
- else
- {
- *d++ = 0xbf;
-***************
-*** 5462,5486 ****
-
- # ifdef MACOS_X
- case CONV_MAC_LATIN1:
-! retval = mac_string_convert(ptr, len, lenp,
- kCFStringEncodingMacRoman,
- kCFStringEncodingISOLatin1);
- break;
-
- case CONV_LATIN1_MAC:
-! retval = mac_string_convert(ptr, len, lenp,
- kCFStringEncodingISOLatin1,
- kCFStringEncodingMacRoman);
- break;
-
- case CONV_MAC_UTF8:
-! retval = mac_string_convert(ptr, len, lenp,
- kCFStringEncodingMacRoman,
- kCFStringEncodingUTF8);
- break;
-
- case CONV_UTF8_MAC:
-! retval = mac_string_convert(ptr, len, lenp,
- kCFStringEncodingUTF8,
- kCFStringEncodingMacRoman);
- break;
---- 5520,5544 ----
-
- # ifdef MACOS_X
- case CONV_MAC_LATIN1:
-! retval = mac_string_convert(ptr, len, lenp, vcp->vc_fail,
- kCFStringEncodingMacRoman,
- kCFStringEncodingISOLatin1);
- break;
-
- case CONV_LATIN1_MAC:
-! retval = mac_string_convert(ptr, len, lenp, vcp->vc_fail,
- kCFStringEncodingISOLatin1,
- kCFStringEncodingMacRoman);
- break;
-
- case CONV_MAC_UTF8:
-! retval = mac_string_convert(ptr, len, lenp, vcp->vc_fail,
- kCFStringEncodingMacRoman,
- kCFStringEncodingUTF8);
- break;
-
- case CONV_UTF8_MAC:
-! retval = mac_string_convert(ptr, len, lenp, vcp->vc_fail,
- kCFStringEncodingUTF8,
- kCFStringEncodingMacRoman);
- break;
-***************
-*** 5488,5494 ****
-
- # ifdef USE_ICONV
- case CONV_ICONV: /* conversion with output_conv.vc_fd */
-! retval = iconv_string(vcp->vc_fd, ptr, len);
- if (retval != NULL && lenp != NULL)
- *lenp = (int)STRLEN(retval);
- break;
---- 5546,5552 ----
-
- # ifdef USE_ICONV
- case CONV_ICONV: /* conversion with output_conv.vc_fd */
-! retval = iconv_string(vcp, ptr, len);
- if (retval != NULL && lenp != NULL)
- *lenp = (int)STRLEN(retval);
- break;
-*** ../vim-6.2.354/src/structs.h Tue Mar 9 12:41:56 2004
---- src/structs.h Sun Mar 14 15:46:06 2004
-***************
-*** 817,822 ****
---- 817,823 ----
- # ifdef USE_ICONV
- iconv_t vc_fd; /* for CONV_ICONV */
- # endif
-+ int vc_fail; /* fail for invalid char, don't use '?' */
- } vimconv_T;
-
- /*
-*** ../vim-6.2.354/src/version.c Sun Mar 14 14:37:09 2004
---- src/version.c Sun Mar 14 20:06:12 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 355,
- /**/
-
---
-How To Keep A Healthy Level Of Insanity:
-8. Don't use any punctuation marks.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.356
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.356
-Problem: When using a double-byte 'encoding' and 'selection' is
- "exclusive", "vy" only yanks the first byte of a double-byte
- character. (Xiangjiang Ma)
-Solution: Correct the column in unadjust_for_sel() to position on the first
- byte, always include the trailing byte of the selected text.
-Files: src/normal.c
-
-
-*** ../vim-6.2.355/src/normal.c Fri Mar 12 21:13:03 2004
---- src/normal.c Sun Mar 14 17:42:30 2004
-***************
-*** 1700,1713 ****
- #endif
-
- #ifdef FEAT_MBYTE
-! /* Include the trailing byte of a multi-byte char. Don't do it when
-! * VIsual_active is TRUE and 'sel' is "exclusive", the position has
-! * already been moved to the trailing byte by adjust_for_sel() then. */
-! if (has_mbyte && oap->inclusive
-! # ifdef FEAT_VISUAL
-! && (!oap->is_VIsual || *p_sel != 'e')
-! # endif
-! )
- {
- int l;
-
---- 1700,1707 ----
- #endif
-
- #ifdef FEAT_MBYTE
-! /* Include the trailing byte of a multi-byte char. */
-! if (has_mbyte && oap->inclusive)
- {
- int l;
-
-***************
-*** 1733,1739 ****
- );
- /*
- * For delete, change and yank, it's an error to operate on an
-! * empty region, when 'E' inclucded in 'cpoptions' (Vi compatible).
- */
- empty_region_error = (oap->empty
- && vim_strchr(p_cpo, CPO_EMPTYREGION) != NULL);
---- 1727,1733 ----
- );
- /*
- * For delete, change and yank, it's an error to operate on an
-! * empty region, when 'E' included in 'cpoptions' (Vi compatible).
- */
- empty_region_error = (oap->empty
- && vim_strchr(p_cpo, CPO_EMPTYREGION) != NULL);
-***************
-*** 7738,7744 ****
---- 7745,7756 ----
- else
- #endif
- if (pp->col > 0)
-+ {
- --pp->col;
-+ #ifdef FEAT_MBYTE
-+ mb_adjustpos(pp);
-+ #endif
-+ }
- else if (pp->lnum > 1)
- {
- --pp->lnum;
-*** ../vim-6.2.355/src/version.c Sun Mar 14 20:12:26 2004
---- src/version.c Sun Mar 14 20:15:01 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 356,
- /**/
-
---
-How To Keep A Healthy Level Of Insanity:
-9. As often as possible, skip rather than walk.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.357
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.357 (after 6.2.321)
-Problem: Memory leak when resizing the Vim window.
-Solution: Free the LineWraps array.
-Files: src/screen.c
-
-
-*** ../vim-6.2.356/src/screen.c Sat Mar 6 21:13:14 2004
---- src/screen.c Mon Mar 15 10:38:09 2004
-***************
-*** 6574,6579 ****
---- 6574,6580 ----
- #endif
- vim_free(ScreenAttrs);
- vim_free(LineOffset);
-+ vim_free(LineWraps);
- ScreenLines = new_ScreenLines;
- #ifdef FEAT_MBYTE
- ScreenLinesUC = new_ScreenLinesUC;
-*** ../vim-6.2.356/src/version.c Sun Mar 14 20:16:56 2004
---- src/version.c Mon Mar 15 12:25:53 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 357,
- /**/
-
---
-Now it is such a bizarrely improbable coincidence that anything as
-mind-bogglingly useful as the Babel fish could have evolved purely by chance
-that some thinkers have chosen to see it as a final and clinching proof of the
-NON-existence of God.
-The argument goes something like this: 'I refuse to prove that I exist,' says
-God, 'for proof denies faith, and without faith I am nothing.'
-'But,' says Man, 'the Babel fish is a dead giveaway, isn't it? It could not
-have evolved by chance. It proves you exist, and so therefore, by your own
-arguments, you don't. QED.'
-'Oh dear,' says God, 'I hadn't thought of that,' and promptly vanishes in a
-puff of logic.
-'Oh, that was easy,' says Man, and for an encore goes on to prove that black
-is white and gets himself killed on the next pedestrian crossing.
- -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.358
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.358 (after 6.2.299)
-Problem: Memory leak when using ":help" and the language doesn't match.
-Solution: Free the array with matching tags.
-Files: src/ex_cmds.c
-
-
-*** ../vim-6.2.357/src/ex_cmds.c Sat Mar 13 14:28:50 2004
---- src/ex_cmds.c Mon Mar 15 10:51:09 2004
-***************
-*** 4627,4632 ****
---- 4627,4634 ----
- else
- #endif
- EMSG2(_("E149: Sorry, no help for %s"), arg);
-+ if (n != FAIL)
-+ FreeWild(num_matches, matches);
- return;
- }
-
-*** ../vim-6.2.357/src/version.c Mon Mar 15 12:26:21 2004
---- src/version.c Mon Mar 15 12:27:39 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 358,
- /**/
-
---
-"So this is it," said Arthur, "we are going to die."
-"Yes," said Ford, "except...no! Wait a minute!" He suddenly lunged across
-the chamber at something behind Arthur's line of vision. "What's this
-switch?" he cried.
-"What? Where?" cried Arthur, twisting around.
-"No, I was only fooling," said Ford, "we are going to die after all."
- -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.359
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.359 (after 6.2.352)
-Problem: Compiler warning for long to int type cast.
-Solution: Add explicit type cast.
-Files: src/ex_cmds.c
-
-
-*** ../vim-6.2.358/src/ex_cmds.c Mon Mar 15 12:28:44 2004
---- src/ex_cmds.c Mon Mar 15 10:51:09 2004
-***************
-*** 5779,5785 ****
- else if (STRNCMP(arg, "buffer=", 7) == 0)
- {
- arg += 7;
-! buf = buflist_findnr(getdigits(&arg));
- if (*skipwhite(arg) != NUL)
- EMSG(_(e_trailing));
- break;
---- 5779,5785 ----
- else if (STRNCMP(arg, "buffer=", 7) == 0)
- {
- arg += 7;
-! buf = buflist_findnr((int)getdigits(&arg));
- if (*skipwhite(arg) != NUL)
- EMSG(_(e_trailing));
- break;
-*** ../vim-6.2.358/src/version.c Mon Mar 15 12:28:44 2004
---- src/version.c Mon Mar 15 12:32:42 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 359,
- /**/
-
---
-I am also told that there is a logical proof out there somewhere
-that demonstrates that there is no task which duct tape cannot handle.
- -- Paul Brannan
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.360
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.360
-Problem: "100|" in an empty line results in a ruler "1,0-100". (Pavol
- Juhas)
-Solution: Recompute w_virtcol if the target column was not reached.
-Files: src/misc2.c
-
-
-*** ../vim-6.2.359/src/misc2.c Mon Feb 2 13:00:19 2004
---- src/misc2.c Sun Mar 14 11:45:50 2004
-***************
-*** 105,111 ****
- {
- int rc = getvpos(&curwin->w_cursor, wcol);
-
-! if (wcol == MAXCOL)
- curwin->w_valid &= ~VALID_VIRTCOL;
- else
- {
---- 105,111 ----
- {
- int rc = getvpos(&curwin->w_cursor, wcol);
-
-! if (wcol == MAXCOL || rc == FAIL)
- curwin->w_valid &= ~VALID_VIRTCOL;
- else
- {
-*** ../vim-6.2.359/src/version.c Mon Mar 15 12:33:19 2004
---- src/version.c Mon Mar 15 12:43:08 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 360,
- /**/
-
---
-I'm not familiar with this proof, but I'm aware of a significant
-following of toddlers who believe that peanut butter is the solution
-to all of life's problems... -- Tim Hammerquist
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.361 (extra)
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.361 (extra)
-Problem: Win32: Run gvim, ":set go-=m", use Alt-Tab, keep Alt pressed while
- pressing Esc, then release Alt: Cursor disappears and typing a key
- causes a beep. (Hari Krishna Dara)
-Solution: Don't ignore the WM_SYSKEYUP event when the menu is disabled.
-Files: src/gui_w32.c
-
-
-*** ../vim-6.2.360/src/gui_w32.c Sun Mar 14 14:37:09 2004
---- src/gui_w32.c Mon Mar 15 17:18:17 2004
-***************
-*** 661,674 ****
-
- case WM_SYSKEYUP:
- #ifdef FEAT_MENU
-! /* Only when menu is active, ALT key is used for that. */
-! if (gui.menu_is_active)
-! {
-! return DefWindowProc(hwnd, uMsg, wParam, lParam);
-! }
-! else
- #endif
-- return 0;
-
- case WM_SIZING: /* HANDLE_MSG doesn't seem to handle this one */
- return _DuringSizing(hwnd, (UINT)wParam, (LPRECT)lParam);
---- 661,674 ----
-
- case WM_SYSKEYUP:
- #ifdef FEAT_MENU
-! /* Thus used to be done only when menu is active: ALT key is used for
-! * that. But that caused problems when menu is disabled and using
-! * Alt-Tab-Esc: get into a strange state where no mouse-moved events
-! * are received, mouse pointer remains hidden. */
-! return DefWindowProc(hwnd, uMsg, wParam, lParam);
-! #else
-! return 0;
- #endif
-
- case WM_SIZING: /* HANDLE_MSG doesn't seem to handle this one */
- return _DuringSizing(hwnd, (UINT)wParam, (LPRECT)lParam);
-*** ../vim-6.2.360/src/version.c Mon Mar 15 12:44:12 2004
---- src/version.c Mon Mar 15 17:16:45 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 361,
- /**/
-
---
-Apparently, 1 in 5 people in the world are Chinese. And there are 5
-people in my family, so it must be one of them. It's either my mum
-or my dad. Or my older brother Colin. Or my younger brother
-Ho-Cha-Chu. But I think it's Colin.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.362 (extra)
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.362 (extra, after 6.2.347)
-Problem: Win32: The manifest causes Gvim not to work. (Dave Roberts)
-Solution: Change "x86" to "X86". (Serge Pirotte)
-Files: src/gvim.exe.mnf
-
-
-*** ../vim-6.2.361/src/gvim.exe.mnf Fri Mar 12 15:26:18 2004
---- src/gvim.exe.mnf Tue Mar 16 12:05:07 2004
-***************
-*** 1,7 ****
- <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
- <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
- <assemblyIdentity
-! processorArchitecture="x86"
- version="6.2.0.0"
- type="win32"
- name="Vim"
---- 1,7 ----
- <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
- <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
- <assemblyIdentity
-! processorArchitecture="X86"
- version="6.2.0.0"
- type="win32"
- name="Vim"
-***************
-*** 15,21 ****
- version="6.0.0.0"
- publicKeyToken="6595b64144ccf1df"
- language="*"
-! processorArchitecture="x86"
- />
- </dependentAssembly>
- </dependency>
---- 15,21 ----
- version="6.0.0.0"
- publicKeyToken="6595b64144ccf1df"
- language="*"
-! processorArchitecture="X86"
- />
- </dependentAssembly>
- </dependency>
-*** ../vim-6.2.361/src/version.c Mon Mar 15 17:18:54 2004
---- src/version.c Tue Mar 16 14:13:06 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 362,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-33. You name your children Eudora, Mozilla and Dotcom.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.363
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.363
-Problem: In an empty file with 'showmode' off, "i" doesn't change the ruler
- from "0-1" to "1". Typing "x<BS>" does show "1", but then <Esc>
- doesn't make it "0-1" again. Same problem for ruler in
- statusline. (Andrew Pimlott)
-Solution: Remember the "empty line" flag with Insert mode and'ed to it.
-Files: src/screen.c
-
-
-*** ../vim-6.2.362/src/screen.c Mon Mar 15 12:26:21 2004
---- src/screen.c Tue Mar 16 15:35:17 2004
-***************
-*** 8207,8215 ****
- #endif
-
- /*
-! * Check if the line is empty (will show "0-1").
- */
-! if (*ml_get_buf(wp->w_buffer, wp->w_cursor.lnum, FALSE) == NUL)
- empty_line = TRUE;
-
- /*
---- 8207,8216 ----
- #endif
-
- /*
-! * Check if not in Insert mode and the line is empty (will show "0-1").
- */
-! if (!(State & INSERT)
-! && *ml_get_buf(wp->w_buffer, wp->w_cursor.lnum, FALSE) == NUL)
- empty_line = TRUE;
-
- /*
-***************
-*** 8271,8280 ****
- ? 0L
- : (long)(wp->w_cursor.lnum));
- col_print(buffer + STRLEN(buffer),
-! !(State & INSERT) && empty_line
-! ? 0
-! : (int)wp->w_cursor.col + 1,
-! (int)virtcol + 1);
-
- /*
- * Add a "50%" if there is room for it.
---- 8272,8279 ----
- ? 0L
- : (long)(wp->w_cursor.lnum));
- col_print(buffer + STRLEN(buffer),
-! empty_line ? 0 : (int)wp->w_cursor.col + 1,
-! (int)virtcol + 1);
-
- /*
- * Add a "50%" if there is room for it.
-*** ../vim-6.2.362/src/version.c Tue Mar 16 14:13:41 2004
---- src/version.c Tue Mar 16 15:34:00 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 363,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-35. Your husband tells you he's had the beard for 2 months.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.364
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.364
-Problem: HTML version of the documentation doesn't mention the encoding,
- which is a problem for mbyte.txt.
-Solution: Adjust the awk script. (Ilya Sher)
-Files: runtime/doc/makehtml.awk
-
-
-*** ../vim-6.2.363/runtime/doc/makehtml.awk Sun Sep 2 14:38:29 2001
---- runtime/doc/makehtml.awk Tue Mar 16 15:56:26 2004
-***************
-*** 119,125 ****
-
- NR == 1 { nf=split(FILENAME,f,".")
- print "<HTML>";
-! print "<HEAD><TITLE>Vim documentation: " f[1] "</TITLE></HEAD>";
- print "<BODY BGCOLOR=\"#ffffff\">";
- print "<H1>Vim documentation: " f[1] "</H1>";
- print "<A NAME=\"top\"></A>";
---- 119,136 ----
-
- NR == 1 { nf=split(FILENAME,f,".")
- print "<HTML>";
-!
-! print "<HEAD>"
-! if ( FILENAME == "mbyte.txt" ) {
-! # needs utf-8 as uses many languages
-! print "<META HTTP-EQUIV=\"Content-type\" content=\"text/html; charset=UTF-8\">";
-! } else {
-! # common case - Latin1
-! print "<META HTTP-EQUIV=\"Content-type\" content=\"text/html; charset=ISO-8859-1\">";
-! }
-! print "<TITLE>Vim documentation: " f[1] "</TITLE>";
-! print "</HEAD>";
-!
- print "<BODY BGCOLOR=\"#ffffff\">";
- print "<H1>Vim documentation: " f[1] "</H1>";
- print "<A NAME=\"top\"></A>";
-*** ../vim-6.2.363/src/version.c Tue Mar 16 15:35:40 2004
---- src/version.c Tue Mar 16 16:06:05 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 364,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-37. You start looking for hot HTML addresses in public restrooms.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.365
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.365
-Problem: The configure checks for Perl and Python may add compile and link
- arguments that break building Vim.
-Solution: Do a sanity check: try building with the arguments.
-Files: src/auto/configure, src/configure.in
-
-
-*** ../vim-6.2.364/src/auto/configure Tue Feb 24 22:17:28 2004
---- src/auto/configure Tue Mar 16 17:59:01 2004
-***************
-*** 1599,1623 ****
-
- perlcppflags=`$vi_cv_path_perl -Mlib=$srcdir -MExtUtils::Embed \
- -e 'ccflags;perl_inc;print"\n"' | sed -e 's/-fno[^ ]*//'`
-! if test "X$perlcppflags" != "X"; then
-! PERL_CFLAGS="$perlcppflags"
-! fi
-! PERL_LIBS=`cd $srcdir; $vi_cv_path_perl -MExtUtils::Embed -e 'ldopts' | \
- sed -e '/Warning/d' -e '/Note (probably harmless)/d' \
- -e 's/-bE:perl.exp//' -e 's/-lc //'`
--
- perlldflags=`cd $srcdir; $vi_cv_path_perl -MExtUtils::Embed \
- -e 'ccdlflags' | sed -e 's/-bE:perl.exp//'`
-! if test "X$perlldflags" != "X"; then
-! LDFLAGS="$perlldflags $LDFLAGS"
-! fi
-! PERL_SRC="auto/if_perl.c if_perlsfio.c"
-! PERL_OBJ="objects/if_perl.o objects/if_perlsfio.o"
-! PERL_PRO="if_perl.pro if_perlsfio.pro"
-! cat >> confdefs.h <<\EOF
- #define FEAT_PERL 1
- EOF
-
- fi
- else
- echo "$ac_t"">>> too old; need Perl version 5.003_01 or later <<<" 1>&6
---- 1599,1655 ----
-
- perlcppflags=`$vi_cv_path_perl -Mlib=$srcdir -MExtUtils::Embed \
- -e 'ccflags;perl_inc;print"\n"' | sed -e 's/-fno[^ ]*//'`
-! perllibs=`cd $srcdir; $vi_cv_path_perl -MExtUtils::Embed -e 'ldopts' | \
- sed -e '/Warning/d' -e '/Note (probably harmless)/d' \
- -e 's/-bE:perl.exp//' -e 's/-lc //'`
- perlldflags=`cd $srcdir; $vi_cv_path_perl -MExtUtils::Embed \
- -e 'ccdlflags' | sed -e 's/-bE:perl.exp//'`
-!
-! echo $ac_n "checking if compile and link flags for Perl are sane""... $ac_c" 1>&6
-! echo "configure:1610: checking if compile and link flags for Perl are sane" >&5
-! cflags_save=$CFLAGS
-! libs_save=$LIBS
-! ldflags_save=$LDFLAGS
-! CFLAGS="$CFLAGS $perlcppflags"
-! LIBS="$LIBS $perllibs"
-! LDFLAGS="$perlldflags $LDFLAGS"
-! cat > conftest.$ac_ext <<EOF
-! #line 1618 "configure"
-! #include "confdefs.h"
-!
-! int main() {
-!
-! ; return 0; }
-! EOF
-! if { (eval echo configure:1625: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-! rm -rf conftest*
-! echo "$ac_t""yes" 1>&6; perl_ok=yes
-! else
-! echo "configure: failed program was:" >&5
-! cat conftest.$ac_ext >&5
-! rm -rf conftest*
-! echo "$ac_t""no: PERL DISABLED" 1>&6; perl_ok=no
-! fi
-! rm -f conftest*
-! CFLAGS=$cflags_save
-! LIBS=$libs_save
-! LDFLAGS=$ldflags_save
-! if test $perl_ok = yes; then
-! if test "X$perlcppflags" != "X"; then
-! PERL_CFLAGS="$perlcppflags"
-! fi
-! if test "X$perlldflags" != "X"; then
-! LDFLAGS="$perlldflags $LDFLAGS"
-! fi
-! PERL_LIBS=$perllibs
-! PERL_SRC="auto/if_perl.c if_perlsfio.c"
-! PERL_OBJ="objects/if_perl.o objects/if_perlsfio.o"
-! PERL_PRO="if_perl.pro if_perlsfio.pro"
-! cat >> confdefs.h <<\EOF
- #define FEAT_PERL 1
- EOF
-
-+ fi
- fi
- else
- echo "$ac_t"">>> too old; need Perl version 5.003_01 or later <<<" 1>&6
-***************
-*** 1845,1871 ****
- thread_lib="-pthread"
- fi
- fi
- if test -n "$threadsafe_flag"; then
- cflags_save=$CFLAGS
-- libs_save=$LIBS
- CFLAGS="$CFLAGS $threadsafe_flag"
- LIBS="$LIBS $thread_lib"
- cat > conftest.$ac_ext <<EOF
-! #line 1716 "configure"
- #include "confdefs.h"
-
- int main() {
-
- ; return 0; }
- EOF
-! if { (eval echo configure:1723: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- echo "$ac_t""yes" 1>&6; PYTHON_CFLAGS="$PYTHON_CFLAGS $threadsafe_flag"
- else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
-! echo "$ac_t""no" 1>&6; LIBS=$libs_save
-
- fi
- rm -f conftest*
---- 1878,1904 ----
- thread_lib="-pthread"
- fi
- fi
-+ libs_save_old=$LIBS
- if test -n "$threadsafe_flag"; then
- cflags_save=$CFLAGS
- CFLAGS="$CFLAGS $threadsafe_flag"
- LIBS="$LIBS $thread_lib"
- cat > conftest.$ac_ext <<EOF
-! #line 1888 "configure"
- #include "confdefs.h"
-
- int main() {
-
- ; return 0; }
- EOF
-! if { (eval echo configure:1895: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- echo "$ac_t""yes" 1>&6; PYTHON_CFLAGS="$PYTHON_CFLAGS $threadsafe_flag"
- else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
-! echo "$ac_t""no" 1>&6; LIBS=$libs_save_old
-
- fi
- rm -f conftest*
-***************
-*** 1874,1883 ****
- echo "$ac_t""no" 1>&6
- fi
-
-! cat >> confdefs.h <<\EOF
- #define FEAT_PYTHON 1
- EOF
-
-
- fi
- else
---- 1907,1950 ----
- echo "$ac_t""no" 1>&6
- fi
-
-! echo $ac_n "checking if compile and link flags for Python are sane""... $ac_c" 1>&6
-! echo "configure:1912: checking if compile and link flags for Python are sane" >&5
-! cflags_save=$CFLAGS
-! libs_save=$LIBS
-! CFLAGS="$CFLAGS $PYTHON_CFLAGS"
-! LIBS="$LIBS $PYTHON_LIBS"
-! cat > conftest.$ac_ext <<EOF
-! #line 1918 "configure"
-! #include "confdefs.h"
-!
-! int main() {
-!
-! ; return 0; }
-! EOF
-! if { (eval echo configure:1925: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-! rm -rf conftest*
-! echo "$ac_t""yes" 1>&6; python_ok=yes
-! else
-! echo "configure: failed program was:" >&5
-! cat conftest.$ac_ext >&5
-! rm -rf conftest*
-! echo "$ac_t""no: PYTHON DISABLED" 1>&6; python_ok=no
-! fi
-! rm -f conftest*
-! CFLAGS=$cflags_save
-! LIBS=$libs_save
-! if test $python_ok = yes; then
-! cat >> confdefs.h <<\EOF
- #define FEAT_PYTHON 1
- EOF
-
-+ else
-+ LIBS=$libs_save_old
-+ PYTHON_SRC=
-+ PYTHON_OBJ=
-+ PYTHON_LIBS=
-+ PYTHON_CFLAGS=
-+ fi
-
- fi
- else
-***************
-*** 8252,8263 ****
- s%@compiledby@%$compiledby%g
- s%@vi_cv_path_perl@%$vi_cv_path_perl%g
- s%@vi_cv_perllib@%$vi_cv_perllib%g
-- s%@PERL_LIBS@%$PERL_LIBS%g
- s%@shrpenv@%$shrpenv%g
- s%@PERL_SRC@%$PERL_SRC%g
- s%@PERL_OBJ@%$PERL_OBJ%g
- s%@PERL_PRO@%$PERL_PRO%g
- s%@PERL_CFLAGS@%$PERL_CFLAGS%g
- s%@vi_cv_path_python@%$vi_cv_path_python%g
- s%@PYTHON_CONFDIR@%$PYTHON_CONFDIR%g
- s%@PYTHON_LIBS@%$PYTHON_LIBS%g
---- 8322,8333 ----
- s%@compiledby@%$compiledby%g
- s%@vi_cv_path_perl@%$vi_cv_path_perl%g
- s%@vi_cv_perllib@%$vi_cv_perllib%g
- s%@shrpenv@%$shrpenv%g
- s%@PERL_SRC@%$PERL_SRC%g
- s%@PERL_OBJ@%$PERL_OBJ%g
- s%@PERL_PRO@%$PERL_PRO%g
- s%@PERL_CFLAGS@%$PERL_CFLAGS%g
-+ s%@PERL_LIBS@%$PERL_LIBS%g
- s%@vi_cv_path_python@%$vi_cv_path_python%g
- s%@PYTHON_CONFDIR@%$PYTHON_CONFDIR%g
- s%@PYTHON_LIBS@%$PYTHON_LIBS%g
-*** ../vim-6.2.364/src/configure.in Tue Feb 24 22:17:28 2004
---- src/configure.in Tue Mar 16 17:51:30 2004
-***************
-*** 331,355 ****
- dnl Remove "-fno-something", it breaks using cproto.
- perlcppflags=`$vi_cv_path_perl -Mlib=$srcdir -MExtUtils::Embed \
- -e 'ccflags;perl_inc;print"\n"' | sed -e 's/-fno[[^ ]]*//'`
-- if test "X$perlcppflags" != "X"; then
-- PERL_CFLAGS="$perlcppflags"
-- fi
- dnl Remove "-lc", it breaks on FreeBSD when using "-pthread".
-! PERL_LIBS=`cd $srcdir; $vi_cv_path_perl -MExtUtils::Embed -e 'ldopts' | \
- sed -e '/Warning/d' -e '/Note (probably harmless)/d' \
- -e 's/-bE:perl.exp//' -e 's/-lc //'`
-- AC_SUBST(PERL_LIBS)
- dnl Don't add perl lib to $LIBS: if it's not in LD_LIBRARY_PATH
- dnl a test in configure may fail because of that.
- perlldflags=`cd $srcdir; $vi_cv_path_perl -MExtUtils::Embed \
- -e 'ccdlflags' | sed -e 's/-bE:perl.exp//'`
-! if test "X$perlldflags" != "X"; then
-! LDFLAGS="$perlldflags $LDFLAGS"
- fi
-- PERL_SRC="auto/if_perl.c if_perlsfio.c"
-- PERL_OBJ="objects/if_perl.o objects/if_perlsfio.o"
-- PERL_PRO="if_perl.pro if_perlsfio.pro"
-- AC_DEFINE(FEAT_PERL)
- fi
- else
- AC_MSG_RESULT(>>> too old; need Perl version 5.003_01 or later <<<)
---- 331,373 ----
- dnl Remove "-fno-something", it breaks using cproto.
- perlcppflags=`$vi_cv_path_perl -Mlib=$srcdir -MExtUtils::Embed \
- -e 'ccflags;perl_inc;print"\n"' | sed -e 's/-fno[[^ ]]*//'`
- dnl Remove "-lc", it breaks on FreeBSD when using "-pthread".
-! perllibs=`cd $srcdir; $vi_cv_path_perl -MExtUtils::Embed -e 'ldopts' | \
- sed -e '/Warning/d' -e '/Note (probably harmless)/d' \
- -e 's/-bE:perl.exp//' -e 's/-lc //'`
- dnl Don't add perl lib to $LIBS: if it's not in LD_LIBRARY_PATH
- dnl a test in configure may fail because of that.
- perlldflags=`cd $srcdir; $vi_cv_path_perl -MExtUtils::Embed \
- -e 'ccdlflags' | sed -e 's/-bE:perl.exp//'`
-!
-! dnl check that compiling a simple program still works with the flags
-! dnl added for Perl.
-! AC_MSG_CHECKING([if compile and link flags for Perl are sane])
-! cflags_save=$CFLAGS
-! libs_save=$LIBS
-! ldflags_save=$LDFLAGS
-! CFLAGS="$CFLAGS $perlcppflags"
-! LIBS="$LIBS $perllibs"
-! LDFLAGS="$perlldflags $LDFLAGS"
-! AC_TRY_LINK(,[ ],
-! AC_MSG_RESULT(yes); perl_ok=yes,
-! AC_MSG_RESULT(no: PERL DISABLED); perl_ok=no)
-! CFLAGS=$cflags_save
-! LIBS=$libs_save
-! LDFLAGS=$ldflags_save
-! if test $perl_ok = yes; then
-! if test "X$perlcppflags" != "X"; then
-! PERL_CFLAGS="$perlcppflags"
-! fi
-! if test "X$perlldflags" != "X"; then
-! LDFLAGS="$perlldflags $LDFLAGS"
-! fi
-! PERL_LIBS=$perllibs
-! PERL_SRC="auto/if_perl.c if_perlsfio.c"
-! PERL_OBJ="objects/if_perl.o objects/if_perlsfio.o"
-! PERL_PRO="if_perl.pro if_perlsfio.pro"
-! AC_DEFINE(FEAT_PERL)
- fi
- fi
- else
- AC_MSG_RESULT(>>> too old; need Perl version 5.003_01 or later <<<)
-***************
-*** 383,388 ****
---- 401,407 ----
- AC_SUBST(PERL_OBJ)
- AC_SUBST(PERL_PRO)
- AC_SUBST(PERL_CFLAGS)
-+ AC_SUBST(PERL_LIBS)
-
- AC_MSG_CHECKING(--enable-pythoninterp argument)
- AC_ARG_ENABLE(pythoninterp,
-***************
-*** 517,537 ****
- thread_lib="-pthread"
- fi
- fi
- if test -n "$threadsafe_flag"; then
- cflags_save=$CFLAGS
-- libs_save=$LIBS
- CFLAGS="$CFLAGS $threadsafe_flag"
- LIBS="$LIBS $thread_lib"
- AC_TRY_LINK(,[ ],
- AC_MSG_RESULT(yes); PYTHON_CFLAGS="$PYTHON_CFLAGS $threadsafe_flag",
-! AC_MSG_RESULT(no); LIBS=$libs_save
- )
- CFLAGS=$cflags_save
- else
- AC_MSG_RESULT(no)
- fi
-
-! AC_DEFINE(FEAT_PYTHON)
-
- fi
- else
---- 536,576 ----
- thread_lib="-pthread"
- fi
- fi
-+ libs_save_old=$LIBS
- if test -n "$threadsafe_flag"; then
- cflags_save=$CFLAGS
- CFLAGS="$CFLAGS $threadsafe_flag"
- LIBS="$LIBS $thread_lib"
- AC_TRY_LINK(,[ ],
- AC_MSG_RESULT(yes); PYTHON_CFLAGS="$PYTHON_CFLAGS $threadsafe_flag",
-! AC_MSG_RESULT(no); LIBS=$libs_save_old
- )
- CFLAGS=$cflags_save
- else
- AC_MSG_RESULT(no)
- fi
-
-! dnl check that compiling a simple program still works with the flags
-! dnl added for Python.
-! AC_MSG_CHECKING([if compile and link flags for Python are sane])
-! cflags_save=$CFLAGS
-! libs_save=$LIBS
-! CFLAGS="$CFLAGS $PYTHON_CFLAGS"
-! LIBS="$LIBS $PYTHON_LIBS"
-! AC_TRY_LINK(,[ ],
-! AC_MSG_RESULT(yes); python_ok=yes,
-! AC_MSG_RESULT(no: PYTHON DISABLED); python_ok=no)
-! CFLAGS=$cflags_save
-! LIBS=$libs_save
-! if test $python_ok = yes; then
-! AC_DEFINE(FEAT_PYTHON)
-! else
-! LIBS=$libs_save_old
-! PYTHON_SRC=
-! PYTHON_OBJ=
-! PYTHON_LIBS=
-! PYTHON_CFLAGS=
-! fi
-
- fi
- else
-*** ../vim-6.2.364/src/version.c Tue Mar 16 16:06:45 2004
---- src/version.c Tue Mar 16 17:58:51 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 365,
- /**/
-
---
-Everyone has a photographic memory. Some don't have film.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.366
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.366
-Problem: When the GUI can't start because no valid font is found, there is
- no error message. (Ugen)
-Solution: Add an error message.
-Files: src/gui.c
-
-
-*** ../vim-6.2.365/src/gui.c Sat Mar 6 21:06:59 2004
---- src/gui.c Tue Mar 16 19:19:35 2004
-***************
-*** 467,473 ****
---- 467,476 ----
- #endif
- gui_init_font(*p_guifont == NUL ? hl_get_font_name()
- : p_guifont, FALSE) == FAIL)
-+ {
-+ EMSG(_("E665: Cannot start GUI, no valid font found"));
- goto error2;
-+ }
- #ifdef FEAT_MBYTE
- if (gui_get_wide_font() == FAIL)
- EMSG(_("E231: 'guifontwide' invalid"));
-*** ../vim-6.2.365/src/version.c Tue Mar 16 18:03:23 2004
---- src/version.c Tue Mar 16 20:52:49 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 366,
- /**/
-
---
-I wonder how much deeper the ocean would be without sponges.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.367
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.367
-Problem: Building the help tags file while installing may fail if there is
- another Vim in $PATH.
-Solution: Specify the just installed Vim executable. (Gordon Prieur)
-Files: src/Makefile
-
-
-*** ../vim-6.2.366/src/Makefile Tue Mar 2 14:15:55 2004
---- src/Makefile Tue Mar 16 18:29:19 2004
-***************
-*** 1655,1661 ****
- chmod $(MANMOD) $(DEST_MAN)/$(EVIMNAME).1
- @echo generating help tags
- # Generate the help tags with ":helptags" to handle all languages.
-! -@cd $(HELPSOURCE); VIMEXE=$(VIMTARGET) $(MAKE) vimtags
- cd $(HELPSOURCE); \
- files=`ls *.txt tags`; \
- files="$$files `ls *.??x tags-?? 2>/dev/null || true`"; \
---- 1671,1677 ----
- chmod $(MANMOD) $(DEST_MAN)/$(EVIMNAME).1
- @echo generating help tags
- # Generate the help tags with ":helptags" to handle all languages.
-! -@cd $(HELPSOURCE); $(MAKE) VIMEXE=$(DEST_BIN)/$(VIMTARGET) vimtags
- cd $(HELPSOURCE); \
- files=`ls *.txt tags`; \
- files="$$files `ls *.??x tags-?? 2>/dev/null || true`"; \
-*** ../vim-6.2.366/src/version.c Tue Mar 16 20:54:00 2004
---- src/version.c Tue Mar 16 22:46:40 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 367,
- /**/
-
---
-Portable Computer: A device invented to force businessmen
-to work at home, on vacation, and on business trips.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.368
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.368
-Problem: When 'autochdir' is set, closing a window doesn't change to the
- directory of the new current window. (Salman Halim)
-Solution: Handle 'autochdir' always when a window becomes the current one.
-Files: src/window.c
-
-
-*** ../vim-6.2.367/src/window.c Sun Feb 15 13:47:16 2004
---- src/window.c Wed Mar 17 09:51:14 2004
-***************
-*** 2871,2883 ****
- int undo_sync;
- {
- win_enter_ext(wp, undo_sync, FALSE);
-- #if defined(FEAT_NETBEANS_INTG) || defined(FEAT_SUN_WORKSHOP)
-- /* Change directories when the acd option is set on and after
-- * switching windows. */
-- if (p_acd && curbuf->b_ffname != NULL
-- && vim_chdirfile(curbuf->b_ffname) == OK)
-- shorten_fnames(TRUE);
-- #endif
- }
-
- /*
---- 2871,2876 ----
-***************
-*** 2994,2999 ****
---- 2987,3000 ----
-
- #ifdef FEAT_MOUSE
- setmouse(); /* in case jumped to/from help buffer */
-+ #endif
-+
-+ #if defined(FEAT_NETBEANS_INTG) || defined(FEAT_SUN_WORKSHOP)
-+ /* Change directories when the acd option is set on and after
-+ * switching windows. */
-+ if (p_acd && curbuf->b_ffname != NULL
-+ && vim_chdirfile(curbuf->b_ffname) == OK)
-+ shorten_fnames(TRUE);
- #endif
- }
-
-*** ../vim-6.2.367/src/version.c Tue Mar 16 22:48:43 2004
---- src/version.c Wed Mar 17 09:53:43 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 368,
- /**/
-
---
-It is hard to understand how a cemetery raised its burial
-cost and blamed it on the cost of living.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.369
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.369
-Problem: Various memory leaks: when using globpath(), when searching for
- help tags files, when defining a function inside a function, when
- giving an error message through an exception, for the final "."
- line in ":append", in expression "cond ? a : b" that fails and for
- missing ")" in an expression. Using NULL pointer when adding
- first user command and for pointer computations with regexp.
- (tests by Dominique Pelle)
-Solution: Fix the leaks by freeing the allocated memory. Don't use the
- array of user commands when there are no entries. Use a macro
- instead of a function call for saving and restoring regexp states.
-Files: src/eval.c, src/ex_cmds.c, src/ex_docmd.c, src/ex_getln.c,
- src/misc2.c, src/regexp.c, src/screen.c, src/tag.c
-
-
-*** ../vim-6.2.368/src/eval.c Fri Feb 20 22:11:01 2004
---- src/eval.c Wed Mar 17 11:38:47 2004
-***************
-*** 1690,1695 ****
---- 1690,1697 ----
- if ((*arg)[0] != ':')
- {
- EMSG(_("E109: Missing ':' after '?'"));
-+ if (evaluate && result)
-+ clear_var(retvar);
- return FAIL;
- }
-
-***************
-*** 1698,1704 ****
---- 1700,1710 ----
- */
- *arg = skipwhite(*arg + 1);
- if (eval1(arg, &var2, evaluate && !result) == FAIL) /* recursive! */
-+ {
-+ if (evaluate && result)
-+ clear_var(retvar);
- return FAIL;
-+ }
- if (evaluate && !result)
- *retvar = var2;
- }
-***************
-*** 1734,1743 ****
- /*
- * Repeat until there is no following "||".
- */
- while ((*arg)[0] == '|' && (*arg)[1] == '|')
- {
-- result = FALSE;
-- first = TRUE;
- if (evaluate && first)
- {
- if (get_var_number(retvar) != 0)
---- 1740,1749 ----
- /*
- * Repeat until there is no following "||".
- */
-+ first = TRUE;
-+ result = FALSE;
- while ((*arg)[0] == '|' && (*arg)[1] == '|')
- {
- if (evaluate && first)
- {
- if (get_var_number(retvar) != 0)
-***************
-*** 1800,1809 ****
- /*
- * Repeat until there is no following "&&".
- */
- while ((*arg)[0] == '&' && (*arg)[1] == '&')
- {
-- result = TRUE;
-- first = TRUE;
- if (evaluate && first)
- {
- if (get_var_number(retvar) == 0)
---- 1806,1815 ----
- /*
- * Repeat until there is no following "&&".
- */
-+ first = TRUE;
-+ result = TRUE;
- while ((*arg)[0] == '&' && (*arg)[1] == '&')
- {
- if (evaluate && first)
- {
- if (get_var_number(retvar) == 0)
-***************
-*** 2306,2311 ****
---- 2312,2318 ----
- else if (ret == OK)
- {
- EMSG(_("E110: Missing ')'"));
-+ clear_var(retvar);
- ret = FAIL;
- }
- break;
-***************
-*** 2331,2337 ****
---- 2338,2348 ----
- * aborting on error, or when an interrupt occurred or
- * an exception was thrown but not caught. */
- if (aborting())
-+ {
-+ if (ret == OK)
-+ clear_var(retvar);
- ret = FAIL;
-+ }
- }
- else if (evaluate)
- ret = get_var_var(s, len, retvar);
-***************
-*** 2364,2369 ****
---- 2375,2381 ----
- {
- EMSG(_("E111: Missing ']'"));
- clear_var(retvar);
-+ clear_var(&var2);
- return FAIL;
- }
-
-***************
-*** 6929,6941 ****
- int slen;
-
- p = get_var_string(&argvars[0]);
- n = get_var_number(&argvars[1]);
- if (argvars[2].var_type != VAR_UNKNOWN)
- len = get_var_number(&argvars[2]);
- else
-! len = (int)STRLEN(p) - n;
-
-- slen = (int)STRLEN(p);
- /*
- * Only return the overlap between the specified part and the actual
- * string.
---- 6941,6954 ----
- int slen;
-
- p = get_var_string(&argvars[0]);
-+ slen = (int)STRLEN(p);
-+
- n = get_var_number(&argvars[1]);
- if (argvars[2].var_type != VAR_UNKNOWN)
- len = get_var_number(&argvars[2]);
- else
-! len = slen - n; /* default len: all bytes that are available. */
-
- /*
- * Only return the overlap between the specified part and the actual
- * string.
-***************
-*** 8920,8926 ****
- p += eval_fname_script(p);
- if (ASCII_ISALPHA(*p))
- {
-! (void)trans_function_name(&p, TRUE, FALSE);
- if (*skipwhite(p) == '(')
- {
- ++nesting;
---- 8933,8939 ----
- p += eval_fname_script(p);
- if (ASCII_ISALPHA(*p))
- {
-! vim_free(trans_function_name(&p, TRUE, FALSE));
- if (*skipwhite(p) == '(')
- {
- ++nesting;
-*** ../vim-6.2.368/src/ex_cmds.c Mon Mar 15 12:33:19 2004
---- src/ex_cmds.c Wed Mar 17 10:20:59 2004
-***************
-*** 3238,3248 ****
- #endif
- NUL, eap->cookie, 0);
- lines_left = Rows - 1;
-! if (theline == NULL || (theline[0] == '.' && theline[1] == NUL))
- break;
-
-- if (!did_undo && u_save(lnum, lnum + 1) == FAIL)
-- break;
- did_undo = TRUE;
- ml_append(lnum, theline, (colnr_T)0, FALSE);
- appended_lines_mark(lnum, 1L);
---- 3238,3250 ----
- #endif
- NUL, eap->cookie, 0);
- lines_left = Rows - 1;
-! if (theline == NULL || (theline[0] == '.' && theline[1] == NUL)
-! || (!did_undo && u_save(lnum, lnum + 1) == FAIL))
-! {
-! vim_free(theline);
- break;
-+ }
-
- did_undo = TRUE;
- ml_append(lnum, theline, (colnr_T)0, FALSE);
- appended_lines_mark(lnum, 1L);
-*** ../vim-6.2.368/src/ex_docmd.c Mon Mar 8 15:22:09 2004
---- src/ex_docmd.c Tue Mar 16 12:00:49 2004
-***************
-*** 1261,1266 ****
---- 1261,1267 ----
- emsg(p);
- vim_free(p);
- }
-+ vim_free(sourcing_name);
- sourcing_name = saved_sourcing_name;
- sourcing_lnum = saved_sourcing_lnum;
- }
-***************
-*** 2650,2659 ****
- gap = &curbuf->b_ucmds;
- for (;;)
- {
-! cmd = USER_CMD_GA(gap, 0);
-!
-! for (j = 0; j < gap->ga_len; ++j, ++cmd)
- {
- cp = eap->cmd;
- np = cmd->uc_name;
- k = 0;
---- 2649,2657 ----
- gap = &curbuf->b_ucmds;
- for (;;)
- {
-! for (j = 0; j < gap->ga_len; ++j)
- {
-+ cmd = USER_CMD_GA(gap, j);
- cp = eap->cmd;
- np = cmd->uc_name;
- k = 0;
-***************
-*** 4579,4585 ****
- char_u *compl_arg;
- int force;
- {
-! ucmd_T *cmd;
- char_u *p;
- int i;
- int cmp = 1;
---- 4577,4583 ----
- char_u *compl_arg;
- int force;
- {
-! ucmd_T *cmd = NULL;
- char_u *p;
- int i;
- int cmp = 1;
-***************
-*** 4607,4619 ****
- else
- gap = &ucmds;
-
-! /* Search for the command */
-! cmd = USER_CMD_GA(gap, 0);
-! i = 0;
-! while (i < gap->ga_len)
- {
-! size_t len = STRLEN(cmd->uc_name);
-
- cmp = STRNCMP(name, cmd->uc_name, name_len);
- if (cmp == 0)
- {
---- 4605,4617 ----
- else
- gap = &ucmds;
-
-! /* Search for the command in the already defined commands. */
-! for (i = 0; i < gap->ga_len; ++i)
- {
-! size_t len;
-
-+ cmd = USER_CMD_GA(gap, i);
-+ len = STRLEN(cmd->uc_name);
- cmp = STRNCMP(name, cmd->uc_name, name_len);
- if (cmp == 0)
- {
-***************
-*** 4639,4647 ****
- /* Stop as soon as we pass the name to add */
- if (cmp < 0)
- break;
--
-- ++cmd;
-- ++i;
- }
-
- /* Extend the array unless we're replacing an existing command */
---- 4637,4642 ----
-***************
-*** 5124,5143 ****
- exarg_T *eap;
- {
- int i = 0;
-! ucmd_T *cmd;
- int cmp = -1;
- garray_T *gap;
-
- gap = &curbuf->b_ucmds;
- for (;;)
- {
-- cmd = USER_CMD_GA(gap, 0);
- for (i = 0; i < gap->ga_len; ++i)
- {
- cmp = STRCMP(eap->arg, cmd->uc_name);
- if (cmp <= 0)
- break;
-- ++cmd;
- }
- if (gap == &ucmds || cmp == 0)
- break;
---- 5119,5137 ----
- exarg_T *eap;
- {
- int i = 0;
-! ucmd_T *cmd = NULL;
- int cmp = -1;
- garray_T *gap;
-
- gap = &curbuf->b_ucmds;
- for (;;)
- {
- for (i = 0; i < gap->ga_len; ++i)
- {
-+ cmd = USER_CMD_GA(gap, i);
- cmp = STRCMP(eap->arg, cmd->uc_name);
- if (cmp <= 0)
- break;
- }
- if (gap == &ucmds || cmp == 0)
- break;
-*** ../vim-6.2.368/src/ex_getln.c Sun Feb 29 21:06:13 2004
---- src/ex_getln.c Tue Mar 16 10:41:32 2004
-***************
-*** 2048,2055 ****
- redrawcmd_preedit()
- {
- if ((State & CMDLINE)
-! && xic != NULL && im_get_status() && !p_imdisable
-! && preedit_start_col != MAXCOL)
- {
- int cmdpos = 0;
- int cmdspos;
---- 2048,2057 ----
- redrawcmd_preedit()
- {
- if ((State & CMDLINE)
-! && xic != NULL
-! && im_get_status()
-! && !p_imdisable
-! && preedit_start_col != MAXCOL)
- {
- int cmdpos = 0;
- int cmdspos;
-***************
-*** 4057,4062 ****
---- 4059,4065 ----
- ga.ga_len += len;
- ga.ga_room -= len;
- }
-+ FreeWild(num_p, p);
- }
- }
- }
-*** ../vim-6.2.368/src/misc2.c Mon Mar 15 12:44:12 2004
---- src/misc2.c Tue Mar 16 11:07:16 2004
-***************
-*** 1500,1506 ****
- ga_init(gap);
- }
-
-- #if defined(FEAT_EVAL) || defined(PROTO)
- /*
- * Clear a growing array that contains a list of strings.
- */
---- 1500,1505 ----
-***************
-*** 1514,1520 ****
- vim_free(((char_u **)(gap->ga_data))[i]);
- ga_clear(gap);
- }
-- #endif
-
- /*
- * Initialize a growing array. Don't forget to set ga_itemsize and
---- 1513,1518 ----
-*** ../vim-6.2.368/src/regexp.c Sun Feb 15 13:49:38 2004
---- src/regexp.c Tue Mar 16 11:34:06 2004
-***************
-*** 2611,2618 ****
- static void reg_save __ARGS((regsave_T *save));
- static void reg_restore __ARGS((regsave_T *save));
- static int reg_save_equal __ARGS((regsave_T *save));
-! static void save_se __ARGS((save_se_T *savep, lpos_T *posp, char_u **pp));
-! static void restore_se __ARGS((save_se_T *savep, lpos_T *posp, char_u **pp));
- static int re_num_cmp __ARGS((long_u val, char_u *scan));
- static int regmatch __ARGS((char_u *prog));
- static int regrepeat __ARGS((char_u *p, long maxcount));
---- 2611,2630 ----
- static void reg_save __ARGS((regsave_T *save));
- static void reg_restore __ARGS((regsave_T *save));
- static int reg_save_equal __ARGS((regsave_T *save));
-! static void save_se_multi __ARGS((save_se_T *savep, lpos_T *posp));
-! static void save_se_one __ARGS((save_se_T *savep, char_u **pp));
-!
-! /* Save the sub-expressions before attempting a match. */
-! #define save_se(savep, posp, pp) \
-! REG_MULTI ? save_se_multi((savep), (posp)) : save_se_one((savep), (pp))
-!
-! /* After a failed match restore the sub-expressions. */
-! #define restore_se(savep, posp, pp) { \
-! if (REG_MULTI) \
-! *(posp) = (savep)->se_u.pos; \
-! else \
-! *(pp) = (savep)->se_u.ptr; }
-!
- static int re_num_cmp __ARGS((long_u val, char_u *scan));
- static int regmatch __ARGS((char_u *prog));
- static int regrepeat __ARGS((char_u *p, long maxcount));
-***************
-*** 4747,4786 ****
- * Tentatively set the sub-expression start to the current position (after
- * calling regmatch() they will have changed). Need to save the existing
- * values for when there is no match.
-! * Use pointer or position, depending on REG_MULTI.
- */
- static void
-! save_se(savep, posp, pp)
- save_se_T *savep;
- lpos_T *posp;
-- char_u **pp;
- {
-! if (REG_MULTI)
-! {
-! savep->se_u.pos = *posp;
-! posp->lnum = reglnum;
-! posp->col = (colnr_T)(reginput - regline);
-! }
-! else
-! {
-! savep->se_u.ptr = *pp;
-! *pp = reginput;
-! }
- }
-
-- /*
-- * We were wrong, restore the sub-expressions.
-- */
- static void
-! restore_se(savep, posp, pp)
- save_se_T *savep;
-- lpos_T *posp;
- char_u **pp;
- {
-! if (REG_MULTI)
-! *posp = savep->se_u.pos;
-! else
-! *pp = savep->se_u.ptr;
- }
-
- /*
---- 4759,4784 ----
- * Tentatively set the sub-expression start to the current position (after
- * calling regmatch() they will have changed). Need to save the existing
- * values for when there is no match.
-! * Use se_save() to use pointer (save_se_multi()) or position (save_se_one()),
-! * depending on REG_MULTI.
- */
- static void
-! save_se_multi(savep, posp)
- save_se_T *savep;
- lpos_T *posp;
- {
-! savep->se_u.pos = *posp;
-! posp->lnum = reglnum;
-! posp->col = (colnr_T)(reginput - regline);
- }
-
- static void
-! save_se_one(savep, pp)
- save_se_T *savep;
- char_u **pp;
- {
-! savep->se_u.ptr = *pp;
-! *pp = reginput;
- }
-
- /*
-*** ../vim-6.2.368/src/screen.c Tue Mar 16 15:35:40 2004
---- src/screen.c Wed Mar 17 12:40:59 2004
-***************
-*** 1599,1604 ****
---- 1599,1613 ----
- wp->w_lines_valid = wp->w_height;
- for (i = wp->w_lines_valid; i - j >= idx; --i)
- wp->w_lines[i] = wp->w_lines[i - j];
-+
-+ /* The w_lines[] entries for inserted lines are
-+ * now invalid, but wl_size may be used above.
-+ * Reset to zero. */
-+ while (i >= idx)
-+ {
-+ wp->w_lines[i].wl_size = 0;
-+ wp->w_lines[i--].wl_valid = FALSE;
-+ }
- }
- }
- }
-*** ../vim-6.2.368/src/tag.c Sun Feb 29 21:06:13 2004
---- src/tag.c Tue Mar 16 11:06:16 2004
-***************
-*** 2226,2232 ****
- * For a help window find "doc/tags" and "doc/tags-??" in all
- * directories in 'runtimepath'.
- */
-! ga_clear(&tag_fnames);
- ga_init2(&tag_fnames, sizeof(char_u *), 10);
- do_in_runtimepath((char_u *)
- #ifdef FEAT_MULTI_LANG
---- 2226,2232 ----
- * For a help window find "doc/tags" and "doc/tags-??" in all
- * directories in 'runtimepath'.
- */
-! ga_clear_strings(&tag_fnames);
- ga_init2(&tag_fnames, sizeof(char_u *), 10);
- do_in_runtimepath((char_u *)
- #ifdef FEAT_MULTI_LANG
-*** ../vim-6.2.368/src/version.c Wed Mar 17 09:54:22 2004
---- src/version.c Wed Mar 17 13:04:59 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 369,
- /**/
-
---
-I started out with nothing, and I still have most of it.
- -- Michael Davis -- "Tonight Show"
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.370
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.370 (extra, after 6.2.341)
-Problem: Win32: When the path to diff.exe contains a space and using the
- vimrc generated by the install program, diff mode may not work.
- (Alejandro Lopez-Valencia)
-Solution: Do not use double quotes for arguments that do not have a space.
-Files: src/dosinst.c
-
-
-*** ../vim-6.2.369/src/dosinst.c Thu Mar 11 20:46:51 2004
---- src/dosinst.c Tue Mar 16 12:59:30 2004
-***************
-*** 1177,1196 ****
- fprintf(fd, " let opt = ''\n");
- fprintf(fd, " if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif\n");
- fprintf(fd, " if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif\n");
-! fprintf(fd, " silent execute '!");
- p = strchr(installdir, ' ');
- if (p != NULL)
- {
-! /* The path has a space. Put a double quote just before the space
-! * and at the end of the command. Putting quotes around the whole
-! * thing doesn't work. */
- *p = NUL;
-! fprintf(fd, "%s\" %s\\diff\"", installdir, p + 1);
- *p = ' ';
- }
- else
-! fprintf(fd, "%s\\diff", installdir);
-! fprintf(fd, " -a ' . opt . '\"' . v:fname_in . '\" \"' . v:fname_new . '\" > \"' . v:fname_out . '\"'\n");
- fprintf(fd, "endfunction\n");
- fprintf(fd, "\n");
- }
---- 1177,1207 ----
- fprintf(fd, " let opt = ''\n");
- fprintf(fd, " if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif\n");
- fprintf(fd, " if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif\n");
-! /* Use quotes only when needed, they may cause trouble. */
-! fprintf(fd, " let arg1 = v:fname_in\n");
-! fprintf(fd, " if arg1 =~ ' ' | let arg1 = '\"' . arg1 . '\"' | endif\n");
-! fprintf(fd, " let arg2 = v:fname_new\n");
-! fprintf(fd, " if arg2 =~ ' ' | let arg2 = '\"' . arg2 . '\"' | endif\n");
-! fprintf(fd, " let arg3 = v:fname_out\n");
-! fprintf(fd, " if arg3 =~ ' ' | let arg3 = '\"' . arg3 . '\"' | endif\n");
- p = strchr(installdir, ' ');
- if (p != NULL)
- {
-! /* The path has a space. When using cmd.exe (Win NT/2000/XP) put
-! * quotes around the whole command and around the diff command.
-! * Otherwise put a double quote just before the space and at the
-! * end of the command. Putting quotes around the whole thing
-! * doesn't work on Win 95/98/ME. This is mostly guessed! */
-! fprintf(fd, " if &sh =~ '\\<cmd'\n");
-! fprintf(fd, " silent execute '!\"\"%s\\diff\" -a ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . '\"'\n", installdir);
-! fprintf(fd, " else\n");
- *p = NUL;
-! fprintf(fd, " silent execute '!%s\" %s\\diff\" -a ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3\n", installdir, p + 1);
- *p = ' ';
-+ fprintf(fd, " endif\n");
- }
- else
-! fprintf(fd, " silent execute '!%s\\diff -a ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3\n", installdir);
- fprintf(fd, "endfunction\n");
- fprintf(fd, "\n");
- }
-*** ../vim-6.2.369/src/version.c Wed Mar 17 14:08:56 2004
---- src/version.c Wed Mar 17 15:16:56 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 370,
- /**/
-
---
-Light travels faster than sound. This is why some people
-appear bright until you hear them speak
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.371
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.371
-Problem: When 'virtualedit' is set and there is a Tab before the next "x",
- "dtx" does not delete the whole Tab. (Ken Hashishi)
-Solution: Move the cursor to the last position of the Tab. Also for
- "df<Tab>".
-Files: src/normal.c
-
-
-*** ../vim-6.2.370/src/normal.c Sun Mar 14 20:16:56 2004
---- src/normal.c Sun Mar 14 17:42:30 2004
-***************
-*** 5544,5550 ****
- {
- curwin->w_set_curswant = TRUE;
- #ifdef FEAT_VIRTUALEDIT
-! curwin->w_cursor.coladd = 0;
- #endif
- #ifdef FEAT_VISUAL
- adjust_for_sel(cap);
---- 5547,5563 ----
- {
- curwin->w_set_curswant = TRUE;
- #ifdef FEAT_VIRTUALEDIT
-! /* Include a Tab for "tx" and for "dfx". */
-! if (gchar_cursor() == TAB && virtual_active() && cap->arg == FORWARD
-! && (t_cmd || cap->oap->op_type != OP_NOP))
-! {
-! colnr_T scol, ecol;
-!
-! getvcol(curwin, &curwin->w_cursor, &scol, NULL, &ecol);
-! curwin->w_cursor.coladd = ecol - scol;
-! }
-! else
-! curwin->w_cursor.coladd = 0;
- #endif
- #ifdef FEAT_VISUAL
- adjust_for_sel(cap);
-*** ../vim-6.2.370/src/version.c Wed Mar 17 15:17:46 2004
---- src/version.c Wed Mar 17 15:26:01 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 371,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-39. You move into a new house and decide to Netscape before you landscape.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.372
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.372
-Problem: When using balloon evaluation, no value is displayed for members
- of structures and items of an array.
-Solution: Include "->", "." and "[*]" in the expression.
-Files: src/gui_beval.c, src/normal.c, src/vim.h
-
-
-*** ../vim-6.2.371/src/gui_beval.c Sun Oct 12 16:42:14 2003
---- src/gui_beval.c Wed Mar 17 16:11:56 2004
-***************
-*** 283,289 ****
- /* Find the word under the cursor. */
- ++emsg_off;
- len = find_ident_at_pos(wp, lnum, (colnr_T)col, &lbuf,
-! FIND_IDENT + FIND_STRING);
- --emsg_off;
- if (len == 0)
- return FAIL;
---- 283,289 ----
- /* Find the word under the cursor. */
- ++emsg_off;
- len = find_ident_at_pos(wp, lnum, (colnr_T)col, &lbuf,
-! FIND_IDENT + FIND_STRING + FIND_EVAL);
- --emsg_off;
- if (len == 0)
- return FAIL;
-*** ../vim-6.2.371/src/normal.c Wed Mar 17 15:27:57 2004
---- src/normal.c Wed Mar 17 17:27:09 2004
-***************
-*** 3062,3067 ****
---- 3062,3110 ----
- }
- #endif /* FEAT_VISUAL */
-
-+ #if defined(FEAT_NETBEANS_INTG) && defined(FEAT_BEVAL)
-+ static int find_is_eval_item __ARGS((char_u *ptr, int *colp, int *nbp, int dir));
-+
-+ /*
-+ * Check for a balloon-eval special item to include when searching for an
-+ * identifier. When "dir" is BACKWARD "ptr[-1]" must be valid!
-+ * Returns TRUE if the character at "*ptr" should be included.
-+ * "dir" is FORWARD or BACKWARD, the direction of searching.
-+ * "*colp" is in/decremented if "ptr[-dir]" should also be included.
-+ * "bnp" points to a counter for square brackets.
-+ */
-+ static int
-+ find_is_eval_item(ptr, colp, bnp, dir)
-+ char_u *ptr;
-+ int *colp;
-+ int *bnp;
-+ int dir;
-+ {
-+ /* Accept everything inside []. */
-+ if ((*ptr == ']' && dir == BACKWARD) || (*ptr == '[' && dir == FORWARD))
-+ ++*bnp;
-+ if (*bnp > 0)
-+ {
-+ if ((*ptr == '[' && dir == BACKWARD) || (*ptr == ']' && dir == FORWARD))
-+ --*bnp;
-+ return TRUE;
-+ }
-+
-+ /* skip over "s.var" */
-+ if (*ptr == '.')
-+ return TRUE;
-+
-+ /* two-character item: s->var */
-+ if (ptr[dir == BACKWARD ? 0 : 1] == '>'
-+ && ptr[dir == BACKWARD ? -1 : 0] == '-')
-+ {
-+ *colp += dir;
-+ return TRUE;
-+ }
-+ return FALSE;
-+ }
-+ #endif
-+
- /*
- * Find the identifier under or to the right of the cursor.
- * "find_type" can have one of three values:
-***************
-*** 3111,3116 ****
---- 3154,3162 ----
- int prev_class;
- int prevcol;
- #endif
-+ #if defined(FEAT_NETBEANS_INTG) && defined(FEAT_BEVAL)
-+ int bn = 0; /* bracket nesting */
-+ #endif
-
- /*
- * if i == 0: try to find an identifier
-***************
-*** 3128,3133 ****
---- 3174,3184 ----
- {
- while (ptr[col] != NUL)
- {
-+ # if defined(FEAT_NETBEANS_INTG) && defined(FEAT_BEVAL)
-+ /* Stop at a ']' to evaluate "a[x]". */
-+ if ((find_type & FIND_EVAL) && ptr[col] == ']')
-+ break;
-+ # endif
- this_class = mb_get_class(ptr + col);
- if (this_class != 0 && (i == 1 || this_class != 1))
- break;
-***************
-*** 3136,3145 ****
- }
- else
- #endif
-! while (ptr[col] != NUL && (i == 0
-! ? !vim_iswordc(ptr[col]) : vim_iswhite(ptr[col])))
- ++col;
-
- /*
- * 2. Back up to start of identifier/string.
- */
---- 3187,3205 ----
- }
- else
- #endif
-! while (ptr[col] != NUL
-! && (i == 0 ? !vim_iswordc(ptr[col]) : vim_iswhite(ptr[col]))
-! # if defined(FEAT_NETBEANS_INTG) && defined(FEAT_BEVAL)
-! && (!(find_type & FIND_EVAL) || ptr[col] != ']')
-! # endif
-! )
- ++col;
-
-+ #if defined(FEAT_NETBEANS_INTG) && defined(FEAT_BEVAL)
-+ /* When starting on a ']' count it, so that we include the '['. */
-+ bn = ptr[col] == ']';
-+ #endif
-+
- /*
- * 2. Back up to start of identifier/string.
- */
-***************
-*** 3147,3153 ****
- if (has_mbyte)
- {
- /* Remember class of character under cursor. */
-! this_class = mb_get_class(ptr + col);
- while (col > 0)
- {
- prevcol = col - 1 - (*mb_head_off)(ptr, ptr + col - 1);
---- 3207,3218 ----
- if (has_mbyte)
- {
- /* Remember class of character under cursor. */
-! # if defined(FEAT_NETBEANS_INTG) && defined(FEAT_BEVAL)
-! if ((find_type & FIND_EVAL) && ptr[col] == ']')
-! this_class = mb_get_class((char_u *)"a");
-! else
-! # endif
-! this_class = mb_get_class(ptr + col);
- while (col > 0)
- {
- prevcol = col - 1 - (*mb_head_off)(ptr, ptr + col - 1);
-***************
-*** 3155,3161 ****
- if (this_class != prev_class
- && (i == 0
- || prev_class == 0
-! || (find_type & FIND_IDENT)))
- break;
- col = prevcol;
- }
---- 3220,3233 ----
- if (this_class != prev_class
- && (i == 0
- || prev_class == 0
-! || (find_type & FIND_IDENT))
-! # if defined(FEAT_NETBEANS_INTG) && defined(FEAT_BEVAL)
-! && (!(find_type & FIND_EVAL)
-! || prevcol == 0
-! || !find_is_eval_item(ptr + prevcol, &prevcol,
-! &bn, BACKWARD))
-! # endif
-! )
- break;
- col = prevcol;
- }
-***************
-*** 3170,3179 ****
- else
- #endif
- {
-! while (col > 0 && (i == 0 ? vim_iswordc(ptr[col - 1])
-! : (!vim_iswhite(ptr[col - 1])
-! && (!(find_type & FIND_IDENT)
-! || !vim_iswordc(ptr[col - 1])))))
- --col;
-
- /* If we don't want just any old string, or we've found an
---- 3242,3260 ----
- else
- #endif
- {
-! while (col > 0
-! && ((i == 0
-! ? vim_iswordc(ptr[col - 1])
-! : (!vim_iswhite(ptr[col - 1])
-! && (!(find_type & FIND_IDENT)
-! || !vim_iswordc(ptr[col - 1]))))
-! #if defined(FEAT_NETBEANS_INTG) && defined(FEAT_BEVAL)
-! || ((find_type & FIND_EVAL)
-! && col > 1
-! && find_is_eval_item(ptr + col - 1, &col,
-! &bn, BACKWARD))
-! #endif
-! ))
- --col;
-
- /* If we don't want just any old string, or we've found an
-***************
-*** 3204,3209 ****
---- 3285,3294 ----
- /*
- * 3. Find the end if the identifier/string.
- */
-+ #if defined(FEAT_NETBEANS_INTG) && defined(FEAT_BEVAL)
-+ bn = 0;
-+ startcol -= col;
-+ #endif
- col = 0;
- #ifdef FEAT_MBYTE
- if (has_mbyte)
-***************
-*** 3211,3225 ****
- /* Search for point of changing multibyte character class. */
- this_class = mb_get_class(ptr);
- while (ptr[col] != NUL
-! && i == 0 ? mb_get_class(ptr + col) == this_class
-! : mb_get_class(ptr + col) != 0)
- col += (*mb_ptr2len_check)(ptr + col);
- }
- else
- #endif
-! while (i == 0 ? vim_iswordc(*ptr) : (*ptr != NUL && !vim_iswhite(*ptr)))
- {
-- ++ptr;
- ++col;
- }
-
---- 3296,3322 ----
- /* Search for point of changing multibyte character class. */
- this_class = mb_get_class(ptr);
- while (ptr[col] != NUL
-! && ((i == 0 ? mb_get_class(ptr + col) == this_class
-! : mb_get_class(ptr + col) != 0)
-! # if defined(FEAT_NETBEANS_INTG) && defined(FEAT_BEVAL)
-! || ((find_type & FIND_EVAL)
-! && col <= startcol
-! && find_is_eval_item(ptr + col, &col, &bn, FORWARD))
-! # endif
-! ))
- col += (*mb_ptr2len_check)(ptr + col);
- }
- else
- #endif
-! while ((i == 0 ? vim_iswordc(ptr[col])
-! : (ptr[col] != NUL && !vim_iswhite(ptr[col])))
-! # if defined(FEAT_NETBEANS_INTG) && defined(FEAT_BEVAL)
-! || ((find_type & FIND_EVAL)
-! && col <= startcol
-! && find_is_eval_item(ptr + col, &col, &bn, FORWARD))
-! # endif
-! )
- {
- ++col;
- }
-
-*** ../vim-6.2.371/src/vim.h Thu Mar 11 21:03:40 2004
---- src/vim.h Wed Mar 17 15:58:56 2004
-***************
-*** 691,696 ****
---- 691,697 ----
- /* Values for find_ident_under_cursor() */
- #define FIND_IDENT 1 /* find identifier (word) */
- #define FIND_STRING 2 /* find any string (WORD) */
-+ #define FIND_EVAL 4 /* include "->", "[]" and "." */
-
- /* Values for file_name_in_line() */
- #define FNAME_MESS 1 /* give error message */
-*** ../vim-6.2.371/src/version.c Wed Mar 17 15:27:57 2004
---- src/version.c Wed Mar 17 17:41:17 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 372,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-43. You tell the kids they can't use the computer because "Daddy's got work to
- do" and you don't even have a job.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.373
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.373
-Problem: When 'winminheight' is zero and a window is reduced to zero
- height, the ruler always says "Top" instead of the cursor
- position. (Antoine J. Mechelynck)
-Solution: Don't recompute w_topline for a zero-height window.
-Files: src/window.c
-
-
-*** ../vim-6.2.372/src/window.c Wed Mar 17 09:54:22 2004
---- src/window.c Wed Mar 17 19:51:54 2004
-***************
-*** 4141,4151 ****
- wp->w_height = height;
- wp->w_skipcol = 0;
-
- #ifdef FEAT_SCROLLBIND
-! /* Don't set w_topline when 'scrollbind' is set and this isn't the current
-! * window. */
-! if (!wp->w_p_scb || wp == curwin)
- #endif
- {
- lnum = wp->w_cursor.lnum;
- if (lnum < 1) /* can happen when starting up */
---- 4141,4153 ----
- wp->w_height = height;
- wp->w_skipcol = 0;
-
-+ /* Don't change w_topline when height is zero. Don't set w_topline when
-+ * 'scrollbind' is set and this isn't the current window. */
-+ if (height > 0
- #ifdef FEAT_SCROLLBIND
-! && (!wp->w_p_scb || wp == curwin)
- #endif
-+ )
- {
- lnum = wp->w_cursor.lnum;
- if (lnum < 1) /* can happen when starting up */
-*** ../vim-6.2.372/src/version.c Wed Mar 17 18:17:24 2004
---- src/version.c Wed Mar 17 19:56:53 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 373,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-46. Your wife makes a new rule: "The computer cannot come to bed."
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.374
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.374
-Problem: ":echo "hello" | silent normal n" removes the "hello" message.
- (Servatius Brandt)
-Solution: Don't echo the search string when ":silent" was used. Also don't
- show the mode. In general: don't clear to the end of the screen.
-Files: src/gui.c, src/message.c, src/os_unix.c, src/proto/message.pro,
- src/screen.c, src/search.c, src/window.c
-
-
-*** ../vim-6.2.373/src/gui.c Tue Mar 16 20:54:00 2004
---- src/gui.c Wed Mar 17 20:50:46 2004
-***************
-*** 4200,4206 ****
- {
- /* Clear the command. Needed for when forking+exiting, to avoid part
- * of the argument ending up after the shell prompt. */
-! msg_clr_eos();
- gui_start();
- }
- if (!ends_excmd(*eap->arg))
---- 4206,4212 ----
- {
- /* Clear the command. Needed for when forking+exiting, to avoid part
- * of the argument ending up after the shell prompt. */
-! msg_clr_eos_force();
- gui_start();
- }
- if (!ends_excmd(*eap->arg))
-*** ../vim-6.2.373/src/message.c Thu Feb 19 15:14:04 2004
---- src/message.c Wed Mar 17 20:56:44 2004
-***************
-*** 151,158 ****
-
- msg_start();
- msg_outtrans_attr(s, attr);
-! if (msg_silent == 0)
-! msg_clr_eos();
- retval = msg_end();
-
- if (keep && retval && vim_strsize(s) < (int)(Rows - cmdline_row - 1)
---- 151,157 ----
-
- msg_start();
- msg_outtrans_attr(s, attr);
-! msg_clr_eos();
- retval = msg_end();
-
- if (keep && retval && vim_strsize(s) < (int)(Rows - cmdline_row - 1)
-***************
-*** 2343,2353 ****
-
- /*
- * Clear from current message position to end of screen.
- * Note: msg_col is not updated, so we remember the end of the message
- * for msg_check().
- */
- void
-! msg_clr_eos()
- {
- if (msg_use_printf())
- {
---- 2346,2367 ----
-
- /*
- * Clear from current message position to end of screen.
-+ * Skip this when ":silent" was used, no need to clear for redirection.
-+ */
-+ void
-+ msg_clr_eos()
-+ {
-+ if (msg_silent == 0)
-+ msg_clr_eos_force();
-+ }
-+
-+ /*
-+ * Clear from current message position to end of screen.
- * Note: msg_col is not updated, so we remember the end of the message
- * for msg_check().
- */
- void
-! msg_clr_eos_force()
- {
- if (msg_use_printf())
- {
-***************
-*** 2385,2391 ****
- {
- msg_row = cmdline_row;
- msg_col = 0;
-! msg_clr_eos();
- }
-
- /*
---- 2399,2405 ----
- {
- msg_row = cmdline_row;
- msg_col = 0;
-! msg_clr_eos_force();
- }
-
- /*
-*** ../vim-6.2.373/src/os_unix.c Thu Mar 11 20:55:09 2004
---- src/os_unix.c Wed Mar 17 20:53:10 2004
-***************
-*** 2580,2587 ****
- }
- else
- {
-! restore_cterm_colors(); /* get original colors back */
-! msg_clr_eos(); /* clear the rest of the display */
- windgoto((int)Rows - 1, 0); /* may have moved the cursor */
- }
- }
---- 2580,2587 ----
- }
- else
- {
-! restore_cterm_colors(); /* get original colors back */
-! msg_clr_eos_force(); /* clear the rest of the display */
- windgoto((int)Rows - 1, 0); /* may have moved the cursor */
- }
- }
-*** ../vim-6.2.373/src/proto/message.pro Mon Feb 2 12:53:51 2004
---- src/proto/message.pro Wed Mar 17 21:00:50 2004
-***************
-*** 42,47 ****
---- 42,48 ----
- void msg_moremsg __ARGS((int full));
- void repeat_message __ARGS((void));
- void msg_clr_eos __ARGS((void));
-+ void msg_clr_eos_force __ARGS((void));
- void msg_clr_cmdline __ARGS((void));
- int msg_end __ARGS((void));
- void msg_check __ARGS((void));
-*** ../vim-6.2.373/src/screen.c Wed Mar 17 14:08:56 2004
---- src/screen.c Wed Mar 17 21:00:25 2004
-***************
-*** 7858,7864 ****
- * Call char_avail() only when we are going to show something, because
- * it takes a bit of time.
- */
-! if (!redrawing() || (char_avail() && !KeyTyped))
- {
- redraw_cmdline = TRUE; /* show mode later */
- return 0;
---- 7858,7864 ----
- * Call char_avail() only when we are going to show something, because
- * it takes a bit of time.
- */
-! if (!redrawing() || (char_avail() && !KeyTyped) || msg_silent != 0)
- {
- redraw_cmdline = TRUE; /* show mode later */
- return 0;
-***************
-*** 8006,8013 ****
- msg_col = 0;
- need_wait_return = nwr_save; /* never ask for hit-return for this */
- }
-! else if (clear_cmdline) /* just clear anything */
-! msg_clr_cmdline(); /* will reset clear_cmdline */
-
- #ifdef FEAT_CMDL_INFO
- # ifdef FEAT_VISUAL
---- 8006,8014 ----
- msg_col = 0;
- need_wait_return = nwr_save; /* never ask for hit-return for this */
- }
-! else if (clear_cmdline && msg_silent == 0)
-! /* Clear the whole command line. Will reset "clear_cmdline". */
-! msg_clr_cmdline();
-
- #ifdef FEAT_CMDL_INFO
- # ifdef FEAT_VISUAL
-*** ../vim-6.2.373/src/search.c Fri Mar 12 21:13:03 2004
---- src/search.c Wed Mar 17 20:27:36 2004
-***************
-*** 1066,1072 ****
- pat = p; /* put pat after search command */
- }
-
-! if ((options & SEARCH_ECHO) && messaging() && !cmd_silent)
- {
- char_u *msgbuf;
- char_u *trunc;
---- 1066,1073 ----
- pat = p; /* put pat after search command */
- }
-
-! if ((options & SEARCH_ECHO) && messaging()
-! && !cmd_silent && msg_silent == 0)
- {
- char_u *msgbuf;
- char_u *trunc;
-*** ../vim-6.2.373/src/window.c Wed Mar 17 19:57:01 2004
---- src/window.c Wed Mar 17 20:55:02 2004
-***************
-*** 1006,1012 ****
- {
- msg_row = Rows - 1;
- msg_col = sc_col;
-! msg_clr_eos(); /* Old command/ruler may still be there -- webb */
- comp_col();
- msg_row = Rows - 1;
- msg_col = 0; /* put position back at start of line */
---- 1006,1012 ----
- {
- msg_row = Rows - 1;
- msg_col = sc_col;
-! msg_clr_eos_force(); /* Old command/ruler may still be there */
- comp_col();
- msg_row = Rows - 1;
- msg_col = 0; /* put position back at start of line */
-*** ../vim-6.2.373/src/version.c Wed Mar 17 19:57:01 2004
---- src/version.c Wed Mar 17 22:11:22 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 374,
- /**/
-
---
-CVS sux, men don't like commitment
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.375
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.375
-Problem: When changing 'guioptions' the hit-enter prompt may be below the
- end of the Vim window.
-Solution: Call screen_alloc() before showing the prompt.
-Files: src/message.c
-
-
-*** ../vim-6.2.374/src/message.c Wed Mar 17 22:18:24 2004
---- src/message.c Wed Mar 17 20:56:44 2004
-***************
-*** 820,825 ****
---- 820,829 ----
- }
- else
- {
-+ /* Make sure the hit-return prompt is on screen when 'guioptions' was
-+ * just changed. */
-+ screenalloc(FALSE);
-+
- State = HITRETURN;
- #ifdef FEAT_MOUSE
- setmouse();
-*** ../vim-6.2.374/src/version.c Wed Mar 17 22:18:24 2004
---- src/version.c Thu Mar 18 12:15:39 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 375,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-56. You leave the modem speaker on after connecting because you think it
- sounds like the ocean wind...the perfect soundtrack for "surfing the net".
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.376
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.376
-Problem: Win32: Ruby interface cannot be dynamically linked with Ruby 1.6.
-Solution: Add #ifdefs around use of rb_w32_snprintf(). (Benoît Cerrina)
-Files: src/if_ruby.c
-
-
-*** ../vim-6.2.375/src/if_ruby.c Wed Feb 4 12:12:05 2004
---- src/if_ruby.c Thu Mar 18 10:31:43 2004
-***************
-*** 184,190 ****
---- 184,192 ----
- static VALUE *dll_ruby_errinfo;
- static void (*dll_ruby_init) (void);
- static void (*dll_ruby_init_loadpath) (void);
-+ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
- static int (*dll_rb_w32_snprintf)(char*, size_t, const char*, ...);
-+ #endif
-
- static HINSTANCE hinstRuby = 0; /* Instance of ruby.dll */
-
-***************
-*** 244,250 ****
---- 246,254 ----
- {"ruby_errinfo", (RUBY_PROC*)&dll_ruby_errinfo},
- {"ruby_init", (RUBY_PROC*)&dll_ruby_init},
- {"ruby_init_loadpath", (RUBY_PROC*)&dll_ruby_init_loadpath},
-+ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
- {"rb_w32_snprintf", (RUBY_PROC*)&dll_rb_w32_snprintf},
-+ #endif
- {"", NULL},
- };
-
-*** ../vim-6.2.375/src/version.c Thu Mar 18 12:16:20 2004
---- src/version.c Thu Mar 18 12:17:26 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 376,
- /**/
-
---
-Be thankful to be in a traffic jam, because it means you own a car.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.377
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.377 (after 6.2.372)
-Problem: Compiler warnings for signed/unsigned compare. (Michael Wookey)
-Solution: Add type cast.
-Files: src/normal.c
-
-
-*** ../vim-6.2.376/src/normal.c Wed Mar 17 18:17:24 2004
---- src/normal.c Thu Mar 18 11:17:09 2004
-***************
-*** 3300,3306 ****
- : mb_get_class(ptr + col) != 0)
- # if defined(FEAT_NETBEANS_INTG) && defined(FEAT_BEVAL)
- || ((find_type & FIND_EVAL)
-! && col <= startcol
- && find_is_eval_item(ptr + col, &col, &bn, FORWARD))
- # endif
- ))
---- 3300,3306 ----
- : mb_get_class(ptr + col) != 0)
- # if defined(FEAT_NETBEANS_INTG) && defined(FEAT_BEVAL)
- || ((find_type & FIND_EVAL)
-! && col <= (int)startcol
- && find_is_eval_item(ptr + col, &col, &bn, FORWARD))
- # endif
- ))
-***************
-*** 3312,3318 ****
- : (ptr[col] != NUL && !vim_iswhite(ptr[col])))
- # if defined(FEAT_NETBEANS_INTG) && defined(FEAT_BEVAL)
- || ((find_type & FIND_EVAL)
-! && col <= startcol
- && find_is_eval_item(ptr + col, &col, &bn, FORWARD))
- # endif
- )
---- 3312,3318 ----
- : (ptr[col] != NUL && !vim_iswhite(ptr[col])))
- # if defined(FEAT_NETBEANS_INTG) && defined(FEAT_BEVAL)
- || ((find_type & FIND_EVAL)
-! && col <= (int)startcol
- && find_is_eval_item(ptr + col, &col, &bn, FORWARD))
- # endif
- )
-*** ../vim-6.2.376/src/version.c Thu Mar 18 12:18:09 2004
---- src/version.c Thu Mar 18 12:20:03 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 377,
- /**/
-
---
-Over the years, I've developed my sense of deja vu so acutely that now
-I can remember things that *have* happened before ...
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.378 (extra)
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.378 (extra, after 6.2.118)
-Problem: Mac: cannot build with Project Builder.
-Solution: Add remove_tail_with_ext() to locate and remove the "build"
- directory from the runtime path. Include os_unix.c when needed.
- (Dany St Amant)
-Files: src/misc1.c, src/os_macosx.c, src/vim.h
-
-
-*** ../vim-6.2.377/src/misc1.c Fri Mar 12 21:58:35 2004
---- src/misc1.c Thu Mar 18 14:05:52 2004
-***************
-*** 20,25 ****
---- 20,28 ----
-
- static char_u *vim_version_dir __ARGS((char_u *vimdir));
- static char_u *remove_tail __ARGS((char_u *p, char_u *pend, char_u *name));
-+ #if defined(USE_EXE_NAME) && defined(MACOS_X)
-+ static char_u *remove_tail_with_ext __ARGS((char_u *p, char_u *pend, char_u *ext));
-+ #endif
- static int get_indent_str __ARGS((char_u *ptr, int ts));
- static int copy_indent __ARGS((int size, char_u *src));
-
-***************
-*** 3535,3542 ****
- /* remove "build/..." from exe_name, if present */
- if (p == exe_name)
- {
-! pend = remove_tail(p, pend, (char_u *)"Contents/MacOS");
-! pend = remove_tail(p, pend, (char_u *)"build");
- }
- # endif
- /* remove "src/" from exe_name, if present */
---- 3538,3553 ----
- /* remove "build/..." from exe_name, if present */
- if (p == exe_name)
- {
-! char_u *pend1;
-! char_u *pend2;
-!
-! pend1 = remove_tail(p, pend, (char_u *)"Contents/MacOS");
-! pend2 = remove_tail_with_ext(p, pend1, (char_u *)".app");
-! pend = remove_tail(p, pend2, (char_u *)"build");
-! /* When runnig from project builder get rid of the
-! * build/???.app, otherwise keep the ???.app */
-! if (pend2 == pend)
-! pend = pend1;
- }
- # endif
- /* remove "src/" from exe_name, if present */
-***************
-*** 3681,3686 ****
---- 3692,3720 ----
- return newend;
- return pend;
- }
-+
-+ #if defined(USE_EXE_NAME) && defined(MACOS_X)
-+ /*
-+ * If the string between "p" and "pend" ends in "???.ext/", return "pend"
-+ * minus the length of "???.ext/". Otherwise return "pend".
-+ */
-+ static char_u *
-+ remove_tail_with_ext(p, pend, ext)
-+ char_u *p;
-+ char_u *pend;
-+ char_u *ext;
-+ {
-+ int len = (int)STRLEN(ext) + 1;
-+ char_u *newend = pend - len;
-+
-+ if (newend >= p && fnamencmp(newend, ext, len - 1) == 0)
-+ while (newend != p && !vim_ispathsep(*(newend - 1)))
-+ --newend;
-+ if (newend == p || vim_ispathsep(*(newend - 1)))
-+ return newend;
-+ return pend;
-+ }
-+ #endif
-
- /*
- * Call expand_env() and store the result in an allocated string.
-*** ../vim-6.2.377/src/os_macosx.c Mon Oct 13 22:21:06 2003
---- src/os_macosx.c Thu Mar 18 14:07:31 2004
-***************
-*** 13,24 ****
- */
-
- #ifdef MACOS_X_UNIX
-! # include "vim.h"
- #else
- # include "os_mac.c"
- # include <TextEncodingConverter.h>
- #endif
-
- void
- Trace(char* fmt, ...)
- {
---- 13,29 ----
- */
-
- #ifdef MACOS_X_UNIX
-! # ifdef HAVE_CONFIG_H /* Using Makefile. */
-! # include "vim.h"
-! # else
-! # include "os_unix.c" /* Using Project Builder */
-! # endif
- #else
- # include "os_mac.c"
- # include <TextEncodingConverter.h>
- #endif
-
-+ #ifdef _DEBUG
- void
- Trace(char* fmt, ...)
- {
-***************
-*** 30,35 ****
---- 35,41 ----
- fprintf(stderr, "%s", buf);
- va_end(args);
- }
-+ #endif
-
- #ifdef MACOS_X_ICONVEMU
- /*
-*** ../vim-6.2.377/src/vim.h Wed Mar 17 18:17:24 2004
---- src/vim.h Thu Mar 18 14:09:26 2004
-***************
-*** 74,79 ****
---- 74,83 ----
- #if defined(MACOS_X) && defined(MACOS_CLASSIC)
- Error: To compile for both MACOS X and Classic use a Classic Carbon
- #endif
-+ /* Unless made through the Makefile enforce GUI on Mac */
-+ #if defined(MACOS) && !defined(HAVE_CONFIG_H)
-+ # define FEAT_GUI_MAC
-+ #endif
-
-
- #if defined(FEAT_GUI_MOTIF) \
-*** ../vim-6.2.377/src/version.c Thu Mar 18 12:20:26 2004
---- src/version.c Thu Mar 18 14:38:32 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 378,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-58. You turn on your computer and turn off your wife.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.379
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.379
-Problem: Using ":mkvimrc" in the ":options" window sets 'bufhidden' to
- "delete". (Michael Naumann)
-Solution: Do not add buffer-specific option values to a global vimrc file.
-Files: src/option.c
-
-
-*** ../vim-6.2.378/src/option.c Thu Mar 11 21:08:44 2004
---- src/option.c Thu Mar 18 15:19:32 2004
-***************
-*** 292,297 ****
---- 292,298 ----
-
- #define P_SECURE 0x40000L/* cannot change in modeline or secure mode */
- #define P_GETTEXT 0x80000L/* expand default value with _() */
-+ #define P_NOGLOB 0x100000L/* do not use local value for global vimrc */
-
- /*
- * options[] is initialized here.
-***************
-*** 479,485 ****
- {(char_u *)0L, (char_u *)0L}
- #endif
- },
-! {"bufhidden", "bh", P_STRING|P_ALLOCED|P_VI_DEF,
- #if defined(FEAT_QUICKFIX)
- (char_u *)&p_bh, PV_BH,
- {(char_u *)"", (char_u *)0L}
---- 480,486 ----
- {(char_u *)0L, (char_u *)0L}
- #endif
- },
-! {"bufhidden", "bh", P_STRING|P_ALLOCED|P_VI_DEF|P_NOGLOB,
- #if defined(FEAT_QUICKFIX)
- (char_u *)&p_bh, PV_BH,
- {(char_u *)"", (char_u *)0L}
-***************
-*** 488,498 ****
- {(char_u *)0L, (char_u *)0L}
- #endif
- },
-! {"buflisted", "bl", P_BOOL|P_VI_DEF,
- (char_u *)&p_bl, PV_BL,
- {(char_u *)1L, (char_u *)0L}
- },
-! {"buftype", "bt", P_STRING|P_ALLOCED|P_VI_DEF,
- #if defined(FEAT_QUICKFIX)
- (char_u *)&p_bt, PV_BT,
- {(char_u *)"", (char_u *)0L}
---- 489,499 ----
- {(char_u *)0L, (char_u *)0L}
- #endif
- },
-! {"buflisted", "bl", P_BOOL|P_VI_DEF|P_NOGLOB,
- (char_u *)&p_bl, PV_BL,
- {(char_u *)1L, (char_u *)0L}
- },
-! {"buftype", "bt", P_STRING|P_ALLOCED|P_VI_DEF|P_NOGLOB,
- #if defined(FEAT_QUICKFIX)
- (char_u *)&p_bt, PV_BT,
- {(char_u *)"", (char_u *)0L}
-***************
-*** 716,722 ****
- (char_u *)NULL, PV_NONE,
- #endif
- {(char_u *)"", (char_u *)0L}},
-! {"diff", NULL, P_BOOL|P_VI_DEF|P_RWIN,
- #ifdef FEAT_DIFF
- (char_u *)VAR_WIN, PV_DIFF,
- #else
---- 717,723 ----
- (char_u *)NULL, PV_NONE,
- #endif
- {(char_u *)"", (char_u *)0L}},
-! {"diff", NULL, P_BOOL|P_VI_DEF|P_RWIN|P_NOGLOB,
- #ifdef FEAT_DIFF
- (char_u *)VAR_WIN, PV_DIFF,
- #else
-***************
-*** 845,851 ****
- {"fileformats", "ffs", P_STRING|P_VIM|P_COMMA|P_NODUP,
- (char_u *)&p_ffs, PV_NONE,
- {(char_u *)DFLT_FFS_VI, (char_u *)DFLT_FFS_VIM}},
-! {"filetype", "ft", P_STRING|P_ALLOCED|P_VI_DEF,
- #ifdef FEAT_AUTOCMD
- (char_u *)&p_ft, PV_FT,
- {(char_u *)"", (char_u *)0L}
---- 846,852 ----
- {"fileformats", "ffs", P_STRING|P_VIM|P_COMMA|P_NODUP,
- (char_u *)&p_ffs, PV_NONE,
- {(char_u *)DFLT_FFS_VI, (char_u *)DFLT_FFS_VIM}},
-! {"filetype", "ft", P_STRING|P_ALLOCED|P_VI_DEF|P_NOGLOB,
- #ifdef FEAT_AUTOCMD
- (char_u *)&p_ft, PV_FT,
- {(char_u *)"", (char_u *)0L}
-***************
-*** 1462,1468 ****
- {"modelines", "mls", P_NUM|P_VI_DEF,
- (char_u *)&p_mls, PV_NONE,
- {(char_u *)5L, (char_u *)0L}},
-! {"modifiable", "ma", P_BOOL|P_VI_DEF,
- (char_u *)&p_ma, PV_MA,
- {(char_u *)TRUE, (char_u *)0L}},
- {"modified", "mod", P_BOOL|P_NO_MKRC|P_VI_DEF|P_RSTAT,
---- 1475,1481 ----
- {"modelines", "mls", P_NUM|P_VI_DEF,
- (char_u *)&p_mls, PV_NONE,
- {(char_u *)5L, (char_u *)0L}},
-! {"modifiable", "ma", P_BOOL|P_VI_DEF|P_NOGLOB,
- (char_u *)&p_ma, PV_MA,
- {(char_u *)TRUE, (char_u *)0L}},
- {"modified", "mod", P_BOOL|P_NO_MKRC|P_VI_DEF|P_RSTAT,
-***************
-*** 1587,1593 ****
- (char_u *)NULL, PV_NONE,
- #endif
- {(char_u *)12L, (char_u *)0L}},
-! {"previewwindow", "pvw", P_BOOL|P_VI_DEF|P_RSTAT,
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
- (char_u *)VAR_WIN, PV_PVW,
- #else
---- 1600,1606 ----
- (char_u *)NULL, PV_NONE,
- #endif
- {(char_u *)12L, (char_u *)0L}},
-! {"previewwindow", "pvw", P_BOOL|P_VI_DEF|P_RSTAT|P_NOGLOB,
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
- (char_u *)VAR_WIN, PV_PVW,
- #else
-***************
-*** 1657,1663 ****
- {"prompt", NULL, P_BOOL|P_VI_DEF,
- (char_u *)NULL, PV_NONE,
- {(char_u *)FALSE, (char_u *)0L}},
-! {"readonly", "ro", P_BOOL|P_VI_DEF|P_RSTAT,
- (char_u *)&p_ro, PV_RO,
- {(char_u *)FALSE, (char_u *)0L}},
- {"redraw", NULL, P_BOOL|P_VI_DEF,
---- 1670,1676 ----
- {"prompt", NULL, P_BOOL|P_VI_DEF,
- (char_u *)NULL, PV_NONE,
- {(char_u *)FALSE, (char_u *)0L}},
-! {"readonly", "ro", P_BOOL|P_VI_DEF|P_RSTAT|P_NOGLOB,
- (char_u *)&p_ro, PV_RO,
- {(char_u *)FALSE, (char_u *)0L}},
- {"redraw", NULL, P_BOOL|P_VI_DEF,
-***************
-*** 1980,1986 ****
- {"switchbuf", "swb", P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
- (char_u *)&p_swb, PV_NONE,
- {(char_u *)"", (char_u *)0L}},
-! {"syntax", "syn", P_STRING|P_ALLOCED|P_VI_DEF,
- #ifdef FEAT_SYN_HL
- (char_u *)&p_syn, PV_SYN,
- {(char_u *)"", (char_u *)0L}
---- 1993,1999 ----
- {"switchbuf", "swb", P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
- (char_u *)&p_swb, PV_NONE,
- {(char_u *)"", (char_u *)0L}},
-! {"syntax", "syn", P_STRING|P_ALLOCED|P_VI_DEF|P_NOGLOB,
- #ifdef FEAT_SYN_HL
- (char_u *)&p_syn, PV_SYN,
- {(char_u *)"", (char_u *)0L}
-***************
-*** 7351,7356 ****
---- 7364,7374 ----
- {
- /* skip global option when only doing locals */
- if (p->indir == PV_NONE && !(opt_flags & OPT_GLOBAL))
-+ continue;
-+
-+ /* Do not store options like 'bufhidden' and 'syntax' in a vimrc
-+ * file, they are always buffer-specific. */
-+ if ((opt_flags & OPT_GLOBAL) && (p->flags & P_NOGLOB))
- continue;
-
- /* Global values are only written when not at the default value. */
-*** ../vim-6.2.378/src/version.c Thu Mar 18 14:39:31 2004
---- src/version.c Thu Mar 18 15:21:12 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 379,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-59. Your wife says communication is important in a marriage...so you buy
- another computer and install a second phone line so the two of you can
- chat.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.380 (extra)
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.380 (extra)
-Problem: DOS: "make test" fails when running it again. Can't "make test"
- with Borland C.
-Solution: Make sure ".out" files are deleted when they get in the way. Add
- a "test" target to the Borland C Makefile.
-Files: src/Make_bc5.mak, src/testdir/Make_dos.mak
-
-
-*** ../vim-6.2.379/src/Make_bc5.mak Thu Mar 11 20:49:02 2004
---- src/Make_bc5.mak Thu Mar 18 16:58:03 2004
-***************
-*** 884,889 ****
---- 884,894 ----
- !endif
- |
-
-+ test:
-+ cd testdir
-+ $(MAKE) /NOLOGO -f Make_dos.mak win32
-+ cd ..
-+
- $(OBJDIR)\ex_docmd.obj: ex_docmd.c ex_cmds.h
-
- $(OBJDIR)\ex_eval.obj: ex_eval.c ex_cmds.h
-*** ../vim-6.2.379/src/testdir/Make_dos.mak Sat May 31 22:32:43 2003
---- src/testdir/Make_dos.mak Thu Mar 18 16:52:51 2004
-***************
-*** 56,61 ****
---- 56,62 ----
- copy $*.ok test.ok
- $(VIMPROG) -u dos.vim -U NONE --noplugin -s dotest.in $*.in
- diff test.out $*.ok
-+ -del $*.out
- rename test.out $*.out
- -del X*
- -del test.ok
-*** ../vim-6.2.379/src/version.c Thu Mar 18 15:24:30 2004
---- src/version.c Thu Mar 18 17:03:06 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 380,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-64. The remote to the T.V. is missing...and you don't even care.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.381
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.381
-Problem: Setting 'fileencoding' to a comma separated list (confusing it
- with 'fileencodings') does not result in an error message.
- Setting 'fileencoding' in an empty file marks it as modified.
- There is no "+" in the title after setting 'fileencoding'.
-Solution: Check for a comma in 'fileencoding'. Only consider a non-empty
- file modified by changing 'fileencoding'. Update the title after
- changing 'fileencoding'.
-Files: src/option.c
-
-
-*** ../vim-6.2.380/src/option.c Thu Mar 18 15:24:30 2004
---- src/option.c Fri Mar 19 11:25:22 2004
-***************
-*** 4799,4807 ****
- /* 'encoding' and 'fileencoding' */
- else if (varp == &p_enc || gvarp == &p_fenc || varp == &p_tenc)
- {
-! if (varp == &curbuf->b_p_fenc && !curbuf->b_p_ma)
-! errmsg = e_modifiable;
-! else
- {
- /* canonize the value, so that STRCMP() can be used on it */
- p = enc_canonize(*varp);
---- 4811,4831 ----
- /* 'encoding' and 'fileencoding' */
- else if (varp == &p_enc || gvarp == &p_fenc || varp == &p_tenc)
- {
-! if (gvarp == &p_fenc)
-! {
-! if (!curbuf->b_p_ma)
-! errmsg = e_modifiable;
-! else if (vim_strchr(*varp, ',') != NULL)
-! /* No comma allowed in 'fileencoding'; catches confusing it
-! * with 'fileencodings'. */
-! errmsg = e_invarg;
-! # ifdef FEAT_TITLE
-! else
-! /* May show a "+" in the title now. */
-! need_maketitle = TRUE;
-! # endif
-! }
-! if (errmsg == NULL)
- {
- /* canonize the value, so that STRCMP() can be used on it */
- p = enc_canonize(*varp);
-***************
-*** 9305,9315 ****
---- 9329,9344 ----
- * Return TRUE if 'fileformat' and/or 'fileencoding' has a different value
- * from when editing started (save_file_ff() called).
- * Also when 'endofline' was changed and 'binary' is set.
-+ * Don't consider a new, empty buffer to be changed.
- */
- int
- file_ff_differs(buf)
- buf_T *buf;
- {
-+ if ((buf->b_flags & BF_NEW)
-+ && buf->b_ml.ml_line_count == 1
-+ && *ml_get_buf(buf, (linenr_T)1, FALSE) == NUL)
-+ return FALSE;
- if (buf->b_start_ffc != *buf->b_p_ff)
- return TRUE;
- if (buf->b_p_bin && buf->b_start_eol != buf->b_p_eol)
-*** ../vim-6.2.380/src/version.c Thu Mar 18 17:11:30 2004
---- src/version.c Fri Mar 19 11:42:51 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 381,
- /**/
-
---
-Q: How many legs does a giraffe have?
-A: Eight: two in front, two behind, two on the left and two on the right
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.382
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.382
-Problem: Running "make test" puts marks from test files in viminfo.
-Solution: Specify a different viminfo file to use.
-Files: src/testdir/test15.in, src/testdir/test49.in
-
-
-*** ../vim-6.2.381/src/testdir/test15.in Sat Aug 24 22:40:37 2002
---- src/testdir/test15.in Fri Mar 19 12:37:50 2004
-***************
-*** 12,18 ****
- :set fo+=tcroql tw=72
- /xxxxxxxx$
- 0gq6kk
-! :set nocp
- :" undo/redo here to make the next undo only work on the following changes
- u\12
- :map gg :.,.+2s/^/x/<CR>kk:set tw=3<CR>gqq
---- 12,18 ----
- :set fo+=tcroql tw=72
- /xxxxxxxx$
- 0gq6kk
-! :set nocp viminfo+=nviminfo
- :" undo/redo here to make the next undo only work on the following changes
- u\12
- :map gg :.,.+2s/^/x/<CR>kk:set tw=3<CR>gqq
-*** ../vim-6.2.381/src/testdir/test49.in Thu Feb 5 16:04:26 2004
---- src/testdir/test49.in Fri Mar 19 12:38:22 2004
-***************
-*** 5,11 ****
-
- STARTTEST
- :so small.vim
-! :se nocp nomore
- :so test49.vim
- GGGGGGGGGG"rp:.-,$wq! test.out
- ENDTEST
---- 5,11 ----
-
- STARTTEST
- :so small.vim
-! :se nocp nomore viminfo+=nviminfo
- :so test49.vim
- GGGGGGGGGG"rp:.-,$wq! test.out
- ENDTEST
-*** ../vim-6.2.381/src/version.c Fri Mar 19 11:43:26 2004
---- src/version.c Fri Mar 19 13:49:59 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 382,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-80. At parties, you introduce your spouse as your "service provider."
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.383
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.383
-Problem: ":hi foo term='bla" crashes Vim. (Antony Scriven)
-Solution: Check that the closing ' is there.
-Files: src/syntax.c
-
-
-*** ../vim-6.2.382/src/syntax.c Wed Mar 10 16:22:45 2004
---- src/syntax.c Sat Mar 20 17:52:39 2004
-***************
-*** 6360,6365 ****
---- 6360,6371 ----
- {
- arg_start = ++linep;
- linep = vim_strchr(linep, '\'');
-+ if (linep == NULL)
-+ {
-+ EMSG2(_(e_invarg2), key_start);
-+ error = TRUE;
-+ break;
-+ }
- }
- else
- {
-*** ../vim-6.2.382/src/version.c Fri Mar 19 13:51:50 2004
---- src/version.c Sat Mar 20 17:59:00 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 383,
- /**/
-
---
-From "know your smileys":
- |-P Reaction to unusually ugly C code
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.384
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.384
-Problem: ":menu a.&b" ":unmenu a.b" only works if "&b" isn't translated.
-Solution: Also compare the names without '&' characters.
-Files: src/menu.c
-
-
-*** ../vim-6.2.383/src/menu.c Tue Feb 17 21:08:58 2004
---- src/menu.c Sat Mar 20 21:06:51 2004
-***************
-*** 2244,2249 ****
---- 2244,2250 ----
- typedef struct
- {
- char_u *from; /* English name */
-+ char_u *from_noamp; /* same, without '&' */
- char_u *to; /* translated name */
- } menutrans_T;
-
-***************
-*** 2264,2270 ****
- char_u *arg = eap->arg;
- menutrans_T *tp;
- int i;
-! char_u *from, *to;
-
- if (menutrans_ga.ga_itemsize == 0)
- ga_init2(&menutrans_ga, (int)sizeof(menutrans_T), 5);
---- 2265,2271 ----
- char_u *arg = eap->arg;
- menutrans_T *tp;
- int i;
-! char_u *from, *from_noamp, *to;
-
- if (menutrans_ga.ga_itemsize == 0)
- ga_init2(&menutrans_ga, (int)sizeof(menutrans_T), 5);
-***************
-*** 2278,2283 ****
---- 2279,2285 ----
- for (i = 0; i < menutrans_ga.ga_len; ++i)
- {
- vim_free(tp[i].from);
-+ vim_free(tp[i].from_noamp);
- vim_free(tp[i].to);
- }
- ga_clear(&menutrans_ga);
-***************
-*** 2302,2315 ****
- {
- tp = (menutrans_T *)menutrans_ga.ga_data;
- from = vim_strsave(from);
- to = vim_strnsave(to, (int)(arg - to));
-! if (from != NULL && to != NULL)
- {
- tp[menutrans_ga.ga_len].from = from;
- tp[menutrans_ga.ga_len].to = to;
- ++menutrans_ga.ga_len;
- --menutrans_ga.ga_room;
- }
- }
- }
- }
---- 2304,2325 ----
- {
- tp = (menutrans_T *)menutrans_ga.ga_data;
- from = vim_strsave(from);
-+ from_noamp = menu_text(from, NULL, NULL);
- to = vim_strnsave(to, (int)(arg - to));
-! if (from != NULL && from_noamp != NULL && to != NULL)
- {
- tp[menutrans_ga.ga_len].from = from;
-+ tp[menutrans_ga.ga_len].from_noamp = from_noamp;
- tp[menutrans_ga.ga_len].to = to;
- ++menutrans_ga.ga_len;
- --menutrans_ga.ga_room;
- }
-+ else
-+ {
-+ vim_free(from);
-+ vim_free(from_noamp);
-+ vim_free(to);
-+ }
- }
- }
- }
-***************
-*** 2346,2355 ****
---- 2356,2385 ----
- {
- menutrans_T *tp = (menutrans_T *)menutrans_ga.ga_data;
- int i;
-+ char_u *dname;
-+ int dlen;
-
- for (i = 0; i < menutrans_ga.ga_len; ++i)
- if (STRNCMP(name, tp[i].from, len) == 0 && tp[i].from[len] == NUL)
- return tp[i].to;
-+
-+ /* Now try again while ignoring '&' characters. */
-+ i = name[len];
-+ name[len] = NUL;
-+ dname = menu_text(name, NULL, NULL);
-+ name[len] = i;
-+ if (dname != NULL)
-+ {
-+ dlen = STRLEN(dname);
-+ for (i = 0; i < menutrans_ga.ga_len; ++i)
-+ if (STRCMP(dname, tp[i].from_noamp) == 0)
-+ {
-+ vim_free(dname);
-+ return tp[i].to;
-+ }
-+ vim_free(dname);
-+ }
-+
- return NULL;
- }
- #endif /* FEAT_MULTI_LANG */
-*** ../vim-6.2.383/src/version.c Sat Mar 20 17:59:44 2004
---- src/version.c Sat Mar 20 21:11:33 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 384,
- /**/
-
---
-From "know your smileys":
- ...---... SOS
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.385 (extra)
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.385 (extra)
-Problem: Win32: forward_slash() and trash_input_buf() are undefined when
- compiling with small features. (Ajit Thakkar)
-Solution: Change the #ifdefs for forward_slash(). Don't call
- trash_input_buf() if the input buffer isn't used.
-Files: src/fileio.c, src/os_win32.c
-
-
-*** ../vim-6.2.384/src/fileio.c Sun Mar 7 15:21:39 2004
---- src/fileio.c Sat Mar 20 20:02:34 2004
-***************
-*** 6064,6069 ****
---- 6069,6097 ----
- #endif /* TEMPDIRNAMES */
- }
-
-+ #if defined(BACKSLASH_IN_FILENAME) || defined(PROTO)
-+ /*
-+ * Convert all backslashes in fname to forward slashes in-place.
-+ */
-+ void
-+ forward_slash(fname)
-+ char_u *fname;
-+ {
-+ char_u *p;
-+
-+ for (p = fname; *p != NUL; ++p)
-+ # ifdef FEAT_MBYTE
-+ /* The Big5 encoding can have '\' in the trail byte. */
-+ if (enc_dbcs != 0 && (*mb_ptr2len_check)(p) > 1)
-+ ++p;
-+ else
-+ # endif
-+ if (*p == '\\')
-+ *p = '/';
-+ }
-+ #endif
-+
-+
- /*
- * Code for automatic commands.
- *
-***************
-*** 6255,6282 ****
- static EVENT_T last_event;
- static int last_group;
-
-- #if defined(BACKSLASH_IN_FILENAME) || defined(PROTO)
-- /*
-- * Convert all backslashes in fname to forward slashes in-place.
-- */
-- void
-- forward_slash(fname)
-- char_u *fname;
-- {
-- char_u *p;
--
-- for (p = fname; *p != NUL; ++p)
-- # ifdef FEAT_MBYTE
-- /* The Big5 encoding can have '\' in the trail byte. */
-- if (enc_dbcs != 0 && (*mb_ptr2len_check)(p) > 1)
-- ++p;
-- else
-- # endif
-- if (*p == '\\')
-- *p = '/';
-- }
-- #endif
--
- /*
- * Show the autocommands for one AutoPat.
- */
---- 6283,6288 ----
-*** ../vim-6.2.384/src/os_win32.c Thu Mar 11 21:03:40 2004
---- src/os_win32.c Sat Mar 20 20:06:51 2004
-***************
-*** 1396,1402 ****
---- 1401,1409 ----
-
- if (c == Ctrl_C && ctrl_c_interrupts)
- {
-+ #if defined(FEAT_CLIENTSERVER)
- trash_input_buf();
-+ #endif
- got_int = TRUE;
- }
-
-*** ../vim-6.2.384/src/version.c Sat Mar 20 21:12:16 2004
---- src/version.c Sat Mar 20 21:13:46 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 385,
- /**/
-
---
-From "know your smileys":
- :-{} Too much lipstick
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.386
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.386
-Problem: Wasting time trying to read marks from the viminfo file for a
- buffer without a name.
-Solution: Skip reading marks when the buffer has no name.
-Files: src/fileio.c
-
-
-*** ../vim-6.2.385/src/fileio.c Sat Mar 20 21:17:12 2004
---- src/fileio.c Sat Mar 20 20:02:34 2004
-***************
-*** 2247,2256 ****
- #endif
-
- #ifdef FEAT_VIMINFO
- static void
- check_marks_read()
- {
-! if (!curbuf->b_marks_read && get_viminfo_parameter('\'') > 0)
- read_viminfo(NULL, FALSE, TRUE, FALSE);
-
- /* Always set b_marks_read; needed when 'viminfo' is changed to include
---- 2247,2261 ----
- #endif
-
- #ifdef FEAT_VIMINFO
-+ /*
-+ * Read marks for the current buffer from the viminfo file, when we support
-+ * buffer marks and the buffer has a name.
-+ */
- static void
- check_marks_read()
- {
-! if (!curbuf->b_marks_read && get_viminfo_parameter('\'') > 0
-! && curbuf->b_ffname != NULL)
- read_viminfo(NULL, FALSE, TRUE, FALSE);
-
- /* Always set b_marks_read; needed when 'viminfo' is changed to include
-*** ../vim-6.2.385/src/version.c Sat Mar 20 21:17:12 2004
---- src/version.c Sat Mar 20 21:20:36 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 386,
- /**/
-
---
-From "know your smileys":
- =):-) Uncle Sam
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.387
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.387
-Problem: There is no highlighting of translated items in help files.
-Solution: Search for a "help_ab.vim" syntax file when the help file is
- called "*.abx". Also improve the help highlighting a bit.
-Files: runtime/syntax/help.vim
-
-
-*** ../vim-6.2.386/runtime/syntax/help.vim Mon Jan 20 21:43:52 2003
---- runtime/syntax/help.vim Fri Mar 19 13:18:11 2004
-***************
-*** 1,7 ****
- " Vim syntax file
- " Language: Vim help file
- " Maintainer: Bram Moolenaar (Bram@vim.org)
-! " Last Change: 2003 Jan 20
-
- " For version 5.x: Clear all syntax items
- " For version 6.x: Quit when a syntax file was already loaded
---- 1,7 ----
- " Vim syntax file
- " Language: Vim help file
- " Maintainer: Bram Moolenaar (Bram@vim.org)
-! " Last Change: 2004 Mar 19
-
- " For version 5.x: Clear all syntax items
- " For version 6.x: Quit when a syntax file was already loaded
-***************
-*** 25,38 ****
- syn match helpHyperTextEntry "\*[#-)!+-~]\+\*$"
- endif
- syn match helpNormal "|.*====*|"
- syn match helpVim "Vim version [0-9.a-z]\+"
- syn match helpVim "VIM REFERENCE.*"
- syn match helpOption "'[a-z]\{2,\}'"
- syn match helpOption "'t_..'"
- syn match helpHeader ".*\~$"me=e-1 nextgroup=helpIgnore
- syn match helpIgnore "." contained
-! syn keyword helpNote note Note NOTE note: Note: NOTE:
- syn match helpSpecial "\<N\>"
- syn match helpSpecial "(N\>"ms=s+1
- syn match helpSpecial "\[N]"
- " avoid highlighting N N in help.txt
---- 25,41 ----
- syn match helpHyperTextEntry "\*[#-)!+-~]\+\*$"
- endif
- syn match helpNormal "|.*====*|"
-+ syn match helpNormal ":|vim:|" " for :help modeline
- syn match helpVim "Vim version [0-9.a-z]\+"
- syn match helpVim "VIM REFERENCE.*"
- syn match helpOption "'[a-z]\{2,\}'"
- syn match helpOption "'t_..'"
- syn match helpHeader ".*\~$"me=e-1 nextgroup=helpIgnore
- syn match helpIgnore "." contained
-! syn keyword helpNote note Note NOTE note: Note: NOTE: Notes Notes:
- syn match helpSpecial "\<N\>"
-+ syn match helpSpecial "\<N\.$"me=e-1
-+ syn match helpSpecial "\<N\.\s"me=e-2
- syn match helpSpecial "(N\>"ms=s+1
- syn match helpSpecial "\[N]"
- " avoid highlighting N N in help.txt
-***************
-*** 40,45 ****
---- 43,49 ----
- syn match helpSpecial "Nth"me=e-2
- syn match helpSpecial "N-1"me=e-2
- syn match helpSpecial "{[-a-zA-Z0-9'":%#=[\]<>.,]\+}"
-+ syn match helpSpecial "{[-a-zA-Z0-9'"*+/:%#=[\]<>.,]\+}"
- syn match helpSpecial "\s\[[-a-z^A-Z0-9_]\{2,}]"ms=s+1
- syn match helpSpecial "<[-a-zA-Z0-9_]\+>"
- syn match helpSpecial "<[SCM]-.>"
-***************
-*** 52,57 ****
---- 56,68 ----
- syn match helpSpecial "\[num]"
- syn match helpSpecial "\[+num]"
- syn match helpSpecial "\[-num]"
-+ syn match helpSpecial "\[+cmd]"
-+ syn match helpSpecial "\[++opt]"
-+ syn match helpSpecial "\[arg]"
-+ syn match helpSpecial "\[arguments]"
-+ syn match helpSpecial "\[ident]"
-+ syn match helpSpecial "\[addr]"
-+ syn match helpSpecial "\[group]"
- syn match helpSpecial "CTRL-."
- syn match helpSpecial "CTRL-Break"
- syn match helpSpecial "CTRL-PageUp"
-***************
-*** 62,67 ****
---- 73,121 ----
- syn region helpNotVi start="{Vi[: ]" start="{not" start="{only" end="}" contains=helpLeadBlank,helpHyperTextJump
- syn match helpLeadBlank "^\s\+" contained
-
-+ " Highlight group items in their own color.
-+ syn match helpComment "\t[* ]Comment\t\+[a-z].*"
-+ syn match helpConstant "\t[* ]Constant\t\+[a-z].*"
-+ syn match helpString "\t[* ]String\t\+[a-z].*"
-+ syn match helpCharacter "\t[* ]Character\t\+[a-z].*"
-+ syn match helpNumber "\t[* ]Number\t\+[a-z].*"
-+ syn match helpBoolean "\t[* ]Boolean\t\+[a-z].*"
-+ syn match helpFloat "\t[* ]Float\t\+[a-z].*"
-+ syn match helpIdentifier "\t[* ]Identifier\t\+[a-z].*"
-+ syn match helpFunction "\t[* ]Function\t\+[a-z].*"
-+ syn match helpStatement "\t[* ]Statement\t\+[a-z].*"
-+ syn match helpConditional "\t[* ]Conditional\t\+[a-z].*"
-+ syn match helpRepeat "\t[* ]Repeat\t\+[a-z].*"
-+ syn match helpLabel "\t[* ]Label\t\+[a-z].*"
-+ syn match helpOperator "\t[* ]Operator\t\+["a-z].*"
-+ syn match helpKeyword "\t[* ]Keyword\t\+[a-z].*"
-+ syn match helpException "\t[* ]Exception\t\+[a-z].*"
-+ syn match helpPreProc "\t[* ]PreProc\t\+[a-z].*"
-+ syn match helpInclude "\t[* ]Include\t\+[a-z].*"
-+ syn match helpDefine "\t[* ]Define\t\+[a-z].*"
-+ syn match helpMacro "\t[* ]Macro\t\+[a-z].*"
-+ syn match helpPreCondit "\t[* ]PreCondit\t\+[a-z].*"
-+ syn match helpType "\t[* ]Type\t\+[a-z].*"
-+ syn match helpStorageClass "\t[* ]StorageClass\t\+[a-z].*"
-+ syn match helpStructure "\t[* ]Structure\t\+[a-z].*"
-+ syn match helpTypedef "\t[* ]Typedef\t\+[Aa-z].*"
-+ syn match helpSpecial "\t[* ]Special\t\+[a-z].*"
-+ syn match helpSpecialChar "\t[* ]SpecialChar\t\+[a-z].*"
-+ syn match helpTag "\t[* ]Tag\t\+[a-z].*"
-+ syn match helpDelimiter "\t[* ]Delimiter\t\+[a-z].*"
-+ syn match helpSpecialComment "\t[* ]SpecialComment\t\+[a-z].*"
-+ syn match helpDebug "\t[* ]Debug\t\+[a-z].*"
-+ syn match helpUnderlined "\t[* ]Underlined\t\+[a-z].*"
-+ syn match helpError "\t[* ]Error\t\+[a-z].*"
-+ syn match helpTodo "\t[* ]Todo\t\+[a-z].*"
-+
-+
-+ " Additionally load a language-specific syntax file "help_ab.vim".
-+ let i = match(expand("%"), '\.\a\ax$')
-+ if i > 0
-+ exe "runtime syntax/help_" . strpart(expand("%"), i + 1, 2) . ".vim"
-+ endif
-+
- syn sync minlines=40
-
-
-***************
-*** 90,95 ****
---- 144,183 ----
- HiLink helpSpecial Special
- HiLink helpNote Todo
- HiLink Subtitle Identifier
-+
-+ HiLink helpComment Comment
-+ HiLink helpConstant Constant
-+ HiLink helpString String
-+ HiLink helpCharacter Character
-+ HiLink helpNumber Number
-+ HiLink helpBoolean Boolean
-+ HiLink helpFloat Float
-+ HiLink helpIdentifier Identifier
-+ HiLink helpFunction Function
-+ HiLink helpStatement Statement
-+ HiLink helpConditional Conditional
-+ HiLink helpRepeat Repeat
-+ HiLink helpLabel Label
-+ HiLink helpOperator Operator
-+ HiLink helpKeyword Keyword
-+ HiLink helpException Exception
-+ HiLink helpPreProc PreProc
-+ HiLink helpInclude Include
-+ HiLink helpDefine Define
-+ HiLink helpMacro Macro
-+ HiLink helpPreCondit PreCondit
-+ HiLink helpType Type
-+ HiLink helpStorageClass StorageClass
-+ HiLink helpStructure Structure
-+ HiLink helpTypedef Typedef
-+ HiLink helpSpecialChar SpecialChar
-+ HiLink helpTag Tag
-+ HiLink helpDelimiter Delimiter
-+ HiLink helpSpecialComment SpecialComment
-+ HiLink helpDebug Debug
-+ HiLink helpUnderlined Underlined
-+ HiLink helpError Error
-+ HiLink helpTodo Todo
-
- delcommand HiLink
- endif
-*** ../vim-6.2.386/src/version.c Sat Mar 20 21:21:41 2004
---- src/version.c Mon Mar 22 14:31:10 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 387,
- /**/
-
---
-From "know your smileys":
- <|-) Chinese
- <|-( Chinese and doesn't like these kind of jokes
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.388
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.388
-Problem: GTK: When displaying some double-width characters they are drawn
- as single-width, because of conversion to UTF-8.
-Solution: Check the width that GTK uses and add a space if it's one instead
- of two.
-Files: src/gui_gtk_x11.c
-
-
-*** ../vim-6.2.387/src/gui_gtk_x11.c Mon Feb 9 18:45:58 2004
---- src/gui_gtk_x11.c Sat Mar 20 13:21:41 2004
-***************
-*** 5038,5047 ****
- gui_gtk2_draw_string(int row, int col, char_u *s, int len, int flags)
- {
- GdkRectangle area; /* area for clip mask */
-- char_u *conv_buf = NULL; /* result of UTF-8 conversion */
- PangoGlyphString *glyphs; /* glyphs of current item */
- int column_offset = 0; /* column offset in cells */
- int i;
-
- if (gui.text_context == NULL || gui.drawarea->window == NULL)
- return len;
---- 5045,5058 ----
- gui_gtk2_draw_string(int row, int col, char_u *s, int len, int flags)
- {
- GdkRectangle area; /* area for clip mask */
- PangoGlyphString *glyphs; /* glyphs of current item */
- int column_offset = 0; /* column offset in cells */
- int i;
-+ char_u *conv_buf = NULL; /* result of UTF-8 conversion */
-+ char_u *new_conv_buf;
-+ int convlen;
-+ char_u *sp, *bp;
-+ int plen;
-
- if (gui.text_context == NULL || gui.drawarea->window == NULL)
- return len;
-***************
-*** 5054,5063 ****
- * prohibits changing this to something else than UTF-8 if the GUI is
- * in use.
- */
-! conv_buf = string_convert(&output_conv, s, &len);
-! s = conv_buf;
-!
- g_return_val_if_fail(conv_buf != NULL, len);
- }
-
- /*
---- 5065,5101 ----
- * prohibits changing this to something else than UTF-8 if the GUI is
- * in use.
- */
-! convlen = len;
-! conv_buf = string_convert(&output_conv, s, &convlen);
- g_return_val_if_fail(conv_buf != NULL, len);
-+
-+ /* Correct for differences in char width: some chars are
-+ * double-wide in 'encoding' but single-wide in utf-8. Add a space to
-+ * compensate for that. */
-+ for (sp = s, bp = conv_buf; sp < s + len && bp < conv_buf + convlen; )
-+ {
-+ plen = utf_ptr2len_check(bp);
-+ if ((*mb_ptr2cells)(sp) == 2 && utf_ptr2cells(bp) == 1)
-+ {
-+ new_conv_buf = alloc(convlen + 2);
-+ if (new_conv_buf == NULL)
-+ return len;
-+ plen += bp - conv_buf;
-+ mch_memmove(new_conv_buf, conv_buf, plen);
-+ new_conv_buf[plen] = ' ';
-+ mch_memmove(new_conv_buf + plen + 1, conv_buf + plen,
-+ convlen - plen + 1);
-+ vim_free(conv_buf);
-+ conv_buf = new_conv_buf;
-+ ++convlen;
-+ bp = conv_buf + plen;
-+ plen = 1;
-+ }
-+ sp += (*mb_ptr2len_check)(sp);
-+ bp += plen;
-+ }
-+ s = conv_buf;
-+ len = convlen;
- }
-
- /*
-*** ../vim-6.2.387/src/version.c Mon Mar 22 14:33:28 2004
---- src/version.c Mon Mar 22 14:38:38 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 388,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-92. It takes you two hours to check all 14 of your mailboxes.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.389
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.389
-Problem: When working over a slow connection, it's very annoying that the
- last line is partly drawn and then cleared for every change.
-Solution: Don't redraw the bottom line if no rows were inserted or deleted.
- Don't draw the line if we know "@" lines will be used.
-Files: src/screen.c
-
-
-*** ../vim-6.2.388/src/screen.c Wed Mar 17 22:18:24 2004
---- src/screen.c Thu Mar 18 18:47:29 2004
-***************
-*** 1126,1134 ****
- for (;;)
- {
- wp->w_lines[idx] = wp->w_lines[j];
-! /* stop at line that didn't fit */
-! if (bot_start + row + (int)wp->w_lines[j].wl_size
-! > wp->w_height)
- {
- wp->w_lines_valid = idx + 1;
- break;
---- 1126,1135 ----
- for (;;)
- {
- wp->w_lines[idx] = wp->w_lines[j];
-! /* stop at line that didn't fit, unless it is still
-! * valid (no lines deleted) */
-! if (row > 0 && bot_start + row
-! + (int)wp->w_lines[j].wl_size > wp->w_height)
- {
- wp->w_lines_valid = idx + 1;
- break;
-***************
-*** 1633,1644 ****
- --fold_count;
- wp->w_lines[idx].wl_folded = TRUE;
- wp->w_lines[idx].wl_lastlnum = lnum + fold_count;
-! #ifdef FEAT_SYN_HL
- did_update = DID_FOLD;
-! #endif
- }
- else
- #endif
- {
- #ifdef FEAT_SEARCH_EXTRA
- prepare_search_hl(wp, lnum);
---- 1634,1657 ----
- --fold_count;
- wp->w_lines[idx].wl_folded = TRUE;
- wp->w_lines[idx].wl_lastlnum = lnum + fold_count;
-! # ifdef FEAT_SYN_HL
- did_update = DID_FOLD;
-! # endif
- }
- else
- #endif
-+ if (idx < wp->w_lines_valid
-+ && wp->w_lines[idx].wl_valid
-+ && wp->w_lines[idx].wl_lnum == lnum
-+ && lnum > wp->w_topline
-+ && !(dy_flags & DY_LASTLINE)
-+ && srow + wp->w_lines[idx].wl_size > wp->w_height)
-+ {
-+ /* This line is not going to fit. Don't draw anything here,
-+ * will draw "@ " lines below. */
-+ row = wp->w_height + 1;
-+ }
-+ else
- {
- #ifdef FEAT_SEARCH_EXTRA
- prepare_search_hl(wp, lnum);
-*** ../vim-6.2.388/src/version.c Mon Mar 22 14:41:00 2004
---- src/version.c Mon Mar 22 14:43:11 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 389,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-93. New mail alarm on your palmtop annoys other churchgoers.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.390
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.390
-Problem: Using "r*" in Visual mode on multi-byte characters only replaces
- every other character. (Tyson Roberts)
-Solution: Correct the cursor position after replacing each character.
-Files: src/ops.c
-
-
-*** ../vim-6.2.389/src/ops.c Thu Mar 11 17:48:22 2004
---- src/ops.c Thu Mar 18 11:09:59 2004
-***************
-*** 2013,2018 ****
---- 2013,2020 ----
- State = REPLACE;
- ins_char(c);
- State = n;
-+ /* Backup to the replaced character. */
-+ dec_cursor();
- }
- else
- #endif
-***************
-*** 2061,2067 ****
- #endif
-
- /* Advance to next character, stop at the end of the file. */
-! if (inc(&curwin->w_cursor) == -1)
- break;
- }
- }
---- 2063,2069 ----
- #endif
-
- /* Advance to next character, stop at the end of the file. */
-! if (inc_cursor() == -1)
- break;
- }
- }
-*** ../vim-6.2.389/src/version.c Mon Mar 22 14:44:17 2004
---- src/version.c Mon Mar 22 14:46:25 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 390,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-94. Now admit it... How many of you have made "modem noises" into
- the phone just to see if it was possible? :-)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.391 (extra)
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.391 (extra)
-Problem: The ":highlight" command is not tested.
-Solution: Add a test script for ":highlight".
-Files: src/testdir/Makefile, src/testdir/Make_amiga.mak,
- src/testdir/Make_dos.mak, src/testdir/Make_os2.mak,
- src/testdir/Make_vms.mms, src/testdir/test51.in,
- src/testdir/test51.ok
-
-
-*** ../vim-6.2.390/src/testdir/Makefile Sun Oct 12 17:06:26 2003
---- src/testdir/Makefile Mon Mar 22 16:26:43 2004
-***************
-*** 13,19 ****
- test33.out test34.out test35.out test36.out test37.out \
- test38.out test39.out test40.out test41.out test42.out \
- test43.out test44.out test45.out test46.out test47.out \
-! test48.out test49.out
-
- SCRIPTS_GUI = test16.out
-
---- 13,19 ----
- test33.out test34.out test35.out test36.out test37.out \
- test38.out test39.out test40.out test41.out test42.out \
- test43.out test44.out test45.out test46.out test47.out \
-! test48.out test49.out test51.out
-
- SCRIPTS_GUI = test16.out
-
-*** ../vim-6.2.390/src/testdir/Make_amiga.mak Tue May 15 12:01:06 2001
---- src/testdir/Make_amiga.mak Mon Mar 22 17:25:14 2004
-***************
-*** 22,28 ****
- test33.out test34.out test35.out test36.out test37.out \
- test38.out test39.out test40.out test41.out test42.out \
- test43.out test44.out test45.out test46.out test47.out \
-! test48.out
-
- .SUFFIXES: .in .out
-
---- 22,28 ----
- test33.out test34.out test35.out test36.out test37.out \
- test38.out test39.out test40.out test41.out test42.out \
- test43.out test44.out test45.out test46.out test47.out \
-! test48.out test51.out
-
- .SUFFIXES: .in .out
-
-***************
-*** 93,95 ****
---- 93,96 ----
- test46.out: test46.in
- test47.out: test47.in
- test48.out: test48.in
-+ test51.out: test51.in
-*** ../vim-6.2.390/src/testdir/Make_dos.mak Thu Mar 18 17:07:39 2004
---- src/testdir/Make_dos.mak Mon Mar 22 17:25:32 2004
-***************
-*** 17,23 ****
- test23.out test24.out test28.out test29.out \
- test35.out test36.out test43.out \
- test44.out test45.out test46.out test47.out \
-! test48.out
-
- SCRIPTS = test3.out test4.out test5.out test6.out test7.out \
- test8.out test9.out test11.out test13.out test14.out \
---- 17,23 ----
- test23.out test24.out test28.out test29.out \
- test35.out test36.out test43.out \
- test44.out test45.out test46.out test47.out \
-! test48.out test51.out
-
- SCRIPTS = test3.out test4.out test5.out test6.out test7.out \
- test8.out test9.out test11.out test13.out test14.out \
-*** ../vim-6.2.390/src/testdir/Make_os2.mak Sat Jul 28 18:03:52 2001
---- src/testdir/Make_os2.mak Mon Mar 22 17:26:10 2004
-***************
-*** 22,28 ****
- test33.out test34.out test35.out test36.out test37.out \
- test38.out test39.out test40.out test41.out test42.out \
- test43.out test44.out test45.out test46.out test47.out \
-! test48.out
-
- .SUFFIXES: .in .out
-
---- 22,28 ----
- test33.out test34.out test35.out test36.out test37.out \
- test38.out test39.out test40.out test41.out test42.out \
- test43.out test44.out test45.out test46.out test47.out \
-! test48.out test51.out
-
- .SUFFIXES: .in .out
-
-*** ../vim-6.2.390/src/testdir/Make_vms.mms Tue May 6 20:47:12 2003
---- src/testdir/Make_vms.mms Mon Mar 22 17:26:55 2004
-***************
-*** 4,10 ****
- # Authors: Zoltan Arpadffy, <arpadffy@polarfox.com>
- # Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
- #
-! # Last change: 2003 May 06
- #
- # This has been tested on VMS 6.2 to 7.2 on DEC Alpha and VAX.
- # Edit the lines in the Configuration section below to select.
---- 4,10 ----
- # Authors: Zoltan Arpadffy, <arpadffy@polarfox.com>
- # Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
- #
-! # Last change: 2004 Mar 22
- #
- # This has been tested on VMS 6.2 to 7.2 on DEC Alpha and VAX.
- # Edit the lines in the Configuration section below to select.
-***************
-*** 57,63 ****
- test33.out test34.out test35.out test36.out test37.out \
- test38.out test39.out test40.out test41.out test42.out \
- test43.out test44.out test45.out test46.out \
-! test48.out test49.out
-
- .IFDEF WANT_GUI
- SCRIPT_GUI = test16.out
---- 57,63 ----
- test33.out test34.out test35.out test36.out test37.out \
- test38.out test39.out test40.out test41.out test42.out \
- test43.out test44.out test45.out test46.out \
-! test48.out test49.out test51.out
-
- .IFDEF WANT_GUI
- SCRIPT_GUI = test16.out
-*** ../vim-6.2.390/src/testdir/test51.in Mon Mar 22 17:28:07 2004
---- src/testdir/test51.in Mon Mar 22 16:24:59 2004
-***************
-*** 0 ****
---- 1,34 ----
-+ Tests for ":highlight". vim: set ft=vim :
-+
-+ STARTTEST
-+ :so small.vim
-+ :" basic test if ":highlight" doesn't crash
-+ :highlight
-+ :hi Search
-+ :" test setting colors.
-+ :" test clearing one color and all doesn't generate error or warning
-+ :hi NewGroup term=bold cterm=italic ctermfg=Blue ctermbg=Grey gui= guifg=#00ff00 guibg=Cyan
-+ :hi Group2 term= cterm=
-+ :hi Group3 term=underline cterm=bold
-+ :redir >test.out
-+ :hi NewGroup
-+ :hi Group2
-+ :hi Group3
-+ :hi clear NewGroup
-+ :hi NewGroup
-+ :hi Group2
-+ :hi Group2 NONE
-+ :hi Group2
-+ :hi clear
-+ :hi Group3
-+ :hi Crash term='asdf
-+ :redir END
-+ :" filter ctermfg and ctermbg, the numbers depend on the terminal
-+ :e test.out
-+ :%s/ctermfg=\d*/ctermfg=2/
-+ :%s/ctermbg=\d*/ctermbg=3/
-+ :" filter out possibly translated error message
-+ :%s/E475: [^:]*:/E475:/
-+ :wq!
-+ ENDTEST
-+
-*** ../vim-6.2.390/src/testdir/test51.ok Mon Mar 22 17:28:07 2004
---- src/testdir/test51.ok Mon Mar 22 16:26:57 2004
-***************
-*** 0 ****
---- 1,15 ----
-+
-+
-+ NewGroup xxx term=bold cterm=italic ctermfg=2 ctermbg=3
-+
-+
-+ Group3 xxx term=underline cterm=bold
-+
-+
-+
-+
-+
-+
-+
-+
-+ E475: term='asdf
-*** ../vim-6.2.390/src/version.c Mon Mar 22 14:47:27 2004
---- src/version.c Mon Mar 22 17:27:14 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 391,
- /**/
-
---
-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/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.392
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.392 (after 6.2.384)
-Problem: Unused variable.
-Solution: Remove "dlen".
-Files: src/menu.c
-
-
-*** ../vim-6.2.391/src/menu.c Sat Mar 20 21:12:16 2004
---- src/menu.c Mon Mar 22 20:49:31 2004
-***************
-*** 2357,2363 ****
- menutrans_T *tp = (menutrans_T *)menutrans_ga.ga_data;
- int i;
- char_u *dname;
-- int dlen;
-
- for (i = 0; i < menutrans_ga.ga_len; ++i)
- if (STRNCMP(name, tp[i].from, len) == 0 && tp[i].from[len] == NUL)
---- 2357,2362 ----
-***************
-*** 2370,2376 ****
- name[len] = i;
- if (dname != NULL)
- {
-- dlen = STRLEN(dname);
- for (i = 0; i < menutrans_ga.ga_len; ++i)
- if (STRCMP(dname, tp[i].from_noamp) == 0)
- {
---- 2369,2374 ----
-*** ../vim-6.2.391/src/version.c Mon Mar 22 17:28:47 2004
---- src/version.c Mon Mar 22 20:53:42 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 392,
- /**/
-
---
-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/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.393
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.393
-Problem: When using very long lines the viminfo file can become very big.
-Solution: Add the "s" flag to 'viminfo': skip registers with more than the
- specified Kbyte of text.
-Files: runtime/doc/options.txt, src/ops.c, src/option.c
-
-
-*** ../vim-6.2.392/runtime/doc/options.txt Sun Feb 29 21:06:13 2004
---- runtime/doc/options.txt Mon Mar 22 20:47:20 2004
-***************
-*** 1,4 ****
-! *options.txt* For Vim version 6.2. Last change: 2004 Feb 24
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
---- 1,4 ----
-! *options.txt* For Vim version 6.2. Last change: 2004 Mar 22
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
-***************
-*** 6275,6283 ****
-
- *'viminfo'* *'vi'* *E526* *E527* *E528*
- 'viminfo' 'vi' string (Vi default: "", Vim default for MS-DOS,
-! Windows and OS/2: '20,"50,h,rA:,rB:,
-! for Amiga: '20,"50,h,rdf0:,rdf1:,rdf2:
-! for others: '20,"50,h)
- global
- {not in Vi}
- {not available when compiled without the |+viminfo|
---- 6325,6333 ----
-
- *'viminfo'* *'vi'* *E526* *E527* *E528*
- 'viminfo' 'vi' string (Vi default: "", Vim default for MS-DOS,
-! Windows and OS/2: '20,"50,s10,h,rA:,rB:,
-! for Amiga: '20,"50,s10,h,rdf0:,rdf1:,rdf2:
-! for others: '20,"50,s10,h)
- global
- {not in Vi}
- {not available when compiled without the |+viminfo|
-***************
-*** 6299,6304 ****
---- 6349,6355 ----
- registers are not saved. When not included, all lines are
- saved. Dont forget to put a backslash before the ", otherwise
- it will be recognized as the start of a comment!
-+ Also see the 's' item below: limit specified in Kbyte.
- % When included, save and restore the buffer list. If Vim is
- started with a file name argument, the buffer list is not
- restored. If Vim is started without a file name argument, the
-***************
-*** 6308,6315 ****
- ' Maximum number of previously edited files for which the marks
- are remembered. This parameter must always be included when
- 'viminfo' is non-empty.
-! Including this item also means that the |jumplist| is stored
-! in the viminfo file.
- / Maximum number of items in the search pattern history to be
- saved. If non-zero, then the previous search and substitute
- patterns are also saved. When not included, the value of
---- 6359,6366 ----
- ' Maximum number of previously edited files for which the marks
- are remembered. This parameter must always be included when
- 'viminfo' is non-empty.
-! Including this item also means that the |jumplist| and the
-! |changelist| are stored in the viminfo file.
- / Maximum number of items in the search pattern history to be
- saved. If non-zero, then the previous search and substitute
- patterns are also saved. When not included, the value of
-***************
-*** 6337,6353 ****
- ','). This parameter can be given several times. Each
- specifies the start of a path for which no marks will be
- stored. This is to avoid removable media. For MS-DOS you
-! could use "ra:,rb:", for Amiga "rdf0:,rdf1:,rdf2:". Case is
- ignored. Maximum length of each 'r' argument is 50
- characters.
-
- Example: >
-! :set viminfo='50,\"1000,:0,n~/vim/viminfo
- <
- '50 Marks will be remembered for the last 50 files you
- edited.
- "1000 Contents of registers (up to 1000 lines each) will be
- remembered.
- :0 Command-line history will not be saved.
- n~/vim/viminfo The name of the file to use is "~/vim/viminfo".
- no / Since '/' is not specified, the default will be used,
---- 6388,6410 ----
- ','). This parameter can be given several times. Each
- specifies the start of a path for which no marks will be
- stored. This is to avoid removable media. For MS-DOS you
-! could use "ra:,rb:", for Amiga "rdf0:,rdf1:,rdf2:". You can
-! also use it for temp files, e.g., for Unix: "r/tmp". Case is
- ignored. Maximum length of each 'r' argument is 50
- characters.
-+ s Maximum size of an item in Kbyte. If zero then registers are
-+ not saved. Currently only applies to registers. The default
-+ "s10" will exclude registers with more than 10 Kbyte of text.
-+ Also see the '"' item above: line count limit.
-
- Example: >
-! :set viminfo='50,\"1000,s100,:0,n~/vim/viminfo
- <
- '50 Marks will be remembered for the last 50 files you
- edited.
- "1000 Contents of registers (up to 1000 lines each) will be
- remembered.
-+ s100 Registers with more than 100 Kbyte text are skipped.
- :0 Command-line history will not be saved.
- n~/vim/viminfo The name of the file to use is "~/vim/viminfo".
- no / Since '/' is not specified, the default will be used,
-*** ../vim-6.2.392/src/ops.c Mon Mar 22 14:47:27 2004
---- src/ops.c Mon Mar 22 17:47:38 2004
-***************
-*** 5052,5063 ****
---- 5052,5068 ----
- char_u c;
- int num_lines;
- int max_num_lines;
-+ int max_kbyte;
-+ long len;
-
- fprintf(fp, _("\n# Registers:\n"));
-
- max_num_lines = get_viminfo_parameter('"');
- if (max_num_lines == 0)
- return;
-+ max_kbyte = get_viminfo_parameter('s');
-+ if (max_kbyte == 0)
-+ return;
- for (i = 0; i < NUM_REGISTERS; i++)
- {
- if (y_regs[i].y_array == NULL)
-***************
-*** 5072,5077 ****
---- 5077,5093 ----
- if (i == TILDE_REGISTER)
- continue;
- #endif
-+ num_lines = y_regs[i].y_size;
-+ if (max_kbyte > 0)
-+ {
-+ /* Skip register if there is more text than the maximum size. */
-+ len = 0;
-+ for (j = 0; j < num_lines; j++)
-+ len += STRLEN(y_regs[i].y_array[j]) + 1L;
-+ if (len > (long)max_kbyte * 1024L)
-+ continue;
-+ }
-+
- switch (y_regs[i].y_type)
- {
- case MLINE:
-***************
-*** 5102,5108 ****
- 0
- #endif
- );
-- num_lines = y_regs[i].y_size;
-
- /* If max_num_lines < 0, then we save ALL the lines in the register */
- if (max_num_lines > 0 && num_lines > max_num_lines)
---- 5118,5123 ----
-*** ../vim-6.2.392/src/option.c Fri Mar 19 11:43:26 2004
---- src/option.c Mon Mar 22 20:29:18 2004
-***************
-*** 2177,2196 ****
- {"viminfo", "vi", P_STRING|P_COMMA|P_NODUP|P_SECURE,
- #ifdef FEAT_VIMINFO
- (char_u *)&p_viminfo, PV_NONE,
-- #else
-- (char_u *)NULL, PV_NONE,
-- #endif
- #if defined(MSDOS) || defined(MSWIN) || defined(OS2)
-! {(char_u *)"", (char_u *)"'20,\"50,h,rA:,rB:"}
- #else
- # ifdef AMIGA
- {(char_u *)"",
-! (char_u *)"'20,\"50,h,rdf0:,rdf1:,rdf2:"}
- # else
-! {(char_u *)"", (char_u *)"'20,\"50,h"}
- # endif
- #endif
-! },
- {"virtualedit", "ve", P_STRING|P_COMMA|P_NODUP|P_VI_DEF|P_VIM,
- #ifdef FEAT_VIRTUALEDIT
- (char_u *)&p_ve, PV_NONE,
---- 2189,2209 ----
- {"viminfo", "vi", P_STRING|P_COMMA|P_NODUP|P_SECURE,
- #ifdef FEAT_VIMINFO
- (char_u *)&p_viminfo, PV_NONE,
- #if defined(MSDOS) || defined(MSWIN) || defined(OS2)
-! {(char_u *)"", (char_u *)"'20,\"50,s10,h,rA:,rB:"}
- #else
- # ifdef AMIGA
- {(char_u *)"",
-! (char_u *)"'20,\"50,s10,h,rdf0:,rdf1:,rdf2:"}
- # else
-! {(char_u *)"", (char_u *)"'20,\"50,s10,h"}
- # endif
- #endif
-! #else
-! (char_u *)NULL, PV_NONE,
-! {(char_u *)0L, (char_u *)0L}
-! #endif
-! },
- {"virtualedit", "ve", P_STRING|P_COMMA|P_NODUP|P_VI_DEF|P_VIM,
- #ifdef FEAT_VIRTUALEDIT
- (char_u *)&p_ve, PV_NONE,
-***************
-*** 4212,4219 ****
- }
-
- /*
-! * Find the parameter represented by the given character (eg ', :, ", or /) in
-! * the 'viminfo' option and return a pointer to the string after it.
- * Return NULL if the parameter is not specified in the string.
- */
- char_u *
---- 4225,4232 ----
- }
-
- /*
-! * Find the parameter represented by the given character (eg ''', ':', '"', or
-! * '/') in the 'viminfo' option and return a pointer to the string after it.
- * Return NULL if the parameter is not specified in the string.
- */
- char_u *
-***************
-*** 5037,5043 ****
- for (s = p_viminfo; *s;)
- {
- /* Check it's a valid character */
-! if (vim_strchr((char_u *)"!\"%'/:@cfhnr", *s) == NULL)
- {
- errmsg = illegal_char(errbuf, *s);
- break;
---- 5050,5056 ----
- for (s = p_viminfo; *s;)
- {
- /* Check it's a valid character */
-! if (vim_strchr((char_u *)"!\"%'/:@cfhnrs", *s) == NULL)
- {
- errmsg = illegal_char(errbuf, *s);
- break;
-*** ../vim-6.2.392/src/version.c Mon Mar 22 20:54:36 2004
---- src/version.c Mon Mar 22 21:08:12 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 393,
- /**/
-
---
-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/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.394
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.394 (after 6.2.391)
-Problem: Test 51 fails on a terminal with 8 colors. (Tony Leneis)
-Solution: Use "DarkBlue" instead of "Blue" to avoid the "bold" attribute.
-Files: src/testdir/test51.in
-
-
-*** ../vim-6.2.393/src/testdir/test51.in Mon Mar 22 17:28:47 2004
---- src/testdir/test51.in Tue Mar 23 09:54:50 2004
-***************
-*** 7,13 ****
- :hi Search
- :" test setting colors.
- :" test clearing one color and all doesn't generate error or warning
-! :hi NewGroup term=bold cterm=italic ctermfg=Blue ctermbg=Grey gui= guifg=#00ff00 guibg=Cyan
- :hi Group2 term= cterm=
- :hi Group3 term=underline cterm=bold
- :redir >test.out
---- 7,13 ----
- :hi Search
- :" test setting colors.
- :" test clearing one color and all doesn't generate error or warning
-! :hi NewGroup term=bold cterm=italic ctermfg=DarkBlue ctermbg=Grey gui= guifg=#00ff00 guibg=Cyan
- :hi Group2 term= cterm=
- :hi Group3 term=underline cterm=bold
- :redir >test.out
-*** ../vim-6.2.393/src/version.c Mon Mar 22 21:11:50 2004
---- src/version.c Tue Mar 23 11:42:25 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 394,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-115. You are late picking up your kid from school and try to explain
- to the teacher you were stuck in Web traffic.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.395
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.395
-Problem: When using ":tag" or ":pop" the previous matching tag is used.
- But since the current file is different, the ordering of the tags
- may change.
-Solution: Remember what the current buffer was for when re-using cur_match.
-Files: src/edit.c, src/ex_cmds.c, src/proto/tag.pro, src/structs.h,
- src/tag.c
-
-
-*** ../vim-6.2.394/src/edit.c Tue Mar 9 17:13:10 2004
---- src/edit.c Tue Mar 23 12:37:45 2004
-***************
-*** 2765,2771 ****
- if (find_tags(complete_pat, &num_matches, &matches,
- TAG_REGEXP | TAG_NAMES | TAG_NOIC |
- TAG_INS_COMP | (ctrl_x_mode ? TAG_VERBOSE : 0),
-! TAG_MANY) == OK && num_matches > 0)
- {
- ins_compl_add_matches(num_matches, matches, dir);
- }
---- 2765,2771 ----
- if (find_tags(complete_pat, &num_matches, &matches,
- TAG_REGEXP | TAG_NAMES | TAG_NOIC |
- TAG_INS_COMP | (ctrl_x_mode ? TAG_VERBOSE : 0),
-! TAG_MANY, curbuf->b_ffname) == OK && num_matches > 0)
- {
- ins_compl_add_matches(num_matches, matches, dir);
- }
-*** ../vim-6.2.394/src/ex_cmds.c Wed Mar 17 14:08:56 2004
---- src/ex_cmds.c Tue Mar 23 12:38:33 2004
-***************
-*** 4955,4961 ****
- flags = TAG_HELP | TAG_REGEXP | TAG_NAMES | TAG_VERBOSE;
- if (keep_lang)
- flags |= TAG_KEEP_LANG;
-! if (find_tags(IObuff, num_matches, matches, flags, (int)MAXCOL) == OK
- && *num_matches > 0)
- /* Sort the matches found on the heuristic number that is after the
- * tag name. */
---- 4955,4961 ----
- flags = TAG_HELP | TAG_REGEXP | TAG_NAMES | TAG_VERBOSE;
- if (keep_lang)
- flags |= TAG_KEEP_LANG;
-! if (find_tags(IObuff, num_matches, matches, flags, (int)MAXCOL, NULL) == OK
- && *num_matches > 0)
- /* Sort the matches found on the heuristic number that is after the
- * tag name. */
-*** ../vim-6.2.394/src/proto/tag.pro Sun Jun 1 12:26:20 2003
---- src/proto/tag.pro Tue Mar 23 12:56:35 2004
-***************
-*** 2,8 ****
- int do_tag __ARGS((char_u *tag, int type, int count, int forceit, int verbose));
- void tag_freematch __ARGS((void));
- void do_tags __ARGS((exarg_T *eap));
-! int find_tags __ARGS((char_u *pat, int *num_matches, char_u ***matchesp, int flags, int mincount));
- void simplify_filename __ARGS((char_u *filename));
- int expand_tags __ARGS((int tagnames, char_u *pat, int *num_file, char_u ***file));
- /* vim: set ft=c : */
---- 2,8 ----
- int do_tag __ARGS((char_u *tag, int type, int count, int forceit, int verbose));
- void tag_freematch __ARGS((void));
- void do_tags __ARGS((exarg_T *eap));
-! int find_tags __ARGS((char_u *pat, int *num_matches, char_u ***matchesp, int flags, int mincount, char_u *buf_ffname));
- void simplify_filename __ARGS((char_u *filename));
- int expand_tags __ARGS((int tagnames, char_u *pat, int *num_file, char_u ***file));
- /* vim: set ft=c : */
-*** ../vim-6.2.394/src/structs.h Sun Mar 14 20:12:26 2004
---- src/structs.h Tue Mar 23 12:43:06 2004
-***************
-*** 119,124 ****
---- 119,125 ----
- char_u *tagname; /* tag name */
- fmark_T fmark; /* cursor position BEFORE ":tag" */
- int cur_match; /* match number */
-+ int cur_fnum; /* buffer number used for cur_match */
- } taggy_T;
-
- /*
-***************
-*** 1506,1512 ****
- winopt_T w_onebuf_opt;
- winopt_T w_allbuf_opt;
-
-! /* transfor a pointer to a "onebuf" option to a "allbuf" option */
- #define GLOBAL_WO(p) ((char *)p + sizeof(winopt_T))
-
- #ifdef FEAT_SCROLLBIND
---- 1507,1513 ----
- winopt_T w_onebuf_opt;
- winopt_T w_allbuf_opt;
-
-! /* transform a pointer to a "onebuf" option into a "allbuf" option */
- #define GLOBAL_WO(p) ((char *)p + sizeof(winopt_T))
-
- #ifdef FEAT_SCROLLBIND
-*** ../vim-6.2.394/src/tag.c Wed Mar 17 14:08:56 2004
---- src/tag.c Tue Mar 23 13:49:47 2004
-***************
-*** 81,89 ****
- static char_u *tag_full_fname __ARGS((tagptrs_T *tagp));
- static char_u *expand_tag_fname __ARGS((char_u *fname, char_u *tag_fname, int expand));
- #ifdef FEAT_EMACS_TAGS
-! static int test_for_current __ARGS((int, char_u *, char_u *, char_u *));
- #else
-! static int test_for_current __ARGS((char_u *, char_u *, char_u *));
- #endif
- static int find_extra __ARGS((char_u **pp));
-
---- 81,89 ----
- static char_u *tag_full_fname __ARGS((tagptrs_T *tagp));
- static char_u *expand_tag_fname __ARGS((char_u *fname, char_u *tag_fname, int expand));
- #ifdef FEAT_EMACS_TAGS
-! static int test_for_current __ARGS((int, char_u *, char_u *, char_u *, char_u *));
- #else
-! static int test_for_current __ARGS((char_u *, char_u *, char_u *, char_u *));
- #endif
- static int find_extra __ARGS((char_u **pp));
-
-***************
-*** 138,143 ****
---- 138,144 ----
- int tagstackidx = curwin->w_tagstackidx;
- int tagstacklen = curwin->w_tagstacklen;
- int cur_match = 0;
-+ int cur_fnum = curbuf->b_fnum;
- int oldtagstackidx = tagstackidx;
- int prevtagstackidx = tagstackidx;
- int prev_num_matches;
-***************
-*** 163,168 ****
---- 164,171 ----
- int attr;
- int use_tagstack;
- int skip_msg = FALSE;
-+ char_u *buf_ffname = curbuf->b_ffname; /* name to use for
-+ priority computation */
-
- /* remember the matches for the last used tag */
- static int num_matches = 0;
-***************
-*** 213,218 ****
---- 216,222 ----
- /* Jumping to same tag: keep the current match, so that
- * the CursorHold autocommand example works. */
- cur_match = ptag_entry.cur_match;
-+ cur_fnum = ptag_entry.cur_fnum;
- }
- else
- {
-***************
-*** 336,342 ****
---- 343,352 ----
- {
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
- if (g_do_tagpreview)
-+ {
- cur_match = ptag_entry.cur_match;
-+ cur_fnum = ptag_entry.cur_fnum;
-+ }
- else
- #endif
- {
-***************
-*** 360,365 ****
---- 370,376 ----
- goto end_do_tag;
- }
- cur_match = tagstack[tagstackidx].cur_match;
-+ cur_fnum = tagstack[tagstackidx].cur_fnum;
- }
- new_tag = TRUE;
- }
-***************
-*** 370,382 ****
---- 381,397 ----
-
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
- if (g_do_tagpreview)
-+ {
- cur_match = ptag_entry.cur_match;
-+ cur_fnum = ptag_entry.cur_fnum;
-+ }
- else
- #endif
- {
- if (--tagstackidx < 0)
- tagstackidx = 0;
- cur_match = tagstack[tagstackidx].cur_match;
-+ cur_fnum = tagstack[tagstackidx].cur_fnum;
- }
- switch (type)
- {
-***************
-*** 397,402 ****
---- 412,418 ----
- EMSG(_("E425: Cannot go before first matching tag"));
- skip_msg = TRUE;
- cur_match = 0;
-+ cur_fnum = curbuf->b_fnum;
- }
- }
- }
-***************
-*** 405,411 ****
---- 421,430 ----
- if (g_do_tagpreview)
- {
- if (type != DT_SELECT && type != DT_JUMP)
-+ {
- ptag_entry.cur_match = cur_match;
-+ ptag_entry.cur_fnum = cur_fnum;
-+ }
- }
- else
- #endif
-***************
-*** 425,434 ****
---- 444,467 ----
- * tagstackidx now. */
- curwin->w_tagstackidx = tagstackidx;
- if (type != DT_SELECT && type != DT_JUMP)
-+ {
- curwin->w_tagstack[tagstackidx].cur_match = cur_match;
-+ curwin->w_tagstack[tagstackidx].cur_fnum = cur_fnum;
-+ }
- }
- }
-
-+ /* When not using the current buffer get the name of buffer "cur_fnum".
-+ * Makes sure that the tag order doesn't change when using a remembered
-+ * position for "cur_match". */
-+ if (cur_fnum != curbuf->b_fnum)
-+ {
-+ buf_T *buf = buflist_findnr(cur_fnum);
-+
-+ if (buf != NULL)
-+ buf_ffname = buf->b_ffname;
-+ }
-+
- /*
- * Repeat searching for tags, when a file has not been found.
- */
-***************
-*** 476,482 ****
- if (verbose)
- flags |= TAG_VERBOSE;
- if (find_tags(name, &new_num_matches, &new_matches, flags,
-! max_num_matches) == OK
- && new_num_matches < max_num_matches)
- max_num_matches = MAXCOL; /* If less than max_num_matches
- found: all matches found. */
---- 509,515 ----
- if (verbose)
- flags |= TAG_VERBOSE;
- if (find_tags(name, &new_num_matches, &new_matches, flags,
-! max_num_matches, buf_ffname) == OK
- && new_num_matches < max_num_matches)
- max_num_matches = MAXCOL; /* If less than max_num_matches
- found: all matches found. */
-***************
-*** 758,768 ****
---- 791,805 ----
- if (use_tagstack)
- {
- tagstack[tagstackidx].cur_match = cur_match;
-+ tagstack[tagstackidx].cur_fnum = cur_fnum;
- ++tagstackidx;
- }
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
- else if (g_do_tagpreview)
-+ {
- ptag_entry.cur_match = cur_match;
-+ ptag_entry.cur_fnum = cur_fnum;
-+ }
- #endif
-
- /*
-***************
-*** 993,1005 ****
- * TAG_KEEP_LANG keep language
- */
- int
-! find_tags(pat, num_matches, matchesp, flags, mincount)
- char_u *pat; /* pattern to search for */
- int *num_matches; /* return: number of matches found */
- char_u ***matchesp; /* return: array of matches found */
- int flags;
- int mincount; /* MAXCOL: find all matches
- other: minimal number of matches */
- {
- FILE *fp;
- char_u *lbuf; /* line buffer */
---- 1030,1043 ----
- * TAG_KEEP_LANG keep language
- */
- int
-! find_tags(pat, num_matches, matchesp, flags, mincount, buf_ffname)
- char_u *pat; /* pattern to search for */
- int *num_matches; /* return: number of matches found */
- char_u ***matchesp; /* return: array of matches found */
- int flags;
- int mincount; /* MAXCOL: find all matches
- other: minimal number of matches */
-+ char_u *buf_ffname; /* name of buffer for priority */
- {
- FILE *fp;
- char_u *lbuf; /* line buffer */
-***************
-*** 1842,1848 ****
- #ifdef FEAT_EMACS_TAGS
- is_etag,
- #endif
-! tagp.fname, tagp.fname_end, tag_fname);
- #ifdef FEAT_EMACS_TAGS
- is_static = FALSE;
- if (!is_etag) /* emacs tags are never static */
---- 1880,1887 ----
- #ifdef FEAT_EMACS_TAGS
- is_etag,
- #endif
-! tagp.fname, tagp.fname_end, tag_fname,
-! buf_ffname);
- #ifdef FEAT_EMACS_TAGS
- is_static = FALSE;
- if (!is_etag) /* emacs tags are never static */
-***************
-*** 3244,3270 ****
- }
-
- /*
-! * Check if we have a tag for the current file.
- * This is a bit slow, because of the full path compare in fullpathcmp().
- * Return TRUE if tag for file "fname" if tag file "tag_fname" is for current
- * file.
- */
- static int
- #ifdef FEAT_EMACS_TAGS
-! test_for_current(is_etag, fname, fname_end, tag_fname)
- int is_etag;
- #else
-! test_for_current(fname, fname_end, tag_fname)
- #endif
- char_u *fname;
- char_u *fname_end;
- char_u *tag_fname;
- {
- int c;
- int retval = FALSE;
- char_u *fullname;
-
-! if (curbuf->b_ffname != NULL) /* if the current buffer has a name */
- {
- #ifdef FEAT_EMACS_TAGS
- if (is_etag)
---- 3283,3310 ----
- }
-
- /*
-! * Check if we have a tag for the buffer with name "buf_ffname".
- * This is a bit slow, because of the full path compare in fullpathcmp().
- * Return TRUE if tag for file "fname" if tag file "tag_fname" is for current
- * file.
- */
- static int
- #ifdef FEAT_EMACS_TAGS
-! test_for_current(is_etag, fname, fname_end, tag_fname, buf_ffname)
- int is_etag;
- #else
-! test_for_current(fname, fname_end, tag_fname, buf_ffname)
- #endif
- char_u *fname;
- char_u *fname_end;
- char_u *tag_fname;
-+ char_u *buf_ffname;
- {
- int c;
- int retval = FALSE;
- char_u *fullname;
-
-! if (buf_ffname != NULL) /* if the buffer has a name */
- {
- #ifdef FEAT_EMACS_TAGS
- if (is_etag)
-***************
-*** 3278,3284 ****
- fullname = expand_tag_fname(fname, tag_fname, TRUE);
- if (fullname != NULL)
- {
-! retval = (fullpathcmp(fullname, curbuf->b_ffname, TRUE) & FPC_SAME);
- vim_free(fullname);
- }
- #ifdef FEAT_EMACS_TAGS
---- 3318,3324 ----
- fullname = expand_tag_fname(fname, tag_fname, TRUE);
- if (fullname != NULL)
- {
-! retval = (fullpathcmp(fullname, buf_ffname, TRUE) & FPC_SAME);
- vim_free(fullname);
- }
- #ifdef FEAT_EMACS_TAGS
-***************
-*** 3350,3359 ****
- tagnmflag = 0;
- if (pat[0] == '/')
- ret = find_tags(pat + 1, num_file, file,
-! TAG_REGEXP | tagnmflag | TAG_VERBOSE, TAG_MANY);
- else
- ret = find_tags(pat, num_file, file,
-! TAG_REGEXP | tagnmflag | TAG_VERBOSE | TAG_NOIC, TAG_MANY);
- if (ret == OK && !tagnames)
- {
- /* Reorganize the tags for display and matching as strings of:
---- 3390,3401 ----
- tagnmflag = 0;
- if (pat[0] == '/')
- ret = find_tags(pat + 1, num_file, file,
-! TAG_REGEXP | tagnmflag | TAG_VERBOSE,
-! TAG_MANY, curbuf->b_ffname);
- else
- ret = find_tags(pat, num_file, file,
-! TAG_REGEXP | tagnmflag | TAG_VERBOSE | TAG_NOIC,
-! TAG_MANY, curbuf->b_ffname);
- if (ret == OK && !tagnames)
- {
- /* Reorganize the tags for display and matching as strings of:
-*** ../vim-6.2.394/src/version.c Tue Mar 23 11:43:16 2004
---- src/version.c Tue Mar 23 14:00:07 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 395,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-119. You are reading a book and look for the scroll bar to get to
- the next page.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///
+++ /dev/null
-To: vim-dev@vim.org
-Subject: Patch 6.2.396
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 6.2.396
-Problem: When CTRL-T jumps to another file and an autocommand moves the
- cursor to the '" mark, don't end up on the right line. (Michal
- Malecki)
-Solution: Set the line number after loading the file.
-Files: src/tag.c
-
-
-*** ../vim-6.2.395/src/tag.c Tue Mar 23 14:04:16 2004
---- src/tag.c Tue Mar 23 14:02:30 2004
-***************
-*** 313,318 ****
---- 313,321 ----
- tagstackidx = oldtagstackidx; /* back to old posn */
- goto end_do_tag;
- }
-+ /* An BufReadPost autocommand may jump to the '" mark, but
-+ * we don't what that here. */
-+ curwin->w_cursor.lnum = saved_fmark.mark.lnum;
- }
- else
- {
-*** ../vim-6.2.395/src/version.c Tue Mar 23 14:04:16 2004
---- src/version.c Tue Mar 23 14:06:44 2004
-***************
-*** 639,640 ****
---- 639,642 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 396,
- /**/
-
---
-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/ \\\
-\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
- \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///