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

13212 Commits

Author SHA1 Message Date
Sébastien Helleu 42c65cebcb api: allow to add empty buffer with function infolist_new_var_buffer
This fixes the following error with `/upgrade` command when relay clients are
connected:

  relay: failed to save upgrade data
2024-12-22 19:34:20 +01:00
Sébastien Helleu c9c57eeee2 Revert "ci: fix macOS CI"
Remove workaround for https://github.com/actions/runner-images/issues/10984

This reverts commit 2555c378a2.
2024-12-22 10:56:07 +01:00
Sébastien Helleu 8c63243941 core: fix detection of dl library (issue #2218)
This fixes the linking to curl and ncurses on macOS.
2024-12-21 18:11:57 +01:00
Sébastien Helleu 732bfe4a48 core: add option POST_BUILD in add_custom_command
This fixes the following CMake warning:

CMake Warning (dev) at src/gui/curses/normal/CMakeLists.txt:73 (add_custom_command):
  Exactly one of PRE_BUILD, PRE_LINK, or POST_BUILD must be given.  Assuming
  POST_BUILD to preserve backward compatibility.

  Policy CMP0175 is not set: add_custom_command() rejects invalid arguments.
  Run "cmake --help-policy CMP0175" for policy details.  Use the cmake_policy
  command to set the policy and suppress this warning.
This warning is for project developers.  Use -Wno-dev to suppress it.
2024-12-21 18:11:08 +01:00
Sébastien Helleu 46f322c10f logger: fix path displayed when the logs directory can not be created 2024-12-21 17:16:15 +01:00
Sébastien Helleu 52cb5bbbe0 core: update ChangeLog 2024-12-20 07:39:18 +01:00
zeromind b634270f2a perl: set locale only on supported Perl versions
restrict setting the locale only if the Perl version supports it (>=5.27.9)

fixes #2219
2024-12-20 07:38:33 +01:00
Sébastien Helleu f4dbdb93d7 Version 4.5.1-dev 2024-12-20 07:38:14 +01:00
Sébastien Helleu e8b73aa711 Version 4.5.0 v4.5.0 2024-12-15 09:02:38 +01:00
Sergey Fedorov 33232f3f05 core-crypto.c: fix htobe64 for Darwin (closes #2216) 2024-12-13 13:04:37 +01:00
Sébastien Helleu 5e5278b6a3 php: add detection of PHP 8.3 and 8.4 2024-12-04 17:52:26 +01:00
Sébastien Helleu eee806370b core: add version 4.4.4 2024-11-30 10:46:03 +01:00
Sébastien Helleu f8b2e1d525 debian: update changelog 2024-11-30 10:44:28 +01:00
Nils Görs 82a2f764bc core: update German translations 2024-11-26 10:44:44 +01:00
Sébastien Helleu 680e7dc95f core: update ChangeLog (issue #2214, issue #2215) 2024-11-25 23:02:59 +01:00
Trygve Aaberge a0b7220d23 script: don't try to display the old line if it's NULL
This fixes a crash which would happen if you scrolled the script buffer
and then did a search which got fewer search results than the index of
the selected line before the search. E.g. press page down to go to the
second page and then search for `test`.
2024-11-25 23:00:44 +01:00
Sébastien Helleu 48a92276e5 core: fix includes of wchar.h 2024-11-25 22:32:18 +01:00
Sébastien Helleu e483113345 perl: add midding #define of __USE_XOPEN to call wcwidth defined in wchar.h 2024-11-25 22:32:18 +01:00
Sébastien Helleu ea11623793 core: update ChangeLog (issue #2213) 2024-11-25 21:29:27 +01:00
Trygve Aaberge 107650d7d7 perl: only set Perl locale if the locale is broken
It turns out that Debian has reverted the commit in Perl that broke the
locale in their 5.38 branch, so it did not have the issue. However, the
workaround we added to fix the locale apparently makes the version
Debian/Ubuntu has crash on perl_destruct. I'm not sure why it makes it
crash, but since it doesn't crash on newer Perl versions, I'm assuming
that it's another bug with the locale handling in that Perl version.

To avoid the crash, make sure to only set the locale if we detect that
it has been broken by Perl. We do this by checking if the value returned
by wcwidth (160) (the first non-ascii printable character) has changed.
If this value is not the same after the call to perl_construct, the
locale has been broken.

I moved the call to Perl_setlocale to right after perl_construct, as the
call to perl_construct is what breaks the locale.
2024-11-25 21:22:21 +01:00
Sébastien Helleu 2555c378a2 ci: fix macOS CI
This is a workaround for https://github.com/actions/runner-images/issues/10984
2024-11-24 18:35:34 +01:00
Sébastien Helleu 6e7df56592 core: update ChangeLog (issue #2209) 2024-11-24 16:23:38 +01:00
Trygve Aaberge 9250d769fd Fix crash when unloading Perl scripts with Perl 5.38
Apparently the issue with the locale being reset with Perl 5.38 can
cause a crash when unloading the scripts on some systems (at least
Ubuntu 24.04). There was a workaround added in commit f4b9cad72, but it
doesn't work to avoid the crash. However if we set LC_ALL instead of
LC_CTYPE the crash doesn't occur.

Fixes #2187
2024-11-24 16:21:32 +01:00
Sébastien Helleu 5bdbcae892 core: update ChangeLog (issue #2206) 2024-11-24 16:16:53 +01:00
Trygve Aaberge 11faf85402 tests: add test for combining request headers 2024-11-24 16:15:35 +01:00
Trygve Aaberge ca07c03bf3 relay/api: combine request headers with the same name
If a request repeats the same header name multiple times, merge the
header values into a comma separated string. Previously, only the last
header specified would be used.

For header fields that are defined as a comma-separated list, a client
may choose to send it as multiple headers instead of one header with
comma-separated values. The specification says that these are
equivalent, so we can therefore join the headers into a comma-separated
string.

This is specified at https://datatracker.ietf.org/doc/html/rfc7230#section-3.2.2
which says:

    A sender MUST NOT generate multiple header fields with the same field
    name in a message unless either the entire field value for that
    header field is defined as a comma-separated list [i.e., #(values)]
    or the header field is a well-known exception (as noted below).

    A recipient MAY combine multiple header fields with the same field
    name into one "field-name: field-value" pair, without changing the
    semantics of the message, by appending each subsequent field value to
    the combined field value in order, separated by a comma.  The order
    in which header fields with the same field name are received is
    therefore significant to the interpretation of the combined field
    value; a proxy MUST NOT change the order of these field values when
    forwarding a message.
2024-11-24 16:15:35 +01:00
Sébastien Helleu 18364586d9 core: update ChangeLog (issue #2205) 2024-11-24 16:08:58 +01:00
Sébastien Helleu 669f1894e6 doc/relay/api: add French documentation for auth via Sec-WebSocket-Protocol 2024-11-24 16:05:50 +01:00
Trygve Aaberge 45a1b9b20e doc/relay/api: add documentation for auth via Sec-WebSocket-Protocol 2024-11-24 16:05:40 +01:00
Trygve Aaberge a414fb9da5 tests: add tests for auth via Sec-WebSocket-Protocol 2024-11-24 16:00:25 +01:00
Trygve Aaberge bd7c503e7b relay/api: support passing auth in sub protocol header
The API for connecting to WebSockets in browsers unfortunately doesn't
support setting any Authorization header. This means that before this
commit it was impossible to connect to the API relay from a web browser.
The only thing that can be set apart from the URL is the
Sec-WebSocket-Protocol header. Therefore this allows you to send the
auth token in this header.

This is a weird way to send auth, but it seems to be the best one that
makes it possible for browsers to connect. Kubernetes also does it this
way: https://github.com/kubernetes/kubernetes/pull/47740

Here is a post describing the different ways to make it possible for a
browser to authenticate against a websocket connection, and it also
recommends doing it this way:
https://stackoverflow.com/questions/4361173/http-headers-in-websockets-client-api/77060459#77060459

Note that when this header is used to pass auth, the client also needs
to specify the `api.weechat` sub protocol. This is because the client
and server have to agree on a sub protocol when this header is
specified, and in order to not send the fake protocol used for auth back
to the client, we require specifying the protocol `api.weechat`, which
the server then returns to the client. This is only necessary when the
Sec-WebSocket-Protocol header is used. If the Authorization header is
used for auth as before, nothing changes.
2024-11-24 16:00:25 +01:00
Sébastien Helleu eaace4acdb core: update ChangeLog 2024-11-24 11:23:36 +01:00
Sébastien Helleu 328aa8f202 core, plugins: abort upgrade immediately if any upgrade file fails to be written
Detail of changes:

- the save of upgrade files in plugins is now done as soon as the "upgrade"
  signal is received, and not when the plugin is unloaded (it was too late to
  detect any problem and prevent the upgrade to happen)
- if the write of an upgrade file fails, the signal callback in plugin now
  returns WEECHAT_RC_ERROR and WeeChat checks this code to stop the upgrade as
  soon as this return code is received
- a new flag is added in plugin structure: unload_with_upgrade, it is set to 1
  before unloading all plugins when upgrade will happen (all *.upgrade files
  are then already successfully written).
2024-11-24 10:29:32 +01:00
Sébastien Helleu 244595d94f api: add support of flags in functions hook_signal_send and hook_hsignal_send
For now the only supported flag is:

- "stop_on_error": stop execution of callbacks immediately after an
  error (ie return code of callback is WEECHAT_RC_ERROR) and return this code
  (by default execute all callbacks and return the last return code, or return
  WEECHAT_RC_EAT immediately if a callback returns this)

Example:

  hook_signal_send("[flags:stop_on_error]my_signal", WEECHAT_HOOK_SIGNAL_STRING, "test");
2024-11-24 10:29:32 +01:00
Sébastien Helleu 61d7a4c678 core: add message with /debug hooks command when /upgrade is not possible due to running hooks 2024-11-24 09:59:34 +01:00
Nils Görs 3e579c94f6 core: update German translations 2024-11-21 09:26:45 +01:00
Sébastien Helleu 7184d34371 irc: add infos "irc_ptr_server", "irc_ptr_channel" and "irc_ptr_nick" 2024-11-20 21:53:29 +01:00
Sébastien Helleu 9a8010eead core: fix translation of keys in options
This fixes French description of key options in docs.
2024-11-20 18:23:49 +01:00
Sébastien Helleu 3fd298bfbe doc/user: update command to enable download of scripts 2024-11-16 22:41:56 +01:00
Sébastien Helleu 7c1586e8ff doc/user: translate example of script buffer 2024-11-16 22:41:56 +01:00
Sébastien Helleu 1c30fe9b0a doc/user: translate example of fset buffer 2024-11-16 22:41:56 +01:00
Sébastien Helleu 9c016af6fb doc/user: fix options displayed in /fset libera 2024-11-16 22:41:56 +01:00
Sébastien Helleu 08d5839fa1 doc/user: remove default port and option -tls from example of command /server add 2024-11-16 22:41:56 +01:00
Ivan Pešić b11e2b82f4 doc: update Serbian documentation 2024-11-16 09:29:24 +01:00
Ivan Pešić 85b9d72e37 core: update Serbian messages translation 2024-11-16 09:29:24 +01:00
Nils Görs 4511996b84 core: update German translations 2024-11-14 10:07:16 +01:00
Sébastien Helleu 93646c0b24 core: add optional hook types in command /debug hooks 2024-11-13 07:35:02 +01:00
Sébastien Helleu 5ddd786332 core: add completion "hook_types" 2024-11-12 22:15:16 +01:00
LuK1337 9731f5a8e6 tests: migrate away from removed ast features
See https://github.com/python/cpython/pull/119563.
2024-11-04 18:48:44 +01:00
Sébastien Helleu 6e19e9d8b2 core: remove use of arraylist in function gui_buffer_merge 2024-11-04 18:39:54 +01:00