Releases: weechat/weechat
Releases · weechat/weechat
v3.8
New features
- core: add option weechat.look.chat_space_right (issue #1862)
- core: allow value "0" in buffer property "unread" to remove read marker from buffer
- core: add command
/allbuf
- core: add command
/hotlist
- core: move some
/input
actions to commands/allbuf
,/buffer
and/hotlist
- core: improve case convert and insensitive char comparisons (issue #258)
- core: add color attributes "blink" and "dim" (half bright) (issue #1855)
- core: allow command
/toggle
to create option before setting the value, if allowed in the section (issue #1837) - core: add signals "buffer_user_input_xxx" and "buffer_user_closing_xxx" for buffers created with
/buffer add
(issue #1848) - core: add identifier in buffer lines (issue #901)
- core: add option
unicode
in command/debug
- api: add Curl options for versions 7.64.0 to 7.87.0
- api: add functions string_strcmp and string_strncmp
- api: rename char comparison functions "utf8_char*" to "string_char*"
- api: return arithmetic difference between chars in functions string_charcmp, string_charcasecmp, string_charcasecmp_range, string_strcasecmp, string_strcasecmp_range, string_strncasecmp, string_strncasecmp_range, string_strcmp_ignore_chars
- api: return newly allocated string in functions string_tolower and string_toupper
- api: add function utf8_strncpy
- trigger: add regex command "y" to translate chars, set default regex command to "s" (regex replace) (issue #1510)
Bug fixes
- core: fix color when the delimiter is not followed by a background color (issue #1867)
- core: display chars the same way in chat and bars, replace tabulations by spaces in bars, display chars < 32 with letter in chat, do not display soft hyphens, zero width spaces and all non-printable chars (issue #1659, issue #1669, issue #1770)
- core: fix context info in buffers with free content (issue #1832)
- core: keep terminal title unchanged when option weechat.look.window_title is set to empty value (issue #1835, issue #1836)
- core: fix crash when setting invalid color in option with null value (issue #1844)
- api: do not check conditions defined in option weechat.look.hotlist_add_conditions when adding buffer in hotlist with function buffer_set
- api: fix function strcmp_ignore_chars with case sensitive comparison and wide chars starting with the same byte
- api: send NULL values to config section callbacks in scripting API (issue #1843)
- api: fix function string_cut when there are non printable chars in suffix
- api: do not expect any return value in callbacks "callback_change" and "callback_delete" of function config_new_option (scripting API)
- irc: properly rename private buffer on nick changes or privmsg/notice message when new nick is the same with different case
- irc: do not join channels in server autojoin option after reconnection to the server (issue #560, bug #21529)
- irc: escape backslashes in raw buffer (issue #1838)
- trigger: fix variables sent to focus callback (issue #1858)
Tests
- ci: remove use of repository ppa:ondrej/php, use standard PHP version (8.1) from Ubuntu 22.04
- core: add script check_scripts.sh
- core: add script check_curl_symbols.py
- gui: add tests on input functions
- scripts: add tests on config functions
Build
- core: add CMake test called "notests" when tests are not compiled
- core: rename scripts: build-debian.sh to build_debian.sh, build-test.sh to build_test.sh, git-version.sh to set_git_version.sh
- debian: change dependency guile-2.2-dev to guile-3.0-dev
- python: remove support of Python 2.x
- ruby: add detection of Ruby 3.2
- spell: add detection of enchant-2 (issue #1859)
Download
v3.7.1
v3.7
New features
- core: add option
-save
in command/upgrade
(issue #1630) - core: add option weechat.look.highlight_disable_regex and buffer property "highlight_disable_regex" (issue #1798)
- core: sort filters by name (issue #1695)
- core: add key Alt+Backspace to delete previous word, change key Ctrl+w to delete previous word until whitespace (issue #559)
- api: rename function string_build_with_split_string to string_rebuild_split_string, add arguments "index_start" and "index_end"
- api: add info "uptime_current"
- api: add function crypto_hash_file
- api: add support of priority in function hook_line (issue #1821)
- api: add function string_parse_size
- api: add function file_compress
- buflist: add variable
${hotlist_priority_number}
(integer version of${hotlist_priority}
) - irc: display SETNAME command in channels and private buffers, add options irc.color.message_setname and irc.look.smart_filter_setname (issue #1805)
- irc: add option irc.look.display_pv_nick_change
- logger: add options to rotate and compress log files: logger.file.rotation_compression_level, logger.file.rotation_compression_type and logger.file.rotation_size_max (issue #314)
- spell: allow special dict value "-" to disable spell checking on a specific buffer (issue #1699)
- trigger: add elapsed time for trigger execution on monitor buffer when trigger debug is set, add option trigger.color.identifier (issue #1806)
- trigger: add variable
${tg_hook_type}
(issue #1765)
Bug fixes
- core: fix wrong terminal title on terminal resize (issue #1702)
- core: fix page scroll in bare display (issue #1830)
- api: change type of argument remaining_calls in hook_timer callback from string to integer (in scripts)
- api: change type of argument object_id in upgrade_new callback from string to integer (in scripts)
- irc: fix duplicated channels in autojoin option when autojoin_dynamic is enabled (issue #1795)
- irc: fix display of TOPIC and QUIT messages with an empty trailing parameter (issue #1797)
- irc: fix parsing of messages with trailing spaces and no trailing parameter (issue #1803)
- irc: add missing tag "irc_numeric" in all numeric IRC commands (issue #1804)
- irc: display an error message when using command
/dcc
without xfer plugin loaded - irc: display ACCOUNT and CHGHOST commands in private buffers
- irc: fix extract of isupport value when it is last in list and without value (issue #1807)
- irc: fix target buffer of generic errors when they contain a target nick (issue #1814)
- irc: fix display of message 350 (whois, gateway) (issue #1815)
- irc: replace chars "\01" by spaces in CTCP replies (issue #1819)
- irc: fix message when disconnecting from server in case of high lag when server option autoreconnect is off (issue #1708)
- irc: set local variable "filter" when doing
/server raw xxx
with raw buffer already opened (issue #1448) - guile: fix function hdata_get_string
- javascript: fix return of long value in functions infolist_time, hdata_long and hdata_time
- php: fix function hdata_compare
- relay: fix parsing of IRC messages received from clients (issue #1796)
- relay: fix refresh of relay buffer after
/upgrade
- ruby: fix function hdata_get_string
- scripts: fix issue with year ≥ 2038 in functions infolist_new_var_time, print_date_tags and print_y_date_tags (plugins: python/lua/tcl/guile/javascript)
- scripts: fix issue with long interval in function hook_timer (plugins: python/ruby/lua/tcl/guile/javascript/php)
- trigger: fix error on monitor buffer creation when trigger debug is >= 1 and monitor buffer is closed
- trigger: escape arguments with double quotes in output of
/trigger input|output|recreate
(issue #190) - xfer: fix crash when closing DCC chat buffer
- xfer: disconnect all active DCC chats and files on
/upgrade
- xfer: fix refresh of xfer buffer after
/upgrade
- xfer: fix DCC file receive on Termux (issue #1811)
Tests
- core: switch from Ubuntu 20.04 to 22.04 in CI
- core: remove macOS 10.15, add macOS 12 in CI
- core: add tests on filter functions
- scripts: add tests on hdata functions
- scripts: fix run of Guile test script
- xfer: add tests on file functions
Download
v3.6
New features
- core: add command
/item
to create custom bar items (issue #808) - core: add bar item "spacer" (issue #1700)
- core: add case conversion in evaluation of expressions with
lower:string
andupper:string
(issue #1778) - core: move detailed list of hooks from command
/plugin listfull
to/debug hooks <plugin>
- core: allow to remove multiple filters at once with command
/filter del
- api: allow to catch multiple signals in functions hook_signal and hook_hsignal (issue #1780)
- irc: rename option
save
toapply
in command/autojoin
- irc: add support of RPL_HELPSTART, RPL_HELPTXT and RPL_ENDOFHELP (messages 524, 704, 705, 706) (issue #1772)
- php: add support of PHP 8.2 (issue #1787)
Bug fixes
- core: fix bad window size on startup with some terminals like https://github.com/kovidgoyal/kitty[kitty] (issue #1769)
- api: run hook_print callback also on empty messages
- buflist: fix memory leak when reading config and changing option buflist.look.sort
- irc: remove channel from autojoin option when manually closing a buffer with
/buffer close
or/close
- irc: fix add of channel to autojoin option when joining a channel with a buffer still opened
- relay: fix save of channels in autojoin option when JOIN and PART commands are received from an IRC relay client (issue #1771)
- trigger: add
${buffer.notify} > 0
in conditions of default trigger "beep" - trigger: fix completion of command
/trigger add
when there are spaces in the following arguments - trigger: fix memory leak in command
/trigger addinput
Download
v3.5
New features
- core: search in message tags when tags are displayed with
/debug tags
- core: add support of date and tags in messages displayed in buffers with free content, add function printf_y_date_tags (issue #1746)
- irc: add command /autojoin, add server option "autojoin_dynamic"
- irc: add IRC message tags in messages displayed (issue #1680)
- relay: add
zstd
(Zstandard) compression in weechat protocol, remove optioncompression
frominit
command, rename option relay.network.compression_level to relay.network.compression - trigger: add variables
${tg_tag_irc_xxx}
containing IRC message tags (issue #1680)
Bug fixes
- core: fix memory leak when removing a line on a buffer with free content
- core: remove obsolete option weechat.plugin.debug (issue #1744)
- core: fix search of commands with UTF-8 chars in name when option weechat.look.command_incomplete is on (issue #1739)
- core: fix display of hotlist in buflist after changing value of option weechat.look.hotlist_sort (issue #1733)
- api: add function buffer_new_props (issue #1759)
- api: fix add of infolist items in hashtable when prefix contains UTF-8 chars in function hashtable_add_from_infolist (issue #1739)
- guile: remove disabling of guile gmp allocator with Guile ≥ 3.0.8
- irc: fix completion of channel topic with UTF-8 chars (issue #1739)
- irc: fix parsing of messages 311, 312, 327 (whois) and 314 (whowas) in case of missing parameters
- irc: fix parsing of message 223 (m_filter) sent by InspIRCd server (issue #1751)
- irc: fix parsing of message 338 (whois, host) sent by Rizon server (issue #1737)
- irc: fix display of message 344 received as whois geo info (issue #1736)
- irc: fix display of message 901 (you are now logged out) (issue #1758)
- irc: fix display of IRC numeric messages with no parameters
- python: fix crash in hook callbacks after script loading failure (issue #1740)
- scripts: allow NULL in parameters "default_value" and "value" of function config_new_option (issue #1761)
- scripts: auto-load scripts with supported extensions only (issue #1698)
- tcl: add constant
$::weechat::WEECHAT_NULL
(issue #1761) - trigger: fix search of triggers with UTF-8 chars in name (issue #1739)
- xfer: fix auto-accept of server/nick when the server name contains UTF-8 chars (issue #1739)
Tests
- core: add tests on GUI chat functions
- core: add build of Debian packages in CI
Build
- debian: change dependency libargon2-0-dev to libargon2-dev (debian #1005703)
- ruby: add detection of Ruby 3.1
Download
v3.4.1
v3.4
New features
- core: add support of static arrays in hdata
- core: add command
/toggle
- api: add parameters pointers, extra_vars and options in function hdata_search
- api: add user variables in evaluation of expressions with
define:name,value
- api: add IRC message parameters
param1
toparamN
andnum_params
in output of irc_message_parse - irc: allow quotes around IRC message in command
/server fakerecv
- trigger: hide key and password in command
/msg nickserv setpass nick key password
- trigger: add support of option
-server
when hiding passwords in command/msg nickserv register
Bug fixes
- core: fix memory leak in evaluated expression
split:number,seps,flags,xxx
when multiple "strip_items" are given - core: fix random integer number with large range in evaluation of expressions on GNU/Hurd
- core: fix access to integer/long/time arrays in hdata
- api: fix search of option when the section is not given in functions config_search_option and config_search_section_option
- irc: fix join of channels with long name (issue #1717)
- irc: fix parsing of parameters in all IRC messages (issue #1666)
- irc: fix parsing of CAP message when there is no prefix (issue #1707)
- irc: fix parsing of TAGMSG message when there is a colon before the channel
Documentation
- doc: remove tester's guide
- doc: add dark theme (automatic, following browser/desktop settings)
- doc: make build reproducible
- doc: disable web fonts
- doc: switch from prettify to pygments for syntax highlighting
Tests
- core: add build with CMake and Ninja in CI
- core: add build on macOS 11 in CI
Build
- ruby: add detection of Ruby 3.0 (issue #1721, issue #1605)
- core: add targets "changelog" and "rn" to build HTML version of ChangeLog and release notes (CMake build only)
Download
v3.3
New features
- core: change key Alt+h to Alt+h, Alt+c (clear hotlist)
- core: add options "hotlist_remove_buffer", "hotlist_restore_buffer" and "hotlist_restore_all" in command /input, add default keys Alt+h, Alt+m (remove buffer), Alt+h, Alt+r (restore hotlist in current buffer) and Alt+h, Alt+Shift+R (restore hotlist in all buffers)
- core: add option "certs" in command /debug
- core: add options "-o", "-ol", "-i" and "-il" in command "/plugin list"
- api: add split of string and shell arguments in evaluation of expressions with "split:number,seps,flags,xxx" and "split_shell:number,xxx"
- api: add
${re:repl_index}
to get the index of replacement in function string_eval_expression (issue #1689) - api: add random integer number in evaluation of expressions with "random:min,max"
- api: add function string_cut
- api: add function file_copy (issue #1667)
- api: remember insertion order in hashtables
- api: add keys/values with tags in output of irc_message_parse_to_hashtable (issue #1654)
- irc: add option "-parted" in command /allchan (issue #1685)
- irc: allow signals "irc_raw_in" and "irc_in" to eat messages (issue #1657)
- irc: implement IRCv3.2 SASL authentication, add command /auth, reconnect by default to the server in case of SASL authentication failure (issue #413)
- irc: add support of capability "message-tags" and TAGMSG messages (issue #1654)
- irc: enable all capabilities by default (if supported by server and WeeChat), change default value of option irc.server_default.capabilities to "*" (issue #320)
- irc: add options irc.look.display_account_message and irc.look.display_extended_join (issue #320)
- irc: add command /setname, add support of message and capability "setname" (issue #1653)
- irc: always set realname in nicks even when extended-join capability is not enabled (issue #1653)
- irc: add support of FAIL/WARN/NOTE messages (issue #1653)
- irc: drop support of DH-BLOWFISH and DH-AES SASL mechanisms (issue #175)
- typing: new plugin "typing": display users currently writing messages on IRC channel/private buffers
Bug fixes
- core: fix decoding of attributes in basic ANSI colors (issue #1678)
- api: fix function string_match with joker in the string if multiple words matched in input string
- irc: fix send of empty JOIN when connecting to a server with only parted channels (issue #1638)
- irc: fix SASL authentication when AUTHENTICATE message is received with a server name (issue #1679)
- irc: remove unneeded message about Diffie-Hellman shared secret exchange during SSL connection to server (issue #857)
- irc: escape/unescape IRC message tags values (issue #1654)
- irc: set notify level to "private" for received WALLOPS
- script: fix move of installed script on another filesystem (issue #1667)
Documentation
Tests
- core: switch to PHP 8.0 in CI
- core: add build on macOS in CI
Build
- core: fix build on macOS (issue #1662)
- lua: add detection of Lua 5.4
- php: add support of PHP 8.0 and 8.1 (issue #1599, issue #1668)
Download
v3.2.1
Bug fixes
- relay: fix crash when decoding a malformed websocket frame
Download
v3.2
New features
- core: use XDG directories by default (config, data, cache, runtime) (issue #1285)
- core: add option weechat.network.gnutls_ca_system, rename option weechat.network.gnutls_ca_file to weechat.network.gnutls_ca_user (now evaluated), delete and reload certificates when options are changed (issue #972)
- core: evaluate option weechat.plugin.path, change default value to
${weechat_data_dir}/plugins
- core: add options to customize commands executed on system signals received (SIGHUP, SIGQUIT, SIGTERM, SIGUSR1, SIGUSR2) (issue #1595)
- core: quit WeeChat by default when signal SIGHUP is received in normal run, reload configuration in weechat-headless (issue #1595)
- core: add signals "cursor_start" and "cursor_end"
- api: add function crypto_hmac (issue #1628)
- api: add translated string in evaluation of expressions with
translate:xxx
- api: add evaluation of WeeChat directories with
${weechat_xxx_dir}
in evaluated strings - api: add optional key "directory" in hashtable options of function/modifier string_eval_path_home
- api: add supported prefixes
${weechat_xxx_dir}
in function mkdir_home - api: add infos "weechat_config_dir", "weechat_data_dir", "weechat_cache_dir" and "weechat_runtime_dir"
- api: add support of pointer names in function string_eval_expression (direct and in hdata)
- api: add info "weechat_daemon"
- buflist: add option buflist.format.tls_version
- fifo: change default value of option fifo.file.path to
${weechat_runtime_dir}/weechat_fifo_${info:pid}
- irc: add support of SASL mechanisms SCRAM-SHA-1, SCRAM-SHA-256 and SCRAM-SHA-512 (issue #1628)
- irc: add variable
${target}
(target nick) in commands /kick and /kickban - irc: add bar item "tls_version", add options irc.color.item_tls_version_ok, irc.color.item_tls_version_deprecated and irc.color.item_tls_version_insecure (issue #1622)
- irc: evaluate server options "sasl_key" and "ssl_cert"
- logger: change default value of option logger.file.path to
${weechat_data_dir}/logs
- python: add stub for WeeChat API (issue #1377)
- relay: evaluate option relay.network.ssl_cert_key, change default value to
${weechat_config_dir}/ssl/relay.pem
- script: change default value of option script.scripts.path to
${weechat_cache_dir}/script
- trigger: add variables
${tg_shell_argc}
and${tg_shell_argvN}
in command trigger evaluated strings (issue #1624) - xfer: change default value of option xfer.file.download_path to
${weechat_data_dir}/xfer
Bug fixes
- core: split startup commands before evaluating them (issue #1643)
- core: set server name when connecting to server with TLS (SNI extension) only if it's not an IPV4/IPv6 (issue #1635)
- core: use function mallinfo2 instead of mallinfo when available (issue #1636)
- core: display a warning when the file with certificate authorities is not found (option weechat.network.gnutls_ca_file)
- core: evaluate left/right part of comparison after split on the comparison operator in
${if:xxx}
(issue #1627) - core: prevent switching to start of visited buffers when jumping to next (issue #1591, issue #1592)
- core: recreate buflist and fset bars on /reload when WeeChat is started without configuration files (issue #1618)
- buflist: fix comparison of hotlists in option buflist.look.sort (issue #1621)
- irc: split server command before evaluating it (issue #1643)
- xfer: make file transfer fail when option xfer.file.auto_rename is off and file already exists (issue #1633)
Tests
- core: switch from Ubuntu 18.04 to 20.04 in CI
- trigger: add tests on main trigger functions
Build
- core: remove build option CA_FILE
- core: set WeeChat home to empty string by default in CMake and autotools