Commit Graph

1203 Commits

Author SHA1 Message Date
Thiago de Arruda
a16cd73ead ui: Fix redraw bug caused by race conditions with remote clients
Before sending a resize command to the UIs, flush the current output buffer to
ensure no redraw commands for a screen with invalid size are processed.
2015-01-12 09:47:42 -03:00
Thiago de Arruda
418a49f7f1 shell: When executing command, use screen functions to display output
By calling ui_write directly, the internal screen isn't updated and invalid
bytes aren't handled, which breaks the abstract UI model.
2015-01-12 09:47:41 -03:00
Thiago de Arruda
7703fd328c ui: Use ui_linefeed to handle line breaks correctly
ui_linefeed will scroll the screen when it becomes full. This can happen when
executing external commands.
2015-01-12 09:47:41 -03:00
Thiago de Arruda
e1da130ca9 ui: Fix out_flush/ui_write behavior to always flush for abstract_ui 2015-01-12 09:47:41 -03:00
Thiago de Arruda
e3b2907f2f channel: Make pending_requests a field of the Channel type
This is required to send redraw notifications while a msgpack-rpc call is being
performed by another channel.
2015-01-12 09:47:41 -03:00
Thiago de Arruda
d992213678 ui: Reimplement :suspend command for remote UIs.
- Remove suspend method from the UI protocol
- Handle `:suspend` by disconnecting the last channel that sent a request to
  nvim.
2015-01-12 09:47:41 -03:00
Thiago de Arruda
abc147a977 ui: Don't parse abstract_ui codes if there are no attached UIs 2015-01-12 09:47:41 -03:00
Thiago de Arruda
cba9162215 channel: Free channels created from libuv streams 2015-01-12 09:47:41 -03:00
Thiago de Arruda
74c247f75b ui: Add 'rgb' parameter to ui_attach
When set to false, nvim will send cterm color numbers with `highlight_set`.
2015-01-12 09:47:41 -03:00
Thiago de Arruda
a8fe32040b ui: Dont resize screen if no UIs are attached
This prevents a race condition when a UI attaches early in the program and can
receive redraw commands for a invalid screen
2015-01-12 09:47:41 -03:00
Thiago de Arruda
869c734890 screen: Fix bug that causes separator to always be redraw for utf8 2015-01-12 09:47:41 -03:00
Thiago de Arruda
a4525bc523 screen: Remove abstract_ui test in reset_cterm_colors 2015-01-12 09:47:40 -03:00
Thiago de Arruda
c1252a5615 syntax: Take rgb fg/bg when allocating cterm attr number 2015-01-12 09:47:40 -03:00
Thiago de Arruda
0887c5446e ui: Merge standout and reverse into one attribute 2015-01-12 09:47:40 -03:00
Thiago de Arruda
0219c87534 input: Ignore invalid "<" key sequences
Ignoring invalid key sequences simplifies input handling in UIs. The only
downside is having to use "<lt>" everytime a "<" is needed on functional tests.
2015-01-12 09:47:40 -03:00
Thiago de Arruda
213c3c3e53 ui: Fix ui resizing and change some method names 2015-01-12 09:47:34 -03:00
Thiago de Arruda
9b30abcecb remote_ui: Move handler registration to remote_ui.c
Also don't defer attach_ui handling
2015-01-10 21:41:32 -03:00
Thiago de Arruda
748920d505 ui: Test for abstract_ui whenever a minimal t_colors value is required
t_colors should not be checked when abstract_ui is active, because nvim UI is
not limited to a terminal.
2015-01-10 21:41:32 -03:00
Thiago de Arruda
6815163606 ui: Add mising T_CSV code to abstract_ui termcap
This code is required for screen.c to set a vertical scroll region, which is a
great optimization when scrolling vertically split windows.
2015-01-10 21:41:32 -03:00
Thiago de Arruda
b17005edd9 ui: Increase cursor row when text being rendered would cross its limit 2015-01-10 21:41:31 -03:00
Thiago de Arruda
4f5f246a95 ui: Add update_fg/update_bg methods
It is necessary to notify the UI when the default background/foreground colors
change in order to render correctly.
2015-01-10 21:41:31 -03:00
Justin M. Keyes
a684cc175a Merge pull request #1761 from oni-link/speed.up.gc
Speed up garbage collection (Issue 1687).
2015-01-10 09:55:55 -05:00
Eliseo Martínez
85904c992e Remove long_u: term: Remove dead code using long_u.
get_long_from_buf() seems not to be used anywhere, and is the only place
where instances of long_u remain at term.c.
2015-01-10 10:52:21 +01:00
Eliseo Martínez
31c8440fee Remove long_u: term: Enable -Wconversion. 2015-01-10 10:52:21 +01:00
Eliseo Martínez
2b93edde93 Remove long_u: hardcopy: Refactor long_u.
- <color_related_stuff>: long_u --> uint32_t

  Everywhere long_u was used to hold a color value.
  Color values are supposed to be 32 bits at most.
  Supported architectures have 32 bits ints, so we could have used plain
  ints. But this wouldn't be future-proof, and would be wasteful if a
  future architecture has ints bigger than 32 bits.
  So, uint32_t is perfect to achieve optimal packing no matter the
  architecture.

- bytes_to_print/bytes_printed: long_u --> size_t

  Seems like the correct thing, and gets rid of some casts.
2015-01-10 10:52:20 +01:00
Eliseo Martínez
ed8fbfaf5a Remove long_u: hardcopy: Enable -Wconversion. 2015-01-10 10:52:20 +01:00
Eliseo Martínez
aeb68bbb07 coverity/13763: Out-of-bounds read: FP.
Problem    : Out-of-bound read from a buffer.
Diagnostic : False positive.
Rationale  : nv_max_linear should always be less than nv_cmd_idx size
             (NV_CMDS_SIZE).
Resolution : Assert rationale.
2015-01-08 22:51:53 +01:00
Eliseo Martínez
d96e1c1ec3 coverity/13761: Out-of-bounds-write: FP.
Problem    : Out-of-bounds-write to a buffer.
Diagnostic : False positive.
Diagnostic : Suggested error location is under isupper(c) condition,
             which makes suggested error impossible. Coverity just fails
             to take isupper() postcondition into account.
Resolution : Assert isupper() postcondition.
2015-01-08 21:10:47 +01:00
Eliseo Martínez
0f029454ad coverity/13758: Out-of-bounds read: FP.
Problem    : Out-of-bounds read from a buffer.
Diagnostic : False positive.
Rationale  : Suggested error path implies isupper(*str) being true,
             which makes error vanish. Coverity just fails to take into
             account isupper() postcondition.
Resolution : Assert isupper() postcondition.
2015-01-08 21:10:46 +01:00
Björn Linse
40d77a3d2b eval: fix incorrect refcount in list_append_list 2015-01-07 17:38:41 +01:00
Justin M. Keyes
050c6515f8 Merge pull request #1763 from epaulson10/vim-7.4.551
vim-patch:7.4.551
2015-01-06 00:12:53 -05:00
Florian Walch
099fdb49a7 Change 'history' default to 50.
Default as of Vim 7.4.336 (not yet ported). Runtime files already
mention this new default value.
2015-01-04 21:47:59 +01:00
Erik Paulson
55f00f44d3 vim-patch:7.4.551
Problem:    "ygn" may yank too much. (Fritzophrenic)  Issue 295.
Solution:   Check the width of the next match. (Christian Brabandt)

https://code.google.com/p/vim/source/detail?r=v7-4-551
2015-01-04 12:23:48 -08:00
Justin M. Keyes
10ff6ee0d7 Merge pull request #1762 from steveno/patch-1
Remove unneeded global WantQueryMouse
2015-01-03 16:06:25 -05:00
Florian Walch
ceb54c55ad vim-patch:7.4.559
Problem:    Appending a block in the middle of a tab does not work correctly
	    when virtualedit is set.
Solution:   Decrement spaces and count, don't reset them. (James McCoy)

https://code.google.com/p/vim/source/detail?r=v7-4-559
2015-01-03 16:08:51 +01:00
Steven Oliver
f3b06ba6d1 globals.h: Remove unused global variable 2015-01-02 21:10:08 -05:00
Scott Prager
338dd10f33 sha: define SHA256_BUFFER_SIZE and SUM_SIZE. 2015-01-02 18:07:01 -05:00
Scott Prager
2e873c8767 sha256.c: Enable -Wconvert and clint.
* Add sha256.c/h to clint-files.txt.
* Add sha256.c to CONV_SRCS in src/nvim/CMakeLists.txt.
* Use size_t for lengths and const for read-only parameters.
* Use restrict keyword.
* Refine #includes.
2015-01-02 18:07:01 -05:00
oni-link
36ba1d9fba Speed up garbage collection.
For garbage collection all lists are kept in first_list, a list of all
lists.

free_unref_items() searches through first_list and removes unreferenced
lists from it (by calling list_free(..., FALSE)). But after a list was
removed, the search continues from the beginning of first_list (not sure
how many lists were really removed and where to continue in first_list).

This is not necessary anymore since vim-patch 7.0.135, because a call to
list_free(...,FALSE) makes sure, that no other lists (and dictionaries)
are freed. So we always know, that the next list in first_list is
still valid (allocated or NULL) and can be used to continue the search.

Likewise for dictionaries.

Original patch by Ariya Mizutani
https://groups.google.com/forum/#!searchin/vim_dev/GC/vim_dev/DBYOdHQWvqY/1WH04_dwETIJ
2014-12-31 17:08:26 +01:00
Justin M. Keyes
a31bcfb98a Merge pull request #1742 from fwalch/vim-7.4.552
vim-patch:7.4.552
2014-12-30 00:10:26 -05:00
Justin M. Keyes
13d950f6ed Merge pull request #1738 from fwalch/vim-7.4.549
vim-patch:7.4.549
2014-12-30 00:03:44 -05:00
Justin M. Keyes
bb1be08bae vim-patch:7.4.487
Problem:    ":sign jump" may use another window even though the file is
	    already edited in the current window.
Solution:   First check if the file is in the current window. (James McCoy)

https://code.google.com/p/vim/source/detail?r=v7-4-487
2014-12-29 23:48:23 -05:00
Justin M. Keyes
7285b0c863 Merge pull request #1737 from fwalch/vim-7.4.541
vim-patch:7.4.541
2014-12-29 23:18:13 -05:00
oni-link
487a68ac69 vim-patch:7.4.533
Problem:    ":hardcopy" leaks memory in case of errors.
Solution:   Free memory in all code paths. (Christian Brabandt)

https://code.google.com/p/vim/source/detail?r=v7-4-533
2014-12-29 12:01:56 +01:00
oni-link
a3a1915684 vim-patch: Mark patches as NA
Code modified in patch 7.4.402 and 7.4.443 was introduced with
patch 7.4.399, which is also marked as NA (FEAT_CRYPT was removed).

Patch 7.4.509 needs the removed FEAT_CRYPT.
2014-12-29 00:11:18 +01:00
oni-link
a42e5eeb79 vim-patch:7.4.211
Problem:    ":lu" is an abbreviation for ":lua", but it should be ":lunmap".
            (ZyX)
Solution:   Move "lunmap" to above "lua".

https://code.google.com/p/vim/source/detail?r=e90bef2240c8d187da6e8d8fa5007ec5afc12284
2014-12-28 09:45:55 +01:00
Justin M. Keyes
bb574e2202 restore 'Not Implemented' for legacy script commands (:lua :ruby ...)
- restores behavior equivalent to Vim compiled without FEAT_MZSCHEME, etc.
  (avoids spurious "E492: Not an editor command: EOF") for code such as:
```vim
  if 0
    perl << EOF
  end
  EOF
  endif
```
  see :help script-here
- fixes #1308
- fixes https://github.com/junegunn/vim-plug/issues/111
2014-12-27 16:28:02 -05:00
Justin M. Keyes
56fdeb88b8 Merge pull request #1743 from oni-link/vim.patch.7.4.560
vim-patch: Mark patch 7.4.560 as NA
2014-12-27 08:38:35 -05:00
Florian Walch
898f01dee1 vim-patch:7.4.549
Problem:    Function name not recognized correctly when inside a function.
Solution:   Don't check for an alpha character.

https://code.google.com/p/vim/source/detail?r=v7-4-549
2014-12-27 11:38:32 +01:00
Florian Walch
0e8c39bd3b vim-patch:7.4.528
Problem:    Crash when using matchadd() (Yasuhiro Matsumoto)
Solution:   Copy the match regprog.

https://code.google.com/p/vim/source/detail?r=v7-4-528
2014-12-27 11:33:59 +01:00