aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/getchar.c
Commit message (Collapse)AuthorAge
...
* Treat unmapped ALT/META as ESC+c in all modesMatt Wozniski2020-10-05
| | | | | | | | In #8226 <A-x> and <M-x> were changed to behave like <Esc>x in insert mode when no mapping exists. This commit backs out that change and replaces it with a more general one that makes unmapped ALT and META keypresses as <Esc>+char in all modes. This fixes an unnecessary and confusing inconsistency between modes.
* vim-patch:8.1.1591: on error garbage collection may free memory in useJan Edmund Lazo2020-09-30
| | | | | | | Problem: On error garbage collection may free memory in use. Solution: Reset may_garbage_collect when evaluating expression mapping. Add tests. (Ozaki Kiichi, closes vim/vim#4579) https://github.com/vim/vim/commit/7d491c425334d9477637372a4ebec64c228c8430
* vim-patch:8.2.1377: triggering the ATTENTION prompt causes typeahead mess upJan Edmund Lazo2020-08-14
| | | | | | Problem: Triggering the ATTENTION prompt causes typeahead to be messed up. Solution: Increment tb_change_cnt. (closes vim/vim#6541) https://github.com/vim/vim/commit/b8d732e93e4b70ad992a12f761bc6a1279dd495b
* lua: add vim.register_keystroke_callback (#12536)TJ DeVries2020-08-14
| | | | | | | | | | | | | | | * feat: Add vim.register_keystroke_callback * fixup: Forgot to remove mention of old option * fixup: Answer jamessan comments * fixup: Answer norcalli comments * fixup: portability * Update runtime/doc/lua.txt Co-authored-by: Ashkan Kiani <ashkan.k.kiani@gmail.com>
* vim-patch:8.0.1139: using window toolbar changes stateJan Edmund Lazo2020-04-26
| | | | | | Problem: Using window toolbar changes state. Solution: Always execute window toolbar actions in Normal mode. https://github.com/vim/vim/commit/a21a6a9ade7bec3a07992d4d900d4ce82eeb8a29
* vim-patch:8.1.1201: output of :command is hard to readJan Edmund Lazo2020-02-16
| | | | | | | Problem: Output of :command is hard to read. Solution: Make some columns wider, some narrower. Truncate the command when listing all. https://github.com/vim/vim/commit/725310d89e1ba268bf410472b7de054c6c260161
* vim-patch:8.1.1269: MS-Windows GUI: multibyte chars with a 0x80 byte do not workJan Edmund Lazo2020-02-02
| | | | | | | | Problem: MS-Windows GUI: multibyte chars with a 0x80 byte do not work when compiled with VIMDLL. Solution: Adjust the condition for fixing the input buffer. (Ken Takata, closes vim/vim#4330) https://github.com/vim/vim/commit/ed5ab2a95972b5ef588bdafab9f197e1dcf0c1df
* vim-patch:8.1.0140: recording into a register has focus eventsJan Edmund Lazo2020-02-01
| | | | | | Problem: Recording into a register has focus events. (Michael Naumann) Solution: Don't record K_FOCUSGAINED and K_FOCUSLOST. (closes vim/vim#3143) https://github.com/vim/vim/commit/972bfddc6b3f52ae0865ad8c0bf6089bc8a9883a
* refactor: move session functions to ex_session.cJustin M. Keyes2020-01-28
|
* vim-patch:8.1.1579: dict and list could be GC'ed while displaying errorJan Edmund Lazo2020-01-05
| | | | | | | | | Problem: Dict and list could be GC'ed while displaying error in a timer. (Yasuhiro Matsumoto) Solution: Block garbage collection when executing a timer. Add test_garbagecollect_soon(). Add "no_wait_return" to test_override(). (closes vim/vim#4571) https://github.com/vim/vim/commit/adc6714aac20f5462a0ecec50ab4806b2f3ab0db
* vim-patch:8.0.1786: no test for 'termwinkey'Jan Edmund Lazo2020-01-05
| | | | | | | Problem: No test for 'termwinkey'. Solution: Add a test. Make feedkeys() handle terminal_loop() returning before characters are consumed. https://github.com/vim/vim/commit/b2ac14c0b5e23f8ab97c5c784bcd83e13ba8ded3
* getchar: fix pvs/v1048Jan Edmund Lazo2019-12-22
|
* undo: delete undo_off global without effectBjörn Linse2019-11-16
|
* vim-patch:8.1.1588: in :let-heredoc line continuation is recognizedJurica Bradaric2019-10-07
| | | | | | Problem: In :let-heredoc line continuation is recognized. Solution: Do not consume line continuation. (Ozaki Kiichi, closes vim/vim#4580) https://github.com/vim/vim/commit/e96a2498f9a2d3e93ac07431f6d4afd77f30afdf
* vim-patch:8.1.2120: some MB_ macros are more complicated than necessaryJan Edmund Lazo2019-10-06
| | | | | | | Problem: Some MB_ macros are more complicated than necessary. (Dominique Pelle) Solution: Simplify the macros. Expand inline. https://github.com/vim/vim/commit/1614a14901558ca091329315d14a7d5e1b53aa47
* vim-patch:8.1.2091: double free when memory allocation failsJan Edmund Lazo2019-10-01
| | | | | | Problem: Double free when memory allocation fails. (Zu-Ming Jiang) Solution: Use VIM_CLEAR() instead of vim_free(). (closes vim/vim#4991) https://github.com/vim/vim/commit/0f1c6708fdf17bb9c7305b8af5d12189956195b6
* refactor: allow us to process a child queue only while waiting on inputBjörn Linse2019-09-08
|
* vim-patch:8.1.0362: cannot get the script line number when executing a functionerw72019-09-04
| | | | | | | Problem: Cannot get the script line number when executing a function. Solution: Store the line number besides the script ID. (Ozaki Kiichi, closes vim/vim#3362) Also display the line number with ":verbose set". https://github.com/vim/vim/commit/f29c1c6aa3f365c025890fab5fb9efbe88eb1761
* API: nvim_pasteJustin M. Keyes2019-08-27
|
* paste: WIP #4448Justin M. Keyes2019-08-27
|
* clang/"dead assignment": suppessedIhor Antonov2019-08-05
| | | | | To ensure consistency and avoid possible errors in the code the assigment is considered to be legit.
* vim-patch:8.1.1251: test completion of mapping keys #10691Jan Edmund Lazo2019-08-05
| | | | | Problem: No test for completion of mapping keys. Solution: Add a test. Also clean up the code. https://github.com/vim/vim/commit/2cb9f0253228478ec27265ff40f59c629874d695
* lint: makemapIhor Antonov2019-07-28
| | | | | | | * if braces * spaces * post increments * comment style
* pvs/V560: part of conditional expression is always falseIhor Antonov2019-07-28
| | | | makemap: same condition is used to skip outer loop cycle
* vim-patch:8.0.1753: fix various warnings #10639Ihor Antonov2019-07-28
| | | | | | vim-patch:8.0.1753: various warnings from a static analyser Problem: Various warnings from a static analyser Solution: Remove unneeded conditions. https://github.com/vim/vim/commit/1c17ffa4611f4efe68c61f7cdd9ed692a866ba75
* Fix clint errornotomo2019-07-28
|
* vim-patch:8.1.1759: no mode char for terminal mapping from maparg()notomo2019-07-28
| | | | | | Problem: No mode char for terminal mapping from maparg(). Solution: Check for TERMINAL mode. (closes vim/vim#4735) https://github.com/vim/vim/commit/14371ed69778107654e39268d0d90982e53ad6e0
* Revert "vim-patch:8.0.1723: using one item array size declaration is ↵Jan Edmund Lazo2019-07-23
| | | | | misleading" (#10583) This reverts commit 315076a26d225a3bdc34a2cbba1f124adf4e1087.
* refactor: use int for Columns and RowsBjörn Linse2019-07-19
|
* refactor: enable -Wconversion for ex_getln.cBjörn Linse2019-07-19
|
* lintIhor Antonov2019-07-15
|
* pvs/V1028: cast operands, not the resultIhor Antonov2019-07-15
|
* Merge #10323 from janlazo/vim-8.1.1055Justin M. Keyes2019-06-25
|\ | | | | vim-patch:8.0.{1479,1480,1482},8.1.1055
| * vim-patch:8.0.1479: insert mode completion state is confusingJan Edmund Lazo2019-06-23
| | | | | | | | | | | | Problem: Insert mode completion state is confusing. Solution: Move ctrl_x_mode into edit.c. Add CTRL_X_NORMAL for zero. https://github.com/vim/vim/commit/bc0e9adae9c253f36803665180e4b576d1e725ab
* | lintJames McCoy2019-06-24
| |
* | vim-patch:8.1.1365: source command doesn't check for the sandboxJames McCoy2019-06-24
|/ | | | | | Problem: Source command doesn't check for the sandbox. (Armin Razmjou) Solution: Check for the sandbox when sourcing a file. https://github.com/vim/vim/commit/53575521406739cf20bbe4e384d88e7dca11f040
* getchar: Handle incomplete <Paste> in typeahead buffer #10311Alan Wu2019-06-24
| | | | | | | | | | | | <Paste> is a 3-byte sequence and the beginning one or two bytes can appear at the very end of the typeahead buffer. When this happens, we were exiting from `vgetorpeek()` instead of reading more characters to see the complete sequence. I think this should fix #7994 -- at least partially. Before this change, when I paste exactly 64 characters into a freshly booted instance, I get what I pasted plus the literal text "<Paste>" at the end. Nvim also stays in nopaste mode. The attached test case fails in this manner without the code change. Fix #7994
* vim-patch:8.0.1723: using one item array size declaration is misleadingJan Edmund Lazo2019-06-19
| | | | | | | | | | | Problem: Using one item array size declaration is misleading. Solution: Instead of using "[1]" and actually using a larger array, use "[]". This is to verify that this C99 feature works for all compilers. https://github.com/vim/vim/commit/f3a411783c9736645d6ba480c5ff9d861164c040 The following patch is N/A because Neovim requires C99. vim-patch:8.0.1735: flexible array member feature not supported by HP-UX
* vim-patch:8.0.1845: various comment updates needed, missing white space (#10203)Daniel Hahler2019-06-16
| | | | | | | Problem: Various comment updates needed, missing white space. Solution: Update comments, add white space. https://github.com/vim/vim/commit/259f26ac2d41ecfb28b82c651b2bfc1edc7c3e29 Ignored (partly) applied patch for src/nvim/po/it.po.
* vim-patch:8.1.1003: playing back recorded key sequence mistakes key code ↵Daniel Hahler2019-06-16
| | | | | | | (#10155) Problem: Playing back recorded key sequence mistakes key code. Solution: Insert a <Nop> after the <Esc>. (closes vim/vim#4068) https://github.com/vim/vim/commit/6edbbd8114320089c0e603e033775d9dd34cb10a
* vim-patch:8.1.1000: indenting is offJan Edmund Lazo2019-06-01
| | | | | | | Problem: Indenting is off. Solution: Make indenting consistent and update comments. (Ozaki Kiichi, closes vim/vim#4079) https://github.com/vim/vim/commit/fd731b0e31df9f167098c4a77ff894fea6cb7f5c
* lintJan Edmund Lazo2019-05-26
|
* vim-patch:8.1.0020: cannot tell whether a register is executing or recordingJan Edmund Lazo2019-05-26
| | | | | | | | | Problem: Cannot tell whether a register is being used for executing or recording. Solution: Add reg_executing() and reg_recording(). (Hirohito Higashi, closes vim/vim#2745) Rename the global variables for consistency. Store the register name in reg_executing. https://github.com/vim/vim/commit/0b6d911e5de1a1c10a23d4c2ee1b0275c474a2dd
* vim-patch:8.1.1358: cannot enter character with a CSI byteJan Edmund Lazo2019-05-19
| | | | | | | Problem: Cannot enter character with a CSI byte. Solution: Only check "gui.in_use" when VIMDLL is defined. (Ken Takata, closes vim/vim#4396) https://github.com/vim/vim/commit/386b43e59498cc7b52a60f09f74bdb44df99386c
* API/nvim_set_keymap: minor cleanupJustin M. Keyes2019-05-12
| | | | ref #9924
* API: nvim_set_keymap, nvim_del_keymap #9924Yilin Yang2019-05-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | closes #9136 - Treat empty {rhs} like <Nop> - getchar.c: Pull "repl. MapArg termcodes" into func The "preprocessing code" surrounding the replace_termcodes calls needs to invoke replace_termcodes, and also check if RHS is equal to "<Nop>". To reduce code duplication, factor this out into a helper function. Also add an rhs_is_noop flag to MapArguments; buf_do_map_explicit expects an empty {rhs} string for "<Nop>", but also needs to distinguish that from something like ":map lhs<cr>" where no {rhs} was provided. - getchar.c: Use allocated buffer for rhs in MapArgs Since the MAXMAPLEN limit does not apply to the RHS of a mapping (or else an RHS that calls a really long autoload function from a plugin would be incorrectly rejected as being too long), use an allocated buffer for RHS rather than a static buffer of length MAXMAPLEN + 1. - Mappings LHS and RHS can contain literal space characters, newlines, etc. - getchar.c: replace_termcodes in str_to_mapargs It makes sense to do this; str_to_mapargs is, intuitively, supposed to take a "raw" command string and parse it into a totally "do_map-ready" struct. - api/vim.c: Update lhs, rhs len after replace_termcodes Fixes a bug in which replace_termcodes changes the length of lhs or rhs, but the later search through the mappings/abbreviations hashtables still uses the old length value. This would cause the search to fail erroneously and throw 'E31: No such mapping' errors or 'E24: No such abbreviation' errors. - getchar: Create new map_arguments struct So that a string of map arguments can be parsed into a more useful, more portable data structure. - getchar.c: Add buf_do_map function Exactly the same as the old do_map, but replace the hardcoded references to the global `buf_T* curbuf` with a function parameter so that we can invoke it from nvim_buf_set_keymap. - Remove gettext calls in do_map error handling
* vim-patch:8.1.1118: a couple of conditions are hard to understandMarco Hinz2019-04-08
| | | | | | | Problem: A couple of conditions are hard to understand. Solution: Split the conditions into pieces. (Ozaki Kiichi) https://github.com/vim/vim/commit/652de23dc7abf6aa2721ccee7fe279b5cce8069c
* keymap, terminal: more keycodes #9810Olivier G-R2019-03-31
| | | | | | | | | - input: recognize <kEqual>, <kComma> - terminal.c: If we need to support function key, a change must be made in libvtermkey. Currently, it emulates strictly VT220 terminal, and returning numeric value in 'normal' mode is the expected behaviour. closes #9810
* keymap: add more (keypad) keycodes #9793Olivier G-R2019-03-29
| | | | | | | | | | | | | | | | | - K_KORIGIN instead of K_KCENTER: This name is similar to what is used by xev. Alternative could be K_KBEGIN as hinted here: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-PC-Style-Function-Keys But I find Begin and Home too similar, and it might induced some confusion. The naming looked related to some old keyboard configuration. - keymap.c: alias KPPeriod to kDel instead of kPoint. This might seems weird, but this is actually the behaviour that should be expected. libtermkey produces "KPPeriod" when num lock is off. To fix this would need to change this name in termkey. closes #9780 closes #9793
* vim-patch:8.1.0932: remove Farsi support (#9622)Justin M. Keyes2019-02-17
| | | | | Problem: Farsi support is outdated and unused. Solution: Delete the Farsi support. https://github.com/vim/vim/commit/14184a3133b9a6ee5f711d493c04e41ba4fa7c2f