diff --git a/7.3.683 b/7.3.683
new file mode 100644
index 0000000..b26d398
--- /dev/null
+++ b/7.3.683
@@ -0,0 +1,88 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.683
+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.3.683
+Problem:    ":python" may crash when vimbindeval() returns None.
+Solution:   Check for v_string to be NULL. (Yukihiro Nakadaira)
+Files:	    src/if_py_both.h
+
+
+*** ../vim-7.3.682/src/if_py_both.h	2012-09-21 14:00:05.000000000 +0200
+--- src/if_py_both.h	2012-10-05 21:05:06.000000000 +0200
+***************
+*** 351,357 ****
+  
+      if (our_tv->v_type == VAR_STRING)
+      {
+! 	result = Py_BuildValue("s", our_tv->vval.v_string);
+      }
+      else if (our_tv->v_type == VAR_NUMBER)
+      {
+--- 351,358 ----
+  
+      if (our_tv->v_type == VAR_STRING)
+      {
+! 	result = Py_BuildValue("s", our_tv->vval.v_string == NULL
+! 					? "" : (char *)our_tv->vval.v_string);
+      }
+      else if (our_tv->v_type == VAR_NUMBER)
+      {
+***************
+*** 2751,2757 ****
+      switch (tv->v_type)
+      {
+  	case VAR_STRING:
+! 	    return PyBytes_FromString((char *) tv->vval.v_string);
+  	case VAR_NUMBER:
+  	    return PyLong_FromLong((long) tv->vval.v_number);
+  #ifdef FEAT_FLOAT
+--- 2752,2759 ----
+      switch (tv->v_type)
+      {
+  	case VAR_STRING:
+! 	    return PyBytes_FromString(tv->vval.v_string == NULL
+! 					    ? "" : (char *)tv->vval.v_string);
+  	case VAR_NUMBER:
+  	    return PyLong_FromLong((long) tv->vval.v_number);
+  #ifdef FEAT_FLOAT
+***************
+*** 2763,2769 ****
+  	case VAR_DICT:
+  	    return DictionaryNew(tv->vval.v_dict);
+  	case VAR_FUNC:
+! 	    return FunctionNew(tv->vval.v_string);
+  	case VAR_UNKNOWN:
+  	    Py_INCREF(Py_None);
+  	    return Py_None;
+--- 2765,2772 ----
+  	case VAR_DICT:
+  	    return DictionaryNew(tv->vval.v_dict);
+  	case VAR_FUNC:
+! 	    return FunctionNew(tv->vval.v_string == NULL
+! 					  ? (char_u *)"" : tv->vval.v_string);
+  	case VAR_UNKNOWN:
+  	    Py_INCREF(Py_None);
+  	    return Py_None;
+*** ../vim-7.3.682/src/version.c	2012-10-04 22:38:32.000000000 +0200
+--- src/version.c	2012-10-05 21:04:19.000000000 +0200
+***************
+*** 721,722 ****
+--- 721,724 ----
+  {   /* Add new patch number below this line */
++ /**/
++     683,
+  /**/
+
+-- 
+SIGIRO -- irony detected (iron core dumped)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.3.684 b/7.3.684
new file mode 100644
index 0000000..0e9119b
--- /dev/null
+++ b/7.3.684
@@ -0,0 +1,132 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.684
+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.3.684
+Problem:    "make test" does not delete lua.vim.
+Solution:   Add lua.vim to the clean target. (Simon Ruderich)
+Files:	    src/testdir/Makefile, src/testdir/Make_dos.mak,
+	    src/testdir/Make_ming.mak, src/testdir/Make_vms.mms
+
+
+*** ../vim-7.3.683/src/testdir/Makefile	2012-06-29 12:54:32.000000000 +0200
+--- src/testdir/Makefile	2012-10-06 19:04:54.000000000 +0200
+***************
+*** 48,57 ****
+  $(SCRIPTS) $(SCRIPTS_GUI): $(VIMPROG)
+  
+  clean:
+! 	-rm -rf *.out *.failed *.rej *.orig test.log tiny.vim small.vim mbyte.vim mzscheme.vim test.ok X* valgrind.* viminfo
+  
+  test1.out: test1.in
+! 	-rm -f $*.failed tiny.vim small.vim mbyte.vim mzscheme.vim test.ok X* viminfo
+  	$(VALGRIND) $(VIMPROG) -u unix.vim -U NONE --noplugin -s dotest.in $*.in
+  	@/bin/sh -c "if diff test.out $*.ok; \
+  		then mv -f test.out $*.out; \
+--- 48,57 ----
+  $(SCRIPTS) $(SCRIPTS_GUI): $(VIMPROG)
+  
+  clean:
+! 	-rm -rf *.out *.failed *.rej *.orig test.log tiny.vim small.vim mbyte.vim mzscheme.vim lua.vim test.ok X* valgrind.* viminfo
+  
+  test1.out: test1.in
+! 	-rm -f $*.failed tiny.vim small.vim mbyte.vim mzscheme.vim lua.vim test.ok X* viminfo
+  	$(VALGRIND) $(VIMPROG) -u unix.vim -U NONE --noplugin -s dotest.in $*.in
+  	@/bin/sh -c "if diff test.out $*.ok; \
+  		then mv -f test.out $*.out; \
+***************
+*** 73,79 ****
+  		  fi \
+  		else echo $* NO OUTPUT >>test.log; \
+  		fi"
+! #	-rm -rf X* test.ok viminfo
+  
+  test49.out: test49.vim
+  
+--- 73,79 ----
+  		  fi \
+  		else echo $* NO OUTPUT >>test.log; \
+  		fi"
+! 	-rm -rf X* test.ok viminfo
+  
+  test49.out: test49.vim
+  
+*** ../vim-7.3.683/src/testdir/Make_dos.mak	2012-06-29 12:54:32.000000000 +0200
+--- src/testdir/Make_dos.mak	2012-10-06 19:04:02.000000000 +0200
+***************
+*** 62,67 ****
+--- 62,68 ----
+  	-if exist tiny.vim del tiny.vim
+  	-if exist mbyte.vim del mbyte.vim
+  	-if exist mzscheme.vim del mzscheme.vim
++ 	-if exist lua.vim del lua.vim
+  	-del X*
+  	-if exist viminfo del viminfo
+  
+*** ../vim-7.3.683/src/testdir/Make_ming.mak	2012-06-29 12:54:32.000000000 +0200
+--- src/testdir/Make_ming.mak	2012-10-06 19:04:08.000000000 +0200
+***************
+*** 85,90 ****
+--- 85,91 ----
+  	-$(DEL) tiny.vim
+  	-$(DEL) mbyte.vim
+  	-$(DEL) mzscheme.vim
++ 	-$(DEL) lua.vim
+  	-$(DEL) X*
+  	-$(DEL) viminfo
+  
+*** ../vim-7.3.683/src/testdir/Make_vms.mms	2012-04-05 16:56:38.000000000 +0200
+--- src/testdir/Make_vms.mms	2012-10-06 19:04:34.000000000 +0200
+***************
+*** 4,10 ****
+  # Authors:	Zoltan Arpadffy, <arpadffy@polarhome.com>
+  #		Sandor Kopanyi,  <sandor.kopanyi@mailbox.hu>
+  #
+! # Last change:  2012 Apr 05
+  #
+  # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
+  # Edit the lines in the Configuration section below to select.
+--- 4,10 ----
+  # Authors:	Zoltan Arpadffy, <arpadffy@polarhome.com>
+  #		Sandor Kopanyi,  <sandor.kopanyi@mailbox.hu>
+  #
+! # Last change:  2012 Oct 06
+  #
+  # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
+  # Edit the lines in the Configuration section below to select.
+***************
+*** 184,188 ****
+--- 184,189 ----
+  	-@ if "''F$SEARCH("small.vim")'"    .NES. "" then delete/noconfirm/nolog small.vim.*
+  	-@ if "''F$SEARCH("mbyte.vim")'"    .NES. "" then delete/noconfirm/nolog mbyte.vim.*
+  	-@ if "''F$SEARCH("mzscheme.vim")'" .NES. "" then delete/noconfirm/nolog mzscheme.vim.*
++ 	-@ if "''F$SEARCH("lua.vim")'" .NES. "" then delete/noconfirm/nolog lua.vim.*
+  	-@ if "''F$SEARCH("viminfo.*")'"    .NES. "" then delete/noconfirm/nolog viminfo.*.*
+  
+*** ../vim-7.3.683/src/version.c	2012-10-05 21:30:04.000000000 +0200
+--- src/version.c	2012-10-06 18:59:40.000000000 +0200
+***************
+*** 721,722 ****
+--- 721,724 ----
+  {   /* Add new patch number below this line */
++ /**/
++     684,
+  /**/
+
+-- 
+ERIC IDLE PLAYED: THE DEAD COLLECTOR, MR BINT (A VILLAGE NE'ER-DO -WELL VERY
+                  KEEN ON BURNING WITCHES), SIR ROBIN, THE GUARD WHO DOESN'T
+                  HICOUGH BUT TRIES TO GET THINGS STRAIGHT, CONCORDE (SIR
+                  LAUNCELOT'S TRUSTY STEED), ROGER THE SHRUBBER (A SHRUBBER),
+                  BROTHER MAYNARD
+                 "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/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.3.685 b/7.3.685
new file mode 100644
index 0000000..58cf4e9
--- /dev/null
+++ b/7.3.685
@@ -0,0 +1,64 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.685
+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.3.685
+Problem:    No test for what patch 7.3.673 fixes.
+Solution:   Add a test. (Christian Brabandt)
+Files:      src/testdir/test53.in, src/testdir/test53.ok
+
+
+*** ../vim-7.3.684/src/testdir/test53.in	2012-09-05 12:16:40.000000000 +0200
+--- src/testdir/test53.in	2012-10-11 03:31:27.000000000 +0200
+***************
+*** 42,47 ****
+--- 42,50 ----
+  gnd$h/\zs
+  gnd/[u]niquepattern/s
+  vlgnd
++ /mother
++ :set selection=exclusive
++ $cgNmongoose
+  :/^start:/,/^end:/wq! test.out
+  ENDTEST
+  
+***************
+*** 69,72 ****
+--- 72,76 ----
+  zero width pattern
+  delete first and last chars
+  uniquepattern uniquepattern
++ my very excellent mother just served us nachos
+  end:
+*** ../vim-7.3.684/src/testdir/test53.ok	2012-09-05 12:16:40.000000000 +0200
+--- src/testdir/test53.ok	2012-10-11 03:31:33.000000000 +0200
+***************
+*** 25,28 ****
+--- 25,29 ----
+  zerowidth pattern
+  elete first and last char
+   uniquepattern
++ my very excellent mongoose just served us nachos
+  end:
+*** ../vim-7.3.684/src/version.c	2012-10-06 19:10:29.000000000 +0200
+--- src/version.c	2012-10-11 03:34:06.000000000 +0200
+***************
+*** 721,722 ****
+--- 721,724 ----
+  {   /* Add new patch number below this line */
++ /**/
++     685,
+  /**/
+
+-- 
+FATAL ERROR! SYSTEM HALTED! - Press any key to continue doing nothing.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.3.686 b/7.3.686
new file mode 100644
index 0000000..81d2369
--- /dev/null
+++ b/7.3.686
@@ -0,0 +1,63 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.686
+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.3.686
+Problem:    Using CTRL-\ e mappings is useful also when entering an
+            expression, but it doesn't work. (Marcin Szamotulski)
+Solution:   Allow using CTRL-\ e when entering an expression if it was not
+            typed.
+Files:      src/ex_getln.c
+
+
+*** ../vim-7.3.685/src/ex_getln.c	2012-08-15 14:04:50.000000000 +0200
+--- src/ex_getln.c	2012-10-11 03:54:04.000000000 +0200
+***************
+*** 667,675 ****
+  	    c = plain_vgetc();
+  	    --no_mapping;
+  	    --allow_keys;
+! 	    /* CTRL-\ e doesn't work when obtaining an expression. */
+! 	    if (c != Ctrl_N && c != Ctrl_G
+! 				     && (c != 'e' || ccline.cmdfirstc == '='))
+  	    {
+  		vungetc(c);
+  		c = Ctrl_BSL;
+--- 667,676 ----
+  	    c = plain_vgetc();
+  	    --no_mapping;
+  	    --allow_keys;
+! 	    /* CTRL-\ e doesn't work when obtaining an expression, unless it
+! 	     * is in a mapping. */
+! 	    if (c != Ctrl_N && c != Ctrl_G && (c != 'e'
+! 				    || (ccline.cmdfirstc == '=' && KeyTyped)))
+  	    {
+  		vungetc(c);
+  		c = Ctrl_BSL;
+*** ../vim-7.3.685/src/version.c	2012-10-11 03:35:38.000000000 +0200
+--- src/version.c	2012-10-11 04:03:19.000000000 +0200
+***************
+*** 721,722 ****
+--- 721,724 ----
+  {   /* Add new patch number below this line */
++ /**/
++     686,
+  /**/
+
+-- 
+(letter from Mark to Mike, about the film's probable certificate)
+      I would like to get back to the Censor and agree to lose the shits, take
+      the odd Jesus Christ out and lose Oh fuck off, but to retain 'fart in
+      your general direction', 'castanets of your testicles' and 'oral sex'
+      and ask him for an 'A' rating on that basis.
+                 "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/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.3.687 b/7.3.687
new file mode 100644
index 0000000..a98c363
--- /dev/null
+++ b/7.3.687
@@ -0,0 +1,44 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.687
+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.3.687
+Problem:    Test 16 fails when $DISPLAY is not set.
+Solution:   Skip the test when $DISPLAY is not set.
+Files:      src/testdir/test16.in
+
+
+*** ../vim-7.3.686/src/testdir/test16.in	2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test16.in	2012-10-11 04:02:11.000000000 +0200
+***************
+*** 2,7 ****
+--- 2,8 ----
+  For KDE set a font, empty 'guifont' may cause a hang.
+  
+  STARTTEST
++ :if $DISPLAY == "" | e! test.ok | wq! test.out | endif
+  :set exrc secure
+  :if has("gui_kde")
+  :  set guifont=Courier\ 10\ Pitch/8/-1/5/50/0/0/0/0/0
+*** ../vim-7.3.686/src/version.c	2012-10-11 04:04:32.000000000 +0200
+--- src/version.c	2012-10-11 04:31:10.000000000 +0200
+***************
+*** 721,722 ****
+--- 721,724 ----
+  {   /* Add new patch number below this line */
++ /**/
++     687,
+  /**/
+
+-- 
+A fool must search for a greater fool to find admiration.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.3.688 b/7.3.688
new file mode 100644
index 0000000..56f0024
--- /dev/null
+++ b/7.3.688
@@ -0,0 +1,150 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.688
+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.3.688
+Problem:    Python 3.3 is not supported.
+Solution:   Add Python 3.3 support (Ken Takata)
+Files:      src/if_python3.c
+
+
+*** ../vim-7.3.687/src/if_python3.c	2012-09-21 14:00:05.000000000 +0200
+--- src/if_python3.c	2012-10-14 03:19:53.000000000 +0200
+***************
+*** 174,180 ****
+  # define _PyObject_NextNotImplemented (*py3__PyObject_NextNotImplemented)
+  # define PyModule_AddObject py3_PyModule_AddObject
+  # define PyImport_AppendInittab py3_PyImport_AppendInittab
+! # define _PyUnicode_AsString py3__PyUnicode_AsString
+  # undef PyUnicode_AsEncodedString
+  # define PyUnicode_AsEncodedString py3_PyUnicode_AsEncodedString
+  # undef PyBytes_AsString
+--- 174,185 ----
+  # define _PyObject_NextNotImplemented (*py3__PyObject_NextNotImplemented)
+  # define PyModule_AddObject py3_PyModule_AddObject
+  # define PyImport_AppendInittab py3_PyImport_AppendInittab
+! # if PY_VERSION_HEX >= 0x030300f0
+! #  undef _PyUnicode_AsString
+! #  define _PyUnicode_AsString py3_PyUnicode_AsUTF8String
+! # else
+! #  define _PyUnicode_AsString py3__PyUnicode_AsString
+! # endif
+  # undef PyUnicode_AsEncodedString
+  # define PyUnicode_AsEncodedString py3_PyUnicode_AsEncodedString
+  # undef PyBytes_AsString
+***************
+*** 281,287 ****
+--- 286,296 ----
+  static PyObject* py3__Py_TrueStruct;
+  static int (*py3_PyModule_AddObject)(PyObject *m, const char *name, PyObject *o);
+  static int (*py3_PyImport_AppendInittab)(const char *name, PyObject* (*initfunc)(void));
++ #if PY_VERSION_HEX >= 0x030300f0
++ static char* (*py3_PyUnicode_AsUTF8String)(PyObject *unicode);
++ #else
+  static char* (*py3__PyUnicode_AsString)(PyObject *unicode);
++ #endif
+  static PyObject* (*py3_PyUnicode_AsEncodedString)(PyObject *unicode, const char* encoding, const char* errors);
+  static char* (*py3_PyBytes_AsString)(PyObject *bytes);
+  static int (*py3_PyBytes_AsStringAndSize)(PyObject *bytes, char **buffer, int *length);
+***************
+*** 397,403 ****
+--- 406,416 ----
+      {"PyObject_Init", (PYTHON_PROC*)&py3__PyObject_Init},
+      {"PyModule_AddObject", (PYTHON_PROC*)&py3_PyModule_AddObject},
+      {"PyImport_AppendInittab", (PYTHON_PROC*)&py3_PyImport_AppendInittab},
++ #if PY_VERSION_HEX >= 0x030300f0
++     {"PyUnicode_AsUTF8String", (PYTHON_PROC*)&py3_PyUnicode_AsUTF8String},
++ #else
+      {"_PyUnicode_AsString", (PYTHON_PROC*)&py3__PyUnicode_AsString},
++ #endif
+      {"PyBytes_AsString", (PYTHON_PROC*)&py3_PyBytes_AsString},
+      {"PyBytes_AsStringAndSize", (PYTHON_PROC*)&py3_PyBytes_AsStringAndSize},
+      {"PyBytes_FromString", (PYTHON_PROC*)&py3_PyBytes_FromString},
+***************
+*** 490,495 ****
+--- 503,514 ----
+  
+      /* Load unicode functions separately as only the ucs2 or the ucs4 functions
+       * will be present in the library. */
++ #if PY_VERSION_HEX >= 0x030300f0
++     ucs_from_string = symbol_from_dll(hinstPy3, "PyUnicode_FromString");
++     ucs_decode = symbol_from_dll(hinstPy3, "PyUnicode_Decode");
++     ucs_as_encoded_string = symbol_from_dll(hinstPy3,
++ 	    "PyUnicode_AsEncodedString");
++ #else
+      ucs_from_string = symbol_from_dll(hinstPy3, "PyUnicodeUCS2_FromString");
+      ucs_decode = symbol_from_dll(hinstPy3,
+  	    "PyUnicodeUCS2_Decode");
+***************
+*** 504,509 ****
+--- 523,529 ----
+  	ucs_as_encoded_string = symbol_from_dll(hinstPy3,
+  		"PyUnicodeUCS4_AsEncodedString");
+      }
++ #endif
+      if (ucs_from_string && ucs_decode && ucs_as_encoded_string)
+      {
+  	py3_PyUnicode_FromString = ucs_from_string;
+***************
+*** 600,607 ****
+  
+  #define GET_ATTR_STRING(name, nameobj) \
+      char	*name = ""; \
+!     if(PyUnicode_Check(nameobj)) \
+!         name = _PyUnicode_AsString(nameobj)
+  
+  #define PY3OBJ_DELETED(obj) (obj->ob_base.ob_refcnt<=0)
+  
+--- 620,627 ----
+  
+  #define GET_ATTR_STRING(name, nameobj) \
+      char	*name = ""; \
+!     if (PyUnicode_Check(nameobj)) \
+! 	name = _PyUnicode_AsString(nameobj)
+  
+  #define PY3OBJ_DELETED(obj) (obj->ob_base.ob_refcnt<=0)
+  
+***************
+*** 704,709 ****
+--- 724,731 ----
+  	Py_SetPythonHome(PYTHON3_HOME);
+  #endif
+  
++ 	PyImport_AppendInittab("vim", Py3Init_vim);
++ 
+  #if !defined(MACOS) || defined(MACOS_X_UNIX)
+  	Py_Initialize();
+  #else
+***************
+*** 719,726 ****
+  	if (PythonIO_Init())
+  	    goto fail;
+  
+- 	PyImport_AppendInittab("vim", Py3Init_vim);
+- 
+  	globals = PyModule_GetDict(PyImport_AddModule("__main__"));
+  
+  	/* Remove the element from sys.path that was added because of our
+--- 741,746 ----
+*** ../vim-7.3.687/src/version.c	2012-10-11 04:44:26.000000000 +0200
+--- src/version.c	2012-10-14 03:00:57.000000000 +0200
+***************
+*** 721,722 ****
+--- 721,724 ----
+  {   /* Add new patch number below this line */
++ /**/
++     688,
+  /**/
+
+-- 
+The problem with political jokes is that they get elected.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.3.689 b/7.3.689
new file mode 100644
index 0000000..ae8e60d
--- /dev/null
+++ b/7.3.689
@@ -0,0 +1,72 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.689
+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.3.689
+Problem:    MzScheme and Lua may use a NULL string.
+Solution:   Use an empty string instead of NULL. (Yukihiro Nakadaira)
+Files:      src/if_lua.c, src/if_mzsch.c
+
+
+*** ../vim-7.3.688/src/if_lua.c	2012-06-29 12:54:32.000000000 +0200
+--- src/if_lua.c	2012-10-14 03:33:32.000000000 +0200
+***************
+*** 464,470 ****
+      switch (tv->v_type)
+      {
+  	case VAR_STRING:
+! 	    lua_pushstring(L, (char *) tv->vval.v_string);
+  	    break;
+  	case VAR_NUMBER:
+  	    lua_pushinteger(L, (int) tv->vval.v_number);
+--- 464,471 ----
+      switch (tv->v_type)
+      {
+  	case VAR_STRING:
+! 	    lua_pushstring(L, tv->vval.v_string == NULL
+! 					    ? "" : (char *)tv->vval.v_string);
+  	    break;
+  	case VAR_NUMBER:
+  	    lua_pushinteger(L, (int) tv->vval.v_number);
+*** ../vim-7.3.688/src/if_mzsch.c	2012-02-12 01:55:50.000000000 +0100
+--- src/if_mzsch.c	2012-10-14 03:33:32.000000000 +0200
+***************
+*** 2649,2655 ****
+  	new_value = FALSE;
+      else if (vim_value->v_type == VAR_STRING)
+      {
+! 	result = scheme_make_string((char *)vim_value->vval.v_string);
+  	MZ_GC_CHECK();
+      }
+      else if (vim_value->v_type == VAR_NUMBER)
+--- 2649,2656 ----
+  	new_value = FALSE;
+      else if (vim_value->v_type == VAR_STRING)
+      {
+! 	result = scheme_make_string(vim_value->vval.v_string == NULL
+! 				    ? "" : (char *)vim_value->vval.v_string);
+  	MZ_GC_CHECK();
+      }
+      else if (vim_value->v_type == VAR_NUMBER)
+*** ../vim-7.3.688/src/version.c	2012-10-14 03:22:49.000000000 +0200
+--- src/version.c	2012-10-14 03:33:49.000000000 +0200
+***************
+*** 721,722 ****
+--- 721,724 ----
+  {   /* Add new patch number below this line */
++ /**/
++     689,
+  /**/
+
+-- 
+Computers make very fast, very accurate, mistakes.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.3.690 b/7.3.690
new file mode 100644
index 0000000..c638e26
--- /dev/null
+++ b/7.3.690
@@ -0,0 +1,68 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.690
+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.3.690
+Problem:    When the current directory name is exactly the maximum path length
+            Vim may crash.
+Solution:   Only add "/" when there is room. (Danek Duvall)
+Files:      src/os_unix.c
+
+
+*** ../vim-7.3.689/src/os_unix.c	2012-08-15 17:26:53.000000000 +0200
+--- src/os_unix.c	2012-10-14 04:28:40.000000000 +0200
+***************
+*** 2512,2526 ****
+  	}
+  
+  	l = STRLEN(buf);
+! 	if (l >= len)
+! 	    retval = FAIL;
+  #ifndef VMS
+! 	else
+! 	{
+! 	    if (l > 0 && buf[l - 1] != '/' && *fname != NUL
+  						   && STRCMP(fname, ".") != 0)
+! 		STRCAT(buf, "/");
+! 	}
+  #endif
+      }
+  
+--- 2512,2523 ----
+  	}
+  
+  	l = STRLEN(buf);
+! 	if (l >= len - 1)
+! 	    retval = FAIL; /* no space for trailing "/" */
+  #ifndef VMS
+! 	else if (l > 0 && buf[l - 1] != '/' && *fname != NUL
+  						   && STRCMP(fname, ".") != 0)
+! 	    STRCAT(buf, "/");
+  #endif
+      }
+  
+*** ../vim-7.3.689/src/version.c	2012-10-14 03:41:54.000000000 +0200
+--- src/version.c	2012-10-14 04:26:17.000000000 +0200
+***************
+*** 721,722 ****
+--- 721,724 ----
+  {   /* Add new patch number below this line */
++ /**/
++     690,
+  /**/
+
+-- 
+SOLDIER: What?  Ridden on a horse?
+ARTHUR:  Yes!
+SOLDIER: You're using coconuts!
+                 "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/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.3.691 b/7.3.691
new file mode 100644
index 0000000..6f44b5c
--- /dev/null
+++ b/7.3.691
@@ -0,0 +1,61 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.691
+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.3.691
+Problem:    State specific to the Python thread is discarded.
+Solution:   Keep state between threads. (Paul)
+Files:      src/if_python.c
+
+
+*** ../vim-7.3.690/src/if_python.c	2012-09-21 14:00:05.000000000 +0200
+--- src/if_python.c	2012-10-14 05:19:44.000000000 +0200
+***************
+*** 740,748 ****
+  #else
+  	PyMac_Initialize();
+  #endif
+! 	/* initialise threads */
+  	PyEval_InitThreads();
+! 
+  #ifdef DYNAMIC_PYTHON
+  	get_exceptions();
+  #endif
+--- 740,750 ----
+  #else
+  	PyMac_Initialize();
+  #endif
+! 	/* Initialise threads and save the state using PyGILState_Ensure.
+! 	 * Without this call, thread-specific state (such as the system trace
+! 	 * hook), will be lost between invocations of Python code.  */
+  	PyEval_InitThreads();
+! 	pygilstate = PyGILState_Ensure();
+  #ifdef DYNAMIC_PYTHON
+  	get_exceptions();
+  #endif
+*** ../vim-7.3.690/src/version.c	2012-10-14 04:35:16.000000000 +0200
+--- src/version.c	2012-10-14 05:14:35.000000000 +0200
+***************
+*** 721,722 ****
+--- 721,724 ----
+  {   /* Add new patch number below this line */
++ /**/
++     691,
+  /**/
+
+-- 
+ARTHUR: The swallow may fly south with the sun, or the house martin or the
+        plover seek warmer hot lands in winter, yet these are not strangers to
+        our land.
+SOLDIER: Are you suggesting coconuts migrate?
+                 "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/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.3.692 b/7.3.692
new file mode 100644
index 0000000..67016ef
--- /dev/null
+++ b/7.3.692
@@ -0,0 +1,56 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.692
+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.3.692
+Problem:    Can't build GTK version with GTK 2.0.
+Solution:   Put GtkFileFilter declaration in the right place. (Yegappan
+            Lakshmanan)
+Files:      src/gui_gtk.c
+
+
+*** ../vim-7.3.691/src/gui_gtk.c	2012-07-10 13:41:09.000000000 +0200
+--- src/gui_gtk.c	2012-10-18 05:12:34.000000000 +0200
+***************
+*** 845,851 ****
+      char_u		dirbuf[MAXPATHL];
+      guint		log_handler;
+      const gchar		*domain = "Gtk";
+-     GtkFileFilter	*gfilter;
+  
+      title = CONVERT_TO_UTF8(title);
+  
+--- 845,850 ----
+***************
+*** 883,888 ****
+--- 882,888 ----
+  	int     i = 0;
+  	char_u  *patt;
+  	char_u  *p = filter;
++ 	GtkFileFilter	*gfilter;
+  
+  	gfilter = gtk_file_filter_new();
+  	patt = alloc(STRLEN(filter));
+*** ../vim-7.3.691/src/version.c	2012-10-14 05:20:05.000000000 +0200
+--- src/version.c	2012-10-18 05:13:55.000000000 +0200
+***************
+*** 721,722 ****
+--- 721,724 ----
+  {   /* Add new patch number below this line */
++ /**/
++     692,
+  /**/
+
+-- 
+"The future's already arrived - it's just not evenly distributed yet."
+		-- William Gibson
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.3.693 b/7.3.693
new file mode 100644
index 0000000..c3b6b80
--- /dev/null
+++ b/7.3.693
@@ -0,0 +1,165 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.693
+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.3.693
+Problem:    Can't make 'softtabstop' follow 'shiftwidth'.
+Solution:   When 'softtabstop' is negative use the value of 'shiftwidth'.
+            (so8res)
+Files:      src/edit.c, src/option.c, src/proto/option.pro
+
+
+*** ../vim-7.3.692/src/edit.c	2012-10-04 22:38:32.000000000 +0200
+--- src/edit.c	2012-10-21 00:01:53.000000000 +0200
+***************
+*** 8885,8891 ****
+  	 */
+  	if (	   mode == BACKSPACE_CHAR
+  		&& ((p_sta && in_indent)
+! 		    || (curbuf->b_p_sts != 0
+  			&& curwin->w_cursor.col > 0
+  			&& (*(ml_get_cursor() - 1) == TAB
+  			    || (*(ml_get_cursor() - 1) == ' '
+--- 8885,8891 ----
+  	 */
+  	if (	   mode == BACKSPACE_CHAR
+  		&& ((p_sta && in_indent)
+! 		    || (get_sts_value() != 0
+  			&& curwin->w_cursor.col > 0
+  			&& (*(ml_get_cursor() - 1) == TAB
+  			    || (*(ml_get_cursor() - 1) == ' '
+***************
+*** 8901,8907 ****
+  	    if (p_sta && in_indent)
+  		ts = (int)get_sw_value();
+  	    else
+! 		ts = (int)curbuf->b_p_sts;
+  	    /* Compute the virtual column where we want to be.  Since
+  	     * 'showbreak' may get in the way, need to get the last column of
+  	     * the previous character. */
+--- 8901,8907 ----
+  	    if (p_sta && in_indent)
+  		ts = (int)get_sw_value();
+  	    else
+! 		ts = (int)get_sts_value();
+  	    /* Compute the virtual column where we want to be.  Since
+  	     * 'showbreak' may get in the way, need to get the last column of
+  	     * the previous character. */
+***************
+*** 9590,9596 ****
+       */
+      if (!curbuf->b_p_et
+  	    && !(p_sta && ind && curbuf->b_p_ts != get_sw_value())
+! 	    && curbuf->b_p_sts == 0)
+  	return TRUE;
+  
+      if (stop_arrow() == FAIL)
+--- 9590,9596 ----
+       */
+      if (!curbuf->b_p_et
+  	    && !(p_sta && ind && curbuf->b_p_ts != get_sw_value())
+! 	    && get_sts_value() == 0)
+  	return TRUE;
+  
+      if (stop_arrow() == FAIL)
+***************
+*** 9606,9613 ****
+  
+      if (p_sta && ind)		/* insert tab in indent, use 'shiftwidth' */
+  	temp = (int)get_sw_value();
+!     else if (curbuf->b_p_sts > 0) /* use 'softtabstop' when set */
+! 	temp = (int)curbuf->b_p_sts;
+      else			/* otherwise use 'tabstop' */
+  	temp = (int)curbuf->b_p_ts;
+      temp -= get_nolist_virtcol() % temp;
+--- 9606,9613 ----
+  
+      if (p_sta && ind)		/* insert tab in indent, use 'shiftwidth' */
+  	temp = (int)get_sw_value();
+!     else if (curbuf->b_p_sts != 0) /* use 'softtabstop' when set */
+! 	temp = (int)get_sts_value();
+      else			/* otherwise use 'tabstop' */
+  	temp = (int)curbuf->b_p_ts;
+      temp -= get_nolist_virtcol() % temp;
+***************
+*** 9635,9641 ****
+      /*
+       * When 'expandtab' not set: Replace spaces by TABs where possible.
+       */
+!     if (!curbuf->b_p_et && (curbuf->b_p_sts || (p_sta && ind)))
+      {
+  	char_u		*ptr;
+  #ifdef FEAT_VREPLACE
+--- 9635,9641 ----
+      /*
+       * When 'expandtab' not set: Replace spaces by TABs where possible.
+       */
+!     if (!curbuf->b_p_et && (get_sts_value() || (p_sta && ind)))
+      {
+  	char_u		*ptr;
+  #ifdef FEAT_VREPLACE
+*** ../vim-7.3.692/src/option.c	2012-08-08 18:01:00.000000000 +0200
+--- src/option.c	2012-10-21 00:05:06.000000000 +0200
+***************
+*** 8509,8519 ****
+  	    p_window = Rows - 1;
+      }
+  
+-     if (curbuf->b_p_sts < 0)
+-     {
+- 	errmsg = e_positive;
+- 	curbuf->b_p_sts = 0;
+-     }
+      if (curbuf->b_p_ts <= 0)
+      {
+  	errmsg = e_positive;
+--- 8509,8514 ----
+***************
+*** 11429,11431 ****
+--- 11424,11436 ----
+  {
+      return curbuf->b_p_sw ? curbuf->b_p_sw : curbuf->b_p_ts;
+  }
++ 
++ /*
++  * Return the effective softtabstop value for the current buffer, using the
++  * 'tabstop' value when 'softtabstop' is negative.
++  */
++     long
++ get_sts_value()
++ {
++     return curbuf->b_p_sts < 0 ? get_sw_value() : curbuf->b_p_sts;
++ }
+*** ../vim-7.3.692/src/proto/option.pro	2012-08-08 18:01:00.000000000 +0200
+--- src/proto/option.pro	2012-10-21 00:01:59.000000000 +0200
+***************
+*** 57,60 ****
+--- 57,61 ----
+  int file_ff_differs __ARGS((buf_T *buf, int ignore_empty));
+  int check_ff_value __ARGS((char_u *p));
+  long get_sw_value __ARGS((void));
++ long get_sts_value __ARGS((void));
+  /* vim: set ft=c : */
+*** ../vim-7.3.692/src/version.c	2012-10-18 05:18:27.000000000 +0200
+--- src/version.c	2012-10-21 00:07:19.000000000 +0200
+***************
+*** 721,722 ****
+--- 721,724 ----
+  {   /* Add new patch number below this line */
++ /**/
++     693,
+  /**/
+
+-- 
+FIRST VILLAGER: We have found a witch.  May we burn her?
+                 "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/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.3.694 b/7.3.694
new file mode 100644
index 0000000..89b4bcf
--- /dev/null
+++ b/7.3.694
@@ -0,0 +1,139 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.694
+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.3.694
+Problem:    Now that 'shiftwidth' may use the value of 'tabstop' it is not so
+            easy to use in indent files.
+Solution:   Add the shiftwidth() function. (so8res)
+Files:      runtime/doc/eval.txt, src/eval.c
+
+
+*** ../vim-7.3.693/runtime/doc/eval.txt	2012-06-29 12:54:32.000000000 +0200
+--- runtime/doc/eval.txt	2012-10-21 00:43:22.000000000 +0200
+***************
+*** 1921,1926 ****
+--- 1932,1938 ----
+  shellescape( {string} [, {special}])
+  				String	escape {string} for use as shell
+  					command argument
++ shiftwidth()			Number	effective value of 'shiftwidth'
+  simplify( {filename})		String	simplify filename as much as possible
+  sin( {expr})			Float	sine of {expr}
+  sinh( {expr})			Float	hyperbolic sine of {expr}
+***************
+*** 3732,3741 ****
+  		Like |input()|, but when the GUI is running and text dialogs
+  		are supported, a dialog window pops up to input the text.
+  		Example: >
+! 			:let n = inputdialog("value for shiftwidth", &sw)
+! 			:if n != ""
+! 			:  let &sw = n
+! 			:endif
+  <		When the dialog is cancelled {cancelreturn} is returned.  When
+  		omitted an empty string is returned.
+  		Hitting <Enter> works like pressing the OK button.  Hitting
+--- 3755,3764 ----
+  		Like |input()|, but when the GUI is running and text dialogs
+  		are supported, a dialog window pops up to input the text.
+  		Example: >
+! 		   :let n = inputdialog("value for shiftwidth", shiftwidth())
+! 		   :if n != ""
+! 		   :  let &sw = n
+! 		   :endif
+  <		When the dialog is cancelled {cancelreturn} is returned.  When
+  		omitted an empty string is returned.
+  		Hitting <Enter> works like pressing the OK button.  Hitting
+***************
+*** 5308,5313 ****
+--- 5332,5354 ----
+  		    :call system("chmod +w -- " . shellescape(expand("%")))
+  
+  
++ shiftwidth()						*shiftwidth()*
++ 		Returns the effective value of 'shiftwidth'. This is the
++ 		'shiftwidth' value unless it is zero, in which case it is the
++ 		'tabstop' value.  To be backwards compatible in indent
++ 		plugins, use this: >
++ 			if exists('*shiftwidth')
++ 			  func s:sw()
++ 			    return shiftwidth()
++ 			  endfunc
++ 			else
++ 			  func s:sw()
++ 			    return &sw
++ 			  endfunc
++ 			endif
++ <		And then use s:sw() instead of &sw.
++ 
++ 
+  simplify({filename})					*simplify()*
+  		Simplify the file name as much as possible without changing
+  		the meaning.  Shortcuts (on MS-Windows) or symbolic links (on
+*** ../vim-7.3.693/src/eval.c	2012-08-08 14:33:16.000000000 +0200
+--- src/eval.c	2012-10-21 00:29:15.000000000 +0200
+***************
+*** 687,692 ****
+--- 687,693 ----
+  static void f_settabwinvar __ARGS((typval_T *argvars, typval_T *rettv));
+  static void f_setwinvar __ARGS((typval_T *argvars, typval_T *rettv));
+  static void f_shellescape __ARGS((typval_T *argvars, typval_T *rettv));
++ static void f_shiftwidth __ARGS((typval_T *argvars, typval_T *rettv));
+  static void f_simplify __ARGS((typval_T *argvars, typval_T *rettv));
+  #ifdef FEAT_FLOAT
+  static void f_sin __ARGS((typval_T *argvars, typval_T *rettv));
+***************
+*** 8051,8056 ****
+--- 8052,8058 ----
+      {"settabwinvar",	4, 4, f_settabwinvar},
+      {"setwinvar",	3, 3, f_setwinvar},
+      {"shellescape",	1, 2, f_shellescape},
++     {"shiftwidth",	0, 0, f_shiftwidth},
+      {"simplify",	1, 1, f_simplify},
+  #ifdef FEAT_FLOAT
+      {"sin",		1, 1, f_sin},
+***************
+*** 16652,16657 ****
+--- 16654,16670 ----
+  }
+  
+  /*
++  * shiftwidth() function
++  */
++     static void
++ f_shiftwidth(argvars, rettv)
++     typval_T	*argvars;
++     typval_T	*rettv;
++ {
++     rettv->vval.v_number = get_sw_value();
++ }
++ 
++ /*
+   * "simplify()" function
+   */
+      static void
+*** ../vim-7.3.693/src/version.c	2012-10-21 00:10:29.000000000 +0200
+--- src/version.c	2012-10-21 00:30:27.000000000 +0200
+***************
+*** 721,722 ****
+--- 721,724 ----
+  {   /* Add new patch number below this line */
++ /**/
++     694,
+  /**/
+
+-- 
+CRONE:  Who sent you?
+ARTHUR: The Knights Who Say GNU!
+CRONE:  Aaaagh!  (she looks around in rear) No!  We have no licenses here.
+           "Monty Python and the Holy editor wars" PYTHON (MONTY) SOFTWARE LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.3.695 b/7.3.695
new file mode 100644
index 0000000..3201053
--- /dev/null
+++ b/7.3.695
@@ -0,0 +1,129 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.695
+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.3.695
+Problem:    Balloon cannot show multi-byte text.
+Solution:   Properly deal with multi-byte characters. (Dominique Pelle)
+Files:      src/gui_beval.c, src/ui.c
+
+
+*** ../vim-7.3.694/src/gui_beval.c	2010-08-15 21:57:28.000000000 +0200
+--- src/gui_beval.c	2012-10-21 00:54:19.000000000 +0200
+***************
+*** 359,365 ****
+  			}
+  		    }
+  
+! 		    col = vcol2col(wp, lnum, col) - 1;
+  
+  		    if (VIsual_active
+  			    && wp->w_buffer == curwin->w_buffer
+--- 359,365 ----
+  			}
+  		    }
+  
+! 		    col = vcol2col(wp, lnum, col);
+  
+  		    if (VIsual_active
+  			    && wp->w_buffer == curwin->w_buffer
+***************
+*** 377,384 ****
+  			    return FAIL;
+  
+  			lbuf = ml_get_buf(curwin->w_buffer, VIsual.lnum, FALSE);
+! 			lbuf = vim_strnsave(lbuf + spos->col,
+! 				     epos->col - spos->col + (*p_sel != 'e'));
+  			lnum = spos->lnum;
+  			col = spos->col;
+  		    }
+--- 377,386 ----
+  			    return FAIL;
+  
+  			lbuf = ml_get_buf(curwin->w_buffer, VIsual.lnum, FALSE);
+! 			len = epos->col - spos->col;
+! 			if (*p_sel != 'e')
+! 			    len += MB_PTR2LEN(lbuf + epos->col);
+! 			lbuf = vim_strnsave(lbuf + spos->col, len);
+  			lnum = spos->lnum;
+  			col = spos->col;
+  		    }
+*** ../vim-7.3.694/src/ui.c	2012-08-29 16:26:01.000000000 +0200
+--- src/ui.c	2012-10-21 00:50:17.000000000 +0200
+***************
+*** 98,104 ****
+  #endif
+  
+  /*
+!  * ui_inchar(): low level input funcion.
+   * Get characters from the keyboard.
+   * Return the number of characters that are available.
+   * If "wtime" == 0 do not wait for characters.
+--- 98,104 ----
+  #endif
+  
+  /*
+!  * ui_inchar(): low level input function.
+   * Get characters from the keyboard.
+   * Return the number of characters that are available.
+   * If "wtime" == 0 do not wait for characters.
+***************
+*** 493,499 ****
+  	}
+      }
+  #else
+!     /* Only own the clibpard when we didn't own it yet. */
+      if (!cbd->owned && cbd->available)
+  	cbd->owned = (clip_gen_own_selection(cbd) == OK);
+  #endif
+--- 493,499 ----
+  	}
+      }
+  #else
+!     /* Only own the clipboard when we didn't own it yet. */
+      if (!cbd->owned && cbd->available)
+  	cbd->owned = (clip_gen_own_selection(cbd) == OK);
+  #endif
+***************
+*** 3132,3138 ****
+      char_u	*start;
+  
+      start = ptr = ml_get_buf(wp->w_buffer, lnum, FALSE);
+!     while (count <= vcol && *ptr != NUL)
+      {
+  	count += win_lbr_chartabsize(wp, ptr, count, NULL);
+  	mb_ptr_adv(ptr);
+--- 3132,3138 ----
+      char_u	*start;
+  
+      start = ptr = ml_get_buf(wp->w_buffer, lnum, FALSE);
+!     while (count < vcol && *ptr != NUL)
+      {
+  	count += win_lbr_chartabsize(wp, ptr, count, NULL);
+  	mb_ptr_adv(ptr);
+*** ../vim-7.3.694/src/version.c	2012-10-21 00:44:59.000000000 +0200
+--- src/version.c	2012-10-21 00:50:32.000000000 +0200
+***************
+*** 721,722 ****
+--- 721,724 ----
+  {   /* Add new patch number below this line */
++ /**/
++     695,
+  /**/
+
+-- 
+BEDEVERE:        Why do you think she is a witch?
+SECOND VILLAGER: She turned me into a newt.
+BEDEVERE:        A newt?
+SECOND VILLAGER: (After looking at himself for some time) I got better.
+                 "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/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.3.696 b/7.3.696
new file mode 100644
index 0000000..9084022
--- /dev/null
+++ b/7.3.696
@@ -0,0 +1,89 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.696
+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.3.696
+Problem:    Message about added spell language can be wrong.
+Solution:   Give correct message. Add g:menutrans_set_lang_to to allow for
+            translation. (Jiri Sedlak)
+Files:      runtime/menu.vim
+
+
+*** ../vim-7.3.695/runtime/menu.vim	2010-08-15 21:57:11.000000000 +0200
+--- runtime/menu.vim	2012-10-21 01:17:27.000000000 +0200
+***************
+*** 434,439 ****
+--- 434,443 ----
+        let enc = &enc
+      endif
+  
++     if !exists("g:menutrans_set_lang_to")
++       let g:menutrans_set_lang_to = 'Set language to'
++     endif
++ 
+      let found = 0
+      let s = globpath(&rtp, "spell/*." . enc . ".spl")
+      if s != ""
+***************
+*** 441,448 ****
+        for f in split(s, "\n")
+  	let nm = substitute(f, '.*spell[/\\]\(..\)\.[^/\\]*\.spl', '\1', "")
+  	if nm != "en" && nm !~ '/'
+  	  let found += 1
+! 	  let menuname = '&Tools.&Spelling.Set\ language\ to\ "' . nm . '"'
+  	  exe 'an 40.335.' . n . ' ' . menuname . ' :set spl=' . nm . ' spell<CR>'
+  	  let s:undo_spellang += ['aun ' . menuname]
+  	endif
+--- 445,453 ----
+        for f in split(s, "\n")
+  	let nm = substitute(f, '.*spell[/\\]\(..\)\.[^/\\]*\.spl', '\1', "")
+  	if nm != "en" && nm !~ '/'
++           let _nm = nm
+  	  let found += 1
+! 	  let menuname = '&Tools.&Spelling.' . escape(g:menutrans_set_lang_to, "\\. \t|") . '\ "' . nm . '"'
+  	  exe 'an 40.335.' . n . ' ' . menuname . ' :set spl=' . nm . ' spell<CR>'
+  	  let s:undo_spellang += ['aun ' . menuname]
+  	endif
+***************
+*** 452,458 ****
+      if found == 0
+        echomsg "Could not find other spell files"
+      elseif found == 1
+!       echomsg "Found spell file " . nm
+      else
+        echomsg "Found " . found . " more spell files"
+      endif
+--- 457,463 ----
+      if found == 0
+        echomsg "Could not find other spell files"
+      elseif found == 1
+!       echomsg "Found spell file " . _nm
+      else
+        echomsg "Found " . found . " more spell files"
+      endif
+*** ../vim-7.3.695/src/version.c	2012-10-21 00:58:34.000000000 +0200
+--- src/version.c	2012-10-21 01:15:00.000000000 +0200
+***************
+*** 721,722 ****
+--- 721,724 ----
+  {   /* Add new patch number below this line */
++ /**/
++     696,
+  /**/
+
+-- 
+BEDEVERE:        And what do you burn, apart from witches?
+FOURTH VILLAGER: ... Wood?
+BEDEVERE:        So why do witches burn?
+SECOND VILLAGER: (pianissimo) ... Because they're made of wood...?
+                 "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/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.3.697 b/7.3.697
new file mode 100644
index 0000000..b8d7814
--- /dev/null
+++ b/7.3.697
@@ -0,0 +1,188 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.697
+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.3.697
+Problem:    Leaking resources when setting GUI font.
+Solution:   Free the font. (Ken Takata)
+Files:      src/syntax.c
+
+
+*** ../vim-7.3.696/src/syntax.c	2012-07-19 17:39:01.000000000 +0200
+--- src/syntax.c	2012-10-21 01:37:19.000000000 +0200
+***************
+*** 105,111 ****
+  # ifdef FEAT_XFONTSET
+  static GuiFontset fontset_name2handle __ARGS((char_u *name, int fixed_width));
+  # endif
+! static void hl_do_font __ARGS((int idx, char_u *arg, int do_normal, int do_menu, int do_tooltip));
+  #endif
+  
+  /*
+--- 105,111 ----
+  # ifdef FEAT_XFONTSET
+  static GuiFontset fontset_name2handle __ARGS((char_u *name, int fixed_width));
+  # endif
+! static void hl_do_font __ARGS((int idx, char_u *arg, int do_normal, int do_menu, int do_tooltip, int free_font));
+  #endif
+  
+  /*
+***************
+*** 7259,7272 ****
+  		HL_TABLE()[idx].sg_fontset = NOFONTSET;
+  # endif
+  		hl_do_font(idx, arg, is_normal_group, is_menu_group,
+! 							    is_tooltip_group);
+  
+  # ifdef FEAT_XFONTSET
+  		if (HL_TABLE()[idx].sg_fontset != NOFONTSET)
+  		{
+! 		    /* New fontset was accepted. Free the old one, if there was
+! 		     * one.
+! 		     */
+  		    gui_mch_free_fontset(temp_sg_fontset);
+  		    vim_free(HL_TABLE()[idx].sg_font_name);
+  		    HL_TABLE()[idx].sg_font_name = vim_strsave(arg);
+--- 7259,7271 ----
+  		HL_TABLE()[idx].sg_fontset = NOFONTSET;
+  # endif
+  		hl_do_font(idx, arg, is_normal_group, is_menu_group,
+! 						     is_tooltip_group, FALSE);
+  
+  # ifdef FEAT_XFONTSET
+  		if (HL_TABLE()[idx].sg_fontset != NOFONTSET)
+  		{
+! 		    /* New fontset was accepted. Free the old one, if there
+! 		     * was one. */
+  		    gui_mch_free_fontset(temp_sg_fontset);
+  		    vim_free(HL_TABLE()[idx].sg_font_name);
+  		    HL_TABLE()[idx].sg_font_name = vim_strsave(arg);
+***************
+*** 7277,7284 ****
+  		if (HL_TABLE()[idx].sg_font != NOFONT)
+  		{
+  		    /* New font was accepted. Free the old one, if there was
+! 		     * one.
+! 		     */
+  		    gui_mch_free_font(temp_sg_font);
+  		    vim_free(HL_TABLE()[idx].sg_font_name);
+  		    HL_TABLE()[idx].sg_font_name = vim_strsave(arg);
+--- 7276,7282 ----
+  		if (HL_TABLE()[idx].sg_font != NOFONT)
+  		{
+  		    /* New font was accepted. Free the old one, if there was
+! 		     * one. */
+  		    gui_mch_free_font(temp_sg_font);
+  		    vim_free(HL_TABLE()[idx].sg_font_name);
+  		    HL_TABLE()[idx].sg_font_name = vim_strsave(arg);
+***************
+*** 8064,8075 ****
+   * Get the font or fontset for one highlight group.
+   */
+      static void
+! hl_do_font(idx, arg, do_normal, do_menu, do_tooltip)
+      int		idx;
+      char_u	*arg;
+      int		do_normal;		/* set normal font */
+      int		do_menu UNUSED;		/* set menu font */
+      int		do_tooltip UNUSED;	/* set tooltip font */
+  {
+  # ifdef FEAT_XFONTSET
+      /* If 'guifontset' is not empty, first try using the name as a
+--- 8062,8074 ----
+   * Get the font or fontset for one highlight group.
+   */
+      static void
+! hl_do_font(idx, arg, do_normal, do_menu, do_tooltip, free_font)
+      int		idx;
+      char_u	*arg;
+      int		do_normal;		/* set normal font */
+      int		do_menu UNUSED;		/* set menu font */
+      int		do_tooltip UNUSED;	/* set tooltip font */
++     int		free_font;		/* free current font/fontset */
+  {
+  # ifdef FEAT_XFONTSET
+      /* If 'guifontset' is not empty, first try using the name as a
+***************
+*** 8083,8088 ****
+--- 8082,8089 ----
+  	|| do_tooltip
+  #  endif
+  	    )
++ 	if (free_fontset)
++ 	    gui_mch_free_fontset(HL_TABLE()[idx].sg_fontset);
+  	HL_TABLE()[idx].sg_fontset = fontset_name2handle(arg, 0
+  #  ifdef FONTSET_ALWAYS
+  		|| do_menu
+***************
+*** 8093,8100 ****
+  		);
+      if (HL_TABLE()[idx].sg_fontset != NOFONTSET)
+      {
+! 	/* If it worked and it's the Normal group, use it as the
+! 	 * normal fontset.  Same for the Menu group. */
+  	if (do_normal)
+  	    gui_init_font(arg, TRUE);
+  #   if (defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA)) && defined(FEAT_MENU)
+--- 8094,8101 ----
+  		);
+      if (HL_TABLE()[idx].sg_fontset != NOFONTSET)
+      {
+! 	/* If it worked and it's the Normal group, use it as the normal
+! 	 * fontset.  Same for the Menu group. */
+  	if (do_normal)
+  	    gui_init_font(arg, TRUE);
+  #   if (defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA)) && defined(FEAT_MENU)
+***************
+*** 8126,8131 ****
+--- 8127,8134 ----
+      else
+  # endif
+      {
++ 	if (free_font)
++ 	    gui_mch_free_font(HL_TABLE()[idx].sg_font);
+  	HL_TABLE()[idx].sg_font = font_name2handle(arg);
+  	/* If it worked and it's the Normal group, use it as the
+  	 * normal font.  Same for the Menu group. */
+***************
+*** 9162,9168 ****
+      if (HL_TABLE()[idx].sg_font_name != NULL)
+      {
+  	hl_do_font(idx, HL_TABLE()[idx].sg_font_name, FALSE, do_menu,
+! 		   do_tooltip);
+  	didit = TRUE;
+      }
+      if (HL_TABLE()[idx].sg_gui_fg_name != NULL)
+--- 9165,9171 ----
+      if (HL_TABLE()[idx].sg_font_name != NULL)
+      {
+  	hl_do_font(idx, HL_TABLE()[idx].sg_font_name, FALSE, do_menu,
+! 							    do_tooltip, TRUE);
+  	didit = TRUE;
+      }
+      if (HL_TABLE()[idx].sg_gui_fg_name != NULL)
+*** ../vim-7.3.696/src/version.c	2012-10-21 01:21:53.000000000 +0200
+--- src/version.c	2012-10-21 01:27:55.000000000 +0200
+***************
+*** 721,722 ****
+--- 721,724 ----
+  {   /* Add new patch number below this line */
++ /**/
++     697,
+  /**/
+
+-- 
+BEDEVERE: Wait.  Wait ... tell me, what also floats on water?
+ALL:      Bread?  No, no, no.  Apples .... gravy ... very small rocks ...
+ARTHUR:   A duck.
+                 "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/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.3.698 b/7.3.698
new file mode 100644
index 0000000..57b37d6
--- /dev/null
+++ b/7.3.698
@@ -0,0 +1,84 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.698
+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.3.698
+Problem:    Python 3 does not preserve state beween commands.
+Solution:   Preserve the state. (Paul Ollis)
+Files:      src/if_python.c, src/if_python3.c
+
+
+*** ../vim-7.3.697/src/if_python.c	2012-10-14 05:20:05.000000000 +0200
+--- src/if_python.c	2012-10-21 01:44:10.000000000 +0200
+***************
+*** 740,748 ****
+  #else
+  	PyMac_Initialize();
+  #endif
+! 	/* Initialise threads and save the state using PyGILState_Ensure.
+! 	 * Without this call, thread-specific state (such as the system trace
+! 	 * hook), will be lost between invocations of Python code.  */
+  	PyEval_InitThreads();
+  	pygilstate = PyGILState_Ensure();
+  #ifdef DYNAMIC_PYTHON
+--- 740,749 ----
+  #else
+  	PyMac_Initialize();
+  #endif
+! 	/* Initialise threads, and save the state using PyGILState_Ensure.
+! 	 * Without the call to PyGILState_Ensure, thread specific state (such
+! 	 * as the system trace hook), will be lost between invocations of
+! 	 * Python code. */
+  	PyEval_InitThreads();
+  	pygilstate = PyGILState_Ensure();
+  #ifdef DYNAMIC_PYTHON
+*** ../vim-7.3.697/src/if_python3.c	2012-10-14 03:22:49.000000000 +0200
+--- src/if_python3.c	2012-10-21 01:44:37.000000000 +0200
+***************
+*** 731,738 ****
+  #else
+  	PyMac_Initialize();
+  #endif
+! 	/* initialise threads, must be after Py_Initialize() */
+  	PyEval_InitThreads();
+  
+  #ifdef DYNAMIC_PYTHON3
+  	get_py3_exceptions();
+--- 731,742 ----
+  #else
+  	PyMac_Initialize();
+  #endif
+! 	/* Initialise threads, and save the state using PyGILState_Ensure.
+! 	 * Without the call to PyGILState_Ensure, thread specific state (such
+! 	 * as the system trace hook), will be lost between invocations of
+! 	 * Python code. */
+  	PyEval_InitThreads();
++ 	pygilstate = PyGILState_Ensure();
+  
+  #ifdef DYNAMIC_PYTHON3
+  	get_py3_exceptions();
+*** ../vim-7.3.697/src/version.c	2012-10-21 01:40:24.000000000 +0200
+--- src/version.c	2012-10-21 01:42:44.000000000 +0200
+***************
+*** 721,722 ****
+--- 721,724 ----
+  {   /* Add new patch number below this line */
++ /**/
++     698,
+  /**/
+
+-- 
+ALL:   A witch!  A witch!
+WITCH: It's a fair cop.
+ALL:   Burn her!  Burn her!  Let's make her into a ladder.
+                 "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/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.3.699 b/7.3.699
new file mode 100644
index 0000000..6efc869
--- /dev/null
+++ b/7.3.699
@@ -0,0 +1,86 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.699
+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.3.699
+Problem:    When 'ttymouse' is set to "sgr" manually, it is overruled by
+            automatic detection.
+Solution:   Do not use automatic detection when 'ttymouse' was set manually.
+            (Hayaki Saito)
+Files:      src/term.c
+
+
+*** ../vim-7.3.698/src/term.c	2012-08-29 16:26:01.000000000 +0200
+--- src/term.c	2012-10-21 02:07:25.000000000 +0200
+***************
+*** 4079,4102 ****
+  
+  		    if (tp[1 + (tp[0] != CSI)] == '>' && j == 2)
+  		    {
+  # ifdef TTYM_SGR
+! 			if (extra >= 277
+! # ifdef TTYM_URXVT
+! 				&& ttym_flags != TTYM_URXVT
+! # endif
+! 				)
+! 			    set_option_value((char_u *)"ttym", 0L,
+  							  (char_u *)"sgr", 0);
+!                         else
+  # endif
+! 			/* if xterm version >= 95 use mouse dragging */
+! 			if (extra >= 95
+! # ifdef TTYM_URXVT
+! 				&& ttym_flags != TTYM_URXVT
+! # endif
+! 				)
+! 			    set_option_value((char_u *)"ttym", 0L,
+  						       (char_u *)"xterm2", 0);
+  			/* if xterm version >= 141 try to get termcap codes */
+  			if (extra >= 141)
+  			{
+--- 4079,4100 ----
+  
+  		    if (tp[1 + (tp[0] != CSI)] == '>' && j == 2)
+  		    {
++ 			/* Only set 'ttymouse' automatically if it was not set
++ 			 * by the user already. */
++ 			if (!option_was_set((char_u *)"ttym"))
++ 			{
+  # ifdef TTYM_SGR
+! 			    if (extra >= 277)
+! 				set_option_value((char_u *)"ttym", 0L,
+  							  (char_u *)"sgr", 0);
+! 			    else
+  # endif
+! 			    /* if xterm version >= 95 use mouse dragging */
+! 			    if (extra >= 95)
+! 				set_option_value((char_u *)"ttym", 0L,
+  						       (char_u *)"xterm2", 0);
++ 			}
++ 
+  			/* if xterm version >= 141 try to get termcap codes */
+  			if (extra >= 141)
+  			{
+*** ../vim-7.3.698/src/version.c	2012-10-21 01:46:56.000000000 +0200
+--- src/version.c	2012-10-21 02:09:17.000000000 +0200
+***************
+*** 721,722 ****
+--- 721,724 ----
+  {   /* Add new patch number below this line */
++ /**/
++     699,
+  /**/
+
+-- 
+Never under any circumstances take a sleeping pill
+and a laxative on the same night.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.3.700 b/7.3.700
new file mode 100644
index 0000000..a1b530e
--- /dev/null
+++ b/7.3.700
@@ -0,0 +1,69 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.700
+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.3.700 
+Problem:    Cannot detect URXVT and SGR mouse support. 
+Solution:   add +mouse_urxvt and +mouse_sgr. (Hayaki Saito) 
+Files:      src/feature.h, src/eval.c 
+
+
+*** ../vim-7.3.699/src/feature.h	2012-08-15 16:20:59.000000000 +0200
+--- src/feature.h	2012-10-21 02:13:36.000000000 +0200
+***************
+*** 1038,1045 ****
+--- 1038,1047 ----
+   * +mouse_gpm		Unix only: Include code for Linux console mouse
+   *			handling.
+   * +mouse_pterm		PTerm mouse support for QNX
++  * +mouse_sgr		Unix only: Include code for for SGR-styled mouse.
+   * +mouse_sysmouse	Unix only: Include code for FreeBSD and DragonFly
+   *			console mouse handling.
++  * +mouse_urxvt		Unix only: Include code for for urxvt mosue handling.
+   * +mouse		Any mouse support (any of the above enabled).
+   */
+  /* OS/2 and Amiga console have no mouse support */
+*** ../vim-7.3.699/src/eval.c	2012-10-21 00:44:59.000000000 +0200
+--- src/eval.c	2012-10-21 02:12:48.000000000 +0200
+***************
+*** 12276,12284 ****
+--- 12276,12290 ----
+  # ifdef FEAT_MOUSE_PTERM
+  	"mouse_pterm",
+  # endif
++ # ifdef FEAT_MOUSE_SGR
++ 	"mouse_sgr",
++ # endif
+  # ifdef FEAT_SYSMOUSE
+  	"mouse_sysmouse",
+  # endif
++ # ifdef FEAT_MOUSE_URXVT
++ 	"mouse_urxvt",
++ # endif
+  # ifdef FEAT_MOUSE_XTERM
+  	"mouse_xterm",
+  # endif
+*** ../vim-7.3.699/src/version.c	2012-10-21 02:10:20.000000000 +0200
+--- src/version.c	2012-10-21 02:15:32.000000000 +0200
+***************
+*** 721,722 ****
+--- 721,724 ----
+  {   /* Add new patch number below this line */
++ /**/
++     700,
+  /**/
+
+-- 
+If you had to identify, in one word, the reason why the
+human race has not achieved, and never will achieve, its
+full potential, that word would be "meetings."
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.3.701 b/7.3.701
new file mode 100644
index 0000000..1c17aab
--- /dev/null
+++ b/7.3.701
@@ -0,0 +1,83 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.701
+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.3.701
+Problem:    MS-Windows: Crash with stack overflow when setting 'encoding'.
+Solution:   Handle that loading the iconv library may be called recursively.
+            (Jiri Sedlak)
+Files:      src/os_win32.c
+
+
+*** ../vim-7.3.700/src/os_win32.c	2012-08-02 12:31:40.000000000 +0200
+--- src/os_win32.c	2012-10-21 02:35:21.000000000 +0200
+***************
+*** 288,305 ****
+  vimLoadLib(char *name)
+  {
+      HINSTANCE dll = NULL;
+!     char old_dir[MAXPATHL];
+  
+      if (exe_path == NULL)
+  	get_exe_name();
+!     if (exe_path != NULL && mch_dirname(old_dir, MAXPATHL) == OK)
+      {
+  	/* Change directory to where the executable is, both to make sure we
+  	 * find a .dll there and to avoid looking for a .dll in the current
+  	 * directory. */
+! 	mch_chdir(exe_path);
+  	dll = LoadLibrary(name);
+- 	mch_chdir(old_dir);
+      }
+      return dll;
+  }
+--- 288,313 ----
+  vimLoadLib(char *name)
+  {
+      HINSTANCE dll = NULL;
+!     TCHAR old_dir[MAXPATHL];
+  
++     /* NOTE: Do not use mch_dirname() and mch_chdir() here, they may call
++      * vimLoadLib() recursively, which causes a stack overflow. */
+      if (exe_path == NULL)
+  	get_exe_name();
+!     if (exe_path != NULL && GetCurrentDirectory(MAXPATHL, old_dir) != 0)
+      {
+  	/* Change directory to where the executable is, both to make sure we
+  	 * find a .dll there and to avoid looking for a .dll in the current
+  	 * directory. */
+! 	SetCurrentDirectory(exe_path);
+! 	dll = LoadLibrary(name);
+! 	SetCurrentDirectory(old_dir);
+!     }
+!     else
+!     {
+! 	/* We are not able to change directory to where the executable is, try
+! 	 * to load library anyway. */
+  	dll = LoadLibrary(name);
+      }
+      return dll;
+  }
+*** ../vim-7.3.700/src/version.c	2012-10-21 02:17:28.000000000 +0200
+--- src/version.c	2012-10-21 02:35:48.000000000 +0200
+***************
+*** 721,722 ****
+--- 721,724 ----
+  {   /* Add new patch number below this line */
++ /**/
++     701,
+  /**/
+
+-- 
+BEDEVERE: And that, my lord, is how we know the Earth to be banana-shaped.
+                 "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/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.3.702 b/7.3.702
new file mode 100644
index 0000000..d36f96c
--- /dev/null
+++ b/7.3.702
@@ -0,0 +1,48 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.702
+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.3.702
+Problem:    Nmake from VS6 service pack 6 is not recognized.
+Solution:   Detect the version number. (Jiri Sedlak)
+Files:      src/Make_mvc.mak
+
+
+*** ../vim-7.3.701/src/Make_mvc.mak	2012-09-18 22:00:02.000000000 +0200
+--- src/Make_mvc.mak	2012-10-21 02:38:21.000000000 +0200
+***************
+*** 373,378 ****
+--- 373,382 ----
+  MSVCVER = 6.0
+  CPU = ix86
+  !endif
++ !if "$(_NMAKE_VER)" == "6.00.9782.0"
++ MSVCVER = 6.0
++ CPU = ix86
++ !endif
+  !if "$(_NMAKE_VER)" == "7.00.9466"
+  MSVCVER = 7.0
+  !endif
+*** ../vim-7.3.701/src/version.c	2012-10-21 02:37:02.000000000 +0200
+--- src/version.c	2012-10-21 02:40:00.000000000 +0200
+***************
+*** 721,722 ****
+--- 721,724 ----
+  {   /* Add new patch number below this line */
++ /**/
++     702,
+  /**/
+
+-- 
+Back off man, I'm a scientist.
+              -- Peter, Ghostbusters
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.3.703 b/7.3.703
new file mode 100644
index 0000000..c9f0c8a
--- /dev/null
+++ b/7.3.703
@@ -0,0 +1,97 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.703
+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.3.703
+Problem:    When 'undofile' is reset the hash is computed unnecessarily.
+Solution:   Only compute the hash when the option was set. (Christian Brabandt)
+Files:      src/option.c
+
+
+*** ../vim-7.3.702/src/option.c	2012-10-21 00:10:29.000000000 +0200
+--- src/option.c	2012-10-21 03:42:10.000000000 +0200
+***************
+*** 7573,7596 ****
+      /* 'undofile' */
+      else if ((int *)varp == &curbuf->b_p_udf || (int *)varp == &p_udf)
+      {
+! 	char_u	hash[UNDO_HASH_SIZE];
+! 	buf_T	*save_curbuf = curbuf;
+! 
+! 	for (curbuf = firstbuf; curbuf != NULL; curbuf = curbuf->b_next)
+  	{
+! 	    /* When 'undofile' is set globally: for every buffer, otherwise
+! 	     * only for the current buffer: Try to read in the undofile, if
+! 	     * one exists and the buffer wasn't changed and the buffer was
+! 	     * loaded. */
+! 	    if ((curbuf == save_curbuf
+! 				|| (opt_flags & OPT_GLOBAL) || opt_flags == 0)
+! 		    && !curbufIsChanged() && curbuf->b_ml.ml_mfp != NULL)
+  	    {
+! 		u_compute_hash(hash);
+! 		u_read_undo(NULL, hash, curbuf->b_fname);
+  	    }
+  	}
+- 	curbuf = save_curbuf;
+      }
+  #endif
+  
+--- 7573,7602 ----
+      /* 'undofile' */
+      else if ((int *)varp == &curbuf->b_p_udf || (int *)varp == &p_udf)
+      {
+! 	/* Only take action when the option was set. When reset we do not
+! 	 * delete the undo file, the option may be set again without making
+! 	 * any changes in between. */
+! 	if (curbuf->b_p_udf || p_udf)
+  	{
+! 	    char_u	hash[UNDO_HASH_SIZE];
+! 	    buf_T	*save_curbuf = curbuf;
+! 
+! 	    for (curbuf = firstbuf; curbuf != NULL; curbuf = curbuf->b_next)
+  	    {
+! 		/* When 'undofile' is set globally: for every buffer, otherwise
+! 		 * only for the current buffer: Try to read in the undofile,
+! 		 * if one exists, the buffer wasn't changed and the buffer was
+! 		 * loaded */
+! 		if ((curbuf == save_curbuf
+! 				|| (opt_flags & OPT_GLOBAL) || opt_flags == 0)
+! 			&& !curbufIsChanged() && curbuf->b_ml.ml_mfp != NULL)
+! 		{
+! 		    u_compute_hash(hash);
+! 		    u_read_undo(NULL, hash, curbuf->b_fname);
+! 		}
+  	    }
++ 	    curbuf = save_curbuf;
+  	}
+      }
+  #endif
+  
+*** ../vim-7.3.702/src/version.c	2012-10-21 02:41:04.000000000 +0200
+--- src/version.c	2012-10-21 03:43:29.000000000 +0200
+***************
+*** 721,722 ****
+--- 721,724 ----
+  {   /* Add new patch number below this line */
++ /**/
++     703,
+  /**/
+
+-- 
+Scientists decoded the first message from an alien civilization:
+        SIMPLY SEND 6 TIMES 10 TO THE 50 ATOMS OF HYDROGEN TO THE STAR
+SYSTEM AT THE TOP OF THE LIST, CROSS OFF THAT STAR SYSTEM, THEN PUT
+YOUR STAR SYSTEM AT THE BOTTOM OF THE LIST AND SEND IT TO 100 OTHER
+STAR SYSTEMS.  WITHIN ONE TENTH GALACTIC ROTATION YOU WILL RECEIVE
+ENOUGH HYDROGREN TO POWER YOUR CIVILIZATION UNTIL ENTROPY REACHES ITS
+MAXIMUM!  IT REALLY WORKS!
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.3.704 b/7.3.704
new file mode 100644
index 0000000..3b262bc
--- /dev/null
+++ b/7.3.704
@@ -0,0 +1,90 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.704
+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.3.704
+Problem:    Repeating "cgn" does not always work correctly.
+Solution:   Also fetch the operator character. (Christian Brabandt)
+Files:      src/normal.c
+
+
+*** ../vim-7.3.703/src/normal.c	2012-08-15 13:30:55.000000000 +0200
+--- src/normal.c	2012-10-21 03:51:38.000000000 +0200
+***************
+*** 960,967 ****
+  #ifdef FEAT_CMDL_INFO
+  	    need_flushbuf |= add_to_showcmd(ca.nchar);
+  #endif
+  	    if (ca.nchar == 'r' || ca.nchar == '\'' || ca.nchar == '`'
+! 						      || ca.nchar == Ctrl_BSL)
+  	    {
+  		cp = &ca.extra_char;	/* need to get a third character */
+  		if (ca.nchar != 'r')
+--- 960,970 ----
+  #ifdef FEAT_CMDL_INFO
+  	    need_flushbuf |= add_to_showcmd(ca.nchar);
+  #endif
++ 	    /* For "gn" from redo, need to get one more char to determine the
++ 	     * operator */
+  	    if (ca.nchar == 'r' || ca.nchar == '\'' || ca.nchar == '`'
+! 						       || ca.nchar == Ctrl_BSL
+! 		  || ((ca.nchar == 'n' || ca.nchar == 'N') && !stuff_empty()))
+  	    {
+  		cp = &ca.extra_char;	/* need to get a third character */
+  		if (ca.nchar != 'r')
+***************
+*** 1083,1088 ****
+--- 1086,1093 ----
+  		ca.nchar = ca.extra_char;
+  		idx = find_command(ca.cmdchar);
+  	    }
++ 	    else if (ca.nchar == 'n' || ca.nchar == 'N')
++ 		ca.oap->op_type = get_op_type(*cp, NUL);
+  	    else if (*cp == Ctrl_BSL)
+  	    {
+  		long towait = (p_ttm >= 0 ? p_ttm : p_tm);
+***************
+*** 8009,8015 ****
+  #ifdef FEAT_VISUAL
+  	if (!current_search(cap->count1, cap->nchar == 'n'))
+  #endif
+! 	    beep_flush();
+  	break;
+  
+      /*
+--- 8014,8020 ----
+  #ifdef FEAT_VISUAL
+  	if (!current_search(cap->count1, cap->nchar == 'n'))
+  #endif
+! 	    clearopbeep(oap);
+  	break;
+  
+      /*
+*** ../vim-7.3.703/src/version.c	2012-10-21 03:45:57.000000000 +0200
+--- src/version.c	2012-10-21 03:53:51.000000000 +0200
+***************
+*** 721,722 ****
+--- 721,724 ----
+  {   /* Add new patch number below this line */
++ /**/
++     704,
+  /**/
+
+-- 
+The word "leader" is derived from the word "lead", as in the material that
+bullets are made out of.  The term "leader" was popularized at about the same
+time as the invention of firearms.  It grew out of the observation that the
+person in charge of every organization was the person whom everyone wanted to
+fill with hot lead.
+   I don't recomment this; it's just a point of historical interest.
+				(Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.3.705 b/7.3.705
new file mode 100644
index 0000000..6a642e5
--- /dev/null
+++ b/7.3.705
@@ -0,0 +1,122 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.705
+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.3.705
+Problem:    Mouse features are not sorted properly. (Tony Mechelynck)
+Solution:   Put the mouse features in alphabetical order.
+Files:      src/version.c
+
+
+*** ../vim-7.3.704/src/version.c	2012-10-21 03:54:27.000000000 +0200
+--- src/version.c	2012-10-21 03:59:04.000000000 +0200
+***************
+*** 348,353 ****
+--- 348,354 ----
+  # else
+  	"-mouse",
+  #endif
++ 
+  #if defined(UNIX) || defined(VMS)
+  # ifdef FEAT_MOUSE_DEC
+  	"+mouse_dec",
+***************
+*** 369,402 ****
+  # else
+  	"-mouse_netterm",
+  # endif
+  # ifdef FEAT_SYSMOUSE
+  	"+mouse_sysmouse",
+  # else
+  	"-mouse_sysmouse",
+  # endif
+- # ifdef FEAT_MOUSE_XTERM
+- 	"+mouse_xterm",
+- # else
+- 	"-mouse_xterm",
+- # endif
+  # ifdef FEAT_MOUSE_URXVT
+  	"+mouse_urxvt",
+  # else
+  	"-mouse_urxvt",
+  # endif
+! # ifdef FEAT_MOUSE_SGR
+! 	"+mouse_sgr",
+! # else
+! 	"-mouse_sgr",
+! # endif
+! #endif
+! #ifdef __QNX__
+! # ifdef FEAT_MOUSE_PTERM
+! 	"+mouse_pterm",
+  # else
+! 	"-mouse_pterm",
+  # endif
+  #endif
+  #ifdef FEAT_MBYTE_IME
+  # ifdef DYNAMIC_IME
+  	"+multi_byte_ime/dyn",
+--- 370,408 ----
+  # else
+  	"-mouse_netterm",
+  # endif
++ #endif
++ 
++ #ifdef __QNX__
++ # ifdef FEAT_MOUSE_PTERM
++ 	"+mouse_pterm",
++ # else
++ 	"-mouse_pterm",
++ # endif
++ #endif
++ 
++ #if defined(UNIX) || defined(VMS)
++ # ifdef FEAT_MOUSE_SGR
++ 	"+mouse_sgr",
++ # else
++ 	"-mouse_sgr",
++ # endif
+  # ifdef FEAT_SYSMOUSE
+  	"+mouse_sysmouse",
+  # else
+  	"-mouse_sysmouse",
+  # endif
+  # ifdef FEAT_MOUSE_URXVT
+  	"+mouse_urxvt",
+  # else
+  	"-mouse_urxvt",
+  # endif
+! # ifdef FEAT_MOUSE_XTERM
+! 	"+mouse_xterm",
+  # else
+! 	"-mouse_xterm",
+  # endif
+  #endif
++ 
+  #ifdef FEAT_MBYTE_IME
+  # ifdef DYNAMIC_IME
+  	"+multi_byte_ime/dyn",
+*** ../vim-7.3.704/src/version.c	2012-10-21 03:54:27.000000000 +0200
+--- src/version.c	2012-10-21 03:59:04.000000000 +0200
+***************
+*** 721,722 ****
+--- 727,730 ----
+  {   /* Add new patch number below this line */
++ /**/
++     705,
+  /**/
+
+-- 
+Are leaders born or made?  And if they're made, can we return them under
+warranty?
+				(Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.3.706 b/7.3.706
new file mode 100644
index 0000000..acf7426
--- /dev/null
+++ b/7.3.706
@@ -0,0 +1,55 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.706
+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.3.706 (after 7.3.697)
+Problem:    Can't build Motif version.
+Solution:   Fix wrongly named variable. (Ike Devolder)
+Files:      src/syntax.c
+
+
+*** ../vim-7.3.705/src/syntax.c	2012-10-21 01:40:24.000000000 +0200
+--- src/syntax.c	2012-10-21 21:22:46.000000000 +0200
+***************
+*** 8082,8088 ****
+  	|| do_tooltip
+  #  endif
+  	    )
+! 	if (free_fontset)
+  	    gui_mch_free_fontset(HL_TABLE()[idx].sg_fontset);
+  	HL_TABLE()[idx].sg_fontset = fontset_name2handle(arg, 0
+  #  ifdef FONTSET_ALWAYS
+--- 8082,8088 ----
+  	|| do_tooltip
+  #  endif
+  	    )
+! 	if (free_font)
+  	    gui_mch_free_fontset(HL_TABLE()[idx].sg_fontset);
+  	HL_TABLE()[idx].sg_fontset = fontset_name2handle(arg, 0
+  #  ifdef FONTSET_ALWAYS
+*** ../vim-7.3.705/src/version.c	2012-10-21 04:00:03.000000000 +0200
+--- src/version.c	2012-10-21 21:25:07.000000000 +0200
+***************
+*** 727,728 ****
+--- 727,730 ----
+  {   /* Add new patch number below this line */
++ /**/
++     706,
+  /**/
+
+-- 
+"You're fired." (1980)
+"You're laid off." (1985)
+"You're downsized." (1990)
+"You're rightsized." (1992)
+				(Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.3.707 b/7.3.707
new file mode 100644
index 0000000..a541b2e
--- /dev/null
+++ b/7.3.707
@@ -0,0 +1,127 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.707
+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.3.707 (after 7.3.701)
+Problem:    Problems loading a library for a file name with non-latin
+            characters.
+Solution:   Use wide system functions when possible. (Ken Takata)
+Files:      src/os_win32.c, src/os_win32.h
+
+
+*** ../vim-7.3.706/src/os_win32.c	2012-10-21 02:37:02.000000000 +0200
+--- src/os_win32.c	2012-10-21 21:33:58.000000000 +0200
+***************
+*** 287,313 ****
+      HINSTANCE
+  vimLoadLib(char *name)
+  {
+!     HINSTANCE dll = NULL;
+!     TCHAR old_dir[MAXPATHL];
+  
+      /* NOTE: Do not use mch_dirname() and mch_chdir() here, they may call
+       * vimLoadLib() recursively, which causes a stack overflow. */
+      if (exe_path == NULL)
+  	get_exe_name();
+!     if (exe_path != NULL && GetCurrentDirectory(MAXPATHL, old_dir) != 0)
+      {
+! 	/* Change directory to where the executable is, both to make sure we
+! 	 * find a .dll there and to avoid looking for a .dll in the current
+! 	 * directory. */
+! 	SetCurrentDirectory(exe_path);
+! 	dll = LoadLibrary(name);
+! 	SetCurrentDirectory(old_dir);
+!     }
+!     else
+!     {
+! 	/* We are not able to change directory to where the executable is, try
+! 	 * to load library anyway. */
+! 	dll = LoadLibrary(name);
+      }
+      return dll;
+  }
+--- 287,326 ----
+      HINSTANCE
+  vimLoadLib(char *name)
+  {
+!     HINSTANCE	dll = NULL;
+!     char	old_dir[MAXPATHL];
+  
+      /* NOTE: Do not use mch_dirname() and mch_chdir() here, they may call
+       * vimLoadLib() recursively, which causes a stack overflow. */
+      if (exe_path == NULL)
+  	get_exe_name();
+!     if (exe_path != NULL)
+      {
+! #ifdef FEAT_MBYTE
+! 	WCHAR old_dirw[MAXPATHL];
+! 
+! 	if (GetCurrentDirectoryW(MAXPATHL, old_dirw) != 0)
+! 	{
+! 	    /* Change directory to where the executable is, both to make
+! 	     * sure we find a .dll there and to avoid looking for a .dll
+! 	     * in the current directory. */
+! 	    SetCurrentDirectory(exe_path);
+! 	    dll = LoadLibrary(name);
+! 	    SetCurrentDirectoryW(old_dirw);
+! 	    return dll;
+! 	}
+! 	/* Retry with non-wide function (for Windows 98). */
+! 	if (GetLastError() == ERROR_CALL_NOT_IMPLEMENTED)
+! #endif
+! 	    if (GetCurrentDirectory(MAXPATHL, old_dir) != 0)
+! 	    {
+! 		/* Change directory to where the executable is, both to make
+! 		 * sure we find a .dll there and to avoid looking for a .dll
+! 		 * in the current directory. */
+! 		SetCurrentDirectory(exe_path);
+! 		dll = LoadLibrary(name);
+! 		SetCurrentDirectory(old_dir);
+! 	    }
+      }
+      return dll;
+  }
+*** ../vim-7.3.706/src/os_win32.h	2011-08-10 17:07:56.000000000 +0200
+--- src/os_win32.h	2012-10-21 21:33:30.000000000 +0200
+***************
+*** 108,114 ****
+   */
+  #define CMDBUFFSIZE 1024	/* size of the command processing buffer */
+  
+! /* _MAX_PATH is only 256 (stdlib.h), but we want more for the 'path' option,
+   * thus use a larger number. */
+  #define MAXPATHL	1024
+  
+--- 108,114 ----
+   */
+  #define CMDBUFFSIZE 1024	/* size of the command processing buffer */
+  
+! /* _MAX_PATH is only 260 (stdlib.h), but we want more for the 'path' option,
+   * thus use a larger number. */
+  #define MAXPATHL	1024
+  
+*** ../vim-7.3.706/src/version.c	2012-10-21 21:25:17.000000000 +0200
+--- src/version.c	2012-10-21 21:37:52.000000000 +0200
+***************
+*** 727,728 ****
+--- 727,730 ----
+  {   /* Add new patch number below this line */
++ /**/
++     707,
+  /**/
+
+-- 
+Our job was to build a computer information system for the branch banks.  We
+were the perfect people for the job: Dean had seen a computer once, and I had
+heard Dean talk about it.
+				(Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.3.708 b/7.3.708
new file mode 100644
index 0000000..644930d
--- /dev/null
+++ b/7.3.708
@@ -0,0 +1,107 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.708
+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.3.708
+Problem:    Filler lines above the first line may be hidden when opening Vim.
+Solution:   Change how topfill is computed. (Christian Brabandt)
+Files:      src/diff.c, src/testdir/test47.in, src/testdir/test47.ok
+
+
+*** ../vim-7.3.707/src/diff.c	2012-05-18 18:47:11.000000000 +0200
+--- src/diff.c	2012-10-21 22:08:44.000000000 +0200
+***************
+*** 615,625 ****
+  #endif
+  	    /* A change may have made filler lines invalid, need to take care
+  	     * of that for other windows. */
+! 	    if (wp != curwin && wp->w_topfill > 0)
+  	    {
+- 		n = diff_check(wp, wp->w_topline);
+  		if (wp->w_topfill > n)
+  		    wp->w_topfill = (n < 0 ? 0 : n);
+  	    }
+  	}
+  }
+--- 615,627 ----
+  #endif
+  	    /* A change may have made filler lines invalid, need to take care
+  	     * of that for other windows. */
+! 	    n = diff_check(wp, wp->w_topline);
+! 	    if ((wp != curwin && wp->w_topfill > 0) || n > 0)
+  	    {
+  		if (wp->w_topfill > n)
+  		    wp->w_topfill = (n < 0 ? 0 : n);
++ 		else if (n > 0 && n > wp->w_topfill)
++ 		    wp->w_topfill = n;
+  	    }
+  	}
+  }
+*** ../vim-7.3.707/src/testdir/test47.in	2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test47.in	2012-10-21 22:08:44.000000000 +0200
+***************
+*** 36,42 ****
+  :call append("$", two)
+  :call append("$", three)
+  :$-2,$w! test.out
+! :unlet one two three
+  :qa!
+  ENDTEST
+  
+--- 36,57 ----
+  :call append("$", two)
+  :call append("$", three)
+  :$-2,$w! test.out
+! :" Test that diffing shows correct filler lines
+! :diffoff!
+! :windo :bw!
+! :enew
+! :put =range(4,10)
+! :1d _
+! :vnew
+! :put =range(1,10)
+! :1d _
+! :windo :diffthis
+! :wincmd h
+! :let w0=line('w0')
+! :enew
+! :put =w0
+! :.w >> test.out
+! :unlet! one two three w0
+  :qa!
+  ENDTEST
+  
+*** ../vim-7.3.707/src/testdir/test47.ok	2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test47.ok	2012-10-21 22:08:44.000000000 +0200
+***************
+*** 1,3 ****
+--- 1,4 ----
+  2-4-5-6-8-9
+  1-2-4-5-8
+  2-3-4-5-6-7-8
++ 1
+*** ../vim-7.3.707/src/version.c	2012-10-21 21:38:42.000000000 +0200
+--- src/version.c	2012-10-21 22:10:42.000000000 +0200
+***************
+*** 727,728 ****
+--- 727,730 ----
+  {   /* Add new patch number below this line */
++ /**/
++     708,
+  /**/
+
+-- 
+At some point in the project somebody will start whining about the need to
+determine the project "requirements".  This involves interviewing people who
+don't know what they want but, curiously, know exactly when they need it.
+				(Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.3.709 b/7.3.709
new file mode 100644
index 0000000..40c837f
--- /dev/null
+++ b/7.3.709
@@ -0,0 +1,53 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.709
+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.3.709
+Problem:    Compiler warning for unused argument.
+Solution:   Add UNUSED.
+Files:	    src/eval.c
+
+
+*** ../vim-7.3.708/src/eval.c	2012-10-21 02:17:28.000000000 +0200
+--- src/eval.c	2012-10-21 23:53:32.000000000 +0200
+***************
+*** 16664,16670 ****
+   */
+      static void
+  f_shiftwidth(argvars, rettv)
+!     typval_T	*argvars;
+      typval_T	*rettv;
+  {
+      rettv->vval.v_number = get_sw_value();
+--- 16664,16670 ----
+   */
+      static void
+  f_shiftwidth(argvars, rettv)
+!     typval_T	*argvars UNUSED;
+      typval_T	*rettv;
+  {
+      rettv->vval.v_number = get_sw_value();
+*** ../vim-7.3.708/src/version.c	2012-10-21 22:18:17.000000000 +0200
+--- src/version.c	2012-10-21 23:55:01.000000000 +0200
+***************
+*** 727,728 ****
+--- 727,730 ----
+  {   /* Add new patch number below this line */
++ /**/
++     709,
+  /**/
+
+-- 
+The only way the average employee can speak to an executive is by taking a
+second job as a golf caddie.
+				(Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.3.710 b/7.3.710
new file mode 100644
index 0000000..bfefea3
--- /dev/null
+++ b/7.3.710
@@ -0,0 +1,53 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.710
+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.3.710 (after 7.3.704)
+Problem:    Patch 7.3.704 breaks "fn".
+Solution:   Add check for ca.cmdchar. (Christian Brabandt)
+Files:      src/normal.c
+
+
+*** ../vim-7.3.709/src/normal.c	2012-10-21 03:54:27.000000000 +0200
+--- src/normal.c	2012-10-23 05:02:27.000000000 +0200
+***************
+*** 1086,1092 ****
+  		ca.nchar = ca.extra_char;
+  		idx = find_command(ca.cmdchar);
+  	    }
+! 	    else if (ca.nchar == 'n' || ca.nchar == 'N')
+  		ca.oap->op_type = get_op_type(*cp, NUL);
+  	    else if (*cp == Ctrl_BSL)
+  	    {
+--- 1086,1092 ----
+  		ca.nchar = ca.extra_char;
+  		idx = find_command(ca.cmdchar);
+  	    }
+! 	    else if ((ca.nchar == 'n' || ca.nchar == 'N') && ca.cmdchar == 'g')
+  		ca.oap->op_type = get_op_type(*cp, NUL);
+  	    else if (*cp == Ctrl_BSL)
+  	    {
+*** ../vim-7.3.709/src/version.c	2012-10-21 23:55:59.000000000 +0200
+--- src/version.c	2012-10-23 04:59:21.000000000 +0200
+***************
+*** 727,728 ****
+--- 727,730 ----
+  {   /* Add new patch number below this line */
++ /**/
++     710,
+  /**/
+
+-- 
+The budget process was invented by an alien race of sadistic beings who
+resemble large cats.
+				(Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.3.711 b/7.3.711
new file mode 100644
index 0000000..74ef3cb
--- /dev/null
+++ b/7.3.711
@@ -0,0 +1,178 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.711
+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.3.711 (after 7.3.688)
+Problem:    vim.current.buffer is not available. (lilydjwg)
+Solution:   Use py3_PyUnicode_AsUTF8 instead of py3_PyUnicode_AsUTF8String.
+            (Ken Takata)
+Files:      src/if_python3.c
+
+
+*** ../vim-7.3.710/src/if_python3.c	2012-10-21 01:46:56.000000000 +0200
+--- src/if_python3.c	2012-10-23 05:15:31.000000000 +0200
+***************
+*** 176,182 ****
+  # define PyImport_AppendInittab py3_PyImport_AppendInittab
+  # if PY_VERSION_HEX >= 0x030300f0
+  #  undef _PyUnicode_AsString
+! #  define _PyUnicode_AsString py3_PyUnicode_AsUTF8String
+  # else
+  #  define _PyUnicode_AsString py3__PyUnicode_AsString
+  # endif
+--- 176,182 ----
+  # define PyImport_AppendInittab py3_PyImport_AppendInittab
+  # if PY_VERSION_HEX >= 0x030300f0
+  #  undef _PyUnicode_AsString
+! #  define _PyUnicode_AsString py3_PyUnicode_AsUTF8
+  # else
+  #  define _PyUnicode_AsString py3__PyUnicode_AsString
+  # endif
+***************
+*** 286,296 ****
+  static PyObject* py3__Py_TrueStruct;
+  static int (*py3_PyModule_AddObject)(PyObject *m, const char *name, PyObject *o);
+  static int (*py3_PyImport_AppendInittab)(const char *name, PyObject* (*initfunc)(void));
+! #if PY_VERSION_HEX >= 0x030300f0
+! static char* (*py3_PyUnicode_AsUTF8String)(PyObject *unicode);
+! #else
+  static char* (*py3__PyUnicode_AsString)(PyObject *unicode);
+! #endif
+  static PyObject* (*py3_PyUnicode_AsEncodedString)(PyObject *unicode, const char* encoding, const char* errors);
+  static char* (*py3_PyBytes_AsString)(PyObject *bytes);
+  static int (*py3_PyBytes_AsStringAndSize)(PyObject *bytes, char **buffer, int *length);
+--- 286,296 ----
+  static PyObject* py3__Py_TrueStruct;
+  static int (*py3_PyModule_AddObject)(PyObject *m, const char *name, PyObject *o);
+  static int (*py3_PyImport_AppendInittab)(const char *name, PyObject* (*initfunc)(void));
+! # if PY_VERSION_HEX >= 0x030300f0
+! static char* (*py3_PyUnicode_AsUTF8)(PyObject *unicode);
+! # else
+  static char* (*py3__PyUnicode_AsString)(PyObject *unicode);
+! # endif
+  static PyObject* (*py3_PyUnicode_AsEncodedString)(PyObject *unicode, const char* encoding, const char* errors);
+  static char* (*py3_PyBytes_AsString)(PyObject *bytes);
+  static int (*py3_PyBytes_AsStringAndSize)(PyObject *bytes, char **buffer, int *length);
+***************
+*** 348,360 ****
+      {"PySys_SetArgv", (PYTHON_PROC*)&py3_PySys_SetArgv},
+      {"Py_SetPythonHome", (PYTHON_PROC*)&py3_Py_SetPythonHome},
+      {"Py_Initialize", (PYTHON_PROC*)&py3_Py_Initialize},
+! #ifndef PY_SSIZE_T_CLEAN
+      {"PyArg_ParseTuple", (PYTHON_PROC*)&py3_PyArg_ParseTuple},
+      {"Py_BuildValue", (PYTHON_PROC*)&py3_Py_BuildValue},
+! #else
+      {"_PyArg_ParseTuple_SizeT", (PYTHON_PROC*)&py3_PyArg_ParseTuple},
+      {"_Py_BuildValue_SizeT", (PYTHON_PROC*)&py3_Py_BuildValue},
+! #endif
+      {"PyMem_Free", (PYTHON_PROC*)&py3_PyMem_Free},
+      {"PyMem_Malloc", (PYTHON_PROC*)&py3_PyMem_Malloc},
+      {"PyList_New", (PYTHON_PROC*)&py3_PyList_New},
+--- 348,360 ----
+      {"PySys_SetArgv", (PYTHON_PROC*)&py3_PySys_SetArgv},
+      {"Py_SetPythonHome", (PYTHON_PROC*)&py3_Py_SetPythonHome},
+      {"Py_Initialize", (PYTHON_PROC*)&py3_Py_Initialize},
+! # ifndef PY_SSIZE_T_CLEAN
+      {"PyArg_ParseTuple", (PYTHON_PROC*)&py3_PyArg_ParseTuple},
+      {"Py_BuildValue", (PYTHON_PROC*)&py3_Py_BuildValue},
+! # else
+      {"_PyArg_ParseTuple_SizeT", (PYTHON_PROC*)&py3_PyArg_ParseTuple},
+      {"_Py_BuildValue_SizeT", (PYTHON_PROC*)&py3_Py_BuildValue},
+! # endif
+      {"PyMem_Free", (PYTHON_PROC*)&py3_PyMem_Free},
+      {"PyMem_Malloc", (PYTHON_PROC*)&py3_PyMem_Malloc},
+      {"PyList_New", (PYTHON_PROC*)&py3_PyList_New},
+***************
+*** 406,416 ****
+      {"PyObject_Init", (PYTHON_PROC*)&py3__PyObject_Init},
+      {"PyModule_AddObject", (PYTHON_PROC*)&py3_PyModule_AddObject},
+      {"PyImport_AppendInittab", (PYTHON_PROC*)&py3_PyImport_AppendInittab},
+! #if PY_VERSION_HEX >= 0x030300f0
+!     {"PyUnicode_AsUTF8String", (PYTHON_PROC*)&py3_PyUnicode_AsUTF8String},
+! #else
+      {"_PyUnicode_AsString", (PYTHON_PROC*)&py3__PyUnicode_AsString},
+! #endif
+      {"PyBytes_AsString", (PYTHON_PROC*)&py3_PyBytes_AsString},
+      {"PyBytes_AsStringAndSize", (PYTHON_PROC*)&py3_PyBytes_AsStringAndSize},
+      {"PyBytes_FromString", (PYTHON_PROC*)&py3_PyBytes_FromString},
+--- 406,416 ----
+      {"PyObject_Init", (PYTHON_PROC*)&py3__PyObject_Init},
+      {"PyModule_AddObject", (PYTHON_PROC*)&py3_PyModule_AddObject},
+      {"PyImport_AppendInittab", (PYTHON_PROC*)&py3_PyImport_AppendInittab},
+! # if PY_VERSION_HEX >= 0x030300f0
+!     {"PyUnicode_AsUTF8", (PYTHON_PROC*)&py3_PyUnicode_AsUTF8},
+! # else
+      {"_PyUnicode_AsString", (PYTHON_PROC*)&py3__PyUnicode_AsString},
+! # endif
+      {"PyBytes_AsString", (PYTHON_PROC*)&py3_PyBytes_AsString},
+      {"PyBytes_AsStringAndSize", (PYTHON_PROC*)&py3_PyBytes_AsStringAndSize},
+      {"PyBytes_FromString", (PYTHON_PROC*)&py3_PyBytes_FromString},
+***************
+*** 503,514 ****
+  
+      /* Load unicode functions separately as only the ucs2 or the ucs4 functions
+       * will be present in the library. */
+! #if PY_VERSION_HEX >= 0x030300f0
+      ucs_from_string = symbol_from_dll(hinstPy3, "PyUnicode_FromString");
+      ucs_decode = symbol_from_dll(hinstPy3, "PyUnicode_Decode");
+      ucs_as_encoded_string = symbol_from_dll(hinstPy3,
+  	    "PyUnicode_AsEncodedString");
+! #else
+      ucs_from_string = symbol_from_dll(hinstPy3, "PyUnicodeUCS2_FromString");
+      ucs_decode = symbol_from_dll(hinstPy3,
+  	    "PyUnicodeUCS2_Decode");
+--- 503,514 ----
+  
+      /* Load unicode functions separately as only the ucs2 or the ucs4 functions
+       * will be present in the library. */
+! # if PY_VERSION_HEX >= 0x030300f0
+      ucs_from_string = symbol_from_dll(hinstPy3, "PyUnicode_FromString");
+      ucs_decode = symbol_from_dll(hinstPy3, "PyUnicode_Decode");
+      ucs_as_encoded_string = symbol_from_dll(hinstPy3,
+  	    "PyUnicode_AsEncodedString");
+! # else
+      ucs_from_string = symbol_from_dll(hinstPy3, "PyUnicodeUCS2_FromString");
+      ucs_decode = symbol_from_dll(hinstPy3,
+  	    "PyUnicodeUCS2_Decode");
+***************
+*** 523,529 ****
+  	ucs_as_encoded_string = symbol_from_dll(hinstPy3,
+  		"PyUnicodeUCS4_AsEncodedString");
+      }
+! #endif
+      if (ucs_from_string && ucs_decode && ucs_as_encoded_string)
+      {
+  	py3_PyUnicode_FromString = ucs_from_string;
+--- 523,529 ----
+  	ucs_as_encoded_string = symbol_from_dll(hinstPy3,
+  		"PyUnicodeUCS4_AsEncodedString");
+      }
+! # endif
+      if (ucs_from_string && ucs_decode && ucs_as_encoded_string)
+      {
+  	py3_PyUnicode_FromString = ucs_from_string;
+*** ../vim-7.3.710/src/version.c	2012-10-23 05:08:49.000000000 +0200
+--- src/version.c	2012-10-23 05:14:27.000000000 +0200
+***************
+*** 727,728 ****
+--- 727,730 ----
+  {   /* Add new patch number below this line */
++ /**/
++     711,
+  /**/
+
+-- 
+The fastest way to get an engineer to solve a problem is to declare that the
+problem is unsolvable.  No engineer can walk away from an unsolvable problem
+until it's solved.
+				(Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.3.712 b/7.3.712
new file mode 100644
index 0000000..2ca9fb9
--- /dev/null
+++ b/7.3.712
@@ -0,0 +1,48 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.712
+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.3.712
+Problem:    Nmake from VS2010 SP1 is not recognized.
+Solution:   Add the version number. (Ken Takata)
+Files:      src/Make_mvc.mak
+
+
+*** ../vim-7.3.711/src/Make_mvc.mak	2012-10-21 02:41:04.000000000 +0200
+--- src/Make_mvc.mak	2012-10-23 05:33:33.000000000 +0200
+***************
+*** 407,412 ****
+--- 407,415 ----
+  !if "$(_NMAKE_VER)" == "10.00.30319.01"
+  MSVCVER = 10.0
+  !endif
++ !if "$(_NMAKE_VER)" == "10.00.40219.01"
++ MSVCVER = 10.0
++ !endif
+  !if "$(_NMAKE_VER)" == "11.00.50727.1"
+  MSVCVER = 11.0
+  !endif
+*** ../vim-7.3.711/src/version.c	2012-10-23 05:17:33.000000000 +0200
+--- src/version.c	2012-10-23 05:34:24.000000000 +0200
+***************
+*** 727,728 ****
+--- 727,730 ----
+  {   /* Add new patch number below this line */
++ /**/
++     712,
+  /**/
+
+-- 
+Engineers are widely recognized as superior marriage material: intelligent,
+dependable, employed, honest, and handy around the house.
+				(Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/README.patches b/README.patches
index cb9e52e..c407164 100644
--- a/README.patches
+++ b/README.patches
@@ -713,3 +713,33 @@ Individual patches for Vim 7.3:
   2190  7.3.680  some files missing in the list of distributed files
   2014  7.3.681  list of distributed files picks up backup files
   1791  7.3.682  (after 7.3.677) compiler complains about incompatible types
+  2578  7.3.683  ":python" may crash when vimbindeval() returns None
+  4714  7.3.684  "make test" does not delete lua.vim
+  1827  7.3.685  no test for what patch 7.3.673 fixes
+  2226  7.3.686  cannot use CTRL-\ e mapping when entering an expression
+  1386  7.3.687  test 16 fails when $DISPLAY is not set
+  5283  7.3.688  Python 3.3 is not supported
+  2266  7.3.689  MzScheme and Lua may use a NULL string
+  1806  7.3.690  crash with directory name equal to maximum path length
+  1910  7.3.691  state specific to the Python thread is discarded
+  1598  7.3.692  can't build GTK version with GTK 2.0
+  5071  7.3.693  can't make 'softtabstop' follow 'shiftwidth'
+  4631  7.3.694  'shiftwidth' is not so easy to use in indent files
+  3710  7.3.695  balloon cannot show multi-byte text
+  2994  7.3.696  message about added spell language can be wrong
+  6108  7.3.697  leaking resources when setting GUI font
+  2742  7.3.698  Python 3 does not preserve state beween commands
+  2522  7.3.699  manually set 'ttymouse' is overruled by automatic detection
+  2214  7.3.700  cannot detect URXVT and SGR mouse support
+  2616  7.3.701  MS-Windows: Crash with stack overflow when setting 'encoding'
+  1352  7.3.702  nmake from VS6 service pack 6 is not recognized
+  3326  7.3.703  when 'undofile' is reset the hash is computed unnecessarily
+  2906  7.3.704  repeating "cgn" does not always work correctly
+  2581  7.3.705  mouse features are not in alphabetical order
+  1638  7.3.706  (after 7.3.697) can't build Motif version
+  4088  7.3.707  (after 7.3.701) library name with non-latin characters fails
+  3001  7.3.708  filler lines above the first line may be hidden
+  1513  7.3.709  compiler warning for unused argument
+  1685  7.3.710  (after 7.3.704) "fn" is broken
+  7579  7.3.711  (after 7.3.688) vim.current.buffer is not available
+  1474  7.3.712  nmake from VS2010 SP1 is not recognized
diff --git a/vim-update.sh b/vim-update.sh
index dd8c34b..9d87b8f 100755
--- a/vim-update.sh
+++ b/vim-update.sh
@@ -2,7 +2,7 @@
 debug=""
 #debug="echo"
 
-cd $HOME/src/fedora/rpms/vim/master/
+cd `dirname $0`
 LANG=C
 SPEC=vim.spec
 
diff --git a/vim.spec b/vim.spec
index 2f532d3..7d7be9f 100644
--- a/vim.spec
+++ b/vim.spec
@@ -18,7 +18,7 @@
 #used for pre-releases:
 %define beta %{nil}
 %define vimdir vim73%{?beta}
-%define patchlevel 682
+%define patchlevel 712
 
 Summary: The VIM editor
 URL:     http://www.vim.org/
@@ -738,6 +738,36 @@ Patch679: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.679
 Patch680: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.680
 Patch681: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.681
 Patch682: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.682
+Patch683: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.683
+Patch684: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.684
+Patch685: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.685
+Patch686: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.686
+Patch687: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.687
+Patch688: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.688
+Patch689: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.689
+Patch690: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.690
+Patch691: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.691
+Patch692: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.692
+Patch693: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.693
+Patch694: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.694
+Patch695: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.695
+Patch696: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.696
+Patch697: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.697
+Patch698: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.698
+Patch699: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.699
+Patch700: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.700
+Patch701: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.701
+Patch702: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.702
+Patch703: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.703
+Patch704: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.704
+Patch705: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.705
+Patch706: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.706
+Patch707: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.707
+Patch708: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.708
+Patch709: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.709
+Patch710: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.710
+Patch711: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.711
+Patch712: ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.712
 
 Patch3000: vim-7.3-syntax.patch
 Patch3002: vim-7.1-nowarnings.patch
@@ -1564,6 +1594,36 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk
 %patch680 -p0
 %patch681 -p0
 %patch682 -p0
+%patch683 -p0
+%patch684 -p0
+%patch685 -p0
+%patch686 -p0
+%patch687 -p0
+%patch688 -p0
+%patch689 -p0
+%patch690 -p0
+%patch691 -p0
+%patch692 -p0
+%patch693 -p0
+%patch694 -p0
+%patch695 -p0
+%patch696 -p0
+%patch697 -p0
+%patch698 -p0
+%patch699 -p0
+%patch700 -p0
+%patch701 -p0
+%patch702 -p0
+%patch703 -p0
+%patch704 -p0
+%patch705 -p0
+%patch706 -p0
+%patch707 -p0
+%patch708 -p0
+%patch709 -p0
+%patch710 -p0
+%patch711 -p0
+%patch712 -p0
 
 
 # install spell files
@@ -1779,8 +1839,11 @@ if [ -n "\$BASH_VERSION" -o -n "\$KSH_VERSION" -o -n "\$ZSH_VERSION" ]; then
 fi
 EOF
 cat >$RPM_BUILD_ROOT/%{_sysconfdir}/profile.d/vim.csh <<EOF
-[ -x /%{_bindir}/id ] || exit
-[ \`/%{_bindir}/id -u\` -gt 200 ] && alias vi vim
+if ( -x /usr/bin/id ) then
+    if ( "\`/usr/bin/id -u\`" > 100 ) then
+        alias vi vim
+    endif
+endif
 EOF
 chmod 0644 $RPM_BUILD_ROOT/%{_sysconfdir}/profile.d/*
 install -p -m644 %{SOURCE4} $RPM_BUILD_ROOT/%{_sysconfdir}/vimrc
@@ -2033,8 +2096,62 @@ rm -rf $RPM_BUILD_ROOT
 %{_datadir}/icons/hicolor/*/apps/*
 
 %changelog
-* Wed May 23 2012 Karsten Hopp <karsten@redhat.com> 7.3.515-2
-- add back /bin/vi (bz #822314, #823090, #823021)
+* Mon Nov 12 2012 Karsten Hopp <karsten@redhat.com> 7.3.712-1
+- patchlevel 712
+
+* Mon Nov 12 2012 Karsten Hopp <karsten@redhat.com> 7.3.682-2
+- fix vim.csh syntax
+
+* Fri Oct 05 2012 Karsten Hopp <karsten@redhat.com> 7.3.682-1
+- patchlevel 682
+- use --enable-rubyinterp=dynamic and --enable-pythoninterp=dynamic
+
+* Tue Aug 28 2012 Karsten Hopp <karsten@redhat.com> 7.3.638-2
+- fix some man page typos (#668894, #675480)
+- own usr/share/vim/vimfiles/doc/tags (#845564)
+- add path to csope database (#844843)
+
+* Tue Aug 28 2012 Karsten Hopp <karsten@redhat.com> 7.3.638-1
+- patchlevel 638
+
+* Mon Aug 06 2012 Karsten Hopp <karsten@redhat.com> 2:7.3.622-2
+- add epoch to spec.vim and automatic changelog entries
+
+* Mon Aug 06 2012 Karsten Hopp <karsten@redhat.com> 7.3.622-1
+- patchlevel 622
+
+* Mon Aug 06 2012 Karsten Hopp <karsten@redhat.com> 7.3.604-1
+- drop vim-6.1-rh3.patch, (bz #754801)
+
+* Wed Jul 18 2012 Karsten Hopp <karsten@redhat.com> 7.3.604-1
+- patchlevel 604
+
+* Wed Jul 11 2012 Petr Pisar <ppisar@redhat.com> - 2:7.3.594-2
+- Perl 5.16 rebuild
+
+* Tue Jul 10 2012 Karsten Hopp <karsten@redhat.com> 7.3.594-1
+- patchlevel 594
+
+* Tue Jul 10 2012 Karsten Hopp <karsten@redhat.com> 7.3.592-1
+- patchlevel 592
+
+* Mon Jul 09 2012 Petr Pisar <ppisar@redhat.com> - 2:7.3.584-2
+- Perl 5.16 rebuild
+
+* Mon Jul 02 2012 Karsten Hopp <karsten@redhat.com> 7.3.584-1
+- patchlevel 584
+
+* Thu Jun 28 2012 Petr Pisar <ppisar@redhat.com> - 2:7.3.556-2
+- Perl 5.16 rebuild
+
+* Mon Jun 18 2012 Karsten Hopp <karsten@redhat.com> 7.3.556-1
+- patchlevel 556
+
+* Mon Jun 11 2012 Petr Pisar <ppisar@redhat.com> - 2:7.3.515-2
+- Perl 5.16 rebuild
+
+* Mon May 21 2012 Karsten Hopp <karsten@redhat.com> 7.3.515-1
+- enable highlighting for older log files (#816848)
 
 * Tue May 08 2012 Karsten Hopp <karsten@redhat.com> 7.3.515-1
 - patchlevel 515