Commit Graph

1825 Commits

Author SHA1 Message Date
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
Michael Reed
16d0976150 Remove QNX/pterm remnants
The function qnx_init() (wrapped in an ifdef in main.c) doesn't even
exist.
2015-01-11 21:00:06 -05:00
oni-link
5c22f07c4f job.c: Prevent early return from job_wait().
A blocking call job_wait(job, -1) can only return after job is finished
and all handles of job are closed. But hitting CTRL-C makes job_wait()
return early while handles can still be open. This can lead to problems
with the job/handle callbacks if the caller (of job_wait()) already
freed the memory that is used in the job callbacks.

To fix this, only return after all handles of the job are closed.
2015-01-11 23:28:02 +01:00
Eliseo Martínez
7f7262e933 Cleanup: Rename getdigits() family functions. 2015-01-11 21:04:08 +01:00
Florian Walch
470b87e377 Linting: Recommend os_* instead of POSIX functions. 2015-01-11 17:29:17 +01:00
Eliseo Martínez
bb737b6f0e Cleanup: Refactor variables: long --> int.
At 31c8440fee, some variables were changed
from int to long, to avoid -Wconversion errors. Long type was the
appropiate one because getdigits() was returning a long.
Now that we have get_int_digits() and get_long_digits(), we can revert
mentioned variables to int, and use get_int_digits() without having
-Wconversion warnings.
2015-01-11 17:18:39 +01:00
Eliseo Martínez
04c0658024 Cleanup: Refactor getdigits().
Problem  : getdigits() currently returns a long, but at most places,
           return value is casted (unsafely) into an int. Making casts
           safe would introduce a lot of fuss in the form of assertions
           checking for limits.
Note     : We cannot just change return type to int, because, at some
           places, legitimate long values are used. For example, in
           diff.c, for line numbers.
Solution : Introduce new functions:
           - get_digits()      : Gets an intmax_t from a string.
           - get_int_digits()  : Wrapper for ints.
           - get_long_digits() : Wrapper for longs.
           And replace getdigits() invocations by the appropiate
           wrapper invocations.
2015-01-11 17:18:39 +01:00
Eliseo Martínez
28e75d4c45 Cleanup: Refactor option_table_T.number: long --> int. 2015-01-11 15:10:38 +01:00
Eliseo Martínez
d600c8fbb1 Cleanup: Refactor prt_{fg,bg,new_bg}col: int --> uint32_t. 2015-01-11 15:10:29 +01:00
Eliseo Martínez
565c43668a Cleanup: Remove local var bg_color@prt_get_attr(). 2015-01-11 15:10:18 +01:00
Eliseo Martínez
d0bd057ffe Cleanup: Fix bad assert.
Assert will fail on first loop iteration (in that case,
prtpos.bytes_printed is 0).
2015-01-11 15:10:13 +01: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
Florian Walch
869d4c972e vim-patch:7.4.563
Problem:    No test for replacing on a tab in Virtual replace mode.
Solution:   Add a test. (Elias Diem)

https://code.google.com/p/vim/source/detail?r=v7-4-563
2015-01-08 09:03:54 +01:00
Florian Walch
65c1e265dd vim-patch:7.4.567
Problem:    Non-ascii vertical separater characters are always redrawn.
Solution:   Compare only the one byte that's stored. (Thiago Padilha)

https://code.google.com/p/vim/source/detail?r=v7-4-567
2015-01-08 08:59:20 +01:00
Florian Walch
bfd2a34570 version.c: Add patch numbers until 7.4.567. 2015-01-08 08:58:33 +01:00
Florian Walch
a240e3d686 vim-patch:7.4.466
Problem:    CTRL-W } does not open preview window. (Erik Falor)
Solution:   Don't set g_do_tagpreview for CTRL-W }.

https://code.google.com/p/vim/source/detail?r=v7-4-466
2015-01-08 08:27:40 +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
Florian Walch
1cf933e7be vim-patch:7.4.490
Problem:    Cannot specify the buffer to use for "do" and "dp", making them
	    useless for three-way diff.
Solution:   Use the count as the buffer number. (James McCoy)

https://code.google.com/p/vim/source/detail?r=v7-4-490
2015-01-04 11:55:38 +01: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