Commit Graph

8225 Commits

Author SHA1 Message Date
Fabian Brosda
20054df06e legacy test: migrate test 72 2015-02-20 13:26:59 -03:00
Thiago de Arruda
9894720a05 tui: Don't use 'timeout' for determining esc timeout 2015-02-20 09:43:13 -03:00
Thiago de Arruda
c65f18f686 tui: Set default color attributes when scrolling
This is necessary for some terminals, or else they will clear/insert lines with
wrong background color
2015-02-20 09:27:34 -03:00
Thiago de Arruda
1ed7ae6260 tui: Fix terminfo extension indexes
For unibilium extension indexes, use signed integer type initialized with -1 to
distinguish from the first extension string which will always have index 0.
2015-02-20 09:27:34 -03:00
Thiago de Arruda
bbcddc55ee tui: Replace uv_tty_t by uv_pipe_t
It seems uv_tty_t doesn't work properly on OSX(it is set to blocking mode,
which causes UV_RUN_NOWAIT to misbehave).
2015-02-20 09:27:34 -03:00
Thiago de Arruda
20f52f4235 tui: Only send the pastetoggle key if necessary 2015-02-20 09:27:34 -03:00
Fabian Brosda
0a7cd65cbc vim-patch:7.4.525 #1988
Problem:    map() leaks memory when there is an error in the expression.
Solution:   Call clear_tv(). (Christian Brabandt)

https://code.google.com/p/vim/source/detail?r=v7-4-525
2015-02-19 17:08:43 -05:00
Eliseo Martínez
36340803af Enable -Wconversion: os_unix.c. 2015-02-18 20:54:14 -05:00
Eliseo Martínez
cbabf9491b Enable -Wconversion: keymap.c. 2015-02-18 20:54:13 -05:00
Eliseo Martínez
94db26edbd Enable -Wconversion: indent.c.
Note: Clint was failing because of recommending not to use long. But
converting to long is the proper refactoring here, in as far as other
longs exist. We could, then, disable clint rule, or remove this file
from checking. We choose the former, as it's being discussed what to do
with longs, but a decision has not been taken. So, it seems most
reasonable to allow longs for now, to enable proper refactorings, and
then, when a decision is taken, refactor all longs to some other thing.
2015-02-18 20:54:13 -05:00
Eliseo Martínez
7dd48d7af0 Enable -Wconversion: mark.c.
Refactoring summary:
- MB_STRNICMP: Inlined.
- MB_STRNCMP: Inlined.
2015-02-18 20:54:13 -05:00
Eliseo Martínez
690e43b461 Enable -Wconversion: Passing-by: Remove dead code (MACOS_CONVERT).
MacOS (pre Mac OS X) is not supported anymore.
2015-02-18 20:54:12 -05:00
Eliseo Martínez
7a7c933b86 Enable -Wconversion: ui.c.
Refactoring summary:
- ui_write(): len: int --> size_t
    * parse_abstract_ui_codes(): len: int --> size_t
    * string_convert(): lenp: int * --> size_t *
        - string_convert_ext(): lenp      : int * --> size_t *
                                unconvlenp: int * --> size_t *
            * utf8len_tab_zero: char[] --> uint8_t[]
            * iconv_string(): slen      : int --> size_t
                              unconvlenp: int * --> size_t *
                              resultlenp: int * --> size_t *
        - mch_print_text_out(): len: int --> size_t
    * out_pos: int --> size_t
2015-02-18 20:54:12 -05:00
Thiago de Arruda
e7c945ab59 input: Escape utf8 sequences that contain CSI/K_SPECIAL 2015-02-18 13:16:30 -03:00
Thiago de Arruda
25ceadab37 tui: Remove support for overriding escape sequences with nvim options
- Add xterm/iterm sequences for changing cursor shape(with tmux wrapping).
  Enabled by setting the NVIM_TUI_ENABLE_CURSOR_SHAPE environment variable.
- Remove nvim_override parameter from unibi_out. In the future another way of
  overriding the terminal strings will be added.
2015-02-18 10:46:20 -03:00
Thiago de Arruda
761ccba86f tui: Fix use after free(reported by clang static analyzer) 2015-02-18 10:31:36 -03:00
Thiago de Arruda
59fb8f8172 tui: Add support bracketed paste
Inspired by the vim-bracketed-paste plugin but adapted for the new TUI. Also
initialize some variables of type `Error` that were uninitialized
2015-02-18 09:07:16 -03:00
Thiago de Arruda
26371f4ccc tui: Fix to_status_line terminfo sequence for xterm
Moving the cursor to the status line(to set the title) requires a different
sequence for xterm than the one used by urxvt.
2015-02-17 23:09:36 -03:00
Thiago de Arruda
7ea91de054 tui: Fix background clear for some terminals
Some terminals will perform clearing functions using the current attributes.
Ensure the default attributes are set before clearing.
2015-02-17 23:09:36 -03:00
Felipe Morales
3ffc5d81c3 Add TabClosed event
TabClosed is triggered when a tab page closes.
2015-02-16 23:24:31 -05:00
Felipe Morales
66d94869a0 Add TabNewEntered
TabNewEntered is triggered after vim has entered a buffer in new tab.
2015-02-16 23:24:30 -05:00
Felipe Morales
817be96be5 Add TabNew event
TabNew triggers when entering a new tab page, but not when entering an
already created one.
2015-02-16 23:24:30 -05:00
Thiago de Arruda
419da839e0 cleanup: Remove unused functions and builtin termcaps 2015-02-16 23:17:39 -03:00
Thiago de Arruda
d8f3458ec7 syntax: Refactor to store all term and gui attributes independently
Now the attrentry_T structure will store all attributes in separate fields for
cterm and rgb UIs.
2015-02-16 23:17:39 -03:00
Thiago de Arruda
9a2dd7c498 ui: Rewrite the builtin terminal UI
Now all terminal-handling code was moved to src/nvim/tui, which implements a
new terminal UI based on libtermkey and unibilium
2015-02-16 23:17:39 -03:00
Thiago de Arruda
e0e41b30c6 ui: Remove/adapt some old code for a big UI refactor
- Remove abstract_ui global, now it is always active
- Remove some terminal handling code
- Remove unused functions
- Remove HAVE_TGETENT/TERMINFO/TERMIOS/IOCTL #ifdefs
- Remove tgetent/terminfo from version.c
- Remove curses/terminfo dependencies
- Only start/stop termcap when starting/exiting the program
- msg_use_printf will return true if there are no attached UIs(
  messages will be written to stdout)
- Remove `ex_winpos`(implement `:winpos` with `ex_ni`)
2015-02-16 23:17:39 -03:00
Thiago de Arruda
6383ea6e8e ui: Remove redundant cursor_goto calls 2015-02-16 23:17:38 -03:00
Thiago de Arruda
d225349dc6 input: Remove input_buffer_{save,restore}
The input buffer is only used for data that really came from another process and
is only visible to os/input.c. Remove the input_buffer_{save,restore} functions,
they are not necessary(Also can result in problems if data comes while the
typeahead is saved).
2015-02-16 23:17:38 -03:00
Thiago de Arruda
e17f92eb29 input: Fix handle_mouse_event function
Ignore all keys that aren't prefixed with KS_EXTRA.
2015-02-16 23:17:38 -03:00
Thiago de Arruda
2b6ffa61bf input: Prefer keycodes in input_enqueue key translation
This is required to correctly handle certain keys such as <delete>
2015-02-16 23:17:38 -03:00
Thiago de Arruda
8f31ebc4f7 macro: Add MAX macro and rename min to MIN 2015-02-16 23:17:38 -03:00
Michael Reed
af46564dd6 Remove 'edcompatible' #1911
Closes #1902
2015-02-16 21:00:30 -05:00
Björn Linse
f4f0f646c3 api: always return empty string as api type String 2015-02-16 20:13:54 -05:00
Justin M. Keyes
1b055c54a0 FEAT_SIGNS: restore :signs wildmenu, and add test. 2015-02-15 02:49:59 -05:00
Felipe Morales
6e992876ea shadow previously set signs #1893 2015-02-13 14:56:43 -05:00
Justin M. Keyes
2d22e1f035 vim-patch:7.4.601 #1950
Problem:    It is not possible to have feedkeys() insert characters.
  Solution:   Add the 'i' flag.

  https://code.google.com/p/vim/source/detail?r=v7-4-601
2015-02-12 23:21:09 -05:00
Justin M. Keyes
5483cb4e62 api/vim.c: use FOR_ALL_* sugar #1963 2015-02-12 23:00:57 -05:00
Jake Kerr
9330579dcf Discard exceptions once they are converted to API errors
Fixes: #1976
2015-02-12 20:06:54 +09:00
Eliseo Martínez
bbfaa78dcd coverity/102149: Out-of-bounds access: FP.
Problem    : Out-of-bounds access @ 5815.
Diagnostic : False positive.
Rationale  : Error occurs when event_name2nr() returns NUM_EVENTS, which
             means an event with that name was not found. That cannot
             happen, as previous check using find_end_event() @ 5744
             ensures event name exists.
Resolution : Assert event_name2nr() result is less thatn NUM_EVENTS.
2015-02-11 19:10:36 +01:00
Thiago de Arruda
81d27d4c6b coverity/{68484,68485}: Read from pointer after free: RI.
Problem    : Read from pointer after free @ {242, 391}.
Diagnostic : Real issues.
Rationale  : Channel gets indeed freed on error case, producing
             incorrect accesses to freed pointer later on.
Resolution : Implement reference counting mechanism to know when to free
             channel.
2015-02-11 19:10:36 +01:00
Eliseo Martínez
77ace65bdc coverity/13773: Resource leak: RI.
Problem    : Resource leak @ 3324.
Diagnostic : Real issue.
Rationale  : Stack is not being freed on error cases.
Resolution : Free stack before invoking EMSG_RET_NULL.
2015-02-11 19:10:36 +01:00
Eliseo Martínez
d7038127ca coverity/13764: Out-of-bounds read: RI.
Problem    : Out-of-bounds read @ 9514.
Diagnostic : Real issue.
Rationale  : PFD_NOTSPECIAL (253) is defined as the maximum not-special
             value a prefix can have. But stack (and other) arrays are
             defined as having MAXWLEN (250) items.
Resolution : Define MAXWLEN = 254.
2015-02-11 19:10:36 +01:00
Eliseo Martínez
cf8e175cf5 coverity/13762: Out-of-bounds read: RI.
Problem    : Out-of-bounds read @ 2213.
Diagnostic : Real issue.
Rationale  : Error occurs if cmap == ARRAY_SIZE(prt_ps_mbfonts),
             but code takes the `if (prt_out_mbyte)` branch. That's it,
             if a matching encoding is found but not a matching charset.
             In that case, the first matching encoding is used.
Resolution : Remember the value of cmap for the first matching encoding.
             Reset cmap to that value if first matching encoding is
             going to be used.
2015-02-11 19:10:36 +01:00
Michael Reed
ec5e94518e build: upgrade msgpack-c #1900
closes #1899
closes #1967

refs https://github.com/msgpack/msgpack-c/pull/194
2015-02-09 23:51:02 -05:00
Michael Reed
10b2a0e529 Remove 'ttyfast'
refs #1045 #1051

This was enabled by default a while ago (#1051), and has apparently not
created any issues.  The amount of actual code related to it is tiny, so
it has been removed.
2015-02-08 17:46:09 -05:00
Michael Reed
7b98b4c442 Remove vimdiff
While we're here:
- Remove references to the '+diff' feature, which has since been made
  non-optional.
- Update a few Vim instances with Nvim.
2015-02-03 15:15:54 -05:00
Michael Reed
054aabbe06 main.c: usage() improvement
- Factor out main_msg() in favor of mch_msg() and manual indentation, as to
  provide a much closer representation to the actual output of '--help'.
  'gcc -E' reveals that main_msg() only consists of 3 printf calls
  anyways.
- Factor out for loop used for printing top part of usage text; just
  print the text normally.

usage() text:
- Don't print the version; that's what '--version' is for.
- Be consistent about nomenclature, e.g. '<arg>' denotes required
  argument, '-h | --help' denotes '-h' and '--help' are equivalent, etc.
- Change some instances of vim{,rc,info} to nvim
2015-02-03 13:58:38 -05:00
Lucas Hermann Negri
7751cd21f5 Enable -Wconversion for version.c #1923 2015-02-02 17:23:24 -05:00
Björn Linse
f468fb70cb api/vim: allow guis and tests to retrieve the entire color table 2015-02-02 14:56:58 -03:00
Eliseo Martínez
bb674e0fcd coverity/13810: Unitialized scalar variable: HI.
Problem    : Unitialized scalar variable @ 3239.
Diagnostic : Harmless issue.
Rationale  : It's true pos.coladd is not initialized when calling
             searchit(). But that's no problem, as coladd is only set in
             that function.
Resolution : Initialize variable to 0.
2015-02-02 01:21:58 -05:00