| Commit message (Collapse) | Author | Age |
... | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It was a false positive, but it can't hurt to "fix" it.
Original warning:
CID 13685 (#1 of 1): Buffer not null terminated (BUFFER_SIZE)
6. buffer_size: Calling strncpy with a source string whose length (4 chars)
is greater than or equal to the size argument (4) will fail to
null-terminate b0p->b0_version.
|
| |
| |
| |
| | |
Also cleaned up the function a little bit.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Coverity detected a memory leak caused by not free'ing the value returned by
get_expr_line_src (basically vim_strsave(expr_line)). Replaced the copying
with direct manipulation of expr_line, since that also happens in other
parts of the codebase.
NOTE: I'm aware that this has different behaviour than vim_strnsave, namely
vim_strnsave always allocates `len` bytes, even if the string is shorter. I
don't see how that behaviour is helpful here though.
|
|/
|
|
|
|
| |
Also constified the arguments. The double casts for the `xstrdup` are ugly
but `vim_strsave` doesn't take `const` arguments for now so I couldn't keep
that.
|
| |
|
|
|
|
| |
Add missing function attributes in memory.h. Fixes #806
|
|
|
|
|
| |
If the eval_expr call in vim_eval returns NULL, a null-pointer deference
would happen a few frames down, in vim_to_object_rec
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- The data member of String's can now be passed directly to functions
expecting C strings, as we now guarantee that they are NUL-terminated.
This obviates the need to use xstrndup and free, simplifying code and
enhancing performance.
- Use xmemdupz instead of xstrndup for converting String's into C strings.
It's faster because it doesn't calculate strlen(string.data) (which is
unnecesary as that information is already provided in string.size anyway).
- Use cstr_to_string to convert from C strings to String, it is both shorter
and faster than the usual strlen/xstrndup combo, which calls strlen twice.
cstr_to_string internally calls strlen and then xmemdupz.
|
| |
| |
| |
| |
| |
| | |
I believe we can now mostly assume that all encountered String's data
members are safe to pass into functions that accept C strings. That should
simplify interop with C string code.
|
| |
| |
| |
| |
| | |
Now that incoming Pascal strings are NULL-terminated by default, we can skip
some spurious copies.
|
|/
|
|
|
|
|
| |
It's a 1-byte loss of memory but it allows us to skip copying and
NULL-terminating strings when interacting with vim functions that accept C
strings. This lowers the pressure on the allocator and saves lines of code
(no more dup/free pairs).
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
mb_string2cells was always called like mb_string2cells(..., -1) so that was
the only codepath that was tested. @tarruda was the first to try to input an
actual length, after which valgrind detected that funny business was going
on.
It's not even possible to do the right thing with the current text codec
infrastructure: they all assume to be working with C strings. Meaning that
if there is no NUL-terminator, they will happily keep on reading past the
end of Pascal strings. Ergo, passing the length parameter is moot. The
condition in the for-loop was wrong as well (but that's no longer relevant).
Also change the return value to size_t, by analogy with strlen.
ref:
https://github.com/neovim/neovim/commit/677d30d7966dd2766bbf20665791c568dacc427a
|
|/
|
|
|
|
| |
Most of these functions don't modify their strings, let's make the contract
a bit clearer. In some cases I've tried to get rid of C89-style variable
declarations at the start of functions, now that I was there.
|
|
|
|
|
|
|
|
|
| |
Problem: A non-greedy match followed by a branch is too greedy. (Ingo
Karkat)
Solution: Add NFA_MATCH when it is already in the state list if the position
differs.
https://code.google.com/p/vim/source/detail?r=b871734bf54ea185dbd2cc759d86dbfbe21cde26
|
|
|
|
|
|
|
|
|
|
| |
Problem: Searching for "a" does not match accented "a" with new regexp
engine, does match with old engine. (David Bürgin)
"ca" does not match "ca" with accented "a" with either engine.
Solution: Change the old engine, check for following composing character
also for single-byte patterns.
https://code.google.com/p/vim/source/detail?r=60cdaa05a6ad31cef55eb6b3dc1f57ecac6fcf79
|
|
|
|
| |
These features are only used by legacy Mac OS.
|
|
|
|
| |
This should help reduce conflicts when merging patches from upstream.
|
|
|
|
|
|
|
|
|
| |
Problem: Pattern with repeated backreference does not match with new regexp
engine. (Urtica Dioica)
Solution: Also check the end of a submatch when deciding to put a state in
the state list.
https://code.google.com/p/vim/source/detail?r=99374096a76b96d1128f5e6aa1fa92b4ba70fee9
|
|
|
|
|
|
|
| |
Problem: When 'spellfile' is set the screen is not redrawn.
Solution: Redraw when updating the spelling info. (Christian Brabandt)
https://code.google.com/p/vim/source/detail?r=7965cb6a435ae1ea331c7c2f8740d3d4c3625f3b
|
|
|
|
|
|
|
| |
Problem: Error messages are inconsistant. (ZyX)
Solution: Change "Lists" to "list".
https://code.google.com/p/vim/source/detail?r=be19015ef43cc17825929206790696c2e716035d
|
|
|
|
|
|
|
|
| |
Problem: Setting 'langmap' in the modeline can cause trouble. E.g. mapping
":" breaks many commands. (Jens-Wolfhard Schicke-Uffmann)
Solution: Disallow setting 'langmap' from the modeline.
https://code.google.com/p/vim/source/detail?r=3c35ca9666e88a8024af6dab585b8e79ab295f83
|
|
|
|
|
|
|
| |
Problem: Test 97 fails on Mac.
Solution: Do not ignore case in file names. (Jun Takimoto)
https://code.google.com/p/vim/source/detail?r=6d0a1132dd71c7f55f7ed53fe99e97c79bfd05a4
|
|
|
|
|
|
|
|
| |
Problem: When a session file has more than one tabpage and 'showtabline' is
one the positions may be slightly off.
Solution: Set 'showtabline' to two while positioning windows.
https://code.google.com/p/vim/source/detail?r=24c90f1fec859b54cf2b854b98c4c9e614c46061
|
|
|
|
|
|
|
|
| |
Problem: When using a session file the relative position of the cursor is
not restored if there is another tab. (Nobuhiro Takasaki)
Solution: Update w_wrow before calculating the fraction.
https://code.google.com/p/vim/source/detail?r=daf7e98675cf395e1ef96f8040567affb2782a11
|
|\ |
|
|/
|
|
|
|
|
|
|
|
| |
Problem: When changing the type of a sign that hasn't been
placed ther is no error message.
Solution: Add an error message. (Christian Brabandt)
Author: Bram Moolenaar
https://code.google.com/p/vim/source/detail?r=8a3117a4887c1e12a1165c9719491f96753
|
|\ |
|
|/
|
|
|
|
|
|
| |
Problem: Using ":sign unplace *" may leave the cursor in the wrong position
(Christian Brabandt)
Solution: Update the cursor position when removing all signs.
https://code.google.com/p/vim/source/detail?r=373204662d82e894b27ee76bc3319bc62c91f6ae
|
| |
|
|\ |
|
|/
|
|
|
|
| |
Modify gendeclarations.lua to check if the generated non-static declaration
header changed before rewriting it with a new version. This is to prevent
unnecessary rebuilds of modules that depend on modules that had private changes.
|
|\ |
|
| | |
|
| | |
|
| |
| |
| |
| | |
Otherwise FUNC_ATTR_* macros may appear empty
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
So that they do the last nvim/func_attr.h include
|
| |
| |
| |
| | |
Required for FUNC_ATTR_UNUSED to work in lib/k*
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- The 'stripdecls.py' script replaces declarations in all headers by includes to
generated headers.
`ag '#\s*if(?!ndef NEOVIM_).*((?!#\s*endif).*\n)*#ifdef INCLUDE_GENERATED'`
was used for this.
- Add and integrate gendeclarations.lua into the build system to generate the
required includes.
- Add -Wno-unused-function
- Made a bunch of old-style definitions ANSI
This adds a requirement: all type and structure definitions must be present
before INCLUDE_GENERATED_DECLARATIONS-protected include.
Warning: mch_expandpath (path.h.generated.h) was moved manually. So far it is
the only exception.
|
|/
|
|
| |
Uses a perl script to move it (scripts/movedocs.pl)
|
|\ |
|