Commit Graph

19394 Commits

Author SHA1 Message Date
Scott Prager
171445ef34 Refactor str_to_reg().
- Update the doxygen comments.
- Use more descriptive types.
- Localize variables.
- Find the '\n' with memchr instead of a for loop.
- Remove `if (size)` checks before memmove
  since memmove(dst,src,0) is a noop.
- Use memcpy instead since the pointers don't alias.
- Use xmemdupz instead of vim_strnsave.
- xrealloc instead of xmalloc/memcpy.
- Use memcnt/xmemscan/memchrsub.
2014-12-11 20:30:00 -05:00
Scott Prager
5fdca47962 vim-patch:7.4.243
Problem:    Cannot use setreg() to add text that includes a NUL.
Solution:   Make setreg() accept a list.

https://code.google.com/p/vim/source/detail?r=v7-4-243
2014-12-11 20:30:00 -05:00
Scott Prager
2f8cc3b9d5 Return void * from get_reg_contents. 2014-12-11 20:29:59 -05:00
Scott Prager
e18538f3ef vim-patch:7.4.242
Problem:    getreg() does not distinguish between a NL used for a line
            break and a NL used for a NUL character.
Solution:   Add another argument to return a list. (ZyX)

https://code.google.com/p/vim/source/detail?r=v7-4-242
2014-12-11 20:29:59 -05:00
Felipe Oliveira Carvalho
e11a5699be Use GA_DEEP_CLEAR where appropriate 2014-12-11 20:22:37 -03:00
Felipe Oliveira Carvalho
8ee5659d83 GA_DEEP_FREE_PTR: deep free macro for garrays that store simple pointers
By "simple pointer" I mean a pointer that can be freed with a call to `free`
without leaking any member pointer.

This macro does exactly what `ga_clear_strings` does.
2014-12-11 20:22:36 -03:00
Felipe Oliveira Carvalho
b603404487 GA_DEEP_CLEAR macro for garray memory deallocation
Used to free garrays of `salitem_T` and `fromto_T` in spell.c, and
garray `wcmd_T` in ex_docmd.c.

Helped-by: Jiaqi Li
2014-12-11 20:22:25 -03:00
Scott Prager
c6271f5767 memory: memcnt and strcnt. 2014-12-11 14:39:59 -05:00
Thiago de Arruda
40977e78a2 input: Recognize mouse events for abstract_ui 2014-12-10 07:51:06 -03:00
Michael Reed
ed4356e75d docs: Remove Photon remnants
Also get rid of some platform references made irrelevant by the removal
of their respective platform specific GUI code.
2014-12-09 19:43:45 -05:00
Michael Reed
a08e31368f docs: Remove 'osfiletype' remnants
Even when this was finally removed 6 months ago in b2b920f, it had
already been disabled for a while. Due to this, just remove all remnants
of the option as opposed to putting a placeholder like what was done for
'shortname'and 'cryptmethod'.
2014-12-09 19:25:43 -05:00
Michael Reed
365cf90efb docs: Remove EBCDIC remnants 2014-12-09 19:25:07 -05:00
Michael Reed
33b459b672 docs: Remove VAX remnants 2014-12-09 19:25:03 -05:00
Michael Reed
3969823759 docs: Remove BeOS/Haiku remnants 2014-12-09 19:24:58 -05:00
Thiago de Arruda
f8c3a14dc3 msgpack-rpc: Add remote_ui module
The remote_ui module is an implementation of the UI layer, and it attaches UI
instances that redirect redraw notifications to connected clients.
2014-12-08 23:44:24 -03:00
Thiago de Arruda
86542c6fd0 syntax: Use RGB/GUI attribute information for "abstract_ui"
Instead of using classic cterm color numbers and attributes, treat "abstract_ui"
as a GUI: Pass rgb color numbers and gui attributes when the "highlight_set" UI
method is called. The terminal UI will have to translate RGB color information
to an appropriate color number, and the "term"/"cterm" :highlight keys will
eventually be deprecated.
2014-12-08 23:44:24 -03:00
Thiago de Arruda
07e569a25d ui: Add abstract_ui termcap and split UI layer
This is how Nvim behaves when the "abstract_ui" termcap is activated:

- No data is written/read to stdout/stdin by default.
- Instead of sending data to stdout, ui_write will parse the termcap codes
  and invoke dispatch functions in the ui.c module.
- The dispatch functions will forward the calls to all attached UI
  instances(each UI instance is an implementation of the UI layer and is
  registered with ui_attach).
- Like with the "builtin_gui" termcap, "abstract_ui" does not contain any key
  sequences. Instead, vim key strings(<cr>, <esc>, etc) are parsed directly by
  input_enqueue and the translated strings are pushed to the input buffer.

With this new input model, its not possible to send mouse events yet. Thats
because mouse sequence parsing happens in term.c/check_termcodes which must
return early when "abstract_ui" is activated.
2014-12-08 23:44:23 -03:00
Thiago de Arruda
8b6cfff6a1 msgpack-rpc: Allow registration of handlers by other modules 2014-12-08 23:44:23 -03:00
Björn Linse
9a0ec687d9 eval_has_provider: search autoload scripts same order as call_func 2014-12-08 22:05:05 +01:00
Björn Linse
6ddbe6d9be clipboard: fix let @+ = ... and add test 2014-12-08 22:05:05 +01:00
Björn Linse
cccc46acd7 clipboard: better error messages when provider not available 2014-12-08 22:05:05 +01:00
Björn Linse
5476250ba3 options: change "unnamedclip" back to "clipboard=unnamed/unnamedplus"
This allows to configure which of '*' and '+' should be used for
the unnamed clipboard, and is consistent with vim.
2014-12-08 22:05:05 +01:00
Björn Linse
61aaf815db clipboard: clean up unnamedclip logic 2014-12-08 22:05:02 +01:00
Björn Linse
63efb9b1f1 clipboard: handle linewise/charwise selections correctly 2014-12-08 22:01:00 +01:00
Björn Linse
c1854d2433 clipboard: support separate '+' and '*' clipboards 2014-12-08 21:38:35 +01:00
Justin M. Keyes
fa9d44374b Merge pull request #1589 from splinterofchaos/fix-const-atter
strings: Remove NONNUL_ALL from NULL-taking functions.
2014-12-06 20:20:33 -05:00
Justin M. Keyes
01fc0efdca Merge pull request #1341 from splinterofchaos/api-nul
Api: Improve Nul handling
2014-12-06 20:19:08 -05:00
Scott Prager
460843b4cd api: Handle NULs and newlines in buffer_*_line. 2014-12-06 17:29:38 -05:00
Scott Prager
4964d65362 strings: Remove NONNUL_ALL from NULL-taking functions.
vim_strup() is only used in a couple places, with no NULLs possible, so
keep the attribute and remove the NULL check.
2014-12-06 14:41:21 -05:00
Justin M. Keyes
dcee93f8ea Merge pull request #1618 from elmart/clang-analysis-fixes-5
Fix clang analysis warnings. (5)
2014-12-06 12:08:15 -05:00
Eliseo Martínez
734ac625bb Fix warnings: message.c: msg_attr_keep(): Np dereference: FP.
Problem    : Dereference of null pointer @ 179.
Diagnostic : False positive.
Rationale  : Error occurs if `s` paramater is null, which should not
             happen.
Resolution : Declare parameter as non null.
2014-12-06 17:40:12 +01:00
Eliseo Martínez
a71c5e9eb9 Fix warnings: edit.c: ins_compl_next_buf(): Np dereference: MI.
Problem    : Dereference of null pointer @ 3247.
Diagnostic : Multithreading issue.
Rationale  : Problem only occurs if global `ctrl_x_mode` is modified
             while calling function is executing.
Solution   : Use local copy instead of global.
2014-12-06 17:40:12 +01:00
Julian Mehne
6cba2eef21 Allow the rest of the old tests to pass with nocp.
test40.in, test60.in, test_breakindent.in, test_listlbr.in, test_listlbr_utf8.in:
    To avoid <tab> triggering wildmode, set wildchar to 'cp' default.

test_breakindent.ok:
    Modify expectations to avoid cpoptions+=n
2014-12-06 13:43:14 +01:00
Joel Teichroeb
62bd20b726 Allow most old tests to pass with nocp.
test69.in:
    because 'nocp' sets 'esckeys', add an extra <esc> to avoid 'tm' pause.
2014-12-06 13:43:14 +01:00
Thiago de Arruda
3b435621a5 shell: Fix shell command output
Shell command output was broken in @8a5a8db, which refactored nvim to no longer
switch to cooked mode(linefeeds are processed differently).

Fix the problem by refactoring write_output to accept to extra arguments that
control the flushing behavior and where data will be written to: buffer or
directly to the screen.
2014-12-06 07:50:03 -03:00
Rui Abreu Ferreira
91f61ced81 Only use SANITIZE for nvim target
- Clang's Address Sanitizer options may cause problems when running
  the unit tests, restrict the use of these options to the nvim target.
2014-12-04 16:27:15 +00:00
Michael Reed
497a688ebc Remove remaining crypto references
Closes https://github.com/neovim/docs/pull/26

Also added stubs for 'cryptmethod' and 'key', and placeholders for
explanation regarding removal of crypto functionality.
2014-12-03 14:46:37 -05:00
Justin M. Keyes
930e58c56d Merge pull request #1534 from oni-link/fix.leak.detected.in.1510
Fix memory leak detected in #1510.
2014-12-03 09:44:08 -05:00
Rui Abreu Ferreira
923d021c0f Don't use env vars for configuration time options
- As a general rule of thumb one shouldn't use environment variables
  for setting configuration options for CMake. The reason for this is
  we don't know when CMake will be executed and re-evaluate that variable.
- e.g. If we run cmake a first time with a var set, and then run make on
  a second session (with no var) and cmake is called because a
  dependency changed, the option would be disabled
- This commit removes the use of environment vars from
  src/nvim/CMakeLists.txt entirely
- Removed SKIP_UNITTEST since it could only be used to remove a target
  at configuration time (and the target was optional anyway)
- Turned SANITIZE into an option, clang-asan.sh now passes cmake
  -DSANITIZE=ON
- Removed SKIP_EXEC since it was disabling a target at configuration time
  (not being used)
2014-12-03 14:23:08 +00:00
Thiago de Arruda
8b6473bd41 shell: Remove kShellOptCooked from ShellOpts 2014-12-03 10:12:12 -03:00
Thiago de Arruda
bf3a94ee51 time: Inline microdelay into os_microdelay 2014-12-03 10:03:39 -03:00
oni-link
eae3105ee3 channel.c: Fix for heap-use-after-free
ASAN detected this heap-use-after-free.
A job started by channel_from_job() could terminate and result in a call
to free_channel(), while channel_send_call() was still active/pending
and accessing Channel elements.

Original patch by @tarruda.
2014-12-03 13:41:17 +01:00
oni-link
e2e63832e3 Fix memory leak detected in PR 1510.
LSAN/ASAN detected, on an error code path, that not all elements of a
struct ChannelCallFrame were freed.
2014-12-03 13:41:17 +01:00
John Szakmeister
41f1678767 Revert "Merge pull request #1587 from equalsraf/tb-env-configs"
This reverts commit 53bccaaf99, reversing
changes made to 4049002f6b.
2014-12-03 07:29:03 -05:00
John Szakmeister
53bccaaf99 Merge pull request #1587 from equalsraf/tb-env-configs
Don't use env vars for configuration time options
2014-12-03 06:53:09 -05:00
John Szakmeister
4049002f6b Merge pull request #877 from equalsraf/tb-gendeclarations-windows
Refactor declaration generation error detection
2014-12-03 06:47:01 -05:00
Eliseo Martínez
d146b7c7ca Fix newline substitution: Adapt to upstream patch.
Fix previous changes to be compatible with agreed changes to upstream
vim (https://code.google.com/p/vim/issues/detail?id=287).
2014-12-02 19:04:30 +01:00
Rui Abreu Ferreira
22f30cfca0 When SANITIZE=ON headers need -DEXITFREE 2014-12-02 16:21:26 +00:00
Björn Linse
1464b0eda2 systemlist: add keepempty option to preserve final newline 2014-12-02 16:50:52 +01:00
Rui Abreu Ferreira
823a7ae61a Only use SANITIZE for nvim target
- Clang's Address Sanitizer options may cause problems when running
  the unit tests, restrict the use of these options to the nvim target.
2014-12-02 14:36:47 +00:00