| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
| |
Problem: Order of matches for 'omnifunc' is messed up. (Danny Su)
Solution: Do not set compl_curr_match when called from complete_check().
(closes vim/vim#1168)
https://github.com/vim/vim/commit/472e85970ee3a80abd824bef510df12e9cfe9e96
|
|
|
|
|
|
|
|
|
| |
Eliminate mb_init():
Set "enc_utf" and "has_mbyte" early. Eliminate "enc_unicode" and "enc_latin1like".
init_chartab() and screenalloc() are already invoked elsewhere
in the initialization process.
The EncodingChanged autocmd cannot be triggered.
At initialization, there is no spellfiles to reload
|
|
|
|
|
|
|
|
|
|
| |
move `call_shell` to misc1.c
Move some fns to state.c
Move some fns to option.c
Move some fns to memline.c
Move `vim_chdir*` fns to file_search.c
Move some fns to new module, bytes.c
Move some fns to fileio.c
|
| |
|
|
|
|
|
|
|
| |
Problem: ":colorscheme" does not use 'packpath'.
Solution: Also use in "start" and "opt" directories in 'packpath'.
https://github.com/vim/vim/commit/7f8989dd8a627af2185df381195351a913f3777f
|
|
|
|
| |
Because the old name did not indicate that the function
would return true on directories as well.
|
|
|
|
|
|
| |
Problem: Don't know why finding spell suggestions is slow.
Solution: Add some code to gather profiling information.
https://github.com/vim/vim/commit/ca1fe985175385c609f8e06672a1014729aba05c
|
|
|
|
|
|
|
|
| |
Problem: When a spell file has single letter compounding creating
suggestions takes an awful long time.
Solution: Add th eNOCOMPOUNDSUGS flag.
https://github.com/vim/vim/commit/7b877b360532713dc21a0ff3d55a76ac02eaf573
|
| |
|
|
|
|
|
|
|
|
|
|
| |
In #3027 we deferred the "missing spell file" prompt until VimEnter, but
we were sending the wrong argument (should be "en", not "en_us").
This also caused redundant prompts if user answers "No" to the download
prompt invoked by the SpellFileMissing event.
Closes #3966
Closes #4406
|
|
|
|
|
|
|
| |
Problem: No support for binary numbers.
Solution: Add "bin" to nrformats. (Jason Schulz)
https://github.com/vim/vim/commit/887c1fea4a114e7170091942d0446c8882701b5b
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Regarding the individual items in the header:
`Vim - Vi improved by Bram Moolenar`
Bram Moolenar is already mentioned throughout the documentation, as
well as the intro screen.
`:help uganda`
It's already shown to all users who don't use `shortmess+=I` upon
starting nvim, and is already placed prominently in help.txt, i.e.,
`:help` run with no arguments.
`:help credits`
Already mentioned near the top of help.txt.
`README.md`
Already mentioned in develop.txt.
|
| |
|
|
|
|
|
| |
The former no longer exists in this repo; see the top of
src/nvim/README.md.
|
|
|
|
|
|
|
| |
Problem: Can't specify when not to ring the bell.
Solution: Add the 'belloff' option. (Christian Brabandt)
https://github.com/vim/vim/commit/165bc69d1b7f70ca9d5b657f35d0584ecb7b5183
|
| |
|
|
|
|
| |
Closes #1551
|
| |
|
| |
|
|
|
|
| |
Closes #2791
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Refactor summary:
- extern int opcount --> extern long opcount
- bool find_decl(..., int len, ...) --> bool find_decl(..., size_t len, ...)
* int find_ident_under_cursor(...) --> size_t find_ident_under_cursor(...)
- int find_ident_at_pos(...) --> size_t find_ident_at_pos(...)
- int modify_fname(..., int *usedlen, ..., int *fnamelen) --> int modify_fname(..., size_t *usedlen, ..., size_t *fnamelen)
* char_u *eval_vars(..., int *usedlen, ...) --> char_u *eval_vars(..., size_t *usedlen, ...)
- int find_cmdline_var(..., int *usedlen) --> ssize_t find_cmdline_var(..., size_t *usedlen)
- static char_u *repl_cmdline(..., int srclen, ...) --> static char_u *repl_cmdline(..., size_t srclen, ...)
- bool get_visual_text(..., int *lenp) --> bool get_visual_text(..., size_t *lenp)
* char_u *find_file_name_in_path(..., int len, ...) --> char_u *find_file_name_in_path(..., size_t len, ...)
- static char_u *eval_includeexpr(..., int len) --> static char_u *eval_includeexpr(..., size_t len)
- char_u *find_file_in_path(..., int len, ...) --> char_u *find_file_in_path(..., size_t len, ...)
* char_u *find_file_in_path_option(..., int len, ...) --> char_u *find_file_in_path_option(..., size_t len, ...)
- char_u *find_directory_in_path(..., int len, ...) --> char_u *find_directory_in_path(..., size_t len, ...)
* int spell_move_to(...) --> size_t spell_move_to(...)
- int spell_check(...) --> size_t spell_check(...)
- static int spell_bad_len --> static size_t spell_bad_len
- void find_pattern_in_path(..., int len, ...) --> void find_pattern_in_path(..., size_t len, ...)
Helped-by: Justin M. Keyes <justinkz@gmail.com>
|
|
|
|
|
|
|
|
|
| |
Problem: Crash when using syntax highlighting.
Solution: When regprog is freed and replaced, store the result.
https://github.com/vim/vim/tree/v7-4-519
Helped-by: Scott Prager <splinterofchaos@gmail.com>
|
|
|
|
|
| |
See:
https://groups.google.com/forum/#!topic/vim_dev/rPWOoR3ZgSA
|
| |
|
| |
|
|
|
|
|
|
| |
We already use wrappers for allocation, the new `xfree` function is the
equivalent for deallocation and provides a way to fully replace the malloc
implementation used by Neovim.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Removed term.c, term.h and term_defs.h
- Tests for T_* values were removed. screen.c was simplified as a
consequence(the best strategy for drawing is implemented in the UI layer)
- Redraw functions now call ui.c functions directly. Updates are flushed with
`ui_flush()`
- Removed all termcap options(they now return empty strings for compatibility)
- &term/&ttybuiltin options return a constant value(nvim)
- &t_Co is still available, but it mirrors t_colors directly
- Remove cursor tracking from screen.c and the `screen_start` function. Now the
UI is expected to maintain cursor state across any call, and reset it when
resized.
- Remove unused code
|
|
|
|
|
|
| |
Refactoring summary:
- MB_STRNICMP: Inlined.
- MB_STRNCMP: Inlined.
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
| |
If you Google for this phrase found in the Vim documentation you'll find
almost exclusively hits from the Vim documentation. I think changing
"halfway a line" to "halfway through a line" makes more sense.
There seems to be an pervasive odd use of the word 'halfway' in the
original docs which I'm updating everywhere.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem : getdigits() currently returns a long, but at most places,
return value is casted (unsafely) into an int. Making casts
safe would introduce a lot of fuss in the form of assertions
checking for limits.
Note : We cannot just change return type to int, because, at some
places, legitimate long values are used. For example, in
diff.c, for line numbers.
Solution : Introduce new functions:
- get_digits() : Gets an intmax_t from a string.
- get_int_digits() : Wrapper for ints.
- get_long_digits() : Wrapper for longs.
And replace getdigits() invocations by the appropiate
wrapper invocations.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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: Spell files from Hunspell may generate a lot of errors.
Solution: Add the IGNOREEXTRA flag.
https://code.google.com/p/vim/source/detail?r=v7-4-447
|
| |
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Also move read_error_exit to os/input.c
|
|
|
|
|
| |
These functions only used to call another os_* function, so remove them and
replace all occurences in the project.
|
|
|
|
|
|
|
|
| |
Problem : Assigned value is garbage or undefined @ 12526.
Diagnostic : Multithreading issue.
Rationale : Error only occurs if global has_mbyte is modified while
function is executing.
Resolution : Use local copy of global.
|
|
|
|
|
|
|
|
|
|
| |
Problem : Dereference of null pointer @ 6089.
Diagnostic : False positive / Real issue.
Rationale : From the code, it seems the intent is that len parameter
should never exceed SBLOCKSIZE. But the code checking for
that does in fact cause a null pointer dereference just
immediately after.
Resolution : State precondition in doc and assert it at entry.
|
|
|
|
|
|
|
|
|
|
| |
Problem : Result of operation is garbage or undefined @ 5809.
Diagnostic : Real issue.
Rationale : When copying flags, first access to
`use_pfxlist[use_pfxlen]` was garbage if
`spin->si_compflags` was null.
Resolution : Make sure `use_pfxlist[use_pfxlen]` always has a value (NUL
if `spin->si_compflags` is NULL).
|
|
|
|
|
|
|
|
|
| |
Problem : Uninitialized argument value @ 4469.
Diagnostic : Real issue.
Rationale : Happens when a line contains a spell info item (NAME, HOME,
VERSION, AUTHOR, EMAIL, COPYRIGHT), which expect a second
item, but then the second item is not present.
Resolution : Add guard (item count > 1) to failing branch.
|