1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-30 23:06:38 +02:00
Commit Graph

148 Commits

Author SHA1 Message Date
Sébastien Helleu 0973fe0ad4 core: fix integer overflow in loops (issue #2178) 2024-09-07 10:52:54 +02:00
Sébastien Helleu 82a425d226 core, plugins: add missing parentheses when dereferencing a pointer with an array index 2024-09-07 10:52:39 +02:00
Sébastien Helleu e64ab3c675 core, plugins: replace "%lx" by "%p" in calls to sscanf 2024-06-14 17:59:02 +02:00
Sébastien Helleu 573f1046ac core: execute command as user data for local keys in buffer (issue #2066)
If buffer->input_get_any_user_data is set to 1, any command executed via a
buffer local key is considered as user input and then sent to the buffer
callback, instead of being executed directly.

This is used on relay remote buffers, to execute the command on the remote
instead of locally.
2024-05-01 15:07:08 +02:00
Sébastien Helleu ed48819b77 core: remove check of NULL pointers before calling gui_focus_free_info() (issue #865) 2024-04-26 21:18:24 +02:00
Sébastien Helleu 61ff0b8587 core: remove check of NULL pointers before calling config_file_option_free() (issue #865) 2024-04-26 20:59:44 +02:00
Sébastien Helleu 409a06982e core: remove check of NULL pointers before calling string_dyn_free() (issue #865) 2024-04-26 08:53:22 +02:00
Sébastien Helleu 3057d846d9 core: remove check of NULL pointers before calling string_free_split() (issue #865) 2024-04-26 08:53:22 +02:00
Sébastien Helleu f11c7c1bf4 core: remove check of NULL pointers before calling hashtable_free() (issue #865) 2024-04-26 08:53:22 +02:00
Sébastien Helleu e73bff95fa core: remove check of NULL pointers before calling free() (issue #865) 2024-04-25 20:59:25 +02:00
Sébastien Helleu 4adb64284b buffer: add property input_get_any_user_data in buffer (issue #2066)
This allows buffers to get any user input, including commands, that are sent to
the buffer callback instead of being executed on the buffer.
2024-04-07 13:18:13 +02:00
Sébastien Helleu 965beb37de core: fix print of pointer values 2024-04-01 21:08:52 +02:00
Sébastien Helleu 24c4029c96 core: remove "wee-" prefix from source files in src/core and src/core/hook 2024-03-12 21:27:37 +01:00
Sébastien Helleu 5c88ee9c45 core: add support of SGR mouse events, remove option weechat.look.mouse_timer_delay (closes #2082) 2024-03-06 20:33:17 +01:00
Sébastien Helleu d52fea1d5e core: fix typo in comment 2024-02-24 18:50:26 +01:00
Sébastien Helleu eecb2a997e core: update copyright dates 2024-01-01 22:29:58 +01:00
Sébastien Helleu b83b428c5c core: add incremental search in commands history (issue #2040)
Changes:

- move key ctrl+r to ctrl+s
- add key ctrl+r to search in commands history
- add option `search_history` in command `/input`
- add key context "histsearch"
- add option weechat.look.buffer_search_history
- add buffer variables "text_search_direction", "text_search_history" and "text_search_ptr_history"
2023-11-11 08:54:06 +01:00
Sébastien Helleu 7d403d41e6 core: remove incorrect warning when binding keys F10 to F20 (closes #2039) 2023-11-04 08:36:04 +01:00
Sébastien Helleu 99822fc5e7 core: ignore key bindings with empty command
This makes possible to disable a key hiding another (because shorter than the
other, and beginning with the same key).

For example if key "meta-a" is set to an empty command, it would not hide any
more the key "meta-a,1" which has a non-empty command.
2023-08-27 14:16:08 +02:00
Sébastien Helleu 89137552a7 core: display focus hashtable for debug even if no key is matching 2023-07-08 13:31:36 +02:00
Sébastien Helleu f03e2ff95c core: fix styles 2023-07-03 23:02:25 +02:00
Trygve Aaberge 3247974eb4 core: don't send key_pressed signal again for the same key press
If you press an incomplete key sequence, previously WeeChat would send
the key_pressed signal again for the same keys on the next key.

E.g. if you press escape and then 1, previously you would get the
key_pressed signal with signal_data `\x01[` when you pressed escape, and
then key_pressed with `\x01[` again when you pressed 1 (plus key_pressed
with `1` for the 1 key). So two signals for the escape key, even though
it was only pressed once.

With this patch, you only get one signal for each key press. So one with
`\x01[` when you press escape and then one with `1` when you press 1.
2023-07-03 23:02:23 +02:00
Trygve Aaberge 824cfb6427 core: don't send key_combo_* signals for incomplete keys
Version 4.0.0 (specifically commit 1f5c791c3) changed the key handling
so key_combo_* signals were sent for each character in a sequence,
rather than just when the sequence is finished. This broke parts of the
vimode.py script.

E.g. for the up arrow, 3.8 sends key_combo_default signal once with the
signal_data `\x01[[A`, while 4.0.0 sends it three times with the
signal_data `\x01[`, `\x01[[` and `\x01[[A`.

With this patch, the previous behavior is brought back. There is one
small change though. In 3.8 if you press escape one or two times it
doesn't send key_combo_default, but if you press it three or more times
it sends it for each escape press. With this patch, it's never sent for
plain escape presses, only when the sequence is finished with some other
key.

This is intentional, as getting key_combo_default for escape presses
doesn't make sense since it's not a finished combo, and the behavior of
3.8 where you got it after three or more key presses was most likely
unintentional as it just happened because it didn't match any key
bindings anymore (there are key bindings starting with one or two escape
characters, but not more).
2023-07-03 23:02:21 +02:00
Sébastien Helleu 5e0ca4740b core: display actual key name and command with key Alt+k
Key Alt+K (upper K) is removed as well as commands `/input grab_raw_key` and
`/input grab_raw_key_command`.
2023-06-26 21:21:12 +02:00
Sébastien Helleu 25d7192677 api: don't split on newline by default in functions command and command_options when input_multiline is set to 0
The API functions `command` and `command_options` (when `split_newline` = 0,
which is the default value) don't split on newline and then the first line is
executed and the subsequent lines (after "\n") are ignored.

There are no changes when the input has multiple lines filled by the user: the
split is done and multiple commands are executed (for example if the user is
pasting multiple commands to execute).
2023-05-04 21:06:32 +02:00
Sébastien Helleu 0f3f7c3b37 core: replace key meta2- by meta-[ in comments 2023-03-31 18:59:04 +02:00
Sébastien Helleu 1684f60207 core: fix key meta-[O (unfocus with xterm) (closes #1900) 2023-03-31 18:58:49 +02:00
Sébastien Helleu 613dc73fd4 core: remove keys meta-[I and meta-[G for pgup/pgdn (issue #1900)
It seems no terminal return such codes any more for pgup/pgdn, and `meta-[I` is
conflicting with the xterm terminal "focus in" key code.

The keys are also removed from config when converting old keys, but only if
they are bound to the default command (`/window page_up` for `meta2-I` and
`/window page_down` for `meta2-G`).
2023-03-31 18:57:58 +02:00
Trygve Aaberge f86972513b core: Include blank lines in paste line count
Since pastes are now inserted into the input instead of sent, and blank
lines are preserved in the input, they should now be counted too.
2023-03-25 18:53:12 +01:00
Trygve Aaberge d15203dbf5 core: Remove option weechat.look.paste_auto_add_newline
This option existed so that you could edit the last line of a multiline
paste before it was sent. Now that pasting multiple lines don't cause
the lines to be sent immediately anymore, this option isn't useful
anymore since you can always edit pasted text before it's sent.
2023-03-25 18:53:12 +01:00
Trygve Aaberge 68040f210a core: Always remove final newline when pasting
Since pasting doesn't send the line now, it's more practical to always
remove the final newline so you don't end up with an empty line at the
end of the input buffer.

Fixes a part of #1498
2023-03-25 18:53:12 +01:00
Trygve Aaberge 37decf3a7c core: Replace newline/tabs after paste is accepted
Instead of replacing newline/tabs when paste is started, do it when the
paste is accepted instead. This makes a difference if you paste again
while the paste confirmation is active, where instead of running it
again for each paste, it will now be run for all the text at the end.

For now this doesn't make a practical difference, but the next commit
will remove the final newline when multiple lines are pasted too, which
we only want to do for the final paste.
2023-03-25 18:53:12 +01:00
Sébastien Helleu 8fe4c84b72 core: fix uninitialized variable chunks2_count when key_name and key_name_alias are the same 2023-03-25 18:04:08 +01:00
Sébastien Helleu 675e63948c core: remove unnecessary assignment 2023-03-25 17:11:15 +01:00
Sébastien Helleu 1b99f861a3 core: remove commented code 2023-03-25 17:11:10 +01:00
Sébastien Helleu 34e34d28db core: bump version to 4.0.0-dev, follow "practical" semantic versioning 2023-03-18 15:59:23 +01:00
Sébastien Helleu 99ca276556 core: also display mouse codes with /debug key 2023-03-17 22:49:50 +01:00
Sébastien Helleu 64a553f91f core: change order of modifiers in mouse keys
Now the modifiers for mouse keys are in the same order as other keys: `alt-`
then `ctrl-`.
2023-03-17 19:18:30 +01:00
Sébastien Helleu 313b40235a core: fix search of commands with raw code and alias matching
When raw code and alias for a key are both matching, the raw code must always
have higher priority.

This commit fixes this behavior and gives priority to raw code.
2023-03-17 18:52:30 +01:00
Sébastien Helleu c1db5c9549 core: refactor print of keys in debug mode
Changes:

- add function gui_key_debug_print_key
- change message "no key" by "no key binding"
- remove messages ""insert into input" / "ignored"
- add color for delimiters
2023-03-17 18:52:30 +01:00
Sébastien Helleu a54663d60c core: replace "\x01" by "^" and add color for delimiters in output of /debug key 2023-03-17 18:52:30 +01:00
Sébastien Helleu 9afbf02a42 core: use order returned by gui_key_expand in gui_key_modifier_list 2023-03-17 18:52:30 +01:00
Sébastien Helleu 0c4a5528ac core: display a warning when trying to bind a raw key code or invalid key (missing comma) 2023-03-17 18:52:30 +01:00
Sébastien Helleu 3b8f9d4547 core: check new keys manually added with /set 2023-03-17 18:52:30 +01:00
Sébastien Helleu 042968b016 core: remove use of "meta2-" in key name
The raw key code is kept as-is, so for example "meta2-A" becomes "meta-[A".
2023-03-17 18:52:30 +01:00
Sébastien Helleu bf51a081d9 core: display a specific error when trying to bind a key without area in mouse context 2023-03-16 20:42:19 +01:00
Sébastien Helleu bb0c7b39fe api: change also default value of new key options with function key_bind 2023-03-16 20:42:19 +01:00
Sébastien Helleu d94979fe3e core: split alias list into two lists 2023-03-16 20:42:19 +01:00
Sébastien Helleu 7f1f6a6e84 tests: add extra test on function gui_key_legacy_to_alias 2023-03-16 20:42:19 +01:00
Sébastien Helleu a686fa6407 api: change default value of existing key options with function key_bind
With this fix, fset buffer shows the key as modified only if the user actually
changed the command bound to the key.
2023-03-16 20:42:19 +01:00