--- /dev/null
+To: vim-dev@vim.org
+Subject: patch 7.1.101
+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 7.1.101
+Problem: Ruby: The Buffer.line= method does not work.
+Solution: Add the "self" argument to set_current_line(). (Jonathan Hankins)
+Files: src/if_ruby.c
+
+
+*** ../vim-7.1.100/src/if_ruby.c Sat May 12 15:01:49 2007
+--- src/if_ruby.c Mon Sep 10 10:40:38 2007
+***************
+*** 789,795 ****
+ return get_buffer_line(curbuf, curwin->w_cursor.lnum);
+ }
+
+! static VALUE set_current_line(VALUE str)
+ {
+ return set_buffer_line(curbuf, curwin->w_cursor.lnum, str);
+ }
+--- 789,795 ----
+ return get_buffer_line(curbuf, curwin->w_cursor.lnum);
+ }
+
+! static VALUE set_current_line(VALUE self, VALUE str)
+ {
+ return set_buffer_line(curbuf, curwin->w_cursor.lnum, str);
+ }
+*** ../vim-7.1.100/src/version.c Thu Sep 6 17:38:06 2007
+--- src/version.c Thu Sep 13 14:59:47 2007
+***************
+*** 668,669 ****
+--- 668,671 ----
+ { /* Add new patch number below this line */
++ /**/
++ 101,
+ /**/
+
+--
+The question is: What do you do with your life?
+The wrong answer is: Become the richest guy in the graveyard.
+ (billionaire and Oracle founder Larry Ellison)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: patch 7.1.102
+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 7.1.102
+Problem: Perl interface doesn't compile with new version of Perl.
+Solution: Add two variables to the dynamic library loading. (Suresh
+ Govindachar)
+Files: src/if_perl.xs
+
+
+*** ../vim-7.1.101/src/if_perl.xs Wed Aug 16 19:33:57 2006
+--- src/if_perl.xs Wed Sep 5 22:00:36 2007
+***************
+*** 40,45 ****
+--- 40,65 ----
+ # define PERL_SUBVERSION SUBVERSION
+ #endif
+
++ /*
++ * Quoting Jan Dubois of Active State:
++ * ActivePerl build 822 still identifies itself as 5.8.8 but already
++ * contains many of the changes from the upcoming Perl 5.8.9 release.
++ *
++ * The changes include addition of two symbols (Perl_sv_2iv_flags,
++ * Perl_newXS_flags) not present in earlier releases.
++ *
++ * Jan Dubois suggested the following guarding scheme:
++ */
++ #if (ACTIVEPERL_VERSION >= 822)
++ # define PERL589_OR_LATER
++ #endif
++ #if (PERL_REVISION == 5) && (PERL_VERSION == 8) && (PERL_SUBVERSION >= 9)
++ # define PERL589_OR_LATER
++ #endif
++ #if (PERL_REVISION == 5) && (PERL_VERSION >= 9)
++ # define PERL589_OR_LATER
++ #endif
++
+ #ifndef pTHX
+ # define pTHX void
+ # define pTHX_
+***************
+*** 109,114 ****
+--- 129,138 ----
+ # else
+ # define Perl_sv_catpvn dll_Perl_sv_catpvn
+ # endif
++ #ifdef PERL589_OR_LATER
++ # define Perl_sv_2iv_flags dll_Perl_sv_2iv_flags
++ # define Perl_newXS_flags dll_Perl_newXS_flags
++ #endif
+ # define Perl_sv_free dll_Perl_sv_free
+ # define Perl_sv_isa dll_Perl_sv_isa
+ # define Perl_sv_magic dll_Perl_sv_magic
+***************
+*** 192,197 ****
+--- 216,225 ----
+ #else
+ static void (*Perl_sv_catpvn)(pTHX_ SV*, const char*, STRLEN);
+ #endif
++ #ifdef PERL589_OR_LATER
++ static IV (*Perl_sv_2iv_flags)(pTHX_ SV* sv, I32 flags);
++ static CV * (*Perl_newXS_flags)(pTHX_ const char *name, XSUBADDR_t subaddr, const char *const filename, const char *const proto, U32 flags);
++ #endif
+ static void (*Perl_sv_free)(pTHX_ SV*);
+ static int (*Perl_sv_isa)(pTHX_ SV*, const char*);
+ static void (*Perl_sv_magic)(pTHX_ SV*, SV*, int, const char*, I32);
+***************
+*** 266,271 ****
+--- 294,303 ----
+ {"Perl_sv_2pv_nolen", (PERL_PROC*)&Perl_sv_2pv_nolen},
+ #else
+ {"Perl_sv_2pv", (PERL_PROC*)&Perl_sv_2pv},
++ #endif
++ #ifdef PERL589_OR_LATER
++ {"Perl_sv_2iv_flags", (PERL_PROC*)&Perl_sv_2iv_flags},
++ {"Perl_newXS_flags", (PERL_PROC*)&Perl_newXS_flags},
+ #endif
+ {"Perl_sv_bless", (PERL_PROC*)&Perl_sv_bless},
+ #if (PERL_REVISION == 5) && (PERL_VERSION >= 8)
+*** ../vim-7.1.101/src/version.c Thu Sep 13 15:00:28 2007
+--- src/version.c Thu Sep 13 15:18:36 2007
+***************
+*** 668,669 ****
+--- 668,671 ----
+ { /* Add new patch number below this line */
++ /**/
++ 102,
+ /**/
+
+--
+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/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: patch 7.1.103
+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 7.1.103
+Problem: Using "dw" with the cursor past the end of the last line (using
+ CTRL-\ CTRL-O from Insert mode) deletes a character. (Tim Chase)
+Solution: Don't move the cursor back when the movement failed.
+Files: src/normal.c
+
+
+*** ../vim-7.1.102/src/normal.c Tue Aug 14 22:54:00 2007
+--- src/normal.c Tue Sep 11 19:32:42 2007
+***************
+*** 8364,8370 ****
+ n = fwd_word(cap->count1, cap->arg, cap->oap->op_type != OP_NOP);
+
+ /* Don't leave the cursor on the NUL past a line */
+! if (curwin->w_cursor.col && gchar_cursor() == NUL)
+ {
+ --curwin->w_cursor.col;
+ cap->oap->inclusive = TRUE;
+--- 8364,8370 ----
+ n = fwd_word(cap->count1, cap->arg, cap->oap->op_type != OP_NOP);
+
+ /* Don't leave the cursor on the NUL past a line */
+! if (n != FAIL && curwin->w_cursor.col > 0 && gchar_cursor() == NUL)
+ {
+ --curwin->w_cursor.col;
+ cap->oap->inclusive = TRUE;
+*** ../vim-7.1.102/src/version.c Thu Sep 13 15:19:32 2007
+--- src/version.c Thu Sep 13 15:32:05 2007
+***************
+*** 668,669 ****
+--- 668,671 ----
+ { /* Add new patch number below this line */
++ /**/
++ 103,
+ /**/
+
+--
+ARTHUR: Then who is your lord?
+WOMAN: We don't have a lord.
+ARTHUR: What?
+DENNIS: I told you. We're an anarcho-syndicalist commune. We take it in
+ turns to act as a sort of executive officer for the week.
+ The Quest for the Holy Grail (Monty Python)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: patch 7.1.104
+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 7.1.104 (after 7.1.095)
+Problem: When 'lazyredraw' is set a focus event causes redraw to be
+ postponed until a key is pressed.
+Solution: Instead of not returning from vgetc() when a focus event is
+ encountered return K_IGNORE. Add plain_vgetc() for when the
+ caller doesn't want to get K_IGNORE.
+Files: src/digraph.c, src/edit.c, src/ex_cmds.c, src/ex_getln.c,
+ src/getchar.c, src/normal.c, src/proto/getchar.pro, src/window.c
+
+
+*** ../vim-7.1.103/src/digraph.c Sat Jul 7 13:57:39 2007
+--- src/digraph.c Thu Sep 13 16:11:54 2007
+***************
+*** 2028,2034 ****
+
+ ++no_mapping;
+ ++allow_keys;
+! c = safe_vgetc();
+ --no_mapping;
+ --allow_keys;
+ if (c != ESC) /* ESC cancels CTRL-K */
+--- 2028,2034 ----
+
+ ++no_mapping;
+ ++allow_keys;
+! c = plain_vgetc();
+ --no_mapping;
+ --allow_keys;
+ if (c != ESC) /* ESC cancels CTRL-K */
+***************
+*** 2050,2056 ****
+ #endif
+ ++no_mapping;
+ ++allow_keys;
+! cc = safe_vgetc();
+ --no_mapping;
+ --allow_keys;
+ if (cc != ESC) /* ESC cancels CTRL-K */
+--- 2050,2056 ----
+ #endif
+ ++no_mapping;
+ ++allow_keys;
+! cc = plain_vgetc();
+ --no_mapping;
+ --allow_keys;
+ if (cc != ESC) /* ESC cancels CTRL-K */
+***************
+*** 2350,2356 ****
+ if (*curbuf->b_p_keymap == NUL)
+ {
+ /* Stop any active keymap and clear the table. Also remove
+! * b:keymap_unload, as no keymap is active now. */
+ keymap_unload();
+ do_cmdline_cmd((char_u *)"unlet! b:keymap_name");
+ }
+--- 2350,2356 ----
+ if (*curbuf->b_p_keymap == NUL)
+ {
+ /* Stop any active keymap and clear the table. Also remove
+! * b:keymap_name, as no keymap is active now. */
+ keymap_unload();
+ do_cmdline_cmd((char_u *)"unlet! b:keymap_name");
+ }
+*** ../vim-7.1.103/src/edit.c Sun Aug 12 16:38:03 2007
+--- src/edit.c Thu Sep 13 16:17:54 2007
+***************
+*** 788,794 ****
+ ins_redraw(FALSE);
+ ++no_mapping;
+ ++allow_keys;
+! c = safe_vgetc();
+ --no_mapping;
+ --allow_keys;
+ if (c != Ctrl_N && c != Ctrl_G && c != Ctrl_O)
+--- 788,794 ----
+ ins_redraw(FALSE);
+ ++no_mapping;
+ ++allow_keys;
+! c = plain_vgetc();
+ --no_mapping;
+ --allow_keys;
+ if (c != Ctrl_N && c != Ctrl_G && c != Ctrl_O)
+***************
+*** 981,987 ****
+ #ifdef FEAT_NETBEANS_INTG
+ case K_F21: /* NetBeans command */
+ ++no_mapping; /* don't map the next key hits */
+! i = safe_vgetc();
+ --no_mapping;
+ netbeans_keycommand(i);
+ break;
+--- 981,987 ----
+ #ifdef FEAT_NETBEANS_INTG
+ case K_F21: /* NetBeans command */
+ ++no_mapping; /* don't map the next key hits */
+! i = plain_vgetc();
+ --no_mapping;
+ netbeans_keycommand(i);
+ break;
+***************
+*** 5224,5233 ****
+ i = 0;
+ for (;;)
+ {
+! do
+! nc = safe_vgetc();
+! while (nc == K_IGNORE || nc == K_VER_SCROLLBAR
+! || nc == K_HOR_SCROLLBAR);
+ #ifdef FEAT_CMDL_INFO
+ if (!(State & CMDLINE)
+ # ifdef FEAT_MBYTE
+--- 5224,5230 ----
+ i = 0;
+ for (;;)
+ {
+! nc = plain_vgetc();
+ #ifdef FEAT_CMDL_INFO
+ if (!(State & CMDLINE)
+ # ifdef FEAT_MBYTE
+***************
+*** 7575,7581 ****
+ * deleted when ESC is hit.
+ */
+ ++no_mapping;
+! regname = safe_vgetc();
+ #ifdef FEAT_LANGMAP
+ LANGMAP_ADJUST(regname, TRUE);
+ #endif
+--- 7572,7578 ----
+ * deleted when ESC is hit.
+ */
+ ++no_mapping;
+! regname = plain_vgetc();
+ #ifdef FEAT_LANGMAP
+ LANGMAP_ADJUST(regname, TRUE);
+ #endif
+***************
+*** 7586,7592 ****
+ #ifdef FEAT_CMDL_INFO
+ add_to_showcmd_c(literally);
+ #endif
+! regname = safe_vgetc();
+ #ifdef FEAT_LANGMAP
+ LANGMAP_ADJUST(regname, TRUE);
+ #endif
+--- 7583,7589 ----
+ #ifdef FEAT_CMDL_INFO
+ add_to_showcmd_c(literally);
+ #endif
+! regname = plain_vgetc();
+ #ifdef FEAT_LANGMAP
+ LANGMAP_ADJUST(regname, TRUE);
+ #endif
+***************
+*** 7677,7683 ****
+ * deleted when ESC is hit.
+ */
+ ++no_mapping;
+! c = safe_vgetc();
+ --no_mapping;
+ switch (c)
+ {
+--- 7674,7680 ----
+ * deleted when ESC is hit.
+ */
+ ++no_mapping;
+! c = plain_vgetc();
+ --no_mapping;
+ switch (c)
+ {
+***************
+*** 9356,9362 ****
+ * mode message to be deleted when ESC is hit */
+ ++no_mapping;
+ ++allow_keys;
+! c = safe_vgetc();
+ --no_mapping;
+ --allow_keys;
+ if (IS_SPECIAL(c) || mod_mask) /* special key */
+--- 9353,9359 ----
+ * mode message to be deleted when ESC is hit */
+ ++no_mapping;
+ ++allow_keys;
+! c = plain_vgetc();
+ --no_mapping;
+ --allow_keys;
+ if (IS_SPECIAL(c) || mod_mask) /* special key */
+***************
+*** 9388,9394 ****
+ }
+ ++no_mapping;
+ ++allow_keys;
+! cc = safe_vgetc();
+ --no_mapping;
+ --allow_keys;
+ if (cc != ESC)
+--- 9385,9391 ----
+ }
+ ++no_mapping;
+ ++allow_keys;
+! cc = plain_vgetc();
+ --no_mapping;
+ --allow_keys;
+ if (cc != ESC)
+*** ../vim-7.1.103/src/ex_cmds.c Tue Aug 21 15:28:32 2007
+--- src/ex_cmds.c Thu Sep 13 16:19:40 2007
+***************
+*** 4498,4504 ****
+ *
+ * The new text is built up in new_start[]. It has some extra
+ * room to avoid using alloc()/free() too often. new_start_len is
+! * the lenght of the allocated memory at new_start.
+ *
+ * Make a copy of the old line, so it won't be taken away when
+ * updating the screen or handling a multi-line match. The "old_"
+--- 4499,4505 ----
+ *
+ * The new text is built up in new_start[]. It has some extra
+ * room to avoid using alloc()/free() too often. new_start_len is
+! * the length of the allocated memory at new_start.
+ *
+ * Make a copy of the old line, so it won't be taken away when
+ * updating the screen or handling a multi-line match. The "old_"
+***************
+*** 4669,4675 ****
+ #endif
+ ++no_mapping; /* don't map this key */
+ ++allow_keys; /* allow special keys */
+! i = safe_vgetc();
+ --allow_keys;
+ --no_mapping;
+
+--- 4670,4676 ----
+ #endif
+ ++no_mapping; /* don't map this key */
+ ++allow_keys; /* allow special keys */
+! i = plain_vgetc();
+ --allow_keys;
+ --no_mapping;
+
+*** ../vim-7.1.103/src/ex_getln.c Mon Aug 6 22:27:12 2007
+--- src/ex_getln.c Thu Sep 13 16:20:49 2007
+***************
+*** 641,647 ****
+ {
+ ++no_mapping;
+ ++allow_keys;
+! c = safe_vgetc();
+ --no_mapping;
+ --allow_keys;
+ /* CTRL-\ e doesn't work when obtaining an expression. */
+--- 641,647 ----
+ {
+ ++no_mapping;
+ ++allow_keys;
+! c = plain_vgetc();
+ --no_mapping;
+ --allow_keys;
+ /* CTRL-\ e doesn't work when obtaining an expression. */
+***************
+*** 1091,1101 ****
+ #endif
+ putcmdline('"', TRUE);
+ ++no_mapping;
+! i = c = safe_vgetc(); /* CTRL-R <char> */
+ if (i == Ctrl_O)
+ i = Ctrl_R; /* CTRL-R CTRL-O == CTRL-R CTRL-R */
+ if (i == Ctrl_R)
+! c = safe_vgetc(); /* CTRL-R CTRL-R <char> */
+ --no_mapping;
+ #ifdef FEAT_EVAL
+ /*
+--- 1091,1101 ----
+ #endif
+ putcmdline('"', TRUE);
+ ++no_mapping;
+! i = c = plain_vgetc(); /* CTRL-R <char> */
+ if (i == Ctrl_O)
+ i = Ctrl_R; /* CTRL-R CTRL-O == CTRL-R CTRL-R */
+ if (i == Ctrl_R)
+! c = plain_vgetc(); /* CTRL-R CTRL-R <char> */
+ --no_mapping;
+ #ifdef FEAT_EVAL
+ /*
+*** ../vim-7.1.103/src/getchar.c Wed Sep 5 21:45:54 2007
+--- src/getchar.c Thu Sep 13 16:16:53 2007
+***************
+*** 1597,1608 ****
+ }
+ #endif
+ #ifdef FEAT_GUI
+! /* The caller doesn't need to know that the focus event is delayed
+! * until getting a character. */
+ if (c == K_FOCUSGAINED || c == K_FOCUSLOST)
+ {
+ ui_focus_change(c == K_FOCUSGAINED);
+! continue;
+ }
+
+ /* Translate K_CSI to CSI. The special key is only used to avoid
+--- 1597,1609 ----
+ }
+ #endif
+ #ifdef FEAT_GUI
+! /* Handle focus event here, so that the caller doesn't need to
+! * know about it. Return K_IGNORE so that we loop once (needed if
+! * 'lazyredraw' is set). */
+ if (c == K_FOCUSGAINED || c == K_FOCUSLOST)
+ {
+ ui_focus_change(c == K_FOCUSGAINED);
+! c = K_IGNORE;
+ }
+
+ /* Translate K_CSI to CSI. The special key is only used to avoid
+***************
+*** 1744,1749 ****
+--- 1745,1766 ----
+ c = vgetc();
+ if (c == NUL)
+ c = get_keystroke();
++ return c;
++ }
++
++ /*
++ * Like safe_vgetc(), but loop to handle K_IGNORE.
++ * Also ignore scrollbar events.
++ */
++ int
++ plain_vgetc()
++ {
++ int c;
++
++ do
++ {
++ c = safe_vgetc();
++ } while (c == K_IGNORE || c == K_VER_SCROLLBAR || c == K_HOR_SCROLLBAR);
+ return c;
+ }
+
+*** ../vim-7.1.103/src/normal.c Thu Sep 13 15:33:18 2007
+--- src/normal.c Thu Sep 13 16:24:51 2007
+***************
+*** 696,702 ****
+ ++allow_keys; /* no mapping for nchar, but keys */
+ }
+ ++no_zero_mapping; /* don't map zero here */
+! c = safe_vgetc();
+ #ifdef FEAT_LANGMAP
+ LANGMAP_ADJUST(c, TRUE);
+ #endif
+--- 696,702 ----
+ ++allow_keys; /* no mapping for nchar, but keys */
+ }
+ ++no_zero_mapping; /* don't map zero here */
+! c = plain_vgetc();
+ #ifdef FEAT_LANGMAP
+ LANGMAP_ADJUST(c, TRUE);
+ #endif
+***************
+*** 721,727 ****
+ ca.count0 = 0;
+ ++no_mapping;
+ ++allow_keys; /* no mapping for nchar, but keys */
+! c = safe_vgetc(); /* get next character */
+ #ifdef FEAT_LANGMAP
+ LANGMAP_ADJUST(c, TRUE);
+ #endif
+--- 721,727 ----
+ ca.count0 = 0;
+ ++no_mapping;
+ ++allow_keys; /* no mapping for nchar, but keys */
+! c = plain_vgetc(); /* get next character */
+ #ifdef FEAT_LANGMAP
+ LANGMAP_ADJUST(c, TRUE);
+ #endif
+***************
+*** 900,906 ****
+ * For 'g' get the next character now, so that we can check for
+ * "gr", "g'" and "g`".
+ */
+! ca.nchar = safe_vgetc();
+ #ifdef FEAT_LANGMAP
+ LANGMAP_ADJUST(ca.nchar, TRUE);
+ #endif
+--- 900,906 ----
+ * For 'g' get the next character now, so that we can check for
+ * "gr", "g'" and "g`".
+ */
+! ca.nchar = plain_vgetc();
+ #ifdef FEAT_LANGMAP
+ LANGMAP_ADJUST(ca.nchar, TRUE);
+ #endif
+***************
+*** 957,963 ****
+ im_set_active(TRUE);
+ #endif
+
+! *cp = safe_vgetc();
+
+ if (langmap_active)
+ {
+--- 957,963 ----
+ im_set_active(TRUE);
+ #endif
+
+! *cp = plain_vgetc();
+
+ if (langmap_active)
+ {
+***************
+*** 1045,1051 ****
+ }
+ if (c > 0)
+ {
+! c = safe_vgetc();
+ if (c != Ctrl_N && c != Ctrl_G)
+ vungetc(c);
+ else
+--- 1045,1051 ----
+ }
+ if (c > 0)
+ {
+! c = plain_vgetc();
+ if (c != Ctrl_N && c != Ctrl_G)
+ vungetc(c);
+ else
+***************
+*** 1064,1070 ****
+ while (enc_utf8 && lang && (c = vpeekc()) > 0
+ && (c >= 0x100 || MB_BYTE2LEN(vpeekc()) > 1))
+ {
+! c = safe_vgetc();
+ if (!utf_iscomposing(c))
+ {
+ vungetc(c); /* it wasn't, put it back */
+--- 1064,1070 ----
+ while (enc_utf8 && lang && (c = vpeekc()) > 0
+ && (c >= 0x100 || MB_BYTE2LEN(vpeekc()) > 1))
+ {
+! c = plain_vgetc();
+ if (!utf_iscomposing(c))
+ {
+ vungetc(c); /* it wasn't, put it back */
+***************
+*** 4564,4570 ****
+ #endif
+ ++no_mapping;
+ ++allow_keys; /* no mapping for nchar, but allow key codes */
+! nchar = safe_vgetc();
+ #ifdef FEAT_LANGMAP
+ LANGMAP_ADJUST(nchar, TRUE);
+ #endif
+--- 4564,4570 ----
+ #endif
+ ++no_mapping;
+ ++allow_keys; /* no mapping for nchar, but allow key codes */
+! nchar = plain_vgetc();
+ #ifdef FEAT_LANGMAP
+ LANGMAP_ADJUST(nchar, TRUE);
+ #endif
+***************
+*** 4922,4928 ****
+ case 'u': /* "zug" and "zuw": undo "zg" and "zw" */
+ ++no_mapping;
+ ++allow_keys; /* no mapping for nchar, but allow key codes */
+! nchar = safe_vgetc();
+ #ifdef FEAT_LANGMAP
+ LANGMAP_ADJUST(nchar, TRUE);
+ #endif
+--- 4922,4928 ----
+ case 'u': /* "zug" and "zuw": undo "zg" and "zw" */
+ ++no_mapping;
+ ++allow_keys; /* no mapping for nchar, but allow key codes */
+! nchar = plain_vgetc();
+ #ifdef FEAT_LANGMAP
+ LANGMAP_ADJUST(nchar, TRUE);
+ #endif
+*** ../vim-7.1.103/src/proto/getchar.pro Sun May 6 15:04:24 2007
+--- src/proto/getchar.pro Thu Sep 13 16:13:19 2007
+***************
+*** 38,43 ****
+--- 38,44 ----
+ void updatescript __ARGS((int c));
+ int vgetc __ARGS((void));
+ int safe_vgetc __ARGS((void));
++ int plain_vgetc __ARGS((void));
+ int vpeekc __ARGS((void));
+ int vpeekc_nomap __ARGS((void));
+ int vpeekc_any __ARGS((void));
+*** ../vim-7.1.103/src/window.c Sun Aug 12 16:55:01 2007
+--- src/window.c Thu Sep 13 16:25:01 2007
+***************
+*** 584,590 ****
+ ++no_mapping;
+ ++allow_keys; /* no mapping for xchar, but allow key codes */
+ if (xchar == NUL)
+! xchar = safe_vgetc();
+ #ifdef FEAT_LANGMAP
+ LANGMAP_ADJUST(xchar, TRUE);
+ #endif
+--- 584,590 ----
+ ++no_mapping;
+ ++allow_keys; /* no mapping for xchar, but allow key codes */
+ if (xchar == NUL)
+! xchar = plain_vgetc();
+ #ifdef FEAT_LANGMAP
+ LANGMAP_ADJUST(xchar, TRUE);
+ #endif
+*** ../vim-7.1.103/src/version.c Thu Sep 13 15:33:18 2007
+--- src/version.c Thu Sep 13 18:22:59 2007
+***************
+*** 668,669 ****
+--- 668,671 ----
+ { /* Add new patch number below this line */
++ /**/
++ 104,
+ /**/
+
+--
+ARTHUR: I am your king!
+WOMAN: Well, I didn't vote for you.
+ARTHUR: You don't vote for kings.
+WOMAN: Well, 'ow did you become king then?
+ The Quest for the Holy Grail (Monty Python)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: patch 7.1.105
+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 7.1.105
+Problem: Internal error when using "0 ? {'a': 1} : {}". (A.Politz)
+Solution: When parsing a dictionary value without using the value, don't try
+ obtaining the key name.
+Files: src/eval.c
+
+
+*** ../vim-7.1.104/src/eval.c Thu Sep 6 14:25:50 2007
+--- src/eval.c Thu Sep 13 20:29:31 2007
+***************
+*** 6746,6765 ****
+ clear_tv(&tvkey);
+ goto failret;
+ }
+! key = get_tv_string_buf_chk(&tvkey, buf);
+! if (key == NULL || *key == NUL)
+ {
+! /* "key" is NULL when get_tv_string_buf_chk() gave an errmsg */
+! if (key != NULL)
+! EMSG(_(e_emptykey));
+! clear_tv(&tvkey);
+! goto failret;
+ }
+
+ *arg = skipwhite(*arg + 1);
+ if (eval1(arg, &tv, evaluate) == FAIL) /* recursive! */
+ {
+! clear_tv(&tvkey);
+ goto failret;
+ }
+ if (evaluate)
+--- 6746,6769 ----
+ clear_tv(&tvkey);
+ goto failret;
+ }
+! if (evaluate)
+ {
+! key = get_tv_string_buf_chk(&tvkey, buf);
+! if (key == NULL || *key == NUL)
+! {
+! /* "key" is NULL when get_tv_string_buf_chk() gave an errmsg */
+! if (key != NULL)
+! EMSG(_(e_emptykey));
+! clear_tv(&tvkey);
+! goto failret;
+! }
+ }
+
+ *arg = skipwhite(*arg + 1);
+ if (eval1(arg, &tv, evaluate) == FAIL) /* recursive! */
+ {
+! if (evaluate)
+! clear_tv(&tvkey);
+ goto failret;
+ }
+ if (evaluate)
+*** ../vim-7.1.104/src/version.c Thu Sep 13 18:25:08 2007
+--- src/version.c Thu Sep 13 20:36:38 2007
+***************
+*** 668,669 ****
+--- 668,671 ----
+ { /* Add new patch number below this line */
++ /**/
++ 105,
+ /**/
+
+--
+DENNIS: Listen -- strange women lying in ponds distributing swords is no
+ basis for a system of government. Supreme executive power derives
+ from a mandate from the masses, not from some farcical aquatic
+ ceremony.
+ The Quest for the Holy Grail (Monty Python)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: patch 7.1.106
+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 7.1.106
+Problem: ":messages" doesn't quit listing on ":".
+Solution: Break the loop when "got_int" is set.
+Files: src/message.c
+
+
+*** ../vim-7.1.105/src/message.c Thu Sep 6 12:53:59 2007
+--- src/message.c Thu Sep 13 21:45:57 2007
+***************
+*** 828,834 ****
+ _("Messages maintainer: Bram Moolenaar <Bram@vim.org>"),
+ hl_attr(HLF_T));
+
+! for (p = first_msg_hist; p != NULL; p = p->next)
+ if (p->msg != NULL)
+ msg_attr(p->msg, p->attr);
+
+--- 828,834 ----
+ _("Messages maintainer: Bram Moolenaar <Bram@vim.org>"),
+ hl_attr(HLF_T));
+
+! for (p = first_msg_hist; p != NULL && !got_int; p = p->next)
+ if (p->msg != NULL)
+ msg_attr(p->msg, p->attr);
+
+*** ../vim-7.1.105/src/version.c Thu Sep 13 20:39:58 2007
+--- src/version.c Thu Sep 13 21:57:40 2007
+***************
+*** 668,669 ****
+--- 668,671 ----
+ { /* Add new patch number below this line */
++ /**/
++ 106,
+ /**/
+
+--
+I'm sure that I asked CBuilder to do a "full" install. Looks like I got
+a "fool" install, instead. Charles E Campbell, Jr, PhD
+
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: patch 7.1.107
+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 7.1.107
+Problem: When doing a block selection and using "s" to change the text,
+ while triggering auto-indenting, causes the wrong text to be
+ repeated in other lines. (Adri Verhoef)
+Solution: Compute the change of indent and compensate for that.
+Files: src/ops.c
+
+
+*** ../vim-7.1.106/src/ops.c Thu Jun 28 22:14:28 2007
+--- src/ops.c Thu Aug 30 11:41:10 2007
+***************
+*** 2477,2483 ****
+
+ /*
+ * Spaces and tabs in the indent may have changed to other spaces and
+! * tabs. Get the starting column again and correct the lenght.
+ * Don't do this when "$" used, end-of-line will have changed.
+ */
+ block_prep(oap, &bd2, oap->start.lnum, TRUE);
+--- 2477,2483 ----
+
+ /*
+ * Spaces and tabs in the indent may have changed to other spaces and
+! * tabs. Get the starting column again and correct the length.
+ * Don't do this when "$" used, end-of-line will have changed.
+ */
+ block_prep(oap, &bd2, oap->start.lnum, TRUE);
+***************
+*** 2534,2540 ****
+ #ifdef FEAT_VISUALEXTRA
+ long offset;
+ linenr_T linenr;
+! long ins_len, pre_textlen = 0;
+ char_u *firstline;
+ char_u *ins_text, *newp, *oldp;
+ struct block_def bd;
+--- 2534,2542 ----
+ #ifdef FEAT_VISUALEXTRA
+ long offset;
+ linenr_T linenr;
+! long ins_len;
+! long pre_textlen = 0;
+! long pre_indent = 0;
+ char_u *firstline;
+ char_u *ins_text, *newp, *oldp;
+ struct block_def bd;
+***************
+*** 2579,2585 ****
+ || gchar_cursor() == NUL))
+ coladvance_force(getviscol());
+ # endif
+! pre_textlen = (long)STRLEN(ml_get(oap->start.lnum));
+ bd.textcol = curwin->w_cursor.col;
+ }
+ #endif
+--- 2581,2589 ----
+ || gchar_cursor() == NUL))
+ coladvance_force(getviscol());
+ # endif
+! firstline = ml_get(oap->start.lnum);
+! pre_textlen = (long)STRLEN(firstline);
+! pre_indent = (long)(skipwhite(firstline) - firstline);
+ bd.textcol = curwin->w_cursor.col;
+ }
+ #endif
+***************
+*** 2598,2610 ****
+ */
+ if (oap->block_mode && oap->start.lnum != oap->end.lnum)
+ {
+ firstline = ml_get(oap->start.lnum);
+! /*
+! * Subsequent calls to ml_get() flush the firstline data - take a
+! * copy of the required bit.
+! */
+! if ((ins_len = (long)STRLEN(firstline) - pre_textlen) > 0)
+ {
+ if ((ins_text = alloc_check((unsigned)(ins_len + 1))) != NULL)
+ {
+ vim_strncpy(ins_text, firstline + bd.textcol, (size_t)ins_len);
+--- 2602,2623 ----
+ */
+ if (oap->block_mode && oap->start.lnum != oap->end.lnum)
+ {
++ /* Auto-indenting may have changed the indent. If the cursor was past
++ * the indent, exclude that indent change from the inserted text. */
+ firstline = ml_get(oap->start.lnum);
+! if (bd.textcol > pre_indent)
+! {
+! long new_indent = (long)(skipwhite(firstline) - firstline);
+!
+! pre_textlen += new_indent - pre_indent;
+! bd.textcol += new_indent - pre_indent;
+! }
+!
+! ins_len = (long)STRLEN(firstline) - pre_textlen;
+! if (ins_len > 0)
+ {
++ /* Subsequent calls to ml_get() flush the firstline data - take a
++ * copy of the inserted text. */
+ if ((ins_text = alloc_check((unsigned)(ins_len + 1))) != NULL)
+ {
+ vim_strncpy(ins_text, firstline + bd.textcol, (size_t)ins_len);
+*** ../vim-7.1.106/src/version.c Thu Sep 13 22:04:30 2007
+--- src/version.c Thu Sep 13 22:38:28 2007
+***************
+*** 668,669 ****
+--- 668,671 ----
+ { /* Add new patch number below this line */
++ /**/
++ 107,
+ /**/
+
+--
+Windows
+M!uqoms
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: patch 7.1.108
+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 7.1.108 (after 7.1.100)
+Problem: Win32: Compilation problems in Cscope code. (Jeff Lanzarotta)
+Solution: Use (long) instead of (intptr_t) when it's not defined.
+Files: src/if_cscope.c
+
+
+*** ../vim-7.1.107/src/if_cscope.c Thu Sep 6 17:38:06 2007
+--- src/if_cscope.c Wed Sep 12 20:32:17 2007
+***************
+*** 726,731 ****
+--- 726,740 ----
+ HANDLE stdin_rd, stdout_rd;
+ HANDLE stdout_wr, stdin_wr;
+ BOOL created;
++ # ifdef __BORLANDC__
++ # define OPEN_OH_ARGTYPE long
++ # else
++ # if (_MSC_VER >= 1300)
++ # define OPEN_OH_ARGTYPE intptr_t
++ # else
++ # define OPEN_OH_ARGTYPE long
++ # endif
++ # endif
+ #endif
+
+ #if defined(UNIX)
+***************
+*** 909,918 ****
+ CloseHandle(pi.hThread);
+
+ /* TODO - tidy up after failure to create files on pipe handles. */
+! if (((fd = _open_osfhandle((intptr_t)stdin_wr, _O_TEXT|_O_APPEND)) < 0)
+ || ((csinfo[i].to_fp = _fdopen(fd, "w")) == NULL))
+ PERROR(_("cs_create_connection: fdopen for to_fp failed"));
+! if (((fd = _open_osfhandle((intptr_t)stdout_rd, _O_TEXT|_O_RDONLY)) < 0)
+ || ((csinfo[i].fr_fp = _fdopen(fd, "r")) == NULL))
+ PERROR(_("cs_create_connection: fdopen for fr_fp failed"));
+
+--- 918,929 ----
+ CloseHandle(pi.hThread);
+
+ /* TODO - tidy up after failure to create files on pipe handles. */
+! if (((fd = _open_osfhandle((OPEN_OH_ARGTYPE)stdin_wr,
+! _O_TEXT|_O_APPEND)) < 0)
+ || ((csinfo[i].to_fp = _fdopen(fd, "w")) == NULL))
+ PERROR(_("cs_create_connection: fdopen for to_fp failed"));
+! if (((fd = _open_osfhandle((OPEN_OH_ARGTYPE)stdout_rd,
+! _O_TEXT|_O_RDONLY)) < 0)
+ || ((csinfo[i].fr_fp = _fdopen(fd, "r")) == NULL))
+ PERROR(_("cs_create_connection: fdopen for fr_fp failed"));
+
+*** ../vim-7.1.107/src/version.c Thu Sep 13 22:40:47 2007
+--- src/version.c Fri Sep 14 19:55:12 2007
+***************
+*** 668,669 ****
+--- 668,671 ----
+ { /* Add new patch number below this line */
++ /**/
++ 108,
+ /**/
+
+--
+Q: How many hardware engineers does it take to change a lightbulb?
+A: None. We'll fix it in software.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: patch 7.1.109
+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 7.1.109
+Problem: GTK: when there are many tab pages, clicking on the arrow left of
+ the labels moves to the next tab page on the right. (Simeon Bird)
+Solution: Check the X coordinate of the click and pass -1 as value for the
+ left arrow.
+Files: src/gui_gtk_x11.c, src/term.c
+
+
+*** ../vim-7.1.108/src/gui_gtk_x11.c Wed Sep 5 21:45:54 2007
+--- src/gui_gtk_x11.c Fri Sep 14 20:59:55 2007
+***************
+*** 3223,3230 ****
+ {
+ if (clicked_page == 0)
+ {
+! /* Click after all tabs moves to next tab page. */
+! if (send_tabline_event(0) && gtk_main_level() > 0)
+ gtk_main_quit();
+ }
+ #ifndef HAVE_GTK2
+--- 3223,3231 ----
+ {
+ if (clicked_page == 0)
+ {
+! /* Click after all tabs moves to next tab page. When "x" is
+! * small guess it's the left button. */
+! if (send_tabline_event(x < 50 ? -1 : 0) && gtk_main_level() > 0)
+ gtk_main_quit();
+ }
+ #ifndef HAVE_GTK2
+*** ../vim-7.1.108/src/term.c Thu May 10 20:48:32 2007
+--- src/term.c Fri Sep 14 20:56:40 2007
+***************
+*** 4809,4814 ****
+--- 4809,4816 ----
+ if (num_bytes == -1)
+ return -1;
+ current_tab = (int)bytes[0];
++ if (current_tab == 255) /* -1 in a byte gives 255 */
++ current_tab = -1;
+ slen += num_bytes;
+ }
+ else if (key_name[0] == (int)KS_TABMENU)
+*** ../vim-7.1.108/src/version.c Fri Sep 14 19:56:18 2007
+--- src/version.c Sat Sep 15 14:05:25 2007
+***************
+*** 668,669 ****
+--- 668,671 ----
+ { /* Add new patch number below this line */
++ /**/
++ 109,
+ /**/
+
+--
+No letters of the alphabet were harmed in the creation of this message.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: patch 7.1.110
+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 7.1.110 (after 7.1.102)
+Problem: Win32: Still compilation problems with Perl.
+Solution: Change the #ifdefs. (Suresh Govindachar)
+Files: src/if_perl.xs
+
+
+*** ../vim-7.1.109/src/if_perl.xs Thu Sep 13 15:19:32 2007
+--- src/if_perl.xs Fri Sep 14 21:23:38 2007
+***************
+*** 48,60 ****
+ * The changes include addition of two symbols (Perl_sv_2iv_flags,
+ * Perl_newXS_flags) not present in earlier releases.
+ *
+! * Jan Dubois suggested the following guarding scheme:
+ */
+! #if (ACTIVEPERL_VERSION >= 822)
+! # define PERL589_OR_LATER
+! #endif
+! #if (PERL_REVISION == 5) && (PERL_VERSION == 8) && (PERL_SUBVERSION >= 9)
+! # define PERL589_OR_LATER
+ #endif
+ #if (PERL_REVISION == 5) && (PERL_VERSION >= 9)
+ # define PERL589_OR_LATER
+--- 48,62 ----
+ * The changes include addition of two symbols (Perl_sv_2iv_flags,
+ * Perl_newXS_flags) not present in earlier releases.
+ *
+! * Jan Dubois suggested the following guarding scheme.
+! *
+! * Active State defined ACTIVEPERL_VERSION as a string in versions before
+! * 5.8.8; and so the comparison to 822 below needs to be guarded.
+ */
+! #if (PERL_REVISION == 5) && (PERL_VERSION == 8) && (PERL_SUBVERSION >= 8)
+! # if (ACTIVEPERL_VERSION >= 822) || (PERL_SUBVERSION >= 9)
+! # define PERL589_OR_LATER
+! # endif
+ #endif
+ #if (PERL_REVISION == 5) && (PERL_VERSION >= 9)
+ # define PERL589_OR_LATER
+*** ../vim-7.1.109/src/version.c Sat Sep 15 14:06:41 2007
+--- src/version.c Sat Sep 15 14:48:05 2007
+***************
+*** 668,669 ****
+--- 668,671 ----
+ { /* Add new patch number below this line */
++ /**/
++ 110,
+ /**/
+
+--
+"It's so simple to be wise. Just think of something stupid to say
+and then don't say it." -- Sam Levenson
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: patch 7.1.111
+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 7.1.111
+Problem: When using ":vimgrep" with the "j" flag folds from another buffer
+ may be displayed. (A.Politz)
+Solution: When not jumping to another buffer update the folds.
+Files: src/quickfix.c
+
+
+*** ../vim-7.1.110/src/quickfix.c Thu Jun 28 21:23:52 2007
+--- src/quickfix.c Fri Sep 14 22:16:23 2007
+***************
+*** 1612,1619 ****
+ }
+
+ /*
+! * If there is only one window and is the quickfix window, create a new
+! * one above the quickfix window.
+ */
+ if (((firstwin == lastwin) && bt_quickfix(curbuf)) || !usable_win)
+ {
+--- 1612,1619 ----
+ }
+
+ /*
+! * If there is only one window and it is the quickfix window, create a
+! * new one above the quickfix window.
+ */
+ if (((firstwin == lastwin) && bt_quickfix(curbuf)) || !usable_win)
+ {
+***************
+*** 2981,2986 ****
+--- 2981,2987 ----
+ buf_T *buf;
+ int duplicate_name = FALSE;
+ int using_dummy;
++ int redraw_for_dummy = FALSE;
+ int found_match;
+ buf_T *first_match_buf = NULL;
+ time_t seconds = 0;
+***************
+*** 3097,3102 ****
+--- 3098,3104 ----
+ /* Remember that a buffer with this name already exists. */
+ duplicate_name = (buf != NULL);
+ using_dummy = TRUE;
++ redraw_for_dummy = TRUE;
+
+ #if defined(FEAT_AUTOCMD) && defined(FEAT_SYN_HL)
+ /* Don't do Filetype autocommands to avoid loading syntax and
+***************
+*** 3243,3252 ****
+--- 3245,3272 ----
+ if (qi->qf_lists[qi->qf_curlist].qf_count > 0)
+ {
+ if ((flags & VGR_NOJUMP) == 0)
++ {
++ buf = curbuf;
+ qf_jump(qi, 0, 0, eap->forceit);
++ if (buf != curbuf)
++ /* If we jumped to another buffer redrawing will already be
++ * taken care of. */
++ redraw_for_dummy = FALSE;
++ }
+ }
+ else
+ EMSG2(_(e_nomatch2), s);
++
++ /* If we loaded a dummy buffer into the current window, the autocommands
++ * may have messed up things, need to redraw and recompute folds. */
++ if (redraw_for_dummy)
++ {
++ #ifdef FEAT_FOLDING
++ foldUpdateAll(curwin);
++ #else
++ redraw_later(NOT_VALID);
++ #endif
++ }
+
+ theend:
+ vim_free(regmatch.regprog);
+*** ../vim-7.1.110/src/version.c Sat Sep 15 14:48:57 2007
+--- src/version.c Sun Sep 16 13:23:48 2007
+***************
+*** 668,669 ****
+--- 668,671 ----
+ { /* Add new patch number below this line */
++ /**/
++ 111,
+ /**/
+
+--
+Trees moving back and forth is what makes the wind blow.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: patch 7.1.112
+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 7.1.112
+Problem: Using input() with a wrong argument may crash Vim. (A.Politz)
+Solution: Init the input() return value to NULL.
+Files: src/eval.c
+
+
+*** ../vim-7.1.111/src/eval.c Thu Sep 13 20:39:58 2007
+--- src/eval.c Sat Sep 15 19:04:51 2007
+***************
+*** 11565,11578 ****
+ char_u *xp_arg = NULL;
+
+ rettv->v_type = VAR_STRING;
+
+ #ifdef NO_CONSOLE_INPUT
+ /* While starting up, there is no place to enter text. */
+ if (no_console_input())
+- {
+- rettv->vval.v_string = NULL;
+ return;
+- }
+ #endif
+
+ cmd_silent = FALSE; /* Want to see the prompt. */
+--- 11566,11577 ----
+ char_u *xp_arg = NULL;
+
+ rettv->v_type = VAR_STRING;
++ rettv->vval.v_string = NULL;
+
+ #ifdef NO_CONSOLE_INPUT
+ /* While starting up, there is no place to enter text. */
+ if (no_console_input())
+ return;
+ #endif
+
+ cmd_silent = FALSE; /* Want to see the prompt. */
+*** ../vim-7.1.111/src/version.c Sun Sep 16 13:26:56 2007
+--- src/version.c Sun Sep 16 14:19:04 2007
+***************
+*** 668,669 ****
+--- 668,671 ----
+ { /* Add new patch number below this line */
++ /**/
++ 112,
+ /**/
+
+--
+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/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: patch 7.1.113
+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 7.1.113
+Problem: Using map() to go over an empty list causes memory to be freed
+ twice. (A.Politz)
+Solution: Don't clear the typeval in restore_vimvar().
+Files: src/eval.c
+
+
+*** ../vim-7.1.112/src/eval.c Sun Sep 16 14:20:18 2007
+--- src/eval.c Sun Sep 16 19:24:49 2007
+***************
+*** 1318,1324 ****
+ {
+ hashitem_T *hi;
+
+- clear_tv(&vimvars[idx].vv_tv);
+ vimvars[idx].vv_tv = *save_tv;
+ if (vimvars[idx].vv_type == VAR_UNKNOWN)
+ {
+--- 1318,1323 ----
+***************
+*** 1362,1368 ****
+
+ if (p_verbose == 0)
+ --emsg_off;
+- vimvars[VV_VAL].vv_str = NULL;
+ restore_vimvar(VV_VAL, &save_val);
+
+ return list;
+--- 1361,1366 ----
+***************
+*** 9387,9401 ****
+ {
+ typval_T rettv;
+ char_u *s;
+
+ copy_tv(tv, &vimvars[VV_VAL].vv_tv);
+ s = expr;
+ if (eval1(&s, &rettv, TRUE) == FAIL)
+! return FAIL;
+ if (*s != NUL) /* check for trailing chars after expr */
+ {
+ EMSG2(_(e_invexpr2), s);
+! return FAIL;
+ }
+ if (map)
+ {
+--- 9386,9401 ----
+ {
+ typval_T rettv;
+ char_u *s;
++ int retval = FAIL;
+
+ copy_tv(tv, &vimvars[VV_VAL].vv_tv);
+ s = expr;
+ if (eval1(&s, &rettv, TRUE) == FAIL)
+! goto theend;
+ if (*s != NUL) /* check for trailing chars after expr */
+ {
+ EMSG2(_(e_invexpr2), s);
+! goto theend;
+ }
+ if (map)
+ {
+***************
+*** 9414,9423 ****
+ /* On type error, nothing has been removed; return FAIL to stop the
+ * loop. The error message was given by get_tv_number_chk(). */
+ if (error)
+! return FAIL;
+ }
+ clear_tv(&vimvars[VV_VAL].vv_tv);
+! return OK;
+ }
+
+ /*
+--- 9414,9425 ----
+ /* On type error, nothing has been removed; return FAIL to stop the
+ * loop. The error message was given by get_tv_number_chk(). */
+ if (error)
+! goto theend;
+ }
++ retval = OK;
++ theend:
+ clear_tv(&vimvars[VV_VAL].vv_tv);
+! return retval;
+ }
+
+ /*
+*** ../vim-7.1.112/src/version.c Sun Sep 16 14:20:18 2007
+--- src/version.c Mon Sep 17 21:33:52 2007
+***************
+*** 668,669 ****
+--- 668,671 ----
+ { /* Add new patch number below this line */
++ /**/
++ 113,
+ /**/
+
+--
+Mental Floss prevents moral decay!
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: patch 7.1.114
+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 7.1.114
+Problem: Memory leak in getmatches().
+Solution: Don't increment the refcount twice.
+Files: src/eval.c
+
+
+*** ../vim-7.1.113/src/eval.c Mon Sep 17 21:37:09 2007
+--- src/eval.c Sun Sep 16 19:24:49 2007
+***************
+*** 10351,10357 ****
+ dict = dict_alloc();
+ if (dict == NULL)
+ return;
+- ++dict->dv_refcount;
+ dict_add_nr_str(dict, "group", 0L, syn_id2name(cur->hlg_id));
+ dict_add_nr_str(dict, "pattern", 0L, cur->pattern);
+ dict_add_nr_str(dict, "priority", (long)cur->priority, NULL);
+--- 10355,10360 ----
+*** ../vim-7.1.113/src/version.c Mon Sep 17 21:37:09 2007
+--- src/version.c Mon Sep 17 21:54:08 2007
+***************
+*** 668,669 ****
+--- 668,671 ----
+ { /* Add new patch number below this line */
++ /**/
++ 114,
+ /**/
+
+--
+Be nice to your kids... they'll be the ones choosing your nursing home.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: patch 7.1.115
+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 7.1.115 (after 7.1.105)
+Problem: Compiler warning for uninitialized variable. (Tony Mechelynck)
+Solution: Init variable to NULL.
+Files: src/eval.c
+
+
+*** ../vim-7.1.114/src/eval.c Mon Sep 17 21:55:02 2007
+--- src/eval.c Sun Sep 16 19:24:49 2007
+***************
+*** 6704,6710 ****
+ dict_T *d = NULL;
+ typval_T tvkey;
+ typval_T tv;
+! char_u *key;
+ dictitem_T *item;
+ char_u *start = skipwhite(*arg + 1);
+ char_u buf[NUMBUFLEN];
+--- 6705,6711 ----
+ dict_T *d = NULL;
+ typval_T tvkey;
+ typval_T tv;
+! char_u *key = NULL;
+ dictitem_T *item;
+ char_u *start = skipwhite(*arg + 1);
+ char_u buf[NUMBUFLEN];
+*** ../vim-7.1.114/src/version.c Mon Sep 17 21:55:02 2007
+--- src/version.c Mon Sep 17 22:18:42 2007
+***************
+*** 668,669 ****
+--- 668,671 ----
+ { /* Add new patch number below this line */
++ /**/
++ 115,
+ /**/
+
+--
+Proofread carefully to see if you any words out.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: patch 7.1.116
+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 7.1.116
+Problem: Cannot display Unicode characters above 0x10000.
+Solution: Remove the replacement with a question mark when UNICODE16 is not
+ defined. (partly by Nicolas Weber)
+Files: src/screen.c
+
+
+*** ../vim-7.1.115/src/screen.c Thu Aug 30 13:51:52 2007
+--- src/screen.c Mon Sep 10 22:29:42 2007
+***************
+*** 2305,2313 ****
+--- 2305,2315 ----
+ prev_c = u8c;
+ #endif
+ /* Non-BMP character: display as ? or fullwidth ?. */
++ #ifdef UNICODE16
+ if (u8c >= 0x10000)
+ ScreenLinesUC[idx] = (cells == 2) ? 0xff1f : (int)'?';
+ else
++ #endif
+ ScreenLinesUC[idx] = u8c;
+ for (i = 0; i < Screen_mco; ++i)
+ {
+***************
+*** 3678,3690 ****
+ if ((mb_l == 1 && c >= 0x80)
+ || (mb_l >= 1 && mb_c == 0)
+ || (mb_l > 1 && (!vim_isprintc(mb_c)
+! || mb_c >= 0x10000)))
+ {
+ /*
+ * Illegal UTF-8 byte: display as <xx>.
+ * Non-BMP character : display as ? or fullwidth ?.
+ */
+ if (mb_c < 0x10000)
+ {
+ transchar_hex(extra, mb_c);
+ # ifdef FEAT_RIGHTLEFT
+--- 3680,3697 ----
+ if ((mb_l == 1 && c >= 0x80)
+ || (mb_l >= 1 && mb_c == 0)
+ || (mb_l > 1 && (!vim_isprintc(mb_c)
+! # ifdef UNICODE16
+! || mb_c >= 0x10000
+! # endif
+! )))
+ {
+ /*
+ * Illegal UTF-8 byte: display as <xx>.
+ * Non-BMP character : display as ? or fullwidth ?.
+ */
++ # ifdef UNICODE16
+ if (mb_c < 0x10000)
++ # endif
+ {
+ transchar_hex(extra, mb_c);
+ # ifdef FEAT_RIGHTLEFT
+***************
+*** 3692,3702 ****
+--- 3699,3711 ----
+ rl_mirror(extra);
+ # endif
+ }
++ # ifdef UNICODE16
+ else if (utf_char2cells(mb_c) != 2)
+ STRCPY(extra, "?");
+ else
+ /* 0xff1f in UTF-8: full-width '?' */
+ STRCPY(extra, "\357\274\237");
++ # endif
+
+ p_extra = extra;
+ c = *p_extra;
+***************
+*** 6245,6250 ****
+--- 6254,6260 ----
+ else
+ u8c = utfc_ptr2char(ptr, u8cc);
+ mbyte_cells = utf_char2cells(u8c);
++ # ifdef UNICODE16
+ /* Non-BMP character: display as ? or fullwidth ?. */
+ if (u8c >= 0x10000)
+ {
+***************
+*** 6252,6257 ****
+--- 6262,6268 ----
+ if (attr == 0)
+ attr = hl_attr(HLF_8);
+ }
++ # endif
+ # ifdef FEAT_ARABIC
+ if (p_arshape && !p_tbidi && ARABIC_CHAR(u8c))
+ {
+*** ../vim-7.1.116/src/version.c Mon Sep 17 22:19:43 2007
+--- src/version.c Mon Sep 17 22:37:31 2007
+***************
+*** 668,669 ****
+--- 668,671 ----
+ { /* Add new patch number below this line */
++ /**/
++ 116,
+ /**/
+
+--
+There can't be a crisis today, my schedule is already full.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///