Patch 8.2.1439
Problem:    Tiny and small builds have no test coverage.
Solution:   Restore tests that do not depend on the +eval feature.
            (Ken Takata, closes #6696)
Files:      .travis.yml, Filelist, Makefile, runtime/doc/testing.txt,
            src/Make_mvc.mak, src/Makefile, src/testdir/Make_all.mak,
            src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
            src/testdir/Make_ming.mak, src/testdir/Make_vms.mms,
            src/testdir/Makefile, src/testdir/runtest.vim,
            src/testdir/test1.in, src/testdir/test1.ok, src/testdir/test20.in,
            src/testdir/test20.ok, src/testdir/test21.in,
            src/testdir/test21.ok, src/testdir/test22.in,
            src/testdir/test22.ok, src/testdir/test23.in,
            src/testdir/test23.ok, src/testdir/test24.in,
            src/testdir/test24.ok, src/testdir/test25.in,
            src/testdir/test25.ok, src/testdir/test26.in,
            src/testdir/test26.ok, src/testdir/test27.in,
            src/testdir/test27.ok, src/testdir/test_options.vim


*** ../vim-8.2.1438/.travis.yml 2020-08-09 14:07:49.120759380 +0200
--- .travis.yml 2020-08-13 18:21:29.515663441 +0200
***************
*** 7,17 ****
  _anchors:
    envs:
      - &tiny-nogui
!       FEATURES=tiny CONFOPT="--disable-gui"
      - &tiny
!       FEATURES=tiny
      - &small
!       FEATURES=small
      - &normal
        FEATURES=normal
      - &linux-huge
--- 7,17 ----
  _anchors:
    envs:
      - &tiny-nogui
!       FEATURES=tiny TEST=testtiny CONFOPT="--disable-gui"
      - &tiny
!       FEATURES=tiny TEST=testtiny
      - &small
!       FEATURES=small TEST=testtiny
      - &normal
        FEATURES=normal
      - &linux-huge
*** ../vim-8.2.1438/Filelist    2020-08-11 21:58:12.573968305 +0200
--- Filelist    2020-08-13 18:50:05.927211912 +0200
***************
*** 158,166 ****
                src/testdir/gen_opt_test.vim \
                src/testdir/README.txt \
                src/testdir/Make_all.mak \
!               src/testdir/dotest.in \
!               src/testdir/test1.in \
!               src/testdir/test77a.in \
                src/testdir/*.py \
                src/testdir/lsan-suppress.txt \
                src/testdir/sautest/autoload/*.vim \
--- 158,164 ----
                src/testdir/gen_opt_test.vim \
                src/testdir/README.txt \
                src/testdir/Make_all.mak \
!               src/testdir/*.in \
                src/testdir/*.py \
                src/testdir/lsan-suppress.txt \
                src/testdir/sautest/autoload/*.vim \
***************
*** 179,185 ****
                src/testdir/summarize.vim \
                src/testdir/term_util.vim \
                src/testdir/view_util.vim \
! -             src/testdir/test1.ok \
                src/testdir/test77a.ok \
                src/testdir/test83-tags? \
                src/testdir/test77a.com \
--- 177,183 ----
                src/testdir/summarize.vim \
                src/testdir/term_util.vim \
                src/testdir/view_util.vim \
!               src/testdir/test[0-9]*.ok \
                src/testdir/test77a.ok \
                src/testdir/test83-tags? \
                src/testdir/test77a.com \
*** ../vim-8.2.1438/Makefile    2020-01-26 21:59:25.616718180 +0100
--- Makefile    2020-08-13 18:21:29.515663441 +0200
***************
*** 32,38 ****
  
  # Some make programs use the last target for the $@ default; put the other
  # targets separately to always let $@ expand to "first" by default.
! all install uninstall tools config configure reconfig proto depend lint tags 
types test scripttests test_libvterm unittests testclean clean distclean:
        @if test ! -f src/auto/config.mk; then \
                cp src/config.mk.dist src/auto/config.mk; \
        fi
--- 32,38 ----
  
  # Some make programs use the last target for the $@ default; put the other
  # targets separately to always let $@ expand to "first" by default.
! all install uninstall tools config configure reconfig proto depend lint tags 
types test scripttests testtiny test_libvterm unittests testclean clean 
distclean:
        @if test ! -f src/auto/config.mk; then \
                cp src/config.mk.dist src/auto/config.mk; \
        fi
*** ../vim-8.2.1438/runtime/doc/testing.txt     2020-08-11 20:42:15.462616344 
+0200
--- runtime/doc/testing.txt     2020-08-13 18:21:29.515663441 +0200
***************
*** 1,4 ****
! *testing.txt* For Vim version 8.2.  Last change: 2019 Sep 08
  
  
                  VIM REFERENCE MANUAL    by Bram Moolenaar
--- 1,4 ----
! *testing.txt* For Vim version 8.2.  Last change: 2020 Jul 11
  
  
                  VIM REFERENCE MANUAL    by Bram Moolenaar
***************
*** 20,30 ****
--- 20,36 ----
  Vim can be tested after building it, usually with "make test".
  The tests are located in the directory "src/testdir".
  
+ There are two types of tests added over time:
+       test20.in               oldest, only for tiny and small builds
+       test_something.vim      new style tests
+ 
                                                *new-style-testing*
  New tests should be added as new style tests.  The test scripts are named
  test_<feature>.vim (replace <feature> with the feature under test). These use
  functions such as |assert_equal()| to keep the test commands and the expected
  result in one place.
+                                               *old-style-testing*
+ These tests are used only for testing Vim without the |+eval| feature.
  
  Find more information in the file src/testdir/README.txt.
  
***************
*** 100,106 ****
  
  
  test_null_function()                                  *test_null_function()*
!               Return a |FuncRef| that is null. Only useful for testing.
  
  
  test_null_job()                                               
*test_null_job()*
--- 106,112 ----
  
  
  test_null_function()                                  *test_null_function()*
!               Return a |Funcref| that is null. Only useful for testing.
  
  
  test_null_job()                                               
*test_null_job()*
***************
*** 257,263 ****
  <             Will result in a string to be added to |v:errors|:
        test.vim line 12: Expected 'foo' but got 'bar' ~
  
!               Can also be used as a |method|: >
                        mylist->assert_equal([1, 2, 3])
  
  <                                                     *assert_equalfile()*
--- 263,270 ----
  <             Will result in a string to be added to |v:errors|:
        test.vim line 12: Expected 'foo' but got 'bar' ~
  
!               Can also be used as a |method|, the base is passed as the
!               second argument: >
                        mylist->assert_equal([1, 2, 3])
  
  <                                                     *assert_equalfile()*
*** ../vim-8.2.1438/src/Make_mvc.mak    2020-08-11 20:42:15.462616344 +0200
--- src/Make_mvc.mak    2020-08-13 18:21:29.519663425 +0200
***************
*** 1464,1475 ****
  
  test:
        cd testdir
!       $(MAKE) /NOLOGO -f Make_dos.mak win32
        cd ..
  
  testgvim:
        cd testdir
!       $(MAKE) /NOLOGO -f Make_dos.mak VIMPROG=..\gvim win32
        cd ..
  
  testclean:
--- 1464,1485 ----
  
  test:
        cd testdir
!       $(MAKE) /NOLOGO -f Make_dos.mak
        cd ..
  
  testgvim:
        cd testdir
!       $(MAKE) /NOLOGO -f Make_dos.mak VIMPROG=..\gvim
!       cd ..
! 
! testtiny:
!       cd testdir
!       $(MAKE) /NOLOGO -f Make_dos.mak tiny
!       cd ..
! 
! testgvimtiny:
!       cd testdir
!       $(MAKE) /NOLOGO -f Make_dos.mak tiny VIMPROG=..\gvim
        cd ..
  
  testclean:
***************
*** 1477,1485 ****
        $(MAKE) /NOLOGO -f Make_dos.mak clean
        cd ..
  
! # Run test1 to bootstrap tests
  # These do not depend on the executable, compile it when needed.
! $(SCRIPTS_FIRST:.out=):
        cd testdir
        - if exist [email protected] del [email protected]
        $(MAKE) /NOLOGO -f Make_dos.mak VIMPROG=..\$(VIMTESTTARGET) nolog
--- 1487,1495 ----
        $(MAKE) /NOLOGO -f Make_dos.mak clean
        cd ..
  
! # Run individual OLD style test.
  # These do not depend on the executable, compile it when needed.
! $(SCRIPTS_TINY):
        cd testdir
        - if exist [email protected] del [email protected]
        $(MAKE) /NOLOGO -f Make_dos.mak VIMPROG=..\$(VIMTESTTARGET) nolog
*** ../vim-8.2.1438/src/Makefile        2020-08-11 21:58:12.577968264 +0200
--- src/Makefile        2020-08-13 18:21:29.519663425 +0200
***************
*** 2258,2263 ****
--- 2258,2266 ----
  testgui:
        cd testdir; $(MAKE) -f Makefile $(GUI_TESTTARGET) 
VIMPROG=../$(VIMTARGET) GUI_FLAG=-g $(GUI_TESTARG) 
SCRIPTSOURCE=../$(SCRIPTSOURCE)
  
+ testtiny:
+       cd testdir; $(MAKE) -f Makefile tiny VIMPROG=../$(VIMTARGET) 
SCRIPTSOURCE=../$(SCRIPTSOURCE)
+ 
  benchmark:
        cd testdir; $(MAKE) -f Makefile benchmark VIMPROG=../$(VIMTARGET) 
SCRIPTSOURCE=../$(SCRIPTSOURCE)
  
***************
*** 2291,2299 ****
                        CC="$(CC)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)"; \
        fi
  
! # Run test1, used to bootstrap tests.
! # This does not depend on the executable, compile first it when needed.
! test1:
        cd testdir; rm -f [email protected]; $(MAKE) -f Makefile [email protected] 
VIMPROG=../$(VIMTESTTARGET) $(GUI_TESTARG) SCRIPTSOURCE=../$(SCRIPTSOURCE)
  
  # Run individual NEW style test.
--- 2294,2302 ----
                        CC="$(CC)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)"; \
        fi
  
! # Run individual OLD style test.
! # These do not depend on the executable, compile it when needed.
! $(SCRIPTS_TINY):
        cd testdir; rm -f [email protected]; $(MAKE) -f Makefile [email protected] 
VIMPROG=../$(VIMTESTTARGET) $(GUI_TESTARG) SCRIPTSOURCE=../$(SCRIPTSOURCE)
  
  # Run individual NEW style test.
*** ../vim-8.2.1438/src/testdir/Make_all.mak    2020-08-11 20:42:15.466616325 
+0200
--- src/testdir/Make_all.mak    2020-08-13 18:42:13.115478643 +0200
***************
*** 7,14 ****
  NO_PLUGINS = --noplugin --not-a-term
  NO_INITS = -U NONE $(NO_PLUGINS)
  
! # The first script creates small.vim.
! SCRIPTS_FIRST = test1.out
  
  # Tests for Vim9 script.
  TEST_VIM9 = \
--- 7,32 ----
  NO_PLUGINS = --noplugin --not-a-term
  NO_INITS = -U NONE $(NO_PLUGINS)
  
! # Tests for tiny and small builds.
! SCRIPTS_TINY = \
!       test20 \
!       test21 \
!       test22 \
!       test23 \
!       test24 \
!       test25 \
!       test26 \
!       test27
! 
! SCRIPTS_TINY_OUT = \
!       test20.out \
!       test21.out \
!       test22.out \
!       test23.out \
!       test24.out \
!       test25.out \
!       test26.out \
!       test27.out
  
  # Tests for Vim9 script.
  TEST_VIM9 = \
***************
*** 25,30 ****
--- 43,51 ----
        test_vim9_func.res \
        test_vim9_script.res
  
+ # Benchmark scripts.
+ SCRIPTS_BENCH = test_bench_regexp.res
+ 
  # Individual tests, including the ones part of test_alot.
  # Please keep sorted up to test_alot.
  NEW_TESTS = \
*** ../vim-8.2.1438/src/testdir/Make_amiga.mak  2020-08-11 20:42:15.466616325 
+0200
--- src/testdir/Make_amiga.mak  2020-08-13 18:21:29.519663425 +0200
***************
*** 9,17 ****
  
  include Make_all.mak
  
  .SUFFIXES: .in .out .res .vim
  
! nongui:       /tmp $(SCRIPTS_FIRST)
        csh -c echo ALL DONE
  
  clean:
--- 9,19 ----
  
  include Make_all.mak
  
+ SCRIPTS = $(SCRIPTS_TINY_OUT)
+ 
  .SUFFIXES: .in .out .res .vim
  
! nongui:       /tmp $(SCRIPTS)
        csh -c echo ALL DONE
  
  clean:
*** ../vim-8.2.1438/src/testdir/Make_dos.mak    2020-08-11 20:42:15.466616325 
+0200
--- src/testdir/Make_dos.mak    2020-08-13 18:21:29.519663425 +0200
***************
*** 9,64 ****
  
  !include Make_all.mak
  
! TEST_OUTFILES = $(SCRIPTS_FIRST)
  DOSTMP = dostmp
  DOSTMP_OUTFILES = $(TEST_OUTFILES:test=dostmp\test)
  DOSTMP_INFILES = $(DOSTMP_OUTFILES:.out=.in)
  
  .SUFFIXES: .in .out .res .vim
  
! nongui:       nolog $(SCRIPTS_FIRST) newtests report
  
! small:        nolog report
  
! gui:  nolog $(SCRIPTS_FIRST) newtests report
  
! win32:        nolog $(SCRIPTS_FIRST) newtests report
! 
! # Copy the input files to dostmp, changing the fileformat to dos.
! $(DOSTMP_INFILES): $(*B).in
!       if not exist $(DOSTMP)\NUL md $(DOSTMP)
!       if exist $@ del $@
!       $(VIMPROG) -u dos.vim $(NO_INITS) "+set ff=dos|f $@|wq" $(*B).in
! 
! # For each input file dostmp/test99.in run the tests.
! # This moves test99.in to test99.in.bak temporarily.
! $(TEST_OUTFILES): $(DOSTMP)\$(*B).in
!       -@if exist test.out DEL test.out
!       -@if exist $(DOSTMP)\$(*B).out DEL $(DOSTMP)\$(*B).out
!       move $(*B).in $(*B).in.bak > nul
!       copy $(DOSTMP)\$(*B).in $(*B).in > nul
!       copy $(*B).ok test.ok > nul
!       $(VIMPROG) -u dos.vim $(NO_INITS) -s dotest.in $(*B).in
!       -@if exist test.out MOVE /y test.out $(DOSTMP)\$(*B).out > nul
!       -@if exist $(*B).in.bak move /y $(*B).in.bak $(*B).in > nul
!       -@if exist test.ok del test.ok
!       -@if exist Xdir1 rd /s /q Xdir1
!       -@if exist Xfind rd /s /q Xfind
!       -@if exist XfakeHOME rd /s /q XfakeHOME
!       -@del X*
!       -@if exist viminfo del viminfo
!       $(VIMPROG) -u dos.vim $(NO_INITS) "+set ff=unix|f test.out|wq" \
!               $(DOSTMP)\$(*B).out
!       @diff test.out $*.ok & if errorlevel 1 \
!               ( move /y test.out $*.failed > nul \
!                & del $(DOSTMP)\$(*B).out \
!                & echo $* FAILED >> test.log ) \
!               else ( move /y test.out $*.out > nul )
! 
! # Must run test1 first to create small.vim.
! # This rule must come after the one that copies the input files to dostmp to
! # allow for running an individual test.
! $(SCRIPTS) $(SCRIPTS_GUI) $(SCRIPTS_WIN32) $(NEW_TESTS_RES): $(SCRIPTS_FIRST)
  
  report:
        @rem without the +eval feature test_result.log is a copy of test.log
--- 9,31 ----
  
  !include Make_all.mak
  
! # Explicit dependencies.
! test_options.res test_alot.res: opt_test.vim
! 
! TEST_OUTFILES = $(SCRIPTS_TINY_OUT)
  DOSTMP = dostmp
  DOSTMP_OUTFILES = $(TEST_OUTFILES:test=dostmp\test)
  DOSTMP_INFILES = $(DOSTMP_OUTFILES:.out=.in)
  
  .SUFFIXES: .in .out .res .vim
  
! nongui:       nolog tinytests newtests report
  
! gui:  nolog tinytests newtests report
  
! tiny: nolog tinytests report
  
! benchmark: $(SCRIPTS_BENCH)
  
  report:
        @rem without the +eval feature test_result.log is a copy of test.log
***************
*** 71,80 ****
        @if exist test.log ( echo TEST FAILURE & exit /b 1 ) \
                else ( echo ALL DONE )
  
  clean:
!       -del *.out
!       -del *.failed
!       -del *.res
        -if exist $(DOSTMP) rd /s /q $(DOSTMP)
        -if exist test.in del test.in
        -if exist test.ok del test.ok
--- 38,61 ----
        @if exist test.log ( echo TEST FAILURE & exit /b 1 ) \
                else ( echo ALL DONE )
  
+ 
+ # Execute an individual new style test, e.g.:
+ #     nmake -f Make_dos.mak test_largefile
+ $(NEW_TESTS):
+       -if exist [email protected] del [email protected]
+       -if exist test.log del test.log
+       -if exist messages del messages
+       @$(MAKE) -nologo -f Make_dos.mak [email protected] VIMPROG=$(VIMPROG)
+       @type messages
+       @if exist test.log exit 1
+ 
+ 
+ # Delete files that may interfere with running tests.  This includes some 
files
+ # that may result from working on the tests, not only from running them.
  clean:
!       -if exist *.out $(DEL) *.out
!       -if exist *.failed $(DEL) *.failed
!       -if exist *.res $(DEL) *.res
        -if exist $(DOSTMP) rd /s /q $(DOSTMP)
        -if exist test.in del test.in
        -if exist test.ok del test.ok
***************
*** 85,92 ****
        -if exist Xdir1 rd /s /q Xdir1
        -if exist Xfind rd /s /q Xfind
        -if exist XfakeHOME rd /s /q XfakeHOME
!       -del X*
!       -for /d %i in (X*) do @rmdir /s/q %i
        -if exist viminfo del viminfo
        -if exist test.log del test.log
        -if exist test_result.log del test_result.log
--- 66,73 ----
        -if exist Xdir1 rd /s /q Xdir1
        -if exist Xfind rd /s /q Xfind
        -if exist XfakeHOME rd /s /q XfakeHOME
!       -if exist X* $(DEL) X*
!       -for /d %i in (X*) do @rd /s/q %i
        -if exist viminfo del viminfo
        -if exist test.log del test.log
        -if exist test_result.log del test_result.log
***************
*** 99,112 ****
        -if exist test_result.log del test_result.log
        -if exist messages del messages
  
- benchmark: test_bench_regexp.res
  
! test_bench_regexp.res: test_bench_regexp.vim
!       -if exist benchmark.out del benchmark.out
!       @echo $(VIMPROG) > vimcmd
!       $(VIMPROG) -u NONE $(NO_INITS) -S runtest.vim $*.vim
!       @del vimcmd
!       @IF EXIST benchmark.out ( type benchmark.out )
  
  # New style of tests uses Vim script with assert calls.  These are easier
  # to write and a lot easier to read and debug.
--- 80,120 ----
        -if exist test_result.log del test_result.log
        -if exist messages del messages
  
  
! # Tiny tests.  Works even without the +eval feature.
! tinytests: $(SCRIPTS_TINY_OUT)
! 
! # Copy the input files to dostmp, changing the fileformat to dos.
! $(DOSTMP_INFILES): $(*B).in
!       if not exist $(DOSTMP)\NUL md $(DOSTMP)
!       if exist $@ del $@
!       $(VIMPROG) -u dos.vim $(NO_INITS) "+set ff=dos|f $@|wq" $(*B).in
! 
! # For each input file dostmp/test99.in run the tests.
! # This moves test99.in to test99.in.bak temporarily.
! $(TEST_OUTFILES): $(DOSTMP)\$(*B).in
!       -@if exist test.out DEL test.out
!       -@if exist $(DOSTMP)\$(*B).out DEL $(DOSTMP)\$(*B).out
!       move $(*B).in $(*B).in.bak > nul
!       copy $(DOSTMP)\$(*B).in $(*B).in > nul
!       copy $(*B).ok test.ok > nul
!       $(VIMPROG) -u dos.vim $(NO_INITS) -s dotest.in $(*B).in
!       -@if exist test.out MOVE /y test.out $(DOSTMP)\$(*B).out > nul
!       -@if exist $(*B).in.bak move /y $(*B).in.bak $(*B).in > nul
!       -@if exist test.ok del test.ok
!       -@if exist Xdir1 rd /s /q Xdir1
!       -@if exist Xfind rd /s /q Xfind
!       -@if exist XfakeHOME rd /s /q XfakeHOME
!       -@del X*
!       -@if exist viminfo del viminfo
!       $(VIMPROG) -u dos.vim $(NO_INITS) "+set ff=unix|f test.out|wq" \
!               $(DOSTMP)\$(*B).out
!       @diff test.out $*.ok & if errorlevel 1 \
!               ( move /y test.out $*.failed > nul \
!                & del $(DOSTMP)\$(*B).out \
!                & echo $* FAILED >> test.log ) \
!               else ( move /y test.out $*.out > nul )
! 
  
  # New style of tests uses Vim script with assert calls.  These are easier
  # to write and a lot easier to read and debug.
***************
*** 132,138 ****
        $(VIMPROG) -u gui_preinit.vim -U gui_init.vim $(NO_PLUGINS) -S 
runtest.vim $*.vim
        @del vimcmd
  
- test_options.res test_alot.res: opt_test.vim
- 
  opt_test.vim: ../optiondefs.h gen_opt_test.vim
        $(VIMPROG) -u NONE -S gen_opt_test.vim --noplugin --not-a-term 
../optiondefs.h
--- 140,151 ----
        $(VIMPROG) -u gui_preinit.vim -U gui_init.vim $(NO_PLUGINS) -S 
runtest.vim $*.vim
        @del vimcmd
  
  opt_test.vim: ../optiondefs.h gen_opt_test.vim
        $(VIMPROG) -u NONE -S gen_opt_test.vim --noplugin --not-a-term 
../optiondefs.h
+ 
+ test_bench_regexp.res: test_bench_regexp.vim
+       -if exist benchmark.out del benchmark.out
+       @echo $(VIMPROG) > vimcmd
+       $(VIMPROG) -u NONE $(NO_INITS) -S runtest.vim $*.vim
+       @del vimcmd
+       @IF EXIST benchmark.out ( type benchmark.out )
*** ../vim-8.2.1438/src/testdir/Make_ming.mak   2020-08-11 20:42:15.466616325 
+0200
--- src/testdir/Make_ming.mak   2020-08-13 18:21:29.519663425 +0200
***************
*** 6,67 ****
  #
  # Requires a set of Unix tools: echo, diff, etc.
  
! ifneq (sh.exe, $(SHELL))
! DEL = rm -f
! DELDIR = rm -rf
! MV = mv
! CP = cp
! CAT = cat
! DIRSLASH = /
! else
  DEL = del
  DELDIR = rd /s /q
! MV = rename
! CP = copy
  CAT = type
- DIRSLASH = \\
- endif
  
! VIMPROG = ..$(DIRSLASH)vim
  
! default: vimall
  
  include Make_all.mak
  
! SCRIPTS_BENCH = test_bench_regexp.res
  
! # Must run test1 first to create small.vim.
! $(NEW_TESTS_RES): $(SCRIPTS_FIRST)
  
  .SUFFIXES: .in .out .res .vim
  
! vimall:       fixff $(SCRIPTS_FIRST) newtests
!       @echo ALL DONE
  
! nongui:       fixff nolog $(SCRIPTS_FIRST) newtests
!       @echo ALL DONE
! 
! benchmark: $(SCRIPTS_BENCH)
  
! small: nolog
!       @echo ALL DONE
  
! gui:  fixff nolog $(SCRIPTS_FIRST) newtests
!       @echo ALL DONE
  
! win32:        fixff nolog $(SCRIPTS_FIRST) newtests
!       @echo ALL DONE
  
- # TODO: find a way to avoid changing the distributed files.
- fixff:
-       -$(VIMPROG) -u dos.vim $(NO_INITS) "+argdo set ff=dos|upd" +q *.in *.ok
-       -$(VIMPROG) -u dos.vim $(NO_INITS) "+argdo set ff=unix|upd" +q \
-               dotest.in
  
  clean:
        -@if exist *.out $(DEL) *.out
        -@if exist *.failed $(DEL) *.failed
        -@if exist *.res $(DEL) *.res
        -@if exist test.in $(DEL) test.in
        -@if exist test.ok $(DEL) test.ok
        -@if exist small.vim $(DEL) small.vim
--- 6,74 ----
  #
  # Requires a set of Unix tools: echo, diff, etc.
  
! # Don't use unix-like shell.
! SHELL = cmd.exe
! 
  DEL = del
  DELDIR = rd /s /q
! MV = move /y
! CP = copy /y
  CAT = type
  
! VIMPROG = ..\\vim
  
! default: nongui
  
  include Make_all.mak
  
! # Explicit dependencies.
! test_options.res test_alot.res: opt_test.vim
  
! TEST_OUTFILES = $(SCRIPTS_TINY_OUT)
! DOSTMP = dostmp
! # Keep $(DOSTMP)/*.in
! .PRECIOUS: $(patsubst %.out, $(DOSTMP)/%.in, $(TEST_OUTFILES))
  
  .SUFFIXES: .in .out .res .vim
  
! nongui:       nolog tinytests newtests report
  
! gui:  nolog tinytests newtests report
  
! tiny: nolog tinytests report
  
! benchmark: $(SCRIPTS_BENCH)
  
! report:
!       @rem without the +eval feature test_result.log is a copy of test.log
!       @if exist test.log ( copy /y test.log test_result.log > nul ) \
!               else ( echo No failures reported > test_result.log )
!       $(VIMPROG) -u NONE $(NO_INITS) -S summarize.vim messages
!       @echo.
!       @echo Test results:
!       @cmd /c type test_result.log
!       @if exist test.log ( echo TEST FAILURE & exit /b 1 ) \
!               else ( echo ALL DONE )
! 
! 
! # Execute an individual new style test, e.g.:
! #     mingw32-make -f Make_ming.mak test_largefile
! $(NEW_TESTS):
!       -if exist [email protected] del [email protected]
!       -if exist test.log del test.log
!       -if exist messages del messages
!       @$(MAKE) -f Make_ming.mak [email protected] VIMPROG=$(VIMPROG) --no-print-directory
!       @type messages
!       @if exist test.log exit 1
  
  
+ # Delete files that may interfere with running tests.  This includes some 
files
+ # that may result from working on the tests, not only from running them.
  clean:
        -@if exist *.out $(DEL) *.out
        -@if exist *.failed $(DEL) *.failed
        -@if exist *.res $(DEL) *.res
+       -@if exist $(DOSTMP) rd /s /q $(DOSTMP)
        -@if exist test.in $(DEL) test.in
        -@if exist test.ok $(DEL) test.ok
        -@if exist small.vim $(DEL) small.vim
***************
*** 72,107 ****
        -@if exist Xfind $(DELDIR) Xfind
        -@if exist XfakeHOME $(DELDIR) XfakeHOME
        -@if exist X* $(DEL) X*
        -@if exist viminfo $(DEL) viminfo
        -@if exist test.log $(DEL) test.log
        -@if exist messages $(DEL) messages
        -@if exist opt_test.vim $(DEL) opt_test.vim
  
- test1.out: test1.in
-       -@if exist wrongtermsize  $(DEL) wrongtermsize
-       $(VIMPROG) -u dos.vim $(NO_INITS) -s dotest.in test1.in
-       -@if exist wrongtermsize  ( \
-           echo Vim window too small- must be 80x25 or larger && exit 1 \
-           )
-       -@if exist test.out $(DEL) test.out
-       -@if exist viminfo  $(DEL) viminfo
- 
  nolog:
        -@if exist test.log $(DEL) test.log
        -@if exist messages $(DEL) messages
  
! test_bench_regexp.res: test_bench_regexp.vim
!       -$(DEL) benchmark.out
!       @echo $(VIMPROG) > vimcmd
!       $(VIMPROG) -u NONE $(NO_INITS) -S runtest.vim $*.vim
!       @$(DEL) vimcmd
!       $(CAT) benchmark.out
  
  # New style of tests uses Vim script with assert calls.  These are easier
  # to write and a lot easier to read and debug.
  # Limitation: Only works with the +eval feature.
  
! newtests: $(NEW_TESTS_RES)
  
  .vim.res:
        @echo $(VIMPROG) > vimcmd
--- 79,141 ----
        -@if exist Xfind $(DELDIR) Xfind
        -@if exist XfakeHOME $(DELDIR) XfakeHOME
        -@if exist X* $(DEL) X*
+       -@for /d %%i in (X*) do @rd /s/q %%i
        -@if exist viminfo $(DEL) viminfo
        -@if exist test.log $(DEL) test.log
+       -@if exist test_result.log del test_result.log
        -@if exist messages $(DEL) messages
+       -@if exist benchmark.out del benchmark.out
        -@if exist opt_test.vim $(DEL) opt_test.vim
  
  nolog:
        -@if exist test.log $(DEL) test.log
+       -@if exist test_result.log del test_result.log
        -@if exist messages $(DEL) messages
  
! 
! # Tiny tests.  Works even without the +eval feature.
! tinytests: $(SCRIPTS_TINY_OUT)
! 
! # Copy the input files to dostmp, changing the fileformat to dos.
! $(DOSTMP)/%.in : %.in
!       if not exist $(DOSTMP)\nul mkdir $(DOSTMP)
!       if not exist $@ $(DEL) $@
!       $(VIMPROG) -u dos.vim $(NO_INITS) "+set ff=dos|f $@|wq" $<
! 
! # For each input file dostmp/test99.in run the tests.
! # This moves test99.in to test99.in.bak temporarily.
! %.out : $(DOSTMP)/%.in
!       -@if exist test.out $(DEL) test.out
!       -@if exist $(DOSTMP)\$@ $(DEL) $(DOSTMP)\$@
!       $(MV) $(notdir $<) $(notdir $<).bak > NUL
!       $(CP) $(DOSTMP)\$(notdir $<) $(notdir $<) > NUL
!       $(CP) $(basename $@).ok test.ok > NUL
!       $(VIMPROG) -u dos.vim $(NO_INITS) -s dotest.in $(notdir $<)
!       -@if exist test.out $(MV) test.out $(DOSTMP)\$@ > NUL
!       -@if exist $(notdir $<).bak $(MV) $(notdir $<).bak $(notdir $<) > NUL
!       -@if exist test.ok $(DEL) test.ok
!       -@if exist Xdir1 $(DELDIR) /s /q Xdir1
!       -@if exist Xfind $(DELDIR) Xfind
!       -@if exist XfakeHOME $(DELDIR) XfakeHOME
!       -@del X*
!       -@if exist viminfo del viminfo
!       $(VIMPROG) -u dos.vim $(NO_INITS) "+set ff=unix|f test.out|wq" \
!               $(DOSTMP)\$@
!       @diff test.out $(basename $@).ok & if errorlevel 1 \
!               ( $(MV) test.out $(basename $@).failed > NUL \
!                & del $(DOSTMP)\$@ \
!                & echo $(basename $@) FAILED >> test.log ) \
!               else ( $(MV) test.out $(basename $@).out > NUL )
! 
  
  # New style of tests uses Vim script with assert calls.  These are easier
  # to write and a lot easier to read and debug.
  # Limitation: Only works with the +eval feature.
  
! newtests: newtestssilent
!       @if exist messages (findstr "SKIPPED FAILED" messages > nul) && type 
messages
! 
! newtestssilent: $(NEW_TESTS_RES)
  
  .vim.res:
        @echo $(VIMPROG) > vimcmd
***************
*** 118,124 ****
        $(VIMPROG) -u gui_preinit.vim -U gui_init.vim $(NO_PLUGINS) -S 
runtest.vim $<
        @$(DEL) vimcmd
  
- test_options.res test_alot.res: opt_test.vim
- 
  opt_test.vim: ../optiondefs.h gen_opt_test.vim
        $(VIMPROG) -u NONE -S gen_opt_test.vim --noplugin --not-a-term 
../optiondefs.h
--- 152,163 ----
        $(VIMPROG) -u gui_preinit.vim -U gui_init.vim $(NO_PLUGINS) -S 
runtest.vim $<
        @$(DEL) vimcmd
  
  opt_test.vim: ../optiondefs.h gen_opt_test.vim
        $(VIMPROG) -u NONE -S gen_opt_test.vim --noplugin --not-a-term 
../optiondefs.h
+ 
+ test_bench_regexp.res: test_bench_regexp.vim
+       -$(DEL) benchmark.out
+       @echo $(VIMPROG) > vimcmd
+       $(VIMPROG) -u NONE $(NO_INITS) -S runtest.vim $*.vim
+       @$(DEL) vimcmd
+       $(CAT) benchmark.out
*** ../vim-8.2.1438/src/testdir/Make_vms.mms    2020-08-11 20:42:15.466616325 
+0200
--- src/testdir/Make_vms.mms    2020-08-13 18:54:12.450743616 +0200
***************
*** 4,10 ****
  # Authors:    Zoltan Arpadffy, <[email protected]>
  #             Sandor Kopanyi,  <[email protected]>
  #
! # Last change:  2020 Jul 03
  #
  # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
  # Edit the lines in the Configuration section below to select.
--- 4,10 ----
  # Authors:    Zoltan Arpadffy, <[email protected]>
  #             Sandor Kopanyi,  <[email protected]>
  #
! # Last change:  2020 Aug 13
  #
  # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
  # Edit the lines in the Configuration section below to select.
***************
*** 37,43 ****
  
  .SUFFIXES : .out .in
  
! SCRIPT = test1.out test77a.out
  
  .IFDEF WANT_GUI
  GUI_OPTION = -g
--- 37,45 ----
  
  .SUFFIXES : .out .in
  
! SCRIPT = test20.out test21.out test22.out test23.out test24.out \
!        test25.out test26.out test27.out \
!        test77a.out
  
  .IFDEF WANT_GUI
  GUI_OPTION = -g
*** ../vim-8.2.1438/src/testdir/Makefile        2020-08-11 20:42:15.466616325 
+0200
--- src/testdir/Makefile        2020-08-13 18:21:29.519663425 +0200
***************
*** 12,18 ****
  # Comment out this line to see the verbose output of tests.
  #
  # Catches SwapExists to avoid hanging at the ATTENTION prompt.
! REDIR_TEST_TO_NULL = --cmd 'au SwapExists * let v:swapchoice = "e"' > 
/dev/null
  
  # Uncomment this line to use valgrind for memory leaks and extra warnings.
  #   The output goes into a file "valgrind.testN"
--- 12,18 ----
  # Comment out this line to see the verbose output of tests.
  #
  # Catches SwapExists to avoid hanging at the ATTENTION prompt.
! #REDIR_TEST_TO_NULL = --cmd 'au SwapExists * let v:swapchoice = "e"' > 
/dev/null
  
  # Uncomment this line to use valgrind for memory leaks and extra warnings.
  #   The output goes into a file "valgrind.testN"
***************
*** 23,41 ****
  default: nongui
  
  # The list of tests is common to all systems.
! # This defines SCRIPTS_FIRST, NEW_TESTS and NEW_TESTS_RES
  include Make_all.mak
  
  # Explicit dependencies.
  test_options.res test_alot.res: opt_test.vim
  
- SCRIPTS_BENCH = test_bench_regexp.res
- 
  .SUFFIXES: .in .out .res .vim
  
! nongui:       nolog $(SCRIPTS_FIRST) newtests report
  
! gui:  nolog $(SCRIPTS_FIRST) newtests report
  
  benchmark: $(SCRIPTS_BENCH)
  
--- 23,41 ----
  default: nongui
  
  # The list of tests is common to all systems.
! # This defines SCRIPTS_TINY_OUT, NEW_TESTS and NEW_TESTS_RES.
  include Make_all.mak
  
  # Explicit dependencies.
  test_options.res test_alot.res: opt_test.vim
  
  .SUFFIXES: .in .out .res .vim
  
! nongui:       nolog tinytests newtests report
! 
! gui:  nolog tinytests newtests report
  
! tiny: nolog tinytests report
  
  benchmark: $(SCRIPTS_BENCH)
  
***************
*** 54,63 ****
                else echo ALL DONE; \
                fi"
  
! $(SCRIPTS_FIRST) $(NEW_TESTS_RES): $(VIMPROG)
! 
! # Must run test1 first to create small.vim.
! $(NEW_TESTS_RES): $(SCRIPTS_FIRST)
  
  
  # Execute an individual new style test, e.g.:
--- 54,60 ----
                else echo ALL DONE; \
                fi"
  
! $(SCRIPTS_TINY_OUT) $(NEW_TESTS_RES): $(VIMPROG)
  
  
  # Execute an individual new style test, e.g.:
***************
*** 81,87 ****
        fi
  
  RM_ON_RUN = test.out X* viminfo
! RM_ON_START = tiny.vim small.vim mbyte.vim mzscheme.vim test.ok benchmark.out
  RUN_VIM = VIMRUNTIME=$(SCRIPTSOURCE) $(VALGRIND) $(VIMPROG) -f $(GUI_FLAG) -u 
unix.vim $(NO_INITS) -s dotest.in
  
  # Delete files that may interfere with running tests.  This includes some 
files
--- 78,84 ----
        fi
  
  RM_ON_RUN = test.out X* viminfo
! RM_ON_START = test.ok benchmark.out
  RUN_VIM = VIMRUNTIME=$(SCRIPTSOURCE) $(VALGRIND) $(VIMPROG) -f $(GUI_FLAG) -u 
unix.vim $(NO_INITS) -s dotest.in
  
  # Delete files that may interfere with running tests.  This includes some 
files
***************
*** 93,114 ****
        -rm -f valgrind.*
        -rm -f asan.*
  
! test1.out: test1.in
!       -rm -rf $*.failed $(RM_ON_RUN) $(RM_ON_START) wrongtermsize
        $(RUN_VIM) $*.in $(REDIR_TEST_TO_NULL)
-       @/bin/sh -c "if test -f wrongtermsize; \
-               then echo; \
-               echo test1 FAILED - terminal size must be 80x24 or larger; \
-               echo; exit 1; \
-               elif diff test.out $*.ok; \
-               then mv -f test.out $*.out; \
-               else echo; \
-               echo test1 FAILED - Something basic is wrong; \
-               echo; exit 1; fi"
-       -rm -rf X* viminfo
  
! nolog:
!       -rm -f test.log messages
  
  
  # New style of tests uses Vim script with assert calls.  These are easier
--- 90,123 ----
        -rm -f valgrind.*
        -rm -f asan.*
  
! nolog:
!       -rm -f test.log test_result.log messages
! 
! 
! # Tiny tests.  Works even without the +eval feature.
! tinytests: $(SCRIPTS_TINY_OUT)
! 
! .in.out:
!       -rm -rf $*.failed test.ok $(RM_ON_RUN)
!       cp $*.ok test.ok
!       @# Sleep a moment to avoid that the xterm title is messed up.
!       @# 200 msec is sufficient, but only modern sleep supports a fraction of
!       @# a second, fall back to a second if it fails.
!       @-/bin/sh -c "sleep .2 > /dev/null 2>&1 || sleep 1"
        $(RUN_VIM) $*.in $(REDIR_TEST_TO_NULL)
  
!       @# Check if the test.out file matches test.ok.
!       @/bin/sh -c "if test -f test.out; then \
!                 if diff test.out $*.ok; \
!                 then mv -f test.out $*.out; \
!                 else echo $* FAILED >>test.log; mv -f test.out $*.failed; \
!                 fi \
!               else echo $* NO OUTPUT >>test.log; \
!               fi"
!       @/bin/sh -c "if test -f valgrind; then\
!                 mv -f valgrind valgrind.$*; \
!               fi"
!       -rm -rf X* test.ok viminfo
  
  
  # New style of tests uses Vim script with assert calls.  These are easier
***************
*** 148,156 ****
  
  test_bench_regexp.res: test_bench_regexp.vim
        -rm -rf benchmark.out $(RM_ON_RUN)
!       # Sleep a moment to avoid that the xterm title is messed up.
!       # 200 msec is sufficient, but only modern sleep supports a fraction of
!       # a second, fall back to a second if it fails.
        @-/bin/sh -c "sleep .2 > /dev/null 2>&1 || sleep 1"
        $(RUN_VIMTEST) $(NO_INITS) -S runtest.vim $*.vim $(REDIR_TEST_TO_NULL)
        @/bin/sh -c "if test -f benchmark.out; then cat benchmark.out; fi"
--- 157,165 ----
  
  test_bench_regexp.res: test_bench_regexp.vim
        -rm -rf benchmark.out $(RM_ON_RUN)
!       @# Sleep a moment to avoid that the xterm title is messed up.
!       @# 200 msec is sufficient, but only modern sleep supports a fraction of
!       @# a second, fall back to a second if it fails.
        @-/bin/sh -c "sleep .2 > /dev/null 2>&1 || sleep 1"
        $(RUN_VIMTEST) $(NO_INITS) -S runtest.vim $*.vim $(REDIR_TEST_TO_NULL)
        @/bin/sh -c "if test -f benchmark.out; then cat benchmark.out; fi"
*** ../vim-8.2.1438/src/testdir/runtest.vim     2020-08-07 18:12:14.426099006 
+0200
--- src/testdir/runtest.vim     2020-08-13 18:21:29.519663425 +0200
***************
*** 46,52 ****
  
  
  " Without the +eval feature we can't run these tests, bail out.
! so small.vim
  
  " In the GUI we can always change the screen size.
  if has('gui_running')
--- 46,54 ----
  
  
  " Without the +eval feature we can't run these tests, bail out.
! silent! while 0
!   qa!
! silent! endwhile
  
  " In the GUI we can always change the screen size.
  if has('gui_running')
*** ../vim-8.2.1438/src/testdir/test1.in        2018-07-14 21:45:54.000000000 
+0200
--- src/testdir/test1.in        1970-01-01 01:00:00.000000000 +0100
***************
*** 1,52 ****
- 
- First a simple test to check if the test script works.
- 
- If Vim was not compiled with the +eval feature, the small.vim script will be
- set to copy the test.ok file to test.out, so that it looks like the test
- succeeded.  Otherwise an empty small.vim is written.  small.vim is sourced by
- tests that require the +eval feature or other features that are missing in the
- small version.
- 
- If Vim was not compiled with the +windows feature, the tiny.vim script will be
- set like small.vim above.  tiny.vim is sourced by tests that require the
- +windows feature or other features that are missing in the tiny version.
- 
- If Vim was not compiled with the +multi_byte feature, the mbyte.vim script 
will
- be set like small.vim above.  mbyte.vim is sourced by tests that require the
- +multi_byte feature.
- Similar logic is applied to the +mzscheme feature, using mzscheme.vim.
- 
- STARTTEST
- :" If columns or lines are too small, create wrongtermsize.
- :" (Some tests will fail. When columns and/or lines are small)
- :if &lines < 24 || &columns < 80 | sp another | w! wrongtermsize | qa! | endif
- :"
- :" Write a single line to test.out to check if testing works at all.
- :%d
- athis is a test :w! test.out
- :" Create small.vim and tiny.vim empty, create mbyte.vim to skip the test.
- 0D:w! small.vim
- :w! tiny.vim
- ae! test.ok
- w! test.out
- qa!
-  :w! mbyte.vim
- :w! mzscheme.vim
- :"
- :" If +multi_byte feature supported, make mbyte.vim empty.
- :if has("multi_byte") | sp another | w! mbyte.vim | q | endif
- :"
- :" If +mzscheme feature supported, make mzscheme.vim empty.
- :if has("mzscheme") | sp another | w! mzscheme.vim | q | endif
- :"
- :" If +eval feature supported quit here, leaving tiny.vim and small.vim empty.
- :" Otherwise write small.vim to skip the test.
- :if 1 | q! | endif
- :w! small.vim
- :" If +windows feature not supported :sp will fail and tiny.vim will be
- :" written to skip the test.
- :sp another
- :wq! tiny.vim
- :qa!
- ENDTEST
- 
--- 0 ----
*** ../vim-8.2.1438/src/testdir/test1.ok        2010-05-15 13:04:10.000000000 
+0200
--- src/testdir/test1.ok        1970-01-01 01:00:00.000000000 +0100
***************
*** 1 ****
- this is a test
--- 0 ----
*** ../vim-8.2.1438/src/testdir/test20.in       2020-08-13 18:57:19.558307121 
+0200
--- src/testdir/test20.in       2020-08-13 18:21:29.519663425 +0200
***************
*** 0 ****
--- 1,27 ----
+ Tests Blockwise Visual when there are TABs before the text.
+ First test for undo working properly when executing commands from a register.
+ Also test this in an empty buffer.
+ 
+ STARTTEST
+ G0"ay$k@au
+ :new
+ @auY:quit!
+ GP
+ /start here$
+ "by$ jjlld
+ /456$
+  jj"bP
+ :/56$/,$-1w! test.out
+ :qa!
+ ENDTEST
+ 
+ 123456
+ 234567
+ 345678
+ 
+ test text test tex start here
+               some text
+               test text
+ test text
+ 
+ Ox jAy kdd
*** ../vim-8.2.1438/src/testdir/test20.ok       2020-08-13 18:57:19.562307113 
+0200
--- src/testdir/test20.ok       2020-08-13 18:21:29.519663425 +0200
***************
*** 0 ****
--- 1,10 ----
+ 123start here56
+ 234start here67
+ 345start here78
+ 
+ test text test tex rt here
+               somext
+               tesext
+ test text
+ 
+ 
*** ../vim-8.2.1438/src/testdir/test21.in       2020-08-13 18:57:19.566307101 
+0200
--- src/testdir/test21.in       2020-08-13 18:21:29.519663425 +0200
***************
*** 0 ****
--- 1,13 ----
+ Tests for file with some lines ending in CTRL-M, some not
+ 
+ STARTTEST
+ :set ta tx
+ :e!
+ :$-3,$w! test.out
+ :qa!
+ ENDTEST
+ 
+ this lines ends in a
+ this one doesn't
+ this one does
+ and the last one doesn't
*** ../vim-8.2.1438/src/testdir/test21.ok       2020-08-13 18:57:19.570307094 
+0200
--- src/testdir/test21.ok       2020-08-13 18:21:29.519663425 +0200
***************
*** 0 ****
--- 1,4 ----
+ this lines ends in a
+ this one doesn't
+ this one does
+ and the last one doesn't
*** ../vim-8.2.1438/src/testdir/test22.in       2020-08-13 18:57:19.574307083 
+0200
--- src/testdir/test22.in       2020-08-13 18:21:29.519663425 +0200
***************
*** 0 ****
--- 1,15 ----
+ Tests for complicated + argument to :edit command
+ 
+ STARTTEST
+ :$-1w! Xfile1
+ :$w! Xfile2
+ :edit +1|s/|/PIPE/|w Xfile1| e Xfile2|1 | s/\//SLASH/|w
+ :w! test.out
+ :e Xfile1
+ :w >> test.out
+ :qa!
+ ENDTEST
+ 
+ The result should be in Xfile1: "fooPIPEbar", in Xfile2: "fooSLASHbar"
+ foo|bar
+ foo/bar
*** ../vim-8.2.1438/src/testdir/test22.ok       2020-08-13 18:57:19.578307071 
+0200
--- src/testdir/test22.ok       2020-08-13 18:21:29.519663425 +0200
***************
*** 0 ****
--- 1,2 ----
+ fooSLASHbar
+ fooPIPEbar
*** ../vim-8.2.1438/src/testdir/test23.in       2020-08-13 18:57:19.582307063 
+0200
--- src/testdir/test23.in       2020-08-13 18:33:00.768851156 +0200
***************
*** 0 ****
--- 1,89 ----
+ Tests for regexp with backslash and other special characters inside []
+ Also test backslash for hex/octal numbered character.
+ 
+ STARTTEST
+ :set nocompatible viminfo+=nviminfo
+ /[\x]
+ x/[\t\]]
+ x/[]y]
+ x/[\]]
+ x/[y^]
+ x/[$y]
+ x/[\x61]
+ x/[\x60-\x64]
+ xj0/[\x785]
+ x/[\o143]
+ x/[\o140-\o144]
+ x/[\o417]
+ x/\%x42
+ x/\%o103
+ x/[\x00]
+ x
+ :s/[\x00-\x10]//g
+ 
+ :s/[\x-z]\+//
+ 
+ :s/[\u-z]\{2,}//
+ 
+ :s/\(a\)\+//
+ 
+ :s/\(a*\)\+//
+ 
+ :s/\(a*\)*//
+ 
+ :s/\(a\)\{2,3}/A/
+ 
+ :s/\(a\)\{-2,3}/A/
+ 
+ :s/\(a\)*\(12\)\@>/A/
+ 
+ :s/\(foo\)\@<!bar/A/
+ 
+ :s/\(an\_s\+\)\@<=file/A/
+ 
+ :s/^\(\h\w*\%(->\|\.\)\=\)\+=/XX/
+ 
+ :s/^\(\h\w*\%(->\|\.\)\=\)\+=/YY/
+ 
+ :s/aaa/xyz/
+ 
+ :s/~/bcd/
+ 
+ :s/~\+/BB/
+ :"
+ :?start?,$w! test.out
+ :qa!
+ ENDTEST
+ 
+ start
+ test \text test text
+ test  text test text
+ test text ]test text
+ test ]text test text
+ test text te^st text
+ test te$xt test text
+ test taext test text  x61
+ test tbext test text  x60-x64
+ test 5text test text  x78 5
+ testc text test text  o143
+ tesdt text test text  o140-o144
+ test7 text test text  o41 7
+ test text tBest text  \%x42
+ test text teCst text  \%o103
+ test text //g
+ p:s/\%#=1\D//g
+ p:s/\%#=2\D//g
+ p:s/\%#=0[^0-9]//g
+ p:s/\%#=1[^0-9]//g
+ p:s/\%#=2[^0-9]//g
+ p:s/\%#=0\o//g
+ p:s/\%#=1\o//g
+ p:s/\%#=2\o//g
+ p:s/\%#=0[0-7]//g
+ p:s/\%#=1[0-7]//g
+ p:s/\%#=2[0-7]//g
+ p:s/\%#=0\O//g
+ p:s/\%#=1\O//g
+ p:s/\%#=2\O//g
+ p:s/\%#=0[^0-7]//g
+ p:s/\%#=1[^0-7]//g
+ p:s/\%#=2[^0-7]//g
+ p:s/\%#=0\x//g
+ p:s/\%#=1\x//g
+ p:s/\%#=2\x//g
+ p:s/\%#=0[0-9A-Fa-f]//g
+ p:s/\%#=1[0-9A-Fa-f]//g
+ p:s/\%#=2[0-9A-Fa-f]//g
+ p:s/\%#=0\X//g
+ p:s/\%#=1\X//g
+ p:s/\%#=2\X//g
+ p:s/\%#=0[^0-9A-Fa-f]//g
+ p:s/\%#=1[^0-9A-Fa-f]//g
+ p:s/\%#=2[^0-9A-Fa-f]//g
+ p:s/\%#=0\w//g
+ p:s/\%#=1\w//g
+ p:s/\%#=2\w//g
+ p:s/\%#=0[0-9A-Za-z_]//g
+ p:s/\%#=1[0-9A-Za-z_]//g
+ p:s/\%#=2[0-9A-Za-z_]//g
+ p:s/\%#=0\W//g
+ p:s/\%#=1\W//g
+ p:s/\%#=2\W//g
+ p:s/\%#=0[^0-9A-Za-z_]//g
+ p:s/\%#=1[^0-9A-Za-z_]//g
+ p:s/\%#=2[^0-9A-Za-z_]//g
+ p:s/\%#=0\h//g
+ p:s/\%#=1\h//g
+ p:s/\%#=2\h//g
+ p:s/\%#=0[A-Za-z_]//g
+ p:s/\%#=1[A-Za-z_]//g
+ p:s/\%#=2[A-Za-z_]//g
+ p:s/\%#=0\H//g
+ p:s/\%#=1\H//g
+ p:s/\%#=2\H//g
+ p:s/\%#=0[^A-Za-z_]//g
+ p:s/\%#=1[^A-Za-z_]//g
+ p:s/\%#=2[^A-Za-z_]//g
+ p:s/\%#=0\a//g
+ p:s/\%#=1\a//g
+ p:s/\%#=2\a//g
+ p:s/\%#=0[A-Za-z]//g
+ p:s/\%#=1[A-Za-z]//g
+ p:s/\%#=2[A-Za-z]//g
+ p:s/\%#=0\A//g
+ p:s/\%#=1\A//g
+ p:s/\%#=2\A//g
+ p:s/\%#=0[^A-Za-z]//g
+ p:s/\%#=1[^A-Za-z]//g
+ p:s/\%#=2[^A-Za-z]//g
+ p:s/\%#=0\l//g
+ p:s/\%#=1\l//g
+ p:s/\%#=2\l//g
+ p:s/\%#=0[a-z]//g
+ p:s/\%#=1[a-z]//g
+ p:s/\%#=2[a-z]//g
+ p:s/\%#=0\L//g
+ p:s/\%#=1\L//g
+ p:s/\%#=2\L//g
+ p:s/\%#=0[^a-z]//g
+ p:s/\%#=1[^a-z]//g
+ p:s/\%#=2[^a-z]//g
+ p:s/\%#=0\u//g
+ p:s/\%#=1\u//g
+ p:s/\%#=2\u//g
+ p:s/\%#=0[A-Z]//g
+ p:s/\%#=1[A-Z]//g
+ p:s/\%#=2[A-Z]//g
+ p:s/\%#=0\U//g
+ p:s/\%#=1\U//g
+ p:s/\%#=2\U//g
+ p:s/\%#=0[^A-Z]//g
+ p:s/\%#=1[^A-Z]//g
+ p:s/\%#=2[^A-Z]//g
+ p:s/\%#=0\%204l^\t...//g
+ p:s/\%#=1\%205l^\t...//g
+ p:s/\%#=2\%206l^\t...//g
+ :/^start-here/+1,$wq! test.out
+ ENDTEST
+ 
+ start-here
+       
 !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~ €‚ ›¦±¼ÇÓé
*** ../vim-8.2.1438/src/testdir/test25.ok       2020-08-13 18:57:19.602307014 
+0200
--- src/testdir/test25.ok       2020-08-13 18:21:29.519663425 +0200
***************
*** 0 ****
--- 1,99 ----
+       
 !"#$%&'()#+'-./:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~ €‚ ›¦±¼ÇÓé
+       
 !"#$%&'()#+'-./:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~ €‚ ›¦±¼ÇÓé
+       
 !"#$%&'()#+'-./:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~ €‚ ›¦±¼ÇÓé
+       
 !"#$%&'()#+'-./:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~ €‚ ›¦±¼ÇÓé
+       
 !"#$%&'()#+'-./:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~ €‚ ›¦±¼ÇÓé
+       
 !"#$%&'()#+'-./:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~ €‚ ›¦±¼ÇÓé
+ 0123456789
+ 0123456789
+ 0123456789
+ 0123456789
+ 0123456789
+ 0123456789
+       
 !"#$%&'()#+'-./89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~ €‚ ›¦±¼ÇÓé
+       
 !"#$%&'()#+'-./89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~ €‚ ›¦±¼ÇÓé
+       
 !"#$%&'()#+'-./89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~ €‚ ›¦±¼ÇÓé
+       
 !"#$%&'()#+'-./89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~ €‚ ›¦±¼ÇÓé
+       
 !"#$%&'()#+'-./89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~ €‚ ›¦±¼ÇÓé
+       
 !"#$%&'()#+'-./89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~ €‚ ›¦±¼ÇÓé
+ 01234567
+ 01234567
+ 01234567
+ 01234567
+ 01234567
+ 01234567
+       
 !"#$%&'()#+'-./:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~ €‚ ›¦±¼ÇÓé
+       
 !"#$%&'()#+'-./:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~ €‚ ›¦±¼ÇÓé
+       
 !"#$%&'()#+'-./:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~ €‚ ›¦±¼ÇÓé
+       
 !"#$%&'()#+'-./:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~ €‚ ›¦±¼ÇÓé
+       
 !"#$%&'()#+'-./:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~ €‚ ›¦±¼ÇÓé
+       
 !"#$%&'()#+'-./:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~ €‚ ›¦±¼ÇÓé
+ 0123456789ABCDEFabcdef
+ 0123456789ABCDEFabcdef
+ 0123456789ABCDEFabcdef
+ 0123456789ABCDEFabcdef
+ 0123456789ABCDEFabcdef
+ 0123456789ABCDEFabcdef
+       
 !"#$%&'()#+'-./:;<=>?@[\]^`{|}~ €‚ ›¦±¼ÇÓé
+       
 !"#$%&'()#+'-./:;<=>?@[\]^`{|}~ €‚ ›¦±¼ÇÓé
+       
 !"#$%&'()#+'-./:;<=>?@[\]^`{|}~ €‚ ›¦±¼ÇÓé
+       
 !"#$%&'()#+'-./:;<=>?@[\]^`{|}~ €‚ ›¦±¼ÇÓé
+       
 !"#$%&'()#+'-./:;<=>?@[\]^`{|}~ €‚ ›¦±¼ÇÓé
+       
 !"#$%&'()#+'-./:;<=>?@[\]^`{|}~ €‚ ›¦±¼ÇÓé
+ 0123456789ABCDEFGHIXYZ_abcdefghiwxyz
+ 0123456789ABCDEFGHIXYZ_abcdefghiwxyz
+ 0123456789ABCDEFGHIXYZ_abcdefghiwxyz
+ 0123456789ABCDEFGHIXYZ_abcdefghiwxyz
+ 0123456789ABCDEFGHIXYZ_abcdefghiwxyz
+ 0123456789ABCDEFGHIXYZ_abcdefghiwxyz
+       
 !"#$%&'()#+'-./0123456789:;<=>?@[\]^`{|}~ €‚ ›¦±¼ÇÓé
+       
 !"#$%&'()#+'-./0123456789:;<=>?@[\]^`{|}~ €‚ ›¦±¼ÇÓé
+       
 !"#$%&'()#+'-./0123456789:;<=>?@[\]^`{|}~ €‚ ›¦±¼ÇÓé
+       
 !"#$%&'()#+'-./0123456789:;<=>?@[\]^`{|}~ €‚ ›¦±¼ÇÓé
+       
 !"#$%&'()#+'-./0123456789:;<=>?@[\]^`{|}~ €‚ ›¦±¼ÇÓé
+       
 !"#$%&'()#+'-./0123456789:;<=>?@[\]^`{|}~ €‚ ›¦±¼ÇÓé
+ ABCDEFGHIXYZ_abcdefghiwxyz
+ ABCDEFGHIXYZ_abcdefghiwxyz
+ ABCDEFGHIXYZ_abcdefghiwxyz
+ ABCDEFGHIXYZ_abcdefghiwxyz
+ ABCDEFGHIXYZ_abcdefghiwxyz
+ ABCDEFGHIXYZ_abcdefghiwxyz
+       
 !"#$%&'()#+'-./0123456789:;<=>?@[\]^_`{|}~ €‚ ›¦±¼ÇÓé
+       
 !"#$%&'()#+'-./0123456789:;<=>?@[\]^_`{|}~ €‚ ›¦±¼ÇÓé
+       
 !"#$%&'()#+'-./0123456789:;<=>?@[\]^_`{|}~ €‚ ›¦±¼ÇÓé
+       
 !"#$%&'()#+'-./0123456789:;<=>?@[\]^_`{|}~ €‚ ›¦±¼ÇÓé
+       
 !"#$%&'()#+'-./0123456789:;<=>?@[\]^_`{|}~ €‚ ›¦±¼ÇÓé
+       
 !"#$%&'()#+'-./0123456789:;<=>?@[\]^_`{|}~ €‚ ›¦±¼ÇÓé
+ ABCDEFGHIXYZabcdefghiwxyz
+ ABCDEFGHIXYZabcdefghiwxyz
+ ABCDEFGHIXYZabcdefghiwxyz
+ ABCDEFGHIXYZabcdefghiwxyz
+ ABCDEFGHIXYZabcdefghiwxyz
+ ABCDEFGHIXYZabcdefghiwxyz
+       
 !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`{|}~ €‚ ›¦±¼ÇÓé
+       
 !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`{|}~ €‚ ›¦±¼ÇÓé
+       
 !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`{|}~ €‚ ›¦±¼ÇÓé
+       
 !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`{|}~ €‚ ›¦±¼ÇÓé
+       
 !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`{|}~ €‚ ›¦±¼ÇÓé
+       
 !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`{|}~ €‚ ›¦±¼ÇÓé
+ abcdefghiwxyz
+ abcdefghiwxyz
+ abcdefghiwxyz
+ abcdefghiwxyz
+ abcdefghiwxyz
+ abcdefghiwxyz
+       
 !"#$%&'()#+'-./0123456789:;<=>?@[\]^_`abcdefghiwxyz{|}~ €‚ ›¦±¼ÇÓé
+       
 !"#$%&'()#+'-./0123456789:;<=>?@[\]^_`abcdefghiwxyz{|}~ €‚ ›¦±¼ÇÓé
+       
 !"#$%&'()#+'-./0123456789:;<=>?@[\]^_`abcdefghiwxyz{|}~ €‚ ›¦±¼ÇÓé
+       
 !"#$%&'()#+'-./0123456789:;<=>?@[\]^_`abcdefghiwxyz{|}~ €‚ ›¦±¼ÇÓé
+       
 !"#$%&'()#+'-./0123456789:;<=>?@[\]^_`abcdefghiwxyz{|}~ €‚ ›¦±¼ÇÓé
+       
 !"#$%&'()#+'-./0123456789:;<=>?@[\]^_`abcdefghiwxyz{|}~ €‚ ›¦±¼ÇÓé
+ ABCDEFGHIXYZ
+ ABCDEFGHIXYZ
+ ABCDEFGHIXYZ
+ ABCDEFGHIXYZ
+ ABCDEFGHIXYZ
+ ABCDEFGHIXYZ
+ !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~ €‚ ›¦±¼ÇÓé
+ !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~ €‚ ›¦±¼ÇÓé
+ !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~ €‚ ›¦±¼ÇÓé
*** ../vim-8.2.1438/src/testdir/test26.in       2020-08-13 18:57:19.606307002 
+0200
--- src/testdir/test26.in       2020-08-13 18:21:29.519663425 +0200
***************
*** 0 ****
--- 1,24 ----
+ Test for writing and reading a file of over 100 Kbyte
+ 
+ 1 line: "This is the start"
+ 3001 lines: "This is the leader"
+ 1 line: "This is the middle"
+ 3001 lines: "This is the trailer"
+ 1 line: "This is the end"
+ 
+ STARTTEST
+ :%d
+ aThis is the start
+ This is the leader
+ This is the middle
+ This is the trailer
+ This is the end kY3000p2GY3000p
+ :w! Xtest
+ :%d
+ :e! Xtest
+ :.w! test.out
+ 3003G:.w >>test.out
+ 6005G:.w >>test.out
+ :qa!
+ ENDTEST
+ 
*** ../vim-8.2.1438/src/testdir/test26.ok       2020-08-13 18:57:19.610306994 
+0200
--- src/testdir/test26.ok       2020-08-13 18:21:29.519663425 +0200
***************
*** 0 ****
--- 1,3 ----
+ This is the start
+ This is the middle
+ This is the end
*** ../vim-8.2.1438/src/testdir/test27.in       2020-08-13 18:57:19.614306982 
+0200
--- src/testdir/test27.in       2020-08-13 18:29:37.141687384 +0200
***************
*** 0 ****
--- 1,130 ----
+ Test for writing and reading a file starting with a BOM
+ 
+ STARTTEST
+ :so mbyte.vim
+ :set encoding=utf-8
+ :set fileencodings=ucs-bom,latin-1
+ :set ff=unix ffs=unix           " This changes the file for DOS and MAC
+ :" --- Write the test files
+ :/^latin-1$/+1w! Xtest0
+ :/^utf-8$/+1w! Xtest1
+ :/^utf-8-err$/+1w! Xtest2
+ :/^ucs-2$/+1w! Xtest3
+ :/^ucs-2le$/+1w! Xtest4
+ :" Need to add a NUL byte after the NL byte
+ :set bin
+ :e! Xtest4                      " Ignore change from setting 'ff'
+ o 

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/202008131700.07DH0Xn8378725%40masaka.moolenaar.net.

Raspunde prin e-mail lui