]> git.pld-linux.org Git - packages/vim.git/commitdiff
- new auto/th/vim-7_2_121-1
authorAdam Gołębiowski <adamg@pld-linux.org>
Sun, 22 Feb 2009 11:24:56 +0000 (11:24 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    7.2.103 -> 1.1
    7.2.104 -> 1.1
    7.2.105 -> 1.1
    7.2.106 -> 1.1
    7.2.107 -> 1.1
    7.2.108 -> 1.1
    7.2.109 -> 1.1
    7.2.110 -> 1.1
    7.2.111 -> 1.1
    7.2.112 -> 1.1
    7.2.113 -> 1.1
    7.2.114 -> 1.1
    7.2.115 -> 1.1
    7.2.116 -> 1.1
    7.2.117 -> 1.1
    7.2.118 -> 1.1
    7.2.119 -> 1.1
    7.2.120 -> 1.1
    7.2.121 -> 1.1

19 files changed:
7.2.103 [new file with mode: 0644]
7.2.104 [new file with mode: 0644]
7.2.105 [new file with mode: 0644]
7.2.106 [new file with mode: 0644]
7.2.107 [new file with mode: 0644]
7.2.108 [new file with mode: 0644]
7.2.109 [new file with mode: 0644]
7.2.110 [new file with mode: 0644]
7.2.111 [new file with mode: 0644]
7.2.112 [new file with mode: 0644]
7.2.113 [new file with mode: 0644]
7.2.114 [new file with mode: 0644]
7.2.115 [new file with mode: 0644]
7.2.116 [new file with mode: 0644]
7.2.117 [new file with mode: 0644]
7.2.118 [new file with mode: 0644]
7.2.119 [new file with mode: 0644]
7.2.120 [new file with mode: 0644]
7.2.121 [new file with mode: 0644]

diff --git a/7.2.103 b/7.2.103
new file mode 100644 (file)
index 0000000..25a513a
--- /dev/null
+++ b/7.2.103
@@ -0,0 +1,216 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.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.2.103
+Problem:    When 'bomb' is changed the window title is updated to show/hide a
+           "+", but the tab page label isn't. (Patrick Texier)
+Solution:   Set "redraw_tabline" in most places where "need_maketitle" is set.
+           (partly by Lech Lorens)
+Files:     src/option.c
+
+
+*** ../vim-7.2.102/src/option.c        Wed Feb  4 17:27:50 2009
+--- src/option.c       Wed Feb  4 17:40:02 2009
+***************
+*** 5268,5273 ****
+--- 5268,5288 ----
+  }
+  #endif
+  
++ #ifdef FEAT_TITLE
++ static void redraw_titles __ARGS((void));
++ 
++ /*
++  * Redraw the window title and/or tab page text later.
++  */
++ static void redraw_titles()
++ {
++     need_maketitle = TRUE;
++ # ifdef FEAT_WINDOWS
++     redraw_tabline = TRUE;
++ # endif
++ }
++ #endif
++ 
+  /*
+   * Set a string option to a new value (without checking the effect).
+   * The string is copied into allocated memory.
+***************
+*** 5672,5678 ****
+           {
+  # ifdef FEAT_TITLE
+               /* May show a "+" in the title now. */
+!              need_maketitle = TRUE;
+  # endif
+               /* Add 'fileencoding' to the swap file. */
+               ml_setflags(curbuf);
+--- 5687,5693 ----
+           {
+  # ifdef FEAT_TITLE
+               /* May show a "+" in the title now. */
+!              redraw_titles();
+  # endif
+               /* Add 'fileencoding' to the swap file. */
+               ml_setflags(curbuf);
+***************
+*** 5691,5697 ****
+           {
+               errmsg = mb_init();
+  # ifdef FEAT_TITLE
+!              need_maketitle = TRUE;
+  # endif
+           }
+       }
+--- 5706,5712 ----
+           {
+               errmsg = mb_init();
+  # ifdef FEAT_TITLE
+!              redraw_titles();
+  # endif
+           }
+       }
+***************
+*** 5800,5806 ****
+           else
+               curbuf->b_p_tx = FALSE;
+  #ifdef FEAT_TITLE
+!          need_maketitle = TRUE;
+  #endif
+           /* update flag in swap file */
+           ml_setflags(curbuf);
+--- 5815,5821 ----
+           else
+               curbuf->b_p_tx = FALSE;
+  #ifdef FEAT_TITLE
+!          redraw_titles();
+  #endif
+           /* update flag in swap file */
+           ml_setflags(curbuf);
+***************
+*** 7127,7148 ****
+           curbuf->b_did_warn = FALSE;
+  
+  #ifdef FEAT_TITLE
+!      need_maketitle = TRUE;
+  #endif
+      }
+  
+  #ifdef FEAT_TITLE
+      /* when 'modifiable' is changed, redraw the window title */
+      else if ((int *)varp == &curbuf->b_p_ma)
+!      need_maketitle = TRUE;
+      /* when 'endofline' is changed, redraw the window title */
+      else if ((int *)varp == &curbuf->b_p_eol)
+!      need_maketitle = TRUE;
+! #ifdef FEAT_MBYTE
+!     /* when 'bomb' is changed, redraw the window title */
+      else if ((int *)varp == &curbuf->b_p_bomb)
+!      need_maketitle = TRUE;
+! #endif
+  #endif
+  
+      /* when 'bin' is set also set some other options */
+--- 7142,7169 ----
+           curbuf->b_did_warn = FALSE;
+  
+  #ifdef FEAT_TITLE
+!      redraw_titles();
+  #endif
+      }
+  
+  #ifdef FEAT_TITLE
+      /* when 'modifiable' is changed, redraw the window title */
+      else if ((int *)varp == &curbuf->b_p_ma)
+!     {
+!      redraw_titles();
+!     }
+      /* when 'endofline' is changed, redraw the window title */
+      else if ((int *)varp == &curbuf->b_p_eol)
+!     {
+!      redraw_titles();
+!     }
+! # ifdef FEAT_MBYTE
+!     /* when 'bomb' is changed, redraw the window title and tab page text */
+      else if ((int *)varp == &curbuf->b_p_bomb)
+!     {
+!      redraw_titles();
+!     }
+! # endif
+  #endif
+  
+      /* when 'bin' is set also set some other options */
+***************
+*** 7150,7156 ****
+      {
+       set_options_bin(old_value, curbuf->b_p_bin, opt_flags);
+  #ifdef FEAT_TITLE
+!      need_maketitle = TRUE;
+  #endif
+      }
+  
+--- 7171,7177 ----
+      {
+       set_options_bin(old_value, curbuf->b_p_bin, opt_flags);
+  #ifdef FEAT_TITLE
+!      redraw_titles();
+  #endif
+      }
+  
+***************
+*** 7301,7307 ****
+       if (!value)
+           save_file_ff(curbuf);       /* Buffer is unchanged */
+  #ifdef FEAT_TITLE
+!      need_maketitle = TRUE;
+  #endif
+  #ifdef FEAT_AUTOCMD
+       modified_was_set = value;
+--- 7322,7328 ----
+       if (!value)
+           save_file_ff(curbuf);       /* Buffer is unchanged */
+  #ifdef FEAT_TITLE
+!      redraw_titles();
+  #endif
+  #ifdef FEAT_AUTOCMD
+       modified_was_set = value;
+***************
+*** 7736,7742 ****
+       newFoldLevel();
+      }
+  
+!     /* 'foldminlevel' */
+      else if (pp == &curwin->w_p_fml)
+      {
+       foldUpdateAll(curwin);
+--- 7757,7763 ----
+       newFoldLevel();
+      }
+  
+!     /* 'foldminlines' */
+      else if (pp == &curwin->w_p_fml)
+      {
+       foldUpdateAll(curwin);
+*** ../vim-7.2.102/src/version.c       Thu Feb  5 20:47:14 2009
+--- src/version.c      Wed Feb 11 11:32:20 2009
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     103,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+73. You give your dog used motherboards instead of bones
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.2.104 b/7.2.104
new file mode 100644 (file)
index 0000000..51c0e09
--- /dev/null
+++ b/7.2.104
@@ -0,0 +1,51 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.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.2.104
+Problem:    When using ":saveas bar.c" the tab label isn't updated right away.
+Solution:   Set redraw_tabline. (Francois Ingelrest)
+Files:      src/ex_cmds.c
+
+
+*** ../vim-7.2.103/src/ex_cmds.c       Wed Feb  4 13:13:42 2009
+--- src/ex_cmds.c      Wed Feb 11 15:58:06 2009
+***************
+*** 2707,2713 ****
+--- 2707,2718 ----
+       if (eap->cmdidx == CMD_saveas)
+       {
+           if (retval == OK)
++          {
+               curbuf->b_p_ro = FALSE;
++ #ifdef FEAT_WINDOWS
++              redraw_tabline = TRUE;
++ #endif
++          }
+           /* Change directories when the 'acd' option is set. */
+           DO_AUTOCHDIR
+       }
+*** ../vim-7.2.103/src/version.c       Wed Feb 11 11:34:24 2009
+--- src/version.c      Wed Feb 11 16:02:19 2009
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     104,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+75. You start wondering whether you could actually upgrade your brain
+    with a Pentium Pro microprocessor 80.  The upgrade works just fine.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.2.105 b/7.2.105
new file mode 100644 (file)
index 0000000..486ffb3
--- /dev/null
+++ b/7.2.105
@@ -0,0 +1,72 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.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.2.105
+Problem:    Modeline setting for 'foldmethod' overrules diff options. (Ingo
+           Karkat)
+Solution:   Don't set 'foldmethod' and 'wrap' from a modeline when 'diff' is
+           on.
+Files:     src/option.c
+
+
+*** ../vim-7.2.104/src/option.c        Wed Feb 11 11:34:24 2009
+--- src/option.c       Wed Feb 11 16:29:56 2009
+***************
+*** 4119,4129 ****
+                                          && options[opt_idx].var == VAR_WIN)
+               goto skip;
+  
+!          /* Disallow changing some options from modelines */
+!          if ((opt_flags & OPT_MODELINE) && (flags & P_SECURE))
+           {
+!              errmsg = (char_u *)_("E520: Not allowed in a modeline");
+!              goto skip;
+           }
+  
+  #ifdef HAVE_SANDBOX
+--- 4119,4139 ----
+                                          && options[opt_idx].var == VAR_WIN)
+               goto skip;
+  
+!          /* Disallow changing some options from modelines. */
+!          if (opt_flags & OPT_MODELINE)
+           {
+!              if (flags & P_SECURE)
+!              {
+!                  errmsg = (char_u *)_("E520: Not allowed in a modeline");
+!                  goto skip;
+!              }
+!              /* In diff mode some options are overruled.  This avoids that
+!               * 'foldmethod' becomes "marker" instead of "diff" and that
+!               * "wrap" gets set. */
+!              if (curwin->w_p_diff
+!                      && (options[opt_idx].indir == PV_FDM
+!                          || options[opt_idx].indir == PV_WRAP))
+!                  goto skip;
+           }
+  
+  #ifdef HAVE_SANDBOX
+*** ../vim-7.2.104/src/version.c       Wed Feb 11 16:02:29 2009
+--- src/version.c      Wed Feb 11 16:40:35 2009
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     105,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+76. Your ISP regards you as a business partner rather than as a customer.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.2.106 b/7.2.106
new file mode 100644 (file)
index 0000000..2c54797
--- /dev/null
+++ b/7.2.106
@@ -0,0 +1,103 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.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.2.106
+Problem:    Endless loop when using "]s" in HTML when there are no
+           misspellings. (Ingo Karkat)
+Solution:   Break the search loop.  Also fix pointer alignment for systems
+           with pointers larger than int.
+Files:     src/spell.c
+
+
+*** ../vim-7.2.105/src/spell.c Tue Dec  9 22:34:02 2008
+--- src/spell.c        Wed Feb 11 17:54:50 2009
+***************
+*** 2376,2382 ****
+  
+           /* If we are back at the starting line and there is no match then
+            * give up. */
+!          if (lnum == wp->w_cursor.lnum && !found_one)
+               break;
+  
+           /* Skip the characters at the start of the next line that were
+--- 2376,2382 ----
+  
+           /* If we are back at the starting line and there is no match then
+            * give up. */
+!          if (lnum == wp->w_cursor.lnum && (!found_one || wrapped))
+               break;
+  
+           /* Skip the characters at the start of the next line that were
+***************
+*** 4956,4968 ****
+   * Structure that is used to store the items in the word tree.  This avoids
+   * the need to keep track of each allocated thing, everything is freed all at
+   * once after ":mkspell" is done.
+   */
+  #define  SBLOCKSIZE 16000    /* size of sb_data */
+  typedef struct sblock_S sblock_T;
+  struct sblock_S
+  {
+-     sblock_T *sb_next;       /* next block in list */
+      int              sb_used;        /* nr of bytes already in use */
+      char_u   sb_data[1];     /* data, actually longer */
+  };
+  
+--- 4956,4971 ----
+   * Structure that is used to store the items in the word tree.  This avoids
+   * the need to keep track of each allocated thing, everything is freed all at
+   * once after ":mkspell" is done.
++  * Note: "sb_next" must be just before "sb_data" to make sure the alignment of
++  * "sb_data" is correct for systems where pointers must be aligned on
++  * pointer-size boundaries and sizeof(pointer) > sizeof(int) (e.g., Sparc).
+   */
+  #define  SBLOCKSIZE 16000    /* size of sb_data */
+  typedef struct sblock_S sblock_T;
+  struct sblock_S
+  {
+      int              sb_used;        /* nr of bytes already in use */
++     sblock_T *sb_next;       /* next block in list */
+      char_u   sb_data[1];     /* data, actually longer */
+  };
+  
+***************
+*** 15011,15017 ****
+  
+       case 0:
+           /*
+!           * Lenghts are equal, thus changes must result in same length: An
+            * insert is only possible in combination with a delete.
+            * 1: check if for identical strings
+            */
+--- 15014,15020 ----
+  
+       case 0:
+           /*
+!           * Lengths are equal, thus changes must result in same length: An
+            * insert is only possible in combination with a delete.
+            * 1: check if for identical strings
+            */
+*** ../vim-7.2.105/src/version.c       Wed Feb 11 16:45:56 2009
+--- src/version.c      Wed Feb 11 17:56:34 2009
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     106,
+  /**/
+
+-- 
+If bankers can count, how come they have eight windows and
+only four tellers?
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.2.107 b/7.2.107
new file mode 100644 (file)
index 0000000..9567375
--- /dev/null
+++ b/7.2.107
@@ -0,0 +1,56 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.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.2.107
+Problem:    When using a GUI dialog and ":echo" commands the messages are
+           deleted after the dialog. (Vicent Birebent)
+Solution:   Don't call msg_end_prompt() since there was no prompt.
+Files:     src/message.c
+
+
+*** ../vim-7.2.106/src/message.c       Tue Jan 13 16:37:31 2009
+--- src/message.c      Wed Feb 11 18:38:14 2009
+***************
+*** 3309,3315 ****
+      {
+       c = gui_mch_dialog(type, title, message, buttons, dfltbutton,
+                                                                  textfield);
+!      msg_end_prompt();
+  
+       /* Flush output to avoid that further messages and redrawing is done
+        * in the wrong order. */
+--- 3309,3318 ----
+      {
+       c = gui_mch_dialog(type, title, message, buttons, dfltbutton,
+                                                                  textfield);
+!      /* avoid a hit-enter prompt without clearing the cmdline */
+!      need_wait_return = FALSE;
+!      emsg_on_display = FALSE;
+!      cmdline_row = msg_row;
+  
+       /* Flush output to avoid that further messages and redrawing is done
+        * in the wrong order. */
+*** ../vim-7.2.106/src/version.c       Wed Feb 11 17:57:43 2009
+--- src/version.c      Wed Feb 11 18:46:12 2009
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     107,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+79. All of your most erotic dreams have a scrollbar at the right side.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.2.108 b/7.2.108
new file mode 100644 (file)
index 0000000..5164b83
--- /dev/null
+++ b/7.2.108
@@ -0,0 +1,55 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.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.2.108 (after 7.2.105)
+Problem:    Can't build without the diff feature.
+Solution:   Add #ifdef.
+Files:     src/option.c
+
+
+*** ../vim-7.2.107/src/option.c        Wed Feb 11 16:45:56 2009
+--- src/option.c       Wed Feb 11 22:21:16 2009
+***************
+*** 4127,4132 ****
+--- 4127,4133 ----
+                   errmsg = (char_u *)_("E520: Not allowed in a modeline");
+                   goto skip;
+               }
++ #ifdef FEAT_DIFF
+               /* In diff mode some options are overruled.  This avoids that
+                * 'foldmethod' becomes "marker" instead of "diff" and that
+                * "wrap" gets set. */
+***************
+*** 4134,4139 ****
+--- 4135,4141 ----
+                       && (options[opt_idx].indir == PV_FDM
+                           || options[opt_idx].indir == PV_WRAP))
+                   goto skip;
++ #endif
+           }
+  
+  #ifdef HAVE_SANDBOX
+*** ../vim-7.2.107/src/version.c       Wed Feb 11 18:46:48 2009
+--- src/version.c      Wed Feb 11 22:46:40 2009
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     108,
+  /**/
+
+-- 
+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/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.2.109 b/7.2.109
new file mode 100644 (file)
index 0000000..8c3866c
--- /dev/null
+++ b/7.2.109
@@ -0,0 +1,423 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.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.2.109
+Problem:    'langmap' does not work for multi-byte characters.
+Solution:   Add a list of mapped multi-byte characters. (based on work by
+            Konstantin Korikov, Agathoklis Hatzimanikas)
+Files:      runtime/doc/options.txt, src/edit.c, src/getchar.c, src/macros.h,
+            src/normal.c, src/option.c, src/proto/option.pro, src/window.c
+    
+
+*** ../vim-7.2.108/runtime/doc/options.txt     Fri Nov 28 10:59:57 2008
+--- runtime/doc/options.txt    Wed Feb 11 18:59:34 2009
+***************
+*** 4175,4183 ****
+       be able to execute Normal mode commands.
+       This is the opposite of the 'keymap' option, where characters are
+       mapped in Insert mode.
+-      This only works for 8-bit characters.  The value of 'langmap' may be
+-      specified with multi-byte characters (e.g., UTF-8), but only the lower
+-      8 bits of each character will be used.
+  
+       Example (for Greek, in UTF-8):                          *greek*  >
+           :set langmap=ΑA,ΒB,ΨC,ΔD,ΕE,ΦF,ΓG,ΗH,ΙI,ΞJ,ΚK,ΛL,ΜM,ΝN,ΟO,ΠP,QQ,ΡR,ΣS,ΤT,ΘU,ΩV,WW,ΧX,ΥY,ΖZ,αa,βb,ψc,δd,εe,φf,γg,ηh,ιi,ξj,κk,λl,μm,νn,οo,πp,qq,ρr,σs,τt,θu,ωv,ςw,χx,υy,ζz
+--- 4188,4193 ----
+*** ../vim-7.2.108/src/edit.c  Wed Feb  4 11:19:40 2009
+--- src/edit.c Sat Feb 21 19:54:03 2009
+***************
+*** 7703,7711 ****
+       */
+      ++no_mapping;
+      regname = plain_vgetc();
+- #ifdef FEAT_LANGMAP
+      LANGMAP_ADJUST(regname, TRUE);
+- #endif
+      if (regname == Ctrl_R || regname == Ctrl_O || regname == Ctrl_P)
+      {
+       /* Get a third key for literal register insertion */
+--- 7703,7709 ----
+***************
+*** 7714,7722 ****
+       add_to_showcmd_c(literally);
+  #endif
+       regname = plain_vgetc();
+- #ifdef FEAT_LANGMAP
+       LANGMAP_ADJUST(regname, TRUE);
+- #endif
+      }
+      --no_mapping;
+  
+--- 7712,7718 ----
+*** ../vim-7.2.108/src/macros.h        Wed Aug 15 20:41:07 2007
+--- src/macros.h       Sat Feb 21 19:55:38 2009
+***************
+*** 127,141 ****
+  #ifdef FEAT_LANGMAP
+  /*
+   * Adjust chars in a language according to 'langmap' option.
+!  * NOTE that there is NO overhead if 'langmap' is not set; but even
+!  * when set we only have to do 2 ifs and an array lookup.
+   * Don't apply 'langmap' if the character comes from the Stuff buffer.
+   * The do-while is just to ignore a ';' after the macro.
+   */
+! # define LANGMAP_ADJUST(c, condition) do { \
+!      if (*p_langmap && (condition) && !KeyStuffed && (c) >= 0 && (c) < 256) \
+!          c = langmap_mapchar[c]; \
+      } while (0)
+  #endif
+  
+  /*
+--- 127,157 ----
+  #ifdef FEAT_LANGMAP
+  /*
+   * Adjust chars in a language according to 'langmap' option.
+!  * NOTE that there is no noticeable overhead if 'langmap' is not set.
+!  * When set the overhead for characters < 256 is small.
+   * Don't apply 'langmap' if the character comes from the Stuff buffer.
+   * The do-while is just to ignore a ';' after the macro.
+   */
+! # ifdef FEAT_MBYTE
+! #  define LANGMAP_ADJUST(c, condition) \
+!     do { \
+!         if (*p_langmap && (condition) && !KeyStuffed && (c) >= 0) \
+!      { \
+!          if ((c) < 256) \
+!              c = langmap_mapchar[c]; \
+!          else \
+!              c = langmap_adjust_mb(c); \
+!      } \
+      } while (0)
++ # else
++ #  define LANGMAP_ADJUST(c, condition) \
++     do { \
++         if (*p_langmap && (condition) && !KeyStuffed && (c) >= 0 && (c) < 256) \
++             c = langmap_mapchar[c]; \
++     } while (0)
++ # endif
++ #else
++ # define LANGMAP_ADJUST(c, condition) /* nop */
+  #endif
+  
+  /*
+*** ../vim-7.2.108/src/normal.c        Wed Feb  4 11:45:28 2009
+--- src/normal.c       Sat Feb 21 19:55:17 2009
+***************
+*** 651,660 ****
+       * Get the command character from the user.
+       */
+      c = safe_vgetc();
+- 
+- #ifdef FEAT_LANGMAP
+      LANGMAP_ADJUST(c, TRUE);
+- #endif
+  
+  #ifdef FEAT_VISUAL
+      /*
+--- 651,657 ----
+***************
+*** 744,752 ****
+           }
+           ++no_zero_mapping;          /* don't map zero here */
+           c = plain_vgetc();
+- #ifdef FEAT_LANGMAP
+           LANGMAP_ADJUST(c, TRUE);
+- #endif
+           --no_zero_mapping;
+           if (ctrl_w)
+           {
+--- 741,747 ----
+***************
+*** 769,777 ****
+           ++no_mapping;
+           ++allow_keys;               /* no mapping for nchar, but keys */
+           c = plain_vgetc();          /* get next character */
+- #ifdef FEAT_LANGMAP
+           LANGMAP_ADJUST(c, TRUE);
+- #endif
+           --no_mapping;
+           --allow_keys;
+  #ifdef FEAT_CMDL_INFO
+--- 764,770 ----
+***************
+*** 959,967 ****
+            * "gr", "g'" and "g`".
+            */
+           ca.nchar = plain_vgetc();
+- #ifdef FEAT_LANGMAP
+           LANGMAP_ADJUST(ca.nchar, TRUE);
+- #endif
+  #ifdef FEAT_CMDL_INFO
+           need_flushbuf |= add_to_showcmd(ca.nchar);
+  #endif
+--- 952,958 ----
+***************
+*** 1062,1071 ****
+               }
+  #endif
+  
+- #ifdef FEAT_LANGMAP
+               /* adjust chars > 127, except after "tTfFr" commands */
+               LANGMAP_ADJUST(*cp, !lang);
+- #endif
+  #ifdef FEAT_RIGHTLEFT
+               /* adjust Hebrew mapped char */
+               if (p_hkmap && lang && KeyTyped)
+--- 1053,1060 ----
+***************
+*** 4630,4638 ****
+           ++no_mapping;
+           ++allow_keys;   /* no mapping for nchar, but allow key codes */
+           nchar = plain_vgetc();
+- #ifdef FEAT_LANGMAP
+           LANGMAP_ADJUST(nchar, TRUE);
+- #endif
+           --no_mapping;
+           --allow_keys;
+  #ifdef FEAT_CMDL_INFO
+--- 4619,4625 ----
+***************
+*** 4988,4996 ****
+               ++no_mapping;
+               ++allow_keys;   /* no mapping for nchar, but allow key codes */
+               nchar = plain_vgetc();
+- #ifdef FEAT_LANGMAP
+               LANGMAP_ADJUST(nchar, TRUE);
+- #endif
+               --no_mapping;
+               --allow_keys;
+  #ifdef FEAT_CMDL_INFO
+--- 4975,4981 ----
+*** ../vim-7.2.108/src/option.c        Wed Feb 11 22:47:32 2009
+--- src/option.c       Sat Feb 21 19:46:13 2009
+***************
+*** 10153,10177 ****
+  
+  #ifdef FEAT_LANGMAP
+  /*
+!  * Any character has an equivalent character.  This is used for keyboards that
+!  * have a special language mode that sends characters above 128 (although
+!  * other characters can be translated too).
+   */
+  
+  /*
+!  * char_u langmap_mapchar[256];
+!  * Normally maps each of the 128 upper chars to an <128 ascii char; used to
+!  * "translate" native lang chars in normal mode or some cases of
+!  * insert mode without having to tediously switch lang mode back&forth.
+   */
+  
+      static void
+  langmap_init()
+  {
+      int i;
+  
+!     for (i = 0; i < 256; i++)                /* we init with a-one-to one map */
+!      langmap_mapchar[i] = i;
+  }
+  
+  /*
+--- 10153,10262 ----
+  
+  #ifdef FEAT_LANGMAP
+  /*
+!  * Any character has an equivalent 'langmap' character.  This is used for
+!  * keyboards that have a special language mode that sends characters above
+!  * 128 (although other characters can be translated too).  The "to" field is a
+!  * Vim command character.  This avoids having to switch the keyboard back to
+!  * ASCII mode when leaving Insert mode.
+!  *
+!  * langmap_mapchar[] maps any of 256 chars to an ASCII char used for Vim
+!  * commands.
+!  * When FEAT_MBYTE is defined langmap_mapga.ga_data is a sorted table of
+!  * langmap_entry_T.  This does the same as langmap_mapchar[] for characters >=
+!  * 256.
+!  */
+! # ifdef FEAT_MBYTE
+! /*
+!  * With multi-byte support use growarray for 'langmap' chars >= 256
+   */
++ typedef struct
++ {
++     int          from;
++     int     to;
++ } langmap_entry_T;
++ 
++ static garray_T langmap_mapga;
++ static void langmap_set_entry __ARGS((int from, int to));
++ 
++ /*
++  * Search for an entry in "langmap_mapga" for "from".  If found set the "to"
++  * field.  If not found insert a new entry at the appropriate location.
++  */
++     static void
++ langmap_set_entry(from, to)
++     int    from;
++     int    to;
++ {
++     langmap_entry_T *entries = (langmap_entry_T *)(langmap_mapga.ga_data);
++     int             a = 0;
++     int             b = langmap_mapga.ga_len;
++ 
++     /* Do a binary search for an existing entry. */
++     while (a != b)
++     {
++      int i = (a + b) / 2;
++      int d = entries[i].from - from;
++ 
++      if (d == 0)
++      {
++          entries[i].to = to;
++          return;
++      }
++      if (d < 0)
++          a = i + 1;
++      else
++          b = i;
++     }
++ 
++     if (ga_grow(&langmap_mapga, 1) != OK)
++      return;  /* out of memory */
++ 
++     /* insert new entry at position "a" */
++     entries = (langmap_entry_T *)(langmap_mapga.ga_data) + a;
++     mch_memmove(entries + 1, entries,
++                      (langmap_mapga.ga_len - a) * sizeof(langmap_entry_T));
++     ++langmap_mapga.ga_len;
++     entries[0].from = from;
++     entries[0].to = to;
++ }
+  
+  /*
+!  * Apply 'langmap' to multi-byte character "c" and return the result.
+   */
++     int
++ langmap_adjust_mb(c)
++     int c;
++ {
++     langmap_entry_T *entries = (langmap_entry_T *)(langmap_mapga.ga_data);
++     int a = 0;
++     int b = langmap_mapga.ga_len;
++ 
++     while (a != b)
++     {
++      int i = (a + b) / 2;
++      int d = entries[i].from - c;
++ 
++      if (d == 0)
++          return entries[i].to;  /* found matching entry */
++      if (d < 0)
++          a = i + 1;
++      else
++          b = i;
++     }
++     return c;  /* no entry found, return "c" unmodified */
++ }
++ # endif
+  
+      static void
+  langmap_init()
+  {
+      int i;
+  
+!     for (i = 0; i < 256; i++)
+!      langmap_mapchar[i] = i;  /* we init with a one-to-one map */
+! # ifdef FEAT_MBYTE
+!     ga_init2(&langmap_mapga, sizeof(langmap_entry_T), 8);
+! # endif
+  }
+  
+  /*
+***************
+*** 10185,10191 ****
+      char_u  *p2;
+      int          from, to;
+  
+!     langmap_init();                      /* back to one-to-one map first */
+  
+      for (p = p_langmap; p[0] != NUL; )
+      {
+--- 10270,10279 ----
+      char_u  *p2;
+      int          from, to;
+  
+! #ifdef FEAT_MBYTE
+!     ga_clear(&langmap_mapga);                    /* clear the previous map first */
+! #endif
+!     langmap_init();                      /* back to one-to-one map */
+  
+      for (p = p_langmap; p[0] != NUL; )
+      {
+***************
+*** 10235,10241 ****
+                                                            transchar(from));
+               return;
+           }
+!          langmap_mapchar[from & 255] = to;
+  
+           /* Advance to next pair */
+           mb_ptr_adv(p);
+--- 10323,10335 ----
+                                                            transchar(from));
+               return;
+           }
+! 
+! #ifdef FEAT_MBYTE
+!          if (from >= 256)
+!              langmap_set_entry(from, to);
+!          else
+! #endif
+!              langmap_mapchar[from & 255] = to;
+  
+           /* Advance to next pair */
+           mb_ptr_adv(p);
+*** ../vim-7.2.108/src/proto/option.pro        Sat May  5 19:28:04 2007
+--- src/proto/option.pro       Wed Feb 11 21:21:05 2009
+***************
+*** 44,49 ****
+--- 44,50 ----
+  void set_context_in_set_cmd __ARGS((expand_T *xp, char_u *arg, int opt_flags));
+  int ExpandSettings __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file));
+  int ExpandOldSetting __ARGS((int *num_file, char_u ***file));
++ int langmap_adjust_mb __ARGS((int c));
+  int has_format_option __ARGS((int x));
+  int shortmess __ARGS((int x));
+  void vimrc_found __ARGS((char_u *fname, char_u *envname));
+*** ../vim-7.2.108/src/window.c        Fri Nov 28 21:26:50 2008
+--- src/window.c       Sat Feb 21 19:55:25 2009
+***************
+*** 594,602 ****
+               ++allow_keys;   /* no mapping for xchar, but allow key codes */
+               if (xchar == NUL)
+                   xchar = plain_vgetc();
+- #ifdef FEAT_LANGMAP
+               LANGMAP_ADJUST(xchar, TRUE);
+- #endif
+               --no_mapping;
+               --allow_keys;
+  #ifdef FEAT_CMDL_INFO
+--- 594,600 ----
+*** ../vim-7.2.108/src/version.c       Wed Feb 11 22:47:32 2009
+--- src/version.c      Sat Feb 21 19:34:28 2009
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     109,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+99. The hum of a cooling fan and the click of keys is comforting to you.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.2.110 b/7.2.110
new file mode 100644 (file)
index 0000000..4594e78
--- /dev/null
+++ b/7.2.110
@@ -0,0 +1,53 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.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.2.110
+Problem:    Compiler warning for unused variable.
+Solution:   Init the variable.
+Files:      src/ex_docmd.c
+    
+
+*** ../vim-7.2.109/src/ex_docmd.c      Wed Jan 28 15:42:07 2009
+--- src/ex_docmd.c     Tue Feb 17 03:47:13 2009
+***************
+*** 5916,5922 ****
+      char_u   *q;
+  
+      char_u   *start;
+!     char_u   *end;
+      char_u   *ksp;
+      size_t   len, totlen;
+  
+--- 5916,5922 ----
+      char_u   *q;
+  
+      char_u   *start;
+!     char_u   *end = NULL;
+      char_u   *ksp;
+      size_t   len, totlen;
+  
+*** ../vim-7.2.109/src/version.c       Sat Feb 21 20:27:00 2009
+--- src/version.c      Sat Feb 21 20:35:50 2009
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     110,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+100. The most exciting sporting events you noticed during summer 1996
+    was Netscape vs. Microsoft.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.2.111 b/7.2.111
new file mode 100644 (file)
index 0000000..acc0be4
--- /dev/null
+++ b/7.2.111
@@ -0,0 +1,88 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.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.2.111
+Problem:    When using Visual block mode with 'cursorcolumn' it's unclear what
+            is selected.
+Solution:   Don't use 'cursorcolumn' highlighting inside the Visual selection.
+            (idea by Dominique Pelle)
+Files:      src/screen.c
+    
+
+*** ../vim-7.2.110/src/screen.c        Wed Oct  1 21:09:02 2008
+--- src/screen.c       Sat Feb 21 21:04:19 2009
+***************
+*** 2596,2601 ****
+--- 2596,2602 ----
+      int              noinvcur = FALSE;       /* don't invert the cursor */
+  #ifdef FEAT_VISUAL
+      pos_T    *top, *bot;
++     int              lnum_in_visual_area = FALSE;
+  #endif
+      pos_T    pos;
+      long     v;
+***************
+*** 2792,2800 ****
+           top = &VIsual;
+           bot = &curwin->w_cursor;
+       }
+       if (VIsual_mode == Ctrl_V)      /* block mode */
+       {
+!          if (lnum >= top->lnum && lnum <= bot->lnum)
+           {
+               fromcol = wp->w_old_cursor_fcol;
+               tocol = wp->w_old_cursor_lcol;
+--- 2793,2802 ----
+           top = &VIsual;
+           bot = &curwin->w_cursor;
+       }
++      lnum_in_visual_area = (lnum >= top->lnum && lnum <= bot->lnum);
+       if (VIsual_mode == Ctrl_V)      /* block mode */
+       {
+!          if (lnum_in_visual_area)
+           {
+               fromcol = wp->w_old_cursor_fcol;
+               tocol = wp->w_old_cursor_lcol;
+***************
+*** 4557,4563 ****
+        * highlight the cursor position itself. */
+       if (wp->w_p_cuc && vcol == (long)wp->w_virtcol
+               && lnum != wp->w_cursor.lnum
+!              && draw_state == WL_LINE)
+       {
+           vcol_save_attr = char_attr;
+           char_attr = hl_combine_attr(char_attr, hl_attr(HLF_CUC));
+--- 4560,4567 ----
+        * highlight the cursor position itself. */
+       if (wp->w_p_cuc && vcol == (long)wp->w_virtcol
+               && lnum != wp->w_cursor.lnum
+!              && draw_state == WL_LINE
+!              && !lnum_in_visual_area)
+       {
+           vcol_save_attr = char_attr;
+           char_attr = hl_combine_attr(char_attr, hl_attr(HLF_CUC));
+*** ../vim-7.2.110/src/version.c       Sat Feb 21 20:36:30 2009
+--- src/version.c      Sat Feb 21 21:08:14 2009
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     111,
+  /**/
+
+-- 
+Contrary to popular belief, Unix is user friendly.
+It just happens to be selective about who it makes friends with.
+                                               -- Dave Parnas
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.2.112 b/7.2.112
new file mode 100644 (file)
index 0000000..6611999
--- /dev/null
+++ b/7.2.112
@@ -0,0 +1,47 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.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.2.112 
+Problem:    Cursor invisible in Visual mode when 'number' is set and cursor in 
+            first column. (Matti Niemenmaa, Renato Alves) 
+Solution:   Check that vcol_prev is smaller than vcol. 
+Files:      src/screen.c 
+
+
+*** ../vim-7.2.111/src/screen.c        Sat Feb 21 21:10:24 2009
+--- src/screen.c       Sat Feb 21 21:04:19 2009
+***************
+*** 3422,3427 ****
+--- 3422,3428 ----
+                       && (*mb_ptr2cells)(ptr) > 1)
+  #endif
+                   || ((int)vcol_prev == fromcol_prev
++                      && vcol_prev < vcol     /* not at margin */
+                       && vcol < tocol))
+               area_attr = attr;               /* start highlighting */
+           else if (area_attr != 0
+*** ../vim-7.2.111/src/version.c       Sat Feb 21 21:10:24 2009
+--- src/version.c      Sat Feb 21 21:20:51 2009
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     112,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+102. When filling out your driver's license application, you give
+     your IP address.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.2.113 b/7.2.113
new file mode 100644 (file)
index 0000000..f0e4ebf
--- /dev/null
+++ b/7.2.113
@@ -0,0 +1,99 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.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.2.113
+Problem:    Crash for substitute() call using submatch(1) while there is no
+            such submatch. (Yukihiro Nakadaira)
+Solution:   Also check the start of the submatch is set, it can be NULL when
+            an attempted match didn't work out.
+Files:      src/regexp.c
+
+
+*** ../vim-7.2.112/src/regexp.c        Fri Aug  8 13:45:31 2008
+--- src/regexp.c       Sat Feb 21 21:46:49 2009
+***************
+*** 4532,4538 ****
+               cleanup_subexpr();
+               if (!REG_MULTI)         /* Single-line regexp */
+               {
+!                  if (reg_endp[no] == NULL)
+                   {
+                       /* Backref was not set: Match an empty string. */
+                       len = 0;
+--- 4532,4538 ----
+               cleanup_subexpr();
+               if (!REG_MULTI)         /* Single-line regexp */
+               {
+!                  if (reg_startp[no] == NULL || reg_endp[no] == NULL)
+                   {
+                       /* Backref was not set: Match an empty string. */
+                       len = 0;
+***************
+*** 4548,4554 ****
+               }
+               else                            /* Multi-line regexp */
+               {
+!                  if (reg_endpos[no].lnum < 0)
+                   {
+                       /* Backref was not set: Match an empty string. */
+                       len = 0;
+--- 4548,4554 ----
+               }
+               else                            /* Multi-line regexp */
+               {
+!                  if (reg_startpos[no].lnum < 0 || reg_endpos[no].lnum < 0)
+                   {
+                       /* Backref was not set: Match an empty string. */
+                       len = 0;
+***************
+*** 7279,7291 ****
+      }
+      else
+      {
+!      if (submatch_match->endp[no] == NULL)
+           retval = NULL;
+       else
+-      {
+-          s = submatch_match->startp[no];
+           retval = vim_strnsave(s, (int)(submatch_match->endp[no] - s));
+-      }
+      }
+  
+      return retval;
+--- 7279,7289 ----
+      }
+      else
+      {
+!      s = submatch_match->startp[no];
+!      if (s == NULL || submatch_match->endp[no] == NULL)
+           retval = NULL;
+       else
+           retval = vim_strnsave(s, (int)(submatch_match->endp[no] - s));
+      }
+  
+      return retval;
+*** ../vim-7.2.112/src/version.c       Sat Feb 21 21:22:44 2009
+--- src/version.c      Sat Feb 21 22:01:56 2009
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     113,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+103. When you find yourself in the "Computer" section of Barnes & Noble
+     enjoying yourself.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.2.114 b/7.2.114
new file mode 100644 (file)
index 0000000..9742b52
--- /dev/null
+++ b/7.2.114
@@ -0,0 +1,86 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.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.2.114
+Problem:    Using wrong printf format.
+Solution:   Use "%ld" instead of "%d". (Dominique Pelle)
+Files:      src/netbeans.c
+
+
+*** ../vim-7.2.113/src/netbeans.c      Tue Jan  6 16:13:42 2009
+--- src/netbeans.c     Tue Feb 17 03:21:33 2009
+***************
+*** 1924,1930 ****
+           vim_free(path);
+           if (bufp == NULL)
+           {
+!              nbdebug(("    File %s not found in setBufferNumber\n", args));
+               EMSG2("E642: File %s not found in setBufferNumber", args);
+               return FAIL;
+           }
+--- 1924,1930 ----
+           vim_free(path);
+           if (bufp == NULL)
+           {
+!              nbdebug(("    File %s not found in setBufferNumber\n", args));
+               EMSG2("E642: File %s not found in setBufferNumber", args);
+               return FAIL;
+           }
+***************
+*** 2318,2324 ****
+           }
+           if (pos)
+           {
+!              coloncmd(":sign place %d line=%d name=%d buffer=%d",
+                          serNum, pos->lnum, typeNum, buf->bufp->b_fnum);
+               if (typeNum == curPCtype)
+                   coloncmd(":sign jump %d buffer=%d", serNum,
+--- 2318,2324 ----
+           }
+           if (pos)
+           {
+!              coloncmd(":sign place %d line=%ld name=%d buffer=%d",
+                          serNum, pos->lnum, typeNum, buf->bufp->b_fnum);
+               if (typeNum == curPCtype)
+                   coloncmd(":sign jump %d buffer=%d", serNum,
+***************
+*** 2422,2428 ****
+                               GUARDED) == 0)
+                           {
+                               coloncmd(
+!                                  ":sign place %d line=%d name=%d buffer=%d",
+                                    guardId++, lnum, GUARDED,
+                                    buf->bufp->b_fnum);
+                           }
+--- 2422,2428 ----
+                               GUARDED) == 0)
+                           {
+                               coloncmd(
+!                                  ":sign place %d line=%ld name=%d buffer=%d",
+                                    guardId++, lnum, GUARDED,
+                                    buf->bufp->b_fnum);
+                           }
+*** ../vim-7.2.113/src/version.c       Sat Feb 21 22:03:06 2009
+--- src/version.c      Sat Feb 21 22:11:21 2009
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     114,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+104. When people ask about the Presidential Election you ask "Which country?"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.2.115 b/7.2.115
new file mode 100644 (file)
index 0000000..b51a1f5
--- /dev/null
+++ b/7.2.115
@@ -0,0 +1,133 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.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.2.115
+Problem:    Some debugging code is never used.
+Solution:   Remove nbtrace() and nbprt(). (Dominique Pelle)
+Files:      src/nbdebug.c, src/nbdebug.h
+
+*** ../vim-7.2.114/src/nbdebug.c       Tue Jun 24 23:54:30 2008
+--- src/nbdebug.c      Tue Feb 17 03:26:07 2009
+***************
+*** 33,39 ****
+  u_int                 nb_dlevel = 0;         /* nb_debug verbosity level */
+  
+  void          nbdb(char *, ...);
+- void          nbtrace(char *, ...);
+  
+  static int    lookup(char *);
+  #ifdef USE_NB_ERRORHANDLER
+--- 33,38 ----
+***************
+*** 100,124 ****
+  }    /* end nbdebug_log_init */
+  
+  
+- 
+- 
+- void
+- nbtrace(
+-      char            *fmt,
+-      ...)
+- {
+-      va_list          ap;
+- 
+-      if (nb_debug!= NULL && (nb_dlevel & (NB_TRACE | NB_TRACE_VERBOSE))) {
+-              va_start(ap, fmt);
+-              vfprintf(nb_debug, fmt, ap);
+-              va_end(ap);
+-              fflush(nb_debug);
+-      }
+- 
+- }    /* end nbtrace */
+- 
+- 
+  void
+  nbdbg(
+       char            *fmt,
+--- 99,104 ----
+***************
+*** 136,158 ****
+  }    /* end nbdbg */
+  
+  
+- void
+- nbprt(
+-      char            *fmt,
+-      ...)
+- {
+-      va_list          ap;
+- 
+-      if (nb_debug != NULL && nb_dlevel & NB_PRINT) {
+-              va_start(ap, fmt);
+-              vfprintf(nb_debug, fmt, ap);
+-              va_end(ap);
+-              fflush(nb_debug);
+-      }
+- 
+- }    /* end nbprt */
+- 
+- 
+  static int
+  lookup(
+       char            *file)
+--- 116,121 ----
+*** ../vim-7.2.114/src/nbdebug.h       Wed Jun 25 00:47:21 2008
+--- src/nbdebug.h      Tue Feb 17 03:26:38 2009
+***************
+*** 43,50 ****
+  
+  
+  void          nbdbg(char *, ...);
+- void          nbprt(char *, ...);
+- void          nbtrace(char *, ...);
+  
+  void nbdebug_wait __ARGS((u_int wait_flags, char *wait_var, u_int wait_secs));
+  void nbdebug_log_init __ARGS((char *log_var, char *level_var));
+--- 43,48 ----
+***************
+*** 70,88 ****
+  {
+  }
+  
+- void
+- nbprt(
+-      char            *fmt,
+-      ...)
+- {
+- }
+- 
+- void
+- nbtrace(
+-      char            *fmt,
+-      ...)
+- {
+- }
+- 
+  #endif /* NBDEBUG */
+  #endif /* NBDEBUG_H */
+--- 68,72 ----
+*** ../vim-7.2.114/src/version.c       Sat Feb 21 22:12:43 2009
+--- src/version.c      Sat Feb 21 22:28:21 2009
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     115,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+105. When someone asks you for your address, you tell them your URL.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.2.116 b/7.2.116
new file mode 100644 (file)
index 0000000..edd2bd1
--- /dev/null
+++ b/7.2.116
@@ -0,0 +1,55 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.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.2.116 
+Problem:    Not all memory is freed when EXITFREE is defined. 
+Solution:   Free allocated memory on exit. (Dominique Pelle) 
+Files:      src/ex_docmd.c, src/gui_gtk_x11.c, src/misc2.c, src/search.c, 
+            src/tag.c 
+    
+
+*** ../vim-7.2.115/src/tag.c   Tue Jan 13 17:27:18 2009
+--- src/tag.c  Tue Feb 17 03:43:32 2009
+***************
+*** 2542,2547 ****
+--- 2542,2556 ----
+  {
+      ga_clear_strings(&tag_fnames);
+      do_tag(NULL, DT_FREE, 0, 0, 0);
++     tag_freematch();
++ 
++ # if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
++     if (ptag_entry.tagname)
++     {
++         vim_free(ptag_entry.tagname);
++         ptag_entry.tagname = NULL;
++     }
++ # endif
+  }
+  #endif
+  
+*** ../vim-7.2.115/src/version.c       Sat Feb 21 22:29:12 2009
+--- src/version.c      Sat Feb 21 22:56:14 2009
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     116,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+106. When told to "go to your room" you inform your parents that you
+     can't...because you were kicked out and banned.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.2.117 b/7.2.117
new file mode 100644 (file)
index 0000000..4c4e66a
--- /dev/null
+++ b/7.2.117
@@ -0,0 +1,107 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.117
+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.2.117
+Problem:    Location list incorrectly labelled "Quickfix List".
+Solution:   Break out of both loops for finding window for location list
+            buffer. (Lech Lorens)
+Files:      src/buffer.c, src/quickfix.c, src/screen.c
+
+
+*** ../vim-7.2.116/src/buffer.c        Tue Jan  6 16:13:42 2009
+--- src/buffer.c       Tue Feb 17 04:00:51 2009
+***************
+*** 5098,5104 ****
+        */
+       FOR_ALL_TAB_WINDOWS(tp, win)
+           if (win->w_buffer == buf)
+!              break;
+       if (win != NULL && win->w_llist_ref != NULL)
+           return _("[Location List]");
+       else
+--- 5098,5105 ----
+        */
+       FOR_ALL_TAB_WINDOWS(tp, win)
+           if (win->w_buffer == buf)
+!              goto win_found;
+! win_found:
+       if (win != NULL && win->w_llist_ref != NULL)
+           return _("[Location List]");
+       else
+*** ../vim-7.2.116/src/quickfix.c      Sat Nov 15 14:10:23 2008
+--- src/quickfix.c     Sat Feb 21 22:54:25 2009
+***************
+*** 1610,1619 ****
+               {
+                   goto_tabpage_win(tp, wp);
+                   usable_win = 1;
+!                  break;
+               }
+           }
+       }
+  
+       /*
+        * If there is only one window and it is the quickfix window, create a
+--- 1612,1622 ----
+               {
+                   goto_tabpage_win(tp, wp);
+                   usable_win = 1;
+!                  goto win_found;
+               }
+           }
+       }
++ win_found:
+  
+       /*
+        * If there is only one window and it is the quickfix window, create a
+*** ../vim-7.2.116/src/screen.c        Sat Feb 21 21:22:44 2009
+--- src/screen.c       Sat Feb 21 21:04:19 2009
+***************
+*** 7452,7461 ****
+       {
+           outofmem = TRUE;
+  #ifdef FEAT_WINDOWS
+!          break;
+  #endif
+       }
+      }
+  
+  #ifdef FEAT_MBYTE
+      for (i = 0; i < p_mco; ++i)
+--- 7452,7464 ----
+       {
+           outofmem = TRUE;
+  #ifdef FEAT_WINDOWS
+!          goto give_up;
+  #endif
+       }
+      }
++ #ifdef FEAT_WINDOWS
++ give_up:
++ #endif
+  
+  #ifdef FEAT_MBYTE
+      for (i = 0; i < p_mco; ++i)
+*** ../vim-7.2.116/src/version.c       Sat Feb 21 22:57:10 2009
+--- src/version.c      Sat Feb 21 23:58:24 2009
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     117,
+  /**/
+
+-- 
+Laughing helps. It's like jogging on the inside.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.2.118 b/7.2.118
new file mode 100644 (file)
index 0000000..73b6cbb
--- /dev/null
+++ b/7.2.118
@@ -0,0 +1,78 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.118
+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.2.118
+Problem:    <PageUp> at the more prompt only does half a page.
+Solution:   Make <PageUp> go up a whole page.  Also make 'f' go a page
+            forward, but not quit the more prompt. (Markus Heidelberg)
+Files:      src/message.c
+
+
+*** ../vim-7.2.117/src/message.c       Wed Feb 11 18:46:48 2009
+--- src/message.c      Fri Feb 20 05:20:15 2009
+***************
+*** 976,982 ****
+                   }
+               }
+               else if (msg_scrolled > Rows - 2
+!                                   && (c == 'j' || c == K_DOWN || c == 'd'))
+                   c = K_IGNORE;
+           }
+       } while ((had_got_int && c == Ctrl_C)
+--- 976,982 ----
+                   }
+               }
+               else if (msg_scrolled > Rows - 2
+!                       && (c == 'j' || c == K_DOWN || c == 'd' || c == 'f'))
+                   c = K_IGNORE;
+           }
+       } while ((had_got_int && c == Ctrl_C)
+***************
+*** 2504,2510 ****
+           break;
+  
+       case 'u':               /* Up half a page */
+-      case K_PAGEUP:
+           scroll = -(Rows / 2);
+           break;
+  
+--- 2504,2509 ----
+***************
+*** 2513,2522 ****
+--- 2512,2523 ----
+           break;
+  
+       case 'b':               /* one page back */
++      case K_PAGEUP:
+           scroll = -(Rows - 1);
+           break;
+  
+       case ' ':               /* one extra page */
++      case 'f':
+       case K_PAGEDOWN:
+       case K_LEFTMOUSE:
+           scroll = Rows - 1;
+*** ../vim-7.2.117/src/version.c       Sun Feb 22 00:01:42 2009
+--- src/version.c      Sun Feb 22 00:57:16 2009
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     118,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+109. You actually read -- and enjoy -- lists like this.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.2.119 b/7.2.119
new file mode 100644 (file)
index 0000000..f31f2e6
--- /dev/null
+++ b/7.2.119
@@ -0,0 +1,51 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.119
+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.2.119
+Problem:    Status line is redrawn too often.
+Solution:   Check ScreeenLinesUC[] properly. (Yukihiro Nakadaira)
+Files:      src/screen.c
+
+
+*** ../vim-7.2.118/src/screen.c        Sun Feb 22 00:01:42 2009
+--- src/screen.c       Sun Feb 22 01:07:38 2009
+***************
+*** 6362,6368 ****
+                   && c == 0x8e
+                   && ScreenLines2[off] != ptr[1])
+               || (enc_utf8
+!                  && (ScreenLinesUC[off] != (u8char_T)u8c
+                       || screen_comp_differs(off, u8cc)))
+  #endif
+               || ScreenAttrs[off] != attr
+--- 6362,6368 ----
+                   && c == 0x8e
+                   && ScreenLines2[off] != ptr[1])
+               || (enc_utf8
+!                  && (ScreenLinesUC[off] != (u8char_T)(c >= 0x80 ? u8c : 0)
+                       || screen_comp_differs(off, u8cc)))
+  #endif
+               || ScreenAttrs[off] != attr
+*** ../vim-7.2.118/src/version.c       Sun Feb 22 00:58:03 2009
+--- src/version.c      Sun Feb 22 01:09:54 2009
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     119,
+  /**/
+
+-- 
+In a world without walls and borders, who needs windows and gates?
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.2.120 b/7.2.120
new file mode 100644 (file)
index 0000000..cf687f3
--- /dev/null
+++ b/7.2.120
@@ -0,0 +1,277 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.120
+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.2.120
+Problem:    When opening the quickfix window or splitting the window and
+            setting the location list, the location list is copied and then
+            deleted, which is inefficient.
+Solution:   Don't copy the location list when not needed. (Lech Lorens)
+Files:      src/quickfix.c, src/vim.h, src/window.c
+
+
+*** ../vim-7.2.119/src/quickfix.c      Sun Feb 22 00:01:42 2009
+--- src/quickfix.c     Sat Feb 21 22:54:25 2009
+***************
+*** 1419,1424 ****
+--- 1419,1425 ----
+      int                      opened_window = FALSE;
+      win_T            *win;
+      win_T            *altwin;
++     int                      flags;
+  #endif
+      win_T            *oldwin = curwin;
+      int                      print_message = TRUE;
+***************
+*** 1531,1537 ****
+      if (qf_ptr->qf_type == 1 && (!curwin->w_buffer->b_help || cmdmod.tab != 0))
+      {
+       win_T   *wp;
+-      int     n;
+  
+       if (cmdmod.tab != 0)
+           wp = NULL;
+--- 1532,1537 ----
+***************
+*** 1547,1559 ****
+            * Split off help window; put it at far top if no position
+            * specified, the current window is vertically split and narrow.
+            */
+!          n = WSP_HELP;
+  # ifdef FEAT_VERTSPLIT
+           if (cmdmod.split == 0 && curwin->w_width != Columns
+                                                     && curwin->w_width < 80)
+!              n |= WSP_TOP;
+  # endif
+!          if (win_split(0, n) == FAIL)
+               goto theend;
+           opened_window = TRUE;       /* close it when fail */
+  
+--- 1547,1562 ----
+            * Split off help window; put it at far top if no position
+            * specified, the current window is vertically split and narrow.
+            */
+!          flags = WSP_HELP;
+  # ifdef FEAT_VERTSPLIT
+           if (cmdmod.split == 0 && curwin->w_width != Columns
+                                                     && curwin->w_width < 80)
+!              flags |= WSP_TOP;
+  # endif
+!          if (qi != &ql_info)
+!              flags |= WSP_NEWLOC;  /* don't copy the location list */
+! 
+!          if (win_split(0, flags) == FAIL)
+               goto theend;
+           opened_window = TRUE;       /* close it when fail */
+  
+***************
+*** 1563,1569 ****
+           if (qi != &ql_info)     /* not a quickfix list */
+           {
+               /* The new window should use the supplied location list */
+-              qf_free_all(curwin);
+               curwin->w_llist = qi;
+               qi->qf_refcount++;
+           }
+--- 1566,1571 ----
+***************
+*** 1624,1630 ****
+       {
+           ll_ref = curwin->w_llist_ref;
+  
+!          if (win_split(0, WSP_ABOVE) == FAIL)
+               goto failed;            /* not enough room for window */
+           opened_window = TRUE;       /* close it when fail */
+           p_swb = empty_option;       /* don't split again */
+--- 1626,1635 ----
+       {
+           ll_ref = curwin->w_llist_ref;
+  
+!          flags = WSP_ABOVE;
+!          if (ll_ref != NULL)
+!              flags |= WSP_NEWLOC;
+!          if (win_split(0, flags) == FAIL)
+               goto failed;            /* not enough room for window */
+           opened_window = TRUE;       /* close it when fail */
+           p_swb = empty_option;       /* don't split again */
+***************
+*** 1636,1642 ****
+           {
+               /* The new window should use the location list from the
+                * location list window */
+-              qf_free_all(curwin);
+               curwin->w_llist = ll_ref;
+               ll_ref->qf_refcount++;
+           }
+--- 1641,1646 ----
+***************
+*** 2311,2325 ****
+       if (eap->cmdidx == CMD_copen || eap->cmdidx == CMD_cwindow)
+           /* Create the new window at the very bottom. */
+           win_goto(lastwin);
+!      if (win_split(height, WSP_BELOW) == FAIL)
+           return;             /* not enough room for window */
+  #ifdef FEAT_SCROLLBIND
+       curwin->w_p_scb = FALSE;
+  #endif
+  
+-      /* Remove the location list for the quickfix window */
+-      qf_free_all(curwin);
+- 
+       if (eap->cmdidx == CMD_lopen || eap->cmdidx == CMD_lwindow)
+       {
+           /*
+--- 2315,2326 ----
+       if (eap->cmdidx == CMD_copen || eap->cmdidx == CMD_cwindow)
+           /* Create the new window at the very bottom. */
+           win_goto(lastwin);
+!      if (win_split(height, WSP_BELOW | WSP_NEWLOC) == FAIL)
+           return;             /* not enough room for window */
+  #ifdef FEAT_SCROLLBIND
+       curwin->w_p_scb = FALSE;
+  #endif
+  
+       if (eap->cmdidx == CMD_lopen || eap->cmdidx == CMD_lwindow)
+       {
+           /*
+*** ../vim-7.2.119/src/vim.h   Thu Nov 20 14:11:47 2008
+--- src/vim.h  Sat Feb 21 22:53:03 2009
+***************
+*** 1057,1062 ****
+--- 1057,1063 ----
+  #define WSP_HELP     16      /* creating the help window */
+  #define WSP_BELOW    32      /* put new window below/right */
+  #define WSP_ABOVE    64      /* put new window above/left */
++ #define WSP_NEWLOC   128     /* don't copy location list */
+  
+  /*
+   * arguments for gui_set_shellsize()
+*** ../vim-7.2.119/src/window.c        Sat Feb 21 20:27:00 2009
+--- src/window.c       Sat Feb 21 23:56:41 2009
+***************
+*** 12,18 ****
+  static int path_is_url __ARGS((char_u *p));
+  #if defined(FEAT_WINDOWS) || defined(PROTO)
+  static int win_split_ins __ARGS((int size, int flags, win_T *newwin, int dir));
+! static void win_init __ARGS((win_T *newp, win_T *oldp));
+  static void frame_comp_pos __ARGS((frame_T *topfrp, int *row, int *col));
+  static void frame_setheight __ARGS((frame_T *curfrp, int height));
+  #ifdef FEAT_VERTSPLIT
+--- 12,18 ----
+  static int path_is_url __ARGS((char_u *p));
+  #if defined(FEAT_WINDOWS) || defined(PROTO)
+  static int win_split_ins __ARGS((int size, int flags, win_T *newwin, int dir));
+! static void win_init __ARGS((win_T *newp, win_T *oldp, int flags));
+  static void frame_comp_pos __ARGS((frame_T *topfrp, int *row, int *col));
+  static void frame_setheight __ARGS((frame_T *curfrp, int height));
+  #ifdef FEAT_VERTSPLIT
+***************
+*** 911,917 ****
+           return FAIL;
+  
+       /* make the contents of the new window the same as the current one */
+!      win_init(wp, curwin);
+      }
+  
+      /*
+--- 911,917 ----
+           return FAIL;
+  
+       /* make the contents of the new window the same as the current one */
+!      win_init(wp, curwin, flags);
+      }
+  
+      /*
+***************
+*** 1160,1170 ****
+   * Initialize window "newp" from window "oldp".
+   * Used when splitting a window and when creating a new tab page.
+   * The windows will both edit the same buffer.
+   */
+      static void
+! win_init(newp, oldp)
+      win_T    *newp;
+      win_T    *oldp;
+  {
+      int              i;
+  
+--- 1160,1174 ----
+   * Initialize window "newp" from window "oldp".
+   * Used when splitting a window and when creating a new tab page.
+   * The windows will both edit the same buffer.
++  * WSP_NEWLOC may be specified in flags to prevent the location list from
++  * being copied.
+   */
++ /*ARGSUSED*/
+      static void
+! win_init(newp, oldp, flags)
+      win_T    *newp;
+      win_T    *oldp;
++     int               flags;
+  {
+      int              i;
+  
+***************
+*** 1189,1195 ****
+      copy_jumplist(oldp, newp);
+  #endif
+  #ifdef FEAT_QUICKFIX
+!     copy_loclist(oldp, newp);
+  #endif
+      if (oldp->w_localdir != NULL)
+       newp->w_localdir = vim_strsave(oldp->w_localdir);
+--- 1193,1206 ----
+      copy_jumplist(oldp, newp);
+  #endif
+  #ifdef FEAT_QUICKFIX
+!     if (flags & WSP_NEWLOC)
+!     {
+!      /* Don't copy the location list.  */
+!      newp->w_llist = NULL;
+!      newp->w_llist_ref = NULL;
+!     }
+!     else
+!      copy_loclist(oldp, newp);
+  #endif
+      if (oldp->w_localdir != NULL)
+       newp->w_localdir = vim_strsave(oldp->w_localdir);
+***************
+*** 3219,3225 ****
+      else
+      {
+       /* First window in new tab page, initialize it from "oldwin". */
+!      win_init(curwin, oldwin);
+  
+  # ifdef FEAT_SCROLLBIND
+       /* We don't want scroll-binding in the first window. */
+--- 3230,3236 ----
+      else
+      {
+       /* First window in new tab page, initialize it from "oldwin". */
+!      win_init(curwin, oldwin, 0);
+  
+  # ifdef FEAT_SCROLLBIND
+       /* We don't want scroll-binding in the first window. */
+*** ../vim-7.2.119/src/version.c       Sun Feb 22 01:13:45 2009
+--- src/version.c      Sun Feb 22 02:32:14 2009
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     120,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+110. You actually volunteer to become your employer's webmaster.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.2.121 b/7.2.121
new file mode 100644 (file)
index 0000000..ea5306f
--- /dev/null
+++ b/7.2.121
@@ -0,0 +1,180 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.121
+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.2.121
+Problem:    In gvim "!grep a *.c" spews out a lot of text that can't be
+            stopped with CTRL-C.
+Solution:   When looping to read and show text, do check for typed characters
+            every two seconds.
+Files:      src/os_unix.c
+
+
+*** ../vim-7.2.120/src/os_unix.c       Wed Feb  4 14:18:44 2009
+--- src/os_unix.c      Sun Feb 22 00:54:05 2009
+***************
+*** 4092,4097 ****
+--- 4092,4100 ----
+               int         fromshell_fd;
+               garray_T    ga;
+               int         noread_cnt;
++ # if defined(HAVE_GETTIMEOFDAY) && defined(HAVE_SYS_TIME_H)
++              struct timeval  start_tv;
++ # endif
+  
+  # ifdef FEAT_GUI
+               if (pty_master_fd >= 0)
+***************
+*** 4201,4207 ****
+                   ga_init2(&ga, 1, BUFLEN);
+  
+               noread_cnt = 0;
+! 
+               for (;;)
+               {
+                   /*
+--- 4204,4212 ----
+                   ga_init2(&ga, 1, BUFLEN);
+  
+               noread_cnt = 0;
+! # if defined(HAVE_GETTIMEOFDAY) && defined(HAVE_SYS_TIME_H)
+!              gettimeofday(&start_tv, NULL);
+! # endif
+               for (;;)
+               {
+                   /*
+***************
+*** 4214,4238 ****
+                    * that a typed password is echoed for ssh or gpg command.
+                    * Don't get characters when the child has already
+                    * finished (wait_pid == 0).
+-                   * Don't get extra characters when we already have one.
+                    * Don't read characters unless we didn't get output for a
+!                   * while, avoids that ":r !ls" eats typeahead.
+                    */
+                   len = 0;
+                   if (!(options & SHELL_EXPAND)
+                           && ((options &
+                                        (SHELL_READ|SHELL_WRITE|SHELL_COOKED))
+                                     != (SHELL_READ|SHELL_WRITE|SHELL_COOKED)
+! #ifdef FEAT_GUI
+                                                   || gui.in_use
+! #endif
+                                                   )
+                           && wait_pid == 0
+!                          && (ta_len > 0
+!                              || (noread_cnt > 4
+!                                  && (len = ui_inchar(ta_buf,
+!                                                     BUFLEN, 10L, 0)) > 0)))
+                   {
+                       /*
+                        * For pipes:
+                        * Check for CTRL-C: send interrupt signal to child.
+--- 4219,4252 ----
+                    * that a typed password is echoed for ssh or gpg command.
+                    * Don't get characters when the child has already
+                    * finished (wait_pid == 0).
+                    * Don't read characters unless we didn't get output for a
+!                   * while (noread_cnt > 4), avoids that ":r !ls" eats
+!                   * typeahead.
+                    */
+                   len = 0;
+                   if (!(options & SHELL_EXPAND)
+                           && ((options &
+                                        (SHELL_READ|SHELL_WRITE|SHELL_COOKED))
+                                     != (SHELL_READ|SHELL_WRITE|SHELL_COOKED)
+! # ifdef FEAT_GUI
+                                                   || gui.in_use
+! # endif
+                                                   )
+                           && wait_pid == 0
+!                          && (ta_len > 0 || noread_cnt > 4))
+                   {
++                    if (ta_len == 0)
++                    {
++                        /* Get extra characters when we don't have any.
++                         * Reset the counter and timer. */
++                        noread_cnt = 0;
++ # if defined(HAVE_GETTIMEOFDAY) && defined(HAVE_SYS_TIME_H)
++                        gettimeofday(&start_tv, NULL);
++ # endif
++                        len = ui_inchar(ta_buf, BUFLEN, 10L, 0);
++                    }
++                    if (ta_len > 0 || len > 0)
++                    {
+                       /*
+                        * For pipes:
+                        * Check for CTRL-C: send interrupt signal to child.
+***************
+*** 4334,4342 ****
+                           {
+                               ta_len -= len;
+                               mch_memmove(ta_buf, ta_buf + len, ta_len);
+-                              noread_cnt = 0;
+                           }
+                       }
+                   }
+  
+                   if (got_int)
+--- 4348,4356 ----
+                           {
+                               ta_len -= len;
+                               mch_memmove(ta_buf, ta_buf + len, ta_len);
+                           }
+                       }
++                    }
+                   }
+  
+                   if (got_int)
+***************
+*** 4444,4449 ****
+--- 4458,4482 ----
+                       out_flush();
+                       if (got_int)
+                           break;
++ 
++ # if defined(HAVE_GETTIMEOFDAY) && defined(HAVE_SYS_TIME_H)
++                      {
++                          struct timeval  now_tv;
++                          long            msec;
++ 
++                          /* Avoid that we keep looping here without
++                           * checking for a CTRL-C for a long time.  Don't
++                           * break out too often to avoid losing typeahead. */
++                          gettimeofday(&now_tv, NULL);
++                          msec = (now_tv.tv_sec - start_tv.tv_sec) * 1000L
++                              + (now_tv.tv_usec - start_tv.tv_usec) / 1000L;
++                          if (msec > 2000)
++                          {
++                              noread_cnt = 5;
++                              break;
++                          }
++                      }
++ # endif
+                   }
+  
+                   /* If we already detected the child has finished break the
+*** ../vim-7.2.120/src/version.c       Sun Feb 22 02:36:36 2009
+--- src/version.c      Sun Feb 22 02:48:03 2009
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     121,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+111. You and your friends get together regularly on IRC, even though
+     all of you live in the same city.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
This page took 0.187926 seconds and 4 git commands to generate.