diff options
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(®match, (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(®parse); + } if (endc == 0) { endc = mb_ptr2char_adv((const char_u **)®parse); } // 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, ®_startzpos[no], - ®_startzp[no]); + ®_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, ®_endzpos[no], - ®_endzp[no]); + ®_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(®stack, 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(®stack, 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, ®_startzpos[rp->rs_no], - ®_startzp[rp->rs_no]); + ®_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, ®_endzpos[rp->rs_no], - ®_endzp[rp->rs_no]); + ®_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(®stack) || 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(®stack); - 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(®parse); if (charclass == CLASS_NONE) { equiclass = get_equi_class(®parse); - if (equiclass == 0) + if (equiclass == 0) { collclass = get_coll_element(®parse); + } } - /* 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 |