Age | Commit message (Collapse) | Author |
|
Problem: no support to build on OpenVMS
Solution: Add OpenVMS X86_64 platform port
closes: #13623
Co-authored-by: errael <errael@raelity.com>
Co-authored-by: K.Takata <kentkt@csc.jp>
Signed-off-by: Zoltan Arpadffy <zoltan.arpadffy@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
|
|
Problem: [security]: stack-buffer-overflow in option callback functions
Solution: pass size of errbuf down the call stack, use snprintf()
instead of sprintf()
We pass the error buffer down to the option callback functions, but in
some parts of the code, we simply use sprintf(buf) to write into the error
buffer, which can overflow.
So let's pass down the length of the error buffer and use sprintf(buf, size)
instead.
Reported by @henices, thanks!
Signed-off-by: Christian Brabandt <cb@256bit.org>
|
|
Problem: mapset() not properly handling script ID
Solution: replace_termcodes() may accept a script ID
closes: #12699
closes: #12697
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
|
|
Problem: Some internal error messages are translated.
Solution: Consistently do not translate internal error messages.
(closes #12459)
|
|
Problem: Code indenting is confused by macros.
Solution: Put semicolon after the macros instead of inside. (Ozaki Kiichi,
closes #12257)
|
|
Problem: mapset() does not restore non-script context.
Solution: Also accept negative sid. (closes #12132)
|
|
Problem: Too many "else if" statements in handling options.
Solution: Add more functions for handling option changes. (Yegappan
Lakshmanan, closes #12060)
|
|
Problem: Handling new value of an option has a long "else if" chain.
Solution: Use a function pointer. (Yegappan Lakshmanan, closes #12015)
|
|
Problem: Completion of map includes simplified ones.
Solution: Do not complete simplified mappings. (closes #12013)
|
|
Problem: Checking returned value of ga_grow() is inconsistent.
Solution: Check for FAIL instaed of "not OK". (Yegappan Lakshmanan,
closes #11897)
|
|
Problem: Code is indented more than necessary.
Solution: Use an early return where it makes sense. (Yegappan Lakshmanan,
closes #11813)
|
|
Problem: A shell command switching screens may still have a problem with
the kitty keyboard protocol.
Solution: Disable the kitty keyboard protocol both in the current and the
alternate screen, if there are indications it might be needed.
(issue #11705) Also fix naming.
|
|
Problem: Cannot detect whether modifyOtherKeys is enabled.
Solution: Use XTQMODKEYS introduced by xterm version 377 to request the
modifyOtherKeys level. Update the keycode check results.
|
|
Problem: Cannot debug the Kitty keyboard protocol with TermDebug.
Solution: Add Kitty keyboard protocol support to the libvterm fork.
Recognize the escape sequences that the protocol generates. Add
the 'keyprotocol' option to allow the user to specify for which
terminal what protocol is to be used, instead of hard-coding this.
Add recognizing the kitty keyboard protocol status.
|
|
Problem: Using freed memory when executing mapclear at the more prompt.
Solution: Do not clear mappings while listing them. (closes #11438)
|
|
Problem: There is no way to find out if an escape sequence with
modifyOtherKeys has been seen.
Solution: Add a notice with ":verbose map".
|
|
Problem: Mapping with CTRL keys does not work in the GUI.
Solution: Recognize CSI next to K_SPECIAL. (closes #11275, closes #11270)
|
|
Problem: Too many #ifdefs.
Solution: Graduate the +cmdwin feature. Now the tiny and small builds are
equal, drop the small build. (Martin Tournoij, closes #11268)
|
|
Problem: Evaluating "expr" options has more overhead than needed.
Solution: Use call_simple_func() for 'foldtext', 'includeexpr', 'printexpr',
"expr" of 'spellsuggest', 'diffexpr', 'patchexpr', 'balloonexpr',
'formatexpr', 'indentexpr' and 'charconvert'.
|
|
Problem: There is no easy way to translate a string with a key code into a
readable string.
Solution: Add the keytrans() function. (closes #11114)
|
|
Problem: mapset() does not restore <Nop> mapping properly.
Solution: Use an empty string for <Nop>. (closes #11022)
|
|
Problem: Checks for Dictionary argument often give a vague error message.
Solution: Give a useful error message. (Yegappan Lakshmanan, closes #11009)
|
|
Problem: Unused variable.
Solution: Remove the variable. (closes #10829)
|
|
Problem: Too many type casts for dict_get functions.
Solution: Change the key argument from "char_u *" to "char *".
|
|
Problem: Map functionality outside of map.c.
Solution: Move f_hasmapto() to map.c. Rename a function. (closes #10611)
|
|
Problem: MS-Windows: warnings from MinGW compyler.
Solution: Use "volatile". (Yasuhiro Matsumoto, closes #10589) Initialize
variable.
|
|
Problem: Some callers of rettv_list_alloc() check for not OK. (Christ van
Willegen)
Solution: Use "==" instead of "!=" when checking the return value.
|
|
Problem: Default cmdwin mappings are re-mappable.
Solution: Make the default mappings not re-mappable. (closes #10580) Use
symbols for the first do_map() argument.
|
|
Problem: "textlock" is always zero.
Solution: Remove "textlock" and rename "textwinlock" to "textlock".
(closes #10489)
|
|
Problem: Not easy to filter the output of maplist().
Solution: Add mode_bits to the dictionary. (Ernie Rael, closes #10356)
|
|
Problem: The mode #defines are not clearly named.
Solution: Prepend MODE_. Renumber them to put the mapped modes first.
|
|
Problem: Listing of mapping with K_SPECIAL is wrong.
Solution: Adjust escaping of special characters. (closes #10351)
|
|
Problem: It is not easy to restore saved mappings.
Solution: Make mapset() accept a dict argument. (Ernie Rael, closes #10295)
|
|
Problem: Crash when using maparg() and unmapping simplified keys.
Solution: Do not keep a mapblock pointer. (closes #10294)
|
|
Problem: Fix for unmapping simplified key not fully tested.
Solution: Add a test case. (closes #10292)
|
|
Problem: Typo in variable name. (Gabriel Dupras)
Solution: Rename the variable.
|
|
Problem: Can only get a list of mappings.
Solution: Add the optional {abbr} argument. (Ernie Rael, closes #10277)
Rename to maplist(). Rename test file.
|
|
Problem: Expression is evaluated multiple times.
Solution: Evaluate expression once and store the result. (closes #10278)
|
|
Problem: Not simple programmatic way to find a specific mapping.
Solution: Add getmappings(). (Ernie Rael, closes #10273)
|
|
Problem: Unmapping simplified keys also deletes other mapping.
Solution: Only unmap a mapping with m_simplified set. (closes #10270)
|
|
Problem: Command completion makes two rounds to collect matches.
Solution: Use a growarray to collect matches. (Yegappan Lakshmanan,
closes #9860)
|
|
Problem: No fuzzy completieon for maps and abbreviations.
Solution: Fuzzy complete maps and abbreviations. (Yegappan Lakshmanan,
closes #9856)
|
|
Problem: Map listing does not clear the rest of the command line.
Solution: Call msg_clear_eos(). (closes #5623, closes #5962)
|
|
Problem: The EBCDIC support is outdated.
Solution: Remove the EBCDIC support.
|
|
Problem: Coverity warns for using pointer after free.
Solution: Swap statements, even though using the pointer is no problem.
|
|
Problem: Deleting any mapping may cause <ScritpCmd> to not set the script
context.
Solution: Only reset last_used_map if it is the deleted mapping.
(closes #9568)
|
|
Problem: maparg() does not indicate the type of script where it was defined.
Solution: Add "scriptversion".
|
|
Problem: Using freed memory if an expression abbreviation deletes the
abbreviation.
Solution: Do not access the pointer after evaluating the expression.
|
|
Problem: Potential proglem when map is deleted while executing.
Solution: Reset last used map pointer when deleting a mapping.
|
|
Problem: Vim9: an expression of a map cannot access script-local items.
(Maxim Kim)
Solution: Use the script ID of where the map was defined.
|