aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
| * | | | | | ex_getln: Do not goto color_cmdline_end without first cleaning upZyX2017-07-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The issue with debug mode was actually not cleaning up after `try_enter`: location `&tstate` was pointing to got invalidated and received some “garbage” (actually, values that got stored on the stack afterwards). But pointer to that garbage was still stored in `msg_list`, so next attempt to check it resulted in a crash.
| * | | | | | api helpers: Save/restore more values in try_enter/try_leaveZyX2017-07-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes memory leak reported by ASAN. This also somehow fixes test40, though I have no idea why except that that test yields memory leak report.
| * | | | | | oldtests: Use $(TOOL) in place of $(VALGRIND)ZyX2017-07-16
| | | | | | |
| * | | | | | Merge branch 'master' into colored-cmdlineZyX2017-07-15
| |\ \ \ \ \ \
| * | | | | | | ex_getln: Save and restore try stateZyX2017-07-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: when processing cycle such as :for pat in [' \ze*', ' \zs*'] : try : let l = matchlist('x x', pat) : $put ='E888 NOT detected for ' . pat : catch : $put ='E888 detected for ' . pat : endtry :endfor `:let l = …` throwing an error causes this error to be caught after color_cmdline attempts to get callback for highlighting next line (the one with `$put = 'E888 NOT…`). Saving/restoring state prevents this from happening.
| * | | | | | | ex_getln: Do not make <C-c> interrupt input() after interrupting hl cbZyX2017-06-28
| | | | | | | |
| * | | | | | | ex_getln: Fix indentZyX2017-06-28
| | | | | | | |
| * | | | | | | ex_getln: Make sure standard error reporting facility is not usedZyX2017-06-28
| | | | | | | |
| * | | | | | | ex_getln: Fix “echoerr msg not shown” problemZyX2017-06-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This also attempted to fix problem with cancelling input() on error by avoiding standard error printing facilities (assumed thrown error message is the problem), but with no luck so far.
| * | | | | | | ex_getln: Call highlight callback inside :tryZyX2017-06-28
| | | | | | | |
| * | | | | | | ex_getln: Enable coloring for expression modeZyX2017-06-27
| | | | | | | |
| * | | | | | | eval,ex_getln: Add support for coloring input() promptsZyX2017-06-27
| | | | | | | |
| * | | | | | | ex_getln: Add some more tests, fix some found errorsZyX2017-06-27
| | | | | | | |
| * | | | | | | ex_getln: Add basic support for coloring command-line promptZyX2017-06-27
| | | | | | | |
| * | | | | | | ex_getln: Do not do arabic shaping unless neededZyX2017-06-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Should speed up execution without arabic characters a bit, slowing down with arabic characters. More necessary, this allows coloring prompt without caring about arabic shaping at the first iteration.
| * | | | | | | ex_getln: Clean up draw_cmdline a bitZyX2017-06-27
| | | | | | | |
* | | | | | | | doc: screen_resize(): remove mention of "mustset"Justin M. Keyes2017-08-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "mustset" is from Vim term.c:set_shellsize(), not relevant here: we behave as if mustset=true always.
* | | | | | | | ui: disable 'lazyredraw' during ui_refresh.Justin M. Keyes2017-08-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Could also try `do_redraw = true` instead of save/restore `p_lz`, but the nice thing about save/restore of `p_lz` is that it is "atomic". The semantics of `do_redraw` are not clear to me. Closes #4884 References #6202 References https://github.com/neovim/neovim/pull/6202#issuecomment-284379503 References #3929 #5692 #6157 References #5866
* | | | | | | | io: more guards against NULL filename (#7159)Justin M. Keyes2017-08-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | References ac055d677aa9 References #4370
* | | | | | | | lua/executor: Fix crash when printing empty string (#7157)Nikolai Aleksandrovich Pavlov2017-08-13
| | | | | | | |
* | | | | | | | tui: fix DECSCUSR logic #6997Sebastian Parborg2017-08-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix linuxvt cursor shape codes Fix konsole cursor_shapes (even when inside tmux) Do not trust old VTE terminal lies Closes #6978 Closes #7002 Closes #7049
* | | | | | | | vim-patch:8.0.0235Justin M. Keyes2017-08-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Memory leak detected when running tests for diff mode. Solution: Free p_extra_free. https://github.com/vim/vim/commit/b031c4ea04eb1e37a873fbb85e90d835aa1e2b1c
* | | | | | | | oldtest: cannot `:set term` in NvimJustin M. Keyes2017-08-12
| | | | | | | |
* | | | | | | | vim-patch:8.0.0524Justin M. Keyes2017-08-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Folds are messed up when 'encodin' is "utf-8". Solution: Also set the fold character when it's not multi-byte. https://github.com/vim/vim/commit/8da1e6cedf839902e15987a98733ebd31b5f1b81
* | | | | | | | vim-patch:8.0.0518Justin M. Keyes2017-08-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Closes #7086 Problem: Storing a zero byte from a multi-byte character causes fold text to show up wrong. Solution: Avoid putting zero in ScreenLines. (Christian Brabandt, closes vim/vim#1567) https://github.com/vim/vim/commit/c6cd8409c2993b1476e123fba11cb4b8d743b896
* | | | | | | | vim-patch:8.0.0290 vim-patch:8.0.0394Justin M. Keyes2017-08-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | vim-patch:8.0.0290: cursor positioning wrong if wide character wraps Problem: If a wide character doesn't fit at the end of the screen line, and the line doesn't fit on the screen, then the cursor position may be wrong. (anliting) Solution: Don't skip over wide character. (Christian Brabandt, closes vim/1408) vim-patch:8.0.0394 Problem: Tabs are not aligned when scrolling horizontally and a Tab doesn't fit. (Axel Bender) Solution: Handle a Tab as a not fitting character. (Christian Brabandt) Also fix that ":redraw" does not scroll horizontally to show the cursor. And fix the test that depended on the old behavior. https://github.com/vim/vim/commit/abc39ab642791ae3d22a524516eeedb673a95d9d
* | | | | | | | vim-patch:8.0.0311Justin M. Keyes2017-08-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Linebreak tests are old style. Solution: Turn the tests into new style. Share utility functions. (Ozaki Kiichi, closes vim/vim#1444) https://github.com/vim/vim/commit/544d3bc9f0e494cb712a33b61558b8e8e12b1e0b
* | | | | | | | vim-patch:8.0.0128Justin M. Keyes2017-08-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Display test fails on MS-Windows. Solution: Set 'isprint' to "@". https://github.com/vim/vim/commit/7089237885218eb8a19805bc2b75481c4efcd6ba
* | | | | | | | vim-patch:8.0.0126Justin M. Keyes2017-08-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Display problem with 'foldcolumn' and a wide character. (esiegerman) Solution: Don't use "extra" but an allocated buffer. (Christian Brabandt, closes vim/vim#1310) https://github.com/vim/vim/commit/6270660611a151c5d0f614a5f0248ccdc80ed971
* | | | | | | | vim-patch:8.0.0090 fix breakindent bugJustin M. Keyes2017-08-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (original Vim commit-message is bogus) https://github.com/vim/vim/commit/6c896867c4f5d759616028ef7cbfce2a9ed32600
* | | | | | | | coverity/166184: Check length of str, not termJames McCoy2017-08-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 32396b5879b429def1c48948069c55366d41b9be add length checks to TERMINAL_FAMILY/STARTS_WITH to ensure memcmp() wouldn't read past the end of the string. However, "term" was copy/pasted from TERMINAL_FAMILY so STARTS_WITH() was unnecessarily reading the, potentially NULL, term variable.
* | | | | | | | Merge pull request #7143 from jamessan/log_callstack_to_fileJames McCoy2017-08-11
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | log: Add log_callstack_to_file()
| * | | | | | | | log: Add log_callstack_to_file()James McCoy2017-08-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes it trivial to log the callstack to, e.g., stderr, which can simplify debug cycles.
* | | | | | | | | vim-patch:8.0.0165 (#7132)KunMing Xie2017-08-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Ubsan warns for integer overflow. Solution: Swap two conditions. (Dominique Pelle) https://github.com/vim/vim/commit/f446b48ff0bffae2b453cd4f9e3c25dfe363d29d
* | | | | | | | | buf_write(): handle NULL fname on non-unixJustin M. Keyes2017-08-10
| | | | | | | | |
* | | | | | | | | os_stat: return ENOENT on NULL filename argJames McCoy2017-08-10
| |_|_|_|_|_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Closes #4370 Explication: In the backtrace in #4370, we see that `buf_write()` was called with non-NULL `fname` and `sfname` arguments, but they've since _become_ NULL. #7 0x00000000004de09d in buf_write (buf=0x1dee040, fname=0x0, fname@entry=0x1e985b0 "/home/sean/src/github.com/snczl/virta/pkg/meld/segment.go", sfname=0x0, sfname@entry=0x1ddfa60 "segment.go", start=1, end=72, eap=eap@entry=0x7ffc6b032e60, append=0, forceit=0, reset_changed=1, filtering=0) at /home/travis/build/neovim/bot-ci/build/neovim/src/nvim/fileio.c:2576 This is most likely due to the code that restores those values from `buf`, which happens just before the fatal call to `os_fileinfo` ```c /* * The autocommands may have changed the name of the buffer, which may * be kept in fname, ffname and sfname. */ if (buf_ffname) ffname = buf->b_ffname; if (buf_sfname) sfname = buf->b_sfname; if (buf_fname_f) fname = buf->b_ffname; if (buf_fname_s) fname = buf->b_sfname; ``` It's worth noting that at this point `ffname` is still non-NULL, so it _could_ be used. However, our current code is purely more strict than Vim in this area, which has caused us problems before (e.g., `getdigits()`). The commentary for `struct file_buffer` clearly indicate that all of `b_ffname`, `b_sfname`, and `b_fname` may be NULL: ```c /* * 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 */ char_u *b_sfname; /* short file name */ char_u *b_fname; /* current file name */ ``` Vim directly calls `stat(2)` which, although it is annotated to tell the compiler that the path argument is non-NULL, does handle a NULL pointer by returning a `-1` value and setting `errno` to `EFAULT`. This satisfies Vim's check, since it treats any `-1` return from `stat(2)` to mean the file doesn't exist (at least in this code path). Note that Vim's mch_stat() implementations on win32 and solaris clearly cannot accept NULL `name`. But the codepaths that call mch_stat will NULL `name` tend to be unix-only (eg: u_read_undo)!
* | | | | | | | Merge #7134 from justinmk/oldtest-tmpdirJustin M. Keyes2017-08-09
|\ \ \ \ \ \ \ \
| * | | | | | | | oldtest: test_cmdline: Complete "Xtestf" so "Xtest-tmpdir" isn't matchedJames McCoy2017-08-09
| | | | | | | | |
| * | | | | | | | oldtest: use TMPDIRJustin M. Keyes2017-08-09
| |/ / / / / / /
* / / / / / / / buf_write(): wrong argument to os_fileinfo_hardlinksJustin M. Keyes2017-08-09
|/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was broken in ye olde refactor from 2014: e85fe0957d40080f43cbfcbe9eb8864475325b09 References #4370
* | | | | | | vim-patch:8.0.0149 (#7127)KunMing Xie2017-08-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: ":earlier" and ":later" do not work after startup or reading the undo file. Solution: Use absolute time stamps instead of relative to the Vim start time. (Christian Brabandt, Pavel Juhas, closes vim/vim#1300, closes vim/vim#1254) https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
* | | | | | | vim-patch:8.0.0111 (#7090)KunMing Xie2017-08-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: The :history command is not tested. Solution: Add tests. (Dominique Pelle) https://github.com/vim/vim/commit/eebd84eb94ed7f59a06a52cb4863563642f58899
* | | | | | | vim-patch:8.0.0147 #7121ckelsel2017-08-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: searchpair() does not work when 'magic' is off. (Chris Paul) Solution: Add \m in the pattern. (Christian Brabandt, closes vim/vim#1341) https://github.com/vim/vim/commit/6e450a57541676036203a72d40b2e604e938371e
* | | | | | | vim-patch:8.0.0143 (#7120)KunMing Xie2017-08-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Line number of current buffer in getbufinfo() is wrong. Solution: For the current buffer use the current line number. (Ken Takata) https://github.com/vim/vim/commit/f845b87f2b3a45cbee160e28d7a3f50e54054809
* | | | | | | vim-patch:8.0.0137 (#7119)KunMing Xie2017-08-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: When 'maxfuncdepth' is set above 200 the nesting is limited to 200. (Brett Stahlman) Solution: Allow for Ex command recursion depending on 'maxfuncdepth'. https://github.com/vim/vim/commit/777b30f827bcbe10a40640b1bf0361cb93a16be1
* | | | | | | vim-patch:8.0.0086 (#7118)lonerover2017-08-06
| |_|_|_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Cannot add a comment after ":hide". (Norio Takagi) Solution: Make it work, add a test. (Hirohito Higashi) https://github.com/vim/vim/commit/2256c9947164229c0960803e2a2992b793c23298
* | | | | | input: skip dialogs if no UI is activeJustin M. Keyes2017-08-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Treat dialogs in the same way as "silent mode" (`nvim -es`). References #1984 References #3901
* | | | | | win_defs.h: redefine RGB macro after undefiningJustin M. Keyes2017-08-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before this change, if os_defs.h was included after macros.h then win_defs.h would undefine our own RGB macro. vim-patch:8.0.0146
* | | | | | build: silence maybe-uninitialized warningJustin M. Keyes2017-08-06
| | | | | | | | | | | | | | | | | | | | | | | | False positive. From C:\msys64\mingw64\bin\gcc.exe (appveyor CI)
* | | | | | clint: allow starting brace after `enum`Justin M. Keyes2017-08-06
| | | | | |