--- /dev/null
+To: vim-dev@vim.org
+Subject: Patch 6.3.018
+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.3.018
+Problem: ":0argadd zero" added the argument after the first one, instead of
+ before it. (Adri Verhoef)
+Solution: Accept a zero range for ":argadd".
+Files: src/ex_cmds.h
+
+
+*** ../vim-6.3.017/src/ex_cmds.h Wed Jun 9 14:56:25 2004
+--- src/ex_cmds.h Mon Aug 30 14:58:51 2004
+***************
+*** 109,115 ****
+ EX(CMD_args, "args", ex_args,
+ BANG|FILES|EDITCMD|ARGOPT|TRLBAR),
+ EX(CMD_argadd, "argadd", ex_argadd,
+! BANG|NEEDARG|RANGE|NOTADR|COUNT|FILES|TRLBAR),
+ EX(CMD_argdelete, "argdelete", ex_argdelete,
+ BANG|RANGE|NOTADR|COUNT|FILES|TRLBAR),
+ EX(CMD_argdo, "argdo", ex_listdo,
+--- 109,115 ----
+ EX(CMD_args, "args", ex_args,
+ BANG|FILES|EDITCMD|ARGOPT|TRLBAR),
+ EX(CMD_argadd, "argadd", ex_argadd,
+! BANG|NEEDARG|RANGE|NOTADR|ZEROR|COUNT|FILES|TRLBAR),
+ EX(CMD_argdelete, "argdelete", ex_argdelete,
+ BANG|RANGE|NOTADR|COUNT|FILES|TRLBAR),
+ EX(CMD_argdo, "argdo", ex_listdo,
+*** ../vim-6.3.017/src/version.c Fri Aug 27 21:14:50 2004
+--- src/version.c Mon Aug 30 13:47:03 2004
+***************
+*** 643,644 ****
+--- 643,646 ----
+ { /* Add new patch number below this line */
++ /**/
++ 18,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+234. You started college as a chemistry major, and walk out four years
+ later as an Internet 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.3.019
+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.3.019
+Problem: Crash in startup for debug version. (David Rennals)
+Solution: Move the call to nbdebug_wait() to after allocating NameBuff.
+Files: src/main.c
+
+
+*** ../vim-6.3.018/src/main.c Wed Jun 9 14:56:25 2004
+--- src/main.c Mon Aug 30 13:45:45 2004
+***************
+*** 150,160 ****
+ int literal = FALSE; /* don't expand file names */
+ #endif
+
+- # ifdef NBDEBUG
+- nbdebug_log_init("SPRO_GVIM_DEBUG", "SPRO_GVIM_DLEVEL");
+- nbdebug_wait(WT_ENV | WT_WAIT | WT_STOP, "SPRO_GVIM_WAIT", 20);
+- # endif
+-
+ /*
+ * Do any system-specific initialisations. These can NOT use IObuff or
+ * NameBuff. Thus emsg2() cannot be called!
+--- 150,155 ----
+***************
+*** 208,213 ****
+--- 203,215 ----
+ mch_exit(0);
+
+ TIME_MSG("Allocated generic buffers");
++
++ #ifdef NBDEBUG
++ /* Wait a moment for debugging NetBeans. Must be after allocating
++ * NameBuff. */
++ nbdebug_log_init("SPRO_GVIM_DEBUG", "SPRO_GVIM_DLEVEL");
++ nbdebug_wait(WT_ENV | WT_WAIT | WT_STOP, "SPRO_GVIM_WAIT", 20);
++ #endif
+
+ #if defined(HAVE_LOCALE_H) || defined(X_LOCALE)
+ /*
+*** ../vim-6.3.018/src/version.c Mon Aug 30 15:02:02 2004
+--- src/version.c Mon Aug 30 19:45:31 2004
+***************
+*** 643,644 ****
+--- 643,646 ----
+ { /* Add new patch number below this line */
++ /**/
++ 19,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+241. You try to look for Net Search even when you're in File Manager.
+
+ /// 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.3.020
+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.3.020
+Problem: When 'encoding' is "utf-8" and 'delcombine' is set, "dw" does not
+ delete a word but only a combining character of the first
+ character, if there is one. (Raphael Finkel)
+Solution: Correctly check that one character is being deleted.
+Files: src/misc1.c
+
+
+*** ../vim-6.3.019/src/misc1.c Wed Jun 9 14:56:25 2004
+--- src/misc1.c Tue Aug 31 20:02:22 2004
+***************
+*** 2081,2087 ****
+ #ifdef FEAT_MBYTE
+ /* If 'delcombine' is set and deleting (less than) one character, only
+ * delete the last combining character. */
+! if (p_deco && enc_utf8 && (*mb_ptr2len_check)(oldp + col) <= count)
+ {
+ int c1, c2;
+ int n;
+--- 2081,2087 ----
+ #ifdef FEAT_MBYTE
+ /* If 'delcombine' is set and deleting (less than) one character, only
+ * delete the last combining character. */
+! if (p_deco && enc_utf8 && utfc_ptr2len_check(oldp + col) >= count)
+ {
+ int c1, c2;
+ int n;
+*** ../vim-6.3.019/src/version.c Mon Aug 30 19:46:07 2004
+--- src/version.c Tue Aug 31 20:03:57 2004
+***************
+*** 643,644 ****
+--- 643,646 ----
+ { /* Add new patch number below this line */
++ /**/
++ 20,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+257. Your "hundred-and-one" lists include well over 101 items, since you
+ automatically interpret all numbers in hexadecimal notation.
+ (hex 101 = decimal 257)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ 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.3.021
+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.3.021
+Problem: When the last character of a file name is a multi-byte character
+ and the last byte is a path separator, the file cannot be edited.
+Solution: Check for the last byte to be part of a multi-byte character.
+ (Taro Muraoka)
+Files: src/fileio.c
+
+
+*** ../vim-6.3.020/src/fileio.c Tue Jun 29 20:07:02 2004
+--- src/fileio.c Sat Sep 4 15:55:15 2004
+***************
+*** 370,384 ****
+ * file may destroy it! Reported on MS-DOS and Win 95.
+ * If the name is too long we might crash further on, quit here.
+ */
+! if (fname != NULL
+! && *fname != NUL
+! && (vim_ispathsep(*(fname + STRLEN(fname) - 1))
+! || STRLEN(fname) >= MAXPATHL))
+ {
+! filemess(curbuf, fname, (char_u *)_("Illegal file name"), 0);
+! msg_end();
+! msg_scroll = msg_save;
+! return FAIL;
+ }
+
+ #ifdef UNIX
+--- 370,390 ----
+ * file may destroy it! Reported on MS-DOS and Win 95.
+ * If the name is too long we might crash further on, quit here.
+ */
+! if (fname != NULL && *fname != NUL)
+ {
+! p = fname + STRLEN(fname) - 1;
+! if ((vim_ispathsep(*p)
+! #ifdef FEAT_MBYTE
+! /* Do not use a multi-byte char as path separator. */
+! && (!has_mbyte || (*mb_head_off)(fname, p) == 0)
+! #endif
+! ) || STRLEN(fname) >= MAXPATHL)
+! {
+! filemess(curbuf, fname, (char_u *)_("Illegal file name"), 0);
+! msg_end();
+! msg_scroll = msg_save;
+! return FAIL;
+! }
+ }
+
+ #ifdef UNIX
+*** ../vim-6.3.020/src/version.c Tue Aug 31 20:06:01 2004
+--- src/version.c Sat Sep 4 16:04:00 2004
+***************
+*** 643,644 ****
+--- 643,646 ----
+ { /* Add new patch number below this line */
++ /**/
++ 21,
+ /**/
+
+--
+ An extraordinary TALL KNIGHT in all black (possibly John with Mike on his
+ shoulders) walks out from the dark trees. He is extremely fierce and
+ gruesome countenance. He walks towards KING ARTHUR and PATSY, who are
+ wazzing like mad. (Salopian slang, meaning very scared. almost to the
+ point of wetting oneself, e.g. before an important football match or
+ prior to a postering. Salopian slang meaning a beating by the school
+ praeposters. Sorry about the Salopian slant to this stage direction - Ed.)
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ 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.3.022 (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.3.022 (extra)
+Problem: Win32: When the last character of a file name is a multi-byte
+ character and the last byte is a path separator, the file cannot
+ be written. A trail byte that is a space makes that a file cannot
+ be opened from the command line.
+Solution: Recognize double-byte characters when parsing the command line.
+ In mch_stat() check for the last byte to be part of a multi-byte
+ character. (Taro Muraoka)
+Files: src/gui_w48.c, src/os_mswin.c
+
+
+*** ../vim-6.3.021/src/gui_w48.c Wed Jun 9 14:56:26 2004
+--- src/gui_w48.c Sat Sep 4 16:18:32 2004
+***************
+*** 3376,3381 ****
+--- 3376,3391 ----
+ {
+ if (pnew != NULL)
+ *pnew++ = *p;
++ #ifdef FEAT_MBYTE
++ /* Can't use mb_* functions, because 'encoding' is not
++ * initialized yet here. */
++ if (IsDBCSLeadByte(*p))
++ {
++ ++p;
++ if (pnew != NULL)
++ *pnew++ = *p;
++ }
++ #endif
+ ++p;
+ }
+ }
+*** ../vim-6.3.021/src/os_mswin.c Wed Jun 9 14:56:26 2004
+--- src/os_mswin.c Sat Sep 4 16:10:16 2004
+***************
+*** 448,453 ****
+--- 448,457 ----
+ p = buf + strlen(buf);
+ if (p > buf)
+ --p;
++ #ifdef FEAT_MBYTE
++ if (p > buf && has_mbyte)
++ p -= (*mb_head_off)(buf, p);
++ #endif
+ if (p > buf && (*p == '\\' || *p == '/') && p[-1] != ':')
+ *p = NUL;
+ #ifdef FEAT_MBYTE
+*** ../vim-6.3.021/src/version.c Sat Sep 4 16:05:51 2004
+--- src/version.c Sat Sep 4 16:19:36 2004
+***************
+*** 643,644 ****
+--- 643,646 ----
+ { /* Add new patch number below this line */
++ /**/
++ 22,
+ /**/
+
+--
+Back up my hard drive? I can't find the reverse switch!
+
+ /// 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.3.023
+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.3.023
+Problem: When the "to" part of a mapping starts with its "from" part,
+ abbreviations for the same characters is not possible. For
+ example, when <Space> is mapped to something that starts with a
+ space, typing <Space> does not expand abbreviations.
+Solution: Only disable expanding abbreviations when a mapping is not
+ remapped, don't disable it when the RHS of a mapping starts with
+ the LHS.
+Files: src/getchar.c, src/vim.h
+
+
+*** ../vim-6.3.022/src/getchar.c Wed Jun 9 14:56:25 2004
+--- src/getchar.c Sat Sep 4 18:16:26 2004
+***************
+*** 100,105 ****
+--- 100,106 ----
+ #define RM_YES 0 /* tb_noremap: remap */
+ #define RM_NONE 1 /* tb_noremap: don't remap */
+ #define RM_SCRIPT 2 /* tb_noremap: remap local script mappings */
++ #define RM_ABBR 4 /* tb_noremap: don't remap, do abbrev. */
+
+ /* typebuf.tb_buf has three parts: room in front (for result of mappings), the
+ * middle for typeahead and room for new characters (which needs to be 3 *
+***************
+*** 896,901 ****
+--- 897,904 ----
+ *
+ * If noremap is REMAP_YES, new string can be mapped again.
+ * If noremap is REMAP_NONE, new string cannot be mapped again.
++ * If noremap is REMAP_SKIP, fist char of new string cannot be mapped again,
++ * but abbreviations are allowed.
+ * If noremap is REMAP_SCRIPT, new string cannot be mapped again, except for
+ * script-local mappings.
+ * If noremap is > 0, that many characters of the new string cannot be mapped.
+***************
+*** 993,998 ****
+--- 996,1003 ----
+ /* If noremap == REMAP_SCRIPT: do remap script-local mappings. */
+ if (noremap == REMAP_SCRIPT)
+ val = RM_SCRIPT;
++ else if (noremap == REMAP_SKIP)
++ val = RM_ABBR;
+ else
+ val = RM_NONE;
+
+***************
+*** 1004,1010 ****
+ * If noremap > 0: "noremap" characters are not remappable, the rest
+ * mappable
+ */
+! if (noremap < 0)
+ nrm = addlen;
+ else
+ nrm = noremap;
+--- 1009,1017 ----
+ * If noremap > 0: "noremap" characters are not remappable, the rest
+ * mappable
+ */
+! if (noremap == REMAP_SKIP)
+! nrm = 1;
+! else if (noremap < 0)
+ nrm = addlen;
+ else
+ nrm = noremap;
+***************
+*** 1856,1863 ****
+ && (no_zero_mapping == 0 || c1 != '0')
+ && (typebuf.tb_maplen == 0
+ || (p_remap
+! && typebuf.tb_noremap[typebuf.tb_off]
+! != RM_NONE))
+ && !(p_paste && (State & (INSERT + CMDLINE)))
+ && !(State == HITRETURN && (c1 == CAR || c1 == ' '))
+ && State != ASKMORE
+--- 1863,1870 ----
+ && (no_zero_mapping == 0 || c1 != '0')
+ && (typebuf.tb_maplen == 0
+ || (p_remap
+! && (typebuf.tb_noremap[typebuf.tb_off]
+! & (RM_NONE|RM_ABBR)) == 0))
+ && !(p_paste && (State & (INSERT + CMDLINE)))
+ && !(State == HITRETURN && (c1 == CAR || c1 == ' '))
+ && State != ASKMORE
+***************
+*** 1973,1979 ****
+ * remapped, skip the entry.
+ */
+ for (n = mlen; --n >= 0; )
+! if (*s++ == RM_NONE)
+ break;
+ if (n >= 0)
+ continue;
+--- 1980,1986 ----
+ * remapped, skip the entry.
+ */
+ for (n = mlen; --n >= 0; )
+! if (*s++ & (RM_NONE|RM_ABBR))
+ break;
+ if (n >= 0)
+ continue;
+***************
+*** 2132,2138 ****
+ + typebuf.tb_off, 1);
+ }
+ KeyNoremap = (typebuf.tb_noremap[
+! typebuf.tb_off] != REMAP_YES);
+ del_typebuf(1, 0);
+ }
+ break; /* got character, break for loop */
+--- 2139,2146 ----
+ + typebuf.tb_off, 1);
+ }
+ KeyNoremap = (typebuf.tb_noremap[
+! typebuf.tb_off]
+! & (RM_NONE|RM_SCRIPT));
+ del_typebuf(1, 0);
+ }
+ break; /* got character, break for loop */
+***************
+*** 2233,2239 ****
+ /*
+ * Insert the 'to' part in the typebuf.tb_buf.
+ * If 'from' field is the same as the start of the
+! * 'to' field, don't remap the first character.
+ * If m_noremap is set, don't remap the whole 'to'
+ * part.
+ */
+--- 2241,2248 ----
+ /*
+ * Insert the 'to' part in the typebuf.tb_buf.
+ * If 'from' field is the same as the start of the
+! * 'to' field, don't remap the first character (but do
+! * allow abbreviations).
+ * If m_noremap is set, don't remap the whole 'to'
+ * part.
+ */
+***************
+*** 2241,2248 ****
+ mp->m_noremap != REMAP_YES
+ ? mp->m_noremap
+ : STRNCMP(mp->m_str, mp->m_keys,
+! (size_t)keylen)
+! ? REMAP_YES : 1,
+ 0, TRUE, cmd_silent || mp->m_silent) == FAIL)
+ {
+ c = -1;
+--- 2250,2257 ----
+ mp->m_noremap != REMAP_YES
+ ? mp->m_noremap
+ : STRNCMP(mp->m_str, mp->m_keys,
+! (size_t)keylen) != 0
+! ? REMAP_YES : REMAP_SKIP,
+ 0, TRUE, cmd_silent || mp->m_silent) == FAIL)
+ {
+ c = -1;
+*** ../vim-6.3.022/src/vim.h Wed Jun 9 14:56:26 2004
+--- src/vim.h Sat Sep 4 18:17:00 2004
+***************
+*** 726,731 ****
+--- 726,732 ----
+ #define REMAP_YES 0 /* allow remapping */
+ #define REMAP_NONE -1 /* no remapping */
+ #define REMAP_SCRIPT -2 /* remap script-local mappings only */
++ #define REMAP_SKIP -3 /* no remapping for first char */
+
+ /* Values for mch_call_shell() second argument */
+ #define SHELL_FILTER 1 /* filtering text */
+*** ../vim-6.3.022/src/version.c Sat Sep 4 16:28:02 2004
+--- src/version.c Sat Sep 4 18:20:40 2004
+***************
+*** 643,644 ****
+--- 643,646 ----
+ { /* Add new patch number below this line */
++ /**/
++ 23,
+ /**/
+
+--
+TALL KNIGHT: We shall say Ni! again to you if you do not appease us.
+ARTHUR: All right! What do you want?
+TALL KNIGHT: We want ... a shrubbery!
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ 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.3.024
+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.3.024
+Problem: In a few places a string in allocated memory is not terminated
+ with a NUL.
+Solution: Add ga_append(NUL) in script_get(), gui_do_findrepl() and
+ serverGetVimNames().
+Files: src/ex_getln.c, src/gui.c, src/if_xcmdsrv.c
+
+
+*** ../vim-6.3.023/src/ex_getln.c Fri Jul 9 22:21:01 2004
+--- src/ex_getln.c Sun Sep 5 20:29:52 2004
+***************
+*** 5472,5477 ****
+--- 5472,5478 ----
+ ga_append(&ga, '\n');
+ vim_free(theline);
+ }
++ ga_append(&ga, NUL);
+
+ return (char_u *)ga.ga_data;
+ }
+*** ../vim-6.3.023/src/gui.c Wed Jun 9 14:56:25 2004
+--- src/gui.c Sun Sep 5 20:33:02 2004
+***************
+*** 4583,4594 ****
+--- 4583,4596 ----
+ ga_concat(&ga, (char_u *)"/");
+ concat_esc(&ga, repl_text, '/'); /* escape slashes */
+ ga_concat(&ga, (char_u *)"/g");
++ ga_append(&ga, NUL);
+ do_cmdline_cmd(ga.ga_data);
+ }
+ else
+ {
+ /* Search for the next match. */
+ i = msg_scroll;
++ ga_append(&ga, NUL);
+ do_search(NULL, down ? '/' : '?', ga.ga_data, 1L,
+ SEARCH_MSG + SEARCH_MARK);
+ msg_scroll = i; /* don't let an error message set msg_scroll */
+*** ../vim-6.3.023/src/if_xcmdsrv.c Wed Jun 9 14:56:26 2004
+--- src/if_xcmdsrv.c Sun Sep 5 20:33:48 2004
+***************
+*** 683,688 ****
+--- 683,689 ----
+ }
+ if (regProp != empty_prop)
+ XFree(regProp);
++ ga_append(&ga, NUL);
+ return ga.ga_data;
+ }
+
+*** ../vim-6.3.023/src/version.c Sat Sep 4 19:43:59 2004
+--- src/version.c Sun Sep 5 20:47:49 2004
+***************
+*** 643,644 ****
+--- 643,646 ----
+ { /* Add new patch number below this line */
++ /**/
++ 24,
+ /**/
+
+--
+LAUNCELOT: At last! A call! A cry of distress ...
+ (he draws his sword, and turns to CONCORDE)
+ Concorde! Brave, Concorde ... you shall not have died in vain!
+CONCORDE: I'm not quite dead, sir ...
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ 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.3.025 (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.3.025 (extra)
+Problem: Missing NUL for list of server names.
+Solution: Add ga_append(NUL) in serverGetVimNames().
+Files: src/os_mswin.c
+
+
+*** ../vim-6.3.024/src/os_mswin.c Sat Sep 4 16:28:02 2004
+--- src/os_mswin.c Sun Sep 5 20:35:30 2004
+***************
+*** 2672,2677 ****
+--- 2672,2678 ----
+ ga_init2(&ga, 1, 100);
+
+ EnumWindows(enumWindowsGetNames, (LPARAM)(&ga));
++ ga_append(&ga, NUL);
+
+ return ga.ga_data;
+ }
+*** ../vim-6.3.024/src/version.c Sun Sep 5 20:48:38 2004
+--- src/version.c Sun Sep 5 20:51:54 2004
+***************
+*** 643,644 ****
+--- 643,646 ----
+ { /* Add new patch number below this line */
++ /**/
++ 25,
+ /**/
+
+--
+Apologies for taking up the bandwidth with the apology. Anything else I
+can apologise for ...... er no can't think of anything, sorry about that.
+ Andy Hunt (Member of British Olympic Apology Squad)
+
+ /// 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.3.026
+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.3.026
+Problem: When ~/.vim/after/syntax/syncolor.vim contains a command that
+ reloads the colors an enless loop and/or a crash may occur.
+Solution: Only free the old value of an option when it was originally
+ allocated. Limit recursiveness of init_highlight() to 5 levels.
+Files: src/option.c, src/syntax.c
+
+
+*** ../vim-6.3.025/src/option.c Thu Aug 26 16:01:15 2004
+--- src/option.c Mon Sep 13 15:42:46 2004
+***************
+*** 4597,4602 ****
+--- 4597,4603 ----
+ char_u *s, *p;
+ int did_chartab = FALSE;
+ char_u **gvarp;
++ int free_oldval = (options[opt_idx].flags & P_ALLOCED);
+
+ /* Get the global option to compare with, otherwise we would have to check
+ * two values for all local options. */
+***************
+*** 5729,5736 ****
+ #endif
+ /*
+ * Free string options that are in allocated memory.
+ */
+! if (options[opt_idx].flags & P_ALLOCED)
+ free_string_option(oldval);
+ if (new_value_alloced)
+ options[opt_idx].flags |= P_ALLOCED;
+--- 5730,5739 ----
+ #endif
+ /*
+ * Free string options that are in allocated memory.
++ * Use "free_oldval", because recursiveness may change the flags under
++ * our fingers (esp. init_highlight()).
+ */
+! if (free_oldval)
+ free_string_option(oldval);
+ if (new_value_alloced)
+ options[opt_idx].flags |= P_ALLOCED;
+*** ../vim-6.3.025/src/syntax.c Wed Jun 9 14:56:25 2004
+--- src/syntax.c Mon Sep 13 15:44:04 2004
+***************
+*** 6016,6022 ****
+ * If syntax highlighting is enabled load the highlighting for it.
+ */
+ if (get_var_value((char_u *)"g:syntax_on") != NULL)
+! (void)cmd_runtime((char_u *)"syntax/syncolor.vim", TRUE);
+ #endif
+ }
+
+--- 6016,6033 ----
+ * If syntax highlighting is enabled load the highlighting for it.
+ */
+ if (get_var_value((char_u *)"g:syntax_on") != NULL)
+! {
+! static int recursive = 0;
+!
+! if (recursive >= 5)
+! EMSG(_("E679: recursive loop loading syncolor.vim"));
+! else
+! {
+! ++recursive;
+! (void)cmd_runtime((char_u *)"syntax/syncolor.vim", TRUE);
+! --recursive;
+! }
+! }
+ #endif
+ }
+
+*** ../vim-6.3.025/src/version.c Sun Sep 5 20:53:04 2004
+--- src/version.c Mon Sep 13 16:33:19 2004
+***************
+*** 643,644 ****
+--- 643,646 ----
+ { /* Add new patch number below this line */
++ /**/
++ 26,
+ /**/
+
+--
+A special law prohibits unmarried women from parachuting on Sunday or she
+shall risk arrest, fine, and/or jailing.
+ [real standing law in Florida, United States of America]
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ 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.3.027
+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.3.027
+Problem: VMS: Writing a file may insert extra CR characters. Not all
+ terminals are recognized correctly. Vt320 doesn't support colors.
+ Environment variables are not expanded correctly.
+Solution: Use another method to write files. Add vt320 termcap codes for
+ colors. (Zoltan Arpadffy)
+Files: src/fileio.c, src/misc1.c, src/os_unix.c, src/structs.h,
+ src/term.c
+
+
+*** ../vim-6.3.026/src/fileio.c Sat Sep 4 16:05:51 2004
+--- src/fileio.c Sat Sep 4 15:55:15 2004
+***************
+*** 479,484 ****
+--- 479,486 ----
+ #endif
+ #ifdef VMS
+ curbuf->b_fab_rfm = st.st_fab_rfm;
++ curbuf->b_fab_rat = st.st_fab_rat;
++ curbuf->b_fab_mrs = st.st_fab_mrs;
+ #endif
+ }
+ else
+***************
+*** 2543,2548 ****
+--- 2545,2555 ----
+ }
+ #endif /* UNIX */
+
++ #if defined(VMS) && !defined(MIN)
++ /* Older DECC compiler for VAX doesn't define MIN() */
++ # define MIN(a, b) ((a) < (b) ? (a) : (b))
++ #endif
++
+ /*
+ * buf_write() - write to file 'fname' lines 'start' through 'end'
+ *
+***************
+*** 3936,3955 ****
+ * On VMS there is a problem: newlines get added when writing blocks
+ * at a time. Fix it by writing a line at a time.
+ * This is much slower!
+! * Explanation: Vim can not handle, so far, variable record format.
+! * With $analize/rms filename you can get the rms file structure, and
+! * if the Record format filed is variable, CR will be added after
+! * every written buffer. In other cases it works without this fix.
+! * From other side read is about 5 times slower for "variable record
+! * format" files.
+ */
+! if (buf->b_fab_rfm == FAB$C_VAR)
+ {
+! write_info.bw_len = len;
+! if (buf_write_bytes(&write_info) == FAIL)
+ {
+! end = 0; /* write error: break loop */
+! break;
+ }
+ write_info.bw_len = bufsize;
+ nchars += len;
+--- 3943,3971 ----
+ * On VMS there is a problem: newlines get added when writing blocks
+ * at a time. Fix it by writing a line at a time.
+ * This is much slower!
+! * Explanation: VAX/DECC RTL insists that records in some RMS
+! * structures end with a newline (carriage return) character, and if
+! * they don't it adds one.
+! * With other RMS structures it works perfect without this fix.
+ */
+! if ((buf->b_fab_rat & (FAB$M_FTN | FAB$M_CR)) != 0)
+ {
+! int b2write;
+!
+! buf->b_fab_mrs = (buf->b_fab_mrs == 0
+! ? MIN(4096, bufsize)
+! : MIN(buf->b_fab_mrs, bufsize));
+!
+! b2write = len;
+! while (b2write > 0)
+ {
+! write_info.bw_len = MIN(b2write, buf->b_fab_mrs);
+! if (buf_write_bytes(&write_info) == FAIL)
+! {
+! end = 0;
+! break;
+! }
+! b2write -= MIN(b2write, buf->b_fab_mrs);
+ }
+ write_info.bw_len = bufsize;
+ nchars += len;
+*** ../vim-6.3.026/src/misc1.c Tue Aug 31 20:06:01 2004
+--- src/misc1.c Tue Aug 31 20:02:22 2004
+***************
+*** 3233,3239 ****
+ while (*src && dstlen > 0)
+ {
+ copy_char = TRUE;
+! if (*src == '$'
+ #if defined(MSDOS) || defined(MSWIN) || defined(OS2)
+ || *src == '%'
+ #endif
+--- 3233,3243 ----
+ while (*src && dstlen > 0)
+ {
+ copy_char = TRUE;
+! if ((*src == '$'
+! #ifdef VMS
+! && at_start
+! #endif
+! )
+ #if defined(MSDOS) || defined(MSWIN) || defined(OS2)
+ || *src == '%'
+ #endif
+*** ../vim-6.3.026/src/os_unix.c Wed Jun 9 14:56:26 2004
+--- src/os_unix.c Mon Aug 30 12:07:11 2004
+***************
+*** 1921,1929 ****
+ {
+ if (name == NULL)
+ return FALSE; /* actually all ANSI comp. terminals should be here */
+! return (STRNICMP(name, "vt3", 3) == 0 /* it will cover all from VT100-VT300 */
+! || STRNICMP(name, "vt2", 3) == 0 /* TODO: from VT340 can hanle colors */
+! || STRNICMP(name, "vt1", 3) == 0
+ || STRCMP(name, "builtin_vt320") == 0);
+ }
+
+--- 1921,1929 ----
+ {
+ if (name == NULL)
+ return FALSE; /* actually all ANSI comp. terminals should be here */
+! /* catch VT100 - VT5xx */
+! return ((STRNICMP(name, "vt", 2) == 0
+! && vim_strchr((char_u *)"12345", name[2]) != NULL)
+ || STRCMP(name, "builtin_vt320") == 0);
+ }
+
+*** ../vim-6.3.026/src/structs.h Wed Jun 9 14:56:26 2004
+--- src/structs.h Mon Aug 30 12:09:57 2004
+***************
+*** 918,924 ****
+ FSSpec b_FSSpec; /* MacOS File Identification */
+ #endif
+ #ifdef VMS
+! char b_fab_rfm; /* Record format */
+ #endif
+ #ifdef FEAT_SNIFF
+ int b_sniff; /* file was loaded through Sniff */
+--- 918,926 ----
+ FSSpec b_FSSpec; /* MacOS File Identification */
+ #endif
+ #ifdef VMS
+! char b_fab_rfm; /* Record format */
+! char b_fab_rat; /* Record attribute */
+! unsigned int b_fab_mrs; /* Max record size */
+ #endif
+ #ifdef FEAT_SNIFF
+ int b_sniff; /* file was loaded through Sniff */
+*** ../vim-6.3.026/src/term.c Wed Jun 9 14:56:26 2004
+--- src/term.c Mon Aug 30 12:02:37 2004
+***************
+*** 808,815 ****
+--- 808,827 ----
+ {(int)KS_CDL, IF_EB("\033[%dM", ESC_STR "[%dM")},
+ # endif
+ {(int)KS_CL, IF_EB("\033[H\033[2J", ESC_STR "[H" ESC_STR_nc "[2J")},
++ {(int)KS_CD, IF_EB("\033[J", ESC_STR "[J")},
++ {(int)KS_CCO, "8"}, /* allow 8 colors */
+ {(int)KS_ME, IF_EB("\033[0m", ESC_STR "[0m")},
+ {(int)KS_MR, IF_EB("\033[7m", ESC_STR "[7m")},
++ {(int)KS_MD, IF_EB("\033[1m", ESC_STR "[1m")}, /* bold mode */
++ {(int)KS_SE, IF_EB("\033[22m", ESC_STR "[22m")},/* normal mode */
++ {(int)KS_UE, IF_EB("\033[24m", ESC_STR "[24m")},/* exit underscore mode */
++ {(int)KS_US, IF_EB("\033[4m", ESC_STR "[4m")}, /* underscore mode */
++ {(int)KS_CZH, IF_EB("\033[34;43m", ESC_STR "[34;43m" )}, /* italic mode: blue text on yellow */
++ {(int)KS_CZR, IF_EB("\033[0m", ESC_STR "[0m")}, /* italic mode end */
++ {(int)KS_CAB, IF_EB("\033[4%dm", ESC_STR "[4%dm" )}, /* set background color (ANSI) */
++ {(int)KS_CAF, IF_EB("\033[3%dm", ESC_STR "[3%dm" )}, /* set foreground color (ANSI) */
++ {(int)KS_CSB, IF_EB("\033[102;%dm", ESC_STR "[102;%dm" )}, /* set screen background color */
++ {(int)KS_CSF, IF_EB("\033[101;%dm", ESC_STR "[101;%dm" )}, /* set screen foreground color */
+ {(int)KS_MS, "y"},
+ {(int)KS_UT, "y"},
+ {(int)KS_LE, "\b"},
+*** ../vim-6.3.026/src/version.c Mon Sep 13 16:36:12 2004
+--- src/version.c Sat Sep 18 20:25:07 2004
+***************
+*** 643,644 ****
+--- 643,646 ----
+ { /* Add new patch number below this line */
++ /**/
++ 27,
+ /**/
+
+--
+Scientists decoded the first message from an alien civilization:
+ SIMPLY SEND 6 TIMES 10 TO THE 50 ATOMS OF HYDROGEN TO THE STAR
+SYSTEM AT THE TOP OF THE LIST, CROSS OFF THAT STAR SYSTEM, THEN PUT
+YOUR STAR SYSTEM AT THE BOTTOM OF THE LIST AND SEND IT TO 100 OTHER
+STAR SYSTEMS. WITHIN ONE TENTH GALACTIC ROTATION YOU WILL RECEIVE
+ENOUGH HYDROGREN TO POWER YOUR CIVILIZATION UNTIL ENTROPY REACHES ITS
+MAXIMUM! IT REALLY WORKS!
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ 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.3.028
+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.3.028
+Problem: When appending to a file the BOM marker may be written. (Alex
+ Jakushev)
+Solution: Do not write the BOM marker when appending.
+Files: src/fileio.c
+
+
+*** ../vim-6.3.027/src/fileio.c Sat Sep 18 20:28:07 2004
+--- src/fileio.c Sat Sep 18 20:51:58 2004
+***************
+*** 3838,3845 ****
+ #ifdef FEAT_MBYTE
+ /*
+ * The BOM is written just after the encryption magic number.
+ */
+! if (buf->b_p_bomb && !write_bin)
+ {
+ write_info.bw_len = make_bom(buffer, fenc);
+ if (write_info.bw_len > 0)
+--- 3838,3847 ----
+ #ifdef FEAT_MBYTE
+ /*
+ * The BOM is written just after the encryption magic number.
++ * Skip it when appending and the file already existed, the BOM only makes
++ * sense at the start of the file.
+ */
+! if (buf->b_p_bomb && !write_bin && (!append || perm < 0))
+ {
+ write_info.bw_len = make_bom(buffer, fenc);
+ if (write_info.bw_len > 0)
+*** ../vim-6.3.027/src/version.c Sat Sep 18 20:28:07 2004
+--- src/version.c Sat Sep 18 21:12:43 2004
+***************
+*** 643,644 ****
+--- 643,646 ----
+ { /* Add new patch number below this line */
++ /**/
++ 28,
+ /**/
+
+--
+The word "leader" is derived from the word "lead", as in the material that
+bullets are made out of. The term "leader" was popularized at about the same
+time as the invention of firearms. It grew out of the observation that the
+person in charge of every organization was the person whom everyone wanted to
+fill with hot lead.
+ I don't recomment this; it's just a point of historical interest.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ 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.3.029
+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.3.029
+Problem: Crash when inserting a line break. (Walter Briscoe)
+Solution: In the syntax highlighting code, don't use an old state after a
+ change was made, current_col may be past the end of the line.
+Files: src/syntax.c
+
+
+*** ../vim-6.3.028/src/syntax.c Mon Sep 13 16:36:12 2004
+--- src/syntax.c Tue Oct 5 16:57:58 2004
+***************
+*** 437,453 ****
+ linenr_T parsed_lnum;
+ linenr_T first_stored;
+ int dist;
+
+ reg_syn = TRUE; /* let vim_regexec() know we're using syntax */
+
+ /*
+ * After switching buffers, invalidate current_state.
+ */
+! if (syn_buf != wp->w_buffer)
+ {
+ invalidate_current_state();
+ syn_buf = wp->w_buffer;
+ }
+ syn_win = wp;
+
+ /*
+--- 437,457 ----
+ linenr_T parsed_lnum;
+ linenr_T first_stored;
+ int dist;
++ static int changedtick = 0; /* remember the last change ID */
+
+ reg_syn = TRUE; /* let vim_regexec() know we're using syntax */
+
+ /*
+ * After switching buffers, invalidate current_state.
++ * Also do this when a change was made, the current state may be invalid
++ * then.
+ */
+! if (syn_buf != wp->w_buffer || changedtick != syn_buf->b_changedtick)
+ {
+ invalidate_current_state();
+ syn_buf = wp->w_buffer;
+ }
++ changedtick = syn_buf->b_changedtick;
+ syn_win = wp;
+
+ /*
+*** ../vim-6.3.028/src/version.c Sat Sep 18 21:13:25 2004
+--- src/version.c Tue Oct 5 17:01:10 2004
+***************
+*** 643,644 ****
+--- 643,646 ----
+ { /* Add new patch number below this line */
++ /**/
++ 29,
+ /**/
+
+--
+From "know your smileys":
+ :-H Is missing teeth
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
+ \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///