Patch 8.2.2150
Problem:    Github actions CI isn't used for all available platforms.
Solution:   Update the github workflows. (Ozaki Kiichi, closes #7433)
Files:      .coveralls.yml, .github/workflows/ci-windows.yaml,
            .github/workflows/ci.yml, .travis.yml, README.md,
            ci/build-snd-dummy.sh, ci/setup-xvfb.sh


*** ../vim-8.2.2149/.coveralls.yml      2020-12-17 20:26:22.089984039 +0100
--- .coveralls.yml      2020-12-17 20:23:48.398512703 +0100
***************
*** 0 ****
--- 1 ----
+ service_name: github-actions
*** ../vim-8.2.2149/.github/workflows/ci-windows.yaml   2020-11-25 
12:43:24.136768912 +0100
--- .github/workflows/ci-windows.yaml   1970-01-01 01:00:00.000000000 +0100
***************
*** 1,230 ****
- name: GitHub CI
- 
- on:
-   push:
-     branches:
-       - '**'
-   pull_request:
- 
- env:
-   VCVARSALL: C:\Program Files (x86)\Microsoft Visual 
Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat
- 
-   # Interfaces
-   # Lua
-   LUA_VER: 54
-   LUA_VER_DOT: '5.4'
-   LUA_RELEASE: 5.4.0
-   LUA32_URL: 
https://downloads.sourceforge.net/luabinaries/lua-%LUA_RELEASE%_Win32_dllw6_lib.zip
-   LUA64_URL: 
https://downloads.sourceforge.net/luabinaries/lua-%LUA_RELEASE%_Win64_dllw6_lib.zip
-   LUA_DIR: D:\Lua
-   # Python 2
-   PYTHON_VER: 27
-   PYTHON_VER_DOT: '2.7'
-   # Python 3
-   PYTHON3_VER: 38
-   PYTHON3_VER_DOT: '3.8'
- 
-   # Other dependencies
-   # winpty
-   WINPTY_URL: 
https://github.com/rprichard/winpty/releases/download/0.4.3/winpty-0.4.3-msvc2015.zip
- 
-   # Escape sequences
-   COL_RED: "\x1b[31m"
-   COL_GREEN: "\x1b[32m"
-   COL_YELLOW: "\x1b[33m"
-   COL_RESET: "\x1b[m"
- 
- jobs:
-   build:
-     runs-on: windows-latest
- 
-     strategy:
-       fail-fast: false
-       matrix:
-         toolchain: [msvc, mingw]
-         arch: [x64, x86]
-         features: [HUGE, NORMAL]
-         include:
-           - arch: x64
-             vcarch: amd64
-             warch: x64
-             bits: 64
-             msystem: MINGW64
-             cygreg: registry
-             pyreg: ""
-           - arch: x86
-             vcarch: x86
-             warch: ia32
-             bits: 32
-             msystem: MINGW32
-             cygreg: registry32
-             pyreg: "-32"
-         exclude:
-           - toolchain: msvc
-             arch: x64
-             features: NORMAL
-           - toolchain: mingw
-             arch: x86
-             features: NORMAL
- 
-     steps:
-     - name: Initalize
-       id: init
-       shell: bash
-       run: |
-         git config --global core.autocrlf input
-         python_dir=$(cat "/proc/${{ matrix.cygreg 
}}/HKEY_LOCAL_MACHINE/SOFTWARE/Python/PythonCore/${PYTHON_VER_DOT}/InstallPath/@")
-         python3_dir=$(cat "/proc/${{ matrix.cygreg 
}}/HKEY_LOCAL_MACHINE/SOFTWARE/Python/PythonCore/${PYTHON3_VER_DOT}${{ 
matrix.pyreg }}/InstallPath/@")
-         echo "PYTHON_DIR=$python_dir" >> $GITHUB_ENV
-         echo "PYTHON3_DIR=$python3_dir" >> $GITHUB_ENV
- 
-     - uses: msys2/setup-msys2@v2
-       if: matrix.toolchain == 'mingw'
-       with:
-         msystem: ${{ matrix.msystem }}
-         release: false
- 
-     - uses: actions/checkout@v2
- 
-     - name: Create a list of download URLs
-       shell: cmd
-       run: |
-         type NUL > urls.txt
-         echo %LUA_RELEASE%>> urls.txt
-         echo %WINPTY_URL%>> urls.txt
- 
-     - name: Cache downloaded files
-       uses: actions/cache@v2
-       with:
-         path: downloads
-         key: ${{ runner.os }}-${{ matrix.bits }}-${{ hashFiles('urls.txt') }}
- 
-     - name: Download dependencies
-       shell: cmd
-       run: |
-         path C:\Program Files\7-Zip;%path%
-         if not exist downloads mkdir downloads
- 
-         echo %COL_GREEN%Download Lua%COL_RESET%
-         call :downloadfile %LUA${{ matrix.bits }}_URL% downloads\lua.zip
-         7z x downloads\lua.zip -o%LUA_DIR% > nul || exit 1
- 
-         echo %COL_GREEN%Download winpty%COL_RESET%
-         call :downloadfile %WINPTY_URL% downloads\winpty.zip
-         7z x -y downloads\winpty.zip -oD:\winpty > nul || exit 1
-         copy /Y D:\winpty\${{ matrix.warch }}\bin\winpty.dll        
src\winpty${{ matrix.bits }}.dll
-         copy /Y D:\winpty\${{ matrix.warch }}\bin\winpty-agent.exe  src\
- 
-         goto :eof
- 
-         :downloadfile
-         :: call :downloadfile <URL> <localfile>
-         if not exist %2 (
-           curl -f -L %1 -o %2
-         )
-         if ERRORLEVEL 1 (
-           rem Retry once.
-           curl -f -L %1 -o %2 || exit 1
-         )
-         goto :eof
- 
-     - name: Copy src directory to src2
-       shell: cmd
-       run: |
-         xcopy src src2\ /E > nul
- 
-     - name: Build (MSVC)
-       if: matrix.toolchain == 'msvc'
-       shell: cmd
-       run: |
-         call "%VCVARSALL%" ${{ matrix.vcarch }}
-         cd src
-         :: Filter out the progress bar from the build log
-         sed -e "s/@<<$/@<< | sed -e 's#.*\\\\r.*##'/" Make_mvc.mak > 
Make_mvc2.mak
-         if "${{ matrix.features }}"=="HUGE" (
-           nmake -nologo -f Make_mvc2.mak ^
-             FEATURES=${{ matrix.features }} ^
-             GUI=yes IME=yes ICONV=yes VIMDLL=yes ^
-             DYNAMIC_LUA=yes LUA=%LUA_DIR% ^
-             DYNAMIC_PYTHON=yes PYTHON=%PYTHON_DIR% ^
-             DYNAMIC_PYTHON3=yes PYTHON3=%PYTHON3_DIR%
-         ) else (
-           nmake -nologo -f Make_mvc2.mak ^
-             FEATURES=${{ matrix.features }} ^
-             GUI=yes IME=yes ICONV=yes VIMDLL=yes
-         )
-         if not exist vim${{ matrix.bits }}.dll (
-           echo %COL_RED%Build failure.%COL_RESET%
-           exit 1
-         )
- 
-     - name: Build (MinGW)
-       if: matrix.toolchain == 'mingw'
-       shell: msys2 {0}
-       run: |
-         cd src
-         if [ "${{ matrix.features }}" = "HUGE" ]; then
-           mingw32-make -f Make_ming.mak -j2 \
-             FEATURES=${{ matrix.features }} \
-             GUI=yes IME=yes ICONV=yes VIMDLL=yes \
-             DYNAMIC_LUA=yes LUA=${LUA_DIR} \
-             DYNAMIC_PYTHON=yes PYTHON=${PYTHON_DIR} \
-             DYNAMIC_PYTHON3=yes PYTHON3=${PYTHON3_DIR} \
-             STATIC_STDCPLUS=yes
-         else
-           mingw32-make -f Make_ming.mak -j2 \
-             FEATURES=${{ matrix.features }} \
-             GUI=yes IME=yes ICONV=yes VIMDLL=yes \
-             STATIC_STDCPLUS=yes
-         fi
- 
- #    - name: Prepare Artifact
- #      shell: cmd
- #      run: |
- #        mkdir artifacts
- #        copy src\*vim.exe artifacts
- #        copy src\vim*.dll artifacts
- #
- #    - name: Upload Artifact
- #      uses: actions/upload-artifact@v1
- #      with:
- #        name: vim${{ matrix.bits }}-${{ matrix.toolchain }}
- #        path: ./artifacts
- 
-     - name: Test
-       shell: cmd
-       timeout-minutes: 20
-       run: |
-         PATH %LUA_DIR%;C:\msys64\${{ matrix.msystem 
}}\bin;%PATH%;%PYTHON3_DIR%
-         call "%VCVARSALL%" ${{ matrix.vcarch }}
-         cd src
-         echo.
-         echo %COL_GREEN%vim version:%COL_RESET%
-         .\vim --version || exit 1
- 
-         echo %COL_GREEN%Start testing vim in background.%COL_RESET%
-         start cmd /c "cd ..\src2\testdir & nmake -nologo -f Make_dos.mak 
VIMPROG=..\..\src\vim > nul & echo done>done.txt"
- 
-         echo %COL_GREEN%Test gvim:%COL_RESET%
-         cd testdir
-         nmake -nologo -f Make_dos.mak VIMPROG=..\gvim || exit 1
-         cd ..
- 
-         echo %COL_GREEN%Wait for vim tests to finish.%COL_RESET%
-         cd ..\src2\testdir
-         :: Wait about 10 minutes.
-         for /L %%i in (1,1,60) do (
-           if exist done.txt goto exitloop
-           timeout 10 > NUL 2>&1
-           if ERRORLEVEL 1 ping -n 11 localhost > NUL
-         )
-         set timeout=1
-         :exitloop
- 
-         echo %COL_GREEN%Test results of vim:%COL_RESET%
-         if exist messages type messages
-         nmake -nologo -f Make_dos.mak report VIMPROG=..\..\src\vim || exit 1
-         if "%timeout%"=="1" (
-           echo %COL_RED%Timed out.%COL_RESET%
-           exit 1
-         )
--- 0 ----
*** ../vim-8.2.2149/.github/workflows/ci.yml    2020-12-17 20:26:22.097984011 
+0100
--- .github/workflows/ci.yml    2020-12-17 20:23:48.398512703 +0100
***************
*** 0 ****
--- 1,519 ----
+ name: GitHub CI
+ 
+ on: [push, pull_request]
+ 
+ jobs:
+   linux:
+     runs-on: ubuntu-latest
+ 
+     env:
+       CC: ${{ matrix.compiler }}
+       TEST: test
+       SRCDIR: ./src
+       LEAK_CFLAGS: -DEXITFREE
+       LOG_DIR: ${{ github.workspace }}/logs
+       TERM: xterm
+       DISPLAY: ':99'
+ 
+     strategy:
+       fail-fast: false
+       matrix:
+         features: [tiny, small, normal, huge]
+         compiler: [clang, gcc]
+         extra: [none]
+         include:
+           - features: tiny
+             compiler: clang
+             extra: nogui
+           - features: tiny
+             compiler: gcc
+             extra: nogui
+           - features: normal
+             shadow: ./src/shadow
+           - features: huge
+             coverage: true
+           - features: huge
+             compiler: gcc
+             coverage: true
+             extra: testgui
+           - features: huge
+             compiler: clang
+             extra: asan
+           - features: huge
+             compiler: gcc
+             coverage: true
+             extra: unittests
+           - features: normal
+             compiler: gcc
+             extra: vimtags
+ 
+     steps:
+       - uses: actions/checkout@v2
+ 
+       - name: Install packages
+         env:
+           DEBIAN_FRONTEND: noninteractive
+         run: |
+           sudo apt-get install -y \
+             autoconf \
+             lcov \
+             gettext \
+             libcanberra-dev \
+             libperl-dev \
+             python-dev \
+             python3-dev \
+             liblua5.3-dev \
+             lua5.3 \
+             ruby-dev \
+             tcl-dev \
+             cscope \
+             libgtk2.0-dev \
+             desktop-file-utils \
+             libtool-bin
+           if [[ ${CC} = clang ]]; then
+             wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo 
apt-key add -
+             sudo add-apt-repository -y "deb http://apt.llvm.org/bionic/ 
llvm-toolchain-bionic-11 main"
+             sudo apt-get install -y clang-11
+             sudo update-alternatives --install /usr/bin/clang clang 
/usr/bin/clang-11 100
+             sudo update-alternatives --set clang /usr/bin/clang-11
+             sudo update-alternatives --install /usr/bin/llvm-cov llvm-cov 
/usr/bin/llvm-cov-11 100
+           fi
+ 
+       - name: Set up environment
+         run: |
+           mkdir -p "${LOG_DIR}"
+           mkdir -p "${HOME}/bin"
+           echo "${HOME}/bin" >> $GITHUB_PATH
+           (
+           echo "LINUX_VERSION=$(uname -r)"
+           echo "NPROC=$(getconf _NPROCESSORS_ONLN)"
+           echo "SND_DUMMY_DIR=${HOME}/snd-dummy"
+           echo "TMPDIR=${{ runner.temp }}"
+ 
+           case "${{ matrix.features }}" in
+           tiny|small)
+             echo "TEST=testtiny"
+             if ${{ contains(matrix.extra, 'nogui') }}; then
+               echo "CONFOPT=--disable-gui"
+             fi
+             ;;
+           normal)
+             ;;
+           huge)
+             echo "TEST=scripttests test_libvterm"
+             echo "CONFOPT=--enable-perlinterp --enable-pythoninterp 
--enable-python3interp --enable-rubyinterp --enable-luainterp 
--enable-tclinterp"
+             ;;
+           esac
+ 
+           if ${{ matrix.coverage == true }}; then
+             echo "CFLAGS=--coverage -DUSE_GCOV_FLUSH"
+             echo "LDFLAGS=--coverage"
+           fi
+           if ${{ contains(matrix.extra, 'testgui') }}; then
+             echo "TEST=-C src testgui"
+           fi
+           if ${{ contains(matrix.extra, 'unittests') }}; then
+             echo "TEST=unittests"
+           fi
+           if ${{ contains(matrix.extra, 'asan') }}; then
+             echo "SANITIZER_CFLAGS=-g -O1 -DABORT_ON_INTERNAL_ERROR 
-DEXITFREE -fsanitize-recover=all -fsanitize=address -fsanitize=undefined 
-fno-omit-frame-pointer"
+             echo "ASAN_OPTIONS=print_stacktrace=1 log_path=${LOG_DIR}/asan"
+             echo "UBSAN_OPTIONS=print_stacktrace=1 log_path=${LOG_DIR}/ubsan"
+             echo 
"LSAN_OPTIONS=suppressions=${GITHUB_WORKSPACE}/src/testdir/lsan-suppress.txt"
+           fi
+           if ${{ contains(matrix.extra, 'vimtags') }}; then
+             echo "TEST=-C runtime/doc vimtags VIMEXE=../../${SRCDIR}/vim"
+           fi
+           ) >> $GITHUB_ENV
+ 
+       - name: Set up system
+         run: |
+           if [[ ${CC} = clang ]]; then
+             # Use llvm-cov instead of gcov when compiler is clang.
+             ln -fs /usr/bin/llvm-cov ${HOME}/bin/gcov
+           fi
+           # Setup lua5.3 manually since its package doesn't provide 
alternative.
+           # https://bugs.launchpad.net/ubuntu/+source/lua5.3/+bug/1707212
+           if [[ ${CONFOPT} =~ luainterp ]]; then
+             sudo update-alternatives --install /usr/bin/lua lua 
/usr/bin/lua5.3 10
+           fi
+           sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=0
+           sudo usermod -a -G audio "${USER}"
+           sudo bash ci/setup-xvfb.sh
+ 
+       - name: Cache snd-dummy
+         uses: actions/cache@v2
+         with:
+           path: ${{ env.SND_DUMMY_DIR }}
+           key: linux-${{ env.LINUX_VERSION }}-snd-dummy
+ 
+       - name: Set up snd-dummy
+         run: |
+           if [[ ! -e ${SND_DUMMY_DIR}/snd-dummy.ko ]]; then
+             bash ci/build-snd-dummy.sh
+           fi
+           cd "${SND_DUMMY_DIR}"
+           sudo insmod soundcore.ko
+           sudo insmod snd.ko
+           sudo insmod snd-pcm.ko
+           sudo insmod snd-dummy.ko
+ 
+       - name: Check autoconf
+         if: contains(matrix.extra, 'unittests')
+         run: |
+           make -C src autoconf
+ 
+       - name: Set up shadow dir
+         if: matrix.shadow
+         run: |
+           make -C src shadow
+           echo "SRCDIR=${{ matrix.shadow }}" >> $GITHUB_ENV
+           echo "SHADOWOPT=-C ${{ matrix.shadow }}" >> $GITHUB_ENV
+ 
+       - name: Configure
+         run: |
+           ./configure --with-features=${{ matrix.features }} ${CONFOPT} 
--enable-fail-if-missing
+           # Append various warning flags to CFLAGS.
+           # BSD sed needs backup extension specified.
+           sed -i.bak -f ci/config.mk.sed ${SRCDIR}/auto/config.mk
+           sed -i.bak -f ci/config.mk.${CC}.sed ${SRCDIR}/auto/config.mk
+ 
+       - name: Build
+         if: (!contains(matrix.extra, 'unittests'))
+         run: |
+           make ${SHADOWOPT} -j${NPROC}
+ 
+       - name: Check version
+         if: (!contains(matrix.extra, 'unittests'))
+         run: |
+           "${SRCDIR}"/vim --version
+           "${SRCDIR}"/vim -u NONE -i NONE --not-a-term -esNX -V1 -S 
ci/if_ver-1.vim -c quit
+           "${SRCDIR}"/vim -u NONE -i NONE --not-a-term -esNX -V1 -S 
ci/if_ver-2.vim -c quit
+ 
+       - name: Test
+         timeout-minutes: 20
+         run: |
+           do_test() { sg audio "sg $(id -gn) '$*'"; }
+           do_test make ${SHADOWOPT} ${TEST}
+ 
+       - name: Coveralls
+         if: matrix.coverage && success()
+         env:
+           COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
+           COVERALLS_PARALLEL: true
+           TRAVIS_JOB_ID: ${{ github.run_id }}
+         run: |
+           sudo apt-get install -y python3-setuptools python3-wheel
+           # needed for https support for coveralls building cffi only works 
with gcc, not with clang
+           CC=gcc pip3 install --user cpp-coveralls pyopenssl ndg-httpsclient 
pyasn1
+           ~/.local/bin/coveralls -b "${SRCDIR}" -x .xs -e 
"${SRCDIR}"/if_perl.c -e "${SRCDIR}"/xxd -e "${SRCDIR}"/libvterm --encodings 
utf-8
+ 
+       - name: Codecov
+         if: matrix.coverage && success()
+         run: |
+           cd "${SRCDIR}" && bash <(curl -s https://codecov.io/bash)
+ 
+       - name: ASan logs
+         if: contains(matrix.extra, 'asan') && !cancelled()
+         run: |
+           for f in $(grep -lR '#[[:digit:]]* *0x[[:digit:]a-fA-F]*' 
"${LOG_DIR}"); do
+             asan_symbolize-11 -l "$f"
+             false # in order to fail a job
+           done
+ 
+   coveralls:
+     runs-on: ubuntu-latest
+ 
+     needs: linux
+     if: always()
+ 
+     steps:
+       - name: Parallel finished
+         env:
+           COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
+         run: |
+           curl -k 
"https://coveralls.io/webhook?repo_token=${COVERALLS_REPO_TOKEN}"; -d 
"payload[build_num]=${GITHUB_RUN_ID}&payload[status]=done"
+ 
+   macos:
+     runs-on: macos-latest
+ 
+     env:
+       CC: ${{ matrix.compiler }}
+       TEST: test
+       SRCDIR: ./src
+       LEAK_CFLAGS: -DEXITFREE
+       TERM: xterm
+ 
+     strategy:
+       fail-fast: false
+       matrix:
+         features: [tiny, huge]
+         compiler: [clang, gcc]
+ 
+     steps:
+       - uses: actions/checkout@v2
+ 
+       - name: Install packages
+         env:
+           HOMEBREW_NO_AUTO_UPDATE: 1
+         run: |
+           brew install lua
+           echo "LUA_PREFIX=/usr/local" >> $GITHUB_ENV
+ 
+       - name: Set up environment
+         run: |
+           (
+           echo "NPROC=$(getconf _NPROCESSORS_ONLN)"
+           case "${{ matrix.features }}" in
+           tiny)
+             echo "TEST=testtiny"
+             echo "CONFOPT=--disable-gui"
+             ;;
+           huge)
+             echo "CONFOPT=--enable-perlinterp --enable-python3interp 
--enable-rubyinterp --enable-luainterp --enable-tclinterp"
+             ;;
+           esac
+           ) >> $GITHUB_ENV
+ 
+       - name: Configure
+         run: |
+           ./configure --with-features=${{ matrix.features }} ${CONFOPT} 
--enable-fail-if-missing
+           # Append various warning flags to CFLAGS.
+           # BSD sed needs backup extension specified.
+           sed -i.bak -f ci/config.mk.sed ${SRCDIR}/auto/config.mk
+           # On macOS, the entity of gcc is clang.
+           sed -i.bak -f ci/config.mk.clang.sed ${SRCDIR}/auto/config.mk
+ 
+       - name: Build
+         run: |
+           make -j${NPROC}
+ 
+       - name: Check version
+         run: |
+           "${SRCDIR}"/vim --version
+           "${SRCDIR}"/vim -u NONE -i NONE --not-a-term -esNX -V1 -S 
ci/if_ver-1.vim -c quit
+           "${SRCDIR}"/vim -u NONE -i NONE --not-a-term -esNX -V1 -S 
ci/if_ver-2.vim -c quit
+ 
+       - name: Test
+         timeout-minutes: 20
+         run: |
+           make ${TEST}
+ 
+   windows:
+     runs-on: windows-latest
+ 
+     env:
+       VCVARSALL: C:\Program Files (x86)\Microsoft Visual 
Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat
+       # Interfaces
+       # Lua
+       LUA_VER: 54
+       LUA_VER_DOT: '5.4'
+       LUA_RELEASE: 5.4.0
+       LUA32_URL: 
https://downloads.sourceforge.net/luabinaries/lua-%LUA_RELEASE%_Win32_dllw6_lib.zip
+       LUA64_URL: 
https://downloads.sourceforge.net/luabinaries/lua-%LUA_RELEASE%_Win64_dllw6_lib.zip
+       LUA_DIR: D:\Lua
+       # Python 2
+       PYTHON_VER: 27
+       PYTHON_VER_DOT: '2.7'
+       # Python 3
+       PYTHON3_VER: 38
+       PYTHON3_VER_DOT: '3.8'
+       # Other dependencies
+       # winpty
+       WINPTY_URL: 
https://github.com/rprichard/winpty/releases/download/0.4.3/winpty-0.4.3-msvc2015.zip
+       # Escape sequences
+       COL_RED: "\x1b[31m"
+       COL_GREEN: "\x1b[32m"
+       COL_YELLOW: "\x1b[33m"
+       COL_RESET: "\x1b[m"
+ 
+     strategy:
+       fail-fast: false
+       matrix:
+         toolchain: [msvc, mingw]
+         arch: [x64, x86]
+         features: [HUGE, NORMAL]
+         include:
+           - arch: x64
+             vcarch: amd64
+             warch: x64
+             bits: 64
+             msystem: MINGW64
+             cygreg: registry
+             pyreg: ""
+           - arch: x86
+             vcarch: x86
+             warch: ia32
+             bits: 32
+             msystem: MINGW32
+             cygreg: registry32
+             pyreg: "-32"
+         exclude:
+           - toolchain: msvc
+             arch: x64
+             features: NORMAL
+           - toolchain: mingw
+             arch: x86
+             features: NORMAL
+ 
+     steps:
+       - name: Initalize
+         id: init
+         shell: bash
+         run: |
+           git config --global core.autocrlf input
+           python_dir=$(cat "/proc/${{ matrix.cygreg 
}}/HKEY_LOCAL_MACHINE/SOFTWARE/Python/PythonCore/${PYTHON_VER_DOT}/InstallPath/@")
+           python3_dir=$(cat "/proc/${{ matrix.cygreg 
}}/HKEY_LOCAL_MACHINE/SOFTWARE/Python/PythonCore/${PYTHON3_VER_DOT}${{ 
matrix.pyreg }}/InstallPath/@")
+           echo "PYTHON_DIR=$python_dir" >> $GITHUB_ENV
+           echo "PYTHON3_DIR=$python3_dir" >> $GITHUB_ENV
+ 
+       - uses: msys2/setup-msys2@v2
+         if: matrix.toolchain == 'mingw'
+         with:
+           msystem: ${{ matrix.msystem }}
+           release: false
+ 
+       - uses: actions/checkout@v2
+ 
+       - name: Create a list of download URLs
+         shell: cmd
+         run: |
+           type NUL > urls.txt
+           echo %LUA_RELEASE%>> urls.txt
+           echo %WINPTY_URL%>> urls.txt
+ 
+       - name: Cache downloaded files
+         uses: actions/cache@v2
+         with:
+           path: downloads
+           key: ${{ runner.os }}-${{ matrix.bits }}-${{ hashFiles('urls.txt') 
}}
+ 
+       - name: Download dependencies
+         shell: cmd
+         run: |
+           path C:\Program Files\7-Zip;%path%
+           if not exist downloads mkdir downloads
+ 
+           echo %COL_GREEN%Download Lua%COL_RESET%
+           call :downloadfile %LUA${{ matrix.bits }}_URL% downloads\lua.zip
+           7z x downloads\lua.zip -o%LUA_DIR% > nul || exit 1
+ 
+           echo %COL_GREEN%Download winpty%COL_RESET%
+           call :downloadfile %WINPTY_URL% downloads\winpty.zip
+           7z x -y downloads\winpty.zip -oD:\winpty > nul || exit 1
+           copy /Y D:\winpty\${{ matrix.warch }}\bin\winpty.dll        
src\winpty${{ matrix.bits }}.dll
+           copy /Y D:\winpty\${{ matrix.warch }}\bin\winpty-agent.exe  src\
+ 
+           goto :eof
+ 
+           :downloadfile
+           :: call :downloadfile <URL> <localfile>
+           if not exist %2 (
+             curl -f -L %1 -o %2
+           )
+           if ERRORLEVEL 1 (
+             rem Retry once.
+             curl -f -L %1 -o %2 || exit 1
+           )
+           goto :eof
+ 
+       - name: Copy src directory to src2
+         shell: cmd
+         run: |
+           xcopy src src2\ /E > nul
+ 
+       - name: Build (MSVC)
+         if: matrix.toolchain == 'msvc'
+         shell: cmd
+         run: |
+           call "%VCVARSALL%" ${{ matrix.vcarch }}
+           cd src
+           :: Filter out the progress bar from the build log
+           sed -e "s/@<<$/@<< | sed -e 's#.*\\\\r.*##'/" Make_mvc.mak > 
Make_mvc2.mak
+           if "${{ matrix.features }}"=="HUGE" (
+             nmake -nologo -f Make_mvc2.mak ^
+               FEATURES=${{ matrix.features }} ^
+               GUI=yes IME=yes ICONV=yes VIMDLL=yes ^
+               DYNAMIC_LUA=yes LUA=%LUA_DIR% ^
+               DYNAMIC_PYTHON=yes PYTHON=%PYTHON_DIR% ^
+               DYNAMIC_PYTHON3=yes PYTHON3=%PYTHON3_DIR%
+           ) else (
+             nmake -nologo -f Make_mvc2.mak ^
+               FEATURES=${{ matrix.features }} ^
+               GUI=yes IME=yes ICONV=yes VIMDLL=yes
+           )
+           if not exist vim${{ matrix.bits }}.dll (
+             echo %COL_RED%Build failure.%COL_RESET%
+             exit 1
+           )
+ 
+       - name: Build (MinGW)
+         if: matrix.toolchain == 'mingw'
+         shell: msys2 {0}
+         run: |
+           cd src
+           if [ "${{ matrix.features }}" = "HUGE" ]; then
+             mingw32-make -f Make_ming.mak -j2 \
+               FEATURES=${{ matrix.features }} \
+               GUI=yes IME=yes ICONV=yes VIMDLL=yes \
+               DYNAMIC_LUA=yes LUA=${LUA_DIR} \
+               DYNAMIC_PYTHON=yes PYTHON=${PYTHON_DIR} \
+               DYNAMIC_PYTHON3=yes PYTHON3=${PYTHON3_DIR} \
+               STATIC_STDCPLUS=yes
+           else
+             mingw32-make -f Make_ming.mak -j2 \
+               FEATURES=${{ matrix.features }} \
+               GUI=yes IME=yes ICONV=yes VIMDLL=yes \
+               STATIC_STDCPLUS=yes
+           fi
+ 
+       #- name: Prepare Artifact
+       #  shell: cmd
+       #  run: |
+       #    mkdir artifacts
+       #    copy src\*vim.exe artifacts
+       #    copy src\vim*.dll artifacts
+       #
+       #- name: Upload Artifact
+       #  uses: actions/upload-artifact@v1
+       #  with:
+       #    name: vim${{ matrix.bits }}-${{ matrix.toolchain }}
+       #    path: ./artifacts
+ 
+       - name: Test
+         shell: cmd
+         timeout-minutes: 20
+         run: |
+           PATH %LUA_DIR%;C:\msys64\${{ matrix.msystem 
}}\bin;%PATH%;%PYTHON3_DIR%
+           call "%VCVARSALL%" ${{ matrix.vcarch }}
+           cd src
+           echo.
+           echo %COL_GREEN%vim version:%COL_RESET%
+           .\vim --version || exit 1
+ 
+           echo %COL_GREEN%Start testing vim in background.%COL_RESET%
+           start cmd /c "cd ..\src2\testdir & nmake -nologo -f Make_dos.mak 
VIMPROG=..\..\src\vim > nul & echo done>done.txt"
+ 
+           echo %COL_GREEN%Test gvim:%COL_RESET%
+           cd testdir
+           nmake -nologo -f Make_dos.mak VIMPROG=..\gvim || exit 1
+           cd ..
+ 
+           echo %COL_GREEN%Wait for vim tests to finish.%COL_RESET%
+           cd ..\src2\testdir
+           :: Wait about 10 minutes.
+           for /L %%i in (1,1,60) do (
+             if exist done.txt goto exitloop
+             timeout 10 > NUL 2>&1
+             if ERRORLEVEL 1 ping -n 11 localhost > NUL
+           )
+           set timeout=1
+           :exitloop
+ 
+           echo %COL_GREEN%Test results of vim:%COL_RESET%
+           if exist messages type messages
+           nmake -nologo -f Make_dos.mak report VIMPROG=..\..\src\vim || exit 1
+           if "%timeout%"=="1" (
+             echo %COL_RED%Timed out.%COL_RESET%
+             exit 1
+           )
*** ../vim-8.2.2149/.travis.yml 2020-12-03 21:24:04.089645975 +0100
--- .travis.yml 2020-12-17 20:23:48.398512703 +0100
***************
*** 172,227 ****
  # Linux: 2 compilers on some of the environments + gcc on os390
  jobs:
    include:
!     - <<: *osx
!       name: tiny-nogui/clang
!       compiler: clang
!       env: *tiny-nogui
!     - <<: *osx
!       name: tiny-nogui/gcc
!       compiler: gcc
!       env: *tiny-nogui
!     - <<: *osx
!       <<: *osx-homebrew
!       name: huge/clang
!       compiler: clang
!       env: *osx-huge
!     - <<: *osx
!       <<: *osx-homebrew
!       name: huge/gcc
!       compiler: gcc
!       env: *osx-huge
!     - <<: *linux
!       name: tiny-nogui/clang
!       compiler: clang
!       env: *tiny-nogui
!     - <<: *linux
!       name: tiny-nogui/gcc
!       compiler: gcc
!       env: *tiny-nogui
!     - <<: *linux
!       name: tiny/clang
!       compiler: clang
!       env: *tiny
!     - <<: *linux
!       name: tiny/gcc
!       compiler: gcc
!       env: *tiny
!     - <<: *linux
!       name: small/gcc
!       compiler: gcc
!       env: *small
!     - <<: *linux
!       name: normal+shadow/clang
!       compiler: clang
!       env:
!         - *normal
!         - *shadowopt
!     - <<: *linux
!       name: normal+shadow/gcc
!       compiler: gcc
!       env:
!         - *normal
!         - *shadowopt
      - <<: *linux
        arch: s390x
        name: huge/gcc-s390x
--- 172,227 ----
  # Linux: 2 compilers on some of the environments + gcc on os390
  jobs:
    include:
!     #- <<: *osx
!     #  name: tiny-nogui/clang
!     #  compiler: clang
!     #  env: *tiny-nogui
!     #- <<: *osx
!     #  name: tiny-nogui/gcc
!     #  compiler: gcc
!     #  env: *tiny-nogui
!     #- <<: *osx
!     #  <<: *osx-homebrew
!     #  name: huge/clang
!     #  compiler: clang
!     #  env: *osx-huge
!     #- <<: *osx
!     #  <<: *osx-homebrew
!     #  name: huge/gcc
!     #  compiler: gcc
!     #  env: *osx-huge
!     #- <<: *linux
!     #  name: tiny-nogui/clang
!     #  compiler: clang
!     #  env: *tiny-nogui
!     #- <<: *linux
!     #  name: tiny-nogui/gcc
!     #  compiler: gcc
!     #  env: *tiny-nogui
!     #- <<: *linux
!     #  name: tiny/clang
!     #  compiler: clang
!     #  env: *tiny
!     #- <<: *linux
!     #  name: tiny/gcc
!     #  compiler: gcc
!     #  env: *tiny
!     #- <<: *linux
!     #  name: small/gcc
!     #  compiler: gcc
!     #  env: *small
!     #- <<: *linux
!     #  name: normal+shadow/clang
!     #  compiler: clang
!     #  env:
!     #    - *normal
!     #    - *shadowopt
!     #- <<: *linux
!     #  name: normal+shadow/gcc
!     #  compiler: gcc
!     #  env:
!     #    - *normal
!     #    - *shadowopt
      - <<: *linux
        arch: s390x
        name: huge/gcc-s390x
***************
*** 234,288 ****
        compiler: gcc
        env: *linux-huge
        services: []
!     - <<: *linux
!       name: huge+coverage/clang
!       compiler: clang
!       env:
!         - *linux-huge
!         - *coverage
!       after_success: *eval-coverage
!     - <<: *linux
!       name: huge+coverage/gcc
!       compiler: gcc
!       env:
!         - *linux-huge
!         - *coverage
!       after_success: *eval-coverage
!     - <<: *linux # ASAN
!       name: huge+asan/clang
!       compiler: clang-11
!       addons:
!         apt:
!           sources:
!             - sourceline: 'deb http://apt.llvm.org/bionic/ 
llvm-toolchain-bionic-11 main'
!               key_url: 'https://apt.llvm.org/llvm-snapshot.gpg.key'
!           packages:
!             - *apt-packages
!             - clang-11
!       env:
!         - *linux-huge
!         - *asan
!       after_failure: *asan_symbolize
!     - <<: *linux
!       name: huge-testgui+coverage/gcc
!       compiler: gcc
!       env:
!         - *linux-huge
!         - *coverage
!         - TEST="-C src testgui"
!       after_success: *eval-coverage
!     - <<: *linux
!       name: unittests+coverage/gcc
!       compiler: gcc
!       env:
!         - *unittests
!         - *coverage
!       after_success: *eval-coverage
!     - <<: *linux
!       name: vimtags/gcc
!       compiler: gcc
!       env:
!         - *normal
!         - TEST="-C runtime/doc vimtags VIMEXE=../../${SRCDIR}/vim"
  
  # vim:set sts=2 sw=2 tw=0 et:
--- 234,288 ----
        compiler: gcc
        env: *linux-huge
        services: []
!     #- <<: *linux
!     #  name: huge+coverage/clang
!     #  compiler: clang
!     #  env:
!     #    - *linux-huge
!     #    - *coverage
!     #  after_success: *eval-coverage
!     #- <<: *linux
!     #  name: huge+coverage/gcc
!     #  compiler: gcc
!     #  env:
!     #    - *linux-huge
!     #    - *coverage
!     #  after_success: *eval-coverage
!     #- <<: *linux # ASAN
!     #  name: huge+asan/clang
!     #  compiler: clang-11
!     #  addons:
!     #    apt:
!     #      sources:
!     #        - sourceline: 'deb http://apt.llvm.org/bionic/ 
llvm-toolchain-bionic-11 main'
!     #          key_url: 'https://apt.llvm.org/llvm-snapshot.gpg.key'
!     #      packages:
!     #        - *apt-packages
!     #        - clang-11
!     #  env:
!     #    - *linux-huge
!     #    - *asan
!     #  after_failure: *asan_symbolize
!     #- <<: *linux
!     #  name: huge-testgui+coverage/gcc
!     #  compiler: gcc
!     #  env:
!     #    - *linux-huge
!     #    - *coverage
!     #    - TEST="-C src testgui"
!     #  after_success: *eval-coverage
!     #- <<: *linux
!     #  name: unittests+coverage/gcc
!     #  compiler: gcc
!     #  env:
!     #    - *unittests
!     #    - *coverage
!     #  after_success: *eval-coverage
!     #- <<: *linux
!     #  name: vimtags/gcc
!     #  compiler: gcc
!     #  env:
!     #    - *normal
!     #    - TEST="-C runtime/doc vimtags VIMEXE=../../${SRCDIR}/vim"
  
  # vim:set sts=2 sw=2 tw=0 et:
*** ../vim-8.2.2149/README.md   2020-07-29 17:43:52.368173474 +0200
--- README.md   2020-12-17 20:23:48.402512689 +0100
***************
*** 1,14 ****
  ![Vim Logo](https://github.com/vim/vim/blob/master/runtime/vimlogo.gif)
  
  [![Travis Build 
Status](https://travis-ci.org/vim/vim.svg?branch=master)](https://travis-ci.org/vim/vim)
  [![Appveyor Build 
status](https://ci.appveyor.com/api/projects/status/o2qht2kjm02sgghk?svg=true)](https://ci.appveyor.com/project/chrisbra/vim)
- [![Github Build 
status](https://github.com/vim/vim/workflows/GitHub%20CI/badge.svg)](https://github.com/vim/vim/actions?query=workflow%3A%22GitHub+CI%22)
  [![Cirrus Build 
Status](https://api.cirrus-ci.com/github/vim/vim.svg)](https://cirrus-ci.com/github/vim/vim)
  [![Coverage 
Status](https://codecov.io/gh/vim/vim/coverage.svg?branch=master)](https://codecov.io/gh/vim/vim?branch=master)
  [![Coverity 
Scan](https://scan.coverity.com/projects/241/badge.svg)](https://scan.coverity.com/projects/vim)
  [![Language Grade: 
C/C++](https://img.shields.io/lgtm/grade/cpp/g/vim/vim.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/vim/vim/context:cpp)
  [![Debian 
CI](https://badges.debian.net/badges/debian/testing/vim/version.svg)](https://buildd.debian.org/vim)
  
[![Packages](https://repology.org/badge/tiny-repos/vim.svg)](https://repology.org/metapackage/vim)
  For translations of this README see the end.
  
  
--- 1,15 ----
  ![Vim Logo](https://github.com/vim/vim/blob/master/runtime/vimlogo.gif)
  
+ [![Github Build 
status](https://github.com/vim/vim/workflows/GitHub%20CI/badge.svg)](https://github.com/vim/vim/actions?query=workflow%3A%22GitHub+CI%22)
  [![Travis Build 
Status](https://travis-ci.org/vim/vim.svg?branch=master)](https://travis-ci.org/vim/vim)
  [![Appveyor Build 
status](https://ci.appveyor.com/api/projects/status/o2qht2kjm02sgghk?svg=true)](https://ci.appveyor.com/project/chrisbra/vim)
  [![Cirrus Build 
Status](https://api.cirrus-ci.com/github/vim/vim.svg)](https://cirrus-ci.com/github/vim/vim)
  [![Coverage 
Status](https://codecov.io/gh/vim/vim/coverage.svg?branch=master)](https://codecov.io/gh/vim/vim?branch=master)
  [![Coverity 
Scan](https://scan.coverity.com/projects/241/badge.svg)](https://scan.coverity.com/projects/vim)
  [![Language Grade: 
C/C++](https://img.shields.io/lgtm/grade/cpp/g/vim/vim.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/vim/vim/context:cpp)
  [![Debian 
CI](https://badges.debian.net/badges/debian/testing/vim/version.svg)](https://buildd.debian.org/vim)
  
[![Packages](https://repology.org/badge/tiny-repos/vim.svg)](https://repology.org/metapackage/vim)
+ 
  For translations of this README see the end.
  
  
*** ../vim-8.2.2149/ci/build-snd-dummy.sh       2020-12-17 20:26:22.113983953 
+0100
--- ci/build-snd-dummy.sh       2020-12-17 20:23:48.402512689 +0100
***************
*** 0 ****
--- 1,19 ----
+ #!/bin/bash
+ set -eu
+ 
+ LINUX_VERSION=$(uname -r | cut -d. -f1-2)
+ LINUX_ARCHIVE_FILE=v${LINUX_VERSION}.tar.gz
+ LINUX_SOURCE_DIR=linux-${LINUX_VERSION}
+ 
+ mkdir -p "${TMPDIR}"
+ cd "${TMPDIR}"
+ 
+ wget -q "https://github.com/torvalds/linux/archive/${LINUX_ARCHIVE_FILE}";
+ 
+ tar -xf "${LINUX_ARCHIVE_FILE}" "${LINUX_SOURCE_DIR}/sound"
+ cd "${LINUX_SOURCE_DIR}/sound"
+ 
+ CC=gcc make -C "/lib/modules/$(uname -r)/build" M="${PWD}" CONFIG_SOUND=m 
CONFIG_SND=m CONFIG_SND_PCM=m CONFIG_SND_DUMMY=m modules
+ 
+ mkdir -p "${SND_DUMMY_DIR}"
+ cp soundcore.ko core/snd.ko core/snd-pcm.ko drivers/snd-dummy.ko 
"${SND_DUMMY_DIR}"
*** ../vim-8.2.2149/ci/setup-xvfb.sh    2020-12-17 20:26:22.117983941 +0100
--- ci/setup-xvfb.sh    2020-12-17 20:23:48.402512689 +0100
***************
*** 0 ****
--- 1,17 ----
+ #!/bin/bash
+ set -e
+ 
+ apt-get install -y xvfb
+ 
+ cat <<EOT >/etc/systemd/system/xvfb.service
+ [Unit]
+ Description=X Virtual Frame Buffer Service
+ After=network.target
+ [Service]
+ ExecStart=/usr/bin/Xvfb :99 -screen 0 1024x768x24
+ [Install]
+ WantedBy=multi-user.target
+ EOT
+ 
+ systemctl enable xvfb.service
+ systemctl start xvfb.service
*** ../vim-8.2.2149/src/version.c       2020-12-17 17:45:56.632588666 +0100
--- src/version.c       2020-12-17 20:25:53.426083876 +0100
***************
*** 752,753 ****
--- 752,755 ----
  {   /* Add new patch number below this line */
+ /**/
+     2150,
  /**/

-- 
If all you have is a hammer, everything looks like a nail.
When your hammer is C++, everything begins to look like a thumb.
                        -- Steve Hoflich, comp.lang.c++

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
-- 
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/202012171929.0BHJT9RV1034977%40masaka.moolenaar.net.

Raspunde prin e-mail lui