]> git.pld-linux.org Git - packages/vim.git/commitdiff
- updated to 7.2.148
authorElan Ruusamäe <glen@pld-linux.org>
Thu, 2 Apr 2009 16:25:15 +0000 (16:25 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    7.2.129 -> 1.1
    7.2.130 -> 1.1
    7.2.131 -> 1.1
    7.2.132 -> 1.1
    7.2.133 -> 1.1
    7.2.134 -> 1.1
    7.2.135 -> 1.1
    7.2.136 -> 1.1
    7.2.137 -> 1.1
    7.2.138 -> 1.1
    7.2.139 -> 1.1
    7.2.140 -> 1.1
    7.2.141 -> 1.1
    7.2.142 -> 1.1
    7.2.143 -> 1.1
    7.2.144 -> 1.1
    7.2.145 -> 1.1
    7.2.146 -> 1.1
    7.2.147 -> 1.1
    7.2.148 -> 1.1

20 files changed:
7.2.129 [new file with mode: 0644]
7.2.130 [new file with mode: 0644]
7.2.131 [new file with mode: 0644]
7.2.132 [new file with mode: 0644]
7.2.133 [new file with mode: 0644]
7.2.134 [new file with mode: 0644]
7.2.135 [new file with mode: 0644]
7.2.136 [new file with mode: 0644]
7.2.137 [new file with mode: 0644]
7.2.138 [new file with mode: 0644]
7.2.139 [new file with mode: 0644]
7.2.140 [new file with mode: 0644]
7.2.141 [new file with mode: 0644]
7.2.142 [new file with mode: 0644]
7.2.143 [new file with mode: 0644]
7.2.144 [new file with mode: 0644]
7.2.145 [new file with mode: 0644]
7.2.146 [new file with mode: 0644]
7.2.147 [new file with mode: 0644]
7.2.148 [new file with mode: 0644]

diff --git a/7.2.129 b/7.2.129
new file mode 100644 (file)
index 0000000..ca756cf
--- /dev/null
+++ b/7.2.129
@@ -0,0 +1,73 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.129
+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.129
+Problem:    When opening a command window from input() it uses the search
+            history.
+Solution:   Use get_cmdline_type(). (James Vega)
+Files:      src/ex_getln.c
+
+
+*** ../vim-7.2.128/src/ex_getln.c      Fri Nov 28 10:59:57 2008
+--- src/ex_getln.c     Mon Mar  2 00:53:39 2009
+***************
+*** 6047,6055 ****
+  # endif
+       return K_IGNORE;
+      }
+!     cmdwin_type = ccline.cmdfirstc;
+!     if (cmdwin_type == NUL)
+!      cmdwin_type = '-';
+  
+      /* Create the command-line buffer empty. */
+      (void)do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, ECMD_HIDE, NULL);
+--- 6062,6068 ----
+  # endif
+       return K_IGNORE;
+      }
+!     cmdwin_type = get_cmdline_type();
+  
+      /* Create the command-line buffer empty. */
+      (void)do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, ECMD_HIDE, NULL);
+***************
+*** 6073,6079 ****
+      /* Showing the prompt may have set need_wait_return, reset it. */
+      need_wait_return = FALSE;
+  
+!     histtype = hist_char2type(ccline.cmdfirstc);
+      if (histtype == HIST_CMD || histtype == HIST_DEBUG)
+      {
+       if (p_wc == TAB)
+--- 6086,6092 ----
+      /* Showing the prompt may have set need_wait_return, reset it. */
+      need_wait_return = FALSE;
+  
+!     histtype = hist_char2type(cmdwin_type);
+      if (histtype == HIST_CMD || histtype == HIST_DEBUG)
+      {
+       if (p_wc == TAB)
+*** ../vim-7.2.128/src/version.c       Sun Mar  1 02:43:50 2009
+--- src/version.c      Mon Mar  2 02:10:11 2009
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     129,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+146. You experience ACTUAL physical withdrawal symptoms when away
+     from your 'puter and the net.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.2.130 b/7.2.130
new file mode 100644 (file)
index 0000000..8d65468
--- /dev/null
+++ b/7.2.130
@@ -0,0 +1,413 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.130
+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.130
+Problem:    Vim may haing until CTRL-C is typed when using CTRL-Z.
+Solution:   Avoid using pause().  Also use "volatile" for variables used in
+            signal functions. (Dominique Pelle)
+Files:      src/auto/configure, src/configure.in, src/config.h.in,
+            src/globals.h, src/os_unix.c
+    
+
+*** ../vim-7.2.129/src/auto/configure  Thu Nov 20 10:36:04 2008
+--- src/auto/configure Mon Mar  2 02:36:52 2009
+***************
+*** 11565,11570 ****
+--- 11565,11631 ----
+  
+  fi
+  
++ { $as_echo "$as_me:$LINENO: checking for working volatile" >&5
++ $as_echo_n "checking for working volatile... " >&6; }
++ if test "${ac_cv_c_volatile+set}" = set; then
++   $as_echo_n "(cached) " >&6
++ else
++   cat >conftest.$ac_ext <<_ACEOF
++ /* confdefs.h.  */
++ _ACEOF
++ cat confdefs.h >>conftest.$ac_ext
++ cat >>conftest.$ac_ext <<_ACEOF
++ /* end confdefs.h.  */
++ 
++ int
++ main ()
++ {
++ 
++ volatile int x;
++ int * volatile y = (int *) 0;
++ return !x && !y;
++   ;
++   return 0;
++ }
++ _ACEOF
++ rm -f conftest.$ac_objext
++ if { (ac_try="$ac_compile"
++ case "(($ac_try" in
++   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++   *) ac_try_echo=$ac_try;;
++ esac
++ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
++ $as_echo "$ac_try_echo") >&5
++   (eval "$ac_compile") 2>conftest.er1
++   ac_status=$?
++   grep -v '^ *+' conftest.er1 >conftest.err
++   rm -f conftest.er1
++   cat conftest.err >&5
++   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
++   (exit $ac_status); } && {
++       test -z "$ac_c_werror_flag" ||
++       test ! -s conftest.err
++        } && test -s conftest.$ac_objext; then
++   ac_cv_c_volatile=yes
++ else
++   $as_echo "$as_me: failed program was:" >&5
++ sed 's/^/| /' conftest.$ac_ext >&5
++ 
++      ac_cv_c_volatile=no
++ fi
++ 
++ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
++ fi
++ { $as_echo "$as_me:$LINENO: result: $ac_cv_c_volatile" >&5
++ $as_echo "$ac_cv_c_volatile" >&6; }
++ if test $ac_cv_c_volatile = no; then
++ 
++ cat >>confdefs.h <<\_ACEOF
++ #define volatile /**/
++ _ACEOF
++ 
++ fi
++ 
+  { $as_echo "$as_me:$LINENO: checking for mode_t" >&5
+  $as_echo_n "checking for mode_t... " >&6; }
+  if test "${ac_cv_type_mode_t+set}" = set; then
+*** ../vim-7.2.129/src/configure.in    Thu Nov 20 10:36:04 2008
+--- src/configure.in   Sun Feb 22 21:47:44 2009
+***************
+*** 2148,2153 ****
+--- 2148,2154 ----
+  dnl Checks for typedefs, structures, and compiler characteristics.
+  AC_PROG_GCC_TRADITIONAL
+  AC_C_CONST
++ AC_C_VOLATILE
+  AC_TYPE_MODE_T
+  AC_TYPE_OFF_T
+  AC_TYPE_PID_T
+*** ../vim-7.2.129/src/config.h.in     Tue Jun 24 23:47:46 2008
+--- src/config.h.in    Mon Feb 23 00:13:17 2009
+***************
+*** 50,55 ****
+--- 50,58 ----
+  /* Define to empty if the keyword does not work.  */
+  #undef const
+  
++ /* Define to empty if the keyword does not work.  */
++ #undef volatile
++ 
+  /* Define to `int' if <sys/types.h> doesn't define.  */
+  #undef mode_t
+  
+*** ../vim-7.2.129/src/globals.h       Tue Jan  6 16:13:42 2009
+--- src/globals.h      Mon Mar  2 02:40:16 2009
+***************
+*** 482,489 ****
+  /*
+   * While executing external commands or in Ex mode, should not insert GUI
+   * events in the input buffer: Set hold_gui_events to non-zero.
+   */
+! EXTERN int   hold_gui_events INIT(= 0);
+  
+  /*
+   * When resizing the shell is postponed, remember the new size, and call
+--- 482,491 ----
+  /*
+   * While executing external commands or in Ex mode, should not insert GUI
+   * events in the input buffer: Set hold_gui_events to non-zero.
++  *
++  * volatile because it is used in signal handler sig_sysmouse().
+   */
+! EXTERN volatile int hold_gui_events INIT(= 0);
+  
+  /*
+   * When resizing the shell is postponed, remember the new size, and call
+***************
+*** 597,603 ****
+  EXTERN int   really_exiting INIT(= FALSE);
+                               /* TRUE when we are sure to exit, e.g., after
+                                * a deadly signal */
+! EXTERN int   full_screen INIT(= FALSE);
+                               /* TRUE when doing full-screen output
+                                * otherwise only writing some messages */
+  
+--- 599,606 ----
+  EXTERN int   really_exiting INIT(= FALSE);
+                               /* TRUE when we are sure to exit, e.g., after
+                                * a deadly signal */
+! /* volatile because it is used in signal handler deathtrap(). */
+! EXTERN volatile int full_screen INIT(= FALSE);
+                               /* TRUE when doing full-screen output
+                                * otherwise only writing some messages */
+  
+***************
+*** 739,748 ****
+   */
+  EXTERN JMP_BUF lc_jump_env;  /* argument to SETJMP() */
+  # ifdef SIGHASARG
+! EXTERN int lc_signal;                /* catched signal number, 0 when no was signal
+!                                 catched; used for mch_libcall() */
+  # endif
+! EXTERN int lc_active INIT(= FALSE); /* TRUE when lc_jump_env is valid. */
+  #endif
+  
+  #if defined(FEAT_MBYTE) || defined(FEAT_POSTSCRIPT)
+--- 747,758 ----
+   */
+  EXTERN JMP_BUF lc_jump_env;  /* argument to SETJMP() */
+  # ifdef SIGHASARG
+! /* volatile because it is used in signal handlers. */
+! EXTERN volatile int lc_signal;       /* caught signal number, 0 when no was signal
+!                                 caught; used for mch_libcall() */
+  # endif
+! /* volatile because it is used in signal handler deathtrap(). */
+! EXTERN volatile int lc_active INIT(= FALSE); /* TRUE when lc_jump_env is valid. */
+  #endif
+  
+  #if defined(FEAT_MBYTE) || defined(FEAT_POSTSCRIPT)
+***************
+*** 986,992 ****
+  EXTERN FILE  *scriptout  INIT(= NULL);   /* stream to write script to */
+  EXTERN int   read_cmd_fd INIT(= 0);      /* fd to read commands from */
+  
+! EXTERN int   got_int INIT(= FALSE);      /* set to TRUE when interrupt
+                                               signal occurred */
+  #ifdef USE_TERM_CONSOLE
+  EXTERN int   term_console INIT(= FALSE); /* set to TRUE when console used */
+--- 996,1003 ----
+  EXTERN FILE  *scriptout  INIT(= NULL);   /* stream to write script to */
+  EXTERN int   read_cmd_fd INIT(= 0);      /* fd to read commands from */
+  
+! /* volatile because it is used in signal handler catch_sigint(). */
+! EXTERN volatile int got_int INIT(= FALSE);    /* set to TRUE when interrupt
+                                               signal occurred */
+  #ifdef USE_TERM_CONSOLE
+  EXTERN int   term_console INIT(= FALSE); /* set to TRUE when console used */
+*** ../vim-7.2.129/src/os_unix.c       Sun Feb 22 02:51:37 2009
+--- src/os_unix.c      Mon Mar  2 01:05:50 2009
+***************
+*** 181,187 ****
+       && defined(FEAT_TITLE) && !defined(FEAT_GUI_GTK)
+  # define SET_SIG_ALARM
+  static RETSIGTYPE sig_alarm __ARGS(SIGPROTOARG);
+! static int sig_alarm_called;
+  #endif
+  static RETSIGTYPE deathtrap __ARGS(SIGPROTOARG);
+  
+--- 181,188 ----
+       && defined(FEAT_TITLE) && !defined(FEAT_GUI_GTK)
+  # define SET_SIG_ALARM
+  static RETSIGTYPE sig_alarm __ARGS(SIGPROTOARG);
+! /* volatile because it is used in signal handler sig_alarm(). */
+! static volatile int sig_alarm_called;
+  #endif
+  static RETSIGTYPE deathtrap __ARGS(SIGPROTOARG);
+  
+***************
+*** 201,213 ****
+  # define SIG_ERR     ((RETSIGTYPE (*)())-1)
+  #endif
+  
+! static int   do_resize = FALSE;
+  #ifndef __EMX__
+  static char_u        *extra_shell_arg = NULL;
+  static int   show_shell_mess = TRUE;
+  #endif
+! static int   deadly_signal = 0;          /* The signal we caught */
+! static int   in_mch_delay = FALSE;       /* sleeping in mch_delay() */
+  
+  static int curr_tmode = TMODE_COOK;  /* contains current terminal mode */
+  
+--- 202,217 ----
+  # define SIG_ERR     ((RETSIGTYPE (*)())-1)
+  #endif
+  
+! /* volatile because it is used in signal handler sig_winch(). */
+! static volatile int do_resize = FALSE;
+  #ifndef __EMX__
+  static char_u        *extra_shell_arg = NULL;
+  static int   show_shell_mess = TRUE;
+  #endif
+! /* volatile because it is used in signal handler deathtrap(). */
+! static volatile int deadly_signal = 0;           /* The signal we caught */
+! /* volatile because it is used in signal handler deathtrap(). */
+! static volatile int in_mch_delay = FALSE;    /* sleeping in mch_delay() */
+  
+  static int curr_tmode = TMODE_COOK;  /* contains current terminal mode */
+  
+***************
+*** 802,808 ****
+  #endif
+  
+  /*
+!  * We need correct potatotypes for a signal function, otherwise mean compilers
+   * will barf when the second argument to signal() is ``wrong''.
+   * Let me try it with a few tricky defines from my own osdef.h       (jw).
+   */
+--- 806,812 ----
+  #endif
+  
+  /*
+!  * We need correct prototypes for a signal function, otherwise mean compilers
+   * will barf when the second argument to signal() is ``wrong''.
+   * Let me try it with a few tricky defines from my own osdef.h       (jw).
+   */
+***************
+*** 1068,1080 ****
+      SIGRETURN;
+  }
+  
+! #ifdef _REENTRANT
+  /*
+   * On Solaris with multi-threading, suspending might not work immediately.
+   * Catch the SIGCONT signal, which will be used as an indication whether the
+   * suspending has been done or not.
+   */
+! static int sigcont_received;
+  static RETSIGTYPE sigcont_handler __ARGS(SIGPROTOARG);
+  
+  /*
+--- 1072,1089 ----
+      SIGRETURN;
+  }
+  
+! #if defined(_REENTRANT) && defined(SIGCONT)
+  /*
+   * On Solaris with multi-threading, suspending might not work immediately.
+   * Catch the SIGCONT signal, which will be used as an indication whether the
+   * suspending has been done or not.
++  *
++  * On Linux, signal is not always handled immediately either.
++  * See https://bugs.launchpad.net/bugs/291373
++  *
++  * volatile because it is used in in signal handler sigcont_handler().
+   */
+! static volatile int sigcont_received;
+  static RETSIGTYPE sigcont_handler __ARGS(SIGPROTOARG);
+  
+  /*
+***************
+*** 1118,1132 ****
+      }
+  # endif
+  
+! # ifdef _REENTRANT
+      sigcont_received = FALSE;
+  # endif
+      kill(0, SIGTSTP);            /* send ourselves a STOP signal */
+! # ifdef _REENTRANT
+!     /* When we didn't suspend immediately in the kill(), do it now.  Happens
+!      * on multi-threaded Solaris. */
+!     if (!sigcont_received)
+!      pause();
+  # endif
+  
+  # ifdef FEAT_TITLE
+--- 1127,1154 ----
+      }
+  # endif
+  
+! # if defined(_REENTRANT) && defined(SIGCONT)
+      sigcont_received = FALSE;
+  # endif
+      kill(0, SIGTSTP);            /* send ourselves a STOP signal */
+! # if defined(_REENTRANT) && defined(SIGCONT)
+!     /*
+!      * Wait for the SIGCONT signal to be handled. It generally happens
+!      * immediately, but somehow not all the time. Do not call pause()
+!      * because there would be race condition which would hang Vim if
+!      * signal happened in between the test of sigcont_received and the
+!      * call to pause(). If signal is not yet received, call sleep(0)
+!      * to just yield CPU. Signal should then be received. If somehow
+!      * it's still not received, sleep 1, 2, 3 ms. Don't bother waiting
+!      * further if signal is not received after 1+2+3+4 ms (not expected
+!      * to happen).
+!      */
+!     {
+!      long wait;
+!      for (wait = 0; !sigcont_received && wait <= 3L; wait++)
+!          /* Loop is not entered most of the time */
+!          mch_delay(wait, FALSE);
+!     }
+  # endif
+  
+  # ifdef FEAT_TITLE
+***************
+*** 1175,1181 ****
+  #ifdef SIGTSTP
+      signal(SIGTSTP, restricted ? SIG_IGN : SIG_DFL);
+  #endif
+! #ifdef _REENTRANT
+      signal(SIGCONT, sigcont_handler);
+  #endif
+  
+--- 1197,1203 ----
+  #ifdef SIGTSTP
+      signal(SIGTSTP, restricted ? SIG_IGN : SIG_DFL);
+  #endif
+! #if defined(_REENTRANT) && defined(SIGCONT)
+      signal(SIGCONT, sigcont_handler);
+  #endif
+  
+***************
+*** 1234,1240 ****
+  reset_signals()
+  {
+      catch_signals(SIG_DFL, SIG_DFL);
+! #ifdef _REENTRANT
+      /* SIGCONT isn't in the list, because its default action is ignore */
+      signal(SIGCONT, SIG_DFL);
+  #endif
+--- 1256,1262 ----
+  reset_signals()
+  {
+      catch_signals(SIG_DFL, SIG_DFL);
+! #if defined(_REENTRANT) && defined(SIGCONT)
+      /* SIGCONT isn't in the list, because its default action is ignore */
+      signal(SIGCONT, SIG_DFL);
+  #endif
+***************
+*** 5899,5905 ****
+--- 5921,5929 ----
+            * we are going to suspend or starting an external process
+            * so we shouldn't  have problem with this
+            */
++ # ifdef SIGTSTP
+           signal(SIGTSTP, restricted ? SIG_IGN : SIG_DFL);
++ # endif
+           return 1; /* succeed */
+       }
+       if (gpm_fd == -2)
+*** ../vim-7.2.129/src/version.c       Mon Mar  2 02:11:09 2009
+--- src/version.c      Mon Mar  2 02:36:00 2009
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     130,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+148. You find it easier to dial-up the National Weather Service
+     Weather/your_town/now.html than to simply look out the window.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.2.131 b/7.2.131
new file mode 100644 (file)
index 0000000..fec2b5e
--- /dev/null
+++ b/7.2.131
@@ -0,0 +1,83 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.131
+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.131
+Problem:    When 'keymap' is cleared may still use the cursor highlighting for
+            when it's enabled.
+Solution:   Reset 'iminsert' and 'imsearch'. (partly by Dominique Pelle)
+            Also avoid ":setlocal" for these options have a global effect.
+Files:      src/option.c
+
+
+*** ../vim-7.2.130/src/option.c        Sat Feb 21 20:27:00 2009
+--- src/option.c       Wed Mar  4 04:09:51 2009
+***************
+*** 5797,5810 ****
+       /* load or unload key mapping tables */
+       errmsg = keymap_init();
+  
+!      /* When successfully installed a new keymap switch on using it. */
+!      if (*curbuf->b_p_keymap != NUL && errmsg == NULL)
+       {
+!          curbuf->b_p_iminsert = B_IMODE_LMAP;
+!          if (curbuf->b_p_imsearch != B_IMODE_USE_INSERT)
+!              curbuf->b_p_imsearch = B_IMODE_LMAP;
+!          set_iminsert_global();
+!          set_imsearch_global();
+  # ifdef FEAT_WINDOWS
+           status_redraw_curbuf();
+  # endif
+--- 5797,5824 ----
+       /* load or unload key mapping tables */
+       errmsg = keymap_init();
+  
+!      if (errmsg == NULL)
+       {
+!          if (*curbuf->b_p_keymap != NUL)
+!          {
+!              /* Installed a new keymap, switch on using it. */
+!              curbuf->b_p_iminsert = B_IMODE_LMAP;
+!              if (curbuf->b_p_imsearch != B_IMODE_USE_INSERT)
+!                  curbuf->b_p_imsearch = B_IMODE_LMAP;
+!          }
+!          else
+!          {
+!              /* Cleared the keymap, may reset 'iminsert' and 'imsearch'. */
+!              if (curbuf->b_p_iminsert == B_IMODE_LMAP)
+!                  curbuf->b_p_iminsert = B_IMODE_NONE;
+!              if (curbuf->b_p_imsearch == B_IMODE_LMAP)
+!                  curbuf->b_p_imsearch = B_IMODE_USE_INSERT;
+!          }
+!          if ((opt_flags & OPT_LOCAL) == 0)
+!          {
+!              set_iminsert_global();
+!              set_imsearch_global();
+!          }
+  # ifdef FEAT_WINDOWS
+           status_redraw_curbuf();
+  # endif
+*** ../vim-7.2.130/src/version.c       Mon Mar  2 02:44:54 2009
+--- src/version.c      Wed Mar  4 04:10:32 2009
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     131,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+157. You fum through a magazine, you first check to see if it has a web
+     address.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.2.132 b/7.2.132
new file mode 100644 (file)
index 0000000..69e19ee
--- /dev/null
+++ b/7.2.132
@@ -0,0 +1,268 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.132
+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.132
+Problem:    When changing directory during a SwapExists autocmd freed memory
+            may be accessed. (Dominique Pelle)
+Solution:   Add the allbuf_lock flag.
+Files:      src/ex_getln.c, src/globals.h, src/fileio.c,
+            src/proto/ex_getln.pro
+    
+
+*** ../vim-7.2.131/src/ex_getln.c      Mon Mar  2 02:11:09 2009
+--- src/ex_getln.c     Mon Mar  2 00:53:39 2009
+***************
+*** 2000,2007 ****
+  
+  #if defined(FEAT_AUTOCMD) || defined(PROTO)
+  /*
+!  * Check if "curbuf_lock" is set and return TRUE when it is and give an error
+!  * message.
+   */
+      int
+  curbuf_locked()
+--- 2000,2007 ----
+  
+  #if defined(FEAT_AUTOCMD) || defined(PROTO)
+  /*
+!  * Check if "curbuf_lock" or "allbuf_lock" is set and return TRUE when it is
+!  * and give an error message.
+   */
+      int
+  curbuf_locked()
+***************
+*** 2011,2016 ****
+--- 2011,2031 ----
+       EMSG(_("E788: Not allowed to edit another buffer now"));
+       return TRUE;
+      }
++     return allbuf_locked();
++ }
++ 
++ /*
++  * Check if "allbuf_lock" is set and return TRUE when it is and give an error
++  * message.
++  */
++     int
++ allbuf_locked()
++ {
++     if (allbuf_lock > 0)
++     {
++      EMSG(_("E811: Not allowed to change buffer information now"));
++      return TRUE;
++     }
+      return FALSE;
+  }
+  #endif
+*** ../vim-7.2.131/src/globals.h       Mon Mar  2 02:44:54 2009
+--- src/globals.h      Mon Mar  2 02:40:16 2009
+***************
+*** 619,624 ****
+--- 619,629 ----
+  EXTERN int   curbuf_lock INIT(= 0);
+                               /* non-zero when the current buffer can't be
+                                * changed.  Used for FileChangedRO. */
++ EXTERN int   allbuf_lock INIT(= 0);
++                              /* non-zero when no buffer name can be
++                               * changed, no buffer can be deleted and
++                               * current directory can't be changed.
++                               * Used for SwapExists et al. */
+  #endif
+  #ifdef FEAT_EVAL
+  # define HAVE_SANDBOX
+*** ../vim-7.2.131/src/fileio.c        Wed Dec 31 16:20:54 2008
+--- src/fileio.c       Sun Mar  1 23:37:10 2009
+***************
+*** 69,75 ****
+  static int au_find_group __ARGS((char_u *name));
+  
+  # define AUGROUP_DEFAULT    -1           /* default autocmd group */
+! # define AUGROUP_ERROR           -2      /* errornouse autocmd group */
+  # define AUGROUP_ALL     -3      /* all autocmd groups */
+  #endif
+  
+--- 69,75 ----
+  static int au_find_group __ARGS((char_u *name));
+  
+  # define AUGROUP_DEFAULT    -1           /* default autocmd group */
+! # define AUGROUP_ERROR           -2      /* erroneous autocmd group */
+  # define AUGROUP_ALL     -3      /* all autocmd groups */
+  #endif
+  
+***************
+*** 144,150 ****
+  # endif
+  #endif
+  static int move_lines __ARGS((buf_T *frombuf, buf_T *tobuf));
+! 
+  
+      void
+  filemess(buf, name, s, attr)
+--- 144,152 ----
+  # endif
+  #endif
+  static int move_lines __ARGS((buf_T *frombuf, buf_T *tobuf));
+! #ifdef FEAT_AUTOCMD
+! static char *e_auchangedbuf = N_("E812: Autocommands changed buffer or buffer name");
+! #endif
+  
+      void
+  filemess(buf, name, s, attr)
+***************
+*** 295,300 ****
+--- 297,315 ----
+      int              conv_restlen = 0;       /* nr of bytes in conv_rest[] */
+  #endif
+  
++ #ifdef FEAT_AUTOCMD
++     /* Remember the initial values of curbuf, curbuf->b_ffname and
++      * curbuf->b_fname to detect whether they are altered as a result of
++      * executing nasty autocommands.  Also check if "fname" and "sfname"
++      * point to one of these values. */
++     buf_T   *old_curbuf = curbuf;
++     char_u  *old_b_ffname = curbuf->b_ffname;
++     char_u  *old_b_fname = curbuf->b_fname;
++     int     using_b_ffname = (fname == curbuf->b_ffname)
++                                            || (sfname == curbuf->b_ffname);
++     int     using_b_fname = (fname == curbuf->b_fname)
++                                             || (sfname == curbuf->b_fname);
++ #endif
+      write_no_eol_lnum = 0;   /* in case it was set by the previous read */
+  
+      /*
+***************
+*** 589,595 ****
+--- 604,624 ----
+  #ifdef FEAT_QUICKFIX
+                   if (!bt_dontwrite(curbuf))
+  #endif
++                  {
+                       check_need_swap(newfile);
++ #ifdef FEAT_AUTOCMD
++                      /* SwapExists autocommand may mess things up */
++                      if (curbuf != old_curbuf
++                              || (using_b_ffname
++                                      && (old_b_ffname != curbuf->b_ffname))
++                              || (using_b_fname
++                                       && (old_b_fname != curbuf->b_fname)))
++                      {
++                          EMSG(_(e_auchangedbuf));
++                          return FAIL;
++                      }
++ #endif
++                  }
+                   if (dir_of_file_exists(fname))
+                       filemess(curbuf, sfname, (char_u *)_("[New File]"), 0);
+                   else
+***************
+*** 668,673 ****
+--- 697,713 ----
+  #endif
+      {
+       check_need_swap(newfile);
++ #ifdef FEAT_AUTOCMD
++      if (!read_stdin && (curbuf != old_curbuf
++              || (using_b_ffname && (old_b_ffname != curbuf->b_ffname))
++              || (using_b_fname && (old_b_fname != curbuf->b_fname))))
++      {
++          EMSG(_(e_auchangedbuf));
++          if (!read_buffer)
++              close(fd);
++          return FAIL;
++      }
++ #endif
+  #ifdef UNIX
+       /* Set swap file protection bits after creating it. */
+       if (swap_mode > 0 && curbuf->b_ml.ml_mfp->mf_fname != NULL)
+***************
+*** 698,704 ****
+      {
+       int     m = msg_scroll;
+       int     n = msg_scrolled;
+-      buf_T   *old_curbuf = curbuf;
+  
+       /*
+        * The file must be closed again, the autocommands may want to change
+--- 738,743 ----
+***************
+*** 740,747 ****
+--- 779,791 ----
+       /*
+        * Don't allow the autocommands to change the current buffer.
+        * Try to re-open the file.
++       *
++       * Don't allow the autocommands to change the buffer name either
++       * (cd for example) if it invalidates fname or sfname.
+        */
+       if (!read_stdin && (curbuf != old_curbuf
++              || (using_b_ffname && (old_b_ffname != curbuf->b_ffname))
++              || (using_b_fname && (old_b_fname != curbuf->b_fname))
+               || (fd = mch_open((char *)fname, O_RDONLY | O_EXTRA, 0)) < 0))
+       {
+           --no_wait_return;
+***************
+*** 6320,6326 ****
+  
+      if (!stuff_empty() || global_busy || !typebuf_typed()
+  #ifdef FEAT_AUTOCMD
+!                      || autocmd_busy || curbuf_lock > 0
+  #endif
+                                       )
+       need_check_timestamps = TRUE;           /* check later */
+--- 6364,6370 ----
+  
+      if (!stuff_empty() || global_busy || !typebuf_typed()
+  #ifdef FEAT_AUTOCMD
+!                      || autocmd_busy || curbuf_lock > 0 || allbuf_lock > 0
+  #endif
+                                       )
+       need_check_timestamps = TRUE;           /* check later */
+***************
+*** 6522,6529 ****
+--- 6566,6575 ----
+           set_vim_var_string(VV_FCS_REASON, (char_u *)reason, -1);
+           set_vim_var_string(VV_FCS_CHOICE, (char_u *)"", -1);
+  # endif
++          ++allbuf_lock;
+           n = apply_autocmds(EVENT_FILECHANGEDSHELL,
+                                     buf->b_fname, buf->b_fname, FALSE, buf);
++          --allbuf_lock;
+           busy = FALSE;
+           if (n)
+           {
+*** ../vim-7.2.131/src/proto/ex_getln.pro      Fri Nov 28 10:59:57 2008
+--- src/proto/ex_getln.pro     Sun Mar  1 00:27:12 2009
+***************
+*** 4,9 ****
+--- 4,10 ----
+  int text_locked __ARGS((void));
+  void text_locked_msg __ARGS((void));
+  int curbuf_locked __ARGS((void));
++ int allbuf_locked __ARGS((void));
+  char_u *getexline __ARGS((int c, void *dummy, int indent));
+  char_u *getexmodeline __ARGS((int promptc, void *dummy, int indent));
+  int cmdline_overstrike __ARGS((void));
+*** ../vim-7.2.131/src/version.c       Wed Mar  4 04:11:56 2009
+--- src/version.c      Thu Mar  5 03:08:54 2009
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     132,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+168. You have your own domain name.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.2.133 b/7.2.133
new file mode 100644 (file)
index 0000000..ffb19d7
--- /dev/null
+++ b/7.2.133
@@ -0,0 +1,53 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.133
+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.133
+Problem:    ":diffoff!" changes settings in windows not in diff mode.
+Solution:   Only change settings in other windows when 'diff' is set, always
+           do it for the current window. (Lech Lorens)
+Files:     src/diff.c
+
+
+*** ../vim-7.2.132/src/diff.c  Thu Jan 22 20:48:07 2009
+--- src/diff.c Fri Mar  6 04:17:41 2009
+***************
+*** 1153,1159 ****
+  
+      for (wp = firstwin; wp != NULL; wp = wp->w_next)
+      {
+!      if (wp == curwin || eap->forceit)
+       {
+           /* Set 'diff', 'scrollbind' off and 'wrap' on. */
+           wp->w_p_diff = FALSE;
+--- 1153,1159 ----
+  
+      for (wp = firstwin; wp != NULL; wp = wp->w_next)
+      {
+!      if (wp == curwin || (eap->forceit && wp->w_p_diff))
+       {
+           /* Set 'diff', 'scrollbind' off and 'wrap' on. */
+           wp->w_p_diff = FALSE;
+*** ../vim-7.2.132/src/version.c       Thu Mar  5 03:13:51 2009
+--- src/version.c      Wed Mar 11 12:45:10 2009
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     133,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+192. Your boss asks you to "go fer" coffee and you come up with 235 FTP sites.
+
+ /// 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.134 b/7.2.134
new file mode 100644 (file)
index 0000000..fee2789
--- /dev/null
+++ b/7.2.134
@@ -0,0 +1,68 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.134
+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.134
+Problem:    Warning for discarding "const" from pointer.
+Solution:   Don't pass const pointer to mch_memmove().
+Files:     src/fileio.c
+
+
+*** ../vim-7.2.133/src/fileio.c        Thu Mar  5 03:13:51 2009
+--- src/fileio.c       Wed Mar 11 12:59:35 2009
+***************
+*** 5288,5300 ****
+           /* Convert with iconv(). */
+           if (ip->bw_restlen > 0)
+           {
+               /* Need to concatenate the remainder of the previous call and
+                * the bytes of the current call.  Use the end of the
+                * conversion buffer for this. */
+               fromlen = len + ip->bw_restlen;
+!              from = (char *)ip->bw_conv_buf + ip->bw_conv_buflen - fromlen;
+!              mch_memmove((void *)from, ip->bw_rest, (size_t)ip->bw_restlen);
+!              mch_memmove((void *)(from + ip->bw_restlen), buf, (size_t)len);
+               tolen = ip->bw_conv_buflen - fromlen;
+           }
+           else
+--- 5288,5303 ----
+           /* Convert with iconv(). */
+           if (ip->bw_restlen > 0)
+           {
++              char *fp;
++ 
+               /* Need to concatenate the remainder of the previous call and
+                * the bytes of the current call.  Use the end of the
+                * conversion buffer for this. */
+               fromlen = len + ip->bw_restlen;
+!              fp = (char *)ip->bw_conv_buf + ip->bw_conv_buflen - fromlen;
+!              mch_memmove(fp, ip->bw_rest, (size_t)ip->bw_restlen);
+!              mch_memmove(fp + ip->bw_restlen, buf, (size_t)len);
+!              from = fp;
+               tolen = ip->bw_conv_buflen - fromlen;
+           }
+           else
+*** ../vim-7.2.133/src/version.c       Wed Mar 11 12:45:44 2009
+--- src/version.c      Wed Mar 11 13:08:25 2009
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     134,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+193. You ask your girlfriend to drive home so you can sit back with
+     your PDA and download the information to your laptop
+
+ /// 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.135 b/7.2.135
new file mode 100644 (file)
index 0000000..a58e6bb
--- /dev/null
+++ b/7.2.135
@@ -0,0 +1,85 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.135
+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.135
+Problem:    Memory leak when redefining user command with complete argument.
+Solution:   Free the old complete argument. (Dominique Pelle)
+Files:     src/ex_docmd.c
+
+
+*** ../vim-7.2.134/src/ex_docmd.c      Sun Mar  1 02:43:50 2009
+--- src/ex_docmd.c     Wed Mar 11 11:13:31 2009
+***************
+*** 5124,5130 ****
+           }
+  
+           vim_free(cmd->uc_rep);
+!          cmd->uc_rep = 0;
+           break;
+       }
+  
+--- 5124,5134 ----
+           }
+  
+           vim_free(cmd->uc_rep);
+!          cmd->uc_rep = NULL;
+! #if defined(FEAT_EVAL) && defined(FEAT_CMDL_COMPL)
+!          vim_free(cmd->uc_compl_arg);
+!          cmd->uc_compl_arg = NULL;
+! #endif
+           break;
+       }
+  
+***************
+*** 5941,5947 ****
+      for (;;)
+      {
+       p = cmd->uc_rep;    /* source */
+!      q = buf;            /* destinateion */
+       totlen = 0;
+  
+       for (;;)
+--- 5945,5951 ----
+      for (;;)
+      {
+       p = cmd->uc_rep;    /* source */
+!      q = buf;            /* destination */
+       totlen = 0;
+  
+       for (;;)
+***************
+*** 7846,7851 ****
+--- 7850,7858 ----
+  {
+      vim_free(prev_dir);
+      prev_dir = NULL;
++ 
++     vim_free(globaldir);
++     globaldir = NULL;
+  }
+  #endif
+  
+*** ../vim-7.2.134/src/version.c       Wed Mar 11 13:09:30 2009
+--- src/version.c      Wed Mar 11 15:06:23 2009
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     135,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+194. Your business cards contain your e-mail and home page 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.136 b/7.2.136
new file mode 100644 (file)
index 0000000..b0045eb
--- /dev/null
+++ b/7.2.136
@@ -0,0 +1,47 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.136
+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.136 (after 7.2.132)
+Problem:    ":cd" is still possible in a SwapExists autocmd.
+Solution:   Check the allbuf_lock flag in ex_cd().
+Files:     src/ex_docmd.c
+
+
+*** ../vim-7.2.135/src/ex_docmd.c      Wed Mar 11 15:09:07 2009
+--- src/ex_docmd.c     Wed Mar 11 11:13:31 2009
+***************
+*** 7875,7880 ****
+--- 7875,7884 ----
+      else
+  #endif
+      {
++ #ifdef FEAT_AUTOCMD
++      if (allbuf_locked())
++          return;
++ #endif
+       if (vim_strchr(p_cpo, CPO_CHDIR) != NULL && curbufIsChanged()
+                                                            && !eap->forceit)
+       {
+*** ../vim-7.2.135/src/version.c       Wed Mar 11 15:09:07 2009
+--- src/version.c      Wed Mar 11 15:35:36 2009
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     136,
+  /**/
+
+-- 
+Press any key to continue, press any other key to quit.
+
+ /// 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.137 b/7.2.137
new file mode 100644 (file)
index 0000000..706b046
--- /dev/null
+++ b/7.2.137
@@ -0,0 +1,343 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.137
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Note: The special characters in the patch may cause problems.
+
+Patch 7.2.137
+Problem:    When 'virtualedit' is set, a left shift of a blockwise selection
+           that starts and ends inside a tab shifts too much. (Helmut
+           Stiegler)
+Solution:   Redo the block left shift code. (Lech Lorens)
+Files:     src/ops.c, src/testdir/Makefile, src/testdir/test66.in,
+           src/testdir/test66.ok
+
+
+*** ../vim-7.2.136/src/ops.c   Wed Dec  3 13:38:00 2008
+--- src/ops.c  Thu Mar  5 04:47:09 2009
+***************
+*** 72,82 ****
+   */
+  struct block_def
+  {
+!     int              startspaces;    /* 'extra' cols of first char */
+!     int              endspaces;      /* 'extra' cols of first char */
+      int              textlen;        /* chars in block */
+!     char_u   *textstart;     /* pointer to 1st char in block */
+!     colnr_T  textcol;        /* cols of chars (at least part.) in block */
+      colnr_T  start_vcol;     /* start col of 1st char wholly inside block */
+      colnr_T  end_vcol;       /* start col of 1st char wholly after block */
+  #ifdef FEAT_VISUALEXTRA
+--- 72,82 ----
+   */
+  struct block_def
+  {
+!     int              startspaces;    /* 'extra' cols before first char */
+!     int              endspaces;      /* 'extra' cols after last char */
+      int              textlen;        /* chars in block */
+!     char_u   *textstart;     /* pointer to 1st char (partially) in block */
+!     colnr_T  textcol;        /* index of chars (partially) in block */
+      colnr_T  start_vcol;     /* start col of 1st char wholly inside block */
+      colnr_T  end_vcol;       /* start col of 1st char wholly after block */
+  #ifdef FEAT_VISUALEXTRA
+***************
+*** 382,396 ****
+  {
+      int                      left = (oap->op_type == OP_LSHIFT);
+      int                      oldstate = State;
+!     int                      total, split;
+!     char_u           *newp, *oldp, *midp, *ptr;
+      int                      oldcol = curwin->w_cursor.col;
+      int                      p_sw = (int)curbuf->b_p_sw;
+      int                      p_ts = (int)curbuf->b_p_ts;
+      struct block_def bd;
+-     int                      internal = 0;
+      int                      incr;
+!     colnr_T          vcol, col = 0, ws_vcol;
+      int                      i = 0, j = 0;
+      int                      len;
+  
+--- 382,395 ----
+  {
+      int                      left = (oap->op_type == OP_LSHIFT);
+      int                      oldstate = State;
+!     int                      total;
+!     char_u           *newp, *oldp;
+      int                      oldcol = curwin->w_cursor.col;
+      int                      p_sw = (int)curbuf->b_p_sw;
+      int                      p_ts = (int)curbuf->b_p_ts;
+      struct block_def bd;
+      int                      incr;
+!     colnr_T          ws_vcol;
+      int                      i = 0, j = 0;
+      int                      len;
+  
+***************
+*** 456,522 ****
+      }
+      else /* left */
+      {
+!      vcol = oap->start_vcol;
+!      /* walk vcol past ws to be removed */
+!      for (midp = oldp + bd.textcol;
+!            vcol < (oap->start_vcol + total) && vim_iswhite(*midp); )
+!      {
+!          incr = lbr_chartabsize_adv(&midp, (colnr_T)vcol);
+!          vcol += incr;
+!      }
+!      /* internal is the block-internal ws replacing a split TAB */
+!      if (vcol > (oap->start_vcol + total))
+!      {
+!          /* we have to split the TAB *(midp-1) */
+!          internal = vcol - (oap->start_vcol + total);
+!      }
+!      /* if 'expandtab' is not set, use TABs */
+  
+!      split = bd.startspaces + internal;
+!      if (split > 0)
+!      {
+!          if (!curbuf->b_p_et)
+!          {
+!              for (ptr = oldp, col = 0; ptr < oldp+bd.textcol; )
+!                  col += lbr_chartabsize_adv(&ptr, (colnr_T)col);
+  
+!              /* col+1 now equals the start col of the first char of the
+!               * block (may be < oap.start_vcol if we're splitting a TAB) */
+!              i = ((col % p_ts) + split) / p_ts; /* number of tabs */
+!          }
+!          if (i)
+!              j = ((col % p_ts) + split) % p_ts; /* number of spp */
+!          else
+!              j = split;
+!      }
+  
+!      newp = alloc_check(bd.textcol + i + j + (unsigned)STRLEN(midp) + 1);
+!      if (newp == NULL)
+!          return;
+!      vim_memset(newp, NUL, (size_t)(bd.textcol + i + j + STRLEN(midp) + 1));
+  
+!      /* copy first part we want to keep */
+!      mch_memmove(newp, oldp, (size_t)bd.textcol);
+!      /* Now copy any TABS and spp to ensure correct alignment! */
+!      while (vim_iswhite(*midp))
+       {
+!          if (*midp == TAB)
+!              i++;
+!          else /*space */
+!              j++;
+!          midp++;
+       }
+!      /* We might have an extra TAB worth of spp now! */
+!      if (j / p_ts && !curbuf->b_p_et)
+       {
+!          i++;
+!          j -= p_ts;
+       }
+-      copy_chars(newp + bd.textcol, (size_t)i, TAB);
+-      copy_spaces(newp + bd.textcol + i, (size_t)j);
+  
+!      /* the end */
+!      STRMOVE(newp + STRLEN(newp), midp);
+      }
+      /* replace the line */
+      ml_replace(curwin->w_cursor.lnum, newp, FALSE);
+--- 455,543 ----
+      }
+      else /* left */
+      {
+!      colnr_T     destination_col;    /* column to which text in block will
+!                                         be shifted */
+!      char_u      *verbatim_copy_end; /* end of the part of the line which is
+!                                         copied verbatim */
+!      colnr_T     verbatim_copy_width;/* the (displayed) width of this part
+!                                         of line */
+!      unsigned    fill;               /* nr of spaces that replace a TAB */
+!      unsigned    new_line_len;       /* the length of the line after the
+!                                         block shift */
+!      size_t      block_space_width;
+!      size_t      shift_amount;
+!      char_u      *non_white = bd.textstart;
+!      colnr_T     non_white_col;
+  
+!      /*
+!       * Firstly, let's find the first non-whitespace character that is
+!       * displayed after the block's start column and the character's column
+!       * number. Also, let's calculate the width of all the whitespace
+!       * characters that are displayed in the block and precede the searched
+!       * non-whitespace character.
+!       */
+  
+!      /* If "bd.startspaces" is set, "bd.textstart" points to the character,
+!       * the part of which is displayed at the block's beginning. Let's start
+!       * searching from the next character. */
+!      if (bd.startspaces)
+!          mb_ptr_adv(non_white);
+  
+!      /* The character's column is in "bd.start_vcol".  */
+!      non_white_col = bd.start_vcol;
+  
+!      while (vim_iswhite(*non_white))
+       {
+!          incr = lbr_chartabsize_adv(&non_white, non_white_col);
+!          non_white_col += incr;
+       }
+! 
+!      block_space_width = non_white_col - oap->start_vcol;
+!      /* We will shift by "total" or "block_space_width", whichever is less.
+!       */
+!      shift_amount = (block_space_width < total? block_space_width: total);
+! 
+!      /* The column to which we will shift the text.  */
+!      destination_col = non_white_col - shift_amount;
+! 
+!      /* Now let's find out how much of the beginning of the line we can
+!       * reuse without modification.  */
+!      verbatim_copy_end = bd.textstart;
+!      verbatim_copy_width = bd.start_vcol;
+! 
+!      /* If "bd.startspaces" is set, "bd.textstart" points to the character
+!       * preceding the block. We have to subtract its width to obtain its
+!       * column number.  */
+!      if (bd.startspaces)
+!          verbatim_copy_width -= bd.start_char_vcols;
+!      while (verbatim_copy_width < destination_col)
+       {
+!          incr = lbr_chartabsize(verbatim_copy_end, verbatim_copy_width);
+!          if (verbatim_copy_width + incr > destination_col)
+!              break;
+!          verbatim_copy_width += incr;
+!          mb_ptr_adv(verbatim_copy_end);
+       }
+  
+!      /* If "destination_col" is different from the width of the initial
+!       * part of the line that will be copied, it means we encountered a tab
+!       * character, which we will have to partly replace with spaces.  */
+!      fill = destination_col - verbatim_copy_width;
+! 
+!      /* The replacement line will consist of:
+!       * - the beginning of the original line up to "verbatim_copy_end",
+!       * - "fill" number of spaces,
+!       * - the rest of the line, pointed to by non_white.  */
+!      new_line_len = (unsigned)(verbatim_copy_end - oldp)
+!                     + fill
+!                     + (unsigned)STRLEN(non_white) + 1;
+! 
+!      newp = alloc_check(new_line_len);
+!      if (newp == NULL)
+!          return;
+!      mch_memmove(newp, oldp, (size_t)(verbatim_copy_end - oldp));
+!      copy_spaces(newp + (verbatim_copy_end - oldp), (size_t)fill);
+!      STRMOVE(newp + (verbatim_copy_end - oldp) + fill, non_white);
+      }
+      /* replace the line */
+      ml_replace(curwin->w_cursor.lnum, newp, FALSE);
+***************
+*** 4851,4857 ****
+   * - textlen includes the first/last char to be (partly) deleted
+   * - start/endspaces is the number of columns that are taken by the
+   *   first/last deleted char minus the number of columns that have to be
+!  *   deleted.  for yank and tilde:
+   * - textlen includes the first/last char to be wholly yanked
+   * - start/endspaces is the number of columns of the first/last yanked char
+   *   that are to be yanked.
+--- 4872,4879 ----
+   * - textlen includes the first/last char to be (partly) deleted
+   * - start/endspaces is the number of columns that are taken by the
+   *   first/last deleted char minus the number of columns that have to be
+!  *   deleted.
+!  * for yank and tilde:
+   * - textlen includes the first/last char to be wholly yanked
+   * - start/endspaces is the number of columns of the first/last yanked char
+   *   that are to be yanked.
+*** ../vim-7.2.136/src/testdir/Makefile        Wed Sep 10 18:25:18 2008
+--- src/testdir/Makefile       Thu Mar  5 04:53:58 2009
+***************
+*** 20,26 ****
+               test48.out test49.out test51.out test52.out test53.out \
+               test54.out test55.out test56.out test57.out test58.out \
+               test59.out test60.out test61.out test62.out test63.out \
+!              test64.out test65.out
+  
+  SCRIPTS_GUI = test16.out
+  
+--- 20,26 ----
+               test48.out test49.out test51.out test52.out test53.out \
+               test54.out test55.out test56.out test57.out test58.out \
+               test59.out test60.out test61.out test62.out test63.out \
+!              test64.out test65.out test66.out
+  
+  SCRIPTS_GUI = test16.out
+  
+*** ../vim-7.2.136/src/testdir/test66.in       Wed Mar 11 16:24:44 2009
+--- src/testdir/test66.in      Wed Mar 11 11:52:57 2009
+***************
+*** 0 ****
+--- 1,25 ----
++ 
++ Test for visual block shift and tab characters.
++ 
++ STARTTEST
++ :so small.vim
++ /^abcdefgh
++ \164jI    \ej<<11|D
++ 7|a          \e
++ 7|a             \e
++ 7|a          \e4k13|\164j<
++ :$-4,$w! test.out
++ :$-4,$s/\s\+//g
++ \164kI    \ej<<
++ 7|a          \e
++ 7|a                                  \e
++ 7|a                  \e4k13|\164j3<
++ :$-4,$w >> test.out
++ :qa!
++ ENDTEST
++ 
++ abcdefghijklmnopqrstuvwxyz
++ abcdefghijklmnopqrstuvwxyz
++ abcdefghijklmnopqrstuvwxyz
++ abcdefghijklmnopqrstuvwxyz
++ abcdefghijklmnopqrstuvwxyz
+*** ../vim-7.2.136/src/testdir/test66.ok       Wed Mar 11 16:24:44 2009
+--- src/testdir/test66.ok      Thu Mar  5 04:39:36 2009
+***************
+*** 0 ****
+--- 1,10 ----
++     abcdefghijklmnopqrstuvwxyz
++ abcdefghij
++     abc          defghijklmnopqrstuvwxyz
++     abc          defghijklmnopqrstuvwxyz
++     abc          defghijklmnopqrstuvwxyz
++     abcdefghijklmnopqrstuvwxyz
++ abcdefghij
++     abc          defghijklmnopqrstuvwxyz
++     abc              defghijklmnopqrstuvwxyz
++     abc          defghijklmnopqrstuvwxyz
+*** ../vim-7.2.136/src/version.c       Wed Mar 11 15:36:01 2009
+--- src/version.c      Wed Mar 11 16:23:07 2009
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     137,
+  /**/
+
+-- 
+% cat /usr/include/sys/errno.h
+#define        EPERM           1               /* Operation not permitted */
+#define        ENOENT          2               /* No such file or directory */
+#define        ESRCH           3               /* No such process */
+[...]
+#define EMACS          666             /* Too many macros */
+%
+
+ /// 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.138 b/7.2.138
new file mode 100644 (file)
index 0000000..faa7e7a
--- /dev/null
+++ b/7.2.138
@@ -0,0 +1,160 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.138 (extra)
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.138 (extra part of 7.2.137)
+Problem:    See 7.2.137.
+Solution:   See 7.2.137.
+Files:     src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
+           src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
+           src/testdir/Make_vms.mms
+
+
+*** ../vim-7.2.137/src/testdir/Make_amiga.mak  Tue Jun 24 23:46:42 2008
+--- src/testdir/Make_amiga.mak Thu Mar  5 04:49:38 2009
+***************
+*** 25,31 ****
+               test43.out test44.out test45.out test46.out test47.out \
+               test48.out test51.out test53.out test54.out test55.out \
+               test56.out test57.out test58.out test59.out test60.out \
+!              test61.out test62.out test63.out test64.out test65.out
+  
+  .SUFFIXES: .in .out
+  
+--- 25,32 ----
+               test43.out test44.out test45.out test46.out test47.out \
+               test48.out test51.out test53.out test54.out test55.out \
+               test56.out test57.out test58.out test59.out test60.out \
+!              test61.out test62.out test63.out test64.out test65.out \
+!              test66.out
+  
+  .SUFFIXES: .in .out
+  
+***************
+*** 110,112 ****
+--- 111,114 ----
+  test63.out: test63.in
+  test64.out: test64.in
+  test65.out: test65.in
++ test66.out: test66.in
+*** ../vim-7.2.137/src/testdir/Make_dos.mak    Tue Jun 24 23:39:51 2008
+--- src/testdir/Make_dos.mak   Thu Mar  5 04:52:47 2009
+***************
+*** 26,32 ****
+               test15.out test17.out test18.out test21.out test26.out \
+               test30.out test31.out test32.out test33.out test34.out \
+               test37.out test38.out test39.out test40.out test41.out \
+!              test42.out test52.out test65.out
+  
+  SCRIPTS32 =  test50.out
+  
+--- 26,32 ----
+               test15.out test17.out test18.out test21.out test26.out \
+               test30.out test31.out test32.out test33.out test34.out \
+               test37.out test38.out test39.out test40.out test41.out \
+!              test42.out test52.out test65.out test66.out
+  
+  SCRIPTS32 =  test50.out
+  
+*** ../vim-7.2.137/src/testdir/Make_ming.mak   Sat Sep 20 16:26:10 2008
+--- src/testdir/Make_ming.mak  Thu Mar  5 04:53:16 2009
+***************
+*** 45,51 ****
+               test15.out test17.out test18.out test21.out test26.out \
+               test30.out test31.out test32.out test33.out test34.out \
+               test37.out test38.out test39.out test40.out test41.out \
+!              test42.out test52.out test65.out
+  
+  SCRIPTS32 =  test50.out
+  
+--- 45,51 ----
+               test15.out test17.out test18.out test21.out test26.out \
+               test30.out test31.out test32.out test33.out test34.out \
+               test37.out test38.out test39.out test40.out test41.out \
+!              test42.out test52.out test65.out test66.out
+  
+  SCRIPTS32 =  test50.out
+  
+*** ../vim-7.2.137/src/testdir/Make_os2.mak    Tue Jun 24 22:37:41 2008
+--- src/testdir/Make_os2.mak   Thu Mar  5 04:53:31 2009
+***************
+*** 25,31 ****
+               test43.out test44.out test45.out test46.out test47.out \
+               test48.out test51.out test53.out test54.out test55.out \
+               test56.out test57.out test58.out test59.out test60.out \
+!              test61.out test62.out test63.out test64.out test65.out
+  
+  .SUFFIXES: .in .out
+  
+--- 25,32 ----
+               test43.out test44.out test45.out test46.out test47.out \
+               test48.out test51.out test53.out test54.out test55.out \
+               test56.out test57.out test58.out test59.out test60.out \
+!              test61.out test62.out test63.out test64.out test65.out \
+!              test66.out
+  
+  .SUFFIXES: .in .out
+  
+*** ../vim-7.2.137/src/testdir/Make_vms.mms    Mon Sep  1 16:50:09 2008
+--- src/testdir/Make_vms.mms   Thu Mar  5 04:53:42 2009
+***************
+*** 4,10 ****
+  # Authors:   Zoltan Arpadffy, <arpadffy@polarhome.com>
+  #            Sandor Kopanyi,  <sandor.kopanyi@mailbox.hu>
+  #
+! # Last change:  2008 Aug 19
+  #
+  # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
+  # Edit the lines in the Configuration section below to select.
+--- 4,10 ----
+  # Authors:   Zoltan Arpadffy, <arpadffy@polarhome.com>
+  #            Sandor Kopanyi,  <sandor.kopanyi@mailbox.hu>
+  #
+! # Last change:  2009 Mar 05
+  #
+  # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
+  # Edit the lines in the Configuration section below to select.
+***************
+*** 68,74 ****
+        test43.out test44.out test45.out test46.out \
+        test48.out test51.out test53.out test54.out test55.out \
+        test56.out test57.out test60.out \
+!       test61.out test62.out test63.out test64.out test65.out
+  
+  .IFDEF WANT_GUI
+  SCRIPT_GUI = test16.out
+--- 68,75 ----
+        test43.out test44.out test45.out test46.out \
+        test48.out test51.out test53.out test54.out test55.out \
+        test56.out test57.out test60.out \
+!       test61.out test62.out test63.out test64.out test65.out \
+!       test66.out
+  
+  .IFDEF WANT_GUI
+  SCRIPT_GUI = test16.out
+*** ../vim-7.2.137/src/version.c       Wed Mar 11 16:26:01 2009
+--- src/version.c      Wed Mar 11 16:35:06 2009
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     138,
+  /**/
+
+-- 
+Some of the well know MS-Windows errors:
+       ESLEEP          Operator fell asleep
+       ENOERR          No error yet
+       EDOLLAR         OS too expensive
+       EWINDOWS        MS-Windows loaded, system in danger
+
+ /// 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.139 b/7.2.139
new file mode 100644 (file)
index 0000000..3366acb
--- /dev/null
+++ b/7.2.139
@@ -0,0 +1,79 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.139
+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.139
+Problem:    Crash when 'virtualedit' is "all". (James Vega)
+Solution:   Avoid overflow when column is MAXCOL. (Dominique Pelle)
+Files:     src/misc2.c
+
+
+*** ../vim-7.2.138/src/misc2.c Tue Feb 24 04:28:40 2009
+--- src/misc2.c        Wed Mar 11 16:45:05 2009
+***************
+*** 496,502 ****
+  {
+      colnr_T len;
+  #ifdef FEAT_VIRTUALEDIT
+!     colnr_T oldcol = curwin->w_cursor.col + curwin->w_cursor.coladd;
+  #endif
+  
+      len = (colnr_T)STRLEN(ml_get_curline());
+--- 496,503 ----
+  {
+      colnr_T len;
+  #ifdef FEAT_VIRTUALEDIT
+!     colnr_T oldcol = curwin->w_cursor.col;
+!     colnr_T oldcoladd = curwin->w_cursor.col + curwin->w_cursor.coladd;
+  #endif
+  
+      len = (colnr_T)STRLEN(ml_get_curline());
+***************
+*** 535,541 ****
+      if (oldcol == MAXCOL)
+       curwin->w_cursor.coladd = 0;
+      else if (ve_flags == VE_ALL)
+!      curwin->w_cursor.coladd = oldcol - curwin->w_cursor.col;
+  #endif
+  }
+  
+--- 536,548 ----
+      if (oldcol == MAXCOL)
+       curwin->w_cursor.coladd = 0;
+      else if (ve_flags == VE_ALL)
+!     {
+!      if (oldcoladd > curwin->w_cursor.col)
+!          curwin->w_cursor.coladd = oldcoladd - curwin->w_cursor.col;
+!      else
+!          /* avoid weird number when there is a miscalculation or overflow */
+!          curwin->w_cursor.coladd = 0;
+!     }
+  #endif
+  }
+  
+*** ../vim-7.2.138/src/version.c       Wed Mar 11 16:36:04 2009
+--- src/version.c      Wed Mar 11 17:26:50 2009
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     139,
+  /**/
+
+-- 
+Some of the well know MS-Windows errors:
+       EHUH            Unexpected error
+       EUSER           User error, not our fault!
+       EGOD            Horrible problem, god knows what has happened
+       EERR            Errornous error: nothing wrong
+
+ /// 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.140 b/7.2.140
new file mode 100644 (file)
index 0000000..98c1279
--- /dev/null
+++ b/7.2.140
@@ -0,0 +1,58 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.140
+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.140
+Problem:    Diff highlighting isn't displayed before the Visual area if it
+           starts at the cursor position. (Markus Heidelberg)
+Solution:   Also check fromcol_prev.
+Files:     src/screen.c
+
+
+*** ../vim-7.2.139/src/screen.c        Sun Feb 22 21:12:22 2009
+--- src/screen.c       Wed Mar 11 13:59:24 2009
+***************
+*** 3555,3561 ****
+               /* Use line_attr when not in the Visual or 'incsearch' area
+                * (area_attr may be 0 when "noinvcur" is set). */
+           else if (line_attr != 0 && ((fromcol == -10 && tocol == MAXCOL)
+!                                      || (vcol < fromcol || vcol >= tocol)))
+               char_attr = line_attr;
+  #endif
+           else
+--- 3555,3562 ----
+               /* Use line_attr when not in the Visual or 'incsearch' area
+                * (area_attr may be 0 when "noinvcur" is set). */
+           else if (line_attr != 0 && ((fromcol == -10 && tocol == MAXCOL)
+!                              || vcol < fromcol || vcol_prev < fromcol_prev
+!                              || vcol >= tocol))
+               char_attr = line_attr;
+  #endif
+           else
+*** ../vim-7.2.139/src/version.c       Wed Mar 11 17:27:46 2009
+--- src/version.c      Wed Mar 11 17:42:19 2009
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     140,
+  /**/
+
+-- 
+Some of the well know MS-Windows errors:
+       EMEMORY         Memory error caused by..., eh...
+       ELICENSE        Your license has expired, give us more money!
+       EMOUSE          Mouse moved, reinstall Windows
+       EILLEGAL        Illegal error, you are not allowed to see this
+       EVIRUS          Undetectable virus found
+
+ /// 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.141 b/7.2.141
new file mode 100644 (file)
index 0000000..395d210
--- /dev/null
+++ b/7.2.141
@@ -0,0 +1,239 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.141
+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.141
+Problem:    When redrawing a character for bold spill this causes the next
+           character to be redrawn as well.
+Solution:   Only redraw one extra character. (Yukihiro Nakadaira)
+Files:     src/screen.c
+
+
+*** ../vim-7.2.140/src/screen.c        Wed Mar 11 17:44:38 2009
+--- src/screen.c       Wed Mar 11 13:59:24 2009
+***************
+*** 5132,5139 ****
+  #endif
+  
+  #if defined(FEAT_GUI) || defined(UNIX)
+!          /* The bold trick makes a single row of pixels appear in the next
+!           * character.  When a bold character is removed, the next
+            * character should be redrawn too.  This happens for our own GUI
+            * and for some xterms. */
+           if (
+--- 5132,5139 ----
+  #endif
+  
+  #if defined(FEAT_GUI) || defined(UNIX)
+!          /* The bold trick makes a single column of pixels appear in the
+!           * next character.  When a bold character is removed, the next
+            * character should be redrawn too.  This happens for our own GUI
+            * and for some xterms. */
+           if (
+***************
+*** 6276,6284 ****
+--- 6276,6290 ----
+      int              pcc[MAX_MCO];
+  # endif
+  #endif
++ #if defined(FEAT_MBYTE) || defined(FEAT_GUI) || defined(UNIX)
++     int              force_redraw_this;
++     int              force_redraw_next = FALSE;
++ #endif
++     int              need_redraw;
+  
+      if (ScreenLines == NULL || row >= screen_Rows)   /* safety check */
+       return;
++     off = LineOffset[row] + col;
+  
+  #ifdef FEAT_MBYTE
+      /* When drawing over the right halve of a double-wide char clear out the
+***************
+*** 6288,6297 ****
+           && !gui.in_use
+  # endif
+           && mb_fix_col(col, row) != col)
+!      screen_puts_len((char_u *)" ", 1, row, col - 1, 0);
+  #endif
+  
+-     off = LineOffset[row] + col;
+  #ifdef FEAT_MBYTE
+      max_off = LineOffset[row] + screen_Columns;
+  #endif
+--- 6294,6314 ----
+           && !gui.in_use
+  # endif
+           && mb_fix_col(col, row) != col)
+!     {
+!      ScreenLines[off - 1] = ' ';
+!      ScreenAttrs[off - 1] = 0;
+!      if (enc_utf8)
+!      {
+!          ScreenLinesUC[off - 1] = 0;
+!          ScreenLinesC[0][off - 1] = 0;
+!      }
+!      /* redraw the previous cell, make it empty */
+!      screen_char(off - 1, row, col - 1);
+!      /* force the cell at "col" to be redrawn */
+!      force_redraw_next = TRUE;
+!     }
+  #endif
+  
+  #ifdef FEAT_MBYTE
+      max_off = LineOffset[row] + screen_Columns;
+  #endif
+***************
+*** 6355,6361 ****
+       }
+  #endif
+  
+!      if (ScreenLines[off] != c
+  #ifdef FEAT_MBYTE
+               || (mbyte_cells == 2
+                   && ScreenLines[off + 1] != (enc_dbcs ? ptr[1] : 0))
+--- 6372,6383 ----
+       }
+  #endif
+  
+! #if defined(FEAT_MBYTE) || defined(FEAT_GUI) || defined(UNIX)
+!      force_redraw_this = force_redraw_next;
+!      force_redraw_next = FALSE;
+! #endif
+! 
+!      need_redraw = ScreenLines[off] != c
+  #ifdef FEAT_MBYTE
+               || (mbyte_cells == 2
+                   && ScreenLines[off + 1] != (enc_dbcs ? ptr[1] : 0))
+***************
+*** 6367,6386 ****
+                       || screen_comp_differs(off, u8cc)))
+  #endif
+               || ScreenAttrs[off] != attr
+!              || exmode_active
+               )
+       {
+  #if defined(FEAT_GUI) || defined(UNIX)
+           /* The bold trick makes a single row of pixels appear in the next
+            * character.  When a bold character is removed, the next
+            * character should be redrawn too.  This happens for our own GUI
+!           * and for some xterms.
+!           * Force the redraw by setting the attribute to a different value
+!           * than "attr", the contents of ScreenLines[] may be needed by
+!           * mb_off2cells() further on.
+!           * Don't do this for the last drawn character, because the next
+!           * character may not be redrawn. */
+!          if (
+  # ifdef FEAT_GUI
+                   gui.in_use
+  # endif
+--- 6389,6408 ----
+                       || screen_comp_differs(off, u8cc)))
+  #endif
+               || ScreenAttrs[off] != attr
+!              || exmode_active;
+! 
+!      if (need_redraw
+! #if defined(FEAT_MBYTE) || defined(FEAT_GUI) || defined(UNIX)
+!              || force_redraw_this
+! #endif
+               )
+       {
+  #if defined(FEAT_GUI) || defined(UNIX)
+           /* The bold trick makes a single row of pixels appear in the next
+            * character.  When a bold character is removed, the next
+            * character should be redrawn too.  This happens for our own GUI
+!           * and for some xterms. */
+!          if (need_redraw && ScreenLines[off] != ' ' && (
+  # ifdef FEAT_GUI
+                   gui.in_use
+  # endif
+***************
+*** 6390,6412 ****
+  # ifdef UNIX
+                   term_is_xterm
+  # endif
+!             )
+           {
+!              int             n;
+  
+!              n = ScreenAttrs[off];
+! # ifdef FEAT_MBYTE
+!              if (col + mbyte_cells < screen_Columns
+!                      && (n > HL_ALL || (n & HL_BOLD))
+!                      && (len < 0 ? ptr[mbyte_blen] != NUL
+!                                           : ptr + mbyte_blen < text + len))
+!                  ScreenAttrs[off + mbyte_cells] = attr + 1;
+! # else
+!              if (col + 1 < screen_Columns
+!                      && (n > HL_ALL || (n & HL_BOLD))
+!                      && (len < 0 ? ptr[1] != NUL : ptr + 1 < text + len))
+!                  ScreenLines[off + 1] = 0;
+! # endif
+           }
+  #endif
+  #ifdef FEAT_MBYTE
+--- 6412,6425 ----
+  # ifdef UNIX
+                   term_is_xterm
+  # endif
+!                  ))
+           {
+!              int     n = ScreenAttrs[off];
+  
+!              if (n > HL_ALL)
+!                  n = syn_attr2attr(n);
+!              if (n & HL_BOLD)
+!                  force_redraw_next = TRUE;
+           }
+  #endif
+  #ifdef FEAT_MBYTE
+***************
+*** 6493,6498 ****
+--- 6506,6525 ----
+           ++ptr;
+       }
+      }
++ 
++ #if defined(FEAT_MBYTE) || defined(FEAT_GUI) || defined(UNIX)
++     /* If we detected the next character needs to be redrawn, but the text
++      * doesn't extend up to there, update the character here. */
++     if (force_redraw_next && col < screen_Columns)
++     {
++ # ifdef FEAT_MBYTE
++      if (enc_dbcs != 0 && dbcs_off2cells(off, max_off) > 1)
++          screen_char_2(off, row, col);
++      else
++ # endif
++          screen_char(off, row, col);
++     }
++ #endif
+  }
+  
+  #ifdef FEAT_SEARCH_EXTRA
+*** ../vim-7.2.140/src/version.c       Wed Mar 11 17:44:38 2009
+--- src/version.c      Wed Mar 11 17:55:22 2009
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     141,
+  /**/
+
+-- 
+Some of the well know MS-Windows errors:
+       ETIME           Wrong time, wait a little while
+       ECRASH          Try again...
+       EDETECT         Unable to detect errors
+       EOVER           You lost!  Play another game?
+       ENOCLUE         Eh, what did you want?
+
+ /// 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.142 b/7.2.142
new file mode 100644 (file)
index 0000000..adfaab6
--- /dev/null
+++ b/7.2.142
@@ -0,0 +1,61 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.142
+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.142
+Problem:    Motif and Athena balloons don't use tooltip colors.
+Solution:   Set the colors. (Matt Wozniski)
+Files:     src/gui_beval.c
+
+
+*** ../vim-7.2.141/src/gui_beval.c     Thu May 10 21:29:20 2007
+--- src/gui_beval.c    Wed Mar 11 15:20:36 2009
+***************
+*** 1291,1296 ****
+--- 1291,1313 ----
+               XtNy, ty,
+               NULL);
+  #endif
++      /* Set tooltip colors */
++      {
++          Arg args[2];
++ 
++ #ifdef FEAT_GUI_MOTIF
++          args[0].name = XmNbackground;
++          args[0].value = gui.tooltip_bg_pixel;
++          args[1].name = XmNforeground;
++          args[1].value = gui.tooltip_fg_pixel;
++ #else /* Athena */
++          args[0].name = XtNbackground;
++          args[0].value = gui.tooltip_bg_pixel;
++          args[1].name = XtNforeground;
++          args[1].value = gui.tooltip_fg_pixel;
++ #endif
++          XtSetValues(beval->balloonLabel, &args[0], XtNumber(args));
++      }
+  
+       XtPopup(beval->balloonShell, XtGrabNone);
+  
+*** ../vim-7.2.141/src/version.c       Wed Mar 11 17:57:05 2009
+--- src/version.c      Wed Mar 18 12:20:01 2009
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     142,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+233. You start dreaming about web pages...in html.
+
+ /// 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.143 b/7.2.143
new file mode 100644 (file)
index 0000000..905f159
--- /dev/null
+++ b/7.2.143
@@ -0,0 +1,234 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.143
+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.143
+Problem:    No command line completion for ":cscope" command.
+Solution:   Add the completion for ":cscope". (Dominique Pelle)
+Files:     src/ex_docmd.c, src/ex_getln.c, src/if_cscope.c,
+           src/proto/if_cscope.pro, src/vim.h
+
+
+*** ../vim-7.2.142/src/ex_docmd.c      Wed Mar 11 15:36:01 2009
+--- src/ex_docmd.c     Wed Mar 11 15:45:04 2009
+***************
+*** 3683,3688 ****
+--- 3683,3693 ----
+       case CMD_highlight:
+           set_context_in_highlight_cmd(xp, arg);
+           break;
++ #ifdef FEAT_CSCOPE
++      case CMD_cscope:
++          set_context_in_cscope_cmd(xp, arg);
++          break;
++ #endif
+  #ifdef FEAT_LISTCMDS
+       case CMD_bdelete:
+       case CMD_bwipeout:
+***************
+*** 5187,5192 ****
+--- 5192,5200 ----
+      {EXPAND_AUGROUP, "augroup"},
+      {EXPAND_BUFFERS, "buffer"},
+      {EXPAND_COMMANDS, "command"},
++ #if defined(FEAT_CSCOPE)
++     {EXPAND_CSCOPE, "cscope"},
++ #endif
+  #if defined(FEAT_EVAL) && defined(FEAT_CMDL_COMPL)
+      {EXPAND_USER_DEFINED, "custom"},
+      {EXPAND_USER_LIST, "customlist"},
+*** ../vim-7.2.142/src/ex_getln.c      Thu Mar  5 03:13:51 2009
+--- src/ex_getln.c     Wed Mar 11 15:45:04 2009
+***************
+*** 4518,4523 ****
+--- 4518,4526 ----
+           {EXPAND_EVENTS, get_event_name, TRUE},
+           {EXPAND_AUGROUP, get_augroup_name, TRUE},
+  #endif
++ #ifdef FEAT_CSCOPE
++          {EXPAND_CSCOPE, get_cscope_name, TRUE},
++ #endif
+  #if (defined(HAVE_LOCALE_H) || defined(X_LOCALE)) \
+       && (defined(FEAT_GETTEXT) || defined(FEAT_MBYTE))
+           {EXPAND_LANGUAGE, get_lang_arg, TRUE},
+*** ../vim-7.2.142/src/if_cscope.c     Wed Jan 28 16:03:51 2009
+--- src/if_cscope.c    Wed Mar 11 15:56:07 2009
+***************
+*** 93,104 ****
+      (void)EMSG2(_("E560: Usage: cs[cope] %s"), cs_cmds[(int)x].usage);
+  }
+  
+  /*
+   * PRIVATE: do_cscope_general
+   *
+!  * find the command, print help if invalid, and the then call the
+!  * corresponding command function,
+!  * called from do_cscope and do_scscope
+   */
+      static void
+  do_cscope_general(eap, make_split)
+--- 93,209 ----
+      (void)EMSG2(_("E560: Usage: cs[cope] %s"), cs_cmds[(int)x].usage);
+  }
+  
++ #if defined(FEAT_CMDL_COMPL) || defined(PROTO)
++ 
++ static enum
++ {
++     EXP_CSCOPE_SUBCMD,       /* expand ":cscope" sub-commands */
++     EXP_CSCOPE_FIND, /* expand ":cscope find" arguments */
++     EXP_CSCOPE_KILL  /* expand ":cscope kill" arguments */
++ } expand_what;
++ 
++ /*
++  * Function given to ExpandGeneric() to obtain the cscope command
++  * expansion.
++  */
++ /*ARGSUSED*/
++     char_u *
++ get_cscope_name(xp, idx)
++     expand_T *xp;
++     int              idx;
++ {
++     switch (expand_what)
++     {
++     case EXP_CSCOPE_SUBCMD:
++      /* Complete with sub-commands of ":cscope":
++       * add, find, help, kill, reset, show */
++      return (char_u *)cs_cmds[idx].name;
++     case EXP_CSCOPE_FIND:
++      {
++          const char *query_type[] =
++          {
++              "c", "d", "e", "f", "g", "i", "s", "t", NULL
++          };
++ 
++          /* Complete with query type of ":cscope find {query_type}".
++           * {query_type} can be letters (c, d, ... t) or numbers (0, 1,
++           * ..., 8) but only complete with letters, since numbers are
++           * redundant. */
++          return (char_u *)query_type[idx];
++      }
++     case EXP_CSCOPE_KILL:
++      {
++          int                 i;
++          int                 current_idx = 0;
++          static char_u       connection[2];
++ 
++          /* ":cscope kill" accepts connection numbers or partial names of
++           * the pathname of the cscope database as argument.  Only complete
++           * with connection numbers. -1 can also be used to kill all
++           * connections. */
++          for (i = 0; i < CSCOPE_MAX_CONNECTIONS; i++)
++          {
++              if (csinfo[i].fname == NULL)
++                  continue;
++              if (current_idx++ == idx)
++              {
++                  /* Connection number fits in one character since
++                   * CSCOPE_MAX_CONNECTIONS is < 10 */
++                  connection[0] = i + '0';
++                  connection[1] = NUL;
++                  return connection;
++              }
++          }
++          return (current_idx == idx && idx > 0) ? (char_u *)"-1" : NULL;
++      }
++     default:
++      return NULL;
++     }
++ }
++ 
++ /*
++  * Handle command line completion for :cscope command.
++  */
++     void
++ set_context_in_cscope_cmd(xp, arg)
++     expand_T *xp;
++     char_u   *arg;
++ {
++     char_u   *p;
++ 
++     /* Default: expand subcommands */
++     xp->xp_context = EXPAND_CSCOPE;
++     expand_what = EXP_CSCOPE_SUBCMD;
++     xp->xp_pattern = arg;
++ 
++     /* (part of) subcommand already typed */
++     if (*arg != NUL)
++     {
++      p = skiptowhite(arg);
++      if (*p != NUL)              /* past first word */
++      {
++          xp->xp_pattern = skipwhite(p);
++          if (*skiptowhite(xp->xp_pattern) != NUL)
++              xp->xp_context = EXPAND_NOTHING;
++          else if (STRNICMP(arg, "add", p - arg) == 0)
++              xp->xp_context = EXPAND_FILES;
++          else if (STRNICMP(arg, "kill", p - arg) == 0)
++              expand_what = EXP_CSCOPE_KILL;
++          else if (STRNICMP(arg, "find", p - arg) == 0)
++              expand_what = EXP_CSCOPE_FIND;
++          else
++              xp->xp_context = EXPAND_NOTHING;
++      }
++     }
++ }
++ 
++ #endif /* FEAT_CMDL_COMPL */
++ 
+  /*
+   * PRIVATE: do_cscope_general
+   *
+!  * Find the command, print help if invalid, and then call the corresponding
+!  * command function.
+   */
+      static void
+  do_cscope_general(eap, make_split)
+*** ../vim-7.2.142/src/proto/if_cscope.pro     Thu Sep  6 17:38:21 2007
+--- src/proto/if_cscope.pro    Wed Mar 11 15:57:03 2009
+***************
+*** 1,4 ****
+--- 1,6 ----
+  /* if_cscope.c */
++ char_u *get_cscope_name __ARGS((expand_T *xp, int idx));
++ void set_context_in_cscope_cmd __ARGS((expand_T *xp, char_u *arg));
+  void do_cscope __ARGS((exarg_T *eap));
+  void do_scscope __ARGS((exarg_T *eap));
+  void do_cstag __ARGS((exarg_T *eap));
+*** ../vim-7.2.142/src/vim.h   Sun Feb 22 02:36:36 2009
+--- src/vim.h  Wed Mar 11 15:45:04 2009
+***************
+*** 708,713 ****
+--- 708,714 ----
+  #define EXPAND_USER_DEFINED  30
+  #define EXPAND_USER_LIST     31
+  #define EXPAND_SHELLCMD              32
++ #define EXPAND_CSCOPE                33
+  
+  /* Values for exmode_active (0 is no exmode) */
+  #define EXMODE_NORMAL                1
+*** ../vim-7.2.142/src/version.c       Wed Mar 18 12:20:35 2009
+--- src/version.c      Wed Mar 18 12:48:08 2009
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     143,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+234. You started college as a chemistry major, and walk out four years
+     later as an Internet provider.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.2.144 b/7.2.144
new file mode 100644 (file)
index 0000000..3a219bd
--- /dev/null
+++ b/7.2.144
@@ -0,0 +1,78 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.144
+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.144
+Problem:    When 't_Co' is set to the value it already had the color scheme is
+            reloaded anyway.
+Solution:   Only load the colorscheme when the t_Co value changes. (Dominique
+            Pelle)
+Files:      src/option.c
+
+
+*** ../vim-7.2.143/src/option.c        Wed Mar  4 04:11:56 2009
+--- src/option.c       Wed Mar 18 12:00:28 2009
+***************
+*** 6022,6036 ****
+       /* ":set t_Co=0" and ":set t_Co=1" do ":set t_Co=" */
+       if (varp == &T_CCO)
+       {
+!          t_colors = atoi((char *)T_CCO);
+!          if (t_colors <= 1)
+           {
+!              if (new_value_alloced)
+!                  vim_free(T_CCO);
+!              T_CCO = empty_option;
+           }
+-          /* We now have a different color setup, initialize it again. */
+-          init_highlight(TRUE, FALSE);
+       }
+       ttest(FALSE);
+       if (varp == &T_ME)
+--- 6022,6044 ----
+       /* ":set t_Co=0" and ":set t_Co=1" do ":set t_Co=" */
+       if (varp == &T_CCO)
+       {
+!          int colors = atoi((char *)T_CCO);
+! 
+!          /* Only reinitialize colors if t_Co value has really changed to
+!           * avoid expensive reload of colorscheme if t_Co is set to the
+!           * same value multiple times. */
+!          if (colors != t_colors)
+           {
+!              t_colors = colors;
+!              if (t_colors <= 1)
+!              {
+!                  if (new_value_alloced)
+!                      vim_free(T_CCO);
+!                  T_CCO = empty_option;
+!              }
+!              /* We now have a different color setup, initialize it again. */
+!              init_highlight(TRUE, FALSE);
+           }
+       }
+       ttest(FALSE);
+       if (varp == &T_ME)
+*** ../vim-7.2.143/src/version.c       Wed Mar 18 12:50:58 2009
+--- src/version.c      Wed Mar 18 14:16:48 2009
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     144,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+235. You start naming your kids Pascal, COBOL, Algol and Fortran.
+
+ /// 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.145 b/7.2.145
new file mode 100644 (file)
index 0000000..0f32817
--- /dev/null
+++ b/7.2.145
@@ -0,0 +1,125 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.145
+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.145
+Problem:    White space in ":cscope find" is not ignored.
+Solution:   Ignore the white space, but not when the leading white space is
+           useful for the argument.
+Files:     runtime/doc/if_cscop.txt, src/if_cscope.c
+
+
+*** ../vim-7.2.144/runtime/doc/if_cscop.txt    Sat Aug  9 19:36:48 2008
+--- runtime/doc/if_cscop.txt   Wed Mar 18 14:30:09 2009
+***************
+*** 1,4 ****
+! *if_cscop.txt*  For Vim version 7.2.  Last change: 2005 Mar 29
+  
+  
+                 VIM REFERENCE MANUAL    by Andy Kahn
+--- 1,4 ----
+! *if_cscop.txt*  For Vim version 7.2.  Last change: 2009 Mar 18
+  
+  
+                 VIM REFERENCE MANUAL    by Andy Kahn
+***************
+*** 131,141 ****
+               7 or f: Find this file
+               8 or i: Find files #including this file
+  
+       EXAMPLES >
+           :cscope find c vim_free
+!          :cscope find 3 vim_free
+  <
+!          These two examples perform the same query. >
+  
+           :cscope find 0 DEFAULT_TERM
+  <
+--- 131,152 ----
+               7 or f: Find this file
+               8 or i: Find files #including this file
+  
++      For all types, except 4 and 6, leading white space for {name} is
++      removed.  For 4 and 6 there is exactly one space between {querytype}
++      and {name}.  Further white space is included in {name}.
++ 
+       EXAMPLES >
+           :cscope find c vim_free
+!          :cscope find 3  vim_free
+! <
+!          These two examples perform the same query: functions calling
+!          "vim_free". >
+! 
+!          :cscope find t initOnce
+!          :cscope find t  initOnce
+  <
+!          The first one searches for the text "initOnce", the second one for
+!          " initOnce". >
+  
+           :cscope find 0 DEFAULT_TERM
+  <
+*** ../vim-7.2.144/src/if_cscope.c     Wed Mar 18 12:50:58 2009
+--- src/if_cscope.c    Wed Mar 18 13:23:53 2009
+***************
+*** 764,769 ****
+--- 764,770 ----
+  {
+      char *cmd;
+      short search;
++     char *pat;
+  
+      switch (csoption[0])
+      {
+***************
+*** 797,806 ****
+       return NULL;
+      }
+  
+!     if ((cmd = (char *)alloc((unsigned)(strlen(pattern) + 2))) == NULL)
+       return NULL;
+  
+!     (void)sprintf(cmd, "%d%s", search, pattern);
+  
+      return cmd;
+  } /* cs_create_cmd */
+--- 798,814 ----
+       return NULL;
+      }
+  
+!     /* Skip white space before the patter, except for text and pattern search,
+!      * they may want to use the leading white space. */
+!     pat = pattern;
+!     if (search != 4 && search != 6)
+!      while vim_iswhite(*pat)
+!          ++pat;
+! 
+!     if ((cmd = (char *)alloc((unsigned)(strlen(pat) + 2))) == NULL)
+       return NULL;
+  
+!     (void)sprintf(cmd, "%d%s", search, pat);
+  
+      return cmd;
+  } /* cs_create_cmd */
+*** ../vim-7.2.144/src/version.c       Wed Mar 18 14:19:28 2009
+--- src/version.c      Wed Mar 18 14:28:46 2009
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     145,
+  /**/
+
+-- 
+Google is kind of like Dr. Who's Tardis; it's weirder on the
+inside than on the outside...
+
+ /// 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.146 b/7.2.146
new file mode 100644 (file)
index 0000000..96852fb
--- /dev/null
+++ b/7.2.146
@@ -0,0 +1,110 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.146
+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.146
+Problem:    v:warningmsg isn't used for all warnings.
+Solution:   Set v:warningmsg for relevant warnings. (Ingo Karkat)
+Files:     src/fileio.c, src/misc1.c, src/option.c
+
+
+*** ../vim-7.2.145/src/fileio.c        Wed Mar 11 13:09:30 2009
+--- src/fileio.c       Wed Mar 18 15:03:46 2009
+***************
+*** 6647,6652 ****
+--- 6647,6657 ----
+           tbuf = alloc((unsigned)(STRLEN(path) + STRLEN(mesg)
+                                                       + STRLEN(mesg2) + 2));
+           sprintf((char *)tbuf, mesg, path);
++ #ifdef FEAT_EVAL
++          /* Set warningmsg here, before the unimportant and output-specific
++           * mesg2 has been appended. */
++          set_vim_var_string(VV_WARNINGMSG, tbuf, -1);
++ #endif
+  #if defined(FEAT_CON_DIALOG) || defined(FEAT_GUI_DIALOG)
+           if (can_reload)
+           {
+*** ../vim-7.2.145/src/misc1.c Thu Nov 20 17:09:09 2008
+--- src/misc1.c        Wed Mar 18 15:06:59 2009
+***************
+*** 2955,2960 ****
+--- 2955,2962 ----
+      int          col;                /* column for message; non-zero when in insert
+                                  mode and 'showmode' is on */
+  {
++     static char *w_readonly = N_("W10: Warning: Changing a readonly file");
++ 
+      if (curbuf->b_did_warn == FALSE
+           && curbufIsChanged() == 0
+  #ifdef FEAT_AUTOCMD
+***************
+*** 2977,2984 ****
+       if (msg_row == Rows - 1)
+           msg_col = col;
+       msg_source(hl_attr(HLF_W));
+!      MSG_PUTS_ATTR(_("W10: Warning: Changing a readonly file"),
+!                                                 hl_attr(HLF_W) | MSG_HIST);
+       msg_clr_eos();
+       (void)msg_end();
+       if (msg_silent == 0 && !silent_mode)
+--- 2979,2988 ----
+       if (msg_row == Rows - 1)
+           msg_col = col;
+       msg_source(hl_attr(HLF_W));
+!      MSG_PUTS_ATTR(_(w_readonly), hl_attr(HLF_W) | MSG_HIST);
+! #ifdef FEAT_EVAL
+!      set_vim_var_string(VV_WARNINGMSG, (char_u *)_(w_readonly), -1);
+! #endif
+       msg_clr_eos();
+       (void)msg_end();
+       if (msg_silent == 0 && !silent_mode)
+*** ../vim-7.2.145/src/option.c        Wed Mar 18 14:19:28 2009
+--- src/option.c       Wed Mar 18 15:06:11 2009
+***************
+*** 7563,7571 ****
+            * set. */
+           if (STRCMP(p_enc, "utf-8") != 0)
+           {
+               msg_source(hl_attr(HLF_W));
+!              MSG_ATTR(_("W17: Arabic requires UTF-8, do ':set encoding=utf-8'"),
+!                      hl_attr(HLF_W));
+           }
+  
+  # ifdef FEAT_MBYTE
+--- 7563,7575 ----
+            * set. */
+           if (STRCMP(p_enc, "utf-8") != 0)
+           {
++              static char *w_arabic = N_("W17: Arabic requires UTF-8, do ':set encoding=utf-8'");
++ 
+               msg_source(hl_attr(HLF_W));
+!              MSG_ATTR(_(w_arabic), hl_attr(HLF_W));
+! #ifdef FEAT_EVAL
+!              set_vim_var_string(VV_WARNINGMSG, (char_u *)_(w_arabic), -1);
+! #endif
+           }
+  
+  # ifdef FEAT_MBYTE
+*** ../vim-7.2.145/src/version.c       Wed Mar 18 14:30:46 2009
+--- src/version.c      Wed Mar 18 15:38:27 2009
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     146,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+238. You think faxes are old-fashioned.
+
+ /// 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.147 b/7.2.147
new file mode 100644 (file)
index 0000000..82a43ee
--- /dev/null
+++ b/7.2.147
@@ -0,0 +1,53 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.147
+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.147
+Problem:    When compiled as small version and 'number' is on the cursor is
+           displayed in the wrong position after a tab. (James Vega)
+Solution:   Don't increment vcol when still displaying the line number.
+Files:     src/screen.c
+
+
+*** ../vim-7.2.146/src/screen.c        Wed Mar 11 17:57:05 2009
+--- src/screen.c       Wed Mar 18 16:18:00 2009
+***************
+*** 4665,4671 ****
+           --n_skip;
+  
+       /* Only advance the "vcol" when after the 'number' column. */
+!      if (draw_state >= WL_SBR
+  #ifdef FEAT_DIFF
+               && filler_todo <= 0
+  #endif
+--- 4665,4671 ----
+           --n_skip;
+  
+       /* Only advance the "vcol" when after the 'number' column. */
+!      if (draw_state > WL_NR
+  #ifdef FEAT_DIFF
+               && filler_todo <= 0
+  #endif
+*** ../vim-7.2.146/src/version.c       Wed Mar 18 15:40:03 2009
+--- src/version.c      Wed Mar 18 16:26:00 2009
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     147,
+  /**/
+
+-- 
+You can tune a file system, but you can't tuna fish
+                                                       -- man tunefs
+
+ /// 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.148 b/7.2.148
new file mode 100644 (file)
index 0000000..3250499
--- /dev/null
+++ b/7.2.148
@@ -0,0 +1,145 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.148
+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.148
+Problem:    When searching for "$" while 'hlsearch' is set, highlighting the
+           character after the line does not work in the cursor column.
+           Also highlighting for Visual mode after the line end when this
+           isn't needed.  (Markus Heidelberg)
+Solution:   Only compare the cursor column in the cursor line.  Only highlight
+           for Visual selection after the last character when it's needed to
+           see where the Visual selection ends.
+Files:     src/screen.c
+
+
+*** ../vim-7.2.147/src/screen.c        Wed Mar 18 16:26:31 2009
+--- src/screen.c       Wed Mar 18 17:24:56 2009
+***************
+*** 2889,2896 ****
+       }
+       else
+           tocol = MAXCOL;
+!      if (fromcol == tocol)           /* do at least one character */
+!          tocol = fromcol + 1;        /* happens when past end of line */
+       area_highlighting = TRUE;
+       attr = hl_attr(HLF_I);
+      }
+--- 2889,2897 ----
+       }
+       else
+           tocol = MAXCOL;
+!      /* do at least one character; happens when past end of line */
+!      if (fromcol == tocol)
+!          tocol = fromcol + 1;
+       area_highlighting = TRUE;
+       attr = hl_attr(HLF_I);
+      }
+***************
+*** 4118,4123 ****
+--- 4119,4125 ----
+  # endif
+                                   (col < W_WIDTH(wp)))
+                               && !(noinvcur
++                                  && lnum == wp->w_cursor.lnum
+                                   && (colnr_T)vcol == wp->w_virtcol)))
+                       && lcs_eol_one >= 0)
+               {
+***************
+*** 4259,4265 ****
+        * preedit_changed and commit.  Thus Vim can't set "im_is_active", use
+        * im_is_preediting() here. */
+       if (xic != NULL
+!              && lnum == curwin->w_cursor.lnum
+               && (State & INSERT)
+               && !p_imdisable
+               && im_is_preediting()
+--- 4261,4267 ----
+        * preedit_changed and commit.  Thus Vim can't set "im_is_active", use
+        * im_is_preediting() here. */
+       if (xic != NULL
+!              && lnum == wp->w_cursor.lnum
+               && (State & INSERT)
+               && !p_imdisable
+               && im_is_preediting()
+***************
+*** 4268,4274 ****
+           colnr_T tcol;
+  
+           if (preedit_end_col == MAXCOL)
+!              getvcol(curwin, &(curwin->w_cursor), &tcol, NULL, NULL);
+           else
+               tcol = preedit_end_col;
+           if ((long)preedit_start_col <= vcol && vcol < (long)tcol)
+--- 4270,4276 ----
+           colnr_T tcol;
+  
+           if (preedit_end_col == MAXCOL)
+!              getvcol(curwin, &(wp->w_cursor), &tcol, NULL, NULL);
+           else
+               tcol = preedit_end_col;
+           if ((long)preedit_start_col <= vcol && vcol < (long)tcol)
+***************
+*** 4365,4371 ****
+           }
+  #endif
+           if (lcs_eol == lcs_eol_one
+!                  && ((area_attr != 0 && vcol == fromcol && c == NUL)
+  #ifdef FEAT_SEARCH_EXTRA
+                       /* highlight 'hlsearch' match at end of line */
+                       || (prevcol_hl_flag == TRUE
+--- 4367,4379 ----
+           }
+  #endif
+           if (lcs_eol == lcs_eol_one
+!                  && ((area_attr != 0 && vcol == fromcol
+! #ifdef FEAT_VISUAL
+!                          && (VIsual_mode != Ctrl_V
+!                              || lnum == VIsual.lnum
+!                              || lnum == curwin->w_cursor.lnum)
+! #endif
+!                          && c == NUL)
+  #ifdef FEAT_SEARCH_EXTRA
+                       /* highlight 'hlsearch' match at end of line */
+                       || (prevcol_hl_flag == TRUE
+***************
+*** 4459,4465 ****
+       if (c == NUL)
+       {
+  #ifdef FEAT_SYN_HL
+!          if (eol_hl_off > 0 && vcol - eol_hl_off == (long)wp->w_virtcol)
+           {
+               /* highlight last char after line */
+               --col;
+--- 4467,4474 ----
+       if (c == NUL)
+       {
+  #ifdef FEAT_SYN_HL
+!          if (eol_hl_off > 0 && vcol - eol_hl_off == (long)wp->w_virtcol
+!                  && lnum == wp->w_cursor.lnum)
+           {
+               /* highlight last char after line */
+               --col;
+*** ../vim-7.2.147/src/version.c       Wed Mar 18 16:26:31 2009
+--- src/version.c      Wed Mar 18 19:05:37 2009
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     148,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+239. You think "surfing" is something you do on dry land.
+
+ /// 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.234071 seconds and 4 git commands to generate.