patch 9.0.1015: without /dev/urandom srand() seed is too predictable
Problem: Without /dev/urandom srand() seed is too predictable.
Solution: Use micro seconds and XOR with process ID. (Yasuhiro Matsumoto,
closes #11656)
Bram Moolenaar [Mon, 5 Dec 2022 13:50:55 +0000 (13:50 +0000)]
patch 9.0.1007: there is no way to get a list of swap file names
Problem: There is no way to get a list of swap file names.
Solution: Add the swapfilelist() function. Use it in the test script to
clean up. Remove deleting individual swap files.
Bram Moolenaar [Sun, 4 Dec 2022 20:13:24 +0000 (20:13 +0000)]
patch 9.0.1001: classes are not documented or implemented yet
Problem: Classes are not documented or implemented yet.
Solution: Make the first steps at documenting Vim9 objects, classes and
interfaces. Make initial choices for the syntax. Add a skeleton
implementation. Add "public" and "this" in the command table.
Bram Moolenaar [Sat, 3 Dec 2022 00:00:38 +0000 (00:00 +0000)]
patch 9.0.0996: if 'keyprotocol' is empty "xterm" still uses modifyOtherKeys
Problem: If 'keyprotocol' is empty "xterm" still uses modifyOtherKeys.
Solution: Remove t_TI, t_RK and t_TE from the "xterm" builtin termcap and
let the default value of 'keyprotocol' add those.
Bram Moolenaar [Fri, 2 Dec 2022 20:46:26 +0000 (20:46 +0000)]
patch 9.0.0993: display errors when adding or removing text property type
Problem: Display errors when adding or removing text property type.
Solution: Perform a full redraw. Only use text properties for which the
type is defined. (closes #11655)
Bram Moolenaar [Fri, 2 Dec 2022 16:39:44 +0000 (16:39 +0000)]
patch 9.0.0991: crash when reading help index with various options set
Problem: Crash when reading help index with various options set. (Marius
Gedminas)
Solution: Do not set wlv.c_extra to NUL when wlv.p_extra is NULL.
(closes #11651)
Bram Moolenaar [Fri, 2 Dec 2022 15:58:38 +0000 (15:58 +0000)]
patch 9.0.0990: callback name argument is changed by setqflist()
Problem: Callback name argument is changed by setqflist().
Solution: Use the expanded function name for the callback, do not store it
in the argument. (closes #11653)
Bram Moolenaar [Fri, 2 Dec 2022 12:28:47 +0000 (12:28 +0000)]
patch 9.0.0985: when using kitty keyboard protocol function keys may not work
Problem: When using kitty keyboard protocol function keys may not work.
(Kovid Goyal)
Solution: Recognize CSI ending in [ABCDEFHPQRS] also when the termcap
entries are not specified. (closes #11648)
Bram Moolenaar [Thu, 1 Dec 2022 12:03:47 +0000 (12:03 +0000)]
patch 9.0.0980: the keyboard state response may end up in a shell command
Problem: The keyboard state response may end up in a shell command.
Solution: Only request the keyboard protocol state when the typeahead is
empty, no more commands are following and not exiting. Add the
t_RK termcap entry for this.
Bram Moolenaar [Wed, 30 Nov 2022 18:12:19 +0000 (18:12 +0000)]
patch 9.0.0977: it is not easy to see what client-server commands are doing
Problem: It is not easy to see what client-server commands are doing.
Solution: Add channel log messages if ch_log() is available. Move the
channel logging and make it available with the +eval feature.
Bram Moolenaar [Tue, 29 Nov 2022 18:32:32 +0000 (18:32 +0000)]
patch 9.0.0973: Kitty keyboard protocol key with NumLock not decoded
Problem: Kitty keyboard protocol key not decoded when it has an unsupported
modifier, such as NumLock.
Solution: Accept a key with any modifier. (closes #11638)
Bram Moolenaar [Mon, 28 Nov 2022 22:21:12 +0000 (22:21 +0000)]
patch 9.0.0969: matchparen highlight is not updated when switching buffers
Problem: Matchparen highlight is not updated when switching buffers.
Solution: Listen to the BufLeave and the BufWinEnter autocmd events.
(closes #11626)
Luuk van Baal [Mon, 28 Nov 2022 16:49:36 +0000 (16:49 +0000)]
patch 9.0.0964: status line not redrawn when 'splitkeep' is "screen"
Problem: Status line of other window not redrawn when dragging it when
'splitkeep' is set to "screen".
Solution: Set w_redr_status earlier. (Luuk van Baal, closes #11635,
closes #11632)
Bram Moolenaar [Sun, 27 Nov 2022 16:18:33 +0000 (16:18 +0000)]
patch 9.0.0960: error when using the "Spelling / Find More Languages" menu
Problem: Error when using the "Tools / Spelling / Find More Languages"
menu.
Solution: Remove "<SID>". Reset "g:menutrans_set_lang_to" when 'encoding'
changes. (closes #11625)
Bram Moolenaar [Sat, 26 Nov 2022 19:16:48 +0000 (19:16 +0000)]
patch 9.0.0954: cannot detect whether modifyOtherKeys is enabled
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.
Bram Moolenaar [Fri, 25 Nov 2022 16:31:51 +0000 (16:31 +0000)]
patch 9.0.0949: crash when unletting a variable while listing variables
Problem: Crash when unletting a variable while listing variables.
Solution: Disallow changing a hashtable while going over the entries.
(closes #11435)
Bram Moolenaar [Thu, 24 Nov 2022 20:23:24 +0000 (20:23 +0000)]
patch 9.0.0943: pretending to go out of Insert mode when Esc is received
Problem: Pretending to go out of Insert mode when Esc is received has side
effects.
Solution: When the kitty keyboard protocol is enabled expect Esc to always
be the start of an escape sequence.
Bram Moolenaar [Thu, 24 Nov 2022 14:05:19 +0000 (14:05 +0000)]
patch 9.0.0940: crash when typing a letter in a terminal window
Problem: Crash when typing a letter in a terminal window. (Shane-XB-Qian)
Solution: Use the "vterm" variable instead of getting the terminal pointer
from the current buffer. (closes #11608)
Bram Moolenaar [Thu, 24 Nov 2022 13:27:36 +0000 (13:27 +0000)]
patch 9.0.0939: still using simplified mappings when using kitty protocol
Problem: Still using simplified mappings when using the kitty keyboard
protocol.
Solution: Use the kitty_protocol_state value to decide whether to use
simplified mappings. Improve how seenModifyOtherKeys is set and
reset.
Bram Moolenaar [Wed, 23 Nov 2022 23:30:58 +0000 (23:30 +0000)]
patch 9.0.0933: Kitty shows "already at oldest change" on startup
Problem: Kitty shows "already at oldest change" on startup.
Solution: When receiving the keyboard protocol state return the ignore key.
(closes #11601)
patch 9.0.0931: MS-Windows: mouse column limited to 223
Problem: MS-Windows: mouse column limited to 223.
Solution: Use two bytes for each mouse coordinate. Add the mouse position
to scroll events. (Christopher Plewright, closes #11597)
Bram Moolenaar [Wed, 23 Nov 2022 20:20:18 +0000 (20:20 +0000)]
patch 9.0.0930: cannot debug the Kitty keyboard protocol with TermDebug
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.
zeertzjq [Wed, 23 Nov 2022 11:23:17 +0000 (11:23 +0000)]
patch 9.0.0925: two conditions are always false
Problem: Two conditions are always false.
Solution: Remove the conditions. Update return value types to make clear
what could be returned. (closes #11593)
Bram Moolenaar [Tue, 22 Nov 2022 20:41:05 +0000 (20:41 +0000)]
patch 9.0.0923: second SIGWINCH signal may be ignored
Problem: Second SIGWINCH signal may be ignored.
Solution: When set_shellsize() is busy when called then run the inner code
again when it's done. (issue #424)