--- /dev/null
+To: vim-dev@vim.org
+Subject: Patch 7.2.357
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.357
+Problem: When changing 'fileformat' from/to "mac" and there is a CR in the
+ text the display is wrong.
+Solution: Redraw the text when 'fileformat' is changed. (Ben Schmidt)
+Files: src/option.c
+
+
+*** ../vim-7.2.356/src/option.c 2010-01-27 15:57:17.000000000 +0100
+--- src/option.c 2010-02-11 16:57:19.000000000 +0100
+***************
+*** 5867,5872 ****
+--- 5867,5876 ----
+ #endif
+ /* update flag in swap file */
+ ml_setflags(curbuf);
++ /* Redraw needed when switching to/from "mac": a CR in the text
++ * will be displayed differently. */
++ if (get_fileformat(curbuf) == EOL_MAC || *oldval == 'm')
++ redraw_curbuf_later(NOT_VALID);
+ }
+ }
+
+*** ../vim-7.2.356/src/version.c 2010-02-03 18:14:41.000000000 +0100
+--- src/version.c 2010-02-11 17:01:36.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 357,
+ /**/
+
+--
+From the classified section of a city newspaper:
+Dog for sale: eats anything and is fond of children.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: Patch 7.2.358
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.358
+Problem: Compiler warnings on VMS. (Zoltan Arpadffy)
+Solution: Pass array itself instead its address. Return a value.
+Files: src/gui_gtk_x11.c, src/os_unix.c
+
+
+*** ../vim-7.2.357/src/gui_gtk_x11.c 2009-11-03 18:13:36.000000000 +0100
+--- src/gui_gtk_x11.c 2010-02-11 18:00:28.000000000 +0100
+***************
+*** 6190,6196 ****
+ int pcc[MAX_MCO];
+
+ /* TODO: use the composing characters */
+! c = utfc_ptr2char_len(p, &pcc, len - (p - s));
+ if (c >= 0x10000) /* show chars > 0xffff as ? */
+ c = 0xbf;
+ buf[textlen].byte1 = c >> 8;
+--- 6190,6196 ----
+ int pcc[MAX_MCO];
+
+ /* TODO: use the composing characters */
+! c = utfc_ptr2char_len(p, pcc, len - (p - s));
+ if (c >= 0x10000) /* show chars > 0xffff as ? */
+ c = 0xbf;
+ buf[textlen].byte1 = c >> 8;
+*** ../vim-7.2.357/src/os_unix.c 2009-07-22 13:27:50.000000000 +0200
+--- src/os_unix.c 2010-02-11 18:10:20.000000000 +0100
+***************
+*** 1471,1476 ****
+--- 1471,1479 ----
+ {
+ /* This function should not return, it causes exit(). Longjump instead. */
+ LONGJMP(lc_jump_env, 1);
++ # ifdef VMS
++ return 0; /* avoid the compiler complains about missing return value */
++ # endif
+ }
+ # endif
+
+***************
+*** 1490,1495 ****
+--- 1493,1501 ----
+
+ /* This function should not return, it causes exit(). Longjump instead. */
+ LONGJMP(x_jump_env, 1);
++ # ifdef VMS
++ return 0; /* avoid the compiler complains about missing return value */
++ # endif
+ }
+ #endif
+
+*** ../vim-7.2.357/src/version.c 2010-02-11 17:02:04.000000000 +0100
+--- src/version.c 2010-02-11 18:10:45.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 358,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+221. Your wife melts your keyboard in the oven.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: Patch 7.2.359
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.359
+Problem: Crash when using the Netbeans join command.
+Solution: Make sure the ml_flush_line() function is not used recursively.
+ (Xavier de Gaye)
+Files: src/memline.c
+
+
+*** ../vim-7.2.358/src/memline.c 2009-11-17 17:13:03.000000000 +0100
+--- src/memline.c 2010-02-11 18:47:48.000000000 +0100
+***************
+*** 3087,3098 ****
+--- 3087,3105 ----
+ int start;
+ int count;
+ int i;
++ static int entered = FALSE;
+
+ if (buf->b_ml.ml_line_lnum == 0 || buf->b_ml.ml_mfp == NULL)
+ return; /* nothing to do */
+
+ if (buf->b_ml.ml_flags & ML_LINE_DIRTY)
+ {
++ /* This code doesn't work recursively, but Netbeans may call back here
++ * when obtaining the cursor position. */
++ if (entered)
++ return;
++ entered = TRUE;
++
+ lnum = buf->b_ml.ml_line_lnum;
+ new_line = buf->b_ml.ml_line_ptr;
+
+***************
+*** 3160,3165 ****
+--- 3167,3174 ----
+ }
+ }
+ vim_free(new_line);
++
++ entered = FALSE;
+ }
+
+ buf->b_ml.ml_line_lnum = 0;
+*** ../vim-7.2.358/src/version.c 2010-02-11 18:19:32.000000000 +0100
+--- src/version.c 2010-02-11 18:53:55.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 359,
+ /**/
+
+--
+Your fault: core dumped
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: Patch 7.2.360
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.360
+Problem: Ruby on MS-Windows: can't use sockets.
+Solution: Call NtInitialize() during initialization. (Ariya Mizutani)
+Files: src/if_ruby.c
+
+
+*** ../vim-7.2.359/src/if_ruby.c 2009-05-22 18:20:23.000000000 +0200
+--- src/if_ruby.c 2010-02-17 15:04:00.000000000 +0100
+***************
+*** 48,53 ****
+--- 48,58 ----
+ # endif
+ #endif
+
++ /* suggested by Ariya Mizutani */
++ #if (_MSC_VER == 1200)
++ # undef _WIN32_WINNT
++ #endif
++
+ #include <ruby.h>
+
+ #undef EXTERN
+***************
+*** 132,137 ****
+--- 137,143 ----
+ #define ruby_errinfo (*dll_ruby_errinfo)
+ #define ruby_init dll_ruby_init
+ #define ruby_init_loadpath dll_ruby_init_loadpath
++ #define NtInitialize dll_NtInitialize
+ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
+ # define rb_w32_snprintf dll_rb_w32_snprintf
+ #endif
+***************
+*** 186,191 ****
+--- 192,198 ----
+ static VALUE *dll_ruby_errinfo;
+ static void (*dll_ruby_init) (void);
+ static void (*dll_ruby_init_loadpath) (void);
++ static void (*dll_NtInitialize) (int*, char***);
+ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
+ static int (*dll_rb_w32_snprintf)(char*, size_t, const char*, ...);
+ #endif
+***************
+*** 248,253 ****
+--- 255,261 ----
+ {"ruby_errinfo", (RUBY_PROC*)&dll_ruby_errinfo},
+ {"ruby_init", (RUBY_PROC*)&dll_ruby_init},
+ {"ruby_init_loadpath", (RUBY_PROC*)&dll_ruby_init_loadpath},
++ {"NtInitialize", (RUBY_PROC*)&dll_NtInitialize},
+ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
+ {"rb_w32_snprintf", (RUBY_PROC*)&dll_rb_w32_snprintf},
+ #endif
+***************
+*** 414,419 ****
+--- 422,433 ----
+ if (ruby_enabled(TRUE))
+ {
+ #endif
++ #ifdef _WIN32
++ /* suggested by Ariya Mizutani */
++ int argc = 1;
++ char *argv[] = {"gvim.exe"};
++ NtInitialize(&argc, &argv);
++ #endif
+ ruby_init();
+ ruby_init_loadpath();
+ ruby_io_init();
+*** ../vim-7.2.359/src/version.c 2010-02-11 18:54:38.000000000 +0100
+--- src/version.c 2010-02-17 15:10:22.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 360,
+ /**/
+
+--
+"After a few years of marriage a man can look right at a woman
+without seeing her and a woman can see right through a man
+without looking at him."
+ - Helen Rowland
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: Patch 7.2.361
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.361
+Problem: Ruby 1.9 is not supported.
+Solution: Add Ruby 1.9 support. (Msaki Suketa)
+Files: src/Makefile, src/auto/configure, src/configure.in, src/if_ruby.c
+
+
+*** ../vim-7.2.360/src/Makefile 2010-02-17 15:12:22.000000000 +0100
+--- src/Makefile 2010-02-17 16:21:01.000000000 +0100
+***************
+*** 395,401 ****
+
+ # RUBY
+ # Uncomment this when you want to include the Ruby interface.
+! #CONF_OPT_RUBY = --enable-rubyinterp
+
+ # MZSCHEME
+ # Uncomment this when you want to include the MzScheme interface.
+--- 395,403 ----
+
+ # RUBY
+ # Uncomment this when you want to include the Ruby interface.
+! # Note: you need the development package (e.g., ruby1.9.1-dev on Ubuntu).
+! # CONF_OPT_RUBY = --enable-rubyinterp
+! # CONF_OPT_RUBY = --enable-rubyinterp --with-ruby-command=ruby1.9.1
+
+ # MZSCHEME
+ # Uncomment this when you want to include the MzScheme interface.
+*** ../vim-7.2.360/src/auto/configure 2009-12-16 17:14:08.000000000 +0100
+--- src/auto/configure 2010-02-17 16:08:59.000000000 +0100
+***************
+*** 793,798 ****
+--- 793,799 ----
+ enable_tclinterp
+ with_tclsh
+ enable_rubyinterp
++ with_ruby_command
+ enable_cscope
+ enable_workshop
+ enable_netbeans
+***************
+*** 1503,1508 ****
+--- 1504,1510 ----
+ --with-plthome=PLTHOME Use PLTHOME.
+ --with-python-config-dir=PATH Python's config directory
+ --with-tclsh=PATH which tclsh to use (default: tclsh8.0)
++ --with-ruby-command=RUBY name of the Ruby command (default: ruby)
+ --with-x use the X Window System
+ --with-gtk-prefix=PFX Prefix where GTK is installed (optional)
+ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)
+***************
+*** 5703,5711 ****
+ { $as_echo "$as_me:$LINENO: result: $enable_rubyinterp" >&5
+ $as_echo "$enable_rubyinterp" >&6; }
+ if test "$enable_rubyinterp" = "yes"; then
+
+! # Extract the first word of "ruby", so it can be a program name with args.
+! set dummy ruby; ac_word=$2
+ { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if test "${ac_cv_path_vi_cv_path_ruby+set}" = set; then
+--- 5705,5725 ----
+ { $as_echo "$as_me:$LINENO: result: $enable_rubyinterp" >&5
+ $as_echo "$enable_rubyinterp" >&6; }
+ if test "$enable_rubyinterp" = "yes"; then
++ { $as_echo "$as_me:$LINENO: checking --with-ruby-command argument" >&5
++ $as_echo_n "checking --with-ruby-command argument... " >&6; }
+
+! # Check whether --with-ruby-command was given.
+! if test "${with_ruby_command+set}" = set; then
+! withval=$with_ruby_command; RUBY_CMD="$withval"; { $as_echo "$as_me:$LINENO: result: $RUBY_CMD" >&5
+! $as_echo "$RUBY_CMD" >&6; }
+! else
+! RUBY_CMD="ruby"; { $as_echo "$as_me:$LINENO: result: defaulting to $RUBY_CMD" >&5
+! $as_echo "defaulting to $RUBY_CMD" >&6; }
+! fi
+!
+!
+! # Extract the first word of "$RUBY_CMD", so it can be a program name with args.
+! set dummy $RUBY_CMD; ac_word=$2
+ { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if test "${ac_cv_path_vi_cv_path_ruby+set}" = set; then
+***************
+*** 5752,5762 ****
+ $as_echo "OK" >&6; }
+ { $as_echo "$as_me:$LINENO: checking Ruby header files" >&5
+ $as_echo_n "checking Ruby header files... " >&6; }
+! rubyhdrdir=`$vi_cv_path_ruby -r mkmf -e 'print Config::CONFIG["archdir"] || $hdrdir' 2>/dev/null`
+ if test "X$rubyhdrdir" != "X"; then
+ { $as_echo "$as_me:$LINENO: result: $rubyhdrdir" >&5
+ $as_echo "$rubyhdrdir" >&6; }
+ RUBY_CFLAGS="-I$rubyhdrdir"
+ rubylibs=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG["LIBS"]'`
+ if test "X$rubylibs" != "X"; then
+ RUBY_LIBS="$rubylibs"
+--- 5766,5782 ----
+ $as_echo "OK" >&6; }
+ { $as_echo "$as_me:$LINENO: checking Ruby header files" >&5
+ $as_echo_n "checking Ruby header files... " >&6; }
+! rubyhdrdir=`$vi_cv_path_ruby -r mkmf -e 'print Config::CONFIG["rubyhdrdir"] || Config::CONFIG["archdir"] || $hdrdir' 2>/dev/null`
+ if test "X$rubyhdrdir" != "X"; then
+ { $as_echo "$as_me:$LINENO: result: $rubyhdrdir" >&5
+ $as_echo "$rubyhdrdir" >&6; }
+ RUBY_CFLAGS="-I$rubyhdrdir"
++ rubyarch=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG["arch"]'`
++ if test -d "$rubyhdrdir/$rubyarch"; then
++ RUBY_CFLAGS="$RUBY_CFLAGS -I$rubyhdrdir/$rubyarch"
++ fi
++ rubyversion=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG["ruby_version"].gsub(/\./, "")[0,2]'`
++ RUBY_CFLAGS="$RUBY_CFLAGS -DRUBY_VERSION=$rubyversion"
+ rubylibs=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG["LIBS"]'`
+ if test "X$rubylibs" != "X"; then
+ RUBY_LIBS="$rubylibs"
+***************
+*** 5793,5800 ****
+ _ACEOF
+
+ else
+! { $as_echo "$as_me:$LINENO: result: not found" >&5
+! $as_echo "not found" >&6; }
+ fi
+ else
+ { $as_echo "$as_me:$LINENO: result: too old; need Ruby version 1.6.0 or later" >&5
+--- 5813,5820 ----
+ _ACEOF
+
+ else
+! { $as_echo "$as_me:$LINENO: result: not found; disabling Ruby" >&5
+! $as_echo "not found; disabling Ruby" >&6; }
+ fi
+ else
+ { $as_echo "$as_me:$LINENO: result: too old; need Ruby version 1.6.0 or later" >&5
+*** ../vim-7.2.360/src/configure.in 2009-12-16 17:14:08.000000000 +0100
+--- src/configure.in 2010-02-17 16:00:58.000000000 +0100
+***************
+*** 949,965 ****
+ [enable_rubyinterp="no"])
+ AC_MSG_RESULT($enable_rubyinterp)
+ if test "$enable_rubyinterp" = "yes"; then
+ AC_SUBST(vi_cv_path_ruby)
+! AC_PATH_PROG(vi_cv_path_ruby, ruby)
+ if test "X$vi_cv_path_ruby" != "X"; then
+ AC_MSG_CHECKING(Ruby version)
+ if $vi_cv_path_ruby -e '(VERSION rescue RUBY_VERSION) >= "1.6.0" or exit 1' >/dev/null 2>/dev/null; then
+ AC_MSG_RESULT(OK)
+ AC_MSG_CHECKING(Ruby header files)
+! rubyhdrdir=`$vi_cv_path_ruby -r mkmf -e 'print Config::CONFIG[["archdir"]] || $hdrdir' 2>/dev/null`
+ if test "X$rubyhdrdir" != "X"; then
+ AC_MSG_RESULT($rubyhdrdir)
+ RUBY_CFLAGS="-I$rubyhdrdir"
+ rubylibs=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["LIBS"]]'`
+ if test "X$rubylibs" != "X"; then
+ RUBY_LIBS="$rubylibs"
+--- 949,975 ----
+ [enable_rubyinterp="no"])
+ AC_MSG_RESULT($enable_rubyinterp)
+ if test "$enable_rubyinterp" = "yes"; then
++ AC_MSG_CHECKING(--with-ruby-command argument)
++ AC_ARG_WITH(ruby-command, [ --with-ruby-command=RUBY name of the Ruby command (default: ruby)],
++ RUBY_CMD="$withval"; AC_MSG_RESULT($RUBY_CMD),
++ RUBY_CMD="ruby"; AC_MSG_RESULT(defaulting to $RUBY_CMD))
+ AC_SUBST(vi_cv_path_ruby)
+! AC_PATH_PROG(vi_cv_path_ruby, $RUBY_CMD)
+ if test "X$vi_cv_path_ruby" != "X"; then
+ AC_MSG_CHECKING(Ruby version)
+ if $vi_cv_path_ruby -e '(VERSION rescue RUBY_VERSION) >= "1.6.0" or exit 1' >/dev/null 2>/dev/null; then
+ AC_MSG_RESULT(OK)
+ AC_MSG_CHECKING(Ruby header files)
+! rubyhdrdir=`$vi_cv_path_ruby -r mkmf -e 'print Config::CONFIG[["rubyhdrdir"]] || Config::CONFIG[["archdir"]] || $hdrdir' 2>/dev/null`
+ if test "X$rubyhdrdir" != "X"; then
+ AC_MSG_RESULT($rubyhdrdir)
+ RUBY_CFLAGS="-I$rubyhdrdir"
++ rubyarch=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["arch"]]'`
++ if test -d "$rubyhdrdir/$rubyarch"; then
++ RUBY_CFLAGS="$RUBY_CFLAGS -I$rubyhdrdir/$rubyarch"
++ fi
++ rubyversion=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["ruby_version"]].gsub(/\./, "")[[0,2]]'`
++ RUBY_CFLAGS="$RUBY_CFLAGS -DRUBY_VERSION=$rubyversion"
+ rubylibs=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["LIBS"]]'`
+ if test "X$rubylibs" != "X"; then
+ RUBY_LIBS="$rubylibs"
+***************
+*** 997,1003 ****
+ RUBY_PRO="if_ruby.pro"
+ AC_DEFINE(FEAT_RUBY)
+ else
+! AC_MSG_RESULT(not found, disabling Ruby)
+ fi
+ else
+ AC_MSG_RESULT(too old; need Ruby version 1.6.0 or later)
+--- 1007,1013 ----
+ RUBY_PRO="if_ruby.pro"
+ AC_DEFINE(FEAT_RUBY)
+ else
+! AC_MSG_RESULT(not found; disabling Ruby)
+ fi
+ else
+ AC_MSG_RESULT(too old; need Ruby version 1.6.0 or later)
+*** ../vim-7.2.360/src/if_ruby.c 2010-02-17 15:11:35.000000000 +0100
+--- src/if_ruby.c 2010-02-17 16:08:47.000000000 +0100
+***************
+*** 54,59 ****
+--- 54,62 ----
+ #endif
+
+ #include <ruby.h>
++ #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
++ # include <ruby/encoding.h>
++ #endif
+
+ #undef EXTERN
+ #undef _
+***************
+*** 65,70 ****
+--- 68,95 ----
+ # define __OPENTRANSPORTPROVIDERS__
+ #endif
+
++ /*
++ * Backward compatiblity for Ruby 1.8 and earlier.
++ * Ruby 1.9 does not provide STR2CSTR, instead StringValuePtr is provided.
++ * Ruby 1.9 does not provide RXXX(s)->len and RXXX(s)->ptr, instead
++ * RXXX_LEN(s) and RXXX_PTR(s) are provided.
++ */
++ #ifndef StringValuePtr
++ # define StringValuePtr(s) STR2CSTR(s)
++ #endif
++ #ifndef RARRAY_LEN
++ # define RARRAY_LEN(s) RARRAY(s)->len
++ #endif
++ #ifndef RARRAY_PTR
++ # define RARRAY_PTR(s) RARRAY(s)->ptr
++ #endif
++ #ifndef RSTRING_LEN
++ # define RSTRING_LEN(s) RSTRING(s)->len
++ #endif
++ #ifndef RSTRING_PTR
++ # define RSTRING_PTR(s) RSTRING(s)->ptr
++ #endif
++
+ #include "vim.h"
+ #include "version.h"
+
+***************
+*** 134,140 ****
+ #define rb_str_concat dll_rb_str_concat
+ #define rb_str_new dll_rb_str_new
+ #define rb_str_new2 dll_rb_str_new2
+! #define ruby_errinfo (*dll_ruby_errinfo)
+ #define ruby_init dll_ruby_init
+ #define ruby_init_loadpath dll_ruby_init_loadpath
+ #define NtInitialize dll_NtInitialize
+--- 159,169 ----
+ #define rb_str_concat dll_rb_str_concat
+ #define rb_str_new dll_rb_str_new
+ #define rb_str_new2 dll_rb_str_new2
+! #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
+! # define rb_errinfo dll_rb_errinfo
+! #else
+! # define ruby_errinfo (*dll_ruby_errinfo)
+! #endif
+ #define ruby_init dll_ruby_init
+ #define ruby_init_loadpath dll_ruby_init_loadpath
+ #define NtInitialize dll_NtInitialize
+***************
+*** 142,147 ****
+--- 171,184 ----
+ # define rb_w32_snprintf dll_rb_w32_snprintf
+ #endif
+
++ #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
++ # define ruby_script dll_ruby_script
++ # define rb_enc_find_index dll_rb_enc_find_index
++ # define rb_enc_find dll_rb_enc_find
++ # define rb_enc_str_new dll_rb_enc_str_new
++ # define rb_sprintf dll_rb_sprintf
++ #endif
++
+ /*
+ * Pointers for dynamic link
+ */
+***************
+*** 189,195 ****
+--- 226,236 ----
+ static VALUE (*dll_rb_str_concat) (VALUE, VALUE);
+ static VALUE (*dll_rb_str_new) (const char*, long);
+ static VALUE (*dll_rb_str_new2) (const char*);
++ #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
++ static VALUE (*dll_rb_errinfo) (void);
++ #else
+ static VALUE *dll_ruby_errinfo;
++ #endif
+ static void (*dll_ruby_init) (void);
+ static void (*dll_ruby_init_loadpath) (void);
+ static void (*dll_NtInitialize) (int*, char***);
+***************
+*** 197,202 ****
+--- 238,251 ----
+ static int (*dll_rb_w32_snprintf)(char*, size_t, const char*, ...);
+ #endif
+
++ #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
++ static void (*dll_ruby_script) (const char*);
++ static int (*dll_rb_enc_find_index) (const char*);
++ static rb_encoding* (*dll_rb_enc_find) (const char*);
++ static VALUE (*dll_rb_enc_str_new) (const char*, long, rb_encoding*);
++ static VALUE (*dll_rb_sprintf) (const char*, ...);
++ #endif
++
+ static HINSTANCE hinstRuby = 0; /* Instance of ruby.dll */
+
+ /*
+***************
+*** 252,264 ****
+--- 301,324 ----
+ {"rb_str_concat", (RUBY_PROC*)&dll_rb_str_concat},
+ {"rb_str_new", (RUBY_PROC*)&dll_rb_str_new},
+ {"rb_str_new2", (RUBY_PROC*)&dll_rb_str_new2},
++ #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
++ {"rb_errinfo", (RUBY_PROC*)&dll_rb_errinfo},
++ #else
+ {"ruby_errinfo", (RUBY_PROC*)&dll_ruby_errinfo},
++ #endif
+ {"ruby_init", (RUBY_PROC*)&dll_ruby_init},
+ {"ruby_init_loadpath", (RUBY_PROC*)&dll_ruby_init_loadpath},
+ {"NtInitialize", (RUBY_PROC*)&dll_NtInitialize},
+ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
+ {"rb_w32_snprintf", (RUBY_PROC*)&dll_rb_w32_snprintf},
+ #endif
++ #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
++ {"ruby_script", (RUBY_PROC*)&dll_ruby_script},
++ {"rb_enc_find_index", (RUBY_PROC*)&dll_rb_enc_find_index},
++ {"rb_enc_find", (RUBY_PROC*)&dll_rb_enc_find},
++ {"rb_enc_str_new", (RUBY_PROC*)&dll_rb_enc_str_new},
++ {"rb_sprintf", (RUBY_PROC*)&dll_rb_sprintf},
++ #endif
+ {"", NULL},
+ };
+
+***************
+*** 348,353 ****
+--- 408,465 ----
+ vim_free(script);
+ }
+
++ /*
++ * In Ruby 1.9 or later, ruby String object has encoding.
++ * conversion buffer string of vim to ruby String object using
++ * VIM encoding option.
++ */
++ static VALUE
++ vim_str2rb_enc_str(const char *s)
++ {
++ #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
++ int isnum;
++ long lval;
++ char_u *sval;
++ rb_encoding *enc;
++
++ isnum = get_option_value((char_u *)"enc", &lval, &sval, 0);
++ if (isnum == 0)
++ {
++ enc = rb_enc_find((char *)sval);
++ vim_free(sval);
++ if (enc) {
++ return rb_enc_str_new(s, strlen(s), enc);
++ }
++ }
++ #endif
++ return rb_str_new2(s);
++ }
++
++ static VALUE
++ eval_enc_string_protect(const char *str, int *state)
++ {
++ #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
++ int isnum;
++ long lval;
++ char_u *sval;
++ rb_encoding *enc;
++ VALUE v;
++
++ isnum = get_option_value((char_u *)"enc", &lval, &sval, 0);
++ if (isnum == 0)
++ {
++ enc = rb_enc_find((char *)sval);
++ vim_free(sval);
++ if (enc)
++ {
++ v = rb_sprintf("#-*- coding:%s -*-\n%s", rb_enc_name(enc), str);
++ return rb_eval_string_protect(StringValuePtr(v), state);
++ }
++ }
++ #endif
++ return rb_eval_string_protect(str, state);
++ }
++
+ void ex_rubydo(exarg_T *eap)
+ {
+ int state;
+***************
+*** 360,368 ****
+ for (i = eap->line1; i <= eap->line2; i++) {
+ VALUE line, oldline;
+
+! line = oldline = rb_str_new2((char *)ml_get(i));
+ rb_lastline_set(line);
+! rb_eval_string_protect((char *) eap->arg, &state);
+ if (state) {
+ error_print(state);
+ break;
+--- 472,480 ----
+ for (i = eap->line1; i <= eap->line2; i++) {
+ VALUE line, oldline;
+
+! line = oldline = vim_str2rb_enc_str((char *)ml_get(i));
+ rb_lastline_set(line);
+! eval_enc_string_protect((char *) eap->arg, &state);
+ if (state) {
+ error_print(state);
+ break;
+***************
+*** 373,379 ****
+ EMSG(_("E265: $_ must be an instance of String"));
+ return;
+ }
+! ml_replace(i, (char_u *) STR2CSTR(line), 1);
+ changed();
+ #ifdef SYNTAX_HL
+ syn_changed(i); /* recompute syntax hl. for this line */
+--- 485,491 ----
+ EMSG(_("E265: $_ must be an instance of String"));
+ return;
+ }
+! ml_replace(i, (char_u *) StringValuePtr(line), 1);
+ changed();
+ #ifdef SYNTAX_HL
+ syn_changed(i); /* recompute syntax hl. for this line */
+***************
+*** 428,436 ****
+--- 540,557 ----
+ char *argv[] = {"gvim.exe"};
+ NtInitialize(&argc, &argv);
+ #endif
++ #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
++ RUBY_INIT_STACK;
++ #endif
+ ruby_init();
++ #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
++ ruby_script("vim-ruby");
++ #endif
+ ruby_init_loadpath();
+ ruby_io_init();
++ #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
++ rb_enc_find_index("encdb");
++ #endif
+ ruby_vim_init();
+ ruby_initialized = 1;
+ #ifdef DYNAMIC_RUBY
+***************
+*** 448,455 ****
+--- 569,578 ----
+ static void error_print(int state)
+ {
+ #ifndef DYNAMIC_RUBY
++ #if !(defined(RUBY_VERSION) && RUBY_VERSION >= 19)
+ RUBYEXTERN VALUE ruby_errinfo;
+ #endif
++ #endif
+ VALUE eclass;
+ VALUE einfo;
+ char buff[BUFSIZ];
+***************
+*** 482,490 ****
+ break;
+ case TAG_RAISE:
+ case TAG_FATAL:
+ eclass = CLASS_OF(ruby_errinfo);
+ einfo = rb_obj_as_string(ruby_errinfo);
+! if (eclass == rb_eRuntimeError && RSTRING(einfo)->len == 0) {
+ EMSG(_("E272: unhandled exception"));
+ }
+ else {
+--- 605,618 ----
+ break;
+ case TAG_RAISE:
+ case TAG_FATAL:
++ #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
++ eclass = CLASS_OF(rb_errinfo());
++ einfo = rb_obj_as_string(rb_errinfo());
++ #else
+ eclass = CLASS_OF(ruby_errinfo);
+ einfo = rb_obj_as_string(ruby_errinfo);
+! #endif
+! if (eclass == rb_eRuntimeError && RSTRING_LEN(einfo) == 0) {
+ EMSG(_("E272: unhandled exception"));
+ }
+ else {
+***************
+*** 493,499 ****
+
+ epath = rb_class_path(eclass);
+ vim_snprintf(buff, BUFSIZ, "%s: %s",
+! RSTRING(epath)->ptr, RSTRING(einfo)->ptr);
+ p = strchr(buff, '\n');
+ if (p) *p = '\0';
+ EMSG(buff);
+--- 621,627 ----
+
+ epath = rb_class_path(eclass);
+ vim_snprintf(buff, BUFSIZ, "%s: %s",
+! RSTRING_PTR(epath), RSTRING_PTR(einfo));
+ p = strchr(buff, '\n');
+ if (p) *p = '\0';
+ EMSG(buff);
+***************
+*** 511,518 ****
+ char *buff, *p;
+
+ str = rb_obj_as_string(str);
+! buff = ALLOCA_N(char, RSTRING(str)->len);
+! strcpy(buff, RSTRING(str)->ptr);
+ p = strchr(buff, '\n');
+ if (p) *p = '\0';
+ MSG(buff);
+--- 639,646 ----
+ char *buff, *p;
+
+ str = rb_obj_as_string(str);
+! buff = ALLOCA_N(char, RSTRING_LEN(str));
+! strcpy(buff, RSTRING_PTR(str));
+ p = strchr(buff, '\n');
+ if (p) *p = '\0';
+ MSG(buff);
+***************
+*** 521,541 ****
+
+ static VALUE vim_set_option(VALUE self UNUSED, VALUE str)
+ {
+! do_set((char_u *)STR2CSTR(str), 0);
+ update_screen(NOT_VALID);
+ return Qnil;
+ }
+
+ static VALUE vim_command(VALUE self UNUSED, VALUE str)
+ {
+! do_cmdline_cmd((char_u *)STR2CSTR(str));
+ return Qnil;
+ }
+
+ static VALUE vim_evaluate(VALUE self UNUSED, VALUE str)
+ {
+ #ifdef FEAT_EVAL
+! char_u *value = eval_to_string((char_u *)STR2CSTR(str), NULL, TRUE);
+
+ if (value != NULL)
+ {
+--- 649,669 ----
+
+ static VALUE vim_set_option(VALUE self UNUSED, VALUE str)
+ {
+! do_set((char_u *)StringValuePtr(str), 0);
+ update_screen(NOT_VALID);
+ return Qnil;
+ }
+
+ static VALUE vim_command(VALUE self UNUSED, VALUE str)
+ {
+! do_cmdline_cmd((char_u *)StringValuePtr(str));
+ return Qnil;
+ }
+
+ static VALUE vim_evaluate(VALUE self UNUSED, VALUE str)
+ {
+ #ifdef FEAT_EVAL
+! char_u *value = eval_to_string((char_u *)StringValuePtr(str), NULL, TRUE);
+
+ if (value != NULL)
+ {
+***************
+*** 640,648 ****
+ if (n > 0 && n <= buf->b_ml.ml_line_count)
+ {
+ char *line = (char *)ml_get_buf(buf, n, FALSE);
+! return line ? rb_str_new2(line) : Qnil;
+ }
+! rb_raise(rb_eIndexError, "index %d out of buffer", n);
+ #ifndef __GNUC__
+ return Qnil; /* For stop warning */
+ #endif
+--- 768,776 ----
+ if (n > 0 && n <= buf->b_ml.ml_line_count)
+ {
+ char *line = (char *)ml_get_buf(buf, n, FALSE);
+! return line ? vim_str2rb_enc_str(line) : Qnil;
+ }
+! rb_raise(rb_eIndexError, "line number %ld out of range", (long)n);
+ #ifndef __GNUC__
+ return Qnil; /* For stop warning */
+ #endif
+***************
+*** 659,665 ****
+
+ static VALUE set_buffer_line(buf_T *buf, linenr_T n, VALUE str)
+ {
+! char *line = STR2CSTR(str);
+ aco_save_T aco;
+
+ if (n > 0 && n <= buf->b_ml.ml_line_count && line != NULL)
+--- 787,793 ----
+
+ static VALUE set_buffer_line(buf_T *buf, linenr_T n, VALUE str)
+ {
+! char *line = StringValuePtr(str);
+ aco_save_T aco;
+
+ if (n > 0 && n <= buf->b_ml.ml_line_count && line != NULL)
+***************
+*** 683,689 ****
+ }
+ else
+ {
+! rb_raise(rb_eIndexError, "index %d out of buffer", n);
+ #ifndef __GNUC__
+ return Qnil; /* For stop warning */
+ #endif
+--- 811,817 ----
+ }
+ else
+ {
+! rb_raise(rb_eIndexError, "line number %ld out of range", (long)n);
+ #ifndef __GNUC__
+ return Qnil; /* For stop warning */
+ #endif
+***************
+*** 729,735 ****
+ }
+ else
+ {
+! rb_raise(rb_eIndexError, "index %d out of buffer", n);
+ }
+ return Qnil;
+ }
+--- 857,863 ----
+ }
+ else
+ {
+! rb_raise(rb_eIndexError, "line number %ld out of range", n);
+ }
+ return Qnil;
+ }
+***************
+*** 737,747 ****
+ static VALUE buffer_append(VALUE self, VALUE num, VALUE str)
+ {
+ buf_T *buf = get_buf(self);
+! char *line = STR2CSTR(str);
+ long n = NUM2LONG(num);
+ aco_save_T aco;
+
+! if (n >= 0 && n <= buf->b_ml.ml_line_count && line != NULL)
+ {
+ /* set curwin/curbuf for "buf" and save some things */
+ aucmd_prepbuf(&aco, buf);
+--- 865,878 ----
+ static VALUE buffer_append(VALUE self, VALUE num, VALUE str)
+ {
+ buf_T *buf = get_buf(self);
+! char *line = StringValuePtr(str);
+ long n = NUM2LONG(num);
+ aco_save_T aco;
+
+! if (line != NULL) {
+! rb_raise(rb_eIndexError, "NULL line");
+! }
+! else if (n >= 0 && n <= buf->b_ml.ml_line_count)
+ {
+ /* set curwin/curbuf for "buf" and save some things */
+ aucmd_prepbuf(&aco, buf);
+***************
+*** 763,769 ****
+ update_curbuf(NOT_VALID);
+ }
+ else {
+! rb_raise(rb_eIndexError, "index %d out of buffer", n);
+ }
+ return str;
+ }
+--- 894,900 ----
+ update_curbuf(NOT_VALID);
+ }
+ else {
+! rb_raise(rb_eIndexError, "line number %ld out of range", n);
+ }
+ return str;
+ }
+***************
+*** 904,913 ****
+ win_T *win = get_win(self);
+
+ Check_Type(pos, T_ARRAY);
+! if (RARRAY(pos)->len != 2)
+ rb_raise(rb_eArgError, "array length must be 2");
+! lnum = RARRAY(pos)->ptr[0];
+! col = RARRAY(pos)->ptr[1];
+ win->w_cursor.lnum = NUM2LONG(lnum);
+ win->w_cursor.col = NUM2UINT(col);
+ check_cursor(); /* put cursor on an existing line */
+--- 1035,1044 ----
+ win_T *win = get_win(self);
+
+ Check_Type(pos, T_ARRAY);
+! if (RARRAY_LEN(pos) != 2)
+ rb_raise(rb_eArgError, "array length must be 2");
+! lnum = RARRAY_PTR(pos)[0];
+! col = RARRAY_PTR(pos)[1];
+ win->w_cursor.lnum = NUM2LONG(lnum);
+ win->w_cursor.col = NUM2UINT(col);
+ check_cursor(); /* put cursor on an existing line */
+***************
+*** 924,930 ****
+ if (i > 0) rb_str_cat(str, ", ", 2);
+ rb_str_concat(str, rb_inspect(argv[i]));
+ }
+! MSG(RSTRING(str)->ptr);
+ return Qnil;
+ }
+
+--- 1055,1061 ----
+ if (i > 0) rb_str_cat(str, ", ", 2);
+ rb_str_concat(str, rb_inspect(argv[i]));
+ }
+! MSG(RSTRING_PTR(str));
+ return Qnil;
+ }
+
+*** ../vim-7.2.360/src/version.c 2010-02-17 15:11:35.000000000 +0100
+--- src/version.c 2010-02-17 15:59:12.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 361,
+ /**/
+
+--
+"Marriage is when a man and woman become as one; the trouble starts
+when they try to decide which one"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: Patch 7.2.362 (extra)
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.362 (extra, after 7.2.352)
+Problem: Win64: Vim doesn't work when cross-compiled with MingW libraries.
+Solution: Instead of handling WM_NCCREATE, create wide text area window
+ class if the parent window iw side. (Sergey Khorev)
+Files: src/gui_w32.c, src/gui_w48.c
+
+
+*** ../vim-7.2.361/src/gui_w32.c 2009-12-24 16:11:24.000000000 +0100
+--- src/gui_w32.c 2010-02-17 16:26:58.000000000 +0100
+***************
+*** 1329,1334 ****
+--- 1329,1335 ----
+ WNDCLASS wndclass;
+ #ifdef FEAT_MBYTE
+ const WCHAR szVimWndClassW[] = VIM_CLASSW;
++ const WCHAR szTextAreaClassW[] = L"VimTextArea";
+ WNDCLASSW wndclassw;
+ #endif
+ #ifdef GLOBAL_IME
+***************
+*** 1479,1484 ****
+--- 1480,1507 ----
+ #endif
+
+ /* Create the text area window */
++ #ifdef FEAT_MBYTE
++ if (wide_WindowProc)
++ {
++ if (GetClassInfoW(s_hinst, szTextAreaClassW, &wndclassw) == 0)
++ {
++ wndclassw.style = CS_OWNDC;
++ wndclassw.lpfnWndProc = _TextAreaWndProc;
++ wndclassw.cbClsExtra = 0;
++ wndclassw.cbWndExtra = 0;
++ wndclassw.hInstance = s_hinst;
++ wndclassw.hIcon = NULL;
++ wndclassw.hCursor = LoadCursor(NULL, IDC_ARROW);
++ wndclassw.hbrBackground = NULL;
++ wndclassw.lpszMenuName = NULL;
++ wndclassw.lpszClassName = szTextAreaClassW;
++
++ if (RegisterClassW(&wndclassw) == 0)
++ return FAIL;
++ }
++ }
++ else
++ #endif
+ if (GetClassInfo(s_hinst, szTextAreaClass, &wndclass) == 0)
+ {
+ wndclass.style = CS_OWNDC;
+*** ../vim-7.2.361/src/gui_w48.c 2010-02-03 12:23:16.000000000 +0100
+--- src/gui_w48.c 2010-02-17 16:27:21.000000000 +0100
+***************
+*** 1084,1096 ****
+ case WM_NOTIFY: Handle_WM_Notify(hwnd, (LPNMHDR)lParam);
+ return TRUE;
+ #endif
+- /* Workaround for the problem that MyWindowProc() returns FALSE on 64
+- * bit windows when cross-compiled using Mingw libraries. (Andy
+- * Kittner) */
+- case WM_NCCREATE:
+- MyWindowProc(hwnd, uMsg, wParam, lParam);
+- return TRUE;
+-
+ default:
+ return MyWindowProc(hwnd, uMsg, wParam, lParam);
+ }
+--- 1084,1089 ----
+*** ../vim-7.2.361/src/version.c 2010-02-17 16:23:03.000000000 +0100
+--- src/version.c 2010-02-17 16:30:52.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 362,
+ /**/
+
+--
+"Marriage is the process of finding out what kind of man your wife
+would have preferred"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: Patch 7.2.363
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.363
+Problem: Can't dynamically load Perl 5.10.
+Solution: Add the function Perl_croak_xs_usage. (Sergey Khorev)
+Files: src/if_perl.xs
+
+
+*** ../vim-7.2.362/src/if_perl.xs 2009-11-11 14:45:36.000000000 +0100
+--- src/if_perl.xs 2010-02-17 16:33:16.000000000 +0100
+***************
+*** 93,98 ****
+--- 93,101 ----
+ # define perl_free dll_perl_free
+ # define Perl_get_context dll_Perl_get_context
+ # define Perl_croak dll_Perl_croak
++ # if (PERL_REVISION == 5) && (PERL_VERSION >= 10)
++ # define Perl_croak_xs_usage dll_Perl_croak_xs_usage
++ # endif
+ # ifndef PROTO
+ # define Perl_croak_nocontext dll_Perl_croak_nocontext
+ # define Perl_call_argv dll_Perl_call_argv
+***************
+*** 202,207 ****
+--- 205,213 ----
+ static int (*perl_parse)(PerlInterpreter*, XSINIT_t, int, char**, char**);
+ static void* (*Perl_get_context)(void);
+ static void (*Perl_croak)(pTHX_ const char*, ...);
++ #if (PERL_REVISION == 5) && (PERL_VERSION >= 10)
++ static void (*Perl_croak_xs_usage)(pTHX_ const CV *const, const char *const params);
++ #endif
+ static void (*Perl_croak_nocontext)(const char*, ...);
+ static I32 (*Perl_dowantarray)(pTHX);
+ static void (*Perl_free_tmps)(pTHX);
+***************
+*** 306,311 ****
+--- 312,320 ----
+ {"perl_parse", (PERL_PROC*)&perl_parse},
+ {"Perl_get_context", (PERL_PROC*)&Perl_get_context},
+ {"Perl_croak", (PERL_PROC*)&Perl_croak},
++ #if (PERL_REVISION == 5) && (PERL_VERSION >= 10)
++ {"Perl_croak_xs_usage", (PERL_PROC*)&Perl_croak_xs_usage},
++ #endif
+ {"Perl_croak_nocontext", (PERL_PROC*)&Perl_croak_nocontext},
+ {"Perl_dowantarray", (PERL_PROC*)&Perl_dowantarray},
+ {"Perl_free_tmps", (PERL_PROC*)&Perl_free_tmps},
+*** ../vim-7.2.362/src/version.c 2010-02-17 16:31:27.000000000 +0100
+--- src/version.c 2010-02-17 16:35:39.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 363,
+ /**/
+
+--
+If you're sending someone Styrofoam, what do you pack it in?
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: Patch 7.2.364 (extra)
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.364 (extra)
+Problem: Can't build gvimext.dll on Win 7 x64 using MinGW (John Marriott)
+Solution: Check if _MSC_VER is defined. (Andy Kittner)
+Files: src/GvimExt/gvimext.h
+
+
+*** ../vim-7.2.363/src/GvimExt/gvimext.h 2006-04-24 21:23:03.000000000 +0200
+--- src/GvimExt/gvimext.h 2010-02-17 17:20:00.000000000 +0100
+***************
+*** 14,22 ****
+ #if !defined(AFX_STDAFX_H__3389658B_AD83_11D3_9C1E_0090278BBD99__INCLUDED_)
+ #define AFX_STDAFX_H__3389658B_AD83_11D3_9C1E_0090278BBD99__INCLUDED_
+
+! #if _MSC_VER > 1000
+ #pragma once
+! #endif // _MSC_VER > 1000
+
+ // Insert your headers here
+ // #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
+--- 14,22 ----
+ #if !defined(AFX_STDAFX_H__3389658B_AD83_11D3_9C1E_0090278BBD99__INCLUDED_)
+ #define AFX_STDAFX_H__3389658B_AD83_11D3_9C1E_0090278BBD99__INCLUDED_
+
+! #if defined(_MSC_VER) && _MSC_VER > 1000
+ #pragma once
+! #endif
+
+ // Insert your headers here
+ // #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
+***************
+*** 34,40 ****
+ #define INC_OLE2 // WIN32, get ole2 from windows.h
+
+ /* Visual Studio 2005 has 'deprecated' many of the standard CRT functions */
+! #if _MSC_VER >= 1400
+ # define _CRT_SECURE_NO_DEPRECATE
+ # define _CRT_NONSTDC_NO_DEPRECATE
+ #endif
+--- 34,40 ----
+ #define INC_OLE2 // WIN32, get ole2 from windows.h
+
+ /* Visual Studio 2005 has 'deprecated' many of the standard CRT functions */
+! #if defined(_MSC_VER) && _MSC_VER >= 1400
+ # define _CRT_SECURE_NO_DEPRECATE
+ # define _CRT_NONSTDC_NO_DEPRECATE
+ #endif
+***************
+*** 44,50 ****
+ #include <shlobj.h>
+
+ /* Accommodate old versions of VC that don't have a modern Platform SDK */
+! #if _MSC_VER < 1300
+ # undef UINT_PTR
+ # define UINT_PTR UINT
+ #endif
+--- 44,50 ----
+ #include <shlobj.h>
+
+ /* Accommodate old versions of VC that don't have a modern Platform SDK */
+! #if defined(_MSC_VER) && _MSC_VER < 1300
+ # undef UINT_PTR
+ # define UINT_PTR UINT
+ #endif
+*** ../vim-7.2.363/src/version.c 2010-02-17 16:40:47.000000000 +0100
+--- src/version.c 2010-02-17 17:23:15.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 364,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+245. You use Real Audio to listen to a radio station from a distant
+ city rather than turn on your stereo system.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: Patch 7.2.365 (extra)
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.365 (extra)
+Problem: MS-Windows with MingW: "File->Save As" does not work. (John
+ Marriott)
+Solution: Correctly fill in structure size. (Andy Kittner)
+Files: src/gui_w48.c
+
+
+*** ../vim-7.2.364/src/gui_w48.c 2010-02-17 16:31:27.000000000 +0100
+--- src/gui_w48.c 2010-02-17 17:30:15.000000000 +0100
+***************
+*** 3345,3351 ****
+ #ifdef OPENFILENAME_SIZE_VERSION_400
+ /* be compatible with Windows NT 4.0 */
+ /* TODO: what to use for OPENFILENAMEW??? */
+! fileStruct.lStructSize = sizeof(OPENFILENAME_SIZE_VERSION_400);
+ #else
+ fileStruct.lStructSize = sizeof(fileStruct);
+ #endif
+--- 3345,3351 ----
+ #ifdef OPENFILENAME_SIZE_VERSION_400
+ /* be compatible with Windows NT 4.0 */
+ /* TODO: what to use for OPENFILENAMEW??? */
+! fileStruct.lStructSize = OPENFILENAME_SIZE_VERSION_400;
+ #else
+ fileStruct.lStructSize = sizeof(fileStruct);
+ #endif
+***************
+*** 3506,3512 ****
+ memset(&fileStruct, 0, sizeof(OPENFILENAME));
+ #ifdef OPENFILENAME_SIZE_VERSION_400
+ /* be compatible with Windows NT 4.0 */
+! fileStruct.lStructSize = sizeof(OPENFILENAME_SIZE_VERSION_400);
+ #else
+ fileStruct.lStructSize = sizeof(fileStruct);
+ #endif
+--- 3506,3512 ----
+ memset(&fileStruct, 0, sizeof(OPENFILENAME));
+ #ifdef OPENFILENAME_SIZE_VERSION_400
+ /* be compatible with Windows NT 4.0 */
+! fileStruct.lStructSize = OPENFILENAME_SIZE_VERSION_400;
+ #else
+ fileStruct.lStructSize = sizeof(fileStruct);
+ #endif
+*** ../vim-7.2.364/src/version.c 2010-02-17 17:24:23.000000000 +0100
+--- src/version.c 2010-02-17 17:31:54.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 365,
+ /**/
+
+
+--
+hundred-and-one symptoms of being an internet addict:
+246. You use up your free 100 hours in less than a week.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: Patch 7.2.366
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.366
+Problem: CTRL-B doesn't go back to the first line of the buffer.
+Solution: Avoid an overflow when adding MAXCOL.
+Files: src/move.c
+
+
+*** ../vim-7.2.365/src/move.c 2010-02-03 17:42:59.000000000 +0100
+--- src/move.c 2010-02-17 17:49:34.000000000 +0100
+***************
+*** 1610,1616 ****
+ * Add one line above "lp->lnum". This can be a filler line, a closed fold or
+ * a (wrapped) text line. Uses and sets "lp->fill".
+ * Returns the height of the added line in "lp->height".
+! * Lines above the first one are incredibly high.
+ */
+ static void
+ topline_back(lp)
+--- 1610,1616 ----
+ * Add one line above "lp->lnum". This can be a filler line, a closed fold or
+ * a (wrapped) text line. Uses and sets "lp->fill".
+ * Returns the height of the added line in "lp->height".
+! * Lines above the first one are incredibly high: MAXCOL.
+ */
+ static void
+ topline_back(lp)
+***************
+*** 1942,1948 ****
+ {
+ loff.lnum = curwin->w_topline;
+ topline_back(&loff);
+! if (used + loff.height > curwin->w_height)
+ break;
+ used += loff.height;
+ #ifdef FEAT_DIFF
+--- 1942,1948 ----
+ {
+ loff.lnum = curwin->w_topline;
+ topline_back(&loff);
+! if (loff.height == MAXCOL || used + loff.height > curwin->w_height)
+ break;
+ used += loff.height;
+ #ifdef FEAT_DIFF
+***************
+*** 2021,2027 ****
+
+ /* Add one line above */
+ topline_back(&loff);
+! used += loff.height;
+ if (used > curwin->w_height)
+ break;
+ if (loff.lnum >= curwin->w_botline
+--- 2021,2030 ----
+
+ /* Add one line above */
+ topline_back(&loff);
+! if (loff.height == MAXCOL)
+! used = MAXCOL;
+! else
+! used += loff.height;
+ if (used > curwin->w_height)
+ break;
+ if (loff.lnum >= curwin->w_botline
+***************
+*** 2175,2181 ****
+ if (below > above) /* add a line above the cursor */
+ {
+ topline_back(&loff);
+! used += loff.height;
+ if (used > curwin->w_height)
+ break;
+ above += loff.height;
+--- 2178,2187 ----
+ if (below > above) /* add a line above the cursor */
+ {
+ topline_back(&loff);
+! if (loff.height == MAXCOL)
+! used = MAXCOL;
+! else
+! used += loff.height;
+ if (used > curwin->w_height)
+ break;
+ above += loff.height;
+***************
+*** 2472,2480 ****
+ while (n <= curwin->w_height && loff.lnum >= 1)
+ {
+ topline_back(&loff);
+! n += loff.height;
+ }
+! if (n <= curwin->w_height) /* at begin of file */
+ {
+ curwin->w_topline = 1;
+ #ifdef FEAT_DIFF
+--- 2478,2489 ----
+ while (n <= curwin->w_height && loff.lnum >= 1)
+ {
+ topline_back(&loff);
+! if (loff.height == MAXCOL)
+! n = MAXCOL;
+! else
+! n += loff.height;
+ }
+! if (loff.lnum < 1) /* at begin of file */
+ {
+ curwin->w_topline = 1;
+ #ifdef FEAT_DIFF
+*** ../vim-7.2.365/src/version.c 2010-02-17 17:34:38.000000000 +0100
+--- src/version.c 2010-02-17 18:13:22.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 366,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+247. You use www.switchboard.com instead of dialing 411 and 555-12-12
+ for directory assistance.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: Patch 7.2.367
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.367
+Problem: "xxd -r -p" doesn't work as documented.
+Solution: Skip white space. (James Vega)
+Files: src/xxd/xxd.c
+
+
+*** ../vim-7.2.366/src/xxd/xxd.c 2009-06-16 18:29:37.000000000 +0200
+--- src/xxd/xxd.c 2010-02-17 18:25:11.000000000 +0100
+***************
+*** 231,237 ****
+ fprintf(stderr, " or\n %s -r [-s [-]offset] [-c cols] [-ps] [infile [outfile]]\n", pname);
+ fprintf(stderr, "Options:\n");
+ fprintf(stderr, " -a toggle autoskip: A single '*' replaces nul-lines. Default off.\n");
+! fprintf(stderr, " -b binary digit dump (incompatible with -p,-i,-r). Default hex.\n");
+ fprintf(stderr, " -c cols format <cols> octets per line. Default 16 (-i: 12, -ps: 30).\n");
+ fprintf(stderr, " -E show characters in EBCDIC. Default ASCII.\n");
+ fprintf(stderr, " -g number of octets per group in normal output. Default 2.\n");
+--- 231,237 ----
+ fprintf(stderr, " or\n %s -r [-s [-]offset] [-c cols] [-ps] [infile [outfile]]\n", pname);
+ fprintf(stderr, "Options:\n");
+ fprintf(stderr, " -a toggle autoskip: A single '*' replaces nul-lines. Default off.\n");
+! fprintf(stderr, " -b binary digit dump (incompatible with -ps,-i,-r). Default hex.\n");
+ fprintf(stderr, " -c cols format <cols> octets per line. Default 16 (-i: 12, -ps: 30).\n");
+ fprintf(stderr, " -E show characters in EBCDIC. Default ASCII.\n");
+ fprintf(stderr, " -g number of octets per group in normal output. Default 2.\n");
+***************
+*** 276,286 ****
+ if (c == '\r') /* Doze style input file? */
+ continue;
+
+! #if 0 /* this doesn't work when there is normal text after the hex codes in
+! the last line that looks like hex */
+! if (c == ' ' || c == '\n' || c == '\t') /* allow multiple spaces */
+ continue;
+- #endif
+
+ n3 = n2;
+ n2 = n1;
+--- 276,286 ----
+ if (c == '\r') /* Doze style input file? */
+ continue;
+
+! /* Allow multiple spaces. This doesn't work when there is normal text
+! * after the hex codes in the last line that looks like hex, thus only
+! * use it for PostScript format. */
+! if (hextype == HEX_POSTSCRIPT && (c == ' ' || c == '\n' || c == '\t'))
+ continue;
+
+ n3 = n2;
+ n2 = n1;
+*** ../vim-7.2.366/src/version.c 2010-02-17 18:20:23.000000000 +0100
+--- src/version.c 2010-02-17 18:26:35.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 367,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+248. You sign your letters with your e-mail address instead of your 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 ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: Patch 7.2.368
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.368 (after 7.2.361)
+Problem: Ruby interface: Appending line doesn't work. (Michael Henry)
+Solution: Reverse check for NULL line. (James Vega)
+Files: src/if_ruby.c
+
+
+*** ../vim-7.2.367/src/if_ruby.c 2010-02-17 16:23:03.000000000 +0100
+--- src/if_ruby.c 2010-02-18 15:47:42.000000000 +0100
+***************
+*** 869,875 ****
+ long n = NUM2LONG(num);
+ aco_save_T aco;
+
+! if (line != NULL) {
+ rb_raise(rb_eIndexError, "NULL line");
+ }
+ else if (n >= 0 && n <= buf->b_ml.ml_line_count)
+--- 869,875 ----
+ long n = NUM2LONG(num);
+ aco_save_T aco;
+
+! if (line == NULL) {
+ rb_raise(rb_eIndexError, "NULL line");
+ }
+ else if (n >= 0 && n <= buf->b_ml.ml_line_count)
+*** ../vim-7.2.367/src/version.c 2010-02-17 18:28:06.000000000 +0100
+--- src/version.c 2010-02-18 15:48:09.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 368,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+251. You've never seen your closest friends who usually live WAY too far away.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: Patch 7.2.369
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.369
+Problem: Error message is not easy to understand.
+Solution: Add quotes. (SungHyun Nam)
+Files: src/ex_cmds2.c
+
+
+*** ../vim-7.2.368/src/ex_cmds2.c 2010-02-03 15:14:15.000000000 +0100
+--- src/ex_cmds2.c 2010-02-18 21:16:20.000000000 +0100
+***************
+*** 1092,1098 ****
+ set_vim_var_nr(VV_PROFILING, 1L);
+ }
+ else if (do_profiling == PROF_NONE)
+! EMSG(_("E750: First use :profile start <fname>"));
+ else if (STRCMP(eap->arg, "pause") == 0)
+ {
+ if (do_profiling == PROF_YES)
+--- 1092,1098 ----
+ set_vim_var_nr(VV_PROFILING, 1L);
+ }
+ else if (do_profiling == PROF_NONE)
+! EMSG(_("E750: First use \":profile start {fname}\""));
+ else if (STRCMP(eap->arg, "pause") == 0)
+ {
+ if (do_profiling == PROF_YES)
+*** ../vim-7.2.368/src/version.c 2010-02-18 15:51:25.000000000 +0100
+--- src/version.c 2010-02-24 13:58:28.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 369,
+ /**/
+
+--
+MAN: You don't frighten us, English pig-dog! Go and boil your bottoms,
+ son of a silly person. I blow my nose on you, so-called Arthur-king,
+ you and your silly English K...kaniggets.
+ He puts hands to his ears and blows a raspberry.
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: Patch 7.2.370
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.370 (after 7.2.356)
+Problem: A redraw may cause folds to be closed.
+Solution: Revert part of the previous patch. Add a test. (Lech Lorens)
+Files: src/diff.c, src/fold.c, src/option.c, src/testdir/test45.in,
+ src/testdir/test45.ok
+
+
+*** ../vim-7.2.369/src/diff.c 2009-07-22 16:22:33.000000000 +0200
+--- src/diff.c 2010-02-24 14:31:12.000000000 +0100
+***************
+*** 1117,1142 ****
+ win_T *wp;
+ int addbuf; /* Add buffer to diff. */
+ {
+ wp->w_p_diff = TRUE;
+ wp->w_p_scb = TRUE;
+ wp->w_p_wrap = FALSE;
+ # ifdef FEAT_FOLDING
+! {
+! win_T *old_curwin = curwin;
+!
+! curwin = wp;
+! curbuf = curwin->w_buffer;
+! set_string_option_direct((char_u *)"fdm", -1, (char_u *)"diff",
+ OPT_LOCAL|OPT_FREE, 0);
+! curwin = old_curwin;
+! curbuf = curwin->w_buffer;
+! wp->w_p_fdc = diff_foldcolumn;
+! wp->w_p_fen = TRUE;
+! wp->w_p_fdl = 0;
+! foldUpdateAll(wp);
+! /* make sure topline is not halfway a fold */
+! changed_window_setting_win(wp);
+! }
+ # endif
+ #ifdef FEAT_SCROLLBIND
+ if (vim_strchr(p_sbo, 'h') == NULL)
+--- 1117,1147 ----
+ win_T *wp;
+ int addbuf; /* Add buffer to diff. */
+ {
++ # ifdef FEAT_FOLDING
++ win_T *old_curwin = curwin;
++
++ /* close the manually opened folds */
++ curwin = wp;
++ newFoldLevel();
++ curwin = old_curwin;
++ # endif
++
+ wp->w_p_diff = TRUE;
+ wp->w_p_scb = TRUE;
+ wp->w_p_wrap = FALSE;
+ # ifdef FEAT_FOLDING
+! curwin = wp;
+! curbuf = curwin->w_buffer;
+! set_string_option_direct((char_u *)"fdm", -1, (char_u *)"diff",
+ OPT_LOCAL|OPT_FREE, 0);
+! curwin = old_curwin;
+! curbuf = curwin->w_buffer;
+! wp->w_p_fdc = diff_foldcolumn;
+! wp->w_p_fen = TRUE;
+! wp->w_p_fdl = 0;
+! foldUpdateAll(wp);
+! /* make sure topline is not halfway a fold */
+! changed_window_setting_win(wp);
+ # endif
+ #ifdef FEAT_SCROLLBIND
+ if (vim_strchr(p_sbo, 'h') == NULL)
+*** ../vim-7.2.369/src/fold.c 2010-02-03 18:14:41.000000000 +0100
+--- src/fold.c 2010-02-24 13:09:04.000000000 +0100
+***************
+*** 854,865 ****
+ && fp->fd_top < bot)
+ {
+ fp->fd_small = MAYBE;
+-
+- /* Not sure if this is the right place to reset fd_flags (suggested by
+- * Lech Lorens). */
+- if (wp->w_foldinvalid)
+- fp->fd_flags = FD_LEVEL;
+-
+ ++fp;
+ }
+
+--- 854,859 ----
+*** ../vim-7.2.369/src/option.c 2010-02-11 17:02:04.000000000 +0100
+--- src/option.c 2010-02-24 13:09:44.000000000 +0100
+***************
+*** 6586,6592 ****
+--- 6586,6596 ----
+ || *curwin->w_p_fdm == NUL)
+ errmsg = e_invarg;
+ else
++ {
+ foldUpdateAll(curwin);
++ if (foldmethodIsDiff(curwin))
++ newFoldLevel();
++ }
+ }
+ # ifdef FEAT_EVAL
+ /* 'foldexpr' */
+*** ../vim-7.2.369/src/testdir/test45.in 2009-11-03 14:46:35.000000000 +0100
+--- src/testdir/test45.in 2010-02-24 13:02:39.000000000 +0100
+***************
+*** 36,41 ****
+--- 36,43 ----
+ k:call append("$", getline("."))
+ jAcommentstart \eAcommentend\e:set fdl=1
+ 3j:call append("$", getline("."))
++ :set fdl=0
++ zO\fj:call append("$", getline("."))
+ :" test expression folding
+ :fun Flvl()
+ let l = getline(v:lnum)
+*** ../vim-7.2.369/src/testdir/test45.ok 2009-11-03 14:46:35.000000000 +0100
+--- src/testdir/test45.ok 2010-02-24 12:58:55.000000000 +0100
+***************
+*** 11,16 ****
+--- 11,17 ----
+ folding 9 ii
+ 3 cc
+ 7 gg
++ 8 hh
+ expr 2
+ 1
+ 2
+*** ../vim-7.2.369/src/version.c 2010-02-24 13:59:09.000000000 +0100
+--- src/version.c 2010-02-24 14:28:20.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 370,
+ /**/
+
+--
+MAN: Fetchez la vache!
+GUARD: Quoi?
+MAN: Fetchez la vache!
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: Patch 7.2.371
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.371
+Problem: Build problems on Tandem NonStop.
+Solution: A few changes to #ifdefs (Joachim Schmitz)
+Files: src/auto/configure, src/configure.in, src/config.h.in, src/vim.h,
+ src/if_cscope.c, src/osdef1.h.in, src/tag.c
+
+
+*** ../vim-7.2.370/src/auto/configure 2010-02-17 16:23:03.000000000 +0100
+--- src/auto/configure 2010-02-24 14:27:00.000000000 +0100
+***************
+*** 14038,14046 ****
+
+
+
+!
+!
+! for ac_func in bcmp fchdir fchown fseeko fsync ftello getcwd getpseudotty \
+ getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
+ memset mkdtemp nanosleep opendir putenv qsort readlink select setenv \
+ setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
+--- 14038,14044 ----
+
+
+
+! for ac_func in bcmp fchdir fchown fsync getcwd getpseudotty \
+ getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
+ memset mkdtemp nanosleep opendir putenv qsort readlink select setenv \
+ setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
+***************
+*** 14146,14151 ****
+--- 14144,14281 ----
+ fi
+ done
+
++ { $as_echo "$as_me:$LINENO: checking for _LARGEFILE_SOURCE value needed for large files" >&5
++ $as_echo_n "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; }
++ if test "${ac_cv_sys_largefile_source+set}" = set; then
++ $as_echo_n "(cached) " >&6
++ else
++ while :; do
++ cat >conftest.$ac_ext <<_ACEOF
++ /* confdefs.h. */
++ _ACEOF
++ cat confdefs.h >>conftest.$ac_ext
++ cat >>conftest.$ac_ext <<_ACEOF
++ /* end confdefs.h. */
++ #include <sys/types.h> /* for off_t */
++ #include <stdio.h>
++ int
++ main ()
++ {
++ int (*fp) (FILE *, off_t, int) = fseeko;
++ return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
++ ;
++ return 0;
++ }
++ _ACEOF
++ rm -f conftest.$ac_objext conftest$ac_exeext
++ if { (ac_try="$ac_link"
++ 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_link") 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_exeext && {
++ test "$cross_compiling" = yes ||
++ $as_test_x conftest$ac_exeext
++ }; then
++ ac_cv_sys_largefile_source=no; break
++ else
++ $as_echo "$as_me: failed program was:" >&5
++ sed 's/^/| /' conftest.$ac_ext >&5
++
++
++ fi
++
++ rm -rf conftest.dSYM
++ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
++ conftest$ac_exeext conftest.$ac_ext
++ cat >conftest.$ac_ext <<_ACEOF
++ /* confdefs.h. */
++ _ACEOF
++ cat confdefs.h >>conftest.$ac_ext
++ cat >>conftest.$ac_ext <<_ACEOF
++ /* end confdefs.h. */
++ #define _LARGEFILE_SOURCE 1
++ #include <sys/types.h> /* for off_t */
++ #include <stdio.h>
++ int
++ main ()
++ {
++ int (*fp) (FILE *, off_t, int) = fseeko;
++ return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
++ ;
++ return 0;
++ }
++ _ACEOF
++ rm -f conftest.$ac_objext conftest$ac_exeext
++ if { (ac_try="$ac_link"
++ 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_link") 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_exeext && {
++ test "$cross_compiling" = yes ||
++ $as_test_x conftest$ac_exeext
++ }; then
++ ac_cv_sys_largefile_source=1; break
++ else
++ $as_echo "$as_me: failed program was:" >&5
++ sed 's/^/| /' conftest.$ac_ext >&5
++
++
++ fi
++
++ rm -rf conftest.dSYM
++ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
++ conftest$ac_exeext conftest.$ac_ext
++ ac_cv_sys_largefile_source=unknown
++ break
++ done
++ fi
++ { $as_echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_source" >&5
++ $as_echo "$ac_cv_sys_largefile_source" >&6; }
++ case $ac_cv_sys_largefile_source in #(
++ no | unknown) ;;
++ *)
++ cat >>confdefs.h <<_ACEOF
++ #define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source
++ _ACEOF
++ ;;
++ esac
++ rm -rf conftest*
++
++ # We used to try defining _XOPEN_SOURCE=500 too, to work around a bug
++ # in glibc 2.1.3, but that breaks too many other things.
++ # If you want fseeko and ftello with glibc, upgrade to a fixed glibc.
++ if test $ac_cv_sys_largefile_source != unknown; then
++
++ cat >>confdefs.h <<\_ACEOF
++ #define HAVE_FSEEKO 1
++ _ACEOF
++
++ fi
++
+
+ { $as_echo "$as_me:$LINENO: checking for st_blksize" >&5
+ $as_echo_n "checking for st_blksize... " >&6; }
+*** ../vim-7.2.370/src/configure.in 2010-02-17 16:23:03.000000000 +0100
+--- src/configure.in 2010-02-24 14:18:49.000000000 +0100
+***************
+*** 2642,2655 ****
+ AC_DEFINE(BAD_GETCWD)
+ fi
+
+! dnl Check for functions in one big call, to reduce the size of configure
+! AC_CHECK_FUNCS(bcmp fchdir fchown fseeko fsync ftello getcwd getpseudotty \
+ getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
+ memset mkdtemp nanosleep opendir putenv qsort readlink select setenv \
+ setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
+ sigvec strcasecmp strerror strftime stricmp strncasecmp \
+ strnicmp strpbrk strtol tgetent towlower towupper iswupper \
+ usleep utime utimes)
+
+ dnl fstatfs() can take 2 to 4 arguments, try to use st_blksize if possible
+ AC_MSG_CHECKING(for st_blksize)
+--- 2642,2657 ----
+ AC_DEFINE(BAD_GETCWD)
+ fi
+
+! dnl Check for functions in one big call, to reduce the size of configure.
+! dnl Can only be used for functions that do not require any include.
+! AC_CHECK_FUNCS(bcmp fchdir fchown fsync getcwd getpseudotty \
+ getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
+ memset mkdtemp nanosleep opendir putenv qsort readlink select setenv \
+ setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
+ sigvec strcasecmp strerror strftime stricmp strncasecmp \
+ strnicmp strpbrk strtol tgetent towlower towupper iswupper \
+ usleep utime utimes)
++ AC_FUNC_FSEEKO
+
+ dnl fstatfs() can take 2 to 4 arguments, try to use st_blksize if possible
+ AC_MSG_CHECKING(for st_blksize)
+*** ../vim-7.2.370/src/config.h.in 2009-11-17 17:13:03.000000000 +0100
+--- src/config.h.in 2010-02-24 14:20:26.000000000 +0100
+***************
+*** 144,150 ****
+ #undef HAVE_FCHOWN
+ #undef HAVE_FSEEKO
+ #undef HAVE_FSYNC
+- #undef HAVE_FTELLO
+ #undef HAVE_GETCWD
+ #undef HAVE_GETPSEUDOTTY
+ #undef HAVE_GETPWNAM
+--- 144,149 ----
+*** ../vim-7.2.370/src/vim.h 2010-02-03 15:14:15.000000000 +0100
+--- src/vim.h 2010-02-24 14:08:14.000000000 +0100
+***************
+*** 52,58 ****
+
+ /* user ID of root is usually zero, but not for everybody */
+ #ifdef __TANDEM
+! # define _TANDEM_SOURCE
+ # include <floss.h>
+ # define ROOT_UID 65535
+ #else
+--- 52,60 ----
+
+ /* user ID of root is usually zero, but not for everybody */
+ #ifdef __TANDEM
+! # ifndef _TANDEM_SOURCE
+! # define _TANDEM_SOURCE
+! # endif
+ # include <floss.h>
+ # define ROOT_UID 65535
+ #else
+*** ../vim-7.2.370/src/if_cscope.c 2010-01-19 14:59:14.000000000 +0100
+--- src/if_cscope.c 2010-02-24 14:10:21.000000000 +0100
+***************
+*** 2278,2284 ****
+--- 2278,2288 ----
+ /* Use sigaction() to limit the waiting time to two seconds. */
+ sigemptyset(&sa.sa_mask);
+ sa.sa_handler = sig_handler;
++ # ifdef SA_NODEFER
+ sa.sa_flags = SA_NODEFER;
++ # else
++ sa.sa_flags = 0;
++ # endif
+ sigaction(SIGALRM, &sa, &old);
+ alarm(2); /* 2 sec timeout */
+
+*** ../vim-7.2.370/src/osdef1.h.in 2007-02-27 16:47:59.000000000 +0100
+--- src/osdef1.h.in 2010-02-24 14:20:50.000000000 +0100
+***************
+*** 25,31 ****
+ extern int fseeko __ARGS((FILE *, off_t, int));
+ #endif
+ extern long ftell __ARGS((FILE *));
+! #ifdef HAVE_FTELLO
+ extern off_t ftello __ARGS((FILE *));
+ #endif
+ extern void rewind __ARGS((FILE *));
+--- 25,31 ----
+ extern int fseeko __ARGS((FILE *, off_t, int));
+ #endif
+ extern long ftell __ARGS((FILE *));
+! #ifdef HAVE_FSEEKO
+ extern off_t ftello __ARGS((FILE *));
+ #endif
+ extern void rewind __ARGS((FILE *));
+*** ../vim-7.2.370/src/tag.c 2009-05-17 13:30:58.000000000 +0200
+--- src/tag.c 2010-02-24 14:20:12.000000000 +0100
+***************
+*** 90,97 ****
+ /*
+ * We use ftello() here, if available. It returns off_t instead of long,
+ * which helps if long is 32 bit and off_t is 64 bit.
+ */
+! #ifdef HAVE_FTELLO
+ # define ftell ftello
+ #endif
+
+--- 90,98 ----
+ /*
+ * We use ftello() here, if available. It returns off_t instead of long,
+ * which helps if long is 32 bit and off_t is 64 bit.
++ * We assume that when fseeko() is available then ftello() is too.
+ */
+! #ifdef HAVE_FSEEKO
+ # define ftell ftello
+ #endif
+
+*** ../vim-7.2.370/src/version.c 2010-02-24 14:34:10.000000000 +0100
+--- src/version.c 2010-02-24 14:45:37.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 371,
+ /**/
+
+--
+ A cow comes flying over the battlements, lowing aggressively. The cow
+ lands on GALAHAD'S PAGE, squashing him completely.
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: Patch 7.2.372 (extra)
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.372 (extra)
+Problem: Cross-compiling GvimExt and xxd doesn't work.
+Solution: Change the build files. (Markus Heidelberg)
+Files: src/INSTALLpc.txt, src/GvimExt/Make_ming.mak, src/Make_cyg.mak,
+ src/Make_ming.mak, src/xxd/Make_cyg.mak
+
+
+*** ../vim-7.2.371/src/INSTALLpc.txt 2008-07-13 19:20:53.000000000 +0200
+--- src/INSTALLpc.txt 2010-01-19 12:37:03.000000000 +0100
+***************
+*** 215,222 ****
+
+ You should not need to do *any* editing of any files to get vim compiled this
+ way. If, for some reason, you want the console-mode-only version of vim (this
+! is NOT recommended on Win32, especially on '95/'98!!!), you need only change
+! the 'gvim.exe' to 'vim.exe' in the 'make' commands given above.
+
+ If you are dismayed by how big the EXE is, I strongly recommend you get 'UPX'
+ (also free!) and compress the file (typical compression is 50%). UPX can be
+--- 215,223 ----
+
+ You should not need to do *any* editing of any files to get vim compiled this
+ way. If, for some reason, you want the console-mode-only version of vim (this
+! is NOT recommended on Win32, especially on '95/'98!!!), you can use:
+!
+! make -f Make_ming.mak GUI=no vim.exe
+
+ If you are dismayed by how big the EXE is, I strongly recommend you get 'UPX'
+ (also free!) and compress the file (typical compression is 50%). UPX can be
+***************
+*** 240,246 ****
+ The Cygnus one many not fully work yet.
+ With Cygnus gcc you can use the Unix Makefile instead (you need to get the
+ Unix archive then). Then you get a Cygwin application (feels like Vim is
+! runnin on Unix), while with Make_cyg.mak you get a Windows application (like
+ with the other makefiles).
+
+
+--- 241,247 ----
+ The Cygnus one many not fully work yet.
+ With Cygnus gcc you can use the Unix Makefile instead (you need to get the
+ Unix archive then). Then you get a Cygwin application (feels like Vim is
+! running on Unix), while with Make_cyg.mak you get a Windows application (like
+ with the other makefiles).
+
+
+***************
+*** 259,268 ****
+--- 260,272 ----
+ If you like, you can compile the 'mingw' Win32 version from the comfort of
+ your Linux (or other unix) box. To do this, you need to follow a few steps:
+ 1) Install the mingw32 cross-compiler. See
++ http://www.mingw.org/wiki/LinuxCrossMinGW
+ http://www.libsdl.org/extras/win32/cross/README.txt
+ 2) Get and unpack both the Unix sources and the extra archive
+ 3) in 'Make_ming.mak', set 'CROSS' to 'yes' instead of 'no'.
+ Make further changes to 'Make_ming.mak' as you wish.
++ If your cross-compiler prefix differs from the predefined value,
++ set 'CROSS_COMPILE' corresponding.
+ 4) make -f Make_ming.mak gvim.exe
+
+ Now you have created the Windows binary from your Linux box! Have fun...
+*** ../vim-7.2.371/src/GvimExt/Make_ming.mak 2005-01-09 22:15:44.000000000 +0100
+--- src/GvimExt/Make_ming.mak 2010-02-24 14:56:37.000000000 +0100
+***************
+*** 20,36 ****
+ ifeq ($(CROSS),yes)
+ DEL = rm
+ ifeq ($(MINGWOLD),yes)
+- CXX = i586-mingw32msvc-g++
+ CXXFLAGS := -O2 -mno-cygwin -fvtable-thunks
+- WINDRES = i586-mingw32msvc-windres
+ else
+- CXX = i386-mingw32msvc-g++
+ CXXFLAGS := -O2 -mno-cygwin
+- WINDRES = i386-mingw32msvc-windres
+ endif
+ else
+- CXX := g++
+- WINDRES := windres
+ CXXFLAGS := -O2 -mno-cygwin
+ ifneq (sh.exe, $(SHELL))
+ DEL = rm
+--- 20,30 ----
+***************
+*** 38,43 ****
+--- 32,39 ----
+ DEL = del
+ endif
+ endif
++ CXX := $(CROSS_COMPILE)g++
++ WINDRES := $(CROSS_COMPILE)windres
+ LIBS := -luuid
+ RES := gvimext.res
+ DEFFILE = gvimext_ming.def
+*** ../vim-7.2.371/src/Make_cyg.mak 2009-09-11 12:48:56.000000000 +0200
+--- src/Make_cyg.mak 2010-02-24 14:59:02.000000000 +0100
+***************
+*** 1,6 ****
+ #
+ # Makefile for VIM on Win32, using Cygnus gcc
+! # Last updated by Dan Sharp. Last Change: 2007 Sep 29
+ #
+ # Also read INSTALLpc.txt!
+ #
+--- 1,6 ----
+ #
+ # Makefile for VIM on Win32, using Cygnus gcc
+! # Last updated by Dan Sharp. Last Change: 2010 Feb 24
+ #
+ # Also read INSTALLpc.txt!
+ #
+***************
+*** 32,40 ****
+ # OLE no or yes: set to yes to make OLE gvim (no)
+ # DEBUG no or yes: set to yes if you wish a DEBUGging build (no)
+ # CPUNR No longer supported, use ARCH.
+! # ARCH i386 through pentium4: select -march argument to compile with (i386)
+ # USEDLL no or yes: set to yes to use the Runtime library DLL (no)
+ # For USEDLL=yes the cygwin1.dll is required to run Vim.
+ # POSTSCRIPT no or yes: set to yes for PostScript printing (no)
+ # FEATURES TINY, SMALL, NORMAL, BIG or HUGE (BIG)
+ # WINVER Lowest Win32 version to support. (0x0400)
+--- 32,43 ----
+ # OLE no or yes: set to yes to make OLE gvim (no)
+ # DEBUG no or yes: set to yes if you wish a DEBUGging build (no)
+ # CPUNR No longer supported, use ARCH.
+! # ARCH i386 through pentium4: select -march argument to compile with
+! # (i386)
+ # USEDLL no or yes: set to yes to use the Runtime library DLL (no)
+ # For USEDLL=yes the cygwin1.dll is required to run Vim.
++ # "no" does not work with latest version of Cygwin, use
++ # Make_ming.mak instead. Or set CC to gcc-3.
+ # POSTSCRIPT no or yes: set to yes for PostScript printing (no)
+ # FEATURES TINY, SMALL, NORMAL, BIG or HUGE (BIG)
+ # WINVER Lowest Win32 version to support. (0x0400)
+***************
+*** 99,104 ****
+--- 102,108 ----
+ INCLUDES = -march=$(ARCH) -Iproto
+
+ #>>>>> name of the compiler and linker, name of lib directory
++ CROSS_COMPILE =
+ CC = gcc
+ RC = windres
+
+***************
+*** 467,476 ****
+ $(CC) $(CFLAGS) -o $(EXE) $(OBJ) $(LIBS) -luuid -lole32 $(EXTRA_LIBS)
+
+ xxd/xxd.exe: xxd/xxd.c
+! $(MAKE) -C xxd -f Make_cyg.mak USEDLL=$(USEDLL)
+
+ GvimExt/gvimext.dll: GvimExt/gvimext.cpp GvimExt/gvimext.rc GvimExt/gvimext.h
+! $(MAKE) -C GvimExt -f Make_ming.mak
+
+ vimrun.exe: vimrun.c
+ $(CC) $(CFLAGS) -o vimrun.exe vimrun.c $(LIBS)
+--- 471,480 ----
+ $(CC) $(CFLAGS) -o $(EXE) $(OBJ) $(LIBS) -luuid -lole32 $(EXTRA_LIBS)
+
+ xxd/xxd.exe: xxd/xxd.c
+! $(MAKE) -C xxd -f Make_cyg.mak CC=$(CC) USEDLL=$(USEDLL)
+
+ GvimExt/gvimext.dll: GvimExt/gvimext.cpp GvimExt/gvimext.rc GvimExt/gvimext.h
+! $(MAKE) -C GvimExt -f Make_ming.mak CROSS_COMPILE=$(CROSS_COMPILE)
+
+ vimrun.exe: vimrun.c
+ $(CC) $(CFLAGS) -o vimrun.exe vimrun.c $(LIBS)
+*** ../vim-7.2.371/src/Make_ming.mak 2009-09-11 12:48:56.000000000 +0200
+--- src/Make_ming.mak 2010-02-24 15:01:31.000000000 +0100
+***************
+*** 241,255 ****
+ DEFINES=-DWIN32 -DWINVER=$(WINVER) -D_WIN32_WINNT=$(WINVER) \
+ -DHAVE_PATHDEF -DFEAT_$(FEATURES)
+ ifeq ($(CROSS),yes)
+! # cross-compiler:
+! CC = i586-pc-mingw32msvc-gcc
+ DEL = rm
+ MKDIR = mkdir -p
+! WINDRES = i586-pc-mingw32msvc-windres
+ else
+ # normal (Windows) compilation:
+- CC = gcc
+ ifneq (sh.exe, $(SHELL))
+ DEL = rm
+ MKDIR = mkdir -p
+ DIRSLASH = /
+--- 241,255 ----
+ DEFINES=-DWIN32 -DWINVER=$(WINVER) -D_WIN32_WINNT=$(WINVER) \
+ -DHAVE_PATHDEF -DFEAT_$(FEATURES)
+ ifeq ($(CROSS),yes)
+! # cross-compiler prefix:
+! CROSS_COMPILE = i586-pc-mingw32msvc-
+ DEL = rm
+ MKDIR = mkdir -p
+! DIRSLASH = /
+ else
+ # normal (Windows) compilation:
+ ifneq (sh.exe, $(SHELL))
++ CROSS_COMPILE =
+ DEL = rm
+ MKDIR = mkdir -p
+ DIRSLASH = /
+***************
+*** 258,265 ****
+ MKDIR = mkdir
+ DIRSLASH = \\
+ endif
+- WINDRES = windres
+ endif
+
+ #>>>>> end of choices
+ ###########################################################################
+--- 258,266 ----
+ MKDIR = mkdir
+ DIRSLASH = \\
+ endif
+ endif
++ CC := $(CROSS_COMPILE)gcc
++ WINDRES := $(CROSS_COMPILE)windres
+
+ #>>>>> end of choices
+ ###########################################################################
+***************
+*** 549,558 ****
+ upx vim.exe
+
+ xxd/xxd.exe: xxd/xxd.c
+! $(MAKE) -C xxd -f Make_cyg.mak
+
+ GvimExt/gvimext.dll: GvimExt/gvimext.cpp GvimExt/gvimext.rc GvimExt/gvimext.h
+ $(MAKE) -C GvimExt -f Make_ming.mak
+
+ clean:
+ -$(DEL) $(OUTDIR)$(DIRSLASH)*.o
+--- 550,560 ----
+ upx vim.exe
+
+ xxd/xxd.exe: xxd/xxd.c
+! $(MAKE) -C xxd -f Make_cyg.mak CC=$(CC)
+
+ GvimExt/gvimext.dll: GvimExt/gvimext.cpp GvimExt/gvimext.rc GvimExt/gvimext.h
+ $(MAKE) -C GvimExt -f Make_ming.mak
++ $(MAKE) -C GvimExt -f Make_ming.mak CROSS=$(CROSS) CROSS_COMPILE=$(CROSS_COMPILE)
+
+ clean:
+ -$(DEL) $(OUTDIR)$(DIRSLASH)*.o
+*** ../vim-7.2.371/src/xxd/Make_cyg.mak 2004-06-13 17:48:52.000000000 +0200
+--- src/xxd/Make_cyg.mak 2010-02-24 15:05:24.000000000 +0100
+***************
+*** 12,17 ****
+--- 12,18 ----
+ LIBS =
+ endif
+
++ CC = gcc
+ CFLAGS = -O2 -Wall -DWIN32 $(DEFINES)
+
+ ifneq (sh.exe, $(SHELL))
+***************
+*** 21,27 ****
+ endif
+
+ xxd.exe: xxd.c
+! gcc $(CFLAGS) -s -o xxd.exe xxd.c $(LIBS)
+
+ clean:
+ -$(DEL) xxd.exe
+--- 22,28 ----
+ endif
+
+ xxd.exe: xxd.c
+! $(CC) $(CFLAGS) -s -o xxd.exe xxd.c $(LIBS)
+
+ clean:
+ -$(DEL) xxd.exe
+*** ../vim-7.2.371/src/version.c 2010-02-24 14:46:58.000000000 +0100
+--- src/version.c 2010-02-24 15:05:48.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 372,
+ /**/
+
+--
+Ten bugs in the hand is better than one as yet undetected.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: Patch 7.2.373
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.373
+Problem: Gcc 4.5 adds more error messages. (Chris Indy)
+Solution: Update default 'errorformat'.
+Files: src/option.h
+
+
+*** ../vim-7.2.372/src/option.h 2008-06-24 23:59:49.000000000 +0200
+--- src/option.h 2010-02-24 15:20:03.000000000 +0100
+***************
+*** 33,39 ****
+ # ifdef EBCDIC
+ #define DFLT_EFM "%*[^ ] %*[^ ] %f:%l%*[ ]%m,%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory `%f',%X%*\\a[%*\\d]: Leaving directory `%f',%DMaking %*\\a in %f,%f|%l| %m"
+ # else
+! #define DFLT_EFM "%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%-G%f:%l: (Each undeclared identifier is reported only once,%-G%f:%l: for each function it appears in.),%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory `%f',%X%*\\a[%*\\d]: Leaving directory `%f',%D%*\\a: Entering directory `%f',%X%*\\a: Leaving directory `%f',%DMaking %*\\a in %f,%f|%l| %m"
+ # endif
+ # endif
+ # endif
+--- 33,39 ----
+ # ifdef EBCDIC
+ #define DFLT_EFM "%*[^ ] %*[^ ] %f:%l%*[ ]%m,%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory `%f',%X%*\\a[%*\\d]: Leaving directory `%f',%DMaking %*\\a in %f,%f|%l| %m"
+ # else
+! #define DFLT_EFM "%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%-G%f:%l: (Each undeclared identifier is reported only once,%-G%f:%l: for each function it appears in.),%-GIn file included from %f:%l:%c,%-GIn file included from %f:%l,%-Gfrom %f:%l:%c,%-Gfrom %f:%l,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory `%f',%X%*\\a[%*\\d]: Leaving directory `%f',%D%*\\a: Entering directory `%f',%X%*\\a: Leaving directory `%f',%DMaking %*\\a in %f,%f|%l| %m"
+ # endif
+ # endif
+ # endif
+*** ../vim-7.2.372/src/version.c 2010-02-24 15:07:45.000000000 +0100
+--- src/version.c 2010-02-24 15:24:43.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 373,
+ /**/
+
+--
+ARTHUR: Right! Knights! Forward!
+ ARTHUR leads a charge toward the castle. Various shots of them battling on,
+ despite being hit by a variety of farm animals.
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: Patch 7.2.374
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.374
+Problem: Ruby eval() doesn't understand Vim types.
+Solution: Add the vim_to_ruby() function. (George Gensure)
+Files: src/eval.c, src/if_ruby.c
+
+
+*** ../vim-7.2.373/src/eval.c 2010-01-19 15:51:29.000000000 +0100
+--- src/eval.c 2010-02-24 15:36:40.000000000 +0100
+***************
+*** 5872,5878 ****
+ return item1 == NULL && item2 == NULL;
+ }
+
+! #if defined(FEAT_PYTHON) || defined(FEAT_MZSCHEME) || defined(PROTO)
+ /*
+ * Return the dictitem that an entry in a hashtable points to.
+ */
+--- 5872,5879 ----
+ return item1 == NULL && item2 == NULL;
+ }
+
+! #if defined(FEAT_RUBY) || defined(FEAT_PYTHON) || defined(FEAT_MZSCHEME) \
+! || defined(PROTO)
+ /*
+ * Return the dictitem that an entry in a hashtable points to.
+ */
+*** ../vim-7.2.373/src/if_ruby.c 2010-02-18 15:51:25.000000000 +0100
+--- src/if_ruby.c 2010-02-24 15:45:15.000000000 +0100
+***************
+*** 660,679 ****
+ return Qnil;
+ }
+
+ static VALUE vim_evaluate(VALUE self UNUSED, VALUE str)
+ {
+ #ifdef FEAT_EVAL
+! char_u *value = eval_to_string((char_u *)StringValuePtr(str), NULL, TRUE);
+
+! if (value != NULL)
+ {
+! VALUE val = rb_str_new2((char *)value);
+! vim_free(value);
+! return val;
+ }
+! else
+ #endif
+- return Qnil;
+ }
+
+ static VALUE buffer_new(buf_T *buf)
+--- 660,747 ----
+ return Qnil;
+ }
+
++ #ifdef FEAT_EVAL
++ static VALUE vim_to_ruby(typval_T *tv)
++ {
++ VALUE result = Qnil;
++
++ if (tv->v_type == VAR_STRING)
++ {
++ result = rb_str_new2((char *)tv->vval.v_string);
++ }
++ else if (tv->v_type == VAR_NUMBER)
++ {
++ result = INT2NUM(tv->vval.v_number);
++ }
++ # ifdef FEAT_FLOAT
++ else if (tv->v_type == VAR_FLOAT)
++ {
++ result = rb_float_new(tv->vval.v_float);
++ }
++ # endif
++ else if (tv->v_type == VAR_LIST)
++ {
++ list_T *list = tv->vval.v_list;
++ listitem_T *curr;
++
++ result = rb_ary_new();
++
++ if (list != NULL)
++ {
++ for (curr = list->lv_first; curr != NULL; curr = curr->li_next)
++ {
++ rb_ary_push(result, vim_to_ruby(&curr->li_tv));
++ }
++ }
++ }
++ else if (tv->v_type == VAR_DICT)
++ {
++ result = rb_hash_new();
++
++ if (tv->vval.v_dict != NULL)
++ {
++ hashtab_T *ht = &tv->vval.v_dict->dv_hashtab;
++ long_u todo = ht->ht_used;
++ hashitem_T *hi;
++ dictitem_T *di;
++
++ for (hi = ht->ht_array; todo > 0; ++hi)
++ {
++ if (!HASHITEM_EMPTY(hi))
++ {
++ --todo;
++
++ di = dict_lookup(hi);
++ rb_hash_aset(result, rb_str_new2((char *)hi->hi_key),
++ vim_to_ruby(&di->di_tv));
++ }
++ }
++ }
++ } /* else return Qnil; */
++
++ return result;
++ }
++ #endif
++
+ static VALUE vim_evaluate(VALUE self UNUSED, VALUE str)
+ {
+ #ifdef FEAT_EVAL
+! typval_T *tv;
+! VALUE result;
+
+! tv = eval_expr((char_u *)StringValuePtr(str), NULL);
+! if (tv == NULL)
+ {
+! return Qnil;
+ }
+! result = vim_to_ruby(tv);
+!
+! free_tv(tv);
+!
+! return result;
+! #else
+! return Qnil;
+ #endif
+ }
+
+ static VALUE buffer_new(buf_T *buf)
+*** ../vim-7.2.373/src/version.c 2010-02-24 15:25:13.000000000 +0100
+--- src/version.c 2010-02-24 15:46:57.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 374,
+ /**/
+
+--
+ARTHUR: (as the MAN next to him is squashed by a sheep) Knights! Run away!
+ Midst echoing shouts of "run away" the KNIGHTS retreat to cover with the odd
+ cow or goose hitting them still. The KNIGHTS crouch down under cover.
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: Patch 7.2.375
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.375
+Problem: ml_get errors when using ":bprevious" in a BufEnter autocmd.
+ (Dominique Pelle)
+Solution: Clear w_valid when entering another buffer.
+Files: src/buffer.c
+
+
+*** ../vim-7.2.374/src/buffer.c 2010-01-19 14:59:14.000000000 +0100
+--- src/buffer.c 2010-02-24 16:29:22.000000000 +0100
+***************
+*** 115,121 ****
+ #endif
+
+ /* mark cursor position as being invalid */
+! changed_line_abv_curs();
+
+ if (curbuf->b_ffname != NULL
+ #ifdef FEAT_NETBEANS_INTG
+--- 115,121 ----
+ #endif
+
+ /* mark cursor position as being invalid */
+! curwin->w_valid = 0;
+
+ if (curbuf->b_ffname != NULL
+ #ifdef FEAT_NETBEANS_INTG
+***************
+*** 1399,1404 ****
+--- 1399,1407 ----
+ curwin->w_topline_was_set = FALSE;
+ #endif
+
++ /* mark cursor position as being invalid */
++ curwin->w_valid = 0;
++
+ /* Make sure the buffer is loaded. */
+ if (curbuf->b_ml.ml_mfp == NULL) /* need to load the file */
+ {
+*** ../vim-7.2.374/src/version.c 2010-02-24 15:47:58.000000000 +0100
+--- src/version.c 2010-02-24 16:30:03.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 375,
+ /**/
+
+--
+Error:015 - Unable to exit Windows. Try the door.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: Patch 7.2.376
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.376
+Problem: ml_get error when using SiSU syntax. (Nathan Thomas)
+Solution: If the match ends below the last line move it to the end of the
+ last line.
+Files: src/syntax.c
+
+
+*** ../vim-7.2.375/src/syntax.c 2010-01-19 14:59:14.000000000 +0100
+--- src/syntax.c 2010-02-24 17:14:13.000000000 +0100
+***************
+*** 3086,3091 ****
+--- 3086,3097 ----
+ col = regmatch->startpos[0].col;
+ off = spp->sp_offsets[idx];
+ }
++ if (result->lnum > syn_buf->b_ml.ml_line_count)
++ {
++ /* a "\n" at the end of the pattern may take us below the last line */
++ result->lnum = syn_buf->b_ml.ml_line_count;
++ col = STRLEN(ml_get_buf(syn_buf, result->lnum, FALSE));
++ }
+ if (off != 0)
+ {
+ base = ml_get_buf(syn_buf, result->lnum, FALSE);
+*** ../vim-7.2.375/src/version.c 2010-02-24 16:58:30.000000000 +0100
+--- src/version.c 2010-02-24 17:15:48.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 376,
+ /**/
+
+--
+press CTRL-ALT-DEL for more information
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: Patch 7.2.377 (extra)
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.377 (extra, after 7.2.372)
+Problem: Misplaced assignment. Duplicate build line for gvimext.dll.
+Solution: Move setting CROSS_COMPILE to before ifneq. Remove the wrong
+ build line. (Markus Heidelberg)
+Files: src/Make_ming.mak
+
+
+*** ../vim-7.2.376/src/Make_ming.mak 2010-02-24 15:07:45.000000000 +0100
+--- src/Make_ming.mak 2010-02-26 22:01:07.000000000 +0100
+***************
+*** 248,255 ****
+ DIRSLASH = /
+ else
+ # normal (Windows) compilation:
+- ifneq (sh.exe, $(SHELL))
+ CROSS_COMPILE =
+ DEL = rm
+ MKDIR = mkdir -p
+ DIRSLASH = /
+--- 248,255 ----
+ DIRSLASH = /
+ else
+ # normal (Windows) compilation:
+ CROSS_COMPILE =
++ ifneq (sh.exe, $(SHELL))
+ DEL = rm
+ MKDIR = mkdir -p
+ DIRSLASH = /
+***************
+*** 553,559 ****
+ $(MAKE) -C xxd -f Make_cyg.mak CC=$(CC)
+
+ GvimExt/gvimext.dll: GvimExt/gvimext.cpp GvimExt/gvimext.rc GvimExt/gvimext.h
+- $(MAKE) -C GvimExt -f Make_ming.mak
+ $(MAKE) -C GvimExt -f Make_ming.mak CROSS=$(CROSS) CROSS_COMPILE=$(CROSS_COMPILE)
+
+ clean:
+--- 553,558 ----
+*** ../vim-7.2.376/src/version.c 2010-02-24 17:22:14.000000000 +0100
+--- src/version.c 2010-02-26 22:01:45.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 377,
+ /**/
+
+--
+FIRST HEAD: All right! All right! We'll kill him first and then have tea and
+ biscuits.
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: Patch 7.2.378
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.378
+Problem: C function declaration indented too much. (Rui)
+Solution: Don't see a line containing { or } as a type. (Matt Wozniski)
+Files: src/misc1.c
+
+
+*** ../vim-7.2.377/src/misc1.c 2010-01-06 17:46:03.000000000 +0100
+--- src/misc1.c 2010-02-26 22:36:50.000000000 +0100
+***************
+*** 7727,7737 ****
+ /*
+ * If the NEXT line is a function declaration, the current
+ * line needs to be indented as a function type spec.
+! * Don't do this if the current line looks like a comment
+! * or if the current line is terminated, ie. ends in ';'.
+ */
+ else if (cur_curpos.lnum < curbuf->b_ml.ml_line_count
+ && !cin_nocode(theline)
+ && !cin_ends_in(theline, (char_u *)":", NULL)
+ && !cin_ends_in(theline, (char_u *)",", NULL)
+ && cin_isfuncdecl(NULL, cur_curpos.lnum + 1)
+--- 7727,7740 ----
+ /*
+ * If the NEXT line is a function declaration, the current
+ * line needs to be indented as a function type spec.
+! * Don't do this if the current line looks like a comment or if the
+! * current line is terminated, ie. ends in ';', or if the current line
+! * contains { or }: "void f() {\n if (1)"
+ */
+ else if (cur_curpos.lnum < curbuf->b_ml.ml_line_count
+ && !cin_nocode(theline)
++ && vim_strchr(theline, '{') == NULL
++ && vim_strchr(theline, '}') == NULL
+ && !cin_ends_in(theline, (char_u *)":", NULL)
+ && !cin_ends_in(theline, (char_u *)",", NULL)
+ && cin_isfuncdecl(NULL, cur_curpos.lnum + 1)
+*** ../vim-7.2.377/src/version.c 2010-02-26 22:05:17.000000000 +0100
+--- src/version.c 2010-03-02 12:30:30.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 378,
+ /**/
+
+--
+ An extraordinary TALL KNIGHT in all black (possibly John with Mike on his
+ shoulders) walks out from the dark trees. He is extremely fierce and
+ gruesome countenance. He walks towards KING ARTHUR and PATSY, who are
+ wazzing like mad. (Salopian slang, meaning very scared. almost to the
+ point of wetting oneself, e.g. before an important football match or
+ prior to a postering. Salopian slang meaning a beating by the school
+ praeposters. Sorry about the Salopian slant to this stage direction - Ed.)
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: Patch 7.2.379
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.379
+Problem: 'eventignore' is set to an invalid value inside ":doau". (Antony
+ Scriven)
+Solution: Don't include the leading comma when the option was empty.
+Files: src/fileio.c
+
+
+*** ../vim-7.2.378/src/fileio.c 2010-01-19 14:59:14.000000000 +0100
+--- src/fileio.c 2010-03-01 21:01:04.000000000 +0100
+***************
+*** 7925,7931 ****
+ new_ei = vim_strnsave(p_ei, (int)(STRLEN(p_ei) + STRLEN(what)));
+ if (new_ei != NULL)
+ {
+! STRCAT(new_ei, what);
+ set_string_option_direct((char_u *)"ei", -1, new_ei,
+ OPT_FREE, SID_NONE);
+ vim_free(new_ei);
+--- 7925,7934 ----
+ new_ei = vim_strnsave(p_ei, (int)(STRLEN(p_ei) + STRLEN(what)));
+ if (new_ei != NULL)
+ {
+! if (*what == ',' && *p_ei == NUL)
+! STRCPY(new_ei, what + 1);
+! else
+! STRCAT(new_ei, what);
+ set_string_option_direct((char_u *)"ei", -1, new_ei,
+ OPT_FREE, SID_NONE);
+ vim_free(new_ei);
+*** ../vim-7.2.378/src/version.c 2010-03-02 12:37:01.000000000 +0100
+--- src/version.c 2010-03-02 12:46:45.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 379,
+ /**/
+
+--
+Back up my hard drive? I can't find the reverse switch!
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: Patch 7.2.380
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.380 (after 7.2.363)
+Problem: Perl interface builds with 5.10.1 but not with 5.10.0.
+Solution: Change the #ifdefs. (Sergey Khorev)
+Files: src/if_perl.xs
+
+
+*** ../vim-7.2.379/src/if_perl.xs 2010-02-17 16:40:47.000000000 +0100
+--- src/if_perl.xs 2010-03-02 15:07:01.000000000 +0100
+***************
+*** 62,67 ****
+--- 62,72 ----
+ # define PERL589_OR_LATER
+ #endif
+
++ #if (PERL_REVISION == 5) && ((PERL_VERSION > 10) || \
++ (PERL_VERSION == 10) && (PERL_SUBVERSION >= 1))
++ # define PERL5101_OR_LATER
++ #endif
++
+ #ifndef pTHX
+ # define pTHX void
+ # define pTHX_
+***************
+*** 93,99 ****
+ # define perl_free dll_perl_free
+ # define Perl_get_context dll_Perl_get_context
+ # define Perl_croak dll_Perl_croak
+! # if (PERL_REVISION == 5) && (PERL_VERSION >= 10)
+ # define Perl_croak_xs_usage dll_Perl_croak_xs_usage
+ # endif
+ # ifndef PROTO
+--- 98,104 ----
+ # define perl_free dll_perl_free
+ # define Perl_get_context dll_Perl_get_context
+ # define Perl_croak dll_Perl_croak
+! # ifdef PERL5101_OR_LATER
+ # define Perl_croak_xs_usage dll_Perl_croak_xs_usage
+ # endif
+ # ifndef PROTO
+***************
+*** 205,211 ****
+ static int (*perl_parse)(PerlInterpreter*, XSINIT_t, int, char**, char**);
+ static void* (*Perl_get_context)(void);
+ static void (*Perl_croak)(pTHX_ const char*, ...);
+! #if (PERL_REVISION == 5) && (PERL_VERSION >= 10)
+ static void (*Perl_croak_xs_usage)(pTHX_ const CV *const, const char *const params);
+ #endif
+ static void (*Perl_croak_nocontext)(const char*, ...);
+--- 210,216 ----
+ static int (*perl_parse)(PerlInterpreter*, XSINIT_t, int, char**, char**);
+ static void* (*Perl_get_context)(void);
+ static void (*Perl_croak)(pTHX_ const char*, ...);
+! #ifdef PERL5101_OR_LATER
+ static void (*Perl_croak_xs_usage)(pTHX_ const CV *const, const char *const params);
+ #endif
+ static void (*Perl_croak_nocontext)(const char*, ...);
+***************
+*** 312,318 ****
+ {"perl_parse", (PERL_PROC*)&perl_parse},
+ {"Perl_get_context", (PERL_PROC*)&Perl_get_context},
+ {"Perl_croak", (PERL_PROC*)&Perl_croak},
+! #if (PERL_REVISION == 5) && (PERL_VERSION >= 10)
+ {"Perl_croak_xs_usage", (PERL_PROC*)&Perl_croak_xs_usage},
+ #endif
+ {"Perl_croak_nocontext", (PERL_PROC*)&Perl_croak_nocontext},
+--- 317,323 ----
+ {"perl_parse", (PERL_PROC*)&perl_parse},
+ {"Perl_get_context", (PERL_PROC*)&Perl_get_context},
+ {"Perl_croak", (PERL_PROC*)&Perl_croak},
+! #ifdef PERL5101_OR_LATER
+ {"Perl_croak_xs_usage", (PERL_PROC*)&Perl_croak_xs_usage},
+ #endif
+ {"Perl_croak_nocontext", (PERL_PROC*)&Perl_croak_nocontext},
+*** ../vim-7.2.379/src/version.c 2010-03-02 12:47:58.000000000 +0100
+--- src/version.c 2010-03-02 15:13:21.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 380,
+ /**/
+
+--
+FATHER: Make sure the Prince doesn't leave this room until I come and
+ get him.
+FIRST GUARD: Not ... to leave the room ... even if you come and get him.
+FATHER: No. Until I come and get him.
+SECOND GUARD: Hic.
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: Patch 7.2.381
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.381
+Problem: No completion for :behave.
+Solution: Add :behave completion. Minor related fixes. (Dominique Pelle)
+Files: src/ex_docmd.c, src/ex_getln.c, src/proto/ex_docmd.pro, src/vim.h
+
+
+*** ../vim-7.2.380/src/ex_docmd.c 2010-02-03 15:14:15.000000000 +0100
+--- src/ex_docmd.c 2010-03-02 15:55:05.000000000 +0100
+***************
+*** 26,35 ****
+ long_u uc_argt; /* The argument type */
+ char_u *uc_rep; /* The command's replacement string */
+ long uc_def; /* The default value for a range/count */
+- scid_T uc_scriptID; /* SID where the command was defined */
+ int uc_compl; /* completion type */
+! # if defined(FEAT_EVAL) && defined(FEAT_CMDL_COMPL)
+ char_u *uc_compl_arg; /* completion argument if any */
+ # endif
+ } ucmd_T;
+
+--- 26,37 ----
+ long_u uc_argt; /* The argument type */
+ char_u *uc_rep; /* The command's replacement string */
+ long uc_def; /* The default value for a range/count */
+ int uc_compl; /* completion type */
+! # ifdef FEAT_EVAL
+! scid_T uc_scriptID; /* SID where the command was defined */
+! # ifdef FEAT_CMDL_COMPL
+ char_u *uc_compl_arg; /* completion argument if any */
++ # endif
+ # endif
+ } ucmd_T;
+
+***************
+*** 3156,3172 ****
+ return NULL;
+ }
+ for (ea.cmdidx = (cmdidx_T)0; (int)ea.cmdidx < (int)CMD_SIZE;
+! ea.cmdidx = (cmdidx_T)((int)ea.cmdidx + 1))
+! if (STRNCMP(cmdnames[(int)ea.cmdidx].cmd_name, cmd, (size_t)len) == 0)
+ break;
+
+ #ifdef FEAT_USR_CMDS
+ if (cmd[0] >= 'A' && cmd[0] <= 'Z')
+- {
+ while (ASCII_ISALNUM(*p) || *p == '*') /* Allow * wild card */
+ ++p;
+- len = (int)(p - cmd);
+- }
+ #endif
+ }
+
+--- 3158,3172 ----
+ return NULL;
+ }
+ for (ea.cmdidx = (cmdidx_T)0; (int)ea.cmdidx < (int)CMD_SIZE;
+! ea.cmdidx = (cmdidx_T)((int)ea.cmdidx + 1))
+! if (STRNCMP(cmdnames[(int)ea.cmdidx].cmd_name, cmd,
+! (size_t)len) == 0)
+ break;
+
+ #ifdef FEAT_USR_CMDS
+ if (cmd[0] >= 'A' && cmd[0] <= 'Z')
+ while (ASCII_ISALNUM(*p) || *p == '*') /* Allow * wild card */
+ ++p;
+ #endif
+ }
+
+***************
+*** 3809,3814 ****
+--- 3809,3817 ----
+ set_context_in_profile_cmd(xp, arg);
+ break;
+ #endif
++ case CMD_behave:
++ xp->xp_context = EXPAND_BEHAVE;
++ break;
+
+ #endif /* FEAT_CMDL_COMPL */
+
+***************
+*** 10847,10852 ****
+--- 10850,10873 ----
+ EMSG2(_(e_invarg2), eap->arg);
+ }
+
++ #if defined(FEAT_CMDL_COMPL) || defined(PROTO)
++ /*
++ * Function given to ExpandGeneric() to obtain the possible arguments of the
++ * ":behave {mswin,xterm}" command.
++ */
++ char_u *
++ get_behave_arg(xp, idx)
++ expand_T *xp UNUSED;
++ int idx;
++ {
++ if (idx == 0)
++ return (char_u *)"mswin";
++ if (idx == 1)
++ return (char_u *)"xterm";
++ return NULL;
++ }
++ #endif
++
+ #ifdef FEAT_AUTOCMD
+ static int filetype_detect = FALSE;
+ static int filetype_plugin = FALSE;
+*** ../vim-7.2.380/src/ex_getln.c 2010-02-03 15:14:15.000000000 +0100
+--- src/ex_getln.c 2010-03-02 15:28:13.000000000 +0100
+***************
+*** 4492,4497 ****
+--- 4492,4498 ----
+ } tab[] =
+ {
+ {EXPAND_COMMANDS, get_command_name, FALSE},
++ {EXPAND_BEHAVE, get_behave_arg, TRUE},
+ #ifdef FEAT_USR_CMDS
+ {EXPAND_USER_COMMANDS, get_user_commands, FALSE},
+ {EXPAND_USER_CMD_FLAGS, get_user_cmd_flags, FALSE},
+*** ../vim-7.2.380/src/proto/ex_docmd.pro 2008-07-04 11:43:13.000000000 +0200
+--- src/proto/ex_docmd.pro 2010-03-02 15:37:37.000000000 +0100
+***************
+*** 52,55 ****
+--- 52,56 ----
+ int put_eol __ARGS((FILE *fd));
+ int put_line __ARGS((FILE *fd, char *s));
+ void dialog_msg __ARGS((char_u *buff, char *format, char_u *fname));
++ char_u *get_behave_arg __ARGS((expand_T *xp, int idx));
+ /* vim: set ft=c : */
+*** ../vim-7.2.380/src/vim.h 2010-02-24 14:46:58.000000000 +0100
+--- src/vim.h 2010-03-02 15:30:13.000000000 +0100
+***************
+*** 595,601 ****
+
+ /*
+ * Terminal highlighting attribute bits.
+! * Attibutes above HL_ALL are used for syntax highlighting.
+ */
+ #define HL_NORMAL 0x00
+ #define HL_INVERSE 0x01
+--- 595,601 ----
+
+ /*
+ * Terminal highlighting attribute bits.
+! * Attributes above HL_ALL are used for syntax highlighting.
+ */
+ #define HL_NORMAL 0x00
+ #define HL_INVERSE 0x01
+***************
+*** 721,726 ****
+--- 721,727 ----
+ #define EXPAND_CSCOPE 33
+ #define EXPAND_SIGN 34
+ #define EXPAND_PROFILE 35
++ #define EXPAND_BEHAVE 36
+
+ /* Values for exmode_active (0 is no exmode) */
+ #define EXMODE_NORMAL 1
+***************
+*** 1262,1268 ****
+ } hlf_T;
+
+ /* The HL_FLAGS must be in the same order as the HLF_ enums!
+! * When chainging this also adjust the default for 'highlight'. */
+ #define HL_FLAGS {'8', '@', 'd', 'e', 'h', 'i', 'l', 'm', 'M', \
+ 'n', 'r', 's', 'S', 'c', 't', 'v', 'V', 'w', 'W', \
+ 'f', 'F', 'A', 'C', 'D', 'T', '>', \
+--- 1263,1269 ----
+ } hlf_T;
+
+ /* The HL_FLAGS must be in the same order as the HLF_ enums!
+! * When changing this also adjust the default for 'highlight'. */
+ #define HL_FLAGS {'8', '@', 'd', 'e', 'h', 'i', 'l', 'm', 'M', \
+ 'n', 'r', 's', 'S', 'c', 't', 'v', 'V', 'w', 'W', \
+ 'f', 'F', 'A', 'C', 'D', 'T', '>', \
+***************
+*** 1430,1436 ****
+ #ifdef FEAT_MBYTE
+ /* We need to call mb_stricmp() even when we aren't dealing with a multi-byte
+ * encoding because mb_stricmp() takes care of all ascii and non-ascii
+! * encodings, including characters with umluats in latin1, etc., while
+ * STRICMP() only handles the system locale version, which often does not
+ * handle non-ascii properly. */
+
+--- 1431,1437 ----
+ #ifdef FEAT_MBYTE
+ /* We need to call mb_stricmp() even when we aren't dealing with a multi-byte
+ * encoding because mb_stricmp() takes care of all ascii and non-ascii
+! * encodings, including characters with umlauts in latin1, etc., while
+ * STRICMP() only handles the system locale version, which often does not
+ * handle non-ascii properly. */
+
+*** ../vim-7.2.380/src/version.c 2010-03-02 15:14:22.000000000 +0100
+--- src/version.c 2010-03-02 15:51:24.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 381,
+ /**/
+
+--
+I'd like to meet the man who invented sex and see what he's working on now.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: Patch 7.2.382
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.382
+Problem: Accessing freed memory when closing the cmdline window when
+ 'bufhide' is set to "wipe".
+Solution: Check if the buffer still exists before invoking close_buffer()
+ (Dominique Pelle)
+Files: src/ex_getln.c
+
+
+*** ../vim-7.2.381/src/ex_getln.c 2010-03-02 15:55:51.000000000 +0100
+--- src/ex_getln.c 2010-03-02 16:29:38.000000000 +0100
+***************
+*** 6252,6258 ****
+ bp = curbuf;
+ win_goto(old_curwin);
+ win_close(wp, TRUE);
+! close_buffer(NULL, bp, DOBUF_WIPE);
+
+ /* Restore window sizes. */
+ win_size_restore(&winsizes);
+--- 6252,6262 ----
+ bp = curbuf;
+ win_goto(old_curwin);
+ win_close(wp, TRUE);
+!
+! /* win_close() may have already wiped the buffer when 'bh' is
+! * set to 'wipe' */
+! if (buf_valid(bp))
+! close_buffer(NULL, bp, DOBUF_WIPE);
+
+ /* Restore window sizes. */
+ win_size_restore(&winsizes);
+*** ../vim-7.2.381/src/version.c 2010-03-02 15:55:51.000000000 +0100
+--- src/version.c 2010-03-02 17:22:11.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 382,
+ /**/
+
+--
+You had connectors? Eeee, when I were a lad we 'ad to carry the
+bits between the computer and the terminal with a spoon...
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: Patch 7.2.383
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.383
+Problem: Vim doesn't build cleanly with MSVC 2010.
+Solution: Change a few types. (George Reilly)
+Files: src/ex_cmds2.c, src/if_python.c, src/syntax.c
+
+
+*** ../vim-7.2.382/src/ex_cmds2.c 2010-02-24 13:59:08.000000000 +0100
+--- src/ex_cmds2.c 2010-03-02 17:42:54.000000000 +0100
+***************
+*** 1165,1171 ****
+ char_u *arg;
+ {
+ char_u *end_subcmd;
+- int len;
+
+ /* Default: expand subcommands. */
+ xp->xp_context = EXPAND_PROFILE;
+--- 1165,1170 ----
+***************
+*** 1176,1183 ****
+ if (*end_subcmd == NUL)
+ return;
+
+! len = end_subcmd - arg;
+! if (len == 5 && STRNCMP(arg, "start", 5) == 0)
+ {
+ xp->xp_context = EXPAND_FILES;
+ xp->xp_pattern = skipwhite(end_subcmd);
+--- 1175,1181 ----
+ if (*end_subcmd == NUL)
+ return;
+
+! if (end_subcmd - arg == 5 && STRNCMP(arg, "start", 5) == 0)
+ {
+ xp->xp_context = EXPAND_FILES;
+ xp->xp_pattern = skipwhite(end_subcmd);
+*** ../vim-7.2.382/src/if_python.c 2009-11-11 15:06:59.000000000 +0100
+--- src/if_python.c 2010-03-02 17:43:39.000000000 +0100
+***************
+*** 2080,2086 ****
+ return -1;
+
+ /* When column is out of range silently correct it. */
+! len = STRLEN(ml_get_buf(this->win->w_buffer, lnum, FALSE));
+ if (col > len)
+ col = len;
+
+--- 2080,2086 ----
+ return -1;
+
+ /* When column is out of range silently correct it. */
+! len = (long)STRLEN(ml_get_buf(this->win->w_buffer, lnum, FALSE));
+ if (col > len)
+ col = len;
+
+*** ../vim-7.2.382/src/syntax.c 2010-02-24 17:22:14.000000000 +0100
+--- src/syntax.c 2010-03-02 17:45:25.000000000 +0100
+***************
+*** 3090,3096 ****
+ {
+ /* a "\n" at the end of the pattern may take us below the last line */
+ result->lnum = syn_buf->b_ml.ml_line_count;
+! col = STRLEN(ml_get_buf(syn_buf, result->lnum, FALSE));
+ }
+ if (off != 0)
+ {
+--- 3090,3096 ----
+ {
+ /* a "\n" at the end of the pattern may take us below the last line */
+ result->lnum = syn_buf->b_ml.ml_line_count;
+! col = (int)STRLEN(ml_get_buf(syn_buf, result->lnum, FALSE));
+ }
+ if (off != 0)
+ {
+*** ../vim-7.2.382/src/version.c 2010-03-02 17:23:10.000000000 +0100
+--- src/version.c 2010-03-02 17:48:50.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 383,
+ /**/
+
+--
+You were lucky to have a LAKE! There were a hundred and sixty of
+us living in a small shoebox in the middle of the road.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: Patch 7.2.384 (extra)
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.384 (extra)
+Problem: Vim doesn't build properly with MSVC 2010.
+Solution: Add the nmake version to the build file. (George Reilly)
+Files: src/Make_mvc.mak, src/testdir/Make_dos.mak
+
+
+*** ../vim-7.2.383/src/Make_mvc.mak 2009-09-11 12:48:56.000000000 +0200
+--- src/Make_mvc.mak 2010-03-02 17:44:22.000000000 +0100
+***************
+*** 361,366 ****
+--- 361,369 ----
+ !if "$(_NMAKE_VER)" == "10.00.20506.01"
+ MSVCVER = 10.0
+ !endif
++ !if "$(_NMAKE_VER)" == "10.00.30128.01"
++ MSVCVER = 10.0
++ !endif
+ !endif
+
+ # Abort bulding VIM if version of VC is unrecognised.
+*** ../vim-7.2.383/src/testdir/Make_dos.mak 2010-01-19 15:51:29.000000000 +0100
+--- src/testdir/Make_dos.mak 2010-03-02 17:45:48.000000000 +0100
+***************
+*** 56,61 ****
+--- 56,62 ----
+ -if exist small.vim del small.vim
+ -if exist tiny.vim del tiny.vim
+ -if exist mbyte.vim del mbyte.vim
++ -if exist mzscheme.vim del mzscheme.vim
+ -del X*
+ -if exist viminfo del viminfo
+
+*** ../vim-7.2.383/src/version.c 2010-03-02 17:50:30.000000000 +0100
+--- src/version.c 2010-03-02 17:59:09.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 384,
+ /**/
+
+--
+Yah, well, we had to carve our electrons out of driftwood we'd
+find. In the winter. Uphill. Both ways.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: Patch 7.2.385
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.385
+Problem: When in the command line window dragging status line only works
+ for last-but-one window. (Jean Johner)
+Solution: Remove the code that disallows this.
+Files: src/ui.c
+
+
+*** ../vim-7.2.384/src/ui.c 2010-01-19 14:59:14.000000000 +0100
+--- src/ui.c 2010-03-02 18:06:30.000000000 +0100
+***************
+*** 2598,2611 ****
+ if (cmdwin_type != 0 && wp != curwin)
+ {
+ /* A click outside the command-line window: Use modeless
+! * selection if possible. Allow dragging the status line of
+! * windows just above the command-line window. */
+! if (wp->w_winrow + wp->w_height
+! != curwin->w_prev->w_winrow + curwin->w_prev->w_height)
+! {
+! on_status_line = 0;
+! dragwin = NULL;
+! }
+ # ifdef FEAT_VERTSPLIT
+ on_sep_line = 0;
+ # endif
+--- 2598,2604 ----
+ if (cmdwin_type != 0 && wp != curwin)
+ {
+ /* A click outside the command-line window: Use modeless
+! * selection if possible. Allow dragging the status lines. */
+ # ifdef FEAT_VERTSPLIT
+ on_sep_line = 0;
+ # endif
+*** ../vim-7.2.384/src/version.c 2010-03-02 17:59:39.000000000 +0100
+--- src/version.c 2010-03-02 18:14:29.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 385,
+ /**/
+
+--
+You were lucky. We lived for three months in a brown paper bag in a
+septic tank. We used to have to get up at six o'clock in the morning,
+clean the bag, eat a crust of stale bread, go to work down mill for
+fourteen hours a day week in-week out. When we got home, our Dad
+would thrash us to sleep with his belt!
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: Patch 7.2.386
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.386
+Problem: Focus hack for KDE 3.1 causes problems for other window managers.
+Solution: Remove the hack. (forwarded by Joel Bradshaw)
+Files: src/gui_gtk.c
+
+
+*** ../vim-7.2.385/src/gui_gtk.c 2009-05-17 16:23:20.000000000 +0200
+--- src/gui_gtk.c 2010-03-10 12:07:59.000000000 +0100
+***************
+*** 2313,2331 ****
+ gtk_widget_destroy(dialog);
+ }
+
+- /* Terrible hack: When the text area still has focus when we remove the
+- * dialog, somehow gvim loses window focus. This is with "point to type"
+- * in the KDE 3.1 window manager. Warp the mouse pointer to outside the
+- * window and back to avoid that. */
+- if (!gui.in_focus)
+- {
+- int x, y;
+-
+- gdk_window_get_pointer(gui.drawarea->window, &x, &y, NULL);
+- gui_mch_setmouse(-100, -100);
+- gui_mch_setmouse(x, y);
+- }
+-
+ return response > 0 ? response : 0;
+ }
+
+--- 2313,2318 ----
+*** ../vim-7.2.385/src/version.c 2010-03-02 18:15:47.000000000 +0100
+--- src/version.c 2010-03-10 12:09:00.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 386,
+ /**/
+
+--
+ARTHUR: Well, I AM king...
+DENNIS: Oh king, eh, very nice. An' how'd you get that, eh? By exploitin'
+ the workers -- by 'angin' on to outdated imperialist dogma which
+ perpetuates the economic an' social differences in our society! If
+ there's ever going to be any progress--
+ The Quest for the Holy Grail (Monty Python)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: Patch 7.2.387
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.387
+Problem: Ruby with MingW still doesn't build all versions.
+Solution: More #ifdefs for the Ruby code. (Sergey Khorev)
+Files: src/if_ruby.c
+
+
+*** ../vim-7.2.386/src/if_ruby.c 2010-02-24 15:47:58.000000000 +0100
+--- src/if_ruby.c 2010-03-10 12:40:30.000000000 +0100
+***************
+*** 39,46 ****
+ # define rb_cTrueClass (*dll_rb_cTrueClass)
+ # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
+ /*
+! * On ver 1.8, all Ruby functions are exported with "__declspce(dllimport)"
+! * in ruby.h. But it cause trouble for these variables, because it is
+ * defined in this file. When defined this RUBY_EXPORT it modified to
+ * "extern" and be able to avoid this problem.
+ */
+--- 39,46 ----
+ # define rb_cTrueClass (*dll_rb_cTrueClass)
+ # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
+ /*
+! * On ver 1.8, all Ruby functions are exported with "__declspec(dllimport)"
+! * in ruby.h. But it causes trouble for these variables, because it is
+ * defined in this file. When defined this RUBY_EXPORT it modified to
+ * "extern" and be able to avoid this problem.
+ */
+***************
+*** 53,58 ****
+--- 53,65 ----
+ # undef _WIN32_WINNT
+ #endif
+
++ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 19
++ /* Ruby 1.9 defines a number of static functions which use rb_num2long and
++ * rb_int2big */
++ # define rb_num2long rb_num2long_stub
++ # define rb_int2big rb_int2big_stub
++ #endif
++
+ #include <ruby.h>
+ #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
+ # include <ruby/encoding.h>
+***************
+*** 159,165 ****
+ #define rb_str_concat dll_rb_str_concat
+ #define rb_str_new dll_rb_str_new
+ #define rb_str_new2 dll_rb_str_new2
+! #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
+ # define rb_errinfo dll_rb_errinfo
+ #else
+ # define ruby_errinfo (*dll_ruby_errinfo)
+--- 166,179 ----
+ #define rb_str_concat dll_rb_str_concat
+ #define rb_str_new dll_rb_str_new
+ #define rb_str_new2 dll_rb_str_new2
+! #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
+! # define rb_string_value_ptr dll_rb_string_value_ptr
+! # define rb_float_new dll_rb_float_new
+! # define rb_ary_new dll_rb_ary_new
+! # define rb_ary_push dll_rb_ary_push
+! #endif
+! #if defined(RUBY_VERSION) && RUBY_VERSION >= 19 \
+! || defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 19
+ # define rb_errinfo dll_rb_errinfo
+ #else
+ # define ruby_errinfo (*dll_ruby_errinfo)
+***************
+*** 226,232 ****
+ static VALUE (*dll_rb_str_concat) (VALUE, VALUE);
+ static VALUE (*dll_rb_str_new) (const char*, long);
+ static VALUE (*dll_rb_str_new2) (const char*);
+! #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
+ static VALUE (*dll_rb_errinfo) (void);
+ #else
+ static VALUE *dll_ruby_errinfo;
+--- 240,247 ----
+ static VALUE (*dll_rb_str_concat) (VALUE, VALUE);
+ static VALUE (*dll_rb_str_new) (const char*, long);
+ static VALUE (*dll_rb_str_new2) (const char*);
+! #if defined(RUBY_VERSION) && RUBY_VERSION >= 19 \
+! || defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 19
+ static VALUE (*dll_rb_errinfo) (void);
+ #else
+ static VALUE *dll_ruby_errinfo;
+***************
+*** 235,240 ****
+--- 250,264 ----
+ static void (*dll_ruby_init_loadpath) (void);
+ static void (*dll_NtInitialize) (int*, char***);
+ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
++ static char * (*dll_rb_string_value_ptr) (volatile VALUE*);
++ static VALUE (*dll_rb_float_new) (double);
++ static VALUE (*dll_rb_ary_new) (void);
++ static VALUE (*dll_rb_ary_push) (VALUE, VALUE);
++ #endif
++ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 19
++ static VALUE (*dll_rb_int2big)(SIGNED_VALUE);
++ #endif
++ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
+ static int (*dll_rb_w32_snprintf)(char*, size_t, const char*, ...);
+ #endif
+
+***************
+*** 246,251 ****
+--- 270,286 ----
+ static VALUE (*dll_rb_sprintf) (const char*, ...);
+ #endif
+
++ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 19
++ static SIGNED_VALUE rb_num2long_stub(VALUE x)
++ {
++ return dll_rb_num2long(x);
++ }
++ static VALUE rb_int2big_stub(SIGNED_VALUE x)
++ {
++ return dll_rb_int2big(x);
++ }
++ #endif
++
+ static HINSTANCE hinstRuby = 0; /* Instance of ruby.dll */
+
+ /*
+***************
+*** 301,317 ****
+ {"rb_str_concat", (RUBY_PROC*)&dll_rb_str_concat},
+ {"rb_str_new", (RUBY_PROC*)&dll_rb_str_new},
+ {"rb_str_new2", (RUBY_PROC*)&dll_rb_str_new2},
+! #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
+ {"rb_errinfo", (RUBY_PROC*)&dll_rb_errinfo},
+ #else
+ {"ruby_errinfo", (RUBY_PROC*)&dll_ruby_errinfo},
+ #endif
+ {"ruby_init", (RUBY_PROC*)&dll_ruby_init},
+ {"ruby_init_loadpath", (RUBY_PROC*)&dll_ruby_init_loadpath},
+! {"NtInitialize", (RUBY_PROC*)&dll_NtInitialize},
+ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
+ {"rb_w32_snprintf", (RUBY_PROC*)&dll_rb_w32_snprintf},
+ #endif
+ #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
+ {"ruby_script", (RUBY_PROC*)&dll_ruby_script},
+ {"rb_enc_find_index", (RUBY_PROC*)&dll_rb_enc_find_index},
+--- 336,368 ----
+ {"rb_str_concat", (RUBY_PROC*)&dll_rb_str_concat},
+ {"rb_str_new", (RUBY_PROC*)&dll_rb_str_new},
+ {"rb_str_new2", (RUBY_PROC*)&dll_rb_str_new2},
+! #if defined(RUBY_VERSION) && RUBY_VERSION >= 19 \
+! || defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 19
+ {"rb_errinfo", (RUBY_PROC*)&dll_rb_errinfo},
+ #else
+ {"ruby_errinfo", (RUBY_PROC*)&dll_ruby_errinfo},
+ #endif
+ {"ruby_init", (RUBY_PROC*)&dll_ruby_init},
+ {"ruby_init_loadpath", (RUBY_PROC*)&dll_ruby_init_loadpath},
+! {
+! #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER < 19
+! "NtInitialize",
+! #else
+! "ruby_sysinit",
+! #endif
+! (RUBY_PROC*)&dll_NtInitialize},
+ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
+ {"rb_w32_snprintf", (RUBY_PROC*)&dll_rb_w32_snprintf},
+ #endif
++ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
++ {"rb_string_value_ptr", (RUBY_PROC*)&dll_rb_string_value_ptr},
++ {"rb_float_new", (RUBY_PROC*)&dll_rb_float_new},
++ {"rb_ary_new", (RUBY_PROC*)&dll_rb_ary_new},
++ {"rb_ary_push", (RUBY_PROC*)&dll_rb_ary_push},
++ #endif
++ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 19
++ {"rb_int2big", (RUBY_PROC*)&dll_rb_int2big},
++ #endif
+ #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
+ {"ruby_script", (RUBY_PROC*)&dll_ruby_script},
+ {"rb_enc_find_index", (RUBY_PROC*)&dll_rb_enc_find_index},
+***************
+*** 569,575 ****
+ static void error_print(int state)
+ {
+ #ifndef DYNAMIC_RUBY
+! #if !(defined(RUBY_VERSION) && RUBY_VERSION >= 19)
+ RUBYEXTERN VALUE ruby_errinfo;
+ #endif
+ #endif
+--- 620,627 ----
+ static void error_print(int state)
+ {
+ #ifndef DYNAMIC_RUBY
+! #if !(defined(RUBY_VERSION) && RUBY_VERSION >= 19) \
+! && !(defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 19)
+ RUBYEXTERN VALUE ruby_errinfo;
+ #endif
+ #endif
+***************
+*** 605,611 ****
+ break;
+ case TAG_RAISE:
+ case TAG_FATAL:
+! #if defined(RUBY_VERSION) && RUBY_VERSION >= 19
+ eclass = CLASS_OF(rb_errinfo());
+ einfo = rb_obj_as_string(rb_errinfo());
+ #else
+--- 657,664 ----
+ break;
+ case TAG_RAISE:
+ case TAG_FATAL:
+! #if defined(RUBY_VERSION) && RUBY_VERSION >= 19 \
+! || defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 19
+ eclass = CLASS_OF(rb_errinfo());
+ einfo = rb_obj_as_string(rb_errinfo());
+ #else
+*** ../vim-7.2.386/src/version.c 2010-03-10 12:24:44.000000000 +0100
+--- src/version.c 2010-03-10 12:45:55.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 387,
+ /**/
+
+--
+Vim is like Emacs without all the typing. (John "Johann" Spetz)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: Patch 7.2.388 (extra)
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.388 (extra part of 7.2.387)
+Problem: Ruby with MingW still doesn't build all versions.
+Solution: Different approach to build file. (Sergey Khorev)
+Files: src/Make_ming.mak
+
+
+*** ../vim-7.2.387/src/Make_ming.mak 2010-02-26 22:05:17.000000000 +0100
+--- src/Make_ming.mak 2010-03-10 12:34:25.000000000 +0100
+***************
+*** 212,234 ****
+ RUBY_VER_LONG = 1.6
+ endif
+
+- ifeq ($(RUBY_VER), 16)
+ ifndef RUBY_PLATFORM
+ RUBY_PLATFORM = i586-mswin32
+! endif
+! ifndef RUBY_INSTALL_NAME
+! RUBY_INSTALL_NAME = mswin32-ruby$(RUBY_VER)
+! endif
+ else
+- ifndef RUBY_PLATFORM
+ RUBY_PLATFORM = i386-mswin32
+ endif
+ ifndef RUBY_INSTALL_NAME
+ RUBY_INSTALL_NAME = msvcrt-ruby$(RUBY_VER)
+ endif
+ endif
+
+! RUBYINC =-I $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/$(RUBY_PLATFORM)
+ ifeq (no, $(DYNAMIC_RUBY))
+ RUBYLIB = -L$(RUBY)/lib -l$(RUBY_INSTALL_NAME)
+ endif
+--- 212,236 ----
+ RUBY_VER_LONG = 1.6
+ endif
+
+ ifndef RUBY_PLATFORM
++ ifeq ($(RUBY_VER), 16)
+ RUBY_PLATFORM = i586-mswin32
+! else ifneq ("X$(wildcard, $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/i386-mingw32)", X)
+! RUBY_PLATFORM = i386-mingw32
+ else
+ RUBY_PLATFORM = i386-mswin32
+ endif
++ endif
++
+ ifndef RUBY_INSTALL_NAME
++ ifeq ($(RUBY_VER), 16)
++ RUBY_INSTALL_NAME = mswin32-ruby$(RUBY_VER)
++ else
+ RUBY_INSTALL_NAME = msvcrt-ruby$(RUBY_VER)
+ endif
+ endif
+
+! RUBYINC =-I $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/$(RUBY_PLATFORM) -I $(RUBY)/include/ruby-$(RUBY_VER_LONG) -I $(RUBY)/include/ruby-$(RUBY_VER_LONG)/$(RUBY_PLATFORM)
+ ifeq (no, $(DYNAMIC_RUBY))
+ RUBYLIB = -L$(RUBY)/lib -l$(RUBY_INSTALL_NAME)
+ endif
+*** ../vim-7.2.387/src/version.c 2010-03-10 12:46:38.000000000 +0100
+--- src/version.c 2010-03-10 13:18:38.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 388,
+ /**/
+
+--
+Q: Is selling software the same as selling hardware?
+A: No, good hardware is sold new, good software has already been used by many.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: Patch 7.2.389
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.389
+Problem: synIDattr() cannot return the font.
+Solution: Support the "font" argument. (Christian Brabandt)
+Files: runtime/doc/eval.txt, src/eval.c, src/syntax.c
+
+
+*** ../vim-7.2.388/runtime/doc/eval.txt 2010-01-19 15:51:29.000000000 +0100
+--- runtime/doc/eval.txt 2010-03-10 12:52:12.000000000 +0100
+***************
+*** 5370,5375 ****
+--- 5388,5395 ----
+ the color, cterm: color number as a string,
+ term: empty string)
+ "bg" background color (as with "fg")
++ "font" font name (only available in the GUI)
++ |highlight-font|
+ "sp" special color (as with "fg") |highlight-guisp|
+ "fg#" like "fg", but for the GUI and the GUI is
+ running the name in "#RRGGBB" form
+***************
+*** 5379,5384 ****
+--- 5399,5405 ----
+ "italic" "1" if italic
+ "reverse" "1" if reverse
+ "inverse" "1" if inverse (= reverse)
++ "standout" "1" if standout
+ "underline" "1" if underlined
+ "undercurl" "1" if undercurled
+
+*** ../vim-7.2.388/src/eval.c 2010-02-24 15:47:58.000000000 +0100
+--- src/eval.c 2010-03-10 12:54:27.000000000 +0100
+***************
+*** 16627,16633 ****
+ p = highlight_has_attr(id, HL_BOLD, modec);
+ break;
+
+! case 'f': /* fg[#] */
+ p = highlight_color(id, what, modec);
+ break;
+
+--- 16627,16633 ----
+ p = highlight_has_attr(id, HL_BOLD, modec);
+ break;
+
+! case 'f': /* fg[#] or font */
+ p = highlight_color(id, what, modec);
+ break;
+
+*** ../vim-7.2.388/src/syntax.c 2010-03-02 17:50:30.000000000 +0100
+--- src/syntax.c 2010-03-10 13:05:39.000000000 +0100
+***************
+*** 8326,8332 ****
+ char_u *
+ highlight_color(id, what, modec)
+ int id;
+! char_u *what; /* "fg", "bg", "sp", "fg#", "bg#" or "sp#" */
+ int modec; /* 'g' for GUI, 'c' for cterm, 't' for term */
+ {
+ static char_u name[20];
+--- 8326,8332 ----
+ char_u *
+ highlight_color(id, what, modec)
+ int id;
+! char_u *what; /* "font", "fg", "bg", "sp", "fg#", "bg#" or "sp#" */
+ int modec; /* 'g' for GUI, 'c' for cterm, 't' for term */
+ {
+ static char_u name[20];
+***************
+*** 8334,8353 ****
+ int fg = FALSE;
+ # ifdef FEAT_GUI
+ int sp = FALSE;
+ # endif
+
+ if (id <= 0 || id > highlight_ga.ga_len)
+ return NULL;
+
+! if (TOLOWER_ASC(what[0]) == 'f')
+ fg = TRUE;
+ # ifdef FEAT_GUI
+! else if (TOLOWER_ASC(what[0]) == 's')
+ sp = TRUE;
+ if (modec == 'g')
+ {
+ /* return #RRGGBB form (only possible when GUI is running) */
+! if (gui.in_use && what[1] && what[2] == '#')
+ {
+ guicolor_T color;
+ long_u rgb;
+--- 8334,8363 ----
+ int fg = FALSE;
+ # ifdef FEAT_GUI
+ int sp = FALSE;
++ int font = FALSE;
+ # endif
+
+ if (id <= 0 || id > highlight_ga.ga_len)
+ return NULL;
+
+! if (TOLOWER_ASC(what[0]) == 'f' && TOLOWER_ASC(what[1]) == 'g')
+ fg = TRUE;
+ # ifdef FEAT_GUI
+! else if (TOLOWER_ASC(what[0]) == 'f' && TOLOWER_ASC(what[1]) == 'o'
+! && TOLOWER_ASC(what[2]) == 'n' && TOLOWER_ASC(what[3]) == 't')
+! font = TRUE;
+! else if (TOLOWER_ASC(what[0]) == 's' && TOLOWER_ASC(what[1]) == 'p')
+ sp = TRUE;
++ else if (!(TOLOWER_ASC(what[0]) == 'b' && TOLOWER_ASC(what[1]) == 'g'))
++ return NULL;
+ if (modec == 'g')
+ {
++ /* return font name */
++ if (font)
++ return HL_TABLE()[id - 1].sg_font_name;
++
+ /* return #RRGGBB form (only possible when GUI is running) */
+! if (gui.in_use && what[2] == '#')
+ {
+ guicolor_T color;
+ long_u rgb;
+***************
+*** 8374,8379 ****
+--- 8384,8391 ----
+ return (HL_TABLE()[id - 1].sg_gui_sp_name);
+ return (HL_TABLE()[id - 1].sg_gui_bg_name);
+ }
++ if (font || sp)
++ return NULL;
+ # endif
+ if (modec == 'c')
+ {
+*** ../vim-7.2.388/src/version.c 2010-03-10 13:19:28.000000000 +0100
+--- src/version.c 2010-03-10 13:33:25.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 389,
+ /**/
+
+--
+WOMAN: Dennis, there's some lovely filth down here. Oh -- how d'you do?
+ARTHUR: How do you do, good lady. I am Arthur, King of the Britons.
+ Who's castle is that?
+WOMAN: King of the who?
+ The Quest for the Holy Grail (Monty Python)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: Patch 7.2.390
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.390
+Problem: In some situations the popup menu can be displayed wrong.
+Solution: Remove the popup menu if the cursor moved. (Lech Lorens)
+Files: src/edit.c
+
+
+*** ../vim-7.2.389/src/edit.c 2010-01-19 14:59:14.000000000 +0100
+--- src/edit.c 2010-03-10 14:09:56.000000000 +0100
+***************
+*** 4684,4689 ****
+--- 4684,4690 ----
+ int startcol = 0; /* column where searched text starts */
+ colnr_T curs_col; /* cursor column */
+ int n;
++ int save_w_wrow;
+
+ compl_direction = ins_compl_key2dir(c);
+ if (!compl_started)
+***************
+*** 5067,5072 ****
+--- 5068,5074 ----
+ /*
+ * Find next match (and following matches).
+ */
++ save_w_wrow = curwin->w_wrow;
+ n = ins_compl_next(TRUE, ins_compl_key2count(c), ins_compl_use_match(c));
+
+ /* may undisplay the popup menu */
+***************
+*** 5220,5225 ****
+--- 5222,5233 ----
+ /* RedrawingDisabled may be set when invoked through complete(). */
+ n = RedrawingDisabled;
+ RedrawingDisabled = 0;
++
++ /* If the cursor moved we need to remove the pum first. */
++ setcursor();
++ if (save_w_wrow != curwin->w_wrow)
++ ins_compl_del_pum();
++
+ ins_compl_show_pum();
+ setcursor();
+ RedrawingDisabled = n;
+*** ../vim-7.2.389/src/version.c 2010-03-10 13:43:22.000000000 +0100
+--- src/version.c 2010-03-10 14:13:55.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 390,
+ /**/
+
+--
+`When any government, or any church for that matter, undertakes to say to
+ its subjects, "This you may not read, this you must not see, this you are
+ forbidden to know," the end result is tyranny and oppression no matter how
+ holy the motives' -- Robert A Heinlein, "If this goes on --"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: Patch 7.2.391
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.391
+Problem: Internal alloc(0) error when doing "CTRL-V $ c". (Martti Kuparinen)
+Solution: Fix computations in getvcol(). (partly by Lech Lorens)
+Files: src/charset.c, src/memline.c
+
+
+*** ../vim-7.2.390/src/charset.c 2009-11-03 16:03:59.000000000 +0100
+--- src/charset.c 2010-03-10 14:38:14.000000000 +0100
+***************
+*** 1255,1261 ****
+
+ vcol = 0;
+ ptr = ml_get_buf(wp->w_buffer, pos->lnum, FALSE);
+! posptr = ptr + pos->col;
+
+ /*
+ * This function is used very often, do some speed optimizations.
+--- 1255,1264 ----
+
+ vcol = 0;
+ ptr = ml_get_buf(wp->w_buffer, pos->lnum, FALSE);
+! if (pos->col == MAXCOL)
+! posptr = NULL; /* continue until the NUL */
+! else
+! posptr = ptr + pos->col;
+
+ /*
+ * This function is used very often, do some speed optimizations.
+***************
+*** 1313,1319 ****
+ incr = CHARSIZE(c);
+ }
+
+! if (ptr >= posptr) /* character at pos->col */
+ break;
+
+ vcol += incr;
+--- 1316,1322 ----
+ incr = CHARSIZE(c);
+ }
+
+! if (posptr != NULL && ptr >= posptr) /* character at pos->col */
+ break;
+
+ vcol += incr;
+***************
+*** 1334,1340 ****
+ break;
+ }
+
+! if (ptr >= posptr) /* character at pos->col */
+ break;
+
+ vcol += incr;
+--- 1337,1343 ----
+ break;
+ }
+
+! if (posptr != NULL && ptr >= posptr) /* character at pos->col */
+ break;
+
+ vcol += incr;
+*** ../vim-7.2.390/src/memline.c 2010-02-11 18:54:38.000000000 +0100
+--- src/memline.c 2010-03-10 14:38:25.000000000 +0100
+***************
+*** 2113,2124 ****
+ if (buf->b_ml.ml_mfp == NULL) /* there are no lines */
+ return (char_u *)"";
+
+! /*
+! * See if it is the same line as requested last time.
+! * Otherwise may need to flush last used line.
+! * Don't use the last used line when 'swapfile' is reset, need to load all
+! * blocks.
+! */
+ if (buf->b_ml.ml_line_lnum != lnum || mf_dont_release)
+ {
+ ml_flush_line(buf);
+--- 2113,2124 ----
+ if (buf->b_ml.ml_mfp == NULL) /* there are no lines */
+ return (char_u *)"";
+
+! /*
+! * See if it is the same line as requested last time.
+! * Otherwise may need to flush last used line.
+! * Don't use the last used line when 'swapfile' is reset, need to load all
+! * blocks.
+! */
+ if (buf->b_ml.ml_line_lnum != lnum || mf_dont_release)
+ {
+ ml_flush_line(buf);
+*** ../vim-7.2.390/src/version.c 2010-03-10 14:15:28.000000000 +0100
+--- src/version.c 2010-03-10 14:31:02.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 391,
+ /**/
+
+--
+WOMAN: King of the who?
+ARTHUR: The Britons.
+WOMAN: Who are the Britons?
+ARTHUR: Well, we all are. we're all Britons and I am your king.
+ The Quest for the Holy Grail (Monty Python)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: Patch 7.2.392
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.392
+Problem: Netbeans hangs reading from a socket at the maximum block size.
+Solution: Use select() or poll(). (Xavier de Gaye)
+Files: src/vim.h, src/os_unixx.h, src/if_xcmdsrv.c, src/netbeans.c
+
+
+*** ../vim-7.2.391/src/vim.h 2010-03-02 15:55:51.000000000 +0100
+--- src/vim.h 2010-03-10 15:14:03.000000000 +0100
+***************
+*** 477,482 ****
+--- 477,499 ----
+ # include <stdarg.h>
+ #endif
+
++ # if defined(HAVE_SYS_SELECT_H) && \
++ (!defined(HAVE_SYS_TIME_H) || defined(SYS_SELECT_WITH_SYS_TIME))
++ # include <sys/select.h>
++ # endif
++
++ # ifndef HAVE_SELECT
++ # ifdef HAVE_SYS_POLL_H
++ # include <sys/poll.h>
++ # define HAVE_POLL
++ # else
++ # ifdef HAVE_POLL_H
++ # include <poll.h>
++ # define HAVE_POLL
++ # endif
++ # endif
++ # endif
++
+ /* ================ end of the header file puzzle =============== */
+
+ /*
+*** ../vim-7.2.391/src/os_unixx.h 2006-03-25 22:48:00.000000000 +0100
+--- src/os_unixx.h 2010-03-10 15:14:49.000000000 +0100
+***************
+*** 28,38 ****
+ # include <sys/wait.h>
+ # endif
+
+- # if defined(HAVE_SYS_SELECT_H) && \
+- (!defined(HAVE_SYS_TIME_H) || defined(SYS_SELECT_WITH_SYS_TIME))
+- # include <sys/select.h>
+- # endif
+-
+ # ifndef WEXITSTATUS
+ # ifdef HAVE_UNION_WAIT
+ # define WEXITSTATUS(stat_val) ((stat_val).w_T.w_Retcode)
+--- 28,33 ----
+***************
+*** 65,80 ****
+ # include <string.h>
+ #endif
+
+- #ifndef HAVE_SELECT
+- # ifdef HAVE_SYS_POLL_H
+- # include <sys/poll.h>
+- # else
+- # ifdef HAVE_POLL_H
+- # include <poll.h>
+- # endif
+- # endif
+- #endif
+-
+ #ifdef HAVE_SYS_STREAM_H
+ # include <sys/stream.h>
+ #endif
+--- 60,65 ----
+*** ../vim-7.2.391/src/if_xcmdsrv.c 2009-05-16 17:29:37.000000000 +0200
+--- src/if_xcmdsrv.c 2010-03-10 15:14:09.000000000 +0100
+***************
+*** 21,41 ****
+ # include <X11/Xatom.h>
+ # endif
+
+- # if defined(HAVE_SYS_SELECT_H) && \
+- (!defined(HAVE_SYS_TIME_H) || defined(SYS_SELECT_WITH_SYS_TIME))
+- # include <sys/select.h>
+- # endif
+-
+- # ifndef HAVE_SELECT
+- # ifdef HAVE_SYS_POLL_H
+- # include <sys/poll.h>
+- # else
+- # ifdef HAVE_POLL_H
+- # include <poll.h>
+- # endif
+- # endif
+- # endif
+-
+ /*
+ * This file provides procedures that implement the command server
+ * functionality of Vim when in contact with an X11 server.
+--- 21,26 ----
+*** ../vim-7.2.391/src/netbeans.c 2010-01-19 15:12:33.000000000 +0100
+--- src/netbeans.c 2010-03-10 15:21:37.000000000 +0100
+***************
+*** 736,741 ****
+--- 736,749 ----
+ #ifndef FEAT_GUI_GTK
+ static int level = 0;
+ #endif
++ #ifdef HAVE_SELECT
++ struct timeval tval;
++ fd_set rfds;
++ #else
++ # ifdef HAVE_POLL
++ struct pollfd fds;
++ # endif
++ #endif
+
+ if (sd < 0)
+ {
+***************
+*** 755,763 ****
+ return; /* out of memory! */
+ }
+
+! /* Keep on reading for as long as there is something to read. */
+ for (;;)
+ {
+ len = sock_read(sd, buf, MAXMSGSIZE);
+ if (len <= 0)
+ break; /* error or nothing more to read */
+--- 763,788 ----
+ return; /* out of memory! */
+ }
+
+! /* Keep on reading for as long as there is something to read.
+! * Use select() or poll() to avoid blocking on a message that is exactly
+! * MAXMSGSIZE long. */
+ for (;;)
+ {
++ #ifdef HAVE_SELECT
++ FD_ZERO(&rfds);
++ FD_SET(sd, &rfds);
++ tval.tv_sec = 0;
++ tval.tv_usec = 0;
++ if (select(sd + 1, &rfds, NULL, NULL, &tval) <= 0)
++ break;
++ #else
++ # ifdef HAVE_POLL
++ fds.fd = sd;
++ fds.events = POLLIN;
++ if (poll(&fds, 1, 0) <= 0)
++ break;
++ # endif
++ #endif
+ len = sock_read(sd, buf, MAXMSGSIZE);
+ if (len <= 0)
+ break; /* error or nothing more to read */
+*** ../vim-7.2.391/src/version.c 2010-03-10 14:46:21.000000000 +0100
+--- src/version.c 2010-03-10 16:10:48.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 392,
+ /**/
+
+--
+WOMAN: I didn't know we had a king. I thought we were an autonomous
+ collective.
+DENNIS: You're fooling yourself. We're living in a dictatorship. A
+ self-perpetuating autocracy in which the working classes--
+WOMAN: Oh there you go, bringing class into it again.
+DENNIS: That's what it's all about if only people would--
+ The Quest for the Holy Grail (Monty Python)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: Patch 7.2.393
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.393
+Problem: Mac: Can't build with different Xcode developer tools directory.
+Solution: make "Developer" directory name configurable. (Rainer Muller)
+Files: src/configure.in, src/auto/configure
+
+
+*** ../vim-7.2.392/src/configure.in 2010-02-24 14:46:58.000000000 +0100
+--- src/configure.in 2010-03-10 16:16:48.000000000 +0100
+***************
+*** 116,121 ****
+--- 116,137 ----
+ MACARCH="$withval"; AC_MSG_RESULT($MACARCH),
+ MACARCH="current"; AC_MSG_RESULT(defaulting to $MACARCH))
+
++ AC_MSG_CHECKING(--with-developer-dir argument)
++ AC_ARG_WITH(developer-dir, [ --with-developer-dir=PATH use PATH as location for Xcode developer tools],
++ DEVELOPER_DIR="$withval"; AC_MSG_RESULT($DEVELOPER_DIR),
++ DEVELOPER_DIR=""; AC_MSG_RESULT(not present))
++
++ if test "x$DEVELOPER_DIR" = "x"; then
++ AC_PATH_PROG(XCODE_SELECT, xcode-select)
++ if test "x$XCODE_SELECT" != "x"; then
++ AC_MSG_CHECKING(for developer dir using xcode-select)
++ DEVELOPER_DIR=`$XCODE_SELECT -print-path`
++ AC_MSG_RESULT([$DEVELOPER_DIR])
++ else
++ DEVELOPER_DIR=/Developer
++ fi
++ fi
++
+ if test "x$MACARCH" = "xboth"; then
+ AC_MSG_CHECKING(for 10.4 universal SDK)
+ dnl There is a terrible inconsistency (but we appear to get away with it):
+***************
+*** 127,133 ****
+ save_cppflags="$CPPFLAGS"
+ save_cflags="$CFLAGS"
+ save_ldflags="$LDFLAGS"
+! CFLAGS="$CFLAGS -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
+ AC_TRY_LINK([ ], [ ],
+ AC_MSG_RESULT(found, will make universal binary),
+
+--- 143,149 ----
+ save_cppflags="$CPPFLAGS"
+ save_cflags="$CFLAGS"
+ save_ldflags="$LDFLAGS"
+! CFLAGS="$CFLAGS -isysroot $DEVELOPER_DIR/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
+ AC_TRY_LINK([ ], [ ],
+ AC_MSG_RESULT(found, will make universal binary),
+
+***************
+*** 157,165 ****
+ dnl TODO: use -arch i386 on Intel machines
+ CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX -no-cpp-precomp"
+ if test "x$MACARCH" = "xboth"; then
+! CPPFLAGS="$CPPFLAGS -I/Developer/SDKs/MacOSX10.4u.sdk/Developer/Headers/FlatCarbon"
+ else
+! CPPFLAGS="$CPPFLAGS -I/Developer/Headers/FlatCarbon"
+ fi
+
+ dnl If Carbon is found, assume we don't want X11
+--- 173,181 ----
+ dnl TODO: use -arch i386 on Intel machines
+ CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX -no-cpp-precomp"
+ if test "x$MACARCH" = "xboth"; then
+! CPPFLAGS="$CPPFLAGS -I$DEVELOPER_DIR/SDKs/MacOSX10.4u.sdk/Developer/Headers/FlatCarbon"
+ else
+! CPPFLAGS="$CPPFLAGS -I$DEVELOPER_DIR/Headers/FlatCarbon"
+ fi
+
+ dnl If Carbon is found, assume we don't want X11
+***************
+*** 3233,3239 ****
+ fi
+ fi
+ if test "x$MACARCH" = "xboth"; then
+! LDFLAGS="$LDFLAGS -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
+ fi
+
+ dnl gcc 3.1 changed the meaning of -MM. The only solution appears to be to
+--- 3249,3255 ----
+ fi
+ fi
+ if test "x$MACARCH" = "xboth"; then
+! LDFLAGS="$LDFLAGS -isysroot $DEVELOPER_DIR/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
+ fi
+
+ dnl gcc 3.1 changed the meaning of -MM. The only solution appears to be to
+*** ../vim-7.2.392/src/auto/configure 2010-02-24 14:46:58.000000000 +0100
+--- src/auto/configure 2010-03-10 16:19:47.000000000 +0100
+***************
+*** 718,723 ****
+--- 718,724 ----
+ VIMNAME
+ OS_EXTRA_OBJ
+ OS_EXTRA_SRC
++ XCODE_SELECT
+ CPP_MM
+ STRIP
+ AWK
+***************
+*** 774,779 ****
+--- 775,781 ----
+ enable_option_checking
+ enable_darwin
+ with_mac_arch
++ with_developer_dir
+ with_local_dir
+ with_vim_name
+ with_ex_name
+***************
+*** 1492,1497 ****
+--- 1494,1500 ----
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --with-mac-arch=ARCH current, intel, ppc or both
++ --with-developer-dir=PATH use PATH as location for Xcode developer tools
+ --with-local-dir=PATH search PATH instead of /usr/local for local libraries.
+ --without-local-dir do not search /usr/local for local libraries.
+ --with-vim-name=NAME what to call the Vim executable
+***************
+*** 3833,3845 ****
+ fi
+
+
+ if test "x$MACARCH" = "xboth"; then
+ { $as_echo "$as_me:$LINENO: checking for 10.4 universal SDK" >&5
+ $as_echo_n "checking for 10.4 universal SDK... " >&6; }
+ save_cppflags="$CPPFLAGS"
+ save_cflags="$CFLAGS"
+ save_ldflags="$LDFLAGS"
+! CFLAGS="$CFLAGS -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h. */
+ _ACEOF
+--- 3836,3913 ----
+ fi
+
+
++ { $as_echo "$as_me:$LINENO: checking --with-developer-dir argument" >&5
++ $as_echo_n "checking --with-developer-dir argument... " >&6; }
++
++ # Check whether --with-developer-dir was given.
++ if test "${with_developer_dir+set}" = set; then
++ withval=$with_developer_dir; DEVELOPER_DIR="$withval"; { $as_echo "$as_me:$LINENO: result: $DEVELOPER_DIR" >&5
++ $as_echo "$DEVELOPER_DIR" >&6; }
++ else
++ DEVELOPER_DIR=""; { $as_echo "$as_me:$LINENO: result: not present" >&5
++ $as_echo "not present" >&6; }
++ fi
++
++
++ if test "x$DEVELOPER_DIR" = "x"; then
++ # Extract the first word of "xcode-select", so it can be a program name with args.
++ set dummy xcode-select; ac_word=$2
++ { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
++ $as_echo_n "checking for $ac_word... " >&6; }
++ if test "${ac_cv_path_XCODE_SELECT+set}" = set; then
++ $as_echo_n "(cached) " >&6
++ else
++ case $XCODE_SELECT in
++ [\\/]* | ?:[\\/]*)
++ ac_cv_path_XCODE_SELECT="$XCODE_SELECT" # Let the user override the test with a path.
++ ;;
++ *)
++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++ for as_dir in $PATH
++ do
++ IFS=$as_save_IFS
++ test -z "$as_dir" && as_dir=.
++ for ac_exec_ext in '' $ac_executable_extensions; do
++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
++ ac_cv_path_XCODE_SELECT="$as_dir/$ac_word$ac_exec_ext"
++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++ done
++ done
++ IFS=$as_save_IFS
++
++ ;;
++ esac
++ fi
++ XCODE_SELECT=$ac_cv_path_XCODE_SELECT
++ if test -n "$XCODE_SELECT"; then
++ { $as_echo "$as_me:$LINENO: result: $XCODE_SELECT" >&5
++ $as_echo "$XCODE_SELECT" >&6; }
++ else
++ { $as_echo "$as_me:$LINENO: result: no" >&5
++ $as_echo "no" >&6; }
++ fi
++
++
++ if test "x$XCODE_SELECT" != "x"; then
++ { $as_echo "$as_me:$LINENO: checking for developer dir using xcode-select" >&5
++ $as_echo_n "checking for developer dir using xcode-select... " >&6; }
++ DEVELOPER_DIR=`$XCODE_SELECT -print-path`
++ { $as_echo "$as_me:$LINENO: result: $DEVELOPER_DIR" >&5
++ $as_echo "$DEVELOPER_DIR" >&6; }
++ else
++ DEVELOPER_DIR=/Developer
++ fi
++ fi
++
+ if test "x$MACARCH" = "xboth"; then
+ { $as_echo "$as_me:$LINENO: checking for 10.4 universal SDK" >&5
+ $as_echo_n "checking for 10.4 universal SDK... " >&6; }
+ save_cppflags="$CPPFLAGS"
+ save_cflags="$CFLAGS"
+ save_ldflags="$LDFLAGS"
+! CFLAGS="$CFLAGS -isysroot $DEVELOPER_DIR/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h. */
+ _ACEOF
+***************
+*** 3960,3968 ****
+ OS_EXTRA_OBJ="objects/os_macosx.o objects/os_mac_conv.o"
+ CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX -no-cpp-precomp"
+ if test "x$MACARCH" = "xboth"; then
+! CPPFLAGS="$CPPFLAGS -I/Developer/SDKs/MacOSX10.4u.sdk/Developer/Headers/FlatCarbon"
+ else
+! CPPFLAGS="$CPPFLAGS -I/Developer/Headers/FlatCarbon"
+ fi
+
+ # On IRIX 5.3, sys/types and inttypes.h are conflicting.
+--- 4028,4036 ----
+ OS_EXTRA_OBJ="objects/os_macosx.o objects/os_mac_conv.o"
+ CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX -no-cpp-precomp"
+ if test "x$MACARCH" = "xboth"; then
+! CPPFLAGS="$CPPFLAGS -I$DEVELOPER_DIR/SDKs/MacOSX10.4u.sdk/Developer/Headers/FlatCarbon"
+ else
+! CPPFLAGS="$CPPFLAGS -I$DEVELOPER_DIR/Headers/FlatCarbon"
+ fi
+
+ # On IRIX 5.3, sys/types and inttypes.h are conflicting.
+***************
+*** 17319,17325 ****
+ fi
+ fi
+ if test "x$MACARCH" = "xboth"; then
+! LDFLAGS="$LDFLAGS -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
+ fi
+
+ DEPEND_CFLAGS_FILTER=
+--- 17387,17393 ----
+ fi
+ fi
+ if test "x$MACARCH" = "xboth"; then
+! LDFLAGS="$LDFLAGS -isysroot $DEVELOPER_DIR/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
+ fi
+
+ DEPEND_CFLAGS_FILTER=
+*** ../vim-7.2.392/src/version.c 2010-03-10 16:11:57.000000000 +0100
+--- src/version.c 2010-03-10 16:26:00.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 393,
+ /**/
+
+--
+There are 2 kinds of people in my world: those who know Unix, Perl, Vim, GNU,
+Linux, etc, and those who know COBOL. It gets very difficult for me at
+parties, not knowing which group to socialise with :-)
+ Sitaram Chamarty
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: Patch 7.2.394
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.394
+Problem: .lzma and .xz files are not supported.
+Solution: Recognize .lzma and .xz files so that they can be edited.
+Files: runtime/plugin/gzip.vim
+
+
+*** ../vim-7.2.393/runtime/plugin/gzip.vim 2005-07-27 23:12:49.000000000 +0200
+--- runtime/plugin/gzip.vim 2010-03-10 17:07:22.000000000 +0100
+***************
+*** 1,6 ****
+ " Vim plugin for editing compressed files.
+ " Maintainer: Bram Moolenaar <Bram@vim.org>
+! " Last Change: 2005 Jul 26
+
+ " Exit quickly when:
+ " - this plugin was already loaded
+--- 1,6 ----
+ " Vim plugin for editing compressed files.
+ " Maintainer: Bram Moolenaar <Bram@vim.org>
+! " Last Change: 2010 Mar 10
+
+ " Exit quickly when:
+ " - this plugin was already loaded
+***************
+*** 20,36 ****
+ "
+ " Set binary mode before reading the file.
+ " Use "gzip -d", gunzip isn't always available.
+! autocmd BufReadPre,FileReadPre *.gz,*.bz2,*.Z setlocal bin
+ autocmd BufReadPost,FileReadPost *.gz call gzip#read("gzip -dn")
+ autocmd BufReadPost,FileReadPost *.bz2 call gzip#read("bzip2 -d")
+ autocmd BufReadPost,FileReadPost *.Z call gzip#read("uncompress")
+ autocmd BufWritePost,FileWritePost *.gz call gzip#write("gzip")
+ autocmd BufWritePost,FileWritePost *.bz2 call gzip#write("bzip2")
+ autocmd BufWritePost,FileWritePost *.Z call gzip#write("compress -f")
+ autocmd FileAppendPre *.gz call gzip#appre("gzip -dn")
+ autocmd FileAppendPre *.bz2 call gzip#appre("bzip2 -d")
+ autocmd FileAppendPre *.Z call gzip#appre("uncompress")
+ autocmd FileAppendPost *.gz call gzip#write("gzip")
+ autocmd FileAppendPost *.bz2 call gzip#write("bzip2")
+ autocmd FileAppendPost *.Z call gzip#write("compress -f")
+ augroup END
+--- 20,44 ----
+ "
+ " Set binary mode before reading the file.
+ " Use "gzip -d", gunzip isn't always available.
+! autocmd BufReadPre,FileReadPre *.gz,*.bz2,*.Z,*.lzma,*.xz setlocal bin
+ autocmd BufReadPost,FileReadPost *.gz call gzip#read("gzip -dn")
+ autocmd BufReadPost,FileReadPost *.bz2 call gzip#read("bzip2 -d")
+ autocmd BufReadPost,FileReadPost *.Z call gzip#read("uncompress")
++ autocmd BufReadPost,FileReadPost *.lzma call gzip#read("lzma -d")
++ autocmd BufReadPost,FileReadPost *.xz call gzip#read("xz -d")
+ autocmd BufWritePost,FileWritePost *.gz call gzip#write("gzip")
+ autocmd BufWritePost,FileWritePost *.bz2 call gzip#write("bzip2")
+ autocmd BufWritePost,FileWritePost *.Z call gzip#write("compress -f")
++ autocmd BufWritePost,FileWritePost *.lzma call gzip#write("lzma -z")
++ autocmd BufWritePost,FileWritePost *.xz call gzip#write("xz -z")
+ autocmd FileAppendPre *.gz call gzip#appre("gzip -dn")
+ autocmd FileAppendPre *.bz2 call gzip#appre("bzip2 -d")
+ autocmd FileAppendPre *.Z call gzip#appre("uncompress")
++ autocmd FileAppendPre *.lzma call gzip#appre("lzma -d")
++ autocmd FileAppendPre *.xz call gzip#appre("xz -d")
+ autocmd FileAppendPost *.gz call gzip#write("gzip")
+ autocmd FileAppendPost *.bz2 call gzip#write("bzip2")
+ autocmd FileAppendPost *.Z call gzip#write("compress -f")
++ autocmd FileAppendPost *.lzma call gzip#write("lzma -z")
++ autocmd FileAppendPost *.xz call gzip#write("xz -z")
+ augroup END
+*** ../vim-7.2.393/src/version.c 2010-03-10 16:27:27.000000000 +0100
+--- src/version.c 2010-03-10 17:12:43.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+ { /* Add new patch number below this line */
++ /**/
++ 394,
+ /**/
+
+--
+ARTHUR: Be quiet!
+DENNIS: --but by a two-thirds majority in the case of more--
+ARTHUR: Be quiet! I order you to be quiet!
+WOMAN: Order, eh -- who does he think he is?
+ARTHUR: I am your king!
+ The Quest for the Holy Grail (Monty Python)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
+++ /dev/null
-diff --git a/src/configure.in b/src/configure.in
-index fa58c6e..f6761db 100644
---- a/src/configure.in
-+++ b/src/configure.in
-@@ -953,10 +953,30 @@ if test "$enable_rubyinterp" = "yes"; then
- AC_PATH_PROG(vi_cv_path_ruby, ruby)
- if test "X$vi_cv_path_ruby" != "X"; then
- AC_MSG_CHECKING(Ruby version)
-- if $vi_cv_path_ruby -e '(VERSION rescue RUBY_VERSION) >= "1.6.0" or exit 1' >/dev/null 2>/dev/null; then
-+ if $vi_cv_path_ruby -e '(VERSION rescue RUBY_VERSION) >= "1.9.0" or exit 1' >/dev/null 2>/dev/null; then
- AC_MSG_RESULT(OK)
- AC_MSG_CHECKING(Ruby header files)
-- rubyhdrdir=`$vi_cv_path_ruby -r mkmf -e 'print Config::CONFIG[["archdir"]] || $hdrdir' 2>/dev/null`
-+ rubyhdrdirs=`$vi_cv_path_ruby -r rbconfig -e 'print RbConfig.expand("$(rubyhdrdir)/$(arch) $(rubyhdrdir)/ruby/backward $(rubyhdrdir)")' 2>/dev/null`
-+ if test "X$rubyhdrdirs" != "X"; then
-+ AC_MSG_RESULT($rubyhdrdirs)
-+ for rubyhdrdir in $rubyhdrdirs; do
-+ RUBY_CFLAGS="$RUBY_CFLAGS -I$rubyhdrdir"
-+ done
-+ librubyarg=`$vi_cv_path_ruby -r rbconfig -e 'print RbConfig::CONFIG[["LIBRUBYARG"]]'`
-+ if test "X$librubyarg" != "X"; then
-+ RUBY_LIBS="$librubyarg"
-+ fi
-+ RUBY_SRC="if_ruby.c"
-+ RUBY_OBJ="objects/if_ruby.o"
-+ RUBY_PRO="if_ruby.pro"
-+ AC_DEFINE(FEAT_RUBY)
-+ else
-+ AC_MSG_RESULT(not found, disabling Ruby)
-+ fi
-+ elif $vi_cv_path_ruby -e '(VERSION rescue RUBY_VERSION) >= "1.6.0" or exit 1' >/dev/null 2>/dev/null; then
-+ AC_MSG_RESULT(OK)
-+ AC_MSG_CHECKING(Ruby header files)
-+ rubyhdrdir=`$vi_cv_path_ruby -r mkmf -e 'print Config::CONFIG[["rubyincludedir"]] || $hdrdir' 2>/dev/null`
- if test "X$rubyhdrdir" != "X"; then
- AC_MSG_RESULT($rubyhdrdir)
- RUBY_CFLAGS="-I$rubyhdrdir"
-diff --git a/src/if_ruby.c b/src/if_ruby.c
-index 0fed2c0..e571faa 100644
---- a/src/if_ruby.c
-+++ b/src/if_ruby.c
-@@ -129,7 +129,7 @@ static void ruby_vim_init(void);
- #define rb_str_concat dll_rb_str_concat
- #define rb_str_new dll_rb_str_new
- #define rb_str_new2 dll_rb_str_new2
--#define ruby_errinfo (*dll_ruby_errinfo)
-+#define rb_errinfo dll_rb_errinfo
- #define ruby_init dll_ruby_init
- #define ruby_init_loadpath dll_ruby_init_loadpath
- #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
-@@ -245,7 +245,7 @@ static struct
- {"rb_str_concat", (RUBY_PROC*)&dll_rb_str_concat},
- {"rb_str_new", (RUBY_PROC*)&dll_rb_str_new},
- {"rb_str_new2", (RUBY_PROC*)&dll_rb_str_new2},
-- {"ruby_errinfo", (RUBY_PROC*)&dll_ruby_errinfo},
-+ {"rb_errinfo", (RUBY_PROC*)&dll_rb_errinfo},
- {"ruby_init", (RUBY_PROC*)&dll_ruby_init},
- {"ruby_init_loadpath", (RUBY_PROC*)&dll_ruby_init_loadpath},
- #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
-@@ -433,9 +433,6 @@ static int ensure_ruby_initialized(void)
-
- static void error_print(int state)
- {
--#ifndef DYNAMIC_RUBY
-- RUBYEXTERN VALUE ruby_errinfo;
--#endif
- VALUE eclass;
- VALUE einfo;
- char buff[BUFSIZ];
-@@ -468,9 +465,9 @@ static void error_print(int state)
- break;
- case TAG_RAISE:
- case TAG_FATAL:
-- eclass = CLASS_OF(ruby_errinfo);
-- einfo = rb_obj_as_string(ruby_errinfo);
-- if (eclass == rb_eRuntimeError && RSTRING(einfo)->len == 0) {
-+ eclass = CLASS_OF(rb_errinfo());
-+ einfo = rb_obj_as_string(rb_errinfo());
-+ if (eclass == rb_eRuntimeError && RSTRING_LEN(einfo) == 0) {
- EMSG(_("E272: unhandled exception"));
- }
- else {
-@@ -479,7 +476,7 @@ static void error_print(int state)
-
- epath = rb_class_path(eclass);
- vim_snprintf(buff, BUFSIZ, "%s: %s",
-- RSTRING(epath)->ptr, RSTRING(einfo)->ptr);
-+ RSTRING_PTR(epath), RSTRING_PTR(einfo));
- p = strchr(buff, '\n');
- if (p) *p = '\0';
- EMSG(buff);
-@@ -497,8 +494,8 @@ static VALUE vim_message(VALUE self UNUSED, VALUE str)
- char *buff, *p;
-
- str = rb_obj_as_string(str);
-- buff = ALLOCA_N(char, RSTRING(str)->len);
-- strcpy(buff, RSTRING(str)->ptr);
-+ buff = ALLOCA_N(char, RSTRING_LEN(str));
-+ strcpy(buff, RSTRING_PTR(str));
- p = strchr(buff, '\n');
- if (p) *p = '\0';
- MSG(buff);
-@@ -628,7 +625,7 @@ static VALUE get_buffer_line(buf_T *buf, linenr_T n)
- char *line = (char *)ml_get_buf(buf, n, FALSE);
- return line ? rb_str_new2(line) : Qnil;
- }
-- rb_raise(rb_eIndexError, "index %d out of buffer", n);
-+ rb_raise(rb_eIndexError, "index %ld out of buffer", n);
- #ifndef __GNUC__
- return Qnil; /* For stop warning */
- #endif
-@@ -669,7 +666,7 @@ static VALUE set_buffer_line(buf_T *buf, linenr_T n, VALUE str)
- }
- else
- {
-- rb_raise(rb_eIndexError, "index %d out of buffer", n);
-+ rb_raise(rb_eIndexError, "index %ld out of buffer", n);
- #ifndef __GNUC__
- return Qnil; /* For stop warning */
- #endif
-@@ -715,7 +712,7 @@ static VALUE buffer_delete(VALUE self, VALUE num)
- }
- else
- {
-- rb_raise(rb_eIndexError, "index %d out of buffer", n);
-+ rb_raise(rb_eIndexError, "index %ld out of buffer", n);
- }
- return Qnil;
- }
-@@ -749,7 +746,7 @@ static VALUE buffer_append(VALUE self, VALUE num, VALUE str)
- update_curbuf(NOT_VALID);
- }
- else {
-- rb_raise(rb_eIndexError, "index %d out of buffer", n);
-+ rb_raise(rb_eIndexError, "index %ld out of buffer", n);
- }
- return str;
- }
-@@ -890,10 +887,10 @@ static VALUE window_set_cursor(VALUE self, VALUE pos)
- win_T *win = get_win(self);
-
- Check_Type(pos, T_ARRAY);
-- if (RARRAY(pos)->len != 2)
-+ if (RARRAY_LEN(pos) != 2)
- rb_raise(rb_eArgError, "array length must be 2");
-- lnum = RARRAY(pos)->ptr[0];
-- col = RARRAY(pos)->ptr[1];
-+ lnum = RARRAY_PTR(pos)[0];
-+ col = RARRAY_PTR(pos)[1];
- win->w_cursor.lnum = NUM2LONG(lnum);
- win->w_cursor.col = NUM2UINT(col);
- check_cursor(); /* put cursor on an existing line */
-@@ -910,7 +907,7 @@ static VALUE f_p(int argc, VALUE *argv, VALUE self UNUSED)
- if (i > 0) rb_str_cat(str, ", ", 2);
- rb_str_concat(str, rb_inspect(argv[i]));
- }
-- MSG(RSTRING(str)->ptr);
-+ MSG(RSTRING_PTR(str));
- return Qnil;
- }
-
%bcond_without home_etc # without home_etc support
%define ver 7.2
-%define patchlevel 356
+%define patchlevel 394
Summary: Vi IMproved - a Vi clone
Summary(de.UTF-8): VIsual editor iMproved
Summary(es.UTF-8): Editor visual incrementado
Summary(uk.UTF-8): Visual editor IMproved - Єдино Вірний Редактор :)
Name: vim
Version: %{ver}.%{patchlevel}
-Release: 4
+Release: 1
Epoch: 4
License: Charityware
Group: Applications/Editors/Vim
Patch113: %{name}-locales.patch
Patch114: %{name}-rtdir.patch
Patch115: %{name}-ft-mib.patch
-Patch116: %{name}-ruby1.9.patch
URL: http://www.vim.org/
BuildRequires: acl-devel
BuildRequires: autoconf
%patch113 -p1
%patch114 -p1
%patch115 -p1
-%patch116 -p1
cp -a %{SOURCE20} runtime/syntax
cp -a %{SOURCE22} runtime/syntax