aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
| * tui: Change terminal family recognition to avoid '+' entries.Jonathan de Boyne Pollard2017-06-03
| | | | | | | | | | The terminfo commentary states that these are not standalone entries suitable for end-use.
| * tui: Add st to the always 256-colour capable list.Jonathan de Boyne Pollard2017-06-03
| | | | | | | | Also comment and augment some terminal colour tests.
| * tui: Correct a copy and paste error in stterm tests.Jonathan de Boyne Pollard2017-06-03
| | | | | | | | The test decsription was correct; the test was not.
| * tui: Fix Interix and account for deferred wrap.Jonathan de Boyne Pollard2017-06-03
| | | | | | | | | | | | | | The Interix termcap entry is missing the carriage_return capability which nvim relies upon. And Interix is one of the few terminal emulators that does not defer automatic wrap at the right margin, which is now accounted for when moving the cursor left and when outputting whole lines at a time.
| * tui: Add iTerm and rxvt to the terminals that know extended DECSCUSR.Jonathan de Boyne Pollard2017-06-03
| |
| * tui: Update colour tests some more.Jonathan de Boyne Pollard2017-06-03
| |
| * tui: Correct error in terminfo extension processing.Jonathan de Boyne Pollard2017-06-03
| | | | | | | | | | Using the right unibilium query function then revealed a latent NULL pointer problem.
| * tui: Correct error in terminfo extension processing.Jonathan de Boyne Pollard2017-06-03
| | | | | | | | | | Using the wrong unibilium query function just happened to work with the various terminfo records used in local testing.
| * tui: Remove now-unused flag variable.Jonathan de Boyne Pollard2017-06-03
| | | | | | | | Follows on from fcf0d13f48bffbd41749069ce383d01153dd960c.
| * tui: Update colour tests.Jonathan de Boyne Pollard2017-06-03
| |
| * tui: Remove tmux wrapper from the Konsole path.Jonathan de Boyne Pollard2017-06-03
| | | | | | | | | | | | | | tmux has its own code path, now; and the tmux wrapping was not the ideal thing to do in the first place. Also improve the commentary on the built-in terminfo records.
| * tui: Improvements to RGB colour support.Jonathan de Boyne Pollard2017-06-03
| | | | | | | | | | | | | | | | The details are in the on-line help under :help true-color . The brief precis is that nvim is (I hope.) converging with tmux and libvte. It is taking the same approach with setrgbf and setrgbb terminfo capabilities that it does with the Ss and Se terminfo capabilities.
| * tui: Refactor built-in teminfo records.Jonathan de Boyne Pollard2017-06-03
| | | | | | | | | | No change to their contents, but make the Big Blocks Of Numbers half as wide but twice as deep, in order to accomodate house style.
| * tui: Update fallback terminfo records.Jonathan de Boyne Pollard2017-06-03
| | | | | | | | | | Replace the 8-color xterm from unibilium with the 256-colour one from terminfo. Add a fallback record for suckless terminal.
| * tui: Spelling corrections in doco and commentaryJonathan de Boyne Pollard2017-06-03
| |
| * tui: Fix conflict with predefined "linux" macro.Jonathan de Boyne Pollard2017-06-03
| |
| * doco: Replace termcap with terminfo where appropriate.Jonathan de Boyne Pollard2017-06-03
| | | | | | | | Also document better what to do on slow terminals.
| * tui: More refactoring, and improvements to cursor shape support.Jonathan de Boyne Pollard2017-06-03
| | | | | | | | | | | | | | | | The details are in the on-line help under :help cursor-shape . The brief precis is that nvim is following the lead of tmux, and going beyond what tmux does to make cursor shape changes work on a broad range of terminals. This includes on tmux itself, which is no longer bypassed.
| * tui: Disable interference in guicursor by higher layers.Jonathan de Boyne Pollard2017-06-03
| | | | | | | | | | | | | | | | | | | | Ironically, higher layers trying to be "smart" about the terminal type but not actually being very smart at all, makes it more difficult rather than less to correct the TUI layer. Note that this orphans the os_term_is_nice() function and down the road, presuming that we do not have to revert this, that function can be removed. It incorporates knowledge of terminal types and behaviours in the wrong place.
| * tui: Split fix_terminfo() up and refactor.Jonathan de Boyne Pollard2017-06-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are now a few built-in terminfo entries, taken either from unibilium or ncurses terminfo, for falling back upon when there is no terminfo database or when it is missing stuff. In an ideal world, these would be in unibilium itself. The ultimate fallback, for no terminfo database and no built-in terminfo record that matches the terminal type, is now the "ansi" terminal type; so unknown terminal types are now considered to have at minimum the basic ECMA-48 colour, motion, and editing capabilities. The terminfo records are just blobs, raw images of the equivalent terminfo file created with the od command. No longer are incomplete terminfo records built up with code. These blobs are the full, real, records; already built. The post-processing of the terminfo record, once found, is split into the part where we fix known errors and deficiencies in terminfo, and the part where we add extensions that we need that terminfo does not define capabilities for. In an ideal world, the former would be a no-op. No part of the TUI layer apart from these is aware of terminal type or has conditional code based upon checking environment variables at runtime. It is all pre-calculated and written into unibilium (or the TUIData object) at initialization time. This is fairly aggressive about turning on 256-colour and true colour support. This also positively decodes genuine xterm for turning on DECSLRM use, rather than assuming that anything that says that it is xterm is actually xterm, fixing scrolling problems with vertically split windows.
| * doc: Document some more terminal behaviours.Jonathan de Boyne Pollard2017-06-03
| | | | | | | | | | | | | | | | This documents 256-colour and true colour handling, cursor shapes, and scrolling regions. Almost all of these headings are taken from the Vim doco, so that the :help commands that people learn are a transferable skill.
| * doc: Relegate xterm-8bit to a removed feature.Jonathan de Boyne Pollard2017-06-03
| |
| * tui: Fix cursor motion clear screen bug visible on line #1 in redraws.Jonathan de Boyne Pollard2017-06-03
| | | | | | | | | | The clear_screen capability moves the cursor position. This needs to be accounted for.
| * tui: Coding style changes onlyJonathan de Boyne Pollard2017-06-03
| | | | | | | | Per warnings about house style from automated tools.
| * tui: Optimize more cursor motionsJonathan de Boyne Pollard2017-06-03
| | | | | | | | A slight improvement on the CR optimization for some edge cases.
| * tui: Use what scrolling PuTTY has.Jonathan de Boyne Pollard2017-06-03
| | | | | | | | | | | | PuTTY does not implement DECLRMM or DECSLRM, but it does implement DECSTBM. So allow using PuTTY terminal scrolling when the scroll rectangle is the full width of the terminal.
| * tui: Optimize cursor motionsJonathan de Boyne Pollard2017-06-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of emitting CUP in several places each with their own poor local optimizations, funnel all cursor motion through a central place. This central function performs the same optimization for every place that needs to move the cursor, and implements a better set of optimizations: * Emit CUU/CUD/CUF/CUB instad of CUP when they are likely shorter. * Use BS and LF when they are shorter than CUB and CUD. * Use CR for quick returns to column zero. * If printing the next few characters is shorter than a rightwards motion, then just write out the characters.
| * tui: Eliminate superfluous SGR resets.Jonathan de Boyne Pollard2017-06-03
| | | | | | | | | | Track whether the terminal is in no attribute mode, assuming that it starts this way, and do not attempt to reset back to that mode if already in it.
| * tui: document fix_terminfo()'s several tasksJonathan de Boyne Pollard2017-06-03
| |
| * Separate 16- and 256- colour control sequences and tidy up some redundancy.Jonathan de Boyne Pollard2017-06-03
| |
| * Change TUI resize to use an extended terminal capability.Jonathan de Boyne Pollard2017-06-03
| | | | | | | | | | ... rather than hardwiring the string and testing the terminal type every time the screen is re-sized.
* | Merge pull request #6969 from jamessan/ttimeoutlenJames McCoy2017-07-06
|\ \ | | | | | | options: Default to 'ttimeout' and 'ttimeoutlen=50'
| * | options: Default to 'ttimeout' and 'ttimeoutlen=50'Paul "LeoNerd" Evans2017-07-05
|/ / | | | | | | | | This gives libtermkey 50msec to reassemble split multibyte sequences like DCSes.
* | Merge #6959 from ZyX-I/pvs-fixesJustin M. Keyes2017-07-04
|\ \
| * | bufhl_defs: Silence V512: buffer underflowZyX2017-07-04
| | |
| * | main: Flush file in place of closing it, also do error reportingZyX2017-07-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Apparently on travis OS X systems it crashes when cleaning up streams with stdout closed: (lldb) bt all * thread #1: tid = 0x0000, 0x00007fff8703df06 libsystem_kernel.dylib`__pthread_kill + 10, stop reason = signal SIGSTOP * frame #0: 0x00007fff8703df06 libsystem_kernel.dylib`__pthread_kill + 10 frame #1: 0x00007fff93a764ec libsystem_pthread.dylib`pthread_kill + 90 frame #2: 0x00007fff97c056df libsystem_c.dylib`abort + 129 frame #3: 0x00007fff97bccdd8 libsystem_c.dylib`__assert_rtn + 321 frame #4: 0x0000000107a4e106 nvim`uv__close(fd=<unavailable>) + 102 at core.c:521 frame #5: 0x0000000107a5307d nvim`uv__loop_close(loop=0x00007fff5847c018) + 77 at loop.c:118 frame #6: 0x0000000107a4d149 nvim`uv_loop_close(loop=0x00007fff5847c018) + 57 at uv-common.c:626 frame #7: 0x000000010783e5bc nvim`stream_set_blocking(fd=0, blocking=true) + 204 at stream.c:34 frame #8: 0x000000010795d66b nvim`mch_exit(r=0) + 91 at os_unix.c:147 frame #9: 0x00000001078d5663 nvim`command_line_scan(parmp=0x00007fff5847c760) + 1779 at main.c:787 frame #10: 0x00000001078d4393 nvim`main(argc=2, argv=0x00007fff5847c898) + 163 at main.c:249 frame #11: 0x00007fff8cdd65ad libdyld.dylib`start + 1 frame #12: 0x00007fff8cdd65ad libdyld.dylib`start + 1
| * | terminal: Silence -V666 error: value not correspond with string lengthZyX2017-07-04
| | | | | | | | | | | | | | | Looks like calling this function below with 4-character first strings made PVS think that OPT_LOCAL (it is equal to 4) is a string length.
| * | syntax: Fix V763: parameter always rewritten before being usedZyX2017-07-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the result of malloc error handling elimination: push_current_state() used to (not) return OK depending on whether growing garray failed or not and this return was checked, if errorred out push_next_match() will simply return its argument unchanged. Now when allocations are supposed to either always succeed or crash Neovim this check was returned, push_current_state() was stripped of its return value and moved out of if() condition, resulting in V763.
| * | spell: Silence V512: buffer underflowZyX2017-07-04
| | |
| * | spell: Fix V728: excessive checkZyX2017-07-04
| | |
| * | regexp: Silence V595: potential null dereferenceZyX2017-07-04
| | | | | | | | | | | | The code uses 2-iteration loop antipattern: retval is NULL on first iteration, not NULL on second, yet this is still a false positive.
| * | normal: Fix V728: excessive checkZyX2017-07-04
| | |
| * | main: Use msgpack_file_write in place of “fbuffer”ZyX2017-07-04
| | | | | | | | | | | | Apparently the latter is not a part of the public C API.
| * | os: Add OS_STD*_FILENO constantsZyX2017-07-04
| | |
| * | os/fileio: Add ability to use os/fileio.c for file descriptorsZyX2017-07-04
| | | | | | | | | | | | Code imported from #6299
| * | os/fileio: Add msgpack_file_write functionZyX2017-07-04
| | |
| * | main: Fix V522: potential NULL dereferenceZyX2017-07-04
| | | | | | | | | | | | | | | It is useless to use sbuffer here and print that to stdout, just using “fbuffer” instead.
| * | ex_getln: Silent V519: value is assigned twice successivelyZyX2017-07-04
| | | | | | | | | This is usual “passing data via global” false positive.
| * | socket: Silence V641: buf size is not multiple of what it is cast toZyX2017-07-04
| | |
| * | charset: Fix V728: excessive checkZyX2017-07-04
| | |