aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
| * | | Merge branch 'master' into colored-cmdlineZyX2017-08-06
| |\ \ \
| * | | | api/helpers: Fix typoZyX2017-08-06
| | | | |
| * | | | api/helpers: Clarify try_start() usageZyX2017-08-06
| | | | |
| * | | | Merge branch 'master' into colored-cmdlineZyX2017-07-31
| |\ \ \ \
| * \ \ \ \ Merge branch 'master' into colored-cmdlineZyX2017-07-31
| |\ \ \ \ \
| * | | | | | ex_getln: Cache highlight callback calling resultsZyX2017-07-26
| | | | | | |
| * | | | | | message: Only require second (format) argument to be not NULLZyX2017-07-26
| | | | | | |
| * | | | | | ex_getln: Avoid GCC “unused variable” warning from QBZyX2017-07-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 17:25:45,363 WARN - /home/quickbuild/buildagent/workspace/root/neovim/pull-requests-automated/src/nvim/ex_getln.c: In function ‘color_cmdline’: 17:25:45,363 WARN - /home/quickbuild/buildagent/workspace/root/neovim/pull-requests-automated/src/nvim/ex_getln.c:2335:8: error: variable ‘printed_errmsg’ set but not used [-Werror=unused-but-set-variable] 17:25:45,363 WARN - bool printed_errmsg = false; 17:25:45,363 WARN - ^ 17:25:45,399 WARN - cc1: all warnings being treated as errors
| * | | | | | *: Fix clint errorsZyX2017-07-18
| | | | | | |
| * | | | | | ex_getln: Check prev_prompt_errors before running redrawcmdlineZyX2017-07-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Otherwise there will be infinite recursion and shortly a crash. Running redrawcmdline recursively occurs under color_cmdline_error label.
| * | | | | | api helpers: Also save and restore did_emsgZyX2017-07-18
| | | | | | |
| * | | | | | ex_getln: Replace global with entry in save_cclineZyX2017-07-17
| | | | | | |
| * | | | | | ex_getln: Do not do useless try_enter/try_leave callsZyX2017-07-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | These are actually needed for two modes only. And even for these modes they should eventually go away.
| * | | | | | 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
|\ \ \ \ \ \ \ \