aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
* | | | | | | Merge pull request #5461 from jamessan/emoji-ui-regressionJames McCoy2016-10-12
|\ \ \ \ \ \ \ | |/ / / / / / |/| | | | | | | | | | | | | ui: Fix the call to utf_ambiguous_width
| * | | | | | ui: Fix the call to utf_ambiguous_widthJames McCoy2016-10-11
| | |_|_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `utf_ambiguous_width` expects the Unicode character, but in 9e1c6596 I just passed the first UTF-8 byte to the function. This led to various display problems because now many multi-cell characters weren't falling into that part of the branch. Also, to better align with the existing Vim code, remove the forced cursor update. Setting the flag will cause it to happen in the next UI_CALL. Thanks to qvacua for all the help investigating the issue! Closes #5448
* | | | | | Merge pull request #5466 from jszakmeister/fix-generated-files-for-in-tree-buildJohn Szakmeister2016-10-12
|\ \ \ \ \ \ | | | | | | | | | | | | | | Fix generated files for in-tree build.
| * | | | | | build: fix generated file paths when building in-treeJohn Szakmeister2016-10-11
| | | | | | |
* | | | | | | eval/term_write(): Skip writes if stream was closed.Justin M. Keyes2016-10-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the backing stream for a :terminal was closed (e.g. if the shell exits unexpectedly) there may be pending input on the loop which will be processed before the terminal close event (which is queued on the same loop). terminal_send checks term->closed but this does not reflect the state of the underlying streams. The terminal.c module in fact has no knowledge of the streams (this seems intentional: it is abstracted as TerminalOption.write_cb). The SIGCHLD handler (pty_process_unix.c) is executed immediately, and it triggers a stream teardown so Stream.closed=false (TerminalJobData.in.closed). When the pending writes are handled by eval.c:term_write, wstream_write() aborts because it sees the closed Stream. To avoid that, this commit checks Stream.closed in eval:term_write() before writing to the WStream. (As hinted above, we cannot do this in terminal:terminal_send() because that module cannot inspect the underlying streams.) References #5445 https://github.com/neovim/neovim/pull/5445#issuecomment-252529766
* | | | | | | test/terminal: Cover race when :term shell process exits.Justin M. Keyes2016-10-12
|/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | References #5445 See https://github.com/neovim/neovim/pull/5445#issuecomment-252529766
* / / / / / window: Fix cmd_with_count's formatting when sizeof(long) != 8James McCoy2016-10-11
|/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On architectures where `sizeof(long)` != 8, "%" PRId64 will read junk from memory. This was seen on various Debian builds where test/functional/legacy/close_count_spec.lua would fail due to `1<C-w>c` emitting an error like `E488: Trailing characters: close-87944975647104`. Changing the `Prenum` parameter to int64_t ensures it is safe to use `"%" PRId64`, and make another small step towards removal of the use of `long`.
* | | | | Merge pull request #5411 from P4Cu/vim-7.4.1549James McCoy2016-10-08
|\ \ \ \ \ | | | | | | | | | | | | vim-patch:7.4.1549
| * | | | | vim-patch:7.4.1549Andrzej Pacanowski2016-09-30
| | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Test for syntax attributes fails in Win32 GUI. Solution: Use an existing font name. https://github.com/vim/vim/commit/c835293d54c223627c7d4516ee273c21a3506fa1
* | | | | Merge #5428 'vim-patch: 0c1ff16, 939a1ab, 8067a64'.Justin M. Keyes2016-10-08
|\ \ \ \ \
| * | | | | vim-patch:939a1abShougo Matsushita2016-10-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Updated runtime files. https://github.com/vim/vim/commit/939a1abe935a539f2d4c90a56cb0682cbaf3bbb0
| * | | | | vim-patch:8067a64Shougo Matsushita2016-10-04
| | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | Add missing test file. https://github.com/vim/vim/commit/8067a64852d6d134b493c5674e404225ed4bbe7d
* | | | | hardcopy.c: Fix -Wmaybe-uninitialized warning.Justin M. Keyes2016-10-08
| | | | |
* | | | | lint: Removing dead initializations #5410Patrick Jackson2016-10-08
| |_|/ / |/| | |
* | | | tui/flush_buf: Don't toggle cursor when called from out() #5436Florian Larysch2016-10-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | unibi_format() calls out() multiple times for a given format string. When data->buf fills up during this process, flush_buf() gets called, which possibly calls unibi_out() again to toggle the cursor visibility. However, if we were halfway through outputting an escape sequence, doing this will clobber it, resulting in junk being displayed. Fix this by not toggling the cursor visibility when draining a full buffer in out().
* | | | version.c: mark NA patches (#5380)Shougo2016-10-06
| |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | NA list: 1653: matchit packadd 1750: channel 1770: termguicolors 1794: GUI Win32 1805: Makefile 1804, 1945: manpager.vim 1811: channel 2115, 2232, 2278, 2319: defaults.vim included: 1763: spell
* | | Merge pull request #5366 from NovaDev94/vim-7.4.1740James McCoy2016-10-04
|\ \ \ | |/ / |/| | vim-patch:7.4.1740
| * | vim-patch:7.4.1740Nova2016-09-22
| | | | | | | | | | | | | | | | | | | | | | | | Problem: syn-cchar defined with matchadd() does not appear if there are no other syntax definitions which matches buffer text. Solution: Check for startcol. (Ozaki Kiichi, haya14busa, closes vim/vim#757) https://github.com/vim/vim/commit/4d585022023b96f6507e8cae5ed8fc8d926f5140
* | | tui/terminfo_start: Default to normal-mode cursor shape. (#5419)Justin M. Keyes2016-10-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | References #4867 For users who use a "bar" shape in the shell, it's annoying that Nvim starts with that same cursor shape, despite starting in normal-mode. So default to the normal-mode "block" shape instead. (Note: technically it's possible some user may set 'insertmode', and then the opposite problem occurs. But 'insertmode' is a silly option that shouldn't exist, and any user that uses it probably isn't fiddling with their cursor shape anyways.) Also rename the unibilium extensions: enter_insert_mode => set_cursor_shape_bar enter_replace_mode => set_cursor_shape_underline exit_insert_mode => set_cursor_shape_block to say explicitly what they do in the context of a terminal; it's irrelevant in this context what purpose they serve in Nvim.
* | | event/multiqueue.c: Rename "queue" to "multiqueue".Justin M. Keyes2016-10-02
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | `lib/queue.h` implements a basic queue. `event/queue.c` implements a specialized data structure on top of lib/queue.h; it is not a "normal" queue. Rename the specialized multi-level queue implemented in event/queue.c to "multiqueue", to avoid confusion when reading the code. Before this change one can eventually notice that "macros (uppercase symbols) are for the normal queue, lowercase operations are for the multi-level queue", but that is unnecessary friction for new developers (or existing developers just visiting this part of the codebase).
* | Correct logic for setting NormalState.toplevelJames McCoy2016-09-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In Vim's main_loop function, the main loop is while (!cmdwin #ifdef FEAT_CMDWIN || cmdwin_result == 0 #endif ) { ... #ifdef FEAT_EVAL /* * May perform garbage collection when waiting for a character, but * only at the very toplevel. Otherwise we may be using a List or * Dict internally somewhere. * "may_garbage_collect" is reset in vgetc() which is invoked through * do_exmode() and normal_cmd(). */ may_garbage_collect = (!cmdwin && !noexmode); #endif /* * If we're invoked as ex, do a round of ex commands. * Otherwise, get and execute a normal mode command. */ if (exmode_active) { if (noexmode) /* End of ":global/path/visual" commands */ return; do_exmode(exmode_active == EXMODE_VIM); } else normal_cmd(&oa, TRUE); } cmdwin_result is set to 0 before calling main_loop to handle the cmdwin window and gets changed when the user causes a command to execute (either through pressing <CR> or <C-c>). This means that when the cmdwin isn't active OR the user is still editing their command, main_loop runs and main_loop calls normal_cmd with toplevel true as long as exmode isn't active. When the normal mode state was extracted in dae006a9, the conditions for toplevel and may_garbage_collect were combined. Since toplevel was set to always ignore cmdwin, the v:count(1) variables were no longer being updated when a command was prefixed with a count in the cmdwin. Closes #5404
* | vim-patch:7.4.1681Jurica Bradaric2016-09-28
| | | | | | | | | | | | | | Problem: Coverity warns for fixed size buffer length (false positive). Solution: Add a check for the name length. https://github.com/vim/vim/commit/ef9d9b94a8803c405884bb6914ed745ede57c596
* | vim-patch:7.4.1679Jurica Bradaric2016-09-28
| | | | | | | | | | | | | | Problem: Coverity: copying value of v_lock without initializing it. Solution: Init v_lock in rettv_list_alloc() and rettv_dict_alloc(). https://github.com/vim/vim/commit/7d2a5796d39905a972e8f74af5f7b0a62e3de173
* | vim-patch:7.4.1648Jurica Bradaric2016-09-28
| | | | | | | | | | | | | | | | Problem: Compiler has a problem copying a string into di_key[]. (Yegappan Lakshmanan) Solution: Add dictitem16_T. https://github.com/vim/vim/commit/bee6c0cf86a75faa2aa893f2c9db82fd944a89a5
* | log.c: align/adjust layoutJustin M. Keyes2016-09-28
| | | | | | | | | | | | | | | | New: 2016/09/27 18:00:49 INFO 28117/tui_flush:597: ... Old: 2016/09/27 18:00:49 [info @ tui_flush:597] 28117 - ...
* | tui: Move ui_bridge module to tui/ namespace.Justin M. Keyes2016-09-28
| |
* | doc: minor comment tweaksJustin M. Keyes2016-09-28
| |
* | Merge pull request #5357 from jbradaric/vim-7.4.1671James McCoy2016-09-27
|\ \ | | | | | | | | | vim-patch:7.4.{1671,1818,1820,1821}
| * | vim-patch:7.4.1821Jurica Bradaric2016-09-25
| | | | | | | | | | | | | | | | | | | | | Problem: Test fails on MS-Windows. Solution: Sort the completion results. https://github.com/vim/vim/commit/4ed6b2e2d7fd5959fb9b9f608935d47305c4bbe4
| * | vim-patch:7.4.1820Jurica Bradaric2016-09-25
| | | | | | | | | | | | | | | | | | | | | Problem: Removing language from help tags too often. Solution: Only remove @en when not needed. (Hirohito Higashi) https://github.com/vim/vim/commit/9ccaae04c6f263e6db14fc403bca2404a7871114
| * | vim-patch:7.4.1818Jurica Bradaric2016-09-25
| | | | | | | | | | | | | | | | | | | | | Problem: Help completion adds @en to all matches except the first one. Solution: Remove "break", go over all items. https://github.com/vim/vim/commit/89c79b99328b66f77f1d12dc8c6701dfe2c57f15
| * | vim-patch:7.4.1671Jurica Bradaric2016-09-25
| | | | | | | | | | | | | | | | | | | | | | | | Problem: When help exists in multiple languages, adding @ab while "ab" is the default help language is unnecessary. Solution: Leave out "@ab" when not needed. (Ken Takata) https://github.com/vim/vim/commit/61264d99692803eec76a171916ab9720c75536b0
* | | Merge pull request #5261 from jbradaric/vim-7.4.1961James McCoy2016-09-27
|\ \ \ | | | | | | | | vim-patch:7.4.1961
| * | | option.c: Fix linter errors.Jurica Bradaric2016-09-25
| | | |
| * | | vim-patch:7.4.1961Jurica Bradaric2016-09-25
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: When 'insertmode' is reset while doing completion the popup menu remains even though Vim is in Normal mode. Solution: Ignore stop_insert_mode when the popup menu is visible. Don't set stop_insert_mode when 'insertmode' was already off. (Christian Brabandt) https://github.com/vim/vim/commit/00672e1d3f59dbff91a18d418b2984be96f89ee5
* | | Merge pull request #5356 from jbradaric/vim-7.4.1670James McCoy2016-09-26
|\ \ \ | | | | | | | | vim-patch:7.4.1670
| * | | vim-patch:7.4.1670Jurica Bradaric2016-09-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Completion doesn't work well for a variable containing "vim/vim#". Solution: Recognize the "vim/vim#". (Watiko) https://github.com/vim/vim/commit/a32095fc8fdf5fe3d487c86d9cc54adb1236731e
* | | | genunicodetables: Give the unicode directory as the first argumentJames McCoy2016-09-24
| | | | | | | | | | | | | | | | | | | | | | | | Let genunicodetables determine which files it needs from the unicode directory. cmake just needs to pass the directory and destination file to the script.
* | | | vim-patch:7.4.1697James McCoy2016-09-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Display problems when the 'ambiwidth' and 'emoji' options are not set properly or the terminal doesn't behave as expected. Solution: After drawing an ambiguous width character always position the cursor. https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
* | | | lintJames McCoy2016-09-24
| | | |
* | | | vim-patch:7.4.1642James McCoy2016-09-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Handling emoji characters as full width has problems with backwards compatibility. Solution: Only put characters in the 1f000 range in the emoji table. https://github.com/vim/vim/commit/6a08454b93784c92296d4c08456401cbaa74c9d5
* | | | vim-patch:7.4.1630James McCoy2016-09-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Unicode table for double width is outdated. Solution: Update to the latest Unicode standard. https://github.com/vim/vim/commit/d63aff0a65b955447de2fd8bfdaee29b61ce2843
* | | | vim-patch:7.4.1629James McCoy2016-09-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Handling emoji characters as full width has problems with backwards compatibility. Solution: Remove ambiguous and double width characters from the emoji table. Use a separate table for the character class. (partly by Yashuhiro Matsumoto) https://github.com/vim/vim/commit/b86f10ee10bdf932df02bdaf601dffa671518a47
* | | | vim-patch:7.4.1620James McCoy2016-09-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Emoji characters are not considered as a kind of word character. Solution: Give emoji characters a word class number. (Yashuhiro Matsumoto) https://github.com/vim/vim/commit/4077b33a8370afb3d5ae74e556a0119cf51fe294
* | | | vim-patch:7.4.1604James McCoy2016-09-24
| |/ / |/| | | | | | | | | | | | | | | | | | | | | | | Problem: Although emoji characters are ambiguous width, best is to treat them as full width. Solution: Update the Unicode character tables. Add the 'emoji' options. (Yasuhiro Matsumoto) https://github.com/vim/vim/commit/3848e00e0177abdb31bc600234967863ec487233
* | | tui.c: Do not wait for tui loop on teardown. (#4789)Justin M. Keyes2016-09-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Because terminfo_stop() already ran, there is not much reason to wait for the loop to teardown. Helped-by: Björn Linse <bjorn.linse@gmail.com> Helped-by: oni-link <knil.ino@gmail.com> Closes #4778 References #3541 --- Bug report: > After pressing `ZZ` I can find two threads freezing, occupying 100% CPU: |-systemd-+ |-nvim,11567 /home/lz/code/1.rs +set title | `-{nvim},11574 > 11567 has two threads: (gdb) info threads Id Target Id Frame * 1 Thread 0x7f7622907780 (LWP 11567) "nvim" 0x00007f76222e66bd in pthread_join () from /usr/lib/libpthread.so.0 2 Thread 0x7f761f5ff700 (LWP 11574) "nvim" 0x00007ffcec9e9c59 in clock_gettime () (gdb) thread apply all bt Thread 2 (Thread 0x7f761f5ff700 (LWP 11574)): #0 0x00007ffcec9e9c59 in clock_gettime () #1 0x00007f76210b9356 in clock_gettime () from /usr/lib/libc.so.6 #2 0x00007f7622513e3c in ?? () from /usr/lib/libuv.so.1 #3 0x00007f7622505e94 in uv_run () from /usr/lib/libuv.so.1 #4 0x00000000004822ed in loop_close (loop=loop@entry=0x7f761f5fe870) at /tmp/yaourt-tmp-lz/aur-neovim-git/src/neovim-git/src/nvim/event/loop.c:87 #5 0x00000000005a7ec0 in tui_main (bridge=0x7f761f6ac000, ui=0x7f761f69ace0) at /tmp/yaourt-tmp-lz/aur-neovim-git/src/neovim-git/src/nvim/tui/tui.c:234 #6 0x00000000005a9b47 in ui_thread_run (data=<optimized out>) at /tmp/yaourt-tmp-lz/aur-neovim-git/src/neovim-git/src/nvim/ui_bridge.c:87 #7 0x00007f7622510d07 in ?? () from /usr/lib/libuv.so.1 #8 0x00007f76222e5474 in start_thread () from /usr/lib/libpthread.so.0 #9 0x00007f76210ac69d in clone () from /usr/lib/libc.so.6 Thread 1 (Thread 0x7f7622907780 (LWP 11567)): #0 0x00007f76222e66bd in pthread_join () from /usr/lib/libpthread.so.0 #1 0x00007f7622510dae in uv_thread_join () from /usr/lib/libuv.so.1 #2 0x00000000005aac9e in ui_bridge_stop (b=0x7f761f6ac000) at /tmp/yaourt-tmp-lz/aur-neovim-git/src/neovim-git/src/nvim/ui_bridge.c:104 #3 0x00000000005a90e4 in ui_builtin_stop () at /tmp/yaourt-tmp-lz/aur-neovim-git/src/neovim-git/src/nvim/ui.c:91 #4 0x000000000052be09 in mch_exit (r=r@entry=1) at /tmp/yaourt-tmp-lz/aur-neovim-git/src/neovim-git/src/nvim/os_unix.c:143 #5 0x00000000004db1cc in getout (exitval=exitval@entry=1) at /tmp/yaourt-tmp-lz/aur-neovim-git/src/neovim-git/src/nvim/main.c:623 #6 0x00000000004fa43c in preserve_exit () at /tmp/yaourt-tmp-lz/aur-neovim-git/src/neovim-git/src/nvim/misc1.c:2652 #7 0x000000000052b77a in deadly_signal (signum=1) at /tmp/yaourt-tmp-lz/aur-neovim-git/src/neovim-git/src/nvim/os/signal.c:120 #8 0x000000000052b7cf in on_signal (handle=<optimized out>, signum=<optimized out>, data=<optimized out>) at /tmp/yaourt-tmp-lz/aur-neovim-git/src/neovim-git/src/nvim/os/signal.c:145 #9 0x0000000000484178 in signal_event (argv=<optimized out>) at /tmp/yaourt-tmp-lz/aur-neovim-git/src/neovim-git/src/nvim/event/signal.c:44 #10 0x0000000000483b7f in queue_process_events (queue=0x7f7620417360) at /tmp/yaourt-tmp-lz/aur-neovim-git/src/neovim-git/src/nvim/event/queue.c:142 #11 0x0000000000482208 in loop_poll_events (loop=0x84dec0 <loop>, ms=ms@entry=4000) at /tmp/yaourt-tmp-lz/aur-neovim-git/src/neovim-git/src/nvim/event/loop.c:56 #12 0x000000000052a364 in input_poll (ms=ms@entry=4000) at /tmp/yaourt-tmp-lz/aur-neovim-git/src/neovim-git/src/nvim/os/input.c:325 #13 0x000000000052a3e2 in inbuf_poll (ms=4000) at /tmp/yaourt-tmp-lz/aur-neovim-git/src/neovim-git/src/nvim/os/input.c:347 #14 0x000000000052a839 in os_inchar (buf=buf@entry=0x0, maxlen=maxlen@entry=0, ms=ms@entry=-1, tb_change_cnt=tb_change_cnt@entry=0) at /tmp/yaourt-tmp-lz/aur-neovim-git/src/neovim-git/src/nvim/os/input.c:107 #15 0x0000000000592eeb in state_enter (s=s@entry=0x7ffcec9d3560) at /tmp/yaourt-tmp-lz/aur-neovim-git/src/neovim-git/src/nvim/state.c:46 #16 0x0000000000508533 in normal_enter (cmdwin=cmdwin@entry=false, noexmode=noexmode@entry=false) at /tmp/yaourt-tmp-lz/aur-neovim-git/src/neovim-git/src/nvim/normal.c:464 #17 0x00000000004dc17e in main (argc=<optimized out>, argv=<optimized out>) at /tmp/yaourt-tmp-lz/aur-neovim-git/src/neovim-git/src/nvim/main.c:538
* | | runtest.vim: Fix spelling of s:flakyJames McCoy2016-09-23
| | |
* | | ui_detach: Schedule refresh on main loop.Justin M. Keyes2016-09-22
| | | | | | | | | | | | Closes #4163
* | | runtest.vim: Fix spelling of (s:)messagesJames McCoy2016-09-21
| | |
* | | vim-patch:7.4.1309James McCoy2016-09-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: When a test fails not all relevant info is listed. Solution: Add the errors to the messages. https://github.com/vim/vim/commit/00af60bbb6cc7e8ccafddb30a1964f891b800bce 7.4.1309 was incorrectly marked as applied in #4301. 7.4.1477 relies on some of the changes that had been made in 7.4.1309, so this fixes the build after I, pre-emptively, merged #5038.