0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

348 Commits

Author SHA1 Message Date
Shougo Matsushita
8367884909
patch 9.1.0563: Cannot process any Key event
Problem:  Cannot process any Key event
Solution: Add the KeyInputPre autocmd
          (Shougo Matsushita)

closes: #15182

Co-authored-by: zeertzjq <zeertzjq@outlook.com>
Co-authored-by: K.Takata <kentkt@csc.jp>
Signed-off-by: Shougo Matsushita <Shougo.Matsu@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-07-11 22:05:12 +02:00
zeertzjq
6b13e3d4e4
patch 9.1.0365: Crash when typing many keys with D- modifier
Problem:  Crash when typing many keys with D- modifier (after 9.1.0227).
Solution: Don't treat a 0x80 byte inside a special sequence as the start
          of a special sequence (zeertzjq).

closes: #14613

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-04-22 21:04:29 +02:00
zeertzjq
094c4390bd
patch 9.1.0351: No test that completing a partial mapping clears 'showcmd'
Problem:  No test that completing a partial mapping clears 'showcmd'.
Solution: Complete partial mappings in Test_showcmd_part_map() instead
          of using :echo.  Adjust some comments (zeertzjq).

closes: #14580

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-04-18 22:09:37 +02:00
zeertzjq
acdfb8a979
patch 9.1.0343: 'showcmd' wrong for partial mapping with multibyte
Problem:  'showcmd' is wrong for partial mapping with multibyte char,
          and isn't very readable with modifyOtherKeys.
Solution: Decode multibyte char and merge modifiers into the char.
          (zeertzjq)

This improves the following situations:
- Multibyte chars whose individual bytes are considered unprintable are
  now shown properly in 'showcmd' area.
- Ctrl-W with modifyOtherKeys now shows ^W in 'showcmd' area.

The following situation may still need improvement:
- If the char is a special key or has modifiers that cannot be merged
  into it, internal keycodes are shown in 'showcmd' area like before.
  This applies to keys typed in Normal mode commands as well, and it's
  hard to decide how to make it more readable due to the limited space
  taken by 'showcmd', so I'll leave it for later.

closes: #14572

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-04-17 21:28:54 +02:00
Mike Williams
aca8f55596
patch 9.1.0274: MS-Windows: a few compiler warnings
Problem:  MS-Windows: a few compiler warnings
Solution: Change variable types to resolve compiler warnings
          (Mike Williams)

Windows compiles were reporting a few size_t to signed integer
conversion warnings that can be resolved by changing the variable
declarations to be size_t to start with.

closes: #14429

Signed-off-by: Mike Williams <mrmrdubya@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-04-07 18:26:22 +02:00
zeertzjq
ea95f1a5ad
patch 9.1.0227: Recording may still be wrong in Select mode
Problem:  Recording may still be wrong in Select mode (after 8.2.3993).
Solution: Make sure a character isn't split between two buffer blocks.
          (zeertzjq)

closes: #14326

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-29 10:11:42 +01:00
zeertzjq
bf321806bf
patch 9.1.0060: Recorded register cannot be translated using keytrans()
Problem:  Recorded register cannot be translated using keytrans() when
          it involves character search (iddqd505)
Solution: Record a K_IGNORE instead of a K_NOP (zeertzjq)

related: #13916
closes: #13925

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-28 19:03:00 +01:00
Keith Thompson
184f71cc68
patch 9.1.0006: is*() and to*() function may be unsafe
Problem:  is*() and to*() function may be unsafe
Solution: Add SAFE_* macros and start using those instead
          (Keith Thompson)

Use SAFE_() macros for is*() and to*() functions

The standard is*() and to*() functions declared in <ctype.h> have
undefined behavior for negative arguments other than EOF.  If plain char
is signed, passing an unchecked value from argv for from user input
to one of these functions has undefined behavior.

Solution: Add SAFE_*() macros that cast the argument to unsigned char.

Most implementations behave sanely for negative arguments, and most
character values in practice are non-negative, but it's still best
to avoid undefined behavior.

The change from #13347 has been omitted, as this has already been
separately fixed in commit ac709e2fc0db6d31abb7da96f743c40956b60c3a
(v9.0.2054)

fixes: #13332
closes: #13347

Signed-off-by: Keith Thompson <Keith.S.Thompson@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-04 21:19:04 +01:00
David Leadbeater
67ec655383
patch 9.0.2069: possible to escape bracketed paste mode with Ctrl-C
Problem:  possible to escape bracketed paste mode with Ctrl-C
Solution: Do not handle Ctrl-C specially when key_protocol
          is in use, makes bracketed paste mode more robust

When a key protocol is in use Ctrl-C will be sent as an escape sequence,
but a raw Ctrl-C can be sent when pasting data. Pass this through, so
that a Ctrl-C can be pasted and won't result in exiting insert mode
(where the rest of the pasted keys can cause all kind of nasty
side-effects).

Many terminals will strip control characters in paste data (and xterm
will strip ^C since version 388), but this provides some defense in
depth if users change settings like xterm's allowPasteControls.

closes: #13398

Signed-off-by: David Leadbeater <dgl@dgl.cx>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-10-26 22:08:41 +02:00
zeertzjq
bacc83009b
patch 9.0.1694: wrong mapping applied when replaying a char search
Problem: wrong mapping applied when replaying a char search
Solution: Store a NOP after the ESC

closes: #12708
closes: #6350

Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
2023-08-12 00:09:31 +02:00
RestorerZ
68ebcee023 patch 9.0.1594: some internal error messages are translated
Problem:    Some internal error messages are translated.
Solution:   Consistently do not translate internal error messages.
            (closes #12459)
2023-05-31 17:12:14 +01:00
zeertzjq
30b6d6104c patch 9.0.1521: failing redo of command with control characters
Problem:    Failing redo of command with control characters.
Solution:   Use AppendToRedobuffLit() for colon commands. (closes #12354)
2023-05-07 17:39:23 +01:00
zeertzjq
3ab3a86481 patch 9.0.1516: cannot use special keys in <Cmd> mapping
Problem:    Cannot use special keys in <Cmd> mapping.
Solution:   Do allow for special keys in <Cmd> and <ScriptCmd> mappings.
            (closes #12326)
2023-05-06 16:22:04 +01:00
Bram Moolenaar
f39d9e9dca patch 9.0.1479: small source file problems; outdated list of distrib. files
Problem:    Small source file problems; outdated list of distributed files.
Solution:   Small updates to source files and list of distributed files.
2023-04-22 22:54:40 +01:00
Bram Moolenaar
ea83c19462 patch 9.0.1414: <M-S-x> in Kitty does not use the Shift modifier
Problem:    <M-S-x> in Kitty does not use the Shift modifier.
Solution:   Apply the Shift modifier to ASCII letters. (closes #11913)
2023-03-18 17:22:46 +00:00
Bram Moolenaar
7ac5023a5f patch 9.0.1392: using NULL pointer with nested :open command
Problem:    Using NULL pointer with nested :open command.
Solution:   Check that ccline.cmdbuff is not NULL.
2023-03-07 21:05:04 +00:00
Bram Moolenaar
6b066c6d8f patch 9.0.1333: when redo'ing twice <ScriptCmd> may not get the script ID
Problem:    When redo'ing twice <ScriptCmd> may not get the script ID.
Solution:   When "last_used_map" map is not set use "last_used_sid".
            (closes #11930)
2023-02-20 18:44:33 +00:00
Bram Moolenaar
a9a6b0323e patch 9.0.1285: various small problems
Problem:    Various small problems.
Solution:   Adjust white space and comments.
2023-02-05 18:00:42 +00:00
Yegappan Lakshmanan
fadc02a2a5 patch 9.0.1251: checking returned value of ga_grow() is inconsistent
Problem:    Checking returned value of ga_grow() is inconsistent.
Solution:   Check for FAIL instaed of "not OK". (Yegappan Lakshmanan,
            closes #11897)
2023-01-27 21:03:12 +00:00
Bram Moolenaar
0f843ef091 patch 9.0.1244: cursor displayed in wrong position when leaving Insert mode
Problem:    Cursor briefly displayed in a wrong position when pressing Esc in
            Insert mode after autoindent was used.
Solution:   Do not adjust the cursor position for assumed deleted white space
            if text is following.  (closes #11877)
2023-01-25 17:34:41 +00:00
Yegappan Lakshmanan
7f8b2559a3 patch 9.0.1158: code is indented more than necessary
Problem:    Code is indented more than necessary.
Solution:   Use an early return where it makes sense. (Yegappan Lakshmanan,
            closes #11787)
2023-01-08 13:44:24 +00:00
Bram Moolenaar
dffa6ea85c patch 9.0.0974: even when Esc is encoded a timeout is used
Problem:    Even when Esc is encoded a timeout is used.
Solution:   Use K_ESC when an encoded Esc is found.
2022-11-29 20:33:20 +00:00
Bram Moolenaar
c255b78965 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.
2022-11-26 19:16:48 +00:00
Bram Moolenaar
d330e8422d 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.
2022-11-24 20:23:24 +00:00
Bram Moolenaar
47f1fdc28c 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.
2022-11-24 13:27:36 +00:00
Christopher Plewright
0319306f20 patch 9.0.0918: MS-Windows: modifier keys do not work with mouse scroll event
Problem:    MS-Windows: modifier keys do not work with mouse scroll events.
Solution:   Use K_SPECIAL instead of CSI for the modifier keys. (Christopher
            Plewright, closes #11587)
2022-11-22 12:58:27 +00:00
Bram Moolenaar
c896adbcde patch 9.0.0912: libvterm with modifyOtherKeys level 2 does not match xterm
Problem:    libvterm with modifyOtherKeys level 2 does not match xterm.
Solution:   Adjust key code escape sequences to be the same as what xterm
            sends in modifyOtherKeys level 2 mode.  Check the value of
            no_reduce_keys before using it.
2022-11-19 19:02:40 +00:00
Bram Moolenaar
88456cd3c4 patch 9.0.0904: various comment and indent flaws
Problem:    Various comment and indent flaws.
Solution:   Improve comments and indenting.
2022-11-18 22:14:09 +00:00
dundargoc
c57b5bcd22 patch 9.0.0828: various typos
Problem:    Various typos.
Solution:   Correct typos. (closes #11432)
2022-11-02 13:30:51 +00:00
Christopher Plewright
7fa02bcb3b patch 9.0.0812: GUI mouse scrollwheel mappings don't work
Problem:    GUI mouse scrollwheel mappings don't work.
Solution:   Add check for "gui.in_use". (Christopher Plewright, closes #11418)
2022-10-21 13:03:33 +01:00
zeertzjq
49660f5139 patch 9.0.0806: 'langmap' works differently when there are modifiers
Problem:    'langmap' works differently when there are modifiers.
Solution:   Only apply 'langmap' to a character where modifiers have no
            effect. (closes #11395, closes #11404)
2022-10-20 17:59:38 +01:00
Christopher Plewright
4c36678ffd patch 9.0.0802: MS-Windows: cannot map console mouse scroll events
Problem:    MS-Windows: cannot map console mouse scroll events.
Solution:   Change CSI to K_SPECIAL when checking for a mapping. (Christopher
            Plewright, closes #11410)
2022-10-20 13:11:15 +01:00
Christopher Plewright
605d02a9b7 patch 9.0.0793: MS-Windows: mouse scroll events only work with the dll
Problem:    MS-Windows: mouse scroll events only work with the dll.
Solution:   Accept CSI codes for MS-Windows without the GUI. (Christopher
            Plewright, closes #11401)
2022-10-19 11:54:46 +01:00
Martin Tournoij
ba43e76fcd patch 9.0.0747: too many #ifdefs
Problem:    Too many #ifdefs.
Solution:   Gradudate the +cmdline_info feature. (Martin Tournoij,
            closes #11330)
2022-10-13 22:12:15 +01:00
Yee Cheng Chin
4314e4f7da patch 9.0.0694: no native sound support on Mac OS
Problem:    No native sound support on Mac OS.
Solution:   Add sound support for Mac OS. (Yee Cheng Chin, closes #11274)
2022-10-08 13:50:05 +01:00
Martin Tournoij
7904fa420e patch 9.0.0657: too many #ifdefs
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)
2022-10-04 16:28:45 +01:00
Bram Moolenaar
78aed95c8d patch 9.0.0575: the getchar() function behaves strangely with bracketed paste
Problem:    The getchar() function behaves strangely with bracketed paste.
Solution:   Do not handle paste-start in getchar(). (issue #11172)
2022-09-24 15:36:35 +01:00
Bram Moolenaar
ddf7dba96e patch 9.0.0387: repeat <ScriptCmd> mapping doesn't use right script context
Problem:    repeating a <ScriptCmd> mapping does not use the right script
            context.
Solution:   When using a mapping put <SID>{sid}; in the redo buffer.
            (closes #11049)
2022-09-05 16:53:21 +01:00
zeertzjq
c47b16a470 patch 9.0.0385: GUI: when CTRL-D is mapped in Insert mode it gets inserted
Problem:    GUI: when CTRL-D is mapped in Insert mode it gets inserted.
            (Yasuhiro Matsumoto)
Solution:   Also recognize modifier starting with CSI. (closes #11057)
2022-09-05 13:05:29 +01:00
Bram Moolenaar
a2a8973e51 patch 9.0.0340: the 'cmdheight' zero support causes too much trouble
Problem:    The 'cmdheight' zero support causes too much trouble.
Solution:   Revert support for 'cmdheight' being zero.
2022-08-31 14:46:18 +01:00
Bram Moolenaar
13608d851a patch 9.0.0318: clearing screen causes flicker
Problem:    Clearing screen causes flicker.
Solution:   Do not clear but redraw in more cases.  Add () to "wait_return".
2022-08-29 15:06:50 +01:00
Bram Moolenaar
8d69637133 patch 9.0.0234: cannot make difference between :normal end and argument char
Problem:    Cannot make difference between the end of :normal and a character
            in its argument.
Solution:   Add the "typebuf_was_empty" flag. (closes #10950)
2022-08-21 10:40:07 +01:00
Bram Moolenaar
a4d158b3c8 patch 9.0.0206: redraw flags are not named specifically
Problem:    Redraw flags are not named specifically.
Solution:   Prefix "UPD_" to the flags, for UPDate_screen().
2022-08-14 14:17:45 +01:00
Shougo Matsushita
f39cfb7262 patch 9.0.0114: the command line takes up space even when not used
Problem:    The command line takes up space even when not used.
Solution:   Allow for 'cmdheight' to be set to zero. (Shougo Matsushita,
            closes #10675, closes #940)
2022-07-30 16:54:05 +01:00
Bram Moolenaar
7f9969c559 patch 9.0.0067: cannot show virtual text
Problem:    Cannot show virtual text.
Solution:   Initial changes for virtual text support, using text properties.
2022-07-25 18:13:54 +01:00
zeertzjq
bb404f5ad5 patch 9.0.0059: test file has wrong name
Problem:    Test file has wrong name.
Solution:   Rename the file.  Various small fixes. (closes #10674)
2022-07-23 06:25:29 +01:00
Bram Moolenaar
b8329db36a patch 9.0.0044: typos in comments, wrapping lines
Problem:    Typos in comments, wrapping lines.
Solution:   Adjust comments.  Wrap lines.
2022-07-06 13:31:28 +01:00
Bram Moolenaar
af043e12d9 patch 9.0.0024: may access part of typeahead buf that isn't filled
Problem:    May access part of typeahead buf that isn't filled.
Solution:   Check length of typeahead.
2022-07-02 12:08:16 +01:00
zeertzjq
2e7cba347f patch 8.2.5076: unnecessary code
Problem:    Unnecessary code.
Solution:   Remove code and replace with function call. (closes #10552)
2022-06-10 15:30:32 +01:00
zeertzjq
3760bfddc4 patch 8.2.5064: no test for what 8.1.0052 fixes
Problem:    No test for what 8.1.0052 fixes.
Solution:   Add a test. (closes #10531)
2022-06-06 16:22:46 +01:00