Changeset 4641a79


Ignore:
Timestamp:
Jul 22, 2012, 4:15:17 AM (12 years ago)
Author:
William Harrington <kb0iic@…>
Branches:
clfs-2.1, clfs-3.0.0-systemd, clfs-3.0.0-sysvinit, master, systemd, sysvinit
Children:
1752595
Parents:
c1c44b9
Message:

Update vim 7.3 to patch level 608.

File:
1 moved

Legend:

Unmodified
Added
Removed
  • patches/vim-7.3-branch-update-5.patch

    rc1c44b9 r4641a79  
    1 Submitted By: Jonathan Norman (jonathan at bluesquarelinux dot co dot uk)
    2 Date: 2012-06-03
    3 Initial Package Version: 7.3
    4 Origin: Upstream
    5 Upstream Status: Applied
    6 Description: Contains all upstream patches up to 7.3.538
    7 
    81diff -Naur vim73.orig/Filelist vim73/Filelist
    9 --- vim73.orig/Filelist 2012-06-03 23:09:52.956007482 +0000
    10 +++ vim73/Filelist      2012-06-03 23:09:54.868058365 +0000
     2--- vim73.orig/Filelist 2010-08-07 11:04:57.000000000 +0000
     3+++ vim73/Filelist      2012-07-20 20:31:18.230978438 +0000
    114@@ -39,6 +39,7 @@
    125                src/mark.c \
     
    6255                src/toolbar.phi \
    6356 
    64 @@ -686,6 +683,8 @@
     57@@ -466,6 +463,7 @@
     58                runtime/macros/hanoi/hanoi.vim \
     59                runtime/macros/hanoi/poster \
     60                runtime/macros/justify.vim \
     61+               runtime/macros/less.bat \
     62                runtime/macros/less.sh \
     63                runtime/macros/less.vim \
     64                runtime/macros/life/click.me \
     65@@ -669,6 +667,8 @@
     66 
     67 # generic language files
     68 LANG_GEN = \
     69+               runtime/doc/*-de.1 \
     70+               runtime/doc/*-de.UTF-8.1 \
     71                runtime/doc/*-fr.1 \
     72                runtime/doc/*-fr.UTF-8.1 \
     73                runtime/doc/*-it.1 \
     74@@ -686,6 +686,8 @@
    6575                runtime/tutor/tutor.utf-8 \
    6676                runtime/tutor/tutor.?? \
     
    7282                runtime/spell/??/main.aap \
    7383diff -Naur vim73.orig/Makefile vim73/Makefile
    74 --- vim73.orig/Makefile 2012-06-03 23:09:53.028009398 +0000
    75 +++ vim73/Makefile      2012-06-03 23:09:53.712027602 +0000
     84--- vim73.orig/Makefile 2010-08-15 12:23:34.000000000 +0000
     85+++ vim73/Makefile      2012-07-20 20:31:09.600972239 +0000
    7686@@ -23,6 +23,9 @@
    7787 # has run can result in compiling with $(CC) empty.
     
    95105        cd src && $(MAKE) $@
    96106diff -Naur vim73.orig/README_extra.txt vim73/README_extra.txt
    97 --- vim73.orig/README_extra.txt 2012-06-03 23:09:52.920006524 +0000
    98 +++ vim73/README_extra.txt      2012-06-03 23:09:54.124038565 +0000
     107--- vim73.orig/README_extra.txt 2010-08-15 12:23:19.000000000 +0000
     108+++ vim73/README_extra.txt      2012-07-20 20:31:10.880973163 +0000
    99109@@ -13,9 +13,6 @@
    100110 
     
    108118 
    109119diff -Naur vim73.orig/runtime/doc/autocmd.txt vim73/runtime/doc/autocmd.txt
    110 --- vim73.orig/runtime/doc/autocmd.txt  2012-06-03 23:09:53.024009292 +0000
    111 +++ vim73/runtime/doc/autocmd.txt       2012-06-03 23:09:55.576077206 +0000
     120--- vim73.orig/runtime/doc/autocmd.txt  2010-08-15 12:23:19.000000000 +0000
     121+++ vim73/runtime/doc/autocmd.txt       2012-07-20 20:31:15.250976305 +0000
    112122@@ -299,6 +299,8 @@
    113123 |InsertEnter|          starting Insert mode
     
    183193                        the autocommands, not the buffers to which they are
    184194diff -Naur vim73.orig/runtime/doc/change.txt vim73/runtime/doc/change.txt
    185 --- vim73.orig/runtime/doc/change.txt   2012-06-03 23:09:53.016009080 +0000
    186 +++ vim73/runtime/doc/change.txt        2012-06-03 23:09:53.976034626 +0000
     195--- vim73.orig/runtime/doc/change.txt   2010-08-15 12:23:19.000000000 +0000
     196+++ vim73/runtime/doc/change.txt        2012-07-20 20:31:16.577643922 +0000
    187197@@ -916,8 +916,10 @@
    188198 {Visual}["x]Y          Yank the highlighted lines [into register x] (for
     
    198208 :[range]y[ank] [x] {count}
    199209                        Yank {count} lines, starting with last line number
     210@@ -1493,6 +1495,12 @@
     211        characters.  Overruled by the 'M' flag.
     212 1      Don't break a line after a one-letter word.  It's broken before it
     213        instead (if possible).
     214+j      Where it makes sense, remove a comment leader when joining lines.  For
     215+       example, joining:
     216+               int i;   // the index ~
     217+                        // in the list ~
     218+       Becomes:
     219+               int i;   // the index in the list ~
     220 
     221 
     222 With 't' and 'c' you can specify when Vim performs auto-wrapping:
    200223diff -Naur vim73.orig/runtime/doc/cmdline.txt vim73/runtime/doc/cmdline.txt
    201 --- vim73.orig/runtime/doc/cmdline.txt  2012-06-03 23:09:53.016009080 +0000
    202 +++ vim73/runtime/doc/cmdline.txt       2012-06-03 23:09:55.820083699 +0000
     224--- vim73.orig/runtime/doc/cmdline.txt  2010-08-15 12:23:19.000000000 +0000
     225+++ vim73/runtime/doc/cmdline.txt       2012-07-20 20:31:16.060976885 +0000
    203226@@ -330,12 +330,12 @@
    204227 
     
    221244                If the numbers {first} and/or {last} are given, the respective
    222245diff -Naur vim73.orig/runtime/doc/diff.txt vim73/runtime/doc/diff.txt
    223 --- vim73.orig/runtime/doc/diff.txt     2012-06-03 23:09:53.024009292 +0000
    224 +++ vim73/runtime/doc/diff.txt  2012-06-03 23:09:55.876085191 +0000
     246--- vim73.orig/runtime/doc/diff.txt     2010-08-15 12:23:20.000000000 +0000
     247+++ vim73/runtime/doc/diff.txt  2012-07-20 20:31:16.204310320 +0000
    225248@@ -178,7 +178,7 @@
    226249 nodiff" before hiding it.
     
    243266 present in another.  These lines were inserted in another file or deleted in
    244267diff -Naur vim73.orig/runtime/doc/eval.txt vim73/runtime/doc/eval.txt
    245 --- vim73.orig/runtime/doc/eval.txt     2012-06-03 23:09:53.016009080 +0000
    246 +++ vim73/runtime/doc/eval.txt  2012-06-03 23:09:55.556076674 +0000
     268--- vim73.orig/runtime/doc/eval.txt     2010-08-15 12:23:20.000000000 +0000
     269+++ vim73/runtime/doc/eval.txt  2012-07-20 20:31:17.304311108 +0000
    247270@@ -798,11 +798,12 @@
    248271 For |Lists| only "+" is possible and then both expr6 must be a list.  The
     
    321344 islocked( {expr})              Number  TRUE if {expr} is locked
    322345 items( {dict})                 List    key-value pairs in {dict}
    323 @@ -1822,7 +1837,7 @@
     346@@ -1821,9 +1836,11 @@
     347 localtime()                    Number  current time
    324348 log( {expr})                   Float   natural logarithm (base e) of {expr}
    325349 log10( {expr})                 Float   logarithm of Float {expr} to base 10
     350+luaeval( {expr}[, {expr}])     any     evaluate |Lua| expression
    326351 map( {expr}, {string})         List/Dict  change each item in {expr} to {expr}
    327352-maparg( {name}[, {mode} [, {abbr}]])
     353-                               String  rhs of mapping {name} in mode {mode}
    328354+maparg( {name}[, {mode} [, {abbr} [, {dict}]]])
    329                                 String  rhs of mapping {name} in mode {mode}
     355+                               String or Dict
     356+                                       rhs of mapping {name} in mode {mode}
    330357 mapcheck( {name}[, {mode} [, {abbr}]])
    331358                                String  check for mappings matching {name}
    332 @@ -1846,6 +1861,7 @@
     359 match( {expr}, {pat}[, {start}[, {count}]])
     360@@ -1846,11 +1863,14 @@
    333361 mzeval( {expr})                        any     evaluate |MzScheme| expression
    334362 nextnonblank( {lnum})          Number  line nr of non-blank line >= {lnum}
     
    338366 pow( {x}, {y})                 Float   {x} to the power of {y}
    339367 prevnonblank( {lnum})          Number  line nr of non-blank line <= {lnum}
    340 @@ -1904,7 +1920,8 @@
     368 printf( {fmt}, {expr1}...)     String  format text
     369 pumvisible()                   Number  whether popup menu is visible
     370+pyeval( {expr})                        any     evaluate |Python| expression
     371+py3eval( {expr})               any     evaluate |python3| expression
     372 range( {expr} [, {max} [, {stride}]])
     373                                List    items from {expr} to {max}
     374 readfile( {fname} [, {binary} [, {max}]])
     375@@ -1904,7 +1924,8 @@
    341376 simplify( {filename})          String  simplify filename as much as possible
    342377 sin( {expr})                   Float   sine of {expr}
     
    348383 spellbadword()                 String  badly spelled word at cursor
    349384 spellsuggest( {word} [, {max} [, {capital}]])
    350 @@ -1967,6 +1984,7 @@
     385@@ -1967,6 +1988,7 @@
    351386 winwidth( {nr})                        Number  width of window {nr}
    352387 writefile( {list}, {fname} [, {binary}])
     
    356391 abs({expr})                                                    *abs()*
    357392                Return the absolute value of {expr}.  When {expr} evaluates to
    358 @@ -2006,6 +2024,13 @@
     393@@ -2006,6 +2028,13 @@
    359394                Use |insert()| to add an item at another position.
    360395 
     
    370405                When {expr} is a |List|: Append each item of the |List| as a
    371406                text line below line {lnum} in the current buffer.
    372 @@ -2708,13 +2733,15 @@
     407@@ -2708,13 +2737,15 @@
    373408                {only available when compiled with the |+float| feature}
    374409 
     
    391426                If the expansion fails, the result is an empty string.  A name
    392427                for a non-existing file is not included.
    393 @@ -2731,6 +2758,7 @@
     428@@ -2731,6 +2762,7 @@
    394429                        <abuf>          autocmd buffer number (as a String!)
    395430                        <amatch>        autocmd matched name
     
    399434                        <cWORD>         WORD under the cursor
    400435                        <client>        the {clientid} of the last received
    401 @@ -2767,10 +2795,10 @@
     436@@ -2767,10 +2799,10 @@
    402437                When {expr} does not start with '%', '#' or '<', it is
    403438                expanded like a file name is expanded on the command line.
     
    414449 <
    415450                Expand() can also be used to expand variables and environment
    416 @@ -3414,17 +3442,23 @@
     451@@ -3414,17 +3446,23 @@
    417452                        :let list_is_on = getwinvar(2, '&list')
    418453                        :echo "myvar = " . getwinvar(1, 'myvar')
     
    444479 
    445480                For most systems backticks can be used to get files names from
    446 @@ -3759,6 +3793,11 @@
     481@@ -3759,6 +3797,11 @@
    447482                Note that when {item} is a |List| it is inserted as a single
    448483                item.  Use |extend()| to concatenate |Lists|.
     
    456491                The result is a Number, which is non-zero when a directory
    457492                with the name {directory} exists.  If {directory} doesn't
    458 @@ -3966,23 +4005,51 @@
     493@@ -3941,6 +3984,20 @@
     494 <                      -2.0
     495                {only available when compiled with the |+float| feature}
     496               
     497+luaeval({expr}[, {expr}])                                      *luaeval()*
     498+               Evaluate Lua expression {expr} and return its result converted
     499+               to Vim data structures. Second {expr} may hold additional
     500+               argument accessible as _A inside first {expr}.
     501+               Strings are returned as they are.
     502+               Boolean objects are converted to numbers.
     503+               Numbers are converted to |Float| values if vim was compiled
     504+               with |+float| and to numbers otherwise.
     505+               Dictionaries and lists obtained by vim.eval() are returned
     506+               as-is.
     507+               Other objects are returned as zero without any errors.
     508+               See |lua-luaeval| for more details.
     509+               {only available when compiled with the |+lua| feature}
     510+
     511 map({expr}, {string})                                  *map()*
     512                {expr} must be a |List| or a |Dictionary|.
     513                Replace each item in {expr} with the result of evaluating
     514@@ -3966,23 +4023,51 @@
    459515                further items in {expr} are processed.
    460516 
     
    515571                then the global mappings.
    516572                This function can be used to map a key even when it's already
    517 @@ -4295,6 +4362,13 @@
     573@@ -4295,6 +4380,13 @@
    518574                        call setpos('.', save_cursor)
    519575 <              Also see |setpos()|.
     
    529585                Shorten directory names in the path {expr} and return the
    530586                result.  The tail, the file name, is kept as-is.  The other
    531 @@ -5228,7 +5302,7 @@
     587@@ -4500,6 +4592,29 @@
     588                This can be used to avoid some things that would remove the
     589                popup menu.
     590 
     591+                                                       *E860* *E861*
     592+py3eval({expr})                                                *py3eval()*
     593+               Evaluate Python expression {expr} and return its result
     594+               converted to Vim data structures.
     595+               Numbers and strings are returned as they are (strings are
     596+               copied though, unicode strings are additionally converted to
     597+               'encoding').
     598+               Lists are represented as Vim |List| type.
     599+               Dictionaries are represented as Vim |Dictionary| type with
     600+               keys converted to strings.
     601+               {only available when compiled with the |+python3| feature}
     602+
     603+                                                       *E858* *E859*
     604+pyeval({expr})                                         *pyeval()*
     605+               Evaluate Python expression {expr} and return its result
     606+               converted to Vim data structures.
     607+               Numbers and strings are returned as they are (strings are
     608+               copied though).
     609+               Lists are represented as Vim |List| type.
     610+               Dictionaries are represented as Vim |Dictionary| type with
     611+               keys converted to strings.
     612+               {only available when compiled with the |+python| feature}
     613+
     614                                                        *E726* *E727*
     615 range({expr} [, {max} [, {stride}]])                           *range()*
     616                Returns a |List| with Numbers:
     617@@ -4733,6 +4848,10 @@
     618                Search for regexp pattern {pattern}.  The search starts at the
     619                cursor position (you can use |cursor()| to set it).
     620 
     621+               If there is no match a 0 is returned and the cursor doesn't
     622+               move.  No error message is given.
     623+               When a match has been found its line number is returned.
     624+
     625                {flags} is a String, which can contain these character flags:
     626                'b'     search backward instead of forward
     627                'c'     accept a match at the cursor position
     628@@ -5228,7 +5347,7 @@
    532629                {only available when compiled with the |+float| feature}
    533630 
     
    538635                want a list to remain unmodified make a copy first: >
    539636                        :let sortedlist = sort(copy(mylist))
    540 @@ -5236,6 +5310,8 @@
     637@@ -5236,6 +5355,8 @@
    541638                Numbers sort after Strings, |Lists| after Numbers.
    542639                For sorting text in the current buffer use |:sort|.
     
    547644                is called to compare items.  The function is invoked with two
    548645                items as argument and must return zero if they are equal, 1 or
    549 @@ -6056,7 +6132,15 @@
     646@@ -6056,7 +6177,15 @@
    550647                To copy a file byte for byte: >
    551648                        :let fl = readfile("foo", "b")
     
    566663diff -Naur vim73.orig/runtime/doc/eval.txt.orig vim73/runtime/doc/eval.txt.orig
    567664--- vim73.orig/runtime/doc/eval.txt.orig        1970-01-01 00:00:00.000000000 +0000
    568 +++ vim73/runtime/doc/eval.txt.orig     2012-06-03 23:09:54.176039949 +0000
     665+++ vim73/runtime/doc/eval.txt.orig     2012-07-20 20:31:11.084306643 +0000
    569666@@ -0,0 +1,8362 @@
    570667+*eval.txt*     For Vim version 7.3.  Last change: 2010 Aug 15
     
    89319028+ vim:tw=78:ts=8:ft=help:norl:
    89329029diff -Naur vim73.orig/runtime/doc/if_cscop.txt vim73/runtime/doc/if_cscop.txt
    8933 --- vim73.orig/runtime/doc/if_cscop.txt 2012-06-03 23:09:53.020009186 +0000
    8934 +++ vim73/runtime/doc/if_cscop.txt      2012-06-03 23:09:54.252041972 +0000
     9030--- vim73.orig/runtime/doc/if_cscop.txt 2010-08-15 12:23:20.000000000 +0000
     9031+++ vim73/runtime/doc/if_cscop.txt      2012-07-20 20:31:11.324306815 +0000
    89359032@@ -272,6 +272,15 @@
    89369033        :set cst
     
    94449541+ vim:tw=78:ts=8:ft=help:norl:
    94459542diff -Naur vim73.orig/runtime/doc/if_lua.txt vim73/runtime/doc/if_lua.txt
    9446 --- vim73.orig/runtime/doc/if_lua.txt   2012-06-03 23:09:53.020009186 +0000
    9447 +++ vim73/runtime/doc/if_lua.txt        2012-06-03 23:09:55.696080401 +0000
     9543--- vim73.orig/runtime/doc/if_lua.txt   2010-08-15 12:23:20.000000000 +0000
     9544+++ vim73/runtime/doc/if_lua.txt        2012-07-20 20:31:15.670976605 +0000
    94489545@@ -1,4 +1,4 @@
    94499546-*if_lua.txt*    For Vim version 7.3.  Last change: 2010 Jul 22
     
    96439740+==============================================================================
    96449741+ vim:tw=78:ts=8:noet:ft=help:norl:
     9742diff -Naur vim73.orig/runtime/doc/if_pyth.txt vim73/runtime/doc/if_pyth.txt
     9743--- vim73.orig/runtime/doc/if_pyth.txt  2010-08-15 12:23:20.000000000 +0000
     9744+++ vim73/runtime/doc/if_pyth.txt       2012-07-20 20:31:17.307644444 +0000
     9745@@ -1,4 +1,4 @@
     9746-*if_pyth.txt*   For Vim version 7.3.  Last change: 2010 Aug 13
     9747+*if_pyth.txt*   For Vim version 7.3.  Last change: 2012 Feb 04
     9748 
     9749 
     9750                  VIM REFERENCE MANUAL    by Paul Moore
     9751@@ -6,13 +6,14 @@
     9752 
     9753 The Python Interface to Vim                            *python* *Python*
     9754 
     9755-1. Commands                    |python-commands|
     9756-2. The vim module              |python-vim|
     9757-3. Buffer objects              |python-buffer|
     9758-4. Range objects               |python-range|
     9759-5. Window objects              |python-window|
     9760-6. Dynamic loading             |python-dynamic|
     9761-7. Python 3                    |python3|
     9762+1. Commands                                    |python-commands|
     9763+2. The vim module                              |python-vim|
     9764+3. Buffer objects                              |python-buffer|
     9765+4. Range objects                               |python-range|
     9766+5. Window objects                              |python-window|
     9767+6. pyeval(), py3eval() Vim functions           |python-pyeval|
     9768+7. Dynamic loading                             |python-dynamic|
     9769+8. Python 3                                    |python3|
     9770 
     9771 {Vi does not have any of these commands}
     9772 
     9773@@ -150,6 +151,22 @@
     9774        [{'cmd': '/^eval_expr(arg, nextcmd)$/', 'static': 0, 'name':
     9775        'eval_expr', 'kind': 'f', 'filename': './src/eval.c'}]
     9776 
     9777+vim.bindeval(str)                                      *python-bindeval*
     9778+       Like |python-eval|, but
     9779+       1. if expression evaluates to |List| or |Dictionary| it is returned as
     9780+          vimlist or vimdictionary python type that are connected to original
     9781+          list or dictionary. Thus modifications to these objects imply
     9782+          modifications of the original.
     9783+       2. if expression evaluates to a function reference, then it returns
     9784+          callable vimfunction object. Use self keyword argument to assign
     9785+          |self| object for dictionary functions.
     9786+
     9787+       Note: this function has the same behavior as |lua-eval| (except that
     9788+             lua does not support running vim functions), |python-eval| is
     9789+             kept for backwards compatibility in order not to make scripts
     9790+             relying on outputs of vim.eval() being a copy of original or
     9791+             vim.eval("1") returning a string.
     9792+
     9793 
     9794 
     9795 Error object of the "vim" module
     9796@@ -222,8 +239,9 @@
     9797        - from indexing vim.buffers (|python-buffers|)
     9798        - from the "buffer" attribute of a window (|python-window|)
     9799 
     9800-Buffer objects have one read-only attribute - name - the full file name for
     9801-the buffer.  They also have three methods (append, mark, and range; see below).
     9802+Buffer objects have two read-only attributes - name - the full file name for
     9803+the buffer, and number - the buffer number.  They also have three methods
     9804+(append, mark, and range; see below).
     9805 
     9806 You can also treat buffer objects as sequence objects.  In this context, they
     9807 act as if they were lists (yes, they are mutable) of strings, with each
     9808@@ -318,7 +336,13 @@
     9809 The width attribute is writable only if the screen is split vertically.
     9810 
     9811 ==============================================================================
     9812-6. Dynamic loading                                     *python-dynamic*
     9813+6. pyeval() and py3eval() Vim functions                        *python-pyeval*
     9814+
     9815+To facilitate bi-directional interface, you can use |pyeval()| and |py3eval()|
     9816+functions to evaluate Python expressions and pass their values to VimL.
     9817+
     9818+==============================================================================
     9819+7. Dynamic loading                                     *python-dynamic*
     9820 
     9821 On MS-Windows the Python library can be loaded dynamically.  The |:version|
     9822 output then includes |+python/dyn|.
     9823@@ -335,13 +359,14 @@
     9824 sure edit "gvim.exe" and search for "python\d*.dll\c".
     9825 
     9826 ==============================================================================
     9827-7. Python 3                                            *python3*
     9828+8. Python 3                                            *python3*
     9829 
     9830                                                        *:py3* *:python3*
     9831 The |:py3| and |:python3| commands work similar to |:python|.
     9832                                                        *:py3file*
     9833 The |:py3file| command works similar to |:pyfile|.
     9834 
     9835+
     9836 Vim can be built in four ways (:version output):
     9837 1. No Python support       (-python, -python3)
     9838 2. Python 2 support only    (+python or +python/dyn, -python3)
     9839@@ -355,7 +380,7 @@
     9840 When doing this on Linux/Unix systems and importing global symbols, this leads
     9841 to a crash when the second Python version is used.  So either global symbols
     9842 are loaded but only one Python version is activated, or no global symbols are
     9843-loaded. The latter makes Python's "import" fail on libaries that expect the
     9844+loaded. The latter makes Python's "import" fail on libraries that expect the
     9845 symbols to be provided by Vim.
     9846                                                        *E836* *E837*
     9847 Vim's configuration script makes a guess for all libraries based on one
     9848@@ -377,6 +402,18 @@
     9849 3. You undefine PY_NO_RTLD_GLOBAL in auto/config.h after configuration.  This
     9850    may crash Vim though.
     9851 
     9852+                                                       *has-python*
     9853+You can test what Python version is available with: >
     9854+       if has('python')
     9855+         echo 'there is Python 2.x'
     9856+       elseif has('python3')
     9857+         echo 'there is Python 3.x'
     9858+       endif
     9859+
     9860+Note however, that when Python 2 and 3 are both available and loaded
     9861+dynamically, these has() calls will try to load them.  If only one can be
     9862+loaded at a time, just checking if Python 2 or 3 are available will prevent
     9863+the other one from being available.
     9864 
     9865 ==============================================================================
     9866  vim:tw=78:ts=8:ft=help:norl:
    96459867diff -Naur vim73.orig/runtime/doc/indent.txt vim73/runtime/doc/indent.txt
    9646 --- vim73.orig/runtime/doc/indent.txt   2012-06-03 23:09:53.024009292 +0000
    9647 +++ vim73/runtime/doc/indent.txt        2012-06-03 23:09:55.712080826 +0000
     9868--- vim73.orig/runtime/doc/indent.txt   2010-08-15 12:23:20.000000000 +0000
     9869+++ vim73/runtime/doc/indent.txt        2012-07-20 20:31:15.707643298 +0000
    96489870@@ -128,13 +128,20 @@
    96499871 used CTRL-T or CTRL-D.
     
    1078711009+ vim:tw=78:ts=8:ft=help:norl:
    1078811010diff -Naur vim73.orig/runtime/doc/map.txt vim73/runtime/doc/map.txt
    10789 --- vim73.orig/runtime/doc/map.txt      2012-06-03 23:09:53.020009186 +0000
    10790 +++ vim73/runtime/doc/map.txt   2012-06-03 23:09:55.820083699 +0000
     11011--- vim73.orig/runtime/doc/map.txt      2010-08-15 12:23:21.000000000 +0000
     11012+++ vim73/runtime/doc/map.txt   2012-07-20 20:31:16.060976885 +0000
    1079111013@@ -226,7 +226,7 @@
    1079211014 
     
    1082811050        -complete=tag_listfiles tags, file names are shown when CTRL-D is hit
    1082911051diff -Naur vim73.orig/runtime/doc/motion.txt vim73/runtime/doc/motion.txt
    10830 --- vim73.orig/runtime/doc/motion.txt   2012-06-03 23:09:53.020009186 +0000
    10831 +++ vim73/runtime/doc/motion.txt        2012-06-03 23:09:54.380045379 +0000
     11052--- vim73.orig/runtime/doc/motion.txt   2010-08-15 12:23:21.000000000 +0000
     11053+++ vim73/runtime/doc/motion.txt        2012-07-20 20:31:11.687640410 +0000
    1083211054@@ -269,11 +269,11 @@
    1083311055                        {char} can be entered like with the |f| command.
     
    1084511067 3. Up-down motions                                     *up-down-motions*
    1084611068diff -Naur vim73.orig/runtime/doc/netbeans.txt vim73/runtime/doc/netbeans.txt
    10847 --- vim73.orig/runtime/doc/netbeans.txt 2012-06-03 23:09:53.016009080 +0000
    10848 +++ vim73/runtime/doc/netbeans.txt      2012-06-03 23:09:54.892059004 +0000
     11069--- vim73.orig/runtime/doc/netbeans.txt 2010-08-15 12:23:21.000000000 +0000
     11070+++ vim73/runtime/doc/netbeans.txt      2012-07-20 20:31:13.184308154 +0000
    1084911071@@ -1,4 +1,4 @@
    1085011072-*netbeans.txt*  For Vim version 7.3.  Last change: 2010 Jul 20
     
    1090811130 ==============================================================================
    1090911131diff -Naur vim73.orig/runtime/doc/options.txt vim73/runtime/doc/options.txt
    10910 --- vim73.orig/runtime/doc/options.txt  2012-06-03 23:09:53.020009186 +0000
    10911 +++ vim73/runtime/doc/options.txt       2012-06-03 23:09:55.460074120 +0000
     11132--- vim73.orig/runtime/doc/options.txt  2010-08-15 12:23:21.000000000 +0000
     11133+++ vim73/runtime/doc/options.txt       2012-07-20 20:31:18.044311638 +0000
    1091211134@@ -150,6 +150,18 @@
    1091311135 (the ^[ is a real <Esc> here, use CTRL-V <Esc> to enter it)
     
    1092911151 security reasons.
    1093011152 
    10931 @@ -1434,6 +1446,15 @@
     11153@@ -1425,6 +1437,7 @@
     11154        This option is a list of comma separated names.
     11155        These names are recognized:
     11156 
     11157+                                               *clipboard-unnamed*
     11158        unnamed         When included, Vim will use the clipboard register '*'
     11159                        for all yank, delete, change and put operations which
     11160                        would normally go to the unnamed register.  When a
     11161@@ -1434,6 +1447,17 @@
    1093211162                        explicitly accessed using the "* notation.  Also see
    1093311163                        |gui-clipboard|.
    1093411164 
     11165+                                               *clipboard-unnamedplus*
    1093511166+       unnamedplus     A variant of "unnamed" flag which uses the clipboard
    1093611167+                       register '+' (|quoteplus|) instead of register '*' for
     
    1093811169+                       into register '+' and also into '*' when "unnamed" is
    1093911170+                       included.
    10940 +                       Only available with the |+x11| feature.
     11171+                       Only available with the |+X11| feature.
    1094111172+                       Availability can be checked with: >
    1094211173+                               if has('unnamedplus')
    1094311174+<
     11175+                                               *clipboard-autoselect*
    1094411176        autoselect      Works like the 'a' flag in 'guioptions': If present,
    1094511177                        then whenever Visual mode is started, or the Visual
    1094611178                        area extended, Vim tries to become the owner of the
    10947 @@ -2069,6 +2090,12 @@
     11179@@ -1445,9 +1469,16 @@
     11180                        "autoselect" flag is used.
     11181                        Also applies to the modeless selection.
     11182 
     11183+                                               *clipboard-autoselectplus*
     11184+       autoselectplus  Like "autoselect" but using the + register instead of
     11185+                       the * register.  Compare to the 'P' flag in
     11186+                       'guioptions'.
     11187+
     11188+                                               *clipboard-autoselectml*
     11189        autoselectml    Like "autoselect", but for the modeless selection
     11190                        only.  Compare to the 'A' flag in 'guioptions'.
     11191 
     11192+                                               *clipboard-html*
     11193        html            When the clipboard contains HTML, use this when
     11194                        pasting.  When putting text on the clipboard, mark it
     11195                        as HTML.  This works to copy rendered HTML from
     11196@@ -1458,6 +1489,7 @@
     11197                        Only supported for GTK version 2 and later.
     11198                        Only available with the |+multi_byte| feature.
     11199 
     11200+                                               *clipboard-exclude*
     11201        exclude:{pattern}
     11202                        Defines a pattern that is matched against the name of
     11203                        the terminal 'term'.  If there is a match, no
     11204@@ -2069,6 +2101,12 @@
    1094811205                                                                *cpo->*
    1094911206                >       When appending to a register, put a line break before
     
    1095811215        POSIX flags.  These are not included in the Vi default value, except
    1095911216        when $VIM_POSIX was set on startup. |posix|
    10960 @@ -2161,6 +2188,16 @@
     11217@@ -2161,6 +2199,16 @@
    1096111218        Specifies whether to use quickfix window to show cscope results.
    1096211219        See |cscopequickfix|.
     
    1097511232 'cscopetag' 'cst'      boolean (default off)
    1097611233                        global
    10977 @@ -5843,16 +5880,21 @@
     11234@@ -3510,6 +3558,9 @@
     11235                windowing system's global selection unless explicitly told to
     11236                by a yank or delete operation for the "* register.
     11237                The same applies to the modeless selection.
     11238+                                                               *'go-P'*
     11239+         'P'   Like autoselect but using the "+ register instead of the "*
     11240+               register.
     11241                                                                *'go-A'*
     11242          'A'   Autoselect for the modeless selection.  Like 'a', but only
     11243                applies to the modeless selection.
     11244@@ -5843,16 +5894,21 @@
    1097811245        security reasons.
    1097911246 
     
    1100111268        security reasons.
    1100211269 
    11003 @@ -5873,9 +5915,10 @@
     11270@@ -5873,9 +5929,10 @@
    1100411271        For Unix the default it "| tee".  The stdout of the compiler is saved
    1100511272        in a file and echoed to the screen.  If the 'shell' option is "csh" or
     
    1101511282        and the other initializations, so that when the 'shell' option is set
    1101611283        there, the 'shellpipe' option changes automatically, unless it was
    11017 @@ -5980,6 +6023,7 @@
     11284@@ -5980,6 +6037,7 @@
    1101811285 
    1101911286                                                *'shellxquote'* *'sxq'*
     
    1102311290                                        somewhere: "\""
    1102411291                                        for Unix, when using system(): "\"")
    11025 @@ -5989,14 +6033,28 @@
     11292@@ -5989,14 +6047,28 @@
    1102611293        the "!" and ":!" commands.  Includes the redirection.  See
    1102711294        'shellquote' to exclude the redirection.  It's probably not useful
     
    1105711324 'shiftround' 'sr'      boolean (default off)
    1105811325                        global
    11059 @@ -7530,8 +7588,9 @@
     11326@@ -7530,8 +7602,9 @@
    1106011327        !       When included, save and restore global variables that start
    1106111328                with an uppercase letter, and don't contain a lowercase
     
    1106911336                the '<' item, with the disadvantage that you need to put a
    1107011337                backslash before the ", otherwise it will be recognized as the
    11071 @@ -7747,6 +7806,17 @@
     11338@@ -7747,6 +7820,17 @@
    1107211339        a pattern from the list.  This avoids problems when a future version
    1107311340        uses another default.
     
    1108911356diff -Naur vim73.orig/runtime/doc/options.txt.orig vim73/runtime/doc/options.txt.orig
    1109011357--- vim73.orig/runtime/doc/options.txt.orig     1970-01-01 00:00:00.000000000 +0000
    11091 +++ vim73/runtime/doc/options.txt.orig  2012-06-03 23:09:53.792029731 +0000
     11358+++ vim73/runtime/doc/options.txt.orig  2012-07-20 20:31:09.814305726 +0000
    1109211359@@ -0,0 +1,8079 @@
    1109311360+*options.txt*  For Vim version 7.3.  Last change: 2010 Aug 15
     
    1917219439+ vim:tw=78:ts=8:ft=help:norl:
    1917319440diff -Naur vim73.orig/runtime/doc/os_risc.txt vim73/runtime/doc/os_risc.txt
    19174 --- vim73.orig/runtime/doc/os_risc.txt  2012-06-03 23:09:53.024009292 +0000
    19175 +++ vim73/runtime/doc/os_risc.txt       2012-06-03 23:09:54.112038245 +0000
     19441--- vim73.orig/runtime/doc/os_risc.txt  2010-08-15 12:23:21.000000000 +0000
     19442+++ vim73/runtime/doc/os_risc.txt       2012-07-20 20:31:10.844306469 +0000
    1917619443@@ -1,322 +1,12 @@
    1917719444-*os_risc.txt*   For Vim version 7.3.  Last change: 2010 Aug 07
     
    1950119768  vim:tw=78:ts=8:ft=help:norl:
    1950219769diff -Naur vim73.orig/runtime/doc/os_win32.txt vim73/runtime/doc/os_win32.txt
    19503 --- vim73.orig/runtime/doc/os_win32.txt 2012-06-03 23:09:53.016009080 +0000
    19504 +++ vim73/runtime/doc/os_win32.txt      2012-06-03 23:09:54.368045058 +0000
     19770--- vim73.orig/runtime/doc/os_win32.txt 2010-08-15 12:23:21.000000000 +0000
     19771+++ vim73/runtime/doc/os_win32.txt      2012-07-20 20:31:11.650973718 +0000
    1950519772@@ -313,6 +313,37 @@
    1950619773    with :!start do not get passed Vim's open file handles, which means they do
     
    1954219809    Vim doesn't wait for it to finish!  Help!
    1954319810diff -Naur vim73.orig/runtime/doc/pattern.txt vim73/runtime/doc/pattern.txt
    19544 --- vim73.orig/runtime/doc/pattern.txt  2012-06-03 23:09:53.020009186 +0000
    19545 +++ vim73/runtime/doc/pattern.txt       2012-06-03 23:09:54.508048784 +0000
     19811--- vim73.orig/runtime/doc/pattern.txt  2010-08-15 12:23:21.000000000 +0000
     19812+++ vim73/runtime/doc/pattern.txt       2012-07-20 20:31:12.107640712 +0000
    1954619813@@ -1027,11 +1027,9 @@
    1954719814          These items only work for 8-bit characters.
     
    1955819825        - A collation element.  This currently simply accepts a single
    1955919826          character in the form:
     19827diff -Naur vim73.orig/runtime/doc/sign.txt vim73/runtime/doc/sign.txt
     19828--- vim73.orig/runtime/doc/sign.txt     2010-08-15 12:23:22.000000000 +0000
     19829+++ vim73/runtime/doc/sign.txt  2012-07-20 20:31:18.004311609 +0000
     19830@@ -150,8 +150,14 @@
     19831                Remove the previously placed sign {id} from file {fname}.
     19832                See remark above about {fname} |:sign-fname|.
     19833 
     19834+:sign unplace * file={fname}
     19835+               Remove all placed signs in file {fname}.
     19836+
     19837 :sign unplace {id} buffer={nr}
     19838-               Same, but use buffer {nr}.
     19839+               Remove the previously placed sign {id} from buffer {nr}.
     19840+
     19841+:sign unplace * buffer={nr}
     19842+               Remove all placed signs in buffer {nr}.
     19843 
     19844 :sign unplace {id}
     19845                Remove the previously placed sign {id} from all files it
     19846diff -Naur vim73.orig/runtime/doc/tabpage.txt vim73/runtime/doc/tabpage.txt
     19847--- vim73.orig/runtime/doc/tabpage.txt  2010-08-15 12:23:22.000000000 +0000
     19848+++ vim73/runtime/doc/tabpage.txt       2012-07-20 20:31:17.920978216 +0000
     19849@@ -173,10 +173,20 @@
     19850 REORDERING TAB PAGES:
     19851 
     19852 :tabm[ove] [N]                                         *:tabm* *:tabmove*
     19853+:[N]tabm[ove]
     19854                Move the current tab page to after tab page N.  Use zero to
     19855                make the current tab page the first one.  Without N the tab
     19856                page is made the last one.
     19857 
     19858+:tabm[ove] +[N]
     19859+:tabm[ove] -[N]
     19860+               Move the current tab page N places to the right (with +) or to
     19861+               the left (with -).
     19862+
     19863+Note that although it is possible to move a tab behind the N-th one by using
     19864+:Ntabmove, it is impossible to move it by N places by using :+Ntabmove. For
     19865+clarification what +N means in this context see |[range]|.
     19866+
     19867 
     19868 LOOPING OVER TAB PAGES:
     19869 
    1956019870diff -Naur vim73.orig/runtime/filetype.vim vim73/runtime/filetype.vim
    19561 --- vim73.orig/runtime/filetype.vim     2012-06-03 23:09:52.976008014 +0000
    19562 +++ vim73/runtime/filetype.vim  2012-06-03 23:09:55.356071352 +0000
     19871--- vim73.orig/runtime/filetype.vim     2010-08-03 20:44:00.000000000 +0000
     19872+++ vim73/runtime/filetype.vim  2012-07-20 20:31:14.564309144 +0000
    1956319873@@ -2475,17 +2475,19 @@
    1956419874 " detected filetypes.
     
    2210322413+unlet s:cpo_save
    2210422414diff -Naur vim73.orig/runtime/ftplugof.vim vim73/runtime/ftplugof.vim
    22105 --- vim73.orig/runtime/ftplugof.vim     2012-06-03 23:09:53.028009398 +0000
    22106 +++ vim73/runtime/ftplugof.vim  2012-06-03 23:09:54.868058365 +0000
     22415--- vim73.orig/runtime/ftplugof.vim     2010-05-15 11:03:57.000000000 +0000
     22416+++ vim73/runtime/ftplugof.vim  2012-07-20 20:31:13.030974711 +0000
    2210722417@@ -1,11 +1,13 @@
    2210822418 " Vim support file to switch off loading plugins for file types
     
    2212422434diff -Naur vim73.orig/src/GvimExt/Make_cyg.mak vim73/src/GvimExt/Make_cyg.mak
    2212522435--- vim73.orig/src/GvimExt/Make_cyg.mak 1970-01-01 00:00:00.000000000 +0000
    22126 +++ vim73/src/GvimExt/Make_cyg.mak      2012-06-03 23:09:54.804056662 +0000
     22436+++ vim73/src/GvimExt/Make_cyg.mak      2012-07-20 20:31:12.867641259 +0000
    2212722437@@ -0,0 +1,77 @@
    2212822438+# Project: gvimext
     
    2220422514+       -$(DEL)  $(OBJ) $(RES) $(DLL)
    2220522515diff -Naur vim73.orig/src/GvimExt/Make_ming.mak vim73/src/GvimExt/Make_ming.mak
    22206 --- vim73.orig/src/GvimExt/Make_ming.mak        2012-06-03 23:09:52.944007163 +0000
    22207 +++ vim73/src/GvimExt/Make_ming.mak     2012-06-03 23:09:54.804056662 +0000
     22516--- vim73.orig/src/GvimExt/Make_ming.mak        2010-05-15 11:04:10.000000000 +0000
     22517+++ vim73/src/GvimExt/Make_ming.mak     2012-07-20 20:31:12.867641259 +0000
    2220822518@@ -1,6 +1,6 @@
    2220922519 # Project: gvimext
     
    2227322583-
    2227422584diff -Naur vim73.orig/src/GvimExt/gvimext.cpp vim73/src/GvimExt/gvimext.cpp
    22275 --- vim73.orig/src/GvimExt/gvimext.cpp  2012-06-03 23:09:52.944007163 +0000
    22276 +++ vim73/src/GvimExt/gvimext.cpp       2012-06-03 23:09:54.580050701 +0000
     22585--- vim73.orig/src/GvimExt/gvimext.cpp  2010-07-10 17:21:34.000000000 +0000
     22586+++ vim73/src/GvimExt/gvimext.cpp       2012-07-20 20:31:12.297640849 +0000
    2227722587@@ -142,6 +142,7 @@
    2227822588 static int dyn_libintl_init(char *dir);
     
    2235922669                &pi)            // Pointer to PROCESS_INFORMATION structure.
    2236022670diff -Naur vim73.orig/src/GvimExt/gvimext.def vim73/src/GvimExt/gvimext.def
    22361 --- vim73.orig/src/GvimExt/gvimext.def  2012-06-03 23:09:52.944007163 +0000
    22362 +++ vim73/src/GvimExt/gvimext.def       2012-06-03 23:09:54.328043994 +0000
     22671--- vim73.orig/src/GvimExt/gvimext.def  2010-05-15 11:04:10.000000000 +0000
     22672+++ vim73/src/GvimExt/gvimext.def       2012-07-20 20:31:11.500973609 +0000
    2236322673@@ -1,7 +1,7 @@
    2236422674 ;gvimdef.def : Declares the module parameters for the DLL.
     
    2237122681     DllCanUnloadNow private
    2237222682diff -Naur vim73.orig/src/GvimExt/gvimext_ming.def vim73/src/GvimExt/gvimext_ming.def
    22373 --- vim73.orig/src/GvimExt/gvimext_ming.def     2012-06-03 23:09:52.944007163 +0000
    22374 +++ vim73/src/GvimExt/gvimext_ming.def  2012-06-03 23:09:54.328043994 +0000
     22683--- vim73.orig/src/GvimExt/gvimext_ming.def     2010-05-15 11:04:10.000000000 +0000
     22684+++ vim73/src/GvimExt/gvimext_ming.def  2012-07-20 20:31:11.500973609 +0000
    2237522685@@ -3,7 +3,7 @@
    2237622686 ;Hence this is the same file as gvimext.def with private removed
     
    2238322693     DllCanUnloadNow = DllCanUnloadNow@0
    2238422694diff -Naur vim73.orig/src/INSTALL vim73/src/INSTALL
    22385 --- vim73.orig/src/INSTALL      2012-06-03 23:09:52.940007057 +0000
    22386 +++ vim73/src/INSTALL   2012-06-03 23:09:54.124038565 +0000
     22695--- vim73.orig/src/INSTALL      2010-06-26 04:04:51.000000000 +0000
     22696+++ vim73/src/INSTALL   2012-07-20 20:31:10.884306499 +0000
    2238722697@@ -6,9 +6,8 @@
    2238822698 Contents:
     
    2243422744 [NOTE: this is quite old, it might not work anymore]
    2243522745diff -Naur vim73.orig/src/INSTALLpc.txt vim73/src/INSTALLpc.txt
    22436 --- vim73.orig/src/INSTALLpc.txt        2012-06-03 23:09:52.948007269 +0000
    22437 +++ vim73/src/INSTALLpc.txt     2012-06-03 23:09:55.528075930 +0000
     22746--- vim73.orig/src/INSTALLpc.txt        2010-05-24 12:58:06.000000000 +0000
     22747+++ vim73/src/INSTALLpc.txt     2012-07-20 20:31:15.140976226 +0000
    2243822748@@ -11,9 +11,9 @@
    2243922749 this, then you will get the default behavior as is documented, which should
     
    2254822858+Happy Vimming!
    2254922859diff -Naur vim73.orig/src/Make_cyg.mak vim73/src/Make_cyg.mak
    22550 --- vim73.orig/src/Make_cyg.mak 2012-06-03 23:09:52.920006524 +0000
    22551 +++ vim73/src/Make_cyg.mak      2012-06-03 23:09:54.804056662 +0000
     22860--- vim73.orig/src/Make_cyg.mak 2010-08-02 19:09:22.000000000 +0000
     22861+++ vim73/src/Make_cyg.mak      2012-07-20 20:31:17.854311501 +0000
    2255222862@@ -1,6 +1,6 @@
    2255322863 #
    2255422864 # Makefile for VIM on Win32, using Cygnus gcc
    2255522865-# Last updated by Dan Sharp.  Last Change: 2010 Feb 24
    22556 +# Last updated by Dan Sharp.  Last Change: 2010 Nov 03
     22866+# Last updated by Dan Sharp.  Last Change: 2012 Jun 30
    2255722867 #
    2255822868 # Also read INSTALLpc.txt!
     
    2256622876 #   LUA_VER        define to version of Lua being used (51)
    2256722877 #   DYNAMIC_LUA  no or yes: use yes to load the Lua DLL dynamically (yes)
     22878@@ -47,7 +48,7 @@
     22879 #              -L/lib/w32api to EXTRA_LIBS.
     22880 # POSTSCRIPT   no or yes: set to yes for PostScript printing (no)
     22881 # FEATURES     TINY, SMALL, NORMAL, BIG or HUGE (BIG)
     22882-# WINVER       Lowest Win32 version to support.  (0x0400)
     22883+# WINVER       Lowest Win32 version to support.  (0x0500)
     22884 # CSCOPE       no or yes: to include cscope interface support (yes)
     22885 # OPTIMIZE     SPACE, SPEED, or MAXSPEED: set optimization level (MAXSPEED)
     22886 # NETBEANS     no or yes: to include netbeans interface support (yes when GUI
     22887@@ -84,7 +85,7 @@
     22888 endif
     22889 
     22890 ifndef WINVER
     22891-WINVER = 0x0400
     22892+WINVER = 0x0500
     22893 endif
     22894 
     22895 ifndef CSCOPE
    2256822896@@ -254,16 +255,22 @@
    2256922897 MZSCHEME_GENERATE_BASE=no
     
    2261122939        -$(DEL) obj$(DIRSLASH)*.o
    2261222940diff -Naur vim73.orig/src/Make_ming.mak vim73/src/Make_ming.mak
    22613 --- vim73.orig/src/Make_ming.mak        2012-06-03 23:09:52.944007163 +0000
    22614 +++ vim73/src/Make_ming.mak     2012-06-03 23:09:55.744081677 +0000
     22941--- vim73.orig/src/Make_ming.mak        2010-08-02 19:09:43.000000000 +0000
     22942+++ vim73/src/Make_ming.mak     2012-07-20 20:31:17.854311501 +0000
    2261522943@@ -14,9 +14,11 @@
    2261622944 # it's just run out of memory or something.  Run again, and it will continue
     
    2263122959 OLE=no
    2263222960 # Set the default $(WINVER) to make it work with pre-Win2k
     22961-WINVER = 0x0400
    2263322962+ifndef WINVER
    22634  WINVER = 0x0400
     22963+WINVER = 0x0500
    2263522964+endif
    2263622965 # Set to yes to enable Cscope support
     
    2277823107 $(OUTDIR)/netbeans.o:  netbeans.c $(INCL) $(NBDEBUG_INCL) $(NBDEBUG_SRC)
    2277923108diff -Naur vim73.orig/src/Make_mvc.mak vim73/src/Make_mvc.mak
    22780 --- vim73.orig/src/Make_mvc.mak 2012-06-03 23:09:52.924006631 +0000
    22781 +++ vim73/src/Make_mvc.mak      2012-06-03 23:09:55.492074972 +0000
     23109--- vim73.orig/src/Make_mvc.mak 2010-07-18 19:24:20.000000000 +0000
     23110+++ vim73/src/Make_mvc.mak      2012-07-20 20:31:14.987642782 +0000
    2278223111@@ -380,9 +380,6 @@
    2278323112 !if "$(_NMAKE_VER)" == "10.00.30319.01"
     
    2290123230 
    2290223231diff -Naur vim73.orig/src/Make_ro.mak vim73/src/Make_ro.mak
    22903 --- vim73.orig/src/Make_ro.mak  2012-06-03 23:09:52.940007057 +0000
     23232--- vim73.orig/src/Make_ro.mak  2010-05-15 11:04:08.000000000 +0000
    2290423233+++ vim73/src/Make_ro.mak       1970-01-01 00:00:00.000000000 +0000
    2290523234@@ -1,135 +0,0 @@
     
    2304023369-o.window:      c.window
    2304123370diff -Naur vim73.orig/src/Makefile vim73/src/Makefile
    23042 --- vim73.orig/src/Makefile     2012-06-03 23:09:52.956007482 +0000
    23043 +++ vim73/src/Makefile  2012-06-03 23:09:55.668079655 +0000
     23371--- vim73.orig/src/Makefile     2010-08-15 12:56:15.000000000 +0000
     23372+++ vim73/src/Makefile  2012-07-20 20:31:17.217644379 +0000
    2304423373@@ -29,7 +29,7 @@
    2304523374 #      - Uncomment the line "CONF_OPT_X = --without-x" if you have X11 but
     
    2314723476 #CC= gcc -D_POSIX_SOURCE
    2314823477 #CFLAGS= -O2
    23149 @@ -1047,8 +1052,9 @@
     23478@@ -870,6 +875,10 @@
     23479 #CFLAGS = -O -Qtarget=m88110compat
     23480 #EXTRA_LIBS = -lgen
     23481 
     23482+# The value of QUOTESED comes from auto/config.mk.
     23483+# Uncomment the next line to use the default value.
     23484+# QUOTESED = sed -e 's/[\\"]/\\&/g' -e 's/\\"/"/' -e 's/\\";$$/";/'
     23485+
     23486 ##################### end of system specific lines ################### }}}
     23487 
     23488 ### Names of the programs and targets  {{{1
     23489@@ -1047,8 +1056,9 @@
    2315023490 INSTALL_DATA   = cp
    2315123491 INSTALL_DATA_R = cp -r
     
    2315823498 ### Permissions for binaries  {{{1
    2315923499 BINMOD = 755
    23160 @@ -1321,15 +1327,15 @@
     23500@@ -1321,15 +1331,15 @@
    2316123501 .SUFFIXES: .c .o .pro
    2316223502 
     
    2317323513 
    2317423514-LINT_CFLAGS = -DLINT -I. $(PRE_DEFS) $(POST_DEFS) $(LUA_CFLAGS) $(PERL_CFLAGS) $(PYTHON_CFLAGS) -Dinline= -D__extension__= -Dalloca=alloca
    23175 +LINT_CFLAGS = -DLINT -I. $(PRE_DEFS) $(POST_DEFS) $(RUBY_CFLAGS) $(LUA_CFLAGS) $(PERL_CFLAGS) $(PYTHON_CFLAGS) -Dinline= -D__extension__= -Dalloca=alloca
     23515+LINT_CFLAGS = -DLINT -I. $(PRE_DEFS) $(POST_DEFS) $(RUBY_CFLAGS) $(LUA_CFLAGS) $(PERL_CFLAGS) $(PYTHON_CFLAGS) $(PYTHON3_CFLAGS) -Dinline= -D__extension__= -Dalloca=alloca
    2317623516 
    2317723517 LINT_EXTRA = -DUSE_SNIFF -DHANGUL_INPUT -D"__attribute__(x)="
    2317823518 
    23179 @@ -1352,7 +1358,8 @@
     23519@@ -1352,7 +1362,8 @@
    2318023520           $(PYTHON3_LIBS) \
    2318123521           $(TCL_LIBS) \
     
    2318723527 # abbreviations
    2318823528 DEST_BIN = $(DESTDIR)$(BINDIR)
    23189 @@ -1474,8 +1481,15 @@
     23529@@ -1474,8 +1485,15 @@
    2319023530            if_python.c if_python3.c if_tcl.c if_ruby.c if_sniff.c \
    2319123531            gui_beval.c workshop.c wsdebug.c integration.c netbeans.c
     
    2320423544 # Which files to check with lint.  Select one of these three lines.  ALL_SRC
    2320523545 # checks more, but may not work well for checking a GUI that wasn't configured.
    23206 @@ -1486,7 +1500,7 @@
     23546@@ -1486,7 +1504,7 @@
    2320723547 #LINT_SRC = $(ALL_SRC)
    2320823548 #LINT_SRC = $(BASIC_SRC)
     
    2321323553        objects/blowfish.o \
    2321423554        objects/charset.o \
    23215 @@ -1507,10 +1521,8 @@
     23555@@ -1507,10 +1525,8 @@
    2321623556        $(HANGULIN_OBJ) \
    2321723557        objects/if_cscope.o \
     
    2322523565        objects/message.o \
    2322623566        objects/misc1.o \
    23227 @@ -1535,6 +1547,7 @@
     23567@@ -1535,6 +1551,7 @@
    2322823568        objects/term.o \
    2322923569        objects/ui.o \
     
    2323323573        $(GUI_OBJ) \
    2323423574        $(LUA_OBJ) \
    23235 @@ -1549,6 +1562,13 @@
     23575@@ -1549,6 +1566,13 @@
    2323623576        $(NETBEANS_OBJ) \
    2323723577        $(WSDEBUG_OBJ)
     
    2324723587        blowfish.pro \
    2324823588        buffer.pro \
    23249 @@ -1612,7 +1632,7 @@
     23589@@ -1612,7 +1636,7 @@
    2325023590 RSRC_DIR = os_mac_rsrc
    2325123591 
     
    2325623596 # Default target is making the executable and tools
    2325723597 all: $(VIMTARGET) $(TOOLS) languages $(GUI_BUNDLE)
    23258 @@ -1633,7 +1653,8 @@
     23598@@ -1633,7 +1657,8 @@
    2325923599                CC="$(CC)" CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" \
    2326023600                LDFLAGS="$(LDFLAGS)" $(CONF_SHELL) srcdir="$(srcdir)" \
     
    2326623606                $(CONF_OPT_CSCOPE) $(CONF_OPT_MULTIBYTE) $(CONF_OPT_INPUT) \
    2326723607                $(CONF_OPT_OUTPUT) $(CONF_OPT_GPM) $(CONF_OPT_WORKSHOP) \
    23268 @@ -1694,11 +1715,12 @@
     23608@@ -1694,11 +1719,12 @@
    2326923609 $(VIMTARGET): auto/config.mk objects $(OBJ) version.c version.h
    2327023610        $(CCC) version.c -o objects/version.o
     
    2328223622 
    2328323623 # Build the language specific files if they were unpacked.
    23284 @@ -1818,6 +1840,15 @@
     23624@@ -1818,6 +1844,15 @@
    2328523625                ln -s $(VIMTARGET) vim; \
    2328623626        fi
     
    2329823638 testclean:
    2329923639        cd testdir; $(MAKE) -f Makefile clean
    23300 @@ -1825,6 +1856,17 @@
     23640@@ -1825,6 +1860,17 @@
    2330123641                cd $(PODIR); $(MAKE) checkclean; \
    2330223642        fi
     
    2331623656 
    2331723657 install_normal: installvim installtools $(INSTALL_LANGS) install-icons
    23318 @@ -2258,6 +2300,7 @@
     23658@@ -2258,6 +2304,7 @@
    2331923659        -rm -f *.o objects/* core $(VIMTARGET).core $(VIMTARGET) vim xxd/*.o
    2332023660        -rm -f $(TOOLS) auto/osdef.h auto/pathdef.c auto/if_perl.c
     
    2332423664        -rm -rf $(APPDIR)
    2332523665        -rm -rf mzscheme_base.c
    23326 @@ -2291,6 +2334,7 @@
     23666@@ -2291,6 +2338,7 @@
    2332723667                                 ../../testdir/vimrc.unix \
    2332823668                                 ../../testdir/*.in \
     
    2333223672 
    2333323673 # Link needed for doing "make install" in a shadow directory.
    23334 @@ -2532,7 +2576,7 @@
     23674@@ -2367,7 +2415,6 @@
     23675 auto/osdef.h: auto/config.h osdef.sh osdef1.h.in osdef2.h.in
     23676        CC="$(CC) $(OSDEF_CFLAGS)" srcdir=$(srcdir) sh $(srcdir)/osdef.sh
     23677 
     23678-QUOTESED = sed -e 's/[\\"]/\\&/g' -e 's/\\"/"/' -e 's/\\";$$/";/'
     23679 auto/pathdef.c: Makefile auto/config.mk
     23680        -@echo creating $@
     23681        -@echo '/* pathdef.c */' > $@
     23682@@ -2532,7 +2579,7 @@
    2333523683        $(CCC) $(PYTHON3_CFLAGS) $(PYTHON3_CFLAGS_EXTRA) -o $@ if_python3.c
    2333623684 
     
    2334123689 objects/if_sniff.o: if_sniff.c
    2334223690        $(CCC) -o $@ if_sniff.c
    23343 @@ -2552,6 +2596,9 @@
     23691@@ -2552,6 +2599,9 @@
    2334423692 objects/memfile.o: memfile.c
    2334523693        $(CCC) -o $@ memfile.c
     
    2335123699        $(CCC) -o $@ memline.c
    2335223700 
    23353 @@ -2870,7 +2917,7 @@
     23701@@ -2870,7 +2920,7 @@
    2335423702 objects/os_unix.o: os_unix.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
    2335523703  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
     
    2336023708  auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
    2336123709  regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
    23362 @@ -3009,6 +3056,10 @@
     23710@@ -3009,6 +3059,10 @@
    2336323711 objects/pty.o: pty.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h ascii.h \
    2336423712  keymap.h term.h macros.h option.h structs.h regexp.h gui.h gui_beval.h \
     
    2337123719  auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
    2337223720  regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
    23373 @@ -3020,7 +3071,7 @@
     23721@@ -3020,7 +3074,7 @@
    2337423722 objects/if_mzsch.o: if_mzsch.c vim.h auto/config.h feature.h os_unix.h \
    2337523723  auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
     
    2338023728  auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
    2338123729  regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
    23382 @@ -3041,7 +3092,7 @@
     23730@@ -3041,7 +3095,7 @@
    2338323731  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
    2338423732  gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
     
    2339023738  arabic.h version.h
    2339123739diff -Naur vim73.orig/src/VisVim/Commands.cpp vim73/src/VisVim/Commands.cpp
    23392 --- vim73.orig/src/VisVim/Commands.cpp  2012-06-03 23:09:52.932006845 +0000
    23393 +++ vim73/src/VisVim/Commands.cpp       2012-06-03 23:09:54.592051020 +0000
     23740--- vim73.orig/src/VisVim/Commands.cpp  2010-05-15 11:04:08.000000000 +0000
     23741+++ vim73/src/VisVim/Commands.cpp       2012-07-20 20:31:12.320974199 +0000
    2339423742@@ -549,7 +549,7 @@
    2339523743        if (g_bNewTabs)
     
    2341223760                else
    2341323761diff -Naur vim73.orig/src/arabic.c vim73/src/arabic.c
    23414 --- vim73.orig/src/arabic.c     2012-06-03 23:09:52.924006631 +0000
    23415 +++ vim73/src/arabic.c  2012-06-03 23:09:55.924086467 +0000
     23762--- vim73.orig/src/arabic.c     2010-05-15 11:04:09.000000000 +0000
     23763+++ vim73/src/arabic.c  2012-07-20 20:31:16.377643778 +0000
    2341623764@@ -1066,7 +1066,7 @@
    2341723765 
     
    2342423772        (*mb_char2bytes)(curr_c, buf);
    2342523773diff -Naur vim73.orig/src/ascii.h vim73/src/ascii.h
    23426 --- vim73.orig/src/ascii.h      2012-06-03 23:09:52.948007269 +0000
    23427 +++ vim73/src/ascii.h   2012-06-03 23:09:55.076063900 +0000
     23774--- vim73.orig/src/ascii.h      2010-05-15 11:04:07.000000000 +0000
     23775+++ vim73/src/ascii.h   2012-07-20 20:31:13.754308564 +0000
    2342823776@@ -123,7 +123,7 @@
    2342923777 #define DCS            0x90    /* Device Control String */
     
    2345023798 #endif
    2345123799diff -Naur vim73.orig/src/auto/config.mk vim73/src/auto/config.mk
    23452 --- vim73.orig/src/auto/config.mk       2012-06-03 23:09:52.948007269 +0000
     23800--- vim73.orig/src/auto/config.mk       2010-08-15 13:02:25.000000000 +0000
    2345323801+++ vim73/src/auto/config.mk    1970-01-01 00:00:00.000000000 +0000
    2345423802@@ -1,5 +0,0 @@
     
    2345923807-VIEWNAME = view
    2346023808diff -Naur vim73.orig/src/auto/configure vim73/src/auto/configure
    23461 --- vim73.orig/src/auto/configure       2012-06-03 23:09:52.948007269 +0000
    23462 +++ vim73/src/auto/configure    2012-06-03 23:09:55.372071777 +0000
     23809--- vim73.orig/src/auto/configure       2010-08-13 14:17:15.000000000 +0000
     23810+++ vim73/src/auto/configure    2012-07-20 20:31:17.054310930 +0000
    2346323811@@ -593,6 +593,7 @@
    2346423812 
     
    2351523863   CFLAGS="-O"
    2351623864   test "$GCC" = yes && CFLAGS="-O2 -fno-strength-reduce -Wall"
    23517 @@ -4726,6 +4743,9 @@
     23865@@ -4409,15 +4426,18 @@
     23866                  echo ""
     23867                  echo "------------------------------------------"
     23868                  echo " On z/OS Unix, the environment variable"
     23869-                 echo " __CC_${ccn}MODE must be set to \"1\"!"
     23870+                 echo " _CC_${ccn}MODE must be set to \"1\"!"
     23871                  echo " Do:"
     23872                  echo "    export _CC_${ccn}MODE=1"
     23873                  echo " and then call configure again."
     23874                  echo "------------------------------------------"
     23875                  exit 1
     23876                fi
     23877-               CFLAGS="$CFLAGS -D_ALL_SOURCE -Wc,float\\(IEEE\\)";
     23878-                LDFLAGS="$LDFLAGS -Wl,EDIT=NO"
     23879+               # Set CFLAGS for configure process.
     23880+               # This will be reset later for config.mk.
     23881+               # Use haltonmsg to force error for missing H files.
     23882+               CFLAGS="$CFLAGS -D_ALL_SOURCE -Wc,float(ieee),haltonmsg(3296)";
     23883+               LDFLAGS="$LDFLAGS -Wl,EDIT=NO"
     23884                { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
     23885 $as_echo "yes" >&6; }
     23886                ;;
     23887@@ -4726,6 +4746,9 @@
    2351823888       LUA_CFLAGS="-DDYNAMIC_LUA_DLL=\\\"liblua${vi_cv_version_lua}.so$LUA_SONAME\\\" $LUA_CFLAGS"
    2351923889     fi
     
    2352523895 
    2352623896 
    23527 @@ -4862,16 +4882,36 @@
     23897@@ -4862,16 +4885,36 @@
    2352823898       else
    2352923899        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
     
    2356723937       fi
    2356823938     fi
    23569 @@ -4883,12 +4923,22 @@
     23939@@ -4883,12 +4926,22 @@
    2357023940     elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"; then
    2357123941       MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"
     
    2359123961         MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme -lmzgc"
    2359223962       fi
    23593 @@ -4901,10 +4951,20 @@
     23963@@ -4901,10 +4954,20 @@
    2359423964     fi
    2359523965     if test -d $vi_cv_path_mzscheme_pfx/lib/plt/collects; then
     
    2361423984     fi
    2361523985     MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -I${SCHEME_INC} \
    23616 @@ -5099,6 +5159,10 @@
     23986@@ -5099,6 +5162,10 @@
    2361723987       PERL_CFLAGS="-DDYNAMIC_PERL_DLL=\\\"$libperl\\\" $PERL_CFLAGS"
    2361823988     fi
     
    2362523995 
    2362623996 
    23627 @@ -5285,9 +5349,9 @@
     23997@@ -5285,9 +5352,9 @@
    2362823998 
    2362923999        PYTHON_LIBS="${vi_cv_path_python_plibs}"
     
    2363724007        PYTHON_SRC="if_python.c"
    2363824008                if test "x$MACOSX" = "xyes"; then
    23639 @@ -5298,7 +5362,7 @@
     24009@@ -5298,7 +5365,7 @@
    2364024010        if test "${vi_cv_var_python_version}" = "1.4"; then
    2364124011           PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
     
    2364624016                                                                { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -pthread should be used" >&5
    2364724017 $as_echo_n "checking if -pthread should be used... " >&6; }
    23648 @@ -5388,6 +5452,10 @@
     24018@@ -5388,6 +5455,10 @@
    2364924019 $as_echo "too old" >&6; }
    2365024020     fi
     
    2365724027 
    2365824028 
    23659 @@ -5464,6 +5532,23 @@
     24029@@ -5464,6 +5535,23 @@
    2366024030 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $vi_cv_var_python3_version" >&5
    2366124031 $as_echo "$vi_cv_var_python3_version" >&6; }
     
    2368124051 $as_echo_n "checking Python's install prefix... " >&6; }
    2368224052 if test "${vi_cv_path_python3_pfx+set}" = set; then :
    23683 @@ -5514,9 +5599,13 @@
     24053@@ -5514,9 +5602,13 @@
    2368424054 else
    2368524055 
     
    2369624066            vi_cv_path_python3_conf="$d"
    2369724067          fi
    23698 @@ -5545,13 +5634,12 @@
     24068@@ -5545,13 +5637,12 @@
    2369924069        @echo "python3_BASEMODLIBS='$(BASEMODLIBS)'"
    2370024070        @echo "python3_LIBS='$(LIBS)'"
     
    2371224082           vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-lffi//`
    2371324083 
    23714 @@ -5560,9 +5648,9 @@
     24084@@ -5560,9 +5651,9 @@
    2371524085 
    2371624086       PYTHON3_LIBS="${vi_cv_path_python3_plibs}"
     
    2372424094       PYTHON3_SRC="if_python3.c"
    2372524095             if test "x$MACOSX" = "xyes"; then
    23726 @@ -5667,12 +5755,12 @@
     24096@@ -5667,12 +5758,12 @@
    2372724097 
    2372824098   $as_echo "#define DYNAMIC_PYTHON3 1" >>confdefs.h
     
    2374124111   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
    2374224112 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
    23743 @@ -5689,15 +5777,17 @@
     24113@@ -5689,15 +5780,17 @@
    2374424114      * Only the first pyhton version used will be switched on.
    2374524115      */
     
    2376024130           needed = (*simple)("import termios") == -1;
    2376124131           (*final)();
    23762 @@ -5709,7 +5799,7 @@
     24132@@ -5709,7 +5802,7 @@
    2376324133     int main(int argc, char** argv)
    2376424134     {
     
    2376924139       return !not_needed;
    2377024140     }
    23771 @@ -5726,8 +5816,76 @@
     24141@@ -5726,8 +5819,76 @@
    2377224142   conftest.$ac_objext conftest.beam conftest.$ac_ext
    2377324143 fi
    2377424144 
    2377524145+
    23776    CFLAGS=$cflags_save
    23777    LDFLAGS=$ldflags_save
     24146+  CFLAGS=$cflags_save
     24147+  LDFLAGS=$ldflags_save
    2377824148+
    2377924149+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can do without RTLD_GLOBAL for Python3" >&5
     
    2384024210+
    2384124211+
    23842 +  CFLAGS=$cflags_save
    23843 +  LDFLAGS=$ldflags_save
     24212   CFLAGS=$cflags_save
     24213   LDFLAGS=$ldflags_save
    2384424214+
    2384524215   PYTHON_SRC="if_python.c"
    2384624216   PYTHON_OBJ="objects/if_python.o"
    2384724217   PYTHON_CFLAGS="$PYTHON_CFLAGS -DDYNAMIC_PYTHON_DLL=\\\"${python_INSTSONAME}\\\""
    23848 @@ -6085,6 +6243,9 @@
     24218@@ -6085,6 +6246,9 @@
    2384924219 $as_echo "too old; need Tcl version 8.0 or later" >&6; }
    2385024220     fi
     
    2385624226 
    2385724227 
    23858 @@ -6103,20 +6264,20 @@
     24228@@ -6103,20 +6267,20 @@
    2385924229 
    2386024230 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_rubyinterp" >&5
     
    2388024250 set dummy $RUBY_CMD; ac_word=$2
    2388124251 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
    23882 @@ -6181,17 +6342,14 @@
     24252@@ -6181,17 +6345,14 @@
    2388324253          RUBY_LIBS="$rubylibs"
    2388424254        fi
     
    2390624276 
    2390724277        if test "X$librubyarg" != "X"; then
    23908 @@ -6209,6 +6367,13 @@
     24278@@ -6209,6 +6370,13 @@
    2390924279        RUBY_PRO="if_ruby.pro"
    2391024280        $as_echo "#define FEAT_RUBY 1" >>confdefs.h
     
    2392024290        { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found; disabling Ruby" >&5
    2392124291 $as_echo "not found; disabling Ruby" >&6; }
    23922 @@ -6218,6 +6383,10 @@
     24292@@ -6218,6 +6386,10 @@
    2392324293 $as_echo "too old; need Ruby version 1.6.0 or later" >&6; }
    2392424294     fi
     
    2393124301 
    2393224302 
    23933 @@ -9768,9 +9937,9 @@
     24303@@ -8528,8 +8700,13 @@
     24304 if test -z "$SKIP_MOTIF"; then
     24305   cppflags_save=$CPPFLAGS
     24306   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
     24307-  for ac_header in Xm/Xm.h Xm/XpmP.h Xm/JoinSideT.h Xm/TraitP.h Xm/Manager.h \
     24308-                  Xm/UnhighlightT.h Xm/Notebook.h
     24309+  if test "$zOSUnix" = "yes"; then
     24310+       xmheader="Xm/Xm.h"
     24311+  else
     24312+       xmheader="Xm/Xm.h Xm/XpmP.h Xm/JoinSideT.h Xm/TraitP.h Xm/Manager.h
     24313+          Xm/UnhighlightT.h Xm/Notebook.h"
     24314+  fi
     24315+  for ac_header in $xmheader
     24316 do :
     24317   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
     24318 ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
     24319@@ -8544,7 +8721,7 @@
     24320 done
     24321 
     24322 
     24323-  if test $ac_cv_header_Xm_XpmP_h = yes; then
     24324+  if test "x$ac_cv_header_Xm_XpmP_h" = "xyes"; then
     24325         { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XpmAttributes_21 in Xm/XpmP.h" >&5
     24326 $as_echo_n "checking for XpmAttributes_21 in Xm/XpmP.h... " >&6; }
     24327     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
     24328@@ -9768,9 +9945,9 @@
    2393424329 else
    2393524330   { $as_echo "$as_me:${as_lineno-$LINENO}: result: empty: automatic terminal library selection" >&5
     
    2394424339   for libname in $tlibs; do
    2394524340     as_ac_Lib=`$as_echo "ac_cv_lib_${libname}''_tgetent" | $as_tr_sh`
    23946 @@ -11159,7 +11328,47 @@
     24341@@ -11159,7 +11336,47 @@
    2394724342 rm -f core conftest.err conftest.$ac_objext \
    2394824343     conftest$ac_exeext conftest.$ac_ext
     
    2399324388 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
    2399424389 /* end confdefs.h.  */
    23995 @@ -11186,6 +11395,8 @@
     24390@@ -11186,6 +11403,8 @@
    2399624391 fi
    2399724392 rm -f core conftest.err conftest.$ac_objext \
     
    2400224397 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for AIX ACL support" >&5
    2400324398 $as_echo_n "checking for AIX ACL support... " >&6; }
    24004 @@ -11642,7 +11853,8 @@
     24399@@ -11642,7 +11861,8 @@
    2400524400 { $as_echo "$as_me:${as_lineno-$LINENO}: checking uint32_t is 32 bits" >&5
    2400624401 $as_echo_n "checking uint32_t is 32 bits... " >&6; }
     
    2401224407   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
    2401324408 /* end confdefs.h.  */
    24014 @@ -11915,6 +12127,10 @@
     24409@@ -11915,6 +12135,10 @@
    2401524410 test -f tags && mv tags tags.save
    2401624411 if (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&5 2>&1; then
     
    2402324418   TAGPRG="ctags"
    2402424419   (eval etags     /dev/null) < /dev/null 1>&5 2>&1 && TAGPRG="etags"
    24025 @@ -12344,10 +12560,10 @@
     24420@@ -12344,10 +12568,10 @@
    2402624421     { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
    2402724422 $as_echo "no" >&6; }
     
    2403624431 $as_echo "yes" >&6; }
    2403724432   else
    24038 @@ -12357,6 +12573,23 @@
     24433@@ -12357,6 +12581,28 @@
    2403924434 fi
    2404024435 
     
    2405724452+
    2405824453+
     24454+# IBM z/OS reset CFLAGS for config.mk
     24455+if test "$zOSUnix" = "yes"; then
     24456+       CFLAGS="-D_ALL_SOURCE -Wc,float\(ieee\),dll"
     24457+fi
     24458+
    2405924459 ac_config_files="$ac_config_files auto/config.mk:config.mk.in"
    2406024460 
    2406124461 cat >confcache <<\_ACEOF
    2406224462diff -Naur vim73.orig/src/blowfish.c vim73/src/blowfish.c
    24063 --- vim73.orig/src/blowfish.c   2012-06-03 23:09:52.932006845 +0000
    24064 +++ vim73/src/blowfish.c        2012-06-03 23:09:53.732028133 +0000
     24463--- vim73.orig/src/blowfish.c   2010-07-14 14:45:39.000000000 +0000
     24464+++ vim73/src/blowfish.c        2012-07-20 20:31:09.647638940 +0000
    2406524465@@ -413,6 +413,7 @@
    2406624466     int    salt_len;
     
    2408324483     mch_memmove(sbx, sbi, 4 * 4 * 256);
    2408424484diff -Naur vim73.orig/src/buffer.c vim73/src/buffer.c
    24085 --- vim73.orig/src/buffer.c     2012-06-03 23:09:52.920006524 +0000
    24086 +++ vim73/src/buffer.c  2012-06-03 23:09:55.588077525 +0000
    24087 @@ -64,6 +64,9 @@
     24485--- vim73.orig/src/buffer.c     2010-08-13 09:14:35.000000000 +0000
     24486+++ vim73/src/buffer.c  2012-07-20 20:31:18.240978445 +0000
     24487@@ -57,13 +57,15 @@
     24488 
     24489 #if defined(FEAT_SIGNS)
     24490 static void insert_sign __ARGS((buf_T *buf, signlist_T *prev, signlist_T *next, int id, linenr_T lnum, int typenr));
     24491-static void buf_delete_signs __ARGS((buf_T *buf));
     24492 #endif
     24493 
     24494 #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
    2408824495 static char *msg_loclist = N_("[Location List]");
    2408924496 static char *msg_qflist = N_("[Quickfix List]");
     
    2409524502 /*
    2409624503  * Open current buffer, that is: open the memfile and read the file into
    24097 @@ -96,7 +99,7 @@
     24504@@ -96,7 +98,7 @@
    2409824505         * There MUST be a memfile, otherwise we can't do anything
    2409924506         * If we can't create one for the current buffer, take another buffer
     
    2410424511            if (curbuf->b_ml.ml_mfp != NULL)
    2410524512                break;
    24106 @@ -316,12 +319,17 @@
     24513@@ -316,12 +318,17 @@
    2410724514  * get a new buffer very soon!
    2410824515  *
     
    2412324530 #ifdef FEAT_AUTOCMD
    2412424531     int                is_curbuf;
    24125 @@ -371,8 +379,12 @@
     24532@@ -369,19 +376,35 @@
     24533     /* When the buffer is no longer in a window, trigger BufWinLeave */
     24534     if (buf->b_nwindows == 1)
    2412624535     {
     24536+       buf->b_closing = TRUE;
    2412724537        apply_autocmds(EVENT_BUFWINLEAVE, buf->b_fname, buf->b_fname,
    2412824538                                                                  FALSE, buf);
    2412924539-       if (!buf_valid(buf))        /* autocommands may delete the buffer */
    24130 +       /* Return if autocommands deleted the buffer or made it the only one. */
    24131 +       if (!buf_valid(buf) || (abort_if_last && one_window()))
     24540+       if (!buf_valid(buf))
    2413224541+       {
     24542+           /* Autocommands deleted the buffer. */
     24543+aucmd_abort:
    2413324544+           EMSG(_(e_auabort));
    2413424545            return;
    2413524546+       }
     24547+       buf->b_closing = FALSE;
     24548+       if (abort_if_last && one_window())
     24549+           /* Autocommands made this the only window. */
     24550+           goto aucmd_abort;
    2413624551 
    2413724552        /* When the buffer becomes hidden, but is not unloaded, trigger
    2413824553         * BufHidden */
    24139 @@ -380,8 +392,13 @@
     24554        if (!unload_buf)
    2414024555        {
     24556+           buf->b_closing = TRUE;
    2414124557            apply_autocmds(EVENT_BUFHIDDEN, buf->b_fname, buf->b_fname,
    2414224558                                                                  FALSE, buf);
    2414324559-           if (!buf_valid(buf))        /* autocmds may delete the buffer */
    24144 +           /* Return if autocommands deleted the buffer or made it the only
    24145 +            * one. */
    24146 +           if (!buf_valid(buf) || (abort_if_last && one_window()))
    24147 +           {
    24148 +               EMSG(_(e_auabort));
    24149                 return;
    24150 +           }
     24560-               return;
     24561+           if (!buf_valid(buf))
     24562+               /* Autocommands deleted the buffer. */
     24563+               goto aucmd_abort;
     24564+           buf->b_closing = FALSE;
     24565+           if (abort_if_last && one_window())
     24566+               /* Autocommands made this the only window. */
     24567+               goto aucmd_abort;
    2415124568        }
    2415224569 # ifdef FEAT_EVAL
    2415324570        if (aborting())     /* autocmds may abort script processing */
    24154 @@ -416,6 +433,14 @@
     24571@@ -416,6 +439,14 @@
    2415524572 #endif
    2415624573 
     
    2416724584 #ifdef FEAT_AUTOCMD
    2416824585     /* Autocommands may have deleted the buffer. */
    24169 @@ -560,6 +585,11 @@
     24586@@ -527,6 +558,7 @@
     24587 #ifdef FEAT_AUTOCMD
     24588     int                is_curbuf = (buf == curbuf);
     24589 
     24590+    buf->b_closing = TRUE;
     24591     apply_autocmds(EVENT_BUFUNLOAD, buf->b_fname, buf->b_fname, FALSE, buf);
     24592     if (!buf_valid(buf))           /* autocommands may delete the buffer */
     24593        return;
     24594@@ -543,6 +575,7 @@
     24595        if (!buf_valid(buf))        /* autocommands may delete the buffer */
     24596            return;
     24597     }
     24598+    buf->b_closing = FALSE;
     24599 # ifdef FEAT_EVAL
     24600     if (aborting())        /* autocmds may abort script processing */
     24601        return;
     24602@@ -560,6 +593,11 @@
    2417024603 #ifdef FEAT_DIFF
    2417124604     diff_buf_delete(buf);          /* Can't use 'diff' for unloaded buffer. */
     
    2417924612 #ifdef FEAT_FOLDING
    2418024613     /* No folds in an empty buffer. */
    24181 @@ -639,6 +669,9 @@
     24614@@ -639,6 +677,9 @@
    2418224615     {
    2418324616        clear_wininfo(buf);             /* including window-local options */
     
    2418924622 #ifdef FEAT_EVAL
    2419024623     vars_clear(&buf->b_vars.dv_hashtab); /* free all internal variables */
    24191 @@ -661,9 +694,6 @@
     24624@@ -661,9 +702,6 @@
    2419224625     vim_free(buf->b_start_fenc);
    2419324626     buf->b_start_fenc = NULL;
     
    2419924632 
    2420024633 /*
    24201 @@ -762,7 +792,7 @@
     24634@@ -762,7 +800,7 @@
    2420224635         * open a new, empty buffer. */
    2420324636        swap_exists_action = SEA_NONE;  /* don't want it again */
     
    2420824641            old_curbuf = buflist_new(NULL, NULL, 1L, BLN_CURBUF | BLN_LISTED);
    2420924642        if (old_curbuf != NULL)
    24210 @@ -1109,7 +1139,7 @@
     24643@@ -1109,7 +1147,7 @@
    2421124644             * if the buffer still exists.
    2421224645             */
     
    2421724650        }
    2421824651 
    24219 @@ -1133,7 +1163,7 @@
     24652@@ -1120,6 +1158,9 @@
     24653         * a window with this buffer.
     24654         */
     24655        while (buf == curbuf
     24656+# ifdef FEAT_AUTOCMD
     24657+                  && !(curwin->w_closing || curwin->w_buffer->b_closing)
     24658+# endif
     24659                   && (firstwin != lastwin || first_tabpage->tp_next != NULL))
     24660            win_close(curwin, FALSE);
     24661 #endif
     24662@@ -1133,7 +1174,7 @@
    2422024663            close_windows(buf, FALSE);
    2422124664 #endif
     
    2422624669        }
    2422724670 
    24228 @@ -1288,9 +1318,12 @@
     24671@@ -1288,9 +1329,12 @@
    2422924672     /* Go to the other buffer. */
    2423024673     set_curbuf(buf, action);
     
    2424124684 
    2424224685 #if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
    24243 @@ -1343,6 +1376,10 @@
     24686@@ -1343,6 +1387,10 @@
    2424424687 # endif
    2424524688 #endif
     
    2425224695        if (unload)
    2425324696            close_windows(prevbuf, FALSE);
    24254 @@ -1358,7 +1395,7 @@
     24697@@ -1353,22 +1401,34 @@
     24698        if (buf_valid(prevbuf))
     24699 #endif
     24700        {
     24701+#ifdef FEAT_WINDOWS
     24702+           win_T  *previouswin = curwin;
     24703+#endif
     24704            if (prevbuf == curbuf)
     24705                u_sync(FALSE);
    2425524706            close_buffer(prevbuf == curwin->w_buffer ? curwin : NULL, prevbuf,
    2425624707                    unload ? action : (action == DOBUF_GOTO
     
    2425824709-                       && !bufIsChanged(prevbuf)) ? DOBUF_UNLOAD : 0);
    2425924710+                       && !bufIsChanged(prevbuf)) ? DOBUF_UNLOAD : 0, FALSE);
     24711+#ifdef FEAT_WINDOWS
     24712+           if (curwin != previouswin && win_valid(previouswin))
     24713+             /* autocommands changed curwin, Grr! */
     24714+             curwin = previouswin;
     24715+#endif
    2426024716        }
    2426124717     }
    2426224718 #ifdef FEAT_AUTOCMD
    24263 @@ -1392,10 +1429,6 @@
     24719     /* An autocommand may have deleted "buf", already entered it (e.g., when
     24720-     * it did ":bunload") or aborted the script processing! */
     24721+     * it did ":bunload") or aborted the script processing!
     24722+     * If curwin->w_buffer is null, enter_buffer() will make it valid again */
     24723+    if ((buf_valid(buf) && buf != curbuf
     24724 # ifdef FEAT_EVAL
     24725-    if (buf_valid(buf) && buf != curbuf && !aborting())
     24726-# else
     24727-    if (buf_valid(buf) && buf != curbuf)
     24728+           && !aborting()
     24729+# endif
     24730+# ifdef FEAT_WINDOWS
     24731+        ) || curwin->w_buffer == NULL
     24732 # endif
     24733+       )
     24734 #endif
     24735        enter_buffer(buf);
     24736 }
     24737@@ -1392,10 +1452,6 @@
    2426424738     foldUpdateAll(curwin);     /* update folds (later). */
    2426524739 #endif
     
    2427224746     curwin->w_buffer = buf;
    2427324747     curbuf = buf;
    24274 @@ -1406,6 +1439,10 @@
     24748@@ -1406,6 +1462,10 @@
    2427524749        diff_buf_add(curbuf);
    2427624750 #endif
     
    2428324757     curwin->w_cursor.lnum = 1;
    2428424758     curwin->w_cursor.col = 0;
    24285 @@ -1805,9 +1842,6 @@
     24759@@ -1687,7 +1747,8 @@
     24760     buf->b_wininfo->wi_win = curwin;
     24761 
     24762 #ifdef FEAT_EVAL
     24763-    init_var_dict(&buf->b_vars, &buf->b_bufvar);    /* init b: variables */
     24764+    /* init b: variables */
     24765+    init_var_dict(&buf->b_vars, &buf->b_bufvar, VAR_SCOPE);
     24766 #endif
     24767 #ifdef FEAT_SYN_HL
     24768     hash_init(&buf->b_s.b_keywtab);
     24769@@ -1805,9 +1866,6 @@
    2428624770 #ifdef FEAT_AUTOCMD
    2428724771     clear_string_option(&buf->b_p_ft);
     
    2429324777     clear_string_option(&buf->b_p_cink);
    2429424778     clear_string_option(&buf->b_p_cino);
    24295 @@ -1917,9 +1951,7 @@
     24779@@ -1917,9 +1975,7 @@
    2429624780                tabpage_new();
    2429724781            else if (win_split(0, 0) == FAIL)   /* Open in a new window */
     
    2430424788     }
    2430524789 #endif
    24306 @@ -2526,6 +2558,9 @@
     24790@@ -2526,6 +2582,9 @@
    2430724791     if (p_fdls >= 0)
    2430824792        curwin->w_p_fdl = p_fdls;
     
    2431424798 
    2431524799 /*
    24316 @@ -2690,7 +2725,8 @@
     24800@@ -2690,7 +2749,8 @@
    2431724801                vim_free(ffname);
    2431824802                return FAIL;
     
    2432424808        sfname = vim_strsave(sfname);
    2432524809        if (ffname == NULL || sfname == NULL)
    24326 @@ -3175,7 +3211,7 @@
     24810@@ -3175,7 +3235,7 @@
    2432724811            /* format: "fname + (path) (1 of 2) - VIM" */
    2432824812 
     
    2433324817            {
    2433424818                p = transstr(gettail(curbuf->b_fname));
    24335 @@ -3231,7 +3267,7 @@
     24819@@ -3231,7 +3291,7 @@
    2433624820            if (serverName != NULL)
    2433724821            {
     
    2434224826            else
    2434324827 #endif
    24344 @@ -3240,9 +3276,8 @@
     24828@@ -3240,9 +3300,8 @@
    2434524829            if (maxlen > 0)
    2434624830            {
     
    2435424838        }
    2435524839     }
    24356 @@ -3363,7 +3398,8 @@
     24840@@ -3363,7 +3422,8 @@
    2435724841  * or truncated if too long, fillchar is used for all whitespace.
    2435824842  */
     
    2436424848     char_u     *out;           /* buffer to write into != NameBuff */
    2436524849     size_t     outlen;         /* length of out[] */
    24366 @@ -3458,6 +3494,18 @@
     24850@@ -3458,6 +3518,18 @@
    2436724851     prevchar_isitem = FALSE;
    2436824852     for (s = usefmt; *s; )
     
    2438324867            prevchar_isflag = prevchar_isitem = FALSE;
    2438424868 
    24385 @@ -3473,6 +3521,8 @@
     24869@@ -3473,6 +3545,8 @@
    2438624870         * Handle one '%' item.
    2438724871         */
     
    2439224876        {
    2439324877            if (p + 1 >= out + outlen)
    24394 @@ -4355,7 +4405,12 @@
     24878@@ -4355,7 +4429,12 @@
    2439524879 {
    2439624880     int                i;
     
    2440624890     int                use_firstwin = FALSE;   /* use first window for arglist */
    2440724891     int                split_ret = OK;
    24408 @@ -4364,6 +4419,8 @@
     24892@@ -4364,6 +4443,8 @@
    2440924893     buf_T      *buf;
    2441024894     tabpage_T  *tpnext;
     
    2441524899     tabpage_T  *new_curtab = NULL;
    2441624900 
    24417 @@ -4380,6 +4437,15 @@
     24901@@ -4380,6 +4461,15 @@
    2441824902     if (opened == NULL)
    2441924903        return;
     
    2443124915     need_mouse_correct = TRUE;
    2443224916 #endif
    24433 @@ -4401,36 +4467,51 @@
     24917@@ -4392,7 +4482,7 @@
     24918      * When the ":tab" modifier was used do this for all tab pages.
     24919      */
     24920     if (had_tab > 0)
     24921-       goto_tabpage_tp(first_tabpage);
     24922+       goto_tabpage_tp(first_tabpage, TRUE);
     24923     for (;;)
     24924     {
     24925        tpnext = curtab->tp_next;
     24926@@ -4401,36 +4491,51 @@
    2443424927            wpnext = wp->w_next;
    2443524928            buf = wp->w_buffer;
     
    2446124954+
    2446224955+                       if (old_curtab == curtab)
    24463                         {
    24464 -                           opened[i] = TRUE;
     24956+                       {
    2446524957+                           ++weight;
    2446624958+                           if (old_curwin == wp)
     
    2446924961+
    2447024962+                       if (weight > (int)opened[i])
    24471 +                       {
     24963                        {
     24964-                           opened[i] = TRUE;
    2447224965+                           opened[i] = (char_u)weight;
    2447324966                            if (i == 0)
     
    2449324986                        }
    2449424987                        break;
    24495 @@ -4439,7 +4520,7 @@
     24988@@ -4439,7 +4544,7 @@
    2449624989            }
    2449724990            wp->w_arg_idx = i;
     
    2450224995                if (P_HID(buf) || forceit || buf->b_nwindows > 1
    2450324996                                                        || !bufIsChanged(buf))
    24504 @@ -4461,7 +4542,8 @@
     24997@@ -4461,7 +4566,8 @@
    2450524998                    }
    2450624999 #ifdef FEAT_WINDOWS
     
    2451225005                        use_firstwin = TRUE;
    2451325006 #ifdef FEAT_WINDOWS
    24514 @@ -4495,20 +4577,16 @@
     25007@@ -4488,27 +4594,23 @@
     25008        if (!valid_tabpage(tpnext))
     25009            tpnext = first_tabpage;     /* start all over...*/
     25010 # endif
     25011-       goto_tabpage_tp(tpnext);
     25012+       goto_tabpage_tp(tpnext, TRUE);
     25013     }
     25014 
     25015     /*
    2451525016      * Open a window for files in the argument list that don't have one.
    2451625017      * ARGCOUNT may change while doing this, because of autocommands.
     
    2453725038 #ifdef FEAT_WINDOWS
    2453825039     /* ":drop all" should re-use an empty window to avoid "--remote-tab"
    24539 @@ -4518,11 +4596,11 @@
     25040@@ -4518,11 +4620,11 @@
    2454025041        use_firstwin = TRUE;
    2454125042 #endif
     
    2455125052            /* Move the already present window to below the current window */
    2455225053            if (curwin->w_arg_idx != i)
    24553 @@ -4531,7 +4609,13 @@
     25054@@ -4531,7 +4633,13 @@
    2455425055                {
    2455525056                    if (wpnext->w_arg_idx == i)
     
    2456625067                    }
    2456725068                }
    24568 @@ -4586,6 +4670,14 @@
     25069@@ -4586,9 +4694,17 @@
    2456925070 #ifdef FEAT_AUTOCMD
    2457025071     --autocmd_no_enter;
     
    2457425075+    {
    2457525076+       if (valid_tabpage(last_curtab))
    24576 +           goto_tabpage_tp(last_curtab);
     25077+           goto_tabpage_tp(last_curtab, TRUE);
    2457725078+       if (win_valid(last_curwin))
    2457825079+           win_enter(last_curwin, FALSE);
     
    2458025081     /* to window with first arg */
    2458125082     if (valid_tabpage(new_curtab))
    24582         goto_tabpage_tp(new_curtab);
    24583 @@ -5465,7 +5557,7 @@
     25083-       goto_tabpage_tp(new_curtab);
     25084+       goto_tabpage_tp(new_curtab, TRUE);
     25085     if (win_valid(new_curwin))
     25086        win_enter(new_curwin, FALSE);
     25087 
     25088@@ -4640,7 +4756,7 @@
     25089      */
     25090 #ifdef FEAT_WINDOWS
     25091     if (had_tab > 0)
     25092-       goto_tabpage_tp(first_tabpage);
     25093+       goto_tabpage_tp(first_tabpage, TRUE);
     25094     for (;;)
     25095     {
     25096 #endif
     25097@@ -4658,7 +4774,11 @@
     25098 #ifdef FEAT_WINDOWS
     25099                    || (had_tab > 0 && wp != firstwin)
     25100 #endif
     25101-                   ) && firstwin != lastwin)
     25102+                   ) && firstwin != lastwin
     25103+#ifdef FEAT_AUTOCMD
     25104+                   && !(wp->w_closing || wp->w_buffer->b_closing)
     25105+#endif
     25106+                   )
     25107            {
     25108                win_close(wp, FALSE);
     25109 #ifdef FEAT_AUTOCMD
     25110@@ -4676,7 +4796,7 @@
     25111        /* Without the ":tab" modifier only do the current tab page. */
     25112        if (had_tab == 0 || tpnext == NULL)
     25113            break;
     25114-       goto_tabpage_tp(tpnext);
     25115+       goto_tabpage_tp(tpnext, TRUE);
     25116     }
     25117 #endif
     25118 
     25119@@ -5417,7 +5537,7 @@
     25120 /*
     25121  * Delete signs in buffer "buf".
     25122  */
     25123-    static void
     25124+    void
     25125 buf_delete_signs(buf)
     25126     buf_T      *buf;
     25127 {
     25128@@ -5465,7 +5585,7 @@
    2458425129        buf = firstbuf;
    2458525130     else
     
    2459025135        if (buf->b_signlist != NULL)
    2459125136        {
    24592 @@ -5473,7 +5565,7 @@
     25137@@ -5473,7 +5593,7 @@
    2459325138            MSG_PUTS_ATTR(lbuf, hl_attr(HLF_D));
    2459425139            msg_putchar('\n');
     
    2459925144            vim_snprintf(lbuf, BUFSIZ, _("    line=%ld  id=%d  name=%s"),
    2460025145                           (long)p->lnum, p->id, sign_typenr2name(p->typenr));
    24601 @@ -5606,7 +5698,7 @@
     25146@@ -5606,7 +5726,7 @@
    2460225147     if (!aucmd)                    /* Don't trigger BufDelete autocommands here. */
    2460325148        block_autocmds();
     
    2460925154        unblock_autocmds();
    2461025155diff -Naur vim73.orig/src/charset.c vim73/src/charset.c
    24611 --- vim73.orig/src/charset.c    2012-06-03 23:09:52.948007269 +0000
    24612 +++ vim73/src/charset.c 2012-06-03 23:09:55.892085615 +0000
     25156--- vim73.orig/src/charset.c    2010-08-12 18:16:04.000000000 +0000
     25157+++ vim73/src/charset.c 2012-07-20 20:31:16.277643707 +0000
    2461325158@@ -463,41 +463,42 @@
    2461425159            if (enc_utf8)
     
    2471225257            }
    2471325258diff -Naur vim73.orig/src/config.h.in vim73/src/config.h.in
    24714 --- vim73.orig/src/config.h.in  2012-06-03 23:09:52.956007482 +0000
    24715 +++ vim73/src/config.h.in       2012-06-03 23:09:55.372071777 +0000
     25259--- vim73.orig/src/config.h.in  2010-08-13 13:45:27.000000000 +0000
     25260+++ vim73/src/config.h.in       2012-07-20 20:31:14.604309173 +0000
    2471625261@@ -346,9 +346,15 @@
    2471725262 /* Define if dynamic python does not require RTLD_GLOBAL */
     
    2473925284 
    2474025285diff -Naur vim73.orig/src/config.mk.in vim73/src/config.mk.in
    24741 --- vim73.orig/src/config.mk.in 2012-06-03 23:09:52.952007375 +0000
    24742 +++ vim73/src/config.mk.in      2012-06-03 23:09:53.304016743 +0000
     25286--- vim73.orig/src/config.mk.in 2010-07-17 15:28:51.000000000 +0000
     25287+++ vim73/src/config.mk.in      2012-07-20 20:31:08.224304578 +0000
    2474325288@@ -30,6 +30,7 @@
    2474425289 CPP            = @CPP@
     
    2475025295 X_PRE_LIBS     = @X_PRE_LIBS@
    2475125296diff -Naur vim73.orig/src/configure.in vim73/src/configure.in
    24752 --- vim73.orig/src/configure.in 2012-06-03 23:09:52.948007269 +0000
    24753 +++ vim73/src/configure.in      2012-06-03 23:09:55.368071671 +0000
     25297--- vim73.orig/src/configure.in 2010-08-13 14:15:17.000000000 +0000
     25298+++ vim73/src/configure.in      2012-07-20 20:31:17.044310922 +0000
    2475425299@@ -28,6 +28,16 @@
    2475525300 AC_HEADER_STDC
     
    2476925314 if test -z "$CFLAGS"; then
    2477025315   CFLAGS="-O"
    24771 @@ -491,6 +501,9 @@
     25316@@ -319,15 +329,18 @@
     25317                  echo ""
     25318                  echo "------------------------------------------"
     25319                  echo " On z/OS Unix, the environment variable"
     25320-                 echo " __CC_${ccn}MODE must be set to \"1\"!"
     25321+                 echo " _CC_${ccn}MODE must be set to \"1\"!"
     25322                  echo " Do:"
     25323                  echo "    export _CC_${ccn}MODE=1"
     25324                  echo " and then call configure again."
     25325                  echo "------------------------------------------"
     25326                  exit 1
     25327                fi
     25328-               CFLAGS="$CFLAGS -D_ALL_SOURCE -Wc,float\\(IEEE\\)";
     25329-                LDFLAGS="$LDFLAGS -Wl,EDIT=NO"
     25330+               # Set CFLAGS for configure process.
     25331+               # This will be reset later for config.mk.
     25332+               # Use haltonmsg to force error for missing H files.
     25333+               CFLAGS="$CFLAGS -D_ALL_SOURCE -Wc,float(ieee),haltonmsg(3296)";
     25334+               LDFLAGS="$LDFLAGS -Wl,EDIT=NO"
     25335                AC_MSG_RESULT(yes)
     25336                ;;
     25337     *)         zOSUnix="no";
     25338@@ -491,6 +504,9 @@
    2477225339       LUA_CFLAGS="-DDYNAMIC_LUA_DLL=\\\"liblua${vi_cv_version_lua}.so$LUA_SONAME\\\" $LUA_CFLAGS"
    2477325340     fi
     
    2477925346   AC_SUBST(LUA_OBJ)
    2478025347   AC_SUBST(LUA_PRO)
    24781 @@ -568,13 +581,27 @@
     25348@@ -568,13 +584,27 @@
    2478225349        SCHEME_INC=${vi_cv_path_mzscheme_pfx}/include/plt
    2478325350       else
     
    2481125378       fi
    2481225379     fi
    24813 @@ -586,13 +613,23 @@
     25380@@ -586,13 +616,23 @@
    2481425381     elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"; then
    2481525382       MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"
     
    2483625403         MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme -lmzgc"
    2483725404       fi
    24838 @@ -607,10 +644,20 @@
     25405@@ -607,10 +647,20 @@
    2483925406     fi
    2484025407     if test -d $vi_cv_path_mzscheme_pfx/lib/plt/collects; then
     
    2485825425       MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc"
    2485925426     fi
    24860 @@ -747,6 +794,10 @@
     25427@@ -747,6 +797,10 @@
    2486125428       PERL_CFLAGS="-DDYNAMIC_PERL_DLL=\\\"$libperl\\\" $PERL_CFLAGS"
    2486225429     fi
     
    2486925436 AC_SUBST(shrpenv)
    2487025437 AC_SUBST(PERL_SRC)
    24871 @@ -857,9 +908,9 @@
     25438@@ -857,9 +911,9 @@
    2487225439 
    2487325440        PYTHON_LIBS="${vi_cv_path_python_plibs}"
     
    2488125448        PYTHON_SRC="if_python.c"
    2488225449        dnl For Mac OSX 10.2 config.o is included in the Python library.
    24883 @@ -871,7 +922,7 @@
     25450@@ -871,7 +925,7 @@
    2488425451        if test "${vi_cv_var_python_version}" = "1.4"; then
    2488525452           PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
     
    2489025457        dnl On FreeBSD linking with "-pthread" is required to use threads.
    2489125458        dnl _THREAD_SAFE must be used for compiling then.
    24892 @@ -932,6 +983,10 @@
     25459@@ -932,6 +986,10 @@
    2489325460       AC_MSG_RESULT(too old)
    2489425461     fi
     
    2490125468 
    2490225469 AC_SUBST(PYTHON_CONFDIR)
    24903 @@ -958,6 +1013,17 @@
     25470@@ -958,6 +1016,17 @@
    2490425471           ${vi_cv_path_python3} -c 'import sys; print(sys.version[:3])'`
    2490525472     ]])
     
    2491925486     AC_CACHE_CHECK(Python's install prefix,vi_cv_path_python3_pfx,
    2492025487     [ vi_cv_path_python3_pfx=`
    24921 @@ -987,9 +1053,13 @@
     25488@@ -987,9 +1056,13 @@
    2492225489     AC_CACHE_CHECK(Python's configuration directory,vi_cv_path_python3_conf,
    2492325490     [
     
    2493425501            vi_cv_path_python3_conf="$d"
    2493525502          fi
    24936 @@ -1014,14 +1084,13 @@
     25503@@ -1014,14 +1087,13 @@
    2493725504        @echo "python3_BASEMODLIBS='$(BASEMODLIBS)'"
    2493825505        @echo "python3_LIBS='$(LIBS)'"
     
    2495125518           vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-ltermcap//`
    2495225519           vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-lffi//`
    24953 @@ -1029,9 +1098,9 @@
     25520@@ -1029,9 +1101,9 @@
    2495425521 
    2495525522       PYTHON3_LIBS="${vi_cv_path_python3_plibs}"
     
    2496325530       PYTHON3_SRC="if_python3.c"
    2496425531       dnl For Mac OSX 10.2 config.o is included in the Python library.
    24965 @@ -1109,11 +1178,12 @@
     25532@@ -1109,11 +1181,12 @@
    2496625533 if test "$python_ok" = yes && test "$python3_ok" = yes; then
    2496725534   AC_DEFINE(DYNAMIC_PYTHON)
     
    2497925546     #include <dlfcn.h>
    2498025547     /* If this program fails, then RTLD_GLOBAL is needed.
    24981 @@ -1122,15 +1192,17 @@
     25548@@ -1122,15 +1195,17 @@
    2498225549      * Only the first pyhton version used will be switched on.
    2498325550      */
     
    2499825565           needed = (*simple)("import termios") == -1;
    2499925566           (*final)();
    25000 @@ -1142,13 +1214,61 @@
     25567@@ -1142,13 +1217,61 @@
    2500125568     int main(int argc, char** argv)
    2500225569     {
     
    2500925576     [AC_MSG_RESULT(yes);AC_DEFINE(PY_NO_RTLD_GLOBAL)], [AC_MSG_RESULT(no)])
    2501025577+
    25011    CFLAGS=$cflags_save
    25012    LDFLAGS=$ldflags_save
     25578+  CFLAGS=$cflags_save
     25579+  LDFLAGS=$ldflags_save
    2501325580+
    2501425581+  AC_MSG_CHECKING(whether we can do without RTLD_GLOBAL for Python3)
     
    2505525622+    [AC_MSG_RESULT(yes);AC_DEFINE(PY3_NO_RTLD_GLOBAL)], [AC_MSG_RESULT(no)])
    2505625623+
    25057 +  CFLAGS=$cflags_save
    25058 +  LDFLAGS=$ldflags_save
     25624   CFLAGS=$cflags_save
     25625   LDFLAGS=$ldflags_save
    2505925626+
    2506025627   PYTHON_SRC="if_python.c"
    2506125628   PYTHON_OBJ="objects/if_python.o"
    2506225629   PYTHON_CFLAGS="$PYTHON_CFLAGS -DDYNAMIC_PYTHON_DLL=\\\"${python_INSTSONAME}\\\""
    25063 @@ -1290,6 +1410,9 @@
     25630@@ -1290,6 +1413,9 @@
    2506425631       AC_MSG_RESULT(too old; need Tcl version 8.0 or later)
    2506525632     fi
     
    2507125638 AC_SUBST(TCL_SRC)
    2507225639 AC_SUBST(TCL_OBJ)
    25073 @@ -1299,15 +1422,15 @@
     25640@@ -1299,15 +1425,15 @@
    2507425641 
    2507525642 AC_MSG_CHECKING(--enable-rubyinterp argument)
     
    2509125658   if test "X$vi_cv_path_ruby" != "X"; then
    2509225659     AC_MSG_CHECKING(Ruby version)
    25093 @@ -1329,18 +1452,15 @@
     25660@@ -1329,18 +1455,15 @@
    2509425661          RUBY_LIBS="$rubylibs"
    2509525662        fi
     
    2511925686 
    2512025687        if test "X$librubyarg" != "X"; then
    25121 @@ -1360,6 +1480,12 @@
     25688@@ -1360,6 +1483,12 @@
    2512225689        RUBY_OBJ="objects/if_ruby.o"
    2512325690        RUBY_PRO="if_ruby.pro"
     
    2513225699        AC_MSG_RESULT(not found; disabling Ruby)
    2513325700       fi
    25134 @@ -1367,6 +1493,10 @@
     25701@@ -1367,6 +1496,10 @@
    2513525702       AC_MSG_RESULT(too old; need Ruby version 1.6.0 or later)
    2513625703     fi
     
    2514325710 AC_SUBST(RUBY_SRC)
    2514425711 AC_SUBST(RUBY_OBJ)
    25145 @@ -2529,13 +2659,14 @@
     25712@@ -2248,10 +2381,15 @@
     25713 if test -z "$SKIP_MOTIF"; then
     25714   cppflags_save=$CPPFLAGS
     25715   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
     25716-  AC_CHECK_HEADERS(Xm/Xm.h Xm/XpmP.h Xm/JoinSideT.h Xm/TraitP.h Xm/Manager.h \
     25717-                  Xm/UnhighlightT.h Xm/Notebook.h)
     25718+  if test "$zOSUnix" = "yes"; then
     25719+       xmheader="Xm/Xm.h"
     25720+  else
     25721+       xmheader="Xm/Xm.h Xm/XpmP.h Xm/JoinSideT.h Xm/TraitP.h Xm/Manager.h
     25722+          Xm/UnhighlightT.h Xm/Notebook.h" 
     25723+  fi   
     25724+  AC_CHECK_HEADERS($xmheader)
     25725 
     25726-  if test $ac_cv_header_Xm_XpmP_h = yes; then
     25727+  if test "x$ac_cv_header_Xm_XpmP_h" = "xyes"; then
     25728     dnl Solaris uses XpmAttributes_21, very annoying.
     25729     AC_MSG_CHECKING([for XpmAttributes_21 in Xm/XpmP.h])
     25730     AC_TRY_COMPILE([#include <Xm/XpmP.h>], [XpmAttributes_21 attr;],
     25731@@ -2529,13 +2667,14 @@
    2514625732   AC_MSG_RESULT([empty: automatic terminal library selection])
    2514725733   dnl  On HP-UX 10.10 termcap or termlib should be used instead of
     
    2516125747   for libname in $tlibs; do
    2516225748     AC_CHECK_LIB(${libname}, tgetent,,)
    25163 @@ -2975,6 +3106,7 @@
     25749@@ -2975,6 +3114,7 @@
    2516425750 
    2516525751 dnl Link with -lposix1e for ACL stuff; if not found, try -lacl for SGI
     
    2516925755 AC_ARG_ENABLE(acl,
    2517025756        [  --disable-acl           Don't check for ACL support.],
    25171 @@ -2997,6 +3129,7 @@
     25757@@ -2997,6 +3137,7 @@
    2517225758        AC_MSG_RESULT(yes); AC_DEFINE(HAVE_POSIX_ACL),
    2517325759        AC_MSG_RESULT(no))
     
    2517725763 AC_TRY_LINK([
    2517825764 #ifdef HAVE_SYS_ACL_H
    25179 @@ -3004,7 +3137,7 @@
     25765@@ -3004,7 +3145,7 @@
    2518025766 #endif], [acl("foo", GETACLCNT, 0, NULL);
    2518125767        ],
     
    2518625772 AC_MSG_CHECKING(for AIX ACL support)
    2518725773 AC_TRY_LINK([
    25188 @@ -3180,7 +3313,7 @@
     25774@@ -3180,7 +3321,7 @@
    2518925775 }],
    2519025776 AC_MSG_RESULT(ok),
     
    2519525781 dnl Check for memmove() before bcopy(), makes memmove() be used when both are
    2519625782 dnl present, fixes problem with incompatibility between Solaris 2.4 and 2.5.
    25197 @@ -3280,7 +3413,7 @@
     25783@@ -3280,7 +3421,7 @@
    2519825784 AC_CHECK_LIB(xpg4, _xpg4_setrunelocale, [LIBS="$LIBS -lxpg4"],,)
    2519925785 
     
    2520425790 dnl -t for typedefs (many ctags have this)
    2520525791 dnl -s for static functions (Elvis ctags only?)
    25206 @@ -3290,6 +3423,10 @@
     25792@@ -3290,6 +3431,10 @@
    2520725793 test -f tags && mv tags tags.save
    2520825794 if (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then
     
    2521525801   TAGPRG="ctags"
    2521625802   (eval etags     /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="etags"
    25217 @@ -3477,9 +3614,10 @@
     25803@@ -3477,9 +3622,10 @@
    2521825804   dnl -D_FORTIFY_SOURCE=2 crashes Vim on strcpy(buf, "000") when buf is
    2521925805   dnl declared as char x[1] but actually longer.  Introduced in gcc 4.0.
     
    2522725813   else
    2522825814     AC_MSG_RESULT(no)
    25229 @@ -3487,6 +3625,23 @@
     25815@@ -3487,6 +3633,28 @@
    2523025816 fi
    2523125817 AC_SUBST(DEPEND_CFLAGS_FILTER)
     
    2524825834+AC_SUBST(LINK_AS_NEEDED)
    2524925835+
     25836+# IBM z/OS reset CFLAGS for config.mk
     25837+if test "$zOSUnix" = "yes"; then
     25838+       CFLAGS="-D_ALL_SOURCE -Wc,float\(ieee\),dll"
     25839+fi
     25840+
    2525025841 dnl write output files
    2525125842 AC_OUTPUT(auto/config.mk:config.mk.in)
    2525225843 
     25844diff -Naur vim73.orig/src/dehqx.py vim73/src/dehqx.py
     25845--- vim73.orig/src/dehqx.py     2010-05-15 11:04:12.000000000 +0000
     25846+++ vim73/src/dehqx.py  2012-07-20 20:31:17.260977744 +0000
     25847@@ -1,7 +1,10 @@
     25848 # Python script to get both the data and resource fork from a BinHex encoded
     25849 # file.
     25850-# Author: Taro Muraoka
     25851-# Last Change: 2003 Oct 25
     25852+# Author: MURAOKA Taro <koron.kaoriya@gmail.com>
     25853+# Last Change: 2012 Jun 29
     25854+#
     25855+# Copyright (C) 2003,12 MURAOKA Taro <koron.kaoriya@gmail.com>
     25856+# THIS FILE IS DISTRIBUTED UNDER THE VIM LICENSE.
     25857 
     25858 import sys
     25859 import binhex
    2525325860diff -Naur vim73.orig/src/diff.c vim73/src/diff.c
    25254 --- vim73.orig/src/diff.c       2012-06-03 23:09:52.920006524 +0000
    25255 +++ vim73/src/diff.c    2012-06-03 23:09:55.880085297 +0000
     25861--- vim73.orig/src/diff.c       2010-07-31 13:35:21.000000000 +0000
     25862+++ vim73/src/diff.c    2012-07-20 20:31:16.204310320 +0000
    2525625863@@ -783,6 +783,15 @@
    2525725864        goto theend;
     
    2529925906            curwin = wp;
    2530025907diff -Naur vim73.orig/src/digraph.c vim73/src/digraph.c
    25301 --- vim73.orig/src/digraph.c    2012-06-03 23:09:52.952007375 +0000
    25302 +++ vim73/src/digraph.c 2012-06-03 23:09:55.156066030 +0000
     25908--- vim73.orig/src/digraph.c    2010-05-15 11:04:09.000000000 +0000
     25909+++ vim73/src/digraph.c 2012-07-20 20:31:14.044308771 +0000
    2530325910@@ -2080,13 +2080,13 @@
    2530425911 /*
     
    2534925956 }
    2535025957diff -Naur vim73.orig/src/edit.c vim73/src/edit.c
    25351 --- vim73.orig/src/edit.c       2012-06-03 23:09:52.952007375 +0000
    25352 +++ vim73/src/edit.c    2012-06-03 23:09:55.928086574 +0000
     25958--- vim73.orig/src/edit.c       2010-08-08 12:55:05.000000000 +0000
     25959+++ vim73/src/edit.c    2012-07-20 20:31:18.157645052 +0000
    2535325960@@ -58,6 +58,10 @@
    2535425961 };
     
    2548926096 #endif
    2549026097-                       c))
    25491 +                       c) && c != Ctrl_RSB))
     26098+                      c) && c != Ctrl_RSB))
    2549226099            {
    2549326100                insert_special(c, FALSE, FALSE);
     
    2559426201  * Show the popup menu with a different set of matches.
    2559526202  * May also search for matches again if the previous search was interrupted.
    25596 @@ -3397,14 +3473,20 @@
     26203@@ -3391,20 +3467,32 @@
     26204        (*mb_char2bytes)(c, buf);
     26205        buf[cc] = NUL;
     26206        ins_char_bytes(buf, cc);
     26207+       if (compl_opt_refresh_always)
     26208+           AppendToRedobuff(buf);
     26209     }
     26210     else
     26211 #endif
     26212+    {
    2559726213        ins_char(c);
     26214+       if (compl_opt_refresh_always)
     26215+           AppendCharToRedobuff(c);
     26216+    }
    2559826217 
    2559926218     /* If we didn't complete finding matches we must search again. */
     
    2560526224-    compl_leader = vim_strnsave(ml_get_curline() + compl_col,
    2560626225+    /* When 'always' is set, don't reset compl_leader. While completing,
    25607 +     * cursor don't point original position, changing compl_leader would
     26226+     * cursor doesn't point original position, changing compl_leader would
    2560826227+     * break redo. */
    2560926228+    if (!compl_opt_refresh_always)
     
    2562026239 
    2562126240 /*
    25622 @@ -3480,11 +3562,7 @@
     26241@@ -3480,11 +3568,7 @@
    2562326242            return;
    2562426243     }
     
    2563326252 }
    2563426253 
    25635 @@ -3653,9 +3731,6 @@
     26254@@ -3653,9 +3737,6 @@
    2563626255             * memory that was used, and make sure we can redo the insert. */
    2563726256            if (compl_curr_match != NULL || compl_leader != NULL || c == Ctrl_E)
     
    2564326262                 * If any of the original typed text has been changed, eg when
    2564426263                 * ignorecase is set, we must add back-spaces to the redo
    25645 @@ -3666,25 +3741,9 @@
     26264@@ -3666,25 +3747,9 @@
    2564626265                 */
    2564726266                if (compl_curr_match != NULL && compl_used_match && c != Ctrl_E)
     
    2567126290 
    2567226291 #ifdef FEAT_CINDENT
    25673 @@ -3774,6 +3833,44 @@
     26292@@ -3759,6 +3824,11 @@
     26293            if (want_cindent && in_cinkeys(KEY_COMPLETE, ' ', inindent(0)))
     26294                do_c_expr_indent();
     26295 #endif
     26296+#ifdef FEAT_AUTOCMD
     26297+           /* Trigger the CompleteDone event to give scripts a chance to act
     26298+            * upon the completion. */
     26299+           apply_autocmds(EVENT_COMPLETEDONE, NULL, NULL, FALSE, curbuf);
     26300+#endif
     26301        }
     26302     }
     26303 
     26304@@ -3774,6 +3844,44 @@
    2567426305 }
    2567526306 
     
    2571626347  * (depending on flag) starting from buf and looking for a non-scanned
    2571726348  * buffer (other than curbuf). curbuf is special, if it is called with
    25718 @@ -3829,10 +3926,14 @@
     26349@@ -3829,10 +3937,14 @@
    2571926350     int                type;       /* CTRL_X_OMNI or CTRL_X_FUNCTION */
    2572026351     char_u     *base;
     
    2573226363     funcname = (type == CTRL_X_FUNCTION) ? curbuf->b_p_cfu : curbuf->b_p_ofu;
    2573326364     if (*funcname == NUL)
    25734 @@ -3843,13 +3944,50 @@
     26365@@ -3843,13 +3955,50 @@
    2573526366     args[1] = base;
    2573626367 
     
    2578826419 #endif /* FEAT_COMPL_FUNC */
    2578926420 
    25790 @@ -3876,6 +4014,33 @@
     26421@@ -3876,6 +4025,33 @@
    2579126422 }
    2579226423 
     
    2582226453  * If the given string is already in the list of completions, then return
    2582326454  * NOTDONE, otherwise add it to the list and return OK.  If there is an error,
    25824 @@ -3889,6 +4054,7 @@
     26455@@ -3889,6 +4065,7 @@
    2582526456     char_u     *word;
    2582626457     int                icase = FALSE;
     
    2583026461 
    2583126462     if (tv->v_type == VAR_DICT && tv->vval.v_dict != NULL)
    25832 @@ -3906,13 +4072,15 @@
     26463@@ -3906,13 +4083,15 @@
    2583326464            icase = get_dict_number(tv->vval.v_dict, (char_u *)"icase");
    2583426465        if (get_dict_string(tv->vval.v_dict, (char_u *)"dup", FALSE) != NULL)
     
    2584726478     return ins_compl_add(word, -1, icase, NULL, cptext, dir, 0, adup);
    2584826479 }
    25849 @@ -4403,6 +4571,11 @@
     26480@@ -4403,6 +4582,11 @@
    2585026481     int            found_end = FALSE;
    2585126482     int            advance;
     
    2585926490                        && (compl_shown_match->cp_flags & ORIGINAL_TEXT) == 0)
    2586026491     {
    25861 @@ -4994,6 +5167,8 @@
     26492@@ -4994,6 +5178,8 @@
    2586226493            int         col;
    2586326494            char_u      *funcname;
     
    2586826499            /* Call 'completefunc' or 'omnifunc' and get pattern length as a
    2586926500             * string */
    25870 @@ -5009,8 +5184,40 @@
     26501@@ -5009,8 +5195,40 @@
    2587126502            args[0] = (char_u *)"1";
    2587226503            args[1] = NULL;
     
    2590926540            if (col < 0)
    2591026541                col = curs_col;
    25911 @@ -5089,6 +5296,10 @@
     26542@@ -5089,6 +5307,10 @@
    2591226543        else
    2591326544            edit_submode = (char_u *)_(CTRL_X_MSG(ctrl_x_mode));
     
    2592026551        vim_free(compl_orig_text);
    2592126552        compl_orig_text = vim_strnsave(line + compl_col, compl_length);
    25922 @@ -5249,7 +5460,7 @@
     26553@@ -5249,7 +5471,7 @@
    2592326554                                compl_curr_match->cp_number);
    2592426555                edit_submode_extra = match_ref;
     
    2592926560            }
    2593026561        }
    25931 @@ -5691,6 +5902,8 @@
     26562@@ -5558,6 +5780,16 @@
     26563 # define WHITECHAR(cc) vim_iswhite(cc)
     26564 #endif
     26565 
     26566+/*
     26567+ * "flags": INSCHAR_FORMAT - force formatting
     26568+ *         INSCHAR_CTRLV  - char typed just after CTRL-V
     26569+ *         INSCHAR_NO_FEX - don't use 'formatexpr'
     26570+ *
     26571+ *   NOTE: passes the flags value straight through to internal_format() which,
     26572+ *        beside INSCHAR_FORMAT (above), is also looking for these:
     26573+ *         INSCHAR_DO_COM   - format comments
     26574+ *         INSCHAR_COM_LIST - format comments with num list or 2nd line indent
     26575+ */
     26576     void
     26577 insertchar(c, flags, second_indent)
     26578     int                c;                      /* character to insert or NUL */
     26579@@ -5636,7 +5868,7 @@
     26580         * Need to remove existing (middle) comment leader and insert end
     26581         * comment leader.  First, check what comment leader we can find.
     26582         */
     26583-       i = get_leader_len(line = ml_get_curline(), &p, FALSE);
     26584+       i = get_leader_len(line = ml_get_curline(), &p, FALSE, TRUE);
     26585        if (i > 0 && vim_strchr(p, COM_MIDDLE) != NULL) /* Just checking */
     26586        {
     26587            /* Skip middle-comment string */
     26588@@ -5691,6 +5923,8 @@
    2593226589      * Don't do this when 'cindent' or 'indentexpr' is set, because we might
    2593326590      * need to re-indent at a ':', or any other character (but not what
     
    2593826595 #ifdef USE_ON_FLY_SCROLL
    2593926596     dont_scroll = FALSE;               /* allow scrolling here */
    25940 @@ -5708,6 +5921,9 @@
     26597@@ -5708,6 +5942,9 @@
    2594126598 #ifdef FEAT_RIGHTLEFT
    2594226599            && !p_ri
     
    2594826605     {
    2594926606 #define INPUT_BUFLEN 100
    25950 @@ -5902,6 +6118,7 @@
     26607@@ -5795,6 +6032,9 @@
     26608 
     26609 /*
     26610  * Format text at the current insert position.
     26611+ *
     26612+ * If the INSCHAR_COM_LIST flag is present, then the value of second_indent
     26613+ * will be the comment leader length sent to open_line().
     26614  */
     26615     static void
     26616 internal_format(textwidth, second_indent, flags, format_only, c)
     26617@@ -5869,7 +6109,7 @@
     26618 
     26619        /* Don't break until after the comment leader */
     26620        if (do_comments)
     26621-           leader_len = get_leader_len(ml_get_curline(), NULL, FALSE);
     26622+           leader_len = get_leader_len(ml_get_curline(), NULL, FALSE, TRUE);
     26623        else
     26624            leader_len = 0;
     26625 
     26626@@ -5902,6 +6142,7 @@
    2595126627         * Stop at first entered white when 'formatoptions' has 'v'
    2595226628         */
     
    2595626632                    || curwin->w_cursor.col >= Insstart.col)
    2595726633        {
    25958 @@ -6598,11 +6815,7 @@
     26634@@ -6072,23 +6313,59 @@
     26635                + (fo_white_par ? OPENLINE_KEEPTRAIL : 0)
     26636 #ifdef FEAT_COMMENTS
     26637                + (do_comments ? OPENLINE_DO_COM : 0)
     26638+               + ((flags & INSCHAR_COM_LIST) ? OPENLINE_COM_LIST : 0)
     26639 #endif
     26640-               , old_indent);
     26641-       old_indent = 0;
     26642+               , ((flags & INSCHAR_COM_LIST) ? second_indent : old_indent));
     26643+       if (!(flags & INSCHAR_COM_LIST))
     26644+           old_indent = 0;
     26645 
     26646        replace_offset = 0;
     26647        if (first_line)
     26648        {
     26649-           if (second_indent < 0 && has_format_option(FO_Q_NUMBER))
     26650-               second_indent = get_number_indent(curwin->w_cursor.lnum -1);
     26651-           if (second_indent >= 0)
     26652+           if (!(flags & INSCHAR_COM_LIST))
     26653            {
     26654+               /*
     26655+                * This section is for auto-wrap of numeric lists.  When not
     26656+                * in insert mode (i.e. format_lines()), the INSCHAR_COM_LIST
     26657+                * flag will be set and open_line() will handle it (as seen
     26658+                * above).  The code here (and in get_number_indent()) will
     26659+                * recognize comments if needed...
     26660+                */
     26661+               if (second_indent < 0 && has_format_option(FO_Q_NUMBER))
     26662+                   second_indent =
     26663+                                get_number_indent(curwin->w_cursor.lnum - 1);
     26664+               if (second_indent >= 0)
     26665+               {
     26666 #ifdef FEAT_VREPLACE
     26667-               if (State & VREPLACE_FLAG)
     26668-                   change_indent(INDENT_SET, second_indent, FALSE, NUL, TRUE);
     26669-               else
     26670+                   if (State & VREPLACE_FLAG)
     26671+                       change_indent(INDENT_SET, second_indent,
     26672+                                                           FALSE, NUL, TRUE);
     26673+                   else
     26674+#endif
     26675+#ifdef FEAT_COMMENTS
     26676+                       if (leader_len > 0 && second_indent - leader_len > 0)
     26677+                   {
     26678+                       int i;
     26679+                       int padding = second_indent - leader_len;
     26680+
     26681+                       /* We started at the first_line of a numbered list
     26682+                        * that has a comment.  the open_line() function has
     26683+                        * inserted the proper comment leader and positioned
     26684+                        * the cursor at the end of the split line.  Now we
     26685+                        * add the additional whitespace needed after the
     26686+                        * comment leader for the numbered list.  */
     26687+                       for (i = 0; i < padding; i++)
     26688+                           ins_str((char_u *)" ");
     26689+                       changed_bytes(curwin->w_cursor.lnum, leader_len);
     26690+                   }
     26691+                   else
     26692+                   {
     26693 #endif
     26694-                   (void)set_indent(second_indent, SIN_CHANGED);
     26695+                       (void)set_indent(second_indent, SIN_CHANGED);
     26696+#ifdef FEAT_COMMENTS
     26697+                   }
     26698+#endif
     26699+               }
     26700            }
     26701            first_line = FALSE;
     26702        }
     26703@@ -6194,7 +6471,7 @@
     26704     /* With the 'c' flag in 'formatoptions' and 't' missing: only format
     26705      * comments. */
     26706     if (has_format_option(FO_WRAP_COMS) && !has_format_option(FO_WRAP)
     26707-                                    && get_leader_len(old, NULL, FALSE) == 0)
     26708+                                    && get_leader_len(old, NULL, FALSE, TRUE) == 0)
     26709        return;
     26710 #endif
     26711 
     26712@@ -6598,11 +6875,7 @@
    2595926713     char_u     *s;
    2596026714 
     
    2596826722     {
    2596926723        s = last_insert;
    25970 @@ -6640,7 +6853,7 @@
     26724@@ -6640,7 +6913,7 @@
    2597126725     char_u     *s;
    2597226726 {
     
    2597726731     int                len;
    2597826732 
    25979 @@ -7202,7 +7415,7 @@
     26733@@ -7202,7 +7475,7 @@
    2598026734     int                cc;
    2598126735 {
     
    2598626740     int                c;
    2598726741 
    25988 @@ -8768,7 +8981,7 @@
     26742@@ -8352,7 +8625,7 @@
     26743     {
     26744        temp = curwin->w_cursor.col;
     26745        if (!can_bs(BS_EOL)             /* only if "eol" included */
     26746-               || do_join(2, FALSE, TRUE) == FAIL)
     26747+               || do_join(2, FALSE, TRUE, FALSE) == FAIL)
     26748            vim_beep();
     26749        else
     26750            curwin->w_cursor.col = temp;
     26751@@ -8533,7 +8806,7 @@
     26752                        ptr[len - 1] = NUL;
     26753                }
     26754 
     26755-               (void)do_join(2, FALSE, FALSE);
     26756+               (void)do_join(2, FALSE, FALSE, FALSE);
     26757                if (temp == NUL && gchar_cursor() != NUL)
     26758                    inc_cursor();
     26759            }
     26760@@ -8768,7 +9041,7 @@
    2598926761      * We can emulate the vi behaviour by pretending there is a dollar
    2599026762      * displayed even when there isn't.
     
    2599526767 
    2599626768 #ifdef FEAT_FOLDING
    25997 @@ -9598,6 +9811,7 @@
     26769@@ -9598,6 +9871,7 @@
    2599826770 {
    2599926771     int            c;
     
    2600326775     pc_status = PC_STATUS_UNSET;
    2600426776     if (redrawing() && !char_avail())
    26005 @@ -9606,6 +9820,7 @@
     26777@@ -9606,6 +9880,7 @@
    2600626778        ins_redraw(FALSE);
    2600726779 
     
    2601126783        add_to_showcmd_c(Ctrl_K);
    2601226784 #endif
    26013 @@ -9622,8 +9837,10 @@
     26785@@ -9622,8 +9897,10 @@
    2601426786     c = plain_vgetc();
    2601526787     --no_mapping;
     
    2602426796     if (IS_SPECIAL(c) || mod_mask)         /* special key */
    2602526797     {
    26026 @@ -9635,6 +9852,7 @@
     26798@@ -9635,6 +9912,7 @@
    2602726799     }
    2602826800     if (c != ESC)
     
    2603226804        {
    2603326805            /* may need to redraw when no more chars available now */
    26034 @@ -9642,11 +9860,9 @@
     26806@@ -9642,11 +9920,9 @@
    2603526807 
    2603626808            if (char2cells(c) == 1)
     
    2604526817 #ifdef FEAT_CMDL_INFO
    2604626818            add_to_showcmd_c(c);
    26047 @@ -9657,8 +9873,10 @@
     26819@@ -9657,8 +9933,10 @@
    2604826820        cc = plain_vgetc();
    2604926821        --no_mapping;
     
    2605826830        {
    2605926831            AppendToRedobuff((char_u *)CTRL_V_STR);
    26060 @@ -9680,7 +9898,7 @@
     26832@@ -9680,7 +9958,7 @@
    2606126833  * Handle CTRL-E and CTRL-Y in Insert mode: copy char from other line.
    2606226834  * Returns the char to be inserted, or NUL if none found.
     
    2606726839     linenr_T   lnum;
    2606826840 {
    26069 @@ -9870,3 +10088,52 @@
     26841@@ -9870,3 +10148,52 @@
    2607026842     validate_virtcol();
    2607126843     return curwin->w_virtcol;
     
    2612126893+#endif
    2612226894diff -Naur vim73.orig/src/eval.c vim73/src/eval.c
    26123 --- vim73.orig/src/eval.c       2012-06-03 23:09:52.952007375 +0000
    26124 +++ vim73/src/eval.c    2012-06-03 23:09:55.932086681 +0000
     26895--- vim73.orig/src/eval.c       2010-08-09 20:12:14.000000000 +0000
     26896+++ vim73/src/eval.c    2012-07-20 20:31:18.337645181 +0000
    2612526897@@ -10,9 +10,6 @@
    2612626898 /*
     
    2615926931 static char_u *skip_var_list __ARGS((char_u *arg, int *var_count, int *semicolon));
    2616026932 static char_u *skip_var_one __ARGS((char_u *arg));
    26161 @@ -433,9 +428,9 @@
     26933@@ -429,31 +424,22 @@
     26934 static int get_lit_string_tv __ARGS((char_u **arg, typval_T *rettv, int evaluate));
     26935 static int get_list_tv __ARGS((char_u **arg, typval_T *rettv, int evaluate));
     26936 static int rettv_list_alloc __ARGS((typval_T *rettv));
     26937-static listitem_T *listitem_alloc __ARGS((void));
    2616226938 static void listitem_free __ARGS((listitem_T *item));
    26163  static void listitem_remove __ARGS((list_T *l, listitem_T *item));
     26939-static void listitem_remove __ARGS((list_T *l, listitem_T *item));
    2616426940 static long list_len __ARGS((list_T *l));
    2616526941-static int list_equal __ARGS((list_T *l1, list_T *l2, int ic));
    2616626942-static int dict_equal __ARGS((dict_T *d1, dict_T *d2, int ic));
    2616726943-static int tv_equal __ARGS((typval_T *tv1, typval_T *tv2, int ic));
     26944-static listitem_T *list_find __ARGS((list_T *l, long n));
    2616826945+static int list_equal __ARGS((list_T *l1, list_T *l2, int ic, int recursive));
    2616926946+static int dict_equal __ARGS((dict_T *d1, dict_T *d2, int ic, int recursive));
    2617026947+static int tv_equal __ARGS((typval_T *tv1, typval_T *tv2, int ic, int recursive));
    26171  static listitem_T *list_find __ARGS((list_T *l, long n));
    2617226948 static long list_find_nr __ARGS((list_T *l, long idx, int *errorp));
    2617326949 static long list_idx_of_item __ARGS((list_T *l, listitem_T *item));
    26174 @@ -447,13 +442,13 @@
     26950-static void list_append __ARGS((list_T *l, listitem_T *item));
     26951 static int list_append_number __ARGS((list_T *l, varnumber_T n));
     26952-static int list_insert_tv __ARGS((list_T *l, typval_T *tv, listitem_T *item));
     26953 static int list_extend __ARGS((list_T  *l1, list_T *l2, listitem_T *bef));
     26954 static int list_concat __ARGS((list_T *l1, list_T *l2, typval_T *tv));
    2617526955 static list_T *list_copy __ARGS((list_T *orig, int deep, int copyID));
    26176  static void list_remove __ARGS((list_T *l, listitem_T *item, listitem_T *item2));
     26956-static void list_remove __ARGS((list_T *l, listitem_T *item, listitem_T *item2));
    2617726957 static char_u *list2string __ARGS((typval_T *tv, int copyID));
    2617826958+static int list_join_inner __ARGS((garray_T *gap, list_T *l, char_u *sep, int echo_style, int copyID, garray_T *join_gap));
    2617926959 static int list_join __ARGS((garray_T *gap, list_T *l, char_u *sep, int echo, int copyID));
    2618026960 static int free_unref_items __ARGS((int copyID));
    26181  static void set_ref_in_ht __ARGS((hashtab_T *ht, int copyID));
    26182  static void set_ref_in_list __ARGS((list_T *l, int copyID));
    26183  static void set_ref_in_item __ARGS((typval_T *tv, int copyID));
     26961-static void set_ref_in_ht __ARGS((hashtab_T *ht, int copyID));
     26962-static void set_ref_in_list __ARGS((list_T *l, int copyID));
     26963-static void set_ref_in_item __ARGS((typval_T *tv, int copyID));
    2618426964 static int rettv_dict_alloc __ARGS((typval_T *rettv));
    2618526965-static void dict_unref __ARGS((dict_T *d));
     
    2618726967 static dictitem_T *dictitem_copy __ARGS((dictitem_T *org));
    2618826968 static void dictitem_remove __ARGS((dict_T *dict, dictitem_T *item));
    26189 @@ -480,6 +475,7 @@
     26969@@ -480,6 +466,7 @@
    2619026970 static void f_acos __ARGS((typval_T *argvars, typval_T *rettv));
    2619126971 #endif
     
    2619526975 static void f_argc __ARGS((typval_T *argvars, typval_T *rettv));
    2619626976 static void f_argidx __ARGS((typval_T *argvars, typval_T *rettv));
    26197 @@ -608,6 +604,7 @@
     26977@@ -608,6 +595,7 @@
    2619826978 static void f_inputsave __ARGS((typval_T *argvars, typval_T *rettv));
    2619926979 static void f_inputsecret __ARGS((typval_T *argvars, typval_T *rettv));
     
    2620326983 static void f_islocked __ARGS((typval_T *argvars, typval_T *rettv));
    2620426984 static void f_items __ARGS((typval_T *argvars, typval_T *rettv));
    26205 @@ -625,6 +622,9 @@
     26985@@ -625,6 +613,9 @@
    2620626986 static void f_log __ARGS((typval_T *argvars, typval_T *rettv));
    2620726987 static void f_log10 __ARGS((typval_T *argvars, typval_T *rettv));
     
    2621326993 static void f_maparg __ARGS((typval_T *argvars, typval_T *rettv));
    2621426994 static void f_mapcheck __ARGS((typval_T *argvars, typval_T *rettv));
    26215 @@ -646,6 +646,7 @@
     26995@@ -646,6 +637,7 @@
    2621626996 #endif
    2621726997 static void f_nextnonblank __ARGS((typval_T *argvars, typval_T *rettv));
     
    2622127001 #ifdef FEAT_FLOAT
    2622227002 static void f_pow __ARGS((typval_T *argvars, typval_T *rettv));
    26223 @@ -757,6 +758,7 @@
     27003@@ -653,6 +645,12 @@
     27004 static void f_prevnonblank __ARGS((typval_T *argvars, typval_T *rettv));
     27005 static void f_printf __ARGS((typval_T *argvars, typval_T *rettv));
     27006 static void f_pumvisible __ARGS((typval_T *argvars, typval_T *rettv));
     27007+#ifdef FEAT_PYTHON3
     27008+static void f_py3eval __ARGS((typval_T *argvars, typval_T *rettv));
     27009+#endif
     27010+#ifdef FEAT_PYTHON
     27011+static void f_pyeval __ARGS((typval_T *argvars, typval_T *rettv));
     27012+#endif
     27013 static void f_range __ARGS((typval_T *argvars, typval_T *rettv));
     27014 static void f_readfile __ARGS((typval_T *argvars, typval_T *rettv));
     27015 static void f_reltime __ARGS((typval_T *argvars, typval_T *rettv));
     27016@@ -757,6 +755,7 @@
    2622427017 static void f_winsaveview __ARGS((typval_T *argvars, typval_T *rettv));
    2622527018 static void f_winwidth __ARGS((typval_T *argvars, typval_T *rettv));
     
    2622927022 static int list2fpos __ARGS((typval_T *arg, pos_T *posp, int *fnump));
    2623027023 static pos_T *var2fpos __ARGS((typval_T *varp, int dollar_lnum, int *fnum));
    26231 @@ -791,6 +793,8 @@
     27024@@ -791,6 +790,8 @@
    2623227025 static void set_var __ARGS((char_u *name, typval_T *varp, int copy));
    2623327026 static int var_check_ro __ARGS((int flags, char_u *name));
     
    2623827031 static int item_copy __ARGS((typval_T *from, typval_T *to, int deep, int copyID));
    2623927032 static char_u *find_option_end __ARGS((char_u **arg, int *opt_flags));
    26240 @@ -853,6 +857,7 @@
    26241  
    26242      init_var_dict(&globvardict, &globvars_var);
    26243      init_var_dict(&vimvardict, &vimvars_var);
     27033@@ -820,8 +821,6 @@
     27034 static char_u *autoload_name __ARGS((char_u *name));
     27035 static void cat_func_name __ARGS((char_u *buf, ufunc_T *fp));
     27036 static void func_free __ARGS((ufunc_T *fp));
     27037-static void func_unref __ARGS((char_u *name));
     27038-static void func_ref __ARGS((char_u *name));
     27039 static void call_user_func __ARGS((ufunc_T *fp, int argcount, typval_T *argvars, typval_T *rettv, linenr_T firstline, linenr_T lastline, dict_T *selfdict));
     27040 static int can_free_funccal __ARGS((funccall_T *fc, int copyID)) ;
     27041 static void free_funccal __ARGS((funccall_T *fc, int free_val));
     27042@@ -851,8 +850,9 @@
     27043     int                    i;
     27044     struct vimvar   *p;
     27045 
     27046-    init_var_dict(&globvardict, &globvars_var);
     27047-    init_var_dict(&vimvardict, &vimvars_var);
     27048+    init_var_dict(&globvardict, &globvars_var, VAR_DEF_SCOPE);
     27049+    init_var_dict(&vimvardict, &vimvars_var, VAR_SCOPE);
    2624427050+    vimvardict.dv_lock = VAR_FIXED;
    2624527051     hash_init(&compat_hashtab);
    2624627052     hash_init(&func_hashtab);
    2624727053 
    26248 @@ -875,10 +880,11 @@
     27054@@ -875,10 +875,11 @@
    2624927055            hash_add(&compat_hashtab, p->vv_di.di_key);
    2625027056     }
     
    2625927065     sortFunctions();
    2626027066 #endif
    26261 @@ -910,6 +916,7 @@
     27067@@ -910,6 +911,7 @@
    2626227068     hash_clear(&compat_hashtab);
    2626327069 
     
    2626727073     /* global variables */
    2626827074     vars_clear(&globvarht);
    26269 @@ -1355,7 +1362,11 @@
     27075@@ -1355,7 +1357,11 @@
    2627027076        {
    2627127077            ga_init2(&ga, (int)sizeof(char), 80);
     
    2627927085            retval = (char_u *)ga.ga_data;
    2628027086        }
    26281 @@ -1557,7 +1568,7 @@
     27087@@ -1557,7 +1563,7 @@
    2628227088  * arguments are currently supported.
    2628327089  * Returns OK or FAIL.
     
    2628827094     char_u      *func;
    2628927095     int                argc;
    26290 @@ -2325,7 +2336,7 @@
     27096@@ -2325,7 +2331,7 @@
    2629127097            else if (endchars != NULL
    2629227098                             && vim_strchr(endchars, *skipwhite(arg)) == NULL)
     
    2629727103                c1 = name[len];
    2629827104                name[len] = NUL;
    26299 @@ -2718,8 +2729,27 @@
     27105@@ -2718,8 +2724,39 @@
    2630027106            lp->ll_list = NULL;
    2630127107            lp->ll_dict = lp->ll_tv->vval.v_dict;
    2630227108            lp->ll_di = dict_find(lp->ll_dict, key, len);
    2630327109+
    26304 +           /* When assigning to g: check that a function and variable name is
    26305 +            * valid. */
    26306 +           if (rettv != NULL && lp->ll_dict == &globvardict)
     27110+           /* When assigning to a scope dictionary check that a function and
     27111+            * variable name is valid (only variable name unless it is l: or
     27112+            * g: dictionary). Disallow overwriting a builtin function. */
     27113+           if (rettv != NULL && lp->ll_dict->dv_scope != 0)
    2630727114+           {
    26308 +               if (rettv->v_type == VAR_FUNC
     27115+               int prevval;
     27116+               int wrong;
     27117+
     27118+               if (len != -1)
     27119+               {
     27120+                   prevval = key[len];
     27121+                   key[len] = NUL;
     27122+               }
     27123+               wrong = (lp->ll_dict->dv_scope == VAR_DEF_SCOPE
     27124+                              && rettv->v_type == VAR_FUNC
    2630927125+                              && var_check_func_name(key, lp->ll_di == NULL))
    26310 +                   return NULL;
    26311 +               if (!valid_varname(key))
     27126+                       || !valid_varname(key);
     27127+               if (len != -1)
     27128+                   key[len] = prevval;
     27129+               if (wrong)
    2631227130+                   return NULL;
    2631327131+           }
     
    2632527143                if (*p == '[' || *p == '.' || unlet)
    2632627144                {
    26327 @@ -2739,6 +2769,10 @@
     27145@@ -2739,6 +2776,10 @@
    2632827146                    p = NULL;
    2632927147                break;
     
    2633627154                clear_tv(&var1);
    2633727155            lp->ll_tv = &lp->ll_di->di_tv;
    26338 @@ -2770,6 +2804,8 @@
     27156@@ -2770,6 +2811,8 @@
    2633927157            {
    2634027158                if (lp->ll_range && !lp->ll_empty2)
     
    2634527163            }
    2634627164 
    26347 @@ -2787,7 +2823,11 @@
     27165@@ -2787,7 +2830,11 @@
    2634827166                {
    2634927167                    ni = list_find(lp->ll_list, lp->ll_n2);
     
    2635727175                }
    2635827176 
    26359 @@ -2795,7 +2835,11 @@
     27177@@ -2795,7 +2842,11 @@
    2636027178                if (lp->ll_n1 < 0)
    2636127179                    lp->ll_n1 = list_idx_of_item(lp->ll_list, lp->ll_li);
     
    2636927187 
    2637027188            lp->ll_tv = &lp->ll_li->li_tv;
    26371 @@ -3337,6 +3381,18 @@
     27189@@ -3337,6 +3388,18 @@
    2637227190     int                failed = FALSE;
    2637327191     funcdict_T fudi;
     
    2638827206     if (fudi.fd_newkey != NULL)
    2638927207     {
    26390 @@ -3386,6 +3442,9 @@
     27208@@ -3386,6 +3449,9 @@
    2639127209        {
    2639227210            curwin->w_cursor.lnum = lnum;
     
    2639827216        arg = startarg;
    2639927217        if (get_func_tv(name, (int)STRLEN(name), &rettv, &arg,
    26400 @@ -4349,7 +4408,8 @@
     27218@@ -4349,7 +4415,8 @@
    2640127219                else
    2640227220                {
     
    2640827226                        n1 = !n1;
    2640927227                }
    26410 @@ -4378,7 +4438,8 @@
     27228@@ -4378,7 +4445,8 @@
    2641127229                else
    2641227230                {
     
    2641827236                        n1 = !n1;
    2641927237                }
    26420 @@ -5097,9 +5158,7 @@
     27238@@ -5097,9 +5165,7 @@
    2642127239            else
    2642227240                ret = OK;
     
    2642927247 
    2643027248     *arg = skipwhite(*arg);
    26431 @@ -5913,10 +5972,11 @@
     27249@@ -5868,7 +5934,7 @@
     27250 /*
     27251  * Allocate a list item.
     27252  */
     27253-    static listitem_T *
     27254+    listitem_T *
     27255 listitem_alloc()
     27256 {
     27257     return (listitem_T *)alloc(sizeof(listitem_T));
     27258@@ -5888,7 +5954,7 @@
     27259 /*
     27260  * Remove a list item from a List and free it.  Also clears the value.
     27261  */
     27262-    static void
     27263+    void
     27264 listitem_remove(l, item)
     27265     list_T  *l;
     27266     listitem_T *item;
     27267@@ -5913,10 +5979,11 @@
    2643227268  * Return TRUE when two lists have exactly the same values.
    2643327269  */
     
    2644227278     listitem_T *item1, *item2;
    2644327279 
    26444 @@ -5930,7 +5990,7 @@
     27280@@ -5930,7 +5997,7 @@
    2644527281     for (item1 = l1->lv_first, item2 = l2->lv_first;
    2644627282            item1 != NULL && item2 != NULL;
     
    2645127287     return item1 == NULL && item2 == NULL;
    2645227288 }
    26453 @@ -5952,10 +6012,11 @@
     27289@@ -5952,10 +6019,11 @@
    2645427290  * Return TRUE when two dictionaries have exactly the same key/values.
    2645527291  */
     
    2646427300     hashitem_T *hi;
    2646527301     dictitem_T *item2;
    26466 @@ -5976,7 +6037,7 @@
     27302@@ -5976,7 +6044,7 @@
    2646727303            item2 = dict_find(d2, hi->hi_key, -1);
    2646827304            if (item2 == NULL)
     
    2647327309            --todo;
    2647427310        }
    26475 @@ -5984,41 +6045,54 @@
     27311@@ -5984,41 +6052,54 @@
    2647627312     return TRUE;
    2647727313 }
     
    2653927375 
    2654027376        case VAR_FUNC:
    26541 @@ -6502,47 +6576,119 @@
     27377@@ -6049,7 +6130,7 @@
     27378  * A negative index is counted from the end; -1 is the last item.
     27379  * Returns NULL when "n" is out of range.
     27380  */
     27381-    static listitem_T *
     27382+    listitem_T *
     27383 list_find(l, n)
     27384     list_T     *l;
     27385     long       n;
     27386@@ -6191,7 +6272,7 @@
     27387 /*
     27388  * Append item "item" to the end of list "l".
     27389  */
     27390-    static void
     27391+    void
     27392 list_append(l, item)
     27393     list_T     *l;
     27394     listitem_T *item;
     27395@@ -6304,7 +6385,7 @@
     27396  * If "item" is NULL append at the end.
     27397  * Return FAIL when out of memory.
     27398  */
     27399-    static int
     27400+    int
     27401 list_insert_tv(l, tv, item)
     27402     list_T     *l;
     27403     typval_T   *tv;
     27404@@ -6449,7 +6530,7 @@
     27405  * Remove items "item" to "item2" from list "l".
     27406  * Does not free the listitem or the value!
     27407  */
     27408-    static void
     27409+    void
     27410 list_remove(l, item, item2)
     27411     list_T     *l;
     27412     listitem_T *item;
     27413@@ -6502,47 +6583,119 @@
    2654227414     return (char_u *)ga.ga_data;
    2654327415 }
     
    2667627548  *
    2667727549  * We use reference counts to be able to free most items right away when they
    26678 @@ -6635,6 +6781,10 @@
     27550@@ -6635,6 +6788,18 @@
    2667927551     /* v: vars */
    2668027552     set_ref_in_ht(&vimvarht, copyID);
     
    2668427556+#endif
    2668527557+
     27558+#ifdef FEAT_PYTHON
     27559+    set_ref_in_python(copyID);
     27560+#endif
     27561+
     27562+#ifdef FEAT_PYTHON3
     27563+    set_ref_in_python3(copyID);
     27564+#endif
     27565+
    2668627566     /*
    2668727567      * 2. Free lists and dictionaries that are not referenced.
    2668827568      */
    26689 @@ -6837,7 +6987,7 @@
     27569@@ -6720,7 +6885,7 @@
     27570 /*
     27571  * Mark all lists and dicts referenced through hashtab "ht" with "copyID".
     27572  */
     27573-    static void
     27574+    void
     27575 set_ref_in_ht(ht, copyID)
     27576     hashtab_T  *ht;
     27577     int                copyID;
     27578@@ -6740,7 +6905,7 @@
     27579 /*
     27580  * Mark all lists and dicts referenced through list "l" with "copyID".
     27581  */
     27582-    static void
     27583+    void
     27584 set_ref_in_list(l, copyID)
     27585     list_T     *l;
     27586     int                copyID;
     27587@@ -6754,7 +6919,7 @@
     27588 /*
     27589  * Mark all lists and dicts referenced through typval "tv" with "copyID".
     27590  */
     27591-    static void
     27592+    void
     27593 set_ref_in_item(tv, copyID)
     27594     typval_T   *tv;
     27595     int                copyID;
     27596@@ -6798,7 +6963,7 @@
     27597     d = (dict_T *)alloc(sizeof(dict_T));
     27598     if (d != NULL)
     27599     {
     27600-       /* Add the list to the list of dicts for garbage collection. */
     27601+       /* Add the dict to the list of dicts for garbage collection. */
     27602        if (first_dict != NULL)
     27603            first_dict->dv_used_prev = d;
     27604        d->dv_used_next = first_dict;
     27605@@ -6807,6 +6972,7 @@
     27606 
     27607        hash_init(&d->dv_hashtab);
     27608        d->dv_lock = 0;
     27609+       d->dv_scope = 0;
     27610        d->dv_refcount = 0;
     27611        d->dv_copyID = 0;
     27612     }
     27613@@ -6837,7 +7003,7 @@
    2669027614  * Unreference a Dictionary: decrement the reference count and free it when it
    2669127615  * becomes zero.
     
    2669627620     dict_T *d;
    2669727621 {
    26698 @@ -7075,7 +7225,7 @@
     27622@@ -7075,7 +7241,7 @@
    2669927623 }
    2670027624 
     
    2670527629  */
    2670627630     int
    26707 @@ -7097,6 +7247,7 @@
     27631@@ -7097,6 +7263,7 @@
    2670827632        dictitem_free(item);
    2670927633        return FAIL;
     
    2671327637 }
    2671427638 
    26715 @@ -7649,6 +7800,7 @@
     27639@@ -7649,6 +7816,7 @@
    2671627640     {"acos",           1, 1, f_acos},  /* WJMc */
    2671727641 #endif
     
    2672127645     {"argc",           0, 0, f_argc},
    2672227646     {"argidx",         0, 0, f_argidx},
    26723 @@ -7708,7 +7860,7 @@
     27647@@ -7708,7 +7876,7 @@
    2672427648 #ifdef FEAT_FLOAT
    2672527649     {"exp",            1, 1, f_exp},
     
    2673027654     {"feedkeys",       1, 2, f_feedkeys},
    2673127655     {"file_readable",  1, 1, f_filereadable},  /* obsolete */
    26732 @@ -7759,7 +7911,7 @@
     27656@@ -7759,7 +7927,7 @@
    2673327657     {"getwinposx",     0, 0, f_getwinposx},
    2673427658     {"getwinposy",     0, 0, f_getwinposy},
     
    2673927663     {"has",            1, 1, f_has},
    2674027664     {"has_key",                2, 2, f_has_key},
    26741 @@ -7784,6 +7936,7 @@
     27665@@ -7784,6 +7952,7 @@
    2674227666     {"inputsave",      0, 0, f_inputsave},
    2674327667     {"inputsecret",    1, 2, f_inputsecret},
     
    2674727671     {"islocked",       1, 1, f_islocked},
    2674827672     {"items",          1, 1, f_items},
    26749 @@ -7801,8 +7954,11 @@
     27673@@ -7801,8 +7970,11 @@
    2675027674     {"log",            1, 1, f_log},
    2675127675     {"log10",          1, 1, f_log10},
     
    2676027684     {"match",          2, 4, f_match},
    2676127685     {"matchadd",       2, 4, f_matchadd},
    26762 @@ -7822,6 +7978,7 @@
     27686@@ -7822,6 +7994,7 @@
    2676327687 #endif
    2676427688     {"nextnonblank",   1, 1, f_nextnonblank},
     
    2676827692 #ifdef FEAT_FLOAT
    2676927693     {"pow",            2, 2, f_pow},
    26770 @@ -7870,7 +8027,7 @@
     27694@@ -7829,6 +8002,12 @@
     27695     {"prevnonblank",   1, 1, f_prevnonblank},
     27696     {"printf",         2, 19, f_printf},
     27697     {"pumvisible",     0, 0, f_pumvisible},
     27698+#ifdef FEAT_PYTHON3
     27699+    {"py3eval",                1, 1, f_py3eval},
     27700+#endif
     27701+#ifdef FEAT_PYTHON
     27702+    {"pyeval",         1, 1, f_pyeval},
     27703+#endif
     27704     {"range",          1, 3, f_range},
     27705     {"readfile",       1, 3, f_readfile},
     27706     {"reltime",                0, 2, f_reltime},
     27707@@ -7870,7 +8049,7 @@
    2677127708     {"sin",            1, 1, f_sin},
    2677227709     {"sinh",           1, 1, f_sinh},
     
    2677727714     {"spellbadword",   0, 1, f_spellbadword},
    2677827715     {"spellsuggest",   1, 3, f_spellsuggest},
    26779 @@ -7933,6 +8090,7 @@
     27716@@ -7933,6 +8112,7 @@
    2678027717     {"winsaveview",    0, 0, f_winsaveview},
    2678127718     {"winwidth",       1, 1, f_winwidth},
     
    2678527722 
    2678627723 #if defined(FEAT_CMDL_COMPL) || defined(PROTO)
    26787 @@ -8497,7 +8655,7 @@
     27724@@ -8497,7 +8677,7 @@
    2678827725     if (argvars[0].v_type == VAR_LIST)
    2678927726     {
     
    2679427731            copy_tv(&argvars[0], rettv);
    2679527732     }
    26796 @@ -8506,6 +8664,18 @@
     27733@@ -8506,6 +8686,18 @@
    2679727734 }
    2679827735 
     
    2681327750  */
    2681427751     static void
    26815 @@ -9298,7 +9468,7 @@
     27752@@ -8980,6 +9172,45 @@
     27753 #endif
     27754 }
     27755 
     27756+    int
     27757+func_call(name, args, selfdict, rettv)
     27758+    char_u     *name;
     27759+    typval_T   *args;
     27760+    dict_T     *selfdict;
     27761+    typval_T   *rettv;
     27762+{
     27763+    listitem_T *item;
     27764+    typval_T   argv[MAX_FUNC_ARGS + 1];
     27765+    int                argc = 0;
     27766+    int                dummy;
     27767+    int                r = 0;
     27768+
     27769+    for (item = args->vval.v_list->lv_first; item != NULL;
     27770+                                                        item = item->li_next)
     27771+    {
     27772+       if (argc == MAX_FUNC_ARGS)
     27773+       {
     27774+           EMSG(_("E699: Too many arguments"));
     27775+           break;
     27776+       }
     27777+       /* Make a copy of each argument.  This is needed to be able to set
     27778+        * v_lock to VAR_FIXED in the copy without changing the original list.
     27779+        */
     27780+       copy_tv(&item->li_tv, &argv[argc++]);
     27781+    }
     27782+
     27783+    if (item == NULL)
     27784+       r = call_func(name, (int)STRLEN(name), rettv, argc, argv,
     27785+                                curwin->w_cursor.lnum, curwin->w_cursor.lnum,
     27786+                                                     &dummy, TRUE, selfdict);
     27787+
     27788+    /* Free the arguments. */
     27789+    while (argc > 0)
     27790+       clear_tv(&argv[--argc]);
     27791+
     27792+    return r;
     27793+}
     27794+
     27795 /*
     27796  * "call(func, arglist)" function
     27797  */
     27798@@ -8989,10 +9220,6 @@
     27799     typval_T   *rettv;
     27800 {
     27801     char_u     *func;
     27802-    typval_T   argv[MAX_FUNC_ARGS + 1];
     27803-    int                argc = 0;
     27804-    listitem_T *item;
     27805-    int                dummy;
     27806     dict_T     *selfdict = NULL;
     27807 
     27808     if (argvars[1].v_type != VAR_LIST)
     27809@@ -9020,28 +9247,7 @@
     27810        selfdict = argvars[2].vval.v_dict;
     27811     }
     27812 
     27813-    for (item = argvars[1].vval.v_list->lv_first; item != NULL;
     27814-                                                        item = item->li_next)
     27815-    {
     27816-       if (argc == MAX_FUNC_ARGS)
     27817-       {
     27818-           EMSG(_("E699: Too many arguments"));
     27819-           break;
     27820-       }
     27821-       /* Make a copy of each argument.  This is needed to be able to set
     27822-        * v_lock to VAR_FIXED in the copy without changing the original list.
     27823-        */
     27824-       copy_tv(&item->li_tv, &argv[argc++]);
     27825-    }
     27826-
     27827-    if (item == NULL)
     27828-       (void)call_func(func, (int)STRLEN(func), rettv, argc, argv,
     27829-                                curwin->w_cursor.lnum, curwin->w_cursor.lnum,
     27830-                                                     &dummy, TRUE, selfdict);
     27831-
     27832-    /* Free the arguments. */
     27833-    while (argc > 0)
     27834-       clear_tv(&argv[--argc]);
     27835+    (void)func_call(func, &argvars[1], selfdict, rettv);
     27836 }
     27837 
     27838 #ifdef FEAT_FLOAT
     27839@@ -9298,7 +9504,7 @@
    2681627840 
    2681727841     if (!error)
     
    2682227846 }
    2682327847 
    26824 @@ -9389,7 +9559,7 @@
     27848@@ -9389,7 +9595,7 @@
    2682527849            }
    2682627850 
     
    2683127855        }
    2683227856     }
    26833 @@ -9416,7 +9586,7 @@
     27857@@ -9416,7 +9622,7 @@
    2683427858                if (!HASHITEM_EMPTY(hi))
    2683527859                {
     
    2684027864                }
    2684127865            }
    26842 @@ -9857,17 +10027,36 @@
     27866@@ -9857,17 +10063,36 @@
    2684327867     char_u     *s;
    2684427868     int                len;
     
    2687927903     else
    2688027904     {
    26881 @@ -9875,12 +10064,25 @@
     27905@@ -9875,12 +10100,25 @@
    2688227906         * for 'wildignore' and don't put matches for 'suffixes' at the end. */
    2688327907        if (argvars[1].v_type != VAR_UNKNOWN
     
    2690727931        else
    2690827932            rettv->vval.v_string = NULL;
    26909 @@ -9896,6 +10098,8 @@
     27933@@ -9896,6 +10134,8 @@
    2691027934     typval_T   *argvars;
    2691127935     typval_T   *rettv;
     
    2691627940     {
    2691727941        list_T          *l1, *l2;
    26918 @@ -9905,7 +10109,7 @@
     27942@@ -9905,7 +10145,7 @@
    2691927943 
    2692027944        l1 = argvars[0].vval.v_list;
     
    2692527949        {
    2692627950            if (argvars[2].v_type != VAR_UNKNOWN)
    26927 @@ -9944,7 +10148,7 @@
     27951@@ -9944,7 +10184,7 @@
    2692827952 
    2692927953        d1 = argvars[0].vval.v_dict;
     
    2693427958        {
    2693527959            /* Check the third argument. */
    26936 @@ -9987,7 +10191,7 @@
     27960@@ -9976,6 +10216,19 @@
     27961                {
     27962                    --todo;
     27963                    di1 = dict_find(d1, hi2->hi_key, -1);
     27964+                   if (d1->dv_scope != 0)
     27965+                   {
     27966+                       /* Disallow replacing a builtin function in l: and g:.
     27967+                        * Check the key to be valid when adding to any
     27968+                        * scope. */
     27969+                       if (d1->dv_scope == VAR_DEF_SCOPE
     27970+                               && HI2DI(hi2)->di_tv.v_type == VAR_FUNC
     27971+                               && var_check_func_name(hi2->hi_key,
     27972+                                                                di1 == NULL))
     27973+                           break;
     27974+                       if (!valid_varname(hi2->hi_key))
     27975+                           break;
     27976+                   }
     27977                    if (di1 == NULL)
     27978                    {
     27979                        di1 = dictitem_copy(HI2DI(hi2));
     27980@@ -9987,7 +10240,7 @@
    2693727981                        EMSG2(_("E737: Key already exists: %s"), hi2->hi_key);
    2693827982                        break;
     
    2694327987                        clear_tv(&di1->di_tv);
    2694427988                        copy_tv(&HI2DI(hi2)->di_tv, &di1->di_tv);
    26945 @@ -10186,20 +10390,22 @@
     27989@@ -10186,20 +10439,22 @@
    2694627990     typval_T   save_key;
    2694727991     int                rem;
     
    2696928013     }
    2697028014     else
    26971 @@ -10236,7 +10442,8 @@
     28015@@ -10236,7 +10491,8 @@
    2697228016                {
    2697328017                    --todo;
     
    2697928023                    vimvars[VV_KEY].vv_str = vim_strsave(di->di_key);
    2698028024                    if (filter_map_one(&di->di_tv, expr, map, &rem) == FAIL
    26981 @@ -10255,7 +10462,7 @@
     28025@@ -10255,7 +10511,7 @@
    2698228026 
    2698328027            for (li = l->lv_first; li != NULL; li = nli)
     
    2698828032                nli = li->li_next;
    2698928033                vimvars[VV_KEY].vv_nr = idx;
    26990 @@ -10839,6 +11046,11 @@
     28034@@ -10839,6 +11095,11 @@
    2699128035 
    2699228036        if (*varname == '&')    /* buffer-local-option */
     
    2700028044        {
    2700128045            if (*varname == NUL)
    27002 @@ -11039,18 +11251,22 @@
     28046@@ -11039,18 +11300,22 @@
    2700328047     typval_T   *argvars UNUSED;
    2700428048     typval_T   *rettv;
     
    2703028074 }
    2703128075 
    27032 @@ -11653,22 +11869,44 @@
     28076@@ -11653,22 +11918,44 @@
    2703328077     typval_T   *argvars;
    2703428078     typval_T   *rettv;
     
    2708228126     else
    2708328127        rettv->vval.v_string = NULL;
    27084 @@ -11741,9 +11979,6 @@
     28128@@ -11741,9 +12028,6 @@
    2708528129 #ifdef __QNX__
    2708628130        "qnx",
     
    2709228136        "unix",
    2709328137 #endif
    27094 @@ -11856,7 +12091,7 @@
     28138@@ -11786,6 +12070,11 @@
     28139        "all_builtin_terms",
     28140 # endif
     28141 #endif
     28142+#if defined(FEAT_BROWSE) && (defined(USE_FILE_CHOOSER) \
     28143+       || defined(FEAT_GUI_W32) \
     28144+       || defined(FEAT_GUI_MOTIF))
     28145+       "browsefilter",
     28146+#endif
     28147 #ifdef FEAT_BYTEOFF
     28148        "byte_offset",
     28149 #endif
     28150@@ -11856,7 +12145,7 @@
    2709528151 #ifdef FEAT_SEARCHPATH
    2709628152        "file_in_path",
     
    2710128157 #endif
    2710228158 #ifdef FEAT_FIND_ID
    27103 @@ -12002,9 +12237,6 @@
     28159@@ -12002,9 +12291,6 @@
    2710428160 #ifdef FEAT_OLE
    2710528161        "ole",
     
    2711128167        "path_extra",
    2711228168 #endif
    27113 @@ -12116,6 +12348,9 @@
     28169@@ -12116,6 +12402,9 @@
    2711428170 #ifdef FEAT_TOOLBAR
    2711528171        "toolbar",
     
    2712128177        "user-commands",    /* was accidentally included in 5.4 */
    2712228178        "user_commands",
    27123 @@ -12159,6 +12394,9 @@
     28179@@ -12159,6 +12448,9 @@
    2712428180 #ifdef FEAT_XFONTSET
    2712528181        "xfontset",
     
    2713128187        "xsmp",
    2713228188 #endif
    27133 @@ -12572,7 +12810,7 @@
     28189@@ -12572,7 +12864,7 @@
    2713428190        }
    2713528191 
     
    2714028196                rettv->vval.v_number = idx;
    2714128197                break;
    27142 @@ -12712,7 +12950,7 @@
     28198@@ -12648,6 +12940,7 @@
     28199                int     xp_namelen;
     28200                long    argt;
     28201 
     28202+               /* input() with a third argument: completion */
     28203                rettv->vval.v_string = NULL;
     28204 
     28205                xp_name = get_tv_string_buf_chk(&argvars[2], buf);
     28206@@ -12666,6 +12959,11 @@
     28207            rettv->vval.v_string =
     28208                getcmdline_prompt(inputsecret_flag ? NUL : '@', p, echo_attr,
     28209                                  xp_type, xp_arg);
     28210+       if (rettv->vval.v_string == NULL
     28211+               && argvars[1].v_type != VAR_UNKNOWN
     28212+               && argvars[2].v_type != VAR_UNKNOWN)
     28213+           rettv->vval.v_string = vim_strsave(get_tv_string_buf(
     28214+                                                          &argvars[2], buf));
     28215 
     28216        vim_free(xp_arg);
     28217 
     28218@@ -12712,7 +13010,7 @@
    2714328219            IObuff[0] = NUL;
    2714428220        if (message != NULL && defstr != NULL
     
    2714928225        else
    2715028226        {
    27151 @@ -12850,7 +13088,7 @@
     28227@@ -12850,7 +13148,7 @@
    2715228228     if (argvars[0].v_type != VAR_LIST)
    2715328229        EMSG2(_(e_listarg), "insert()");
     
    2715828234        if (argvars[2].v_type != VAR_UNKNOWN)
    2715928235            before = get_tv_number_chk(&argvars[2], &error);
    27160 @@ -12877,6 +13115,17 @@
     28236@@ -12877,6 +13175,17 @@
    2716128237 }
    2716228238 
     
    2717628252  */
    2717728253     static void
    27178 @@ -13290,8 +13539,10 @@
     28254@@ -13290,8 +13599,10 @@
    2717928255     char_u     *keys_buf = NULL;
    2718028256     char_u     *rhs;
     
    2718828264     /* return empty string for failure */
    2718928265     rettv->v_type = VAR_STRING;
    27190 @@ -13305,7 +13556,11 @@
     28266@@ -13305,7 +13616,11 @@
    2719128267     {
    2719228268        which = get_tv_string_buf_chk(&argvars[1], buf);
     
    2720028276     else
    2720128277        which = (char_u *)"";
    27202 @@ -13315,19 +13570,34 @@
     28278@@ -13315,19 +13630,34 @@
    2720328279     mode = get_map_mode(&which, 0);
    2720428280 
     
    2724528321 }
    2724628322 
    27247 @@ -13367,6 +13637,23 @@
     28323@@ -13367,6 +13697,23 @@
    2724828324 }
    2724928325 #endif
     
    2726928345  * "map()" function
    2727028346  */
    27271 @@ -14006,6 +14293,18 @@
     28347@@ -14006,6 +14353,18 @@
    2727228348 }
    2727328349 
     
    2728828364  */
    2728928365     static void
    27290 @@ -14177,22 +14476,19 @@
     28366@@ -14125,6 +14484,40 @@
     28367 #endif
     28368 }
     28369 
     28370+#ifdef FEAT_PYTHON3
     28371+/*
     28372+ * "py3eval()" function
     28373+ */
     28374+    static void
     28375+f_py3eval(argvars, rettv)
     28376+    typval_T   *argvars;
     28377+    typval_T   *rettv;
     28378+{
     28379+    char_u     *str;
     28380+    char_u     buf[NUMBUFLEN];
     28381+
     28382+    str = get_tv_string_buf(&argvars[0], buf);
     28383+    do_py3eval(str, rettv);
     28384+}
     28385+#endif
     28386+
     28387+#ifdef FEAT_PYTHON
     28388+/*
     28389+ * "pyeval()" function
     28390+ */
     28391+    static void
     28392+f_pyeval(argvars, rettv)
     28393+    typval_T   *argvars;
     28394+    typval_T   *rettv;
     28395+{
     28396+    char_u     *str;
     28397+    char_u     buf[NUMBUFLEN];
     28398+
     28399+    str = get_tv_string_buf(&argvars[0], buf);
     28400+    do_pyeval(str, rettv);
     28401+}
     28402+#endif
     28403+
     28404 /*
     28405  * "range()" function
     28406  */
     28407@@ -14177,22 +14570,19 @@
    2729128408     typval_T   *rettv;
    2729228409 {
     
    2732228439     if (argvars[1].v_type != VAR_UNKNOWN)
    2732328440     {
    27324 @@ -14214,49 +14510,61 @@
     28441@@ -14214,49 +14604,61 @@
    2732528442        return;
    2732628443     }
     
    2741528532                }
    2741628533                li->li_tv.v_type = VAR_STRING;
    27417 @@ -14264,71 +14572,111 @@
     28534@@ -14264,71 +14666,111 @@
    2741828535                li->li_tv.vval.v_string = s;
    2741928536                list_append(rettv->vval.v_list, li);
     
    2751428631+                   prevsize = (long)(p - start);
    2751528632+               else
    27516 +               {
     28633                {
     28634-                   mch_memmove(s, prev, prevlen);
     28635-                   mch_memmove(s + prevlen, buf, buflen);
     28636-                   vim_free(prev);
     28637-                   prev = s;
     28638-                   prevlen += buflen;
    2751728639+                   long grow50pc = (prevsize * 3) / 2;
    2751828640+                   long growmin  = (long)((p - start) * 2 + prevlen);
     
    2752228644+                                               : vim_realloc(prev, prevsize);
    2752328645+               if (newprev == NULL)
    27524                 {
    27525 -                   mch_memmove(s, prev, prevlen);
    27526 -                   mch_memmove(s + prevlen, buf, buflen);
    27527 -                   vim_free(prev);
    27528 -                   prev = s;
    27529 -                   prevlen += buflen;
     28646+               {
    2753028647+                   do_outofmem_msg((long_u)prevsize);
    2753128648+                   failed = TRUE;
     
    2756928686     fclose(fd);
    2757028687 }
    27571 @@ -14691,13 +15039,14 @@
     28688@@ -14691,13 +15133,14 @@
    2757228689     char_u     *key;
    2757328690     dict_T     *d;
     
    2758528702            key = get_tv_string_chk(&argvars[1]);
    2758628703            if (key != NULL)
    27587 @@ -14717,7 +15066,7 @@
     28704@@ -14717,7 +15160,7 @@
    2758828705     else if (argvars[0].v_type != VAR_LIST)
    2758928706        EMSG2(_(e_listdictarg), "remove()");
     
    2759428711        int         error = FALSE;
    2759528712 
    27596 @@ -14847,6 +15196,9 @@
     28713@@ -14847,6 +15290,9 @@
    2759728714     typval_T   *rettv;
    2759828715 {
     
    2760428721     p = get_tv_string(&argvars[0]);
    2760528722 #ifdef FEAT_SHORTCUT
    27606 @@ -14862,7 +15214,6 @@
     28723@@ -14862,7 +15308,6 @@
    2760728724 #else
    2760828725 # ifdef HAVE_READLINK
     
    2761228729        int     len;
    2761328730        char_u  *remain = NULL;
    27614 @@ -14879,7 +15230,10 @@
     28731@@ -14879,7 +15324,10 @@
    2761528732 
    2761628733        len = STRLEN(p);
     
    2762328740        q = getnextcomp(p);
    2762428741        if (*q != NUL)
    27625 @@ -14890,6 +15244,10 @@
     28742@@ -14890,6 +15338,10 @@
    2762628743            q[-1] = NUL;
    2762728744        }
     
    2763428751        {
    2763528752            for (;;)
    27636 @@ -15033,6 +15391,7 @@
     28753@@ -15033,6 +15485,7 @@
    2763728754 
    2763828755 #ifdef HAVE_READLINK
     
    2764228759     rettv->v_type = VAR_STRING;
    2764328760 }
    27644 @@ -15051,7 +15410,7 @@
     28761@@ -15051,7 +15504,7 @@
    2764528762     if (argvars[0].v_type != VAR_LIST)
    2764628763        EMSG2(_(e_listarg), "reverse()");
     
    2765128768        li = l->lv_last;
    2765228769        l->lv_first = l->lv_last = NULL;
    27653 @@ -16256,6 +16615,7 @@
     28770@@ -16056,7 +16509,7 @@
     28771     if (tp != NULL && varname != NULL && varp != NULL)
     28772     {
     28773        save_curtab = curtab;
     28774-       goto_tabpage_tp(tp);
     28775+       goto_tabpage_tp(tp, TRUE);
     28776 
     28777        tabvarname = alloc((unsigned)STRLEN(varname) + 3);
     28778        if (tabvarname != NULL)
     28779@@ -16069,7 +16522,7 @@
     28780 
     28781        /* Restore current tabpage */
     28782        if (valid_tabpage(save_curtab))
     28783-           goto_tabpage_tp(save_curtab);
     28784+           goto_tabpage_tp(save_curtab, TRUE);
     28785     }
     28786 }
     28787 
     28788@@ -16133,7 +16586,7 @@
     28789        /* set curwin to be our win, temporarily */
     28790        save_curwin = curwin;
     28791        save_curtab = curtab;
     28792-       goto_tabpage_tp(tp);
     28793+       goto_tabpage_tp(tp, TRUE);
     28794        if (!win_valid(win))
     28795            return;
     28796        curwin = win;
     28797@@ -16168,7 +16621,7 @@
     28798        /* Restore current tabpage and window, if still valid (autocomands can
     28799         * make them invalid). */
     28800        if (valid_tabpage(save_curtab))
     28801-           goto_tabpage_tp(save_curtab);
     28802+           goto_tabpage_tp(save_curtab, TRUE);
     28803        if (win_valid(save_curwin))
     28804        {
     28805            curwin = save_curwin;
     28806@@ -16256,6 +16709,7 @@
    2765428807 
    2765528808 static int     item_compare_ic;
     
    2765928812 #define ITEM_COMPARE_FAIL 999
    2766028813 
    27661 @@ -16315,7 +16675,8 @@
     28814@@ -16315,7 +16769,8 @@
    2766228815 
    2766328816     rettv.v_type = VAR_UNKNOWN;                /* clear_tv() uses this */
     
    2766928822     clear_tv(&argv[1]);
    2767028823 
    27671 @@ -16348,7 +16709,8 @@
     28824@@ -16348,7 +16803,8 @@
    2767228825     else
    2767328826     {
     
    2767928832        rettv->vval.v_list = l;
    2768028833        rettv->v_type = VAR_LIST;
    27681 @@ -16360,8 +16722,10 @@
     28834@@ -16360,8 +16816,10 @@
    2768228835 
    2768328836        item_compare_ic = FALSE;
     
    2769028843                item_compare_func = argvars[1].vval.v_string;
    2769128844            else
    27692 @@ -16376,6 +16740,17 @@
     28845@@ -16376,6 +16834,17 @@
    2769328846                else
    2769428847                    item_compare_func = get_tv_string(&argvars[1]);
     
    2770828861 
    2770928862        /* Make an array with each entry pointing to an item in the List. */
    27710 @@ -17512,18 +17887,22 @@
     28863@@ -17512,18 +17981,22 @@
    2771128864     typval_T   *argvars UNUSED;
    2771228865     typval_T   *rettv;
     
    2773228885 
    2773328886 /*
    27734 @@ -17711,7 +18090,7 @@
     28887@@ -17711,7 +18184,7 @@
    2773528888     typval_T   *argvars;
    2773628889     typval_T   *rettv;
     
    2774128894     char_u     *tostr;
    2774228895     char_u     *p;
    27743 @@ -17728,7 +18107,7 @@
     28896@@ -17728,7 +18201,7 @@
    2774428897     char_u     buf2[NUMBUFLEN];
    2774528898     garray_T   ga;
     
    2775028903     tostr = get_tv_string_buf_chk(&argvars[2], buf2);
    2775128904 
    27752 @@ -17754,19 +18133,19 @@
     28905@@ -17754,19 +18227,19 @@
    2775328906        }
    2775428907 
     
    2777428927                    for (p = tostr; *p != NUL; p += tolen)
    2777528928                    {
    27776 @@ -17785,11 +18164,11 @@
     28929@@ -17785,11 +18258,11 @@
    2777728930                ++idx;
    2777828931            }
     
    2778828941                for (p = tostr; *p != NUL; p += tolen)
    2778928942                {
    27790 @@ -17804,18 +18183,18 @@
     28943@@ -17804,18 +18277,18 @@
    2779128944            mch_memmove((char *)ga.ga_data + ga.ga_len, cpstr, (size_t)cplen);
    2779228945            ga.ga_len += cplen;
     
    2781128964     }
    2781228965 
    27813 @@ -17882,11 +18261,21 @@
     28966@@ -17882,11 +18355,21 @@
    2781428967     rettv->v_type = VAR_STRING;
    2781528968 #ifdef FEAT_PERSISTENT_UNDO
     
    2781728970-       char_u *ffname = FullName_save(get_tv_string(&argvars[0]), FALSE);
    2781828971+       char_u *fname = get_tv_string(&argvars[0]);
    27819 +
     28972 
     28973-       if (ffname != NULL)
     28974-           rettv->vval.v_string = u_get_undo_file_name(ffname, FALSE);
     28975-       vim_free(ffname);
    2782028976+       if (*fname == NUL)
    2782128977+       {
     
    2782628982+       {
    2782728983+           char_u *ffname = FullName_save(fname, FALSE);
    27828  
    27829 -       if (ffname != NULL)
    27830 -           rettv->vval.v_string = u_get_undo_file_name(ffname, FALSE);
    27831 -       vim_free(ffname);
     28984+
    2783228985+           if (ffname != NULL)
    2783328986+               rettv->vval.v_string = u_get_undo_file_name(ffname, FALSE);
     
    2783728990 #else
    2783828991     rettv->vval.v_string = NULL;
    27839 @@ -18258,6 +18647,19 @@
     28992@@ -18118,9 +18601,11 @@
     28993        curwin->w_skipcol = get_dict_number(dict, (char_u *)"skipcol");
     28994 
     28995        check_cursor();
     28996-       changed_cline_bef_curs();
     28997-       invalidate_botline();
     28998-       redraw_later(VALID);
     28999+       win_new_height(curwin, curwin->w_height);
     29000+# ifdef FEAT_VERTSPLIT
     29001+       win_new_width(curwin, W_WIDTH(curwin));
     29002+# endif
     29003+       changed_window_setting();
     29004 
     29005        if (curwin->w_topline == 0)
     29006            curwin->w_topline = 1;
     29007@@ -18258,6 +18743,19 @@
    2784029008 }
    2784129009 
     
    2785729025  * Returns NULL when there is an error.
    2785829026  */
    27859 @@ -18768,11 +19170,7 @@
     29027@@ -18768,11 +19266,7 @@
    2786029028 set_vim_var_char(c)
    2786129029     int c;
     
    2787029038 #ifdef FEAT_MBYTE
    2787129039     if (has_mbyte)
    27872 @@ -19453,9 +19851,14 @@
     29040@@ -19453,9 +19947,14 @@
    2787329041         * worked find the variable again.  Don't auto-load a script if it was
    2787429042         * loaded already, otherwise it would be loaded every time when
     
    2788729055            return NULL;
    2788829056     }
    27889 @@ -19730,7 +20133,6 @@
     29057@@ -19564,7 +20063,7 @@
     29058        {
     29059            sv = SCRIPT_SV(ga_scripts.ga_len + 1) =
     29060                (scriptvar_T *)alloc_clear(sizeof(scriptvar_T));
     29061-           init_var_dict(&sv->sv_dict, &sv->sv_var);
     29062+           init_var_dict(&sv->sv_dict, &sv->sv_var, VAR_SCOPE);
     29063            ++ga_scripts.ga_len;
     29064        }
     29065     }
     29066@@ -19575,11 +20074,14 @@
     29067  * point to it.
     29068  */
     29069     void
     29070-init_var_dict(dict, dict_var)
     29071+init_var_dict(dict, dict_var, scope)
     29072     dict_T     *dict;
     29073     dictitem_T *dict_var;
     29074+    int                scope;
     29075 {
     29076     hash_init(&dict->dv_hashtab);
     29077+    dict->dv_lock = 0;
     29078+    dict->dv_scope = scope;
     29079     dict->dv_refcount = DO_NOT_FREE_CNT;
     29080     dict->dv_copyID = 0;
     29081     dict_var->di_tv.vval.v_dict = dict;
     29082@@ -19730,7 +20232,6 @@
    2789029083     dictitem_T *v;
    2789129084     char_u     *varname;
     
    2789529088     ht = find_var_ht(name, &varname);
    2789629089     if (ht == NULL || *varname == NUL)
    27897 @@ -19740,25 +20142,8 @@
     29090@@ -19740,25 +20241,8 @@
    2789829091     }
    2789929092     v = find_var_in_ht(ht, varname, TRUE);
     
    2792329116     if (v != NULL)
    2792429117     {
    27925 @@ -19824,13 +20209,8 @@
     29118@@ -19824,13 +20308,8 @@
    2792629119        }
    2792729120 
     
    2793929132        v = (dictitem_T *)alloc((unsigned)(sizeof(dictitem_T)
    2794029133                                                          + STRLEN(varname)));
    27941 @@ -19895,6 +20275,55 @@
     29134@@ -19895,6 +20374,55 @@
    2794229135 }
    2794329136 
     
    2799529188  * Also give an error message, using "name".
    2799629189  */
    27997 @@ -20099,7 +20528,13 @@
     29190@@ -20099,7 +20627,13 @@
    2799829191                /* Call msg_start() after eval1(), evaluating the expression
    2799929192                 * may cause a message to appear. */
     
    2800929202            else if (eap->cmdidx == CMD_echo)
    2801029203                msg_puts_attr((char_u *)" ", echo_attr);
    28011 @@ -20302,6 +20737,7 @@
     29204@@ -20302,6 +20836,7 @@
    2801229205     exarg_T    *eap;
    2801329206 {
     
    2801729210     int                c;
    2801829211     int                saved_did_emsg;
    28019 @@ -20548,6 +20984,15 @@
     29212@@ -20548,6 +21083,15 @@
    2802029213            arg = vim_strsave(arg);
    2802129214            if (arg == NULL)
     
    2803329226            *p = c;
    2803429227            newargs.ga_len++;
    28035 @@ -20623,7 +21068,8 @@
     29228@@ -20623,7 +21167,8 @@
    2803629229     nesting = 0;
    2803729230     for (;;)
     
    2804329236        sourcing_lnum_off = sourcing_lnum;
    2804429237 
    28045 @@ -20726,6 +21172,8 @@
     29238@@ -20726,6 +21271,8 @@
    2804629239                                    && (!ASCII_ISALPHA(p[2]) || p[2] == 'r'))
    2804729240                        || (p[0] == 't' && p[1] == 'c'
     
    2805229245                                    && (!ASCII_ISALPHA(p[3]) || p[3] == 'y'))
    2805329246                        || (p[0] == 'm' && p[1] == 'z'
    28054 @@ -21562,6 +22010,9 @@
     29247@@ -21562,6 +22109,9 @@
    2805529248            ++hi;
    2805629249        fp = HI2UF(hi);
     
    2806229255            return fp->uf_name; /* prevents overflow */
    2806329256 
    28064 @@ -21921,8 +22372,12 @@
     29257@@ -21689,7 +22239,7 @@
     29258  * Unreference a Function: decrement the reference count and free it when it
     29259  * becomes zero.  Only for numbered functions.
     29260  */
     29261-    static void
     29262+    void
     29263 func_unref(name)
     29264     char_u     *name;
     29265 {
     29266@@ -21713,7 +22263,7 @@
     29267 /*
     29268  * Count a reference to a Function.
     29269  */
     29270-    static void
     29271+    void
     29272 func_ref(name)
     29273     char_u     *name;
     29274 {
     29275@@ -21792,7 +22342,7 @@
     29276     /*
     29277      * Init l: variables.
     29278      */
     29279-    init_var_dict(&fc->l_vars, &fc->l_vars_var);
     29280+    init_var_dict(&fc->l_vars, &fc->l_vars_var, VAR_DEF_SCOPE);
     29281     if (selfdict != NULL)
     29282     {
     29283        /* Set l:self to "selfdict".  Use "name" to avoid a warning from
     29284@@ -21813,7 +22363,7 @@
     29285      * Set a:0 to "argcount".
     29286      * Set a:000 to a list with room for the "..." arguments.
     29287      */
     29288-    init_var_dict(&fc->l_avars, &fc->l_avars_var);
     29289+    init_var_dict(&fc->l_avars, &fc->l_avars_var, VAR_SCOPE);
     29290     add_nr_var(&fc->l_avars, &fc->fixvar[fixvar_idx++].var, "0",
     29291                                (varnumber_T)(argcount - fp->uf_args.ga_len));
     29292     /* Use "name" to avoid a warning from some compiler that checks the
     29293@@ -21921,8 +22471,12 @@
    2806529294                        s = tv2string(&argvars[i], &tofree, numbuf2, 0);
    2806629295                        if (s != NULL)
     
    2807729306                        }
    2807829307                    }
    28079 @@ -22010,8 +22465,12 @@
     29308@@ -22010,8 +22564,12 @@
    2808029309            s = tv2string(fc->rettv, &tofree, numbuf2, 0);
    2808129310            if (s != NULL)
     
    2809229321            }
    2809329322        }
    28094 @@ -22519,18 +22978,21 @@
     29323@@ -22519,18 +23077,21 @@
    2809529324        if (tab != NULL)
    2809629325        {
     
    2811929348                                       (int)(tab - virp->vir_line + 1), TRUE);
    2812029349 #ifdef FEAT_FLOAT
    28121 @@ -22539,9 +23001,28 @@
     29350@@ -22539,9 +23100,28 @@
    2812229351 #endif
    2812329352                else
     
    2814929378        }
    2815029379     }
    28151 @@ -22583,8 +23064,10 @@
     29380@@ -22583,8 +23163,10 @@
    2815229381                    case VAR_STRING: s = "STR"; break;
    2815329382                    case VAR_NUMBER: s = "NUM"; break;
     
    2816129390                }
    2816229391                fprintf(fp, "!%s\t%s\t", this_var->di_key, s);
    28163 @@ -22656,7 +23139,7 @@
     29392@@ -22656,7 +23238,7 @@
    2816429393                    f = -f;
    2816529394                    sign = '-';
     
    2817029399                        || put_eol(fd) == FAIL)
    2817129400                    return FAIL;
    28172 @@ -23019,6 +23502,7 @@
     29401@@ -23019,6 +23601,7 @@
    2817329402     int                c;
    2817429403     int                has_fullname = 0;
     
    2817829407 #endif
    2817929408 
    28180 @@ -23193,24 +23677,25 @@
     29409@@ -23072,6 +23655,27 @@
     29410                return -1;
     29411        }
     29412 
     29413+#ifdef WIN3264
     29414+# if _WIN32_WINNT >= 0x0500
     29415+       if (vim_strchr(*fnamep, '~') != NULL)
     29416+       {
     29417+           /* Expand 8.3 filename to full path.  Needed to make sure the same
     29418+            * file does not have two different names.
     29419+            * Note: problem does not occur if _WIN32_WINNT < 0x0500. */
     29420+           p = alloc(_MAX_PATH + 1);
     29421+           if (p != NULL)
     29422+           {
     29423+               if (GetLongPathName(*fnamep, p, MAXPATHL))
     29424+               {
     29425+                   vim_free(*bufp);
     29426+                   *bufp = *fnamep = p;
     29427+               }
     29428+               else
     29429+                   vim_free(p);
     29430+           }
     29431+       }
     29432+# endif
     29433+#endif
     29434        /* Append a path separator to a directory. */
     29435        if (mch_isdir(*fnamep))
     29436        {
     29437@@ -23193,24 +23797,25 @@
    2818129438     }
    2818229439 
     
    2821129468        {
    2821229469            if (shortpath_for_partial(fnamep, bufp, fnamelen) == FAIL)
    28213 @@ -23218,18 +23703,16 @@
     29470@@ -23218,18 +23823,16 @@
    2821429471        }
    2821529472        else
     
    2823429491                    return -1;
    2823529492diff -Naur vim73.orig/src/ex_cmds.c vim73/src/ex_cmds.c
    28236 --- vim73.orig/src/ex_cmds.c    2012-06-03 23:09:52.940007057 +0000
    28237 +++ vim73/src/ex_cmds.c 2012-06-03 23:09:55.848084445 +0000
     29493--- vim73.orig/src/ex_cmds.c    2010-08-13 09:14:35.000000000 +0000
     29494+++ vim73/src/ex_cmds.c 2012-07-20 20:31:18.014311616 +0000
    2823829495@@ -11,10 +11,6 @@
    2823929496  * ex_cmds.c: some functions for command line commands
     
    2870129958-               p = p_rtp;
    2870229959-               while (*p != NUL)
    28703 +           if (strstr((char *)line, "*local-additions*") == NULL)
    28704 +               continue;
    28705 +
    28706 +           /* Go through all directories in 'runtimepath', skipping
    28707 +            * $VIMRUNTIME. */
    28708 +           p = p_rtp;
    28709 +           while (*p != NUL)
    28710 +           {
    28711 +               copy_option_part(&p, NameBuff, MAXPATHL, ",");
    28712 +               mustfree = FALSE;
    28713 +               rt = vim_getenv((char_u *)"VIMRUNTIME", &mustfree);
    28714 +               if (fullpathcmp(rt, NameBuff, FALSE) != FPC_SAME)
    28715                 {
     29960-               {
    2871629961-                   copy_option_part(&p, NameBuff, MAXPATHL, ",");
    2871729962-                   mustfree = FALSE;
     
    2872429969-                       char_u  *s;
    2872529970-                       int     fi;
     29971+           if (strstr((char *)line, "*local-additions*") == NULL)
     29972+               continue;
     29973+
     29974+           /* Go through all directories in 'runtimepath', skipping
     29975+            * $VIMRUNTIME. */
     29976+           p = p_rtp;
     29977+           while (*p != NUL)
     29978+           {
     29979+               copy_option_part(&p, NameBuff, MAXPATHL, ",");
     29980+               mustfree = FALSE;
     29981+               rt = vim_getenv((char_u *)"VIMRUNTIME", &mustfree);
     29982+               if (fullpathcmp(rt, NameBuff, FALSE) != FPC_SAME)
     29983+               {
    2872629984+                   int         fcount;
    2872729985+                   char_u      **fnames;
     
    2908530343 
    2908630344                /* set values for a defined sign. */
    29087 @@ -6886,6 +7004,8 @@
     30345@@ -6879,6 +6997,16 @@
     30346                lnum = atoi((char *)arg);
     30347                arg = skiptowhite(arg);
     30348            }
     30349+           else if (STRNCMP(arg, "*", 1) == 0 && idx == SIGNCMD_UNPLACE)
     30350+           {
     30351+               if (id != -1)
     30352+               {
     30353+                   EMSG(_(e_invarg));
     30354+                   return;
     30355+               }
     30356+               id = -2;
     30357+               arg = skiptowhite(arg + 1);
     30358+           }
     30359            else if (STRNCMP(arg, "name=", 5) == 0)
     30360            {
     30361                arg += 5;
     30362@@ -6886,6 +7014,8 @@
    2908830363                arg = skiptowhite(arg);
    2908930364                if (*arg != NUL)
     
    2909430369            else if (STRNCMP(arg, "file=", 5) == 0)
    2909530370            {
     30371@@ -6913,7 +7043,7 @@
     30372        {
     30373            EMSG2(_("E158: Invalid buffer name: %s"), arg);
     30374        }
     30375-       else if (id <= 0)
     30376+       else if (id <= 0 && !(idx == SIGNCMD_UNPLACE && id == -2))
     30377        {
     30378            if (lnum >= 0 || sign_name != NULL)
     30379                EMSG(_(e_invarg));
     30380@@ -6954,11 +7084,17 @@
     30381        }
     30382        else if (idx == SIGNCMD_UNPLACE)
     30383        {
     30384-           /* ":sign unplace {id} file={fname}" */
     30385            if (lnum >= 0 || sign_name != NULL)
     30386                EMSG(_(e_invarg));
     30387+           else if (id == -2)
     30388+           {
     30389+               /* ":sign unplace * file={fname}" */
     30390+               redraw_buf_later(buf, NOT_VALID);
     30391+               buf_delete_signs(buf);
     30392+           }
     30393            else
     30394            {
     30395+               /* ":sign unplace {id} file={fname}" */
     30396                lnum = buf_delsign(buf, id);
     30397                update_debug_sign(buf, lnum);
     30398            }
    2909630399diff -Naur vim73.orig/src/ex_cmds.h vim73/src/ex_cmds.h
    29097 --- vim73.orig/src/ex_cmds.h    2012-06-03 23:09:52.948007269 +0000
    29098 +++ vim73/src/ex_cmds.h 2012-06-03 23:09:55.880085297 +0000
     30400--- vim73.orig/src/ex_cmds.h    2010-07-21 13:48:02.000000000 +0000
     30401+++ vim73/src/ex_cmds.h 2012-07-20 20:31:17.920978216 +0000
    2909930402@@ -102,7 +102,7 @@
    2910030403 EX(CMD_aboveleft,      "aboveleft",    ex_wrongmodifier,
     
    2913330436                        NEEDARG|EXTRA|NOTRLCOM),
    2913430437 EX(CMD_saveas,         "saveas",       ex_write,
     30438@@ -944,7 +944,7 @@
     30439 EX(CMD_tabfirst,       "tabfirst",     ex_tabnext,
     30440                        TRLBAR),
     30441 EX(CMD_tabmove,                "tabmove",      ex_tabmove,
     30442-                       RANGE|NOTADR|ZEROR|COUNT|TRLBAR|ZEROR),
     30443+                       RANGE|NOTADR|ZEROR|EXTRA|NOSPC|TRLBAR),
     30444 EX(CMD_tablast,                "tablast",      ex_tabnext,
     30445                        TRLBAR),
     30446 EX(CMD_tabnext,                "tabnext",      ex_tabnext,
    2913530447@@ -1078,7 +1078,7 @@
    2913630448 EX(CMD_wsverb,         "wsverb",       ex_wsverb,
     
    2914330455 EX(CMD_xit,            "xit",          ex_exit,
    2914430456diff -Naur vim73.orig/src/ex_cmds2.c vim73/src/ex_cmds2.c
    29145 --- vim73.orig/src/ex_cmds2.c   2012-06-03 23:09:52.948007269 +0000
    29146 +++ vim73/src/ex_cmds2.c        2012-06-03 23:09:55.780082635 +0000
     30457--- vim73.orig/src/ex_cmds2.c   2010-07-27 19:43:38.000000000 +0000
     30458+++ vim73/src/ex_cmds2.c        2012-07-20 20:31:17.370977822 +0000
    2914730459@@ -11,10 +11,6 @@
    2914830460  * ex_cmds2.c: some more functions for command line commands
     
    2917530487        if (p == NULL)
    2917630488            return FAIL;
    29177 @@ -694,10 +682,12 @@
     30489@@ -608,10 +596,15 @@
     30490     garray_T   *gap;
     30491 
     30492     gap = &dbg_breakp;
     30493-#ifdef FEAT_PROFILE
     30494     if (eap->cmdidx == CMD_profdel)
     30495+    {
     30496+#ifdef FEAT_PROFILE
     30497        gap = &prof_ga;
     30498+#else
     30499+       ex_ni(eap);
     30500+       return;
     30501 #endif
     30502+    }
     30503 
     30504     if (vim_isdigit(*eap->arg))
     30505     {
     30506@@ -694,10 +687,12 @@
    2917830507        for (i = 0; i < dbg_breakp.ga_len; ++i)
    2917930508        {
     
    2918930518        }
    2919030519 }
    29191 @@ -1119,7 +1109,7 @@
     30520@@ -1119,7 +1114,7 @@
    2919230521 static enum
    2919330522 {
     
    2919830527 
    2919930528 static char *pexpand_cmds[] = {
    29200 @@ -1488,7 +1478,7 @@
     30529@@ -1488,7 +1483,7 @@
    2920130530 #endif
    2920230531 
     
    2920730536  */
    2920830537     void
    29209 @@ -1496,9 +1486,10 @@
     30538@@ -1496,9 +1491,10 @@
    2921030539     buf_T      *buf;
    2921130540     int                checkall;       /* may abandon all changed buffers */
     
    2921930548     dialog_msg(buff, _("Save changes to \"%s\"?"),
    2922030549                        (buf->b_fname != NULL) ?
    29221 @@ -1508,13 +1499,19 @@
     30550@@ -1508,13 +1504,19 @@
    2922230551     else
    2922330552        ret = vim_dialog_yesnocancel(VIM_QUESTION, NULL, buff, 1);
     
    2924030569     }
    2924130570     else if (ret == VIM_NO)
    29242 @@ -1542,7 +1539,9 @@
     30571@@ -1542,7 +1544,9 @@
    2924330572                /* May get file name, when there is none */
    2924430573                browse_save_fname(buf2);
     
    2925130580 #ifdef FEAT_AUTOCMD
    2925230581                /* an autocommand may have deleted the buffer */
    29253 @@ -1579,6 +1578,26 @@
     30582@@ -1579,6 +1583,26 @@
    2925430583                || forceit);
    2925530584 }
     
    2927830607  * Return TRUE if any buffer was changed and cannot be abandoned.
    2927930608  * That changed buffer becomes the current buffer.
    29280 @@ -1587,32 +1606,64 @@
     30609@@ -1587,32 +1611,64 @@
    2928130610 check_changed_any(hidden)
    2928230611     int                hidden;         /* Only check hidden buffers */
     
    2935830687 #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
    2935930688     /*
    29360 @@ -1645,24 +1696,29 @@
     30689@@ -1645,24 +1701,29 @@
    2936130690 #ifdef FEAT_WINDOWS
    2936230691     /* Try to find a window that contains the buffer. */
     
    2939330722 
    2939430723 /*
    29395 @@ -1949,7 +2005,7 @@
     30724@@ -1789,22 +1850,28 @@
     30725 #if defined(FEAT_QUICKFIX) || defined(FEAT_SYN_HL) || defined(PROTO)
     30726 /*
     30727  * Parse a list of arguments (file names), expand them and return in
     30728- * "fnames[fcountp]".
     30729+ * "fnames[fcountp]".  When "wig" is TRUE, removes files matching 'wildignore'.
     30730  * Return FAIL or OK.
     30731  */
     30732     int
     30733-get_arglist_exp(str, fcountp, fnamesp)
     30734+get_arglist_exp(str, fcountp, fnamesp, wig)
     30735     char_u     *str;
     30736     int                *fcountp;
     30737     char_u     ***fnamesp;
     30738+    int                wig;
     30739 {
     30740     garray_T   ga;
     30741     int                i;
     30742 
     30743     if (get_arglist(&ga, str) == FAIL)
     30744        return FAIL;
     30745-    i = gen_expand_wildcards(ga.ga_len, (char_u **)ga.ga_data,
     30746-                                      fcountp, fnamesp, EW_FILE|EW_NOTFOUND);
     30747+    if (wig == TRUE)
     30748+       i = expand_wildcards(ga.ga_len, (char_u **)ga.ga_data,
     30749+                                       fcountp, fnamesp, EW_FILE|EW_NOTFOUND);
     30750+    else
     30751+       i = gen_expand_wildcards(ga.ga_len, (char_u **)ga.ga_data,
     30752+                                       fcountp, fnamesp, EW_FILE|EW_NOTFOUND);
     30753+
     30754     ga_clear(&ga);
     30755     return i;
     30756 }
     30757@@ -1949,7 +2016,7 @@
    2939630758 }
    2939730759 
     
    2940230764  */
    2940330765     static int
    29404 @@ -2165,9 +2221,7 @@
     30766@@ -2165,9 +2232,7 @@
    2940530767        {
    2940630768            if (win_split(0, 0) == FAIL)
     
    2941330775        else
    2941430776 #endif
    29415 @@ -2946,11 +3000,7 @@
     30777@@ -2422,7 +2487,7 @@
     30778                /* go to window "tp" */
     30779                if (!valid_tabpage(tp))
     30780                    break;
     30781-               goto_tabpage_tp(tp);
     30782+               goto_tabpage_tp(tp, TRUE);
     30783                tp = tp->tp_next;
     30784            }
     30785 #endif
     30786@@ -2946,11 +3011,7 @@
    2941630787     proftime_T             wait_start;
    2941730788 #endif
     
    2942530796        return retval;
    2942630797     fname_exp = fix_fname(p);
    29427 @@ -3286,7 +3336,11 @@
     30798@@ -3286,7 +3347,11 @@
    2942830799 
    2942930800     for (i = 1; i <= script_items.ga_len && !got_int; ++i)
     
    2943830809 
    2943930810 # if defined(BACKSLASH_IN_FILENAME) || defined(PROTO)
    29440 @@ -3412,7 +3466,7 @@
     30811@@ -3412,7 +3477,7 @@
    2944130812 {
    2944230813     struct source_cookie *sp = (struct source_cookie *)cookie;
     
    2944730818 #ifdef FEAT_EVAL
    2944830819     /* If breakpoints have been added/deleted need to check for it. */
    29449 @@ -3451,28 +3505,49 @@
     30820@@ -3451,28 +3516,49 @@
    2945030821     {
    2945130822        /* compensate for the one line read-ahead */
     
    2951230883        s = string_convert(&sp->conv, line, NULL);
    2951330884        if (s != NULL)
    29514 @@ -4166,11 +4241,90 @@
     30885@@ -4166,11 +4252,90 @@
    2951530886            /* Set v:lang, v:lc_time and v:ctype to the final result. */
    2951630887            set_lang_var();
     
    2960330974  * Function given to ExpandGeneric() to obtain the possible arguments of the
    2960430975  * ":language" command.
    29605 @@ -4186,7 +4340,25 @@
     30976@@ -4186,7 +4351,25 @@
    2960630977        return (char_u *)"ctype";
    2960730978     if (idx == 2)
     
    2963131002 
    2963231003diff -Naur vim73.orig/src/ex_docmd.c vim73/src/ex_docmd.c
    29633 --- vim73.orig/src/ex_docmd.c   2012-06-03 23:09:52.924006631 +0000
    29634 +++ vim73/src/ex_docmd.c        2012-06-03 23:09:55.824083805 +0000
     31004--- vim73.orig/src/ex_docmd.c   2010-08-07 14:59:47.000000000 +0000
     31005+++ vim73/src/ex_docmd.c        2012-07-20 20:31:18.217645094 +0000
    2963531006@@ -61,6 +61,7 @@
    2963631007 static char_u  *do_one_cmd __ARGS((char_u **, int, char_u *(*fgetline)(int, void *, int), void *cookie));
     
    3026331634        uc_add_command(name, end - name, p, argt, def, flags, compl, compl_arg,
    3026431635                                                                eap->forceit);
    30265 @@ -5888,7 +5983,14 @@
     31636@@ -5750,8 +5845,14 @@
     31637        }
     31638        else
     31639        {
     31640+#ifdef FEAT_MBYTE
     31641+           int charlen = (*mb_ptr2len)(p);
     31642+           len += charlen;
     31643+           p += charlen;
     31644+#else
     31645            ++len;
     31646            ++p;
     31647+#endif
     31648        }
     31649     }
     31650 
     31651@@ -5794,7 +5895,7 @@
     31652        }
     31653        else
     31654        {
     31655-           *q++ = *p++;
     31656+           MB_COPY_CHAR(p, q);
     31657        }
     31658     }
     31659     *q++ = '"';
     31660@@ -5888,7 +5989,14 @@
    3026631661            result = STRLEN(eap->arg) + 2;
    3026731662            for (p = eap->arg; *p; ++p)
     
    3027931674            }
    3028031675 
    30281 @@ -5897,7 +5999,14 @@
     31676@@ -5897,7 +6005,14 @@
    3028231677                *buf++ = '"';
    3028331678                for (p = eap->arg; *p; ++p)
     
    3029531690                    *buf++ = *p;
    3029631691                }
    30297 @@ -6039,15 +6148,17 @@
     31692@@ -6039,15 +6154,17 @@
    3029831693                end = vim_strchr(start + 1, '>');
    3029931694            if (buf != NULL)
     
    3031631711                     * do_cmdline() doesn't handle that, so convert it back.
    3031731712                     * Also change K_SPECIAL KS_EXTRA KE_CSI into CSI. */
    30318 @@ -6439,7 +6550,7 @@
     31713@@ -6347,7 +6464,10 @@
     31714        return;
     31715     }
     31716 #ifdef FEAT_AUTOCMD
     31717-    if (curbuf_locked())
     31718+    apply_autocmds(EVENT_QUITPRE, NULL, NULL, FALSE, curbuf);
     31719+    /* Refuse to quick when locked or when the buffer in the last window is
     31720+     * being closed (can only happen in autocommands). */
     31721+    if (curbuf_locked() || (curbuf->b_nwindows == 1 && curbuf->b_closing))
     31722        return;
     31723 #endif
     31724 
     31725@@ -6439,7 +6559,7 @@
    3031931726 {
    3032031727 # ifdef FEAT_CMDWIN
     
    3032531732 # endif
    3032631733        if (!text_locked()
    30327 @@ -6897,9 +7008,7 @@
     31734@@ -6897,9 +7017,7 @@
    3032831735 # ifdef FEAT_WINDOWS
    3032931736        if (win_split(0, 0) == FAIL)
     
    3033631743        /* When splitting the window, create a new alist.  Otherwise the
    3033731744         * existing one is overwritten. */
    30338 @@ -7026,7 +7135,7 @@
     31745@@ -7026,7 +7144,7 @@
    3033931746        old_arg_count = GARGCOUNT;
    3034031747        if (expand_wildcards(old_arg_count, old_arg_files,
     
    3034531752        {
    3034631753            alist_set(&global_alist, new_arg_file_count, new_arg_files,
    30347 @@ -7299,7 +7408,9 @@
     31754@@ -7299,7 +7417,9 @@
    3034831755                || cmdmod.browse
    3034931756 #  endif
     
    3035631763            do_check_scrollbind(FALSE);
    3035731764 # endif
    30358 @@ -8122,6 +8233,12 @@
     31765@@ -7364,7 +7484,42 @@
     31766 ex_tabmove(eap)
     31767     exarg_T    *eap;
     31768 {
     31769-    tabpage_move(eap->addr_count == 0 ? 9999 : (int)eap->line2);
     31770+    int tab_number = 9999;
     31771+
     31772+    if (eap->arg && *eap->arg != NUL)
     31773+    {
     31774+       char_u *p = eap->arg;
     31775+       int    relative = 0; /* argument +N/-N means: move N places to the
     31776+                             * right/left relative to the current position. */
     31777+
     31778+       if (*eap->arg == '-')
     31779+       {
     31780+           relative = -1;
     31781+           p = eap->arg + 1;
     31782+       }
     31783+       else if (*eap->arg == '+')
     31784+       {
     31785+           relative = 1;
     31786+           p = eap->arg + 1;
     31787+       }
     31788+       else
     31789+           p = eap->arg;
     31790+
     31791+       if (p == skipdigits(p))
     31792+       {
     31793+           /* No numbers as argument. */
     31794+           eap->errmsg = e_invarg;
     31795+           return;
     31796+       }
     31797+
     31798+       tab_number = getdigits(&p);
     31799+       if (relative != 0)
     31800+           tab_number = tab_number * relative + tabpage_index(curtab) - 1;;
     31801+    }
     31802+    else if (eap->addr_count != 0)
     31803+       tab_number = eap->line2;
     31804+
     31805+    tabpage_move(tab_number);
     31806 }
     31807 
     31808 /*
     31809@@ -8122,6 +8277,12 @@
    3035931810     {
    3036031811        ui_delay(msec - done > 1000L ? 1000L : msec - done, TRUE);
     
    3036931820 }
    3037031821 
    30371 @@ -8193,7 +8310,7 @@
     31822@@ -8193,7 +8354,7 @@
    3037231823     p = skipwhite(p);
    3037331824     if (*p != NUL && *p != '"' && eap->nextcmd == NULL)
     
    3037831829        /* Pass flags on for ":vertical wincmd ]". */
    3037931830        postponed_split_flags = cmdmod.split;
    30380 @@ -8907,35 +9024,42 @@
     31831@@ -8428,7 +8589,7 @@
     31832        }
     31833        ++eap->line2;
     31834     }
     31835-    (void)do_join(eap->line2 - eap->line1 + 1, !eap->forceit, TRUE);
     31836+    (void)do_join(eap->line2 - eap->line1 + 1, !eap->forceit, TRUE, TRUE);
     31837     beginline(BL_WHITE | BL_FIX);
     31838     ex_may_print(eap);
     31839 }
     31840@@ -8907,35 +9068,42 @@
    3038131841                failed = TRUE;
    3038231842            if (eap->cmdidx == CMD_mksession)
     
    3044531905            }
    3044631906            else
    30447 @@ -8966,10 +9090,15 @@
     31907@@ -8966,10 +9134,15 @@
    3044831908        else if (eap->cmdidx == CMD_mksession)
    3044931909        {
     
    3046431924 #endif
    3046531925 #ifdef MKSESSION_NL
    30466 @@ -9295,7 +9424,7 @@
     31926@@ -9295,7 +9468,7 @@
    3046731927                                                                  && !got_int)
    3046831928     {
     
    3047331933 }
    3047431934 #endif
    30475 @@ -9393,7 +9522,7 @@
     31935@@ -9393,7 +9566,7 @@
    3047631936 ex_ptag(eap)
    3047731937     exarg_T    *eap;
     
    3048231942 }
    3048331943 
    30484 @@ -9525,17 +9654,23 @@
     31944@@ -9525,17 +9698,23 @@
    3048531945 #define SPEC_CFILE  4
    3048631946                    "<sfile>",          /* ":so" file name */
     
    3051031970     };
    3051131971 
    30512 @@ -9560,6 +9695,7 @@
     31972@@ -9560,6 +9739,7 @@
    3051331973  *       '<cWORD>' to WORD under the cursor
    3051431974  *       '<cfile>' to path name under the cursor
     
    3051831978  *       '<abuf>'  to buffer number for autocommand
    3051931979  *       '<amatch>' to matching name for autocommand
    30520 @@ -9591,10 +9727,7 @@
     31980@@ -9591,10 +9771,7 @@
    3052131981 #ifdef FEAT_MODIFY_FNAME
    3052231982     int                skip_mod = FALSE;
     
    3052931989     *errormsg = NULL;
    3053031990     if (escaped != NULL)
    30531 @@ -9653,14 +9786,7 @@
     31991@@ -9653,14 +9830,7 @@
    3053231992                    valid = 0;      /* Must have ":p:h" to be valid */
    3053331993                }
     
    3054432004 
    3054532005        case SPEC_HASH:         /* '#' or "#99": alternate file */
    30546 @@ -9783,6 +9909,15 @@
     32006@@ -9783,6 +9953,15 @@
    3054732007                    return NULL;
    3054832008                }
     
    3056032020        case SPEC_CLIENT:       /* Source of last submitted input */
    3056132021                sprintf((char *)strbuf, PRINTF_HEX_LONG_U,
    30562 @@ -9796,11 +9931,7 @@
     32022@@ -9796,11 +9975,7 @@
    3056332023        if (src[*usedlen] == '<')       /* remove the file name extension */
    3056432024        {
     
    3057232032        }
    3057332033 #ifdef FEAT_MODIFY_FNAME
    30574 @@ -10645,7 +10776,7 @@
     32034@@ -10645,7 +10820,7 @@
    3057532035     unsigned   *flagp;
    3057632036 {
     
    3058132041 
    3058232042     if (gap->ga_len == 0)
    30583 @@ -10660,11 +10791,19 @@
     32043@@ -10660,11 +10835,19 @@
    3058432044        {
    3058532045            if (fullname)
     
    3060332063     }
    3060432064     return put_eol(fd);
    30605 @@ -10707,7 +10846,7 @@
     32065@@ -10707,7 +10890,7 @@
    3060632066  * Write a file name to the session file.
    3060732067  * Takes care of the "slash" option in 'sessionoptions' and escapes special
     
    3061232072     static int
    3061332073 ses_put_fname(fd, name, flagp)
    30614 @@ -10716,49 +10855,32 @@
     32074@@ -10716,49 +10899,32 @@
    3061532075     unsigned   *flagp;
    3061632076 {
     
    3068232142 }
    3068332143 
    30684 @@ -10826,8 +10948,7 @@
     32144@@ -10826,8 +10992,7 @@
    3068532145            else if (vim_ispathsep(*p))
    3068632146            {
     
    3069232152                    *s++ = '-';
    3069332153                else
    30694 @@ -10910,7 +11031,7 @@
     32154@@ -10910,7 +11075,7 @@
    3069532155 
    3069632156 #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG) || defined(PROTO)
     
    3070132161  */
    3070232162     void
    30703 @@ -10921,7 +11042,7 @@
     32163@@ -10921,7 +11086,7 @@
    3070432164 {
    3070532165     if (fname == NULL)
     
    3071132171 
    3071232172diff -Naur vim73.orig/src/ex_getln.c vim73/src/ex_getln.c
    30713 --- vim73.orig/src/ex_getln.c   2012-06-03 23:09:52.956007482 +0000
    30714 +++ vim73/src/ex_getln.c        2012-06-03 23:09:55.884085403 +0000
     32173--- vim73.orig/src/ex_getln.c   2010-08-14 15:25:45.000000000 +0000
     32174+++ vim73/src/ex_getln.c        2012-07-20 20:31:17.557644623 +0000
    3071532175@@ -25,7 +25,7 @@
    3071632176     int                cmdlen;         /* number of chars in command line */
     
    3089332353     }
    3089432354 
    30895 @@ -2843,6 +2888,7 @@
     32355@@ -2719,6 +2764,11 @@
     32356     msg_no_more = TRUE;
     32357     if (ccline.cmdlen == ccline.cmdpos)
     32358        msg_putchar(' ');
     32359+#ifdef FEAT_MBYTE
     32360+    else if (has_mbyte)
     32361+       draw_cmdline(ccline.cmdpos,
     32362+                              (*mb_ptr2len)(ccline.cmdbuff + ccline.cmdpos));
     32363+#endif
     32364     else
     32365        draw_cmdline(ccline.cmdpos, 1);
     32366     msg_no_more = FALSE;
     32367@@ -2843,6 +2893,7 @@
    3089632368        {
    3089732369            msg_no_more = TRUE;
     
    3090132373            /* Avoid clearing the rest of the line too often. */
    3090232374            if (cmdline_row != i || ccline.overstrike)
    30903 @@ -3023,7 +3069,7 @@
     32375@@ -3023,7 +3074,7 @@
    3090432376            int     len;
    3090532377 
     
    3091032382 #ifdef FEAT_MBYTE
    3091132383                if (has_mbyte)
    30912 @@ -3041,7 +3087,7 @@
     32384@@ -3041,7 +3092,7 @@
    3091332385                    --w;
    3091432386                }
     
    3091932391                p += len;
    3092032392        }
    30921 @@ -3258,6 +3304,24 @@
     32393@@ -3082,7 +3133,8 @@
     32394            else
     32395 #endif
     32396                c = *s++;
     32397-           if (cv == Ctrl_V || c == ESC || c == Ctrl_C || c == CAR || c == NL
     32398+           if (cv == Ctrl_V || c == ESC || c == Ctrl_C
     32399+                   || c == CAR || c == NL || c == Ctrl_L
     32400 #ifdef UNIX
     32401                    || c == intr_char
     32402 #endif
     32403@@ -3258,6 +3310,24 @@
    3092232404     return check_abbr(c, ccline.cmdbuff, ccline.cmdpos, 0);
    3092332405 }
     
    3094432426  * Return FAIL if this is not an appropriate context in which to do
    3094532427  * completion of anything, return OK if it is (even if there are no matches).
    30946 @@ -3316,10 +3380,14 @@
     32428@@ -3316,10 +3386,14 @@
    3094732429            p2 = NULL;
    3094832430        else
     
    3096132443            /* longest match: make sure it is not shorter, happens with :help */
    3096232444            if (p2 != NULL && type == WILD_LONGEST)
    30963 @@ -3396,6 +3464,7 @@
     32445@@ -3396,6 +3470,7 @@
    3096432446  * mode = WILD_PREV:       use previous match in multiple match, wrap to first
    3096532447  * mode = WILD_ALL:        return all matches concatenated
     
    3096932451  * options = WILD_LIST_NOTFOUND:    list entries without a match
    3097032452  * options = WILD_HOME_REPLACE:            do home_replace() for buffer names
    30971 @@ -3405,6 +3474,7 @@
     32453@@ -3405,6 +3480,7 @@
    3097232454  * options = WILD_KEEP_ALL:        don't remove 'wildignore' entries
    3097332455  * options = WILD_SILENT:          don't print warning messages
     
    3097732459  * The variables xp->xp_context and xp->xp_backslash must have been set!
    3097832460  */
    30979 @@ -3518,7 +3588,8 @@
     32461@@ -3518,7 +3594,8 @@
    3098032462            /*
    3098132463             * Check for matching suffixes in file names.
     
    3098732469                if (xp->xp_numfiles)
    3098832470                    non_suf_match = xp->xp_numfiles;
    30989 @@ -3674,6 +3745,7 @@
     32471@@ -3674,6 +3751,7 @@
    3099032472     if (options & WILD_ESCAPE)
    3099132473     {
     
    3099532477                || xp->xp_context == EXPAND_BUFFERS
    3099632478                || xp->xp_context == EXPAND_DIRECTORIES)
    30997 @@ -4338,6 +4410,7 @@
     32479@@ -4338,6 +4416,7 @@
    3099832480     char_u     ***matches;     /* return: array of pointers to matches */
    3099932481 {
     
    3100332485     if (xp->xp_context == EXPAND_UNSUCCESSFUL)
    3100432486     {
    31005 @@ -4356,9 +4429,11 @@
     32487@@ -4356,9 +4435,11 @@
    3100632488     if (file_str == NULL)
    3100732489        return EXPAND_UNSUCCESSFUL;
     
    3101732499        *matchcount = 0;
    3101832500        *matches = NULL;
    31019 @@ -4410,7 +4485,7 @@
     32501@@ -4410,7 +4491,7 @@
    3102032502     char_u     *pat;
    3102132503     int                *num_file;
     
    3102632508 #ifdef FEAT_CMDL_COMPL
    3102732509     regmatch_T regmatch;
    31028 @@ -4464,6 +4539,9 @@
     32510@@ -4464,6 +4545,9 @@
    3102932511            flags |= (EW_FILE | EW_PATH);
    3103032512        else
     
    3103632518        ret = expand_wildcards_eval(&pat, num_file, file, flags);
    3103732519        if (free_pat)
    31038 @@ -4501,13 +4579,25 @@
     32520@@ -4501,13 +4585,25 @@
    3103932521            || xp->xp_context == EXPAND_TAGS_LISTFILES)
    3104032522        return expand_tags(xp->xp_context == EXPAND_TAGS, pat, num_file, file);
     
    3106632548     if (xp->xp_context == EXPAND_USER_LIST)
    3106732549        return ExpandUserList(xp, num_file, file);
    31068 @@ -4536,48 +4626,53 @@
     32550@@ -4536,48 +4632,53 @@
    3106932551            int         context;
    3107032552            char_u      *((*func)__ARGS((expand_T *, int)));
     
    3114132623        int     i;
    3114232624 
    31143 @@ -4591,7 +4686,8 @@
     32625@@ -4591,7 +4692,8 @@
    3114432626            {
    3114532627                if (tab[i].ic)
     
    3114732629-               ret = ExpandGeneric(xp, &regmatch, num_file, file, tab[i].func);
    3114832630+               ret = ExpandGeneric(xp, &regmatch, num_file, file,
    31149 +                                                tab[i].func, tab[i].escaped);
     32631+                                               tab[i].func, tab[i].escaped);
    3115032632                break;
    3115132633            }
    3115232634     }
    31153 @@ -4613,13 +4709,14 @@
     32635@@ -4613,13 +4715,14 @@
    3115432636  * Returns OK when no problems encountered, FAIL for error (out of memory).
    3115532637  */
     
    3116732649     int                i;
    3116832650     int                count = 0;
    31169 @@ -4644,7 +4741,10 @@
     32651@@ -4644,7 +4747,10 @@
    3117032652            {
    3117132653                if (round)
     
    3117932661 #ifdef FEAT_MENU
    3118032662                    if (func == get_menu_names && str != NULL)
    31181 @@ -4676,7 +4776,16 @@
     32663@@ -4676,7 +4782,16 @@
    3118232664 
    3118332665     /* Sort the results.  Keep menu's in the specified order. */
     
    3119732679 #ifdef FEAT_CMDL_COMPL
    3119832680     /* Reset the variables used for special highlight names expansion, so that
    31199 @@ -4728,7 +4837,11 @@
     32681@@ -4728,7 +4843,11 @@
    3120032682                            || (pat[1] == '.' && vim_ispathsep(pat[2])))))
    3120132683        path = (char_u *)".";
     
    3120932691     /*
    3121032692      * Go over all directories in $PATH.  Expand matches in that directory and
    31211 @@ -4949,57 +5062,68 @@
     32693@@ -4949,57 +5068,68 @@
    3121232694 /*
    3121332695  * Expand color scheme, compiler or filetype names:
     
    3130032782-    vim_free(all);
    3130132783+    if (ga.ga_len == 0)
    31302 +        return FAIL;
     32784+       return FAIL;
    3130332785 
    3130432786     /* Sort and remove duplicates which can happen when specifying multiple
     
    3130832790 
    3130932791     *file = ga.ga_data;
    31310 @@ -5127,6 +5251,34 @@
     32792@@ -5127,6 +5257,34 @@
    3131132793     NULL
    3131232794 };
     
    3134332825  * init_history() - Initialize the command line history.
    3134432826  * Also used to re-allocate the history when the size changes.
    31345 @@ -5220,13 +5372,15 @@
     32827@@ -5220,13 +5378,15 @@
    3134632828  * If 'move_to_front' is TRUE, matching entry is moved to end of history.
    3134732829  */
     
    3136032842     if (hisidx[type] < 0)
    3136132843        return FALSE;
    31362 @@ -5235,7 +5389,12 @@
     32844@@ -5235,7 +5395,12 @@
    3136332845     {
    3136432846        if (history[type][i].hisstr == NULL)
     
    3137432856            if (!move_to_front)
    3137532857                return TRUE;
    31376 @@ -5329,7 +5488,7 @@
     32858@@ -5329,7 +5494,7 @@
    3137732859        }
    3137832860        last_maptick = -1;
     
    3138332865        if (++hisidx[histype] == hislen)
    3138432866            hisidx[histype] = 0;
    31385 @@ -5803,7 +5962,7 @@
     32867@@ -5803,7 +5968,7 @@
    3138632868                                                              hist[i].hisnum);
    3138732869                    if (vim_strsize(hist[i].hisstr) > (int)Columns - 10)
     
    3139232874                        STRCAT(IObuff, hist[i].hisstr);
    3139332875                    msg_outtrans(IObuff);
    31394 @@ -5907,8 +6066,10 @@
     32876@@ -5907,8 +6072,10 @@
    3139532877        val = viminfo_readstring(virp, 1, TRUE);
    3139632878        if (val != NULL && *val != NUL)
     
    3140432886                /* Need to re-allocate to append the separator byte. */
    3140532887                len = STRLEN(val);
    31406 @@ -5920,7 +6081,7 @@
     32888@@ -5920,7 +6087,7 @@
    3140732889                        /* Search entry: Move the separator from the first
    3140832890                         * column to after the NUL. */
     
    3141332895                    else
    3141432896                    {
    31415 @@ -6147,9 +6308,7 @@
     32897@@ -6147,9 +6314,7 @@
    3141632898     curwin->w_p_rl = cmdmsg_rl;
    3141732899     cmdmsg_rl = FALSE;
     
    3142432906 # ifdef FEAT_AUTOCMD
    3142532907     /* Do execute autocommands for setting the filetype (load syntax). */
    31426 @@ -6287,6 +6446,12 @@
     32908@@ -6287,6 +6452,12 @@
    3142732909            ccline.cmdbuff = vim_strsave((char_u *)"qa");
    3142832910            cmdwin_result = CAR;
     
    3143732919            ccline.cmdbuff = vim_strsave(ml_get_curline());
    3143832920        if (ccline.cmdbuff == NULL)
    31439 @@ -6317,7 +6482,7 @@
     32921@@ -6317,7 +6488,7 @@
    3144032922        /* win_close() may have already wiped the buffer when 'bh' is
    3144132923         * set to 'wipe' */
     
    3144632928        /* Restore window sizes. */
    3144732929        win_size_restore(&winsizes);
     32930diff -Naur vim73.orig/src/farsi.c vim73/src/farsi.c
     32931--- vim73.orig/src/farsi.c      2010-05-15 11:04:10.000000000 +0000
     32932+++ vim73/src/farsi.c   2012-07-20 20:31:18.224311766 +0000
     32933@@ -1813,7 +1813,7 @@
     32934                ptr[i] = toF_leading(ptr[i]);
     32935                ++i;
     32936 
     32937-               while(canF_Rjoin(ptr[i]) && (i < llen))
     32938+               while (canF_Rjoin(ptr[i]) && i < llen)
     32939                {
     32940                    ptr[i] = toF_Rjoin(ptr[i]);
     32941                    if (F_isterm(ptr[i]) || !F_isalpha(ptr[i]))
    3144832942diff -Naur vim73.orig/src/feature.h vim73/src/feature.h
    31449 --- vim73.orig/src/feature.h    2012-06-03 23:09:52.952007375 +0000
    31450 +++ vim73/src/feature.h 2012-06-03 23:09:55.760082103 +0000
     32943--- vim73.orig/src/feature.h    2010-07-27 19:45:42.000000000 +0000
     32944+++ vim73/src/feature.h 2012-07-20 20:31:15.827643384 +0000
    3145132945@@ -506,15 +506,6 @@
    3145232946 #endif
     
    3151633010+#endif
    3151733011diff -Naur vim73.orig/src/fileio.c vim73/src/fileio.c
    31518 --- vim73.orig/src/fileio.c     2012-06-03 23:09:52.924006631 +0000
    31519 +++ vim73/src/fileio.c  2012-06-03 23:09:55.800083168 +0000
     33012--- vim73.orig/src/fileio.c     2010-08-14 12:20:54.000000000 +0000
     33013+++ vim73/src/fileio.c  2012-07-20 20:31:18.164311724 +0000
    3152033014@@ -11,14 +11,6 @@
    3152133015  * fileio.c: read from and write to a file
     
    3197433468 #  else
    3197533469     char_u     *p;
    31976 @@ -7682,6 +7674,7 @@
     33470@@ -7651,6 +7643,7 @@
     33471     {"CmdwinEnter",    EVENT_CMDWINENTER},
     33472     {"CmdwinLeave",    EVENT_CMDWINLEAVE},
     33473     {"ColorScheme",    EVENT_COLORSCHEME},
     33474+    {"CompleteDone",   EVENT_COMPLETEDONE},
     33475     {"CursorHold",     EVENT_CURSORHOLD},
     33476     {"CursorHoldI",    EVENT_CURSORHOLDI},
     33477     {"CursorMoved",    EVENT_CURSORMOVED},
     33478@@ -7682,9 +7675,11 @@
    3197733479     {"InsertChange",   EVENT_INSERTCHANGE},
    3197833480     {"InsertEnter",    EVENT_INSERTENTER},
     
    3198233484     {"QuickFixCmdPost",        EVENT_QUICKFIXCMDPOST},
    3198333485     {"QuickFixCmdPre", EVENT_QUICKFIXCMDPRE},
    31984 @@ -8744,6 +8737,8 @@
     33486+    {"QuitPre",                EVENT_QUITPRE},
     33487     {"RemoteReply",    EVENT_REMOTEREPLY},
     33488     {"SessionLoadPost",        EVENT_SESSIONLOADPOST},
     33489     {"ShellCmdPost",   EVENT_SHELLCMDPOST},
     33490@@ -8744,6 +8739,8 @@
    3198533491     int                retval;
    3198633492     aco_save_T aco;
     
    3199133497     /*
    3199233498      * This is a bit tricky: For some commands curwin->w_buffer needs to be
    31993 @@ -8760,11 +8755,15 @@
     33499@@ -8760,11 +8757,15 @@
    3199433500            aucmd_prepbuf(&aco, buf);
    3199533501 
     
    3201133517            /* restore the current window */
    3201233518            aucmd_restbuf(&aco);
    32013 @@ -8779,6 +8778,23 @@
     33519@@ -8779,6 +8780,23 @@
    3201433520 }
    3201533521 
     
    3203533541  * Search for a visible window containing the current buffer.  If there isn't
    3203633542  * one then use "aucmd_win".
    32037 @@ -8903,10 +8919,11 @@
     33543@@ -8901,12 +8919,13 @@
     33544                if (wp == aucmd_win)
     33545                {
    3203833546                    if (tp != curtab)
    32039                         goto_tabpage_tp(tp);
     33547-                       goto_tabpage_tp(tp);
     33548+                       goto_tabpage_tp(tp, TRUE);
    3204033549                    win_goto(aucmd_win);
    3204133550-                   break;
     
    3204833557        /* Remove the window and frame from the tree of frames. */
    3204933558        (void)winframe_remove(curwin, &dummy, NULL);
    32050 @@ -8965,6 +8982,10 @@
     33559@@ -8965,6 +8984,10 @@
    3205133560                    && buf_valid(aco->new_curbuf)
    3205233561                    && aco->new_curbuf->b_ml.ml_mfp != NULL)
     
    3205933568                curbuf = aco->new_curbuf;
    3206033569                curwin->w_buffer = curbuf;
    32061 @@ -9063,7 +9084,10 @@
     33570@@ -9063,7 +9086,10 @@
    3206233571 {
    3206333572     int                state;
     
    3207133580            && !ins_compl_active()
    3207233581 #endif
    32073 @@ -9094,6 +9118,15 @@
     33582@@ -9094,6 +9120,15 @@
    3207433583     return (first_autopat[(int)EVENT_CURSORMOVEDI] != NULL);
    3207533584 }
     
    3208733596 apply_autocmds_group(event, fname, fname_io, force, group, buf, eap)
    3208833597     event_T    event;
    32089 @@ -9954,6 +9987,8 @@
     33598@@ -9954,6 +9989,8 @@
    3209033599            if ((c == ';' || c == '>') && match == FALSE)
    3209133600            {
     
    3209633605                *pattern = c;       /* Restore the terminator */
    3209733606                type_start = pattern + 1;
    32098 @@ -10181,19 +10216,11 @@
     33607@@ -10181,19 +10218,11 @@
    3209933608                    ++p;
    3210033609                break;
     
    3211633625                break;
    3211733626            case '\\':
    32118 @@ -10304,3 +10331,55 @@
     33627@@ -10304,3 +10333,55 @@
    3211933628     }
    3212033629     return reg_pat;
     
    3217333682+#endif
    3217433683diff -Naur vim73.orig/src/fold.c vim73/src/fold.c
    32175 --- vim73.orig/src/fold.c       2012-06-03 23:09:52.944007163 +0000
    32176 +++ vim73/src/fold.c    2012-06-03 23:09:55.544076354 +0000
     33684--- vim73.orig/src/fold.c       2010-06-22 04:20:24.000000000 +0000
     33685+++ vim73/src/fold.c    2012-07-20 20:31:15.170976247 +0000
    3217733686@@ -1033,10 +1033,10 @@
    3217833687  * Init the fold info in a new window.
     
    3232233831 /* }}}1 */
    3232333832diff -Naur vim73.orig/src/getchar.c vim73/src/getchar.c
    32324 --- vim73.orig/src/getchar.c    2012-06-03 23:09:52.952007375 +0000
    32325 +++ vim73/src/getchar.c 2012-06-03 23:09:55.936086788 +0000
     33833--- vim73.orig/src/getchar.c    2010-08-08 13:00:33.000000000 +0000
     33834+++ vim73/src/getchar.c 2012-07-20 20:31:16.570977250 +0000
    3232633835@@ -418,12 +418,12 @@
    3232733836 
     
    3261134120                                            : p_tm)), typebuf.tb_change_cnt);
    3261234121 
    32613 @@ -3168,6 +3188,7 @@
     34122@@ -2799,7 +2819,8 @@
     34123                        edit_unputchar();
     34124                    if (State & CMDLINE)
     34125                        unputcmdline();
     34126-                   setcursor();        /* put cursor back where it belongs */
     34127+                   else
     34128+                       setcursor();    /* put cursor back where it belongs */
     34129                }
     34130 
     34131                if (c < 0)
     34132@@ -3168,6 +3189,7 @@
    3261434133     int                expr = FALSE;
    3261534134 #endif
     
    3261934138     keys = arg;
    3262034139     map_table = maphash;
    32621 @@ -3251,9 +3272,9 @@
     34140@@ -3251,9 +3273,9 @@
    3262234141     validate_maphash();
    3262334142 
     
    3263134150     p = keys;
    3263234151     do_backslash = (vim_strchr(p_cpo, CPO_BSLASH) == NULL);
    32633 @@ -3266,6 +3287,7 @@
     34152@@ -3266,6 +3288,7 @@
    3263434153     }
    3263534154     if (*p != NUL)
     
    3263934158     rhs = p;
    3264034159     hasarg = (*rhs != NUL);
    32641 @@ -3288,6 +3310,7 @@
     34160@@ -3288,6 +3311,7 @@
    3264234161      */
    3264334162     if (haskey)
     
    3264734166     {
    3264834167        if (STRICMP(rhs, "<nop>") == 0)     /* "<Nop>" means nothing */
    32649 @@ -3298,7 +3321,7 @@
     34168@@ -3298,7 +3322,7 @@
    3265034169 
    3265134170 #ifdef FEAT_FKMAP
     
    3265634175      */
    3265734176     if (p_altkeymap && curwin->w_p_rl)
    32658 @@ -3556,6 +3579,8 @@
     34177@@ -3556,6 +3580,8 @@
    3265934178                                }
    3266034179                                vim_free(mp->m_str);
     
    3266534184                                mp->m_silent = silent;
    3266634185                                mp->m_mode = mode;
    32667 @@ -3633,10 +3658,12 @@
     34186@@ -3633,10 +3659,12 @@
    3266834187 
    3266934188     mp->m_keys = vim_strsave(keys);
     
    3267834197        retval = 4;     /* no mem */
    3267934198        goto theend;
    32680 @@ -3682,6 +3709,7 @@
     34199@@ -3682,6 +3710,7 @@
    3268134200     mp = *mpp;
    3268234201     vim_free(mp->m_keys);
     
    3268634205     vim_free(mp);
    3268734206 }
    32688 @@ -3851,12 +3879,57 @@
     34207@@ -3851,12 +3880,57 @@
    3268934208     }
    3269034209 }
     
    3274534264     if (msg_didout || msg_silent != 0)
    3274634265     {
    32747 @@ -3864,49 +3937,15 @@
     34266@@ -3864,49 +3938,15 @@
    3274834267        if (got_int)        /* 'q' typed at MORE prompt */
    3274934268            return;
     
    3280234321        msg_putchar(' ');
    3280334322 
    32804 @@ -3931,12 +3970,21 @@
     34323@@ -3931,12 +3971,21 @@
    3280534324        msg_putchar(' ');
    3280634325 
     
    3282734346     if (p_verbose > 0)
    3282834347        last_set_msg(mp->m_script_ID);
    32829 @@ -4287,11 +4335,7 @@
     34348@@ -4287,11 +4336,7 @@
    3283034349     int                scol;           /* starting column of the abbr. */
    3283134350     int                j;
     
    3283934358 #ifdef FEAT_LOCALMAP
    3284034359     mapblock_T *mp2;
    32841 @@ -4304,8 +4348,9 @@
     34360@@ -4304,8 +4349,9 @@
    3284234361 
    3284334362     if (typebuf.tb_no_abbr_cnt)        /* abbrev. are not recursive */
     
    3285134370 
    3285234371     /*
    32853 @@ -4478,12 +4523,25 @@
     34372@@ -4478,12 +4524,25 @@
    3285434373 {
    3285534374     char_u     *res;
     
    3287734396     /* Forbid changing text or using ":normal" to avoid most of the bad side
    3287834397      * effects.  Also restore the cursor position. */
    32879 @@ -4493,16 +4551,23 @@
     34398@@ -4493,16 +4552,23 @@
    3288034399 #endif
    3288134400     set_vim_var_char(c);  /* set v:char to the typed character */
     
    3290234421     vim_free(p);
    3290334422 
    32904 @@ -4995,19 +5060,21 @@
     34423@@ -4995,19 +5061,21 @@
    3290534424     sourcing_name = save_name;
    3290634425 }
     
    3292934448     int                hash;
    3293034449     int                len, minlen;
    32931 @@ -5062,7 +5129,17 @@
     34450@@ -5062,7 +5130,17 @@
    3293234451                            minlen = mp->m_keylen - 3;
    3293334452                    }
     
    3294834467        }
    3294934468diff -Naur vim73.orig/src/globals.h vim73/src/globals.h
    32950 --- vim73.orig/src/globals.h    2012-06-03 23:09:52.952007375 +0000
    32951 +++ vim73/src/globals.h 2012-06-03 23:09:55.404072629 +0000
     34469--- vim73.orig/src/globals.h    2010-07-23 19:20:45.000000000 +0000
     34470+++ vim73/src/globals.h 2012-07-20 20:31:18.067644988 +0000
    3295234471@@ -113,9 +113,9 @@
    3295334472  * When '$' is included in 'cpoptions' option set:
     
    3296234481 #ifdef FEAT_INS_EXPAND
    3296334482 /*
    32964 @@ -510,8 +510,13 @@
     34483@@ -510,9 +510,15 @@
    3296534484 EXTERN VimClipboard clip_plus; /* CLIPBOARD selection in X11 */
    3296634485 # else
     
    3296934488 # endif
    3297034489-EXTERN int     clip_unnamed INIT(= FALSE);
    32971 +
    32972 +#define CLIP_UNNAMED      1
    32973 +#define CLIP_UNNAMED_PLUS 2
     34490-EXTERN int     clip_autoselect INIT(= FALSE);
     34491+
     34492+# define CLIP_UNNAMED      1
     34493+# define CLIP_UNNAMED_PLUS 2
    3297434494+EXTERN int     clip_unnamed INIT(= 0); /* above two values or'ed */
    3297534495+
    32976  EXTERN int     clip_autoselect INIT(= FALSE);
     34496+EXTERN int     clip_autoselect_star INIT(= FALSE);
     34497+EXTERN int     clip_autoselect_plus INIT(= FALSE);
    3297734498 EXTERN int     clip_autoselectml INIT(= FALSE);
    3297834499 EXTERN int     clip_html INIT(= FALSE);
    32979 @@ -530,6 +535,10 @@
     34500 EXTERN regprog_T *clip_exclude_prog INIT(= NULL);
     34501@@ -530,6 +536,10 @@
    3298034502 EXTERN win_T   *prevwin INIT(= NULL);  /* previous window */
    3298134503 # define W_NEXT(wp) ((wp)->w_next)
     
    3298834510     for ((tp) = first_tabpage; (tp) != NULL; (tp) = (tp)->tp_next) \
    3298934511        for ((wp) = ((tp) == curtab) \
    32990 @@ -1052,10 +1061,6 @@
     34512@@ -728,9 +738,9 @@
     34513 #endif
     34514 
     34515 EXTERN pos_T   saved_cursor            /* w_cursor before formatting text. */
     34516-# ifdef DO_INIT
     34517+#ifdef DO_INIT
     34518        = INIT_POS_T(0, 0, 0)
     34519-# endif
     34520+#endif
     34521        ;
     34522 
     34523 /*
     34524@@ -798,9 +808,9 @@
     34525 # endif
     34526 EXTERN int     has_mbyte INIT(= 0);            /* any multi-byte encoding */
     34527 
     34528-#if defined(WIN3264) && defined(FEAT_MBYTE)
     34529+# if defined(WIN3264) && defined(FEAT_MBYTE)
     34530 EXTERN int     wide_WindowProc INIT(= FALSE);  /* use wide WindowProc() */
     34531-#endif
     34532+# endif
     34533 
     34534 /*
     34535  * To speed up BYTELEN() we fill a table with the byte lengths whenever
     34536@@ -1052,10 +1062,6 @@
    3299134537                        ;
    3299234538 #endif
     
    3299934545 EXTERN int     postponed_split INIT(= 0);  /* for CTRL-W CTRL-] command */
    3300034546 EXTERN int     postponed_split_flags INIT(= 0);  /* args for win_split() */
    33001 @@ -1512,7 +1517,7 @@
     34547@@ -1094,8 +1100,8 @@
     34548 EXTERN int  save_p_ls INIT(= -1);      /* Save 'laststatus' setting */
     34549 EXTERN int  save_p_wmh INIT(= -1);     /* Save 'winminheight' setting */
     34550 EXTERN int  wild_menu_showing INIT(= 0);
     34551-#define WM_SHOWN       1               /* wildmenu showing */
     34552-#define WM_SCROLLED    2               /* wildmenu showing with scroll */
     34553+# define WM_SHOWN      1               /* wildmenu showing */
     34554+# define WM_SCROLLED   2               /* wildmenu showing with scroll */
     34555 #endif
     34556 
     34557 #ifdef MSWIN
     34558@@ -1305,9 +1311,9 @@
     34559 EXTERN Atom    commProperty INIT(= None);
     34560 EXTERN char_u  *serverDelayedStartName INIT(= NULL);
     34561 # else
     34562-# ifdef PROTO
     34563+#  ifdef PROTO
     34564 typedef int HWND;
     34565-# endif
     34566+#  endif
     34567 EXTERN HWND    clientWindow INIT(= 0);
     34568 # endif
     34569 #endif
     34570@@ -1512,7 +1518,7 @@
    3300234571 EXTERN char_u e_sandbox[]      INIT(= N_("E48: Not allowed in sandbox"));
    3300334572 #endif
     
    3300834577 EXTERN char_u e_screenmode[]   INIT(= N_("E359: Screen mode setting not supported"));