aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/ex_cmds2.c
Commit message (Collapse)AuthorAge
...
* io: retry fgets on EINTR (#7632)Matt Widmann2017-11-25
| | | | | | | | | | | | | | | | | | The calls to `fgets` in `src/nvim/if_cscope.c` (and elsewhere) can show communication errors to the user if a signal is delivered during its system calls. For plugins that proxy subprocess output into cscope requests, a `SIGCHLD` might *always* interfere with calls into `fgets`. To see this in a debugger, put a breakpoint on `cs_reading_emsg` and watch signals come in (with lldb, using `process handle --notify true --pass true`). Next, run a subcommand from neovim that calls through cscope when it returns. A tag picker plugin, like vim-picker and fzy, with `cscopetag` and `cscopetagorder=0` set, reproduced this reliably. The breakpoint will hit after a `SIGCHLD` is delivered, and `errno` will be set to 4, `EINTR`. The caller of `fgets` should retry when `NULL` is returned with `errno` set to `EINTR`.
* eval_clear: free profile dataJustin M. Keyes2017-10-30
| | | | | | | | | | | | | | | | | | | | | | Memory leak exposed by new test added in #7444. ==38771==ERROR: LeakSanitizer: detected memory leaks Direct leak of 2400 byte(s) in 1 object(s) allocated from: 0 0x51163d in realloc (/home/travis/build/neovim/neovim/build/bin/nvim+0x51163d) 1 0xfda51c in xrealloc /home/travis/build/neovim/neovim/src/nvim/memory.c:169:15 2 0xda6802 in ga_grow /home/travis/build/neovim/neovim/src/nvim/garray.c:98:14 3 0xb67ccd in script_line_start /home/travis/build/neovim/neovim/src/nvim/ex_cmds2.c:3286:11 4 0xb62885 in getsourceline /home/travis/build/neovim/neovim/src/nvim/ex_cmds2.c:3110:5 5 0xb5fbfd in do_source /home/travis/build/neovim/neovim/src/nvim/ex_cmds2.c:2951:15 6 0xb5c484 in cmd_source /home/travis/build/neovim/neovim/src/nvim/ex_cmds2.c:2710:14 7 0xb5c5b0 in ex_source /home/travis/build/neovim/neovim/src/nvim/ex_cmds2.c:2691:3 8 0xb950b9 in do_one_cmd /home/travis/build/neovim/neovim/src/nvim/ex_docmd.c:2242:5 9 0xb737e1 in do_cmdline /home/travis/build/neovim/neovim/src/nvim/ex_docmd.c:609:20 10 0xb79ac5 in do_cmdline_cmd /home/travis/build/neovim/neovim/src/nvim/ex_docmd.c:280:10 11 0xed8a7b in exe_commands /home/travis/build/neovim/neovim/src/nvim/main.c:1684:5 12 0xec6602 in main /home/travis/build/neovim/neovim/src/nvim/main.c:521:5 13 0x2ae968600f44 in __libc_start_main /build/eglibc-SvCtMH/eglibc-2.19/csu/libc-start.c:287
* vim-patch:8.0.1207Justin M. Keyes2017-10-29
| | | | | | | | Problem: Profiling skips the first and last script line. Solution: Check for BOM after setting script ID. (Lemonboy, closes vim/vim#2103, closes vim/vim#2112) Add a test. List the trailing script lines. https://github.com/vim/vim/commit/67435d9983965c5c77fc74f0559779ce4554dacb
* vim-patch:8.0.0680James McCoy2017-08-21
| | | | | | | | Problem: Plugins in start packages are sourced twice. (mseplowitz) Solution: Use the unmodified runtime path when loading plugins (test by Ingo Karkat, closes vim/vim#1801) https://github.com/vim/vim/commit/07ecfa64a18609a986f21d6132d04ee8934f3200
* vim-patch:8.0.0612James McCoy2017-08-21
| | | | | | | | | Problem: Package directories are added to 'runtimepath' only after loading non-package plugins. Solution: Split off the code to add package directories to 'runtimepath'. (Ingo Karkat, closes vim/vim#1680) https://github.com/vim/vim/commit/ce876aaa9a250a5a0d0e34b3a2625e51cf9bf5bb
* vim-patch:8.0.0308James McCoy2017-08-21
| | | | | | | | | Problem: When using a symbolic link, the package path will not be inserted at the right position in 'runtimepath'. (Dugan Chen, Norio Takagi) Solution: Resolve symbolic links when finding the right position in 'runtimepath'. (Hirohito Higashi) https://github.com/vim/vim/commit/2f9e575583c2ad3978ee3d0f790eeff7df56bd6c
* Merge pull request #7145 from ckelsel/vim-8.0.0174James McCoy2017-08-16
|\ | | | | vim-patch:8.0.0174
| * vim-patch:8.0.0174ckelsel2017-08-10
| | | | | | | | | | | | | | | | Problem: For completion "locale -a" is executed on MS-Windows, even though it most likely won't work. Solution: Skip executing "locale -a" on MS-Windows. (Ken Takata) https://github.com/vim/vim/commit/b8f7bd68f6fdff51ca4db5b145dcde42ee7b804b
* | ex_getln: Replace global with entry in save_cclineZyX2017-07-17
|/
* Merge branch 'master' into luaviml'/luaZyX2017-05-08
|\
| * *: Add comment to all C filesZyX2017-04-19
| |
* | Merge branch 'master' into luaviml'/luaZyX2017-04-08
|\|
| * *: Use const char * in set_one_cmd_contextZyX2017-03-29
| | | | | | Also renames functions added in master and renamed here.
| * *: Make some more things const and with lengthZyX2017-03-29
| |
| * *: Move some dictionary functions to typval.h and use char*ZyX2017-03-29
| | | | | | | | Also fixes buffer reusage in setmatches() and complete().
| * eval: Split eval.c into smaller filesZyX2017-03-29
| |
* | ex_getln: Refactor script_get()ZyX2017-03-27
|/ | | | | | | | | | | | | | 1. Use `char *` for strings. 2. Add `const` qualifiers. 3. Add attributes and documentation. 4. Handle skipping *inside*. 5. Handle non-heredoc argument also inside: deferring this to the caller is pointless because all callers need the same thing. Though new ex_lua caller may live without allocations in this case, allocating nevertheless produces cleaner code. 6. Note that all callers call script_get with `eap` and `eap->arg`. Thus second argument is useless in practice: it is one and the same always and can be reached through the first argument.
* vim-patch:7.4.2164 (#6326)Justin M. Keyes2017-03-21
| | | | | | | | | | | | | | | | | | | | | Problem: It is not possible to use plugins in an "after" directory to tune the behavior of a package. Solution: First load plugins from non-after directories, then packages and finally plugins in after directories. Reset 'loadplugins' before executing --cmd arguments. https://github.com/vim/vim/commit/66459b7c98c67f8a9d39de8f08e8e8f1fca0e359 vim-patch:7.4.2172 vim-patch:7.4.2169 vim-patch:7.4.2177 vim-patch:7.4.2178 vim-patch:7.4.2184 vim-patch:8.0.0050 vim-patch:8.0.0105 vim-patch:8.0.0400 vim-patch:8.0.0405 Closes #6034
* job-control: set CLOEXEC on pty processes. #5986Matthew Malcomson2017-03-17
| | | | | Before this change, new processes started with libuv prevented SIGHUP from reaching pty processes (by keeping the ptmx file descriptor open).
* *: Partial string handling refactoringZyX2017-02-15
| | | | | | | | Main points: - Replace `char_u` with `char` in some cases. - Remove `str[len] = NUL` hack in some cases when `str` may be considered `const`.
* vim-patch:7.4.2024Marco Hinz2017-02-04
| | | | | | | | | | Problem: More buf_valid() calls can be optimized. Solution: Use bufref_valid() instead. NOTE: Some changes related to channels and the Python and Netbeans interfaces were obviously left out. https://github.com/vim/vim/commit/7c0a2f367f2507669560b1a66423155c70d2e75b
* vim-patch:7.4.1699 (#5660)Michael Ennen2016-11-29
| | | | | | Problem: :packadd does not work the same when used early or late. Solution: Always load plugins matching "plugin/**/*.vim". https://github.com/vim/vim/commit/71fb0c146bef08dc276fc5793bd47366e6e0f32a
* refactor: eliminate misc2.cJustin M. Keyes2016-09-13
| | | | | | | | | | move `call_shell` to misc1.c Move some fns to state.c Move some fns to option.c Move some fns to memline.c Move `vim_chdir*` fns to file_search.c Move some fns to new module, bytes.c Move some fns to fileio.c
* perf: Disable clipboard in do_cmdline().Justin M. Keyes2016-08-25
| | | | | | | | | | | For any script--not just `:global` commands--there is no reason to update the system clipboard until the script is finished, so disable it during do_cmdline(). Before this change, 'clipboard=unnamedplus' causes scripted editing to be extremely slow (e.g. `:normal` in a while-loop). Closes #3534
* ops.c: Rename start_global_changes().Justin M. Keyes2016-08-25
|
* Merge #4980 'Support legacy `:ruby` commands'.Justin M. Keyes2016-07-10
|\
| * Add :ruby, :rubyfile, and :rubydo ex commandsAlex Genco2016-07-02
| |
* | lintJames McCoy2016-07-08
| |
* | vim-patch:7.4.1986James McCoy2016-07-08
| | | | | | | | | | | | | | Problem: Compiler warns for loss of data. Solution: Use size_t instead of int. (Christian Brabandt) https://github.com/vim/vim/commit/fef524bbff9aa186838c35212b2f89f61d627cf8
* | vim-patch:7.4.1973James McCoy2016-07-08
| | | | | | | | | | | | | | | | | | Problem: On MS-Windows the package directory may be added at the end because of forward/backward slash differences. (Matthew Desjardins) Solution: Ignore slash differences. https://github.com/vim/vim/commit/4c5717ed8a81f5ae9dfe4f38b17a61fc8421054b
* | vim-patch:7.4.1840James McCoy2016-07-08
| | | | | | | | | | | | | | | | Problem: When using packages an "after" directory cannot be used. Solution: Add the "after" directory of the package to 'runtimepath' if it exists. https://github.com/vim/vim/commit/a57024453115592b8847af40ddd965a33898e390
* | vim-patch:7.4.1712James McCoy2016-07-08
| | | | | | | | | | | | | | | | | | Problem: For plugins in packages, plugin authors need to take care of all dependencies. Solution: When loading "start" packages and for :packloadall, first add all directories to 'runtimepath' before sourcing plugins. https://github.com/vim/vim/commit/49b27326447d0827c59c6cd201d58f65c1163086
* | vim-patch:7.4.1596James McCoy2016-07-08
| | | | | | | | | | | | | | Problem: Memory leak. (Coverity) Solution: Free the pattern. https://github.com/vim/vim/commit/ba8cd122ef60a7c71a7723be0d635f0c2d4556ab
* | vim-patch:7.4.1553James McCoy2016-07-08
| | | | | | | | | | | | | | Problem: ":runtime" does not use 'packpath'. Solution: Add "what" argument. https://github.com/vim/vim/commit/8dcf259d904cfb965d31841dc74a5cfaf5a351d9
* | vim-patch:7.4.1552James McCoy2016-07-08
| | | | | | | | | | | | | | Problem: ":colorscheme" does not use 'packpath'. Solution: Also use in "start" and "opt" directories in 'packpath'. https://github.com/vim/vim/commit/7f8989dd8a627af2185df381195351a913f3777f
* | vim-patch:7.4.1551James McCoy2016-07-08
| | | | | | | | | | | | | | Problem: Cannot generate help tags in all doc directories. Solution: Make ":helptags ALL" work. https://github.com/vim/vim/commit/6bef5306e4f2cacb3a93667992c2312d4b293c9d
* | vim-patch:7.4.1550James McCoy2016-07-08
| | | | | | | | | | | | | | Problem: Cannot load packages early. Solution: Add the ":packloadall" command. https://github.com/vim/vim/commit/2d8f56acb32428d0f965d42dd13b27100b46fa15
* | vim-patch:7.4.1528James McCoy2016-07-08
| | | | | | | | | | | | | | Problem: Using "ever" for packages is confusing. Solution: Use "start", as it's related to startup. https://github.com/vim/vim/commit/af1a0e371e739f8dff337fd31da0ff8ffb347b43
* | vim-patch:7.4.1499James McCoy2016-07-08
| | | | | | | | | | | | | | Problem: No error message when :packadd does not find anything. Solution: Add an error message. (Hirohito Higashi) https://github.com/vim/vim/commit/be82c254862e475a582c0717455e1db6bf96b0d0
* | vim-patch:7.4.1486James McCoy2016-07-08
| | | | | | | | | | | | | | Problem: ":loadplugin" is not optimal, some people find it confusing. Solution: Only use ":packadd" with an optional "!". https://github.com/vim/vim/commit/f3654827368e6204608036353a0360e9e7c21e02
* | vim-patch:7.4.1480James McCoy2016-07-08
| | | | | | | | | | | | | | Problem: Cannot add a pack direcory without loading a plugin. Solution: Add the :packadd command. https://github.com/vim/vim/commit/91715873d19a1859c08eeded7848113596e2f2bd
* | vim-patch:7.4.1479James McCoy2016-07-08
| | | | | | | | | | | | | | Problem: No testfor ":loadplugin". Solution: Add a test. Fix how option is being set. https://github.com/vim/vim/commit/863c1a9079fa340d663ccafb011729a29186d73e
* | vim-patch:7.4.1478James McCoy2016-07-08
| | | | | | | | | | | | | | Problem: ":loadplugin" doesn't take care of ftdetect files. Solution: Also load ftdetect scripts when appropriate. https://github.com/vim/vim/commit/1bdd42627d619258d0e847f217cfc1c2795f1ac5
* | vim-patch:7.4.1388James McCoy2016-07-08
| | | | | | | | | | | | | | Problem: Compiler warning. (Cesar Romani) Solution: Initialize variable. https://github.com/vim/vim/commit/bdcd75275002c3b74015bb9bc0a01b13bb6107d4
* | vim-patch:7.4.1384James McCoy2016-07-08
|/ | | | | | | Problem: It is not easy to use a set of plugins and their dependencies. Solution: Add packages, ":loadopt", 'packpath'. https://github.com/vim/vim/commit/f6fee0e2d4341c0c2f5339c1268e5877fafd07cf
* Fix regression of :drop introduced in 1a91000Michael Budde2016-07-01
| | | | | | | | A single line was deleted from `ex_drop()` in 1a91000 when fixing clint warnings causing the `:drop` command to not work correctly if the buffer is not already open in a window. Fixes #4981
* ex_cmds2.c: cleanupJustin M. Keyes2016-06-25
|
* ex_cmds2.c:style: Silence all clint warningsJ Phani Mahesh2016-06-24
|
* ops.c: enable -Wconversion warningCharles Joachim2016-05-30
|
* Merge pull request #4756 from jbradaric/vim-7.4.1119Justin M. Keyes2016-05-29
|\ | | | | vim-patch:7.4.1119,7.4.1123,7.4.1132,7.4.1161