aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/eval
Commit message (Collapse)AuthorAge
...
| * PVS/V618: fix emsgf format specifier #11643Husain Alshehhi2020-01-01
| |
| * vim-patch:8.2.0030: "gF" does not work on output of "verbose command"Jan Edmund Lazo2019-12-22
| | | | | | | | | | | | Problem: "gF" does not work on output of "verbose command". Solution: Recognize " line " and translations. (closes vim/vim#5391) https://github.com/vim/vim/commit/64e74c9cc7d5aab215cf72d9bdd3aac32e128191
| * vim-patch:8.2.0025: repeated word in comment (#11586)Jan Edmund Lazo2019-12-21
| | | | | | | | | | Problem: Repeated word in comment. Solution: Remove one. (Rene Nyffenegger, closes vim/vim#5384) https://github.com/vim/vim/commit/fe72d08400d9064b3f959f1f62f279527e64835a
| * dictwatcher: fix use-after-free #11495erw72019-12-02
|/ | | | | fixes #11494
* Remove excess <stdint.h>Jan Edmund Lazo2019-09-11
|
* vim-patch:8.1.0515: reloading a script gives errors for existing functionserw72019-09-04
| | | | | | Problem: Reloading a script gives errors for existing functions. Solution: Allow redefining a function once when reloading a script. https://github.com/vim/vim/commit/ded5f1bed7ff2d138b3ee0f9610d17290b62692d
* vim-patch:8.1.0362: cannot get the script line number when executing a functionerw72019-09-04
| | | | | | | Problem: Cannot get the script line number when executing a function. Solution: Store the line number besides the script ID. (Ozaki Kiichi, closes vim/vim#3362) Also display the line number with ":verbose set". https://github.com/vim/vim/commit/f29c1c6aa3f365c025890fab5fb9efbe88eb1761
* free_buffer: rework b:changedtick handling #9163Justin M. Keyes2019-08-12
| | | | | | | | | | | | | | | | | | | | - Re-enable Test_BufLeave_Wipe. 66f5e5c7d7ce This is my (probably-wrong) application of Zyx's suggestion in #9163: > free_buffer_stuff() already removes changedtick. It is better to > make `free_options` a flag variable and avoid calling > buf_init_changedtick() based on some flag there: current workflow > looks weird as it first removes `b:changedtick`, then re-adds it > by calling buf_init_changedtick(), then remove again. > Also based on my understanding it looks logical to not remove > `b:changedtick`, but to *replace* it with something allocated if > needed based on examining reference count before calling > `unref_var_dict`. Because now you have key disappearing from > dictionary for no good reason. Patch-By: Nikolai Aleksandrovich Pavlov <kp-pav@yandex.ru>
* vim-patch:8.1.0990: floating point exception with "%= 0" and "/= 0"Jan Edmund Lazo2019-07-28
| | | | | | Problem: Floating point exception with "%= 0" and "/= 0". Solution: Avoid dividing by zero. (Dominique Pelle, closes vim/vim#4058) https://github.com/vim/vim/commit/e21c1580b7acb598a6e3c38565434fe5d0e2ad7a
* PVS/V1037: suppress warning #10528Ihor Antonov2019-07-18
| | | | Despite the PVS warning, we do not want to conflate these cases, they are semantically different.
* vim-patch:8.1.0167: lock flag in new dictitem is reset in many placesJan Edmund Lazo2019-06-23
| | | | | | Problem: Lock flag in new dictitem is reset in many places. Solution: Always reset the lock flag. https://github.com/vim/vim/commit/c89d4b35300b98cf68b14c89c8e1add51bd857e3
* vim-patch:8.1.0130: ":profdel func" does not work if func was called alreadyDaniel Hahler2019-06-08
| | | | | | | | Problem: ":profdel func" does not work if func was called already. (Dominique Pelle) Solution: Reset uf_profiling and add a flag to indicate initialization was done. https://github.com/vim/vim/commit/ad6480961080f80a455b2394f27b02935a2ded52
* vim-patch:8.1.0902: incomplete set of assignment operatorserw72019-05-29
| | | | | | Problem: Incomplete set of assignment operators. Solution: Add /=, *= and %=. (Ozaki Kiichi, closes vim/vim#3931) https://github.com/vim/vim/commit/ff697e6cef8ced7717a21fd525ab3200b2f1724f
* vim-patch:8.1.0642: swapinfo() leaks memoryJustin M. Keyes2019-04-29
| | | | | | Problem: swapinfo() leaks memory. Solution: Avoid allocating the strings twice. https://github.com/vim/vim/commit/e6fdf79980c0f2856700d4f46de700293f477429
* build: -Wmissing-prototypesJustin M. Keyes2019-02-04
| | | | | | | ref #343 Though I don't see a strong benefit, it isn't too much of a burden, and maybe avoids confusion in some cases.
* build: Fix -Wconversion warnings for fpclassify et alJustin M. Keyes2019-01-21
| | | | | | | | | | | | closes #8274 The parent commit tries a different approach, but that fails on Apple Clang version: Apple LLVM version 10.0.0 (clang-1000.11.45.5) Target: x86_64-apple-darwin17.7.0 which somehow compiles the check_c_source_compiles() check, but then complains during later compilation that __fpclassify is not defined (regardless of "#include <math.h>").
* build: Fix -Wconversion warnings for fpclassify et alJustin M. Keyes2019-01-20
| | | | | | | | | | | | closes #8274 - Instead of #undef and re-#define, define "xfoo" wrappers to avoid include-order sensitivity. - The warnings are bogus, caused by bad interaction between glibc and clang 6+. - https://bugs.llvm.org/show_bug.cgi?id=35268 - https://bugs.llvm.org/show_bug.cgi?id=39738 - https://bugzilla.redhat.com/show_bug.cgi?id=1472437
* build: enable -WshadowJustin M. Keyes2019-01-02
| | | | | | | | | | Note about shada.c: - shada_read_next_item_start was intentionally shadowing `unpacked` and `i` because many of the macros (e.g. ADDITIONAL_KEY) implicitly depended on those variable names. - Macros were changed to parameterize `unpacked` (but not `i`). Macros like CLEAR_GA_AND_ERROR_OUT do control-flow (goto), so any other approach is messy.
* vim-patch:8.1.0615: get_tv function names are not consistent (#9386)Daniel Hahler2018-12-22
| | | | | | | Problem: Get_tv function names are not consistent. Solution: Rename to tv_get. https://github.com/vim/vim/commit/d155d7a8519987361169459b8d464ae1caef5e9c Only a change in comments appears to be necessary.
* Remove extraneous parens to silence -Wparentheses-equalityJames McCoy2018-11-24
| | | | | | | In file included from ../src/nvim/eval/encode.c:974: ../src/nvim/eval/typval_encode.c.h:390:40: error: equality comparison with extraneous parentheses [-Werror,-Wparentheses-equality] do { if ((tv->vval.v_special == kSpecialVarTrue)) { msgpack_pack_true(packer); } else { msgpack_pack_false(packer); } } while (0); ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
* fix warning: "Dead assignment"Justin M. Keyes2018-10-21
| | | | | | | `tv` is passed to the TYPVAL_ENCODE_CONV_FUNC_BEFORE_* macros, which don't appear to actually use that parameter. Found by clang scan-build 5.0
* vim-patch:8.0.1590: padding in list type wastes memory (#9119)Jan Edmund Lazo2018-10-13
| | | | | | Problem: Padding in list type wastes memory. Solution: Reorder struct members to optimize padding. (Dominique Pelle, closes vim/vim#2704) https://github.com/vim/vim/commit/1a840240376f2858d489736f9eed6d2975225fdf
* src/nvim/eval.cMichaHoffmann2018-10-07
| | | | | | | | | | src/nvim/eval/typval.c src/nvim/fileio.c src/nvim/main.c src/nvim/regexp_nfa.c src/nvim/spellfile.c changed some EMSG[..] Macros to emsgf
* add func_attr_printf in :MichaHoffmann2018-09-24
| | | | | | | | | | | | | | | | | | | | | | log.c message.c strings.c fixed some printf warnings in: src/nvim/undo.c src/nvim/eval.c src/nvim/eval/encode.c src/nvim/eval/typval.c src/nvim/ex_getln.c src/nvim/fileio.c src/nvim/lua/executor.c src/nvim/main.c src/nvim/regexp_nfa.c src/nvim/shada.c src/nvim/spellfile.c src/nvim/tui/terminfo.c src/nvim/garray.h
* shell/logging: Fix E730 with verbose system({List}) #9009Justin M. Keyes2018-09-21
| | | | | | | | ref https://github.com/neovim/neovim/issues/9001#issuecomment-421843790 Steps to reproduce: :set verbose=9 :call system(['echo']) E730: using List as a String
* vim-patch:8.0.0593: DRY: setting list/dict return value (#8639)Jan Edmund Lazo2018-06-30
| | | | | Problem: Duplication of code for adding a list or dict return value. Solution: Add rettv_dict_set() and rettv_list_set(). (Yegappan Lakshmanan) https://github.com/vim/vim/commit/45cf6e910c6d162775ca9d470fac4b6db844001f
* eval/typval: Silence PVS/V576: format is correctZyX2018-04-22
|
* eval/typval: Remove struct dictitem_S which is not used anywhereZyX2018-04-20
|
* eval: Fix PVS/V547: ufunc_T is actually an incomplete typeZyX2018-04-10
|
* eval/decode: Silence PVS/V547: code written for 32-bit integersZyX2018-04-09
|
* eval/typval_encode: Silence PVS/V501,V547,V779ZyX2018-04-02
| | | These kinds of warnings are inevitable for generic macros.
* build/MSVC: fix "C4003: not enough actual parameters for macro"Justin M. Keyes2018-03-18
| | | | | | For the case of TV_DICTITEM_STRUCT, we can't just pass `1` because: https://github.com/neovim/neovim/pull/8142#discussion_r175262436 > this variant will trigger array overrun warnings from various static analyzers.
* Merge #7863 'mingw64: fix gcc warnings'Justin M. Keyes2018-01-20
|\
| * Fix warning about math functions, include isnan, isinf, fpclassify.George Zhao2018-01-18
|/
* Merge #7806 from ZyX-I/list-statJustin M. Keyes2018-01-15
|\ | | | | Add a way to collect list usage statistics
| * eval/typval: Log list actionsZyX2018-01-14
| | | | | | | | | | | | | | | | | | | | New logging is guarded by cmake LOG_LIST_ACTIONS define. To make it more efficient it is allocated as a linked list with chunks of length 2^(7+chunk_num); that uses basically the same idea as behind increasing kvec length (make appending O(1) (amortized)), but reduces constant by not bothering to move memory around what realloc() would surely do: it is not like we need random access to log entries here to justify usage of a single continuous memory block.
| * *: Provide list length when allocating listsZyX2018-01-14
| |
* | coverity/169163: decode_string: Null pointer derefJustin M. Keyes2018-01-11
|/ | | | | | | | | | | | | | | | | | | *** CID 169163: Null pointer dereferences (FORWARD_NULL) /src/nvim/eval/decode.c: 290 in decode_string() 284 if (elw_ret == -1) { 285 tv_clear(&tv); 286 return (typval_T) { .v_type = VAR_UNKNOWN, .v_lock = VAR_UNLOCKED }; 287 } 288 return tv; 289 } else { >>> CID 169163: Null pointer dereferences (FORWARD_NULL) >>> Passing null pointer "s" to "xmemdupz", which dereferences it. (The dereference is assumed on the basis of the 'nonnull' parameter attribute.) 290 return (typval_T) { 291 .v_type = VAR_STRING, 292 .v_lock = VAR_UNLOCKED, 293 .vval = { .v_string = (char_u *)( 294 s_allocated ? (char *)s : xmemdupz(s, len)) }, 295 };
* Add another const to tv_copyPaul Rigge2018-01-02
| | | | | | | | | Clang static analyzer had trouble with filter_map in eval.c because tv_copy could, in principle, change the v_type of argvars[0]. It saw a potential null pointer going somewhere it shouldn't as a result. The from argument in tv_copy should be const, which also cleans up the static analyzer's complaint.
* eval: Refactor some potentially dangerous list appendsZyX2017-12-25
|
* *: Fix linter errorsZyX2017-12-24
|
* eval: Replace some tv_list_item_remove() callsZyX2017-12-24
| | | | | There is nothing wrong with them, just it is generally better to remove a range then to remove items individually.
* eval: Rename tv_list_remove_items() to tv_list_drop_items()ZyX2017-12-24
| | | tv_list_remove_items() may cause confusion with tv_list_item_remove()
* eval/typval: Make tv_list_item_remove return pointer to the next itemZyX2017-12-24
|
* eval/typval: Remove tv_list_item_free() as it is unusedZyX2017-12-24
|
* eval/typval: Make tv_list_item_alloc staticZyX2017-12-24
| | | | Better write this bit in lua then make reviewers or clint filter out tv_list_item_alloc().
* *: Remove most calls to tv_list_item_allocZyX2017-12-24
| | | | Still left calls in eval/typval.c and test/unit/eval/helpers.lua. Latter is the only reason why function did not receive `static` modifier.
* Merge branch 'master' into hide-container-implZyX2017-12-16
|\
| * vim-patch:8.0.0074Michael Schupikov2017-12-15
| | | | | | | | | | | | | | | | | | | | Problem: Cannot make Vim fail on an internal error. Solution: Add IEMSG() and IEMSG2(). (Domenique Pelle) Avoid reporting an internal error without mentioning where. https://github.com/vim/vim/commit/95f096030ed1a8afea028f2ea295d6f6a70f466f Signed-off-by: Michael Schupikov <michael@schupikov.de>
| * typval_encode.c.h: avoid -Wnonnull-compare warning (#7712)Justin M. Keyes2017-12-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * typval_encode.c.h: avoid -Wnonnull-compare warning closes #6847 The NULL check is needed because TYPVAL_ENCODE_CONV_EMPTY_DICT may be invoked with literal `NULL`. Warning occurs even for `Debug` build-type: neovim/src/nvim/eval/typval.c: In function ‘_typval_encode_nothing_convert_one_value’: neovim/src/nvim/eval/typval.c:1802:10: warning: nonnull argument ‘tv’ compared to NULL [-Wnonnull-compare] if (tv != NULL) { \ ^ ../src/nvim/eval/typval_encode.c.h:398:9: note: in expansion of macro ‘TYPVAL_ENCODE_CONV_EMPTY_DICT’ TYPVAL_ENCODE_CONV_EMPTY_DICT(tv, tv->vval.v_dict); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ gcc version: gcc (Ubuntu 6.3.0-12ubuntu2) 6.3.0 20170406 * fixup! typval_encode.c.h: avoid -Wnonnull-compare warning