Commit Graph

2833 Commits

Author SHA1 Message Date
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
Robin Allen
d5b5063622 Notify attached UIs whenever menus change
This adds a redraw notification "update_menu" which is sent whenever
Vim's menus are changed by the :menu command and friends.
2015-08-21 14:23:50 +01:00
oni-link
250aca4f89 terminal.c: Events in terminal_enter() should not free the terminal
It is possible for a processed event in the input loop of
terminal_enter() to destroy the terminal. But this is undetected by the
function and it still tries to use the freed terminal.

Use a reference count to delay the freeing of the terminal until
terminal_enter() returns.

Fixes #3112
2015-08-21 10:53:31 +02:00
Steven Oliver
2bce7c9bae Fix lint errors #3204
Remove formatting errors from arabic.c and cursor_shape.c
2015-08-20 23:34:52 -04:00
Justin M. Keyes
f253c8d9b4 Merge pull request #3203 from jamessan/vim-7.4.813
Add getcharsearch() and setcharsearch()
2015-08-20 12:45:11 -04:00
James McCoy
f6f28c18e5 7.4.813
patch 7.4.813
Problem: It is not possible to save and restore character search state.
Solution: Add getcharsearch() and setcharsearch().  (James McCoy)

https://github.com/vim/vim/releases/tag/v7.4.813
https://github.com/vim/vim/releases/tag/v7.4.826

Signed-off-by: James McCoy <vega.james@gmail.com>
2015-08-20 10:32:25 -04:00
Justin M. Keyes
2647677618 Merge pull request #2159 from ZyX-I/auto-unicode
Generate unicode tables with script
2015-08-19 23:41:12 -04:00
James McCoy
08bae45337 Update patches list, 7.4.791 - 7.4.826
Signed-off-by: James McCoy <vega.james@gmail.com>
2015-08-19 22:04:24 -04:00
Justin M. Keyes
8f09fa1a49 os/fs.c: remove os_file_is_readonly()
os_file_is_readonly() in its current form is equivalent to
!os_file_is_writable(). This does not appear to be a bug, because Vim's
use of check_file_readonly() (which we changed to os_file_is_readonly())
is equivalent to !os_file_is_writable() in every case.

os_file_is_readonly() also fails this test:

    returns false if the file is non-read, non-write

A more useful form would define behavior under these cases:

  - path is executable (but not writable)
  - path is non-existent
  - path is directory

But there is no reason for os_file_is_readonly() to exist, so remove it.
2015-08-17 01:15:04 -04:00
Justin M. Keyes
86c38ef126 os_file_is_*: libuv impl
- uv_fs_access() is far more robust than access(). In particular, it
  handles utf16 paths (Windows).
- Still need R_OK, W_OK in win_defs.h
2015-08-17 01:07:48 -04:00
Rui Abreu Ferreira
b1e18dc393 win_defs.h: define R_OK, W_OK for MSVC. 2015-08-17 01:07:48 -04:00
Justin M. Keyes
3ce1b4015f fs.c: implement os_file_is_readable()
Use access() because:

- We already use it for os_file_is_writable()
- Vim's old check_file_readonly() ends up using access() after all.
2015-08-17 01:06:00 -04:00
Justin M. Keyes
521a9816d0 Merge pull request #3179 from ZyX-I/clint-find-new-errors
Add ability to suppress errors to clint.py
2015-08-16 17:17:34 -04:00