Commit Graph

327 Commits

Author SHA1 Message Date
HiPhish
9f534f338a mksession: Restore tab-local working directory #6859
The ':tcd' command is the first tab-specific command written to the file
and it is wrapped inside an 'if has('nvim')' block to keep the session
file compatible with Vim.

Closes #6678
2017-06-11 15:51:53 +02:00
Björn Linse
7d6af9985c ui: cleanup UI_CALL wrappers
remove pointless control chars in the text stream
2017-05-10 16:14:12 +02:00
ZyX
09f849b600 Merge branch 'master' into luaviml'/lua 2017-05-08 15:43:45 +03:00
James McCoy
de50c003d5 Use vim_strchr(s, c) when c may be NUL (#6656)
As part of the refactoring in #5119, some vim_strchr() were changed to
strchr().  However, vim_strchr() behaves differently than strchr() when
c is NUL, returning NULL instead of a pointer to the NUL.

Revert the strchr() calls where it isn't known whether c is NUL, since
this causes a semantic change the surrounding code doesn't expect.  In
the case of #6650, this led to a heap overrun.

Closes #6650
2017-05-03 10:12:38 +02:00
James McCoy
2b191ac5b9 lint 2017-04-29 23:48:28 -04:00
James McCoy
b6e36558d1 vim-patch:8.0.0150
Problem:    When the pattern of :filter does not have a separator then
            completion of the command fails.
Solution:   Skip over the pattern. (Ozaki Kiichi, clodes vim/vim#1299)

7069bf18e1
2017-04-29 23:48:28 -04:00
James McCoy
f219657453 vim-patch:7.4.2263
Problem:    :filter does not work for many commands.  Can only get matching
            messages.
Solution:   Make :filter work for :command, :map, :list, :number and :print.
            Make ":filter!" show non-matching lines.

d29459baa6
2017-04-29 23:48:27 -04:00
James McCoy
7bd97127b4 vim-patch:7.4.2244
Problem:    Adding pattern to ":oldfiles" is not a generic solution.
Solution:   Add the ":filter /pat/ cmd" command modifier.  Only works for some
            commands right now.

7b668e83d0
2017-04-29 23:48:27 -04:00
ZyX
c2f3e361c5 *: Add comment to all C files 2017-04-19 19:11:50 +03:00
ZyX
58300d70d2 *: Fix linter errors 2017-04-16 22:20:19 +03:00
ZyX
fe01e9c947 ex_docmd: Remove unneeded if() 2017-04-16 20:27:47 +03:00
ZyX
87e107d921 ex_docmd: Remove :Ni! easter egg 2017-04-16 20:27:20 +03:00
ZyX
a894c82def ex_docmd: Remove excessive assignment 2017-04-16 20:25:00 +03:00
ZyX
f98a3d85ed lua: Move files from src/nvim/viml/executor to src/nvim/lua 2017-04-11 01:09:36 +03:00
ZyX
043d8ff9f2 Merge branch 'master' into luaviml'/lua 2017-04-08 01:54:58 +03:00
ZyX
a1d590a08b *: Use const char * in set_one_cmd_context
Also renames functions added in master and renamed here.
2017-03-29 10:08:46 +03:00
ZyX
e5edf07ec4 unittests: Add tests for tv_list_find*() functions
Additional modifications:

- More `const` qualifiers in tested functions.
- `tv_list_find_str()` second argument is more in-line with other
  `tv_list_find*()` functions.
2017-03-29 10:08:06 +03:00
ZyX
c8e63a8db8 eval: Move remaining get_tv_string* functions to eval/typval.c 2017-03-29 10:08:05 +03:00
ZyX
949f09bdbb eval: Move get_tv_string_buf() to eval/typval.c 2017-03-29 10:08:05 +03:00
ZyX
28dafe3ff0 eval,*: Move get_tv_string to typval.c
Function was renamed and changed to return `const char *`.
2017-03-29 10:08:05 +03:00
ZyX
e18a578308 *: Move some dictionary functions to typval.h and use char*
Also fixes buffer reusage in setmatches() and complete().
2017-03-29 10:07:42 +03:00
ZyX
fb146e80aa eval: Split eval.c into smaller files 2017-03-29 10:05:06 +03:00
Eiichi NISHINA
62774e4356 ci: Check that #include "*.h" works as a single include
Lesser form of include-what-you-use: at least guarantees that header
file did not forget to include something through some other included
file.

Activate run_single_includes_tests on CI.
Fix some IWYU violations.

References #5321
2017-03-27 13:51:05 +02:00
ZyX
73d37f8b6e executor: Add :lua debug.debug mock 2017-03-27 00:18:52 +03:00
ZyX
3d48c35d6b ex_getln: Refactor script_get()
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.
2017-03-27 00:12:42 +03:00
ZyX
872a909150 executor: Add :lua command
Does not work currently.
2017-03-27 00:12:23 +03:00
Justin M. Keyes
7214d0bc84 XXX: ex_tabonly(): aucmd_win is not part of the window list.
During free_all_mem, somehow ex_tabonly() may free aucmd_win. But it
isn't fully destroyed (maybe autocmd_busy?). When win_free_all() tries
to free aucmd_win directly, it double-frees the sub-fields.

Tried unnsuccessfully to work around this by invoking `:tabonly!` with
autocmds disabled:

    diff --git a/src/nvim/memory.c b/src/nvim/memory.c
    index 58c01fbe7a12..91c845e94d22 100644
    --- a/src/nvim/memory.c
    +++ b/src/nvim/memory.c
    @@ -565,9 +565,9 @@ void free_all_mem(void)
       /* Close all tabs and windows.  Reset 'equalalways' to avoid redraws. */
       p_ea = false;
       if (first_tabpage->tp_next != NULL)
    -    do_cmdline_cmd("tabonly!");
    +    do_cmdline_cmd("noautocmd tabonly!");
       if (firstwin != lastwin)
    -    do_cmdline_cmd("only!");
    +    do_cmdline_cmd("noautocmd only!");

       /* Free all spell info. */
       spell_free_all();
2017-03-23 23:47:20 +01:00
Justin M. Keyes
51bc9f243a ex_tabnext: Disallow "+NN" arg.
Need to do this explicitly because our implementation of getdigits() is
slightly different.
2017-03-22 18:43:00 +01:00
Justin M. Keyes
a24c6cc6a8 get_tabpage_arg: satisfy clang warning
vim-patch:8.0.0266
2017-03-22 18:43:00 +01:00
Justin M. Keyes
7e23ce6b4f lint 2017-03-22 18:42:59 +01:00
Justin M. Keyes
0f3afdaa1b vim-patch:8.0.0259
Problem:    Tab commands do not handle count correctly. (Ken Hamada)
Solution:   Add ADDR_TABS_RELATIVE. (Hirohito Higashi)

2f72c70657
2017-03-22 18:42:59 +01:00
Justin M. Keyes
53ccd07fa1 lint 2017-03-22 18:42:58 +01:00
Justin M. Keyes
165ba3e636 vim-patch:7.4.2324
Problem:    Crash when editing a new buffer and BufUnload autocommand wipes
            out the new buffer. (Norio Takagi)
Solution:   Don't allow wiping out this buffer. (partly by Hirohito Higashi)
            Move old style test13 into test_autocmd. Avoid ml_get error when
            editing a file.

e0ab94e712
2017-03-22 18:42:16 +01:00
raichoo
86b1e7f583 vim-patch:7.4.2362
Problem:    Illegal memory access with ":1@". (Dominique Pelle)
Solution:   Correct cursor column after setting the line number.  Also avoid
            calling end_visual_mode() when not in Visual mode.

4930a76a03
2017-03-19 21:14:11 +01:00
Jack Bracewell
2ea7bfc627 terminal: Support extra arguments in 'shell'. #4504
Tokenize p_sh if used as default in ex_terminal(). Previously p_sh was
used as the first arg in a list when calling termopen(), this would try
to call an untokenized version of shell, meaning if you had an argument
in 'shell':
    set shell=/bin/bash\ --login
the command would fail.

Helped-by: oni-link <knil.ino@gmail.com>

Closes #3999
2017-03-17 17:47:33 +01:00
Justin M. Keyes
3b52e3c4c8 Merge #6252 from jamessan/vim-7.4.2069
vim-patch:7.4.2069,7.4.2101,7.4.2222,7.4.2223
2017-03-15 13:47:13 +01:00
Justin M. Keyes
c5e61b41a5 DirChanged: avoid redundant events on 'autochdir' 2017-03-12 15:45:50 +01:00
Justin M. Keyes
d9fcbc2cfb DirChanged: trigger when switching scopes
Closes #6054
2017-03-12 14:39:32 +01:00
Justin M. Keyes
99a1a58c66 DirChanged: Publish _after_ updating win/tab CWD.
So getcwd() works correctly during DirChanged event.

Closes #6260
2017-03-12 14:39:32 +01:00
Justin M. Keyes
82117da5df tabpage_S: Name tp_localdir per convention. 2017-03-12 12:39:20 +01:00
James McCoy
d72c177b2a lint 2017-03-11 20:32:39 -05:00
James McCoy
564e9dc17f vim-patch:7.4.2101
Problem:    Looping over windows, buffers and tab pages is inconsistant.
Solution:   Use FOR_ALL_ macros everywhere. (Yegappan Lakshmanan)

2932359000
2017-03-11 20:32:09 -05:00
James McCoy
5674057e3a vim-patch:7.4.2069
Problem:    spell.c is too big.
Solution:   Split it in spell file handling and spell checking.

9ccfebddc3
2017-03-11 20:32:02 -05:00
Matthew Malcomson
b1731fe1b5 vim-patch:8.0.0388
Fix a problem when filtering manually folded lines

When foldMarkAdjustRecurse() is called to adjust folds that start inside
the range of lines that are being moved and end outside that range, it
calculates `amount_after` for its recursive call incorrectly.
The calculation assumes that folds inside the changed range are being
deleted, but this is not always the case.

This means nested folds that start after the changed range of lines are
shifted an incorrect amount.

We fix this by calculating the `amount_after` differently if the folds
inside the changed range are not being deleted.
2017-03-02 00:18:00 +01:00
Justin M. Keyes
3c740f7424 vim-patch:8.0.0135
Problem:    An address relative to the current line, ":.,+3y", does not work
            properly on a closed fold. (Efraim Yawitz)
Solution:   Correct for including the closed fold. (Christian Brabandt)

ded2782783
2017-03-02 00:08:51 +01:00
Justin M. Keyes
706b01ba79 Merge #6114 'Partial string handling refactoring'. 2017-02-17 02:08:21 +01:00
Kurt Bonatz
0e44916fff ex_docmd.c: Allow unescaped spaces in :edit filename (#6119)
This makes :edit consistent on all platforms. 
Also affects :argedit, et al. Wild (tab) completion doesn't work, though.

Closes #6010
2017-02-15 11:12:31 +01:00
ZyX
095e6cc2e0 *: Fix linter errors 2017-02-15 03:15:47 +03:00
ZyX
efa2682e3b *: Partial string handling refactoring
Main points:

- Replace `char_u` with `char` in some cases.
- Remove `str[len] = NUL` hack in some cases when `str` may be considered
  `const`.
2017-02-15 02:48:33 +03:00
Marco Hinz
c05e7f0fdd vim-patch:7.4.2024
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.

7c0a2f367f
2017-02-04 17:55:46 -05:00