= WeeChat Release Notes :author: Sébastien Helleu :email: flashcode@flashtux.org :lang: en :toc: left :docinfo1: This document lists important changes for each version, that require manual actions (the latest formatted version of this document can be found https://weechat.org/files/releasenotes/ReleaseNotes-devel.html[here]). + It is recommended to read it when upgrading to a new stable version. For a complete list of changes, please look at https://weechat.org/files/changelog/ChangeLog-devel.html[ChangeLog] (file _ChangeLog.adoc_ in sources). [[v3.7]] == Version 3.7 (under dev) [[v3.7_hook_timer_callback_remaining_calls]] === Argument "remaining_calls" in callback of hook_timer In all script languages (except PHP), the argument "remaining_calls" sent to the callback of "hook_timer" is now an integer (it was a string in older releases). To be compatible with all versions, it is recommended to convert the argument to integer before testing it, for example in Python: [source,python] ---- if int(remaining_calls) > 0: # ... ---- [[v3.7_delete_previous_word_whitespace]] === Delete previous word until whitespace A new parameter `delete_previous_word_whitespace` has been added in `/input` command to delete previous word until backspace. + This is now bound by default to the key kbd:[Ctrl+w] (see issue #559). A new key kbd:[Alt+Backspace] has been added to delete word, like kbd:[Ctrl+w] did in previous releases. You can get the new behavior for kbd:[Ctrl+w] with this command: ---- /key bind ctrl-W /input delete_previous_word_whitespace ---- And add the new key kbd:[Alt+Backspace] with this command: ---- /key missing ---- [[v3.7_api_string_rebuild_split_string]] === Function string_rebuild_split_string The API function string_build_with_split_string has been renamed to link:https://weechat.org/doc/plugin/#_string_rebuild_split_string[string_rebuild_split_string] and two new arguments have been added: _index_start_ and _index_end_. To stay compatible, the existing calls to the function must be done with the new function name and these values: * _index_start_: `0` * _index_end_: `-1` [[v3.6]] == Version 3.6 (2022-07-10) [[v3.6_hook_print_empty_messages]] === Hook print on empty messages The "hook_print" callback is now called even when an empty message is displayed (with or without prefix). This was a bug, but is mentioned here just in case some scripts callbacks would be surprised to be called with such empty messages. [[v3.6_trigger_beep]] === Default trigger "beep" The command of "beep" trigger is now executed only if the buffer notify is NOT set to `none` (in addition to existing conditions). You can restore the default trigger "beep" with the following command: ---- /trigger restore beep ---- [[v3.5]] == Version 3.5 (2022-03-27) [[v3.5_relay_weechat_compression_zstd]] === Compression "zstandard" in relay Relay of type "weechat" now offers a compression with https://facebook.github.io/zstd/[Zstandard], which allows better compression and is much faster than zlib for both compression and decompression. The new compression type is `zstd`, and the default compression is now `off` instead of `zlib`: the compression must now be explicitly given in the link:https://weechat.org/doc/relay/#command_handshake[handshake] command. The option `compression` in link:https://weechat.org/doc/relay/#command_handshake[init] command has been removed, it is now ignored and must be given in the link:https://weechat.org/doc/relay/#command_handshake[handshake] command (it was deprecated since WeeChat 2.9). The option relay.network.compression_level has been renamed to relay.network.compression and is now a percentage between `0` and `100`: * `0`: disable compression * `1`: low compression (fast) * `100`: best compression (slow) [[v3.4.1]] == Version 3.4.1 (2022-03-13) Bug fix and maintenance release. [[v3.4]] == Version 3.4 (2021-12-18) [[v3.4_default_triggers]] === Default triggers The existing triggers "cmd_pass" and "cmd_pass_register" have been updated to hide key and password in command `/msg nickserv setpass ` and support the option `-server `. You can restore the default triggers with the following command: ---- /trigger restore cmd_pass cmd_pass_register ---- [[v3.4_hdata_search]] === New parameters in function hdata_search New parameters have been added in function link:https://weechat.org/doc/plugin/#_hdata_search[hdata_search], used for the evaluation of expression. New parameters are the same as function link:https://weechat.org/doc/plugin/#_string_eval_expression[string_eval_expression]: * pointers: hashtable with pointers (pointers) * extra_vars: hashtable with extra variables (strings) * options: hashtable with options (strings). The following scripts are updated consequently to be compatible with all WeeChat versions: * https://weechat.org/scripts/source/autoauth.py/[autoauth.py] 1.3 * https://weechat.org/scripts/source/buffer_open.py/[buffer_open.py] 0.3 * https://weechat.org/scripts/source/collapse_channel.py/[collapse_channel.py] 0.9 * https://weechat.org/scripts/source/grep_filter.py/[grep_filter.py] 0.11 * https://weechat.org/scripts/source/samechannel.rb/[samechannel.rb] 0.2 * https://weechat.org/scripts/source/soju.py/[soju.py] 0.1.4 * https://weechat.org/scripts/source/stalker.pl/[stalker.pl] 1.6.3 [[v3.4_hdata_arrays]] === Static array support in hdata Support of static array in hdata has been added. For pointers to arrays, a prefix `*,` must be added in parameter `array_size` of API function link:https://weechat.org/doc/plugin/#_hdata_new_var[hdata_new_var]. [[v3.3]] == Version 3.3 (2021-09-19) [[v3.3_hotlist_keys_clear_restore]] === New keys for hotlist New keys have been added to manipulate the hotlist: * kbd:[Alt+h], kbd:[Alt+c]: clear the whole hotlist (former key: kbd:[Alt+h]) * kbd:[Alt+h], kbd:[Alt+m]: mark the current buffer as read by removing it from the hotlist * kbd:[Alt+h], kbd:[Alt+r]: restore latest hotlist removed in the current buffer * kbd:[Alt+h], kbd:[Alt+Shift+R]: restore latest hotlist removed in all buffers You can add them with the following command: ---- /key missing ---- Since the key kbd:[Alt+h] has been moved to kbd:[Alt+h], kbd:[Alt+c], you must manually remove the old key: ---- /key unbind meta-h ---- [[v3.3_typing_bar_item]] === Bar item "typing" A bar item called "typing" has been added to status bar by default. It is used to display users that are currently typing a message on the current IRC channel or private buffer. If you want to display typing notifications in the status bar, add `,[typing]` in your option weechat.bar.status.items. [[v3.3_ordered_hashtables]] === Ordered hashtables Hashtables entries are now ordered by creation date, the following functions are now returning entries sorted by insertion order: * hashtable_map * hashtable_map_string * hashtable_get_string (all properties except "keys_sorted" and "keys_values_sorted") * hashtable_add_to_infolist [[v3.3_irc_default_capabilities]] === IRC default capabilities All supported capabilities are now enabled by default if the server support them: * account-notify * away-notify * cap-notify * chghost * extended-join * invite-notify * message-tags * multi-prefix * server-time * setname * userhost-in-names Two new options have been added and enabled by default to customize the behavior of capabilities "account-notify" and "extended-join": * irc.look.display_account_message: display ACCOUNT messages received * irc.look.display_extended_join: display extended join info in the JOIN messages: account name and real name The default value of option irc.server_default.capabilities is now `*` which means that all capabilities supported by both WeeChat and the server are enabled by default. After upgrade, to enable all capabilities and remove custom capabilities you have set, you can do: ---- /set irc.server_default.capabilities "*" /unset irc.server.example.capabilities ---- You can also explicitly disable some capabilities with this syntax (see `/help irc.server_default.capabilities`): ---- /set irc.server_default.capabilities "*,!away-notify,!extended-join" ---- [[v3.3_irc_sasl_blowfish_aes]] === IRC SASL DH-BLOWFISH and DH-AES mechanisms removed The SASL mechanisms DH-BLOWFISH and DH-AES have been removed, because they are insecure and already removed from most IRC servers. + If you were using one of these mechanisms, it is highly recommended to switch to any other supported SASL mechanism. For example: ---- /set irc.server.example.sasl_mechanism scram-sha-256 ---- [[v3.2.1]] == Version 3.2.1 (2021-09-04) Bug fix and maintenance release. [[v3.2]] == Version 3.2 (2021-06-13) [[v3.2_xdg_directories]] === XDG directories Support of XDG directories has been added. For compatibility, if the XDG directories are not found but `~/.weechat` exists, this single directory is used for all files. If you want to switch to XDG directories, you must create and move manually all files in the appropriate directories. + See https://specs.weechat.org/specs/001285-follow-xdg-base-dir-spec.html#weechat-home[WeeChat XDG specification] for more information. Some options have new default value: `%h` is replaced by `${weechat_xxx_dir}`. + If you didn't change the value, it is recommended to set the new default value, by doing `/unset