Commit Graph

641 Commits

Author SHA1 Message Date
Jurica Bradaric
86406ffc80 eval.c: Fix linter errors. 2016-06-09 20:34:43 +02:00
Jurica Bradaric
b2d15fbebc vim-patch:7.4.1464
Problem:    When the argument of sort() is zero or empty it fails.
Solution:   Make zero work as documented. (suggested by Yasuhiro Matsumoto)

5131c144fe
2016-06-09 20:34:43 +02:00
Jurica Bradaric
81b9b37e01 vim-patch:7.4.1394
Problem:    Can't sort inside a sort function.
Solution:   Use a struct to store the sort parameters. (Jacob Niehus)

0b962473dd
2016-06-09 20:34:43 +02:00
Aleksa Sarai
2c44d92572 eval: allow setting cwd in {jobstart,termopen}()
Processes in vim are always started in the current directory, which
causes issues when the process is a daemon and the current directory is
a mountpoint. Fix this by adding an option to set the cwd of the new
process with jobstart(). In addition, fix termopen() so that it actually
uses the cwd option from the dict (it couldn't previously set the cwd
value due to dead code).

Signed-off-by: Aleksa Sarai <cyphar@cyphar.com>
2016-06-07 03:48:03 +10:00
Rui Abreu Ferreira
6ed9d47a6e pty_process: split into plat-specific files (#3976) 2016-06-04 20:02:56 -04:00
Justin M. Keyes
02e6914a93 Merge pull request #4860 from jamessan/tab-win-precedence
tcd: Determine correct scope from user input
2016-06-04 11:05:05 -04:00
Justin M. Keyes
f421757e57 reorg 2016-06-03 14:15:36 -04:00
James McCoy
4e9f7684f6 tcd: Determine correct scope from user input
If a user specifies both {window} and {tab}, `getcwd()`/`haslocaldir()`
are using "tab" as the scope that should be reported.  However, it
should be using "window" as the scope, within the specified tab page.
2016-06-01 07:02:31 -04:00
James McCoy
f735ee90c2 tcd: Use user-provided tab page for getcwd()/haslocaldir()
The initial implementation for `:tcd` always used `curtab` to find the
specified window.  This would result in either inaccurate information or
an unexpected error (e.g., when there are more windows in the
user-specified tab page vs. the current tab page).
2016-06-01 06:48:41 -04:00
Björn Linse
d6d8073939 timers: stop all timers on teardown 2016-06-01 11:09:15 +02:00
ZyX
77540a0458 *: Rename main loop variable from loop to main_loop
Current name is inappropriate for the following reasons:

1. It is often masked by local `loop` variables.
2. It cannot be searched for. There are many `loop` variables where `loop` is
   some local variable. There are many cases when “loop” word is used in
   a comment.
3. It is in any case bad idea to use a generic name as a name of the global
   variable. Best if global has module prefix: this is why it is in `main.h`:
   `main_loop` both stands for “a main loop” and “a loop defined in `main.*`”.

Since I have no idea how to list every occurrence of this variable method used
to rename it is “remove it from globals.h, try to compile, fix errors”. Thus if
some occurrence was hidden under false `#if` branch it was not replaced.
2016-05-30 20:58:15 +03:00
Charles Joachim
c2a1821611 ops.c: enable -Wconversion warning 2016-05-30 12:05:08 -04:00
ZyX
5758432be2 eval: Stop executing *eval() function at error
Fixes #4822
Closes #4823
2016-05-27 15:11:53 +03:00
Shougo Matsushita
41c0dfd545 Port capture() function
https://groups.google.com/forum/#!msg/vim_dev/H3Z3ChSUh_4/beZs6KzYdBsJ
2016-05-27 10:33:44 +09:00
James McCoy
ccef5c9c77 vim-patch:7.4.1567
Problem:    Crash in assert_fails().
Solution:   Check for NULL. (Dominique Pelle)  Add a test.

1abb502635
2016-05-25 21:02:52 -04:00
James McCoy
bc306ab5aa vim-patch:7.4.1096
Problem:    Need several lines to verify a command produces an error.
Solution:   Add assert_fails(). (suggested by Nikolay Pavlov)
            Make the quickfix alloc test actually work.

a260b87d9d
2016-05-25 17:13:05 -04:00
Björn Linse
2519638796 timers: racy situation found on travis 2016-05-25 12:51:17 +02:00
Björn Linse
61e8adb25e eval: implement timers. vim-patch: 7.4.1578, 7.4.1831
For the moment, timers are triggered during sleep,
but not in wait-for-input modes, like press-RETURN or f_getchar()
2016-05-24 22:08:56 +02:00
Jurica Bradaric
093f8d5376 vim-patch:7.4.1516
Problem:    Cannot change file permissions.
Solution:   Add setfperm().

8049253b96
2016-05-19 22:46:50 +02:00
Jurica Bradaric
b4cbfd3c08 vim-patch:7.4.1102
Problem:    Debugger has no stack backtrace support.
Solution:   Add "backtrace", "frame", "up" and "down" commands. (Alberto
            Fanjul, closes vim/vim#433)

f1f60f859c
2016-05-17 20:54:42 +02:00
oni-link
f583bc94fc term_close: fix use-after-free
Closes #4393
2016-05-15 19:47:24 -04:00
Shougo Matsushita
acc5d08b37 'termguicolors' #4690
TODO: Only works at startup (i.e., in the user's init.vim/vimrc/--cmd),
      but it should probably work at any time.

---

patch 7.4.1799
Problem:    'guicolors' is a confusing option name.
Solution:   Use 'termguicolors' instead. (Hirohito Higashi)
61be73bb0f

patch 7.4.1806
Problem:    'termguicolors' option missing from the options window.
Solution:   Add the entry.
8e3d1b6326

patch 7.4.1808
Problem:    Using wrong feature name to check for 'termguicolors'.
Solution:   Use the right feature name. (Ken Takata)
8a24b794b8

patch 7.4.1809
Problem:    Using wrong short option name for 'termguicolors'.
Solution:   Use the option name.
868cfc19bb
2016-05-10 06:04:26 -04:00
Justin M. Keyes
0bfc1f33a0 Merge pull request #4588 from KillTheMule/vim-patch-1285
vim-patch: 7.4.1285
2016-05-10 03:02:07 -04:00
KillTheMule
dc91397463 vim-patch:7.4.1285
Problem:    Cannot measure elapsed time.
Solution:   Add reltimefloat().

79c2c881bb

Applied manually. None of the ifdef's applies anymore, and proftime_T was
changed into an uint64_T, so the function profile_float to convert proftime_T to
float is not needed in nvim.
2016-05-08 20:15:07 +02:00
Justin M. Keyes
71ac92efc7 Merge pull request #4720 from jbradaric/vim-7.4.1042
vim-patch:7.4.1042
2016-05-10 01:40:32 -04:00
Jurica Bradaric
2b238814d7 vim-patch:7.4.1042
Problem:    g-CTRL-G shows the word count, but there is no way to get the word
            count in a script.
Solution:   Add the wordcount() function. (Christian Brabandt)

ed767a2073
2016-05-08 00:23:42 +02:00
James McCoy
fa65e95039 Linting all the days 2016-05-06 20:53:22 -04:00
James McCoy
3a35f63640 vim-patch:7.4.1015
Problem:    The column is not restored properly when the matchparen plugin is
            used in Insert mode and the cursor is after the end of the line.
Solution:   Set the curswant flag. (Christian Brabandt).  Also fix
            highlighting the match of the character before the cursor.

c21d67e33c
2016-05-06 20:49:19 -04:00
KillTheMule
00c35ab3b4 vim-patch:7.4.672
Problem:    When completing a shell command, directories in the current
            directory are not listed.
Solution:   When "." is not in $PATH also look in the current directory for
            directories.

b5971141df

Most of it applied manually.
2016-05-02 21:09:43 +02:00
ZyX
cf4e1fb0f4 *: Fix new linter errors
Originally there were 128 new errors, so I thought this is a good idea to fix 
all of them. Of course, this commit also fixes many suppressed errors.
2016-05-01 20:35:51 +03:00
Björn Linse
6cc15ccc3b normal: convert MCHAR etc operator and register types to enum MotionType 2016-05-01 13:40:01 +02:00
HiPhish
f644d8d88e Fix coverity errors in haslocaldir() and getcwd.
The Vim function `haslocaldir()` would crash if the users called it with
the two arguments `-1, -1`. Now it returns `0` in that case.

The coverity issue was complaining about a NULL dereference, but there
can never be a case where the pointer `tp` is NULL and being
dereferenced. An assertion has been put in place to satisfy coverity.

Furthermore the functions themselves have been cleaned up. First of all
the documentation comment for the different scopes has been extended and
a macro for the minimum scope has been introduced. In both functions any
time a scope is used as a range (e.g. in a loop) macros instead of
actuals scopes are used, that makes the functions more robust if new
scopes are added.

Second, in the implementation of `getcwd()` there was a superfluous
loop, it has been removed completely. I also changed all `goto end` to
plaing `return` statements by moving the allocation of `cwd` down, that
way there is no need for `goto` anymore.
2016-04-27 18:53:00 +02:00
Justin M. Keyes
2adb8acebd Merge pull request #4649 from justinmk/vimpatches
vim-patch:7.4.1092
2016-04-27 00:04:36 -04:00
Justin M. Keyes
e4146dd7df remove disable_char_avail_for_testing()
test_cursor_func.vim hangs at the call to
disable_char_avail_for_testing(). The test does not actually need this
function (and it correctly fails if the fix from 7.4.1300 is reverted).
Given that disable_char_avail_for_testing is a gigantic hack, if we can
avoid it let's do so.
2016-04-26 23:32:01 -04:00
Justin M. Keyes
ea483231c5 Merge pull request #4593 from ZyX-I/length-functions
Make some function accept strings with length in place of just strings
2016-04-26 23:12:42 -04:00
Justin M. Keyes
67d5a1aae2 vim-patch:7.4.1092
Problem:    It is not simple to test for an exception and give a proper error
            message.
Solution:   Add assert_exception().

a803c7f940
2016-04-25 06:34:29 -04:00
KillTheMule
cf434d2ae4 Satisfy the linter. 2016-04-25 06:34:28 -04:00
KillTheMule
11fd965554 vim-patch:7.4.1300
Problem:    Cannot test CursorMovedI because there is typeahead.
Solution:   Add disable_char_avail_for_testing().

2ab375e54e

Most of it manually applied.
2016-04-25 06:34:28 -04:00
Justin M. Keyes
ef205c3851 Merge pull request #4325 from watiko/vim-7.4.984
vim-patch:7.4.{984,1093}
2016-04-25 04:17:45 -04:00
Justin M. Keyes
588bc1d958 Merge #4303 'vim-patch:7.4.{951,1143,1144}'. 2016-04-25 03:56:33 -04:00
Justin M. Keyes
3d7a6e4d54 Merge pull request #4367 from jbradaric/vim-7.4.1107
vim-patch:7.4.{1107,1114,1116,1117,1120}
2016-04-22 04:11:45 -04:00
Justin M. Keyes
5ebffaae4e Merge #3229 ':tcd' 2016-04-21 03:15:52 -04:00
Björn Linse
ce17d03180 eval: let getreg() return valid list for an undefined register
vim-patch:7.4.1755
this prevents a crash when the list is used in setreg() later
2016-04-21 18:11:06 +02:00
Justin M. Keyes
89e6973fe2 tcd: doc, error messages 2016-04-21 03:15:08 -04:00
HiPhish
ec71d87b81 Implement tab-local working directory feature.
New ex commands: 'tcd', 'tchdir'
Changed Vimscript functions: 'haslocaldir', 'getcwd'

The ex-commands ':tcd' and ':tchdir' are the tab-local equivalents of
':lcd' and ':lchdir'. There are no new Vimscript functions introduced,
instead the functions 'haslocaldir' and 'getcwd' take in optional
arguments. See the documentation for details

Since there is now different levels of local directory a simple boolean
at source level is no longer sufficient; a new enumeration type is used
for the scope-level from now on.

The documentation has been accommodated for these new commands and
functional tests have been written to test the feature.
2016-04-20 12:52:31 +02:00
Jurica Bradaric
2dfc8de1cf Merge tempfile.c back into fileio.c 2016-04-20 08:25:51 +02:00
Jurica Bradaric
50a7517a6d vim-patch:7.4.1107
Problem:    Vim can create a directory but not delete it.
Solution:   Add an argument to delete() to make it possible to delete a
            directory, also recursively.

da440d21a6
2016-04-20 08:25:16 +02:00
Justin M. Keyes
cd10cdd1b4 Merge pull request #4589 from gregorias/patch_1113
vim-patch: 7.4.1113
2016-04-20 01:34:29 -04:00
Grzegorz Milka
02fa6b18d6 vim-patch:7.4.1113
Problem:    Using {ns} in variable name does not work. (lilydjwg)
Solution:   Fix recognizing colon.  Add a test.
2016-04-19 19:54:52 +02:00
Rui Abreu Ferreira
5c6592fdab v:windowid #4608
Set v:windowid as writeable (but read only in the sandbox).

References #3626
2016-04-19 02:49:34 -04:00