Problem: Cannot map <M-">. (Stephen Riehm)
Solution: Solve the memory access problem in another way. (Dominique Pelle)
Allow for using <M-\"> in a string.
35a4cfa200
Adds error messages, checks type and ignores the second argument.
Currently utf_char2bytes is able to handle any 31-bit character, not
limited by a unicode range. So checking for INT_MAX and not for
something else: function yet uses `int`.
With has_mbyte equal to 1 and &encoding always UTF-8 second argument is no
longer useful: utf_ptr2char is the same as mb_ptr2char.
Also changes function behaviour a bit: now if second argument is not a number it
immediately returns with error, without bothering to get a character.
Problem: When making a character lower case with tolower() changes the byte
cound, it is not made lower case.
Solution: Add strlow_save(). (Dominique Pelle, closesvim/vim#1406)
cc5b22b3bf
Join almost identical strup_save and strlow_save functions to one
Function.
A recent refactor left cpy without a NUL terminator, simplify the code
instead of patching over it.
Instead of plain memcpy, it'd be better to employ harder to misuse string
functions made for this purpose like xstrlcpy(), but path_tail() takes
char_u arguments and returns them, leading to a lot of ugly casting.
Fixes#6431.
Depending on the type of argument for input()/inputdialog()'s {text}
argument, defstr may point to buf. Therefore it needs to be in scope
for the lifetime of defstr.
Also, use a different buffer for the handling of the 3rd argument to
input()/inputdialog(). Although the buffer defstr points to is used
immediately, it avoids potential mishaps if the code changes.
Looks like dict_notifications_spec test used to depend on some state which
should not be preserved. Changed all `setup()` calls to `before_each()` and
added necessary state in addition to changes required to test empty keys.
Note: unit tests for tv_dict_watcher* are still needed.