aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/ci.yml16
-rw-r--r--.github/workflows/coverity-scan.yml2
-rw-r--r--CMakeLists.txt13
-rw-r--r--CONTRIBUTING.md2
-rw-r--r--ci/build.ps177
-rw-r--r--cmake/FindLuaJit.cmake2
-rw-r--r--runtime/autoload/health/nvim.vim2
-rw-r--r--runtime/autoload/man.vim10
-rw-r--r--runtime/colors/README.txt71
-rw-r--r--runtime/colors/blue.vim492
-rw-r--r--runtime/colors/darkblue.vim516
-rw-r--r--runtime/colors/delek.vim385
-rw-r--r--runtime/colors/desert.vim423
-rw-r--r--runtime/colors/elflord.vim417
-rw-r--r--runtime/colors/evening.vim487
-rw-r--r--runtime/colors/industry.vim365
-rw-r--r--runtime/colors/koehler.vim427
-rw-r--r--runtime/colors/morning.vim373
-rw-r--r--runtime/colors/murphy.vim370
-rw-r--r--runtime/colors/pablo.vim382
-rw-r--r--runtime/colors/peachpuff.vim380
-rw-r--r--runtime/colors/ron.vim415
-rw-r--r--runtime/colors/shine.vim396
-rw-r--r--runtime/colors/slate.vim403
-rw-r--r--runtime/colors/torte.vim400
-rw-r--r--runtime/colors/zellner.vim387
-rw-r--r--runtime/compiler/scdoc.vim3
-rw-r--r--runtime/doc/api.txt78
-rw-r--r--runtime/doc/dev_style.txt25
-rw-r--r--runtime/doc/eval.txt11
-rw-r--r--runtime/doc/lua.txt13
-rw-r--r--runtime/doc/syntax.txt168
-rw-r--r--runtime/doc/windows.txt2
-rw-r--r--runtime/ftplugin/man.vim6
-rw-r--r--runtime/ftplugin/scdoc.vim10
-rw-r--r--runtime/lua/vim/_editor.lua12
-rw-r--r--runtime/nvim.desktop3
-rw-r--r--runtime/syntax/debchangelog.vim4
-rw-r--r--runtime/syntax/debcontrol.vim4
-rw-r--r--runtime/syntax/debsources.vim4
-rw-r--r--runtime/syntax/man.vim2
-rw-r--r--runtime/syntax/scdoc.vim63
-rwxr-xr-xscripts/gen_vimdoc.py73
-rw-r--r--scripts/lintcommit.lua18
-rwxr-xr-xscripts/update_terminfo.sh6
-rwxr-xr-xsrc/clint.py198
-rwxr-xr-xsrc/nvim/CMakeLists.txt10
-rw-r--r--src/nvim/api/private/helpers.c159
-rw-r--r--src/nvim/api/vim.c60
-rw-r--r--src/nvim/api/vimscript.c18
-rw-r--r--src/nvim/autocmd.c28
-rw-r--r--src/nvim/buffer.c75
-rw-r--r--src/nvim/buffer_defs.h4
-rw-r--r--src/nvim/change.c27
-rw-r--r--src/nvim/charset.c1
-rw-r--r--src/nvim/cursor.c18
-rw-r--r--src/nvim/cursor_shape.c8
-rw-r--r--src/nvim/debugger.c28
-rw-r--r--src/nvim/diff.c6
-rw-r--r--src/nvim/digraph.c16
-rw-r--r--src/nvim/edit.c48
-rw-r--r--src/nvim/eval.c57
-rw-r--r--src/nvim/eval/executor.c2
-rw-r--r--src/nvim/eval/funcs.c65
-rw-r--r--src/nvim/eval/typval_encode.c.h2
-rw-r--r--src/nvim/eval/userfunc.c18
-rw-r--r--src/nvim/ex_cmds.c67
-rw-r--r--src/nvim/ex_cmds2.c39
-rw-r--r--src/nvim/ex_docmd.c61
-rw-r--r--src/nvim/ex_eval.c8
-rw-r--r--src/nvim/ex_getln.c46
-rw-r--r--src/nvim/ex_session.c13
-rw-r--r--src/nvim/file_search.c6
-rw-r--r--src/nvim/fileio.c51
-rw-r--r--src/nvim/fold.c4
-rw-r--r--src/nvim/getchar.c6
-rw-r--r--src/nvim/globals.h2
-rw-r--r--src/nvim/hardcopy.c14
-rw-r--r--src/nvim/highlight_group.c6
-rw-r--r--src/nvim/if_cscope.c8
-rw-r--r--src/nvim/indent.c9
-rw-r--r--src/nvim/indent_c.c1054
-rw-r--r--src/nvim/keycodes.h2
-rw-r--r--src/nvim/lib/kvec.h25
-rw-r--r--src/nvim/lua/stdlib.c2
-rw-r--r--src/nvim/macros.h14
-rw-r--r--src/nvim/main.c3
-rw-r--r--src/nvim/mark.c2
-rw-r--r--src/nvim/match.c2
-rw-r--r--src/nvim/mbyte.c2
-rw-r--r--src/nvim/memline.c25
-rw-r--r--src/nvim/menu.c4
-rw-r--r--src/nvim/message.c20
-rw-r--r--src/nvim/normal.c37
-rw-r--r--src/nvim/ops.c45
-rw-r--r--src/nvim/option.c86
-rw-r--r--src/nvim/option_defs.h8
-rw-r--r--src/nvim/os/env.c11
-rw-r--r--src/nvim/os/shell.c8
-rw-r--r--src/nvim/os/signal.c6
-rw-r--r--src/nvim/os/stdpaths.c2
-rw-r--r--src/nvim/path.c22
-rw-r--r--src/nvim/popupmnu.c4
-rw-r--r--src/nvim/quickfix.c83
-rw-r--r--src/nvim/rbuffer.h2
-rw-r--r--src/nvim/regexp.c358
-rw-r--r--src/nvim/regexp_bt.c2047
-rw-r--r--src/nvim/regexp_nfa.c2770
-rw-r--r--src/nvim/screen.c10
-rw-r--r--src/nvim/search.c50
-rw-r--r--src/nvim/sign.c2
-rw-r--r--src/nvim/spell.c31
-rw-r--r--src/nvim/spellfile.c33
-rw-r--r--src/nvim/state.c4
-rw-r--r--src/nvim/strings.c53
-rw-r--r--src/nvim/strings.h3
-rw-r--r--src/nvim/syntax.c26
-rw-r--r--src/nvim/tag.c28
-rw-r--r--src/nvim/terminal.c17
-rw-r--r--src/nvim/testdir/test_cindent.vim7
-rw-r--r--src/nvim/testdir/test_search.vim20
-rw-r--r--src/nvim/testdir/test_smartindent.vim22
-rw-r--r--src/nvim/testdir/test_visual.vim12
-rw-r--r--src/nvim/tui/terminfo_defs.h92
-rw-r--r--src/nvim/ui.c4
-rw-r--r--src/nvim/version.c22
-rw-r--r--src/nvim/window.c28
-rw-r--r--test/functional/api/buffer_updates_spec.lua3
-rw-r--r--test/functional/api/vim_spec.lua4
-rw-r--r--test/functional/api/window_spec.lua24
-rw-r--r--test/functional/core/startup_spec.lua4
-rw-r--r--test/functional/ex_cmds/drop_spec.lua32
-rw-r--r--test/functional/legacy/display_spec.lua32
-rw-r--r--test/functional/legacy/listchars_spec.lua128
-rw-r--r--test/functional/legacy/search_spec.lua32
-rw-r--r--test/functional/options/cursorbind_spec.lua60
-rw-r--r--test/functional/plugin/man_spec.lua14
-rw-r--r--test/functional/terminal/cursor_spec.lua57
-rw-r--r--test/functional/ui/diff_spec.lua1364
-rw-r--r--test/functional/ui/float_spec.lua1
-rw-r--r--test/functional/ui/fold_spec.lua2
-rw-r--r--test/functional/ui/global_statusline_spec.lua142
-rw-r--r--test/functional/ui/highlight_spec.lua160
-rw-r--r--test/functional/ui/hlstate_spec.lua3
-rw-r--r--test/functional/ui/inccommand_spec.lua68
-rw-r--r--test/functional/ui/messages_spec.lua6
-rw-r--r--test/functional/ui/mouse_spec.lua120
-rw-r--r--test/functional/ui/multigrid_spec.lua362
-rw-r--r--test/functional/ui/popupmenu_spec.lua108
-rw-r--r--test/functional/ui/screen_basic_spec.lua192
-rw-r--r--third-party/CMakeLists.txt9
-rw-r--r--third-party/cmake/BuildLibuv.cmake13
-rw-r--r--third-party/cmake/BuildLua.cmake2
-rw-r--r--third-party/cmake/BuildLuajit.cmake51
-rw-r--r--third-party/cmake/BuildLuarocks.cmake16
-rw-r--r--third-party/cmake/BuildLuv.cmake11
-rw-r--r--third-party/cmake/BuildMsgpack.cmake13
157 files changed, 12898 insertions, 6149 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 804feec68b..9a98c6097c 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -5,7 +5,6 @@ on:
- 'master'
- 'release-[0-9]+.[0-9]+'
pull_request:
- types: [opened, synchronize, reopened, ready_for_review]
branches:
- 'master'
- 'release-[0-9]+.[0-9]+'
@@ -24,7 +23,7 @@ jobs:
# we are able to build neovim without pigeonholing ourselves into specifics
# of the bundled dependencies.
- if: (github.event_name == 'pull_request' && github.base_ref == 'master' && !github.event.pull_request.draft) || (github.event_name == 'push' && github.ref == 'refs/heads/master')
+ if: (github.event_name == 'pull_request' && github.base_ref == 'master') || (github.event_name == 'push' && github.ref == 'refs/heads/master')
runs-on: ubuntu-20.04
timeout-minutes: 10
env:
@@ -148,7 +147,6 @@ jobs:
cmake: minimum_required
runs-on: ${{ matrix.runner }}
timeout-minutes: 45
- if: github.event.pull_request.draft == false
env:
CC: ${{ matrix.cc }}
CI_OS_NAME: ${{ matrix.os }}
@@ -235,25 +233,19 @@ jobs:
windows:
runs-on: windows-2019
timeout-minutes: 45
- if: github.event.pull_request.draft == false
env:
DEPS_BUILD_DIR: ${{ format('{0}/nvim-deps', github.workspace) }}
DEPS_PREFIX: ${{ format('{0}/nvim-deps/usr', github.workspace) }}
-
- strategy:
- fail-fast: false
- matrix:
- config: [ MINGW_64-gcov, MSVC_64 ]
- name: windows (${{ matrix.config }})
+ name: windows (MSVC_64)
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
with:
path: ${{ env.DEPS_BUILD_DIR }}
- key: ${{ matrix.config }}-${{ hashFiles('third-party\**') }}
+ key: ${{ hashFiles('third-party\**') }}
- name: Run CI
run: powershell ci\build.ps1
env:
- CONFIGURATION: ${{ matrix.config }}
+ CONFIGURATION: MSVC_64
diff --git a/.github/workflows/coverity-scan.yml b/.github/workflows/coverity-scan.yml
index 90fe676649..a6eef47645 100644
--- a/.github/workflows/coverity-scan.yml
+++ b/.github/workflows/coverity-scan.yml
@@ -1,7 +1,7 @@
name: Coverity
on:
schedule:
- - cron: '0 10 * * 1' # Run every Monday at 00:10
+ - cron: '10 0 * * 1' # Run every Monday at 00:10
workflow_dispatch:
jobs:
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 409face71c..19c81ffcbe 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -108,14 +108,7 @@ endif()
option(ENABLE_LIBINTL "enable libintl" ON)
option(ENABLE_LIBICONV "enable libiconv" ON)
-if (MINGW)
- # Disable LTO by default as it may not compile
- # See https://github.com/Alexpux/MINGW-packages/issues/3516
- # and https://github.com/neovim/neovim/pull/8654#issuecomment-402316672
- option(ENABLE_LTO "enable link time optimization" OFF)
-else()
- option(ENABLE_LTO "enable link time optimization" ON)
-endif()
+option(ENABLE_LTO "enable link time optimization" ON)
message(STATUS "CMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}")
@@ -322,10 +315,6 @@ else()
endif()
endif()
-if(MINGW)
- # Use POSIX compatible stdio in Mingw
- add_definitions(-D__USE_MINGW_ANSI_STDIO)
-endif()
if(WIN32)
# Windows Vista is the minimum supported version
add_definitions(-D_WIN32_WINNT=0x0600)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 078377dcc2..e26d0d63c5 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -92,7 +92,7 @@ the VCS/git logs more valuable. The general structure of a commit message is:
```
- Prefix the commit subject with one of these [_types_](https://github.com/commitizen/conventional-commit-types/blob/master/index.json):
- - `build`, `ci`, `docs`, `feat`, `fix`, `perf`, `refactor`, `revert`, `test`, `vim-patch`, `chore`
+ - `build`, `ci`, `docs`, `feat`, `fix`, `perf`, `refactor`, `revert`, `test`, `vim-patch`, `dist`
- You can **ignore this for "fixup" commits** or any commits you expect to be squashed.
- Append optional scope to _type_ such as `(lsp)`, `(treesitter)`, `(float)`, …
- _Description_ shouldn't start with a capital letter or end in a period.
diff --git a/ci/build.ps1 b/ci/build.ps1
index 533e5804c9..99f66f7de2 100644
--- a/ci/build.ps1
+++ b/ci/build.ps1
@@ -40,55 +40,14 @@ if (-Not (Test-Path -PathType container $env:DEPS_BUILD_DIR)) {
write-host "cache dir $($env:DEPS_BUILD_DIR) size: $(Get-ChildItem $env:DEPS_BUILD_DIR -recurse | Measure-Object -property length -sum | Select -expand sum)"
}
-if ($compiler -eq 'MINGW') {
- if ($bits -eq 32) {
- $arch = 'i686'
- }
- elseif ($bits -eq 64) {
- $arch = 'x86_64'
- }
- if ($compileOption -eq 'gcov') {
- $nvimCmakeVars['USE_GCOV'] = 'ON'
- $uploadToCodecov = $true
- $env:GCOV = "C:\msys64\mingw$bits\bin\gcov"
-
- # Setup/build Lua coverage.
- $env:USE_LUACOV = 1
- $env:BUSTED_ARGS = "--coverage"
- }
- # These are native MinGW builds, but they use the toolchain inside
- # MSYS2, this allows using all the dependencies and tools available
- # in MSYS2, but we cannot build inside the MSYS2 shell.
- $cmakeGenerator = 'Ninja'
- $cmakeGeneratorArgs = '-v'
- $mingwPackages = @('ninja', 'cmake', 'diffutils').ForEach({
- "mingw-w64-$arch-$_"
- })
-
- # Add MinGW to the PATH
- $env:PATH = "C:\msys64\mingw$bits\bin;$env:PATH"
-
- # Avoid pacman "warning" which causes non-zero return code. https://github.com/open62541/open62541/issues/2068
- & C:\msys64\usr\bin\mkdir -p /var/cache/pacman/pkg
-
- # Build third-party dependencies
- C:\msys64\usr\bin\bash -lc "pacman --verbose --noconfirm -Syu" ; exitIfFailed
- # Update again in case updating pacman changes pacman.conf
- C:\msys64\usr\bin\bash -lc "pacman --verbose --noconfirm -Syu" ; exitIfFailed
- C:\msys64\usr\bin\bash -lc "pacman --verbose --noconfirm --needed -S $mingwPackages" ; exitIfFailed
-}
-elseif ($compiler -eq 'MSVC') {
- $cmakeGeneratorArgs = '/verbosity:normal'
- $cmakeGenerator = 'Visual Studio 16 2019'
-}
-
-if ($compiler -eq 'MSVC') {
- $installationPath = vswhere.exe -latest -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath
- if ($installationPath -and (test-path "$installationPath\Common7\Tools\vsdevcmd.bat")) {
- & "${env:COMSPEC}" /s /c "`"$installationPath\Common7\Tools\vsdevcmd.bat`" -arch=x${bits} -no_logo && set" | foreach-object {
- $name, $value = $_ -split '=', 2
- set-content env:\"$name" $value
- }
+$cmakeGeneratorArgs = '/verbosity:normal'
+$cmakeGenerator = 'Visual Studio 16 2019'
+
+$installationPath = vswhere.exe -latest -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath
+if ($installationPath -and (test-path "$installationPath\Common7\Tools\vsdevcmd.bat")) {
+ & "${env:COMSPEC}" /s /c "`"$installationPath\Common7\Tools\vsdevcmd.bat`" -arch=x${bits} -no_logo && set" | foreach-object {
+ $name, $value = $_ -split '=', 2
+ set-content env:\"$name" $value
}
}
@@ -111,14 +70,10 @@ function convertToCmakeArgs($vars) {
}
cd $env:DEPS_BUILD_DIR
-if ($compiler -eq 'MSVC') {
- if ($bits -eq 32) {
- cmake -G $cmakeGenerator -A Win32 $(convertToCmakeArgs($depsCmakeVars)) "$buildDir/third-party/" ; exitIfFailed
- } else {
- cmake -G $cmakeGenerator -A x64 $(convertToCmakeArgs($depsCmakeVars)) "$buildDir/third-party/" ; exitIfFailed
- }
+if ($bits -eq 32) {
+ cmake -G $cmakeGenerator -A Win32 $(convertToCmakeArgs($depsCmakeVars)) "$buildDir/third-party/" ; exitIfFailed
} else {
- cmake -G $cmakeGenerator $(convertToCmakeArgs($depsCmakeVars)) "$buildDir/third-party/" ; exitIfFailed
+ cmake -G $cmakeGenerator -A x64 $(convertToCmakeArgs($depsCmakeVars)) "$buildDir/third-party/" ; exitIfFailed
}
cmake --build . --config $cmakeBuildType -- $cmakeGeneratorArgs ; exitIfFailed
cd $buildDir
@@ -126,14 +81,10 @@ cd $buildDir
# Build Neovim
mkdir build
cd build
-if ($compiler -eq 'MSVC') {
- if ($bits -eq 32) {
- cmake -G $cmakeGenerator -A Win32 $(convertToCmakeArgs($nvimCmakeVars)) .. ; exitIfFailed
- } else {
- cmake -G $cmakeGenerator -A x64 $(convertToCmakeArgs($nvimCmakeVars)) .. ; exitIfFailed
- }
+if ($bits -eq 32) {
+ cmake -G $cmakeGenerator -A Win32 $(convertToCmakeArgs($nvimCmakeVars)) .. ; exitIfFailed
} else {
- cmake -G $cmakeGenerator $(convertToCmakeArgs($nvimCmakeVars)) .. ; exitIfFailed
+ cmake -G $cmakeGenerator -A x64 $(convertToCmakeArgs($nvimCmakeVars)) .. ; exitIfFailed
}
cmake --build . --config $cmakeBuildType -- $cmakeGeneratorArgs ; exitIfFailed
.\bin\nvim --version ; exitIfFailed
diff --git a/cmake/FindLuaJit.cmake b/cmake/FindLuaJit.cmake
index 72795afefd..c904347f6a 100644
--- a/cmake/FindLuaJit.cmake
+++ b/cmake/FindLuaJit.cmake
@@ -17,8 +17,6 @@ find_path(LUAJIT_INCLUDE_DIR luajit.h
if(MSVC)
list(APPEND LUAJIT_NAMES lua51)
-elseif(MINGW)
- list(APPEND LUAJIT_NAMES libluajit libluajit-5.1)
else()
list(APPEND LUAJIT_NAMES luajit-5.1)
endif()
diff --git a/runtime/autoload/health/nvim.vim b/runtime/autoload/health/nvim.vim
index f3732e012f..9b387095ee 100644
--- a/runtime/autoload/health/nvim.vim
+++ b/runtime/autoload/health/nvim.vim
@@ -45,7 +45,7 @@ function! s:check_config() abort
let shadafile = empty(&shada) ? &shada : substitute(matchstr(
\ split(&shada, ',')[-1], '^n.\+'), '^n', '', '')
let shadafile = empty(&shadafile) ? empty(shadafile) ?
- \ stdpath('data').'/shada/main.shada' : expand(shadafile)
+ \ stdpath('state').'/shada/main.shada' : expand(shadafile)
\ : &shadafile ==# 'NONE' ? '' : &shadafile
if !empty(shadafile) && empty(glob(shadafile))
" Since this may be the first time neovim has been run, we will try to
diff --git a/runtime/autoload/man.vim b/runtime/autoload/man.vim
index 4d6a1f78dc..b8a73a64c9 100644
--- a/runtime/autoload/man.vim
+++ b/runtime/autoload/man.vim
@@ -125,9 +125,7 @@ endfunction
function! s:set_options(pager) abort
setlocal noswapfile buftype=nofile bufhidden=hide
setlocal nomodified readonly nomodifiable
- if a:pager
- nnoremap <silent> <buffer> <nowait> q :lclose<CR>:q<CR>
- endif
+ let b:pager = a:pager
setlocal filetype=man
endfunction
@@ -173,6 +171,12 @@ function! man#show_toc() abort
while lnum && lnum < last_line
let text = getline(lnum)
if text =~# '^\%( \{3\}\)\=\S.*$'
+ " if text is a section title
+ call add(toc, {'bufnr': bufnr('%'), 'lnum': lnum, 'text': text})
+ elseif text =~# '^\s\+\%(+\|-\)\S\+'
+ " if text is a flag title. we strip whitespaces and prepend two
+ " spaces to have a consistent format in the loclist.
+ let text = ' ' .. substitute(text, '^\s*\(.\{-}\)\s*$', '\1', '')
call add(toc, {'bufnr': bufnr('%'), 'lnum': lnum, 'text': text})
endif
let lnum = nextnonblank(lnum + 1)
diff --git a/runtime/colors/README.txt b/runtime/colors/README.txt
index 70aacb5384..bda0300678 100644
--- a/runtime/colors/README.txt
+++ b/runtime/colors/README.txt
@@ -1,7 +1,7 @@
README.txt for color scheme files
These files are used for the ":colorscheme" command. They appear in the
-Edit/Color Scheme menu in the GUI.
+"Edit/Color Scheme" menu in the GUI.
Hints for writing a color scheme file:
@@ -9,6 +9,7 @@ Hints for writing a color scheme file:
There are two basic ways to define a color scheme:
1. Define a new Normal color and set the 'background' option accordingly.
+
set background={light or dark}
highlight clear
highlight Normal ...
@@ -16,6 +17,7 @@ There are two basic ways to define a color scheme:
2. Use the default Normal color and automatically adjust to the value of
'background'.
+
highlight clear Normal
set background&
highlight clear
@@ -28,7 +30,7 @@ There are two basic ways to define a color scheme:
endif
You can use ":highlight clear" to reset everything to the defaults, and then
-change the groups that you want differently. This also will work for groups
+change the groups that you want differently. This will also work for groups
that are added in later versions of Vim.
Note that ":highlight clear" uses the value of 'background', thus set it
before this command.
@@ -38,7 +40,9 @@ attributes.
In case you want to set 'background' depending on the colorscheme selected,
this autocmd might be useful:
+
autocmd SourcePre */colors/blue_sky.vim set background=dark
+
Replace "blue_sky" with the name of the colorscheme.
In case you want to tweak a colorscheme after it was loaded, check out the
@@ -46,6 +50,7 @@ ColorScheme autocommand event.
To clean up just before loading another colorscheme, use the ColorSchemePre
autocommand event. For example:
+
let g:term_ansi_colors = ...
augroup MyColorscheme
au!
@@ -54,36 +59,80 @@ autocommand event. For example:
augroup END
To customize a colorscheme use another name, e.g. "~/.vim/colors/mine.vim",
-and use `:runtime` to load the original colorscheme:
+and use ":runtime" to load the original colorscheme:
+
" load the "evening" colorscheme
runtime colors/evening.vim
" change the color of statements
hi Statement ctermfg=Blue guifg=Blue
-To see which highlight group is used where, find the help for
-"highlight-groups" and "group-name".
+To see which highlight group is used where, see ":help highlight-groups" and
+":help group-name".
You can use ":highlight" to find out the current colors. Exception: the
ctermfg and ctermbg values are numbers, which are only valid for the current
-terminal. Use the color names instead. See ":help cterm-colors".
+terminal. Use the color names instead for better portability. See
+":help cterm-colors".
-The default color settings can be found in the source file src/highlight.c.
-Search for "highlight_init".
+The default color settings can be found in the source file
+"src/nvim/highlight_group.c". Search for "highlight_init".
If you think you have a color scheme that is good enough to be used by others,
please check the following items:
-- Source the $VIMRUNTIME/tools/check_colors.vim script to check for common mistakes.
-- Does it work in a color terminal as well as in the GUI?
+- Source the $VIMRUNTIME/colors/tools/check_colors.vim script to check for
+ common mistakes.
+
+- Does it work in a color terminal as well as in the GUI? Is it consistent?
+
- Is "g:colors_name" set to a meaningful value? In case of doubt you can do
it this way:
+
let g:colors_name = expand('<sfile>:t:r')
+
- Is 'background' either used or appropriately set to "light" or "dark"?
+
- Try setting 'hlsearch' and searching for a pattern, is the match easy to
spot?
+
- Split a window with ":split" and ":vsplit". Are the status lines and
vertical separators clearly visible?
+
- In the GUI, is it easy to find the cursor, also in a file with lots of
syntax highlighting?
+
+- In general, test your color scheme against as many filetypes, Vim features,
+ environments, etc. as possible.
+
- Do not use hard coded escape sequences, these will not work in other
- terminals. Always use color names or #RRGGBB for the GUI.
+ terminals. Always use #RRGGBB for the GUI.
+
+- When targetting 8-16 colors terminals, don't count on "darkblue" to be blue
+ and dark, or on "2" to be even vaguely reddish. Names are more portable
+ than numbers, though.
+
+- When targetting 256 colors terminals, prefer colors 16-255 to colors 0-15
+ for the same reason.
+
+- Typographic attributes (bold, italic, underline, reverse, etc.) are not
+ universally supported. Don't count on any of them.
+
+- Is "g:terminal_ansi_colors" set to a list of 16 #RRGGBB values?
+
+- Try to keep your color scheme simple by avoiding unnecessary logic and
+ refraining from adding options. The best color scheme is one that only
+ requires:
+
+ colorscheme foobar
+
+The color schemes distributed with Vim are built with lifepillar/colortemplate
+(https://github.com/lifepillar/vim-colortemplate). It is therefore highly
+recommended.
+
+If you would like your color scheme to be distributed with Vim, make sure
+that:
+
+- it satisfies the guidelines above,
+- it was made with colortemplate,
+
+and join us at vim/colorschemes: (https://github.com/vim/colorschemes).
diff --git a/runtime/colors/blue.vim b/runtime/colors/blue.vim
index 86de8a4dc4..abb2445712 100644
--- a/runtime/colors/blue.vim
+++ b/runtime/colors/blue.vim
@@ -1,55 +1,447 @@
-" local syntax file - set colors on a per-machine basis:
-" vim: tw=0 ts=4 sw=4
-" Vim color file
-" Maintainer: Steven Vertigan <steven@vertigan.wattle.id.au>
-" Last Change: 2006 Sep 23
-" Revision #5: Switch main text from white to yellow for easier contrast,
-" fixed some problems with terminal backgrounds.
+" Name: blue
+" Description: Colorscheme with a blue background
+" Author: Original author Steven Vertigan <steven@vertigan.wattle.id.au>
+" Maintainer: Original maintainer Steven Vertigan <steven@vertigan.wattle.id.au>
+" Website: https://github.com/vim/colorschemes
+" License: Same as Vim
+" Last Updated: Wed May 11 22:56:33 2022
+
+" Generated by Colortemplate v2.2.0
set background=dark
+
hi clear
-if exists("syntax_on")
- syntax reset
+let g:colors_name = 'blue'
+
+let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
+
+if (has('termguicolors') && &termguicolors) || has('gui_running')
+ let g:terminal_ansi_colors = ['#000000', '#870000', '#006400', '#878700', '#000087', '#870087', '#008787', '#bcbcbc', '#878787', '#d70000', '#00ff00', '#ffdf00', '#5fafff', '#d787d7', '#5fffff', '#ffffff']
+endif
+hi Normal guifg=#ffdf00 guibg=#000087 gui=NONE cterm=NONE
+hi CursorLine guifg=NONE guibg=#005faf gui=NONE cterm=NONE
+hi Pmenu guifg=#ffffff guibg=#008787 gui=NONE cterm=NONE
+hi PmenuSel guifg=#008787 guibg=#ffffff gui=NONE cterm=NONE
+hi QuickFixLine guifg=#000000 guibg=#d787d7 gui=NONE cterm=NONE
+hi ColorColumn guifg=NONE guibg=#870087 gui=NONE cterm=NONE
+hi Conceal guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi Cursor guifg=#000000 guibg=#00ff00 gui=NONE cterm=NONE
+hi CursorColumn guifg=NONE guibg=#005faf gui=NONE cterm=NONE
+hi CursorIM guifg=NONE guibg=fg gui=NONE cterm=NONE
+hi CursorLineNr guifg=#ffdf00 guibg=#005faf gui=bold cterm=NONE
+hi EndOfBuffer guifg=#ffdf00 guibg=#000087 gui=NONE cterm=NONE
+hi Error guifg=#ff7f50 guibg=#000087 gui=reverse cterm=reverse
+hi ErrorMsg guifg=#ffffff guibg=#d70000 gui=NONE cterm=NONE
+hi FoldColumn guifg=#008787 guibg=NONE gui=NONE cterm=NONE
+hi Folded guifg=#000087 guibg=#878700 gui=NONE cterm=NONE
+hi IncSearch guifg=#d787d7 guibg=#000000 gui=standout cterm=reverse
+hi LineNr guifg=#5fffff guibg=NONE gui=NONE cterm=NONE
+hi MatchParen guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse
+hi ModeMsg guifg=#000087 guibg=#00ff00 gui=NONE cterm=NONE
+hi MoreMsg guifg=#5fffff guibg=NONE gui=NONE cterm=NONE
+hi NonText guifg=#d787d7 guibg=NONE gui=NONE cterm=NONE
+hi PmenuSbar guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi PmenuThumb guifg=NONE guibg=#ffffff gui=NONE cterm=NONE
+hi Question guifg=#00ff00 guibg=NONE gui=NONE cterm=NONE
+hi Search guifg=#ffdf00 guibg=#000000 gui=reverse cterm=reverse
+hi SignColumn guifg=#008787 guibg=NONE gui=NONE cterm=NONE
+hi SpecialKey guifg=#5fffff guibg=NONE gui=NONE cterm=NONE
+hi SpellBad guifg=#d70000 guibg=NONE guisp=#d70000 gui=undercurl cterm=underline
+hi SpellCap guifg=#00ff00 guibg=NONE guisp=#00ff00 gui=undercurl cterm=underline
+hi SpellLocal guifg=#ffffff guibg=NONE guisp=#ffffff gui=undercurl cterm=underline
+hi SpellRare guifg=#d787d7 guibg=NONE guisp=#d787d7 gui=undercurl cterm=underline
+hi StatusLine guifg=#000087 guibg=#5fffff gui=NONE cterm=NONE
+hi StatusLineNC guifg=#000087 guibg=#008787 gui=NONE cterm=NONE
+hi! link StatusLineTerm StatusLine
+hi! link StatusLineTermNC StatusLineNC
+hi! link TabLine StatusLineNC
+hi! link TabLineFill StatusLineNC
+hi! link TabLineSel StatusLine
+hi ToolbarButton guifg=#ffffff guibg=#005faf gui=NONE cterm=NONE
+hi ToolbarLine guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi VertSplit guifg=#008787 guibg=NONE gui=NONE cterm=NONE
+hi Visual guifg=#ffffff guibg=#008787 gui=NONE cterm=NONE
+hi VisualNOS guifg=#008787 guibg=#ffffff gui=NONE cterm=NONE
+hi WarningMsg guifg=#d70000 guibg=NONE gui=NONE cterm=NONE
+hi WildMenu guifg=#000087 guibg=#ffdf00 gui=NONE cterm=NONE
+hi debugBreakpoint guifg=#00ff00 guibg=#000087 gui=reverse cterm=reverse
+hi debugPC guifg=#5fffff guibg=#000087 gui=reverse cterm=reverse
+hi! link Terminal Normal
+hi! link Debug Special
+hi! link diffAdded String
+hi! link diffRemoved WarningMsg
+hi! link diffOnly WarningMsg
+hi! link diffNoEOL WarningMsg
+hi! link diffIsA WarningMsg
+hi! link diffIdentical WarningMsg
+hi! link diffDiffer WarningMsg
+hi! link diffCommon WarningMsg
+hi! link diffBDiffer WarningMsg
+hi! link lCursor Cursor
+hi! link LineNrAbove LineNr
+hi! link LineNrBelow LineNr
+hi! link CurSearch Search
+hi! link CursorLineFold CursorLine
+hi! link CursorLineSign CursorLine
+hi Directory guifg=#5fffff guibg=NONE gui=NONE cterm=NONE
+hi Title guifg=#d787d7 guibg=NONE gui=NONE cterm=NONE
+hi Comment guifg=#878787 guibg=NONE gui=bold cterm=NONE
+hi Constant guifg=#5fffff guibg=NONE gui=NONE cterm=NONE
+hi Identifier guifg=#bcbcbc guibg=NONE gui=NONE cterm=NONE
+hi Ignore guifg=#878787 guibg=NONE gui=NONE cterm=NONE
+hi PreProc guifg=#00ff00 guibg=NONE gui=NONE cterm=NONE
+hi Special guifg=#d787d7 guibg=NONE gui=NONE cterm=NONE
+hi Statement guifg=#ffffff guibg=NONE gui=NONE cterm=NONE
+hi Todo guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse
+hi Type guifg=#ffa500 guibg=NONE gui=bold cterm=NONE
+hi Underlined guifg=NONE guibg=NONE gui=underline ctermfg=NONE ctermbg=NONE cterm=underline
+hi Label guifg=#ffdf00 guibg=NONE gui=NONE cterm=NONE
+hi! link Boolean Constant
+hi! link Character Constant
+hi! link Conditional Statement
+hi! link Define PreProc
+hi! link Delimiter Special
+hi! link Exception Statement
+hi! link Float Constant
+hi! link Function Identifier
+hi! link Include PreProc
+hi! link Keyword Statement
+hi! link Macro PreProc
+hi! link Number Constant
+hi! link Operator Type
+hi! link PreCondit PreProc
+hi! link Repeat Statement
+hi! link SpecialChar Special
+hi! link SpecialComment Special
+hi! link StorageClass Type
+hi! link String Constant
+hi! link Structure Type
+hi! link Tag Special
+hi! link Typedef Type
+hi! link Terminal Normal
+hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
+hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
+hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
+hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
+
+if s:t_Co >= 256
+ hi Normal ctermfg=220 ctermbg=18 cterm=NONE
+ hi CursorLine ctermfg=NONE ctermbg=25 cterm=NONE
+ hi Pmenu ctermfg=231 ctermbg=30 cterm=NONE
+ hi PmenuSel ctermfg=30 ctermbg=231 cterm=NONE
+ hi QuickFixLine ctermfg=16 ctermbg=176 cterm=NONE
+ hi ColorColumn ctermfg=NONE ctermbg=90 cterm=NONE
+ hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi Cursor ctermfg=16 ctermbg=46 cterm=NONE
+ hi CursorColumn ctermfg=NONE ctermbg=25 cterm=NONE
+ hi CursorIM ctermfg=NONE ctermbg=fg cterm=NONE
+ hi CursorLineNr ctermfg=220 ctermbg=25 cterm=NONE
+ hi EndOfBuffer ctermfg=220 ctermbg=18 cterm=NONE
+ hi Error ctermfg=209 ctermbg=18 cterm=reverse
+ hi ErrorMsg ctermfg=231 ctermbg=160 cterm=NONE
+ hi FoldColumn ctermfg=30 ctermbg=NONE cterm=NONE
+ hi Folded ctermfg=18 ctermbg=100 cterm=NONE
+ hi IncSearch ctermfg=176 ctermbg=16 cterm=reverse
+ hi LineNr ctermfg=87 ctermbg=NONE cterm=NONE
+ hi MatchParen ctermfg=NONE ctermbg=NONE cterm=reverse
+ hi ModeMsg ctermfg=18 ctermbg=46 cterm=NONE
+ hi MoreMsg ctermfg=87 ctermbg=NONE cterm=NONE
+ hi NonText ctermfg=176 ctermbg=NONE cterm=NONE
+ hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi PmenuThumb ctermfg=NONE ctermbg=231 cterm=NONE
+ hi Question ctermfg=46 ctermbg=NONE cterm=NONE
+ hi Search ctermfg=220 ctermbg=16 cterm=reverse
+ hi SignColumn ctermfg=30 ctermbg=NONE cterm=NONE
+ hi SpecialKey ctermfg=87 ctermbg=NONE cterm=NONE
+ hi SpellBad ctermfg=160 ctermbg=NONE cterm=underline
+ hi SpellCap ctermfg=46 ctermbg=NONE cterm=underline
+ hi SpellLocal ctermfg=231 ctermbg=NONE cterm=underline
+ hi SpellRare ctermfg=176 ctermbg=NONE cterm=underline
+ hi StatusLine ctermfg=18 ctermbg=87 cterm=NONE
+ hi StatusLineNC ctermfg=18 ctermbg=30 cterm=NONE
+ hi! link StatusLineTerm StatusLine
+ hi! link StatusLineTermNC StatusLineNC
+ hi! link TabLine StatusLineNC
+ hi! link TabLineFill StatusLineNC
+ hi! link TabLineSel StatusLine
+ hi ToolbarButton ctermfg=231 ctermbg=25 cterm=NONE
+ hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi VertSplit ctermfg=30 ctermbg=NONE cterm=NONE
+ hi Visual ctermfg=231 ctermbg=30 cterm=NONE
+ hi VisualNOS ctermfg=30 ctermbg=231 cterm=NONE
+ hi WarningMsg ctermfg=160 ctermbg=NONE cterm=NONE
+ hi WildMenu ctermfg=18 ctermbg=220 cterm=NONE
+ hi debugBreakpoint ctermfg=46 ctermbg=18 cterm=reverse
+ hi debugPC ctermfg=87 ctermbg=18 cterm=reverse
+ hi! link Terminal Normal
+ hi! link Debug Special
+ hi! link diffAdded String
+ hi! link diffRemoved WarningMsg
+ hi! link diffOnly WarningMsg
+ hi! link diffNoEOL WarningMsg
+ hi! link diffIsA WarningMsg
+ hi! link diffIdentical WarningMsg
+ hi! link diffDiffer WarningMsg
+ hi! link diffCommon WarningMsg
+ hi! link diffBDiffer WarningMsg
+ hi! link lCursor Cursor
+ hi! link LineNrAbove LineNr
+ hi! link LineNrBelow LineNr
+ hi! link CurSearch Search
+ hi! link CursorLineFold CursorLine
+ hi! link CursorLineSign CursorLine
+ hi Directory ctermfg=87 ctermbg=NONE cterm=NONE
+ hi Title ctermfg=176 ctermbg=NONE cterm=NONE
+ hi Comment ctermfg=102 ctermbg=NONE cterm=NONE
+ hi Constant ctermfg=87 ctermbg=NONE cterm=NONE
+ hi Identifier ctermfg=250 ctermbg=NONE cterm=NONE
+ hi Ignore ctermfg=102 ctermbg=NONE cterm=NONE
+ hi PreProc ctermfg=46 ctermbg=NONE cterm=NONE
+ hi Special ctermfg=176 ctermbg=NONE cterm=NONE
+ hi Statement ctermfg=231 ctermbg=NONE cterm=NONE
+ hi Todo ctermfg=NONE ctermbg=NONE cterm=reverse
+ hi Type ctermfg=214 ctermbg=NONE cterm=NONE
+ hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
+ hi Label ctermfg=220 ctermbg=NONE cterm=NONE
+ hi! link Boolean Constant
+ hi! link Character Constant
+ hi! link Conditional Statement
+ hi! link Define PreProc
+ hi! link Delimiter Special
+ hi! link Exception Statement
+ hi! link Float Constant
+ hi! link Function Identifier
+ hi! link Include PreProc
+ hi! link Keyword Statement
+ hi! link Macro PreProc
+ hi! link Number Constant
+ hi! link Operator Type
+ hi! link PreCondit PreProc
+ hi! link Repeat Statement
+ hi! link SpecialChar Special
+ hi! link SpecialComment Special
+ hi! link StorageClass Type
+ hi! link String Constant
+ hi! link Structure Type
+ hi! link Tag Special
+ hi! link Typedef Type
+ hi! link Terminal Normal
+ hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
+ hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
+ hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
+ hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
+ unlet s:t_Co
+ finish
+endif
+
+if s:t_Co >= 16
+ hi Normal ctermfg=yellow ctermbg=darkblue cterm=NONE
+ hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
+ hi Pmenu ctermfg=black ctermbg=darkcyan cterm=NONE
+ hi PmenuSel ctermfg=black ctermbg=white cterm=NONE
+ hi QuickFixLine ctermfg=black ctermbg=magenta cterm=NONE
+ hi ColorColumn ctermfg=NONE ctermbg=darkmagenta cterm=NONE
+ hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi Cursor ctermfg=black ctermbg=green cterm=NONE
+ hi CursorColumn ctermfg=NONE ctermbg=blue cterm=NONE
+ hi CursorIM ctermfg=NONE ctermbg=fg cterm=NONE
+ hi CursorLineNr ctermfg=yellow ctermbg=blue cterm=NONE
+ hi EndOfBuffer ctermfg=yellow ctermbg=darkblue cterm=NONE
+ hi Error ctermfg=red ctermbg=darkblue cterm=reverse
+ hi ErrorMsg ctermfg=white ctermbg=red cterm=NONE
+ hi FoldColumn ctermfg=darkcyan ctermbg=NONE cterm=NONE
+ hi Folded ctermfg=darkblue ctermbg=darkyellow cterm=NONE
+ hi IncSearch ctermfg=magenta ctermbg=black cterm=reverse
+ hi LineNr ctermfg=cyan ctermbg=NONE cterm=NONE
+ hi MatchParen ctermfg=NONE ctermbg=NONE cterm=reverse
+ hi ModeMsg ctermfg=darkblue ctermbg=green cterm=NONE
+ hi MoreMsg ctermfg=cyan ctermbg=NONE cterm=NONE
+ hi NonText ctermfg=magenta ctermbg=NONE cterm=NONE
+ hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi PmenuThumb ctermfg=NONE ctermbg=white cterm=NONE
+ hi Question ctermfg=green ctermbg=NONE cterm=NONE
+ hi Search ctermfg=yellow ctermbg=black cterm=reverse
+ hi SignColumn ctermfg=darkcyan ctermbg=NONE cterm=NONE
+ hi SpecialKey ctermfg=cyan ctermbg=NONE cterm=NONE
+ hi SpellBad ctermfg=red ctermbg=NONE cterm=underline
+ hi SpellCap ctermfg=green ctermbg=NONE cterm=underline
+ hi SpellLocal ctermfg=white ctermbg=NONE cterm=underline
+ hi SpellRare ctermfg=magenta ctermbg=NONE cterm=underline
+ hi StatusLine ctermfg=darkblue ctermbg=cyan cterm=NONE
+ hi StatusLineNC ctermfg=darkblue ctermbg=darkcyan cterm=NONE
+ hi! link StatusLineTerm StatusLine
+ hi! link StatusLineTermNC StatusLineNC
+ hi! link TabLine StatusLineNC
+ hi! link TabLineFill StatusLineNC
+ hi! link TabLineSel StatusLine
+ hi ToolbarButton ctermfg=white ctermbg=blue cterm=NONE
+ hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi VertSplit ctermfg=darkcyan ctermbg=NONE cterm=NONE
+ hi Visual ctermfg=white ctermbg=darkcyan cterm=NONE
+ hi VisualNOS ctermfg=darkcyan ctermbg=white cterm=NONE
+ hi WarningMsg ctermfg=red ctermbg=NONE cterm=NONE
+ hi WildMenu ctermfg=darkblue ctermbg=yellow cterm=NONE
+ hi debugBreakpoint ctermfg=green ctermbg=darkblue cterm=reverse
+ hi debugPC ctermfg=cyan ctermbg=darkblue cterm=reverse
+ hi! link Terminal Normal
+ hi! link Debug Special
+ hi! link diffAdded String
+ hi! link diffRemoved WarningMsg
+ hi! link diffOnly WarningMsg
+ hi! link diffNoEOL WarningMsg
+ hi! link diffIsA WarningMsg
+ hi! link diffIdentical WarningMsg
+ hi! link diffDiffer WarningMsg
+ hi! link diffCommon WarningMsg
+ hi! link diffBDiffer WarningMsg
+ hi! link lCursor Cursor
+ hi! link LineNrAbove LineNr
+ hi! link LineNrBelow LineNr
+ hi! link CurSearch Search
+ hi! link CursorLineFold CursorLine
+ hi! link CursorLineSign CursorLine
+ hi Directory ctermfg=cyan ctermbg=NONE cterm=NONE
+ hi Title ctermfg=magenta ctermbg=NONE cterm=NONE
+ hi Comment ctermfg=darkgray ctermbg=NONE cterm=NONE
+ hi Constant ctermfg=cyan ctermbg=NONE cterm=NONE
+ hi Identifier ctermfg=gray ctermbg=NONE cterm=NONE
+ hi Ignore ctermfg=darkgray ctermbg=NONE cterm=NONE
+ hi PreProc ctermfg=green ctermbg=NONE cterm=NONE
+ hi Special ctermfg=magenta ctermbg=NONE cterm=NONE
+ hi Statement ctermfg=white ctermbg=NONE cterm=NONE
+ hi Todo ctermfg=NONE ctermbg=NONE cterm=reverse
+ hi Type ctermfg=darkyellow ctermbg=NONE cterm=NONE
+ hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
+ hi Label ctermfg=yellow ctermbg=NONE cterm=NONE
+ hi! link Boolean Constant
+ hi! link Character Constant
+ hi! link Conditional Statement
+ hi! link Define PreProc
+ hi! link Delimiter Special
+ hi! link Exception Statement
+ hi! link Float Constant
+ hi! link Function Identifier
+ hi! link Include PreProc
+ hi! link Keyword Statement
+ hi! link Macro PreProc
+ hi! link Number Constant
+ hi! link Operator Type
+ hi! link PreCondit PreProc
+ hi! link Repeat Statement
+ hi! link SpecialChar Special
+ hi! link SpecialComment Special
+ hi! link StorageClass Type
+ hi! link String Constant
+ hi! link Structure Type
+ hi! link Tag Special
+ hi! link Typedef Type
+ hi! link Terminal Normal
+ hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
+ hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
+ hi DiffText ctermfg=black ctermbg=grey cterm=NONE
+ hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
+ unlet s:t_Co
+ finish
+endif
+
+if s:t_Co >= 0
+ hi Normal term=NONE
+ hi ColorColumn term=reverse
+ hi Conceal term=NONE
+ hi Cursor term=reverse
+ hi CursorColumn term=NONE
+ hi CursorLine term=underline
+ hi CursorLineNr term=bold
+ hi DiffAdd term=reverse
+ hi DiffChange term=NONE
+ hi DiffDelete term=reverse
+ hi DiffText term=reverse
+ hi Directory term=NONE
+ hi EndOfBuffer term=NONE
+ hi ErrorMsg term=bold,reverse
+ hi FoldColumn term=NONE
+ hi Folded term=NONE
+ hi IncSearch term=bold,reverse,underline
+ hi LineNr term=NONE
+ hi MatchParen term=bold,underline
+ hi ModeMsg term=bold
+ hi MoreMsg term=NONE
+ hi NonText term=NONE
+ hi Pmenu term=reverse
+ hi PmenuSbar term=reverse
+ hi PmenuSel term=bold
+ hi PmenuThumb term=NONE
+ hi Question term=standout
+ hi Search term=reverse
+ hi SignColumn term=reverse
+ hi SpecialKey term=bold
+ hi SpellBad term=underline
+ hi SpellCap term=underline
+ hi SpellLocal term=underline
+ hi SpellRare term=underline
+ hi StatusLine term=bold,reverse
+ hi StatusLineNC term=bold,underline
+ hi TabLine term=bold,underline
+ hi TabLineFill term=NONE
+ hi Terminal term=NONE
+ hi TabLineSel term=bold,reverse
+ hi Title term=NONE
+ hi VertSplit term=NONE
+ hi Visual term=reverse
+ hi VisualNOS term=NONE
+ hi WarningMsg term=standout
+ hi WildMenu term=bold
+ hi CursorIM term=NONE
+ hi ToolbarLine term=reverse
+ hi ToolbarButton term=bold,reverse
+ hi CurSearch term=reverse
+ hi CursorLineFold term=underline
+ hi CursorLineSign term=underline
+ hi Comment term=bold
+ hi Constant term=NONE
+ hi Error term=bold,reverse
+ hi Identifier term=NONE
+ hi Ignore term=NONE
+ hi PreProc term=NONE
+ hi Special term=NONE
+ hi Statement term=NONE
+ hi Todo term=bold,reverse
+ hi Type term=NONE
+ hi Underlined term=underline
+ unlet s:t_Co
+ finish
endif
-let g:colors_name = "blue"
-hi Normal guifg=yellow guibg=darkBlue ctermfg=yellow ctermbg=darkBlue
-hi NonText guifg=magenta ctermfg=lightMagenta
-hi comment guifg=gray ctermfg=gray ctermbg=darkBlue gui=bold
-hi constant guifg=cyan ctermfg=cyan
-hi identifier guifg=gray ctermfg=red
-hi statement guifg=white ctermfg=white ctermbg=darkBlue gui=none
-hi preproc guifg=green ctermfg=green
-hi type guifg=orange ctermfg=lightRed ctermbg=darkBlue
-hi special guifg=magenta ctermfg=lightMagenta ctermbg=darkBlue
-hi Underlined guifg=cyan ctermfg=cyan gui=underline cterm=underline
-hi label guifg=yellow ctermfg=yellow
-hi operator guifg=orange gui=bold ctermfg=lightRed ctermbg=darkBlue
-
-hi ErrorMsg guifg=orange guibg=darkBlue ctermfg=lightRed
-hi WarningMsg guifg=cyan guibg=darkBlue ctermfg=cyan gui=bold
-hi ModeMsg guifg=yellow gui=NONE ctermfg=yellow
-hi MoreMsg guifg=yellow gui=NONE ctermfg=yellow
-hi Error guifg=red guibg=darkBlue gui=underline ctermfg=red
-
-hi Todo guifg=black guibg=orange ctermfg=black ctermbg=darkYellow
-hi Cursor guifg=black guibg=white ctermfg=black ctermbg=white
-hi Search guifg=black guibg=orange ctermfg=black ctermbg=darkYellow
-hi IncSearch guifg=black guibg=yellow ctermfg=black ctermbg=darkYellow
-hi LineNr guifg=cyan ctermfg=cyan
-hi title guifg=white gui=bold cterm=bold
-
-hi StatusLineNC gui=NONE guifg=black guibg=blue ctermfg=black ctermbg=blue
-hi StatusLine gui=bold guifg=cyan guibg=blue ctermfg=cyan ctermbg=blue
-hi VertSplit gui=none guifg=blue guibg=blue ctermfg=blue ctermbg=blue
-
-hi Visual term=reverse ctermfg=black ctermbg=darkCyan guifg=black guibg=darkCyan
-
-hi DiffChange guibg=darkGreen guifg=black ctermbg=darkGreen ctermfg=black
-hi DiffText guibg=olivedrab guifg=black ctermbg=lightGreen ctermfg=black
-hi DiffAdd guibg=slateblue guifg=black ctermbg=blue ctermfg=black
-hi DiffDelete guibg=coral guifg=black ctermbg=cyan ctermfg=black
-
-hi Folded guibg=orange guifg=black ctermbg=yellow ctermfg=black
-hi FoldColumn guibg=gray30 guifg=black ctermbg=gray ctermfg=black
-hi cIf0 guifg=gray ctermfg=gray
+" Background: dark
+" Color: black #000000 16 black
+" Color: darkred #870000 88 darkred
+" Color: darkyellow #878700 100 darkyellow
+" Color: darkblue #000087 18 darkblue
+" Color: darkmagenta #870087 90 darkmagenta
+" Color: darkcyan #008787 30 darkcyan
+" Color: gray #bcbcbc 250 gray
+" Color: comment #878787 102 darkgray
+" Color: darkgray #878787 102 darkgray
+" Color: red #d70000 160 red
+" Color: green #00ff00 46 green
+" Color: yellow #ffdf00 220 yellow
+" Color: blue #005faf 25 blue
+" Color: magenta #d787d7 176 magenta
+" Color: cyan #5fffff 87 cyan
+" Color: white #ffffff 231 white
+" Color: xtermblue #5fafff 75 blue
+" Color: xtermdarkblue #0087af 31 darkblue
+" Color: orange #ffa500 214 darkyellow
+" Color: darkgreen #006400 22 darkgreen
+" Color: coral #ff7f50 209 red
+" Color: olivedrab #6b8e23 64 green
+" Color: slateblue #6a5acd 62 darkmagenta
+" Term colors: black darkred darkgreen darkyellow darkblue darkmagenta darkcyan gray
+" Term colors: darkgray red green yellow xtermblue magenta cyan white
+" Color: bgDiffA #5F875F 65 darkgreen
+" Color: bgDiffC #5F87AF 67 blue
+" Color: bgDiffD #AF5FAF 133 magenta
+" Color: bgDiffT #C6C6C6 251 grey
+" Color: fgDiffW #FFFFFF 231 white
+" Color: fgDiffB #000000 16 black
+" vim: et ts=2 sw=2
diff --git a/runtime/colors/darkblue.vim b/runtime/colors/darkblue.vim
index 88f0bd73b9..63f517ed90 100644
--- a/runtime/colors/darkblue.vim
+++ b/runtime/colors/darkblue.vim
@@ -1,65 +1,469 @@
-" Vim color file
-" Maintainer: Bohdan Vlasyuk <bohdan@vstu.edu.ua>
-" Last Change: 2008 Jul 18
+" Name: darkblue
+" Description: For those who prefer dark background
+" Author: Original author Bohdan Vlasyuk <bohdan@vstu.edu.ua>
+" Maintainer: Original author Bohdan Vlasyuk <bohdan@vstu.edu.ua>
+" Website: https://github.com/vim/colorschemes
+" License: Same as Vim
+" Last Updated: Wed May 11 22:56:33 2022
-" darkblue -- for those who prefer dark background
-" [note: looks bit uglier with come terminal palettes,
-" but is fine on default linux console palette.]
+" Generated by Colortemplate v2.2.0
-set bg=dark
-hi clear
-if exists("syntax_on")
- syntax reset
-endif
-
-let colors_name = "darkblue"
-
-hi Normal guifg=#c0c0c0 guibg=#000040 ctermfg=gray ctermbg=black
-hi ErrorMsg guifg=#ffffff guibg=#287eff ctermfg=white ctermbg=lightblue
-hi Visual guifg=#8080ff guibg=fg gui=reverse ctermfg=lightblue ctermbg=fg cterm=reverse
-hi Todo guifg=#d14a14 guibg=#1248d1 ctermfg=red ctermbg=darkblue
-hi Search guifg=#90fff0 guibg=#2050d0 ctermfg=white ctermbg=darkblue cterm=underline term=underline
-hi IncSearch guifg=#b0ffff guibg=#2050d0 ctermfg=darkblue ctermbg=gray
-
-hi SpecialKey guifg=cyan ctermfg=darkcyan
-hi Directory guifg=cyan ctermfg=cyan
-hi Title guifg=magenta gui=none ctermfg=magenta cterm=bold
-hi WarningMsg guifg=red ctermfg=red
-hi WildMenu guifg=yellow guibg=black ctermfg=yellow ctermbg=black cterm=none term=none
-hi ModeMsg guifg=#22cce2 ctermfg=lightblue
-hi MoreMsg ctermfg=darkgreen ctermfg=darkgreen
-hi Question guifg=green gui=none ctermfg=green cterm=none
-hi NonText guifg=#0030ff ctermfg=darkblue
+set background=dark
-hi StatusLine guifg=blue guibg=darkgray gui=none ctermfg=blue ctermbg=gray term=none cterm=none
-hi StatusLineNC guifg=black guibg=darkgray gui=none ctermfg=black ctermbg=gray term=none cterm=none
-hi VertSplit guifg=black guibg=darkgray gui=none ctermfg=black ctermbg=gray term=none cterm=none
+hi clear
+let g:colors_name = 'darkblue'
-hi Folded guifg=#808080 guibg=#000040 ctermfg=darkgrey ctermbg=black cterm=bold term=bold
-hi FoldColumn guifg=#808080 guibg=#000040 ctermfg=darkgrey ctermbg=black cterm=bold term=bold
-hi LineNr guifg=#90f020 ctermfg=green cterm=none
+let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
-hi DiffAdd guibg=darkblue ctermbg=darkblue term=none cterm=none
-hi DiffChange guibg=darkmagenta ctermbg=magenta cterm=none
-hi DiffDelete ctermfg=blue ctermbg=cyan gui=bold guifg=Blue guibg=DarkCyan
-hi DiffText cterm=bold ctermbg=red gui=bold guibg=Red
+if (has('termguicolors') && &termguicolors) || has('gui_running')
+ let g:terminal_ansi_colors = ['#000000', '#8b0000', '#90f020', '#ffa500', '#00008b', '#8b008b', '#008b8b', '#c0c0c0', '#808080', '#ffa0a0', '#90f020', '#ffff60', '#0030ff', '#ff00ff', '#90fff0', '#ffffff']
+endif
+hi Normal guifg=#c0c0c0 guibg=#000040 gui=NONE cterm=NONE
+hi! link Terminal Normal
+hi Conceal guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi ColorColumn guifg=#c0c0c0 guibg=#8b0000 gui=NONE cterm=NONE
+hi Cursor guifg=#000000 guibg=#ffff60 gui=NONE cterm=NONE
+hi! link CursorColumn CursorLine
+hi! link CursorIM Cursor
+hi CursorLine guifg=NONE guibg=#666666 gui=NONE cterm=NONE
+hi CursorLineNr guifg=#ffff60 guibg=#666666 gui=NONE cterm=NONE
+hi QuickFixLine guifg=#000000 guibg=#ff80ff gui=NONE cterm=NONE
+hi DiffAdd guifg=NONE guibg=#0030ff gui=NONE cterm=NONE
+hi DiffChange guifg=NONE guibg=#404080 gui=NONE cterm=NONE
+hi DiffDelete guifg=#000040 guibg=#008b8b gui=NONE cterm=NONE
+hi DiffText guifg=NONE guibg=#008b8b gui=NONE cterm=NONE
+hi! link EndOfBuffer NonText
+hi Error guifg=#ffa0a0 guibg=NONE gui=reverse cterm=reverse
+hi! link ErrorMsg Error
+hi FoldColumn guifg=#808080 guibg=NONE gui=bold cterm=NONE
+hi Folded guifg=#808080 guibg=NONE gui=bold cterm=NONE
+hi IncSearch guifg=#ffffff guibg=#0030ff gui=reverse cterm=reverse
+hi LineNr guifg=#90f020 guibg=NONE gui=NONE cterm=NONE
+hi! link LineNrAbove LineNr
+hi! link LineNrBelow LineNr
+hi MatchParen guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse
+hi ModeMsg guifg=#90fff0 guibg=NONE gui=NONE cterm=NONE
+hi MoreMsg guifg=#006400 guibg=NONE gui=NONE cterm=NONE
+hi NonText guifg=#0030ff guibg=NONE gui=NONE cterm=NONE
+hi Pmenu guifg=#ffffff guibg=#0030ff gui=NONE cterm=NONE
+hi PmenuSbar guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi PmenuSel guifg=#0030ff guibg=#ffffff gui=NONE cterm=NONE
+hi PmenuThumb guifg=NONE guibg=#ffffff gui=NONE cterm=NONE
+hi Question guifg=#90f020 guibg=NONE gui=NONE cterm=NONE
+hi Search guifg=#90fff0 guibg=#0030ff gui=NONE cterm=NONE
+hi SignColumn guifg=#808080 guibg=NONE gui=NONE cterm=NONE
+hi SpecialKey guifg=#008b8b guibg=NONE gui=NONE cterm=NONE
+hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
+hi SpellCap guifg=#90f020 guibg=NONE guisp=#90f020 gui=undercurl cterm=underline
+hi SpellLocal guifg=#90fff0 guibg=NONE guisp=#90fff0 gui=undercurl cterm=underline
+hi SpellRare guifg=#ff00ff guibg=NONE guisp=#ff00ff gui=undercurl cterm=underline
+hi StatusLine guifg=#000040 guibg=#c0c0c0 gui=NONE cterm=NONE
+hi StatusLineNC guifg=#000000 guibg=#808080 gui=NONE cterm=NONE
+hi! link StatusLineTerm StatusLine
+hi! link StatusLineTermNC StatusLineNC
+hi TabLine guifg=#000000 guibg=#808080 gui=NONE cterm=NONE
+hi! link TabLineFill TabLine
+hi TabLineSel guifg=#000040 guibg=#c0c0c0 gui=NONE cterm=NONE
+hi ToolbarButton guifg=#ffffff guibg=#0030ff gui=NONE cterm=NONE
+hi ToolbarLine guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi VertSplit guifg=#000000 guibg=#808080 gui=NONE cterm=NONE
+hi Visual guifg=#8080ff guibg=#ffffff gui=reverse cterm=reverse
+hi VisualNOS guifg=#8080ff guibg=#c0c0c0 gui=reverse,underline cterm=reverse,underline
+hi WarningMsg guifg=#ff0000 guibg=NONE gui=NONE cterm=NONE
+hi WildMenu guifg=#ffff60 guibg=#000000 gui=NONE cterm=NONE
+hi debugBreakpoint guifg=#90f020 guibg=#00008b gui=reverse cterm=reverse
+hi debugPC guifg=#90fff0 guibg=#00008b gui=reverse cterm=reverse
+hi! link Terminal Normal
+hi! link Debug Special
+hi! link diffAdded String
+hi! link diffRemoved WarningMsg
+hi! link diffOnly WarningMsg
+hi! link diffNoEOL WarningMsg
+hi! link diffIsA WarningMsg
+hi! link diffIdentical WarningMsg
+hi! link diffDiffer WarningMsg
+hi! link diffCommon WarningMsg
+hi! link diffBDiffer WarningMsg
+hi! link lCursor Cursor
+hi! link CurSearch Search
+hi! link CursorLineFold CursorLine
+hi! link CursorLineSign CursorLine
+hi Directory guifg=#008b8b guibg=NONE gui=NONE cterm=NONE
+hi Title guifg=#ff00ff guibg=NONE gui=NONE cterm=NONE
+hi Comment guifg=#80a0ff guibg=NONE gui=NONE cterm=NONE
+hi Constant guifg=#ffa0a0 guibg=NONE gui=NONE cterm=NONE
+hi Identifier guifg=#90fff0 guibg=NONE gui=NONE cterm=NONE
+hi Ignore guifg=#000040 guibg=#c0c0c0 gui=NONE cterm=NONE
+hi PreProc guifg=#ff80ff guibg=NONE gui=NONE cterm=NONE
+hi Special guifg=#ffa500 guibg=NONE gui=NONE cterm=NONE
+hi Statement guifg=#ffff60 guibg=NONE gui=NONE cterm=NONE
+hi Todo guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse
+hi Type guifg=#90f020 guibg=NONE gui=NONE cterm=NONE
+hi Underlined guifg=#80a0ff guibg=NONE gui=underline cterm=underline
+hi! link Boolean Constant
+hi! link Character Constant
+hi! link Conditional Statement
+hi! link Define PreProc
+hi! link Delimiter Special
+hi! link Exception Statement
+hi! link Float Constant
+hi! link Function Identifier
+hi! link Include PreProc
+hi! link Keyword Statement
+hi! link Label Statement
+hi! link Macro PreProc
+hi! link Number Constant
+hi! link Operator Statement
+hi! link PreCondit PreProc
+hi! link Repeat Statement
+hi! link SpecialChar Special
+hi! link SpecialComment Special
+hi! link StorageClass Type
+hi! link String Constant
+hi! link Structure Type
+hi! link Tag Special
+hi! link Typedef Type
+hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
+hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
+hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
+hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
-hi Cursor guifg=black guibg=yellow ctermfg=black ctermbg=yellow
-hi lCursor guifg=black guibg=white ctermfg=black ctermbg=white
+if s:t_Co >= 256
+ hi Normal ctermfg=252 ctermbg=17 cterm=NONE
+ hi! link Terminal Normal
+ hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi ColorColumn ctermfg=252 ctermbg=88 cterm=NONE
+ hi Cursor ctermfg=16 ctermbg=227 cterm=NONE
+ hi! link CursorColumn CursorLine
+ hi! link CursorIM Cursor
+ hi CursorLine ctermfg=NONE ctermbg=59 cterm=NONE
+ hi CursorLineNr ctermfg=227 ctermbg=59 cterm=NONE
+ hi QuickFixLine ctermfg=16 ctermbg=213 cterm=NONE
+ hi DiffAdd ctermfg=NONE ctermbg=27 cterm=NONE
+ hi DiffChange ctermfg=NONE ctermbg=61 cterm=NONE
+ hi DiffDelete ctermfg=17 ctermbg=30 cterm=NONE
+ hi DiffText ctermfg=NONE ctermbg=30 cterm=NONE
+ hi! link EndOfBuffer NonText
+ hi Error ctermfg=217 ctermbg=NONE cterm=reverse
+ hi! link ErrorMsg Error
+ hi FoldColumn ctermfg=102 ctermbg=NONE cterm=NONE
+ hi Folded ctermfg=102 ctermbg=NONE cterm=NONE
+ hi IncSearch ctermfg=231 ctermbg=27 cterm=reverse
+ hi LineNr ctermfg=118 ctermbg=NONE cterm=NONE
+ hi! link LineNrAbove LineNr
+ hi! link LineNrBelow LineNr
+ hi MatchParen ctermfg=NONE ctermbg=NONE cterm=reverse
+ hi ModeMsg ctermfg=123 ctermbg=NONE cterm=NONE
+ hi MoreMsg ctermfg=22 ctermbg=NONE cterm=NONE
+ hi NonText ctermfg=27 ctermbg=NONE cterm=NONE
+ hi Pmenu ctermfg=231 ctermbg=27 cterm=NONE
+ hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi PmenuSel ctermfg=27 ctermbg=231 cterm=NONE
+ hi PmenuThumb ctermfg=NONE ctermbg=231 cterm=NONE
+ hi Question ctermfg=118 ctermbg=NONE cterm=NONE
+ hi Search ctermfg=123 ctermbg=27 cterm=NONE
+ hi SignColumn ctermfg=102 ctermbg=NONE cterm=NONE
+ hi SpecialKey ctermfg=30 ctermbg=NONE cterm=NONE
+ hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
+ hi SpellCap ctermfg=118 ctermbg=NONE cterm=underline
+ hi SpellLocal ctermfg=123 ctermbg=NONE cterm=underline
+ hi SpellRare ctermfg=201 ctermbg=NONE cterm=underline
+ hi StatusLine ctermfg=17 ctermbg=252 cterm=NONE
+ hi StatusLineNC ctermfg=16 ctermbg=102 cterm=NONE
+ hi! link StatusLineTerm StatusLine
+ hi! link StatusLineTermNC StatusLineNC
+ hi TabLine ctermfg=16 ctermbg=102 cterm=NONE
+ hi! link TabLineFill TabLine
+ hi TabLineSel ctermfg=17 ctermbg=252 cterm=NONE
+ hi ToolbarButton ctermfg=231 ctermbg=27 cterm=NONE
+ hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi VertSplit ctermfg=16 ctermbg=102 cterm=NONE
+ hi Visual ctermfg=105 ctermbg=231 cterm=reverse
+ hi VisualNOS ctermfg=105 ctermbg=252 cterm=reverse,underline
+ hi WarningMsg ctermfg=196 ctermbg=NONE cterm=NONE
+ hi WildMenu ctermfg=227 ctermbg=16 cterm=NONE
+ hi debugBreakpoint ctermfg=118 ctermbg=18 cterm=reverse
+ hi debugPC ctermfg=123 ctermbg=18 cterm=reverse
+ hi! link Terminal Normal
+ hi! link Debug Special
+ hi! link diffAdded String
+ hi! link diffRemoved WarningMsg
+ hi! link diffOnly WarningMsg
+ hi! link diffNoEOL WarningMsg
+ hi! link diffIsA WarningMsg
+ hi! link diffIdentical WarningMsg
+ hi! link diffDiffer WarningMsg
+ hi! link diffCommon WarningMsg
+ hi! link diffBDiffer WarningMsg
+ hi! link lCursor Cursor
+ hi! link CurSearch Search
+ hi! link CursorLineFold CursorLine
+ hi! link CursorLineSign CursorLine
+ hi Directory ctermfg=30 ctermbg=NONE cterm=NONE
+ hi Title ctermfg=201 ctermbg=NONE cterm=NONE
+ hi Comment ctermfg=111 ctermbg=NONE cterm=NONE
+ hi Constant ctermfg=217 ctermbg=NONE cterm=NONE
+ hi Identifier ctermfg=123 ctermbg=NONE cterm=NONE
+ hi Ignore ctermfg=17 ctermbg=252 cterm=NONE
+ hi PreProc ctermfg=213 ctermbg=NONE cterm=NONE
+ hi Special ctermfg=214 ctermbg=NONE cterm=NONE
+ hi Statement ctermfg=227 ctermbg=NONE cterm=NONE
+ hi Todo ctermfg=NONE ctermbg=NONE cterm=reverse
+ hi Type ctermfg=118 ctermbg=NONE cterm=NONE
+ hi Underlined ctermfg=111 ctermbg=NONE cterm=underline
+ hi! link Boolean Constant
+ hi! link Character Constant
+ hi! link Conditional Statement
+ hi! link Define PreProc
+ hi! link Delimiter Special
+ hi! link Exception Statement
+ hi! link Float Constant
+ hi! link Function Identifier
+ hi! link Include PreProc
+ hi! link Keyword Statement
+ hi! link Label Statement
+ hi! link Macro PreProc
+ hi! link Number Constant
+ hi! link Operator Statement
+ hi! link PreCondit PreProc
+ hi! link Repeat Statement
+ hi! link SpecialChar Special
+ hi! link SpecialComment Special
+ hi! link StorageClass Type
+ hi! link String Constant
+ hi! link Structure Type
+ hi! link Tag Special
+ hi! link Typedef Type
+ hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
+ hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
+ hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
+ hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
+ unlet s:t_Co
+ finish
+endif
+if s:t_Co >= 16
+ hi Normal ctermfg=grey ctermbg=black cterm=NONE
+ hi! link Terminal Normal
+ hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi ColorColumn ctermfg=grey ctermbg=darkred cterm=NONE
+ hi Cursor ctermfg=black ctermbg=yellow cterm=NONE
+ hi! link CursorColumn CursorLine
+ hi! link CursorIM Cursor
+ hi CursorLine ctermfg=NONE ctermbg=darkgrey cterm=NONE
+ hi CursorLineNr ctermfg=yellow ctermbg=darkgrey cterm=NONE
+ hi QuickFixLine ctermfg=black ctermbg=magenta cterm=NONE
+ hi DiffAdd ctermfg=NONE ctermbg=blue cterm=NONE
+ hi DiffChange ctermfg=NONE ctermbg=darkblue cterm=NONE
+ hi DiffDelete ctermfg=black ctermbg=darkcyan cterm=NONE
+ hi DiffText ctermfg=NONE ctermbg=darkcyan cterm=NONE
+ hi! link EndOfBuffer NonText
+ hi Error ctermfg=red ctermbg=NONE cterm=reverse
+ hi! link ErrorMsg Error
+ hi FoldColumn ctermfg=darkgrey ctermbg=NONE cterm=NONE
+ hi Folded ctermfg=darkgrey ctermbg=NONE cterm=NONE
+ hi IncSearch ctermfg=white ctermbg=blue cterm=reverse
+ hi LineNr ctermfg=green ctermbg=NONE cterm=NONE
+ hi! link LineNrAbove LineNr
+ hi! link LineNrBelow LineNr
+ hi MatchParen ctermfg=NONE ctermbg=NONE cterm=reverse
+ hi ModeMsg ctermfg=cyan ctermbg=NONE cterm=NONE
+ hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
+ hi NonText ctermfg=blue ctermbg=NONE cterm=NONE
+ hi Pmenu ctermfg=white ctermbg=blue cterm=NONE
+ hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi PmenuSel ctermfg=blue ctermbg=white cterm=NONE
+ hi PmenuThumb ctermfg=NONE ctermbg=white cterm=NONE
+ hi Question ctermfg=green ctermbg=NONE cterm=NONE
+ hi Search ctermfg=cyan ctermbg=blue cterm=NONE
+ hi SignColumn ctermfg=darkgrey ctermbg=NONE cterm=NONE
+ hi SpecialKey ctermfg=darkcyan ctermbg=NONE cterm=NONE
+ hi SpellBad ctermfg=red ctermbg=NONE cterm=underline
+ hi SpellCap ctermfg=green ctermbg=NONE cterm=underline
+ hi SpellLocal ctermfg=cyan ctermbg=NONE cterm=underline
+ hi SpellRare ctermfg=darkmagenta ctermbg=NONE cterm=underline
+ hi StatusLine ctermfg=black ctermbg=grey cterm=NONE
+ hi StatusLineNC ctermfg=black ctermbg=darkgrey cterm=NONE
+ hi! link StatusLineTerm StatusLine
+ hi! link StatusLineTermNC StatusLineNC
+ hi TabLine ctermfg=black ctermbg=darkgrey cterm=NONE
+ hi! link TabLineFill TabLine
+ hi TabLineSel ctermfg=black ctermbg=grey cterm=NONE
+ hi ToolbarButton ctermfg=white ctermbg=blue cterm=NONE
+ hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi VertSplit ctermfg=black ctermbg=darkgrey cterm=NONE
+ hi Visual ctermfg=blue ctermbg=white cterm=reverse
+ hi VisualNOS ctermfg=blue ctermbg=grey cterm=reverse,underline
+ hi WarningMsg ctermfg=red ctermbg=NONE cterm=NONE
+ hi WildMenu ctermfg=yellow ctermbg=black cterm=NONE
+ hi debugBreakpoint ctermfg=green ctermbg=darkblue cterm=reverse
+ hi debugPC ctermfg=cyan ctermbg=darkblue cterm=reverse
+ hi! link Terminal Normal
+ hi! link Debug Special
+ hi! link diffAdded String
+ hi! link diffRemoved WarningMsg
+ hi! link diffOnly WarningMsg
+ hi! link diffNoEOL WarningMsg
+ hi! link diffIsA WarningMsg
+ hi! link diffIdentical WarningMsg
+ hi! link diffDiffer WarningMsg
+ hi! link diffCommon WarningMsg
+ hi! link diffBDiffer WarningMsg
+ hi! link lCursor Cursor
+ hi! link CurSearch Search
+ hi! link CursorLineFold CursorLine
+ hi! link CursorLineSign CursorLine
+ hi Directory ctermfg=darkcyan ctermbg=NONE cterm=NONE
+ hi Title ctermfg=darkmagenta ctermbg=NONE cterm=NONE
+ hi Comment ctermfg=blue ctermbg=NONE cterm=NONE
+ hi Constant ctermfg=red ctermbg=NONE cterm=NONE
+ hi Identifier ctermfg=cyan ctermbg=NONE cterm=NONE
+ hi Ignore ctermfg=black ctermbg=grey cterm=NONE
+ hi PreProc ctermfg=magenta ctermbg=NONE cterm=NONE
+ hi Special ctermfg=darkyellow ctermbg=NONE cterm=NONE
+ hi Statement ctermfg=yellow ctermbg=NONE cterm=NONE
+ hi Todo ctermfg=NONE ctermbg=NONE cterm=reverse
+ hi Type ctermfg=green ctermbg=NONE cterm=NONE
+ hi Underlined ctermfg=blue ctermbg=NONE cterm=underline
+ hi! link Boolean Constant
+ hi! link Character Constant
+ hi! link Conditional Statement
+ hi! link Define PreProc
+ hi! link Delimiter Special
+ hi! link Exception Statement
+ hi! link Float Constant
+ hi! link Function Identifier
+ hi! link Include PreProc
+ hi! link Keyword Statement
+ hi! link Label Statement
+ hi! link Macro PreProc
+ hi! link Number Constant
+ hi! link Operator Statement
+ hi! link PreCondit PreProc
+ hi! link Repeat Statement
+ hi! link SpecialChar Special
+ hi! link SpecialComment Special
+ hi! link StorageClass Type
+ hi! link String Constant
+ hi! link Structure Type
+ hi! link Tag Special
+ hi! link Typedef Type
+ hi TabLineSel ctermfg=white ctermbg=black cterm=NONE
+ hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
+ hi CursorLineNr ctermfg=yellow ctermbg=NONE cterm=underline
+ hi Search ctermfg=white ctermbg=blue cterm=NONE
+ hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
+ hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
+ hi DiffText ctermfg=black ctermbg=grey cterm=NONE
+ hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
+ unlet s:t_Co
+ finish
+endif
-hi Comment guifg=#80a0ff ctermfg=darkred
-hi Constant ctermfg=magenta guifg=#ffa0a0 cterm=none
-hi Special ctermfg=brown guifg=Orange cterm=none gui=none
-hi Identifier ctermfg=cyan guifg=#40ffff cterm=none
-hi Statement ctermfg=yellow cterm=none guifg=#ffff60 gui=none
-hi PreProc ctermfg=magenta guifg=#ff80ff gui=none cterm=none
-hi type ctermfg=green guifg=#60ff60 gui=none cterm=none
-hi Underlined cterm=underline term=underline
-hi Ignore guifg=bg ctermfg=bg
+if s:t_Co >= 0
+ hi Normal term=NONE
+ hi ColorColumn term=reverse
+ hi Conceal term=NONE
+ hi Cursor term=reverse
+ hi CursorColumn term=NONE
+ hi CursorLine term=underline
+ hi CursorLineNr term=bold
+ hi DiffAdd term=reverse
+ hi DiffChange term=NONE
+ hi DiffDelete term=reverse
+ hi DiffText term=reverse
+ hi Directory term=NONE
+ hi EndOfBuffer term=NONE
+ hi ErrorMsg term=bold,reverse
+ hi FoldColumn term=NONE
+ hi Folded term=NONE
+ hi IncSearch term=bold,reverse,underline
+ hi LineNr term=NONE
+ hi MatchParen term=bold,underline
+ hi ModeMsg term=bold
+ hi MoreMsg term=NONE
+ hi NonText term=NONE
+ hi Pmenu term=reverse
+ hi PmenuSbar term=reverse
+ hi PmenuSel term=bold
+ hi PmenuThumb term=NONE
+ hi Question term=standout
+ hi Search term=reverse
+ hi SignColumn term=reverse
+ hi SpecialKey term=bold
+ hi SpellBad term=underline
+ hi SpellCap term=underline
+ hi SpellLocal term=underline
+ hi SpellRare term=underline
+ hi StatusLine term=bold,reverse
+ hi StatusLineNC term=bold,underline
+ hi TabLine term=bold,underline
+ hi TabLineFill term=NONE
+ hi Terminal term=NONE
+ hi TabLineSel term=bold,reverse
+ hi Title term=NONE
+ hi VertSplit term=NONE
+ hi Visual term=reverse
+ hi VisualNOS term=NONE
+ hi WarningMsg term=standout
+ hi WildMenu term=bold
+ hi CursorIM term=NONE
+ hi ToolbarLine term=reverse
+ hi ToolbarButton term=bold,reverse
+ hi CurSearch term=reverse
+ hi CursorLineFold term=underline
+ hi CursorLineSign term=underline
+ hi Comment term=bold
+ hi Constant term=NONE
+ hi Error term=bold,reverse
+ hi Identifier term=NONE
+ hi Ignore term=NONE
+ hi PreProc term=NONE
+ hi Special term=NONE
+ hi Statement term=NONE
+ hi Todo term=bold,reverse
+ hi Type term=NONE
+ hi Underlined term=underline
+ unlet s:t_Co
+ finish
+endif
-" suggested by tigmoid, 2008 Jul 18
-hi Pmenu guifg=#c0c0c0 guibg=#404080
-hi PmenuSel guifg=#c0c0c0 guibg=#2050d0
-hi PmenuSbar guifg=blue guibg=darkgray
-hi PmenuThumb guifg=#c0c0c0
+" Background: dark
+" Color: white #FFFFFF 231 white
+" Color: black #000000 16 black
+" Color: diffc #0087af 31 darkcyan
+" Color: difft #005f87 24 cyan
+" Color: cursorl #666666 59 darkgrey
+" Color: ogDeepBlue #000040 17 black
+" Color: ogDarkBlue #00008b 18 darkblue
+" Color: ogBlue #0030ff 27 blue
+" Color: ogLightBlue #287eff 33 blue
+" Color: ogDarkGrey #a9a9a9 248 grey
+" Color: ogGrey #808080 102 darkgrey
+" Color: ogLightGrey #c0c0c0 252 grey
+" Color: ogDarkViolet #404080 61 darkblue
+" Color: ogViolet #8080ff 105 blue
+" Color: ogLightViolet #80a0ff 111 blue
+" Color: ogDarkGreen #006400 22 darkgreen
+" Color: ogGreen #90f020 118 green
+" Color: ogDarkCyan #008b8b 30 darkcyan
+" Color: ogCyan #90fff0 123 cyan
+" Color: ogLightCyan #b0ffff 159 cyan
+" Color: ogDarkerRed #8b0000 88 darkred
+" Color: ogDarkRed #d14a14 166 darkred
+" Color: ogRed #ff0000 196 red
+" Color: ogLightRed #ffa0a0 217 red
+" Color: ogDarkMag #8b008b 90 darkmagenta
+" Color: ogMagenta #ff00ff 201 darkmagenta
+" Color: ogLightMag #ff80ff 213 magenta
+" Color: ogOrange #ffa500 214 darkyellow
+" Color: ogYellow #ffff60 227 yellow
+" Term colors: black ogDarkerRed ogGreen ogOrange ogDarkBlue ogDarkMag ogDarkCyan ogLightGrey
+" Term colors: ogGrey ogLightRed ogGreen ogYellow ogBlue ogMagenta ogCyan white
+" Color: bgDiffA #5F875F 65 darkgreen
+" Color: bgDiffC #5F87AF 67 blue
+" Color: bgDiffD #AF5FAF 133 magenta
+" Color: bgDiffT #C6C6C6 251 grey
+" Color: fgDiffW #FFFFFF 231 white
+" Color: fgDiffB #000000 16 black
+" vim: et ts=2 sw=2
diff --git a/runtime/colors/delek.vim b/runtime/colors/delek.vim
index dd3a33a9e8..55b35b525c 100644
--- a/runtime/colors/delek.vim
+++ b/runtime/colors/delek.vim
@@ -1,54 +1,339 @@
-" Vim color file
-" Maintainer: David Schweikert <david@schweikert.ch>
-" Last Change: 2014 Mar 19
+" Name: delek
+" Description: Light background colorscheme.
+" Author: Original author David Schweikert <david@schweikert.ch>
+" Maintainer: Original maintainer David Schweikert <david@schweikert.ch>
+" Website: https://github.com/vim/colorschemes
+" License: Same as Vim
+" Last Updated: Wed May 11 22:56:34 2022
+
+" Generated by Colortemplate v2.2.0
+
+set background=light
hi clear
+let g:colors_name = 'delek'
+
+let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
+
+if (has('termguicolors') && &termguicolors) || has('gui_running')
+ let g:terminal_ansi_colors = ['#ffffff', '#0000ff', '#00cd00', '#cd00cd', '#008b8b', '#0000ff', '#ff1493', '#bcbcbc', '#ee0000', '#0000ff', '#00cd00', '#cd00cd', '#008b8b', '#0000ff', '#ff1493', '#000000']
+endif
+hi Normal guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE
+hi EndOfBuffer guifg=#bcbcbc guibg=NONE gui=NONE cterm=NONE
+hi StatusLine guifg=#ffff00 guibg=#00008b gui=bold cterm=NONE
+hi StatusLineNC guifg=#ffd700 guibg=#00008b gui=NONE cterm=NONE
+hi StatusLineTerm guifg=#ffff00 guibg=#0000ff gui=bold cterm=NONE
+hi StatusLineTermNC guifg=#e4e4e4 guibg=#0000ff gui=NONE cterm=NONE
+hi VertSplit guifg=#e4e4e4 guibg=#00008b gui=NONE cterm=NONE
+hi Pmenu guifg=#000000 guibg=#add8e6 gui=NONE cterm=NONE
+hi PmenuSel guifg=#ffffff guibg=#00008b gui=NONE cterm=NONE
+hi PmenuSbar guifg=NONE guibg=#ffffff gui=NONE cterm=NONE
+hi PmenuThumb guifg=NONE guibg=#008b8b gui=NONE cterm=NONE
+hi TabLine guifg=#000000 guibg=#e4e4e4 gui=NONE cterm=NONE
+hi TabLineFill guifg=NONE guibg=#bcbcbc gui=NONE cterm=NONE
+hi TabLineSel guifg=#000000 guibg=#ffffff gui=bold cterm=NONE
+hi ToolbarLine guifg=NONE guibg=#e4e4e4 gui=NONE cterm=NONE
+hi ToolbarButton guifg=#ffffff guibg=#bcbcbc gui=bold cterm=NONE
+hi NonText guifg=#bcbcbc guibg=NONE gui=NONE cterm=NONE
+hi SpecialKey guifg=#bcbcbc guibg=NONE gui=NONE cterm=NONE
+hi Folded guifg=#00008b guibg=#e4e4e4 gui=NONE cterm=NONE
+hi Visual guifg=#000000 guibg=#d0d0d0 gui=NONE cterm=NONE
+hi VisualNOS guifg=NONE guibg=#ee0000 gui=NONE cterm=NONE
+hi LineNr guifg=#a52a2a guibg=NONE gui=NONE cterm=NONE
+hi FoldColumn guifg=#00008b guibg=NONE gui=NONE cterm=NONE
+hi CursorColumn guifg=NONE guibg=#e4e4e4 gui=NONE cterm=NONE
+hi CursorLineNr guifg=#a52a2a guibg=NONE gui=bold cterm=NONE
+hi QuickFixLine guifg=#ffffff guibg=#008b8b gui=NONE cterm=NONE
+hi SignColumn guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi Underlined guifg=#6a5acd guibg=NONE gui=underline cterm=underline
+hi Error guifg=#ff0000 guibg=#ffffff gui=reverse cterm=reverse
+hi! link ErrorMsg Error
+hi WarningMsg guifg=#cd00cd guibg=#ffffff gui=NONE cterm=NONE
+hi MoreMsg guifg=#000000 guibg=#ffffff gui=bold cterm=NONE
+hi ModeMsg guifg=#000000 guibg=#ffffff gui=bold cterm=NONE
+hi Question guifg=#00cd00 guibg=NONE gui=bold cterm=NONE
+hi Todo guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi MatchParen guifg=#ffffff guibg=#ff1493 gui=NONE cterm=NONE
+hi Search guifg=#ffffff guibg=#cd00cd gui=NONE cterm=NONE
+hi IncSearch guifg=#00cd00 guibg=NONE gui=reverse cterm=reverse
+hi WildMenu guifg=#00008b guibg=#ffd700 gui=bold cterm=NONE
+hi ColorColumn guifg=#000000 guibg=#e4e4e4 gui=NONE cterm=NONE
+hi Cursor guifg=#ffffff guibg=#000000 gui=NONE cterm=NONE
+hi lCursor guifg=#000000 guibg=#00cd00 gui=NONE cterm=NONE
+hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
+hi SpellCap guifg=#008b8b guibg=NONE guisp=#008b8b gui=undercurl cterm=underline
+hi SpellLocal guifg=#0000ff guibg=NONE guisp=#0000ff gui=undercurl cterm=underline
+hi SpellRare guifg=#cd00cd guibg=NONE guisp=#cd00cd gui=undercurl cterm=underline
+hi debugBreakpoint guifg=#ffff00 guibg=#0000ff gui=NONE cterm=NONE
+hi debugPC guifg=#ff1493 guibg=#0000ff gui=NONE cterm=NONE
+hi Comment guifg=#ee0000 guibg=NONE gui=NONE cterm=NONE
+hi Constant guifg=#00cd00 guibg=NONE gui=NONE cterm=NONE
+hi Identifier guifg=#008b8b guibg=NONE gui=NONE cterm=NONE
+hi Statement guifg=#0000ff guibg=NONE gui=bold cterm=NONE
+hi PreProc guifg=#cd00cd guibg=NONE gui=NONE cterm=NONE
+hi Type guifg=#0000ff guibg=NONE gui=bold cterm=NONE
+hi Special guifg=#ff1493 guibg=NONE gui=NONE cterm=NONE
+hi Directory guifg=#008b8b guibg=NONE gui=bold cterm=NONE
+hi Conceal guifg=#ee0000 guibg=NONE gui=NONE cterm=NONE
+hi Ignore guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi Title guifg=#cd00cd guibg=NONE gui=bold cterm=NONE
+hi! link Terminal Normal
+hi! link LineNrAbove LineNr
+hi! link LineNrBelow LineNr
+hi! link CurSearch Search
+hi! link CursorLineFold CursorLine
+hi! link CursorLineSign CursorLine
+hi CursorLine guifg=NONE guibg=#e4e4e4 gui=NONE cterm=NONE
+hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
+hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
+hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
+hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
-let g:colors_name = "delek"
-
-" Normal should come first
-hi Normal guifg=Black guibg=White
-hi Cursor guifg=bg guibg=fg
-hi lCursor guifg=NONE guibg=Cyan
-
-" Note: we never set 'term' because the defaults for B&W terminals are OK
-hi DiffAdd ctermbg=LightBlue guibg=LightBlue
-hi DiffChange ctermbg=LightMagenta guibg=LightMagenta
-hi DiffDelete ctermfg=Blue ctermbg=LightCyan gui=bold guifg=Blue guibg=LightCyan
-hi DiffText ctermbg=Red cterm=bold gui=bold guibg=Red
-hi Directory ctermfg=DarkBlue guifg=Blue
-hi ErrorMsg ctermfg=White ctermbg=DarkRed guibg=Red guifg=White
-hi FoldColumn ctermfg=DarkBlue ctermbg=Grey guibg=Grey guifg=DarkBlue
-hi Folded ctermbg=Grey ctermfg=DarkBlue guibg=LightGrey guifg=DarkBlue
-hi IncSearch cterm=reverse gui=reverse
-hi LineNr ctermfg=Brown guifg=Brown
-hi ModeMsg cterm=bold gui=bold
-hi MoreMsg ctermfg=DarkGreen gui=bold guifg=SeaGreen
-hi NonText ctermfg=Blue gui=bold guifg=gray guibg=white
-hi Pmenu guibg=LightBlue
-hi PmenuSel ctermfg=White ctermbg=DarkBlue guifg=White guibg=DarkBlue
-hi Question ctermfg=DarkGreen gui=bold guifg=SeaGreen
-if &background == "light"
- hi Search ctermfg=NONE ctermbg=Yellow guibg=Yellow guifg=NONE
-else
- hi Search ctermfg=Black ctermbg=Yellow guibg=Yellow guifg=Black
+if s:t_Co >= 256
+ hi Normal ctermfg=16 ctermbg=231 cterm=NONE
+ hi EndOfBuffer ctermfg=250 ctermbg=NONE cterm=NONE
+ hi StatusLine ctermfg=226 ctermbg=18 cterm=NONE
+ hi StatusLineNC ctermfg=220 ctermbg=18 cterm=NONE
+ hi StatusLineTerm ctermfg=226 ctermbg=21 cterm=NONE
+ hi StatusLineTermNC ctermfg=254 ctermbg=21 cterm=NONE
+ hi VertSplit ctermfg=254 ctermbg=18 cterm=NONE
+ hi Pmenu ctermfg=16 ctermbg=152 cterm=NONE
+ hi PmenuSel ctermfg=231 ctermbg=18 cterm=NONE
+ hi PmenuSbar ctermfg=NONE ctermbg=231 cterm=NONE
+ hi PmenuThumb ctermfg=NONE ctermbg=30 cterm=NONE
+ hi TabLine ctermfg=16 ctermbg=254 cterm=NONE
+ hi TabLineFill ctermfg=NONE ctermbg=250 cterm=NONE
+ hi TabLineSel ctermfg=16 ctermbg=231 cterm=NONE
+ hi ToolbarLine ctermfg=NONE ctermbg=254 cterm=NONE
+ hi ToolbarButton ctermfg=231 ctermbg=250 cterm=NONE
+ hi NonText ctermfg=250 ctermbg=NONE cterm=NONE
+ hi SpecialKey ctermfg=250 ctermbg=NONE cterm=NONE
+ hi Folded ctermfg=18 ctermbg=254 cterm=NONE
+ hi Visual ctermfg=16 ctermbg=252 cterm=NONE
+ hi VisualNOS ctermfg=NONE ctermbg=196 cterm=NONE
+ hi LineNr ctermfg=124 ctermbg=NONE cterm=NONE
+ hi FoldColumn ctermfg=18 ctermbg=NONE cterm=NONE
+ hi CursorColumn ctermfg=NONE ctermbg=254 cterm=NONE
+ hi CursorLineNr ctermfg=124 ctermbg=NONE cterm=NONE
+ hi QuickFixLine ctermfg=231 ctermbg=30 cterm=NONE
+ hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi Underlined ctermfg=62 ctermbg=NONE cterm=underline
+ hi Error ctermfg=196 ctermbg=231 cterm=reverse
+ hi! link ErrorMsg Error
+ hi WarningMsg ctermfg=164 ctermbg=231 cterm=NONE
+ hi MoreMsg ctermfg=16 ctermbg=231 cterm=NONE
+ hi ModeMsg ctermfg=16 ctermbg=231 cterm=NONE
+ hi Question ctermfg=40 ctermbg=NONE cterm=NONE
+ hi Todo ctermfg=16 ctermbg=226 cterm=NONE
+ hi MatchParen ctermfg=231 ctermbg=198 cterm=NONE
+ hi Search ctermfg=231 ctermbg=164 cterm=NONE
+ hi IncSearch ctermfg=40 ctermbg=NONE cterm=reverse
+ hi WildMenu ctermfg=18 ctermbg=220 cterm=NONE
+ hi ColorColumn ctermfg=16 ctermbg=254 cterm=NONE
+ hi Cursor ctermfg=231 ctermbg=16 cterm=NONE
+ hi lCursor ctermfg=16 ctermbg=40 cterm=NONE
+ hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
+ hi SpellCap ctermfg=30 ctermbg=NONE cterm=underline
+ hi SpellLocal ctermfg=21 ctermbg=NONE cterm=underline
+ hi SpellRare ctermfg=164 ctermbg=NONE cterm=underline
+ hi debugBreakpoint ctermfg=226 ctermbg=21 cterm=NONE
+ hi debugPC ctermfg=198 ctermbg=21 cterm=NONE
+ hi Comment ctermfg=196 ctermbg=NONE cterm=NONE
+ hi Constant ctermfg=40 ctermbg=NONE cterm=NONE
+ hi Identifier ctermfg=30 ctermbg=NONE cterm=NONE
+ hi Statement ctermfg=21 ctermbg=NONE cterm=NONE
+ hi PreProc ctermfg=164 ctermbg=NONE cterm=NONE
+ hi Type ctermfg=21 ctermbg=NONE cterm=NONE
+ hi Special ctermfg=198 ctermbg=NONE cterm=NONE
+ hi Directory ctermfg=30 ctermbg=NONE cterm=NONE
+ hi Conceal ctermfg=196 ctermbg=NONE cterm=NONE
+ hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi Title ctermfg=164 ctermbg=NONE cterm=NONE
+ hi! link Terminal Normal
+ hi! link LineNrAbove LineNr
+ hi! link LineNrBelow LineNr
+ hi! link CurSearch Search
+ hi! link CursorLineFold CursorLine
+ hi! link CursorLineSign CursorLine
+ hi CursorLine ctermfg=NONE ctermbg=254 cterm=NONE
+ hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
+ hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
+ hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
+ hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
+ unlet s:t_Co
+ finish
endif
-hi SpecialKey ctermfg=DarkBlue guifg=Blue
-hi StatusLine cterm=bold ctermbg=blue ctermfg=yellow guibg=gold guifg=blue
-hi StatusLineNC cterm=bold ctermbg=blue ctermfg=black guibg=gold guifg=blue
-hi Title ctermfg=DarkMagenta gui=bold guifg=Magenta
-hi VertSplit cterm=reverse gui=reverse
-hi Visual ctermbg=NONE cterm=reverse gui=reverse guifg=Grey guibg=fg
-hi WarningMsg ctermfg=DarkRed guifg=Red
-hi WildMenu ctermfg=Black ctermbg=Yellow guibg=Yellow guifg=Black
-
-" syntax highlighting
-hi Comment cterm=NONE ctermfg=DarkRed gui=NONE guifg=red2
-hi Constant cterm=NONE ctermfg=DarkGreen gui=NONE guifg=green3
-hi Identifier cterm=NONE ctermfg=DarkCyan gui=NONE guifg=cyan4
-hi PreProc cterm=NONE ctermfg=DarkMagenta gui=NONE guifg=magenta3
-hi Special cterm=NONE ctermfg=LightRed gui=NONE guifg=deeppink
-hi Statement cterm=bold ctermfg=Blue gui=bold guifg=blue
-hi Type cterm=NONE ctermfg=Blue gui=bold guifg=blue
-
-" vim: sw=2
+
+if s:t_Co >= 16
+ hi Normal ctermfg=black ctermbg=white cterm=NONE
+ hi EndOfBuffer ctermfg=darkgrey ctermbg=NONE cterm=NONE
+ hi StatusLine ctermfg=yellow ctermbg=darkblue cterm=NONE
+ hi StatusLineNC ctermfg=darkyellow ctermbg=darkblue cterm=NONE
+ hi StatusLineTerm ctermfg=yellow ctermbg=blue cterm=NONE
+ hi StatusLineTermNC ctermfg=grey ctermbg=blue cterm=NONE
+ hi VertSplit ctermfg=grey ctermbg=darkblue cterm=NONE
+ hi Pmenu ctermfg=black ctermbg=grey cterm=NONE
+ hi PmenuSel ctermfg=white ctermbg=darkblue cterm=NONE
+ hi PmenuSbar ctermfg=NONE ctermbg=white cterm=NONE
+ hi PmenuThumb ctermfg=NONE ctermbg=darkcyan cterm=NONE
+ hi TabLine ctermfg=black ctermbg=grey cterm=NONE
+ hi TabLineFill ctermfg=NONE ctermbg=darkgrey cterm=NONE
+ hi TabLineSel ctermfg=black ctermbg=white cterm=NONE
+ hi ToolbarLine ctermfg=NONE ctermbg=grey cterm=NONE
+ hi ToolbarButton ctermfg=white ctermbg=darkgrey cterm=NONE
+ hi NonText ctermfg=darkgrey ctermbg=NONE cterm=NONE
+ hi SpecialKey ctermfg=darkgrey ctermbg=NONE cterm=NONE
+ hi Folded ctermfg=darkblue ctermbg=grey cterm=NONE
+ hi Visual ctermfg=black ctermbg=darkgrey cterm=NONE
+ hi VisualNOS ctermfg=NONE ctermbg=darkred cterm=NONE
+ hi LineNr ctermfg=darkgrey ctermbg=NONE cterm=NONE
+ hi FoldColumn ctermfg=darkblue ctermbg=NONE cterm=NONE
+ hi CursorColumn ctermfg=NONE ctermbg=grey cterm=NONE
+ hi CursorLineNr ctermfg=darkgrey ctermbg=NONE cterm=NONE
+ hi QuickFixLine ctermfg=white ctermbg=darkcyan cterm=NONE
+ hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi Underlined ctermfg=blue ctermbg=NONE cterm=underline
+ hi Error ctermfg=red ctermbg=white cterm=reverse
+ hi! link ErrorMsg Error
+ hi WarningMsg ctermfg=darkmagenta ctermbg=white cterm=NONE
+ hi MoreMsg ctermfg=black ctermbg=white cterm=NONE
+ hi ModeMsg ctermfg=black ctermbg=white cterm=NONE
+ hi Question ctermfg=darkgreen ctermbg=NONE cterm=NONE
+ hi Todo ctermfg=black ctermbg=yellow cterm=NONE
+ hi MatchParen ctermfg=white ctermbg=magenta cterm=NONE
+ hi Search ctermfg=white ctermbg=darkmagenta cterm=NONE
+ hi IncSearch ctermfg=darkgreen ctermbg=NONE cterm=reverse
+ hi WildMenu ctermfg=darkblue ctermbg=darkyellow cterm=NONE
+ hi ColorColumn ctermfg=black ctermbg=grey cterm=NONE
+ hi Cursor ctermfg=white ctermbg=black cterm=NONE
+ hi lCursor ctermfg=black ctermbg=darkgreen cterm=NONE
+ hi SpellBad ctermfg=red ctermbg=NONE cterm=underline
+ hi SpellCap ctermfg=darkcyan ctermbg=NONE cterm=underline
+ hi SpellLocal ctermfg=darkblue ctermbg=NONE cterm=underline
+ hi SpellRare ctermfg=darkmagenta ctermbg=NONE cterm=underline
+ hi debugBreakpoint ctermfg=yellow ctermbg=darkblue cterm=NONE
+ hi debugPC ctermfg=magenta ctermbg=darkblue cterm=NONE
+ hi Comment ctermfg=darkred ctermbg=NONE cterm=NONE
+ hi Constant ctermfg=darkgreen ctermbg=NONE cterm=NONE
+ hi Identifier ctermfg=darkcyan ctermbg=NONE cterm=NONE
+ hi Statement ctermfg=darkblue ctermbg=NONE cterm=NONE
+ hi PreProc ctermfg=darkmagenta ctermbg=NONE cterm=NONE
+ hi Type ctermfg=blue ctermbg=NONE cterm=NONE
+ hi Special ctermfg=magenta ctermbg=NONE cterm=NONE
+ hi Directory ctermfg=darkcyan ctermbg=NONE cterm=NONE
+ hi Conceal ctermfg=darkred ctermbg=NONE cterm=NONE
+ hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi Title ctermfg=darkmagenta ctermbg=NONE cterm=NONE
+ hi! link Terminal Normal
+ hi! link LineNrAbove LineNr
+ hi! link LineNrBelow LineNr
+ hi! link CurSearch Search
+ hi! link CursorLineFold CursorLine
+ hi! link CursorLineSign CursorLine
+ hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
+ hi Visual ctermfg=white ctermbg=darkgrey cterm=NONE
+ hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
+ hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
+ hi DiffText ctermfg=black ctermbg=grey cterm=NONE
+ hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
+ unlet s:t_Co
+ finish
+endif
+
+if s:t_Co >= 0
+ hi Normal term=NONE
+ hi ColorColumn term=reverse
+ hi Conceal term=NONE
+ hi Cursor term=reverse
+ hi CursorColumn term=NONE
+ hi CursorLine term=underline
+ hi CursorLineNr term=bold
+ hi DiffAdd term=reverse
+ hi DiffChange term=NONE
+ hi DiffDelete term=reverse
+ hi DiffText term=reverse
+ hi Directory term=NONE
+ hi EndOfBuffer term=NONE
+ hi ErrorMsg term=bold,reverse
+ hi FoldColumn term=NONE
+ hi Folded term=NONE
+ hi IncSearch term=bold,reverse,underline
+ hi LineNr term=NONE
+ hi MatchParen term=bold,underline
+ hi ModeMsg term=bold
+ hi MoreMsg term=NONE
+ hi NonText term=NONE
+ hi Pmenu term=reverse
+ hi PmenuSbar term=reverse
+ hi PmenuSel term=bold
+ hi PmenuThumb term=NONE
+ hi Question term=standout
+ hi Search term=reverse
+ hi SignColumn term=reverse
+ hi SpecialKey term=bold
+ hi SpellBad term=underline
+ hi SpellCap term=underline
+ hi SpellLocal term=underline
+ hi SpellRare term=underline
+ hi StatusLine term=bold,reverse
+ hi StatusLineNC term=bold,underline
+ hi TabLine term=bold,underline
+ hi TabLineFill term=NONE
+ hi Terminal term=NONE
+ hi TabLineSel term=bold,reverse
+ hi Title term=NONE
+ hi VertSplit term=NONE
+ hi Visual term=reverse
+ hi VisualNOS term=NONE
+ hi WarningMsg term=standout
+ hi WildMenu term=bold
+ hi CursorIM term=NONE
+ hi ToolbarLine term=reverse
+ hi ToolbarButton term=bold,reverse
+ hi CurSearch term=reverse
+ hi CursorLineFold term=underline
+ hi CursorLineSign term=underline
+ hi Comment term=bold
+ hi Constant term=NONE
+ hi Error term=bold,reverse
+ hi Identifier term=NONE
+ hi Ignore term=NONE
+ hi PreProc term=NONE
+ hi Special term=NONE
+ hi Statement term=NONE
+ hi Todo term=bold,reverse
+ hi Type term=NONE
+ hi Underlined term=underline
+ unlet s:t_Co
+ finish
+endif
+
+" Background: light
+" Color: comment #ee0000 196 darkred
+" Color: constant #00cd00 40 darkgreen
+" Color: identifier #008b8b 30 darkcyan
+" Color: statement #0000ff 21 darkblue
+" Color: preproc #cd00cd 164 darkmagenta
+" Color: type #0000ff 21 blue
+" Color: special #ff1493 198 magenta
+" Color: fg0 #000000 16 black
+" Color: bg0 #ffffff 231 white
+" Color: bg1 #bcbcbc 250 darkgrey
+" Color: visual #d0d0d0 252 darkgrey
+" Color: folded #e4e4e4 254 grey
+" Color: pmenu #add8e6 152 grey
+" Color: wildmenu #00008b 18 darkblue
+" Color: error #ff0000 196 red
+" Color: status_fg #ffd700 220 darkyellow
+" Color: linenr #a52a2a 124 darkgrey
+" Color: Yellow #ffff00 226 yellow
+" Color: SlateBlue #6a5acd 62 blue
+" Term colors: bg0 statement constant preproc identifier type special bg1
+" Term colors: comment statement constant preproc identifier type special fg0
+" Color: bgDiffA #5F875F 65 darkgreen
+" Color: bgDiffC #5F87AF 67 blue
+" Color: bgDiffD #AF5FAF 133 magenta
+" Color: bgDiffT #C6C6C6 251 grey
+" Color: fgDiffW #FFFFFF 231 white
+" Color: fgDiffB #000000 16 black
+" vim: et ts=2 sw=2
diff --git a/runtime/colors/desert.vim b/runtime/colors/desert.vim
index 542e5ae015..23267b3066 100644
--- a/runtime/colors/desert.vim
+++ b/runtime/colors/desert.vim
@@ -1,106 +1,335 @@
-" Vim color file
-" Maintainer: Hans Fugal <hans@fugal.net>
-" Last Change: $Date: 2004/06/13 19:30:30 $
-" Last Change: $Date: 2004/06/13 19:30:30 $
-" URL: http://hans.fugal.net/vim/colors/desert.vim
-" Version: $Id: desert.vim,v 1.1 2004/06/13 19:30:30 vimboss Exp $
+" Name: desert
+" Description: Light background colorscheme.
+" Author: Original author Hans Fugal <hans@fugal.net>
+" Maintainer: Original maintainer Hans Fugal <hans@fugal.net>
+" Website: https://github.com/vim/colorschemes
+" License: Same as Vim
+" Last Updated: Wed May 11 22:56:35 2022
-" cool help screens
-" :he group-name
-" :he highlight-groups
-" :he cterm-colors
+" Generated by Colortemplate v2.2.0
set background=dark
-if version > 580
- " no guarantees for version 5.8 and below, but this makes it stop
- " complaining
- hi clear
- if exists("syntax_on")
- syntax reset
- endif
-endif
-let g:colors_name="desert"
-hi Normal guifg=White guibg=grey20
+hi clear
+let g:colors_name = 'desert'
+
+let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
-" highlight groups
-hi Cursor guibg=khaki guifg=slategrey
-"hi CursorIM
-"hi Directory
-"hi DiffAdd
-"hi DiffChange
-"hi DiffDelete
-"hi DiffText
-"hi ErrorMsg
-hi VertSplit guibg=#c2bfa5 guifg=grey50 gui=none
-hi Folded guibg=grey30 guifg=gold
-hi FoldColumn guibg=grey30 guifg=tan
-hi IncSearch guifg=slategrey guibg=khaki
-"hi LineNr
-hi ModeMsg guifg=goldenrod
-hi MoreMsg guifg=SeaGreen
-hi NonText guifg=LightBlue guibg=grey30
-hi Question guifg=springgreen
-hi Search guibg=peru guifg=wheat
-hi SpecialKey guifg=yellowgreen
-hi StatusLine guibg=#c2bfa5 guifg=black gui=none
-hi StatusLineNC guibg=#c2bfa5 guifg=grey50 gui=none
-hi Title guifg=indianred
-hi Visual gui=none guifg=khaki guibg=olivedrab
-hi WarningMsg guifg=salmon
-"hi WildMenu
-"hi Menu
-"hi Scrollbar
-"hi Tooltip
+if (has('termguicolors') && &termguicolors) || has('gui_running')
+ let g:terminal_ansi_colors = ['#7f7f8c', '#cd5c5c', '#9acd32', '#bdb76b', '#75a0ff', '#eeee00', '#cd853f', '#666666', '#8a7f7f', '#ff0000', '#89fb98', '#f0e68c', '#6dceeb', '#ffde9b', '#ffa0a0', '#c2bfa5']
+endif
+hi Normal guifg=#ffffff guibg=#333333 gui=NONE cterm=NONE
+hi! link EndOfBuffer NonText
+hi StatusLine guifg=#333333 guibg=#c2bfa5 gui=NONE cterm=NONE
+hi StatusLineNC guifg=#7f7f8c guibg=#c2bfa5 gui=NONE cterm=NONE
+hi StatusLineTerm guifg=#333333 guibg=#c2bfa5 gui=NONE cterm=NONE
+hi StatusLineTermNC guifg=#ffffff guibg=#c2bfa5 gui=NONE cterm=NONE
+hi VertSplit guifg=#7f7f8c guibg=#c2bfa5 gui=NONE cterm=NONE
+hi Pmenu guifg=#ffffff guibg=#666666 gui=NONE cterm=NONE
+hi PmenuSel guifg=#333333 guibg=#f0e68c gui=NONE cterm=NONE
+hi PmenuSbar guifg=NONE guibg=#333333 gui=NONE cterm=NONE
+hi PmenuThumb guifg=NONE guibg=#c2bfa5 gui=NONE cterm=NONE
+hi TabLine guifg=#333333 guibg=#c2bfa5 gui=NONE cterm=NONE
+hi TabLineFill guifg=NONE guibg=#c2bfa5 gui=NONE cterm=NONE
+hi TabLineSel guifg=#333333 guibg=#f0e68c gui=NONE cterm=NONE
+hi ToolbarLine guifg=NONE guibg=#666666 gui=NONE cterm=NONE
+hi ToolbarButton guifg=#333333 guibg=#ffde9b gui=bold cterm=NONE
+hi NonText guifg=#6dceeb guibg=NONE gui=NONE cterm=NONE
+hi SpecialKey guifg=#9acd32 guibg=NONE gui=NONE cterm=NONE
+hi Folded guifg=#eeee00 guibg=#4d4d4d gui=NONE cterm=NONE
+hi Visual guifg=#f0e68c guibg=#6b8e24 gui=NONE cterm=NONE
+hi VisualNOS guifg=#f0e68c guibg=#6dceeb gui=NONE cterm=NONE
+hi LineNr guifg=#eeee00 guibg=NONE gui=NONE cterm=NONE
+hi FoldColumn guifg=#eeee00 guibg=#4d4d4d gui=NONE cterm=NONE
+hi CursorLine guifg=NONE guibg=#666666 gui=NONE cterm=NONE
+hi CursorColumn guifg=NONE guibg=#666666 gui=NONE cterm=NONE
+hi CursorLineNr guifg=#eeee00 guibg=NONE gui=bold cterm=NONE
+hi QuickFixLine guifg=#333333 guibg=#f0e68c gui=NONE cterm=NONE
+hi SignColumn guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi Underlined guifg=#75a0ff guibg=NONE gui=underline cterm=underline
+hi Error guifg=#ff0000 guibg=#ffffff gui=reverse cterm=reverse
+hi ErrorMsg guifg=#ff0000 guibg=#ffffff gui=reverse cterm=reverse
+hi ModeMsg guifg=#ffde9b guibg=NONE gui=bold cterm=NONE
+hi WarningMsg guifg=#cd5c5c guibg=NONE gui=bold cterm=NONE
+hi MoreMsg guifg=#9acd32 guibg=NONE gui=bold cterm=NONE
+hi Question guifg=#89fb98 guibg=NONE gui=bold cterm=NONE
+hi Todo guifg=#ff0000 guibg=#eeee00 gui=NONE cterm=NONE
+hi MatchParen guifg=#7f7f8c guibg=#bdb76b gui=NONE cterm=NONE
+hi Search guifg=#f0e68c guibg=#7f7f8c gui=NONE cterm=NONE
+hi IncSearch guifg=#f0e68c guibg=#cd853f gui=NONE cterm=NONE
+hi WildMenu guifg=#333333 guibg=#eeee00 gui=NONE cterm=NONE
+hi ColorColumn guifg=#ffffff guibg=#cd5c5c gui=NONE cterm=NONE
+hi Cursor guifg=#333333 guibg=#f0e68c gui=NONE cterm=NONE
+hi lCursor guifg=#333333 guibg=#ff0000 gui=NONE cterm=NONE
+hi debugPC guifg=#666666 guibg=NONE gui=reverse cterm=reverse
+hi debugBreakpoint guifg=#ffa0a0 guibg=NONE gui=reverse cterm=reverse
+hi SpellBad guifg=#cd5c5c guibg=NONE guisp=#cd5c5c gui=undercurl cterm=underline
+hi SpellCap guifg=#75a0ff guibg=NONE guisp=#75a0ff gui=undercurl cterm=underline
+hi SpellLocal guifg=#ffde9b guibg=NONE guisp=#ffde9b gui=undercurl cterm=underline
+hi SpellRare guifg=#9acd32 guibg=NONE guisp=#9acd32 gui=undercurl cterm=underline
+hi Comment guifg=#6dceeb guibg=NONE gui=NONE cterm=NONE
+hi Identifier guifg=#89fb98 guibg=NONE gui=NONE cterm=NONE
+hi Statement guifg=#f0e68c guibg=NONE gui=bold cterm=NONE
+hi Constant guifg=#ffa0a0 guibg=NONE gui=NONE cterm=NONE
+hi PreProc guifg=#cd5c5c guibg=NONE gui=NONE cterm=NONE
+hi Type guifg=#bdb76b guibg=NONE gui=bold cterm=NONE
+hi Special guifg=#ffde9b guibg=NONE gui=NONE cterm=NONE
+hi Directory guifg=#6dceeb guibg=NONE gui=NONE cterm=NONE
+hi Conceal guifg=#666666 guibg=NONE gui=NONE cterm=NONE
+hi Ignore guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi Title guifg=#cd5c5c guibg=NONE gui=NONE cterm=NONE
+hi! link Terminal Normal
+hi! link LineNrAbove LineNr
+hi! link LineNrBelow LineNr
+hi! link CurSearch Search
+hi! link CursorLineFold CursorLine
+hi! link CursorLineSign CursorLine
+hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
+hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
+hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
+hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
-" syntax highlighting groups
-hi Comment guifg=SkyBlue
-hi Constant guifg=#ffa0a0
-hi Identifier guifg=palegreen
-hi Statement guifg=khaki
-hi PreProc guifg=indianred
-hi Type guifg=darkkhaki
-hi Special guifg=navajowhite
-"hi Underlined
-hi Ignore guifg=grey40
-"hi Error
-hi Todo guifg=orangered guibg=yellow2
+if s:t_Co >= 256
+ hi Normal ctermfg=231 ctermbg=236 cterm=NONE
+ hi! link EndOfBuffer NonText
+ hi StatusLine ctermfg=236 ctermbg=144 cterm=NONE
+ hi StatusLineNC ctermfg=242 ctermbg=144 cterm=NONE
+ hi StatusLineTerm ctermfg=236 ctermbg=144 cterm=NONE
+ hi StatusLineTermNC ctermfg=231 ctermbg=144 cterm=NONE
+ hi VertSplit ctermfg=242 ctermbg=144 cterm=NONE
+ hi Pmenu ctermfg=231 ctermbg=241 cterm=NONE
+ hi PmenuSel ctermfg=236 ctermbg=186 cterm=NONE
+ hi PmenuSbar ctermfg=NONE ctermbg=236 cterm=NONE
+ hi PmenuThumb ctermfg=NONE ctermbg=144 cterm=NONE
+ hi TabLine ctermfg=236 ctermbg=144 cterm=NONE
+ hi TabLineFill ctermfg=NONE ctermbg=144 cterm=NONE
+ hi TabLineSel ctermfg=236 ctermbg=186 cterm=NONE
+ hi ToolbarLine ctermfg=NONE ctermbg=241 cterm=NONE
+ hi ToolbarButton ctermfg=236 ctermbg=222 cterm=NONE
+ hi NonText ctermfg=81 ctermbg=NONE cterm=NONE
+ hi SpecialKey ctermfg=112 ctermbg=NONE cterm=NONE
+ hi Folded ctermfg=226 ctermbg=239 cterm=NONE
+ hi Visual ctermfg=186 ctermbg=64 cterm=NONE
+ hi VisualNOS ctermfg=186 ctermbg=81 cterm=NONE
+ hi LineNr ctermfg=226 ctermbg=NONE cterm=NONE
+ hi FoldColumn ctermfg=226 ctermbg=239 cterm=NONE
+ hi CursorLine ctermfg=NONE ctermbg=241 cterm=NONE
+ hi CursorColumn ctermfg=NONE ctermbg=241 cterm=NONE
+ hi CursorLineNr ctermfg=226 ctermbg=NONE cterm=NONE
+ hi QuickFixLine ctermfg=236 ctermbg=186 cterm=NONE
+ hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi Underlined ctermfg=111 ctermbg=NONE cterm=underline
+ hi Error ctermfg=196 ctermbg=231 cterm=reverse
+ hi ErrorMsg ctermfg=196 ctermbg=231 cterm=reverse
+ hi ModeMsg ctermfg=222 ctermbg=NONE cterm=NONE
+ hi WarningMsg ctermfg=167 ctermbg=NONE cterm=NONE
+ hi MoreMsg ctermfg=112 ctermbg=NONE cterm=NONE
+ hi Question ctermfg=120 ctermbg=NONE cterm=NONE
+ hi Todo ctermfg=196 ctermbg=226 cterm=NONE
+ hi MatchParen ctermfg=242 ctermbg=143 cterm=NONE
+ hi Search ctermfg=186 ctermbg=242 cterm=NONE
+ hi IncSearch ctermfg=186 ctermbg=172 cterm=NONE
+ hi WildMenu ctermfg=236 ctermbg=226 cterm=NONE
+ hi ColorColumn ctermfg=231 ctermbg=167 cterm=NONE
+ hi debugPC ctermfg=241 ctermbg=NONE cterm=reverse
+ hi debugBreakpoint ctermfg=217 ctermbg=NONE cterm=reverse
+ hi SpellBad ctermfg=167 ctermbg=NONE cterm=underline
+ hi SpellCap ctermfg=111 ctermbg=NONE cterm=underline
+ hi SpellLocal ctermfg=222 ctermbg=NONE cterm=underline
+ hi SpellRare ctermfg=112 ctermbg=NONE cterm=underline
+ hi Comment ctermfg=81 ctermbg=NONE cterm=NONE
+ hi Identifier ctermfg=120 ctermbg=NONE cterm=NONE
+ hi Statement ctermfg=186 ctermbg=NONE cterm=NONE
+ hi Constant ctermfg=217 ctermbg=NONE cterm=NONE
+ hi PreProc ctermfg=167 ctermbg=NONE cterm=NONE
+ hi Type ctermfg=143 ctermbg=NONE cterm=NONE
+ hi Special ctermfg=222 ctermbg=NONE cterm=NONE
+ hi Directory ctermfg=81 ctermbg=NONE cterm=NONE
+ hi Conceal ctermfg=241 ctermbg=NONE cterm=NONE
+ hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi Title ctermfg=167 ctermbg=NONE cterm=NONE
+ hi! link Terminal Normal
+ hi! link LineNrAbove LineNr
+ hi! link LineNrBelow LineNr
+ hi! link CurSearch Search
+ hi! link CursorLineFold CursorLine
+ hi! link CursorLineSign CursorLine
+ hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
+ hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
+ hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
+ hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
+ unlet s:t_Co
+ finish
+endif
-" color terminal definitions
-hi SpecialKey ctermfg=darkgreen
-hi NonText cterm=bold ctermfg=darkblue
-hi Directory ctermfg=darkcyan
-hi ErrorMsg cterm=bold ctermfg=7 ctermbg=1
-hi IncSearch cterm=NONE ctermfg=yellow ctermbg=green
-hi Search cterm=NONE ctermfg=grey ctermbg=blue
-hi MoreMsg ctermfg=darkgreen
-hi ModeMsg cterm=NONE ctermfg=brown
-hi LineNr ctermfg=3
-hi Question ctermfg=green
-hi StatusLine cterm=bold,reverse
-hi StatusLineNC cterm=reverse
-hi VertSplit cterm=reverse
-hi Title ctermfg=5
-hi Visual cterm=reverse
-hi WarningMsg ctermfg=1
-hi WildMenu ctermfg=0 ctermbg=3
-hi Folded ctermfg=darkgrey ctermbg=NONE
-hi FoldColumn ctermfg=darkgrey ctermbg=NONE
-hi DiffAdd ctermbg=4
-hi DiffChange ctermbg=5
-hi DiffDelete cterm=bold ctermfg=4 ctermbg=6
-hi DiffText cterm=bold ctermbg=1
-hi Comment ctermfg=darkcyan
-hi Constant ctermfg=brown
-hi Special ctermfg=5
-hi Identifier ctermfg=6
-hi Statement ctermfg=3
-hi PreProc ctermfg=5
-hi Type ctermfg=2
-hi Underlined cterm=underline ctermfg=5
-hi Ignore cterm=bold ctermfg=7
-hi Ignore ctermfg=darkgrey
-hi Error cterm=bold ctermfg=7 ctermbg=1
+if s:t_Co >= 16
+ hi Normal ctermfg=white ctermbg=black cterm=NONE
+ hi! link EndOfBuffer NonText
+ hi StatusLine ctermfg=black ctermbg=grey cterm=NONE
+ hi StatusLineNC ctermfg=darkgrey ctermbg=grey cterm=NONE
+ hi StatusLineTerm ctermfg=black ctermbg=grey cterm=NONE
+ hi StatusLineTermNC ctermfg=darkgrey ctermbg=grey cterm=NONE
+ hi VertSplit ctermfg=darkgrey ctermbg=grey cterm=NONE
+ hi Pmenu ctermfg=NONE ctermbg=darkgrey cterm=NONE
+ hi PmenuSel ctermfg=black ctermbg=yellow cterm=NONE
+ hi PmenuSbar ctermfg=NONE ctermbg=black cterm=NONE
+ hi PmenuThumb ctermfg=NONE ctermbg=white cterm=NONE
+ hi TabLine ctermfg=black ctermbg=grey cterm=NONE
+ hi TabLineFill ctermfg=NONE ctermbg=white cterm=NONE
+ hi TabLineSel ctermfg=white ctermbg=black cterm=NONE
+ hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi ToolbarButton ctermfg=black ctermbg=darkyellow cterm=NONE
+ hi NonText ctermfg=blue ctermbg=NONE cterm=NONE
+ hi SpecialKey ctermfg=darkgreen ctermbg=NONE cterm=NONE
+ hi Folded ctermfg=darkblue ctermbg=NONE cterm=NONE
+ hi Visual ctermfg=white ctermbg=darkgreen cterm=NONE
+ hi LineNr ctermfg=darkyellow ctermbg=NONE cterm=NONE
+ hi FoldColumn ctermfg=darkyellow ctermbg=darkgrey cterm=NONE
+ hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
+ hi CursorColumn ctermfg=NONE ctermbg=darkblue cterm=NONE
+ hi CursorLineNr ctermfg=darkyellow ctermbg=NONE cterm=underline
+ hi QuickFixLine ctermfg=black ctermbg=yellow cterm=NONE
+ hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi Underlined ctermfg=darkblue ctermbg=NONE cterm=underline
+ hi Error ctermfg=red ctermbg=white cterm=reverse
+ hi ErrorMsg ctermfg=red ctermbg=white cterm=reverse
+ hi ModeMsg ctermfg=magenta ctermbg=NONE cterm=NONE
+ hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=NONE
+ hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
+ hi Question ctermfg=green ctermbg=NONE cterm=NONE
+ hi Todo ctermfg=red ctermbg=darkmagenta cterm=NONE
+ hi MatchParen ctermfg=black ctermbg=darkyellow cterm=NONE
+ hi Search ctermfg=black ctermbg=darkgreen cterm=NONE
+ hi IncSearch ctermfg=black ctermbg=yellow cterm=NONE
+ hi WildMenu ctermfg=black ctermbg=darkmagenta cterm=NONE
+ hi ColorColumn ctermfg=white ctermbg=darkred cterm=NONE
+ hi WildMenu ctermfg=black ctermbg=darkyellow cterm=NONE
+ hi debugPC ctermfg=grey ctermbg=NONE cterm=reverse
+ hi debugBreakpoint ctermfg=cyan ctermbg=NONE cterm=reverse
+ hi SpellBad ctermfg=darkred ctermbg=NONE cterm=underline
+ hi SpellCap ctermfg=blue ctermbg=NONE cterm=underline
+ hi SpellLocal ctermfg=darkyellow ctermbg=NONE cterm=underline
+ hi SpellRare ctermfg=darkgreen ctermbg=NONE cterm=underline
+ hi Comment ctermfg=cyan ctermbg=NONE cterm=NONE
+ hi Identifier ctermfg=green ctermbg=NONE cterm=NONE
+ hi Statement ctermfg=yellow ctermbg=NONE cterm=NONE
+ hi Constant ctermfg=darkmagenta ctermbg=NONE cterm=NONE
+ hi PreProc ctermfg=darkred ctermbg=NONE cterm=NONE
+ hi Type ctermfg=darkyellow ctermbg=NONE cterm=NONE
+ hi Special ctermfg=magenta ctermbg=NONE cterm=NONE
+ hi Directory ctermfg=blue ctermbg=NONE cterm=NONE
+ hi Conceal ctermfg=grey ctermbg=NONE cterm=NONE
+ hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi Title ctermfg=darkred ctermbg=NONE cterm=NONE
+ hi! link Terminal Normal
+ hi! link LineNrAbove LineNr
+ hi! link LineNrBelow LineNr
+ hi! link CurSearch Search
+ hi! link CursorLineFold CursorLine
+ hi! link CursorLineSign CursorLine
+ hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
+ hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
+ hi DiffText ctermfg=black ctermbg=grey cterm=NONE
+ hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
+ unlet s:t_Co
+ finish
+endif
+if s:t_Co >= 0
+ hi Normal term=NONE
+ hi ColorColumn term=reverse
+ hi Conceal term=NONE
+ hi Cursor term=reverse
+ hi CursorColumn term=NONE
+ hi CursorLine term=underline
+ hi CursorLineNr term=bold
+ hi DiffAdd term=reverse
+ hi DiffChange term=NONE
+ hi DiffDelete term=reverse
+ hi DiffText term=reverse
+ hi Directory term=NONE
+ hi EndOfBuffer term=NONE
+ hi ErrorMsg term=bold,reverse
+ hi FoldColumn term=NONE
+ hi Folded term=NONE
+ hi IncSearch term=bold,reverse,underline
+ hi LineNr term=NONE
+ hi MatchParen term=bold,underline
+ hi ModeMsg term=bold
+ hi MoreMsg term=NONE
+ hi NonText term=NONE
+ hi Pmenu term=reverse
+ hi PmenuSbar term=reverse
+ hi PmenuSel term=bold
+ hi PmenuThumb term=NONE
+ hi Question term=standout
+ hi Search term=reverse
+ hi SignColumn term=reverse
+ hi SpecialKey term=bold
+ hi SpellBad term=underline
+ hi SpellCap term=underline
+ hi SpellLocal term=underline
+ hi SpellRare term=underline
+ hi StatusLine term=bold,reverse
+ hi StatusLineNC term=bold,underline
+ hi TabLine term=bold,underline
+ hi TabLineFill term=NONE
+ hi Terminal term=NONE
+ hi TabLineSel term=bold,reverse
+ hi Title term=NONE
+ hi VertSplit term=NONE
+ hi Visual term=reverse
+ hi VisualNOS term=NONE
+ hi WarningMsg term=standout
+ hi WildMenu term=bold
+ hi CursorIM term=NONE
+ hi ToolbarLine term=reverse
+ hi ToolbarButton term=bold,reverse
+ hi CurSearch term=reverse
+ hi CursorLineFold term=underline
+ hi CursorLineSign term=underline
+ hi Comment term=bold
+ hi Constant term=NONE
+ hi Error term=bold,reverse
+ hi Identifier term=NONE
+ hi Ignore term=NONE
+ hi PreProc term=NONE
+ hi Special term=NONE
+ hi Statement term=NONE
+ hi Todo term=bold,reverse
+ hi Type term=NONE
+ hi Underlined term=underline
+ unlet s:t_Co
+ finish
+endif
-"vim: sw=4
+" Background: dark
+" Color: foreground #ffffff 231 white
+" Color: background #333333 236 black
+" Color: color00 #7f7f8c 242 black
+" Color: color08 #8a7f7f 244 darkgrey
+" Color: color01 #cd5c5c 167 darkred
+" Color: color09 #ff0000 196 red
+" Color: color02 #9acd32 112 darkgreen
+" Color: color10 #89fb98 120 green
+" Color: color03 #bdb76b 143 darkyellow
+" Color: color11 #f0e68c 186 yellow
+" Color: color04 #75a0ff 111 darkblue
+" Color: color12 #6dceeb 81 blue
+" Color: color05 #eeee00 226 darkmagenta
+" Color: color13 #ffde9b 222 magenta
+" Color: color06 #cd853f 172 darkcyan
+" Color: color14 #ffa0a0 217 cyan
+" Color: color07 #666666 241 grey
+" Color: color15 #c2bfa5 144 white
+" Color: color16 #6b8e24 64 darkgreen
+" Color: color17 #4d4d4d 239 grey
+" Term colors: color00 color01 color02 color03 color04 color05 color06 color07
+" Term colors: color08 color09 color10 color11 color12 color13 color14 color15
+" Color: bgDiffA #5F875F 65 darkgreen
+" Color: bgDiffC #5F87AF 67 blue
+" Color: bgDiffD #AF5FAF 133 magenta
+" Color: bgDiffT #C6C6C6 251 grey
+" Color: fgDiffW #FFFFFF 231 white
+" Color: fgDiffB #000000 16 black
+" vim: et ts=2 sw=2
diff --git a/runtime/colors/elflord.vim b/runtime/colors/elflord.vim
index f74a828947..c69dfd43fe 100644
--- a/runtime/colors/elflord.vim
+++ b/runtime/colors/elflord.vim
@@ -1,50 +1,375 @@
-" local syntax file - set colors on a per-machine basis:
-" vim: tw=0 ts=4 sw=4
-" Vim color file
-" Maintainer: Ron Aaron <ron@ronware.org>
-" Last Change: 2003 May 02
+" Name: elflord
+" Author: original author Ron Aaron <ron@ronware.org>
+" Maintainer: original maintainer Ron Aaron <ron@ronware.org>
+" Website: https://www.github.com/vim/colorschemes
+" License: Same as Vim
+" Last Updated: Wed May 11 22:56:36 2022
+
+" Generated by Colortemplate v2.2.0
set background=dark
+
hi clear
-if exists("syntax_on")
- syntax reset
+let g:colors_name = 'elflord'
+
+let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
+
+hi! link Terminal Normal
+hi! link Boolean Constant
+hi! link Character Constant
+hi! link Conditional Repeat
+hi! link Debug Special
+hi! link Define PreProc
+hi! link Delimiter Special
+hi! link Exception Statement
+hi! link Float Number
+hi! link Include PreProc
+hi! link Keyword Statement
+hi! link Label Statement
+hi! link Macro PreProc
+hi! link Number Constant
+hi! link PopupSelected PmenuSel
+hi! link PreCondit PreProc
+hi! link SpecialChar Special
+hi! link SpecialComment Special
+hi! link StatusLineTerm StatusLine
+hi! link StatusLineTermNC StatusLineNC
+hi! link StorageClass Type
+hi! link String Constant
+hi! link Structure Type
+hi! link Tag Special
+hi! link Typedef Type
+hi! link lCursor Cursor
+hi! link CurSearch Search
+hi! link CursorLineFold CursorLine
+hi! link CursorLineSign CursorLine
+
+if (has('termguicolors') && &termguicolors) || has('gui_running')
+ let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0000ee', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff']
+endif
+hi Normal guifg=#00ffff guibg=#000000 gui=NONE cterm=NONE
+hi QuickFixLine guifg=#ffffff guibg=#2e8b57 gui=NONE cterm=NONE
+hi ColorColumn guifg=NONE guibg=#cd0000 gui=NONE cterm=NONE
+hi CursorColumn guifg=NONE guibg=#3a3a3a gui=NONE cterm=NONE
+hi CursorLine guifg=NONE guibg=#3a3a3a gui=NONE cterm=NONE
+hi CursorLineNr guifg=#ffff00 guibg=NONE gui=bold cterm=underline
+hi Folded guifg=#00ffff guibg=#666666 gui=NONE cterm=NONE
+hi Conceal guifg=#666666 guibg=NONE gui=NONE cterm=NONE
+hi Cursor guifg=#000000 guibg=#00ffff gui=NONE cterm=NONE
+hi Directory guifg=#00ffff guibg=#000000 gui=NONE cterm=NONE
+hi EndOfBuffer guifg=#0000ff guibg=#000000 gui=bold cterm=NONE
+hi ErrorMsg guifg=#ffffff guibg=#cd0000 gui=NONE cterm=NONE
+hi FoldColumn guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
+hi IncSearch guifg=NONE guibg=#000000 gui=reverse cterm=reverse
+hi LineNr guifg=#ffff00 guibg=NONE gui=NONE cterm=NONE
+hi MatchParen guifg=NONE guibg=#008b8b gui=NONE cterm=NONE
+hi ModeMsg guifg=NONE guibg=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=NONE
+hi MoreMsg guifg=#2e8b57 guibg=NONE gui=bold cterm=NONE
+hi NonText guifg=#0000ff guibg=NONE gui=bold cterm=NONE
+hi Pmenu guifg=#ffffff guibg=#444444 gui=NONE cterm=NONE
+hi PmenuSbar guifg=NONE guibg=#bebebe gui=NONE cterm=NONE
+hi PmenuSel guifg=#000000 guibg=#00cdcd gui=NONE cterm=NONE
+hi PmenuThumb guifg=NONE guibg=#ffffff gui=NONE cterm=NONE
+hi Question guifg=#00ff00 guibg=NONE gui=bold cterm=NONE
+hi Search guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi SignColumn guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
+hi SpecialKey guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
+hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
+hi SpellCap guifg=#0000ff guibg=NONE guisp=#0000ff gui=undercurl cterm=underline
+hi SpellLocal guifg=#ffff00 guibg=NONE guisp=#ffff00 gui=undercurl cterm=underline
+hi SpellRare guifg=#ff00ff guibg=NONE guisp=#ff00ff gui=undercurl cterm=underline
+hi StatusLine guifg=#000000 guibg=#00ffff gui=bold cterm=NONE
+hi StatusLineNC guifg=#000000 guibg=#00cdcd gui=NONE cterm=NONE
+hi TabLine guifg=#000000 guibg=#008b8b gui=NONE cterm=NONE
+hi TabLineFill guifg=NONE guibg=#000000 gui=reverse cterm=reverse
+hi TabLineSel guifg=#00ffff guibg=#000000 gui=bold cterm=NONE
+hi Terminal guifg=#00ffff guibg=#000000 gui=NONE cterm=NONE
+hi Title guifg=#ff00ff guibg=NONE gui=bold cterm=NONE
+hi VertSplit guifg=#000000 guibg=#00cdcd gui=NONE cterm=NONE
+hi Visual guifg=#000000 guibg=#a9a9a9 gui=NONE cterm=NONE
+hi VisualNOS guifg=NONE guibg=#000000 gui=bold,underline cterm=underline
+hi WarningMsg guifg=#ff0000 guibg=NONE gui=NONE cterm=NONE
+hi WildMenu guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi Comment guifg=#80a0ff guibg=NONE gui=NONE cterm=NONE
+hi Constant guifg=#ff00ff guibg=NONE gui=NONE cterm=NONE
+hi Error guifg=#ffffff guibg=#ff0000 gui=NONE cterm=NONE
+hi Function guifg=#ffffff guibg=NONE gui=NONE cterm=NONE
+hi Identifier guifg=#40ffff guibg=NONE gui=NONE cterm=NONE
+hi Ignore guifg=#000000 guibg=#000000 gui=NONE cterm=NONE
+hi Operator guifg=#ff0000 guibg=NONE gui=NONE cterm=NONE
+hi PreProc guifg=#ff80ff guibg=NONE gui=NONE cterm=NONE
+hi Repeat guifg=#ffffff guibg=NONE gui=NONE cterm=NONE
+hi Special guifg=#ff0000 guibg=NONE gui=NONE cterm=NONE
+hi Statement guifg=#aa4444 guibg=NONE gui=bold cterm=NONE
+hi Todo guifg=#0000ff guibg=#ffff00 gui=NONE cterm=NONE
+hi Type guifg=#60ff60 guibg=NONE gui=bold cterm=NONE
+hi Underlined guifg=#80a0ff guibg=NONE gui=underline cterm=underline
+hi CursorIM guifg=NONE guibg=fg gui=NONE cterm=NONE
+hi ToolbarLine guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi ToolbarButton guifg=#000000 guibg=#e5e5e5 gui=bold cterm=NONE
+hi! link LineNrAbove LineNr
+hi! link LineNrBelow LineNr
+hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
+hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
+hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
+hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
+
+if s:t_Co >= 256
+ hi Normal ctermfg=51 ctermbg=16 cterm=NONE
+ hi QuickFixLine ctermfg=231 ctermbg=29 cterm=NONE
+ hi ColorColumn ctermfg=NONE ctermbg=160 cterm=NONE
+ hi CursorColumn ctermfg=NONE ctermbg=237 cterm=NONE
+ hi CursorLine ctermfg=NONE ctermbg=237 cterm=NONE
+ hi CursorLineNr ctermfg=226 ctermbg=NONE cterm=underline
+ hi Folded ctermfg=51 ctermbg=59 cterm=NONE
+ hi Conceal ctermfg=59 ctermbg=NONE cterm=NONE
+ hi Cursor ctermfg=16 ctermbg=51 cterm=NONE
+ hi Directory ctermfg=51 ctermbg=16 cterm=NONE
+ hi EndOfBuffer ctermfg=21 ctermbg=16 cterm=NONE
+ hi ErrorMsg ctermfg=231 ctermbg=160 cterm=NONE
+ hi FoldColumn ctermfg=51 ctermbg=NONE cterm=NONE
+ hi IncSearch ctermfg=NONE ctermbg=16 cterm=reverse
+ hi LineNr ctermfg=226 ctermbg=NONE cterm=NONE
+ hi MatchParen ctermfg=NONE ctermbg=30 cterm=NONE
+ hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi MoreMsg ctermfg=29 ctermbg=NONE cterm=NONE
+ hi NonText ctermfg=21 ctermbg=NONE cterm=NONE
+ hi Pmenu ctermfg=231 ctermbg=238 cterm=NONE
+ hi PmenuSbar ctermfg=NONE ctermbg=250 cterm=NONE
+ hi PmenuSel ctermfg=16 ctermbg=44 cterm=NONE
+ hi PmenuThumb ctermfg=NONE ctermbg=231 cterm=NONE
+ hi Question ctermfg=46 ctermbg=NONE cterm=NONE
+ hi Search ctermfg=16 ctermbg=226 cterm=NONE
+ hi SignColumn ctermfg=51 ctermbg=NONE cterm=NONE
+ hi SpecialKey ctermfg=51 ctermbg=NONE cterm=NONE
+ hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
+ hi SpellCap ctermfg=21 ctermbg=NONE cterm=underline
+ hi SpellLocal ctermfg=226 ctermbg=NONE cterm=underline
+ hi SpellRare ctermfg=201 ctermbg=NONE cterm=underline
+ hi StatusLine ctermfg=16 ctermbg=51 cterm=NONE
+ hi StatusLineNC ctermfg=16 ctermbg=44 cterm=NONE
+ hi TabLine ctermfg=16 ctermbg=30 cterm=NONE
+ hi TabLineFill ctermfg=NONE ctermbg=16 cterm=reverse
+ hi TabLineSel ctermfg=51 ctermbg=16 cterm=NONE
+ hi Terminal ctermfg=51 ctermbg=16 cterm=NONE
+ hi Title ctermfg=201 ctermbg=NONE cterm=NONE
+ hi VertSplit ctermfg=16 ctermbg=44 cterm=NONE
+ hi Visual ctermfg=16 ctermbg=145 cterm=NONE
+ hi VisualNOS ctermfg=NONE ctermbg=16 cterm=underline
+ hi WarningMsg ctermfg=196 ctermbg=NONE cterm=NONE
+ hi WildMenu ctermfg=16 ctermbg=226 cterm=NONE
+ hi Comment ctermfg=111 ctermbg=NONE cterm=NONE
+ hi Constant ctermfg=201 ctermbg=NONE cterm=NONE
+ hi Error ctermfg=231 ctermbg=196 cterm=NONE
+ hi Function ctermfg=231 ctermbg=NONE cterm=NONE
+ hi Identifier ctermfg=87 ctermbg=NONE cterm=NONE
+ hi Ignore ctermfg=16 ctermbg=16 cterm=NONE
+ hi Operator ctermfg=196 ctermbg=NONE cterm=NONE
+ hi PreProc ctermfg=213 ctermbg=NONE cterm=NONE
+ hi Repeat ctermfg=231 ctermbg=NONE cterm=NONE
+ hi Special ctermfg=196 ctermbg=NONE cterm=NONE
+ hi Statement ctermfg=131 ctermbg=NONE cterm=NONE
+ hi Todo ctermfg=21 ctermbg=226 cterm=NONE
+ hi Type ctermfg=83 ctermbg=NONE cterm=NONE
+ hi Underlined ctermfg=111 ctermbg=NONE cterm=underline
+ hi CursorIM ctermfg=NONE ctermbg=fg cterm=NONE
+ hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi ToolbarButton ctermfg=16 ctermbg=254 cterm=NONE
+ hi! link LineNrAbove LineNr
+ hi! link LineNrBelow LineNr
+ hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
+ hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
+ hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
+ hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
+ unlet s:t_Co
+ finish
+endif
+
+if s:t_Co >= 16
+ hi Normal ctermfg=cyan ctermbg=black cterm=NONE
+ hi QuickFixLine ctermfg=white ctermbg=darkgreen cterm=NONE
+ hi ColorColumn ctermfg=cyan ctermbg=darkred cterm=NONE
+ hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=underline
+ hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
+ hi CursorLineNr ctermfg=yellow ctermbg=NONE cterm=underline
+ hi Folded ctermfg=darkcyan ctermbg=NONE cterm=NONE
+ hi Conceal ctermfg=darkgrey ctermbg=NONE cterm=NONE
+ hi Cursor ctermfg=black ctermbg=cyan cterm=NONE
+ hi Directory ctermfg=cyan ctermbg=black cterm=NONE
+ hi EndOfBuffer ctermfg=darkblue ctermbg=black cterm=NONE
+ hi ErrorMsg ctermfg=white ctermbg=darkred cterm=NONE
+ hi FoldColumn ctermfg=cyan ctermbg=NONE cterm=NONE
+ hi IncSearch ctermfg=NONE ctermbg=black cterm=reverse
+ hi LineNr ctermfg=yellow ctermbg=NONE cterm=NONE
+ hi MatchParen ctermfg=NONE ctermbg=darkcyan cterm=NONE
+ hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
+ hi NonText ctermfg=darkblue ctermbg=NONE cterm=NONE
+ hi Pmenu ctermfg=white ctermbg=darkgrey cterm=NONE
+ hi PmenuSbar ctermfg=NONE ctermbg=grey cterm=NONE
+ hi PmenuSel ctermfg=black ctermbg=darkcyan cterm=NONE
+ hi PmenuThumb ctermfg=NONE ctermbg=white cterm=NONE
+ hi Question ctermfg=green ctermbg=NONE cterm=NONE
+ hi Search ctermfg=black ctermbg=yellow cterm=NONE
+ hi SignColumn ctermfg=cyan ctermbg=NONE cterm=NONE
+ hi SpecialKey ctermfg=cyan ctermbg=NONE cterm=NONE
+ hi SpellBad ctermfg=red ctermbg=NONE cterm=underline
+ hi SpellCap ctermfg=darkblue ctermbg=NONE cterm=underline
+ hi SpellLocal ctermfg=yellow ctermbg=NONE cterm=underline
+ hi SpellRare ctermfg=magenta ctermbg=NONE cterm=underline
+ hi StatusLine ctermfg=black ctermbg=cyan cterm=NONE
+ hi StatusLineNC ctermfg=black ctermbg=darkcyan cterm=NONE
+ hi TabLine ctermfg=black ctermbg=darkcyan cterm=NONE
+ hi TabLineFill ctermfg=NONE ctermbg=black cterm=reverse
+ hi TabLineSel ctermfg=cyan ctermbg=black cterm=NONE
+ hi Terminal ctermfg=cyan ctermbg=black cterm=NONE
+ hi Title ctermfg=magenta ctermbg=NONE cterm=NONE
+ hi VertSplit ctermfg=black ctermbg=darkcyan cterm=NONE
+ hi Visual ctermfg=black ctermbg=darkgrey cterm=NONE
+ hi VisualNOS ctermfg=NONE ctermbg=black cterm=underline
+ hi WarningMsg ctermfg=red ctermbg=NONE cterm=NONE
+ hi WildMenu ctermfg=black ctermbg=yellow cterm=NONE
+ hi Comment ctermfg=blue ctermbg=NONE cterm=NONE
+ hi Constant ctermfg=magenta ctermbg=NONE cterm=NONE
+ hi Error ctermfg=white ctermbg=red cterm=NONE
+ hi Function ctermfg=white ctermbg=NONE cterm=NONE
+ hi Identifier ctermfg=cyan ctermbg=NONE cterm=NONE
+ hi Ignore ctermfg=black ctermbg=black cterm=NONE
+ hi Operator ctermfg=red ctermbg=NONE cterm=NONE
+ hi PreProc ctermfg=magenta ctermbg=NONE cterm=NONE
+ hi Repeat ctermfg=white ctermbg=NONE cterm=NONE
+ hi Special ctermfg=red ctermbg=NONE cterm=NONE
+ hi Statement ctermfg=darkred ctermbg=NONE cterm=NONE
+ hi Todo ctermfg=blue ctermbg=yellow cterm=NONE
+ hi Type ctermfg=green ctermbg=NONE cterm=NONE
+ hi Underlined ctermfg=blue ctermbg=NONE cterm=underline
+ hi CursorIM ctermfg=NONE ctermbg=fg cterm=NONE
+ hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi ToolbarButton ctermfg=black ctermbg=grey cterm=NONE
+ hi! link LineNrAbove LineNr
+ hi! link LineNrBelow LineNr
+ hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
+ hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
+ hi DiffText ctermfg=black ctermbg=grey cterm=NONE
+ hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
+ unlet s:t_Co
+ finish
endif
-let g:colors_name = "elflord"
-hi Normal guifg=cyan guibg=black
-hi Comment term=bold ctermfg=DarkCyan guifg=#80a0ff
-hi Constant term=underline ctermfg=Magenta guifg=Magenta
-hi Special term=bold ctermfg=DarkMagenta guifg=Red
-hi Identifier term=underline cterm=bold ctermfg=Cyan guifg=#40ffff
-hi Statement term=bold ctermfg=Yellow gui=bold guifg=#aa4444
-hi PreProc term=underline ctermfg=LightBlue guifg=#ff80ff
-hi Type term=underline ctermfg=LightGreen guifg=#60ff60 gui=bold
-hi Function term=bold ctermfg=White guifg=White
-hi Repeat term=underline ctermfg=White guifg=white
-hi Operator ctermfg=Red guifg=Red
-hi Ignore ctermfg=black guifg=bg
-hi Error term=reverse ctermbg=Red ctermfg=White guibg=Red guifg=White
-hi Todo term=standout ctermbg=Yellow ctermfg=Black guifg=Blue guibg=Yellow
-
-" Common groups that link to default highlighting.
-" You can specify other highlighting easily.
-hi link String Constant
-hi link Character Constant
-hi link Number Constant
-hi link Boolean Constant
-hi link Float Number
-hi link Conditional Repeat
-hi link Label Statement
-hi link Keyword Statement
-hi link Exception Statement
-hi link Include PreProc
-hi link Define PreProc
-hi link Macro PreProc
-hi link PreCondit PreProc
-hi link StorageClass Type
-hi link Structure Type
-hi link Typedef Type
-hi link Tag Special
-hi link SpecialChar Special
-hi link Delimiter Special
-hi link SpecialComment Special
-hi link Debug Special
+
+if s:t_Co >= 0
+ hi Normal term=NONE
+ hi ColorColumn term=reverse
+ hi Conceal term=NONE
+ hi Cursor term=reverse
+ hi CursorColumn term=NONE
+ hi CursorLine term=underline
+ hi CursorLineNr term=bold
+ hi DiffAdd term=reverse
+ hi DiffChange term=NONE
+ hi DiffDelete term=reverse
+ hi DiffText term=reverse
+ hi Directory term=NONE
+ hi EndOfBuffer term=NONE
+ hi ErrorMsg term=bold,reverse
+ hi FoldColumn term=NONE
+ hi Folded term=NONE
+ hi IncSearch term=bold,reverse,underline
+ hi LineNr term=NONE
+ hi MatchParen term=bold,underline
+ hi ModeMsg term=bold
+ hi MoreMsg term=NONE
+ hi NonText term=NONE
+ hi Pmenu term=reverse
+ hi PmenuSbar term=reverse
+ hi PmenuSel term=bold
+ hi PmenuThumb term=NONE
+ hi Question term=standout
+ hi Search term=reverse
+ hi SignColumn term=reverse
+ hi SpecialKey term=bold
+ hi SpellBad term=underline
+ hi SpellCap term=underline
+ hi SpellLocal term=underline
+ hi SpellRare term=underline
+ hi StatusLine term=bold,reverse
+ hi StatusLineNC term=bold,underline
+ hi TabLine term=bold,underline
+ hi TabLineFill term=NONE
+ hi Terminal term=NONE
+ hi TabLineSel term=bold,reverse
+ hi Title term=NONE
+ hi VertSplit term=NONE
+ hi Visual term=reverse
+ hi VisualNOS term=NONE
+ hi WarningMsg term=standout
+ hi WildMenu term=bold
+ hi CursorIM term=NONE
+ hi ToolbarLine term=reverse
+ hi ToolbarButton term=bold,reverse
+ hi CurSearch term=reverse
+ hi CursorLineFold term=underline
+ hi CursorLineSign term=underline
+ hi Comment term=bold
+ hi Constant term=NONE
+ hi Error term=bold,reverse
+ hi Identifier term=NONE
+ hi Ignore term=NONE
+ hi PreProc term=NONE
+ hi Special term=NONE
+ hi Statement term=NONE
+ hi Todo term=bold,reverse
+ hi Type term=NONE
+ hi Underlined term=underline
+ unlet s:t_Co
+ finish
+endif
+
+" Background: dark
+" Color: xterm0 #000000 16 black
+" Color: xterm1 #cd0000 160 darkred
+" Color: xterm2 #00cd00 40 darkgreen
+" Color: xterm3 #cdcd00 184 darkyellow
+" Color: xterm4 #0000ee 20 darkblue
+" Color: xterm5 #cd00cd 164 darkmagenta
+" Color: xterm6 #00cdcd 44 darkcyan
+" Color: xterm7 #e5e5e5 254 grey
+" Color: xterm8 #7f7f7f 102 darkgrey
+" Color: xterm9 #ff0000 196 red
+" Color: xterm10 #00ff00 46 green
+" Color: xterm11 #ffff00 226 yellow
+" Color: xterm12 #5c5cff 63 blue
+" Color: xterm13 #ff00ff 201 magenta
+" Color: xterm14 #00ffff 51 cyan
+" Color: xterm15 #ffffff 231 white
+" Color: Pmenu #444444 238 darkgrey
+" Color: CursorLine #3a3a3a 237 darkgrey
+" Color: rgbGrey40 #666666 59 darkgrey
+" Color: rgbDarkGrey #a9a9a9 145 darkgrey
+" Color: rgbBlue #0000ff 21 darkblue
+" Color: rgbDarkCyan #008b8b 30 darkcyan
+" Color: Directory #00ffff 51 cyan
+" Color: rgbSeaGreen #2e8b57 29 darkgreen
+" Color: rgbGrey #bebebe 250 grey
+" Color: Question #00ff00 46 green
+" Color: SignColumn #a9a9a9 248 grey
+" Color: SpecialKey #00ffff 51 cyan
+" Color: Title #ff00ff 201 magenta
+" Color: WarningMsg #ff0000 196 red
+" Color: ToolbarLine #7f7f7f 244 darkgrey
+" Color: Underlined #80a0ff 111 blue
+" Color: elfComment #80a0ff 111 blue
+" Color: elfIdentifier #40ffff 87 cyan
+" Color: elfStatement #aa4444 131 darkred
+" Color: elfPreProc #ff80ff 213 magenta
+" Color: elfType #60ff60 83 green
+" Color: elfBlue #0000ff 21 blue
+" Term colors: xterm0 xterm1 xterm2 xterm3 xterm4 xterm5 xterm6 xterm7
+" Term colors: xterm8 xterm9 xterm10 xterm11 xterm12 xterm13
+" Term colors: xterm14 xterm15
+" Color: bgDiffA #5F875F 65 darkgreen
+" Color: bgDiffC #5F87AF 67 blue
+" Color: bgDiffD #AF5FAF 133 magenta
+" Color: bgDiffT #C6C6C6 251 grey
+" Color: fgDiffW #FFFFFF 231 white
+" Color: fgDiffB #000000 16 black
+" vim: et ts=2 sw=2
diff --git a/runtime/colors/evening.vim b/runtime/colors/evening.vim
index 5257307593..264a22abc5 100644
--- a/runtime/colors/evening.vim
+++ b/runtime/colors/evening.vim
@@ -1,55 +1,448 @@
-" Vim color file
-" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2016 Oct 10
+" Name: evening
+" Description: This color scheme uses a dark grey background.
+" Author: Original author Bram Moolenaar <Bram@vim.org>
+" Maintainer: Original maintainer Steven Vertigan <steven@vertigan.wattle.id.au>
+" Website: https://github.com/vim/colorschemes
+" License: Same as Vim
+" Last Updated: Wed May 11 22:56:37 2022
-" This color scheme uses a dark grey background.
+" Generated by Colortemplate v2.2.0
-" First remove all existing highlighting.
set background=dark
+
hi clear
-if exists("syntax_on")
- syntax reset
+let g:colors_name = 'evening'
+
+let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
+
+if (has('termguicolors') && &termguicolors) || has('gui_running')
+ let g:terminal_ansi_colors = ['#000000', '#ffa500', '#2e8b57', '#ffff00', '#006faf', '#8b008b', '#008b8b', '#bebebe', '#4d4d4d', '#ff5f5f', '#00ff00', '#ffff60', '#0087ff', '#ff80ff', '#00ffff', '#ffffff']
+endif
+hi Normal guifg=#ffffff guibg=#333333 gui=NONE cterm=NONE
+hi ColorColumn guifg=NONE guibg=#8b0000 gui=NONE cterm=NONE
+hi CursorLine guifg=NONE guibg=#666666 gui=NONE cterm=NONE
+hi CursorLineNr guifg=#ffff00 guibg=#666666 gui=NONE cterm=NONE
+hi EndOfBuffer guifg=#add8e6 guibg=#4d4d4d gui=NONE cterm=NONE
+hi StatusLine guifg=#333333 guibg=#ffffff gui=bold cterm=NONE
+hi StatusLineNC guifg=#333333 guibg=#d3d3d3 gui=NONE cterm=NONE
+hi TabLineSel guifg=#333333 guibg=#ffffff gui=bold cterm=NONE
+hi TabLine guifg=#333333 guibg=#d3d3d3 gui=NONE cterm=NONE
+hi QuickFixLine guifg=#ffffff guibg=#8b008b gui=NONE cterm=NONE
+hi Pmenu guifg=#ffffff guibg=#4d4d4d gui=NONE cterm=NONE
+hi PmenuSbar guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi PmenuSel guifg=#000000 guibg=#bebebe gui=NONE cterm=NONE
+hi PmenuThumb guifg=NONE guibg=#ffffff gui=NONE cterm=NONE
+hi LineNr guifg=#ffff00 guibg=NONE gui=NONE cterm=NONE
+hi Conceal guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi Cursor guifg=#000000 guibg=#00ff00 gui=NONE cterm=NONE
+hi Error guifg=#ff0000 guibg=#ffffff gui=reverse cterm=reverse
+hi ErrorMsg guifg=#ffffff guibg=#ff0000 gui=NONE cterm=NONE
+hi FoldColumn guifg=#add8e6 guibg=NONE gui=NONE cterm=NONE
+hi Folded guifg=#00008b guibg=#d3d3d3 gui=bold cterm=NONE
+hi IncSearch guifg=#00ff00 guibg=NONE gui=reverse cterm=reverse
+hi MatchParen guifg=NONE guibg=#008b8b gui=NONE cterm=NONE
+hi ModeMsg guifg=NONE guibg=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=NONE
+hi MoreMsg guifg=#2e8b57 guibg=NONE gui=NONE cterm=NONE
+hi NonText guifg=#add8e6 guibg=#4d4d4d gui=NONE cterm=NONE
+hi Question guifg=#00ff00 guibg=NONE gui=NONE cterm=NONE
+hi Search guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi SignColumn guifg=#008b8b guibg=NONE gui=NONE cterm=NONE
+hi SpecialKey guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
+hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
+hi SpellCap guifg=#00ff00 guibg=NONE guisp=#00ff00 gui=undercurl cterm=underline
+hi SpellLocal guifg=#00ffff guibg=NONE guisp=#00ffff gui=undercurl cterm=underline
+hi SpellRare guifg=#ff80ff guibg=NONE guisp=#ff80ff gui=undercurl cterm=underline
+hi! link StatusLineTerm StatusLine
+hi! link StatusLineTermNC StatusLineNC
+hi! link TabLineFill TabLine
+hi ToolbarButton guifg=NONE guibg=#999999 gui=bold cterm=NONE
+hi ToolbarLine guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi VertSplit guifg=#ffffff guibg=#ffffff gui=NONE cterm=NONE
+hi Visual guifg=#ffffff guibg=#999999 gui=NONE cterm=NONE
+hi VisualNOS guifg=NONE guibg=NONE gui=bold,underline ctermfg=NONE ctermbg=NONE cterm=underline
+hi WarningMsg guifg=#ff0000 guibg=NONE gui=NONE cterm=NONE
+hi WildMenu guifg=#000000 guibg=#ffff00 gui=bold cterm=NONE
+hi debugBreakpoint guifg=#00008b guibg=#ff0000 gui=NONE cterm=NONE
+hi debugPC guifg=#00008b guibg=#0000ff gui=NONE cterm=NONE
+hi! link Terminal Normal
+hi! link CursorColumn CursorLine
+hi! link CursorIM Cursor
+hi! link LineNrAbove LineNr
+hi! link LineNrBelow LineNr
+hi! link Debug Special
+hi! link diffAdded String
+hi! link diffRemoved WarningMsg
+hi! link diffOnly WarningMsg
+hi! link diffNoEOL WarningMsg
+hi! link diffIsA WarningMsg
+hi! link diffIdentical WarningMsg
+hi! link diffDiffer WarningMsg
+hi! link diffCommon WarningMsg
+hi! link diffBDiffer WarningMsg
+hi! link lCursor Cursor
+hi! link CurSearch Search
+hi! link CursorLineFold CursorLine
+hi! link CursorLineSign CursorLine
+hi Directory guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
+hi Title guifg=#ff80ff guibg=NONE gui=NONE cterm=NONE
+hi Comment guifg=#80a0ff guibg=NONE gui=NONE cterm=NONE
+hi Constant guifg=#ffa0a0 guibg=NONE gui=NONE cterm=NONE
+hi Identifier guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
+hi Ignore guifg=#333333 guibg=NONE gui=NONE cterm=NONE
+hi PreProc guifg=#ff80ff guibg=NONE gui=NONE cterm=NONE
+hi Special guifg=#ffa500 guibg=NONE gui=NONE cterm=NONE
+hi Statement guifg=#ffff60 guibg=NONE gui=bold cterm=NONE
+hi Todo guifg=#ffff00 guibg=#0000ff gui=reverse cterm=reverse
+hi Type guifg=#00ff00 guibg=NONE gui=bold cterm=NONE
+hi Underlined guifg=#80a0ff guibg=NONE gui=underline cterm=underline
+hi! link Boolean Constant
+hi! link Character Constant
+hi! link Conditional Statement
+hi! link Define PreProc
+hi! link Delimiter Special
+hi! link Exception Statement
+hi! link Float Constant
+hi! link Function Identifier
+hi! link Include PreProc
+hi! link Keyword Statement
+hi! link Label Statement
+hi! link Macro PreProc
+hi! link Number Constant
+hi! link Operator Statement
+hi! link PreCondit PreProc
+hi! link Repeat Statement
+hi! link SpecialChar Special
+hi! link SpecialComment Special
+hi! link StorageClass Type
+hi! link String Constant
+hi! link Structure Type
+hi! link Tag Special
+hi! link Typedef Type
+hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
+hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
+hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
+hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
+
+if s:t_Co >= 256
+ hi Normal ctermfg=231 ctermbg=236 cterm=NONE
+ hi ColorColumn ctermfg=NONE ctermbg=88 cterm=NONE
+ hi CursorLine ctermfg=NONE ctermbg=241 cterm=NONE
+ hi CursorLineNr ctermfg=226 ctermbg=241 cterm=NONE
+ hi EndOfBuffer ctermfg=153 ctermbg=239 cterm=NONE
+ hi StatusLine ctermfg=236 ctermbg=231 cterm=NONE
+ hi StatusLineNC ctermfg=236 ctermbg=252 cterm=NONE
+ hi TabLineSel ctermfg=236 ctermbg=231 cterm=NONE
+ hi TabLine ctermfg=236 ctermbg=252 cterm=NONE
+ hi QuickFixLine ctermfg=231 ctermbg=90 cterm=NONE
+ hi Pmenu ctermfg=231 ctermbg=239 cterm=NONE
+ hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi PmenuSel ctermfg=16 ctermbg=250 cterm=NONE
+ hi PmenuThumb ctermfg=NONE ctermbg=231 cterm=NONE
+ hi LineNr ctermfg=226 ctermbg=NONE cterm=NONE
+ hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi Cursor ctermfg=16 ctermbg=46 cterm=NONE
+ hi Error ctermfg=196 ctermbg=231 cterm=reverse
+ hi ErrorMsg ctermfg=231 ctermbg=196 cterm=NONE
+ hi FoldColumn ctermfg=153 ctermbg=NONE cterm=NONE
+ hi Folded ctermfg=18 ctermbg=252 cterm=NONE
+ hi IncSearch ctermfg=46 ctermbg=NONE cterm=reverse
+ hi MatchParen ctermfg=NONE ctermbg=30 cterm=NONE
+ hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi MoreMsg ctermfg=29 ctermbg=NONE cterm=NONE
+ hi NonText ctermfg=153 ctermbg=239 cterm=NONE
+ hi Question ctermfg=46 ctermbg=NONE cterm=NONE
+ hi Search ctermfg=16 ctermbg=226 cterm=NONE
+ hi SignColumn ctermfg=30 ctermbg=NONE cterm=NONE
+ hi SpecialKey ctermfg=51 ctermbg=NONE cterm=NONE
+ hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
+ hi SpellCap ctermfg=46 ctermbg=NONE cterm=underline
+ hi SpellLocal ctermfg=51 ctermbg=NONE cterm=underline
+ hi SpellRare ctermfg=201 ctermbg=NONE cterm=underline
+ hi! link StatusLineTerm StatusLine
+ hi! link StatusLineTermNC StatusLineNC
+ hi! link TabLineFill TabLine
+ hi ToolbarButton ctermfg=NONE ctermbg=246 cterm=NONE
+ hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi VertSplit ctermfg=231 ctermbg=231 cterm=NONE
+ hi Visual ctermfg=231 ctermbg=246 cterm=NONE
+ hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=underline
+ hi WarningMsg ctermfg=196 ctermbg=NONE cterm=NONE
+ hi WildMenu ctermfg=16 ctermbg=226 cterm=NONE
+ hi debugBreakpoint ctermfg=18 ctermbg=196 cterm=NONE
+ hi debugPC ctermfg=18 ctermbg=21 cterm=NONE
+ hi! link Terminal Normal
+ hi! link CursorColumn CursorLine
+ hi! link CursorIM Cursor
+ hi! link LineNrAbove LineNr
+ hi! link LineNrBelow LineNr
+ hi! link Debug Special
+ hi! link diffAdded String
+ hi! link diffRemoved WarningMsg
+ hi! link diffOnly WarningMsg
+ hi! link diffNoEOL WarningMsg
+ hi! link diffIsA WarningMsg
+ hi! link diffIdentical WarningMsg
+ hi! link diffDiffer WarningMsg
+ hi! link diffCommon WarningMsg
+ hi! link diffBDiffer WarningMsg
+ hi! link lCursor Cursor
+ hi! link CurSearch Search
+ hi! link CursorLineFold CursorLine
+ hi! link CursorLineSign CursorLine
+ hi Directory ctermfg=51 ctermbg=NONE cterm=NONE
+ hi Title ctermfg=201 ctermbg=NONE cterm=NONE
+ hi Comment ctermfg=111 ctermbg=NONE cterm=NONE
+ hi Constant ctermfg=217 ctermbg=NONE cterm=NONE
+ hi Identifier ctermfg=51 ctermbg=NONE cterm=NONE
+ hi Ignore ctermfg=236 ctermbg=NONE cterm=NONE
+ hi PreProc ctermfg=201 ctermbg=NONE cterm=NONE
+ hi Special ctermfg=214 ctermbg=NONE cterm=NONE
+ hi Statement ctermfg=227 ctermbg=NONE cterm=NONE
+ hi Todo ctermfg=226 ctermbg=21 cterm=reverse
+ hi Type ctermfg=46 ctermbg=NONE cterm=NONE
+ hi Underlined ctermfg=111 ctermbg=NONE cterm=underline
+ hi! link Boolean Constant
+ hi! link Character Constant
+ hi! link Conditional Statement
+ hi! link Define PreProc
+ hi! link Delimiter Special
+ hi! link Exception Statement
+ hi! link Float Constant
+ hi! link Function Identifier
+ hi! link Include PreProc
+ hi! link Keyword Statement
+ hi! link Label Statement
+ hi! link Macro PreProc
+ hi! link Number Constant
+ hi! link Operator Statement
+ hi! link PreCondit PreProc
+ hi! link Repeat Statement
+ hi! link SpecialChar Special
+ hi! link SpecialComment Special
+ hi! link StorageClass Type
+ hi! link String Constant
+ hi! link Structure Type
+ hi! link Tag Special
+ hi! link Typedef Type
+ hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
+ hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
+ hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
+ hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
+ unlet s:t_Co
+ finish
+endif
+
+if s:t_Co >= 16
+ hi Normal ctermfg=white ctermbg=black cterm=NONE
+ hi ColorColumn ctermfg=white ctermbg=darkred cterm=NONE
+ hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
+ hi CursorLineNr ctermfg=NONE ctermbg=NONE cterm=underline
+ hi EndOfBuffer ctermfg=lightblue ctermbg=NONE cterm=NONE
+ hi StatusLine ctermfg=black ctermbg=white cterm=NONE
+ hi StatusLineNC ctermfg=black ctermbg=gray cterm=NONE
+ hi TabLineSel ctermfg=black ctermbg=white cterm=NONE
+ hi TabLine ctermfg=black ctermbg=gray cterm=NONE
+ hi QuickFixLine ctermfg=white ctermbg=darkmagenta cterm=NONE
+ hi Pmenu ctermfg=white ctermbg=darkgray cterm=NONE
+ hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi PmenuSel ctermfg=black ctermbg=gray cterm=NONE
+ hi PmenuThumb ctermfg=NONE ctermbg=white cterm=NONE
+ hi LineNr ctermfg=darkyellow ctermbg=NONE cterm=NONE
+ hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi Cursor ctermfg=black ctermbg=green cterm=NONE
+ hi Error ctermfg=red ctermbg=white cterm=reverse
+ hi ErrorMsg ctermfg=white ctermbg=red cterm=NONE
+ hi FoldColumn ctermfg=lightblue ctermbg=NONE cterm=NONE
+ hi Folded ctermfg=darkblue ctermbg=gray cterm=NONE
+ hi IncSearch ctermfg=green ctermbg=NONE cterm=reverse
+ hi MatchParen ctermfg=NONE ctermbg=darkcyan cterm=NONE
+ hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
+ hi NonText ctermfg=lightblue ctermbg=darkgray cterm=NONE
+ hi Question ctermfg=green ctermbg=NONE cterm=NONE
+ hi Search ctermfg=black ctermbg=darkyellow cterm=NONE
+ hi SignColumn ctermfg=darkcyan ctermbg=NONE cterm=NONE
+ hi SpecialKey ctermfg=cyan ctermbg=NONE cterm=NONE
+ hi SpellBad ctermfg=red ctermbg=NONE cterm=underline
+ hi SpellCap ctermfg=green ctermbg=NONE cterm=underline
+ hi SpellLocal ctermfg=cyan ctermbg=NONE cterm=underline
+ hi SpellRare ctermfg=darkmagenta ctermbg=NONE cterm=underline
+ hi! link StatusLineTerm StatusLine
+ hi! link StatusLineTermNC StatusLineNC
+ hi! link TabLineFill TabLine
+ hi ToolbarButton ctermfg=NONE ctermbg=darkgray cterm=NONE
+ hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi VertSplit ctermfg=white ctermbg=white cterm=NONE
+ hi Visual ctermfg=white ctermbg=darkgray cterm=NONE
+ hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=underline
+ hi WarningMsg ctermfg=red ctermbg=NONE cterm=NONE
+ hi WildMenu ctermfg=black ctermbg=darkyellow cterm=NONE
+ hi debugBreakpoint ctermfg=darkblue ctermbg=red cterm=NONE
+ hi debugPC ctermfg=darkblue ctermbg=blue cterm=NONE
+ hi! link Terminal Normal
+ hi! link CursorColumn CursorLine
+ hi! link CursorIM Cursor
+ hi! link LineNrAbove LineNr
+ hi! link LineNrBelow LineNr
+ hi! link Debug Special
+ hi! link diffAdded String
+ hi! link diffRemoved WarningMsg
+ hi! link diffOnly WarningMsg
+ hi! link diffNoEOL WarningMsg
+ hi! link diffIsA WarningMsg
+ hi! link diffIdentical WarningMsg
+ hi! link diffDiffer WarningMsg
+ hi! link diffCommon WarningMsg
+ hi! link diffBDiffer WarningMsg
+ hi! link lCursor Cursor
+ hi! link CurSearch Search
+ hi! link CursorLineFold CursorLine
+ hi! link CursorLineSign CursorLine
+ hi Directory ctermfg=cyan ctermbg=NONE cterm=NONE
+ hi Title ctermfg=darkmagenta ctermbg=NONE cterm=NONE
+ hi Comment ctermfg=lightblue ctermbg=NONE cterm=NONE
+ hi Constant ctermfg=magenta ctermbg=NONE cterm=NONE
+ hi Identifier ctermfg=cyan ctermbg=NONE cterm=NONE
+ hi Ignore ctermfg=gray ctermbg=NONE cterm=NONE
+ hi PreProc ctermfg=darkmagenta ctermbg=NONE cterm=NONE
+ hi Special ctermfg=darkred ctermbg=NONE cterm=NONE
+ hi Statement ctermfg=yellow ctermbg=NONE cterm=NONE
+ hi Todo ctermfg=darkyellow ctermbg=blue cterm=reverse
+ hi Type ctermfg=green ctermbg=NONE cterm=NONE
+ hi Underlined ctermfg=lightblue ctermbg=NONE cterm=underline
+ hi! link Boolean Constant
+ hi! link Character Constant
+ hi! link Conditional Statement
+ hi! link Define PreProc
+ hi! link Delimiter Special
+ hi! link Exception Statement
+ hi! link Float Constant
+ hi! link Function Identifier
+ hi! link Include PreProc
+ hi! link Keyword Statement
+ hi! link Label Statement
+ hi! link Macro PreProc
+ hi! link Number Constant
+ hi! link Operator Statement
+ hi! link PreCondit PreProc
+ hi! link Repeat Statement
+ hi! link SpecialChar Special
+ hi! link SpecialComment Special
+ hi! link StorageClass Type
+ hi! link String Constant
+ hi! link Structure Type
+ hi! link Tag Special
+ hi! link Typedef Type
+ hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
+ hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
+ hi DiffText ctermfg=black ctermbg=grey cterm=NONE
+ hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
+ unlet s:t_Co
+ finish
endif
-let colors_name = "evening"
-
-hi Normal ctermbg=DarkGrey ctermfg=White guifg=White guibg=grey20
-
-" Groups used in the 'highlight' and 'guicursor' options default value.
-hi ErrorMsg term=standout ctermbg=DarkRed ctermfg=White guibg=Red guifg=White
-hi IncSearch term=reverse cterm=reverse gui=reverse
-hi ModeMsg term=bold cterm=bold gui=bold
-hi StatusLine term=reverse,bold cterm=reverse,bold gui=reverse,bold
-hi StatusLineNC term=reverse cterm=reverse gui=reverse
-hi VertSplit term=reverse cterm=reverse gui=reverse
-hi Visual term=reverse ctermbg=black guibg=grey60
-hi DiffText term=reverse cterm=bold ctermbg=Red gui=bold guibg=Red
-hi Cursor guibg=Green guifg=Black
-hi lCursor guibg=Cyan guifg=Black
-hi Directory term=bold ctermfg=LightCyan guifg=Cyan
-hi LineNr term=underline ctermfg=Yellow guifg=Yellow
-hi MoreMsg term=bold ctermfg=LightGreen gui=bold guifg=SeaGreen
-hi NonText term=bold ctermfg=LightBlue gui=bold guifg=LightBlue guibg=grey30
-hi Question term=standout ctermfg=LightGreen gui=bold guifg=Green
-hi Search term=reverse ctermbg=Yellow ctermfg=Black guibg=Yellow guifg=Black
-hi SpecialKey term=bold ctermfg=LightBlue guifg=Cyan
-hi Title term=bold ctermfg=LightMagenta gui=bold guifg=Magenta
-hi WarningMsg term=standout ctermfg=LightRed guifg=Red
-hi WildMenu term=standout ctermbg=Yellow ctermfg=Black guibg=Yellow guifg=Black
-hi Folded term=standout ctermbg=LightGrey ctermfg=DarkBlue guibg=LightGrey guifg=DarkBlue
-hi FoldColumn term=standout ctermbg=LightGrey ctermfg=DarkBlue guibg=Grey guifg=DarkBlue
-hi DiffAdd term=bold ctermbg=DarkBlue guibg=DarkBlue
-hi DiffChange term=bold ctermbg=DarkMagenta guibg=DarkMagenta
-hi DiffDelete term=bold ctermfg=Blue ctermbg=DarkCyan gui=bold guifg=Blue guibg=DarkCyan
-hi CursorColumn term=reverse ctermbg=Black guibg=grey40
-hi CursorLine term=underline cterm=underline guibg=grey40
-
-" Groups for syntax highlighting
-hi Constant term=underline ctermfg=Magenta guifg=#ffa0a0
-hi Special term=bold ctermfg=LightRed guifg=Orange
-if &t_Co > 8
- hi Statement term=bold cterm=bold ctermfg=Yellow guifg=#ffff60 gui=bold
+if s:t_Co >= 0
+ hi Normal term=NONE
+ hi ColorColumn term=reverse
+ hi Conceal term=NONE
+ hi Cursor term=reverse
+ hi CursorColumn term=NONE
+ hi CursorLine term=underline
+ hi CursorLineNr term=bold
+ hi DiffAdd term=reverse
+ hi DiffChange term=NONE
+ hi DiffDelete term=reverse
+ hi DiffText term=reverse
+ hi Directory term=NONE
+ hi EndOfBuffer term=NONE
+ hi ErrorMsg term=bold,reverse
+ hi FoldColumn term=NONE
+ hi Folded term=NONE
+ hi IncSearch term=bold,reverse,underline
+ hi LineNr term=NONE
+ hi MatchParen term=bold,underline
+ hi ModeMsg term=bold
+ hi MoreMsg term=NONE
+ hi NonText term=NONE
+ hi Pmenu term=reverse
+ hi PmenuSbar term=reverse
+ hi PmenuSel term=bold
+ hi PmenuThumb term=NONE
+ hi Question term=standout
+ hi Search term=reverse
+ hi SignColumn term=reverse
+ hi SpecialKey term=bold
+ hi SpellBad term=underline
+ hi SpellCap term=underline
+ hi SpellLocal term=underline
+ hi SpellRare term=underline
+ hi StatusLine term=bold,reverse
+ hi StatusLineNC term=bold,underline
+ hi TabLine term=bold,underline
+ hi TabLineFill term=NONE
+ hi Terminal term=NONE
+ hi TabLineSel term=bold,reverse
+ hi Title term=NONE
+ hi VertSplit term=NONE
+ hi Visual term=reverse
+ hi VisualNOS term=NONE
+ hi WarningMsg term=standout
+ hi WildMenu term=bold
+ hi CursorIM term=NONE
+ hi ToolbarLine term=reverse
+ hi ToolbarButton term=bold,reverse
+ hi CurSearch term=reverse
+ hi CursorLineFold term=underline
+ hi CursorLineSign term=underline
+ hi Comment term=bold
+ hi Constant term=NONE
+ hi Error term=bold,reverse
+ hi Identifier term=NONE
+ hi Ignore term=NONE
+ hi PreProc term=NONE
+ hi Special term=NONE
+ hi Statement term=NONE
+ hi Todo term=bold,reverse
+ hi Type term=NONE
+ hi Underlined term=underline
+ unlet s:t_Co
+ finish
endif
-hi Ignore ctermfg=DarkGrey guifg=grey20
-" vim: sw=2
+" Background: dark
+" Color: lightmagenta #ffa0a0 217 magenta
+" Color: blue #0000ff 21 blue
+" Color: cyan #00ffff 51 cyan
+" Color: yellow #ffff00 226 darkyellow
+" Color: white #ffffff 231 white
+" Color: black #000000 16 black
+" Color: green #00ff00 46 green
+" Color: magenta #ff80ff 201 darkmagenta
+" Color: red #ff0000 196 red
+" Color: lightyellow #ffff60 227 yellow
+" Color: darkblue #00008b 18 darkblue
+" Color: darkcyan #008b8b 30 darkcyan
+" Color: darkmagenta #8b008b 90 darkmagenta
+" Color: lightblue #add8e6 153 lightblue
+" Color: orange #ffa500 214 darkred
+" Color: seagreen #2e8b57 29 darkgreen
+" Color: lightgrey #d3d3d3 252 gray
+" Color: grey #bebebe 250 gray
+" Color: grey20 #333333 236 gray
+" Color: grey30 #4d4d4d 239 darkgray
+" Color: grey40 #666666 241 darkgray
+" Color: grey60 #999999 246 darkgray
+" Color: xtermblue #0087ff 33 blue
+" Color: xtermdarkblue #006faf 25 darkblue
+" Color: xtermred #ff5f5f 203 red
+" Color: comment #80a0ff 111 lightblue
+" Color: darkred #8b0000 88 darkred
+" Term colors: black orange seagreen yellow xtermdarkblue darkmagenta darkcyan grey
+" Term colors: grey30 xtermred green lightyellow xtermblue magenta cyan white
+" Color: bgDiffA #5F875F 65 darkgreen
+" Color: bgDiffC #5F87AF 67 blue
+" Color: bgDiffD #AF5FAF 133 magenta
+" Color: bgDiffT #C6C6C6 251 grey
+" Color: fgDiffW #FFFFFF 231 white
+" Color: fgDiffB #000000 16 black
+" vim: et ts=2 sw=2
diff --git a/runtime/colors/industry.vim b/runtime/colors/industry.vim
index ac9103b5c5..ac59fae62f 100644
--- a/runtime/colors/industry.vim
+++ b/runtime/colors/industry.vim
@@ -1,40 +1,337 @@
-" Vim color file
-" Maintainer: Shian Lee
-" Last Change: 2014 Mar 6 (for vim 7.4)
-" Remark: "industry" stands for 'industrial' color scheme. In industrial
-" HMI (Human-Machine-Interface) programming, using a standard color
-" scheme is mandatory in many cases (in traffic-lights for example):
-" LIGHT_RED is 'Warning'
-" LIGHT_YELLOW is 'Attention'
-" LIGHT_GREEN is 'Normal'
-" LIGHT_MAGENTA is 'Warning-Attention' (light RED-YELLOW)
-" LIGHT_CYAN is 'Attention-Normal' (light YELLOW-GREEN).
-" BLACK is Dark-High-Contrast Background for maximum safety.
-" BLUE is Shade of BLACK (not supposed to get attention).
-"
-" Industrial color scheme is by nature clear, safe and productive.
-" Yet, depends on the file type's syntax, it might appear incorrect.
-
-" Reset to dark background, then reset everything to defaults:
+" Name: industry
+" Description: "industry" stands for 'industrial' color scheme.
+" Author: Original author Shian Lee.
+" Maintainer: Original maintainer Shian Lee.
+" Website: https://github.com/vim/colorschemes
+" License: Same as Vim
+" Last Updated: Wed May 11 22:56:38 2022
+
+" Generated by Colortemplate v2.2.0
+
set background=dark
-highlight clear
-if exists("syntax_on")
- syntax reset
+
+hi clear
+let g:colors_name = 'industry'
+
+let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
+
+if (has('termguicolors') && &termguicolors) || has('gui_running')
+ let g:terminal_ansi_colors = ['#303030', '#870000', '#5fd75f', '#afaf00', '#87afff', '#af00af', '#00afaf', '#6c6c6c', '#444444', '#ff0000', '#00ff00', '#ffff00', '#005fff', '#ff00ff', '#00ffff', '#ffffff']
endif
+hi Normal guifg=#dadada guibg=#000000 gui=NONE cterm=NONE
+hi EndOfBuffer guifg=#444444 guibg=#000000 gui=NONE cterm=NONE
+hi StatusLine guifg=#000000 guibg=#dadada gui=bold cterm=NONE
+hi StatusLineNC guifg=#000000 guibg=#6c6c6c gui=NONE cterm=NONE
+hi StatusLineTerm guifg=#000000 guibg=#00ff00 gui=bold cterm=NONE
+hi StatusLineTermNC guifg=#000000 guibg=#5fd75f gui=NONE cterm=NONE
+hi VertSplit guifg=#000000 guibg=#6c6c6c gui=NONE cterm=NONE
+hi Pmenu guifg=#dadada guibg=#444444 gui=NONE cterm=NONE
+hi PmenuSel guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi PmenuSbar guifg=NONE guibg=#000000 gui=NONE cterm=NONE
+hi PmenuThumb guifg=NONE guibg=#6c6c6c gui=NONE cterm=NONE
+hi TabLine guifg=#dadada guibg=#444444 gui=NONE cterm=NONE
+hi TabLineFill guifg=NONE guibg=#6c6c6c gui=NONE cterm=NONE
+hi TabLineSel guifg=#ffffff guibg=#000000 gui=bold cterm=NONE
+hi ToolbarButton guifg=#dadada guibg=#6c6c6c gui=bold cterm=NONE
+hi ToolbarLine guifg=NONE guibg=#303030 gui=NONE cterm=NONE
+hi NonText guifg=#00afaf guibg=NONE gui=NONE cterm=NONE
+hi SpecialKey guifg=#00afaf guibg=NONE gui=NONE cterm=NONE
+hi Folded guifg=#00afaf guibg=#303030 gui=NONE cterm=NONE
+hi Visual guifg=#dadada guibg=#6c6c6c gui=NONE cterm=NONE
+hi CursorLine guifg=NONE guibg=#6c6c6c gui=NONE cterm=NONE
+hi CursorColumn guifg=NONE guibg=#6c6c6c gui=NONE cterm=NONE
+hi CursorLineNr guifg=#ffff00 guibg=NONE gui=bold cterm=NONE
+hi ColorColumn guifg=NONE guibg=#444444 gui=NONE cterm=NONE
+hi QuickFixLine guifg=#000000 guibg=#ff00ff gui=NONE cterm=NONE
+hi VisualNOS guifg=#dadada guibg=#6c6c6c gui=NONE cterm=NONE
+hi LineNr guifg=#ffff00 guibg=NONE gui=NONE cterm=NONE
+hi FoldColumn guifg=#00afaf guibg=NONE gui=NONE cterm=NONE
+hi SignColumn guifg=#00afaf guibg=NONE gui=NONE cterm=NONE
+hi Underlined guifg=#87afff guibg=NONE gui=underline cterm=underline
+hi Error guifg=#ffffff guibg=#ff0000 gui=NONE cterm=NONE
+hi ErrorMsg guifg=#ffffff guibg=#ff0000 gui=NONE cterm=NONE
+hi ModeMsg guifg=#ffffff guibg=NONE gui=bold cterm=NONE
+hi WarningMsg guifg=#870000 guibg=NONE gui=bold cterm=NONE
+hi MoreMsg guifg=#5fd75f guibg=NONE gui=bold cterm=NONE
+hi Question guifg=#00ff00 guibg=NONE gui=bold cterm=NONE
+hi Todo guifg=#005fff guibg=#ffff00 gui=NONE cterm=NONE
+hi MatchParen guifg=#303030 guibg=#afaf00 gui=NONE cterm=NONE
+hi Search guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi IncSearch guifg=#000000 guibg=#00ff00 gui=NONE cterm=NONE
+hi WildMenu guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi Cursor guifg=#000000 guibg=#dadada gui=NONE cterm=NONE
+hi lCursor guifg=#000000 guibg=#ff0000 gui=NONE cterm=NONE
+hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
+hi SpellCap guifg=#005fff guibg=NONE guisp=#005fff gui=undercurl cterm=underline
+hi SpellLocal guifg=#ff00ff guibg=NONE guisp=#ff00ff gui=undercurl cterm=underline
+hi SpellRare guifg=#00ff00 guibg=NONE guisp=#00ff00 gui=undercurl cterm=underline
+hi Comment guifg=#00afaf guibg=NONE gui=NONE cterm=NONE
+hi Identifier guifg=#ff00ff guibg=NONE gui=NONE cterm=NONE
+hi Function guifg=#00ff00 guibg=NONE gui=NONE cterm=NONE
+hi Statement guifg=#ffffff guibg=NONE gui=bold cterm=NONE
+hi Constant guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
+hi PreProc guifg=#ffff00 guibg=NONE gui=NONE cterm=NONE
+hi Type guifg=#00ff00 guibg=NONE gui=bold cterm=NONE
+hi Special guifg=#ff0000 guibg=NONE gui=NONE cterm=NONE
+hi Delimiter guifg=#ffff00 guibg=NONE gui=NONE cterm=NONE
+hi Directory guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
+hi Conceal guifg=#6c6c6c guibg=NONE gui=NONE cterm=NONE
+hi Ignore guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi Title guifg=#ff00ff guibg=NONE gui=bold cterm=NONE
+hi! link Terminal Normal
+hi! link LineNrAbove LineNr
+hi! link LineNrBelow LineNr
+hi! link CurSearch Search
+hi! link CursorLineFold CursorLine
+hi! link CursorLineSign CursorLine
+hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
+hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
+hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
+hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
-let colors_name = "industry"
+if s:t_Co >= 256
+ hi Normal ctermfg=253 ctermbg=16 cterm=NONE
+ hi EndOfBuffer ctermfg=238 ctermbg=16 cterm=NONE
+ hi StatusLine ctermfg=16 ctermbg=253 cterm=NONE
+ hi StatusLineNC ctermfg=16 ctermbg=242 cterm=NONE
+ hi StatusLineTerm ctermfg=16 ctermbg=46 cterm=NONE
+ hi StatusLineTermNC ctermfg=16 ctermbg=77 cterm=NONE
+ hi VertSplit ctermfg=16 ctermbg=242 cterm=NONE
+ hi Pmenu ctermfg=253 ctermbg=238 cterm=NONE
+ hi PmenuSel ctermfg=16 ctermbg=226 cterm=NONE
+ hi PmenuSbar ctermfg=NONE ctermbg=16 cterm=NONE
+ hi PmenuThumb ctermfg=NONE ctermbg=242 cterm=NONE
+ hi TabLine ctermfg=253 ctermbg=238 cterm=NONE
+ hi TabLineFill ctermfg=NONE ctermbg=242 cterm=NONE
+ hi TabLineSel ctermfg=231 ctermbg=16 cterm=NONE
+ hi ToolbarButton ctermfg=253 ctermbg=242 cterm=NONE
+ hi ToolbarLine ctermfg=NONE ctermbg=236 cterm=NONE
+ hi NonText ctermfg=37 ctermbg=NONE cterm=NONE
+ hi SpecialKey ctermfg=37 ctermbg=NONE cterm=NONE
+ hi Folded ctermfg=37 ctermbg=236 cterm=NONE
+ hi Visual ctermfg=253 ctermbg=242 cterm=NONE
+ hi CursorLine ctermfg=NONE ctermbg=242 cterm=NONE
+ hi CursorColumn ctermfg=NONE ctermbg=242 cterm=NONE
+ hi CursorLineNr ctermfg=226 ctermbg=NONE cterm=NONE
+ hi ColorColumn ctermfg=NONE ctermbg=238 cterm=NONE
+ hi QuickFixLine ctermfg=16 ctermbg=201 cterm=NONE
+ hi VisualNOS ctermfg=253 ctermbg=242 cterm=NONE
+ hi LineNr ctermfg=226 ctermbg=NONE cterm=NONE
+ hi FoldColumn ctermfg=37 ctermbg=NONE cterm=NONE
+ hi SignColumn ctermfg=37 ctermbg=NONE cterm=NONE
+ hi Underlined ctermfg=111 ctermbg=NONE cterm=underline
+ hi Error ctermfg=231 ctermbg=196 cterm=NONE
+ hi ErrorMsg ctermfg=231 ctermbg=196 cterm=NONE
+ hi ModeMsg ctermfg=231 ctermbg=NONE cterm=NONE
+ hi WarningMsg ctermfg=88 ctermbg=NONE cterm=NONE
+ hi MoreMsg ctermfg=77 ctermbg=NONE cterm=NONE
+ hi Question ctermfg=46 ctermbg=NONE cterm=NONE
+ hi Todo ctermfg=27 ctermbg=226 cterm=NONE
+ hi MatchParen ctermfg=236 ctermbg=142 cterm=NONE
+ hi Search ctermfg=16 ctermbg=226 cterm=NONE
+ hi IncSearch ctermfg=16 ctermbg=46 cterm=NONE
+ hi WildMenu ctermfg=16 ctermbg=226 cterm=NONE
+ hi Cursor ctermfg=16 ctermbg=253 cterm=NONE
+ hi lCursor ctermfg=16 ctermbg=196 cterm=NONE
+ hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
+ hi SpellCap ctermfg=27 ctermbg=NONE cterm=underline
+ hi SpellLocal ctermfg=201 ctermbg=NONE cterm=underline
+ hi SpellRare ctermfg=46 ctermbg=NONE cterm=underline
+ hi Comment ctermfg=37 ctermbg=NONE cterm=NONE
+ hi Identifier ctermfg=201 ctermbg=NONE cterm=NONE
+ hi Function ctermfg=46 ctermbg=NONE cterm=NONE
+ hi Statement ctermfg=231 ctermbg=NONE cterm=NONE
+ hi Constant ctermfg=51 ctermbg=NONE cterm=NONE
+ hi PreProc ctermfg=226 ctermbg=NONE cterm=NONE
+ hi Type ctermfg=46 ctermbg=NONE cterm=NONE
+ hi Special ctermfg=196 ctermbg=NONE cterm=NONE
+ hi Delimiter ctermfg=226 ctermbg=NONE cterm=NONE
+ hi Directory ctermfg=51 ctermbg=NONE cterm=NONE
+ hi Conceal ctermfg=242 ctermbg=NONE cterm=NONE
+ hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi Title ctermfg=201 ctermbg=NONE cterm=NONE
+ hi! link Terminal Normal
+ hi! link LineNrAbove LineNr
+ hi! link LineNrBelow LineNr
+ hi! link CurSearch Search
+ hi! link CursorLineFold CursorLine
+ hi! link CursorLineSign CursorLine
+ hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
+ hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
+ hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
+ hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
+ unlet s:t_Co
+ finish
+endif
-" First set Normal to regular white on black text colors:
-hi Normal ctermfg=LightGray ctermbg=Black guifg=#dddddd guibg=Black
+if s:t_Co >= 16
+ hi Normal ctermfg=white ctermbg=black cterm=NONE
+ hi EndOfBuffer ctermfg=darkgrey ctermbg=black cterm=NONE
+ hi StatusLine ctermfg=black ctermbg=white cterm=NONE
+ hi StatusLineNC ctermfg=black ctermbg=grey cterm=NONE
+ hi StatusLineTerm ctermfg=black ctermbg=green cterm=NONE
+ hi StatusLineTermNC ctermfg=black ctermbg=darkgreen cterm=NONE
+ hi VertSplit ctermfg=black ctermbg=grey cterm=NONE
+ hi Pmenu ctermfg=white ctermbg=darkgrey cterm=NONE
+ hi PmenuSel ctermfg=black ctermbg=yellow cterm=NONE
+ hi PmenuSbar ctermfg=NONE ctermbg=black cterm=NONE
+ hi PmenuThumb ctermfg=NONE ctermbg=grey cterm=NONE
+ hi TabLine ctermfg=white ctermbg=darkgrey cterm=NONE
+ hi TabLineFill ctermfg=NONE ctermbg=grey cterm=NONE
+ hi TabLineSel ctermfg=white ctermbg=black cterm=NONE
+ hi ToolbarButton ctermfg=white ctermbg=darkgrey cterm=NONE
+ hi ToolbarLine ctermfg=NONE ctermbg=black cterm=NONE
+ hi NonText ctermfg=darkcyan ctermbg=NONE cterm=NONE
+ hi SpecialKey ctermfg=darkcyan ctermbg=NONE cterm=NONE
+ hi Folded ctermfg=darkcyan ctermbg=NONE cterm=NONE
+ hi Visual ctermfg=black ctermbg=grey cterm=NONE
+ hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
+ hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=underline
+ hi CursorLineNr ctermfg=yellow ctermbg=NONE cterm=underline
+ hi ColorColumn ctermfg=white ctermbg=darkgrey cterm=NONE
+ hi QuickFixLine ctermfg=black ctermbg=magenta cterm=NONE
+ hi VisualNOS ctermfg=white ctermbg=grey cterm=NONE
+ hi LineNr ctermfg=yellow ctermbg=NONE cterm=NONE
+ hi FoldColumn ctermfg=darkcyan ctermbg=NONE cterm=NONE
+ hi SignColumn ctermfg=darkcyan ctermbg=NONE cterm=NONE
+ hi Underlined ctermfg=darkblue ctermbg=NONE cterm=underline
+ hi Error ctermfg=white ctermbg=red cterm=NONE
+ hi ErrorMsg ctermfg=white ctermbg=red cterm=NONE
+ hi ModeMsg ctermfg=white ctermbg=NONE cterm=NONE
+ hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=NONE
+ hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
+ hi Question ctermfg=green ctermbg=NONE cterm=NONE
+ hi Todo ctermfg=blue ctermbg=yellow cterm=NONE
+ hi MatchParen ctermfg=black ctermbg=darkyellow cterm=NONE
+ hi Search ctermfg=black ctermbg=yellow cterm=NONE
+ hi IncSearch ctermfg=black ctermbg=green cterm=NONE
+ hi WildMenu ctermfg=black ctermbg=yellow cterm=NONE
+ hi Cursor ctermfg=black ctermbg=white cterm=NONE
+ hi lCursor ctermfg=black ctermbg=red cterm=NONE
+ hi SpellBad ctermfg=red ctermbg=NONE cterm=underline
+ hi SpellCap ctermfg=blue ctermbg=NONE cterm=underline
+ hi SpellLocal ctermfg=magenta ctermbg=NONE cterm=underline
+ hi SpellRare ctermfg=green ctermbg=NONE cterm=underline
+ hi Comment ctermfg=darkcyan ctermbg=NONE cterm=NONE
+ hi Identifier ctermfg=magenta ctermbg=NONE cterm=NONE
+ hi Function ctermfg=green ctermbg=NONE cterm=NONE
+ hi Statement ctermfg=white ctermbg=NONE cterm=NONE
+ hi Constant ctermfg=cyan ctermbg=NONE cterm=NONE
+ hi PreProc ctermfg=yellow ctermbg=NONE cterm=NONE
+ hi Type ctermfg=green ctermbg=NONE cterm=NONE
+ hi Special ctermfg=red ctermbg=NONE cterm=NONE
+ hi Delimiter ctermfg=yellow ctermbg=NONE cterm=NONE
+ hi Directory ctermfg=cyan ctermbg=NONE cterm=NONE
+ hi Conceal ctermfg=grey ctermbg=NONE cterm=NONE
+ hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi Title ctermfg=magenta ctermbg=NONE cterm=NONE
+ hi! link Terminal Normal
+ hi! link LineNrAbove LineNr
+ hi! link LineNrBelow LineNr
+ hi! link CurSearch Search
+ hi! link CursorLineFold CursorLine
+ hi! link CursorLineSign CursorLine
+ hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
+ hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
+ hi DiffText ctermfg=black ctermbg=grey cterm=NONE
+ hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
+ unlet s:t_Co
+ finish
+endif
-" Syntax highlighting (other color-groups using default, see :help group-name):
-hi Comment cterm=NONE ctermfg=DarkCyan gui=NONE guifg=#00aaaa
-hi Constant cterm=NONE ctermfg=LightCyan gui=NONE guifg=#00ffff
-hi Identifier cterm=NONE ctermfg=LightMagenta gui=NONE guifg=#ff00ff
-hi Function cterm=NONE ctermfg=LightGreen gui=NONE guifg=#00ff00
-hi Statement cterm=NONE ctermfg=White gui=bold guifg=#ffffff
-hi PreProc cterm=NONE ctermfg=Yellow gui=NONE guifg=#ffff00
-hi Type cterm=NONE ctermfg=LightGreen gui=bold guifg=#00ff00
-hi Special cterm=NONE ctermfg=LightRed gui=NONE guifg=#ff0000
-hi Delimiter cterm=NONE ctermfg=Yellow gui=NONE guifg=#ffff00
+if s:t_Co >= 0
+ hi Normal term=NONE
+ hi ColorColumn term=reverse
+ hi Conceal term=NONE
+ hi Cursor term=reverse
+ hi CursorColumn term=NONE
+ hi CursorLine term=underline
+ hi CursorLineNr term=bold
+ hi DiffAdd term=reverse
+ hi DiffChange term=NONE
+ hi DiffDelete term=reverse
+ hi DiffText term=reverse
+ hi Directory term=NONE
+ hi EndOfBuffer term=NONE
+ hi ErrorMsg term=bold,reverse
+ hi FoldColumn term=NONE
+ hi Folded term=NONE
+ hi IncSearch term=bold,reverse,underline
+ hi LineNr term=NONE
+ hi MatchParen term=bold,underline
+ hi ModeMsg term=bold
+ hi MoreMsg term=NONE
+ hi NonText term=NONE
+ hi Pmenu term=reverse
+ hi PmenuSbar term=reverse
+ hi PmenuSel term=bold
+ hi PmenuThumb term=NONE
+ hi Question term=standout
+ hi Search term=reverse
+ hi SignColumn term=reverse
+ hi SpecialKey term=bold
+ hi SpellBad term=underline
+ hi SpellCap term=underline
+ hi SpellLocal term=underline
+ hi SpellRare term=underline
+ hi StatusLine term=bold,reverse
+ hi StatusLineNC term=bold,underline
+ hi TabLine term=bold,underline
+ hi TabLineFill term=NONE
+ hi Terminal term=NONE
+ hi TabLineSel term=bold,reverse
+ hi Title term=NONE
+ hi VertSplit term=NONE
+ hi Visual term=reverse
+ hi VisualNOS term=NONE
+ hi WarningMsg term=standout
+ hi WildMenu term=bold
+ hi CursorIM term=NONE
+ hi ToolbarLine term=reverse
+ hi ToolbarButton term=bold,reverse
+ hi CurSearch term=reverse
+ hi CursorLineFold term=underline
+ hi CursorLineSign term=underline
+ hi Comment term=bold
+ hi Constant term=NONE
+ hi Error term=bold,reverse
+ hi Identifier term=NONE
+ hi Ignore term=NONE
+ hi PreProc term=NONE
+ hi Special term=NONE
+ hi Statement term=NONE
+ hi Todo term=bold,reverse
+ hi Type term=NONE
+ hi Underlined term=underline
+ unlet s:t_Co
+ finish
+endif
+" Background: dark
+" Color: foreground #dadada 253 white
+" Color: background #000000 16 black
+" Color: color00 #303030 236 black
+" Color: color08 #444444 238 darkgrey
+" Color: color01 #870000 88 darkred
+" Color: color09 #FF0000 196 red
+" Color: color02 #5FD75F 77 darkgreen
+" Color: color10 #00FF00 46 green
+" Color: color03 #AFAF00 142 darkyellow
+" Color: color11 #FFFF00 226 yellow
+" Color: color04 #87AFFF 111 darkblue
+" Color: color12 #005FFF 27 blue
+" Color: color05 #AF00AF 127 darkmagenta
+" Color: color13 #FF00FF 201 magenta
+" Color: color06 #00AFAF 37 darkcyan
+" Color: color14 #00FFFF 51 cyan
+" Color: color07 #6C6C6C 242 grey
+" Color: color15 #FFFFFF 231 white
+" Term colors: color00 color01 color02 color03 color04 color05 color06 color07
+" Term colors: color08 color09 color10 color11 color12 color13 color14 color15
+" Color: bgDiffA #5F875F 65 darkgreen
+" Color: bgDiffC #5F87AF 67 blue
+" Color: bgDiffD #AF5FAF 133 magenta
+" Color: bgDiffT #C6C6C6 251 grey
+" Color: fgDiffW #FFFFFF 231 white
+" Color: fgDiffB #000000 16 black
+" vim: et ts=2 sw=2
diff --git a/runtime/colors/koehler.vim b/runtime/colors/koehler.vim
index 250472a162..efb2498e40 100644
--- a/runtime/colors/koehler.vim
+++ b/runtime/colors/koehler.vim
@@ -1,73 +1,360 @@
-" local syntax file - set colors on a per-machine basis:
-" vim: tw=0 ts=4 sw=4
-" Vim color file
-" Maintainer: Ron Aaron <ron@ronware.org>
-" Last Change: 2016 Sep 04
+" Name: koehler
+" Author: original author Ron Aaron <ron@ronware.org>
+" Maintainer: original maintainer Ron Aaron <ron@ronware.org>
+" Website: https://www.github.com/vim/colorschemes
+" License: Same as Vim
+" Last Updated: Thu May 12 18:53:29 2022
+
+" Generated by Colortemplate v2.2.0
-hi clear
set background=dark
-if exists("syntax_on")
- syntax reset
+
+hi clear
+let g:colors_name = 'koehler'
+
+let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
+
+hi! link Terminal Normal
+hi! link Boolean Constant
+hi! link Character Constant
+hi! link Conditional Statement
+hi! link Debug Special
+hi! link Define PreProc
+hi! link Delimiter Special
+hi! link Exception Statement
+hi! link Float Number
+hi! link Function Identifier
+hi! link Include PreProc
+hi! link IncSearch Visual
+hi! link Keyword Statement
+hi! link Label Statement
+hi! link LineNrAbove LineNr
+hi! link LineNrBelow LineNr
+hi! link Macro PreProc
+hi! link Number Constant
+hi! link Operator Statement
+hi! link PopupSelected PmenuSel
+hi! link PreCondit PreProc
+hi! link Repeat Statement
+hi! link SpecialChar Special
+hi! link SpecialComment Special
+hi! link StatusLineTerm StatusLine
+hi! link StatusLineTermNC StatusLineNC
+hi! link StorageClass Type
+hi! link String Constant
+hi! link Structure Type
+hi! link Tag Special
+hi! link Typedef Type
+hi! link lCursor Cursor
+hi! link CurSearch Search
+hi! link CursorLineFold CursorLine
+hi! link CursorLineSign CursorLine
+
+if (has('termguicolors') && &termguicolors) || has('gui_running')
+ let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0000ee', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff']
endif
-let g:colors_name = "koehler"
-hi Normal guifg=white guibg=black
-hi Scrollbar guifg=darkcyan guibg=cyan
-hi Menu guifg=black guibg=cyan
-hi SpecialKey term=bold cterm=bold ctermfg=darkred guifg=#cc0000
-hi NonText term=bold cterm=bold ctermfg=darkred gui=bold guifg=#cc0000
-hi Directory term=bold cterm=bold ctermfg=brown guifg=#cc8000
-hi ErrorMsg term=standout cterm=bold ctermfg=grey ctermbg=red guifg=White guibg=Red
-hi Search term=reverse ctermfg=white ctermbg=red guifg=white guibg=Red
-hi MoreMsg term=bold cterm=bold ctermfg=darkgreen gui=bold guifg=SeaGreen
-hi ModeMsg term=bold cterm=bold gui=bold guifg=White guibg=Blue
-hi LineNr term=underline cterm=bold ctermfg=darkcyan guifg=Yellow
-hi Question term=standout cterm=bold ctermfg=darkgreen gui=bold guifg=Green
-hi StatusLine term=bold,reverse cterm=bold ctermfg=lightblue ctermbg=white gui=bold guifg=blue guibg=white
-hi StatusLineNC term=reverse ctermfg=white ctermbg=lightblue guifg=white guibg=blue
-hi Title term=bold cterm=bold ctermfg=darkmagenta gui=bold guifg=Magenta
-hi Visual term=reverse cterm=reverse gui=reverse
-hi WarningMsg term=standout cterm=bold ctermfg=darkred guifg=Red
-hi Cursor guifg=bg guibg=Green
-hi Comment term=bold cterm=bold ctermfg=cyan guifg=#80a0ff
-hi Constant term=underline cterm=bold ctermfg=magenta guifg=#ffa0a0
-hi Special term=bold cterm=bold ctermfg=red guifg=Orange
-hi Identifier term=underline ctermfg=brown guifg=#40ffff
-hi Statement term=bold cterm=bold ctermfg=yellow gui=bold guifg=#ffff60
-hi PreProc term=underline ctermfg=darkmagenta guifg=#ff80ff
-hi Type term=underline cterm=bold ctermfg=lightgreen gui=bold guifg=#60ff60
-hi Error term=reverse ctermfg=darkcyan ctermbg=black guifg=Red guibg=Black
-hi Todo term=standout ctermfg=black ctermbg=darkcyan guifg=Blue guibg=Yellow
-hi CursorLine term=underline guibg=#555555 cterm=underline
-hi CursorColumn term=underline guibg=#555555 cterm=underline
-hi MatchParen term=reverse ctermfg=blue guibg=Blue
-hi TabLine term=bold,reverse cterm=bold ctermfg=lightblue ctermbg=white gui=bold guifg=blue guibg=white
-hi TabLineFill term=bold,reverse cterm=bold ctermfg=lightblue ctermbg=white gui=bold guifg=blue guibg=white
-hi TabLineSel term=reverse ctermfg=white ctermbg=lightblue guifg=white guibg=blue
-hi Underlined term=underline cterm=bold,underline ctermfg=lightblue guifg=lightblue gui=bold,underline
-hi Ignore ctermfg=black ctermbg=black guifg=black guibg=black
-hi EndOfBuffer term=bold cterm=bold ctermfg=darkred guifg=#cc0000 gui=bold
-hi link IncSearch Visual
-hi link String Constant
-hi link Character Constant
-hi link Number Constant
-hi link Boolean Constant
-hi link Float Number
-hi link Function Identifier
-hi link Conditional Statement
-hi link Repeat Statement
-hi link Label Statement
-hi link Operator Statement
-hi link Keyword Statement
-hi link Exception Statement
-hi link Include PreProc
-hi link Define PreProc
-hi link Macro PreProc
-hi link PreCondit PreProc
-hi link StorageClass Type
-hi link Structure Type
-hi link Typedef Type
-hi link Tag Special
-hi link SpecialChar Special
-hi link Delimiter Special
-hi link SpecialComment Special
-hi link Debug Special
+hi Normal guifg=#ffffff guibg=#000000 gui=NONE cterm=NONE
+hi ColorColumn guifg=NONE guibg=#8b0000 gui=NONE cterm=NONE
+hi CursorColumn guifg=NONE guibg=#555555 gui=NONE cterm=NONE
+hi CursorLine guifg=NONE guibg=#555555 gui=NONE cterm=NONE
+hi CursorLineNr guifg=#ffff00 guibg=NONE gui=bold cterm=NONE
+hi Folded guifg=#00cdcd guibg=#666666 gui=NONE cterm=NONE
+hi QuickFixLine guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi Conceal guifg=#e5e5e5 guibg=#a9a9a9 gui=NONE cterm=NONE
+hi Cursor guifg=#000000 guibg=#00ff00 gui=NONE cterm=NONE
+hi Directory guifg=#cc8000 guibg=NONE gui=NONE cterm=NONE
+hi EndOfBuffer guifg=#cd0000 guibg=NONE gui=bold cterm=NONE
+hi ErrorMsg guifg=#cd0000 guibg=#ffffff gui=reverse cterm=reverse
+hi FoldColumn guifg=#00cdcd guibg=NONE gui=NONE cterm=NONE
+hi LineNr guifg=#ffff00 guibg=NONE gui=NONE cterm=NONE
+hi MatchParen guifg=NONE guibg=#0000ff gui=NONE cterm=NONE
+hi ModeMsg guifg=#ffffff guibg=#0000ff gui=bold cterm=NONE
+hi MoreMsg guifg=#2e8b57 guibg=NONE gui=bold cterm=NONE
+hi NonText guifg=#cd0000 guibg=NONE gui=bold cterm=NONE
+hi Pmenu guifg=#ffffff guibg=#444444 gui=NONE cterm=NONE
+hi PmenuSbar guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi PmenuSel guifg=#000000 guibg=#00cdcd gui=NONE cterm=NONE
+hi PmenuThumb guifg=NONE guibg=#ffffff gui=NONE cterm=NONE
+hi Question guifg=#5c5cff guibg=NONE gui=bold cterm=NONE
+hi Search guifg=#ffffff guibg=#ff0000 gui=NONE cterm=NONE
+hi SignColumn guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
+hi SpecialKey guifg=#cd0000 guibg=NONE gui=NONE cterm=NONE
+hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
+hi SpellCap guifg=#60ff60 guibg=NONE guisp=#60ff60 gui=undercurl cterm=underline
+hi SpellLocal guifg=#00ffff guibg=NONE guisp=#00ffff gui=undercurl cterm=underline
+hi SpellRare guifg=#ff00ff guibg=NONE guisp=#ff00ff gui=undercurl cterm=underline
+hi StatusLine guifg=#0000ff guibg=#ffffff gui=bold cterm=NONE
+hi StatusLineNC guifg=#0000ff guibg=#e5e5e5 gui=NONE cterm=NONE
+hi TabLine guifg=#0000ff guibg=#ffffff gui=bold cterm=NONE
+hi TabLineFill guifg=#0000ff guibg=#ffffff gui=bold cterm=NONE
+hi TabLineSel guifg=#ffffff guibg=#0000ff gui=bold cterm=NONE
+hi Title guifg=#ff00ff guibg=NONE gui=bold cterm=NONE
+hi VertSplit guifg=#0000ff guibg=#e5e5e5 gui=NONE cterm=NONE
+hi Visual guifg=NONE guibg=#666666 gui=reverse cterm=reverse
+hi VisualNOS guifg=NONE guibg=#000000 gui=bold,underline cterm=underline
+hi WarningMsg guifg=#ff0000 guibg=NONE gui=NONE cterm=NONE
+hi WildMenu guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi Comment guifg=#80a0ff guibg=NONE gui=NONE cterm=NONE
+hi Constant guifg=#ffa0a0 guibg=NONE gui=NONE cterm=NONE
+hi Error guifg=#cd0000 guibg=#ffffff gui=reverse cterm=reverse
+hi Identifier guifg=#40ffff guibg=NONE gui=NONE cterm=NONE
+hi Ignore guifg=#000000 guibg=#000000 gui=NONE cterm=NONE
+hi PreProc guifg=#ff80ff guibg=NONE gui=NONE cterm=NONE
+hi Special guifg=#ffa500 guibg=NONE gui=NONE cterm=NONE
+hi Statement guifg=#ffff60 guibg=NONE gui=bold cterm=NONE
+hi Todo guifg=#0000ff guibg=#ffff00 gui=NONE cterm=NONE
+hi Type guifg=#60ff60 guibg=NONE gui=bold cterm=NONE
+hi Underlined guifg=#add8e6 guibg=NONE gui=bold,underline cterm=underline
+hi CursorIM guifg=NONE guibg=fg gui=NONE cterm=NONE
+hi ToolbarLine guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi ToolbarButton guifg=#000000 guibg=#e5e5e5 gui=bold cterm=NONE
+hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
+hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
+hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
+hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
+
+if s:t_Co >= 256
+ hi Normal ctermfg=231 ctermbg=16 cterm=NONE
+ hi ColorColumn ctermfg=NONE ctermbg=88 cterm=NONE
+ hi CursorColumn ctermfg=NONE ctermbg=240 cterm=NONE
+ hi CursorLine ctermfg=NONE ctermbg=240 cterm=NONE
+ hi CursorLineNr ctermfg=226 ctermbg=NONE cterm=NONE
+ hi Folded ctermfg=44 ctermbg=59 cterm=NONE
+ hi QuickFixLine ctermfg=16 ctermbg=226 cterm=NONE
+ hi Conceal ctermfg=254 ctermbg=145 cterm=NONE
+ hi Cursor ctermfg=16 ctermbg=46 cterm=NONE
+ hi Directory ctermfg=172 ctermbg=NONE cterm=NONE
+ hi EndOfBuffer ctermfg=160 ctermbg=NONE cterm=NONE
+ hi ErrorMsg ctermfg=160 ctermbg=231 cterm=reverse
+ hi FoldColumn ctermfg=44 ctermbg=NONE cterm=NONE
+ hi LineNr ctermfg=226 ctermbg=NONE cterm=NONE
+ hi MatchParen ctermfg=NONE ctermbg=21 cterm=NONE
+ hi ModeMsg ctermfg=231 ctermbg=21 cterm=NONE
+ hi MoreMsg ctermfg=29 ctermbg=NONE cterm=NONE
+ hi NonText ctermfg=160 ctermbg=NONE cterm=NONE
+ hi Pmenu ctermfg=231 ctermbg=238 cterm=NONE
+ hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi PmenuSel ctermfg=16 ctermbg=44 cterm=NONE
+ hi PmenuThumb ctermfg=NONE ctermbg=231 cterm=NONE
+ hi Question ctermfg=63 ctermbg=NONE cterm=NONE
+ hi Search ctermfg=231 ctermbg=196 cterm=NONE
+ hi SignColumn ctermfg=51 ctermbg=NONE cterm=NONE
+ hi SpecialKey ctermfg=160 ctermbg=NONE cterm=NONE
+ hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
+ hi SpellCap ctermfg=83 ctermbg=NONE cterm=underline
+ hi SpellLocal ctermfg=51 ctermbg=NONE cterm=underline
+ hi SpellRare ctermfg=201 ctermbg=NONE cterm=underline
+ hi StatusLine ctermfg=21 ctermbg=231 cterm=NONE
+ hi StatusLineNC ctermfg=21 ctermbg=254 cterm=NONE
+ hi TabLine ctermfg=21 ctermbg=231 cterm=NONE
+ hi TabLineFill ctermfg=21 ctermbg=231 cterm=NONE
+ hi TabLineSel ctermfg=231 ctermbg=21 cterm=NONE
+ hi Title ctermfg=201 ctermbg=NONE cterm=NONE
+ hi VertSplit ctermfg=21 ctermbg=254 cterm=NONE
+ hi Visual ctermfg=NONE ctermbg=59 cterm=reverse
+ hi VisualNOS ctermfg=NONE ctermbg=16 cterm=underline
+ hi WarningMsg ctermfg=196 ctermbg=NONE cterm=NONE
+ hi WildMenu ctermfg=16 ctermbg=226 cterm=NONE
+ hi Comment ctermfg=111 ctermbg=NONE cterm=NONE
+ hi Constant ctermfg=217 ctermbg=NONE cterm=NONE
+ hi Error ctermfg=160 ctermbg=231 cterm=reverse
+ hi Identifier ctermfg=87 ctermbg=NONE cterm=NONE
+ hi Ignore ctermfg=16 ctermbg=16 cterm=NONE
+ hi PreProc ctermfg=213 ctermbg=NONE cterm=NONE
+ hi Special ctermfg=214 ctermbg=NONE cterm=NONE
+ hi Statement ctermfg=227 ctermbg=NONE cterm=NONE
+ hi Todo ctermfg=21 ctermbg=226 cterm=NONE
+ hi Type ctermfg=83 ctermbg=NONE cterm=NONE
+ hi Underlined ctermfg=153 ctermbg=NONE cterm=underline
+ hi CursorIM ctermfg=NONE ctermbg=fg cterm=NONE
+ hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi ToolbarButton ctermfg=16 ctermbg=254 cterm=NONE
+ hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
+ hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
+ hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
+ hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
+ unlet s:t_Co
+ finish
+endif
+
+if s:t_Co >= 16
+ hi Normal ctermfg=white ctermbg=black cterm=NONE
+ hi ColorColumn ctermfg=white ctermbg=darkred cterm=NONE
+ hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=underline
+ hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
+ hi CursorLineNr ctermfg=yellow ctermbg=NONE cterm=underline
+ hi Folded ctermfg=darkblue ctermbg=NONE cterm=NONE
+ hi QuickFixLine ctermfg=black ctermbg=yellow cterm=NONE
+ hi Conceal ctermfg=grey ctermbg=grey cterm=NONE
+ hi Cursor ctermfg=black ctermbg=green cterm=NONE
+ hi Directory ctermfg=darkyellow ctermbg=NONE cterm=NONE
+ hi EndOfBuffer ctermfg=darkred ctermbg=NONE cterm=NONE
+ hi ErrorMsg ctermfg=darkred ctermbg=white cterm=reverse
+ hi FoldColumn ctermfg=darkcyan ctermbg=NONE cterm=NONE
+ hi LineNr ctermfg=yellow ctermbg=NONE cterm=NONE
+ hi MatchParen ctermfg=NONE ctermbg=darkblue cterm=NONE
+ hi ModeMsg ctermfg=white ctermbg=darkblue cterm=NONE
+ hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
+ hi NonText ctermfg=darkred ctermbg=NONE cterm=NONE
+ hi Pmenu ctermfg=white ctermbg=darkgrey cterm=NONE
+ hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi PmenuSel ctermfg=black ctermbg=darkcyan cterm=NONE
+ hi PmenuThumb ctermfg=NONE ctermbg=white cterm=NONE
+ hi Question ctermfg=blue ctermbg=NONE cterm=NONE
+ hi Search ctermfg=white ctermbg=red cterm=NONE
+ hi SignColumn ctermfg=cyan ctermbg=NONE cterm=NONE
+ hi SpecialKey ctermfg=darkred ctermbg=NONE cterm=NONE
+ hi SpellBad ctermfg=red ctermbg=NONE cterm=underline
+ hi SpellCap ctermfg=green ctermbg=NONE cterm=underline
+ hi SpellLocal ctermfg=cyan ctermbg=NONE cterm=underline
+ hi SpellRare ctermfg=magenta ctermbg=NONE cterm=underline
+ hi StatusLine ctermfg=darkblue ctermbg=white cterm=NONE
+ hi StatusLineNC ctermfg=darkblue ctermbg=grey cterm=NONE
+ hi TabLine ctermfg=darkblue ctermbg=white cterm=NONE
+ hi TabLineFill ctermfg=darkblue ctermbg=white cterm=NONE
+ hi TabLineSel ctermfg=white ctermbg=darkblue cterm=NONE
+ hi Title ctermfg=magenta ctermbg=NONE cterm=NONE
+ hi VertSplit ctermfg=darkblue ctermbg=grey cterm=NONE
+ hi Visual ctermfg=NONE ctermbg=darkgrey cterm=reverse
+ hi VisualNOS ctermfg=NONE ctermbg=black cterm=underline
+ hi WarningMsg ctermfg=red ctermbg=NONE cterm=NONE
+ hi WildMenu ctermfg=black ctermbg=yellow cterm=NONE
+ hi Comment ctermfg=blue ctermbg=NONE cterm=NONE
+ hi Constant ctermfg=darkred ctermbg=NONE cterm=NONE
+ hi Error ctermfg=darkred ctermbg=white cterm=reverse
+ hi Identifier ctermfg=cyan ctermbg=NONE cterm=NONE
+ hi Ignore ctermfg=black ctermbg=black cterm=NONE
+ hi PreProc ctermfg=magenta ctermbg=NONE cterm=NONE
+ hi Special ctermfg=darkyellow ctermbg=NONE cterm=NONE
+ hi Statement ctermfg=yellow ctermbg=NONE cterm=NONE
+ hi Todo ctermfg=darkblue ctermbg=yellow cterm=NONE
+ hi Type ctermfg=green ctermbg=NONE cterm=NONE
+ hi Underlined ctermfg=blue ctermbg=NONE cterm=underline
+ hi CursorIM ctermfg=NONE ctermbg=fg cterm=NONE
+ hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi ToolbarButton ctermfg=black ctermbg=grey cterm=NONE
+ hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
+ hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
+ hi DiffText ctermfg=black ctermbg=grey cterm=NONE
+ hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
+ unlet s:t_Co
+ finish
+endif
+
+if s:t_Co >= 0
+ hi Normal term=NONE
+ hi ColorColumn term=reverse
+ hi Conceal term=NONE
+ hi Cursor term=reverse
+ hi CursorColumn term=NONE
+ hi CursorLine term=underline
+ hi CursorLineNr term=bold
+ hi DiffAdd term=reverse
+ hi DiffChange term=NONE
+ hi DiffDelete term=reverse
+ hi DiffText term=reverse
+ hi Directory term=NONE
+ hi EndOfBuffer term=NONE
+ hi ErrorMsg term=bold,reverse
+ hi FoldColumn term=NONE
+ hi Folded term=NONE
+ hi IncSearch term=bold,reverse,underline
+ hi LineNr term=NONE
+ hi MatchParen term=bold,underline
+ hi ModeMsg term=bold
+ hi MoreMsg term=NONE
+ hi NonText term=NONE
+ hi Pmenu term=reverse
+ hi PmenuSbar term=reverse
+ hi PmenuSel term=bold
+ hi PmenuThumb term=NONE
+ hi Question term=standout
+ hi Search term=reverse
+ hi SignColumn term=reverse
+ hi SpecialKey term=bold
+ hi SpellBad term=underline
+ hi SpellCap term=underline
+ hi SpellLocal term=underline
+ hi SpellRare term=underline
+ hi StatusLine term=bold,reverse
+ hi StatusLineNC term=bold,underline
+ hi TabLine term=bold,underline
+ hi TabLineFill term=NONE
+ hi Terminal term=NONE
+ hi TabLineSel term=bold,reverse
+ hi Title term=NONE
+ hi VertSplit term=NONE
+ hi Visual term=reverse
+ hi VisualNOS term=NONE
+ hi WarningMsg term=standout
+ hi WildMenu term=bold
+ hi CursorIM term=NONE
+ hi ToolbarLine term=reverse
+ hi ToolbarButton term=bold,reverse
+ hi CurSearch term=reverse
+ hi CursorLineFold term=underline
+ hi CursorLineSign term=underline
+ hi Comment term=bold
+ hi Constant term=NONE
+ hi Error term=bold,reverse
+ hi Identifier term=NONE
+ hi Ignore term=NONE
+ hi PreProc term=NONE
+ hi Special term=NONE
+ hi Statement term=NONE
+ hi Todo term=bold,reverse
+ hi Type term=NONE
+ hi Underlined term=underline
+ unlet s:t_Co
+ finish
+endif
+
+" Background: dark
+" Color: xterm0 #000000 16 black
+" Color: xterm1 #cd0000 160 darkred
+" Color: xterm2 #00cd00 40 darkgreen
+" Color: xterm3 #cdcd00 184 darkyellow
+" Color: xterm4 #0000ee 20 darkblue
+" Color: xterm5 #cd00cd 164 darkmagenta
+" Color: xterm6 #00cdcd 44 darkcyan
+" Color: xterm7 #e5e5e5 254 grey
+" Color: xterm8 #7f7f7f 102 darkgrey
+" Color: xterm9 #ff0000 196 red
+" Color: xterm10 #00ff00 46 green
+" Color: xterm11 #ffff00 226 yellow
+" Color: xterm12 #5c5cff 63 blue
+" Color: xterm13 #ff00ff 201 magenta
+" Color: xterm14 #00ffff 51 cyan
+" Color: xterm15 #ffffff 231 white
+" Color: Pmenu #444444 238 darkgrey
+" Color: rgbGrey40 #666666 59 darkgrey
+" Color: rgbDarkGrey #a9a9a9 145 grey
+" Color: rgbDarkBlue #00008b 20 darkblue
+" Color: rgbDarkMagenta #8b008b 90 darkmagenta
+" Color: rgbBlue #0000ff 21 darkblue
+" Color: rgbDarkCyan #008b8b 44 darkcyan
+" Color: rgbSeaGreen #2e8b57 29 darkgreen
+" Color: rgbGrey #bebebe 250 grey
+" Color: StatusLineTerm #90ee90 120 darkgreen
+" Color: ToolbarLine #7f7f7f 244 darkgrey
+" Color: Comment #80a0ff 111 blue
+" Color: Constant #ffa0a0 217 darkred
+" Color: Special #ffa500 214 darkyellow
+" Color: Identifier #40ffff 87 cyan
+" Color: Statement #ffff60 227 yellow
+" Color: PreProc #ff80ff 213 magenta
+" Color: Type #60ff60 83 green
+" Color: koeDirectory #cc8000 172 darkyellow
+" Color: koeCursorLine #555555 240 black
+" Color: koeLightBlue #ADD8E6 153 blue
+" Color: koeDarkRed #8b0000 88 darkred
+" Term colors: xterm0 xterm1 xterm2 xterm3 xterm4 xterm5 xterm6 xterm7
+" Term colors: xterm8 xterm9 xterm10 xterm11 xterm12 xterm13
+" Term colors: xterm14 xterm15
+" Color: bgDiffA #5F875F 65 darkgreen
+" Color: bgDiffC #5F87AF 67 blue
+" Color: bgDiffD #AF5FAF 133 magenta
+" Color: bgDiffT #C6C6C6 251 grey
+" Color: fgDiffW #FFFFFF 231 white
+" Color: fgDiffB #000000 16 black
+" vim: et ts=2 sw=2
diff --git a/runtime/colors/morning.vim b/runtime/colors/morning.vim
index fca9c2a742..5a00508e6b 100644
--- a/runtime/colors/morning.vim
+++ b/runtime/colors/morning.vim
@@ -1,55 +1,334 @@
-" Vim color file
-" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2006 Apr 15
+" Name: morning
+" Description: Colorscheme with light grey background.
+" Author: Original author Bram Moolenaar <Bram@vim.org>
+" Maintainer: Original maintainer Bram Moolenaar <Bram@vim.org>
+" Website: https://github.com/vim/colorschemes
+" License: Same as Vim
+" Last Updated: Sat May 14 11:15:43 2022
-" This color scheme uses a light grey background.
+" Generated by Colortemplate v2.2.0
-" First remove all existing highlighting.
set background=light
+
hi clear
-if exists("syntax_on")
- syntax reset
+let g:colors_name = 'morning'
+
+let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
+
+if (has('termguicolors') && &termguicolors) || has('gui_running')
+ let g:terminal_ansi_colors = ['#e4e4e4', '#a52a2a', '#ff00ff', '#6a0dad', '#008787', '#2e8b57', '#6a5acd', '#bcbcbc', '#0000ff', '#a52a2a', '#ff00ff', '#6a0dad', '#008787', '#2e8b57', '#6a5acd', '#000000']
+endif
+hi! link StatuslineTerm Statusline
+hi! link StatuslineTermNC StatuslineNC
+hi Normal guifg=#000000 guibg=#e4e4e4 gui=NONE cterm=NONE
+hi EndOfBuffer guifg=#0000ff guibg=#cccccc gui=bold cterm=NONE
+hi Folded guifg=#00008b guibg=#d3d3d3 gui=NONE cterm=NONE
+hi CursorLine guifg=NONE guibg=#d3d3d3 gui=NONE cterm=NONE
+hi CursorColumn guifg=NONE guibg=#d3d3d3 gui=NONE cterm=NONE
+hi CursorLineNr guifg=#a52a2a guibg=NONE gui=bold cterm=NONE
+hi QuickFixLine guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi StatusLine guifg=#eeeeee guibg=#000000 gui=bold cterm=NONE
+hi StatusLineNC guifg=#bcbcbc guibg=#000000 gui=NONE cterm=NONE
+hi VertSplit guifg=#bcbcbc guibg=#000000 gui=NONE cterm=NONE
+hi Pmenu guifg=#000000 guibg=#b2b2b2 gui=NONE cterm=NONE
+hi PmenuSel guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi PmenuSbar guifg=NONE guibg=#e4e4e4 gui=NONE cterm=NONE
+hi PmenuThumb guifg=NONE guibg=#000000 gui=NONE cterm=NONE
+hi TabLine guifg=#000000 guibg=#bcbcbc gui=underline cterm=underline
+hi TabLineFill guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse
+hi TabLineSel guifg=#000000 guibg=#e4e4e4 gui=bold cterm=NONE
+hi ToolbarLine guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi ToolbarButton guifg=NONE guibg=#bcbcbc gui=bold cterm=NONE
+hi NonText guifg=#0000ff guibg=#bcbcbc gui=bold cterm=NONE
+hi SpecialKey guifg=#bcbcbc guibg=NONE gui=NONE cterm=NONE
+hi Visual guifg=NONE guibg=#d0d0d0 gui=NONE cterm=NONE
+hi VisualNOS guifg=NONE guibg=#0000ff gui=NONE cterm=NONE
+hi LineNr guifg=#a52a2a guibg=NONE gui=NONE cterm=NONE
+hi FoldColumn guifg=#00008b guibg=NONE gui=NONE cterm=NONE
+hi SignColumn guifg=#00008b guibg=NONE gui=NONE cterm=NONE
+hi Underlined guifg=#6a5acd guibg=NONE gui=underline cterm=underline
+hi Error guifg=#ff0000 guibg=#e4e4e4 gui=reverse cterm=reverse
+hi ErrorMsg guifg=#ff0000 guibg=#e4e4e4 gui=reverse cterm=reverse
+hi WarningMsg guifg=#6a0dad guibg=NONE gui=bold cterm=NONE
+hi MoreMsg guifg=#2e8b57 guibg=NONE gui=bold cterm=NONE
+hi ModeMsg guifg=#000000 guibg=NONE gui=bold cterm=NONE
+hi Question guifg=#008787 guibg=NONE gui=bold cterm=NONE
+hi Todo guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi MatchParen guifg=#e4e4e4 guibg=#6a5acd gui=NONE cterm=NONE
+hi Search guifg=#e4e4e4 guibg=#6a0dad gui=NONE cterm=NONE
+hi IncSearch guifg=#2e8b57 guibg=NONE gui=reverse cterm=reverse
+hi WildMenu guifg=#000000 guibg=#ffff00 gui=bold cterm=NONE
+hi ColorColumn guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE
+hi Cursor guifg=#e4e4e4 guibg=#2e8b57 gui=NONE cterm=NONE
+hi lCursor guifg=#e4e4e4 guibg=#a52a2a gui=NONE cterm=NONE
+hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
+hi SpellCap guifg=#00d700 guibg=NONE guisp=#00d700 gui=undercurl cterm=underline
+hi SpellLocal guifg=#a52a2a guibg=NONE guisp=#a52a2a gui=undercurl cterm=underline
+hi SpellRare guifg=#2e8b57 guibg=NONE guisp=#2e8b57 gui=undercurl cterm=underline
+hi Comment guifg=#0000ff guibg=NONE gui=NONE cterm=NONE
+hi Constant guifg=#ff00ff guibg=#eeeeee gui=NONE cterm=NONE
+hi Identifier guifg=#008787 guibg=NONE gui=NONE cterm=NONE
+hi Statement guifg=#a52a2a guibg=NONE gui=bold cterm=NONE
+hi PreProc guifg=#6a0dad guibg=NONE gui=NONE cterm=NONE
+hi Type guifg=#2e8b57 guibg=NONE gui=bold cterm=NONE
+hi Special guifg=#6a5acd guibg=NONE gui=NONE cterm=NONE
+hi Ignore guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi Directory guifg=#008787 guibg=NONE gui=bold cterm=NONE
+hi Conceal guifg=#0000ff guibg=NONE gui=NONE cterm=NONE
+hi Title guifg=#a52a2a guibg=NONE gui=bold cterm=NONE
+hi! link Terminal Normal
+hi! link LineNrAbove LineNr
+hi! link LineNrBelow LineNr
+hi! link CurSearch Search
+hi! link CursorLineFold CursorLine
+hi! link CursorLineSign CursorLine
+hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
+hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
+hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
+hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
+
+if s:t_Co >= 256
+ hi! link StatuslineTerm Statusline
+ hi! link StatuslineTermNC StatuslineNC
+ hi Normal ctermfg=16 ctermbg=254 cterm=NONE
+ hi EndOfBuffer ctermfg=21 ctermbg=252 cterm=NONE
+ hi Folded ctermfg=18 ctermbg=252 cterm=NONE
+ hi CursorLine ctermfg=NONE ctermbg=252 cterm=NONE
+ hi CursorColumn ctermfg=NONE ctermbg=252 cterm=NONE
+ hi CursorLineNr ctermfg=124 ctermbg=NONE cterm=NONE
+ hi QuickFixLine ctermfg=16 ctermbg=226 cterm=NONE
+ hi StatusLine ctermfg=255 ctermbg=16 cterm=NONE
+ hi StatusLineNC ctermfg=250 ctermbg=16 cterm=NONE
+ hi VertSplit ctermfg=250 ctermbg=16 cterm=NONE
+ hi Pmenu ctermfg=16 ctermbg=249 cterm=NONE
+ hi PmenuSel ctermfg=16 ctermbg=226 cterm=NONE
+ hi PmenuSbar ctermfg=NONE ctermbg=254 cterm=NONE
+ hi PmenuThumb ctermfg=NONE ctermbg=16 cterm=NONE
+ hi TabLine ctermfg=16 ctermbg=250 cterm=underline
+ hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=reverse
+ hi TabLineSel ctermfg=16 ctermbg=254 cterm=NONE
+ hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi ToolbarButton ctermfg=NONE ctermbg=250 cterm=NONE
+ hi NonText ctermfg=21 ctermbg=250 cterm=NONE
+ hi SpecialKey ctermfg=250 ctermbg=NONE cterm=NONE
+ hi Visual ctermfg=NONE ctermbg=252 cterm=NONE
+ hi VisualNOS ctermfg=NONE ctermbg=21 cterm=NONE
+ hi LineNr ctermfg=124 ctermbg=NONE cterm=NONE
+ hi FoldColumn ctermfg=18 ctermbg=NONE cterm=NONE
+ hi SignColumn ctermfg=18 ctermbg=NONE cterm=NONE
+ hi Underlined ctermfg=62 ctermbg=NONE cterm=underline
+ hi Error ctermfg=196 ctermbg=254 cterm=reverse
+ hi ErrorMsg ctermfg=196 ctermbg=254 cterm=reverse
+ hi WarningMsg ctermfg=55 ctermbg=NONE cterm=NONE
+ hi MoreMsg ctermfg=29 ctermbg=NONE cterm=NONE
+ hi ModeMsg ctermfg=16 ctermbg=NONE cterm=NONE
+ hi Question ctermfg=30 ctermbg=NONE cterm=NONE
+ hi Todo ctermfg=16 ctermbg=226 cterm=NONE
+ hi MatchParen ctermfg=254 ctermbg=62 cterm=NONE
+ hi Search ctermfg=254 ctermbg=55 cterm=NONE
+ hi IncSearch ctermfg=29 ctermbg=NONE cterm=reverse
+ hi WildMenu ctermfg=16 ctermbg=226 cterm=NONE
+ hi ColorColumn ctermfg=16 ctermbg=231 cterm=NONE
+ hi Cursor ctermfg=254 ctermbg=29 cterm=NONE
+ hi lCursor ctermfg=254 ctermbg=124 cterm=NONE
+ hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
+ hi SpellCap ctermfg=40 ctermbg=NONE cterm=underline
+ hi SpellLocal ctermfg=124 ctermbg=NONE cterm=underline
+ hi SpellRare ctermfg=29 ctermbg=NONE cterm=underline
+ hi Comment ctermfg=21 ctermbg=NONE cterm=NONE
+ hi Constant ctermfg=201 ctermbg=255 cterm=NONE
+ hi Identifier ctermfg=30 ctermbg=NONE cterm=NONE
+ hi Statement ctermfg=124 ctermbg=NONE cterm=NONE
+ hi PreProc ctermfg=55 ctermbg=NONE cterm=NONE
+ hi Type ctermfg=29 ctermbg=NONE cterm=NONE
+ hi Special ctermfg=62 ctermbg=NONE cterm=NONE
+ hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi Directory ctermfg=30 ctermbg=NONE cterm=NONE
+ hi Conceal ctermfg=21 ctermbg=NONE cterm=NONE
+ hi Title ctermfg=124 ctermbg=NONE cterm=NONE
+ hi! link Terminal Normal
+ hi! link LineNrAbove LineNr
+ hi! link LineNrBelow LineNr
+ hi! link CurSearch Search
+ hi! link CursorLineFold CursorLine
+ hi! link CursorLineSign CursorLine
+ hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
+ hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
+ hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
+ hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
+ unlet s:t_Co
+ finish
+endif
+
+if s:t_Co >= 16
+ hi! link StatuslineTerm Statusline
+ hi! link StatuslineTermNC StatuslineNC
+ hi Normal ctermfg=black ctermbg=grey cterm=NONE
+ hi EndOfBuffer ctermfg=blue ctermbg=NONE cterm=NONE
+ hi Folded ctermfg=darkblue ctermbg=NONE cterm=NONE
+ hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
+ hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=underline
+ hi CursorLineNr ctermfg=darkred ctermbg=NONE cterm=underline
+ hi QuickFixLine ctermfg=black ctermbg=yellow cterm=NONE
+ hi StatusLine ctermfg=white ctermbg=black cterm=NONE
+ hi StatusLineNC ctermfg=darkgrey ctermbg=black cterm=NONE
+ hi VertSplit ctermfg=darkgrey ctermbg=black cterm=NONE
+ hi Pmenu ctermfg=black ctermbg=white cterm=NONE
+ hi PmenuSel ctermfg=black ctermbg=yellow cterm=NONE
+ hi PmenuSbar ctermfg=NONE ctermbg=grey cterm=NONE
+ hi PmenuThumb ctermfg=NONE ctermbg=black cterm=NONE
+ hi TabLine ctermfg=black ctermbg=white cterm=underline
+ hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=reverse
+ hi TabLineSel ctermfg=black ctermbg=grey cterm=NONE
+ hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi ToolbarButton ctermfg=NONE ctermbg=white cterm=NONE
+ hi NonText ctermfg=blue ctermbg=white cterm=NONE
+ hi SpecialKey ctermfg=darkgrey ctermbg=NONE cterm=NONE
+ hi Visual ctermfg=NONE ctermbg=white cterm=NONE
+ hi VisualNOS ctermfg=NONE ctermbg=blue cterm=NONE
+ hi LineNr ctermfg=darkred ctermbg=NONE cterm=NONE
+ hi FoldColumn ctermfg=darkblue ctermbg=NONE cterm=NONE
+ hi SignColumn ctermfg=darkblue ctermbg=NONE cterm=NONE
+ hi Underlined ctermfg=darkblue ctermbg=NONE cterm=underline
+ hi Error ctermfg=red ctermbg=grey cterm=reverse
+ hi ErrorMsg ctermfg=red ctermbg=grey cterm=reverse
+ hi WarningMsg ctermfg=darkmagenta ctermbg=NONE cterm=NONE
+ hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
+ hi ModeMsg ctermfg=black ctermbg=NONE cterm=NONE
+ hi Question ctermfg=darkcyan ctermbg=NONE cterm=NONE
+ hi Todo ctermfg=black ctermbg=yellow cterm=NONE
+ hi MatchParen ctermfg=grey ctermbg=darkblue cterm=NONE
+ hi Search ctermfg=grey ctermbg=darkmagenta cterm=NONE
+ hi IncSearch ctermfg=darkgreen ctermbg=NONE cterm=reverse
+ hi WildMenu ctermfg=black ctermbg=yellow cterm=NONE
+ hi ColorColumn ctermfg=black ctermbg=white cterm=NONE
+ hi Cursor ctermfg=grey ctermbg=darkgreen cterm=NONE
+ hi lCursor ctermfg=grey ctermbg=darkred cterm=NONE
+ hi SpellBad ctermfg=red ctermbg=NONE cterm=underline
+ hi SpellCap ctermfg=darkcyan ctermbg=NONE cterm=underline
+ hi SpellLocal ctermfg=darkred ctermbg=NONE cterm=underline
+ hi SpellRare ctermfg=darkgreen ctermbg=NONE cterm=underline
+ hi Comment ctermfg=blue ctermbg=NONE cterm=NONE
+ hi Constant ctermfg=magenta ctermbg=white cterm=NONE
+ hi Identifier ctermfg=darkcyan ctermbg=NONE cterm=NONE
+ hi Statement ctermfg=darkred ctermbg=NONE cterm=NONE
+ hi PreProc ctermfg=darkmagenta ctermbg=NONE cterm=NONE
+ hi Type ctermfg=darkgreen ctermbg=NONE cterm=NONE
+ hi Special ctermfg=darkblue ctermbg=NONE cterm=NONE
+ hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi Directory ctermfg=darkcyan ctermbg=NONE cterm=NONE
+ hi Conceal ctermfg=blue ctermbg=NONE cterm=NONE
+ hi Title ctermfg=darkred ctermbg=NONE cterm=NONE
+ hi! link Terminal Normal
+ hi! link LineNrAbove LineNr
+ hi! link LineNrBelow LineNr
+ hi! link CurSearch Search
+ hi! link CursorLineFold CursorLine
+ hi! link CursorLineSign CursorLine
+ hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
+ hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
+ hi DiffText ctermfg=black ctermbg=grey cterm=NONE
+ hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
+ unlet s:t_Co
+ finish
endif
-let colors_name = "morning"
-
-hi Normal ctermfg=Black ctermbg=LightGrey guifg=Black guibg=grey90
-
-" Groups used in the 'highlight' and 'guicursor' options default value.
-hi ErrorMsg term=standout ctermbg=DarkRed ctermfg=White guibg=Red guifg=White
-hi IncSearch term=reverse cterm=reverse gui=reverse
-hi ModeMsg term=bold cterm=bold gui=bold
-hi StatusLine term=reverse,bold cterm=reverse,bold gui=reverse,bold
-hi StatusLineNC term=reverse cterm=reverse gui=reverse
-hi VertSplit term=reverse cterm=reverse gui=reverse
-hi Visual term=reverse ctermbg=grey guibg=grey80
-hi DiffText term=reverse cterm=bold ctermbg=Red gui=bold guibg=Red
-hi Cursor guibg=Green guifg=NONE
-hi lCursor guibg=Cyan guifg=NONE
-hi Directory term=bold ctermfg=DarkBlue guifg=Blue
-hi LineNr term=underline ctermfg=Brown guifg=Brown
-hi MoreMsg term=bold ctermfg=DarkGreen gui=bold guifg=SeaGreen
-hi NonText term=bold ctermfg=Blue gui=bold guifg=Blue guibg=grey80
-hi Question term=standout ctermfg=DarkGreen gui=bold guifg=SeaGreen
-hi Search term=reverse ctermbg=Yellow ctermfg=NONE guibg=Yellow guifg=NONE
-hi SpecialKey term=bold ctermfg=DarkBlue guifg=Blue
-hi Title term=bold ctermfg=DarkMagenta gui=bold guifg=Magenta
-hi WarningMsg term=standout ctermfg=DarkRed guifg=Red
-hi WildMenu term=standout ctermbg=Yellow ctermfg=Black guibg=Yellow guifg=Black
-hi Folded term=standout ctermbg=Grey ctermfg=DarkBlue guibg=LightGrey guifg=DarkBlue
-hi FoldColumn term=standout ctermbg=Grey ctermfg=DarkBlue guibg=Grey guifg=DarkBlue
-hi DiffAdd term=bold ctermbg=LightBlue guibg=LightBlue
-hi DiffChange term=bold ctermbg=LightMagenta guibg=LightMagenta
-hi DiffDelete term=bold ctermfg=Blue ctermbg=LightCyan gui=bold guifg=Blue guibg=LightCyan
-hi CursorLine term=underline cterm=underline guibg=grey80
-hi CursorColumn term=reverse ctermbg=grey guibg=grey80
-
-" Colors for syntax highlighting
-hi Constant term=underline ctermfg=DarkRed guifg=Magenta guibg=grey95
-hi Special term=bold ctermfg=DarkMagenta guifg=SlateBlue guibg=grey95
-if &t_Co > 8
- hi Statement term=bold cterm=bold ctermfg=Brown gui=bold guifg=Brown
+if s:t_Co >= 0
+ hi Normal term=NONE
+ hi ColorColumn term=reverse
+ hi Conceal term=NONE
+ hi Cursor term=reverse
+ hi CursorColumn term=NONE
+ hi CursorLine term=underline
+ hi CursorLineNr term=bold
+ hi DiffAdd term=reverse
+ hi DiffChange term=NONE
+ hi DiffDelete term=reverse
+ hi DiffText term=reverse
+ hi Directory term=NONE
+ hi EndOfBuffer term=NONE
+ hi ErrorMsg term=bold,reverse
+ hi FoldColumn term=NONE
+ hi Folded term=NONE
+ hi IncSearch term=bold,reverse,underline
+ hi LineNr term=NONE
+ hi MatchParen term=bold,underline
+ hi ModeMsg term=bold
+ hi MoreMsg term=NONE
+ hi NonText term=NONE
+ hi Pmenu term=reverse
+ hi PmenuSbar term=reverse
+ hi PmenuSel term=bold
+ hi PmenuThumb term=NONE
+ hi Question term=standout
+ hi Search term=reverse
+ hi SignColumn term=reverse
+ hi SpecialKey term=bold
+ hi SpellBad term=underline
+ hi SpellCap term=underline
+ hi SpellLocal term=underline
+ hi SpellRare term=underline
+ hi StatusLine term=bold,reverse
+ hi StatusLineNC term=bold,underline
+ hi TabLine term=bold,underline
+ hi TabLineFill term=NONE
+ hi Terminal term=NONE
+ hi TabLineSel term=bold,reverse
+ hi Title term=NONE
+ hi VertSplit term=NONE
+ hi Visual term=reverse
+ hi VisualNOS term=NONE
+ hi WarningMsg term=standout
+ hi WildMenu term=bold
+ hi CursorIM term=NONE
+ hi ToolbarLine term=reverse
+ hi ToolbarButton term=bold,reverse
+ hi CurSearch term=reverse
+ hi CursorLineFold term=underline
+ hi CursorLineSign term=underline
+ hi Comment term=bold
+ hi Constant term=NONE
+ hi Error term=bold,reverse
+ hi Identifier term=NONE
+ hi Ignore term=NONE
+ hi PreProc term=NONE
+ hi Special term=NONE
+ hi Statement term=NONE
+ hi Todo term=bold,reverse
+ hi Type term=NONE
+ hi Underlined term=underline
+ unlet s:t_Co
+ finish
endif
-hi Ignore ctermfg=LightGrey guifg=grey90
-" vim: sw=2
+" Background: light
+" Color: comment #0000ff 21 blue
+" Color: constant #ff00ff 201 magenta
+" Color: identifier #008787 30 darkcyan
+" Color: statement #a52a2a 124 darkred
+" Color: preproc #6a0dad 55 darkmagenta
+" Color: type #2e8b57 29 darkgreen
+" Color: special #6a5acd 62 darkblue
+" Color: fg0 #000000 16 black
+" Color: bg0 #e4e4e4 254 grey
+" Color: bg1 #bcbcbc 250 white
+" Color: status #bcbcbc 250 darkgrey
+" Color: bg2 #eeeeee 255 white
+" Color: endofbuffer #cccccc 252 darkgrey
+" Color: visual #d0d0d0 252 white
+" Color: folded #d3d3d3 252 darkgrey
+" Color: folded_fg #00008b 18 darkblue
+" Color: pmenu #b2b2b2 249 white
+" Color: wildmenu #ffff00 226 yellow
+" Color: error #ff0000 196 red
+" Color: colorcolumn #ffffff 231 white
+" Color: spellcap #00d700 40 green
+" Term colors: bg0 statement constant preproc identifier type special bg1
+" Term colors: comment statement constant preproc identifier type special fg0
+" Color: bgDiffA #5F875F 65 darkgreen
+" Color: bgDiffC #5F87AF 67 blue
+" Color: bgDiffD #AF5FAF 133 magenta
+" Color: bgDiffT #C6C6C6 251 grey
+" Color: fgDiffW #FFFFFF 231 white
+" Color: fgDiffB #000000 16 black
+" vim: et ts=2 sw=2
diff --git a/runtime/colors/murphy.vim b/runtime/colors/murphy.vim
index 1f439964ef..18ce180615 100644
--- a/runtime/colors/murphy.vim
+++ b/runtime/colors/murphy.vim
@@ -1,41 +1,335 @@
-" local syntax file - set colors on a per-machine basis:
-" vim: tw=0 ts=4 sw=4
-" Vim color file
-" Maintainer: Ron Aaron <ron@ronware.org>
-" Last Change: 2003 May 02
+" Name: murphy
+" Description: Green foreground black background.
+" Author: Original author Ron Aaron <ron@ronware.org>.
+" Maintainer: Original maintainer Ron Aaron <ron@ronware.org>.
+" Website: https://github.com/vim/colorschemes
+" License: Same as Vim
+" Last Updated: Wed May 11 22:56:41 2022
+
+" Generated by Colortemplate v2.2.0
-hi clear
set background=dark
-if exists("syntax_on")
- syntax reset
+
+hi clear
+let g:colors_name = 'murphy'
+
+let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
+
+if (has('termguicolors') && &termguicolors) || has('gui_running')
+ let g:terminal_ansi_colors = ['#303030', '#ffa700', '#005f00', '#ffd7af', '#87afff', '#ffafaf', '#00afaf', '#bcbcbc', '#444444', '#ff0000', '#00875f', '#ffff00', '#005fff', '#ff00ff', '#00ffff', '#ffffff']
endif
-let g:colors_name = "murphy"
-
-hi Normal ctermbg=Black ctermfg=lightgreen guibg=Black guifg=lightgreen
-hi Comment term=bold ctermfg=LightRed guifg=Orange
-hi Constant term=underline ctermfg=LightGreen guifg=White gui=NONE
-hi Identifier term=underline ctermfg=LightCyan guifg=#00ffff
-hi Ignore ctermfg=black guifg=bg
-hi PreProc term=underline ctermfg=LightBlue guifg=Wheat
-hi Search term=reverse guifg=white guibg=Blue
-hi Special term=bold ctermfg=LightRed guifg=magenta
-hi Statement term=bold ctermfg=Yellow guifg=#ffff00 gui=NONE
-hi Type ctermfg=LightGreen guifg=grey gui=none
-hi Error term=reverse ctermbg=Red ctermfg=White guibg=Red guifg=White
-hi Todo term=standout ctermbg=Yellow ctermfg=Black guifg=Blue guibg=Yellow
-" From the source:
-hi Cursor guifg=Orchid guibg=fg
-hi Directory term=bold ctermfg=LightCyan guifg=Cyan
-hi ErrorMsg term=standout ctermbg=DarkRed ctermfg=White guibg=Red guifg=White
-hi IncSearch term=reverse cterm=reverse gui=reverse
-hi LineNr term=underline ctermfg=Yellow guifg=Yellow
-hi ModeMsg term=bold cterm=bold gui=bold
-hi MoreMsg term=bold ctermfg=LightGreen gui=bold guifg=SeaGreen
-hi NonText term=bold ctermfg=Blue gui=bold guifg=Blue
-hi Question term=standout ctermfg=LightGreen gui=bold guifg=Cyan
-hi SpecialKey term=bold ctermfg=LightBlue guifg=Cyan
-hi StatusLine term=reverse,bold cterm=reverse gui=NONE guifg=White guibg=darkblue
-hi StatusLineNC term=reverse cterm=reverse gui=NONE guifg=white guibg=#333333
-hi Title term=bold ctermfg=LightMagenta gui=bold guifg=Pink
-hi WarningMsg term=standout ctermfg=LightRed guifg=Red
-hi Visual term=reverse cterm=reverse gui=NONE guifg=white guibg=darkgreen
+hi! link StatusLineTerm StatusLine
+hi! link StatusLineTermNC StatusLineNC
+hi Normal guifg=#87ff87 guibg=#000000 gui=NONE cterm=NONE
+hi EndOfBuffer guifg=#0000ff guibg=#000000 gui=NONE cterm=NONE
+hi StatusLine guifg=#ffffff guibg=#00008b gui=NONE cterm=NONE
+hi StatusLineNC guifg=#ffffff guibg=#3a3a3a gui=NONE cterm=NONE
+hi VertSplit guifg=#ffffff guibg=#3a3a3a gui=NONE cterm=NONE
+hi Pmenu guifg=#ffffff guibg=#444444 gui=NONE cterm=NONE
+hi PmenuSel guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi PmenuSbar guifg=NONE guibg=#303030 gui=NONE cterm=NONE
+hi PmenuThumb guifg=NONE guibg=#bcbcbc gui=NONE cterm=NONE
+hi TabLineFill guifg=NONE guibg=#303030 gui=NONE cterm=NONE
+hi TabLine guifg=#87ff87 guibg=#444444 gui=NONE cterm=NONE
+hi TabLineSel guifg=#ffffff guibg=#000000 gui=NONE cterm=NONE
+hi ToolbarLine guifg=NONE guibg=#303030 gui=NONE cterm=NONE
+hi ToolbarButton guifg=#ffffff guibg=#444444 gui=bold cterm=NONE
+hi NonText guifg=#00afaf guibg=NONE gui=NONE cterm=NONE
+hi SpecialKey guifg=#00afaf guibg=NONE gui=NONE cterm=NONE
+hi QuickFixLine guifg=#303030 guibg=#00afaf gui=NONE cterm=NONE
+hi Folded guifg=#00afaf guibg=#303030 gui=NONE cterm=NONE
+hi CursorLine guifg=NONE guibg=#444444 gui=NONE cterm=NONE
+hi CursorColumn guifg=NONE guibg=#444444 gui=NONE cterm=NONE
+hi CursorLineNr guifg=#ffff00 guibg=NONE gui=bold cterm=NONE
+hi ColorColumn guifg=NONE guibg=#262626 gui=NONE cterm=NONE
+hi Visual guifg=#ffffff guibg=#005f00 gui=NONE cterm=NONE
+hi VisualNOS guifg=#ffffff guibg=#005f00 gui=NONE cterm=NONE
+hi LineNr guifg=#ffff00 guibg=NONE gui=NONE cterm=NONE
+hi FoldColumn guifg=#00afaf guibg=NONE gui=NONE cterm=NONE
+hi SignColumn guifg=#00afaf guibg=NONE gui=NONE cterm=NONE
+hi Underlined guifg=#00afaf guibg=NONE gui=underline cterm=underline
+hi Error guifg=#ffffff guibg=#ff0000 gui=NONE cterm=NONE
+hi ErrorMsg guifg=#ffffff guibg=#ff0000 gui=NONE cterm=NONE
+hi ModeMsg guifg=#87ff87 guibg=NONE gui=bold cterm=NONE
+hi WarningMsg guifg=#ffa700 guibg=NONE gui=bold cterm=NONE
+hi MoreMsg guifg=#005f00 guibg=NONE gui=bold cterm=NONE
+hi Question guifg=#00ffff guibg=NONE gui=bold cterm=NONE
+hi Todo guifg=#0000ff guibg=#ffff00 gui=NONE cterm=NONE
+hi MatchParen guifg=#303030 guibg=#ffd7af gui=NONE cterm=NONE
+hi Search guifg=#ffffff guibg=#0000ff gui=NONE cterm=NONE
+hi IncSearch guifg=#ffa700 guibg=NONE gui=reverse cterm=reverse
+hi WildMenu guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi Cursor guifg=#000000 guibg=#87ff87 gui=NONE cterm=NONE
+hi lCursor guifg=#000000 guibg=#ff0000 gui=NONE cterm=NONE
+hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
+hi SpellCap guifg=#00ffff guibg=NONE guisp=#00ffff gui=undercurl cterm=underline
+hi SpellLocal guifg=#ffd7af guibg=NONE guisp=#ffd7af gui=undercurl cterm=underline
+hi SpellRare guifg=#ffff00 guibg=NONE guisp=#ffff00 gui=undercurl cterm=underline
+hi Comment guifg=#ffa700 guibg=NONE gui=NONE cterm=NONE
+hi Identifier guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
+hi Statement guifg=#ffff00 guibg=NONE gui=NONE cterm=NONE
+hi Constant guifg=#ffffff guibg=NONE gui=NONE cterm=NONE
+hi PreProc guifg=#ffd7af guibg=NONE gui=NONE cterm=NONE
+hi Type guifg=#bcbcbc guibg=NONE gui=NONE cterm=NONE
+hi Special guifg=#ff00ff guibg=NONE gui=NONE cterm=NONE
+hi Directory guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
+hi Conceal guifg=#bcbcbc guibg=NONE gui=NONE cterm=NONE
+hi Ignore guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi Title guifg=#ff00ff guibg=NONE gui=bold cterm=NONE
+hi! link Terminal Normal
+hi! link LineNrAbove LineNr
+hi! link LineNrBelow LineNr
+hi! link CurSearch Search
+hi! link CursorLineFold CursorLine
+hi! link CursorLineSign CursorLine
+hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
+hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
+hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
+hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
+
+if s:t_Co >= 256
+ hi! link StatusLineTerm StatusLine
+ hi! link StatusLineTermNC StatusLineNC
+ hi Normal ctermfg=120 ctermbg=16 cterm=NONE
+ hi EndOfBuffer ctermfg=21 ctermbg=16 cterm=NONE
+ hi StatusLine ctermfg=231 ctermbg=18 cterm=NONE
+ hi StatusLineNC ctermfg=231 ctermbg=237 cterm=NONE
+ hi VertSplit ctermfg=231 ctermbg=237 cterm=NONE
+ hi Pmenu ctermfg=231 ctermbg=238 cterm=NONE
+ hi PmenuSel ctermfg=16 ctermbg=226 cterm=NONE
+ hi PmenuSbar ctermfg=NONE ctermbg=236 cterm=NONE
+ hi PmenuThumb ctermfg=NONE ctermbg=250 cterm=NONE
+ hi TabLineFill ctermfg=NONE ctermbg=236 cterm=NONE
+ hi TabLine ctermfg=120 ctermbg=238 cterm=NONE
+ hi TabLineSel ctermfg=231 ctermbg=16 cterm=NONE
+ hi ToolbarLine ctermfg=NONE ctermbg=236 cterm=NONE
+ hi ToolbarButton ctermfg=231 ctermbg=238 cterm=NONE
+ hi NonText ctermfg=37 ctermbg=NONE cterm=NONE
+ hi SpecialKey ctermfg=37 ctermbg=NONE cterm=NONE
+ hi QuickFixLine ctermfg=236 ctermbg=37 cterm=NONE
+ hi Folded ctermfg=37 ctermbg=236 cterm=NONE
+ hi CursorLine ctermfg=NONE ctermbg=238 cterm=NONE
+ hi CursorColumn ctermfg=NONE ctermbg=238 cterm=NONE
+ hi CursorLineNr ctermfg=226 ctermbg=NONE cterm=NONE
+ hi ColorColumn ctermfg=NONE ctermbg=235 cterm=NONE
+ hi Visual ctermfg=231 ctermbg=22 cterm=NONE
+ hi VisualNOS ctermfg=231 ctermbg=22 cterm=NONE
+ hi LineNr ctermfg=226 ctermbg=NONE cterm=NONE
+ hi FoldColumn ctermfg=37 ctermbg=NONE cterm=NONE
+ hi SignColumn ctermfg=37 ctermbg=NONE cterm=NONE
+ hi Underlined ctermfg=37 ctermbg=NONE cterm=underline
+ hi Error ctermfg=231 ctermbg=196 cterm=NONE
+ hi ErrorMsg ctermfg=231 ctermbg=196 cterm=NONE
+ hi ModeMsg ctermfg=120 ctermbg=NONE cterm=NONE
+ hi WarningMsg ctermfg=214 ctermbg=NONE cterm=NONE
+ hi MoreMsg ctermfg=22 ctermbg=NONE cterm=NONE
+ hi Question ctermfg=51 ctermbg=NONE cterm=NONE
+ hi Todo ctermfg=21 ctermbg=226 cterm=NONE
+ hi MatchParen ctermfg=236 ctermbg=223 cterm=NONE
+ hi Search ctermfg=231 ctermbg=21 cterm=NONE
+ hi IncSearch ctermfg=214 ctermbg=NONE cterm=reverse
+ hi WildMenu ctermfg=16 ctermbg=226 cterm=NONE
+ hi Cursor ctermfg=16 ctermbg=120 cterm=NONE
+ hi lCursor ctermfg=16 ctermbg=196 cterm=NONE
+ hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
+ hi SpellCap ctermfg=51 ctermbg=NONE cterm=underline
+ hi SpellLocal ctermfg=223 ctermbg=NONE cterm=underline
+ hi SpellRare ctermfg=226 ctermbg=NONE cterm=underline
+ hi Comment ctermfg=214 ctermbg=NONE cterm=NONE
+ hi Identifier ctermfg=51 ctermbg=NONE cterm=NONE
+ hi Statement ctermfg=226 ctermbg=NONE cterm=NONE
+ hi Constant ctermfg=231 ctermbg=NONE cterm=NONE
+ hi PreProc ctermfg=223 ctermbg=NONE cterm=NONE
+ hi Type ctermfg=250 ctermbg=NONE cterm=NONE
+ hi Special ctermfg=201 ctermbg=NONE cterm=NONE
+ hi Directory ctermfg=51 ctermbg=NONE cterm=NONE
+ hi Conceal ctermfg=250 ctermbg=NONE cterm=NONE
+ hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi Title ctermfg=201 ctermbg=NONE cterm=NONE
+ hi! link Terminal Normal
+ hi! link LineNrAbove LineNr
+ hi! link LineNrBelow LineNr
+ hi! link CurSearch Search
+ hi! link CursorLineFold CursorLine
+ hi! link CursorLineSign CursorLine
+ hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
+ hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
+ hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
+ hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
+ unlet s:t_Co
+ finish
+endif
+
+if s:t_Co >= 16
+ hi! link StatusLineTerm StatusLine
+ hi! link StatusLineTermNC StatusLineNC
+ hi Normal ctermfg=green ctermbg=black cterm=NONE
+ hi EndOfBuffer ctermfg=blue ctermbg=black cterm=NONE
+ hi StatusLine ctermfg=white ctermbg=darkblue cterm=NONE
+ hi StatusLineNC ctermfg=white ctermbg=darkgrey cterm=NONE
+ hi VertSplit ctermfg=white ctermbg=darkgrey cterm=NONE
+ hi Pmenu ctermfg=white ctermbg=darkgrey cterm=NONE
+ hi PmenuSel ctermfg=black ctermbg=yellow cterm=NONE
+ hi PmenuSbar ctermfg=NONE ctermbg=black cterm=NONE
+ hi PmenuThumb ctermfg=NONE ctermbg=grey cterm=NONE
+ hi TabLineFill ctermfg=NONE ctermbg=grey cterm=NONE
+ hi TabLine ctermfg=green ctermbg=darkgrey cterm=NONE
+ hi TabLineSel ctermfg=white ctermbg=black cterm=NONE
+ hi ToolbarLine ctermfg=NONE ctermbg=black cterm=NONE
+ hi ToolbarButton ctermfg=white ctermbg=darkgrey cterm=NONE
+ hi NonText ctermfg=darkcyan ctermbg=NONE cterm=NONE
+ hi SpecialKey ctermfg=darkcyan ctermbg=NONE cterm=NONE
+ hi QuickFixLine ctermfg=black ctermbg=darkcyan cterm=NONE
+ hi Folded ctermfg=darkcyan ctermbg=NONE cterm=NONE
+ hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
+ hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=underline
+ hi CursorLineNr ctermfg=yellow ctermbg=NONE cterm=underline
+ hi ColorColumn ctermfg=green ctermbg=darkgrey cterm=NONE
+ hi Visual ctermfg=white ctermbg=darkgreen cterm=NONE
+ hi VisualNOS ctermfg=white ctermbg=darkgreen cterm=NONE
+ hi LineNr ctermfg=yellow ctermbg=NONE cterm=NONE
+ hi FoldColumn ctermfg=darkcyan ctermbg=NONE cterm=NONE
+ hi SignColumn ctermfg=darkcyan ctermbg=NONE cterm=NONE
+ hi Underlined ctermfg=darkcyan ctermbg=NONE cterm=underline
+ hi Error ctermfg=white ctermbg=red cterm=NONE
+ hi ErrorMsg ctermfg=white ctermbg=red cterm=NONE
+ hi ModeMsg ctermfg=green ctermbg=NONE cterm=NONE
+ hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=NONE
+ hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
+ hi Question ctermfg=cyan ctermbg=NONE cterm=NONE
+ hi Todo ctermfg=blue ctermbg=yellow cterm=NONE
+ hi MatchParen ctermfg=black ctermbg=darkyellow cterm=NONE
+ hi Search ctermfg=white ctermbg=blue cterm=NONE
+ hi IncSearch ctermfg=darkred ctermbg=NONE cterm=reverse
+ hi WildMenu ctermfg=black ctermbg=yellow cterm=NONE
+ hi Cursor ctermfg=black ctermbg=green cterm=NONE
+ hi lCursor ctermfg=black ctermbg=red cterm=NONE
+ hi SpellBad ctermfg=red ctermbg=NONE cterm=underline
+ hi SpellCap ctermfg=cyan ctermbg=NONE cterm=underline
+ hi SpellLocal ctermfg=darkyellow ctermbg=NONE cterm=underline
+ hi SpellRare ctermfg=yellow ctermbg=NONE cterm=underline
+ hi Comment ctermfg=darkred ctermbg=NONE cterm=NONE
+ hi Identifier ctermfg=cyan ctermbg=NONE cterm=NONE
+ hi Statement ctermfg=yellow ctermbg=NONE cterm=NONE
+ hi Constant ctermfg=white ctermbg=NONE cterm=NONE
+ hi PreProc ctermfg=darkmagenta ctermbg=NONE cterm=NONE
+ hi Type ctermfg=grey ctermbg=NONE cterm=NONE
+ hi Special ctermfg=magenta ctermbg=NONE cterm=NONE
+ hi Directory ctermfg=cyan ctermbg=NONE cterm=NONE
+ hi Conceal ctermfg=grey ctermbg=NONE cterm=NONE
+ hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi Title ctermfg=magenta ctermbg=NONE cterm=NONE
+ hi! link Terminal Normal
+ hi! link LineNrAbove LineNr
+ hi! link LineNrBelow LineNr
+ hi! link CurSearch Search
+ hi! link CursorLineFold CursorLine
+ hi! link CursorLineSign CursorLine
+ hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
+ hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
+ hi DiffText ctermfg=black ctermbg=grey cterm=NONE
+ hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
+ unlet s:t_Co
+ finish
+endif
+
+if s:t_Co >= 0
+ hi Normal term=NONE
+ hi ColorColumn term=reverse
+ hi Conceal term=NONE
+ hi Cursor term=reverse
+ hi CursorColumn term=NONE
+ hi CursorLine term=underline
+ hi CursorLineNr term=bold
+ hi DiffAdd term=reverse
+ hi DiffChange term=NONE
+ hi DiffDelete term=reverse
+ hi DiffText term=reverse
+ hi Directory term=NONE
+ hi EndOfBuffer term=NONE
+ hi ErrorMsg term=bold,reverse
+ hi FoldColumn term=NONE
+ hi Folded term=NONE
+ hi IncSearch term=bold,reverse,underline
+ hi LineNr term=NONE
+ hi MatchParen term=bold,underline
+ hi ModeMsg term=bold
+ hi MoreMsg term=NONE
+ hi NonText term=NONE
+ hi Pmenu term=reverse
+ hi PmenuSbar term=reverse
+ hi PmenuSel term=bold
+ hi PmenuThumb term=NONE
+ hi Question term=standout
+ hi Search term=reverse
+ hi SignColumn term=reverse
+ hi SpecialKey term=bold
+ hi SpellBad term=underline
+ hi SpellCap term=underline
+ hi SpellLocal term=underline
+ hi SpellRare term=underline
+ hi StatusLine term=bold,reverse
+ hi StatusLineNC term=bold,underline
+ hi TabLine term=bold,underline
+ hi TabLineFill term=NONE
+ hi Terminal term=NONE
+ hi TabLineSel term=bold,reverse
+ hi Title term=NONE
+ hi VertSplit term=NONE
+ hi Visual term=reverse
+ hi VisualNOS term=NONE
+ hi WarningMsg term=standout
+ hi WildMenu term=bold
+ hi CursorIM term=NONE
+ hi ToolbarLine term=reverse
+ hi ToolbarButton term=bold,reverse
+ hi CurSearch term=reverse
+ hi CursorLineFold term=underline
+ hi CursorLineSign term=underline
+ hi Comment term=bold
+ hi Constant term=NONE
+ hi Error term=bold,reverse
+ hi Identifier term=NONE
+ hi Ignore term=NONE
+ hi PreProc term=NONE
+ hi Special term=NONE
+ hi Statement term=NONE
+ hi Todo term=bold,reverse
+ hi Type term=NONE
+ hi Underlined term=underline
+ unlet s:t_Co
+ finish
+endif
+
+" Background: dark
+" Color: foreground #87FF87 120 green
+" Color: background #000000 16 black
+" Color: color00 #303030 236 black
+" Color: color08 #444444 238 darkgrey
+" Color: color01 #FFA700 214 darkred
+" Color: color09 #FF0000 196 red
+" Color: color02 #005F00 22 darkgreen
+" Color: color10 #00875F 29 green
+" Color: color03 #FFD7AF 223 darkyellow
+" Color: color11 #FFFF00 226 yellow
+" Color: color04 #00008B 18 darkblue
+" Color: color12 #0000FF 21 blue
+" Color: color05 #FFAFAF 217 darkmagenta
+" Color: color13 #FF00FF 201 magenta
+" Color: color06 #00AFAF 37 darkcyan
+" Color: color14 #00FFFF 51 cyan
+" Color: color07 #BCBCBC 250 grey
+" Color: color15 #FFFFFF 231 white
+" Color: color16 #262626 235 black
+" Color: color17 #3A3A3A 237 darkgrey
+" Color: color04t #87AFFF 111 darkblue
+" Color: color12t #005FFF 27 blue
+" Term colors: color00 color01 color02 color03 color04t color05 color06 color07
+" Term colors: color08 color09 color10 color11 color12t color13 color14 color15
+" Color: bgDiffA #5F875F 65 darkgreen
+" Color: bgDiffC #5F87AF 67 blue
+" Color: bgDiffD #AF5FAF 133 magenta
+" Color: bgDiffT #C6C6C6 251 grey
+" Color: fgDiffW #FFFFFF 231 white
+" Color: fgDiffB #000000 16 black
+" vim: et ts=2 sw=2
diff --git a/runtime/colors/pablo.vim b/runtime/colors/pablo.vim
index e6bf737046..c7c8009551 100644
--- a/runtime/colors/pablo.vim
+++ b/runtime/colors/pablo.vim
@@ -1,26 +1,362 @@
-" local syntax file - set colors on a per-machine basis:
-" vim: tw=0 ts=4 sw=4
-" Vim color file
-" Maintainer: Ron Aaron <ron@ronware.org>
-" Last Change: 2003 May 02
+" Name: pablo
+" Author: Ron Aaron <ron@ronware.org>
+" Maintainer: Original maintainerRon Aaron <ron@ronware.org>
+" Website: https://github.com/vim/colorschemes
+" License: Same as Vim
+" Last Updated: Wed May 11 22:56:41 2022
+
+" Generated by Colortemplate v2.2.0
-hi clear
set background=dark
-if exists("syntax_on")
- syntax reset
+
+hi clear
+let g:colors_name = 'pablo'
+
+let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
+
+if (has('termguicolors') && &termguicolors) || has('gui_running')
+ let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0000ee', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff']
endif
-let g:colors_name = "pablo"
-
-highlight Comment ctermfg=8 guifg=#808080
-highlight Constant ctermfg=14 cterm=none guifg=#00ffff gui=none
-highlight Identifier ctermfg=6 guifg=#00c0c0
-highlight Statement ctermfg=3 cterm=bold guifg=#c0c000 gui=bold
-highlight PreProc ctermfg=10 guifg=#00ff00
-highlight Type ctermfg=2 guifg=#00c000
-highlight Special ctermfg=12 guifg=#0000ff
-highlight Error ctermbg=9 guibg=#ff0000
-highlight Todo ctermfg=4 ctermbg=3 guifg=#000080 guibg=#c0c000
-highlight Directory ctermfg=2 guifg=#00c000
-highlight StatusLine ctermfg=11 ctermbg=12 cterm=none guifg=#ffff00 guibg=#0000ff gui=none
-highlight Normal guifg=#ffffff guibg=#000000
-highlight Search ctermbg=3 guibg=#c0c000
+hi Normal guifg=#ffffff guibg=#000000 gui=NONE cterm=NONE
+hi! link Terminal Normal
+hi! link StatusLineTerm StatusLine
+hi! link StatusLineTermNC StatusLineNC
+hi! link CurSearch Search
+hi! link CursorLineFold CursorLine
+hi! link CursorLineSign CursorLine
+hi Comment guifg=#808080 guibg=NONE gui=NONE cterm=NONE
+hi Constant guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
+hi Identifier guifg=#00c0c0 guibg=NONE gui=NONE cterm=NONE
+hi Statement guifg=#c0c000 guibg=NONE gui=bold cterm=NONE
+hi PreProc guifg=#00ff00 guibg=NONE gui=NONE cterm=NONE
+hi Type guifg=#00c000 guibg=NONE gui=NONE cterm=NONE
+hi Special guifg=#0000ff guibg=NONE gui=NONE cterm=NONE
+hi Underlined guifg=#80a0ff guibg=NONE gui=underline cterm=underline
+hi Ignore guifg=#000000 guibg=#000000 gui=NONE cterm=NONE
+hi Error guifg=#ffffff guibg=#ff0000 gui=NONE cterm=NONE
+hi Todo guifg=#000000 guibg=#c0c000 gui=NONE cterm=NONE
+hi Conceal guifg=#e5e5e5 guibg=#a9a9a9 gui=NONE cterm=NONE
+hi Cursor guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE
+hi lCursor guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE
+hi CursorIM guifg=NONE guibg=fg gui=NONE cterm=NONE
+hi Title guifg=#ff00ff guibg=NONE gui=bold cterm=NONE
+hi Directory guifg=#00c000 guibg=NONE gui=NONE cterm=NONE
+hi Search guifg=#000000 guibg=#c0c000 gui=NONE cterm=NONE
+hi IncSearch guifg=#ffffff guibg=NONE gui=reverse cterm=reverse
+hi NonText guifg=#0000ff guibg=NONE gui=bold cterm=NONE
+hi EndOfBuffer guifg=#0000ff guibg=NONE gui=bold cterm=NONE
+hi ErrorMsg guifg=#ffffff guibg=#cd0000 gui=NONE cterm=NONE
+hi WarningMsg guifg=#ff0000 guibg=NONE gui=NONE cterm=NONE
+hi SignColumn guifg=#00ffff guibg=#a9a9a9 gui=NONE cterm=NONE
+hi ColorColumn guifg=NONE guibg=#4d4d4d gui=NONE cterm=NONE
+hi FoldColumn guifg=#7f7f7f guibg=#303030 gui=NONE cterm=NONE
+hi Folded guifg=#7f7f7f guibg=#303030 gui=NONE cterm=NONE
+hi CursorColumn guifg=NONE guibg=#3a3a3a gui=NONE cterm=NONE
+hi CursorLine guifg=NONE guibg=#3a3a3a gui=NONE cterm=NONE
+hi CursorLineNr guifg=#ffff00 guibg=#3a3a3a gui=bold cterm=NONE
+hi Visual guifg=#00008b guibg=#a9a9a9 gui=NONE cterm=NONE
+hi VisualNOS guifg=NONE guibg=#000000 gui=bold,underline cterm=underline
+hi LineNr guifg=#7f7f7f guibg=NONE gui=NONE cterm=NONE
+hi! link LineNrAbove LineNr
+hi! link LineNrBelow LineNr
+hi MatchParen guifg=NONE guibg=#008b8b gui=NONE cterm=NONE
+hi ModeMsg guifg=NONE guibg=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=NONE
+hi MoreMsg guifg=#5c5cff guibg=NONE gui=bold cterm=NONE
+hi Question guifg=#00ff00 guibg=NONE gui=bold cterm=NONE
+hi SpecialKey guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
+hi WildMenu guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi QuickFixLine guifg=#000000 guibg=#00cdcd gui=NONE cterm=NONE
+hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
+hi SpellCap guifg=#5c5cff guibg=NONE guisp=#5c5cff gui=undercurl cterm=underline
+hi SpellLocal guifg=#ff00ff guibg=NONE guisp=#ff00ff gui=undercurl cterm=underline
+hi SpellRare guifg=#ffff00 guibg=NONE guisp=#ffff00 gui=undercurl cterm=underline
+hi StatusLine guifg=#ffff00 guibg=#0000ee gui=NONE cterm=NONE
+hi StatusLineNC guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE
+hi VertSplit guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE
+hi TabLine guifg=#ffffff guibg=#7f7f7f gui=NONE cterm=NONE
+hi TabLineFill guifg=NONE guibg=#000000 gui=reverse cterm=reverse
+hi TabLineSel guifg=#ffffff guibg=#000000 gui=bold cterm=NONE
+hi ToolbarLine guifg=NONE guibg=#000000 gui=NONE cterm=NONE
+hi ToolbarButton guifg=#000000 guibg=#e5e5e5 gui=bold cterm=NONE
+hi Pmenu guifg=fg guibg=#303030 gui=NONE cterm=NONE
+hi PmenuSbar guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi PmenuSel guifg=#000000 guibg=#e5e5e5 gui=NONE cterm=NONE
+hi PmenuThumb guifg=NONE guibg=#ffffff gui=NONE cterm=NONE
+hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
+hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
+hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
+hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
+
+if s:t_Co >= 256
+ hi Normal ctermfg=231 ctermbg=16 cterm=NONE
+ hi! link Terminal Normal
+ hi! link StatusLineTerm StatusLine
+ hi! link StatusLineTermNC StatusLineNC
+ hi! link CurSearch Search
+ hi! link CursorLineFold CursorLine
+ hi! link CursorLineSign CursorLine
+ hi Comment ctermfg=244 ctermbg=NONE cterm=NONE
+ hi Constant ctermfg=51 ctermbg=NONE cterm=NONE
+ hi Identifier ctermfg=37 ctermbg=NONE cterm=NONE
+ hi Statement ctermfg=142 ctermbg=NONE cterm=NONE
+ hi PreProc ctermfg=46 ctermbg=NONE cterm=NONE
+ hi Type ctermfg=34 ctermbg=NONE cterm=NONE
+ hi Special ctermfg=21 ctermbg=NONE cterm=NONE
+ hi Underlined ctermfg=111 ctermbg=NONE cterm=underline
+ hi Ignore ctermfg=16 ctermbg=16 cterm=NONE
+ hi Error ctermfg=231 ctermbg=196 cterm=NONE
+ hi Todo ctermfg=16 ctermbg=142 cterm=NONE
+ hi Conceal ctermfg=254 ctermbg=248 cterm=NONE
+ hi Cursor ctermfg=16 ctermbg=231 cterm=NONE
+ hi lCursor ctermfg=16 ctermbg=231 cterm=NONE
+ hi CursorIM ctermfg=NONE ctermbg=fg cterm=NONE
+ hi Title ctermfg=225 ctermbg=NONE cterm=NONE
+ hi Directory ctermfg=34 ctermbg=NONE cterm=NONE
+ hi Search ctermfg=16 ctermbg=142 cterm=NONE
+ hi IncSearch ctermfg=231 ctermbg=NONE cterm=reverse
+ hi NonText ctermfg=63 ctermbg=NONE cterm=NONE
+ hi EndOfBuffer ctermfg=63 ctermbg=NONE cterm=NONE
+ hi ErrorMsg ctermfg=231 ctermbg=160 cterm=NONE
+ hi WarningMsg ctermfg=224 ctermbg=NONE cterm=NONE
+ hi SignColumn ctermfg=51 ctermbg=248 cterm=NONE
+ hi ColorColumn ctermfg=NONE ctermbg=239 cterm=NONE
+ hi FoldColumn ctermfg=102 ctermbg=236 cterm=NONE
+ hi Folded ctermfg=102 ctermbg=236 cterm=NONE
+ hi CursorColumn ctermfg=NONE ctermbg=237 cterm=NONE
+ hi CursorLine ctermfg=NONE ctermbg=237 cterm=NONE
+ hi CursorLineNr ctermfg=226 ctermbg=237 cterm=NONE
+ hi Visual ctermfg=20 ctermbg=248 cterm=NONE
+ hi VisualNOS ctermfg=NONE ctermbg=16 cterm=underline
+ hi LineNr ctermfg=102 ctermbg=NONE cterm=NONE
+ hi! link LineNrAbove LineNr
+ hi! link LineNrBelow LineNr
+ hi MatchParen ctermfg=NONE ctermbg=44 cterm=NONE
+ hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi MoreMsg ctermfg=63 ctermbg=NONE cterm=NONE
+ hi Question ctermfg=121 ctermbg=NONE cterm=NONE
+ hi SpecialKey ctermfg=81 ctermbg=NONE cterm=NONE
+ hi WildMenu ctermfg=16 ctermbg=226 cterm=NONE
+ hi QuickFixLine ctermfg=16 ctermbg=44 cterm=NONE
+ hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
+ hi SpellCap ctermfg=63 ctermbg=NONE cterm=underline
+ hi SpellLocal ctermfg=201 ctermbg=NONE cterm=underline
+ hi SpellRare ctermfg=226 ctermbg=NONE cterm=underline
+ hi StatusLine ctermfg=226 ctermbg=20 cterm=NONE
+ hi StatusLineNC ctermfg=16 ctermbg=231 cterm=NONE
+ hi VertSplit ctermfg=16 ctermbg=231 cterm=NONE
+ hi TabLine ctermfg=231 ctermbg=102 cterm=NONE
+ hi TabLineFill ctermfg=NONE ctermbg=16 cterm=reverse
+ hi TabLineSel ctermfg=231 ctermbg=16 cterm=NONE
+ hi ToolbarLine ctermfg=NONE ctermbg=16 cterm=NONE
+ hi ToolbarButton ctermfg=16 ctermbg=254 cterm=NONE
+ hi Pmenu ctermfg=fg ctermbg=236 cterm=NONE
+ hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi PmenuSel ctermfg=16 ctermbg=254 cterm=NONE
+ hi PmenuThumb ctermfg=NONE ctermbg=231 cterm=NONE
+ hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
+ hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
+ hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
+ hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
+ unlet s:t_Co
+ finish
+endif
+
+if s:t_Co >= 16
+ hi Normal ctermfg=white ctermbg=black cterm=NONE
+ hi! link Terminal Normal
+ hi! link StatusLineTerm StatusLine
+ hi! link StatusLineTermNC StatusLineNC
+ hi! link CurSearch Search
+ hi! link CursorLineFold CursorLine
+ hi! link CursorLineSign CursorLine
+ hi Comment ctermfg=darkgrey ctermbg=NONE cterm=NONE
+ hi Constant ctermfg=cyan ctermbg=NONE cterm=NONE
+ hi Identifier ctermfg=darkcyan ctermbg=NONE cterm=NONE
+ hi Statement ctermfg=darkyellow ctermbg=NONE cterm=NONE
+ hi PreProc ctermfg=green ctermbg=NONE cterm=NONE
+ hi Type ctermfg=darkgreen ctermbg=NONE cterm=NONE
+ hi Special ctermfg=blue ctermbg=NONE cterm=NONE
+ hi Underlined ctermfg=darkgreen ctermbg=NONE cterm=underline
+ hi Ignore ctermfg=black ctermbg=black cterm=NONE
+ hi Error ctermfg=white ctermbg=red cterm=NONE
+ hi Todo ctermfg=black ctermbg=darkyellow cterm=NONE
+ hi Conceal ctermfg=grey ctermbg=grey cterm=NONE
+ hi Cursor ctermfg=black ctermbg=white cterm=NONE
+ hi lCursor ctermfg=black ctermbg=white cterm=NONE
+ hi CursorIM ctermfg=NONE ctermbg=fg cterm=NONE
+ hi Title ctermfg=magenta ctermbg=NONE cterm=NONE
+ hi Directory ctermfg=darkgreen ctermbg=NONE cterm=NONE
+ hi Search ctermfg=black ctermbg=darkyellow cterm=NONE
+ hi IncSearch ctermfg=white ctermbg=NONE cterm=reverse
+ hi NonText ctermfg=blue ctermbg=NONE cterm=NONE
+ hi EndOfBuffer ctermfg=blue ctermbg=NONE cterm=NONE
+ hi ErrorMsg ctermfg=white ctermbg=darkred cterm=NONE
+ hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=NONE
+ hi SignColumn ctermfg=cyan ctermbg=black cterm=NONE
+ hi ColorColumn ctermfg=white ctermbg=darkgrey cterm=NONE
+ hi FoldColumn ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi Folded ctermfg=blue ctermbg=NONE cterm=NONE
+ hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=underline
+ hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
+ hi CursorLineNr ctermfg=yellow ctermbg=NONE cterm=underline
+ hi Visual ctermfg=darkblue ctermbg=grey cterm=NONE
+ hi VisualNOS ctermfg=NONE ctermbg=black cterm=underline
+ hi LineNr ctermfg=darkgrey ctermbg=NONE cterm=NONE
+ hi! link LineNrAbove LineNr
+ hi! link LineNrBelow LineNr
+ hi MatchParen ctermfg=NONE ctermbg=darkcyan cterm=NONE
+ hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi MoreMsg ctermfg=blue ctermbg=NONE cterm=NONE
+ hi Question ctermfg=green ctermbg=NONE cterm=NONE
+ hi SpecialKey ctermfg=cyan ctermbg=NONE cterm=NONE
+ hi WildMenu ctermfg=black ctermbg=yellow cterm=NONE
+ hi QuickFixLine ctermfg=black ctermbg=darkcyan cterm=NONE
+ hi SpellBad ctermfg=red ctermbg=NONE cterm=underline
+ hi SpellCap ctermfg=blue ctermbg=NONE cterm=underline
+ hi SpellLocal ctermfg=magenta ctermbg=NONE cterm=underline
+ hi SpellRare ctermfg=yellow ctermbg=NONE cterm=underline
+ hi StatusLine ctermfg=yellow ctermbg=darkblue cterm=NONE
+ hi StatusLineNC ctermfg=black ctermbg=white cterm=NONE
+ hi VertSplit ctermfg=black ctermbg=white cterm=NONE
+ hi TabLine ctermfg=white ctermbg=darkgrey cterm=NONE
+ hi TabLineFill ctermfg=NONE ctermbg=black cterm=reverse
+ hi TabLineSel ctermfg=white ctermbg=black cterm=NONE
+ hi ToolbarLine ctermfg=NONE ctermbg=black cterm=NONE
+ hi ToolbarButton ctermfg=black ctermbg=grey cterm=NONE
+ hi Pmenu ctermfg=fg ctermbg=darkgrey cterm=NONE
+ hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi PmenuSel ctermfg=black ctermbg=grey cterm=NONE
+ hi PmenuThumb ctermfg=NONE ctermbg=white cterm=NONE
+ hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
+ hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
+ hi DiffText ctermfg=black ctermbg=grey cterm=NONE
+ hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
+ unlet s:t_Co
+ finish
+endif
+
+if s:t_Co >= 0
+ hi Normal term=NONE
+ hi ColorColumn term=reverse
+ hi Conceal term=NONE
+ hi Cursor term=reverse
+ hi CursorColumn term=NONE
+ hi CursorLine term=underline
+ hi CursorLineNr term=bold
+ hi DiffAdd term=reverse
+ hi DiffChange term=NONE
+ hi DiffDelete term=reverse
+ hi DiffText term=reverse
+ hi Directory term=NONE
+ hi EndOfBuffer term=NONE
+ hi ErrorMsg term=bold,reverse
+ hi FoldColumn term=NONE
+ hi Folded term=NONE
+ hi IncSearch term=bold,reverse,underline
+ hi LineNr term=NONE
+ hi MatchParen term=bold,underline
+ hi ModeMsg term=bold
+ hi MoreMsg term=NONE
+ hi NonText term=NONE
+ hi Pmenu term=reverse
+ hi PmenuSbar term=reverse
+ hi PmenuSel term=bold
+ hi PmenuThumb term=NONE
+ hi Question term=standout
+ hi Search term=reverse
+ hi SignColumn term=reverse
+ hi SpecialKey term=bold
+ hi SpellBad term=underline
+ hi SpellCap term=underline
+ hi SpellLocal term=underline
+ hi SpellRare term=underline
+ hi StatusLine term=bold,reverse
+ hi StatusLineNC term=bold,underline
+ hi TabLine term=bold,underline
+ hi TabLineFill term=NONE
+ hi Terminal term=NONE
+ hi TabLineSel term=bold,reverse
+ hi Title term=NONE
+ hi VertSplit term=NONE
+ hi Visual term=reverse
+ hi VisualNOS term=NONE
+ hi WarningMsg term=standout
+ hi WildMenu term=bold
+ hi CursorIM term=NONE
+ hi ToolbarLine term=reverse
+ hi ToolbarButton term=bold,reverse
+ hi CurSearch term=reverse
+ hi CursorLineFold term=underline
+ hi CursorLineSign term=underline
+ hi Comment term=bold
+ hi Constant term=NONE
+ hi Error term=bold,reverse
+ hi Identifier term=NONE
+ hi Ignore term=NONE
+ hi PreProc term=NONE
+ hi Special term=NONE
+ hi Statement term=NONE
+ hi Todo term=bold,reverse
+ hi Type term=NONE
+ hi Underlined term=underline
+ unlet s:t_Co
+ finish
+endif
+
+" Background: dark
+" Color: color00 #000000 16 black
+" Color: color08 #7f7f7f 102 darkgrey
+" Color: color01 #cd0000 160 darkred
+" Color: color09 #ff0000 196 red
+" Color: color02 #00cd00 40 darkgreen
+" Color: color10 #00ff00 46 green
+" Color: color03 #cdcd00 184 darkyellow
+" Color: color11 #ffff00 226 yellow
+" Color: color04 #0000ee 20 darkblue
+" Color: color12 #5c5cff 63 blue
+" Color: color05 #cd00cd 164 darkmagenta
+" Color: color13 #ff00ff 201 magenta
+" Color: color06 #00cdcd 44 darkcyan
+" Color: color14 #00ffff 51 cyan
+" Color: color07 #e5e5e5 254 grey
+" Color: color15 #ffffff 231 white
+" Term colors: color00 color01 color02 color03 color04 color05 color06 color07
+" Term colors: color08 color09 color10 color11 color12 color13 color14 color15
+" Color: rgbGrey30 #4d4d4d 239 darkgrey
+" Color: rgbGrey40 #666666 241 darkgrey
+" Color: rgbDarkGrey #a9a9a9 248 grey
+" Color: rgbDarkBlue #00008b 20 darkblue
+" Color: rgbDarkMagenta #8b008b 164 darkmagenta
+" Color: rgbBlue #0000ff 63 blue
+" Color: rgbDarkCyan #008b8b 44 darkcyan
+" Color: rgbSeaGreen #2e8b57 121 darkgreen
+" Color: rgbGrey #bebebe 248 grey
+" Color: Question #00ff00 121 green
+" Color: SignColumn #a9a9a9 248 black
+" Color: SpecialKey #00ffff 81 cyan
+" Color: StatusLineTerm #90ee90 121 darkgreen
+" Color: Title #ff00ff 225 magenta
+" Color: WarningMsg #ff0000 224 darkred
+" Color: ToolbarLine #7f7f7f 242 darkgrey
+" Color: ToolbarButton #d3d3d3 254 grey
+" Color: Underlined #80a0ff 111 darkgreen
+" Color: Comment #808080 244 darkgrey
+" Color: Constant #00ffff 51 cyan
+" Color: Special #0000ff 21 blue
+" Color: Identifier #00c0c0 37 darkcyan
+" Color: Search #c0c000 142 darkyellow
+" Color: Statement #c0c000 142 darkyellow
+" Color: Todo #c0c000 142 darkyellow
+" Color: PreProc #00ff00 46 green
+" Color: Type #00c000 34 darkgreen
+" Color: Directory #00c000 34 darkgreen
+" Color: Pmenu #303030 236 darkgrey
+" Color: Folded #303030 236 darkgrey
+" Color: Cursorline #3a3a3a 237 darkgrey
+" Color: bgDiffA #5F875F 65 darkgreen
+" Color: bgDiffC #5F87AF 67 blue
+" Color: bgDiffD #AF5FAF 133 magenta
+" Color: bgDiffT #C6C6C6 251 grey
+" Color: fgDiffW #FFFFFF 231 white
+" Color: fgDiffB #000000 16 black
+" vim: et ts=2 sw=2
diff --git a/runtime/colors/peachpuff.vim b/runtime/colors/peachpuff.vim
index 1c0c2390f8..bf2a65dcaa 100644
--- a/runtime/colors/peachpuff.vim
+++ b/runtime/colors/peachpuff.vim
@@ -1,59 +1,335 @@
-" Vim color file
-" Maintainer: David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
-" Last Change: 2003-04-23
-" URL: http://trific.ath.cx/Ftp/vim/colors/peachpuff.vim
+" Name: peachpuff
+" Description: This color scheme uses a peachpuff background (what you've expected when it's " called peachpuff?).
+" Author: Original author David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
+" Maintainer: Original maintainer David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
+" Website: https://github.com/vim/colorschemes
+" License: Same as Vim
+" Last Updated: Wed May 11 22:56:43 2022
-" This color scheme uses a peachpuff background (what you've expected when it's
-" called peachpuff?).
-"
-" Note: Only GUI colors differ from default, on terminal it's just `light'.
+" Generated by Colortemplate v2.2.0
-" First remove all existing highlighting.
set background=light
+
hi clear
-if exists("syntax_on")
- syntax reset
+let g:colors_name = 'peachpuff'
+
+let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
+
+if (has('termguicolors') && &termguicolors) || has('gui_running')
+ let g:terminal_ansi_colors = ['#ffdab9', '#a52a2a', '#c00058', '#cd00cd', '#008b8b', '#2e8b57', '#6a5acd', '#737373', '#406090', '#a52a2a', '#c00058', '#cd00cd', '#008b8b', '#2e8b57', '#6a5acd', '#000000']
+endif
+hi Normal guifg=#000000 guibg=#ffdab9 gui=NONE cterm=NONE
+hi Folded guifg=#000000 guibg=#e3c1a5 gui=NONE cterm=NONE
+hi CursorLine guifg=NONE guibg=#f5c195 gui=NONE cterm=NONE
+hi CursorColumn guifg=NONE guibg=#f5c195 gui=NONE cterm=NONE
+hi CursorLineNr guifg=#cd0000 guibg=NONE gui=bold cterm=NONE
+hi QuickFixLine guifg=#000000 guibg=#ffaf87 gui=NONE cterm=NONE
+hi EndOfBuffer guifg=#737373 guibg=NONE gui=NONE cterm=NONE
+hi StatusLine guifg=#ffffff guibg=#000000 gui=bold cterm=NONE
+hi StatusLineNC guifg=#ffdab9 guibg=#737373 gui=bold cterm=NONE
+hi StatusLineTerm guifg=#ffffff guibg=#2e8b57 gui=bold cterm=NONE
+hi StatusLineTermNC guifg=#ffdab9 guibg=#008b8b gui=bold cterm=NONE
+hi VertSplit guifg=#ffdab9 guibg=#737373 gui=NONE cterm=NONE
+hi Pmenu guifg=#000000 guibg=#ffaf87 gui=NONE cterm=NONE
+hi PmenuSel guifg=#000000 guibg=#f5c195 gui=bold cterm=NONE
+hi PmenuSbar guifg=NONE guibg=#ffdab9 gui=NONE cterm=NONE
+hi PmenuThumb guifg=NONE guibg=#737373 gui=NONE cterm=NONE
+hi TabLine guifg=#ffdab9 guibg=#737373 gui=underline cterm=underline
+hi TabLineFill guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse
+hi TabLineSel guifg=#000000 guibg=#ffdab9 gui=bold cterm=NONE
+hi ToolbarLine guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi ToolbarButton guifg=#ffdab9 guibg=#737373 gui=bold cterm=NONE
+hi NonText guifg=#737373 guibg=NONE gui=NONE cterm=NONE
+hi SpecialKey guifg=#737373 guibg=NONE gui=NONE cterm=NONE
+hi Visual guifg=#000000 guibg=#cccccc gui=NONE cterm=NONE
+hi VisualNOS guifg=NONE guibg=#406090 gui=NONE cterm=NONE
+hi LineNr guifg=#cd0000 guibg=NONE gui=NONE cterm=NONE
+hi FoldColumn guifg=#406090 guibg=NONE gui=NONE cterm=NONE
+hi SignColumn guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi Underlined guifg=#6a5acd guibg=NONE gui=underline cterm=underline
+hi Error guifg=#ff0000 guibg=#ffffff gui=bold,reverse cterm=reverse
+hi ErrorMsg guifg=#ff0000 guibg=#ffffff gui=bold,reverse cterm=reverse
+hi WarningMsg guifg=#cd00cd guibg=#ffdab9 gui=bold cterm=NONE
+hi MoreMsg guifg=#2e8b57 guibg=#ffdab9 gui=bold cterm=NONE
+hi ModeMsg guifg=#000000 guibg=#ffdab9 gui=bold cterm=NONE
+hi Question guifg=#c00058 guibg=NONE gui=bold cterm=NONE
+hi Todo guifg=#6a5acd guibg=#ffff00 gui=NONE cterm=NONE
+hi MatchParen guifg=#ffdab9 guibg=#6a5acd gui=NONE cterm=NONE
+hi Search guifg=#ffdab9 guibg=#cd00cd gui=NONE cterm=NONE
+hi IncSearch guifg=#2e8b57 guibg=NONE gui=reverse cterm=reverse
+hi WildMenu guifg=#000000 guibg=#ffff00 gui=bold cterm=NONE
+hi ColorColumn guifg=NONE guibg=#eeeeee gui=NONE cterm=NONE
+hi Cursor guifg=#ffdab9 guibg=#000000 gui=NONE cterm=NONE
+hi lCursor guifg=#000000 guibg=#c00058 gui=NONE cterm=NONE
+hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
+hi SpellCap guifg=#008b8b guibg=NONE guisp=#008b8b gui=undercurl cterm=underline
+hi SpellLocal guifg=#cd00cd guibg=NONE guisp=#cd00cd gui=undercurl cterm=underline
+hi SpellRare guifg=#6a5acd guibg=NONE guisp=#6a5acd gui=undercurl cterm=underline
+hi Comment guifg=#406090 guibg=NONE gui=NONE cterm=NONE
+hi Constant guifg=#c00058 guibg=NONE gui=NONE cterm=NONE
+hi Identifier guifg=#008b8b guibg=NONE gui=NONE cterm=NONE
+hi Statement guifg=#a52a2a guibg=NONE gui=bold cterm=NONE
+hi PreProc guifg=#cd00cd guibg=NONE gui=NONE cterm=NONE
+hi Type guifg=#2e8b57 guibg=NONE gui=bold cterm=NONE
+hi Special guifg=#6a5acd guibg=NONE gui=NONE cterm=NONE
+hi Directory guifg=#008b8b guibg=NONE gui=bold cterm=NONE
+hi Conceal guifg=#406090 guibg=NONE gui=NONE cterm=NONE
+hi Ignore guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi Title guifg=#cd00cd guibg=NONE gui=bold cterm=NONE
+hi! link Terminal Normal
+hi! link LineNrAbove LineNr
+hi! link LineNrBelow LineNr
+hi! link CurSearch Search
+hi! link CursorLineFold CursorLine
+hi! link CursorLineSign CursorLine
+hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
+hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
+hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
+hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
+
+if s:t_Co >= 256
+ hi Normal ctermfg=16 ctermbg=223 cterm=NONE
+ hi Folded ctermfg=16 ctermbg=252 cterm=NONE
+ hi CursorLine ctermfg=NONE ctermbg=180 cterm=NONE
+ hi CursorColumn ctermfg=NONE ctermbg=180 cterm=NONE
+ hi CursorLineNr ctermfg=160 ctermbg=NONE cterm=NONE
+ hi QuickFixLine ctermfg=16 ctermbg=216 cterm=NONE
+ hi EndOfBuffer ctermfg=243 ctermbg=NONE cterm=NONE
+ hi StatusLine ctermfg=231 ctermbg=16 cterm=NONE
+ hi StatusLineNC ctermfg=223 ctermbg=243 cterm=NONE
+ hi StatusLineTerm ctermfg=231 ctermbg=29 cterm=NONE
+ hi StatusLineTermNC ctermfg=223 ctermbg=30 cterm=NONE
+ hi VertSplit ctermfg=223 ctermbg=243 cterm=NONE
+ hi Pmenu ctermfg=16 ctermbg=216 cterm=NONE
+ hi PmenuSel ctermfg=16 ctermbg=180 cterm=NONE
+ hi PmenuSbar ctermfg=NONE ctermbg=223 cterm=NONE
+ hi PmenuThumb ctermfg=NONE ctermbg=243 cterm=NONE
+ hi TabLine ctermfg=223 ctermbg=243 cterm=underline
+ hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=reverse
+ hi TabLineSel ctermfg=16 ctermbg=223 cterm=NONE
+ hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi ToolbarButton ctermfg=223 ctermbg=243 cterm=NONE
+ hi NonText ctermfg=243 ctermbg=NONE cterm=NONE
+ hi SpecialKey ctermfg=243 ctermbg=NONE cterm=NONE
+ hi Visual ctermfg=16 ctermbg=252 cterm=NONE
+ hi VisualNOS ctermfg=NONE ctermbg=25 cterm=NONE
+ hi LineNr ctermfg=160 ctermbg=NONE cterm=NONE
+ hi FoldColumn ctermfg=25 ctermbg=NONE cterm=NONE
+ hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi Underlined ctermfg=62 ctermbg=NONE cterm=underline
+ hi Error ctermfg=196 ctermbg=231 cterm=reverse
+ hi ErrorMsg ctermfg=196 ctermbg=231 cterm=reverse
+ hi WarningMsg ctermfg=164 ctermbg=223 cterm=NONE
+ hi MoreMsg ctermfg=29 ctermbg=223 cterm=NONE
+ hi ModeMsg ctermfg=16 ctermbg=223 cterm=NONE
+ hi Question ctermfg=161 ctermbg=NONE cterm=NONE
+ hi Todo ctermfg=62 ctermbg=226 cterm=NONE
+ hi MatchParen ctermfg=223 ctermbg=62 cterm=NONE
+ hi Search ctermfg=223 ctermbg=164 cterm=NONE
+ hi IncSearch ctermfg=29 ctermbg=NONE cterm=reverse
+ hi WildMenu ctermfg=16 ctermbg=226 cterm=NONE
+ hi ColorColumn ctermfg=NONE ctermbg=255 cterm=NONE
+ hi Cursor ctermfg=223 ctermbg=16 cterm=NONE
+ hi lCursor ctermfg=16 ctermbg=161 cterm=NONE
+ hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
+ hi SpellCap ctermfg=30 ctermbg=NONE cterm=underline
+ hi SpellLocal ctermfg=164 ctermbg=NONE cterm=underline
+ hi SpellRare ctermfg=62 ctermbg=NONE cterm=underline
+ hi Comment ctermfg=25 ctermbg=NONE cterm=NONE
+ hi Constant ctermfg=161 ctermbg=NONE cterm=NONE
+ hi Identifier ctermfg=30 ctermbg=NONE cterm=NONE
+ hi Statement ctermfg=124 ctermbg=NONE cterm=NONE
+ hi PreProc ctermfg=164 ctermbg=NONE cterm=NONE
+ hi Type ctermfg=29 ctermbg=NONE cterm=NONE
+ hi Special ctermfg=62 ctermbg=NONE cterm=NONE
+ hi Directory ctermfg=30 ctermbg=NONE cterm=NONE
+ hi Conceal ctermfg=25 ctermbg=NONE cterm=NONE
+ hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi Title ctermfg=164 ctermbg=NONE cterm=NONE
+ hi! link Terminal Normal
+ hi! link LineNrAbove LineNr
+ hi! link LineNrBelow LineNr
+ hi! link CurSearch Search
+ hi! link CursorLineFold CursorLine
+ hi! link CursorLineSign CursorLine
+ hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
+ hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
+ hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
+ hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
+ unlet s:t_Co
+ finish
+endif
+
+if s:t_Co >= 16
+ hi Normal ctermfg=black ctermbg=white cterm=NONE
+ hi Folded ctermfg=darkblue ctermbg=NONE cterm=NONE
+ hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
+ hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=underline
+ hi CursorLineNr ctermfg=NONE ctermbg=NONE cterm=underline
+ hi QuickFixLine ctermfg=black ctermbg=grey cterm=NONE
+ hi EndOfBuffer ctermfg=darkgrey ctermbg=NONE cterm=NONE
+ hi StatusLine ctermfg=white ctermbg=black cterm=NONE
+ hi StatusLineNC ctermfg=white ctermbg=darkgrey cterm=NONE
+ hi StatusLineTerm ctermfg=white ctermbg=darkgreen cterm=NONE
+ hi StatusLineTermNC ctermfg=white ctermbg=darkcyan cterm=NONE
+ hi VertSplit ctermfg=white ctermbg=darkgrey cterm=NONE
+ hi Pmenu ctermfg=black ctermbg=grey cterm=NONE
+ hi PmenuSel ctermfg=black ctermbg=yellow cterm=NONE
+ hi PmenuSbar ctermfg=NONE ctermbg=white cterm=NONE
+ hi PmenuThumb ctermfg=NONE ctermbg=darkgrey cterm=NONE
+ hi TabLine ctermfg=white ctermbg=darkgrey cterm=underline
+ hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=reverse
+ hi TabLineSel ctermfg=black ctermbg=white cterm=NONE
+ hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi ToolbarButton ctermfg=white ctermbg=darkgrey cterm=NONE
+ hi NonText ctermfg=darkgrey ctermbg=NONE cterm=NONE
+ hi SpecialKey ctermfg=darkgrey ctermbg=NONE cterm=NONE
+ hi Visual ctermfg=black ctermbg=grey cterm=NONE
+ hi VisualNOS ctermfg=NONE ctermbg=darkgrey cterm=NONE
+ hi LineNr ctermfg=red ctermbg=NONE cterm=NONE
+ hi FoldColumn ctermfg=darkgrey ctermbg=NONE cterm=NONE
+ hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi Underlined ctermfg=darkblue ctermbg=NONE cterm=underline
+ hi Error ctermfg=darkred ctermbg=white cterm=reverse
+ hi ErrorMsg ctermfg=darkred ctermbg=white cterm=reverse
+ hi WarningMsg ctermfg=darkmagenta ctermbg=white cterm=NONE
+ hi MoreMsg ctermfg=darkgreen ctermbg=white cterm=NONE
+ hi ModeMsg ctermfg=black ctermbg=white cterm=NONE
+ hi Question ctermfg=darkred ctermbg=NONE cterm=NONE
+ hi Todo ctermfg=darkblue ctermbg=yellow cterm=NONE
+ hi MatchParen ctermfg=white ctermbg=darkblue cterm=NONE
+ hi Search ctermfg=white ctermbg=darkmagenta cterm=NONE
+ hi IncSearch ctermfg=darkgreen ctermbg=NONE cterm=reverse
+ hi WildMenu ctermfg=black ctermbg=yellow cterm=NONE
+ hi ColorColumn ctermfg=NONE ctermbg=grey cterm=NONE
+ hi Cursor ctermfg=white ctermbg=black cterm=NONE
+ hi lCursor ctermfg=black ctermbg=darkred cterm=NONE
+ hi SpellBad ctermfg=darkred ctermbg=NONE cterm=underline
+ hi SpellCap ctermfg=darkcyan ctermbg=NONE cterm=underline
+ hi SpellLocal ctermfg=darkmagenta ctermbg=NONE cterm=underline
+ hi SpellRare ctermfg=darkblue ctermbg=NONE cterm=underline
+ hi Comment ctermfg=darkgrey ctermbg=NONE cterm=NONE
+ hi Constant ctermfg=darkred ctermbg=NONE cterm=NONE
+ hi Identifier ctermfg=darkcyan ctermbg=NONE cterm=NONE
+ hi Statement ctermfg=darkred ctermbg=NONE cterm=NONE
+ hi PreProc ctermfg=darkmagenta ctermbg=NONE cterm=NONE
+ hi Type ctermfg=darkgreen ctermbg=NONE cterm=NONE
+ hi Special ctermfg=darkblue ctermbg=NONE cterm=NONE
+ hi Directory ctermfg=darkcyan ctermbg=NONE cterm=NONE
+ hi Conceal ctermfg=darkgrey ctermbg=NONE cterm=NONE
+ hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi Title ctermfg=darkmagenta ctermbg=NONE cterm=NONE
+ hi! link Terminal Normal
+ hi! link LineNrAbove LineNr
+ hi! link LineNrBelow LineNr
+ hi! link CurSearch Search
+ hi! link CursorLineFold CursorLine
+ hi! link CursorLineSign CursorLine
+ hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
+ hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
+ hi DiffText ctermfg=black ctermbg=grey cterm=NONE
+ hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
+ unlet s:t_Co
+ finish
endif
-let colors_name = "peachpuff"
-
-hi Normal guibg=PeachPuff guifg=Black
-
-hi SpecialKey term=bold ctermfg=4 guifg=Blue
-hi NonText term=bold cterm=bold ctermfg=4 gui=bold guifg=Blue
-hi Directory term=bold ctermfg=4 guifg=Blue
-hi ErrorMsg term=standout cterm=bold ctermfg=7 ctermbg=1 gui=bold guifg=White guibg=Red
-hi IncSearch term=reverse cterm=reverse gui=reverse
-hi Search term=reverse ctermbg=3 guibg=Gold2
-hi MoreMsg term=bold ctermfg=2 gui=bold guifg=SeaGreen
-hi ModeMsg term=bold cterm=bold gui=bold
-hi LineNr term=underline ctermfg=3 guifg=Red3
-hi Question term=standout ctermfg=2 gui=bold guifg=SeaGreen
-hi StatusLine term=bold,reverse cterm=bold,reverse gui=bold guifg=White guibg=Black
-hi StatusLineNC term=reverse cterm=reverse gui=bold guifg=PeachPuff guibg=Gray45
-hi VertSplit term=reverse cterm=reverse gui=bold guifg=White guibg=Gray45
-hi Title term=bold ctermfg=5 gui=bold guifg=DeepPink3
-hi Visual term=reverse cterm=reverse gui=reverse guifg=Grey80 guibg=fg
-hi WarningMsg term=standout ctermfg=1 gui=bold guifg=Red
-hi WildMenu term=standout ctermfg=0 ctermbg=3 guifg=Black guibg=Yellow
-hi Folded term=standout ctermfg=4 ctermbg=7 guifg=Black guibg=#e3c1a5
-hi FoldColumn term=standout ctermfg=4 ctermbg=7 guifg=DarkBlue guibg=Gray80
-hi DiffAdd term=bold ctermbg=4 guibg=White
-hi DiffChange term=bold ctermbg=5 guibg=#edb5cd
-hi DiffDelete term=bold cterm=bold ctermfg=4 ctermbg=6 gui=bold guifg=LightBlue guibg=#f6e8d0
-hi DiffText term=reverse cterm=bold ctermbg=1 gui=bold guibg=#ff8060
-hi Cursor guifg=bg guibg=fg
-hi lCursor guifg=bg guibg=fg
-
-" Colors for syntax highlighting
-hi Comment term=bold ctermfg=4 guifg=#406090
-hi Constant term=underline ctermfg=1 guifg=#c00058
-hi Special term=bold ctermfg=5 guifg=SlateBlue
-hi Identifier term=underline ctermfg=6 guifg=DarkCyan
-hi Statement term=bold ctermfg=3 gui=bold guifg=Brown
-hi PreProc term=underline ctermfg=5 guifg=Magenta3
-hi Type term=underline ctermfg=2 gui=bold guifg=SeaGreen
-hi Ignore cterm=bold ctermfg=7 guifg=bg
-hi Error term=reverse cterm=bold ctermfg=7 ctermbg=1 gui=bold guifg=White guibg=Red
-hi Todo term=standout ctermfg=0 ctermbg=3 guifg=Blue guibg=Yellow
+if s:t_Co >= 0
+ hi Normal term=NONE
+ hi ColorColumn term=reverse
+ hi Conceal term=NONE
+ hi Cursor term=reverse
+ hi CursorColumn term=NONE
+ hi CursorLine term=underline
+ hi CursorLineNr term=bold
+ hi DiffAdd term=reverse
+ hi DiffChange term=NONE
+ hi DiffDelete term=reverse
+ hi DiffText term=reverse
+ hi Directory term=NONE
+ hi EndOfBuffer term=NONE
+ hi ErrorMsg term=bold,reverse
+ hi FoldColumn term=NONE
+ hi Folded term=NONE
+ hi IncSearch term=bold,reverse,underline
+ hi LineNr term=NONE
+ hi MatchParen term=bold,underline
+ hi ModeMsg term=bold
+ hi MoreMsg term=NONE
+ hi NonText term=NONE
+ hi Pmenu term=reverse
+ hi PmenuSbar term=reverse
+ hi PmenuSel term=bold
+ hi PmenuThumb term=NONE
+ hi Question term=standout
+ hi Search term=reverse
+ hi SignColumn term=reverse
+ hi SpecialKey term=bold
+ hi SpellBad term=underline
+ hi SpellCap term=underline
+ hi SpellLocal term=underline
+ hi SpellRare term=underline
+ hi StatusLine term=bold,reverse
+ hi StatusLineNC term=bold,underline
+ hi TabLine term=bold,underline
+ hi TabLineFill term=NONE
+ hi Terminal term=NONE
+ hi TabLineSel term=bold,reverse
+ hi Title term=NONE
+ hi VertSplit term=NONE
+ hi Visual term=reverse
+ hi VisualNOS term=NONE
+ hi WarningMsg term=standout
+ hi WildMenu term=bold
+ hi CursorIM term=NONE
+ hi ToolbarLine term=reverse
+ hi ToolbarButton term=bold,reverse
+ hi CurSearch term=reverse
+ hi CursorLineFold term=underline
+ hi CursorLineSign term=underline
+ hi Comment term=bold
+ hi Constant term=NONE
+ hi Error term=bold,reverse
+ hi Identifier term=NONE
+ hi Ignore term=NONE
+ hi PreProc term=NONE
+ hi Special term=NONE
+ hi Statement term=NONE
+ hi Todo term=bold,reverse
+ hi Type term=NONE
+ hi Underlined term=underline
+ unlet s:t_Co
+ finish
+endif
+" Background: light
+" Color: comment #406090 25 darkgrey
+" Color: constant #c00058 161 darkred
+" Color: identifier #008b8b 30 darkcyan
+" Color: statement #a52a2a 124 darkred
+" Color: preproc #cd00cd 164 darkmagenta
+" Color: type #2e8b57 29 darkgreen
+" Color: special #6a5acd 62 darkblue
+" Color: fg0 #000000 16 black
+" Color: bg0 #ffdab9 223 white
+" Color: fg1 #ffffff 231 white
+" Color: bg1 #737373 243 darkgrey
+" Color: visual #cccccc 252 grey
+" Color: folded #e3c1a5 252 cyan
+" Color: folded_fg #000000 16 black
+" Color: cursorline #f5c195 180 yellow
+" Color: pmenu #ffaf87 216 grey
+" Color: wildmenu #ffff00 226 yellow
+" Color: error #ff0000 196 darkred
+" Color: linenr #cd0000 160 red
+" Color: blue #0000ff 21 darkblue
+" Color: red #ff0000 196 darkred
+" Color: colorcolumn #eeeeee 255 grey
+" Term colors: bg0 statement constant preproc identifier type special bg1
+" Term colors: comment statement constant preproc identifier type special fg0
+" Color: bgDiffA #5F875F 65 darkgreen
+" Color: bgDiffC #5F87AF 67 blue
+" Color: bgDiffD #AF5FAF 133 magenta
+" Color: bgDiffT #C6C6C6 251 grey
+" Color: fgDiffW #FFFFFF 231 white
+" Color: fgDiffB #000000 16 black
+" vim: et ts=2 sw=2
diff --git a/runtime/colors/ron.vim b/runtime/colors/ron.vim
index 1e9caa3150..46f83e159e 100644
--- a/runtime/colors/ron.vim
+++ b/runtime/colors/ron.vim
@@ -1,45 +1,378 @@
-" local syntax file - set colors on a per-machine basis:
-" vim: tw=0 ts=4 sw=4
-" Vim color file
-" Maintainer: Ron Aaron <ron@ronware.org>
-" Last Change: 2013 May 24
+" Name: ron
+" Author: original author Ron Aaron <ron@ronware.org>
+" Maintainer: original maintainer Ron Aaron <ron@ronware.org>
+" Website: https://www.github.com/vim/colorschemes
+" License: Same as Vim
+" Last Updated: Wed May 11 22:56:43 2022
+
+" Generated by Colortemplate v2.2.0
set background=dark
+
hi clear
-if exists("syntax_on")
- syntax reset
+let g:colors_name = 'ron'
+
+let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
+
+hi! link Terminal Normal
+hi! link Boolean Constant
+hi! link Character Constant
+hi! link Conditional Statement
+hi! link Debug Special
+hi! link Define PreProc
+hi! link Delimiter Special
+hi! link Exception Statement
+hi! link Float Constant
+hi! link Function Identifier
+hi! link Include PreProc
+hi! link Keyword Statement
+hi! link Macro PreProc
+hi! link Number Constant
+hi! link PopupSelected PmenuSel
+hi! link PreCondit PreProc
+hi! link Repeat Statement
+hi! link SpecialChar Special
+hi! link SpecialComment Special
+hi! link StatusLineTerm StatusLine
+hi! link StatusLineTermNC StatusLineNC
+hi! link StorageClass Type
+hi! link String Constant
+hi! link Structure Type
+hi! link Tag Special
+hi! link Typedef Type
+hi! link lCursor Cursor
+hi! link CurSearch Search
+hi! link CursorLineFold CursorLine
+hi! link CursorLineSign CursorLine
+
+if (has('termguicolors') && &termguicolors) || has('gui_running')
+ let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0000ee', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff']
+endif
+hi Normal guifg=#00ffff guibg=#000000 gui=NONE cterm=NONE
+hi ColorColumn guifg=NONE guibg=#cd0000 gui=NONE cterm=NONE
+hi CursorColumn guifg=NONE guibg=#666666 gui=NONE cterm=NONE
+hi CursorLine guifg=NONE guibg=#666666 gui=NONE cterm=NONE
+hi CursorLineNr guifg=#ffff00 guibg=NONE gui=bold cterm=NONE
+hi QuickFixLine guifg=#000000 guibg=#00cdcd gui=NONE cterm=NONE
+hi Conceal guifg=#e5e5e5 guibg=#a9a9a9 gui=NONE cterm=NONE
+hi Cursor guifg=#ffffff guibg=#60a060 gui=NONE cterm=NONE
+hi Directory guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
+hi EndOfBuffer guifg=#ffff00 guibg=#303030 gui=NONE cterm=NONE
+hi ErrorMsg guifg=#ff0000 guibg=#ffffff gui=reverse cterm=reverse
+hi FoldColumn guifg=#ffffff guibg=NONE gui=NONE cterm=NONE
+hi Folded guifg=NONE guibg=#4d4d4d gui=NONE cterm=NONE
+hi IncSearch guifg=NONE guibg=#4682b4 gui=NONE cterm=NONE
+hi LineNr guifg=#a9a9a9 guibg=NONE gui=NONE cterm=NONE
+hi MatchParen guifg=NONE guibg=#008b8b gui=NONE cterm=NONE
+hi ModeMsg guifg=NONE guibg=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=NONE
+hi MoreMsg guifg=#2e8b57 guibg=NONE gui=bold cterm=NONE
+hi NonText guifg=#ffff00 guibg=#303030 gui=NONE cterm=NONE
+hi Pmenu guifg=#ffffff guibg=#444444 gui=NONE cterm=NONE
+hi PmenuSbar guifg=NONE guibg=#000000 gui=NONE cterm=NONE
+hi PmenuSel guifg=#000000 guibg=#00cdcd gui=NONE cterm=NONE
+hi PmenuThumb guifg=NONE guibg=#e5e5e5 gui=NONE cterm=NONE
+hi Question guifg=#00ff00 guibg=#000000 gui=bold cterm=NONE
+hi Search guifg=#000000 guibg=#a9a9a9 gui=bold cterm=NONE
+hi SignColumn guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
+hi SpecialKey guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
+hi StatusLine guifg=#00ffff guibg=#0000ff gui=bold cterm=NONE
+hi StatusLineNC guifg=#add8e6 guibg=#00008b gui=NONE cterm=NONE
+hi VertSplit guifg=#add8e6 guibg=#00008b gui=NONE cterm=NONE
+hi TabLine guifg=#000000 guibg=#008b8b gui=NONE cterm=NONE
+hi TabLineFill guifg=#a9a9a9 guibg=#7f7f7f gui=NONE cterm=NONE
+hi TabLineSel guifg=#00ffff guibg=#000000 gui=bold cterm=NONE
+hi Terminal guifg=#00ffff guibg=#000000 gui=NONE cterm=NONE
+hi Title guifg=#a9a9a9 guibg=NONE gui=NONE cterm=NONE
+hi Visual guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse
+hi VisualNOS guifg=NONE guibg=#000000 gui=bold,underline cterm=underline
+hi WarningMsg guifg=#ffff00 guibg=NONE gui=NONE cterm=NONE
+hi WildMenu guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
+hi SpellCap guifg=#ffffff guibg=NONE guisp=#ffffff gui=undercurl cterm=underline
+hi SpellLocal guifg=#ffff00 guibg=NONE guisp=#ffff00 gui=undercurl cterm=underline
+hi SpellRare guifg=#ff00ff guibg=NONE guisp=#ff00ff gui=undercurl cterm=underline
+hi Comment guifg=#00ff00 guibg=NONE gui=NONE cterm=NONE
+hi Constant guifg=#00ffff guibg=NONE gui=bold cterm=NONE
+hi Error guifg=#ff0000 guibg=#ffffff gui=reverse cterm=reverse
+hi Identifier guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
+hi Ignore guifg=#000000 guibg=#000000 gui=NONE cterm=NONE
+hi Label guifg=#eec900 guibg=NONE gui=NONE cterm=NONE
+hi Operator guifg=#ffa500 guibg=NONE gui=NONE cterm=NONE
+hi PreProc guifg=#eea9b8 guibg=NONE gui=NONE cterm=NONE
+hi Special guifg=#ffff00 guibg=NONE gui=NONE cterm=NONE
+hi Statement guifg=#add8e6 guibg=NONE gui=NONE cterm=NONE
+hi Todo guifg=#000000 guibg=#ffa500 gui=NONE cterm=NONE
+hi Type guifg=#2e8b57 guibg=NONE gui=bold cterm=NONE
+hi Underlined guifg=#80a0ff guibg=NONE gui=underline cterm=underline
+hi CursorIM guifg=NONE guibg=fg gui=NONE cterm=NONE
+hi ToolbarLine guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi ToolbarButton guifg=#000000 guibg=#e5e5e5 gui=bold cterm=NONE
+hi! link LineNrAbove LineNr
+hi! link LineNrBelow LineNr
+hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
+hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
+hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
+hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
+
+if s:t_Co >= 256
+ hi Normal ctermfg=51 ctermbg=16 cterm=NONE
+ hi ColorColumn ctermfg=NONE ctermbg=160 cterm=NONE
+ hi CursorColumn ctermfg=NONE ctermbg=59 cterm=NONE
+ hi CursorLine ctermfg=NONE ctermbg=59 cterm=NONE
+ hi CursorLineNr ctermfg=226 ctermbg=NONE cterm=NONE
+ hi QuickFixLine ctermfg=16 ctermbg=44 cterm=NONE
+ hi Conceal ctermfg=254 ctermbg=145 cterm=NONE
+ hi Cursor ctermfg=231 ctermbg=71 cterm=NONE
+ hi Directory ctermfg=51 ctermbg=NONE cterm=NONE
+ hi EndOfBuffer ctermfg=226 ctermbg=236 cterm=NONE
+ hi ErrorMsg ctermfg=196 ctermbg=231 cterm=reverse
+ hi FoldColumn ctermfg=231 ctermbg=NONE cterm=NONE
+ hi Folded ctermfg=NONE ctermbg=239 cterm=NONE
+ hi IncSearch ctermfg=NONE ctermbg=67 cterm=NONE
+ hi LineNr ctermfg=145 ctermbg=NONE cterm=NONE
+ hi MatchParen ctermfg=NONE ctermbg=44 cterm=NONE
+ hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi MoreMsg ctermfg=29 ctermbg=NONE cterm=NONE
+ hi NonText ctermfg=226 ctermbg=236 cterm=NONE
+ hi Pmenu ctermfg=231 ctermbg=238 cterm=NONE
+ hi PmenuSbar ctermfg=NONE ctermbg=16 cterm=NONE
+ hi PmenuSel ctermfg=16 ctermbg=44 cterm=NONE
+ hi PmenuThumb ctermfg=NONE ctermbg=254 cterm=NONE
+ hi Question ctermfg=46 ctermbg=16 cterm=NONE
+ hi Search ctermfg=16 ctermbg=145 cterm=NONE
+ hi SignColumn ctermfg=51 ctermbg=NONE cterm=NONE
+ hi SpecialKey ctermfg=51 ctermbg=NONE cterm=NONE
+ hi StatusLine ctermfg=51 ctermbg=21 cterm=NONE
+ hi StatusLineNC ctermfg=152 ctermbg=20 cterm=NONE
+ hi VertSplit ctermfg=152 ctermbg=20 cterm=NONE
+ hi TabLine ctermfg=16 ctermbg=44 cterm=NONE
+ hi TabLineFill ctermfg=145 ctermbg=102 cterm=NONE
+ hi TabLineSel ctermfg=51 ctermbg=16 cterm=NONE
+ hi Terminal ctermfg=51 ctermbg=16 cterm=NONE
+ hi Title ctermfg=145 ctermbg=NONE cterm=NONE
+ hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse
+ hi VisualNOS ctermfg=NONE ctermbg=16 cterm=underline
+ hi WarningMsg ctermfg=226 ctermbg=NONE cterm=NONE
+ hi WildMenu ctermfg=16 ctermbg=226 cterm=NONE
+ hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
+ hi SpellCap ctermfg=231 ctermbg=NONE cterm=underline
+ hi SpellLocal ctermfg=226 ctermbg=NONE cterm=underline
+ hi SpellRare ctermfg=201 ctermbg=NONE cterm=underline
+ hi Comment ctermfg=46 ctermbg=NONE cterm=NONE
+ hi Constant ctermfg=51 ctermbg=NONE cterm=NONE
+ hi Error ctermfg=196 ctermbg=231 cterm=reverse
+ hi Identifier ctermfg=51 ctermbg=NONE cterm=NONE
+ hi Ignore ctermfg=16 ctermbg=16 cterm=NONE
+ hi Label ctermfg=220 ctermbg=NONE cterm=NONE
+ hi Operator ctermfg=214 ctermbg=NONE cterm=NONE
+ hi PreProc ctermfg=217 ctermbg=NONE cterm=NONE
+ hi Special ctermfg=226 ctermbg=NONE cterm=NONE
+ hi Statement ctermfg=152 ctermbg=NONE cterm=NONE
+ hi Todo ctermfg=16 ctermbg=214 cterm=NONE
+ hi Type ctermfg=29 ctermbg=NONE cterm=NONE
+ hi Underlined ctermfg=111 ctermbg=NONE cterm=underline
+ hi CursorIM ctermfg=NONE ctermbg=fg cterm=NONE
+ hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi ToolbarButton ctermfg=16 ctermbg=254 cterm=NONE
+ hi! link LineNrAbove LineNr
+ hi! link LineNrBelow LineNr
+ hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
+ hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
+ hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
+ hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
+ unlet s:t_Co
+ finish
+endif
+
+if s:t_Co >= 16
+ hi Normal ctermfg=cyan ctermbg=black cterm=NONE
+ hi ColorColumn ctermfg=cyan ctermbg=darkred cterm=NONE
+ hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=underline
+ hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
+ hi CursorLineNr ctermfg=yellow ctermbg=NONE cterm=underline
+ hi QuickFixLine ctermfg=black ctermbg=darkcyan cterm=NONE
+ hi Conceal ctermfg=grey ctermbg=grey cterm=NONE
+ hi Cursor ctermfg=white ctermbg=green cterm=NONE
+ hi Directory ctermfg=cyan ctermbg=NONE cterm=NONE
+ hi EndOfBuffer ctermfg=yellow ctermbg=darkgrey cterm=NONE
+ hi ErrorMsg ctermfg=red ctermbg=white cterm=reverse
+ hi FoldColumn ctermfg=white ctermbg=NONE cterm=NONE
+ hi Folded ctermfg=NONE ctermbg=darkgrey cterm=NONE
+ hi IncSearch ctermfg=NONE ctermbg=blue cterm=NONE
+ hi LineNr ctermfg=grey ctermbg=NONE cterm=NONE
+ hi MatchParen ctermfg=NONE ctermbg=darkcyan cterm=NONE
+ hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
+ hi NonText ctermfg=yellow ctermbg=darkgrey cterm=NONE
+ hi Pmenu ctermfg=white ctermbg=darkgrey cterm=NONE
+ hi PmenuSbar ctermfg=NONE ctermbg=black cterm=NONE
+ hi PmenuSel ctermfg=black ctermbg=darkcyan cterm=NONE
+ hi PmenuThumb ctermfg=NONE ctermbg=grey cterm=NONE
+ hi Question ctermfg=green ctermbg=black cterm=NONE
+ hi Search ctermfg=black ctermbg=grey cterm=NONE
+ hi SignColumn ctermfg=cyan ctermbg=NONE cterm=NONE
+ hi SpecialKey ctermfg=cyan ctermbg=NONE cterm=NONE
+ hi StatusLine ctermfg=cyan ctermbg=darkblue cterm=NONE
+ hi StatusLineNC ctermfg=darkcyan ctermbg=darkblue cterm=NONE
+ hi VertSplit ctermfg=darkcyan ctermbg=darkblue cterm=NONE
+ hi TabLine ctermfg=black ctermbg=darkcyan cterm=NONE
+ hi TabLineFill ctermfg=grey ctermbg=darkgrey cterm=NONE
+ hi TabLineSel ctermfg=cyan ctermbg=black cterm=NONE
+ hi Terminal ctermfg=cyan ctermbg=black cterm=NONE
+ hi Title ctermfg=grey ctermbg=NONE cterm=NONE
+ hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse
+ hi VisualNOS ctermfg=NONE ctermbg=black cterm=underline
+ hi WarningMsg ctermfg=yellow ctermbg=NONE cterm=NONE
+ hi WildMenu ctermfg=black ctermbg=yellow cterm=NONE
+ hi SpellBad ctermfg=red ctermbg=NONE cterm=underline
+ hi SpellCap ctermfg=white ctermbg=NONE cterm=underline
+ hi SpellLocal ctermfg=yellow ctermbg=NONE cterm=underline
+ hi SpellRare ctermfg=magenta ctermbg=NONE cterm=underline
+ hi Comment ctermfg=green ctermbg=NONE cterm=NONE
+ hi Constant ctermfg=cyan ctermbg=NONE cterm=NONE
+ hi Error ctermfg=red ctermbg=white cterm=reverse
+ hi Identifier ctermfg=cyan ctermbg=NONE cterm=NONE
+ hi Ignore ctermfg=black ctermbg=black cterm=NONE
+ hi Label ctermfg=yellow ctermbg=NONE cterm=NONE
+ hi Operator ctermfg=darkyellow ctermbg=NONE cterm=NONE
+ hi PreProc ctermfg=darkmagenta ctermbg=NONE cterm=NONE
+ hi Special ctermfg=yellow ctermbg=NONE cterm=NONE
+ hi Statement ctermfg=darkcyan ctermbg=NONE cterm=NONE
+ hi Todo ctermfg=black ctermbg=darkyellow cterm=NONE
+ hi Type ctermfg=darkgreen ctermbg=NONE cterm=NONE
+ hi Underlined ctermfg=blue ctermbg=NONE cterm=underline
+ hi CursorIM ctermfg=NONE ctermbg=fg cterm=NONE
+ hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi ToolbarButton ctermfg=black ctermbg=grey cterm=NONE
+ hi! link LineNrAbove LineNr
+ hi! link LineNrBelow LineNr
+ hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
+ hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
+ hi DiffText ctermfg=black ctermbg=grey cterm=NONE
+ hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
+ unlet s:t_Co
+ finish
endif
-let g:colors_name = "ron"
-hi Normal guifg=cyan guibg=black
-hi NonText guifg=yellow guibg=#303030
-hi comment guifg=green
-hi constant guifg=cyan gui=bold
-hi identifier guifg=cyan gui=NONE
-hi statement guifg=lightblue gui=NONE
-hi preproc guifg=Pink2
-hi type guifg=seagreen gui=bold
-hi special guifg=yellow
-hi ErrorMsg guifg=Black guibg=Red
-hi WarningMsg guifg=Black guibg=Green
-hi Error guibg=Red
-hi Todo guifg=Black guibg=orange
-hi Cursor guibg=#60a060 guifg=#00ff00
-hi Search guibg=darkgray guifg=black gui=bold
-hi IncSearch gui=NONE guibg=steelblue
-hi LineNr guifg=darkgrey
-hi title guifg=darkgrey
-hi ShowMarksHL ctermfg=cyan ctermbg=lightblue cterm=bold guifg=yellow guibg=black gui=bold
-hi StatusLineNC gui=NONE guifg=lightblue guibg=darkblue
-hi StatusLine gui=bold guifg=cyan guibg=blue
-hi label guifg=gold2
-hi operator guifg=orange
-hi clear Visual
-hi Visual term=reverse cterm=reverse gui=reverse
-hi DiffChange guibg=darkgreen
-hi DiffText guibg=olivedrab
-hi DiffAdd guibg=slateblue
-hi DiffDelete guibg=coral
-hi Folded guibg=gray30
-hi FoldColumn guibg=gray30 guifg=white
-hi cIf0 guifg=gray
-hi diffOnly guifg=red gui=bold
+
+if s:t_Co >= 0
+ hi Normal term=NONE
+ hi ColorColumn term=reverse
+ hi Conceal term=NONE
+ hi Cursor term=reverse
+ hi CursorColumn term=NONE
+ hi CursorLine term=underline
+ hi CursorLineNr term=bold
+ hi DiffAdd term=reverse
+ hi DiffChange term=NONE
+ hi DiffDelete term=reverse
+ hi DiffText term=reverse
+ hi Directory term=NONE
+ hi EndOfBuffer term=NONE
+ hi ErrorMsg term=bold,reverse
+ hi FoldColumn term=NONE
+ hi Folded term=NONE
+ hi IncSearch term=bold,reverse,underline
+ hi LineNr term=NONE
+ hi MatchParen term=bold,underline
+ hi ModeMsg term=bold
+ hi MoreMsg term=NONE
+ hi NonText term=NONE
+ hi Pmenu term=reverse
+ hi PmenuSbar term=reverse
+ hi PmenuSel term=bold
+ hi PmenuThumb term=NONE
+ hi Question term=standout
+ hi Search term=reverse
+ hi SignColumn term=reverse
+ hi SpecialKey term=bold
+ hi SpellBad term=underline
+ hi SpellCap term=underline
+ hi SpellLocal term=underline
+ hi SpellRare term=underline
+ hi StatusLine term=bold,reverse
+ hi StatusLineNC term=bold,underline
+ hi TabLine term=bold,underline
+ hi TabLineFill term=NONE
+ hi Terminal term=NONE
+ hi TabLineSel term=bold,reverse
+ hi Title term=NONE
+ hi VertSplit term=NONE
+ hi Visual term=reverse
+ hi VisualNOS term=NONE
+ hi WarningMsg term=standout
+ hi WildMenu term=bold
+ hi CursorIM term=NONE
+ hi ToolbarLine term=reverse
+ hi ToolbarButton term=bold,reverse
+ hi CurSearch term=reverse
+ hi CursorLineFold term=underline
+ hi CursorLineSign term=underline
+ hi Comment term=bold
+ hi Constant term=NONE
+ hi Error term=bold,reverse
+ hi Identifier term=NONE
+ hi Ignore term=NONE
+ hi PreProc term=NONE
+ hi Special term=NONE
+ hi Statement term=NONE
+ hi Todo term=bold,reverse
+ hi Type term=NONE
+ hi Underlined term=underline
+ unlet s:t_Co
+ finish
+endif
+
+" Background: dark
+" Color: xterm0 #000000 16 black
+" Color: xterm1 #cd0000 160 darkred
+" Color: xterm2 #00cd00 40 darkgreen
+" Color: xterm3 #cdcd00 184 darkyellow
+" Color: xterm4 #0000ee 20 darkblue
+" Color: xterm5 #cd00cd 164 darkmagenta
+" Color: xterm6 #00cdcd 44 darkcyan
+" Color: xterm7 #e5e5e5 254 grey
+" Color: xterm8 #7f7f7f 102 darkgrey
+" Color: xterm9 #ff0000 196 red
+" Color: xterm10 #00ff00 46 green
+" Color: xterm11 #ffff00 226 yellow
+" Color: xterm12 #5c5cff 63 blue
+" Color: xterm13 #ff00ff 201 magenta
+" Color: xterm14 #00ffff 51 cyan
+" Color: xterm15 #ffffff 231 white
+" Color: rgbGrey40 #666666 59 darkgrey
+" Color: rgbDarkGrey #a9a9a9 145 grey
+" Color: rgbDarkBlue #00008b 20 darkblue
+" Color: rgbBlue #0000ff 21 darkblue
+" Color: rgbDarkCyan #008b8b 44 darkcyan
+" Color: Directory #00ffff 51 cyan
+" Color: rgbSeaGreen #2e8b57 29 darkgreen
+" Color: rgbGrey #bebebe 250 grey
+" Color: Question #00ff00 46 green
+" Color: SignColumn #a9a9a9 248 grey
+" Color: SpecialKey #00ffff 51 cyan
+" Color: StatusLineTerm #90ee90 120 darkgreen
+" Color: ToolbarLine #7f7f7f 244 darkgrey
+" Color: Underlined #80a0ff 111 blue
+" Color: Pmenu #444444 238 darkgrey
+" Color: ron303030 #303030 236 darkgrey
+" Color: ronLightBlue #add8e6 152 darkcyan
+" Color: ronPink2 #eea9b8 217 darkmagenta
+" Color: ronOrange #ffa500 214 darkyellow
+" Color: ronCursor #60a060 71 green
+" Color: ronSteelBlue #4682b4 67 blue
+" Color: ronGold2 #eec900 220 yellow
+" Color: ronDarkGreen #006400 22 darkgreen
+" Color: ronSlateBlue #6a5acd 62 blue
+" Color: ronOliveDrab #6b8e23 64 green
+" Color: ronCoral #ff7f50 209 red
+" Color: ronGray30 #4d4d4d 239 darkgrey
+" Term colors: xterm0 xterm1 xterm2 xterm3 xterm4 xterm5 xterm6 xterm7
+" Term colors: xterm8 xterm9 xterm10 xterm11 xterm12 xterm13
+" Term colors: xterm14 xterm15
+" Color: bgDiffA #5F875F 65 darkgreen
+" Color: bgDiffC #5F87AF 67 blue
+" Color: bgDiffD #AF5FAF 133 magenta
+" Color: bgDiffT #C6C6C6 251 grey
+" Color: fgDiffW #FFFFFF 231 white
+" Color: fgDiffB #000000 16 black
+" vim: et ts=2 sw=2
diff --git a/runtime/colors/shine.vim b/runtime/colors/shine.vim
index eedb9c9b25..a545b8c396 100644
--- a/runtime/colors/shine.vim
+++ b/runtime/colors/shine.vim
@@ -1,59 +1,353 @@
-" Vim color file
-" Maintainer: Yasuhiro Matsumoto <mattn@mail.goo.ne.jp>
-" Last Change: 2001 May 25
+" Name: shine
+" Description: Light colorscheme inspired by normal text editors.
+" Author: Original author is Yasuhiro Matsumoto <mattn@mail.goo.ne.jp>
+" Maintainer: Original maintainer is Yasuhiro Matsumoto <mattn@mail.goo.ne.jp>
+" Website: https://github.com/vim/colorschemes
+" License: Same as Vim
+" Last Updated: Wed May 11 22:56:44 2022
-" This look like normal text editor.
-" This color scheme uses a light background.
+" Generated by Colortemplate v2.2.0
-" First remove all existing highlighting.
set background=light
+
hi clear
-if exists("syntax_on")
- syntax reset
+let g:colors_name = 'shine'
+
+let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
+
+if (has('termguicolors') && &termguicolors) || has('gui_running')
+ let g:terminal_ansi_colors = ['#000000', '#8b0000', '#006400', '#ffff00', '#00008b', '#6a0dad', '#008b8b', '#dadada', '#767676', '#ffafaf', '#90ee90', '#ffff60', '#add8e6', '#ff00ff', '#00ffff', '#ffffff']
+endif
+hi Normal guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE
+hi Folded guifg=#00008b guibg=#dadada gui=NONE cterm=NONE
+hi CursorLine guifg=NONE guibg=#dadada gui=NONE cterm=NONE
+hi CursorColumn guifg=NONE guibg=#dadada gui=NONE cterm=NONE
+hi CursorLineNr guifg=NONE guibg=#dadada gui=NONE cterm=NONE
+hi QuickFixLine guifg=#000000 guibg=#ff8c00 gui=NONE cterm=NONE
+hi! link EndOfBuffer NonText
+hi StatusLine guifg=#ffffff guibg=#000000 gui=bold cterm=NONE
+hi StatusLineNC guifg=#ffffff guibg=#a8a8a8 gui=NONE cterm=NONE
+hi StatusLineTerm guifg=#000000 guibg=#90ee90 gui=bold cterm=NONE
+hi StatusLineTermNC guifg=#dadada guibg=#006400 gui=NONE cterm=NONE
+hi VertSplit guifg=#a8a8a8 guibg=#a8a8a8 gui=NONE cterm=NONE
+hi Pmenu guifg=#000000 guibg=#a8a8a8 gui=NONE cterm=NONE
+hi PmenuSel guifg=#000000 guibg=#ffff60 gui=NONE cterm=NONE
+hi PmenuSbar guifg=#ffffff guibg=#ffffff gui=NONE cterm=NONE
+hi PmenuThumb guifg=#767676 guibg=#767676 gui=NONE cterm=NONE
+hi TabLine guifg=#000000 guibg=#dadada gui=underline cterm=underline
+hi TabLineFill guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse
+hi TabLineSel guifg=#000000 guibg=#ffffff gui=bold cterm=NONE
+hi ToolbarLine guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi ToolbarButton guifg=NONE guibg=#a8a8a8 gui=bold cterm=NONE
+hi NonText guifg=#add8e6 guibg=#ffffff gui=NONE cterm=NONE
+hi SpecialKey guifg=#add8e6 guibg=NONE gui=NONE cterm=NONE
+hi Visual guifg=#000000 guibg=#a8a8a8 gui=NONE cterm=NONE
+hi VisualNOS guifg=NONE guibg=NONE gui=bold,underline ctermfg=NONE ctermbg=NONE cterm=underline
+hi LineNr guifg=#767676 guibg=NONE gui=NONE cterm=NONE
+hi FoldColumn guifg=#767676 guibg=NONE gui=NONE cterm=NONE
+hi SignColumn guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi Underlined guifg=#6a0dad guibg=NONE gui=underline cterm=underline
+hi Error guifg=#ff0000 guibg=#ffffff gui=reverse cterm=reverse
+hi! link ErrorMsg Error
+hi WarningMsg guifg=#6a0dad guibg=#ffffff gui=NONE cterm=NONE
+hi MoreMsg guifg=#006400 guibg=#ffffff gui=NONE cterm=NONE
+hi ModeMsg guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE
+hi Question guifg=#a07070 guibg=NONE gui=NONE cterm=NONE
+hi Todo guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi MatchParen guifg=#ffffff guibg=#ffafaf gui=NONE cterm=NONE
+hi Search guifg=#ffffff guibg=#6a0dad gui=NONE cterm=NONE
+hi IncSearch guifg=#008b8b guibg=#ffff00 gui=reverse cterm=reverse
+hi WildMenu guifg=#000000 guibg=#ffff00 gui=bold cterm=NONE
+hi ColorColumn guifg=#000000 guibg=#ffafaf gui=NONE cterm=NONE
+hi Cursor guifg=#ffffff guibg=#000000 gui=NONE cterm=NONE
+hi lCursor guifg=#000000 guibg=#a07070 gui=NONE cterm=NONE
+hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
+hi SpellCap guifg=#2e8b57 guibg=NONE guisp=#2e8b57 gui=undercurl cterm=underline
+hi SpellLocal guifg=#ff00ff guibg=NONE guisp=#ff00ff gui=undercurl cterm=underline
+hi SpellRare guifg=#00008b guibg=NONE guisp=#00008b gui=undercurl cterm=underline
+hi Identifier guifg=#008b8b guibg=NONE gui=NONE cterm=NONE
+hi Statement guifg=#006400 guibg=NONE gui=bold cterm=NONE
+hi Constant guifg=#a07070 guibg=NONE gui=NONE cterm=NONE
+hi Number guifg=#a07070 guibg=NONE gui=bold cterm=NONE
+hi Float guifg=#a07070 guibg=NONE gui=bold cterm=NONE
+hi PreProc guifg=#6a0dad guibg=NONE gui=NONE cterm=NONE
+hi Special guifg=#ff8c00 guibg=NONE gui=NONE cterm=NONE
+hi SpecialChar guifg=#00008b guibg=NONE gui=NONE cterm=NONE
+hi! link Tag Special
+hi Type guifg=#2e8b57 guibg=NONE gui=bold cterm=NONE
+hi! link Operator Statement
+hi Directory guifg=#008b8b guibg=NONE gui=bold cterm=NONE
+hi Comment guifg=#a8a8a8 guibg=NONE gui=bold cterm=NONE
+hi StorageClass guifg=#ff0000 guibg=NONE gui=bold cterm=NONE
+hi Conceal guifg=#dadada guibg=#767676 gui=NONE cterm=NONE
+hi Ignore guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi Title guifg=#006400 guibg=NONE gui=bold cterm=NONE
+hi! link Terminal Normal
+hi! link LineNrAbove LineNr
+hi! link LineNrBelow LineNr
+hi! link CurSearch Search
+hi! link CursorLineFold CursorLine
+hi! link CursorLineSign CursorLine
+hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
+hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
+hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
+hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
+
+if s:t_Co >= 256
+ hi Normal ctermfg=16 ctermbg=231 cterm=NONE
+ hi Folded ctermfg=18 ctermbg=253 cterm=NONE
+ hi CursorLine ctermfg=NONE ctermbg=253 cterm=NONE
+ hi CursorColumn ctermfg=NONE ctermbg=253 cterm=NONE
+ hi CursorLineNr ctermfg=NONE ctermbg=253 cterm=NONE
+ hi QuickFixLine ctermfg=16 ctermbg=208 cterm=NONE
+ hi! link EndOfBuffer NonText
+ hi StatusLine ctermfg=231 ctermbg=16 cterm=NONE
+ hi StatusLineNC ctermfg=231 ctermbg=248 cterm=NONE
+ hi StatusLineTerm ctermfg=16 ctermbg=120 cterm=NONE
+ hi StatusLineTermNC ctermfg=253 ctermbg=22 cterm=NONE
+ hi VertSplit ctermfg=248 ctermbg=248 cterm=NONE
+ hi Pmenu ctermfg=16 ctermbg=248 cterm=NONE
+ hi PmenuSel ctermfg=16 ctermbg=228 cterm=NONE
+ hi PmenuSbar ctermfg=231 ctermbg=231 cterm=NONE
+ hi PmenuThumb ctermfg=243 ctermbg=243 cterm=NONE
+ hi TabLine ctermfg=16 ctermbg=253 cterm=underline
+ hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=reverse
+ hi TabLineSel ctermfg=16 ctermbg=231 cterm=NONE
+ hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi ToolbarButton ctermfg=NONE ctermbg=248 cterm=NONE
+ hi NonText ctermfg=153 ctermbg=231 cterm=NONE
+ hi SpecialKey ctermfg=153 ctermbg=NONE cterm=NONE
+ hi Visual ctermfg=16 ctermbg=248 cterm=NONE
+ hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=underline
+ hi LineNr ctermfg=243 ctermbg=NONE cterm=NONE
+ hi FoldColumn ctermfg=243 ctermbg=NONE cterm=NONE
+ hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi Underlined ctermfg=55 ctermbg=NONE cterm=underline
+ hi Error ctermfg=196 ctermbg=231 cterm=reverse
+ hi! link ErrorMsg Error
+ hi WarningMsg ctermfg=55 ctermbg=231 cterm=NONE
+ hi MoreMsg ctermfg=22 ctermbg=231 cterm=NONE
+ hi ModeMsg ctermfg=16 ctermbg=231 cterm=NONE
+ hi Question ctermfg=95 ctermbg=NONE cterm=NONE
+ hi Todo ctermfg=16 ctermbg=226 cterm=NONE
+ hi MatchParen ctermfg=231 ctermbg=217 cterm=NONE
+ hi Search ctermfg=231 ctermbg=55 cterm=NONE
+ hi IncSearch ctermfg=30 ctermbg=226 cterm=reverse
+ hi WildMenu ctermfg=16 ctermbg=226 cterm=NONE
+ hi ColorColumn ctermfg=16 ctermbg=217 cterm=NONE
+ hi Cursor ctermfg=231 ctermbg=16 cterm=NONE
+ hi lCursor ctermfg=16 ctermbg=95 cterm=NONE
+ hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
+ hi SpellCap ctermfg=29 ctermbg=NONE cterm=underline
+ hi SpellLocal ctermfg=201 ctermbg=NONE cterm=underline
+ hi SpellRare ctermfg=18 ctermbg=NONE cterm=underline
+ hi Identifier ctermfg=30 ctermbg=NONE cterm=NONE
+ hi Statement ctermfg=22 ctermbg=NONE cterm=NONE
+ hi Constant ctermfg=95 ctermbg=NONE cterm=NONE
+ hi Number ctermfg=95 ctermbg=NONE cterm=NONE
+ hi Float ctermfg=95 ctermbg=NONE cterm=NONE
+ hi PreProc ctermfg=55 ctermbg=NONE cterm=NONE
+ hi Special ctermfg=208 ctermbg=NONE cterm=NONE
+ hi SpecialChar ctermfg=18 ctermbg=NONE cterm=NONE
+ hi! link Tag Special
+ hi Type ctermfg=29 ctermbg=NONE cterm=NONE
+ hi! link Operator Statement
+ hi Directory ctermfg=30 ctermbg=NONE cterm=NONE
+ hi Comment ctermfg=248 ctermbg=NONE cterm=NONE
+ hi StorageClass ctermfg=196 ctermbg=NONE cterm=NONE
+ hi Conceal ctermfg=253 ctermbg=243 cterm=NONE
+ hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi Title ctermfg=22 ctermbg=NONE cterm=NONE
+ hi! link Terminal Normal
+ hi! link LineNrAbove LineNr
+ hi! link LineNrBelow LineNr
+ hi! link CurSearch Search
+ hi! link CursorLineFold CursorLine
+ hi! link CursorLineSign CursorLine
+ hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
+ hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
+ hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
+ hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
+ unlet s:t_Co
+ finish
+endif
+
+if s:t_Co >= 16
+ hi Normal ctermfg=black ctermbg=white cterm=NONE
+ hi Folded ctermfg=darkblue ctermbg=NONE cterm=NONE
+ hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
+ hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=underline
+ hi CursorLineNr ctermfg=NONE ctermbg=NONE cterm=underline
+ hi QuickFixLine ctermfg=black ctermbg=darkyellow cterm=NONE
+ hi! link EndOfBuffer NonText
+ hi StatusLine ctermfg=white ctermbg=black cterm=NONE
+ hi StatusLineNC ctermfg=white ctermbg=darkgrey cterm=NONE
+ hi StatusLineTerm ctermfg=black ctermbg=green cterm=NONE
+ hi StatusLineTermNC ctermfg=grey ctermbg=darkgreen cterm=NONE
+ hi VertSplit ctermfg=darkgrey ctermbg=darkgrey cterm=NONE
+ hi Pmenu ctermfg=black ctermbg=darkgrey cterm=NONE
+ hi PmenuSel ctermfg=black ctermbg=yellow cterm=NONE
+ hi PmenuSbar ctermfg=white ctermbg=white cterm=NONE
+ hi PmenuThumb ctermfg=darkgrey ctermbg=darkgrey cterm=NONE
+ hi TabLine ctermfg=black ctermbg=grey cterm=underline
+ hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=reverse
+ hi TabLineSel ctermfg=black ctermbg=white cterm=NONE
+ hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi ToolbarButton ctermfg=NONE ctermbg=darkgrey cterm=NONE
+ hi NonText ctermfg=blue ctermbg=white cterm=NONE
+ hi SpecialKey ctermfg=blue ctermbg=NONE cterm=NONE
+ hi Visual ctermfg=black ctermbg=darkgrey cterm=NONE
+ hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=underline
+ hi LineNr ctermfg=darkgrey ctermbg=NONE cterm=NONE
+ hi FoldColumn ctermfg=darkgrey ctermbg=NONE cterm=NONE
+ hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi Underlined ctermfg=darkmagenta ctermbg=NONE cterm=underline
+ hi Error ctermfg=red ctermbg=white cterm=reverse
+ hi! link ErrorMsg Error
+ hi WarningMsg ctermfg=darkmagenta ctermbg=white cterm=NONE
+ hi MoreMsg ctermfg=darkgreen ctermbg=white cterm=NONE
+ hi ModeMsg ctermfg=black ctermbg=white cterm=NONE
+ hi Question ctermfg=darkred ctermbg=NONE cterm=NONE
+ hi Todo ctermfg=black ctermbg=yellow cterm=NONE
+ hi MatchParen ctermfg=white ctermbg=red cterm=NONE
+ hi Search ctermfg=white ctermbg=darkmagenta cterm=NONE
+ hi IncSearch ctermfg=darkcyan ctermbg=yellow cterm=reverse
+ hi WildMenu ctermfg=black ctermbg=yellow cterm=NONE
+ hi ColorColumn ctermfg=black ctermbg=red cterm=NONE
+ hi Cursor ctermfg=white ctermbg=black cterm=NONE
+ hi lCursor ctermfg=black ctermbg=darkred cterm=NONE
+ hi SpellBad ctermfg=red ctermbg=NONE cterm=underline
+ hi SpellCap ctermfg=darkgreen ctermbg=NONE cterm=underline
+ hi SpellLocal ctermfg=magenta ctermbg=NONE cterm=underline
+ hi SpellRare ctermfg=darkblue ctermbg=NONE cterm=underline
+ hi Identifier ctermfg=darkcyan ctermbg=NONE cterm=NONE
+ hi Statement ctermfg=darkgreen ctermbg=NONE cterm=NONE
+ hi Constant ctermfg=darkred ctermbg=NONE cterm=NONE
+ hi Number ctermfg=darkred ctermbg=NONE cterm=NONE
+ hi Float ctermfg=darkred ctermbg=NONE cterm=NONE
+ hi PreProc ctermfg=darkmagenta ctermbg=NONE cterm=NONE
+ hi Special ctermfg=darkyellow ctermbg=NONE cterm=NONE
+ hi SpecialChar ctermfg=darkblue ctermbg=NONE cterm=NONE
+ hi! link Tag Special
+ hi Type ctermfg=darkgreen ctermbg=NONE cterm=NONE
+ hi! link Operator Statement
+ hi Directory ctermfg=darkcyan ctermbg=NONE cterm=NONE
+ hi Comment ctermfg=darkgrey ctermbg=NONE cterm=NONE
+ hi StorageClass ctermfg=red ctermbg=NONE cterm=NONE
+ hi Conceal ctermfg=grey ctermbg=darkgrey cterm=NONE
+ hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi Title ctermfg=darkgreen ctermbg=NONE cterm=NONE
+ hi! link Terminal Normal
+ hi! link LineNrAbove LineNr
+ hi! link LineNrBelow LineNr
+ hi! link CurSearch Search
+ hi! link CursorLineFold CursorLine
+ hi! link CursorLineSign CursorLine
+ hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
+ hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
+ hi DiffText ctermfg=black ctermbg=grey cterm=NONE
+ hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
+ unlet s:t_Co
+ finish
endif
-let colors_name = "shine"
-
-hi Normal ctermbg=White ctermfg=Black guifg=Black guibg=White
-
-" Groups used in the 'highlight' and 'guicursor' options default value.
-hi ErrorMsg term=standout ctermbg=DarkRed ctermfg=White guibg=Red guifg=White
-hi IncSearch term=reverse cterm=reverse gui=reverse
-hi ModeMsg term=bold cterm=bold gui=bold
-hi StatusLine term=reverse,bold cterm=reverse,bold gui=reverse,bold
-hi StatusLineNC term=reverse cterm=reverse gui=reverse
-hi VertSplit term=reverse cterm=reverse gui=reverse
-hi Visual term=reverse cterm=reverse gui=reverse guifg=Grey guibg=fg
-hi DiffText term=reverse cterm=bold ctermbg=Red gui=bold guibg=Red
-hi Cursor ctermbg=Green guibg=Green guifg=Black
-hi lCursor guibg=Cyan guifg=Black
-hi Directory term=bold ctermfg=LightRed guifg=Red
-hi LineNr term=underline ctermfg=Yellow guifg=Yellow
-hi MoreMsg term=bold ctermfg=LightGreen gui=bold guifg=SeaGreen
-hi NonText term=bold ctermfg=LightBlue gui=bold guifg=LightBlue guibg=grey90
-hi Question term=standout ctermfg=LightGreen gui=bold guifg=Green
-hi Search term=reverse ctermbg=Yellow ctermfg=Black guibg=Yellow guifg=Black
-hi SpecialKey term=bold ctermfg=LightBlue guifg=Blue
-hi Title term=bold ctermfg=LightMagenta gui=bold guifg=Magenta
-hi WarningMsg term=standout ctermfg=LightRed guifg=Red
-hi WildMenu term=standout ctermbg=Yellow ctermfg=Black guibg=Yellow guifg=Black
-hi Folded term=standout ctermbg=LightGrey ctermfg=DarkBlue guibg=LightGrey guifg=DarkBlue
-hi FoldColumn term=standout ctermbg=LightGrey ctermfg=DarkBlue guibg=Grey guifg=DarkBlue
-hi DiffAdd term=bold ctermbg=DarkBlue guibg=DarkBlue
-hi DiffChange term=bold ctermbg=DarkMagenta guibg=DarkMagenta
-hi DiffDelete term=bold ctermfg=Blue ctermbg=DarkCyan gui=bold guifg=Blue guibg=DarkCyan
-
-hi Comment ctermfg=DarkGrey ctermbg=White guifg=DarkGrey gui=bold
-hi SpecialChar ctermfg=DarkGrey ctermbg=White guifg=DarkGrey gui=bold
-hi StorageClass ctermfg=Red ctermbg=White guifg=Red gui=bold
-hi Number ctermfg=LightRed ctermbg=White guifg=LightRed gui=bold
-
-" Groups for syntax highlighting
-hi Constant term=underline ctermfg=Magenta guifg=#a07070 guibg=grey80
-hi Special term=bold ctermfg=LightRed guifg=DarkOrange guibg=grey80
-if &t_Co > 8
- hi Statement term=bold cterm=bold ctermfg=DarkGreen ctermbg=White guifg=#ffff60 gui=bold
+if s:t_Co >= 0
+ hi Normal term=NONE
+ hi ColorColumn term=reverse
+ hi Conceal term=NONE
+ hi Cursor term=reverse
+ hi CursorColumn term=NONE
+ hi CursorLine term=underline
+ hi CursorLineNr term=bold
+ hi DiffAdd term=reverse
+ hi DiffChange term=NONE
+ hi DiffDelete term=reverse
+ hi DiffText term=reverse
+ hi Directory term=NONE
+ hi EndOfBuffer term=NONE
+ hi ErrorMsg term=bold,reverse
+ hi FoldColumn term=NONE
+ hi Folded term=NONE
+ hi IncSearch term=bold,reverse,underline
+ hi LineNr term=NONE
+ hi MatchParen term=bold,underline
+ hi ModeMsg term=bold
+ hi MoreMsg term=NONE
+ hi NonText term=NONE
+ hi Pmenu term=reverse
+ hi PmenuSbar term=reverse
+ hi PmenuSel term=bold
+ hi PmenuThumb term=NONE
+ hi Question term=standout
+ hi Search term=reverse
+ hi SignColumn term=reverse
+ hi SpecialKey term=bold
+ hi SpellBad term=underline
+ hi SpellCap term=underline
+ hi SpellLocal term=underline
+ hi SpellRare term=underline
+ hi StatusLine term=bold,reverse
+ hi StatusLineNC term=bold,underline
+ hi TabLine term=bold,underline
+ hi TabLineFill term=NONE
+ hi Terminal term=NONE
+ hi TabLineSel term=bold,reverse
+ hi Title term=NONE
+ hi VertSplit term=NONE
+ hi Visual term=reverse
+ hi VisualNOS term=NONE
+ hi WarningMsg term=standout
+ hi WildMenu term=bold
+ hi CursorIM term=NONE
+ hi ToolbarLine term=reverse
+ hi ToolbarButton term=bold,reverse
+ hi CurSearch term=reverse
+ hi CursorLineFold term=underline
+ hi CursorLineSign term=underline
+ hi Comment term=bold
+ hi Constant term=NONE
+ hi Error term=bold,reverse
+ hi Identifier term=NONE
+ hi Ignore term=NONE
+ hi PreProc term=NONE
+ hi Special term=NONE
+ hi Statement term=NONE
+ hi Todo term=bold,reverse
+ hi Type term=NONE
+ hi Underlined term=underline
+ unlet s:t_Co
+ finish
endif
-hi Ignore ctermfg=LightGrey guifg=grey90
-" vim: sw=2
+" Background: light
+" Color: Black #000000 16 black
+" Color: DarkGrey #767676 243 darkgrey
+" Color: MediumGrey #A8A8A8 248 darkgrey
+" Color: LightGrey #DADADA 253 grey
+" Color: White #ffffff 231 white
+" Color: Cyan #00ffff 51 cyan
+" Color: Magenta #ff00ff 201 magenta
+" Color: Red #ff0000 196 red
+" Color: Yellow #ffff00 226 yellow
+" Color: SeaGreen #2e8b57 29 darkgreen
+" Color: DarkBlue #00008b 18 darkblue
+" Color: DarkCyan #008b8b 30 darkcyan
+" Color: DarkGreen #006400 22 darkgreen
+" Color: DarkOrange #ff8c00 208 darkyellow
+" Color: DarkRed #8b0000 88 darkred
+" Color: LightBlue #add8e6 153 blue
+" Color: LightGreen #90ee90 120 green
+" Color: LightMagenta#ff83fa 213 magenta
+" Color: LightRed #ffafaf 217 red
+" Color: MutedRed #a07070 95 darkred
+" Color: MutedYellow #ffff60 228 yellow
+" Color: Purple #6a0dad 55 darkmagenta
+" Term colors: Black DarkRed DarkGreen Yellow DarkBlue Purple DarkCyan LightGrey
+" Term colors: DarkGrey LightRed LightGreen MutedYellow LightBlue Magenta Cyan White
+" Color: bgDiffA #5F875F 65 darkgreen
+" Color: bgDiffC #5F87AF 67 blue
+" Color: bgDiffD #AF5FAF 133 magenta
+" Color: bgDiffT #C6C6C6 251 grey
+" Color: fgDiffW #FFFFFF 231 white
+" Color: fgDiffB #000000 16 black
+" vim: et ts=2 sw=2
diff --git a/runtime/colors/slate.vim b/runtime/colors/slate.vim
index ffc13b822a..9741d92a3a 100644
--- a/runtime/colors/slate.vim
+++ b/runtime/colors/slate.vim
@@ -1,55 +1,350 @@
-"%% SiSU Vim color file
-" Slate Maintainer: Ralph Amissah <ralph@amissah.com>
-" (originally looked at desert Hans Fugal <hans@fugal.net> http://hans.fugal.net/vim/colors/desert.vim (2003/05/06)
-:set background=dark
-:highlight clear
-if version > 580
- hi clear
- if exists("syntax_on")
- syntax reset
- endif
+" Name: slate
+" Description: Remake of slate
+" Author: Original maintainer Ralph Amissah <ralph@amissah.com>
+" Maintainer: Original maintainer Ralph Amissah <ralph@amissah.com>
+" Website: https://github.com/vim/colorschemes
+" License: Same as Vim
+" Last Updated: Wed May 11 22:56:45 2022
+
+" Generated by Colortemplate v2.2.0
+
+set background=dark
+
+hi clear
+let g:colors_name = 'slate'
+
+let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
+
+if (has('termguicolors') && &termguicolors) || has('gui_running')
+ let g:terminal_ansi_colors = ['#000000', '#ff0000', '#5f8700', '#ffff00', '#87d7ff', '#d7d787', '#ffd7af', '#666666', '#333333', '#ffafaf', '#00875f', '#ffd700', '#5f87d7', '#afaf87', '#ff8787', '#ffffff']
endif
-let colors_name = "slate"
-:hi Normal guifg=White guibg=grey15
-:hi Cursor guibg=khaki guifg=slategrey
-:hi VertSplit guibg=#c2bfa5 guifg=grey40 gui=none cterm=reverse
-:hi Folded guibg=black guifg=grey40 ctermfg=grey ctermbg=darkgrey
-:hi FoldColumn guibg=black guifg=grey20 ctermfg=4 ctermbg=7
-:hi IncSearch guifg=green guibg=black cterm=none ctermfg=yellow ctermbg=green
-:hi ModeMsg guifg=goldenrod cterm=none ctermfg=brown
-:hi MoreMsg guifg=SeaGreen ctermfg=darkgreen
-:hi NonText guifg=RoyalBlue guibg=grey15 cterm=bold ctermfg=blue
-:hi Question guifg=springgreen ctermfg=green
-:hi Search guibg=peru guifg=wheat cterm=none ctermfg=grey ctermbg=blue
-:hi SpecialKey guifg=yellowgreen ctermfg=darkgreen
-:hi StatusLine guibg=#c2bfa5 guifg=black gui=none cterm=bold,reverse
-:hi StatusLineNC guibg=#c2bfa5 guifg=grey40 gui=none cterm=reverse
-:hi Title guifg=gold gui=bold cterm=bold ctermfg=yellow
-:hi Statement guifg=CornflowerBlue ctermfg=lightblue
-:hi Visual gui=none guifg=khaki guibg=olivedrab cterm=reverse
-:hi WarningMsg guifg=salmon ctermfg=1
-:hi String guifg=SkyBlue ctermfg=darkcyan
-:hi Comment term=bold ctermfg=11 guifg=grey40
-:hi Constant guifg=#ffa0a0 ctermfg=brown
-:hi Special guifg=darkkhaki ctermfg=brown
-:hi Identifier guifg=salmon ctermfg=red
-:hi Include guifg=red ctermfg=red
-:hi PreProc guifg=red guibg=white ctermfg=red
-:hi Operator guifg=Red ctermfg=Red
-:hi Define guifg=gold gui=bold ctermfg=yellow
-:hi Type guifg=CornflowerBlue ctermfg=2
-:hi Function guifg=navajowhite ctermfg=brown
-:hi Structure guifg=green ctermfg=green
-:hi LineNr guifg=grey50 ctermfg=3
-:hi Ignore guifg=grey40 cterm=bold ctermfg=7
-:hi Todo guifg=orangered guibg=yellow2
-:hi Directory ctermfg=darkcyan
-:hi ErrorMsg cterm=bold guifg=White guibg=Red cterm=bold ctermfg=7 ctermbg=1
-:hi WildMenu ctermfg=0 ctermbg=3
-:hi DiffAdd ctermbg=4
-:hi DiffChange ctermbg=5
-:hi DiffDelete cterm=bold ctermfg=4 ctermbg=6
-:hi DiffText cterm=bold ctermbg=1
-:hi Underlined cterm=underline ctermfg=5
-:hi Error guifg=White guibg=Red cterm=bold ctermfg=7 ctermbg=1
-:hi SpellErrors guifg=White guibg=Red cterm=bold ctermfg=7 ctermbg=1
+hi Normal guifg=#ffffff guibg=#262626 gui=NONE cterm=NONE
+hi EndOfBuffer guifg=#5f87d7 guibg=NONE gui=NONE cterm=NONE
+hi StatusLine guifg=#000000 guibg=#afaf87 gui=NONE cterm=NONE
+hi StatusLineNC guifg=#666666 guibg=#afaf87 gui=NONE cterm=NONE
+hi StatusLineTerm guifg=#000000 guibg=#afaf87 gui=NONE cterm=NONE
+hi StatusLineTermNC guifg=#666666 guibg=#afaf87 gui=NONE cterm=NONE
+hi VertSplit guifg=#666666 guibg=#afaf87 gui=NONE cterm=NONE
+hi PmenuSel guifg=#262626 guibg=#d7d787 gui=NONE cterm=NONE
+hi Pmenu guifg=NONE guibg=#4a4a4a gui=NONE cterm=NONE
+hi PmenuSbar guifg=NONE guibg=#262626 gui=NONE cterm=NONE
+hi PmenuThumb guifg=NONE guibg=#ffd700 gui=NONE cterm=NONE
+hi TabLineSel guifg=#000000 guibg=#afaf87 gui=NONE cterm=NONE
+hi TabLine guifg=#666666 guibg=#333333 gui=NONE cterm=NONE
+hi TabLineFill guifg=#ff8787 guibg=#333333 gui=NONE cterm=NONE
+hi ToolbarLine guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi ToolbarButton guifg=#262626 guibg=#d7d787 gui=NONE cterm=NONE
+hi NonText guifg=#5f87d7 guibg=NONE gui=NONE cterm=NONE
+hi SpecialKey guifg=#00875f guibg=NONE gui=NONE cterm=NONE
+hi QuickFixLine guifg=#000000 guibg=#5f87d7 gui=NONE cterm=NONE
+hi Folded guifg=#666666 guibg=#000000 gui=NONE cterm=NONE
+hi FoldColumn guifg=#5f87d7 guibg=#000000 gui=NONE cterm=NONE
+hi CursorLine guifg=NONE guibg=#333333 gui=NONE cterm=NONE
+hi CursorColumn guifg=NONE guibg=#333333 gui=NONE cterm=NONE
+hi CursorLineNr guifg=NONE guibg=#333333 gui=NONE cterm=NONE
+hi Visual guifg=#d7d787 guibg=#5f8700 gui=NONE cterm=NONE
+hi SignColumn guifg=NONE guibg=#262626 gui=NONE cterm=NONE
+hi VisualNOS guifg=#d7d787 guibg=#5f8700 gui=NONE cterm=NONE
+hi LineNr guifg=#666666 guibg=NONE gui=NONE cterm=NONE
+hi Underlined guifg=#5f87d7 guibg=NONE gui=underline cterm=underline
+hi Error guifg=#ff0000 guibg=#ffffff gui=reverse cterm=reverse
+hi ErrorMsg guifg=#ff0000 guibg=#000000 gui=reverse cterm=reverse
+hi ModeMsg guifg=#262626 guibg=#ffd700 gui=NONE cterm=NONE
+hi WarningMsg guifg=#ff8787 guibg=NONE gui=NONE cterm=NONE
+hi MoreMsg guifg=#00875f guibg=NONE gui=NONE cterm=NONE
+hi Question guifg=#ffd700 guibg=NONE gui=NONE cterm=NONE
+hi Todo guifg=#ff0000 guibg=#ffff00 gui=NONE cterm=NONE
+hi MatchParen guifg=#000000 guibg=#ffd700 gui=NONE cterm=NONE
+hi Search guifg=#000000 guibg=#d7875f gui=NONE cterm=NONE
+hi IncSearch guifg=#000000 guibg=#00ff00 gui=NONE cterm=NONE
+hi WildMenu guifg=#262626 guibg=#d7d787 gui=NONE cterm=NONE
+hi ColorColumn guifg=NONE guibg=#000000 gui=NONE cterm=NONE
+hi Cursor guifg=#333333 guibg=#d7d787 gui=NONE cterm=NONE
+hi lCursor guifg=#262626 guibg=#ffafaf gui=NONE cterm=NONE
+hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
+hi SpellCap guifg=#ffff00 guibg=NONE guisp=#ffff00 gui=undercurl cterm=underline
+hi SpellLocal guifg=#ffafaf guibg=NONE guisp=#ffafaf gui=undercurl cterm=underline
+hi SpellRare guifg=#ffd7af guibg=NONE guisp=#ffd7af gui=undercurl cterm=underline
+hi Comment guifg=#666666 guibg=NONE gui=NONE cterm=NONE
+hi String guifg=#87d7ff guibg=NONE gui=NONE cterm=NONE
+hi Identifier guifg=#ff8787 guibg=NONE gui=NONE cterm=NONE
+hi Function guifg=#ffd7af guibg=NONE gui=NONE cterm=NONE
+hi Special guifg=#d7d787 guibg=NONE gui=NONE cterm=NONE
+hi Statement guifg=#5f87d7 guibg=NONE gui=bold cterm=NONE
+hi Constant guifg=#ffafaf guibg=NONE gui=NONE cterm=NONE
+hi PreProc guifg=#d7875f guibg=NONE gui=NONE cterm=NONE
+hi Type guifg=#5f87d7 guibg=NONE gui=bold cterm=NONE
+hi Operator guifg=#d7875f guibg=NONE gui=NONE cterm=NONE
+hi Define guifg=#ffd700 guibg=NONE gui=bold cterm=NONE
+hi Structure guifg=#00ff00 guibg=NONE gui=NONE cterm=NONE
+hi Directory guifg=#00875f guibg=NONE gui=bold cterm=NONE
+hi Conceal guifg=#666666 guibg=NONE gui=NONE cterm=NONE
+hi Ignore guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi Title guifg=#ffd700 guibg=NONE gui=bold cterm=NONE
+hi! link Terminal Normal
+hi! link LineNrAbove LineNr
+hi! link LineNrBelow LineNr
+hi! link CurSearch Search
+hi! link CursorLineFold CursorLine
+hi! link CursorLineSign CursorLine
+hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
+hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
+hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
+hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
+
+if s:t_Co >= 256
+ hi Normal ctermfg=231 ctermbg=235 cterm=NONE
+ hi EndOfBuffer ctermfg=68 ctermbg=NONE cterm=NONE
+ hi StatusLine ctermfg=16 ctermbg=144 cterm=NONE
+ hi StatusLineNC ctermfg=241 ctermbg=144 cterm=NONE
+ hi StatusLineTerm ctermfg=16 ctermbg=144 cterm=NONE
+ hi StatusLineTermNC ctermfg=241 ctermbg=144 cterm=NONE
+ hi VertSplit ctermfg=241 ctermbg=144 cterm=NONE
+ hi PmenuSel ctermfg=235 ctermbg=186 cterm=NONE
+ hi Pmenu ctermfg=NONE ctermbg=239 cterm=NONE
+ hi PmenuSbar ctermfg=NONE ctermbg=235 cterm=NONE
+ hi PmenuThumb ctermfg=NONE ctermbg=220 cterm=NONE
+ hi TabLineSel ctermfg=16 ctermbg=144 cterm=NONE
+ hi TabLine ctermfg=241 ctermbg=236 cterm=NONE
+ hi TabLineFill ctermfg=210 ctermbg=236 cterm=NONE
+ hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi ToolbarButton ctermfg=235 ctermbg=186 cterm=NONE
+ hi NonText ctermfg=68 ctermbg=NONE cterm=NONE
+ hi SpecialKey ctermfg=29 ctermbg=NONE cterm=NONE
+ hi QuickFixLine ctermfg=16 ctermbg=68 cterm=NONE
+ hi Folded ctermfg=241 ctermbg=16 cterm=NONE
+ hi FoldColumn ctermfg=68 ctermbg=16 cterm=NONE
+ hi CursorLine ctermfg=NONE ctermbg=236 cterm=NONE
+ hi CursorColumn ctermfg=NONE ctermbg=236 cterm=NONE
+ hi CursorLineNr ctermfg=NONE ctermbg=236 cterm=NONE
+ hi Visual ctermfg=186 ctermbg=64 cterm=NONE
+ hi SignColumn ctermfg=NONE ctermbg=235 cterm=NONE
+ hi VisualNOS ctermfg=186 ctermbg=64 cterm=NONE
+ hi LineNr ctermfg=241 ctermbg=NONE cterm=NONE
+ hi Underlined ctermfg=68 ctermbg=NONE cterm=underline
+ hi Error ctermfg=196 ctermbg=231 cterm=reverse
+ hi ErrorMsg ctermfg=196 ctermbg=16 cterm=reverse
+ hi ModeMsg ctermfg=235 ctermbg=220 cterm=NONE
+ hi WarningMsg ctermfg=210 ctermbg=NONE cterm=NONE
+ hi MoreMsg ctermfg=29 ctermbg=NONE cterm=NONE
+ hi Question ctermfg=220 ctermbg=NONE cterm=NONE
+ hi Todo ctermfg=196 ctermbg=226 cterm=NONE
+ hi MatchParen ctermfg=16 ctermbg=220 cterm=NONE
+ hi Search ctermfg=16 ctermbg=173 cterm=NONE
+ hi IncSearch ctermfg=16 ctermbg=46 cterm=NONE
+ hi WildMenu ctermfg=235 ctermbg=186 cterm=NONE
+ hi ColorColumn ctermfg=NONE ctermbg=16 cterm=NONE
+ hi Cursor ctermfg=236 ctermbg=186 cterm=NONE
+ hi lCursor ctermfg=235 ctermbg=217 cterm=NONE
+ hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
+ hi SpellCap ctermfg=226 ctermbg=NONE cterm=underline
+ hi SpellLocal ctermfg=217 ctermbg=NONE cterm=underline
+ hi SpellRare ctermfg=223 ctermbg=NONE cterm=underline
+ hi Comment ctermfg=241 ctermbg=NONE cterm=NONE
+ hi String ctermfg=117 ctermbg=NONE cterm=NONE
+ hi Identifier ctermfg=210 ctermbg=NONE cterm=NONE
+ hi Function ctermfg=223 ctermbg=NONE cterm=NONE
+ hi Special ctermfg=186 ctermbg=NONE cterm=NONE
+ hi Statement ctermfg=68 ctermbg=NONE cterm=NONE
+ hi Constant ctermfg=217 ctermbg=NONE cterm=NONE
+ hi PreProc ctermfg=173 ctermbg=NONE cterm=NONE
+ hi Type ctermfg=68 ctermbg=NONE cterm=NONE
+ hi Operator ctermfg=173 ctermbg=NONE cterm=NONE
+ hi Define ctermfg=220 ctermbg=NONE cterm=NONE
+ hi Structure ctermfg=46 ctermbg=NONE cterm=NONE
+ hi Directory ctermfg=29 ctermbg=NONE cterm=NONE
+ hi Conceal ctermfg=241 ctermbg=NONE cterm=NONE
+ hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi Title ctermfg=220 ctermbg=NONE cterm=NONE
+ hi! link Terminal Normal
+ hi! link LineNrAbove LineNr
+ hi! link LineNrBelow LineNr
+ hi! link CurSearch Search
+ hi! link CursorLineFold CursorLine
+ hi! link CursorLineSign CursorLine
+ hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
+ hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
+ hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
+ hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
+ unlet s:t_Co
+ finish
+endif
+
+if s:t_Co >= 16
+ hi Normal ctermfg=white ctermbg=black cterm=NONE
+ hi EndOfBuffer ctermfg=blue ctermbg=NONE cterm=NONE
+ hi StatusLine ctermfg=black ctermbg=grey cterm=NONE
+ hi StatusLineNC ctermfg=darkgrey ctermbg=grey cterm=NONE
+ hi StatusLineTerm ctermfg=black ctermbg=grey cterm=NONE
+ hi StatusLineTermNC ctermfg=darkgrey ctermbg=grey cterm=NONE
+ hi VertSplit ctermfg=darkgrey ctermbg=grey cterm=NONE
+ hi PmenuSel ctermfg=black ctermbg=darkyellow cterm=NONE
+ hi Pmenu ctermfg=NONE ctermbg=darkgrey cterm=NONE
+ hi PmenuSbar ctermfg=NONE ctermbg=black cterm=NONE
+ hi PmenuThumb ctermfg=NONE ctermbg=yellow cterm=NONE
+ hi TabLineSel ctermfg=black ctermbg=darkyellow cterm=NONE
+ hi TabLine ctermfg=grey ctermbg=darkgrey cterm=NONE
+ hi TabLineFill ctermfg=cyan ctermbg=darkgrey cterm=NONE
+ hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi ToolbarButton ctermfg=black ctermbg=darkyellow cterm=NONE
+ hi NonText ctermfg=blue ctermbg=NONE cterm=NONE
+ hi SpecialKey ctermfg=green ctermbg=NONE cterm=NONE
+ hi QuickFixLine ctermfg=black ctermbg=blue cterm=NONE
+ hi Folded ctermfg=darkcyan ctermbg=NONE cterm=NONE
+ hi FoldColumn ctermfg=darkcyan ctermbg=NONE cterm=NONE
+ hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
+ hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=underline
+ hi CursorLineNr ctermfg=yellow ctermbg=NONE cterm=underline
+ hi ColorColumn ctermfg=white ctermbg=darkgrey cterm=NONE
+ hi Visual ctermfg=yellow ctermbg=darkgreen cterm=NONE
+ hi SignColumn ctermfg=NONE ctermbg=black cterm=NONE
+ hi VisualNOS ctermfg=darkmagenta ctermbg=darkgreen cterm=NONE
+ hi LineNr ctermfg=grey ctermbg=NONE cterm=NONE
+ hi Underlined ctermfg=blue ctermbg=NONE cterm=underline
+ hi Error ctermfg=darkred ctermbg=white cterm=reverse
+ hi ErrorMsg ctermfg=darkred ctermbg=black cterm=reverse
+ hi ModeMsg ctermfg=black ctermbg=yellow cterm=NONE
+ hi WarningMsg ctermfg=cyan ctermbg=NONE cterm=NONE
+ hi MoreMsg ctermfg=green ctermbg=NONE cterm=NONE
+ hi Question ctermfg=yellow ctermbg=NONE cterm=NONE
+ hi Todo ctermfg=darkred ctermbg=darkyellow cterm=NONE
+ hi MatchParen ctermfg=black ctermbg=yellow cterm=NONE
+ hi Search ctermfg=black ctermbg=darkmagenta cterm=NONE
+ hi IncSearch ctermfg=black ctermbg=darkgreen cterm=NONE
+ hi WildMenu ctermfg=black ctermbg=darkyellow cterm=NONE
+ hi ColorColumn ctermfg=white ctermbg=darkgrey cterm=NONE
+ hi Cursor ctermfg=darkgrey ctermbg=darkmagenta cterm=NONE
+ hi lCursor ctermfg=black ctermbg=red cterm=NONE
+ hi SpellBad ctermfg=darkred ctermbg=NONE cterm=underline
+ hi SpellCap ctermfg=darkyellow ctermbg=NONE cterm=underline
+ hi SpellLocal ctermfg=red ctermbg=NONE cterm=underline
+ hi SpellRare ctermfg=darkcyan ctermbg=NONE cterm=underline
+ hi Comment ctermfg=darkgrey ctermbg=NONE cterm=NONE
+ hi String ctermfg=cyan ctermbg=NONE cterm=NONE
+ hi Identifier ctermfg=darkred ctermbg=NONE cterm=NONE
+ hi Function ctermfg=yellow ctermbg=NONE cterm=NONE
+ hi Special ctermfg=darkyellow ctermbg=NONE cterm=NONE
+ hi Statement ctermfg=blue ctermbg=NONE cterm=NONE
+ hi Constant ctermfg=red ctermbg=NONE cterm=NONE
+ hi PreProc ctermfg=darkmagenta ctermbg=NONE cterm=NONE
+ hi Type ctermfg=blue ctermbg=NONE cterm=NONE
+ hi Operator ctermfg=darkmagenta ctermbg=NONE cterm=NONE
+ hi Define ctermfg=yellow ctermbg=NONE cterm=NONE
+ hi Structure ctermfg=darkgreen ctermbg=NONE cterm=NONE
+ hi Directory ctermfg=green ctermbg=NONE cterm=NONE
+ hi Conceal ctermfg=grey ctermbg=NONE cterm=NONE
+ hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi Title ctermfg=yellow ctermbg=NONE cterm=NONE
+ hi! link Terminal Normal
+ hi! link LineNrAbove LineNr
+ hi! link LineNrBelow LineNr
+ hi! link CurSearch Search
+ hi! link CursorLineFold CursorLine
+ hi! link CursorLineSign CursorLine
+ hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
+ hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
+ hi DiffText ctermfg=black ctermbg=grey cterm=NONE
+ hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
+ unlet s:t_Co
+ finish
+endif
+
+if s:t_Co >= 0
+ hi Normal term=NONE
+ hi ColorColumn term=reverse
+ hi Conceal term=NONE
+ hi Cursor term=reverse
+ hi CursorColumn term=NONE
+ hi CursorLine term=underline
+ hi CursorLineNr term=bold
+ hi DiffAdd term=reverse
+ hi DiffChange term=NONE
+ hi DiffDelete term=reverse
+ hi DiffText term=reverse
+ hi Directory term=NONE
+ hi EndOfBuffer term=NONE
+ hi ErrorMsg term=bold,reverse
+ hi FoldColumn term=NONE
+ hi Folded term=NONE
+ hi IncSearch term=bold,reverse,underline
+ hi LineNr term=NONE
+ hi MatchParen term=bold,underline
+ hi ModeMsg term=bold
+ hi MoreMsg term=NONE
+ hi NonText term=NONE
+ hi Pmenu term=reverse
+ hi PmenuSbar term=reverse
+ hi PmenuSel term=bold
+ hi PmenuThumb term=NONE
+ hi Question term=standout
+ hi Search term=reverse
+ hi SignColumn term=reverse
+ hi SpecialKey term=bold
+ hi SpellBad term=underline
+ hi SpellCap term=underline
+ hi SpellLocal term=underline
+ hi SpellRare term=underline
+ hi StatusLine term=bold,reverse
+ hi StatusLineNC term=bold,underline
+ hi TabLine term=bold,underline
+ hi TabLineFill term=NONE
+ hi Terminal term=NONE
+ hi TabLineSel term=bold,reverse
+ hi Title term=NONE
+ hi VertSplit term=NONE
+ hi Visual term=reverse
+ hi VisualNOS term=NONE
+ hi WarningMsg term=standout
+ hi WildMenu term=bold
+ hi CursorIM term=NONE
+ hi ToolbarLine term=reverse
+ hi ToolbarButton term=bold,reverse
+ hi CurSearch term=reverse
+ hi CursorLineFold term=underline
+ hi CursorLineSign term=underline
+ hi Comment term=bold
+ hi Constant term=NONE
+ hi Error term=bold,reverse
+ hi Identifier term=NONE
+ hi Ignore term=NONE
+ hi PreProc term=NONE
+ hi Special term=NONE
+ hi Statement term=NONE
+ hi Todo term=bold,reverse
+ hi Type term=NONE
+ hi Underlined term=underline
+ unlet s:t_Co
+ finish
+endif
+
+" Background: dark
+" Color: foreground #FFFFFF 231 white
+" Color: background #262626 235 black
+" Color: color00 #000000 16 black
+" Color: color08 #333333 236 darkgrey
+" Color: color01 #FF0000 196 darkred
+" Color: color09 #FFAFAF 217 red
+" Color: color02 #5F8700 64 darkgreen
+" Color: color10 #00875F 29 green
+" Color: color03 #ffff00 226 darkyellow
+" Color: color11 #FFD700 220 yellow
+" Color: color04 #87d7FF 117 darkblue
+" Color: color12 #5F87D7 68 blue
+" Color: color05 #d7d787 186 darkmagenta
+" Color: color13 #AFAF87 144 magenta
+" Color: color06 #FFD7AF 223 darkcyan
+" Color: color14 #FF8787 210 cyan
+" Color: color07 #666666 241 grey
+" Color: color15 #FFFFFF 231 white
+" Color: color16 #D7875F 173 darkmagenta
+" Color: color17 #00FF00 46 darkgreen
+" Color: Pmenu #4A4A4A 239 darkgrey
+" Term colors: color00 color01 color02 color03 color04 color05 color06 color07
+" Term colors: color08 color09 color10 color11 color12 color13 color14 color15
+" Color: bgDiffA #5F875F 65 darkgreen
+" Color: bgDiffC #5F87AF 67 blue
+" Color: bgDiffD #AF5FAF 133 magenta
+" Color: bgDiffT #C6C6C6 251 grey
+" Color: fgDiffW #FFFFFF 231 white
+" Color: fgDiffB #000000 16 black
+" vim: et ts=2 sw=2
diff --git a/runtime/colors/torte.vim b/runtime/colors/torte.vim
index 0e7a916a1c..fc9605b477 100644
--- a/runtime/colors/torte.vim
+++ b/runtime/colors/torte.vim
@@ -1,50 +1,362 @@
-" Vim color file
-" Maintainer: Thorsten Maerz <info@netztorte.de>
-" Last Change: 2006 Dec 07
-" grey on black
-" optimized for TFT panels
+" Name: torte
+" Description: Remake of torte (grey on black)
+" Author: Original maintainer Thorsten Maerz <info@netztorte.de>
+" Maintainer: Original maintainer Thorsten Maerz <info@netztorte.de>
+" Website: https://github.com/vim/colorschemes
+" License: Same as Vim
+" Last Updated: Wed May 11 22:56:46 2022
+
+" Generated by Colortemplate v2.2.0
set background=dark
+
hi clear
-if exists("syntax_on")
- syntax reset
+let g:colors_name = 'torte'
+
+let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
+
+if (has('termguicolors') && &termguicolors) || has('gui_running')
+ let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0000ee', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff']
endif
-"colorscheme default
-let g:colors_name = "torte"
-
-" hardcoded colors :
-" GUI Comment : #80a0ff = Light blue
-
-" GUI
-highlight Normal guifg=Grey80 guibg=Black
-highlight Search guifg=Black guibg=Red gui=bold
-highlight Visual guifg=#404040 gui=bold
-highlight Cursor guifg=Black guibg=Green gui=bold
-highlight Special guifg=Orange
-highlight Comment guifg=#80a0ff
-highlight StatusLine guifg=blue guibg=white
-highlight Statement guifg=Yellow gui=NONE
-highlight Type gui=NONE
-
-" Console
-highlight Normal ctermfg=LightGrey ctermbg=Black
-highlight Search ctermfg=Black ctermbg=Red cterm=NONE
-highlight Visual cterm=reverse
-highlight Cursor ctermfg=Black ctermbg=Green cterm=bold
-highlight Special ctermfg=Brown
-highlight Comment ctermfg=Blue
-highlight StatusLine ctermfg=blue ctermbg=white
-highlight Statement ctermfg=Yellow cterm=NONE
-highlight Type cterm=NONE
-
-" only for vim 5
-if has("unix")
- if v:version<600
- highlight Normal ctermfg=Grey ctermbg=Black cterm=NONE guifg=Grey80 guibg=Black gui=NONE
- highlight Search ctermfg=Black ctermbg=Red cterm=bold guifg=Black guibg=Red gui=bold
- highlight Visual ctermfg=Black ctermbg=yellow cterm=bold guifg=#404040 gui=bold
- highlight Special ctermfg=LightBlue cterm=NONE guifg=LightBlue gui=NONE
- highlight Comment ctermfg=Cyan cterm=NONE guifg=LightBlue gui=NONE
- endif
+hi Normal guifg=#cccccc guibg=#000000 gui=NONE cterm=NONE
+hi! link StatusLineTerm StatusLine
+hi! link StatusLineTermNC StatusLineNC
+hi Comment guifg=#80a0ff guibg=NONE gui=NONE cterm=NONE
+hi Constant guifg=#ffa0a0 guibg=NONE gui=NONE cterm=NONE
+hi Identifier guifg=#40ffff guibg=NONE gui=NONE cterm=NONE
+hi Statement guifg=#ffff60 guibg=NONE gui=NONE cterm=NONE
+hi PreProc guifg=#ff80ff guibg=NONE gui=NONE cterm=NONE
+hi Type guifg=#60ff60 guibg=NONE gui=NONE cterm=NONE
+hi Special guifg=#ffa500 guibg=NONE gui=NONE cterm=NONE
+hi Underlined guifg=#80a0ff guibg=NONE gui=underline cterm=underline
+hi Ignore guifg=#000000 guibg=#000000 gui=NONE cterm=NONE
+hi Error guifg=#ffffff guibg=#ff0000 gui=NONE cterm=NONE
+hi Todo guifg=#ffff00 guibg=#000000 gui=reverse cterm=reverse
+hi Folded guifg=#00cdcd guibg=#3a3a3a gui=NONE cterm=NONE
+hi Visual guifg=#000000 guibg=#a9a9a9 gui=bold cterm=NONE
+hi CursorColumn guifg=NONE guibg=#666666 gui=NONE cterm=NONE
+hi CursorLine guifg=NONE guibg=#666666 gui=NONE cterm=NONE
+hi CursorLineNr guifg=#ffff00 guibg=#666666 gui=NONE cterm=NONE
+hi SignColumn guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
+hi FoldColumn guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
+hi ColorColumn guifg=#cccccc guibg=#8b0000 gui=NONE cterm=NONE
+hi Conceal guifg=#e5e5e5 guibg=#a9a9a9 gui=NONE cterm=NONE
+hi Cursor guifg=#000000 guibg=#00ff00 gui=bold cterm=NONE
+hi lCursor guifg=#000000 guibg=#e5e5e5 gui=NONE cterm=NONE
+hi CursorIM guifg=NONE guibg=fg gui=NONE cterm=NONE
+hi Title guifg=#ff00ff guibg=NONE gui=bold cterm=NONE
+hi Directory guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
+hi Search guifg=#ff0000 guibg=#000000 gui=reverse cterm=reverse
+hi IncSearch guifg=#00cd00 guibg=#000000 gui=reverse cterm=reverse
+hi NonText guifg=#0000ff guibg=NONE gui=bold cterm=NONE
+hi EndOfBuffer guifg=#0000ff guibg=NONE gui=bold cterm=NONE
+hi ErrorMsg guifg=#ffffff guibg=#cd0000 gui=NONE cterm=NONE
+hi WarningMsg guifg=#ff0000 guibg=NONE gui=NONE cterm=NONE
+hi LineNr guifg=#7f7f7f guibg=NONE gui=NONE cterm=NONE
+hi MatchParen guifg=NONE guibg=#008b8b gui=NONE cterm=NONE
+hi ModeMsg guifg=NONE guibg=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=NONE
+hi MoreMsg guifg=#2e8b57 guibg=NONE gui=bold cterm=NONE
+hi Question guifg=#00ff00 guibg=NONE gui=bold cterm=NONE
+hi SpecialKey guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
+hi VisualNOS guifg=NONE guibg=#000000 gui=bold,underline cterm=underline
+hi WildMenu guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi QuickFixLine guifg=#000000 guibg=#cdcd00 gui=NONE cterm=NONE
+hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
+hi SpellCap guifg=#5c5cff guibg=NONE guisp=#5c5cff gui=undercurl cterm=underline
+hi SpellLocal guifg=#ff00ff guibg=NONE guisp=#ff00ff gui=undercurl cterm=underline
+hi SpellRare guifg=#00ffff guibg=NONE guisp=#00ffff gui=undercurl cterm=underline
+hi StatusLine guifg=#ffffff guibg=#0000ee gui=bold cterm=NONE
+hi StatusLineNC guifg=#000000 guibg=#e5e5e5 gui=NONE cterm=NONE
+hi VertSplit guifg=#000000 guibg=#e5e5e5 gui=NONE cterm=NONE
+hi TabLine guifg=#ffffff guibg=#7f7f7f gui=NONE cterm=NONE
+hi TabLineFill guifg=NONE guibg=#000000 gui=reverse cterm=reverse
+hi TabLineSel guifg=#cccccc guibg=#000000 gui=bold cterm=NONE
+hi ToolbarLine guifg=NONE guibg=#000000 gui=NONE cterm=NONE
+hi ToolbarButton guifg=#000000 guibg=#e5e5e5 gui=bold cterm=NONE
+hi Pmenu guifg=fg guibg=#303030 gui=NONE cterm=NONE
+hi PmenuSbar guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi PmenuSel guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi PmenuThumb guifg=NONE guibg=#bebebe gui=NONE cterm=NONE
+hi! link Terminal Normal
+hi! link LineNrAbove LineNr
+hi! link LineNrBelow LineNr
+hi! link CurSearch Search
+hi! link CursorLineFold CursorLine
+hi! link CursorLineSign CursorLine
+hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
+hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
+hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
+hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
+
+if s:t_Co >= 256
+ hi Normal ctermfg=251 ctermbg=16 cterm=NONE
+ hi! link StatusLineTerm StatusLine
+ hi! link StatusLineTermNC StatusLineNC
+ hi Comment ctermfg=111 ctermbg=NONE cterm=NONE
+ hi Constant ctermfg=217 ctermbg=NONE cterm=NONE
+ hi Identifier ctermfg=87 ctermbg=NONE cterm=NONE
+ hi Statement ctermfg=227 ctermbg=NONE cterm=NONE
+ hi PreProc ctermfg=213 ctermbg=NONE cterm=NONE
+ hi Type ctermfg=83 ctermbg=NONE cterm=NONE
+ hi Special ctermfg=214 ctermbg=NONE cterm=NONE
+ hi Underlined ctermfg=111 ctermbg=NONE cterm=underline
+ hi Ignore ctermfg=16 ctermbg=16 cterm=NONE
+ hi Error ctermfg=231 ctermbg=196 cterm=NONE
+ hi Todo ctermfg=226 ctermbg=16 cterm=reverse
+ hi Folded ctermfg=44 ctermbg=237 cterm=NONE
+ hi Visual ctermfg=16 ctermbg=248 cterm=NONE
+ hi CursorColumn ctermfg=NONE ctermbg=242 cterm=NONE
+ hi CursorLine ctermfg=NONE ctermbg=242 cterm=NONE
+ hi CursorLineNr ctermfg=226 ctermbg=242 cterm=NONE
+ hi SignColumn ctermfg=51 ctermbg=NONE cterm=NONE
+ hi FoldColumn ctermfg=51 ctermbg=NONE cterm=NONE
+ hi ColorColumn ctermfg=251 ctermbg=88 cterm=NONE
+ hi Conceal ctermfg=254 ctermbg=248 cterm=NONE
+ hi Cursor ctermfg=16 ctermbg=46 cterm=NONE
+ hi lCursor ctermfg=16 ctermbg=254 cterm=NONE
+ hi CursorIM ctermfg=NONE ctermbg=fg cterm=NONE
+ hi Title ctermfg=201 ctermbg=NONE cterm=NONE
+ hi Directory ctermfg=51 ctermbg=NONE cterm=NONE
+ hi Search ctermfg=196 ctermbg=16 cterm=reverse
+ hi IncSearch ctermfg=40 ctermbg=16 cterm=reverse
+ hi NonText ctermfg=21 ctermbg=NONE cterm=NONE
+ hi EndOfBuffer ctermfg=21 ctermbg=NONE cterm=NONE
+ hi ErrorMsg ctermfg=231 ctermbg=160 cterm=NONE
+ hi WarningMsg ctermfg=196 ctermbg=NONE cterm=NONE
+ hi LineNr ctermfg=102 ctermbg=NONE cterm=NONE
+ hi MatchParen ctermfg=NONE ctermbg=30 cterm=NONE
+ hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi MoreMsg ctermfg=29 ctermbg=NONE cterm=NONE
+ hi Question ctermfg=46 ctermbg=NONE cterm=NONE
+ hi SpecialKey ctermfg=51 ctermbg=NONE cterm=NONE
+ hi VisualNOS ctermfg=NONE ctermbg=16 cterm=underline
+ hi WildMenu ctermfg=16 ctermbg=226 cterm=NONE
+ hi QuickFixLine ctermfg=16 ctermbg=184 cterm=NONE
+ hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
+ hi SpellCap ctermfg=63 ctermbg=NONE cterm=underline
+ hi SpellLocal ctermfg=201 ctermbg=NONE cterm=underline
+ hi SpellRare ctermfg=51 ctermbg=NONE cterm=underline
+ hi StatusLine ctermfg=231 ctermbg=20 cterm=NONE
+ hi StatusLineNC ctermfg=16 ctermbg=254 cterm=NONE
+ hi VertSplit ctermfg=16 ctermbg=254 cterm=NONE
+ hi TabLine ctermfg=231 ctermbg=102 cterm=NONE
+ hi TabLineFill ctermfg=NONE ctermbg=16 cterm=reverse
+ hi TabLineSel ctermfg=251 ctermbg=16 cterm=NONE
+ hi ToolbarLine ctermfg=NONE ctermbg=16 cterm=NONE
+ hi ToolbarButton ctermfg=16 ctermbg=254 cterm=NONE
+ hi Pmenu ctermfg=fg ctermbg=236 cterm=NONE
+ hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi PmenuSel ctermfg=16 ctermbg=226 cterm=NONE
+ hi PmenuThumb ctermfg=NONE ctermbg=250 cterm=NONE
+ hi! link Terminal Normal
+ hi! link LineNrAbove LineNr
+ hi! link LineNrBelow LineNr
+ hi! link CurSearch Search
+ hi! link CursorLineFold CursorLine
+ hi! link CursorLineSign CursorLine
+ hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
+ hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
+ hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
+ hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
+ unlet s:t_Co
+ finish
+endif
+
+if s:t_Co >= 16
+ hi Normal ctermfg=white ctermbg=black cterm=NONE
+ hi! link StatusLineTerm StatusLine
+ hi! link StatusLineTermNC StatusLineNC
+ hi Comment ctermfg=blue ctermbg=NONE cterm=NONE
+ hi Constant ctermfg=darkmagenta ctermbg=NONE cterm=NONE
+ hi Identifier ctermfg=cyan ctermbg=NONE cterm=NONE
+ hi Statement ctermfg=yellow ctermbg=NONE cterm=NONE
+ hi PreProc ctermfg=darkcyan ctermbg=NONE cterm=NONE
+ hi Type ctermfg=green ctermbg=NONE cterm=NONE
+ hi Special ctermfg=darkred ctermbg=NONE cterm=NONE
+ hi Underlined ctermfg=blue ctermbg=NONE cterm=underline
+ hi Ignore ctermfg=black ctermbg=black cterm=NONE
+ hi Error ctermfg=white ctermbg=red cterm=NONE
+ hi Todo ctermfg=yellow ctermbg=black cterm=reverse
+ hi Folded ctermfg=darkcyan ctermbg=NONE cterm=NONE
+ hi Visual ctermfg=black ctermbg=grey cterm=NONE
+ hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=underline
+ hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
+ hi CursorLineNr ctermfg=yellow ctermbg=NONE cterm=underline
+ hi SignColumn ctermfg=cyan ctermbg=NONE cterm=NONE
+ hi FoldColumn ctermfg=cyan ctermbg=NONE cterm=NONE
+ hi ColorColumn ctermfg=white ctermbg=darkred cterm=NONE
+ hi Conceal ctermfg=grey ctermbg=grey cterm=NONE
+ hi Cursor ctermfg=black ctermbg=green cterm=NONE
+ hi lCursor ctermfg=black ctermbg=grey cterm=NONE
+ hi CursorIM ctermfg=NONE ctermbg=fg cterm=NONE
+ hi Title ctermfg=magenta ctermbg=NONE cterm=NONE
+ hi Directory ctermfg=cyan ctermbg=NONE cterm=NONE
+ hi Search ctermfg=red ctermbg=black cterm=reverse
+ hi IncSearch ctermfg=darkgreen ctermbg=black cterm=reverse
+ hi NonText ctermfg=blue ctermbg=NONE cterm=NONE
+ hi EndOfBuffer ctermfg=blue ctermbg=NONE cterm=NONE
+ hi ErrorMsg ctermfg=white ctermbg=darkred cterm=NONE
+ hi WarningMsg ctermfg=red ctermbg=NONE cterm=NONE
+ hi LineNr ctermfg=darkgrey ctermbg=NONE cterm=NONE
+ hi MatchParen ctermfg=NONE ctermbg=darkcyan cterm=NONE
+ hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
+ hi Question ctermfg=green ctermbg=NONE cterm=NONE
+ hi SpecialKey ctermfg=cyan ctermbg=NONE cterm=NONE
+ hi VisualNOS ctermfg=NONE ctermbg=black cterm=underline
+ hi WildMenu ctermfg=black ctermbg=yellow cterm=NONE
+ hi QuickFixLine ctermfg=black ctermbg=darkyellow cterm=NONE
+ hi SpellBad ctermfg=red ctermbg=NONE cterm=underline
+ hi SpellCap ctermfg=blue ctermbg=NONE cterm=underline
+ hi SpellLocal ctermfg=magenta ctermbg=NONE cterm=underline
+ hi SpellRare ctermfg=cyan ctermbg=NONE cterm=underline
+ hi StatusLine ctermfg=white ctermbg=darkblue cterm=NONE
+ hi StatusLineNC ctermfg=black ctermbg=grey cterm=NONE
+ hi VertSplit ctermfg=black ctermbg=grey cterm=NONE
+ hi TabLine ctermfg=white ctermbg=darkgrey cterm=NONE
+ hi TabLineFill ctermfg=NONE ctermbg=black cterm=reverse
+ hi TabLineSel ctermfg=white ctermbg=black cterm=NONE
+ hi ToolbarLine ctermfg=NONE ctermbg=black cterm=NONE
+ hi ToolbarButton ctermfg=black ctermbg=grey cterm=NONE
+ hi Pmenu ctermfg=fg ctermbg=darkgrey cterm=NONE
+ hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi PmenuSel ctermfg=black ctermbg=yellow cterm=NONE
+ hi PmenuThumb ctermfg=NONE ctermbg=grey cterm=NONE
+ hi! link Terminal Normal
+ hi! link LineNrAbove LineNr
+ hi! link LineNrBelow LineNr
+ hi! link CurSearch Search
+ hi! link CursorLineFold CursorLine
+ hi! link CursorLineSign CursorLine
+ hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
+ hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
+ hi DiffText ctermfg=black ctermbg=grey cterm=NONE
+ hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
+ unlet s:t_Co
+ finish
+endif
+
+if s:t_Co >= 0
+ hi Normal term=NONE
+ hi ColorColumn term=reverse
+ hi Conceal term=NONE
+ hi Cursor term=reverse
+ hi CursorColumn term=NONE
+ hi CursorLine term=underline
+ hi CursorLineNr term=bold
+ hi DiffAdd term=reverse
+ hi DiffChange term=NONE
+ hi DiffDelete term=reverse
+ hi DiffText term=reverse
+ hi Directory term=NONE
+ hi EndOfBuffer term=NONE
+ hi ErrorMsg term=bold,reverse
+ hi FoldColumn term=NONE
+ hi Folded term=NONE
+ hi IncSearch term=bold,reverse,underline
+ hi LineNr term=NONE
+ hi MatchParen term=bold,underline
+ hi ModeMsg term=bold
+ hi MoreMsg term=NONE
+ hi NonText term=NONE
+ hi Pmenu term=reverse
+ hi PmenuSbar term=reverse
+ hi PmenuSel term=bold
+ hi PmenuThumb term=NONE
+ hi Question term=standout
+ hi Search term=reverse
+ hi SignColumn term=reverse
+ hi SpecialKey term=bold
+ hi SpellBad term=underline
+ hi SpellCap term=underline
+ hi SpellLocal term=underline
+ hi SpellRare term=underline
+ hi StatusLine term=bold,reverse
+ hi StatusLineNC term=bold,underline
+ hi TabLine term=bold,underline
+ hi TabLineFill term=NONE
+ hi Terminal term=NONE
+ hi TabLineSel term=bold,reverse
+ hi Title term=NONE
+ hi VertSplit term=NONE
+ hi Visual term=reverse
+ hi VisualNOS term=NONE
+ hi WarningMsg term=standout
+ hi WildMenu term=bold
+ hi CursorIM term=NONE
+ hi ToolbarLine term=reverse
+ hi ToolbarButton term=bold,reverse
+ hi CurSearch term=reverse
+ hi CursorLineFold term=underline
+ hi CursorLineSign term=underline
+ hi Comment term=bold
+ hi Constant term=NONE
+ hi Error term=bold,reverse
+ hi Identifier term=NONE
+ hi Ignore term=NONE
+ hi PreProc term=NONE
+ hi Special term=NONE
+ hi Statement term=NONE
+ hi Todo term=bold,reverse
+ hi Type term=NONE
+ hi Underlined term=underline
+ unlet s:t_Co
+ finish
endif
+" Background: dark
+" Color: foreground #CCCCCC 251 white
+" Color: background #000000 16 black
+" Color: color00 #000000 16 black
+" Color: color08 #7f7f7f 102 darkgrey
+" Color: color01 #cd0000 160 darkred
+" Color: color09 #ff0000 196 red
+" Color: color02 #00cd00 40 darkgreen
+" Color: color10 #00ff00 46 green
+" Color: color03 #cdcd00 184 darkyellow
+" Color: color11 #ffff00 226 yellow
+" Color: color04 #0000ee 20 darkblue
+" Color: color12 #5c5cff 63 blue
+" Color: color05 #cd00cd 164 darkmagenta
+" Color: color13 #ff00ff 201 magenta
+" Color: color06 #00cdcd 44 darkcyan
+" Color: color14 #00ffff 51 cyan
+" Color: color07 #e5e5e5 254 grey
+" Color: color15 #ffffff 231 white
+" Term colors: color00 color01 color02 color03 color04 color05 color06 color07
+" Term colors: color08 color09 color10 color11 color12 color13 color14 color15
+" Color: rgbGrey40 #666666 242 grey
+" Color: rgbDarkGrey #a9a9a9 248 grey
+" Color: rgbDarkBlue #00008b 18 darkblue
+" Color: rgbDarkMagenta #8b008b 90 darkmagenta
+" Color: rgbBlue #0000ff 21 blue
+" Color: rgbDarkCyan #008b8b 30 darkcyan
+" Color: Directory #00ffff 51 cyan
+" Color: rgbSeaGreen #2e8b57 29 darkgreen
+" Color: rgbGrey #bebebe 250 grey
+" Color: Question #00ff00 46 green
+" Color: SignColumn #a9a9a9 248 black
+" Color: SpecialKey #00ffff 51 cyan
+" Color: StatusLineTerm #90ee90 120 darkgreen
+" Color: Title #ff00ff 201 magenta
+" Color: WarningMsg #ff0000 196 red
+" Color: ToolbarLine #7f7f7f 243 black
+" Color: ToolbarButton #d3d3d3 252 darkgrey
+" Color: Comment #80a0ff 111 blue
+" Color: Constant #ffa0a0 217 darkmagenta
+" Color: Special #ffa500 214 darkred
+" Color: Identifier #40ffff 87 cyan
+" Color: Statement #ffff60 227 yellow
+" Color: PreProc #ff80ff 213 darkcyan
+" Color: Type #60ff60 83 green
+" Color: Underlined #80a0ff 111 blue
+" Color: FoldedBG #3a3a3a 237 darkgrey
+" Color: Pmenu #303030 236 darkgrey
+" Color: rgbDarkRed #8b0000 88 darkred
+" Color: bgDiffA #5F875F 65 darkgreen
+" Color: bgDiffC #5F87AF 67 blue
+" Color: bgDiffD #AF5FAF 133 magenta
+" Color: bgDiffT #C6C6C6 251 grey
+" Color: fgDiffW #FFFFFF 231 white
+" Color: fgDiffB #000000 16 black
+" vim: et ts=2 sw=2
diff --git a/runtime/colors/zellner.vim b/runtime/colors/zellner.vim
index ab875825c9..0fbf53c891 100644
--- a/runtime/colors/zellner.vim
+++ b/runtime/colors/zellner.vim
@@ -1,54 +1,341 @@
-" local syntax file - set colors on a per-machine basis:
-" vim: tw=0 ts=4 sw=4
-" Vim color file
-" Maintainer: Ron Aaron <ron@ronware.org>
-" Last Change: 2003 May 02
+" Name: zellner
+" Description: Light background colorscheme.
+" Author: Original author Ron Aaron <ron@ronware.org>
+" Maintainer: Original maintainer Ron Aaron <ron@ronware.org>
+" Website: https://github.com/vim/colorschemes
+" License: Same as Vim
+" Last Updated: Wed May 11 22:56:47 2022
+
+" Generated by Colortemplate v2.2.0
set background=light
+
hi clear
-if exists("syntax_on")
- syntax reset
+let g:colors_name = 'zellner'
+
+let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
+
+if (has('termguicolors') && &termguicolors) || has('gui_running')
+ let g:terminal_ansi_colors = ['#ffffff', '#a52a2a', '#ff00ff', '#a020f0', '#0000ff', '#0000ff', '#ff00ff', '#a9a9a9', '#ff0000', '#a52a2a', '#ff00ff', '#a020f0', '#0000ff', '#0000ff', '#ff00ff', '#000000']
+endif
+hi Normal guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE
+hi Folded guifg=#00008b guibg=#d3d3d3 gui=NONE cterm=NONE
+hi CursorLine guifg=NONE guibg=#e5e5e5 gui=NONE cterm=NONE
+hi CursorColumn guifg=NONE guibg=#e5e5e5 gui=NONE cterm=NONE
+hi CursorLineNr guifg=#a52a2a guibg=NONE gui=bold cterm=NONE
+hi QuickFixLine guifg=#ffffff guibg=#6a5acd gui=NONE cterm=NONE
+hi EndOfBuffer guifg=#a9a9a9 guibg=NONE gui=NONE cterm=NONE
+hi StatusLine guifg=#ffff00 guibg=#a9a9a9 gui=NONE cterm=NONE
+hi StatusLineNC guifg=#ffffff guibg=#000000 gui=NONE cterm=NONE
+hi StatusLineTerm guifg=#ffffff guibg=#006400 gui=NONE cterm=NONE
+hi StatusLineTermNC guifg=#ffffff guibg=#0000ff gui=NONE cterm=NONE
+hi VertSplit guifg=#ffffff guibg=#000000 gui=NONE cterm=NONE
+hi Pmenu guifg=#000000 guibg=#dadada gui=NONE cterm=NONE
+hi PmenuSel guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi PmenuSbar guifg=NONE guibg=#ffffff gui=NONE cterm=NONE
+hi PmenuThumb guifg=NONE guibg=#a9a9a9 gui=NONE cterm=NONE
+hi TabLine guifg=#000000 guibg=#a9a9a9 gui=underline cterm=underline
+hi TabLineFill guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse
+hi TabLineSel guifg=#000000 guibg=#ffffff gui=bold cterm=NONE
+hi ToolbarLine guifg=NONE guibg=#d3d3d3 gui=NONE cterm=NONE
+hi ToolbarButton guifg=NONE guibg=#a9a9a9 gui=bold cterm=NONE
+hi NonText guifg=#a9a9a9 guibg=NONE gui=NONE cterm=NONE
+hi SpecialKey guifg=#a9a9a9 guibg=NONE gui=NONE cterm=NONE
+hi Visual guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi VisualNOS guifg=NONE guibg=#ff0000 gui=NONE cterm=NONE
+hi LineNr guifg=#a52a2a guibg=NONE gui=NONE cterm=NONE
+hi FoldColumn guifg=#00008b guibg=NONE gui=NONE cterm=NONE
+hi SignColumn guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi Underlined guifg=#6a5acd guibg=NONE gui=underline cterm=underline
+hi Error guifg=#ff0000 guibg=#ffffff gui=reverse cterm=reverse
+hi ErrorMsg guifg=#ff0000 guibg=#ffffff gui=reverse cterm=reverse
+hi WarningMsg guifg=#a020f0 guibg=#ffffff gui=NONE cterm=NONE
+hi MoreMsg guifg=#000000 guibg=#ffffff gui=bold cterm=NONE
+hi ModeMsg guifg=#000000 guibg=#ffffff gui=bold cterm=NONE
+hi Question guifg=#ff00ff guibg=NONE gui=bold cterm=NONE
+hi Todo guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi MatchParen guifg=#ffffff guibg=#ff00ff gui=NONE cterm=NONE
+hi Search guifg=#ffffff guibg=#a020f0 gui=NONE cterm=NONE
+hi IncSearch guifg=#000000 guibg=NONE gui=reverse cterm=reverse
+hi WildMenu guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi ColorColumn guifg=NONE guibg=#eeeeee gui=NONE cterm=NONE
+hi Cursor guifg=#ffffff guibg=#000000 gui=NONE cterm=NONE
+hi lCursor guifg=#000000 guibg=#ff00ff gui=NONE cterm=NONE
+hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
+hi SpellCap guifg=#0000ff guibg=NONE guisp=#0000ff gui=undercurl cterm=underline
+hi SpellLocal guifg=#878700 guibg=NONE guisp=#878700 gui=undercurl cterm=underline
+hi SpellRare guifg=#008787 guibg=NONE guisp=#008787 gui=undercurl cterm=underline
+hi Comment guifg=#ff0000 guibg=NONE gui=NONE cterm=NONE
+hi Constant guifg=#ff00ff guibg=NONE gui=NONE cterm=NONE
+hi Identifier guifg=#0000ff guibg=NONE gui=NONE cterm=NONE
+hi Statement guifg=#a52a2a guibg=NONE gui=NONE cterm=NONE
+hi PreProc guifg=#a020f0 guibg=NONE gui=NONE cterm=NONE
+hi Type guifg=#0000ff guibg=NONE gui=NONE cterm=NONE
+hi Special guifg=#ff00ff guibg=NONE gui=NONE cterm=NONE
+hi Tag guifg=#006400 guibg=NONE gui=NONE cterm=NONE
+hi Directory guifg=#0000ff guibg=NONE gui=bold cterm=NONE
+hi Conceal guifg=#ff0000 guibg=NONE gui=NONE cterm=NONE
+hi Ignore guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi Title guifg=#a020f0 guibg=NONE gui=bold cterm=NONE
+hi! link Terminal Normal
+hi! link LineNrAbove LineNr
+hi! link LineNrBelow LineNr
+hi! link CurSearch Search
+hi! link CursorLineFold CursorLine
+hi! link CursorLineSign CursorLine
+hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
+hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
+hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
+hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
+
+if s:t_Co >= 256
+ hi Normal ctermfg=16 ctermbg=231 cterm=NONE
+ hi Folded ctermfg=18 ctermbg=252 cterm=NONE
+ hi CursorLine ctermfg=NONE ctermbg=254 cterm=NONE
+ hi CursorColumn ctermfg=NONE ctermbg=254 cterm=NONE
+ hi CursorLineNr ctermfg=124 ctermbg=NONE cterm=NONE
+ hi QuickFixLine ctermfg=231 ctermbg=62 cterm=NONE
+ hi EndOfBuffer ctermfg=248 ctermbg=NONE cterm=NONE
+ hi StatusLine ctermfg=226 ctermbg=248 cterm=NONE
+ hi StatusLineNC ctermfg=231 ctermbg=16 cterm=NONE
+ hi StatusLineTerm ctermfg=231 ctermbg=22 cterm=NONE
+ hi StatusLineTermNC ctermfg=231 ctermbg=21 cterm=NONE
+ hi VertSplit ctermfg=231 ctermbg=16 cterm=NONE
+ hi Pmenu ctermfg=16 ctermbg=253 cterm=NONE
+ hi PmenuSel ctermfg=16 ctermbg=226 cterm=NONE
+ hi PmenuSbar ctermfg=NONE ctermbg=231 cterm=NONE
+ hi PmenuThumb ctermfg=NONE ctermbg=248 cterm=NONE
+ hi TabLine ctermfg=16 ctermbg=248 cterm=underline
+ hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=reverse
+ hi TabLineSel ctermfg=16 ctermbg=231 cterm=NONE
+ hi ToolbarLine ctermfg=NONE ctermbg=252 cterm=NONE
+ hi ToolbarButton ctermfg=NONE ctermbg=248 cterm=NONE
+ hi NonText ctermfg=248 ctermbg=NONE cterm=NONE
+ hi SpecialKey ctermfg=248 ctermbg=NONE cterm=NONE
+ hi Visual ctermfg=16 ctermbg=226 cterm=NONE
+ hi VisualNOS ctermfg=NONE ctermbg=196 cterm=NONE
+ hi LineNr ctermfg=124 ctermbg=NONE cterm=NONE
+ hi FoldColumn ctermfg=18 ctermbg=NONE cterm=NONE
+ hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi Underlined ctermfg=62 ctermbg=NONE cterm=underline
+ hi Error ctermfg=196 ctermbg=231 cterm=reverse
+ hi ErrorMsg ctermfg=196 ctermbg=231 cterm=reverse
+ hi WarningMsg ctermfg=129 ctermbg=231 cterm=NONE
+ hi MoreMsg ctermfg=16 ctermbg=231 cterm=NONE
+ hi ModeMsg ctermfg=16 ctermbg=231 cterm=NONE
+ hi Question ctermfg=201 ctermbg=NONE cterm=NONE
+ hi Todo ctermfg=16 ctermbg=226 cterm=NONE
+ hi MatchParen ctermfg=231 ctermbg=201 cterm=NONE
+ hi Search ctermfg=231 ctermbg=129 cterm=NONE
+ hi IncSearch ctermfg=16 ctermbg=NONE cterm=reverse
+ hi WildMenu ctermfg=16 ctermbg=226 cterm=NONE
+ hi ColorColumn ctermfg=NONE ctermbg=255 cterm=NONE
+ hi Cursor ctermfg=231 ctermbg=16 cterm=NONE
+ hi lCursor ctermfg=16 ctermbg=201 cterm=NONE
+ hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
+ hi SpellCap ctermfg=21 ctermbg=NONE cterm=underline
+ hi SpellLocal ctermfg=100 ctermbg=NONE cterm=underline
+ hi SpellRare ctermfg=30 ctermbg=NONE cterm=underline
+ hi Comment ctermfg=196 ctermbg=NONE cterm=NONE
+ hi Constant ctermfg=201 ctermbg=NONE cterm=NONE
+ hi Identifier ctermfg=21 ctermbg=NONE cterm=NONE
+ hi Statement ctermfg=124 ctermbg=NONE cterm=NONE
+ hi PreProc ctermfg=129 ctermbg=NONE cterm=NONE
+ hi Type ctermfg=21 ctermbg=NONE cterm=NONE
+ hi Special ctermfg=201 ctermbg=NONE cterm=NONE
+ hi Tag ctermfg=22 ctermbg=NONE cterm=NONE
+ hi Directory ctermfg=21 ctermbg=NONE cterm=NONE
+ hi Conceal ctermfg=196 ctermbg=NONE cterm=NONE
+ hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi Title ctermfg=129 ctermbg=NONE cterm=NONE
+ hi! link Terminal Normal
+ hi! link LineNrAbove LineNr
+ hi! link LineNrBelow LineNr
+ hi! link CurSearch Search
+ hi! link CursorLineFold CursorLine
+ hi! link CursorLineSign CursorLine
+ hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
+ hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
+ hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
+ hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
+ unlet s:t_Co
+ finish
endif
-let g:colors_name = "zellner"
-
-hi Comment term=bold ctermfg=Red guifg=Red
-hi Normal guifg=black guibg=white
-hi Constant term=underline ctermfg=Magenta guifg=Magenta
-hi Special term=bold ctermfg=Magenta guifg=Magenta
-hi Identifier term=underline ctermfg=Blue guifg=Blue
-hi Statement term=bold ctermfg=DarkRed gui=NONE guifg=Brown
-hi PreProc term=underline ctermfg=Magenta guifg=Purple
-hi Type term=underline ctermfg=Blue gui=NONE guifg=Blue
-hi Visual term=reverse ctermfg=Yellow ctermbg=Red gui=NONE guifg=Black guibg=Yellow
-hi Search term=reverse ctermfg=Black ctermbg=Cyan gui=NONE guifg=Black guibg=Cyan
-hi Tag term=bold ctermfg=DarkGreen guifg=DarkGreen
-hi Error term=reverse ctermfg=15 ctermbg=9 guibg=Red guifg=White
-hi Todo term=standout ctermbg=Yellow ctermfg=Black guifg=Blue guibg=Yellow
-hi StatusLine term=bold,reverse cterm=NONE ctermfg=Yellow ctermbg=DarkGray gui=NONE guifg=Yellow guibg=DarkGray
-hi! link MoreMsg Comment
-hi! link ErrorMsg Visual
-hi! link WarningMsg ErrorMsg
-hi! link Question Comment
-hi link String Constant
-hi link Character Constant
-hi link Number Constant
-hi link Boolean Constant
-hi link Float Number
-hi link Function Identifier
-hi link Conditional Statement
-hi link Repeat Statement
-hi link Label Statement
-hi link Operator Statement
-hi link Keyword Statement
-hi link Exception Statement
-hi link Include PreProc
-hi link Define PreProc
-hi link Macro PreProc
-hi link PreCondit PreProc
-hi link StorageClass Type
-hi link Structure Type
-hi link Typedef Type
-hi link SpecialChar Special
-hi link Delimiter Special
-hi link SpecialComment Special
-hi link Debug Special
+
+if s:t_Co >= 16
+ hi Normal ctermfg=black ctermbg=white cterm=NONE
+ hi Folded ctermfg=darkblue ctermbg=NONE cterm=NONE
+ hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
+ hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=underline
+ hi CursorLineNr ctermfg=darkred ctermbg=NONE cterm=underline
+ hi QuickFixLine ctermfg=white ctermbg=blue cterm=NONE
+ hi EndOfBuffer ctermfg=darkgrey ctermbg=NONE cterm=NONE
+ hi StatusLine ctermfg=yellow ctermbg=darkgrey cterm=NONE
+ hi StatusLineNC ctermfg=white ctermbg=black cterm=NONE
+ hi StatusLineTerm ctermfg=white ctermbg=darkgreen cterm=NONE
+ hi StatusLineTermNC ctermfg=white ctermbg=blue cterm=NONE
+ hi VertSplit ctermfg=white ctermbg=black cterm=NONE
+ hi Pmenu ctermfg=black ctermbg=grey cterm=NONE
+ hi PmenuSel ctermfg=black ctermbg=yellow cterm=NONE
+ hi PmenuSbar ctermfg=NONE ctermbg=white cterm=NONE
+ hi PmenuThumb ctermfg=NONE ctermbg=darkgrey cterm=NONE
+ hi TabLine ctermfg=black ctermbg=grey cterm=underline
+ hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=reverse
+ hi TabLineSel ctermfg=black ctermbg=white cterm=NONE
+ hi ToolbarLine ctermfg=NONE ctermbg=black cterm=NONE
+ hi ToolbarButton ctermfg=NONE ctermbg=grey cterm=NONE
+ hi NonText ctermfg=grey ctermbg=NONE cterm=NONE
+ hi SpecialKey ctermfg=grey ctermbg=NONE cterm=NONE
+ hi Visual ctermfg=black ctermbg=yellow cterm=NONE
+ hi VisualNOS ctermfg=NONE ctermbg=red cterm=NONE
+ hi LineNr ctermfg=darkred ctermbg=NONE cterm=NONE
+ hi FoldColumn ctermfg=darkblue ctermbg=NONE cterm=NONE
+ hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi Underlined ctermfg=blue ctermbg=NONE cterm=underline
+ hi Error ctermfg=red ctermbg=white cterm=reverse
+ hi ErrorMsg ctermfg=red ctermbg=white cterm=reverse
+ hi WarningMsg ctermfg=darkmagenta ctermbg=white cterm=NONE
+ hi MoreMsg ctermfg=black ctermbg=white cterm=NONE
+ hi ModeMsg ctermfg=black ctermbg=white cterm=NONE
+ hi Question ctermfg=magenta ctermbg=NONE cterm=NONE
+ hi Todo ctermfg=black ctermbg=yellow cterm=NONE
+ hi MatchParen ctermfg=white ctermbg=magenta cterm=NONE
+ hi Search ctermfg=white ctermbg=darkmagenta cterm=NONE
+ hi IncSearch ctermfg=black ctermbg=NONE cterm=reverse
+ hi WildMenu ctermfg=black ctermbg=yellow cterm=NONE
+ hi ColorColumn ctermfg=NONE ctermbg=grey cterm=NONE
+ hi Cursor ctermfg=white ctermbg=black cterm=NONE
+ hi lCursor ctermfg=black ctermbg=magenta cterm=NONE
+ hi SpellBad ctermfg=red ctermbg=NONE cterm=underline
+ hi SpellCap ctermfg=blue ctermbg=NONE cterm=underline
+ hi SpellLocal ctermfg=darkyellow ctermbg=NONE cterm=underline
+ hi SpellRare ctermfg=darkcyan ctermbg=NONE cterm=underline
+ hi Comment ctermfg=red ctermbg=NONE cterm=NONE
+ hi Constant ctermfg=magenta ctermbg=NONE cterm=NONE
+ hi Identifier ctermfg=blue ctermbg=NONE cterm=NONE
+ hi Statement ctermfg=darkred ctermbg=NONE cterm=NONE
+ hi PreProc ctermfg=darkmagenta ctermbg=NONE cterm=NONE
+ hi Type ctermfg=blue ctermbg=NONE cterm=NONE
+ hi Special ctermfg=magenta ctermbg=NONE cterm=NONE
+ hi Tag ctermfg=darkgreen ctermbg=NONE cterm=NONE
+ hi Directory ctermfg=blue ctermbg=NONE cterm=NONE
+ hi Conceal ctermfg=red ctermbg=NONE cterm=NONE
+ hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
+ hi Title ctermfg=darkmagenta ctermbg=NONE cterm=NONE
+ hi! link Terminal Normal
+ hi! link LineNrAbove LineNr
+ hi! link LineNrBelow LineNr
+ hi! link CurSearch Search
+ hi! link CursorLineFold CursorLine
+ hi! link CursorLineSign CursorLine
+ hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
+ hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
+ hi DiffText ctermfg=black ctermbg=grey cterm=NONE
+ hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
+ unlet s:t_Co
+ finish
+endif
+
+if s:t_Co >= 0
+ hi Normal term=NONE
+ hi ColorColumn term=reverse
+ hi Conceal term=NONE
+ hi Cursor term=reverse
+ hi CursorColumn term=NONE
+ hi CursorLine term=underline
+ hi CursorLineNr term=bold
+ hi DiffAdd term=reverse
+ hi DiffChange term=NONE
+ hi DiffDelete term=reverse
+ hi DiffText term=reverse
+ hi Directory term=NONE
+ hi EndOfBuffer term=NONE
+ hi ErrorMsg term=bold,reverse
+ hi FoldColumn term=NONE
+ hi Folded term=NONE
+ hi IncSearch term=bold,reverse,underline
+ hi LineNr term=NONE
+ hi MatchParen term=bold,underline
+ hi ModeMsg term=bold
+ hi MoreMsg term=NONE
+ hi NonText term=NONE
+ hi Pmenu term=reverse
+ hi PmenuSbar term=reverse
+ hi PmenuSel term=bold
+ hi PmenuThumb term=NONE
+ hi Question term=standout
+ hi Search term=reverse
+ hi SignColumn term=reverse
+ hi SpecialKey term=bold
+ hi SpellBad term=underline
+ hi SpellCap term=underline
+ hi SpellLocal term=underline
+ hi SpellRare term=underline
+ hi StatusLine term=bold,reverse
+ hi StatusLineNC term=bold,underline
+ hi TabLine term=bold,underline
+ hi TabLineFill term=NONE
+ hi Terminal term=NONE
+ hi TabLineSel term=bold,reverse
+ hi Title term=NONE
+ hi VertSplit term=NONE
+ hi Visual term=reverse
+ hi VisualNOS term=NONE
+ hi WarningMsg term=standout
+ hi WildMenu term=bold
+ hi CursorIM term=NONE
+ hi ToolbarLine term=reverse
+ hi ToolbarButton term=bold,reverse
+ hi CurSearch term=reverse
+ hi CursorLineFold term=underline
+ hi CursorLineSign term=underline
+ hi Comment term=bold
+ hi Constant term=NONE
+ hi Error term=bold,reverse
+ hi Identifier term=NONE
+ hi Ignore term=NONE
+ hi PreProc term=NONE
+ hi Special term=NONE
+ hi Statement term=NONE
+ hi Todo term=bold,reverse
+ hi Type term=NONE
+ hi Underlined term=underline
+ unlet s:t_Co
+ finish
+endif
+
+" Background: light
+" Color: comment #ff0000 196 red
+" Color: constant #ff00ff 201 magenta
+" Color: identifier #0000ff 21 blue
+" Color: statement #a52a2a 124 darkred
+" Color: preproc #a020f0 129 darkmagenta
+" Color: type #0000ff 21 blue
+" Color: special #ff00ff 201 magenta
+" Color: tag #006400 22 darkgreen
+" Color: fg0 #000000 16 black
+" Color: bg0 #ffffff 231 white
+" Color: bg1 #a9a9a9 248 grey
+" Color: status #a9a9a9 248 darkgrey
+" Color: visual #ffff00 226 yellow
+" Color: folded #d3d3d3 252 black
+" Color: folded_fg #00008b 18 darkblue
+" Color: cursorline #e5e5e5 254 black
+" Color: pmenu #dadada 253 grey
+" Color: wildmenu #ffff00 226 yellow
+" Color: error #ff0000 196 red
+" Color: linenr #a52a2a 124 darkred
+" Color: colorcolumn #eeeeee 255 grey
+" Color: slateblue #6a5acd 62 blue
+" Color: darkcyan #008787 30 darkcyan
+" Color: darkgreen #008700 28 darkgreen
+" Color: darkyellow #878700 100 darkyellow
+" Term colors: bg0 statement constant preproc identifier type special bg1
+" Term colors: comment statement constant preproc identifier type special fg0
+" Color: bgDiffA #5F875F 65 darkgreen
+" Color: bgDiffC #5F87AF 67 blue
+" Color: bgDiffD #AF5FAF 133 magenta
+" Color: bgDiffT #C6C6C6 251 grey
+" Color: fgDiffW #FFFFFF 231 white
+" Color: fgDiffB #000000 16 black
+" vim: et ts=2 sw=2
diff --git a/runtime/compiler/scdoc.vim b/runtime/compiler/scdoc.vim
index 2f6edc6322..c37969f89c 100644
--- a/runtime/compiler/scdoc.vim
+++ b/runtime/compiler/scdoc.vim
@@ -1,7 +1,8 @@
" scdoc compiler for Vim
" Compiler: scdoc
-" Maintainer: Greg Anders <greg@gpanders.com>
+" Maintainer: Gregory Anders <contact@gpanders.com>
" Last Updated: 2019-10-24
+" Upstream: https://github.com/gpanders/vim-scdoc
if exists('current_compiler')
finish
diff --git a/runtime/doc/api.txt b/runtime/doc/api.txt
index 36325fb0ba..34c2c31824 100644
--- a/runtime/doc/api.txt
+++ b/runtime/doc/api.txt
@@ -1570,18 +1570,46 @@ nvim_set_current_win({window}) *nvim_set_current_win()*
nvim_set_hl({ns_id}, {name}, {*val}) *nvim_set_hl()*
Sets a highlight group.
- Note: Unlike the `:highlight` command which can update a
- highlight group, this function completely replaces the
- definition. For example: `nvim_set_hl(0, 'Visual', {})` will
- clear the highlight group 'Visual'.
+ Note:
+ Unlike the `:highlight` command which can update a
+ highlight group, this function completely replaces the
+ definition. For example: `nvim_set_hl(0, 'Visual', {})`
+ will clear the highlight group 'Visual'.
+
+ Note:
+ The fg and bg keys also accept the string values `"fg"` or
+ `"bg"` which act as aliases to the corresponding
+ foreground and background values of the Normal group. If
+ the Normal group has not been defined, using these values
+ results in an error.
Parameters: ~
{ns_id} Namespace id for this highlight
|nvim_create_namespace()|. Use 0 to set a
highlight group globally |:highlight|.
{name} Highlight group name, e.g. "ErrorMsg"
- {val} Highlight definition map, like |synIDattr()|. In
- addition, the following keys are recognized:
+ {val} Highlight definition map, accepts the following
+ keys:
+ • fg (or foreground): color name or "#RRGGBB",
+ see note.
+ • bg (or background): color name or "#RRGGBB",
+ see note.
+ • sp (or special): color name or "#RRGGBB"
+ • blend: integer between 0 and 100
+ • bold: boolean
+ • standout: boolean
+ • underline: boolean
+ • underlineline: boolean
+ • undercurl: boolean
+ • underdot: boolean
+ • underdash: boolean
+ • strikethrough: boolean
+ • italic: boolean
+ • reverse: boolean
+ • nocombine: boolean
+ • link: name of another highlight group to link
+ to, see |:hi-link|. Additionally, the following
+ keys are recognized:
• default: Don't override existing definition
|:hi-default|
• ctermfg: Sets foreground of cterm color
@@ -1589,8 +1617,9 @@ nvim_set_hl({ns_id}, {name}, {*val}) *nvim_set_hl()*
• ctermbg: Sets background of cterm color
|highlight-ctermbg|
• cterm: cterm attribute map, like
- |highlight-args|. Note: Attributes default to
- those set for `gui` if not set.
+ |highlight-args|. If not set, cterm attributes
+ will match those from the attribute map
+ documented above.
nvim_set_keymap({mode}, {lhs}, {rhs}, {*opts}) *nvim_set_keymap()*
Sets a global |mapping| for the given mode.
@@ -1615,13 +1644,15 @@ nvim_set_keymap({mode}, {lhs}, {rhs}, {*opts}) *nvim_set_keymap()*
for |:map|.
{lhs} Left-hand-side |{lhs}| of the mapping.
{rhs} Right-hand-side |{rhs}| of the mapping.
- {opts} Optional parameters map. Accepts all
- |:map-arguments| as keys excluding |<buffer>| but
- including |noremap| and "desc". "desc" can be used
- to give a description to keymap. When called from
- Lua, also accepts a "callback" key that takes a
- Lua function to call when the mapping is executed.
- Values are Booleans. Unknown key is an error.
+ {opts} Optional parameters map: keys are
+ |:map-arguments|, values are booleans (default
+ false). Accepts all |:map-arguments| as keys
+ excluding |<buffer>| but including |noremap| and
+ "desc". Unknown key is an error. "desc" can be
+ used to give a description to the mapping. When
+ called from Lua, also accepts a "callback" key
+ that takes a Lua function to call when the mapping
+ is executed.
nvim_set_option({name}, {value}) *nvim_set_option()*
Sets the global value of an option.
@@ -1694,8 +1725,7 @@ Vimscript Functions *api-vimscript*
nvim_call_dict_function({dict}, {fn}, {args})
Calls a VimL |Dictionary-function| with the given arguments.
- On execution error: fails with VimL error, does not update
- v:errmsg.
+ On execution error: fails with VimL error, updates v:errmsg.
Parameters: ~
{dict} Dictionary, or String evaluating to a VimL |self|
@@ -1709,8 +1739,7 @@ nvim_call_dict_function({dict}, {fn}, {args})
nvim_call_function({fn}, {args}) *nvim_call_function()*
Calls a VimL function with the given arguments.
- On execution error: fails with VimL error, does not update
- v:errmsg.
+ On execution error: fails with VimL error, updates v:errmsg.
Parameters: ~
{fn} Function to call
@@ -1729,6 +1758,8 @@ nvim_cmd({*cmd}, {*opts}) *nvim_cmd()*
argument, expanding filenames in a command that otherwise
doesn't expand filenames, etc.
+ On execution error: fails with VimL error, updates v:errmsg.
+
Parameters: ~
{cmd} Command to execute. Must be a Dictionary that can
contain the same values as the return value of
@@ -1750,8 +1781,7 @@ nvim_cmd({*cmd}, {*opts}) *nvim_cmd()*
nvim_command({command}) *nvim_command()*
Executes an Ex command.
- On execution error: fails with VimL error, does not update
- v:errmsg.
+ On execution error: fails with VimL error, updates v:errmsg.
Prefer using |nvim_cmd()| or |nvim_exec()| over this. To
evaluate multiple lines of Vim script or an Ex command
@@ -1767,8 +1797,7 @@ nvim_eval({expr}) *nvim_eval()*
Evaluates a VimL |expression|. Dictionaries and Lists are
recursively expanded.
- On execution error: fails with VimL error, does not update
- v:errmsg.
+ On execution error: fails with VimL error, updates v:errmsg.
Parameters: ~
{expr} VimL expression string
@@ -1783,8 +1812,7 @@ nvim_exec({src}, {output}) *nvim_exec()*
Unlike |nvim_command()| this function supports heredocs,
script-scope (s:), etc.
- On execution error: fails with VimL error, does not update
- v:errmsg.
+ On execution error: fails with VimL error, updates v:errmsg.
Parameters: ~
{src} Vimscript code
diff --git a/runtime/doc/dev_style.txt b/runtime/doc/dev_style.txt
index 82f279e781..6f0b862d3f 100644
--- a/runtime/doc/dev_style.txt
+++ b/runtime/doc/dev_style.txt
@@ -48,22 +48,6 @@ The format of the symbol name should be `NVIM_<DIRECTORY>_<FILE>_H`.
<
-Names and Order of Includes ~
-
-Use standard order for readability and to avoid hidden dependencies: C
-library, other libraries' `.h`, your project's `.h`.
-
- In foo.c order your includes as follows:
-
- 1. C system files.
- 2. Other libraries' `.h` files.
- 3. Your project's `.h` files.
-
- Exception: sometimes, system-specific code needs conditional includes.
- Such code can put conditional includes after other includes. Of course,
- keep your system-specific code small and localized.
-
-
Constants ~
Do not use macros to define constants in headers.
@@ -787,15 +771,6 @@ getting used to, but it is important that all project contributors follow the
style rules so that they can all read and understand everyone's code easily.
-Line Length ~
-
-Each line of text in your code should be at most 100 characters long.
-
-Exception: if a comment line contains an example command or a literal URL
-longer than 100 characters, that line may be longer than 100 characters for ease
-of cut and paste.
-
-
Non-ASCII Characters ~
Non-ASCII characters should be rare, and must use UTF-8 formatting.
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 63a5b69070..d1686741b4 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -3137,10 +3137,13 @@ text...
:for {var} in {object} *:for* *E690* *E732*
:endfo[r] *:endfo* *:endfor*
Repeat the commands between `:for` and `:endfor` for
- each item in {object}. {object} can be a |List| or
- a |Blob|. Variable {var} is set to the value of each
- item. When an error is detected for a command inside
- the loop, execution continues after the `endfor`.
+ each item in {object}. {object} can be a |List|,
+ a |Blob| or a |String|.
+
+ Variable {var} is set to the value of each item.
+
+ When an error is detected for a command inside the
+ loop, execution continues after the `endfor`.
Changing {object} inside the loop affects what items
are used. Make a copy if this is unwanted: >
:for item in copy(mylist)
diff --git a/runtime/doc/lua.txt b/runtime/doc/lua.txt
index 150a3d18e9..b551552c03 100644
--- a/runtime/doc/lua.txt
+++ b/runtime/doc/lua.txt
@@ -690,8 +690,9 @@ matching within a single line.
vim.regex({re}) *vim.regex()*
Parse the Vim regex {re} and return a regex object. Regexes are
- "magic" and case-insensitive by default, regardless of 'magic' and
- 'ignorecase'. They can be controlled with flags, see |/magic|.
+ "magic" and case-sensitive by default, regardless of 'magic' and
+ 'ignorecase'. They can be controlled with flags, see |/magic| and
+ |/ignorecase|.
Methods on the regex object:
@@ -1331,7 +1332,8 @@ defer_fn({fn}, {timeout}) *vim.defer_fn()*
Return: ~
timer luv timer object
-deprecate({name}, {alternative}, {version}, {plugin}) *vim.deprecate()*
+ *vim.deprecate()*
+deprecate({name}, {alternative}, {version}, {plugin}, {backtrace})
Display a deprecation notification to the user.
Parameters: ~
@@ -1342,6 +1344,8 @@ deprecate({name}, {alternative}, {version}, {plugin}) *vim.deprecate()*
function will be removed.
{plugin} string|nil Plugin name that the function
will be removed from. Defaults to "Nvim".
+ {backtrace} boolean|nil Prints backtrace. Defaults to
+ true.
inspect({object}, {options}) *vim.inspect()*
Return a human-readable representation of the given object.
@@ -1379,6 +1383,9 @@ notify_once({msg}, {level}, {opts}) *vim.notify_once()*
{opts} (table|nil) Optional parameters. Unused by
default.
+ Return: ~
+ (boolean) true if message was displayed, else false
+
on_key({fn}, {ns_id}) *vim.on_key()*
Adds Lua function {fn} with namespace id {ns_id} as a listener
to every, yes every, input key.
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index 2a78d975ee..0aceb30ce0 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -453,7 +453,7 @@ your own highlight colors for the progress bar. Example: >
hi TOhtmlProgress guifg=#c0ffee ctermbg=7
<
*g:html_number_lines*
-Default: current 'number' setting.
+Default: Current 'number' setting.
When 0, buffer text is displayed in the generated HTML without line numbering.
When 1, a column of line numbers is added to the generated HTML with the same
highlighting as the line number column in Vim (|hl-LineNr|).
@@ -542,7 +542,7 @@ folded text will open the fold as if |g:html_hover_unfold| were set.
:let g:html_no_foldcolumn = 1
<
*TOhtml-uncopyable-text* *g:html_prevent_copy*
-Default: empty string.
+Default: Empty string.
This option prevents certain regions of the generated HTML from being copied,
when you select all text in document rendered in a browser and copy it. Useful
for allowing users to copy-paste only the source text even if a fold column or
@@ -568,7 +568,7 @@ uncopyable regions. In some browsers, especially older browsers, after
selecting an entire page and copying the selection, the <input> tags are not
pasted with the page text. If |g:html_no_invalid| is 0, the <input> tags have
invalid type; this works in more browsers, but the page will not validate.
-Note: this method does NOT work in recent versions of Chrome and equivalent
+Note: This method does NOT work in recent versions of Chrome and equivalent
browsers; the <input> tags get pasted with the text.
When "fallback" (default value), the same <input> elements are generated for
@@ -624,12 +624,12 @@ To append a string "_mystring" to the end of each ID: >
:let g:html_id_expr = '"_mystring"'
<
-Note, when converting a diff view to HTML, the expression will only be
+Note: When converting a diff view to HTML, the expression will only be
evaluated for the first window in the diff, and the result used for all the
windows.
*TOhtml-wrap-text* *g:html_pre_wrap*
-Default: current 'wrap' setting.
+Default: Current 'wrap' setting.
When 0, if |g:html_no_pre| is 0 or unset, the text in the generated HTML does
not wrap at the edge of the browser window.
When 1, if |g:html_use_css| is 1, the CSS 2.0 "white-space:pre-wrap" value is
@@ -689,7 +689,7 @@ wide browser support. However, you can override this to support specific
encodings that may not be automatically detected by default (see options
below). See http://www.iana.org/assignments/character-sets for the IANA names.
-Note, by default all Unicode encodings are converted to UTF-8 with no BOM in
+Note: By default all Unicode encodings are converted to UTF-8 with no BOM in
the generated HTML, as recommended by W3C:
http://www.w3.org/International/questions/qa-choosing-encodings
@@ -1293,8 +1293,8 @@ the global or buffer-local variable load_doxygen_syntax. This is done by
adding the following to your vimrc. >
:let g:load_doxygen_syntax=1
-There are a couple of variables that have an effect on syntax highlighting, and
-are to do with non-standard highlighting options.
+There are a couple of variables that have an effect on syntax highlighting,
+and are to do with non-standard highlighting options.
Variable Default Effect ~
g:doxygen_enhanced_color
@@ -1436,8 +1436,8 @@ To enable highlighting some special atoms, put this in your vimrc: >
ELIXIR *elixir.vim* *ft-elixir-syntax*
-Elixir is a dynamic, functional language for building scalable and maintainable
-applications.
+Elixir is a dynamic, functional language for building scalable and
+maintainable applications.
The following file extensions are auto-detected as Elixir file types:
@@ -1453,7 +1453,7 @@ Elixir.
FLEXWIKI *flexwiki.vim* *ft-flexwiki-syntax*
FlexWiki is an ASP.NET-based wiki package available at http://www.flexwiki.com
-NOTE: this site currently doesn't work, on Wikipedia is mentioned that
+NOTE: This site currently doesn't work, on Wikipedia is mentioned that
development stopped in 2009.
Syntax highlighting is available for the most common elements of FlexWiki
@@ -1533,8 +1533,8 @@ syntax highlighting will not be correct if the form is incorrectly set.
When you create a new fortran file, the syntax script assumes fixed source
form. If you always use free source form, then >
:let fortran_free_source=1
-in your vimrc prior to the :syntax on command. If you always use fixed source
-form, then >
+in your vimrc prior to the :syntax on command. If you always use fixed
+source form, then >
:let fortran_fixed_source=1
in your vimrc prior to the :syntax on command.
@@ -1807,8 +1807,8 @@ ends with -->) you can define >
JavaScript and Visual Basic embedded inside HTML documents are highlighted as
'Special' with statements, comments, strings and so on colored as in standard
-programming languages. Note that only JavaScript and Visual Basic are currently
-supported, no other scripting language has been added yet.
+programming languages. Note that only JavaScript and Visual Basic are
+currently supported, no other scripting language has been added yet.
Embedded and inlined cascading style sheets (CSS) are highlighted too.
@@ -1912,8 +1912,8 @@ The java.vim syntax highlighting file offers several options:
In Java 1.0.2 it was never possible to have braces inside parens, so this was
flagged as an error. Since Java 1.1 this is possible (with anonymous
-classes), and therefore is no longer marked as an error. If you prefer the old
-way, put the following line into your vim startup file: >
+classes), and therefore is no longer marked as an error. If you prefer the
+old way, put the following line into your vim startup file: >
:let java_mark_braces_in_parens_as_errors=1
All identifiers in java.lang.* are always visible in all classes. To
@@ -2031,10 +2031,10 @@ LISP *lisp.vim* *ft-lisp-syntax*
The lisp syntax highlighting provides two options: >
- g:lisp_instring : if it exists, then "(...)" strings are highlighted
+ g:lisp_instring : If it exists, then "(...)" strings are highlighted
as if the contents of the string were lisp.
Useful for AutoLisp.
- g:lisp_rainbow : if it exists and is nonzero, then differing levels
+ g:lisp_rainbow : If it exists and is nonzero, then differing levels
of parenthesization will receive different
highlighting.
<
@@ -2440,8 +2440,8 @@ If you do not want complex things like '@{${"foo"}}' to be parsed: >
(In Vim 6.x it was the other way around: "perl_extended_vars" enabled it.)
-The coloring strings can be changed. By default strings and qq friends will be
-highlighted like the first line. If you set the variable
+The coloring strings can be changed. By default strings and qq friends will
+be highlighted like the first line. If you set the variable
perl_string_as_statement, it will be highlighted as in the second line.
"hello world!"; qq|hello world|;
@@ -2453,8 +2453,8 @@ perl_string_as_statement, it will be highlighted as in the second line.
The syncing has 3 options. The first two switch off some triggering of
synchronization and should only be needed in case it fails to work properly.
If while scrolling all of a sudden the whole screen changes color completely
-then you should try and switch off one of those. Let me know if you can figure
-out the line that causes the mistake.
+then you should try and switch off one of those. Let me know if you can
+figure out the line that causes the mistake.
One triggers on "^\s*sub\s*" and the other on "^[$@%]" more or less. >
@@ -2491,7 +2491,7 @@ behavior, set 'perl_nofold_packages': >
PHP3 and PHP4 *php.vim* *php3.vim* *ft-php-syntax* *ft-php3-syntax*
-[note: previously this was called "php3", but since it now also supports php4
+[Note: Previously this was called "php3", but since it now also supports php4
it has been renamed to "php"]
There are the following options for the php syntax highlighting.
@@ -2561,15 +2561,15 @@ PPWizard is a preprocessor for HTML and OS/2 INF files
This syntax file has the options:
-- ppwiz_highlight_defs : determines highlighting mode for PPWizard's
+- ppwiz_highlight_defs : Determines highlighting mode for PPWizard's
definitions. Possible values are
ppwiz_highlight_defs = 1 : PPWizard #define statements retain the
- colors of their contents (e.g. PPWizard macros and variables)
+ colors of their contents (e.g. PPWizard macros and variables).
- ppwiz_highlight_defs = 2 : preprocessor #define and #evaluate
+ ppwiz_highlight_defs = 2 : Preprocessor #define and #evaluate
statements are shown in a single color with the exception of line
- continuation symbols
+ continuation symbols.
The default setting for ppwiz_highlight_defs is 1.
@@ -2608,7 +2608,7 @@ highlighted by defining the postscr_level variable as follows: >
If this variable is not defined it defaults to 2 (level 2) since this is
the most prevalent version currently.
-Note, not all PS interpreters will support all language features for a
+Note: Not all PS interpreters will support all language features for a
particular language level. In particular the %!PS-Adobe-3.0 at the start of
PS files does NOT mean the PostScript present is level 3 PostScript!
@@ -2710,7 +2710,7 @@ If you want all possible Python highlighting (the same as setting the
preceding last option and unsetting all other ones): >
:let python_highlight_all = 1
-Note: only existence of these options matter, not their value. You can replace
+Note: Only existence of these options matter, not their value. You can replace
1 above with anything.
QUAKE *quake.vim* *ft-quake-syntax*
@@ -3150,16 +3150,16 @@ The Speedup syntax file has some options:
the DECLARE section; if you defined own types, you have to include
them in the syntax file.
-- oneline_comments : this value ranges from 1 to 3 and determines the
+- oneline_comments : This value ranges from 1 to 3 and determines the
highlighting of # style comments.
- oneline_comments = 1 : allow normal Speedup code after an even
+ oneline_comments = 1 : Allow normal Speedup code after an even
number of #s.
- oneline_comments = 2 : show code starting with the second # as
+ oneline_comments = 2 : Show code starting with the second # as
error. This is the default setting.
- oneline_comments = 3 : show the whole line as error if it contains
+ oneline_comments = 3 : Show the whole line as error if it contains
more than one #.
Since especially OPERATION sections tend to become very large due to
@@ -3198,8 +3198,8 @@ This covers the shell named "tcsh". It is a superset of csh. See |csh.vim|
for how the filetype is detected.
Tcsh does not allow \" in strings unless the "backslash_quote" shell variable
-is set. If you want VIM to assume that no backslash quote constructs exist add
-this line to your vimrc: >
+is set. If you want VIM to assume that no backslash quote constructs exist
+add this line to your vimrc: >
:let tcsh_backslash_quote = 0
@@ -3552,7 +3552,7 @@ start and end tags. This can be turned on by >
:let g:xml_syntax_folding = 1
:set foldmethod=syntax
-Note: syntax folding might slow down syntax highlighting significantly,
+Note: Syntax folding might slow down syntax highlighting significantly,
especially for large files.
@@ -4982,8 +4982,8 @@ ctermbg={color-nr} *highlight-ctermbg*
a number instead of a color name.
Note that for 16 color ansi style terminals (including xterms), the
- numbers in the NR-8 column is used. Here '*' means 'add 8' so that Blue
- is 12, DarkGray is 8 etc.
+ numbers in the NR-8 column is used. Here '*' means 'add 8' so that
+ Blue is 12, DarkGray is 8 etc.
Note that for some color terminals these names may result in the wrong
colors!
@@ -5096,56 +5096,56 @@ These are the builtin highlighting groups. Note that the highlighting depends
on the value of 'background'. You can see the current settings with the
":highlight" command.
*hl-ColorColumn*
-ColorColumn used for the columns set with 'colorcolumn'
+ColorColumn Used for the columns set with 'colorcolumn'.
*hl-Conceal*
-Conceal placeholder characters substituted for concealed
- text (see 'conceallevel')
+Conceal Placeholder characters substituted for concealed
+ text (see 'conceallevel').
*hl-CurSearch*
-CurSearch used for highlighting a search pattern under the cursor
- (see 'hlsearch')
+CurSearch Used for highlighting a search pattern under the cursor
+ (see 'hlsearch').
*hl-Cursor*
-Cursor character under the cursor
-lCursor the character under the cursor when |language-mapping|
- is used (see 'guicursor')
+Cursor Character under the cursor.
+lCursor Character under the cursor when |language-mapping|
+ is used (see 'guicursor').
*hl-CursorIM*
-CursorIM like Cursor, but used when in IME mode |CursorIM|
+CursorIM Like Cursor, but used when in IME mode. |CursorIM|
*hl-CursorColumn*
CursorColumn Screen-column at the cursor, when 'cursorcolumn' is set.
*hl-CursorLine*
CursorLine Screen-line at the cursor, when 'cursorline' is set.
Low-priority if foreground (ctermfg OR guifg) is not set.
*hl-Directory*
-Directory directory names (and other special names in listings)
+Directory Directory names (and other special names in listings).
*hl-DiffAdd*
-DiffAdd diff mode: Added line |diff.txt|
+DiffAdd Diff mode: Added line. |diff.txt|
*hl-DiffChange*
-DiffChange diff mode: Changed line |diff.txt|
+DiffChange Diff mode: Changed line. |diff.txt|
*hl-DiffDelete*
-DiffDelete diff mode: Deleted line |diff.txt|
+DiffDelete Diff mode: Deleted line. |diff.txt|
*hl-DiffText*
-DiffText diff mode: Changed text within a changed line |diff.txt|
+DiffText Diff mode: Changed text within a changed line. |diff.txt|
*hl-EndOfBuffer*
-EndOfBuffer filler lines (~) after the end of the buffer.
+EndOfBuffer Filler lines (~) after the end of the buffer.
By default, this is highlighted like |hl-NonText|.
*hl-TermCursor*
-TermCursor cursor in a focused terminal
+TermCursor Cursor in a focused terminal.
*hl-TermCursorNC*
-TermCursorNC cursor in an unfocused terminal
+TermCursorNC Cursor in an unfocused terminal.
*hl-ErrorMsg*
-ErrorMsg error messages on the command line
+ErrorMsg Error messages on the command line.
*hl-WinSeparator*
-WinSeparator separators between window splits
+WinSeparator Separators between window splits.
*hl-Folded*
-Folded line used for closed folds
+Folded Line used for closed folds.
*hl-FoldColumn*
FoldColumn 'foldcolumn'
*hl-SignColumn*
-SignColumn column where |signs| are displayed
+SignColumn Column where |signs| are displayed.
*hl-IncSearch*
IncSearch 'incsearch' highlighting; also used for the text replaced with
- ":s///c"
+ ":s///c".
*hl-Substitute*
-Substitute |:substitute| replacement text highlighting
+Substitute |:substitute| replacement text highlighting.
*hl-LineNr*
LineNr Line number for ":number" and ":#" commands, and when 'number'
@@ -5164,15 +5164,15 @@ CursorLineSign Like SignColumn when 'cursorline' is set for the cursor line.
*hl-CursorLineFold*
CursorLineFold Like FoldColumn when 'cursorline' is set for the cursor line.
*hl-MatchParen*
-MatchParen The character under the cursor or just before it, if it
+MatchParen Character under the cursor or just before it, if it
is a paired bracket, and its match. |pi_paren.txt|
*hl-ModeMsg*
-ModeMsg 'showmode' message (e.g., "-- INSERT --")
+ModeMsg 'showmode' message (e.g., "-- INSERT --").
*hl-MsgArea*
-MsgArea Area for messages and cmdline
+MsgArea Area for messages and cmdline.
*hl-MsgSeparator*
-MsgSeparator Separator for scrolled messages, `msgsep` flag of 'display'
+MsgSeparator Separator for scrolled messages, `msgsep` flag of 'display'.
*hl-MoreMsg*
MoreMsg |more-prompt|
*hl-NonText*
@@ -5181,21 +5181,21 @@ NonText '@' at the end of the window, characters from 'showbreak'
(e.g., ">" displayed when a double-wide character doesn't
fit at the end of the line). See also |hl-EndOfBuffer|.
*hl-Normal*
-Normal normal text
+Normal Normal text.
*hl-NormalFloat*
NormalFloat Normal text in floating windows.
*hl-NormalNC*
-NormalNC normal text in non-current windows
+NormalNC Normal text in non-current windows.
*hl-Pmenu*
-Pmenu Popup menu: normal item.
+Pmenu Popup menu: Normal item.
*hl-PmenuSel*
-PmenuSel Popup menu: selected item.
+PmenuSel Popup menu: Selected item.
*hl-PmenuSbar*
-PmenuSbar Popup menu: scrollbar.
+PmenuSbar Popup menu: Scrollbar.
*hl-PmenuThumb*
PmenuThumb Popup menu: Thumb of the scrollbar.
*hl-Question*
-Question |hit-enter| prompt and yes/no questions
+Question |hit-enter| prompt and yes/no questions.
*hl-QuickFixLine*
QuickFixLine Current |quickfix| item in the quickfix window. Combined with
|hl-CursorLine| when the cursor is there.
@@ -5203,7 +5203,7 @@ QuickFixLine Current |quickfix| item in the quickfix window. Combined with
Search Last search pattern highlighting (see 'hlsearch').
Also used for similar items that need to stand out.
*hl-SpecialKey*
-SpecialKey Unprintable characters: text displayed differently from what
+SpecialKey Unprintable characters: Text displayed differently from what
it really is. But not 'listchars' whitespace. |hl-Whitespace|
*hl-SpellBad*
SpellBad Word that is not recognized by the spellchecker. |spell|
@@ -5220,30 +5220,30 @@ SpellRare Word that is recognized by the spellchecker as one that is
hardly ever used. |spell|
Combined with the highlighting used otherwise.
*hl-StatusLine*
-StatusLine status line of current window
+StatusLine Status line of current window.
*hl-StatusLineNC*
-StatusLineNC status lines of not-current windows
- Note: if this is equal to "StatusLine" Vim will use "^^^" in
+StatusLineNC Status lines of not-current windows.
+ Note: If this is equal to "StatusLine", Vim will use "^^^" in
the status line of the current window.
*hl-TabLine*
-TabLine tab pages line, not active tab page label
+TabLine Tab pages line, not active tab page label.
*hl-TabLineFill*
-TabLineFill tab pages line, where there are no labels
+TabLineFill Tab pages line, where there are no labels.
*hl-TabLineSel*
-TabLineSel tab pages line, active tab page label
+TabLineSel Tab pages line, active tab page label.
*hl-Title*
-Title titles for output from ":set all", ":autocmd" etc.
+Title Titles for output from ":set all", ":autocmd" etc.
*hl-Visual*
-Visual Visual mode selection
+Visual Visual mode selection.
*hl-VisualNOS*
VisualNOS Visual mode selection when vim is "Not Owning the Selection".
*hl-WarningMsg*
-WarningMsg warning messages
+WarningMsg Warning messages.
*hl-Whitespace*
Whitespace "nbsp", "space", "tab", "multispace", "lead" and "trail"
- in 'listchars'
+ in 'listchars'.
*hl-WildMenu*
-WildMenu current match in 'wildmenu' completion
+WildMenu Current match in 'wildmenu' completion.
*hl-User1* *hl-User1..9* *hl-User9*
The 'statusline' syntax allows the use of 9 different highlights in the
diff --git a/runtime/doc/windows.txt b/runtime/doc/windows.txt
index cd5425336f..8062b9e28f 100644
--- a/runtime/doc/windows.txt
+++ b/runtime/doc/windows.txt
@@ -983,7 +983,7 @@ modified, but is forced (with '!') to be removed from a window, and
'autowrite' is off or the buffer can't be written.
You can make a hidden buffer not hidden by starting to edit it with any
-command. Or by deleting it with the ":bdelete" command.
+command, or by deleting it with the ":bdelete" command.
The 'hidden' is global, it is used for all buffers. The 'bufhidden' option
can be used to make an exception for a specific buffer. It can take these
diff --git a/runtime/ftplugin/man.vim b/runtime/ftplugin/man.vim
index fce12012b5..d7a08a9941 100644
--- a/runtime/ftplugin/man.vim
+++ b/runtime/ftplugin/man.vim
@@ -24,7 +24,11 @@ if !exists('g:no_plugin_maps') && !exists('g:no_man_maps')
nnoremap <silent> <buffer> k gk
nnoremap <silent> <buffer> gO :call man#show_toc()<CR>
nnoremap <silent> <buffer> <2-LeftMouse> :Man<CR>
- nnoremap <silent> <buffer> <nowait> q :lclose<CR><C-W>c
+ if get(b:, 'pager')
+ nnoremap <silent> <buffer> <nowait> q :lclose<CR><C-W>q
+ else
+ nnoremap <silent> <buffer> <nowait> q :lclose<CR><C-W>c
+ endif
endif
if get(g:, 'ft_man_folding_enable', 0)
diff --git a/runtime/ftplugin/scdoc.vim b/runtime/ftplugin/scdoc.vim
index 2e98e647f4..552c865baa 100644
--- a/runtime/ftplugin/scdoc.vim
+++ b/runtime/ftplugin/scdoc.vim
@@ -1,6 +1,7 @@
" scdoc filetype plugin
-" Maintainer: Gregory Anders <greg@gpanders.com>
-" Last Updated: 2021-08-04
+" Maintainer: Gregory Anders <contact@gpanders.com>
+" Last Updated: 2022-05-09
+" Upstream: https://github.com/gpanders/vim-scdoc
" Only do this when not done yet for this buffer
if exists('b:did_ftplugin')
@@ -19,8 +20,3 @@ setlocal softtabstop=0
setlocal textwidth=80
let b:undo_ftplugin = 'setl com< cms< fo< et< sw< sts< tw<'
-
-if has('conceal')
- setlocal conceallevel=2
- let b:undo_ftplugin .= ' cole<'
-endif
diff --git a/runtime/lua/vim/_editor.lua b/runtime/lua/vim/_editor.lua
index ac9adada39..e6ab48f30d 100644
--- a/runtime/lua/vim/_editor.lua
+++ b/runtime/lua/vim/_editor.lua
@@ -445,11 +445,14 @@ do
---@param msg string Content of the notification to show to the user.
---@param level number|nil One of the values from |vim.log.levels|.
---@param opts table|nil Optional parameters. Unused by default.
- function vim.notify_once(msg, level, opts) -- luacheck: no unused args
+ ---@return boolean true if message was displayed, else false
+ function vim.notify_once(msg, level, opts)
if not notified[msg] then
vim.notify(msg, level, opts)
notified[msg] = true
+ return true
end
+ return false
end
end
@@ -783,12 +786,15 @@ end
--- be removed.
---@param plugin string|nil Plugin name that the function will be removed
--- from. Defaults to "Nvim".
-function vim.deprecate(name, alternative, version, plugin)
+---@param backtrace boolean|nil Prints backtrace. Defaults to true.
+function vim.deprecate(name, alternative, version, plugin, backtrace)
local message = name .. ' is deprecated'
plugin = plugin or 'Nvim'
message = alternative and (message .. ', use ' .. alternative .. ' instead.') or message
message = message .. ' See :h deprecated\nThis function will be removed in ' .. plugin .. ' version ' .. version
- vim.notify_once(message, vim.log.levels.WARN)
+ if vim.notify_once(message, vim.log.levels.WARN) and backtrace ~= false then
+ vim.notify(debug.traceback('', 2):sub(2), vim.log.levels.WARN)
+ end
end
require('vim._meta')
diff --git a/runtime/nvim.desktop b/runtime/nvim.desktop
index 052904dd76..224353c6ad 100644
--- a/runtime/nvim.desktop
+++ b/runtime/nvim.desktop
@@ -1,6 +1,7 @@
[Desktop Entry]
Name=Neovim
GenericName=Text Editor
+GenericName[ckb]=دەستکاریکەری دەق
GenericName[de]=Texteditor
GenericName[fr]=Éditeur de texte
GenericName[ru]=Текстовый редактор
@@ -16,6 +17,7 @@ Comment[bg]=Редактиране на текстови файлове
Comment[bn]=টেক্স্ট ফাইল এডিট করুন
Comment[bs]=Izmijeni tekstualne datoteke
Comment[ca]=Edita fitxers de text
+Comment[ckb]=دەستکاریی فایلی دەق بکە
Comment[cs]=Úprava textových souborů
Comment[cy]=Golygu ffeiliau testun
Comment[da]=Redigér tekstfiler
@@ -79,6 +81,7 @@ Exec=nvim %F
Terminal=true
Type=Application
Keywords=Text;editor;
+Keywords[ckb]=دەق;دەستکاریکەر;
Keywords[fr]=Texte;éditeur;
Keywords[ru]=текст;текстовый редактор;
Keywords[sr]=Текст;едитор;
diff --git a/runtime/syntax/debchangelog.vim b/runtime/syntax/debchangelog.vim
index 8d09af0886..2efd919772 100644
--- a/runtime/syntax/debchangelog.vim
+++ b/runtime/syntax/debchangelog.vim
@@ -3,7 +3,7 @@
" Maintainer: Debian Vim Maintainers
" Former Maintainers: Gerfried Fuchs <alfie@ist.org>
" Wichert Akkerman <wakkerma@debian.org>
-" Last Change: 2022 Mar 28
+" Last Change: 2022 May 01
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debchangelog.vim
" Standard syntax initialization
@@ -24,7 +24,7 @@ let s:supported = [
\ 'jessie', 'stretch', 'buster', 'bullseye', 'bookworm',
\ 'trixie', 'sid', 'rc-buggy',
\
- \ 'trusty', 'xenial', 'bionic', 'focal', 'impish', 'jammy',
+ \ 'trusty', 'xenial', 'bionic', 'focal', 'impish', 'jammy', 'kinetic',
\ 'devel'
\ ]
let s:unsupported = [
diff --git a/runtime/syntax/debcontrol.vim b/runtime/syntax/debcontrol.vim
index 8b65ece4ca..4c7fb5dd63 100644
--- a/runtime/syntax/debcontrol.vim
+++ b/runtime/syntax/debcontrol.vim
@@ -3,7 +3,7 @@
" Maintainer: Debian Vim Maintainers
" Former Maintainers: Gerfried Fuchs <alfie@ist.org>
" Wichert Akkerman <wakkerma@debian.org>
-" Last Change: 2021 Nov 26
+" Last Change: 2022 May 11
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debcontrol.vim
" Standard syntax initialization
@@ -17,7 +17,7 @@ set cpo&vim
" Should match case except for the keys of each field
syn case match
-syn iskeyword @,48-57,-,/
+syn iskeyword @,48-57,-
" Everything that is not explicitly matched by the rules below
syn match debcontrolElse "^.*$"
diff --git a/runtime/syntax/debsources.vim b/runtime/syntax/debsources.vim
index d79ce4b573..e3ec6e6598 100644
--- a/runtime/syntax/debsources.vim
+++ b/runtime/syntax/debsources.vim
@@ -2,7 +2,7 @@
" Language: Debian sources.list
" Maintainer: Debian Vim Maintainers
" Former Maintainer: Matthijs Mohlmann <matthijs@cacholong.nl>
-" Last Change: 2022 Mar 28
+" Last Change: 2022 May 01
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debsources.vim
" Standard syntax initialization
@@ -26,7 +26,7 @@ let s:supported = [
\ 'jessie', 'stretch', 'buster', 'bullseye', 'bookworm',
\ 'trixie', 'sid', 'rc-buggy',
\
- \ 'trusty', 'xenial', 'bionic', 'focal', 'impish', 'jammy',
+ \ 'trusty', 'xenial', 'bionic', 'focal', 'impish', 'jammy', 'kinetic',
\ 'devel'
\ ]
let s:unsupported = [
diff --git a/runtime/syntax/man.vim b/runtime/syntax/man.vim
index 55b0e16de9..89162f1e20 100644
--- a/runtime/syntax/man.vim
+++ b/runtime/syntax/man.vim
@@ -10,7 +10,7 @@ syntax match manReference display '[^()[:space:]]\+(\%([0-9][a-z]*\|[nlpox]
syntax match manSectionHeading display '^\S.*$'
syntax match manHeader display '^\%1l.*$'
syntax match manSubHeading display '^ \{3\}\S.*$'
-syntax match manOptionDesc display '^\s\+\%(+\|-\)\S\+'
+syntax match manOptionDesc display '^\s\+\(\%(+\|-\)\S\+,\s\+\)*\%(+\|-\)\S\+'
highlight default link manHeader Title
highlight default link manSectionHeading Statement
diff --git a/runtime/syntax/scdoc.vim b/runtime/syntax/scdoc.vim
index 25c9c5433b..0180f35027 100644
--- a/runtime/syntax/scdoc.vim
+++ b/runtime/syntax/scdoc.vim
@@ -1,6 +1,7 @@
" Syntax file for scdoc files
-" Maintainer: Gregory Anders <greg@gpanders.com>
-" Last Updated: 2021-08-04
+" Maintainer: Gregory Anders <contact@gpanders.com>
+" Last Updated: 2022-05-09
+" Upstream: https://github.com/gpanders/vim-scdoc
if exists('b:current_syntax')
finish
@@ -20,33 +21,43 @@ syntax match scdocIndentError "^[ ]\+"
syntax match scdocLineBreak "++$"
-syntax match scdocOrderedListMarker "^\s*\.\%(\s\+\S\)\@="
-syntax match scdocListMarker "^\s*-\%(\s\+\S\)\@="
+syntax region scdocOrderedListItem matchgroup=scdocOrderedListMarker start="^\z(\s*\)\." skip="^\z1 .*$" end="^" contains=scdocBold,scdocUnderline
+syntax region scdocListItem matchgroup=scdocListMarker start="^\z(\s*\)-" skip="^\z1 .*$" end="^" contains=scdocBold,scdocUnderline
-syntax match scdocTableStartMarker "^[\[|\]][\[\-\]]"
-syntax match scdocTableMarker "^[|:][\[\-\] ]"
+" Tables cannot start with a column
+syntax match scdocTableError "^:"
+
+syntax region scdocTable matchgroup=scdocTableEntry start="^[\[|\]][\[\-\]<=>]" end="^$" contains=scdocTableEntry,scdocTableError,scdocTableContinuation,scdocBold,scdocUnderline,scdocPre
+syntax match scdocTableError "^.*$" contained
+syntax match scdocTableContinuation "^ \+\S\+" contained
+syntax match scdocTableEntry "^[|:][\[\-\]<=> ]" contained
+syntax match scdocTableError "^[|:][\[\-\]<=> ]\S.*$" contained
syntax region scdocBold concealends matchgroup=scdocBoldDelimiter start="\\\@<!\*" end="\\\@<!\*"
syntax region scdocUnderline concealends matchgroup=scdocUnderlineDelimiter start="\<\\\@<!_" end="\\\@<!_\>"
syntax region scdocPre matchgroup=scdocPreDelimiter start="^\t*```" end="^\t*```"
-hi link scdocFirstLineValid Comment
-hi link scdocComment Comment
-hi link scdocHeader Title
-hi link scdocOrderedListMarker Statement
-hi link scdocListMarker scdocOrderedListMarker
-hi link scdocLineBreak Special
-hi link scdocTableMarker Statement
-hi link scdocTableStartMarker scdocTableMarker
-
-hi link scdocFirstLineError Error
-hi link scdocCommentError Error
-hi link scdocHeaderError Error
-hi link scdocIndentError Error
-
-hi link scdocPreDelimiter Delimiter
-
-hi scdocBold term=bold cterm=bold gui=bold
-hi scdocUnderline term=underline cterm=underline gui=underline
-hi link scdocBoldDelimiter scdocBold
-hi link scdocUnderlineDelimiter scdocUnderline
+syntax sync minlines=50
+
+hi default link scdocFirstLineValid Comment
+hi default link scdocComment Comment
+hi default link scdocHeader Title
+hi default link scdocOrderedListMarker Statement
+hi default link scdocListMarker scdocOrderedListMarker
+hi default link scdocLineBreak Special
+hi default link scdocTableSpecifier Statement
+hi default link scdocTableEntry Statement
+
+hi default link scdocFirstLineError Error
+hi default link scdocCommentError Error
+hi default link scdocHeaderError Error
+hi default link scdocIndentError Error
+hi default link scdocTableError Error
+hi default link scdocTableError Error
+
+hi default link scdocPreDelimiter Delimiter
+
+hi default scdocBold term=bold cterm=bold gui=bold
+hi default scdocUnderline term=underline cterm=underline gui=underline
+hi default link scdocBoldDelimiter scdocBold
+hi default link scdocUnderlineDelimiter scdocUnderline
diff --git a/scripts/gen_vimdoc.py b/scripts/gen_vimdoc.py
index 57b46a381e..755749cef6 100755
--- a/scripts/gen_vimdoc.py
+++ b/scripts/gen_vimdoc.py
@@ -79,13 +79,11 @@ LOG_LEVELS = {
]
}
-fmt_vimhelp = False # HACK
text_width = 78
script_path = os.path.abspath(__file__)
base_dir = os.path.dirname(os.path.dirname(script_path))
out_dir = os.path.join(base_dir, 'tmp-{target}-doc')
filter_cmd = '%s %s' % (sys.executable, script_path)
-seen_funcs = set()
msgs = [] # Messages to show on exit.
lua2dox_filter = os.path.join(base_dir, 'scripts', 'lua2dox_filter')
@@ -287,11 +285,6 @@ annotation_map = {
}
-# Tracks `xrefsect` titles. As of this writing, used only for separating
-# deprecated functions.
-xrefs = set()
-
-
# Raises an error with details about `o`, if `cond` is in object `o`,
# or if `cond()` is callable and returns True.
def debug_this(o, cond=True):
@@ -485,10 +478,8 @@ def update_params_map(parent, ret_map, width=62):
return ret_map
-def render_node(n, text, prefix='', indent='', width=62):
+def render_node(n, text, prefix='', indent='', width=62, fmt_vimhelp=False):
"""Renders a node as Vim help text, recursively traversing all descendants."""
- global fmt_vimhelp
- global has_seen_preformatted
def ind(s):
return s if fmt_vimhelp else ''
@@ -566,7 +557,7 @@ def render_node(n, text, prefix='', indent='', width=62):
return text
-def para_as_map(parent, indent='', width=62):
+def para_as_map(parent, indent='', width=62, fmt_vimhelp=False):
"""Extracts a Doxygen XML <para> node to a map.
Keys:
@@ -599,7 +590,8 @@ def para_as_map(parent, indent='', width=62):
last = ''
if is_inline(parent):
# Flatten inline text from a tree of non-block nodes.
- text = doc_wrap(render_node(parent, ""), indent=indent, width=width)
+ text = doc_wrap(render_node(parent, "", fmt_vimhelp=fmt_vimhelp),
+ indent=indent, width=width)
else:
prev = None # Previous node
for child in parent.childNodes:
@@ -615,7 +607,8 @@ def para_as_map(parent, indent='', width=62):
elif kind == 'see':
groups['seealso'].append(child)
elif kind in ('note', 'warning'):
- text += render_node(child, text, indent=indent, width=width)
+ text += render_node(child, text, indent=indent,
+ width=width, fmt_vimhelp=fmt_vimhelp)
else:
raise RuntimeError('unhandled simplesect: {}\n{}'.format(
child.nodeName, child.toprettyxml(indent=' ', newl='\n')))
@@ -628,7 +621,8 @@ def para_as_map(parent, indent='', width=62):
and ' ' != text[-1]):
text += ' '
- text += render_node(child, text, indent=indent, width=width)
+ text += render_node(child, text, indent=indent, width=width,
+ fmt_vimhelp=fmt_vimhelp)
prev = child
chunks['text'] += text
@@ -639,10 +633,12 @@ def para_as_map(parent, indent='', width=62):
update_params_map(child, ret_map=chunks['params'], width=width)
for child in groups['return']:
chunks['return'].append(render_node(
- child, '', indent=indent, width=width))
+ child, '', indent=indent, width=width, fmt_vimhelp=fmt_vimhelp))
for child in groups['seealso']:
chunks['seealso'].append(render_node(
- child, '', indent=indent, width=width))
+ child, '', indent=indent, width=width, fmt_vimhelp=fmt_vimhelp))
+
+ xrefs = set()
for child in groups['xrefs']:
# XXX: Add a space (or any char) to `title` here, otherwise xrefs
# ("Deprecated" section) acts very weird...
@@ -652,10 +648,10 @@ def para_as_map(parent, indent='', width=62):
chunks['xrefs'].append(doc_wrap(xrefdesc, prefix='{}: '.format(title),
width=width) + '\n')
- return chunks
+ return chunks, xrefs
-def fmt_node_as_vimhelp(parent, width=62, indent=''):
+def fmt_node_as_vimhelp(parent, width=62, indent='', fmt_vimhelp=False):
"""Renders (nested) Doxygen <para> nodes as Vim :help text.
NB: Blank lines in a docstring manifest as <para> tags.
@@ -678,7 +674,7 @@ def fmt_node_as_vimhelp(parent, width=62, indent=''):
return True
for child in parent.childNodes:
- para = para_as_map(child, indent, width)
+ para, _ = para_as_map(child, indent, width, fmt_vimhelp)
# Generate text from the gathered items.
chunks = [para['text']]
@@ -702,19 +698,16 @@ def fmt_node_as_vimhelp(parent, width=62, indent=''):
return clean_lines('\n'.join(rendered_blocks).strip())
-def extract_from_xml(filename, target, width):
+def extract_from_xml(filename, target, width, fmt_vimhelp):
"""Extracts Doxygen info as maps without formatting the text.
Returns two maps:
1. Functions
2. Deprecated functions
- The `fmt_vimhelp` global controls some special cases for use by
+ The `fmt_vimhelp` variable controls some special cases for use by
fmt_doxygen_xml_as_vimhelp(). (TODO: ugly :)
"""
- global xrefs
- global fmt_vimhelp
- xrefs.clear()
fns = {} # Map of func_name:docstring.
deprecated_fns = {} # Map of func_name:docstring.
@@ -821,16 +814,22 @@ def extract_from_xml(filename, target, width):
signature = prefix + suffix
signature += vimtag.rjust(width - len(signature))
+ # Tracks `xrefsect` titles. As of this writing, used only for separating
+ # deprecated functions.
+ xrefs_all = set()
paras = []
brief_desc = find_first(member, 'briefdescription')
if brief_desc:
for child in brief_desc.childNodes:
- paras.append(para_as_map(child))
+ para, xrefs = para_as_map(child)
+ xrefs_all.update(xrefs)
desc = find_first(member, 'detaileddescription')
if desc:
for child in desc.childNodes:
- paras.append(para_as_map(child))
+ para, xrefs = para_as_map(child)
+ paras.append(para)
+ xrefs_all.update(xrefs)
log.debug(
textwrap.indent(
re.sub(r'\n\s*\n+', '\n',
@@ -846,7 +845,6 @@ def extract_from_xml(filename, target, width):
'seealso': [],
}
if fmt_vimhelp:
- # HACK :(
fn['desc_node'] = desc
fn['brief_desc_node'] = brief_desc
@@ -865,18 +863,16 @@ def extract_from_xml(filename, target, width):
if INCLUDE_C_DECL:
fn['c_decl'] = c_decl
- if 'Deprecated' in str(xrefs):
+ if 'Deprecated' in str(xrefs_all):
deprecated_fns[name] = fn
elif name.startswith(CONFIG[target]['fn_name_prefix']):
fns[name] = fn
- xrefs.clear()
-
fns = collections.OrderedDict(sorted(
fns.items(),
key=lambda key_item_tuple: key_item_tuple[0].lower()))
deprecated_fns = collections.OrderedDict(sorted(deprecated_fns.items()))
- return (fns, deprecated_fns)
+ return fns, deprecated_fns
def fmt_doxygen_xml_as_vimhelp(filename, target):
@@ -886,16 +882,14 @@ def fmt_doxygen_xml_as_vimhelp(filename, target):
1. Vim help text for functions found in `filename`.
2. Vim help text for deprecated functions.
"""
- global fmt_vimhelp
- fmt_vimhelp = True
fns_txt = {} # Map of func_name:vim-help-text.
deprecated_fns_txt = {} # Map of func_name:vim-help-text.
- fns, _ = extract_from_xml(filename, target, width=text_width)
+ fns, _ = extract_from_xml(filename, target, text_width, True)
for name, fn in fns.items():
# Generate Vim :help for parameters.
if fn['desc_node']:
- doc = fmt_node_as_vimhelp(fn['desc_node'])
+ doc = fmt_node_as_vimhelp(fn['desc_node'], fmt_vimhelp=True)
if not doc and fn['brief_desc_node']:
doc = fmt_node_as_vimhelp(fn['brief_desc_node'])
if not doc:
@@ -948,14 +942,9 @@ def fmt_doxygen_xml_as_vimhelp(filename, target):
func_doc = "\n".join(split_lines)
- if 'Deprecated' in xrefs:
- deprecated_fns_txt[name] = func_doc
- elif name.startswith(CONFIG[target]['fn_name_prefix']):
+ if name.startswith(CONFIG[target]['fn_name_prefix']):
fns_txt[name] = func_doc
- xrefs.clear()
-
- fmt_vimhelp = False
return ('\n\n'.join(list(fns_txt.values())),
'\n\n'.join(list(deprecated_fns_txt.values())))
@@ -1059,7 +1048,7 @@ def main(config, args):
xmlfile = os.path.join(base,
'{}.xml'.format(compound.getAttribute('refid')))
# Extract unformatted (*.mpack).
- fn_map, _ = extract_from_xml(xmlfile, target, width=9999)
+ fn_map, _ = extract_from_xml(xmlfile, target, 9999, False)
# Extract formatted (:help).
functions_text, deprecated_text = fmt_doxygen_xml_as_vimhelp(
os.path.join(base, '{}.xml'.format(
diff --git a/scripts/lintcommit.lua b/scripts/lintcommit.lua
index 6871858a0b..16326cfe66 100644
--- a/scripts/lintcommit.lua
+++ b/scripts/lintcommit.lua
@@ -45,8 +45,13 @@ end
-- Returns nil if the given commit message is valid, or returns a string
-- message explaining why it is invalid.
local function validate_commit(commit_message)
- local commit_split = vim.split(commit_message, ":")
+ -- Return nil if the commit message starts with "fixup" as it signifies it's
+ -- a work in progress and shouldn't be linted yet.
+ if vim.startswith(commit_message, "fixup") then
+ return nil
+ end
+ local commit_split = vim.split(commit_message, ":")
-- Return nil if the type is vim-patch since most of the normal rules don't
-- apply.
if commit_split[1] == "vim-patch" then
@@ -73,7 +78,7 @@ local function validate_commit(commit_message)
-- Check if type is correct
local type = vim.split(before_colon, "%(")[1]
- local allowed_types = {'build', 'ci', 'docs', 'feat', 'fix', 'perf', 'refactor', 'revert', 'test', 'chore', 'vim-patch'}
+ local allowed_types = {'build', 'ci', 'docs', 'feat', 'fix', 'perf', 'refactor', 'revert', 'test', 'dist', 'vim-patch'}
if not vim.tbl_contains(allowed_types, type) then
return string.format(
'Invalid commit type "%s". Allowed types are:\n %s',
@@ -176,13 +181,16 @@ function M._test()
['refactor: normal message'] = true,
['revert: normal message'] = true,
['test: normal message'] = true,
- ['chore: normal message'] = true,
+ ['dist: normal message'] = true,
['ci(window): message with scope'] = true,
['ci!: message with breaking change'] = true,
['ci(tui)!: message with scope and breaking change'] = true,
['vim-patch:8.2.3374: Pyret files are not recognized (#15642)'] = true,
['vim-patch:8.1.1195,8.2.{3417,3419}'] = true,
['revert: "ci: use continue-on-error instead of "|| true""'] = true,
+ ['fixup'] = true,
+ ['fixup: commit message'] = true,
+ ['fixup! commit message'] = true,
[':no type before colon 1'] = false,
[' :no type before colon 2'] = false,
[' :no type before colon 3'] = false,
@@ -197,10 +205,10 @@ function M._test()
['ci :extra space before colon'] = false,
['refactor(): empty scope'] = false,
['ci( ): whitespace as scope'] = false,
- ['chore: period at end of sentence.'] = false,
+ ['ci: period at end of sentence.'] = false,
['ci: Starting sentence capitalized'] = false,
['unknown: using unknown type'] = false,
- ['chore: you\'re saying this commit message just goes on and on and on and on and on and on for way too long?'] = false,
+ ['ci: you\'re saying this commit message just goes on and on and on and on and on and on for way too long?'] = false,
}
local failed = 0
diff --git a/scripts/update_terminfo.sh b/scripts/update_terminfo.sh
index 0cfc230ca6..8a0937cc8c 100755
--- a/scripts/update_terminfo.sh
+++ b/scripts/update_terminfo.sh
@@ -64,6 +64,8 @@ cat > "$target" <<EOF
// This is an open source non-commercial project. Dear PVS-Studio, please check
// it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
+// uncrustify:off
+
//
// Generated by scripts/update_terminfo.sh and $(tic -V)
//
@@ -84,8 +86,8 @@ for term in $sorted_terms; do
infocmp -L -1 -A "$db" "$term" | sed -e '1d' -e 's#^#// #' | tr '\t' ' '
printf 'static const int8_t %s[] = {\n' "${entries[$term]}"
printf ' '
- od -v -t d1 < "$path" | cut -c9- | xargs | tr ' ' ',' | tr -d '\n'
- printf ' // NOLINT\n};\n'
+ od -v -t d1 < "$path" | cut -c9- | xargs | tr ' ' ','
+ printf '};\n'
done >> "$target"
cat >> "$target" <<EOF
diff --git a/src/clint.py b/src/clint.py
index befb10c9c7..b0992fcd63 100755
--- a/src/clint.py
+++ b/src/clint.py
@@ -175,7 +175,6 @@ _ERROR_CATEGORIES = [
'build/header_guard',
'build/include',
'build/include_alpha',
- 'build/include_order',
'build/printf_format',
'build/storage_class',
'build/useless_fattr',
@@ -200,18 +199,15 @@ _ERROR_CATEGORIES = [
'whitespace/alignment',
'whitespace/blank_line',
'whitespace/braces',
- 'whitespace/comma',
'whitespace/comments',
'whitespace/empty_conditional_body',
'whitespace/empty_loop_body',
'whitespace/end_of_line',
'whitespace/ending_newline',
'whitespace/indent',
- 'whitespace/line_length',
'whitespace/newline',
'whitespace/operators',
'whitespace/parens',
- 'whitespace/semicolon',
'whitespace/tab',
'whitespace/todo',
'whitespace/line_continuation',
@@ -265,7 +261,7 @@ _valid_extensions = {'c', 'h'}
_RE_COMMENTLINE = re.compile(r'^\s*//')
-def ParseNolintSuppressions(filename, raw_line, linenum, error):
+def ParseNolintSuppressions(raw_line, linenum):
"""Updates the global list of error-suppressions.
Parses any NOLINT comments on the current line, updating the global
@@ -273,10 +269,8 @@ def ParseNolintSuppressions(filename, raw_line, linenum, error):
was malformed.
Args:
- filename: str, the name of the input file.
raw_line: str, the line of input text, with comments.
linenum: int, the number of the current line.
- error: function, an error handler.
"""
# FIXME(adonovan): "NOLINT(" is misparsed as NOLINT(*).
matched = _RE_SUPPRESSION.search(raw_line)
@@ -463,6 +457,7 @@ class _CppLintState:
self.filters = _DEFAULT_FILTERS[:]
self.counting = 'total' # In what way are we counting errors?
self.errors_by_category = {} # string to int dict storing error counts
+ self.stdin_filename = ''
# output format:
# "emacs" - format that emacs can parse (default)
@@ -658,7 +653,8 @@ class FileInfo:
def FullName(self):
"""Make Windows paths like Unix."""
- return os.path.abspath(self._filename).replace('\\', '/')
+ abspath = str(os.path.abspath(self._filename))
+ return abspath.replace('\\', '/')
def RelativePath(self):
"""FullName with <prefix>/src/nvim/ chopped off."""
@@ -1100,6 +1096,7 @@ def ReverseCloseExpression(clean_lines, linenum, pos):
"""
line = clean_lines.elided[linenum]
endchar = line[pos]
+ startchar = None
if endchar not in ')}]>':
return (line, 0, -1)
if endchar == ')':
@@ -1209,8 +1206,7 @@ def CheckForHeaderGuard(filename, lines, error):
if ifndef != cppvar + '_':
error_level = 5
- ParseNolintSuppressions(filename, lines[ifndef_linenum], ifndef_linenum,
- error)
+ ParseNolintSuppressions(lines[ifndef_linenum], ifndef_linenum)
error(filename, ifndef_linenum, 'build/header_guard', error_level,
'#ifndef header guard has wrong style, please use: %s' % cppvar)
@@ -1225,8 +1221,7 @@ def CheckForHeaderGuard(filename, lines, error):
if endif != ('#endif // %s' % (cppvar + '_')):
error_level = 5
- ParseNolintSuppressions(filename, lines[endif_linenum], endif_linenum,
- error)
+ ParseNolintSuppressions(lines[endif_linenum], endif_linenum)
error(filename, endif_linenum, 'build/header_guard', error_level,
'#endif line should be "#endif // %s"' % cppvar)
@@ -1452,12 +1447,6 @@ def CheckOSFunctions(filename, clean_lines, linenum, error):
'...) instead of ' + function + '...).')
-# Matches invalid increment: *count++, which moves pointer instead of
-# incrementing a value.
-_RE_PATTERN_INVALID_INCREMENT = re.compile(
- r'^\s*\*\w+(\+\+|--);')
-
-
class _BlockInfo:
"""Stores information about a generic block of code."""
@@ -1564,14 +1553,12 @@ class _NestingState:
# TODO(unknown): unexpected #endif, issue warning?
pass
- def Update(self, filename, clean_lines, linenum, error):
+ def Update(self, clean_lines, linenum):
"""Update nesting state with current line.
Args:
- filename: The name of the current file.
clean_lines: A CleansedLines instance containing the file.
linenum: The number of the line to check.
- error: The function to call with any errors found.
"""
line = clean_lines.elided[linenum]
@@ -1637,8 +1624,7 @@ class _NestingState:
line = matched.group(2)
-def CheckForNonStandardConstructs(filename, clean_lines, linenum,
- nesting_state, error):
+def CheckForNonStandardConstructs(filename, clean_lines, linenum, error):
r"""Logs an error if we see certain non-ANSI constructs ignored by gcc-2.
Complain about several constructs which gcc-2 accepts, but which are
@@ -1660,8 +1646,6 @@ def CheckForNonStandardConstructs(filename, clean_lines, linenum,
filename: The name of the current file.
clean_lines: A CleansedLines instance containing the file.
linenum: The number of the line to check.
- nesting_state: A _NestingState instance which maintains information about
- the current stack of nested blocks being parsed.
error: A callable to which errors are reported, which takes 4 arguments:
filename, line number, error level, and message
"""
@@ -2120,7 +2104,7 @@ def CheckExpressionAlignment(filename, clean_lines, linenum, error, startpos=0):
del level_starts[depth]
-def CheckSpacing(filename, clean_lines, linenum, nesting_state, error):
+def CheckSpacing(filename, clean_lines, linenum, error):
"""Checks for the correctness of various spacing issues in the code.
Things we check for: spaces around operators, spaces after
@@ -2134,8 +2118,6 @@ def CheckSpacing(filename, clean_lines, linenum, nesting_state, error):
filename: The name of the current file.
clean_lines: A CleansedLines instance containing the file.
linenum: The number of the line to check.
- nesting_state: A _NestingState instance which maintains information about
- the current stack of nested blocks being parsed.
error: The function to call with any errors found.
"""
@@ -2378,29 +2360,6 @@ def CheckSpacing(filename, clean_lines, linenum, nesting_state, error):
'Should have zero or one spaces inside ( and ) in %s' %
match.group(1))
- # You should always have a space after a comma (either as fn arg or
- # operator).
- #
- # This does not apply when the non-space character following the
- # comma is another comma, since the only time when that happens is
- # for empty macro arguments.
- #
- # We run this check in two passes: first pass on elided lines to
- # verify that lines contain missing whitespaces, second pass on raw
- # lines to confirm that those missing whitespaces are not due to
- # elided comments.
- if Search(r',[^,\s]', line) and Search(r',[^,\s]', raw[linenum]):
- error(filename, linenum, 'whitespace/comma', 3,
- 'Missing space after ,')
-
- # You should always have a space after a semicolon
- # except for few corner cases
- # TODO(unknown): clarify if 'if (1) { return 1;}' is requires one more
- # space after ;
- if Search(r';[^\s};\\)/]', line):
- error(filename, linenum, 'whitespace/semicolon', 3,
- 'Missing space after ;')
-
# Next we will look for issues with function calls.
CheckSpacingForFunctionCall(filename, line, linenum, error)
@@ -2463,19 +2422,6 @@ def CheckSpacing(filename, clean_lines, linenum, nesting_state, error):
error(filename, linenum, 'whitespace/braces', 5,
'Extra space before [')
- # You shouldn't have a space before a semicolon at the end of the line.
- if Search(r':\s*;\s*$', line):
- error(filename, linenum, 'whitespace/semicolon', 5,
- 'Semicolon defining empty statement. Use {} instead.')
- elif Search(r'^\s*;\s*$', line):
- error(filename, linenum, 'whitespace/semicolon', 5,
- 'Line contains only semicolon. If this should be an empty'
- ' statement, use {} instead.')
- elif Search(r'\s+;\s*$', line):
- error(filename, linenum, 'whitespace/semicolon', 5,
- 'Extra space before last semicolon. If this should be an empty '
- 'statement, use {} instead.')
-
if Search(r'\{(?!\})\S', line):
error(filename, linenum, 'whitespace/braces', 5,
'Missing space after {')
@@ -2830,8 +2776,7 @@ def GetLineWidth(line):
return len(line)
-def CheckStyle(filename, clean_lines, linenum, file_extension, nesting_state,
- error):
+def CheckStyle(filename, clean_lines, linenum, error):
"""Checks rules from the 'C++ style rules' section of cppguide.html.
Most of these rules are hard to test (naming, comment style), but we
@@ -2842,9 +2787,6 @@ def CheckStyle(filename, clean_lines, linenum, file_extension, nesting_state,
filename: The name of the current file.
clean_lines: A CleansedLines instance containing the file.
linenum: The number of the line to check.
- file_extension: The extension (without the dot) of the filename.
- nesting_state: A _NestingState instance which maintains information about
- the current stack of nested blocks being parsed.
error: The function to call with any errors found.
"""
@@ -2886,35 +2828,6 @@ def CheckStyle(filename, clean_lines, linenum, file_extension, nesting_state,
'Weird number of spaces at line-start. '
'Are you using a 2-space indent?')
- # Check if the line is a header guard.
- is_header_guard = False
- if file_extension == 'h':
- cppvar = GetHeaderGuardCPPVariable(filename)
- if (line.startswith('#ifndef %s' % cppvar) or
- line.startswith('#define %s' % cppvar) or
- line.startswith('#endif // %s' % cppvar)):
- is_header_guard = True
- # #include lines and header guards can be long, since there's no clean way
- # to split them.
- #
- # URLs can be long too. It's possible to split these, but it makes them
- # harder to cut&paste.
- #
- # The "$Id:...$" comment may also get very long without it being the
- # developers fault.
- if (not line.startswith('#include') and not is_header_guard and
- not Match(r'^\s*//.*http(s?)://\S*$', line) and
- not Match(r'^// \$Id:.*#[0-9]+ \$$', line)):
- line_width = GetLineWidth(line)
- extended_length = int(_line_length * 1.25)
- if line_width > extended_length:
- error(filename, linenum, 'whitespace/line_length', 4,
- 'Lines should very rarely be longer than %i characters' %
- extended_length)
- elif line_width > _line_length:
- error(filename, linenum, 'whitespace/line_length', 2,
- 'Lines should be <= %i characters long' % _line_length)
-
if (cleansed_line.count(';') > 1 and
# for loops are allowed two ;'s (and may run over two lines).
cleansed_line.find('for') == -1 and
@@ -2930,33 +2843,10 @@ def CheckStyle(filename, clean_lines, linenum, file_extension, nesting_state,
# Some more style checks
CheckBraces(filename, clean_lines, linenum, error)
CheckEmptyBlockBody(filename, clean_lines, linenum, error)
- CheckSpacing(filename, clean_lines, linenum, nesting_state, error)
+ CheckSpacing(filename, clean_lines, linenum, error)
-_RE_PATTERN_INCLUDE_NEW_STYLE = re.compile(r'#include +"[^/]+\.h"')
_RE_PATTERN_INCLUDE = re.compile(r'^\s*#\s*include\s*([<"])([^>"]*)[>"].*$')
-# Matches the first component of a filename delimited by -s and _s. That is:
-# _RE_FIRST_COMPONENT.match('foo').group(0) == 'foo'
-# _RE_FIRST_COMPONENT.match('foo.cc').group(0) == 'foo'
-# _RE_FIRST_COMPONENT.match('foo-bar_baz.cc').group(0) == 'foo'
-# _RE_FIRST_COMPONENT.match('foo_bar-baz.cc').group(0) == 'foo'
-_RE_FIRST_COMPONENT = re.compile(r'^[^-_.]+')
-
-
-def _ClassifyInclude(fileinfo, include, is_system):
- """Figures out what kind of header 'include' is.
-
- Args:
- fileinfo: The current file cpplint is running over. A FileInfo instance.
- include: The path to a #included file.
- is_system: True if the #include used <> rather than "".
-
- Returns:
- One of the _XXX_HEADER constants.
- """
- if is_system:
- return _C_SYS_HEADER
- return _OTHER_HEADER
def CheckIncludeLine(filename, clean_lines, linenum, include_state, error):
@@ -2974,16 +2864,9 @@ def CheckIncludeLine(filename, clean_lines, linenum, include_state, error):
inserted.
error : The function to call with any errors found.
"""
- fileinfo = FileInfo(filename)
line = clean_lines.lines[linenum]
- # "include" should use the new style "foo/bar.h" instead of just "bar.h"
- # XXX: neovim doesn't currently use this style
- # if _RE_PATTERN_INCLUDE_NEW_STYLE.search(line):
- # error(filename, linenum, 'build/include', 4,
- # 'Include the directory when naming .h files')
-
# we shouldn't include a file more than once. actually, there are a
# handful of instances where doing so is okay, but in general it's
# not.
@@ -2996,29 +2879,6 @@ def CheckIncludeLine(filename, clean_lines, linenum, include_state, error):
error(filename, linenum, 'build/include', 4,
'"%s" already included at %s:%s' %
(include, filename, include_state[include]))
- else:
- include_state[include] = linenum
-
- # We want to ensure that headers appear in the right order:
- # 1) for foo.cc, foo.h (preferred location)
- # 2) c system files
- # 3) cpp system files
- # 4) for foo.cc, foo.h (deprecated location)
- # 5) other google headers
- #
- # We classify each include statement as one of those 5 types
- # using a number of techniques. The include_state object keeps
- # track of the highest type seen, and complains if we see a
- # lower type after that.
- error_message = include_state.CheckNextIncludeOrder(
- _ClassifyInclude(fileinfo, include, is_system))
- if error_message:
- error(filename, linenum, 'build/include_order', 4,
- '%s. Should be: c system, c++ system, other.'
- % error_message)
- canonical_include = include_state.CanonicalizeAlphabeticalOrder(
- include)
- include_state.SetLastHeader(canonical_include)
def _GetTextInside(text, start_pattern):
@@ -3078,8 +2938,7 @@ def _GetTextInside(text, start_pattern):
return text[start_position:position - 1]
-def CheckLanguage(filename, clean_lines, linenum, file_extension,
- include_state, nesting_state, error):
+def CheckLanguage(filename, clean_lines, linenum, include_state, error):
"""Checks rules from the 'C++ language rules' section of cppguide.html.
Some of these rules are hard to test (function overloading, using
@@ -3089,11 +2948,8 @@ def CheckLanguage(filename, clean_lines, linenum, file_extension,
filename : The name of the current file.
clean_lines : A CleansedLines instance containing the file.
linenum : The number of the line to check.
- file_extension : The extension (without the dot) of the filename.
include_state : An _IncludeState instance in which the headers are
inserted.
- nesting_state : A _NestingState instance which maintains information
- about the current stack of nested blocks being parsed.
error : The function to call with any errors found.
"""
# If the line is empty or consists of entirely a comment, no need to
@@ -3173,8 +3029,9 @@ def CheckLanguage(filename, clean_lines, linenum, file_extension,
if printf_args:
match = Match(r'([\w.\->()]+)$', printf_args)
if match and match.group(1) != '__VA_ARGS__':
- function_name = re.search(r'\b((?:string)?printf)\s*\(',
- line, re.I).group(1)
+ function_name_groups = re.search(r'\b((?:string)?printf)\s*\(', line, re.I)
+ assert function_name_groups
+ function_name = function_name_groups.group(1)
error(filename, linenum, 'runtime/printf', 4,
'Potential format string bug. Do %s("%%s", %s) instead.'
% (function_name, match.group(1)))
@@ -3267,14 +3124,13 @@ def CheckLanguage(filename, clean_lines, linenum, file_extension,
'for(;; action)')
-def ProcessLine(filename, file_extension, clean_lines, line,
+def ProcessLine(filename, clean_lines, line,
include_state, function_state, nesting_state, error,
extra_check_functions=[]):
"""Processes a single line in the file.
Args:
filename : Filename of the file that is being processed.
- file_extension : The extension (dot not included) of the file.
clean_lines : An array of strings, each representing a line of
the file, with comments stripped.
line : Number of line being processed.
@@ -3294,19 +3150,16 @@ def ProcessLine(filename, file_extension, clean_lines, line,
"""
raw_lines = clean_lines.raw_lines
init_lines = clean_lines.init_lines
- ParseNolintSuppressions(filename, raw_lines[line], line, error)
- nesting_state.Update(filename, clean_lines, line, error)
+ ParseNolintSuppressions(raw_lines[line], line)
+ nesting_state.Update(clean_lines, line)
if nesting_state.stack and nesting_state.stack[-1].inline_asm != _NO_ASM:
return
CheckForFunctionLengths(filename, clean_lines, line, function_state, error)
CheckForMultilineCommentsAndStrings(filename, clean_lines, line, error)
CheckForOldStyleComments(filename, init_lines[line], line, error)
- CheckStyle(
- filename, clean_lines, line, file_extension, nesting_state, error)
- CheckLanguage(filename, clean_lines, line, file_extension, include_state,
- nesting_state, error)
- CheckForNonStandardConstructs(filename, clean_lines, line,
- nesting_state, error)
+ CheckStyle(filename, clean_lines, line, error)
+ CheckLanguage(filename, clean_lines, line, include_state, error)
+ CheckForNonStandardConstructs(filename, clean_lines, line, error)
CheckPosixThreading(filename, clean_lines, line, error)
CheckMemoryFunctions(filename, clean_lines, line, error)
CheckOSFunctions(filename, clean_lines, line, error)
@@ -3349,6 +3202,7 @@ def ProcessFileData(filename, file_extension, lines, error,
if not IsErrorSuppressedByNolint(category, linenum):
key = init_lines[linenum - 1 if linenum else 0:linenum + 2]
err = [filename, key, category]
+ assert _cpplint_state.record_errors_file
json.dump(err, _cpplint_state.record_errors_file)
_cpplint_state.record_errors_file.write('\n')
Error(filename, linenum, category, confidence, message)
@@ -3361,7 +3215,7 @@ def ProcessFileData(filename, file_extension, lines, error,
RemoveMultiLineComments(filename, lines, error)
clean_lines = CleansedLines(lines, init_lines)
for line in range(clean_lines.NumLines()):
- ProcessLine(filename, file_extension, clean_lines, line,
+ ProcessLine(filename, clean_lines, line,
include_state, function_state, nesting_state, error,
extra_check_functions)
@@ -3401,8 +3255,6 @@ def ProcessFile(filename, vlevel, extra_check_functions=[]):
if filename == '-':
stdin = sys.stdin.read()
- if sys.version_info < (3, 0):
- stdin = stdin.decode('utf8')
lines = stdin.split('\n')
if _cpplint_state.stdin_filename is not None:
filename = _cpplint_state.stdin_filename
@@ -3498,7 +3350,7 @@ def ParseArguments(args):
counting_style = ''
record_errors_file = None
suppress_errors_file = None
- stdin_filename = None
+ stdin_filename = ''
for (opt, val) in opts:
if opt == '--help':
diff --git a/src/nvim/CMakeLists.txt b/src/nvim/CMakeLists.txt
index 2a323bdea0..38be5bfb1d 100755
--- a/src/nvim/CMakeLists.txt
+++ b/src/nvim/CMakeLists.txt
@@ -193,15 +193,16 @@ if(NOT "${MIN_LOG_LEVEL}" MATCHES "^$")
add_definitions(-DMIN_LOG_LEVEL=${MIN_LOG_LEVEL})
endif()
+if(DEBUG OR CLANG_ASAN_UBSAN OR CLANG_MSAN OR CLANG_TSAN)
+ add_definitions(-DEXITFREE)
+endif()
+
get_directory_property(gen_cdefs COMPILE_DEFINITIONS)
foreach(gen_cdef ${gen_cdefs} DO_NOT_DEFINE_EMPTY_ATTRIBUTES)
if(NOT ${gen_cdef} MATCHES "INCLUDE_GENERATED_DECLARATIONS")
list(APPEND gen_cflags "-D${gen_cdef}")
endif()
endforeach()
-if(CLANG_ASAN_UBSAN OR CLANG_MSAN OR CLANG_TSAN)
- list(APPEND gen_cflags "-DEXITFREE")
-endif()
get_directory_property(gen_includes INCLUDE_DIRECTORIES)
foreach(gen_include ${gen_includes} ${LUA_PREFERRED_INCLUDE_DIRS})
@@ -689,17 +690,14 @@ if(CLANG_ASAN_UBSAN)
set(SANITIZE_RECOVER -fno-sanitize-recover) # Clang 3.5-
endif()
endif()
- set_property(TARGET nvim APPEND PROPERTY COMPILE_DEFINITIONS EXITFREE)
set_property(TARGET nvim APPEND PROPERTY COMPILE_OPTIONS ${SANITIZE_RECOVER} -fno-omit-frame-pointer -fno-optimize-sibling-calls -fsanitize=address -fsanitize=undefined -fsanitize-blacklist=${PROJECT_SOURCE_DIR}/src/.asan-blacklist)
set_property(TARGET nvim APPEND_STRING PROPERTY LINK_FLAGS "-fsanitize=address -fsanitize=undefined ")
elseif(CLANG_MSAN)
message(STATUS "Enabling Clang memory sanitizer for nvim.")
- set_property(TARGET nvim APPEND PROPERTY COMPILE_DEFINITIONS EXITFREE)
set_property(TARGET nvim APPEND PROPERTY COMPILE_OPTIONS -fsanitize=memory -fsanitize-memory-track-origins -fno-omit-frame-pointer -fno-optimize-sibling-calls)
set_property(TARGET nvim APPEND_STRING PROPERTY LINK_FLAGS "-fsanitize=memory -fsanitize-memory-track-origins ")
elseif(CLANG_TSAN)
message(STATUS "Enabling Clang thread sanitizer for nvim.")
- set_property(TARGET nvim APPEND PROPERTY COMPILE_DEFINITIONS EXITFREE)
set_property(TARGET nvim APPEND PROPERTY COMPILE_OPTIONS -fsanitize=thread)
set_property(TARGET nvim APPEND PROPERTY COMPILE_OPTIONS -fPIE)
set_property(TARGET nvim APPEND_STRING PROPERTY LINK_FLAGS "-fsanitize=thread ")
diff --git a/src/nvim/api/private/helpers.c b/src/nvim/api/private/helpers.c
index 542e5c4953..dcede27bcb 100644
--- a/src/nvim/api/private/helpers.c
+++ b/src/nvim/api/private/helpers.c
@@ -1707,144 +1707,113 @@ bool string_iswhite(String str)
return true;
}
-// Add modifier string for command into the command line. Includes trailing whitespace if non-empty.
-// @return OK or FAIL.
-static int add_cmd_modifier_str(char *cmdline, size_t *pos, const size_t bufsize,
- CmdParseInfo *cmdinfo)
+/// Build cmdline string for command, used by `nvim_cmd()`.
+///
+/// @return OK or FAIL.
+void build_cmdline_str(char **cmdlinep, exarg_T *eap, CmdParseInfo *cmdinfo, char **args,
+ size_t argc)
{
-#define APPEND_MODIFIER(...) \
- do { \
- if (*pos < bufsize) { \
- *pos += (size_t)snprintf(cmdline + *pos, bufsize - *pos, __VA_ARGS__); \
- } \
- if (*pos < bufsize) { \
- cmdline[*pos] = ' '; \
- *pos += 1; \
- } else { \
- goto err; \
- } \
- } while (0)
-
-#define APPEND_MODIFIER_IF(cond, mod) \
- do { \
- if (cond) { \
- APPEND_MODIFIER(mod); \
- } \
- } while (0)
+ StringBuilder cmdline = KV_INITIAL_VALUE;
+ // Add command modifiers
if (cmdinfo->cmdmod.tab != 0) {
- APPEND_MODIFIER("%dtab", cmdinfo->cmdmod.tab - 1);
+ kv_printf(cmdline, "%dtab ", cmdinfo->cmdmod.tab - 1);
}
if (cmdinfo->verbose != -1) {
- APPEND_MODIFIER("%ldverbose", cmdinfo->verbose);
+ kv_printf(cmdline, "%ldverbose ", cmdinfo->verbose);
+ }
+
+ if (cmdinfo->emsg_silent) {
+ kv_concat(cmdline, "silent! ");
+ } else if (cmdinfo->silent) {
+ kv_concat(cmdline, "silent ");
}
switch (cmdinfo->cmdmod.split & (WSP_ABOVE | WSP_BELOW | WSP_TOP | WSP_BOT)) {
case WSP_ABOVE:
- APPEND_MODIFIER("aboveleft");
+ kv_concat(cmdline, "aboveleft ");
break;
case WSP_BELOW:
- APPEND_MODIFIER("belowright");
+ kv_concat(cmdline, "belowright ");
break;
case WSP_TOP:
- APPEND_MODIFIER("topleft");
+ kv_concat(cmdline, "topleft ");
break;
case WSP_BOT:
- APPEND_MODIFIER("botright");
+ kv_concat(cmdline, "botright ");
break;
default:
break;
}
- APPEND_MODIFIER_IF(cmdinfo->cmdmod.split & WSP_VERT, "vertical");
-
- if (cmdinfo->emsg_silent) {
- APPEND_MODIFIER("silent!");
- } else if (cmdinfo->silent) {
- APPEND_MODIFIER("silent");
- }
-
- APPEND_MODIFIER_IF(cmdinfo->sandbox, "sandbox");
- APPEND_MODIFIER_IF(cmdinfo->noautocmd, "noautocmd");
- APPEND_MODIFIER_IF(cmdinfo->cmdmod.browse, "browse");
- APPEND_MODIFIER_IF(cmdinfo->cmdmod.confirm, "confirm");
- APPEND_MODIFIER_IF(cmdinfo->cmdmod.hide, "hide");
- APPEND_MODIFIER_IF(cmdinfo->cmdmod.keepalt, "keepalt");
- APPEND_MODIFIER_IF(cmdinfo->cmdmod.keepjumps, "keepjumps");
- APPEND_MODIFIER_IF(cmdinfo->cmdmod.keepmarks, "keepmarks");
- APPEND_MODIFIER_IF(cmdinfo->cmdmod.keeppatterns, "keeppatterns");
- APPEND_MODIFIER_IF(cmdinfo->cmdmod.lockmarks, "lockmarks");
- APPEND_MODIFIER_IF(cmdinfo->cmdmod.noswapfile, "noswapfile");
-
- return OK;
-err:
- return FAIL;
-
-#undef APPEND_MODIFIER
-#undef APPEND_MODIFIER_IF
-}
-
-/// Build cmdline string for command, used by `nvim_cmd()`.
-///
-/// @return OK or FAIL.
-int build_cmdline_str(char **cmdlinep, exarg_T *eap, CmdParseInfo *cmdinfo, char **args,
- size_t argc)
-{
- const size_t bufsize = IOSIZE;
- size_t pos = 0;
- char *cmdline = xcalloc(bufsize, sizeof(char));
-
-#define CMDLINE_APPEND(...) \
+#define CMDLINE_APPEND_IF(cond, str) \
do { \
- if (pos < bufsize) { \
- pos += (size_t)snprintf(cmdline + pos, bufsize - pos, __VA_ARGS__); \
- } else { \
- goto err; \
+ if (cond) { \
+ kv_concat(cmdline, str); \
} \
} while (0)
- // Command modifiers.
- if (add_cmd_modifier_str(cmdline, &pos, bufsize, cmdinfo) == FAIL) {
- goto err;
- }
+ CMDLINE_APPEND_IF(cmdinfo->cmdmod.split & WSP_VERT, "vertical ");
+ CMDLINE_APPEND_IF(cmdinfo->sandbox, "sandbox ");
+ CMDLINE_APPEND_IF(cmdinfo->noautocmd, "noautocmd ");
+ CMDLINE_APPEND_IF(cmdinfo->cmdmod.browse, "browse ");
+ CMDLINE_APPEND_IF(cmdinfo->cmdmod.confirm, "confirm ");
+ CMDLINE_APPEND_IF(cmdinfo->cmdmod.hide, "hide ");
+ CMDLINE_APPEND_IF(cmdinfo->cmdmod.keepalt, "keepalt ");
+ CMDLINE_APPEND_IF(cmdinfo->cmdmod.keepjumps, "keepjumps ");
+ CMDLINE_APPEND_IF(cmdinfo->cmdmod.keepmarks, "keepmarks ");
+ CMDLINE_APPEND_IF(cmdinfo->cmdmod.keeppatterns, "keeppatterns ");
+ CMDLINE_APPEND_IF(cmdinfo->cmdmod.lockmarks, "lockmarks ");
+ CMDLINE_APPEND_IF(cmdinfo->cmdmod.noswapfile, "noswapfile ");
+#undef CMDLINE_APPEND_IF
// Command range / count.
if (eap->argt & EX_RANGE) {
if (eap->addr_count == 1) {
- CMDLINE_APPEND("%ld", eap->line2);
+ kv_printf(cmdline, "%ld", eap->line2);
} else if (eap->addr_count > 1) {
- CMDLINE_APPEND("%ld,%ld", eap->line1, eap->line2);
+ kv_printf(cmdline, "%ld,%ld", eap->line1, eap->line2);
eap->addr_count = 2; // Make sure address count is not greater than 2
}
}
// Keep the index of the position where command name starts, so eap->cmd can point to it.
- size_t cmdname_idx = pos;
- CMDLINE_APPEND("%s", eap->cmd);
- eap->cmd = cmdline + cmdname_idx;
+ size_t cmdname_idx = cmdline.size;
+ kv_printf(cmdline, "%s", eap->cmd);
// Command bang.
if (eap->argt & EX_BANG && eap->forceit) {
- CMDLINE_APPEND("!");
+ kv_printf(cmdline, "!");
}
// Command register.
if (eap->argt & EX_REGSTR && eap->regname) {
- CMDLINE_APPEND(" %c", eap->regname);
+ kv_printf(cmdline, " %c", eap->regname);
}
- // Iterate through each argument and store the starting position and length of each argument in
- // the cmdline string in `eap->args` and `eap->arglens`, respectively.
- eap->args = xcalloc(argc, sizeof(char *));
+ // Iterate through each argument and store the starting index and length of each argument
+ size_t *argidx = xcalloc(argc, sizeof(size_t));
+ eap->argc = argc;
eap->arglens = xcalloc(argc, sizeof(size_t));
for (size_t i = 0; i < argc; i++) {
- eap->args[i] = cmdline + pos + 1; // add 1 to skip the leading space.
+ argidx[i] = cmdline.size + 1; // add 1 to account for the space.
eap->arglens[i] = STRLEN(args[i]);
- CMDLINE_APPEND(" %s", args[i]);
+ kv_printf(cmdline, " %s", args[i]);
}
- eap->argc = argc;
- // If there isn't an argument, make eap->arg point to end of cmd
- eap->arg = argc > 0 ? eap->args[0] : cmdline + pos;
+
+ // Now that all the arguments are appended, use the command index and argument indices to set the
+ // values of eap->cmd, eap->arg and eap->args.
+ eap->cmd = cmdline.items + cmdname_idx;
+ eap->args = xcalloc(argc, sizeof(char *));
+ for (size_t i = 0; i < argc; i++) {
+ eap->args[i] = cmdline.items + argidx[i];
+ }
+ // If there isn't an argument, make eap->arg point to end of cmdline.
+ eap->arg = argc > 0 ? eap->args[0] : cmdline.items + cmdline.size;
+
+ // Finally, make cmdlinep point to the cmdline string.
+ *cmdlinep = cmdline.items;
+ xfree(argidx);
// Replace, :make and :grep with 'makeprg' and 'grepprg'.
char *p = replace_makeprg(eap, eap->arg, cmdlinep);
@@ -1854,12 +1823,4 @@ int build_cmdline_str(char **cmdlinep, exarg_T *eap, CmdParseInfo *cmdinfo, char
eap->arg = p;
eap->args[0] = p;
}
-
- *cmdlinep = cmdline;
- return OK;
-err:
- xfree(cmdline);
- return FAIL;
-
-#undef CMDLINE_APPEND
}
diff --git a/src/nvim/api/vim.c b/src/nvim/api/vim.c
index 09bf032daa..a257dd6478 100644
--- a/src/nvim/api/vim.c
+++ b/src/nvim/api/vim.c
@@ -126,22 +126,43 @@ Dictionary nvim__get_hl_defs(Integer ns_id, Error *err)
/// Sets a highlight group.
///
-/// Note: Unlike the `:highlight` command which can update a highlight group,
-/// this function completely replaces the definition. For example:
-/// ``nvim_set_hl(0, 'Visual', {})`` will clear the highlight group 'Visual'.
+/// @note Unlike the `:highlight` command which can update a highlight group,
+/// this function completely replaces the definition. For example:
+/// ``nvim_set_hl(0, 'Visual', {})`` will clear the highlight group
+/// 'Visual'.
+///
+/// @note The fg and bg keys also accept the string values `"fg"` or `"bg"`
+/// which act as aliases to the corresponding foreground and background
+/// values of the Normal group. If the Normal group has not been defined,
+/// using these values results in an error.
///
/// @param ns_id Namespace id for this highlight |nvim_create_namespace()|.
/// Use 0 to set a highlight group globally |:highlight|.
/// @param name Highlight group name, e.g. "ErrorMsg"
-/// @param val Highlight definition map, like |synIDattr()|. In
-/// addition, the following keys are recognized:
+/// @param val Highlight definition map, accepts the following keys:
+/// - fg (or foreground): color name or "#RRGGBB", see note.
+/// - bg (or background): color name or "#RRGGBB", see note.
+/// - sp (or special): color name or "#RRGGBB"
+/// - blend: integer between 0 and 100
+/// - bold: boolean
+/// - standout: boolean
+/// - underline: boolean
+/// - underlineline: boolean
+/// - undercurl: boolean
+/// - underdot: boolean
+/// - underdash: boolean
+/// - strikethrough: boolean
+/// - italic: boolean
+/// - reverse: boolean
+/// - nocombine: boolean
+/// - link: name of another highlight group to link to, see |:hi-link|.
+/// Additionally, the following keys are recognized:
/// - default: Don't override existing definition |:hi-default|
/// - ctermfg: Sets foreground of cterm color |highlight-ctermfg|
/// - ctermbg: Sets background of cterm color |highlight-ctermbg|
-/// - cterm: cterm attribute map, like
-/// |highlight-args|.
-/// Note: Attributes default to those set for `gui`
-/// if not set.
+/// - cterm: cterm attribute map, like |highlight-args|. If not set,
+/// cterm attributes will match those from the attribute map
+/// documented above.
/// @param[out] err Error details, if any
///
// TODO(bfredl): val should take update vs reset flag
@@ -1601,12 +1622,13 @@ ArrayOf(Dictionary) nvim_get_keymap(uint64_t channel_id, String mode)
/// or "!" for |:map!|, or empty string for |:map|.
/// @param lhs Left-hand-side |{lhs}| of the mapping.
/// @param rhs Right-hand-side |{rhs}| of the mapping.
-/// @param opts Optional parameters map. Accepts all |:map-arguments|
-/// as keys excluding |<buffer>| but including |noremap| and "desc".
-/// "desc" can be used to give a description to keymap.
-/// When called from Lua, also accepts a "callback" key that takes
-/// a Lua function to call when the mapping is executed.
-/// Values are Booleans. Unknown key is an error.
+/// @param opts Optional parameters map: keys are |:map-arguments|, values
+/// are booleans (default false). Accepts all |:map-arguments| as
+/// keys excluding |<buffer>| but including |noremap| and "desc".
+/// Unknown key is an error. "desc" can be used to give a
+/// description to the mapping. When called from Lua, also accepts a
+/// "callback" key that takes a Lua function to call when the
+/// mapping is executed.
/// @param[out] err Error details, if any.
void nvim_set_keymap(uint64_t channel_id, String mode, String lhs, String rhs, Dict(keymap) *opts,
Error *err)
@@ -2275,6 +2297,14 @@ Dictionary nvim_eval_statusline(String str, Dict(eval_statusline) *opts, Error *
bool use_tabline = false;
bool highlights = false;
+ if (str.size < 2 || memcmp(str.data, "%!", 2)) {
+ const char *const errmsg = check_stl_option((char_u *)str.data);
+ if (errmsg) {
+ api_set_error(err, kErrorTypeValidation, "%s", errmsg);
+ return result;
+ }
+ }
+
if (HAS_KEY(opts->winid)) {
if (opts->winid.type != kObjectTypeInteger) {
api_set_error(err, kErrorTypeValidation, "winid must be an integer");
diff --git a/src/nvim/api/vimscript.c b/src/nvim/api/vimscript.c
index 02f406d686..b8f7b33cd5 100644
--- a/src/nvim/api/vimscript.c
+++ b/src/nvim/api/vimscript.c
@@ -34,7 +34,7 @@
/// Unlike |nvim_command()| this function supports heredocs, script-scope (s:),
/// etc.
///
-/// On execution error: fails with VimL error, does not update v:errmsg.
+/// On execution error: fails with VimL error, updates v:errmsg.
///
/// @see |execute()|
/// @see |nvim_command()|
@@ -98,7 +98,7 @@ theend:
/// Executes an Ex command.
///
-/// On execution error: fails with VimL error, does not update v:errmsg.
+/// On execution error: fails with VimL error, updates v:errmsg.
///
/// Prefer using |nvim_cmd()| or |nvim_exec()| over this. To evaluate multiple lines of Vim script
/// or an Ex command directly, use |nvim_exec()|. To construct an Ex command using a structured
@@ -118,7 +118,7 @@ void nvim_command(String command, Error *err)
/// Evaluates a VimL |expression|.
/// Dictionaries and Lists are recursively expanded.
///
-/// On execution error: fails with VimL error, does not update v:errmsg.
+/// On execution error: fails with VimL error, updates v:errmsg.
///
/// @param expr VimL expression string
/// @param[out] err Error details, if any
@@ -226,7 +226,7 @@ free_vim_args:
/// Calls a VimL function with the given arguments.
///
-/// On execution error: fails with VimL error, does not update v:errmsg.
+/// On execution error: fails with VimL error, updates v:errmsg.
///
/// @param fn Function to call
/// @param args Function arguments packed in an Array
@@ -240,7 +240,7 @@ Object nvim_call_function(String fn, Array args, Error *err)
/// Calls a VimL |Dictionary-function| with the given arguments.
///
-/// On execution error: fails with VimL error, does not update v:errmsg.
+/// On execution error: fails with VimL error, updates v:errmsg.
///
/// @param dict Dictionary, or String evaluating to a VimL |self| dict
/// @param fn Name of the function defined on the VimL dict
@@ -996,6 +996,8 @@ end:
/// such as having spaces inside a command argument, expanding filenames in a command that otherwise
/// doesn't expand filenames, etc.
///
+/// On execution error: fails with VimL error, updates v:errmsg.
+///
/// @see |nvim_exec()|
/// @see |nvim_command()|
///
@@ -1058,7 +1060,7 @@ String nvim_cmd(uint64_t channel_id, Dict(cmd) *cmd, Dict(cmd_opts) *opts, Error
if (p != NULL && ea.cmdidx == CMD_SIZE && ASCII_ISUPPER(*ea.cmd)
&& has_event(EVENT_CMDUNDEFINED)) {
p = xstrdup(cmdname);
- int ret = apply_autocmds(EVENT_CMDUNDEFINED, (char_u *)p, (char_u *)p, true, NULL);
+ int ret = apply_autocmds(EVENT_CMDUNDEFINED, p, p, true, NULL);
xfree(p);
// If the autocommands did something and didn't cause an error, try
// finding the command again.
@@ -1290,9 +1292,7 @@ String nvim_cmd(uint64_t channel_id, Dict(cmd) *cmd, Dict(cmd_opts) *opts, Error
// Finally, build the command line string that will be stored inside ea.cmdlinep.
// This also sets the values of ea.cmd, ea.arg, ea.args and ea.arglens.
- if (build_cmdline_str(&cmdline, &ea, &cmdinfo, args, argc) == FAIL) {
- goto end;
- }
+ build_cmdline_str(&cmdline, &ea, &cmdinfo, args, argc);
ea.cmdlinep = &cmdline;
garray_T capture_local;
diff --git a/src/nvim/autocmd.c b/src/nvim/autocmd.c
index 51a0521231..6c7950fdd1 100644
--- a/src/nvim/autocmd.c
+++ b/src/nvim/autocmd.c
@@ -796,13 +796,13 @@ void do_autocmd(char *arg_in, int forceit)
// Expand environment variables in the pattern. Set 'shellslash', we want
// forward slashes here.
- if (vim_strchr((char_u *)pat, '$') != NULL || vim_strchr((char_u *)pat, '~') != NULL) {
+ if (vim_strchr(pat, '$') != NULL || vim_strchr(pat, '~') != NULL) {
#ifdef BACKSLASH_IN_FILENAME
int p_ssl_save = p_ssl;
p_ssl = true;
#endif
- envpat = (char *)expand_env_save((char_u *)pat);
+ envpat = expand_env_save(pat);
#ifdef BACKSLASH_IN_FILENAME
p_ssl = p_ssl_save;
#endif
@@ -1070,10 +1070,9 @@ int autocmd_register(int64_t id, event_T event, char *pat, int patlen, int group
char *reg_pat;
ap->buflocal_nr = 0;
- reg_pat = (char *)file_pat_to_reg_pat((char_u *)pat, (char_u *)pat + patlen, &ap->allow_dirs,
- true);
+ reg_pat = file_pat_to_reg_pat(pat, pat + patlen, &ap->allow_dirs, true);
if (reg_pat != NULL) {
- ap->reg_prog = vim_regcomp((char_u *)reg_pat, RE_MAGIC);
+ ap->reg_prog = vim_regcomp(reg_pat, RE_MAGIC);
}
xfree(reg_pat);
if (reg_pat == NULL || ap->reg_prog == NULL) {
@@ -1153,7 +1152,7 @@ size_t aucmd_pattern_length(char *pat)
char *endpat;
- for (; *pat; pat = (*endpat == ',' ? endpat + 1 : endpat)) {
+ for (; *pat; pat = endpat + 1) {
// Find end of the pattern.
// Watch out for a comma in braces, like "*.\{obj,o\}".
endpat = pat;
@@ -1241,8 +1240,8 @@ void ex_doautoall(exarg_T *eap)
{
int retval = OK;
aco_save_T aco;
- char_u *arg = (char_u *)eap->arg;
- int call_do_modelines = check_nomodeline((char **)&arg);
+ char *arg = eap->arg;
+ int call_do_modelines = check_nomodeline(&arg);
bufref_T bufref;
bool did_aucmd;
@@ -1261,7 +1260,7 @@ void ex_doautoall(exarg_T *eap)
set_bufref(&bufref, buf);
// execute the autocommands for this buffer
- retval = do_doautocmd((char *)arg, false, &did_aucmd);
+ retval = do_doautocmd(arg, false, &did_aucmd);
if (call_do_modelines && did_aucmd) {
// Execute the modeline settings, but don't set window-local
@@ -1282,7 +1281,7 @@ void ex_doautoall(exarg_T *eap)
// Execute autocommands for the current buffer last.
if (retval == OK) {
- (void)do_doautocmd((char *)arg, false, &did_aucmd);
+ (void)do_doautocmd(arg, false, &did_aucmd);
if (call_do_modelines && did_aucmd) {
do_modelines(0);
}
@@ -1364,7 +1363,7 @@ void aucmd_prepbuf(aco_save_T *aco, buf_T *buf)
// Make sure w_localdir and globaldir are NULL to avoid a chdir() in
// win_enter_ext().
XFREE_CLEAR(aucmd_win->w_localdir);
- aco->globaldir = (char *)globaldir;
+ aco->globaldir = globaldir;
globaldir = NULL;
block_autocmds(); // We don't want BufEnter/WinEnter autocommands.
@@ -1451,7 +1450,7 @@ win_found:
hash_init(&aucmd_win->w_vars->dv_hashtab); // re-use the hashtab
xfree(globaldir);
- globaldir = (char_u *)aco->globaldir;
+ globaldir = aco->globaldir;
// the buffer contents may have changed
check_cursor();
@@ -1504,10 +1503,9 @@ win_found:
/// @param buf Buffer for <abuf>
///
/// @return true if some commands were executed.
-bool apply_autocmds(event_T event, char_u *fname, char_u *fname_io, bool force, buf_T *buf)
+bool apply_autocmds(event_T event, char *fname, char *fname_io, bool force, buf_T *buf)
{
- return apply_autocmds_group(event, (char *)fname, (char *)fname_io, force, AUGROUP_ALL, buf,
- NULL);
+ return apply_autocmds_group(event, fname, fname_io, force, AUGROUP_ALL, buf, NULL);
}
/// Like apply_autocmds(), but with extra "eap" argument. This takes care of
diff --git a/src/nvim/buffer.c b/src/nvim/buffer.c
index 18c8a2c250..4b1aea5720 100644
--- a/src/nvim/buffer.c
+++ b/src/nvim/buffer.c
@@ -112,7 +112,7 @@ static int read_buffer(int read_stdin, exarg_T *eap, int flags)
// 'fileencoding' was guessed wrong.
line_count = curbuf->b_ml.ml_line_count;
retval = readfile(read_stdin ? NULL : (char *)curbuf->b_ffname,
- read_stdin ? NULL : (char *)curbuf->b_fname,
+ read_stdin ? NULL : curbuf->b_fname,
line_count, (linenr_T)0, (linenr_T)MAXLNUM, eap,
flags | READ_BUFFER, silent);
if (retval == OK) {
@@ -229,7 +229,7 @@ int open_buffer(int read_stdin, exarg_T *eap, int flags)
}
#endif
- retval = readfile((char *)curbuf->b_ffname, (char *)curbuf->b_fname,
+ retval = readfile((char *)curbuf->b_ffname, curbuf->b_fname,
(linenr_T)0, (linenr_T)0, (linenr_T)MAXLNUM, eap,
flags | READ_NEW | (read_fifo ? READ_FIFO : 0), silent);
#ifdef UNIX
@@ -1219,8 +1219,7 @@ int do_buffer(int action, int start, int dir, int count, int forceit)
return FAIL;
}
} else {
- semsg(_("E89: %s will be killed (add ! to override)"),
- (char *)buf->b_fname);
+ semsg(_("E89: %s will be killed (add ! to override)"), buf->b_fname);
return FAIL;
}
}
@@ -1803,7 +1802,7 @@ buf_T *buflist_new(char_u *ffname_arg, char_u *sfname_arg, linenr_T lnum, int fl
hash_init(&buf->b_s.b_keywtab);
hash_init(&buf->b_s.b_keywtab_ic);
- buf->b_fname = buf->b_sfname;
+ buf->b_fname = (char *)buf->b_sfname;
if (!file_id_valid) {
buf->file_id_valid = false;
} else {
@@ -2113,10 +2112,10 @@ int buflist_findpat(const char_u *pattern, const char_u *pattern_end, bool unlis
{
int match = -1;
int find_listed;
- char_u *pat;
- char_u *patend;
+ char *pat;
+ char *patend;
int attempt;
- char_u *p;
+ char *p;
int toggledollar;
if (pattern_end == pattern + 1 && (*pattern == '%' || *pattern == '#')) {
@@ -2138,7 +2137,7 @@ int buflist_findpat(const char_u *pattern, const char_u *pattern_end, bool unlis
// Repeat this for finding an unlisted buffer if there was no matching
// listed buffer.
- pat = file_pat_to_reg_pat(pattern, pattern_end, NULL, false);
+ pat = file_pat_to_reg_pat((char *)pattern, (char *)pattern_end, NULL, false);
if (pat == NULL) {
return -1;
}
@@ -2271,7 +2270,7 @@ int ExpandBufnames(char_u *pat, int *num_file, char_u ***file, int options)
}
regmatch_T regmatch;
- regmatch.regprog = vim_regcomp(patc + attempt * 11, RE_MAGIC);
+ regmatch.regprog = vim_regcomp((char *)patc + attempt * 11, RE_MAGIC);
if (regmatch.regprog == NULL) {
if (patc != pat) {
xfree(patc);
@@ -2426,7 +2425,7 @@ char_u *buflist_nr2name(int n, int fullname, int helptail)
return NULL;
}
return home_replace_save(helptail ? buf : NULL,
- fullname ? buf->b_ffname : buf->b_fname);
+ fullname ? buf->b_ffname : (char_u *)buf->b_fname);
}
/// Set the line and column numbers for the given buffer and window
@@ -2622,7 +2621,7 @@ void buflist_list(exarg_T *eap)
garray_T buflist;
buf_T **buflist_data = NULL;
- if (vim_strchr((char_u *)eap->arg, 't')) {
+ if (vim_strchr(eap->arg, 't')) {
ga_init(&buflist, sizeof(buf_T *), 50);
for (buf = firstbuf; buf != NULL; buf = buf->b_next) {
ga_grow(&buflist, 1);
@@ -2645,28 +2644,28 @@ void buflist_list(exarg_T *eap)
const bool job_running = buf->terminal && terminal_running(buf->terminal);
// skip unspecified buffers
- if ((!buf->b_p_bl && !eap->forceit && !vim_strchr((char_u *)eap->arg, 'u'))
- || (vim_strchr((char_u *)eap->arg, 'u') && buf->b_p_bl)
- || (vim_strchr((char_u *)eap->arg, '+')
+ if ((!buf->b_p_bl && !eap->forceit && !vim_strchr(eap->arg, 'u'))
+ || (vim_strchr(eap->arg, 'u') && buf->b_p_bl)
+ || (vim_strchr(eap->arg, '+')
&& ((buf->b_flags & BF_READERR) || !bufIsChanged(buf)))
- || (vim_strchr((char_u *)eap->arg, 'a')
+ || (vim_strchr(eap->arg, 'a')
&& (buf->b_ml.ml_mfp == NULL || buf->b_nwindows == 0))
- || (vim_strchr((char_u *)eap->arg, 'h')
+ || (vim_strchr(eap->arg, 'h')
&& (buf->b_ml.ml_mfp == NULL || buf->b_nwindows != 0))
- || (vim_strchr((char_u *)eap->arg, 'R') && (!is_terminal || !job_running))
- || (vim_strchr((char_u *)eap->arg, 'F') && (!is_terminal || job_running))
- || (vim_strchr((char_u *)eap->arg, '-') && buf->b_p_ma)
- || (vim_strchr((char_u *)eap->arg, '=') && !buf->b_p_ro)
- || (vim_strchr((char_u *)eap->arg, 'x') && !(buf->b_flags & BF_READERR))
- || (vim_strchr((char_u *)eap->arg, '%') && buf != curbuf)
- || (vim_strchr((char_u *)eap->arg, '#')
+ || (vim_strchr(eap->arg, 'R') && (!is_terminal || !job_running))
+ || (vim_strchr(eap->arg, 'F') && (!is_terminal || job_running))
+ || (vim_strchr(eap->arg, '-') && buf->b_p_ma)
+ || (vim_strchr(eap->arg, '=') && !buf->b_p_ro)
+ || (vim_strchr(eap->arg, 'x') && !(buf->b_flags & BF_READERR))
+ || (vim_strchr(eap->arg, '%') && buf != curbuf)
+ || (vim_strchr(eap->arg, '#')
&& (buf == curbuf || curwin->w_alt_fnum != buf->b_fnum))) {
continue;
}
if (buf_spname(buf) != NULL) {
STRLCPY(NameBuff, buf_spname(buf), MAXPATHL);
} else {
- home_replace(buf, buf->b_fname, NameBuff, MAXPATHL, true);
+ home_replace(buf, (char_u *)buf->b_fname, NameBuff, MAXPATHL, true);
}
if (message_filtered(NameBuff)) {
@@ -2700,7 +2699,7 @@ void buflist_list(exarg_T *eap)
do {
IObuff[len++] = ' ';
} while (--i > 0 && len < IOSIZE - 18);
- if (vim_strchr((char_u *)eap->arg, 't') && buf->b_last_used) {
+ if (vim_strchr(eap->arg, 't') && buf->b_last_used) {
undo_fmt_time(IObuff + len, (size_t)(IOSIZE - len), buf->b_last_used);
} else {
vim_snprintf((char *)IObuff + len, (size_t)(IOSIZE - len), _("line %" PRId64),
@@ -2730,7 +2729,7 @@ int buflist_name_nr(int fnum, char_u **fname, linenr_T *lnum)
return FAIL;
}
- *fname = buf->b_fname;
+ *fname = (char_u *)buf->b_fname;
*lnum = buflist_findlnum(buf);
return OK;
@@ -2794,7 +2793,7 @@ int setfname(buf_T *buf, char_u *ffname_arg, char_u *sfname_arg, bool message)
buf->b_ffname = ffname;
buf->b_sfname = sfname;
}
- buf->b_fname = buf->b_sfname;
+ buf->b_fname = (char *)buf->b_sfname;
if (!file_id_valid) {
buf->file_id_valid = false;
} else {
@@ -2823,7 +2822,7 @@ void buf_set_name(int fnum, char_u *name)
// Allocate ffname and expand into full path. Also resolves .lnk
// files on Win32.
fname_expand(buf, &buf->b_ffname, &buf->b_sfname);
- buf->b_fname = buf->b_sfname;
+ buf->b_fname = (char *)buf->b_sfname;
}
}
@@ -2980,7 +2979,7 @@ void buf_set_file_id(buf_T *buf)
{
FileID file_id;
if (buf->b_fname != NULL
- && os_fileid((char *)buf->b_fname, &file_id)) {
+ && os_fileid(buf->b_fname, &file_id)) {
buf->file_id_valid = true;
buf->file_id = file_id;
} else {
@@ -3023,7 +3022,7 @@ void fileinfo(int fullname, int shorthelp, int dont_truncate)
STRLCPY(p, buf_spname(curbuf), IOSIZE - (p - buffer));
} else {
if (!fullname && curbuf->b_fname != NULL) {
- name = curbuf->b_fname;
+ name = (char_u *)curbuf->b_fname;
} else {
name = curbuf->b_ffname;
}
@@ -3175,7 +3174,7 @@ void maketitle(void)
SPACE_FOR_FNAME + 1);
buf_p += MIN(size, SPACE_FOR_FNAME);
} else {
- buf_p += transstr_buf((const char *)path_tail((char *)curbuf->b_fname),
+ buf_p += transstr_buf((const char *)path_tail(curbuf->b_fname),
buf_p, SPACE_FOR_FNAME + 1, true);
}
@@ -3834,7 +3833,7 @@ int build_stl_str_hl(win_T *wp, char *out, size_t outlen, char *fmt, int use_san
STRLCPY(NameBuff, buf_spname(wp->w_buffer), MAXPATHL);
} else {
char_u *t = (opt == STL_FULLPATH) ? wp->w_buffer->b_ffname
- : wp->w_buffer->b_fname;
+ : (char_u *)wp->w_buffer->b_fname;
home_replace(wp->w_buffer, t, NameBuff, MAXPATHL, true);
}
trans_characters(NameBuff, MAXPATHL);
@@ -4650,7 +4649,7 @@ char_u *alist_name(aentry_T *aep)
if (bp == NULL || bp->b_fname == NULL) {
return aep->ae_fname;
}
- return bp->b_fname;
+ return (char_u *)bp->b_fname;
}
/// do_arg_all(): Open up to 'count' windows, one for each argument.
@@ -5234,7 +5233,7 @@ static int chk_modeline(linenr_T lnum, int flags)
break;
}
end = true;
- s = vim_strchr(s, ' ') + 1;
+ s = (char_u *)vim_strchr((char *)s, ' ') + 1;
}
*e = NUL; // truncate the set command
@@ -5358,7 +5357,7 @@ char_u *buf_spname(buf_T *buf)
// contains the name as specified by the user.
if (bt_nofile(buf)) {
if (buf->b_fname != NULL) {
- return buf->b_fname;
+ return (char_u *)buf->b_fname;
}
if (bt_prompt(buf)) {
return (char_u *)_("[Prompt]");
@@ -5552,7 +5551,7 @@ char_u *buf_get_fname(const buf_T *buf)
if (buf->b_fname == NULL) {
return (char_u *)_("[No Name]");
}
- return buf->b_fname;
+ return (char_u *)buf->b_fname;
}
/// Set 'buflisted' for curbuf to "on" and trigger autocommands if it changed.
@@ -5594,7 +5593,7 @@ bool buf_contents_changed(buf_T *buf)
aucmd_prepbuf(&aco, newbuf);
if (ml_open(curbuf) == OK
- && readfile((char *)buf->b_ffname, (char *)buf->b_fname,
+ && readfile((char *)buf->b_ffname, buf->b_fname,
(linenr_T)0, (linenr_T)0, (linenr_T)MAXLNUM,
&ea, READ_NEW | READ_DUMMY, false) == OK) {
// compare the two files line by line
diff --git a/src/nvim/buffer_defs.h b/src/nvim/buffer_defs.h
index 1d994a9ff0..2adeeadbca 100644
--- a/src/nvim/buffer_defs.h
+++ b/src/nvim/buffer_defs.h
@@ -537,16 +537,14 @@ struct file_buffer {
int b_ro_locked; // Non-zero when the buffer can't be changed.
// Used for FileChangedRO
- //
// b_ffname has the full path of the file (NULL for no name).
// b_sfname is the name as the user typed it (or NULL).
// b_fname is the same as b_sfname, unless ":cd" has been done,
// then it is the same as b_ffname (NULL for no name).
- //
char_u *b_ffname; // full path file name, allocated
char_u *b_sfname; // short file name, allocated, may be equal to
// b_ffname
- char_u *b_fname; // current file name, points to b_ffname or
+ char *b_fname; // current file name, points to b_ffname or
// b_sfname
bool file_id_valid;
diff --git a/src/nvim/change.c b/src/nvim/change.c
index b15e90e0bc..94e5a19edc 100644
--- a/src/nvim/change.c
+++ b/src/nvim/change.c
@@ -209,6 +209,10 @@ static void changed_common(linenr_T lnum, colnr_T col, linenr_T lnume, long xtra
curwin->w_changelistidx = curbuf->b_changelistlen;
}
+ if (VIsual_active) {
+ check_visual_pos();
+ }
+
FOR_ALL_TAB_WINDOWS(tp, wp) {
if (wp->w_buffer == curbuf) {
// Mark this window to be redrawn later.
@@ -963,8 +967,7 @@ int open_line(int dir, int flags, int second_line_indent, bool *did_do_comment)
char_u *p;
char_u saved_char = NUL; // init for GCC
pos_T *pos;
- bool do_si = (!p_paste && curbuf->b_p_si && !curbuf->b_p_cin
- && *curbuf->b_p_inde == NUL);
+ bool do_si = may_do_si();
bool do_cindent;
bool no_si = false; // reset did_si afterwards
int first_char = NUL; // init for GCC
@@ -1499,7 +1502,7 @@ int open_line(int dir, int flags, int second_line_indent, bool *did_do_comment)
while (off > 0 && lead_len > 0
&& leader[lead_len - 1] == ' ') {
// Don't do it when there is a tab before the space
- if (vim_strchr((char_u *)skipwhite((char *)leader), '\t') != NULL) {
+ if (vim_strchr(skipwhite((char *)leader), '\t') != NULL) {
break;
}
lead_len--;
@@ -1879,7 +1882,7 @@ int get_leader_len(char_u *line, char_u **flags, bool backward, bool include_spa
{
int j;
int got_com = false;
- char_u part_buf[COM_MAX_LEN]; // buffer for one option part
+ char part_buf[COM_MAX_LEN]; // buffer for one option part
char_u *string; // pointer to comment string
char_u *list;
int middle_match_len = 0;
@@ -1903,8 +1906,8 @@ int get_leader_len(char_u *line, char_u **flags, bool backward, bool include_spa
*flags = list; // remember where flags started
}
prev_list = list;
- (void)copy_option_part(&list, part_buf, COM_MAX_LEN, ",");
- string = vim_strchr(part_buf, ':');
+ (void)copy_option_part(&list, (char_u *)part_buf, COM_MAX_LEN, ",");
+ string = (char_u *)vim_strchr(part_buf, ':');
if (string == NULL) { // missing ':', ignore this part
continue;
}
@@ -2026,7 +2029,7 @@ int get_last_leader_offset(char_u *line, char_u **flags)
char_u *com_leader;
char_u *com_flags;
char_u *list;
- char_u part_buf[COM_MAX_LEN]; // buffer for one option part
+ char part_buf[COM_MAX_LEN]; // buffer for one option part
// Repeat to match several nested comment strings.
int i = (int)STRLEN(line);
@@ -2038,8 +2041,8 @@ int get_last_leader_offset(char_u *line, char_u **flags)
// Get one option part into part_buf[]. Advance list to next one.
// put string at start of string.
- (void)copy_option_part(&list, part_buf, COM_MAX_LEN, ",");
- string = vim_strchr(part_buf, ':');
+ (void)copy_option_part(&list, (char_u *)part_buf, COM_MAX_LEN, ",");
+ string = (char_u *)vim_strchr(part_buf, ':');
if (string == NULL) { // If everything is fine, this cannot actually
// happen.
continue;
@@ -2097,7 +2100,7 @@ int get_last_leader_offset(char_u *line, char_u **flags)
}
if (found_one) {
- char_u part_buf2[COM_MAX_LEN]; // buffer for one option part
+ char part_buf2[COM_MAX_LEN]; // buffer for one option part
int len1, len2, off;
result = i;
@@ -2121,11 +2124,11 @@ int get_last_leader_offset(char_u *line, char_u **flags)
for (list = curbuf->b_p_com; *list;) {
char_u *flags_save = list;
- (void)copy_option_part(&list, part_buf2, COM_MAX_LEN, ",");
+ (void)copy_option_part(&list, (char_u *)part_buf2, COM_MAX_LEN, ",");
if (flags_save == com_flags) {
continue;
}
- string = vim_strchr(part_buf2, ':');
+ string = (char_u *)vim_strchr(part_buf2, ':');
string++;
while (ascii_iswhite(*string)) {
string++;
diff --git a/src/nvim/charset.c b/src/nvim/charset.c
index 4f6033cbfa..082791ffd1 100644
--- a/src/nvim/charset.c
+++ b/src/nvim/charset.c
@@ -1541,6 +1541,7 @@ void vim_str2nr(const char_u *const start, int *const prep, int *const len, cons
// Do the conversion manually to avoid sscanf() quirks.
abort(); // Should’ve used goto earlier.
+ // -V:PARSE_NUMBER:560
#define PARSE_NUMBER(base, cond, conv) \
do { \
const char *const after_prefix = ptr; \
diff --git a/src/nvim/cursor.c b/src/nvim/cursor.c
index 11c734479c..1446257f7e 100644
--- a/src/nvim/cursor.c
+++ b/src/nvim/cursor.c
@@ -399,6 +399,24 @@ void check_cursor(void)
check_cursor_col();
}
+/// Check if VIsual position is valid, correct it if not.
+/// Can be called when in Visual mode and a change has been made.
+void check_visual_pos(void)
+{
+ if (VIsual.lnum > curbuf->b_ml.ml_line_count) {
+ VIsual.lnum = curbuf->b_ml.ml_line_count;
+ VIsual.col = 0;
+ VIsual.coladd = 0;
+ } else {
+ int len = (int)STRLEN(ml_get(VIsual.lnum));
+
+ if (VIsual.col > len) {
+ VIsual.col = len;
+ VIsual.coladd = 0;
+ }
+ }
+}
+
/// Make sure curwin->w_cursor is not on the NUL at the end of the line.
/// Allow it when in Visual mode and 'selection' is not "old".
void adjust_cursor_col(void)
diff --git a/src/nvim/cursor_shape.c b/src/nvim/cursor_shape.c
index 2a2b4588b9..b69505d7c9 100644
--- a/src/nvim/cursor_shape.c
+++ b/src/nvim/cursor_shape.c
@@ -120,8 +120,8 @@ char *parse_shape_opt(int what)
// Repeat for all comma separated parts.
char *modep = (char *)p_guicursor;
while (modep != NULL && *modep != NUL) {
- colonp = (char *)vim_strchr((char_u *)modep, ':');
- commap = (char *)vim_strchr((char_u *)modep, ',');
+ colonp = vim_strchr(modep, ':');
+ commap = vim_strchr(modep, ',');
if (colonp == NULL || (commap != NULL && commap < colonp)) {
return N_("E545: Missing colon");
@@ -215,7 +215,7 @@ char *parse_shape_opt(int what)
}
p += 5;
} else { // must be a highlight group name then
- endp = (char *)vim_strchr((char_u *)p, '-');
+ endp = vim_strchr(p, '-');
if (commap == NULL) { // last part
if (endp == NULL) {
endp = p + STRLEN(p); // find end of part
@@ -223,7 +223,7 @@ char *parse_shape_opt(int what)
} else if (endp > commap || endp == NULL) {
endp = commap;
}
- slashp = (char *)vim_strchr((char_u *)p, '/');
+ slashp = vim_strchr(p, '/');
if (slashp != NULL && slashp < endp) {
// "group/langmap_group"
i = syn_check_group(p, (size_t)(slashp - p));
diff --git a/src/nvim/debugger.c b/src/nvim/debugger.c
index 0f76c3e884..b2ac28629c 100644
--- a/src/nvim/debugger.c
+++ b/src/nvim/debugger.c
@@ -100,7 +100,7 @@ void do_debug(char_u *cmd)
debug_newval = NULL;
}
if (sourcing_name != NULL) {
- msg((char *)sourcing_name);
+ msg(sourcing_name);
}
if (sourcing_lnum != 0) {
smsg(_("line %" PRId64 ": %s"), (int64_t)sourcing_lnum, cmd);
@@ -293,7 +293,7 @@ static int get_maxbacktrace_level(void)
int maxbacktrace = 0;
if (sourcing_name != NULL) {
- char *p = (char *)sourcing_name;
+ char *p = sourcing_name;
char *q;
while ((q = strstr(p, "..")) != NULL) {
p = q + 2;
@@ -334,7 +334,7 @@ static void do_showbacktrace(char_u *cmd)
if (sourcing_name != NULL) {
int i = 0;
int max = get_maxbacktrace_level();
- char *cur = (char *)sourcing_name;
+ char *cur = sourcing_name;
while (!got_int) {
char *next = strstr(cur, "..");
if (next != NULL) {
@@ -475,8 +475,8 @@ static typval_T *eval_expr_no_emsg(struct debuggy *const bp)
/// @param gap either &dbg_breakp or &prof_ga
static int dbg_parsearg(char_u *arg, garray_T *gap)
{
- char_u *p = arg;
- char_u *q;
+ char *p = (char *)arg;
+ char *q;
bool here = false;
ga_grow(gap, 1);
@@ -501,14 +501,14 @@ static int dbg_parsearg(char_u *arg, garray_T *gap)
semsg(_(e_invarg2), p);
return FAIL;
}
- p = (char_u *)skipwhite((char *)p + 4);
+ p = skipwhite(p + 4);
// Find optional line number.
if (here) {
bp->dbg_lnum = curwin->w_cursor.lnum;
} else if (gap != &prof_ga && ascii_isdigit(*p)) {
- bp->dbg_lnum = getdigits_long(&p, true, 0);
- p = (char_u *)skipwhite((char *)p);
+ bp->dbg_lnum = getdigits_long((char_u **)&p, true, 0);
+ p = skipwhite(p);
} else {
bp->dbg_lnum = 0;
}
@@ -516,17 +516,17 @@ static int dbg_parsearg(char_u *arg, garray_T *gap)
// Find the function or file name. Don't accept a function name with ().
if ((!here && *p == NUL)
|| (here && *p != NUL)
- || (bp->dbg_type == DBG_FUNC && strstr((char *)p, "()") != NULL)) {
+ || (bp->dbg_type == DBG_FUNC && strstr(p, "()") != NULL)) {
semsg(_(e_invarg2), arg);
return FAIL;
}
if (bp->dbg_type == DBG_FUNC) {
- bp->dbg_name = vim_strsave(p);
+ bp->dbg_name = vim_strsave((char_u *)p);
} else if (here) {
bp->dbg_name = vim_strsave(curbuf->b_ffname);
} else if (bp->dbg_type == DBG_EXPR) {
- bp->dbg_name = vim_strsave(p);
+ bp->dbg_name = vim_strsave((char_u *)p);
bp->dbg_val = eval_expr_no_emsg(bp);
} else {
// Expand the file name in the same way as do_source(). This means
@@ -542,10 +542,10 @@ static int dbg_parsearg(char_u *arg, garray_T *gap)
return FAIL;
}
if (*p != '*') {
- bp->dbg_name = (char_u *)fix_fname((char *)p);
+ bp->dbg_name = (char_u *)fix_fname(p);
xfree(p);
} else {
- bp->dbg_name = p;
+ bp->dbg_name = (char_u *)p;
}
}
@@ -568,7 +568,7 @@ void ex_breakadd(exarg_T *eap)
bp->dbg_forceit = eap->forceit;
if (bp->dbg_type != DBG_EXPR) {
- char_u *pat = file_pat_to_reg_pat(bp->dbg_name, NULL, NULL, false);
+ char *pat = file_pat_to_reg_pat((char *)bp->dbg_name, NULL, NULL, false);
if (pat != NULL) {
bp->dbg_prog = vim_regcomp(pat, RE_MAGIC + RE_STRING);
xfree(pat);
diff --git a/src/nvim/diff.c b/src/nvim/diff.c
index dcc9b51431..e8d54d7030 100644
--- a/src/nvim/diff.c
+++ b/src/nvim/diff.c
@@ -1160,7 +1160,7 @@ void ex_diffpatch(exarg_T *eap)
{
char_u *buf = NULL;
win_T *old_curwin = curwin;
- char_u *newname = NULL; // name of patched file buffer
+ char *newname = NULL; // name of patched file buffer
char_u *esc_name = NULL;
#ifdef UNIX
@@ -1258,7 +1258,7 @@ void ex_diffpatch(exarg_T *eap)
emsg(_("E816: Cannot read patch output"));
} else {
if (curbuf->b_fname != NULL) {
- newname = vim_strnsave(curbuf->b_fname, STRLEN(curbuf->b_fname) + 4);
+ newname = xstrnsave(curbuf->b_fname, STRLEN(curbuf->b_fname) + 4);
STRCAT(newname, ".new");
}
@@ -1279,7 +1279,7 @@ void ex_diffpatch(exarg_T *eap)
if (newname != NULL) {
// do a ":file filename.new" on the patched buffer
- eap->arg = (char *)newname;
+ eap->arg = newname;
ex_file(eap);
// Do filetype detection with the new name.
diff --git a/src/nvim/digraph.c b/src/nvim/digraph.c
index 43ea32fc09..1b536bdde6 100644
--- a/src/nvim/digraph.c
+++ b/src/nvim/digraph.c
@@ -2069,7 +2069,7 @@ void ex_loadkeymap(exarg_T *eap)
#define KMAP_LLEN 200 // max length of "to" and "from" together
char_u buf[KMAP_LLEN + 11];
- char_u *save_cpo = p_cpo;
+ char *save_cpo = p_cpo;
if (!getline_equal(eap->getline, eap->cookie, getsourceline)) {
emsg(_("E105: Using :loadkeymap not in a sourced file"));
@@ -2083,7 +2083,7 @@ void ex_loadkeymap(exarg_T *eap)
ga_init(&curbuf->b_kmap_ga, (int)sizeof(kmap_T), 20);
// Set 'cpoptions' to "C" to avoid line continuation.
- p_cpo = (char_u *)"C";
+ p_cpo = "C";
// Get each line of the sourced file, break at the end.
for (;;) {
@@ -2093,7 +2093,7 @@ void ex_loadkeymap(exarg_T *eap)
break;
}
- char_u *p = (char_u *)skipwhite((char *)line);
+ char_u *p = (char_u *)skipwhite(line);
if ((*p != '"') && (*p != NUL)) {
kmap_T *kp = GA_APPEND_VIA_PTR(kmap_T, &curbuf->b_kmap_ga);
@@ -2144,22 +2144,22 @@ void keymap_ga_clear(garray_T *kmap_ga)
/// Stop using 'keymap'.
static void keymap_unload(void)
{
- char_u buf[KMAP_MAXLEN + 10];
- char_u *save_cpo = p_cpo;
+ char buf[KMAP_MAXLEN + 10];
+ char *save_cpo = p_cpo;
if (!(curbuf->b_kmap_state & KEYMAP_LOADED)) {
return;
}
// Set 'cpoptions' to "C" to avoid line continuation.
- p_cpo = (char_u *)"C";
+ p_cpo = "C";
// clear the ":lmap"s
kmap_T *kp = (kmap_T *)curbuf->b_kmap_ga.ga_data;
for (int i = 0; i < curbuf->b_kmap_ga.ga_len; i++) {
- vim_snprintf((char *)buf, sizeof(buf), "<buffer> %s", kp[i].from);
- (void)do_map(1, buf, MODE_LANGMAP, false);
+ vim_snprintf(buf, sizeof(buf), "<buffer> %s", kp[i].from);
+ (void)do_map(1, (char_u *)buf, MODE_LANGMAP, false);
}
keymap_ga_clear(&curbuf->b_kmap_ga);
diff --git a/src/nvim/edit.c b/src/nvim/edit.c
index c2e61271c7..aa77c03b48 100644
--- a/src/nvim/edit.c
+++ b/src/nvim/edit.c
@@ -1339,7 +1339,7 @@ normalchar:
ins_char(s->c);
}
}
- AppendToRedobuffLit((char *)str, -1);
+ AppendToRedobuffLit(str, -1);
}
xfree(str);
s->c = NUL;
@@ -1396,7 +1396,7 @@ static void insert_do_complete(InsertState *s)
compl_cont_status = 0;
}
compl_busy = false;
- can_si = true; // allow smartindenting
+ can_si = may_do_si(); // allow smartindenting
}
static void insert_do_cindent(InsertState *s)
@@ -2735,7 +2735,7 @@ static bool pum_wanted(void)
FUNC_ATTR_PURE FUNC_ATTR_WARN_UNUSED_RESULT
{
// "completeopt" must contain "menu" or "menuone"
- return vim_strchr(p_cot, 'm') != NULL;
+ return vim_strchr((char *)p_cot, 'm') != NULL;
}
/// Check that there are two or more matches to be shown in the popup menu.
@@ -2983,11 +2983,11 @@ static void ins_compl_dictionaries(char_u *dict_start, char_u *pat, int flags, i
size_t len = STRLEN(pat_esc) + 10;
ptr = xmalloc(len);
vim_snprintf((char *)ptr, len, "^\\s*\\zs\\V%s", pat_esc);
- regmatch.regprog = vim_regcomp(ptr, RE_MAGIC);
+ regmatch.regprog = vim_regcomp((char *)ptr, RE_MAGIC);
xfree(pat_esc);
xfree(ptr);
} else {
- regmatch.regprog = vim_regcomp(pat, p_magic ? RE_MAGIC : 0);
+ regmatch.regprog = vim_regcomp((char *)pat, p_magic ? RE_MAGIC : 0);
if (regmatch.regprog == NULL) {
goto theend;
}
@@ -3007,7 +3007,7 @@ static void ins_compl_dictionaries(char_u *dict_start, char_u *pat, int flags, i
copy_option_part(&dict, buf, LSIZE, ",");
if (!thesaurus && STRCMP(buf, "spell") == 0) {
count = -1;
- } else if (vim_strchr(buf, '`') != NULL
+ } else if (vim_strchr((char *)buf, '`') != NULL
|| expand_wildcards(1, &buf, &count, &files,
EW_FILE|EW_SILENT) != OK) {
count = 0;
@@ -4252,9 +4252,8 @@ static int ins_compl_get_exp(pos_T *ini)
// Remember the first match so that the loop stops when we
// wrap and come back there a second time.
set_match_pos = true;
- } else if (vim_strchr((char_u *)"buwU", *e_cpt) != NULL
- && (ins_buf =
- ins_compl_next_buf(ins_buf, *e_cpt)) != curbuf) {
+ } else if (vim_strchr("buwU", *e_cpt) != NULL
+ && (ins_buf = ins_compl_next_buf(ins_buf, *e_cpt)) != curbuf) {
// Scan a buffer, but not the current one.
if (ins_buf->b_ml.ml_mfp != NULL) { // loaded buffer
compl_started = true;
@@ -4268,7 +4267,7 @@ static int ins_compl_get_exp(pos_T *ini)
continue;
}
type = CTRL_X_DICTIONARY;
- dict = ins_buf->b_fname;
+ dict = (char_u *)ins_buf->b_fname;
dict_f = DICT_EXACT;
}
msg_hist_off = true; // reset in msg_trunc_attr()
@@ -4276,7 +4275,7 @@ static int ins_compl_get_exp(pos_T *ini)
ins_buf->b_fname == NULL
? buf_spname(ins_buf)
: ins_buf->b_sfname == NULL
- ? ins_buf->b_fname
+ ? (char_u *)ins_buf->b_fname
: ins_buf->b_sfname);
(void)msg_trunc_attr((char *)IObuff, true, HL_ATTR(HLF_R));
} else if (*e_cpt == NUL) {
@@ -5833,7 +5832,7 @@ void insertchar(int c, int flags, int second_indent)
* comment leader. First, check what comment leader we can find.
*/
i = get_leader_len(line = get_cursor_line_ptr(), &p, false, true);
- if (i > 0 && vim_strchr(p, COM_MIDDLE) != NULL) { // Just checking
+ if (i > 0 && vim_strchr((char *)p, COM_MIDDLE) != NULL) { // Just checking
// Skip middle-comment string
while (*p && p[-1] != ':') { // find end of middle flags
p++;
@@ -6771,13 +6770,8 @@ static void stop_insert(pos_T *end_insert_pos, int esc, int nomove)
// <C-S-Right> may have started Visual mode, adjust the position for
// deleted characters.
- if (VIsual_active && VIsual.lnum == curwin->w_cursor.lnum) {
- int len = (int)STRLEN(get_cursor_line_ptr());
-
- if (VIsual.col > len) {
- VIsual.col = len;
- VIsual.coladd = 0;
- }
+ if (VIsual_active) {
+ check_visual_pos();
}
}
}
@@ -7580,7 +7574,7 @@ bool in_cinkeys(int keytyped, int when, bool line_is_empty)
// make up some named keys <o>, <O>, <e>, <0>, <>>, <<>, <*>,
// <:> and <!> so that people can re-indent on o, O, e, 0, <,
// >, *, : and ! keys if they really really want to.
- if (vim_strchr((char_u *)"<>!*oOe0:", look[1]) != NULL
+ if (vim_strchr("<>!*oOe0:", look[1]) != NULL
&& keytyped == look[1]) {
return true;
}
@@ -7607,7 +7601,7 @@ bool in_cinkeys(int keytyped, int when, bool line_is_empty)
} else {
icase = false;
}
- p = vim_strchr(look, ',');
+ p = (char_u *)vim_strchr((char *)look, ',');
if (p == NULL) {
p = look + STRLEN(look);
}
@@ -8697,7 +8691,7 @@ static void ins_left(void)
revins_legal++;
}
revins_chars++;
- } else if (vim_strchr(p_ww, '[') != NULL && curwin->w_cursor.lnum > 1) {
+ } else if (vim_strchr((char *)p_ww, '[') != NULL && curwin->w_cursor.lnum > 1) {
// if 'whichwrap' set for cursor in insert mode may go to previous line.
// always break undo when moving upwards/downwards, else undo may break
start_arrow(&tpos);
@@ -8790,7 +8784,7 @@ static void ins_right(void)
if (revins_chars) {
revins_chars--;
}
- } else if (vim_strchr(p_ww, ']') != NULL
+ } else if (vim_strchr((char *)p_ww, ']') != NULL
&& curwin->w_cursor.lnum < curbuf->b_ml.ml_line_count) {
// if 'whichwrap' set for cursor in insert mode, may move the
// cursor to the next line
@@ -9344,10 +9338,8 @@ static void ins_try_si(int c)
/*
* do some very smart indenting when entering '{' or '}'
*/
- if (((did_si || can_si_back) && c == '{') || (can_si && c == '}')) {
- /*
- * for '}' set indent equal to indent of line containing matching '{'
- */
+ if (((did_si || can_si_back) && c == '{') || (can_si && c == '}' && inindent(0))) {
+ // for '}' set indent equal to indent of line containing matching '{'
if (c == '}' && (pos = findmatch(NULL, '{')) != NULL) {
old_pos = curwin->w_cursor;
/*
@@ -9403,7 +9395,7 @@ static void ins_try_si(int c)
/*
* set indent of '#' always to 0
*/
- if (curwin->w_cursor.col > 0 && can_si && c == '#') {
+ if (curwin->w_cursor.col > 0 && can_si && c == '#' && inindent(0)) {
// remember current indent for next line
old_indent = get_indent();
(void)set_indent(0, SIN_CHANGED);
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index ba7e34b541..9c2069663d 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -1407,7 +1407,7 @@ static void ex_let_const(exarg_T *eap, const bool is_const)
argend--;
}
expr = skipwhite(argend);
- if (*expr != '=' && !((vim_strchr((char_u *)"+-*/%.", *expr) != NULL
+ if (*expr != '=' && !((vim_strchr("+-*/%.", *expr) != NULL
&& expr[1] == '=') || STRNCMP(expr, "..=", 3) == 0)) {
// ":let" without "=": list variables
if (*arg == '[') {
@@ -1443,7 +1443,7 @@ static void ex_let_const(exarg_T *eap, const bool is_const)
op[0] = '=';
op[1] = NUL;
if (*expr != '=') {
- if (vim_strchr((char_u *)"+-*/%.", *expr) != NULL) {
+ if (vim_strchr("+-*/%.", *expr) != NULL) {
op[0] = *expr; // +=, -=, *=, /=, %= or .=
if (expr[0] == '.' && expr[1] == '.') { // ..=
expr++;
@@ -1809,10 +1809,10 @@ static char *ex_let_one(char *arg, typval_T *const tv, const bool copy, const bo
if (len == 0) {
semsg(_(e_invarg2), name - 1);
} else {
- if (op != NULL && vim_strchr((char_u *)"+-*/%", *op) != NULL) {
+ if (op != NULL && vim_strchr("+-*/%", *op) != NULL) {
semsg(_(e_letwrong), op);
} else if (endchars != NULL
- && vim_strchr((char_u *)endchars, *skipwhite(arg)) == NULL) {
+ && vim_strchr(endchars, *skipwhite(arg)) == NULL) {
emsg(_(e_letunexp));
} else if (!check_secure()) {
const char c1 = name[len];
@@ -1855,7 +1855,7 @@ static char *ex_let_one(char *arg, typval_T *const tv, const bool copy, const bo
char *const p = (char *)find_option_end((const char **)&arg, &opt_flags);
if (p == NULL
|| (endchars != NULL
- && vim_strchr((char_u *)endchars, *skipwhite(p)) == NULL)) {
+ && vim_strchr(endchars, *skipwhite(p)) == NULL)) {
emsg(_(e_letunexp));
} else {
int opt_type;
@@ -1914,10 +1914,10 @@ static char *ex_let_one(char *arg, typval_T *const tv, const bool copy, const bo
return NULL;
}
arg++;
- if (op != NULL && vim_strchr((char_u *)"+-*/%", *op) != NULL) {
+ if (op != NULL && vim_strchr("+-*/%", *op) != NULL) {
semsg(_(e_letwrong), op);
} else if (endchars != NULL
- && vim_strchr((char_u *)endchars, *skipwhite(arg + 1)) == NULL) {
+ && vim_strchr(endchars, *skipwhite(arg + 1)) == NULL) {
emsg(_(e_letunexp));
} else {
char *s;
@@ -1949,7 +1949,7 @@ static char *ex_let_one(char *arg, typval_T *const tv, const bool copy, const bo
char *const p = get_lval(arg, tv, &lv, false, false, 0, FNE_CHECK_START);
if (p != NULL && lv.ll_name != NULL) {
- if (endchars != NULL && vim_strchr((char_u *)endchars, *skipwhite(p)) == NULL) {
+ if (endchars != NULL && vim_strchr(endchars, *skipwhite(p)) == NULL) {
emsg(_(e_letunexp));
} else {
set_var_lval(&lv, p, tv, copy, is_const, op);
@@ -2752,7 +2752,7 @@ void set_context_for_expression(expand_T *xp, char *arg, cmdidx_T cmdidx)
break;
} else if ((c == '<' || c == '#')
&& xp->xp_context == EXPAND_FUNCTIONS
- && vim_strchr((char_u *)xp->xp_pattern, '(') == NULL) {
+ && vim_strchr(xp->xp_pattern, '(') == NULL) {
// Function name can start with "<SNR>" and contain '#'.
break;
} else if (cmdidx != CMD_let || got_eq) {
@@ -3263,15 +3263,15 @@ int pattern_match(char *pat, char *text, bool ic)
regmatch_T regmatch;
// avoid 'l' flag in 'cpoptions'
- char *save_cpo = (char *)p_cpo;
- p_cpo = (char_u *)"";
- regmatch.regprog = vim_regcomp((char_u *)pat, RE_MAGIC + RE_STRING);
+ char *save_cpo = p_cpo;
+ p_cpo = "";
+ regmatch.regprog = vim_regcomp(pat, RE_MAGIC + RE_STRING);
if (regmatch.regprog != NULL) {
regmatch.rm_ic = ic;
matches = vim_regexec_nl(&regmatch, (char_u *)text, (colnr_T)0);
vim_regfree(regmatch.regprog);
}
- p_cpo = (char_u *)save_cpo;
+ p_cpo = save_cpo;
return matches;
}
@@ -5872,7 +5872,7 @@ static int get_env_tv(char **arg, typval_T *rettv, int evaluate)
xfree(string);
// Next try expanding things like $VIM and ${HOME}.
- string = (char *)expand_env_save((char_u *)name - 1);
+ string = expand_env_save(name - 1);
if (string != NULL && *string == '$') {
XFREE_CLEAR(string);
}
@@ -6141,7 +6141,7 @@ void common_function(typval_T *argvars, typval_T *rettv, bool is_funcref, FunPtr
use_string = true;
}
- if ((use_string && vim_strchr((char_u *)s, AUTOLOAD_CHAR) == NULL) || is_funcref) {
+ if ((use_string && vim_strchr(s, AUTOLOAD_CHAR) == NULL) || is_funcref) {
name = s;
trans_name = (char *)trans_function_name((char_u **)&name, false,
TFN_INT | TFN_QUIET | TFN_NO_AUTOLOAD
@@ -7958,7 +7958,7 @@ int get_id_len(const char **const arg)
// slice "[n:]". Also "xx:" is not a namespace.
len = (int)(p - *arg);
if (len > 1
- || (len == 1 && vim_strchr((char_u *)namespace_char, **arg) == NULL)) {
+ || (len == 1 && vim_strchr(namespace_char, **arg) == NULL)) {
break;
}
}
@@ -8089,7 +8089,7 @@ const char *find_name_end(const char *arg, const char **expr_start, const char *
// slice "[n:]". Also "xx:" is not a namespace. But {ns}: is.
len = (int)(p - arg);
if ((len > 1 && p[-1] != '}')
- || (len == 1 && vim_strchr((char_u *)namespace_char, *arg) == NULL)) {
+ || (len == 1 && vim_strchr(namespace_char, *arg) == NULL)) {
break;
}
}
@@ -9279,7 +9279,7 @@ bool var_check_func_name(const char *const name, const bool new_var)
FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT
{
// Allow for w: b: s: and t:.
- if (!(vim_strchr((char_u *)"wbst", name[0]) != NULL && name[1] == ':')
+ if (!(vim_strchr("wbst", name[0]) != NULL && name[1] == ':')
&& !ASCII_ISUPPER((name[0] != NUL && name[1] == ':')
? name[2] : name[0])) {
semsg(_("E704: Funcref variable name must start with a capital: %s"), name);
@@ -10110,7 +10110,7 @@ repeat:
|| (*fnamep)[1] == NUL)
#endif
&& !(tilde_file && (*fnamep)[1] == NUL)) {
- *fnamep = (char *)expand_env_save((char_u *)(*fnamep));
+ *fnamep = expand_env_save(*fnamep);
xfree(*bufp); // free any allocated file name
*bufp = *fnamep;
if (*fnamep == NULL) {
@@ -10146,9 +10146,6 @@ repeat:
*fnamep = xstrnsave(*fnamep, STRLEN(*fnamep) + 2);
xfree(*bufp); // free any allocated file name
*bufp = *fnamep;
- if (*fnamep == NULL) {
- return -1;
- }
add_pathsep(*fnamep);
}
}
@@ -10166,7 +10163,7 @@ repeat:
// Need full path first (use expand_env() to remove a "~/")
if (!has_fullname && !has_homerelative) {
if (**fnamep == '~') {
- p = pbuf = (char *)expand_env_save((char_u *)(*fnamep));
+ p = pbuf = expand_env_save(*fnamep);
} else {
p = pbuf = FullName_save(*fnamep, false);
}
@@ -10328,12 +10325,12 @@ repeat:
sep = (char_u)(*s++);
if (sep) {
// find end of pattern
- p = (char *)vim_strchr((char_u *)s, sep);
+ p = vim_strchr(s, sep);
if (p != NULL) {
char *const pat = xstrnsave(s, p - s);
s = p + 1;
// find end of substitution
- p = (char *)vim_strchr((char_u *)s, sep);
+ p = vim_strchr(s, sep);
if (p != NULL) {
char *const sub = xstrnsave(s, p - s);
char *const str = xstrnsave(*fnamep, *fnamelen);
@@ -10392,15 +10389,15 @@ char *do_string_sub(char *str, char *pat, char *sub, typval_T *expr, char *flags
char *zero_width = NULL;
// Make 'cpoptions' empty, so that the 'l' flag doesn't work here
- save_cpo = (char *)p_cpo;
- p_cpo = empty_option;
+ save_cpo = p_cpo;
+ p_cpo = (char *)empty_option;
ga_init(&ga, 1, 200);
do_all = (flags[0] == 'g');
regmatch.rm_ic = p_ic;
- regmatch.regprog = vim_regcomp((char_u *)pat, RE_MAGIC + RE_STRING);
+ regmatch.regprog = vim_regcomp(pat, RE_MAGIC + RE_STRING);
if (regmatch.regprog != NULL) {
tail = str;
end = str + STRLEN(str);
@@ -10452,8 +10449,8 @@ char *do_string_sub(char *str, char *pat, char *sub, typval_T *expr, char *flags
char *ret = xstrdup(ga.ga_data == NULL ? str : ga.ga_data);
ga_clear(&ga);
- if (p_cpo == empty_option) {
- p_cpo = (char_u *)save_cpo;
+ if ((char_u *)p_cpo == empty_option) {
+ p_cpo = save_cpo;
} else {
// Darn, evaluating {sub} expression or {expr} changed the value.
free_string_option((char_u *)save_cpo);
diff --git a/src/nvim/eval/executor.c b/src/nvim/eval/executor.c
index c08b7b1b2d..3e66150180 100644
--- a/src/nvim/eval/executor.c
+++ b/src/nvim/eval/executor.c
@@ -63,7 +63,7 @@ int eexe_mod_op(typval_T *const tv1, const typval_T *const tv2, const char *cons
if (tv2->v_type == VAR_LIST) {
break;
}
- if (vim_strchr((char_u *)"+-*/%", *op) != NULL) {
+ if (vim_strchr("+-*/%", *op) != NULL) {
// nr += nr or nr -= nr, nr *= nr, nr /= nr, nr %= nr
varnumber_T n = tv_get_number(tv1);
if (tv2->v_type == VAR_FLOAT) {
diff --git a/src/nvim/eval/funcs.c b/src/nvim/eval/funcs.c
index ee00736b63..68c2e37f22 100644
--- a/src/nvim/eval/funcs.c
+++ b/src/nvim/eval/funcs.c
@@ -485,9 +485,7 @@ static buf_T *find_buffer(typval_T *avar)
* buffer, these don't use the full path. */
FOR_ALL_BUFFERS(bp) {
if (bp->b_fname != NULL
- && (path_with_url((char *)bp->b_fname)
- || bt_nofile(bp)
- )
+ && (path_with_url(bp->b_fname) || bt_nofile(bp))
&& STRCMP(bp->b_fname, avar->vval.v_string) == 0) {
buf = bp;
break;
@@ -557,7 +555,7 @@ static void f_bufname(typval_T *argvars, typval_T *rettv, FunPtr fptr)
buf = tv_get_buf_from_arg(&argvars[0]);
}
if (buf != NULL && buf->b_fname != NULL) {
- rettv->vval.v_string = xstrdup((char *)buf->b_fname);
+ rettv->vval.v_string = xstrdup(buf->b_fname);
}
}
@@ -638,7 +636,7 @@ buf_T *tv_get_buf(typval_T *tv, int curtab_only)
{
char_u *name = (char_u *)tv->vval.v_string;
int save_magic;
- char_u *save_cpo;
+ char *save_cpo;
buf_T *buf;
if (tv->v_type == VAR_NUMBER) {
@@ -658,7 +656,7 @@ buf_T *tv_get_buf(typval_T *tv, int curtab_only)
save_magic = p_magic;
p_magic = TRUE;
save_cpo = p_cpo;
- p_cpo = (char_u *)"";
+ p_cpo = "";
buf = buflist_findnr(buflist_findpat(name, name + STRLEN(name),
true, false, curtab_only));
@@ -2066,7 +2064,7 @@ static void f_exists(typval_T *argvars, typval_T *rettv, FunPtr fptr)
n = true;
} else {
// Try expanding things like $VIM and ${HOME}.
- char_u *const exp = expand_env_save((char_u *)p);
+ char *const exp = expand_env_save((char *)p);
if (exp != NULL && *exp != '$') {
n = true;
}
@@ -3390,7 +3388,7 @@ static void f_getcwd(typval_T *argvars, typval_T *rettv, FunPtr fptr)
FALLTHROUGH;
case kCdScopeGlobal:
if (globaldir) { // `globaldir` is not always set.
- from = globaldir;
+ from = (char_u *)globaldir;
break;
}
FALLTHROUGH; // In global directory, just need to get OS CWD.
@@ -4147,8 +4145,7 @@ static void f_glob2regpat(typval_T *argvars, typval_T *rettv, FunPtr fptr)
const char *const pat = tv_get_string_chk(&argvars[0]); // NULL on type error
rettv->v_type = VAR_STRING;
- rettv->vval.v_string =
- (char *)((pat == NULL) ? NULL : file_pat_to_reg_pat((char_u *)pat, NULL, NULL, false));
+ rettv->vval.v_string = (pat == NULL) ? NULL : file_pat_to_reg_pat(pat, NULL, NULL, false);
}
/// "has()" function
@@ -5780,7 +5777,7 @@ static void find_some_match(typval_T *const argvars, typval_T *const rettv,
long len = 0;
char_u *expr = NULL;
regmatch_T regmatch;
- char_u *save_cpo;
+ char *save_cpo;
long start = 0;
long nth = 1;
colnr_T startcol = 0;
@@ -5792,7 +5789,7 @@ static void find_some_match(typval_T *const argvars, typval_T *const rettv,
// Make 'cpoptions' empty, the 'l' flag should not be used here.
save_cpo = p_cpo;
- p_cpo = (char_u *)"";
+ p_cpo = "";
rettv->vval.v_number = -1;
switch (type) {
@@ -5873,7 +5870,7 @@ static void find_some_match(typval_T *const argvars, typval_T *const rettv,
}
}
- regmatch.regprog = vim_regcomp((char_u *)pat, RE_MAGIC + RE_STRING);
+ regmatch.regprog = vim_regcomp((char *)pat, RE_MAGIC + RE_STRING);
if (regmatch.regprog != NULL) {
regmatch.rm_ic = p_ic;
@@ -8306,7 +8303,7 @@ long do_searchpair(const char *spat, const char *mpat, const char *epat, int dir
long time_limit)
FUNC_ATTR_NONNULL_ARG(1, 2, 3)
{
- char_u *save_cpo;
+ char *save_cpo;
char_u *pat, *pat2 = NULL, *pat3 = NULL;
long retval = 0;
pos_T pos;
@@ -8322,7 +8319,7 @@ long do_searchpair(const char *spat, const char *mpat, const char *epat, int dir
// Make 'cpoptions' empty, the 'l' flag should not be used here.
save_cpo = p_cpo;
- p_cpo = empty_option;
+ p_cpo = (char *)empty_option;
// Set the time limit, if there is one.
tm = profile_setlimit(time_limit);
@@ -8446,11 +8443,11 @@ long do_searchpair(const char *spat, const char *mpat, const char *epat, int dir
xfree(pat2);
xfree(pat3);
- if (p_cpo == empty_option) {
+ if ((char_u *)p_cpo == empty_option) {
p_cpo = save_cpo;
} else {
// Darn, evaluating the {skip} expression changed the value.
- free_string_option(save_cpo);
+ free_string_option((char_u *)save_cpo);
}
return retval;
@@ -9711,26 +9708,24 @@ static void f_spellsuggest(typval_T *argvars, typval_T *rettv, FunPtr fptr)
return;
}
- if (*curwin->w_s->b_p_spl != NUL) {
- const char *const str = tv_get_string(&argvars[0]);
- if (argvars[1].v_type != VAR_UNKNOWN) {
- maxcount = tv_get_number_chk(&argvars[1], &typeerr);
- if (maxcount <= 0) {
+ const char *const str = tv_get_string(&argvars[0]);
+ if (argvars[1].v_type != VAR_UNKNOWN) {
+ maxcount = tv_get_number_chk(&argvars[1], &typeerr);
+ if (maxcount <= 0) {
+ goto f_spellsuggest_return;
+ }
+ if (argvars[2].v_type != VAR_UNKNOWN) {
+ need_capital = tv_get_number_chk(&argvars[2], &typeerr);
+ if (typeerr) {
goto f_spellsuggest_return;
}
- if (argvars[2].v_type != VAR_UNKNOWN) {
- need_capital = tv_get_number_chk(&argvars[2], &typeerr);
- if (typeerr) {
- goto f_spellsuggest_return;
- }
- }
- } else {
- maxcount = 25;
}
-
- spell_suggest_list(&ga, (char_u *)str, maxcount, need_capital, false);
+ } else {
+ maxcount = 25;
}
+ spell_suggest_list(&ga, (char_u *)str, maxcount, need_capital, false);
+
f_spellsuggest_return:
tv_list_alloc_ret(rettv, (ptrdiff_t)ga.ga_len);
for (int i = 0; i < ga.ga_len; i++) {
@@ -9743,7 +9738,7 @@ f_spellsuggest_return:
static void f_split(typval_T *argvars, typval_T *rettv, FunPtr fptr)
{
- char_u *save_cpo;
+ char *save_cpo;
int match;
colnr_T col = 0;
bool keepempty = false;
@@ -9751,7 +9746,7 @@ static void f_split(typval_T *argvars, typval_T *rettv, FunPtr fptr)
// Make 'cpoptions' empty, the 'l' flag should not be used here.
save_cpo = p_cpo;
- p_cpo = (char_u *)"";
+ p_cpo = "";
const char *str = tv_get_string(&argvars[0]);
const char *pat = NULL;
@@ -9776,7 +9771,7 @@ static void f_split(typval_T *argvars, typval_T *rettv, FunPtr fptr)
}
regmatch_T regmatch = {
- .regprog = vim_regcomp((char_u *)pat, RE_MAGIC + RE_STRING),
+ .regprog = vim_regcomp((char *)pat, RE_MAGIC + RE_STRING),
.startp = { NULL },
.endp = { NULL },
.rm_ic = false,
diff --git a/src/nvim/eval/typval_encode.c.h b/src/nvim/eval/typval_encode.c.h
index bd23fb4154..8c952473a1 100644
--- a/src/nvim/eval/typval_encode.c.h
+++ b/src/nvim/eval/typval_encode.c.h
@@ -250,6 +250,8 @@
#include "nvim/func_attr.h"
#include "nvim/lib/kvec.h"
+// -V::1063
+
/// Dummy variable used because some macros need lvalue
///
/// Must not be written to, if needed one must check that address of the
diff --git a/src/nvim/eval/userfunc.c b/src/nvim/eval/userfunc.c
index c6b6a8ead9..e5f48501f7 100644
--- a/src/nvim/eval/userfunc.c
+++ b/src/nvim/eval/userfunc.c
@@ -1536,7 +1536,7 @@ int call_func(const char *funcname, int len, typval_T *rettv, int argcount_in, t
// Trigger FuncUndefined event, may load the function.
if (fp == NULL
- && apply_autocmds(EVENT_FUNCUNDEFINED, rfname, rfname, true, NULL)
+ && apply_autocmds(EVENT_FUNCUNDEFINED, (char *)rfname, (char *)rfname, true, NULL)
&& !aborting()) {
// executed an autocommand, search for the function again
fp = find_func(rfname);
@@ -1967,7 +1967,7 @@ void ex_function(exarg_T *eap)
c = *p;
*p = NUL;
- regmatch.regprog = vim_regcomp((char_u *)eap->arg + 1, RE_MAGIC);
+ regmatch.regprog = vim_regcomp(eap->arg + 1, RE_MAGIC);
*p = c;
if (regmatch.regprog != NULL) {
regmatch.rm_ic = p_ic;
@@ -2009,7 +2009,7 @@ void ex_function(exarg_T *eap)
// g:func global function name, same as "func"
p = (char_u *)eap->arg;
name = trans_function_name(&p, eap->skip, TFN_NO_AUTOLOAD, &fudi, NULL);
- paren = (vim_strchr(p, '(') != NULL);
+ paren = (vim_strchr((char *)p, '(') != NULL);
if (name == NULL && (fudi.fd_dict == NULL || !paren) && !eap->skip) {
/*
* Return on an invalid expression in braces, unless the expression
@@ -2090,8 +2090,8 @@ void ex_function(exarg_T *eap)
goto ret_free;
}
// attempt to continue by skipping some text
- if (vim_strchr(p, '(') != NULL) {
- p = vim_strchr(p, '(');
+ if (vim_strchr((char *)p, '(') != NULL) {
+ p = (char_u *)vim_strchr((char *)p, '(');
}
}
p = (char_u *)skipwhite((char *)p + 1);
@@ -2207,7 +2207,7 @@ void ex_function(exarg_T *eap)
if (line_arg != NULL) {
// Use eap->arg, split up in parts by line breaks.
theline = line_arg;
- p = vim_strchr(theline, '\n');
+ p = (char_u *)vim_strchr((char *)theline, '\n');
if (p == NULL) {
line_arg += STRLEN(line_arg);
} else {
@@ -2369,7 +2369,7 @@ void ex_function(exarg_T *eap)
// and ":let [a, b] =<< [trim] EOF"
arg = (char_u *)skipwhite((char *)skiptowhite(p));
if (*arg == '[') {
- arg = vim_strchr(arg, ']');
+ arg = (char_u *)vim_strchr((char *)arg, ']');
}
if (arg != NULL) {
arg = (char_u *)skipwhite((char *)skiptowhite(arg));
@@ -2490,7 +2490,7 @@ void ex_function(exarg_T *eap)
}
if (fp == NULL) {
- if (fudi.fd_dict == NULL && vim_strchr(name, AUTOLOAD_CHAR) != NULL) {
+ if (fudi.fd_dict == NULL && vim_strchr((char *)name, AUTOLOAD_CHAR) != NULL) {
int slen, plen;
char_u *scriptname;
@@ -2498,7 +2498,7 @@ void ex_function(exarg_T *eap)
int j = FAIL;
if (sourcing_name != NULL) {
scriptname = (char_u *)autoload_name((const char *)name, STRLEN(name));
- p = vim_strchr(scriptname, '/');
+ p = (char_u *)vim_strchr((char *)scriptname, '/');
plen = (int)STRLEN(p);
slen = (int)STRLEN(sourcing_name);
if (slen > plen && FNAMECMP(p,
diff --git a/src/nvim/ex_cmds.c b/src/nvim/ex_cmds.c
index 1dbae13354..8369db7de1 100644
--- a/src/nvim/ex_cmds.c
+++ b/src/nvim/ex_cmds.c
@@ -350,7 +350,7 @@ static int linelen(int *has_tab)
len = linetabsize((char_u *)line);
// Check for embedded TAB.
if (has_tab != NULL) {
- *has_tab = vim_strchr((char_u *)first, TAB) != NULL;
+ *has_tab = vim_strchr(first, TAB) != NULL;
}
*last = save;
@@ -529,9 +529,9 @@ void ex_sort(exarg_T *eap)
emsg(_(e_noprevre));
goto sortend;
}
- regmatch.regprog = vim_regcomp(last_search_pat(), RE_MAGIC);
+ regmatch.regprog = vim_regcomp((char *)last_search_pat(), RE_MAGIC);
} else {
- regmatch.regprog = vim_regcomp((char_u *)p + 1, RE_MAGIC);
+ regmatch.regprog = vim_regcomp(p + 1, RE_MAGIC);
}
if (regmatch.regprog == NULL) {
goto sortend;
@@ -1718,7 +1718,7 @@ int rename_buffer(char *new_fname)
*/
fname = (char *)curbuf->b_ffname;
sfname = (char *)curbuf->b_sfname;
- xfname = (char *)curbuf->b_fname;
+ xfname = curbuf->b_fname;
curbuf->b_ffname = NULL;
curbuf->b_sfname = NULL;
if (setfname(curbuf, (char_u *)new_fname, NULL, true) == FAIL) {
@@ -1858,7 +1858,7 @@ int do_write(exarg_T *eap)
if (!other) {
ffname = (char *)curbuf->b_ffname;
- fname = (char *)curbuf->b_fname;
+ fname = curbuf->b_fname;
// Not writing the whole file is only allowed with '!'.
if ((eap->line1 != 1
|| eap->line2 != curbuf->b_ml.ml_line_count)
@@ -1894,9 +1894,9 @@ int do_write(exarg_T *eap)
// under the new name. Must be done before buf_write(), because
// if there is no file name and 'cpo' contains 'F', it will set
// the file name.
- fname = (char *)alt_buf->b_fname;
+ fname = alt_buf->b_fname;
alt_buf->b_fname = curbuf->b_fname;
- curbuf->b_fname = (char_u *)fname;
+ curbuf->b_fname = fname;
fname = (char *)alt_buf->b_ffname;
alt_buf->b_ffname = curbuf->b_ffname;
curbuf->b_ffname = (char_u *)fname;
@@ -2096,8 +2096,7 @@ void do_wqall(exarg_T *eap)
semsg(_("E141: No file name for buffer %" PRId64), (int64_t)buf->b_fnum);
error++;
} else if (check_readonly(&eap->forceit, buf)
- || check_overwrite(eap, buf, (char *)buf->b_fname, (char *)buf->b_ffname,
- false) == FAIL) {
+ || check_overwrite(eap, buf, buf->b_fname, (char *)buf->b_ffname, false) == FAIL) {
error++;
} else {
bufref_T bufref;
@@ -2148,12 +2147,12 @@ static int check_readonly(int *forceit, buf_T *buf)
if (buf->b_p_ro) {
dialog_msg((char *)buff,
_("'readonly' option is set for \"%s\".\nDo you wish to write anyway?"),
- (char *)buf->b_fname);
+ buf->b_fname);
} else {
dialog_msg((char *)buff,
_("File permissions of \"%s\" are read-only.\nIt may still be possible to "
"write it.\nDo you wish to try?"),
- (char *)buf->b_fname);
+ buf->b_fname);
}
if (vim_dialog_yesno(VIM_QUESTION, NULL, (char_u *)buff, 2) == VIM_YES) {
@@ -2340,7 +2339,7 @@ int do_ecmd(int fnum, char *ffname, char *sfname, exarg_T *eap, linenr_T newlnum
} else {
if (*ffname == NUL) { // re-edit with same file name
ffname = (char *)curbuf->b_ffname;
- sfname = (char *)curbuf->b_fname;
+ sfname = curbuf->b_fname;
}
free_fname = fix_fname(ffname); // may expand to full path name
if (free_fname != NULL) {
@@ -2491,7 +2490,7 @@ int do_ecmd(int fnum, char *ffname, char *sfname, exarg_T *eap, linenr_T newlnum
// - If we ended up in the new buffer already, need to skip a few
// things, set auto_buf.
if (buf->b_fname != NULL) {
- new_name = (char *)vim_strsave(buf->b_fname);
+ new_name = xstrdup(buf->b_fname);
}
const bufref_T save_au_new_curbuf = au_new_curbuf;
set_bufref(&au_new_curbuf, buf);
@@ -2641,7 +2640,7 @@ int do_ecmd(int fnum, char *ffname, char *sfname, exarg_T *eap, linenr_T newlnum
}
buf = curbuf;
if (buf->b_fname != NULL) {
- new_name = (char *)vim_strsave(buf->b_fname);
+ new_name = (char *)vim_strsave((char_u *)buf->b_fname);
} else {
new_name = NULL;
}
@@ -2961,7 +2960,7 @@ void ex_append(exarg_T *eap)
if (eap->nextcmd == NULL || *eap->nextcmd == NUL) {
break;
}
- p = (char *)vim_strchr((char_u *)eap->nextcmd, NL);
+ p = vim_strchr(eap->nextcmd, NL);
if (p == NULL) {
p = eap->nextcmd + STRLEN(eap->nextcmd);
}
@@ -2975,8 +2974,7 @@ void ex_append(exarg_T *eap)
// Set State to avoid the cursor shape to be set to MODE_INSERT
// state when getline() returns.
State = MODE_CMDLINE;
- theline = (char *)eap->getline(eap->cstack->cs_looplevel > 0 ? -1 :
- NUL, eap->cookie, indent, true);
+ theline = eap->getline(eap->cstack->cs_looplevel > 0 ? -1 : NUL, eap->cookie, indent, true);
State = save_State;
}
lines_left = Rows - 1;
@@ -3494,7 +3492,7 @@ static buf_T *do_sub(exarg_T *eap, proftime_T timeout, bool do_buf_event, handle
}
// new pattern and substitution
if (eap->cmd[0] == 's' && *cmd != NUL && !ascii_iswhite(*cmd)
- && vim_strchr((char_u *)"0123456789cegriIp|\"", *cmd) == NULL) {
+ && vim_strchr("0123456789cegriIp|\"", *cmd) == NULL) {
// don't accept alphanumeric for separator
if (check_regexp_delim(*cmd) == FAIL) {
return NULL;
@@ -3504,8 +3502,8 @@ static buf_T *do_sub(exarg_T *eap, proftime_T timeout, bool do_buf_event, handle
// "\/sub/" and "\?sub?" use last used search pattern (almost like
// //sub/r). "\&sub&" use last substitute pattern (like //sub/).
if (*cmd == '\\') {
- ++cmd;
- if (vim_strchr((char_u *)"/?&", *cmd) == NULL) {
+ cmd++;
+ if (vim_strchr("/?&", *cmd) == NULL) {
emsg(_(e_backslash));
return NULL;
}
@@ -3837,7 +3835,7 @@ static buf_T *do_sub(exarg_T *eap, proftime_T timeout, bool do_buf_event, handle
// When 'cpoptions' contains "u" don't sync undo when
// asking for confirmation.
if (vim_strchr(p_cpo, CPO_UNDO) != NULL) {
- ++no_u_sync;
+ no_u_sync++;
}
/*
@@ -3993,7 +3991,7 @@ static buf_T *do_sub(exarg_T *eap, proftime_T timeout, bool do_buf_event, handle
State = save_State;
setmouse();
if (vim_strchr(p_cpo, CPO_UNDO) != NULL) {
- --no_u_sync;
+ no_u_sync--;
}
if (typed == 'n') {
@@ -4579,8 +4577,8 @@ void ex_global(exarg_T *eap)
* "\&": use previous substitute pattern.
*/
if (*cmd == '\\') {
- ++cmd;
- if (vim_strchr((char_u *)"/?&", *cmd) == NULL) {
+ cmd++;
+ if (vim_strchr("/?&", *cmd) == NULL) {
emsg(_(e_backslash));
return;
}
@@ -5114,7 +5112,7 @@ int find_help_tags(const char *arg, int *num_matches, char ***matches, bool keep
// And also "\_$" and "\_^".
if (arg[0] == '\\'
&& ((arg[1] != NUL && arg[2] == NUL)
- || (vim_strchr((char_u *)"%_z@", arg[1]) != NULL
+ || (vim_strchr("%_z@", arg[1]) != NULL
&& arg[2] != NUL))) {
vim_snprintf(d, IOSIZE, "/\\\\%s", arg + 1);
// Check for "/\\_$", should be "/\\_\$"
@@ -5173,10 +5171,9 @@ int find_help_tags(const char *arg, int *num_matches, char ***matches, bool keep
* ":help i_^_CTRL-D" work.
* Insert '-' before and after "CTRL-X" when applicable.
*/
- if (*s < ' ' || (*s == '^' && s[1] && (ASCII_ISALPHA(s[1])
- || vim_strchr((char_u *)
- "?@[\\]^",
- s[1]) != NULL))) {
+ if (*s < ' '
+ || (*s == '^' && s[1]
+ && (ASCII_ISALPHA(s[1]) || vim_strchr("?@[\\]^", s[1]) != NULL))) {
if ((char_u *)d > IObuff && d[-1] != '_' && d[-1] != '\\') {
*d++ = '_'; // prepend a '_' to make x_CTRL-x
}
@@ -5360,7 +5357,7 @@ void fix_help_buffer(void)
* In the "help.txt" and "help.abx" file, add the locally added help
* files. This uses the very first line in the help file.
*/
- char *const fname = path_tail((char *)curbuf->b_fname);
+ char *const fname = path_tail(curbuf->b_fname);
if (FNAMECMP(fname, "help.txt") == 0
|| (FNAMENCMP(fname, "help.", 5) == 0
&& ASCII_ISALPHA(fname[5])
@@ -5448,7 +5445,7 @@ void fix_help_buffer(void)
}
vim_fgets(IObuff, IOSIZE, fd);
if (IObuff[0] == '*'
- && (s = (char *)vim_strchr(IObuff + 1, '*'))
+ && (s = vim_strchr((char *)IObuff + 1, '*'))
!= NULL) {
TriState this_utf = kNone;
// Change tag definition to a
@@ -5635,7 +5632,7 @@ static void helptags_one(char *dir, const char *ext, const char *tagfname, bool
}
firstline = false;
}
- p1 = (char *)vim_strchr(IObuff, '*'); // find first '*'
+ p1 = vim_strchr((char *)IObuff, '*'); // find first '*'
while (p1 != NULL) {
p2 = strchr((const char *)p1 + 1, '*'); // Find second '*'.
if (p2 != NULL && p2 > p1 + 1) { // Skip "*" and "**".
@@ -5650,7 +5647,7 @@ static void helptags_one(char *dir, const char *ext, const char *tagfname, bool
// followed by a white character or end-of-line.
if (s == p2
&& ((char_u *)p1 == IObuff || p1[-1] == ' ' || p1[-1] == '\t')
- && (vim_strchr((char_u *)" \t\n\r", s[1]) != NULL
+ && (vim_strchr(" \t\n\r", s[1]) != NULL
|| s[1] == '\0')) {
*p2 = '\0';
p1++;
@@ -5660,7 +5657,7 @@ static void helptags_one(char *dir, const char *ext, const char *tagfname, bool
snprintf(s, s_len, "%s\t%s", p1, fname);
// find next '*'
- p2 = (char *)vim_strchr((char_u *)p2 + 1, '*');
+ p2 = vim_strchr(p2 + 1, '*');
}
}
p1 = p2;
@@ -6203,7 +6200,7 @@ void ex_oldfiles(exarg_T *eap)
if (p == NULL) {
return;
}
- char *const s = (char *)expand_env_save((char_u *)p);
+ char *const s = expand_env_save((char *)p);
eap->arg = s;
eap->cmdidx = CMD_edit;
cmdmod.browse = false;
diff --git a/src/nvim/ex_cmds2.c b/src/nvim/ex_cmds2.c
index 8624f6d676..a6cafb2628 100644
--- a/src/nvim/ex_cmds2.c
+++ b/src/nvim/ex_cmds2.c
@@ -554,7 +554,7 @@ void dialog_changed(buf_T *buf, bool checkall)
.forceit = false,
};
- dialog_msg((char *)buff, _("Save changes to \"%s\"?"), (char *)buf->b_fname);
+ dialog_msg((char *)buff, _("Save changes to \"%s\"?"), buf->b_fname);
if (checkall) {
ret = vim_dialog_yesnoallcancel(VIM_QUESTION, NULL, (char_u *)buff, 1);
} else {
@@ -563,11 +563,7 @@ void dialog_changed(buf_T *buf, bool checkall)
if (ret == VIM_YES) {
if (buf->b_fname != NULL
- && check_overwrite(&ea,
- buf,
- (char *)buf->b_fname,
- (char *)buf->b_ffname,
- false) == OK) {
+ && check_overwrite(&ea, buf, buf->b_fname, (char *)buf->b_ffname, false) == OK) {
// didn't hit Cancel
(void)buf_write_all(buf, false);
}
@@ -583,7 +579,7 @@ void dialog_changed(buf_T *buf, bool checkall)
set_bufref(&bufref, buf2);
if (buf2->b_fname != NULL
- && check_overwrite(&ea, buf2, (char *)buf2->b_fname,
+ && check_overwrite(&ea, buf2, buf2->b_fname,
(char *)buf2->b_ffname, false) == OK) {
// didn't hit Cancel
(void)buf_write_all(buf2, false);
@@ -611,7 +607,7 @@ bool dialog_close_terminal(buf_T *buf)
char buff[DIALOG_MSG_SIZE];
dialog_msg(buff, _("Close \"%s\"?"),
- (buf->b_fname != NULL) ? (char *)buf->b_fname : "?");
+ (buf->b_fname != NULL) ? buf->b_fname : "?");
int ret = vim_dialog_yesnocancel(VIM_QUESTION, NULL, (char_u *)buff, 1);
@@ -738,7 +734,7 @@ bool check_changed_any(bool hidden, bool unload)
if ((buf->terminal && channel_job_running((uint64_t)buf->b_p_channel))
? semsg(_("E947: Job still running in buffer \"%s\""), buf->b_fname)
: semsg(_("E162: No write since last change for buffer \"%s\""),
- buf_spname(buf) != NULL ? buf_spname(buf) : buf->b_fname)) {
+ buf_spname(buf) != NULL ? buf_spname(buf) : (char_u *)buf->b_fname)) {
save = no_wait_return;
no_wait_return = false;
wait_return(false);
@@ -792,7 +788,7 @@ int buf_write_all(buf_T *buf, int forceit)
int retval;
buf_T *old_curbuf = curbuf;
- retval = (buf_write(buf, (char *)buf->b_ffname, (char *)buf->b_fname,
+ retval = (buf_write(buf, (char *)buf->b_ffname, buf->b_fname,
(linenr_T)1, buf->b_ml.ml_line_count, NULL,
false, forceit, true, false));
if (curbuf != old_curbuf) {
@@ -908,7 +904,7 @@ static int do_arglist(char *str, int what, int after, bool will_edit)
if (curbuf->b_ffname == NULL) {
return FAIL;
}
- str = (char *)curbuf->b_fname;
+ str = curbuf->b_fname;
arg_escaped = false;
}
@@ -924,11 +920,11 @@ static int do_arglist(char *str, int what, int after, bool will_edit)
regmatch.rm_ic = p_fic; // ignore case when 'fileignorecase' is set
for (int i = 0; i < new_ga.ga_len && !got_int; i++) {
p = ((char **)new_ga.ga_data)[i];
- p = (char *)file_pat_to_reg_pat((char_u *)p, NULL, NULL, false);
+ p = file_pat_to_reg_pat(p, NULL, NULL, false);
if (p == NULL) {
break;
}
- regmatch.regprog = vim_regcomp((char_u *)p, p_magic ? RE_MAGIC : 0);
+ regmatch.regprog = vim_regcomp(p, p_magic ? RE_MAGIC : 0);
if (regmatch.regprog == NULL) {
xfree(p);
break;
@@ -1518,12 +1514,11 @@ void ex_listdo(exarg_T *eap)
// buffer was opened while Syntax autocommands were disabled,
// need to trigger them now.
if (buf == curbuf) {
- apply_autocmds(EVENT_SYNTAX, curbuf->b_p_syn,
- curbuf->b_fname, true, curbuf);
+ apply_autocmds(EVENT_SYNTAX, (char *)curbuf->b_p_syn, curbuf->b_fname, true,
+ curbuf);
} else {
aucmd_prepbuf(&aco, buf);
- apply_autocmds(EVENT_SYNTAX, buf->b_p_syn,
- buf->b_fname, true, buf);
+ apply_autocmds(EVENT_SYNTAX, (char *)buf->b_p_syn, buf->b_fname, true, buf);
aucmd_restbuf(&aco);
}
@@ -1920,7 +1915,7 @@ int do_source(char *fname, int check_other, int is_vimrc)
proftime_T wait_start;
bool trigger_source_post = false;
- p = (char *)expand_env_save((char_u *)fname);
+ p = expand_env_save(fname);
if (p == NULL) {
return retval;
}
@@ -1936,18 +1931,18 @@ int do_source(char *fname, int check_other, int is_vimrc)
// Apply SourceCmd autocommands, they should get the file and source it.
if (has_autocmd(EVENT_SOURCECMD, fname_exp, NULL)
- && apply_autocmds(EVENT_SOURCECMD, (char_u *)fname_exp, (char_u *)fname_exp,
+ && apply_autocmds(EVENT_SOURCECMD, fname_exp, fname_exp,
false, curbuf)) {
retval = aborting() ? FAIL : OK;
if (retval == OK) {
// Apply SourcePost autocommands.
- apply_autocmds(EVENT_SOURCEPOST, (char_u *)fname_exp, (char_u *)fname_exp, false, curbuf);
+ apply_autocmds(EVENT_SOURCEPOST, fname_exp, fname_exp, false, curbuf);
}
goto theend;
}
// Apply SourcePre autocommands, they may get the file.
- apply_autocmds(EVENT_SOURCEPRE, (char_u *)fname_exp, (char_u *)fname_exp, false, curbuf);
+ apply_autocmds(EVENT_SOURCEPRE, fname_exp, fname_exp, false, curbuf);
cookie.fp = fopen_noinh_readbin(fname_exp);
if (cookie.fp == NULL && check_other) {
@@ -2143,7 +2138,7 @@ int do_source(char *fname, int check_other, int is_vimrc)
convert_setup(&cookie.conv, NULL, NULL);
if (trigger_source_post) {
- apply_autocmds(EVENT_SOURCEPOST, (char_u *)fname_exp, (char_u *)fname_exp, false, curbuf);
+ apply_autocmds(EVENT_SOURCEPOST, fname_exp, fname_exp, false, curbuf);
}
theend:
diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c
index 2173494be9..e845073c12 100644
--- a/src/nvim/ex_docmd.c
+++ b/src/nvim/ex_docmd.c
@@ -1927,7 +1927,7 @@ static char *do_one_cmd(char **cmdlinep, int flags, cstack_T *cstack, LineGetter
++p;
}
p = xstrnsave(ea.cmd, (size_t)(p - ea.cmd));
- int ret = apply_autocmds(EVENT_CMDUNDEFINED, (char_u *)p, (char_u *)p, true, NULL);
+ int ret = apply_autocmds(EVENT_CMDUNDEFINED, p, p, true, NULL);
xfree(p);
// If the autocommands did something and didn't cause an error, try
// finding the command again.
@@ -2554,7 +2554,7 @@ int parse_command_modifiers(exarg_T *eap, char **errormsg, bool skip_only)
break;
}
if (!skip_only) {
- cmdmod.filter_regmatch.regprog = vim_regcomp((char_u *)reg_pat, RE_MAGIC);
+ cmdmod.filter_regmatch.regprog = vim_regcomp(reg_pat, RE_MAGIC);
if (cmdmod.filter_regmatch.regprog == NULL) {
break;
}
@@ -2739,8 +2739,6 @@ static void undo_cmdmod(const exarg_T *eap, int save_msg_scroll)
}
}
-
-
/// Parse the address range, if any, in "eap".
/// May set the last search pattern, unless "silent" is true.
///
@@ -2973,7 +2971,7 @@ char *find_ex_command(exarg_T *eap, int *full)
}
// check for non-alpha command
- if (p == eap->cmd && vim_strchr((char_u *)"@!=><&~#", *p) != NULL) {
+ if (p == eap->cmd && vim_strchr("@!=><&~#", *p) != NULL) {
p++;
}
len = (int)(p - eap->cmd);
@@ -3299,7 +3297,7 @@ const char *set_one_cmd_context(expand_T *xp, const char *buff)
// 2. skip comment lines and leading space, colons or bars
const char *cmd;
- for (cmd = buff; vim_strchr((const char_u *)" \t:|", *cmd) != NULL; cmd++) {}
+ for (cmd = buff; vim_strchr(" \t:|", *cmd) != NULL; cmd++) {}
xp->xp_pattern = (char *)cmd;
if (*cmd == NUL) {
@@ -3360,7 +3358,7 @@ const char *set_one_cmd_context(expand_T *xp, const char *buff)
}
}
// check for non-alpha command
- if (p == cmd && vim_strchr((const char_u *)"@*!=><&~#", *p) != NULL) {
+ if (p == cmd && vim_strchr("@*!=><&~#", *p) != NULL) {
p++;
}
len = (size_t)(p - cmd);
@@ -3392,7 +3390,7 @@ const char *set_one_cmd_context(expand_T *xp, const char *buff)
}
if (ea.cmdidx == CMD_SIZE) {
- if (*cmd == 's' && vim_strchr((const char_u *)"cgriI", cmd[1]) != NULL) {
+ if (*cmd == 's' && vim_strchr("cgriI", cmd[1]) != NULL) {
ea.cmdidx = CMD_substitute;
p = cmd + 1;
} else if (cmd[0] >= 'A' && cmd[0] <= 'Z') {
@@ -4137,7 +4135,7 @@ const char *set_one_cmd_context(expand_T *xp, const char *buff)
break;
case CMD_argdelete:
- while ((xp->xp_pattern = (char *)vim_strchr((const char_u *)arg, ' ')) != NULL) {
+ while ((xp->xp_pattern = vim_strchr(arg, ' ')) != NULL) {
arg = (const char *)(xp->xp_pattern + 1);
}
xp->xp_context = EXPAND_ARGLIST;
@@ -4168,7 +4166,7 @@ char *skip_range(const char *cmd, int *ctx)
{
unsigned delim;
- while (vim_strchr((char_u *)" \t0123456789.$%'/?-+,;\\", *cmd) != NULL) {
+ while (vim_strchr(" \t0123456789.$%'/?-+,;\\", *cmd) != NULL) {
if (*cmd == '\\') {
if (cmd[1] == '?' || cmd[1] == '/' || cmd[1] == '&') {
cmd++;
@@ -4538,7 +4536,7 @@ error:
/// Get flags from an Ex command argument.
static void get_flags(exarg_T *eap)
{
- while (vim_strchr((char_u *)"lp#", *eap->arg) != NULL) {
+ while (vim_strchr("lp#", *eap->arg) != NULL) {
if (*eap->arg == 'l') {
eap->flags |= EXFLAG_LIST;
} else if (*eap->arg == 'p') {
@@ -4794,8 +4792,8 @@ int expand_filename(exarg_T *eap, char_u **cmdlinep, char **errormsgp)
* Quick check if this cannot be the start of a special string.
* Also removes backslash before '%', '#' and '<'.
*/
- if (vim_strchr((char_u *)"%#<", *p) == NULL) {
- ++p;
+ if (vim_strchr("%#<", *p) == NULL) {
+ p++;
continue;
}
@@ -4814,10 +4812,10 @@ int expand_filename(exarg_T *eap, char_u **cmdlinep, char **errormsgp)
// Wildcards won't be expanded below, the replacement is taken
// literally. But do expand "~/file", "~user/file" and "$HOME/file".
- if (vim_strchr((char_u *)repl, '$') != NULL || vim_strchr((char_u *)repl, '~') != NULL) {
+ if (vim_strchr(repl, '$') != NULL || vim_strchr(repl, '~') != NULL) {
char *l = repl;
- repl = (char *)expand_env_save((char_u *)repl);
+ repl = expand_env_save(repl);
xfree(l);
}
@@ -4847,8 +4845,8 @@ int expand_filename(exarg_T *eap, char_u **cmdlinep, char **errormsgp)
# define ESCAPE_CHARS escape_chars
#endif
- for (l = repl; *l; ++l) {
- if (vim_strchr(ESCAPE_CHARS, *l) != NULL) {
+ for (l = repl; *l; l++) {
+ if (vim_strchr((char *)ESCAPE_CHARS, *l) != NULL) {
l = (char *)vim_strsave_escaped((char_u *)repl, ESCAPE_CHARS);
xfree(repl);
repl = l;
@@ -4887,8 +4885,8 @@ int expand_filename(exarg_T *eap, char_u **cmdlinep, char **errormsgp)
* After expanding environment variables, check again
* if there are still wildcards present.
*/
- if (vim_strchr((char_u *)eap->arg, '$') != NULL
- || vim_strchr((char_u *)eap->arg, '~') != NULL) {
+ if (vim_strchr(eap->arg, '$') != NULL
+ || vim_strchr(eap->arg, '~') != NULL) {
expand_env_esc((char_u *)eap->arg, NameBuff, MAXPATHL, true, true, NULL);
has_wildcards = path_has_wildcard(NameBuff);
p = (char *)NameBuff;
@@ -6340,7 +6338,7 @@ static size_t uc_check_code(char *code, size_t len, char *buf, ucmd_T *cmd, exar
ct_NONE,
} type = ct_NONE;
- if ((vim_strchr((char_u *)"qQfF", *p) != NULL) && p[1] == '-') {
+ if ((vim_strchr("qQfF", *p) != NULL) && p[1] == '-') {
quote = (*p == 'q' || *p == 'Q') ? 1 : 2;
p += 2;
l -= 2;
@@ -6645,9 +6643,9 @@ static void do_ucmd(exarg_T *eap)
totlen = 0;
for (;;) {
- start = (char *)vim_strchr((char_u *)p, '<');
+ start = vim_strchr(p, '<');
if (start != NULL) {
- end = (char *)vim_strchr((char_u *)start + 1, '>');
+ end = vim_strchr(start + 1, '>');
}
if (buf != NULL) {
for (ksp = p; *ksp != NUL && (char_u)(*ksp) != K_SPECIAL; ksp++) {}
@@ -7783,7 +7781,7 @@ static void ex_tabs(exarg_T *eap)
if (buf_spname(wp->w_buffer) != NULL) {
STRLCPY(IObuff, buf_spname(wp->w_buffer), IOSIZE);
} else {
- home_replace(wp->w_buffer, wp->w_buffer->b_fname, IObuff, IOSIZE, true);
+ home_replace(wp->w_buffer, (char_u *)wp->w_buffer->b_fname, IObuff, IOSIZE, true);
}
msg_outtrans(IObuff);
ui_flush(); // output one line at a time
@@ -8098,7 +8096,7 @@ static void ex_read(exarg_T *eap)
if (check_fname() == FAIL) { // check for no file name
return;
}
- i = readfile((char *)curbuf->b_ffname, (char *)curbuf->b_fname,
+ i = readfile((char *)curbuf->b_ffname, curbuf->b_fname,
eap->line2, (linenr_T)0, (linenr_T)MAXLNUM, eap, 0, false);
} else {
if (vim_strchr(p_cpo, CPO_ALTREAD) != NULL) {
@@ -8177,7 +8175,7 @@ static void post_chdir(CdScope scope, bool trigger_dirchanged)
char *pdir = get_prevdir(scope);
// If still in global directory, set CWD as the global directory.
if (globaldir == NULL && pdir != NULL) {
- globaldir = vim_strsave((char_u *)pdir);
+ globaldir = xstrdup(pdir);
}
}
@@ -8595,8 +8593,7 @@ static void ex_at(exarg_T *eap)
}
// Put the register in the typeahead buffer with the "silent" flag.
- if (do_execreg(c, TRUE, vim_strchr(p_cpo, CPO_EXECBUF) != NULL, TRUE)
- == FAIL) {
+ if (do_execreg(c, true, vim_strchr(p_cpo, CPO_EXECBUF) != NULL, true) == FAIL) {
beep_flush();
} else {
bool save_efr = exec_from_reg;
@@ -8739,7 +8736,7 @@ static void ex_redir(exarg_T *eap)
close_redir();
// Expand environment variables and "~/".
- fname = (char *)expand_env_save((char_u *)arg);
+ fname = expand_env_save(arg);
if (fname == NULL) {
return;
}
@@ -9480,7 +9477,7 @@ char_u *eval_vars(char_u *src, char_u *srcstart, size_t *usedlen, linenr_T *lnum
result = "";
valid = 0; // Must have ":p:h" to be valid
} else {
- result = (char *)curbuf->b_fname;
+ result = curbuf->b_fname;
tilde_file = STRCMP(result, "~") == 0;
}
break;
@@ -9534,7 +9531,7 @@ char_u *eval_vars(char_u *src, char_u *srcstart, size_t *usedlen, linenr_T *lnum
result = "";
valid = 0; // Must have ":p:h" to be valid
} else {
- result = (char *)buf->b_fname;
+ result = buf->b_fname;
tilde_file = STRCMP(result, "~") == 0;
}
}
@@ -9870,8 +9867,8 @@ static void ex_filetype(exarg_T *eap)
// Print current status.
smsg("filetype detection:%s plugin:%s indent:%s",
filetype_detect == kTrue ? "ON" : "OFF",
- filetype_plugin == kTrue ? (filetype_detect == kTrue ? "ON" : "(on)") : "OFF", // NOLINT(whitespace/line_length)
- filetype_indent == kTrue ? (filetype_detect == kTrue ? "ON" : "(on)") : "OFF"); // NOLINT(whitespace/line_length)
+ filetype_plugin == kTrue ? (filetype_detect == kTrue ? "ON" : "(on)") : "OFF",
+ filetype_indent == kTrue ? (filetype_detect == kTrue ? "ON" : "(on)") : "OFF");
return;
}
diff --git a/src/nvim/ex_eval.c b/src/nvim/ex_eval.c
index 46f3a31120..fa70f762a2 100644
--- a/src/nvim/ex_eval.c
+++ b/src/nvim/ex_eval.c
@@ -1361,18 +1361,18 @@ void ex_catch(exarg_T *eap)
save_char = *end;
*end = NUL;
}
- save_cpo = (char *)p_cpo;
- p_cpo = (char_u *)"";
+ save_cpo = p_cpo;
+ p_cpo = "";
// Disable error messages, it will make current exception
// invalid
emsg_off++;
- regmatch.regprog = vim_regcomp((char_u *)pat, RE_MAGIC + RE_STRING);
+ regmatch.regprog = vim_regcomp(pat, RE_MAGIC + RE_STRING);
emsg_off--;
regmatch.rm_ic = false;
if (end != NULL) {
*end = save_char;
}
- p_cpo = (char_u *)save_cpo;
+ p_cpo = save_cpo;
if (regmatch.regprog == NULL) {
semsg(_(e_invarg2), pat);
} else {
diff --git a/src/nvim/ex_getln.c b/src/nvim/ex_getln.c
index a7e843704f..114f1e2ae5 100644
--- a/src/nvim/ex_getln.c
+++ b/src/nvim/ex_getln.c
@@ -398,7 +398,7 @@ static bool do_incsearch_highlighting(int firstc, int *search_delim, incsearch_s
cmdmod = save_cmdmod;
cmd = skip_range(ea.cmd, NULL);
- if (vim_strchr((char_u *)"sgvl", *cmd) == NULL) {
+ if (vim_strchr("sgvl", *cmd) == NULL) {
goto theend;
}
@@ -687,8 +687,7 @@ static int may_add_char_to_search(int firstc, int *c, incsearch_state_T *s)
*c = mb_tolower(*c);
}
if (*c == search_delim
- || vim_strchr((char_u *)(p_magic ? "\\~^$.*[" : "\\^$"), *c)
- != NULL) {
+ || vim_strchr((p_magic ? "\\~^$.*[" : "\\^$"), *c) != NULL) {
// put a backslash before special characters
stuffcharReadbuff(*c);
*c = '\\';
@@ -908,8 +907,7 @@ static uint8_t *command_line_enter(int firstc, long count, int indent, bool init
tv_dict_set_keys_readonly(dict);
try_enter(&tstate);
- apply_autocmds(EVENT_CMDLINEENTER, (char_u *)firstcbuf, (char_u *)firstcbuf,
- false, curbuf);
+ apply_autocmds(EVENT_CMDLINEENTER, firstcbuf, firstcbuf, false, curbuf);
restore_v_event(dict, &save_v_event);
@@ -934,8 +932,7 @@ static uint8_t *command_line_enter(int firstc, long count, int indent, bool init
tv_dict_add_bool(dict, S_LEN("abort"),
s->gotesc ? kBoolVarTrue : kBoolVarFalse);
try_enter(&tstate);
- apply_autocmds(EVENT_CMDLINELEAVE, (char_u *)firstcbuf, (char_u *)firstcbuf,
- false, curbuf);
+ apply_autocmds(EVENT_CMDLINELEAVE, firstcbuf, firstcbuf, false, curbuf);
// error printed below, to avoid redraw issues
tl_ret = try_leave(&tstate, &err);
if (tv_dict_get_number(dict, "abort") != 0) {
@@ -2306,7 +2303,7 @@ static int empty_pattern(char_u *p)
// remove trailing \v and the like
while (n >= 2 && p[n - 2] == '\\'
- && vim_strchr((char_u *)"mMvVcCZ", p[n - 1]) != NULL) {
+ && vim_strchr("mMvVcCZ", p[n - 1]) != NULL) {
n -= 2;
}
return n == 0 || (n >= 2 && p[n - 2] == '\\' && p[n - 1] == '|');
@@ -2331,8 +2328,7 @@ static int command_line_changed(CommandLineState *s)
tv_dict_set_keys_readonly(dict);
try_enter(&tstate);
- apply_autocmds(EVENT_CMDLINECHANGED, (char_u *)firstcbuf,
- (char_u *)firstcbuf, false, curbuf);
+ apply_autocmds(EVENT_CMDLINECHANGED, firstcbuf, firstcbuf, false, curbuf);
restore_v_event(dict, &save_v_event);
bool tl_ret = try_leave(&tstate, &err);
@@ -4500,9 +4496,9 @@ static int expand_showtail(expand_T *xp)
// Skip escaped wildcards. Only when the backslash is not a path
// separator, on DOS the '*' "path\*\file" must not be skipped.
if (rem_backslash(s)) {
- ++s;
- } else if (vim_strchr((char_u *)"*?[", *s) != NULL) {
- return FALSE;
+ s++;
+ } else if (vim_strchr("*?[", *s) != NULL) {
+ return false;
}
}
return TRUE;
@@ -4630,8 +4626,8 @@ char_u *addstar(char_u *fname, size_t len, int context)
#endif
if ((*retval != '~' || tail != retval)
&& !ends_in_star
- && vim_strchr(tail, '$') == NULL
- && vim_strchr(retval, '`') == NULL) {
+ && vim_strchr((char *)tail, '$') == NULL
+ && vim_strchr((char *)retval, '`') == NULL) {
retval[len++] = '*';
} else if (len > 0 && retval[len - 1] == '$') {
--len;
@@ -5003,7 +4999,7 @@ static int ExpandFromContext(expand_T *xp, char_u *pat, int *num_file, char_u **
return nlua_expand_pat(xp, pat, num_file, file);
}
- regmatch.regprog = vim_regcomp(pat, p_magic ? RE_MAGIC : 0);
+ regmatch.regprog = vim_regcomp((char *)pat, p_magic ? RE_MAGIC : 0);
if (regmatch.regprog == NULL) {
return FAIL;
}
@@ -5220,7 +5216,7 @@ static void expand_shellcmd(char_u *filepat, int *num_file, char_u ***file, int
hashtab_T found_ht;
hash_init(&found_ht);
for (s = path;; s = e) {
- e = vim_strchr(s, ENV_SEPCHAR);
+ e = (char_u *)vim_strchr((char *)s, ENV_SEPCHAR);
if (e == NULL) {
e = s + STRLEN(s);
}
@@ -5352,7 +5348,7 @@ static int ExpandUserDefined(expand_T *xp, regmatch_T *regmatch, int *num_file,
ga_init(&ga, (int)sizeof(char *), 3);
for (char_u *s = retstr; *s != NUL; s = e) {
- e = vim_strchr(s, '\n');
+ e = (char_u *)vim_strchr((char *)s, '\n');
if (e == NULL) {
e = s + STRLEN(s);
}
@@ -5853,7 +5849,7 @@ HistoryType get_histtype(const char *const name, const size_t len, const bool re
}
}
- if (vim_strchr((char_u *)":=@>?/", name[0]) != NULL && len == 1) {
+ if (vim_strchr(":=@>?/", name[0]) != NULL && len == 1) {
return hist_char2type(name[0]);
}
@@ -6153,7 +6149,7 @@ int del_history_entry(int histype, char_u *str)
&& histype < HIST_COUNT
&& *str != NUL
&& (idx = hisidx[histype]) >= 0
- && (regmatch.regprog = vim_regcomp(str, RE_MAGIC + RE_STRING))
+ && (regmatch.regprog = vim_regcomp((char *)str, RE_MAGIC + RE_STRING))
!= NULL) {
i = last = idx;
do {
@@ -6280,7 +6276,7 @@ void ex_history(exarg_T *eap)
if (!(ascii_isdigit(*arg) || *arg == '-' || *arg == ',')) {
end = arg;
while (ASCII_ISALPHA(*end)
- || vim_strchr((char_u *)":=@>/?", *end) != NULL) {
+ || vim_strchr(":=@>/?", *end) != NULL) {
end++;
}
histype1 = get_histtype((const char *)arg, (size_t)(end - arg), false);
@@ -6386,7 +6382,7 @@ static int open_cmdwin(void)
int i;
linenr_T lnum;
garray_T winsizes;
- char_u typestr[2];
+ char typestr[2];
int save_restart_edit = restart_edit;
int save_State = State;
bool save_exmode = exmode_active;
@@ -6490,7 +6486,7 @@ static int open_cmdwin(void)
cmdwin_result = 0;
// Trigger CmdwinEnter autocommands.
- typestr[0] = (char_u)cmdwin_type;
+ typestr[0] = (char)cmdwin_type;
typestr[1] = NUL;
apply_autocmds(EVENT_CMDWINENTER, typestr, typestr, false, curbuf);
if (restart_edit != 0) { // autocmd with ":startinsert"
@@ -6642,8 +6638,8 @@ char *script_get(exarg_T *const eap, size_t *const lenp)
const char *const end_pattern = (cmd[2] != NUL ? (const char *)skipwhite(cmd + 2) : ".");
for (;;) {
- char *const theline = (char *)eap->getline(eap->cstack->cs_looplevel > 0 ? -1 : NUL,
- eap->cookie, 0, true);
+ char *const theline = eap->getline(eap->cstack->cs_looplevel > 0 ? -1 : NUL, eap->cookie, 0,
+ true);
if (theline == NULL || strcmp(end_pattern, theline) == 0) {
xfree(theline);
diff --git a/src/nvim/ex_session.c b/src/nvim/ex_session.c
index 4554af5356..7eef6707dd 100644
--- a/src/nvim/ex_session.c
+++ b/src/nvim/ex_session.c
@@ -571,7 +571,7 @@ static int makeopens(FILE *fd, char_u *dirnow)
if (ssop_flags & SSOP_SESDIR) {
PUTLINE_FAIL("exe \"cd \" . escape(expand(\"<sfile>:p:h\"), ' ')");
} else if (ssop_flags & SSOP_CURDIR) {
- sname = home_replace_save(NULL, globaldir != NULL ? globaldir : dirnow);
+ sname = home_replace_save(NULL, globaldir != NULL ? (char_u *)globaldir : dirnow);
char *fname_esc = ses_escape_fname((char *)sname, &ssop_flags);
if (fprintf(fd, "cd %s\n", fname_esc) < 0) {
xfree(fname_esc);
@@ -997,7 +997,7 @@ void ex_mkrc(exarg_T *eap)
}
} else if (*dirnow != NUL
&& (ssop_flags & SSOP_CURDIR) && globaldir != NULL) {
- if (os_chdir((char *)globaldir) == 0) {
+ if (os_chdir(globaldir) == 0) {
shorten_fnames(true);
}
}
@@ -1012,15 +1012,6 @@ void ex_mkrc(exarg_T *eap)
emsg(_(e_prev_dir));
}
shorten_fnames(true);
- // restore original dir
- if (*dirnow != NUL && ((ssop_flags & SSOP_SESDIR)
- || ((ssop_flags & SSOP_CURDIR) && globaldir !=
- NULL))) {
- if (os_chdir((char *)dirnow) != 0) {
- emsg(_(e_prev_dir));
- }
- shorten_fnames(true);
- }
}
xfree(dirnow);
} else {
diff --git a/src/nvim/file_search.c b/src/nvim/file_search.c
index 02db5ded75..47e20d58a3 100644
--- a/src/nvim/file_search.c
+++ b/src/nvim/file_search.c
@@ -371,7 +371,7 @@ void *vim_findfile_init(char_u *path, char_u *filename, char_u *stopdirs, int le
ptr = xrealloc(search_ctx->ffsc_stopdirs_v,
(dircount + 1) * sizeof(char_u *));
search_ctx->ffsc_stopdirs_v = ptr;
- walker = vim_strchr(walker, ';');
+ walker = (char_u *)vim_strchr((char *)walker, ';');
if (walker) {
assert(walker - helper >= 0);
search_ctx->ffsc_stopdirs_v[dircount - 1] =
@@ -396,7 +396,7 @@ void *vim_findfile_init(char_u *path, char_u *filename, char_u *stopdirs, int le
* -fix path
* -wildcard_stuff (might be NULL)
*/
- wc_part = vim_strchr(path, '*');
+ wc_part = (char_u *)vim_strchr((char *)path, '*');
if (wc_part != NULL) {
int64_t llevel;
int len;
@@ -1643,7 +1643,7 @@ void do_autocmd_dirchanged(char *new_dir, CdScope scope, CdCause cause, bool pre
abort();
}
- apply_autocmds(event, (char_u *)buf, (char_u *)new_dir, false, curbuf);
+ apply_autocmds(event, buf, new_dir, false, curbuf);
restore_v_event(dict, &save_v_event);
diff --git a/src/nvim/fileio.c b/src/nvim/fileio.c
index c412af0eaa..06d72f3395 100644
--- a/src/nvim/fileio.c
+++ b/src/nvim/fileio.c
@@ -277,10 +277,10 @@ int readfile(char *fname, char *sfname, linenr_T from, linenr_T lines_to_skip,
// point to one of these values.
old_curbuf = curbuf;
old_b_ffname = (char *)curbuf->b_ffname;
- old_b_fname = (char *)curbuf->b_fname;
+ old_b_fname = curbuf->b_fname;
using_b_ffname = ((char_u *)fname == curbuf->b_ffname)
|| ((char_u *)sfname == curbuf->b_ffname);
- using_b_fname = ((char_u *)fname == curbuf->b_fname) || ((char_u *)sfname == curbuf->b_fname);
+ using_b_fname = (fname == curbuf->b_fname) || (sfname == curbuf->b_fname);
// After reading a file the cursor line changes but we don't want to
// display the line.
@@ -469,7 +469,7 @@ int readfile(char *fname, char *sfname, linenr_T from, linenr_T lines_to_skip,
|| (using_b_ffname
&& ((char_u *)old_b_ffname != curbuf->b_ffname))
|| (using_b_fname
- && ((char_u *)old_b_fname != curbuf->b_fname))) {
+ && (old_b_fname != curbuf->b_fname))) {
emsg(_(e_auchangedbuf));
return FAIL;
}
@@ -540,7 +540,7 @@ int readfile(char *fname, char *sfname, linenr_T from, linenr_T lines_to_skip,
if (!read_stdin
&& (curbuf != old_curbuf
|| (using_b_ffname && ((char_u *)old_b_ffname != curbuf->b_ffname))
- || (using_b_fname && ((char_u *)old_b_fname != curbuf->b_fname)))) {
+ || (using_b_fname && (old_b_fname != curbuf->b_fname)))) {
emsg(_(e_auchangedbuf));
if (!read_buffer) {
close(fd);
@@ -646,7 +646,7 @@ int readfile(char *fname, char *sfname, linenr_T from, linenr_T lines_to_skip,
*/
if (!read_stdin && (curbuf != old_curbuf
|| (using_b_ffname && ((char_u *)old_b_ffname != curbuf->b_ffname))
- || (using_b_fname && ((char_u *)old_b_fname != curbuf->b_fname))
+ || (using_b_fname && (old_b_fname != curbuf->b_fname))
|| (fd = os_open(fname, O_RDONLY, 0)) < 0)) {
no_wait_return--;
msg_scroll = msg_save;
@@ -1957,8 +1957,7 @@ failed:
if (!au_did_filetype && *curbuf->b_p_ft != NUL) {
// EVENT_FILETYPE was not triggered but the buffer already has a
// filetype. Trigger EVENT_FILETYPE using the existing filetype.
- apply_autocmds(EVENT_FILETYPE, curbuf->b_p_ft, curbuf->b_fname,
- true, curbuf);
+ apply_autocmds(EVENT_FILETYPE, (char *)curbuf->b_p_ft, curbuf->b_fname, true, curbuf);
}
} else {
apply_autocmds_exarg(EVENT_FILEREADPOST, sfname, sfname,
@@ -2084,7 +2083,7 @@ static char_u *next_fenc(char_u **pp, bool *alloced)
*pp = NULL;
return (char_u *)"";
}
- p = vim_strchr(*pp, ',');
+ p = (char_u *)vim_strchr((char *)(*pp), ',');
if (p == NULL) {
r = enc_canonize(*pp);
*pp += STRLEN(*pp);
@@ -2466,8 +2465,7 @@ int buf_write(buf_T *buf, char *fname, char *sfname, linenr_T start, linenr_T en
}
if (reset_changed && buf->b_changed && !append
&& (overwriting || vim_strchr(p_cpo, CPO_PLUS) != NULL)) {
- /* Buffer still changed, the autocommands didn't work
- * properly. */
+ // Buffer still changed, the autocommands didn't work properly.
return FAIL;
}
return OK;
@@ -4327,7 +4325,7 @@ void shorten_buf_fname(buf_T *buf, char_u *dirname, int force)
if (buf->b_fname != NULL
&& !bt_nofile(buf)
- && !path_with_url((char *)buf->b_fname)
+ && !path_with_url(buf->b_fname)
&& (force
|| buf->b_sfname == NULL
|| path_is_absolute(buf->b_sfname))) {
@@ -4337,10 +4335,10 @@ void shorten_buf_fname(buf_T *buf, char_u *dirname, int force)
p = path_shorten_fname(buf->b_ffname, dirname);
if (p != NULL) {
buf->b_sfname = vim_strsave(p);
- buf->b_fname = buf->b_sfname;
+ buf->b_fname = (char *)buf->b_sfname;
}
if (p == NULL) {
- buf->b_fname = buf->b_ffname;
+ buf->b_fname = (char *)buf->b_ffname;
}
}
}
@@ -4957,7 +4955,7 @@ int buf_check_timestamp(buf_T *buf)
buf_store_file_info(buf, &file_info);
}
- if (os_isdir(buf->b_fname)) {
+ if (os_isdir((char_u *)buf->b_fname)) {
// Don't do anything for a directory. Might contain the file explorer.
} else if ((buf->b_p_ar >= 0 ? buf->b_p_ar : p_ar)
&& !bufIsChanged(buf) && file_info_ok) {
@@ -4985,8 +4983,7 @@ int buf_check_timestamp(buf_T *buf)
set_vim_var_string(VV_FCS_REASON, reason, -1);
set_vim_var_string(VV_FCS_CHOICE, "", -1);
allbuf_lock++;
- bool n = apply_autocmds(EVENT_FILECHANGEDSHELL,
- buf->b_fname, buf->b_fname, false, buf);
+ bool n = apply_autocmds(EVENT_FILECHANGEDSHELL, buf->b_fname, buf->b_fname, false, buf);
allbuf_lock--;
busy = false;
if (n) {
@@ -5046,7 +5043,7 @@ int buf_check_timestamp(buf_T *buf)
}
if (mesg != NULL) {
- path = home_replace_save(buf, buf->b_fname);
+ path = home_replace_save(buf, (char_u *)buf->b_fname);
if (!helpmesg) {
mesg2 = "";
}
@@ -5117,8 +5114,7 @@ int buf_check_timestamp(buf_T *buf)
// Trigger FileChangedShell when the file was changed in any way.
if (bufref_valid(&bufref) && retval != 0) {
- (void)apply_autocmds(EVENT_FILECHANGEDSHELLPOST, buf->b_fname, buf->b_fname,
- false, buf);
+ (void)apply_autocmds(EVENT_FILECHANGEDSHELLPOST, buf->b_fname, buf->b_fname, false, buf);
}
return retval;
}
@@ -5192,7 +5188,7 @@ void buf_reload(buf_T *buf, int orig_mode, bool reload_options)
if (saved == OK) {
curbuf->b_flags |= BF_CHECK_RO; // check for RO again
keep_filetype = true; // don't detect 'filetype'
- if (readfile((char *)buf->b_ffname, (char *)buf->b_fname, (linenr_T)0, (linenr_T)0,
+ if (readfile((char *)buf->b_ffname, buf->b_fname, (linenr_T)0, (linenr_T)0,
(linenr_T)MAXLNUM, &ea, flags, false) != OK) {
if (!aborting()) {
semsg(_("E321: Could not reload \"%s\""), buf->b_fname);
@@ -5523,7 +5519,7 @@ bool match_file_pat(char *pattern, regprog_T **prog, char *fname, char *sfname,
if (prog != NULL) {
regmatch.regprog = *prog;
} else {
- regmatch.regprog = vim_regcomp((char_u *)pattern, RE_MAGIC);
+ regmatch.regprog = vim_regcomp(pattern, RE_MAGIC);
}
}
@@ -5575,7 +5571,7 @@ bool match_file_list(char_u *list, char_u *sfname, char_u *ffname)
p = list;
while (*p) {
copy_option_part(&p, buf, ARRAY_SIZE(buf), ",");
- regpat = file_pat_to_reg_pat(buf, NULL, &allow_dirs, false);
+ regpat = (char_u *)file_pat_to_reg_pat((char *)buf, NULL, &allow_dirs, false);
if (regpat == NULL) {
break;
}
@@ -5600,13 +5596,12 @@ bool match_file_list(char_u *list, char_u *sfname, char_u *ffname)
/// @param no_bslash Don't use a backward slash as pathsep
///
/// @return NULL on failure.
-char_u *file_pat_to_reg_pat(const char_u *pat, const char_u *pat_end, char *allow_dirs,
- int no_bslash)
+char *file_pat_to_reg_pat(const char *pat, const char *pat_end, char *allow_dirs, int no_bslash)
FUNC_ATTR_NONNULL_ARG(1)
{
- const char_u *endp;
- char_u *reg_pat;
- const char_u *p;
+ const char *endp;
+ char *reg_pat;
+ const char *p;
int nested = 0;
bool add_dollar = true;
@@ -5618,7 +5613,7 @@ char_u *file_pat_to_reg_pat(const char_u *pat, const char_u *pat_end, char *allo
}
if (pat_end == pat) {
- return (char_u *)xstrdup("^$");
+ return xstrdup("^$");
}
size_t size = 2; // '^' at start, '$' at end.
diff --git a/src/nvim/fold.c b/src/nvim/fold.c
index 24f088e06f..090f754e93 100644
--- a/src/nvim/fold.c
+++ b/src/nvim/fold.c
@@ -2911,7 +2911,7 @@ static void foldlevelIndent(fline_T *flp)
// empty line or lines starting with a character in 'foldignore': level
// depends on surrounding lines
- if (*s == NUL || vim_strchr(flp->wp->w_p_fdi, *s) != NULL) {
+ if (*s == NUL || vim_strchr((char *)flp->wp->w_p_fdi, *s) != NULL) {
// first and last line can't be undefined, use level 0
if (lnum == 1 || lnum == buf->b_ml.ml_line_count) {
flp->lvl = 0;
@@ -3042,7 +3042,7 @@ static void foldlevelExpr(fline_T *flp)
/// Relies on the option value to have been checked for correctness already.
static void parseMarker(win_T *wp)
{
- foldendmarker = vim_strchr(wp->w_p_fmr, ',');
+ foldendmarker = (char_u *)vim_strchr((char *)wp->w_p_fmr, ',');
foldstartmarkerlen = (size_t)(foldendmarker++ - wp->w_p_fmr);
foldendmarkerlen = STRLEN(foldendmarker);
}
diff --git a/src/nvim/getchar.c b/src/nvim/getchar.c
index e64fda39e9..2cc068b30d 100644
--- a/src/nvim/getchar.c
+++ b/src/nvim/getchar.c
@@ -802,7 +802,7 @@ int start_redo_ins(void)
// skip the count and the command character
while ((c = read_redo(false, false)) != NUL) {
- if (vim_strchr((char_u *)"AaIiRrOo", c) != NULL) {
+ if (vim_strchr("AaIiRrOo", c) != NULL) {
if (c == 'O' || c == 'o') {
add_buff(&readbuf2, NL_STR, -1L);
}
@@ -4736,9 +4736,9 @@ char_u *check_map(char_u *keys, int mode, int exact, int ign_mod, int abbr, mapb
void add_map(char_u *map, int mode, bool nore)
{
char_u *s;
- char_u *cpo_save = p_cpo;
+ char *cpo_save = p_cpo;
- p_cpo = (char_u *)""; // Allow <> notation
+ p_cpo = ""; // Allow <> notation
// Need to put string in allocated memory, because do_map() will modify it.
s = vim_strsave(map);
(void)do_map(nore ? 2 : 0, s, mode, false);
diff --git a/src/nvim/globals.h b/src/nvim/globals.h
index 1a1f9bd866..e34e3983db 100644
--- a/src/nvim/globals.h
+++ b/src/nvim/globals.h
@@ -811,7 +811,7 @@ extern char_u *compiled_sys;
// When a window has a local directory, the absolute path of the global
// current directory is stored here (in allocated memory). If the current
// directory is not a local directory, globaldir is NULL.
-EXTERN char_u *globaldir INIT(= NULL);
+EXTERN char *globaldir INIT(= NULL);
EXTERN char *last_chdir_reason INIT(= NULL);
diff --git a/src/nvim/hardcopy.c b/src/nvim/hardcopy.c
index aec15234b9..fb174baef8 100644
--- a/src/nvim/hardcopy.c
+++ b/src/nvim/hardcopy.c
@@ -311,12 +311,12 @@ static char *parse_list_options(char_u *option_str, option_table_T *table, size_
*/
stringp = option_str;
while (*stringp) {
- colonp = vim_strchr(stringp, ':');
+ colonp = (char_u *)vim_strchr((char *)stringp, ':');
if (colonp == NULL) {
ret = N_("E550: Missing colon");
break;
}
- commap = vim_strchr(stringp, ',');
+ commap = (char_u *)vim_strchr((char *)stringp, ',');
if (commap == NULL) {
commap = option_str + STRLEN(option_str);
}
@@ -661,7 +661,7 @@ void ex_hardcopy(exarg_T *eap)
*/
if (mch_print_init(&settings,
curbuf->b_fname == NULL ? buf_spname(curbuf) : curbuf->b_sfname ==
- NULL ? curbuf->b_fname : curbuf->b_sfname, eap->forceit) == FAIL) {
+ NULL ? (char_u *)curbuf->b_fname : curbuf->b_sfname, eap->forceit) == FAIL) {
return;
}
@@ -1588,7 +1588,7 @@ static int prt_find_resource(char *name, struct prt_ps_resource_S *resource)
STRLCAT(buffer, name, MAXPATHL);
STRLCAT(buffer, ".ps", MAXPATHL);
resource->filename[0] = NUL;
- retval = (do_in_runtimepath((char *)buffer, 0, prt_resource_name, resource->filename)
+ retval = (do_in_runtimepath(buffer, 0, prt_resource_name, resource->filename)
&& resource->filename[0] != NUL);
xfree(buffer);
return retval;
@@ -2344,7 +2344,7 @@ int mch_print_init(prt_settings_T *psettings, char_u *jobname, int forceit)
* Set up the font size.
*/
fontsize = PRT_PS_DEFAULT_FONTSIZE;
- for (p = p_pfn; (p = vim_strchr(p, ':')) != NULL; ++p) {
+ for (p = p_pfn; (p = (char_u *)vim_strchr((char *)p, ':')) != NULL; p++) {
if (p[1] == 'h' && ascii_isdigit(p[2])) {
fontsize = atoi((char *)p + 2);
}
@@ -2413,7 +2413,7 @@ int mch_print_init(prt_settings_T *psettings, char_u *jobname, int forceit)
}
prt_ps_fd = os_fopen((char *)prt_ps_file_name, WRITEBIN);
} else {
- p = expand_env_save(psettings->outfile);
+ p = (char_u *)expand_env_save((char *)psettings->outfile);
if (p != NULL) {
prt_ps_fd = os_fopen((char *)p, WRITEBIN);
xfree(p);
@@ -2525,7 +2525,7 @@ bool mch_print_begin(prt_settings_T *psettings)
char ctime_buf[50];
char *p_time = os_ctime(ctime_buf, sizeof(ctime_buf));
// Note: os_ctime() adds a \n so we have to remove it :-(
- p = vim_strchr((char_u *)p_time, '\n');
+ p = (char_u *)vim_strchr(p_time, '\n');
if (p != NULL) {
*p = NUL;
}
diff --git a/src/nvim/highlight_group.c b/src/nvim/highlight_group.c
index c4b826c3fd..240a96cb4b 100644
--- a/src/nvim/highlight_group.c
+++ b/src/nvim/highlight_group.c
@@ -103,8 +103,8 @@ static const char *highlight_init_both[] = {
"TabLineFill cterm=reverse gui=reverse",
"TabLineSel cterm=bold gui=bold",
"TermCursor cterm=reverse gui=reverse",
- "VertSplit cterm=reverse gui=reverse",
"WildMenu ctermbg=Yellow ctermfg=Black guibg=Yellow guifg=Black",
+ "default link VertSplit Normal",
"default link WinSeparator VertSplit",
"default link EndOfBuffer NonText",
"default link LineNrAbove LineNr",
@@ -560,7 +560,7 @@ int load_colors(char_u *name)
recursive = true;
size_t buflen = STRLEN(name) + 12;
buf = xmalloc(buflen);
- apply_autocmds(EVENT_COLORSCHEMEPRE, name, curbuf->b_fname, false, curbuf);
+ apply_autocmds(EVENT_COLORSCHEMEPRE, (char *)name, curbuf->b_fname, false, curbuf);
snprintf((char *)buf, buflen, "colors/%s.vim", name);
retval = source_runtime((char *)buf, DIP_START + DIP_OPT);
if (retval == FAIL) {
@@ -568,7 +568,7 @@ int load_colors(char_u *name)
retval = source_runtime((char *)buf, DIP_START + DIP_OPT);
}
xfree(buf);
- apply_autocmds(EVENT_COLORSCHEME, name, curbuf->b_fname, false, curbuf);
+ apply_autocmds(EVENT_COLORSCHEME, (char *)name, curbuf->b_fname, false, curbuf);
recursive = false;
diff --git a/src/nvim/if_cscope.c b/src/nvim/if_cscope.c
index 77154e8fce..7174e58986 100644
--- a/src/nvim/if_cscope.c
+++ b/src/nvim/if_cscope.c
@@ -962,7 +962,7 @@ static bool cs_find_common(char *opt, char *pat, int forceit, int verbose, bool
cmdletter = opt[0];
}
- qfpos = (char *)vim_strchr(p_csqf, cmdletter);
+ qfpos = vim_strchr((char *)p_csqf, cmdletter);
if (qfpos != NULL) {
qfpos++;
// next symbol must be + or -
@@ -972,8 +972,7 @@ static bool cs_find_common(char *opt, char *pat, int forceit, int verbose, bool
}
if (*qfpos != '0'
- && apply_autocmds(EVENT_QUICKFIXCMDPRE, (char_u *)"cscope",
- curbuf->b_fname, true, curbuf)) {
+ && apply_autocmds(EVENT_QUICKFIXCMDPRE, "cscope", curbuf->b_fname, true, curbuf)) {
if (aborting()) {
return false;
}
@@ -1049,8 +1048,7 @@ static bool cs_find_common(char *opt, char *pat, int forceit, int verbose, bool
postponed_split = 0;
}
- apply_autocmds(EVENT_QUICKFIXCMDPOST, (char_u *)"cscope",
- curbuf->b_fname, TRUE, curbuf);
+ apply_autocmds(EVENT_QUICKFIXCMDPOST, "cscope", curbuf->b_fname, true, curbuf);
if (use_ll) {
/*
* In the location list window, use the displayed location
diff --git a/src/nvim/indent.c b/src/nvim/indent.c
index 1c4486b67d..882a10e1e8 100644
--- a/src/nvim/indent.c
+++ b/src/nvim/indent.c
@@ -407,7 +407,7 @@ int get_number_indent(linenr_T lnum)
if ((State & MODE_INSERT) || has_format_option(FO_Q_COMS)) {
lead_len = get_leader_len(ml_get(lnum), NULL, false, true);
}
- regmatch.regprog = vim_regcomp(curbuf->b_p_flp, RE_MAGIC);
+ regmatch.regprog = vim_regcomp((char *)curbuf->b_p_flp, RE_MAGIC);
if (regmatch.regprog != NULL) {
regmatch.rm_ic = false;
@@ -467,7 +467,7 @@ int get_breakindent_win(win_T *wp, char_u *line)
// add additional indent for numbered lists
if (wp->w_briopt_list != 0) {
regmatch_T regmatch = {
- .regprog = vim_regcomp(curbuf->b_p_flp,
+ .regprog = vim_regcomp((char *)curbuf->b_p_flp,
RE_MAGIC + RE_STRING + RE_AUTO + RE_STRICT),
};
@@ -522,6 +522,11 @@ int inindent(int extra)
}
}
+/// @return true if the conditions are OK for smart indenting.
+bool may_do_si(void)
+{
+ return curbuf->b_p_si && !curbuf->b_p_cin && *curbuf->b_p_inde == NUL && !p_paste;
+}
// Get indent level from 'indentexpr'.
int get_expr_indent(void)
diff --git a/src/nvim/indent_c.c b/src/nvim/indent_c.c
index 06153267bc..e6dc985726 100644
--- a/src/nvim/indent_c.c
+++ b/src/nvim/indent_c.c
@@ -1,12 +1,9 @@
// This is an open source non-commercial project. Dear PVS-Studio, please check
// it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
-// uncrustify:off
-
#include <assert.h>
#include <inttypes.h>
-#include "nvim/vim.h"
#include "nvim/ascii.h"
#include "nvim/charset.h"
#include "nvim/cursor.h"
@@ -19,11 +16,12 @@
#include "nvim/option.h"
#include "nvim/search.h"
#include "nvim/strings.h"
+#include "nvim/vim.h"
// Find result cache for cpp_baseclass
typedef struct {
- int found;
- lpos_T lpos;
+ int found;
+ lpos_T lpos;
} cpp_baseclass_cache_T;
#ifdef INCLUDE_GENERATED_DECLARATIONS
@@ -44,10 +42,11 @@ pos_T *find_start_comment(int ind_maxcomment) // XXX
pos_T *pos;
int64_t cur_maxcomment = ind_maxcomment;
- for (;; ) {
+ for (;;) {
pos = findmatchlimit(NULL, '*', FM_BACKWARD, cur_maxcomment);
- if (pos == NULL)
+ if (pos == NULL) {
break;
+ }
/*
* Check if the comment start we found is inside a string.
@@ -105,30 +104,27 @@ static pos_T *ind_find_start_CORS(linenr_T *is_raw)
*/
static pos_T *find_start_rawstring(int ind_maxcomment) // XXX
{
- pos_T *pos;
- long cur_maxcomment = ind_maxcomment;
+ pos_T *pos;
+ long cur_maxcomment = ind_maxcomment;
- for (;;)
- {
- pos = findmatchlimit(NULL, 'R', FM_BACKWARD, cur_maxcomment);
- if (pos == NULL)
- break;
+ for (;;) {
+ pos = findmatchlimit(NULL, 'R', FM_BACKWARD, cur_maxcomment);
+ if (pos == NULL) {
+ break;
+ }
- /*
- * Check if the raw string start we found is inside a string.
- * If it is then restrict the search to below this line and try again.
- */
- if (!is_pos_in_string(ml_get(pos->lnum), pos->col)) {
- break;
- }
- cur_maxcomment = curwin->w_cursor.lnum - pos->lnum - 1;
- if (cur_maxcomment <= 0)
- {
- pos = NULL;
- break;
- }
+ // Check if the raw string start we found is inside a string.
+ // If it is then restrict the search to below this line and try again.
+ if (!is_pos_in_string(ml_get(pos->lnum), pos->col)) {
+ break;
}
- return pos;
+ cur_maxcomment = curwin->w_cursor.lnum - pos->lnum - 1;
+ if (cur_maxcomment <= 0) {
+ pos = NULL;
+ break;
+ }
+ }
+ return pos;
}
/*
@@ -154,7 +150,7 @@ static const char_u *skip_string(const char_u *p)
i++;
}
}
- if (p[i] == '\'') { // check for trailing '
+ if (p[i - 1] != NUL && p[i] == '\'') { // check for trailing '
p += i;
continue;
}
@@ -171,8 +167,8 @@ static const char_u *skip_string(const char_u *p)
}
} else if (p[0] == 'R' && p[1] == '"') {
// Raw string: R"[delim](...)[delim]"
- const char_u *delim = p + 2;
- const char_u *paren = vim_strchr(delim, '(');
+ const char *delim = (char *)p + 2;
+ const char *paren = vim_strchr((char *)delim, '(');
if (paren != NULL) {
const ptrdiff_t delim_len = paren - delim;
@@ -228,7 +224,7 @@ bool cin_is_cinword(const char_u *line)
char_u *cinw_buf = xmalloc(cinw_len);
line = (char_u *)skipwhite((char *)line);
- for (char_u *cinw = curbuf->b_p_cinw; *cinw; ) {
+ for (char_u *cinw = curbuf->b_p_cinw; *cinw;) {
size_t len = copy_option_part(&cinw, cinw_buf, cinw_len, ",");
if (STRNCMP(line, cinw_buf, len) == 0
&& (!vim_iswordc(line[len]) || !vim_iswordc(line[len - 1]))) {
@@ -243,7 +239,6 @@ bool cin_is_cinword(const char_u *line)
}
-
/*
* Skip over white space and C comments within the line.
* Also skip over Perl/shell comments if desired.
@@ -269,8 +264,9 @@ static const char_u *cin_skipcomment(const char_u *s)
s += STRLEN(s);
break;
}
- if (*s != '*')
+ if (*s != '*') {
break;
+ }
for (++s; *s; s++) { // skip slash-star comment
if (s[0] == '*' && s[1] == '/') {
s += 2;
@@ -296,8 +292,8 @@ static int cin_nocode(const char_u *s)
static pos_T *find_line_comment(void) // XXX
{
static pos_T pos;
- char_u *line;
- char_u *p;
+ char_u *line;
+ char_u *p;
pos = curwin->w_cursor;
while (--pos.lnum > 0) {
@@ -307,8 +303,9 @@ static pos_T *find_line_comment(void) // XXX
pos.col = (int)(p - line);
return &pos;
}
- if (*p != NUL)
+ if (*p != NUL) {
break;
+ }
}
return NULL;
}
@@ -324,8 +321,8 @@ static bool cin_has_js_key(const char_u *text)
quote = *s;
++s;
}
- if (!vim_isIDc(*s)) { // need at least one ID character
- return FALSE;
+ if (!vim_isIDc(*s)) { // need at least one ID character
+ return false;
}
while (vim_isIDc(*s)) {
@@ -350,8 +347,9 @@ static bool cin_islabel_skip(const char_u **s)
return false;
}
- while (vim_isIDc(**s))
+ while (vim_isIDc(**s)) {
(*s)++;
+ }
*s = cin_skipcomment(*s);
@@ -431,10 +429,11 @@ static int cin_isinit(void)
s = cin_skipcomment(get_cursor_line_ptr());
- if (cin_starts_with(s, "typedef"))
+ if (cin_starts_with(s, "typedef")) {
s = cin_skipcomment(s + 7);
+ }
- for (;; ) {
+ for (;;) {
int i, l;
for (i = 0; i < (int)ARRAY_SIZE(skip); ++i) {
@@ -445,26 +444,26 @@ static int cin_isinit(void)
break;
}
}
- if (l != 0)
+ if (l != 0) {
break;
+ }
}
- if (cin_starts_with(s, "enum"))
- return TRUE;
+ if (cin_starts_with(s, "enum")) {
+ return true;
+ }
- if (cin_ends_in(s, (char_u *)"=", (char_u *)"{"))
- return TRUE;
+ if (cin_ends_in(s, (char_u *)"=", (char_u *)"{")) {
+ return true;
+ }
return FALSE;
}
-/*
- * Recognize a switch label: "case .*:" or "default:".
- */
-bool cin_iscase(
- const char_u *s,
- bool strict // Allow relaxed check of case statement for JS
-)
+/// Recognize a switch label: "case .*:" or "default:".
+///
+/// @param strict Allow relaxed check of case statement for JS
+bool cin_iscase(const char_u *s, bool strict)
{
s = cin_skipcomment(s);
if (cin_starts_with(s, "case")) {
@@ -522,7 +521,7 @@ bool cin_isscopedecl(const char_u *p)
bool found = false;
- for (char_u *cinsd = curbuf->b_p_cinsd; *cinsd; ) {
+ for (char_u *cinsd = curbuf->b_p_cinsd; *cinsd;) {
const size_t len = copy_option_part(&cinsd, cinsd_buf, cinsd_len, ",");
if (STRNCMP(s, cinsd_buf, len) == 0) {
const char_u *skip = cin_skipcomment(s + len);
@@ -586,8 +585,8 @@ static bool cin_is_cpp_namespace(const char_u *s)
/*
* Return a pointer to the first non-empty non-comment character after a ':'.
* Return NULL if not found.
- * case 234: a = b;
- * ^
+ * case 234: a = b;
+ * ^
*/
static const char_u *after_label(const char_u *l)
{
@@ -602,11 +601,13 @@ static const char_u *after_label(const char_u *l)
l += 2; // skip over 'x'
}
}
- if (*l == NUL)
+ if (*l == NUL) {
return NULL;
+ }
l = cin_skipcomment(l + 1);
- if (*l == NUL)
+ if (*l == NUL) {
return NULL;
+ }
return l;
}
@@ -623,8 +624,9 @@ static int get_indent_nolabel(linenr_T lnum) // XXX
l = ml_get(lnum);
p = after_label(l);
- if (p == NULL)
+ if (p == NULL) {
return 0;
+ }
fp.col = (colnr_T)(p - l);
fp.lnum = lnum;
@@ -635,8 +637,8 @@ static int get_indent_nolabel(linenr_T lnum) // XXX
/*
* Find indent for line "lnum", ignoring any case or jump label.
* Also return a pointer to the text (after the label) in "pp".
- * label: if (asdf && asdfasdf)
- * ^
+ * label: if (asdf && asdfasdf)
+ * ^
*/
static int skip_label(linenr_T lnum, const char_u **pp)
{
@@ -666,14 +668,14 @@ static int skip_label(linenr_T lnum, const char_u **pp)
/*
* Return the indent of the first variable name after a type in a declaration.
- * int a, indent of "a"
- * static struct foo b, indent of "b"
- * enum bla c, indent of "c"
+ * int a, indent of "a"
+ * static struct foo b, indent of "b"
+ * enum bla c, indent of "c"
* Returns zero when it doesn't look like a declaration.
*/
static int cin_first_id_amount(void)
{
- char_u *line, *p, *s;
+ char_u *line, *p, *s;
int len;
pos_T fp;
colnr_T col;
@@ -699,10 +701,10 @@ static int cin_first_id_amount(void)
p = s;
}
}
- for (len = 0; vim_isIDc(p[len]); ++len)
- ;
- if (len == 0 || !ascii_iswhite(p[len]) || cin_nocode(p))
+ for (len = 0; vim_isIDc(p[len]); len++) {}
+ if (len == 0 || !ascii_iswhite(p[len]) || cin_nocode(p)) {
return 0;
+ }
p = (char_u *)skipwhite((char *)p + len);
fp.lnum = curwin->w_cursor.lnum;
@@ -717,8 +719,8 @@ static int cin_first_id_amount(void)
* Return zero if no (useful) equal sign found.
* Return -1 if the line above "lnum" ends in a backslash.
* foo = "asdf\
- * asdf\
- * here";
+ * asdf\
+ * here";
*/
static int cin_get_equal_amount(linenr_T lnum)
{
@@ -729,20 +731,22 @@ static int cin_get_equal_amount(linenr_T lnum)
if (lnum > 1) {
line = ml_get(lnum - 1);
- if (*line != NUL && line[STRLEN(line) - 1] == '\\')
+ if (*line != NUL && line[STRLEN(line) - 1] == '\\') {
return -1;
+ }
}
line = s = ml_get(lnum);
- while (*s != NUL && vim_strchr((char_u *)"=;{}\"'", *s) == NULL) {
+ while (*s != NUL && vim_strchr("=;{}\"'", *s) == NULL) {
if (cin_iscomment(s)) { // ignore comments
s = cin_skipcomment(s);
} else {
s++;
}
}
- if (*s != '=')
+ if (*s != '=') {
return 0;
+ }
s = (char_u *)skipwhite((char *)s + 1);
if (cin_nocode(s)) {
@@ -785,17 +789,19 @@ static int cin_ispreproc_cont(const char_u **pp, linenr_T *lnump, int *amount)
candidate_amount = get_indent_lnum(lnum);
}
- for (;; ) {
+ for (;;) {
if (cin_ispreproc(line)) {
retval = TRUE;
*lnump = lnum;
break;
}
- if (lnum == 1)
+ if (lnum == 1) {
break;
+ }
line = ml_get(--lnum);
- if (*line == NUL || line[STRLEN(line) - 1] != '\\')
+ if (*line == NUL || line[STRLEN(line) - 1] != '\\') {
break;
+ }
}
if (lnum != *lnump) {
@@ -823,21 +829,18 @@ static int cin_islinecomment(const char_u *p)
return p[0] == '/' && p[1] == '/';
}
-/*
- * Recognize a line that starts with '{' or '}', or ends with ';', ',', '{' or
- * '}'.
- * Don't consider "} else" a terminated line.
- * If a line begins with an "else", only consider it terminated if no unmatched
- * opening braces follow (handle "else { foo();" correctly).
- * Return the character terminating the line (ending char's have precedence if
- * both apply in order to determine initializations).
- */
-static char_u
-cin_isterminated(
- const char_u *s,
- int incl_open, // include '{' at the end as terminator
- int incl_comma // recognize a trailing comma
-)
+/// Recognize a line that starts with '{' or '}', or ends with ';', ',', '{' or
+/// '}'.
+/// Don't consider "} else" a terminated line.
+/// If a line begins with an "else", only consider it terminated if no unmatched
+/// opening braces follow (handle "else { foo();" correctly).
+///
+/// @param incl_open include '{' at the end as terminator
+/// @param incl_comma recognize a trailing comma
+///
+/// @return the character terminating the line (ending char's have precedence if
+/// both apply in order to determine initializations).
+static char_u cin_isterminated(const char_u *s, int incl_open, int incl_comma)
{
char_u found_start = 0;
unsigned n_open = 0;
@@ -845,30 +848,35 @@ cin_isterminated(
s = cin_skipcomment(s);
- if (*s == '{' || (*s == '}' && !cin_iselse(s)))
+ if (*s == '{' || (*s == '}' && !cin_iselse(s))) {
found_start = *s;
+ }
- if (!found_start)
+ if (!found_start) {
is_else = cin_iselse(s);
+ }
while (*s) {
// skip over comments, "" strings and 'c'haracters
s = skip_string(cin_skipcomment(s));
- if (*s == '}' && n_open > 0)
- --n_open;
+ if (*s == '}' && n_open > 0) {
+ n_open--;
+ }
if ((!is_else || n_open == 0)
&& (*s == ';' || *s == '}' || (incl_comma && *s == ','))
- && cin_nocode(s + 1))
+ && cin_nocode(s + 1)) {
return *s;
- else if (*s == '{') {
- if (incl_open && cin_nocode(s + 1))
+ } else if (*s == '{') {
+ if (incl_open && cin_nocode(s + 1)) {
return *s;
- else
- ++n_open;
+ } else {
+ n_open++;
+ }
}
- if (*s)
+ if (*s) {
s++;
+ }
}
return found_start;
}
@@ -889,13 +897,14 @@ static int cin_isfuncdecl(const char_u **sp, linenr_T first_lnum, linenr_T min_l
linenr_T lnum = first_lnum;
linenr_T save_lnum = curwin->w_cursor.lnum;
int retval = false;
- pos_T *trypos;
- int just_started = TRUE;
+ pos_T *trypos;
+ int just_started = true;
- if (sp == NULL)
+ if (sp == NULL) {
s = ml_get(lnum);
- else
+ } else {
s = *sp;
+ }
curwin->w_cursor.lnum = lnum;
if (find_last_paren(s, '(', ')')
@@ -945,8 +954,9 @@ static int cin_isfuncdecl(const char_u **sp, linenr_T first_lnum, linenr_T min_l
// defined(y)
lnum = first_lnum - 1;
s = ml_get(lnum);
- if (*s == NUL || s[STRLEN(s) - 1] != '\\')
- retval = TRUE;
+ if (*s == NUL || s[STRLEN(s) - 1] != '\\') {
+ retval = true;
+ }
goto done;
}
if ((*s == ',' && cin_nocode(s + 1)) || s[1] == NUL || cin_nocode(s)) {
@@ -956,17 +966,20 @@ static int cin_isfuncdecl(const char_u **sp, linenr_T first_lnum, linenr_T min_l
* At the end: check for ',' in the next line, for this style:
* func(arg1
* , arg2) */
- for (;; ) {
- if (lnum >= curbuf->b_ml.ml_line_count)
+ for (;;) {
+ if (lnum >= curbuf->b_ml.ml_line_count) {
break;
+ }
s = ml_get(++lnum);
- if (!cin_ispreproc(s))
+ if (!cin_ispreproc(s)) {
break;
+ }
}
- if (lnum >= curbuf->b_ml.ml_line_count)
+ if (lnum >= curbuf->b_ml.ml_line_count) {
break;
- /* Require a comma at end of the line or a comma or ')' at the
- * start of next line. */
+ }
+ // Require a comma at end of the line or a comma or ')' at the
+ // start of next line.
s = (char_u *)skipwhite((char *)s);
if (!just_started && (!comma && *s != ',' && *s != ')')) {
break;
@@ -981,8 +994,9 @@ static int cin_isfuncdecl(const char_u **sp, linenr_T first_lnum, linenr_T min_l
}
done:
- if (lnum != first_lnum && sp != NULL)
+ if (lnum != first_lnum && sp != NULL) {
*sp = ml_get(first_lnum);
+ }
return retval;
}
@@ -1013,8 +1027,8 @@ static int cin_isdo(const char_u *p)
static int cin_iswhileofdo(const char_u *p, linenr_T lnum) // XXX
{
pos_T cursor_save;
- pos_T *trypos;
- int retval = FALSE;
+ pos_T *trypos;
+ int retval = false;
p = cin_skipcomment(p);
if (*p == '}') { // accept "} while (cond);"
@@ -1029,10 +1043,10 @@ static int cin_iswhileofdo(const char_u *p, linenr_T lnum) // XXX
p++;
curwin->w_cursor.col++;
}
- if ((trypos = findmatchlimit(NULL, 0, 0,
- curbuf->b_ind_maxparen)) != NULL
- && *cin_skipcomment(ml_get_pos(trypos) + 1) == ';')
- retval = TRUE;
+ if ((trypos = findmatchlimit(NULL, 0, 0, curbuf->b_ind_maxparen)) != NULL
+ && *cin_skipcomment(ml_get_pos(trypos) + 1) == ';') {
+ retval = true;
+ }
curwin->w_cursor = cursor_save;
}
return retval;
@@ -1048,24 +1062,29 @@ static int cin_is_if_for_while_before_offset(const char_u *line, int *poffset)
{
int offset = *poffset;
- if (offset-- < 2)
+ if (offset-- < 2) {
return 0;
- while (offset > 2 && ascii_iswhite(line[offset]))
- --offset;
+ }
+ while (offset > 2 && ascii_iswhite(line[offset])) {
+ offset--;
+ }
offset -= 1;
- if (!STRNCMP(line + offset, "if", 2))
+ if (!STRNCMP(line + offset, "if", 2)) {
goto probablyFound;
+ }
if (offset >= 1) {
offset -= 1;
- if (!STRNCMP(line + offset, "for", 3))
+ if (!STRNCMP(line + offset, "for", 3)) {
goto probablyFound;
+ }
if (offset >= 2) {
offset -= 2;
- if (!STRNCMP(line + offset, "while", 5))
+ if (!STRNCMP(line + offset, "while", 5)) {
goto probablyFound;
+ }
}
}
return 0;
@@ -1083,7 +1102,7 @@ probablyFound:
* do
* nothing;
* while (foo
- * && bar); <-- here
+ * && bar); <-- here
* Adjust the cursor to the line with "while".
*/
static int cin_iswhileofdo_end(int terminated)
@@ -1125,8 +1144,9 @@ static int cin_iswhileofdo_end(int terminated)
p = line + i;
}
}
- if (*p != NUL)
- ++p;
+ if (*p != NUL) {
+ p++;
+ }
}
return FALSE;
}
@@ -1141,15 +1161,16 @@ static int cin_isbreak(const char_u *p)
* constructor-initialization. eg:
*
* class MyClass :
- * baseClass <-- here
+ * baseClass <-- here
* class MyClass : public baseClass,
- * anotherBaseClass <-- here (should probably lineup ??)
+ * anotherBaseClass <-- here (should probably lineup ??)
* MyClass::MyClass(...) :
- * baseClass(...) <-- here (constructor-initialization)
+ * baseClass(...) <-- here (constructor-initialization)
*
* This is a lot of guessing. Watch out for "cond ? func() : foo".
*/
-static int cin_is_cpp_baseclass(cpp_baseclass_cache_T *cached) {
+static int cin_is_cpp_baseclass(cpp_baseclass_cache_T *cached)
+{
lpos_T *pos = &cached->lpos; // find position
const char_u *s;
int class_or_struct, lookfor_ctor_init, cpp_base_class;
@@ -1167,23 +1188,24 @@ static int cin_is_cpp_baseclass(cpp_baseclass_cache_T *cached) {
return false;
}
s = cin_skipcomment(s);
- if (*s == NUL)
- return FALSE;
+ if (*s == NUL) {
+ return false;
+ }
cpp_base_class = lookfor_ctor_init = class_or_struct = FALSE;
/* Search for a line starting with '#', empty, ending in ';' or containing
* '{' or '}' and start below it. This handles the following situations:
- * a = cond ?
- * func() :
- * asdf;
- * func::foo()
- * : something
- * {}
- * Foo::Foo (int one, int two)
- * : something(4),
- * somethingelse(3)
- * {}
+ * a = cond ?
+ * func() :
+ * asdf;
+ * func::foo()
+ * : something
+ * {}
+ * Foo::Foo (int one, int two)
+ * : something(4),
+ * somethingelse(3)
+ * {}
*/
while (lnum > 1) {
line = ml_get(lnum - 1);
@@ -1194,20 +1216,23 @@ static int cin_is_cpp_baseclass(cpp_baseclass_cache_T *cached) {
while (*s != NUL) {
s = cin_skipcomment(s);
if (*s == '{' || *s == '}'
- || (*s == ';' && cin_nocode(s + 1)))
+ || (*s == ';' && cin_nocode(s + 1))) {
break;
- if (*s != NUL)
- ++s;
+ }
+ if (*s != NUL) {
+ s++;
+ }
}
- if (*s != NUL)
+ if (*s != NUL) {
break;
- --lnum;
+ }
+ lnum--;
}
pos->lnum = lnum;
line = ml_get(lnum);
s = line;
- for (;; ) {
+ for (;;) {
if (*s == NUL) {
if (lnum == curwin->w_cursor.lnum) {
break;
@@ -1222,13 +1247,14 @@ static int cin_is_cpp_baseclass(cpp_baseclass_cache_T *cached) {
break;
}
s = cin_skipcomment(line);
- if (*s == NUL)
+ if (*s == NUL) {
continue;
+ }
}
- if (s[0] == '"' || (s[0] == 'R' && s[1] == '"'))
+ if (s[0] == '"' || (s[0] == 'R' && s[1] == '"')) {
s = skip_string(s) + 1;
- else if (s[0] == ':') {
+ } else if (s[0] == ':') {
if (s[1] == ':') {
/* skip double colon. It can't be a constructor
* initialization any more */
@@ -1241,17 +1267,19 @@ static int cin_is_cpp_baseclass(cpp_baseclass_cache_T *cached) {
lookfor_ctor_init = class_or_struct = false;
pos->col = 0;
s = cin_skipcomment(s + 1);
- } else
+ } else {
s = cin_skipcomment(s + 1);
+ }
} else if ((STRNCMP(s, "class", 5) == 0 && !vim_isIDc(s[5]))
|| (STRNCMP(s, "struct", 6) == 0 && !vim_isIDc(s[6]))) {
class_or_struct = TRUE;
lookfor_ctor_init = FALSE;
- if (*s == 'c')
+ if (*s == 'c') {
s = cin_skipcomment(s + 5);
- else
+ } else {
s = cin_skipcomment(s + 6);
+ }
} else {
if (s[0] == '{' || s[0] == '}' || s[0] == ';') {
cpp_base_class = lookfor_ctor_init = class_or_struct = FALSE;
@@ -1297,7 +1325,7 @@ static int get_baseclass_amount(int col)
{
int amount;
colnr_T vcol;
- pos_T *trypos;
+ pos_T *trypos;
if (col == 0) {
amount = get_indent();
@@ -1313,8 +1341,9 @@ static int get_baseclass_amount(int col)
getvcol(curwin, &curwin->w_cursor, &vcol, NULL, NULL);
amount = (int)vcol;
}
- if (amount < curbuf->b_ind_cpp_baseclass)
+ if (amount < curbuf->b_ind_cpp_baseclass) {
amount = curbuf->b_ind_cpp_baseclass;
+ }
return amount;
}
@@ -1340,8 +1369,9 @@ static int cin_ends_in(const char_u *s, const char_u *find, const char_u *ignore
return true;
}
}
- if (*p != NUL)
- ++p;
+ if (*p != NUL) {
+ p++;
+ }
}
return FALSE;
}
@@ -1461,10 +1491,10 @@ static pos_T *find_match_paren(int ind_maxparen)
return find_match_char('(', ind_maxparen);
}
-static pos_T * find_match_char(char_u c, int ind_maxparen)
+static pos_T *find_match_char(char_u c, int ind_maxparen)
{
pos_T cursor_save;
- pos_T *trypos;
+ pos_T *trypos;
static pos_T pos_copy;
int ind_maxp_wk;
@@ -1488,8 +1518,7 @@ retry:
trypos = &pos_copy;
curwin->w_cursor = *trypos;
if ((trypos_wk = ind_find_start_CORS(NULL)) != NULL) { // XXX
- ind_maxp_wk = ind_maxparen - (int)(cursor_save.lnum
- - trypos_wk->lnum);
+ ind_maxp_wk = ind_maxparen - (int)(cursor_save.lnum - trypos_wk->lnum);
if (ind_maxp_wk > 0) {
curwin->w_cursor = *trypos_wk;
goto retry;
@@ -1535,8 +1564,9 @@ static int corr_ind_maxparen(pos_T *startpos)
{
long n = (long)startpos->lnum - (long)curwin->w_cursor.lnum;
- if (n > 0 && n < curbuf->b_ind_maxparen / 2)
+ if (n > 0 && n < curbuf->b_ind_maxparen / 2) {
return curbuf->b_ind_maxparen - (int)n;
+ }
return curbuf->b_ind_maxparen;
}
@@ -1575,8 +1605,8 @@ static int find_last_paren(const char_u *l, int start, int end)
*/
void parse_cino(buf_T *buf)
{
- char_u *p;
- char_u *l;
+ char_u *p;
+ char_u *l;
int divider;
int fraction = 0;
int sw = get_sw_value(buf);
@@ -1714,7 +1744,7 @@ void parse_cino(buf_T *buf)
// Handle C #pragma directives
buf->b_ind_pragma = 0;
- for (p = buf->b_p_cino; *p; ) {
+ for (p = buf->b_p_cino; *p;) {
l = p++;
if (*p == '-') {
p++;
@@ -1738,57 +1768,134 @@ void parse_cino(buf_T *buf)
n = sw; // just "s" is one 'shiftwidth'.
} else {
n *= sw;
- if (divider)
+ if (divider) {
n += (sw * fraction + divider / 2) / divider;
+ }
}
++p;
}
- if (l[1] == '-')
+ if (l[1] == '-') {
n = -n;
+ }
/* When adding an entry here, also update the default 'cinoptions' in
* doc/indent.txt, and add explanation for it! */
switch (*l) {
- case '>': buf->b_ind_level = n; break;
- case 'e': buf->b_ind_open_imag = n; break;
- case 'n': buf->b_ind_no_brace = n; break;
- case 'f': buf->b_ind_first_open = n; break;
- case '{': buf->b_ind_open_extra = n; break;
- case '}': buf->b_ind_close_extra = n; break;
- case '^': buf->b_ind_open_left_imag = n; break;
- case 'L': buf->b_ind_jump_label = n; break;
- case ':': buf->b_ind_case = n; break;
- case '=': buf->b_ind_case_code = n; break;
- case 'b': buf->b_ind_case_break = n; break;
- case 'p': buf->b_ind_param = n; break;
- case 't': buf->b_ind_func_type = n; break;
- case '/': buf->b_ind_comment = n; break;
- case 'c': buf->b_ind_in_comment = n; break;
- case 'C': buf->b_ind_in_comment2 = n; break;
- case 'i': buf->b_ind_cpp_baseclass = n; break;
- case '+': buf->b_ind_continuation = n; break;
- case '(': buf->b_ind_unclosed = n; break;
- case 'u': buf->b_ind_unclosed2 = n; break;
- case 'U': buf->b_ind_unclosed_noignore = n; break;
- case 'W': buf->b_ind_unclosed_wrapped = n; break;
- case 'w': buf->b_ind_unclosed_whiteok = n; break;
- case 'm': buf->b_ind_matching_paren = n; break;
- case 'M': buf->b_ind_paren_prev = n; break;
- case ')': buf->b_ind_maxparen = n; break;
- case '*': buf->b_ind_maxcomment = n; break;
- case 'g': buf->b_ind_scopedecl = n; break;
- case 'h': buf->b_ind_scopedecl_code = n; break;
- case 'j': buf->b_ind_java = n; break;
- case 'J': buf->b_ind_js = n; break;
- case 'l': buf->b_ind_keep_case_label = n; break;
- case '#': buf->b_ind_hash_comment = n; break;
- case 'N': buf->b_ind_cpp_namespace = n; break;
- case 'k': buf->b_ind_if_for_while = n; break;
- case 'E': buf->b_ind_cpp_extern_c = n; break;
- case 'P': buf->b_ind_pragma = n; break;
- }
- if (*p == ',')
- ++p;
+ case '>':
+ buf->b_ind_level = n;
+ break;
+ case 'e':
+ buf->b_ind_open_imag = n;
+ break;
+ case 'n':
+ buf->b_ind_no_brace = n;
+ break;
+ case 'f':
+ buf->b_ind_first_open = n;
+ break;
+ case '{':
+ buf->b_ind_open_extra = n;
+ break;
+ case '}':
+ buf->b_ind_close_extra = n;
+ break;
+ case '^':
+ buf->b_ind_open_left_imag = n;
+ break;
+ case 'L':
+ buf->b_ind_jump_label = n;
+ break;
+ case ':':
+ buf->b_ind_case = n;
+ break;
+ case '=':
+ buf->b_ind_case_code = n;
+ break;
+ case 'b':
+ buf->b_ind_case_break = n;
+ break;
+ case 'p':
+ buf->b_ind_param = n;
+ break;
+ case 't':
+ buf->b_ind_func_type = n;
+ break;
+ case '/':
+ buf->b_ind_comment = n;
+ break;
+ case 'c':
+ buf->b_ind_in_comment = n;
+ break;
+ case 'C':
+ buf->b_ind_in_comment2 = n;
+ break;
+ case 'i':
+ buf->b_ind_cpp_baseclass = n;
+ break;
+ case '+':
+ buf->b_ind_continuation = n;
+ break;
+ case '(':
+ buf->b_ind_unclosed = n;
+ break;
+ case 'u':
+ buf->b_ind_unclosed2 = n;
+ break;
+ case 'U':
+ buf->b_ind_unclosed_noignore = n;
+ break;
+ case 'W':
+ buf->b_ind_unclosed_wrapped = n;
+ break;
+ case 'w':
+ buf->b_ind_unclosed_whiteok = n;
+ break;
+ case 'm':
+ buf->b_ind_matching_paren = n;
+ break;
+ case 'M':
+ buf->b_ind_paren_prev = n;
+ break;
+ case ')':
+ buf->b_ind_maxparen = n;
+ break;
+ case '*':
+ buf->b_ind_maxcomment = n;
+ break;
+ case 'g':
+ buf->b_ind_scopedecl = n;
+ break;
+ case 'h':
+ buf->b_ind_scopedecl_code = n;
+ break;
+ case 'j':
+ buf->b_ind_java = n;
+ break;
+ case 'J':
+ buf->b_ind_js = n;
+ break;
+ case 'l':
+ buf->b_ind_keep_case_label = n;
+ break;
+ case '#':
+ buf->b_ind_hash_comment = n;
+ break;
+ case 'N':
+ buf->b_ind_cpp_namespace = n;
+ break;
+ case 'k':
+ buf->b_ind_if_for_while = n;
+ break;
+ case 'E':
+ buf->b_ind_cpp_extern_c = n;
+ break;
+ case 'P':
+ buf->b_ind_pragma = n;
+ break;
+ }
+ if (*p == ',') {
+ p++;
+ }
}
}
@@ -1803,14 +1910,14 @@ int get_c_indent(void)
int scope_amount;
int cur_amount = MAXCOL;
colnr_T col;
- char_u *theline;
- char_u *linecopy;
- pos_T *trypos;
- pos_T *comment_pos;
- pos_T *tryposBrace = NULL;
- pos_T tryposCopy;
+ char_u *theline;
+ char_u *linecopy;
+ pos_T *trypos;
+ pos_T *comment_pos;
+ pos_T *tryposBrace = NULL;
+ pos_T tryposCopy;
pos_T our_paren_pos;
- char_u *start;
+ char_u *start;
int start_brace;
#define BRACE_IN_COL0 1 // '{' is in column 0
#define BRACE_AT_START 2 // '{' is at start of line
@@ -1908,13 +2015,10 @@ int get_c_indent(void)
}
}
- /*
- * Is it a non-case label? Then that goes at the left margin too unless:
- * - JS flag is set.
- * - 'L' item has a positive value.
- */
- if (original_line_islabel && !curbuf->b_ind_js
- && curbuf->b_ind_jump_label < 0) {
+ // Is it a non-case label? Then that goes at the left margin too unless:
+ // - JS flag is set.
+ // - 'L' item has a positive value.
+ if (original_line_islabel && !curbuf->b_ind_js && curbuf->b_ind_jump_label < 0) {
amount = 0;
goto theend;
}
@@ -1952,7 +2056,7 @@ int get_c_indent(void)
char_u lead_start[COM_MAX_LEN]; // start-comment string
char_u lead_middle[COM_MAX_LEN]; // middle-comment string
char_u lead_end[COM_MAX_LEN]; // end-comment string
- char_u *p;
+ char_u *p;
int start_align = 0;
int start_off = 0;
int done = FALSE;
@@ -1981,8 +2085,9 @@ int get_c_indent(void)
}
}
- if (*p == ':')
- ++p;
+ if (*p == ':') {
+ p++;
+ }
(void)copy_option_part(&p, lead_end, COM_MAX_LEN, ",");
if (what == COM_START) {
STRCPY(lead_start, lead_end);
@@ -2010,17 +2115,18 @@ int get_c_indent(void)
amount = get_indent_lnum(curwin->w_cursor.lnum - 1);
break;
} else if (STRNCMP(ml_get(comment_pos->lnum) + comment_pos->col,
- lead_start, lead_start_len) != 0) {
- /* If the start comment string doesn't match with the
- * start of the comment, skip this entry. XXX */
+ lead_start, lead_start_len) != 0) {
+ // If the start comment string doesn't match with the
+ // start of the comment, skip this entry. XXX
continue;
}
}
- if (start_off != 0)
+ if (start_off != 0) {
amount += start_off;
- else if (start_align == COM_RIGHT)
+ } else if (start_align == COM_RIGHT) {
amount += vim_strsize(lead_start)
- vim_strsize(lead_middle);
+ }
break;
}
@@ -2045,18 +2151,16 @@ int get_c_indent(void)
* asterisk in the comment opener; otherwise, line up
* with the first character of the comment text.
*/
- if (done)
- ;
- else if (theline[0] == '*')
+ if (done) {
+ // skip
+ } else if (theline[0] == '*') {
amount += 1;
- else {
- /*
- * If we are more than one line away from the comment opener, take
- * the indent of the previous non-empty line. If 'cino' has "CO"
- * and we are just below the comment opener and there are any
- * white characters after it line up with the text after it;
- * otherwise, add the amount specified by "c" in 'cino'
- */
+ } else {
+ // If we are more than one line away from the comment opener, take
+ // the indent of the previous non-empty line. If 'cino' has "CO"
+ // and we are just below the comment opener and there are any
+ // white characters after it line up with the text after it;
+ // otherwise, add the amount specified by "c" in 'cino'
amount = -1;
for (lnum = cur_curpos.lnum - 1; lnum > comment_pos->lnum; lnum--) {
if (linewhite(lnum)) { // skip blank lines
@@ -2075,11 +2179,12 @@ int get_c_indent(void)
}
getvcol(curwin, comment_pos, &col, NULL, NULL);
amount = col;
- if (curbuf->b_ind_in_comment2 || *look == NUL)
+ if (curbuf->b_ind_in_comment2 || *look == NUL) {
amount += curbuf->b_ind_in_comment;
+ }
}
}
- goto theend;
+ goto theend;
}
// Are we looking at a ']' that has a match?
if (*skipwhite((char *)theline) == ']'
@@ -2091,18 +2196,19 @@ int get_c_indent(void)
// Are we inside parentheses or braces?
// XXX
if (((trypos = find_match_paren(curbuf->b_ind_maxparen)) != NULL
- && curbuf->b_ind_java == 0)
- || (tryposBrace = find_start_brace()) != NULL
- || trypos != NULL) {
+ && curbuf->b_ind_java == 0)
+ || (tryposBrace = find_start_brace()) != NULL
+ || trypos != NULL) {
if (trypos != NULL && tryposBrace != NULL) {
/* Both an unmatched '(' and '{' is found. Use the one which is
* closer to the current cursor position, set the other to NULL. */
if (trypos->lnum != tryposBrace->lnum
? trypos->lnum < tryposBrace->lnum
- : trypos->col < tryposBrace->col)
+ : trypos->col < tryposBrace->col) {
trypos = NULL;
- else
+ } else {
tryposBrace = NULL;
+ }
}
if (trypos != NULL) {
@@ -2133,16 +2239,16 @@ int get_c_indent(void)
}
// XXX
- if ((trypos = find_match_paren(
- corr_ind_maxparen(&cur_curpos))) != NULL
+ if ((trypos = find_match_paren(corr_ind_maxparen(&cur_curpos))) != NULL
&& trypos->lnum == our_paren_pos.lnum
&& trypos->col == our_paren_pos.col) {
amount = get_indent_lnum(lnum); // XXX
if (theline[0] == ')') {
if (our_paren_pos.lnum != lnum
- && cur_amount > amount)
+ && cur_amount > amount) {
cur_amount = amount;
+ }
amount = -1;
}
break;
@@ -2165,7 +2271,7 @@ int get_c_indent(void)
pos_T cursor_save = curwin->w_cursor;
pos_T outermost;
- char_u *line;
+ char_u *line;
trypos = &our_paren_pos;
do {
@@ -2188,7 +2294,7 @@ int get_c_indent(void)
look = (char_u *)skipwhite((char *)look);
if (*look == '(') {
linenr_T save_lnum = curwin->w_cursor.lnum;
- char_u *line;
+ char_u *line;
int look_col;
/* Ignore a '(' in front of the line that has a match before
@@ -2198,11 +2304,12 @@ int get_c_indent(void)
look_col = (int)(look - line);
curwin->w_cursor.col = look_col + 1;
if ((trypos = findmatchlimit(NULL, ')', 0,
- curbuf->b_ind_maxparen))
+ curbuf->b_ind_maxparen))
!= NULL
&& trypos->lnum == our_paren_pos.lnum
- && trypos->col < our_paren_pos.col)
+ && trypos->col < our_paren_pos.col) {
ignore_paren_col = trypos->col + 1;
+ }
curwin->w_cursor.lnum = save_lnum;
look = ml_get(our_paren_pos.lnum) + look_col;
@@ -2231,24 +2338,28 @@ int get_c_indent(void)
for (col = 0; col < our_paren_pos.col; ++col) {
switch (l[col]) {
case '(':
- case '{': ++n;
+ case '{':
+ n++;
break;
case ')':
- case '}': if (n > 1)
- --n;
+ case '}':
+ if (n > 1) {
+ n--;
+ }
break;
}
}
our_paren_pos.col = 0;
amount += n * curbuf->b_ind_unclosed_wrapped;
- } else if (curbuf->b_ind_unclosed_whiteok)
+ } else if (curbuf->b_ind_unclosed_whiteok) {
our_paren_pos.col++;
- else {
+ } else {
col = our_paren_pos.col + 1;
- while (ascii_iswhite(l[col]))
+ while (ascii_iswhite(l[col])) {
col++;
+ }
if (l[col] != NUL) { // In case of trailing space
our_paren_pos.col = col;
} else {
@@ -2263,8 +2374,9 @@ int get_c_indent(void)
*/
if (our_paren_pos.col > 0) {
getvcol(curwin, &our_paren_pos, &col, NULL, NULL);
- if (cur_amount > (int)col)
+ if (cur_amount > (int)col) {
cur_amount = col;
+ }
}
}
@@ -2273,8 +2385,9 @@ int get_c_indent(void)
} else if ((curbuf->b_ind_unclosed == 0 && is_if_for_while == 0)
|| (!curbuf->b_ind_unclosed_noignore
&& *look == '(' && ignore_paren_col == 0)) {
- if (cur_amount != MAXCOL)
+ if (cur_amount != MAXCOL) {
amount = cur_amount;
+ }
} else {
/* Add b_ind_unclosed2 for each '(' before our matching one,
* but ignore (void) before the line (ignore_paren_col). */
@@ -2282,10 +2395,12 @@ int get_c_indent(void)
while ((int)our_paren_pos.col > ignore_paren_col) {
--our_paren_pos.col;
switch (*ml_get_pos(&our_paren_pos)) {
- case '(': amount += curbuf->b_ind_unclosed2;
+ case '(':
+ amount += curbuf->b_ind_unclosed2;
col = our_paren_pos.col;
break;
- case ')': amount -= curbuf->b_ind_unclosed2;
+ case ')':
+ amount -= curbuf->b_ind_unclosed2;
col = MAXCOL;
break;
}
@@ -2293,9 +2408,9 @@ int get_c_indent(void)
/* Use b_ind_unclosed once, when the first '(' is not inside
* braces */
- if (col == MAXCOL)
+ if (col == MAXCOL) {
amount += curbuf->b_ind_unclosed;
- else {
+ } else {
curwin->w_cursor.lnum = our_paren_pos.lnum;
curwin->w_cursor.col = col;
if (find_match_paren_after_brace(curbuf->b_ind_maxparen)) {
@@ -2312,12 +2427,13 @@ int get_c_indent(void)
* For a line starting with ')' use the minimum of the two
* positions, to avoid giving it more indent than the previous
* lines:
- * func_long_name( if (x
- * arg && yy
- * ) ^ not here ) ^ not here
+ * func_long_name( if (x
+ * arg && yy
+ * ) ^ not here ) ^ not here
*/
- if (cur_amount < amount)
+ if (cur_amount < amount) {
amount = cur_amount;
+ }
}
}
@@ -2346,10 +2462,11 @@ int get_c_indent(void)
if (*look == '{') {
getvcol(curwin, trypos, &col, NULL, NULL);
amount = col;
- if (*start == '{')
+ if (*start == '{') {
start_brace = BRACE_IN_COL0;
- else
+ } else {
start_brace = BRACE_AT_START;
+ }
} else {
// That opening brace might have been on a continuation
// line. If so, find the start of the line.
@@ -2364,9 +2481,9 @@ int get_c_indent(void)
}
// It could have been something like
- // case 1: if (asdf &&
- // ldfd) {
- // }
+ // case 1: if (asdf &&
+ // ldfd) {
+ // }
if ((curbuf->b_ind_js || curbuf->b_ind_keep_case_label)
&& cin_iscase((char_u *)skipwhite((char *)get_cursor_line_ptr()), false)) {
amount = get_indent();
@@ -2444,8 +2561,9 @@ int get_c_indent(void)
} else {
// Compensate for adding b_ind_open_extra later.
amount -= curbuf->b_ind_open_extra;
- if (amount < 0)
+ if (amount < 0) {
amount = 0;
+ }
}
}
@@ -2477,7 +2595,7 @@ int get_c_indent(void)
// the usual amount relative to the conditional
// that opens the block.
curwin->w_cursor = cur_curpos;
- for (;; ) {
+ for (;;) {
curwin->w_cursor.lnum--;
curwin->w_cursor.col = 0;
@@ -2501,10 +2619,11 @@ int get_c_indent(void)
/* nothing found (abuse curbuf->b_ind_maxparen as
* limit) assume terminated line (i.e. a variable
* initialization) */
- if (cont_amount > 0)
+ if (cont_amount > 0) {
amount = cont_amount;
- else if (!curbuf->b_ind_js)
+ } else if (!curbuf->b_ind_js) {
amount += ind_continuation;
+ }
break;
}
@@ -2528,8 +2647,9 @@ int get_c_indent(void)
continue;
}
- if (cin_nocode(l))
+ if (cin_nocode(l)) {
continue;
+ }
terminated = cin_isterminated(l, FALSE, TRUE);
@@ -2547,14 +2667,16 @@ int get_c_indent(void)
* declaration is split over multiple lines:
* cin_isfuncdecl returns FALSE then.
*/
- if (terminated == ',')
+ if (terminated == ',') {
break;
+ }
/* if it is an enum declaration or an assignment,
* we are done.
*/
- if (terminated != ';' && cin_isinit())
+ if (terminated != ';' && cin_isinit()) {
break;
+ }
// nothing useful found
if (terminated == 0 || terminated == '{') {
@@ -2568,12 +2690,13 @@ int get_c_indent(void)
// will take us back to the start of the line.
// XXX
trypos = NULL;
- if (find_last_paren(l, '(', ')'))
- trypos = find_match_paren(
- curbuf->b_ind_maxparen);
+ if (find_last_paren(l, '(', ')')) {
+ trypos = find_match_paren(curbuf->b_ind_maxparen);
+ }
- if (trypos == NULL && find_last_paren(l, '{', '}'))
+ if (trypos == NULL && find_last_paren(l, '{', '}')) {
trypos = find_start_brace();
+ }
if (trypos != NULL) {
curwin->w_cursor.lnum = trypos->lnum + 1;
@@ -2587,15 +2710,17 @@ int get_c_indent(void)
* int a,
* b;
*/
- if (cont_amount > 0)
+ if (cont_amount > 0) {
amount = cont_amount;
- else
+ } else {
amount += ind_continuation;
+ }
} else if (lookfor == LOOKFOR_UNTERM) {
- if (cont_amount > 0)
+ if (cont_amount > 0) {
amount = cont_amount;
- else
+ } else {
amount += ind_continuation;
+ }
} else {
if (lookfor != LOOKFOR_TERM
&& lookfor != LOOKFOR_CPP_BASECLASS
@@ -2612,13 +2737,15 @@ int get_c_indent(void)
* Looking for C++ namespace, need to look further
* back.
*/
- if (curwin->w_cursor.lnum == ourscope)
+ if (curwin->w_cursor.lnum == ourscope) {
continue;
+ }
if (curwin->w_cursor.lnum == 0
|| curwin->w_cursor.lnum
- < ourscope - FIND_NAMESPACE_LIM)
+ < ourscope - FIND_NAMESPACE_LIM) {
break;
+ }
l = get_cursor_line_ptr();
@@ -2646,8 +2773,9 @@ int get_c_indent(void)
break;
}
- if (cin_nocode(l))
+ if (cin_nocode(l)) {
continue;
+ }
}
}
break;
@@ -2672,25 +2800,25 @@ int get_c_indent(void)
if (iscase || cin_isscopedecl(l)) {
/* we are only looking for cpp base class
* declaration/initialization any longer */
- if (lookfor == LOOKFOR_CPP_BASECLASS)
+ if (lookfor == LOOKFOR_CPP_BASECLASS) {
break;
+ }
/* When looking for a "do" we are not interested in
* labels. */
- if (whilelevel > 0)
+ if (whilelevel > 0) {
continue;
+ }
- /*
- * case xx:
- * c = 99 + <- this indent plus continuation
- **-> here;
- */
- if (lookfor == LOOKFOR_UNTERM
- || lookfor == LOOKFOR_ENUM_OR_INIT) {
- if (cont_amount > 0)
+ // case xx:
+ // c = 99 + <- this indent plus continuation
+ // -> here;
+ if (lookfor == LOOKFOR_UNTERM || lookfor == LOOKFOR_ENUM_OR_INIT) {
+ if (cont_amount > 0) {
amount = cont_amount;
- else
+ } else {
amount += ind_continuation;
+ }
break;
}
@@ -2713,40 +2841,39 @@ int get_c_indent(void)
n = get_indent_nolabel(curwin->w_cursor.lnum); // XXX
- /*
- * case xx: if (cond) <- line up with this if
- * y = y + 1;
- * -> s = 99;
- *
- * case xx:
- * if (cond) <- line up with this line
- * y = y + 1;
- * -> s = 99;
- */
+ // case xx: if (cond) <- line up with this if
+ // y = y + 1;
+ // -> s = 99;
+ //
+ // case xx:
+ // if (cond) <- line up with this line
+ // y = y + 1;
+ // -> s = 99;
if (lookfor == LOOKFOR_TERM) {
- if (n)
+ if (n) {
amount = n;
+ }
- if (!lookfor_break)
+ if (!lookfor_break) {
break;
+ }
}
- /*
- * case xx: x = x + 1; <- line up with this x
- * -> y = y + 1;
- *
- * case xx: if (cond) <- line up with this if
- * -> y = y + 1;
- */
+ // case xx: x = x + 1; <- line up with this x
+ // -> y = y + 1;
+ //
+ // case xx: if (cond) <- line up with this if
+ // -> y = y + 1;
if (n) {
amount = n;
l = after_label(get_cursor_line_ptr());
if (l != NULL && cin_is_cinword(l)) {
- if (theline[0] == '{')
+ if (theline[0] == '{') {
amount += curbuf->b_ind_open_extra;
- else
+ } else {
amount += curbuf->b_ind_level
+ curbuf->b_ind_no_brace;
+ }
}
break;
}
@@ -2755,8 +2882,8 @@ int get_c_indent(void)
* Try to get the indent of a statement before the switch
* label. If nothing is found, line up relative to the
* switch label.
- * break; <- may line up with this line
- * case xx:
+ * break; <- may line up with this line
+ * case xx:
* -> y = 1;
*/
scope_amount = get_indent() + (iscase // XXX
@@ -2785,8 +2912,9 @@ int get_c_indent(void)
*/
if (!curbuf->b_ind_js && cin_islabel()) {
l = after_label(get_cursor_line_ptr());
- if (l == NULL || cin_nocode(l))
+ if (l == NULL || cin_nocode(l)) {
continue;
+ }
}
/*
@@ -2811,10 +2939,11 @@ int get_c_indent(void)
}
if (n) {
if (lookfor == LOOKFOR_UNTERM) {
- if (cont_amount > 0)
+ if (cont_amount > 0) {
amount = cont_amount;
- else
+ } else {
amount += ind_continuation;
+ }
} else if (theline[0] == '{') {
// Need to find start of the declaration.
lookfor = LOOKFOR_UNTERM;
@@ -2829,10 +2958,11 @@ int get_c_indent(void)
/* only look, whether there is a cpp base class
* declaration or initialization before the opening brace.
*/
- if (cin_isterminated(l, TRUE, FALSE))
+ if (cin_isterminated(l, true, false)) {
break;
- else
+ } else {
continue;
+ }
}
/*
@@ -2841,7 +2971,7 @@ int get_c_indent(void)
* there is another unterminated statement behind, eg:
* 123,
* sizeof
- * here
+ * here
* Otherwise check whether it is an enumeration or structure
* initialisation (not indented) or a variable declaration
* (indented).
@@ -2849,7 +2979,7 @@ int get_c_indent(void)
terminated = cin_isterminated(l, FALSE, TRUE);
if (js_cur_has_key) {
- js_cur_has_key = false; // only check the first line
+ js_cur_has_key = false; // only check the first line
if (curbuf->b_ind_js && terminated == ',') {
// For Javascript we might be inside an object:
// key: something, <- align with this
@@ -2893,8 +3023,8 @@ int get_c_indent(void)
}
// If we're in the middle of a paren thing, Go back to the line
// that starts it so we can get the right prevailing indent
- // if ( foo &&
- // bar )
+ // if ( foo &&
+ // bar )
// Position the cursor over the rightmost paren, so that
// matching it will take us back to the start of the line.
@@ -2910,15 +3040,16 @@ int get_c_indent(void)
// If we are looking for ',', we also look for matching
// braces.
if (trypos == NULL && terminated == ','
- && find_last_paren(l, '{', '}'))
+ && find_last_paren(l, '{', '}')) {
trypos = find_start_brace();
+ }
if (trypos != NULL) {
/*
* Check if we are on a case label now. This is
* handled above.
* case xx: if ( asdf &&
- * asdf)
+ * asdf)
*/
curwin->w_cursor = *trypos;
l = get_cursor_line_ptr();
@@ -2933,22 +3064,23 @@ int get_c_indent(void)
* Skip over continuation lines to find the one to get the
* indent from
* char *usethis = "bla\
- * bla",
+ * bla",
* here;
*/
if (terminated == ',') {
while (curwin->w_cursor.lnum > 1) {
l = ml_get(curwin->w_cursor.lnum - 1);
- if (*l == NUL || l[STRLEN(l) - 1] != '\\')
+ if (*l == NUL || l[STRLEN(l) - 1] != '\\') {
break;
- --curwin->w_cursor.lnum;
+ }
+ curwin->w_cursor.lnum--;
curwin->w_cursor.col = 0;
}
}
/*
* Get indent and pointer to text for current line,
- * ignoring any jump label. XXX
+ * ignoring any jump label. XXX
*/
if (curbuf->b_ind_js) {
cur_amount = get_indent();
@@ -2958,9 +3090,9 @@ int get_c_indent(void)
/*
* If this is just above the line we are indenting, and it
* starts with a '{', line it up with this line.
- * while (not)
- * -> {
- * }
+ * while (not)
+ * -> {
+ * }
*/
if (terminated != ',' && lookfor != LOOKFOR_TERM
&& theline[0] == '{') {
@@ -2969,8 +3101,8 @@ int get_c_indent(void)
* Only add b_ind_open_extra when the current line
* doesn't start with a '{', which must have a match
* in the same line (scope is the same). Probably:
- * { 1, 2 },
- * -> { 3, 4 }
+ * { 1, 2 },
+ * -> { 3, 4 }
*/
if (*skipwhite((char *)l) != '{') {
amount += curbuf->b_ind_open_extra;
@@ -2997,29 +3129,31 @@ int get_c_indent(void)
// -> here;
if (lookfor == LOOKFOR_UNTERM
|| lookfor == LOOKFOR_ENUM_OR_INIT) {
- if (cont_amount > 0)
+ if (cont_amount > 0) {
amount = cont_amount;
- else
+ } else {
amount += ind_continuation;
+ }
break;
}
/*
* If this is just above the line we are indenting, we
* are finished.
- * while (not)
- * -> here;
+ * while (not)
+ * -> here;
* Otherwise this indent can be used when the line
* before this is terminated.
- * yyy;
- * if (stat)
- * while (not)
- * xxx;
- * -> here;
+ * yyy;
+ * if (stat)
+ * while (not)
+ * xxx;
+ * -> here;
*/
amount = cur_amount;
- if (theline[0] == '{')
+ if (theline[0] == '{') {
amount += curbuf->b_ind_open_extra;
+ }
if (lookfor != LOOKFOR_TERM) {
amount += curbuf->b_ind_level
+ curbuf->b_ind_no_brace;
@@ -3030,14 +3164,15 @@ int get_c_indent(void)
* Special trick: when expecting the while () after a
* do, line up with the while()
* do
- * x = 1;
+ * x = 1;
* -> here
*/
l = (char_u *)skipwhite((char *)get_cursor_line_ptr());
if (cin_isdo(l)) {
- if (whilelevel == 0)
+ if (whilelevel == 0) {
break;
- --whilelevel;
+ }
+ whilelevel--;
}
/*
@@ -3050,14 +3185,16 @@ int get_c_indent(void)
/* If we're looking at "} else", let's make sure we
* find the opening brace of the enclosing scope,
* not the one from "if () {". */
- if (*l == '}')
+ if (*l == '}') {
curwin->w_cursor.col =
(colnr_T)(l - get_cursor_line_ptr()) + 1;
+ }
if ((trypos = find_start_brace()) == NULL
|| find_match(LOOKFOR_IF, trypos->lnum)
- == FAIL)
+ == FAIL) {
break;
+ }
}
}
/*
@@ -3071,8 +3208,8 @@ int get_c_indent(void)
* Found two unterminated lines on a row, line up with
* the last one.
* c = 99 +
- * 100 +
- * -> here;
+ * 100 +
+ * -> here;
*/
if (lookfor == LOOKFOR_UNTERM) {
// When line ends in a comma add extra indent
@@ -3089,8 +3226,9 @@ int get_c_indent(void)
* opening brace or we are looking just for
* enumerations/initializations. */
if (terminated == ',') {
- if (curbuf->b_ind_cpp_baseclass == 0)
+ if (curbuf->b_ind_cpp_baseclass == 0) {
break;
+ }
lookfor = LOOKFOR_CPP_BASECLASS;
continue;
@@ -3104,15 +3242,15 @@ int get_c_indent(void)
} else {
// Found first unterminated line on a row, may
// line up with this line, remember its indent
- // 100 + // NOLINT(whitespace/tab)
- // -> here; // NOLINT(whitespace/tab)
+ // 100 + // NOLINT(whitespace/tab)
+ // -> here; // NOLINT(whitespace/tab)
l = get_cursor_line_ptr();
amount = cur_amount;
n = (int)STRLEN(l);
if (terminated == ','
&& (*skipwhite((char *)l) == ']'
- || (n >=2 && l[n - 2] == ']'))) {
+ || (n >= 2 && l[n - 2] == ']'))) {
break;
}
@@ -3160,7 +3298,7 @@ int get_c_indent(void)
&& *l != NUL
&& l[STRLEN(l) - 1] == '\\') {
// XXX
- cont_amount = cin_get_equal_amount( curwin->w_cursor.lnum);
+ cont_amount = cin_get_equal_amount(curwin->w_cursor.lnum);
}
if (lookfor != LOOKFOR_TERM
&& lookfor != LOOKFOR_JS_KEY
@@ -3180,16 +3318,17 @@ int get_c_indent(void)
/*
* Found an unterminated line after a while ();, line up
* with the last one.
- * while (cond);
- * 100 + <- line up with this one
- * -> here;
+ * while (cond);
+ * 100 + <- line up with this one
+ * -> here;
*/
if (lookfor == LOOKFOR_UNTERM
|| lookfor == LOOKFOR_ENUM_OR_INIT) {
- if (cont_amount > 0)
+ if (cont_amount > 0) {
amount = cont_amount;
- else
+ } else {
amount += ind_continuation;
+ }
break;
}
@@ -3235,35 +3374,37 @@ int get_c_indent(void)
/*
* Found a terminated line above an unterminated line. Add
* the amount for a continuation line.
- * x = 1;
- * y = foo +
- * -> here;
+ * x = 1;
+ * y = foo +
+ * -> here;
* or
- * int x = 1;
- * int foo,
- * -> here;
+ * int x = 1;
+ * int foo,
+ * -> here;
*/
if (lookfor == LOOKFOR_UNTERM
|| lookfor == LOOKFOR_ENUM_OR_INIT) {
- if (cont_amount > 0)
+ if (cont_amount > 0) {
amount = cont_amount;
- else
+ } else {
amount += ind_continuation;
+ }
break;
}
/*
* Found a terminated line above a terminated line or "if"
* etc. line. Use the amount of the line below us.
- * x = 1; x = 1;
- * if (asdf) y = 2;
- * while (asdf) ->here;
- * here;
+ * x = 1; x = 1;
+ * if (asdf) y = 2;
+ * while (asdf) ->here;
+ * here;
* ->foo;
*/
if (lookfor == LOOKFOR_TERM) {
- if (!lookfor_break && whilelevel == 0)
+ if (!lookfor_break && whilelevel == 0) {
break;
+ }
}
/*
* First line above the one we're indenting is terminated.
@@ -3276,20 +3417,17 @@ int get_c_indent(void)
* that matching it will take us back to the start of
* the line. Helps for:
* func(asdr,
- * asdfasdf);
+ * asdfasdf);
* here;
*/
term_again:
l = get_cursor_line_ptr();
if (find_last_paren(l, '(', ')')
- && (trypos = find_match_paren(
- curbuf->b_ind_maxparen)) != NULL) {
- /*
- * Check if we are on a case label now. This is
- * handled above.
- * case xx: if ( asdf &&
- * asdf)
- */
+ && (trypos = find_match_paren(curbuf->b_ind_maxparen)) != NULL) {
+ // Check if we are on a case label now. This is
+ // handled above.
+ // case xx: if ( asdf &&
+ // asdf)
curwin->w_cursor = *trypos;
l = get_cursor_line_ptr();
if (cin_iscase(l, false) || cin_isscopedecl(l)) {
@@ -3302,10 +3440,10 @@ term_again:
/* When aligning with the case statement, don't align
* with a statement after it.
* case 1: { <-- don't use this { position
- * stat;
+ * stat;
* }
* case 2:
- * stat;
+ * stat;
* }
*/
iscase = curbuf->b_ind_keep_case_label && cin_iscase(l, false);
@@ -3316,8 +3454,9 @@ term_again:
*/
amount = skip_label(curwin->w_cursor.lnum, &l);
- if (theline[0] == '{')
+ if (theline[0] == '{') {
amount += curbuf->b_ind_open_extra;
+ }
// See remark above: "Only add b_ind_open_extra.."
l = (char_u *)skipwhite((char *)l);
if (*l == '{') {
@@ -3329,7 +3468,7 @@ term_again:
* When a terminated line starts with "else" skip to
* the matching "if":
* else 3;
- * indent this;
+ * indent this;
* Need to use the scope of this "else". XXX
* If whilelevel != 0 continue looking for a "do {".
*/
@@ -3339,8 +3478,9 @@ term_again:
&& whilelevel == 0) {
if ((trypos = find_start_brace()) == NULL
|| find_match(LOOKFOR_IF, trypos->lnum)
- == FAIL)
+ == FAIL) {
break;
+ }
continue;
}
@@ -3355,9 +3495,10 @@ term_again:
// if not "else {" check for terminated again
// but skip block for "} else {"
l = cin_skipcomment(get_cursor_line_ptr());
- if (*l == '}' || !cin_iselse(l))
+ if (*l == '}' || !cin_iselse(l)) {
goto term_again;
- ++curwin->w_cursor.lnum;
+ }
+ curwin->w_cursor.lnum++;
curwin->w_cursor.col = 0;
}
}
@@ -3390,8 +3531,8 @@ term_again:
// of a function
if (theline[0] == '{') {
- amount = curbuf->b_ind_first_open;
- goto theend;
+ amount = curbuf->b_ind_first_open;
+ goto theend;
}
/*
* If the NEXT line is a function declaration, the current
@@ -3401,14 +3542,13 @@ term_again:
* contains { or }: "void f() {\n if (1)"
*/
if (cur_curpos.lnum < curbuf->b_ml.ml_line_count
- && !cin_nocode(theline)
- && vim_strchr(theline, '{') == NULL
- && vim_strchr(theline, '}') == NULL
- && !cin_ends_in(theline, (char_u *)":", NULL)
- && !cin_ends_in(theline, (char_u *)",", NULL)
- && cin_isfuncdecl(NULL, cur_curpos.lnum + 1,
- cur_curpos.lnum + 1)
- && !cin_isterminated(theline, false, true)) {
+ && !cin_nocode(theline)
+ && vim_strchr((char *)theline, '{') == NULL
+ && vim_strchr((char *)theline, '}') == NULL
+ && !cin_ends_in(theline, (char_u *)":", NULL)
+ && !cin_ends_in(theline, (char_u *)",", NULL)
+ && cin_isfuncdecl(NULL, cur_curpos.lnum + 1, cur_curpos.lnum + 1)
+ && !cin_isterminated(theline, false, true)) {
amount = curbuf->b_ind_func_type;
goto theend;
}
@@ -3451,8 +3591,9 @@ term_again:
continue;
}
- if (cin_nocode(l))
+ if (cin_nocode(l)) {
continue;
+ }
/*
* If the previous line ends in ',', use one level of
@@ -3477,23 +3618,26 @@ term_again:
/* For a line ending in ',' that is a continuation line go
* back to the first line with a backslash:
* char *foo = "bla\
- * bla",
+ * bla",
* here;
*/
while (n == 0 && curwin->w_cursor.lnum > 1) {
l = ml_get(curwin->w_cursor.lnum - 1);
- if (*l == NUL || l[STRLEN(l) - 1] != '\\')
+ if (*l == NUL || l[STRLEN(l) - 1] != '\\') {
break;
- --curwin->w_cursor.lnum;
+ }
+ curwin->w_cursor.lnum--;
curwin->w_cursor.col = 0;
}
amount = get_indent(); // XXX
- if (amount == 0)
+ if (amount == 0) {
amount = cin_first_id_amount();
- if (amount == 0)
+ }
+ if (amount == 0) {
amount = ind_continuation;
+ }
break;
}
@@ -3514,14 +3658,14 @@ term_again:
break;
}
- /* (matching {)
- * If the previous line ends on '};' (maybe followed by
- * comments) align at column 0. For example:
- * char *string_array[] = { "foo",
- * / * x * / "b};ar" }; / * foobar * /
- */
- if (cin_ends_in(l, (char_u *)"};", NULL))
+ // (matching {)
+ // If the previous line ends on '};' (maybe followed by
+ // comments) align at column 0. For example:
+ // char *string_array[] = { "foo",
+ // / * x * / "b};ar" }; / * foobar * /
+ if (cin_ends_in(l, (char_u *)"};", NULL)) {
break;
+ }
// If the previous line ends on '[' we are probably in an
// array constant:
@@ -3548,8 +3692,9 @@ term_again:
}
}
if (curwin->w_cursor.lnum > 0
- && cin_ends_in(look, (char_u *)"}", NULL))
+ && cin_ends_in(look, (char_u *)"}", NULL)) {
break;
+ }
curwin->w_cursor = curpos_save;
}
@@ -3574,8 +3719,9 @@ term_again:
if (cin_ends_in(l, (char_u *)";", NULL)) {
l = ml_get(curwin->w_cursor.lnum - 1);
if (cin_ends_in(l, (char_u *)",", NULL)
- || (*l != NUL && l[STRLEN(l) - 1] == '\\'))
+ || (*l != NUL && l[STRLEN(l) - 1] == '\\')) {
break;
+ }
l = get_cursor_line_ptr();
}
@@ -3588,8 +3734,9 @@ term_again:
*/
(void)find_last_paren(l, '(', ')');
- if ((trypos = find_match_paren(curbuf->b_ind_maxparen)) != NULL)
+ if ((trypos = find_match_paren(curbuf->b_ind_maxparen)) != NULL) {
curwin->w_cursor = *trypos;
+ }
amount = get_indent(); // XXX
break;
}
@@ -3599,26 +3746,28 @@ term_again:
amount += curbuf->b_ind_comment;
}
- /* add extra indent if the previous line ended in a backslash:
- * "asdfasdf\
- * here";
- * char *foo = "asdf\
- * here";
- */
+
+ // add extra indent if the previous line ended in a backslash:
+ // "asdfasdf{backslash}
+ // here";
+ // char *foo = "asdf{backslash}
+ // here";
if (cur_curpos.lnum > 1) {
l = ml_get(cur_curpos.lnum - 1);
if (*l != NUL && l[STRLEN(l) - 1] == '\\') {
cur_amount = cin_get_equal_amount(cur_curpos.lnum - 1);
- if (cur_amount > 0)
+ if (cur_amount > 0) {
amount = cur_amount;
- else if (cur_amount == 0)
+ } else if (cur_amount == 0) {
amount += ind_continuation;
+ }
}
}
theend:
- if (amount < 0)
+ if (amount < 0) {
amount = 0;
+ }
laterend:
// put the cursor back where it belongs
@@ -3673,16 +3822,18 @@ static int find_match(int lookfor, linenr_T ourscope)
* back than the one enclosing the else, we're
* out of luck too.
*/
- if (theirscope->lnum < ourscope)
+ if (theirscope->lnum < ourscope) {
break;
+ }
/*
* and if they're enclosed in a *deeper* brace,
* then we can ignore it because it's in a
* different scope...
*/
- if (theirscope->lnum > ourscope)
+ if (theirscope->lnum > ourscope) {
continue;
+ }
/*
* if it was an "else" (that's not an "else if")
@@ -3692,8 +3843,9 @@ static int find_match(int lookfor, linenr_T ourscope)
look = cin_skipcomment(get_cursor_line_ptr());
if (cin_iselse(look)) {
mightbeif = cin_skipcomment(look + 4);
- if (!cin_isif(mightbeif))
- ++elselevel;
+ if (!cin_isif(mightbeif)) {
+ elselevel++; // NOLINT(readability/braces)
+ }
continue;
}
@@ -3714,8 +3866,9 @@ static int find_match(int lookfor, linenr_T ourscope)
* When looking for an "if" ignore "while"s that
* get in the way.
*/
- if (elselevel == 0 && lookfor == LOOKFOR_IF)
+ if (elselevel == 0 && lookfor == LOOKFOR_IF) {
whilelevel = 0;
+ }
}
// If it's a "do" decrement whilelevel
@@ -3740,8 +3893,9 @@ static int find_match(int lookfor, linenr_T ourscope)
*/
void do_c_expr_indent(void)
{
- if (*curbuf->b_p_inde != NUL)
+ if (*curbuf->b_p_inde != NUL) {
fixthisline(get_expr_indent);
- else
+ } else {
fixthisline(get_c_indent);
+ }
}
diff --git a/src/nvim/keycodes.h b/src/nvim/keycodes.h
index 631a9f68d3..f6c576f6ee 100644
--- a/src/nvim/keycodes.h
+++ b/src/nvim/keycodes.h
@@ -473,7 +473,7 @@ enum key_extra {
#define MAX_KEY_CODE_LEN 6
#define FLAG_CPO_BSLASH 0x01
-#define CPO_TO_CPO_FLAGS ((vim_strchr(p_cpo, CPO_BSLASH) == NULL) \
+#define CPO_TO_CPO_FLAGS ((vim_strchr((char *)p_cpo, CPO_BSLASH) == NULL) \
? 0 \
: FLAG_CPO_BSLASH)
diff --git a/src/nvim/lib/kvec.h b/src/nvim/lib/kvec.h
index 34332ba34b..68841e0af8 100644
--- a/src/nvim/lib/kvec.h
+++ b/src/nvim/lib/kvec.h
@@ -94,17 +94,26 @@
memcpy((v1).items, (v0).items, sizeof((v1).items[0]) * (v0).size); \
} while (0)
-#define kv_splice(v1, v0) \
+/// fit at least "len" more items
+#define kv_ensure_space(v, len) \
do { \
- if ((v1).capacity < (v1).size + (v0).size) { \
- (v1).capacity = (v1).size + (v0).size; \
- kv_roundup32((v1).capacity); \
- kv_resize((v1), (v1).capacity); \
+ if ((v).capacity < (v).size + len) { \
+ (v).capacity = (v).size + len; \
+ kv_roundup32((v).capacity); \
+ kv_resize((v), (v).capacity); \
} \
- memcpy((v1).items + (v1).size, (v0).items, sizeof((v1).items[0]) * (v0).size); \
- (v1).size = (v1).size + (v0).size; \
} while (0)
+#define kv_concat_len(v, data, len) \
+ do { \
+ kv_ensure_space(v, len); \
+ memcpy((v).items + (v).size, data, sizeof((v).items[0]) * len); \
+ (v).size = (v).size + len; \
+ } while (0)
+
+#define kv_concat(v, str) kv_concat_len(v, str, STRLEN(str))
+#define kv_splice(v1, v0) kv_concat_len(v1, (v0).items, (v0).size)
+
#define kv_pushp(v) \
((((v).size == (v).capacity) ? (kv_resize_full(v), 0) : 0), \
((v).items + ((v).size++)))
@@ -123,6 +132,8 @@
: 0UL)), \
&(v).items[(i)]))
+#define kv_printf(v, ...) kv_do_printf(&(v), __VA_ARGS__)
+
/// Type of a vector with a few first members allocated on stack
///
/// Is compatible with #kv_A, #kv_pop, #kv_size, #kv_max, #kv_last.
diff --git a/src/nvim/lua/stdlib.c b/src/nvim/lua/stdlib.c
index 52a9a1a84f..79e21e518c 100644
--- a/src/nvim/lua/stdlib.c
+++ b/src/nvim/lua/stdlib.c
@@ -295,7 +295,7 @@ int nlua_regex(lua_State *lstate)
TRY_WRAP({
try_start();
- prog = vim_regcomp((char_u *)text, RE_AUTO | RE_MAGIC | RE_STRICT);
+ prog = vim_regcomp((char *)text, RE_AUTO | RE_MAGIC | RE_STRICT);
try_end(&err);
});
diff --git a/src/nvim/macros.h b/src/nvim/macros.h
index d57ab65d45..c9c424568d 100644
--- a/src/nvim/macros.h
+++ b/src/nvim/macros.h
@@ -56,12 +56,14 @@
// Returns empty string if it is NULL.
#define EMPTY_IF_NULL(x) (char *)((x) ? (x) : (char_u *)"")
-// Adjust chars in a language according to 'langmap' option.
-// NOTE that there is no noticeable overhead if 'langmap' is not set.
-// When set the overhead for characters < 256 is small.
-// Don't apply 'langmap' if the character comes from the Stuff buffer or from a
-// mapping and the langnoremap option was set.
-// The do-while is just to ignore a ';' after the macro.
+/// Adjust chars in a language according to 'langmap' option.
+/// NOTE that there is no noticeable overhead if 'langmap' is not set.
+/// When set the overhead for characters < 256 is small.
+/// Don't apply 'langmap' if the character comes from the Stuff buffer or from a
+/// mapping and the langnoremap option was set.
+/// The do-while is just to ignore a ';' after the macro.
+///
+/// -V:LANGMAP_ADJUST:560
#define LANGMAP_ADJUST(c, condition) \
do { \
if (*p_langmap \
diff --git a/src/nvim/main.c b/src/nvim/main.c
index 1cf3cdd872..80a856e91a 100644
--- a/src/nvim/main.c
+++ b/src/nvim/main.c
@@ -643,8 +643,7 @@ void getout(int exitval)
bufref_T bufref;
set_bufref(&bufref, buf);
- apply_autocmds(EVENT_BUFWINLEAVE, buf->b_fname,
- buf->b_fname, false, buf);
+ apply_autocmds(EVENT_BUFWINLEAVE, buf->b_fname, buf->b_fname, false, buf);
if (bufref_valid(&bufref)) {
buf_set_changedtick(buf, -1); // note that we did it already
}
diff --git a/src/nvim/mark.c b/src/nvim/mark.c
index 222b2a3cf3..6de8d5dfd5 100644
--- a/src/nvim/mark.c
+++ b/src/nvim/mark.c
@@ -717,7 +717,7 @@ static void show_one_mark(int c, char_u *arg, pos_T *p, char_u *name_arg, int cu
}
}
} else if (!got_int
- && (arg == NULL || vim_strchr(arg, c) != NULL)
+ && (arg == NULL || vim_strchr((char *)arg, c) != NULL)
&& p->lnum != 0) {
// don't output anything if 'q' typed at --more-- prompt
if (name == NULL && current) {
diff --git a/src/nvim/match.c b/src/nvim/match.c
index f10d63dd34..54f3bff472 100644
--- a/src/nvim/match.c
+++ b/src/nvim/match.c
@@ -65,7 +65,7 @@ static int match_add(win_T *wp, const char *const grp, const char *const pat, in
if ((hlg_id = syn_check_group(grp, strlen(grp))) == 0) {
return -1;
}
- if (pat != NULL && (regprog = vim_regcomp((char_u *)pat, RE_MAGIC)) == NULL) {
+ if (pat != NULL && (regprog = vim_regcomp((char *)pat, RE_MAGIC)) == NULL) {
semsg(_(e_invarg2), pat);
return -1;
}
diff --git a/src/nvim/mbyte.c b/src/nvim/mbyte.c
index c7408c6260..3868d65ab9 100644
--- a/src/nvim/mbyte.c
+++ b/src/nvim/mbyte.c
@@ -2289,7 +2289,7 @@ char_u *enc_locale(void)
// Make the name lowercase and replace '_' with '-'.
// Exception: "ja_JP.EUC" == "euc-jp", "zh_CN.EUC" = "euc-cn",
// "ko_KR.EUC" == "euc-kr"
- const char *p = (char *)vim_strchr((char_u *)s, '.');
+ const char *p = vim_strchr(s, '.');
if (p != NULL) {
if (p > s + 2 && !STRNICMP(p + 1, "EUC", 3)
&& !isalnum((int)p[4]) && p[4] != '-' && p[-3] == '_') {
diff --git a/src/nvim/memline.c b/src/nvim/memline.c
index 5ca33faec3..ac6bdfa1a4 100644
--- a/src/nvim/memline.c
+++ b/src/nvim/memline.c
@@ -531,8 +531,8 @@ void ml_open_file(buf_T *buf)
need_wait_return = true; // call wait_return later
no_wait_return++;
(void)semsg(_("E303: Unable to open swap file for \"%s\", recovery impossible"),
- buf_spname(buf) != NULL ? buf_spname(buf) : buf->b_fname);
- --no_wait_return;
+ buf_spname(buf) != NULL ? buf_spname(buf) : (char_u *)buf->b_fname);
+ no_wait_return--;
}
// don't try to open a swap file again
@@ -777,15 +777,14 @@ void ml_recover(bool checkext)
// If the file name ends in ".s[a-w][a-z]" we assume this is the swap file.
// Otherwise a search is done to find the swap file(s).
- fname = curbuf->b_fname;
+ fname = (char_u *)curbuf->b_fname;
if (fname == NULL) { // When there is no file name
fname = (char_u *)"";
}
len = (int)STRLEN(fname);
if (checkext && len >= 4
&& STRNICMP(fname + len - 4, ".s", 2) == 0
- && vim_strchr((char_u *)"abcdefghijklmnopqrstuvw",
- TOLOWER_ASC(fname[len - 2])) != NULL
+ && vim_strchr("abcdefghijklmnopqrstuvw", TOLOWER_ASC(fname[len - 2])) != NULL
&& ASCII_ISALPHA(fname[len - 1])) {
directly = true;
fname_used = vim_strsave(fname); // make a copy for mf_open()
@@ -1248,8 +1247,8 @@ theend:
if (serious_error && called_from_main) {
ml_close(curbuf, TRUE);
} else {
- apply_autocmds(EVENT_BUFREADPOST, NULL, curbuf->b_fname, FALSE, curbuf);
- apply_autocmds(EVENT_BUFWINENTER, NULL, curbuf->b_fname, FALSE, curbuf);
+ apply_autocmds(EVENT_BUFREADPOST, NULL, curbuf->b_fname, false, curbuf);
+ apply_autocmds(EVENT_BUFWINENTER, NULL, curbuf->b_fname, false, curbuf);
}
}
@@ -3321,10 +3320,10 @@ static void attention_message(buf_T *buf, char_u *fname)
msg_puts("\"\n");
const time_t swap_mtime = swapfile_info(fname);
msg_puts(_("While opening file \""));
- msg_outtrans(buf->b_fname);
+ msg_outtrans((char_u *)buf->b_fname);
msg_puts("\"\n");
FileInfo file_info;
- if (!os_fileinfo((char *)buf->b_fname, &file_info)) {
+ if (!os_fileinfo(buf->b_fname, &file_info)) {
msg_puts(_(" CANNOT BE FOUND"));
} else {
msg_puts(_(" dated: "));
@@ -3343,7 +3342,7 @@ static void attention_message(buf_T *buf, char_u *fname)
" Quit, or continue with caution.\n"));
msg_puts(_("(2) An edit session for this file crashed.\n"));
msg_puts(_(" If this is the case, use \":recover\" or \"vim -r "));
- msg_outtrans(buf->b_fname);
+ msg_outtrans((char_u *)buf->b_fname);
msg_puts(_("\"\n to recover the changes (see \":help recovery\").\n"));
msg_puts(_(" If you did this already, delete the swap file \""));
msg_outtrans(fname);
@@ -3423,7 +3422,7 @@ static char *findswapname(buf_T *buf, char **dirp, char *old_fname, bool *found_
char *fname;
size_t n;
char *dir_name;
- char *buf_fname = (char *)buf->b_fname;
+ char *buf_fname = buf->b_fname;
/*
* Isolate a directory name from *dirp and put it in dir_name.
@@ -3510,14 +3509,14 @@ static char *findswapname(buf_T *buf, char **dirp, char *old_fname, bool *found_
// give the ATTENTION message when there is an old swap file
// for the current file, and the buffer was not recovered.
if (differ == false && !(curbuf->b_flags & BF_RECOVERED)
- && vim_strchr(p_shm, SHM_ATTENTION) == NULL) {
+ && vim_strchr((char *)p_shm, SHM_ATTENTION) == NULL) {
int choice = 0;
process_still_running = false;
// It's safe to delete the swap file if all these are true:
// - the edited file exists
// - the swap file has no changes and looks OK
- if (os_path_exists(buf->b_fname) && swapfile_unchanged(fname)) {
+ if (os_path_exists((char_u *)buf->b_fname) && swapfile_unchanged(fname)) {
choice = 4;
if (p_verbose > 0) {
verb_msg(_("Found a swap file that is not useful, deleting it"));
diff --git a/src/nvim/menu.c b/src/nvim/menu.c
index 7b254f1b62..c1ce2eefe3 100644
--- a/src/nvim/menu.c
+++ b/src/nvim/menu.c
@@ -1301,7 +1301,7 @@ static char *menu_text(const char *str, int *mnemonic, char **actext)
char *text;
// Locate accelerator text, after the first TAB
- p = (char *)vim_strchr((char_u *)str, TAB);
+ p = vim_strchr(str, TAB);
if (p != NULL) {
if (actext != NULL) {
*actext = xstrdup(p + 1);
@@ -1314,7 +1314,7 @@ static char *menu_text(const char *str, int *mnemonic, char **actext)
// Find mnemonic characters "&a" and reduce "&&" to "&".
for (p = text; p != NULL;) {
- p = (char *)vim_strchr((char_u *)p, '&');
+ p = vim_strchr(p, '&');
if (p != NULL) {
if (p[1] == NUL) { // trailing "&"
break;
diff --git a/src/nvim/message.c b/src/nvim/message.c
index 52eafe6e26..9ab086f1ea 100644
--- a/src/nvim/message.c
+++ b/src/nvim/message.c
@@ -598,8 +598,8 @@ void msg_source(int attr)
/// If "emsg_skip" is set: never do error messages.
int emsg_not_now(void)
{
- if ((emsg_off > 0 && vim_strchr(p_debug, 'm') == NULL
- && vim_strchr(p_debug, 't') == NULL)
+ if ((emsg_off > 0 && vim_strchr((char *)p_debug, 'm') == NULL
+ && vim_strchr((char *)p_debug, 't') == NULL)
|| emsg_skip > 0) {
return TRUE;
}
@@ -623,14 +623,12 @@ static bool emsg_multiline(const char *s, bool multiline)
bool severe = emsg_severe;
emsg_severe = false;
- if (!emsg_off || vim_strchr(p_debug, 't') != NULL) {
- /*
- * Cause a throw of an error exception if appropriate. Don't display
- * the error message in this case. (If no matching catch clause will
- * be found, the message will be displayed later on.) "ignore" is set
- * when the message should be ignored completely (used for the
- * interrupt message).
- */
+ if (!emsg_off || vim_strchr((char *)p_debug, 't') != NULL) {
+ // Cause a throw of an error exception if appropriate. Don't display
+ // the error message in this case. (If no matching catch clause will
+ // be found, the message will be displayed later on.) "ignore" is set
+ // when the message should be ignored completely (used for the
+ // interrupt message).
if (cause_errthrow(s, severe, &ignore)) {
if (!ignore) {
did_emsg++;
@@ -1212,7 +1210,7 @@ void wait_return(int redraw)
if (c == K_LEFTMOUSE || c == K_MIDDLEMOUSE || c == K_RIGHTMOUSE
|| c == K_X1MOUSE || c == K_X2MOUSE) {
(void)jump_to_mouse(MOUSE_SETPOS, NULL, 0);
- } else if (vim_strchr((char_u *)"\r\n ", c) == NULL && c != Ctrl_C) {
+ } else if (vim_strchr("\r\n ", c) == NULL && c != Ctrl_C) {
// Put the character back in the typeahead buffer. Don't use the
// stuff buffer, because lmaps wouldn't work.
ins_char_typebuf(vgetc_char, vgetc_mod_mask);
diff --git a/src/nvim/normal.c b/src/nvim/normal.c
index a983ff4436..2826b7dad1 100644
--- a/src/nvim/normal.c
+++ b/src/nvim/normal.c
@@ -2191,7 +2191,7 @@ static int get_mouse_class(char_u *p)
// characters to be considered as a single word. These are things like
// "->", "/ *", "*=", "+=", "&=", "<=", ">=", "!=" etc. Otherwise, each
// character is in its own class.
- if (c != NUL && vim_strchr((char_u *)"-+*/%<>&|^!=", c) != NULL) {
+ if (c != NUL && vim_strchr("-+*/%<>&|^!=", c) != NULL) {
return 1;
}
return c;
@@ -3447,7 +3447,7 @@ dozet:
// and "zC" only in Visual mode. "zj" and "zk" are motion
// commands.
if (cap->nchar != 'f' && cap->nchar != 'F'
- && !(VIsual_active && vim_strchr((char_u *)"dcCoO", cap->nchar))
+ && !(VIsual_active && vim_strchr("dcCoO", cap->nchar))
&& cap->nchar != 'j' && cap->nchar != 'k'
&& checkclearop(cap->oap)) {
return;
@@ -3455,7 +3455,7 @@ dozet:
// For "z+", "z<CR>", "zt", "z.", "zz", "z^", "z-", "zb":
// If line number given, set cursor.
- if ((vim_strchr((char_u *)"+\r\nt.z^-b", nchar) != NULL)
+ if ((vim_strchr("+\r\nt.z^-b", nchar) != NULL)
&& cap->count0
&& cap->count0 != curwin->w_cursor.lnum) {
setpcmark();
@@ -3800,7 +3800,7 @@ dozet:
no_mapping--;
allow_keys--;
(void)add_to_showcmd(nchar);
- if (vim_strchr((char_u *)"gGwW", nchar) == NULL) {
+ if (vim_strchr("gGwW", nchar) == NULL) {
clearopbeep(cap->oap);
break;
}
@@ -4234,7 +4234,7 @@ static void nv_ident(cmdarg_T *cap)
p = (char_u *)buf + STRLEN(buf);
while (n-- > 0) {
// put a backslash before \ and some others
- if (vim_strchr(aux_ptr, *ptr) != NULL) {
+ if (vim_strchr((char *)aux_ptr, *ptr) != NULL) {
*p++ = '\\';
}
// When current byte is a part of multibyte character, copy all
@@ -4434,9 +4434,9 @@ static void nv_right(cmdarg_T *cap)
// <Space> wraps to next line if 'whichwrap' has 's'.
// 'l' wraps to next line if 'whichwrap' has 'l'.
// CURS_RIGHT wraps to next line if 'whichwrap' has '>'.
- if (((cap->cmdchar == ' ' && vim_strchr(p_ww, 's') != NULL)
- || (cap->cmdchar == 'l' && vim_strchr(p_ww, 'l') != NULL)
- || (cap->cmdchar == K_RIGHT && vim_strchr(p_ww, '>') != NULL))
+ if (((cap->cmdchar == ' ' && vim_strchr((char *)p_ww, 's') != NULL)
+ || (cap->cmdchar == 'l' && vim_strchr((char *)p_ww, 'l') != NULL)
+ || (cap->cmdchar == K_RIGHT && vim_strchr((char *)p_ww, '>') != NULL))
&& curwin->w_cursor.lnum < curbuf->b_ml.ml_line_count) {
// When deleting we also count the NL as a character.
// Set cap->oap->inclusive when last char in the line is
@@ -4504,9 +4504,9 @@ static void nv_left(cmdarg_T *cap)
// 'h' wraps to previous line if 'whichwrap' has 'h'.
// CURS_LEFT wraps to previous line if 'whichwrap' has '<'.
if ((((cap->cmdchar == K_BS || cap->cmdchar == Ctrl_H)
- && vim_strchr(p_ww, 'b') != NULL)
- || (cap->cmdchar == 'h' && vim_strchr(p_ww, 'h') != NULL)
- || (cap->cmdchar == K_LEFT && vim_strchr(p_ww, '<') != NULL))
+ && vim_strchr((char *)p_ww, 'b') != NULL)
+ || (cap->cmdchar == 'h' && vim_strchr((char *)p_ww, 'h') != NULL)
+ || (cap->cmdchar == K_LEFT && vim_strchr((char *)p_ww, '<') != NULL))
&& curwin->w_cursor.lnum > 1) {
curwin->w_cursor.lnum--;
coladvance(MAXCOL);
@@ -4802,7 +4802,7 @@ static void nv_brackets(cmdarg_T *cap)
// "[f" or "]f" : Edit file under the cursor (same as "gf")
if (cap->nchar == 'f') {
nv_gotofile(cap);
- } else if (vim_strchr((char_u *)"iI\011dD\004", cap->nchar) != NULL) {
+ } else if (vim_strchr("iI\011dD\004", cap->nchar) != NULL) {
// Find the occurrence(s) of the identifier or define under cursor
// in current and included files or jump to the first occurrence.
//
@@ -4831,8 +4831,8 @@ static void nv_brackets(cmdarg_T *cap)
MAXLNUM);
curwin->w_set_curswant = true;
}
- } else if ((cap->cmdchar == '[' && vim_strchr((char_u *)"{(*/#mM", cap->nchar) != NULL)
- || (cap->cmdchar == ']' && vim_strchr((char_u *)"})*/#mM", cap->nchar) != NULL)) {
+ } else if ((cap->cmdchar == '[' && vim_strchr("{(*/#mM", cap->nchar) != NULL)
+ || (cap->cmdchar == ']' && vim_strchr("})*/#mM", cap->nchar) != NULL)) {
// "[{", "[(", "]}" or "])": go to Nth unclosed '{', '(', '}' or ')'
// "[#", "]#": go to start/end of Nth innermost #if..#endif construct.
// "[/", "[*", "]/", "]*": go to Nth comment start/end.
@@ -5403,7 +5403,7 @@ static void n_swapchar(cmdarg_T *cap)
return;
}
- if (LINEEMPTY(curwin->w_cursor.lnum) && vim_strchr(p_ww, '~') == NULL) {
+ if (LINEEMPTY(curwin->w_cursor.lnum) && vim_strchr((char *)p_ww, '~') == NULL) {
clearopbeep(cap->oap);
return;
}
@@ -5419,7 +5419,7 @@ static void n_swapchar(cmdarg_T *cap)
did_change |= swapchar(cap->oap->op_type, &curwin->w_cursor);
inc_cursor();
if (gchar_cursor() == NUL) {
- if (vim_strchr(p_ww, '~') != NULL
+ if (vim_strchr((char *)p_ww, '~') != NULL
&& curwin->w_cursor.lnum < curbuf->b_ml.ml_line_count) {
curwin->w_cursor.lnum++;
curwin->w_cursor.col = 0;
@@ -5491,7 +5491,7 @@ static void v_visop(cmdarg_T *cap)
curwin->w_curswant = MAXCOL;
}
}
- cap->cmdchar = *(vim_strchr(trans, cap->cmdchar) + 1);
+ cap->cmdchar = (uint8_t)(*(vim_strchr((char *)trans, cap->cmdchar) + 1));
nv_operator(cap);
}
@@ -5754,7 +5754,8 @@ void start_selection(void)
/// When "c" is 'o' (checking for "mouse") then also when mapped.
void may_start_select(int c)
{
- VIsual_select = (c == 'o' || (stuff_empty() && typebuf_typed())) && vim_strchr(p_slm, c) != NULL;
+ VIsual_select = (c == 'o' || (stuff_empty() && typebuf_typed()))
+ && vim_strchr((char *)p_slm, c) != NULL;
}
/// Start Visual mode "c".
diff --git a/src/nvim/ops.c b/src/nvim/ops.c
index 7b3895333b..c3d7742307 100644
--- a/src/nvim/ops.c
+++ b/src/nvim/ops.c
@@ -800,7 +800,7 @@ char_u *get_expr_line_src(void)
bool valid_yank_reg(int regname, bool writing)
{
if ((regname > 0 && ASCII_ISALNUM(regname))
- || (!writing && vim_strchr((char_u *)"/.%:=", regname) != NULL)
+ || (!writing && vim_strchr("/.%:=", regname) != NULL)
|| regname == '#'
|| regname == '"'
|| regname == '-'
@@ -1184,7 +1184,7 @@ int do_execreg(int regname, int colon, int addcr, int silent)
if (free_str) {
xfree(str);
}
- retval = ins_typebuf((char *)escaped, remap, 0, true, silent);
+ retval = ins_typebuf(escaped, remap, 0, true, silent);
xfree(escaped);
if (retval == FAIL) {
return FAIL;
@@ -1247,7 +1247,7 @@ static int put_in_typebuf(char_u *s, bool esc, bool colon, int silent)
if (p == NULL) {
retval = FAIL;
} else {
- retval = ins_typebuf((char *)p, esc ? REMAP_NONE : REMAP_YES, 0, true, silent);
+ retval = ins_typebuf(p, esc ? REMAP_NONE : REMAP_YES, 0, true, silent);
}
if (esc) {
xfree(p);
@@ -1368,7 +1368,7 @@ bool get_spec_reg(int regname, char_u **argp, bool *allocated, bool errmsg)
if (errmsg) {
check_fname(); // will give emsg if not set
}
- *argp = curbuf->b_fname;
+ *argp = (char_u *)curbuf->b_fname;
return true;
case '#': // alternate file name
@@ -2507,10 +2507,7 @@ int op_change(oparg_T *oap)
l = oap->start.col;
if (oap->motion_type == kMTLineWise) {
l = 0;
- if (!p_paste && curbuf->b_p_si
- && !curbuf->b_p_cin) {
- can_si = true; // It's like opening a new line, do si
- }
+ can_si = may_do_si(); // Like opening a new line, do smart indent
}
// First delete the text in the region. In an empty buffer only need to
@@ -3131,8 +3128,8 @@ void do_put(int regname, yankreg_T *reg, int dir, long count, int flags)
if (y_array != NULL) {
y_array[y_size] = ptr;
}
- ++y_size;
- ptr = vim_strchr(ptr, '\n');
+ y_size++;
+ ptr = (char_u *)vim_strchr((char *)ptr, '\n');
if (ptr != NULL) {
if (y_array != NULL) {
*ptr = NUL;
@@ -3852,7 +3849,7 @@ void ex_display(exarg_T *eap)
type = 'b'; break;
}
- if (arg != NULL && vim_strchr(arg, name) == NULL) {
+ if (arg != NULL && vim_strchr((char *)arg, name) == NULL) {
continue; // did not ask for this register
}
@@ -3915,14 +3912,14 @@ void ex_display(exarg_T *eap)
// display last inserted text
if ((p = get_last_insert()) != NULL
- && (arg == NULL || vim_strchr(arg, '.') != NULL) && !got_int
+ && (arg == NULL || vim_strchr((char *)arg, '.') != NULL) && !got_int
&& !message_filtered(p)) {
msg_puts("\n c \". ");
dis_msg(p, true);
}
// display last command line
- if (last_cmdline != NULL && (arg == NULL || vim_strchr(arg, ':') != NULL)
+ if (last_cmdline != NULL && (arg == NULL || vim_strchr((char *)arg, ':') != NULL)
&& !got_int && !message_filtered(last_cmdline)) {
msg_puts("\n c \": ");
dis_msg(last_cmdline, false);
@@ -3930,14 +3927,14 @@ void ex_display(exarg_T *eap)
// display current file name
if (curbuf->b_fname != NULL
- && (arg == NULL || vim_strchr(arg, '%') != NULL) && !got_int
- && !message_filtered(curbuf->b_fname)) {
+ && (arg == NULL || vim_strchr((char *)arg, '%') != NULL) && !got_int
+ && !message_filtered((char_u *)curbuf->b_fname)) {
msg_puts("\n c \"% ");
- dis_msg(curbuf->b_fname, false);
+ dis_msg((char_u *)curbuf->b_fname, false);
}
// display alternate file name
- if ((arg == NULL || vim_strchr(arg, '%') != NULL) && !got_int) {
+ if ((arg == NULL || vim_strchr((char *)arg, '%') != NULL) && !got_int) {
char_u *fname;
linenr_T dummy;
@@ -3949,14 +3946,14 @@ void ex_display(exarg_T *eap)
// display last search pattern
if (last_search_pat() != NULL
- && (arg == NULL || vim_strchr(arg, '/') != NULL) && !got_int
+ && (arg == NULL || vim_strchr((char *)arg, '/') != NULL) && !got_int
&& !message_filtered(last_search_pat())) {
msg_puts("\n c \"/ ");
dis_msg(last_search_pat(), false);
}
// display last used expression
- if (expr_line != NULL && (arg == NULL || vim_strchr(arg, '=') != NULL)
+ if (expr_line != NULL && (arg == NULL || vim_strchr((char *)arg, '=') != NULL)
&& !got_int && !message_filtered(expr_line)) {
msg_puts("\n c \"= ");
dis_msg(expr_line, false);
@@ -5030,12 +5027,12 @@ int do_addsub(int op_type, pos_T *pos, int length, linenr_T Prenum1)
pos_T endpos;
colnr_T save_coladd = 0;
- const bool do_hex = vim_strchr(curbuf->b_p_nf, 'x') != NULL; // "heX"
- const bool do_oct = vim_strchr(curbuf->b_p_nf, 'o') != NULL; // "Octal"
- const bool do_bin = vim_strchr(curbuf->b_p_nf, 'b') != NULL; // "Bin"
- const bool do_alpha = vim_strchr(curbuf->b_p_nf, 'p') != NULL; // "alPha"
+ const bool do_hex = vim_strchr((char *)curbuf->b_p_nf, 'x') != NULL; // "heX"
+ const bool do_oct = vim_strchr((char *)curbuf->b_p_nf, 'o') != NULL; // "Octal"
+ const bool do_bin = vim_strchr((char *)curbuf->b_p_nf, 'b') != NULL; // "Bin"
+ const bool do_alpha = vim_strchr((char *)curbuf->b_p_nf, 'p') != NULL; // "alPha"
// "Unsigned"
- const bool do_unsigned = vim_strchr(curbuf->b_p_nf, 'u') != NULL;
+ const bool do_unsigned = vim_strchr((char *)curbuf->b_p_nf, 'u') != NULL;
if (virtual_active()) {
save_coladd = pos->coladd;
diff --git a/src/nvim/option.c b/src/nvim/option.c
index 2a2d2cce80..8267bcf9da 100644
--- a/src/nvim/option.c
+++ b/src/nvim/option.c
@@ -363,7 +363,7 @@ void set_init_1(bool clean_arg)
{
const char *shell = os_getenv("SHELL");
if (shell != NULL) {
- if (vim_strchr((const char_u *)shell, ' ') != NULL) {
+ if (vim_strchr(shell, ' ') != NULL) {
const size_t len = strlen(shell) + 3; // two quotes and a trailing NUL
char *const cmd = xmalloc(len);
snprintf(cmd, len, "\"%s\"", shell);
@@ -1099,7 +1099,7 @@ int do_set(char_u *arg, int opt_flags)
if (options[opt_idx].var == NULL) { // hidden option: skip
// Only give an error message when requesting the value of
// a hidden option, ignore setting it.
- if (vim_strchr((char_u *)"=:!&<", nextchar) == NULL
+ if (vim_strchr("=:!&<", nextchar) == NULL
&& (!(options[opt_idx].flags & P_BOOL)
|| nextchar == '?')) {
errmsg = _(e_unsupportedoption);
@@ -1153,7 +1153,7 @@ int do_set(char_u *arg, int opt_flags)
goto skip;
}
- if (vim_strchr((char_u *)"?=:!&<", nextchar) != NULL) {
+ if (vim_strchr("?=:!&<", nextchar) != NULL) {
arg += len;
if (nextchar == '&' && arg[1] == 'v' && arg[2] == 'i') {
if (arg[3] == 'm') { // "opt&vim": set to Vim default
@@ -1162,7 +1162,7 @@ int do_set(char_u *arg, int opt_flags)
arg += 2;
}
}
- if (vim_strchr((char_u *)"?!&<", nextchar) != NULL
+ if (vim_strchr("?!&<", nextchar) != NULL
&& arg[1] != NUL && !ascii_iswhite(arg[1])) {
errmsg = e_trailing;
goto skip;
@@ -1175,7 +1175,7 @@ int do_set(char_u *arg, int opt_flags)
//
if (nextchar == '?'
|| (prefix == 1
- && vim_strchr((char_u *)"=:&<", nextchar) == NULL
+ && vim_strchr("=:&<", nextchar) == NULL
&& !(flags & P_BOOL))) {
/*
* print value
@@ -1255,7 +1255,7 @@ int do_set(char_u *arg, int opt_flags)
errmsg = set_bool_option(opt_idx, varp, (int)value,
opt_flags);
} else { // Numeric or string.
- if (vim_strchr((const char_u *)"=:&<", nextchar) == NULL
+ if (vim_strchr("=:&<", nextchar) == NULL
|| prefix != 1) {
errmsg = e_invarg;
goto skip;
@@ -1609,14 +1609,14 @@ int do_set(char_u *arg, int opt_flags)
// 'whichwrap'
if (flags & P_ONECOMMA) {
if (*s != ',' && *(s + 1) == ','
- && vim_strchr(s + 2, *s) != NULL) {
+ && vim_strchr((char *)s + 2, *s) != NULL) {
// Remove the duplicated value and the next comma.
STRMOVE(s, s + 2);
continue;
}
} else {
if ((!(flags & P_COMMA) || *s != ',')
- && vim_strchr(s + 1, *s) != NULL) {
+ && vim_strchr((char *)s + 1, *s) != NULL) {
STRMOVE(s, s + 1);
continue;
}
@@ -1917,7 +1917,7 @@ char_u *find_shada_parameter(int type)
if (*p == 'n') { // 'n' is always the last one
break;
}
- p = vim_strchr(p, ','); // skip until next ','
+ p = (char_u *)vim_strchr((char *)p, ','); // skip until next ','
if (p == NULL) { // hit the end without finding parameter
break;
}
@@ -2336,7 +2336,7 @@ static bool valid_name(const char_u *val, const char *allowed)
{
for (const char_u *s = val; *s != NUL; s++) {
if (!ASCII_ISALNUM(*s)
- && vim_strchr((const char_u *)allowed, *s) == NULL) {
+ && vim_strchr(allowed, *s) == NULL) {
return false;
}
}
@@ -2514,8 +2514,8 @@ static char *did_set_string_option(int opt_idx, char_u **varp, bool new_value_al
if (opt_strings_flags(p_rdb, p_rdb_values, &rdb_flags, true) != OK) {
errmsg = e_invarg;
}
- } else if (varp == &p_sbo) { // 'scrollopt'
- if (check_opt_strings(p_sbo, p_scbopt_values, true) != OK) {
+ } else if (varp == (char_u **)&p_sbo) { // 'scrollopt'
+ if (check_opt_strings((char_u *)p_sbo, p_scbopt_values, true) != OK) {
errmsg = e_invarg;
}
} else if (varp == &p_ambw || (int *)varp == &p_emoji) {
@@ -2578,7 +2578,7 @@ ambw_end:
if (gvarp == &p_fenc) {
if (!MODIFIABLE(curbuf) && opt_flags != OPT_GLOBAL) {
errmsg = e_modifiable;
- } else if (vim_strchr(*varp, ',') != NULL) {
+ } else if (vim_strchr((char *)(*varp), ',') != NULL) {
// No comma allowed in 'fileencoding'; catches confusing it
// with 'fileencodings'.
errmsg = e_invarg;
@@ -2664,8 +2664,8 @@ ambw_end:
redraw_curbuf_later(NOT_VALID);
}
}
- } else if (varp == &p_ffs) { // 'fileformats'
- if (check_opt_strings(p_ffs, p_ff_values, true) != OK) {
+ } else if (varp == (char_u **)&p_ffs) { // 'fileformats'
+ if (check_opt_strings((char_u *)p_ffs, p_ff_values, true) != OK) {
errmsg = e_invarg;
}
} else if (gvarp == &p_mps) { // 'matchpairs'
@@ -2692,7 +2692,7 @@ ambw_end:
} else if (gvarp == &p_com) { // 'comments'
for (s = *varp; *s;) {
while (*s && *s != ':') {
- if (vim_strchr((char_u *)COM_ALL, *s) == NULL
+ if (vim_strchr(COM_ALL, *s) == NULL
&& !ascii_isdigit(*s) && *s != '-') {
errmsg = illegal_char(errbuf, errbuflen, *s);
break;
@@ -2771,7 +2771,7 @@ ambw_end:
free_oldval = (options[opt_idx].flags & P_ALLOCED);
for (s = p_shada; *s;) {
// Check it's a valid character
- if (vim_strchr((char_u *)"!\"%'/:<@cfhnrs", *s) == NULL) {
+ if (vim_strchr("!\"%'/:<@cfhnrs", *s) == NULL) {
errmsg = illegal_char(errbuf, errbuflen, *s);
break;
}
@@ -2835,7 +2835,7 @@ ambw_end:
int flagval = (varp == &p_titlestring) ? STL_IN_TITLE : STL_IN_ICON;
// NULL => statusline syntax
- if (vim_strchr(*varp, '%') && check_stl_option(*varp) == NULL) {
+ if (vim_strchr((char *)(*varp), '%') && check_stl_option(*varp) == NULL) {
stl_syntax |= flagval;
} else {
stl_syntax &= ~flagval;
@@ -2854,8 +2854,8 @@ ambw_end:
if (check_opt_strings(p_km, p_km_values, true) != OK) {
errmsg = e_invarg;
} else {
- km_stopsel = (vim_strchr(p_km, 'o') != NULL);
- km_startsel = (vim_strchr(p_km, 'a') != NULL);
+ km_stopsel = (vim_strchr((char *)p_km, 'o') != NULL);
+ km_startsel = (vim_strchr((char *)p_km, 'a') != NULL);
}
} else if (varp == &p_mousem) { // 'mousemodel'
if (check_opt_strings(p_mousem, p_mousem_values, false) != OK) {
@@ -2965,7 +2965,7 @@ ambw_end:
if (!*s) {
break;
}
- if (vim_strchr((char_u *)".wbuksid]tU", *s) == NULL) {
+ if (vim_strchr(".wbuksid]tU", *s) == NULL) {
errmsg = illegal_char(errbuf, errbuflen, *s);
break;
}
@@ -3089,7 +3089,7 @@ ambw_end:
foldUpdateAll(curwin);
}
} else if (gvarp == &curwin->w_allbuf_opt.wo_fmr) { // 'foldmarker'
- p = vim_strchr(*varp, ',');
+ p = (char_u *)vim_strchr((char *)(*varp), ',');
if (p == NULL) {
errmsg = N_("E536: comma required");
} else if (p == *varp || p[1] == NUL) {
@@ -3139,9 +3139,9 @@ ambw_end:
if (p_csqf != NULL) {
p = p_csqf;
while (*p != NUL) {
- if (vim_strchr((char_u *)CSQF_CMDS, *p) == NULL
+ if (vim_strchr(CSQF_CMDS, *p) == NULL
|| p[1] == NUL
- || vim_strchr((char_u *)CSQF_FLAGS, p[1]) == NULL
+ || vim_strchr(CSQF_FLAGS, p[1]) == NULL
|| (p[2] != NUL && p[2] != ',')) {
errmsg = e_invarg;
break;
@@ -3253,7 +3253,7 @@ ambw_end:
}
if (varp == &p_shm) { // 'shortmess'
p = (char_u *)SHM_ALL;
- } else if (varp == &(p_cpo)) { // 'cpoptions'
+ } else if (varp == (char_u **)&(p_cpo)) { // 'cpoptions'
p = (char_u *)CPO_VI;
} else if (varp == &(curbuf->b_p_fo)) { // 'formatoptions'
p = (char_u *)FO_ALL;
@@ -3264,7 +3264,7 @@ ambw_end:
}
if (p != NULL) {
for (s = *varp; *s; s++) {
- if (vim_strchr(p, *s) == NULL) {
+ if (vim_strchr((char *)p, *s) == NULL) {
errmsg = illegal_char(errbuf, errbuflen, *s);
break;
}
@@ -3323,7 +3323,7 @@ ambw_end:
syn_recursive++;
// Only pass true for "force" when the value changed or not used
// recursively, to avoid endless recurrence.
- apply_autocmds(EVENT_SYNTAX, curbuf->b_p_syn, curbuf->b_fname,
+ apply_autocmds(EVENT_SYNTAX, (char *)curbuf->b_p_syn, curbuf->b_fname,
value_changed || syn_recursive == 1, curbuf);
curbuf->b_flags |= BF_SYN_SET;
syn_recursive--;
@@ -3343,7 +3343,7 @@ ambw_end:
did_filetype = true;
// Only pass true for "force" when the value changed or not
// used recursively, to avoid endless recurrence.
- apply_autocmds(EVENT_FILETYPE, curbuf->b_p_ft, curbuf->b_fname,
+ apply_autocmds(EVENT_FILETYPE, (char *)curbuf->b_p_ft, curbuf->b_fname,
value_changed || ft_recursive == 1, curbuf);
ft_recursive--;
// Just in case the old "curbuf" is now invalid
@@ -3844,7 +3844,7 @@ static char *compile_cap_prog(synblock_T *synblock)
} else {
// Prepend a ^ so that we only match at one column
re = concat_str((char_u *)"^", synblock->b_p_spc);
- synblock->b_cap_prog = vim_regcomp(re, RE_MAGIC);
+ synblock->b_cap_prog = vim_regcomp((char *)re, RE_MAGIC);
xfree(re);
if (synblock->b_cap_prog == NULL) {
synblock->b_cap_prog = rp; // restore the previous program
@@ -3997,7 +3997,7 @@ static char *set_bool_option(const int opt_idx, char_u *const varp, const int va
|| (opt_flags & OPT_GLOBAL) || opt_flags == 0)
&& !bufIsChanged(bp) && bp->b_ml.ml_mfp != NULL) {
u_compute_hash(bp, hash);
- u_read_undo(NULL, hash, bp->b_fname);
+ u_read_undo(NULL, hash, (char_u *)bp->b_fname);
}
}
}
@@ -4044,9 +4044,7 @@ static char *set_bool_option(const int opt_idx, char_u *const varp, const int va
}
} else if ((int *)varp == &p_terse) {
// when 'terse' is set change 'shortmess'
- char_u *p;
-
- p = vim_strchr(p_shm, SHM_SEARCH);
+ char *p = vim_strchr((char *)p_shm, SHM_SEARCH);
// insert 's' in p_shm
if (p_terse && p == NULL) {
@@ -4257,7 +4255,7 @@ static char *set_bool_option(const int opt_idx, char_u *const varp, const int va
set_vim_var_string(VV_OPTION_COMMAND, "modeline", -1);
set_vim_var_string(VV_OPTION_OLDLOCAL, buf_old, -1);
}
- apply_autocmds(EVENT_OPTIONSET, (char_u *)options[opt_idx].fullname, NULL, false, NULL);
+ apply_autocmds(EVENT_OPTIONSET, options[opt_idx].fullname, NULL, false, NULL);
reset_v_option_vars();
}
@@ -4699,7 +4697,7 @@ static char *set_num_option(int opt_idx, char_u *varp, long value, char *errbuf,
set_vim_var_string(VV_OPTION_COMMAND, "modeline", -1);
set_vim_var_string(VV_OPTION_OLDLOCAL, buf_old, -1);
}
- apply_autocmds(EVENT_OPTIONSET, (char_u *)options[opt_idx].fullname, NULL, false, NULL);
+ apply_autocmds(EVENT_OPTIONSET, options[opt_idx].fullname, NULL, false, NULL);
reset_v_option_vars();
}
@@ -4756,7 +4754,7 @@ static void trigger_optionsset_string(int opt_idx, int opt_flags, char *oldval,
set_vim_var_string(VV_OPTION_COMMAND, "modeline", -1);
set_vim_var_string(VV_OPTION_OLDLOCAL, oldval, -1);
}
- apply_autocmds(EVENT_OPTIONSET, (char_u *)options[opt_idx].fullname, NULL, false, NULL);
+ apply_autocmds(EVENT_OPTIONSET, options[opt_idx].fullname, NULL, false, NULL);
reset_v_option_vars();
}
}
@@ -5622,7 +5620,7 @@ static int put_setstring(FILE *fd, char *cmd, char *name, char_u **valuep, uint6
// each comma separated part of the option separately, so that it
// can be expanded when read back.
if (size >= MAXPATHL && (flags & P_COMMA) != 0
- && vim_strchr(*valuep, ',') != NULL) {
+ && vim_strchr((char *)(*valuep), ',') != NULL) {
part = xmalloc(size);
// write line break to clear the option, e.g. ':set rtp='
@@ -7215,7 +7213,7 @@ bool has_format_option(int x)
if (p_paste) {
return false;
}
- return vim_strchr(curbuf->b_p_fo, x) != NULL;
+ return vim_strchr((char *)curbuf->b_p_fo, x) != NULL;
}
/// @returns true if "x" is present in 'shortmess' option, or
@@ -7223,9 +7221,9 @@ bool has_format_option(int x)
bool shortmess(int x)
{
return (p_shm != NULL
- && (vim_strchr(p_shm, x) != NULL
- || (vim_strchr(p_shm, 'a') != NULL
- && vim_strchr((char_u *)SHM_ALL_ABBREVIATIONS, x) != NULL)));
+ && (vim_strchr((char *)p_shm, x) != NULL
+ || (vim_strchr((char *)p_shm, 'a') != NULL
+ && vim_strchr((char *)SHM_ALL_ABBREVIATIONS, x) != NULL)));
}
/// paste_option_changed() - Called after p_paste was set or reset.
@@ -7587,7 +7585,7 @@ bool can_bs(int what)
case '0':
return false;
}
- return vim_strchr(p_bs, what) != NULL;
+ return vim_strchr((char *)p_bs, what) != NULL;
}
/// Save the current values of 'fileformat' and 'fileencoding', so that we know
@@ -8146,9 +8144,9 @@ size_t copy_option_part(char_u **option, char_u *buf, size_t maxlen, char *sep_c
if (*p == '.') {
buf[len++] = *p++;
}
- while (*p != NUL && vim_strchr((char_u *)sep_chars, *p) == NULL) {
+ while (*p != NUL && vim_strchr(sep_chars, *p) == NULL) {
// Skip backslash before a separator character and space.
- if (p[0] == '\\' && vim_strchr((char_u *)sep_chars, p[1]) != NULL) {
+ if (p[0] == '\\' && vim_strchr(sep_chars, p[1]) != NULL) {
p++;
}
if (len < maxlen - 1) {
diff --git a/src/nvim/option_defs.h b/src/nvim/option_defs.h
index d90ed6812c..e358a29622 100644
--- a/src/nvim/option_defs.h
+++ b/src/nvim/option_defs.h
@@ -266,7 +266,7 @@ enum {
STL_CLICK_FUNC = '@', ///< Click region start.
};
/// C string containing all 'statusline' option flags
-#define STL_ALL ((char_u[]) { \
+#define STL_ALL ((char[]) { \
STL_FILEPATH, STL_FULLPATH, STL_FILENAME, STL_COLUMN, STL_VIRTCOL, \
STL_VIRTCOL_ALT, STL_LINE, STL_NUMLINES, STL_BUFNO, STL_KEYMAP, STL_OFFSET, \
STL_OFFSET_X, STL_BYTEVAL, STL_BYTEVAL_X, STL_ROFLAG, STL_ROFLAG_ALT, \
@@ -392,7 +392,7 @@ EXTERN char_u *p_csl; // 'completeslash'
EXTERN long p_pb; // 'pumblend'
EXTERN long p_ph; // 'pumheight'
EXTERN long p_pw; // 'pumwidth'
-EXTERN char_u *p_cpo; // 'cpoptions'
+EXTERN char *p_cpo; // 'cpoptions'
EXTERN char_u *p_csprg; // 'cscopeprg'
EXTERN int p_csre; // 'cscoperelative'
EXTERN char_u *p_csqf; // 'cscopequickfix'
@@ -434,7 +434,7 @@ EXTERN char_u *p_gp; // 'grepprg'
EXTERN char_u *p_ei; // 'eventignore'
EXTERN int p_exrc; // 'exrc'
EXTERN char_u *p_fencs; // 'fileencodings'
-EXTERN char_u *p_ffs; // 'fileformats'
+EXTERN char *p_ffs; // 'fileformats'
EXTERN int p_fic; // 'fileignorecase'
EXTERN char_u *p_fcl; // 'foldclose'
EXTERN long p_fdls; // 'foldlevelstart'
@@ -571,7 +571,7 @@ EXTERN char_u *p_rtp; // 'runtimepath'
EXTERN long p_scbk; // 'scrollback'
EXTERN long p_sj; // 'scrolljump'
EXTERN long p_so; // 'scrolloff'
-EXTERN char_u *p_sbo; // 'scrollopt'
+EXTERN char *p_sbo; // 'scrollopt'
EXTERN char_u *p_sections; // 'sections'
EXTERN int p_secure; // 'secure'
EXTERN char_u *p_sel; // 'selection'
diff --git a/src/nvim/os/env.c b/src/nvim/os/env.c
index d0435cd968..c03fd60f03 100644
--- a/src/nvim/os/env.c
+++ b/src/nvim/os/env.c
@@ -529,9 +529,9 @@ void free_homedir(void)
/// again soon.
/// @param src String containing environment variables to expand
/// @see {expand_env}
-char_u *expand_env_save(char_u *src)
+char *expand_env_save(char *src)
{
- return expand_env_save_opt(src, false);
+ return (char *)expand_env_save_opt((char_u *)src, false);
}
/// Similar to expand_env_save() but when "one" is `true` handle the string as
@@ -644,7 +644,7 @@ void expand_env_esc(char_u *restrict srcp, char_u *restrict dst, int dstlen, boo
#endif
} else if (src[1] == NUL // home directory
|| vim_ispathsep(src[1])
- || vim_strchr((char_u *)" ,\t\n", src[1]) != NULL) {
+ || vim_strchr(" ,\t\n", src[1]) != NULL) {
var = (char_u *)homedir;
tail = src + 1;
} else { // user directory
@@ -884,8 +884,7 @@ void vim_get_prefix_from_exepath(char *exe_name)
{
// TODO(bfredl): param could have been written as "char exe_name[MAXPATHL]"
// but c_grammar.lua does not recognize it (yet).
- xstrlcpy(exe_name, (char *)get_vim_var_str(VV_PROGPATH),
- MAXPATHL * sizeof(*exe_name));
+ xstrlcpy(exe_name, get_vim_var_str(VV_PROGPATH), MAXPATHL * sizeof(*exe_name));
char *path_end = (char *)path_tail_with_sep((char_u *)exe_name);
*path_end = '\0'; // remove the trailing "nvim.exe"
path_end = path_tail(exe_name);
@@ -940,7 +939,7 @@ char *vim_getenv(const char *name)
// - the directory name from 'helpfile' (unless it contains '$')
// - the executable name from argv[0]
if (vim_path == NULL) {
- if (p_hf != NULL && vim_strchr(p_hf, '$') == NULL) {
+ if (p_hf != NULL && vim_strchr((char *)p_hf, '$') == NULL) {
vim_path = (char *)p_hf;
}
diff --git a/src/nvim/os/shell.c b/src/nvim/os/shell.c
index 34d9015071..d331bd21a2 100644
--- a/src/nvim/os/shell.c
+++ b/src/nvim/os/shell.c
@@ -36,7 +36,7 @@
#define NS_1_SECOND 1000000000U // 1 second, in nanoseconds
#define OUT_DATA_THRESHOLD 1024 * 10U // 10KB, "a few screenfuls" of data.
-#define SHELL_SPECIAL (char_u *)"\t \"&'$;<>()\\|"
+#define SHELL_SPECIAL "\t \"&'$;<>()\\|"
typedef struct {
char *data;
@@ -73,7 +73,7 @@ static bool have_wildcard(int num, char_u **file)
static bool have_dollars(int num, char_u **file)
{
for (int i = 0; i < num; i++) {
- if (vim_strchr(file[i], '$') != NULL) {
+ if (vim_strchr((char *)file[i], '$') != NULL) {
return true;
}
}
@@ -151,7 +151,7 @@ int os_expand_wildcards(int num_pat, char_u **pat, int *num_file, char_u ***file
// Don't allow the use of backticks in secure.
if (secure) {
for (i = 0; i < num_pat; i++) {
- if (vim_strchr(pat[i], '`') != NULL
+ if (vim_strchr((char *)pat[i], '`') != NULL
&& (check_secure())) {
return FAIL;
}
@@ -1213,7 +1213,7 @@ static void read_input(DynamicBuffer *buf)
dynamic_buffer_ensure(buf, buf->len + len);
buf->data[buf->len++] = NUL;
} else {
- char_u *s = vim_strchr(lp + written, NL);
+ char_u *s = (char_u *)vim_strchr((char *)lp + written, NL);
len = s == NULL ? l : (size_t)(s - (lp + written));
dynamic_buffer_ensure(buf, buf->len + len);
memcpy(buf->data + buf->len, lp + written, len);
diff --git a/src/nvim/os/signal.c b/src/nvim/os/signal.c
index 79e042b8a5..cd591801ed 100644
--- a/src/nvim/os/signal.c
+++ b/src/nvim/os/signal.c
@@ -210,14 +210,12 @@ static void on_signal(SignalWatcher *handle, int signum, void *data)
break;
#ifdef SIGUSR1
case SIGUSR1:
- apply_autocmds(EVENT_SIGNAL, (char_u *)"SIGUSR1", curbuf->b_fname, true,
- curbuf);
+ apply_autocmds(EVENT_SIGNAL, "SIGUSR1", curbuf->b_fname, true, curbuf);
break;
#endif
#ifdef SIGWINCH
case SIGWINCH:
- apply_autocmds(EVENT_SIGNAL, (char_u *)"SIGWINCH", curbuf->b_fname, true,
- curbuf);
+ apply_autocmds(EVENT_SIGNAL, "SIGWINCH", curbuf->b_fname, true, curbuf);
break;
#endif
default:
diff --git a/src/nvim/os/stdpaths.c b/src/nvim/os/stdpaths.c
index faeb2fe829..a382392bd3 100644
--- a/src/nvim/os/stdpaths.c
+++ b/src/nvim/os/stdpaths.c
@@ -82,7 +82,7 @@ char *stdpaths_get_xdg_var(const XDGVarType idx)
if (env_val != NULL) {
ret = xstrdup(env_val);
} else if (fallback) {
- ret = (char *)expand_env_save((char_u *)fallback);
+ ret = expand_env_save((char *)fallback);
}
return ret;
diff --git a/src/nvim/path.c b/src/nvim/path.c
index fd6cca63f4..fcb91a2783 100644
--- a/src/nvim/path.c
+++ b/src/nvim/path.c
@@ -525,7 +525,7 @@ bool path_has_wildcard(const char_u *p)
// Windows:
const char *wildcards = "?*$[`";
#endif
- if (vim_strchr((char_u *)wildcards, *p) != NULL
+ if (vim_strchr(wildcards, *p) != NULL
|| (p[0] == '~' && p[1] != NUL)) {
return true;
}
@@ -559,7 +559,7 @@ bool path_has_exp_wildcard(const char_u *p)
#else
const char *wildcards = "*?["; // Windows.
#endif
- if (vim_strchr((char_u *)wildcards, *p) != NULL) {
+ if (vim_strchr(wildcards, *p) != NULL) {
return true;
}
}
@@ -640,7 +640,7 @@ static size_t do_path_expand(garray_T *gap, const char_u *path, size_t wildoff,
}
s = p + 1;
} else if (path_end >= path + wildoff
- && (vim_strchr((char_u *)"*?[{~$", *path_end) != NULL
+ && (vim_strchr("*?[{~$", *path_end) != NULL
#ifndef WIN32
|| (!p_fic && (flags & EW_ICASE) && mb_isalpha(utf_ptr2char((char *)path_end)))
#endif
@@ -675,7 +675,7 @@ static size_t do_path_expand(garray_T *gap, const char_u *path, size_t wildoff,
// convert the file pattern to a regexp pattern
int starts_with_dot = *s == '.';
- char_u *pat = file_pat_to_reg_pat(s, e, NULL, false);
+ char *pat = file_pat_to_reg_pat((char *)s, (char *)e, NULL, false);
if (pat == NULL) {
xfree(buf);
return 0;
@@ -949,13 +949,13 @@ static void uniquefy_paths(garray_T *gap, char_u *pattern)
file_pattern[0] = '*';
file_pattern[1] = NUL;
STRCAT(file_pattern, pattern);
- char_u *pat = file_pat_to_reg_pat(file_pattern, NULL, NULL, true);
+ char *pat = file_pat_to_reg_pat((char *)file_pattern, NULL, NULL, true);
xfree(file_pattern);
if (pat == NULL) {
return;
}
- regmatch.rm_ic = TRUE; // always ignore case
+ regmatch.rm_ic = true; // always ignore case
regmatch.regprog = vim_regcomp(pat, RE_MAGIC + RE_STRING);
xfree(pat);
if (regmatch.regprog == NULL) {
@@ -1153,7 +1153,7 @@ static bool has_env_var(char_u *p)
for (; *p; MB_PTR_ADV(p)) {
if (*p == '\\' && p[1] != NUL) {
p++;
- } else if (vim_strchr((char_u *)"$", *p) != NULL) {
+ } else if (vim_strchr("$", *p) != NULL) {
return true;
}
}
@@ -1174,13 +1174,13 @@ static bool has_special_wildchar(char_u *p)
// Allow for escaping.
if (*p == '\\' && p[1] != NUL && p[1] != '\r' && p[1] != '\n') {
p++;
- } else if (vim_strchr((char_u *)SPECIAL_WILDCHAR, *p) != NULL) {
+ } else if (vim_strchr(SPECIAL_WILDCHAR, *p) != NULL) {
// A { must be followed by a matching }.
- if (*p == '{' && vim_strchr(p, '}') == NULL) {
+ if (*p == '{' && vim_strchr((char *)p, '}') == NULL) {
continue;
}
// A quote and backtick must be followed by another one.
- if ((*p == '`' || *p == '\'') && vim_strchr(p, *p) == NULL) {
+ if ((*p == '`' || *p == '\'') && vim_strchr((char *)p, *p) == NULL) {
continue;
}
return true;
@@ -2248,7 +2248,7 @@ int match_suffix(char_u *fname)
char_u *tail = (char_u *)path_tail((char *)fname);
// empty entry: match name without a '.'
- if (vim_strchr(tail, '.') == NULL) {
+ if (vim_strchr((char *)tail, '.') == NULL) {
setsuflen = 1;
break;
}
diff --git a/src/nvim/popupmnu.c b/src/nvim/popupmnu.c
index 4317a4e2ce..c5c1d87919 100644
--- a/src/nvim/popupmnu.c
+++ b/src/nvim/popupmnu.c
@@ -694,7 +694,7 @@ static int pum_set_selected(int n, int repeat)
if ((pum_array[pum_selected].pum_info != NULL)
&& (Rows > 10)
&& (repeat <= 1)
- && (vim_strchr(p_cot, 'p') != NULL)) {
+ && (vim_strchr((char *)p_cot, 'p') != NULL)) {
win_T *curwin_save = curwin;
tabpage_T *curtab_save = curtab;
int res = OK;
@@ -748,7 +748,7 @@ static int pum_set_selected(int n, int repeat)
linenr_T lnum = 0;
for (p = pum_array[pum_selected].pum_info; *p != NUL;) {
- e = vim_strchr(p, '\n');
+ e = (char_u *)vim_strchr((char *)p, '\n');
if (e == NULL) {
ml_append(lnum++, (char *)p, 0, false);
break;
diff --git a/src/nvim/quickfix.c b/src/nvim/quickfix.c
index c9e6f9c210..883de85aee 100644
--- a/src/nvim/quickfix.c
+++ b/src/nvim/quickfix.c
@@ -369,9 +369,9 @@ static char *efmpat_to_regpat(const char *efmpat, char *regpat, efm_T *efminfo,
return NULL;
}
if ((idx && idx < FMT_PATTERN_R
- && vim_strchr((char_u *)"DXOPQ", efminfo->prefix) != NULL)
+ && vim_strchr("DXOPQ", efminfo->prefix) != NULL)
|| (idx == FMT_PATTERN_R
- && vim_strchr((char_u *)"OPQ", efminfo->prefix) == NULL)) {
+ && vim_strchr("OPQ", efminfo->prefix) == NULL)) {
semsg(_("E373: Unexpected %%%c in format string"), *efmpat);
return NULL;
}
@@ -453,10 +453,10 @@ static char *scanf_fmt_to_regpat(const char **pefmp, const char *efm, int len, c
static const char *efm_analyze_prefix(const char *efmp, efm_T *efminfo)
FUNC_ATTR_NONNULL_ALL
{
- if (vim_strchr((char_u *)"+-", *efmp) != NULL) {
+ if (vim_strchr("+-", *efmp) != NULL) {
efminfo->flags = *efmp++;
}
- if (vim_strchr((char_u *)"DXAEWINCZGOPQ", *efmp) != NULL) {
+ if (vim_strchr("DXAEWINCZGOPQ", *efmp) != NULL) {
efminfo->prefix = *efmp;
} else {
semsg(_("E376: Invalid %%%c in format string prefix"), *efmp);
@@ -496,7 +496,7 @@ static int efm_to_regpat(const char *efm, int len, efm_T *fmt_ptr, char *regpat)
if (ptr == NULL) {
return FAIL;
}
- } else if (vim_strchr((char_u *)"%\\.^$~[", *efmp) != NULL) {
+ } else if (vim_strchr("%\\.^$~[", *efmp) != NULL) {
*ptr++ = *efmp; // regexp magic characters
} else if (*efmp == '#') {
*ptr++ = '*';
@@ -516,7 +516,7 @@ static int efm_to_regpat(const char *efm, int len, efm_T *fmt_ptr, char *regpat)
} else { // copy normal character
if (*efmp == '\\' && efmp + 1 < efm + len) {
efmp++;
- } else if (vim_strchr((char_u *)".*^$~[", *efmp) != NULL) {
+ } else if (vim_strchr(".*^$~[", *efmp) != NULL) {
*ptr++ = '\\'; // escape regexp atoms
}
if (*efmp) {
@@ -609,7 +609,7 @@ static efm_T *parse_efm_option(char *efm)
if (efm_to_regpat(efm, len, fmt_ptr, fmtstr) == FAIL) {
goto parse_efm_error;
}
- if ((fmt_ptr->prog = vim_regcomp((char_u *)fmtstr, RE_MAGIC + RE_STRING)) == NULL) {
+ if ((fmt_ptr->prog = vim_regcomp(fmtstr, RE_MAGIC + RE_STRING)) == NULL) {
goto parse_efm_error;
}
// Advance to next part
@@ -659,7 +659,7 @@ static int qf_get_next_str_line(qfstate_T *state)
return QF_END_OF_INPUT;
}
- p = (char *)vim_strchr((char_u *)p_str, '\n');
+ p = vim_strchr(p_str, '\n');
if (p != NULL) {
len = (size_t)(p - p_str) + 1;
} else {
@@ -961,16 +961,16 @@ restofline:
fmt_start = fmt_ptr;
}
- if (vim_strchr((char_u *)"AEWIN", idx) != NULL) {
+ if (vim_strchr("AEWIN", idx) != NULL) {
qfl->qf_multiline = true; // start of a multi-line message
qfl->qf_multiignore = false; // reset continuation
- } else if (vim_strchr((char_u *)"CZ", idx) != NULL) {
+ } else if (vim_strchr("CZ", idx) != NULL) {
// continuation of multi-line msg
status = qf_parse_multiline_pfx(idx, qfl, fields);
if (status != QF_OK) {
return status;
}
- } else if (vim_strchr((char_u *)"OPQ", idx) != NULL) {
+ } else if (vim_strchr("OPQ", idx) != NULL) {
// global file names
status = qf_parse_file_pfx(idx, fields, qfl, tail);
if (status == QF_MULTISCAN) {
@@ -1273,7 +1273,7 @@ static int qf_parse_fmt_f(regmatch_T *rmp, int midx, qffields_T *fields, int pre
// For separate filename patterns (%O, %P and %Q), the specified file
// should exist.
- if (vim_strchr((char_u *)"OPQ", prefix) != NULL
+ if (vim_strchr("OPQ", prefix) != NULL
&& !os_path_exists((char_u *)fields->namebuf)) {
return QF_FAIL;
}
@@ -1500,7 +1500,7 @@ static int qf_parse_match(char *linebuf, size_t linelen, efm_T *fmt_ptr, regmatc
if ((idx == 'C' || idx == 'Z') && !qf_multiline) {
return QF_FAIL;
}
- if (vim_strchr((char_u *)"EWIN", idx) != NULL) {
+ if (vim_strchr("EWIN", idx) != NULL) {
fields->type = idx;
} else {
fields->type = 0;
@@ -1545,7 +1545,7 @@ static int qf_parse_get_fields(char *linebuf, size_t linelen, efm_T *fmt_ptr, qf
int status = QF_FAIL;
int r;
- if (qf_multiscan && vim_strchr((char_u *)"OPQ", fmt_ptr->prefix) == NULL) {
+ if (qf_multiscan && vim_strchr("OPQ", fmt_ptr->prefix) == NULL) {
return QF_FAIL;
}
@@ -2170,7 +2170,7 @@ static char *qf_push_dir(char *dirbuf, struct dir_stack_T **stackptr, bool is_fi
// store directory on the stack
if (vim_isAbsName((char_u *)dirbuf)
|| (*stackptr)->next == NULL
- || (*stackptr && is_file_stack)) {
+ || is_file_stack) {
(*stackptr)->dirname = xstrdup(dirbuf);
} else {
// Okay we don't have an absolute path.
@@ -3102,7 +3102,7 @@ static void qf_list_entry(qfline_T *qfp, int qf_idx, bool cursel)
} else {
if (qfp->qf_fnum != 0
&& (buf = buflist_findnr(qfp->qf_fnum)) != NULL) {
- fname = (char *)buf->b_fname;
+ fname = buf->b_fname;
if (qfp->qf_type == 1) { // :helpgrep
fname = path_tail(fname);
}
@@ -4038,7 +4038,7 @@ static int qf_buf_add_line(qf_list_T *qfl, buf_T *buf, linenr_T lnum, const qfli
&& (errbuf = buflist_findnr(qfp->qf_fnum)) != NULL
&& errbuf->b_fname != NULL) {
if (qfp->qf_type == 1) { // :helpgrep
- STRLCPY(IObuff, path_tail((char *)errbuf->b_fname), IOSIZE);
+ STRLCPY(IObuff, path_tail(errbuf->b_fname), IOSIZE);
} else {
// Shorten the file name if not done already.
// For optimization, do this only for the first entry in a
@@ -4230,10 +4230,8 @@ static void qf_fill_buffer(qf_list_T *qfl, buf_T *buf, qfline_T *old_last, int q
curbuf->b_p_ma = false;
keep_filetype = true; // don't detect 'filetype'
- apply_autocmds(EVENT_BUFREADPOST, (char_u *)"quickfix", NULL,
- false, curbuf);
- apply_autocmds(EVENT_BUFWINENTER, (char_u *)"quickfix", NULL,
- false, curbuf);
+ apply_autocmds(EVENT_BUFREADPOST, "quickfix", NULL, false, curbuf);
+ apply_autocmds(EVENT_BUFWINENTER, "quickfix", NULL, false, curbuf);
keep_filetype = false;
curbuf->b_ro_locked--;
@@ -4374,7 +4372,7 @@ void ex_make(exarg_T *eap)
}
char *const au_name = make_get_auname(eap->cmdidx);
- if (au_name != NULL && apply_autocmds(EVENT_QUICKFIXCMDPRE, (char_u *)au_name,
+ if (au_name != NULL && apply_autocmds(EVENT_QUICKFIXCMDPRE, au_name,
curbuf->b_fname, true, curbuf)) {
if (aborting()) {
return;
@@ -4415,7 +4413,7 @@ void ex_make(exarg_T *eap)
// check for autocommands changing the current quickfix list.
unsigned save_qfid = qf_get_curlist(qi)->qf_id;
if (au_name != NULL) {
- apply_autocmds(EVENT_QUICKFIXCMDPOST, (char_u *)au_name, curbuf->b_fname, true,
+ apply_autocmds(EVENT_QUICKFIXCMDPOST, au_name, curbuf->b_fname, true,
curbuf);
}
if (res > 0 && !eap->forceit && qflist_valid(wp, save_qfid)) {
@@ -5106,7 +5104,7 @@ void ex_cfile(exarg_T *eap)
au_name = cfile_get_auname(eap->cmdidx);
if (au_name != NULL
- && apply_autocmds(EVENT_QUICKFIXCMDPRE, (char_u *)au_name, NULL, false, curbuf)) {
+ && apply_autocmds(EVENT_QUICKFIXCMDPRE, au_name, NULL, false, curbuf)) {
if (aborting()) {
return;
}
@@ -5146,7 +5144,7 @@ void ex_cfile(exarg_T *eap)
}
unsigned save_qfid = qf_get_curlist(qi)->qf_id;
if (au_name != NULL) {
- apply_autocmds(EVENT_QUICKFIXCMDPOST, (char_u *)au_name, NULL, false, curbuf);
+ apply_autocmds(EVENT_QUICKFIXCMDPOST, au_name, NULL, false, curbuf);
}
// Jump to the first error for a new list and if autocmds didn't free the
// list.
@@ -5196,9 +5194,9 @@ static void vgr_init_regmatch(regmmatch_T *regmatch, char *s)
emsg(_(e_noprevre));
return;
}
- regmatch->regprog = vim_regcomp(last_search_pat(), RE_MAGIC);
+ regmatch->regprog = vim_regcomp((char *)last_search_pat(), RE_MAGIC);
} else {
- regmatch->regprog = vim_regcomp((char_u *)s, RE_MAGIC);
+ regmatch->regprog = vim_regcomp(s, RE_MAGIC);
}
regmatch->rmm_ic = p_ic;
@@ -5565,7 +5563,7 @@ static int vgr_process_files(win_T *wp, qf_info_T *qi, vgr_args_T *cmd_args, boo
// options!
aco_save_T aco;
aucmd_prepbuf(&aco, buf);
- apply_autocmds(EVENT_FILETYPE, buf->b_p_ft, buf->b_fname, true, buf);
+ apply_autocmds(EVENT_FILETYPE, (char *)buf->b_p_ft, buf->b_fname, true, buf);
do_modelines(OPT_NOWIN);
aucmd_restbuf(&aco);
}
@@ -5588,7 +5586,7 @@ theend:
void ex_vimgrep(exarg_T *eap)
{
char *au_name = vgr_get_auname(eap->cmdidx);
- if (au_name != NULL && apply_autocmds(EVENT_QUICKFIXCMDPRE, (char_u *)au_name,
+ if (au_name != NULL && apply_autocmds(EVENT_QUICKFIXCMDPRE, au_name,
curbuf->b_fname, true, curbuf)) {
if (aborting()) {
return;
@@ -5637,7 +5635,7 @@ void ex_vimgrep(exarg_T *eap)
unsigned save_qfid = qf_get_curlist(qi)->qf_id;
if (au_name != NULL) {
- apply_autocmds(EVENT_QUICKFIXCMDPOST, (char_u *)au_name, curbuf->b_fname, true, curbuf);
+ apply_autocmds(EVENT_QUICKFIXCMDPOST, au_name, curbuf->b_fname, true, curbuf);
}
// The QuickFixCmdPost autocmd may free the quickfix list. Check the list
@@ -6935,7 +6933,7 @@ void ex_cbuffer(exarg_T *eap)
linenr_T line2;
au_name = cbuffer_get_auname(eap->cmdidx);
- if (au_name != NULL && apply_autocmds(EVENT_QUICKFIXCMDPRE, (char_u *)au_name,
+ if (au_name != NULL && apply_autocmds(EVENT_QUICKFIXCMDPRE, au_name,
curbuf->b_fname, true, curbuf)) {
if (aborting()) {
return;
@@ -6975,8 +6973,7 @@ void ex_cbuffer(exarg_T *eap)
unsigned save_qfid = qf_get_curlist(qi)->qf_id;
if (au_name != NULL) {
const buf_T *const curbuf_old = curbuf;
- apply_autocmds(EVENT_QUICKFIXCMDPOST, (char_u *)au_name,
- curbuf->b_fname, true, curbuf);
+ apply_autocmds(EVENT_QUICKFIXCMDPOST, au_name, curbuf->b_fname, true, curbuf);
if (curbuf != curbuf_old) {
// Autocommands changed buffer, don't jump now, "qi" may
// be invalid.
@@ -7023,7 +7020,7 @@ void ex_cexpr(exarg_T *eap)
win_T *wp = NULL;
au_name = cexpr_get_auname(eap->cmdidx);
- if (au_name != NULL && apply_autocmds(EVENT_QUICKFIXCMDPRE, (char_u *)au_name,
+ if (au_name != NULL && apply_autocmds(EVENT_QUICKFIXCMDPRE, au_name,
curbuf->b_fname, true, curbuf)) {
if (aborting()) {
return;
@@ -7055,8 +7052,7 @@ void ex_cexpr(exarg_T *eap)
// check for autocommands changing the current quickfix list.
unsigned save_qfid = qf_get_curlist(qi)->qf_id;
if (au_name != NULL) {
- apply_autocmds(EVENT_QUICKFIXCMDPOST, (char_u *)au_name,
- curbuf->b_fname, true, curbuf);
+ apply_autocmds(EVENT_QUICKFIXCMDPOST, au_name, curbuf->b_fname, true, curbuf);
}
// Jump to the first error for a new list and if autocmds didn't
// free the list.
@@ -7220,7 +7216,7 @@ void ex_helpgrep(exarg_T *eap)
default:
break;
}
- if (au_name != NULL && apply_autocmds(EVENT_QUICKFIXCMDPRE, (char_u *)au_name,
+ if (au_name != NULL && apply_autocmds(EVENT_QUICKFIXCMDPRE, au_name,
curbuf->b_fname, true, curbuf)) {
if (aborting()) {
return;
@@ -7228,8 +7224,8 @@ void ex_helpgrep(exarg_T *eap)
}
// Make 'cpoptions' empty, the 'l' flag should not be used here.
- char *const save_cpo = (char *)p_cpo;
- p_cpo = empty_option;
+ char *const save_cpo = p_cpo;
+ p_cpo = (char *)empty_option;
if (is_loclist_cmd(eap->cmdidx)) {
qi = hgr_get_ll(&new_qi);
@@ -7240,7 +7236,7 @@ void ex_helpgrep(exarg_T *eap)
// Check for a specified language
char *const lang = check_help_lang(eap->arg);
regmatch_T regmatch = {
- .regprog = vim_regcomp((char_u *)eap->arg, RE_MAGIC + RE_STRING),
+ .regprog = vim_regcomp(eap->arg, RE_MAGIC + RE_STRING),
.rm_ic = false,
};
if (regmatch.regprog != NULL) {
@@ -7259,16 +7255,15 @@ void ex_helpgrep(exarg_T *eap)
qf_update_buffer(qi, NULL);
}
- if (p_cpo == empty_option) {
- p_cpo = (char_u *)save_cpo;
+ if ((char_u *)p_cpo == empty_option) {
+ p_cpo = save_cpo;
} else {
// Darn, some plugin changed the value.
free_string_option((char_u *)save_cpo);
}
if (au_name != NULL) {
- apply_autocmds(EVENT_QUICKFIXCMDPOST, (char_u *)au_name,
- curbuf->b_fname, true, curbuf);
+ apply_autocmds(EVENT_QUICKFIXCMDPOST, au_name, curbuf->b_fname, true, curbuf);
// When adding a location list to an existing location list stack,
// if the autocmd made the stack invalid, then just return.
if (!new_qi && IS_LL_STACK(qi) && qf_find_win_with_loclist(qi) == NULL) {
diff --git a/src/nvim/rbuffer.h b/src/nvim/rbuffer.h
index e86765a4ad..09d6ba3d34 100644
--- a/src/nvim/rbuffer.h
+++ b/src/nvim/rbuffer.h
@@ -36,6 +36,8 @@
//
// Note that the rbuffer_{produced,consumed} calls are necessary or these macros
// create infinite loops
+//
+// -V:RBUFFER_UNTIL_EMPTY:1044
#define RBUFFER_UNTIL_EMPTY(buf, rptr, rcnt) \
for (size_t rcnt = 0, _r = 1; _r; _r = 0) /* NOLINT(readability/braces) */ \
for (char *rptr = rbuffer_read_ptr(buf, &rcnt); /* NOLINT(readability/braces) */ \
diff --git a/src/nvim/regexp.c b/src/nvim/regexp.c
index 2052493e3f..f0ccd19478 100644
--- a/src/nvim/regexp.c
+++ b/src/nvim/regexp.c
@@ -1,8 +1,6 @@
// This is an open source non-commercial project. Dear PVS-Studio, please check
// it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
-// uncrustify:off
-
/*
* Handling of regular expressions: vim_regcomp(), vim_regexec(), vim_regsub()
*/
@@ -18,21 +16,21 @@
#include <stdbool.h>
#include <string.h>
-#include "nvim/vim.h"
#include "nvim/ascii.h"
-#include "nvim/regexp.h"
#include "nvim/charset.h"
#include "nvim/eval.h"
#include "nvim/eval/userfunc.h"
#include "nvim/ex_cmds2.h"
+#include "nvim/garray.h"
#include "nvim/mark.h"
#include "nvim/memline.h"
#include "nvim/memory.h"
#include "nvim/message.h"
#include "nvim/os/input.h"
#include "nvim/plines.h"
-#include "nvim/garray.h"
+#include "nvim/regexp.h"
#include "nvim/strings.h"
+#include "nvim/vim.h"
#ifdef REGEXP_DEBUG
// show/save debugging data when BT engine is used
@@ -62,15 +60,17 @@ typedef void (*(*fptr_T)(int *, int))(void);
static int no_Magic(int x)
{
- if (is_Magic(x))
+ if (is_Magic(x)) {
return un_Magic(x);
+ }
return x;
}
static int toggle_Magic(int x)
{
- if (is_Magic(x))
+ if (is_Magic(x)) {
return un_Magic(x);
+ }
return Magic(x);
}
@@ -88,13 +88,12 @@ static int toggle_Magic(int x)
#define IEMSG_RET_NULL(m) return (iemsg(m), rc_did_emsg = true, (void *)NULL)
#define EMSG_RET_FAIL(m) return (emsg(m), rc_did_emsg = true, FAIL)
#define EMSG2_RET_NULL(m, c) \
- return (semsg((m), (c) ? "" : "\\"), rc_did_emsg = true, (void *)NULL)
+ return (semsg((m), (c) ? "" : "\\"), rc_did_emsg = true, (void *)NULL)
#define EMSG3_RET_NULL(m, c, a) \
- return (semsg((const char *)(m), (c) ? "" : "\\", (a)), rc_did_emsg = true, (void *)NULL)
+ return (semsg((const char *)(m), (c) ? "" : "\\", (a)), rc_did_emsg = true, (void *)NULL)
#define EMSG2_RET_FAIL(m, c) \
- return (semsg((m), (c) ? "" : "\\"), rc_did_emsg = true, FAIL)
-#define EMSG_ONE_RET_NULL EMSG2_RET_NULL(_( \
- "E369: invalid item in %s%%[]"), reg_magic == MAGIC_ALL)
+ return (semsg((m), (c) ? "" : "\\"), rc_did_emsg = true, FAIL)
+#define EMSG_ONE_RET_NULL EMSG2_RET_NULL(_("E369: invalid item in %s%%[]"), reg_magic == MAGIC_ALL)
#define MAX_LIMIT (32767L << 16L)
@@ -128,33 +127,35 @@ static char_u e_regexp_number_after_dot_pos_search[]
/// Return MULTI_MULT if c is a multi "multi" operator.
static int re_multi_type(int c)
{
- if (c == Magic('@') || c == Magic('=') || c == Magic('?'))
+ if (c == Magic('@') || c == Magic('=') || c == Magic('?')) {
return MULTI_ONE;
- if (c == Magic('*') || c == Magic('+') || c == Magic('{'))
+ }
+ if (c == Magic('*') || c == Magic('+') || c == Magic('{')) {
return MULTI_MULT;
+ }
return NOT_MULTI;
}
-static char_u *reg_prev_sub = NULL;
+static char_u *reg_prev_sub = NULL;
/*
* REGEXP_INRANGE contains all characters which are always special in a []
* range after '\'.
* REGEXP_ABBR contains all characters which act as abbreviations after '\'.
* These are:
- * \n - New line (NL).
- * \r - Carriage Return (CR).
- * \t - Tab (TAB).
- * \e - Escape (ESC).
- * \b - Backspace (Ctrl_H).
+ * \n - New line (NL).
+ * \r - Carriage Return (CR).
+ * \t - Tab (TAB).
+ * \e - Escape (ESC).
+ * \b - Backspace (Ctrl_H).
* \d - Character code in decimal, eg \d123
- * \o - Character code in octal, eg \o80
- * \x - Character code in hex, eg \x4a
- * \u - Multibyte character code, eg \u20ac
- * \U - Long multibyte character code, eg \U12345678
+ * \o - Character code in octal, eg \o80
+ * \x - Character code in hex, eg \x4a
+ * \u - Multibyte character code, eg \u20ac
+ * \U - Long multibyte character code, eg \U12345678
*/
-static char_u REGEXP_INRANGE[] = "]^-n\\";
-static char_u REGEXP_ABBR[] = "nrtebdoxuU";
+static char REGEXP_INRANGE[] = "]^-n\\";
+static char REGEXP_ABBR[] = "nrtebdoxuU";
/*
@@ -163,10 +164,14 @@ static char_u REGEXP_ABBR[] = "nrtebdoxuU";
static int backslash_trans(int c)
{
switch (c) {
- case 'r': return CAR;
- case 't': return TAB;
- case 'e': return ESC;
- case 'b': return BS;
+ case 'r':
+ return CAR;
+ case 't':
+ return TAB;
+ case 'e':
+ return ESC;
+ case 'b':
+ return BS;
}
return c;
}
@@ -223,11 +228,12 @@ static int get_char_class(char_u **pp)
int i;
if ((*pp)[1] == ':') {
- for (i = 0; i < (int)ARRAY_SIZE(class_names); ++i)
+ for (i = 0; i < (int)ARRAY_SIZE(class_names); i++) {
if (STRNCMP(*pp + 2, class_names[i], STRLEN(class_names[i])) == 0) {
*pp += STRLEN(class_names[i]) + 2;
return i;
}
+ }
}
return CLASS_NONE;
}
@@ -253,41 +259,43 @@ static void init_class_tab(void)
int i;
static int done = false;
- if (done)
+ if (done) {
return;
+ }
- for (i = 0; i < 256; ++i) {
- if (i >= '0' && i <= '7')
+ for (i = 0; i < 256; i++) {
+ if (i >= '0' && i <= '7') {
class_tab[i] = RI_DIGIT + RI_HEX + RI_OCTAL + RI_WORD;
- else if (i >= '8' && i <= '9')
+ } else if (i >= '8' && i <= '9') {
class_tab[i] = RI_DIGIT + RI_HEX + RI_WORD;
- else if (i >= 'a' && i <= 'f')
+ } else if (i >= 'a' && i <= 'f') {
class_tab[i] = RI_HEX + RI_WORD + RI_HEAD + RI_ALPHA + RI_LOWER;
- else if (i >= 'g' && i <= 'z')
+ } else if (i >= 'g' && i <= 'z') {
class_tab[i] = RI_WORD + RI_HEAD + RI_ALPHA + RI_LOWER;
- else if (i >= 'A' && i <= 'F')
+ } else if (i >= 'A' && i <= 'F') {
class_tab[i] = RI_HEX + RI_WORD + RI_HEAD + RI_ALPHA + RI_UPPER;
- else if (i >= 'G' && i <= 'Z')
+ } else if (i >= 'G' && i <= 'Z') {
class_tab[i] = RI_WORD + RI_HEAD + RI_ALPHA + RI_UPPER;
- else if (i == '_')
+ } else if (i == '_') {
class_tab[i] = RI_WORD + RI_HEAD;
- else
+ } else {
class_tab[i] = 0;
+ }
}
class_tab[' '] |= RI_WHITE;
class_tab['\t'] |= RI_WHITE;
done = true;
}
-# define ri_digit(c) ((c) < 0x100 && (class_tab[c] & RI_DIGIT))
-# define ri_hex(c) ((c) < 0x100 && (class_tab[c] & RI_HEX))
-# define ri_octal(c) ((c) < 0x100 && (class_tab[c] & RI_OCTAL))
-# define ri_word(c) ((c) < 0x100 && (class_tab[c] & RI_WORD))
-# define ri_head(c) ((c) < 0x100 && (class_tab[c] & RI_HEAD))
-# define ri_alpha(c) ((c) < 0x100 && (class_tab[c] & RI_ALPHA))
-# define ri_lower(c) ((c) < 0x100 && (class_tab[c] & RI_LOWER))
-# define ri_upper(c) ((c) < 0x100 && (class_tab[c] & RI_UPPER))
-# define ri_white(c) ((c) < 0x100 && (class_tab[c] & RI_WHITE))
+#define ri_digit(c) ((c) < 0x100 && (class_tab[c] & RI_DIGIT))
+#define ri_hex(c) ((c) < 0x100 && (class_tab[c] & RI_HEX))
+#define ri_octal(c) ((c) < 0x100 && (class_tab[c] & RI_OCTAL))
+#define ri_word(c) ((c) < 0x100 && (class_tab[c] & RI_WORD))
+#define ri_head(c) ((c) < 0x100 && (class_tab[c] & RI_HEAD))
+#define ri_alpha(c) ((c) < 0x100 && (class_tab[c] & RI_ALPHA))
+#define ri_lower(c) ((c) < 0x100 && (class_tab[c] & RI_LOWER))
+#define ri_upper(c) ((c) < 0x100 && (class_tab[c] & RI_UPPER))
+#define ri_white(c) ((c) < 0x100 && (class_tab[c] & RI_WHITE))
// flags for regflags
#define RF_ICASE 1 // ignore case
@@ -320,6 +328,8 @@ static int reg_strict; // "[abc" is illegal
* META contains all characters that may be magic, except '^' and '$'.
*/
+// uncrustify:off
+
// META[] is used often enough to justify turning it into a table.
static char_u META_flags[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -338,6 +348,8 @@ static char_u META_flags[] = {
1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1
};
+// uncrustify:on
+
static int curchr; // currently parsed character
// Previous character. Note: prevchr is sometimes -1 when we are not at the
// start, eg in /[ ^I]^ the pattern was never found even if it existed,
@@ -389,7 +401,7 @@ static int get_equi_class(char_u **pp)
{
int c;
int l = 1;
- char_u *p = *pp;
+ char_u *p = *pp;
if (p[1] == '=' && p[2] != NUL) {
l = utfc_ptr2len((char *)p + 2);
@@ -413,7 +425,7 @@ static int get_coll_element(char_u **pp)
{
int c;
int l = 1;
- char_u *p = *pp;
+ char_u *p = *pp;
if (p[0] != NUL && p[1] == '.' && p[2] != NUL) {
l = utfc_ptr2len((char *)p + 2);
@@ -451,7 +463,7 @@ static char_u *skip_anyof(char_u *p)
while (*p != NUL && *p != ']') {
if ((l = utfc_ptr2len((char *)p)) > 1) {
p += l;
- } else if (*p == '-') {
+ } else if (*p == '-') {
p++;
if (*p != ']' && *p != NUL) {
MB_PTR_ADV(p);
@@ -488,12 +500,13 @@ static char_u *skip_anyof(char_u *p)
char_u *skip_regexp(char_u *startp, int dirc, int magic, char_u **newp)
{
int mymagic;
- char_u *p = startp;
+ char_u *p = startp;
- if (magic)
+ if (magic) {
mymagic = MAGIC_ON;
- else
+ } else {
mymagic = MAGIC_OFF;
+ }
get_cpo_flags();
for (; p[0] != NUL; MB_PTR_ADV(p)) {
@@ -503,9 +516,10 @@ char_u *skip_regexp(char_u *startp, int dirc, int magic, char_u **newp)
if ((p[0] == '[' && mymagic >= MAGIC_ON)
|| (p[0] == '\\' && p[1] == '[' && mymagic <= MAGIC_OFF)) {
p = skip_anyof(p + 1);
- if (p[0] == NUL)
+ if (p[0] == NUL) {
break;
- } else if (p[0] == '\\' && p[1] != NUL) {
+ }
+ } else if (p[0] == '\\' && p[1] != NUL) {
if (dirc == '?' && newp != NULL && p[1] == '?') {
// change "\?" to "?", make a copy first.
if (*newp == NULL) {
@@ -686,8 +700,7 @@ static int peekchr(void)
}
}
break;
- case '\\':
- {
+ case '\\': {
int c = regparse[1];
if (c == NUL) {
@@ -712,13 +725,11 @@ static int peekchr(void)
* Handle abbreviations, like "\t" for TAB -- webb
*/
curchr = backslash_trans(c);
- } else if (reg_magic == MAGIC_NONE && (c == '$' || c == '^'))
+ } else if (reg_magic == MAGIC_NONE && (c == '$' || c == '^')) {
curchr = toggle_Magic(c);
- else {
- /*
- * Next character can never be (made) magic?
- * Then backslashing it won't do anything.
- */
+ } else {
+ // Next character can never be (made) magic?
+ // Then backslashing it won't do anything.
curchr = utf_ptr2char((char *)regparse + 1);
}
break;
@@ -804,7 +815,7 @@ static void ungetchr(void)
* Return -1 if there is no valid hex number.
* The position is updated:
* blahblah\%x20asdf
- * before-^ ^-after
+ * before-^ ^-after
* The parameter controls the maximum number of input characters. This will be
* 2 when reading a \%x20 sequence and 4 when reading a \%u20AC sequence.
*/
@@ -816,15 +827,17 @@ static int64_t gethexchrs(int maxinputlen)
for (i = 0; i < maxinputlen; ++i) {
c = regparse[0];
- if (!ascii_isxdigit(c))
+ if (!ascii_isxdigit(c)) {
break;
+ }
nr <<= 4;
nr |= hex2nr(c);
++regparse;
}
- if (i == 0)
+ if (i == 0) {
return -1;
+ }
return nr;
}
@@ -840,16 +853,18 @@ static int64_t getdecchrs(void)
for (i = 0;; ++i) {
c = regparse[0];
- if (c < '0' || c > '9')
+ if (c < '0' || c > '9') {
break;
+ }
nr *= 10;
nr += c - '0';
regparse++;
curchr = -1; // no longer valid
}
- if (i == 0)
+ if (i == 0) {
return -1;
+ }
return nr;
}
@@ -859,7 +874,7 @@ static int64_t getdecchrs(void)
* numbers > 377 correctly (for example, 400 is treated as 40) and doesn't
* treat 8 or 9 as recognised characters. Position is updated:
* blahblah\%o210asdf
- * before-^ ^-after
+ * before-^ ^-after
*/
static int64_t getoctchrs(void)
{
@@ -869,15 +884,17 @@ static int64_t getoctchrs(void)
for (i = 0; i < 3 && nr < 040; i++) { // -V536
c = regparse[0];
- if (c < '0' || c > '7')
+ if (c < '0' || c > '7') {
break;
+ }
nr <<= 3;
nr |= hex2nr(c);
++regparse;
}
- if (i == 0)
+ if (i == 0) {
return -1;
+ }
return nr;
}
@@ -891,7 +908,7 @@ static int64_t getoctchrs(void)
static int read_limits(long *minval, long *maxval)
{
int reverse = false;
- char_u *first_char;
+ char_u *first_char;
long tmp;
if (*regparse == '-') {
@@ -943,7 +960,7 @@ static int read_limits(long *minval, long *maxval)
// Sometimes need to save a copy of a line. Since alloc()/free() is very
// slow, we keep one allocated piece of memory and only re-allocate it when
// it's too small. It's freed in bt_regexec_both() when finished.
-static char_u *reg_tofree = NULL;
+static char_u *reg_tofree = NULL;
static unsigned reg_tofreelen;
// Structure used to store the execution state of the regex engine.
@@ -1039,8 +1056,8 @@ static char_u *reg_getline(linenr_T lnum)
return ml_get_buf(rex.reg_buf, rex.reg_firstlnum + lnum, false);
}
-static char_u *reg_startzp[NSUBEXP]; // Workspace to mark beginning
-static char_u *reg_endzp[NSUBEXP]; // and end of \z(...\) matches
+static char_u *reg_startzp[NSUBEXP]; // Workspace to mark beginning
+static char_u *reg_endzp[NSUBEXP]; // and end of \z(...\) matches
static lpos_T reg_startzpos[NSUBEXP]; // idem, beginning pos
static lpos_T reg_endzpos[NSUBEXP]; // idem, end pos
@@ -1063,8 +1080,9 @@ static reg_extmatch_T *make_extmatch(void)
*/
reg_extmatch_T *ref_extmatch(reg_extmatch_T *em)
{
- if (em != NULL)
+ if (em != NULL) {
em->refcnt++;
+ }
return em;
}
@@ -1077,8 +1095,9 @@ void unref_extmatch(reg_extmatch_T *em)
int i;
if (em != NULL && --em->refcnt <= 0) {
- for (i = 0; i < NSUBEXP; ++i)
+ for (i = 0; i < NSUBEXP; i++) {
xfree(em->matches[i]);
+ }
xfree(em);
}
}
@@ -1087,9 +1106,8 @@ void unref_extmatch(reg_extmatch_T *em)
static int reg_prev_class(void)
{
if (rex.input > rex.line) {
- return mb_get_class_tab(
- rex.input - 1 - utf_head_off(rex.line, rex.input - 1),
- rex.reg_buf->b_chartab);
+ return mb_get_class_tab(rex.input - 1 - utf_head_off(rex.line, rex.input - 1),
+ rex.reg_buf->b_chartab);
}
return -1;
}
@@ -1147,10 +1165,12 @@ static bool reg_match_visual(void)
} else if (mode == Ctrl_V) {
getvvcol(wp, &top, &start, NULL, &end);
getvvcol(wp, &bot, &start2, NULL, &end2);
- if (start2 < start)
+ if (start2 < start) {
start = start2;
- if (end2 > end)
+ }
+ if (end2 > end) {
end = end2;
+ }
if (top.col == MAXCOL || bot.col == MAXCOL || curswant == MAXCOL) {
end = MAXCOL;
}
@@ -1175,7 +1195,7 @@ static bool reg_match_visual(void)
*/
static int prog_magic_wrong(void)
{
- regprog_T *prog;
+ regprog_T *prog;
prog = REG_MULTI ? rex.reg_mmatch->regprog : rex.reg_match->regprog;
if (prog->engine == &nfa_regengine) {
@@ -1241,21 +1261,18 @@ static void reg_nextline(void)
* If "bytelen" is not NULL, it is set to the byte length of the match in the
* last line.
*/
-static int match_with_backref(
- linenr_T start_lnum,
- colnr_T start_col,
- linenr_T end_lnum,
- colnr_T end_col,
- int *bytelen)
+static int match_with_backref(linenr_T start_lnum, colnr_T start_col, linenr_T end_lnum,
+ colnr_T end_col, int *bytelen)
{
linenr_T clnum = start_lnum;
colnr_T ccol = start_col;
int len;
- char_u *p;
+ char_u *p;
- if (bytelen != NULL)
+ if (bytelen != NULL) {
*bytelen = 0;
- for (;; ) {
+ }
+ for (;;) {
// Since getting one line may invalidate the other, need to make copy.
// Slow!
if (rex.line != reg_tofree) {
@@ -1275,10 +1292,11 @@ static int match_with_backref(
p = reg_getline(clnum);
assert(p);
- if (clnum == end_lnum)
+ if (clnum == end_lnum) {
len = end_col - ccol;
- else
+ } else {
len = (int)STRLEN(p + ccol);
+ }
if (cstrncmp(p + ccol, rex.input, &len) != 0) {
return RA_NOMATCH; // doesn't match
@@ -1295,12 +1313,14 @@ static int match_with_backref(
// Advance to next line.
reg_nextline();
- if (bytelen != NULL)
+ if (bytelen != NULL) {
*bytelen = 0;
- ++clnum;
+ }
+ clnum++;
ccol = 0;
- if (got_int)
+ if (got_int) {
return RA_FAIL;
+ }
}
// found a match! Note that rex.line may now point to a copy of the line,
@@ -1324,7 +1344,7 @@ typedef struct {
} decomp_T;
// 0xfb20 - 0xfb4f
-static decomp_T decomp_table[0xfb4f-0xfb20+1] =
+static decomp_T decomp_table[0xfb4f - 0xfb20 + 1] =
{
{ 0x5e2, 0, 0 }, // 0xfb20 alt ayin
{ 0x5d0, 0, 0 }, // 0xfb21 alt alef
@@ -1407,7 +1427,7 @@ static int cstrncmp(char_u *s1, char_u *s2, int *n)
// if it failed and it's utf8 and we want to combineignore:
if (result != 0 && rex.reg_icombine) {
- char_u *str1, *str2;
+ char_u *str1, *str2;
int c1, c2, c11, c12;
int junk;
@@ -1435,8 +1455,9 @@ static int cstrncmp(char_u *s1, char_u *s2, int *n)
}
}
result = c2 - c1;
- if (result == 0)
+ if (result == 0) {
*n = (int)(str2 - s2);
+ }
}
return result;
@@ -1456,7 +1477,7 @@ static inline char_u *cstrchr(const char_u *const s, const int c)
FUNC_ATTR_ALWAYS_INLINE
{
if (!rex.reg_ic) {
- return vim_strchr(s, c);
+ return (char_u *)vim_strchr((char *)s, c);
}
// Use folded case for UTF-8, slow! For ASCII use libc strpbrk which is
@@ -1477,7 +1498,7 @@ static inline char_u *cstrchr(const char_u *const s, const int c)
} else if (ASCII_ISLOWER(c)) {
cc = TOUPPER_ASC(c);
} else {
- return vim_strchr(s, c);
+ return (char_u *)vim_strchr((char *)s, c);
}
char tofind[] = { (char)c, (char)cc, NUL };
@@ -1533,9 +1554,9 @@ static fptr_T do_Lower(int *d, int c)
*/
char_u *regtilde(char_u *source, int magic, bool preview)
{
- char_u *newsub = source;
- char_u *tmpsub;
- char_u *p;
+ char_u *newsub = source;
+ char_u *tmpsub;
+ char_u *p;
int len;
int prevlen;
@@ -1605,8 +1626,7 @@ static regsubmatch_T rsm; // can only be used when can_f_submatch is true
/// Put the submatches in "argv[argskip]" which is a list passed into
/// call_func() by vim_regsub_both().
-static int fill_submatch_list(int argc FUNC_ATTR_UNUSED, typval_T *argv,
- int argskip, int argcount)
+static int fill_submatch_list(int argc FUNC_ATTR_UNUSED, typval_T *argv, int argskip, int argcount)
FUNC_ATTR_NONNULL_ALL
{
typval_T *listarg = argv + argskip;
@@ -1658,8 +1678,8 @@ static void clear_submatch_list(staticList10_T *sl)
/// references invalid!
///
/// Returns the size of the replacement, including terminating NUL.
-int vim_regsub(regmatch_T *rmp, char_u *source, typval_T *expr, char_u *dest,
- int copy, int magic, int backslash)
+int vim_regsub(regmatch_T *rmp, char_u *source, typval_T *expr, char_u *dest, int copy, int magic,
+ int backslash)
{
regexec_T rex_save;
bool rex_in_use_save = rex_in_use;
@@ -1685,8 +1705,8 @@ int vim_regsub(regmatch_T *rmp, char_u *source, typval_T *expr, char_u *dest,
return result;
}
-int vim_regsub_multi(regmmatch_T *rmp, linenr_T lnum, char_u *source, char_u *dest,
- int copy, int magic, int backslash)
+int vim_regsub_multi(regmmatch_T *rmp, linenr_T lnum, char_u *source, char_u *dest, int copy,
+ int magic, int backslash)
{
regexec_T rex_save;
bool rex_in_use_save = rex_in_use;
@@ -1713,12 +1733,12 @@ int vim_regsub_multi(regmmatch_T *rmp, linenr_T lnum, char_u *source, char_u *de
return result;
}
-static int vim_regsub_both(char_u *source, typval_T *expr, char_u *dest,
- int copy, int magic, int backslash)
+static int vim_regsub_both(char_u *source, typval_T *expr, char_u *dest, int copy, int magic,
+ int backslash)
{
- char_u *src;
- char_u *dst;
- char_u *s;
+ char_u *src;
+ char_u *dst;
+ char_u *s;
int c;
int cc;
int no = -1;
@@ -1737,8 +1757,9 @@ static int vim_regsub_both(char_u *source, typval_T *expr, char_u *dest,
emsg(_(e_null));
return 0;
}
- if (prog_magic_wrong())
+ if (prog_magic_wrong()) {
return 0;
+ }
src = source;
dst = dest;
@@ -1851,28 +1872,33 @@ static int vim_regsub_both(char_u *source, typval_T *expr, char_u *dest,
rsm = rsm_save;
}
}
- } else
+ } else {
while ((c = *src++) != NUL) {
- if (c == '&' && magic)
+ if (c == '&' && magic) {
no = 0;
- else if (c == '\\' && *src != NUL) {
+ } else if (c == '\\' && *src != NUL) {
if (*src == '&' && !magic) {
++src;
no = 0;
} else if ('0' <= *src && *src <= '9') {
no = *src++ - '0';
- } else if (vim_strchr((char_u *)"uUlLeE", *src)) {
+ } else if (vim_strchr("uUlLeE", *src)) {
switch (*src++) {
- case 'u': func_one = (fptr_T)do_upper;
+ case 'u':
+ func_one = (fptr_T)do_upper;
continue;
- case 'U': func_all = (fptr_T)do_Upper;
+ case 'U':
+ func_all = (fptr_T)do_Upper;
continue;
- case 'l': func_one = (fptr_T)do_lower;
+ case 'l':
+ func_one = (fptr_T)do_lower;
continue;
- case 'L': func_all = (fptr_T)do_Lower;
+ case 'L':
+ func_all = (fptr_T)do_Lower;
continue;
case 'e':
- case 'E': func_one = func_all = (fptr_T)NULL;
+ case 'E':
+ func_one = func_all = (fptr_T)NULL;
continue;
}
}
@@ -1894,12 +1920,16 @@ static int vim_regsub_both(char_u *source, typval_T *expr, char_u *dest,
if (c == '\\' && *src != NUL) {
// Check for abbreviations -- webb
switch (*src) {
- case 'r': c = CAR; ++src; break;
- case 'n': c = NL; ++src; break;
- case 't': c = TAB; ++src; break;
+ case 'r':
+ c = CAR; ++src; break;
+ case 'n':
+ c = NL; ++src; break;
+ case 't':
+ c = TAB; ++src; break;
// Oh no! \e already has meaning in subst pat :-(
// case 'e': c = ESC; ++src; break;
- case 'b': c = Ctrl_H; ++src; break;
+ case 'b':
+ c = Ctrl_H; ++src; break;
// If "backslash" is true the backslash will be removed
// later. Used to insert a literal CR.
@@ -1967,7 +1997,7 @@ static int vim_regsub_both(char_u *source, typval_T *expr, char_u *dest,
}
}
if (s != NULL) {
- for (;; ) {
+ for (;;) {
if (len == 0) {
if (REG_MULTI) {
if (rex.reg_mmatch->endpos[no].lnum == clnum) {
@@ -2042,8 +2072,10 @@ static int vim_regsub_both(char_u *source, typval_T *expr, char_u *dest,
no = -1;
}
}
- if (copy)
+ }
+ if (copy) {
*dst = NUL;
+ }
exit:
return (int)((dst - dest) + 1 - num_escaped);
@@ -2078,13 +2110,14 @@ static char_u *reg_getline_submatch(linenr_T lnum)
*/
char_u *reg_submatch(int no)
{
- char_u *retval = NULL;
- char_u *s;
+ char_u *retval = NULL;
+ char_u *s;
int round;
linenr_T lnum;
- if (!can_f_submatch || no < 0)
+ if (!can_f_submatch || no < 0) {
return NULL;
+ }
if (rsm.sm_match == NULL) {
ssize_t len;
@@ -2123,12 +2156,14 @@ char_u *reg_submatch(int no)
lnum++;
while (lnum < rsm.sm_mmatch->endpos[no].lnum) {
s = reg_getline_submatch(lnum++);
- if (round == 2)
+ if (round == 2) {
STRCPY(retval + len, s);
+ }
len += STRLEN(s);
- if (round == 2)
+ if (round == 2) {
retval[len] = '\n';
- ++len;
+ }
+ len++;
}
if (round == 2) {
STRNCPY(retval + len, reg_getline_submatch(lnum),
@@ -2250,11 +2285,11 @@ static char_u regname[][30] = {
* Use vim_regfree() to free the memory.
* Returns NULL for an error.
*/
-regprog_T *vim_regcomp(char_u *expr_arg, int re_flags)
+regprog_T *vim_regcomp(char *expr_arg, int re_flags)
{
- regprog_T *prog = NULL;
- char_u *expr = expr_arg;
- int save_called_emsg;
+ regprog_T *prog = NULL;
+ char_u *expr = (char_u *)expr_arg;
+ int save_called_emsg;
regexp_engine = p_re;
@@ -2273,8 +2308,7 @@ regprog_T *vim_regcomp(char_u *expr_arg, int re_flags)
regname[newengine]);
#endif
} else {
- emsg(_(
- "E864: \\%#= can only be followed by 0, 1, or 2. The automatic engine will be used "));
+ emsg(_("E864: \\%#= can only be followed by 0, 1, or 2. The automatic engine will be used "));
regexp_engine = AUTOMATIC_ENGINE;
}
}
@@ -2292,7 +2326,7 @@ regprog_T *vim_regcomp(char_u *expr_arg, int re_flags)
called_emsg = false;
if (regexp_engine != BACKTRACKING_ENGINE) {
prog = nfa_regengine.regcomp(expr,
- re_flags + (regexp_engine == AUTOMATIC_ENGINE ? RE_AUTO : 0));
+ re_flags + (regexp_engine == AUTOMATIC_ENGINE ? RE_AUTO : 0));
} else {
prog = bt_regengine.regcomp(expr, re_flags);
}
@@ -2339,8 +2373,9 @@ regprog_T *vim_regcomp(char_u *expr_arg, int re_flags)
*/
void vim_regfree(regprog_T *prog)
{
- if (prog != NULL)
+ if (prog != NULL) {
prog->engine->regfree(prog);
+ }
}
@@ -2413,7 +2448,7 @@ static bool vim_regexec_string(regmatch_T *rmp, char_u *line, colnr_T col, bool
p_re = BACKTRACKING_ENGINE;
vim_regfree(rmp->regprog);
report_re_switch(pat);
- rmp->regprog = vim_regcomp(pat, re_flags);
+ rmp->regprog = vim_regcomp((char *)pat, re_flags);
if (rmp->regprog != NULL) {
rmp->regprog->re_in_use = true;
result = rmp->regprog->engine->regexec_nl(rmp, line, col, nl);
@@ -2462,16 +2497,17 @@ bool vim_regexec_nl(regmatch_T *rmp, char_u *line, colnr_T col)
/// Note: "rmp->regprog" may be freed and changed, even set to NULL.
/// Uses curbuf for line count and 'iskeyword'.
///
-/// Return zero if there is no match. Return number of lines contained in the
-/// match otherwise.
-long vim_regexec_multi(
- regmmatch_T *rmp,
- win_T *win, // window in which to search or NULL
- buf_T *buf, // buffer in which to search
- linenr_T lnum, // nr of line to start looking for match
- colnr_T col, // column to start looking for match
- proftime_T *tm, // timeout limit or NULL
- int *timed_out) // flag is set when timeout limit reached
+/// @param win window in which to search or NULL
+/// @param buf buffer in which to search
+/// @param lnum nr of line to start looking for match
+/// @param col column to start looking for match
+/// @param tm timeout limit or NULL
+/// @param timed_out flag is set when timeout limit reached
+///
+/// @return zero if there is no match. Return number of lines contained in the
+/// match otherwise.
+long vim_regexec_multi(regmmatch_T *rmp, win_T *win, buf_T *buf, linenr_T lnum, colnr_T col,
+ proftime_T *tm, int *timed_out)
FUNC_ATTR_NONNULL_ARG(1)
{
regexec_T rex_save;
@@ -2508,7 +2544,7 @@ long vim_regexec_multi(
// checking for \z misuse was already done when compiling for NFA,
// allow all here
reg_do_extmatch = REX_ALL;
- rmp->regprog = vim_regcomp(pat, re_flags);
+ rmp->regprog = vim_regcomp((char *)pat, re_flags);
reg_do_extmatch = 0;
if (rmp->regprog == NULL) {
diff --git a/src/nvim/regexp_bt.c b/src/nvim/regexp_bt.c
index ed03bb6172..c13c2c6832 100644
--- a/src/nvim/regexp_bt.c
+++ b/src/nvim/regexp_bt.c
@@ -1,8 +1,6 @@
// This is an open source non-commercial project. Dear PVS-Studio, please check
// it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
-// uncrustify:off
-
/*
*
* Backtracking regular expression implementation.
@@ -19,22 +17,22 @@
*
* END NOTICE
*
- * Copyright (c) 1986 by University of Toronto.
- * Written by Henry Spencer. Not derived from licensed software.
+ * Copyright (c) 1986 by University of Toronto.
+ * Written by Henry Spencer. Not derived from licensed software.
*
- * Permission is granted to anyone to use this software for any
- * purpose on any computer system, and to redistribute it freely,
- * subject to the following restrictions:
+ * Permission is granted to anyone to use this software for any
+ * purpose on any computer system, and to redistribute it freely,
+ * subject to the following restrictions:
*
- * 1. The author is not responsible for the consequences of use of
- * this software, no matter how awful, even if they arise
- * from defects in it.
+ * 1. The author is not responsible for the consequences of use of
+ * this software, no matter how awful, even if they arise
+ * from defects in it.
*
- * 2. The origin of this software must not be misrepresented, either
- * by explicit claim or by omission.
+ * 2. The origin of this software must not be misrepresented, either
+ * by explicit claim or by omission.
*
- * 3. Altered versions must be plainly marked as such, and must not
- * be misrepresented as being the original software.
+ * 3. Altered versions must be plainly marked as such, and must not
+ * be misrepresented as being the original software.
*
* Beware that some of this code is subtly aware of the way operator
* precedence is structured in regular expressions. Serious changes in
@@ -51,12 +49,12 @@
* compile to execute that permits the execute phase to run lots faster on
* simple cases. They are:
*
- * regstart char that must begin a match; NUL if none obvious; Can be a
- * multi-byte character.
- * reganch is the match anchored (at beginning-of-line only)?
- * regmust string (pointer into program) that match must include, or NULL
- * regmlen length of regmust string
- * regflags RF_ values or'ed together
+ * regstart char that must begin a match; NUL if none obvious; Can be a
+ * multi-byte character.
+ * reganch is the match anchored (at beginning-of-line only)?
+ * regmust string (pointer into program) that match must include, or NULL
+ * regmlen length of regmust string
+ * regflags RF_ values or'ed together
*
* Regstart and reganch permit very fast decisions on suitable starting points
* for a match, cutting down the work a lot. Regmust permits fast rejection
@@ -75,7 +73,7 @@
* plus a "next" pointer, possibly plus an operand. "Next" pointers of
* all nodes except BRANCH and BRACES_COMPLEX implement concatenation; a "next"
* pointer with a BRANCH on both ends of it is connecting two alternatives.
- * (Here we have one of the subtle syntax dependencies: an individual BRANCH
+ * (Here we have one of the subtle syntax dependencies: an individual BRANCH
* (as opposed to a collection of them) is never concatenated with anything
* because of operator precedence). The "next" pointer of a BRACES_COMPLEX
* node points to the node after the stuff to be repeated.
@@ -85,52 +83,52 @@
* (NB this is *not* a tree structure: the tail of the branch connects to the
* thing following the set of BRANCHes.)
*
- * pattern is coded like:
+ * pattern is coded like:
*
- * +-----------------+
- * | V
- * <aa>\|<bb> BRANCH <aa> BRANCH <bb> --> END
- * | ^ | ^
- * +------+ +----------+
+ * +-----------------+
+ * | V
+ * <aa>\|<bb> BRANCH <aa> BRANCH <bb> --> END
+ * | ^ | ^
+ * +------+ +----------+
*
*
- * +------------------+
- * V |
- * <aa>* BRANCH BRANCH <aa> --> BACK BRANCH --> NOTHING --> END
- * | | ^ ^
- * | +---------------+ |
- * +---------------------------------------------+
+ * +------------------+
+ * V |
+ * <aa>* BRANCH BRANCH <aa> --> BACK BRANCH --> NOTHING --> END
+ * | | ^ ^
+ * | +---------------+ |
+ * +---------------------------------------------+
*
*
- * +----------------------+
- * V |
- * <aa>\+ BRANCH <aa> --> BRANCH --> BACK BRANCH --> NOTHING --> END
- * | | ^ ^
- * | +-----------+ |
- * +--------------------------------------------------+
+ * +----------------------+
+ * V |
+ * <aa>\+ BRANCH <aa> --> BRANCH --> BACK BRANCH --> NOTHING --> END
+ * | | ^ ^
+ * | +-----------+ |
+ * +--------------------------------------------------+
*
*
- * +-------------------------+
- * V |
- * <aa>\{} BRANCH BRACE_LIMITS --> BRACE_COMPLEX <aa> --> BACK END
- * | | ^
- * | +----------------+
- * +-----------------------------------------------+
+ * +-------------------------+
+ * V |
+ * <aa>\{} BRANCH BRACE_LIMITS --> BRACE_COMPLEX <aa> --> BACK END
+ * | | ^
+ * | +----------------+
+ * +-----------------------------------------------+
*
*
- * <aa>\@!<bb> BRANCH NOMATCH <aa> --> END <bb> --> END
- * | | ^ ^
- * | +----------------+ |
- * +--------------------------------+
+ * <aa>\@!<bb> BRANCH NOMATCH <aa> --> END <bb> --> END
+ * | | ^ ^
+ * | +----------------+ |
+ * +--------------------------------+
*
- * +---------+
- * | V
- * \z[abc] BRANCH BRANCH a BRANCH b BRANCH c BRANCH NOTHING --> END
- * | | | | ^ ^
- * | | | +-----+ |
- * | | +----------------+ |
- * | +---------------------------+ |
- * +------------------------------------------------------+
+ * +---------+
+ * | V
+ * \z[abc] BRANCH BRANCH a BRANCH b BRANCH c BRANCH NOTHING --> END
+ * | | | | ^ ^
+ * | | | +-----+ |
+ * | | +----------------+ |
+ * | +---------------------------+ |
+ * +------------------------------------------------------+
*
* They all start with a BRANCH for "\|" alternatives, even when there is only
* one alternative.
@@ -141,8 +139,8 @@
#include <stdbool.h>
#include <string.h>
-#include "nvim/regexp.h"
#include "nvim/garray.h"
+#include "nvim/regexp.h"
/*
* The opcodes are:
@@ -220,10 +218,10 @@
// end of match.
#define BACKREF 100 // -109 node Match same string again \1-\9.
-# define ZOPEN 110 // -119 Mark this point in input as start of
- // \z( … \) subexpr.
-# define ZCLOSE 120 // -129 Analogous to ZOPEN.
-# define ZREF 130 // -139 node Match external submatch \z1-\z9
+#define ZOPEN 110 // -119 Mark this point in input as start of
+ // \z( … \) subexpr.
+#define ZCLOSE 120 // -129 Analogous to ZOPEN.
+#define ZREF 130 // -139 node Match external submatch \z1-\z9
#define BRACE_COMPLEX 140 // -149 node Match nodes between m & n times
@@ -267,8 +265,8 @@ static int brace_count[10]; ///< Current counts for complex brace repeats
static int one_exactly = false; ///< only do one char for EXACTLY
// When making changes to classchars also change nfa_classcodes.
-static char_u *classchars = (char_u *)".iIkKfFpPsSdDxXoOwWhHaAlLuU";
-static int classcodes[] = {
+static char_u *classchars = (char_u *)".iIkKfFpPsSdDxXoOwWhHaAlLuU";
+static int classcodes[] = {
ANY, IDENT, SIDENT, KWORD, SKWORD,
FNAME, SFNAME, PRINT, SPRINT,
WHITE, NWHITE, DIGIT, NDIGIT,
@@ -282,7 +280,7 @@ static int classcodes[] = {
* When regcode is set to this value, code is not emitted and size is computed
* instead.
*/
-#define JUST_CALC_SIZE ((char_u *) -1)
+#define JUST_CALC_SIZE ((char_u *)-1)
// Values for rs_state in regitem_T.
typedef enum regstate_E {
@@ -299,7 +297,7 @@ typedef enum regstate_E {
RS_BEHIND1, // BEHIND / NOBEHIND matching rest
RS_BEHIND2, // BEHIND / NOBEHIND matching behind part
RS_STAR_LONG, // STAR/PLUS/BRACE_SIMPLE longest match
- RS_STAR_SHORT // STAR/PLUS/BRACE_SIMPLE shortest match
+ RS_STAR_SHORT, // STAR/PLUS/BRACE_SIMPLE shortest match
} regstate_T;
/*
@@ -307,34 +305,29 @@ typedef enum regstate_E {
* restored after trying a match. Used by reg_save() and reg_restore().
* Also stores the length of "backpos".
*/
-typedef struct
-{
- union
- {
- char_u *ptr; // rex.input pointer, for single-line regexp
- lpos_T pos; // rex.input pos, for multi-line regexp
+typedef struct {
+ union {
+ char_u *ptr; // rex.input pointer, for single-line regexp
+ lpos_T pos; // rex.input pos, for multi-line regexp
} rs_u;
- int rs_len;
+ int rs_len;
} regsave_T;
// struct to save start/end pointer/position in for \(\)
-typedef struct
-{
- union
- {
- char_u *ptr;
- lpos_T pos;
- } se_u;
+typedef struct {
+ union {
+ char_u *ptr;
+ lpos_T pos;
+ } se_u;
} save_se_T;
// used for BEHIND and NOBEHIND matching
-typedef struct regbehind_S
-{
- regsave_T save_after;
- regsave_T save_behind;
- int save_need_clear_subexpr;
- save_se_T save_start[NSUBEXP];
- save_se_T save_end[NSUBEXP];
+typedef struct regbehind_S {
+ regsave_T save_after;
+ regsave_T save_behind;
+ int save_need_clear_subexpr;
+ save_se_T save_start[NSUBEXP];
+ save_se_T save_end[NSUBEXP];
} regbehind_T;
/*
@@ -343,35 +336,31 @@ typedef struct regbehind_S
* Before it may be another type of item, depending on rs_state, to remember
* more things.
*/
-typedef struct regitem_S
-{
- regstate_T rs_state; // what we are doing, one of RS_ above
- short rs_no; // submatch nr or BEHIND/NOBEHIND
- char_u *rs_scan; // current node in program
- union
- {
- save_se_T sesave;
- regsave_T regsave;
+typedef struct regitem_S {
+ regstate_T rs_state; // what we are doing, one of RS_ above
+ int16_t rs_no; // submatch nr or BEHIND/NOBEHIND
+ char_u *rs_scan; // current node in program
+ union {
+ save_se_T sesave;
+ regsave_T regsave;
} rs_un; // room for saving rex.input
} regitem_T;
// used for STAR, PLUS and BRACE_SIMPLE matching
-typedef struct regstar_S
-{
- int nextb; // next byte
- int nextb_ic; // next byte reverse case
- long count;
- long minval;
- long maxval;
+typedef struct regstar_S {
+ int nextb; // next byte
+ int nextb_ic; // next byte reverse case
+ long count;
+ long minval;
+ long maxval;
} regstar_T;
// used to store input position when a BACK was encountered, so that we now if
// we made any progress since the last time.
-typedef struct backpos_S
-{
- char_u *bp_scan; // "scan" where BACK was encountered
- regsave_T bp_pos; // last input position
+typedef struct backpos_S {
+ char_u *bp_scan; // "scan" where BACK was encountered
+ regsave_T bp_pos; // last input position
} backpos_T;
/*
@@ -397,34 +386,34 @@ static regsave_T behind_pos;
* This makes it fast while not keeping a lot of memory allocated.
* A three times speed increase was observed when using many simple patterns.
*/
-#define REGSTACK_INITIAL 2048
-#define BACKPOS_INITIAL 64
+#define REGSTACK_INITIAL 2048
+#define BACKPOS_INITIAL 64
/*
* Opcode notes:
*
- * BRANCH The set of branches constituting a single choice are hooked
- * together with their "next" pointers, since precedence prevents
- * anything being concatenated to any individual branch. The
- * "next" pointer of the last BRANCH in a choice points to the
- * thing following the whole choice. This is also where the
- * final "next" pointer of each individual branch points; each
- * branch starts with the operand node of a BRANCH node.
+ * BRANCH The set of branches constituting a single choice are hooked
+ * together with their "next" pointers, since precedence prevents
+ * anything being concatenated to any individual branch. The
+ * "next" pointer of the last BRANCH in a choice points to the
+ * thing following the whole choice. This is also where the
+ * final "next" pointer of each individual branch points; each
+ * branch starts with the operand node of a BRANCH node.
*
- * BACK Normal "next" pointers all implicitly point forward; BACK
- * exists to make loop structures possible.
+ * BACK Normal "next" pointers all implicitly point forward; BACK
+ * exists to make loop structures possible.
*
- * STAR,PLUS '=', and complex '*' and '+', are implemented as circular
- * BRANCH structures using BACK. Simple cases (one character
- * per match) are implemented with STAR and PLUS for speed
- * and to minimize recursive plunges.
+ * STAR,PLUS '=', and complex '*' and '+', are implemented as circular
+ * BRANCH structures using BACK. Simple cases (one character
+ * per match) are implemented with STAR and PLUS for speed
+ * and to minimize recursive plunges.
*
- * BRACE_LIMITS This is always followed by a BRACE_SIMPLE or BRACE_COMPLEX
- * node, and defines the min and max limits to be used for that
- * node.
+ * BRACE_LIMITS This is always followed by a BRACE_SIMPLE or BRACE_COMPLEX
+ * node, and defines the min and max limits to be used for that
+ * node.
*
- * MOPEN,MCLOSE ...are numbered at compile time.
- * ZOPEN,ZCLOSE ...ditto
+ * MOPEN,MCLOSE ...are numbered at compile time.
+ * ZOPEN,ZCLOSE ...ditto
*/
/*
@@ -442,7 +431,7 @@ static regsave_T behind_pos;
#define OPERAND(p) ((p) + 3)
// Obtain an operand that was stored as four bytes, MSB first.
#define OPERAND_MIN(p) (((long)(p)[3] << 24) + ((long)(p)[4] << 16) \
- + ((long)(p)[5] << 8) + (long)(p)[6])
+ + ((long)(p)[5] << 8) + (long)(p)[6])
// Obtain a second operand stored as four bytes.
#define OPERAND_MAX(p) OPERAND_MIN((p) + 4)
// Obtain a second single-byte operand stored after a four bytes operand.
@@ -451,14 +440,14 @@ static regsave_T behind_pos;
static char_u *reg(int paren, int *flagp);
#ifdef BT_REGEXP_DUMP
-static void regdump(char_u *, bt_regprog_T *);
+static void regdump(char_u *, bt_regprog_T *);
#endif
#ifdef REGEXP_DEBUG
-static char_u *regprop(char_u *);
+static char_u *regprop(char_u *);
-static int regnarrate = 0;
+static int regnarrate = 0;
#endif
#ifdef INCLUDE_GENERATED_DECLARATIONS
@@ -469,15 +458,14 @@ static int regnarrate = 0;
/*
* Setup to parse the regexp. Used once to get the length and once to do it.
*/
-static void regcomp_start(
- char_u *expr,
- int re_flags) // see vim_regcomp()
+static void regcomp_start(char_u *expr, int re_flags) // see vim_regcomp()
{
initchr(expr);
- if (re_flags & RE_MAGIC)
+ if (re_flags & RE_MAGIC) {
reg_magic = MAGIC_ON;
- else
+ } else {
reg_magic = MAGIC_OFF;
+ }
reg_string = (re_flags & RE_STRING);
reg_strict = (re_flags & RE_STRICT);
get_cpo_flags();
@@ -508,10 +496,11 @@ static bool use_multibytecode(int c)
*/
static void regc(int b)
{
- if (regcode == JUST_CALC_SIZE)
+ if (regcode == JUST_CALC_SIZE) {
regsize++;
- else
+ } else {
*regcode++ = b;
+ }
}
/*
@@ -537,12 +526,36 @@ static void reg_equi_class(int c)
{
switch (c) {
// Do not use '\300' style, it results in a negative number.
- case 'A': case 0xc0: case 0xc1: case 0xc2: case 0xc3: case 0xc4:
- case 0xc5: case 0x100: case 0x102: case 0x104: case 0x1cd:
- case 0x1de: case 0x1e0: case 0x1fa: case 0x202: case 0x226:
- case 0x23a: case 0x1e00: case 0x1ea0: case 0x1ea2: case 0x1ea4:
- case 0x1ea6: case 0x1ea8: case 0x1eaa: case 0x1eac: case 0x1eae:
- case 0x1eb0: case 0x1eb2: case 0x1eb4: case 0x1eb6:
+ case 'A':
+ case 0xc0:
+ case 0xc1:
+ case 0xc2:
+ case 0xc3:
+ case 0xc4:
+ case 0xc5:
+ case 0x100:
+ case 0x102:
+ case 0x104:
+ case 0x1cd:
+ case 0x1de:
+ case 0x1e0:
+ case 0x1fa:
+ case 0x202:
+ case 0x226:
+ case 0x23a:
+ case 0x1e00:
+ case 0x1ea0:
+ case 0x1ea2:
+ case 0x1ea4:
+ case 0x1ea6:
+ case 0x1ea8:
+ case 0x1eaa:
+ case 0x1eac:
+ case 0x1eae:
+ case 0x1eb0:
+ case 0x1eb2:
+ case 0x1eb4:
+ case 0x1eb6:
regmbc('A'); regmbc(0xc0); regmbc(0xc1); regmbc(0xc2);
regmbc(0xc3); regmbc(0xc4); regmbc(0xc5);
regmbc(0x100); regmbc(0x102); regmbc(0x104);
@@ -554,33 +567,71 @@ static void reg_equi_class(int c)
regmbc(0x1eae); regmbc(0x1eb0); regmbc(0x1eb2);
regmbc(0x1eb4); regmbc(0x1eb6);
return;
- case 'B': case 0x181: case 0x243: case 0x1e02:
- case 0x1e04: case 0x1e06:
+ case 'B':
+ case 0x181:
+ case 0x243:
+ case 0x1e02:
+ case 0x1e04:
+ case 0x1e06:
regmbc('B');
regmbc(0x181); regmbc(0x243); regmbc(0x1e02);
regmbc(0x1e04); regmbc(0x1e06);
return;
- case 'C': case 0xc7:
- case 0x106: case 0x108: case 0x10a: case 0x10c: case 0x187:
- case 0x23b: case 0x1e08: case 0xa792:
+ case 'C':
+ case 0xc7:
+ case 0x106:
+ case 0x108:
+ case 0x10a:
+ case 0x10c:
+ case 0x187:
+ case 0x23b:
+ case 0x1e08:
+ case 0xa792:
regmbc('C'); regmbc(0xc7);
regmbc(0x106); regmbc(0x108); regmbc(0x10a);
regmbc(0x10c); regmbc(0x187); regmbc(0x23b);
regmbc(0x1e08); regmbc(0xa792);
return;
- case 'D': case 0x10e: case 0x110: case 0x18a:
- case 0x1e0a: case 0x1e0c: case 0x1e0e: case 0x1e10:
+ case 'D':
+ case 0x10e:
+ case 0x110:
+ case 0x18a:
+ case 0x1e0a:
+ case 0x1e0c:
+ case 0x1e0e:
+ case 0x1e10:
case 0x1e12:
regmbc('D'); regmbc(0x10e); regmbc(0x110);
regmbc(0x18a); regmbc(0x1e0a); regmbc(0x1e0c);
regmbc(0x1e0e); regmbc(0x1e10); regmbc(0x1e12);
return;
- case 'E': case 0xc8: case 0xc9: case 0xca: case 0xcb:
- case 0x112: case 0x114: case 0x116: case 0x118: case 0x11a:
- case 0x204: case 0x206: case 0x228: case 0x246: case 0x1e14:
- case 0x1e16: case 0x1e18: case 0x1e1a: case 0x1e1c:
- case 0x1eb8: case 0x1eba: case 0x1ebc: case 0x1ebe:
- case 0x1ec0: case 0x1ec2: case 0x1ec4: case 0x1ec6:
+ case 'E':
+ case 0xc8:
+ case 0xc9:
+ case 0xca:
+ case 0xcb:
+ case 0x112:
+ case 0x114:
+ case 0x116:
+ case 0x118:
+ case 0x11a:
+ case 0x204:
+ case 0x206:
+ case 0x228:
+ case 0x246:
+ case 0x1e14:
+ case 0x1e16:
+ case 0x1e18:
+ case 0x1e1a:
+ case 0x1e1c:
+ case 0x1eb8:
+ case 0x1eba:
+ case 0x1ebc:
+ case 0x1ebe:
+ case 0x1ec0:
+ case 0x1ec2:
+ case 0x1ec4:
+ case 0x1ec6:
regmbc('E'); regmbc(0xc8); regmbc(0xc9);
regmbc(0xca); regmbc(0xcb); regmbc(0x112);
regmbc(0x114); regmbc(0x116); regmbc(0x118);
@@ -591,30 +642,61 @@ static void reg_equi_class(int c)
regmbc(0x1ebc); regmbc(0x1ebe); regmbc(0x1ec0);
regmbc(0x1ec2); regmbc(0x1ec4); regmbc(0x1ec6);
return;
- case 'F': case 0x191: case 0x1e1e: case 0xa798:
+ case 'F':
+ case 0x191:
+ case 0x1e1e:
+ case 0xa798:
regmbc('F'); regmbc(0x191); regmbc(0x1e1e);
regmbc(0xa798);
return;
- case 'G': case 0x11c: case 0x11e: case 0x120:
- case 0x122: case 0x193: case 0x1e4: case 0x1e6:
- case 0x1f4: case 0x1e20: case 0xa7a0:
+ case 'G':
+ case 0x11c:
+ case 0x11e:
+ case 0x120:
+ case 0x122:
+ case 0x193:
+ case 0x1e4:
+ case 0x1e6:
+ case 0x1f4:
+ case 0x1e20:
+ case 0xa7a0:
regmbc('G'); regmbc(0x11c); regmbc(0x11e);
regmbc(0x120); regmbc(0x122); regmbc(0x193);
regmbc(0x1e4); regmbc(0x1e6); regmbc(0x1f4);
regmbc(0x1e20); regmbc(0xa7a0);
return;
- case 'H': case 0x124: case 0x126: case 0x21e:
- case 0x1e22: case 0x1e24: case 0x1e26:
- case 0x1e28: case 0x1e2a: case 0x2c67:
+ case 'H':
+ case 0x124:
+ case 0x126:
+ case 0x21e:
+ case 0x1e22:
+ case 0x1e24:
+ case 0x1e26:
+ case 0x1e28:
+ case 0x1e2a:
+ case 0x2c67:
regmbc('H'); regmbc(0x124); regmbc(0x126);
regmbc(0x21e); regmbc(0x1e22); regmbc(0x1e24);
regmbc(0x1e26); regmbc(0x1e28); regmbc(0x1e2a);
regmbc(0x2c67);
return;
- case 'I': case 0xcc: case 0xcd: case 0xce: case 0xcf:
- case 0x128: case 0x12a: case 0x12c: case 0x12e:
- case 0x130: case 0x197: case 0x1cf: case 0x208:
- case 0x20a: case 0x1e2c: case 0x1e2e: case 0x1ec8:
+ case 'I':
+ case 0xcc:
+ case 0xcd:
+ case 0xce:
+ case 0xcf:
+ case 0x128:
+ case 0x12a:
+ case 0x12c:
+ case 0x12e:
+ case 0x130:
+ case 0x197:
+ case 0x1cf:
+ case 0x208:
+ case 0x20a:
+ case 0x1e2c:
+ case 0x1e2e:
+ case 0x1ec8:
case 0x1eca:
regmbc('I'); regmbc(0xcc); regmbc(0xcd);
regmbc(0xce); regmbc(0xcf); regmbc(0x128);
@@ -623,44 +705,102 @@ static void reg_equi_class(int c)
regmbc(0x208); regmbc(0x20a); regmbc(0x1e2c);
regmbc(0x1e2e); regmbc(0x1ec8); regmbc(0x1eca);
return;
- case 'J': case 0x134: case 0x248:
+ case 'J':
+ case 0x134:
+ case 0x248:
regmbc('J'); regmbc(0x134); regmbc(0x248);
return;
- case 'K': case 0x136: case 0x198: case 0x1e8: case 0x1e30:
- case 0x1e32: case 0x1e34: case 0x2c69: case 0xa740:
+ case 'K':
+ case 0x136:
+ case 0x198:
+ case 0x1e8:
+ case 0x1e30:
+ case 0x1e32:
+ case 0x1e34:
+ case 0x2c69:
+ case 0xa740:
regmbc('K'); regmbc(0x136); regmbc(0x198);
regmbc(0x1e8); regmbc(0x1e30); regmbc(0x1e32);
regmbc(0x1e34); regmbc(0x2c69); regmbc(0xa740);
return;
- case 'L': case 0x139: case 0x13b: case 0x13d: case 0x13f:
- case 0x141: case 0x23d: case 0x1e36: case 0x1e38:
- case 0x1e3a: case 0x1e3c: case 0x2c60:
+ case 'L':
+ case 0x139:
+ case 0x13b:
+ case 0x13d:
+ case 0x13f:
+ case 0x141:
+ case 0x23d:
+ case 0x1e36:
+ case 0x1e38:
+ case 0x1e3a:
+ case 0x1e3c:
+ case 0x2c60:
regmbc('L'); regmbc(0x139); regmbc(0x13b);
regmbc(0x13d); regmbc(0x13f); regmbc(0x141);
regmbc(0x23d); regmbc(0x1e36); regmbc(0x1e38);
regmbc(0x1e3a); regmbc(0x1e3c); regmbc(0x2c60);
return;
- case 'M': case 0x1e3e: case 0x1e40: case 0x1e42:
+ case 'M':
+ case 0x1e3e:
+ case 0x1e40:
+ case 0x1e42:
regmbc('M'); regmbc(0x1e3e); regmbc(0x1e40);
regmbc(0x1e42);
return;
- case 'N': case 0xd1:
- case 0x143: case 0x145: case 0x147: case 0x1f8:
- case 0x1e44: case 0x1e46: case 0x1e48: case 0x1e4a:
+ case 'N':
+ case 0xd1:
+ case 0x143:
+ case 0x145:
+ case 0x147:
+ case 0x1f8:
+ case 0x1e44:
+ case 0x1e46:
+ case 0x1e48:
+ case 0x1e4a:
case 0xa7a4:
regmbc('N'); regmbc(0xd1);
regmbc(0x143); regmbc(0x145); regmbc(0x147);
regmbc(0x1f8); regmbc(0x1e44); regmbc(0x1e46);
regmbc(0x1e48); regmbc(0x1e4a); regmbc(0xa7a4);
return;
- case 'O': case 0xd2: case 0xd3: case 0xd4: case 0xd5: case 0xd6:
- case 0xd8: case 0x14c: case 0x14e: case 0x150: case 0x19f:
- case 0x1a0: case 0x1d1: case 0x1ea: case 0x1ec: case 0x1fe:
- case 0x20c: case 0x20e: case 0x22a: case 0x22c: case 0x22e:
- case 0x230: case 0x1e4c: case 0x1e4e: case 0x1e50: case 0x1e52:
- case 0x1ecc: case 0x1ece: case 0x1ed0: case 0x1ed2: case 0x1ed4:
- case 0x1ed6: case 0x1ed8: case 0x1eda: case 0x1edc: case 0x1ede:
- case 0x1ee0: case 0x1ee2:
+ case 'O':
+ case 0xd2:
+ case 0xd3:
+ case 0xd4:
+ case 0xd5:
+ case 0xd6:
+ case 0xd8:
+ case 0x14c:
+ case 0x14e:
+ case 0x150:
+ case 0x19f:
+ case 0x1a0:
+ case 0x1d1:
+ case 0x1ea:
+ case 0x1ec:
+ case 0x1fe:
+ case 0x20c:
+ case 0x20e:
+ case 0x22a:
+ case 0x22c:
+ case 0x22e:
+ case 0x230:
+ case 0x1e4c:
+ case 0x1e4e:
+ case 0x1e50:
+ case 0x1e52:
+ case 0x1ecc:
+ case 0x1ece:
+ case 0x1ed0:
+ case 0x1ed2:
+ case 0x1ed4:
+ case 0x1ed6:
+ case 0x1ed8:
+ case 0x1eda:
+ case 0x1edc:
+ case 0x1ede:
+ case 0x1ee0:
+ case 0x1ee2:
regmbc('O'); regmbc(0xd2); regmbc(0xd3); regmbc(0xd4);
regmbc(0xd5); regmbc(0xd6); regmbc(0xd8);
regmbc(0x14c); regmbc(0x14e); regmbc(0x150);
@@ -675,47 +815,105 @@ static void reg_equi_class(int c)
regmbc(0x1edc); regmbc(0x1ede); regmbc(0x1ee0);
regmbc(0x1ee2);
return;
- case 'P': case 0x1a4: case 0x1e54: case 0x1e56: case 0x2c63:
+ case 'P':
+ case 0x1a4:
+ case 0x1e54:
+ case 0x1e56:
+ case 0x2c63:
regmbc('P'); regmbc(0x1a4); regmbc(0x1e54);
regmbc(0x1e56); regmbc(0x2c63);
return;
- case 'Q': case 0x24a:
+ case 'Q':
+ case 0x24a:
regmbc('Q'); regmbc(0x24a);
return;
- case 'R': case 0x154: case 0x156: case 0x158: case 0x210:
- case 0x212: case 0x24c: case 0x1e58: case 0x1e5a:
- case 0x1e5c: case 0x1e5e: case 0x2c64: case 0xa7a6:
+ case 'R':
+ case 0x154:
+ case 0x156:
+ case 0x158:
+ case 0x210:
+ case 0x212:
+ case 0x24c:
+ case 0x1e58:
+ case 0x1e5a:
+ case 0x1e5c:
+ case 0x1e5e:
+ case 0x2c64:
+ case 0xa7a6:
regmbc('R'); regmbc(0x154); regmbc(0x156);
regmbc(0x210); regmbc(0x212); regmbc(0x158);
regmbc(0x24c); regmbc(0x1e58); regmbc(0x1e5a);
regmbc(0x1e5c); regmbc(0x1e5e); regmbc(0x2c64);
regmbc(0xa7a6);
return;
- case 'S': case 0x15a: case 0x15c: case 0x15e: case 0x160:
- case 0x218: case 0x1e60: case 0x1e62: case 0x1e64:
- case 0x1e66: case 0x1e68: case 0x2c7e: case 0xa7a8:
+ case 'S':
+ case 0x15a:
+ case 0x15c:
+ case 0x15e:
+ case 0x160:
+ case 0x218:
+ case 0x1e60:
+ case 0x1e62:
+ case 0x1e64:
+ case 0x1e66:
+ case 0x1e68:
+ case 0x2c7e:
+ case 0xa7a8:
regmbc('S'); regmbc(0x15a); regmbc(0x15c);
regmbc(0x15e); regmbc(0x160); regmbc(0x218);
regmbc(0x1e60); regmbc(0x1e62); regmbc(0x1e64);
regmbc(0x1e66); regmbc(0x1e68); regmbc(0x2c7e);
regmbc(0xa7a8);
return;
- case 'T': case 0x162: case 0x164: case 0x166: case 0x1ac:
- case 0x1ae: case 0x21a: case 0x23e: case 0x1e6a: case 0x1e6c:
- case 0x1e6e: case 0x1e70:
+ case 'T':
+ case 0x162:
+ case 0x164:
+ case 0x166:
+ case 0x1ac:
+ case 0x1ae:
+ case 0x21a:
+ case 0x23e:
+ case 0x1e6a:
+ case 0x1e6c:
+ case 0x1e6e:
+ case 0x1e70:
regmbc('T'); regmbc(0x162); regmbc(0x164);
regmbc(0x166); regmbc(0x1ac); regmbc(0x23e);
regmbc(0x1ae); regmbc(0x21a); regmbc(0x1e6a);
regmbc(0x1e6c); regmbc(0x1e6e); regmbc(0x1e70);
return;
- case 'U': case 0xd9: case 0xda: case 0xdb: case 0xdc:
- case 0x168: case 0x16a: case 0x16c: case 0x16e:
- case 0x170: case 0x172: case 0x1af: case 0x1d3:
- case 0x1d5: case 0x1d7: case 0x1d9: case 0x1db:
- case 0x214: case 0x216: case 0x244: case 0x1e72:
- case 0x1e74: case 0x1e76: case 0x1e78: case 0x1e7a:
- case 0x1ee4: case 0x1ee6: case 0x1ee8: case 0x1eea:
- case 0x1eec: case 0x1eee: case 0x1ef0:
+ case 'U':
+ case 0xd9:
+ case 0xda:
+ case 0xdb:
+ case 0xdc:
+ case 0x168:
+ case 0x16a:
+ case 0x16c:
+ case 0x16e:
+ case 0x170:
+ case 0x172:
+ case 0x1af:
+ case 0x1d3:
+ case 0x1d5:
+ case 0x1d7:
+ case 0x1d9:
+ case 0x1db:
+ case 0x214:
+ case 0x216:
+ case 0x244:
+ case 0x1e72:
+ case 0x1e74:
+ case 0x1e76:
+ case 0x1e78:
+ case 0x1e7a:
+ case 0x1ee4:
+ case 0x1ee6:
+ case 0x1ee8:
+ case 0x1eea:
+ case 0x1eec:
+ case 0x1eee:
+ case 0x1ef0:
regmbc('U'); regmbc(0xd9); regmbc(0xda);
regmbc(0xdb); regmbc(0xdc); regmbc(0x168);
regmbc(0x16a); regmbc(0x16c); regmbc(0x16e);
@@ -728,41 +926,92 @@ static void reg_equi_class(int c)
regmbc(0x1ee8); regmbc(0x1eea); regmbc(0x1eec);
regmbc(0x1eee); regmbc(0x1ef0);
return;
- case 'V': case 0x1b2: case 0x1e7c: case 0x1e7e:
+ case 'V':
+ case 0x1b2:
+ case 0x1e7c:
+ case 0x1e7e:
regmbc('V'); regmbc(0x1b2); regmbc(0x1e7c);
regmbc(0x1e7e);
return;
- case 'W': case 0x174: case 0x1e80: case 0x1e82:
- case 0x1e84: case 0x1e86: case 0x1e88:
+ case 'W':
+ case 0x174:
+ case 0x1e80:
+ case 0x1e82:
+ case 0x1e84:
+ case 0x1e86:
+ case 0x1e88:
regmbc('W'); regmbc(0x174); regmbc(0x1e80);
regmbc(0x1e82); regmbc(0x1e84); regmbc(0x1e86);
regmbc(0x1e88);
return;
- case 'X': case 0x1e8a: case 0x1e8c:
+ case 'X':
+ case 0x1e8a:
+ case 0x1e8c:
regmbc('X'); regmbc(0x1e8a); regmbc(0x1e8c);
return;
- case 'Y': case 0xdd:
- case 0x176: case 0x178: case 0x1b3: case 0x232: case 0x24e:
- case 0x1e8e: case 0x1ef2: case 0x1ef6: case 0x1ef4: case 0x1ef8:
+ case 'Y':
+ case 0xdd:
+ case 0x176:
+ case 0x178:
+ case 0x1b3:
+ case 0x232:
+ case 0x24e:
+ case 0x1e8e:
+ case 0x1ef2:
+ case 0x1ef6:
+ case 0x1ef4:
+ case 0x1ef8:
regmbc('Y'); regmbc(0xdd); regmbc(0x176);
regmbc(0x178); regmbc(0x1b3); regmbc(0x232);
regmbc(0x24e); regmbc(0x1e8e); regmbc(0x1ef2);
regmbc(0x1ef4); regmbc(0x1ef6); regmbc(0x1ef8);
return;
- case 'Z': case 0x179: case 0x17b: case 0x17d: case 0x1b5:
- case 0x1e90: case 0x1e92: case 0x1e94: case 0x2c6b:
+ case 'Z':
+ case 0x179:
+ case 0x17b:
+ case 0x17d:
+ case 0x1b5:
+ case 0x1e90:
+ case 0x1e92:
+ case 0x1e94:
+ case 0x2c6b:
regmbc('Z'); regmbc(0x179); regmbc(0x17b);
regmbc(0x17d); regmbc(0x1b5); regmbc(0x1e90);
regmbc(0x1e92); regmbc(0x1e94); regmbc(0x2c6b);
return;
- case 'a': case 0xe0: case 0xe1: case 0xe2:
- case 0xe3: case 0xe4: case 0xe5: case 0x101: case 0x103:
- case 0x105: case 0x1ce: case 0x1df: case 0x1e1: case 0x1fb:
- case 0x201: case 0x203: case 0x227: case 0x1d8f: case 0x1e01:
- case 0x1e9a: case 0x1ea1: case 0x1ea3: case 0x1ea5:
- case 0x1ea7: case 0x1ea9: case 0x1eab: case 0x1ead:
- case 0x1eaf: case 0x1eb1: case 0x1eb3: case 0x1eb5:
- case 0x1eb7: case 0x2c65:
+ case 'a':
+ case 0xe0:
+ case 0xe1:
+ case 0xe2:
+ case 0xe3:
+ case 0xe4:
+ case 0xe5:
+ case 0x101:
+ case 0x103:
+ case 0x105:
+ case 0x1ce:
+ case 0x1df:
+ case 0x1e1:
+ case 0x1fb:
+ case 0x201:
+ case 0x203:
+ case 0x227:
+ case 0x1d8f:
+ case 0x1e01:
+ case 0x1e9a:
+ case 0x1ea1:
+ case 0x1ea3:
+ case 0x1ea5:
+ case 0x1ea7:
+ case 0x1ea9:
+ case 0x1eab:
+ case 0x1ead:
+ case 0x1eaf:
+ case 0x1eb1:
+ case 0x1eb3:
+ case 0x1eb5:
+ case 0x1eb7:
+ case 0x2c65:
regmbc('a'); regmbc(0xe0); regmbc(0xe1);
regmbc(0xe2); regmbc(0xe3); regmbc(0xe4);
regmbc(0xe5); regmbc(0x101); regmbc(0x103);
@@ -775,36 +1024,80 @@ static void reg_equi_class(int c)
regmbc(0x1eaf); regmbc(0x1eb1); regmbc(0x1eb3);
regmbc(0x1eb5); regmbc(0x1eb7); regmbc(0x2c65);
return;
- case 'b': case 0x180: case 0x253: case 0x1d6c: case 0x1d80:
- case 0x1e03: case 0x1e05: case 0x1e07:
+ case 'b':
+ case 0x180:
+ case 0x253:
+ case 0x1d6c:
+ case 0x1d80:
+ case 0x1e03:
+ case 0x1e05:
+ case 0x1e07:
regmbc('b');
regmbc(0x180); regmbc(0x253); regmbc(0x1d6c);
regmbc(0x1d80); regmbc(0x1e03); regmbc(0x1e05);
regmbc(0x1e07);
return;
- case 'c': case 0xe7:
- case 0x107: case 0x109: case 0x10b: case 0x10d: case 0x188:
- case 0x23c: case 0x1e09: case 0xa793: case 0xa794:
+ case 'c':
+ case 0xe7:
+ case 0x107:
+ case 0x109:
+ case 0x10b:
+ case 0x10d:
+ case 0x188:
+ case 0x23c:
+ case 0x1e09:
+ case 0xa793:
+ case 0xa794:
regmbc('c'); regmbc(0xe7); regmbc(0x107);
regmbc(0x109); regmbc(0x10b); regmbc(0x10d);
regmbc(0x188); regmbc(0x23c); regmbc(0x1e09);
regmbc(0xa793); regmbc(0xa794);
return;
- case 'd': case 0x10f: case 0x111: case 0x257: case 0x1d6d:
- case 0x1d81: case 0x1d91: case 0x1e0b: case 0x1e0d:
- case 0x1e0f: case 0x1e11: case 0x1e13:
+ case 'd':
+ case 0x10f:
+ case 0x111:
+ case 0x257:
+ case 0x1d6d:
+ case 0x1d81:
+ case 0x1d91:
+ case 0x1e0b:
+ case 0x1e0d:
+ case 0x1e0f:
+ case 0x1e11:
+ case 0x1e13:
regmbc('d'); regmbc(0x10f); regmbc(0x111);
regmbc(0x257); regmbc(0x1d6d); regmbc(0x1d81);
regmbc(0x1d91); regmbc(0x1e0b); regmbc(0x1e0d);
regmbc(0x1e0f); regmbc(0x1e11); regmbc(0x1e13);
return;
- case 'e': case 0xe8: case 0xe9: case 0xea: case 0xeb:
- case 0x113: case 0x115: case 0x117: case 0x119:
- case 0x11b: case 0x205: case 0x207: case 0x229:
- case 0x247: case 0x1d92: case 0x1e15: case 0x1e17:
- case 0x1e19: case 0x1e1b: case 0x1eb9: case 0x1ebb:
- case 0x1e1d: case 0x1ebd: case 0x1ebf: case 0x1ec1:
- case 0x1ec3: case 0x1ec5: case 0x1ec7:
+ case 'e':
+ case 0xe8:
+ case 0xe9:
+ case 0xea:
+ case 0xeb:
+ case 0x113:
+ case 0x115:
+ case 0x117:
+ case 0x119:
+ case 0x11b:
+ case 0x205:
+ case 0x207:
+ case 0x229:
+ case 0x247:
+ case 0x1d92:
+ case 0x1e15:
+ case 0x1e17:
+ case 0x1e19:
+ case 0x1e1b:
+ case 0x1eb9:
+ case 0x1ebb:
+ case 0x1e1d:
+ case 0x1ebd:
+ case 0x1ebf:
+ case 0x1ec1:
+ case 0x1ec3:
+ case 0x1ec5:
+ case 0x1ec7:
regmbc('e'); regmbc(0xe8); regmbc(0xe9);
regmbc(0xea); regmbc(0xeb); regmbc(0x113);
regmbc(0x115); regmbc(0x117); regmbc(0x119);
@@ -816,31 +1109,66 @@ static void reg_equi_class(int c)
regmbc(0x1ec1); regmbc(0x1ec3); regmbc(0x1ec5);
regmbc(0x1ec7);
return;
- case 'f': case 0x192: case 0x1d6e: case 0x1d82:
- case 0x1e1f: case 0xa799:
+ case 'f':
+ case 0x192:
+ case 0x1d6e:
+ case 0x1d82:
+ case 0x1e1f:
+ case 0xa799:
regmbc('f'); regmbc(0x192); regmbc(0x1d6e);
regmbc(0x1d82); regmbc(0x1e1f); regmbc(0xa799);
return;
- case 'g': case 0x11d: case 0x11f: case 0x121: case 0x123:
- case 0x1e5: case 0x1e7: case 0x260: case 0x1f5: case 0x1d83:
- case 0x1e21: case 0xa7a1:
+ case 'g':
+ case 0x11d:
+ case 0x11f:
+ case 0x121:
+ case 0x123:
+ case 0x1e5:
+ case 0x1e7:
+ case 0x260:
+ case 0x1f5:
+ case 0x1d83:
+ case 0x1e21:
+ case 0xa7a1:
regmbc('g'); regmbc(0x11d); regmbc(0x11f);
regmbc(0x121); regmbc(0x123); regmbc(0x1e5);
regmbc(0x1e7); regmbc(0x1f5); regmbc(0x260);
regmbc(0x1d83); regmbc(0x1e21); regmbc(0xa7a1);
return;
- case 'h': case 0x125: case 0x127: case 0x21f: case 0x1e23:
- case 0x1e25: case 0x1e27: case 0x1e29: case 0x1e2b:
- case 0x1e96: case 0x2c68: case 0xa795:
+ case 'h':
+ case 0x125:
+ case 0x127:
+ case 0x21f:
+ case 0x1e23:
+ case 0x1e25:
+ case 0x1e27:
+ case 0x1e29:
+ case 0x1e2b:
+ case 0x1e96:
+ case 0x2c68:
+ case 0xa795:
regmbc('h'); regmbc(0x125); regmbc(0x127);
regmbc(0x21f); regmbc(0x1e23); regmbc(0x1e25);
regmbc(0x1e27); regmbc(0x1e29); regmbc(0x1e2b);
regmbc(0x1e96); regmbc(0x2c68); regmbc(0xa795);
return;
- case 'i': case 0xec: case 0xed: case 0xee: case 0xef:
- case 0x129: case 0x12b: case 0x12d: case 0x12f:
- case 0x1d0: case 0x209: case 0x20b: case 0x268:
- case 0x1d96: case 0x1e2d: case 0x1e2f: case 0x1ec9:
+ case 'i':
+ case 0xec:
+ case 0xed:
+ case 0xee:
+ case 0xef:
+ case 0x129:
+ case 0x12b:
+ case 0x12d:
+ case 0x12f:
+ case 0x1d0:
+ case 0x209:
+ case 0x20b:
+ case 0x268:
+ case 0x1d96:
+ case 0x1e2d:
+ case 0x1e2f:
+ case 0x1ec9:
case 0x1ecb:
regmbc('i'); regmbc(0xec); regmbc(0xed);
regmbc(0xee); regmbc(0xef); regmbc(0x129);
@@ -849,33 +1177,66 @@ static void reg_equi_class(int c)
regmbc(0x268); regmbc(0x1d96); regmbc(0x1e2d);
regmbc(0x1e2f); regmbc(0x1ec9); regmbc(0x1ecb);
return;
- case 'j': case 0x135: case 0x1f0: case 0x249:
+ case 'j':
+ case 0x135:
+ case 0x1f0:
+ case 0x249:
regmbc('j'); regmbc(0x135); regmbc(0x1f0);
regmbc(0x249);
return;
- case 'k': case 0x137: case 0x199: case 0x1e9:
- case 0x1d84: case 0x1e31: case 0x1e33: case 0x1e35:
- case 0x2c6a: case 0xa741:
+ case 'k':
+ case 0x137:
+ case 0x199:
+ case 0x1e9:
+ case 0x1d84:
+ case 0x1e31:
+ case 0x1e33:
+ case 0x1e35:
+ case 0x2c6a:
+ case 0xa741:
regmbc('k'); regmbc(0x137); regmbc(0x199);
regmbc(0x1e9); regmbc(0x1d84); regmbc(0x1e31);
regmbc(0x1e33); regmbc(0x1e35); regmbc(0x2c6a);
regmbc(0xa741);
return;
- case 'l': case 0x13a: case 0x13c: case 0x13e:
- case 0x140: case 0x142: case 0x19a: case 0x1e37:
- case 0x1e39: case 0x1e3b: case 0x1e3d: case 0x2c61:
+ case 'l':
+ case 0x13a:
+ case 0x13c:
+ case 0x13e:
+ case 0x140:
+ case 0x142:
+ case 0x19a:
+ case 0x1e37:
+ case 0x1e39:
+ case 0x1e3b:
+ case 0x1e3d:
+ case 0x2c61:
regmbc('l'); regmbc(0x13a); regmbc(0x13c);
regmbc(0x13e); regmbc(0x140); regmbc(0x142);
regmbc(0x19a); regmbc(0x1e37); regmbc(0x1e39);
regmbc(0x1e3b); regmbc(0x1e3d); regmbc(0x2c61);
return;
- case 'm': case 0x1d6f: case 0x1e3f: case 0x1e41: case 0x1e43:
+ case 'm':
+ case 0x1d6f:
+ case 0x1e3f:
+ case 0x1e41:
+ case 0x1e43:
regmbc('m'); regmbc(0x1d6f); regmbc(0x1e3f);
regmbc(0x1e41); regmbc(0x1e43);
return;
- case 'n': case 0xf1: case 0x144: case 0x146: case 0x148:
- case 0x149: case 0x1f9: case 0x1d70: case 0x1d87:
- case 0x1e45: case 0x1e47: case 0x1e49: case 0x1e4b:
+ case 'n':
+ case 0xf1:
+ case 0x144:
+ case 0x146:
+ case 0x148:
+ case 0x149:
+ case 0x1f9:
+ case 0x1d70:
+ case 0x1d87:
+ case 0x1e45:
+ case 0x1e47:
+ case 0x1e49:
+ case 0x1e4b:
case 0xa7a5:
regmbc('n'); regmbc(0xf1); regmbc(0x144);
regmbc(0x146); regmbc(0x148); regmbc(0x149);
@@ -883,15 +1244,44 @@ static void reg_equi_class(int c)
regmbc(0x1e45); regmbc(0x1e47); regmbc(0x1e49);
regmbc(0x1e4b); regmbc(0xa7a5);
return;
- case 'o': case 0xf2: case 0xf3: case 0xf4: case 0xf5:
- case 0xf6: case 0xf8: case 0x14d: case 0x14f: case 0x151:
- case 0x1a1: case 0x1d2: case 0x1eb: case 0x1ed: case 0x1ff:
- case 0x20d: case 0x20f: case 0x22b: case 0x22d: case 0x22f:
- case 0x231: case 0x275: case 0x1e4d: case 0x1e4f:
- case 0x1e51: case 0x1e53: case 0x1ecd: case 0x1ecf:
- case 0x1ed1: case 0x1ed3: case 0x1ed5: case 0x1ed7:
- case 0x1ed9: case 0x1edb: case 0x1edd: case 0x1edf:
- case 0x1ee1: case 0x1ee3:
+ case 'o':
+ case 0xf2:
+ case 0xf3:
+ case 0xf4:
+ case 0xf5:
+ case 0xf6:
+ case 0xf8:
+ case 0x14d:
+ case 0x14f:
+ case 0x151:
+ case 0x1a1:
+ case 0x1d2:
+ case 0x1eb:
+ case 0x1ed:
+ case 0x1ff:
+ case 0x20d:
+ case 0x20f:
+ case 0x22b:
+ case 0x22d:
+ case 0x22f:
+ case 0x231:
+ case 0x275:
+ case 0x1e4d:
+ case 0x1e4f:
+ case 0x1e51:
+ case 0x1e53:
+ case 0x1ecd:
+ case 0x1ecf:
+ case 0x1ed1:
+ case 0x1ed3:
+ case 0x1ed5:
+ case 0x1ed7:
+ case 0x1ed9:
+ case 0x1edb:
+ case 0x1edd:
+ case 0x1edf:
+ case 0x1ee1:
+ case 0x1ee3:
regmbc('o'); regmbc(0xf2); regmbc(0xf3);
regmbc(0xf4); regmbc(0xf5); regmbc(0xf6);
regmbc(0xf8); regmbc(0x14d); regmbc(0x14f);
@@ -906,18 +1296,37 @@ static void reg_equi_class(int c)
regmbc(0x1edb); regmbc(0x1edd); regmbc(0x1edf);
regmbc(0x1ee1); regmbc(0x1ee3);
return;
- case 'p': case 0x1a5: case 0x1d71: case 0x1d88: case 0x1d7d:
- case 0x1e55: case 0x1e57:
+ case 'p':
+ case 0x1a5:
+ case 0x1d71:
+ case 0x1d88:
+ case 0x1d7d:
+ case 0x1e55:
+ case 0x1e57:
regmbc('p'); regmbc(0x1a5); regmbc(0x1d71);
regmbc(0x1d7d); regmbc(0x1d88); regmbc(0x1e55);
regmbc(0x1e57);
return;
- case 'q': case 0x24b: case 0x2a0:
+ case 'q':
+ case 0x24b:
+ case 0x2a0:
regmbc('q'); regmbc(0x24b); regmbc(0x2a0);
return;
- case 'r': case 0x155: case 0x157: case 0x159: case 0x211:
- case 0x213: case 0x24d: case 0x27d: case 0x1d72: case 0x1d73:
- case 0x1d89: case 0x1e59: case 0x1e5b: case 0x1e5d: case 0x1e5f:
+ case 'r':
+ case 0x155:
+ case 0x157:
+ case 0x159:
+ case 0x211:
+ case 0x213:
+ case 0x24d:
+ case 0x27d:
+ case 0x1d72:
+ case 0x1d73:
+ case 0x1d89:
+ case 0x1e59:
+ case 0x1e5b:
+ case 0x1e5d:
+ case 0x1e5f:
case 0xa7a7:
regmbc('r'); regmbc(0x155); regmbc(0x157);
regmbc(0x159); regmbc(0x211); regmbc(0x213);
@@ -926,32 +1335,81 @@ static void reg_equi_class(int c)
regmbc(0x1e5b); regmbc(0x1e5d); regmbc(0x1e5f);
regmbc(0xa7a7);
return;
- case 's': case 0x15b: case 0x15d: case 0x15f: case 0x161:
- case 0x1e61: case 0x219: case 0x23f: case 0x1d74: case 0x1d8a:
- case 0x1e63: case 0x1e65: case 0x1e67: case 0x1e69: case 0xa7a9:
+ case 's':
+ case 0x15b:
+ case 0x15d:
+ case 0x15f:
+ case 0x161:
+ case 0x1e61:
+ case 0x219:
+ case 0x23f:
+ case 0x1d74:
+ case 0x1d8a:
+ case 0x1e63:
+ case 0x1e65:
+ case 0x1e67:
+ case 0x1e69:
+ case 0xa7a9:
regmbc('s'); regmbc(0x15b); regmbc(0x15d);
regmbc(0x15f); regmbc(0x161); regmbc(0x23f);
regmbc(0x219); regmbc(0x1d74); regmbc(0x1d8a);
regmbc(0x1e61); regmbc(0x1e63); regmbc(0x1e65);
regmbc(0x1e67); regmbc(0x1e69); regmbc(0xa7a9);
return;
- case 't': case 0x163: case 0x165: case 0x167: case 0x1ab:
- case 0x1ad: case 0x21b: case 0x288: case 0x1d75: case 0x1e6b:
- case 0x1e6d: case 0x1e6f: case 0x1e71: case 0x1e97: case 0x2c66:
+ case 't':
+ case 0x163:
+ case 0x165:
+ case 0x167:
+ case 0x1ab:
+ case 0x1ad:
+ case 0x21b:
+ case 0x288:
+ case 0x1d75:
+ case 0x1e6b:
+ case 0x1e6d:
+ case 0x1e6f:
+ case 0x1e71:
+ case 0x1e97:
+ case 0x2c66:
regmbc('t'); regmbc(0x163); regmbc(0x165);
regmbc(0x167); regmbc(0x1ab); regmbc(0x21b);
regmbc(0x1ad); regmbc(0x288); regmbc(0x1d75);
regmbc(0x1e6b); regmbc(0x1e6d); regmbc(0x1e6f);
regmbc(0x1e71); regmbc(0x1e97); regmbc(0x2c66);
return;
- case 'u': case 0xf9: case 0xfa: case 0xfb: case 0xfc:
- case 0x169: case 0x16b: case 0x16d: case 0x16f:
- case 0x171: case 0x173: case 0x1b0: case 0x1d4:
- case 0x1d6: case 0x1d8: case 0x1da: case 0x1dc:
- case 0x215: case 0x217: case 0x289: case 0x1e73:
- case 0x1d7e: case 0x1d99: case 0x1e75: case 0x1e77:
- case 0x1e79: case 0x1e7b: case 0x1ee5: case 0x1ee7:
- case 0x1ee9: case 0x1eeb: case 0x1eed: case 0x1eef:
+ case 'u':
+ case 0xf9:
+ case 0xfa:
+ case 0xfb:
+ case 0xfc:
+ case 0x169:
+ case 0x16b:
+ case 0x16d:
+ case 0x16f:
+ case 0x171:
+ case 0x173:
+ case 0x1b0:
+ case 0x1d4:
+ case 0x1d6:
+ case 0x1d8:
+ case 0x1da:
+ case 0x1dc:
+ case 0x215:
+ case 0x217:
+ case 0x289:
+ case 0x1e73:
+ case 0x1d7e:
+ case 0x1d99:
+ case 0x1e75:
+ case 0x1e77:
+ case 0x1e79:
+ case 0x1e7b:
+ case 0x1ee5:
+ case 0x1ee7:
+ case 0x1ee9:
+ case 0x1eeb:
+ case 0x1eed:
+ case 0x1eef:
case 0x1ef1:
regmbc('u'); regmbc(0xf9); regmbc(0xfa);
regmbc(0xfb); regmbc(0xfc); regmbc(0x169);
@@ -966,31 +1424,61 @@ static void reg_equi_class(int c)
regmbc(0x1eeb); regmbc(0x1eed); regmbc(0x1eef);
regmbc(0x1ef1);
return;
- case 'v': case 0x28b: case 0x1d8c: case 0x1e7d: case 0x1e7f:
+ case 'v':
+ case 0x28b:
+ case 0x1d8c:
+ case 0x1e7d:
+ case 0x1e7f:
regmbc('v'); regmbc(0x28b); regmbc(0x1d8c);
regmbc(0x1e7d); regmbc(0x1e7f);
return;
- case 'w': case 0x175: case 0x1e81: case 0x1e83:
- case 0x1e85: case 0x1e87: case 0x1e89: case 0x1e98:
+ case 'w':
+ case 0x175:
+ case 0x1e81:
+ case 0x1e83:
+ case 0x1e85:
+ case 0x1e87:
+ case 0x1e89:
+ case 0x1e98:
regmbc('w'); regmbc(0x175); regmbc(0x1e81);
regmbc(0x1e83); regmbc(0x1e85); regmbc(0x1e87);
regmbc(0x1e89); regmbc(0x1e98);
return;
- case 'x': case 0x1e8b: case 0x1e8d:
+ case 'x':
+ case 0x1e8b:
+ case 0x1e8d:
regmbc('x'); regmbc(0x1e8b); regmbc(0x1e8d);
return;
- case 'y': case 0xfd: case 0xff: case 0x177: case 0x1b4:
- case 0x233: case 0x24f: case 0x1e8f: case 0x1e99: case 0x1ef3:
- case 0x1ef5: case 0x1ef7: case 0x1ef9:
+ case 'y':
+ case 0xfd:
+ case 0xff:
+ case 0x177:
+ case 0x1b4:
+ case 0x233:
+ case 0x24f:
+ case 0x1e8f:
+ case 0x1e99:
+ case 0x1ef3:
+ case 0x1ef5:
+ case 0x1ef7:
+ case 0x1ef9:
regmbc('y'); regmbc(0xfd); regmbc(0xff);
regmbc(0x177); regmbc(0x1b4); regmbc(0x233);
regmbc(0x24f); regmbc(0x1e8f); regmbc(0x1e99);
regmbc(0x1ef3); regmbc(0x1ef5); regmbc(0x1ef7);
regmbc(0x1ef9);
return;
- case 'z': case 0x17a: case 0x17c: case 0x17e: case 0x1b6:
- case 0x1d76: case 0x1d8e: case 0x1e91: case 0x1e93:
- case 0x1e95: case 0x2c6c:
+ case 'z':
+ case 0x17a:
+ case 0x17c:
+ case 0x17e:
+ case 0x1b6:
+ case 0x1d76:
+ case 0x1d8e:
+ case 0x1e91:
+ case 0x1e93:
+ case 0x1e95:
+ case 0x2c6c:
regmbc('z'); regmbc(0x17a); regmbc(0x17c);
regmbc(0x17e); regmbc(0x1b6); regmbc(0x1d76);
regmbc(0x1d8e); regmbc(0x1e91); regmbc(0x1e93);
@@ -1002,19 +1490,18 @@ static void reg_equi_class(int c)
}
-
/*
* Emit a node.
* Return pointer to generated code.
*/
static char_u *regnode(int op)
{
- char_u *ret;
+ char_u *ret;
ret = regcode;
- if (ret == JUST_CALC_SIZE)
+ if (ret == JUST_CALC_SIZE) {
regsize += 3;
- else {
+ } else {
*regcode++ = op;
*regcode++ = NUL; // Null "next" pointer.
*regcode++ = NUL;
@@ -1044,17 +1531,20 @@ static char_u *regnext(char_u *p)
{
int offset;
- if (p == JUST_CALC_SIZE || reg_toolong)
+ if (p == JUST_CALC_SIZE || reg_toolong) {
return NULL;
+ }
offset = NEXT(p);
- if (offset == 0)
+ if (offset == 0) {
return NULL;
+ }
- if (OP(p) == BACK)
+ if (OP(p) == BACK) {
return p - offset;
- else
+ } else {
return p + offset;
+ }
}
// Set the next-pointer at the end of a node chain.
@@ -1068,7 +1558,7 @@ static void regtail(char_u *p, char_u *val)
// Find last node.
char_u *scan = p;
- for (;; ) {
+ for (;;) {
char_u *temp = regnext(scan);
if (temp == NULL) {
break;
@@ -1100,8 +1590,9 @@ static void regoptail(char_u *p, char_u *val)
// When op is neither BRANCH nor BRACE_COMPLEX0-9, it is "operandless"
if (p == NULL || p == JUST_CALC_SIZE
|| (OP(p) != BRANCH
- && (OP(p) < BRACE_COMPLEX || OP(p) > BRACE_COMPLEX + 9)))
+ && (OP(p) < BRACE_COMPLEX || OP(p) > BRACE_COMPLEX + 9))) {
return;
+ }
regtail(OPERAND(p), val);
}
@@ -1113,9 +1604,9 @@ static void regoptail(char_u *p, char_u *val)
*/
static void reginsert(int op, char_u *opnd)
{
- char_u *src;
- char_u *dst;
- char_u *place;
+ char_u *src;
+ char_u *dst;
+ char_u *place;
if (regcode == JUST_CALC_SIZE) {
regsize += 3;
@@ -1124,8 +1615,9 @@ static void reginsert(int op, char_u *opnd)
src = regcode;
regcode += 3;
dst = regcode;
- while (src > opnd)
+ while (src > opnd) {
*--dst = *--src;
+ }
place = opnd; // Op node, where operand used to be.
*place++ = op;
@@ -1139,9 +1631,9 @@ static void reginsert(int op, char_u *opnd)
*/
static void reginsert_nr(int op, long val, char_u *opnd)
{
- char_u *src;
- char_u *dst;
- char_u *place;
+ char_u *src;
+ char_u *dst;
+ char_u *place;
if (regcode == JUST_CALC_SIZE) {
regsize += 7;
@@ -1150,8 +1642,9 @@ static void reginsert_nr(int op, long val, char_u *opnd)
src = regcode;
regcode += 7;
dst = regcode;
- while (src > opnd)
+ while (src > opnd) {
*--dst = *--src;
+ }
place = opnd; // Op node, where operand used to be.
*place++ = op;
@@ -1169,9 +1662,9 @@ static void reginsert_nr(int op, long val, char_u *opnd)
*/
static void reginsert_limits(int op, long minval, long maxval, char_u *opnd)
{
- char_u *src;
- char_u *dst;
- char_u *place;
+ char_u *src;
+ char_u *dst;
+ char_u *place;
if (regcode == JUST_CALC_SIZE) {
regsize += 11;
@@ -1180,8 +1673,9 @@ static void reginsert_limits(int op, long minval, long maxval, char_u *opnd)
src = regcode;
regcode += 11;
dst = regcode;
- while (src > opnd)
+ while (src > opnd) {
*--dst = *--src;
+ }
place = opnd; // Op node, where operand used to be.
*place++ = op;
@@ -1201,15 +1695,15 @@ static void reginsert_limits(int op, long minval, long maxval, char_u *opnd)
static int seen_endbrace(int refnum)
{
if (!had_endbrace[refnum]) {
- char_u *p;
+ char_u *p;
- // Trick: check if "@<=" or "@<!" follows, in which case
- // the \1 can appear before the referenced match.
- for (p = regparse; *p != NUL; p++) {
- if (p[0] == '@' && p[1] == '<' && (p[2] == '!' || p[2] == '=')) {
- break;
- }
+ // Trick: check if "@<=" or "@<!" follows, in which case
+ // the \1 can appear before the referenced match.
+ for (p = regparse; *p != NUL; p++) {
+ if (p[0] == '@' && p[1] == '<' && (p[2] == '!' || p[2] == '=')) {
+ break;
}
+ }
if (*p == NUL) {
emsg(_("E65: Illegal back reference"));
@@ -1229,10 +1723,10 @@ static int seen_endbrace(int refnum)
*/
static char_u *regatom(int *flagp)
{
- char_u *ret;
+ char_u *ret;
int flags;
int c;
- char_u *p;
+ char_u *p;
int extra = 0;
int save_prev_at_start = prev_at_start;
@@ -1273,10 +1767,11 @@ static char_u *regatom(int *flagp)
*flagp |= HASNL;
// "\_[" is character range plus newline
- if (c == '[')
+ if (c == '[') {
goto collection;
+ }
- // "\_x" is character class plus newline
+ // "\_x" is character class plus newline
FALLTHROUGH;
// Character classes.
@@ -1307,9 +1802,10 @@ static char_u *regatom(int *flagp)
case Magic('L'):
case Magic('u'):
case Magic('U'):
- p = vim_strchr(classchars, no_Magic(c));
- if (p == NULL)
+ p = (char_u *)vim_strchr((char *)classchars, no_Magic(c));
+ if (p == NULL) {
EMSG_RET_NULL(_("E63: invalid use of \\_"));
+ }
// When '.' is followed by a composing char ignore the dot, so that
// the composing char is matched here.
if (c == Magic('.') && utf_iscomposing(peekchr())) {
@@ -1335,11 +1831,13 @@ static char_u *regatom(int *flagp)
break;
case Magic('('):
- if (one_exactly)
+ if (one_exactly) {
EMSG_ONE_RET_NULL;
+ }
ret = reg(REG_PAREN, &flags);
- if (ret == NULL)
+ if (ret == NULL) {
return NULL;
+ }
*flagp |= flags & (HASWIDTH | SPSTART | HASNL | HASLOOKBH);
break;
@@ -1347,8 +1845,9 @@ static char_u *regatom(int *flagp)
case Magic('|'):
case Magic('&'):
case Magic(')'):
- if (one_exactly)
+ if (one_exactly) {
EMSG_ONE_RET_NULL;
+ }
IEMSG_RET_NULL(_(e_internal)); // Supposed to be caught earlier.
// NOTREACHED
@@ -1365,20 +1864,23 @@ static char_u *regatom(int *flagp)
case Magic('~'): // previous substitute pattern
if (reg_prev_sub != NULL) {
- char_u *lp;
+ char_u *lp;
ret = regnode(EXACTLY);
lp = reg_prev_sub;
- while (*lp != NUL)
+ while (*lp != NUL) {
regc(*lp++);
+ }
regc(NUL);
if (*reg_prev_sub != NUL) {
*flagp |= HASWIDTH;
- if ((lp - reg_prev_sub) == 1)
+ if ((lp - reg_prev_sub) == 1) {
*flagp |= SIMPLE;
+ }
}
- } else
+ } else {
EMSG_RET_NULL(_(e_nopresub));
+ }
break;
case Magic('1'):
@@ -1389,8 +1891,7 @@ static char_u *regatom(int *flagp)
case Magic('6'):
case Magic('7'):
case Magic('8'):
- case Magic('9'):
- {
+ case Magic('9'): {
int refnum;
refnum = c - Magic('0');
@@ -1402,16 +1903,19 @@ static char_u *regatom(int *flagp)
break;
case Magic('z'):
- {
c = no_Magic(getchr());
switch (c) {
- case '(': if ((reg_do_extmatch & REX_SET) == 0)
+ case '(':
+ if ((reg_do_extmatch & REX_SET) == 0) {
EMSG_RET_NULL(_(e_z_not_allowed));
- if (one_exactly)
+ }
+ if (one_exactly) {
EMSG_ONE_RET_NULL;
+ }
ret = reg(REG_ZPAREN, &flags);
- if (ret == NULL)
+ if (ret == NULL) {
return NULL;
+ }
*flagp |= flags & (HASWIDTH|SPSTART|HASNL|HASLOOKBH);
re_has_z = REX_SET;
break;
@@ -1424,40 +1928,45 @@ static char_u *regatom(int *flagp)
case '6':
case '7':
case '8':
- case '9': if ((reg_do_extmatch & REX_USE) == 0)
+ case '9':
+ if ((reg_do_extmatch & REX_USE) == 0) {
EMSG_RET_NULL(_(e_z1_not_allowed));
+ }
ret = regnode(ZREF + c - '0');
re_has_z = REX_USE;
break;
- case 's': ret = regnode(MOPEN + 0);
+ case 's':
+ ret = regnode(MOPEN + 0);
if (!re_mult_next("\\zs")) {
return NULL;
}
break;
- case 'e': ret = regnode(MCLOSE + 0);
+ case 'e':
+ ret = regnode(MCLOSE + 0);
if (!re_mult_next("\\ze")) {
return NULL;
}
break;
- default: EMSG_RET_NULL(_("E68: Invalid character after \\z"));
+ default:
+ EMSG_RET_NULL(_("E68: Invalid character after \\z"));
}
- }
- break;
+ break;
case Magic('%'):
- {
c = no_Magic(getchr());
switch (c) {
// () without a back reference
case '(':
- if (one_exactly)
+ if (one_exactly) {
EMSG_ONE_RET_NULL;
+ }
ret = reg(REG_NPAREN, &flags);
- if (ret == NULL)
+ if (ret == NULL) {
return NULL;
+ }
*flagp |= flags & (HASWIDTH | SPSTART | HASNL | HASLOOKBH);
break;
@@ -1486,18 +1995,20 @@ static char_u *regatom(int *flagp)
// \%[abc]: Emit as a list of branches, all ending at the last
// branch which matches nothing.
case '[':
- if (one_exactly) // doesn't nest
+ if (one_exactly) { // doesn't nest
EMSG_ONE_RET_NULL;
+ }
{
- char_u *lastbranch;
- char_u *lastnode = NULL;
- char_u *br;
+ char_u *lastbranch;
+ char_u *lastnode = NULL;
+ char_u *br;
ret = NULL;
while ((c = getchr()) != ']') {
- if (c == NUL)
+ if (c == NUL) {
EMSG2_RET_NULL(_(e_missing_sb),
- reg_magic == MAGIC_ALL);
+ reg_magic == MAGIC_ALL);
+ }
br = regnode(BRANCH);
if (ret == NULL) {
ret = br;
@@ -1516,9 +2027,10 @@ static char_u *regatom(int *flagp)
return NULL;
}
}
- if (ret == NULL)
+ if (ret == NULL) {
EMSG2_RET_NULL(_(e_empty_sb),
- reg_magic == MAGIC_ALL);
+ reg_magic == MAGIC_ALL);
+ }
lastbranch = regnode(BRANCH);
br = regnode(NOTHING);
if (ret != JUST_CALC_SIZE) {
@@ -1526,15 +2038,16 @@ static char_u *regatom(int *flagp)
regtail(lastbranch, br);
// connect all branches to the NOTHING
// branch at the end
- for (br = ret; br != lastnode; ) {
+ for (br = ret; br != lastnode;) {
if (OP(br) == BRANCH) {
regtail(br, lastbranch);
if (reg_toolong) {
return NULL;
}
br = OPERAND(br);
- } else
+ } else {
br = regnext(br);
+ }
}
}
*flagp &= ~(HASWIDTH | SIMPLE);
@@ -1550,12 +2063,18 @@ static char_u *regatom(int *flagp)
int64_t i;
switch (c) {
- case 'd': i = getdecchrs(); break;
- case 'o': i = getoctchrs(); break;
- case 'x': i = gethexchrs(2); break;
- case 'u': i = gethexchrs(4); break;
- case 'U': i = gethexchrs(8); break;
- default: i = -1; break;
+ case 'd':
+ i = getdecchrs(); break;
+ case 'o':
+ i = getoctchrs(); break;
+ case 'x':
+ i = gethexchrs(2); break;
+ case 'u':
+ i = gethexchrs(4); break;
+ case 'U':
+ i = gethexchrs(8); break;
+ default:
+ i = -1; break;
}
if (i < 0 || i > INT_MAX) {
@@ -1599,9 +2118,9 @@ static char_u *regatom(int *flagp)
// "\%'m", "\%<'m" and "\%>'m": Mark
c = getchr();
ret = regnode(RE_MARK);
- if (ret == JUST_CALC_SIZE)
+ if (ret == JUST_CALC_SIZE) {
regsize += 2;
- else {
+ } else {
*regcode++ = c;
*regcode++ = cmp;
}
@@ -1647,15 +2166,14 @@ static char_u *regatom(int *flagp)
}
EMSG2_RET_NULL(_("E71: Invalid character after %s%%"),
- reg_magic == MAGIC_ALL);
+ reg_magic == MAGIC_ALL);
}
- }
- break;
+ break;
case Magic('['):
collection:
{
- char_u *lp;
+ char_u *lp;
// If there is no matching ']', we assume the '[' is a normal
// character. This makes 'incsearch' and ":help [" work.
@@ -1669,8 +2187,9 @@ collection:
if (*regparse == '^') { // Complement of range.
ret = regnode(ANYBUT + extra);
regparse++;
- } else
+ } else {
ret = regnode(ANYOF + extra);
+ }
// At the start ']' and '-' mean the literal character.
if (*regparse == ']' || *regparse == '-') {
@@ -1691,15 +2210,17 @@ collection:
} else {
// Also accept "a-[.z.]"
endc = 0;
- if (*regparse == '[')
+ if (*regparse == '[') {
endc = get_coll_element(&regparse);
+ }
if (endc == 0) {
endc = mb_ptr2char_adv((const char_u **)&regparse);
}
// Handle \o40, \x20 and \u20AC style sequences
- if (endc == '\\' && !reg_cpo_lit)
+ if (endc == '\\' && !reg_cpo_lit) {
endc = coll_get_char();
+ }
if (startc > endc) {
EMSG_RET_NULL(_(e_reverse_range));
@@ -1714,8 +2235,9 @@ collection:
regmbc(startc);
}
} else {
- while (++startc <= endc)
+ while (++startc <= endc) {
regc(startc);
+ }
}
startc = -1;
}
@@ -1727,7 +2249,7 @@ collection:
&& (vim_strchr(REGEXP_INRANGE, regparse[1]) != NULL
|| (!reg_cpo_lit
&& vim_strchr(REGEXP_ABBR,
- regparse[1]) != NULL))) {
+ regparse[1]) != NULL))) {
regparse++;
if (*regparse == 'n') {
// '\n' in range: also match NL
@@ -1748,10 +2270,11 @@ collection:
|| *regparse == 'u'
|| *regparse == 'U') {
startc = coll_get_char();
- if (startc == 0)
+ if (startc == 0) {
regc(0x0a);
- else
+ } else {
regmbc(startc);
+ }
} else {
startc = backslash_trans(*regparse++);
regc(startc);
@@ -1840,8 +2363,9 @@ collection:
}
break;
case CLASS_SPACE:
- for (cu = 9; cu <= 13; cu++)
+ for (cu = 9; cu <= 13; cu++) {
regc(cu);
+ }
regc(' ');
break;
case CLASS_UPPER:
@@ -1908,18 +2432,19 @@ collection:
}
regc(NUL);
prevchr_len = 1; // last char was the ']'
- if (*regparse != ']')
+ if (*regparse != ']') {
EMSG_RET_NULL(_(e_toomsbra)); // Cannot happen?
+ }
skipchr(); // let's be friends with the lexer again
*flagp |= HASWIDTH | SIMPLE;
break;
- } else if (reg_strict)
+ } else if (reg_strict) {
EMSG2_RET_NULL(_(e_missingbracket), reg_magic > MAGIC_OFF);
+ }
}
FALLTHROUGH;
- default:
- {
+ default: {
int len;
// A multi-byte character is handled as a separate atom if it's
@@ -1952,7 +2477,7 @@ do_multibyte:
int l;
// Need to get composing character too.
- for (;; ) {
+ for (;;) {
l = utf_ptr2len((char *)regparse);
if (!utf_composinglike(regparse, regparse + l)) {
break;
@@ -1968,8 +2493,9 @@ do_multibyte:
regc(NUL);
*flagp |= HASWIDTH;
- if (len == 1)
+ if (len == 1) {
*flagp |= SIMPLE;
+ }
}
break;
}
@@ -1996,8 +2522,9 @@ static char_u *regpiece(int *flagp)
long maxval;
ret = regatom(&flags);
- if (ret == NULL)
+ if (ret == NULL) {
return NULL;
+ }
op = peekchr();
if (re_multi_type(op) == NOT_MULTI) {
@@ -2010,9 +2537,9 @@ static char_u *regpiece(int *flagp)
skipchr();
switch (op) {
case Magic('*'):
- if (flags & SIMPLE)
+ if (flags & SIMPLE) {
reginsert(STAR, ret);
- else {
+ } else {
// Emit x* as (x&|), where & means "self".
reginsert(BRANCH, ret); // Either x
regoptail(ret, regnode(BACK)); // and loop
@@ -2023,9 +2550,9 @@ static char_u *regpiece(int *flagp)
break;
case Magic('+'):
- if (flags & SIMPLE)
+ if (flags & SIMPLE) {
reginsert(PLUS, ret);
- else {
+ } else {
// Emit x+ as x(&|), where & means "self".
next = regnode(BRANCH); // Either
regtail(ret, next);
@@ -2036,23 +2563,29 @@ static char_u *regpiece(int *flagp)
*flagp = (WORST | HASWIDTH | (flags & (HASNL | HASLOOKBH)));
break;
- case Magic('@'):
- {
+ case Magic('@'): {
int lop = END;
int64_t nr = getdecchrs();
switch (no_Magic(getchr())) {
- case '=': lop = MATCH; break; // \@=
- case '!': lop = NOMATCH; break; // \@!
- case '>': lop = SUBPAT; break; // \@>
- case '<': switch (no_Magic(getchr())) {
- case '=': lop = BEHIND; break; // \@<=
- case '!': lop = NOBEHIND; break; // \@<!
- }
+ case '=':
+ lop = MATCH; break; // \@=
+ case '!':
+ lop = NOMATCH; break; // \@!
+ case '>':
+ lop = SUBPAT; break; // \@>
+ case '<':
+ switch (no_Magic(getchr())) {
+ case '=':
+ lop = BEHIND; break; // \@<=
+ case '!':
+ lop = NOBEHIND; break; // \@<!
+ }
}
- if (lop == END)
+ if (lop == END) {
EMSG2_RET_NULL(_("E59: invalid character after %s@"),
- reg_magic == MAGIC_ALL);
+ reg_magic == MAGIC_ALL);
+ }
// Look behind must match with behind_pos.
if (lop == BEHIND || lop == NOBEHIND) {
regtail(ret, regnode(BHPOS));
@@ -2060,11 +2593,13 @@ static char_u *regpiece(int *flagp)
}
regtail(ret, regnode(END)); // operand ends
if (lop == BEHIND || lop == NOBEHIND) {
- if (nr < 0)
+ if (nr < 0) {
nr = 0; // no limit is same as zero limit
+ }
reginsert_nr(lop, (uint32_t)nr, ret);
- } else
+ } else {
reginsert(lop, ret);
+ }
break;
}
@@ -2079,23 +2614,26 @@ static char_u *regpiece(int *flagp)
break;
case Magic('{'):
- if (!read_limits(&minval, &maxval))
+ if (!read_limits(&minval, &maxval)) {
return NULL;
+ }
if (flags & SIMPLE) {
reginsert(BRACE_SIMPLE, ret);
reginsert_limits(BRACE_LIMITS, minval, maxval, ret);
} else {
- if (num_complex_braces >= 10)
+ if (num_complex_braces >= 10) {
EMSG2_RET_NULL(_("E60: Too many complex %s{...}s"),
- reg_magic == MAGIC_ALL);
+ reg_magic == MAGIC_ALL);
+ }
reginsert(BRACE_COMPLEX + num_complex_braces, ret);
regoptail(ret, regnode(BACK));
regoptail(ret, ret);
reginsert_limits(BRACE_LIMITS, minval, maxval, ret);
++num_complex_braces;
}
- if (minval > 0 && maxval > 0)
+ if (minval > 0 && maxval > 0) {
*flagp = (HASWIDTH | (flags & (HASNL | HASLOOKBH)));
+ }
break;
}
if (re_multi_type(peekchr()) != NOT_MULTI) {
@@ -2115,9 +2653,9 @@ static char_u *regpiece(int *flagp)
*/
static char_u *regconcat(int *flagp)
{
- char_u *first = NULL;
- char_u *chain = NULL;
- char_u *latest;
+ char_u *first = NULL;
+ char_u *chain = NULL;
+ char_u *latest;
int flags;
int cont = true;
@@ -2165,21 +2703,25 @@ static char_u *regconcat(int *flagp)
break;
default:
latest = regpiece(&flags);
- if (latest == NULL || reg_toolong)
+ if (latest == NULL || reg_toolong) {
return NULL;
+ }
*flagp |= flags & (HASWIDTH | HASNL | HASLOOKBH);
- if (chain == NULL) // First piece.
+ if (chain == NULL) { // First piece.
*flagp |= flags & SPSTART;
- else
+ } else {
regtail(chain, latest);
+ }
chain = latest;
- if (first == NULL)
+ if (first == NULL) {
first = latest;
+ }
break;
}
}
- if (first == NULL) // Loop ran zero times.
+ if (first == NULL) { // Loop ran zero times.
first = regnode(NOTHING);
+ }
return first;
}
@@ -2189,18 +2731,19 @@ static char_u *regconcat(int *flagp)
*/
static char_u *regbranch(int *flagp)
{
- char_u *ret;
- char_u *chain = NULL;
- char_u *latest;
+ char_u *ret;
+ char_u *chain = NULL;
+ char_u *latest;
int flags;
*flagp = WORST | HASNL; // Tentatively.
ret = regnode(BRANCH);
- for (;; ) {
+ for (;;) {
latest = regconcat(&flags);
- if (latest == NULL)
+ if (latest == NULL) {
return NULL;
+ }
// If one of the branches has width, the whole thing has. If one of
// the branches anchors at start-of-line, the whole thing does.
// If one of the branches uses look-behind, the whole thing does.
@@ -2208,14 +2751,17 @@ static char_u *regbranch(int *flagp)
// If one of the branches doesn't match a line-break, the whole thing
// doesn't.
*flagp &= ~HASNL | (flags & HASNL);
- if (chain != NULL)
+ if (chain != NULL) {
regtail(chain, latest);
- if (peekchr() != Magic('&'))
+ }
+ if (peekchr() != Magic('&')) {
break;
+ }
skipchr();
regtail(latest, regnode(END)); // operand ends
- if (reg_toolong)
+ if (reg_toolong) {
break;
+ }
reginsert(MATCH, latest);
chain = latest;
}
@@ -2223,22 +2769,20 @@ static char_u *regbranch(int *flagp)
return ret;
}
-/*
- * Parse regular expression, i.e. main body or parenthesized thing.
- *
- * Caller must absorb opening parenthesis.
- *
- * Combining parenthesis handling with the base level of regular expression
- * is a trifle forced, but the need to tie the tails of the branches to what
- * follows makes it hard to avoid.
- */
-static char_u *reg(
- int paren, // REG_NOPAREN, REG_PAREN, REG_NPAREN or REG_ZPAREN
- int *flagp)
+/// Parse regular expression, i.e. main body or parenthesized thing.
+///
+/// Caller must absorb opening parenthesis.
+///
+/// Combining parenthesis handling with the base level of regular expression
+/// is a trifle forced, but the need to tie the tails of the branches to what
+/// follows makes it hard to avoid.
+///
+/// @param paren REG_NOPAREN, REG_PAREN, REG_NPAREN or REG_ZPAREN
+static char_u *reg(int paren, int *flagp)
{
- char_u *ret;
- char_u *br;
- char_u *ender;
+ char_u *ret;
+ char_u *br;
+ char_u *ender;
int parno = 0;
int flags;
@@ -2246,73 +2790,83 @@ static char_u *reg(
if (paren == REG_ZPAREN) {
// Make a ZOPEN node.
- if (regnzpar >= NSUBEXP)
+ if (regnzpar >= NSUBEXP) {
EMSG_RET_NULL(_("E50: Too many \\z("));
+ }
parno = regnzpar;
regnzpar++;
ret = regnode(ZOPEN + parno);
- } else if (paren == REG_PAREN) {
+ } else if (paren == REG_PAREN) {
// Make a MOPEN node.
- if (regnpar >= NSUBEXP)
+ if (regnpar >= NSUBEXP) {
EMSG2_RET_NULL(_("E51: Too many %s("), reg_magic == MAGIC_ALL);
+ }
parno = regnpar;
++regnpar;
ret = regnode(MOPEN + parno);
- } else if (paren == REG_NPAREN) {
+ } else if (paren == REG_NPAREN) {
// Make a NOPEN node.
ret = regnode(NOPEN);
- } else
+ } else {
ret = NULL;
+ }
// Pick up the branches, linking them together.
br = regbranch(&flags);
- if (br == NULL)
+ if (br == NULL) {
return NULL;
- if (ret != NULL)
+ }
+ if (ret != NULL) {
regtail(ret, br); // [MZ]OPEN -> first.
- else
+ } else {
ret = br;
+ }
// If one of the branches can be zero-width, the whole thing can.
// If one of the branches has * at start or matches a line-break, the
// whole thing can.
- if (!(flags & HASWIDTH))
+ if (!(flags & HASWIDTH)) {
*flagp &= ~HASWIDTH;
+ }
*flagp |= flags & (SPSTART | HASNL | HASLOOKBH);
while (peekchr() == Magic('|')) {
skipchr();
br = regbranch(&flags);
- if (br == NULL || reg_toolong)
+ if (br == NULL || reg_toolong) {
return NULL;
+ }
regtail(ret, br); // BRANCH -> BRANCH.
- if (!(flags & HASWIDTH))
+ if (!(flags & HASWIDTH)) {
*flagp &= ~HASWIDTH;
+ }
*flagp |= flags & (SPSTART | HASNL | HASLOOKBH);
}
// Make a closing node, and hook it on the end.
- ender = regnode(
- paren == REG_ZPAREN ? ZCLOSE + parno :
- paren == REG_PAREN ? MCLOSE + parno :
- paren == REG_NPAREN ? NCLOSE : END);
+ ender = regnode(paren == REG_ZPAREN ? ZCLOSE + parno :
+ paren == REG_PAREN ? MCLOSE + parno :
+ paren == REG_NPAREN ? NCLOSE : END);
regtail(ret, ender);
// Hook the tails of the branches to the closing node.
- for (br = ret; br != NULL; br = regnext(br))
+ for (br = ret; br != NULL; br = regnext(br)) {
regoptail(br, ender);
+ }
// Check for proper termination.
if (paren != REG_NOPAREN && getchr() != Magic(')')) {
- if (paren == REG_ZPAREN)
+ if (paren == REG_ZPAREN) {
EMSG_RET_NULL(_("E52: Unmatched \\z("));
- else if (paren == REG_NPAREN)
+ } else if (paren == REG_NPAREN) {
EMSG2_RET_NULL(_(e_unmatchedpp), reg_magic == MAGIC_ALL);
- else
+ } else {
EMSG2_RET_NULL(_(e_unmatchedp), reg_magic == MAGIC_ALL);
+ }
} else if (paren == REG_NOPAREN && peekchr() != NUL) {
- if (curchr == Magic(')'))
+ if (curchr == Magic(')')) {
EMSG2_RET_NULL(_(e_unmatchedpar), reg_magic == MAGIC_ALL);
- else
+ } else {
EMSG_RET_NULL(_(e_trailing)); // "Can't happen".
+ }
// NOTREACHED
}
// Here we set the flag allowing back references to this set of
@@ -2347,8 +2901,8 @@ static char_u *reg(
*/
static regprog_T *bt_regcomp(char_u *expr, int re_flags)
{
- char_u *scan;
- char_u *longest;
+ char_u *scan;
+ char_u *longest;
int len;
int flags;
@@ -2362,8 +2916,9 @@ static regprog_T *bt_regcomp(char_u *expr, int re_flags)
regcomp_start(expr, re_flags);
regcode = JUST_CALC_SIZE;
regc(REGMAGIC);
- if (reg(REG_NOPAREN, &flags) == NULL)
+ if (reg(REG_NOPAREN, &flags) == NULL) {
return NULL;
+ }
// Allocate space.
bt_regprog_T *r = xmalloc(sizeof(bt_regprog_T) + regsize);
@@ -2375,8 +2930,9 @@ static regprog_T *bt_regcomp(char_u *expr, int re_flags)
regc(REGMAGIC);
if (reg(REG_NOPAREN, &flags) == NULL || reg_toolong) {
xfree(r);
- if (reg_toolong)
+ if (reg_toolong) {
EMSG_RET_NULL(_("E339: Pattern too long"));
+ }
return NULL;
}
@@ -2386,10 +2942,12 @@ static regprog_T *bt_regcomp(char_u *expr, int re_flags)
r->regmust = NULL;
r->regmlen = 0;
r->regflags = regflags;
- if (flags & HASNL)
+ if (flags & HASNL) {
r->regflags |= RF_HASNL;
- if (flags & HASLOOKBH)
+ }
+ if (flags & HASLOOKBH) {
r->regflags |= RF_LOOKBH;
+ }
// Remember whether this pattern has any \z specials in it.
r->reghasz = re_has_z;
scan = r->program + 1; // First BRANCH.
@@ -2407,7 +2965,7 @@ static regprog_T *bt_regcomp(char_u *expr, int re_flags)
} else if (OP(scan) == BOW
|| OP(scan) == EOW
|| OP(scan) == NOTHING
- || OP(scan) == MOPEN + 0 || OP(scan) == NOPEN
+ || OP(scan) == MOPEN + 0 || OP(scan) == NOPEN
|| OP(scan) == MCLOSE + 0 || OP(scan) == NCLOSE) {
char_u *regnext_scan = regnext(scan);
if (OP(regnext_scan) == EXACTLY) {
@@ -2428,11 +2986,12 @@ static regprog_T *bt_regcomp(char_u *expr, int re_flags)
&& !(flags & HASNL)) {
longest = NULL;
len = 0;
- for (; scan != NULL; scan = regnext(scan))
+ for (; scan != NULL; scan = regnext(scan)) {
if (OP(scan) == EXACTLY && STRLEN(OPERAND(scan)) >= (size_t)len) {
longest = OPERAND(scan);
len = (int)STRLEN(OPERAND(scan));
}
+ }
r->regmust = longest;
r->regmlen = len;
}
@@ -2462,11 +3021,16 @@ static int coll_get_char(void)
int64_t nr = -1;
switch (*regparse++) {
- case 'd': nr = getdecchrs(); break;
- case 'o': nr = getoctchrs(); break;
- case 'x': nr = gethexchrs(2); break;
- case 'u': nr = gethexchrs(4); break;
- case 'U': nr = gethexchrs(8); break;
+ case 'd':
+ nr = getdecchrs(); break;
+ case 'o':
+ nr = getoctchrs(); break;
+ case 'x':
+ nr = gethexchrs(2); break;
+ case 'u':
+ nr = gethexchrs(4); break;
+ case 'U':
+ nr = gethexchrs(8); break;
}
if (nr < 0 || nr > INT_MAX) {
// If getting the number fails be backwards compatible: the character
@@ -2492,8 +3056,8 @@ static void bt_regfree(regprog_T *prog)
* to regmatch(), but they are here to reduce the amount of stack space used
* (it can be called recursively many times).
*/
-static long bl_minval;
-static long bl_maxval;
+static long bl_minval;
+static long bl_maxval;
// Save the input line and position in a regsave_T.
static void reg_save(regsave_T *save, garray_T *gap)
@@ -2543,10 +3107,10 @@ static bool reg_save_equal(const regsave_T *save)
// After a failed match restore the sub-expressions.
#define restore_se(savep, posp, pp) { \
- if (REG_MULTI) \
- *(posp) = (savep)->se_u.pos; \
- else \
- *(pp) = (savep)->se_u.ptr; }
+ if (REG_MULTI) /* NOLINT(readability/braces) */ \
+ *(posp) = (savep)->se_u.pos; \
+ else /* NOLINT */ \
+ *(pp) = (savep)->se_u.ptr; }
/*
* Tentatively set the sub-expression start to the current position (after
@@ -2568,17 +3132,14 @@ static void save_se_one(save_se_T *savep, char_u **pp)
*pp = rex.input;
}
-/*
- * regrepeat - repeatedly match something simple, return how many.
- * Advances rex.input (and rex.lnum) to just after the matched chars.
- */
- static int
-regrepeat(
- char_u *p,
- long maxcount) // maximum number of matches allowed
+/// regrepeat - repeatedly match something simple, return how many.
+/// Advances rex.input (and rex.lnum) to just after the matched chars.
+///
+/// @param maxcount maximum number of matches allowed
+static int regrepeat(char_u *p, long maxcount)
{
long count = 0;
- char_u *opnd;
+ char_u *opnd;
int mask;
int testval = 0;
@@ -2822,8 +3383,7 @@ do_class:
mask = RI_UPPER;
goto do_class;
- case EXACTLY:
- {
+ case EXACTLY: {
int cu, cl;
// This doesn't do a multi-byte character, because a MULTIBYTECODE
@@ -2846,8 +3406,7 @@ do_class:
break;
}
- case MULTIBYTECODE:
- {
+ case MULTIBYTECODE: {
int i, len, cf = 0;
// Safety check (just in case 'encoding' was changed since
@@ -2900,9 +3459,10 @@ do_class:
}
scan += len;
} else {
- if ((cstrchr(opnd, *scan) == NULL) == testval)
+ if ((cstrchr(opnd, *scan) == NULL) == testval) {
break;
- ++scan;
+ }
+ scan++;
}
++count;
}
@@ -2944,7 +3504,7 @@ do_class:
*/
static regitem_T *regstack_push(regstate_T state, char_u *scan)
{
- regitem_T *rp;
+ regitem_T *rp;
if ((long)((unsigned)regstack.ga_len >> 10) >= p_mmp) {
emsg(_(e_maxmempat));
@@ -2965,7 +3525,7 @@ static regitem_T *regstack_push(regstate_T state, char_u *scan)
*/
static void regstack_pop(char_u **scan)
{
- regitem_T *rp;
+ regitem_T *rp;
rp = (regitem_T *)((char *)regstack.ga_data + regstack.ga_len) - 1;
*scan = rp->rs_scan;
@@ -3021,19 +3581,20 @@ static void restore_subexpr(regbehind_T *bp)
/// (that don't need to know whether the rest of the match failed) by a nested
/// loop.
///
-/// Returns true when there is a match. Leaves rex.input and rex.lnum
-/// just after the last matched character.
-/// Returns false when there is no match. Leaves rex.input and rex.lnum in an
-/// undefined state!
-static bool regmatch(
- char_u *scan, // Current node.
- proftime_T *tm, // timeout limit or NULL
- int *timed_out) // flag set on timeout or NULL
+/// @param scan Current node.
+/// @param tm timeout limit or NULL
+/// @param timed_out flag set on timeout or NULL
+///
+/// @return - true when there is a match. Leaves rex.input and rex.lnum
+/// just after the last matched character.
+/// - false when there is no match. Leaves rex.input and rex.lnum in an
+/// undefined state!
+static bool regmatch(char_u *scan, proftime_T *tm, int *timed_out)
{
- char_u *next; // Next node.
+ char_u *next; // Next node.
int op;
int c;
- regitem_T *rp;
+ regitem_T *rp;
int no;
int status; // one of the RA_ values:
int tm_count = 0;
@@ -3044,7 +3605,7 @@ static bool regmatch(
backpos.ga_len = 0;
// Repeat until "regstack" is empty.
- for (;; ) {
+ for (;;) {
// Some patterns may take a long time to match, e.g., "\([a-z]\+\)\+Q".
// Allow interrupting them with CTRL-C.
fast_breakcheck();
@@ -3058,7 +3619,7 @@ static bool regmatch(
// Repeat for items that can be matched sequentially, without using the
// regstack.
- for (;; ) {
+ for (;;) {
if (got_int || scan == NULL) {
status = RA_FAIL;
break;
@@ -3086,8 +3647,9 @@ static bool regmatch(
mch_errmsg(_("External submatches:\n"));
for (i = 0; i < NSUBEXP; i++) {
mch_errmsg(" \"");
- if (re_extmatch_in->matches[i] != NULL)
+ if (re_extmatch_in->matches[i] != NULL) {
mch_errmsg((char *)re_extmatch_in->matches[i]);
+ }
mch_errmsg("\"\n");
}
}
@@ -3168,7 +3730,7 @@ static bool regmatch(
status = RA_NOMATCH;
} else {
const colnr_T pos_col = pos->lnum == rex.lnum + rex.reg_firstlnum
- && pos->col == MAXCOL
+ && pos->col == MAXCOL
? (colnr_T)STRLEN(reg_getline(pos->lnum - rex.reg_firstlnum))
: pos->col;
@@ -3188,8 +3750,9 @@ static bool regmatch(
break;
case RE_VISUAL:
- if (!reg_match_visual())
+ if (!reg_match_visual()) {
status = RA_NOMATCH;
+ }
break;
case RE_LNUM:
@@ -3260,10 +3823,11 @@ static bool regmatch(
break;
case IDENT:
- if (!vim_isIDc(c))
+ if (!vim_isIDc(c)) {
status = RA_NOMATCH;
- else
+ } else {
ADVANCE_REGINPUT();
+ }
break;
case SIDENT:
@@ -3324,135 +3888,152 @@ static bool regmatch(
break;
case WHITE:
- if (!ascii_iswhite(c))
+ if (!ascii_iswhite(c)) {
status = RA_NOMATCH;
- else
+ } else {
ADVANCE_REGINPUT();
+ }
break;
case NWHITE:
- if (c == NUL || ascii_iswhite(c))
+ if (c == NUL || ascii_iswhite(c)) {
status = RA_NOMATCH;
- else
+ } else {
ADVANCE_REGINPUT();
+ }
break;
case DIGIT:
- if (!ri_digit(c))
+ if (!ri_digit(c)) {
status = RA_NOMATCH;
- else
+ } else {
ADVANCE_REGINPUT();
+ }
break;
case NDIGIT:
- if (c == NUL || ri_digit(c))
+ if (c == NUL || ri_digit(c)) {
status = RA_NOMATCH;
- else
+ } else {
ADVANCE_REGINPUT();
+ }
break;
case HEX:
- if (!ri_hex(c))
+ if (!ri_hex(c)) {
status = RA_NOMATCH;
- else
+ } else {
ADVANCE_REGINPUT();
+ }
break;
case NHEX:
- if (c == NUL || ri_hex(c))
+ if (c == NUL || ri_hex(c)) {
status = RA_NOMATCH;
- else
+ } else {
ADVANCE_REGINPUT();
+ }
break;
case OCTAL:
- if (!ri_octal(c))
+ if (!ri_octal(c)) {
status = RA_NOMATCH;
- else
+ } else {
ADVANCE_REGINPUT();
+ }
break;
case NOCTAL:
- if (c == NUL || ri_octal(c))
+ if (c == NUL || ri_octal(c)) {
status = RA_NOMATCH;
- else
+ } else {
ADVANCE_REGINPUT();
+ }
break;
case WORD:
- if (!ri_word(c))
+ if (!ri_word(c)) {
status = RA_NOMATCH;
- else
+ } else {
ADVANCE_REGINPUT();
+ }
break;
case NWORD:
- if (c == NUL || ri_word(c))
+ if (c == NUL || ri_word(c)) {
status = RA_NOMATCH;
- else
+ } else {
ADVANCE_REGINPUT();
+ }
break;
case HEAD:
- if (!ri_head(c))
+ if (!ri_head(c)) {
status = RA_NOMATCH;
- else
+ } else {
ADVANCE_REGINPUT();
+ }
break;
case NHEAD:
- if (c == NUL || ri_head(c))
+ if (c == NUL || ri_head(c)) {
status = RA_NOMATCH;
- else
+ } else {
ADVANCE_REGINPUT();
+ }
break;
case ALPHA:
- if (!ri_alpha(c))
+ if (!ri_alpha(c)) {
status = RA_NOMATCH;
- else
+ } else {
ADVANCE_REGINPUT();
+ }
break;
case NALPHA:
- if (c == NUL || ri_alpha(c))
+ if (c == NUL || ri_alpha(c)) {
status = RA_NOMATCH;
- else
+ } else {
ADVANCE_REGINPUT();
+ }
break;
case LOWER:
- if (!ri_lower(c))
+ if (!ri_lower(c)) {
status = RA_NOMATCH;
- else
+ } else {
ADVANCE_REGINPUT();
+ }
break;
case NLOWER:
- if (c == NUL || ri_lower(c))
+ if (c == NUL || ri_lower(c)) {
status = RA_NOMATCH;
- else
+ } else {
ADVANCE_REGINPUT();
+ }
break;
case UPPER:
- if (!ri_upper(c))
+ if (!ri_upper(c)) {
status = RA_NOMATCH;
- else
+ } else {
ADVANCE_REGINPUT();
+ }
break;
case NUPPER:
- if (c == NUL || ri_upper(c))
+ if (c == NUL || ri_upper(c)) {
status = RA_NOMATCH;
- else
+ } else {
ADVANCE_REGINPUT();
+ }
break;
- case EXACTLY:
- {
+ case EXACTLY: {
int len;
- char_u *opnd;
+ char_u *opnd;
opnd = OPERAND(scan);
// Inline the first byte, for speed.
@@ -3492,29 +4073,29 @@ static bool regmatch(
case ANYOF:
case ANYBUT:
- if (c == NUL)
+ if (c == NUL) {
status = RA_NOMATCH;
- else if ((cstrchr(OPERAND(scan), c) == NULL) == (op == ANYOF))
+ } else if ((cstrchr(OPERAND(scan), c) == NULL) == (op == ANYOF)) {
status = RA_NOMATCH;
- else
+ } else {
ADVANCE_REGINPUT();
+ }
break;
- case MULTIBYTECODE:
- {
+ case MULTIBYTECODE: {
int i, len;
const char_u *opnd = OPERAND(scan);
- // Safety check (just in case 'encoding' was changed since
- // compiling the program).
+ // Safety check (just in case 'encoding' was changed since
+ // compiling the program).
if ((len = utfc_ptr2len((char *)opnd)) < 2) {
status = RA_NOMATCH;
break;
}
const int opndc = utf_ptr2char((char *)opnd);
if (utf_iscomposing(opndc)) {
- // When only a composing char is given match at any
- // position where that composing char appears.
+ // When only a composing char is given match at any
+ // position where that composing char appears.
status = RA_NOMATCH;
for (i = 0; rex.input[i] != NUL;
i += utf_ptr2len((char *)rex.input + i)) {
@@ -3524,7 +4105,7 @@ static bool regmatch(
break;
}
} else if (opndc == inpc) {
- // Include all following composing chars.
+ // Include all following composing chars.
len = i + utfc_ptr2len((char *)rex.input + i);
status = RA_MATCH;
break;
@@ -3543,19 +4124,16 @@ static bool regmatch(
break;
case RE_COMPOSING:
- {
- // Skip composing characters.
+ // Skip composing characters.
while (utf_iscomposing(utf_ptr2char((char *)rex.input))) {
MB_CPTR_ADV(rex.input);
}
- }
- break;
+ break;
case NOTHING:
break;
- case BACK:
- {
+ case BACK: {
int i;
// When we run into BACK we need to check if we don't keep
@@ -3565,15 +4143,18 @@ static bool regmatch(
// The positions are stored in "backpos" and found by the
// current value of "scan", the position in the RE program.
backpos_T *bp = (backpos_T *)backpos.ga_data;
- for (i = 0; i < backpos.ga_len; ++i)
- if (bp[i].bp_scan == scan)
+ for (i = 0; i < backpos.ga_len; i++) {
+ if (bp[i].bp_scan == scan) {
break;
+ }
+ }
if (i == backpos.ga_len) {
backpos_T *p = GA_APPEND_VIA_PTR(backpos_T, &backpos);
p->bp_scan = scan;
- } else if (reg_save_equal(&bp[i].bp_pos))
+ } else if (reg_save_equal(&bp[i].bp_pos)) {
// Still at same position as last time, fail.
status = RA_NOMATCH;
+ }
assert(status != RA_FAIL);
if (status != RA_NOMATCH) {
@@ -3592,25 +4173,24 @@ static bool regmatch(
case MOPEN + 7:
case MOPEN + 8:
case MOPEN + 9:
- {
no = op - MOPEN;
cleanup_subexpr();
rp = regstack_push(RS_MOPEN, scan);
- if (rp == NULL)
+ if (rp == NULL) {
status = RA_FAIL;
- else {
+ } else {
rp->rs_no = no;
save_se(&rp->rs_un.sesave, &rex.reg_startpos[no],
&rex.reg_startp[no]);
// We simply continue and handle the result when done.
}
- }
- break;
+ break;
case NOPEN: // \%(
case NCLOSE: // \) after \%(
- if (regstack_push(RS_NOPEN, scan) == NULL)
+ if (regstack_push(RS_NOPEN, scan) == NULL) {
status = RA_FAIL;
+ }
// We simply continue and handle the result when done.
break;
@@ -3623,20 +4203,18 @@ static bool regmatch(
case ZOPEN + 7:
case ZOPEN + 8:
case ZOPEN + 9:
- {
no = op - ZOPEN;
cleanup_zsubexpr();
rp = regstack_push(RS_ZOPEN, scan);
- if (rp == NULL)
+ if (rp == NULL) {
status = RA_FAIL;
- else {
+ } else {
rp->rs_no = no;
save_se(&rp->rs_un.sesave, &reg_startzpos[no],
- &reg_startzp[no]);
+ &reg_startzp[no]);
// We simply continue and handle the result when done.
}
- }
- break;
+ break;
case MCLOSE + 0: // Match end: \ze
case MCLOSE + 1: // \)
@@ -3648,7 +4226,6 @@ static bool regmatch(
case MCLOSE + 7:
case MCLOSE + 8:
case MCLOSE + 9:
- {
no = op - MCLOSE;
cleanup_subexpr();
rp = regstack_push(RS_MCLOSE, scan);
@@ -3659,8 +4236,7 @@ static bool regmatch(
save_se(&rp->rs_un.sesave, &rex.reg_endpos[no], &rex.reg_endp[no]);
// We simply continue and handle the result when done.
}
- }
- break;
+ break;
case ZCLOSE + 1: // \) after \z(
case ZCLOSE + 2:
@@ -3671,20 +4247,18 @@ static bool regmatch(
case ZCLOSE + 7:
case ZCLOSE + 8:
case ZCLOSE + 9:
- {
no = op - ZCLOSE;
cleanup_zsubexpr();
rp = regstack_push(RS_ZCLOSE, scan);
- if (rp == NULL)
+ if (rp == NULL) {
status = RA_FAIL;
- else {
+ } else {
rp->rs_no = no;
save_se(&rp->rs_un.sesave, &reg_endzpos[no],
- &reg_endzp[no]);
+ &reg_endzp[no]);
// We simply continue and handle the result when done.
}
- }
- break;
+ break;
case BACKREF + 1:
case BACKREF + 2:
@@ -3694,8 +4268,7 @@ static bool regmatch(
case BACKREF + 6:
case BACKREF + 7:
case BACKREF + 8:
- case BACKREF + 9:
- {
+ case BACKREF + 9: {
int len;
no = op - BACKREF;
@@ -3752,7 +4325,6 @@ static bool regmatch(
case ZREF + 7:
case ZREF + 8:
case ZREF + 9:
- {
cleanup_zsubexpr();
no = op - ZREF;
if (re_extmatch_in != NULL
@@ -3766,25 +4338,22 @@ static bool regmatch(
} else {
// Backref was not set: Match an empty string.
}
- }
- break;
+ break;
case BRANCH:
- {
- if (OP(next) != BRANCH) // No choice.
+ if (OP(next) != BRANCH) { // No choice.
next = OPERAND(scan); // Avoid recursion.
- else {
+ } else {
rp = regstack_push(RS_BRANCH, scan);
- if (rp == NULL)
+ if (rp == NULL) {
status = RA_FAIL;
- else
+ } else {
status = RA_BREAK; // rest is below
+ }
}
- }
- break;
+ break;
case BRACE_LIMITS:
- {
if (OP(next) == BRACE_SIMPLE) {
bl_minval = OPERAND_MIN(scan);
bl_maxval = OPERAND_MAX(scan);
@@ -3798,8 +4367,7 @@ static bool regmatch(
internal_error("BRACE_LIMITS");
status = RA_FAIL;
}
- }
- break;
+ break;
case BRACE_COMPLEX + 0:
case BRACE_COMPLEX + 1:
@@ -3811,7 +4379,6 @@ static bool regmatch(
case BRACE_COMPLEX + 7:
case BRACE_COMPLEX + 8:
case BRACE_COMPLEX + 9:
- {
no = op - BRACE_COMPLEX;
++brace_count[no];
@@ -3819,9 +4386,9 @@ static bool regmatch(
if (brace_count[no] <= (brace_min[no] <= brace_max[no]
? brace_min[no] : brace_max[no])) {
rp = regstack_push(RS_BRCPLX_MORE, scan);
- if (rp == NULL)
+ if (rp == NULL) {
status = RA_FAIL;
- else {
+ } else {
rp->rs_no = no;
reg_save(&rp->rs_un.regsave, &backpos);
next = OPERAND(scan);
@@ -3835,9 +4402,9 @@ static bool regmatch(
// Range is the normal way around, use longest match
if (brace_count[no] <= brace_max[no]) {
rp = regstack_push(RS_BRCPLX_LONG, scan);
- if (rp == NULL)
+ if (rp == NULL) {
status = RA_FAIL;
- else {
+ } else {
rp->rs_no = no;
reg_save(&rp->rs_un.regsave, &backpos);
next = OPERAND(scan);
@@ -3848,21 +4415,19 @@ static bool regmatch(
// Range is backwards, use shortest match first
if (brace_count[no] <= brace_min[no]) {
rp = regstack_push(RS_BRCPLX_SHORT, scan);
- if (rp == NULL)
+ if (rp == NULL) {
status = RA_FAIL;
- else {
+ } else {
reg_save(&rp->rs_un.regsave, &backpos);
// We continue and handle the result when done.
}
}
}
- }
- break;
+ break;
case BRACE_SIMPLE:
case STAR:
- case PLUS:
- {
+ case PLUS: {
regstar_T rst;
// Lookahead to avoid useless match attempts when we know
@@ -3910,18 +4475,17 @@ static bool regmatch(
} else {
ga_grow(&regstack, sizeof(regstar_T));
regstack.ga_len += sizeof(regstar_T);
- rp = regstack_push(rst.minval <= rst.maxval
- ? RS_STAR_LONG : RS_STAR_SHORT, scan);
- if (rp == NULL)
+ rp = regstack_push(rst.minval <= rst.maxval ? RS_STAR_LONG : RS_STAR_SHORT, scan);
+ if (rp == NULL) {
status = RA_FAIL;
- else {
+ } else {
*(((regstar_T *)rp) - 1) = rst;
status = RA_BREAK; // skip the restore bits
}
}
- } else
+ } else {
status = RA_NOMATCH;
-
+ }
}
break;
@@ -3929,9 +4493,9 @@ static bool regmatch(
case MATCH:
case SUBPAT:
rp = regstack_push(RS_NOMATCH, scan);
- if (rp == NULL)
+ if (rp == NULL) {
status = RA_FAIL;
- else {
+ } else {
rp->rs_no = op;
reg_save(&rp->rs_un.regsave, &backpos);
next = OPERAND(scan);
@@ -3949,9 +4513,9 @@ static bool regmatch(
ga_grow(&regstack, sizeof(regbehind_T));
regstack.ga_len += sizeof(regbehind_T);
rp = regstack_push(RS_BEHIND1, scan);
- if (rp == NULL)
+ if (rp == NULL) {
status = RA_FAIL;
- else {
+ } else {
// Need to save the subexpr to be able to restore them
// when there is a match but we don't use it.
save_subexpr(((regbehind_T *)rp) - 1);
@@ -4001,13 +4565,13 @@ static bool regmatch(
}
// If we can't continue sequentially, break the inner loop.
- if (status != RA_CONT)
+ if (status != RA_CONT) {
break;
+ }
// Continue in inner loop, advance to next item.
scan = next;
-
- } // end of inner loop
+ } // end of inner loop
// If there is something on the regstack execute the code for the state.
// If the state is popped then loop and use the older state.
@@ -4030,9 +4594,10 @@ static bool regmatch(
case RS_ZOPEN:
// Pop the state. Restore pointers when there is no match.
- if (status == RA_NOMATCH)
+ if (status == RA_NOMATCH) {
restore_se(&rp->rs_un.sesave, &reg_startzpos[rp->rs_no],
- &reg_startzp[rp->rs_no]);
+ &reg_startzp[rp->rs_no]);
+ }
regstack_pop(&scan);
break;
@@ -4047,17 +4612,18 @@ static bool regmatch(
case RS_ZCLOSE:
// Pop the state. Restore pointers when there is no match.
- if (status == RA_NOMATCH)
+ if (status == RA_NOMATCH) {
restore_se(&rp->rs_un.sesave, &reg_endzpos[rp->rs_no],
- &reg_endzp[rp->rs_no]);
+ &reg_endzp[rp->rs_no]);
+ }
regstack_pop(&scan);
break;
case RS_BRANCH:
- if (status == RA_MATCH)
+ if (status == RA_MATCH) {
// this branch matched, use it
regstack_pop(&scan);
- else {
+ } else {
if (status != RA_BREAK) {
// After a non-matching branch: try next one.
reg_restore(&rp->rs_un.regsave, &backpos);
@@ -4095,15 +4661,17 @@ static bool regmatch(
status = RA_CONT;
}
regstack_pop(&scan);
- if (status == RA_CONT)
+ if (status == RA_CONT) {
scan = regnext(scan);
+ }
break;
case RS_BRCPLX_SHORT:
// Pop the state. Restore pointers when there is no match.
- if (status == RA_NOMATCH)
+ if (status == RA_NOMATCH) {
// There was no match, try to match one more item.
reg_restore(&rp->rs_un.regsave, &backpos);
+ }
regstack_pop(&scan);
if (status == RA_NOMATCH) {
scan = OPERAND(scan);
@@ -4115,16 +4683,18 @@ static bool regmatch(
// Pop the state. If the operand matches for NOMATCH or
// doesn't match for MATCH/SUBPAT, we fail. Otherwise backup,
// except for SUBPAT, and continue with the next item.
- if (status == (rp->rs_no == NOMATCH ? RA_MATCH : RA_NOMATCH))
+ if (status == (rp->rs_no == NOMATCH ? RA_MATCH : RA_NOMATCH)) {
status = RA_NOMATCH;
- else {
+ } else {
status = RA_CONT;
- if (rp->rs_no != SUBPAT) // zero-width
+ if (rp->rs_no != SUBPAT) { // zero-width
reg_restore(&rp->rs_un.regsave, &backpos);
+ }
}
regstack_pop(&scan);
- if (status == RA_CONT)
+ if (status == RA_CONT) {
scan = regnext(scan);
+ }
break;
case RS_BEHIND1:
@@ -4162,10 +4732,10 @@ static bool regmatch(
if (status == RA_MATCH && reg_save_equal(&behind_pos)) {
// found a match that ends where "next" started
behind_pos = (((regbehind_T *)rp) - 1)->save_behind;
- if (rp->rs_no == BEHIND)
+ if (rp->rs_no == BEHIND) {
reg_restore(&(((regbehind_T *)rp) - 1)->save_after,
- &backpos);
- else {
+ &backpos);
+ } else {
// But we didn't want a match. Need to restore the
// subexpr, because what follows matched, so they have
// been set.
@@ -4187,16 +4757,15 @@ static bool regmatch(
< behind_pos.rs_u.pos.lnum
? (colnr_T)STRLEN(rex.line)
: behind_pos.rs_u.pos.col)
- - rp->rs_un.regsave.rs_u.pos.col >= limit))
+ - rp->rs_un.regsave.rs_u.pos.col >= limit)) {
no = FAIL;
- else if (rp->rs_un.regsave.rs_u.pos.col == 0) {
+ } else if (rp->rs_un.regsave.rs_u.pos.col == 0) {
if (rp->rs_un.regsave.rs_u.pos.lnum
< behind_pos.rs_u.pos.lnum
- || reg_getline(
- --rp->rs_un.regsave.rs_u.pos.lnum)
- == NULL)
+ || reg_getline(--rp->rs_un.regsave.rs_u.pos.lnum)
+ == NULL) {
no = FAIL;
- else {
+ } else {
reg_restore(&rp->rs_un.regsave, &backpos);
rp->rs_un.regsave.rs_u.pos.col =
(colnr_T)STRLEN(rex.line);
@@ -4207,7 +4776,7 @@ static bool regmatch(
rp->rs_un.regsave.rs_u.pos.col -=
utf_head_off(line,
- line + rp->rs_un.regsave.rs_u.pos.col - 1)
+ line + rp->rs_un.regsave.rs_u.pos.col - 1)
+ 1;
}
} else {
@@ -4236,7 +4805,7 @@ static bool regmatch(
behind_pos = (((regbehind_T *)rp) - 1)->save_behind;
if (rp->rs_no == NOBEHIND) {
reg_restore(&(((regbehind_T *)rp) - 1)->save_after,
- &backpos);
+ &backpos);
status = RA_MATCH;
} else {
// We do want a proper match. Need to restore the
@@ -4254,9 +4823,8 @@ static bool regmatch(
break;
case RS_STAR_LONG:
- case RS_STAR_SHORT:
- {
- regstar_T *rst = ((regstar_T *)rp) - 1;
+ case RS_STAR_SHORT: {
+ regstar_T *rst = ((regstar_T *)rp) - 1;
if (status == RA_MATCH) {
regstack_pop(&scan);
@@ -4265,18 +4833,20 @@ static bool regmatch(
}
// Tried once already, restore input pointers.
- if (status != RA_BREAK)
+ if (status != RA_BREAK) {
reg_restore(&rp->rs_un.regsave, &backpos);
+ }
// Repeat until we found a position where it could match.
- for (;; ) {
+ for (;;) {
if (status != RA_BREAK) {
// Tried first position already, advance.
if (rp->rs_state == RS_STAR_LONG) {
// Trying for longest match, but couldn't or
// didn't match -- back up one char.
- if (--rst->count < rst->minval)
+ if (--rst->count < rst->minval) {
break;
+ }
if (rex.input == rex.line) {
// backup to last char of previous line
if (rex.lnum == 0) {
@@ -4300,14 +4870,17 @@ static bool regmatch(
// Couldn't or didn't match: try advancing one
// char.
if (rst->count == rst->minval
- || regrepeat(OPERAND(rp->rs_scan), 1L) == 0)
+ || regrepeat(OPERAND(rp->rs_scan), 1L) == 0) {
break;
- ++rst->count;
+ }
+ rst->count++;
}
- if (got_int)
+ if (got_int) {
break;
- } else
+ }
+ } else {
status = RA_NOMATCH;
+ }
// If it could match, try it.
if (rst->nextb == NUL || *rex.input == rst->nextb
@@ -4331,13 +4904,15 @@ static bool regmatch(
// If we want to continue the inner loop or didn't pop a state
// continue matching loop
if (status == RA_CONT || rp == (regitem_T *)
- ((char *)regstack.ga_data + regstack.ga_len) - 1)
+ ((char *)regstack.ga_data + regstack.ga_len) - 1) {
break;
+ }
}
// May need to continue with the inner loop, starting at "scan".
- if (status == RA_CONT)
+ if (status == RA_CONT) {
continue;
+ }
// If the regstack is empty or something failed we are done.
if (GA_EMPTY(&regstack) || status == RA_FAIL) {
@@ -4351,18 +4926,18 @@ static bool regmatch(
}
return status == RA_MATCH;
}
-
- } // End of loop until the regstack is empty.
+ } // End of loop until the regstack is empty.
// NOTREACHED
}
/// Try match of "prog" with at rex.line["col"].
-/// @returns 0 for failure, or number of lines contained in the match.
-static long regtry(bt_regprog_T *prog,
- colnr_T col,
- proftime_T *tm, // timeout limit or NULL
- int *timed_out) // flag set on timeout or NULL
+///
+/// @param tm timeout limit or NULL
+/// @param timed_out flag set on timeout or NULL
+///
+/// @return 0 for failure, or number of lines contained in the match.
+static long regtry(bt_regprog_T *prog, colnr_T col, proftime_T *tm, int *timed_out)
{
rex.input = rex.line + col;
rex.need_clear_subexpr = true;
@@ -4416,9 +4991,10 @@ static long regtry(bt_regprog_T *prog,
- reg_startzpos[i].col);
}
} else {
- if (reg_startzp[i] != NULL && reg_endzp[i] != NULL)
+ if (reg_startzp[i] != NULL && reg_endzp[i] != NULL) {
re_extmatch_out->matches[i] =
vim_strnsave(reg_startzp[i], reg_endzp[i] - reg_startzp[i]);
+ }
}
}
}
@@ -4427,14 +5003,16 @@ static long regtry(bt_regprog_T *prog,
/// Match a regexp against a string ("line" points to the string) or multiple
/// lines (if "line" is NULL, use reg_getline()).
-/// @return 0 for failure, or number of lines contained in the match.
-static long bt_regexec_both(char_u *line,
- colnr_T col, // column to start search
- proftime_T *tm, // timeout limit or NULL
- int *timed_out) // flag set on timeout or NULL
+///
+/// @param col column to start search
+/// @param tm timeout limit or NULL
+/// @param timed_out flag set on timeout or NULL
+///
+/// @return 0 for failure, or number of lines contained in the match.
+static long bt_regexec_both(char_u *line, colnr_T col, proftime_T *tm, int *timed_out)
{
- bt_regprog_T *prog;
- char_u *s;
+ bt_regprog_T *prog;
+ char_u *s;
long retval = 0L;
// Create "regstack" and "backpos" if they are not allocated yet.
@@ -4473,8 +5051,9 @@ static long bt_regexec_both(char_u *line,
}
// Check validity of program.
- if (prog_magic_wrong())
+ if (prog_magic_wrong()) {
goto theend;
+ }
// If the start column is past the maximum column: no need to try.
if (rex.reg_maxcol > 0 && col >= rex.reg_maxcol) {
@@ -4501,7 +5080,7 @@ static long bt_regexec_both(char_u *line,
// This is used very often, esp. for ":global". Use two versions of
// the loop to avoid overhead of conditions.
if (!rex.reg_ic) {
- while ((s = vim_strchr(s, c)) != NULL) {
+ while ((s = (char_u *)vim_strchr((char *)s, c)) != NULL) {
if (cstrncmp(s, prog->regmust, &prog->regmlen) == 0) {
break; // Found it.
}
@@ -4590,10 +5169,12 @@ theend:
if (reg_tofreelen > 400) {
XFREE_CLEAR(reg_tofree);
}
- if (regstack.ga_maxlen > REGSTACK_INITIAL)
+ if (regstack.ga_maxlen > REGSTACK_INITIAL) {
ga_clear(&regstack);
- if (backpos.ga_maxlen > BACKPOS_INITIAL)
+ }
+ if (backpos.ga_maxlen > BACKPOS_INITIAL) {
ga_clear(&backpos);
+ }
if (retval > 0) {
// Make sure the end is never before the start. Can happen when \zs
@@ -4616,19 +5197,16 @@ theend:
return retval;
}
-/*
- * Match a regexp against a string.
- * "rmp->regprog" is a compiled regexp as returned by vim_regcomp().
- * Uses curbuf for line count and 'iskeyword'.
- * If "line_lbr" is true, consider a "\n" in "line" to be a line break.
- *
- * Returns 0 for failure, number of lines contained in the match otherwise.
- */
-static int bt_regexec_nl(
- regmatch_T *rmp,
- char_u *line, // string to match against
- colnr_T col, // column to start looking for match
- bool line_lbr)
+/// Match a regexp against a string.
+/// "rmp->regprog" is a compiled regexp as returned by vim_regcomp().
+/// Uses curbuf for line count and 'iskeyword'.
+/// If "line_lbr" is true, consider a "\n" in "line" to be a line break.
+///
+/// @param line string to match against
+/// @param col column to start looking for match
+///
+/// @return 0 for failure, number of lines contained in the match otherwise.
+static int bt_regexec_nl(regmatch_T *rmp, char_u *line, colnr_T col, bool line_lbr)
{
rex.reg_match = rmp;
rex.reg_mmatch = NULL;
@@ -4658,8 +5236,7 @@ static int bt_regexec_nl(
///
/// @return zero if there is no match and number of lines contained in the match
/// otherwise.
-static long bt_regexec_multi(regmmatch_T *rmp, win_T *win, buf_T *buf,
- linenr_T lnum, colnr_T col,
+static long bt_regexec_multi(regmmatch_T *rmp, win_T *win, buf_T *buf, linenr_T lnum, colnr_T col,
proftime_T *tm, int *timed_out)
{
rex.reg_match = NULL;
@@ -4683,10 +5260,12 @@ static int re_num_cmp(uint32_t val, char_u *scan)
{
uint32_t n = (uint32_t)OPERAND_MIN(scan);
- if (OPERAND_CMP(scan) == '>')
+ if (OPERAND_CMP(scan) == '>') {
return val > n;
- if (OPERAND_CMP(scan) == '<')
+ }
+ if (OPERAND_CMP(scan) == '<') {
return val < n;
+ }
return val == n;
}
@@ -4697,21 +5276,22 @@ static int re_num_cmp(uint32_t val, char_u *scan)
*/
static void regdump(char_u *pattern, bt_regprog_T *r)
{
- char_u *s;
+ char_u *s;
int op = EXACTLY; // Arbitrary non-END op.
- char_u *next;
- char_u *end = NULL;
- FILE *f;
+ char_u *next;
+ char_u *end = NULL;
+ FILE *f;
-#ifdef BT_REGEXP_LOG
+# ifdef BT_REGEXP_LOG
f = fopen("bt_regexp_log.log", "a");
-#else
+# else
f = stdout;
-#endif
- if (f == NULL)
+# endif
+ if (f == NULL) {
return;
+ }
fprintf(f, "-------------------------------------\n\r\nregcomp(%s):\r\n",
- pattern);
+ pattern);
s = r->program + 1;
// Loop until we find the END that isn't before a referred next (an END
@@ -4720,12 +5300,14 @@ static void regdump(char_u *pattern, bt_regprog_T *r)
op = OP(s);
fprintf(f, "%2d%s", (int)(s - r->program), regprop(s)); // Where, what.
next = regnext(s);
- if (next == NULL) // Next ptr.
+ if (next == NULL) { // Next ptr.
fprintf(f, "(0)");
- else
+ } else {
fprintf(f, "(%d)", (int)((s - r->program) + (next - s)));
- if (end < next)
+ }
+ if (end < next) {
end = next;
+ }
if (op == BRACE_LIMITS) {
// Two ints
fprintf(f, " minval %" PRId64 ", maxval %" PRId64,
@@ -4746,8 +5328,9 @@ static void regdump(char_u *pattern, bt_regprog_T *r)
|| op == EXACTLY) {
// Literal string, where present.
fprintf(f, "\nxxxxxxxxx\n");
- while (*s != NUL)
+ while (*s != NUL) {
fprintf(f, "%c", *s++);
+ }
fprintf(f, "\nxxxxxxxxx\n");
s++;
}
@@ -4755,19 +5338,22 @@ static void regdump(char_u *pattern, bt_regprog_T *r)
}
// Header fields of interest.
- if (r->regstart != NUL)
+ if (r->regstart != NUL) {
fprintf(f, "start `%s' 0x%x; ", r->regstart < 256
- ? (char *)transchar(r->regstart)
- : "multibyte", r->regstart);
- if (r->reganch)
+ ? (char *)transchar(r->regstart)
+ : "multibyte", r->regstart);
+ }
+ if (r->reganch) {
fprintf(f, "anchored; ");
- if (r->regmust != NULL)
+ }
+ if (r->regmust != NULL) {
fprintf(f, "must have \"%s\"", r->regmust);
+ }
fprintf(f, "\r\n");
-#ifdef BT_REGEXP_LOG
+# ifdef BT_REGEXP_LOG
fclose(f);
-#endif
+# endif
}
#endif // BT_REGEXP_DUMP
@@ -4778,7 +5364,7 @@ static void regdump(char_u *pattern, bt_regprog_T *r)
*/
static char_u *regprop(char_u *op)
{
- char *p;
+ char *p;
static char buf[50];
STRCPY(buf, ":");
@@ -5144,8 +5730,9 @@ static char_u *regprop(char_u *op)
p = NULL;
break;
}
- if (p != NULL)
+ if (p != NULL) {
STRCAT(buf, p);
+ }
return (char_u *)buf;
}
#endif // REGEXP_DEBUG
diff --git a/src/nvim/regexp_nfa.c b/src/nvim/regexp_nfa.c
index 7ab4f4ed53..cad5e9df29 100644
--- a/src/nvim/regexp_nfa.c
+++ b/src/nvim/regexp_nfa.c
@@ -1,8 +1,6 @@
// This is an open source non-commercial project. Dear PVS-Studio, please check
// it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
-// uncrustify:off
-
/*
* NFA regular expression implementation.
*
@@ -11,8 +9,8 @@
#include <assert.h>
#include <inttypes.h>
-#include <stdbool.h>
#include <limits.h>
+#include <stdbool.h>
#include "nvim/ascii.h"
#include "nvim/garray.h"
@@ -39,13 +37,13 @@
# define NFA_REGEXP_DEBUG_LOG "nfa_regexp_debug.log"
#endif
-/* Added to NFA_ANY - NFA_NUPPER_IC to include a NL. */
+// Added to NFA_ANY - NFA_NUPPER_IC to include a NL.
#define NFA_ADD_NL 31
enum {
NFA_SPLIT = -1024,
NFA_MATCH,
- NFA_EMPTY, /* matches 0-length */
+ NFA_EMPTY, // matches 0-length
NFA_START_COLL, // [abc] start
NFA_END_COLL, // [abc] end
@@ -64,17 +62,17 @@ enum {
NFA_QUEST, // greedy \? (postfix only)
NFA_QUEST_NONGREEDY, // non-greedy \? (postfix only)
- NFA_BOL, /* ^ Begin line */
- NFA_EOL, /* $ End line */
- NFA_BOW, /* \< Begin word */
- NFA_EOW, /* \> End word */
- NFA_BOF, /* \%^ Begin file */
- NFA_EOF, /* \%$ End file */
+ NFA_BOL, // ^ Begin line
+ NFA_EOL, // $ End line
+ NFA_BOW, // \< Begin word
+ NFA_EOW, // \> End word
+ NFA_BOF, // \%^ Begin file
+ NFA_EOF, // \%$ End file
NFA_NEWL,
- NFA_ZSTART, /* Used for \zs */
- NFA_ZEND, /* Used for \ze */
- NFA_NOPEN, /* Start of subexpression marked with \%( */
- NFA_NCLOSE, /* End of subexpr. marked with \%( ... \) */
+ NFA_ZSTART, // Used for \zs
+ NFA_ZEND, // Used for \ze
+ NFA_NOPEN, // Start of subexpression marked with \%(
+ NFA_NCLOSE, // End of subexpr. marked with \%( ... \)
NFA_START_INVISIBLE,
NFA_START_INVISIBLE_FIRST,
NFA_START_INVISIBLE_NEG,
@@ -91,34 +89,34 @@ enum {
// composing multibyte char
NFA_END_COMPOSING, // End of a composing char in the NFA
NFA_ANY_COMPOSING, // \%C: Any composing characters.
- NFA_OPT_CHARS, /* \%[abc] */
-
- /* The following are used only in the postfix form, not in the NFA */
- NFA_PREV_ATOM_NO_WIDTH, /* Used for \@= */
- NFA_PREV_ATOM_NO_WIDTH_NEG, /* Used for \@! */
- NFA_PREV_ATOM_JUST_BEFORE, /* Used for \@<= */
- NFA_PREV_ATOM_JUST_BEFORE_NEG, /* Used for \@<! */
- NFA_PREV_ATOM_LIKE_PATTERN, /* Used for \@> */
-
- NFA_BACKREF1, /* \1 */
- NFA_BACKREF2, /* \2 */
- NFA_BACKREF3, /* \3 */
- NFA_BACKREF4, /* \4 */
- NFA_BACKREF5, /* \5 */
- NFA_BACKREF6, /* \6 */
- NFA_BACKREF7, /* \7 */
- NFA_BACKREF8, /* \8 */
- NFA_BACKREF9, /* \9 */
- NFA_ZREF1, /* \z1 */
- NFA_ZREF2, /* \z2 */
- NFA_ZREF3, /* \z3 */
- NFA_ZREF4, /* \z4 */
- NFA_ZREF5, /* \z5 */
- NFA_ZREF6, /* \z6 */
- NFA_ZREF7, /* \z7 */
- NFA_ZREF8, /* \z8 */
- NFA_ZREF9, /* \z9 */
- NFA_SKIP, /* Skip characters */
+ NFA_OPT_CHARS, // \%[abc]
+
+ // The following are used only in the postfix form, not in the NFA
+ NFA_PREV_ATOM_NO_WIDTH, // Used for \@=
+ NFA_PREV_ATOM_NO_WIDTH_NEG, // Used for \@!
+ NFA_PREV_ATOM_JUST_BEFORE, // Used for \@<=
+ NFA_PREV_ATOM_JUST_BEFORE_NEG, // Used for \@<!
+ NFA_PREV_ATOM_LIKE_PATTERN, // Used for \@>
+
+ NFA_BACKREF1, // \1
+ NFA_BACKREF2, // \2
+ NFA_BACKREF3, // \3
+ NFA_BACKREF4, // \4
+ NFA_BACKREF5, // \5
+ NFA_BACKREF6, // \6
+ NFA_BACKREF7, // \7
+ NFA_BACKREF8, // \8
+ NFA_BACKREF9, // \9
+ NFA_ZREF1, // \z1
+ NFA_ZREF2, // \z2
+ NFA_ZREF3, // \z3
+ NFA_ZREF4, // \z4
+ NFA_ZREF5, // \z5
+ NFA_ZREF6, // \z6
+ NFA_ZREF7, // \z7
+ NFA_ZREF8, // \z8
+ NFA_ZREF9, // \z9
+ NFA_SKIP, // Skip characters
NFA_MOPEN,
NFA_MOPEN1,
@@ -164,58 +162,58 @@ enum {
NFA_ZCLOSE8,
NFA_ZCLOSE9,
- /* NFA_FIRST_NL */
- NFA_ANY, /* Match any one character. */
- NFA_IDENT, /* Match identifier char */
- NFA_SIDENT, /* Match identifier char but no digit */
- NFA_KWORD, /* Match keyword char */
- NFA_SKWORD, /* Match word char but no digit */
- NFA_FNAME, /* Match file name char */
- NFA_SFNAME, /* Match file name char but no digit */
- NFA_PRINT, /* Match printable char */
- NFA_SPRINT, /* Match printable char but no digit */
- NFA_WHITE, /* Match whitespace char */
- NFA_NWHITE, /* Match non-whitespace char */
- NFA_DIGIT, /* Match digit char */
- NFA_NDIGIT, /* Match non-digit char */
- NFA_HEX, /* Match hex char */
- NFA_NHEX, /* Match non-hex char */
- NFA_OCTAL, /* Match octal char */
- NFA_NOCTAL, /* Match non-octal char */
- NFA_WORD, /* Match word char */
- NFA_NWORD, /* Match non-word char */
- NFA_HEAD, /* Match head char */
- NFA_NHEAD, /* Match non-head char */
- NFA_ALPHA, /* Match alpha char */
- NFA_NALPHA, /* Match non-alpha char */
- NFA_LOWER, /* Match lowercase char */
- NFA_NLOWER, /* Match non-lowercase char */
- NFA_UPPER, /* Match uppercase char */
- NFA_NUPPER, /* Match non-uppercase char */
- NFA_LOWER_IC, /* Match [a-z] */
- NFA_NLOWER_IC, /* Match [^a-z] */
- NFA_UPPER_IC, /* Match [A-Z] */
- NFA_NUPPER_IC, /* Match [^A-Z] */
+ // NFA_FIRST_NL
+ NFA_ANY, // Match any one character.
+ NFA_IDENT, // Match identifier char
+ NFA_SIDENT, // Match identifier char but no digit
+ NFA_KWORD, // Match keyword char
+ NFA_SKWORD, // Match word char but no digit
+ NFA_FNAME, // Match file name char
+ NFA_SFNAME, // Match file name char but no digit
+ NFA_PRINT, // Match printable char
+ NFA_SPRINT, // Match printable char but no digit
+ NFA_WHITE, // Match whitespace char
+ NFA_NWHITE, // Match non-whitespace char
+ NFA_DIGIT, // Match digit char
+ NFA_NDIGIT, // Match non-digit char
+ NFA_HEX, // Match hex char
+ NFA_NHEX, // Match non-hex char
+ NFA_OCTAL, // Match octal char
+ NFA_NOCTAL, // Match non-octal char
+ NFA_WORD, // Match word char
+ NFA_NWORD, // Match non-word char
+ NFA_HEAD, // Match head char
+ NFA_NHEAD, // Match non-head char
+ NFA_ALPHA, // Match alpha char
+ NFA_NALPHA, // Match non-alpha char
+ NFA_LOWER, // Match lowercase char
+ NFA_NLOWER, // Match non-lowercase char
+ NFA_UPPER, // Match uppercase char
+ NFA_NUPPER, // Match non-uppercase char
+ NFA_LOWER_IC, // Match [a-z]
+ NFA_NLOWER_IC, // Match [^a-z]
+ NFA_UPPER_IC, // Match [A-Z]
+ NFA_NUPPER_IC, // Match [^A-Z]
NFA_FIRST_NL = NFA_ANY + NFA_ADD_NL,
NFA_LAST_NL = NFA_NUPPER_IC + NFA_ADD_NL,
- NFA_CURSOR, /* Match cursor pos */
- NFA_LNUM, /* Match line number */
- NFA_LNUM_GT, /* Match > line number */
- NFA_LNUM_LT, /* Match < line number */
- NFA_COL, /* Match cursor column */
- NFA_COL_GT, /* Match > cursor column */
- NFA_COL_LT, /* Match < cursor column */
- NFA_VCOL, /* Match cursor virtual column */
- NFA_VCOL_GT, /* Match > cursor virtual column */
- NFA_VCOL_LT, /* Match < cursor virtual column */
- NFA_MARK, /* Match mark */
- NFA_MARK_GT, /* Match > mark */
- NFA_MARK_LT, /* Match < mark */
- NFA_VISUAL, /* Match Visual area */
-
- /* Character classes [:alnum:] etc */
+ NFA_CURSOR, // Match cursor pos
+ NFA_LNUM, // Match line number
+ NFA_LNUM_GT, // Match > line number
+ NFA_LNUM_LT, // Match < line number
+ NFA_COL, // Match cursor column
+ NFA_COL_GT, // Match > cursor column
+ NFA_COL_LT, // Match < cursor column
+ NFA_VCOL, // Match cursor virtual column
+ NFA_VCOL_GT, // Match > cursor virtual column
+ NFA_VCOL_LT, // Match < cursor virtual column
+ NFA_MARK, // Match mark
+ NFA_MARK_GT, // Match > mark
+ NFA_MARK_LT, // Match < mark
+ NFA_VISUAL, // Match Visual area
+
+ // Character classes [:alnum:] etc
NFA_CLASS_ALNUM,
NFA_CLASS_ALPHA,
NFA_CLASS_BLANK,
@@ -237,9 +235,9 @@ enum {
NFA_CLASS_FNAME,
};
-/* Keep in sync with classchars. */
+// Keep in sync with classchars.
static int nfa_classcodes[] = {
- NFA_ANY, NFA_IDENT, NFA_SIDENT, NFA_KWORD,NFA_SKWORD,
+ NFA_ANY, NFA_IDENT, NFA_SIDENT, NFA_KWORD, NFA_SKWORD,
NFA_FNAME, NFA_SFNAME, NFA_PRINT, NFA_SPRINT,
NFA_WHITE, NFA_NWHITE, NFA_DIGIT, NFA_NDIGIT,
NFA_HEX, NFA_NHEX, NFA_OCTAL, NFA_NOCTAL,
@@ -248,11 +246,9 @@ static int nfa_classcodes[] = {
NFA_UPPER, NFA_NUPPER
};
-static char_u e_nul_found[] = N_(
- "E865: (NFA) Regexp end encountered prematurely");
+static char_u e_nul_found[] = N_("E865: (NFA) Regexp end encountered prematurely");
static char_u e_misplaced[] = N_("E866: (NFA regexp) Misplaced %c");
-static char_u e_ill_char_class[] = N_(
- "E877: (NFA regexp) Invalid character class: %" PRId64);
+static char_u e_ill_char_class[] = N_("E877: (NFA regexp) Invalid character class: %" PRId64);
static char_u e_value_too_large[] = N_("E951: \\% value too large");
// Since the out pointers in the list are always
@@ -260,13 +256,13 @@ static char_u e_value_too_large[] = N_("E951: \\% value too large");
// as storage for the Ptrlists.
typedef union Ptrlist Ptrlist;
union Ptrlist {
- Ptrlist *next;
+ Ptrlist *next;
nfa_state_T *s;
};
struct Frag {
nfa_state_T *start;
- Ptrlist *out;
+ Ptrlist *out;
};
typedef struct Frag Frag_T;
@@ -276,36 +272,36 @@ typedef struct {
// When REG_MULTI is true list.multi is used, otherwise list.line.
union {
struct multipos {
- linenr_T start_lnum;
- linenr_T end_lnum;
+ linenr_T start_lnum;
+ linenr_T end_lnum;
colnr_T start_col;
colnr_T end_col;
} multi[NSUBEXP];
struct linepos {
- char_u *start;
- char_u *end;
+ char_u *start;
+ char_u *end;
} line[NSUBEXP];
} list;
} regsub_T;
typedef struct {
- regsub_T norm; /* \( .. \) matches */
- regsub_T synt; /* \z( .. \) matches */
+ regsub_T norm; // \( .. \) matches
+ regsub_T synt; // \z( .. \) matches
} regsubs_T;
-/* nfa_pim_T stores a Postponed Invisible Match. */
+// nfa_pim_T stores a Postponed Invisible Match.
typedef struct nfa_pim_S nfa_pim_T;
struct nfa_pim_S {
- int result; /* NFA_PIM_*, see below */
- nfa_state_T *state; /* the invisible match start state */
- regsubs_T subs; /* submatch info, only party used */
+ int result; // NFA_PIM_*, see below
+ nfa_state_T *state; // the invisible match start state
+ regsubs_T subs; // submatch info, only party used
union {
lpos_T pos;
- char_u *ptr;
- } end; /* where the match must end */
+ char_u *ptr;
+ } end; // where the match must end
};
-/* nfa_thread_T contains execution information of a NFA state */
+// nfa_thread_T contains execution information of a NFA state
typedef struct {
nfa_state_T *state;
int count;
@@ -316,7 +312,7 @@ typedef struct {
// nfa_list_T contains the alternative NFA execution states.
typedef struct {
- nfa_thread_T *t; ///< allocated array of states
+ nfa_thread_T *t; ///< allocated array of states
int n; ///< nr of states currently in "t"
int len; ///< max nr of states in "t"
int id; ///< ID of the list
@@ -337,10 +333,10 @@ static bool wants_nfa;
static int nstate; ///< Number of states in the NFA. Also used when executing.
static int istate; ///< Index in the state vector, used in alloc_state()
-/* If not NULL match must end at this position */
+// If not NULL match must end at this position
static save_se_T *nfa_endp = NULL;
-/* 0 for first call to nfa_regmatch(), 1 for recursive call. */
+// 0 for first call to nfa_regmatch(), 1 for recursive call.
static int nfa_ll_index = 0;
#ifdef INCLUDE_GENERATED_DECLARATIONS
@@ -349,35 +345,31 @@ static int nfa_ll_index = 0;
// Helper functions used when doing re2post() ... regatom() parsing
#define EMIT(c) \
- do { \
- if (post_ptr >= post_end) { \
- realloc_post_list(); \
- } \
- *post_ptr++ = c; \
- } while (0)
-
-/*
- * Initialize internal variables before NFA compilation.
- */
-static void
-nfa_regcomp_start (
- char_u *expr,
- int re_flags /* see vim_regcomp() */
-)
+ do { \
+ if (post_ptr >= post_end) { \
+ realloc_post_list(); \
+ } \
+ *post_ptr++ = c; \
+ } while (0)
+
+/// Initialize internal variables before NFA compilation.
+///
+/// @param re_flags @see vim_regcomp()
+static void nfa_regcomp_start(char_u *expr, int re_flags)
{
size_t postfix_size;
size_t nstate_max;
nstate = 0;
istate = 0;
- /* A reasonable estimation for maximum size */
+ // A reasonable estimation for maximum size
nstate_max = (STRLEN(expr) + 1) * 25;
// Some items blow up in size, such as [A-z]. Add more space for that.
// When it is still not enough realloc_post_list() will be used.
nstate_max += 1000;
- /* Size for postfix representation of expr. */
+ // Size for postfix representation of expr.
postfix_size = sizeof(int) * nstate_max;
post_start = (int *)xmalloc(postfix_size);
@@ -387,7 +379,7 @@ nfa_regcomp_start (
rex.nfa_has_zend = false;
rex.nfa_has_backref = false;
- /* shared with BT engine */
+ // shared with BT engine
regcomp_start(expr, re_flags);
}
@@ -399,14 +391,15 @@ static int nfa_get_reganch(nfa_state_T *start, int depth)
{
nfa_state_T *p = start;
- if (depth > 4)
+ if (depth > 4) {
return 0;
+ }
while (p != NULL) {
switch (p->c) {
case NFA_BOL:
case NFA_BOF:
- return 1; /* yes! */
+ return 1; // yes!
case NFA_ZSTART:
case NFA_ZEND:
@@ -442,7 +435,7 @@ static int nfa_get_reganch(nfa_state_T *start, int depth)
&& nfa_get_reganch(p->out1, depth + 1);
default:
- return 0; /* noooo */
+ return 0; // noooo
}
}
return 0;
@@ -456,12 +449,13 @@ static int nfa_get_regstart(nfa_state_T *start, int depth)
{
nfa_state_T *p = start;
- if (depth > 4)
+ if (depth > 4) {
return 0;
+ }
while (p != NULL) {
switch (p->c) {
- /* all kinds of zero-width matches */
+ // all kinds of zero-width matches
case NFA_BOL:
case NFA_BOF:
case NFA_BOW:
@@ -507,19 +501,20 @@ static int nfa_get_regstart(nfa_state_T *start, int depth)
p = p->out;
break;
- case NFA_SPLIT:
- {
+ case NFA_SPLIT: {
int c1 = nfa_get_regstart(p->out, depth + 1);
int c2 = nfa_get_regstart(p->out1, depth + 1);
- if (c1 == c2)
- return c1; /* yes! */
+ if (c1 == c2) {
+ return c1; // yes!
+ }
return 0;
}
default:
- if (p->c > 0)
- return p->c; /* yes! */
+ if (p->c > 0) {
+ return p->c; // yes!
+ }
return 0;
}
}
@@ -535,21 +530,23 @@ static char_u *nfa_get_match_text(nfa_state_T *start)
{
nfa_state_T *p = start;
int len = 0;
- char_u *ret;
- char_u *s;
+ char_u *ret;
+ char_u *s;
- if (p->c != NFA_MOPEN)
- return NULL; /* just in case */
+ if (p->c != NFA_MOPEN) {
+ return NULL; // just in case
+ }
p = p->out;
while (p->c > 0) {
len += utf_char2len(p->c);
p = p->out;
}
- if (p->c != NFA_MCLOSE || p->out->c != NFA_MATCH)
+ if (p->c != NFA_MCLOSE || p->out->c != NFA_MATCH) {
return NULL;
+ }
ret = xmalloc(len);
- p = start->out->out; /* skip first char, it goes into regstart */
+ p = start->out->out; // skip first char, it goes into regstart
s = ret;
while (p->c > 0) {
s += utf_char2bytes(p->c, (char *)s);
@@ -587,22 +584,23 @@ static void realloc_post_list(void)
*/
static int nfa_recognize_char_class(char_u *start, char_u *end, int extra_newl)
{
-# define CLASS_not 0x80
-# define CLASS_af 0x40
-# define CLASS_AF 0x20
-# define CLASS_az 0x10
-# define CLASS_AZ 0x08
-# define CLASS_o7 0x04
-# define CLASS_o9 0x02
-# define CLASS_underscore 0x01
-
- char_u *p;
+#define CLASS_not 0x80
+#define CLASS_af 0x40
+#define CLASS_AF 0x20
+#define CLASS_az 0x10
+#define CLASS_AZ 0x08
+#define CLASS_o7 0x04
+#define CLASS_o9 0x02
+#define CLASS_underscore 0x01
+
+ char_u *p;
int config = 0;
bool newl = extra_newl == true;
- if (*end != ']')
+ if (*end != ']') {
return FAIL;
+ }
p = start;
if (*p == '^') {
config |= CLASS_not;
@@ -652,12 +650,14 @@ static int nfa_recognize_char_class(char_u *start, char_u *end, int extra_newl)
} else if (*p == '\n') {
newl = true;
p++;
- } else
+ } else {
return FAIL;
- } /* while (p < end) */
+ }
+ } // while (p < end)
- if (p != end)
+ if (p != end) {
return FAIL;
+ }
if (newl == true) {
extra_newl = NFA_ADD_NL;
@@ -769,17 +769,40 @@ static void nfa_emit_equi_class(int c)
#define y_acute 0xfd
#define y_diaeresis 0xff
switch (c) {
- case 'A': case A_grave: case A_acute: case A_circumflex:
- case A_virguilla: case A_diaeresis: case A_ring:
- case 0x100: case 0x102: case 0x104: case 0x1cd:
- case 0x1de: case 0x1e0: case 0x1fa: case 0x200:
- case 0x202: case 0x226: case 0x23a: case 0x1e00:
- case 0x1ea0: case 0x1ea2: case 0x1ea4: case 0x1ea6:
- case 0x1ea8: case 0x1eaa: case 0x1eac: case 0x1eae:
- case 0x1eb0: case 0x1eb2: case 0x1eb4: case 0x1eb6:
- EMIT2('A') EMIT2(A_grave) EMIT2(A_acute)
- EMIT2(A_circumflex) EMIT2(A_virguilla)
- EMIT2(A_diaeresis) EMIT2(A_ring)
+ case 'A':
+ case A_grave:
+ case A_acute:
+ case A_circumflex:
+ case A_virguilla:
+ case A_diaeresis:
+ case A_ring:
+ case 0x100:
+ case 0x102:
+ case 0x104:
+ case 0x1cd:
+ case 0x1de:
+ case 0x1e0:
+ case 0x1fa:
+ case 0x200:
+ case 0x202:
+ case 0x226:
+ case 0x23a:
+ case 0x1e00:
+ case 0x1ea0:
+ case 0x1ea2:
+ case 0x1ea4:
+ case 0x1ea6:
+ case 0x1ea8:
+ case 0x1eaa:
+ case 0x1eac:
+ case 0x1eae:
+ case 0x1eb0:
+ case 0x1eb2:
+ case 0x1eb4:
+ case 0x1eb6:
+ EMIT2('A') EMIT2(A_grave) EMIT2(A_acute) // NOLINT(whitespace/cast)
+ EMIT2(A_circumflex) EMIT2(A_virguilla) // NOLINT(whitespace/cast)
+ EMIT2(A_diaeresis) EMIT2(A_ring) // NOLINT(whitespace/cast)
EMIT2(0x100) EMIT2(0x102) EMIT2(0x104)
EMIT2(0x1cd) EMIT2(0x1de) EMIT2(0x1e0)
EMIT2(0x1fa) EMIT2(0x200) EMIT2(0x202)
@@ -790,39 +813,76 @@ static void nfa_emit_equi_class(int c)
EMIT2(0x1eb2) EMIT2(0x1eb6) EMIT2(0x1eb4)
return;
- case 'B': case 0x181: case 0x243: case 0x1e02:
- case 0x1e04: case 0x1e06:
+ case 'B':
+ case 0x181:
+ case 0x243:
+ case 0x1e02:
+ case 0x1e04:
+ case 0x1e06:
EMIT2('B')
EMIT2(0x181) EMIT2(0x243) EMIT2(0x1e02)
EMIT2(0x1e04) EMIT2(0x1e06)
return;
- case 'C': case C_cedilla: case 0x106: case 0x108:
- case 0x10a: case 0x10c: case 0x187: case 0x23b:
- case 0x1e08: case 0xa792:
+ case 'C':
+ case C_cedilla:
+ case 0x106:
+ case 0x108:
+ case 0x10a:
+ case 0x10c:
+ case 0x187:
+ case 0x23b:
+ case 0x1e08:
+ case 0xa792:
EMIT2('C') EMIT2(C_cedilla)
EMIT2(0x106) EMIT2(0x108) EMIT2(0x10a)
EMIT2(0x10c) EMIT2(0x187) EMIT2(0x23b)
EMIT2(0x1e08) EMIT2(0xa792)
return;
- case 'D': case 0x10e: case 0x110: case 0x18a:
- case 0x1e0a: case 0x1e0c: case 0x1e0e: case 0x1e10:
+ case 'D':
+ case 0x10e:
+ case 0x110:
+ case 0x18a:
+ case 0x1e0a:
+ case 0x1e0c:
+ case 0x1e0e:
+ case 0x1e10:
case 0x1e12:
EMIT2('D') EMIT2(0x10e) EMIT2(0x110) EMIT2(0x18a)
EMIT2(0x1e0a) EMIT2(0x1e0c) EMIT2(0x1e0e)
EMIT2(0x1e10) EMIT2(0x1e12)
return;
- case 'E': case E_grave: case E_acute: case E_circumflex:
- case E_diaeresis: case 0x112: case 0x114: case 0x116:
- case 0x118: case 0x11a: case 0x204: case 0x206:
- case 0x228: case 0x246: case 0x1e14: case 0x1e16:
- case 0x1e18: case 0x1e1a: case 0x1e1c: case 0x1eb8:
- case 0x1eba: case 0x1ebc: case 0x1ebe: case 0x1ec0:
- case 0x1ec2: case 0x1ec4: case 0x1ec6:
- EMIT2('E') EMIT2(E_grave) EMIT2(E_acute)
- EMIT2(E_circumflex) EMIT2(E_diaeresis)
+ case 'E':
+ case E_grave:
+ case E_acute:
+ case E_circumflex:
+ case E_diaeresis:
+ case 0x112:
+ case 0x114:
+ case 0x116:
+ case 0x118:
+ case 0x11a:
+ case 0x204:
+ case 0x206:
+ case 0x228:
+ case 0x246:
+ case 0x1e14:
+ case 0x1e16:
+ case 0x1e18:
+ case 0x1e1a:
+ case 0x1e1c:
+ case 0x1eb8:
+ case 0x1eba:
+ case 0x1ebc:
+ case 0x1ebe:
+ case 0x1ec0:
+ case 0x1ec2:
+ case 0x1ec4:
+ case 0x1ec6:
+ EMIT2('E') EMIT2(E_grave) EMIT2(E_acute) // NOLINT(whitespace/cast)
+ EMIT2(E_circumflex) EMIT2(E_diaeresis) // NOLINT(whitespace/cast)
EMIT2(0x112) EMIT2(0x114) EMIT2(0x116)
EMIT2(0x118) EMIT2(0x11a) EMIT2(0x204)
EMIT2(0x206) EMIT2(0x228) EMIT2(0x246)
@@ -833,34 +893,65 @@ static void nfa_emit_equi_class(int c)
EMIT2(0x1ec6)
return;
- case 'F': case 0x191: case 0x1e1e: case 0xa798:
+ case 'F':
+ case 0x191:
+ case 0x1e1e:
+ case 0xa798:
EMIT2('F') EMIT2(0x191) EMIT2(0x1e1e) EMIT2(0xa798)
return;
- case 'G': case 0x11c: case 0x11e: case 0x120:
- case 0x122: case 0x193: case 0x1e4: case 0x1e6:
- case 0x1f4: case 0x1e20: case 0xa7a0:
+ case 'G':
+ case 0x11c:
+ case 0x11e:
+ case 0x120:
+ case 0x122:
+ case 0x193:
+ case 0x1e4:
+ case 0x1e6:
+ case 0x1f4:
+ case 0x1e20:
+ case 0xa7a0:
EMIT2('G') EMIT2(0x11c) EMIT2(0x11e) EMIT2(0x120)
EMIT2(0x122) EMIT2(0x193) EMIT2(0x1e4)
EMIT2(0x1e6) EMIT2(0x1f4) EMIT2(0x1e20)
EMIT2(0xa7a0)
return;
- case 'H': case 0x124: case 0x126: case 0x21e:
- case 0x1e22: case 0x1e24: case 0x1e26: case 0x1e28:
- case 0x1e2a: case 0x2c67:
+ case 'H':
+ case 0x124:
+ case 0x126:
+ case 0x21e:
+ case 0x1e22:
+ case 0x1e24:
+ case 0x1e26:
+ case 0x1e28:
+ case 0x1e2a:
+ case 0x2c67:
EMIT2('H') EMIT2(0x124) EMIT2(0x126) EMIT2(0x21e)
EMIT2(0x1e22) EMIT2(0x1e24) EMIT2(0x1e26)
EMIT2(0x1e28) EMIT2(0x1e2a) EMIT2(0x2c67)
return;
- case 'I': case I_grave: case I_acute: case I_circumflex:
- case I_diaeresis: case 0x128: case 0x12a: case 0x12c:
- case 0x12e: case 0x130: case 0x197: case 0x1cf:
- case 0x208: case 0x20a: case 0x1e2c: case 0x1e2e:
- case 0x1ec8: case 0x1eca:
- EMIT2('I') EMIT2(I_grave) EMIT2(I_acute)
- EMIT2(I_circumflex) EMIT2(I_diaeresis)
+ case 'I':
+ case I_grave:
+ case I_acute:
+ case I_circumflex:
+ case I_diaeresis:
+ case 0x128:
+ case 0x12a:
+ case 0x12c:
+ case 0x12e:
+ case 0x130:
+ case 0x197:
+ case 0x1cf:
+ case 0x208:
+ case 0x20a:
+ case 0x1e2c:
+ case 0x1e2e:
+ case 0x1ec8:
+ case 0x1eca:
+ EMIT2('I') EMIT2(I_grave) EMIT2(I_acute) // NOLINT(whitespace/cast)
+ EMIT2(I_circumflex) EMIT2(I_diaeresis) // NOLINT(whitespace/cast)
EMIT2(0x128) EMIT2(0x12a) EMIT2(0x12c)
EMIT2(0x12e) EMIT2(0x130) EMIT2(0x197)
EMIT2(0x1cf) EMIT2(0x208) EMIT2(0x20a)
@@ -868,34 +959,62 @@ static void nfa_emit_equi_class(int c)
EMIT2(0x1eca)
return;
- case 'J': case 0x134: case 0x248:
+ case 'J':
+ case 0x134:
+ case 0x248:
EMIT2('J') EMIT2(0x134) EMIT2(0x248)
return;
- case 'K': case 0x136: case 0x198: case 0x1e8: case 0x1e30:
- case 0x1e32: case 0x1e34: case 0x2c69: case 0xa740:
+ case 'K':
+ case 0x136:
+ case 0x198:
+ case 0x1e8:
+ case 0x1e30:
+ case 0x1e32:
+ case 0x1e34:
+ case 0x2c69:
+ case 0xa740:
EMIT2('K') EMIT2(0x136) EMIT2(0x198) EMIT2(0x1e8)
EMIT2(0x1e30) EMIT2(0x1e32) EMIT2(0x1e34)
EMIT2(0x2c69) EMIT2(0xa740)
return;
- case 'L': case 0x139: case 0x13b: case 0x13d:
- case 0x13f: case 0x141: case 0x23d: case 0x1e36:
- case 0x1e38: case 0x1e3a: case 0x1e3c: case 0x2c60:
+ case 'L':
+ case 0x139:
+ case 0x13b:
+ case 0x13d:
+ case 0x13f:
+ case 0x141:
+ case 0x23d:
+ case 0x1e36:
+ case 0x1e38:
+ case 0x1e3a:
+ case 0x1e3c:
+ case 0x2c60:
EMIT2('L') EMIT2(0x139) EMIT2(0x13b)
EMIT2(0x13d) EMIT2(0x13f) EMIT2(0x141)
EMIT2(0x23d) EMIT2(0x1e36) EMIT2(0x1e38)
EMIT2(0x1e3a) EMIT2(0x1e3c) EMIT2(0x2c60)
return;
- case 'M': case 0x1e3e: case 0x1e40: case 0x1e42:
+ case 'M':
+ case 0x1e3e:
+ case 0x1e40:
+ case 0x1e42:
EMIT2('M') EMIT2(0x1e3e) EMIT2(0x1e40)
EMIT2(0x1e42)
return;
- case 'N': case N_virguilla:
- case 0x143: case 0x145: case 0x147: case 0x1f8:
- case 0x1e44: case 0x1e46: case 0x1e48: case 0x1e4a:
+ case 'N':
+ case N_virguilla:
+ case 0x143:
+ case 0x145:
+ case 0x147:
+ case 0x1f8:
+ case 0x1e44:
+ case 0x1e46:
+ case 0x1e48:
+ case 0x1e4a:
case 0xa7a4:
EMIT2('N') EMIT2(N_virguilla)
EMIT2(0x143) EMIT2(0x145) EMIT2(0x147)
@@ -903,19 +1022,47 @@ static void nfa_emit_equi_class(int c)
EMIT2(0x1e48) EMIT2(0x1e4a) EMIT2(0xa7a4)
return;
- case 'O': case O_grave: case O_acute: case O_circumflex:
- case O_virguilla: case O_diaeresis: case O_slash:
- case 0x14c: case 0x14e: case 0x150: case 0x19f:
- case 0x1a0: case 0x1d1: case 0x1ea: case 0x1ec:
- case 0x1fe: case 0x20c: case 0x20e: case 0x22a:
- case 0x22c: case 0x22e: case 0x230: case 0x1e4c:
- case 0x1e4e: case 0x1e50: case 0x1e52: case 0x1ecc:
- case 0x1ece: case 0x1ed0: case 0x1ed2: case 0x1ed4:
- case 0x1ed6: case 0x1ed8: case 0x1eda: case 0x1edc:
- case 0x1ede: case 0x1ee0: case 0x1ee2:
- EMIT2('O') EMIT2(O_grave) EMIT2(O_acute)
- EMIT2(O_circumflex) EMIT2(O_virguilla)
- EMIT2(O_diaeresis) EMIT2(O_slash)
+ case 'O':
+ case O_grave:
+ case O_acute:
+ case O_circumflex:
+ case O_virguilla:
+ case O_diaeresis:
+ case O_slash:
+ case 0x14c:
+ case 0x14e:
+ case 0x150:
+ case 0x19f:
+ case 0x1a0:
+ case 0x1d1:
+ case 0x1ea:
+ case 0x1ec:
+ case 0x1fe:
+ case 0x20c:
+ case 0x20e:
+ case 0x22a:
+ case 0x22c:
+ case 0x22e:
+ case 0x230:
+ case 0x1e4c:
+ case 0x1e4e:
+ case 0x1e50:
+ case 0x1e52:
+ case 0x1ecc:
+ case 0x1ece:
+ case 0x1ed0:
+ case 0x1ed2:
+ case 0x1ed4:
+ case 0x1ed6:
+ case 0x1ed8:
+ case 0x1eda:
+ case 0x1edc:
+ case 0x1ede:
+ case 0x1ee0:
+ case 0x1ee2:
+ EMIT2('O') EMIT2(O_grave) EMIT2(O_acute) // NOLINT(whitespace/cast)
+ EMIT2(O_circumflex) EMIT2(O_virguilla) // NOLINT(whitespace/cast)
+ EMIT2(O_diaeresis) EMIT2(O_slash) // NOLINT(whitespace/cast)
EMIT2(0x14c) EMIT2(0x14e) EMIT2(0x150)
EMIT2(0x19f) EMIT2(0x1a0) EMIT2(0x1d1)
EMIT2(0x1ea) EMIT2(0x1ec) EMIT2(0x1fe)
@@ -929,51 +1076,109 @@ static void nfa_emit_equi_class(int c)
EMIT2(0x1ee2)
return;
- case 'P': case 0x1a4: case 0x1e54: case 0x1e56: case 0x2c63:
+ case 'P':
+ case 0x1a4:
+ case 0x1e54:
+ case 0x1e56:
+ case 0x2c63:
EMIT2('P') EMIT2(0x1a4) EMIT2(0x1e54) EMIT2(0x1e56)
EMIT2(0x2c63)
return;
- case 'Q': case 0x24a:
+ case 'Q':
+ case 0x24a:
EMIT2('Q') EMIT2(0x24a)
return;
- case 'R': case 0x154: case 0x156: case 0x158: case 0x210:
- case 0x212: case 0x24c: case 0x1e58: case 0x1e5a:
- case 0x1e5c: case 0x1e5e: case 0x2c64: case 0xa7a6:
+ case 'R':
+ case 0x154:
+ case 0x156:
+ case 0x158:
+ case 0x210:
+ case 0x212:
+ case 0x24c:
+ case 0x1e58:
+ case 0x1e5a:
+ case 0x1e5c:
+ case 0x1e5e:
+ case 0x2c64:
+ case 0xa7a6:
EMIT2('R') EMIT2(0x154) EMIT2(0x156) EMIT2(0x158)
EMIT2(0x210) EMIT2(0x212) EMIT2(0x24c) EMIT2(0x1e58)
EMIT2(0x1e5a) EMIT2(0x1e5c) EMIT2(0x1e5e) EMIT2(0x2c64)
EMIT2(0xa7a6)
return;
- case 'S': case 0x15a: case 0x15c: case 0x15e: case 0x160:
- case 0x218: case 0x1e60: case 0x1e62: case 0x1e64:
- case 0x1e66: case 0x1e68: case 0x2c7e: case 0xa7a8:
+ case 'S':
+ case 0x15a:
+ case 0x15c:
+ case 0x15e:
+ case 0x160:
+ case 0x218:
+ case 0x1e60:
+ case 0x1e62:
+ case 0x1e64:
+ case 0x1e66:
+ case 0x1e68:
+ case 0x2c7e:
+ case 0xa7a8:
EMIT2('S') EMIT2(0x15a) EMIT2(0x15c) EMIT2(0x15e)
EMIT2(0x160) EMIT2(0x218) EMIT2(0x1e60) EMIT2(0x1e62)
EMIT2(0x1e64) EMIT2(0x1e66) EMIT2(0x1e68) EMIT2(0x2c7e)
EMIT2(0xa7a8)
return;
- case 'T': case 0x162: case 0x164: case 0x166: case 0x1ac:
- case 0x1ae: case 0x21a: case 0x23e: case 0x1e6a: case 0x1e6c:
- case 0x1e6e: case 0x1e70:
+ case 'T':
+ case 0x162:
+ case 0x164:
+ case 0x166:
+ case 0x1ac:
+ case 0x1ae:
+ case 0x21a:
+ case 0x23e:
+ case 0x1e6a:
+ case 0x1e6c:
+ case 0x1e6e:
+ case 0x1e70:
EMIT2('T') EMIT2(0x162) EMIT2(0x164) EMIT2(0x166)
EMIT2(0x1ac) EMIT2(0x1ae) EMIT2(0x23e) EMIT2(0x21a)
EMIT2(0x1e6a) EMIT2(0x1e6c) EMIT2(0x1e6e) EMIT2(0x1e70)
return;
- case 'U': case U_grave: case U_acute: case U_diaeresis:
- case U_circumflex: case 0x168: case 0x16a: case 0x16c:
- case 0x16e: case 0x170: case 0x172: case 0x1af:
- case 0x1d3: case 0x1d5: case 0x1d7: case 0x1d9:
- case 0x1db: case 0x214: case 0x216: case 0x244:
- case 0x1e72: case 0x1e74: case 0x1e76: case 0x1e78:
- case 0x1e7a: case 0x1ee4: case 0x1ee6: case 0x1ee8:
- case 0x1eea: case 0x1eec: case 0x1eee: case 0x1ef0:
- EMIT2('U') EMIT2(U_grave) EMIT2(U_acute)
- EMIT2(U_diaeresis) EMIT2(U_circumflex)
+ case 'U':
+ case U_grave:
+ case U_acute:
+ case U_diaeresis:
+ case U_circumflex:
+ case 0x168:
+ case 0x16a:
+ case 0x16c:
+ case 0x16e:
+ case 0x170:
+ case 0x172:
+ case 0x1af:
+ case 0x1d3:
+ case 0x1d5:
+ case 0x1d7:
+ case 0x1d9:
+ case 0x1db:
+ case 0x214:
+ case 0x216:
+ case 0x244:
+ case 0x1e72:
+ case 0x1e74:
+ case 0x1e76:
+ case 0x1e78:
+ case 0x1e7a:
+ case 0x1ee4:
+ case 0x1ee6:
+ case 0x1ee8:
+ case 0x1eea:
+ case 0x1eec:
+ case 0x1eee:
+ case 0x1ef0:
+ EMIT2('U') EMIT2(U_grave) EMIT2(U_acute) // NOLINT(whitespace/cast)
+ EMIT2(U_diaeresis) EMIT2(U_circumflex) // NOLINT(whitespace/cast)
EMIT2(0x168) EMIT2(0x16a)
EMIT2(0x16c) EMIT2(0x16e) EMIT2(0x170)
EMIT2(0x172) EMIT2(0x1af) EMIT2(0x1d3)
@@ -986,23 +1191,42 @@ static void nfa_emit_equi_class(int c)
EMIT2(0x1ef0)
return;
- case 'V': case 0x1b2: case 0x1e7c: case 0x1e7e:
+ case 'V':
+ case 0x1b2:
+ case 0x1e7c:
+ case 0x1e7e:
EMIT2('V') EMIT2(0x1b2) EMIT2(0x1e7c) EMIT2(0x1e7e)
return;
- case 'W': case 0x174: case 0x1e80: case 0x1e82: case 0x1e84:
- case 0x1e86: case 0x1e88:
+ case 'W':
+ case 0x174:
+ case 0x1e80:
+ case 0x1e82:
+ case 0x1e84:
+ case 0x1e86:
+ case 0x1e88:
EMIT2('W') EMIT2(0x174) EMIT2(0x1e80) EMIT2(0x1e82)
EMIT2(0x1e84) EMIT2(0x1e86) EMIT2(0x1e88)
return;
- case 'X': case 0x1e8a: case 0x1e8c:
+ case 'X':
+ case 0x1e8a:
+ case 0x1e8c:
EMIT2('X') EMIT2(0x1e8a) EMIT2(0x1e8c)
return;
- case 'Y': case Y_acute: case 0x176: case 0x178:
- case 0x1b3: case 0x232: case 0x24e: case 0x1e8e:
- case 0x1ef2: case 0x1ef4: case 0x1ef6: case 0x1ef8:
+ case 'Y':
+ case Y_acute:
+ case 0x176:
+ case 0x178:
+ case 0x1b3:
+ case 0x232:
+ case 0x24e:
+ case 0x1e8e:
+ case 0x1ef2:
+ case 0x1ef4:
+ case 0x1ef6:
+ case 0x1ef8:
EMIT2('Y') EMIT2(Y_acute)
EMIT2(0x176) EMIT2(0x178) EMIT2(0x1b3)
EMIT2(0x232) EMIT2(0x24e) EMIT2(0x1e8e)
@@ -1010,26 +1234,56 @@ static void nfa_emit_equi_class(int c)
EMIT2(0x1ef8)
return;
- case 'Z': case 0x179: case 0x17b: case 0x17d:
- case 0x1b5: case 0x1e90: case 0x1e92: case 0x1e94:
+ case 'Z':
+ case 0x179:
+ case 0x17b:
+ case 0x17d:
+ case 0x1b5:
+ case 0x1e90:
+ case 0x1e92:
+ case 0x1e94:
case 0x2c6b:
EMIT2('Z') EMIT2(0x179) EMIT2(0x17b) EMIT2(0x17d)
EMIT2(0x1b5) EMIT2(0x1e90) EMIT2(0x1e92)
EMIT2(0x1e94) EMIT2(0x2c6b)
return;
- case 'a': case a_grave: case a_acute: case a_circumflex:
- case a_virguilla: case a_diaeresis: case a_ring:
- case 0x101: case 0x103: case 0x105: case 0x1ce:
- case 0x1df: case 0x1e1: case 0x1fb: case 0x201:
- case 0x203: case 0x227: case 0x1d8f: case 0x1e01:
- case 0x1e9a: case 0x1ea1: case 0x1ea3: case 0x1ea5:
- case 0x1ea7: case 0x1ea9: case 0x1eab: case 0x1ead:
- case 0x1eaf: case 0x1eb1: case 0x1eb3: case 0x1eb5:
- case 0x1eb7: case 0x2c65:
- EMIT2('a') EMIT2(a_grave) EMIT2(a_acute)
- EMIT2(a_circumflex) EMIT2(a_virguilla)
- EMIT2(a_diaeresis) EMIT2(a_ring)
+ case 'a':
+ case a_grave:
+ case a_acute:
+ case a_circumflex:
+ case a_virguilla:
+ case a_diaeresis:
+ case a_ring:
+ case 0x101:
+ case 0x103:
+ case 0x105:
+ case 0x1ce:
+ case 0x1df:
+ case 0x1e1:
+ case 0x1fb:
+ case 0x201:
+ case 0x203:
+ case 0x227:
+ case 0x1d8f:
+ case 0x1e01:
+ case 0x1e9a:
+ case 0x1ea1:
+ case 0x1ea3:
+ case 0x1ea5:
+ case 0x1ea7:
+ case 0x1ea9:
+ case 0x1eab:
+ case 0x1ead:
+ case 0x1eaf:
+ case 0x1eb1:
+ case 0x1eb3:
+ case 0x1eb5:
+ case 0x1eb7:
+ case 0x2c65:
+ EMIT2('a') EMIT2(a_grave) EMIT2(a_acute) // NOLINT(whitespace/cast)
+ EMIT2(a_circumflex) EMIT2(a_virguilla) // NOLINT(whitespace/cast)
+ EMIT2(a_diaeresis) EMIT2(a_ring) // NOLINT(whitespace/cast)
EMIT2(0x101) EMIT2(0x103) EMIT2(0x105)
EMIT2(0x1ce) EMIT2(0x1df) EMIT2(0x1e1)
EMIT2(0x1fb) EMIT2(0x201) EMIT2(0x203)
@@ -1041,14 +1295,28 @@ static void nfa_emit_equi_class(int c)
EMIT2(0x1eb7) EMIT2(0x2c65)
return;
- case 'b': case 0x180: case 0x253: case 0x1d6c: case 0x1d80:
- case 0x1e03: case 0x1e05: case 0x1e07:
+ case 'b':
+ case 0x180:
+ case 0x253:
+ case 0x1d6c:
+ case 0x1d80:
+ case 0x1e03:
+ case 0x1e05:
+ case 0x1e07:
EMIT2('b') EMIT2(0x180) EMIT2(0x253) EMIT2(0x1d6c)
EMIT2(0x1d80) EMIT2(0x1e03) EMIT2(0x1e05) EMIT2(0x1e07)
return;
- case 'c': case c_cedilla: case 0x107: case 0x109: case 0x10b:
- case 0x10d: case 0x188: case 0x23c: case 0x1e09: case 0xa793:
+ case 'c':
+ case c_cedilla:
+ case 0x107:
+ case 0x109:
+ case 0x10b:
+ case 0x10d:
+ case 0x188:
+ case 0x23c:
+ case 0x1e09:
+ case 0xa793:
case 0xa794:
EMIT2('c') EMIT2(c_cedilla)
EMIT2(0x107) EMIT2(0x109) EMIT2(0x10b)
@@ -1056,24 +1324,54 @@ static void nfa_emit_equi_class(int c)
EMIT2(0x1e09) EMIT2(0xa793) EMIT2(0xa794)
return;
- case 'd': case 0x10f: case 0x111: case 0x257: case 0x1d6d:
- case 0x1d81: case 0x1d91: case 0x1e0b: case 0x1e0d: case 0x1e0f:
- case 0x1e11: case 0x1e13:
+ case 'd':
+ case 0x10f:
+ case 0x111:
+ case 0x257:
+ case 0x1d6d:
+ case 0x1d81:
+ case 0x1d91:
+ case 0x1e0b:
+ case 0x1e0d:
+ case 0x1e0f:
+ case 0x1e11:
+ case 0x1e13:
EMIT2('d') EMIT2(0x10f) EMIT2(0x111)
EMIT2(0x257) EMIT2(0x1d6d) EMIT2(0x1d81)
EMIT2(0x1d91) EMIT2(0x1e0b) EMIT2(0x1e0d)
EMIT2(0x1e0f) EMIT2(0x1e11) EMIT2(0x1e13)
return;
- case 'e': case e_grave: case e_acute: case e_circumflex:
- case e_diaeresis: case 0x113: case 0x115: case 0x117:
- case 0x119: case 0x11b: case 0x205: case 0x207:
- case 0x229: case 0x247: case 0x1d92: case 0x1e15:
- case 0x1e17: case 0x1e19: case 0x1e1b: case 0x1e1d:
- case 0x1eb9: case 0x1ebb: case 0x1ebd: case 0x1ebf:
- case 0x1ec1: case 0x1ec3: case 0x1ec5: case 0x1ec7:
- EMIT2('e') EMIT2(e_grave) EMIT2(e_acute)
- EMIT2(e_circumflex) EMIT2(e_diaeresis)
+ case 'e':
+ case e_grave:
+ case e_acute:
+ case e_circumflex:
+ case e_diaeresis:
+ case 0x113:
+ case 0x115:
+ case 0x117:
+ case 0x119:
+ case 0x11b:
+ case 0x205:
+ case 0x207:
+ case 0x229:
+ case 0x247:
+ case 0x1d92:
+ case 0x1e15:
+ case 0x1e17:
+ case 0x1e19:
+ case 0x1e1b:
+ case 0x1e1d:
+ case 0x1eb9:
+ case 0x1ebb:
+ case 0x1ebd:
+ case 0x1ebf:
+ case 0x1ec1:
+ case 0x1ec3:
+ case 0x1ec5:
+ case 0x1ec7:
+ EMIT2('e') EMIT2(e_grave) EMIT2(e_acute) // NOLINT(whitespace/cast)
+ EMIT2(e_circumflex) EMIT2(e_diaeresis) // NOLINT(whitespace/cast)
EMIT2(0x113) EMIT2(0x115)
EMIT2(0x117) EMIT2(0x119) EMIT2(0x11b)
EMIT2(0x205) EMIT2(0x207) EMIT2(0x229)
@@ -1084,37 +1382,72 @@ static void nfa_emit_equi_class(int c)
EMIT2(0x1ec3) EMIT2(0x1ec5) EMIT2(0x1ec7)
return;
- case 'f': case 0x192: case 0x1d6e: case 0x1d82:
- case 0x1e1f: case 0xa799:
+ case 'f':
+ case 0x192:
+ case 0x1d6e:
+ case 0x1d82:
+ case 0x1e1f:
+ case 0xa799:
EMIT2('f') EMIT2(0x192) EMIT2(0x1d6e) EMIT2(0x1d82)
EMIT2(0x1e1f) EMIT2(0xa799)
return;
- case 'g': case 0x11d: case 0x11f: case 0x121: case 0x123:
- case 0x1e5: case 0x1e7: case 0x1f5: case 0x260: case 0x1d83:
- case 0x1e21: case 0xa7a1:
+ case 'g':
+ case 0x11d:
+ case 0x11f:
+ case 0x121:
+ case 0x123:
+ case 0x1e5:
+ case 0x1e7:
+ case 0x1f5:
+ case 0x260:
+ case 0x1d83:
+ case 0x1e21:
+ case 0xa7a1:
EMIT2('g') EMIT2(0x11d) EMIT2(0x11f) EMIT2(0x121)
EMIT2(0x123) EMIT2(0x1e5) EMIT2(0x1e7)
EMIT2(0x1f5) EMIT2(0x260) EMIT2(0x1d83)
EMIT2(0x1e21) EMIT2(0xa7a1)
return;
- case 'h': case 0x125: case 0x127: case 0x21f: case 0x1e23:
- case 0x1e25: case 0x1e27: case 0x1e29: case 0x1e2b:
- case 0x1e96: case 0x2c68: case 0xa795:
+ case 'h':
+ case 0x125:
+ case 0x127:
+ case 0x21f:
+ case 0x1e23:
+ case 0x1e25:
+ case 0x1e27:
+ case 0x1e29:
+ case 0x1e2b:
+ case 0x1e96:
+ case 0x2c68:
+ case 0xa795:
EMIT2('h') EMIT2(0x125) EMIT2(0x127) EMIT2(0x21f)
EMIT2(0x1e23) EMIT2(0x1e25) EMIT2(0x1e27)
EMIT2(0x1e29) EMIT2(0x1e2b) EMIT2(0x1e96)
EMIT2(0x2c68) EMIT2(0xa795)
return;
- case 'i': case i_grave: case i_acute: case i_circumflex:
- case i_diaeresis: case 0x129: case 0x12b: case 0x12d:
- case 0x12f: case 0x1d0: case 0x209: case 0x20b:
- case 0x268: case 0x1d96: case 0x1e2d: case 0x1e2f:
- case 0x1ec9: case 0x1ecb:
- EMIT2('i') EMIT2(i_grave) EMIT2(i_acute)
- EMIT2(i_circumflex) EMIT2(i_diaeresis)
+ case 'i':
+ case i_grave:
+ case i_acute:
+ case i_circumflex:
+ case i_diaeresis:
+ case 0x129:
+ case 0x12b:
+ case 0x12d:
+ case 0x12f:
+ case 0x1d0:
+ case 0x209:
+ case 0x20b:
+ case 0x268:
+ case 0x1d96:
+ case 0x1e2d:
+ case 0x1e2f:
+ case 0x1ec9:
+ case 0x1ecb:
+ EMIT2('i') EMIT2(i_grave) EMIT2(i_acute) // NOLINT(whitespace/cast)
+ EMIT2(i_circumflex) EMIT2(i_diaeresis) // NOLINT(whitespace/cast)
EMIT2(0x129) EMIT2(0x12b) EMIT2(0x12d)
EMIT2(0x12f) EMIT2(0x1d0) EMIT2(0x209)
EMIT2(0x20b) EMIT2(0x268) EMIT2(0x1d96)
@@ -1122,34 +1455,69 @@ static void nfa_emit_equi_class(int c)
EMIT2(0x1ecb) EMIT2(0x1ecb)
return;
- case 'j': case 0x135: case 0x1f0: case 0x249:
+ case 'j':
+ case 0x135:
+ case 0x1f0:
+ case 0x249:
EMIT2('j') EMIT2(0x135) EMIT2(0x1f0) EMIT2(0x249)
return;
- case 'k': case 0x137: case 0x199: case 0x1e9: case 0x1d84:
- case 0x1e31: case 0x1e33: case 0x1e35: case 0x2c6a: case 0xa741:
+ case 'k':
+ case 0x137:
+ case 0x199:
+ case 0x1e9:
+ case 0x1d84:
+ case 0x1e31:
+ case 0x1e33:
+ case 0x1e35:
+ case 0x2c6a:
+ case 0xa741:
EMIT2('k') EMIT2(0x137) EMIT2(0x199) EMIT2(0x1e9)
EMIT2(0x1d84) EMIT2(0x1e31) EMIT2(0x1e33)
EMIT2(0x1e35) EMIT2(0x2c6a) EMIT2(0xa741)
return;
- case 'l': case 0x13a: case 0x13c: case 0x13e: case 0x140:
- case 0x142: case 0x19a: case 0x1e37: case 0x1e39: case 0x1e3b:
- case 0x1e3d: case 0x2c61:
+ case 'l':
+ case 0x13a:
+ case 0x13c:
+ case 0x13e:
+ case 0x140:
+ case 0x142:
+ case 0x19a:
+ case 0x1e37:
+ case 0x1e39:
+ case 0x1e3b:
+ case 0x1e3d:
+ case 0x2c61:
EMIT2('l') EMIT2(0x13a) EMIT2(0x13c)
EMIT2(0x13e) EMIT2(0x140) EMIT2(0x142)
EMIT2(0x19a) EMIT2(0x1e37) EMIT2(0x1e39)
EMIT2(0x1e3b) EMIT2(0x1e3d) EMIT2(0x2c61)
return;
- case 'm': case 0x1d6f: case 0x1e3f: case 0x1e41: case 0x1e43:
+ case 'm':
+ case 0x1d6f:
+ case 0x1e3f:
+ case 0x1e41:
+ case 0x1e43:
EMIT2('m') EMIT2(0x1d6f) EMIT2(0x1e3f)
EMIT2(0x1e41) EMIT2(0x1e43)
return;
- case 'n': case n_virguilla: case 0x144: case 0x146: case 0x148:
- case 0x149: case 0x1f9: case 0x1d70: case 0x1d87: case 0x1e45:
- case 0x1e47: case 0x1e49: case 0x1e4b: case 0xa7a5:
+ case 'n':
+ case n_virguilla:
+ case 0x144:
+ case 0x146:
+ case 0x148:
+ case 0x149:
+ case 0x1f9:
+ case 0x1d70:
+ case 0x1d87:
+ case 0x1e45:
+ case 0x1e47:
+ case 0x1e49:
+ case 0x1e4b:
+ case 0xa7a5:
EMIT2('n') EMIT2(n_virguilla)
EMIT2(0x144) EMIT2(0x146) EMIT2(0x148)
EMIT2(0x149) EMIT2(0x1f9) EMIT2(0x1d70)
@@ -1157,19 +1525,47 @@ static void nfa_emit_equi_class(int c)
EMIT2(0x1e49) EMIT2(0x1e4b) EMIT2(0xa7a5)
return;
- case 'o': case o_grave: case o_acute: case o_circumflex:
- case o_virguilla: case o_diaeresis: case o_slash:
- case 0x14d: case 0x14f: case 0x151: case 0x1a1:
- case 0x1d2: case 0x1eb: case 0x1ed: case 0x1ff:
- case 0x20d: case 0x20f: case 0x22b: case 0x22d:
- case 0x22f: case 0x231: case 0x275: case 0x1e4d:
- case 0x1e4f: case 0x1e51: case 0x1e53: case 0x1ecd:
- case 0x1ecf: case 0x1ed1: case 0x1ed3: case 0x1ed5:
- case 0x1ed7: case 0x1ed9: case 0x1edb: case 0x1edd:
- case 0x1edf: case 0x1ee1: case 0x1ee3:
- EMIT2('o') EMIT2(o_grave) EMIT2(o_acute)
- EMIT2(o_circumflex) EMIT2(o_virguilla)
- EMIT2(o_diaeresis) EMIT2(o_slash)
+ case 'o':
+ case o_grave:
+ case o_acute:
+ case o_circumflex:
+ case o_virguilla:
+ case o_diaeresis:
+ case o_slash:
+ case 0x14d:
+ case 0x14f:
+ case 0x151:
+ case 0x1a1:
+ case 0x1d2:
+ case 0x1eb:
+ case 0x1ed:
+ case 0x1ff:
+ case 0x20d:
+ case 0x20f:
+ case 0x22b:
+ case 0x22d:
+ case 0x22f:
+ case 0x231:
+ case 0x275:
+ case 0x1e4d:
+ case 0x1e4f:
+ case 0x1e51:
+ case 0x1e53:
+ case 0x1ecd:
+ case 0x1ecf:
+ case 0x1ed1:
+ case 0x1ed3:
+ case 0x1ed5:
+ case 0x1ed7:
+ case 0x1ed9:
+ case 0x1edb:
+ case 0x1edd:
+ case 0x1edf:
+ case 0x1ee1:
+ case 0x1ee3:
+ EMIT2('o') EMIT2(o_grave) EMIT2(o_acute) // NOLINT(whitespace/cast)
+ EMIT2(o_circumflex) EMIT2(o_virguilla) // NOLINT(whitespace/cast)
+ EMIT2(o_diaeresis) EMIT2(o_slash) // NOLINT(whitespace/cast)
EMIT2(0x14d) EMIT2(0x14f) EMIT2(0x151)
EMIT2(0x1a1) EMIT2(0x1d2) EMIT2(0x1eb)
EMIT2(0x1ed) EMIT2(0x1ff) EMIT2(0x20d)
@@ -1183,19 +1579,38 @@ static void nfa_emit_equi_class(int c)
EMIT2(0x1ee3)
return;
- case 'p': case 0x1a5: case 0x1d71: case 0x1d7d: case 0x1d88:
- case 0x1e55: case 0x1e57:
+ case 'p':
+ case 0x1a5:
+ case 0x1d71:
+ case 0x1d7d:
+ case 0x1d88:
+ case 0x1e55:
+ case 0x1e57:
EMIT2('p') EMIT2(0x1a5) EMIT2(0x1d71) EMIT2(0x1d7d)
EMIT2(0x1d88) EMIT2(0x1e55) EMIT2(0x1e57)
return;
- case 'q': case 0x24b: case 0x2a0:
+ case 'q':
+ case 0x24b:
+ case 0x2a0:
EMIT2('q') EMIT2(0x24b) EMIT2(0x2a0)
return;
- case 'r': case 0x155: case 0x157: case 0x159: case 0x211:
- case 0x213: case 0x24d: case 0x27d: case 0x1d72: case 0x1d73:
- case 0x1d89: case 0x1e59: case 0x1e5b: case 0x1e5d: case 0x1e5f:
+ case 'r':
+ case 0x155:
+ case 0x157:
+ case 0x159:
+ case 0x211:
+ case 0x213:
+ case 0x24d:
+ case 0x27d:
+ case 0x1d72:
+ case 0x1d73:
+ case 0x1d89:
+ case 0x1e59:
+ case 0x1e5b:
+ case 0x1e5d:
+ case 0x1e5f:
case 0xa7a7:
EMIT2('r') EMIT2(0x155) EMIT2(0x157) EMIT2(0x159)
EMIT2(0x211) EMIT2(0x213) EMIT2(0x24d) EMIT2(0x27d)
@@ -1203,34 +1618,84 @@ static void nfa_emit_equi_class(int c)
EMIT2(0x1e5b) EMIT2(0x1e5d) EMIT2(0x1e5f) EMIT2(0xa7a7)
return;
- case 's': case 0x15b: case 0x15d: case 0x15f: case 0x161:
- case 0x219: case 0x23f: case 0x1d74: case 0x1d8a: case 0x1e61:
- case 0x1e63: case 0x1e65: case 0x1e67: case 0x1e69: case 0xa7a9:
+ case 's':
+ case 0x15b:
+ case 0x15d:
+ case 0x15f:
+ case 0x161:
+ case 0x219:
+ case 0x23f:
+ case 0x1d74:
+ case 0x1d8a:
+ case 0x1e61:
+ case 0x1e63:
+ case 0x1e65:
+ case 0x1e67:
+ case 0x1e69:
+ case 0xa7a9:
EMIT2('s') EMIT2(0x15b) EMIT2(0x15d) EMIT2(0x15f)
EMIT2(0x161) EMIT2(0x219) EMIT2(0x23f) EMIT2(0x1d74)
EMIT2(0x1d8a) EMIT2(0x1e61) EMIT2(0x1e63) EMIT2(0x1e65)
EMIT2(0x1e67) EMIT2(0x1e69) EMIT2(0xa7a9)
return;
- case 't': case 0x163: case 0x165: case 0x167: case 0x1ab:
- case 0x1ad: case 0x21b: case 0x288: case 0x1d75: case 0x1e6b:
- case 0x1e6d: case 0x1e6f: case 0x1e71: case 0x1e97: case 0x2c66:
+ case 't':
+ case 0x163:
+ case 0x165:
+ case 0x167:
+ case 0x1ab:
+ case 0x1ad:
+ case 0x21b:
+ case 0x288:
+ case 0x1d75:
+ case 0x1e6b:
+ case 0x1e6d:
+ case 0x1e6f:
+ case 0x1e71:
+ case 0x1e97:
+ case 0x2c66:
EMIT2('t') EMIT2(0x163) EMIT2(0x165) EMIT2(0x167)
EMIT2(0x1ab) EMIT2(0x1ad) EMIT2(0x21b) EMIT2(0x288)
EMIT2(0x1d75) EMIT2(0x1e6b) EMIT2(0x1e6d) EMIT2(0x1e6f)
EMIT2(0x1e71) EMIT2(0x1e97) EMIT2(0x2c66)
return;
- case 'u': case u_grave: case u_acute: case u_circumflex:
- case u_diaeresis: case 0x169: case 0x16b: case 0x16d:
- case 0x16f: case 0x171: case 0x173: case 0x1b0: case 0x1d4:
- case 0x1d6: case 0x1d8: case 0x1da: case 0x1dc: case 0x215:
- case 0x217: case 0x289: case 0x1d7e: case 0x1d99: case 0x1e73:
- case 0x1e75: case 0x1e77: case 0x1e79: case 0x1e7b:
- case 0x1ee5: case 0x1ee7: case 0x1ee9: case 0x1eeb:
- case 0x1eed: case 0x1eef: case 0x1ef1:
- EMIT2('u') EMIT2(u_grave) EMIT2(u_acute)
- EMIT2(u_circumflex) EMIT2(u_diaeresis)
+ case 'u':
+ case u_grave:
+ case u_acute:
+ case u_circumflex:
+ case u_diaeresis:
+ case 0x169:
+ case 0x16b:
+ case 0x16d:
+ case 0x16f:
+ case 0x171:
+ case 0x173:
+ case 0x1b0:
+ case 0x1d4:
+ case 0x1d6:
+ case 0x1d8:
+ case 0x1da:
+ case 0x1dc:
+ case 0x215:
+ case 0x217:
+ case 0x289:
+ case 0x1d7e:
+ case 0x1d99:
+ case 0x1e73:
+ case 0x1e75:
+ case 0x1e77:
+ case 0x1e79:
+ case 0x1e7b:
+ case 0x1ee5:
+ case 0x1ee7:
+ case 0x1ee9:
+ case 0x1eeb:
+ case 0x1eed:
+ case 0x1eef:
+ case 0x1ef1:
+ EMIT2('u') EMIT2(u_grave) EMIT2(u_acute) // NOLINT(whitespace/cast)
+ EMIT2(u_circumflex) EMIT2(u_diaeresis) // NOLINT(whitespace/cast)
EMIT2(0x169) EMIT2(0x16b)
EMIT2(0x16d) EMIT2(0x16f) EMIT2(0x171)
EMIT2(0x173) EMIT2(0x1d6) EMIT2(0x1d8)
@@ -1243,24 +1708,45 @@ static void nfa_emit_equi_class(int c)
EMIT2(0x1eed) EMIT2(0x1eef) EMIT2(0x1ef1)
return;
- case 'v': case 0x28b: case 0x1d8c: case 0x1e7d: case 0x1e7f:
+ case 'v':
+ case 0x28b:
+ case 0x1d8c:
+ case 0x1e7d:
+ case 0x1e7f:
EMIT2('v') EMIT2(0x28b) EMIT2(0x1d8c) EMIT2(0x1e7d)
EMIT2(0x1e7f)
return;
- case 'w': case 0x175: case 0x1e81: case 0x1e83: case 0x1e85:
- case 0x1e87: case 0x1e89: case 0x1e98:
+ case 'w':
+ case 0x175:
+ case 0x1e81:
+ case 0x1e83:
+ case 0x1e85:
+ case 0x1e87:
+ case 0x1e89:
+ case 0x1e98:
EMIT2('w') EMIT2(0x175) EMIT2(0x1e81) EMIT2(0x1e83)
EMIT2(0x1e85) EMIT2(0x1e87) EMIT2(0x1e89) EMIT2(0x1e98)
return;
- case 'x': case 0x1e8b: case 0x1e8d:
+ case 'x':
+ case 0x1e8b:
+ case 0x1e8d:
EMIT2('x') EMIT2(0x1e8b) EMIT2(0x1e8d)
return;
- case 'y': case y_acute: case y_diaeresis: case 0x177:
- case 0x1b4: case 0x233: case 0x24f: case 0x1e8f:
- case 0x1e99: case 0x1ef3: case 0x1ef5: case 0x1ef7:
+ case 'y':
+ case y_acute:
+ case y_diaeresis:
+ case 0x177:
+ case 0x1b4:
+ case 0x233:
+ case 0x24f:
+ case 0x1e8f:
+ case 0x1e99:
+ case 0x1ef3:
+ case 0x1ef5:
+ case 0x1ef7:
case 0x1ef9:
EMIT2('y') EMIT2(y_acute) EMIT2(y_diaeresis)
EMIT2(0x177) EMIT2(0x1b4) EMIT2(0x233) EMIT2(0x24f)
@@ -1268,9 +1754,17 @@ static void nfa_emit_equi_class(int c)
EMIT2(0x1ef5) EMIT2(0x1ef7) EMIT2(0x1ef9)
return;
- case 'z': case 0x17a: case 0x17c: case 0x17e: case 0x1b6:
- case 0x1d76: case 0x1d8e: case 0x1e91: case 0x1e93:
- case 0x1e95: case 0x2c6c:
+ case 'z':
+ case 0x17a:
+ case 0x17c:
+ case 0x17e:
+ case 0x1b6:
+ case 0x1d76:
+ case 0x1d8e:
+ case 0x1e91:
+ case 0x1e93:
+ case 0x1e95:
+ case 0x2c6c:
EMIT2('z') EMIT2(0x17a) EMIT2(0x17c) EMIT2(0x17e)
EMIT2(0x1b6) EMIT2(0x1d76) EMIT2(0x1d8e) EMIT2(0x1e91)
EMIT2(0x1e93) EMIT2(0x1e95) EMIT2(0x2c6c)
@@ -1311,9 +1805,9 @@ static int nfa_regatom(void)
int equiclass;
int collclass;
int got_coll_char;
- char_u *p;
- char_u *endp;
- char_u *old_regparse = regparse;
+ char_u *p;
+ char_u *endp;
+ char_u *old_regparse = regparse;
int extra = 0;
int emit_range;
int negated;
@@ -1344,14 +1838,15 @@ static int nfa_regatom(void)
case Magic('_'):
c = no_Magic(getchr());
- if (c == NUL)
+ if (c == NUL) {
EMSG_RET_FAIL(_(e_nul_found));
+ }
- if (c == '^') { /* "\_^" is start-of-line */
+ if (c == '^') { // "\_^" is start-of-line
EMIT(NFA_BOL);
break;
}
- if (c == '$') { /* "\_$" is end-of-line */
+ if (c == '$') { // "\_$" is end-of-line
EMIT(NFA_EOL);
had_eol = true;
break;
@@ -1359,12 +1854,13 @@ static int nfa_regatom(void)
extra = NFA_ADD_NL;
- /* "\_[" is collection plus newline */
- if (c == '[')
+ // "\_[" is collection plus newline
+ if (c == '[') {
goto collection;
+ }
- // "\_x" is character class plus newline
- FALLTHROUGH;
+ // "\_x" is character class plus newline
+ FALLTHROUGH;
/*
* Character classes.
@@ -1396,7 +1892,7 @@ static int nfa_regatom(void)
case Magic('L'):
case Magic('u'):
case Magic('U'):
- p = vim_strchr(classchars, no_Magic(c));
+ p = (char_u *)vim_strchr((char *)classchars, no_Magic(c));
if (p == NULL) {
if (extra == NFA_ADD_NL) {
semsg(_(e_ill_char_class), (int64_t)c);
@@ -1454,9 +1950,8 @@ static int nfa_regatom(void)
semsg(_(e_misplaced), (int64_t)no_Magic(c));
return FAIL;
- case Magic('~'):
- {
- char_u *lp;
+ case Magic('~'): {
+ char_u *lp;
// Previous substitute pattern.
// Generated as "\%(pattern\)".
@@ -1482,17 +1977,16 @@ static int nfa_regatom(void)
case Magic('6'):
case Magic('7'):
case Magic('8'):
- case Magic('9'):
- {
- int refnum = no_Magic(c) - '1';
+ case Magic('9'): {
+ int refnum = no_Magic(c) - '1';
- if (!seen_endbrace(refnum + 1)) {
- return FAIL;
- }
- EMIT(NFA_BACKREF1 + refnum);
- rex.nfa_has_backref = true;
+ if (!seen_endbrace(refnum + 1)) {
+ return FAIL;
}
- break;
+ EMIT(NFA_BACKREF1 + refnum);
+ rex.nfa_has_backref = true;
+ }
+ break;
case Magic('z'):
c = no_Magic(getchr());
@@ -1548,28 +2042,35 @@ static int nfa_regatom(void)
case Magic('%'):
c = no_Magic(getchr());
switch (c) {
- /* () without a back reference */
+ // () without a back reference
case '(':
- if (nfa_reg(REG_NPAREN) == FAIL)
+ if (nfa_reg(REG_NPAREN) == FAIL) {
return FAIL;
+ }
EMIT(NFA_NOPEN);
break;
- case 'd': /* %d123 decimal */
- case 'o': /* %o123 octal */
- case 'x': /* %xab hex 2 */
- case 'u': /* %uabcd hex 4 */
- case 'U': /* %U1234abcd hex 8 */
+ case 'd': // %d123 decimal
+ case 'o': // %o123 octal
+ case 'x': // %xab hex 2
+ case 'u': // %uabcd hex 4
+ case 'U': // %U1234abcd hex 8
{
int64_t nr;
switch (c) {
- case 'd': nr = getdecchrs(); break;
- case 'o': nr = getoctchrs(); break;
- case 'x': nr = gethexchrs(2); break;
- case 'u': nr = gethexchrs(4); break;
- case 'U': nr = gethexchrs(8); break;
- default: nr = -1; break;
+ case 'd':
+ nr = getdecchrs(); break;
+ case 'o':
+ nr = getoctchrs(); break;
+ case 'x':
+ nr = gethexchrs(2); break;
+ case 'u':
+ nr = gethexchrs(4); break;
+ case 'U':
+ nr = gethexchrs(8); break;
+ default:
+ nr = -1; break;
}
if (nr < 0 || nr > INT_MAX) {
@@ -1604,18 +2105,19 @@ static int nfa_regatom(void)
EMIT(NFA_ANY_COMPOSING);
break;
- case '[':
- {
+ case '[': {
int n;
- /* \%[abc] */
- for (n = 0; (c = peekchr()) != ']'; ++n) {
- if (c == NUL)
+ // \%[abc]
+ for (n = 0; (c = peekchr()) != ']'; n++) {
+ if (c == NUL) {
EMSG2_RET_FAIL(_(e_missing_sb),
- reg_magic == MAGIC_ALL);
- /* recursive call! */
- if (nfa_regatom() == FAIL)
+ reg_magic == MAGIC_ALL);
+ }
+ // recursive call!
+ if (nfa_regatom() == FAIL) {
return FAIL;
+ }
}
(void)getchr(); // get the ]
if (n == 0) {
@@ -1635,8 +2137,7 @@ static int nfa_regatom(void)
break;
}
- default:
- {
+ default: {
int64_t n = 0;
const int cmp = c;
bool cur = false;
@@ -1700,9 +2201,9 @@ static int nfa_regatom(void)
EMIT((int)n);
break;
} else if (c == '\'' && n == 0) {
- /* \%'m \%<'m \%>'m */
+ // \%'m \%<'m \%>'m
EMIT(cmp == '<' ? NFA_MARK_LT :
- cmp == '>' ? NFA_MARK_GT : NFA_MARK);
+ cmp == '>' ? NFA_MARK_GT : NFA_MARK);
EMIT(getchr());
break;
}
@@ -1740,8 +2241,9 @@ collection:
EMIT(result - NFA_ADD_NL);
EMIT(NFA_NEWL);
EMIT(NFA_OR);
- } else
+ } else {
EMIT(result);
+ }
regparse = endp;
MB_PTR_ADV(regparse);
return OK;
@@ -1756,8 +2258,9 @@ collection:
negated = true;
MB_PTR_ADV(regparse);
EMIT(NFA_START_NEG_COLL);
- } else
+ } else {
EMIT(NFA_START_COLL);
+ }
if (*regparse == '-') {
startc = '-';
EMIT(startc);
@@ -1771,16 +2274,17 @@ collection:
startc = -1;
got_coll_char = false;
if (*regparse == '[') {
- /* Check for [: :], [= =], [. .] */
+ // Check for [: :], [= =], [. .]
equiclass = collclass = 0;
charclass = get_char_class(&regparse);
if (charclass == CLASS_NONE) {
equiclass = get_equi_class(&regparse);
- if (equiclass == 0)
+ if (equiclass == 0) {
collclass = get_coll_element(&regparse);
+ }
}
- /* Character class like [:alpha:] */
+ // Character class like [:alpha:]
if (charclass != CLASS_NONE) {
switch (charclass) {
case CLASS_ALNUM:
@@ -1846,12 +2350,12 @@ collection:
EMIT(NFA_CONCAT);
continue;
}
- /* Try equivalence class [=a=] and the like */
+ // Try equivalence class [=a=] and the like
if (equiclass != 0) {
nfa_emit_equi_class(equiclass);
continue;
}
- /* Try collating class like [. .] */
+ // Try collating class like [. .]
if (collclass != 0) {
startc = collclass; // allow [.a.]-x as a range
// Will emit the proper atom at the end of the
@@ -1876,26 +2380,23 @@ collection:
&& (vim_strchr(REGEXP_INRANGE, regparse[1]) != NULL
|| (!reg_cpo_lit
&& vim_strchr(REGEXP_ABBR, regparse[1])
- != NULL)
- )
- ) {
+ != NULL))) {
MB_PTR_ADV(regparse);
if (*regparse == 'n') {
startc = (reg_string || emit_range || regparse[1] == '-')
? NL : NFA_NEWL;
- } else if (*regparse == 'd'
- || *regparse == 'o'
- || *regparse == 'x'
- || *regparse == 'u'
- || *regparse == 'U'
- ) {
+ } else if (*regparse == 'd'
+ || *regparse == 'o'
+ || *regparse == 'x'
+ || *regparse == 'u'
+ || *regparse == 'U') {
// TODO(RE): This needs more testing
startc = coll_get_char();
got_coll_char = true;
MB_PTR_BACK(old_regparse, regparse);
} else {
- /* \r,\t,\e,\b */
+ // \r,\t,\e,\b
startc = backslash_trans(*regparse);
}
}
@@ -1905,7 +2406,7 @@ collection:
startc = utf_ptr2char((char *)regparse);
}
- /* Previous char was '-', so this char is end of range. */
+ // Previous char was '-', so this char is end of range.
if (emit_range) {
int endc = startc;
startc = oldstartc;
@@ -1977,7 +2478,7 @@ collection:
EMIT(NFA_CONCAT);
}
- /* skip the trailing ] */
+ // skip the trailing ]
regparse = endp;
MB_PTR_ADV(regparse);
@@ -1995,14 +2496,14 @@ collection:
}
return OK;
- } /* if exists closing ] */
+ } // if exists closing ]
- if (reg_strict)
+ if (reg_strict) {
EMSG_RET_FAIL(_(e_missingbracket));
+ }
FALLTHROUGH;
- default:
- {
+ default: {
int plen;
nfa_do_multibyte:
@@ -2019,12 +2520,14 @@ nfa_do_multibyte:
// building the postfix form, not the NFA itself;
// a composing char could be: a, b, c, NFA_COMPOSING
// where 'b' and 'c' are chars with codes > 256. */
- for (;; ) {
+ for (;;) {
EMIT(c);
- if (i > 0)
+ if (i > 0) {
EMIT(NFA_CONCAT);
- if ((i += utf_char2len(c)) >= plen)
+ }
+ if ((i += utf_char2len(c)) >= plen) {
break;
+ }
c = utf_ptr2char((char *)old_regparse + i);
}
EMIT(NFA_COMPOSING);
@@ -2047,8 +2550,8 @@ nfa_do_multibyte:
* times the atom can be matched. Example: "a*" matches any sequence of "a"
* characters: "", "a", "aa", etc.
*
- * piece ::= atom
- * or atom multi
+ * piece ::= atom
+ * or atom multi
*/
static int nfa_regpiece(void)
{
@@ -2068,16 +2571,17 @@ static int nfa_regpiece(void)
// next.
save_parse_state(&old_state);
- /* store current pos in the postfix form, for \{m,n} involving 0s */
+ // store current pos in the postfix form, for \{m,n} involving 0s
my_post_start = (int)(post_ptr - post_start);
ret = nfa_regatom();
- if (ret == FAIL)
- return FAIL; /* cascaded error */
-
+ if (ret == FAIL) {
+ return FAIL; // cascaded error
+ }
op = peekchr();
- if (re_multi_type(op) == NOT_MULTI)
+ if (re_multi_type(op) == NOT_MULTI) {
return OK;
+ }
skipchr();
switch (op) {
@@ -2099,37 +2603,39 @@ static int nfa_regpiece(void)
*/
restore_parse_state(&old_state);
curchr = -1;
- if (nfa_regatom() == FAIL)
+ if (nfa_regatom() == FAIL) {
return FAIL;
+ }
EMIT(NFA_STAR);
EMIT(NFA_CONCAT);
- skipchr(); /* skip the \+ */
+ skipchr(); // skip the \+
break;
case Magic('@'):
c2 = getdecchrs();
op = no_Magic(getchr());
i = 0;
- switch(op) {
+ switch (op) {
case '=':
- /* \@= */
+ // \@=
i = NFA_PREV_ATOM_NO_WIDTH;
break;
case '!':
- /* \@! */
+ // \@!
i = NFA_PREV_ATOM_NO_WIDTH_NEG;
break;
case '<':
op = no_Magic(getchr());
- if (op == '=')
- /* \@<= */
+ if (op == '=') {
+ // \@<=
i = NFA_PREV_ATOM_JUST_BEFORE;
- else if (op == '!')
- /* \@<! */
+ } else if (op == '!') {
+ // \@<!
i = NFA_PREV_ATOM_JUST_BEFORE_NEG;
+ }
break;
case '>':
- /* \@> */
+ // \@>
i = NFA_PREV_ATOM_LIKE_PATTERN;
break;
}
@@ -2139,8 +2645,9 @@ static int nfa_regpiece(void)
}
EMIT(i);
if (i == NFA_PREV_ATOM_JUST_BEFORE
- || i == NFA_PREV_ATOM_JUST_BEFORE_NEG)
+ || i == NFA_PREV_ATOM_JUST_BEFORE_NEG) {
EMIT(c2);
+ }
break;
case Magic('?'):
@@ -2161,26 +2668,28 @@ static int nfa_regpiece(void)
skipchr();
greedy = false;
}
- if (!read_limits(&minval, &maxval))
+ if (!read_limits(&minval, &maxval)) {
EMSG_RET_FAIL(_("E870: (NFA regexp) Error reading repetition limits"));
+ }
// <atom>{0,inf}, <atom>{0,} and <atom>{} are equivalent to
// <atom>*
if (minval == 0 && maxval == MAX_LIMIT) {
- if (greedy)
- /* \{}, \{0,} */
+ if (greedy) {
+ // \{}, \{0,}
EMIT(NFA_STAR);
- else
- /* \{-}, \{-0,} */
+ } else {
+ // \{-}, \{-0,}
EMIT(NFA_STAR_NONGREEDY);
+ }
break;
}
- /* Special case: x{0} or x{-0} */
+ // Special case: x{0} or x{-0}
if (maxval == 0) {
- /* Ignore result of previous call to nfa_regatom() */
+ // Ignore result of previous call to nfa_regatom()
post_ptr = post_start + my_post_start;
- /* NFA_EMPTY is 0-length and works everywhere */
+ // NFA_EMPTY is 0-length and works everywhere
EMIT(NFA_EMPTY);
return OK;
}
@@ -2199,35 +2708,40 @@ static int nfa_regpiece(void)
return FAIL;
}
- /* Ignore previous call to nfa_regatom() */
+ // Ignore previous call to nfa_regatom()
post_ptr = post_start + my_post_start;
- /* Save parse state after the repeated atom and the \{} */
+ // Save parse state after the repeated atom and the \{}
save_parse_state(&new_state);
quest = (greedy == true ? NFA_QUEST : NFA_QUEST_NONGREEDY);
for (i = 0; i < maxval; i++) {
- /* Goto beginning of the repeated atom */
+ // Goto beginning of the repeated atom
restore_parse_state(&old_state);
old_post_pos = (int)(post_ptr - post_start);
- if (nfa_regatom() == FAIL)
+ if (nfa_regatom() == FAIL) {
return FAIL;
- /* after "minval" times, atoms are optional */
+ }
+ // after "minval" times, atoms are optional
if (i + 1 > minval) {
if (maxval == MAX_LIMIT) {
- if (greedy)
+ if (greedy) {
EMIT(NFA_STAR);
- else
+ } else {
EMIT(NFA_STAR_NONGREEDY);
- } else
+ }
+ } else {
EMIT(quest);
+ }
}
- if (old_post_pos != my_post_start)
+ if (old_post_pos != my_post_start) {
EMIT(NFA_CONCAT);
- if (i + 1 > minval && maxval == MAX_LIMIT)
+ }
+ if (i + 1 > minval && maxval == MAX_LIMIT) {
break;
+ }
}
- /* Go to just after the repeated atom and the \{} */
+ // Go to just after the repeated atom and the \{}
restore_parse_state(&new_state);
curchr = -1;
@@ -2236,7 +2750,7 @@ static int nfa_regpiece(void)
default:
break;
- } /* end switch */
+ } // end switch
if (re_multi_type(peekchr()) != NOT_MULTI) {
// Can't have a multi follow a multi.
@@ -2251,10 +2765,10 @@ static int nfa_regpiece(void)
* first piece, followed by a match for the second piece, etc. Example:
* "f[0-9]b", first matches "f", then a digit and then "b".
*
- * concat ::= piece
- * or piece piece
- * or piece piece piece
- * etc.
+ * concat ::= piece
+ * or piece piece
+ * or piece piece piece
+ * etc.
*/
static int nfa_regconcat(void)
{
@@ -2326,10 +2840,10 @@ static int nfa_regconcat(void)
* "foobeep\&..." matches "foo" in "foobeep".
* ".*Peter\&.*Bob" matches in a line containing both "Peter" and "Bob"
*
- * branch ::= concat
- * or concat \& concat
- * or concat \& concat \& concat
- * etc.
+ * branch ::= concat
+ * or concat \& concat
+ * or concat \& concat \& concat
+ * etc.
*/
static int nfa_regbranch(void)
{
@@ -2337,9 +2851,10 @@ static int nfa_regbranch(void)
old_post_pos = (int)(post_ptr - post_start);
- /* First branch, possibly the only one */
- if (nfa_regconcat() == FAIL)
+ // First branch, possibly the only one
+ if (nfa_regconcat() == FAIL) {
return FAIL;
+ }
// Try next concats
while (peekchr() == Magic('&')) {
@@ -2351,71 +2866,76 @@ static int nfa_regbranch(void)
EMIT(NFA_NOPEN);
EMIT(NFA_PREV_ATOM_NO_WIDTH);
old_post_pos = (int)(post_ptr - post_start);
- if (nfa_regconcat() == FAIL)
+ if (nfa_regconcat() == FAIL) {
return FAIL;
- /* if concat is empty do emit a node */
- if (old_post_pos == (int)(post_ptr - post_start))
+ }
+ // if concat is empty do emit a node
+ if (old_post_pos == (int)(post_ptr - post_start)) {
EMIT(NFA_EMPTY);
+ }
EMIT(NFA_CONCAT);
}
- /* if a branch is empty, emit one node for it */
- if (old_post_pos == (int)(post_ptr - post_start))
+ // if a branch is empty, emit one node for it
+ if (old_post_pos == (int)(post_ptr - post_start)) {
EMIT(NFA_EMPTY);
+ }
return OK;
}
-/*
- * Parse a pattern, one or more branches, separated by "\|". It matches
- * anything that matches one of the branches. Example: "foo\|beep" matches
- * "foo" and matches "beep". If more than one branch matches, the first one
- * is used.
- *
- * pattern ::= branch
- * or branch \| branch
- * or branch \| branch \| branch
- * etc.
- */
-static int
-nfa_reg (
- int paren /* REG_NOPAREN, REG_PAREN, REG_NPAREN or REG_ZPAREN */
-)
+/// Parse a pattern, one or more branches, separated by "\|". It matches
+/// anything that matches one of the branches. Example: "foo\|beep" matches
+/// "foo" and matches "beep". If more than one branch matches, the first one
+/// is used.
+///
+/// pattern ::= branch
+/// or branch \| branch
+/// or branch \| branch \| branch
+/// etc.
+///
+/// @param paren REG_NOPAREN, REG_PAREN, REG_NPAREN or REG_ZPAREN
+static int nfa_reg(int paren)
{
int parno = 0;
if (paren == REG_PAREN) {
- if (regnpar >= NSUBEXP) /* Too many `(' */
+ if (regnpar >= NSUBEXP) { // Too many `('
EMSG_RET_FAIL(_("E872: (NFA regexp) Too many '('"));
+ }
parno = regnpar++;
} else if (paren == REG_ZPAREN) {
- /* Make a ZOPEN node. */
- if (regnzpar >= NSUBEXP)
+ // Make a ZOPEN node.
+ if (regnzpar >= NSUBEXP) {
EMSG_RET_FAIL(_("E879: (NFA regexp) Too many \\z("));
+ }
parno = regnzpar++;
}
- if (nfa_regbranch() == FAIL)
- return FAIL; /* cascaded error */
-
+ if (nfa_regbranch() == FAIL) {
+ return FAIL; // cascaded error
+ }
while (peekchr() == Magic('|')) {
skipchr();
- if (nfa_regbranch() == FAIL)
- return FAIL; /* cascaded error */
+ if (nfa_regbranch() == FAIL) {
+ return FAIL; // cascaded error
+ }
EMIT(NFA_OR);
}
- /* Check for proper termination. */
+ // Check for proper termination.
if (paren != REG_NOPAREN && getchr() != Magic(')')) {
- if (paren == REG_NPAREN)
+ if (paren == REG_NPAREN) {
EMSG2_RET_FAIL(_(e_unmatchedpp), reg_magic == MAGIC_ALL);
- else
+ } else {
EMSG2_RET_FAIL(_(e_unmatchedp), reg_magic == MAGIC_ALL);
+ }
} else if (paren == REG_NOPAREN && peekchr() != NUL) {
- if (peekchr() == Magic(')'))
+ if (peekchr() == Magic(')')) {
EMSG2_RET_FAIL(_(e_unmatchedpar), reg_magic == MAGIC_ALL);
- else
+ } else {
EMSG_RET_FAIL(_("E873: (NFA regexp) proper termination error"));
+ }
}
// Here we set the flag allowing back references to this set of
// parentheses.
@@ -2443,32 +2963,57 @@ static void nfa_set_code(int c)
STRCPY(code, "");
switch (c) {
- case NFA_MATCH: STRCPY(code, "NFA_MATCH "); break;
- case NFA_SPLIT: STRCPY(code, "NFA_SPLIT "); break;
- case NFA_CONCAT: STRCPY(code, "NFA_CONCAT "); break;
- case NFA_NEWL: STRCPY(code, "NFA_NEWL "); break;
- case NFA_ZSTART: STRCPY(code, "NFA_ZSTART"); break;
- case NFA_ZEND: STRCPY(code, "NFA_ZEND"); break;
-
- case NFA_BACKREF1: STRCPY(code, "NFA_BACKREF1"); break;
- case NFA_BACKREF2: STRCPY(code, "NFA_BACKREF2"); break;
- case NFA_BACKREF3: STRCPY(code, "NFA_BACKREF3"); break;
- case NFA_BACKREF4: STRCPY(code, "NFA_BACKREF4"); break;
- case NFA_BACKREF5: STRCPY(code, "NFA_BACKREF5"); break;
- case NFA_BACKREF6: STRCPY(code, "NFA_BACKREF6"); break;
- case NFA_BACKREF7: STRCPY(code, "NFA_BACKREF7"); break;
- case NFA_BACKREF8: STRCPY(code, "NFA_BACKREF8"); break;
- case NFA_BACKREF9: STRCPY(code, "NFA_BACKREF9"); break;
- case NFA_ZREF1: STRCPY(code, "NFA_ZREF1"); break;
- case NFA_ZREF2: STRCPY(code, "NFA_ZREF2"); break;
- case NFA_ZREF3: STRCPY(code, "NFA_ZREF3"); break;
- case NFA_ZREF4: STRCPY(code, "NFA_ZREF4"); break;
- case NFA_ZREF5: STRCPY(code, "NFA_ZREF5"); break;
- case NFA_ZREF6: STRCPY(code, "NFA_ZREF6"); break;
- case NFA_ZREF7: STRCPY(code, "NFA_ZREF7"); break;
- case NFA_ZREF8: STRCPY(code, "NFA_ZREF8"); break;
- case NFA_ZREF9: STRCPY(code, "NFA_ZREF9"); break;
- case NFA_SKIP: STRCPY(code, "NFA_SKIP"); break;
+ case NFA_MATCH:
+ STRCPY(code, "NFA_MATCH "); break;
+ case NFA_SPLIT:
+ STRCPY(code, "NFA_SPLIT "); break;
+ case NFA_CONCAT:
+ STRCPY(code, "NFA_CONCAT "); break;
+ case NFA_NEWL:
+ STRCPY(code, "NFA_NEWL "); break;
+ case NFA_ZSTART:
+ STRCPY(code, "NFA_ZSTART"); break;
+ case NFA_ZEND:
+ STRCPY(code, "NFA_ZEND"); break;
+
+ case NFA_BACKREF1:
+ STRCPY(code, "NFA_BACKREF1"); break;
+ case NFA_BACKREF2:
+ STRCPY(code, "NFA_BACKREF2"); break;
+ case NFA_BACKREF3:
+ STRCPY(code, "NFA_BACKREF3"); break;
+ case NFA_BACKREF4:
+ STRCPY(code, "NFA_BACKREF4"); break;
+ case NFA_BACKREF5:
+ STRCPY(code, "NFA_BACKREF5"); break;
+ case NFA_BACKREF6:
+ STRCPY(code, "NFA_BACKREF6"); break;
+ case NFA_BACKREF7:
+ STRCPY(code, "NFA_BACKREF7"); break;
+ case NFA_BACKREF8:
+ STRCPY(code, "NFA_BACKREF8"); break;
+ case NFA_BACKREF9:
+ STRCPY(code, "NFA_BACKREF9"); break;
+ case NFA_ZREF1:
+ STRCPY(code, "NFA_ZREF1"); break;
+ case NFA_ZREF2:
+ STRCPY(code, "NFA_ZREF2"); break;
+ case NFA_ZREF3:
+ STRCPY(code, "NFA_ZREF3"); break;
+ case NFA_ZREF4:
+ STRCPY(code, "NFA_ZREF4"); break;
+ case NFA_ZREF5:
+ STRCPY(code, "NFA_ZREF5"); break;
+ case NFA_ZREF6:
+ STRCPY(code, "NFA_ZREF6"); break;
+ case NFA_ZREF7:
+ STRCPY(code, "NFA_ZREF7"); break;
+ case NFA_ZREF8:
+ STRCPY(code, "NFA_ZREF8"); break;
+ case NFA_ZREF9:
+ STRCPY(code, "NFA_ZREF9"); break;
+ case NFA_SKIP:
+ STRCPY(code, "NFA_SKIP"); break;
case NFA_PREV_ATOM_NO_WIDTH:
STRCPY(code, "NFA_PREV_ATOM_NO_WIDTH"); break;
@@ -2481,9 +3026,12 @@ static void nfa_set_code(int c)
case NFA_PREV_ATOM_LIKE_PATTERN:
STRCPY(code, "NFA_PREV_ATOM_LIKE_PATTERN"); break;
- case NFA_NOPEN: STRCPY(code, "NFA_NOPEN"); break;
- case NFA_NCLOSE: STRCPY(code, "NFA_NCLOSE"); break;
- case NFA_START_INVISIBLE: STRCPY(code, "NFA_START_INVISIBLE"); break;
+ case NFA_NOPEN:
+ STRCPY(code, "NFA_NOPEN"); break;
+ case NFA_NCLOSE:
+ STRCPY(code, "NFA_NCLOSE"); break;
+ case NFA_START_INVISIBLE:
+ STRCPY(code, "NFA_START_INVISIBLE"); break;
case NFA_START_INVISIBLE_FIRST:
STRCPY(code, "NFA_START_INVISIBLE_FIRST"); break;
case NFA_START_INVISIBLE_NEG:
@@ -2498,14 +3046,21 @@ static void nfa_set_code(int c)
STRCPY(code, "NFA_START_INVISIBLE_BEFORE_NEG"); break;
case NFA_START_INVISIBLE_BEFORE_NEG_FIRST:
STRCPY(code, "NFA_START_INVISIBLE_BEFORE_NEG_FIRST"); break;
- case NFA_START_PATTERN: STRCPY(code, "NFA_START_PATTERN"); break;
- case NFA_END_INVISIBLE: STRCPY(code, "NFA_END_INVISIBLE"); break;
- case NFA_END_INVISIBLE_NEG: STRCPY(code, "NFA_END_INVISIBLE_NEG"); break;
- case NFA_END_PATTERN: STRCPY(code, "NFA_END_PATTERN"); break;
+ case NFA_START_PATTERN:
+ STRCPY(code, "NFA_START_PATTERN"); break;
+ case NFA_END_INVISIBLE:
+ STRCPY(code, "NFA_END_INVISIBLE"); break;
+ case NFA_END_INVISIBLE_NEG:
+ STRCPY(code, "NFA_END_INVISIBLE_NEG"); break;
+ case NFA_END_PATTERN:
+ STRCPY(code, "NFA_END_PATTERN"); break;
- case NFA_COMPOSING: STRCPY(code, "NFA_COMPOSING"); break;
- case NFA_END_COMPOSING: STRCPY(code, "NFA_END_COMPOSING"); break;
- case NFA_OPT_CHARS: STRCPY(code, "NFA_OPT_CHARS"); break;
+ case NFA_COMPOSING:
+ STRCPY(code, "NFA_COMPOSING"); break;
+ case NFA_END_COMPOSING:
+ STRCPY(code, "NFA_END_COMPOSING"); break;
+ case NFA_OPT_CHARS:
+ STRCPY(code, "NFA_OPT_CHARS"); break;
case NFA_MOPEN:
case NFA_MOPEN1:
@@ -2559,94 +3114,178 @@ static void nfa_set_code(int c)
STRCPY(code, "NFA_ZCLOSE(x)");
code[11] = c - NFA_ZCLOSE + '0';
break;
- case NFA_EOL: STRCPY(code, "NFA_EOL "); break;
- case NFA_BOL: STRCPY(code, "NFA_BOL "); break;
- case NFA_EOW: STRCPY(code, "NFA_EOW "); break;
- case NFA_BOW: STRCPY(code, "NFA_BOW "); break;
- case NFA_EOF: STRCPY(code, "NFA_EOF "); break;
- case NFA_BOF: STRCPY(code, "NFA_BOF "); break;
- case NFA_LNUM: STRCPY(code, "NFA_LNUM "); break;
- case NFA_LNUM_GT: STRCPY(code, "NFA_LNUM_GT "); break;
- case NFA_LNUM_LT: STRCPY(code, "NFA_LNUM_LT "); break;
- case NFA_COL: STRCPY(code, "NFA_COL "); break;
- case NFA_COL_GT: STRCPY(code, "NFA_COL_GT "); break;
- case NFA_COL_LT: STRCPY(code, "NFA_COL_LT "); break;
- case NFA_VCOL: STRCPY(code, "NFA_VCOL "); break;
- case NFA_VCOL_GT: STRCPY(code, "NFA_VCOL_GT "); break;
- case NFA_VCOL_LT: STRCPY(code, "NFA_VCOL_LT "); break;
- case NFA_MARK: STRCPY(code, "NFA_MARK "); break;
- case NFA_MARK_GT: STRCPY(code, "NFA_MARK_GT "); break;
- case NFA_MARK_LT: STRCPY(code, "NFA_MARK_LT "); break;
- case NFA_CURSOR: STRCPY(code, "NFA_CURSOR "); break;
- case NFA_VISUAL: STRCPY(code, "NFA_VISUAL "); break;
- case NFA_ANY_COMPOSING: STRCPY(code, "NFA_ANY_COMPOSING "); break;
-
- case NFA_STAR: STRCPY(code, "NFA_STAR "); break;
- case NFA_STAR_NONGREEDY: STRCPY(code, "NFA_STAR_NONGREEDY "); break;
- case NFA_QUEST: STRCPY(code, "NFA_QUEST"); break;
- case NFA_QUEST_NONGREEDY: STRCPY(code, "NFA_QUEST_NON_GREEDY"); break;
- case NFA_EMPTY: STRCPY(code, "NFA_EMPTY"); break;
- case NFA_OR: STRCPY(code, "NFA_OR"); break;
-
- case NFA_START_COLL: STRCPY(code, "NFA_START_COLL"); break;
- case NFA_END_COLL: STRCPY(code, "NFA_END_COLL"); break;
- case NFA_START_NEG_COLL: STRCPY(code, "NFA_START_NEG_COLL"); break;
- case NFA_END_NEG_COLL: STRCPY(code, "NFA_END_NEG_COLL"); break;
- case NFA_RANGE: STRCPY(code, "NFA_RANGE"); break;
- case NFA_RANGE_MIN: STRCPY(code, "NFA_RANGE_MIN"); break;
- case NFA_RANGE_MAX: STRCPY(code, "NFA_RANGE_MAX"); break;
-
- case NFA_CLASS_ALNUM: STRCPY(code, "NFA_CLASS_ALNUM"); break;
- case NFA_CLASS_ALPHA: STRCPY(code, "NFA_CLASS_ALPHA"); break;
- case NFA_CLASS_BLANK: STRCPY(code, "NFA_CLASS_BLANK"); break;
- case NFA_CLASS_CNTRL: STRCPY(code, "NFA_CLASS_CNTRL"); break;
- case NFA_CLASS_DIGIT: STRCPY(code, "NFA_CLASS_DIGIT"); break;
- case NFA_CLASS_GRAPH: STRCPY(code, "NFA_CLASS_GRAPH"); break;
- case NFA_CLASS_LOWER: STRCPY(code, "NFA_CLASS_LOWER"); break;
- case NFA_CLASS_PRINT: STRCPY(code, "NFA_CLASS_PRINT"); break;
- case NFA_CLASS_PUNCT: STRCPY(code, "NFA_CLASS_PUNCT"); break;
- case NFA_CLASS_SPACE: STRCPY(code, "NFA_CLASS_SPACE"); break;
- case NFA_CLASS_UPPER: STRCPY(code, "NFA_CLASS_UPPER"); break;
- case NFA_CLASS_XDIGIT: STRCPY(code, "NFA_CLASS_XDIGIT"); break;
- case NFA_CLASS_TAB: STRCPY(code, "NFA_CLASS_TAB"); break;
- case NFA_CLASS_RETURN: STRCPY(code, "NFA_CLASS_RETURN"); break;
- case NFA_CLASS_BACKSPACE: STRCPY(code, "NFA_CLASS_BACKSPACE"); break;
- case NFA_CLASS_ESCAPE: STRCPY(code, "NFA_CLASS_ESCAPE"); break;
- case NFA_CLASS_IDENT: STRCPY(code, "NFA_CLASS_IDENT"); break;
- case NFA_CLASS_KEYWORD: STRCPY(code, "NFA_CLASS_KEYWORD"); break;
- case NFA_CLASS_FNAME: STRCPY(code, "NFA_CLASS_FNAME"); break;
-
- case NFA_ANY: STRCPY(code, "NFA_ANY"); break;
- case NFA_IDENT: STRCPY(code, "NFA_IDENT"); break;
- case NFA_SIDENT: STRCPY(code, "NFA_SIDENT"); break;
- case NFA_KWORD: STRCPY(code, "NFA_KWORD"); break;
- case NFA_SKWORD: STRCPY(code, "NFA_SKWORD"); break;
- case NFA_FNAME: STRCPY(code, "NFA_FNAME"); break;
- case NFA_SFNAME: STRCPY(code, "NFA_SFNAME"); break;
- case NFA_PRINT: STRCPY(code, "NFA_PRINT"); break;
- case NFA_SPRINT: STRCPY(code, "NFA_SPRINT"); break;
- case NFA_WHITE: STRCPY(code, "NFA_WHITE"); break;
- case NFA_NWHITE: STRCPY(code, "NFA_NWHITE"); break;
- case NFA_DIGIT: STRCPY(code, "NFA_DIGIT"); break;
- case NFA_NDIGIT: STRCPY(code, "NFA_NDIGIT"); break;
- case NFA_HEX: STRCPY(code, "NFA_HEX"); break;
- case NFA_NHEX: STRCPY(code, "NFA_NHEX"); break;
- case NFA_OCTAL: STRCPY(code, "NFA_OCTAL"); break;
- case NFA_NOCTAL: STRCPY(code, "NFA_NOCTAL"); break;
- case NFA_WORD: STRCPY(code, "NFA_WORD"); break;
- case NFA_NWORD: STRCPY(code, "NFA_NWORD"); break;
- case NFA_HEAD: STRCPY(code, "NFA_HEAD"); break;
- case NFA_NHEAD: STRCPY(code, "NFA_NHEAD"); break;
- case NFA_ALPHA: STRCPY(code, "NFA_ALPHA"); break;
- case NFA_NALPHA: STRCPY(code, "NFA_NALPHA"); break;
- case NFA_LOWER: STRCPY(code, "NFA_LOWER"); break;
- case NFA_NLOWER: STRCPY(code, "NFA_NLOWER"); break;
- case NFA_UPPER: STRCPY(code, "NFA_UPPER"); break;
- case NFA_NUPPER: STRCPY(code, "NFA_NUPPER"); break;
- case NFA_LOWER_IC: STRCPY(code, "NFA_LOWER_IC"); break;
- case NFA_NLOWER_IC: STRCPY(code, "NFA_NLOWER_IC"); break;
- case NFA_UPPER_IC: STRCPY(code, "NFA_UPPER_IC"); break;
- case NFA_NUPPER_IC: STRCPY(code, "NFA_NUPPER_IC"); break;
+ case NFA_EOL:
+ STRCPY(code, "NFA_EOL "); break;
+ case NFA_BOL:
+ STRCPY(code, "NFA_BOL "); break;
+ case NFA_EOW:
+ STRCPY(code, "NFA_EOW "); break;
+ case NFA_BOW:
+ STRCPY(code, "NFA_BOW "); break;
+ case NFA_EOF:
+ STRCPY(code, "NFA_EOF "); break;
+ case NFA_BOF:
+ STRCPY(code, "NFA_BOF "); break;
+ case NFA_LNUM:
+ STRCPY(code, "NFA_LNUM "); break;
+ case NFA_LNUM_GT:
+ STRCPY(code, "NFA_LNUM_GT "); break;
+ case NFA_LNUM_LT:
+ STRCPY(code, "NFA_LNUM_LT "); break;
+ case NFA_COL:
+ STRCPY(code, "NFA_COL "); break;
+ case NFA_COL_GT:
+ STRCPY(code, "NFA_COL_GT "); break;
+ case NFA_COL_LT:
+ STRCPY(code, "NFA_COL_LT "); break;
+ case NFA_VCOL:
+ STRCPY(code, "NFA_VCOL "); break;
+ case NFA_VCOL_GT:
+ STRCPY(code, "NFA_VCOL_GT "); break;
+ case NFA_VCOL_LT:
+ STRCPY(code, "NFA_VCOL_LT "); break;
+ case NFA_MARK:
+ STRCPY(code, "NFA_MARK "); break;
+ case NFA_MARK_GT:
+ STRCPY(code, "NFA_MARK_GT "); break;
+ case NFA_MARK_LT:
+ STRCPY(code, "NFA_MARK_LT "); break;
+ case NFA_CURSOR:
+ STRCPY(code, "NFA_CURSOR "); break;
+ case NFA_VISUAL:
+ STRCPY(code, "NFA_VISUAL "); break;
+ case NFA_ANY_COMPOSING:
+ STRCPY(code, "NFA_ANY_COMPOSING "); break;
+
+ case NFA_STAR:
+ STRCPY(code, "NFA_STAR "); break;
+ case NFA_STAR_NONGREEDY:
+ STRCPY(code, "NFA_STAR_NONGREEDY "); break;
+ case NFA_QUEST:
+ STRCPY(code, "NFA_QUEST"); break;
+ case NFA_QUEST_NONGREEDY:
+ STRCPY(code, "NFA_QUEST_NON_GREEDY"); break;
+ case NFA_EMPTY:
+ STRCPY(code, "NFA_EMPTY"); break;
+ case NFA_OR:
+ STRCPY(code, "NFA_OR"); break;
+
+ case NFA_START_COLL:
+ STRCPY(code, "NFA_START_COLL"); break;
+ case NFA_END_COLL:
+ STRCPY(code, "NFA_END_COLL"); break;
+ case NFA_START_NEG_COLL:
+ STRCPY(code, "NFA_START_NEG_COLL"); break;
+ case NFA_END_NEG_COLL:
+ STRCPY(code, "NFA_END_NEG_COLL"); break;
+ case NFA_RANGE:
+ STRCPY(code, "NFA_RANGE"); break;
+ case NFA_RANGE_MIN:
+ STRCPY(code, "NFA_RANGE_MIN"); break;
+ case NFA_RANGE_MAX:
+ STRCPY(code, "NFA_RANGE_MAX"); break;
+
+ case NFA_CLASS_ALNUM:
+ STRCPY(code, "NFA_CLASS_ALNUM"); break;
+ case NFA_CLASS_ALPHA:
+ STRCPY(code, "NFA_CLASS_ALPHA"); break;
+ case NFA_CLASS_BLANK:
+ STRCPY(code, "NFA_CLASS_BLANK"); break;
+ case NFA_CLASS_CNTRL:
+ STRCPY(code, "NFA_CLASS_CNTRL"); break;
+ case NFA_CLASS_DIGIT:
+ STRCPY(code, "NFA_CLASS_DIGIT"); break;
+ case NFA_CLASS_GRAPH:
+ STRCPY(code, "NFA_CLASS_GRAPH"); break;
+ case NFA_CLASS_LOWER:
+ STRCPY(code, "NFA_CLASS_LOWER"); break;
+ case NFA_CLASS_PRINT:
+ STRCPY(code, "NFA_CLASS_PRINT"); break;
+ case NFA_CLASS_PUNCT:
+ STRCPY(code, "NFA_CLASS_PUNCT"); break;
+ case NFA_CLASS_SPACE:
+ STRCPY(code, "NFA_CLASS_SPACE"); break;
+ case NFA_CLASS_UPPER:
+ STRCPY(code, "NFA_CLASS_UPPER"); break;
+ case NFA_CLASS_XDIGIT:
+ STRCPY(code, "NFA_CLASS_XDIGIT"); break;
+ case NFA_CLASS_TAB:
+ STRCPY(code, "NFA_CLASS_TAB"); break;
+ case NFA_CLASS_RETURN:
+ STRCPY(code, "NFA_CLASS_RETURN"); break;
+ case NFA_CLASS_BACKSPACE:
+ STRCPY(code, "NFA_CLASS_BACKSPACE"); break;
+ case NFA_CLASS_ESCAPE:
+ STRCPY(code, "NFA_CLASS_ESCAPE"); break;
+ case NFA_CLASS_IDENT:
+ STRCPY(code, "NFA_CLASS_IDENT"); break;
+ case NFA_CLASS_KEYWORD:
+ STRCPY(code, "NFA_CLASS_KEYWORD"); break;
+ case NFA_CLASS_FNAME:
+ STRCPY(code, "NFA_CLASS_FNAME"); break;
+
+ case NFA_ANY:
+ STRCPY(code, "NFA_ANY"); break;
+ case NFA_IDENT:
+ STRCPY(code, "NFA_IDENT"); break;
+ case NFA_SIDENT:
+ STRCPY(code, "NFA_SIDENT"); break;
+ case NFA_KWORD:
+ STRCPY(code, "NFA_KWORD"); break;
+ case NFA_SKWORD:
+ STRCPY(code, "NFA_SKWORD"); break;
+ case NFA_FNAME:
+ STRCPY(code, "NFA_FNAME"); break;
+ case NFA_SFNAME:
+ STRCPY(code, "NFA_SFNAME"); break;
+ case NFA_PRINT:
+ STRCPY(code, "NFA_PRINT"); break;
+ case NFA_SPRINT:
+ STRCPY(code, "NFA_SPRINT"); break;
+ case NFA_WHITE:
+ STRCPY(code, "NFA_WHITE"); break;
+ case NFA_NWHITE:
+ STRCPY(code, "NFA_NWHITE"); break;
+ case NFA_DIGIT:
+ STRCPY(code, "NFA_DIGIT"); break;
+ case NFA_NDIGIT:
+ STRCPY(code, "NFA_NDIGIT"); break;
+ case NFA_HEX:
+ STRCPY(code, "NFA_HEX"); break;
+ case NFA_NHEX:
+ STRCPY(code, "NFA_NHEX"); break;
+ case NFA_OCTAL:
+ STRCPY(code, "NFA_OCTAL"); break;
+ case NFA_NOCTAL:
+ STRCPY(code, "NFA_NOCTAL"); break;
+ case NFA_WORD:
+ STRCPY(code, "NFA_WORD"); break;
+ case NFA_NWORD:
+ STRCPY(code, "NFA_NWORD"); break;
+ case NFA_HEAD:
+ STRCPY(code, "NFA_HEAD"); break;
+ case NFA_NHEAD:
+ STRCPY(code, "NFA_NHEAD"); break;
+ case NFA_ALPHA:
+ STRCPY(code, "NFA_ALPHA"); break;
+ case NFA_NALPHA:
+ STRCPY(code, "NFA_NALPHA"); break;
+ case NFA_LOWER:
+ STRCPY(code, "NFA_LOWER"); break;
+ case NFA_NLOWER:
+ STRCPY(code, "NFA_NLOWER"); break;
+ case NFA_UPPER:
+ STRCPY(code, "NFA_UPPER"); break;
+ case NFA_NUPPER:
+ STRCPY(code, "NFA_NUPPER"); break;
+ case NFA_LOWER_IC:
+ STRCPY(code, "NFA_LOWER_IC"); break;
+ case NFA_NLOWER_IC:
+ STRCPY(code, "NFA_NLOWER_IC"); break;
+ case NFA_UPPER_IC:
+ STRCPY(code, "NFA_UPPER_IC"); break;
+ case NFA_NUPPER_IC:
+ STRCPY(code, "NFA_NUPPER_IC"); break;
default:
STRCPY(code, "CHAR(x)");
@@ -2659,8 +3298,8 @@ static void nfa_set_code(int c)
}
static FILE *log_fd;
-static char_u e_log_open_failed[] = N_(
- "Could not open temporary log file for writing, displaying on stderr... ");
+static char_u e_log_open_failed[] =
+ N_("Could not open temporary log file for writing, displaying on stderr... ");
/*
* Print the postfix notation of the current regexp.
@@ -2684,8 +3323,9 @@ static void nfa_postfix_dump(char_u *expr, int retval)
fprintf(f, "%s, ", code);
}
fprintf(f, "\"\nPostfix notation (int): ");
- for (p = post_start; *p && p < post_ptr; p++)
+ for (p = post_start; *p && p < post_ptr; p++) {
fprintf(f, "%d ", *p);
+ }
fprintf(f, "\n\n");
fclose(f);
}
@@ -2706,14 +3346,15 @@ static void nfa_print_state(FILE *debugf, nfa_state_T *state)
static void nfa_print_state2(FILE *debugf, nfa_state_T *state, garray_T *indent)
{
- char_u *p;
+ char_u *p;
- if (state == NULL)
+ if (state == NULL) {
return;
+ }
fprintf(debugf, "(%2d)", abs(state->id));
- /* Output indent */
+ // Output indent
p = (char_u *)indent->ga_data;
if (indent->ga_len >= 3) {
int last = indent->ga_len - 3;
@@ -2722,39 +3363,42 @@ static void nfa_print_state2(FILE *debugf, nfa_state_T *state, garray_T *indent)
STRNCPY(save, &p[last], 2);
STRNCPY(&p[last], "+-", 2);
fprintf(debugf, " %s", p);
- STRNCPY(&p[last], save, 2);
- } else
+ STRNCPY(&p[last], save, 2); // NOLINT(runtime/printf)
+ } else {
fprintf(debugf, " %s", p);
+ }
nfa_set_code(state->c);
fprintf(debugf, "%s (%d) (id=%d) val=%d\n",
- code,
- state->c,
- abs(state->id),
- state->val);
- if (state->id < 0)
+ code,
+ state->c,
+ abs(state->id),
+ state->val);
+ if (state->id < 0) {
return;
+ }
state->id = abs(state->id) * -1;
- /* grow indent for state->out */
+ // grow indent for state->out
indent->ga_len -= 1;
- if (state->out1)
+ if (state->out1) {
ga_concat(indent, (char_u *)"| ");
- else
+ } else {
ga_concat(indent, (char_u *)" ");
+ }
ga_append(indent, NUL);
nfa_print_state2(debugf, state->out, indent);
- /* replace last part of indent for state->out1 */
+ // replace last part of indent for state->out1
indent->ga_len -= 3;
ga_concat(indent, (char_u *)" ");
ga_append(indent, NUL);
nfa_print_state2(debugf, state->out1, indent);
- /* shrink indent */
+ // shrink indent
indent->ga_len -= 3;
ga_append(indent, NUL);
}
@@ -2769,13 +3413,16 @@ static void nfa_dump(nfa_regprog_T *prog)
if (debugf != NULL) {
nfa_print_state(debugf, prog->start);
- if (prog->reganch)
+ if (prog->reganch) {
fprintf(debugf, "reganch: %d\n", prog->reganch);
- if (prog->regstart != NUL)
+ }
+ if (prog->regstart != NUL) {
fprintf(debugf, "regstart: %c (decimal: %d)\n",
- prog->regstart, prog->regstart);
- if (prog->match_text != NULL)
+ prog->regstart, prog->regstart);
+ }
+ if (prog->match_text != NULL) {
fprintf(debugf, "match_text: \"%s\"\n", prog->match_text);
+ }
fclose(debugf);
}
@@ -2788,13 +3435,14 @@ static void nfa_dump(nfa_regprog_T *prog)
*/
static int *re2post(void)
{
- if (nfa_reg(REG_NOPAREN) == FAIL)
+ if (nfa_reg(REG_NOPAREN) == FAIL) {
return NULL;
+ }
EMIT(NFA_MOPEN);
return post_start;
}
-/* NB. Some of the code below is inspired by Russ's. */
+// NB. Some of the code below is inspired by Russ's.
/*
* Represents an NFA state plus zero or one or two arrows exiting.
@@ -2803,7 +3451,7 @@ static int *re2post(void)
* If c < 256, labeled arrow with character c to out.
*/
-static nfa_state_T *state_ptr; /* points to nfa_prog->state */
+static nfa_state_T *state_ptr; // points to nfa_prog->state
/*
* Allocate and initialize nfa_state_T.
@@ -2812,8 +3460,9 @@ static nfa_state_T *alloc_state(int c, nfa_state_T *out, nfa_state_T *out1)
{
nfa_state_T *s;
- if (istate >= nstate)
+ if (istate >= nstate) {
return NULL;
+ }
s = &state_ptr[istate++];
@@ -2883,8 +3532,9 @@ static Ptrlist *append(Ptrlist *l1, Ptrlist *l2)
Ptrlist *oldl1;
oldl1 = l1;
- while (l1->next)
+ while (l1->next) {
l1 = l1->next;
+ }
l1->next = l2;
return oldl1;
}
@@ -2903,11 +3553,11 @@ static void st_error(int *postfix, int *end, int *p)
df = fopen(NFA_REGEXP_ERROR_LOG, "a");
if (df) {
fprintf(df, "Error popping the stack!\n");
-#ifdef REGEXP_DEBUG
+# ifdef REGEXP_DEBUG
fprintf(df, "Current regexp is \"%s\"\n", nfa_regengine.expr);
-#endif
+# endif
fprintf(df, "Postfix form is: ");
-#ifdef REGEXP_DEBUG
+# ifdef REGEXP_DEBUG
for (p2 = postfix; p2 < end; p2++) {
nfa_set_code(*p2);
fprintf(df, "%s, ", code);
@@ -2918,7 +3568,7 @@ static void st_error(int *postfix, int *end, int *p)
nfa_set_code(*p2);
fprintf(df, "%s, ", code);
}
-#else
+# else
for (p2 = postfix; p2 < end; p2++) {
fprintf(df, "%d, ", *p2);
}
@@ -2926,7 +3576,7 @@ static void st_error(int *postfix, int *end, int *p)
for (p2 = postfix; p2 <= p; p2++) {
fprintf(df, "%d, ", *p2);
}
-#endif
+# endif
fprintf(df, "\n--------------------------\n");
fclose(df);
}
@@ -2941,8 +3591,9 @@ static void st_push(Frag_T s, Frag_T **p, Frag_T *stack_end)
{
Frag_T *stackp = *p;
- if (stackp >= stack_end)
+ if (stackp >= stack_end) {
return;
+ }
*stackp = s;
*p = *p + 1;
}
@@ -2956,8 +3607,9 @@ static Frag_T st_pop(Frag_T **p, Frag_T *stack)
*p = *p - 1;
stackp = *p;
- if (stackp < stack)
+ if (stackp < stack) {
return empty;
+ }
return **p;
}
@@ -2968,26 +3620,28 @@ static Frag_T st_pop(Frag_T **p, Frag_T *stack)
static int nfa_max_width(nfa_state_T *startstate, int depth)
{
int l, r;
- nfa_state_T *state = startstate;
+ nfa_state_T *state = startstate;
int len = 0;
- /* detect looping in a NFA_SPLIT */
- if (depth > 4)
+ // detect looping in a NFA_SPLIT
+ if (depth > 4) {
return -1;
+ }
while (state != NULL) {
switch (state->c) {
case NFA_END_INVISIBLE:
case NFA_END_INVISIBLE_NEG:
- /* the end, return what we have */
+ // the end, return what we have
return len;
case NFA_SPLIT:
- /* two alternatives, use the maximum */
+ // two alternatives, use the maximum
l = nfa_max_width(state->out, depth + 1);
r = nfa_max_width(state->out1, depth + 1);
- if (l < 0 || r < 0)
+ if (l < 0 || r < 0) {
return -1;
+ }
return len + (l > r ? l : r);
case NFA_ANY:
@@ -3006,8 +3660,8 @@ static int nfa_max_width(nfa_state_T *startstate, int depth)
case NFA_WHITE:
case NFA_HEX:
case NFA_OCTAL:
- /* ascii */
- ++len;
+ // ascii
+ len++;
break;
case NFA_IDENT:
@@ -3045,7 +3699,7 @@ static int nfa_max_width(nfa_state_T *startstate, int depth)
case NFA_START_INVISIBLE_NEG:
case NFA_START_INVISIBLE_BEFORE:
case NFA_START_INVISIBLE_BEFORE_NEG:
- /* zero-width, out1 points to the END state */
+ // zero-width, out1 points to the END state
state = state->out1->out;
continue;
@@ -3069,7 +3723,7 @@ static int nfa_max_width(nfa_state_T *startstate, int depth)
case NFA_ZREF9:
case NFA_NEWL:
case NFA_SKIP:
- /* unknown width */
+ // unknown width
return -1;
case NFA_BOL:
@@ -3144,23 +3798,24 @@ static int nfa_max_width(nfa_state_T *startstate, int depth)
case NFA_END_PATTERN:
case NFA_COMPOSING:
case NFA_END_COMPOSING:
- /* zero-width */
+ // zero-width
break;
default:
- if (state->c < 0)
- /* don't know what this is */
+ if (state->c < 0) {
+ // don't know what this is
return -1;
+ }
// normal character
len += utf_char2len(state->c);
break;
}
- /* normal way to continue */
+ // normal way to continue
state = state->out;
}
- /* unrecognized, "cannot happen" */
+ // unrecognized, "cannot happen"
return -1;
}
@@ -3170,12 +3825,12 @@ static int nfa_max_width(nfa_state_T *startstate, int depth)
*/
static nfa_state_T *post2nfa(int *postfix, int *end, int nfa_calc_size)
{
- int *p;
+ int *p;
int mopen;
int mclose;
- Frag_T *stack = NULL;
- Frag_T *stackp = NULL;
- Frag_T *stack_end = NULL;
+ Frag_T *stack = NULL;
+ Frag_T *stackp = NULL;
+ Frag_T *stack_end = NULL;
Frag_T e1;
Frag_T e2;
Frag_T e;
@@ -3184,8 +3839,9 @@ static nfa_state_T *post2nfa(int *postfix, int *end, int nfa_calc_size)
nfa_state_T *matchstate;
nfa_state_T *ret = NULL;
- if (postfix == NULL)
+ if (postfix == NULL) {
return NULL;
+ }
#define PUSH(s) st_push((s), &stackp, stack_end)
#define POP() st_pop(&stackp, stack); \
@@ -3228,8 +3884,9 @@ static nfa_state_T *post2nfa(int *postfix, int *end, int nfa_calc_size)
e2 = POP();
e1 = POP();
s = alloc_state(NFA_SPLIT, e1.start, e2.start);
- if (s == NULL)
+ if (s == NULL) {
goto theend;
+ }
PUSH(frag(s, append(e1.out, e2.out)));
break;
@@ -3241,8 +3898,9 @@ static nfa_state_T *post2nfa(int *postfix, int *end, int nfa_calc_size)
}
e = POP();
s = alloc_state(NFA_SPLIT, e.start, NULL);
- if (s == NULL)
+ if (s == NULL) {
goto theend;
+ }
patch(e.out, s);
PUSH(frag(s, list1(&s->out1)));
break;
@@ -3255,8 +3913,9 @@ static nfa_state_T *post2nfa(int *postfix, int *end, int nfa_calc_size)
}
e = POP();
s = alloc_state(NFA_SPLIT, NULL, e.start);
- if (s == NULL)
+ if (s == NULL) {
goto theend;
+ }
patch(e.out, s);
PUSH(frag(s, list1(&s->out)));
break;
@@ -3269,8 +3928,9 @@ static nfa_state_T *post2nfa(int *postfix, int *end, int nfa_calc_size)
}
e = POP();
s = alloc_state(NFA_SPLIT, e.start, NULL);
- if (s == NULL)
+ if (s == NULL) {
goto theend;
+ }
PUSH(frag(s, append(e.out, list1(&s->out1))));
break;
@@ -3282,8 +3942,9 @@ static nfa_state_T *post2nfa(int *postfix, int *end, int nfa_calc_size)
}
e = POP();
s = alloc_state(NFA_SPLIT, NULL, e.start);
- if (s == NULL)
+ if (s == NULL) {
goto theend;
+ }
PUSH(frag(s, append(e.out, list1(&s->out))));
break;
@@ -3298,8 +3959,9 @@ static nfa_state_T *post2nfa(int *postfix, int *end, int nfa_calc_size)
}
e = POP();
s = alloc_state(NFA_END_COLL, NULL, NULL);
- if (s == NULL)
+ if (s == NULL) {
goto theend;
+ }
patch(e.out, s);
e.start->out1 = s;
PUSH(frag(e.start, list1(&s->out)));
@@ -3329,13 +3991,13 @@ static nfa_state_T *post2nfa(int *postfix, int *end, int nfa_calc_size)
break;
}
s = alloc_state(NFA_EMPTY, NULL, NULL);
- if (s == NULL)
+ if (s == NULL) {
goto theend;
+ }
PUSH(frag(s, list1(&s->out)));
break;
- case NFA_OPT_CHARS:
- {
+ case NFA_OPT_CHARS: {
int n;
// \%[abc] implemented as:
@@ -3354,16 +4016,18 @@ static nfa_state_T *post2nfa(int *postfix, int *end, int nfa_calc_size)
nstate += n;
break;
}
- s = NULL; /* avoid compiler warning */
- e1.out = NULL; /* stores list with out1's */
- s1 = NULL; /* previous NFA_SPLIT to connect to */
+ s = NULL; // avoid compiler warning
+ e1.out = NULL; // stores list with out1's
+ s1 = NULL; // previous NFA_SPLIT to connect to
while (n-- > 0) {
- e = POP(); /* get character */
+ e = POP(); // get character
s = alloc_state(NFA_SPLIT, e.start, NULL);
- if (s == NULL)
+ if (s == NULL) {
goto theend;
- if (e1.out == NULL)
+ }
+ if (e1.out == NULL) {
e1 = e;
+ }
patch(e.out, s1);
append(e1.out, list1(&s->out1));
s1 = s;
@@ -3376,8 +4040,7 @@ static nfa_state_T *post2nfa(int *postfix, int *end, int nfa_calc_size)
case NFA_PREV_ATOM_NO_WIDTH_NEG:
case NFA_PREV_ATOM_JUST_BEFORE:
case NFA_PREV_ATOM_JUST_BEFORE_NEG:
- case NFA_PREV_ATOM_LIKE_PATTERN:
- {
+ case NFA_PREV_ATOM_LIKE_PATTERN: {
int before = (*p == NFA_PREV_ATOM_JUST_BEFORE
|| *p == NFA_PREV_ATOM_JUST_BEFORE_NEG);
int pattern = (*p == NFA_PREV_ATOM_LIKE_PATTERN);
@@ -3404,15 +4067,15 @@ static nfa_state_T *post2nfa(int *postfix, int *end, int nfa_calc_size)
start_state = NFA_START_INVISIBLE_BEFORE_NEG;
end_state = NFA_END_INVISIBLE_NEG;
break;
- default: /* NFA_PREV_ATOM_LIKE_PATTERN: */
+ default: // NFA_PREV_ATOM_LIKE_PATTERN:
start_state = NFA_START_PATTERN;
end_state = NFA_END_PATTERN;
break;
}
- if (before)
- n = *++p; /* get the count */
-
+ if (before) {
+ n = *++p; // get the count
+ }
// The \@= operator: match the preceding atom with zero width.
// The \@! operator: no match for the preceding atom.
// The \@<= operator: match for the preceding atom.
@@ -3426,14 +4089,16 @@ static nfa_state_T *post2nfa(int *postfix, int *end, int nfa_calc_size)
}
e = POP();
s1 = alloc_state(end_state, NULL, NULL);
- if (s1 == NULL)
+ if (s1 == NULL) {
goto theend;
+ }
s = alloc_state(start_state, e.start, s1);
- if (s == NULL)
+ if (s == NULL) {
goto theend;
+ }
if (pattern) {
- /* NFA_ZEND -> NFA_END_PATTERN -> NFA_SKIP -> what follows. */
+ // NFA_ZEND -> NFA_END_PATTERN -> NFA_SKIP -> what follows.
skip = alloc_state(NFA_SKIP, NULL, NULL);
if (skip == NULL) {
goto theend;
@@ -3463,7 +4128,7 @@ static nfa_state_T *post2nfa(int *postfix, int *end, int nfa_calc_size)
case NFA_COMPOSING: // char with composing char
FALLTHROUGH;
- case NFA_MOPEN: /* \( \) Submatch */
+ case NFA_MOPEN: // \( \) Submatch
case NFA_MOPEN1:
case NFA_MOPEN2:
case NFA_MOPEN3:
@@ -3473,7 +4138,7 @@ static nfa_state_T *post2nfa(int *postfix, int *end, int nfa_calc_size)
case NFA_MOPEN7:
case NFA_MOPEN8:
case NFA_MOPEN9:
- case NFA_ZOPEN: /* \z( \) Submatch */
+ case NFA_ZOPEN: // \z( \) Submatch
case NFA_ZOPEN1:
case NFA_ZOPEN2:
case NFA_ZOPEN3:
@@ -3491,20 +4156,32 @@ static nfa_state_T *post2nfa(int *postfix, int *end, int nfa_calc_size)
mopen = *p;
switch (*p) {
- case NFA_NOPEN: mclose = NFA_NCLOSE; break;
- case NFA_ZOPEN: mclose = NFA_ZCLOSE; break;
- case NFA_ZOPEN1: mclose = NFA_ZCLOSE1; break;
- case NFA_ZOPEN2: mclose = NFA_ZCLOSE2; break;
- case NFA_ZOPEN3: mclose = NFA_ZCLOSE3; break;
- case NFA_ZOPEN4: mclose = NFA_ZCLOSE4; break;
- case NFA_ZOPEN5: mclose = NFA_ZCLOSE5; break;
- case NFA_ZOPEN6: mclose = NFA_ZCLOSE6; break;
- case NFA_ZOPEN7: mclose = NFA_ZCLOSE7; break;
- case NFA_ZOPEN8: mclose = NFA_ZCLOSE8; break;
- case NFA_ZOPEN9: mclose = NFA_ZCLOSE9; break;
- case NFA_COMPOSING: mclose = NFA_END_COMPOSING; break;
+ case NFA_NOPEN:
+ mclose = NFA_NCLOSE; break;
+ case NFA_ZOPEN:
+ mclose = NFA_ZCLOSE; break;
+ case NFA_ZOPEN1:
+ mclose = NFA_ZCLOSE1; break;
+ case NFA_ZOPEN2:
+ mclose = NFA_ZCLOSE2; break;
+ case NFA_ZOPEN3:
+ mclose = NFA_ZCLOSE3; break;
+ case NFA_ZOPEN4:
+ mclose = NFA_ZCLOSE4; break;
+ case NFA_ZOPEN5:
+ mclose = NFA_ZCLOSE5; break;
+ case NFA_ZOPEN6:
+ mclose = NFA_ZCLOSE6; break;
+ case NFA_ZOPEN7:
+ mclose = NFA_ZCLOSE7; break;
+ case NFA_ZOPEN8:
+ mclose = NFA_ZCLOSE8; break;
+ case NFA_ZOPEN9:
+ mclose = NFA_ZCLOSE9; break;
+ case NFA_COMPOSING:
+ mclose = NFA_END_COMPOSING; break;
default:
- /* NFA_MOPEN, NFA_MOPEN1 .. NFA_MOPEN9 */
+ // NFA_MOPEN, NFA_MOPEN1 .. NFA_MOPEN9
mclose = *p + NSUBEXP;
break;
}
@@ -3515,11 +4192,13 @@ static nfa_state_T *post2nfa(int *postfix, int *end, int nfa_calc_size)
// empty groups of parenthesis, and empty mbyte chars
if (stackp == stack) {
s = alloc_state(mopen, NULL, NULL);
- if (s == NULL)
+ if (s == NULL) {
goto theend;
+ }
s1 = alloc_state(mclose, NULL, NULL);
- if (s1 == NULL)
+ if (s1 == NULL) {
goto theend;
+ }
patch(list1(&s->out), s1);
PUSH(frag(s, list1(&s1->out)));
break;
@@ -3528,18 +4207,21 @@ static nfa_state_T *post2nfa(int *postfix, int *end, int nfa_calc_size)
// At least one node was emitted before NFA_MOPEN, so
// at least one node will be between NFA_MOPEN and NFA_MCLOSE
e = POP();
- s = alloc_state(mopen, e.start, NULL); /* `(' */
- if (s == NULL)
+ s = alloc_state(mopen, e.start, NULL); // `('
+ if (s == NULL) {
goto theend;
+ }
- s1 = alloc_state(mclose, NULL, NULL); /* `)' */
- if (s1 == NULL)
+ s1 = alloc_state(mclose, NULL, NULL); // `)'
+ if (s1 == NULL) {
goto theend;
+ }
patch(e.out, s1);
- if (mopen == NFA_COMPOSING)
- /* COMPOSING->out1 = END_COMPOSING */
+ if (mopen == NFA_COMPOSING) {
+ // COMPOSING->out1 = END_COMPOSING
patch(list1(&s->out1), s1);
+ }
PUSH(frag(s, list1(&s1->out)));
break;
@@ -3567,11 +4249,13 @@ static nfa_state_T *post2nfa(int *postfix, int *end, int nfa_calc_size)
break;
}
s = alloc_state(*p, NULL, NULL);
- if (s == NULL)
+ if (s == NULL) {
goto theend;
+ }
s1 = alloc_state(NFA_SKIP, NULL, NULL);
- if (s1 == NULL)
+ if (s1 == NULL) {
goto theend;
+ }
patch(list1(&s->out), s1);
PUSH(frag(s, list1(&s1->out)));
break;
@@ -3587,17 +4271,17 @@ static nfa_state_T *post2nfa(int *postfix, int *end, int nfa_calc_size)
case NFA_COL_LT:
case NFA_MARK:
case NFA_MARK_GT:
- case NFA_MARK_LT:
- {
- int n = *++p; /* lnum, col or mark name */
+ case NFA_MARK_LT: {
+ int n = *++p; // lnum, col or mark name
if (nfa_calc_size == true) {
nstate += 1;
break;
}
s = alloc_state(p[-1], NULL, NULL);
- if (s == NULL)
+ if (s == NULL) {
goto theend;
+ }
s->val = n;
PUSH(frag(s, list1(&s->out)));
break;
@@ -3612,18 +4296,17 @@ static nfa_state_T *post2nfa(int *postfix, int *end, int nfa_calc_size)
break;
}
s = alloc_state(*p, NULL, NULL);
- if (s == NULL)
+ if (s == NULL) {
goto theend;
+ }
PUSH(frag(s, list1(&s->out)));
break;
-
- } /* switch(*p) */
-
- } /* for(p = postfix; *p; ++p) */
+ } // switch(*p)
+ } // for(p = postfix; *p; ++p)
if (nfa_calc_size == true) {
nstate++;
- goto theend; /* Return value when counting size is ignored anyway */
+ goto theend; // Return value when counting size is ignored anyway
}
e = POP();
@@ -3639,7 +4322,7 @@ static nfa_state_T *post2nfa(int *postfix, int *end, int nfa_calc_size)
"Not enough space to store the whole NFA "));
}
- matchstate = &state_ptr[istate++]; /* the match state */
+ matchstate = &state_ptr[istate++]; // the match state
matchstate->c = NFA_MATCH;
matchstate->out = matchstate->out1 = NULL;
matchstate->id = 0;
@@ -3702,9 +4385,10 @@ static void nfa_postprocess(nfa_regprog_T *prog)
directly = ch_follows < ch_invisible;
}
}
- if (directly)
- /* switch to the _FIRST state */
- ++prog->state[i].c;
+ if (directly) {
+ // switch to the _FIRST state
+ prog->state[i].c++;
+ }
}
}
}
@@ -3713,11 +4397,11 @@ static void nfa_postprocess(nfa_regprog_T *prog)
// NFA execution code.
/////////////////////////////////////////////////////////////////
-/* Values for done in nfa_pim_T. */
-#define NFA_PIM_UNUSED 0 /* pim not used */
-#define NFA_PIM_TODO 1 /* pim not done yet */
-#define NFA_PIM_MATCH 2 /* pim executed, matches */
-#define NFA_PIM_NOMATCH 3 /* pim executed, no match */
+// Values for done in nfa_pim_T.
+#define NFA_PIM_UNUSED 0 // pim not used
+#define NFA_PIM_TODO 1 // pim not done yet
+#define NFA_PIM_MATCH 2 // pim executed, matches
+#define NFA_PIM_NOMATCH 3 // pim executed, no match
#ifdef REGEXP_DEBUG
@@ -3733,23 +4417,24 @@ static void log_subexpr(regsub_T *sub)
{
int j;
- for (j = 0; j < sub->in_use; j++)
- if (REG_MULTI)
+ for (j = 0; j < sub->in_use; j++) {
+ if (REG_MULTI) {
fprintf(log_fd, "*** group %d, start: c=%d, l=%d, end: c=%d, l=%d\n",
- j,
- sub->list.multi[j].start_col,
- (int)sub->list.multi[j].start_lnum,
- sub->list.multi[j].end_col,
- (int)sub->list.multi[j].end_lnum);
- else {
+ j,
+ sub->list.multi[j].start_col,
+ (int)sub->list.multi[j].start_lnum,
+ sub->list.multi[j].end_col,
+ (int)sub->list.multi[j].end_lnum);
+ } else {
char *s = (char *)sub->list.line[j].start;
char *e = (char *)sub->list.line[j].end;
fprintf(log_fd, "*** group %d, start: \"%s\", end: \"%s\"\n",
- j,
- s == NULL ? "NULL" : s,
- e == NULL ? "NULL" : e);
+ j,
+ s == NULL ? "NULL" : s,
+ e == NULL ? "NULL" : e);
}
+ }
}
static char *pim_info(const nfa_pim_T *pim)
@@ -3806,15 +4491,16 @@ static void copy_sub(regsub_T *to, regsub_T *from)
{
to->in_use = from->in_use;
if (from->in_use > 0) {
- /* Copy the match start and end positions. */
- if (REG_MULTI)
+ // Copy the match start and end positions.
+ if (REG_MULTI) {
memmove(&to->list.multi[0],
- &from->list.multi[0],
- sizeof(struct multipos) * from->in_use);
- else
+ &from->list.multi[0],
+ sizeof(struct multipos) * from->in_use);
+ } else {
memmove(&to->list.line[0],
- &from->list.line[0],
- sizeof(struct linepos) * from->in_use);
+ &from->list.line[0],
+ sizeof(struct linepos) * from->in_use);
+ }
}
}
@@ -3823,18 +4509,20 @@ static void copy_sub(regsub_T *to, regsub_T *from)
*/
static void copy_sub_off(regsub_T *to, regsub_T *from)
{
- if (to->in_use < from->in_use)
+ if (to->in_use < from->in_use) {
to->in_use = from->in_use;
+ }
if (from->in_use > 1) {
- /* Copy the match start and end positions. */
- if (REG_MULTI)
+ // Copy the match start and end positions.
+ if (REG_MULTI) {
memmove(&to->list.multi[1],
- &from->list.multi[1],
- sizeof(struct multipos) * (from->in_use - 1));
- else
+ &from->list.multi[1],
+ sizeof(struct multipos) * (from->in_use - 1));
+ } else {
memmove(&to->list.line[1],
- &from->list.line[1],
- sizeof(struct linepos) * (from->in_use - 1));
+ &from->list.line[1],
+ sizeof(struct linepos) * (from->in_use - 1));
+ }
}
}
@@ -3845,13 +4533,14 @@ static void copy_ze_off(regsub_T *to, regsub_T *from)
{
if (rex.nfa_has_zend) {
if (REG_MULTI) {
- if (from->list.multi[0].end_lnum >= 0){
+ if (from->list.multi[0].end_lnum >= 0) {
to->list.multi[0].end_lnum = from->list.multi[0].end_lnum;
to->list.multi[0].end_col = from->list.multi[0].end_col;
}
} else {
- if (from->list.line[0].end != NULL)
+ if (from->list.line[0].end != NULL) {
to->list.line[0].end = from->list.line[0].end;
+ }
}
}
}
@@ -3864,8 +4553,8 @@ static bool sub_equal(regsub_T *sub1, regsub_T *sub2)
int todo;
linenr_T s1;
linenr_T s2;
- char_u *sp1;
- char_u *sp2;
+ char_u *sp1;
+ char_u *sp2;
todo = sub1->in_use > sub2->in_use ? sub1->in_use : sub2->in_use;
if (REG_MULTI) {
@@ -3944,11 +4633,8 @@ static bool sub_equal(regsub_T *sub1, regsub_T *sub2)
}
#ifdef REGEXP_DEBUG
-static void report_state(char *action,
- regsub_T *sub,
- nfa_state_T *state,
- int lid,
- nfa_pim_T *pim) {
+static void report_state(char *action, regsub_T *sub, nfa_state_T *state, int lid, nfa_pim_T *pim)
+{
int col;
if (sub->in_use <= 0) {
@@ -3966,14 +4652,14 @@ static void report_state(char *action,
#endif
-// Return true if the same state is already in list "l" with the same
-// positions as "subs".
-static bool has_state_with_pos(
- nfa_list_T *l, // runtime state list
- nfa_state_T *state, // state to update
- regsubs_T *subs, // pointers to subexpressions
- nfa_pim_T *pim // postponed match or NULL
-)
+/// @param l runtime state list
+/// @param state state to update
+/// @param subs pointers to subexpressions
+/// @param pim postponed match or NULL
+///
+/// @return true if the same state is already in list "l" with the same
+/// positions as "subs".
+static bool has_state_with_pos(nfa_list_T *l, nfa_state_T *state, regsubs_T *subs, nfa_pim_T *pim)
FUNC_ATTR_NONNULL_ARG(1, 2, 3)
{
for (int i = 0; i < l->n; i++) {
@@ -4048,7 +4734,7 @@ static bool match_follows(const nfa_state_T *startstate, int depth)
case NFA_START_INVISIBLE_BEFORE_NEG:
case NFA_START_INVISIBLE_BEFORE_NEG_FIRST:
case NFA_COMPOSING:
- /* skip ahead to next state */
+ // skip ahead to next state
state = state->out1->out;
continue;
@@ -4105,12 +4791,12 @@ static bool match_follows(const nfa_state_T *startstate, int depth)
}
-// Return true if "state" is already in list "l".
-static bool state_in_list(
- nfa_list_T *l, // runtime state list
- nfa_state_T *state, // state to update
- regsubs_T *subs // pointers to subexpressions
-)
+/// @param l runtime state list
+/// @param state state to update
+/// @param subs pointers to subexpressions
+///
+/// @return true if "state" is already in list "l".
+static bool state_in_list(nfa_list_T *l, nfa_state_T *state, regsubs_T *subs)
FUNC_ATTR_NONNULL_ALL
{
if (state->lastlist[nfa_ll_index] == l->id) {
@@ -4124,15 +4810,18 @@ static bool state_in_list(
// Offset used for "off" by addstate_here().
#define ADDSTATE_HERE_OFFSET 10
-// Add "state" and possibly what follows to state list ".".
-// Returns "subs_arg", possibly copied into temp_subs.
-// Returns NULL when recursiveness is too deep.
-static regsubs_T *addstate(
- nfa_list_T *l, // runtime state list
- nfa_state_T *state, // state to update
- regsubs_T *subs_arg, // pointers to subexpressions
- nfa_pim_T *pim, // postponed look-behind match
- int off_arg) // byte offset, when -1 go to next line
+/// Add "state" and possibly what follows to state list ".".
+///
+/// @param l runtime state list
+/// @param state state to update
+/// @param subs_arg pointers to subexpressions
+/// @param pim postponed look-behind match
+/// @param off_arg byte offset, when -1 go to next line
+///
+/// @return "subs_arg", possibly copied into temp_subs.
+/// NULL when recursiveness is too deep.
+static regsubs_T *addstate(nfa_list_T *l, nfa_state_T *state, regsubs_T *subs_arg, nfa_pim_T *pim,
+ int off_arg)
FUNC_ATTR_NONNULL_ARG(1, 2) FUNC_ATTR_WARN_UNUSED_RESULT
{
int subidx;
@@ -4141,13 +4830,13 @@ static regsubs_T *addstate(
int listindex = 0;
int k;
int found = false;
- nfa_thread_T *thread;
- struct multipos save_multipos;
+ nfa_thread_T *thread;
+ struct multipos save_multipos;
int save_in_use;
- char_u *save_ptr;
+ char_u *save_ptr;
int i;
- regsub_T *sub;
- regsubs_T *subs = subs_arg;
+ regsub_T *sub;
+ regsubs_T *subs = subs_arg;
static regsubs_T temp_subs;
#ifdef REGEXP_DEBUG
int did_print = false;
@@ -4259,12 +4948,13 @@ static regsubs_T *addstate(
skip_add:
#ifdef REGEXP_DEBUG
nfa_set_code(state->c);
- fprintf(log_fd, "> Not adding state %d to list %d. char %d: %s pim: %s has_pim: %d found: %d\n",
+ fprintf(log_fd,
+ "> Not adding state %d to list %d. char %d: %s pim: %s has_pim: %d found: %d\n",
abs(state->id), l->id, state->c, code,
pim == NULL ? "NULL" : "yes", l->has_pim, found);
#endif
- depth--;
- return subs;
+ depth--;
+ return subs;
}
}
@@ -4301,13 +4991,13 @@ skip_add:
l->len = newlen;
}
- /* add the state to the list */
+ // add the state to the list
state->lastlist[nfa_ll_index] = l->id;
thread = &l->t[l->n++];
thread->state = state;
- if (pim == NULL)
+ if (pim == NULL) {
thread->pim.result = NFA_PIM_UNUSED;
- else {
+ } else {
copy_pim(&thread->pim, pim);
l->has_pim = true;
}
@@ -4322,15 +5012,16 @@ skip_add:
}
#ifdef REGEXP_DEBUG
- if (!did_print)
+ if (!did_print) {
report_state("Processing", &subs->norm, state, l->id, pim);
+ }
#endif
switch (state->c) {
case NFA_MATCH:
break;
case NFA_SPLIT:
- /* order matters here */
+ // order matters here
subs = addstate(l, state->out, subs, pim, off_arg);
subs = addstate(l, state->out1, subs, pim, off_arg);
break;
@@ -4373,7 +5064,7 @@ skip_add:
sub = &subs->norm;
}
- /* avoid compiler warnings */
+ // avoid compiler warnings
save_ptr = NULL;
memset(&save_multipos, 0, sizeof(save_multipos));
@@ -4429,11 +5120,12 @@ skip_add:
if (save_in_use == -1) {
if (REG_MULTI) {
sub->list.multi[subidx] = save_multipos;
- }
- else
+ } else {
sub->list.line[subidx].start = save_ptr;
- } else
+ }
+ } else {
sub->in_use = save_in_use;
+ }
break;
case NFA_MCLOSE:
@@ -4480,8 +5172,9 @@ skip_add:
// We don't fill in gaps here, there must have been an MOPEN that
// has done that.
save_in_use = sub->in_use;
- if (sub->in_use <= subidx)
+ if (sub->in_use <= subidx) {
sub->in_use = subidx + 1;
+ }
if (REG_MULTI) {
save_multipos = sub->list.multi[subidx];
if (off == -1) {
@@ -4492,7 +5185,7 @@ skip_add:
sub->list.multi[subidx].end_col =
(colnr_T)(rex.input - rex.line + off);
}
- /* avoid compiler warnings */
+ // avoid compiler warnings
save_ptr = NULL;
} else {
save_ptr = sub->list.line[subidx].end;
@@ -4514,9 +5207,9 @@ skip_add:
if (REG_MULTI) {
sub->list.multi[subidx] = save_multipos;
- }
- else
+ } else {
sub->list.line[subidx].end = save_ptr;
+ }
sub->in_use = save_in_use;
break;
}
@@ -4524,19 +5217,17 @@ skip_add:
return subs;
}
-/*
- * Like addstate(), but the new state(s) are put at position "*ip".
- * Used for zero-width matches, next state to use is the added one.
- * This makes sure the order of states to be tried does not change, which
- * matters for alternatives.
- */
-static regsubs_T *addstate_here(
- nfa_list_T *l, // runtime state list
- nfa_state_T *state, // state to update
- regsubs_T *subs, // pointers to subexpressions
- nfa_pim_T *pim, // postponed look-behind match
- int *ip
-)
+/// Like addstate(), but the new state(s) are put at position "*ip".
+/// Used for zero-width matches, next state to use is the added one.
+/// This makes sure the order of states to be tried does not change, which
+/// matters for alternatives.
+///
+/// @param l runtime state list
+/// @param state state to update
+/// @param subs pointers to subexpressions
+/// @param pim postponed look-behind match
+static regsubs_T *addstate_here(nfa_list_T *l, nfa_state_T *state, regsubs_T *subs, nfa_pim_T *pim,
+ int *ip)
FUNC_ATTR_NONNULL_ARG(1, 2, 5) FUNC_ATTR_WARN_UNUSED_RESULT
{
int tlen = l->n;
@@ -4578,25 +5269,25 @@ static regsubs_T *addstate_here(
nfa_thread_T *const newl = xmalloc(newsize);
l->len = newlen;
memmove(&(newl[0]),
- &(l->t[0]),
- sizeof(nfa_thread_T) * listidx);
+ &(l->t[0]),
+ sizeof(nfa_thread_T) * listidx);
memmove(&(newl[listidx]),
- &(l->t[l->n - count]),
- sizeof(nfa_thread_T) * count);
+ &(l->t[l->n - count]),
+ sizeof(nfa_thread_T) * count);
memmove(&(newl[listidx + count]),
- &(l->t[listidx + 1]),
- sizeof(nfa_thread_T) * (l->n - count - listidx - 1));
+ &(l->t[listidx + 1]),
+ sizeof(nfa_thread_T) * (l->n - count - listidx - 1));
xfree(l->t);
l->t = newl;
} else {
// make space for new states, then move them from the
// end to the current position
memmove(&(l->t[listidx + count]),
- &(l->t[listidx + 1]),
- sizeof(nfa_thread_T) * (l->n - listidx - 1));
+ &(l->t[listidx + 1]),
+ sizeof(nfa_thread_T) * (l->n - listidx - 1));
memmove(&(l->t[listidx]),
- &(l->t[l->n - 1]),
- sizeof(nfa_thread_T) * count);
+ &(l->t[l->n - 1]),
+ sizeof(nfa_thread_T) * count);
}
}
--l->n;
@@ -4622,8 +5313,9 @@ static int check_char_class(int class, int c)
}
break;
case NFA_CLASS_BLANK:
- if (c == ' ' || c == '\t')
+ if (c == ' ' || c == '\t') {
return OK;
+ }
break;
case NFA_CLASS_CNTRL:
if (c >= 1 && c <= 127 && iscntrl(c)) {
@@ -4631,8 +5323,9 @@ static int check_char_class(int class, int c)
}
break;
case NFA_CLASS_DIGIT:
- if (ascii_isdigit(c))
+ if (ascii_isdigit(c)) {
return OK;
+ }
break;
case NFA_CLASS_GRAPH:
if (c >= 1 && c <= 127 && isgraph(c)) {
@@ -4645,8 +5338,9 @@ static int check_char_class(int class, int c)
}
break;
case NFA_CLASS_PRINT:
- if (vim_isprintc(c))
+ if (vim_isprintc(c)) {
return OK;
+ }
break;
case NFA_CLASS_PUNCT:
if (c >= 1 && c < 128 && ispunct(c)) {
@@ -4654,8 +5348,9 @@ static int check_char_class(int class, int c)
}
break;
case NFA_CLASS_SPACE:
- if ((c >= 9 && c <= 13) || (c == ' '))
+ if ((c >= 9 && c <= 13) || (c == ' ')) {
return OK;
+ }
break;
case NFA_CLASS_UPPER:
if (mb_isupper(c)) {
@@ -4663,20 +5358,24 @@ static int check_char_class(int class, int c)
}
break;
case NFA_CLASS_XDIGIT:
- if (ascii_isxdigit(c))
+ if (ascii_isxdigit(c)) {
return OK;
+ }
break;
case NFA_CLASS_TAB:
- if (c == '\t')
+ if (c == '\t') {
return OK;
+ }
break;
case NFA_CLASS_RETURN:
- if (c == '\r')
+ if (c == '\r') {
return OK;
+ }
break;
case NFA_CLASS_BACKSPACE:
- if (c == '\b')
+ if (c == '\b') {
return OK;
+ }
break;
case NFA_CLASS_ESCAPE:
if (c == ESC) {
@@ -4707,30 +5406,28 @@ static int check_char_class(int class, int c)
return FAIL;
}
-/*
- * Check for a match with subexpression "subidx".
- * Return true if it matches.
- */
-static int
-match_backref (
- regsub_T *sub, /* pointers to subexpressions */
- int subidx,
- int *bytelen /* out: length of match in bytes */
-)
+/// Check for a match with subexpression "subidx".
+///
+/// @param sub pointers to subexpressions
+/// @param bytelen out: length of match in bytes
+///
+/// @return true if it matches.
+static int match_backref(regsub_T *sub, int subidx, int *bytelen)
{
int len;
if (sub->in_use <= subidx) {
retempty:
- /* backref was not set, match an empty string */
+ // backref was not set, match an empty string
*bytelen = 0;
return true;
}
if (REG_MULTI) {
if (sub->list.multi[subidx].start_lnum < 0
- || sub->list.multi[subidx].end_lnum < 0)
+ || sub->list.multi[subidx].end_lnum < 0) {
goto retempty;
+ }
if (sub->list.multi[subidx].start_lnum == rex.lnum
&& sub->list.multi[subidx].end_lnum == rex.lnum) {
len = sub->list.multi[subidx].end_col
@@ -4751,8 +5448,9 @@ retempty:
}
} else {
if (sub->list.line[subidx].start == NULL
- || sub->list.line[subidx].end == NULL)
+ || sub->list.line[subidx].end == NULL) {
goto retempty;
+ }
len = (int)(sub->list.line[subidx].end - sub->list.line[subidx].start);
if (cstrncmp(sub->list.line[subidx].start, rex.input, &len) == 0) {
*bytelen = len;
@@ -4763,22 +5461,18 @@ retempty:
}
-
-/*
- * Check for a match with \z subexpression "subidx".
- * Return true if it matches.
- */
-static int
-match_zref (
- int subidx,
- int *bytelen /* out: length of match in bytes */
-)
+/// Check for a match with \z subexpression "subidx".
+///
+/// @param bytelen out: length of match in bytes
+///
+/// @return true if it matches.
+static int match_zref(int subidx, int *bytelen)
{
int len;
cleanup_zsubexpr();
if (re_extmatch_in == NULL || re_extmatch_in->matches[subidx] == NULL) {
- /* backref was not set, match an empty string */
+ // backref was not set, match an empty string
*bytelen = 0;
return true;
}
@@ -4799,11 +5493,11 @@ match_zref (
static void nfa_save_listids(nfa_regprog_T *prog, int *list)
{
int i;
- nfa_state_T *p;
+ nfa_state_T *p;
- /* Order in the list is reverse, it's a bit faster that way. */
+ // Order in the list is reverse, it's a bit faster that way.
p = &prog->state[0];
- for (i = prog->nstate; --i >= 0; ) {
+ for (i = prog->nstate; --i >= 0;) {
list[i] = p->lastlist[1];
p->lastlist[1] = 0;
++p;
@@ -4816,10 +5510,10 @@ static void nfa_save_listids(nfa_regprog_T *prog, int *list)
static void nfa_restore_listids(nfa_regprog_T *prog, int *list)
{
int i;
- nfa_state_T *p;
+ nfa_state_T *p;
p = &prog->state[0];
- for (i = prog->nstate; --i >= 0; ) {
+ for (i = prog->nstate; --i >= 0;) {
p->lastlist[1] = list[i];
++p;
}
@@ -4827,8 +5521,12 @@ static void nfa_restore_listids(nfa_regprog_T *prog, int *list)
static bool nfa_re_num_cmp(uintmax_t val, int op, uintmax_t pos)
{
- if (op == 1) return pos > val;
- if (op == 2) return pos < val;
+ if (op == 1) {
+ return pos > val;
+ }
+ if (op == 2) {
+ return pos < val;
+ }
return val == pos;
}
@@ -4838,9 +5536,8 @@ static bool nfa_re_num_cmp(uintmax_t val, int op, uintmax_t pos)
* "pim" is NULL or contains info about a Postponed Invisible Match (start
* position).
*/
-static int recursive_regmatch(
- nfa_state_T *state, nfa_pim_T *pim, nfa_regprog_T *prog,
- regsubs_T *submatch, regsubs_T *m, int **listids, int *listids_len)
+static int recursive_regmatch(nfa_state_T *state, nfa_pim_T *pim, nfa_regprog_T *prog,
+ regsubs_T *submatch, regsubs_T *m, int **listids, int *listids_len)
FUNC_ATTR_NONNULL_ARG(1, 3, 5, 6, 7)
{
const int save_reginput_col = (int)(rex.input - rex.line);
@@ -4849,7 +5546,7 @@ static int recursive_regmatch(
const int save_nfa_listid = rex.nfa_listid;
save_se_T *const save_nfa_endp = nfa_endp;
save_se_T endpos;
- save_se_T *endposp = NULL;
+ save_se_T *endposp = NULL;
int need_restore = false;
if (pim != NULL) {
@@ -4919,8 +5616,9 @@ static int recursive_regmatch(
}
#ifdef REGEXP_DEBUG
- if (log_fd != stderr)
+ if (log_fd != stderr) {
fclose(log_fd);
+ }
log_fd = NULL;
#endif
// Have to clear the lastlist field of the NFA nodes, so that
@@ -4998,28 +5696,30 @@ static int failure_chance(nfa_state_T *state, int depth)
int c = state->c;
int l, r;
- /* detect looping */
- if (depth > 4)
+ // detect looping
+ if (depth > 4) {
return 1;
+ }
switch (c) {
case NFA_SPLIT:
- if (state->out->c == NFA_SPLIT || state->out1->c == NFA_SPLIT)
- /* avoid recursive stuff */
+ if (state->out->c == NFA_SPLIT || state->out1->c == NFA_SPLIT) {
+ // avoid recursive stuff
return 1;
- /* two alternatives, use the lowest failure chance */
+ }
+ // two alternatives, use the lowest failure chance
l = failure_chance(state->out, depth + 1);
r = failure_chance(state->out1, depth + 1);
return l < r ? l : r;
case NFA_ANY:
- /* matches anything, unlikely to fail */
+ // matches anything, unlikely to fail
return 1;
case NFA_MATCH:
case NFA_MCLOSE:
case NFA_ANY_COMPOSING:
- /* empty match works always */
+ // empty match works always
return 0;
case NFA_START_INVISIBLE:
@@ -5031,7 +5731,7 @@ static int failure_chance(nfa_state_T *state, int depth)
case NFA_START_INVISIBLE_BEFORE_NEG:
case NFA_START_INVISIBLE_BEFORE_NEG_FIRST:
case NFA_START_PATTERN:
- /* recursive regmatch is expensive, use low failure chance */
+ // recursive regmatch is expensive, use low failure chance
return 5;
case NFA_BOL:
@@ -5106,7 +5806,7 @@ static int failure_chance(nfa_state_T *state, int depth)
case NFA_ZREF7:
case NFA_ZREF8:
case NFA_ZREF9:
- /* backreferences don't match in many places */
+ // backreferences don't match in many places
return 94;
case NFA_LNUM_GT:
@@ -5118,7 +5818,7 @@ static int failure_chance(nfa_state_T *state, int depth)
case NFA_MARK_GT:
case NFA_MARK_LT:
case NFA_VISUAL:
- /* before/after positions don't match very often */
+ // before/after positions don't match very often
return 85;
case NFA_LNUM:
@@ -5128,19 +5828,20 @@ static int failure_chance(nfa_state_T *state, int depth)
case NFA_COL:
case NFA_VCOL:
case NFA_MARK:
- /* specific positions rarely match */
+ // specific positions rarely match
return 98;
case NFA_COMPOSING:
return 95;
default:
- if (c > 0)
- /* character match fails often */
+ if (c > 0) {
+ // character match fails often
return 95;
+ }
}
- /* something else, includes character classes */
+ // something else, includes character classes
return 50;
}
@@ -5236,8 +5937,7 @@ static int nfa_did_time_out(void)
/// When there is a match "submatch" contains the positions.
///
/// Note: Caller must ensure that: start != NULL.
-static int nfa_regmatch(nfa_regprog_T *prog, nfa_state_T *start,
- regsubs_T *submatch, regsubs_T *m)
+static int nfa_regmatch(nfa_regprog_T *prog, nfa_state_T *start, regsubs_T *submatch, regsubs_T *m)
FUNC_ATTR_NONNULL_ARG(1, 2, 4)
{
int result = false;
@@ -5246,9 +5946,9 @@ static int nfa_regmatch(nfa_regprog_T *prog, nfa_state_T *start,
nfa_thread_T *t;
nfa_list_T list[2];
int listidx;
- nfa_list_T *thislist;
- nfa_list_T *nextlist;
- int *listids = NULL;
+ nfa_list_T *thislist;
+ nfa_list_T *nextlist;
+ int *listids = NULL;
int listids_len = 0;
nfa_state_T *add_state;
bool add_here;
@@ -5257,7 +5957,7 @@ static int nfa_regmatch(nfa_regprog_T *prog, nfa_state_T *start,
int toplevel = start->c == NFA_MOPEN;
regsubs_T *r;
#ifdef NFA_REGEXP_DEBUG_LOG
- FILE *debug = fopen(NFA_REGEXP_DEBUG_LOG, "a");
+ FILE *debug = fopen(NFA_REGEXP_DEBUG_LOG, "a");
if (debug == NULL) {
semsg("(NFA) COULD NOT OPEN %s!", NFA_REGEXP_DEBUG_LOG);
@@ -5295,7 +5995,7 @@ static int nfa_regmatch(nfa_regprog_T *prog, nfa_state_T *start,
fprintf(log_fd, "**********************************\n");
nfa_set_code(start->c);
fprintf(log_fd, " RUNNING nfa_regmatch() starting with state %d, code %s\n",
- abs(start->id), code);
+ abs(start->id), code);
fprintf(log_fd, "**********************************\n");
} else {
emsg(_(e_log_open_failed));
@@ -5342,7 +6042,7 @@ static int nfa_regmatch(nfa_regprog_T *prog, nfa_state_T *start,
/*
* Run for each character.
*/
- for (;; ) {
+ for (;;) {
int curc = utf_ptr2char((char *)rex.input);
int clen = utfc_ptr2len((char *)rex.input);
if (curc == NUL) {
@@ -5350,7 +6050,7 @@ static int nfa_regmatch(nfa_regprog_T *prog, nfa_state_T *start,
go_to_nextline = false;
}
- /* swap lists */
+ // swap lists
thislist = &list[flag];
nextlist = &list[flag ^= 1];
nextlist->n = 0; // clear nextlist
@@ -5377,8 +6077,9 @@ static int nfa_regmatch(nfa_regprog_T *prog, nfa_state_T *start,
{
int i;
- for (i = 0; i < thislist->n; i++)
+ for (i = 0; i < thislist->n; i++) {
fprintf(log_fd, "%d ", abs(thislist->t[i].state->id));
+ }
}
fprintf(log_fd, "\n");
#endif
@@ -5389,8 +6090,9 @@ static int nfa_regmatch(nfa_regprog_T *prog, nfa_state_T *start,
/*
* If the state lists are empty we can stop.
*/
- if (thislist->n == 0)
+ if (thislist->n == 0) {
break;
+ }
// compute nextlist
for (listidx = 0; listidx < thislist->n; listidx++) {
@@ -5439,7 +6141,6 @@ static int nfa_regmatch(nfa_regprog_T *prog, nfa_state_T *start,
add_count = 0;
switch (t->state->c) {
case NFA_MATCH:
- {
// If the match is not at the start of the line, ends before a
// composing characters and rex.reg_icombine is not set, that
// is not really a match.
@@ -5464,7 +6165,6 @@ static int nfa_regmatch(nfa_regprog_T *prog, nfa_state_T *start,
clen = 0;
}
goto nextchar;
- }
case NFA_END_INVISIBLE:
case NFA_END_INVISIBLE_NEG:
@@ -5530,11 +6230,10 @@ static int nfa_regmatch(nfa_regprog_T *prog, nfa_state_T *start,
case NFA_START_INVISIBLE_BEFORE_FIRST:
case NFA_START_INVISIBLE_BEFORE_NEG:
case NFA_START_INVISIBLE_BEFORE_NEG_FIRST:
- {
#ifdef REGEXP_DEBUG
fprintf(log_fd, "Failure chance invisible: %d, what follows: %d\n",
- failure_chance(t->state->out, 0),
- failure_chance(t->state->out1->out, 0));
+ failure_chance(t->state->out, 0),
+ failure_chance(t->state->out1->out, 0));
#endif
// Do it directly if there already is a PIM or when
// nfa_postprocess() detected it will work better.
@@ -5610,11 +6309,9 @@ static int nfa_regmatch(nfa_regprog_T *prog, nfa_state_T *start,
goto theend;
}
}
- }
- break;
+ break;
- case NFA_START_PATTERN:
- {
+ case NFA_START_PATTERN: {
nfa_state_T *skip = NULL;
#ifdef REGEXP_DEBUG
int skip_lid = 0;
@@ -5628,13 +6325,13 @@ static int nfa_regmatch(nfa_regprog_T *prog, nfa_state_T *start,
skip_lid = nextlist->id;
#endif
} else if (state_in_list(nextlist,
- t->state->out1->out->out, &t->subs)) {
+ t->state->out1->out->out, &t->subs)) {
skip = t->state->out1->out->out;
#ifdef REGEXP_DEBUG
skip_lid = nextlist->id;
#endif
} else if (state_in_list(thislist,
- t->state->out1->out->out, &t->subs)) {
+ t->state->out1->out->out, &t->subs)) {
skip = t->state->out1->out->out;
#ifdef REGEXP_DEBUG
skip_lid = thislist->id;
@@ -5643,10 +6340,9 @@ static int nfa_regmatch(nfa_regprog_T *prog, nfa_state_T *start,
if (skip != NULL) {
#ifdef REGEXP_DEBUG
nfa_set_code(skip->c);
- fprintf(
- log_fd,
- "> Not trying to match pattern, output state %d is already in list %d. char %d: %s\n",
- abs(skip->id), skip_lid, skip->c, code);
+ fprintf(log_fd,
+ "> Not trying to match pattern, output state %d is already in list %d. char %d: %s\n", // NOLINT(whitespace/line_length)
+ abs(skip->id), skip_lid, skip->c, code);
#endif
break;
}
@@ -5783,8 +6479,7 @@ static int nfa_regmatch(nfa_regprog_T *prog, nfa_state_T *start,
}
break;
- case NFA_COMPOSING:
- {
+ case NFA_COMPOSING: {
int mc = curc;
int len = 0;
nfa_state_T *end;
@@ -5835,17 +6530,20 @@ static int nfa_regmatch(nfa_regprog_T *prog, nfa_state_T *start,
// composing chars are matched.
result = OK;
while (sta->c != NFA_END_COMPOSING) {
- for (j = 0; j < ccount; ++j)
- if (cchars[j] == sta->c)
+ for (j = 0; j < ccount; j++) {
+ if (cchars[j] == sta->c) {
break;
+ }
+ }
if (j == ccount) {
result = FAIL;
break;
}
sta = sta->out;
}
- } else
+ } else {
result = FAIL;
+ }
end = t->state->out1; // NFA_END_COMPOSING
ADD_STATE_IF_MATCH(end);
@@ -5868,11 +6566,10 @@ static int nfa_regmatch(nfa_regprog_T *prog, nfa_state_T *start,
break;
case NFA_START_COLL:
- case NFA_START_NEG_COLL:
- {
+ case NFA_START_NEG_COLL: {
// What follows is a list of characters, until NFA_END_COLL.
// One of them must match or none of them must match.
- nfa_state_T *state;
+ nfa_state_T *state;
int result_if_matched;
int c1, c2;
@@ -5884,7 +6581,7 @@ static int nfa_regmatch(nfa_regprog_T *prog, nfa_state_T *start,
state = t->state->out;
result_if_matched = (t->state->c == NFA_START_COLL);
- for (;; ) {
+ for (;;) {
if (state->c == NFA_END_COLL) {
result = !result_if_matched;
break;
@@ -5895,7 +6592,7 @@ static int nfa_regmatch(nfa_regprog_T *prog, nfa_state_T *start,
c2 = state->val;
#ifdef REGEXP_DEBUG
fprintf(log_fd, "NFA_RANGE_MIN curc=%d c1=%d c2=%d\n",
- curc, c1, c2);
+ curc, c1, c2);
#endif
if (curc >= c1 && curc <= c2) {
result = result_if_matched;
@@ -6210,45 +6907,43 @@ static int nfa_regmatch(nfa_regprog_T *prog, nfa_state_T *start,
case NFA_VCOL:
case NFA_VCOL_GT:
- case NFA_VCOL_LT:
- {
- int op = t->state->c - NFA_VCOL;
- colnr_T col = (colnr_T)(rex.input - rex.line);
-
- // Bail out quickly when there can't be a match, avoid the overhead of
- // win_linetabsize() on long lines.
- if (op != 1 && col > t->state->val * MB_MAXBYTES) {
- break;
- }
+ case NFA_VCOL_LT: {
+ int op = t->state->c - NFA_VCOL;
+ colnr_T col = (colnr_T)(rex.input - rex.line);
- result = false;
- win_T *wp = rex.reg_win == NULL ? curwin : rex.reg_win;
- if (op == 1 && col - 1 > t->state->val && col > 100) {
- long ts = wp->w_buffer->b_p_ts;
-
- // Guess that a character won't use more columns than 'tabstop',
- // with a minimum of 4.
- if (ts < 4) {
- ts = 4;
- }
- result = col > t->state->val * ts;
- }
- if (!result) {
- uintmax_t lts = win_linetabsize(wp, rex.line, col);
- assert(t->state->val >= 0);
- result = nfa_re_num_cmp((uintmax_t)t->state->val, op, lts + 1);
- }
- if (result) {
- add_here = true;
- add_state = t->state->out;
+ // Bail out quickly when there can't be a match, avoid the overhead of
+ // win_linetabsize() on long lines.
+ if (op != 1 && col > t->state->val * MB_MAXBYTES) {
+ break;
+ }
+
+ result = false;
+ win_T *wp = rex.reg_win == NULL ? curwin : rex.reg_win;
+ if (op == 1 && col - 1 > t->state->val && col > 100) {
+ long ts = wp->w_buffer->b_p_ts;
+
+ // Guess that a character won't use more columns than 'tabstop',
+ // with a minimum of 4.
+ if (ts < 4) {
+ ts = 4;
}
+ result = col > t->state->val * ts;
}
- break;
+ if (!result) {
+ uintmax_t lts = win_linetabsize(wp, rex.line, col);
+ assert(t->state->val >= 0);
+ result = nfa_re_num_cmp((uintmax_t)t->state->val, op, lts + 1);
+ }
+ if (result) {
+ add_here = true;
+ add_state = t->state->out;
+ }
+ }
+ break;
case NFA_MARK:
case NFA_MARK_GT:
- case NFA_MARK_LT:
- {
+ case NFA_MARK_LT: {
pos_T *pos;
size_t col = REG_MULTI ? rex.input - rex.line : 0;
@@ -6264,7 +6959,7 @@ static int nfa_regmatch(nfa_regprog_T *prog, nfa_state_T *start,
// exists and mark is set in reg_buf.
if (pos != NULL && pos->lnum > 0) {
const colnr_T pos_col = pos->lnum == rex.lnum + rex.reg_firstlnum
- && pos->col == MAXCOL
+ && pos->col == MAXCOL
? (colnr_T)STRLEN(reg_getline(pos->lnum - rex.reg_firstlnum))
: pos->col;
@@ -6287,8 +6982,8 @@ static int nfa_regmatch(nfa_regprog_T *prog, nfa_state_T *start,
case NFA_CURSOR:
result = rex.reg_win != NULL
- && (rex.lnum + rex.reg_firstlnum == rex.reg_win->w_cursor.lnum)
- && ((colnr_T)(rex.input - rex.line) == rex.reg_win->w_cursor.col);
+ && (rex.lnum + rex.reg_firstlnum == rex.reg_win->w_cursor.lnum)
+ && ((colnr_T)(rex.input - rex.line) == rex.reg_win->w_cursor.col);
if (result) {
add_here = true;
add_state = t->state->out;
@@ -6358,10 +7053,11 @@ static int nfa_regmatch(nfa_regprog_T *prog, nfa_state_T *start,
nfa_pim_T *pim;
nfa_pim_T pim_copy;
- if (t->pim.result == NFA_PIM_UNUSED)
+ if (t->pim.result == NFA_PIM_UNUSED) {
pim = NULL;
- else
+ } else {
pim = &t->pim;
+ }
// Handle the postponed invisible match if the match might end
// without advancing and before the end of the line.
@@ -6394,10 +7090,9 @@ static int nfa_regmatch(nfa_regprog_T *prog, nfa_state_T *start,
result = (pim->result == NFA_PIM_MATCH);
#ifdef REGEXP_DEBUG
fprintf(log_fd, "\n");
- fprintf(
- log_fd,
- "Using previous recursive nfa_regmatch() result, result == %d\n",
- pim->result);
+ fprintf(log_fd,
+ "Using previous recursive nfa_regmatch() result, result == %d\n",
+ pim->result);
fprintf(log_fd, "MATCH = %s\n", result ? "OK" : "false");
fprintf(log_fd, "\n");
#endif
@@ -6500,7 +7195,7 @@ static int nfa_regmatch(nfa_regprog_T *prog, nfa_state_T *start,
|| utf_fold(c) != utf_fold(prog->regstart))) {
#ifdef REGEXP_DEBUG
fprintf(log_fd,
- " Skipping start state, regstart does not match\n");
+ " Skipping start state, regstart does not match\n");
#endif
add = false;
}
@@ -6532,8 +7227,9 @@ static int nfa_regmatch(nfa_regprog_T *prog, nfa_state_T *start,
{
int i;
- for (i = 0; i < thislist->n; i++)
+ for (i = 0; i < thislist->n; i++) {
fprintf(log_fd, "%d ", abs(thislist->t[i].state->id));
+ }
}
fprintf(log_fd, "\n");
#endif
@@ -6565,8 +7261,9 @@ nextchar:
}
#ifdef REGEXP_DEBUG
- if (log_fd != stderr)
+ if (log_fd != stderr) {
fclose(log_fd);
+ }
log_fd = NULL;
#endif
@@ -6583,18 +7280,19 @@ theend:
return nfa_match;
}
-// Try match of "prog" with at rex.line["col"].
-// Returns <= 0 for failure, number of lines contained in the match otherwise.
-static long nfa_regtry(nfa_regprog_T *prog,
- colnr_T col,
- proftime_T *tm, // timeout limit or NULL
- int *timed_out) // flag set on timeout or NULL
+/// Try match of "prog" with at rex.line["col"].
+///
+/// @param tm timeout limit or NULL
+/// @param timed_out flag set on timeout or NULL
+///
+/// @return <= 0 for failure, number of lines contained in the match otherwise.
+static long nfa_regtry(nfa_regprog_T *prog, colnr_T col, proftime_T *tm, int *timed_out)
{
int i;
regsubs_T subs, m;
nfa_state_T *start = prog->start;
#ifdef REGEXP_DEBUG
- FILE *f;
+ FILE *f;
#endif
rex.input = rex.line + col;
@@ -6606,10 +7304,10 @@ static long nfa_regtry(nfa_regprog_T *prog,
f = fopen(NFA_REGEXP_RUN_LOG, "a");
if (f != NULL) {
fprintf(f,
- "\n\n\t=======================================================\n");
-#ifdef REGEXP_DEBUG
+ "\n\n\t=======================================================\n");
+# ifdef REGEXP_DEBUG
fprintf(f, "\tRegexp is \"%s\"\n", nfa_regengine.expr);
-#endif
+# endif
fprintf(f, "\tInput text is \"%s\" \n", rex.input);
fprintf(f, "\t=======================================================\n\n");
nfa_print_state(f, start);
@@ -6668,7 +7366,7 @@ static long nfa_regtry(nfa_regprog_T *prog,
}
}
- /* Package any found \z(...\) matches for export. Default is none. */
+ // Package any found \z(...\) matches for export. Default is none.
unref_extmatch(re_extmatch_out);
re_extmatch_out = NULL;
@@ -6691,9 +7389,10 @@ static long nfa_regtry(nfa_regprog_T *prog,
} else {
struct linepos *lpos = &subs.synt.list.line[i];
- if (lpos->start != NULL && lpos->end != NULL)
+ if (lpos->start != NULL && lpos->end != NULL) {
re_extmatch_out->matches[i] =
vim_strnsave(lpos->start, lpos->end - lpos->start);
+ }
}
}
}
@@ -6711,10 +7410,9 @@ static long nfa_regtry(nfa_regprog_T *prog,
///
/// @return <= 0 if there is no match and number of lines contained in the
/// match otherwise.
-static long nfa_regexec_both(char_u *line, colnr_T startcol,
- proftime_T *tm, int *timed_out)
+static long nfa_regexec_both(char_u *line, colnr_T startcol, proftime_T *tm, int *timed_out)
{
- nfa_regprog_T *prog;
+ nfa_regprog_T *prog;
long retval = 0L;
colnr_T col = startcol;
@@ -6729,7 +7427,7 @@ static long nfa_regexec_both(char_u *line, colnr_T startcol,
rex.reg_endp = rex.reg_match->endp;
}
- /* Be paranoid... */
+ // Be paranoid...
if (prog == NULL || line == NULL) {
iemsg(_(e_null));
goto theend;
@@ -6759,8 +7457,9 @@ static long nfa_regexec_both(char_u *line, colnr_T startcol,
nfa_regengine.expr = prog->pattern;
#endif
- if (prog->reganch && col > 0)
+ if (prog->reganch && col > 0) {
return 0L;
+ }
rex.need_clear_subexpr = true;
// Clear the external match subpointers if necessary.
@@ -6834,11 +7533,12 @@ theend:
*/
static regprog_T *nfa_regcomp(char_u *expr, int re_flags)
{
- nfa_regprog_T *prog = NULL;
- int *postfix;
+ nfa_regprog_T *prog = NULL;
+ int *postfix;
- if (expr == NULL)
+ if (expr == NULL) {
return NULL;
+ }
#ifdef REGEXP_DEBUG
nfa_regengine.expr = expr;
@@ -6881,7 +7581,7 @@ static regprog_T *nfa_regcomp(char_u *expr, int re_flags)
*/
post2nfa(postfix, post_ptr, true);
- /* allocate the regprog with space for the compiled regexp */
+ // allocate the regprog with space for the compiled regexp
size_t prog_size = sizeof(nfa_regprog_T) + sizeof(nfa_state_T) * (nstate - 1);
prog = xmalloc(prog_size);
state_ptr = prog->state;
@@ -6912,7 +7612,7 @@ static regprog_T *nfa_regcomp(char_u *expr, int re_flags)
nfa_postfix_dump(expr, OK);
nfa_dump(prog);
#endif
- /* Remember whether this pattern has any \z specials in it. */
+ // Remember whether this pattern has any \z specials in it.
prog->reghasz = re_has_z;
prog->pattern = vim_strsave(expr);
#ifdef REGEXP_DEBUG
@@ -6946,21 +7646,16 @@ static void nfa_regfree(regprog_T *prog)
}
}
-/*
- * Match a regexp against a string.
- * "rmp->regprog" is a compiled regexp as returned by nfa_regcomp().
- * Uses curbuf for line count and 'iskeyword'.
- * If "line_lbr" is true, consider a "\n" in "line" to be a line break.
- *
- * Returns <= 0 for failure, number of lines contained in the match otherwise.
- */
-static int
-nfa_regexec_nl (
- regmatch_T *rmp,
- char_u *line, /* string to match against */
- colnr_T col, /* column to start looking for match */
- bool line_lbr
-)
+/// Match a regexp against a string.
+/// "rmp->regprog" is a compiled regexp as returned by nfa_regcomp().
+/// Uses curbuf for line count and 'iskeyword'.
+/// If "line_lbr" is true, consider a "\n" in "line" to be a line break.
+///
+/// @param line string to match against
+/// @param col column to start looking for match
+///
+/// @return <= 0 for failure, number of lines contained in the match otherwise.
+static int nfa_regexec_nl(regmatch_T *rmp, char_u *line, colnr_T col, bool line_lbr)
{
rex.reg_match = rmp;
rex.reg_mmatch = NULL;
@@ -7009,8 +7704,7 @@ nfa_regexec_nl (
///
/// @par
/// FIXME if this behavior is not compatible.
-static long nfa_regexec_multi(regmmatch_T *rmp, win_T *win, buf_T *buf,
- linenr_T lnum, colnr_T col,
+static long nfa_regexec_multi(regmmatch_T *rmp, win_T *win, buf_T *buf, linenr_T lnum, colnr_T col,
proftime_T *tm, int *timed_out)
{
rex.reg_match = NULL;
diff --git a/src/nvim/screen.c b/src/nvim/screen.c
index 36e8f11bbb..686516f17b 100644
--- a/src/nvim/screen.c
+++ b/src/nvim/screen.c
@@ -650,7 +650,7 @@ bool conceal_cursor_line(const win_T *wp)
} else {
return false;
}
- return vim_strchr(wp->w_p_cocu, c) != NULL;
+ return vim_strchr((char *)wp->w_p_cocu, c) != NULL;
}
// Check if the cursor line needs to be redrawn because of 'concealcursor'.
@@ -3006,6 +3006,10 @@ static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, bool noc
if (area_attr != 0) {
char_attr = hl_combine_attr(line_attr, area_attr);
+ if (!highlight_match) {
+ // let search highlight show in Visual area if possible
+ char_attr = hl_combine_attr(search_attr, char_attr);
+ }
} else if (search_attr != 0) {
char_attr = hl_combine_attr(line_attr, search_attr);
}
@@ -3668,7 +3672,7 @@ static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, bool noc
if (wp->w_p_cole > 0
&& (wp != curwin || lnum != wp->w_cursor.lnum || conceal_cursor_line(wp))
&& ((syntax_flags & HL_CONCEAL) != 0 || has_match_conc > 0 || decor_conceal > 0)
- && !(lnum_in_visual_area && vim_strchr(wp->w_p_cocu, 'v') == NULL)) {
+ && !(lnum_in_visual_area && vim_strchr((char *)wp->w_p_cocu, 'v') == NULL)) {
char_attr = conceal_attr;
if (((prev_syntax_id != syntax_seqnr && (syntax_flags & HL_CONCEAL) != 0)
|| has_match_conc > 1 || decor_conceal > 1)
@@ -6390,7 +6394,7 @@ void get_trans_bufname(buf_T *buf)
if (buf_spname(buf) != NULL) {
STRLCPY(NameBuff, buf_spname(buf), MAXPATHL);
} else {
- home_replace(buf, buf->b_fname, NameBuff, MAXPATHL, TRUE);
+ home_replace(buf, (char_u *)buf->b_fname, NameBuff, MAXPATHL, true);
}
trans_characters(NameBuff, MAXPATHL);
}
diff --git a/src/nvim/search.c b/src/nvim/search.c
index 9143632c64..11d40c058c 100644
--- a/src/nvim/search.c
+++ b/src/nvim/search.c
@@ -189,7 +189,7 @@ int search_regcomp(char_u *pat, int pat_save, int pat_use, int options, regmmatc
regmatch->rmm_ic = ignorecase(pat);
regmatch->rmm_maxcol = 0;
- regmatch->regprog = vim_regcomp(pat, magic ? RE_MAGIC : 0);
+ regmatch->regprog = vim_regcomp((char *)pat, magic ? RE_MAGIC : 0);
if (regmatch->regprog == NULL) {
return FAIL;
}
@@ -1055,7 +1055,7 @@ int do_search(oparg_T *oap, int dirc, int search_delim, char_u *pat, long count,
* A line offset is not remembered, this is vi compatible.
*/
if (spats[0].off.line && vim_strchr(p_cpo, CPO_LINEOFF) != NULL) {
- spats[0].off.line = FALSE;
+ spats[0].off.line = false;
spats[0].off.off = 0;
}
@@ -1979,7 +1979,7 @@ pos_T *findmatchlimit(oparg_T *oap, int initc, int flags, int64_t maxtravel)
// This is just guessing: when 'rightleft' is set, search for a matching
// paren/brace in the other direction.
- if (curwin->w_p_rl && vim_strchr((char_u *)"()[]{}<>", initc) != NULL) {
+ if (curwin->w_p_rl && vim_strchr("()[]{}<>", initc) != NULL) {
backwards = !backwards;
}
@@ -2092,7 +2092,7 @@ pos_T *findmatchlimit(oparg_T *oap, int initc, int flags, int64_t maxtravel)
} else if (raw_string) {
if (linep[pos.col - 1] == 'R'
&& linep[pos.col] == '"'
- && vim_strchr(linep + pos.col + 1, '(') != NULL) {
+ && vim_strchr((char *)linep + pos.col + 1, '(') != NULL) {
// Possible start of raw string. Now that we have the
// delimiter we can check if it ends before where we
// started searching, or before the previously found
@@ -2273,7 +2273,7 @@ pos_T *findmatchlimit(oparg_T *oap, int initc, int flags, int64_t maxtravel)
* (actually, we skip #\( et al)
*/
if (curbuf->b_p_lisp
- && vim_strchr((char_u *)"(){}[]", c) != NULL
+ && vim_strchr("(){}[]", c) != NULL
&& pos.col > 1
&& check_prevcol(linep, pos.col, '\\', NULL)
&& check_prevcol(linep, pos.col - 1, '#', NULL)) {
@@ -2321,7 +2321,7 @@ int check_linecomment(const char_u *line)
const char_u *p = line; // scan from start
// skip Lispish one-line comments
if (curbuf->b_p_lisp) {
- if (vim_strchr(p, ';') != NULL) { // there may be comments
+ if (vim_strchr((char *)p, ';') != NULL) { // there may be comments
bool in_str = false; // inside of string
while ((p = (char_u *)strpbrk((char *)p, "\";")) != NULL) {
@@ -2346,7 +2346,7 @@ int check_linecomment(const char_u *line)
p = NULL;
}
} else {
- while ((p = vim_strchr(p, '/')) != NULL) {
+ while ((p = (char_u *)vim_strchr((char *)p, '/')) != NULL) {
// Accept a double /, unless it's preceded with * and followed by *,
// because * / / * is an end and start of a C comment.
// Only accept the position if it is not inside a string.
@@ -2507,7 +2507,7 @@ int findsent(Direction dir, long count)
// go back to the previous non-white non-punctuation character
bool found_dot = false;
while (c = gchar_pos(&pos), ascii_iswhite(c)
- || vim_strchr((char_u *)".!?)]\"'", c) != NULL) {
+ || vim_strchr(".!?)]\"'", c) != NULL) {
tpos = pos;
if (decl(&tpos) == -1 || (LINEEMPTY(tpos.lnum) && dir == FORWARD)) {
break;
@@ -2515,11 +2515,11 @@ int findsent(Direction dir, long count)
if (found_dot) {
break;
}
- if (vim_strchr((char_u *)".!?", c) != NULL) {
+ if (vim_strchr(".!?", c) != NULL) {
found_dot = true;
}
- if (vim_strchr((char_u *)")]\"'", c) != NULL
- && vim_strchr((char_u *)".!?)]\"'", gchar_pos(&tpos)) == NULL) {
+ if (vim_strchr(")]\"'", c) != NULL
+ && vim_strchr(".!?)]\"'", gchar_pos(&tpos)) == NULL) {
break;
}
decl(&pos);
@@ -2543,7 +2543,7 @@ int findsent(Direction dir, long count)
if ((c = inc(&tpos)) == -1) {
break;
}
- } while (vim_strchr((char_u *)")]\"'", c = gchar_pos(&tpos))
+ } while (vim_strchr(")]\"'", c = gchar_pos(&tpos))
!= NULL);
if (c == -1 || (!cpo_J && (c == ' ' || c == '\t')) || c == NUL
|| (cpo_J && (c == ' ' && inc(&tpos) >= 0
@@ -3399,7 +3399,7 @@ int current_block(oparg_T *oap, long count, int include, int what, int other)
pos_T start_pos;
pos_T *end_pos;
pos_T old_start, old_end;
- char_u *save_cpo;
+ char *save_cpo;
bool sol = false; // '{' at start of line
old_pos = curwin->w_cursor;
@@ -3434,7 +3434,7 @@ int current_block(oparg_T *oap, long count, int include, int what, int other)
// Ignore quotes here. Keep the "M" flag in 'cpo', as that is what the
// user wants.
save_cpo = p_cpo;
- p_cpo = (char_u *)(vim_strchr(p_cpo, CPO_MATCHBSL) != NULL ? "%M" : "%");
+ p_cpo = vim_strchr(p_cpo, CPO_MATCHBSL) != NULL ? "%M" : "%";
if ((pos = findmatch(NULL, what)) != NULL) {
while (count-- > 0) {
if ((pos = findmatch(NULL, what)) == NULL) {
@@ -3967,7 +3967,7 @@ static int find_next_quote(char_u *line, int col, int quotechar, char_u *escape)
c = line[col];
if (c == NUL) {
return -1;
- } else if (escape != NULL && vim_strchr(escape, c)) {
+ } else if (escape != NULL && vim_strchr((char *)escape, c)) {
col++;
if (line[col] == NUL) {
return -1;
@@ -3996,7 +3996,7 @@ static int find_prev_quote(char_u *line, int col_start, int quotechar, char_u *e
col_start -= utf_head_off(line, line + col_start);
n = 0;
if (escape != NULL) {
- while (col_start - n > 0 && vim_strchr(escape,
+ while (col_start - n > 0 && vim_strchr((char *)escape,
line[col_start - n - 1]) != NULL) {
++n;
}
@@ -5332,7 +5332,7 @@ void find_pattern_in_path(char_u *ptr, Direction dir, size_t len, bool whole, bo
char_u *pat;
char_u *new_fname;
- char_u *curr_fname = curbuf->b_fname;
+ char_u *curr_fname = (char_u *)curbuf->b_fname;
char_u *prev_fname = NULL;
linenr_T lnum;
int depth;
@@ -5372,7 +5372,7 @@ void find_pattern_in_path(char_u *ptr, Direction dir, size_t len, bool whole, bo
sprintf((char *)pat, whole ? "\\<%.*s\\>" : "%.*s", (int)len, ptr);
// ignore case according to p_ic, p_scs and pat
regmatch.rm_ic = ignorecase(pat);
- regmatch.regprog = vim_regcomp(pat, p_magic ? RE_MAGIC : 0);
+ regmatch.regprog = vim_regcomp((char *)pat, p_magic ? RE_MAGIC : 0);
xfree(pat);
if (regmatch.regprog == NULL) {
goto fpip_end;
@@ -5380,7 +5380,7 @@ void find_pattern_in_path(char_u *ptr, Direction dir, size_t len, bool whole, bo
}
inc_opt = (*curbuf->b_p_inc == NUL) ? p_inc : curbuf->b_p_inc;
if (*inc_opt != NUL) {
- incl_regmatch.regprog = vim_regcomp(inc_opt, p_magic ? RE_MAGIC : 0);
+ incl_regmatch.regprog = vim_regcomp((char *)inc_opt, p_magic ? RE_MAGIC : 0);
if (incl_regmatch.regprog == NULL) {
goto fpip_end;
}
@@ -5388,7 +5388,8 @@ void find_pattern_in_path(char_u *ptr, Direction dir, size_t len, bool whole, bo
}
if (type == FIND_DEFINE && (*curbuf->b_p_def != NUL || *p_def != NUL)) {
def_regmatch.regprog = vim_regcomp(*curbuf->b_p_def == NUL
- ? p_def : curbuf->b_p_def, p_magic ? RE_MAGIC : 0);
+ ? (char *)p_def : (char *)curbuf->b_p_def,
+ p_magic ? RE_MAGIC : 0);
if (def_regmatch.regprog == NULL) {
goto fpip_end;
}
@@ -5410,7 +5411,7 @@ void find_pattern_in_path(char_u *ptr, Direction dir, size_t len, bool whole, bo
for (;;) {
if (incl_regmatch.regprog != NULL
&& vim_regexec(&incl_regmatch, line, (colnr_T)0)) {
- char_u *p_fname = (curr_fname == curbuf->b_fname)
+ char_u *p_fname = (curr_fname == (char_u *)curbuf->b_fname)
? curbuf->b_ffname : curr_fname;
if (inc_opt != NULL && strstr((char *)inc_opt, "\\zs") != NULL) {
@@ -5737,7 +5738,8 @@ search_line:
}
const int add_r = ins_compl_add_infercase(aux, i, p_ic,
- curr_fname == curbuf->b_fname ? NULL : curr_fname,
+ curr_fname == (char_u *)curbuf->b_fname
+ ? NULL : curr_fname,
dir, cont_s_ipos);
if (add_r == OK) {
// if dir was BACKWARD then honor it just once
@@ -5865,8 +5867,8 @@ exit_matched:
--old_files;
files[old_files].name = files[depth].name;
files[old_files].matched = files[depth].matched;
- --depth;
- curr_fname = (depth == -1) ? curbuf->b_fname
+ depth--;
+ curr_fname = (depth == -1) ? (char_u *)curbuf->b_fname
: files[depth].name;
if (depth < depth_displayed) {
depth_displayed = depth;
diff --git a/src/nvim/sign.c b/src/nvim/sign.c
index 99a00aefa9..dd6fdf3cd5 100644
--- a/src/nvim/sign.c
+++ b/src/nvim/sign.c
@@ -1815,7 +1815,7 @@ void set_context_in_sign_cmd(expand_T *xp, char_u *arg)
p = skiptowhite(p);
} while (*p != NUL);
- p = vim_strchr(last, '=');
+ p = (char_u *)vim_strchr((char *)last, '=');
// :sign define {name} {args}... {last}=
// | |
diff --git a/src/nvim/spell.c b/src/nvim/spell.c
index b2969c5332..1ba29e3fc1 100644
--- a/src/nvim/spell.c
+++ b/src/nvim/spell.c
@@ -1173,7 +1173,7 @@ static bool match_compoundrule(slang_T *slang, char_u *compflags)
}
// Skip to the next "/", where the next pattern starts.
- p = vim_strchr(p, '/');
+ p = (char_u *)vim_strchr((char *)p, '/');
if (p == NULL) {
break;
}
@@ -1637,7 +1637,7 @@ void spell_cat_line(char_u *buf, char_u *line, int maxlen)
int n;
p = (char_u *)skipwhite((char *)line);
- while (vim_strchr((char_u *)"*#/\"\t", *p) != NULL) {
+ while (vim_strchr("*#/\"\t", *p) != NULL) {
p = (char_u *)skipwhite((char *)p + 1);
}
@@ -1682,8 +1682,8 @@ static void spell_load_lang(char_u *lang)
r = do_in_runtimepath((char *)fname_enc, 0, spell_load_cb, &sl);
if (r == FAIL && *sl.sl_lang != NUL && round == 1
- && apply_autocmds(EVENT_SPELLFILEMISSING, lang,
- curbuf->b_fname, FALSE, curbuf)) {
+ && apply_autocmds(EVENT_SPELLFILEMISSING, (char *)lang,
+ curbuf->b_fname, false, curbuf)) {
continue;
}
break;
@@ -1961,14 +1961,14 @@ int init_syl_tab(slang_T *slang)
int l;
ga_init(&slang->sl_syl_items, sizeof(syl_item_T), 4);
- p = vim_strchr(slang->sl_syllable, '/');
+ p = (char_u *)vim_strchr((char *)slang->sl_syllable, '/');
while (p != NULL) {
*p++ = NUL;
if (*p == NUL) { // trailing slash
break;
}
s = p;
- p = vim_strchr(p, '/');
+ p = (char_u *)vim_strchr((char *)p, '/');
if (p == NULL) {
l = (int)STRLEN(s);
} else {
@@ -2025,7 +2025,7 @@ static int count_syllables(slang_T *slang, const char_u *word)
// No recognized syllable item, at least a syllable char then?
c = utf_ptr2char((char *)p);
len = utfc_ptr2len((char *)p);
- if (vim_strchr(slang->sl_syllable, c) == NULL) {
+ if (vim_strchr((char *)slang->sl_syllable, c) == NULL) {
skip = false; // No, search for next syllable
} else if (!skip) {
++cnt; // Yes, count it
@@ -2105,7 +2105,7 @@ char *did_set_spelllang(win_T *wp)
filename = true;
// Locate a region and remove it from the file name.
- p = vim_strchr((char_u *)path_tail((char *)lang), '_');
+ p = (char_u *)vim_strchr(path_tail((char *)lang), '_');
if (p != NULL && ASCII_ISALPHA(p[1]) && ASCII_ISALPHA(p[2])
&& !ASCII_ISALPHA(p[3])) {
STRLCPY(region_cp, p + 1, 3);
@@ -2248,7 +2248,7 @@ char *did_set_spelllang(win_T *wp)
STRCPY(lang, "internal wordlist");
} else {
STRLCPY(lang, path_tail((char *)spf_name), MAXWLEN + 1);
- p = vim_strchr(lang, '.');
+ p = (char_u *)vim_strchr((char *)lang, '.');
if (p != NULL) {
*p = NUL; // truncate at ".encoding.add"
}
@@ -2686,7 +2686,7 @@ static bool spell_iswordp(const char_u *p, const win_T *wp)
if (c < 256
? wp->w_s->b_spell_ismw[c]
: (wp->w_s->b_spell_ismw_mb != NULL
- && vim_strchr(wp->w_s->b_spell_ismw_mb, c) != NULL)) {
+ && vim_strchr((char *)wp->w_s->b_spell_ismw_mb, c) != NULL)) {
s = p + l;
}
}
@@ -2730,9 +2730,10 @@ static bool spell_iswordp_w(const int *p, const win_T *wp)
{
const int *s;
- if (*p < 256 ? wp->w_s->b_spell_ismw[*p]
- : (wp->w_s->b_spell_ismw_mb != NULL
- && vim_strchr(wp->w_s->b_spell_ismw_mb, *p) != NULL)) {
+ if (*p <
+ 256 ? wp->w_s->b_spell_ismw[*p] : (wp->w_s->b_spell_ismw_mb != NULL
+ && vim_strchr((char *)wp->w_s->b_spell_ismw_mb,
+ *p) != NULL)) {
s = p + 1;
} else {
s = p;
@@ -3413,7 +3414,7 @@ static void spell_suggest_file(suginfo_T *su, char_u *fname)
while (!vim_fgets(line, MAXWLEN * 2, fd) && !got_int) {
line_breakcheck();
- p = vim_strchr(line, '/');
+ p = (char_u *)vim_strchr((char *)line, '/');
if (p == NULL) {
continue; // No Tab found, just skip the line.
}
@@ -6260,7 +6261,7 @@ static void spell_soundfold_wsal(slang_T *slang, char_u *inword, char_u *res)
// replace string
ws = smp[n].sm_to_w;
s = smp[n].sm_rules;
- p0 = (vim_strchr(s, '<') != NULL) ? 1 : 0;
+ p0 = (vim_strchr((char *)s, '<') != NULL) ? 1 : 0;
if (p0 == 1 && z == 0) {
// rule with '<' is used
if (reslen > 0 && ws != NULL && *ws != NUL
diff --git a/src/nvim/spellfile.c b/src/nvim/spellfile.c
index 6f0bd04d39..f8c01bc27f 100644
--- a/src/nvim/spellfile.c
+++ b/src/nvim/spellfile.c
@@ -1100,7 +1100,7 @@ static int read_prefcond_section(FILE *fd, slang_T *lp)
buf[0] = '^'; // always match at one position only
SPELL_READ_NONNUL_BYTES(buf + 1, (size_t)n, fd,; );
buf[n + 1] = NUL;
- lp->sl_prefprog[i] = vim_regcomp((char_u *)buf, RE_MAGIC | RE_STRING);
+ lp->sl_prefprog[i] = vim_regcomp(buf, RE_MAGIC | RE_STRING);
}
}
return 0;
@@ -1202,7 +1202,7 @@ static int read_sal_section(FILE *fd, slang_T *slang)
int i = 0;
for (; i < ccnt; ++i) {
c = getc(fd); // <salfrom>
- if (vim_strchr((char_u *)"0123456789(-<^$", c) != NULL) {
+ if (vim_strchr("0123456789(-<^$", c) != NULL) {
break;
}
*p++ = c;
@@ -1466,7 +1466,7 @@ static int read_compound(FILE *fd, slang_T *slang, int len)
}
// Add all flags to "sl_compallflags".
- if (vim_strchr((char_u *)"?*+[]/", c) == NULL
+ if (vim_strchr("?*+[]/", c) == NULL
&& !byte_in_str(slang->sl_compallflags, c)) {
*ap++ = c;
*ap = NUL;
@@ -1521,7 +1521,7 @@ static int read_compound(FILE *fd, slang_T *slang, int len)
*crp = NUL;
}
- slang->sl_compprog = vim_regcomp(pat, RE_MAGIC + RE_STRING + RE_STRICT);
+ slang->sl_compprog = vim_regcomp((char *)pat, RE_MAGIC + RE_STRING + RE_STRICT);
xfree(pat);
if (slang->sl_compprog == NULL) {
return SP_FORMERROR;
@@ -2461,7 +2461,7 @@ static afffile_T *spell_read_aff(spellinfo_T *spin, char_u *fname)
aff_entry->ae_add = getroom_save(spin, items[3]);
// Recognize flags on the affix: abcd/XYZ
- aff_entry->ae_flags = vim_strchr(aff_entry->ae_add, '/');
+ aff_entry->ae_flags = (char_u *)vim_strchr((char *)aff_entry->ae_add, '/');
if (aff_entry->ae_flags != NULL) {
*aff_entry->ae_flags++ = NUL;
aff_process_flags(aff, aff_entry);
@@ -2484,8 +2484,7 @@ static afffile_T *spell_read_aff(spellinfo_T *spin, char_u *fname)
} else {
sprintf((char *)buf, "%s$", items[4]);
}
- aff_entry->ae_prog = vim_regcomp(buf,
- RE_MAGIC + RE_STRING + RE_STRICT);
+ aff_entry->ae_prog = vim_regcomp((char *)buf, RE_MAGIC + RE_STRING + RE_STRICT);
if (aff_entry->ae_prog == NULL) {
smsg(_("Broken condition in %s line %d: %s"),
fname, lnum, items[4]);
@@ -2533,7 +2532,7 @@ static afffile_T *spell_read_aff(spellinfo_T *spin, char_u *fname)
sprintf((char *)buf, "^%s",
aff_entry->ae_cond);
vim_regfree(aff_entry->ae_prog);
- aff_entry->ae_prog = vim_regcomp(buf, RE_MAGIC + RE_STRING);
+ aff_entry->ae_prog = vim_regcomp((char *)buf, RE_MAGIC + RE_STRING);
}
}
}
@@ -2652,7 +2651,7 @@ static afffile_T *spell_read_aff(spellinfo_T *spin, char_u *fname)
if ((!GA_EMPTY(&spin->si_map)
&& vim_strchr(spin->si_map.ga_data, c)
!= NULL)
- || vim_strchr(p, c) != NULL) {
+ || vim_strchr((char *)p, c) != NULL) {
smsg(_("Duplicate character in MAP in %s line %d"),
fname, lnum);
}
@@ -2924,7 +2923,7 @@ static void process_compflags(spellinfo_T *spin, afffile_T *aff, char_u *compfla
tp = p + STRLEN(p);
for (p = compflags; *p != NUL;) {
- if (vim_strchr((char_u *)"/?*+[]", *p) != NULL) {
+ if (vim_strchr("/?*+[]", *p) != NULL) {
// Copy non-flag characters directly.
*tp++ = *p++;
} else {
@@ -2947,7 +2946,7 @@ static void process_compflags(spellinfo_T *spin, afffile_T *aff, char_u *compfla
do {
check_renumber(spin);
id = spin->si_newcompID--;
- } while (vim_strchr((char_u *)"/?*+[]\\-^", id) != NULL);
+ } while (vim_strchr("/?*+[]\\-^", id) != NULL);
ci->ci_newID = id;
hash_add(&aff->af_comp, ci->ci_key);
}
@@ -2982,7 +2981,7 @@ static bool flag_in_afflist(int flagtype, char_u *afflist, unsigned flag)
switch (flagtype) {
case AFT_CHAR:
- return vim_strchr(afflist, flag) != NULL;
+ return vim_strchr((char *)afflist, flag) != NULL;
case AFT_CAPLONG:
case AFT_LONG:
@@ -3783,7 +3782,7 @@ static int spell_read_wordfile(spellinfo_T *spin, char_u *fname)
regionmask = spin->si_region;
// Check for flags and region after a slash.
- p = vim_strchr(line, '/');
+ p = (char_u *)vim_strchr((char *)line, '/');
if (p != NULL) {
*p++ = NUL;
while (*p != NUL) {
@@ -5338,7 +5337,7 @@ static void mkspell(int fcount, char_u **fnames, bool ascii, bool over_write, bo
if (incount <= 0) {
emsg(_(e_invarg)); // need at least output and input names
- } else if (vim_strchr((char_u *)path_tail((char *)wfname), '_') != NULL) {
+ } else if (vim_strchr(path_tail((char *)wfname), '_') != NULL) {
emsg(_("E751: Output file name must not have region name"));
} else if (incount > MAXREGIONS) {
semsg(_("E754: Only up to %d regions supported"), MAXREGIONS);
@@ -5693,7 +5692,7 @@ static void init_spellfile(void)
// Find the end of the language name. Exclude the region. If there
// is a path separator remember the start of the tail.
for (lend = curwin->w_s->b_p_spl; *lend != NUL
- && vim_strchr((char_u *)",._", *lend) == NULL; ++lend) {
+ && vim_strchr(",._", *lend) == NULL; lend++) {
if (vim_ispathsep(*lend)) {
aspath = true;
lstart = lend + 1;
@@ -5878,9 +5877,9 @@ static void set_map_str(slang_T *lp, char_u *map)
hashitem_T *hi;
b = xmalloc(cl + headcl + 2);
- utf_char2bytes(c, (char *)b);
+ utf_char2bytes(c, b);
b[cl] = NUL;
- utf_char2bytes(headc, (char *)b + cl + 1);
+ utf_char2bytes(headc, b + cl + 1);
b[cl + 1 + headcl] = NUL;
hash = hash_hash((char_u *)b);
hi = hash_lookup(&lp->sl_map_hash, (const char *)b, STRLEN(b), hash);
diff --git a/src/nvim/state.c b/src/nvim/state.c
index d82dc59e75..36789016a9 100644
--- a/src/nvim/state.c
+++ b/src/nvim/state.c
@@ -233,7 +233,7 @@ void may_trigger_modechanged(void)
}
char curr_mode[MODE_MAX_LENGTH];
- char_u pattern_buf[2 * MODE_MAX_LENGTH];
+ char pattern_buf[2 * MODE_MAX_LENGTH];
get_mode(curr_mode);
if (STRCMP(curr_mode, last_mode) == 0) {
@@ -247,7 +247,7 @@ void may_trigger_modechanged(void)
tv_dict_set_keys_readonly(v_event);
// concatenate modes in format "old_mode:new_mode"
- vim_snprintf((char *)pattern_buf, sizeof(pattern_buf), "%s:%s", last_mode, curr_mode);
+ vim_snprintf(pattern_buf, sizeof(pattern_buf), "%s:%s", last_mode, curr_mode);
apply_autocmds(EVENT_MODECHANGED, pattern_buf, NULL, false, curbuf);
STRCPY(last_mode, curr_mode);
diff --git a/src/nvim/strings.c b/src/nvim/strings.c
index 0307cf4696..c0c942ffd2 100644
--- a/src/nvim/strings.c
+++ b/src/nvim/strings.c
@@ -104,8 +104,8 @@ char_u *vim_strsave_escaped_ext(const char_u *string, const char_u *esc_chars, c
p += l - 1;
continue;
}
- if (vim_strchr(esc_chars, *p) != NULL || (bsl && rem_backslash(p))) {
- ++length; // count a backslash
+ if (vim_strchr((char *)esc_chars, *p) != NULL || (bsl && rem_backslash(p))) {
+ length++; // count a backslash
}
++length; // count an ordinary char
}
@@ -120,7 +120,7 @@ char_u *vim_strsave_escaped_ext(const char_u *string, const char_u *esc_chars, c
p += l - 1; // skip multibyte char
continue;
}
- if (vim_strchr(esc_chars, *p) != NULL || (bsl && rem_backslash(p))) {
+ if (vim_strchr((char *)esc_chars, *p) != NULL || (bsl && rem_backslash(p))) {
*p2++ = cc;
}
*p2++ = *p;
@@ -473,18 +473,18 @@ int vim_strnicmp(const char *s1, const char *s2, size_t len)
/// @return Pointer to the first byte of the found character in string or NULL
/// if it was not found or character is invalid. NUL character is never
/// found, use `strlen()` instead.
-char_u *vim_strchr(const char_u *const string, const int c)
+char *vim_strchr(const char *const string, const int c)
FUNC_ATTR_NONNULL_ALL FUNC_ATTR_PURE FUNC_ATTR_WARN_UNUSED_RESULT
{
if (c <= 0) {
return NULL;
} else if (c < 0x80) {
- return (char_u *)strchr((const char *)string, c);
+ return strchr(string, c);
} else {
char u8char[MB_MAXBYTES + 1];
const int len = utf_char2bytes(c, u8char);
u8char[len] = NUL;
- return (char_u *)strstr((const char *)string, u8char);
+ return strstr(string, u8char);
}
}
@@ -637,9 +637,9 @@ static const void *tv_ptr(const typval_T *const tvs, int *const idxp)
STATIC_ASSERT(OFF(v_string) == OFF(v_list)
&& OFF(v_string) == OFF(v_dict)
&& OFF(v_string) == OFF(v_partial)
- && sizeof(tvs[0].vval.v_string) == sizeof(tvs[0].vval.v_list)
- && sizeof(tvs[0].vval.v_string) == sizeof(tvs[0].vval.v_dict)
- && sizeof(tvs[0].vval.v_string) == sizeof(tvs[0].vval.v_partial),
+ && sizeof(tvs[0].vval.v_string) == sizeof(tvs[0].vval.v_list) // -V568
+ && sizeof(tvs[0].vval.v_string) == sizeof(tvs[0].vval.v_dict) // -V568
+ && sizeof(tvs[0].vval.v_string) == sizeof(tvs[0].vval.v_partial), // -V568
"Strings, dictionaries, lists and partials are expected to be pointers, "
"so that all three of them can be accessed via v_string");
#undef OFF
@@ -1313,8 +1313,7 @@ int vim_vsnprintf_typval(char *str, size_t str_m, const char *fmt, va_list ap, t
if (fmt_spec == 'f' || fmt_spec == 'F') {
tp = tmp + str_arg_l - 1;
} else {
- tp = (char *)vim_strchr((char_u *)tmp,
- fmt_spec == 'e' ? 'e' : 'E');
+ tp = vim_strchr(tmp, fmt_spec == 'e' ? 'e' : 'E');
if (tp) {
// remove superfluous '+' and leading zeroes from exponent
if (tp[1] == '+') {
@@ -1343,8 +1342,7 @@ int vim_vsnprintf_typval(char *str, size_t str_m, const char *fmt, va_list ap, t
} else {
// Be consistent: some printf("%e") use 1.0e+12 and some
// 1.0e+012; remove one zero in the last case.
- char *tp = (char *)vim_strchr((char_u *)tmp,
- fmt_spec == 'e' ? 'e' : 'E');
+ char *tp = vim_strchr(tmp, fmt_spec == 'e' ? 'e' : 'E');
if (tp && (tp[1] == '+' || tp[1] == '-') && tp[2] == '0'
&& ascii_isdigit(tp[3]) && ascii_isdigit(tp[4])) {
STRMOVE(tp + 2, tp + 3);
@@ -1480,3 +1478,32 @@ int vim_vsnprintf_typval(char *str, size_t str_m, const char *fmt, va_list ap, t
// written to the buffer if it were large enough.
return (int)str_l;
}
+
+int kv_do_printf(StringBuilder *str, const char *fmt, ...)
+ FUNC_ATTR_PRINTF(2, 3)
+{
+ size_t remaining = str->capacity - str->size;
+
+ va_list ap;
+ va_start(ap, fmt);
+ int printed = vsnprintf(str->items ? str->items + str->size : NULL, remaining, fmt, ap);
+ va_end(ap);
+
+ if (printed < 0) {
+ return -1;
+ }
+
+ // printed string didn't fit, resize and try again
+ if ((size_t)printed >= remaining) {
+ kv_ensure_space(*str, (size_t)printed + 1); // include space for NUL terminator at the end
+ va_start(ap, fmt);
+ printed = vsnprintf(str->items + str->size, str->capacity - str->size, fmt, ap);
+ va_end(ap);
+ if (printed < 0) {
+ return -1;
+ }
+ }
+
+ str->size += (size_t)printed;
+ return printed;
+}
diff --git a/src/nvim/strings.h b/src/nvim/strings.h
index 893b0ea269..0503cecc8a 100644
--- a/src/nvim/strings.h
+++ b/src/nvim/strings.h
@@ -7,6 +7,7 @@
#include "nvim/eval/typval.h"
#include "nvim/types.h"
+#include "nvim/lib/kvec.h"
/// Append string to string and return pointer to the next byte
///
@@ -25,6 +26,8 @@ static inline char *strappend(char *const dst, const char *const src)
return (char *)memmove(dst, src, src_len) + src_len;
}
+typedef kvec_t(char) StringBuilder;
+
#ifdef INCLUDE_GENERATED_DECLARATIONS
# include "strings.h.generated.h"
#endif
diff --git a/src/nvim/syntax.c b/src/nvim/syntax.c
index d82e337aa6..6744e4445c 100644
--- a/src/nvim/syntax.c
+++ b/src/nvim/syntax.c
@@ -3807,7 +3807,7 @@ static void put_pattern(const char *const s, const int c, const synpat_T *const
msg_putchar(c);
// output the pattern, in between a char that is not in the pattern
- for (i = 0; vim_strchr(spp->sp_pattern, sepchars[i]) != NULL;) {
+ for (i = 0; vim_strchr((char *)spp->sp_pattern, sepchars[i]) != NULL;) {
if (sepchars[++i] == NUL) {
i = 0; // no good char found, just use the first one
break;
@@ -4393,7 +4393,7 @@ static void syn_cmd_keyword(exarg_T *eap, int syncing)
// 2: Add an entry for each keyword.
for (kw = keyword_copy; --cnt >= 0; kw += STRLEN(kw) + 1) {
- for (p = vim_strchr(kw, '[');;) {
+ for (p = (char_u *)vim_strchr((char *)kw, '[');;) {
if (p != NULL) {
*p = NUL;
}
@@ -5075,7 +5075,7 @@ static char_u *get_syn_pattern(char_u *arg, synpat_T *ci)
char_u *end;
int *p;
int idx;
- char_u *cpo_save;
+ char *cpo_save;
// need at least three chars
if (arg == NULL || arg[0] == NUL || arg[1] == NUL || arg[2] == NUL) {
@@ -5092,8 +5092,8 @@ static char_u *get_syn_pattern(char_u *arg, synpat_T *ci)
// Make 'cpoptions' empty, to avoid the 'l' flag
cpo_save = p_cpo;
- p_cpo = (char_u *)"";
- ci->sp_prog = vim_regcomp(ci->sp_pattern, RE_MAGIC);
+ p_cpo = "";
+ ci->sp_prog = vim_regcomp((char *)ci->sp_pattern, RE_MAGIC);
p_cpo = cpo_save;
if (ci->sp_prog == NULL) {
@@ -5174,7 +5174,7 @@ static void syn_cmd_sync(exarg_T *eap, int syncing)
int illegal = FALSE;
int finished = FALSE;
long n;
- char_u *cpo_save;
+ char *cpo_save;
if (ends_excmd(*arg_start)) {
syn_cmd_list(eap, TRUE);
@@ -5253,9 +5253,9 @@ static void syn_cmd_sync(exarg_T *eap, int syncing)
// Make 'cpoptions' empty, to avoid the 'l' flag
cpo_save = p_cpo;
- p_cpo = (char_u *)"";
+ p_cpo = "";
curwin->w_s->b_syn_linecont_prog =
- vim_regcomp(curwin->w_s->b_syn_linecont_pat, RE_MAGIC);
+ vim_regcomp((char *)curwin->w_s->b_syn_linecont_pat, RE_MAGIC);
p_cpo = cpo_save;
syn_clear_time(&curwin->w_s->b_syn_linecont_time);
@@ -5333,7 +5333,7 @@ static int get_id_list(char_u **const arg, const int keylen, int16_t **const lis
int count = 0;
do {
for (end = p; *end && !ascii_iswhite(*end) && *end != ','; end++) {}
- char_u *const name = xmalloc(end - p + 3); // leave room for "^$"
+ char *const name = xmalloc(end - p + 3); // leave room for "^$"
STRLCPY(name + 1, p, end - p + 1);
if (STRCMP(name + 1, "ALLBUT") == 0
|| STRCMP(name + 1, "ALL") == 0
@@ -5367,14 +5367,14 @@ static int get_id_list(char_u **const arg, const int keylen, int16_t **const lis
if (skip) {
id = -1;
} else {
- id = syn_check_cluster(name + 2, (int)(end - p - 1));
+ id = syn_check_cluster((char_u *)name + 2, (int)(end - p - 1));
}
} else {
/*
* Handle full group name.
*/
- if (strpbrk((char *)name + 1, "\\.*^$~[") == NULL) {
- id = syn_check_group((char *)(name + 1), (int)(end - p));
+ if (strpbrk(name + 1, "\\.*^$~[") == NULL) {
+ id = syn_check_group((name + 1), (int)(end - p));
} else {
// Handle match of regexp with group names.
*name = '^';
@@ -5669,7 +5669,7 @@ void ex_ownsyntax(exarg_T *eap)
}
// Apply the "syntax" autocommand event, this finds and loads the syntax file.
- apply_autocmds(EVENT_SYNTAX, (char_u *)eap->arg, curbuf->b_fname, true, curbuf);
+ apply_autocmds(EVENT_SYNTAX, eap->arg, curbuf->b_fname, true, curbuf);
// Move value of b:current_syntax to w:current_syntax.
new_value = get_var_value("b:current_syntax");
diff --git a/src/nvim/tag.c b/src/nvim/tag.c
index 1f0d027321..8a21ec3e5d 100644
--- a/src/nvim/tag.c
+++ b/src/nvim/tag.c
@@ -1108,10 +1108,8 @@ static void prepare_pats(pat_T *pats, int has_re)
if (pats->head == pats->pat) {
pats->headlen = 0;
} else {
- for (pats->headlen = 0; pats->head[pats->headlen] != NUL;
- ++pats->headlen) {
- if (vim_strchr((char_u *)(p_magic ? ".[~*\\$" : "\\$"),
- pats->head[pats->headlen]) != NULL) {
+ for (pats->headlen = 0; pats->head[pats->headlen] != NUL; pats->headlen++) {
+ if (vim_strchr((p_magic ? ".[~*\\$" : "\\$"), pats->head[pats->headlen]) != NULL) {
break;
}
}
@@ -1122,7 +1120,7 @@ static void prepare_pats(pat_T *pats, int has_re)
}
if (has_re) {
- pats->regmatch.regprog = vim_regcomp(pats->pat, p_magic ? RE_MAGIC : 0);
+ pats->regmatch.regprog = vim_regcomp((char *)pats->pat, p_magic ? RE_MAGIC : 0);
} else {
pats->regmatch.regprog = NULL;
}
@@ -1604,8 +1602,8 @@ int find_tags(char_u *pat, int *num_matches, char_u ***matchesp, int flags, int
if (STRNICMP(s, help_lang, 2) == 0) {
break;
}
- ++help_pri;
- if ((s = vim_strchr(s, ',')) == NULL) {
+ help_pri++;
+ if ((s = (char_u *)vim_strchr((char *)s, ',')) == NULL) {
break;
}
}
@@ -1864,7 +1862,7 @@ parse_line:
// This speeds up tag searching a lot!
if (orgpat.headlen) {
tagp.tagname = lbuf;
- tagp.tagname_end = vim_strchr(lbuf, TAB);
+ tagp.tagname_end = (char_u *)vim_strchr((char *)lbuf, TAB);
if (tagp.tagname_end == NULL) {
// Corrupted tag line.
line_error = true;
@@ -1982,7 +1980,7 @@ parse_line:
// Can be a matching tag, isolate the file name and command.
tagp.fname = tagp.tagname_end + 1;
- tagp.fname_end = vim_strchr(tagp.fname, TAB);
+ tagp.fname_end = (char_u *)vim_strchr((char *)tagp.fname, TAB);
tagp.command = tagp.fname_end + 1;
if (tagp.fname_end == NULL) {
i = FAIL;
@@ -2473,7 +2471,7 @@ static int parse_tag_line(char_u *lbuf, tagptrs_T *tagp)
// Isolate the tagname, from lbuf up to the first white
tagp->tagname = lbuf;
- p = vim_strchr(lbuf, TAB);
+ p = (char_u *)vim_strchr((char *)lbuf, TAB);
if (p == NULL) {
return FAIL;
}
@@ -2484,7 +2482,7 @@ static int parse_tag_line(char_u *lbuf, tagptrs_T *tagp)
++p;
}
tagp->fname = p;
- p = vim_strchr(p, TAB);
+ p = (char_u *)vim_strchr((char *)p, TAB);
if (p == NULL) {
return FAIL;
}
@@ -2522,8 +2520,8 @@ static bool test_for_static(tagptrs_T *tagp)
// Check for new style static tag ":...<Tab>file:[<Tab>...]"
p = tagp->command;
- while ((p = vim_strchr(p, '\t')) != NULL) {
- ++p;
+ while ((p = (char_u *)vim_strchr((char *)p, '\t')) != NULL) {
+ p++;
if (STRNCMP(p, "file:", 5) == 0) {
return TRUE;
}
@@ -2595,8 +2593,8 @@ static int parse_match(char_u *lbuf, tagptrs_T *tagp)
break;
}
- pc = vim_strchr(p, ':');
- pt = vim_strchr(p, '\t');
+ pc = (char_u *)vim_strchr((char *)p, ':');
+ pt = (char_u *)vim_strchr((char *)p, '\t');
if (pc == NULL || (pt != NULL && pc > pt)) {
tagp->tagkind = p;
}
diff --git a/src/nvim/terminal.c b/src/nvim/terminal.c
index 2d3102707c..c8f70d4afd 100644
--- a/src/nvim/terminal.c
+++ b/src/nvim/terminal.c
@@ -1374,26 +1374,21 @@ static void fetch_row(Terminal *term, int row, int end_col)
while (col < end_col) {
VTermScreenCell cell;
fetch_cell(term, row, col, &cell);
- int cell_len = 0;
if (cell.chars[0]) {
+ int cell_len = 0;
for (int i = 0; cell.chars[i]; i++) {
cell_len += utf_char2bytes((int)cell.chars[i], ptr + cell_len);
}
- } else {
- *ptr = ' ';
- cell_len = 1;
- }
- char c = *ptr;
- ptr += cell_len;
- if (c != ' ') {
- // only increase the line length if the last character is not whitespace
+ ptr += cell_len;
line_len = (size_t)(ptr - term->textbuf);
+ } else {
+ *ptr++ = ' ';
}
col += cell.width;
}
- // trim trailing whitespace
- term->textbuf[line_len] = 0;
+ // end of line
+ term->textbuf[line_len] = NUL;
}
static bool fetch_cell(Terminal *term, int row, int col, VTermScreenCell *cell)
diff --git a/src/nvim/testdir/test_cindent.vim b/src/nvim/testdir/test_cindent.vim
index 4d69aed96c..7ba8ef3397 100644
--- a/src/nvim/testdir/test_cindent.vim
+++ b/src/nvim/testdir/test_cindent.vim
@@ -5311,6 +5311,13 @@ func Test_cindent_case()
bwipe!
endfunc
+" This was reading past the end of the line
+func Test_cindent_check_funcdecl()
+ new
+ sil norm o0('\0=L
+ bwipe!
+endfunc
+
func Test_cindent_scopedecls()
new
setl cindent ts=4 sw=4
diff --git a/src/nvim/testdir/test_search.vim b/src/nvim/testdir/test_search.vim
index d359e69f91..454c956996 100644
--- a/src/nvim/testdir/test_search.vim
+++ b/src/nvim/testdir/test_search.vim
@@ -925,6 +925,26 @@ func Test_hlsearch_block_visual_match()
call delete('Xhlsearch_block')
endfunc
+func Test_hlsearch_and_visual()
+ CheckOption hlsearch
+ CheckScreendump
+
+ call writefile([
+ \ 'set hlsearch',
+ \ 'call setline(1, repeat(["xxx yyy zzz"], 3))',
+ \ 'hi Search cterm=bold',
+ \ '/yyy',
+ \ 'call cursor(1, 6)',
+ \ ], 'Xhlvisual_script')
+ let buf = RunVimInTerminal('-S Xhlvisual_script', {'rows': 6, 'cols': 40})
+ call term_sendkeys(buf, "vjj")
+ call VerifyScreenDump(buf, 'Test_hlsearch_visual_1', {})
+ call term_sendkeys(buf, "\<Esc>")
+
+ call StopVimInTerminal(buf)
+ call delete('Xhlvisual_script')
+endfunc
+
func Test_incsearch_substitute()
CheckFunction test_override
CheckOption incsearch
diff --git a/src/nvim/testdir/test_smartindent.vim b/src/nvim/testdir/test_smartindent.vim
index dc0f99e93f..f3650a9ac4 100644
--- a/src/nvim/testdir/test_smartindent.vim
+++ b/src/nvim/testdir/test_smartindent.vim
@@ -61,4 +61,26 @@ func Test_smartindent_braces()
close!
endfunc
+func Test_si_after_completion()
+ new
+ setlocal ai smartindent indentexpr=
+ call setline(1, 'foo foot')
+ call feedkeys("o f\<C-X>\<C-N>#", 'tx')
+ call assert_equal(' foo#', getline(2))
+
+ call setline(2, '')
+ call feedkeys("1Go f\<C-X>\<C-N>}", 'tx')
+ call assert_equal(' foo}', getline(2))
+
+ bwipe!
+endfunc
+
+func Test_no_si_after_completion()
+ new
+ call setline(1, 'foo foot')
+ call feedkeys("o f\<C-X>\<C-N>#", 'tx')
+ call assert_equal(' foo#', getline(2))
+ bwipe!
+endfunc
+
" vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/nvim/testdir/test_visual.vim b/src/nvim/testdir/test_visual.vim
index 2b88deb813..41c29c5bb0 100644
--- a/src/nvim/testdir/test_visual.vim
+++ b/src/nvim/testdir/test_visual.vim
@@ -1249,11 +1249,23 @@ endfunc
func Test_visual_block_append_invalid_char()
" this was going over the end of the line
+ set isprint=@,161-255
new
call setline(1, [' let xxx', 'xxxxxˆ', 'xxxxxxxxxxx'])
exe "normal 0\<C-V>jjA-\<Esc>"
call assert_equal([' - let xxx', 'xxxxx -ˆ', 'xxxxxxxx-xxx'], getline(1, 3))
bwipe!
+ set isprint&
+endfunc
+
+func Test_visual_block_with_substitute()
+ " this was reading beyond the end of the line
+ new
+ norm a0)
+ sil! norm  O
+ s/)
+ sil! norm 
+ bwipe!
endfunc
func Test_visual_reselect_with_count()
diff --git a/src/nvim/tui/terminfo_defs.h b/src/nvim/tui/terminfo_defs.h
index 40261058dc..4e8affa4d3 100644
--- a/src/nvim/tui/terminfo_defs.h
+++ b/src/nvim/tui/terminfo_defs.h
@@ -4,7 +4,7 @@
// uncrustify:off
//
-// Generated by scripts/update_terminfo.sh and ncurses 6.1.20180127
+// Generated by scripts/update_terminfo.sh and ncurses 6.3.20211021
//
#ifndef NVIM_TUI_TERMINFO_DEFS_H
@@ -96,7 +96,7 @@
// user8=\E[?%[;0123456789]c,
// user9=\E[c,
static const int8_t ansi_terminfo[] = {
- 26,1,40,0,38,0,16,0,125,1,68,2,97,110,115,105,124,97,110,115,105,47,112,99,45,116,101,114,109,32,99,111,109,112,97,116,105,98,108,101,32,119,105,116,104,32,99,111,108,111,114,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,80,0,8,0,24,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,0,64,0,3,0,0,0,4,0,6,0,-1,-1,8,0,13,0,20,0,24,0,28,0,-1,-1,39,0,56,0,60,0,-1,-1,64,0,-1,-1,-1,-1,68,0,-1,-1,72,0,-1,-1,76,0,80,0,-1,-1,-1,-1,84,0,90,0,95,0,-1,-1,-1,-1,-1,-1,-1,-1,100,0,-1,-1,105,0,110,0,115,0,120,0,-127,0,-121,0,-1,-1,-1,-1,-1,-1,-113,0,-109,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-105,0,-1,-1,-101,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-99,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-95,0,-91,0,-1,-1,-87,0,-1,-1,-1,-1,-1,-1,-83,0,-1,-1,-1,-1,-1,-1,-79,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-75,0,-1,-1,-70,0,-61,0,-52,0,-43,0,-34,0,-25,0,-16,0,-7,0,2,1,11,1,-1,-1,-1,-1,-1,-1,-1,-1,20,1,25,1,30,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,50,1,-1,-1,61,1,-1,-1,63,1,-107,1,-1,-1,-104,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-100,1,-1,-1,-37,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-33,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-28,1,-17,1,-12,1,7,2,11,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,20,2,30,2,-1,-1,-1,-1,-1,-1,40,2,44,2,48,2,52,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,56,2,62,2,27,91,90,0,7,0,13,0,27,91,51,103,0,27,91,72,27,91,74,0,27,91,75,0,27,91,74,0,27,91,37,105,37,112,49,37,100,71,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,72,0,27,91,66,0,27,91,72,0,27,91,68,0,27,91,67,0,27,91,65,0,27,91,80,0,27,91,77,0,27,91,49,49,109,0,27,91,53,109,0,27,91,49,109,0,27,91,56,109,0,27,91,55,109,0,27,91,55,109,0,27,91,52,109,0,27,91,37,112,49,37,100,88,0,27,91,49,48,109,0,27,91,48,59,49,48,109,0,27,91,109,0,27,91,109,0,27,91,76,0,8,0,27,91,66,0,27,91,72,0,27,91,76,0,27,91,68,0,27,91,67,0,27,91,65,0,13,27,91,83,0,27,91,37,112,49,37,100,80,0,27,91,37,112,49,37,100,77,0,27,91,37,112,49,37,100,66,0,27,91,37,112,49,37,100,64,0,27,91,37,112,49,37,100,83,0,27,91,37,112,49,37,100,76,0,27,91,37,112,49,37,100,68,0,27,91,37,112,49,37,100,67,0,27,91,37,112,49,37,100,84,0,27,91,37,112,49,37,100,65,0,27,91,52,105,0,27,91,53,105,0,37,112,49,37,99,27,91,37,112,50,37,123,49,125,37,45,37,100,98,0,27,91,37,105,37,112,49,37,100,100,0,10,0,27,91,48,59,49,48,37,63,37,112,49,37,116,59,55,37,59,37,63,37,112,50,37,116,59,52,37,59,37,63,37,112,51,37,116,59,55,37,59,37,63,37,112,52,37,116,59,53,37,59,37,63,37,112,54,37,116,59,49,37,59,37,63,37,112,55,37,116,59,56,37,59,37,63,37,112,57,37,116,59,49,49,37,59,109,0,27,72,0,27,91,73,0,43,16,44,17,45,24,46,25,48,-37,96,4,97,-79,102,-8,103,-15,104,-80,106,-39,107,-65,108,-38,109,-64,110,-59,111,126,112,-60,113,-60,114,-60,115,95,116,-61,117,-76,118,-63,119,-62,120,-77,121,-13,122,-14,123,-29,124,-40,125,-100,126,-2,0,27,91,90,0,27,91,49,75,0,27,91,37,105,37,100,59,37,100,82,0,27,91,54,110,0,27,91,63,37,91,59,48,49,50,51,52,53,54,55,56,57,93,99,0,27,91,99,0,27,91,51,57,59,52,57,109,0,27,91,51,37,112,49,37,100,109,0,27,91,52,37,112,49,37,100,109,0,27,40,66,0,27,41,66,0,27,42,66,0,27,43,66,0,27,91,49,49,109,0,27,91,49,48,109,0,1,0,0,0,0,0,1,0,3,0,1,0,0,0,65,88,0 // NOLINT
+ 26,1,40,0,38,0,16,0,125,1,68,2,97,110,115,105,124,97,110,115,105,47,112,99,45,116,101,114,109,32,99,111,109,112,97,116,105,98,108,101,32,119,105,116,104,32,99,111,108,111,114,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,80,0,8,0,24,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,0,64,0,3,0,0,0,4,0,6,0,-1,-1,8,0,13,0,20,0,24,0,28,0,-1,-1,39,0,56,0,60,0,-1,-1,64,0,-1,-1,-1,-1,68,0,-1,-1,72,0,-1,-1,76,0,80,0,-1,-1,-1,-1,84,0,90,0,95,0,-1,-1,-1,-1,-1,-1,-1,-1,100,0,-1,-1,105,0,110,0,115,0,120,0,-127,0,-121,0,-1,-1,-1,-1,-1,-1,-113,0,-109,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-105,0,-1,-1,-101,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-99,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-95,0,-91,0,-1,-1,-87,0,-1,-1,-1,-1,-1,-1,-83,0,-1,-1,-1,-1,-1,-1,-79,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-75,0,-1,-1,-70,0,-61,0,-52,0,-43,0,-34,0,-25,0,-16,0,-7,0,2,1,11,1,-1,-1,-1,-1,-1,-1,-1,-1,20,1,25,1,30,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,50,1,-1,-1,61,1,-1,-1,63,1,-107,1,-1,-1,-104,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-100,1,-1,-1,-37,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-33,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-28,1,-17,1,-12,1,7,2,11,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,20,2,30,2,-1,-1,-1,-1,-1,-1,40,2,44,2,48,2,52,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,56,2,62,2,27,91,90,0,7,0,13,0,27,91,51,103,0,27,91,72,27,91,74,0,27,91,75,0,27,91,74,0,27,91,37,105,37,112,49,37,100,71,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,72,0,27,91,66,0,27,91,72,0,27,91,68,0,27,91,67,0,27,91,65,0,27,91,80,0,27,91,77,0,27,91,49,49,109,0,27,91,53,109,0,27,91,49,109,0,27,91,56,109,0,27,91,55,109,0,27,91,55,109,0,27,91,52,109,0,27,91,37,112,49,37,100,88,0,27,91,49,48,109,0,27,91,48,59,49,48,109,0,27,91,109,0,27,91,109,0,27,91,76,0,8,0,27,91,66,0,27,91,72,0,27,91,76,0,27,91,68,0,27,91,67,0,27,91,65,0,13,27,91,83,0,27,91,37,112,49,37,100,80,0,27,91,37,112,49,37,100,77,0,27,91,37,112,49,37,100,66,0,27,91,37,112,49,37,100,64,0,27,91,37,112,49,37,100,83,0,27,91,37,112,49,37,100,76,0,27,91,37,112,49,37,100,68,0,27,91,37,112,49,37,100,67,0,27,91,37,112,49,37,100,84,0,27,91,37,112,49,37,100,65,0,27,91,52,105,0,27,91,53,105,0,37,112,49,37,99,27,91,37,112,50,37,123,49,125,37,45,37,100,98,0,27,91,37,105,37,112,49,37,100,100,0,10,0,27,91,48,59,49,48,37,63,37,112,49,37,116,59,55,37,59,37,63,37,112,50,37,116,59,52,37,59,37,63,37,112,51,37,116,59,55,37,59,37,63,37,112,52,37,116,59,53,37,59,37,63,37,112,54,37,116,59,49,37,59,37,63,37,112,55,37,116,59,56,37,59,37,63,37,112,57,37,116,59,49,49,37,59,109,0,27,72,0,27,91,73,0,43,16,44,17,45,24,46,25,48,-37,96,4,97,-79,102,-8,103,-15,104,-80,106,-39,107,-65,108,-38,109,-64,110,-59,111,126,112,-60,113,-60,114,-60,115,95,116,-61,117,-76,118,-63,119,-62,120,-77,121,-13,122,-14,123,-29,124,-40,125,-100,126,-2,0,27,91,90,0,27,91,49,75,0,27,91,37,105,37,100,59,37,100,82,0,27,91,54,110,0,27,91,63,37,91,59,48,49,50,51,52,53,54,55,56,57,93,99,0,27,91,99,0,27,91,51,57,59,52,57,109,0,27,91,51,37,112,49,37,100,109,0,27,91,52,37,112,49,37,100,109,0,27,40,66,0,27,41,66,0,27,42,66,0,27,43,66,0,27,91,49,49,109,0,27,91,49,48,109,0,1,0,0,0,0,0,1,0,3,0,1,0,0,0,65,88,0
};
// conemu|ANIS X3.64 and Xterm 256 colors for ConEmu with libuv,
@@ -118,6 +118,7 @@ static const int8_t ansi_terminfo[] = {
// carriage_return=\r,
// change_scroll_region=\E[%i%p1%d;%p2%dr,
// clear_all_tabs@,
+// clear_margins=\E[?69l,
// clear_screen=\E[H\E[2J,
// clr_bol=\E[1K,
// clr_eol=\E[K,
@@ -159,9 +160,13 @@ static const int8_t ansi_terminfo[] = {
// init_2string@,
// initialize_color@,
// insert_line=\E[L,
+// key_a1=\EOw,
+// key_a3=\EOy,
// key_b2=\E[G,
// key_backspace=^H,
// key_btab=\E[Z,
+// key_c1=\EOq,
+// key_c3=\EOs,
// key_dc=\E[3~,
// key_down=\E[B,
// key_end=\E[4~,
@@ -253,6 +258,7 @@ static const int8_t ansi_terminfo[] = {
// memory_unlock@,
// meta_off@,
// meta_on@,
+// newline=\EE,
// orig_colors@,
// orig_pair=\E[39;49m,
// parm_dch=\E[%p1%dP,
@@ -279,6 +285,7 @@ static const int8_t ansi_terminfo[] = {
// set_a_background=\E[48;5;%p1%dm,
// set_a_foreground=\E[38;5;%p1%dm,
// set_attributes=\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p6%t;1%;m,
+// set_lr_margin=\E[?69h\E[%i%p1%d;%p2%ds,
// set_tab@,
// tab=^I,
// user6@,
@@ -286,7 +293,7 @@ static const int8_t ansi_terminfo[] = {
// user8@,
// user9@,
static const int8_t conemu_terminfo[] = {
- 30,2,61,0,38,0,15,0,-99,1,31,3,99,111,110,101,109,117,124,65,78,73,83,32,88,51,46,54,52,32,97,110,100,32,88,116,101,114,109,32,50,53,54,32,99,111,108,111,114,115,32,102,111,114,32,67,111,110,69,109,117,32,119,105,116,104,32,108,105,98,117,118,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,80,0,0,0,8,0,0,0,24,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,0,0,0,0,1,0,-2,-1,0,0,2,0,4,0,-2,-1,21,0,29,0,33,0,37,0,-1,-1,48,0,65,0,69,0,73,0,80,0,-1,-1,82,0,89,0,-1,-1,93,0,-2,-1,97,0,101,0,-1,-1,-1,-1,-2,-1,-2,-1,105,0,110,0,-1,-1,-2,-1,-2,-1,-2,-1,-1,-1,119,0,124,0,-127,0,-122,0,-2,-1,-113,0,-108,0,-1,-1,-2,-1,-99,0,-93,0,-2,-1,-1,-1,-1,-1,-1,-1,-2,-1,-1,-1,-1,-1,-1,-1,-87,0,-1,-1,-83,0,-1,-1,-1,-1,-1,-1,-81,0,-1,-1,-76,0,-1,-1,-1,-1,-1,-1,-1,-1,-72,0,-67,0,-61,0,-56,0,-51,0,-46,0,-41,0,-35,0,-29,0,-23,0,-17,0,-12,0,-1,-1,-7,0,-1,-1,-3,0,2,1,7,1,11,1,18,1,-1,-1,25,1,-2,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-2,-1,-1,-1,-1,-1,29,1,38,1,47,1,56,1,65,1,74,1,83,1,92,1,101,1,110,1,-1,-1,-1,-1,-1,-1,-2,-1,-2,-1,-2,-1,119,1,-2,-1,-2,-1,-1,-1,-1,-1,-117,1,-114,1,-103,1,-100,1,-98,1,-95,1,-2,-1,-1,-1,-52,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-50,1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-1,-1,-46,1,-1,-1,-1,-1,-2,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-42,1,-37,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-33,1,-1,-1,-1,-1,-26,1,-1,-1,-1,-1,-1,-1,-1,-1,-19,1,-12,1,-5,1,-1,-1,-1,-1,2,2,-1,-1,9,2,-1,-1,-1,-1,-1,-1,16,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,23,2,29,2,35,2,41,2,47,2,53,2,59,2,65,2,71,2,77,2,83,2,89,2,95,2,101,2,107,2,113,2,119,2,125,2,-125,2,-119,2,-113,2,-107,2,-101,2,-95,2,-89,2,-83,2,-77,2,-71,2,-65,2,-59,2,-52,2,-46,2,-40,2,-34,2,-28,2,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-22,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-2,-1,-2,-1,-2,-1,-17,2,-2,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-8,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-3,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-1,-1,-1,-1,-1,-1,3,3,17,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-2,-1,7,0,13,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,114,0,27,91,72,27,91,50,74,0,27,91,75,0,27,91,74,0,27,91,37,105,37,112,49,37,100,71,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,72,0,27,91,66,0,27,91,72,0,27,91,63,50,53,108,0,8,0,27,91,63,50,53,104,0,27,91,67,0,27,91,65,0,27,91,80,0,27,91,77,0,27,91,49,109,0,27,91,63,49,48,52,57,104,0,27,91,55,109,0,27,91,55,109,0,27,91,52,109,0,27,91,37,112,49,37,100,88,0,27,91,48,109,0,27,91,63,49,48,52,57,108,0,27,91,50,55,109,0,27,91,50,52,109,0,27,91,76,0,8,0,27,91,51,126,0,27,91,66,0,27,91,91,65,0,27,91,50,49,126,0,27,91,91,66,0,27,91,91,67,0,27,91,91,68,0,27,91,91,69,0,27,91,49,55,126,0,27,91,49,56,126,0,27,91,49,57,126,0,27,91,50,48,126,0,27,91,49,126,0,27,91,50,126,0,27,91,68,0,27,91,54,126,0,27,91,53,126,0,27,91,67,0,27,91,49,59,50,66,0,27,91,49,59,50,65,0,27,91,65,0,27,91,37,112,49,37,100,80,0,27,91,37,112,49,37,100,77,0,27,91,37,112,49,37,100,66,0,27,91,37,112,49,37,100,64,0,27,91,37,112,49,37,100,83,0,27,91,37,112,49,37,100,76,0,27,91,37,112,49,37,100,68,0,27,91,37,112,49,37,100,67,0,27,91,37,112,49,37,100,84,0,27,91,37,112,49,37,100,65,0,37,112,49,37,99,27,91,37,112,50,37,123,49,125,37,45,37,100,98,0,27,56,0,27,91,37,105,37,112,49,37,100,100,0,27,55,0,10,0,27,77,0,27,91,48,37,63,37,112,49,37,112,51,37,124,37,116,59,55,37,59,37,63,37,112,50,37,116,59,52,37,59,37,63,37,112,54,37,116,59,49,37,59,109,0,9,0,27,91,71,0,27,91,90,0,27,91,52,126,0,27,79,77,0,27,91,51,59,50,126,0,27,91,52,59,50,126,0,27,91,49,59,50,126,0,27,91,50,59,50,126,0,27,91,49,59,50,68,0,27,91,54,59,50,126,0,27,91,53,59,50,126,0,27,91,49,59,50,67,0,27,91,50,51,126,0,27,91,50,52,126,0,27,91,50,53,126,0,27,91,50,54,126,0,27,91,50,56,126,0,27,91,50,57,126,0,27,91,51,49,126,0,27,91,51,50,126,0,27,91,51,51,126,0,27,91,51,52,126,0,27,91,50,51,36,0,27,91,50,52,36,0,27,91,49,49,94,0,27,91,49,50,94,0,27,91,49,51,94,0,27,91,49,52,94,0,27,91,49,53,94,0,27,91,49,55,94,0,27,91,49,56,94,0,27,91,49,57,94,0,27,91,50,48,94,0,27,91,50,49,94,0,27,91,50,51,94,0,27,91,50,52,94,0,27,91,50,53,94,0,27,91,50,54,94,0,27,91,50,56,94,0,27,91,50,57,94,0,27,91,51,49,94,0,27,91,49,59,54,83,0,27,91,51,50,94,0,27,91,51,51,94,0,27,91,51,52,94,0,27,91,50,51,64,0,27,91,50,52,64,0,27,91,49,75,0,27,91,51,57,59,52,57,109,0,27,91,51,109,0,27,91,50,51,109,0,27,91,51,56,59,53,59,37,112,49,37,100,109,0,27,91,52,56,59,53,59,37,112,49,37,100,109,0,0,3,0,1,0,74,0,-104,0,-95,1,1,0,1,0,-1,-1,-1,-1,-2,-1,-2,-1,-1,-1,0,0,-2,-1,-1,-1,5,0,-1,-1,11,0,-1,-1,-2,-1,-1,-1,-1,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-1,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-1,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,21,0,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-2,-1,-2,-1,0,0,3,0,6,0,9,0,12,0,15,0,18,0,21,0,24,0,27,0,30,0,33,0,39,0,42,0,45,0,48,0,54,0,60,0,65,0,70,0,75,0,80,0,85,0,89,0,94,0,99,0,104,0,109,0,114,0,120,0,126,0,-124,0,-118,0,-112,0,-106,0,-100,0,-94,0,-88,0,-82,0,-76,0,-70,0,-65,0,-60,0,-55,0,-50,0,-45,0,-39,0,-33,0,-27,0,-21,0,-15,0,-9,0,-3,0,3,1,9,1,15,1,21,1,27,1,33,1,39,1,45,1,51,1,57,1,63,1,69,1,75,1,79,1,84,1,89,1,94,1,99,1,104,1,108,1,112,1,116,1,120,1,125,1,-126,1,27,91,51,74,0,27,91,50,32,113,0,27,91,37,112,49,37,100,32,113,0,27,91,49,59,50,65,0,65,88,0,71,48,0,88,84,0,85,56,0,67,114,0,67,115,0,69,48,0,69,51,0,77,115,0,83,48,0,83,101,0,83,109,117,108,120,0,83,115,0,84,83,0,88,77,0,103,114,98,111,109,0,103,115,98,111,109,0,107,68,67,51,0,107,68,67,52,0,107,68,67,53,0,107,68,67,54,0,107,68,67,55,0,107,68,78,0,107,68,78,51,0,107,68,78,52,0,107,68,78,53,0,107,68,78,54,0,107,68,78,55,0,107,69,78,68,51,0,107,69,78,68,52,0,107,69,78,68,53,0,107,69,78,68,54,0,107,69,78,68,55,0,107,69,78,68,56,0,107,72,79,77,51,0,107,72,79,77,52,0,107,72,79,77,53,0,107,72,79,77,54,0,107,72,79,77,55,0,107,72,79,77,56,0,107,73,67,51,0,107,73,67,52,0,107,73,67,53,0,107,73,67,54,0,107,73,67,55,0,107,76,70,84,51,0,107,76,70,84,52,0,107,76,70,84,53,0,107,76,70,84,54,0,107,76,70,84,55,0,107,78,88,84,51,0,107,78,88,84,52,0,107,78,88,84,53,0,107,78,88,84,54,0,107,78,88,84,55,0,107,80,82,86,51,0,107,80,82,86,52,0,107,80,82,86,53,0,107,80,82,86,54,0,107,80,82,86,55,0,107,82,73,84,51,0,107,82,73,84,52,0,107,82,73,84,53,0,107,82,73,84,54,0,107,82,73,84,55,0,107,85,80,0,107,85,80,51,0,107,85,80,52,0,107,85,80,53,0,107,85,80,54,0,107,85,80,55,0,107,97,50,0,107,98,49,0,107,98,51,0,107,99,50,0,114,109,120,120,0,115,109,120,120,0,120,109,0 // NOLINT
+ 30,2,61,0,38,0,15,0,-99,1,80,3,99,111,110,101,109,117,124,65,78,73,83,32,88,51,46,54,52,32,97,110,100,32,88,116,101,114,109,32,50,53,54,32,99,111,108,111,114,115,32,102,111,114,32,67,111,110,69,109,117,32,119,105,116,104,32,108,105,98,117,118,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,80,0,0,0,8,0,0,0,24,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,0,0,0,0,1,0,-2,-1,0,0,2,0,4,0,-2,-1,21,0,29,0,33,0,37,0,-1,-1,48,0,65,0,69,0,73,0,80,0,-1,-1,82,0,89,0,-1,-1,93,0,-2,-1,97,0,101,0,-1,-1,-1,-1,-2,-1,-2,-1,105,0,110,0,-1,-1,-2,-1,-2,-1,-2,-1,-1,-1,119,0,124,0,-127,0,-122,0,-2,-1,-113,0,-108,0,-1,-1,-2,-1,-99,0,-93,0,-2,-1,-1,-1,-1,-1,-1,-1,-2,-1,-1,-1,-1,-1,-1,-1,-87,0,-1,-1,-83,0,-1,-1,-1,-1,-1,-1,-81,0,-1,-1,-76,0,-1,-1,-1,-1,-1,-1,-1,-1,-72,0,-67,0,-61,0,-56,0,-51,0,-46,0,-41,0,-35,0,-29,0,-23,0,-17,0,-12,0,-1,-1,-7,0,-1,-1,-3,0,2,1,7,1,11,1,18,1,-1,-1,25,1,-2,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-2,-1,29,1,-1,-1,32,1,41,1,50,1,59,1,68,1,77,1,86,1,95,1,104,1,113,1,-1,-1,-1,-1,-1,-1,-2,-1,-2,-1,-2,-1,122,1,-2,-1,-2,-1,-1,-1,-1,-1,-114,1,-111,1,-100,1,-97,1,-95,1,-92,1,-2,-1,-1,-1,-49,1,-1,-1,-1,-1,-1,-1,-1,-1,-47,1,-43,1,-39,1,-35,1,-31,1,-1,-1,-1,-1,-2,-1,-1,-1,-27,1,-1,-1,-1,-1,-2,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-23,1,-18,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-14,1,-1,-1,-1,-1,-7,1,-1,-1,-1,-1,-1,-1,-1,-1,0,2,7,2,14,2,-1,-1,-1,-1,21,2,-1,-1,28,2,-1,-1,-1,-1,-1,-1,35,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,42,2,48,2,54,2,60,2,66,2,72,2,78,2,84,2,90,2,96,2,102,2,108,2,114,2,120,2,126,2,-124,2,-118,2,-112,2,-106,2,-100,2,-94,2,-88,2,-82,2,-76,2,-70,2,-64,2,-58,2,-52,2,-46,2,-40,2,-33,2,-27,2,-21,2,-15,2,-9,2,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-3,2,2,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-2,-1,-2,-1,-2,-1,9,3,-2,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,18,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,23,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-1,-1,-1,-1,-1,-1,29,3,43,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,57,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-2,-1,7,0,13,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,114,0,27,91,72,27,91,50,74,0,27,91,75,0,27,91,74,0,27,91,37,105,37,112,49,37,100,71,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,72,0,27,91,66,0,27,91,72,0,27,91,63,50,53,108,0,8,0,27,91,63,50,53,104,0,27,91,67,0,27,91,65,0,27,91,80,0,27,91,77,0,27,91,49,109,0,27,91,63,49,48,52,57,104,0,27,91,55,109,0,27,91,55,109,0,27,91,52,109,0,27,91,37,112,49,37,100,88,0,27,91,48,109,0,27,91,63,49,48,52,57,108,0,27,91,50,55,109,0,27,91,50,52,109,0,27,91,76,0,8,0,27,91,51,126,0,27,91,66,0,27,91,91,65,0,27,91,50,49,126,0,27,91,91,66,0,27,91,91,67,0,27,91,91,68,0,27,91,91,69,0,27,91,49,55,126,0,27,91,49,56,126,0,27,91,49,57,126,0,27,91,50,48,126,0,27,91,49,126,0,27,91,50,126,0,27,91,68,0,27,91,54,126,0,27,91,53,126,0,27,91,67,0,27,91,49,59,50,66,0,27,91,49,59,50,65,0,27,91,65,0,27,69,0,27,91,37,112,49,37,100,80,0,27,91,37,112,49,37,100,77,0,27,91,37,112,49,37,100,66,0,27,91,37,112,49,37,100,64,0,27,91,37,112,49,37,100,83,0,27,91,37,112,49,37,100,76,0,27,91,37,112,49,37,100,68,0,27,91,37,112,49,37,100,67,0,27,91,37,112,49,37,100,84,0,27,91,37,112,49,37,100,65,0,37,112,49,37,99,27,91,37,112,50,37,123,49,125,37,45,37,100,98,0,27,56,0,27,91,37,105,37,112,49,37,100,100,0,27,55,0,10,0,27,77,0,27,91,48,37,63,37,112,49,37,112,51,37,124,37,116,59,55,37,59,37,63,37,112,50,37,116,59,52,37,59,37,63,37,112,54,37,116,59,49,37,59,109,0,9,0,27,79,119,0,27,79,121,0,27,91,71,0,27,79,113,0,27,79,115,0,27,91,90,0,27,91,52,126,0,27,79,77,0,27,91,51,59,50,126,0,27,91,52,59,50,126,0,27,91,49,59,50,126,0,27,91,50,59,50,126,0,27,91,49,59,50,68,0,27,91,54,59,50,126,0,27,91,53,59,50,126,0,27,91,49,59,50,67,0,27,91,50,51,126,0,27,91,50,52,126,0,27,91,50,53,126,0,27,91,50,54,126,0,27,91,50,56,126,0,27,91,50,57,126,0,27,91,51,49,126,0,27,91,51,50,126,0,27,91,51,51,126,0,27,91,51,52,126,0,27,91,50,51,36,0,27,91,50,52,36,0,27,91,49,49,94,0,27,91,49,50,94,0,27,91,49,51,94,0,27,91,49,52,94,0,27,91,49,53,94,0,27,91,49,55,94,0,27,91,49,56,94,0,27,91,49,57,94,0,27,91,50,48,94,0,27,91,50,49,94,0,27,91,50,51,94,0,27,91,50,52,94,0,27,91,50,53,94,0,27,91,50,54,94,0,27,91,50,56,94,0,27,91,50,57,94,0,27,91,51,49,94,0,27,91,49,59,54,83,0,27,91,51,50,94,0,27,91,51,51,94,0,27,91,51,52,94,0,27,91,50,51,64,0,27,91,50,52,64,0,27,91,49,75,0,27,91,63,54,57,108,0,27,91,51,57,59,52,57,109,0,27,91,51,109,0,27,91,50,51,109,0,27,91,51,56,59,53,59,37,112,49,37,100,109,0,27,91,52,56,59,53,59,37,112,49,37,100,109,0,27,91,63,54,57,104,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,115,0,2,0,0,0,74,0,92,0,-46,1,1,1,-2,-1,-2,-1,0,0,-2,-1,5,0,11,0,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,21,0,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,28,0,32,0,36,0,40,0,44,0,48,0,52,0,56,0,60,0,64,0,68,0,72,0,-2,-1,-2,-1,-2,-1,0,0,3,0,6,0,9,0,12,0,15,0,18,0,21,0,24,0,27,0,32,0,37,0,42,0,47,0,52,0,56,0,61,0,66,0,71,0,76,0,81,0,87,0,93,0,99,0,105,0,111,0,117,0,123,0,-127,0,-121,0,-115,0,-110,0,-105,0,-100,0,-95,0,-90,0,-84,0,-78,0,-72,0,-66,0,-60,0,-54,0,-48,0,-42,0,-36,0,-30,0,-24,0,-18,0,-12,0,-6,0,0,1,6,1,12,1,18,1,24,1,30,1,34,1,39,1,44,1,49,1,54,1,59,1,63,1,67,1,71,1,75,1,79,1,85,1,91,1,97,1,103,1,109,1,115,1,121,1,126,1,-125,1,27,91,51,74,0,27,91,50,32,113,0,27,91,37,112,49,37,100,32,113,0,27,91,49,59,50,65,0,27,79,120,0,27,79,116,0,27,79,118,0,27,79,114,0,27,79,69,0,27,79,107,0,27,79,108,0,27,79,111,0,27,79,110,0,27,79,106,0,27,79,109,0,27,79,112,0,65,88,0,88,84,0,67,114,0,67,115,0,69,51,0,77,115,0,83,101,0,83,115,0,88,77,0,107,68,67,51,0,107,68,67,52,0,107,68,67,53,0,107,68,67,54,0,107,68,67,55,0,107,68,78,0,107,68,78,51,0,107,68,78,52,0,107,68,78,53,0,107,68,78,54,0,107,68,78,55,0,107,69,78,68,51,0,107,69,78,68,52,0,107,69,78,68,53,0,107,69,78,68,54,0,107,69,78,68,55,0,107,72,79,77,51,0,107,72,79,77,52,0,107,72,79,77,53,0,107,72,79,77,54,0,107,72,79,77,55,0,107,73,67,51,0,107,73,67,52,0,107,73,67,53,0,107,73,67,54,0,107,73,67,55,0,107,76,70,84,51,0,107,76,70,84,52,0,107,76,70,84,53,0,107,76,70,84,54,0,107,76,70,84,55,0,107,78,88,84,51,0,107,78,88,84,52,0,107,78,88,84,53,0,107,78,88,84,54,0,107,78,88,84,55,0,107,80,82,86,51,0,107,80,82,86,52,0,107,80,82,86,53,0,107,80,82,86,54,0,107,80,82,86,55,0,107,82,73,84,51,0,107,82,73,84,52,0,107,82,73,84,53,0,107,82,73,84,54,0,107,82,73,84,55,0,107,85,80,0,107,85,80,51,0,107,85,80,52,0,107,85,80,53,0,107,85,80,54,0,107,85,80,55,0,107,97,50,0,107,98,49,0,107,98,51,0,107,99,50,0,107,112,53,0,107,112,65,68,68,0,107,112,67,77,65,0,107,112,68,73,86,0,107,112,68,79,84,0,107,112,77,85,76,0,107,112,83,85,66,0,107,112,90,82,79,0,114,109,120,120,0,115,109,120,120,0,120,109,0
};
// cygwin|ANSI emulation for Cygwin,
@@ -392,7 +399,7 @@ static const int8_t conemu_terminfo[] = {
// user8=\E[?6c,
// user9=\E[c,
static const int8_t cygwin_terminfo[] = {
- 26,1,33,0,21,0,15,0,125,1,-108,2,99,121,103,119,105,110,124,65,78,83,73,32,101,109,117,108,97,116,105,111,110,32,102,111,114,32,67,121,103,119,105,110,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,-1,-1,8,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,0,64,0,-1,-1,0,0,2,0,-1,-1,-1,-1,4,0,11,0,15,0,19,0,-1,-1,30,0,47,0,51,0,-1,-1,55,0,-1,-1,-1,-1,57,0,-1,-1,61,0,-1,-1,65,0,69,0,-1,-1,-1,-1,73,0,-1,-1,79,0,84,0,-1,-1,-1,-1,93,0,98,0,-1,-1,103,0,108,0,113,0,-1,-1,118,0,124,0,-124,0,-1,-1,-111,0,-106,0,-100,0,-1,-1,-1,-1,-94,0,-1,-1,-1,-1,-1,-1,-1,-1,-92,0,-88,0,-1,-1,-84,0,-1,-1,-1,-1,-1,-1,-82,0,-1,-1,-77,0,-1,-1,-1,-1,-1,-1,-1,-1,-73,0,-68,0,-62,0,-57,0,-52,0,-47,0,-42,0,-36,0,-30,0,-24,0,-18,0,-13,0,-1,-1,-8,0,-1,-1,-4,0,1,1,6,1,-1,-1,-1,-1,-1,-1,10,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,14,1,-1,-1,17,1,26,1,35,1,44,1,-1,-1,53,1,62,1,71,1,-1,-1,80,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,89,1,-1,-1,-1,-1,-1,-1,95,1,98,1,109,1,112,1,114,1,117,1,-1,-1,-1,-1,-64,1,-62,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-58,1,-1,-1,-1,-1,-1,-1,-1,-1,-54,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,14,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,2,22,2,28,2,34,2,40,2,46,2,52,2,58,2,64,2,70,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,76,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,81,2,92,2,97,2,103,2,107,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,116,2,126,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-120,2,-114,2,7,0,13,0,27,91,72,27,91,74,0,27,91,75,0,27,91,74,0,27,91,37,105,37,112,49,37,100,71,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,72,0,27,91,66,0,27,91,72,0,8,0,27,91,67,0,27,91,65,0,27,91,80,0,27,91,77,0,27,91,49,49,109,0,27,91,49,109,0,27,55,27,91,63,52,55,104,0,27,91,52,104,0,27,91,56,109,0,27,91,55,109,0,27,91,55,109,0,27,91,52,109,0,27,91,49,48,109,0,27,91,48,59,49,48,109,0,27,91,50,74,27,91,63,52,55,108,27,56,0,27,91,52,108,0,27,91,50,55,109,0,27,91,50,52,109,0,7,0,27,91,64,0,27,91,76,0,8,0,27,91,51,126,0,27,91,66,0,27,91,91,65,0,27,91,50,49,126,0,27,91,91,66,0,27,91,91,67,0,27,91,91,68,0,27,91,91,69,0,27,91,49,55,126,0,27,91,49,56,126,0,27,91,49,57,126,0,27,91,50,48,126,0,27,91,49,126,0,27,91,50,126,0,27,91,68,0,27,91,54,126,0,27,91,53,126,0,27,91,67,0,27,91,65,0,13,10,0,27,91,37,112,49,37,100,80,0,27,91,37,112,49,37,100,77,0,27,91,37,112,49,37,100,66,0,27,91,37,112,49,37,100,64,0,27,91,37,112,49,37,100,76,0,27,91,37,112,49,37,100,68,0,27,91,37,112,49,37,100,67,0,27,91,37,112,49,37,100,65,0,27,99,27,93,82,0,27,56,0,27,91,37,105,37,112,49,37,100,100,0,27,55,0,10,0,27,77,0,27,91,48,59,49,48,37,63,37,112,49,37,116,59,55,37,59,37,63,37,112,50,37,116,59,52,37,59,37,63,37,112,51,37,116,59,55,37,59,37,63,37,112,54,37,116,59,49,37,59,37,63,37,112,55,37,116,59,56,37,59,37,63,37,112,57,37,116,59,49,49,37,59,109,0,9,0,27,93,59,0,27,91,71,0,43,16,44,17,45,24,46,25,48,-37,96,4,97,-79,102,-8,103,-15,104,-80,106,-39,107,-65,108,-38,109,-64,110,-59,111,126,112,-60,113,-60,114,-60,115,95,116,-61,117,-76,118,-63,119,-62,120,-77,121,-13,122,-14,123,-29,124,-40,125,-100,126,-2,0,27,91,52,126,0,26,0,27,91,50,51,126,0,27,91,50,52,126,0,27,91,50,53,126,0,27,91,50,54,126,0,27,91,50,56,126,0,27,91,50,57,126,0,27,91,51,49,126,0,27,91,51,50,126,0,27,91,51,51,126,0,27,91,51,52,126,0,27,91,49,75,0,27,91,37,105,37,100,59,37,100,82,0,27,91,54,110,0,27,91,63,54,99,0,27,91,99,0,27,91,51,57,59,52,57,109,0,27,91,51,37,112,49,37,100,109,0,27,91,52,37,112,49,37,100,109,0,27,91,49,49,109,0,27,91,49,48,109,0 // NOLINT
+ 26,1,33,0,21,0,15,0,125,1,-108,2,99,121,103,119,105,110,124,65,78,83,73,32,101,109,117,108,97,116,105,111,110,32,102,111,114,32,67,121,103,119,105,110,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,-1,-1,8,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,0,64,0,-1,-1,0,0,2,0,-1,-1,-1,-1,4,0,11,0,15,0,19,0,-1,-1,30,0,47,0,51,0,-1,-1,55,0,-1,-1,-1,-1,57,0,-1,-1,61,0,-1,-1,65,0,69,0,-1,-1,-1,-1,73,0,-1,-1,79,0,84,0,-1,-1,-1,-1,93,0,98,0,-1,-1,103,0,108,0,113,0,-1,-1,118,0,124,0,-124,0,-1,-1,-111,0,-106,0,-100,0,-1,-1,-1,-1,-94,0,-1,-1,-1,-1,-1,-1,-1,-1,-92,0,-88,0,-1,-1,-84,0,-1,-1,-1,-1,-1,-1,-82,0,-1,-1,-77,0,-1,-1,-1,-1,-1,-1,-1,-1,-73,0,-68,0,-62,0,-57,0,-52,0,-47,0,-42,0,-36,0,-30,0,-24,0,-18,0,-13,0,-1,-1,-8,0,-1,-1,-4,0,1,1,6,1,-1,-1,-1,-1,-1,-1,10,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,14,1,-1,-1,17,1,26,1,35,1,44,1,-1,-1,53,1,62,1,71,1,-1,-1,80,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,89,1,-1,-1,-1,-1,-1,-1,95,1,98,1,109,1,112,1,114,1,117,1,-1,-1,-1,-1,-64,1,-62,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-58,1,-1,-1,-1,-1,-1,-1,-1,-1,-54,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,14,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,2,22,2,28,2,34,2,40,2,46,2,52,2,58,2,64,2,70,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,76,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,81,2,92,2,97,2,103,2,107,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,116,2,126,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-120,2,-114,2,7,0,13,0,27,91,72,27,91,74,0,27,91,75,0,27,91,74,0,27,91,37,105,37,112,49,37,100,71,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,72,0,27,91,66,0,27,91,72,0,8,0,27,91,67,0,27,91,65,0,27,91,80,0,27,91,77,0,27,91,49,49,109,0,27,91,49,109,0,27,55,27,91,63,52,55,104,0,27,91,52,104,0,27,91,56,109,0,27,91,55,109,0,27,91,55,109,0,27,91,52,109,0,27,91,49,48,109,0,27,91,48,59,49,48,109,0,27,91,50,74,27,91,63,52,55,108,27,56,0,27,91,52,108,0,27,91,50,55,109,0,27,91,50,52,109,0,7,0,27,91,64,0,27,91,76,0,8,0,27,91,51,126,0,27,91,66,0,27,91,91,65,0,27,91,50,49,126,0,27,91,91,66,0,27,91,91,67,0,27,91,91,68,0,27,91,91,69,0,27,91,49,55,126,0,27,91,49,56,126,0,27,91,49,57,126,0,27,91,50,48,126,0,27,91,49,126,0,27,91,50,126,0,27,91,68,0,27,91,54,126,0,27,91,53,126,0,27,91,67,0,27,91,65,0,13,10,0,27,91,37,112,49,37,100,80,0,27,91,37,112,49,37,100,77,0,27,91,37,112,49,37,100,66,0,27,91,37,112,49,37,100,64,0,27,91,37,112,49,37,100,76,0,27,91,37,112,49,37,100,68,0,27,91,37,112,49,37,100,67,0,27,91,37,112,49,37,100,65,0,27,99,27,93,82,0,27,56,0,27,91,37,105,37,112,49,37,100,100,0,27,55,0,10,0,27,77,0,27,91,48,59,49,48,37,63,37,112,49,37,116,59,55,37,59,37,63,37,112,50,37,116,59,52,37,59,37,63,37,112,51,37,116,59,55,37,59,37,63,37,112,54,37,116,59,49,37,59,37,63,37,112,55,37,116,59,56,37,59,37,63,37,112,57,37,116,59,49,49,37,59,109,0,9,0,27,93,59,0,27,91,71,0,43,16,44,17,45,24,46,25,48,-37,96,4,97,-79,102,-8,103,-15,104,-80,106,-39,107,-65,108,-38,109,-64,110,-59,111,126,112,-60,113,-60,114,-60,115,95,116,-61,117,-76,118,-63,119,-62,120,-77,121,-13,122,-14,123,-29,124,-40,125,-100,126,-2,0,27,91,52,126,0,26,0,27,91,50,51,126,0,27,91,50,52,126,0,27,91,50,53,126,0,27,91,50,54,126,0,27,91,50,56,126,0,27,91,50,57,126,0,27,91,51,49,126,0,27,91,51,50,126,0,27,91,51,51,126,0,27,91,51,52,126,0,27,91,49,75,0,27,91,37,105,37,100,59,37,100,82,0,27,91,54,110,0,27,91,63,54,99,0,27,91,99,0,27,91,51,57,59,52,57,109,0,27,91,51,37,112,49,37,100,109,0,27,91,52,37,112,49,37,100,109,0,27,91,49,49,109,0,27,91,49,48,109,0
};
// interix|opennt|opennt-25|ntconsole|ntconsole-25|OpenNT-term compatible with color,
@@ -517,7 +524,6 @@ static const int8_t cygwin_terminfo[] = {
// parm_right_cursor=\E[%p1%dC,
// parm_rindex=\E[%p1%dT,
// parm_up_cursor=\E[%p1%dA,
-// repeat_char=%p1%c\E[%p2%{1}%-%db,
// reset_1string=\Ec,
// restore_cursor=\E[u,
// save_cursor=\E[s,
@@ -527,7 +533,7 @@ static const int8_t cygwin_terminfo[] = {
// set_a_foreground=\E[3%p1%dm,
// tab=^I,
static const int8_t interix_8colour_terminfo[] = {
- 26,1,82,0,29,0,16,0,105,1,116,2,105,110,116,101,114,105,120,124,111,112,101,110,110,116,124,111,112,101,110,110,116,45,50,53,124,110,116,99,111,110,115,111,108,101,124,110,116,99,111,110,115,111,108,101,45,50,53,124,79,112,101,110,78,84,45,116,101,114,109,32,99,111,109,112,97,116,105,98,108,101,32,119,105,116,104,32,99,111,108,111,114,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,80,0,8,0,25,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,0,64,0,3,0,-1,-1,0,0,2,0,-1,-1,-1,-1,4,0,9,0,13,0,-1,-1,-1,-1,17,0,34,0,36,0,-1,-1,40,0,-1,-1,-1,-1,44,0,48,0,52,0,-1,-1,-1,-1,56,0,-1,-1,-1,-1,-1,-1,-1,-1,60,0,65,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,73,0,78,0,83,0,-1,-1,-1,-1,88,0,93,0,-1,-1,-1,-1,105,0,109,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,113,0,-1,-1,117,0,-1,-1,-1,-1,-1,-1,119,0,-1,-1,121,0,-1,-1,-1,-1,-1,-1,125,0,-127,0,-123,0,-119,0,-115,0,-111,0,-107,0,-103,0,-99,0,-95,0,-91,0,-87,0,-83,0,-1,-1,-79,0,-75,0,-71,0,-67,0,-63,0,-59,0,-55,0,-1,-1,-51,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-47,0,-1,-1,-1,-1,-44,0,-35,0,-1,-1,-26,0,-17,0,-8,0,1,1,10,1,19,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,28,1,48,1,-1,-1,-1,-1,-1,-1,51,1,-1,-1,55,1,59,1,63,1,-1,-1,-1,-1,-1,-1,67,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,69,1,-1,-1,-124,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-120,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-116,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-112,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-108,1,-104,1,-100,1,-96,1,-92,1,-88,1,-84,1,-80,1,-76,1,-72,1,-68,1,-64,1,-60,1,-56,1,-52,1,-48,1,-44,1,-40,1,-36,1,-32,1,-28,1,-24,1,-20,1,-16,1,-12,1,-8,1,-4,1,0,2,4,2,8,2,12,2,16,2,20,2,24,2,28,2,32,2,36,2,40,2,44,2,48,2,52,2,56,2,60,2,64,2,68,2,72,2,76,2,80,2,84,2,88,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,92,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,96,2,106,2,7,0,13,0,27,91,50,74,0,27,91,75,0,27,91,74,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,72,0,10,0,27,91,72,0,27,91,68,0,27,91,67,0,27,91,85,0,27,91,65,0,27,91,77,0,27,91,49,109,0,27,91,115,27,91,49,98,0,27,91,55,109,0,27,91,55,109,0,27,91,52,109,0,27,91,48,109,0,27,91,50,98,27,91,117,13,27,91,75,0,27,91,109,0,27,91,109,0,27,91,76,0,8,0,127,0,27,91,66,0,27,70,65,0,27,70,49,0,27,70,65,0,27,70,50,0,27,70,51,0,27,70,52,0,27,70,53,0,27,70,54,0,27,70,55,0,27,70,56,0,27,70,57,0,27,91,72,0,27,91,76,0,27,91,68,0,27,91,85,0,27,91,84,0,27,91,83,0,27,91,67,0,27,70,43,0,27,70,45,0,27,91,65,0,13,10,0,27,91,37,112,49,37,100,77,0,27,91,37,112,49,37,100,66,0,27,91,37,112,49,37,100,83,0,27,91,37,112,49,37,100,76,0,27,91,37,112,49,37,100,68,0,27,91,37,112,49,37,100,67,0,27,91,37,112,49,37,100,84,0,27,91,37,112,49,37,100,65,0,37,112,49,37,99,27,91,37,112,50,37,123,49,125,37,45,37,100,98,0,27,99,0,27,91,117,0,27,91,115,0,27,91,83,0,27,91,84,0,9,0,43,16,44,17,45,24,46,25,48,-37,96,4,97,-79,102,-8,103,-15,104,-80,106,-39,107,-65,108,-38,109,-64,110,-59,111,126,112,-60,113,-60,114,-60,115,95,116,-61,117,-76,118,-63,119,-62,120,-77,121,-13,122,-14,123,-29,124,-40,125,-100,126,-2,0,27,91,90,0,27,91,85,0,27,70,94,0,27,70,36,0,27,70,66,0,27,70,67,0,27,70,68,0,27,70,69,0,27,70,70,0,27,70,71,0,27,70,72,0,27,70,73,0,27,70,74,0,27,70,75,0,27,70,76,0,27,70,77,0,27,70,78,0,27,70,79,0,27,70,80,0,27,70,81,0,27,70,82,0,27,70,83,0,27,70,84,0,27,70,85,0,27,70,86,0,27,70,87,0,27,70,88,0,27,70,89,0,27,70,90,0,27,70,97,0,27,70,98,0,27,70,99,0,27,70,100,0,27,70,101,0,27,70,102,0,27,70,103,0,27,70,104,0,27,70,105,0,27,70,106,0,27,70,107,0,27,70,109,0,27,70,110,0,27,70,111,0,27,70,112,0,27,70,113,0,27,70,114,0,27,70,115,0,27,70,116,0,27,70,117,0,27,70,118,0,27,70,119,0,27,70,120,0,27,70,121,0,27,70,122,0,27,91,109,0,27,91,51,37,112,49,37,100,109,0,27,91,52,37,112,49,37,100,109,0 // NOLINT
+ 26,1,82,0,29,0,16,0,105,1,96,2,105,110,116,101,114,105,120,124,111,112,101,110,110,116,124,111,112,101,110,110,116,45,50,53,124,110,116,99,111,110,115,111,108,101,124,110,116,99,111,110,115,111,108,101,45,50,53,124,79,112,101,110,78,84,45,116,101,114,109,32,99,111,109,112,97,116,105,98,108,101,32,119,105,116,104,32,99,111,108,111,114,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,80,0,8,0,25,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,0,64,0,3,0,-1,-1,0,0,2,0,-1,-1,-1,-1,4,0,9,0,13,0,-1,-1,-1,-1,17,0,34,0,36,0,-1,-1,40,0,-1,-1,-1,-1,44,0,48,0,52,0,-1,-1,-1,-1,56,0,-1,-1,-1,-1,-1,-1,-1,-1,60,0,65,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,73,0,78,0,83,0,-1,-1,-1,-1,88,0,93,0,-1,-1,-1,-1,105,0,109,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,113,0,-1,-1,117,0,-1,-1,-1,-1,-1,-1,119,0,-1,-1,121,0,-1,-1,-1,-1,-1,-1,125,0,-127,0,-123,0,-119,0,-115,0,-111,0,-107,0,-103,0,-99,0,-95,0,-91,0,-87,0,-83,0,-1,-1,-79,0,-75,0,-71,0,-67,0,-63,0,-59,0,-55,0,-1,-1,-51,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-47,0,-1,-1,-1,-1,-44,0,-35,0,-1,-1,-26,0,-17,0,-8,0,1,1,10,1,19,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,28,1,-1,-1,-1,-1,-1,-1,31,1,-1,-1,35,1,39,1,43,1,-1,-1,-1,-1,-1,-1,47,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,49,1,-1,-1,112,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,116,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,120,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,124,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-128,1,-124,1,-120,1,-116,1,-112,1,-108,1,-104,1,-100,1,-96,1,-92,1,-88,1,-84,1,-80,1,-76,1,-72,1,-68,1,-64,1,-60,1,-56,1,-52,1,-48,1,-44,1,-40,1,-36,1,-32,1,-28,1,-24,1,-20,1,-16,1,-12,1,-8,1,-4,1,0,2,4,2,8,2,12,2,16,2,20,2,24,2,28,2,32,2,36,2,40,2,44,2,48,2,52,2,56,2,60,2,64,2,68,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,72,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,76,2,86,2,7,0,13,0,27,91,50,74,0,27,91,75,0,27,91,74,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,72,0,10,0,27,91,72,0,27,91,68,0,27,91,67,0,27,91,85,0,27,91,65,0,27,91,77,0,27,91,49,109,0,27,91,115,27,91,49,98,0,27,91,55,109,0,27,91,55,109,0,27,91,52,109,0,27,91,48,109,0,27,91,50,98,27,91,117,13,27,91,75,0,27,91,109,0,27,91,109,0,27,91,76,0,8,0,127,0,27,91,66,0,27,70,65,0,27,70,49,0,27,70,65,0,27,70,50,0,27,70,51,0,27,70,52,0,27,70,53,0,27,70,54,0,27,70,55,0,27,70,56,0,27,70,57,0,27,91,72,0,27,91,76,0,27,91,68,0,27,91,85,0,27,91,84,0,27,91,83,0,27,91,67,0,27,70,43,0,27,70,45,0,27,91,65,0,13,10,0,27,91,37,112,49,37,100,77,0,27,91,37,112,49,37,100,66,0,27,91,37,112,49,37,100,83,0,27,91,37,112,49,37,100,76,0,27,91,37,112,49,37,100,68,0,27,91,37,112,49,37,100,67,0,27,91,37,112,49,37,100,84,0,27,91,37,112,49,37,100,65,0,27,99,0,27,91,117,0,27,91,115,0,27,91,83,0,27,91,84,0,9,0,43,16,44,17,45,24,46,25,48,-37,96,4,97,-79,102,-8,103,-15,104,-80,106,-39,107,-65,108,-38,109,-64,110,-59,111,126,112,-60,113,-60,114,-60,115,95,116,-61,117,-76,118,-63,119,-62,120,-77,121,-13,122,-14,123,-29,124,-40,125,-100,126,-2,0,27,91,90,0,27,91,85,0,27,70,94,0,27,70,36,0,27,70,66,0,27,70,67,0,27,70,68,0,27,70,69,0,27,70,70,0,27,70,71,0,27,70,72,0,27,70,73,0,27,70,74,0,27,70,75,0,27,70,76,0,27,70,77,0,27,70,78,0,27,70,79,0,27,70,80,0,27,70,81,0,27,70,82,0,27,70,83,0,27,70,84,0,27,70,85,0,27,70,86,0,27,70,87,0,27,70,88,0,27,70,89,0,27,70,90,0,27,70,97,0,27,70,98,0,27,70,99,0,27,70,100,0,27,70,101,0,27,70,102,0,27,70,103,0,27,70,104,0,27,70,105,0,27,70,106,0,27,70,107,0,27,70,109,0,27,70,110,0,27,70,111,0,27,70,112,0,27,70,113,0,27,70,114,0,27,70,115,0,27,70,116,0,27,70,117,0,27,70,118,0,27,70,119,0,27,70,120,0,27,70,121,0,27,70,122,0,27,91,109,0,27,91,51,37,112,49,37,100,109,0,27,91,52,37,112,49,37,100,109,0
};
// iTerm2.app|iterm2|terminal emulator for Mac OS X,
@@ -670,7 +676,7 @@ static const int8_t interix_8colour_terminfo[] = {
// user8=\E[?%[;0123456789]c,
// user9=\E[c,
static const int8_t iterm_256colour_terminfo[] = {
- 30,2,49,0,29,0,15,0,105,1,-29,3,105,84,101,114,109,50,46,97,112,112,124,105,116,101,114,109,50,124,116,101,114,109,105,110,97,108,32,101,109,117,108,97,116,111,114,32,102,111,114,32,77,97,99,32,79,83,32,88,0,0,1,0,0,1,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,1,80,0,0,0,8,0,0,0,24,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,50,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,0,0,0,0,1,0,0,0,4,0,6,0,8,0,25,0,30,0,37,0,41,0,45,0,-1,-1,56,0,73,0,75,0,79,0,86,0,-1,-1,88,0,95,0,-1,-1,99,0,-1,-1,103,0,107,0,111,0,-1,-1,117,0,119,0,124,0,-127,0,-1,-1,-109,0,-104,0,-1,-1,-1,-1,-99,0,-94,0,-89,0,-1,-1,-84,0,-82,0,-77,0,-1,-1,-59,0,-54,0,-48,0,-42,0,-1,-1,-24,0,-1,-1,-1,-1,-1,-1,-1,-1,-22,0,-18,0,-1,-1,-14,0,-1,-1,-1,-1,-1,-1,-12,0,-1,-1,-7,0,-1,-1,-1,-1,-1,-1,-1,-1,-3,0,1,1,7,1,11,1,15,1,19,1,25,1,31,1,37,1,43,1,49,1,-1,-1,-1,-1,53,1,-1,-1,57,1,62,1,67,1,71,1,78,1,-1,-1,85,1,89,1,97,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,105,1,-1,-1,108,1,117,1,126,1,-121,1,-112,1,-103,1,-94,1,-85,1,-76,1,-67,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-58,1,-1,-1,-1,-1,-32,1,-29,1,-18,1,-15,1,-13,1,-10,1,68,2,-1,-1,71,2,73,2,-1,-1,-1,-1,-1,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-1,-1,-1,-1,78,2,-1,-1,-127,2,-1,-1,-1,-1,-123,2,-117,2,-1,-1,-1,-1,-111,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-104,2,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-100,2,-1,-1,-1,-1,-1,-1,-1,-1,-93,2,-1,-1,-86,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-79,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-72,2,-66,2,-60,2,-53,2,-46,2,-39,2,-32,2,-24,2,-16,2,-8,2,0,3,8,3,16,3,24,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,32,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,37,3,48,3,53,3,72,3,76,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,85,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,90,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,96,3,-1,-1,-1,-1,-1,-1,100,3,-93,3,27,91,90,0,7,0,13,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,114,0,27,91,51,103,0,27,91,72,27,91,74,0,27,91,75,0,27,91,74,0,27,91,37,105,37,112,49,37,100,71,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,72,0,10,0,27,91,72,0,27,91,63,50,53,108,0,8,0,27,91,63,50,53,104,0,27,91,67,0,27,91,65,0,27,91,80,0,27,91,77,0,27,93,50,59,7,0,14,0,27,91,53,109,0,27,91,49,109,0,27,91,63,49,48,52,57,104,27,91,50,50,59,48,59,48,116,0,27,91,50,109,0,27,91,52,104,0,27,91,55,109,0,27,91,55,109,0,27,91,52,109,0,15,0,27,91,109,15,0,27,91,63,49,48,52,57,108,27,91,50,51,59,48,59,48,116,0,27,91,52,108,0,27,91,50,55,109,0,27,91,50,52,109,0,27,91,63,53,104,36,60,50,48,48,47,62,27,91,63,53,108,0,7,0,27,91,64,0,27,91,76,0,127,0,27,91,51,126,0,27,79,66,0,27,79,80,0,27,91,50,49,126,0,27,79,81,0,27,79,82,0,27,79,83,0,27,91,49,53,126,0,27,91,49,55,126,0,27,91,49,56,126,0,27,91,49,57,126,0,27,91,50,48,126,0,27,79,72,0,27,79,68,0,27,91,54,126,0,27,91,53,126,0,27,79,67,0,27,91,49,59,50,66,0,27,91,49,59,50,65,0,27,79,65,0,27,91,63,49,108,27,62,0,27,91,63,49,104,27,61,0,27,69,0,27,91,37,112,49,37,100,80,0,27,91,37,112,49,37,100,77,0,27,91,37,112,49,37,100,66,0,27,91,37,112,49,37,100,64,0,27,91,37,112,49,37,100,83,0,27,91,37,112,49,37,100,76,0,27,91,37,112,49,37,100,68,0,27,91,37,112,49,37,100,67,0,27,91,37,112,49,37,100,84,0,27,91,37,112,49,37,100,65,0,27,91,33,112,27,91,63,51,59,52,108,27,91,52,108,27,62,27,91,63,49,48,48,48,108,0,27,56,0,27,91,37,105,37,112,49,37,100,100,0,27,55,0,10,0,27,77,0,27,91,48,37,63,37,112,54,37,116,59,49,37,59,37,63,37,112,50,37,116,59,52,37,59,37,63,37,112,49,37,112,51,37,124,37,116,59,55,37,59,37,63,37,112,52,37,116,59,53,37,59,37,63,37,112,53,37,116,59,50,37,59,109,37,63,37,112,57,37,116,14,37,101,15,37,59,0,27,72,0,9,0,27,93,50,59,0,96,96,97,97,102,102,103,103,106,106,107,107,108,108,109,109,110,110,111,111,112,112,113,113,114,114,115,115,116,116,117,117,118,118,119,119,120,120,121,121,122,122,123,123,124,124,125,125,126,126,0,27,91,90,0,27,91,63,55,104,0,27,91,63,55,108,0,27,40,66,27,41,48,0,27,79,70,0,27,91,49,59,50,70,0,27,91,49,59,50,72,0,27,91,49,59,50,68,0,27,91,49,59,50,67,0,27,91,50,51,126,0,27,91,50,52,126,0,27,91,49,59,50,80,0,27,91,49,59,50,81,0,27,91,49,59,50,82,0,27,91,49,59,50,83,0,27,91,49,53,59,50,126,0,27,91,49,55,59,50,126,0,27,91,49,56,59,50,126,0,27,91,49,57,59,50,126,0,27,91,50,48,59,50,126,0,27,91,50,49,59,50,126,0,27,91,50,51,59,50,126,0,27,91,50,52,59,50,126,0,27,91,49,75,0,27,91,37,105,37,100,59,37,100,82,0,27,91,54,110,0,27,91,63,37,91,59,48,49,50,51,52,53,54,55,56,57,93,99,0,27,91,99,0,27,91,51,57,59,52,57,109,0,27,91,51,109,0,27,91,50,51,109,0,27,91,77,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,51,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,57,37,112,49,37,123,56,125,37,45,37,100,37,101,51,56,59,53,59,37,112,49,37,100,37,59,109,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,52,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,49,48,37,112,49,37,123,56,125,37,45,37,100,37,101,52,56,59,53,59,37,112,49,37,100,37,59,109,0,0,1,0,0,0,33,0,67,0,-37,1,0,0,0,0,5,0,32,0,37,0,45,0,52,0,59,0,66,0,74,0,81,0,88,0,96,0,104,0,111,0,119,0,126,0,-123,0,-115,0,-107,0,-102,0,-94,0,-87,0,-80,0,-74,0,-68,0,-63,0,-55,0,-48,0,-41,0,-36,0,-28,0,-21,0,-14,0,0,0,3,0,6,0,9,0,14,0,19,0,24,0,29,0,35,0,41,0,47,0,53,0,59,0,65,0,71,0,77,0,83,0,89,0,95,0,101,0,107,0,113,0,119,0,125,0,-125,0,-119,0,-113,0,-107,0,-101,0,-95,0,-90,0,-85,0,-80,0,-75,0,27,93,50,59,0,27,91,63,49,48,48,48,37,63,37,112,49,37,123,49,125,37,61,37,116,104,37,101,108,37,59,0,27,27,91,66,0,27,91,49,59,49,48,66,0,27,91,49,59,53,66,0,27,91,49,59,54,66,0,27,91,49,59,57,70,0,27,91,49,59,49,48,70,0,27,91,49,59,53,70,0,27,91,49,59,54,70,0,27,91,49,59,49,51,70,0,27,91,49,59,49,52,70,0,27,91,49,59,57,72,0,27,91,49,59,49,48,72,0,27,91,49,59,53,72,0,27,91,49,59,54,72,0,27,91,49,59,49,51,72,0,27,91,49,59,49,52,72,0,27,27,91,68,0,27,91,49,59,49,48,68,0,27,91,49,59,53,68,0,27,91,49,59,54,68,0,27,27,91,54,126,0,27,27,91,53,126,0,27,27,91,67,0,27,91,49,59,49,48,67,0,27,91,49,59,53,67,0,27,91,49,59,54,67,0,27,27,91,65,0,27,91,49,59,49,48,65,0,27,91,49,59,53,65,0,27,91,49,59,54,65,0,27,91,77,37,63,37,112,52,37,116,51,37,101,37,112,51,37,39,32,39,37,43,37,99,37,59,37,112,50,37,39,33,39,37,43,37,99,37,112,49,37,39,33,39,37,43,37,99,0,65,88,0,84,83,0,88,77,0,107,68,78,51,0,107,68,78,52,0,107,68,78,53,0,107,68,78,54,0,107,69,78,68,51,0,107,69,78,68,52,0,107,69,78,68,53,0,107,69,78,68,54,0,107,69,78,68,55,0,107,69,78,68,56,0,107,72,79,77,51,0,107,72,79,77,52,0,107,72,79,77,53,0,107,72,79,77,54,0,107,72,79,77,55,0,107,72,79,77,56,0,107,76,70,84,51,0,107,76,70,84,52,0,107,76,70,84,53,0,107,76,70,84,54,0,107,78,88,84,51,0,107,80,82,86,51,0,107,82,73,84,51,0,107,82,73,84,52,0,107,82,73,84,53,0,107,82,73,84,54,0,107,85,80,51,0,107,85,80,52,0,107,85,80,53,0,107,85,80,54,0,120,109,0 // NOLINT
+ 30,2,49,0,29,0,15,0,105,1,-29,3,105,84,101,114,109,50,46,97,112,112,124,105,116,101,114,109,50,124,116,101,114,109,105,110,97,108,32,101,109,117,108,97,116,111,114,32,102,111,114,32,77,97,99,32,79,83,32,88,0,0,1,0,0,1,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,1,80,0,0,0,8,0,0,0,24,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,50,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,0,0,0,0,1,0,0,0,4,0,6,0,8,0,25,0,30,0,37,0,41,0,45,0,-1,-1,56,0,73,0,75,0,79,0,86,0,-1,-1,88,0,95,0,-1,-1,99,0,-1,-1,103,0,107,0,111,0,-1,-1,117,0,119,0,124,0,-127,0,-1,-1,-109,0,-104,0,-1,-1,-1,-1,-99,0,-94,0,-89,0,-1,-1,-84,0,-82,0,-77,0,-1,-1,-59,0,-54,0,-48,0,-42,0,-1,-1,-24,0,-1,-1,-1,-1,-1,-1,-1,-1,-22,0,-18,0,-1,-1,-14,0,-1,-1,-1,-1,-1,-1,-12,0,-1,-1,-7,0,-1,-1,-1,-1,-1,-1,-1,-1,-3,0,1,1,7,1,11,1,15,1,19,1,25,1,31,1,37,1,43,1,49,1,-1,-1,-1,-1,53,1,-1,-1,57,1,62,1,67,1,71,1,78,1,-1,-1,85,1,89,1,97,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,105,1,-1,-1,108,1,117,1,126,1,-121,1,-112,1,-103,1,-94,1,-85,1,-76,1,-67,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-58,1,-1,-1,-1,-1,-32,1,-29,1,-18,1,-15,1,-13,1,-10,1,68,2,-1,-1,71,2,73,2,-1,-1,-1,-1,-1,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-1,-1,-1,-1,78,2,-1,-1,-127,2,-1,-1,-1,-1,-123,2,-117,2,-1,-1,-1,-1,-111,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-104,2,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-100,2,-1,-1,-1,-1,-1,-1,-1,-1,-93,2,-1,-1,-86,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-79,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-72,2,-66,2,-60,2,-53,2,-46,2,-39,2,-32,2,-24,2,-16,2,-8,2,0,3,8,3,16,3,24,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,32,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,37,3,48,3,53,3,72,3,76,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,85,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,90,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,96,3,-1,-1,-1,-1,-1,-1,100,3,-93,3,27,91,90,0,7,0,13,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,114,0,27,91,51,103,0,27,91,72,27,91,74,0,27,91,75,0,27,91,74,0,27,91,37,105,37,112,49,37,100,71,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,72,0,10,0,27,91,72,0,27,91,63,50,53,108,0,8,0,27,91,63,50,53,104,0,27,91,67,0,27,91,65,0,27,91,80,0,27,91,77,0,27,93,50,59,7,0,14,0,27,91,53,109,0,27,91,49,109,0,27,91,63,49,48,52,57,104,27,91,50,50,59,48,59,48,116,0,27,91,50,109,0,27,91,52,104,0,27,91,55,109,0,27,91,55,109,0,27,91,52,109,0,15,0,27,91,109,15,0,27,91,63,49,48,52,57,108,27,91,50,51,59,48,59,48,116,0,27,91,52,108,0,27,91,50,55,109,0,27,91,50,52,109,0,27,91,63,53,104,36,60,50,48,48,47,62,27,91,63,53,108,0,7,0,27,91,64,0,27,91,76,0,127,0,27,91,51,126,0,27,79,66,0,27,79,80,0,27,91,50,49,126,0,27,79,81,0,27,79,82,0,27,79,83,0,27,91,49,53,126,0,27,91,49,55,126,0,27,91,49,56,126,0,27,91,49,57,126,0,27,91,50,48,126,0,27,79,72,0,27,79,68,0,27,91,54,126,0,27,91,53,126,0,27,79,67,0,27,91,49,59,50,66,0,27,91,49,59,50,65,0,27,79,65,0,27,91,63,49,108,27,62,0,27,91,63,49,104,27,61,0,27,69,0,27,91,37,112,49,37,100,80,0,27,91,37,112,49,37,100,77,0,27,91,37,112,49,37,100,66,0,27,91,37,112,49,37,100,64,0,27,91,37,112,49,37,100,83,0,27,91,37,112,49,37,100,76,0,27,91,37,112,49,37,100,68,0,27,91,37,112,49,37,100,67,0,27,91,37,112,49,37,100,84,0,27,91,37,112,49,37,100,65,0,27,91,33,112,27,91,63,51,59,52,108,27,91,52,108,27,62,27,91,63,49,48,48,48,108,0,27,56,0,27,91,37,105,37,112,49,37,100,100,0,27,55,0,10,0,27,77,0,27,91,48,37,63,37,112,54,37,116,59,49,37,59,37,63,37,112,50,37,116,59,52,37,59,37,63,37,112,49,37,112,51,37,124,37,116,59,55,37,59,37,63,37,112,52,37,116,59,53,37,59,37,63,37,112,53,37,116,59,50,37,59,109,37,63,37,112,57,37,116,14,37,101,15,37,59,0,27,72,0,9,0,27,93,50,59,0,96,96,97,97,102,102,103,103,106,106,107,107,108,108,109,109,110,110,111,111,112,112,113,113,114,114,115,115,116,116,117,117,118,118,119,119,120,120,121,121,122,122,123,123,124,124,125,125,126,126,0,27,91,90,0,27,91,63,55,104,0,27,91,63,55,108,0,27,40,66,27,41,48,0,27,79,70,0,27,91,49,59,50,70,0,27,91,49,59,50,72,0,27,91,49,59,50,68,0,27,91,49,59,50,67,0,27,91,50,51,126,0,27,91,50,52,126,0,27,91,49,59,50,80,0,27,91,49,59,50,81,0,27,91,49,59,50,82,0,27,91,49,59,50,83,0,27,91,49,53,59,50,126,0,27,91,49,55,59,50,126,0,27,91,49,56,59,50,126,0,27,91,49,57,59,50,126,0,27,91,50,48,59,50,126,0,27,91,50,49,59,50,126,0,27,91,50,51,59,50,126,0,27,91,50,52,59,50,126,0,27,91,49,75,0,27,91,37,105,37,100,59,37,100,82,0,27,91,54,110,0,27,91,63,37,91,59,48,49,50,51,52,53,54,55,56,57,93,99,0,27,91,99,0,27,91,51,57,59,52,57,109,0,27,91,51,109,0,27,91,50,51,109,0,27,91,77,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,51,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,57,37,112,49,37,123,56,125,37,45,37,100,37,101,51,56,59,53,59,37,112,49,37,100,37,59,109,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,52,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,49,48,37,112,49,37,123,56,125,37,45,37,100,37,101,52,56,59,53,59,37,112,49,37,100,37,59,109,0,0,0,0,0,0,33,0,66,0,-37,1,0,0,5,0,32,0,37,0,45,0,52,0,59,0,66,0,74,0,81,0,88,0,96,0,104,0,111,0,119,0,126,0,-123,0,-115,0,-107,0,-102,0,-94,0,-87,0,-80,0,-74,0,-68,0,-63,0,-55,0,-48,0,-41,0,-36,0,-28,0,-21,0,-14,0,0,0,3,0,6,0,11,0,16,0,21,0,26,0,32,0,38,0,44,0,50,0,56,0,62,0,68,0,74,0,80,0,86,0,92,0,98,0,104,0,110,0,116,0,122,0,-128,0,-122,0,-116,0,-110,0,-104,0,-98,0,-93,0,-88,0,-83,0,-78,0,27,93,50,59,0,27,91,63,49,48,48,48,37,63,37,112,49,37,123,49,125,37,61,37,116,104,37,101,108,37,59,0,27,27,91,66,0,27,91,49,59,49,48,66,0,27,91,49,59,53,66,0,27,91,49,59,54,66,0,27,91,49,59,57,70,0,27,91,49,59,49,48,70,0,27,91,49,59,53,70,0,27,91,49,59,54,70,0,27,91,49,59,49,51,70,0,27,91,49,59,49,52,70,0,27,91,49,59,57,72,0,27,91,49,59,49,48,72,0,27,91,49,59,53,72,0,27,91,49,59,54,72,0,27,91,49,59,49,51,72,0,27,91,49,59,49,52,72,0,27,27,91,68,0,27,91,49,59,49,48,68,0,27,91,49,59,53,68,0,27,91,49,59,54,68,0,27,27,91,54,126,0,27,27,91,53,126,0,27,27,91,67,0,27,91,49,59,49,48,67,0,27,91,49,59,53,67,0,27,91,49,59,54,67,0,27,27,91,65,0,27,91,49,59,49,48,65,0,27,91,49,59,53,65,0,27,91,49,59,54,65,0,27,91,77,37,63,37,112,52,37,116,37,112,51,37,101,37,123,51,125,37,59,37,39,32,39,37,43,37,99,37,112,50,37,39,33,39,37,43,37,99,37,112,49,37,39,33,39,37,43,37,99,0,84,83,0,88,77,0,107,68,78,51,0,107,68,78,52,0,107,68,78,53,0,107,68,78,54,0,107,69,78,68,51,0,107,69,78,68,52,0,107,69,78,68,53,0,107,69,78,68,54,0,107,69,78,68,55,0,107,69,78,68,56,0,107,72,79,77,51,0,107,72,79,77,52,0,107,72,79,77,53,0,107,72,79,77,54,0,107,72,79,77,55,0,107,72,79,77,56,0,107,76,70,84,51,0,107,76,70,84,52,0,107,76,70,84,53,0,107,76,70,84,54,0,107,78,88,84,51,0,107,80,82,86,51,0,107,82,73,84,51,0,107,82,73,84,52,0,107,82,73,84,53,0,107,82,73,84,54,0,107,85,80,51,0,107,85,80,52,0,107,85,80,53,0,107,85,80,54,0,120,109,0
};
// linux|linux console,
@@ -686,7 +692,7 @@ static const int8_t iterm_256colour_terminfo[] = {
// max_colors#8,
// max_pairs#64,
// no_color_video#18,
-// acs_chars=++\054\054--..00__``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}c~~,
+// acs_chars=++\054\054--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
// bell=^G,
// carriage_return=\r,
// change_scroll_region=\E[%i%p1%d;%p2%dr,
@@ -792,7 +798,7 @@ static const int8_t iterm_256colour_terminfo[] = {
// user8=\E[?6c,
// user9=\E[c,
static const int8_t linux_16colour_terminfo[] = {
- 26,1,20,0,29,0,16,0,125,1,69,3,108,105,110,117,120,124,108,105,110,117,120,32,99,111,110,115,111,108,101,0,0,1,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,-1,-1,8,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,0,64,0,18,0,-1,-1,0,0,2,0,4,0,21,0,26,0,33,0,37,0,41,0,-1,-1,52,0,69,0,71,0,75,0,87,0,-1,-1,89,0,101,0,-1,-1,105,0,109,0,121,0,125,0,-1,-1,-1,-1,-127,0,-125,0,-120,0,-1,-1,-1,-1,-115,0,-110,0,-1,-1,-1,-1,-105,0,-100,0,-95,0,-90,0,-81,0,-79,0,-1,-1,-1,-1,-74,0,-69,0,-63,0,-57,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-39,0,-35,0,-1,-1,-31,0,-1,-1,-1,-1,-1,-1,-29,0,-1,-1,-24,0,-1,-1,-1,-1,-1,-1,-1,-1,-20,0,-15,0,-9,0,-4,0,1,1,6,1,11,1,17,1,23,1,29,1,35,1,40,1,-1,-1,45,1,-1,-1,49,1,54,1,59,1,-1,-1,-1,-1,-1,-1,63,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,67,1,-1,-1,70,1,79,1,88,1,97,1,-1,-1,106,1,115,1,124,1,-1,-1,-123,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-114,1,-1,-1,-1,-1,-1,-1,-108,1,-105,1,-94,1,-91,1,-89,1,-86,1,1,2,-1,-1,4,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6,2,-1,-1,-1,-1,-1,-1,-1,-1,10,2,-1,-1,77,2,-1,-1,-1,-1,81,2,87,2,-1,-1,-1,-1,93,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,97,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,102,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,104,2,110,2,116,2,122,2,-128,2,-122,2,-116,2,-110,2,-104,2,-98,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-92,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-87,2,-76,2,-71,2,-65,2,-61,2,-52,2,-48,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,33,3,-1,-1,-1,-1,-1,-1,37,3,47,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,57,3,63,3,7,0,13,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,114,0,27,91,51,103,0,27,91,72,27,91,74,0,27,91,75,0,27,91,74,0,27,91,37,105,37,112,49,37,100,71,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,72,0,10,0,27,91,72,0,27,91,63,50,53,108,27,91,63,49,99,0,8,0,27,91,63,50,53,104,27,91,63,48,99,0,27,91,67,0,27,91,65,0,27,91,63,50,53,104,27,91,63,56,99,0,27,91,80,0,27,91,77,0,14,0,27,91,53,109,0,27,91,49,109,0,27,91,50,109,0,27,91,52,104,0,27,91,55,109,0,27,91,55,109,0,27,91,52,109,0,27,91,37,112,49,37,100,88,0,15,0,27,91,109,15,0,27,91,52,108,0,27,91,50,55,109,0,27,91,50,52,109,0,27,91,63,53,104,36,60,50,48,48,47,62,27,91,63,53,108,0,27,91,64,0,27,91,76,0,127,0,27,91,51,126,0,27,91,66,0,27,91,91,65,0,27,91,50,49,126,0,27,91,91,66,0,27,91,91,67,0,27,91,91,68,0,27,91,91,69,0,27,91,49,55,126,0,27,91,49,56,126,0,27,91,49,57,126,0,27,91,50,48,126,0,27,91,49,126,0,27,91,50,126,0,27,91,68,0,27,91,54,126,0,27,91,53,126,0,27,91,67,0,27,91,65,0,13,10,0,27,91,37,112,49,37,100,80,0,27,91,37,112,49,37,100,77,0,27,91,37,112,49,37,100,66,0,27,91,37,112,49,37,100,64,0,27,91,37,112,49,37,100,76,0,27,91,37,112,49,37,100,68,0,27,91,37,112,49,37,100,67,0,27,91,37,112,49,37,100,65,0,27,99,27,93,82,0,27,56,0,27,91,37,105,37,112,49,37,100,100,0,27,55,0,10,0,27,77,0,27,91,48,59,49,48,37,63,37,112,49,37,116,59,55,37,59,37,63,37,112,50,37,116,59,52,37,59,37,63,37,112,51,37,116,59,55,37,59,37,63,37,112,52,37,116,59,53,37,59,37,63,37,112,53,37,116,59,50,37,59,37,63,37,112,54,37,116,59,49,37,59,109,37,63,37,112,57,37,116,14,37,101,15,37,59,0,27,72,0,9,0,27,91,71,0,43,43,44,44,45,45,46,46,48,48,95,95,96,96,97,97,102,102,103,103,104,104,105,105,106,106,107,107,108,108,109,109,110,110,111,111,112,112,113,113,114,114,115,115,116,116,117,117,118,118,119,119,120,120,121,121,122,122,123,123,124,124,125,99,126,126,0,27,91,90,0,27,91,63,55,104,0,27,91,63,55,108,0,27,41,48,0,27,91,52,126,0,26,0,27,91,50,51,126,0,27,91,50,52,126,0,27,91,50,53,126,0,27,91,50,54,126,0,27,91,50,56,126,0,27,91,50,57,126,0,27,91,51,49,126,0,27,91,51,50,126,0,27,91,51,51,126,0,27,91,51,52,126,0,27,91,49,75,0,27,91,37,105,37,100,59,37,100,82,0,27,91,54,110,0,27,91,63,54,99,0,27,91,99,0,27,91,51,57,59,52,57,109,0,27,93,82,0,27,93,80,37,112,49,37,120,37,112,50,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,48,50,120,37,112,51,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,48,50,120,37,112,52,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,48,50,120,0,27,91,77,0,27,91,51,37,112,49,37,100,109,0,27,91,52,37,112,49,37,100,109,0,27,91,49,49,109,0,27,91,49,48,109,0,0,3,0,1,0,12,0,28,0,63,0,1,0,0,0,1,0,-1,-1,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,3,0,6,0,9,0,12,0,15,0,18,0,21,0,24,0,27,0,33,0,39,0,43,0,47,0,51,0,55,0,27,91,51,74,0,65,88,0,71,48,0,88,84,0,85,56,0,69,48,0,69,51,0,83,48,0,84,83,0,88,77,0,107,69,78,68,53,0,107,72,79,77,53,0,107,97,50,0,107,98,49,0,107,98,51,0,107,99,50,0,120,109,0 // NOLINT
+ 26,1,20,0,29,0,16,0,125,1,67,3,108,105,110,117,120,124,108,105,110,117,120,32,99,111,110,115,111,108,101,0,0,1,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,-1,-1,8,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,0,64,0,18,0,-1,-1,0,0,2,0,4,0,21,0,26,0,33,0,37,0,41,0,-1,-1,52,0,69,0,71,0,75,0,87,0,-1,-1,89,0,101,0,-1,-1,105,0,109,0,121,0,125,0,-1,-1,-1,-1,-127,0,-125,0,-120,0,-1,-1,-1,-1,-115,0,-110,0,-1,-1,-1,-1,-105,0,-100,0,-95,0,-90,0,-81,0,-79,0,-1,-1,-1,-1,-74,0,-69,0,-63,0,-57,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-39,0,-35,0,-1,-1,-31,0,-1,-1,-1,-1,-1,-1,-29,0,-1,-1,-24,0,-1,-1,-1,-1,-1,-1,-1,-1,-20,0,-15,0,-9,0,-4,0,1,1,6,1,11,1,17,1,23,1,29,1,35,1,40,1,-1,-1,45,1,-1,-1,49,1,54,1,59,1,-1,-1,-1,-1,-1,-1,63,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,67,1,-1,-1,70,1,79,1,88,1,97,1,-1,-1,106,1,115,1,124,1,-1,-1,-123,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-114,1,-1,-1,-1,-1,-1,-1,-108,1,-105,1,-94,1,-91,1,-89,1,-86,1,1,2,-1,-1,4,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6,2,-1,-1,-1,-1,-1,-1,-1,-1,10,2,-1,-1,75,2,-1,-1,-1,-1,79,2,85,2,-1,-1,-1,-1,91,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,100,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,102,2,108,2,114,2,120,2,126,2,-124,2,-118,2,-112,2,-106,2,-100,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-94,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-89,2,-78,2,-73,2,-67,2,-63,2,-54,2,-50,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,31,3,-1,-1,-1,-1,-1,-1,35,3,45,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,55,3,61,3,7,0,13,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,114,0,27,91,51,103,0,27,91,72,27,91,74,0,27,91,75,0,27,91,74,0,27,91,37,105,37,112,49,37,100,71,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,72,0,10,0,27,91,72,0,27,91,63,50,53,108,27,91,63,49,99,0,8,0,27,91,63,50,53,104,27,91,63,48,99,0,27,91,67,0,27,91,65,0,27,91,63,50,53,104,27,91,63,56,99,0,27,91,80,0,27,91,77,0,14,0,27,91,53,109,0,27,91,49,109,0,27,91,50,109,0,27,91,52,104,0,27,91,55,109,0,27,91,55,109,0,27,91,52,109,0,27,91,37,112,49,37,100,88,0,15,0,27,91,109,15,0,27,91,52,108,0,27,91,50,55,109,0,27,91,50,52,109,0,27,91,63,53,104,36,60,50,48,48,47,62,27,91,63,53,108,0,27,91,64,0,27,91,76,0,127,0,27,91,51,126,0,27,91,66,0,27,91,91,65,0,27,91,50,49,126,0,27,91,91,66,0,27,91,91,67,0,27,91,91,68,0,27,91,91,69,0,27,91,49,55,126,0,27,91,49,56,126,0,27,91,49,57,126,0,27,91,50,48,126,0,27,91,49,126,0,27,91,50,126,0,27,91,68,0,27,91,54,126,0,27,91,53,126,0,27,91,67,0,27,91,65,0,13,10,0,27,91,37,112,49,37,100,80,0,27,91,37,112,49,37,100,77,0,27,91,37,112,49,37,100,66,0,27,91,37,112,49,37,100,64,0,27,91,37,112,49,37,100,76,0,27,91,37,112,49,37,100,68,0,27,91,37,112,49,37,100,67,0,27,91,37,112,49,37,100,65,0,27,99,27,93,82,0,27,56,0,27,91,37,105,37,112,49,37,100,100,0,27,55,0,10,0,27,77,0,27,91,48,59,49,48,37,63,37,112,49,37,116,59,55,37,59,37,63,37,112,50,37,116,59,52,37,59,37,63,37,112,51,37,116,59,55,37,59,37,63,37,112,52,37,116,59,53,37,59,37,63,37,112,53,37,116,59,50,37,59,37,63,37,112,54,37,116,59,49,37,59,109,37,63,37,112,57,37,116,14,37,101,15,37,59,0,27,72,0,9,0,27,91,71,0,43,43,44,44,45,45,46,46,48,48,96,96,97,97,102,102,103,103,104,104,105,105,106,106,107,107,108,108,109,109,110,110,111,111,112,112,113,113,114,114,115,115,116,116,117,117,118,118,119,119,120,120,121,121,122,122,123,123,124,124,125,125,126,126,0,27,91,90,0,27,91,63,55,104,0,27,91,63,55,108,0,27,41,48,0,27,91,52,126,0,26,0,27,91,50,51,126,0,27,91,50,52,126,0,27,91,50,53,126,0,27,91,50,54,126,0,27,91,50,56,126,0,27,91,50,57,126,0,27,91,51,49,126,0,27,91,51,50,126,0,27,91,51,51,126,0,27,91,51,52,126,0,27,91,49,75,0,27,91,37,105,37,100,59,37,100,82,0,27,91,54,110,0,27,91,63,54,99,0,27,91,99,0,27,91,51,57,59,52,57,109,0,27,93,82,0,27,93,80,37,112,49,37,120,37,112,50,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,48,50,120,37,112,51,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,48,50,120,37,112,52,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,48,50,120,0,27,91,77,0,27,91,51,37,112,49,37,100,109,0,27,91,52,37,112,49,37,100,109,0,27,91,49,49,109,0,27,91,49,48,109,0,0,1,0,1,0,1,0,4,0,14,0,1,0,1,0,0,0,0,0,3,0,6,0,27,91,51,74,0,65,88,0,85,56,0,69,51,0
};
// putty-256color|PuTTY 0.58 with xterm 256-colors,
@@ -855,12 +861,18 @@ static const int8_t linux_16colour_terminfo[] = {
// from_status_line=^G,
// init_2string=\E7\E[r\E[m\E[?7h\E[?1;4;6l\E[4l\E8\E>\E]R,
// insert_line=\E[L,
-// key_b2=\E[G,
+// key_a1=\EOq,
+// key_a3=\EOs,
+// key_b2=\EOr,
// key_backspace=\177,
// key_btab=\E[Z,
+// key_c1=\EOp,
+// key_c3=\EOn,
// key_dc=\E[3~,
// key_down=\EOB,
// key_end=\E[4~,
+// key_enter=\EOM,
+// key_f0=\EOy,
// key_f1=\E[11~,
// key_f10=\E[21~,
// key_f11=\E[23~,
@@ -884,14 +896,12 @@ static const int8_t linux_16colour_terminfo[] = {
// key_home=\E[1~,
// key_ic=\E[2~,
// key_left=\EOD,
-// key_mouse=\E[M,
+// key_mouse=\E[<,
// key_npage=\E[6~,
// key_ppage=\E[5~,
// key_right=\EOC,
// key_sf=\E[B,
-// key_sleft=\E[D,
// key_sr=\E[A,
-// key_sright=\E[C,
// key_suspend=^Z,
// key_up=\EOA,
// keypad_local=\E[?1l\E>,
@@ -908,6 +918,7 @@ static const int8_t linux_16colour_terminfo[] = {
// parm_right_cursor=\E[%p1%dC,
// parm_rindex=\E[%p1%dT,
// parm_up_cursor=\E[%p1%dA,
+// repeat_char=%p1%c\E[%p2%{1}%-%db,
// reset_2string=\E<\E["p\E[50;6"p\Ec\E[?3l\E]R\E[?1000l,
// restore_cursor=\E8,
// row_address=\E[%i%p1%dd,
@@ -928,7 +939,7 @@ static const int8_t linux_16colour_terminfo[] = {
// user8=\E[?6c,
// user9=\E[c,
static const int8_t putty_256colour_terminfo[] = {
- 30,2,48,0,29,0,16,0,125,1,-106,4,112,117,116,116,121,45,50,53,54,99,111,108,111,114,124,80,117,84,84,89,32,48,46,53,56,32,119,105,116,104,32,120,116,101,114,109,32,50,53,54,45,99,111,108,111,114,115,0,1,1,0,0,1,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1,8,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,0,0,0,0,1,0,22,0,0,0,0,0,4,0,6,0,8,0,25,0,30,0,37,0,41,0,45,0,-1,-1,56,0,73,0,76,0,80,0,87,0,-1,-1,89,0,96,0,-1,-1,100,0,-1,-1,103,0,107,0,111,0,-1,-1,117,0,119,0,124,0,-127,0,-1,-1,-1,-1,-120,0,-1,-1,-1,-1,-115,0,-110,0,-105,0,-100,0,-91,0,-89,0,-84,0,-1,-1,-73,0,-68,0,-62,0,-56,0,-1,-1,-38,0,-1,-1,-36,0,-1,-1,-1,-1,-1,-1,-2,0,-1,-1,2,1,-1,-1,-1,-1,-1,-1,4,1,-1,-1,9,1,-1,-1,-1,-1,-1,-1,-1,-1,13,1,19,1,25,1,31,1,37,1,43,1,49,1,55,1,61,1,67,1,73,1,78,1,-1,-1,83,1,-1,-1,87,1,92,1,97,1,101,1,105,1,-1,-1,109,1,113,1,121,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-127,1,-1,-1,-124,1,-115,1,-106,1,-1,-1,-97,1,-88,1,-79,1,-70,1,-61,1,-52,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-43,1,-1,-1,-1,-1,-10,1,-7,1,4,2,7,2,9,2,12,2,84,2,-1,-1,87,2,89,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,94,2,-1,-1,-1,-1,-1,-1,-1,-1,98,2,-1,-1,-107,2,-1,-1,-1,-1,-103,2,-97,2,-1,-1,-1,-1,-91,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-84,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-79,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-77,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-73,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-69,2,-63,2,-57,2,-51,2,-45,2,-39,2,-33,2,-27,2,-21,2,-15,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-9,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-4,2,7,3,12,3,18,3,22,3,31,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,35,3,-1,-1,-1,-1,-1,-1,39,3,102,3,-1,-1,-1,-1,-1,-1,-90,3,-84,3,-78,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-72,3,-118,4,-112,4,27,91,90,0,7,0,13,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,114,0,27,91,51,103,0,27,91,72,27,91,74,0,27,91,75,0,27,91,74,0,27,91,37,105,37,112,49,37,100,71,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,72,0,27,68,0,27,91,72,0,27,91,63,50,53,108,0,8,0,27,91,63,50,53,104,0,27,91,67,0,27,77,0,27,91,80,0,27,91,77,0,27,93,48,59,7,0,14,0,27,91,53,109,0,27,91,49,109,0,27,91,63,52,55,104,0,27,91,52,104,0,27,91,55,109,0,27,91,55,109,0,27,91,52,109,0,27,91,37,112,49,37,100,88,0,15,0,27,91,109,15,0,27,91,50,74,27,91,63,52,55,108,0,27,91,52,108,0,27,91,50,55,109,0,27,91,50,52,109,0,27,91,63,53,104,36,60,49,48,48,47,62,27,91,63,53,108,0,7,0,27,55,27,91,114,27,91,109,27,91,63,55,104,27,91,63,49,59,52,59,54,108,27,91,52,108,27,56,27,62,27,93,82,0,27,91,76,0,127,0,27,91,51,126,0,27,79,66,0,27,91,49,49,126,0,27,91,50,49,126,0,27,91,49,50,126,0,27,91,49,51,126,0,27,91,49,52,126,0,27,91,49,53,126,0,27,91,49,55,126,0,27,91,49,56,126,0,27,91,49,57,126,0,27,91,50,48,126,0,27,91,49,126,0,27,91,50,126,0,27,79,68,0,27,91,54,126,0,27,91,53,126,0,27,79,67,0,27,91,66,0,27,91,65,0,27,79,65,0,27,91,63,49,108,27,62,0,27,91,63,49,104,27,61,0,13,10,0,27,91,37,112,49,37,100,80,0,27,91,37,112,49,37,100,77,0,27,91,37,112,49,37,100,66,0,27,91,37,112,49,37,100,83,0,27,91,37,112,49,37,100,76,0,27,91,37,112,49,37,100,68,0,27,91,37,112,49,37,100,67,0,27,91,37,112,49,37,100,84,0,27,91,37,112,49,37,100,65,0,27,60,27,91,34,112,27,91,53,48,59,54,34,112,27,99,27,91,63,51,108,27,93,82,27,91,63,49,48,48,48,108,0,27,56,0,27,91,37,105,37,112,49,37,100,100,0,27,55,0,10,0,27,77,0,27,91,48,37,63,37,112,49,37,112,54,37,124,37,116,59,49,37,59,37,63,37,112,50,37,116,59,52,37,59,37,63,37,112,49,37,112,51,37,124,37,116,59,55,37,59,37,63,37,112,52,37,116,59,53,37,59,109,37,63,37,112,57,37,116,14,37,101,15,37,59,0,27,72,0,9,0,27,93,48,59,0,27,91,71,0,96,96,97,97,102,102,103,103,106,106,107,107,108,108,109,109,110,110,111,111,112,112,113,113,114,114,115,115,116,116,117,117,118,118,119,119,120,120,121,121,122,122,123,123,124,124,125,125,126,126,0,27,91,90,0,27,91,63,55,104,0,27,91,63,55,108,0,27,40,66,27,41,48,0,27,91,52,126,0,26,0,27,91,68,0,27,91,67,0,27,91,50,51,126,0,27,91,50,52,126,0,27,91,50,53,126,0,27,91,50,54,126,0,27,91,50,56,126,0,27,91,50,57,126,0,27,91,51,49,126,0,27,91,51,50,126,0,27,91,51,51,126,0,27,91,51,52,126,0,27,91,49,75,0,27,91,37,105,37,100,59,37,100,82,0,27,91,54,110,0,27,91,63,54,99,0,27,91,99,0,27,91,51,57,59,52,57,109,0,27,93,82,0,27,91,77,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,51,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,57,37,112,49,37,123,56,125,37,45,37,100,37,101,51,56,59,53,59,37,112,49,37,100,37,59,109,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,52,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,49,48,37,112,49,37,123,56,125,37,45,37,100,37,101,52,56,59,53,59,37,112,49,37,100,37,59,109,0,27,91,49,48,109,0,27,91,49,49,109,0,27,91,49,50,109,0,37,63,37,112,49,37,123,56,125,37,61,37,116,27,37,37,71,-30,-105,-104,27,37,37,64,37,101,37,112,49,37,123,49,48,125,37,61,37,116,27,37,37,71,-30,-105,-103,27,37,37,64,37,101,37,112,49,37,123,49,50,125,37,61,37,116,27,37,37,71,-30,-103,-128,27,37,37,64,37,101,37,112,49,37,123,49,51,125,37,61,37,116,27,37,37,71,-30,-103,-86,27,37,37,64,37,101,37,112,49,37,123,49,52,125,37,61,37,116,27,37,37,71,-30,-103,-85,27,37,37,64,37,101,37,112,49,37,123,49,53,125,37,61,37,116,27,37,37,71,-30,-104,-68,27,37,37,64,37,101,37,112,49,37,123,50,55,125,37,61,37,116,27,37,37,71,-30,-122,-112,27,37,37,64,37,101,37,112,49,37,123,49,53,53,125,37,61,37,116,27,37,37,71,-32,-126,-94,27,37,37,64,37,101,37,112,49,37,99,37,59,0,27,91,49,49,109,0,27,91,49,48,109,0,3,0,1,0,60,0,124,0,74,1,0,0,1,0,1,0,0,0,-1,-1,0,0,-1,-1,-1,-1,-1,-1,5,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,3,0,6,0,9,0,12,0,15,0,18,0,21,0,24,0,27,0,30,0,33,0,39,0,45,0,50,0,55,0,60,0,65,0,70,0,74,0,79,0,84,0,89,0,94,0,99,0,105,0,111,0,117,0,123,0,-127,0,-121,0,-115,0,-109,0,-103,0,-97,0,-91,0,-85,0,-80,0,-75,0,-69,0,-63,0,-57,0,-51,0,-45,0,-39,0,-33,0,-27,0,-21,0,-15,0,-9,0,-3,0,3,1,9,1,15,1,21,1,25,1,30,1,35,1,40,1,45,1,49,1,53,1,57,1,61,1,27,91,51,74,0,27,93,48,59,0,65,88,0,71,48,0,88,84,0,85,56,0,69,48,0,69,51,0,83,48,0,83,101,0,83,115,0,84,83,0,88,77,0,103,114,98,111,109,0,103,115,98,111,109,0,107,68,67,51,0,107,68,67,52,0,107,68,67,53,0,107,68,67,54,0,107,68,67,55,0,107,68,78,0,107,68,78,51,0,107,68,78,52,0,107,68,78,53,0,107,68,78,54,0,107,68,78,55,0,107,69,78,68,51,0,107,69,78,68,52,0,107,69,78,68,53,0,107,69,78,68,54,0,107,69,78,68,55,0,107,69,78,68,56,0,107,72,79,77,51,0,107,72,79,77,52,0,107,72,79,77,53,0,107,72,79,77,54,0,107,72,79,77,55,0,107,72,79,77,56,0,107,73,67,53,0,107,73,67,54,0,107,76,70,84,51,0,107,76,70,84,52,0,107,76,70,84,53,0,107,76,70,84,54,0,107,76,70,84,55,0,107,78,88,84,51,0,107,78,88,84,53,0,107,78,88,84,54,0,107,80,82,86,51,0,107,80,82,86,53,0,107,80,82,86,54,0,107,82,73,84,51,0,107,82,73,84,52,0,107,82,73,84,53,0,107,82,73,84,54,0,107,82,73,84,55,0,107,85,80,0,107,85,80,51,0,107,85,80,52,0,107,85,80,53,0,107,85,80,54,0,107,97,50,0,107,98,49,0,107,98,51,0,107,99,50,0,120,109,0 // NOLINT
+ 30,2,48,0,29,0,16,0,125,1,-70,4,112,117,116,116,121,45,50,53,54,99,111,108,111,114,124,80,117,84,84,89,32,48,46,53,56,32,119,105,116,104,32,120,116,101,114,109,32,50,53,54,45,99,111,108,111,114,115,0,1,1,0,0,1,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1,8,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,0,0,0,0,1,0,22,0,0,0,0,0,4,0,6,0,8,0,25,0,30,0,37,0,41,0,45,0,-1,-1,56,0,73,0,76,0,80,0,87,0,-1,-1,89,0,96,0,-1,-1,100,0,-1,-1,103,0,107,0,111,0,-1,-1,117,0,119,0,124,0,-127,0,-1,-1,-1,-1,-120,0,-1,-1,-1,-1,-115,0,-110,0,-105,0,-100,0,-91,0,-89,0,-84,0,-1,-1,-73,0,-68,0,-62,0,-56,0,-1,-1,-38,0,-1,-1,-36,0,-1,-1,-1,-1,-1,-1,-2,0,-1,-1,2,1,-1,-1,-1,-1,-1,-1,4,1,-1,-1,9,1,-1,-1,-1,-1,-1,-1,13,1,17,1,23,1,29,1,35,1,41,1,47,1,53,1,59,1,65,1,71,1,77,1,82,1,-1,-1,87,1,-1,-1,91,1,96,1,101,1,105,1,109,1,-1,-1,113,1,117,1,125,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-123,1,-1,-1,-120,1,-111,1,-102,1,-1,-1,-93,1,-84,1,-75,1,-66,1,-57,1,-48,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-39,1,-1,-1,-19,1,-1,-1,-1,-1,14,2,17,2,28,2,31,2,33,2,36,2,108,2,-1,-1,111,2,113,2,-1,-1,-1,-1,-1,-1,118,2,122,2,126,2,-126,2,-122,2,-1,-1,-1,-1,-118,2,-1,-1,-67,2,-1,-1,-1,-1,-63,2,-57,2,-1,-1,-1,-1,-51,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-44,2,-39,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-35,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-33,2,-27,2,-21,2,-15,2,-9,2,-3,2,3,3,9,3,15,3,21,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,27,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,32,3,43,3,48,3,54,3,58,3,67,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,71,3,-1,-1,-1,-1,-1,-1,75,3,-118,3,-1,-1,-1,-1,-1,-1,-54,3,-48,3,-42,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-36,3,-82,4,-76,4,27,91,90,0,7,0,13,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,114,0,27,91,51,103,0,27,91,72,27,91,74,0,27,91,75,0,27,91,74,0,27,91,37,105,37,112,49,37,100,71,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,72,0,27,68,0,27,91,72,0,27,91,63,50,53,108,0,8,0,27,91,63,50,53,104,0,27,91,67,0,27,77,0,27,91,80,0,27,91,77,0,27,93,48,59,7,0,14,0,27,91,53,109,0,27,91,49,109,0,27,91,63,52,55,104,0,27,91,52,104,0,27,91,55,109,0,27,91,55,109,0,27,91,52,109,0,27,91,37,112,49,37,100,88,0,15,0,27,91,109,15,0,27,91,50,74,27,91,63,52,55,108,0,27,91,52,108,0,27,91,50,55,109,0,27,91,50,52,109,0,27,91,63,53,104,36,60,49,48,48,47,62,27,91,63,53,108,0,7,0,27,55,27,91,114,27,91,109,27,91,63,55,104,27,91,63,49,59,52,59,54,108,27,91,52,108,27,56,27,62,27,93,82,0,27,91,76,0,127,0,27,91,51,126,0,27,79,66,0,27,79,121,0,27,91,49,49,126,0,27,91,50,49,126,0,27,91,49,50,126,0,27,91,49,51,126,0,27,91,49,52,126,0,27,91,49,53,126,0,27,91,49,55,126,0,27,91,49,56,126,0,27,91,49,57,126,0,27,91,50,48,126,0,27,91,49,126,0,27,91,50,126,0,27,79,68,0,27,91,54,126,0,27,91,53,126,0,27,79,67,0,27,91,66,0,27,91,65,0,27,79,65,0,27,91,63,49,108,27,62,0,27,91,63,49,104,27,61,0,13,10,0,27,91,37,112,49,37,100,80,0,27,91,37,112,49,37,100,77,0,27,91,37,112,49,37,100,66,0,27,91,37,112,49,37,100,83,0,27,91,37,112,49,37,100,76,0,27,91,37,112,49,37,100,68,0,27,91,37,112,49,37,100,67,0,27,91,37,112,49,37,100,84,0,27,91,37,112,49,37,100,65,0,37,112,49,37,99,27,91,37,112,50,37,123,49,125,37,45,37,100,98,0,27,60,27,91,34,112,27,91,53,48,59,54,34,112,27,99,27,91,63,51,108,27,93,82,27,91,63,49,48,48,48,108,0,27,56,0,27,91,37,105,37,112,49,37,100,100,0,27,55,0,10,0,27,77,0,27,91,48,37,63,37,112,49,37,112,54,37,124,37,116,59,49,37,59,37,63,37,112,50,37,116,59,52,37,59,37,63,37,112,49,37,112,51,37,124,37,116,59,55,37,59,37,63,37,112,52,37,116,59,53,37,59,109,37,63,37,112,57,37,116,14,37,101,15,37,59,0,27,72,0,9,0,27,93,48,59,0,27,79,113,0,27,79,115,0,27,79,114,0,27,79,112,0,27,79,110,0,96,96,97,97,102,102,103,103,106,106,107,107,108,108,109,109,110,110,111,111,112,112,113,113,114,114,115,115,116,116,117,117,118,118,119,119,120,120,121,121,122,122,123,123,124,124,125,125,126,126,0,27,91,90,0,27,91,63,55,104,0,27,91,63,55,108,0,27,40,66,27,41,48,0,27,91,52,126,0,27,79,77,0,26,0,27,91,50,51,126,0,27,91,50,52,126,0,27,91,50,53,126,0,27,91,50,54,126,0,27,91,50,56,126,0,27,91,50,57,126,0,27,91,51,49,126,0,27,91,51,50,126,0,27,91,51,51,126,0,27,91,51,52,126,0,27,91,49,75,0,27,91,37,105,37,100,59,37,100,82,0,27,91,54,110,0,27,91,63,54,99,0,27,91,99,0,27,91,51,57,59,52,57,109,0,27,93,82,0,27,91,60,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,51,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,57,37,112,49,37,123,56,125,37,45,37,100,37,101,51,56,59,53,59,37,112,49,37,100,37,59,109,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,52,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,49,48,37,112,49,37,123,56,125,37,45,37,100,37,101,52,56,59,53,59,37,112,49,37,100,37,59,109,0,27,91,49,48,109,0,27,91,49,49,109,0,27,91,49,50,109,0,37,63,37,112,49,37,123,56,125,37,61,37,116,27,37,37,71,-30,-105,-104,27,37,37,64,37,101,37,112,49,37,123,49,48,125,37,61,37,116,27,37,37,71,-30,-105,-103,27,37,37,64,37,101,37,112,49,37,123,49,50,125,37,61,37,116,27,37,37,71,-30,-103,-128,27,37,37,64,37,101,37,112,49,37,123,49,51,125,37,61,37,116,27,37,37,71,-30,-103,-86,27,37,37,64,37,101,37,112,49,37,123,49,52,125,37,61,37,116,27,37,37,71,-30,-103,-85,27,37,37,64,37,101,37,112,49,37,123,49,53,125,37,61,37,116,27,37,37,71,-30,-104,-68,27,37,37,64,37,101,37,112,49,37,123,50,55,125,37,61,37,116,27,37,37,71,-30,-122,-112,27,37,37,64,37,101,37,112,49,37,123,49,53,53,125,37,61,37,116,27,37,37,71,-32,-126,-94,27,37,37,64,37,101,37,112,49,37,99,37,59,0,27,91,49,49,109,0,27,91,49,48,109,0,1,0,1,0,20,0,42,0,-17,0,1,0,1,0,0,0,0,0,5,0,10,0,42,0,46,0,50,0,54,0,58,0,62,0,66,0,70,0,74,0,78,0,82,0,86,0,90,0,94,0,98,0,102,0,106,0,0,0,3,0,6,0,9,0,12,0,15,0,19,0,23,0,27,0,31,0,35,0,39,0,43,0,47,0,51,0,57,0,63,0,69,0,75,0,81,0,87,0,93,0,27,91,51,74,0,27,93,48,59,0,27,91,63,49,48,48,54,59,49,48,48,48,37,63,37,112,49,37,123,49,125,37,61,37,116,104,37,101,108,37,59,0,27,79,113,0,27,79,114,0,27,79,115,0,27,79,116,0,27,79,117,0,27,79,118,0,27,79,119,0,27,79,120,0,27,79,121,0,27,79,108,0,27,79,81,0,27,79,110,0,27,79,82,0,27,79,80,0,27,79,83,0,27,79,112,0,27,91,60,37,105,37,112,51,37,100,59,37,112,49,37,100,59,37,112,50,37,100,59,37,63,37,112,52,37,116,77,37,101,109,37,59,0,88,84,0,85,56,0,69,51,0,84,83,0,88,77,0,107,112,49,0,107,112,50,0,107,112,51,0,107,112,52,0,107,112,53,0,107,112,54,0,107,112,55,0,107,112,56,0,107,112,57,0,107,112,65,68,68,0,107,112,68,73,86,0,107,112,68,79,84,0,107,112,77,85,76,0,107,112,78,85,77,0,107,112,83,85,66,0,107,112,90,82,79,0,120,109,0
};
// rxvt-256color|rxvt 2.7.9 with xterm 256-colors,
@@ -984,7 +995,6 @@ static const int8_t putty_256colour_terminfo[] = {
// init_1string=\E[?47l\E=\E[?1l,
// init_2string=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l,
// initialize_color=\E]4;%p1%d;rgb\072%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\,
-// insert_character=\E[@,
// insert_line=\E[L,
// key_a1=\EOw,
// key_a3=\EOy,
@@ -1093,7 +1103,7 @@ static const int8_t putty_256colour_terminfo[] = {
// user8=\E[?1;2c,
// user9=\E[c,
static const int8_t rxvt_256colour_terminfo[] = {
- 30,2,47,0,38,0,15,0,110,1,-31,4,114,120,118,116,45,50,53,54,99,111,108,111,114,124,114,120,118,116,32,50,46,55,46,57,32,119,105,116,104,32,120,116,101,114,109,32,50,53,54,45,99,111,108,111,114,115,0,0,1,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,80,0,0,0,8,0,0,0,24,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,0,0,0,0,1,0,-1,-1,0,0,2,0,4,0,21,0,26,0,34,0,38,0,42,0,-1,-1,53,0,70,0,72,0,76,0,83,0,-1,-1,85,0,92,0,-1,-1,96,0,-1,-1,-1,-1,100,0,-1,-1,-1,-1,104,0,106,0,111,0,116,0,-1,-1,-1,-1,125,0,-1,-1,-1,-1,-126,0,-121,0,-116,0,-1,-1,-111,0,-109,0,-104,0,-1,-1,-91,0,-86,0,-80,0,-74,0,-1,-1,-1,-1,-56,0,-42,0,-1,-1,-1,-1,-8,0,-4,0,-1,-1,0,1,-1,-1,-1,-1,-1,-1,2,1,-1,-1,7,1,-1,-1,11,1,-1,-1,16,1,22,1,28,1,34,1,40,1,46,1,52,1,58,1,64,1,70,1,76,1,82,1,87,1,-1,-1,92,1,-1,-1,96,1,101,1,106,1,110,1,114,1,-1,-1,118,1,122,1,125,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-128,1,-119,1,-110,1,-1,-1,-101,1,-92,1,-83,1,-1,-1,-74,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-65,1,-32,1,-1,-1,-1,-1,18,2,21,2,32,2,35,2,37,2,40,2,107,2,-1,-1,110,2,-1,-1,-1,-1,-1,-1,-1,-1,112,2,116,2,120,2,124,2,-128,2,-1,-1,-1,-1,-124,2,-1,-1,-73,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-69,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-62,2,-57,2,-1,-1,-53,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-48,2,-1,-1,-43,2,-38,2,-1,-1,-1,-1,-1,-1,-1,-1,-33,2,-28,2,-23,2,-1,-1,-1,-1,-19,2,-1,-1,-14,2,-1,-1,-1,-1,-1,-1,-9,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-5,2,1,3,7,3,13,3,19,3,25,3,31,3,37,3,43,3,49,3,55,3,61,3,67,3,73,3,79,3,85,3,91,3,97,3,103,3,109,3,115,3,121,3,127,3,-123,3,-117,3,-111,3,-105,3,-99,3,-93,3,-87,3,-81,3,-75,3,-69,3,-63,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-57,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-52,3,-41,3,-36,3,-28,3,-24,3,-15,3,-8,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,86,4,-1,-1,-1,-1,-1,-1,90,4,-103,4,-1,-1,-1,-1,-1,-1,-39,4,-35,4,7,0,13,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,114,0,27,91,51,103,0,27,91,72,27,91,50,74,0,27,91,75,0,27,91,74,0,27,91,37,105,37,112,49,37,100,71,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,72,0,10,0,27,91,72,0,27,91,63,50,53,108,0,8,0,27,91,63,50,53,104,0,27,91,67,0,27,91,65,0,27,91,77,0,14,0,27,91,53,109,0,27,91,49,109,0,27,55,27,91,63,52,55,104,0,27,91,52,104,0,27,91,55,109,0,27,91,55,109,0,27,91,52,109,0,15,0,27,91,109,15,0,27,91,50,74,27,91,63,52,55,108,27,56,0,27,91,52,108,0,27,91,50,55,109,0,27,91,50,52,109,0,27,91,63,53,104,36,60,49,48,48,47,62,27,91,63,53,108,0,27,91,63,52,55,108,27,61,27,91,63,49,108,0,27,91,114,27,91,109,27,91,50,74,27,91,72,27,91,63,55,104,27,91,63,49,59,51,59,52,59,54,108,27,91,52,108,0,27,91,64,0,27,91,76,0,8,0,27,91,51,126,0,27,91,66,0,27,91,56,94,0,27,91,50,49,126,0,27,91,49,49,126,0,27,91,50,49,126,0,27,91,49,50,126,0,27,91,49,51,126,0,27,91,49,52,126,0,27,91,49,53,126,0,27,91,49,55,126,0,27,91,49,56,126,0,27,91,49,57,126,0,27,91,50,48,126,0,27,91,55,126,0,27,91,50,126,0,27,91,68,0,27,91,54,126,0,27,91,53,126,0,27,91,67,0,27,91,97,0,27,91,98,0,27,91,65,0,27,62,0,27,61,0,27,91,37,112,49,37,100,77,0,27,91,37,112,49,37,100,66,0,27,91,37,112,49,37,100,64,0,27,91,37,112,49,37,100,76,0,27,91,37,112,49,37,100,68,0,27,91,37,112,49,37,100,67,0,27,91,37,112,49,37,100,65,0,27,62,27,91,49,59,51,59,52,59,53,59,54,108,27,91,63,55,104,27,91,109,27,91,114,27,91,50,74,27,91,72,0,27,91,114,27,91,109,27,91,50,74,27,91,72,27,91,63,55,104,27,91,63,49,59,51,59,52,59,54,108,27,91,52,108,27,62,27,91,63,49,48,48,48,108,27,91,63,50,53,104,0,27,56,0,27,91,37,105,37,112,49,37,100,100,0,27,55,0,10,0,27,77,0,27,91,48,37,63,37,112,54,37,116,59,49,37,59,37,63,37,112,50,37,116,59,52,37,59,37,63,37,112,49,37,112,51,37,124,37,116,59,55,37,59,37,63,37,112,52,37,116,59,53,37,59,109,37,63,37,112,57,37,116,14,37,101,15,37,59,0,27,72,0,9,0,27,79,119,0,27,79,121,0,27,79,117,0,27,79,113,0,27,79,115,0,96,96,97,97,102,102,103,103,106,106,107,107,108,108,109,109,110,110,111,111,112,112,113,113,114,114,115,115,116,116,117,117,118,118,119,119,120,120,121,121,122,122,123,123,124,124,125,125,126,126,0,27,91,90,0,27,40,66,27,41,48,0,27,91,56,126,0,27,79,77,0,27,91,49,126,0,27,91,51,36,0,27,91,52,126,0,27,91,56,36,0,27,91,55,36,0,27,91,50,36,0,27,91,100,0,27,91,54,36,0,27,91,53,36,0,27,91,99,0,27,91,50,51,126,0,27,91,50,52,126,0,27,91,50,53,126,0,27,91,50,54,126,0,27,91,50,56,126,0,27,91,50,57,126,0,27,91,51,49,126,0,27,91,51,50,126,0,27,91,51,51,126,0,27,91,51,52,126,0,27,91,50,51,36,0,27,91,50,52,36,0,27,91,49,49,94,0,27,91,49,50,94,0,27,91,49,51,94,0,27,91,49,52,94,0,27,91,49,53,94,0,27,91,49,55,94,0,27,91,49,56,94,0,27,91,49,57,94,0,27,91,50,48,94,0,27,91,50,49,94,0,27,91,50,51,94,0,27,91,50,52,94,0,27,91,50,53,94,0,27,91,50,54,94,0,27,91,50,56,94,0,27,91,50,57,94,0,27,91,51,49,94,0,27,91,51,50,94,0,27,91,51,51,94,0,27,91,51,52,94,0,27,91,50,51,64,0,27,91,50,52,64,0,27,91,49,75,0,27,91,37,105,37,100,59,37,100,82,0,27,91,54,110,0,27,91,63,49,59,50,99,0,27,91,99,0,27,91,51,57,59,52,57,109,0,27,93,49,48,52,7,0,27,93,52,59,37,112,49,37,100,59,114,103,98,58,37,112,50,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,50,46,50,88,47,37,112,51,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,50,46,50,88,47,37,112,52,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,50,46,50,88,27,92,0,27,91,77,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,51,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,57,37,112,49,37,123,56,125,37,45,37,100,37,101,51,56,59,53,59,37,112,49,37,100,37,59,109,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,52,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,49,48,37,112,49,37,123,56,125,37,45,37,100,37,101,52,56,59,53,59,37,112,49,37,100,37,59,109,0,27,40,66,0,27,40,48,0,0,2,0,0,0,25,0,52,0,-27,0,1,1,-1,-1,-1,-1,0,0,5,0,10,0,14,0,18,0,23,0,28,0,33,0,38,0,43,0,48,0,52,0,57,0,62,0,67,0,72,0,76,0,80,0,84,0,88,0,92,0,96,0,-1,-1,0,0,3,0,6,0,9,0,12,0,17,0,22,0,26,0,31,0,37,0,43,0,49,0,55,0,60,0,65,0,71,0,77,0,83,0,89,0,95,0,101,0,105,0,110,0,114,0,118,0,122,0,126,0,27,91,51,94,0,27,91,51,64,0,27,91,98,0,27,79,98,0,27,91,56,94,0,27,91,56,64,0,27,91,55,94,0,27,91,55,64,0,27,91,50,94,0,27,91,50,64,0,27,79,100,0,27,91,54,94,0,27,91,54,64,0,27,91,53,94,0,27,91,53,64,0,27,79,99,0,27,91,97,0,27,79,97,0,27,79,120,0,27,79,116,0,27,79,118,0,27,79,114,0,65,88,0,88,84,0,84,83,0,88,77,0,107,68,67,53,0,107,68,67,54,0,107,68,78,0,107,68,78,53,0,107,69,78,68,53,0,107,69,78,68,54,0,107,72,79,77,53,0,107,72,79,77,54,0,107,73,67,53,0,107,73,67,54,0,107,76,70,84,53,0,107,78,88,84,53,0,107,78,88,84,54,0,107,80,82,86,53,0,107,80,82,86,54,0,107,82,73,84,53,0,107,85,80,0,107,85,80,53,0,107,97,50,0,107,98,49,0,107,98,51,0,107,99,50,0,120,109,0 // NOLINT
+ 30,2,47,0,38,0,15,0,110,1,-35,4,114,120,118,116,45,50,53,54,99,111,108,111,114,124,114,120,118,116,32,50,46,55,46,57,32,119,105,116,104,32,120,116,101,114,109,32,50,53,54,45,99,111,108,111,114,115,0,0,1,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,80,0,0,0,8,0,0,0,24,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,0,0,0,0,1,0,-1,-1,0,0,2,0,4,0,21,0,26,0,34,0,38,0,42,0,-1,-1,53,0,70,0,72,0,76,0,83,0,-1,-1,85,0,92,0,-1,-1,96,0,-1,-1,-1,-1,100,0,-1,-1,-1,-1,104,0,106,0,111,0,116,0,-1,-1,-1,-1,125,0,-1,-1,-1,-1,-126,0,-121,0,-116,0,-1,-1,-111,0,-109,0,-104,0,-1,-1,-91,0,-86,0,-80,0,-74,0,-1,-1,-1,-1,-56,0,-42,0,-1,-1,-1,-1,-1,-1,-8,0,-1,-1,-4,0,-1,-1,-1,-1,-1,-1,-2,0,-1,-1,3,1,-1,-1,7,1,-1,-1,12,1,18,1,24,1,30,1,36,1,42,1,48,1,54,1,60,1,66,1,72,1,78,1,83,1,-1,-1,88,1,-1,-1,92,1,97,1,102,1,106,1,110,1,-1,-1,114,1,118,1,121,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,124,1,-123,1,-114,1,-1,-1,-105,1,-96,1,-87,1,-1,-1,-78,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-69,1,-36,1,-1,-1,-1,-1,14,2,17,2,28,2,31,2,33,2,36,2,103,2,-1,-1,106,2,-1,-1,-1,-1,-1,-1,-1,-1,108,2,112,2,116,2,120,2,124,2,-1,-1,-1,-1,-128,2,-1,-1,-77,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-73,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-66,2,-61,2,-1,-1,-57,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-52,2,-1,-1,-47,2,-42,2,-1,-1,-1,-1,-1,-1,-1,-1,-37,2,-32,2,-27,2,-1,-1,-1,-1,-23,2,-1,-1,-18,2,-1,-1,-1,-1,-1,-1,-13,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-9,2,-3,2,3,3,9,3,15,3,21,3,27,3,33,3,39,3,45,3,51,3,57,3,63,3,69,3,75,3,81,3,87,3,93,3,99,3,105,3,111,3,117,3,123,3,-127,3,-121,3,-115,3,-109,3,-103,3,-97,3,-91,3,-85,3,-79,3,-73,3,-67,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-61,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-56,3,-45,3,-40,3,-32,3,-28,3,-19,3,-12,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,82,4,-1,-1,-1,-1,-1,-1,86,4,-107,4,-1,-1,-1,-1,-1,-1,-43,4,-39,4,7,0,13,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,114,0,27,91,51,103,0,27,91,72,27,91,50,74,0,27,91,75,0,27,91,74,0,27,91,37,105,37,112,49,37,100,71,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,72,0,10,0,27,91,72,0,27,91,63,50,53,108,0,8,0,27,91,63,50,53,104,0,27,91,67,0,27,91,65,0,27,91,77,0,14,0,27,91,53,109,0,27,91,49,109,0,27,55,27,91,63,52,55,104,0,27,91,52,104,0,27,91,55,109,0,27,91,55,109,0,27,91,52,109,0,15,0,27,91,109,15,0,27,91,50,74,27,91,63,52,55,108,27,56,0,27,91,52,108,0,27,91,50,55,109,0,27,91,50,52,109,0,27,91,63,53,104,36,60,49,48,48,47,62,27,91,63,53,108,0,27,91,63,52,55,108,27,61,27,91,63,49,108,0,27,91,114,27,91,109,27,91,50,74,27,91,72,27,91,63,55,104,27,91,63,49,59,51,59,52,59,54,108,27,91,52,108,0,27,91,76,0,8,0,27,91,51,126,0,27,91,66,0,27,91,56,94,0,27,91,50,49,126,0,27,91,49,49,126,0,27,91,50,49,126,0,27,91,49,50,126,0,27,91,49,51,126,0,27,91,49,52,126,0,27,91,49,53,126,0,27,91,49,55,126,0,27,91,49,56,126,0,27,91,49,57,126,0,27,91,50,48,126,0,27,91,55,126,0,27,91,50,126,0,27,91,68,0,27,91,54,126,0,27,91,53,126,0,27,91,67,0,27,91,97,0,27,91,98,0,27,91,65,0,27,62,0,27,61,0,27,91,37,112,49,37,100,77,0,27,91,37,112,49,37,100,66,0,27,91,37,112,49,37,100,64,0,27,91,37,112,49,37,100,76,0,27,91,37,112,49,37,100,68,0,27,91,37,112,49,37,100,67,0,27,91,37,112,49,37,100,65,0,27,62,27,91,49,59,51,59,52,59,53,59,54,108,27,91,63,55,104,27,91,109,27,91,114,27,91,50,74,27,91,72,0,27,91,114,27,91,109,27,91,50,74,27,91,72,27,91,63,55,104,27,91,63,49,59,51,59,52,59,54,108,27,91,52,108,27,62,27,91,63,49,48,48,48,108,27,91,63,50,53,104,0,27,56,0,27,91,37,105,37,112,49,37,100,100,0,27,55,0,10,0,27,77,0,27,91,48,37,63,37,112,54,37,116,59,49,37,59,37,63,37,112,50,37,116,59,52,37,59,37,63,37,112,49,37,112,51,37,124,37,116,59,55,37,59,37,63,37,112,52,37,116,59,53,37,59,109,37,63,37,112,57,37,116,14,37,101,15,37,59,0,27,72,0,9,0,27,79,119,0,27,79,121,0,27,79,117,0,27,79,113,0,27,79,115,0,96,96,97,97,102,102,103,103,106,106,107,107,108,108,109,109,110,110,111,111,112,112,113,113,114,114,115,115,116,116,117,117,118,118,119,119,120,120,121,121,122,122,123,123,124,124,125,125,126,126,0,27,91,90,0,27,40,66,27,41,48,0,27,91,56,126,0,27,79,77,0,27,91,49,126,0,27,91,51,36,0,27,91,52,126,0,27,91,56,36,0,27,91,55,36,0,27,91,50,36,0,27,91,100,0,27,91,54,36,0,27,91,53,36,0,27,91,99,0,27,91,50,51,126,0,27,91,50,52,126,0,27,91,50,53,126,0,27,91,50,54,126,0,27,91,50,56,126,0,27,91,50,57,126,0,27,91,51,49,126,0,27,91,51,50,126,0,27,91,51,51,126,0,27,91,51,52,126,0,27,91,50,51,36,0,27,91,50,52,36,0,27,91,49,49,94,0,27,91,49,50,94,0,27,91,49,51,94,0,27,91,49,52,94,0,27,91,49,53,94,0,27,91,49,55,94,0,27,91,49,56,94,0,27,91,49,57,94,0,27,91,50,48,94,0,27,91,50,49,94,0,27,91,50,51,94,0,27,91,50,52,94,0,27,91,50,53,94,0,27,91,50,54,94,0,27,91,50,56,94,0,27,91,50,57,94,0,27,91,51,49,94,0,27,91,51,50,94,0,27,91,51,51,94,0,27,91,51,52,94,0,27,91,50,51,64,0,27,91,50,52,64,0,27,91,49,75,0,27,91,37,105,37,100,59,37,100,82,0,27,91,54,110,0,27,91,63,49,59,50,99,0,27,91,99,0,27,91,51,57,59,52,57,109,0,27,93,49,48,52,7,0,27,93,52,59,37,112,49,37,100,59,114,103,98,58,37,112,50,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,50,46,50,88,47,37,112,51,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,50,46,50,88,47,37,112,52,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,50,46,50,88,27,92,0,27,91,77,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,51,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,57,37,112,49,37,123,56,125,37,45,37,100,37,101,51,56,59,53,59,37,112,49,37,100,37,59,109,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,52,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,49,48,37,112,49,37,123,56,125,37,45,37,100,37,101,52,56,59,53,59,37,112,49,37,100,37,59,109,0,27,40,66,0,27,40,48,0,0,2,0,0,0,22,0,46,0,-36,0,1,1,0,0,5,0,10,0,14,0,18,0,23,0,28,0,33,0,38,0,43,0,48,0,52,0,57,0,62,0,67,0,72,0,76,0,80,0,84,0,88,0,92,0,96,0,0,0,3,0,6,0,11,0,16,0,20,0,25,0,31,0,37,0,43,0,49,0,54,0,59,0,65,0,71,0,77,0,83,0,89,0,95,0,99,0,104,0,108,0,112,0,116,0,27,91,51,94,0,27,91,51,64,0,27,91,98,0,27,79,98,0,27,91,56,94,0,27,91,56,64,0,27,91,55,94,0,27,91,55,64,0,27,91,50,94,0,27,91,50,64,0,27,79,100,0,27,91,54,94,0,27,91,54,64,0,27,91,53,94,0,27,91,53,64,0,27,79,99,0,27,91,97,0,27,79,97,0,27,79,120,0,27,79,116,0,27,79,118,0,27,79,114,0,65,88,0,88,84,0,107,68,67,53,0,107,68,67,54,0,107,68,78,0,107,68,78,53,0,107,69,78,68,53,0,107,69,78,68,54,0,107,72,79,77,53,0,107,72,79,77,54,0,107,73,67,53,0,107,73,67,54,0,107,76,70,84,53,0,107,78,88,84,53,0,107,78,88,84,54,0,107,80,82,86,53,0,107,80,82,86,54,0,107,82,73,84,53,0,107,85,80,0,107,85,80,53,0,107,97,50,0,107,98,49,0,107,98,51,0,107,99,50,0
};
// screen-256color|GNU Screen with 256 colors,
@@ -1187,6 +1197,7 @@ static const int8_t rxvt_256colour_terminfo[] = {
// parm_insert_line=\E[%p1%dL,
// parm_left_cursor=\E[%p1%dD,
// parm_right_cursor=\E[%p1%dC,
+// parm_rindex=\E[%p1%dT,
// parm_up_cursor=\E[%p1%dA,
// reset_2string=\Ec\E[?1000l\E[?25h,
// restore_cursor=\E8,
@@ -1199,13 +1210,18 @@ static const int8_t rxvt_256colour_terminfo[] = {
// set_attributes=\E[0%?%p6%t;1%;%?%p1%t;3%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;m%?%p9%t^N%e^O%;,
// set_tab=\EH,
// tab=^I,
+// user6=\E[%i%d;%dR,
+// user7=\E[6n,
+// user8=\E[?1;2c,
+// user9=\E[c,
static const int8_t screen_256colour_terminfo[] = {
- 30,2,43,0,43,0,15,0,105,1,4,3,115,99,114,101,101,110,45,50,53,54,99,111,108,111,114,124,71,78,85,32,83,99,114,101,101,110,32,119,105,116,104,32,50,53,54,32,99,111,108,111,114,115,0,0,1,0,0,1,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,80,0,0,0,8,0,0,0,24,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,0,0,0,0,1,0,0,0,4,0,6,0,8,0,25,0,30,0,37,0,41,0,45,0,-1,-1,56,0,73,0,75,0,79,0,86,0,-1,-1,88,0,100,0,-1,-1,104,0,107,0,113,0,117,0,-1,-1,-1,-1,121,0,123,0,-128,0,-123,0,-1,-1,-114,0,-109,0,-1,-1,-1,-1,-104,0,-99,0,-94,0,-1,-1,-89,0,-87,0,-82,0,-1,-1,-73,0,-68,0,-62,0,-56,0,-1,-1,-1,-1,-1,-1,-53,0,-1,-1,-1,-1,-1,-1,-49,0,-1,-1,-45,0,-1,-1,-1,-1,-1,-1,-43,0,-1,-1,-38,0,-1,-1,-1,-1,-1,-1,-1,-1,-34,0,-30,0,-24,0,-20,0,-16,0,-12,0,-6,0,0,1,6,1,12,1,18,1,23,1,-1,-1,28,1,-1,-1,32,1,37,1,42,1,-1,-1,-1,-1,-1,-1,46,1,50,1,58,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,66,1,-1,-1,69,1,78,1,87,1,96,1,105,1,114,1,123,1,-124,1,-1,-1,-115,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-106,1,-1,-1,-1,-1,-89,1,-86,1,-75,1,-72,1,-70,1,-67,1,17,2,-1,-1,20,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,22,2,-1,-1,87,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,91,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,98,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,103,2,109,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,115,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,120,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-127,2,-1,-1,-1,-1,-1,-1,-123,2,-60,2,27,91,90,0,7,0,13,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,114,0,27,91,51,103,0,27,91,72,27,91,74,0,27,91,75,0,27,91,74,0,27,91,37,105,37,112,49,37,100,71,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,72,0,10,0,27,91,72,0,27,91,63,50,53,108,0,8,0,27,91,51,52,104,27,91,63,50,53,104,0,27,91,67,0,27,77,0,27,91,51,52,108,0,27,91,80,0,27,91,77,0,14,0,27,91,53,109,0,27,91,49,109,0,27,91,63,49,48,52,57,104,0,27,91,50,109,0,27,91,52,104,0,27,91,55,109,0,27,91,51,109,0,27,91,52,109,0,15,0,27,91,109,15,0,27,91,63,49,48,52,57,108,0,27,91,52,108,0,27,91,50,51,109,0,27,91,50,52,109,0,27,103,0,27,41,48,0,27,91,76,0,8,0,27,91,51,126,0,27,79,66,0,27,79,80,0,27,91,50,49,126,0,27,79,81,0,27,79,82,0,27,79,83,0,27,91,49,53,126,0,27,91,49,55,126,0,27,91,49,56,126,0,27,91,49,57,126,0,27,91,50,48,126,0,27,91,49,126,0,27,91,50,126,0,27,79,68,0,27,91,54,126,0,27,91,53,126,0,27,79,67,0,27,79,65,0,27,91,63,49,108,27,62,0,27,91,63,49,104,27,61,0,27,69,0,27,91,37,112,49,37,100,80,0,27,91,37,112,49,37,100,77,0,27,91,37,112,49,37,100,66,0,27,91,37,112,49,37,100,64,0,27,91,37,112,49,37,100,83,0,27,91,37,112,49,37,100,76,0,27,91,37,112,49,37,100,68,0,27,91,37,112,49,37,100,67,0,27,91,37,112,49,37,100,65,0,27,99,27,91,63,49,48,48,48,108,27,91,63,50,53,104,0,27,56,0,27,91,37,105,37,112,49,37,100,100,0,27,55,0,10,0,27,77,0,27,91,48,37,63,37,112,54,37,116,59,49,37,59,37,63,37,112,49,37,116,59,51,37,59,37,63,37,112,50,37,116,59,52,37,59,37,63,37,112,51,37,116,59,55,37,59,37,63,37,112,52,37,116,59,53,37,59,37,63,37,112,53,37,116,59,50,37,59,109,37,63,37,112,57,37,116,14,37,101,15,37,59,0,27,72,0,9,0,43,43,44,44,45,45,46,46,48,48,96,96,97,97,102,102,103,103,104,104,105,105,106,106,107,107,108,108,109,109,110,110,111,111,112,112,113,113,114,114,115,115,116,116,117,117,118,118,119,119,120,120,121,121,122,122,123,123,124,124,125,125,126,126,0,27,91,90,0,27,40,66,27,41,48,0,27,91,52,126,0,27,91,50,51,126,0,27,91,50,52,126,0,27,91,49,75,0,27,91,51,57,59,52,57,109,0,27,91,77,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,51,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,57,37,112,49,37,123,56,125,37,45,37,100,37,101,51,56,59,53,59,37,112,49,37,100,37,59,109,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,52,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,49,48,37,112,49,37,123,56,125,37,45,37,100,37,101,52,56,59,53,59,37,112,49,37,100,37,59,109,0,3,0,1,0,33,0,70,0,-71,0,1,1,0,0,1,0,0,0,0,0,4,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,3,0,6,0,9,0,12,0,15,0,18,0,21,0,24,0,29,0,34,0,39,0,44,0,49,0,53,0,58,0,63,0,68,0,73,0,78,0,84,0,90,0,96,0,102,0,108,0,114,0,120,0,126,0,-124,0,-118,0,-112,0,-106,0,-102,0,-98,0,-94,0,-90,0,-86,0,27,40,66,0,27,40,37,112,49,37,99,0,65,88,0,71,48,0,88,84,0,85,56,0,69,48,0,83,48,0,84,83,0,88,77,0,107,68,67,51,0,107,68,67,52,0,107,68,67,53,0,107,68,67,54,0,107,68,67,55,0,107,68,78,0,107,68,78,51,0,107,68,78,52,0,107,68,78,53,0,107,68,78,54,0,107,68,78,55,0,107,69,78,68,53,0,107,72,79,77,53,0,107,76,70,84,51,0,107,76,70,84,52,0,107,76,70,84,53,0,107,76,70,84,54,0,107,76,70,84,55,0,107,82,73,84,51,0,107,82,73,84,52,0,107,82,73,84,53,0,107,82,73,84,54,0,107,82,73,84,55,0,107,85,80,0,107,97,50,0,107,98,49,0,107,98,51,0,107,99,50,0,120,109,0 // NOLINT
+ 30,2,43,0,43,0,15,0,105,1,41,3,115,99,114,101,101,110,45,50,53,54,99,111,108,111,114,124,71,78,85,32,83,99,114,101,101,110,32,119,105,116,104,32,50,53,54,32,99,111,108,111,114,115,0,0,1,0,0,1,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,80,0,0,0,8,0,0,0,24,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,0,0,0,0,1,0,0,0,4,0,6,0,8,0,25,0,30,0,37,0,41,0,45,0,-1,-1,56,0,73,0,75,0,79,0,86,0,-1,-1,88,0,100,0,-1,-1,104,0,107,0,113,0,117,0,-1,-1,-1,-1,121,0,123,0,-128,0,-123,0,-1,-1,-114,0,-109,0,-1,-1,-1,-1,-104,0,-99,0,-94,0,-1,-1,-89,0,-87,0,-82,0,-1,-1,-73,0,-68,0,-62,0,-56,0,-1,-1,-1,-1,-1,-1,-53,0,-1,-1,-1,-1,-1,-1,-49,0,-1,-1,-45,0,-1,-1,-1,-1,-1,-1,-43,0,-1,-1,-38,0,-1,-1,-1,-1,-1,-1,-1,-1,-34,0,-30,0,-24,0,-20,0,-16,0,-12,0,-6,0,0,1,6,1,12,1,18,1,23,1,-1,-1,28,1,-1,-1,32,1,37,1,42,1,-1,-1,-1,-1,-1,-1,46,1,50,1,58,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,66,1,-1,-1,69,1,78,1,87,1,96,1,105,1,114,1,123,1,-124,1,-115,1,-106,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-97,1,-1,-1,-1,-1,-80,1,-77,1,-66,1,-63,1,-61,1,-58,1,26,2,-1,-1,29,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,31,2,-1,-1,96,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,100,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,107,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,112,2,118,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,124,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-127,2,-116,2,-111,2,-103,2,-99,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-90,2,-1,-1,-1,-1,-1,-1,-86,2,-23,2,27,91,90,0,7,0,13,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,114,0,27,91,51,103,0,27,91,72,27,91,74,0,27,91,75,0,27,91,74,0,27,91,37,105,37,112,49,37,100,71,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,72,0,10,0,27,91,72,0,27,91,63,50,53,108,0,8,0,27,91,51,52,104,27,91,63,50,53,104,0,27,91,67,0,27,77,0,27,91,51,52,108,0,27,91,80,0,27,91,77,0,14,0,27,91,53,109,0,27,91,49,109,0,27,91,63,49,48,52,57,104,0,27,91,50,109,0,27,91,52,104,0,27,91,55,109,0,27,91,51,109,0,27,91,52,109,0,15,0,27,91,109,15,0,27,91,63,49,48,52,57,108,0,27,91,52,108,0,27,91,50,51,109,0,27,91,50,52,109,0,27,103,0,27,41,48,0,27,91,76,0,8,0,27,91,51,126,0,27,79,66,0,27,79,80,0,27,91,50,49,126,0,27,79,81,0,27,79,82,0,27,79,83,0,27,91,49,53,126,0,27,91,49,55,126,0,27,91,49,56,126,0,27,91,49,57,126,0,27,91,50,48,126,0,27,91,49,126,0,27,91,50,126,0,27,79,68,0,27,91,54,126,0,27,91,53,126,0,27,79,67,0,27,79,65,0,27,91,63,49,108,27,62,0,27,91,63,49,104,27,61,0,27,69,0,27,91,37,112,49,37,100,80,0,27,91,37,112,49,37,100,77,0,27,91,37,112,49,37,100,66,0,27,91,37,112,49,37,100,64,0,27,91,37,112,49,37,100,83,0,27,91,37,112,49,37,100,76,0,27,91,37,112,49,37,100,68,0,27,91,37,112,49,37,100,67,0,27,91,37,112,49,37,100,84,0,27,91,37,112,49,37,100,65,0,27,99,27,91,63,49,48,48,48,108,27,91,63,50,53,104,0,27,56,0,27,91,37,105,37,112,49,37,100,100,0,27,55,0,10,0,27,77,0,27,91,48,37,63,37,112,54,37,116,59,49,37,59,37,63,37,112,49,37,116,59,51,37,59,37,63,37,112,50,37,116,59,52,37,59,37,63,37,112,51,37,116,59,55,37,59,37,63,37,112,52,37,116,59,53,37,59,37,63,37,112,53,37,116,59,50,37,59,109,37,63,37,112,57,37,116,14,37,101,15,37,59,0,27,72,0,9,0,43,43,44,44,45,45,46,46,48,48,96,96,97,97,102,102,103,103,104,104,105,105,106,106,107,107,108,108,109,109,110,110,111,111,112,112,113,113,114,114,115,115,116,116,117,117,118,118,119,119,120,120,121,121,122,122,123,123,124,124,125,125,126,126,0,27,91,90,0,27,40,66,27,41,48,0,27,91,52,126,0,27,91,50,51,126,0,27,91,50,52,126,0,27,91,49,75,0,27,91,37,105,37,100,59,37,100,82,0,27,91,54,110,0,27,91,63,49,59,50,99,0,27,91,99,0,27,91,51,57,59,52,57,109,0,27,91,77,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,51,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,57,37,112,49,37,123,56,125,37,45,37,100,37,101,51,56,59,53,59,37,112,49,37,100,37,59,109,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,52,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,49,48,37,112,49,37,123,56,125,37,45,37,100,37,101,52,56,59,53,59,37,112,49,37,100,37,59,109,0,0,2,0,1,0,2,0,7,0,27,0,1,1,1,0,0,0,0,0,4,0,0,0,3,0,6,0,9,0,12,0,27,40,66,0,27,40,37,112,49,37,99,0,65,88,0,71,48,0,85,56,0,69,48,0,83,48,0
};
// st-256color|stterm-256color|simpleterm with 256 colors,
// auto_right_margin,
// back_color_erase,
+// can_change,
// eat_newline_glitch,
// has_status_line,
// move_insert_mode,
@@ -1232,10 +1248,9 @@ static const int8_t screen_256colour_terminfo[] = {
// cursor_home=\E[H,
// cursor_invisible=\E[?25l,
// cursor_left=^H,
-// cursor_normal=\E[?12l\E[?25h,
+// cursor_normal=\E[?25h,
// cursor_right=\E[C,
// cursor_up=\E[A,
-// cursor_visible=\E[?25h,
// delete_character=\E[P,
// delete_line=\E[M,
// dis_status_line=\E]0;^G,
@@ -1262,7 +1277,7 @@ static const int8_t screen_256colour_terminfo[] = {
// flash_screen=\E[?5h$<100/>\E[?5l,
// from_status_line=^G,
// init_2string=\E[4l\E>\E[?1034l,
-// initialize_color@,
+// initialize_color=\E]4;%p1%d;rgb\072%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\,
// insert_line=\E[L,
// key_a1=\E[1~,
// key_a3=\E[5~,
@@ -1362,7 +1377,7 @@ static const int8_t screen_256colour_terminfo[] = {
// key_up=\EOA,
// keypad_local=\E[?1l\E>,
// keypad_xmit=\E[?1h\E=,
-// orig_colors@,
+// orig_colors=\E]104^G,
// orig_pair=\E[39;49m,
// parm_dch=\E[%p1%dP,
// parm_delete_line=\E[%p1%dM,
@@ -1372,6 +1387,7 @@ static const int8_t screen_256colour_terminfo[] = {
// parm_insert_line=\E[%p1%dL,
// parm_left_cursor=\E[%p1%dD,
// parm_right_cursor=\E[%p1%dC,
+// parm_rindex=\E[%p1%dT,
// parm_up_cursor=\E[%p1%dA,
// print_screen=\E[i,
// prtr_off=\E[4i,
@@ -1394,7 +1410,7 @@ static const int8_t screen_256colour_terminfo[] = {
// user8=\E[?1;2c,
// user9=\E[c,
static const int8_t st_256colour_terminfo[] = {
- 30,2,55,0,29,0,15,0,105,1,-125,5,115,116,45,50,53,54,99,111,108,111,114,124,115,116,116,101,114,109,45,50,53,54,99,111,108,111,114,124,115,105,109,112,108,101,116,101,114,109,32,119,105,116,104,32,50,53,54,32,99,111,108,111,114,115,0,0,1,0,0,1,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,80,0,0,0,8,0,0,0,24,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,0,0,0,0,1,0,0,0,4,0,6,0,8,0,25,0,30,0,38,0,42,0,46,0,-1,-1,57,0,74,0,76,0,80,0,87,0,-1,-1,89,0,102,0,-1,-1,106,0,110,0,117,0,121,0,125,0,-1,-1,-125,0,-121,0,-116,0,-111,0,-1,-1,-102,0,-97,0,-92,0,-1,-1,-87,0,-82,0,-77,0,-72,0,-63,0,-59,0,-54,0,-1,-1,-45,0,-40,0,-34,0,-28,0,-1,-1,-10,0,-1,-1,-8,0,-1,-1,-1,-1,-1,-1,7,1,-1,-1,11,1,-1,-1,13,1,-1,-1,20,1,25,1,32,1,36,1,43,1,50,1,-1,-1,57,1,61,1,67,1,71,1,75,1,79,1,85,1,91,1,97,1,103,1,109,1,114,1,119,1,126,1,-1,-1,-126,1,-121,1,-116,1,-112,1,-105,1,-1,-1,-98,1,-94,1,-86,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-78,1,-69,1,-60,1,-51,1,-42,1,-33,1,-24,1,-15,1,-1,-1,-6,1,-1,-1,-1,-1,-1,-1,3,2,7,2,12,2,-1,-1,17,2,20,2,-1,-1,-1,-1,35,2,38,2,49,2,52,2,54,2,57,2,-106,2,-1,-1,-103,2,-101,2,-1,-1,-1,-1,-1,-1,-96,2,-91,2,-86,2,-82,2,-77,2,-1,-1,-1,-1,-72,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-7,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-3,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,3,-1,-1,-1,-1,9,3,-1,-1,-1,-1,-1,-1,-1,-1,16,3,23,3,30,3,-1,-1,-1,-1,37,3,-1,-1,44,3,-1,-1,-1,-1,-1,-1,51,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,58,3,64,3,70,3,77,3,84,3,91,3,98,3,106,3,114,3,122,3,-126,3,-118,3,-110,3,-102,3,-94,3,-87,3,-80,3,-73,3,-66,3,-58,3,-50,3,-42,3,-34,3,-26,3,-18,3,-10,3,-2,3,5,4,12,4,19,4,26,4,34,4,42,4,50,4,58,4,66,4,74,4,82,4,90,4,97,4,104,4,111,4,118,4,126,4,-122,4,-114,4,-106,4,-98,4,-90,4,-82,4,-74,4,-67,4,-60,4,-53,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-48,4,-37,4,-32,4,-24,4,-20,4,-2,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-11,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-6,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,5,-1,-1,-1,-1,-1,-1,4,5,67,5,27,91,90,0,7,0,13,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,114,0,27,91,51,103,0,27,91,72,27,91,50,74,0,27,91,75,0,27,91,74,0,27,91,37,105,37,112,49,37,100,71,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,72,0,10,0,27,91,72,0,27,91,63,50,53,108,0,8,0,27,91,63,49,50,108,27,91,63,50,53,104,0,27,91,67,0,27,91,65,0,27,91,63,50,53,104,0,27,91,80,0,27,91,77,0,27,93,48,59,7,0,27,40,48,0,27,91,53,109,0,27,91,49,109,0,27,91,63,49,48,52,57,104,0,27,91,50,109,0,27,91,52,104,0,27,91,56,109,0,27,91,55,109,0,27,91,55,109,0,27,91,52,109,0,27,91,37,112,49,37,100,88,0,27,40,66,0,27,91,48,109,0,27,91,63,49,48,52,57,108,0,27,91,52,108,0,27,91,50,55,109,0,27,91,50,52,109,0,27,91,63,53,104,36,60,49,48,48,47,62,27,91,63,53,108,0,7,0,27,91,52,108,27,62,27,91,63,49,48,51,52,108,0,27,91,76,0,127,0,27,91,51,59,53,126,0,27,91,51,126,0,27,91,51,59,50,126,0,27,79,66,0,27,91,50,59,50,126,0,27,91,49,59,50,70,0,27,91,49,59,53,70,0,27,79,80,0,27,91,50,49,126,0,27,79,81,0,27,79,82,0,27,79,83,0,27,91,49,53,126,0,27,91,49,55,126,0,27,91,49,56,126,0,27,91,49,57,126,0,27,91,50,48,126,0,27,91,49,126,0,27,91,50,126,0,27,91,50,59,53,126,0,27,79,68,0,27,91,54,126,0,27,91,53,126,0,27,79,67,0,27,91,49,59,50,66,0,27,91,49,59,50,65,0,27,79,65,0,27,91,63,49,108,27,62,0,27,91,63,49,104,27,61,0,27,91,37,112,49,37,100,80,0,27,91,37,112,49,37,100,77,0,27,91,37,112,49,37,100,66,0,27,91,37,112,49,37,100,64,0,27,91,37,112,49,37,100,83,0,27,91,37,112,49,37,100,76,0,27,91,37,112,49,37,100,68,0,27,91,37,112,49,37,100,67,0,27,91,37,112,49,37,100,65,0,27,91,105,0,27,91,52,105,0,27,91,53,105,0,27,99,0,27,91,52,108,27,62,27,91,63,49,48,51,52,108,0,27,56,0,27,91,37,105,37,112,49,37,100,100,0,27,55,0,10,0,27,77,0,37,63,37,112,57,37,116,27,40,48,37,101,27,40,66,37,59,27,91,48,37,63,37,112,54,37,116,59,49,37,59,37,63,37,112,50,37,116,59,52,37,59,37,63,37,112,49,37,112,51,37,124,37,116,59,55,37,59,37,63,37,112,52,37,116,59,53,37,59,37,63,37,112,53,37,116,59,50,37,59,37,63,37,112,55,37,116,59,56,37,59,109,0,27,72,0,9,0,27,93,48,59,0,27,91,49,126,0,27,91,53,126,0,27,79,117,0,27,91,52,126,0,27,91,54,126,0,43,67,44,68,45,65,46,66,48,69,96,96,97,97,102,102,103,103,104,70,105,71,106,106,107,107,108,108,109,109,110,110,111,111,112,112,113,113,114,114,115,115,116,116,117,117,118,118,119,119,120,120,121,121,122,122,123,123,124,124,125,125,126,126,0,27,41,48,0,27,91,52,126,0,27,91,51,59,50,126,0,27,91,49,59,50,70,0,27,91,49,59,50,72,0,27,91,50,59,50,126,0,27,91,49,59,50,68,0,27,91,54,59,50,126,0,27,91,53,59,50,126,0,27,91,49,59,50,67,0,27,91,50,51,126,0,27,91,50,52,126,0,27,91,49,59,50,80,0,27,91,49,59,50,81,0,27,91,49,59,50,82,0,27,91,49,59,50,83,0,27,91,49,53,59,50,126,0,27,91,49,55,59,50,126,0,27,91,49,56,59,50,126,0,27,91,49,57,59,50,126,0,27,91,50,48,59,50,126,0,27,91,50,49,59,50,126,0,27,91,50,51,59,50,126,0,27,91,50,52,59,50,126,0,27,91,49,59,53,80,0,27,91,49,59,53,81,0,27,91,49,59,53,82,0,27,91,49,59,53,83,0,27,91,49,53,59,53,126,0,27,91,49,55,59,53,126,0,27,91,49,56,59,53,126,0,27,91,49,57,59,53,126,0,27,91,50,48,59,53,126,0,27,91,50,49,59,53,126,0,27,91,50,51,59,53,126,0,27,91,50,52,59,53,126,0,27,91,49,59,54,80,0,27,91,49,59,54,81,0,27,91,49,59,54,82,0,27,91,49,59,54,83,0,27,91,49,53,59,54,126,0,27,91,49,55,59,54,126,0,27,91,49,56,59,54,126,0,27,91,49,57,59,54,126,0,27,91,50,48,59,54,126,0,27,91,50,49,59,54,126,0,27,91,50,51,59,54,126,0,27,91,50,52,59,54,126,0,27,91,49,59,51,80,0,27,91,49,59,51,81,0,27,91,49,59,51,82,0,27,91,49,59,51,83,0,27,91,49,53,59,51,126,0,27,91,49,55,59,51,126,0,27,91,49,56,59,51,126,0,27,91,49,57,59,51,126,0,27,91,50,48,59,51,126,0,27,91,50,49,59,51,126,0,27,91,50,51,59,51,126,0,27,91,50,52,59,51,126,0,27,91,49,59,52,80,0,27,91,49,59,52,81,0,27,91,49,59,52,82,0,27,91,49,75,0,27,91,37,105,37,100,59,37,100,82,0,27,91,54,110,0,27,91,63,49,59,50,99,0,27,91,99,0,27,91,51,57,59,52,57,109,0,27,91,51,109,0,27,91,50,51,109,0,27,91,77,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,51,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,57,37,112,49,37,123,56,125,37,45,37,100,37,101,51,56,59,53,59,37,112,49,37,100,37,59,109,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,52,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,49,48,37,112,49,37,123,56,125,37,45,37,100,37,101,52,56,59,53,59,37,112,49,37,100,37,59,109,0,0,3,0,1,0,71,0,-110,0,-1,1,0,0,1,0,-1,-1,-1,-1,-1,-1,-1,-1,0,0,-1,-1,18,0,24,0,34,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,39,0,-1,-1,46,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,53,0,-1,-1,60,0,-1,-1,-1,-1,67,0,-1,-1,74,0,-1,-1,-1,-1,81,0,-1,-1,88,0,-1,-1,-1,-1,95,0,-1,-1,102,0,-1,-1,-1,-1,-1,-1,109,0,-1,-1,116,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,123,0,-127,0,-1,-1,0,0,3,0,6,0,9,0,12,0,15,0,18,0,21,0,24,0,27,0,30,0,33,0,36,0,42,0,48,0,53,0,58,0,63,0,68,0,73,0,77,0,82,0,87,0,92,0,97,0,102,0,108,0,114,0,120,0,126,0,-124,0,-118,0,-112,0,-106,0,-100,0,-94,0,-88,0,-82,0,-77,0,-72,0,-67,0,-62,0,-57,0,-51,0,-45,0,-39,0,-33,0,-27,0,-21,0,-15,0,-9,0,-3,0,3,1,9,1,15,1,21,1,27,1,33,1,39,1,45,1,51,1,57,1,63,1,67,1,72,1,77,1,82,1,87,1,92,1,96,1,100,1,104,1,108,1,113,1,118,1,27,93,53,50,59,37,112,49,37,115,59,37,112,50,37,115,7,0,27,91,50,32,113,0,27,91,37,112,49,37,100,32,113,0,27,93,48,59,0,27,91,49,59,51,66,0,27,91,49,59,53,66,0,27,91,49,59,51,68,0,27,91,49,59,53,68,0,27,91,54,59,51,126,0,27,91,54,59,53,126,0,27,91,53,59,51,126,0,27,91,53,59,53,126,0,27,91,49,59,51,67,0,27,91,49,59,53,67,0,27,91,49,59,51,65,0,27,91,49,59,53,65,0,27,91,50,57,109,0,27,91,57,109,0,65,88,0,71,48,0,88,84,0,85,56,0,69,48,0,69,51,0,77,115,0,83,48,0,83,101,0,83,115,0,84,83,0,88,77,0,103,114,98,111,109,0,103,115,98,111,109,0,107,68,67,51,0,107,68,67,52,0,107,68,67,53,0,107,68,67,54,0,107,68,67,55,0,107,68,78,0,107,68,78,51,0,107,68,78,52,0,107,68,78,53,0,107,68,78,54,0,107,68,78,55,0,107,69,78,68,51,0,107,69,78,68,52,0,107,69,78,68,53,0,107,69,78,68,54,0,107,69,78,68,55,0,107,69,78,68,56,0,107,72,79,77,51,0,107,72,79,77,52,0,107,72,79,77,53,0,107,72,79,77,54,0,107,72,79,77,55,0,107,72,79,77,56,0,107,73,67,51,0,107,73,67,52,0,107,73,67,53,0,107,73,67,54,0,107,73,67,55,0,107,76,70,84,51,0,107,76,70,84,52,0,107,76,70,84,53,0,107,76,70,84,54,0,107,76,70,84,55,0,107,78,88,84,51,0,107,78,88,84,52,0,107,78,88,84,53,0,107,78,88,84,54,0,107,78,88,84,55,0,107,80,82,86,51,0,107,80,82,86,52,0,107,80,82,86,53,0,107,80,82,86,54,0,107,80,82,86,55,0,107,82,73,84,51,0,107,82,73,84,52,0,107,82,73,84,53,0,107,82,73,84,54,0,107,82,73,84,55,0,107,85,80,0,107,85,80,51,0,107,85,80,52,0,107,85,80,53,0,107,85,80,54,0,107,85,80,55,0,107,97,50,0,107,98,49,0,107,98,51,0,107,99,50,0,114,109,120,120,0,115,109,120,120,0,120,109,0 // NOLINT
+ 30,2,55,0,29,0,15,0,105,1,-28,5,115,116,45,50,53,54,99,111,108,111,114,124,115,116,116,101,114,109,45,50,53,54,99,111,108,111,114,124,115,105,109,112,108,101,116,101,114,109,32,119,105,116,104,32,50,53,54,32,99,111,108,111,114,115,0,0,1,0,0,1,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,1,1,80,0,0,0,8,0,0,0,24,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,0,0,0,0,1,0,0,0,4,0,6,0,8,0,25,0,30,0,38,0,42,0,46,0,-1,-1,57,0,74,0,76,0,80,0,87,0,-1,-1,89,0,96,0,-1,-1,100,0,-1,-1,104,0,108,0,112,0,-1,-1,118,0,122,0,127,0,-124,0,-1,-1,-115,0,-110,0,-105,0,-1,-1,-100,0,-95,0,-90,0,-85,0,-76,0,-72,0,-67,0,-1,-1,-58,0,-53,0,-47,0,-41,0,-1,-1,-23,0,-1,-1,-21,0,-1,-1,-1,-1,-1,-1,-6,0,-1,-1,-2,0,-1,-1,0,1,-1,-1,7,1,12,1,19,1,23,1,30,1,37,1,-1,-1,44,1,48,1,54,1,58,1,62,1,66,1,72,1,78,1,84,1,90,1,96,1,101,1,106,1,113,1,-1,-1,117,1,122,1,127,1,-125,1,-118,1,-1,-1,-111,1,-107,1,-99,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-91,1,-82,1,-73,1,-64,1,-55,1,-46,1,-37,1,-28,1,-19,1,-10,1,-1,-1,-1,-1,-1,-1,-1,1,3,2,8,2,-1,-1,13,2,16,2,-1,-1,-1,-1,31,2,34,2,45,2,48,2,50,2,53,2,-110,2,-1,-1,-107,2,-105,2,-1,-1,-1,-1,-1,-1,-100,2,-95,2,-90,2,-86,2,-81,2,-1,-1,-1,-1,-76,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-11,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-7,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,2,-1,-1,-1,-1,5,3,-1,-1,-1,-1,-1,-1,-1,-1,12,3,19,3,26,3,-1,-1,-1,-1,33,3,-1,-1,40,3,-1,-1,-1,-1,-1,-1,47,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,54,3,60,3,66,3,73,3,80,3,87,3,94,3,102,3,110,3,118,3,126,3,-122,3,-114,3,-106,3,-98,3,-91,3,-84,3,-77,3,-70,3,-62,3,-54,3,-46,3,-38,3,-30,3,-22,3,-14,3,-6,3,1,4,8,4,15,4,22,4,30,4,38,4,46,4,54,4,62,4,70,4,78,4,86,4,93,4,100,4,107,4,114,4,122,4,-126,4,-118,4,-110,4,-102,4,-94,4,-86,4,-78,4,-71,4,-64,4,-57,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-52,4,-41,4,-36,4,-28,4,-24,4,-15,4,-8,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,86,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,91,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,97,5,-1,-1,-1,-1,-1,-1,101,5,-92,5,27,91,90,0,7,0,13,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,114,0,27,91,51,103,0,27,91,72,27,91,50,74,0,27,91,75,0,27,91,74,0,27,91,37,105,37,112,49,37,100,71,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,72,0,10,0,27,91,72,0,27,91,63,50,53,108,0,8,0,27,91,63,50,53,104,0,27,91,67,0,27,91,65,0,27,91,80,0,27,91,77,0,27,93,48,59,7,0,27,40,48,0,27,91,53,109,0,27,91,49,109,0,27,91,63,49,48,52,57,104,0,27,91,50,109,0,27,91,52,104,0,27,91,56,109,0,27,91,55,109,0,27,91,55,109,0,27,91,52,109,0,27,91,37,112,49,37,100,88,0,27,40,66,0,27,91,48,109,0,27,91,63,49,48,52,57,108,0,27,91,52,108,0,27,91,50,55,109,0,27,91,50,52,109,0,27,91,63,53,104,36,60,49,48,48,47,62,27,91,63,53,108,0,7,0,27,91,52,108,27,62,27,91,63,49,48,51,52,108,0,27,91,76,0,127,0,27,91,51,59,53,126,0,27,91,51,126,0,27,91,51,59,50,126,0,27,79,66,0,27,91,50,59,50,126,0,27,91,49,59,50,70,0,27,91,49,59,53,70,0,27,79,80,0,27,91,50,49,126,0,27,79,81,0,27,79,82,0,27,79,83,0,27,91,49,53,126,0,27,91,49,55,126,0,27,91,49,56,126,0,27,91,49,57,126,0,27,91,50,48,126,0,27,91,49,126,0,27,91,50,126,0,27,91,50,59,53,126,0,27,79,68,0,27,91,54,126,0,27,91,53,126,0,27,79,67,0,27,91,49,59,50,66,0,27,91,49,59,50,65,0,27,79,65,0,27,91,63,49,108,27,62,0,27,91,63,49,104,27,61,0,27,91,37,112,49,37,100,80,0,27,91,37,112,49,37,100,77,0,27,91,37,112,49,37,100,66,0,27,91,37,112,49,37,100,64,0,27,91,37,112,49,37,100,83,0,27,91,37,112,49,37,100,76,0,27,91,37,112,49,37,100,68,0,27,91,37,112,49,37,100,67,0,27,91,37,112,49,37,100,84,0,27,91,37,112,49,37,100,65,0,27,91,105,0,27,91,52,105,0,27,91,53,105,0,27,99,0,27,91,52,108,27,62,27,91,63,49,48,51,52,108,0,27,56,0,27,91,37,105,37,112,49,37,100,100,0,27,55,0,10,0,27,77,0,37,63,37,112,57,37,116,27,40,48,37,101,27,40,66,37,59,27,91,48,37,63,37,112,54,37,116,59,49,37,59,37,63,37,112,50,37,116,59,52,37,59,37,63,37,112,49,37,112,51,37,124,37,116,59,55,37,59,37,63,37,112,52,37,116,59,53,37,59,37,63,37,112,53,37,116,59,50,37,59,37,63,37,112,55,37,116,59,56,37,59,109,0,27,72,0,9,0,27,93,48,59,0,27,91,49,126,0,27,91,53,126,0,27,79,117,0,27,91,52,126,0,27,91,54,126,0,43,67,44,68,45,65,46,66,48,69,96,96,97,97,102,102,103,103,104,70,105,71,106,106,107,107,108,108,109,109,110,110,111,111,112,112,113,113,114,114,115,115,116,116,117,117,118,118,119,119,120,120,121,121,122,122,123,123,124,124,125,125,126,126,0,27,41,48,0,27,91,52,126,0,27,91,51,59,50,126,0,27,91,49,59,50,70,0,27,91,49,59,50,72,0,27,91,50,59,50,126,0,27,91,49,59,50,68,0,27,91,54,59,50,126,0,27,91,53,59,50,126,0,27,91,49,59,50,67,0,27,91,50,51,126,0,27,91,50,52,126,0,27,91,49,59,50,80,0,27,91,49,59,50,81,0,27,91,49,59,50,82,0,27,91,49,59,50,83,0,27,91,49,53,59,50,126,0,27,91,49,55,59,50,126,0,27,91,49,56,59,50,126,0,27,91,49,57,59,50,126,0,27,91,50,48,59,50,126,0,27,91,50,49,59,50,126,0,27,91,50,51,59,50,126,0,27,91,50,52,59,50,126,0,27,91,49,59,53,80,0,27,91,49,59,53,81,0,27,91,49,59,53,82,0,27,91,49,59,53,83,0,27,91,49,53,59,53,126,0,27,91,49,55,59,53,126,0,27,91,49,56,59,53,126,0,27,91,49,57,59,53,126,0,27,91,50,48,59,53,126,0,27,91,50,49,59,53,126,0,27,91,50,51,59,53,126,0,27,91,50,52,59,53,126,0,27,91,49,59,54,80,0,27,91,49,59,54,81,0,27,91,49,59,54,82,0,27,91,49,59,54,83,0,27,91,49,53,59,54,126,0,27,91,49,55,59,54,126,0,27,91,49,56,59,54,126,0,27,91,49,57,59,54,126,0,27,91,50,48,59,54,126,0,27,91,50,49,59,54,126,0,27,91,50,51,59,54,126,0,27,91,50,52,59,54,126,0,27,91,49,59,51,80,0,27,91,49,59,51,81,0,27,91,49,59,51,82,0,27,91,49,59,51,83,0,27,91,49,53,59,51,126,0,27,91,49,55,59,51,126,0,27,91,49,56,59,51,126,0,27,91,49,57,59,51,126,0,27,91,50,48,59,51,126,0,27,91,50,49,59,51,126,0,27,91,50,51,59,51,126,0,27,91,50,52,59,51,126,0,27,91,49,59,52,80,0,27,91,49,59,52,81,0,27,91,49,59,52,82,0,27,91,49,75,0,27,91,37,105,37,100,59,37,100,82,0,27,91,54,110,0,27,91,63,49,59,50,99,0,27,91,99,0,27,91,51,57,59,52,57,109,0,27,93,49,48,52,7,0,27,93,52,59,37,112,49,37,100,59,114,103,98,58,37,112,50,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,50,46,50,88,47,37,112,51,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,50,46,50,88,47,37,112,52,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,50,46,50,88,27,92,0,27,91,51,109,0,27,91,50,51,109,0,27,91,77,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,51,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,57,37,112,49,37,123,56,125,37,45,37,100,37,101,51,56,59,53,59,37,112,49,37,100,37,59,109,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,52,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,49,48,37,112,49,37,123,56,125,37,45,37,100,37,101,52,56,59,53,59,37,112,49,37,100,37,59,109,0,1,0,0,0,18,0,37,0,-29,0,1,0,0,0,18,0,24,0,34,0,39,0,46,0,53,0,60,0,67,0,74,0,81,0,88,0,95,0,102,0,109,0,116,0,123,0,-127,0,0,0,3,0,6,0,9,0,12,0,15,0,20,0,25,0,31,0,37,0,43,0,49,0,55,0,61,0,67,0,73,0,78,0,83,0,88,0,27,93,53,50,59,37,112,49,37,115,59,37,112,50,37,115,7,0,27,91,50,32,113,0,27,91,37,112,49,37,100,32,113,0,27,93,48,59,0,27,91,49,59,51,66,0,27,91,49,59,53,66,0,27,91,49,59,51,68,0,27,91,49,59,53,68,0,27,91,54,59,51,126,0,27,91,54,59,53,126,0,27,91,53,59,51,126,0,27,91,53,59,53,126,0,27,91,49,59,51,67,0,27,91,49,59,53,67,0,27,91,49,59,51,65,0,27,91,49,59,53,65,0,27,91,50,57,109,0,27,91,57,109,0,88,84,0,77,115,0,83,101,0,83,115,0,84,83,0,107,68,78,51,0,107,68,78,53,0,107,76,70,84,51,0,107,76,70,84,53,0,107,78,88,84,51,0,107,78,88,84,53,0,107,80,82,86,51,0,107,80,82,86,53,0,107,82,73,84,51,0,107,82,73,84,53,0,107,85,80,51,0,107,85,80,53,0,114,109,120,120,0,115,109,120,120,0
};
// tmux-256color|tmux with 256 colors,
@@ -1457,7 +1473,7 @@ static const int8_t st_256colour_terminfo[] = {
// from_status_line=^G,
// init_2string=\E)0,
// insert_line=\E[L,
-// key_backspace=^H,
+// key_backspace=\177,
// key_btab=\E[Z,
// key_dc=\E[3~,
// key_down=\EOB,
@@ -1568,8 +1584,12 @@ static const int8_t st_256colour_terminfo[] = {
// set_tab=\EH,
// tab=^I,
// to_status_line=\E]0;,
+// user6=\E[%i%d;%dR,
+// user7=\E[6n,
+// user8=\E[?1;2c,
+// user9=\E[c,
static const int8_t tmux_256colour_terminfo[] = {
- 30,2,35,0,43,0,15,0,105,1,-15,4,116,109,117,120,45,50,53,54,99,111,108,111,114,124,116,109,117,120,32,119,105,116,104,32,50,53,54,32,99,111,108,111,114,115,0,0,1,0,0,1,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,80,0,0,0,8,0,0,0,24,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,0,0,0,0,1,0,0,0,4,0,6,0,8,0,25,0,30,0,37,0,41,0,45,0,-1,-1,56,0,73,0,75,0,79,0,86,0,-1,-1,88,0,100,0,-1,-1,104,0,107,0,113,0,117,0,121,0,-1,-1,127,0,-127,0,-122,0,-117,0,-1,-1,-108,0,-103,0,-98,0,-1,-1,-93,0,-88,0,-83,0,-1,-1,-78,0,-76,0,-71,0,-1,-1,-62,0,-57,0,-51,0,-45,0,-1,-1,-42,0,-1,-1,-40,0,-1,-1,-1,-1,-1,-1,-36,0,-1,-1,-32,0,-1,-1,-1,-1,-1,-1,-30,0,-1,-1,-25,0,-1,-1,-1,-1,-1,-1,-1,-1,-21,0,-17,0,-11,0,-7,0,-3,0,1,1,7,1,13,1,19,1,25,1,31,1,36,1,-1,-1,41,1,-1,-1,45,1,50,1,55,1,59,1,66,1,-1,-1,73,1,77,1,85,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,93,1,-1,-1,96,1,105,1,114,1,123,1,-124,1,-115,1,-106,1,-97,1,-1,-1,-88,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-79,1,-1,-1,-1,-1,-62,1,-59,1,-48,1,-45,1,-43,1,-40,1,49,2,-1,-1,52,2,54,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,59,2,-1,-1,124,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-128,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-121,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-116,2,-1,-1,-1,-1,-109,2,-1,-1,-1,-1,-1,-1,-1,-1,-102,2,-95,2,-88,2,-1,-1,-1,-1,-81,2,-1,-1,-74,2,-1,-1,-1,-1,-1,-1,-67,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-60,2,-54,2,-48,2,-41,2,-34,2,-27,2,-20,2,-12,2,-4,2,4,3,12,3,20,3,28,3,36,3,44,3,51,3,58,3,65,3,72,3,80,3,88,3,96,3,104,3,112,3,120,3,-128,3,-120,3,-113,3,-106,3,-99,3,-92,3,-84,3,-76,3,-68,3,-60,3,-52,3,-44,3,-36,3,-28,3,-21,3,-14,3,-7,3,0,4,8,4,16,4,24,4,32,4,40,4,48,4,56,4,64,4,71,4,78,4,85,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,90,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,99,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,104,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,110,4,-1,-1,-1,-1,-1,-1,114,4,-79,4,27,91,90,0,7,0,13,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,114,0,27,91,51,103,0,27,91,72,27,91,74,0,27,91,75,0,27,91,74,0,27,91,37,105,37,112,49,37,100,71,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,72,0,10,0,27,91,72,0,27,91,63,50,53,108,0,8,0,27,91,51,52,104,27,91,63,50,53,104,0,27,91,67,0,27,77,0,27,91,51,52,108,0,27,91,80,0,27,91,77,0,27,93,48,59,7,0,14,0,27,91,53,109,0,27,91,49,109,0,27,91,63,49,48,52,57,104,0,27,91,50,109,0,27,91,52,104,0,27,91,56,109,0,27,91,55,109,0,27,91,55,109,0,27,91,52,109,0,15,0,27,91,109,15,0,27,91,63,49,48,52,57,108,0,27,91,52,108,0,27,91,50,55,109,0,27,91,50,52,109,0,27,103,0,7,0,27,41,48,0,27,91,76,0,8,0,27,91,51,126,0,27,79,66,0,27,79,80,0,27,91,50,49,126,0,27,79,81,0,27,79,82,0,27,79,83,0,27,91,49,53,126,0,27,91,49,55,126,0,27,91,49,56,126,0,27,91,49,57,126,0,27,91,50,48,126,0,27,91,49,126,0,27,91,50,126,0,27,79,68,0,27,91,54,126,0,27,91,53,126,0,27,79,67,0,27,91,49,59,50,66,0,27,91,49,59,50,65,0,27,79,65,0,27,91,63,49,108,27,62,0,27,91,63,49,104,27,61,0,27,69,0,27,91,37,112,49,37,100,80,0,27,91,37,112,49,37,100,77,0,27,91,37,112,49,37,100,66,0,27,91,37,112,49,37,100,64,0,27,91,37,112,49,37,100,83,0,27,91,37,112,49,37,100,76,0,27,91,37,112,49,37,100,68,0,27,91,37,112,49,37,100,67,0,27,91,37,112,49,37,100,65,0,27,99,27,91,63,49,48,48,48,108,27,91,63,50,53,104,0,27,56,0,27,91,37,105,37,112,49,37,100,100,0,27,55,0,10,0,27,77,0,27,91,48,37,63,37,112,54,37,116,59,49,37,59,37,63,37,112,50,37,116,59,52,37,59,37,63,37,112,49,37,112,51,37,124,37,116,59,55,37,59,37,63,37,112,52,37,116,59,53,37,59,37,63,37,112,53,37,116,59,50,37,59,37,63,37,112,55,37,116,59,56,37,59,109,37,63,37,112,57,37,116,14,37,101,15,37,59,0,27,72,0,9,0,27,93,48,59,0,43,43,44,44,45,45,46,46,48,48,96,96,97,97,102,102,103,103,104,104,105,105,106,106,107,107,108,108,109,109,110,110,111,111,112,112,113,113,114,114,115,115,116,116,117,117,118,118,119,119,120,120,121,121,122,122,123,123,124,124,125,125,126,126,0,27,91,90,0,27,40,66,27,41,48,0,27,91,52,126,0,27,91,51,59,50,126,0,27,91,49,59,50,70,0,27,91,49,59,50,72,0,27,91,50,59,50,126,0,27,91,49,59,50,68,0,27,91,54,59,50,126,0,27,91,53,59,50,126,0,27,91,49,59,50,67,0,27,91,50,51,126,0,27,91,50,52,126,0,27,91,49,59,50,80,0,27,91,49,59,50,81,0,27,91,49,59,50,82,0,27,91,49,59,50,83,0,27,91,49,53,59,50,126,0,27,91,49,55,59,50,126,0,27,91,49,56,59,50,126,0,27,91,49,57,59,50,126,0,27,91,50,48,59,50,126,0,27,91,50,49,59,50,126,0,27,91,50,51,59,50,126,0,27,91,50,52,59,50,126,0,27,91,49,59,53,80,0,27,91,49,59,53,81,0,27,91,49,59,53,82,0,27,91,49,59,53,83,0,27,91,49,53,59,53,126,0,27,91,49,55,59,53,126,0,27,91,49,56,59,53,126,0,27,91,49,57,59,53,126,0,27,91,50,48,59,53,126,0,27,91,50,49,59,53,126,0,27,91,50,51,59,53,126,0,27,91,50,52,59,53,126,0,27,91,49,59,54,80,0,27,91,49,59,54,81,0,27,91,49,59,54,82,0,27,91,49,59,54,83,0,27,91,49,53,59,54,126,0,27,91,49,55,59,54,126,0,27,91,49,56,59,54,126,0,27,91,49,57,59,54,126,0,27,91,50,48,59,54,126,0,27,91,50,49,59,54,126,0,27,91,50,51,59,54,126,0,27,91,50,52,59,54,126,0,27,91,49,59,51,80,0,27,91,49,59,51,81,0,27,91,49,59,51,82,0,27,91,49,59,51,83,0,27,91,49,53,59,51,126,0,27,91,49,55,59,51,126,0,27,91,49,56,59,51,126,0,27,91,49,57,59,51,126,0,27,91,50,48,59,51,126,0,27,91,50,49,59,51,126,0,27,91,50,51,59,51,126,0,27,91,50,52,59,51,126,0,27,91,49,59,52,80,0,27,91,49,59,52,81,0,27,91,49,59,52,82,0,27,91,49,75,0,27,91,51,57,59,52,57,109,0,27,91,51,109,0,27,91,50,51,109,0,27,91,77,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,51,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,57,37,112,49,37,123,56,125,37,45,37,100,37,101,51,56,59,53,59,37,112,49,37,100,37,59,109,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,52,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,49,48,37,112,49,37,123,56,125,37,45,37,100,37,101,52,56,59,53,59,37,112,49,37,100,37,59,109,0,0,3,0,1,0,73,0,-106,0,65,3,1,1,0,0,1,0,0,0,0,0,7,0,19,0,23,0,28,0,46,0,54,0,60,0,70,0,-1,-1,-1,-1,-1,-1,75,0,82,0,89,0,96,0,103,0,110,0,117,0,124,0,-125,0,-118,0,-111,0,-104,0,-97,0,-90,0,-83,0,-76,0,-1,-1,-69,0,-62,0,-55,0,-48,0,-41,0,-1,-1,-34,0,-27,0,-20,0,-13,0,-6,0,1,1,8,1,15,1,22,1,29,1,36,1,43,1,50,1,57,1,64,1,71,1,78,1,85,1,92,1,99,1,106,1,113,1,120,1,127,1,-122,1,-115,1,-108,1,-101,1,-94,1,-87,1,-80,1,-1,-1,-1,-1,-1,-1,-1,-1,-73,1,-67,1,-1,-1,0,0,3,0,6,0,9,0,12,0,15,0,18,0,21,0,24,0,27,0,30,0,33,0,36,0,39,0,42,0,48,0,54,0,59,0,64,0,69,0,74,0,79,0,83,0,88,0,93,0,98,0,103,0,108,0,114,0,120,0,126,0,-124,0,-118,0,-112,0,-106,0,-100,0,-94,0,-88,0,-82,0,-76,0,-71,0,-66,0,-61,0,-56,0,-51,0,-45,0,-39,0,-33,0,-27,0,-21,0,-15,0,-9,0,-3,0,3,1,9,1,15,1,21,1,27,1,33,1,39,1,45,1,51,1,57,1,63,1,69,1,73,1,78,1,83,1,88,1,93,1,98,1,102,1,106,1,110,1,114,1,119,1,124,1,27,93,49,49,50,7,0,27,93,49,50,59,37,112,49,37,115,7,0,27,40,66,0,27,91,51,74,0,27,93,53,50,59,37,112,49,37,115,59,37,112,50,37,115,7,0,27,40,37,112,49,37,99,0,27,91,50,32,113,0,27,91,37,112,49,37,100,32,113,0,27,93,48,59,0,27,91,51,59,51,126,0,27,91,51,59,52,126,0,27,91,51,59,53,126,0,27,91,51,59,54,126,0,27,91,51,59,55,126,0,27,91,49,59,50,66,0,27,91,49,59,51,66,0,27,91,49,59,52,66,0,27,91,49,59,53,66,0,27,91,49,59,54,66,0,27,91,49,59,55,66,0,27,91,49,59,51,70,0,27,91,49,59,52,70,0,27,91,49,59,53,70,0,27,91,49,59,54,70,0,27,91,49,59,55,70,0,27,91,49,59,51,72,0,27,91,49,59,52,72,0,27,91,49,59,53,72,0,27,91,49,59,54,72,0,27,91,49,59,55,72,0,27,91,50,59,51,126,0,27,91,50,59,52,126,0,27,91,50,59,53,126,0,27,91,50,59,54,126,0,27,91,50,59,55,126,0,27,91,49,59,51,68,0,27,91,49,59,52,68,0,27,91,49,59,53,68,0,27,91,49,59,54,68,0,27,91,49,59,55,68,0,27,91,54,59,51,126,0,27,91,54,59,52,126,0,27,91,54,59,53,126,0,27,91,54,59,54,126,0,27,91,54,59,55,126,0,27,91,53,59,51,126,0,27,91,53,59,52,126,0,27,91,53,59,53,126,0,27,91,53,59,54,126,0,27,91,53,59,55,126,0,27,91,49,59,51,67,0,27,91,49,59,52,67,0,27,91,49,59,53,67,0,27,91,49,59,54,67,0,27,91,49,59,55,67,0,27,91,49,59,50,65,0,27,91,49,59,51,65,0,27,91,49,59,52,65,0,27,91,49,59,53,65,0,27,91,49,59,54,65,0,27,91,49,59,55,65,0,27,91,50,57,109,0,27,91,57,109,0,65,88,0,71,48,0,88,84,0,85,56,0,67,114,0,67,115,0,69,48,0,69,51,0,77,115,0,83,48,0,83,101,0,83,115,0,84,83,0,88,77,0,103,114,98,111,109,0,103,115,98,111,109,0,107,68,67,51,0,107,68,67,52,0,107,68,67,53,0,107,68,67,54,0,107,68,67,55,0,107,68,78,0,107,68,78,51,0,107,68,78,52,0,107,68,78,53,0,107,68,78,54,0,107,68,78,55,0,107,69,78,68,51,0,107,69,78,68,52,0,107,69,78,68,53,0,107,69,78,68,54,0,107,69,78,68,55,0,107,69,78,68,56,0,107,72,79,77,51,0,107,72,79,77,52,0,107,72,79,77,53,0,107,72,79,77,54,0,107,72,79,77,55,0,107,72,79,77,56,0,107,73,67,51,0,107,73,67,52,0,107,73,67,53,0,107,73,67,54,0,107,73,67,55,0,107,76,70,84,51,0,107,76,70,84,52,0,107,76,70,84,53,0,107,76,70,84,54,0,107,76,70,84,55,0,107,78,88,84,51,0,107,78,88,84,52,0,107,78,88,84,53,0,107,78,88,84,54,0,107,78,88,84,55,0,107,80,82,86,51,0,107,80,82,86,52,0,107,80,82,86,53,0,107,80,82,86,54,0,107,80,82,86,55,0,107,82,73,84,51,0,107,82,73,84,52,0,107,82,73,84,53,0,107,82,73,84,54,0,107,82,73,84,55,0,107,85,80,0,107,85,80,51,0,107,85,80,52,0,107,85,80,53,0,107,85,80,54,0,107,85,80,55,0,107,97,50,0,107,98,49,0,107,98,51,0,107,99,50,0,114,109,120,120,0,115,109,120,120,0,120,109,0 // NOLINT
+ 30,2,35,0,43,0,15,0,105,1,13,5,116,109,117,120,45,50,53,54,99,111,108,111,114,124,116,109,117,120,32,119,105,116,104,32,50,53,54,32,99,111,108,111,114,115,0,0,1,0,0,1,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,80,0,0,0,8,0,0,0,24,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,0,0,0,0,1,0,0,0,4,0,6,0,8,0,25,0,30,0,37,0,41,0,45,0,-1,-1,56,0,73,0,75,0,79,0,86,0,-1,-1,88,0,100,0,-1,-1,104,0,107,0,113,0,117,0,121,0,-1,-1,127,0,-127,0,-122,0,-117,0,-1,-1,-108,0,-103,0,-98,0,-1,-1,-93,0,-88,0,-83,0,-1,-1,-78,0,-76,0,-71,0,-1,-1,-62,0,-57,0,-51,0,-45,0,-1,-1,-42,0,-1,-1,-40,0,-1,-1,-1,-1,-1,-1,-36,0,-1,-1,-32,0,-1,-1,-1,-1,-1,-1,-30,0,-1,-1,-25,0,-1,-1,-1,-1,-1,-1,-1,-1,-21,0,-17,0,-11,0,-7,0,-3,0,1,1,7,1,13,1,19,1,25,1,31,1,36,1,-1,-1,41,1,-1,-1,45,1,50,1,55,1,59,1,66,1,-1,-1,73,1,77,1,85,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,93,1,-1,-1,96,1,105,1,114,1,123,1,-124,1,-115,1,-106,1,-97,1,-1,-1,-88,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-79,1,-1,-1,-1,-1,-62,1,-59,1,-48,1,-45,1,-43,1,-40,1,49,2,-1,-1,52,2,54,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,59,2,-1,-1,124,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-128,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-121,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-116,2,-1,-1,-1,-1,-109,2,-1,-1,-1,-1,-1,-1,-1,-1,-102,2,-95,2,-88,2,-1,-1,-1,-1,-81,2,-1,-1,-74,2,-1,-1,-1,-1,-1,-1,-67,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-60,2,-54,2,-48,2,-41,2,-34,2,-27,2,-20,2,-12,2,-4,2,4,3,12,3,20,3,28,3,36,3,44,3,51,3,58,3,65,3,72,3,80,3,88,3,96,3,104,3,112,3,120,3,-128,3,-120,3,-113,3,-106,3,-99,3,-92,3,-84,3,-76,3,-68,3,-60,3,-52,3,-44,3,-36,3,-28,3,-21,3,-14,3,-7,3,0,4,8,4,16,4,24,4,32,4,40,4,48,4,56,4,64,4,71,4,78,4,85,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,90,4,101,4,106,4,114,4,118,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,127,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-124,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-118,4,-1,-1,-1,-1,-1,-1,-114,4,-51,4,27,91,90,0,7,0,13,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,114,0,27,91,51,103,0,27,91,72,27,91,74,0,27,91,75,0,27,91,74,0,27,91,37,105,37,112,49,37,100,71,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,72,0,10,0,27,91,72,0,27,91,63,50,53,108,0,8,0,27,91,51,52,104,27,91,63,50,53,104,0,27,91,67,0,27,77,0,27,91,51,52,108,0,27,91,80,0,27,91,77,0,27,93,48,59,7,0,14,0,27,91,53,109,0,27,91,49,109,0,27,91,63,49,48,52,57,104,0,27,91,50,109,0,27,91,52,104,0,27,91,56,109,0,27,91,55,109,0,27,91,55,109,0,27,91,52,109,0,15,0,27,91,109,15,0,27,91,63,49,48,52,57,108,0,27,91,52,108,0,27,91,50,55,109,0,27,91,50,52,109,0,27,103,0,7,0,27,41,48,0,27,91,76,0,127,0,27,91,51,126,0,27,79,66,0,27,79,80,0,27,91,50,49,126,0,27,79,81,0,27,79,82,0,27,79,83,0,27,91,49,53,126,0,27,91,49,55,126,0,27,91,49,56,126,0,27,91,49,57,126,0,27,91,50,48,126,0,27,91,49,126,0,27,91,50,126,0,27,79,68,0,27,91,54,126,0,27,91,53,126,0,27,79,67,0,27,91,49,59,50,66,0,27,91,49,59,50,65,0,27,79,65,0,27,91,63,49,108,27,62,0,27,91,63,49,104,27,61,0,27,69,0,27,91,37,112,49,37,100,80,0,27,91,37,112,49,37,100,77,0,27,91,37,112,49,37,100,66,0,27,91,37,112,49,37,100,64,0,27,91,37,112,49,37,100,83,0,27,91,37,112,49,37,100,76,0,27,91,37,112,49,37,100,68,0,27,91,37,112,49,37,100,67,0,27,91,37,112,49,37,100,65,0,27,99,27,91,63,49,48,48,48,108,27,91,63,50,53,104,0,27,56,0,27,91,37,105,37,112,49,37,100,100,0,27,55,0,10,0,27,77,0,27,91,48,37,63,37,112,54,37,116,59,49,37,59,37,63,37,112,50,37,116,59,52,37,59,37,63,37,112,49,37,112,51,37,124,37,116,59,55,37,59,37,63,37,112,52,37,116,59,53,37,59,37,63,37,112,53,37,116,59,50,37,59,37,63,37,112,55,37,116,59,56,37,59,109,37,63,37,112,57,37,116,14,37,101,15,37,59,0,27,72,0,9,0,27,93,48,59,0,43,43,44,44,45,45,46,46,48,48,96,96,97,97,102,102,103,103,104,104,105,105,106,106,107,107,108,108,109,109,110,110,111,111,112,112,113,113,114,114,115,115,116,116,117,117,118,118,119,119,120,120,121,121,122,122,123,123,124,124,125,125,126,126,0,27,91,90,0,27,40,66,27,41,48,0,27,91,52,126,0,27,91,51,59,50,126,0,27,91,49,59,50,70,0,27,91,49,59,50,72,0,27,91,50,59,50,126,0,27,91,49,59,50,68,0,27,91,54,59,50,126,0,27,91,53,59,50,126,0,27,91,49,59,50,67,0,27,91,50,51,126,0,27,91,50,52,126,0,27,91,49,59,50,80,0,27,91,49,59,50,81,0,27,91,49,59,50,82,0,27,91,49,59,50,83,0,27,91,49,53,59,50,126,0,27,91,49,55,59,50,126,0,27,91,49,56,59,50,126,0,27,91,49,57,59,50,126,0,27,91,50,48,59,50,126,0,27,91,50,49,59,50,126,0,27,91,50,51,59,50,126,0,27,91,50,52,59,50,126,0,27,91,49,59,53,80,0,27,91,49,59,53,81,0,27,91,49,59,53,82,0,27,91,49,59,53,83,0,27,91,49,53,59,53,126,0,27,91,49,55,59,53,126,0,27,91,49,56,59,53,126,0,27,91,49,57,59,53,126,0,27,91,50,48,59,53,126,0,27,91,50,49,59,53,126,0,27,91,50,51,59,53,126,0,27,91,50,52,59,53,126,0,27,91,49,59,54,80,0,27,91,49,59,54,81,0,27,91,49,59,54,82,0,27,91,49,59,54,83,0,27,91,49,53,59,54,126,0,27,91,49,55,59,54,126,0,27,91,49,56,59,54,126,0,27,91,49,57,59,54,126,0,27,91,50,48,59,54,126,0,27,91,50,49,59,54,126,0,27,91,50,51,59,54,126,0,27,91,50,52,59,54,126,0,27,91,49,59,51,80,0,27,91,49,59,51,81,0,27,91,49,59,51,82,0,27,91,49,59,51,83,0,27,91,49,53,59,51,126,0,27,91,49,55,59,51,126,0,27,91,49,56,59,51,126,0,27,91,49,57,59,51,126,0,27,91,50,48,59,51,126,0,27,91,50,49,59,51,126,0,27,91,50,51,59,51,126,0,27,91,50,52,59,51,126,0,27,91,49,59,52,80,0,27,91,49,59,52,81,0,27,91,49,59,52,82,0,27,91,49,75,0,27,91,37,105,37,100,59,37,100,82,0,27,91,54,110,0,27,91,63,49,59,50,99,0,27,91,99,0,27,91,51,57,59,52,57,109,0,27,91,51,109,0,27,91,50,51,109,0,27,91,77,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,51,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,57,37,112,49,37,123,56,125,37,45,37,100,37,101,51,56,59,53,59,37,112,49,37,100,37,59,109,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,52,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,49,48,37,112,49,37,123,56,125,37,45,37,100,37,101,52,56,59,53,59,37,112,49,37,100,37,59,109,0,0,2,0,1,0,64,0,-125,0,33,3,1,1,1,0,0,0,0,0,7,0,19,0,23,0,28,0,46,0,54,0,60,0,71,0,81,0,86,0,93,0,100,0,107,0,114,0,121,0,-128,0,-121,0,-114,0,-107,0,-100,0,-93,0,-86,0,-79,0,-72,0,-65,0,-58,0,-51,0,-44,0,-37,0,-30,0,-23,0,-16,0,-9,0,-2,0,5,1,12,1,19,1,26,1,33,1,40,1,47,1,54,1,61,1,68,1,75,1,82,1,89,1,96,1,103,1,110,1,117,1,124,1,-125,1,-118,1,-111,1,-104,1,-97,1,-90,1,-83,1,-76,1,-69,1,-62,1,-56,1,0,0,3,0,6,0,9,0,12,0,15,0,18,0,21,0,24,0,27,0,30,0,36,0,39,0,42,0,47,0,52,0,57,0,62,0,67,0,71,0,76,0,81,0,86,0,91,0,96,0,102,0,108,0,114,0,120,0,126,0,-124,0,-118,0,-112,0,-106,0,-100,0,-95,0,-90,0,-85,0,-80,0,-75,0,-69,0,-63,0,-57,0,-51,0,-45,0,-39,0,-33,0,-27,0,-21,0,-15,0,-9,0,-3,0,3,1,9,1,15,1,21,1,27,1,33,1,39,1,45,1,49,1,54,1,59,1,64,1,69,1,74,1,79,1,27,93,49,49,50,7,0,27,93,49,50,59,37,112,49,37,115,7,0,27,40,66,0,27,91,51,74,0,27,93,53,50,59,37,112,49,37,115,59,37,112,50,37,115,7,0,27,40,37,112,49,37,99,0,27,91,50,32,113,0,27,91,52,58,37,112,49,37,100,109,0,27,91,37,112,49,37,100,32,113,0,27,93,48,59,0,27,91,51,59,51,126,0,27,91,51,59,52,126,0,27,91,51,59,53,126,0,27,91,51,59,54,126,0,27,91,51,59,55,126,0,27,91,49,59,50,66,0,27,91,49,59,51,66,0,27,91,49,59,52,66,0,27,91,49,59,53,66,0,27,91,49,59,54,66,0,27,91,49,59,55,66,0,27,91,49,59,51,70,0,27,91,49,59,52,70,0,27,91,49,59,53,70,0,27,91,49,59,54,70,0,27,91,49,59,55,70,0,27,91,49,59,51,72,0,27,91,49,59,52,72,0,27,91,49,59,53,72,0,27,91,49,59,54,72,0,27,91,49,59,55,72,0,27,91,50,59,51,126,0,27,91,50,59,52,126,0,27,91,50,59,53,126,0,27,91,50,59,54,126,0,27,91,50,59,55,126,0,27,91,49,59,51,68,0,27,91,49,59,52,68,0,27,91,49,59,53,68,0,27,91,49,59,54,68,0,27,91,49,59,55,68,0,27,91,54,59,51,126,0,27,91,54,59,52,126,0,27,91,54,59,53,126,0,27,91,54,59,54,126,0,27,91,54,59,55,126,0,27,91,53,59,51,126,0,27,91,53,59,52,126,0,27,91,53,59,53,126,0,27,91,53,59,54,126,0,27,91,53,59,55,126,0,27,91,49,59,51,67,0,27,91,49,59,52,67,0,27,91,49,59,53,67,0,27,91,49,59,54,67,0,27,91,49,59,55,67,0,27,91,49,59,50,65,0,27,91,49,59,51,65,0,27,91,49,59,52,65,0,27,91,49,59,53,65,0,27,91,49,59,54,65,0,27,91,49,59,55,65,0,27,91,50,57,109,0,27,91,57,109,0,65,88,0,71,48,0,85,56,0,67,114,0,67,115,0,69,48,0,69,51,0,77,115,0,83,48,0,83,101,0,83,109,117,108,120,0,83,115,0,84,83,0,107,68,67,51,0,107,68,67,52,0,107,68,67,53,0,107,68,67,54,0,107,68,67,55,0,107,68,78,0,107,68,78,51,0,107,68,78,52,0,107,68,78,53,0,107,68,78,54,0,107,68,78,55,0,107,69,78,68,51,0,107,69,78,68,52,0,107,69,78,68,53,0,107,69,78,68,54,0,107,69,78,68,55,0,107,72,79,77,51,0,107,72,79,77,52,0,107,72,79,77,53,0,107,72,79,77,54,0,107,72,79,77,55,0,107,73,67,51,0,107,73,67,52,0,107,73,67,53,0,107,73,67,54,0,107,73,67,55,0,107,76,70,84,51,0,107,76,70,84,52,0,107,76,70,84,53,0,107,76,70,84,54,0,107,76,70,84,55,0,107,78,88,84,51,0,107,78,88,84,52,0,107,78,88,84,53,0,107,78,88,84,54,0,107,78,88,84,55,0,107,80,82,86,51,0,107,80,82,86,52,0,107,80,82,86,53,0,107,80,82,86,54,0,107,80,82,86,55,0,107,82,73,84,51,0,107,82,73,84,52,0,107,82,73,84,53,0,107,82,73,84,54,0,107,82,73,84,55,0,107,85,80,0,107,85,80,51,0,107,85,80,52,0,107,85,80,53,0,107,85,80,54,0,107,85,80,55,0,114,109,120,120,0,115,109,120,120,0
};
// vte-256color|VTE with xterm 256-colors,
@@ -1754,7 +1774,7 @@ static const int8_t tmux_256colour_terminfo[] = {
// user8=\E[?%[;0123456789]c,
// user9=\E[c,
static const int8_t vte_256colour_terminfo[] = {
- 30,2,39,0,38,0,15,0,-99,1,-49,5,118,116,101,45,50,53,54,99,111,108,111,114,124,86,84,69,32,119,105,116,104,32,120,116,101,114,109,32,50,53,54,45,99,111,108,111,114,115,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,80,0,0,0,8,0,0,0,24,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,0,0,0,0,1,0,0,0,4,0,6,0,8,0,25,0,30,0,38,0,42,0,46,0,-1,-1,57,0,74,0,76,0,80,0,87,0,-1,-1,89,0,96,0,-1,-1,100,0,-1,-1,104,0,108,0,-1,-1,-1,-1,112,0,-1,-1,114,0,119,0,-1,-1,-128,0,-123,0,-118,0,-1,-1,-113,0,-108,0,-103,0,-98,0,-89,0,-87,0,-81,0,-1,-1,-68,0,-63,0,-57,0,-51,0,-1,-1,-1,-1,-1,-1,-33,0,-1,-1,-1,-1,-1,-1,0,1,-1,-1,4,1,-1,-1,-1,-1,-1,-1,6,1,-1,-1,11,1,-1,-1,-1,-1,-1,-1,-1,-1,15,1,19,1,25,1,29,1,33,1,37,1,43,1,49,1,55,1,61,1,67,1,71,1,-1,-1,76,1,-1,-1,80,1,85,1,90,1,94,1,101,1,-1,-1,108,1,112,1,120,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-128,1,-119,1,-110,1,-101,1,-92,1,-83,1,-74,1,-65,1,-56,1,-47,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-38,1,-35,1,-1,-1,-1,-1,16,2,19,2,30,2,33,2,35,2,38,2,116,2,-1,-1,119,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,121,2,-1,-1,-1,-1,-1,-1,-1,-1,125,2,-1,-1,-78,2,-1,-1,-1,-1,-74,2,-68,2,-1,-1,-1,-1,-62,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-58,2,-54,2,-1,-1,-50,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-45,2,-1,-1,-38,2,-33,2,-1,-1,-1,-1,-1,-1,-1,-1,-26,2,-19,2,-12,2,-1,-1,-1,-1,-5,2,-1,-1,2,3,-1,-1,-1,-1,-1,-1,9,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,3,22,3,28,3,35,3,42,3,49,3,56,3,64,3,72,3,80,3,88,3,96,3,104,3,112,3,120,3,127,3,-122,3,-115,3,-108,3,-100,3,-92,3,-84,3,-76,3,-68,3,-60,3,-52,3,-44,3,-37,3,-30,3,-23,3,-16,3,-8,3,0,4,8,4,16,4,24,4,32,4,40,4,48,4,55,4,62,4,69,4,76,4,84,4,92,4,100,4,108,4,116,4,124,4,-124,4,-116,4,-109,4,-102,4,-95,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-90,4,-79,4,-74,4,-55,4,-51,4,-42,4,-35,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,59,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,64,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,70,5,-1,-1,-1,-1,-1,-1,74,5,-119,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-55,5,-52,5,27,91,90,0,7,0,13,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,114,0,27,91,51,103,0,27,91,72,27,91,50,74,0,27,91,75,0,27,91,74,0,27,91,37,105,37,112,49,37,100,71,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,72,0,10,0,27,91,72,0,27,91,63,50,53,108,0,8,0,27,91,63,50,53,104,0,27,91,67,0,27,91,65,0,27,91,80,0,27,91,77,0,14,0,27,91,49,109,0,27,55,27,91,63,52,55,104,0,27,91,50,109,0,27,91,52,104,0,27,91,56,109,0,27,91,55,109,0,27,91,55,109,0,27,91,52,109,0,27,91,37,112,49,37,100,88,0,15,0,27,91,48,109,15,0,27,91,50,74,27,91,63,52,55,108,27,56,0,27,91,52,108,0,27,91,50,55,109,0,27,91,50,52,109,0,27,91,63,53,104,36,60,49,48,48,47,62,27,91,63,53,108,0,27,91,109,27,91,63,55,104,27,91,52,108,27,62,27,55,27,91,114,27,91,63,49,59,51,59,52,59,54,108,27,56,0,27,91,76,0,127,0,27,91,51,126,0,27,79,66,0,27,79,80,0,27,91,50,49,126,0,27,79,81,0,27,79,82,0,27,79,83,0,27,91,49,53,126,0,27,91,49,55,126,0,27,91,49,56,126,0,27,91,49,57,126,0,27,91,50,48,126,0,27,79,72,0,27,91,50,126,0,27,79,68,0,27,91,54,126,0,27,91,53,126,0,27,79,67,0,27,91,49,59,50,66,0,27,91,49,59,50,65,0,27,79,65,0,27,91,63,49,108,27,62,0,27,91,63,49,104,27,61,0,27,91,37,112,49,37,100,80,0,27,91,37,112,49,37,100,77,0,27,91,37,112,49,37,100,66,0,27,91,37,112,49,37,100,64,0,27,91,37,112,49,37,100,83,0,27,91,37,112,49,37,100,76,0,27,91,37,112,49,37,100,68,0,27,91,37,112,49,37,100,67,0,27,91,37,112,49,37,100,84,0,27,91,37,112,49,37,100,65,0,27,99,0,27,55,27,91,114,27,56,27,91,109,27,91,63,55,104,27,91,33,112,27,91,63,49,59,51,59,52,59,54,108,27,91,52,108,27,62,27,91,63,49,48,48,48,108,27,91,63,50,53,104,0,27,56,0,27,91,37,105,37,112,49,37,100,100,0,27,55,0,10,0,27,77,0,27,91,48,37,63,37,112,54,37,116,59,49,37,59,37,63,37,112,50,37,116,59,52,37,59,37,63,37,112,53,37,116,59,50,37,59,37,63,37,112,55,37,116,59,56,37,59,37,63,37,112,49,37,112,51,37,124,37,116,59,55,37,59,109,37,63,37,112,57,37,116,14,37,101,15,37,59,0,27,72,0,9,0,27,91,69,0,96,96,97,97,102,102,103,103,105,105,106,106,107,107,108,108,109,109,110,110,111,111,112,112,113,113,114,114,115,115,116,116,117,117,118,118,119,119,120,120,121,121,122,122,123,123,124,124,125,125,126,126,0,27,91,90,0,27,91,63,55,104,0,27,91,63,55,108,0,27,41,48,0,27,79,70,0,27,79,77,0,27,91,49,126,0,27,91,51,59,50,126,0,27,91,52,126,0,27,91,49,59,50,70,0,27,91,49,59,50,72,0,27,91,50,59,50,126,0,27,91,49,59,50,68,0,27,91,54,59,50,126,0,27,91,53,59,50,126,0,27,91,49,59,50,67,0,27,91,50,51,126,0,27,91,50,52,126,0,27,91,49,59,50,80,0,27,91,49,59,50,81,0,27,91,49,59,50,82,0,27,91,49,59,50,83,0,27,91,49,53,59,50,126,0,27,91,49,55,59,50,126,0,27,91,49,56,59,50,126,0,27,91,49,57,59,50,126,0,27,91,50,48,59,50,126,0,27,91,50,49,59,50,126,0,27,91,50,51,59,50,126,0,27,91,50,52,59,50,126,0,27,91,49,59,53,80,0,27,91,49,59,53,81,0,27,91,49,59,53,82,0,27,91,49,59,53,83,0,27,91,49,53,59,53,126,0,27,91,49,55,59,53,126,0,27,91,49,56,59,53,126,0,27,91,49,57,59,53,126,0,27,91,50,48,59,53,126,0,27,91,50,49,59,53,126,0,27,91,50,51,59,53,126,0,27,91,50,52,59,53,126,0,27,91,49,59,54,80,0,27,91,49,59,54,81,0,27,91,49,59,54,82,0,27,91,49,59,54,83,0,27,91,49,53,59,54,126,0,27,91,49,55,59,54,126,0,27,91,49,56,59,54,126,0,27,91,49,57,59,54,126,0,27,91,50,48,59,54,126,0,27,91,50,49,59,54,126,0,27,91,50,51,59,54,126,0,27,91,50,52,59,54,126,0,27,91,49,59,51,80,0,27,91,49,59,51,81,0,27,91,49,59,51,82,0,27,91,49,59,51,83,0,27,91,49,53,59,51,126,0,27,91,49,55,59,51,126,0,27,91,49,56,59,51,126,0,27,91,49,57,59,51,126,0,27,91,50,48,59,51,126,0,27,91,50,49,59,51,126,0,27,91,50,51,59,51,126,0,27,91,50,52,59,51,126,0,27,91,49,59,52,80,0,27,91,49,59,52,81,0,27,91,49,59,52,82,0,27,91,49,75,0,27,91,37,105,37,100,59,37,100,82,0,27,91,54,110,0,27,91,63,37,91,59,48,49,50,51,52,53,54,55,56,57,93,99,0,27,91,99,0,27,91,51,57,59,52,57,109,0,27,93,49,48,52,7,0,27,93,52,59,37,112,49,37,100,59,114,103,98,58,37,112,50,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,50,46,50,88,47,37,112,51,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,50,46,50,88,47,37,112,52,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,50,46,50,88,27,92,0,27,91,51,109,0,27,91,50,51,109,0,27,91,60,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,51,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,57,37,112,49,37,123,56,125,37,45,37,100,37,101,51,56,59,53,59,37,112,49,37,100,37,59,109,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,52,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,49,48,37,112,49,37,123,56,125,37,45,37,100,37,101,52,56,59,53,59,37,112,49,37,100,37,59,109,0,27,108,0,27,109,0,0,3,0,1,0,73,0,-106,0,57,3,0,0,1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,-1,-1,-1,-1,32,0,39,0,46,0,53,0,60,0,67,0,74,0,81,0,88,0,95,0,102,0,109,0,116,0,123,0,-126,0,-119,0,-1,-1,-112,0,-105,0,-98,0,-91,0,-84,0,-1,-1,-77,0,-70,0,-63,0,-56,0,-49,0,-42,0,-35,0,-28,0,-21,0,-14,0,-7,0,0,1,7,1,14,1,21,1,28,1,35,1,42,1,49,1,56,1,63,1,70,1,77,1,84,1,91,1,98,1,105,1,112,1,119,1,126,1,-123,1,-1,-1,-1,-1,-1,-1,-1,-1,-116,1,-110,1,-105,1,0,0,3,0,6,0,9,0,12,0,15,0,18,0,21,0,24,0,27,0,30,0,33,0,36,0,39,0,42,0,48,0,54,0,59,0,64,0,69,0,74,0,79,0,83,0,88,0,93,0,98,0,103,0,108,0,114,0,120,0,126,0,-124,0,-118,0,-112,0,-106,0,-100,0,-94,0,-88,0,-82,0,-76,0,-71,0,-66,0,-61,0,-56,0,-51,0,-45,0,-39,0,-33,0,-27,0,-21,0,-15,0,-9,0,-3,0,3,1,9,1,15,1,21,1,27,1,33,1,39,1,45,1,51,1,57,1,63,1,69,1,73,1,78,1,83,1,88,1,93,1,98,1,102,1,106,1,110,1,114,1,119,1,124,1,27,91,63,49,48,48,54,59,49,48,48,48,37,63,37,112,49,37,123,49,125,37,61,37,116,104,37,101,108,37,59,0,27,91,51,59,51,126,0,27,91,51,59,52,126,0,27,91,51,59,53,126,0,27,91,51,59,54,126,0,27,91,51,59,55,126,0,27,91,49,59,50,66,0,27,91,49,59,51,66,0,27,91,49,59,52,66,0,27,91,49,59,53,66,0,27,91,49,59,54,66,0,27,91,49,59,55,66,0,27,91,49,59,51,70,0,27,91,49,59,52,70,0,27,91,49,59,53,70,0,27,91,49,59,54,70,0,27,91,49,59,55,70,0,27,91,49,59,51,72,0,27,91,49,59,52,72,0,27,91,49,59,53,72,0,27,91,49,59,54,72,0,27,91,49,59,55,72,0,27,91,50,59,51,126,0,27,91,50,59,52,126,0,27,91,50,59,53,126,0,27,91,50,59,54,126,0,27,91,50,59,55,126,0,27,91,49,59,51,68,0,27,91,49,59,52,68,0,27,91,49,59,53,68,0,27,91,49,59,54,68,0,27,91,49,59,55,68,0,27,91,54,59,51,126,0,27,91,54,59,52,126,0,27,91,54,59,53,126,0,27,91,54,59,54,126,0,27,91,54,59,55,126,0,27,91,53,59,51,126,0,27,91,53,59,52,126,0,27,91,53,59,53,126,0,27,91,53,59,54,126,0,27,91,53,59,55,126,0,27,91,49,59,51,67,0,27,91,49,59,52,67,0,27,91,49,59,53,67,0,27,91,49,59,54,67,0,27,91,49,59,55,67,0,27,91,49,59,50,65,0,27,91,49,59,51,65,0,27,91,49,59,52,65,0,27,91,49,59,53,65,0,27,91,49,59,54,65,0,27,91,49,59,55,65,0,27,91,50,57,109,0,27,91,57,109,0,27,91,60,37,112,49,37,100,59,37,112,50,37,100,59,37,112,51,37,100,59,37,63,37,112,52,37,116,77,37,101,109,37,59,0,65,88,0,71,48,0,88,84,0,85,56,0,67,114,0,67,115,0,69,48,0,69,51,0,77,115,0,83,48,0,83,101,0,83,115,0,84,83,0,88,77,0,103,114,98,111,109,0,103,115,98,111,109,0,107,68,67,51,0,107,68,67,52,0,107,68,67,53,0,107,68,67,54,0,107,68,67,55,0,107,68,78,0,107,68,78,51,0,107,68,78,52,0,107,68,78,53,0,107,68,78,54,0,107,68,78,55,0,107,69,78,68,51,0,107,69,78,68,52,0,107,69,78,68,53,0,107,69,78,68,54,0,107,69,78,68,55,0,107,69,78,68,56,0,107,72,79,77,51,0,107,72,79,77,52,0,107,72,79,77,53,0,107,72,79,77,54,0,107,72,79,77,55,0,107,72,79,77,56,0,107,73,67,51,0,107,73,67,52,0,107,73,67,53,0,107,73,67,54,0,107,73,67,55,0,107,76,70,84,51,0,107,76,70,84,52,0,107,76,70,84,53,0,107,76,70,84,54,0,107,76,70,84,55,0,107,78,88,84,51,0,107,78,88,84,52,0,107,78,88,84,53,0,107,78,88,84,54,0,107,78,88,84,55,0,107,80,82,86,51,0,107,80,82,86,52,0,107,80,82,86,53,0,107,80,82,86,54,0,107,80,82,86,55,0,107,82,73,84,51,0,107,82,73,84,52,0,107,82,73,84,53,0,107,82,73,84,54,0,107,82,73,84,55,0,107,85,80,0,107,85,80,51,0,107,85,80,52,0,107,85,80,53,0,107,85,80,54,0,107,85,80,55,0,107,97,50,0,107,98,49,0,107,98,51,0,107,99,50,0,114,109,120,120,0,115,109,120,120,0,120,109,0 // NOLINT
+ 30,2,39,0,38,0,15,0,-99,1,-49,5,118,116,101,45,50,53,54,99,111,108,111,114,124,86,84,69,32,119,105,116,104,32,120,116,101,114,109,32,50,53,54,45,99,111,108,111,114,115,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,80,0,0,0,8,0,0,0,24,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,0,0,0,0,1,0,0,0,4,0,6,0,8,0,25,0,30,0,38,0,42,0,46,0,-1,-1,57,0,74,0,76,0,80,0,87,0,-1,-1,89,0,96,0,-1,-1,100,0,-1,-1,104,0,108,0,-1,-1,-1,-1,112,0,-1,-1,114,0,119,0,-1,-1,-128,0,-123,0,-118,0,-1,-1,-113,0,-108,0,-103,0,-98,0,-89,0,-87,0,-81,0,-1,-1,-68,0,-63,0,-57,0,-51,0,-1,-1,-1,-1,-1,-1,-33,0,-1,-1,-1,-1,-1,-1,0,1,-1,-1,4,1,-1,-1,-1,-1,-1,-1,6,1,-1,-1,11,1,-1,-1,-1,-1,-1,-1,-1,-1,15,1,19,1,25,1,29,1,33,1,37,1,43,1,49,1,55,1,61,1,67,1,71,1,-1,-1,76,1,-1,-1,80,1,85,1,90,1,94,1,101,1,-1,-1,108,1,112,1,120,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-128,1,-119,1,-110,1,-101,1,-92,1,-83,1,-74,1,-65,1,-56,1,-47,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-38,1,-35,1,-1,-1,-1,-1,16,2,19,2,30,2,33,2,35,2,38,2,116,2,-1,-1,119,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,121,2,-1,-1,-1,-1,-1,-1,-1,-1,125,2,-1,-1,-78,2,-1,-1,-1,-1,-74,2,-68,2,-1,-1,-1,-1,-62,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-58,2,-54,2,-1,-1,-50,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-45,2,-1,-1,-38,2,-33,2,-1,-1,-1,-1,-1,-1,-1,-1,-26,2,-19,2,-12,2,-1,-1,-1,-1,-5,2,-1,-1,2,3,-1,-1,-1,-1,-1,-1,9,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,3,22,3,28,3,35,3,42,3,49,3,56,3,64,3,72,3,80,3,88,3,96,3,104,3,112,3,120,3,127,3,-122,3,-115,3,-108,3,-100,3,-92,3,-84,3,-76,3,-68,3,-60,3,-52,3,-44,3,-37,3,-30,3,-23,3,-16,3,-8,3,0,4,8,4,16,4,24,4,32,4,40,4,48,4,55,4,62,4,69,4,76,4,84,4,92,4,100,4,108,4,116,4,124,4,-124,4,-116,4,-109,4,-102,4,-95,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-90,4,-79,4,-74,4,-55,4,-51,4,-42,4,-35,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,59,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,64,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,70,5,-1,-1,-1,-1,-1,-1,74,5,-119,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-55,5,-52,5,27,91,90,0,7,0,13,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,114,0,27,91,51,103,0,27,91,72,27,91,50,74,0,27,91,75,0,27,91,74,0,27,91,37,105,37,112,49,37,100,71,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,72,0,10,0,27,91,72,0,27,91,63,50,53,108,0,8,0,27,91,63,50,53,104,0,27,91,67,0,27,91,65,0,27,91,80,0,27,91,77,0,14,0,27,91,49,109,0,27,55,27,91,63,52,55,104,0,27,91,50,109,0,27,91,52,104,0,27,91,56,109,0,27,91,55,109,0,27,91,55,109,0,27,91,52,109,0,27,91,37,112,49,37,100,88,0,15,0,27,91,48,109,15,0,27,91,50,74,27,91,63,52,55,108,27,56,0,27,91,52,108,0,27,91,50,55,109,0,27,91,50,52,109,0,27,91,63,53,104,36,60,49,48,48,47,62,27,91,63,53,108,0,27,91,109,27,91,63,55,104,27,91,52,108,27,62,27,55,27,91,114,27,91,63,49,59,51,59,52,59,54,108,27,56,0,27,91,76,0,127,0,27,91,51,126,0,27,79,66,0,27,79,80,0,27,91,50,49,126,0,27,79,81,0,27,79,82,0,27,79,83,0,27,91,49,53,126,0,27,91,49,55,126,0,27,91,49,56,126,0,27,91,49,57,126,0,27,91,50,48,126,0,27,79,72,0,27,91,50,126,0,27,79,68,0,27,91,54,126,0,27,91,53,126,0,27,79,67,0,27,91,49,59,50,66,0,27,91,49,59,50,65,0,27,79,65,0,27,91,63,49,108,27,62,0,27,91,63,49,104,27,61,0,27,91,37,112,49,37,100,80,0,27,91,37,112,49,37,100,77,0,27,91,37,112,49,37,100,66,0,27,91,37,112,49,37,100,64,0,27,91,37,112,49,37,100,83,0,27,91,37,112,49,37,100,76,0,27,91,37,112,49,37,100,68,0,27,91,37,112,49,37,100,67,0,27,91,37,112,49,37,100,84,0,27,91,37,112,49,37,100,65,0,27,99,0,27,55,27,91,114,27,56,27,91,109,27,91,63,55,104,27,91,33,112,27,91,63,49,59,51,59,52,59,54,108,27,91,52,108,27,62,27,91,63,49,48,48,48,108,27,91,63,50,53,104,0,27,56,0,27,91,37,105,37,112,49,37,100,100,0,27,55,0,10,0,27,77,0,27,91,48,37,63,37,112,54,37,116,59,49,37,59,37,63,37,112,50,37,116,59,52,37,59,37,63,37,112,53,37,116,59,50,37,59,37,63,37,112,55,37,116,59,56,37,59,37,63,37,112,49,37,112,51,37,124,37,116,59,55,37,59,109,37,63,37,112,57,37,116,14,37,101,15,37,59,0,27,72,0,9,0,27,91,69,0,96,96,97,97,102,102,103,103,105,105,106,106,107,107,108,108,109,109,110,110,111,111,112,112,113,113,114,114,115,115,116,116,117,117,118,118,119,119,120,120,121,121,122,122,123,123,124,124,125,125,126,126,0,27,91,90,0,27,91,63,55,104,0,27,91,63,55,108,0,27,41,48,0,27,79,70,0,27,79,77,0,27,91,49,126,0,27,91,51,59,50,126,0,27,91,52,126,0,27,91,49,59,50,70,0,27,91,49,59,50,72,0,27,91,50,59,50,126,0,27,91,49,59,50,68,0,27,91,54,59,50,126,0,27,91,53,59,50,126,0,27,91,49,59,50,67,0,27,91,50,51,126,0,27,91,50,52,126,0,27,91,49,59,50,80,0,27,91,49,59,50,81,0,27,91,49,59,50,82,0,27,91,49,59,50,83,0,27,91,49,53,59,50,126,0,27,91,49,55,59,50,126,0,27,91,49,56,59,50,126,0,27,91,49,57,59,50,126,0,27,91,50,48,59,50,126,0,27,91,50,49,59,50,126,0,27,91,50,51,59,50,126,0,27,91,50,52,59,50,126,0,27,91,49,59,53,80,0,27,91,49,59,53,81,0,27,91,49,59,53,82,0,27,91,49,59,53,83,0,27,91,49,53,59,53,126,0,27,91,49,55,59,53,126,0,27,91,49,56,59,53,126,0,27,91,49,57,59,53,126,0,27,91,50,48,59,53,126,0,27,91,50,49,59,53,126,0,27,91,50,51,59,53,126,0,27,91,50,52,59,53,126,0,27,91,49,59,54,80,0,27,91,49,59,54,81,0,27,91,49,59,54,82,0,27,91,49,59,54,83,0,27,91,49,53,59,54,126,0,27,91,49,55,59,54,126,0,27,91,49,56,59,54,126,0,27,91,49,57,59,54,126,0,27,91,50,48,59,54,126,0,27,91,50,49,59,54,126,0,27,91,50,51,59,54,126,0,27,91,50,52,59,54,126,0,27,91,49,59,51,80,0,27,91,49,59,51,81,0,27,91,49,59,51,82,0,27,91,49,59,51,83,0,27,91,49,53,59,51,126,0,27,91,49,55,59,51,126,0,27,91,49,56,59,51,126,0,27,91,49,57,59,51,126,0,27,91,50,48,59,51,126,0,27,91,50,49,59,51,126,0,27,91,50,51,59,51,126,0,27,91,50,52,59,51,126,0,27,91,49,59,52,80,0,27,91,49,59,52,81,0,27,91,49,59,52,82,0,27,91,49,75,0,27,91,37,105,37,100,59,37,100,82,0,27,91,54,110,0,27,91,63,37,91,59,48,49,50,51,52,53,54,55,56,57,93,99,0,27,91,99,0,27,91,51,57,59,52,57,109,0,27,93,49,48,52,7,0,27,93,52,59,37,112,49,37,100,59,114,103,98,58,37,112,50,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,50,46,50,88,47,37,112,51,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,50,46,50,88,47,37,112,52,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,50,46,50,88,27,92,0,27,91,51,109,0,27,91,50,51,109,0,27,91,60,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,51,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,57,37,112,49,37,123,56,125,37,45,37,100,37,101,51,56,59,53,59,37,112,49,37,100,37,59,109,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,52,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,49,48,37,112,49,37,123,56,125,37,45,37,100,37,101,52,56,59,53,59,37,112,49,37,100,37,59,109,0,27,108,0,27,109,0,0,1,0,0,0,59,0,119,0,22,3,1,0,0,0,6,0,12,0,23,0,55,0,62,0,69,0,76,0,83,0,90,0,97,0,104,0,111,0,118,0,125,0,-124,0,-117,0,-110,0,-103,0,-96,0,-89,0,-82,0,-75,0,-68,0,-61,0,-54,0,-47,0,-40,0,-33,0,-26,0,-19,0,-12,0,-5,0,2,1,9,1,16,1,23,1,30,1,37,1,44,1,51,1,58,1,65,1,72,1,79,1,86,1,93,1,100,1,107,1,114,1,121,1,-128,1,-121,1,-114,1,-107,1,-100,1,-93,1,-87,1,-82,1,0,0,3,0,8,0,13,0,19,0,22,0,27,0,32,0,37,0,42,0,47,0,51,0,56,0,61,0,66,0,71,0,76,0,82,0,88,0,94,0,100,0,106,0,112,0,118,0,124,0,-126,0,-120,0,-115,0,-110,0,-105,0,-100,0,-95,0,-89,0,-83,0,-77,0,-71,0,-65,0,-59,0,-53,0,-47,0,-41,0,-35,0,-29,0,-23,0,-17,0,-11,0,-5,0,1,1,7,1,13,1,19,1,25,1,29,1,34,1,39,1,44,1,49,1,54,1,59,1,64,1,27,91,53,53,109,0,27,91,53,51,109,0,27,91,52,58,37,112,49,37,100,109,0,27,91,63,49,48,48,54,59,49,48,48,48,37,63,37,112,49,37,123,49,125,37,61,37,116,104,37,101,108,37,59,0,27,91,51,59,51,126,0,27,91,51,59,52,126,0,27,91,51,59,53,126,0,27,91,51,59,54,126,0,27,91,51,59,55,126,0,27,91,49,59,50,66,0,27,91,49,59,51,66,0,27,91,49,59,52,66,0,27,91,49,59,53,66,0,27,91,49,59,54,66,0,27,91,49,59,55,66,0,27,91,49,59,51,70,0,27,91,49,59,52,70,0,27,91,49,59,53,70,0,27,91,49,59,54,70,0,27,91,49,59,55,70,0,27,91,49,59,51,72,0,27,91,49,59,52,72,0,27,91,49,59,53,72,0,27,91,49,59,54,72,0,27,91,49,59,55,72,0,27,91,50,59,51,126,0,27,91,50,59,52,126,0,27,91,50,59,53,126,0,27,91,50,59,54,126,0,27,91,50,59,55,126,0,27,91,49,59,51,68,0,27,91,49,59,52,68,0,27,91,49,59,53,68,0,27,91,49,59,54,68,0,27,91,49,59,55,68,0,27,91,54,59,51,126,0,27,91,54,59,52,126,0,27,91,54,59,53,126,0,27,91,54,59,54,126,0,27,91,54,59,55,126,0,27,91,53,59,51,126,0,27,91,53,59,52,126,0,27,91,53,59,53,126,0,27,91,53,59,54,126,0,27,91,53,59,55,126,0,27,91,49,59,51,67,0,27,91,49,59,52,67,0,27,91,49,59,53,67,0,27,91,49,59,54,67,0,27,91,49,59,55,67,0,27,91,49,59,50,65,0,27,91,49,59,51,65,0,27,91,49,59,52,65,0,27,91,49,59,53,65,0,27,91,49,59,54,65,0,27,91,49,59,55,65,0,27,91,50,57,109,0,27,91,57,109,0,27,91,60,37,105,37,112,51,37,100,59,37,112,49,37,100,59,37,112,50,37,100,59,37,63,37,112,52,37,116,77,37,101,109,37,59,0,88,84,0,82,109,111,108,0,83,109,111,108,0,83,109,117,108,120,0,88,77,0,107,68,67,51,0,107,68,67,52,0,107,68,67,53,0,107,68,67,54,0,107,68,67,55,0,107,68,78,0,107,68,78,51,0,107,68,78,52,0,107,68,78,53,0,107,68,78,54,0,107,68,78,55,0,107,69,78,68,51,0,107,69,78,68,52,0,107,69,78,68,53,0,107,69,78,68,54,0,107,69,78,68,55,0,107,72,79,77,51,0,107,72,79,77,52,0,107,72,79,77,53,0,107,72,79,77,54,0,107,72,79,77,55,0,107,73,67,51,0,107,73,67,52,0,107,73,67,53,0,107,73,67,54,0,107,73,67,55,0,107,76,70,84,51,0,107,76,70,84,52,0,107,76,70,84,53,0,107,76,70,84,54,0,107,76,70,84,55,0,107,78,88,84,51,0,107,78,88,84,52,0,107,78,88,84,53,0,107,78,88,84,54,0,107,78,88,84,55,0,107,80,82,86,51,0,107,80,82,86,52,0,107,80,82,86,53,0,107,80,82,86,54,0,107,80,82,86,55,0,107,82,73,84,51,0,107,82,73,84,52,0,107,82,73,84,53,0,107,82,73,84,54,0,107,82,73,84,55,0,107,85,80,0,107,85,80,51,0,107,85,80,52,0,107,85,80,53,0,107,85,80,54,0,107,85,80,55,0,114,109,120,120,0,115,109,120,120,0,120,109,0
};
// vtpcon|ANIS emulation for console virtual terminal sequence with libuv,
@@ -1776,6 +1796,7 @@ static const int8_t vte_256colour_terminfo[] = {
// carriage_return=\r,
// change_scroll_region=\E[%i%p1%d;%p2%dr,
// clear_all_tabs@,
+// clear_margins=\E[?69l,
// clear_screen=\E[H\E[2J,
// clr_bol=\E[1K,
// clr_eol=\E[K,
@@ -1817,9 +1838,13 @@ static const int8_t vte_256colour_terminfo[] = {
// init_2string=\E[\041p\E[?3l,
// initialize_color=\E]4;%p1%d;rgb\072%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E,
// insert_line=\E[L,
+// key_a1=\EOw,
+// key_a3=\EOy,
// key_b2=\E[G,
// key_backspace=^H,
// key_btab=\E[Z,
+// key_c1=\EOq,
+// key_c3=\EOs,
// key_dc=\E[3~,
// key_down=\E[B,
// key_end=\E[4~,
@@ -1911,6 +1936,7 @@ static const int8_t vte_256colour_terminfo[] = {
// memory_unlock@,
// meta_off@,
// meta_on@,
+// newline=\EE,
// orig_colors@,
// orig_pair=\E[39;49m,
// parm_dch=\E[%p1%dP,
@@ -1937,6 +1963,7 @@ static const int8_t vte_256colour_terminfo[] = {
// set_a_background=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m,
// set_a_foreground=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m,
// set_attributes=\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p6%t;1%;m,
+// set_lr_margin=\E[?69h\E[%i%p1%d;%p2%ds,
// set_tab=\EH,
// tab=^I,
// user6@,
@@ -1944,7 +1971,7 @@ static const int8_t vte_256colour_terminfo[] = {
// user8@,
// user9@,
static const int8_t vtpcon_terminfo[] = {
- 30,2,71,0,38,0,15,0,-99,1,21,4,118,116,112,99,111,110,124,65,78,73,83,32,101,109,117,108,97,116,105,111,110,32,102,111,114,32,99,111,110,115,111,108,101,32,118,105,114,116,117,97,108,32,116,101,114,109,105,110,97,108,32,115,101,113,117,101,110,99,101,32,119,105,116,104,32,108,105,98,117,118,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,80,0,0,0,8,0,0,0,24,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,0,0,0,0,1,0,0,0,4,0,6,0,8,0,-2,-1,25,0,33,0,37,0,41,0,-1,-1,52,0,69,0,73,0,77,0,84,0,-1,-1,86,0,99,0,-1,-1,103,0,-2,-1,107,0,111,0,-1,-1,-1,-1,115,0,-2,-1,119,0,124,0,-1,-1,-2,-1,-2,-1,-2,-1,-1,-1,-123,0,-118,0,-113,0,-108,0,-99,0,-95,0,-90,0,-1,-1,-2,-1,-81,0,-75,0,-2,-1,-1,-1,-1,-1,-1,-1,-69,0,-1,-1,-1,-1,-1,-1,-59,0,-1,-1,-55,0,-1,-1,-1,-1,-1,-1,-53,0,-1,-1,-48,0,-1,-1,-1,-1,-1,-1,-1,-1,-44,0,-39,0,-33,0,-28,0,-23,0,-18,0,-13,0,-7,0,-1,0,5,1,11,1,16,1,-1,-1,21,1,-1,-1,25,1,30,1,35,1,39,1,46,1,-1,-1,53,1,-2,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-2,-1,-1,-1,-1,-1,57,1,66,1,75,1,84,1,93,1,102,1,111,1,120,1,-127,1,-118,1,-1,-1,-1,-1,-1,-1,-2,-1,-2,-1,-2,-1,-109,1,-2,-1,-2,-1,-1,-1,-1,-1,-89,1,-86,1,-75,1,-72,1,-70,1,-67,1,-24,1,-1,-1,-21,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-19,1,-1,-1,-1,-1,-1,-1,-1,-1,-15,1,-1,-1,8,2,-1,-1,-1,-1,-2,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,12,2,17,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,21,2,-1,-1,-1,-1,28,2,-1,-1,-1,-1,-1,-1,-1,-1,35,2,42,2,49,2,-1,-1,-1,-1,56,2,-1,-1,63,2,-1,-1,-1,-1,-1,-1,70,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,77,2,83,2,89,2,95,2,101,2,107,2,113,2,119,2,125,2,-125,2,-119,2,-113,2,-107,2,-101,2,-95,2,-89,2,-83,2,-77,2,-71,2,-65,2,-59,2,-53,2,-47,2,-41,2,-35,2,-29,2,-23,2,-17,2,-11,2,-5,2,2,3,8,3,14,3,20,3,26,3,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,32,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-2,-1,-2,-1,-2,-1,37,3,-2,-1,46,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-117,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-112,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-1,-1,-1,-1,-1,-1,-106,3,-43,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-2,-1,27,91,90,0,7,0,13,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,114,0,27,91,72,27,91,50,74,0,27,91,75,0,27,91,74,0,27,91,37,105,37,112,49,37,100,71,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,72,0,27,91,66,0,27,91,72,0,27,91,63,50,53,108,0,8,0,27,91,63,49,50,108,27,91,63,50,53,104,0,27,91,67,0,27,91,65,0,27,91,80,0,27,91,77,0,27,40,48,0,27,91,49,109,0,27,91,63,49,48,52,57,104,0,27,91,55,109,0,27,91,55,109,0,27,91,52,109,0,27,91,37,112,49,37,100,88,0,27,40,66,0,27,91,48,109,0,27,91,63,49,48,52,57,108,0,27,91,50,55,109,0,27,91,50,52,109,0,27,91,33,112,27,91,63,51,108,0,27,91,76,0,8,0,27,91,51,126,0,27,91,66,0,27,91,91,65,0,27,91,50,49,126,0,27,91,91,66,0,27,91,91,67,0,27,91,91,68,0,27,91,91,69,0,27,91,49,55,126,0,27,91,49,56,126,0,27,91,49,57,126,0,27,91,50,48,126,0,27,91,49,126,0,27,91,50,126,0,27,91,68,0,27,91,54,126,0,27,91,53,126,0,27,91,67,0,27,91,49,59,50,66,0,27,91,49,59,50,65,0,27,91,65,0,27,91,37,112,49,37,100,80,0,27,91,37,112,49,37,100,77,0,27,91,37,112,49,37,100,66,0,27,91,37,112,49,37,100,64,0,27,91,37,112,49,37,100,83,0,27,91,37,112,49,37,100,76,0,27,91,37,112,49,37,100,68,0,27,91,37,112,49,37,100,67,0,27,91,37,112,49,37,100,84,0,27,91,37,112,49,37,100,65,0,37,112,49,37,99,27,91,37,112,50,37,123,49,125,37,45,37,100,98,0,27,56,0,27,91,37,105,37,112,49,37,100,100,0,27,55,0,10,0,27,77,0,27,91,48,37,63,37,112,49,37,112,51,37,124,37,116,59,55,37,59,37,63,37,112,50,37,116,59,52,37,59,37,63,37,112,54,37,116,59,49,37,59,109,0,27,72,0,9,0,27,91,71,0,106,106,107,107,108,108,109,109,110,110,113,113,116,116,117,117,118,118,119,119,120,120,0,27,91,90,0,27,91,52,126,0,27,79,77,0,27,91,51,59,50,126,0,27,91,52,59,50,126,0,27,91,49,59,50,126,0,27,91,50,59,50,126,0,27,91,49,59,50,68,0,27,91,54,59,50,126,0,27,91,53,59,50,126,0,27,91,49,59,50,67,0,27,91,50,51,126,0,27,91,50,52,126,0,27,91,50,53,126,0,27,91,50,54,126,0,27,91,50,56,126,0,27,91,50,57,126,0,27,91,51,49,126,0,27,91,51,50,126,0,27,91,51,51,126,0,27,91,51,52,126,0,27,91,50,51,36,0,27,91,50,52,36,0,27,91,49,49,94,0,27,91,49,50,94,0,27,91,49,51,94,0,27,91,49,52,94,0,27,91,49,53,94,0,27,91,49,55,94,0,27,91,49,56,94,0,27,91,49,57,94,0,27,91,50,48,94,0,27,91,50,49,94,0,27,91,50,51,94,0,27,91,50,52,94,0,27,91,50,53,94,0,27,91,50,54,94,0,27,91,50,56,94,0,27,91,50,57,94,0,27,91,51,49,94,0,27,91,49,59,54,83,0,27,91,51,50,94,0,27,91,51,51,94,0,27,91,51,52,94,0,27,91,50,51,64,0,27,91,50,52,64,0,27,91,49,75,0,27,91,51,57,59,52,57,109,0,27,93,52,59,37,112,49,37,100,59,114,103,98,58,37,112,50,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,50,46,50,88,47,37,112,51,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,50,46,50,88,47,37,112,52,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,50,46,50,88,27,0,27,91,51,109,0,27,91,50,51,109,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,51,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,57,37,112,49,37,123,56,125,37,45,37,100,37,101,51,56,59,53,59,37,112,49,37,100,37,59,109,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,52,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,49,48,37,112,49,37,123,56,125,37,45,37,100,37,101,52,56,59,53,59,37,112,49,37,100,37,59,109,0,0,3,0,1,0,74,0,-104,0,-95,1,1,0,1,0,-1,-1,-1,-1,-2,-1,-2,-1,-1,-1,0,0,-2,-1,-1,-1,5,0,-1,-1,11,0,-1,-1,-2,-1,-1,-1,-1,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-1,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-1,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,21,0,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-2,-1,-2,-1,0,0,3,0,6,0,9,0,12,0,15,0,18,0,21,0,24,0,27,0,30,0,33,0,39,0,42,0,45,0,48,0,54,0,60,0,65,0,70,0,75,0,80,0,85,0,89,0,94,0,99,0,104,0,109,0,114,0,120,0,126,0,-124,0,-118,0,-112,0,-106,0,-100,0,-94,0,-88,0,-82,0,-76,0,-70,0,-65,0,-60,0,-55,0,-50,0,-45,0,-39,0,-33,0,-27,0,-21,0,-15,0,-9,0,-3,0,3,1,9,1,15,1,21,1,27,1,33,1,39,1,45,1,51,1,57,1,63,1,69,1,75,1,79,1,84,1,89,1,94,1,99,1,104,1,108,1,112,1,116,1,120,1,125,1,-126,1,27,91,51,74,0,27,91,50,32,113,0,27,91,37,112,49,37,100,32,113,0,27,91,49,59,50,65,0,65,88,0,71,48,0,88,84,0,85,56,0,67,114,0,67,115,0,69,48,0,69,51,0,77,115,0,83,48,0,83,101,0,83,109,117,108,120,0,83,115,0,84,83,0,88,77,0,103,114,98,111,109,0,103,115,98,111,109,0,107,68,67,51,0,107,68,67,52,0,107,68,67,53,0,107,68,67,54,0,107,68,67,55,0,107,68,78,0,107,68,78,51,0,107,68,78,52,0,107,68,78,53,0,107,68,78,54,0,107,68,78,55,0,107,69,78,68,51,0,107,69,78,68,52,0,107,69,78,68,53,0,107,69,78,68,54,0,107,69,78,68,55,0,107,69,78,68,56,0,107,72,79,77,51,0,107,72,79,77,52,0,107,72,79,77,53,0,107,72,79,77,54,0,107,72,79,77,55,0,107,72,79,77,56,0,107,73,67,51,0,107,73,67,52,0,107,73,67,53,0,107,73,67,54,0,107,73,67,55,0,107,76,70,84,51,0,107,76,70,84,52,0,107,76,70,84,53,0,107,76,70,84,54,0,107,76,70,84,55,0,107,78,88,84,51,0,107,78,88,84,52,0,107,78,88,84,53,0,107,78,88,84,54,0,107,78,88,84,55,0,107,80,82,86,51,0,107,80,82,86,52,0,107,80,82,86,53,0,107,80,82,86,54,0,107,80,82,86,55,0,107,82,73,84,51,0,107,82,73,84,52,0,107,82,73,84,53,0,107,82,73,84,54,0,107,82,73,84,55,0,107,85,80,0,107,85,80,51,0,107,85,80,52,0,107,85,80,53,0,107,85,80,54,0,107,85,80,55,0,107,97,50,0,107,98,49,0,107,98,51,0,107,99,50,0,114,109,120,120,0,115,109,120,120,0,120,109,0 // NOLINT
+ 30,2,71,0,38,0,15,0,-99,1,70,4,118,116,112,99,111,110,124,65,78,73,83,32,101,109,117,108,97,116,105,111,110,32,102,111,114,32,99,111,110,115,111,108,101,32,118,105,114,116,117,97,108,32,116,101,114,109,105,110,97,108,32,115,101,113,117,101,110,99,101,32,119,105,116,104,32,108,105,98,117,118,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,80,0,0,0,8,0,0,0,24,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,0,0,0,0,1,0,0,0,4,0,6,0,8,0,-2,-1,25,0,33,0,37,0,41,0,-1,-1,52,0,69,0,73,0,77,0,84,0,-1,-1,86,0,99,0,-1,-1,103,0,-2,-1,107,0,111,0,-1,-1,-1,-1,115,0,-2,-1,119,0,124,0,-1,-1,-2,-1,-2,-1,-2,-1,-1,-1,-123,0,-118,0,-113,0,-108,0,-99,0,-95,0,-90,0,-1,-1,-2,-1,-81,0,-75,0,-2,-1,-1,-1,-1,-1,-1,-1,-69,0,-1,-1,-1,-1,-1,-1,-59,0,-1,-1,-55,0,-1,-1,-1,-1,-1,-1,-53,0,-1,-1,-48,0,-1,-1,-1,-1,-1,-1,-1,-1,-44,0,-39,0,-33,0,-28,0,-23,0,-18,0,-13,0,-7,0,-1,0,5,1,11,1,16,1,-1,-1,21,1,-1,-1,25,1,30,1,35,1,39,1,46,1,-1,-1,53,1,-2,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-2,-1,57,1,-1,-1,60,1,69,1,78,1,87,1,96,1,105,1,114,1,123,1,-124,1,-115,1,-1,-1,-1,-1,-1,-1,-2,-1,-2,-1,-2,-1,-106,1,-2,-1,-2,-1,-1,-1,-1,-1,-86,1,-83,1,-72,1,-69,1,-67,1,-64,1,-21,1,-1,-1,-18,1,-1,-1,-1,-1,-1,-1,-1,-1,-16,1,-12,1,-8,1,-4,1,0,2,-1,-1,-1,-1,4,2,-1,-1,27,2,-1,-1,-1,-1,-2,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,31,2,36,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,40,2,-1,-1,-1,-1,47,2,-1,-1,-1,-1,-1,-1,-1,-1,54,2,61,2,68,2,-1,-1,-1,-1,75,2,-1,-1,82,2,-1,-1,-1,-1,-1,-1,89,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,96,2,102,2,108,2,114,2,120,2,126,2,-124,2,-118,2,-112,2,-106,2,-100,2,-94,2,-88,2,-82,2,-76,2,-70,2,-64,2,-58,2,-52,2,-46,2,-40,2,-34,2,-28,2,-22,2,-16,2,-10,2,-4,2,2,3,8,3,14,3,21,3,27,3,33,3,39,3,45,3,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,51,3,56,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-2,-1,-2,-1,-2,-1,63,3,-2,-1,72,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-91,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-86,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-1,-1,-1,-1,-1,-1,-80,3,-17,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,47,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-2,-1,27,91,90,0,7,0,13,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,114,0,27,91,72,27,91,50,74,0,27,91,75,0,27,91,74,0,27,91,37,105,37,112,49,37,100,71,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,72,0,27,91,66,0,27,91,72,0,27,91,63,50,53,108,0,8,0,27,91,63,49,50,108,27,91,63,50,53,104,0,27,91,67,0,27,91,65,0,27,91,80,0,27,91,77,0,27,40,48,0,27,91,49,109,0,27,91,63,49,48,52,57,104,0,27,91,55,109,0,27,91,55,109,0,27,91,52,109,0,27,91,37,112,49,37,100,88,0,27,40,66,0,27,91,48,109,0,27,91,63,49,48,52,57,108,0,27,91,50,55,109,0,27,91,50,52,109,0,27,91,33,112,27,91,63,51,108,0,27,91,76,0,8,0,27,91,51,126,0,27,91,66,0,27,91,91,65,0,27,91,50,49,126,0,27,91,91,66,0,27,91,91,67,0,27,91,91,68,0,27,91,91,69,0,27,91,49,55,126,0,27,91,49,56,126,0,27,91,49,57,126,0,27,91,50,48,126,0,27,91,49,126,0,27,91,50,126,0,27,91,68,0,27,91,54,126,0,27,91,53,126,0,27,91,67,0,27,91,49,59,50,66,0,27,91,49,59,50,65,0,27,91,65,0,27,69,0,27,91,37,112,49,37,100,80,0,27,91,37,112,49,37,100,77,0,27,91,37,112,49,37,100,66,0,27,91,37,112,49,37,100,64,0,27,91,37,112,49,37,100,83,0,27,91,37,112,49,37,100,76,0,27,91,37,112,49,37,100,68,0,27,91,37,112,49,37,100,67,0,27,91,37,112,49,37,100,84,0,27,91,37,112,49,37,100,65,0,37,112,49,37,99,27,91,37,112,50,37,123,49,125,37,45,37,100,98,0,27,56,0,27,91,37,105,37,112,49,37,100,100,0,27,55,0,10,0,27,77,0,27,91,48,37,63,37,112,49,37,112,51,37,124,37,116,59,55,37,59,37,63,37,112,50,37,116,59,52,37,59,37,63,37,112,54,37,116,59,49,37,59,109,0,27,72,0,9,0,27,79,119,0,27,79,121,0,27,91,71,0,27,79,113,0,27,79,115,0,106,106,107,107,108,108,109,109,110,110,113,113,116,116,117,117,118,118,119,119,120,120,0,27,91,90,0,27,91,52,126,0,27,79,77,0,27,91,51,59,50,126,0,27,91,52,59,50,126,0,27,91,49,59,50,126,0,27,91,50,59,50,126,0,27,91,49,59,50,68,0,27,91,54,59,50,126,0,27,91,53,59,50,126,0,27,91,49,59,50,67,0,27,91,50,51,126,0,27,91,50,52,126,0,27,91,50,53,126,0,27,91,50,54,126,0,27,91,50,56,126,0,27,91,50,57,126,0,27,91,51,49,126,0,27,91,51,50,126,0,27,91,51,51,126,0,27,91,51,52,126,0,27,91,50,51,36,0,27,91,50,52,36,0,27,91,49,49,94,0,27,91,49,50,94,0,27,91,49,51,94,0,27,91,49,52,94,0,27,91,49,53,94,0,27,91,49,55,94,0,27,91,49,56,94,0,27,91,49,57,94,0,27,91,50,48,94,0,27,91,50,49,94,0,27,91,50,51,94,0,27,91,50,52,94,0,27,91,50,53,94,0,27,91,50,54,94,0,27,91,50,56,94,0,27,91,50,57,94,0,27,91,51,49,94,0,27,91,49,59,54,83,0,27,91,51,50,94,0,27,91,51,51,94,0,27,91,51,52,94,0,27,91,50,51,64,0,27,91,50,52,64,0,27,91,49,75,0,27,91,63,54,57,108,0,27,91,51,57,59,52,57,109,0,27,93,52,59,37,112,49,37,100,59,114,103,98,58,37,112,50,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,50,46,50,88,47,37,112,51,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,50,46,50,88,47,37,112,52,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,50,46,50,88,27,0,27,91,51,109,0,27,91,50,51,109,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,51,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,57,37,112,49,37,123,56,125,37,45,37,100,37,101,51,56,59,53,59,37,112,49,37,100,37,59,109,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,52,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,49,48,37,112,49,37,123,56,125,37,45,37,100,37,101,52,56,59,53,59,37,112,49,37,100,37,59,109,0,27,91,63,54,57,104,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,115,0,2,0,0,0,74,0,92,0,-46,1,1,1,-2,-1,-2,-1,0,0,-2,-1,5,0,11,0,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,21,0,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,28,0,32,0,36,0,40,0,44,0,48,0,52,0,56,0,60,0,64,0,68,0,72,0,-2,-1,-2,-1,-2,-1,0,0,3,0,6,0,9,0,12,0,15,0,18,0,21,0,24,0,27,0,32,0,37,0,42,0,47,0,52,0,56,0,61,0,66,0,71,0,76,0,81,0,87,0,93,0,99,0,105,0,111,0,117,0,123,0,-127,0,-121,0,-115,0,-110,0,-105,0,-100,0,-95,0,-90,0,-84,0,-78,0,-72,0,-66,0,-60,0,-54,0,-48,0,-42,0,-36,0,-30,0,-24,0,-18,0,-12,0,-6,0,0,1,6,1,12,1,18,1,24,1,30,1,34,1,39,1,44,1,49,1,54,1,59,1,63,1,67,1,71,1,75,1,79,1,85,1,91,1,97,1,103,1,109,1,115,1,121,1,126,1,-125,1,27,91,51,74,0,27,91,50,32,113,0,27,91,37,112,49,37,100,32,113,0,27,91,49,59,50,65,0,27,79,120,0,27,79,116,0,27,79,118,0,27,79,114,0,27,79,69,0,27,79,107,0,27,79,108,0,27,79,111,0,27,79,110,0,27,79,106,0,27,79,109,0,27,79,112,0,65,88,0,88,84,0,67,114,0,67,115,0,69,51,0,77,115,0,83,101,0,83,115,0,88,77,0,107,68,67,51,0,107,68,67,52,0,107,68,67,53,0,107,68,67,54,0,107,68,67,55,0,107,68,78,0,107,68,78,51,0,107,68,78,52,0,107,68,78,53,0,107,68,78,54,0,107,68,78,55,0,107,69,78,68,51,0,107,69,78,68,52,0,107,69,78,68,53,0,107,69,78,68,54,0,107,69,78,68,55,0,107,72,79,77,51,0,107,72,79,77,52,0,107,72,79,77,53,0,107,72,79,77,54,0,107,72,79,77,55,0,107,73,67,51,0,107,73,67,52,0,107,73,67,53,0,107,73,67,54,0,107,73,67,55,0,107,76,70,84,51,0,107,76,70,84,52,0,107,76,70,84,53,0,107,76,70,84,54,0,107,76,70,84,55,0,107,78,88,84,51,0,107,78,88,84,52,0,107,78,88,84,53,0,107,78,88,84,54,0,107,78,88,84,55,0,107,80,82,86,51,0,107,80,82,86,52,0,107,80,82,86,53,0,107,80,82,86,54,0,107,80,82,86,55,0,107,82,73,84,51,0,107,82,73,84,52,0,107,82,73,84,53,0,107,82,73,84,54,0,107,82,73,84,55,0,107,85,80,0,107,85,80,51,0,107,85,80,52,0,107,85,80,53,0,107,85,80,54,0,107,85,80,55,0,107,97,50,0,107,98,49,0,107,98,51,0,107,99,50,0,107,112,53,0,107,112,65,68,68,0,107,112,67,77,65,0,107,112,68,73,86,0,107,112,68,79,84,0,107,112,77,85,76,0,107,112,83,85,66,0,107,112,90,82,79,0,114,109,120,120,0,115,109,120,120,0,120,109,0
};
// win32con|ANSI emulation for libuv on legacy console,
@@ -2080,7 +2107,7 @@ static const int8_t vtpcon_terminfo[] = {
// user8@,
// user9@,
static const int8_t win32con_terminfo[] = {
- 26,1,52,0,15,0,15,0,125,1,106,2,119,105,110,51,50,99,111,110,124,65,78,83,73,32,101,109,117,108,97,116,105,111,110,32,102,111,114,32,108,105,98,117,118,32,111,110,32,108,101,103,97,99,121,32,99,111,110,115,111,108,101,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,-1,-1,8,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,0,64,0,-1,-1,0,0,2,0,-1,-1,-1,-1,4,0,11,0,15,0,19,0,-1,-1,30,0,47,0,51,0,-1,-1,55,0,-1,-1,-1,-1,57,0,-1,-1,61,0,-1,-1,-2,-1,-2,-1,-1,-1,-1,-1,-2,-1,-1,-1,65,0,70,0,-1,-1,-1,-1,-2,-1,-2,-1,-1,-1,79,0,84,0,-2,-1,-1,-1,-2,-1,89,0,94,0,-1,-1,-2,-1,107,0,-2,-1,-1,-1,-1,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-2,-1,-1,-1,113,0,-1,-1,-1,-1,-1,-1,115,0,-1,-1,120,0,-1,-1,-1,-1,-1,-1,-1,-1,124,0,-127,0,-121,0,-116,0,-111,0,-106,0,-101,0,-95,0,-89,0,-83,0,-77,0,-72,0,-1,-1,-67,0,-1,-1,-63,0,-58,0,-53,0,-1,-1,-1,-1,-1,-1,-49,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-45,0,-1,-1,-2,-1,-2,-1,-42,0,-2,-1,-1,-1,-2,-1,-33,0,-24,0,-1,-1,-15,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-1,-1,-1,-1,-1,-1,-6,0,-3,0,8,1,-2,-1,-2,-1,11,1,-1,-1,-1,-1,49,1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,51,1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,55,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,60,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,1,-1,-1,-1,-1,69,1,-1,-1,-1,-1,-1,-1,-1,-1,76,1,83,1,90,1,-1,-1,-1,-1,97,1,-1,-1,104,1,-1,-1,-1,-1,-1,-1,111,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,118,1,124,1,-126,1,-120,1,-114,1,-108,1,-102,1,-96,1,-90,1,-84,1,-78,1,-72,1,-66,1,-60,1,-54,1,-48,1,-42,1,-36,1,-30,1,-24,1,-18,1,-12,1,-6,1,0,2,6,2,12,2,18,2,24,2,30,2,-1,-1,36,2,42,2,48,2,54,2,60,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,66,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-2,-1,-2,-1,-2,-1,71,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,80,2,90,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,100,2,7,0,13,0,27,91,72,27,91,74,0,27,91,75,0,27,91,74,0,27,91,37,105,37,112,49,37,100,71,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,72,0,27,91,66,0,27,91,72,0,8,0,27,91,67,0,27,91,65,0,27,91,49,109,0,27,55,27,91,63,52,55,104,0,27,91,55,109,0,27,91,55,109,0,27,91,48,109,0,27,91,50,74,27,91,63,52,55,108,27,56,0,27,91,50,55,109,0,8,0,27,91,51,126,0,27,91,66,0,27,91,91,65,0,27,91,50,49,126,0,27,91,91,66,0,27,91,91,67,0,27,91,91,68,0,27,91,91,69,0,27,91,49,55,126,0,27,91,49,56,126,0,27,91,49,57,126,0,27,91,50,48,126,0,27,91,49,126,0,27,91,50,126,0,27,91,68,0,27,91,54,126,0,27,91,53,126,0,27,91,67,0,27,91,65,0,13,10,0,27,91,37,112,49,37,100,66,0,27,91,37,112,49,37,100,68,0,27,91,37,112,49,37,100,67,0,27,91,37,112,49,37,100,65,0,27,56,0,27,91,37,105,37,112,49,37,100,100,0,27,55,0,27,91,48,37,63,37,112,49,37,116,59,55,37,59,37,63,37,112,51,37,116,59,55,37,59,37,63,37,112,54,37,116,59,49,37,59,109,0,9,0,27,91,71,0,27,91,52,126,0,26,0,27,91,51,59,50,126,0,27,91,52,59,50,126,0,27,91,49,59,50,126,0,27,91,50,59,50,126,0,27,91,49,59,50,68,0,27,91,54,59,50,126,0,27,91,53,59,50,126,0,27,91,49,59,50,67,0,27,91,50,51,126,0,27,91,50,52,126,0,27,91,50,53,126,0,27,91,50,54,126,0,27,91,50,56,126,0,27,91,50,57,126,0,27,91,51,49,126,0,27,91,51,50,126,0,27,91,51,51,126,0,27,91,51,52,126,0,27,91,50,51,36,0,27,91,50,52,36,0,27,91,49,49,94,0,27,91,49,50,94,0,27,91,49,51,94,0,27,91,49,52,94,0,27,91,49,53,94,0,27,91,49,55,94,0,27,91,49,56,94,0,27,91,49,57,94,0,27,91,50,48,94,0,27,91,50,49,94,0,27,91,50,51,94,0,27,91,50,52,94,0,27,91,50,53,94,0,27,91,50,54,94,0,27,91,50,56,94,0,27,91,50,57,94,0,27,91,51,49,94,0,27,91,51,50,94,0,27,91,51,51,94,0,27,91,51,52,94,0,27,91,50,51,64,0,27,91,50,52,64,0,27,91,49,75,0,27,91,51,57,59,52,57,109,0,27,91,51,37,112,49,37,100,109,0,27,91,52,37,112,49,37,100,109,0,27,91,49,48,109,0,1,0,0,0,2,0,5,0,25,0,0,0,0,0,6,0,0,0,3,0,6,0,27,91,48,32,113,0,27,91,37,112,49,37,100,32,113,0,65,88,0,83,101,0,83,115,0 // NOLINT
+ 26,1,52,0,15,0,15,0,125,1,106,2,119,105,110,51,50,99,111,110,124,65,78,83,73,32,101,109,117,108,97,116,105,111,110,32,102,111,114,32,108,105,98,117,118,32,111,110,32,108,101,103,97,99,121,32,99,111,110,115,111,108,101,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,-1,-1,8,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,0,64,0,-1,-1,0,0,2,0,-1,-1,-1,-1,4,0,11,0,15,0,19,0,-1,-1,30,0,47,0,51,0,-1,-1,55,0,-1,-1,-1,-1,57,0,-1,-1,61,0,-1,-1,-2,-1,-2,-1,-1,-1,-1,-1,-2,-1,-1,-1,65,0,70,0,-1,-1,-1,-1,-2,-1,-2,-1,-1,-1,79,0,84,0,-2,-1,-1,-1,-2,-1,89,0,94,0,-1,-1,-2,-1,107,0,-2,-1,-1,-1,-1,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-2,-1,-1,-1,113,0,-1,-1,-1,-1,-1,-1,115,0,-1,-1,120,0,-1,-1,-1,-1,-1,-1,-1,-1,124,0,-127,0,-121,0,-116,0,-111,0,-106,0,-101,0,-95,0,-89,0,-83,0,-77,0,-72,0,-1,-1,-67,0,-1,-1,-63,0,-58,0,-53,0,-1,-1,-1,-1,-1,-1,-49,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-45,0,-1,-1,-2,-1,-2,-1,-42,0,-2,-1,-1,-1,-2,-1,-33,0,-24,0,-1,-1,-15,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-1,-1,-1,-1,-1,-1,-6,0,-3,0,8,1,-2,-1,-2,-1,11,1,-1,-1,-1,-1,49,1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,51,1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,55,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,60,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,1,-1,-1,-1,-1,69,1,-1,-1,-1,-1,-1,-1,-1,-1,76,1,83,1,90,1,-1,-1,-1,-1,97,1,-1,-1,104,1,-1,-1,-1,-1,-1,-1,111,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,118,1,124,1,-126,1,-120,1,-114,1,-108,1,-102,1,-96,1,-90,1,-84,1,-78,1,-72,1,-66,1,-60,1,-54,1,-48,1,-42,1,-36,1,-30,1,-24,1,-18,1,-12,1,-6,1,0,2,6,2,12,2,18,2,24,2,30,2,-1,-1,36,2,42,2,48,2,54,2,60,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,66,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-2,-1,-2,-1,-2,-1,71,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,80,2,90,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,100,2,7,0,13,0,27,91,72,27,91,74,0,27,91,75,0,27,91,74,0,27,91,37,105,37,112,49,37,100,71,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,72,0,27,91,66,0,27,91,72,0,8,0,27,91,67,0,27,91,65,0,27,91,49,109,0,27,55,27,91,63,52,55,104,0,27,91,55,109,0,27,91,55,109,0,27,91,48,109,0,27,91,50,74,27,91,63,52,55,108,27,56,0,27,91,50,55,109,0,8,0,27,91,51,126,0,27,91,66,0,27,91,91,65,0,27,91,50,49,126,0,27,91,91,66,0,27,91,91,67,0,27,91,91,68,0,27,91,91,69,0,27,91,49,55,126,0,27,91,49,56,126,0,27,91,49,57,126,0,27,91,50,48,126,0,27,91,49,126,0,27,91,50,126,0,27,91,68,0,27,91,54,126,0,27,91,53,126,0,27,91,67,0,27,91,65,0,13,10,0,27,91,37,112,49,37,100,66,0,27,91,37,112,49,37,100,68,0,27,91,37,112,49,37,100,67,0,27,91,37,112,49,37,100,65,0,27,56,0,27,91,37,105,37,112,49,37,100,100,0,27,55,0,27,91,48,37,63,37,112,49,37,116,59,55,37,59,37,63,37,112,51,37,116,59,55,37,59,37,63,37,112,54,37,116,59,49,37,59,109,0,9,0,27,91,71,0,27,91,52,126,0,26,0,27,91,51,59,50,126,0,27,91,52,59,50,126,0,27,91,49,59,50,126,0,27,91,50,59,50,126,0,27,91,49,59,50,68,0,27,91,54,59,50,126,0,27,91,53,59,50,126,0,27,91,49,59,50,67,0,27,91,50,51,126,0,27,91,50,52,126,0,27,91,50,53,126,0,27,91,50,54,126,0,27,91,50,56,126,0,27,91,50,57,126,0,27,91,51,49,126,0,27,91,51,50,126,0,27,91,51,51,126,0,27,91,51,52,126,0,27,91,50,51,36,0,27,91,50,52,36,0,27,91,49,49,94,0,27,91,49,50,94,0,27,91,49,51,94,0,27,91,49,52,94,0,27,91,49,53,94,0,27,91,49,55,94,0,27,91,49,56,94,0,27,91,49,57,94,0,27,91,50,48,94,0,27,91,50,49,94,0,27,91,50,51,94,0,27,91,50,52,94,0,27,91,50,53,94,0,27,91,50,54,94,0,27,91,50,56,94,0,27,91,50,57,94,0,27,91,51,49,94,0,27,91,51,50,94,0,27,91,51,51,94,0,27,91,51,52,94,0,27,91,50,51,64,0,27,91,50,52,64,0,27,91,49,75,0,27,91,51,57,59,52,57,109,0,27,91,51,37,112,49,37,100,109,0,27,91,52,37,112,49,37,100,109,0,27,91,49,48,109,0,0,0,0,0,2,0,4,0,22,0,0,0,6,0,0,0,3,0,27,91,48,32,113,0,27,91,37,112,49,37,100,32,113,0,83,101,0,83,115,0
};
// xterm-256color|xterm with 256 colors,
@@ -2105,6 +2132,7 @@ static const int8_t win32con_terminfo[] = {
// carriage_return=\r,
// change_scroll_region=\E[%i%p1%d;%p2%dr,
// clear_all_tabs=\E[3g,
+// clear_margins=\E[?69l,
// clear_screen=\E[H\E[2J,
// clr_bol=\E[1K,
// clr_eol=\E[K,
@@ -2146,9 +2174,13 @@ static const int8_t win32con_terminfo[] = {
// init_2string=\E[\041p\E[?3;4l\E[4l\E>,
// initialize_color=\E]4;%p1%d;rgb\072%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\,
// insert_line=\E[L,
-// key_b2=\EOE,
+// key_a1=\EOw,
+// key_a3=\EOy,
+// key_b2=\EOu,
// key_backspace=^H,
// key_btab=\E[Z,
+// key_c1=\EOq,
+// key_c3=\EOs,
// key_dc=\E[3~,
// key_down=\EOB,
// key_end=\EOF,
@@ -2240,6 +2272,7 @@ static const int8_t win32con_terminfo[] = {
// memory_unlock=\Em,
// meta_off=\E[?1034l,
// meta_on=\E[?1034h,
+// newline=\EE,
// orig_colors=\E]104^G,
// orig_pair=\E[39;49m,
// parm_dch=\E[%p1%dP,
@@ -2266,6 +2299,7 @@ static const int8_t win32con_terminfo[] = {
// set_a_background=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m,
// set_a_foreground=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m,
// set_attributes=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m,
+// set_lr_margin=\E[?69h\E[%i%p1%d;%p2%ds,
// set_tab=\EH,
// tab=^I,
// user6=\E[%i%d;%dR,
@@ -2273,6 +2307,6 @@ static const int8_t win32con_terminfo[] = {
// user8=\E[?%[;0123456789]c,
// user9=\E[c,
static const int8_t xterm_256colour_terminfo[] = {
- 30,2,37,0,38,0,15,0,-99,1,2,6,120,116,101,114,109,45,50,53,54,99,111,108,111,114,124,120,116,101,114,109,32,119,105,116,104,32,50,53,54,32,99,111,108,111,114,115,0,0,1,0,0,1,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,80,0,0,0,8,0,0,0,24,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,0,0,0,0,1,0,0,0,4,0,6,0,8,0,25,0,30,0,38,0,42,0,46,0,-1,-1,57,0,74,0,76,0,80,0,87,0,-1,-1,89,0,102,0,-1,-1,106,0,110,0,120,0,124,0,-1,-1,-1,-1,-128,0,-124,0,-119,0,-114,0,-1,-1,-96,0,-91,0,-86,0,-1,-1,-81,0,-76,0,-71,0,-66,0,-57,0,-53,0,-46,0,-1,-1,-28,0,-23,0,-17,0,-11,0,-1,-1,-1,-1,-1,-1,7,1,-1,-1,-1,-1,-1,-1,25,1,-1,-1,29,1,-1,-1,-1,-1,-1,-1,31,1,-1,-1,36,1,-1,-1,-1,-1,-1,-1,-1,-1,40,1,44,1,50,1,54,1,58,1,62,1,68,1,74,1,80,1,86,1,92,1,96,1,-1,-1,101,1,-1,-1,105,1,110,1,115,1,119,1,126,1,-1,-1,-123,1,-119,1,-111,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-103,1,-94,1,-1,-1,-1,-1,-85,1,-76,1,-67,1,-58,1,-49,1,-40,1,-31,1,-22,1,-13,1,-4,1,-1,-1,-1,-1,-1,-1,5,2,9,2,14,2,19,2,39,2,48,2,-1,-1,-1,-1,66,2,69,2,80,2,83,2,85,2,88,2,-75,2,-1,-1,-72,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-70,2,-1,-1,-1,-1,-1,-1,-1,-1,-66,2,-1,-1,-13,2,-1,-1,-1,-1,-9,2,-3,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,7,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,3,-1,-1,-1,-1,18,3,-1,-1,-1,-1,-1,-1,-1,-1,25,3,32,3,39,3,-1,-1,-1,-1,46,3,-1,-1,53,3,-1,-1,-1,-1,-1,-1,60,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,67,3,73,3,79,3,86,3,93,3,100,3,107,3,115,3,123,3,-125,3,-117,3,-109,3,-101,3,-93,3,-85,3,-78,3,-71,3,-64,3,-57,3,-49,3,-41,3,-33,3,-25,3,-17,3,-9,3,-1,3,7,4,14,4,21,4,28,4,35,4,43,4,51,4,59,4,67,4,75,4,83,4,91,4,99,4,106,4,113,4,120,4,127,4,-121,4,-113,4,-105,4,-97,4,-89,4,-81,4,-73,4,-65,4,-58,4,-51,4,-44,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-39,4,-28,4,-23,4,-4,4,0,5,9,5,16,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,110,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,115,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,121,5,-1,-1,-1,-1,-1,-1,125,5,-68,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-4,5,-1,5,27,91,90,0,7,0,13,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,114,0,27,91,51,103,0,27,91,72,27,91,50,74,0,27,91,75,0,27,91,74,0,27,91,37,105,37,112,49,37,100,71,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,72,0,10,0,27,91,72,0,27,91,63,50,53,108,0,8,0,27,91,63,49,50,108,27,91,63,50,53,104,0,27,91,67,0,27,91,65,0,27,91,63,49,50,59,50,53,104,0,27,91,80,0,27,91,77,0,27,40,48,0,27,91,53,109,0,27,91,49,109,0,27,91,63,49,48,52,57,104,27,91,50,50,59,48,59,48,116,0,27,91,50,109,0,27,91,52,104,0,27,91,56,109,0,27,91,55,109,0,27,91,55,109,0,27,91,52,109,0,27,91,37,112,49,37,100,88,0,27,40,66,0,27,40,66,27,91,109,0,27,91,63,49,48,52,57,108,27,91,50,51,59,48,59,48,116,0,27,91,52,108,0,27,91,50,55,109,0,27,91,50,52,109,0,27,91,63,53,104,36,60,49,48,48,47,62,27,91,63,53,108,0,27,91,33,112,27,91,63,51,59,52,108,27,91,52,108,27,62,0,27,91,76,0,8,0,27,91,51,126,0,27,79,66,0,27,79,80,0,27,91,50,49,126,0,27,79,81,0,27,79,82,0,27,79,83,0,27,91,49,53,126,0,27,91,49,55,126,0,27,91,49,56,126,0,27,91,49,57,126,0,27,91,50,48,126,0,27,79,72,0,27,91,50,126,0,27,79,68,0,27,91,54,126,0,27,91,53,126,0,27,79,67,0,27,91,49,59,50,66,0,27,91,49,59,50,65,0,27,79,65,0,27,91,63,49,108,27,62,0,27,91,63,49,104,27,61,0,27,91,63,49,48,51,52,108,0,27,91,63,49,48,51,52,104,0,27,91,37,112,49,37,100,80,0,27,91,37,112,49,37,100,77,0,27,91,37,112,49,37,100,66,0,27,91,37,112,49,37,100,64,0,27,91,37,112,49,37,100,83,0,27,91,37,112,49,37,100,76,0,27,91,37,112,49,37,100,68,0,27,91,37,112,49,37,100,67,0,27,91,37,112,49,37,100,84,0,27,91,37,112,49,37,100,65,0,27,91,105,0,27,91,52,105,0,27,91,53,105,0,37,112,49,37,99,27,91,37,112,50,37,123,49,125,37,45,37,100,98,0,27,99,27,93,49,48,52,7,0,27,91,33,112,27,91,63,51,59,52,108,27,91,52,108,27,62,0,27,56,0,27,91,37,105,37,112,49,37,100,100,0,27,55,0,10,0,27,77,0,37,63,37,112,57,37,116,27,40,48,37,101,27,40,66,37,59,27,91,48,37,63,37,112,54,37,116,59,49,37,59,37,63,37,112,53,37,116,59,50,37,59,37,63,37,112,50,37,116,59,52,37,59,37,63,37,112,49,37,112,51,37,124,37,116,59,55,37,59,37,63,37,112,52,37,116,59,53,37,59,37,63,37,112,55,37,116,59,56,37,59,109,0,27,72,0,9,0,27,79,69,0,96,96,97,97,102,102,103,103,105,105,106,106,107,107,108,108,109,109,110,110,111,111,112,112,113,113,114,114,115,115,116,116,117,117,118,118,119,119,120,120,121,121,122,122,123,123,124,124,125,125,126,126,0,27,91,90,0,27,91,63,55,104,0,27,91,63,55,108,0,27,79,70,0,27,79,77,0,27,91,51,59,50,126,0,27,91,49,59,50,70,0,27,91,49,59,50,72,0,27,91,50,59,50,126,0,27,91,49,59,50,68,0,27,91,54,59,50,126,0,27,91,53,59,50,126,0,27,91,49,59,50,67,0,27,91,50,51,126,0,27,91,50,52,126,0,27,91,49,59,50,80,0,27,91,49,59,50,81,0,27,91,49,59,50,82,0,27,91,49,59,50,83,0,27,91,49,53,59,50,126,0,27,91,49,55,59,50,126,0,27,91,49,56,59,50,126,0,27,91,49,57,59,50,126,0,27,91,50,48,59,50,126,0,27,91,50,49,59,50,126,0,27,91,50,51,59,50,126,0,27,91,50,52,59,50,126,0,27,91,49,59,53,80,0,27,91,49,59,53,81,0,27,91,49,59,53,82,0,27,91,49,59,53,83,0,27,91,49,53,59,53,126,0,27,91,49,55,59,53,126,0,27,91,49,56,59,53,126,0,27,91,49,57,59,53,126,0,27,91,50,48,59,53,126,0,27,91,50,49,59,53,126,0,27,91,50,51,59,53,126,0,27,91,50,52,59,53,126,0,27,91,49,59,54,80,0,27,91,49,59,54,81,0,27,91,49,59,54,82,0,27,91,49,59,54,83,0,27,91,49,53,59,54,126,0,27,91,49,55,59,54,126,0,27,91,49,56,59,54,126,0,27,91,49,57,59,54,126,0,27,91,50,48,59,54,126,0,27,91,50,49,59,54,126,0,27,91,50,51,59,54,126,0,27,91,50,52,59,54,126,0,27,91,49,59,51,80,0,27,91,49,59,51,81,0,27,91,49,59,51,82,0,27,91,49,59,51,83,0,27,91,49,53,59,51,126,0,27,91,49,55,59,51,126,0,27,91,49,56,59,51,126,0,27,91,49,57,59,51,126,0,27,91,50,48,59,51,126,0,27,91,50,49,59,51,126,0,27,91,50,51,59,51,126,0,27,91,50,52,59,51,126,0,27,91,49,59,52,80,0,27,91,49,59,52,81,0,27,91,49,59,52,82,0,27,91,49,75,0,27,91,37,105,37,100,59,37,100,82,0,27,91,54,110,0,27,91,63,37,91,59,48,49,50,51,52,53,54,55,56,57,93,99,0,27,91,99,0,27,91,51,57,59,52,57,109,0,27,93,49,48,52,7,0,27,93,52,59,37,112,49,37,100,59,114,103,98,58,37,112,50,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,50,46,50,88,47,37,112,51,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,50,46,50,88,47,37,112,52,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,50,46,50,88,27,92,0,27,91,51,109,0,27,91,50,51,109,0,27,91,60,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,51,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,57,37,112,49,37,123,56,125,37,45,37,100,37,101,51,56,59,53,59,37,112,49,37,100,37,59,109,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,52,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,49,48,37,112,49,37,123,56,125,37,45,37,100,37,101,52,56,59,53,59,37,112,49,37,100,37,59,109,0,27,108,0,27,109,0,3,0,1,0,73,0,-106,0,115,3,1,0,1,0,-1,-1,-1,-1,0,0,7,0,-1,-1,19,0,24,0,-1,-1,42,0,48,0,-1,-1,58,0,-1,-1,-1,-1,90,0,97,0,104,0,111,0,118,0,125,0,-124,0,-117,0,-110,0,-103,0,-96,0,-89,0,-82,0,-75,0,-68,0,-61,0,-1,-1,-54,0,-47,0,-40,0,-33,0,-26,0,-1,-1,-19,0,-12,0,-5,0,2,1,9,1,16,1,23,1,30,1,37,1,44,1,51,1,58,1,65,1,72,1,79,1,86,1,93,1,100,1,107,1,114,1,121,1,-128,1,-121,1,-114,1,-107,1,-100,1,-93,1,-86,1,-79,1,-72,1,-65,1,-1,-1,-1,-1,-1,-1,-1,-1,-58,1,-52,1,-47,1,0,0,3,0,6,0,9,0,12,0,15,0,18,0,21,0,24,0,27,0,30,0,33,0,36,0,39,0,42,0,48,0,54,0,59,0,64,0,69,0,74,0,79,0,83,0,88,0,93,0,98,0,103,0,108,0,114,0,120,0,126,0,-124,0,-118,0,-112,0,-106,0,-100,0,-94,0,-88,0,-82,0,-76,0,-71,0,-66,0,-61,0,-56,0,-51,0,-45,0,-39,0,-33,0,-27,0,-21,0,-15,0,-9,0,-3,0,3,1,9,1,15,1,21,1,27,1,33,1,39,1,45,1,51,1,57,1,63,1,69,1,73,1,78,1,83,1,88,1,93,1,98,1,102,1,106,1,110,1,114,1,119,1,124,1,27,93,49,49,50,7,0,27,93,49,50,59,37,112,49,37,115,7,0,27,91,51,74,0,27,93,53,50,59,37,112,49,37,115,59,37,112,50,37,115,7,0,27,91,50,32,113,0,27,91,37,112,49,37,100,32,113,0,27,91,63,49,48,48,54,59,49,48,48,48,37,63,37,112,49,37,123,49,125,37,61,37,116,104,37,101,108,37,59,0,27,91,51,59,51,126,0,27,91,51,59,52,126,0,27,91,51,59,53,126,0,27,91,51,59,54,126,0,27,91,51,59,55,126,0,27,91,49,59,50,66,0,27,91,49,59,51,66,0,27,91,49,59,52,66,0,27,91,49,59,53,66,0,27,91,49,59,54,66,0,27,91,49,59,55,66,0,27,91,49,59,51,70,0,27,91,49,59,52,70,0,27,91,49,59,53,70,0,27,91,49,59,54,70,0,27,91,49,59,55,70,0,27,91,49,59,51,72,0,27,91,49,59,52,72,0,27,91,49,59,53,72,0,27,91,49,59,54,72,0,27,91,49,59,55,72,0,27,91,50,59,51,126,0,27,91,50,59,52,126,0,27,91,50,59,53,126,0,27,91,50,59,54,126,0,27,91,50,59,55,126,0,27,91,49,59,51,68,0,27,91,49,59,52,68,0,27,91,49,59,53,68,0,27,91,49,59,54,68,0,27,91,49,59,55,68,0,27,91,54,59,51,126,0,27,91,54,59,52,126,0,27,91,54,59,53,126,0,27,91,54,59,54,126,0,27,91,54,59,55,126,0,27,91,53,59,51,126,0,27,91,53,59,52,126,0,27,91,53,59,53,126,0,27,91,53,59,54,126,0,27,91,53,59,55,126,0,27,91,49,59,51,67,0,27,91,49,59,52,67,0,27,91,49,59,53,67,0,27,91,49,59,54,67,0,27,91,49,59,55,67,0,27,91,49,59,50,65,0,27,91,49,59,51,65,0,27,91,49,59,52,65,0,27,91,49,59,53,65,0,27,91,49,59,54,65,0,27,91,49,59,55,65,0,27,91,50,57,109,0,27,91,57,109,0,27,91,60,37,112,49,37,100,59,37,112,50,37,100,59,37,112,51,37,100,59,37,63,37,112,52,37,116,77,37,101,109,37,59,0,65,88,0,71,48,0,88,84,0,85,56,0,67,114,0,67,115,0,69,48,0,69,51,0,77,115,0,83,48,0,83,101,0,83,115,0,84,83,0,88,77,0,103,114,98,111,109,0,103,115,98,111,109,0,107,68,67,51,0,107,68,67,52,0,107,68,67,53,0,107,68,67,54,0,107,68,67,55,0,107,68,78,0,107,68,78,51,0,107,68,78,52,0,107,68,78,53,0,107,68,78,54,0,107,68,78,55,0,107,69,78,68,51,0,107,69,78,68,52,0,107,69,78,68,53,0,107,69,78,68,54,0,107,69,78,68,55,0,107,69,78,68,56,0,107,72,79,77,51,0,107,72,79,77,52,0,107,72,79,77,53,0,107,72,79,77,54,0,107,72,79,77,55,0,107,72,79,77,56,0,107,73,67,51,0,107,73,67,52,0,107,73,67,53,0,107,73,67,54,0,107,73,67,55,0,107,76,70,84,51,0,107,76,70,84,52,0,107,76,70,84,53,0,107,76,70,84,54,0,107,76,70,84,55,0,107,78,88,84,51,0,107,78,88,84,52,0,107,78,88,84,53,0,107,78,88,84,54,0,107,78,88,84,55,0,107,80,82,86,51,0,107,80,82,86,52,0,107,80,82,86,53,0,107,80,82,86,54,0,107,80,82,86,55,0,107,82,73,84,51,0,107,82,73,84,52,0,107,82,73,84,53,0,107,82,73,84,54,0,107,82,73,84,55,0,107,85,80,0,107,85,80,51,0,107,85,80,52,0,107,85,80,53,0,107,85,80,54,0,107,85,80,55,0,107,97,50,0,107,98,49,0,107,98,51,0,107,99,50,0,114,109,120,120,0,115,109,120,120,0,120,109,0 // NOLINT
+ 30,2,37,0,38,0,15,0,-99,1,51,6,120,116,101,114,109,45,50,53,54,99,111,108,111,114,124,120,116,101,114,109,32,119,105,116,104,32,50,53,54,32,99,111,108,111,114,115,0,0,1,0,0,1,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,80,0,0,0,8,0,0,0,24,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,0,0,0,0,1,0,0,0,4,0,6,0,8,0,25,0,30,0,38,0,42,0,46,0,-1,-1,57,0,74,0,76,0,80,0,87,0,-1,-1,89,0,102,0,-1,-1,106,0,110,0,120,0,124,0,-1,-1,-1,-1,-128,0,-124,0,-119,0,-114,0,-1,-1,-96,0,-91,0,-86,0,-1,-1,-81,0,-76,0,-71,0,-66,0,-57,0,-53,0,-46,0,-1,-1,-28,0,-23,0,-17,0,-11,0,-1,-1,-1,-1,-1,-1,7,1,-1,-1,-1,-1,-1,-1,25,1,-1,-1,29,1,-1,-1,-1,-1,-1,-1,31,1,-1,-1,36,1,-1,-1,-1,-1,-1,-1,-1,-1,40,1,44,1,50,1,54,1,58,1,62,1,68,1,74,1,80,1,86,1,92,1,96,1,-1,-1,101,1,-1,-1,105,1,110,1,115,1,119,1,126,1,-1,-1,-123,1,-119,1,-111,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-103,1,-94,1,-85,1,-1,-1,-82,1,-73,1,-64,1,-55,1,-46,1,-37,1,-28,1,-19,1,-10,1,-1,1,-1,-1,-1,-1,-1,-1,8,2,12,2,17,2,22,2,42,2,51,2,-1,-1,-1,-1,69,2,72,2,83,2,86,2,88,2,91,2,-72,2,-1,-1,-69,2,-1,-1,-1,-1,-1,-1,-1,-1,-67,2,-63,2,-59,2,-55,2,-51,2,-1,-1,-1,-1,-47,2,-1,-1,6,3,-1,-1,-1,-1,10,3,16,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,22,3,26,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,30,3,-1,-1,-1,-1,37,3,-1,-1,-1,-1,-1,-1,-1,-1,44,3,51,3,58,3,-1,-1,-1,-1,65,3,-1,-1,72,3,-1,-1,-1,-1,-1,-1,79,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,86,3,92,3,98,3,105,3,112,3,119,3,126,3,-122,3,-114,3,-106,3,-98,3,-90,3,-82,3,-74,3,-66,3,-59,3,-52,3,-45,3,-38,3,-30,3,-22,3,-14,3,-6,3,2,4,10,4,18,4,26,4,33,4,40,4,47,4,54,4,62,4,70,4,78,4,86,4,94,4,102,4,110,4,118,4,125,4,-124,4,-117,4,-110,4,-102,4,-94,4,-86,4,-78,4,-70,4,-62,4,-54,4,-46,4,-39,4,-32,4,-25,4,-20,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-13,4,-2,4,3,5,22,5,26,5,35,5,42,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-120,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-115,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-109,5,-1,-1,-1,-1,-1,-1,-105,5,-42,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,22,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,45,6,48,6,27,91,90,0,7,0,13,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,114,0,27,91,51,103,0,27,91,72,27,91,50,74,0,27,91,75,0,27,91,74,0,27,91,37,105,37,112,49,37,100,71,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,72,0,10,0,27,91,72,0,27,91,63,50,53,108,0,8,0,27,91,63,49,50,108,27,91,63,50,53,104,0,27,91,67,0,27,91,65,0,27,91,63,49,50,59,50,53,104,0,27,91,80,0,27,91,77,0,27,40,48,0,27,91,53,109,0,27,91,49,109,0,27,91,63,49,48,52,57,104,27,91,50,50,59,48,59,48,116,0,27,91,50,109,0,27,91,52,104,0,27,91,56,109,0,27,91,55,109,0,27,91,55,109,0,27,91,52,109,0,27,91,37,112,49,37,100,88,0,27,40,66,0,27,40,66,27,91,109,0,27,91,63,49,48,52,57,108,27,91,50,51,59,48,59,48,116,0,27,91,52,108,0,27,91,50,55,109,0,27,91,50,52,109,0,27,91,63,53,104,36,60,49,48,48,47,62,27,91,63,53,108,0,27,91,33,112,27,91,63,51,59,52,108,27,91,52,108,27,62,0,27,91,76,0,8,0,27,91,51,126,0,27,79,66,0,27,79,80,0,27,91,50,49,126,0,27,79,81,0,27,79,82,0,27,79,83,0,27,91,49,53,126,0,27,91,49,55,126,0,27,91,49,56,126,0,27,91,49,57,126,0,27,91,50,48,126,0,27,79,72,0,27,91,50,126,0,27,79,68,0,27,91,54,126,0,27,91,53,126,0,27,79,67,0,27,91,49,59,50,66,0,27,91,49,59,50,65,0,27,79,65,0,27,91,63,49,108,27,62,0,27,91,63,49,104,27,61,0,27,91,63,49,48,51,52,108,0,27,91,63,49,48,51,52,104,0,27,69,0,27,91,37,112,49,37,100,80,0,27,91,37,112,49,37,100,77,0,27,91,37,112,49,37,100,66,0,27,91,37,112,49,37,100,64,0,27,91,37,112,49,37,100,83,0,27,91,37,112,49,37,100,76,0,27,91,37,112,49,37,100,68,0,27,91,37,112,49,37,100,67,0,27,91,37,112,49,37,100,84,0,27,91,37,112,49,37,100,65,0,27,91,105,0,27,91,52,105,0,27,91,53,105,0,37,112,49,37,99,27,91,37,112,50,37,123,49,125,37,45,37,100,98,0,27,99,27,93,49,48,52,7,0,27,91,33,112,27,91,63,51,59,52,108,27,91,52,108,27,62,0,27,56,0,27,91,37,105,37,112,49,37,100,100,0,27,55,0,10,0,27,77,0,37,63,37,112,57,37,116,27,40,48,37,101,27,40,66,37,59,27,91,48,37,63,37,112,54,37,116,59,49,37,59,37,63,37,112,53,37,116,59,50,37,59,37,63,37,112,50,37,116,59,52,37,59,37,63,37,112,49,37,112,51,37,124,37,116,59,55,37,59,37,63,37,112,52,37,116,59,53,37,59,37,63,37,112,55,37,116,59,56,37,59,109,0,27,72,0,9,0,27,79,119,0,27,79,121,0,27,79,117,0,27,79,113,0,27,79,115,0,96,96,97,97,102,102,103,103,105,105,106,106,107,107,108,108,109,109,110,110,111,111,112,112,113,113,114,114,115,115,116,116,117,117,118,118,119,119,120,120,121,121,122,122,123,123,124,124,125,125,126,126,0,27,91,90,0,27,91,63,55,104,0,27,91,63,55,108,0,27,79,70,0,27,79,77,0,27,91,51,59,50,126,0,27,91,49,59,50,70,0,27,91,49,59,50,72,0,27,91,50,59,50,126,0,27,91,49,59,50,68,0,27,91,54,59,50,126,0,27,91,53,59,50,126,0,27,91,49,59,50,67,0,27,91,50,51,126,0,27,91,50,52,126,0,27,91,49,59,50,80,0,27,91,49,59,50,81,0,27,91,49,59,50,82,0,27,91,49,59,50,83,0,27,91,49,53,59,50,126,0,27,91,49,55,59,50,126,0,27,91,49,56,59,50,126,0,27,91,49,57,59,50,126,0,27,91,50,48,59,50,126,0,27,91,50,49,59,50,126,0,27,91,50,51,59,50,126,0,27,91,50,52,59,50,126,0,27,91,49,59,53,80,0,27,91,49,59,53,81,0,27,91,49,59,53,82,0,27,91,49,59,53,83,0,27,91,49,53,59,53,126,0,27,91,49,55,59,53,126,0,27,91,49,56,59,53,126,0,27,91,49,57,59,53,126,0,27,91,50,48,59,53,126,0,27,91,50,49,59,53,126,0,27,91,50,51,59,53,126,0,27,91,50,52,59,53,126,0,27,91,49,59,54,80,0,27,91,49,59,54,81,0,27,91,49,59,54,82,0,27,91,49,59,54,83,0,27,91,49,53,59,54,126,0,27,91,49,55,59,54,126,0,27,91,49,56,59,54,126,0,27,91,49,57,59,54,126,0,27,91,50,48,59,54,126,0,27,91,50,49,59,54,126,0,27,91,50,51,59,54,126,0,27,91,50,52,59,54,126,0,27,91,49,59,51,80,0,27,91,49,59,51,81,0,27,91,49,59,51,82,0,27,91,49,59,51,83,0,27,91,49,53,59,51,126,0,27,91,49,55,59,51,126,0,27,91,49,56,59,51,126,0,27,91,49,57,59,51,126,0,27,91,50,48,59,51,126,0,27,91,50,49,59,51,126,0,27,91,50,51,59,51,126,0,27,91,50,52,59,51,126,0,27,91,49,59,52,80,0,27,91,49,59,52,81,0,27,91,49,59,52,82,0,27,91,49,75,0,27,91,63,54,57,108,0,27,91,37,105,37,100,59,37,100,82,0,27,91,54,110,0,27,91,63,37,91,59,48,49,50,51,52,53,54,55,56,57,93,99,0,27,91,99,0,27,91,51,57,59,52,57,109,0,27,93,49,48,52,7,0,27,93,52,59,37,112,49,37,100,59,114,103,98,58,37,112,50,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,50,46,50,88,47,37,112,51,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,50,46,50,88,47,37,112,52,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,50,46,50,88,27,92,0,27,91,51,109,0,27,91,50,51,109,0,27,91,60,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,51,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,57,37,112,49,37,123,56,125,37,45,37,100,37,101,51,56,59,53,59,37,112,49,37,100,37,59,109,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,52,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,49,48,37,112,49,37,123,56,125,37,45,37,100,37,101,52,56,59,53,59,37,112,49,37,100,37,59,109,0,27,91,63,54,57,104,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,115,0,27,108,0,27,109,0,0,2,0,0,0,74,0,-106,0,-84,3,1,1,0,0,7,0,19,0,24,0,42,0,48,0,58,0,90,0,97,0,104,0,111,0,118,0,125,0,-124,0,-117,0,-110,0,-103,0,-96,0,-89,0,-82,0,-75,0,-68,0,-61,0,-54,0,-47,0,-40,0,-33,0,-26,0,-19,0,-12,0,-5,0,2,1,9,1,16,1,23,1,30,1,37,1,44,1,51,1,58,1,65,1,72,1,79,1,86,1,93,1,100,1,107,1,114,1,121,1,-128,1,-121,1,-114,1,-107,1,-100,1,-93,1,-86,1,-79,1,-72,1,-65,1,-58,1,-54,1,-50,1,-46,1,-42,1,-38,1,-34,1,-30,1,-26,1,-22,1,-18,1,-14,1,-10,1,-4,1,1,2,0,0,3,0,6,0,9,0,12,0,15,0,18,0,21,0,24,0,27,0,32,0,37,0,42,0,47,0,52,0,56,0,61,0,66,0,71,0,76,0,81,0,87,0,93,0,99,0,105,0,111,0,117,0,123,0,-127,0,-121,0,-115,0,-110,0,-105,0,-100,0,-95,0,-90,0,-84,0,-78,0,-72,0,-66,0,-60,0,-54,0,-48,0,-42,0,-36,0,-30,0,-24,0,-18,0,-12,0,-6,0,0,1,6,1,12,1,18,1,24,1,30,1,34,1,39,1,44,1,49,1,54,1,59,1,63,1,67,1,71,1,75,1,79,1,85,1,91,1,97,1,103,1,109,1,115,1,121,1,126,1,-125,1,27,93,49,49,50,7,0,27,93,49,50,59,37,112,49,37,115,7,0,27,91,51,74,0,27,93,53,50,59,37,112,49,37,115,59,37,112,50,37,115,7,0,27,91,50,32,113,0,27,91,37,112,49,37,100,32,113,0,27,91,63,49,48,48,54,59,49,48,48,48,37,63,37,112,49,37,123,49,125,37,61,37,116,104,37,101,108,37,59,0,27,91,51,59,51,126,0,27,91,51,59,52,126,0,27,91,51,59,53,126,0,27,91,51,59,54,126,0,27,91,51,59,55,126,0,27,91,49,59,50,66,0,27,91,49,59,51,66,0,27,91,49,59,52,66,0,27,91,49,59,53,66,0,27,91,49,59,54,66,0,27,91,49,59,55,66,0,27,91,49,59,51,70,0,27,91,49,59,52,70,0,27,91,49,59,53,70,0,27,91,49,59,54,70,0,27,91,49,59,55,70,0,27,91,49,59,51,72,0,27,91,49,59,52,72,0,27,91,49,59,53,72,0,27,91,49,59,54,72,0,27,91,49,59,55,72,0,27,91,50,59,51,126,0,27,91,50,59,52,126,0,27,91,50,59,53,126,0,27,91,50,59,54,126,0,27,91,50,59,55,126,0,27,91,49,59,51,68,0,27,91,49,59,52,68,0,27,91,49,59,53,68,0,27,91,49,59,54,68,0,27,91,49,59,55,68,0,27,91,54,59,51,126,0,27,91,54,59,52,126,0,27,91,54,59,53,126,0,27,91,54,59,54,126,0,27,91,54,59,55,126,0,27,91,53,59,51,126,0,27,91,53,59,52,126,0,27,91,53,59,53,126,0,27,91,53,59,54,126,0,27,91,53,59,55,126,0,27,91,49,59,51,67,0,27,91,49,59,52,67,0,27,91,49,59,53,67,0,27,91,49,59,54,67,0,27,91,49,59,55,67,0,27,91,49,59,50,65,0,27,91,49,59,51,65,0,27,91,49,59,52,65,0,27,91,49,59,53,65,0,27,91,49,59,54,65,0,27,91,49,59,55,65,0,27,79,120,0,27,79,116,0,27,79,118,0,27,79,114,0,27,79,69,0,27,79,107,0,27,79,108,0,27,79,111,0,27,79,110,0,27,79,106,0,27,79,109,0,27,79,112,0,27,91,50,57,109,0,27,91,57,109,0,27,91,60,37,105,37,112,51,37,100,59,37,112,49,37,100,59,37,112,50,37,100,59,37,63,37,112,52,37,116,77,37,101,109,37,59,0,65,88,0,88,84,0,67,114,0,67,115,0,69,51,0,77,115,0,83,101,0,83,115,0,88,77,0,107,68,67,51,0,107,68,67,52,0,107,68,67,53,0,107,68,67,54,0,107,68,67,55,0,107,68,78,0,107,68,78,51,0,107,68,78,52,0,107,68,78,53,0,107,68,78,54,0,107,68,78,55,0,107,69,78,68,51,0,107,69,78,68,52,0,107,69,78,68,53,0,107,69,78,68,54,0,107,69,78,68,55,0,107,72,79,77,51,0,107,72,79,77,52,0,107,72,79,77,53,0,107,72,79,77,54,0,107,72,79,77,55,0,107,73,67,51,0,107,73,67,52,0,107,73,67,53,0,107,73,67,54,0,107,73,67,55,0,107,76,70,84,51,0,107,76,70,84,52,0,107,76,70,84,53,0,107,76,70,84,54,0,107,76,70,84,55,0,107,78,88,84,51,0,107,78,88,84,52,0,107,78,88,84,53,0,107,78,88,84,54,0,107,78,88,84,55,0,107,80,82,86,51,0,107,80,82,86,52,0,107,80,82,86,53,0,107,80,82,86,54,0,107,80,82,86,55,0,107,82,73,84,51,0,107,82,73,84,52,0,107,82,73,84,53,0,107,82,73,84,54,0,107,82,73,84,55,0,107,85,80,0,107,85,80,51,0,107,85,80,52,0,107,85,80,53,0,107,85,80,54,0,107,85,80,55,0,107,97,50,0,107,98,49,0,107,98,51,0,107,99,50,0,107,112,53,0,107,112,65,68,68,0,107,112,67,77,65,0,107,112,68,73,86,0,107,112,68,79,84,0,107,112,77,85,76,0,107,112,83,85,66,0,107,112,90,82,79,0,114,109,120,120,0,115,109,120,120,0,120,109,0
};
#endif // NVIM_TUI_TERMINFO_DEFS_H
diff --git a/src/nvim/ui.c b/src/nvim/ui.c
index 2dc1e0ec25..9e2d1f8e68 100644
--- a/src/nvim/ui.c
+++ b/src/nvim/ui.c
@@ -344,7 +344,7 @@ void vim_beep(unsigned val)
// When 'debug' contains "beep" produce a message. If we are sourcing
// a script or executing a function give the user a hint where the beep
// comes from.
- if (vim_strchr(p_debug, 'e') != NULL) {
+ if (vim_strchr((char *)p_debug, 'e') != NULL) {
msg_source(HL_ATTR(HLF_W));
msg_attr(_("Beep!"), HL_ATTR(HLF_W));
}
@@ -567,7 +567,7 @@ void ui_check_mouse(void)
for (char_u *p = p_mouse; *p; p++) {
switch (*p) {
case 'a':
- if (vim_strchr((char_u *)MOUSE_A, checkfor) != NULL) {
+ if (vim_strchr(MOUSE_A, checkfor) != NULL) {
has_mouse = true;
return;
}
diff --git a/src/nvim/version.c b/src/nvim/version.c
index 2369681dca..1b520780d1 100644
--- a/src/nvim/version.c
+++ b/src/nvim/version.c
@@ -215,7 +215,7 @@ static const int included_patches[] = {
1709,
1708,
1707,
- // 1706,
+ 1706,
1705,
1704,
1703,
@@ -305,14 +305,14 @@ static const int included_patches[] = {
1619,
1618,
1617,
- // 1616,
+ 1616,
1615,
1614,
1613,
1612,
1611,
1610,
- // 1609,
+ 1609,
1608,
1607,
1606,
@@ -359,7 +359,7 @@ static const int included_patches[] = {
1565,
1564,
1563,
- // 1562,
+ 1562,
1561,
1560,
1559,
@@ -554,7 +554,7 @@ static const int included_patches[] = {
1370,
1369,
1368,
- // 1367,
+ 1367,
1366,
1365,
1364,
@@ -582,11 +582,11 @@ static const int included_patches[] = {
1342,
1341,
1340,
- // 1339,
+ 1339,
1338,
1337,
1336,
- // 1335,
+ 1335,
1334,
1333,
1332,
@@ -614,7 +614,7 @@ static const int included_patches[] = {
1310,
1309,
1308,
- // 1307,
+ 1307,
1306,
1305,
1304,
@@ -802,7 +802,7 @@ static const int included_patches[] = {
1122,
1121,
1120,
- // 1119,
+ 1119,
1118,
1117,
1116,
@@ -2201,8 +2201,8 @@ void maybe_intro_message(void)
if (buf_is_empty(curbuf)
&& (curbuf->b_fname == NULL)
&& (firstwin->w_next == NULL)
- && (vim_strchr(p_shm, SHM_INTRO) == NULL)) {
- intro_message(FALSE);
+ && (vim_strchr((char *)p_shm, SHM_INTRO) == NULL)) {
+ intro_message(false);
}
}
diff --git a/src/nvim/window.c b/src/nvim/window.c
index 9f7e2f8341..2c27a5d6a5 100644
--- a/src/nvim/window.c
+++ b/src/nvim/window.c
@@ -2916,8 +2916,8 @@ static void do_autocmd_winclosed(win_T *win)
return;
}
recursive = true;
- char_u winid[NUMBUFLEN];
- vim_snprintf((char *)winid, sizeof(winid), "%d", win->handle);
+ char winid[NUMBUFLEN];
+ vim_snprintf(winid, sizeof(winid), "%d", win->handle);
apply_autocmds(EVENT_WINCLOSED, winid, winid, false, win->w_buffer);
recursive = false;
}
@@ -2984,9 +2984,9 @@ void win_close_othertab(win_T *win, int free_buf, tabpage_T *tp)
// When closing the last window in a tab page remove the tab page.
if (tp->tp_firstwin == tp->tp_lastwin) {
- char_u prev_idx[NUMBUFLEN];
+ char prev_idx[NUMBUFLEN];
if (has_event(EVENT_TABCLOSED)) {
- vim_snprintf((char *)prev_idx, NUMBUFLEN, "%i", tabpage_index(tp));
+ vim_snprintf(prev_idx, NUMBUFLEN, "%i", tabpage_index(tp));
}
if (tp == first_tabpage) {
@@ -4098,7 +4098,7 @@ int win_new_tabpage(int after, char_u *filename)
apply_autocmds(EVENT_WINNEW, NULL, NULL, false, curbuf);
apply_autocmds(EVENT_WINENTER, NULL, NULL, false, curbuf);
- apply_autocmds(EVENT_TABNEW, filename, filename, false, curbuf);
+ apply_autocmds(EVENT_TABNEW, (char *)filename, (char *)filename, false, curbuf);
apply_autocmds(EVENT_TABENTER, NULL, NULL, false, curbuf);
return OK;
@@ -4890,7 +4890,7 @@ void fix_current_dir(void)
// (unless that was done already) and change to the local directory.
if (globaldir == NULL) {
if (cwd[0] != NUL) {
- globaldir = (char_u *)xstrdup(cwd);
+ globaldir = xstrdup(cwd);
}
}
bool dir_differs = pathcmp(new_dir, cwd, -1) != 0;
@@ -4909,13 +4909,13 @@ void fix_current_dir(void)
} else if (globaldir != NULL) {
// Window doesn't have a local directory and we are not in the global
// directory: Change to the global directory.
- bool dir_differs = pathcmp((char *)globaldir, cwd, -1) != 0;
+ bool dir_differs = pathcmp(globaldir, cwd, -1) != 0;
if (!p_acd && dir_differs) {
- do_autocmd_dirchanged((char *)globaldir, kCdScopeGlobal, kCdCauseWindow, true);
+ do_autocmd_dirchanged(globaldir, kCdScopeGlobal, kCdCauseWindow, true);
}
- if (os_chdir((char *)globaldir) == 0) {
+ if (os_chdir(globaldir) == 0) {
if (!p_acd && dir_differs) {
- do_autocmd_dirchanged((char *)globaldir, kCdScopeGlobal, kCdCauseWindow, false);
+ do_autocmd_dirchanged(globaldir, kCdScopeGlobal, kCdCauseWindow, false);
}
}
XFREE_CLEAR(globaldir);
@@ -5317,8 +5317,8 @@ void may_trigger_winscrolled(void)
|| wp->w_last_leftcol != wp->w_leftcol
|| wp->w_last_width != wp->w_width
|| wp->w_last_height != wp->w_height) {
- char_u winid[NUMBUFLEN];
- vim_snprintf((char *)winid, sizeof(winid), "%d", wp->handle);
+ char winid[NUMBUFLEN];
+ vim_snprintf(winid, sizeof(winid), "%d", wp->handle);
recursive = true;
apply_autocmds(EVENT_WINSCROLLED, winid, winid, false, wp->w_buffer);
@@ -6517,7 +6517,7 @@ char_u *file_name_in_line(char_u *line, int col, int options, long count, char_u
len = 0;
while (vim_isfilec(ptr[len]) || (ptr[len] == '\\' && ptr[len + 1] == ' ')
|| ((options & FNAME_HYP) && path_is_url(ptr + len))
- || (is_url && vim_strchr((char_u *)":?&=", ptr[len]) != NULL)) {
+ || (is_url && vim_strchr(":?&=", ptr[len]) != NULL)) {
// After type:// we also include :, ?, & and = as valid characters, so that
// http://google.com:8080?q=this&that=ok works.
if ((ptr[len] >= 'A' && ptr[len] <= 'Z')
@@ -6540,7 +6540,7 @@ char_u *file_name_in_line(char_u *line, int col, int options, long count, char_u
* If there is trailing punctuation, remove it.
* But don't remove "..", could be a directory name.
*/
- if (len > 2 && vim_strchr((char_u *)".,:;!", ptr[len - 1]) != NULL
+ if (len > 2 && vim_strchr(".,:;!", ptr[len - 1]) != NULL
&& ptr[len - 2] != '.') {
--len;
}
diff --git a/test/functional/api/buffer_updates_spec.lua b/test/functional/api/buffer_updates_spec.lua
index fc09e4cde0..097757f53d 100644
--- a/test/functional/api/buffer_updates_spec.lua
+++ b/test/functional/api/buffer_updates_spec.lua
@@ -785,7 +785,8 @@ describe('API: buffer events:', function()
local function lines_subset(first, second)
for i = 1,#first do
- if first[i] ~= second[i] then
+ -- need to ignore trailing spaces
+ if first[i]:gsub(' +$', '') ~= second[i]:gsub(' +$', '') then
return false
end
end
diff --git a/test/functional/api/vim_spec.lua b/test/functional/api/vim_spec.lua
index f39aa2f20b..ba170ba8c5 100644
--- a/test/functional/api/vim_spec.lua
+++ b/test/functional/api/vim_spec.lua
@@ -3044,6 +3044,10 @@ describe('API', function()
eq('fillchar must be a single character',
pcall_err(meths.eval_statusline, '', { fillchar = 1 }))
end)
+ it('rejects invalid string', function()
+ eq('E539: Illegal character <}>',
+ pcall_err(meths.eval_statusline, '%{%}', {}))
+ end)
describe('highlight parsing', function()
it('works', function()
eq({
diff --git a/test/functional/api/window_spec.lua b/test/functional/api/window_spec.lua
index c31ab2060a..9aacac37bf 100644
--- a/test/functional/api/window_spec.lua
+++ b/test/functional/api/window_spec.lua
@@ -166,23 +166,23 @@ describe('API/win', function()
local oldwin = curwin()
command('vsplit')
screen:expect([[
- aaa {4:│}aaa |
- bbb {4:│}bbb |
- ccc {4:│}ccc |
- {2:dd^d }{4:│}{2:ddd }|
- {1:~ }{4:│}{1:~ }|
- {1:~ }{4:│}{1:~ }|
+ aaa │aaa |
+ bbb │bbb |
+ ccc │ccc |
+ {2:dd^d }│{2:ddd }|
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
{3:[No Name] [+] 4,3 All }{4:[No Name] [+] 4,3 All}|
|
]])
window('set_cursor', oldwin, {1, 0})
screen:expect([[
- aaa {4:│}{2:aaa }|
- bbb {4:│}bbb |
- ccc {4:│}ccc |
- {2:dd^d }{4:│}ddd |
- {1:~ }{4:│}{1:~ }|
- {1:~ }{4:│}{1:~ }|
+ aaa │{2:aaa }|
+ bbb │bbb |
+ ccc │ccc |
+ {2:dd^d }│ddd |
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
{3:[No Name] [+] 4,3 All }{4:[No Name] [+] 1,1 All}|
|
]])
diff --git a/test/functional/core/startup_spec.lua b/test/functional/core/startup_spec.lua
index 20ea3621f0..9741497b0a 100644
--- a/test/functional/core/startup_spec.lua
+++ b/test/functional/core/startup_spec.lua
@@ -496,12 +496,13 @@ describe('sysinit', function()
it('fixed hang issue with -D (#12647)', function()
if helpers.pending_win32(pending) then return end
local screen
- screen = Screen.new(60, 6)
+ screen = Screen.new(60, 7)
screen:attach()
command([[let g:id = termopen('"]]..nvim_prog..
[[" -u NONE -i NONE --cmd "set noruler" -D')]])
screen:expect([[
^ |
+ |
Entering Debug mode. Type "cont" to continue. |
cmd: augroup nvim_terminal |
> |
@@ -512,6 +513,7 @@ describe('sysinit', function()
screen:expect([[
^ |
~ |
+ ~ |
[No Name] |
|
<" -u NONE -i NONE --cmd "set noruler" -D 1,0-1 All|
diff --git a/test/functional/ex_cmds/drop_spec.lua b/test/functional/ex_cmds/drop_spec.lua
index 9d84a2d4f6..2537ab9cdc 100644
--- a/test/functional/ex_cmds/drop_spec.lua
+++ b/test/functional/ex_cmds/drop_spec.lua
@@ -41,14 +41,14 @@ describe(":drop", function()
feed_command("edit tmp2")
feed_command("drop tmp1")
screen:expect([[
- {2:│}^ |
- {0:~ }{2:│}{0:~ }|
- {0:~ }{2:│}{0:~ }|
- {0:~ }{2:│}{0:~ }|
- {0:~ }{2:│}{0:~ }|
- {0:~ }{2:│}{0:~ }|
- {0:~ }{2:│}{0:~ }|
- {0:~ }{2:│}{0:~ }|
+ │^ |
+ {0:~ }│{0:~ }|
+ {0:~ }│{0:~ }|
+ {0:~ }│{0:~ }|
+ {0:~ }│{0:~ }|
+ {0:~ }│{0:~ }|
+ {0:~ }│{0:~ }|
+ {0:~ }│{0:~ }|
{2:tmp2 }{1:tmp1 }|
:drop tmp1 |
]])
@@ -62,14 +62,14 @@ describe(":drop", function()
feed("iABC<esc>")
feed_command("drop tmp3")
screen:expect([[
- ^ {2:│} |
- {0:~ }{2:│}{0:~ }|
- {0:~ }{2:│}{0:~ }|
- {0:~ }{2:│}{0:~ }|
- {1:tmp3 }{2:│}{0:~ }|
- ABC {2:│}{0:~ }|
- {0:~ }{2:│}{0:~ }|
- {0:~ }{2:│}{0:~ }|
+ ^ │ |
+ {0:~ }│{0:~ }|
+ {0:~ }│{0:~ }|
+ {0:~ }│{0:~ }|
+ {1:tmp3 }│{0:~ }|
+ ABC │{0:~ }|
+ {0:~ }│{0:~ }|
+ {0:~ }│{0:~ }|
{2:tmp2 [+] tmp1 }|
"tmp3" [New] |
]])
diff --git a/test/functional/legacy/display_spec.lua b/test/functional/legacy/display_spec.lua
index 4c7915403c..ccc709cbf6 100644
--- a/test/functional/legacy/display_spec.lua
+++ b/test/functional/legacy/display_spec.lua
@@ -71,14 +71,14 @@ describe('display', function()
100wincmd <
]])
screen:expect([[
- ^a{3:│}aaa |
- a{3:│}bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb|
- a{3:│}bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb |
- b{3:│}{1:~ }|
- b{3:│}{1:~ }|
- b{3:│}{1:~ }|
- b{3:│}{1:~ }|
- {1:@}{3:│}{1:~ }|
+ ^a│aaa |
+ a│bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb|
+ a│bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb |
+ b│{1:~ }|
+ b│{1:~ }|
+ b│{1:~ }|
+ b│{1:~ }|
+ {1:@}│{1:~ }|
{2:< }{3:[No Name] [+] }|
|
]])
@@ -86,14 +86,14 @@ describe('display', function()
screen:expect_unchanged()
command('100wincmd >')
screen:expect([[
- ^aaa {3:│}a|
- bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb{3:│}a|
- bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb {3:│}a|
- {1:~ }{3:│}b|
- {1:~ }{3:│}b|
- {1:~ }{3:│}b|
- {1:~ }{3:│}b|
- {1:~ }{3:│}{1:@}|
+ ^aaa │a|
+ bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│a|
+ bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb │a|
+ {1:~ }│b|
+ {1:~ }│b|
+ {1:~ }│b|
+ {1:~ }│b|
+ {1:~ }│{1:@}|
{2:[No Name] [+] }{3:<}|
|
]])
diff --git a/test/functional/legacy/listchars_spec.lua b/test/functional/legacy/listchars_spec.lua
index 206e226767..a94ec431d4 100644
--- a/test/functional/legacy/listchars_spec.lua
+++ b/test/functional/legacy/listchars_spec.lua
@@ -117,106 +117,106 @@ describe("'listchars'", function()
]])
feed('13<C-W>>')
screen:expect([[
- {4: }aaa {3:│}{4: }a{1:>}{3:│}{4: }^aaa |
- {4: } {3:│}{4: } {3:│}{4: } |
- {4: }a {3:│}{4: }a {3:│}{4: }a |
- {4: }aaaaaa {3:│}{4: }a{1:>}{3:│}{4: }aaaaaa |
- {1:~ }{3:│}{1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }{3:│}{1:~ }|
+ {4: }aaa │{4: }a{1:>}│{4: }^aaa |
+ {4: } │{4: } │{4: } |
+ {4: }a │{4: }a │{4: }a |
+ {4: }aaaaaa │{4: }a{1:>}│{4: }aaaaaa |
+ {1:~ }│{1:~ }│{1:~ }|
+ {1:~ }│{1:~ }│{1:~ }|
+ {1:~ }│{1:~ }│{1:~ }|
+ {1:~ }│{1:~ }│{1:~ }|
{3:[No Name] [+] <[+] }{2:[No Name] [+] }|
|
]])
feed('<C-W>>')
screen:expect([[
- {4: }aaa {3:│}{4: }{1:>}{3:│}{4: }^aaa |
- {4: } {3:│}{4: } {3:│}{4: } |
- {4: }a {3:│}{4: }a{3:│}{4: }a |
- {4: }aaaaaa {3:│}{4: }{1:>}{3:│}{4: }aaaaaa |
- {1:~ }{3:│}{1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }{3:│}{1:~ }|
+ {4: }aaa │{4: }{1:>}│{4: }^aaa |
+ {4: } │{4: } │{4: } |
+ {4: }a │{4: }a│{4: }a |
+ {4: }aaaaaa │{4: }{1:>}│{4: }aaaaaa |
+ {1:~ }│{1:~ }│{1:~ }|
+ {1:~ }│{1:~ }│{1:~ }|
+ {1:~ }│{1:~ }│{1:~ }|
+ {1:~ }│{1:~ }│{1:~ }|
{3:[No Name] [+] <+] }{2:[No Name] [+] }|
|
]])
feed('<C-W>>')
screen:expect([[
- {4: }aaa {3:│}{4: }{3:│}{4: }^aaa |
- {4: } {3:│}{4: }{3:│}{4: } |
- {4: }a {3:│}{4: }{3:│}{4: }a |
- {4: }aaaaaa {3:│}{4: }{3:│}{4: }aaaaaa |
- {1:~ }{3:│}{1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }{3:│}{1:~ }|
+ {4: }aaa │{4: }│{4: }^aaa |
+ {4: } │{4: }│{4: } |
+ {4: }a │{4: }│{4: }a |
+ {4: }aaaaaa │{4: }│{4: }aaaaaa |
+ {1:~ }│{1:~ }│{1:~ }|
+ {1:~ }│{1:~ }│{1:~ }|
+ {1:~ }│{1:~ }│{1:~ }|
+ {1:~ }│{1:~ }│{1:~ }|
{3:[No Name] [+] <] }{2:[No Name] [+] }|
|
]])
feed('<C-W>>')
screen:expect([[
- {4: }aaa {3:│}{4: }{3:│}{4: }^aaa |
- {4: } {3:│}{4: }{3:│}{4: } |
- {4: }a {3:│}{4: }{3:│}{4: }a |
- {4: }aaaaaa {3:│}{4: }{3:│}{4: }aaaaaa |
- {1:~ }{3:│}{1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }{3:│}{1:~ }|
+ {4: }aaa │{4: }│{4: }^aaa |
+ {4: } │{4: }│{4: } |
+ {4: }a │{4: }│{4: }a |
+ {4: }aaaaaa │{4: }│{4: }aaaaaa |
+ {1:~ }│{1:~ }│{1:~ }|
+ {1:~ }│{1:~ }│{1:~ }|
+ {1:~ }│{1:~ }│{1:~ }|
+ {1:~ }│{1:~ }│{1:~ }|
{3:[No Name] [+] < }{2:[No Name] [+] }|
|
]])
feed('<C-W>>')
screen:expect([[
- {4: }aaa {3:│}{4: }{3:│}{4: }^aaa |
- {4: } {3:│}{4: }{3:│}{4: } |
- {4: }a {3:│}{4: }{3:│}{4: }a |
- {4: }aaaaaa {3:│}{4: }{3:│}{4: }aaaaaa |
- {1:~ }{3:│}{1:~}{3:│}{1:~ }|
- {1:~ }{3:│}{1:~}{3:│}{1:~ }|
- {1:~ }{3:│}{1:~}{3:│}{1:~ }|
- {1:~ }{3:│}{1:~}{3:│}{1:~ }|
+ {4: }aaa │{4: }│{4: }^aaa |
+ {4: } │{4: }│{4: } |
+ {4: }a │{4: }│{4: }a |
+ {4: }aaaaaa │{4: }│{4: }aaaaaa |
+ {1:~ }│{1:~}│{1:~ }|
+ {1:~ }│{1:~}│{1:~ }|
+ {1:~ }│{1:~}│{1:~ }|
+ {1:~ }│{1:~}│{1:~ }|
{3:[No Name] [+] < }{2:[No Name] [+] }|
|
]])
feed('<C-W>h')
feed_command('set nowrap foldcolumn=4')
screen:expect([[
- {4: }aaa {3:│}{4: }^aaa {3:│}{4: }aaa |
- {4: } {3:│}{4: } {3:│}{4: } |
- {4: }a {3:│}{4: }a {3:│}{4: }a |
- {4: }aaaaaa {3:│}{4: }aaaaaa {3:│}{4: }aaaaaa |
- {1:~ }{3:│}{1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }{3:│}{1:~ }|
+ {4: }aaa │{4: }^aaa │{4: }aaa |
+ {4: } │{4: } │{4: } |
+ {4: }a │{4: }a │{4: }a |
+ {4: }aaaaaa │{4: }aaaaaa │{4: }aaaaaa |
+ {1:~ }│{1:~ }│{1:~ }|
+ {1:~ }│{1:~ }│{1:~ }|
+ {1:~ }│{1:~ }│{1:~ }|
+ {1:~ }│{1:~ }│{1:~ }|
{3:[No Name] [+] }{2:[No Name] [+] }{3:[No Name] [+] }|
:set nowrap foldcolumn=4 |
]])
feed('15<C-W><lt>')
screen:expect([[
- {4: }aaa {3:│}{4: }{3:│}{4: }aaa |
- {4: } {3:│}{4: }{3:│}{4: } |
- {4: }a {3:│}{4: }{3:│}{4: }a |
- {4: }aaaaaa {3:│}{4: ^ }{3:│}{4: }aaaaaa |
- {1:~ }{3:│}{1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }{3:│}{1:~ }|
+ {4: }aaa │{4: }│{4: }aaa |
+ {4: } │{4: }│{4: } |
+ {4: }a │{4: }│{4: }a |
+ {4: }aaaaaa │{4: ^ }│{4: }aaaaaa |
+ {1:~ }│{1:~ }│{1:~ }|
+ {1:~ }│{1:~ }│{1:~ }|
+ {1:~ }│{1:~ }│{1:~ }|
+ {1:~ }│{1:~ }│{1:~ }|
{3:[No Name] [+] }{2:<[+] }{3:[No Name] [+] }|
:set nowrap foldcolumn=4 |
]])
feed('4<C-W><lt>')
screen:expect([[
- {4: }aaa {3:│}{4: }{3:│}{4: }aaa |
- {4: } {3:│}{4: }{3:│}{4: } |
- {4: }a {3:│}{4: }{3:│}{4: }a |
- {4: }aaaaaa {3:│}{4:^ }{3:│}{4: }aaaaaa |
- {1:~ }{3:│}{1:~}{3:│}{1:~ }|
- {1:~ }{3:│}{1:~}{3:│}{1:~ }|
- {1:~ }{3:│}{1:~}{3:│}{1:~ }|
- {1:~ }{3:│}{1:~}{3:│}{1:~ }|
+ {4: }aaa │{4: }│{4: }aaa |
+ {4: } │{4: }│{4: } |
+ {4: }a │{4: }│{4: }a |
+ {4: }aaaaaa │{4:^ }│{4: }aaaaaa |
+ {1:~ }│{1:~}│{1:~ }|
+ {1:~ }│{1:~}│{1:~ }|
+ {1:~ }│{1:~}│{1:~ }|
+ {1:~ }│{1:~}│{1:~ }|
{3:[No Name] [+] }{2:< }{3:[No Name] [+] }|
:set nowrap foldcolumn=4 |
]])
diff --git a/test/functional/legacy/search_spec.lua b/test/functional/legacy/search_spec.lua
index 4ed08881de..67991f5d48 100644
--- a/test/functional/legacy/search_spec.lua
+++ b/test/functional/legacy/search_spec.lua
@@ -7,6 +7,7 @@ local eval = helpers.eval
local feed = helpers.feed
local funcs = helpers.funcs
local poke_eventloop = helpers.poke_eventloop
+local exec = helpers.exec
describe('search cmdline', function()
local screen
@@ -640,3 +641,34 @@ describe('search cmdline', function()
feed('<esc>')
end)
end)
+
+describe('Search highlight', function()
+ before_each(clear)
+ it('Search highlight is combined with Visual highlight vim-patch:8.2.2797', function()
+ local screen = Screen.new(40, 6)
+ screen:set_default_attr_ids({
+ [1] = {bold = true, foreground = Screen.colors.Blue}, -- NonText
+ [2] = {bold = true}, -- ModeMsg, Search
+ [3] = {background = Screen.colors.LightGrey}, -- Visual
+ [4] = {background = Screen.colors.Yellow, bold = true}, -- Search
+ [5] = {background = Screen.colors.LightGrey, bold = true}, -- Visual + Search
+ })
+ screen:attach()
+ exec([[
+ set hlsearch noincsearch
+ call setline(1, repeat(["xxx yyy zzz"], 3))
+ hi Search gui=bold
+ /yyy
+ call cursor(1, 6)
+ ]])
+ feed('vjj')
+ screen:expect([[
+ xxx {4:y}{5:yy}{3: zzz} |
+ {3:xxx }{5:yyy}{3: zzz} |
+ {3:xxx }{5:y}{4:^yy} zzz |
+ {1:~ }|
+ {1:~ }|
+ {2:-- VISUAL --} |
+ ]])
+ end)
+end)
diff --git a/test/functional/options/cursorbind_spec.lua b/test/functional/options/cursorbind_spec.lua
index f762808dd6..fcb753451c 100644
--- a/test/functional/options/cursorbind_spec.lua
+++ b/test/functional/options/cursorbind_spec.lua
@@ -30,23 +30,23 @@ describe("'cursorbind'", function()
]])
feed('20l')
screen:expect([[
- a bb cc dd ee ff gg {3:│}aa bb cc dd ee ff gg^ hh ii jj kk ll mm |
- {4: }{3:│} {4: } |
- {4: }{3:│} {4: } |
- {4: }{3:│} {4: } |
- {4: }{3:│} {4: } |
- {1:~ }{3:│}{1:~ }|
+ a bb cc dd ee ff gg │aa bb cc dd ee ff gg^ hh ii jj kk ll mm |
+ {4: }│ {4: } |
+ {4: }│ {4: } |
+ {4: }│ {4: } |
+ {4: }│ {4: } |
+ {1:~ }│{1:~ }|
{3:[No Name] [+] }{2:[No Name] [+] }|
|
]])
feed('10l')
screen:expect([[
- hh ii jj kk ll mm n{3:│}aa bb cc dd ee ff gg hh ii jj ^kk ll mm |
- {4: } {3:│} {4: } |
- {4: } {3:│} {4: } |
- {4: } {3:│} {4: } |
- {4: } {3:│} {4: } |
- {1:~ }{3:│}{1:~ }|
+ hh ii jj kk ll mm n│aa bb cc dd ee ff gg hh ii jj ^kk ll mm |
+ {4: } │ {4: } |
+ {4: } │ {4: } |
+ {4: } │ {4: } |
+ {4: } │ {4: } |
+ {1:~ }│{1:~ }|
{3:[No Name] [+] }{2:[No Name] [+] }|
|
]])
@@ -54,23 +54,23 @@ describe("'cursorbind'", function()
feed('0')
feed('20l')
screen:expect([[
- {4:a bb cc dd ee ff gg }{3:│}{4:aa bb cc dd ee ff gg^ hh ii jj kk ll mm }|
- {4: }{3:│} {4: } |
- {4: }{3:│} {4: } |
- {4: }{3:│} {4: } |
- {4: }{3:│} {4: } |
- {1:~ }{3:│}{1:~ }|
+ {4:a bb cc dd ee ff gg }│{4:aa bb cc dd ee ff gg^ hh ii jj kk ll mm }|
+ {4: }│ {4: } |
+ {4: }│ {4: } |
+ {4: }│ {4: } |
+ {4: }│ {4: } |
+ {1:~ }│{1:~ }|
{3:[No Name] [+] }{2:[No Name] [+] }|
|
]])
feed('10l')
screen:expect([[
- {4: hh ii jj kk ll mm n}{3:│}{4:aa bb cc dd ee ff gg hh ii jj ^kk ll mm }|
- {4: } {3:│} {4: } |
- {4: } {3:│} {4: } |
- {4: } {3:│} {4: } |
- {4: } {3:│} {4: } |
- {1:~ }{3:│}{1:~ }|
+ {4: hh ii jj kk ll mm n}│{4:aa bb cc dd ee ff gg hh ii jj ^kk ll mm }|
+ {4: } │ {4: } |
+ {4: } │ {4: } |
+ {4: } │ {4: } |
+ {4: } │ {4: } |
+ {1:~ }│{1:~ }|
{3:[No Name] [+] }{2:[No Name] [+] }|
|
]])
@@ -78,12 +78,12 @@ describe("'cursorbind'", function()
feed('0')
feed('40l')
screen:expect([[
- kk ll mm nn oo pp qq{3:│} bb cc dd ee ff gg hh ii jj kk ll mm n^n|
- {3:│} |
- {3:│} |
- {3:│} |
- {3:│} |
- {1:~ }{3:│}{1:~ }|
+ kk ll mm nn oo pp qq│ bb cc dd ee ff gg hh ii jj kk ll mm n^n|
+ │ |
+ │ |
+ │ |
+ │ |
+ {1:~ }│{1:~ }|
{3:[No Name] [+] }{2:[No Name] [+] }|
|
]])
diff --git a/test/functional/plugin/man_spec.lua b/test/functional/plugin/man_spec.lua
index e5b2e7dc1f..c8da5a711f 100644
--- a/test/functional/plugin/man_spec.lua
+++ b/test/functional/plugin/man_spec.lua
@@ -2,13 +2,19 @@ local helpers = require('test.functional.helpers')(after_each)
local Screen = require('test.functional.ui.screen')
local command, eval, rawfeed = helpers.command, helpers.eval, helpers.rawfeed
local clear = helpers.clear
+local funcs = helpers.funcs
+local nvim_prog = helpers.nvim_prog
+local matches = helpers.matches
describe(':Man', function()
+ before_each(function()
+ clear()
+ end)
+
describe('man.lua: highlight_line()', function()
local screen
before_each(function()
- clear()
command('syntax on')
command('set filetype=man')
command('syntax off') -- Ignore syntax groups
@@ -137,4 +143,10 @@ describe(':Man', function()
]])
end)
end)
+
+ it('q quits in "$MANPAGER mode" (:Man!) #18281', function()
+ -- This will hang if #18281 regresses.
+ local args = {nvim_prog, '--headless', '+autocmd VimLeave * echo "quit works!!"', '+Man!', '+call nvim_input("q")'}
+ matches('quit works!!', funcs.system(args, {'manpage contents'}))
+ end)
end)
diff --git a/test/functional/terminal/cursor_spec.lua b/test/functional/terminal/cursor_spec.lua
index 3b905f1f56..c9087d734b 100644
--- a/test/functional/terminal/cursor_spec.lua
+++ b/test/functional/terminal/cursor_spec.lua
@@ -5,6 +5,7 @@ local feed, clear, nvim = helpers.feed, helpers.clear, helpers.nvim
local nvim_dir, command = helpers.nvim_dir, helpers.command
local nvim_prog = helpers.nvim_prog
local eq, eval = helpers.eq, helpers.eval
+local matches = helpers.matches
local feed_command = helpers.feed_command
local hide_cursor = thelpers.hide_cursor
local show_cursor = thelpers.show_cursor
@@ -177,7 +178,6 @@ describe('cursor with customized highlighting', function()
end)
describe('buffer cursor position is correct in terminal without number column', function()
- if helpers.pending_win32(pending) then return end
local screen
local function setup_ex_register(str)
@@ -525,10 +525,36 @@ describe('buffer cursor position is correct in terminal without number column',
eq({6, 1}, eval('nvim_win_get_cursor(0)'))
end)
end)
+
+ it('at the end of a line with trailing spaces #16234', function()
+ setup_ex_register('aaaaaaaa ')
+ feed('<C-R>r')
+ screen:expect([[
+ |
+ |
+ |
+ |
+ Entering Ex mode. Type "visual" to go to Normal mode. |
+ :aaaaaaaa {1: } |
+ {3:-- TERMINAL --} |
+ ]])
+ matches('^:aaaaaaaa ', eval('nvim_get_current_line()'))
+ eq({6, 13}, eval('nvim_win_get_cursor(0)'))
+ feed([[<C-\><C-N>]])
+ screen:expect([[
+ |
+ |
+ |
+ |
+ Entering Ex mode. Type "visual" to go to Normal mode. |
+ :aaaaaaaa ^ {2: } |
+ |
+ ]])
+ eq({6, 12}, eval('nvim_win_get_cursor(0)'))
+ end)
end)
describe('buffer cursor position is correct in terminal with number column', function()
- if helpers.pending_win32(pending) then return end
local screen
local function setup_ex_register(str)
@@ -879,4 +905,31 @@ describe('buffer cursor position is correct in terminal with number column', fun
eq({6, 1}, eval('nvim_win_get_cursor(0)'))
end)
end)
+
+ it('at the end of a line with trailing spaces #16234', function()
+ setup_ex_register('aaaaaaaa ')
+ feed('<C-R>r')
+ screen:expect([[
+ {7: 1 } |
+ {7: 2 } |
+ {7: 3 } |
+ {7: 4 } |
+ {7: 5 }Entering Ex mode. Type "visual" to go to Normal mode. |
+ {7: 6 }:aaaaaaaa {1: } |
+ {3:-- TERMINAL --} |
+ ]])
+ matches('^:aaaaaaaa ', eval('nvim_get_current_line()'))
+ eq({6, 13}, eval('nvim_win_get_cursor(0)'))
+ feed([[<C-\><C-N>]])
+ screen:expect([[
+ {7: 1 } |
+ {7: 2 } |
+ {7: 3 } |
+ {7: 4 } |
+ {7: 5 }Entering Ex mode. Type "visual" to go to Normal mode. |
+ {7: 6 }:aaaaaaaa ^ {2: } |
+ |
+ ]])
+ eq({6, 12}, eval('nvim_win_get_cursor(0)'))
+ end)
end)
diff --git a/test/functional/ui/diff_spec.lua b/test/functional/ui/diff_spec.lua
index 6f67dea2be..5d056cd6c3 100644
--- a/test/functional/ui/diff_spec.lua
+++ b/test/functional/ui/diff_spec.lua
@@ -57,40 +57,40 @@ describe('Diff mode screen', function()
feed(':set diffopt=filler<cr>')
screen:expect([[
- {1: }{2:------------------}{3:│}{1: }{4:0 }|
- {1: }^1 {3:│}{1: }1 |
- {1: }2 {3:│}{1: }2 |
- {1: }3 {3:│}{1: }3 |
- {1: }4 {3:│}{1: }4 |
- {1: }5 {3:│}{1: }5 |
- {1: }6 {3:│}{1: }6 |
- {1:+ }{5:+-- 4 lines: 7···}{3:│}{1:+ }{5:+-- 4 lines: 7··}|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
+ {1: }{2:------------------}│{1: }{4:0 }|
+ {1: }^1 │{1: }1 |
+ {1: }2 │{1: }2 |
+ {1: }3 │{1: }3 |
+ {1: }4 │{1: }4 |
+ {1: }5 │{1: }5 |
+ {1: }6 │{1: }6 |
+ {1:+ }{5:+-- 4 lines: 7···}│{1:+ }{5:+-- 4 lines: 7··}|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
{7:<onal-diff-screen-1 }{3:<l-diff-screen-1.2 }|
:set diffopt=filler |
]])
feed(':set diffopt+=internal<cr>')
screen:expect([[
- {1: }{2:------------------}{3:│}{1: }{4:0 }|
- {1: }^1 {3:│}{1: }1 |
- {1: }2 {3:│}{1: }2 |
- {1: }3 {3:│}{1: }3 |
- {1: }4 {3:│}{1: }4 |
- {1: }5 {3:│}{1: }5 |
- {1: }6 {3:│}{1: }6 |
- {1:+ }{5:+-- 4 lines: 7···}{3:│}{1:+ }{5:+-- 4 lines: 7··}|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
+ {1: }{2:------------------}│{1: }{4:0 }|
+ {1: }^1 │{1: }1 |
+ {1: }2 │{1: }2 |
+ {1: }3 │{1: }3 |
+ {1: }4 │{1: }4 |
+ {1: }5 │{1: }5 |
+ {1: }6 │{1: }6 |
+ {1:+ }{5:+-- 4 lines: 7···}│{1:+ }{5:+-- 4 lines: 7··}|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
{7:<onal-diff-screen-1 }{3:<l-diff-screen-1.2 }|
:set diffopt+=internal |
]])
@@ -103,40 +103,40 @@ describe('Diff mode screen', function()
feed(":set diffopt=filler<cr>")
screen:expect([[
- {1: }{4:^0 }{3:│}{1: }{2:-----------------}|
- {1: }1 {3:│}{1: }1 |
- {1: }2 {3:│}{1: }2 |
- {1: }3 {3:│}{1: }3 |
- {1: }4 {3:│}{1: }4 |
- {1: }5 {3:│}{1: }5 |
- {1: }6 {3:│}{1: }6 |
- {1:+ }{5:+-- 4 lines: 7···}{3:│}{1:+ }{5:+-- 4 lines: 7··}|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
+ {1: }{4:^0 }│{1: }{2:-----------------}|
+ {1: }1 │{1: }1 |
+ {1: }2 │{1: }2 |
+ {1: }3 │{1: }3 |
+ {1: }4 │{1: }4 |
+ {1: }5 │{1: }5 |
+ {1: }6 │{1: }6 |
+ {1:+ }{5:+-- 4 lines: 7···}│{1:+ }{5:+-- 4 lines: 7··}|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
{7:<onal-diff-screen-1 }{3:<l-diff-screen-1.2 }|
:set diffopt=filler |
]])
feed(":set diffopt+=internal<cr>")
screen:expect([[
- {1: }{4:^0 }{3:│}{1: }{2:-----------------}|
- {1: }1 {3:│}{1: }1 |
- {1: }2 {3:│}{1: }2 |
- {1: }3 {3:│}{1: }3 |
- {1: }4 {3:│}{1: }4 |
- {1: }5 {3:│}{1: }5 |
- {1: }6 {3:│}{1: }6 |
- {1:+ }{5:+-- 4 lines: 7···}{3:│}{1:+ }{5:+-- 4 lines: 7··}|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
+ {1: }{4:^0 }│{1: }{2:-----------------}|
+ {1: }1 │{1: }1 |
+ {1: }2 │{1: }2 |
+ {1: }3 │{1: }3 |
+ {1: }4 │{1: }4 |
+ {1: }5 │{1: }5 |
+ {1: }6 │{1: }6 |
+ {1:+ }{5:+-- 4 lines: 7···}│{1:+ }{5:+-- 4 lines: 7··}|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
{7:<onal-diff-screen-1 }{3:<l-diff-screen-1.2 }|
:set diffopt+=internal |
]])
@@ -149,53 +149,53 @@ describe('Diff mode screen', function()
feed(":set diffopt=filler<cr>")
screen:expect([[
- {1:+ }{5:^+-- 4 lines: 1···}{3:│}{1:+ }{5:+-- 4 lines: 1··}|
- {1: }5 {3:│}{1: }5 |
- {1: }6 {3:│}{1: }6 |
- {1: }7 {3:│}{1: }7 |
- {1: }8 {3:│}{1: }8 |
- {1: }9 {3:│}{1: }9 |
- {1: }10 {3:│}{1: }10 |
- {1: }{2:------------------}{3:│}{1: }{4:11 }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
+ {1:+ }{5:^+-- 4 lines: 1···}│{1:+ }{5:+-- 4 lines: 1··}|
+ {1: }5 │{1: }5 |
+ {1: }6 │{1: }6 |
+ {1: }7 │{1: }7 |
+ {1: }8 │{1: }8 |
+ {1: }9 │{1: }9 |
+ {1: }10 │{1: }10 |
+ {1: }{2:------------------}│{1: }{4:11 }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
{7:<onal-diff-screen-1 }{3:<l-diff-screen-1.2 }|
:set diffopt=filler |
]])
feed(":set diffopt+=internal<cr>")
screen:expect([[
- {1:+ }{5:^+-- 4 lines: 1···}{3:│}{1:+ }{5:+-- 4 lines: 1··}|
- {1: }5 {3:│}{1: }5 |
- {1: }6 {3:│}{1: }6 |
- {1: }7 {3:│}{1: }7 |
- {1: }8 {3:│}{1: }8 |
- {1: }9 {3:│}{1: }9 |
- {1: }10 {3:│}{1: }10 |
- {1: }{2:------------------}{3:│}{1: }{4:11 }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
+ {1:+ }{5:^+-- 4 lines: 1···}│{1:+ }{5:+-- 4 lines: 1··}|
+ {1: }5 │{1: }5 |
+ {1: }6 │{1: }6 |
+ {1: }7 │{1: }7 |
+ {1: }8 │{1: }8 |
+ {1: }9 │{1: }9 |
+ {1: }10 │{1: }10 |
+ {1: }{2:------------------}│{1: }{4:11 }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
{7:<onal-diff-screen-1 }{3:<l-diff-screen-1.2 }|
:set diffopt+=internal |
]])
screen:try_resize(40, 9)
screen:expect([[
- {1:+ }{5:^+-- 4 lines: 1···}{3:│}{1:+ }{5:+-- 4 lines: 1··}|
- {1: }5 {3:│}{1: }5 |
- {1: }6 {3:│}{1: }6 |
- {1: }7 {3:│}{1: }7 |
- {1: }8 {3:│}{1: }8 |
- {1: }9 {3:│}{1: }9 |
- {1: }10 {3:│}{1: }10 |
+ {1:+ }{5:^+-- 4 lines: 1···}│{1:+ }{5:+-- 4 lines: 1··}|
+ {1: }5 │{1: }5 |
+ {1: }6 │{1: }6 |
+ {1: }7 │{1: }7 |
+ {1: }8 │{1: }8 |
+ {1: }9 │{1: }9 |
+ {1: }10 │{1: }10 |
{7:<onal-diff-screen-1 }{3:<l-diff-screen-1.2 }|
|
]])
@@ -208,53 +208,53 @@ describe('Diff mode screen', function()
feed(":set diffopt=filler<cr>")
screen:expect([[
- {1:+ }{5:^+-- 4 lines: 1···}{3:│}{1:+ }{5:+-- 4 lines: 1··}|
- {1: }5 {3:│}{1: }5 |
- {1: }6 {3:│}{1: }6 |
- {1: }7 {3:│}{1: }7 |
- {1: }8 {3:│}{1: }8 |
- {1: }9 {3:│}{1: }9 |
- {1: }10 {3:│}{1: }10 |
- {1: }{4:11 }{3:│}{1: }{2:-----------------}|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
+ {1:+ }{5:^+-- 4 lines: 1···}│{1:+ }{5:+-- 4 lines: 1··}|
+ {1: }5 │{1: }5 |
+ {1: }6 │{1: }6 |
+ {1: }7 │{1: }7 |
+ {1: }8 │{1: }8 |
+ {1: }9 │{1: }9 |
+ {1: }10 │{1: }10 |
+ {1: }{4:11 }│{1: }{2:-----------------}|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
{7:<onal-diff-screen-1 }{3:<l-diff-screen-1.2 }|
:set diffopt=filler |
]])
feed(":set diffopt+=internal<cr>")
screen:expect([[
- {1:+ }{5:^+-- 4 lines: 1···}{3:│}{1:+ }{5:+-- 4 lines: 1··}|
- {1: }5 {3:│}{1: }5 |
- {1: }6 {3:│}{1: }6 |
- {1: }7 {3:│}{1: }7 |
- {1: }8 {3:│}{1: }8 |
- {1: }9 {3:│}{1: }9 |
- {1: }10 {3:│}{1: }10 |
- {1: }{4:11 }{3:│}{1: }{2:-----------------}|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
+ {1:+ }{5:^+-- 4 lines: 1···}│{1:+ }{5:+-- 4 lines: 1··}|
+ {1: }5 │{1: }5 |
+ {1: }6 │{1: }6 |
+ {1: }7 │{1: }7 |
+ {1: }8 │{1: }8 |
+ {1: }9 │{1: }9 |
+ {1: }10 │{1: }10 |
+ {1: }{4:11 }│{1: }{2:-----------------}|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
{7:<onal-diff-screen-1 }{3:<l-diff-screen-1.2 }|
:set diffopt+=internal |
]])
screen:try_resize(40, 9)
screen:expect([[
- {1:+ }{5:^+-- 4 lines: 1···}{3:│}{1:+ }{5:+-- 4 lines: 1··}|
- {1: }5 {3:│}{1: }5 |
- {1: }6 {3:│}{1: }6 |
- {1: }7 {3:│}{1: }7 |
- {1: }8 {3:│}{1: }8 |
- {1: }9 {3:│}{1: }9 |
- {1: }10 {3:│}{1: }10 |
+ {1:+ }{5:^+-- 4 lines: 1···}│{1:+ }{5:+-- 4 lines: 1··}|
+ {1: }5 │{1: }5 |
+ {1: }6 │{1: }6 |
+ {1: }7 │{1: }7 |
+ {1: }8 │{1: }8 |
+ {1: }9 │{1: }9 |
+ {1: }10 │{1: }10 |
{7:<onal-diff-screen-1 }{3:<l-diff-screen-1.2 }|
|
]])
@@ -267,40 +267,40 @@ describe('Diff mode screen', function()
feed(':set diffopt=filler<cr>')
screen:expect([[
- {1: }^1 {3:│}{1: }1 |
- {1: }2 {3:│}{1: }2 |
- {1: }3 {3:│}{1: }3 |
- {1: }4 {3:│}{1: }4 |
- {1: }{2:------------------}{3:│}{1: }{4:4 }|
- {1: }5 {3:│}{1: }5 |
- {1: }6 {3:│}{1: }6 |
- {1: }7 {3:│}{1: }7 |
- {1: }8 {3:│}{1: }8 |
- {1: }9 {3:│}{1: }9 |
- {1: }10 {3:│}{1: }10 |
- {1: }{4:11 }{3:│}{1: }{2:-----------------}|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
+ {1: }^1 │{1: }1 |
+ {1: }2 │{1: }2 |
+ {1: }3 │{1: }3 |
+ {1: }4 │{1: }4 |
+ {1: }{2:------------------}│{1: }{4:4 }|
+ {1: }5 │{1: }5 |
+ {1: }6 │{1: }6 |
+ {1: }7 │{1: }7 |
+ {1: }8 │{1: }8 |
+ {1: }9 │{1: }9 |
+ {1: }10 │{1: }10 |
+ {1: }{4:11 }│{1: }{2:-----------------}|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
{7:<onal-diff-screen-1 }{3:<l-diff-screen-1.2 }|
:set diffopt=filler |
]])
feed(':set diffopt+=internal<cr>')
screen:expect([[
- {1: }^1 {3:│}{1: }1 |
- {1: }2 {3:│}{1: }2 |
- {1: }3 {3:│}{1: }3 |
- {1: }4 {3:│}{1: }4 |
- {1: }{2:------------------}{3:│}{1: }{4:4 }|
- {1: }5 {3:│}{1: }5 |
- {1: }6 {3:│}{1: }6 |
- {1: }7 {3:│}{1: }7 |
- {1: }8 {3:│}{1: }8 |
- {1: }9 {3:│}{1: }9 |
- {1: }10 {3:│}{1: }10 |
- {1: }{4:11 }{3:│}{1: }{2:-----------------}|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
+ {1: }^1 │{1: }1 |
+ {1: }2 │{1: }2 |
+ {1: }3 │{1: }3 |
+ {1: }4 │{1: }4 |
+ {1: }{2:------------------}│{1: }{4:4 }|
+ {1: }5 │{1: }5 |
+ {1: }6 │{1: }6 |
+ {1: }7 │{1: }7 |
+ {1: }8 │{1: }8 |
+ {1: }9 │{1: }9 |
+ {1: }10 │{1: }10 |
+ {1: }{4:11 }│{1: }{2:-----------------}|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
{7:<onal-diff-screen-1 }{3:<l-diff-screen-1.2 }|
:set diffopt+=internal |
]])
@@ -313,40 +313,40 @@ describe('Diff mode screen', function()
feed(':set diffopt=filler<cr>')
screen:expect([[
- {1: }^1 {3:│}{1: }1 |
- {1: }2 {3:│}{1: }2 |
- {1: }3 {3:│}{1: }3 |
- {1: }4 {3:│}{1: }4 |
- {1: }{4:4 }{3:│}{1: }{2:-----------------}|
- {1: }5 {3:│}{1: }5 |
- {1: }6 {3:│}{1: }6 |
- {1: }7 {3:│}{1: }7 |
- {1: }8 {3:│}{1: }8 |
- {1: }9 {3:│}{1: }9 |
- {1: }10 {3:│}{1: }10 |
- {1: }{2:------------------}{3:│}{1: }{4:11 }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
+ {1: }^1 │{1: }1 |
+ {1: }2 │{1: }2 |
+ {1: }3 │{1: }3 |
+ {1: }4 │{1: }4 |
+ {1: }{4:4 }│{1: }{2:-----------------}|
+ {1: }5 │{1: }5 |
+ {1: }6 │{1: }6 |
+ {1: }7 │{1: }7 |
+ {1: }8 │{1: }8 |
+ {1: }9 │{1: }9 |
+ {1: }10 │{1: }10 |
+ {1: }{2:------------------}│{1: }{4:11 }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
{7:<onal-diff-screen-1 }{3:<l-diff-screen-1.2 }|
:set diffopt=filler |
]])
feed(':set diffopt+=internal<cr>')
screen:expect([[
- {1: }^1 {3:│}{1: }1 |
- {1: }2 {3:│}{1: }2 |
- {1: }3 {3:│}{1: }3 |
- {1: }4 {3:│}{1: }4 |
- {1: }{4:4 }{3:│}{1: }{2:-----------------}|
- {1: }5 {3:│}{1: }5 |
- {1: }6 {3:│}{1: }6 |
- {1: }7 {3:│}{1: }7 |
- {1: }8 {3:│}{1: }8 |
- {1: }9 {3:│}{1: }9 |
- {1: }10 {3:│}{1: }10 |
- {1: }{2:------------------}{3:│}{1: }{4:11 }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
+ {1: }^1 │{1: }1 |
+ {1: }2 │{1: }2 |
+ {1: }3 │{1: }3 |
+ {1: }4 │{1: }4 |
+ {1: }{4:4 }│{1: }{2:-----------------}|
+ {1: }5 │{1: }5 |
+ {1: }6 │{1: }6 |
+ {1: }7 │{1: }7 |
+ {1: }8 │{1: }8 |
+ {1: }9 │{1: }9 |
+ {1: }10 │{1: }10 |
+ {1: }{2:------------------}│{1: }{4:11 }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
{7:<onal-diff-screen-1 }{3:<l-diff-screen-1.2 }|
:set diffopt+=internal |
]])
@@ -413,40 +413,40 @@ int main(int argc, char **argv)
reread()
feed(':set diffopt=internal,filler<cr>')
screen:expect([[
- {1: }^#include <stdio.h>{3:│}{1: }#include <stdio.h|
- {1: } {3:│}{1: } |
- {1: }{8:// Frobs foo heart}{3:│}{1: }{8:int fib(int n)}{9: }|
- {1: }{4:int frobnitz(int f}{3:│}{1: }{2:-----------------}|
- {1: }{ {3:│}{1: }{ |
- {1: }{9: i}{8:nt i;}{9: }{3:│}{1: }{9: i}{8:f(n > 2)}{9: }|
- {1: }{4: for(i = 0; i <}{3:│}{1: }{2:-----------------}|
- {1: } { {3:│}{1: } { |
- {1: }{9: }{8:printf("Yo}{3:│}{1: }{9: }{8:return fi}|
- {1: }{4: printf("%d}{3:│}{1: }{2:-----------------}|
- {1: } } {3:│}{1: } } |
- {1: }{2:------------------}{3:│}{1: }{4: return 1; }|
- {1: }} {3:│}{1: }} |
- {1: } {3:│}{1: } |
+ {1: }^#include <stdio.h>│{1: }#include <stdio.h|
+ {1: } │{1: } |
+ {1: }{8:// Frobs foo heart}│{1: }{8:int fib(int n)}{9: }|
+ {1: }{4:int frobnitz(int f}│{1: }{2:-----------------}|
+ {1: }{ │{1: }{ |
+ {1: }{9: i}{8:nt i;}{9: }│{1: }{9: i}{8:f(n > 2)}{9: }|
+ {1: }{4: for(i = 0; i <}│{1: }{2:-----------------}|
+ {1: } { │{1: } { |
+ {1: }{9: }{8:printf("Yo}│{1: }{9: }{8:return fi}|
+ {1: }{4: printf("%d}│{1: }{2:-----------------}|
+ {1: } } │{1: } } |
+ {1: }{2:------------------}│{1: }{4: return 1; }|
+ {1: }} │{1: }} |
+ {1: } │{1: } |
{7:<onal-diff-screen-1 }{3:<l-diff-screen-1.2 }|
:set diffopt=internal,filler |
]])
feed('G')
screen:expect([[
- {1: }{2:------------------}{3:│}{1: }{4:int frobnitz(int }|
- {1: }{ {3:│}{1: }{ |
- {1: }{9: i}{8:f(n > 1)}{9: }{3:│}{1: }{9: i}{8:nt i;}{9: }|
- {1: }{2:------------------}{3:│}{1: }{4: for(i = 0; i }|
- {1: } { {3:│}{1: } { |
- {1: }{9: }{8:return fac}{3:│}{1: }{9: }{8:printf("%}|
- {1: } } {3:│}{1: } } |
- {1: }{4: return 1; }{3:│}{1: }{2:-----------------}|
- {1: }} {3:│}{1: }} |
- {1: } {3:│}{1: } |
- {1: }int main(int argc,{3:│}{1: }int main(int argc|
- {1: }{ {3:│}{1: }{ |
- {1: }{9: frobnitz(f}{8:act}{9:(}{3:│}{1: }{9: frobnitz(f}{8:ib}{9:(}|
- {1: }^} {3:│}{1: }} |
+ {1: }{2:------------------}│{1: }{4:int frobnitz(int }|
+ {1: }{ │{1: }{ |
+ {1: }{9: i}{8:f(n > 1)}{9: }│{1: }{9: i}{8:nt i;}{9: }|
+ {1: }{2:------------------}│{1: }{4: for(i = 0; i }|
+ {1: } { │{1: } { |
+ {1: }{9: }{8:return fac}│{1: }{9: }{8:printf("%}|
+ {1: } } │{1: } } |
+ {1: }{4: return 1; }│{1: }{2:-----------------}|
+ {1: }} │{1: }} |
+ {1: } │{1: } |
+ {1: }int main(int argc,│{1: }int main(int argc|
+ {1: }{ │{1: }{ |
+ {1: }{9: frobnitz(f}{8:act}{9:(}│{1: }{9: frobnitz(f}{8:ib}{9:(}|
+ {1: }^} │{1: }} |
{7:<onal-diff-screen-1 }{3:<l-diff-screen-1.2 }|
:set diffopt=internal,filler |
]])
@@ -456,40 +456,40 @@ int main(int argc, char **argv)
reread()
feed(':set diffopt=internal,filler,algorithm:patience<cr>')
screen:expect([[
- {1: }^#include <stdio.h>{3:│}{1: }#include <stdio.h|
- {1: } {3:│}{1: } |
- {1: }{2:------------------}{3:│}{1: }{4:int fib(int n) }|
- {1: }{2:------------------}{3:│}{1: }{4:{ }|
- {1: }{2:------------------}{3:│}{1: }{4: if(n > 2) }|
- {1: }{2:------------------}{3:│}{1: }{4: { }|
- {1: }{2:------------------}{3:│}{1: }{4: return fi}|
- {1: }{2:------------------}{3:│}{1: }{4: } }|
- {1: }{2:------------------}{3:│}{1: }{4: return 1; }|
- {1: }{2:------------------}{3:│}{1: }{4:} }|
- {1: }{2:------------------}{3:│}{1: }{4: }|
- {1: }// Frobs foo heart{3:│}{1: }// Frobs foo hear|
- {1: }int frobnitz(int f{3:│}{1: }int frobnitz(int |
- {1: }{ {3:│}{1: }{ |
+ {1: }^#include <stdio.h>│{1: }#include <stdio.h|
+ {1: } │{1: } |
+ {1: }{2:------------------}│{1: }{4:int fib(int n) }|
+ {1: }{2:------------------}│{1: }{4:{ }|
+ {1: }{2:------------------}│{1: }{4: if(n > 2) }|
+ {1: }{2:------------------}│{1: }{4: { }|
+ {1: }{2:------------------}│{1: }{4: return fi}|
+ {1: }{2:------------------}│{1: }{4: } }|
+ {1: }{2:------------------}│{1: }{4: return 1; }|
+ {1: }{2:------------------}│{1: }{4:} }|
+ {1: }{2:------------------}│{1: }{4: }|
+ {1: }// Frobs foo heart│{1: }// Frobs foo hear|
+ {1: }int frobnitz(int f│{1: }int frobnitz(int |
+ {1: }{ │{1: }{ |
{7:<onal-diff-screen-1 }{3:<l-diff-screen-1.2 }|
|
]])
feed('G')
screen:expect([[
- {1: } {3:│}{1: } |
- {1: }{4:int fact(int n) }{3:│}{1: }{2:-----------------}|
- {1: }{4:{ }{3:│}{1: }{2:-----------------}|
- {1: }{4: if(n > 1) }{3:│}{1: }{2:-----------------}|
- {1: }{4: { }{3:│}{1: }{2:-----------------}|
- {1: }{4: return fac}{3:│}{1: }{2:-----------------}|
- {1: }{4: } }{3:│}{1: }{2:-----------------}|
- {1: }{4: return 1; }{3:│}{1: }{2:-----------------}|
- {1: }{4:} }{3:│}{1: }{2:-----------------}|
- {1: }{4: }{3:│}{1: }{2:-----------------}|
- {1: }int main(int argc,{3:│}{1: }int main(int argc|
- {1: }{ {3:│}{1: }{ |
- {1: }{9: frobnitz(f}{8:act}{9:(}{3:│}{1: }{9: frobnitz(f}{8:ib}{9:(}|
- {1: }^} {3:│}{1: }} |
+ {1: } │{1: } |
+ {1: }{4:int fact(int n) }│{1: }{2:-----------------}|
+ {1: }{4:{ }│{1: }{2:-----------------}|
+ {1: }{4: if(n > 1) }│{1: }{2:-----------------}|
+ {1: }{4: { }│{1: }{2:-----------------}|
+ {1: }{4: return fac}│{1: }{2:-----------------}|
+ {1: }{4: } }│{1: }{2:-----------------}|
+ {1: }{4: return 1; }│{1: }{2:-----------------}|
+ {1: }{4:} }│{1: }{2:-----------------}|
+ {1: }{4: }│{1: }{2:-----------------}|
+ {1: }int main(int argc,│{1: }int main(int argc|
+ {1: }{ │{1: }{ |
+ {1: }{9: frobnitz(f}{8:act}{9:(}│{1: }{9: frobnitz(f}{8:ib}{9:(}|
+ {1: }^} │{1: }} |
{7:<onal-diff-screen-1 }{3:<l-diff-screen-1.2 }|
|
]])
@@ -499,40 +499,40 @@ int main(int argc, char **argv)
reread()
feed(':set diffopt=internal,filler,algorithm:histogram<cr>')
screen:expect([[
- {1: }^#include <stdio.h>{3:│}{1: }#include <stdio.h|
- {1: } {3:│}{1: } |
- {1: }{2:------------------}{3:│}{1: }{4:int fib(int n) }|
- {1: }{2:------------------}{3:│}{1: }{4:{ }|
- {1: }{2:------------------}{3:│}{1: }{4: if(n > 2) }|
- {1: }{2:------------------}{3:│}{1: }{4: { }|
- {1: }{2:------------------}{3:│}{1: }{4: return fi}|
- {1: }{2:------------------}{3:│}{1: }{4: } }|
- {1: }{2:------------------}{3:│}{1: }{4: return 1; }|
- {1: }{2:------------------}{3:│}{1: }{4:} }|
- {1: }{2:------------------}{3:│}{1: }{4: }|
- {1: }// Frobs foo heart{3:│}{1: }// Frobs foo hear|
- {1: }int frobnitz(int f{3:│}{1: }int frobnitz(int |
- {1: }{ {3:│}{1: }{ |
+ {1: }^#include <stdio.h>│{1: }#include <stdio.h|
+ {1: } │{1: } |
+ {1: }{2:------------------}│{1: }{4:int fib(int n) }|
+ {1: }{2:------------------}│{1: }{4:{ }|
+ {1: }{2:------------------}│{1: }{4: if(n > 2) }|
+ {1: }{2:------------------}│{1: }{4: { }|
+ {1: }{2:------------------}│{1: }{4: return fi}|
+ {1: }{2:------------------}│{1: }{4: } }|
+ {1: }{2:------------------}│{1: }{4: return 1; }|
+ {1: }{2:------------------}│{1: }{4:} }|
+ {1: }{2:------------------}│{1: }{4: }|
+ {1: }// Frobs foo heart│{1: }// Frobs foo hear|
+ {1: }int frobnitz(int f│{1: }int frobnitz(int |
+ {1: }{ │{1: }{ |
{7:<onal-diff-screen-1 }{3:<l-diff-screen-1.2 }|
|
]])
feed('G')
screen:expect([[
- {1: } {3:│}{1: } |
- {1: }{4:int fact(int n) }{3:│}{1: }{2:-----------------}|
- {1: }{4:{ }{3:│}{1: }{2:-----------------}|
- {1: }{4: if(n > 1) }{3:│}{1: }{2:-----------------}|
- {1: }{4: { }{3:│}{1: }{2:-----------------}|
- {1: }{4: return fac}{3:│}{1: }{2:-----------------}|
- {1: }{4: } }{3:│}{1: }{2:-----------------}|
- {1: }{4: return 1; }{3:│}{1: }{2:-----------------}|
- {1: }{4:} }{3:│}{1: }{2:-----------------}|
- {1: }{4: }{3:│}{1: }{2:-----------------}|
- {1: }int main(int argc,{3:│}{1: }int main(int argc|
- {1: }{ {3:│}{1: }{ |
- {1: }{9: frobnitz(f}{8:act}{9:(}{3:│}{1: }{9: frobnitz(f}{8:ib}{9:(}|
- {1: }^} {3:│}{1: }} |
+ {1: } │{1: } |
+ {1: }{4:int fact(int n) }│{1: }{2:-----------------}|
+ {1: }{4:{ }│{1: }{2:-----------------}|
+ {1: }{4: if(n > 1) }│{1: }{2:-----------------}|
+ {1: }{4: { }│{1: }{2:-----------------}|
+ {1: }{4: return fac}│{1: }{2:-----------------}|
+ {1: }{4: } }│{1: }{2:-----------------}|
+ {1: }{4: return 1; }│{1: }{2:-----------------}|
+ {1: }{4:} }│{1: }{2:-----------------}|
+ {1: }{4: }│{1: }{2:-----------------}|
+ {1: }int main(int argc,│{1: }int main(int argc|
+ {1: }{ │{1: }{ |
+ {1: }{9: frobnitz(f}{8:act}{9:(}│{1: }{9: frobnitz(f}{8:ib}{9:(}|
+ {1: }^} │{1: }} |
{7:<onal-diff-screen-1 }{3:<l-diff-screen-1.2 }|
|
]])
@@ -566,20 +566,20 @@ int main(int argc, char **argv)
reread()
feed(":set diffopt=internal,filler<cr>")
screen:expect([[
- {1: }^def finalize(value{3:│}{1: }def finalize(valu|
- {1: } {3:│}{1: } |
- {1: } values.each do |{3:│}{1: } values.each do |
- {1: }{2:------------------}{3:│}{1: }{4: v.prepare }|
- {1: }{2:------------------}{3:│}{1: }{4: end }|
- {1: }{2:------------------}{3:│}{1: }{4: }|
- {1: }{2:------------------}{3:│}{1: }{4: values.each do }|
- {1: } v.finalize {3:│}{1: } v.finalize |
- {1: } end {3:│}{1: } end |
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
+ {1: }^def finalize(value│{1: }def finalize(valu|
+ {1: } │{1: } |
+ {1: } values.each do |│{1: } values.each do |
+ {1: }{2:------------------}│{1: }{4: v.prepare }|
+ {1: }{2:------------------}│{1: }{4: end }|
+ {1: }{2:------------------}│{1: }{4: }|
+ {1: }{2:------------------}│{1: }{4: values.each do }|
+ {1: } v.finalize │{1: } v.finalize |
+ {1: } end │{1: } end |
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
{7:<onal-diff-screen-1 }{3:<l-diff-screen-1.2 }|
:set diffopt=internal,filler |
]])
@@ -589,20 +589,20 @@ int main(int argc, char **argv)
reread()
feed(':set diffopt=internal,filler,indent-heuristic<cr>')
screen:expect([[
- {1: }^def finalize(value{3:│}{1: }def finalize(valu|
- {1: } {3:│}{1: } |
- {1: }{2:------------------}{3:│}{1: }{4: values.each do }|
- {1: }{2:------------------}{3:│}{1: }{4: v.prepare }|
- {1: }{2:------------------}{3:│}{1: }{4: end }|
- {1: }{2:------------------}{3:│}{1: }{4: }|
- {1: } values.each do |{3:│}{1: } values.each do |
- {1: } v.finalize {3:│}{1: } v.finalize |
- {1: } end {3:│}{1: } end |
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
+ {1: }^def finalize(value│{1: }def finalize(valu|
+ {1: } │{1: } |
+ {1: }{2:------------------}│{1: }{4: values.each do }|
+ {1: }{2:------------------}│{1: }{4: v.prepare }|
+ {1: }{2:------------------}│{1: }{4: end }|
+ {1: }{2:------------------}│{1: }{4: }|
+ {1: } values.each do |│{1: } values.each do |
+ {1: } v.finalize │{1: } v.finalize |
+ {1: } end │{1: } end |
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
{7:<onal-diff-screen-1 }{3:<l-diff-screen-1.2 }|
|
]])
@@ -613,20 +613,20 @@ int main(int argc, char **argv)
feed(':set diffopt=internal,filler,indent-heuristic,algorithm:patience<cr>')
feed(':<cr>')
screen:expect([[
- {1: }^def finalize(value{3:│}{1: }def finalize(valu|
- {1: } {3:│}{1: } |
- {1: }{2:------------------}{3:│}{1: }{4: values.each do }|
- {1: }{2:------------------}{3:│}{1: }{4: v.prepare }|
- {1: }{2:------------------}{3:│}{1: }{4: end }|
- {1: }{2:------------------}{3:│}{1: }{4: }|
- {1: } values.each do |{3:│}{1: } values.each do |
- {1: } v.finalize {3:│}{1: } v.finalize |
- {1: } end {3:│}{1: } end |
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
+ {1: }^def finalize(value│{1: }def finalize(valu|
+ {1: } │{1: } |
+ {1: }{2:------------------}│{1: }{4: values.each do }|
+ {1: }{2:------------------}│{1: }{4: v.prepare }|
+ {1: }{2:------------------}│{1: }{4: end }|
+ {1: }{2:------------------}│{1: }{4: }|
+ {1: } values.each do |│{1: } values.each do |
+ {1: } v.finalize │{1: } v.finalize |
+ {1: } end │{1: } end |
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
{7:<onal-diff-screen-1 }{3:<l-diff-screen-1.2 }|
: |
]])
@@ -640,40 +640,40 @@ int main(int argc, char **argv)
feed(':set diffopt=filler<cr>')
screen:expect([[
- {1:+ }{5:^+-- 10 lines: 1···}{3:│}{1:+ }{5:+-- 10 lines: 1··}|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
+ {1:+ }{5:^+-- 10 lines: 1···}│{1:+ }{5:+-- 10 lines: 1··}|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
{7:<onal-diff-screen-1 }{3:<l-diff-screen-1.2 }|
:set diffopt=filler |
]])
feed(':set diffopt+=internal<cr>')
screen:expect([[
- {1:+ }{5:^+-- 10 lines: 1···}{3:│}{1:+ }{5:+-- 10 lines: 1··}|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
+ {1:+ }{5:^+-- 10 lines: 1···}│{1:+ }{5:+-- 10 lines: 1··}|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
{7:<onal-diff-screen-1 }{3:<l-diff-screen-1.2 }|
:set diffopt+=internal |
]])
@@ -686,40 +686,40 @@ int main(int argc, char **argv)
feed(':set diffopt=filler<cr>')
screen:expect([[
- {1:- }^ {3:│}{1:- } |
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
+ {1:- }^ │{1:- } |
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
{7:<onal-diff-screen-1 }{3:<l-diff-screen-1.2 }|
:set diffopt=filler |
]])
feed(':set diffopt+=internal<cr>')
screen:expect([[
- {1:- }^ {3:│}{1:- } |
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
+ {1:- }^ │{1:- } |
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
{7:<onal-diff-screen-1 }{3:<l-diff-screen-1.2 }|
:set diffopt+=internal |
]])
@@ -732,40 +732,40 @@ int main(int argc, char **argv)
feed(':set diffopt=filler,icase<cr>')
screen:expect([[
- {1: }^a {3:│}{1: }A |
- {1: }b {3:│}{1: }b |
- {1: }{9:cd }{3:│}{1: }{9:cD}{8:e}{9: }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
+ {1: }^a │{1: }A |
+ {1: }b │{1: }b |
+ {1: }{9:cd }│{1: }{9:cD}{8:e}{9: }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
{7:<onal-diff-screen-1 }{3:<l-diff-screen-1.2 }|
:set diffopt=filler,icase |
]])
feed(':set diffopt+=internal<cr>')
screen:expect([[
- {1: }^a {3:│}{1: }A |
- {1: }b {3:│}{1: }b |
- {1: }{9:cd }{3:│}{1: }{9:cD}{8:e}{9: }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
+ {1: }^a │{1: }A |
+ {1: }b │{1: }b |
+ {1: }{9:cd }│{1: }{9:cD}{8:e}{9: }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
{7:<onal-diff-screen-1 }{3:<l-diff-screen-1.2 }|
:set diffopt+=internal |
]])
@@ -784,20 +784,20 @@ int main(int argc, char **argv)
reread()
feed(':set diffopt=filler,iwhite<cr>')
screen:expect([[
- {1: }^int main() {3:│}{1: }int main() |
- {1: }{ {3:│}{1: }{ |
- {1: }{2:------------------}{3:│}{1: }{4: if (0) }|
- {1: }{2:------------------}{3:│}{1: }{4: { }|
- {1: } printf("Hello, {3:│}{1: } printf("Hel|
- {1: } return 0; {3:│}{1: } return 0; |
- {1: }{2:------------------}{3:│}{1: }{4: } }|
- {1: }} {3:│}{1: }} |
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
+ {1: }^int main() │{1: }int main() |
+ {1: }{ │{1: }{ |
+ {1: }{2:------------------}│{1: }{4: if (0) }|
+ {1: }{2:------------------}│{1: }{4: { }|
+ {1: } printf("Hello, │{1: } printf("Hel|
+ {1: } return 0; │{1: } return 0; |
+ {1: }{2:------------------}│{1: }{4: } }|
+ {1: }} │{1: }} |
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
{7:<onal-diff-screen-1 }{3:<l-diff-screen-1.2 }|
:set diffopt=filler,iwhite |
]])
@@ -807,20 +807,20 @@ int main(int argc, char **argv)
reread()
feed(':set diffopt=filler,iwhite,internal<cr>')
screen:expect([[
- {1: }^int main() {3:│}{1: }int main() |
- {1: }{ {3:│}{1: }{ |
- {1: }{2:------------------}{3:│}{1: }{4: if (0) }|
- {1: }{2:------------------}{3:│}{1: }{4: { }|
- {1: } printf("Hello, {3:│}{1: } printf("Hel|
- {1: } return 0; {3:│}{1: } return 0; |
- {1: }{2:------------------}{3:│}{1: }{4: } }|
- {1: }} {3:│}{1: }} |
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
+ {1: }^int main() │{1: }int main() |
+ {1: }{ │{1: }{ |
+ {1: }{2:------------------}│{1: }{4: if (0) }|
+ {1: }{2:------------------}│{1: }{4: { }|
+ {1: } printf("Hello, │{1: } printf("Hel|
+ {1: } return 0; │{1: } return 0; |
+ {1: }{2:------------------}│{1: }{4: } }|
+ {1: }} │{1: }} |
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
{7:<onal-diff-screen-1 }{3:<l-diff-screen-1.2 }|
:set diffopt=filler,iwhite,internal |
]])
@@ -838,20 +838,20 @@ int main(int argc, char **argv)
reread()
feed(':set diffopt=internal,filler,iblank<cr>')
screen:expect([[
- {1: }^a {3:│}{1: }a |
- {1: }{4: }{3:│}{1: }{2:-----------------}|
- {1: }{4: }{3:│}{1: }{2:-----------------}|
- {1: }cd {3:│}{1: }cd |
- {1: }ef {3:│}{1: } |
- {1: }{8:xxx}{9: }{3:│}{1: }ef |
- {6:~ }{3:│}{1: }{8:yyy}{9: }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
+ {1: }^a │{1: }a |
+ {1: }{4: }│{1: }{2:-----------------}|
+ {1: }{4: }│{1: }{2:-----------------}|
+ {1: }cd │{1: }cd |
+ {1: }ef │{1: } |
+ {1: }{8:xxx}{9: }│{1: }ef |
+ {6:~ }│{1: }{8:yyy}{9: }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
{7:<onal-diff-screen-1 }{3:<l-diff-screen-1.2 }|
:set diffopt=internal,filler,iblank |
]])
@@ -862,20 +862,20 @@ int main(int argc, char **argv)
feed(':set diffopt=internal,filler,iblank,iwhite<cr>')
feed(':<cr>')
screen:expect([[
- {1: }^a {3:│}{1: }a |
- {1: } {3:│}{1: }cd |
- {1: } {3:│}{1: } |
- {1: }cd {3:│}{1: }ef |
- {1: }ef {3:│}{1: }{8:yyy}{9: }|
- {1: }{8:xxx}{9: }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
+ {1: }^a │{1: }a |
+ {1: } │{1: }cd |
+ {1: } │{1: } |
+ {1: }cd │{1: }ef |
+ {1: }ef │{1: }{8:yyy}{9: }|
+ {1: }{8:xxx}{9: }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
{7:<onal-diff-screen-1 }{3:<l-diff-screen-1.2 }|
: |
]])
@@ -886,20 +886,20 @@ int main(int argc, char **argv)
feed(':set diffopt=internal,filler,iblank,iwhiteall<cr>')
feed(':<cr>')
screen:expect([[
- {1: }^a {3:│}{1: }a |
- {1: } {3:│}{1: }cd |
- {1: } {3:│}{1: } |
- {1: }cd {3:│}{1: }ef |
- {1: }ef {3:│}{1: }{8:yyy}{9: }|
- {1: }{8:xxx}{9: }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
+ {1: }^a │{1: }a |
+ {1: } │{1: }cd |
+ {1: } │{1: } |
+ {1: }cd │{1: }ef |
+ {1: }ef │{1: }{8:yyy}{9: }|
+ {1: }{8:xxx}{9: }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
{7:<onal-diff-screen-1 }{3:<l-diff-screen-1.2 }|
: |
]])
@@ -910,20 +910,20 @@ int main(int argc, char **argv)
feed(':set diffopt=internal,filler,iblank,iwhiteeol<cr>')
feed(':<cr>')
screen:expect([[
- {1: }^a {3:│}{1: }a |
- {1: } {3:│}{1: }cd |
- {1: } {3:│}{1: } |
- {1: }cd {3:│}{1: }ef |
- {1: }ef {3:│}{1: }{8:yyy}{9: }|
- {1: }{8:xxx}{9: }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
+ {1: }^a │{1: }a |
+ {1: } │{1: }cd |
+ {1: } │{1: } |
+ {1: }cd │{1: }ef |
+ {1: }ef │{1: }{8:yyy}{9: }|
+ {1: }{8:xxx}{9: }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
{7:<onal-diff-screen-1 }{3:<l-diff-screen-1.2 }|
: |
]])
@@ -942,20 +942,20 @@ int main(int argc, char **argv)
feed(':set diffopt=internal,filler,iwhiteeol<cr>')
feed(':<cr>')
screen:expect([[
- {1: }^a {3:│}{1: }a |
- {1: }x {3:│}{1: }x |
- {1: }{9:cd }{3:│}{1: }{9:c}{8: }{9:d }|
- {1: }{9:ef }{3:│}{1: }{8: }{9:ef }|
- {1: }{9:xx }{8: }{9:xx }{3:│}{1: }{9:xx xx }|
- {1: }foo {3:│}{1: }foo |
- {1: }{2:------------------}{3:│}{1: }{4: }|
- {1: }bar {3:│}{1: }bar |
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
+ {1: }^a │{1: }a |
+ {1: }x │{1: }x |
+ {1: }{9:cd }│{1: }{9:c}{8: }{9:d }|
+ {1: }{9:ef }│{1: }{8: }{9:ef }|
+ {1: }{9:xx }{8: }{9:xx }│{1: }{9:xx xx }|
+ {1: }foo │{1: }foo |
+ {1: }{2:------------------}│{1: }{4: }|
+ {1: }bar │{1: }bar |
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
{7:<onal-diff-screen-1 }{3:<l-diff-screen-1.2 }|
: |
]])
@@ -966,20 +966,20 @@ int main(int argc, char **argv)
feed(':set diffopt=internal,filler,iwhiteall<cr>')
feed(':<cr>')
screen:expect([[
- {1: }^a {3:│}{1: }a |
- {1: }x {3:│}{1: }x |
- {1: }cd {3:│}{1: }c d |
- {1: }ef {3:│}{1: } ef |
- {1: }xx xx {3:│}{1: }xx xx |
- {1: }foo {3:│}{1: }foo |
- {1: }{2:------------------}{3:│}{1: }{4: }|
- {1: }bar {3:│}{1: }bar |
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
- {6:~ }{3:│}{6:~ }|
+ {1: }^a │{1: }a |
+ {1: }x │{1: }x |
+ {1: }cd │{1: }c d |
+ {1: }ef │{1: } ef |
+ {1: }xx xx │{1: }xx xx |
+ {1: }foo │{1: }foo |
+ {1: }{2:------------------}│{1: }{4: }|
+ {1: }bar │{1: }bar |
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
{7:<onal-diff-screen-1 }{3:<l-diff-screen-1.2 }|
: |
]])
@@ -1029,14 +1029,14 @@ it('win_update redraws lines properly', function()
command("windo diffthis")
command("windo 1")
screen:expect{grid=[[
- {13: }{16:-----------------------}{14:│}{13: }{15:^1 }|
- {13: }{16:-----------------------}{14:│}{13: }{15: }|
- {13: }{16:-----------------------}{14:│}{13: }{15: }|
- {13: }2 {14:│}{13: }2 |
- {13: }{17:2}{18:a }{14:│}{13: }{17:1}{18:a }|
- {13: }{15:2b }{14:│}{13: }{16:----------------------}|
- {13: } {14:│}{13: } |
- {1:~ }{14:│}{1:~ }|
+ {13: }{16:-----------------------}│{13: }{15:^1 }|
+ {13: }{16:-----------------------}│{13: }{15: }|
+ {13: }{16:-----------------------}│{13: }{15: }|
+ {13: }2 │{13: }2 |
+ {13: }{17:2}{18:a }│{13: }{17:1}{18:a }|
+ {13: }{15:2b }│{13: }{16:----------------------}|
+ {13: } │{13: } |
+ {1:~ }│{1:~ }|
{14:left [+] }{12:[No Name] [+] }|
|
]]}
@@ -1046,14 +1046,14 @@ it('win_update redraws lines properly', function()
feed('<C-y>')
feed('<C-y>')
screen:expect{grid=[[
- {13: }{16:-----------------------}{14:│}{13: }{15:1 }|
- {13: }{16:-----------------------}{14:│}{13: }{15: }|
- {13: }{16:-----------------------}{14:│}{13: }{15:^ }|
- {13: }2 {14:│}{13: }2 |
- {13: }{17:2}{18:a }{14:│}{13: }{17:1}{18:a }|
- {13: }{15:2b }{14:│}{13: }{16:----------------------}|
- {13: } {14:│}{13: } |
- {1:~ }{14:│}{1:~ }|
+ {13: }{16:-----------------------}│{13: }{15:1 }|
+ {13: }{16:-----------------------}│{13: }{15: }|
+ {13: }{16:-----------------------}│{13: }{15:^ }|
+ {13: }2 │{13: }2 |
+ {13: }{17:2}{18:a }│{13: }{17:1}{18:a }|
+ {13: }{15:2b }│{13: }{16:----------------------}|
+ {13: } │{13: } |
+ {1:~ }│{1:~ }|
{14:left [+] }{12:[No Name] [+] }|
|
]]}
@@ -1084,52 +1084,52 @@ it('diff updates line numbers below filler lines', function()
setlocal number rnu cursorline cursorlineopt=number foldcolumn=0
]])
screen:expect([[
- {1: }a {3:│}{10:1 }^a |
- {1: }a {3:│}{11: 1 }a |
- {1: }a {3:│}{11: 2 }a |
- {1: }{8:x}{9: }{3:│}{11: 3 }{8:y}{9: }|
- {1: }{4:x }{3:│}{11: }{2:----------------}|
- {1: }{4:x }{3:│}{11: }{2:----------------}|
- {1: }b {3:│}{11: 4 }b |
- {1: }b {3:│}{11: 5 }b |
- {1: }b {3:│}{11: 6 }b |
- {1: }b {3:│}{11: 7 }b |
- {1: }b {3:│}{11: 8 }b |
- {6:~ }{3:│}{6:~ }|
+ {1: }a │{10:1 }^a |
+ {1: }a │{11: 1 }a |
+ {1: }a │{11: 2 }a |
+ {1: }{8:x}{9: }│{11: 3 }{8:y}{9: }|
+ {1: }{4:x }│{11: }{2:----------------}|
+ {1: }{4:x }│{11: }{2:----------------}|
+ {1: }b │{11: 4 }b |
+ {1: }b │{11: 5 }b |
+ {1: }b │{11: 6 }b |
+ {1: }b │{11: 7 }b |
+ {1: }b │{11: 8 }b |
+ {6:~ }│{6:~ }|
{3:[No Name] [+] }{7:[No Name] [+] }|
|
]])
feed('j')
screen:expect([[
- {1: }a {3:│}{11: 1 }a |
- {1: }a {3:│}{10:2 }^a |
- {1: }a {3:│}{11: 1 }a |
- {1: }{8:x}{9: }{3:│}{11: 2 }{8:y}{9: }|
- {1: }{4:x }{3:│}{11: }{2:----------------}|
- {1: }{4:x }{3:│}{11: }{2:----------------}|
- {1: }b {3:│}{11: 3 }b |
- {1: }b {3:│}{11: 4 }b |
- {1: }b {3:│}{11: 5 }b |
- {1: }b {3:│}{11: 6 }b |
- {1: }b {3:│}{11: 7 }b |
- {6:~ }{3:│}{6:~ }|
+ {1: }a │{11: 1 }a |
+ {1: }a │{10:2 }^a |
+ {1: }a │{11: 1 }a |
+ {1: }{8:x}{9: }│{11: 2 }{8:y}{9: }|
+ {1: }{4:x }│{11: }{2:----------------}|
+ {1: }{4:x }│{11: }{2:----------------}|
+ {1: }b │{11: 3 }b |
+ {1: }b │{11: 4 }b |
+ {1: }b │{11: 5 }b |
+ {1: }b │{11: 6 }b |
+ {1: }b │{11: 7 }b |
+ {6:~ }│{6:~ }|
{3:[No Name] [+] }{7:[No Name] [+] }|
|
]])
feed('j')
screen:expect([[
- {1: }a {3:│}{11: 2 }a |
- {1: }a {3:│}{11: 1 }a |
- {1: }a {3:│}{10:3 }^a |
- {1: }{8:x}{9: }{3:│}{11: 1 }{8:y}{9: }|
- {1: }{4:x }{3:│}{11: }{2:----------------}|
- {1: }{4:x }{3:│}{11: }{2:----------------}|
- {1: }b {3:│}{11: 2 }b |
- {1: }b {3:│}{11: 3 }b |
- {1: }b {3:│}{11: 4 }b |
- {1: }b {3:│}{11: 5 }b |
- {1: }b {3:│}{11: 6 }b |
- {6:~ }{3:│}{6:~ }|
+ {1: }a │{11: 2 }a |
+ {1: }a │{11: 1 }a |
+ {1: }a │{10:3 }^a |
+ {1: }{8:x}{9: }│{11: 1 }{8:y}{9: }|
+ {1: }{4:x }│{11: }{2:----------------}|
+ {1: }{4:x }│{11: }{2:----------------}|
+ {1: }b │{11: 2 }b |
+ {1: }b │{11: 3 }b |
+ {1: }b │{11: 4 }b |
+ {1: }b │{11: 5 }b |
+ {1: }b │{11: 6 }b |
+ {6:~ }│{6:~ }|
{3:[No Name] [+] }{7:[No Name] [+] }|
|
]])
@@ -1158,70 +1158,70 @@ it('Align the filler lines when changing text in diff mode', function()
exe "normal Gl5\<C-E>"
]])
screen:expect{grid=[[
- {1: }{2:------------------}{3:│}{1: }{4:6 }|
- {1: }{2:------------------}{3:│}{1: }{4:7 }|
- {1: }{2:------------------}{3:│}{1: }{4:8 }|
- {1: }9 {3:│}{1: }9 |
- {1: }10 {3:│}{1: }10 |
- {1: }11 {3:│}{1: }11 |
- {1: }12 {3:│}{1: }12 |
- {1: }13 {3:│}{1: }13 |
- {1: }14 {3:│}{1: }14 |
- {1:- }1^5 {3:│}{1:- }15 |
- {7:~ }{3:│}{7:~ }|
- {7:~ }{3:│}{7:~ }|
- {7:~ }{3:│}{7:~ }|
- {7:~ }{3:│}{7:~ }|
- {7:~ }{3:│}{7:~ }|
- {7:~ }{3:│}{7:~ }|
- {7:~ }{3:│}{7:~ }|
- {7:~ }{3:│}{7:~ }|
+ {1: }{2:------------------}│{1: }{4:6 }|
+ {1: }{2:------------------}│{1: }{4:7 }|
+ {1: }{2:------------------}│{1: }{4:8 }|
+ {1: }9 │{1: }9 |
+ {1: }10 │{1: }10 |
+ {1: }11 │{1: }11 |
+ {1: }12 │{1: }12 |
+ {1: }13 │{1: }13 |
+ {1: }14 │{1: }14 |
+ {1:- }1^5 │{1:- }15 |
+ {7:~ }│{7:~ }|
+ {7:~ }│{7:~ }|
+ {7:~ }│{7:~ }|
+ {7:~ }│{7:~ }|
+ {7:~ }│{7:~ }|
+ {7:~ }│{7:~ }|
+ {7:~ }│{7:~ }|
+ {7:~ }│{7:~ }|
{8:[No Name] [+] }{3:[No Name] [+] }|
|
]]}
feed('ax<Esc>')
screen:expect{grid=[[
- {1: }{2:------------------}{3:│}{1: }{4:6 }|
- {1: }{2:------------------}{3:│}{1: }{4:7 }|
- {1: }{2:------------------}{3:│}{1: }{4:8 }|
- {1: }9 {3:│}{1: }9 |
- {1: }10 {3:│}{1: }10 |
- {1: }11 {3:│}{1: }11 |
- {1: }12 {3:│}{1: }12 |
- {1: }13 {3:│}{1: }13 |
- {1: }14 {3:│}{1: }14 |
- {1: }{5:15}{6:^x}{5: }{3:│}{1: }{5:15 }|
- {7:~ }{3:│}{7:~ }|
- {7:~ }{3:│}{7:~ }|
- {7:~ }{3:│}{7:~ }|
- {7:~ }{3:│}{7:~ }|
- {7:~ }{3:│}{7:~ }|
- {7:~ }{3:│}{7:~ }|
- {7:~ }{3:│}{7:~ }|
- {7:~ }{3:│}{7:~ }|
+ {1: }{2:------------------}│{1: }{4:6 }|
+ {1: }{2:------------------}│{1: }{4:7 }|
+ {1: }{2:------------------}│{1: }{4:8 }|
+ {1: }9 │{1: }9 |
+ {1: }10 │{1: }10 |
+ {1: }11 │{1: }11 |
+ {1: }12 │{1: }12 |
+ {1: }13 │{1: }13 |
+ {1: }14 │{1: }14 |
+ {1: }{5:15}{6:^x}{5: }│{1: }{5:15 }|
+ {7:~ }│{7:~ }|
+ {7:~ }│{7:~ }|
+ {7:~ }│{7:~ }|
+ {7:~ }│{7:~ }|
+ {7:~ }│{7:~ }|
+ {7:~ }│{7:~ }|
+ {7:~ }│{7:~ }|
+ {7:~ }│{7:~ }|
{8:[No Name] [+] }{3:[No Name] [+] }|
|
]]}
feed('<C-W>lay<Esc>')
screen:expect{grid=[[
- {1: }{2:-----------------}{3:│}{1: }{4:6 }|
- {1: }{2:-----------------}{3:│}{1: }{4:7 }|
- {1: }{2:-----------------}{3:│}{1: }{4:8 }|
- {1: }9 {3:│}{1: }9 |
- {1: }10 {3:│}{1: }10 |
- {1: }11 {3:│}{1: }11 |
- {1: }12 {3:│}{1: }12 |
- {1: }13 {3:│}{1: }13 |
- {1: }14 {3:│}{1: }14 |
- {1: }{5:15}{6:x}{5: }{3:│}{1: }{5:15}{6:^y}{5: }|
- {7:~ }{3:│}{7:~ }|
- {7:~ }{3:│}{7:~ }|
- {7:~ }{3:│}{7:~ }|
- {7:~ }{3:│}{7:~ }|
- {7:~ }{3:│}{7:~ }|
- {7:~ }{3:│}{7:~ }|
- {7:~ }{3:│}{7:~ }|
- {7:~ }{3:│}{7:~ }|
+ {1: }{2:-----------------}│{1: }{4:6 }|
+ {1: }{2:-----------------}│{1: }{4:7 }|
+ {1: }{2:-----------------}│{1: }{4:8 }|
+ {1: }9 │{1: }9 |
+ {1: }10 │{1: }10 |
+ {1: }11 │{1: }11 |
+ {1: }12 │{1: }12 |
+ {1: }13 │{1: }13 |
+ {1: }14 │{1: }14 |
+ {1: }{5:15}{6:x}{5: }│{1: }{5:15}{6:^y}{5: }|
+ {7:~ }│{7:~ }|
+ {7:~ }│{7:~ }|
+ {7:~ }│{7:~ }|
+ {7:~ }│{7:~ }|
+ {7:~ }│{7:~ }|
+ {7:~ }│{7:~ }|
+ {7:~ }│{7:~ }|
+ {7:~ }│{7:~ }|
{3:[No Name] [+] }{8:[No Name] [+] }|
|
]]}
@@ -1253,24 +1253,24 @@ it('diff mode works properly if file contains NUL bytes vim-patch:8.2.3925', fun
-- Test using internal diff
screen:expect([[
- {1: }{5:^A}{4: }{2:│}{1: }{5:a}{4: }|
- {1: }b {2:│}{1: }b |
- {1: }{4:c }{2:│}{1: }{4:c}{7:^@}{4: }|
- {1: }d {2:│}{1: }d |
- {1: }{5:E}{4: }{2:│}{1: }{5:e}{4: }|
- {1: }f {2:│}{1: }f |
- {1: }g {2:│}{1: }g |
- {6:~ }{2:│}{6:~ }|
- {6:~ }{2:│}{6:~ }|
- {6:~ }{2:│}{6:~ }|
- {6:~ }{2:│}{6:~ }|
- {6:~ }{2:│}{6:~ }|
- {6:~ }{2:│}{6:~ }|
- {6:~ }{2:│}{6:~ }|
- {6:~ }{2:│}{6:~ }|
- {6:~ }{2:│}{6:~ }|
- {6:~ }{2:│}{6:~ }|
- {6:~ }{2:│}{6:~ }|
+ {1: }{5:^A}{4: }│{1: }{5:a}{4: }|
+ {1: }b │{1: }b |
+ {1: }{4:c }│{1: }{4:c}{7:^@}{4: }|
+ {1: }d │{1: }d |
+ {1: }{5:E}{4: }│{1: }{5:e}{4: }|
+ {1: }f │{1: }f |
+ {1: }g │{1: }g |
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
{8:[No Name] [+] }{2:[No Name] [+] }|
|
]])
@@ -1279,24 +1279,24 @@ it('diff mode works properly if file contains NUL bytes vim-patch:8.2.3925', fun
command('set diffopt+=icase')
feed('<C-L>')
screen:expect([[
- {1: }^A {2:│}{1: }a |
- {1: }b {2:│}{1: }b |
- {1: }{4:c }{2:│}{1: }{4:c}{7:^@}{4: }|
- {1: }d {2:│}{1: }d |
- {1: }E {2:│}{1: }e |
- {1: }f {2:│}{1: }f |
- {1: }g {2:│}{1: }g |
- {6:~ }{2:│}{6:~ }|
- {6:~ }{2:│}{6:~ }|
- {6:~ }{2:│}{6:~ }|
- {6:~ }{2:│}{6:~ }|
- {6:~ }{2:│}{6:~ }|
- {6:~ }{2:│}{6:~ }|
- {6:~ }{2:│}{6:~ }|
- {6:~ }{2:│}{6:~ }|
- {6:~ }{2:│}{6:~ }|
- {6:~ }{2:│}{6:~ }|
- {6:~ }{2:│}{6:~ }|
+ {1: }^A │{1: }a |
+ {1: }b │{1: }b |
+ {1: }{4:c }│{1: }{4:c}{7:^@}{4: }|
+ {1: }d │{1: }d |
+ {1: }E │{1: }e |
+ {1: }f │{1: }f |
+ {1: }g │{1: }g |
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
{8:[No Name] [+] }{2:[No Name] [+] }|
|
]])
@@ -1305,24 +1305,24 @@ it('diff mode works properly if file contains NUL bytes vim-patch:8.2.3925', fun
command('set diffopt=filler')
feed('<C-L>')
screen:expect([[
- {1: }{5:^A}{4: }{2:│}{1: }{5:a}{4: }|
- {1: }b {2:│}{1: }b |
- {1: }{4:c }{2:│}{1: }{4:c}{7:^@}{4: }|
- {1: }d {2:│}{1: }d |
- {1: }{5:E}{4: }{2:│}{1: }{5:e}{4: }|
- {1: }f {2:│}{1: }f |
- {1: }g {2:│}{1: }g |
- {6:~ }{2:│}{6:~ }|
- {6:~ }{2:│}{6:~ }|
- {6:~ }{2:│}{6:~ }|
- {6:~ }{2:│}{6:~ }|
- {6:~ }{2:│}{6:~ }|
- {6:~ }{2:│}{6:~ }|
- {6:~ }{2:│}{6:~ }|
- {6:~ }{2:│}{6:~ }|
- {6:~ }{2:│}{6:~ }|
- {6:~ }{2:│}{6:~ }|
- {6:~ }{2:│}{6:~ }|
+ {1: }{5:^A}{4: }│{1: }{5:a}{4: }|
+ {1: }b │{1: }b |
+ {1: }{4:c }│{1: }{4:c}{7:^@}{4: }|
+ {1: }d │{1: }d |
+ {1: }{5:E}{4: }│{1: }{5:e}{4: }|
+ {1: }f │{1: }f |
+ {1: }g │{1: }g |
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
{8:[No Name] [+] }{2:[No Name] [+] }|
|
]])
@@ -1331,24 +1331,24 @@ it('diff mode works properly if file contains NUL bytes vim-patch:8.2.3925', fun
command('set diffopt+=filler,icase')
feed('<C-L>')
screen:expect([[
- {1: }^A {2:│}{1: }a |
- {1: }b {2:│}{1: }b |
- {1: }{4:c }{2:│}{1: }{4:c}{7:^@}{4: }|
- {1: }d {2:│}{1: }d |
- {1: }E {2:│}{1: }e |
- {1: }f {2:│}{1: }f |
- {1: }g {2:│}{1: }g |
- {6:~ }{2:│}{6:~ }|
- {6:~ }{2:│}{6:~ }|
- {6:~ }{2:│}{6:~ }|
- {6:~ }{2:│}{6:~ }|
- {6:~ }{2:│}{6:~ }|
- {6:~ }{2:│}{6:~ }|
- {6:~ }{2:│}{6:~ }|
- {6:~ }{2:│}{6:~ }|
- {6:~ }{2:│}{6:~ }|
- {6:~ }{2:│}{6:~ }|
- {6:~ }{2:│}{6:~ }|
+ {1: }^A │{1: }a |
+ {1: }b │{1: }b |
+ {1: }{4:c }│{1: }{4:c}{7:^@}{4: }|
+ {1: }d │{1: }d |
+ {1: }E │{1: }e |
+ {1: }f │{1: }f |
+ {1: }g │{1: }g |
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
+ {6:~ }│{6:~ }|
{8:[No Name] [+] }{2:[No Name] [+] }|
|
]])
diff --git a/test/functional/ui/float_spec.lua b/test/functional/ui/float_spec.lua
index 96e7b1b6bc..7ab00e74d9 100644
--- a/test/functional/ui/float_spec.lua
+++ b/test/functional/ui/float_spec.lua
@@ -22,6 +22,7 @@ local curbuf, curwin, curtab = helpers.curbuf, helpers.curwin, helpers.curtab
describe('float window', function()
before_each(function()
clear()
+ command('hi VertSplit gui=reverse')
end)
local attrs = {
[0] = {bold=true, foreground=Screen.colors.Blue},
diff --git a/test/functional/ui/fold_spec.lua b/test/functional/ui/fold_spec.lua
index bc52696418..9762805dee 100644
--- a/test/functional/ui/fold_spec.lua
+++ b/test/functional/ui/fold_spec.lua
@@ -21,12 +21,14 @@ local content1 = [[
describe("folded lines", function()
before_each(function()
clear()
+ command('hi VertSplit gui=reverse')
end)
local function with_ext_multigrid(multigrid)
local screen
before_each(function()
clear()
+ command('hi VertSplit gui=reverse')
screen = Screen.new(45, 8)
screen:attach({rgb=true, ext_multigrid=multigrid})
screen:set_default_attr_ids({
diff --git a/test/functional/ui/global_statusline_spec.lua b/test/functional/ui/global_statusline_spec.lua
index f6821ec589..369c4a31f1 100644
--- a/test/functional/ui/global_statusline_spec.lua
+++ b/test/functional/ui/global_statusline_spec.lua
@@ -65,20 +65,20 @@ describe('global statusline', function()
it('works with splits', function()
command('vsplit | split | vsplit | vsplit | wincmd l | split | 2wincmd l | split')
screen:expect{grid=[[
- {1:│} {1:│} {1:│}^ |
- {2:~ }{1:│}{2:~ }{1:│}{2:~}{1:│}{2:~ }|
- {2:~ }{1:│}{2:~ }{1:│}{2:~}{1:│}{2:~ }|
- {2:~ }{1:│}{2:~ }{1:│}{2:~}{1:│}{2:~ }|
- {2:~ }{1:├────────────────┤}{2:~}{1:│}{2:~ }|
- {2:~ }{1:│} {1:│}{2:~}{1:│}{2:~ }|
- {2:~ }{1:│}{2:~ }{1:│}{2:~}{1:│}{2:~ }|
- {2:~ }{1:│}{2:~ }{1:│}{2:~}{1:├────────────────────}|
- {2:~ }{1:│}{2:~ }{1:│}{2:~}{1:│} |
- {1:────────────────────┴────────────────┴─┤}{2:~ }|
- {1:│}{2:~ }|
- {2:~ }{1:│}{2:~ }|
- {2:~ }{1:│}{2:~ }|
- {2:~ }{1:│}{2:~ }|
+ │ │ │^ |
+ {2:~ }│{2:~ }│{2:~}│{2:~ }|
+ {2:~ }│{2:~ }│{2:~}│{2:~ }|
+ {2:~ }│{2:~ }│{2:~}│{2:~ }|
+ {2:~ }├────────────────┤{2:~}│{2:~ }|
+ {2:~ }│ │{2:~}│{2:~ }|
+ {2:~ }│{2:~ }│{2:~}│{2:~ }|
+ {2:~ }│{2:~ }│{2:~}├────────────────────|
+ {2:~ }│{2:~ }│{2:~}│ |
+ ────────────────────┴────────────────┴─┤{2:~ }|
+ │{2:~ }|
+ {2:~ }│{2:~ }|
+ {2:~ }│{2:~ }|
+ {2:~ }│{2:~ }|
{3:[No Name] 0,0-1 All}|
|
]], attr_ids={
@@ -137,20 +137,20 @@ describe('global statusline', function()
command('vsplit | split | vsplit | vsplit | wincmd l | split | 2wincmd l | split')
command('set laststatus=2')
screen:expect{grid=[[
- {1:│} {1:│} {1:│}^ |
- {2:~ }{1:│}{2:~ }{1:│}{2:~}{1:│}{2:~ }|
- {2:~ }{1:│}{2:~ }{1:│}{2:~}{1:│}{2:~ }|
- {2:~ }{1:│}{2:~ }{1:│}{2:~}{1:│}{2:~ }|
- {2:~ }{1:│< Name] 0,0-1 │}{2:~}{1:│}{2:~ }|
- {2:~ }{1:│} {1:│}{2:~}{1:│}{2:~ }|
- {2:~ }{1:│}{2:~ }{1:│}{2:~}{1:│}{2:~ }|
- {2:~ }{1:│}{2:~ }{1:│}{2:~}{1:│}{3:<No Name] 0,0-1 All}|
- {2:~ }{1:│}{2:~ }{1:│}{2:~}{1:│} |
- {1:<No Name] 0,0-1 All < Name] 0,0-1 <│}{2:~ }|
- {1:│}{2:~ }|
- {2:~ }{1:│}{2:~ }|
- {2:~ }{1:│}{2:~ }|
- {2:~ }{1:│}{2:~ }|
+ │ │ │^ |
+ {2:~ }│{2:~ }│{2:~}│{2:~ }|
+ {2:~ }│{2:~ }│{2:~}│{2:~ }|
+ {2:~ }│{2:~ }│{2:~}│{2:~ }|
+ {2:~ }│{1:< Name] 0,0-1 }│{2:~}│{2:~ }|
+ {2:~ }│ │{2:~}│{2:~ }|
+ {2:~ }│{2:~ }│{2:~}│{2:~ }|
+ {2:~ }│{2:~ }│{2:~}│{3:<No Name] 0,0-1 All}|
+ {2:~ }│{2:~ }│{2:~}│ |
+ {1:<No Name] 0,0-1 All < Name] 0,0-1 <}│{2:~ }|
+ │{2:~ }|
+ {2:~ }│{2:~ }|
+ {2:~ }│{2:~ }|
+ {2:~ }│{2:~ }|
{1:[No Name] 0,0-1 All <No Name] 0,0-1 All}|
|
]], attr_ids={
@@ -161,20 +161,20 @@ describe('global statusline', function()
command('set laststatus=3')
screen:expect{grid=[[
- {1:│} {1:│} {1:│}^ |
- {2:~ }{1:│}{2:~ }{1:│}{2:~}{1:│}{2:~ }|
- {2:~ }{1:│}{2:~ }{1:│}{2:~}{1:│}{2:~ }|
- {2:~ }{1:│}{2:~ }{1:│}{2:~}{1:│}{2:~ }|
- {2:~ }{1:├────────────────┤}{2:~}{1:│}{2:~ }|
- {2:~ }{1:│} {1:│}{2:~}{1:│}{2:~ }|
- {2:~ }{1:│}{2:~ }{1:│}{2:~}{1:│}{2:~ }|
- {2:~ }{1:│}{2:~ }{1:│}{2:~}{1:├────────────────────}|
- {2:~ }{1:│}{2:~ }{1:│}{2:~}{1:│} |
- {1:────────────────────┴────────────────┴─┤}{2:~ }|
- {1:│}{2:~ }|
- {2:~ }{1:│}{2:~ }|
- {2:~ }{1:│}{2:~ }|
- {2:~ }{1:│}{2:~ }|
+ │ │ │^ |
+ {2:~ }│{2:~ }│{2:~}│{2:~ }|
+ {2:~ }│{2:~ }│{2:~}│{2:~ }|
+ {2:~ }│{2:~ }│{2:~}│{2:~ }|
+ {2:~ }├────────────────┤{2:~}│{2:~ }|
+ {2:~ }│ │{2:~}│{2:~ }|
+ {2:~ }│{2:~ }│{2:~}│{2:~ }|
+ {2:~ }│{2:~ }│{2:~}├────────────────────|
+ {2:~ }│{2:~ }│{2:~}│ |
+ ────────────────────┴────────────────┴─┤{2:~ }|
+ │{2:~ }|
+ {2:~ }│{2:~ }|
+ {2:~ }│{2:~ }|
+ {2:~ }│{2:~ }|
{3:[No Name] 0,0-1 All}|
|
]], attr_ids={
@@ -185,21 +185,21 @@ describe('global statusline', function()
command('set laststatus=0')
screen:expect{grid=[[
- {1:│} {1:│} {1:│}^ |
- {2:~ }{1:│}{2:~ }{1:│}{2:~}{1:│}{2:~ }|
- {2:~ }{1:│}{2:~ }{1:│}{2:~}{1:│}{2:~ }|
- {2:~ }{1:│}{2:~ }{1:│}{2:~}{1:│}{2:~ }|
- {2:~ }{1:│< Name] 0,0-1 │}{2:~}{1:│}{2:~ }|
- {2:~ }{1:│} {1:│}{2:~}{1:│}{2:~ }|
- {2:~ }{1:│}{2:~ }{1:│}{2:~}{1:│}{2:~ }|
- {2:~ }{1:│}{2:~ }{1:│}{2:~}{1:│}{3:<No Name] 0,0-1 All}|
- {2:~ }{1:│}{2:~ }{1:│}{2:~}{1:│} |
- {1:<No Name] 0,0-1 All < Name] 0,0-1 <│}{2:~ }|
- {1:│}{2:~ }|
- {2:~ }{1:│}{2:~ }|
- {2:~ }{1:│}{2:~ }|
- {2:~ }{1:│}{2:~ }|
- {2:~ }{1:│}{2:~ }|
+ │ │ │^ |
+ {2:~ }│{2:~ }│{2:~}│{2:~ }|
+ {2:~ }│{2:~ }│{2:~}│{2:~ }|
+ {2:~ }│{2:~ }│{2:~}│{2:~ }|
+ {2:~ }│{1:< Name] 0,0-1 }│{2:~}│{2:~ }|
+ {2:~ }│ │{2:~}│{2:~ }|
+ {2:~ }│{2:~ }│{2:~}│{2:~ }|
+ {2:~ }│{2:~ }│{2:~}│{3:<No Name] 0,0-1 All}|
+ {2:~ }│{2:~ }│{2:~}│ |
+ {1:<No Name] 0,0-1 All < Name] 0,0-1 <}│{2:~ }|
+ │{2:~ }|
+ {2:~ }│{2:~ }|
+ {2:~ }│{2:~ }|
+ {2:~ }│{2:~ }|
+ {2:~ }│{2:~ }|
0,0-1 All |
]], attr_ids={
[1] = {reverse = true};
@@ -209,20 +209,20 @@ describe('global statusline', function()
command('set laststatus=3')
screen:expect{grid=[[
- {1:│} {1:│} {1:│}^ |
- {2:~ }{1:│}{2:~ }{1:│}{2:~}{1:│}{2:~ }|
- {2:~ }{1:│}{2:~ }{1:│}{2:~}{1:│}{2:~ }|
- {2:~ }{1:│}{2:~ }{1:│}{2:~}{1:│}{2:~ }|
- {2:~ }{1:├────────────────┤}{2:~}{1:│}{2:~ }|
- {2:~ }{1:│} {1:│}{2:~}{1:│}{2:~ }|
- {2:~ }{1:│}{2:~ }{1:│}{2:~}{1:│}{2:~ }|
- {2:~ }{1:│}{2:~ }{1:│}{2:~}{1:├────────────────────}|
- {2:~ }{1:│}{2:~ }{1:│}{2:~}{1:│} |
- {1:────────────────────┴────────────────┴─┤}{2:~ }|
- {1:│}{2:~ }|
- {2:~ }{1:│}{2:~ }|
- {2:~ }{1:│}{2:~ }|
- {2:~ }{1:│}{2:~ }|
+ │ │ │^ |
+ {2:~ }│{2:~ }│{2:~}│{2:~ }|
+ {2:~ }│{2:~ }│{2:~}│{2:~ }|
+ {2:~ }│{2:~ }│{2:~}│{2:~ }|
+ {2:~ }├────────────────┤{2:~}│{2:~ }|
+ {2:~ }│ │{2:~}│{2:~ }|
+ {2:~ }│{2:~ }│{2:~}│{2:~ }|
+ {2:~ }│{2:~ }│{2:~}├────────────────────|
+ {2:~ }│{2:~ }│{2:~}│ |
+ ────────────────────┴────────────────┴─┤{2:~ }|
+ │{2:~ }|
+ {2:~ }│{2:~ }|
+ {2:~ }│{2:~ }|
+ {2:~ }│{2:~ }|
{3:[No Name] 0,0-1 All}|
|
]], attr_ids={
diff --git a/test/functional/ui/highlight_spec.lua b/test/functional/ui/highlight_spec.lua
index 8afc69a649..22589fb107 100644
--- a/test/functional/ui/highlight_spec.lua
+++ b/test/functional/ui/highlight_spec.lua
@@ -104,12 +104,12 @@ describe('highlight defaults', function()
})
feed_command('sp', 'vsp', 'vsp')
screen:expect([[
- ^ {2:│} {2:│} |
- {0:~ }{2:│}{0:~ }{2:│}{0:~ }|
- {0:~ }{2:│}{0:~ }{2:│}{0:~ }|
- {0:~ }{2:│}{0:~ }{2:│}{0:~ }|
- {0:~ }{2:│}{0:~ }{2:│}{0:~ }|
- {0:~ }{2:│}{0:~ }{2:│}{0:~ }|
+ ^ │ │ |
+ {0:~ }│{0:~ }│{0:~ }|
+ {0:~ }│{0:~ }│{0:~ }|
+ {0:~ }│{0:~ }│{0:~ }|
+ {0:~ }│{0:~ }│{0:~ }|
+ {0:~ }│{0:~ }│{0:~ }|
{1:[No Name] }{2:[No Name] [No Name] }|
|
{0:~ }|
@@ -122,12 +122,12 @@ describe('highlight defaults', function()
-- navigate to verify that the attributes are properly moved
feed('<c-w>j')
screen:expect([[
- {2:│} {2:│} |
- {0:~ }{2:│}{0:~ }{2:│}{0:~ }|
- {0:~ }{2:│}{0:~ }{2:│}{0:~ }|
- {0:~ }{2:│}{0:~ }{2:│}{0:~ }|
- {0:~ }{2:│}{0:~ }{2:│}{0:~ }|
- {0:~ }{2:│}{0:~ }{2:│}{0:~ }|
+ │ │ |
+ {0:~ }│{0:~ }│{0:~ }|
+ {0:~ }│{0:~ }│{0:~ }|
+ {0:~ }│{0:~ }│{0:~ }|
+ {0:~ }│{0:~ }│{0:~ }|
+ {0:~ }│{0:~ }│{0:~ }|
{2:[No Name] [No Name] [No Name] }|
^ |
{0:~ }|
@@ -142,12 +142,12 @@ describe('highlight defaults', function()
-- (upstream vim has the same behavior)
feed('<c-w>k<c-w>l')
screen:expect([[
- {2:│}^ {2:│} |
- {0:~ }{2:│}{0:~ }{2:│}{0:~ }|
- {0:~ }{2:│}{0:~ }{2:│}{0:~ }|
- {0:~ }{2:│}{0:~ }{2:│}{0:~ }|
- {0:~ }{2:│}{0:~ }{2:│}{0:~ }|
- {0:~ }{2:│}{0:~ }{2:│}{0:~ }|
+ │^ │ |
+ {0:~ }│{0:~ }│{0:~ }|
+ {0:~ }│{0:~ }│{0:~ }|
+ {0:~ }│{0:~ }│{0:~ }|
+ {0:~ }│{0:~ }│{0:~ }|
+ {0:~ }│{0:~ }│{0:~ }|
{2:[No Name] }{1:[No Name] }{2:[No Name] }|
|
{0:~ }|
@@ -159,12 +159,12 @@ describe('highlight defaults', function()
]])
feed('<c-w>l')
screen:expect([[
- {2:│} {2:│}^ |
- {0:~ }{2:│}{0:~ }{2:│}{0:~ }|
- {0:~ }{2:│}{0:~ }{2:│}{0:~ }|
- {0:~ }{2:│}{0:~ }{2:│}{0:~ }|
- {0:~ }{2:│}{0:~ }{2:│}{0:~ }|
- {0:~ }{2:│}{0:~ }{2:│}{0:~ }|
+ │ │^ |
+ {0:~ }│{0:~ }│{0:~ }|
+ {0:~ }│{0:~ }│{0:~ }|
+ {0:~ }│{0:~ }│{0:~ }|
+ {0:~ }│{0:~ }│{0:~ }|
+ {0:~ }│{0:~ }│{0:~ }|
{2:[No Name] [No Name] }{1:[No Name] }|
|
{0:~ }|
@@ -176,12 +176,12 @@ describe('highlight defaults', function()
]])
feed('<c-w>h<c-w>h')
screen:expect([[
- ^ {2:│} {2:│} |
- {0:~ }{2:│}{0:~ }{2:│}{0:~ }|
- {0:~ }{2:│}{0:~ }{2:│}{0:~ }|
- {0:~ }{2:│}{0:~ }{2:│}{0:~ }|
- {0:~ }{2:│}{0:~ }{2:│}{0:~ }|
- {0:~ }{2:│}{0:~ }{2:│}{0:~ }|
+ ^ │ │ |
+ {0:~ }│{0:~ }│{0:~ }|
+ {0:~ }│{0:~ }│{0:~ }|
+ {0:~ }│{0:~ }│{0:~ }|
+ {0:~ }│{0:~ }│{0:~ }|
+ {0:~ }│{0:~ }│{0:~ }|
{1:[No Name] }{2:[No Name] [No Name] }|
|
{0:~ }|
@@ -1185,31 +1185,31 @@ describe('CursorLine and CursorLineNr highlights', function()
feed('<esc>gg')
command('windo diffthis')
screen:expect([[
- {1: }{7:line 1 some text }{4:│}{1: }{7:^line 1 some text }|
- {1: }{3:line 2 mo}{2:Re text!}{3: }{4:│}{1: }{3:line 2 mo}{2:re text}{3: }|
- {1: }{5:extra line! }{4:│}{1: }{6:----------------------}|
- {1: }extra line! {4:│}{1: }extra line! |
- {1: }extra line! {4:│}{1: }extra line! |
- {1: }last line ... {4:│}{1: }last line ... |
- {1: } {4:│}{1: } |
- {8:~ }{4:│}{8:~ }|
- {8:~ }{4:│}{8:~ }|
- {8:~ }{4:│}{8:~ }|
+ {1: }{7:line 1 some text }│{1: }{7:^line 1 some text }|
+ {1: }{3:line 2 mo}{2:Re text!}{3: }│{1: }{3:line 2 mo}{2:re text}{3: }|
+ {1: }{5:extra line! }│{1: }{6:----------------------}|
+ {1: }extra line! │{1: }extra line! |
+ {1: }extra line! │{1: }extra line! |
+ {1: }last line ... │{1: }last line ... |
+ {1: } │{1: } |
+ {8:~ }│{8:~ }|
+ {8:~ }│{8:~ }|
+ {8:~ }│{8:~ }|
{4:[No Name] [+] }{9:[No Name] [+] }|
|
]])
feed('jjjjj')
screen:expect([[
- {1: }line 1 some text {4:│}{1: }line 1 some text |
- {1: }{3:line 2 mo}{2:Re text!}{3: }{4:│}{1: }{3:line 2 mo}{2:re text}{3: }|
- {1: }{5:extra line! }{4:│}{1: }{6:----------------------}|
- {1: }extra line! {4:│}{1: }extra line! |
- {1: }extra line! {4:│}{1: }extra line! |
- {1: }last line ... {4:│}{1: }last line ... |
- {1: }{7: }{4:│}{1: }{7:^ }|
- {8:~ }{4:│}{8:~ }|
- {8:~ }{4:│}{8:~ }|
- {8:~ }{4:│}{8:~ }|
+ {1: }line 1 some text │{1: }line 1 some text |
+ {1: }{3:line 2 mo}{2:Re text!}{3: }│{1: }{3:line 2 mo}{2:re text}{3: }|
+ {1: }{5:extra line! }│{1: }{6:----------------------}|
+ {1: }extra line! │{1: }extra line! |
+ {1: }extra line! │{1: }extra line! |
+ {1: }last line ... │{1: }last line ... |
+ {1: }{7: }│{1: }{7:^ }|
+ {8:~ }│{8:~ }|
+ {8:~ }│{8:~ }|
+ {8:~ }│{8:~ }|
{4:[No Name] [+] }{9:[No Name] [+] }|
|
]])
@@ -1219,16 +1219,16 @@ describe('CursorLine and CursorLineNr highlights', function()
command('hi CursorLine ctermbg=red ctermfg=NONE guibg=red guifg=NONE')
feed('kkkk')
screen:expect([[
- {1: }line 1 some text {4:│}{1: }line 1 some text |
- {1: }{11:line 2 mo}{12:Re text!}{11: }{4:│}{1: }{11:^line 2 mo}{12:re text}{11: }|
- {1: }{5:extra line! }{4:│}{1: }{6:----------------------}|
- {1: }extra line! {4:│}{1: }extra line! |
- {1: }extra line! {4:│}{1: }extra line! |
- {1: }last line ... {4:│}{1: }last line ... |
- {1: } {4:│}{1: } |
- {8:~ }{4:│}{8:~ }|
- {8:~ }{4:│}{8:~ }|
- {8:~ }{4:│}{8:~ }|
+ {1: }line 1 some text │{1: }line 1 some text |
+ {1: }{11:line 2 mo}{12:Re text!}{11: }│{1: }{11:^line 2 mo}{12:re text}{11: }|
+ {1: }{5:extra line! }│{1: }{6:----------------------}|
+ {1: }extra line! │{1: }extra line! |
+ {1: }extra line! │{1: }extra line! |
+ {1: }last line ... │{1: }last line ... |
+ {1: } │{1: } |
+ {8:~ }│{8:~ }|
+ {8:~ }│{8:~ }|
+ {8:~ }│{8:~ }|
{4:[No Name] [+] }{9:[No Name] [+] }|
|
]], {
@@ -1274,31 +1274,31 @@ describe('CursorLine and CursorLineNr highlights', function()
command('windo diffthis')
command('1wincmd w')
screen:expect([[
- {1: }{9: }{2:-------------------}{3:│}{1: }{9: 1 }{4:baz }|
- {1: }{6: 1 }{5:^foo }{3:│}{1: }{6: 2 }{5:foo }|
- {1: }{9: 2 }foo {3:│}{1: }{9: 3 }foo |
- {1: }{9: 3 }bar {3:│}{1: }{9: 4 }bar |
- {7:~ }{3:│}{7:~ }|
- {7:~ }{3:│}{7:~ }|
- {7:~ }{3:│}{7:~ }|
- {7:~ }{3:│}{7:~ }|
- {7:~ }{3:│}{7:~ }|
- {7:~ }{3:│}{7:~ }|
+ {1: }{9: }{2:-------------------}│{1: }{9: 1 }{4:baz }|
+ {1: }{6: 1 }{5:^foo }│{1: }{6: 2 }{5:foo }|
+ {1: }{9: 2 }foo │{1: }{9: 3 }foo |
+ {1: }{9: 3 }bar │{1: }{9: 4 }bar |
+ {7:~ }│{7:~ }|
+ {7:~ }│{7:~ }|
+ {7:~ }│{7:~ }|
+ {7:~ }│{7:~ }|
+ {7:~ }│{7:~ }|
+ {7:~ }│{7:~ }|
{8:[No Name] [+] }{3:[No Name] [+] }|
|
]])
command('set cursorlineopt=number')
screen:expect([[
- {1: }{9: }{2:-------------------}{3:│}{1: }{9: 1 }{4:baz }|
- {1: }{6: 1 }^foo {3:│}{1: }{6: 2 }{5:foo }|
- {1: }{9: 2 }foo {3:│}{1: }{9: 3 }foo |
- {1: }{9: 3 }bar {3:│}{1: }{9: 4 }bar |
- {7:~ }{3:│}{7:~ }|
- {7:~ }{3:│}{7:~ }|
- {7:~ }{3:│}{7:~ }|
- {7:~ }{3:│}{7:~ }|
- {7:~ }{3:│}{7:~ }|
- {7:~ }{3:│}{7:~ }|
+ {1: }{9: }{2:-------------------}│{1: }{9: 1 }{4:baz }|
+ {1: }{6: 1 }^foo │{1: }{6: 2 }{5:foo }|
+ {1: }{9: 2 }foo │{1: }{9: 3 }foo |
+ {1: }{9: 3 }bar │{1: }{9: 4 }bar |
+ {7:~ }│{7:~ }|
+ {7:~ }│{7:~ }|
+ {7:~ }│{7:~ }|
+ {7:~ }│{7:~ }|
+ {7:~ }│{7:~ }|
+ {7:~ }│{7:~ }|
{8:[No Name] [+] }{3:[No Name] [+] }|
|
]])
diff --git a/test/functional/ui/hlstate_spec.lua b/test/functional/ui/hlstate_spec.lua
index dcea2c76dd..925af11627 100644
--- a/test/functional/ui/hlstate_spec.lua
+++ b/test/functional/ui/hlstate_spec.lua
@@ -14,6 +14,7 @@ describe('ext_hlstate detailed highlights', function()
before_each(function()
clear()
command('syntax on')
+ command('hi VertSplit gui=reverse')
screen = Screen.new(40, 8)
screen:attach({ext_hlstate=true})
end)
@@ -59,7 +60,7 @@ describe('ext_hlstate detailed highlights', function()
it('work with cleared UI highlights', function()
screen:set_default_attr_ids({
- [1] = {{}, {{hi_name = "VertSplit", ui_name = "WinSeparator", kind = "ui"}}},
+ [1] = {{}, {{hi_name = "Normal", ui_name = "WinSeparator", kind = "ui"}}},
[2] = {{bold = true, foreground = Screen.colors.Blue1},
{{hi_name = "NonText", ui_name = "EndOfBuffer", kind = "ui"}}},
[3] = {{bold = true, reverse = true},
diff --git a/test/functional/ui/inccommand_spec.lua b/test/functional/ui/inccommand_spec.lua
index 10700d9508..879c44773a 100644
--- a/test/functional/ui/inccommand_spec.lua
+++ b/test/functional/ui/inccommand_spec.lua
@@ -1858,26 +1858,26 @@ describe("'inccommand' split windows", function()
feed_command("split")
feed(":%s/tw")
screen:expect([[
- Inc substitution on {10:│}Inc substitution on|
- {12:tw}o lines {10:│}{12:tw}o lines |
- {10:│} |
- {15:~ }{10:│}{15:~ }|
- {15:~ }{10:│}{15:~ }|
- {15:~ }{10:│}{15:~ }|
- {15:~ }{10:│}{15:~ }|
- {15:~ }{10:│}{15:~ }|
- {15:~ }{10:│}{15:~ }|
- {15:~ }{10:│}{15:~ }|
- {15:~ }{10:│}{15:~ }|
- {15:~ }{10:│}{15:~ }|
- {15:~ }{10:│}{15:~ }|
- {15:~ }{10:│}{15:~ }|
- {11:[No Name] [+] }{10:│}{15:~ }|
- Inc substitution on {10:│}{15:~ }|
- {12:tw}o lines {10:│}{15:~ }|
- {10:│}{15:~ }|
- {15:~ }{10:│}{15:~ }|
- {15:~ }{10:│}{15:~ }|
+ Inc substitution on │Inc substitution on|
+ {12:tw}o lines │{12:tw}o lines |
+ │ |
+ {15:~ }│{15:~ }|
+ {15:~ }│{15:~ }|
+ {15:~ }│{15:~ }|
+ {15:~ }│{15:~ }|
+ {15:~ }│{15:~ }|
+ {15:~ }│{15:~ }|
+ {15:~ }│{15:~ }|
+ {15:~ }│{15:~ }|
+ {15:~ }│{15:~ }|
+ {15:~ }│{15:~ }|
+ {15:~ }│{15:~ }|
+ {11:[No Name] [+] }│{15:~ }|
+ Inc substitution on │{15:~ }|
+ {12:tw}o lines │{15:~ }|
+ │{15:~ }|
+ {15:~ }│{15:~ }|
+ {15:~ }│{15:~ }|
{10:[No Name] [+] [No Name] [+] }|
|2| {12:tw}o lines |
{15:~ }|
@@ -1897,20 +1897,20 @@ describe("'inccommand' split windows", function()
feed(":%s/tw")
screen:expect([[
- Inc substitution on {10:│}Inc substitution on|
- {12:tw}o lines {10:│}{12:tw}o lines |
- {10:│} |
- {15:~ }{10:│}{15:~ }|
- {15:~ }{10:│}{15:~ }|
- {15:~ }{10:│}{15:~ }|
- {15:~ }{10:│}{15:~ }|
- {15:~ }{10:│}{15:~ }|
- {15:~ }{10:│}{15:~ }|
- {15:~ }{10:│}{15:~ }|
- {15:~ }{10:│}{15:~ }|
- {15:~ }{10:│}{15:~ }|
- {15:~ }{10:│}{15:~ }|
- {15:~ }{10:│}{15:~ }|
+ Inc substitution on │Inc substitution on|
+ {12:tw}o lines │{12:tw}o lines |
+ │ |
+ {15:~ }│{15:~ }|
+ {15:~ }│{15:~ }|
+ {15:~ }│{15:~ }|
+ {15:~ }│{15:~ }|
+ {15:~ }│{15:~ }|
+ {15:~ }│{15:~ }|
+ {15:~ }│{15:~ }|
+ {15:~ }│{15:~ }|
+ {15:~ }│{15:~ }|
+ {15:~ }│{15:~ }|
+ {15:~ }│{15:~ }|
{11:[No Name] [+] }{10:[No Name] [+] }|
Inc substitution on |
{12:tw}o lines |
diff --git a/test/functional/ui/messages_spec.lua b/test/functional/ui/messages_spec.lua
index 3320f53d86..041337df8a 100644
--- a/test/functional/ui/messages_spec.lua
+++ b/test/functional/ui/messages_spec.lua
@@ -1223,7 +1223,7 @@ describe('ui/ext_messages', function()
{1:~ }|
{1:~ }|
{1:~ }|
- {6:────────────────────────────────────────────────────────────────────────────────}|
+ ────────────────────────────────────────────────────────────────────────────────|
|
{1:~ }|
{1:~ }|
@@ -1256,7 +1256,7 @@ describe('ui/ext_messages', function()
{1:~ }|
{1:~ }|
{1:~ }|
- {6:────────────────────────────────────────────────────────────────────────────────}|
+ ────────────────────────────────────────────────────────────────────────────────|
|
{1:~ }|
{1:~ }|
@@ -1291,7 +1291,7 @@ describe('ui/ext_messages', function()
{1:~ }|
{1:~ }|
{1:~ }|
- {6:────────────────────────────────────────────────────────────────────────────────}|
+ ────────────────────────────────────────────────────────────────────────────────|
|
{1:~ }|
{1:~ }|
diff --git a/test/functional/ui/mouse_spec.lua b/test/functional/ui/mouse_spec.lua
index 8d3c312def..e5284894cb 100644
--- a/test/functional/ui/mouse_spec.lua
+++ b/test/functional/ui/mouse_spec.lua
@@ -595,54 +595,54 @@ describe('ui/mouse/input', function()
feed('ifoo\nbar<esc>')
screen:expect{grid=[[
- testing {4:│}testing |
- mouse {4:│}mouse |
- support and selection {4:│}support and selection |
- {0:~ }{4:│}{0:~ }|
- {0:~ }{4:│}{0:~ }|
- {0:~ }{4:│[No Name] [+] }|
- {0:~ }{4:│}foo{0:$} |
- {0:~ }{4:│}ba^r{0:$} |
- {0:~ }{4:│}{0:~ }|
- {0:~ }{4:│}{0:~ }|
- {0:~ }{4:│}{0:~ }|
- {0:~ }{4:│}{0:~ }|
+ testing │testing |
+ mouse │mouse |
+ support and selection │support and selection |
+ {0:~ }│{0:~ }|
+ {0:~ }│{0:~ }|
+ {0:~ }│{4:[No Name] [+] }|
+ {0:~ }│foo{0:$} |
+ {0:~ }│ba^r{0:$} |
+ {0:~ }│{0:~ }|
+ {0:~ }│{0:~ }|
+ {0:~ }│{0:~ }|
+ {0:~ }│{0:~ }|
{4:[No Name] [+] }{5:[No Name] [+] }|
|
]]}
meths.input_mouse('left', 'press', '', 0, 6, 27)
screen:expect{grid=[[
- testing {4:│}testing |
- mouse {4:│}mouse |
- support and selection {4:│}support and selection |
- {0:~ }{4:│}{0:~ }|
- {0:~ }{4:│}{0:~ }|
- {0:~ }{4:│[No Name] [+] }|
- {0:~ }{4:│}^foo{0:$} |
- {0:~ }{4:│}bar{0:$} |
- {0:~ }{4:│}{0:~ }|
- {0:~ }{4:│}{0:~ }|
- {0:~ }{4:│}{0:~ }|
- {0:~ }{4:│}{0:~ }|
+ testing │testing |
+ mouse │mouse |
+ support and selection │support and selection |
+ {0:~ }│{0:~ }|
+ {0:~ }│{0:~ }|
+ {0:~ }│{4:[No Name] [+] }|
+ {0:~ }│^foo{0:$} |
+ {0:~ }│bar{0:$} |
+ {0:~ }│{0:~ }|
+ {0:~ }│{0:~ }|
+ {0:~ }│{0:~ }|
+ {0:~ }│{0:~ }|
{4:[No Name] [+] }{5:[No Name] [+] }|
|
]]}
meths.input_mouse('left', 'drag', '', 0, 7, 30)
screen:expect{grid=[[
- testing {4:│}testing |
- mouse {4:│}mouse |
- support and selection {4:│}support and selection |
- {0:~ }{4:│}{0:~ }|
- {0:~ }{4:│}{0:~ }|
- {0:~ }{4:│[No Name] [+] }|
- {0:~ }{4:│}{1:foo}{3:$} |
- {0:~ }{4:│}{1:bar}{0:^$} |
- {0:~ }{4:│}{0:~ }|
- {0:~ }{4:│}{0:~ }|
- {0:~ }{4:│}{0:~ }|
- {0:~ }{4:│}{0:~ }|
+ testing │testing |
+ mouse │mouse |
+ support and selection │support and selection |
+ {0:~ }│{0:~ }|
+ {0:~ }│{0:~ }|
+ {0:~ }│{4:[No Name] [+] }|
+ {0:~ }│{1:foo}{3:$} |
+ {0:~ }│{1:bar}{0:^$} |
+ {0:~ }│{0:~ }|
+ {0:~ }│{0:~ }|
+ {0:~ }│{0:~ }|
+ {0:~ }│{0:~ }|
{4:[No Name] [+] }{5:[No Name] [+] }|
{2:-- VISUAL --} |
]]}
@@ -729,12 +729,12 @@ describe('ui/mouse/input', function()
feed('k')
feed_command('sp', 'vsp')
screen:expect([[
- lines {4:│}lines |
- to {4:│}to |
- test {4:│}test |
- ^mouse scrolling {4:│}mouse scrolling |
- {4:│} |
- {0:~ }{4:│}{0:~ }|
+ lines │lines |
+ to │to |
+ test │test |
+ ^mouse scrolling │mouse scrolling |
+ │ |
+ {0:~ }│{0:~ }|
{5:[No Name] [+] }{4:[No Name] [+] }|
to |
test |
@@ -750,12 +750,12 @@ describe('ui/mouse/input', function()
feed('<ScrollWheelDown><0,0>')
end
screen:expect([[
- ^mouse scrolling {4:│}lines |
- {4:│}to |
- {0:~ }{4:│}test |
- {0:~ }{4:│}mouse scrolling |
- {0:~ }{4:│} |
- {0:~ }{4:│}{0:~ }|
+ ^mouse scrolling │lines |
+ │to |
+ {0:~ }│test |
+ {0:~ }│mouse scrolling |
+ {0:~ }│ |
+ {0:~ }│{0:~ }|
{5:[No Name] [+] }{4:[No Name] [+] }|
to |
test |
@@ -771,12 +771,12 @@ describe('ui/mouse/input', function()
feed('<ScrollWheelUp><27,0>')
end
screen:expect([[
- ^mouse scrolling {4:│}text |
- {4:│}with |
- {0:~ }{4:│}many |
- {0:~ }{4:│}lines |
- {0:~ }{4:│}to |
- {0:~ }{4:│}test |
+ ^mouse scrolling │text |
+ │with |
+ {0:~ }│many |
+ {0:~ }│lines |
+ {0:~ }│to |
+ {0:~ }│test |
{5:[No Name] [+] }{4:[No Name] [+] }|
to |
test |
@@ -793,12 +793,12 @@ describe('ui/mouse/input', function()
feed('<ScrollWheelUp><27,7><ScrollWheelUp>')
end
screen:expect([[
- ^mouse scrolling {4:│}text |
- {4:│}with |
- {0:~ }{4:│}many |
- {0:~ }{4:│}lines |
- {0:~ }{4:│}to |
- {0:~ }{4:│}test |
+ ^mouse scrolling │text |
+ │with |
+ {0:~ }│many |
+ {0:~ }│lines |
+ {0:~ }│to |
+ {0:~ }│test |
{5:[No Name] [+] }{4:[No Name] [+] }|
Inserting |
text |
diff --git a/test/functional/ui/multigrid_spec.lua b/test/functional/ui/multigrid_spec.lua
index 4e5e9c3a71..20e8821009 100644
--- a/test/functional/ui/multigrid_spec.lua
+++ b/test/functional/ui/multigrid_spec.lua
@@ -77,18 +77,18 @@ describe('ext_multigrid', function()
command('vsplit')
screen:expect{grid=[[
## grid 1
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
{11:[No Name] }{12:[No Name] }|
[3:-----------------------------------------------------]|
## grid 2
@@ -129,18 +129,18 @@ describe('ext_multigrid', function()
command('split')
screen:expect{grid=[[
## grid 1
- [4:--------------------------]{12:│}[5:--------------------------]|
- [4:--------------------------]{12:│}[5:--------------------------]|
- [4:--------------------------]{12:│}[5:--------------------------]|
- [4:--------------------------]{12:│}[5:--------------------------]|
- [4:--------------------------]{12:│}[5:--------------------------]|
- [4:--------------------------]{12:│}[5:--------------------------]|
- [4:--------------------------]{12:│}{11:[No Name] }|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
+ [4:--------------------------]│[5:--------------------------]|
+ [4:--------------------------]│[5:--------------------------]|
+ [4:--------------------------]│[5:--------------------------]|
+ [4:--------------------------]│[5:--------------------------]|
+ [4:--------------------------]│[5:--------------------------]|
+ [4:--------------------------]│[5:--------------------------]|
+ [4:--------------------------]│{11:[No Name] }|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
{12:[No Name] [No Name] }|
[3:-----------------------------------------------------]|
## grid 2
@@ -300,12 +300,12 @@ describe('ext_multigrid', function()
command('vsp')
screen:expect{grid=[[
## grid 1
- [6:--------------------]{12:│}[5:----------------]{12:│}[4:---------------]|
- [6:--------------------]{12:│}[5:----------------]{12:│}[4:---------------]|
- [6:--------------------]{12:│}[5:----------------]{12:│}[4:---------------]|
- [6:--------------------]{12:│}[5:----------------]{12:│}[4:---------------]|
- [6:--------------------]{12:│}[5:----------------]{12:│}[4:---------------]|
- [6:--------------------]{12:│}[5:----------------]{12:│}[4:---------------]|
+ [6:--------------------]│[5:----------------]│[4:---------------]|
+ [6:--------------------]│[5:----------------]│[4:---------------]|
+ [6:--------------------]│[5:----------------]│[4:---------------]|
+ [6:--------------------]│[5:----------------]│[4:---------------]|
+ [6:--------------------]│[5:----------------]│[4:---------------]|
+ [6:--------------------]│[5:----------------]│[4:---------------]|
{11:[No Name] }{12:[No Name] [No Name] }|
[2:-----------------------------------------------------]|
[2:-----------------------------------------------------]|
@@ -347,12 +347,12 @@ describe('ext_multigrid', function()
insert('hello')
screen:expect{grid=[[
## grid 1
- [6:--------------------]{12:│}[5:----------------]{12:│}[4:---------------]|
- [6:--------------------]{12:│}[5:----------------]{12:│}[4:---------------]|
- [6:--------------------]{12:│}[5:----------------]{12:│}[4:---------------]|
- [6:--------------------]{12:│}[5:----------------]{12:│}[4:---------------]|
- [6:--------------------]{12:│}[5:----------------]{12:│}[4:---------------]|
- [6:--------------------]{12:│}[5:----------------]{12:│}[4:---------------]|
+ [6:--------------------]│[5:----------------]│[4:---------------]|
+ [6:--------------------]│[5:----------------]│[4:---------------]|
+ [6:--------------------]│[5:----------------]│[4:---------------]|
+ [6:--------------------]│[5:----------------]│[4:---------------]|
+ [6:--------------------]│[5:----------------]│[4:---------------]|
+ [6:--------------------]│[5:----------------]│[4:---------------]|
{11:[No Name] [+] }{12:[No Name] [+] [No Name] [+] }|
[2:-----------------------------------------------------]|
[2:-----------------------------------------------------]|
@@ -467,18 +467,18 @@ describe('ext_multigrid', function()
command('vsp')
screen:expect{grid=[[
## grid 1
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
{11:[No Name] }{12:[No Name] }|
[3:-----------------------------------------------------]|
## grid 2
@@ -516,18 +516,18 @@ describe('ext_multigrid', function()
command('vertical resize 10')
screen:expect{grid=[[
## grid 1
- [4:----------]{12:│}[2:------------------------------------------]|
- [4:----------]{12:│}[2:------------------------------------------]|
- [4:----------]{12:│}[2:------------------------------------------]|
- [4:----------]{12:│}[2:------------------------------------------]|
- [4:----------]{12:│}[2:------------------------------------------]|
- [4:----------]{12:│}[2:------------------------------------------]|
- [4:----------]{12:│}[2:------------------------------------------]|
- [4:----------]{12:│}[2:------------------------------------------]|
- [4:----------]{12:│}[2:------------------------------------------]|
- [4:----------]{12:│}[2:------------------------------------------]|
- [4:----------]{12:│}[2:------------------------------------------]|
- [4:----------]{12:│}[2:------------------------------------------]|
+ [4:----------]│[2:------------------------------------------]|
+ [4:----------]│[2:------------------------------------------]|
+ [4:----------]│[2:------------------------------------------]|
+ [4:----------]│[2:------------------------------------------]|
+ [4:----------]│[2:------------------------------------------]|
+ [4:----------]│[2:------------------------------------------]|
+ [4:----------]│[2:------------------------------------------]|
+ [4:----------]│[2:------------------------------------------]|
+ [4:----------]│[2:------------------------------------------]|
+ [4:----------]│[2:------------------------------------------]|
+ [4:----------]│[2:------------------------------------------]|
+ [4:----------]│[2:------------------------------------------]|
{11:<No Name] }{12:[No Name] }|
[3:-----------------------------------------------------]|
## grid 2
@@ -565,18 +565,18 @@ describe('ext_multigrid', function()
command('sp')
screen:expect{grid=[[
## grid 1
- [5:--------------------------]{12:│}[2:--------------------------]|
- [5:--------------------------]{12:│}[2:--------------------------]|
- [5:--------------------------]{12:│}[2:--------------------------]|
- [5:--------------------------]{12:│}[2:--------------------------]|
- [5:--------------------------]{12:│}[2:--------------------------]|
- [5:--------------------------]{12:│}[2:--------------------------]|
- {11:[No Name] }{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
+ [5:--------------------------]│[2:--------------------------]|
+ [5:--------------------------]│[2:--------------------------]|
+ [5:--------------------------]│[2:--------------------------]|
+ [5:--------------------------]│[2:--------------------------]|
+ [5:--------------------------]│[2:--------------------------]|
+ [5:--------------------------]│[2:--------------------------]|
+ {11:[No Name] }│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
{12:[No Name] [No Name] }|
[3:-----------------------------------------------------]|
## grid 2
@@ -611,18 +611,18 @@ describe('ext_multigrid', function()
insert('hello')
screen:expect{grid=[[
## grid 1
- [5:--------------------------]{12:│}[2:--------------------------]|
- [5:--------------------------]{12:│}[2:--------------------------]|
- [5:--------------------------]{12:│}[2:--------------------------]|
- [5:--------------------------]{12:│}[2:--------------------------]|
- [5:--------------------------]{12:│}[2:--------------------------]|
- [5:--------------------------]{12:│}[2:--------------------------]|
- {11:[No Name] [+] }{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
+ [5:--------------------------]│[2:--------------------------]|
+ [5:--------------------------]│[2:--------------------------]|
+ [5:--------------------------]│[2:--------------------------]|
+ [5:--------------------------]│[2:--------------------------]|
+ [5:--------------------------]│[2:--------------------------]|
+ [5:--------------------------]│[2:--------------------------]|
+ {11:[No Name] [+] }│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
{12:[No Name] [+] [No Name] [+] }|
[3:-----------------------------------------------------]|
## grid 2
@@ -659,18 +659,18 @@ describe('ext_multigrid', function()
command('vsp')
screen:expect{grid=[[
## grid 1
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
{11:[No Name] }{12:[No Name] }|
[3:-----------------------------------------------------]|
## grid 2
@@ -1056,12 +1056,12 @@ describe('ext_multigrid', function()
command('vsp')
screen:expect{grid=[[
## grid 1
- [5:--------------------------]{12:│}[4:--------------------------]|
- [5:--------------------------]{12:│}[4:--------------------------]|
- [5:--------------------------]{12:│}[4:--------------------------]|
- [5:--------------------------]{12:│}[4:--------------------------]|
- [5:--------------------------]{12:│}[4:--------------------------]|
- [5:--------------------------]{12:│}[4:--------------------------]|
+ [5:--------------------------]│[4:--------------------------]|
+ [5:--------------------------]│[4:--------------------------]|
+ [5:--------------------------]│[4:--------------------------]|
+ [5:--------------------------]│[4:--------------------------]|
+ [5:--------------------------]│[4:--------------------------]|
+ [5:--------------------------]│[4:--------------------------]|
{11:[No Name] }{12:[No Name] }|
[2:-----------------------------------------------------]|
[2:-----------------------------------------------------]|
@@ -1097,12 +1097,12 @@ describe('ext_multigrid', function()
feed(":echoerr 'very' | echoerr 'much' | echoerr 'fail'<cr>")
screen:expect{grid=[[
## grid 1
- [5:--------------------------]{12:│}[4:--------------------------]|
- [5:--------------------------]{12:│}[4:--------------------------]|
- [5:--------------------------]{12:│}[4:--------------------------]|
- [5:--------------------------]{12:│}[4:--------------------------]|
- [5:--------------------------]{12:│}[4:--------------------------]|
- [5:--------------------------]{12:│}[4:--------------------------]|
+ [5:--------------------------]│[4:--------------------------]|
+ [5:--------------------------]│[4:--------------------------]|
+ [5:--------------------------]│[4:--------------------------]|
+ [5:--------------------------]│[4:--------------------------]|
+ [5:--------------------------]│[4:--------------------------]|
+ [5:--------------------------]│[4:--------------------------]|
{11:[No Name] }{12:[No Name] }|
[2:-----------------------------------------------------]|
[2:-----------------------------------------------------]|
@@ -1141,12 +1141,12 @@ describe('ext_multigrid', function()
feed('<cr>')
screen:expect{grid=[[
## grid 1
- [5:--------------------------]{12:│}[4:--------------------------]|
- [5:--------------------------]{12:│}[4:--------------------------]|
- [5:--------------------------]{12:│}[4:--------------------------]|
- [5:--------------------------]{12:│}[4:--------------------------]|
- [5:--------------------------]{12:│}[4:--------------------------]|
- [5:--------------------------]{12:│}[4:--------------------------]|
+ [5:--------------------------]│[4:--------------------------]|
+ [5:--------------------------]│[4:--------------------------]|
+ [5:--------------------------]│[4:--------------------------]|
+ [5:--------------------------]│[4:--------------------------]|
+ [5:--------------------------]│[4:--------------------------]|
+ [5:--------------------------]│[4:--------------------------]|
{11:[No Name] }{12:[No Name] }|
[2:-----------------------------------------------------]|
[2:-----------------------------------------------------]|
@@ -1242,12 +1242,12 @@ describe('ext_multigrid', function()
feed("<c-c>")
screen:expect{grid=[[
## grid 1
- [5:--------------------------]{12:│}[4:--------------------------]|
- [5:--------------------------]{12:│}[4:--------------------------]|
- [5:--------------------------]{12:│}[4:--------------------------]|
- [5:--------------------------]{12:│}[4:--------------------------]|
- [5:--------------------------]{12:│}[4:--------------------------]|
- [5:--------------------------]{12:│}[4:--------------------------]|
+ [5:--------------------------]│[4:--------------------------]|
+ [5:--------------------------]│[4:--------------------------]|
+ [5:--------------------------]│[4:--------------------------]|
+ [5:--------------------------]│[4:--------------------------]|
+ [5:--------------------------]│[4:--------------------------]|
+ [5:--------------------------]│[4:--------------------------]|
{11:[No Name] }{12:[No Name] }|
[2:-----------------------------------------------------]|
[2:-----------------------------------------------------]|
@@ -1285,18 +1285,18 @@ describe('ext_multigrid', function()
command('vsp')
screen:expect{grid=[[
## grid 1
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
{11:[No Name] }{12:[No Name] }|
[3:-----------------------------------------------------]|
## grid 2
@@ -1453,17 +1453,17 @@ describe('ext_multigrid', function()
screen:expect{grid=[[
## grid 1
{7: }{18:2}{7: [No Name] }{16: }{17:2}{16: [No Name] }{12: }{16:X}|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
{11:[No Name] }{12:[No Name] }|
[3:-----------------------------------------------------]|
## grid 2
@@ -1637,18 +1637,18 @@ describe('ext_multigrid', function()
command('tabclose')
screen:expect{grid=[[
## grid 1
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
{11:[No Name] }{12:[No Name] }|
[3:-----------------------------------------------------]|
## grid 2
@@ -1960,13 +1960,13 @@ describe('ext_multigrid', function()
[4:-----------------------------------------------------]|
[4:-----------------------------------------------------]|
{12:[No Name] [+] }|
- [5:--------------------------]{12:│}[2:--------------------------]|
- [5:--------------------------]{12:│}[2:--------------------------]|
- [5:--------------------------]{12:│}[2:--------------------------]|
- [5:--------------------------]{12:│}[2:--------------------------]|
- [5:--------------------------]{12:│}[2:--------------------------]|
- [5:--------------------------]{12:│}[2:--------------------------]|
- [5:--------------------------]{12:│}[2:--------------------------]|
+ [5:--------------------------]│[2:--------------------------]|
+ [5:--------------------------]│[2:--------------------------]|
+ [5:--------------------------]│[2:--------------------------]|
+ [5:--------------------------]│[2:--------------------------]|
+ [5:--------------------------]│[2:--------------------------]|
+ [5:--------------------------]│[2:--------------------------]|
+ [5:--------------------------]│[2:--------------------------]|
{11:[No Name] [+] }{12:[No Name] [+] }|
[3:-----------------------------------------------------]|
## grid 2
@@ -2002,13 +2002,13 @@ describe('ext_multigrid', function()
[4:-----------------------------------------------------]|
[4:-----------------------------------------------------]|
{12:[No Name] [+] }|
- [5:------------------------------]{12:│}[2:----------------------]|
- [5:------------------------------]{12:│}[2:----------------------]|
- [5:------------------------------]{12:│}[2:----------------------]|
- [5:------------------------------]{12:│}[2:----------------------]|
- [5:------------------------------]{12:│}[2:----------------------]|
- [5:------------------------------]{12:│}[2:----------------------]|
- [5:------------------------------]{12:│}[2:----------------------]|
+ [5:------------------------------]│[2:----------------------]|
+ [5:------------------------------]│[2:----------------------]|
+ [5:------------------------------]│[2:----------------------]|
+ [5:------------------------------]│[2:----------------------]|
+ [5:------------------------------]│[2:----------------------]|
+ [5:------------------------------]│[2:----------------------]|
+ [5:------------------------------]│[2:----------------------]|
{11:[No Name] [+] }{12:[No Name] [+] }|
[3:-----------------------------------------------------]|
## grid 2
@@ -2049,18 +2049,18 @@ describe('ext_multigrid', function()
screen:expect{grid=[[
## grid 1
- [4:--------------------------]{12:│}[5:--------------------------]|
- [4:--------------------------]{12:│}[5:--------------------------]|
- [4:--------------------------]{12:│}[5:--------------------------]|
- [4:--------------------------]{12:│}[5:--------------------------]|
- [4:--------------------------]{12:│}[5:--------------------------]|
- [4:--------------------------]{12:│}[5:--------------------------]|
- [4:--------------------------]{12:│}{11:[No Name] [+] }|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
- [4:--------------------------]{12:│}[2:--------------------------]|
+ [4:--------------------------]│[5:--------------------------]|
+ [4:--------------------------]│[5:--------------------------]|
+ [4:--------------------------]│[5:--------------------------]|
+ [4:--------------------------]│[5:--------------------------]|
+ [4:--------------------------]│[5:--------------------------]|
+ [4:--------------------------]│[5:--------------------------]|
+ [4:--------------------------]│{11:[No Name] [+] }|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
+ [4:--------------------------]│[2:--------------------------]|
{12:[No Name] [No Name] }|
[3:-----------------------------------------------------]|
## grid 2
diff --git a/test/functional/ui/popupmenu_spec.lua b/test/functional/ui/popupmenu_spec.lua
index 067d3eef4a..ef65dbd2bd 100644
--- a/test/functional/ui/popupmenu_spec.lua
+++ b/test/functional/ui/popupmenu_spec.lua
@@ -953,72 +953,72 @@ describe('builtin popupmenu', function()
insert('aaa aab aac\n')
feed(':vsplit<cr>')
screen:expect([[
- aaa aab aac {3:│}aaa aab aac|
- ^ {3:│} |
- {1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }|
+ aaa aab aac │aaa aab aac|
+ ^ │ |
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
{4:[No Name] [+] }{3:<Name] [+] }|
:vsplit |
]])
feed('ibbb a<c-x><c-n>')
screen:expect([[
- aaa aab aac {3:│}aaa aab aac|
- bbb aaa^ {3:│}bbb aaa |
- {1:~ }{s: aaa }{1: }{3:│}{1:~ }|
- {1:~ }{n: aab }{1: }{3:│}{1:~ }|
- {1:~ }{n: aac }{1: }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }|
+ aaa aab aac │aaa aab aac|
+ bbb aaa^ │bbb aaa |
+ {1:~ }{s: aaa }{1: }│{1:~ }|
+ {1:~ }{n: aab }{1: }│{1:~ }|
+ {1:~ }{n: aac }{1: }│{1:~ }|
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
{4:[No Name] [+] }{3:<Name] [+] }|
{2:-- }{5:match 1 of 3} |
]])
feed('<esc><c-w><c-w>oc a<c-x><c-n>')
screen:expect([[
- aaa aab aac{3:│}aaa aab aac |
- bbb aaa {3:│}bbb aaa |
- c aaa {3:│}c aaa^ |
- {1:~ }{3:│}{1:~}{s: aaa }{1: }|
- {1:~ }{3:│}{1:~}{n: aab }{1: }|
- {1:~ }{3:│}{1:~}{n: aac }{1: }|
- {1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }|
- {1:~ }{3:│}{1:~ }|
+ aaa aab aac│aaa aab aac |
+ bbb aaa │bbb aaa |
+ c aaa │c aaa^ |
+ {1:~ }│{1:~}{s: aaa }{1: }|
+ {1:~ }│{1:~}{n: aab }{1: }|
+ {1:~ }│{1:~}{n: aac }{1: }|
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
{3:<Name] [+] }{4:[No Name] [+] }|
{2:-- }{5:match 1 of 3} |
]])
diff --git a/test/functional/ui/screen_basic_spec.lua b/test/functional/ui/screen_basic_spec.lua
index 09bcbc2bbd..6c872e52d3 100644
--- a/test/functional/ui/screen_basic_spec.lua
+++ b/test/functional/ui/screen_basic_spec.lua
@@ -326,12 +326,12 @@ local function screen_tests(linegrid)
command('vsp')
command('vsp')
screen:expect([[
- ^ {3:│} {3:│} |
- {0:~ }{3:│}{0:~ }{3:│}{0:~ }|
- {0:~ }{3:│}{0:~ }{3:│}{0:~ }|
- {0:~ }{3:│}{0:~ }{3:│}{0:~ }|
- {0:~ }{3:│}{0:~ }{3:│}{0:~ }|
- {0:~ }{3:│}{0:~ }{3:│}{0:~ }|
+ ^ │ │ |
+ {0:~ }│{0:~ }│{0:~ }|
+ {0:~ }│{0:~ }│{0:~ }|
+ {0:~ }│{0:~ }│{0:~ }|
+ {0:~ }│{0:~ }│{0:~ }|
+ {0:~ }│{0:~ }│{0:~ }|
{1:[No Name] }{3:[No Name] [No Name] }|
|
{0:~ }|
@@ -343,12 +343,12 @@ local function screen_tests(linegrid)
]])
insert('hello')
screen:expect([[
- hell^o {3:│}hello {3:│}hello |
- {0:~ }{3:│}{0:~ }{3:│}{0:~ }|
- {0:~ }{3:│}{0:~ }{3:│}{0:~ }|
- {0:~ }{3:│}{0:~ }{3:│}{0:~ }|
- {0:~ }{3:│}{0:~ }{3:│}{0:~ }|
- {0:~ }{3:│}{0:~ }{3:│}{0:~ }|
+ hell^o │hello │hello |
+ {0:~ }│{0:~ }│{0:~ }|
+ {0:~ }│{0:~ }│{0:~ }|
+ {0:~ }│{0:~ }│{0:~ }|
+ {0:~ }│{0:~ }│{0:~ }|
+ {0:~ }│{0:~ }│{0:~ }|
{1:[No Name] [+] }{3:[No Name] [+] [No Name] [+] }|
hello |
{0:~ }|
@@ -369,12 +369,12 @@ local function screen_tests(linegrid)
command('vsp')
insert('hello')
screen:expect([[
- hell^o {3:│}hello {3:│}hello |
- {0:~ }{3:│}{0:~ }{3:│}{0:~ }|
- {0:~ }{3:│}{0:~ }{3:│}{0:~ }|
- {0:~ }{3:│}{0:~ }{3:│}{0:~ }|
- {0:~ }{3:│}{0:~ }{3:│}{0:~ }|
- {0:~ }{3:│}{0:~ }{3:│}{0:~ }|
+ hell^o │hello │hello |
+ {0:~ }│{0:~ }│{0:~ }|
+ {0:~ }│{0:~ }│{0:~ }|
+ {0:~ }│{0:~ }│{0:~ }|
+ {0:~ }│{0:~ }│{0:~ }|
+ {0:~ }│{0:~ }│{0:~ }|
{1:[No Name] [+] }{3:[No Name] [+] [No Name] [+] }|
hello |
{0:~ }|
@@ -406,12 +406,12 @@ local function screen_tests(linegrid)
command('tabprevious')
screen:expect([[
{2: }{6:4}{2:+ [No Name] }{4: + [No Name] }{3: }{4:X}|
- hell^o {3:│}hello {3:│}hello |
- {0:~ }{3:│}{0:~ }{3:│}{0:~ }|
- {0:~ }{3:│}{0:~ }{3:│}{0:~ }|
- {0:~ }{3:│}{0:~ }{3:│}{0:~ }|
- {0:~ }{3:│}{0:~ }{3:│}{0:~ }|
- {0:~ }{3:│}{0:~ }{3:│}{0:~ }|
+ hell^o │hello │hello |
+ {0:~ }│{0:~ }│{0:~ }|
+ {0:~ }│{0:~ }│{0:~ }|
+ {0:~ }│{0:~ }│{0:~ }|
+ {0:~ }│{0:~ }│{0:~ }|
+ {0:~ }│{0:~ }│{0:~ }|
{1:[No Name] [+] }{3:[No Name] [+] [No Name] [+] }|
hello |
{0:~ }|
@@ -520,36 +520,36 @@ local function screen_tests(linegrid)
command('vsplit')
screen:expect([[
- ^foo {3:│}foo |
- foo {3:│}foo |
- foo {3:│}foo |
- foo {3:│}foo |
- foo {3:│}foo |
- foo {3:│}foo |
- foo {3:│}foo |
- foo {3:│}foo |
- foo {3:│}foo |
- foo {3:│}foo |
- foo {3:│}foo |
- foo {3:│}foo |
+ ^foo │foo |
+ foo │foo |
+ foo │foo |
+ foo │foo |
+ foo │foo |
+ foo │foo |
+ foo │foo |
+ foo │foo |
+ foo │foo |
+ foo │foo |
+ foo │foo |
+ foo │foo |
{1:[No Name] [+] }{3:[No Name] [+] }|
|
]])
feed('<PageDown>')
screen:expect([[
- ^foo {3:│}foo |
- foo {3:│}foo |
- foo {3:│}foo |
- foo {3:│}foo |
- bar {3:│}foo |
- bar {3:│}foo |
- bar {3:│}foo |
- bar {3:│}foo |
- bar {3:│}foo |
- bar {3:│}foo |
- bar {3:│}foo |
- bar {3:│}foo |
+ ^foo │foo |
+ foo │foo |
+ foo │foo |
+ foo │foo |
+ bar │foo |
+ bar │foo |
+ bar │foo |
+ bar │foo |
+ bar │foo |
+ bar │foo |
+ bar │foo |
+ bar │foo |
{1:[No Name] [+] }{3:[No Name] [+] }|
|
]])
@@ -748,12 +748,12 @@ local function screen_tests(linegrid)
command('vsp')
command('vsp')
screen:expect([[
- and {3:│}and {3:│}and |
- clearing {3:│}clearing {3:│}clearing |
- in {3:│}in {3:│}in |
- split {3:│}split {3:│}split |
- windows {3:│}windows {3:│}windows |
- ^ {3:│} {3:│} |
+ and │and │and |
+ clearing │clearing │clearing |
+ in │in │in |
+ split │split │split |
+ windows │windows │windows |
+ ^ │ │ |
{1:[No Name] [+] }{3:[No Name] [+] [No Name] [+] }|
clearing |
in |
@@ -768,12 +768,12 @@ local function screen_tests(linegrid)
it('only affects the current scroll region', function()
feed('6k')
screen:expect([[
- ^scrolling {3:│}and {3:│}and |
- and {3:│}clearing {3:│}clearing |
- clearing {3:│}in {3:│}in |
- in {3:│}split {3:│}split |
- split {3:│}windows {3:│}windows |
- windows {3:│} {3:│} |
+ ^scrolling │and │and |
+ and │clearing │clearing |
+ clearing │in │in |
+ in │split │split |
+ split │windows │windows |
+ windows │ │ |
{1:[No Name] [+] }{3:[No Name] [+] [No Name] [+] }|
clearing |
in |
@@ -785,12 +785,12 @@ local function screen_tests(linegrid)
]])
feed('<c-w>l')
screen:expect([[
- scrolling {3:│}and {3:│}and |
- and {3:│}clearing {3:│}clearing |
- clearing {3:│}in {3:│}in |
- in {3:│}split {3:│}split |
- split {3:│}windows {3:│}windows |
- windows {3:│}^ {3:│} |
+ scrolling │and │and |
+ and │clearing │clearing |
+ clearing │in │in |
+ in │split │split |
+ split │windows │windows |
+ windows │^ │ |
{3:[No Name] [+] }{1:[No Name] [+] }{3:<Name] [+] }|
clearing |
in |
@@ -802,12 +802,12 @@ local function screen_tests(linegrid)
]])
feed('gg')
screen:expect([[
- scrolling {3:│}^Inserting {3:│}and |
- and {3:│}text {3:│}clearing |
- clearing {3:│}with {3:│}in |
- in {3:│}many {3:│}split |
- split {3:│}lines {3:│}windows |
- windows {3:│}to {3:│} |
+ scrolling │^Inserting │and |
+ and │text │clearing |
+ clearing │with │in |
+ in │many │split |
+ split │lines │windows |
+ windows │to │ |
{3:[No Name] [+] }{1:[No Name] [+] }{3:<Name] [+] }|
clearing |
in |
@@ -819,12 +819,12 @@ local function screen_tests(linegrid)
]])
feed('7j')
screen:expect([[
- scrolling {3:│}with {3:│}and |
- and {3:│}many {3:│}clearing |
- clearing {3:│}lines {3:│}in |
- in {3:│}to {3:│}split |
- split {3:│}test {3:│}windows |
- windows {3:│}^scrolling {3:│} |
+ scrolling │with │and |
+ and │many │clearing |
+ clearing │lines │in |
+ in │to │split |
+ split │test │windows |
+ windows │^scrolling │ |
{3:[No Name] [+] }{1:[No Name] [+] }{3:<Name] [+] }|
clearing |
in |
@@ -836,12 +836,12 @@ local function screen_tests(linegrid)
]])
feed('2j')
screen:expect([[
- scrolling {3:│}lines {3:│}and |
- and {3:│}to {3:│}clearing |
- clearing {3:│}test {3:│}in |
- in {3:│}scrolling {3:│}split |
- split {3:│}and {3:│}windows |
- windows {3:│}^clearing {3:│} |
+ scrolling │lines │and |
+ and │to │clearing |
+ clearing │test │in |
+ in │scrolling │split |
+ split │and │windows |
+ windows │^clearing │ |
{3:[No Name] [+] }{1:[No Name] [+] }{3:<Name] [+] }|
clearing |
in |
@@ -853,12 +853,12 @@ local function screen_tests(linegrid)
]])
feed('5k')
screen:expect([[
- scrolling {3:│}^lines {3:│}and |
- and {3:│}to {3:│}clearing |
- clearing {3:│}test {3:│}in |
- in {3:│}scrolling {3:│}split |
- split {3:│}and {3:│}windows |
- windows {3:│}clearing {3:│} |
+ scrolling │^lines │and |
+ and │to │clearing |
+ clearing │test │in |
+ in │scrolling │split |
+ split │and │windows |
+ windows │clearing │ |
{3:[No Name] [+] }{1:[No Name] [+] }{3:<Name] [+] }|
clearing |
in |
@@ -870,12 +870,12 @@ local function screen_tests(linegrid)
]])
feed('k')
screen:expect([[
- scrolling {3:│}^many {3:│}and |
- and {3:│}lines {3:│}clearing |
- clearing {3:│}to {3:│}in |
- in {3:│}test {3:│}split |
- split {3:│}scrolling {3:│}windows |
- windows {3:│}and {3:│} |
+ scrolling │^many │and |
+ and │lines │clearing |
+ clearing │to │in |
+ in │test │split |
+ split │scrolling │windows |
+ windows │and │ |
{3:[No Name] [+] }{1:[No Name] [+] }{3:<Name] [+] }|
clearing |
in |
diff --git a/third-party/CMakeLists.txt b/third-party/CMakeLists.txt
index 21d1f7906a..36965a2e98 100644
--- a/third-party/CMakeLists.txt
+++ b/third-party/CMakeLists.txt
@@ -93,15 +93,6 @@ if(CMAKE_GENERATOR MATCHES "Makefiles")
set(MAKE_PRG "$(MAKE)")
endif()
-if(MINGW AND CMAKE_GENERATOR MATCHES "Ninja")
- find_program(MAKE_PRG NAMES mingw32-make)
- if(NOT MAKE_PRG)
- message(FATAL_ERROR "GNU Make for mingw32 is required to build the dependencies.")
- else()
- message(STATUS "Found GNU Make for mingw32: ${MAKE_PRG}")
- endif()
-endif()
-
if(CMAKE_C_COMPILER_ARG1)
set(DEPS_C_COMPILER "${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1}")
else()
diff --git a/third-party/cmake/BuildLibuv.cmake b/third-party/cmake/BuildLibuv.cmake
index 42650308a8..9d0707201f 100644
--- a/third-party/cmake/BuildLibuv.cmake
+++ b/third-party/cmake/BuildLibuv.cmake
@@ -45,24 +45,11 @@ if(UNIX)
CONFIGURE_COMMAND ${UNIX_CFGCMD} MAKE=${MAKE_PRG}
INSTALL_COMMAND ${MAKE_PRG} V=1 install)
-elseif(MINGW AND CMAKE_CROSSCOMPILING)
- # Build libuv for the host
- BuildLibuv(TARGET libuv_host
- CONFIGURE_COMMAND sh ${DEPS_BUILD_DIR}/src/libuv_host/autogen.sh && ${DEPS_BUILD_DIR}/src/libuv_host/configure --with-pic --disable-shared --prefix=${HOSTDEPS_INSTALL_DIR} CC=${HOST_C_COMPILER}
- INSTALL_COMMAND ${MAKE_PRG} V=1 install)
-
- # Build libuv for the target
- BuildLibuv(
- CONFIGURE_COMMAND ${UNIX_CFGCMD} --host=${CROSS_TARGET}
- INSTALL_COMMAND ${MAKE_PRG} V=1 install)
-
elseif(WIN32)
set(UV_OUTPUT_DIR ${DEPS_BUILD_DIR}/src/libuv/${CMAKE_BUILD_TYPE})
if(MSVC)
set(BUILD_SHARED ON)
- elseif(MINGW)
- set(BUILD_SHARED OFF)
else()
message(FATAL_ERROR "Trying to build libuv in an unsupported system ${CMAKE_SYSTEM_NAME}/${CMAKE_C_COMPILER_ID}")
endif()
diff --git a/third-party/cmake/BuildLua.cmake b/third-party/cmake/BuildLua.cmake
index a40cb7dcb2..02f762234b 100644
--- a/third-party/cmake/BuildLua.cmake
+++ b/third-party/cmake/BuildLua.cmake
@@ -39,8 +39,6 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
set(LUA_TARGET freebsd)
elseif(CMAKE_SYSTEM_NAME MATCHES "BSD")
set(CMAKE_LUA_TARGET bsd)
-elseif(CMAKE_SYSTEM_NAME MATCHES "^MINGW")
- set(CMAKE_LUA_TARGET mingw)
else()
if(UNIX)
set(LUA_TARGET posix)
diff --git a/third-party/cmake/BuildLuajit.cmake b/third-party/cmake/BuildLuajit.cmake
index e02d7fe609..9c0a6cfba2 100644
--- a/third-party/cmake/BuildLuajit.cmake
+++ b/third-party/cmake/BuildLuajit.cmake
@@ -76,57 +76,6 @@ if(UNIX)
CC=${DEPS_C_COMPILER} PREFIX=${DEPS_INSTALL_DIR}
${DEPLOYMENT_TARGET})
-elseif(MINGW AND CMAKE_CROSSCOMPILING)
-
- # Build luajit for the host
- BuildLuaJit(TARGET luajit_host
- CONFIGURE_COMMAND ""
- BUILD_COMMAND ""
- INSTALL_COMMAND ${INSTALLCMD_UNIX}
- CC=${HOST_C_COMPILER} PREFIX=${HOSTDEPS_INSTALL_DIR})
-
- # Build luajit for the target
- BuildLuaJit(
- # Similar to Unix + cross - fPIC
- INSTALL_COMMAND
- ${MAKE_PRG} PREFIX=${DEPS_INSTALL_DIR}
- BUILDMODE=static install
- TARGET_SYS=${CMAKE_SYSTEM_NAME}
- CROSS=${CROSS_TARGET}-
- HOST_CC=${HOST_C_COMPILER} HOST_CFLAGS=${HOST_C_FLAGS}
- HOST_LDFLAGS=${HOST_EXE_LINKER_FLAGS}
- FILE_T=luajit.exe
- Q=
- INSTALL_TSYMNAME=luajit.exe)
-
-elseif(MINGW)
-
- if(CMAKE_GENERATOR MATCHES "Ninja")
- set(LUAJIT_MAKE_PRG ${MAKE_PRG})
- else()
- set(LUAJIT_MAKE_PRG ${CMAKE_MAKE_PROGRAM})
- endif()
- BuildLuaJit(BUILD_COMMAND ${LUAJIT_MAKE_PRG} CC=${DEPS_C_COMPILER}
- PREFIX=${DEPS_INSTALL_DIR}
- CFLAGS+=-DLUA_USE_APICHECK
- CFLAGS+=-funwind-tables
- CCDEBUG+=-g
- BUILDMODE=static
- # Build a DLL too
- COMMAND ${LUAJIT_MAKE_PRG} CC=${DEPS_C_COMPILER} BUILDMODE=dynamic
-
- INSTALL_COMMAND ${CMAKE_COMMAND} -E make_directory ${DEPS_INSTALL_DIR}/bin
- COMMAND ${CMAKE_COMMAND} -E copy ${DEPS_BUILD_DIR}/src/luajit/src/luajit.exe ${DEPS_INSTALL_DIR}/bin
- COMMAND ${CMAKE_COMMAND} -E copy ${DEPS_BUILD_DIR}/src/luajit/src/lua51.dll ${DEPS_INSTALL_DIR}/bin
- COMMAND ${CMAKE_COMMAND} -E make_directory ${DEPS_INSTALL_DIR}/lib
- # Luarocks searches for lua51.dll in lib
- COMMAND ${CMAKE_COMMAND} -E copy ${DEPS_BUILD_DIR}/src/luajit/src/lua51.dll ${DEPS_INSTALL_DIR}/lib
- COMMAND ${CMAKE_COMMAND} -E copy ${DEPS_BUILD_DIR}/src/luajit/src/libluajit.a ${DEPS_INSTALL_DIR}/lib
- COMMAND ${CMAKE_COMMAND} -E make_directory ${DEPS_INSTALL_DIR}/include/luajit-2.1
- COMMAND ${CMAKE_COMMAND} -DFROM_GLOB=${DEPS_BUILD_DIR}/src/luajit/src/*.h -DTO=${DEPS_INSTALL_DIR}/include/luajit-2.1 -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/CopyFilesGlob.cmake
- COMMAND ${CMAKE_COMMAND} -E make_directory ${DEPS_INSTALL_DIR}/bin/lua/jit
- COMMAND ${CMAKE_COMMAND} -E copy_directory ${DEPS_BUILD_DIR}/src/luajit/src/jit ${DEPS_INSTALL_DIR}/bin/lua/jit
- )
elseif(MSVC)
BuildLuaJit(
diff --git a/third-party/cmake/BuildLuarocks.cmake b/third-party/cmake/BuildLuarocks.cmake
index 244d1d9fb8..98783d533e 100644
--- a/third-party/cmake/BuildLuarocks.cmake
+++ b/third-party/cmake/BuildLuarocks.cmake
@@ -56,7 +56,7 @@ endif()
# Defaults to 5.1 for bundled LuaJIT/Lua.
set(LUA_VERSION "5.1")
-if(UNIX OR (MINGW AND CMAKE_CROSSCOMPILING))
+if(UNIX)
if(USE_BUNDLED_LUAJIT)
list(APPEND LUAROCKS_OPTS
@@ -94,13 +94,9 @@ if(UNIX OR (MINGW AND CMAKE_CROSSCOMPILING))
CONFIGURE_COMMAND ${DEPS_BUILD_DIR}/src/luarocks/configure
--prefix=${HOSTDEPS_INSTALL_DIR} --force-config ${LUAROCKS_OPTS}
INSTALL_COMMAND ${MAKE_PRG} -j1 bootstrap)
-elseif(MSVC OR MINGW)
+elseif(MSVC)
- if(MINGW)
- set(COMPILER_FLAG /MW)
- elseif(MSVC)
- set(COMPILER_FLAG /MSVC)
- endif()
+ set(COMPILER_FLAG /MSVC)
# Ignore USE_BUNDLED_LUAJIT - always ON for native Win32
BuildLuarocks(INSTALL_COMMAND install.bat /FORCECONFIG /NOREG /NOADMIN /Q /F
@@ -123,9 +119,6 @@ list(APPEND THIRD_PARTY_DEPS luarocks)
if(USE_BUNDLED_LUAJIT)
add_dependencies(luarocks luajit)
- if(MINGW AND CMAKE_CROSSCOMPILING)
- add_dependencies(luarocks luajit_host)
- endif()
elseif(USE_BUNDLED_LUA)
add_dependencies(luarocks lua)
endif()
@@ -196,9 +189,6 @@ if(USE_BUNDLED_BUSTED)
set(LUV_DEPS luacheck)
if(USE_BUNDLED_LUV)
list(APPEND LUV_DEPS luv-static lua-compat-5.3)
- if(MINGW AND CMAKE_CROSSCOMPILING)
- list(APPEND LUV_DEPS libuv_host)
- endif()
set(LUV_ARGS "CFLAGS=-O0 -g3 -fPIC")
if(USE_BUNDLED_LIBUV)
list(APPEND LUV_ARGS LIBUV_DIR=${HOSTDEPS_INSTALL_DIR})
diff --git a/third-party/cmake/BuildLuv.cmake b/third-party/cmake/BuildLuv.cmake
index 99822249c2..001f5a325a 100644
--- a/third-party/cmake/BuildLuv.cmake
+++ b/third-party/cmake/BuildLuv.cmake
@@ -91,16 +91,7 @@ if(USE_BUNDLED_LIBUV)
-DCMAKE_PREFIX_PATH=${DEPS_INSTALL_DIR})
endif()
-if(MINGW AND CMAKE_CROSSCOMPILING)
- get_filename_component(TOOLCHAIN ${CMAKE_TOOLCHAIN_FILE} REALPATH)
- set(LUV_CONFIGURE_COMMAND
- ${LUV_CONFIGURE_COMMAND_COMMON}
- # Pass toolchain
- -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN}
- "-DCMAKE_C_FLAGS:STRING=${LUV_INCLUDE_FLAGS} -D_WIN32_WINNT=0x0600"
- # Hack to avoid -rdynamic in Mingw
- -DCMAKE_SHARED_LIBRARY_LINK_C_FLAGS="")
-elseif(MSVC)
+if(MSVC)
set(LUV_CONFIGURE_COMMAND
${LUV_CONFIGURE_COMMAND_COMMON}
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
diff --git a/third-party/cmake/BuildMsgpack.cmake b/third-party/cmake/BuildMsgpack.cmake
index f66a3bdd32..a89c1e34d0 100644
--- a/third-party/cmake/BuildMsgpack.cmake
+++ b/third-party/cmake/BuildMsgpack.cmake
@@ -42,18 +42,7 @@ set(MSGPACK_CONFIGURE_COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/msgpack
set(MSGPACK_BUILD_COMMAND ${CMAKE_COMMAND} --build . --config ${CMAKE_BUILD_TYPE})
set(MSGPACK_INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config ${CMAKE_BUILD_TYPE})
-if(MINGW AND CMAKE_CROSSCOMPILING)
- get_filename_component(TOOLCHAIN ${CMAKE_TOOLCHAIN_FILE} REALPATH)
- set(MSGPACK_CONFIGURE_COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/msgpack
- -DMSGPACK_BUILD_TESTS=OFF
- -DMSGPACK_BUILD_EXAMPLES=OFF
- -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR}
- # Pass toolchain
- -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN}
- -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
- # Hack to avoid -rdynamic in Mingw
- -DCMAKE_SHARED_LIBRARY_LINK_C_FLAGS="")
-elseif(MSVC)
+if(MSVC)
# Same as Unix without fPIC
set(MSGPACK_CONFIGURE_COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/msgpack
-DMSGPACK_BUILD_TESTS=OFF