1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-26 12:56:37 +02:00
Commit Graph

4432 Commits

Author SHA1 Message Date
Sébastien Helleu 1b669cd13c irc: fix warning on creation of irc.msgbuffer option when the server name contains upper case letters (closes #2281)
Now the following command is OK without warning:

  /set irc.msgbuffer.TEST.notice current

And the following command returns an error instead of a warning (that means the
option is NOT created):

  /set irc.msgbuffer.TEST.NOTICE current
2025-10-14 22:56:41 +02:00
Sébastien Helleu f854db17ff core: add hdata for hooks
New hooks:

- hook
- hook_command
- hook_command_run
- hook_completion
- hook_config
- hook_connect
- hook_fd
- hook_focus
- hook_hdata
- hook_hsignal
- hook_info
- hook_info_hashtable
- hook_infolist
- hook_line
- hook_modifier
- hook_print
- hook_process
- hook_signal
- hook_timer
- hook_url

New lists (for hooks of type "hook"):

- weechat_hooks_command, last_weechat_hook_command
- weechat_hooks_command_run, last_weechat_hook_command_run
- weechat_hooks_completion, last_weechat_hook_completion
- weechat_hooks_config, last_weechat_hook_config
- weechat_hooks_connect, last_weechat_hook_connect
- weechat_hooks_fd, last_weechat_hook_fd
- weechat_hooks_focus, last_weechat_hook_focus
- weechat_hooks_hdata, last_weechat_hook_hdata
- weechat_hooks_hsignal, last_weechat_hook_hsignal
- weechat_hooks_info, last_weechat_hook_info
- weechat_hooks_info_hashtable, last_weechat_hook_info_hashtable
- weechat_hooks_infolist, last_weechat_hook_infolist
- weechat_hooks_line, last_weechat_hook_line
- weechat_hooks_modifier, last_weechat_hook_modifier
- weechat_hooks_print, last_weechat_hook_print
- weechat_hooks_process, last_weechat_hook_process
- weechat_hooks_signal, last_weechat_hook_signal
- weechat_hooks_timer, last_weechat_hook_timer
- weechat_hooks_url, last_weechat_hook_url
2025-10-12 17:37:24 +02:00
Sébastien Helleu 72b2242135 irc: send SASL username with mechanism EXTERNAL (closes #2270)
The SASL username is sent if set, otherwise "+" is still sent.
2025-10-12 16:11:33 +02:00
Sébastien Helleu 63313468c9 xfer: add buffer local variable "server" in DCC CHAT buffers 2025-10-04 13:19:01 +02:00
Sébastien Helleu d9ba00223b irc: request and perform SASL authentication when the server advertises SASL support with message "CAP NEW" (closes #2277)
The SASL authentication is done only if not already authenticated with SASL.
2025-10-03 10:26:04 +02:00
Sébastien Helleu 21a958423e logger: change default time format to "%@%F %T.%fZ" (UTC) 2025-08-31 12:15:33 +02:00
Sébastien Helleu 47c1128fb9 logger: improve parsing of date/time in log files to display backlog
The function `util_parse_time` is now first used to parse the date/time,
allowing to auto-detect the format (not based on the option
logger.file.time_format).

If the parsing fails, then we fallback on the call to `strptime`, using the
format in option logger.file.time_format (legacy behavior).

This allows to change the option logger.file.time_format without impact on the
display of the backlog.
2025-08-31 12:15:33 +02:00
Sébastien Helleu 1038f0de24 logger: remove unused include 2025-08-31 12:15:33 +02:00
Emil Velikov b2d9ad9e22 Bump required enchant to v2, use pkg_check_modules()
Bump the requirement to v2, which means we can remove the
HAVE_ENCHANT_GET_VERSION workaround.

It was released over 8 years ago, with 8 new feature releases since
then and dozens of bugfix releases throughout.

The oldest distributions we target Ubuntu 20.04 and Debian Bullseye,
have 2.2.8 and 2.2.15 respectively.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2025-08-31 10:36:20 +02:00
Emil Velikov c48485bc46 Bump required lua to v5.3
Bump the requirement to v5.3, which means we can remove all the ifdef
guards.

It was released over 10 years ago, with 2 new feature releases since
then and half a dozen of bugfix releases in the 5.3 branch.

The oldest distributions we target Ubuntu 20.04 and Debian Bullseye,
have 5.3.3 and 5.4.2 respectively.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2025-08-31 10:36:20 +02:00
Emil Velikov 87eb6cc7e1 Bump required gnutls to v3.6.3
Bump the requirement to v3.6.3, which means we can remove the final
ifdef guard and all the builds have TLS 1.3 support.

It was released over 7 years ago, with 2 new feature releases since
then and dozen of bugfix releases in the 3.6 branch.

The oldest distributions we target Ubuntu 20.04 and Debian Bullseye,
have 3.6.13 and 3.7.1 respectively.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2025-08-31 10:36:20 +02:00
Sébastien Helleu bff910cae3 relay/api: fix crash when an invalid HTTP request is received from a client
When invalid data is received (not an HTTP request), client->http_req->method
is NULL, so we have to check it's not NULL before comparing it to the supported
methods.

This fixes a regression introduced in commit
93ec10b563.
2025-08-16 21:19:43 +02:00
Sébastien Helleu be78d185ea relay/api: bump API version to 0.4.1 2025-07-02 20:52:42 +02:00
Sébastien Helleu 58067431de relay/api: process HTTP request received as soon as a NULL char is received
This fixes the API probe made by schemathesis, so it detects immediately that
such NULL byte is not allowed by WeeChat, instead of timing out after 10
seconds:

   API capabilities:

     Supports NULL byte in headers:    ✘
2025-07-02 20:32:09 +02:00
Sébastien Helleu 902332c3e6 relay/api: move resource bodies into their paths in OpenAPI document 2025-07-02 20:32:09 +02:00
Sébastien Helleu 0b82429b39 relay/api: add example of value for the parameter buffer_id in OpenAPI document 2025-07-02 20:32:09 +02:00
Sébastien Helleu 8b2165d441 relay/api: fix example of ping data in OpenAPI document 2025-07-02 20:32:09 +02:00
Sébastien Helleu fca2412424 relay/api: fix example of completion list in OpenAPI document 2025-07-02 20:32:09 +02:00
Sébastien Helleu d279a80733 relay/api: remove extra double quote in example of line date (OpenAPI document) 2025-07-02 20:32:09 +02:00
Sébastien Helleu 4444addf4d relay/api: fix operationId of completion resource in OpenAPI document 2025-07-02 20:32:09 +02:00
Sébastien Helleu 4ce74403dc relay/api: fix typo in OpenAPI document 2025-07-02 20:32:09 +02:00
Sébastien Helleu 1db29cb1ed relay/api: reject any invalid or unknown password hash algorithm in handshake resource 2025-07-02 20:32:09 +02:00
Sébastien Helleu d8baabd250 relay/api: use "buffer_name" first if received, then "buffer_id" in completion and input resources
This fixes some tests done by shemathesis, which sends "buffer_id" to
0 (unknown buffer) and "buffer_name" to a valid buffer name.
2025-07-02 20:32:09 +02:00
Sébastien Helleu 93ec10b563 relay/api: return HTTP error 405 (Method Not Allowed) when the method received is not allowed 2025-07-02 20:32:09 +02:00
Albert Lee 9a9a262ea1 python: use built-in CMake FindPython module from CMake 3.12 or higher 2025-05-25 09:19:05 +02:00
Albert Lee 48568edfe0 lua: use LUA_CFLAGS from pkg-config 2025-05-22 21:02:58 +02:00
Sébastien Helleu 927a50e366 core, plugins: replace "%p" by "%lx" in calls to sscanf 2025-05-18 22:17:29 +02:00
Sébastien Helleu d0c00f7db2 Revert "core, plugins: replace "%lx" by "%p" in calls to sscanf"
This reverts commit e64ab3c675.

This was causing incorrect conversion of strings "0x..." to pointers on systems
like Solaris/illumos.

And as a side effect, buffers were sometimes empty in weechat relay clients
like glowing-bear.
2025-05-18 22:17:16 +02:00
Sébastien Helleu 9783256649 relay/api: use specifier %@ for times formatted by util_strftimeval 2025-05-18 22:15:39 +02:00
Sébastien Helleu d475c16671 core: fix buffer overflow in function utf8_next_char and return NULL for empty string
Now the function utf8_next_char with an empty string returns NULL instead of
the next char, which is most of the time after an allocated buffer.

And the function utf8_char_size with an empty string now returns 0 instead of
1.

This indirectly fixes a buffer overflow in function eval_string_range_chars
when the input string is empty (for example when doing `/eval -n ${chars:}`).
2025-05-10 20:53:04 +02:00
Sébastien Helleu 2bc290b6ed core: fix integer overflow and return "unsigned long" in function util_version_number 2025-05-08 18:45:39 +02:00
Sébastien Helleu 51d24fd2da api: add function file_compare (issue #2250) 2025-05-07 20:44:48 +02:00
Sébastien Helleu 5b62cb6451 buflist: add variables ${number_zero} and ${number_zero2} (zero-padded buffer number) 2025-05-04 09:28:03 +02:00
Sébastien Helleu 683fa2f585 irc: add support of strikethrough color attribute (using half bright) (closes #2248)
As ncurses doesn't support strikethrough, the text is rendered as half
bright (WeeChat color: "dim").
2025-04-26 14:10:43 +02:00
Alvar Penning d4b8685551 perl: fix build when multiplicity is not available
Building WeeChat 4.6.0 on OpenBSD failed with the following error.

> /usr/ports/pobj/weechat-4.6.0/weechat-4.6.0/src/plugins/perl/weechat-perl.c:356:13: error: expected ')'
>             function) < 0)
>             ^
> /usr/ports/pobj/weechat-4.6.0/weechat-4.6.0/src/plugins/perl/weechat-perl.c:352:9: note: to match this '('
>     if (weechat_asprintf (
>         ^
> /usr/ports/pobj/weechat-4.6.0/weechat-4.6.0/src/plugins/perl/../weechat-plugin.h:1312:31: note: expanded from macro 'weechat_asprintf'
>     (weechat_plugin->asprintf)(__result, __fmt, ##__argz)

On further inspection, the line in question was recently altered in
099e11d7b8, where a comma was forgotten in the
else branch of the MULTIPLICITY ifdef.

After adding the comma, WeeChat builds as usual.
2025-04-02 22:58:10 +02:00
Sébastien Helleu 2475f20cb7 all: move description of C files below the copyright and license 2025-03-31 11:47:49 +02:00
Sébastien Helleu 3a6ac9ee76 all: add SPDX license tag 2025-03-31 07:49:26 +02:00
Sébastien Helleu 55d936d63a relay: add SPDX copyright tag in relay OpenAPI document 2025-03-30 14:47:12 +02:00
Sébastien Helleu 0a5222f5d6 php: add SPDX copyright tag in PHP stub file 2025-03-30 14:47:12 +02:00
Sébastien Helleu f4b29093ca python: add SPDX copyright tag in Python stub file 2025-03-30 14:47:12 +02:00
Sébastien Helleu d8987a1678 all: replace Copyright lines by SPDX copyright tag 2025-03-30 14:47:12 +02:00
Sébastien Helleu 45c8bab9b8 irc: display nick changes and quit messages when option irc.look.ignore_tag_messages is enabled (closes #2241) 2025-03-28 12:08:40 +01:00
Sébastien Helleu 6d11468059 spell: rename variable "broker" to "spell_enchant_broker" 2025-03-16 15:58:30 +01:00
Joe Hermaszewski 6b19987e7f spell: allow overriding dictionaries locations
Works for aspell and myspell (hunspell) when using enchant.
2025-03-16 15:58:23 +01:00
Sébastien Helleu 847ce17718 xfer: replace "ETA" by "time left" 2025-03-16 15:01:17 +01:00
Andrew Potter 15e2da3aac xfer: compute speed and ETA with microsecond precision 2025-03-16 15:01:17 +01:00
Sébastien Helleu ca22e49041 core, irc: replace "long" by "long long" to store seconds in timeval structure 2025-03-16 14:05:11 +01:00
Sébastien Helleu 764b309e92 core, irc, relay: fix formatting of seconds and microseconds 2025-03-16 14:04:28 +01:00
Sébastien Helleu e9983821e7 buflist: fix typo in help on option buflist.look.nick_prefix_empty 2025-03-16 10:36:23 +01:00
Sébastien Helleu b25a9b11a0 buflist: apply option buflist.look.nick_prefix_empty also on private and list buffers 2025-03-15 19:19:19 +01:00