* Add sha256.c/h to clint-files.txt.
* Add sha256.c to CONV_SRCS in src/nvim/CMakeLists.txt.
* Use size_t for lengths and const for read-only parameters.
* Use restrict keyword.
* Refine #includes.
For garbage collection all lists are kept in first_list, a list of all
lists.
free_unref_items() searches through first_list and removes unreferenced
lists from it (by calling list_free(..., FALSE)). But after a list was
removed, the search continues from the beginning of first_list (not sure
how many lists were really removed and where to continue in first_list).
This is not necessary anymore since vim-patch 7.0.135, because a call to
list_free(...,FALSE) makes sure, that no other lists (and dictionaries)
are freed. So we always know, that the next list in first_list is
still valid (allocated or NULL) and can be used to continue the search.
Likewise for dictionaries.
Original patch by Ariya Mizutani
https://groups.google.com/forum/#!searchin/vim_dev/GC/vim_dev/DBYOdHQWvqY/1WH04_dwETIJ
Problem: ":sign jump" may use another window even though the file is
already edited in the current window.
Solution: First check if the file is in the current window. (James McCoy)
https://code.google.com/p/vim/source/detail?r=v7-4-487
Code modified in patch 7.4.402 and 7.4.443 was introduced with
patch 7.4.399, which is also marked as NA (FEAT_CRYPT was removed).
Patch 7.4.509 needs the removed FEAT_CRYPT.
- restores behavior equivalent to Vim compiled without FEAT_MZSCHEME, etc.
(avoids spurious "E492: Not an editor command: EOF") for code such as:
```vim
if 0
perl << EOF
end
EOF
endif
```
see :help script-here
- fixes#1308
- fixes https://github.com/junegunn/vim-plug/issues/111
The memory leak fixed in 7.4.560 was fixed in
e10670ac3b. We also do not need to keep
`y_current->y_array` as is until done, because our memory allocations
cannot fail.
** CID 90712: Dereference after null check (FORWARD_NULL)
/src/nvim/getchar.c: 3654 in check_abbr()
vim_strsave() never returns NULL, so q is never NULL. Removing the
NULL check for q should fix this warning.
Problem: Using "vit" does not select a multi-byte character at the end
correctly.
Solution: Advance the cursor over the multi-byte character. (Christian
Brabandt)
https://code.google.com/p/vim/source/detail?r=v7-4-547
put_time() had a complicated implementation, because of having to shift
an 8-byte value in a portable way with old means.
That can be greatly simplified now, using a C99 fixed-size type.
Previous commit dropped many -Wconversion warnings in both spell.c and
undo.c. spell.c still has a lot of them (200+). But in undo.c, only a
handful of them remain. Take the chance to eliminate those, too, and add
undo.c to -Wconversion checked files.
Remove all long_u instances due to put_bytes() function.
First, function signature is changed this way:
- nr : long_u --> uintmax_t
uintmax_t is chosen so that invocations can use any unsigned integer
type (including size_t) without needing to cast.
- len : int --> unsigned int
This is to pass the size in bytes of the previous param, thus an
unsigned int is enough. All invocations use positive integer
literals, so change is safe without the need for casts.
Then, function implementation is adapted accordingly.
Last, all invocation points are refactored this way:
- Refactor types to minimize casts.
- Inline declarations (C99 style) in containing function.
All this changes were done with -Wconversion temporarily activated for
spell.c and undo.c, so that we can assert changes are type-safe and do
not introduce any warnings to that respect.
Problem: Cursor movement still wrong when 'lbr' is set and there is a
number column. (Hirohito Higashi)
Solution: Add correction for number column. (Hiroyuki Takagi)
https://code.google.com/p/vim/source/detail?r=v7-4-489