Commit Graph

2595 Commits

Author SHA1 Message Date
Nicolas Cornu
600bb285f6 Replace TRUE/FALSE with true/false in move.c 2015-09-08 02:34:50 +02:00
Nicolas Cornu
16e9c853df hasFolding return bool now 2015-09-08 02:34:50 +02:00
Nicolas Cornu
63a39015f5 hasFoldingWin now return bool 2015-09-08 02:34:43 +02:00
Rui Abreu Ferreira
5230aa8de9 MSVC: Fix declaration generation. #3301 2015-09-07 20:06:20 -04:00
Nicolas Cornu
41778e2e10 win_T.w_cline_folded from int to bool 2015-09-07 15:03:47 +02:00
oni-link
6ea21f5668 vim-patch:7.4.609
Problem:    For complicated list and dict use the garbage collector can run
            out of stack space.
Solution:   Use a stack of dicts and lists to be marked, thus making it
            iterative instead of recursive. (Ben Fritz)

2459a5ecaa
2015-09-07 13:03:15 +02:00
Thiago de Arruda
eb001a4abd tui: Refactor for running in another thread 2015-09-06 09:18:53 -03:00
Thiago de Arruda
9f9710aab4 ui: Implement module for thread-safe communication with U
The ui_bridge.c module implements a surrogate UI that forwards calls to another
thread.
2015-09-06 09:18:53 -03:00
Thiago de Arruda
c20b802511 loop: Improvements for thread-safety
- Implement `loop_schedule` method for queueing events from other threads
- Make `loop_poll_events` `recursive` static variable a field of the Loop
  structure
2015-09-06 09:18:53 -03:00
Thiago de Arruda
203a4d5650 queue: Allow direct appending to parent queues 2015-09-06 09:18:52 -03:00
Thiago de Arruda
2a0ff9f5cf log: Make logging thread-safe 2015-09-06 09:18:52 -03:00
Thiago de Arruda
9ec240e03f build: Disable gcov on TSAN builds
It seems GCOV does not play well with TSAN as it reports false data races
2015-09-06 09:18:52 -03:00
Thiago de Arruda
f5c5cdb306 tui: Move screen state tracking to new "ugrid" module
The ugrid module implements a unicode "drawing" grid and is used to store TUI
screen state. Later this module will be reused in other layers.
2015-09-06 09:18:52 -03:00
Thiago de Arruda
cb9ae4e373 tui: move term_input.inl into the input.c module 2015-09-06 09:18:52 -03:00
oni-link
615e298a94 vim-patch:7.4.602
Problem:    ":set" does not accept hex numbers as documented.
Solution:   Use vim_str2nr(). (ZyX)

18400e6430
2015-09-06 07:30:52 +02:00
Rui Abreu Ferreira
e2cbac7634 MSVC: Include limits.h for INT_MAX. #3290 2015-09-05 12:02:59 -04:00
Felipe Morales
77e416b711 do_path_expand: Avoid non-readable directories. #3273
Closes https://github.com/neovim/neovim/issues/3164
Closes https://github.com/neovim/neovim/issues/3194
Closes https://github.com/neovim/neovim/issues/3221

Helped-by: @splinterofchaos
Helped-by: @oni-link
Helped-by: @justinmk
2015-09-04 19:56:37 -04:00
Felipe Morales
11b8c76e41 fixup: appease clint 2015-09-04 11:07:36 +02:00
Steven Oliver
f7c5dc4db2 Remove instances of TRUE/FALSE macro
memory.c
os_unix.c
path.c
2015-09-04 11:07:33 +02:00
Rui Abreu Ferreira
8bf141dea7 Windows: Move file_info_old declaration out of UNIX block #3260 2015-08-31 03:08:33 -04:00
Felipe Morales
acdac914d5 clipboard: avoid clipboard during :global. #2809
This is equivalent to patches 7.4.396, 7.4.445 and 7.4.598.

vim-patch:7.4.396

Problem:    When 'clipboard' is "unnamed", :g/pat/d is very slow.
(Praful)
Solution:   Only set the clipboard after the last delete. (Christian
Brabandt)

1f285eb49a

vim-patch:7.4.445

Problem:    Clipboard may be cleared on startup.
Solution:   Set clip_did_set_selection to -1 during startup. (Christian
	    Brabandt)

1a19d37d90

vim-patch:7.4.598

Problem:    ":tabdo windo echo 'hi'" causes "* register not to be
changed.
	    (Salman Halim)
Solution:   Change how clip_did_set_selection is used and add
	    clipboard_needs_update and global_change_count.  (Christian
	    Brabandt)

af6a579263

Co-Author: @bfredl
2015-08-30 23:40:12 -04:00
Mathieu Xhonneux
79b6ab21d8 termopen(): remove name feature. #3181
Problem:  Commands like `:e term://top` display `term://.//PID:(null)`
instead of `term://.//PID:top`.

Solution: Remove the optional `name` argument (it allowed
ambiguous/potentially destructive cases, so it was problematic anyway).

Closes #3113
Closes #2924
2015-08-30 17:15:50 -04:00
Seth Jackson
8229651087 Windows: Define USE_CRNL on Windows. #3249 2015-08-28 03:02:40 -04:00
Rui Abreu Ferreira
3901f59876 Windows: restore 'shell', 'shellcmdflags' defaults. #3256
- On Windows the default shell is cmd.exe and the shell flag is /c
- vim-patch:0
2015-08-28 02:56:06 -04:00
Justin M. Keyes
f15b864239 MSVC: use MSVC instead of GCC-like compiler flags.
- We can build with /W4, but it gives thousands of warnings.
- _CRT_NONSTDC_NO_DEPRECATE disables warnings about POSIX functions.
  https://msdn.microsoft.com/en-us/library/ms235384.aspx
- _CRT_SECURE_NO_WARNINGS
  https://msdn.microsoft.com/en-us/library/8ef0s5kh.aspx
2015-08-27 22:00:34 -04:00
Seth Jackson
b9d17c6a8a Windows: avoid "uv_" naming conflicts. #3225 2015-08-27 21:47:49 -04:00
Chiu-Hsiang Hsu
56fe0c956f version.c: mark patches NA #3252
* .777 (README)
694cac7a35

* .778 (Coverity warnings) presumably fixed by 9de544c785
ae2fe73abc

* .780 (Compiler complains)
1db43b1145

* .783 (copy_chars, copy_spaces) see c729286604
2536d4f396

* .788 (fix build, #ifdef) we don't have integrated crypto, see #699
5cbb8dbc32

* .794 (Make_mvc.mak) we have a completely different build system
d4a95c3bc5

* .796 (Compiler warnings)
33c3a694fc

Reviewed-by: Michael Reed <Pyrohh@users.noreply.github.com>
2015-08-27 17:07:07 -04:00
Michael Reed
2d50a95601 os/os_defs.h cleanup: Remaining signal stuff
RETSIGTYPE, SIGRETURN, and SIGDEFARG are always defined the same, so
inline them for simplicity; SIGDUMMYARG, however, is unused, so remove
it.

Even if these things don't work on windows, the signal handler in
if_cscope.c is already wrapped with '#idef UNIX', as is its only call
site.

Reviewed-by: Justin M. Keyes <justinkz@gmail.com>
2015-08-27 16:56:05 -04:00
Michael Reed
3b99d8d0dd os/os_defs.h cleanup: SIGHASARG
It's always defined, so the #else is redundant.
2015-08-27 16:54:36 -04:00
Michael Reed
43bc42d94e os/os_defs.h cleanup: SIGHAS3ARGS
SIGHAS3ARGS appears in Vim's source code like this:

    /* List 3 arg systems here. I guess __sgi, please test and correct me. jw. */
    if defined(__sgi) && defined(HAVE_SIGCONTEXT)
     define SIGHAS3ARGS
    endif

Given we don't support SGI, remove it.
2015-08-27 16:54:36 -04:00
Michael Reed
02740689a7 os/os-defs.h cleanup: Don't include <time.h>
Any files which need definitions from <time.h> should include it,
not "os/os_defs.h".
2015-08-27 16:54:36 -04:00
Justin M. Keyes
b2ece148e6 vim-patch:7.4.836 #3244
Problem:    Accessing unitinialized memory.
Solution:   Add missing calls to init_tv(). (Dominique Pelle)

0a38dd29d6
2015-08-26 11:55:29 +02:00
Björn Linse
df9d7489ca test59: Delete oldtests 58 and 59 2015-08-26 10:31:08 +02:00
Rui Abreu Ferreira
f81302d5b0 MSVC: include os/os_defs.h for inline. #3239 2015-08-25 23:08:39 -04:00
Michael Reed
2b39453912 Move MAX and MIN macros to macros.h
vim.h is too big, and these were missing parens around the arguments.
These may already be defined in <sys/param.h> or <windef.h>, so guard
them with an #ifndef.

extracted from #810
2015-08-25 21:31:12 -04:00
Seth Jackson
7c135b8ccb MSVC: Define inline and restrict. #3237
MSVC 2015 defines __func__ (C++11).
    https://msdn.microsoft.com/en-us/library/dn919276.aspx

MSVC only allows inline in C++ and requires __inline in C instead.
    https://msdn.microsoft.com/en-us/library/bw1hbe6y.aspx
2015-08-25 19:35:39 -04:00
Nikolay Orlyuk
bbe24da869 fix strict-overflow cases #3236 2015-08-25 19:31:08 -04:00
Justin M. Keyes
6cf2925f63 screen.c: remove screen_char_attr #3235
screen_char_attr is always 0, it was obviated by
3baba1e7bc.

References #1889
2015-08-25 18:59:41 -04:00
Chiu-Hsiang Hsu
54973477e7 vim-patch:7.4.799
Problem:    Accessing memory before an allocated block.
Solution:   Check for not going before the start of a pattern.  (Dominique Pelle)

https://github.com/vim/vim/commit/v7-4-799
2015-08-25 18:43:49 -04:00
Seth Jackson
2753be6e4d Windows: Define ssize_t and SSIZE_MAX. #3228
Remove R_OK, W_OK defines because os/os.h includes <uv.h> which includes
uv-win.h which defines R_OK and W_OK.
2015-08-25 18:31:22 -04:00
Felipe Morales
45121a267f defaults: set 'laststatus' to 2. #2876 2015-08-24 00:48:32 -04:00
Justin M. Keyes
7280e8c365 remove references to <sys/time.h>
Since gettimeofday() was replaced by os_time in
fb5a786bdb we do not need sys/time.h.
2015-08-24 00:27:30 -04:00
Rui Abreu Ferreira
e7b58b4e53 Windows: is_executable(): do not check exec bit.
In Windows there is no equivalent to the filesystem executable bit; the
documentation states that for Windows :executable() returns
1 for all files. But this behaviour was broken because is_executable()
checked for the UNIX bit.

When WIN32 is defined we now skip the S_IXUSR check.
2015-08-23 23:53:24 -04:00
Rui Abreu Ferreira
5090d94699 Windows: Add has('win32'). #3223
References #810
2015-08-23 14:52:03 -04:00
Felipe Morales
be29de1fa2 defaults: set 'listchars' to "tab:> ,trail:-,nbsp:+". #2872
Re: https://github.com/neovim/neovim/issues/2676
2015-08-22 13:48:48 -04:00
Thiago de Arruda
105a72eabc terminal: Fix use after free
Since close_cb may free the terminal structure, save the "wipe" flag before
calling it.
2015-08-22 01:01:14 -03:00
Thiago de Arruda
3d2d44037f terminal: Only wipe buffer terminal_close wasn't called
After @250aca4f8938 it is possible that terminal_close will be called without
invoking the close_cb(which normally destroys the terminal structure). If this
happens, the terminal buffer will already be deleted so there's no need to call
`bwipeout!`.
2015-08-21 13:28:53 -03:00
Thiago de Arruda
cb87670ff8 main: Initialize event loop before command_line_scan
The call to `event_init()` was too late. `command_line_scan()` in `main()` could
already need the loop initialized. Ref https://github.com/neovim/neovim/issues/3045#issuecomment-123405833.

A consequence of this change is that it was necessary to move the
`channel_from_stdio()` call to `command_line_scan()` when embedded_mode is set.
2015-08-21 13:28:53 -03:00
Thiago de Arruda
1beee0685d eval: Protect job callbacks from being redefined
ref: #3188
2015-08-21 13:28:49 -03:00
Thiago de Arruda
6e59b7b0e5 tui/remote_ui: Fix some regressions
- Explicitly set the SignalWatcher event queue. Without this, the watcher will
  publish events to the fast queue, resulting in resize bugs for certain
  terminals(#2322).
- Set `async = false` to the `remote_ui_attach` handler(It was a deferred
  before, this is the new equivalent)
2015-08-21 10:56:57 -03:00