1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-12 22:24:47 +02:00

Compare commits

..

3810 Commits

Author SHA1 Message Date
Sébastien Helleu d4ed290a37 core: always write all options in theme files
Theme files saved with /theme save and automatic backups now always
contain every themable option (full snapshot), so a theme file is
self-contained and round-trips exactly regardless of the current
configuration. The diff-only mode and the "-full" argument of
/theme save are removed.
2026-06-08 09:39:22 +02:00
Sébastien Helleu a98568788b core: fix description of automatic theme backup 2026-06-08 09:39:22 +02:00
Sébastien Helleu 215fdfc0a7 core: add /theme rename to rename a user theme file 2026-06-08 09:39:22 +02:00
Sébastien Helleu deedaed1f9 core: auto-detect terminal background and apply light theme on first start
Detect the terminal background (via COLORFGBG or an OSC 11 query) before
GUI init and, on the first start, automatically apply the built-in
"light" theme when a light terminal is detected.

The function gui_term_theme_is_light returns an int (1 if light, 0 otherwise,
0 being the safe value when detection is unsure).
2026-06-08 09:39:22 +02:00
Sébastien Helleu fb220e1afd core: fix style in comments 2026-06-08 09:39:22 +02:00
Sébastien Helleu afd7e08691 core: display path to theme written with /theme save <name> 2026-06-08 09:39:22 +02:00
Sébastien Helleu 0fb0b3bb07 core: add /theme reset to restore original themable defaults 2026-06-08 09:39:22 +02:00
Sébastien Helleu ecec47c633 tests: cover apply edge cases for /theme command 2026-06-08 09:39:22 +02:00
Sébastien Helleu 3f64975a72 doc: add ChangeLog entry for /theme command and built-in light theme
Add six entries to the "Added" section of Version 4.10.0 in
CHANGELOG.md:

- the /theme command with its subcommands (list/apply/save/delete/
  info) and the automatic backup mechanism, plus the shipped
  "light" built-in theme;
- the themable flag on configuration options;
- the weechat.look.theme and weechat.look.theme_backup options;
- the theme_register plugin/script API function;
- the t:themable filter in fset.

No UPGRADING.md entry: the change is purely additive — default option
values are unchanged, so existing users see no visible difference
until they explicitly /theme apply light. weechat.look.theme is a new
option (empty by default at first launch) and weechat.look.theme_backup
defaults to "on".
2026-06-08 09:39:22 +02:00
Sébastien Helleu b970962bdb doc: document /theme command and theme file format
Add the "Themes" section to user guides and plugin API references in
every language where the corresponding adoc exists.

User guide (10 files): English (the new prose) and French (a full
translation, with section title "Thèmes"). For the other languages —
German, Italian, Japanese, Polish, Serbian — the body is the English
text with only the section title localized where the existing Colors
section is localized (Themen / Motywy / Теме); Italian and Japanese
keep the English "Themes" title to match their existing English-only
section titles. Coverage by file:

  - doc/en/weechat_user.en.adoc       (new English section)
  - doc/fr/weechat_user.fr.adoc       (full French translation)
  - doc/de/weechat_user.de.adoc       (English body, "Themen" title)
  - doc/it/weechat_user.it.adoc       (English body and title)
  - doc/ja/weechat_user.ja.adoc       (English body and title)
  - doc/pl/weechat_user.pl.adoc       (English body, "Motywy" title)
  - doc/sr/weechat_user.sr.adoc       (English body, "Теме" title)

Plugin API reference (5 files): same approach — English plus full
French translation; Italian, Japanese and Serbian keep the English
body with their conventional section title:

  - doc/en/weechat_plugin_api.en.adoc (new English section)
  - doc/fr/weechat_plugin_api.fr.adoc (full French translation)
  - doc/it/weechat_plugin_api.it.adoc (English body and title)
  - doc/ja/weechat_plugin_api.ja.adoc (English body and title)
  - doc/sr/weechat_plugin_api.sr.adoc (English body, "Теме" title)

User-guide content covers themable options, /theme apply with the
automatic backup mechanism, /theme save and /theme delete with the
reserved-name rules, the .theme file format with a sample, and the
user-file-shadows-built-in resolution order. The API-reference content
documents weechat_theme_register (prototype, arguments, return value,
C example, Python example) with notes on the themable flag and
per-script auto-cleanup on script unload.

The /theme command's CMD_ARGS_DESC help text and the cmdline option
descriptions are picked up automatically by the doc generator
(doc-autogen), so no manual entries are needed there.
2026-06-08 09:39:22 +02:00
Sébastien Helleu d56e46908f script: track per-script theme contributions and purge on script unload
Make individual scripts the unit of ownership for theme contributions
so that loading a script that calls weechat.theme_register(...) and
later unloading it correctly removes the script's overrides.

Plugin API addition (weechat-plugin.h):

  - new function pointer t_weechat_plugin.theme_unregister_script
    delegates to core's theme_unregister_script.
  - new convenience macro weechat_theme_unregister_script(script).
  - WEECHAT_PLUGIN_API_VERSION bumped to 20260527-02.

Script API additions (plugin-script-api.{c,h}):

  - new plugin_script_api_theme_register (plugin, script, name,
    overrides) forwards to the plugin API with the script pointer
    as the contribution owner, so contributions are tracked
    per-script (not per script-language plugin).

Lifecycle wiring (plugin-script.c):

  - new file-local plugin_script_remove_themes (plugin, script)
    calls weechat_theme_unregister_script.
  - plugin_script_remove now calls it alongside the other
    plugin_script_remove_* helpers, so script-unload tears down
    everything (configs, bar items, themes, hooks).

Eight language bindings updated to call
plugin_script_api_theme_register instead of weechat_theme_register
directly, so they pass the script pointer as owner:

  - python, perl, ruby, lua, tcl, javascript, php, guile.

The behavior change is end-to-end visible only at script unload:
before, an unloaded script's theme overrides lingered in the
registry forever and would be re-applied on the next /theme apply;
after, they vanish when the script unloads. /plugin unload of an
entire script-language plugin already worked via commit 24's hook
in plugin_remove (which drops both plugin-only contributions and
their script-owned children when the language plugin itself goes
away, because the contribution's plugin pointer matches).

No new unit tests in this commit: the underlying theme_unregister_script
function is covered by TEST(CoreTheme, UnregisterByOwner), and the
remaining changes are plumbing.
2026-06-08 09:39:22 +02:00
Sébastien Helleu 8b19d3b0a4 core: auto-purge plugin contributions on plugin unload
Call theme_unregister_plugin (plugin) from plugin_remove, right after
config_file_free_all_plugin and before unhook_all_plugin. This drops
every theme contribution whose plugin pointer matches the plugin being
unloaded, so subsequent /theme apply runs no longer try to set
options for an unloaded plugin and per-plugin contributions don't
outlive the plugin.

Script-owned contributions (plugin != NULL && script != NULL) are
left intact - they are cleaned up per-script in the next commit.

This commit is wiring only: the underlying theme_unregister_plugin
function and its semantics are already covered by
TEST(CoreTheme, UnregisterByOwner) in the previous commit.
2026-06-08 09:39:22 +02:00
Sébastien Helleu fcf439dfa0 core: track per-contributor overrides in theme registry
Refactor the theme registry to store one sub-table per contributor
instead of a single merged hashtable. Each registered theme now holds
a linked list of t_theme_contribution entries:

  struct t_theme_contribution {
      struct t_weechat_plugin *plugin;  /* NULL = core */
      const void *script;               /* NULL for non-script */
      struct t_hashtable *overrides;
      ...
  };

Identity of a contributor is the (plugin, script) pair:

  - (NULL, NULL)     -> core (theme_builtin_init)
  - (plugin, NULL)   -> plugin-level contribution
  - (plugin, script) -> individual script (filled in by next commit)

theme_register is now (plugin, script, name, overrides). It searches
the existing contributions for a matching (plugin, script) and merges
the new overrides into it; otherwise it appends a fresh contribution.
The public macro weechat_theme_register(name, overrides) still takes
two args - it now expands to pass weechat_plugin and NULL for script.

theme_apply iterates contributions in list order, calling
config_file_option_set for each entry; later contributions naturally
win for duplicate keys.

Two new internal helpers prepare for the lifecycle work in the next
two commits:

  - theme_unregister_plugin (plugin): drops every contribution owned
    by that plugin (with script == NULL).
  - theme_unregister_script (plugin, script): drops every contribution
    owned by that script.

Neither is called yet; the auto-purge wiring lands in commits 24
(plugin_unloaded signal) and 25 (script API + script-unload hook).

Other touched code:

  - core-theme-builtin.c switches to theme_register (NULL, NULL, ...).
  - core-command.c /theme info uses theme_overrides_count helper
    instead of reaching into theme->overrides (which no longer
    exists).
  - WEECHAT_PLUGIN_API_VERSION bumped to 20260527-01 (function-pointer
    signature change).

Two new tests cover the new semantics:

  - UnregisterByOwner: registers four contributions from distinct
    (plugin, script) pairs, then prunes by plugin and by script,
    asserting per-contribution removal.
  - RegisterMergesPerContributor: two successive register calls from
    the same (plugin, script) merge into a single contribution with
    later keys overriding earlier ones.

Existing tests are updated to use the new theme_register signature,
theme_overrides_count, and theme_get_override (replacing direct
access to theme->overrides->items_count and hashtable_get on
theme->overrides). No plugin or script call sites change - the
public weechat_theme_register macro keeps the same shape.
2026-06-08 09:39:22 +02:00
Sébastien Helleu e4a2a6d3f2 trigger: contribute "light" theme overrides
Add trigger-theme.{c,h} with the trigger plugin contribution to the
built-in "light" theme: 6 entries (flag_command, flag_conditions,
flag_post_action, flag_regex, flag_return_code, regex) tuned for a
light-background terminal.

Same 2D-array pattern as the other plugin contributions.

Default option values are NOT changed.
2026-06-08 09:39:22 +02:00
Sébastien Helleu 7051d7e08b spell: contribute "light" theme overrides
Add spell-theme.{c,h} with the spell plugin contribution to the
built-in "light" theme: 1 entry (spell.color.misspelled=red) tuned for
a light-background terminal.

Same 2D-array pattern as the other plugin contributions.

Default option values are NOT changed.
2026-06-08 09:39:22 +02:00
Sébastien Helleu 36d09a2ba6 script: contribute "light" theme overrides
Add script-theme.{c,h} with the script plugin contribution to the
built-in "light" theme: 24 entries on script.color.* (status_* and
text_*) tuned for a light-background terminal.

Same 2D-array pattern as the other plugin contributions.

Default option values are NOT changed.
2026-06-08 09:39:22 +02:00
Sébastien Helleu ee799c9032 relay: contribute "light" theme overrides
Add relay-theme.{c,h} with the relay plugin contribution to the
built-in "light" theme: 5 entries (status_auth_failed, status_authenticating,
status_connecting, status_disconnected, text_selected) tuned for a
light-background terminal.

Same 2D-array pattern as the other plugin contributions.

Default option values are NOT changed.
2026-06-08 09:39:22 +02:00
Sébastien Helleu 797d3c0db2 logger: contribute "light" theme overrides
Add logger-theme.{c,h} with the logger plugin contribution to the
built-in "light" theme: 2 entries (logger.color.backlog_end=darkgray,
logger.color.backlog_line=darkgray) tuned for a light-background
terminal.

Same 2D-array pattern as the other plugin contributions.

Default option values are NOT changed.
2026-06-08 09:39:22 +02:00
Sébastien Helleu 91223591e9 exec: contribute "light" theme overrides
Add exec-theme.{c,h} with the exec plugin contribution to the built-in
"light" theme: 2 entries (exec.color.flag_finished=red,
exec.color.flag_running=green) tuned for a light-background terminal.

Same 2D-array pattern as the other plugin contributions.

Default option values are NOT changed.
2026-06-08 09:39:22 +02:00
Sébastien Helleu f50b91a6d9 xfer: contribute "light" theme overrides
Add xfer-theme.{c,h} with the xfer plugin contribution to the built-in
"light" theme: 7 overrides on xfer.color.* (status_aborted,
status_active, status_connecting, status_done, status_failed,
status_waiting, text_selected) tuned for a light-background terminal.

Same NULL-terminated 2D-array pattern as the irc, fset and buflist
contributions; xfer_theme_init() is called once from
weechat_plugin_init after xfer_config_init / xfer_config_read.

Default option values are NOT changed.
2026-06-08 09:39:22 +02:00
Sébastien Helleu d2d490146c buflist: contribute "light" theme overrides
Add buflist-theme.{c,h} with the buflist plugin contribution to the
built-in "light" theme: 5 overrides on buflist.format.* options
(buffer_current, hotlist_low, hotlist_message, lag, number) tuned for
a light-background terminal. Each target is a "string|themable" option
holding an evaluated format expression with embedded ${color:...}
references.

Follows the same pattern as the irc and fset contributions: a
NULL-terminated 2D string table consumed by a tiny local register
helper that builds a hashtable and calls weechat_theme_register;
buflist_theme_init() is called once from weechat_plugin_init after
buflist_config_init / buflist_config_read.

Default option values are NOT changed.
2026-06-08 09:39:22 +02:00
Sébastien Helleu f587a9dcaf fset: contribute "light" theme overrides
Add fset-theme.{c,h} with the fset plugin contribution to the built-in
"light" theme: 47 overrides on fset.color.* options (line backgrounds,
selected-row tuning, title and value colors) tuned for a
light-background terminal.

The table is a NULL-terminated 2-column array of strings (no struct
wrapper, matching the pattern adopted for the irc contribution).
fset_theme_register builds a hashtable from the table and calls
weechat_theme_register; fset_theme_init() is called once from
weechat_plugin_init after fset_config_init / fset_config_read.

Default option values are NOT changed.
2026-06-08 09:39:22 +02:00
Sébastien Helleu 54b0753aab irc: contribute "light" theme overrides
Add irc-theme.{c,h} with the IRC plugin contribution to the built-in
"light" theme: 9 overrides on irc.color.* options tuned for a
light-background terminal (input_nick, item_lag_finished,
item_tls_version_deprecated, list_buffer_line_selected,
message_chghost, message_setname, nick_prefixes, topic_new, topic_old).

The registration is a small wrapper around weechat_theme_register that
builds a hashtable from a static (option, value) table and frees it
after the call. irc_theme_init() is called from weechat_plugin_init
after irc_config_init/read so the option names are already created
when the theme registry references them.

Default option values are NOT changed.
2026-06-08 09:39:22 +02:00
Sébastien Helleu d189ca7f19 core: register built-in "light" theme
Add a small core-theme-builtin.c module containing the core
contribution to the "light" theme: 33 overrides for
"weechat.bar.{status,title}.color_*" and "weechat.color.*" tuned for
light-background terminals.

theme_builtin_init() builds a hashtable from the static entry table and
calls theme_register("light", overrides), then frees the temporary
hashtable. It is called once from weechat_init right after theme_init.
Calling it twice is a no-op (the registry merges identical keys).

Default option values are NOT changed. Existing configs render exactly
as before; users opt in with "/theme apply light".

Add TEST(CoreTheme, BuiltinInit) covering:
  - the "light" theme is absent before theme_builtin_init();
  - it is present after, with >= 30 overrides;
  - three spot-checked values match the source table;
  - calling theme_builtin_init() a second time does not change the
    override count.

Plugins contribute their own "light" overrides via weechat_theme_register
in subsequent commits.
2026-06-08 09:39:22 +02:00
Sébastien Helleu 86d8bec433 script: expose theme_register to python, perl, ruby, lua, tcl, javascript, php, guile
Add weechat.theme_register (name, overrides) to all eight script
languages. Each binding is a mechanical translation of the same
signature:

  - name:      string
  - overrides: language-native dict / hash / associative array of
               full_option_name -> value strings
  - returns:   pointer-as-string of the registered t_theme (empty
               string on failure)

Each binding converts the dict to a struct t_hashtable using the
existing per-language helper (weechat_python_dict_to_hashtable,
weechat_perl_hash_to_hashtable, weechat_ruby_hash_to_hashtable,
weechat_lua_tohashtable, weechat_tcl_dict_to_hashtable,
weechat_js_object_to_hashtable, weechat_php_array_to_hashtable,
weechat_guile_alist_to_hashtable), calls weechat_theme_register,
frees the temporary hashtable, and returns the result. The new
function is registered right after the config_* functions so the API
listing stays grouped by topic.

PHP also receives a new arginfo entry (string, array -> string) in
both weechat-php_arginfo.h and weechat-php_legacy_arginfo.h.

This is plumbing only - the underlying theme_register function is
already covered by tests/unit/core/test-core-theme.cpp
(TEST(CoreTheme, Register)). No script-side tests are added here.
2026-06-08 09:39:22 +02:00
Sébastien Helleu 53db79aa5f api: expose theme_register to plugins
Add a single new entry point to the plugin API:

  struct t_theme *weechat_theme_register (const char *name,
                                          struct t_hashtable *overrides);

Plugins call this at init time to contribute their per-theme color (or
other themable) overrides for a built-in theme like "dark". The
overrides hashtable maps full option names ("irc.color.input_nick") to
their string values; the caller retains ownership and may free it
right after the call. Repeated calls with the same theme name merge
into the existing registry entry, so each plugin can declare its own
contributions independently of core and of other plugins.

Wiring:

- struct t_theme forward-declared in weechat-plugin.h alongside the
  other opaque types.
- theme_register function pointer added to t_weechat_plugin.
- weechat_theme_register convenience macro added.
- plugin.c initializes the pointer to core's theme_register.
- WEECHAT_PLUGIN_API_VERSION bumped to 20260526-01.

This commit is plumbing only: the underlying theme_register function
already has unit-test coverage in tests/unit/core/test-core-theme.cpp
(TEST(CoreTheme, Register)), so no new tests are added here.
2026-06-08 09:39:22 +02:00
Sébastien Helleu b994a645e3 core: add theme name completion
Add two completion items hooked alongside "layouts_names":

- "theme_themes_all": all theme names (built-ins from the registry
  plus every *.theme file in <weechat_config_dir>/themes/, including
  backup-*.theme). Used by tab-complete on /theme apply and
  /theme info.
- "theme_themes_user": user theme files only (excludes built-ins
  and backup-*.theme). Used by tab-complete on /theme save and
  /theme delete, so users cannot accidentally try to overwrite a
  built-in name or save a name colliding with the reserved backup
  prefix.

Both callbacks share a small dir_exec_on_files-based helper to filter
the themes directory. The /theme command's completion template in
core-command.c is updated to reference these new items.
2026-06-08 09:39:22 +02:00
Sébastien Helleu 64f17761f1 core: implement /theme save and /theme delete
Add two complementary subcommands:

  /theme save <name> [-full]: writes a user theme file at
    ${weechat_config_dir}/themes/<name>.theme containing the current
    themable options. By default only options whose value differs from
    their default (config_file_option_has_changed) are written, which
    keeps the file small and focused. Pass "-full" to write every
    themable option (matches the format used by automatic backups).

    Name validation: refuses any name matching a built-in theme (those
    are reserved for in-memory registrations) and any name starting
    with "backup-" (reserved for /theme apply backups). Both checks
    print an error and abort without writing.

  /theme delete <name>: removes ${weechat_config_dir}/themes/<name>.theme
    via unlink. Refuses to delete a name registered as a built-in
    theme (a built-in has no file on disk to delete, even if the user
    has a shadowing file of the same name they cannot remove it this
    way; they can rename or delete it manually).

The full-snapshot writer used by /theme apply backups is refactored
into theme_write_file (name, description, diff_only). It is reused
by theme_make_backup (diff_only=0) and theme_save (diff_only inverted
from the user's -full flag).

Bug fix while at it: the writer was previously calling
config_file_option_value_to_string (ptr_option, 0, 1, 0); the third
and fourth arguments are "use_colors" and "use_delimiters", so the
call inserted GUI color escape codes into the file output and skipped
quoting strings. Corrected to (ptr_option, 0, 0, 1) so plain text
with proper string quoting is written; the change also fixes the
content of files produced by theme_make_backup in the previous commit.
2026-06-08 09:39:22 +02:00
Sébastien Helleu 3bdb31bbf6 core: implement theme file parsing and transient file reads in /theme apply
Add a small INI-style parser for *.theme files and wire it into the
/theme command so user themes living in directory "themes" inside the
WeeChat configuration directory can be applied (and inspected) without
ever being cached.

Parser (theme_file_parse in core-theme.c) accepts two sections:

  [info]
  name = "..."          \ shown by /theme info; ignored for apply
  description = "..."   |
  date = "..."          |
  weechat = "..."       /
  (unknown keys are ignored with a warning)

  [options]
  full.option.name = "value"

Surrounding single or double quotes around a value are stripped (same
rule used by the regular config file reader). The parsed result is a
heap-allocated t_theme; the caller frees with theme_free.

Resolution rule in theme_apply: if the path
"${weechat_config_dir}/themes/<name>.theme" is readable it is parsed
and used (file shadows any built-in of the same name); otherwise the
built-in registry is consulted. The transient t_theme is freed before
the final refresh, so user themes have no steady-state memory
footprint regardless of how many .theme files have accumulated.

/theme list now also scans the themes directory and appends user
files to the listing (each marked "(file)"). backup-*.theme are
hidden by default; pass "-backups" to include them.

/theme info <name> works for both sources: file path is shown when the
information comes from disk; "built-in (in-memory)" otherwise.
2026-06-08 09:39:22 +02:00
Sébastien Helleu 7f1f9462f4 core: implement /theme apply with themable enforcement and auto-backup
Implement /theme apply <name> for themes currently in the in-memory
registry. The file-shadowing branch (read a .theme file from
${weechat_config_dir}/themes/ when no built-in matches) is added in
the next commit together with the parser.

Apply algorithm (theme_apply in core-theme.c):

- Look up the theme in the registry; abort with an error if unknown.
- If weechat.look.theme_backup is on and the target name does not
  begin with "backup-", write a full snapshot of every themable
  option to ${weechat_config_dir}/themes/backup-<timestamp>.theme
  via theme_make_backup; abort the apply if the backup cannot be
  written, so the user can always undo.
- Iterate the theme's overrides with theme_applying=1 so the
  per-option config_change_color skips its gui refresh; for each
  entry look up the option, refuse it if missing or non-themable
  (warning to core buffer), otherwise call config_file_option_set.
- Perform a single gui_color_init_weechat + gui_window_ask_refresh
  at the end.
- Persist the active label in weechat.look.theme and send signal
  "theme_applied" with the name as data.

Add the new option weechat.look.theme_backup (boolean, default on)
which controls the backup-or-abort behaviour described above.

Wire the new /theme apply subcommand into core-command.c with the
existing /theme registration; update help text accordingly.
2026-06-08 09:39:22 +02:00
Sébastien Helleu 9fbc81dc54 core: add /theme command with list and info subcommands
Add the /theme command with two read-only subcommands for now:

- /theme  (or  /theme list): list registered themes; the active theme
  (matching weechat.look.theme) is marked with "->".
- /theme info <name>: show name, description, creation date, WeeChat
  version and override count of a theme.

Both subcommands only consider themes present in the in-memory
registry (registered via core/plugins/scripts). User theme files on
disk are not yet handled: the file parser and transient file reads
land in a later commit together with /theme apply.
2026-06-08 09:39:22 +02:00
Sébastien Helleu 4550c3e33a core: add weechat.look.theme option and theme_applying guard
Add a new string option "weechat.look.theme" holding the name of the
last theme applied via the upcoming /theme command. It is set
automatically by /theme apply and persisted on disk for /theme info to
display after restart; it is NOT re-applied at startup (the user's
saved color values win to avoid clobbering manual post-apply tweaks).

Amend config_change_color so it skips the gui_color_init_weechat ()
and gui_window_ask_refresh (1) calls when theme_applying is set.
/theme apply will set this flag while iterating overrides so the N
individual option changes do not trigger N redundant screen refreshes;
the apply path then performs a single refresh at the end.
2026-06-08 09:39:22 +02:00
Sébastien Helleu 7e2b9ffa9a core: add core-theme skeleton and theme registry
Introduce a new module (core-theme.{c,h}) holding the in-memory registry
of built-in themes used by the upcoming /theme command:

- struct t_theme stores name, description, date and weechat version
  captured at registration time, plus a hashtable of overrides keyed by
  full option name (file.section.option) -> value string.
- theme_register (name, overrides) creates a new theme or merges the
  given overrides into an existing one (later calls override duplicate
  keys); this is the API plugins and scripts will use to contribute
  per-theme color values.
- theme_search and theme_list provide lookup and ordered enumeration.
- theme_init / theme_end are called from weechat_init / weechat_end.

The theme_applying flag is declared here but not yet consumed (it will
gate config_change_color in the next commit to avoid N redundant
window refreshes during /theme apply).

User theme files are not handled by this module: they are read
transiently inside /theme apply (a later commit) and never cached.
2026-06-08 09:39:22 +02:00
Sébastien Helleu 04f817814f fset: add "t:themable" filter
Extend the "t:" filter so the special value "themable" matches every
option whose new themable flag is set, regardless of type (color,
string, integer, boolean, enum). This makes the flag interactively
discoverable in the fset buffer and is the natural way to inspect the
surface area that an upcoming /theme command will be allowed to touch.

The themable flag of an option is now mirrored on struct t_fset_option,
exposed via hdata ("themable", integer) and infolist ("themable",
integer), and printed in the log.
2026-06-08 09:39:22 +02:00
Sébastien Helleu 0315c53a9e core: add themable flag to configuration options
Add an "int themable" field on struct t_config_option. The flag is set
automatically for every CONFIG_OPTION_TYPE_COLOR option, and may be set
explicitly on any other type by suffixing the type argument with
"|themable" in the call to config_file_new_option (e.g. "string|themable"
for a string option whose value contains "${color:...}" references).

Opt in the relevant string options in core (buffer_time_format,
day_change_message_*, item_time_format, nick_color_force, prefix_*,
chat_nick_colors, eval_syntax_colors, color palette aliases) and in the
buflist, fset, irc, relay plugins.

The flag is exposed via hdata, infolist, and print_log so scripts and
/debug can read it. This is the foundation for an upcoming /theme
command that will only be allowed to modify themable options.
2026-06-08 09:39:22 +02:00
Sébastien Helleu 3aeaa70e64 ci: bump poexam to version 0.0.11 2026-06-07 21:56:22 +02:00
Sébastien Helleu 66e633e27e core: add version 4.9.2 2026-06-07 11:51:55 +02:00
Sébastien Helleu 436bbeceff tests: increase buffer size for injection of fake IRC message 2026-06-07 08:47:36 +02:00
Sébastien Helleu c307087e2d core: update ChangeLog (#2324) 2026-06-06 11:19:14 +02:00
aizu-m 51a1149852 relay: fix out-of-bounds read in relay_http_print_log_request (#2324) 2026-06-06 11:18:06 +02:00
Sébastien Helleu d74993a42c relay: limit size of partial message received while reading an HTTP request to prevent memory exhaustion
A relay client could send data with no end-of-line (an unterminated method
or header line) and dribble its payload, making WeeChat accumulate it in the
partial message buffer that grew without limit, until all memory was
exhausted. This path is reachable before authentication during websocket
initialization with the "weechat" and "irc" protocols.

The accumulated partial message is now bounded by
RELAY_HTTP_PARTIAL_MESSAGE_MAX_LENGTH: once the limit is reached, the extra
data is ignored.
2026-06-06 09:36:22 +02:00
Sébastien Helleu 51464e400f core: add links to issues in ChangeLog (#2321, #2322) 2026-06-06 07:20:41 +02:00
Sébastien Helleu 1c5e6c3fc2 core: update ChangeLog (#2323) 2026-06-06 07:20:38 +02:00
Sébastien Helleu e563dfc903 doc: add build of Serbian API Relay doc 2026-06-06 07:09:04 +02:00
Sébastien Helleu befbcceb7f relay/api: add field "last_read_line_id" in GET /api/buffers 2026-06-06 07:04:46 +02:00
aizu-m 56f9ad68fb xfer: fix out-of-bounds read in xfer_chat_recv_cb on empty line (#2323) 2026-06-06 07:01:18 +02:00
aizu-m 328f86affc irc: fix out-of-bounds read in DCC command with quoted filename 2026-06-04 23:17:58 +02:00
Sébastien Helleu f4dc30ec58 tests: add tests on function xfer_file_find_filename 2026-06-04 23:17:58 +02:00
aizu-m 23291acb7b xfer: replace directory separator in remote nick by underscore in download filename 2026-06-04 22:38:08 +02:00
Sébastien Helleu b802681230 api: fix infinite loop in function string_replace when the search string is empty 2026-06-03 21:15:16 +02:00
Sébastien Helleu 3687ce0f0f relay: limit size of received websocket frame and HTTP body to prevent memory exhaustion
A relay client could announce a huge websocket frame (or HTTP body via
"Content-Length") and dribble its payload, making WeeChat accumulate it
in a buffer that grew without limit, until all memory was exhausted. The
websocket frame path is reachable before authentication with the
"weechat" and "irc" protocols.

The announced websocket frame length and HTTP "Content-Length" are now
bounded by WEBSOCKET_FRAME_MAX_LENGTH and RELAY_HTTP_BODY_MAX_LENGTH: an
oversized websocket frame closes the connection, and an oversized body is
rejected.
2026-06-01 21:56:34 +02:00
Sébastien Helleu 1211510ded irc: limit size of data received from the server to prevent memory exhaustion
A malicious or compromised IRC server could send data with no end-of-line
(or a flood of "005" messages), making WeeChat accumulate it in a buffer
that grew without limit, until all memory was exhausted.

The unterminated received message and the accumulated "005" (ISUPPORT)
data are now bounded by IRC_SERVER_RECV_MSG_MAX_LENGTH and
IRC_SERVER_ISUPPORT_MAX_LENGTH: extra data is ignored once the limit is
reached.
2026-06-01 21:53:03 +02:00
aizu-m 07871f123f core: fix possible integer truncation in function eval_string_split (#2320) 2026-06-01 10:25:35 +02:00
Sébastien Helleu a0cf82d4a6 core: replace Bash/Ubuntu with WSL in README 2026-05-31 17:24:41 +02:00
Sébastien Helleu 13291b6b9a core: add missing trailing slash to Ruby scripts URL in README 2026-05-31 17:24:24 +02:00
Sébastien Helleu 76d652a513 core: fix multi-protocol feature wording in README 2026-05-31 17:24:13 +02:00
Sébastien Helleu ff9b698665 core: improve wording of semantic versioning section in README 2026-05-31 17:24:01 +02:00
Sébastien Helleu d5c985eb11 core: add security policy in SECURITY.md 2026-05-31 16:04:33 +02:00
Sébastien Helleu b29f464322 ci: enable ruby 3.3 module on Rocky Linux 9 2026-05-31 15:13:43 +02:00
Sébastien Helleu 171a9a9fc4 ci: install dnf-plugins-core on Rocky Linux 9 for dnf config-manager 2026-05-31 15:13:43 +02:00
Sébastien Helleu d7bc041098 core: add version 4.9.1 2026-05-31 15:09:01 +02:00
Sébastien Helleu 43a118ac47 core: fix timing attack on TOTP validation (GHSA-vhv8-g2r9-cwcc)
weecrypto_totp_validate compared the generated and client-supplied OTPs
with strcmp and broke out of the time-window loop on the first match.
Both choices leaked information via response timing: strcmp leaked the
expected OTP digit-by-digit (shrinking the brute-force search from
~10^digits to a handful of guesses within the 30-second window), and
the early break leaked which window offset matched.

Compare in constant time with string_memcmp_constant_time and always
iterate the full window, OR-ing the result into otp_ok without an
early exit.

This affects both relay protocols (which call totp_validate via the
public info hook) and any other caller of the info hook.
2026-05-31 09:16:46 +02:00
Sébastien Helleu e540d7a2cf relay/irc: fix timing attack on PASS command (GHSA-vhv8-g2r9-cwcc)
The IRC relay protocol's PASS handler compared the server password with
the client-supplied value using strcmp, leaking the password byte-by-byte
via response timing. This is the same class of bug fixed for the api and
weechat protocols, on a separate code path that did not go through
relay_auth_check_password_plain.

Extract the HMAC-then-constant-time-compare logic from
relay_auth_check_password_plain into relay_auth_password_equals, then
use it in both the plain-auth wrapper and the IRC PASS handler.
2026-05-31 09:16:36 +02:00
Sébastien Helleu 6948aea626 relay: fix timing attack on password authentication (GHSA-vhv8-g2r9-cwcc)
The relay authentication used non-constant-time comparisons (strcasecmp,
strcmp) to verify password hashes and plaintext passwords, allowing an
attacker to derive the expected hash byte-by-byte from response timing
and then authenticate without knowing the password.

- SHA/PBKDF2 hex hash comparisons: normalize the client-supplied hash to
  uppercase and compare in constant time over the fixed expected length.
- Plaintext password comparison: HMAC-SHA256 both passwords with a fresh
  per-call random key and compare the fixed-size MACs in constant time,
  hiding both per-byte timing and the password length.

Add string_memcmp_constant_time helper in core, exposed via the plugin
API. Bump WEECHAT_PLUGIN_API_VERSION accordingly.
2026-05-31 09:16:15 +02:00
Sébastien Helleu 5dbb96b66a relay: limit size of decompressed websocket frame to prevent memory exhaustion (GHSA-v2v4-45wm-5cr3)
An authenticated relay client using the permessage-deflate websocket
extension could send a small compressed frame that decompresses to an
unbounded amount of data, exhausting all memory and crashing WeeChat.

The output buffer in relay_websocket_inflate is now capped to
WEBSOCKET_INFLATE_MAX_SIZE: frames decompressing beyond this limit are
rejected and the connection is closed.
2026-05-31 09:16:06 +02:00
Sébastien Helleu 4fdcbf8f93 irc: fix description of info "irc_nick_from_host"
This fixes the following warning from xgettext:

src/plugins/irc/irc-info.c:1361: warning: Message contains an embedded email address.  Better move it out of the translatable string, see https://www.gnu.org/software/gettext/manual/html_node/No-embedded-URLs.html
2026-05-30 15:36:26 +02:00
Sébastien Helleu e4b70ad252 core: update translations 2026-05-30 14:00:43 +02:00
Sébastien Helleu d7fd2b7b0b core: define author name/email as constants
This fixes the following compiler warning:

src/core/core-args.c:180: warning: Message contains an embedded email address.  Better move it out of the translatable string, see https://www.gnu.org/software/gettext/manual/html_node/No-embedded-URLs.html
2026-05-30 13:39:45 +02:00
Sébastien Helleu 73cf57742e doc: make pygmentize optional at build time
If pygmentize is not found, the build now emits a CMake warning and
proceeds with an empty dark theme stylesheet rather than aborting.
A non-zero exit from pygmentize is also downgraded from SEND_ERROR to
WARNING for the same reason. This restores the pre-existing behavior
where the documentation could be built without any pygments tooling
installed (Asciidoctor then renders code blocks as plain text).
2026-05-24 18:03:12 +02:00
Sébastien Helleu bf7b8484cd doc: switch syntax highlighting to automatic light/dark theme with bevel on code blocks
Syntax highlighting now follows the user's `prefers-color-scheme`:

- Light theme uses the pygments `default` style, embedded by Asciidoctor as before.
- Dark theme uses the pygments `monokai` style, generated at CMake
  configure time via `pygmentize` and injected into the docinfo through a
  `@PYGMENTS_DARK_CSS@` placeholder, scoped under
  `@media (prefers-color-scheme: dark)`.

To support template substitution, `doc/docinfo.html` is renamed to
`docinfo.html.in` and produced into the build directory via
`configure_file`; all HTML targets now depend on the generated docinfo
and the `docinfodir` attribute points to the binary dir.

Code blocks also gain a subtle 3D bevel:

- `pre` borders use theme-specific bevel colors (`--pre-bevel-light` on
  top/left, `--pre-bevel-dark` on bottom/right) for a raised look in both
  themes.
- A shared `--pre-bevel-bg` surface color is applied to literalblock,
  listingblock and `pre.pygments`, so all code blocks sit on the same
  background regardless of the pygments style.
- `pre { line-height: 1.25 }` is forced to keep line spacing consistent
  between light (Asciidoctor base `1.45`) and dark (pygments `125%`).

`python3-pygments` is added to the documented build dependencies (the
`pygmentize` binary it provides is required at configure time).
2026-05-24 16:46:36 +02:00
weechatter 86f51b66b3 core: update German translations 2026-05-23 21:42:48 +02:00
Sébastien Helleu 1400b6c197 core: add fix of IRC tag in ChangeLog 2026-05-23 13:23:26 +02:00
Sébastien Helleu c71978c0b3 core: fix option weechat.look.color_real_white not applied when color is "white" on 16+ colors terminals (closes #1742) 2026-05-23 12:15:04 +02:00
Sébastien Helleu 4c38ce050b irc, script: display all input actions and in the same way in /list and /script buffers title 2026-05-22 07:56:31 +02:00
Sébastien Helleu 5520ed1950 fset: remove error displayed in core buffer when clicking with the mouse below the last option displayed 2026-05-21 13:55:15 +02:00
Sébastien Helleu ad35aef1f4 core: fix French translations 2026-05-20 21:56:45 +02:00
Sébastien Helleu 88f0070674 irc: fix tag in message with list of tags when joining a channel
The message with list of nicks on the channel has now tag irc_353 instead of
irc_366.
2026-05-20 20:24:06 +02:00
Sébastien Helleu 7683287f71 relay: add "api" protocol in help on options relay.network.password_hash_algo and relay.network.password_hash_iterations 2026-05-20 20:19:30 +02:00
Sébastien Helleu 33adaef85c core: add missing word in French translation of the welcome message 2026-05-20 20:13:26 +02:00
Sébastien Helleu 6f3c804379 core: add missing word in French translation of /help upgrade 2026-05-20 20:12:37 +02:00
Sébastien Helleu 617b4e4dee core: fix option name in French translation of /help buffer 2026-05-20 08:31:55 +02:00
Sébastien Helleu ea1eb76b2d core: fix trailing punctuation in German translation of /help script.look.use_keys 2026-05-17 20:59:07 +02:00
weechatter ad12925d6c core: update German translations 2026-05-13 21:04:45 +02:00
Sébastien Helleu a5fcf898b9 ci: bump poexam to version 0.0.10 2026-05-13 07:43:47 +02:00
Ivan Pešić 14d544be39 core: update Serbian translation (#2318) 2026-05-12 22:40:12 +02:00
Sébastien Helleu 3e994996c6 core: set max curl version to 8.21.0 for symbol CURLAUTH_DIGEST_IE 2026-05-12 13:12:12 +02:00
Sébastien Helleu 3341b9a2d2 core: remove zero width spaces (U+200B) in German translation of /help pipe 2026-05-10 19:28:25 +02:00
Sébastien Helleu 815640b840 relay: add option relay.network.unix_socket_permissions (closes #2317) 2026-05-10 19:22:57 +02:00
Sébastien Helleu acd3d91318 core: fix "Language" field in German translations
Country code is unnecessary: language "de" is equivalent to "de_DE".
2026-05-10 10:04:21 +02:00
Sébastien Helleu ef5f4d8ee6 core: fix "Language-Team" field in gettext file headers 2026-05-10 10:04:19 +02:00
weechatter d40217d1e6 core: update German translations 2026-05-06 15:59:20 +02:00
Sébastien Helleu 17b593325a core: complete /help away by mentioning the option irc.look.display_away 2026-05-04 18:47:04 +02:00
weechatter 3456e848da core: update German translations 2026-04-30 14:33:33 +02:00
Sébastien Helleu 723232ac35 ci: bump Lua from 5.3 to 5.4 2026-04-30 00:17:54 +02:00
Sébastien Helleu 5f5f9f35e7 debian: bump Lua from 5.3 to 5.4 2026-04-30 00:17:23 +02:00
Sébastien Helleu 86a6c4f5ff debian: remove patch for build of Debian packages on Ubuntu Focal 2026-04-29 23:58:22 +02:00
Sébastien Helleu 3082c2e4e5 core: add condition on connected relay api clients in default value of option weechat.look.hotlist_add_conditions 2026-04-28 21:30:51 +02:00
Sébastien Helleu 062109e33d relay: add protocol "api" in description of info "relay_client_count" 2026-04-28 21:22:38 +02:00
Sébastien Helleu fd88c9a45b relay: remove protocols from the plugin description 2026-04-28 21:19:10 +02:00
Sébastien Helleu a8c4d5604e ci: bump poexam to version 0.0.9 2026-04-16 20:32:06 +02:00
Emir SARI ef4c657157 core: update Turkish translations
Signed-off-by: Emir SARI <emir_sari@icloud.com>
2026-04-15 13:20:06 +02:00
Sébastien Helleu 0c29e5a630 core: fix possible integer truncation in functions eval_string_cut and eval_string_repeat 2026-04-10 21:48:56 +02:00
Sébastien Helleu 77a0dbfd44 core: remove dead code 2026-04-10 21:48:37 +02:00
weechatter afa42ec851 core: update German translations 2026-04-06 11:29:02 +02:00
Sébastien Helleu 8da86431da logger: fix file size example in /help logger.file.rotation_size_max 2026-04-05 21:50:41 +02:00
Sébastien Helleu 3d7f988973 core: use util functions to parse integers in bar functions 2026-04-05 16:53:05 +02:00
Sébastien Helleu 5ed21d7dad core: use util functions to parse integers in gui curses functions 2026-04-05 15:33:33 +02:00
Sébastien Helleu 54eff44d74 core: check error ERANGE after call to strtoul in function util_version_number 2026-04-05 15:33:33 +02:00
Sébastien Helleu 83d760deae core: check error ERANGE after call to strtoull in function util_parse_delay 2026-04-05 15:33:33 +02:00
Sébastien Helleu 5147b19e51 core: use function util_parse_longlong in function util_parse_time 2026-04-05 15:33:33 +02:00
Sébastien Helleu 50959eeb01 core: use function util_parse_longlong in upgrade functions 2026-04-05 15:33:33 +02:00
Sébastien Helleu ac2ed69c0b core: use function util_parse_longlong in function sys_setrlimit 2026-04-05 15:33:33 +02:00
Sébastien Helleu 2f7f707df0 core: use function util_parse_longlong in function string_parse_size 2026-04-05 15:33:33 +02:00
Sébastien Helleu 94e5de4836 core: use function util_parse_int in function string_get_priority_and_name 2026-04-05 15:33:33 +02:00
Sébastien Helleu 38f9a5587f core: use util functions to parse integers in function network_connect_child_read_cb 2026-04-05 15:33:33 +02:00
Sébastien Helleu 6432711798 core: use util functions to parse integers in hook functions 2026-04-05 15:33:33 +02:00
Sébastien Helleu 81c23a5134 core: use util functions to parse integers in hdata functions 2026-04-05 15:33:33 +02:00
Sébastien Helleu 6336c22293 core: use util functions to parse integers in eval functions 2026-04-05 15:33:33 +02:00
Sébastien Helleu 6658122b03 core: use util functions to parse integers in config functions 2026-04-05 15:33:33 +02:00
Sébastien Helleu 7e8f8b5178 core: use util functions to parse integers in core commands 2026-04-05 15:33:33 +02:00
Sébastien Helleu d00e334738 core: add missing non-breaking spaces in French translations 2026-04-05 09:58:44 +02:00
Sébastien Helleu f48b0bae2e core: fix URL in /help relay.network.websocket_allowed_origins (Polish) 2026-04-02 19:59:25 +02:00
Sébastien Helleu d3d18cd4c2 core: add missing double quotes in /help relay.network.websocket_allowed_origins (German) 2026-04-02 19:30:28 +02:00
Sébastien Helleu cead39b52f core: add /mute in default command for key alt+"=" (toggle filters)
Since v4.8.0 and commit d0298b4738, toggling
filters with `/filter toggle` displays a message on core buffer.

This is OK when running the command manually, but not when pressing the key
alt+"=".
2026-03-31 19:12:46 +02:00
Emil Velikov 7d88e53182 Bump required zstd to v1.4.0
Bump the requirement to v1.4.0, which means we can remove all the ifdef
guards.

It was released over 6 years ago, with latest release being 1.5.7.

The oldest distributions we target Ubuntu 20.04 and Debian Bullseye,
have 1.4.4 and 1.4.8 respectively.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2026-03-29 18:39:02 +02:00
Luc Schrijvers 8fe741e057 Build fix for Haiku 2026-03-29 18:31:27 +02:00
LuK1337 b6ef936cca cmake: enable position independent code (PIE)
Fixes the following build error when compiling Fedora 45 RPM:

/usr/bin/ld.bfd: tests/unit/CMakeFiles/tests.dir/tests.cpp.o: relocation R_X86_64_32 against `.rodata' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld.bfd: failed to set dynamic section sizes: bad value
collect2: error: ld returned 1 exit status

See: https://cmake.org/cmake/help/latest/prop_tgt/POSITION_INDEPENDENT_CODE.html
     https://cmake.org/cmake/help/latest/policy/CMP0083.html
2026-03-29 18:28:48 +02:00
Sébastien Helleu 7c2bae9faf ci: add tests with Fedora 43 2026-03-29 12:36:30 +02:00
Sébastien Helleu 2b48eba784 Version 4.10.0-dev 2026-03-29 10:24:55 +02:00
Sébastien Helleu 5969f9faf6 Version 4.9.0 2026-03-29 10:20:23 +02:00
Sébastien Helleu b70b484f5f debian: update changelog 2026-03-28 22:31:27 +01:00
Sébastien Helleu b250d71608 debian: remove redundant priority optional field from control 2026-03-28 22:29:00 +01:00
Sébastien Helleu 94457f8313 debian: bump Standards-Version to 4.7.3 2026-03-28 22:27:09 +01:00
Sébastien Helleu 0cd0e7be6a core: remove link to Diaspora* from README 2026-03-27 19:22:37 +01:00
Sébastien Helleu 2ececc1184 core: remove link to Slant from README 2026-03-27 19:21:55 +01:00
Sébastien Helleu b8bef1c3e1 irc: fix display of CTCP query sent multiple times to the same user when capability echo-message is enabled (closes #2309) 2026-03-27 18:32:31 +01:00
Sébastien Helleu d9e56c3df8 ci: add check of gettext files with poexam 2026-03-25 21:49:02 +01:00
Emir SARI dc28050b8b core: update Turkish translations 2026-03-25 08:46:52 +01:00
Sébastien Helleu f53e7fb9ef core, plugins: fix typos in comments on functions, use imperative 2026-03-23 20:45:36 +01:00
Sébastien Helleu d34eb40187 core: set max curl version to 8.20.0 for RTMP symbols
rtmp support has been dropped in curl, see:
https://github.com/curl/curl/commit/ceae02db040de3cf7ae4c3f8ec99e8286b568c2e
2026-03-21 17:59:48 +01:00
Sébastien Helleu 2cbbb677f3 core: replace "motdepasse" by "mot_de_passe" in French translations and docs 2026-03-21 17:30:12 +01:00
Sébastien Helleu f7267bc992 core: replace "mypassword" by "my_password" in /help secure 2026-03-21 17:27:02 +01:00
Sébastien Helleu 147d5b3f88 core: replace "mynick" by "andrew" in /help secure 2026-03-21 17:22:20 +01:00
Sébastien Helleu da4881959e core: replace "proxyname" by "proxy_name" in /help proxy 2026-03-21 13:28:38 +01:00
Sébastien Helleu 5e963c7546 core: replace "barname" by "bar_name" in /help bar 2026-03-21 13:23:55 +01:00
Sébastien Helleu 41d8e06394 ci: fix branch for Homebrew/actions/setup-homebrew 2026-03-21 12:01:08 +01:00
Sébastien Helleu 52d1245bad ci: bump actions/checkout to v6 2026-03-21 11:46:30 +01:00
Sébastien Helleu 961dc515a0 ci: add new job "checks" to check gettext files, shell and Python scripts, Python stub file and Curl symbols 2026-03-21 11:44:24 +01:00
Sébastien Helleu 73ec7c0641 ci: reorder and rename jobs 2026-03-21 11:28:11 +01:00
Sébastien Helleu c60a5fde14 ci: remove temporary fix for brew install 2026-03-21 10:15:14 +01:00
Eli Schwartz 0bbae498c9 python: fix archaic and soft-deprecated use of raw cmake vars
In commit 9a9a262ea1 we moved from
pkg-config to find_package() to work around a deficiency in the pkgsrc
package manager, which does not ship pkg-config files as intended by
CPython.

Modern CMake discourages use of "FOO_LIBRARIES" in all cases, when
imported "interface" libraries can and should be used instead. The meson
equivalent is `dependency()` versus `cc.find_library()`, so this is
certainly a general trend among modern build systems.

An imported interface target, such as the previous PkgConfig::PYTHON,
carries with it the various internal properties such as DEFINITIONS,
INCLUDE_DIRS, or LIBRARIES, and batch applies them. It also avoids
leaking across cmake 2.x style whole-directory scopes.

Use the documented cmake imported interface target for embedding Python
and avoid `add_definitions(${Python_DEFINITIONS})` and similar. As a
bonus, it's also shorter and more concise.

Fixes: 9a9a262ea1
Fixes: https://github.com/weechat/weechat/pull/2251
Signed-off-by: Eli Schwartz <eschwartz@gentoo.org>
2026-03-21 08:53:48 +01:00
Eli Schwartz 4c79e870af python: fix broken usage of FindPython.cmake breaking python selection
In commit 9a9a262ea1 we moved from
pkg-config to find_package() to work around a deficiency in the pkgsrc
package manager, which does not ship pkg-config files as intended by
CPython. In the process, Gentoo and other platforms that, unlike pkgsrc,
publicly support multiple versions of python installed in parallel, had
python version selection broken. Consequently, weechat linked to the
wrong python, which happened to be installed in build chroots but was
not the versioned python package that the weechat package listed as a
dependency. Attempting to install weechat then broke on some systems
(which installed one version of python as a dependency but actually
linked to a totally different one).

This happens due to a design bug in upstream CMake. It is never
conceptually reasonable to use

```
find_package(Python COMPONENTS ...)
```

and omit the "Interpreter" component; if you do, CMake will ignore its
own documentation on how to control the build to use a specific python,
and choose one randomly (== "latest version available"). If, and only
if, the Interpreter component is checked, the development headers /
libraries for python will be guaranteed consistent with the documented
lookup variables from FindPython.cmake's documentation.

Bug: https://bugs.gentoo.org/968814
Fixes: 9a9a262ea1
Fixes: https://github.com/weechat/weechat/pull/2251
Signed-off-by: Eli Schwartz <eschwartz@gentoo.org>
2026-03-21 08:29:54 +01:00
weechatter dc4df8b9aa core: update German translations 2026-03-19 11:10:26 +01:00
Sébastien Helleu 6bc11571b5 xfer: evaluate option xfer.network.own_ip 2026-03-18 18:26:06 +01:00
Sébastien Helleu d1b71a8562 core: fix typo in German translation 2026-03-17 23:26:27 +01:00
weechatter 19a6591410 core: update German translations 2026-03-17 16:28:04 +01:00
Sébastien Helleu 25e0809c55 doc/user: fix French translation of title 2026-03-16 21:20:51 +01:00
Sébastien Helleu e8d0399623 irc: fix translations of /help irc.look.list_buffer_sort 2026-03-16 13:23:52 +01:00
Sébastien Helleu c41d73e417 irc: fix typo on field name in /help irc.look.list_buffer_sort 2026-03-16 13:16:44 +01:00
Sébastien Helleu 1532efea6d core: fix style in ChangeLog 2026-03-14 00:12:17 +01:00
Sébastien Helleu 9bf2d51493 core: add option -e to evaluate all commands before executing them in command /eval 2026-03-14 00:03:27 +01:00
Sébastien Helleu 27ae6ca789 core: fix crash with /eval when the current buffer is closed in a command 2026-03-13 23:11:00 +01:00
Sébastien Helleu 916c59d8f0 doc/faq: fix key to search text in current buffer
Since WeeChat 4.2.0, Ctrl+r has been replaced by Ctrl+s.
2026-03-13 21:57:12 +01:00
Sébastien Helleu 37bdf6586b core: remove extra pipe in German translation 2026-03-12 20:38:54 +01:00
Sébastien Helleu 13e9381e19 core: fix typo in French translation: "repertoire" -> "répertoire" 2026-03-12 20:31:40 +01:00
Sébastien Helleu b94e4af67e core: fix typo in French translation: "attentus" -> "attendus" 2026-03-12 20:29:51 +01:00
Sébastien Helleu 431d9ad64a irc: fix typo: "acknowledgement" -> "acknowledgment" 2026-03-12 20:26:22 +01:00
Sébastien Helleu f5bbe35cfb irc, relay: replace "cancelled" by "canceled" in auto-reconnection message 2026-03-12 20:24:53 +01:00
Sébastien Helleu b82ce33c6c core: fix quotes in upgrade error message 2026-03-12 20:16:49 +01:00
Sébastien Helleu 87a683ebdb typing: add option typing.look.item_text (closes #2305) 2026-03-09 23:58:11 +01:00
Sébastien Helleu f048ea9eac relay: add missing info in French translation of /help relay 2026-03-09 23:31:19 +01:00
Sébastien Helleu fc0fb05ec0 irc: add missing angle brackets in French translation of /help cycle and /help part 2026-03-09 23:28:26 +01:00
Sébastien Helleu 835e0b9549 irc: replace simple by double quotes in French translation of /help server 2026-03-09 23:25:56 +01:00
Sébastien Helleu 507f172dae fset: fix French help on parameter "-format" in /help fset 2026-03-09 23:24:39 +01:00
Sébastien Helleu fc595afd08 irc: add missing double quotes in French error message 2026-03-09 23:21:54 +01:00
Sébastien Helleu 2f5305dc82 core: fix French translation of /help upgrade 2026-03-09 23:17:21 +01:00
Sébastien Helleu 9f2b9c4ea9 core: fix double quote in French output of /sys get rlimit 2026-03-09 23:15:11 +01:00
Sébastien Helleu aea8421e49 core: add missing "(by default)" in French translation of /help weechat.look.buffer_position 2026-03-09 23:11:09 +01:00
Sébastien Helleu 81834c45ae core: add missing "raw" parameter in French translation of /help window 2026-03-09 23:07:03 +01:00
Sébastien Helleu 01d2887b13 core: replace ellipsis by "etc." in /help secure 2026-03-09 23:01:29 +01:00
Sébastien Helleu 8b30d9a7d7 core: add missing double quotes in French translation of /help secure 2026-03-09 22:59:02 +01:00
Sébastien Helleu 92327871d2 core: add missing info in French translation of /help secure 2026-03-09 22:57:17 +01:00
Sébastien Helleu b2556f99f4 core: add missing key context "default" in French translations 2026-03-09 22:54:48 +01:00
Sébastien Helleu ec6372f4df core: add missing double quote in /help hotlist 2026-03-09 22:51:20 +01:00
Sébastien Helleu abb74ac178 core: add missing double quote in French translation of /help buffer 2026-03-09 22:47:46 +01:00
Sébastien Helleu 71329fd595 core: remove double quotes around buffer number in error message 2026-03-09 22:45:30 +01:00
Sébastien Helleu 106fe6ca7c core: update copyright dates 2026-03-08 10:37:15 +01:00
Sébastien Helleu 630f2e2e7c core: translate command line options separately in output of weechat --help 2026-03-08 09:10:29 +01:00
Sébastien Helleu eb0b01f62a core: move functions on command-line arguments to a separate source 2026-03-07 12:47:11 +01:00
Sébastien Helleu fb00b7055c core: add "noqa" on Japanese translation reusing multiple times the same format string 2026-03-07 09:09:11 +01:00
Sébastien Helleu 58b1f5c62b core: add "noqa" on Polish translations where extra backslashes are used 2026-03-07 09:08:37 +01:00
Sébastien Helleu d663070b02 core: fix punctuation errors in translations 2026-03-07 08:56:19 +01:00
Sébastien Helleu 8ff7d63744 core: fix "noqa" markers in Turkish translations 2026-03-07 08:55:27 +01:00
Sébastien Helleu 5eb3bca47b core: add version 4.8.2 2026-03-07 08:19:52 +01:00
Sébastien Helleu d0478bdc04 core: update copyright date 2026-03-07 00:02:34 +01:00
Krzysztof Korościk d7fc65e282 doc: updated Polish translation 2026-03-06 21:56:05 +01:00
Krzysztof Korościk 0d737349be core: updated Polish translation 2026-03-04 23:50:47 +01:00
Sébastien Helleu dc94251b33 core: disable "fuzzing" phase in schemathesis config 2026-02-21 21:40:58 +01:00
Sébastien Helleu 306155aa48 relay/api: fix memory leak in receive of message from remote WeeChat 2026-02-16 18:57:14 +01:00
Sébastien Helleu 238f8cbc7e relay/api: fix memory leaks in resources "ping" and "sync" 2026-02-16 18:33:03 +01:00
Sébastien Helleu fa043644cb core: add missing pipes in translations 2026-02-09 21:37:22 +01:00
Sébastien Helleu e06b3c1d7e core: add missing closing parenthesis in /help buflist 2026-02-07 22:09:16 +01:00
Sébastien Helleu 5b052532ec core: remove double spaces in translations 2026-02-07 21:55:49 +01:00
Sébastien Helleu 18bce9e8c4 core: remove trailing backslash in German translation of /help buflist.look.add_newline 2026-02-04 23:06:22 +01:00
Sébastien Helleu 886042a875 core: replace real tab by \t in German translation of /help filter
This was causing a display issue because the tab char is used to separate
prefix from message.
2026-02-04 23:05:00 +01:00
Sébastien Helleu fca4ee28e0 core: update German translations 2026-02-04 23:00:48 +01:00
Emil Velikov 7c37eced93 cmake: plugins: remove no longer used include()s
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2026-02-04 22:21:26 +01:00
Emil Velikov a413d16038 cmake: plugins: simplify dependency handling
Move the requirement checks within the respective plugin cmakefile.
Use REQUIRED instead of the manual FOUND check and error handling.

Note: the tcl check was only moved, since using REQUIRED  explodes in
CI.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2026-02-04 22:21:26 +01:00
Emil Velikov 440907e1cd cmake: simplify tests handling
Move the requirement checking and the dummy test where they are used.
Use REQUIRED instead of the manual FOUND check and error handling.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2026-02-04 22:21:26 +01:00
Emil Velikov cb08473bdc cmake: remove explicit fPIC handling
With CMP0083 introduced with cmake 3.14, as we set the variable
CMAKE_POSITION_INDEPENDENT_CODE we can rely on the build system to do
the correct thing, across all the targets.

Since we require 3.18 (or 3.16 in the patched Debian/Ubuntu version),
which sets the policy to NEW we're all set.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2026-02-04 22:21:26 +01:00
Emil Velikov 71ef7e286c cmake: remove implicitly enabled cmake policy handling
Whenever cmake_minimum_required() is used, all the policies available in
the specified version are toggled to NEW. Thus we no longer need to
manually change them.

The highest policy - CMP0017 - has been around circa cmake 2.8.4, while
we require 3.x.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2026-02-04 22:21:26 +01:00
Emil Velikov 2a234b3bfe cmake: reuse CMAKE_DL_LIBS
The token has been available since cmake 3.0 (at least), so might as
well use it instead of our ad-hoc check.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2026-02-04 22:21:26 +01:00
Emil Velikov 6442b938eb cmake: move zstd/cjson include handling
Move the respective include_directories() stansas to the top-level
cmakefile. While this technically adds them to targets where they are
not needed, there is no harm is having them.

This maskes the find_dependency/use_includes/use_libs more consistent
across the board and helps it stand out where it's forgotten. Fixes for
which will be coming at a later date.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2026-02-04 22:21:26 +01:00
Emil Velikov c8d2b4448a cmake: inline a few variables as needed
Avoid creating/appending variables and effectively deviating from the
style used across the project.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2026-02-04 22:21:26 +01:00
Emil Velikov 3918efd8e9 cmake: remove CMAKE_REQUIRED_* instances
The tcl ones has not been required for over a decade since commit
ffdba5b24 ("Remove check of Tcl_CreateNamespace in cmake build (not used
any more) (bug #27119)").

While the top-level one, with the EXTRA_LIBS reshuffle/consolidation a
few commits ago.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2026-02-04 22:21:26 +01:00
Emil Velikov 4decd2c386 cmake: remove Darwin/resolv quirks
Since commit e98a32373 ("core: check if res_init requires linking with
libresolv") we detect if/when we should be linking against libresolv.

The detection seems a bit clunky (to me), although it's better to keep
things consolidated/consistent across tree. Swap the Darwin checks with
the new token LIBRESOLV_HAS_RES_INIT.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2026-02-04 22:21:26 +01:00
Emil Velikov 323ab8810e cmake: consolidate non-linux library handling
Move the handling to the top-level, adding it _once_ to EXTRA_LIBS.
Thus avoiding some duplication across the board.

Note that final handling varies a bit, namely:
 - OpenBSD/intl should be handled via the existing cmake/FindGettext.cmake
 - Darwin/resolv should not be needed since commit e98a32373 ("core: check
   if res_init requires linking with libresolv")
 - the backtrace/execinfo handling has been consolidated and moved

In the unlikely case of unwanted over-linking, the platforms can add
`-Wl,--as-needed` to their linker flags. Something which is strongly
encouraged and has been the default across multiple (linux) distros for
years.

Alternatively, if move quirks are needed they should be handled in a
single place.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2026-02-04 22:21:26 +01:00
Emil Velikov fc6003c74e cmake: consolidate libm library handling
Move the handling to the top-level, adding it _once_ to EXTRA_LIBS.
Thus avoiding some duplication across the board.

This change technically adds an extra link for the unit tests, which
seemingly was omitted by mistake. Alternatively, the extra over-linking
won't be an issue in practise.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2026-02-04 22:21:26 +01:00
Emil Velikov ae54c3ef65 cmake: consolidate iconv/gettext library handling
Move the handling to the top-level, adding it _once_ to EXTRA_LIBS.
Thus avoiding some duplication across the board.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2026-02-04 22:21:25 +01:00
Emil Velikov b38c00bb0d cmake: consolidate zlib/zstd library handling
Move the handling to the top-level, adding it _once_ to EXTRA_LIBS.
Thus avoiding some duplication across the board.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2026-02-04 22:21:25 +01:00
Emil Velikov 20a7affb70 cmake: remove unnecessary add_dependencies()
In a handful of places we explicitly use add_dependencies() where the
exact same libraries are also (implicitly) added as dependencies via
target_link_libraries().

Remove the folder, which helps us remove some duplication with follow-up
patches.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2026-02-04 22:21:25 +01:00
Ivan Pešić 150e6ecd82 core: update Serbian translation 2026-02-03 13:46:22 +01:00
weechatter 87ef578ad2 core: update German translations 2026-02-03 10:59:40 +01:00
Sébastien Helleu ef5f197a4a irc: fix unit of server option anti_flood from seconds to milliseconds in output of /server listfull 2026-01-30 13:49:23 +01:00
Sébastien Helleu 250db946b0 core: fix typos in French translation of /help weechat.look.hotlist_add_conditions 2026-01-21 21:23:02 +01:00
Sébastien Helleu f0160bf5ab core: add missing context in English message when a key is added with /key missing 2026-01-21 20:53:25 +01:00
Sébastien Helleu 7d51a1331b core: fix typos in /help allchan, /help allpv and /help allserv 2026-01-21 20:38:37 +01:00
Sébastien Helleu 22b335ce86 core: fix typo in /help help 2026-01-21 20:28:07 +01:00
Sébastien Helleu f26f73f283 core: fix line wrapping in German translations 2026-01-21 20:24:55 +01:00
Sébastien Helleu 323c9e2bfe core: remove obsolete comments in Polish translations 2026-01-21 20:24:42 +01:00
Sébastien Helleu 894df0e9e6 core: fix typo in French translation of /help remote 2026-01-19 23:56:32 +01:00
Sébastien Helleu ead76532de core: fix typo in French and Polish translations of /help exec 2026-01-19 23:54:10 +01:00
Sébastien Helleu da2f506f2e core: fix typo in French and Serbian translations of /help plugin 2026-01-19 23:46:46 +01:00
Sébastien Helleu e42e811c95 core: fix typo in French translation of /help filter 2026-01-19 23:39:16 +01:00
Sébastien Helleu 889450fb31 core: fix typos in translations of /help buffer 2026-01-16 13:41:30 +01:00
Ivan Pešić 3c11e09c30 core/doc: update Serbian translation 2026-01-16 13:39:36 +01:00
Sébastien Helleu 616daecdd0 core: fix typos in French translations 2025-12-21 12:07:50 +01:00
Sébastien Helleu 9b4fd66de7 irc: ignore self join if the channel is already joined (closes #2291)
There is an issue with some IRC servers that may send a JOIN with self nick
once already on the channel, this results in a clear of the nicklist on the
second JOIN received.

This fix silently ignores the second self JOIN if the channel is already
joined (with at least one nick).
2025-12-14 14:29:47 +01:00
Sébastien Helleu b42f7a400e ci: remove useless install of msgcheck in CodeQL analysis 2025-12-07 16:24:14 +01:00
Sébastien Helleu 9e814860ae ci: switch from bandit/flake8/pylint to ruff in CI for Python scripts 2025-12-07 16:24:14 +01:00
Sébastien Helleu a2a71b4d33 tests: improve concatenation of Python lists 2025-12-07 09:37:40 +01:00
weechatter 7d6b8f6943 core: update German translations 2025-12-06 00:33:30 +01:00
Krzysztof Korościk 3b4a5bbb09 core: updated Polish translation 2025-12-02 21:49:13 +01:00
Krzysztof Korościk 58b7ec59e9 core: updated Polish translation 2025-12-02 00:59:57 +01:00
Sébastien Helleu 518b9ab381 core: add version 4.8.1 2025-12-01 20:17:07 +01:00
Sébastien Helleu a9e48d33c6 core: add IRC SASL EXTERNAL in upgrade guidelines for version 4.8.0 2025-12-01 18:01:33 +01:00
Sébastien Helleu 1ff001994c irc: fix creation of irc.msgbuffer option without a server name
The regression was introduced by commit
1b669cd13c, which allowed a server name with
upper case but rejected a name or alias with upper case.

This commit fixed the creation of the option when the server name is not given,
so this command works again:

  /set irc.msgbuffer.whois current
2025-12-01 07:48:58 +01:00
Sébastien Helleu 234a37df6f ci: add build with type "Release" and gcc hardened options in matrix 2025-11-30 13:53:44 +01:00
Sébastien Helleu 6bcc6ef65f core: update ChangeLog (issue #2289) 2025-11-30 13:34:05 +01:00
Sébastien Helleu d5e6c94246 core: fix compiler warning on possible buffer overflow in function util_parse_time (closes #2289) 2025-11-30 11:21:42 +01:00
Sébastien Helleu 63b6dee311 core: fix order of sections in ChangeLog 2025-11-30 09:16:42 +01:00
Sébastien Helleu 34697cf5ce Version 4.9.0-dev 2025-11-30 09:11:53 +01:00
Sébastien Helleu 2534976281 Version 4.8.0 2025-11-30 09:09:35 +01:00
Sébastien Helleu c3f2252385 core: add missing links to upgrade guidelines in ChangeLog 2025-11-30 09:00:26 +01:00
Sébastien Helleu 83e3e6973c debian: update changelog 2025-11-30 08:32:23 +01:00
Sébastien Helleu c56389d12e debian: update watch to version 5 2025-11-30 08:29:10 +01:00
Sébastien Helleu 12717ff689 core: add upgrade guidelines for version 4.8.0 2025-11-30 08:23:56 +01:00
Sébastien Helleu d8569ffe27 buflist: add variable ${index_displayed} 2025-11-28 18:45:22 +01:00
Sébastien Helleu 62c99f8938 core: update translations 2025-11-28 18:40:59 +01:00
Sébastien Helleu a3f733d29a core: fix styles in ChangeLog 2025-11-28 17:36:30 +01:00
Ivan Pešić c9c402d202 core/doc: update Serbian translation 2025-11-24 11:40:36 +01:00
Krzysztof Korościk 7ce1e8c05f core: updated Polish translation 2025-11-24 00:16:02 +01:00
Krzysztof Korościk 0be2d45f6a doc: updated Polish translations 2025-11-23 23:58:06 +01:00
Sébastien Helleu 4e0cc14b79 ci: disable schemathesis output sanitization 2025-11-23 15:01:34 +01:00
Sébastien Helleu c18d8ecc1d core: add version 4.7.2 2025-11-23 14:17:25 +01:00
Sébastien Helleu dd454dfc50 tests: merge tests of buffer set functions into gui_buffer_set 2025-11-23 10:36:21 +01:00
Sébastien Helleu 1f0d8d3849 core: add condition on new_tags in functions gui_buffer_set_highlight_tags_restrict and gui_buffer_set_highlight_tags 2025-11-23 10:36:21 +01:00
Sébastien Helleu c248aa42ce core: simplify code in gui_buffer_set functions 2025-11-23 10:36:21 +01:00
Sébastien Helleu 2832ef333e core: do not add/remove highlight words if value is empty in call to gui_buffer_set() 2025-11-23 10:36:21 +01:00
Sébastien Helleu 5543bc236b tests: add tests on gui buffer set functions 2025-11-23 10:35:43 +01:00
Sébastien Helleu 953ede1200 irc: add tags "irc_cap" and "log3" in client capability request and SASL not supported messages 2025-11-22 16:00:32 +01:00
Sébastien Helleu c2ff484995 core, irc, relay: add tag "tls" in gnutls messages 2025-11-22 14:52:02 +01:00
Sébastien Helleu b8048b1666 irc: fix reset of color when multiple modes are set with command /mode 2025-11-22 12:31:37 +01:00
Sébastien Helleu e33ed57b47 irc: fix colors in MODE message (issue #2286) 2025-11-22 10:32:44 +01:00
Sébastien Helleu 790ce13843 tests: add colors in username for tests of messages 367 and 728 2025-11-22 10:32:44 +01:00
Emir SARI 4ecf2cb6b8 Update Turkish translations
Signed-off-by: Emir SARI <emir_sari@icloud.com>
2025-11-22 10:14:22 +01:00
Sébastien Helleu d23a7a6105 irc: fix colors in ban mask (message 367) and quiet mask (message 728) (closes #2286) 2025-11-22 10:02:47 +01:00
Sébastien Helleu da12df6b73 core: free highlight_disable_regex if the regex is invalid in function gui_buffer_set_highlight_disable_regex 2025-11-18 22:27:15 +01:00
Sébastien Helleu 3176e2a6b7 core: free highlight_regex if the regex is invalid in function gui_buffer_set_highlight_regex 2025-11-18 22:27:15 +01:00
Sébastien Helleu 4555f9a58a core: fix typo in comment 2025-11-15 20:15:32 +01:00
Sébastien Helleu e261cadce3 doc/api: add "error_code" and "error_code_pthread" in hook_url output hashtable (issue #2284) 2025-11-15 17:29:08 +01:00
Sébastien Helleu 3e49b73117 api: fix file descriptor leak in hook_url (closes #2284)
This can happen after a timeout or if the hook is removed during the transfer.
2025-11-15 17:28:44 +01:00
Sébastien Helleu 898213b4f2 relay/api: return HTTP error 400 in case of invalid body in resource ping 2025-11-13 20:35:58 +01:00
Sébastien Helleu e6646d1ef1 relay/api: return HTTP error 404 instead of 400 when the buffer is not found in resources completion and input 2025-11-13 07:12:55 +01:00
Sébastien Helleu 69d47b68f5 core: update ChangeLog 2025-11-13 07:08:23 +01:00
Sébastien Helleu 48d2c5fd01 core: update translations 2025-11-12 20:44:24 +01:00
Sébastien Helleu 1c53d3d466 api: add functions to parse integer numbers
New functions:

- util_parse_int
- util_parse_long
- util_parse_longlong
2025-11-12 20:24:00 +01:00
Sébastien Helleu 4ab11b7705 tests: add unit tests on command /window 2025-11-12 20:20:04 +01:00
Sébastien Helleu 8032ca1433 core: display an error message in case of invalid size with commands /window splith and /window splitv 2025-11-12 07:26:01 +01:00
Sébastien Helleu ac69288ed7 core: display an error message in case of invalid size with command /window resize 2025-11-12 07:22:12 +01:00
Sébastien Helleu 0930976456 core: display an error if parameters are missing in command /window resize 2025-11-12 07:18:06 +01:00
Sébastien Helleu d5bfe35245 core: display an error if parameters are missing or if the buffer is not with "free content" in command /window scroll_horiz 2025-11-12 07:12:00 +01:00
Sébastien Helleu 90a42ee213 core: display an error if parameters are missing in command /window scroll 2025-11-12 07:08:33 +01:00
Sébastien Helleu 6981f9f204 core: display an error message if the window number is not found with command /window xxx -window N 2025-11-12 07:05:56 +01:00
Sébastien Helleu b9f1145d03 core: fix screen size in macro getmaxyx when using fake ncurses 2025-11-12 13:45:27 +01:00
Sébastien Helleu f3a8068109 core: fix use of window->coords by checking size of array before using it 2025-11-12 13:45:27 +01:00
Sébastien Helleu 1ffc96955e tests: add unit tests on command /sys 2025-11-12 13:45:27 +01:00
Sébastien Helleu 8316745061 tests: add unit tests on command /repeat 2025-11-12 13:45:27 +01:00
Sébastien Helleu b18190b4c0 doc/quickstart: add link to key bindings in user's guide 2025-11-12 13:35:52 +01:00
Sébastien Helleu 753475f530 tests: add unit tests on command /proxy 2025-11-11 11:27:34 +01:00
Sébastien Helleu 237b07575b core: fix typo in comment 2025-11-11 10:57:51 +01:00
Sébastien Helleu dacd29b1d7 tests: add unit tests on command /print 2025-11-11 10:57:51 +01:00
Sébastien Helleu cfcadd155d core: display an error message if the date can not be parsed with command /print -date 2025-11-11 10:41:55 +01:00
Sébastien Helleu e5285c5545 tests: remove duplicate test 2025-11-11 10:39:30 +01:00
Sébastien Helleu 538b95d405 core: fix typo in French translation of /help debug 2025-11-10 20:54:30 +01:00
Sébastien Helleu 1bfd744249 tests: add unit tests on command /hotlist 2025-11-10 20:48:24 +01:00
Sébastien Helleu cd20c0e843 tests: add unit tests on command /history 2025-11-10 15:06:44 +01:00
Sébastien Helleu 16245f44ae tests: add unit tests on command /help 2025-11-10 15:06:44 +01:00
Sébastien Helleu 2f8393d504 tests: add unit tests on command /filter 2025-11-10 15:06:44 +01:00
Sébastien Helleu d0298b4738 core: display a message with command /filter toggle
The command has now the same output as `/filter enable` or `/filter disable`:

  /filter toggle  =>  "Message filtering disabled"
  /filter toggle  =>  "Message filtering enabled"
2025-11-10 15:06:44 +01:00
Sébastien Helleu c34d26dd70 tests: add unit tests on command /eval 2025-11-10 15:06:44 +01:00
Sébastien Helleu 96e225ac39 tests: add unit tests on command /debug 2025-11-10 15:06:44 +01:00
Sébastien Helleu e570d76c53 tests: add macros to search messages using a regex 2025-11-10 15:06:44 +01:00
Sébastien Helleu 5f0eebc0df tests: add a function to search a message displayed with a regex 2025-11-10 15:06:44 +01:00
Sébastien Helleu 3a3dec985d tests: add missing include of string.h 2025-11-10 13:39:03 +01:00
Sébastien Helleu 7051dd4351 tests: add unit tests on command /cursor 2025-11-10 09:05:36 +01:00
Sébastien Helleu c0116febe5 core: display an error message in case of invalid parameters with command /cursor 2025-11-10 09:05:36 +01:00
Sébastien Helleu 1094e70de2 tests: add unit tests on command /command 2025-11-10 09:04:13 +01:00
Sébastien Helleu 08545facb6 tests: add unit tests on command /color 2025-11-10 09:04:13 +01:00
Sébastien Helleu 2c4ede614e tests: add unit tests on command /buffer 2025-11-10 09:04:13 +01:00
Sébastien Helleu 8c6e6bb383 core: display full buffer name in output of command /buffer listvar 2025-11-10 09:04:13 +01:00
Sébastien Helleu c9d4dd48a0 core: display an error message if the buffer is not found with command /buffer listvar 2025-11-10 09:04:13 +01:00
Sébastien Helleu af41184889 core: fix return code of command /buffer renumber when the start number is invalid 2025-11-10 09:04:13 +01:00
Sébastien Helleu a89d5302fd tests: add unit tests on command /bar 2025-11-10 09:04:13 +01:00
Sébastien Helleu b61dca7d2d tests: add unit tests on command /allbuf 2025-11-10 09:04:13 +01:00
Sébastien Helleu 4232123ca3 tests: add macros to test errors with commands 2025-11-10 09:04:13 +01:00
Sébastien Helleu 6d7dd46015 core: display an error message if the bar is not found with command /bar scroll 2025-11-10 09:04:13 +01:00
Sébastien Helleu 93c0ee57c8 plugins: move description of weechat-plugin.h below the copyright and license 2025-11-09 13:02:08 +01:00
weechatter 5433d25889 doc: update German documentation 2025-11-09 11:23:44 +01:00
weechatter 3ed6726625 core: update German translations 2025-11-09 11:01:20 +01:00
Sébastien Helleu 8143d44e44 buflist: replace hardcoded "buflist" by constant in error message 2025-11-01 16:10:11 +01:00
Sébastien Helleu 0dab9b9257 irc: display a warning for each unknown or invalid server option in commands /connect and /server 2025-11-01 16:02:53 +01:00
Sébastien Helleu 07ef353b1b irc: remove temporary servers and option irc.look.temporary_servers 2025-11-01 09:15:54 +01:00
Ivan Pešić 234244f8d5 core: update Serbian translation 2025-10-31 23:17:49 +01:00
Sébastien Helleu 063aa86978 core: disable "stateful" phase in schemathesis config 2025-10-26 20:23:58 +01:00
Sébastien Helleu 93d73d234f relay/api: consider boolean/long query string parameters as invalid if they are empty 2025-10-26 18:12:02 +01:00
Sébastien Helleu df3232fc80 core: move entries in ChangeLog 2025-10-26 18:11:39 +01:00
Sébastien Helleu d05b83d03f relay/api: return an error 401 when header "x-weechat-totp" is received with empty value 2025-10-26 10:11:10 +01:00
Sébastien Helleu 0009732f78 relay/api: return an error 401 when header "x-weechat-totp" has an invalid value 2025-10-26 09:19:43 +01:00
Sébastien Helleu e637e0de1c relay/api: return an error 400 when URL parameters "nicks", "lines" and "lines_free" have an invalid value 2025-10-26 08:07:23 +01:00
Sébastien Helleu 58c873809b relay/api: return an error 400 when URL parameter "colors" has an invalid value 2025-10-26 07:22:10 +01:00
weechatter 8eed89c43c core: update German translations 2025-10-24 18:20:06 +02:00
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 b066f713d7 tests: fix memory leak in tests on SASL PLAIN authentication mechanism 2025-10-12 16:07:52 +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
Ivan Pešić ae5b74549c core: update Serbian translations
Update Serbian messages and documentation translations.
2025-09-23 12:46:01 +02:00
Sébastien Helleu 222cb4876e core: set max version for Curl symbol CURLOPT_KRBLEVEL 2025-09-23 12:13:33 +02:00
Sébastien Helleu dc22d70dd4 core: fix style in ChangeLog 2025-09-20 10:45:32 +02:00
weechatter 949f860267 core: update German translations 2025-09-16 21:08:27 +02:00
Sébastien Helleu e2ae308e3b core: add option weechat.completion.cycle 2025-09-11 21:10:52 +02:00
Sébastien Helleu 767ea84909 core: add issue #886 in ChangeLog 2025-09-02 23:02:17 +02:00
Sébastien Helleu 665773b119 doc/api: add supported date/time format in function util_parse_time 2025-08-31 12:15:33 +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 1c09118fe1 api: allow lower characters "t" and "z" in function util_parse_time
The following dates are now parsed with the same result:

  2025-08-30T20:12:55.866643Z
  2025-08-30t20:12:55.866643z
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
Sébastien Helleu 5acbfe9b7d api: fix parsing of date/times with timezone offset in function util_parse_time 2025-08-31 12:15:33 +02:00
Sébastien Helleu 7980a6d100 api: add support of date like ISO 8601 but with spaces in function util_parse_time
So for example the format "2024-01-04 22:01:02.123456 +0100" is supported in
addition to ""2024-01-04T22:01:02.123456+0100".
2025-08-31 12:15:33 +02:00
Sébastien Helleu f630c36af0 core: remove obsolete Curl options CURLOPT_SOCKS5_GSSAPI_SERVICE and CURLOPT_HTTPPOST (issue #2268) 2025-08-31 12:14:50 +02:00
Sébastien Helleu 8e4ce78c97 core: update ChangeLog (issue #2268) 2025-08-31 11:58:53 +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 f48e6ee81d Bump required (lib)gcrypt to v1.8.0
Bump the requirement to v1.8.0, which means we can remove ~70% of the
ifdef guard.

It was released over 8 years ago, with 3 new feature releases since
then and dozen of bugfix releases in the 1.8 branch.

The oldest distributions we target Ubuntu 20.04 and Debian Bullseye,
have 1.8.5 and 1.8.7 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
Emil Velikov 8c372c0c01 Bump required (lib)curl to v7.68.0
Bump the requirement to v7.68.0, which means we can remove ~70% of the
ifdef guards. It was released over 5 years ago, with 30+ new curl
releases since then and dozens of CVEs fixed.

The oldest distributions we target Ubuntu 20.04 and Debian Bullseye,
have 7.68.0 and 7.74.0 respectively.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2025-08-31 10:36:20 +02:00
Sébastien Helleu def60c1e1c core: cast Curl proxy port option to long
This fixes this warning with clang:

src/core/core-url.c:1017:5: warning: call to '_curl_easy_setopt_err_long' declared with 'warning' attribute: curl_easy_setopt expects a long argument [-Wattribute-warning]
 1017 |     curl_easy_setopt (curl, CURLOPT_PROXYPORT,
      |     ^
/usr/include/x86_64-linux-gnu/curl/typecheck-gcc.h:50:15: note: expanded from macro 'curl_easy_setopt'
   50 |               _curl_easy_setopt_err_long();                             \
      |               ^
2025-08-31 10:10:15 +02:00
Sébastien Helleu 08651ba820 core: add version 4.7.1 2025-08-16 22:00:21 +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 0861716ae1 core: fix link to issue in ChangeLog 2025-07-19 12:22:46 +02:00
Sébastien Helleu 627862218a Version 4.8.0-dev 2025-07-19 12:05:24 +02:00
Sébastien Helleu 285a6b8ce4 Version 4.7.0 2025-07-19 12:01:43 +02:00
Ivan Pešić be8e94f3cd core: update Serbian translations 2025-07-13 22:19:17 +02:00
Emir SARI db7ecc1af1 core: Update Turkish translations
Signed-off-by: Emir SARI <emir_sari@icloud.com>
2025-07-13 22:18:39 +02:00
Sébastien Helleu 74a4b3e249 core: move parameter "continue-on-failure" on the global level in schemathesis config 2025-07-02 22:53:00 +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 87e84d9053 ci: replace script tools/test_relay_api.sh by configuration file schemathesis.toml 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 4348036e2e tests: remove duplicated "HTTP/1.1" in some relay API tests 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
Sébastien Helleu cd0486d5bb ci: set password hash iterations to 100 for API tests
This is much faster than the default number of iterations which is 100000).
2025-07-02 20:32:09 +02:00
Sébastien Helleu b4f28ed2d4 ci: set unlimited number of relay clients for API tests 2025-07-02 20:32:09 +02:00
Sébastien Helleu 323f80e914 core: add option weechat.completion.partial_completion_auto_expand (closes #2253) 2025-06-30 18:52:58 +02:00
Sébastien Helleu 56903738b5 core: always enable partial completion for templates in option weechat.completion.partial_completion_templates (issue #2253)
Previous behavior was to reverse the partial completion, which was confusing
when option like weechat.completion.partial_completion_command_arg was enabled
as well.
2025-06-30 18:52:58 +02:00
Sébastien Helleu 6d45a69f39 core: set max version for Curl symbol CURLOPT_SSL_FALSESTART 2025-06-21 20:30:05 +02:00
Sébastien Helleu 34f2e6cdd0 core: add script name in output of /debug hooks <plugin> 2025-06-08 16:36:46 +02:00
Sébastien Helleu a6e859b7ff tests: add test with a float number using a lot of decimals in calculation of expression
This test validates the fix made in commit
5b4820ab06 and will prevent regression with such
numbers.
2025-06-07 09:45:15 +02:00
Sébastien Helleu 103bddcc50 core: add issue number in ChangeLog 2025-05-25 09:59:17 +02:00
Sébastien Helleu 76a64e1280 core: update ChangeLog (issue #2251) 2025-05-25 09:55:01 +02:00
Sébastien Helleu 75c01e8c8d core: fix build on FreeBSD (issue #2251)
Check if the resolv library is found before checking if it has res_init.
2025-05-25 09:44:06 +02:00
Albert Lee e8ce75f20c core: avoid dynamic format strings for Clang -Werror=format-security 2025-05-25 09:26:10 +02:00
Albert Lee 47f7518c1f gui: use NCURSES_CFLAGS if available 2025-05-25 09:26:08 +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 7fb3ca6686 core: always define _XPG4_2 and __EXTENSIONS__ on Solaris/illumos 2025-05-25 09:06:51 +02:00
Albert Lee e98a32373e core: check if res_init requires linking with libresolv 2025-05-25 09:05:42 +02:00
Albert Lee 69d3787b5e core: improve support for non-macro htonll and htobe64 2025-05-25 09:03:48 +02:00
Sébastien Helleu aa6cbf911e tests/fuzz: add link option -fsanitize=fuzzer-no-link when fuzzer sanitizer is used 2025-05-24 08:27:05 +02:00
Albert Lee cf1c4a689d core: use same msgfmt invocation to perform checks and create weechat.mo
On Illumos, msgfmt aborts when `--output-file=/dev/null` is used.
2025-05-22 21:03:03 +02:00
Albert Lee 48568edfe0 lua: use LUA_CFLAGS from pkg-config 2025-05-22 21:02:58 +02:00
Albert Lee d7b26e88b8 core: include pthread.h for pthread types 2025-05-22 21:02:53 +02:00
Sébastien Helleu 0407a08888 doc/api: fix invalid cross references 2025-05-20 20:56:02 +02:00
Sébastien Helleu ff3fd38086 doc/user: fix invalid cross references 2025-05-20 20:53:56 +02:00
Sébastien Helleu 847208f196 core: add verbose flag in asciidoctor
This allows asciidoctor to display important messages, for example invalid
references like this one:

  asciidoctor: INFO: possible invalid reference: compile_with_cmake
2025-05-20 20:51:26 +02:00
Sébastien Helleu f6ef908740 core: add contributor (issue #2252) 2025-05-20 10:16:26 +02:00
Caleb Josue Ruiz Torres f2bd5d773b core: update Spanish translations 2025-05-20 10:12:34 +02:00
Sébastien Helleu 6cbb35c644 core: fix typo in ChangeLog 2025-05-18 22:32:40 +02:00
Sébastien Helleu 372e7306bc core: update ChangeLog 2025-05-18 22:28:02 +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 8106db400d core: add support of specifier %@ for UTC time in function util_strftimeval 2025-05-18 22:15:06 +02:00
Sébastien Helleu 4d617d0e01 tests/fuzz: ignore huge data in fuzz testing of calculation functions 2025-05-18 17:22:10 +02:00
Sébastien Helleu acbf1ddfcf tests/fuzz: ignore empty or huge data in fuzz testing of secured data functions 2025-05-18 17:20:49 +02:00
Sébastien Helleu 999262cbf2 core: add version 4.6.3 2025-05-11 11:47:01 +02:00
Sébastien Helleu 7b674c2618 core: add extra checks in function eval_string_range_chars
This is done in addition to changes made in commit
d475c16671 to fix the buffer overflow, caused by
the call to function utf8_next_char.
2025-05-11 10:26:17 +02:00
Sébastien Helleu 1efa9d6b08 core: reactivate CMake tests in root build directory (issue #1462)
This fixes the command `ctest` executed in the root build directory.
It was removed by accident in commit 68d87f2b80.
2025-05-11 10:15:08 +02:00
Sébastien Helleu 1fe23d9233 core: add API functions utf8_next_char, utf8_char_size and util_version_number in upgrade guidelines 2025-05-11 07:54:55 +02:00
Sébastien Helleu 5cfee46b59 tests/fuzz: add fuzz testing on evaluation functions (issue #1462) 2025-05-10 21:21:35 +02:00
Sébastien Helleu 75195d32da tests/fuzz: fix fuzz testing on function secure_derive_key (issue #1462) 2025-05-10 21:21:33 +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 6ecd9e66bf core: fix buffer overflow in function eval_string_base_encode 2025-05-10 15:28:41 +02:00
Sébastien Helleu 9d37159a6b core: use dynamic string in function string_replace_with_callback 2025-05-10 15:26:12 +02:00
Sébastien Helleu aa54d3653c core: fix buffer overflow in function eval_syntax_highlight_colorize 2025-05-10 15:26:09 +02:00
Sébastien Helleu b32f8662bc doc/dev: split components for tests: tests/fuzz and tests/unit 2025-05-09 08:15:28 +02:00
Sébastien Helleu f9520b971e tests/fuzz: add fuzz testing on secured data functions (issue #1462) 2025-05-09 08:15:28 +02:00
Sébastien Helleu 776b908431 tests/fuzz: remove unnecessary malloc 2025-05-08 20:54:38 +02:00
Sébastien Helleu 58a4dc757d doc/dev: add missing test files 2025-05-08 20:49:04 +02:00
Sébastien Helleu 229259b8c2 tests: add fuzz testing on some core util functions (issue #1462) 2025-05-08 20:43:24 +02:00
Sébastien Helleu 1d808a1f1c core: fix buffer overflow in function util_parse_time 2025-05-08 19:09:18 +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 f6cace609c core: fix memory leak in function util_parse_delay 2025-05-08 18:12:11 +02:00
Sébastien Helleu 1da89711a7 tests/fuzz: increase code covered by string tests 2025-05-08 17:04:23 +02:00
Sébastien Helleu 675c3279ac tests/fuzz: initialize gettext before UTF-8 tests 2025-05-08 17:02:37 +02:00
Sébastien Helleu 7341d670b3 tests: add build script for OSS-Fuzz (issue #1462) 2025-05-07 21:38:37 +02:00
Sébastien Helleu 38bf51ccfb tests: convert fuzzing sources to C++ 2025-05-07 21:15:51 +02:00
Sébastien Helleu d74fc99fe1 core: write configuration files on disk only if there are changes (closes #2250) 2025-05-07 20:44:54 +02:00
Sébastien Helleu 51d24fd2da api: add function file_compare (issue #2250) 2025-05-07 20:44:48 +02:00
Sébastien Helleu 9a661aecd0 tests: move fuzzing dict to core directory 2025-05-07 13:21:47 +02:00
Sébastien Helleu 85f565f6c1 core: add appropriate compiler/linker options for code coverage with clang 2025-05-07 13:20:44 +02:00
Sébastien Helleu 7cae4b276d tests: remove useless variable rc 2025-05-06 07:13:38 +02:00
Sébastien Helleu 8e390939f9 core: fix typo in ChangeLog 2025-05-06 07:59:49 +02:00
Sébastien Helleu ca6035f754 core: fix integer overflow in base32 encoding/decoding 2025-05-05 20:43:21 +02:00
Sébastien Helleu 5b4820ab06 core: fix integer overflow with decimal numbers in calculation of expression 2025-05-05 20:25:41 +02:00
Sébastien Helleu 68d87f2b80 tests: add fuzz testing on core functions (issue #1462)
This commit introduces fuzz testing, for now on core functions, with 4 new
targets that are built on demand with CMake option `ENABLE_FUZZ` (build of
these tests is disabled by default):

- weechat_core_calc_fuzzer
- weechat_core_crypto_fuzzer
- weechat_core_string_fuzzer
- weechat_core_utf8_fuzzer
2025-05-05 19:12:00 +02:00
Sébastien Helleu ceb6a007ff core: add missing empty line 2025-05-05 13:18:35 +02:00
Sébastien Helleu 59b06c96de doc/dev: add missing tests directories and sources 2025-05-05 13:18:35 +02:00
Sébastien Helleu a1cbe63a42 tests: move CMake file, main C++/headers for tests and scripts to unit directory 2025-05-05 13:18:34 +02:00
Nils Görs e15b369aa7 core: update German translations 2025-05-05 09:28:15 +02:00
Sébastien Helleu 9f4cbe599b ci: add variable JOBS in script build_test.sh 2025-05-04 20:45:29 +02:00
Sébastien Helleu 8b6480272a ci: replace variable BUILDARGS by command line arguments 2025-05-04 20:19:54 +02:00
Sébastien Helleu 84c526ac20 ci: use script build_test.sh in macOS CI 2025-05-04 16:15:25 +02:00
Sébastien Helleu f08b6beeda ci: add variable "RUN_TESTS" in script build_test.sh
When set to "0", the tests are not executed after the build.
2025-05-04 16:15:21 +02:00
Sébastien Helleu 4116f62dd8 ci: split jobs config on multiple lines 2025-05-04 16:10:05 +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 36be7ac1ff doc: update header in custom styles for asciidoctor 2025-04-26 14:56:35 +02:00
Sébastien Helleu ac04215164 core: move copyright/license header at the top of the cmake file 2025-04-26 14:55:02 +02:00
Sébastien Helleu 4d130d6b06 doc: move copyright/license headers at the top of the asciidoctor attributes files 2025-04-26 14:54:26 +02:00
Sébastien Helleu 44197397ef tests: remove obsolete coding charset in Python scripts 2025-04-26 14:52:39 +02:00
Sébastien Helleu b2a5d5995b doc: move copyright/license headers at the top of the files 2025-04-26 14:10:48 +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
Sébastien Helleu a008e8a423 core: move some copyrights and licenses from REUSE config into the files 2025-04-25 18:16:02 +02:00
Sébastien Helleu 0e777fef4e core: update example in /help key 2025-04-25 18:12:59 +02:00
Sébastien Helleu da4c24152b core: add option "precedence" in REUSE configuration 2025-04-22 20:54:51 +02:00
Sébastien Helleu 32e3e76dd3 doc/dev: add REUSE ignore tags 2025-04-22 20:54:33 +02:00
Sébastien Helleu a336a26fc6 doc/man: add REUSE ignore tags 2025-04-22 20:53:50 +02:00
Sébastien Helleu be3e487bd6 ci: replace TCL 8.7 by 8.6 in FreeBSD CI 2025-04-21 08:40:45 +02:00
Sébastien Helleu e282f77eee core: add parameter --show-trace in the call to schemathesis
This displays a complete traceback information in case of internal error.
2025-04-20 09:07:45 +02:00
Ivan Pešić 286122b0c3 doc: update Serbian documentation 2025-04-19 13:53:32 +02:00
Sébastien Helleu 7a28bb95e2 core: add version 4.6.2 2025-04-18 20:47:09 +02:00
Sébastien Helleu a215a4581c debian: update changelog 2025-04-18 20:44:58 +02:00
Sébastien Helleu 86a910884b debian: bump Standards-Version to 4.7.2 2025-04-18 20:44:57 +02:00
Sébastien Helleu 41f96c6494 core: fix write of weechat.log to stdout with weechat-headless --stdout (closes #2247) 2025-04-15 08:11:39 +02:00
Sébastien Helleu 0835d043de doc/api: fix typo in description of function hook_url 2025-04-12 12:20:59 +02:00
Sébastien Helleu d0babe8679 core: add refresh of window title on buffer switch, when option weechat.look.window_title is set 2025-04-11 19:30:32 +02:00
Sébastien Helleu 61ce24cf46 core: add version 4.6.1 2025-04-09 14:09:29 +02:00
Sébastien Helleu cf2e7f4691 core: fix REUSE configuration 2025-04-05 17:19:10 +02:00
Sébastien Helleu 86d68a87d5 core: rename issue templates 2025-04-05 17:16:47 +02:00
Sébastien Helleu 0c3eaa9ba2 ci: add separate GitHub actions workflow for the REUSE compliance check 2025-04-05 17:16:43 +02:00
Sébastien Helleu 5e47c6453e ci: add copyright and license in GitHub Actions CI workflow 2025-04-05 16:53:28 +02:00
Sébastien Helleu 5ccbdca0c9 core: consider all keys are safe in cursor context (closes #2244) 2025-04-04 18:52:58 +02:00
Sébastien Helleu ea90809e6c core: update ChangeLog (issue #2243) 2025-04-02 22:59:55 +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 5ba7a72d90 ci: add build without perl multiplicity 2025-04-02 22:54:21 +02:00
Sébastien Helleu db5afcde92 core: add REUSE badge in README 2025-03-31 20:59:59 +02:00
Sébastien Helleu b0cfdeff94 doc/dev: add copyright and license information (SPDX / REUSE) 2025-03-31 12:09:21 +02:00
Sébastien Helleu ff9d580ef5 ci: add reuse lint 2025-03-31 11:47:49 +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 4ab35ad44a core: add REUSE configuration file 2025-03-30 14:47:12 +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 cf3e24cda8 doc: add SPDX copyright tag in docs 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 8260963932 core: remove file FindPkgConfig.cmake
Rely on the file provided by CMake itself.
2025-03-30 14:05:51 +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 768534c606 core: add upgrade note in version 4.6.0 2025-03-28 12:07:53 +01:00
Ivan Pešić 7ca62883cf core: update Serbian translation 2025-03-28 07:50:16 +01:00
Sébastien Helleu 8ab1825b80 core: remove unused file FindZLIB.cmake 2025-03-24 18:31:55 +01:00
Sébastien Helleu 369917f1bc core: remove unused file CMakeParseArguments.cmake 2025-03-24 18:25:11 +01:00
Sébastien Helleu 7370e04017 Version 4.7.0-dev 2025-03-23 10:45:42 +01:00
Sébastien Helleu 9663f79746 Version 4.6.0 2025-03-23 10:42:41 +01:00
Sébastien Helleu e0b7d2a645 core: update ChangeLog 2025-03-21 07:53:29 +01:00
Nils Görs 99bb1454a4 core: update German translations 2025-03-17 11:03:14 +01:00
Sébastien Helleu caa7af253a tests: add tests on function util_strftimeval with microseconds < 0 or > 999999 2025-03-17 08:12:33 +01:00
Sébastien Helleu 36300c763d core: update ChangeLog (issue #1174) 2025-03-16 15:58:30 +01:00
Sébastien Helleu e3ffef457f core: add contributor (issue #1174) 2025-03-16 15:58:30 +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 d91039ebd0 core: update ChangeLog 2025-03-16 15:11:41 +01:00
Sébastien Helleu 2e6249588f core: update ChangeLog (issue #665) 2025-03-16 15:01:17 +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 c0402bce52 core: fix formatting of microseconds in function util_strftimeval 2025-03-16 14:01:04 +01:00
Sébastien Helleu 9fe5fa23a0 core: convert "long long" to "unsigned long long" in functions util_get_microseconds_string and util_parse_delay 2025-03-16 11:13:25 +01:00
Nils Görs e8a335a3e3 core: update German translations 2025-03-16 10:42:23 +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
Aaron Jones f5038bccbc Fix function prototypes for list of arguments
At the moment, building WeeChat triggers several thousand -Wstrict-prototypes
diagnostics.  This is due to its source code using an empty argument list for
functions and function pointers that take no arguments, instead of explicitly
declaring that they take no arguments by using a void list.

This commit replaces all empty argument lists with a void list.

Note that Ruby's headers also suffer the same problem, which WeeChat can't
do anything to fix.  Thus, building WeeChat with the Ruby plugin enabled
will still issue approximately 30 such diagnostics.
2025-03-10 08:16:52 +01:00
Nils Görs 20b2bdedc2 core: update German translations 2025-03-09 11:25:46 +01:00
Sébastien Helleu 95366c37b7 doc/api: add reference to function hook_process 2025-03-09 09:40:46 +01:00
Sébastien Helleu 80bb54fed8 doc/api: add difference between hook_url and hook_process_hashtable 2025-03-09 09:31:36 +01:00
Sébastien Helleu 68d452b559 core: improve help on option weechat.completion.nick_ignore_words 2025-03-09 08:26:09 +01:00
Nils Görs 357b7e0d55 core: update German translations 2025-03-08 09:33:15 +01:00
Krzysztof Korościk d8106f863a doc: updated polish translation 2025-03-03 22:43:55 +01:00
Sébastien Helleu 2e570c599b core: add option weechat.completion.nick_ignore_words (closes #1143) 2025-03-03 08:27:22 +01:00
Sébastien Helleu 8280a3b65b api: return input string in function string_iconv_from_internal when current locale is wrong
This fixes a bug when writing configuration files with a wrong locale: now
UTF-8 is kept and written in files instead of string converted using a wrong
charset.
2025-03-01 16:44:22 +01:00
Sébastien Helleu f7cf044f33 core: add version 4.5.2 2025-02-20 23:56:38 +01:00
Sébastien Helleu 98aca3343a debian: update changelog 2025-02-20 23:05:06 +01:00
Sébastien Helleu d9ee4a3c13 core: update ChangeLog 2025-02-20 22:54:37 +01:00
Nils Görs 19d84e975e core: update German translations 2025-02-19 08:28:08 +01:00
Sébastien Helleu c33a28cfca core: add contributor (issue #2234) 2025-02-18 22:11:27 +01:00
Sébastien Helleu 145423c11f core: update ChangeLog (issue #2234) 2025-02-18 22:11:23 +01:00
Sébastien Helleu 4865fe07e2 core: update translations (issue #2234) 2025-02-18 22:11:19 +01:00
Daniel Lublin cc163a0e7e irc: add option -connected in command /server list|listfull 2025-02-18 22:09:24 +01:00
Nils Görs 17e7796669 core: update German translations 2025-02-16 10:35:55 +01:00
Sébastien Helleu 83c4b940a6 tests: fix long lines in Python test script 2025-02-16 00:08:30 +01:00
Sébastien Helleu 8c1379e820 tests: fix indentation in Python test script 2025-02-16 00:08:15 +01:00
Sébastien Helleu e86e558f3f xfer: keep spaces at the end of /me command arguments 2025-02-15 23:42:29 +01:00
Sébastien Helleu 718a317cfb alias: keep spaces at the end of aliases commands arguments 2025-02-15 23:37:06 +01:00
Sébastien Helleu c275f9d994 alias: keep spaces at the end of /alias command arguments 2025-02-15 23:36:53 +01:00
Sébastien Helleu 9285afc3e2 irc: keep spaces at the end of /topic command arguments 2025-02-15 23:32:33 +01:00
Sébastien Helleu c7d21a3ea6 api: add function completion_set 2025-02-15 23:22:44 +01:00
Sébastien Helleu 1b54cd24ed irc: remove extra empty line 2025-02-15 21:14:10 +01:00
Sébastien Helleu d3a9e4e74b core: add extra check of string length on whitespace char options 2025-02-15 20:59:22 +01:00
Sébastien Helleu 8fd4a80af8 irc: keep spaces at the end of some command arguments
The following commands are now preserving trailing spaces in arguments
received: action, allchan, allpv, allserv, away, ctcp, me, msg, notice, query,
quote, saquit, squery, wallchops, wallops.
2025-02-15 20:54:24 +01:00
Sébastien Helleu 091a17b138 core: keep spaces at the end of some command arguments
The following commands are now preserving trailing spaces in arguments
received: allbuf, command, eval, mute, pipe, print, quit, repeat, wait.
2025-02-15 20:54:24 +01:00
Sébastien Helleu e89d6d69ad api: add property keep_spaces_right in function hook_set to keep trailing spaces in command arguments 2025-02-15 20:54:24 +01:00
Sébastien Helleu 3c9eb6dcac core: add option whitespace in command /debug (closes #947)
New options are added to configure the chars displayed for spaces and
tabulations:

- weechat.look.whitespace_char: char for spaces
- weechat.look.tab_whitespace_char: first char for tabulations
2025-02-15 20:54:14 +01:00
Ivan Pešić 8e9692809d core: update Serbian translations 2025-02-12 16:10:38 +01:00
Sébastien Helleu 6388d36858 core: remove unnecessary null check 2025-02-11 21:38:24 +01:00
Nils Görs 8198aade2e core: update German translations 2025-02-10 10:22:43 +01:00
Sébastien Helleu ca6e483cdc relay/api: add a way to toggle between remote and local command execution on remote buffers (issue #2148)
New default key:

- Alt+Ctrl+l (L): toggle execution of commands: remote/local

New options:

- relay.api.remote_input_cmd_local: text displayed for command executed locally
- relay.api.remote_input_cmd_remote: text displayed for command executed on the
  remote WeeChat
2025-02-09 18:31:37 +01:00
Sébastien Helleu 547e2b934e core: update copyright dates 2025-02-01 23:13:18 +01:00
Nils Görs 07deaf97ec core: update German translations 2025-02-01 10:36:31 +01:00
Sébastien Helleu daef5971ae core: add option -color in command /pipe 2025-02-01 09:37:22 +01:00
LuK1337 04aea1bcb5 core: use <stdbool.h> instead of typedef in ncurses-fake.h
Fixes the following error when building in Fedora rawhide:
error: ‘bool’ cannot be defined via ‘typedef’.

Likely GCC 15 related.
2025-01-26 08:54:55 +01:00
Sébastien Helleu 4b7be27028 core: add parameter name in signal handler functions 2025-01-26 08:49:15 +01:00
LuK1337 68c70e5538 core: add int arg for all sigaction.sa_handler functions
src/gui/curses/gui-curses-main.c: In function ‘gui_main_loop’:
src/gui/curses/gui-curses-main.c:399:33: error: passing argument 2 of ‘signal_catch’ from incompatible pointer type [-Wincompatible-pointer-types]
  399 |         signal_catch (SIGWINCH, &gui_main_signal_sigwinch);
      |                                 ^~~~~~~~~~~~~~~~~~~~~~~~~
      |                                 |
      |                                 void (*)(void)
In file included from src/gui/curses/gui-curses-main.c:38:
src/gui/curses/../../core/core-signal.h:33:46: note: expected ‘void (*)(int)’ but argument is of type ‘void (*)(void)’
   33 | extern void signal_catch (int signum, void (*handler)(int));
      |                                       ~~~~~~~^~~~~~~~~~~~~
2025-01-26 08:46:04 +01:00
Nils Görs 865dd61d31 core: update German translations 2025-01-25 21:30:47 +01:00
Sébastien Helleu b53f3c2db8 core: add tags of lines in hsignal sent with command /pipe 2025-01-25 17:06:10 +01:00
Ivan Pešić 56698151db core: update Serbian translations 2025-01-21 15:58:16 +01:00
Nils Görs 1285a7d391 core: update German translations 2025-01-08 21:47:01 +01:00
Sébastien Helleu 36b62cfc5e core: add option -v to display upgrades in command /version
The number of upgrades is also displayed on startup after at least one
`/upgrade`.
2025-01-07 20:35:35 +01:00
Nils Görs d97fed80cb core: update German translations 2025-01-07 19:24:18 +01:00
Sébastien Helleu 80ca209e70 Revert "core: check "weechat" binary with command /upgrade"
This reverts commit d665e2d489.

The fix is not working when WeeChat is not executed with an absolute path.
2025-01-07 17:37:07 +01:00
Sébastien Helleu d302294723 relay/api: always return a body with field "error" in error responses 2025-01-07 07:52:09 +01:00
Sébastien Helleu 60422ca6b1 relay: remove extra space in JSON authentication error 2025-01-07 07:28:45 +01:00
Sébastien Helleu 9d3388b09e relay/api: use cjson lib to return errors 2025-01-07 07:23:55 +01:00
Sébastien Helleu d10af1037b relay/api: use cjson lib to build JSON body of handshake request 2025-01-07 07:18:01 +01:00
Sébastien Helleu 10b4fffaca relay/api: fix return code when buffer is not found in completion resource callback 2025-01-07 07:12:37 +01:00
Sébastien Helleu c48dee3211 relay/api: add schema for errors returned in OpenAPI document 2025-01-06 07:45:02 +01:00
Sébastien Helleu cf726265d1 core: fix typo in ChangeLog 2025-01-06 07:40:53 +01:00
Sébastien Helleu 8b2cdf3032 core: update ChangeLog (issue #2207) 2025-01-05 15:05:47 +01:00
Sébastien Helleu 3523b5e4e2 doc/relay/api: add doc on resource /api/completion 2025-01-05 15:03:35 +01:00
Nils c6c420c698 relay: add completion resource 2025-01-05 14:54:07 +01:00
Sébastien Helleu cfe34388fb relay/api: bump version in OpenAPI document 2025-01-05 13:05:58 +01:00
Sébastien Helleu 3eaa1a3a6e relay/api: fix name of body field "buffer_name" in doc of POST /api/input 2025-01-05 10:36:04 +01:00
Sébastien Helleu de88cd3b58 core: fix typo in /help bar 2025-01-05 10:16:51 +01:00
Sébastien Helleu b88582c7ec core: update ChangeLog (issue #2222) 2025-01-05 10:03:26 +01:00
Trygve Aaberge cab9496a70 python: define constants using PyModule_Add...Constant
This follows the recommendation from Pythons documentation for
PyModule_GetDict where it says:

    It is recommended extensions use other PyModule_* and PyObject_*
    functions rather than directly manipulate a module’s __dict__.
2025-01-05 10:03:07 +01:00
Trygve Aaberge c0c837b1be python: set m_size for created modules to 0
This value determines the size of the per-module memory area. Setting
this value to -1 as it was before this change means that the module has
global state and therefore does not support subinterpreters.

However, subinterpreters are used to run the Python scripts, so the
weechat module has to support subinterpreters. Therefore we should set
this value to 0 as no per-module memory is required.

This seems to fix the crash reported in #2046 without the need for the
workaround added in commit 85c7494dc (it does for me when testing with
Python 3.12.0 at least).

This change came up as a suggestion in cpython's issue tracker where it
was pointed out that using modules with m_size set to -1 is not
supported in subinterpreters. See these two comments:

https://github.com/python/cpython/issues/116510#issuecomment-2377915771
https://github.com/python/cpython/issues/116510#issuecomment-2389485369

It's not completely clear to me what is required for a module to support
subinterpreters and re-initialization (which is required for setting
m_size to 0), but https://peps.pythondiscord.com/pep-0489/ says:

    A simple rule of thumb is: Do not define any static data, except
    built-in types with no mutable or user-settable class attributes.

The only static data we define is of type int and str, so I think it
should be fine.
2025-01-05 09:27:38 +01:00
Emir SARI 7c30dbcf05 core: update Turkish translations 2025-01-04 18:22:08 +01:00
Sébastien Helleu d665e2d489 core: check "weechat" binary with command /upgrade
Always check that "weechat" binary exists and is executable with command
`/upgrade`, even when the path to binary is not given.
2025-01-04 18:08:19 +01:00
Nils Görs 16346255f1 core: update German translations 2024-12-23 12:47:01 +01:00
Sébastien Helleu 2a7f557f05 core: add version 4.5.1 2024-12-23 08:56:34 +01:00
Sébastien Helleu 8e8e982af6 core: fix typo in ChangeLog 2024-12-23 08:38:20 +01:00
Sébastien Helleu 883c12dec2 relay: fix description of relay clients after /upgrade 2024-12-22 19:31:06 +01:00
Sébastien Helleu ad5fde5966 relay: fix crash after /upgrade when relay clients are connected 2024-12-22 19:31:04 +01:00
Sébastien Helleu 119664d090 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:05:52 +01:00
Sébastien Helleu 97ede70307 Revert "ci: fix macOS CI"
Remove workaround for https://github.com/actions/runner-images/issues/10984

This reverts commit 2555c378a2.
2024-12-22 10:51:52 +01:00
Sébastien Helleu c26ff6c51b core: fix detection of dl library (closes #2218)
This fixes the linking to curl and ncurses on macOS.
2024-12-21 18:06:59 +01:00
Sébastien Helleu 9e34a0e917 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:02:43 +01:00
Sébastien Helleu befcd09d63 logger: fix path displayed when the logs directory can not be created 2024-12-21 17:15:38 +01:00
Sébastien Helleu 8aba934c50 xfer: replace calls to malloc by weechat_asprintf 2024-12-21 15:31:39 +01:00
Sébastien Helleu 3b88065266 trigger: replace calls to malloc by weechat_asprintf 2024-12-21 15:31:39 +01:00
Sébastien Helleu ce2c4b74a2 spell: replace calls to malloc by weechat_asprintf 2024-12-21 15:31:39 +01:00
Sébastien Helleu d3d0948e2e script: replace calls to malloc by weechat_asprintf 2024-12-21 15:31:39 +01:00
Sébastien Helleu 68dce2b47a ruby: replace call to malloc by weechat_asprintf 2024-12-21 15:31:39 +01:00
Sébastien Helleu b45d2105a5 relay: replace calls to malloc by weechat_asprintf 2024-12-21 15:31:39 +01:00
Sébastien Helleu 74c63c0541 python: replace calls to malloc by weechat_asprintf 2024-12-21 15:31:39 +01:00
Sébastien Helleu 770d87c3d6 plugin/script: replace calls to malloc by weechat_asprintf 2024-12-21 15:31:39 +01:00
Sébastien Helleu 099e11d7b8 perl: replace calls to malloc by weechat_asprintf 2024-12-21 15:12:33 +01:00
Sébastien Helleu 8af3a4cef8 lua: replace call to malloc by weechat_asprintf 2024-12-21 15:12:33 +01:00
Sébastien Helleu 7226b005e9 logger: replace calls to malloc by weechat_asprintf 2024-12-21 15:12:33 +01:00
Sébastien Helleu 45509e1cd1 irc: replace calls to malloc by weechat_asprintf 2024-12-21 15:12:33 +01:00
Sébastien Helleu cdb4823fad guile: replace call to malloc by weechat_asprintf 2024-12-21 15:12:33 +01:00
Sébastien Helleu 82f0b3b121 fset: replace calls to malloc by weechat_asprintf 2024-12-21 15:12:33 +01:00
Sébastien Helleu e6409355b6 fifo: replace call to malloc by weechat_asprintf 2024-12-21 15:12:33 +01:00
Sébastien Helleu e2675f5afe exec: replace calls to malloc by weechat_asprintf 2024-12-21 15:12:33 +01:00
Sébastien Helleu e6388c1d1a charset: replace call to malloc by weechat_asprintf 2024-12-21 15:12:33 +01:00
Sébastien Helleu 9779f56125 alias: replace calls to malloc by weechat_asprintf 2024-12-21 15:12:33 +01:00
Sébastien Helleu 818a4c95a9 core: replace calls to malloc by string_asprintf 2024-12-21 15:12:33 +01:00
Sébastien Helleu 8f43dceedf core: update ChangeLog 2024-12-20 07:36:15 +01:00
zeromind 05c60a2292 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:34:20 +01:00
Sébastien Helleu 798c7a5262 core: fix parsing of command in /pipe command 2024-12-17 23:22:29 +01:00
Sébastien Helleu 732f24b6ba core: add command /pipe 2024-12-16 13:39:14 +01:00
Sébastien Helleu 0fc0071297 Version 4.6.0-dev 2024-12-15 09:07:29 +01:00
Sébastien Helleu e8b73aa711 Version 4.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
Sébastien Helleu 9f6caa4e03 core: send signal "buffer_moved" only when the buffer number changes (issue #2097) 2024-11-04 18:00:59 +01:00
Sébastien Helleu 74cc16ef07 core: fix too many sorts of hotlist when buffers are moved (issue #2097)
A performance issue was happening when buffers are moved to another position
and when the hotlist contains a lot of buffers: each time a signal
"buffer_moved" is sent, the hotlist is sorted again.

This fix delays the resort of hotlist after all the moves are done using a
timer with a very small delay (one millisecond).
2024-11-03 23:42:57 +01:00
Sébastien Helleu 1fc8c551d8 core: add property hotlist_conditions in completion for /buffer set 2024-11-03 22:47:37 +01:00
Sébastien Helleu 764fb7c4ad doc: remove trailing spaces in Serbian docs 2024-11-03 21:08:52 +01:00
Sébastien Helleu c1b34b0ff5 irc: remove trailing space in /help list 2024-11-03 09:46:10 +01:00
Sébastien Helleu 328fc3845e relay, xfer: update hotlist only if items are actually removed when purging list on relay/xfer buffer 2024-10-31 22:09:38 +01:00
Sébastien Helleu 524c813485 relay, xfer: check hotlist add conditions when adding the relay/xfer buffer in hotlist 2024-10-31 22:09:07 +01:00
Sébastien Helleu 2dea224a38 api: add property hotlist_conditions in function buffer_set 2024-10-31 22:08:13 +01:00
Sébastien Helleu 84f65e1339 relay, xfer: fix letters with actions displayed on top of buffer
Since WeeChat 4.0.0, the actions are now case sensitive and must be typed as
lower case.

This fixes the help line displayed on top of relay and xfer buffers: letters
for actions are now displayed with lower case instead of upper case.
2024-10-31 18:17:59 +01:00
Sébastien Helleu 24fbeaf36e core: add version 4.4.3 2024-10-30 12:48:47 +01:00
Sébastien Helleu d1013b31bd build: fix check of WeeChat git repository
The `.git` directory can also be a regular file in a git worktree.
2024-10-30 08:08:34 +01:00
Sébastien Helleu 945782195f doc: replace some "warning" by "caution" 2024-10-30 00:30:19 +01:00
Sébastien Helleu 06771e66fb debian: update changelog 2024-10-30 00:12:05 +01:00
Sébastien Helleu d83167b586 doc: replace font-awesome icons by translated captions
This removes use of a remote CDN (Cloudflare), as font-awesome is no longer
used.
2024-10-30 00:06:22 +01:00
Sébastien Helleu cd4d958e82 debian: bump Standards-Version to 4.7.0 2024-10-29 22:55:25 +01:00
Sébastien Helleu 254ecbf4c6 debian: add file CHANGELOG.md in weechat-core.docs 2024-10-29 22:51:47 +01:00
Sébastien Helleu ad6ec011bd relay/api: reply HTTP 400 (Bad Request) when the body received is not a dict in websocket data 2024-10-29 22:38:28 +01:00
Sébastien Helleu 26e16fdea7 tests: add extra tests on function string_split
New tests:

- split empty string
- standard split with only separators in string
- standard split with only separators in string and strip separators
2024-10-21 08:23:55 +02:00
Sébastien Helleu 50a9c88b79 core: check that version is not NULL or empty string in function util_version_number 2024-10-21 08:23:55 +02:00
Sébastien Helleu 97e81e197d core: add contributor (issue #2202) 2024-10-20 08:39:11 +02:00
Sébastien Helleu 488b3f8e7b core: reload all plugins with command /plugin reload * 2024-10-20 08:38:19 +02:00
James C. Morey 3160d2accd core: simplify plugin callback by refactoring if statements 2024-10-20 08:35:24 +02:00
Sébastien Helleu fea5b868ee ci: switch from macOS 12 to 14 2024-10-19 11:35:37 +02:00
Sébastien Helleu 6dccc3181a build: remove our own Ruby detection and rely on CMake detection, require CMake 3.18 (issue #1156)
This fixes the detection of Ruby on macOS 14.
2024-10-19 11:35:30 +02:00
Sébastien Helleu 16dac7193b ci: switch from Ubuntu 22.04 to 24.04 2024-10-16 21:41:14 +02:00
Sébastien Helleu 4503dbb013 doc: rename git branch master to main in URLs 2024-10-15 16:54:16 +02:00
Sébastien Helleu fb57abbadf tests: fix URL to Python unparser 2024-10-15 07:55:59 +02:00
Sébastien Helleu bc675bd270 exec: fix execution of command with /exec -pipe (issue #2199) 2024-10-14 13:31:50 +02:00
Sébastien Helleu 0f8fede68a core: add include directories for gettext libintl
This fixes the macOS build in CI, failing on missing header `libintl.h`.
2024-10-13 17:06:34 +02:00
Sébastien Helleu 958863b4a8 core: update translations 2024-10-13 16:57:32 +02:00
Sébastien Helleu d9e1b545b4 core: add minimal GnuTLS version in ChangeLog (issue #2193) 2024-10-13 14:07:02 +02:00
Sébastien Helleu 1bf4e466f9 core: add minimal Curl version in ChangeLog (issue #2195) 2024-10-13 14:04:53 +02:00
Emil Velikov de4231c842 Bump required gnutls to v3.3.0
Bump the requirement to v3.3.0 as available in Ubuntu 16.04 (3.4.10) and
Debian 10 (3.6.7). It was released around 10 years ago and any remotely
supported distribution has newer version.

As result, we can remove hundred+ lines of #ifdef spaghetti code.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2024-10-13 13:55:16 +02:00
Emil Velikov 19cb459685 cmake: use pkg_check_modules() for GnuTLS
Remove the local cmake file and associated hacks used to manage GnuTLS.
This gives us less build-system glue code and makes it easier to enforce
a minimum version for GnuTLS.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2024-10-13 13:55:12 +02:00
Emil Velikov 51dfb1fb78 Bump required (lib)curl to v7.47.0
Bump the requirement to v7.47.0 as available in Ubuntu 16.04 (7.47.0)
and Debian 10 (7.64.0). It was released around 9 years ago and any
remotely supported distribution has newer version.

As result we can adjust the tools/check_curl_symbols.py script to omit
the ~70% of the guards and simplify the code base.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2024-10-13 13:33:47 +02:00
Emil Velikov fec71ae30c cmake: use pkg_check_modules() for cURL
The cURL project has provided a pkg-config file for well over a decade
now. Just use that instead of the cmake one, since the latter also
checks for misc curl components, unusual library names (libcurl_imp)
which is not something we need.

In addition, this will make enforcing minimum version much easier.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2024-10-13 13:33:47 +02:00
Emil Velikov 99b4f9a98d tools/check_curl_symbols.py: add max version (only) handling
With a later commit, some options will have only a max version so ensure
we handle those cases.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2024-10-13 13:33:47 +02:00
Emil Velikov 17fc815da9 core: add curl 8.2 MAIL_RCPT_ALLOWFAILS
With the 8.2 version upstream has fixed the typo in the option name.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2024-10-13 13:33:47 +02:00
Emil Velikov ba746dcb1b tools/check_curl_symbols.py: fix CURLOPT handling
The curl option handling seems to be non-functional since it suffers
from two distinct issues. The regular expression tries to match options
that we're not interested in and the symbol name is lacking the proper
prefix.

Adjust to match only on what we need and construct the name
appropriately... Fix the issues flagged by the updated script.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2024-10-13 13:33:47 +02:00
Sébastien Helleu 90c23ef418 exec: fix unexpected execution of command with /exec -o when the command starts with two command chars (closes #2199) 2024-10-13 11:15:19 +02:00
Sébastien Helleu bca7c7438a api: add special value - (hyphen-minus) in options of function command_options to prevent execution of commands (issue #2199) 2024-10-13 11:15:10 +02:00
Sébastien Helleu 709b2b5796 core: remove code to add command char in input data
We can just reuse `ptr_data` which is the original data instead of
`ptr_data_for_buffer`, where the extra command char is missing.
2024-10-13 09:22:20 +02:00
Sébastien Helleu ec78084f49 tests: add tests on function input_data 2024-10-12 21:04:13 +02:00
Sébastien Helleu 5eb64b2dfa tests: add macros RECORD_CHECK_NO_MSG and RECORD_CHECK_MSG 2024-10-12 21:03:13 +02:00
Sébastien Helleu 977b3581fa tests: add function record_count_messages 2024-10-12 21:02:21 +02:00
Sébastien Helleu 00578a70e1 api: return the buffer input callback return code in functions command and command_options 2024-10-12 18:30:08 +02:00
Sébastien Helleu ffd7cc90fb doc/api: fix Python example of function command_options 2024-10-08 07:12:55 +02:00
Sébastien Helleu 8223da0fe6 core: always send the signal "buffer_switch", even when the buffer is opening (closes #2198) 2024-10-06 20:57:54 +02:00
Sébastien Helleu 453e60ed23 core: refactor code to send WeeChat version to the buffer 2024-10-06 17:40:34 +02:00
Sébastien Helleu e29332ead6 build: add more retries in case of build failure 2024-10-06 11:35:12 +02:00
Sébastien Helleu 139787b26f build: add a retry build mechanism on make in Debian packaging
When the environment variable `RETRY_BUILD` is set to `1`, the file
`debian/rules` is patched to run `dh_auto_build` multiple times, until the
build succeeds.

This is a workaround for an issue with the build in an arm64 chroot, where the
compiler randomly segfaults.
2024-10-06 10:21:44 +02:00
Emil Velikov 0bcae707fc core: remove ifdef checks for core components
The gcrypt, gnutls, libcurl and zlib are core libraries/components that
we always build against. Remove the #ifdef checks - the symbols must be
available at build.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2024-10-05 17:04:15 +02:00
Sébastien Helleu e0ac58a26a core: remove extra parentheses in ChangeLog 2024-10-05 14:07:14 +02:00
Sébastien Helleu 423f609828 irc: fix crash on /list buffer when a filter is set (closes #2197) 2024-10-05 07:48:22 +02:00
Sébastien Helleu 94312b6622 doc/user: add missing bar items in chapter "Screen layout" 2024-10-01 07:32:43 +02:00
Emil Velikov 66f9b1762a cmake: remove unused HAVE_GCRYPT
Seemingly unused for ~12 years, since commit a99d13601 ("core: add new
plugin "script" (scripts manager, replacing scripts weeget.py and
script.pl)")

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2024-09-29 19:10:52 +02:00
Sébastien Helleu c627743b29 spelling: case-sensitive 2024-09-29 12:31:19 +02:00
Sébastien Helleu f482b611a1 spelling: anymore 2024-09-29 12:00:25 +02:00
Sébastien Helleu b450ccdb6c core: add contributor (issue #2183) 2024-09-29 11:28:33 +02:00
Emil Velikov d42d837924 build: remove CMake variable "STATIC_LIBS"
With the circular dependency resolved, we no longer need this variable.
Add the respective objects directly, in the same order as seen in the
tests.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2024-09-29 10:01:10 +02:00
Emil Velikov fc7b00562c build: require CMake 3.12, resolve circular dependency
In order to resolve the circular dependency, we need to annotate the
respective static libraries as "object" libraries.

This requires cmake 3.12, where Debian 10 (old old stable) and Ubuntu
20.04 have 3.13 and 3.16 respectively.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2024-09-29 10:00:50 +02:00
Emil Velikov 0e9f841974 core: add configuration file .editorconfig
To ease the initial hurdle of using the proper formatting across files,
introduce a simple .editorconfig file.

Nearly every common editor supports it OOTB these days, including the
GitHub and GitLab web editors.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2024-09-28 21:56:17 +02:00
Sébastien Helleu 58e6e41948 core: add contributor (issue #2186) 2024-09-28 21:49:27 +02:00
Sébastien Helleu 8f2bcb1a09 core: update translations (issue #2186) 2024-09-28 21:38:19 +02:00
Josh Soref 2202cd9f85 spelling: zstd
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 21:22:56 +02:00
Josh Soref 7fb77aabfa spelling: wildcard
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 21:22:56 +02:00
Josh Soref 8fee9c1778 spelling: unnecessary
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 21:22:56 +02:00
Josh Soref 17eedc35e2 spelling: unavailable
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 21:22:56 +02:00
Josh Soref 57b19b6c74 spelling: traffic
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 21:22:56 +02:00
Josh Soref 7415eaa1f1 spelling: starting
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 21:22:56 +02:00
Josh Soref 42c8f86533 spelling: should / may
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 21:22:56 +02:00
Josh Soref dcd62f7ee6 spelling: shift
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 21:22:56 +02:00
Josh Soref 7f93f81a82 spelling: separator
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 21:22:56 +02:00
Josh Soref 358b8ad2a6 spelling: sensitive
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 21:22:56 +02:00
Josh Soref e1d7459660 spelling: runtime
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 21:22:56 +02:00
Josh Soref e3b8a6d21a spelling: remain at its current location
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 21:22:56 +02:00
Josh Soref 9a7c45e7f6 spelling: position
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 21:22:56 +02:00
Josh Soref 87f2bb0a23 spelling: passphrase
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 21:22:56 +02:00
Josh Soref 90ed422afd spelling: override
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 21:22:56 +02:00
Josh Soref aee09ad0a0 spelling: neither-nor
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 21:22:56 +02:00
Josh Soref 9f67ae369c spelling: negotiation
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 21:22:56 +02:00
Josh Soref c0fbb5aaf5 spelling: msg
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 21:22:55 +02:00
Josh Soref 67d4c96de3 spelling: may
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 21:22:55 +02:00
Josh Soref 9e5bfd70a8 spelling: macOS
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 21:22:55 +02:00
Josh Soref a0cac1a5dd spelling: libgcrypt
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 21:22:55 +02:00
Josh Soref c30949b411 spelling: javascript
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 18:22:41 +02:00
Josh Soref e6cd8c9519 spelling: invocation
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 18:22:41 +02:00
Josh Soref 89e162fced spelling: instantiated
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 18:22:41 +02:00
Josh Soref 4c68c4cd48 spelling: hashtable
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 18:22:41 +02:00
Josh Soref 1aa5b46ba5 spelling: greater than
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 18:22:41 +02:00
Josh Soref 80def4a36b spelling: filename
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 18:22:41 +02:00
Josh Soref d97467ff67 spelling: escape
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 18:22:41 +02:00
Josh Soref 05464f866b spelling: duplicated
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 18:22:41 +02:00
Josh Soref 4e0ffd18c2 spelling: down-rank
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 18:22:41 +02:00
Josh Soref 6fdf39165a spelling: client
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 18:22:41 +02:00
Josh Soref 5e2091e802 spelling: checked out
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 18:22:41 +02:00
Josh Soref c28696e602 spelling: case-sensitive
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 18:22:41 +02:00
Josh Soref 0505a0ff76 spelling: case-insensitive
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 18:22:41 +02:00
Josh Soref 4ef3011ea9 spelling: cannot
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 18:22:02 +02:00
Josh Soref 08895863d9 spelling: callbacks
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 18:20:02 +02:00
Josh Soref fd1899aa12 spelling: buffer
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 18:20:02 +02:00
Josh Soref 3eb4b203f2 spelling: backtrace
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 18:20:02 +02:00
Josh Soref 969376c88a spelling: backslashes
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 18:20:02 +02:00
Josh Soref 17381d983f spelling: autoconnect
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 18:20:02 +02:00
Josh Soref 631ca3f8df spelling: authenticate
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 18:20:02 +02:00
Josh Soref a464135f39 spelling: at
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 18:20:02 +02:00
Josh Soref ef107fd66d spelling: anymore
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 18:20:02 +02:00
Josh Soref d3ceabf5de spelling: an
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 17:34:04 +02:00
Josh Soref 02ea93e88f spelling: above
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-28 17:34:00 +02:00
Sébastien Helleu 824c172984 Revert "ci: install version 3.35.5 of schemathesis"
This reverts commit 2b702f21d3.
2024-09-25 21:31:40 +02:00
Sébastien Helleu 759ffc3d21 core: add CVE id in ChangeLog 2024-09-25 20:29:14 +02:00
Sébastien Helleu 6534919868 irc: decode IRC color codes only when displaying messages
Before parsing IRC messages, they were almost all changed to convert IRC color
codes to WeeChat color codes, which caused some bugs when storing data like
account and real names (stored with WeeChat color codes instead of IRC colors).

Now the messages are parsed as-is, then the colors are converted only when
strings are displayed in a buffer by `weechat_printf()`.
2024-09-22 23:05:16 +02:00
Sébastien Helleu 02847246b2 core, plugins, tests: fix octal notation in strings 2024-09-19 08:34:18 +02:00
Sébastien Helleu 2b702f21d3 ci: install version 3.35.5 of schemathesis
This fixes the CI as schemathesis 3.36.0 has a regression on ignored_auth
check (https://github.com/schemathesis/schemathesis/issues/2462).
2024-09-19 08:34:18 +02:00
Krzysztof Korościk fc16a4c141 doc: updated polish translation 2024-09-17 11:35:50 +02:00
Sébastien Helleu 1cf65df089 tests: add tests on missing supported IRC messages 2024-09-15 21:47:43 +02:00
Sébastien Helleu 01103cb02a irc: do not strip trailing spaces from incoming IRC messages 2024-09-15 21:47:32 +02:00
Sébastien Helleu 6908eec160 tests: replace POINTERS_EQUAL by STRCMP_EQUAL in string comparisons with NULL 2024-09-14 10:26:42 +02:00
Sébastien Helleu cfd4ab909f core: set max version for Curl symbol CURLAUTH_NTLM_WB 2024-09-11 18:19:26 +02:00
Sébastien Helleu 554892131d core: update ChangeLog (issue #2180) 2024-09-10 07:26:22 +02:00
Fredrik Fornwall a15ae18c81 core: Fix build on Android to define htobe64 2024-09-09 21:48:55 +02:00
Sébastien Helleu 7ed85f3ed3 core: add version 4.4.2 2024-09-08 12:25:42 +02:00
Sébastien Helleu df4acd5d3d core: fix test of Debian patches when there are no patches 2024-09-08 09:27:50 +02:00
Sébastien Helleu bb83685ac6 core: add contributor (issue #2179) 2024-09-07 16:46:27 +02:00
Sébastien Helleu 91961433e3 core: update ChangeLog (closes #2178) 2024-09-07 08:56:33 +02:00
Sébastien Helleu 9aa0a94156 trigger: fix integer overflow in loop (issue #2178) 2024-09-07 08:40:47 +02:00
Sébastien Helleu 970f20af31 relay: fix integer overflow in loops (issue #2178) 2024-09-07 08:40:19 +02:00
Sébastien Helleu 62d0347d4b irc: fix integer overflow in loops (issue #2178) 2024-09-07 08:40:07 +02:00
Sébastien Helleu 5564baf424 core: fix integer overflow in loops (issue #2178) 2024-09-07 08:39:37 +02:00
Yiheng Cao 315f769ab2 core: fix integer overflow in string_free_split functions (issue #2178) 2024-09-07 08:27:43 +02:00
Sébastien Helleu 5f62eb1f2b tests: add tests on function string_rebuild_split_string with empty items 2024-09-07 08:27:26 +02:00
Sébastien Helleu 143f694fe2 core, plugins: add missing parentheses when dereferencing a pointer with an array index 2024-09-05 20:57:29 +02:00
Sébastien Helleu 230c436dd4 core: add note about security issues in GitHub question issue template 2024-09-04 09:21:52 +02:00
Nils Görs b3f34ecf33 core: update German translations 2024-09-03 14:10:20 +02:00
Sébastien Helleu 3253500d15 irc: add option irc.look.notice_nicks_disable_notify 2024-09-02 19:55:27 +02:00
Sébastien Helleu fce44675c4 core: fix typo in French translation 2024-09-02 18:48:54 +02:00
Nils Görs 0ab7c20f0d core: update German translations 2024-09-02 15:46:38 +02:00
Sébastien Helleu b36c6c2e26 doc/faq: fix suggested value for option irc.server.xxx.tls_priorities 2024-08-31 16:32:32 +02:00
Sébastien Helleu 9b969be1f9 doc/user: change fake hostname in weechat relay example
The hostname `example.com` is already used in doc and help on commands.
2024-08-31 08:52:00 +02:00
Sébastien Helleu 954a7462c0 doc/user: add api relay example with https 2024-08-31 08:50:37 +02:00
Sébastien Helleu 434c1ee3c4 relay/api: send the sync request at the same time as buffer data retrieval
This fixes events missed by the client when synchronizing after fetching data.
2024-08-25 21:13:38 +02:00
Sébastien Helleu 6bb4d64512 relay/api: allow array with multiple requests in websocket frame received from client 2024-08-25 20:48:52 +02:00
Sébastien Helleu 4572e46ced relay: change input prompt label when fetching data from remote, keep remote status displayed 2024-08-24 11:25:06 +02:00
Sébastien Helleu c1130446eb relay: add status "data synchronization" on remote buffers 2024-08-24 11:00:52 +02:00
Sébastien Helleu 9f44a1087b core, plugins: simplify help on parameters that can be repeated in commands 2024-08-24 10:59:21 +02:00
Sébastien Helleu 08ad5be78d core: automatically build list of sources used for translations 2024-08-24 10:25:17 +02:00
Sébastien Helleu cba7c764da core: add missing "<id>" in /help buffer for parameter "clear" 2024-08-23 08:27:19 +02:00
Sébastien Helleu c3fd7e4e44 doc: fix color of text with syntax highlighting and light theme 2024-08-22 19:08:42 +02:00
Nils Görs 62f769e736 doc: update German documentation 2024-08-22 08:18:46 +02:00
Sébastien Helleu d4ca32832e relay: redefine bar item "input_prompt" to display the connection status on remote buffers, if different from "connected" 2024-08-21 20:37:00 +02:00
Sébastien Helleu c5a1744c09 ci: add tests on FreeBSD 14 2024-08-20 20:53:41 +02:00
Sébastien Helleu 99d42ba297 ci: change make option from "--jobs=N" to "-j N"
This fixes the following error on FreeBSD:

make: illegal argument to -j -- must be positive integer!
2024-08-20 18:49:07 +02:00
Sébastien Helleu fca21cac3f ci: bump actions/checkout to v4 2024-08-20 18:05:45 +02:00
Sébastien Helleu dfef851516 ci: rename variables with dependencies 2024-08-20 18:03:53 +02:00
Sébastien Helleu 584f54d443 core: add version 4.4.1 in ChangeLog 2024-08-19 20:51:34 +02:00
Sébastien Helleu ed79b8c2e9 ci: update name of jobs 2024-08-19 19:36:13 +02:00
Sébastien Helleu 1f6a7e23ad ci: regroup Ubuntu jobs 2024-08-19 19:31:37 +02:00
Sébastien Helleu 452a20c05e ci: add tests on Rocky Linux 9 2024-08-19 19:24:26 +02:00
Sébastien Helleu bf19d0482c ci: use shorter name for jobs
Name is now the OS followed by the test, for example:

  ubuntu-22.04: gcc

instead of:

  Tests: gcc on ubuntu-22.04
2024-08-19 18:09:52 +02:00
Sébastien Helleu 27b3b50fa9 ci: force Ubuntu version 22.04 in CodeQL job 2024-08-19 18:07:28 +02:00
Sébastien Helleu 237955efcc core: update ChangeLog (issue #2174) 2024-08-17 11:28:00 +02:00
Sébastien Helleu cd5ffb21cb build: replace deprecated "DEPEND" by "BUILD_REQUIRES" in Cygwin packaging 2024-08-17 11:18:20 +02:00
Sébastien Helleu a79c3b6141 build: add license in Cygwin packaging 2024-08-17 10:53:34 +02:00
LuK1337 e215e6b7ae cmake: find 'lua' first
On Fedora, `lua` is an up to date package.
2024-08-17 10:15:52 +02:00
Sébastien Helleu cba83f08a2 core: add Lua version in ChangeLog entry 2024-08-17 10:09:57 +02:00
Sébastien Helleu fa2a87b2e5 core: update ChangeLog (issue #2173) 2024-08-17 09:31:54 +02:00
LuK1337 9f3a68ed15 lua: fix broken LUA_VERSION check
/usr/include/lua-5.1/lua.h:19:25: error: token ""Lua 5.1"" is not valid
in preprocessor expressions
2024-08-17 09:30:11 +02:00
Sébastien Helleu 94f906fd8a Version 4.5.0-dev 2024-08-17 08:36:01 +02:00
Sébastien Helleu 532008e172 Version 4.4.0 2024-08-17 08:33:14 +02:00
Sébastien Helleu 55d7e4c474 relay/weechat: fix uninitialized pointer in infolist command 2024-08-17 08:10:21 +02:00
Sébastien Helleu f153b7e463 core: fix memory leak when trying to add a bar that already exists 2024-08-17 07:58:29 +02:00
Sébastien Helleu c8dffad56c core: add signals "layout_buffers_applied" and "layout_windows_applied" (closes #2167) 2024-08-16 12:36:31 +02:00
Sébastien Helleu 4de6fa11d5 core: add link to file UPGRADING.md in version 4.3.1 2024-08-16 12:05:12 +02:00
Sébastien Helleu 0182153511 core: send signal "buffer_moved" for all buffers affected by merge/unmerge 2024-08-15 21:35:38 +02:00
Sébastien Helleu 6de0195d0a irc: fix send of split messages when server option "anti_flood" set to 0 (closes #2172) 2024-08-15 19:41:08 +02:00
Sébastien Helleu e2edc019cc relay/api: add extra checks on function parameters 2024-08-15 17:48:20 +02:00
Sébastien Helleu b31a8bc1ef doc/faq: add key Alt+Shift+N in questions about copy/paste and URLs 2024-08-15 17:25:36 +02:00
Sébastien Helleu bbb2515b0e doc/faq: add command to set "size_max" for nicklist when bar is moved to top 2024-08-15 16:49:31 +02:00
Sébastien Helleu b6cccb7cee core: add version 4.3.6 in ChangeLog 2024-08-15 15:48:08 +02:00
LuK1337 5b58356390 core: replace manual endianness swap with htobe64() call
This fixes generation of TOTP and tests on FreeBSD.
2024-08-14 12:15:55 +02:00
Sébastien Helleu 17d225ad73 relay: fix compiler warnings on unused parameters when CJSON is disabled 2024-08-14 07:51:41 +02:00
Sébastien Helleu e810cc5f70 doc: add command line option --build-info in man pages and user's guide 2024-08-13 09:46:12 +02:00
Sébastien Helleu 22453e1a37 core: fix German translation 2024-08-13 09:42:36 +02:00
Nils Görs 8e2dda1bc9 core: update German translations 2024-08-13 09:07:44 +02:00
Sébastien Helleu 9c8a39b09e ci: add command weechat --build-info 2024-08-12 22:07:00 +02:00
Sébastien Helleu 0a99ed5f2c core: fix define of CMAKE_BUILD_TYPE and CMAKE_INSTALL_PREFIX in config.h (issue #449) 2024-08-12 21:55:34 +02:00
Sébastien Helleu 071f8f87e7 core: add command line option --build-info / -i to display information about build options (closes #449) 2024-08-12 21:36:17 +02:00
Nils Görs f09855540e core: update German translations 2024-08-12 12:04:59 +02:00
Sébastien Helleu 0637e9f629 lua: remote string "Lua" from Lua version in output of /debug libs 2024-08-12 08:22:48 +02:00
Sébastien Helleu b63f63f001 relay/api: fix send of data to remote after command /upgrade executed in the remote client 2024-08-11 23:35:51 +02:00
Sébastien Helleu 1de8fec2ee relay/api: automatically reconnect to remotes with "autoconnect" enabled after /upgrade 2024-08-11 14:26:36 +02:00
Sébastien Helleu 970aa55f7f relay/api: remove unneeded free of client->http_req->id 2024-08-11 12:27:37 +02:00
Sébastien Helleu a317c785fb relay/api: add automatic reconnection to remote (closes #2166)
New options:

- remote option "autoreconnect_delay"
- relay.api.remote_autoreconnect_delay_growing
- relay.api.remote_autoreconnect_delay_max
2024-08-11 12:18:28 +02:00
Sébastien Helleu fc6811341a irc: fix typo in comment 2024-08-11 11:57:35 +02:00
Sébastien Helleu 6e0f8392b9 doc/relay/api: add event "buffer_time_for_each_line_changed" 2024-08-10 19:06:39 +02:00
Sébastien Helleu 8010eeece3 relay/api: add support of time displayed in remote client buffers 2024-08-10 14:29:30 +02:00
Sébastien Helleu aeac9f02f9 core: add signal "buffer_time_for_each_line_changed" 2024-08-10 14:27:53 +02:00
Sébastien Helleu 24734c4fe0 relay/api: add field "tmie_displayed" in GET /api/buffers 2024-08-10 13:58:58 +02:00
Sébastien Helleu 41ab22554c tests/relay/api: add missing fields in test of buffer to json function 2024-08-10 13:42:38 +02:00
Sébastien Helleu bb2387ec38 relay/api: add support of hidden buffers in remote client (issue #2159) 2024-08-10 12:55:17 +02:00
Sébastien Helleu b00f94dc70 relay/api: add field "hidden" in GET /api/buffers (issue #2159) 2024-08-10 12:42:55 +02:00
Sébastien Helleu 07ef722c06 relay/api: disconnect cleanly when the remote is quitting (closes #2168) 2024-08-09 23:37:33 +02:00
Sébastien Helleu 0296957cce relay/api: add event "quit", sent to clients when WeeChat is quitting (issue #2168) 2024-08-09 23:32:33 +02:00
Sébastien Helleu b4d0054f07 relay/api: disconnect from remote in case of error when sending data 2024-08-09 18:26:02 +02:00
Sébastien Helleu 995cbe542e relay/api: automatically disconnect when the command /upgrade is executed on the remote 2024-08-09 18:23:23 +02:00
Sébastien Helleu 6e775e4768 relay/api: close obsolete buffers when reconnecting to the remote
This closes all buffers that exist locally but not on the remote any more,
after reconnecting to the remote.
2024-08-09 18:08:31 +02:00
Sébastien Helleu e5b6eab2f6 relay/api: do not reset input text on existing buffers when reconnecting to remote 2024-08-09 18:06:42 +02:00
Sébastien Helleu c132adc52c relay/api: fix buffers synchronization with existing buffers that have been renamed on remote in the meanwhile (closes #2169) 2024-08-09 18:04:10 +02:00
Sébastien Helleu 78f0a3e087 relay/api: replace calls to strcmp by weechat_strcmp 2024-08-09 18:02:42 +02:00
Sébastien Helleu eb5399518e relay/api: clear lines and nicklist on all remote buffers upon successful connection to the remote (closes #2161) 2024-08-09 18:01:59 +02:00
Sébastien Helleu 87a5620623 tests: fix typo in header 2024-08-09 07:24:11 +02:00
Sébastien Helleu 828c498a12 core: set proxy option ipv6 to auto by default when creating a new proxy (issue #2164) 2024-08-08 12:43:31 +02:00
Sébastien Helleu eaf6d33f22 core: update translations (issue #2164) 2024-08-06 08:29:23 +02:00
Sébastien Helleu 4e1a0731e7 core: convert proxy option ipv6 from boolean to enum (disable, auto, force) (issue #2164) 2024-08-06 08:27:09 +02:00
Sébastien Helleu 5fe3b38892 irc: convert server option ipv6 from boolean to enum (disable, auto, force) (issue #2164) 2024-08-06 08:25:42 +02:00
Sébastien Helleu e051af0376 api: add constants for IPv6 and allow force of IPv6 in function hook_connect (issue #2164) 2024-08-06 08:25:42 +02:00
Sébastien Helleu ab2bcbac4e doc/plugin: fix Python example of function hook_connect 2024-07-27 09:47:03 +02:00
Sébastien Helleu 8c48b2f310 relay/api: fix connection to remote using an IPv6 address with square brackets (closes #2156) 2024-07-22 17:24:50 +02:00
Sébastien Helleu 9ece7b4d8c core, plugins: fix typo in comments 2024-07-22 11:49:26 +02:00
Sébastien Helleu cadd04693a irc: add support of message 569 (whois, connecting from) (closes #2162) 2024-07-22 10:39:03 +02:00
Sébastien Helleu 1c04f9419c tests: fix comment on test of IRC message 344 2024-07-22 10:38:13 +02:00
Sébastien Helleu 03d8fddafd core: add contributor (issue #2136) 2024-07-21 11:44:53 +02:00
miko e4e0b9764d plugins: refactor macro weechat_va_format with the same behavior as string_asprintf 2024-07-21 11:34:02 +02:00
Sébastien Helleu d3ca619526 relay/api: fix connection to remote without password (closes #2158) 2024-07-20 16:26:53 +02:00
Sébastien Helleu fc197df056 relay/api: allow clients without authentication when no relay password is defined and option relay.network.allow_empty_password is on (issue #2158) 2024-07-20 15:57:56 +02:00
Nils Görs 484b90d39a core: update German translations 2024-07-19 12:59:31 +02:00
Sébastien Helleu 66707dbdf9 relay: add option reconnect in command /remote (closes #2160) 2024-07-19 09:19:34 +02:00
Nils Görs 66792445b4 core: update German translations 2024-07-18 16:14:18 +02:00
Sébastien Helleu b316a7a0c6 script: add info "script_info" 2024-07-17 22:38:47 +02:00
Sébastien Helleu c486a4f60a relay: fix crash when sending data to a remote buffer when the remote has been deleted (closes #2157) 2024-07-16 23:51:46 +02:00
Sébastien Helleu 2646d1b5ad core: add version 4.3.5 in ChangeLog 2024-07-16 23:03:48 +02:00
Sébastien Helleu 40b074c6d6 ruby: fix crash in plugin initialization (closes #2163)
This regression was introduced by commit
701f64afc1.
2024-07-15 09:39:54 +02:00
Sébastien Helleu ceba5f4947 doc/relay: remove duplicated description of data in message "_buffer_line_data_changed"
A link to "_buffer_line_added" is provided as data is exactly the same in this
message.
2024-07-14 09:39:01 +02:00
Sébastien Helleu 620e0dd8b6 doc/relay: fix title of chapter "_buffer_line_changed" in Japanese doc 2024-07-14 09:22:59 +02:00
Sébastien Helleu a957266279 relay: translate connection status in output of commands /relay list and /relay listfull 2024-07-13 10:33:06 +02:00
Sébastien Helleu 2d534aed68 relay: display connection status in output of commands /remote list and /remote listfull 2024-07-13 10:32:56 +02:00
Ivan Pešić b86bd39975 Update Serbian translation 2024-07-10 21:26:59 +02:00
Eric Lalonde 5bd581f8cf irc: fix lag check interval comment
The network lag check interval is stored in irc_config_network_lag_check, which does not default to 5 seconds.
2024-07-08 21:59:49 +02:00
Sébastien Helleu 8e2275cebc relay/api: fix timezone of dates sent to clients (closes #2151) 2024-07-08 19:10:27 +02:00
Sébastien Helleu 7e73da310e relay/api: remove unused macro MSG_ADD_HDATA_TIME (issue #2151) 2024-07-08 19:08:41 +02:00
Sébastien Helleu a75db3488d relay/api: allow body type "buffers" in remote client 2024-07-08 18:16:56 +02:00
Nils Görs 8511fd7b7b core: update German translations 2024-07-08 10:46:19 +02:00
Sébastien Helleu 9d98dee7d9 spell: improve error displayed when a word can not be added to the dictionary (closes #2144) 2024-07-06 11:57:26 +02:00
Nils Görs c6092b67d0 core: update German translations 2024-07-04 11:23:53 +02:00
Sébastien Helleu 42fd085388 core: add version 4.3.4 in ChangeLog 2024-07-03 22:09:05 +02:00
Sébastien Helleu 06685b6e68 core: add info "window" (closes #2141) 2024-07-01 21:23:36 +02:00
Sébastien Helleu 62c89c1e3b core: allow mask in command /item refresh 2024-07-01 20:52:31 +02:00
Sébastien Helleu cac5717b41 relay/api: add body types buffers and lines (array) 2024-06-30 13:01:29 +02:00
Sébastien Helleu a9ed58fae3 core: add relay protocol in ChangeLog entries 2024-06-30 00:38:06 +02:00
Sébastien Helleu 8f13a9cff0 relay/api: fix "body_type" returned when lines or nicks of a buffer are requested
The "body_type" returned is now this one, instead of "buffer":

- `GET /api/buffers/xxx/lines`: "line"
- `GET /api/buffers/xxx/nicks`: "nick_group"
2024-06-30 00:36:29 +02:00
Sébastien Helleu 3828a9f987 tests: add field "request_id" in tests of relay api protocol 2024-06-30 00:22:46 +02:00
Sébastien Helleu 270a822f41 relay/api: bump version in OpenAPI document 2024-06-30 00:15:25 +02:00
Sébastien Helleu 259615d436 relay/api: add field "request_id" in websocket frame (request and response) 2024-06-30 00:11:29 +02:00
Sébastien Helleu 1cacbde6b7 relay: remove check of NULL pointers before calling free functions 2024-06-30 00:11:00 +02:00
Sébastien Helleu f8f6e100d0 relay/api: always set "body_type" and "body" (null if there is no body) in websocket frame 2024-06-29 23:59:59 +02:00
Sébastien Helleu 2184af9d99 relay: flatten JSON event object sent to api relay clients 2024-06-29 19:48:34 +02:00
Sébastien Helleu 86c4f3979a doc/user: change port in examples of weechat relay from 9000 to 9500 2024-06-29 17:37:47 +02:00
Sébastien Helleu 701f64afc1 ruby: fix builtin functions not available (closes #2109) 2024-06-29 07:59:06 +02:00
Sébastien Helleu e6e0843698 core: add missing command /filter in ChangeLog (issue #1956) 2024-06-29 07:41:58 +02:00
Brad Smith de6fe1f3e1 tests: fix compilation of tests on OpenBSD 2024-06-28 23:23:15 +02:00
Sébastien Helleu 3993aa310f relay: send event "buffer_line_data_changed" to clients of "weechat" protocol 2024-06-27 22:21:09 +02:00
Sébastien Helleu 7d6afff01c relay: add line id in buffer lines sent to clients with weechat protocol 2024-06-27 22:12:34 +02:00
Sébastien Helleu 555632b615 relay/remote: update buffer line on event "buffer_line_data_changed" 2024-06-27 21:39:21 +02:00
Sébastien Helleu d5975c96e9 relay: send event "buffer_line_data_changed" to API clients 2024-06-27 21:37:47 +02:00
Sébastien Helleu e9d46b41a1 api: send new signal "buffer_line_data_changed" when a line is updated in a buffer via hdata 2024-06-27 20:55:42 +02:00
Sébastien Helleu b04e1ffd27 relay: fix read of one buffer line in API protocol 2024-06-27 20:55:42 +02:00
Sébastien Helleu f076db4767 api: add function line_search_by_id 2024-06-27 20:55:42 +02:00
Sébastien Helleu 0e9ed21edf tests/scripts: add tests on window functions 2024-06-27 20:55:42 +02:00
Sébastien Helleu 74fabe1946 tests/scripts: add tests on buffer functions 2024-06-27 20:55:42 +02:00
Sébastien Helleu 476708923c tests/scripts: fix comment 2024-06-27 20:55:42 +02:00
Sébastien Helleu c6a4ffb1a7 core: fix crash when deleting a bar that has no items (closes #2138) 2024-06-27 18:52:12 +02:00
Sébastien Helleu 85c7494dc7 python: call empty eval workaround before auto-load of scripts (issue #2046, issue #2126)
This should definitely fix the crash with Python 3.12, even when scripts are
auto-loaded (the previous fix was working only when the scripts are loaded
manually).
2024-06-26 18:44:35 +02:00
Sébastien Helleu 3d3d8f2ea7 scripts: fix reset of "quiet" status in case of nested calls (issue #2046, issue #2126) 2024-06-26 18:43:40 +02:00
Nils Görs dc283dd1c7 core: update German translations 2024-06-24 10:58:24 +02:00
Sébastien Helleu cb4aa8ea65 core: add hdata_count in /help eval 2024-06-23 22:45:09 +02:00
Sébastien Helleu 7cab57fba1 core: update ChangeLog (issue #2046, issue #2126) 2024-06-23 18:42:01 +02:00
Trygve Aaberge 830b152776 python: unload script interpreters before eval interpreter
The workaround in the previous commit didn't work for one user, so try
unloading the eval interpreter last to see if that helps.
2024-06-23 18:40:18 +02:00
Trygve Aaberge c325dedf05 python: add workaround for crash on unload with Python 3.12
Python 3.12 has a bug where it crashes when you unload all the
interpreters unless you make sure to unload the first interpreter you
loaded last. For some reason, loading the eval interpreter before any
scripts also seems to prevent the issue, even if the eval interpreter is
unloaded before the other interpreters.

So this just evals an empty string at the end of initing the Python
plugin if the Python version is 3.12, to make sure the eval interpreter
is loaded first.

Fixes #2046
2024-06-23 18:40:18 +02:00
Sébastien Helleu 03048895ec core: add distribution in bug report template 2024-06-23 13:34:19 +02:00
Sébastien Helleu 0f1441a78c core: fix command /bar addreplace with input bar (issue #2095)
Now the bar item "input_text" is added only after creating the new input bar,
so it can be added or replaced like the other bars.
2024-06-23 09:47:05 +02:00
Krzysztof Korościk c885a5031f core: update polish translation 2024-06-22 19:44:25 +02:00
Sébastien Helleu 4fbea53439 core: add version 4.3.3 in ChangeLog 2024-06-22 11:50:09 +02:00
Sébastien Helleu c34d522bb7 core: fix cast of pointer to unsigned long long
This fixes a warning displayed by the gcc compiler.
2024-06-22 10:21:00 +02:00
Sébastien Helleu 2a6b16d1de tests: add tests of hdata returning NULL pointer in eval 2024-06-22 09:08:47 +02:00
Sébastien Helleu bdfa1bd51c core, plugins: return "0x0" instead of "(nil)" for pointers formatted in strings
This is a partial revert of the commit
965beb37de.
2024-06-22 08:54:08 +02:00
Sébastien Helleu a75a947f5f irc: fix apply of custom buffer property "short_name" when a channel buffer is renamed 2024-06-19 21:43:08 +02:00
Sébastien Helleu 0d8e3a48ee core: apply buffer properties (options weechat.buffer.*) when a buffer name is changed 2024-06-19 21:42:38 +02:00
Sébastien Helleu 7cd8312bf9 irc: fix property "short_name" of channel buffer when the joined channel has a different case than the /join command 2024-06-19 20:52:02 +02:00
Sébastien Helleu 1fcf5ac5b3 core, plugins: force "short_name" in buffers to non-empty value (name by default), remove buffer property "short_name_is_set" 2024-06-18 20:34:58 +02:00
Sébastien Helleu eb83e8d018 doc/relay: add doc on "api" relay 2024-06-18 20:32:05 +02:00
Sébastien Helleu 7d4e0acfef doc/relay: move diagram to an include file 2024-06-16 20:27:57 +02:00
Sébastien Helleu b18af8dcf4 doc: add shell syntax highlighting 2024-06-16 20:05:45 +02:00
Sébastien Helleu 94bcf98c63 doc/relay: add "api" in list of other relay protocols 2024-06-16 20:05:45 +02:00
Sébastien Helleu 23e3a60e4e debian: add Serbian docs in packaging 2024-06-16 20:05:45 +02:00
Sébastien Helleu 7b39706716 debian: add Czech quickstart guide in packaging 2024-06-16 20:05:45 +02:00
Sébastien Helleu 8e7597815f doc: rename doc "weechat_relay_protocol" to "weechat_relay_weechat" 2024-06-16 20:05:45 +02:00
Ivan Pešić 8f952a4b29 doc: Update Serbian documentation 2024-06-16 20:04:28 +02:00
Ivan Pešić 3155764eb5 core: Update Serbian translation 2024-06-16 20:04:28 +02:00
Sébastien Helleu 36ca300b8d Revert "core: replace "%lx" by "%p" in function relay_weechat_msg_add_pointer"
This reverts commit 8923ecc7d8.
2024-06-16 10:16:51 +02:00
Sébastien Helleu 740aa49271 irc: rename parameter -re to -raw in command /list (closes #2124) 2024-06-16 09:15:03 +02:00
Sébastien Helleu d171c1682c doc/api: replace format "%lx" by "%p" in examples 2024-06-14 22:14:28 +02:00
Sébastien Helleu 8923ecc7d8 core: replace "%lx" by "%p" in function relay_weechat_msg_add_pointer 2024-06-14 18:10:45 +02:00
Sébastien Helleu f8d98bbd5e core: replace "%lx" by "%p" in dump of relay data 2024-06-14 18:10:18 +02:00
Sébastien Helleu d0830b9255 relay: fix dump of variable "websocket_key" 2024-06-14 18:09:53 +02:00
Sébastien Helleu e482360eba core: replace "%lx" by "%p" in debug of windows 2024-06-14 18:02:45 +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 ce79d218a4 core: remove duplicate search of pointer in hashtable for evaluation of "hdata_count" 2024-06-14 17:37:47 +02:00
Sébastien Helleu c83b08fae8 tests: add test on function hdata_count with empty list "gui_layouts" 2024-06-14 17:37:11 +02:00
Sébastien Helleu ce3c5f0caa core: add hdata count in evaluation of expressions
Syntax is one of:

- `hdata_count:name[list]`: uses a hdata name and list
- `hdata_count:name[pointer]`: uses a hdata name and pointer (count starts at
  this pointer)
2024-06-14 17:04:06 +02:00
Sébastien Helleu 8945b7bf33 core: add function hdata_count 2024-06-14 17:04:06 +02:00
Sébastien Helleu 24e023d467 core: fix id of core buffer in hashtable gui_buffer_by_id after /upgrade 2024-06-11 08:13:20 +02:00
Sébastien Helleu 79a7766466 core: fix typo in comment 2024-06-11 08:09:32 +02:00
Sébastien Helleu 9b356733a9 core: allow buffer id in commands /buffer and /print, in addition to number and name 2024-06-11 08:03:09 +02:00
Sébastien Helleu 63148c5cc8 doc/api: add type "long long" in function hashtable_get_string 2024-06-11 07:17:28 +02:00
Sébastien Helleu 8366c32b0a core: add hashtable to quickly find buffers by id 2024-06-10 23:55:34 +02:00
Sébastien Helleu 70417a1ac6 api: add hashtable type "longlong" 2024-06-10 23:55:34 +02:00
Sébastien Helleu 93433e5dd7 tests: add tests on hashtable with different key/value types 2024-06-10 19:42:57 +02:00
Sébastien Helleu dc902b4e0a api: allow NULL value for key in hashtable 2024-06-10 19:42:47 +02:00
Sébastien Helleu 26c01e30c3 core, plugins: remove unneeded break after return 2024-06-10 15:10:25 +02:00
Sébastien Helleu 023a3b90fa core: fix refresh of bar item "scroll" in root bar after /buffer clear (closes #590) 2024-06-10 14:29:29 +02:00
Sébastien Helleu 7395387ebe core: add issue #446 in ChangeLog 2024-06-10 13:45:09 +02:00
Sébastien Helleu 3ee5341fbc perl: use lower case for CMake keywords 2024-06-10 09:01:27 +02:00
Sébastien Helleu 39cb0942a2 perl: fix quote of variable PERL_LFLAGS in CMake file 2024-06-10 08:59:36 +02:00
Sébastien Helleu 920d06bd27 core, plugins: fix return code of command callbacks in case of error 2024-06-10 08:17:25 +02:00
Sébastien Helleu 3835351226 tests: add placeholder for tests on function irc_list_export 2024-06-09 23:51:00 +02:00
Sébastien Helleu b0f0afd7fa fset: fix typo in /help fset 2024-06-09 23:16:32 +02:00
Sébastien Helleu 8824ff7d6c irc: add option -export in command /list, add option irc.look.list_buffer_format_export 2024-06-09 23:15:26 +02:00
Sébastien Helleu fb86ddc770 irc: clear /list buffer when disconnecting from server (closes #2133) 2024-06-09 18:35:22 +02:00
Sébastien Helleu d63553a73d irc: display an explicit message on /list buffer when the list of channels is empty (issue #2133) 2024-06-09 18:34:35 +02:00
Sébastien Helleu 85c8866407 relay: add option addreplace in command /remote (issue #2095) 2024-06-09 16:58:37 +02:00
Sébastien Helleu 337c9c840d relay: add option addreplace in command /relay (issue #2095) 2024-06-09 16:58:25 +02:00
Sébastien Helleu eaead31b11 irc: add option addreplace in command /server (issue #2095) 2024-06-09 16:58:12 +02:00
Sébastien Helleu a8525b41b3 irc: add option addreplace in command /notify (issue #2095) 2024-06-09 16:58:00 +02:00
Sébastien Helleu b7d2bd5c9e irc: add option addreplace in command /ignore (issue #2095) 2024-06-09 16:57:44 +02:00
Sébastien Helleu f4aab20bb4 core: add option addreplace in command /proxy (issue #2095) 2024-06-09 16:55:53 +02:00
Sébastien Helleu b45584114f core: remove "breaking" tag in ChangeLog 2024-06-09 16:53:36 +02:00
Krzysztof Korościk 37eda67776 updated polish translation
Signed-off-by: Krzysztof Korościk <soltys@soltys.info>
2024-06-09 14:51:39 +02:00
Sébastien Helleu e06e4d1457 core, plugins: use variable "argv" in calls to macro COMMAND_MIN_ARGS 2024-06-09 10:53:05 +02:00
Sébastien Helleu ea3486dae3 core: add option addreplace in command /bar (issue #2095) 2024-06-09 10:17:27 +02:00
Sébastien Helleu 6499d77e1d alias: add options addreplace and addreplacecompletion in command /alias (issue #2095)
The commands `/alias add` and `/alias addcompletion` now return an error if the
alias already exists.
2024-06-09 10:15:44 +02:00
Sébastien Helleu df67f7a0ea core: fix completion of command /item refresh 2024-06-09 09:11:03 +02:00
Sébastien Helleu 12b8ebe4e4 core: add completion "bars_items" 2024-06-09 09:09:09 +02:00
Sébastien Helleu 6306bac20b core: fix French translation of parameter "refresh" in /help item 2024-06-09 09:06:55 +02:00
Sébastien Helleu 843dcd49b5 tests: add more tests on function string_split_shell 2024-06-08 14:24:43 +02:00
LuK1337 44238650bc tests: relay: fix relay_http_parse_header function prototype 2024-06-07 12:39:40 +02:00
Sébastien Helleu 6b7137aa25 tests: reset option relay.network.websocket_allowed_origins after changing it in tests (closes #2127)
This fixes a test failure when the test changing the option is executed before
this one:

…/tests/unit/plugins/relay/api/test-relay-api-protocol.cpp:799: error: Failure in TEST(RelayApiProtocolWithClient, RecvJson)
        expected <HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: Z5uTZwvwYNDm9w4HFGk26ijp/p0=

>
        but was  <HTTP/1.1 403 Forbidden
Content-Length: 0

>
        difference starts at position 9 at: < HTTP/1.1 403 Forbid>
2024-06-07 12:33:17 +02:00
Sébastien Helleu 3d20ad8b5c doc/user: mention pkgconf with pkg-config in dependencies 2024-06-07 07:44:39 +02:00
Sébastien Helleu da97614e03 ci: install pkg-config with homebrew 2024-06-07 07:44:03 +02:00
Sébastien Helleu c6481451cb ci: replace package pkg-config by pkgconf 2024-06-07 07:38:05 +02:00
Sébastien Helleu f59eb83da4 debian: update changelog 2024-06-06 22:51:09 +02:00
Sébastien Helleu 2648d87a65 debian: replace pkg-config build dependency by pkgconf 2024-06-06 22:50:33 +02:00
Sébastien Helleu 1a21ab10fa core: add version 4.3.2 in ChangeLog 2024-06-06 22:09:02 +02:00
Sébastien Helleu 396f47e9ae xfer: fix display of input prompt in DCC chat buffers (issue #2128) 2024-06-06 13:30:25 +02:00
Sébastien Helleu 0b1e940829 irc: fix display of input prompt in private buffers (closes #2128) 2024-06-05 21:03:44 +02:00
Sébastien Helleu 7cf45707ea tests: add test on info "irc_buffer" with a valid server and a non-existing channel 2024-06-02 23:08:03 +02:00
Sébastien Helleu f104b4119a irc: don't return pointer to irc server if the channel or nick is not found in info "irc_buffer" 2024-06-02 22:49:41 +02:00
Sébastien Helleu 4d0378d579 core: fix style for breaking changes in ChangeLog 2024-06-02 22:48:00 +02:00
Sébastien Helleu a12419b888 core: add link to issue #1549 for ChangeLog entries about permessage-deflate 2024-06-02 09:54:47 +02:00
Sébastien Helleu 26fa0ea1b8 relay: enable websocket extension "permessage-deflate" with "api" relay only 2024-06-02 09:05:40 +02:00
Krzysztof Korościk 7b90b1fbf4 doc: update polish translation 2024-06-01 22:23:05 +02:00
Krzysztof Korościk 61f31eafcf core: update polish translation 2024-06-01 22:07:06 +02:00
Sébastien Helleu 9264803bc3 relay: fix websocket permessage-deflate extension when the client doesn't send the max window bits parameters 2024-06-01 15:15:01 +02:00
Sébastien Helleu d05df9ee21 relay: fix allocation and reinit of field "client_context_takeover" in websocket deflate structure 2024-06-01 14:42:55 +02:00
Sébastien Helleu 8dad5403ee relay: add quotes around protocol names in options, mention "api" before "weechat" 2024-06-01 13:05:27 +02:00
Sébastien Helleu e39a309365 relay: add option relay.network.websocket_permessage_deflate 2024-06-01 12:58:17 +02:00
Nils Görs b5b063a836 core: update German translations 2024-05-31 20:33:09 +02:00
Sébastien Helleu 2dd083554b core: remove duplicate entry in upgrade guidelines 2024-05-31 13:58:25 +02:00
Sébastien Helleu d6e69792ca core: add version 4.3.1 in ChangeLog and upgrade guidelines 2024-05-31 13:45:34 +02:00
Sébastien Helleu cd75ad0545 core: add version 4.2.3 in ChangeLog 2024-05-31 13:44:06 +02:00
Sébastien Helleu d6ffe1857b doc/api: fix typo in function string_cut 2024-05-31 12:24:33 +02:00
Sébastien Helleu b38cf0e9a3 relay: use API function string_cut to truncate raw relay messages
This is faster than the custom function that was adding " (...) " in the middle
of the message.
2024-05-31 12:04:13 +02:00
Sébastien Helleu 768416983c xfer: fix send of data on the DCC chat buffer after /upgrade if the buffer was opened before the upgrade (closes #2092) 2024-05-31 08:11:55 +02:00
Nils Görs ce1fc02dee core: update German translations 2024-05-29 23:22:31 +02:00
Sébastien Helleu e841c11b54 relay: add option relay.look.raw_messages_max_length (issue #2122) 2024-05-29 23:07:58 +02:00
Sébastien Helleu 6152812bff doc/user: add internal links to commands and options 2024-05-29 21:14:25 +02:00
Nils Görs 5cff9c0e46 core: update German translations 2024-05-27 22:27:27 +02:00
Sébastien Helleu bd8e0d8bfa relay/remote: add translations for some messages displayed 2024-05-27 21:46:24 +02:00
Sébastien Helleu 3d39f7e86c core: remove versions without upgrade guidelines 2024-05-27 12:12:24 +02:00
Sébastien Helleu 030d82148c core: update examples in Debian build script 2024-05-27 08:58:56 +02:00
Sébastien Helleu bf4e47b9f2 core: fix detection of libgcrypt ≥ 1.11 (debian #1071960)
Use pkg-config to detect libgcrypt, since command `libgcrypt-config` is not
available any more.

Remove patches for Debian/Raspbian Buster and Ubuntu Bionic: detection of
libgcrypt don't work any more with version 1.8.4 on Debian Buster and 1.8.1 on
Ubuntu Bionic (both versions don't provide the file `libgcrypt.pc`).
2024-05-27 08:15:59 +02:00
Sébastien Helleu 85c02e9137 irc: close /list buffer when the server buffer is closed (closes #2121) 2024-05-27 07:40:03 +02:00
Sébastien Helleu 8d86d85b66 relay: fix compiler warnings when cJSON is disabled 2024-05-26 23:46:52 +02:00
Sébastien Helleu 5a8751b9eb core, relay: fix include directory of libcjson and libzstd 2024-05-26 23:13:49 +02:00
Sébastien Helleu 96f9942aed php: fix return value of function hdata_longlong 2024-05-26 16:24:16 +02:00
Sébastien Helleu 449e5ae705 core: add link to issues in ChangeLog 2024-05-26 16:05:56 +02:00
Sébastien Helleu 51d2d71a04 core: update ChangeLog 2024-05-26 16:02:46 +02:00
LuK1337 4e01c077d6 tcl: fix return value for hdata_longlong
Using API_RETURN_LONG() here breaks tests on i368.
2024-05-26 15:59:12 +02:00
Sébastien Helleu 917054c58d tests: fix compilation of tests on Rocky 9.4 2024-05-26 15:41:52 +02:00
Sébastien Helleu d1ae17a8e0 core: add note about lag in buflist in upgrade guidelines 2024-05-26 14:37:48 +02:00
Sébastien Helleu d616f5bc55 core: update ChangeLog 2024-05-26 14:10:10 +02:00
LuK1337 14187b3834 tests: relay: fix HotlistToJson test on s390x
1: error: Failure in TEST(RelayApiMsg, HotlistToJson)
1: 	expected <2024-05-26T10:29:37.716512Z>
1: 	but was  <2024-05-26T10:29:37.000000Z>
1: 	difference starts at position 20 at: <T10:29:37.000000Z   >
2024-05-26 14:03:04 +02:00
LuK1337 9bd1ea1e5e tests: scripts: fix wrong ifdef check 2024-05-26 14:00:07 +02:00
LuK1337 6f774a8e8e tests: relay: add missing <string.h> include
Fixes build error on Fedora 40.
2024-05-26 13:58:35 +02:00
Sébastien Helleu 62ab68715d relay: add infos "relay_api_version" and "relay_api_version_number" 2024-05-26 10:44:23 +02:00
Sébastien Helleu 603c44a64d core: replace emails by links to GitHub accounts in AUTHORS.md 2024-05-26 10:27:30 +02:00
Sébastien Helleu a86c329b4c core: rename and convert AUTHORS.adoc to AUTHORS.md 2024-05-26 10:27:30 +02:00
Sébastien Helleu d0d1d2e4b9 core: rename and convert README.adoc to README.md 2024-05-26 10:27:30 +02:00
Sébastien Helleu 5d0784bd52 core: rename and convert Contributing.adoc to CONTRIBUTING.md 2024-05-26 10:27:30 +02:00
Sébastien Helleu 3653f4b7a2 core: rename and convert ReleaseNotes.adoc to UPGRADING.md 2024-05-26 10:27:25 +02:00
Sébastien Helleu 8260421767 core: rename and convert ChangeLog.adoc to CHANGELOG.md 2024-05-26 10:26:23 +02:00
Sébastien Helleu 688c77d9f5 Version 4.4.0-dev 2024-05-26 09:21:28 +02:00
Sébastien Helleu b407de4c3b Version 4.3.0 2024-05-26 09:16:17 +02:00
Sébastien Helleu 8444670ef1 relay/api: set API version to 0.1.0 in OpenAPI document 2024-05-26 08:39:28 +02:00
Sébastien Helleu 657805ca25 core: add relay options renamed in release notes 2024-05-26 08:24:08 +02:00
Sébastien Helleu 12378b3a19 relay/api: set API version to 0.1.0 2024-05-26 00:04:28 +02:00
Sébastien Helleu 7684d5a3d1 tests: add test of IRC message split with newline but no server 2024-05-25 19:48:41 +02:00
Sébastien Helleu 2488466b0c irc: fix crash in split of IRC message containing a newline if the server is not given 2024-05-25 19:28:49 +02:00
Sébastien Helleu 647ca0c047 tests: remove dead assignments 2024-05-25 19:22:13 +02:00
Sébastien Helleu 1452497b32 tests: fix tests on hook_infolist_get with an invalid pointer 2024-05-25 19:13:08 +02:00
Sébastien Helleu 2c7057bf22 relay/remote: fix relay API version comparison with a string that can be NULL 2024-05-25 19:11:25 +02:00
Krzysztof Korościk e97dc832e5 doc: updated polish translation 2024-05-25 13:57:13 +02:00
Krzysztof Korościk 7b4d374efd core: updated polish translation 2024-05-25 13:35:09 +02:00
Sébastien Helleu 5294249515 relay: fix compiler warning in call to snprintf
This fixes the following warning emitted by gcc:

…/relay-http.c:1207:32: warning: ‘%s’ directive output may be truncated writing up to 1023 bytes into a region of size 64 [-Wformat-truncation=]
 1207 |                               "%s[%d bytes data]",
      |                                ^~
 1208 |                               str_header,
      |                               ~~~~~~~~~~
…/relay-http.c:1207:31: note: directive argument in the range [1, 2147483647]
 1207 |                               "%s[%d bytes data]",
      |                               ^~~~~~~~~~~~~~~~~~~
…/relay-http.c:1206:21: note: ‘snprintf’ output between 15 and 1047 bytes into a destination of size 64
 1206 |                     snprintf (raw_message, length_raw,
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1207 |                               "%s[%d bytes data]",
      |                               ~~~~~~~~~~~~~~~~~~~~
 1208 |                               str_header,
      |                               ~~~~~~~~~~~
 1209 |                               *ptr_body_size);
      |                               ~~~~~~~~~~~~~~~
2024-05-24 21:08:10 +02:00
Nils Görs 2b81cce9e0 doc: update German documentation 2024-05-24 11:02:16 +02:00
Nils Görs 8814d1d5c4 core: update German translations 2024-05-24 10:45:50 +02:00
Sébastien Helleu 4a4fbce5dd core: update translations 2024-05-23 21:03:43 +02:00
Sébastien Helleu f4a789c327 core: rename Twitter to X in README 2024-05-23 21:01:12 +02:00
Sébastien Helleu 037afc5e92 core: remove release notes for versions where no manual action is required upon upgrade 2024-05-22 00:36:23 +02:00
Sébastien Helleu 17435d5532 core: group changes and sort them by importance in ChangeLog
Changes are now grouped by category:

- `Changed`: changes in existing features
- `Added`: new features
- `Removed`: removed features
- `Fixed`: bug fixed

Changes are also sorted by importance: breaking changes and most important
changes first in each category.

Link to release notes is mentioned in each release for which manual actions are
required upon upgrade.
2024-05-21 23:40:53 +02:00
Sébastien Helleu 6704b1b21c core: add missing list header in v4.0.1 2024-05-21 21:42:55 +02:00
Sébastien Helleu cb08919baf relay/openapi: add note about websocket connection in sync endpoint 2024-05-19 15:49:37 +02:00
Sébastien Helleu c67eb4e656 relay/openapi: remove example from description 2024-05-19 15:48:45 +02:00
Sébastien Helleu 9605501c66 relay/openapi: add complete description for authentication, add header "x-weechat-totp" 2024-05-19 15:31:16 +02:00
Sébastien Helleu e9c14d6548 relay/openapi: replace "summary" by "description" in paths 2024-05-19 14:23:36 +02:00
Sébastien Helleu 54f2c7f2e0 doc/user: add relay "api" (issue #2066) 2024-05-19 13:26:47 +02:00
Sébastien Helleu 44ca4b41f3 relay/remote: check that remote API is exactly the same version as local one upon connection 2024-05-19 11:26:50 +02:00
Sébastien Helleu cc544e3e3a relay/remote: fix error displayed when an error happens in a callback 2024-05-19 10:52:26 +02:00
Krzysztof Korościk a749e3423f core: updated polish translation 2024-05-18 17:52:14 +02:00
Sébastien Helleu 8949a65f52 relay/remote: fix highlight on lines received from remote 2024-05-18 09:51:39 +02:00
Sébastien Helleu 2423fdbf2d core: add option weechat.look.config_permissions (closes #2057) 2024-05-18 09:16:47 +02:00
Sébastien Helleu 839ffc4b0c irc: store lag in channel and private buffers (local variable "lag"), in addition to the server buffer 2024-05-16 08:23:28 +02:00
Sébastien Helleu 5c79933faa core: add bar item "lag"
This bar item is overridden by the irc bar item with the same name, but it used
on relay remote buffers, so that the lag is visible as well.
2024-05-16 07:58:52 +02:00
Sébastien Helleu 47f40f961a relay/remote: add, update and remove buffer local variables received from remote 2024-05-16 07:45:02 +02:00
Sébastien Helleu 1100b0e694 relay/remote: set "input" and "input_pos" only upon buffer creation
This prevents unexpected updates of input on remote buffer whenever something
changes in the buffer, like a local variable, but with the same unchanged
input.
2024-05-16 07:22:24 +02:00
Sébastien Helleu 761d2dec12 core: send signal "buffer_localvar_{added|changed}" only if local variable has been added or changed 2024-05-16 07:16:11 +02:00
Sébastien Helleu 6db01bee34 ci: add tests of OpenAPI document with schemathesis 2024-05-15 21:25:50 +02:00
Sébastien Helleu 4c565413bb relay/api: add OpenAPI document (issue #2066) 2024-05-15 21:20:22 +02:00
Nils Görs b916ed6cf7 core: update German translations 2024-05-15 18:07:34 +02:00
Sébastien Helleu 484abc68fc relay: add option "autoconnect" in remote
This option enables auto-connection to the remote, unless command line option
`-a` (`--no-connect`) is given.
2024-05-14 22:27:11 +02:00
Nils Görs f116061868 core: update German translations 2024-05-14 08:48:20 +02:00
Sébastien Helleu 878c0a5d66 irc: allow range in commands /unban and /unquiet (closes #2113) 2024-05-13 23:05:39 +02:00
Sébastien Helleu 8009b21803 irc: use dynamic string in function irc_command_mode_masks 2024-05-13 22:50:42 +02:00
Sébastien Helleu 05e12c0232 core: update French translations 2024-05-13 22:50:42 +02:00
Sébastien Helleu 8de2a36ac2 relay: add protocol "api" in completion of command "/relay add" 2024-05-12 22:16:14 +02:00
Sébastien Helleu 539a51f9e1 relay/api: add different return codes for callbacks 2024-05-12 22:11:41 +02:00
Sébastien Helleu 3aec35aeec relay/remote: set modes on buffer event 2024-05-12 12:46:32 +02:00
Sébastien Helleu 3bfb7d7f04 relay/api: add field "modes" in GET /api/buffers 2024-05-12 12:46:32 +02:00
Sébastien Helleu dcb8fcb6ed irc: rename option irc.color.item_channel_modes to weechat.color.status_modes 2024-05-12 12:46:32 +02:00
Sébastien Helleu fb4d2d30f4 irc: remove redefinition of bar item "buffer_modes"
The new buffer property "modes" is used instead.
2024-05-12 12:46:32 +02:00
Sébastien Helleu e7b2d98b6e core: add buffer property "modes" 2024-05-12 09:26:10 +02:00
Sébastien Helleu e57777acb1 doc/api: translate buffer property "input_prompt" to French 2024-05-12 08:48:16 +02:00
Sébastien Helleu fa07d98f06 doc/api: add version 4.3.0 for signal "input_prompt_changed" 2024-05-12 08:42:36 +02:00
Sébastien Helleu c1083d022d irc: restore input prompt after upgrade on server and channel buffers 2024-05-12 01:31:54 +02:00
Sébastien Helleu 464b019929 core: restore buffer input prompt on /upgrade 2024-05-12 01:31:54 +02:00
Sébastien Helleu 1a0b9427e0 core: fix conversion of WeeChat bar colors to ANSI colors 2024-05-11 14:05:52 +02:00
Sébastien Helleu 32b01a606c core: fix conversion of WeeChat "default" color to ANSI color 2024-05-11 14:05:52 +02:00
Sébastien Helleu a456c3db86 tests: split strings with colors for readability 2024-05-11 14:05:52 +02:00
Sébastien Helleu 77145d32ad relay/remote: set input prompt on buffer event 2024-05-11 14:05:52 +02:00
Sébastien Helleu cdeac1b693 relay/api: add field "input_prompt" in GET /api/buffers 2024-05-11 14:05:52 +02:00
Sébastien Helleu 827a056790 irc: remove redefinition of bar item "input_prompt"
The new buffer property "input_prompt" is used instead.
2024-05-11 14:05:52 +02:00
Sébastien Helleu 7634774327 core: add buffer property "input_prompt" 2024-05-10 08:54:03 +02:00
Sébastien Helleu e69cffd9bc irc: fix nick comparison in function irc_server_set_nick 2024-05-10 08:27:41 +02:00
Sébastien Helleu 5991278637 irc: rename function irc_server_buffer_set_input_multiline to irc_server_set_buffer_input_multiline 2024-05-09 15:55:31 +02:00
Sébastien Helleu 1a8c40826e core: refresh buffer only if nicklist_display_groups has changed 2024-05-08 13:29:12 +02:00
Sébastien Helleu d14bc12282 core: refresh buffer only if nicklist has changed 2024-05-08 13:28:47 +02:00
Sébastien Helleu 0c9bbb5d4f core: refresh buffer only if time_for_each_line has changed 2024-05-08 13:28:24 +02:00
Sébastien Helleu df52b57c33 core: add function gui_buffer_set_filter 2024-05-08 13:23:50 +02:00
Sébastien Helleu 7addd1bf00 core: add function gui_buffer_set_input 2024-05-08 13:19:40 +02:00
Sébastien Helleu 28f75d17dc tests: add placeholder for tests on function gui_buffer_set_input_get_any_user_data 2024-05-08 13:19:15 +02:00
Sébastien Helleu 1050ba851f core: fix buffer title comparison in function gui_buffer_set_title 2024-05-08 12:50:08 +02:00
Sébastien Helleu 103684b15e core: merge conditions in function gui_buffer_set_type 2024-05-08 12:49:17 +02:00
Sébastien Helleu 7546ee08ca core: fix buffer short name comparison in function gui_buffer_set_short_name 2024-05-08 12:48:21 +02:00
Sébastien Helleu 1aeea38355 core: fix buffer name comparison in function gui_buffer_set_name 2024-05-08 12:09:26 +02:00
Sébastien Helleu 9ce666fc31 core: check that buffer is not NULL in function gui_input_set_pos 2024-05-08 12:08:50 +02:00
Sébastien Helleu b2c7682242 core: add function gui_buffer_set_notify 2024-05-08 12:08:50 +02:00
Sébastien Helleu 2aa1b950cd core: add function gui_buffer_set_day_change 2024-05-08 12:08:50 +02:00
Sébastien Helleu 0df1cde496 tests: fix typo in comment 2024-05-08 09:30:33 +02:00
Sébastien Helleu 9f536d3dc7 api: return -1 or 1 if one input string is NULL and not the other in string comparison functions 2024-05-08 09:30:20 +02:00
Sébastien Helleu 4d0458afdd relay/remote: set input multiline on buffer event 2024-05-07 21:38:43 +02:00
Sébastien Helleu 92dfd2425f relay/remote: set buffer input and cursor position on buffer event 2024-05-07 21:38:24 +02:00
Ivan Pešić be621205e9 doc: update Serbian translation 2024-05-07 18:59:40 +02:00
Ivan Pešić 4ad497ce01 core: update Serbian translation 2024-05-07 18:59:40 +02:00
Sébastien Helleu da8353c54f relay: change default value of option "relay.network.commands" to *,!quit 2024-05-07 13:58:31 +02:00
Sébastien Helleu 44c96f6abf relay/remote: reuse an existing remote buffer 2024-05-05 23:57:46 +02:00
Sébastien Helleu 177b0a4299 relay/remote: synchronize input with remote relay 2024-05-05 23:57:02 +02:00
Sébastien Helleu 75270d7841 relay/api: add optional synchronization of input 2024-05-05 23:56:33 +02:00
Sébastien Helleu 6526cc230a relay/api: add input fields in GET /api/buffers
New fields returned:

- "input" (string): content of input
- "input_position" (integer): position in input (starts at 0)
- "input_multiline" (boolean): true if the buffer allows multiline input
2024-05-05 23:07:42 +02:00
Sébastien Helleu 211cd11c2a relay/api: add parameter "lines_free" in GET /api/buffers
This parameter is the number of lines to return for buffers with free content.

Its default value is `0` if "lines" is set to `0`, otherwise all buffer lines
are returned.
2024-05-05 22:30:04 +02:00
Sébastien Helleu 9ceea3697b relay/api: fix read of buffer lines when lines parameter is LONG_MIN 2024-05-05 17:49:20 +02:00
Sébastien Helleu 0cf504dce7 tests: add test on relay API preflight request (OPTIONS) 2024-05-05 14:13:03 +02:00
Sébastien Helleu 6839974a07 tests: fix relay API protocol tests 2024-05-05 11:37:05 +02:00
Sébastien Helleu 25e3a631b9 relay/api: reply to preflight request OPTIONS received from browsers (CORS)
This adds the support of Cross-Origin Resource Sharing (CORS) in the relay HTTP
API.
2024-05-05 11:08:37 +02:00
Sébastien Helleu 998bb89c98 relay/api: send all nicks when a buffer is opened 2024-05-04 13:58:01 +02:00
Sébastien Helleu ccf23ae51e relay/remote: run callback based on event name instead of body type 2024-05-04 13:43:03 +02:00
Sébastien Helleu 6321669cd5 relay/remote: clear remote buffer when event "buffer_cleared" is received 2024-05-04 12:35:10 +02:00
Sébastien Helleu 586e66d6fa tests: add placeholders for tests on relay api remote event functions 2024-05-04 11:41:23 +02:00
Sébastien Helleu a21fa3359d relay/remote: fix close of remote buffer 2024-05-04 11:40:49 +02:00
Sébastien Helleu 4ac120e435 relay/remote: fix alignment of variable in debug print to log file 2024-05-04 08:55:57 +02:00
Sébastien Helleu b21b64bc44 relay/remote: do not display error if the buffer is not found in a line/nick event 2024-05-04 08:39:56 +02:00
Sébastien Helleu 68ff525d2e relay/api: do not relay any signal received on a relay buffer
This fixes a creation of multiple fset buffers on remote when /fset is used on
the server.
2024-05-03 19:12:43 +02:00
Eli Schwartz 7e79dd92ba core: conditionally declare variable only used in conditional code
Avoids emitting a compiler diagnostic by default for non-NLS builds for
-Wunused-variable.
2024-05-03 18:49:20 +02:00
Eli Schwartz cefc6820c1 core: remove unused header
weechat.h already handles libintl.h and defining suitable macros.
Including it again does nothing other than emit a compile warning when
compiling without NLS:

In file included from /var/tmp/portage/net-irc/weechat-9999/work/weechat-9999/src/core/core-doc.c:35:
/var/tmp/portage/net-irc/weechat-9999/work/weechat-9999/src/core/weechat.h:49: warning: "gettext" redefined
   49 |     #define gettext(string) (string)
      |
In file included from /var/tmp/portage/net-irc/weechat-9999/work/weechat-9999/src/core/core-doc.c:30:
/usr/include/libintl.h:109: note: this is the location of the previous definition
  109 | # define gettext(msgid) dgettext (NULL, msgid)
2024-05-03 18:49:20 +02:00
Sébastien Helleu 9f7b4c497e core: remove unused variable "used" 2024-05-03 07:15:55 +02:00
Sébastien Helleu d85205ca8a irc: remove unneeded parameter in call to irc_list_alloc() 2024-05-03 07:12:34 +02:00
Sébastien Helleu 06d10ad193 core: fix prototype of function "resizeterm" in fake ncurses interface 2024-05-02 21:44:01 +02:00
Sébastien Helleu 8f86f319ca relay: fix use of uninitialized variable "ptr_buffer" 2024-05-02 21:40:14 +02:00
Sébastien Helleu fef2ecec9b relay: remove unused variable "i" 2024-05-02 21:37:03 +02:00
Sébastien Helleu cf42c7da38 alias: remove unused variable "args_count" 2024-05-02 21:34:50 +02:00
Nils Görs 9e6b9ca54d core: update German translations 2024-05-02 07:42:53 +02:00
Krzysztof Korościk d22c3344d4 doc: updated polish translation 2024-05-02 00:13:37 +02:00
Krzysztof Korościk 93064b8401 po: updated polish translation 2024-05-02 00:06:57 +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 3aeea2d6aa relay/remote: set buffer local keys (issue #2066) 2024-05-01 13:53:58 +02:00
Sébastien Helleu afe037c579 relay/api: add buffer keys in GET /api/buffers (issue #2066) 2024-05-01 13:53:58 +02:00
Sébastien Helleu c5268bc5f9 core: send signal "buffer_line_added" on buffers with free content (issue #2066)
The signal "buffer_line_added" is now sent for every line added or modified on
a buffer with free content.
2024-05-01 13:37:49 +02:00
Sébastien Helleu c47e4fa883 relay/remote: display lines on buffers with free content (issue #2066) 2024-05-01 13:37:45 +02:00
Sébastien Helleu 6c1f21f10c relay: add option relay.api.remote_get_lines (issue #2066) 2024-05-01 10:10:36 +02:00
Sébastien Helleu ee3fb67a0c relay/api: add support of nicklist in remote buffers 2024-04-30 00:08:41 +02:00
Sébastien Helleu b8f6468590 relay/api: add color names for groups and nicks in GET /api/buffers 2024-04-29 22:43:38 +02:00
Sébastien Helleu de24921609 relay/api: add nicklist boolean fields in GET /api/buffers 2024-04-29 22:05:47 +02:00
Sébastien Helleu 1d9cdba58e relay/api: rename field "nicklist" to "nicklist_root" in GET /api/buffers 2024-04-29 21:56:38 +02:00
Sébastien Helleu 9cd7fd38a9 api: allow to set nicklist group/nick id in functions nicklist_group_set and nicklist_nick_set (issue #2081) 2024-04-29 21:07:04 +02:00
Sébastien Helleu ded599b272 api: allow search by group and nick id in functions nicklist_search_group and nicklist_search_nick (issue #2081) 2024-04-29 19:22:57 +02:00
Sébastien Helleu 6c706caa50 tests/gui: add tests on nicklist functions 2024-04-28 22:31:37 +02:00
Sébastien Helleu f87347d44f core: fix /upgrade from previous releases (issue #2106)
When 4 directories are received, the state directory is initialized with the
data directory.

This fixes the following error on `/upgrade`:

Error: wrong number of paths for home directories (expected: 1 or 5, received: 4)
2024-04-28 20:19:45 +02:00
Sébastien Helleu 96ff7248ef core: remove obsolete function gui_nicklist_get_max_length 2024-04-28 19:10:05 +02:00
Sébastien Helleu eac442a855 core: remove unnecessary condition in function gui_nicklist_get_group_start 2024-04-28 19:06:48 +02:00
Sébastien Helleu f1fa143b21 core: check that parameter name is not NULL in function gui_nicklist_get_group_start 2024-04-28 19:06:21 +02:00
Sébastien Helleu dcd872bc45 core: fix recursive search of group in nicklist 2024-04-28 13:07:08 +02:00
Sébastien Helleu 4a058ae0f5 trigger: remove check of NULL pointers before calling trigger_free() (issue #865) 2024-04-26 21:24:14 +02:00
Sébastien Helleu 2b919b0a01 script: remove check of NULL pointers before calling script_repo_free() (issue #865) 2024-04-26 21:23:39 +02:00
Sébastien Helleu 9c3eda660d relay: remove check of NULL pointers before calling relay_websocket_deflate_free() (issue #865) 2024-04-26 21:23:39 +02:00
Sébastien Helleu 17090ade74 relay: remove check of NULL pointers before calling relay_server_free() (issue #865) 2024-04-26 21:22:50 +02:00
Sébastien Helleu ba97a39565 relay: remove check of NULL pointers before calling relay_http_response_free() (issue #865) 2024-04-26 21:22:49 +02:00
Sébastien Helleu 42cba25453 exec: remove check of NULL pointers before calling exec_free() (issue #865) 2024-04-26 21:21:48 +02:00
Sébastien Helleu 7438d2c737 alias: remove check of NULL pointers before calling alias_free() (issue #865) 2024-04-26 21:21:48 +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 2c300424b4 core: remove check of NULL pointers before calling gui_color_palette_free() (issue #865) 2024-04-26 21:18:24 +02:00
Sébastien Helleu 3e520cb1ff core: remove check of NULL pointers before calling gui_completion_free() (issue #865) 2024-04-26 21:18:24 +02:00
Sébastien Helleu 114084a4fc relay: remove check of NULL pointers before calling weechat_completion_free() (issue #865) 2024-04-26 21:18:24 +02:00
Sébastien Helleu 1a31512503 core: remove check of NULL pointers before calling string_free_split_tags() (issue #865) 2024-04-26 21:18:24 +02:00
Sébastien Helleu a7b21fa647 core: remove check of NULL pointers before calling gui_bar_window_free() (issue #865) 2024-04-26 21:18:24 +02:00
Sébastien Helleu 890caf4e8e core: remove check of NULL pointers before calling gui_bar_item_free() (issue #865) 2024-04-26 21:17:13 +02:00
Sébastien Helleu ad33036fea core: remove check of NULL pointers before calling weelist_free() (issue #865) 2024-04-26 21:06:47 +02:00
Sébastien Helleu a59fa70a94 irc: remove check of NULL pointers before calling weechat_list_free() (issue #865) 2024-04-26 21:06:47 +02:00
Sébastien Helleu ac7cc25763 core: remove check of NULL pointers before calling infolist_free() (issue #865) 2024-04-26 21:06:06 +02:00
Sébastien Helleu ee51e6c05f plugins: remove check of NULL pointers before calling weechat_infolist_free() (issue #865) 2024-04-26 21:06:06 +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 561dd92d8e plugins: remove check of NULL pointers before calling weechat_config_option_free() (issue #865) 2024-04-26 20:59:44 +02:00
Sébastien Helleu 619b40b42f core: remove check of NULL pointers before calling string_shared_free() (issue #865) 2024-04-26 08:55:35 +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 7af01a56ca plugins: remove check of NULL pointers before calling weechat_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 9a5a1fb300 plugins: remove check of NULL pointers before calling weechat_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 0b2d9bcb9b plugins: remove check of NULL pointers before calling weechat_hashtable_free() (issue #865) 2024-04-26 08:53:22 +02:00
Sébastien Helleu 1ad0b4b669 core: remove check of NULL pointers before calling unhook() (issue #865) 2024-04-26 08:41:44 +02:00
Sébastien Helleu 529a22e342 plugins: remove check of NULL pointers before calling weechat_unhook() (issue #865) 2024-04-26 08:41:44 +02:00
Sébastien Helleu 828ca37225 tests: split hook tests into multiple files (issue #865) 2024-04-26 08:41:44 +02:00
Sébastien Helleu 6cf163f00c tests: move hook modifier tests to a separate file (issue #865) 2024-04-26 07:51:49 +02:00
Sébastien Helleu 2b6fbe26ac core: remove check of NULL pointers before calling arraylist_free() (issue #865) 2024-04-26 07:37:22 +02:00
Sébastien Helleu 3eed74a75c plugins: remove check of NULL pointers before calling weechat_arraylist_free() (issue #865) 2024-04-26 07:37: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 b56b34711d api: remove check of NULL pointers before calling free() (issue #865) 2024-04-25 20:59:25 +02:00
Sébastien Helleu 590d9453a0 xfer: remove check of NULL pointers before calling free() (issue #865) 2024-04-25 20:59:25 +02:00
Sébastien Helleu ea85d180e5 trigger: remove check of NULL pointers before calling free() (issue #865) 2024-04-25 20:59:25 +02:00
Sébastien Helleu 0e3b6a9c77 tcl: remove check of NULL pointers before calling free() (issue #865) 2024-04-25 20:59:25 +02:00
Sébastien Helleu 1f104d06a0 spell: remove check of NULL pointers before calling free() (issue #865) 2024-04-25 20:59:25 +02:00
Sébastien Helleu 3973258628 script: remove check of NULL pointers before calling free() (issue #865) 2024-04-25 20:59:25 +02:00
Sébastien Helleu f79153ace7 ruby: remove check of NULL pointers before calling free() (issue #865) 2024-04-25 20:59:24 +02:00
Sébastien Helleu 7ee57af8e3 relay: remove check of NULL pointers before calling free() (issue #865) 2024-04-25 20:59:24 +02:00
Sébastien Helleu b138510cff python: remove check of NULL pointers before calling free() (issue #865) 2024-04-25 20:59:24 +02:00
Sébastien Helleu c472b9a733 php: remove check of NULL pointers before calling free() (issue #865) 2024-04-25 20:59:24 +02:00
Sébastien Helleu 0ac2e54b46 perl: remove check of NULL pointers before calling free() (issue #865) 2024-04-25 20:59:24 +02:00
Sébastien Helleu 3e994e3c5a lua: remove check of NULL pointers before calling free() (issue #865) 2024-04-25 20:59:24 +02:00
Sébastien Helleu 128d2a4e12 logger: remove check of NULL pointers before calling free() (issue #865) 2024-04-25 20:59:24 +02:00
Sébastien Helleu 846c785531 javascript: remove check of NULL pointers before calling free() (issue #865) 2024-04-25 20:59:24 +02:00
Sébastien Helleu 2bbf289635 irc: remove check of NULL pointers before calling free() (issue #865) 2024-04-25 20:59:24 +02:00
Sébastien Helleu f3a9bfe55e guile: remove check of NULL pointers before calling free() (issue #865) 2024-04-25 20:59:24 +02:00
Sébastien Helleu 852b8a5cdb fset: remove check of NULL pointers before calling free() (issue #865) 2024-04-25 20:59:24 +02:00
Sébastien Helleu 1ae33517e9 fifo: remove check of NULL pointers before calling free() (issue #865) 2024-04-25 20:59:24 +02:00
Sébastien Helleu 5ad977a6ed exec: remove check of NULL pointers before calling free() (issue #865) 2024-04-25 20:59:24 +02:00
Sébastien Helleu f92606a317 charset: remove check of NULL pointers before calling free() (issue #865) 2024-04-25 20:59:24 +02:00
Sébastien Helleu c3750a02e3 buflist: remove check of NULL pointers before calling free() (issue #865) 2024-04-25 20:58:31 +02:00
Sébastien Helleu c242c8e3f9 alias: remove check of NULL pointers before calling free() (issue #865) 2024-04-24 23:12:05 +02:00
Sébastien Helleu 4baf0e8526 relay: add final '\0' in body when parsing HTTP response
This fixes tests on Debian GNU/Hurd.
2024-04-24 21:24:51 +02:00
Sébastien Helleu 1e08b1119a relay: fix default value of remote options 2024-04-23 22:57:57 +02:00
Sébastien Helleu fb9d677020 doc/api: add changes on functions command and command_options introduced in version 4.0.0 2024-04-23 22:54:00 +02:00
Sébastien Helleu d0f0a7834d core: do not color prefix of join/part/quit messages when the nick is offline 2024-04-17 08:32:19 +02:00
Nils Görs eadb7e95ef core: update German translations 2024-04-15 13:02:23 +02:00
Nils Görs 634f467c8d core: update German translations 2024-04-15 11:06:45 +02:00
Sébastien Helleu c1b49f71a5 core: update French translations 2024-04-14 19:15:59 +02:00
Sébastien Helleu 42b073629d relay: ignore unused parameter "gnutls_rc" 2024-04-14 19:14:19 +02:00
Sébastien Helleu 731871dd78 relay: remove commented variable 2024-04-14 19:13:47 +02:00
Sébastien Helleu b7d07840d1 relay: add connection with proxy to remote 2024-04-14 19:12:35 +02:00
Sébastien Helleu 9defa13bbe relay: remove commented code 2024-04-14 19:12:22 +02:00
Sébastien Helleu 984fdb2b58 relay: add TLS connection to remote, add remote option "tls_verify" 2024-04-14 19:00:05 +02:00
Sébastien Helleu a4236be509 relay: add missing proxy in output of /remote listfull <name> 2024-04-14 16:14:51 +02:00
Sébastien Helleu 92d27d8676 relay: fix read of remote name in infolist 2024-04-14 15:51:03 +02:00
Sébastien Helleu e1b1946ee4 relay: add check and change callbacks for remote option "url" 2024-04-14 14:58:26 +02:00
Sébastien Helleu 252787c457 relay: fix memory leak when adding a new remote 2024-04-14 09:14:00 +02:00
Sébastien Helleu 18d32cb613 core: add issue #1747 in ChangeLog 2024-04-13 20:35:24 +02:00
Sébastien Helleu b909522307 core: update ChangeLog (issue #2106) 2024-04-12 23:00:57 +02:00
Sébastien Helleu 5eb47ccf53 core: update French translations 2024-04-12 22:59:21 +02:00
90 8c3f16dbe3 core: add support for $XDG_STATE_HOME 2024-04-12 22:57:57 +02:00
Nils Görs 3bfe4e52ca core: update German translations 2024-04-12 16:41:10 +02:00
Sébastien Helleu c112d0aafa tests: add placeholder for tests on function gui_line_is_action 2024-04-11 23:03:44 +02:00
Sébastien Helleu b0b733a8f0 core: use nick offline color for nick in action message 2024-04-11 22:52:54 +02:00
Sébastien Helleu ae892d2893 core: use nick offline highlight color for prefix of action message when the nick is offline with a highlight 2024-04-11 22:50:39 +02:00
Sébastien Helleu 90998bd296 relay/api: fix reconnection to remote after disconnection 2024-04-10 21:58:11 +02:00
Sébastien Helleu 976e5e8ae4 relay/api: free hook_url_handshake when disconnecting from remote 2024-04-10 21:57:00 +02:00
Sébastien Helleu f40f3cfa40 relay/api: add tags in lines displayed in remote buffers 2024-04-10 20:57:16 +02:00
Sébastien Helleu 5046a9b596 relay/api: fix decoding of large websocket frames in remote client (closes #2107) 2024-04-09 13:32:34 +02:00
Sébastien Helleu dbf9068909 relay/api: read data on socket only if connected 2024-04-09 13:15:15 +02:00
Sébastien Helleu e8081fe4f7 relay/api: free frames after use 2024-04-09 13:13:32 +02:00
Sébastien Helleu ed2becf8fe relay: free frames only if they were allocated by function relay_websocket_decode_frame 2024-04-09 13:08:12 +02:00
Sébastien Helleu f7c27b0801 relay: free all data in remote 2024-04-09 13:02:45 +02:00
Sébastien Helleu fadf9c47c9 relay/api: use function asprintf in JSON send functions 2024-04-08 19:12:33 +02:00
Sébastien Helleu a3c9a5b897 relay: fix build when CJSON is disabled 2024-04-08 07:32:03 +02:00
Sébastien Helleu 2fe215276e core: add version 4.2.2 in ChangeLog and release notes 2024-04-07 19:04:08 +02:00
Sébastien Helleu 419515845d relay: simplify function relay_auth_check_hash_sha 2024-04-07 17:54:28 +02:00
Sébastien Helleu 5eaac71d25 relay/api: use function asprintf to build string with salt and password 2024-04-07 17:53:42 +02:00
Sébastien Helleu fd5f42dc06 relay/api: fix authentication with remote using hash algorithm "sha256" or "sha512" 2024-04-07 17:29:35 +02:00
Sébastien Helleu ec8c4cc042 relay/api: use function asprintf to build key and check websocket reply 2024-04-07 17:22:03 +02:00
Sébastien Helleu 86dea12b71 tests: fix relay/api tests on group and nick colors 2024-04-07 17:22:03 +02:00
Sébastien Helleu ec3b3d47be relay/api: convert group/nick color names to the real color code 2024-04-07 16:59:45 +02:00
Sébastien Helleu 8cb302e600 relay: add example with "api" protocol in /help relay (issue #2066) 2024-04-07 15:33:41 +02:00
Sébastien Helleu eacd0002dd relay: add missing line for "api" protocol in /help relay (issue #2066) 2024-04-07 15:33:36 +02:00
Sébastien Helleu 91a9af72b1 doc: generate doc for all commands except default aliases 2024-04-07 15:28:34 +02:00
Sébastien Helleu cb6c2fd637 core: update French translations (issue #2066) 2024-04-07 14:51:09 +02:00
Sébastien Helleu ef12c93f1b relay: improve messages displayed (issue #2066) 2024-04-07 14:49:12 +02:00
Sébastien Helleu 14beee8a91 relay/api: rename field "nicks" to "nicklist" in GET /api/buffers 2024-04-07 13:18:14 +02:00
Sébastien Helleu 7c2f44e74e relay/api: add nicklist group and nick id in response to GET /api/buffers (issue #2081) 2024-04-07 13:18:14 +02:00
Sébastien Helleu 89fe540b53 core: add unique "id" in nicklist group and nick (issue #2081)
The id is a "long long" variable with the current time (microseconds
precision).

It is guaranteed to be unique for all groups and nicks inside the buffer, and
the same number is never used again in the same buffer, during the lifetime of
the process.

It persists and is unchanged after `/upgrade`.
2024-04-07 13:18:14 +02:00
Sébastien Helleu 40a68549b5 relay: set default value of undefined remote options to empty string instead of NULL (issue #2066)
This fixes the websocket connection to remote that is not initiated after the
successful handshake with the remote relay/api.
2024-04-07 13:18:14 +02:00
Sébastien Helleu a499b50b7b relay: add synchronization with remote and handler for events received (issue #2066) 2024-04-07 13:18:14 +02:00
Sébastien Helleu b6647004a5 relay: do not share content of any relay buffer in api and weechat protocols (issue #2066)
This is to prevent infinite loop when connected to a remote which is the
weechat instance itself.
2024-04-07 13:18:14 +02:00
Sébastien Helleu 2cf66de423 api: add function "asprintf" 2024-04-07 13:18:13 +02:00
Sébastien Helleu 08bc6404eb doc/api: fix typo: "formattée" -> "formatée" 2024-04-07 13:18:13 +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 3cce916035 relay/api: add fields "displayed" and "notify_level" in lines returned (issue #2066) 2024-04-07 13:18:13 +02:00
Sébastien Helleu 64db1b958d relay/api: replace direct access to JSON number value by call to function cJSON_GetNumberValue() (issue #2066) 2024-04-07 13:18:13 +02:00
Sébastien Helleu cb785d5035 relay/api: add "request" and "request_body" in response when connected via websocket (issue #2066) 2024-04-07 13:18:13 +02:00
Sébastien Helleu 9d7e887d8e relay/api: add "body_type" in response when a body is set and connected via websocket (issue #2066) 2024-04-07 13:18:13 +02:00
Sébastien Helleu 643adecff5 relay: add option send in command /remote (issue #2066)
This can be used to send raw JSON data encapsulated in a websocket frame to the
remote.

Example: /remote send test {"request":"GET /api/version"}
2024-04-07 13:18:13 +02:00
Sébastien Helleu 4460f92727 relay: stop URL address before the first question mark if colon is not found (issue #2066) 2024-04-07 13:18:13 +02:00
Sébastien Helleu f507be4128 tests: add tests on relay remote functions (issue #2066) 2024-04-07 13:18:13 +02:00
Sébastien Helleu a3f3c9d09c relay: check that parameter ws_deflate is not NULL in function relay_websocket_deflate_free (issue #2066) 2024-04-07 13:18:13 +02:00
Sébastien Helleu 90b855e1aa relay: add connection to remote (issue #2066)
Connection to remote:

- handshake: offer support for all supported hash algorithms
- network connect with a socket
- upgrade to websocket and authenticate with remote (password/TOTP)
- check websocket response
- get list of buffers (not used yet)

Note: connection to remote with TLS or a proxy is not yet supported.
2024-04-07 13:18:13 +02:00
Sébastien Helleu fd32192464 relay: add option disconnect in command /remote (issue #2066) 2024-04-07 13:18:10 +02:00
Sébastien Helleu c2343ecb74 relay: add functions to parse HTTP response (issue #2066) 2024-04-07 13:16:50 +02:00
Sébastien Helleu c4c220f0a3 relay: add proxy option in remote (issue #2066) 2024-04-07 13:16:50 +02:00
Sébastien Helleu 3f993f9422 relay/api: fix style (issue #2066) 2024-04-07 13:16:50 +02:00
Sébastien Helleu 786f889251 relay: add command /remote, add remote configuration in relay.conf (issue #2066) 2024-04-07 13:16:47 +02:00
Sébastien Helleu a89bc85dc0 core: update ChangeLog 2024-04-06 22:47:38 +02:00
Sébastien Helleu 40bfded594 irc: fix display of reply for CTCP request received on a channel when capability echo-message is enabled 2024-04-06 22:44:04 +02:00
Sébastien Helleu 2c3c9a3ee7 tests: rename variable "i" to "echo_message" 2024-04-06 18:29:42 +02:00
Sébastien Helleu 74729ce677 irc: display CTCP reply to a nick in server buffer instead of channel
When a CTCP request is received on a channel, WeeChat replies to the nick and
it is now displayed in the server buffer instead of the channel, as the target
is a nick and not a channel.
2024-04-06 16:42:15 +02:00
Sébastien Helleu d81170b010 tests: add extra tests on received IRC CTCP messages 2024-04-06 16:37:40 +02:00
Sébastien Helleu f3f9dc388f core: remove whitespace 2024-04-01 22:23:48 +02:00
Sébastien Helleu 7e997f87e8 core: add cast to "const char *" for hashtable value 2024-04-01 21:48:11 +02:00
Sébastien Helleu 965beb37de core: fix print of pointer values 2024-04-01 21:08:52 +02:00
Mario Campos a7c92e2d24 ci: add CodeQL code scanning (closes #2102) 2024-04-01 18:42:05 +02:00
Sébastien Helleu 1fb6fda89b relay: rename function relay_api_search_buffer_id_name to relay_api_protocol_search_buffer_id_name 2024-03-29 13:02:45 +01:00
Nils Görs a23b5b5a37 core: update German translations, fixed typo 2024-03-28 13:12:19 +01:00
Sébastien Helleu acef7dd317 relay: move assignment after comment with important note 2024-03-26 21:22:55 +01:00
Sébastien Helleu 3d8607673e relay: fix typo in comment 2024-03-26 21:22:15 +01:00
Sébastien Helleu 5a3dff1b97 relay: fix typo in comment 2024-03-26 20:23:10 +01:00
Sébastien Helleu 372ffc1690 irc: fix error displayed on connection in case of insufficient memory 2024-03-26 20:22:50 +01:00
Sébastien Helleu fd06c67b58 relay: add size for array relay_auth_password_hash_algo_name 2024-03-26 10:40:38 +01:00
Nils Görs 0778d37924 core: update German translations 2024-03-26 09:27:00 +01:00
Sébastien Helleu 6e5eb5eb25 fset: fix typo in /help fset 2024-03-26 09:21:04 +01:00
Sébastien Helleu 2f5936bc9f relay: set the last IRC client disconnection time only after a successful connection (closes #2103) 2024-03-26 08:04:49 +01:00
Sébastien Helleu 3db4dd2790 fset: display number of commands executed in imported file, improve errors displayed 2024-03-26 07:46:35 +01:00
Sébastien Helleu 26630ada2d fset: add option -import in command /fset 2024-03-25 21:00:42 +01:00
Sébastien Helleu 8482e14630 core: display a specific message when the value of option is unchanged after /set command 2024-03-25 12:06:59 +01:00
Nils Görs a7f8c32797 core: update German translations 2024-03-25 11:44:01 +01:00
Sébastien Helleu 9bc4352089 core: fix tests on function strftimeval on Alpine 2024-03-24 20:56:29 +01:00
Sébastien Helleu 907643bc9c core: add option weechat.completion.case_sensitive 2024-03-24 15:40:06 +01:00
Sébastien Helleu 947155f325 doc/user: fix typo in trigger regex replace ${re:+} 2024-03-21 23:04:18 +01:00
Sébastien Helleu 59d8857646 doc/user: add missing ${re:#} and ${re:repl_index} in trigger regex replace 2024-03-21 22:55:28 +01:00
Sébastien Helleu d6386cd364 doc/api: fix style in example ${re:+} 2024-03-21 22:43:35 +01:00
Nils Görs 7d5503e84b core: update German translations 2024-03-20 09:56:19 +01:00
Sébastien Helleu 762d71012a script: add option enable in command /script, improve error displayed when download of scripts is disabled 2024-03-19 20:45:22 +01:00
Sébastien Helleu 7aa5d718a8 core: send signal "hotlist_changed" only if the order of hotlist has changed after sort (issue #2097) 2024-03-18 21:45:47 +01:00
Sébastien Helleu 77bc38d21d core: reduce number of re-sort of hotlist (issue #2097)
Restore original signals caught: "buffer_moved" and "buffer_closed", and the
signal "buffer_localvar_*" is added so that any local variable
added/changed/removed triggers a re-sort of hotlist.
2024-03-18 21:44:23 +01:00
Sébastien Helleu 34a72ac02e relay/api: add GET /api/hotlist 2024-03-17 20:13:19 +01:00
Sébastien Helleu 0b0ab94aa3 tests/gui: add tests on hotlist functions 2024-03-17 15:00:00 +01:00
Sébastien Helleu c516ff64f2 tests/scripts: make tests fail if a compiled scripting plugin fails to load 2024-03-17 13:45:39 +01:00
Sébastien Helleu 1f47e7c4f8 tests: add missing include of string.h in relay API protocol tests 2024-03-17 10:47:46 +01:00
Nils Görs f7b8e81941 core: update German translations 2024-03-16 22:57:03 +01:00
Sébastien Helleu e29f496a96 core: optimize sort of hotlist
Entries are not duplicated any more.
2024-03-16 22:25:51 +01:00
Sébastien Helleu 55203680ba core: don't resort hotlist when signal "hotlist_changed" is sent 2024-03-16 22:25:45 +01:00
Sébastien Helleu c05b228078 core: sort hotlist and remove buffer even while upgrading 2024-03-16 21:33:08 +01:00
Sébastien Helleu d462667ee6 core: fix crash on /upgrade when hotlist contains buffers that are closed 2024-03-16 17:24:12 +01:00
Sébastien Helleu 8eafc0624c core: resort hotlist on any buffer signal (issue #2097) 2024-03-16 14:43:53 +01:00
Sébastien Helleu 29b502a06a buflist: fix help on option buflist.look.sort (issue #2097) 2024-03-16 14:14:28 +01:00
Sébastien Helleu 25a317280f core: fix typo in option weechat.look.hotlist_sort: time.usec -> time_usec (issue #2097) 2024-03-16 14:08:07 +01:00
Sébastien Helleu f856173e1f core: add option weechat.look.highlight_prefix (closes #2079) 2024-03-16 11:32:51 +01:00
Sébastien Helleu 6f660f2430 core: add variable ${highlight} in option weechat.look.buffer_time_format (issue #2079) 2024-03-16 09:46:55 +01:00
Sébastien Helleu 41fb29bbd0 core: convert option weechat.look.hotlist_sort to a list of fields (closes #2097) 2024-03-15 21:44:14 +01:00
Sébastien Helleu ea86f75319 tests: add hdata tests with struct timeval 2024-03-15 21:32:40 +01:00
Sébastien Helleu c98d12b4af core: rename variables with creation time in hdata "hotlist"
Variables renamed:

- "creation_time.tv_sec" -> "time"
- "creation_time.tv_usec" -> "time_usec"
2024-03-15 21:32:37 +01:00
Sébastien Helleu 305b046370 core: add macro to define hdata variable with different field and name 2024-03-15 21:32:35 +01:00
Sébastien Helleu 080eecef2c core: add missing hdata name "buffer" in hdata "hotlist" 2024-03-15 21:32:32 +01:00
Sébastien Helleu fe01faa9ab core: update ChangeLog (issue #2093) 2024-03-13 13:51:22 +01:00
Trygve Aaberge 811390ebb1 core: make search_stop scroll to search start position
When you run /input search_stop it should scroll to the scroll position
the buffer was at before starting the search, rather than to the bottom
of the buffer.

Fixes a regression introduced in commit b83b428c5c

Fixes #2093
2024-03-13 13:50:04 +01:00
Sébastien Helleu dd128dace8 core: update ChangeLog (closes #1906) 2024-03-13 13:14:40 +01:00
wfrsk 4d83adc7d8 lua: fix code style 2024-03-13 13:10:07 +01:00
wfrsk fd541395f4 lua: do not depend on an init script + rework weechat_lua_output 2024-03-13 13:02:29 +01:00
wfrsk 97f87932fe lua: do not load the debug library 2024-03-13 13:02:29 +01:00
wfrsk b0581ac1f8 lua: do not depend on luaL_openlibs 2024-03-13 13:02:29 +01:00
Sébastien Helleu 3b9e2f480d tests: reorder tests on core directory functions 2024-03-13 13:01:50 +01:00
Mario Campos f76d236015 GUI: fix potential integer overflow bugs by casting to size_t 2024-03-13 09:09:29 +01:00
Mario Campos 1797fe18a3 fset: replace call to chmod() by fchmod() in the export function 2024-03-13 07:19:55 +01:00
Mario Campos 63733d81d8 core: open the file exclusively in compress file functions
This also removes the unnecessary call to access() function before the call to
fopen().
2024-03-13 07:17:02 +01:00
Mario Campos 23e0533ea1 core: remove unnecessary call to stat() in hash file function
The call to fopen() will fail anyway if the file doesn't exist.
2024-03-13 07:15:12 +01: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 bb346f8c6c relay/api: replace "context" by "buffer_id" (issue #2081) 2024-03-12 20:37:52 +01:00
Sébastien Helleu 48ca390f79 relay/api: add support of buffer id in POST /api/input (issue #2081) 2024-03-12 20:37:51 +01:00
Sébastien Helleu aa989767a1 relay/api: add support of buffer id in GET /api/buffers (issue #2081) 2024-03-12 20:37:50 +01:00
Sébastien Helleu 7ad3c1979c tests/relay/api: add buffer id in test of buffer to json function (issue #2081) 2024-03-12 20:37:48 +01:00
Sébastien Helleu 99f0a2e002 tests/relay/api: add tests on API protocol 2024-03-12 20:37:48 +01:00
Sébastien Helleu 6325add517 tests/relay/irc: use port 9001 for server relay 2024-03-12 20:37:48 +01:00
Sébastien Helleu e791535773 relay: add a fake send function in client
This will be used in unit tests to get the data that is sent to clients.
2024-03-12 20:37:48 +01:00
Sébastien Helleu 0ac377d306 relay/api: add a global variable to customize the command delay in POST /api/input
The user can not change this, the variable will be set to 0 in unit tests to
execute the command immediately.
2024-03-12 20:37:48 +01:00
Sébastien Helleu 59c977ddc9 relay/api: check that "request" field is a string in JSON received (websocket connection) 2024-03-12 20:37:48 +01:00
Sébastien Helleu 4f9bcc73ca relay/api: allow POST /api/handshake without a body 2024-03-12 20:37:48 +01:00
Sébastien Helleu 8c5db76271 relay/api: fix error displayed when buffer is not found in POST /api/input 2024-03-12 20:37:48 +01:00
Sébastien Helleu 80709292d4 tests/relay/irc: fix comments 2024-03-12 20:37:48 +01:00
Sébastien Helleu f2f6afb59c tests/relay/irc: remove unused calls to record functions 2024-03-12 20:37:48 +01:00
Sébastien Helleu 3045322822 relay/weechat: add buffer id in signals sent to clients (issue #2081) 2024-03-12 20:37:47 +01:00
Sébastien Helleu 29d4bc3102 relay/api: add buffer is in response to GET /api/buffers (issue #2081) 2024-03-12 20:37:45 +01:00
Sébastien Helleu f9e8c7faab api: allow search by buffer id in function buffer_search (issue #2081) 2024-03-12 20:37:44 +01:00
Sébastien Helleu 5af0415508 core: add function gui_buffer_search_by_id (issue #2081) 2024-03-12 20:37:42 +01:00
Sébastien Helleu c71e6a50eb core: rename function gui_buffer_search_by_name to gui_buffer_search (issue #2081) 2024-03-12 20:37:40 +01:00
Sébastien Helleu 4ffd62b206 core: add unique "id" in buffer (issue #2081)
The id is a "long long" variable with the current time (microseconds
precision).

It is guaranteed to be unique for all buffers, and the same number is never
used again, during the lifetime of the process.

It persists and is unchanged after `/upgrade`.
2024-03-12 20:37:36 +01:00
Sébastien Helleu afc4dff71b core: use dynamic string in function infolist_fields 2024-03-12 20:37:36 +01:00
Sébastien Helleu 9e0dd18152 api: add function "hdata_longlong" (issue #2081) 2024-03-12 20:37:11 +01:00
Nils Görs c85b57b8b3 core: update German translations 2024-03-12 17:16:36 +01:00
Sébastien Helleu 34e99987bf doc/user: clarify what is ${nick} in trigger IRC signal data 2024-03-11 07:20:38 +01:00
Sébastien Helleu 1ab62e37cb api: add modifier "color_decode" to decode WeeChat colors with a replacement string 2024-03-10 09:31:32 +01:00
Sébastien Helleu 3f49b1b44a core: use whole replacement string instead of first char in function gui_color_decode 2024-03-10 09:21:28 +01:00
Sébastien Helleu 431cf23a0c exec: remove trailing space on buffers with free content when line numbers are not displayed 2024-03-08 08:19:20 +01:00
Sébastien Helleu a6c509611a exec: add missing exec tags in lines of buffers with free content (closes #2086) 2024-03-07 21:52:21 +01:00
Nils Görs ec56a1103f doc: update German documentation 2024-03-07 12:04:05 +01:00
Nils Görs ccc5c75a03 core: update German translations 2024-03-07 11:52:22 +01:00
Sébastien Helleu 732887cef7 doc/plugin: add missing translation comments 2024-03-07 07:32:20 +01:00
Sébastien Helleu cb6ecb6818 core: check if malloc.h is present, independently of function malloc_trim 2024-03-06 23:09:00 +01:00
Sébastien Helleu 70828a7dd1 irc: add option -all in command /allchan, do not execute command on parted channels by default (closes #2085) 2024-03-06 23:03:02 +01:00
Sébastien Helleu ab2e29fb0f core: include header malloc.h only if function malloc_trim is available 2024-03-06 22:52:43 +01:00
Sébastien Helleu 8c1df496ae core: update translations 2024-03-06 22:41:42 +01:00
Sébastien Helleu 68598de958 core: check that function malloc_trim is available, display an error if not available 2024-03-06 22:36:37 +01:00
Sébastien Helleu a1bee89ecc core: add option malloc_trim in command /sys 2024-03-06 22:00:48 +01:00
Sébastien Helleu 7385f767e3 irc: use API config functions to get inherited value (server options) 2024-03-06 21:32:34 +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
Nils Görs a8a0053211 core: update German translations 2024-03-06 11:17:38 +01:00
Sébastien Helleu 12521898f9 doc/scripting: auto-generate list of scripting functions and constants from Python API 2024-03-05 19:58:21 +01:00
Sébastien Helleu 6c72d6f66d python: add infolists "python_function" and "python_constant" 2024-03-05 19:56:35 +01:00
Sébastien Helleu 81599b88d4 plugins: move scripting API constants to plugin-script.c 2024-03-05 19:52:21 +01:00
Sébastien Helleu 84437ab672 tests: add tests on scripting API constants 2024-03-05 19:52:21 +01:00
Sébastien Helleu 014dc845e8 doc: move script doc/python_stub.py to tools/generate_python_stub.py 2024-03-05 19:52:21 +01:00
Sébastien Helleu 361d55d9d7 api: add functions config_{boolean|integer|string|color|enum}_inherited in scripting API 2024-03-05 19:52:21 +01:00
Sébastien Helleu 8f0b3ab9c7 tests/scripts: fix representation of None Python value in generated scripts 2024-03-05 19:51:15 +01:00
Sébastien Helleu 1451e12c78 core: refactor functions that read values of config options 2024-03-05 19:51:15 +01:00
Sébastien Helleu 6817542f95 tests: add tests on functions that read values of config options 2024-03-05 19:51:15 +01:00
Sébastien Helleu c3eff15a56 api: add functions config_option_get_string and config_option_get_pointer in scripting API 2024-03-05 19:51:15 +01:00
DasBrain 0bf560f9b7 tcl: simplify return macros 2024-03-05 19:15:19 +01:00
DasBrain ff2189f3d9 tcl: refactor creation of constants 2024-03-05 19:15:19 +01:00
Nils Görs 439a2d9c7a core: update German translations 2024-02-26 15:16:42 +01:00
Sébastien Helleu 6d549d0da9 relay/api: rename "salt" to "timestamp" 2024-02-26 12:56:44 +01:00
Sébastien Helleu 22686da40c doc/api: fix string format in calls to weechat.prnt (examples in Python) 2024-02-25 17:23:09 +01:00
Sébastien Helleu f649ccc3b8 python: fix truncation of unsigned long long integer returned by function string_parse_size 2024-02-25 17:07:11 +01:00
Sébastien Helleu c5800178a0 php: remove constants that must not be visible in scripts 2024-02-25 16:32:21 +01:00
Sébastien Helleu c5887354bd tcl: fix truncation of long integer returned by function hdata_long 2024-02-25 16:12:54 +01:00
Sébastien Helleu 3f08785aee core: add missing mouse event "alt-ctrl-button3" 2024-02-24 22:05:14 +01:00
Sébastien Helleu 191701a5f3 doc/user: fix order of mouse event modifiers
Key "alt" is always before "ctrl".
2024-02-24 18:53:46 +01:00
Sébastien Helleu d52fea1d5e core: fix typo in comment 2024-02-24 18:50:26 +01:00
Sébastien Helleu 24f0e95de7 core: add missing mouse event "alt-ctrl-button2" 2024-02-24 18:35:21 +01:00
Ivan Pešić 40deb493d5 doc: Update Serbian translation 2024-02-23 08:22:26 +01:00
Ivan Pešić ef2ef9846d core: Update Serbian translation
Some typos are corrected
2024-02-23 08:22:26 +01:00
Trygve Aaberge e02ee703f0 docs: fix some typos in documentation and comments 2024-02-23 08:21:49 +01:00
Sébastien Helleu 27331dec5e core: add contributor 2024-02-22 19:30:53 +01:00
Johannes Kuhn db6b96f629 tcl: make plugin compatible with Tcl 9.0
Replace calls to Tcl_GetStringFromObj by Tcl_GetString.
2024-02-22 19:30:53 +01:00
Sébastien Helleu ef5ebc19e9 fset: allow filename starting with "~" in command /fset -export 2024-02-21 22:05:16 +01:00
Sébastien Helleu 76998665f4 script: always display list of scripts when searching scripts with /script search (closes #2077) 2024-02-21 21:36:52 +01:00
Sébastien Helleu b5a32c0fa9 script: fix default mouse keys (closes #2076)
Some parameters of command `/script` were renamed in commit
85b5bacfe3 but the default mouse keys were not
changed and still using the old parameters names.
2024-02-21 21:10:25 +01:00
Nils Görs 4c5f98946a core: update German translations 2024-02-19 20:07:29 +01:00
Sébastien Helleu a44ffa147f script: add info "script_loaded" 2024-02-19 18:33:36 +01:00
Sébastien Helleu a167322d8b api: add info "plugin_loaded" 2024-02-19 18:29:21 +01:00
Sébastien Helleu f19808cedd tests: add tests on "api" relay (general functions and messages) 2024-02-18 23:42:22 +01:00
Sébastien Helleu 0f30a4e020 relay: move functions to get URL parameters from api to relay-http.c, add tests 2024-02-18 23:13:20 +01:00
Sébastien Helleu 9b9b36bb02 tests: fix free of HTTP request 2024-02-18 23:12:56 +01:00
Sébastien Helleu c4ac9046b2 relay/api: fix comment of function relay_api_protocol_get_param_boolean 2024-02-18 18:52:57 +01:00
Sébastien Helleu 61a8e4e27e relay/api: add key "visible" with boolean value in nick and group objects 2024-02-18 18:52:52 +01:00
Sébastien Helleu 780be1e1b7 relay/api: rename key "index" to "y" in line object 2024-02-18 18:24:19 +01:00
Nils Görs 4858d88567 core: update German translations 2024-02-17 17:31:57 +01:00
Sébastien Helleu 6659bf1642 core: display the 3 variants for "${split}" and "${split_shell}" in /help eval 2024-02-17 13:23:38 +01:00
Sébastien Helleu b3a214252b core: add "${hl:string}" and "${raw_hl:string}" in /eval completions 2024-02-17 13:22:40 +01:00
Sébastien Helleu 4c6db9711a core: add the different variants for "chars" in /eval completions 2024-02-17 13:22:05 +01:00
Sébastien Helleu 213483e678 core: add the different bases in /eval completions for "base_decode" and "base_encode" 2024-02-17 13:20:17 +01:00
Sébastien Helleu 9b9e0f042c core: replace "xxx" by "string" and "number" by "N" in /eval completions 2024-02-17 13:09:20 +01:00
Sébastien Helleu 831dcac808 core: list operators by order of priority in /help eval (issue #2005) 2024-02-17 10:58:40 +01:00
Sébastien Helleu 4e0f7dfd25 core: reintroduce help on the operators in /help eval (issue #2005) 2024-02-17 10:54:25 +01:00
Sébastien Helleu a35ac5e8d9 core: reintroduce help on the variables in /help eval (issue #2005) 2024-02-17 10:08:12 +01:00
Sébastien Helleu 90c87e7553 irc: add missing tags on self action messages when capability echo-message is enabled (closes #2074) 2024-02-16 20:58:31 +01:00
Sébastien Helleu 162bcb2622 irc: don't strip monospace color code 0x11 from incoming messages (closes #2073) 2024-02-16 19:22:28 +01:00
Nils Görs 8b6452eb91 core: update German translations 2024-02-12 10:56:35 +01:00
Sébastien Helleu e4e6fde80f core: add option -s in command /command to execute multiple commands separated by semicolons 2024-02-11 21:48:31 +01:00
Sébastien Helleu e0ec8da76a core: move lines from 4.1.0 to 4.2.0 in ChangeLog 2024-02-11 14:32:29 +01:00
Sébastien Helleu 635dd818b5 core: add again line about function hook_url in ChangeLog (issue #1723) 2024-02-11 14:22:12 +01:00
Sébastien Helleu 0cfc61a17e irc: add server option "autojoin_delay" (closes #862)
The server option "autojoin_delay" adds a delay before autojoin.

The server option "command_delay" is now used to add a delay before the
execution of the command.

On upgrade from an old version, the option "command_delay" is copied to
"autojoin_delay" (in old versions, "command_delay" was applied after the
execution of command and before the autojoin).
2024-02-11 09:12:57 +01:00
Sébastien Helleu f153b6e6c3 relay: change message displayed when there is not enough memory for websocket frame 2024-02-11 08:53:29 +01:00
Sébastien Helleu 9ce435fa5e relay: add WeeChat version in config update callback 2024-02-11 08:47:56 +01:00
Sébastien Helleu 5a00f1a138 irc: add WeeChat version in config update callback 2024-02-11 08:41:15 +01:00
Sébastien Helleu 9eb3403008 alias: add WeeChat version in config update callback 2024-02-11 08:40:49 +01:00
Sébastien Helleu e191d9225b core: add WeeChat version in config update callback 2024-02-11 08:40:25 +01:00
Sébastien Helleu e08f6aab55 core: add issue #1903 in ChangeLog 2024-02-11 08:39:06 +01:00
Sébastien Helleu 19bf6c9672 tests: fix compiler warning on empty snprintf format
This fixes the following warning:

test-core-dir.cpp:178:36: warning: zero-length gnu_printf format string [-Wformat-zero-length]
2024-02-10 19:02:17 +01:00
Sébastien Helleu e9dbf23a18 trigger: fix memory leak when adding a new trigger with /trigger command 2024-02-10 17:50:24 +01:00
Sébastien Helleu caa51160da core: remove trailing directory separators in home directories (closes #2070) 2024-02-10 10:23:40 +01:00
Sébastien Helleu 5c6e6f43d1 relay: disable "permessage-deflate" websocket extension when option relay.network.compression is set to 0 2024-02-04 18:54:56 +01:00
Sébastien Helleu 0414c139b0 relay: fix decoding of websocket frame when a partial frame is received 2024-02-04 18:52:00 +01:00
Sébastien Helleu b7ecf93a22 relay: fix websocket decompression when output buffer is not large enough 2024-02-04 18:23:40 +01:00
Sébastien Helleu 162dc87796 scripts: fix crash on script unload when a hook is created in a buffer close callback (closes #2067) 2024-02-04 13:57:35 +01:00
Sébastien Helleu 7f2f60dab0 ci: remove tests on macOS 11 2024-02-03 22:50:27 +01:00
Sébastien Helleu 820a3e8767 relay: free ws_deflate when http request is freed 2024-02-03 11:30:35 +01:00
Sébastien Helleu 052db75805 relay/api: add extra check on JSON types in handshake and input resources (issue #2066) 2024-02-03 08:38:57 +01:00
Sébastien Helleu 5c869722c1 core: disable CJSON in Debian/buster, Raspbian/buster and Ubuntu/focal builds (issue #2066)
This is because in these versions the libcjson-dev package doesn't provide
pkg-config file.
2024-02-02 08:33:06 +01:00
Sébastien Helleu bc464679a7 relay: fix build when CJSON is disabled (issue #2066) 2024-02-02 07:44:57 +01:00
Sébastien Helleu 86685f4af4 core: update translations (issue #2066) 2024-02-01 21:39:24 +01:00
Sébastien Helleu 6acf1af828 relay/api: add handshake resource, without authentication required (issue #2066) 2024-02-01 21:39:23 +01:00
Sébastien Helleu 3f902dba28 relay: check that request is not NULL before compressing data (issue #2066) 2024-02-01 21:39:23 +01:00
Sébastien Helleu de72fe1db5 relay/api: fix send of responses 400 and 404 in case of error (issue #2066) 2024-02-01 21:39:23 +01:00
Sébastien Helleu 89aeb03a13 relay: remove request from some function arguments (issue #2066) 2024-02-01 21:39:23 +01:00
Sébastien Helleu 83567fd871 relay: allow password hash authentication in api relay, add option relay.network.time_window (issue #2066) 2024-02-01 21:39:23 +01:00
Sébastien Helleu 70907fc169 relay: rename option relay.weechat.commands to relay.network.commands (issue #2066) 2024-02-01 21:39:23 +01:00
Sébastien Helleu f126255d6a core: add support of base64url in encode/decode functions (issue #2066) 2024-02-01 21:39:21 +01:00
Sébastien Helleu 6cfb31c306 relay: add support of websocket extension "permessage-deflate" (closes #1549)
This extension is used to compress and decompress websocket frames (using
the DEFLATE algorithm, with zlib).
2024-02-01 21:38:53 +01:00
Sébastien Helleu 8971fc069a relay: add "api" protocol (HTTP REST API) (issue #2066) 2024-02-01 21:38:49 +01:00
Krzysztof Korościk 179d53a12e po: updated Polish translations 2024-01-31 21:16:52 +01:00
Sébastien Helleu 2469dc6df9 core: use function util_strftimeval in evaluation of expression date:xxx 2024-01-27 16:53:53 +01:00
Sébastien Helleu e3af6a91d4 api: add support of specifier %! for timestamp in function util_strftimeval 2024-01-27 16:53:53 +01:00
Nils Görs 73a1c9753a core: update German translations 2024-01-27 14:35:34 +01:00
Sébastien Helleu 1ac38a4cf9 core: add support of (?i) for argument "name" in /help buffer 2024-01-24 20:58:44 +01:00
Sébastien Helleu 09e01133d2 core: allow case insensitive search of partial buffer name with (?i)name in command /buffer 2024-01-24 20:54:41 +01:00
Sébastien Helleu b7735632b8 tests: add tests on buffer properties "opening" and "type" 2024-01-24 20:47:51 +01:00
Sébastien Helleu da79574ca7 core: return 0 in gui_buffer_is_main if plugin_name or name is NULL 2024-01-24 19:42:08 +01:00
Sébastien Helleu 971d5b6b64 doc/dev: update rules for indentation in C sources 2024-01-22 20:59:51 +01:00
Sébastien Helleu 88d391bca3 core: add version 4.2.1 in ChangeLog and release notes 2024-01-22 20:45:25 +01:00
Sébastien Helleu fe52f7c78c tests: remove extra empty line 2024-01-22 13:58:33 +01:00
Sébastien Helleu 06b4e46977 irc: fix random date displayed when a received message contains tags but no "time" (closes #2064) 2024-01-22 13:18:25 +01:00
Sébastien Helleu 750e677490 Version 4.3.0-dev 2024-01-21 09:36:44 +01:00
Sébastien Helleu 017d9bd975 Version 4.2.0 2024-01-21 09:33:14 +01:00
Sébastien Helleu 05fdb2929f tests: add missing format string in calls to snprintf 2024-01-21 09:17:11 +01:00
Sébastien Helleu d5b61f565e core: add versions 4.0.8 and 4.1.3 in ChangeLog and release notes 2024-01-20 09:27:35 +01:00
Ivan Pešić ff1c3d37d1 core: Update Serbian messages 2024-01-15 10:25:17 +01:00
Ivan Pešić f5a0a6c507 doc: Update Serbian translation 2024-01-15 10:25:17 +01:00
Nils Görs bee3fb311b core: update German translations 2024-01-15 07:44:28 +01:00
Sébastien Helleu 3efcdbd521 doc/dev: remove conflict marker in Serbian doc 2024-01-14 00:29:47 +01:00
Sébastien Helleu 869fba9f74 irc: add tests on info functions (issue #2059) 2024-01-12 17:58:36 +01:00
Sébastien Helleu becdf76224 irc: check if arguments are not NULL in some infos
Affected infos:

- irc_server_isupport
- irc_server_isupport_value
- irc_server_cap
- irc_server_cap_value
2024-01-12 17:57:50 +01:00
Sébastien Helleu 8e252955da irc: fix info "irc_is_message_ignored" (closes #2059) 2024-01-12 17:53:19 +01:00
Sébastien Helleu 71fee810c9 doc/api: add missing properties in functions buffer_get_integer and buffer_get_string 2024-01-06 20:46:30 +01:00
Sébastien Helleu d8704d5c74 core: add variable "opening" in buffer, do not send buffer signals when the buffer is opening 2024-01-06 19:26:39 +01:00
Krzysztof Korościk 6efa574483 doc: update copyright dates 2024-01-06 16:23:22 +01:00
Krzysztof Korościk 4ffe67eafd po: updated polish translation 2024-01-06 16:21:25 +01:00
Sébastien Helleu b5ea82da48 relay/weechat: unhook hook_timer_nicklist when synchronization is stopped 2024-01-06 10:38:54 +01:00
Sébastien Helleu 5df85c7a53 relay: add global relay hdata variables 2024-01-06 09:56:23 +01:00
Sébastien Helleu 57a206287a irc: fix display of self messages in case of message split failure
When the message sends inconsistent max lengths in message 005, the split of
self message fails and causes a display issue: the channel name is displayed
with the message:

  nick | #channel :this is a test

instead of:

  nick | this is a test
2024-01-05 21:36:58 +01:00
Sébastien Helleu eb8ca14d83 relay: fix display of raw messages (issue #649) 2024-01-05 20:30:02 +01:00
Sébastien Helleu 9d9a47f111 core: add support of microseconds in command /print -date (issue #649) 2024-01-05 19:31:42 +01:00
Sébastien Helleu 4a1e5e7eaa irc: remove function irc_protocol_parse_time, use API function weechat_util_parse_time (issue #649) 2024-01-05 19:28:47 +01:00
Sébastien Helleu f6ba789c3d api: add function util_parse_time (issue #649) 2024-01-05 19:09:19 +01:00
Sébastien Helleu e88882f0ae irc: display microseconds in some user messages (issue #649) 2024-01-04 22:29:30 +01:00
Sébastien Helleu 89517d44a5 relay: add microseconds in relay raw messages (issue #649) 2024-01-04 22:25:13 +01:00
Nils Görs 1875217509 doc: update German documentation 2024-01-04 09:54:04 +01:00
Nils Görs 3dbfa5350d core: update German translations 2024-01-04 09:49:21 +01:00
Sébastien Helleu eecb2a997e core: update copyright dates 2024-01-01 22:29:58 +01:00
Krzysztof Korościk 934ef60151 doc: updated polish translation 2024-01-01 18:59:58 +01:00
Krzysztof Korościk 124c5adf62 po: updated polish translation 2024-01-01 16:07:17 +01:00
Faisal N Jawdat 5c65a73432 ruby: add detection for Ruby 3.3 2023-12-26 21:08:50 +01:00
Sébastien Helleu 9fb3d3f14c core: store microseconds in buffer lines (closes #649) 2023-12-26 19:44:37 +01:00
Nils Görs 57f80a4c1f core: update German translations 2023-12-25 16:45:51 +01:00
Sébastien Helleu 5ccb0c23f9 debian: exclude directories ".git", "build" and "release" from source package 2023-12-24 18:41:38 +01:00
Sébastien Helleu 31881ebacf api: add property "type" in function buffer_get_string 2023-12-24 16:53:16 +01:00
Sébastien Helleu 28fc733aaf core: display when zstd is not available in output of /debug libs 2023-12-24 16:50:45 +01:00
Sébastien Helleu 7700228823 relay: move function to check if buffer belongs to relay 2023-12-24 16:27:51 +01:00
Sébastien Helleu 76a3f85831 core: fix typo in ChangeLog 2023-12-15 22:59:20 +01:00
Sébastien Helleu 75dc8b9d6c core: fix crash on plugin reload when using musl libs (closes #2052) 2023-12-15 22:53:51 +01:00
Sébastien Helleu 07fbd30948 tests: add missing include of string.h in plugin API info tests 2023-12-15 13:51:32 +01:00
Sébastien Helleu 1cc59edfcc core: fix infinite loop in display when the chat area is too small (closes #2053) 2023-12-14 23:12:39 +01:00
Sébastien Helleu fa0b320178 core: fix style 2023-12-14 23:11:35 +01:00
Nils Görs ffa933bcf8 core: update German translations 2023-12-13 21:22:34 +01:00
Sébastien Helleu b3422b96c0 irc: add option irc.look.display_host_wallops 2023-12-10 21:13:00 +01:00
Sébastien Helleu 3db8eb65ff tests: add tests with options irc.look.display_host_{join|join_local|notice|quit} set to off 2023-12-10 21:03:33 +01:00
Ivan Pešić 73e3d0e693 doc: Update Serbian documentation 2023-12-05 22:32:18 +01:00
Ivan Pešić 4bc0fd588d core: Update Serbian translation 2023-12-05 22:32:18 +01:00
Sébastien Helleu a39a1832a1 Revert "core: fix detection of gettext headers on Darwin (closes #2031)"
This reverts commit 80fa597a71.
2023-12-04 21:21:49 +01:00
Sébastien Helleu d6ccfb5862 core: fix Polish translations 2023-12-04 21:07:46 +01:00
Sébastien Helleu 80fa597a71 core: fix detection of gettext headers on Darwin (closes #2031) 2023-12-04 21:02:26 +01:00
Krzysztof Korościk dab17e8d59 po: updated polish translation 2023-12-04 19:46:09 +01:00
Nils Görs d70ef53973 core: update German translations 2023-12-04 09:00:37 +01:00
Krzysztof Korościk 33e320ac95 po: updated part of polish translation 2023-12-04 00:04:31 +01:00
Sébastien Helleu 8c3b7b6c6e core: add versions 4.0.7 and 4.1.2 in ChangeLog and release notes 2023-12-03 19:25:20 +01:00
Sébastien Helleu 6223639b71 core: improve forms for new issues, feature requests and questions on GitHub 2023-12-03 09:49:13 +01:00
NetSysFire a788ca13d8 core: add forms for new issues, feature requests and questions on GitHub 2023-12-03 09:49:13 +01:00
Sébastien Helleu bc08d9a2b3 tests: rename tests 2023-12-02 13:32:15 +01:00
Sébastien Helleu 52f32e5612 tests: add tests on plugin config functions 2023-12-02 13:24:42 +01:00
Sébastien Helleu f4926cbd20 tests: rename file test-plugins-api-info.cpp to test-plugin-api-info.cpp 2023-12-02 13:17:47 +01:00
Sébastien Helleu ba33e1db7d tests: fix tests on function plugin_api_infolist_plugin_cb 2023-12-02 11:47:45 +01:00
Sébastien Helleu d6796edac0 tests: add tests on plugin API info functions 2023-12-02 11:40:28 +01:00
Sébastien Helleu 36b9a58c72 tests: remove unneeded constant TOTP_SECRET 2023-12-02 09:44:07 +01:00
Sébastien Helleu 038eae07bd api: add info "mouse" 2023-12-02 09:43:36 +01:00
Sébastien Helleu 445d1d0ec5 api: return NULL instead of empty infolist "key" when context is not found 2023-12-02 09:40:01 +01:00
Sébastien Helleu 51fec9257e core: check that directory is not NULL in function plugin_api_info_absolute_path 2023-12-02 09:37:22 +01:00
Sébastien Helleu de5b0aae47 core: rename variable "version" to "compilation_date" 2023-12-02 09:36:57 +01:00
Sébastien Helleu 9711d2dc76 tests: add placeholders for new functions in irc server tests 2023-12-01 07:10:36 +01:00
Nils Görs 7974f4f40a core: update German translations 2023-11-30 21:09:58 +01:00
Sébastien Helleu 22fcb91e8b irc: display messages 730/731 even if command /notify was not used (closes #2049) 2023-11-29 18:14:37 +01:00
Sébastien Helleu 0f1b18d415 core: move link to Mastodon before Diaspora* 2023-11-29 14:35:12 +01:00
Sébastien Helleu f13c5b0b51 core: fix typo in release notes 2023-11-29 14:34:55 +01:00
Sébastien Helleu 996d1def22 core: update translations (issue #1039) 2023-11-29 10:00:57 +01:00
Sébastien Helleu de82d50768 irc: remove unneeded error message when an unknown server option is read in config file (issue #1039)
This is not needed because an error is already displayed by WeeChat core and
the IRC error doesn't add anything relevant to the user.
2023-11-29 10:00:54 +01:00
Sébastien Helleu f7b7e3975a irc: add server option "anti_flood", remove server options "anti_flood_prio_{high|low}" (issue #1039)
The new option is set in milliseconds.
2023-11-29 09:49:27 +01:00
Ivan Pešić e51152e6a4 core: Update Serbian translation 2023-11-29 08:39:06 +01:00
Nils Görs 9aa9bf4c9f core: update German translations 2023-11-28 12:03:18 +01:00
Sébastien Helleu e74b5db253 irc: remove trailing "\r\n" in signals "irc_out" and "irc_outtags" when messages are queued 2023-11-26 18:58:48 +01:00
Sébastien Helleu 6d427421de irc: add option irc.look.list_buffer 2023-11-24 19:42:28 +01:00
Sébastien Helleu d4220e8144 tests: add eval tests on "raw" and "raw_hl" with escaped prefix 2023-11-24 08:04:35 +01:00
Sébastien Helleu e01fa0aac9 tests: fix tests on function string_replace_with_callback 2023-11-23 22:01:48 +01:00
Sébastien Helleu 86cf456bb7 core: fix evaluation of ${raw_hl:...} with escaped prefix inside
Now `${raw_hl:\${` returns `\${` instead of `${`.
2023-11-23 20:59:31 +01:00
Sébastien Helleu 479ab5bc58 core: evaluate expressions even when the suffix is missing (issue #2042, issue #1714) 2023-11-23 08:49:54 +01:00
Sébastien Helleu 87f74e9f95 core: add syntax highlighting in evaluation of expressions, add option weechat.color.eval_syntax_colors (issue #2042)
Syntax highlighting (raw string without evaluation): `${raw_hl:xxx}`
Syntax highlighting: `${hl:xxx}`
2023-11-23 08:49:54 +01:00
Sébastien Helleu 2b0c2747ad api: remove script hooks before buffers/bar items/configs
This prevents a crash in some scripts that could use options after they are
freed, with the call to hook config callback that has been enabled by commit
2260214797.
2023-11-21 20:57:49 +01:00
Sébastien Helleu 6b0b3996cd core: add "core" in ChangeLog 2023-11-21 07:48:35 +01:00
Krzysztof Korościk 794dc115e5 po: updated polish translation 2023-11-20 23:52:08 +01:00
Krzysztof Korościk 117efa2716 po: updated part of polish translation 2023-11-19 23:48:00 +01:00
Krzysztof Korościk b9c8f215f3 doc: updated polish translation 2023-11-19 18:09:43 +01:00
Ivan Pešić ca388bdd53 doc: Update Serbian documentation 2023-11-16 13:30:27 +01:00
Ivan Pešić 3cec88506a core: Update Serbian translation 2023-11-16 13:30:27 +01:00
Sébastien Helleu 7b86f31764 buflist: jump to previous/next buffer displayed in buflist item with ctrl+wheel up/down on a buflist item (closes #1473) 2023-11-11 21:04:21 +01:00
Nils Görs 5d38149578 core: update German translations 2023-11-11 14:19:19 +01:00
Sébastien Helleu 75582b9262 core: remove empty lines in release notes 2023-11-11 09:46:08 +01:00
Sébastien Helleu d1aeca9ca9 core: fix section titles in release notes 2023-11-11 09:44:01 +01:00
Sébastien Helleu acd67bf34d core: update translations (issue #2040) 2023-11-11 08:59:43 +01:00
Sébastien Helleu e4720e5d5b core: add search in commands history in release notes (issue #2040) 2023-11-11 08:54:30 +01:00
Sébastien Helleu f00904afaa core: split ChangeLog entry on multiple lines (issue #2040) 2023-11-11 08:54:28 +01:00
Sébastien Helleu 6f90c7ef08 core: move key ctrl+s, ctrl+u to alt+shift+U (issue #2040) 2023-11-11 08:54:26 +01:00
Sébastien Helleu 97a90ac65a core: add key ctrl+o to send command found and insert next one in input (issue #2040) 2023-11-11 08:54:24 +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
Nils Görs b2ce312e82 core: update German translations 2023-11-09 10:28:39 +01:00
Sébastien Helleu ecc900ba3a tests: add tests on IRC message 337 2023-11-07 21:58:04 +01:00
Sébastien Helleu 515d4241ad irc: fix target buffer of IRC message 337 (whois reply: "is hiding their idle time") 2023-11-07 21:50:12 +01:00
Nils Görs 977fd3b6f7 core: update German translations 2023-11-06 13:46:44 +01:00
Sébastien Helleu 252240a1b1 core: fix value of buffer variable "num_history" when the value defined in option weechat.history.max_commands is reached 2023-11-04 17:01:45 +01:00
Sébastien Helleu 11d95fce11 relay: close properly connection with the IRC client in case of server disconnection (closes #2038) 2023-11-04 08:58:19 +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 d96a3e6b55 doc/faq: add question about key F11 2023-11-04 08:05:24 +01:00
Sébastien Helleu c90c71ea30 core: fix double call to hook config when an option is unset 2023-11-04 07:37:12 +01:00
Sébastien Helleu 028902b0e3 core: update ChangeLog 2023-11-04 00:02:12 +01:00
Sébastien Helleu 2260214797 core: call hook config when options are freed by unset or when file/section is freed
This fixes a refresh issue on the fset buffer when a plugin is unloaded: now
the options displayed that are freed are properly removed from the fset buffer.
2023-11-03 22:31:05 +01:00
Sébastien Helleu ab2684fd52 relay: change default value of option relay.network.tls_priorities to NORMAL
It is no more needed to remove `VERS-SSL3.0` because it is no longer in the
default priorities since GnuTLS 3.4.0 (released on 2015-04-08).
2023-11-03 22:01:50 +01:00
Sébastien Helleu d4cba7b7a3 irc: change default value of server option "tls_priorities" to NORMAL
It is no more needed to remove `VERS-SSL3.0` because it is no longer in the
default priorities since GnuTLS 3.4.0 (released on 2015-04-08).
2023-11-03 21:58:13 +01:00
Sébastien Helleu d90eebf6ca irc: update help on color remap options, update translations (issue #2025) 2023-11-01 14:29:25 +01:00
Sébastien Helleu f16857fc3d irc: add option irc.color.term_remap (closes #2025) 2023-11-01 13:56:40 +01:00
Sébastien Helleu 082cbe519b irc: add support of RGB colors in messages (issue #2025)
This is made using standard color code '\x04' followed by text color (RGB as
hexadecimal) and optional background (RGB as hexadecimal).
2023-11-01 13:21:06 +01:00
Sébastien Helleu 6d69cde186 core, plugins: set error to NULL before calling strtol()
This is not strictly necessary, just in case the function strtol() doesn't
update the pointer.
2023-11-01 09:53:38 +01:00
Sébastien Helleu f53983bc79 core: display an error with command /history N when N is not a valid integer 2023-11-01 09:44:44 +01:00
Sébastien Helleu 1dd535da5d trigger: rename local variable "trigger_filter" to "filter" on monitor buffer (closes #2037) 2023-10-30 23:41:28 +01:00
Sébastien Helleu 02f26517f3 core: fix memory leak when config version is invalid or not supported 2023-10-30 23:10:54 +01:00
Sébastien Helleu 3c62ae482b core: fix memory leak when infolist variable can not be created 2023-10-30 23:10:54 +01:00
Sébastien Helleu fd78c2f9ac core: check that buffer is not NULL in function gui_chat_printf_date_tags_internal 2023-10-30 23:10:54 +01:00
Sébastien Helleu 23289dcb2c core: fix use NULL pointer when a config file has no options 2023-10-30 23:10:54 +01:00
Sébastien Helleu 81b31d9e6c logger: remove dead assignment 2023-10-30 23:10:54 +01:00
Sébastien Helleu e8a4c1d813 xfer: fix use of uninitialized variable when adding a new xfer 2023-10-30 23:10:54 +01:00
Sébastien Helleu 4d884729f9 xfer: fix use of NULL pointer in strrchr() 2023-10-30 23:10:54 +01:00
Sébastien Helleu f8c459453d core: fix crash when "config_version" is present in a configuration file without a value 2023-10-30 23:10:54 +01:00
Sébastien Helleu bd187cd668 core: display an error on startup if environment variable "HOME" is not set 2023-10-30 23:10:54 +01:00
Sébastien Helleu 24c46cf3e5 tests: check that environment variable "HOME" is set before using it 2023-10-30 08:45:44 +01:00
Sébastien Helleu 1a5ff442cb ruby: fix use of NULL variable when displaying exception 2023-10-30 08:38:44 +01:00
Sébastien Helleu 21759171d2 irc: add tags "nick_xxx" and "host_xxx" in all messages, including self and server messages 2023-10-30 08:23:20 +01:00
Sébastien Helleu 7406c8b94c ci: uninstall php8.1-imagick before build (issue #2009)
When php imagick is installed and when WeeChat is compiled with gcc, there's a
crash when the php plugin is loaded.  Newer versions of gcc should fix the
issue, but as in CI we can't easily use them, uninstalling imagick avoids the
crash.
2023-10-28 09:08:33 +02:00
Sébastien Helleu 5c41d6c4a4 core: add version 4.1.1 2023-10-26 21:26:38 +02:00
Sébastien Helleu 6631d44a8d core: add version 4.0.6 2023-10-26 21:26:31 +02:00
Sébastien Helleu df1f48cc9b core: display only version with command /version, add options -o and -ol in command /upgrade 2023-10-26 20:42:23 +02:00
Nils Görs 57475499bf core: update German translations 2023-10-24 16:56:23 +02:00
Nils Görs 8f4a1a2dea core: update German translations 2023-10-24 09:22:48 +02:00
Sébastien Helleu c156fee0e1 core: fix crash when a custom bar item name is already used by a default bar item (closes #2034) 2023-10-23 13:11:02 +02:00
Nils Görs 0fe7eec90b core: update German translations 2023-10-23 11:28:58 +02:00
Sébastien Helleu 3cc400a9d6 core: add number of processes in command /sys waitpid 2023-10-22 21:02:41 +02:00
Sébastien Helleu d6343020aa core: fix random timeouts when a lot of concurrent processes are launched with hook_process (closes #2033) 2023-10-20 21:00:22 +02:00
Sébastien Helleu 8a389395b9 core: update translations (issue #2005) 2023-10-20 13:16:40 +02:00
Sébastien Helleu 02679e8001 logger: add description for examples in help on command /logger (issue #2005) 2023-10-20 13:16:07 +02:00
Sébastien Helleu fce5386d5c irc: add description for examples in help on some commands (issue #2005)
Help is updated on these commands:

- `/allchan`
- `/allpv`
- `/allserv`
2023-10-20 13:15:52 +02:00
Sébastien Helleu 96b7c60c5a core: add description for examples in help on some commands (issue #2005)
Help is updated on these commands:

- `/allbuf`
- `/bar`
- `/print`
- `/repeat`
- `/secure`
- `/wait`
2023-10-20 13:15:49 +02:00
Sébastien Helleu 6452be4a28 core: update translations (issue #194, issue #2032) 2023-10-19 23:59:15 +02:00
Sébastien Helleu a88b8f7ed2 irc: revert compute of nick colors to case sensitive way, deprecate again IRC nick color infos (issue #194, issue #2032) 2023-10-19 23:38:28 +02:00
Sébastien Helleu 1896c50c11 core: update translations (issue #2005) 2023-10-17 18:14:54 +02:00
Sébastien Helleu fa1e82d500 xfer: format and translate commands line by line (issue #2005) 2023-10-17 18:14:54 +02:00
Sébastien Helleu 7702ed56ea trigger: format and translate command line by line (issue #2005) 2023-10-17 18:14:54 +02:00
Sébastien Helleu f65556f3b2 spell: format and translate command line by line (issue #2005) 2023-10-17 18:14:54 +02:00
Sébastien Helleu ce5de07dbd relay: format and translate command line by line (issue #2005) 2023-10-17 18:14:54 +02:00
Sébastien Helleu efa1f44317 script: format and translate commands line by line (issue #2005) 2023-10-17 18:14:54 +02:00
Sébastien Helleu d60859138f logger: format and translate command line by line (issue #2005) 2023-10-17 18:14:54 +02:00
Sébastien Helleu 55ef9536c5 irc: format and translate commands line by line (issue #2005) 2023-10-17 18:14:54 +02:00
Sébastien Helleu 58bab65fd1 fset: format and translate command line by line (issue #2005) 2023-10-17 18:14:54 +02:00
Sébastien Helleu 79581019aa fifo: format and translate command line by line (issue #2005) 2023-10-17 18:14:54 +02:00
Sébastien Helleu aa32fa6d3e exec: format and translate command line by line (issue #2005) 2023-10-17 18:14:54 +02:00
Sébastien Helleu 2aaa14b616 charset: format and translate command line by line (issue #2005) 2023-10-17 18:14:54 +02:00
Sébastien Helleu cfa5f3324a buflist: format and translate command line by line (issue #2005) 2023-10-17 18:14:54 +02:00
Sébastien Helleu 05b160b5bc alias: format and translate command line by line (issue #2005) 2023-10-17 18:14:54 +02:00
Sébastien Helleu 2a4faf566b core: format and translate commands line by line (issue #2005) 2023-10-17 18:14:54 +02:00
Sébastien Helleu bbf42a5d09 api: add support of format/translation of command arguments description line by line (issue #2005) 2023-10-17 18:14:53 +02:00
Sébastien Helleu e34071131e api: add function string_concat (issue #2005) 2023-10-17 18:14:53 +02:00
Sébastien Helleu 9bc9df47d7 irc: add option irc.look.ignore_tag_messages (closes #989) 2023-10-15 18:45:11 +02:00
Sébastien Helleu 3898449dc2 irc: add structure with context sent as unique parameter to IRC protocol callbacks (issue #989) 2023-10-15 18:40:01 +02:00
Sébastien Helleu aed5c543ec core: update ChangeLog (closes #1956) 2023-10-15 18:00:59 +02:00
Sébastien Helleu ed98425b1b core: update translations (issue #1956) 2023-10-15 16:50:33 +02:00
Sébastien Helleu 0c45083324 alias: allow wildcard in command /alias del (issue #1956) 2023-10-15 16:50:26 +02:00
Sébastien Helleu 13e73d52d3 core: allow wildcard in command /proxy del (issue #1956) 2023-10-15 16:19:31 +02:00
Sébastien Helleu 59d11533dd core: allow wildcard in command /item del (issue #1956) 2023-10-15 16:19:06 +02:00
Sébastien Helleu 99a56b99f2 core: allow wildcard in command /bar del (issue #1956) 2023-10-15 16:18:51 +02:00
Sébastien Helleu aebf6d7ab3 core: allow wildcard in command /filter (issue #1956)
A mask with wildcards is now allowed in the following commands:

- `/filter enable`
- `/filter disable`
- `/filter toggle`
- `/filter del`
2023-10-15 16:18:02 +02:00
Sébastien Helleu 35660f8b1d trigger: allow wildcard in command /trigger (issue #1956)
A mask with wildcards is now allowed in the following commands:

- `/trigger enable`
- `/trigger disable`
- `/trigger toggle`
- `/trigger restart`
- `/trigger del`
- `/trigger restore`
2023-10-15 16:15:50 +02:00
Sébastien Helleu 1a579e03e8 core: update French translations 2023-10-15 15:48:55 +02:00
Sébastien Helleu 1d6e1fd752 core: make libintl.h required if CMake option ENABLE_NLS is enabled (issue #2031) 2023-10-15 14:58:26 +02:00
Sébastien Helleu 18b3c7a30b Version 4.2.0-dev 2023-10-15 09:06:12 +02:00
Sébastien Helleu 775b9c9cdf Version 4.1.0 2023-10-15 09:02:57 +02:00
Sébastien Helleu 6bc7d6fad3 debian: update changelog 2023-10-15 08:46:45 +02:00
Sébastien Helleu 9aefe4ae09 core: call curl init and cleanup functions
This is to prevent issues when these functions are not thread-safe.
2023-10-13 23:03:00 +02:00
Trygve Aaberge 13a057f0b2 core: only print hook_url errors when debug is enabled
Errors from hook_url should be handled by the caller, so don't print
them to the core buffer by default. Only print them when
weechat_debug_core is enabled. This was already the behavior for the
timeout error.
2023-10-13 21:52:15 +02:00
Trygve Aaberge 3735397a0f core: add error codes to output in hook_url
When hook_url fails, add an error_code field in the output in addition
to the error field. This is so the caller can get which error happened
programatically, without having to parse the (possibly translated) error
string.

It uses the same error codes as the return_code in hook_process, and in
addition adds 5 for an error from pthread_create and 6 for a timeout
error. If the error is from pthread_create, an additional field
`error_code_pthread` with the error code from pthread_create is added.
If the error is from curl, an additional field `error_code_curl` with
the error code from curl is added.
2023-10-13 09:26:00 +02:00
Trygve Aaberge 57b2efd82b core: run hook_url callback when pthread_create failed 2023-10-13 09:25:39 +02:00
Sébastien Helleu 6468f7761f core: set "error" field of "output" hashtable in hook_url in case of transfer timeout 2023-10-13 08:14:31 +02:00
Nils Görs a83121b847 core: update German translations 2023-10-11 07:52:02 +02:00
Sébastien Helleu 02a05f63d5 core: fix zombie processes remaining after the end of forked processes (closes #1994)
The clean of processes with waitpid() is now delayed after the kill(), so that
there are no more zombies.

In addition, this can be done manually if needed with `/sys waitpid`.
2023-10-10 19:23:43 +02:00
Sébastien Helleu 408901d772 irc: move value -all at the end of completions for command /ignore del 2023-10-09 20:06:52 +02:00
Sébastien Helleu bea9d5a2bf irc: fix memory leak when joining channels with keys 2023-10-07 20:33:42 +02:00
Sébastien Helleu feb5ee8886 core: fix build error if CMake option ENABLE_NLS is turned to off or if required dependencies are not found (closes #2026) 2023-10-05 19:05:02 +02:00
Sébastien Helleu b46ed5a2a2 core: use larger buffer for errors when creating a filter 2023-10-05 19:02:38 +02:00
Nils Görs 1d104bb940 core: update German translations 2023-10-05 08:44:28 +02:00
Sébastien Helleu 4600aeea53 core: update ChangeLog (issue #2024) 2023-10-01 16:43:48 +02:00
Sébastien Helleu 6bd0c63192 core: make zstd dependency optional (closes #2024) 2023-10-01 16:36:32 +02:00
Sébastien Helleu 879a548bea buflist: rename completions with items
Completions renamed:

- "buflist_all_items" -> "buflist_items"
- "buflist_used_items" -> "buflist_items_used"
2023-10-01 12:14:03 +02:00
Sébastien Helleu e928bce76c buflist: add support of item names in command /buflist refresh 2023-10-01 09:58:19 +02:00
LuK1337 8bd4994ccd core, relay: make inet_pton() return value checks more strict
inet_pton() can return values < 0.
2023-09-26 17:48:20 +02:00
Sébastien Helleu 360e971b01 core: add contributor 2023-09-26 17:14:10 +02:00
LuK1337 0bb5998988 core: replace inet_addr() with inet_pton()
man pages as well as rpminspect suggest that we shouldn't be using
inet_addr().
2023-09-26 17:12:03 +02:00
Sébastien Helleu b58f704542 core: update ChangeLog 2023-09-25 13:50:32 +02:00
LuK1337 bcd23ff585 core: fix TOTP moving factor on big-endian systems 2023-09-25 13:48:30 +02:00
LuK1337 169eecb5cf tests: use correct data type method in hdata tests 2023-09-25 13:48:30 +02:00
LuK1337 b433afbd26 tests: cast infolist time variable value to the correct data type 2023-09-25 13:48:30 +02:00
Sébastien Helleu 082ccb05bb core: add version 4.0.5 2023-09-24 10:24:26 +02:00
Sébastien Helleu f72fb3be4b irc: display "owner" for +q and "admin" for +a in output of /names (closes #2020, issue #97) 2023-09-22 23:21:22 +02:00
Sébastien Helleu 7f0efa3a8f core: update translations 2023-09-22 23:12:32 +02:00
Sébastien Helleu c96971eebb script: only check if return value of plugin_script_search_path is NULL (issue #2019) 2023-09-22 22:58:51 +02:00
Sébastien Helleu d6e4e87faf script: fix removal of script in system directory while trying to install a script (closes #2019) 2023-09-22 22:51:44 +02:00
Sébastien Helleu 12106ae7ba script: fix autoload of multiple scripts at once with /script autoload (closes #2018) 2023-09-20 20:05:49 +02:00
Sébastien Helleu 91bb1ebf5d tests: fix condition on libgcrypt version for algorithms sha512-224 and sha512-256 (issue #2008) 2023-09-20 06:56:56 +02:00
Sébastien Helleu 439410a388 doc/api: use a table for file_in/file_out options in function hook_url 2023-09-16 13:00:03 +02:00
Sébastien Helleu 36ab6c3bc7 doc/api: add link to hook_url in hook_process_hashtable for Curl options 2023-09-16 13:00:03 +02:00
Sébastien Helleu f0e4494205 core: properly terminate thread and release memory in url hook 2023-09-16 13:00:03 +02:00
Sébastien Helleu 83dcb84ea6 doc/api: add function hook_url 2023-09-16 13:00:03 +02:00
Sébastien Helleu fb00bc1f4b scripts: add function hook_url in scripting API 2023-09-16 13:00:03 +02:00
Sébastien Helleu 24d2ba3338 script: replace hook_process_hashtable by hook_url to download scripts and list of scripts (closes #1723) 2023-09-16 12:58:57 +02:00
Sébastien Helleu 63922ca038 api: add function hook_url 2023-09-16 10:19:51 +02:00
Sébastien Helleu a5f4c3770b doc/faq: add question about move of WeeChat config to another device 2023-09-16 09:46:50 +02:00
Sébastien Helleu 23d3ce7ad8 doc/faq: add question about keys like Enter and version 4.0.0 2023-09-15 18:57:00 +02:00
Nils Görs f49810ec0e core: update German translations 2023-09-15 12:48:22 +02:00
Sébastien Helleu 85b5bacfe3 script: rename parameters up/down/go to -up/-down/-go in command /script 2023-09-15 08:43:37 +02:00
Sébastien Helleu e62ff286ff xfer: fix crash on /dcc chat 2023-09-14 20:48:58 +02:00
Sébastien Helleu cb680ef9df irc: add option irc.look.open_pv_buffer_echo_msg (issue #2016) 2023-09-14 20:19:05 +02:00
Sébastien Helleu 63fc9aace8 irc: update title in query buffer when remote nick is myself (issue #2016) 2023-09-14 16:15:09 +02:00
Sébastien Helleu a2c3322df7 irc: fix title of query buffer for own messages received (issue #2016) 2023-09-14 15:22:11 +02:00
Sébastien Helleu 049e9d23c5 irc: open a query buffer on PRIVMSG received from self nick when capability echo-message is NOT enabled (issue #2016) 2023-09-14 14:51:50 +02:00
Sébastien Helleu 4c3ab508c7 irc: don't open a new private buffer on /msg command when capability echo-message is enabled (closes #2016) 2023-09-14 11:10:17 +02:00
Sébastien Helleu 747d6122bc core: move ChangeLog entry to the appropriate version 2023-09-14 11:07:42 +02:00
Nils Görs aad846583d core: update German translations 2023-09-14 08:45:01 +02:00
Sébastien Helleu 4e173c1972 irc: fix title of private buffers wrongly set to own address when capability echo-message is enabled (issue #2016) 2023-09-14 08:04:44 +02:00
Sébastien Helleu ef99d544fa core: add algorithms sha512-224, sha512-256, sha3-*, blake2b-* and blake2s-*` in option sec.crypt.hash_algo (closes #2008) 2023-09-13 15:10:19 +02:00
Sébastien Helleu 684bfd64c6 api: add algorithms sha512-224, sha512-256, blake2b-* and blake2s-*` in hash functions (issue #2008) 2023-09-13 15:09:34 +02:00
Nils Görs 29c4aa4620 core: update German translations 2023-09-13 10:19:54 +02:00
Sébastien Helleu d100d62a72 core: translate error messages (issue #2013) 2023-09-12 15:09:00 +02:00
Sébastien Helleu 3021b2f9c5 core: automatically backup config file read if it has an unsupported version (closes #2013) 2023-09-12 14:59:25 +02:00
Sébastien Helleu 6fcdb50dab xfer: fix memory leak on plugin unload 2023-09-12 13:38:14 +02:00
Sébastien Helleu 54a5815105 doc/api: fix return values for callback_read in config_new_section 2023-09-12 13:35:02 +02:00
Sébastien Helleu c4c58e0914 irc: fix unexpected message sent to server when part of the second line of an IRC command (closes #1992) 2023-09-12 08:14:23 +02:00
Sébastien Helleu 8eb2604704 core: add path in message displayed when a config file is updated to a newer version 2023-09-11 22:49:21 +02:00
Sébastien Helleu ddd859886e irc: fix autojoin of channels when private buffers are opened (closes #2012) 2023-09-11 21:41:47 +02:00
Sébastien Helleu ae50f6688e irc: reset filter and sort when /list buffer is closed (issue #1972) 2023-09-11 16:40:45 +02:00
Nils Görs 6170ebd396 core: update German translations 2023-09-11 11:21:54 +02:00
Sébastien Helleu 82372115ae core: display a message when a configuration file is updated to a newer version 2023-09-11 09:53:17 +02:00
Nils Görs 71dfbdc419 core: update German translations 2023-09-11 08:44:14 +02:00
Sébastien Helleu 79d0a134e3 buflist: add missing items buflist4 and buflist5 in help on command/options and user's guide 2023-09-11 07:55:54 +02:00
Nils Görs 3882b2e881 core: update German translations 2023-09-09 21:03:38 +02:00
Sébastien Helleu 6b356d4208 doc/user: add missing actions on script buffer 2023-09-09 11:26:04 +02:00
Sébastien Helleu a2e9c74b50 doc/user: add missing key alt+L (input L) on script buffer 2023-09-09 11:10:50 +02:00
Sébastien Helleu d9555cc567 scripts: add functions config_enum and config_enum_default in scripting API (issue #1973) 2023-09-09 08:54:33 +02:00
Sébastien Helleu 9fada89f96 doc/user: add missing actions p and v on fset buffer 2023-09-08 20:22:59 +02:00
Sébastien Helleu 46b76af645 xfer: display an error message when opening file for read or write fails (issue #2010) 2023-09-08 13:06:28 +02:00
Sébastien Helleu b30b492e66 core: update translations 2023-09-08 13:02:36 +02:00
Sébastien Helleu 2c251cd285 script: fix up/down keys on /script buffer
Regression was introduced in commit 817d1eaf8e.
2023-09-08 10:47:46 +02:00
Nils Görs 7fd20269e7 core: update German translations 2023-09-08 07:56:48 +02:00
Sébastien Helleu 374262a8d7 core: add completion "eval_variables", used in completion of /eval 2023-09-07 11:38:26 +02:00
Sébastien Helleu 89739421cf core: fix comment on function eval_replace_vars_cb 2023-09-07 11:30:54 +02:00
Sébastien Helleu 1be5209e9f core: update translations (issue #2004) 2023-09-06 19:16:06 +02:00
Sébastien Helleu 65e092ab25 core: add contributor (issue #2004) 2023-09-06 19:16:06 +02:00
Sébastien Helleu 5f5f05805f core: update ChangeLog (issue #2004) 2023-09-06 19:16:06 +02:00
Sébastien Helleu 6eb3f5672f xfer: fix code style (issue #2004) 2023-09-06 19:10:47 +02:00
Sébastien Helleu 1f1416dd50 irc: fix code style (issue #2004) 2023-09-06 19:10:41 +02:00
Mario Campos 1ee3bad88b xfer: update command/config docs with passive DCC support. 2023-09-06 14:11:35 +02:00
Mario Campos 7f0f947667 xfer: add passive DCC support.
This commit also includes support for passive DCC RESUME.

There was also a potential segfault with calling `atoi(pos_token)` when `pos_token` is NULL, so `token` is set to be stored as a string. Although it is an integer, we don't need to store it as such. That's really more of an implementation detail.
2023-09-06 14:11:35 +02:00
Mario Campos 23d70b5101 xfer: add and identify active/passive xfer types.
Before making any significant changes, let's identify the existing xfer types by either active or passive.
2023-09-06 14:11:35 +02:00
Mario Campos 2a40743ed0 xfer: reverse DCC parsing from RtL to LtR.
This makes it easier to handle the optional "token" argument at the (right) end, which will be necessary to support passive DCC.

Incidentally, this is RtL parsing order is the reason why you'd get a cryptic "0" address error when attempting to do passive DCC: the "token" argument gets misinterpreted as the "size" argument. Every argument "shifts" over by one, leaving an address (port) of "0".
2023-09-06 14:11:35 +02:00
Sébastien Helleu ac8418de8e irc: remove default CTCP replies FINGER and USERINFO from user's guide (issue #1974) 2023-09-06 14:10:56 +02:00
Sébastien Helleu e1ecf992f3 irc: fix comments on CTCP evaluated variables (issue #1974) 2023-09-06 14:05:10 +02:00
Ivan Pešić cf6ec7657e doc: Update Serbian documentation 2023-09-06 10:25:41 +02:00
Ivan Pešić 75c5ccecfa core: Update Serbian translation 2023-09-06 10:25:41 +02:00
Sébastien Helleu 722cb27d04 core: add note for translators on command arguments (issue #2005)
Only text between angle brackets (eg: "<name>") must be translated.
2023-09-05 13:28:26 +02:00
Sébastien Helleu 13ce1147fc doc: fix alignment of command arguments in auto-generated file when command name contains wide chars 2023-09-01 08:58:36 +02:00
Nils Görs b7cd446822 core: update German translations 2023-09-01 07:29:20 +02:00
Sébastien Helleu 5691518e91 doc/user: add section "buffer" in chapter on WeeChat options (issue #352) 2023-08-30 17:33:50 +02:00
Sébastien Helleu 2b3fb62065 core: do not evaluate properties "key_bind_xxx" and "key_unbind_xxx" in options weechat.buffer.* (issue #352) 2023-08-30 17:25:21 +02:00
Sébastien Helleu c2b6523d9f core: fix style for keys in ChangeLog 2023-08-29 12:32:23 +02:00
Sébastien Helleu 620fce4bba core: add new key ctrl+z in ChangeLog 2023-08-29 12:28:24 +02:00
Sébastien Helleu 8b3311860b api: add support of path to variable and hashtable comparison in function hdata_compare (closes #1066) 2023-08-29 10:22:17 +02:00
Sébastien Helleu 58d61cb153 core: remove unused variable old_value 2023-08-29 09:53:08 +02:00
Sébastien Helleu 32f52ae236 core: check that property is not NULL before calling free 2023-08-29 09:52:17 +02:00
Nils Görs c5ceacd68f core: update German translations 2023-08-28 20:34:03 +02:00
Sébastien Helleu aa4bc616b9 core: add missing include of unistd.h 2023-08-28 17:57:46 +02:00
Sébastien Helleu b203c4109b core: move sys filename and functions 2023-08-28 17:55:54 +02:00
Sébastien Helleu a16b3d25ce core: update translations 2023-08-28 17:47:21 +02:00
Sébastien Helleu cc2b44a8ec core: add key ctrl+z to suspend WeeChat process (closes #985) 2023-08-28 17:39:33 +02:00
Sébastien Helleu 5ecb1adc34 core: add command /sys to show resource limits and usage 2023-08-28 12:30:32 +02:00
Nils Görs d328d7f2b8 core: update German translations 2023-08-27 19:42:31 +02:00
Sébastien Helleu 711d3afa5c script: fix crash when a /script command triggers another /script command (issue #923) 2023-08-27 17:19:01 +02: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 181f4c041d core: add support of quotes in commands /key bind and /key bindctxt 2023-08-27 14:15:30 +02:00
Sébastien Helleu 3ca4f2d3e5 irc: add count and mode filter in command /names (closes #98) 2023-08-27 12:26:10 +02:00
Sébastien Helleu 300adb42fa irc: add note about regex and output on server buffer in /help list 2023-08-27 09:59:54 +02:00
Sébastien Helleu e5e027b9fa core: add countdown example in /help repeat (issue #2007) 2023-08-27 08:25:41 +02:00
Sébastien Helleu 9a268ec7cc core: evaluate command given to /repeat with contextual variables (closes #2007) 2023-08-27 08:03:40 +02:00
Nils Görs b0ed5b99e9 core: update German translations 2023-08-27 00:12:07 +02:00
Sébastien Helleu 4a95d78c45 core: add variable ${property} in evaluation of options weechat.buffer.* (issue #352) 2023-08-26 20:04:58 +02:00
Sébastien Helleu dd0c20f6b6 irc: add count for all nick modes in output of /names (closes #97) 2023-08-26 18:57:21 +02:00
Sébastien Helleu 42c925b672 irc: use str_nicks only if not NULL in callback of message 353 2023-08-26 18:56:37 +02:00
Sébastien Helleu ff4596e45c core: add option callbacks in command /debug 2023-08-25 13:35:50 +02:00
Sébastien Helleu cc2bb4b8cf core: add function util_get_microseconds_string 2023-08-25 11:53:23 +02:00
Sébastien Helleu 015ff084e3 core: add microseconds precision in function util_parse_delay 2023-08-25 11:23:41 +02:00
Sébastien Helleu 11943ebaaf tests: add tests on GUI buffer functions
Functions tested:

- gui_buffer_is_reserved_name
- gui_buffer_get_integer
- gui_buffer_get_string
- gui_buffer_get_pointer
2023-08-25 08:16:36 +02:00
Sébastien Helleu 2092715ac7 core: add buffer local keys in completion "buffer_properties_setauto" 2023-08-24 19:20:05 +02:00
Sébastien Helleu 272bcf3c97 core: update ChangeLog (issue #2006) 2023-08-24 19:10:35 +02:00
Trygve Aaberge d14e74ccf6 Add compatibility with Python < 3.10 in weechat.pyi
The | syntax for unions is only supported in Python 3.10 and later.
Since Python 3.8 and 3.9 are still supported upstream for a while and we
had a user reporting on IRC that they couldn't use the stub file since
they are using 3.8, change to the old syntax for unions to support this.

There aren't really any drawbacks of this. It's just a bit more verbose,
and a typing import is necessary, but neither of those really matters in
a generated stub file.
2023-08-24 19:08:00 +02:00
Sébastien Helleu 3a59f2f65e irc: add local key bindings during the /list buffer creation
This allows the user to bind or unbind keys by setting options
"weechat.buffer.irc.list_xxx.key_bind_*" and
"weechat.buffer.irc.list_xxx.key_unbind_*".
2023-08-24 19:03:44 +02:00
Sébastien Helleu 817d1eaf8e script: add local key bindings during the buffer creation
This allows the user to bind or unbind keys by setting options
"weechat.buffer.script.scripts.key_bind_*" and
"weechat.buffer.script.scripts.key_unbind_*".
2023-08-24 19:01:20 +02:00
Sébastien Helleu 6737859330 fset: add local key bindings during the buffer creation
This allows the user to bind or unbind keys by setting options
"weechat.buffer.fset.fset.key_bind_*" and
"weechat.buffer.fset.fset.key_unbind_*".
2023-08-24 19:00:32 +02:00
Sébastien Helleu fd07b2888f fset: fix wrong value type in hashtable used for fset buffer properties 2023-08-24 18:44:50 +02:00
Sébastien Helleu 5d9af29024 api: add infos "nick_color_ignore_case" and "nick_color_name_ignore_case" (issue #194) 2023-08-24 18:19:32 +02:00
Nils Görs 965c6ac2ea doc: update German documentation 2023-08-24 13:50:16 +02:00
Nils Görs d2d3cd1b46 core: update German translations 2023-08-24 13:36:53 +02:00
Sébastien Helleu 0c6bcf3e78 core: update translations (closes #352) 2023-08-24 11:49:46 +02:00
Sébastien Helleu 303fe6744e core: add option setauto in command /buffer (issue #352) 2023-08-24 11:49:29 +02:00
Sébastien Helleu 3aef8b7292 core: add options weechat.buffer.* to save buffer properties set by user (issue #352) 2023-08-24 10:38:47 +02:00
Sébastien Helleu 6aa66b5363 irc: compute color in case insensitive way (closes #194)
Reintroduce infos "irc_nick_color" and "irc_nick_color_name" (that were
marked deprecated since version 1.5).

A server name is added in the two infos and is optional, for backward
compatibility.
2023-08-24 09:24:51 +02:00
Sébastien Helleu c2426e88c9 irc: add functions to convert strings to lower/upper case (following casemapping) (issue #194) 2023-08-24 09:24:42 +02:00
Sébastien Helleu 09eae3e2af irc: add tests on server functions 2023-08-23 15:33:34 +02:00
Sébastien Helleu 25b3f2eae7 irc: fix string comparison when CASEMAPPING is set to "ascii" 2023-08-23 15:33:34 +02:00
Sébastien Helleu 9462c87ce5 tests: add tests on string comparison functions with range of 29 chars 2023-08-23 12:14:07 +02:00
Sébastien Helleu 03927a3283 irc: check that server is not NULL in function irc_server_eval_fingerprint 2023-08-23 12:08:59 +02:00
Sébastien Helleu 7afc43901d irc: move function irc_server_fingerprint_search_algo_with_size 2023-08-23 12:06:59 +02:00
Sébastien Helleu 49f52cc051 doc/faq: split CTCP options into two blocks
Second block is for CTCP replies made by older versions (< 4.1.0).
2023-08-22 23:55:01 +02:00
Sébastien Helleu c0bd12bdf0 doc/faq: add disabling of buflist in question about CPU usage 2023-08-22 23:44:58 +02:00
Sébastien Helleu 0871024eda core: add version 4.0.4 2023-08-22 12:08:42 +02:00
Nils Görs 4566ed2bf9 core: update German translations 2023-08-22 11:30:35 +02:00
Sébastien Helleu 9591af8be8 core: fix gcc warning on uninitialized variable pos_end
The variable `pos_end` is never used when not initialized anyway, thanks to the
`break` done before.
2023-08-22 10:29:11 +02:00
Sébastien Helleu 28ff9d602a debian: bump Standards-Version to 4.6.2 2023-08-22 10:03:35 +02:00
Sébastien Helleu a3382f5a09 build: update build dependency from libncursesw5-dev to libncurses-dev 2023-08-22 09:55:24 +02:00
Sébastien Helleu 212741af05 debian: remove NEWS file 2023-08-22 09:36:39 +02:00
Sébastien Helleu 00dbb24658 debian: update changelog 2023-08-22 09:35:40 +02:00
Sébastien Helleu fdebcf690b script: add parameters up/down/go in /help script and command completion 2023-08-22 09:34:41 +02:00
Sébastien Helleu 763e8bd3a0 script: allow jump to the last script with command /script go end 2023-08-22 09:24:06 +02:00
Sébastien Helleu 6950c953a1 script: adjust scroll after command /script go N 2023-08-22 09:21:00 +02:00
Ivan Pešić fd6bdd3b59 doc: Update Serbian documentation 2023-08-22 07:51:09 +02:00
Ivan Pešić f098a112a1 core: Update Serbian translation 2023-08-22 07:51:09 +02:00
Sébastien Helleu ce4f4fb3fa logger: remove trailing empty line in display of backlog (closes #2002) 2023-08-21 16:01:59 +02:00
Sébastien Helleu faf9d1600f tests: change date format in test of print_date_tags
With complete date and time format, the tests output was incorrectly parsed by
Emacs.
2023-08-21 15:31:14 +02:00
Sébastien Helleu f4b9cad720 perl: fix display of non-ASCII chars after load of a script with Perl >= 5.38 (closes #1996) 2023-08-21 13:10:26 +02:00
Sébastien Helleu 6def0cf502 buflist: add list buffer in /help buflist and /help buflist.format.indent 2023-08-20 21:00:33 +02:00
Sébastien Helleu 6969b9b2b8 buflist: indent the /list buffer 2023-08-20 20:54:24 +02:00
Sébastien Helleu 5ffce90f23 irc: change local variable "type" from "irc_list" to "list" on /list buffer 2023-08-20 20:53:44 +02:00
Sébastien Helleu 64cb3e6a63 irc: fix wrong time displayed for CTCP messages received from self nick (closes #2000) 2023-08-18 23:57:35 +02:00
Sébastien Helleu 1fe1e1a1e8 scripts: fix tests of functions print_date_tag, print_y_date_tags and hook_timer on 32-bit systems (issue #1999) 2023-08-18 16:42:52 +02:00
Sébastien Helleu ed5467c4a9 scripts: fix function string_parse_size on 32-bit systems (python and ruby) (issue #1999) 2023-08-18 16:40:53 +02:00
Sébastien Helleu fadfffc0b6 xfer: fix conversion of string to IPv4 on 32-bit systems (issue #1999) 2023-08-18 15:34:06 +02:00
Sébastien Helleu 08e110c835 core: use dynamic string in function gui_buffer_set_highlight_words_list 2023-08-18 13:38:05 +02:00
Sébastien Helleu 2c8657826f core: simplify function gui_buffer_notify_get 2023-08-18 13:37:39 +02:00
Sébastien Helleu b756598070 tests: add tests on GUI buffer functions 2023-08-18 13:35:36 +02:00
Sébastien Helleu 14334880d8 tests: fix NULL pointer comparison in test of function irc_message_parse_to_hashtable 2023-08-18 13:30:38 +02:00
Sébastien Helleu 2ad8a0d868 core: update ChangeLog (issue #1997) 2023-08-18 07:54:47 +02:00
Sébastien Helleu f89d4a60cd tests: fix tests on function irc_join_compare_join_channel (closes #1997) 2023-08-18 07:34:52 +02:00
Sébastien Helleu 5bf78f40e5 tests: fix typo in test name 2023-08-18 07:30:20 +02:00
Sébastien Helleu aac4b38432 core: add name of section in warning message for invalid value when reading config 2023-08-18 00:47:11 +02:00
Sébastien Helleu 41d23a448a core: fix increment/decrement of options weechat.notify.* 2023-08-17 17:25:19 +02:00
Sébastien Helleu 274f5f9d53 core: fix integer overflow when setting integer option with ++N or --N 2023-08-17 17:03:34 +02:00
Nils Görs d8bd0b7da8 core: update German translations 2023-08-17 12:10:01 +02:00
Nils Görs 773013cde7 core: update German translations 2023-08-17 11:27:51 +02:00
Sébastien Helleu 921b7fc2d3 tests: add tests on eval ternary operator with extra colon in value 2023-08-16 21:08:55 +02:00
Sébastien Helleu 8b9cdc8329 core: update translations (issue #1282) 2023-08-16 16:12:49 +02:00
Sébastien Helleu 43d341feac core: fix /help cursor (issue #1282) 2023-08-16 16:12:35 +02:00
Sébastien Helleu 81e09bd6e1 doc/user: add chapter on cursor mode (issue #1282) 2023-08-16 15:59:48 +02:00
Sébastien Helleu 48e6a1e387 core: add parameters and key bindings to move to edges of current area with commands /cursor go and /cursor move (closes #1282) 2023-08-16 15:25:52 +02:00
Sébastien Helleu 41dbcb1a81 core: set minimum CMake version to 3.5
This removes the following CMake warning:

CMake Deprecation Warning at CMakeLists.txt:22 (cmake_minimum_required):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.
2023-08-15 10:56:28 +02:00
Sébastien Helleu e94a18268e core: convert scripts local variables to lower case 2023-08-15 10:50:35 +02:00
Sébastien Helleu 409bd256a9 doc/user: remove old note in French doc 2023-08-15 08:51:50 +02:00
Sébastien Helleu 17927cc09f doc/user: improve look of clicked buttons in mouse bindings 2023-08-15 08:47:08 +02:00
Sébastien Helleu cfc734b7c5 tests: add empty function to test function irc_list_buffer_set_localvar_filter 2023-08-14 16:08:01 +02:00
Sébastien Helleu 09e0ffe935 doc/user: add mouse, keys and input for /list buffer 2023-08-14 11:53:04 +02:00
Sébastien Helleu 938e9c13cd irc: add local variable "filter" on /list buffer 2023-08-14 11:01:50 +02:00
Sébastien Helleu b75c956c02 fset: fix typos in French translation of /help fset 2023-08-14 10:32:06 +02:00
Sébastien Helleu 9727861d66 irc: fix /help list and French translation 2023-08-14 10:31:22 +02:00
Sébastien Helleu 2829a8ee2b doc/user: fix command bound to left mouse button in fset buffer 2023-08-14 08:57:37 +02:00
Sébastien Helleu 46cea77585 relay: synchronize nick modes with IRC client upon connection (closes #1984) 2023-08-13 16:38:29 +02:00
Sébastien Helleu 4290876e64 script: allow commands /script autoload|noautoload|toggleautoload with scripts not present in the repository (closes #1980) 2023-08-13 10:22:06 +02:00
Sébastien Helleu 510756935c core: remove reference to iset in German translation 2023-08-13 09:10:16 +02:00
Sébastien Helleu beb93ada1e script: replace "iset" example by "go" in comments 2023-08-13 09:10:04 +02:00
Sébastien Helleu 0bfdaa25bf fset: remove redirection to /help fset.look.sort in /help fset 2023-08-12 16:25:25 +02:00
Sébastien Helleu 017f4cca18 core: fix French translation of /help list 2023-08-12 16:22:55 +02:00
Sébastien Helleu 2f1de098bd irc: add buffer for /list reply (closes #1972)
New options:

- irc.color.list_buffer_line_selected
- irc.color.list_buffer_line_selected_bg
- irc.look.list_buffer_sort
- irc.look.list_buffer_scroll_horizontal
- irc.look.new_list_position
- irc.look.list_buffer_topic_strip_colors
2023-08-12 13:05:49 +02:00
Sébastien Helleu d25a4213fe irc: fix redirection of command /list when the reply doesn't start with message 321 (start of /list) 2023-08-10 08:13:54 +02:00
Sébastien Helleu 17674f7b11 irc: add missing tags on multiline messages (closes #1987) 2023-08-09 14:53:03 +02:00
Sébastien Helleu 356712f44d core: add version 4.0.3 2023-08-08 22:10:29 +02:00
Sébastien Helleu c6b18e9654 relay: fix display of IRC CTCP messages received from client (issue #1986) 2023-08-08 09:38:54 +02:00
Sébastien Helleu ff41a79aa9 core: update ChangeLog (issue #1988) 2023-08-08 07:17:08 +02:00
Sébastien Helleu 1826decb0b core: update translations (issue #1988) 2023-08-08 07:14:56 +02:00
Nathaniel Evan 070f0da1c0 fset: fix the colon in help bar being included in description color 2023-08-08 06:59:14 +02:00
Nathaniel Evan e0e839e7cc fset: fix fset.color.help_description not applying 2023-08-08 06:59:14 +02:00
Sébastien Helleu e5948b0d44 tests: add test on IRC notice sent to another nick with channel name at beginning (issue #1991) 2023-08-01 22:48:43 +02:00
Sébastien Helleu 03daae3059 irc: fix display of outgoing notice with channel when capability "echo-message" is enabled (closes #1991) 2023-08-01 22:35:21 +02:00
Sébastien Helleu b0549e4d09 irc: add channel in "autojoin" server option only when the channel is actually joined (closes #1990) 2023-08-01 21:45:28 +02:00
Sébastien Helleu 8e48503253 core: remove CMake option "ENABLE_DOC_WARN_LOCALE" from release notes (issue #1985) 2023-08-01 08:31:44 +02:00
Sébastien Helleu c198e875ce core: remove CMake option "ENABLE_DOC_WARN_LOCALE" (issue #1985) 2023-07-31 22:01:34 +02:00
Sébastien Helleu 73439d5a50 core: fix typo 2023-07-31 21:51:08 +02:00
Sébastien Helleu 36ab9d97e4 core: fix styles in ChangeLog 2023-07-31 21:27:46 +02:00
Sébastien Helleu 8bfd25e2e6 doc: stop build of docs if a locale is missing, add CMake option "ENABLE_DOC_WARN_LOCALE" (closes #1985) 2023-07-31 21:27:16 +02:00
Sébastien Helleu 1ffd0a58b9 core: add missing trailing newline char in doc generation error messages 2023-07-31 08:06:01 +02:00
Sébastien Helleu 4fc90b86bf irc: fix switch to channel manually joined (closes #1982)
This happens when server option autojoin_dynamic is on and option
irc.look.buffer_switch_autojoin is off.

Regression was introduced in version 4.0.0 by commit
1c3b871204.
2023-07-31 08:03:50 +02:00
Sébastien Helleu 63f9289769 core: fix input length and crash after delete of line (closes #1989) 2023-07-28 07:21:22 +02:00
Nils Görs 06fa5923e8 core: update German translations 2023-07-23 11:49:01 +02:00
Sébastien Helleu 13241cdca5 irc: fix memory leak in IRC message parser
Bug was introduced in WeeChat 3.4 by commit
c4b4d80936.
2023-07-20 08:49:23 +02:00
Sébastien Helleu 93dfc8b105 core: fix typo in comment 2023-07-18 18:50:02 +02:00
Sébastien Helleu 874a24956c irc: fix display of self CTCP message containing bold attribute (closes #1981) 2023-07-18 18:48:48 +02:00
Sébastien Helleu a457e22d57 tests: add missing include of string.h 2023-07-15 16:24:16 +02:00
Sébastien Helleu 6b9dd2add3 fset: fix description of function fset_buffer_check_line_outside_window 2023-07-14 12:06:26 +02:00
Sébastien Helleu eb71be4219 doc/api: fix return value in case of error in function hdata_get_var_offset 2023-07-14 09:53:19 +02:00
Sébastien Helleu 8cd13ef580 core: add version 4.0.2 in release notes 2023-07-12 22:09:24 +02:00
Sébastien Helleu 622410a64e core: add version 4.0.2 2023-07-12 20:51:21 +02:00
Sébastien Helleu 7c805aa699 irc: remove default CTCP replies FINGER and USERINFO (issue #1974) 2023-07-12 19:13:40 +02:00
Sébastien Helleu 9237852b26 irc: build dynamically the list of CTCPs supported in reply to "CTCP CLIENTINFO" (issue #1974) 2023-07-12 18:58:51 +02:00
Sébastien Helleu f46f759975 irc: evaluate options irc.ctcp.* (issue #1974) 2023-07-12 18:58:30 +02:00
Sébastien Helleu 5d222c8d5c irc: create default options irc.ctcp.* when file irc.conf is created (issue #1974) 2023-07-11 19:40:04 +02:00
Sébastien Helleu 363d2d5e68 core: clarify messages for unknown options/sections read in config files (closes #1967) 2023-07-11 18:08:14 +02:00
Sébastien Helleu ba6f21d910 irc: add missing "account-tag" in list of supported capabilities 2023-07-10 14:08:19 +02:00
Sébastien Helleu 2a02bb10e5 core: fix renaming of options with command /item rename (closes #1978)
The options `weechat.custom_bar_item.xxx.*` are now properly renamed to the new
item name.

This fixes a save issue (item saved with old name in config) and a crash if a
new item is created with the old name.
2023-07-10 07:31:28 +02:00
Sébastien Helleu 107f83c923 irc: remove Git revision and compilation date from CTCP VERSION/FINGER reply (issue #1974) 2023-07-08 21:40:21 +02:00
Sébastien Helleu 38f3b40894 fset: add missing format in calls to snprintf 2023-07-08 17:14:03 +02:00
Sébastien Helleu 3070c12fa3 build: add C compiler options "-Wformat" and "-Werror=format-security" 2023-07-08 17:12:39 +02:00
Sébastien Helleu 1d5433485c fset: add variable allowed_values in options, add two color options
New options:

- fset.color.allowed_values
- fset.color.allowed_values_selected
2023-07-08 16:50:42 +02:00
Sébastien Helleu 4c0c7d9adc fset: add missing enum in /help fset 2023-07-08 14:45:25 +02:00
Sébastien Helleu 8985607951 fset: fix mouse actions when second format is used
The mouse actions now properly handle the case where options are displayed on
multiple lines to calculate the option index in list.
2023-07-08 13:56:22 +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 5b2cf75f6e fset: allow long type name in type filter 2023-07-08 13:30:37 +02:00
Sébastien Helleu 481e8f197d core: use type "enum" in options 2023-07-08 13:29:45 +02:00
Sébastien Helleu 66cb9f6ea2 core: add option type "enum" (closes #1973)
The type "enum" replaces type "integer" when used with string values.

For compatibility, any option created with type "integer" and string values is
automatically created to "enum" on creation, with no error.
2023-07-08 13:28:40 +02:00
Sébastien Helleu 8f9d88edd0 ci: add workaround for broken brew update 2023-07-06 22:24:15 +02:00
Sébastien Helleu f1e372b5e2 fset: remove extra spaces between min and max values when second format is used 2023-07-06 22:05:11 +02:00
Sébastien Helleu 7b6c9328be core: add quotes around key names in /help key 2023-07-05 21:23:47 +02:00
Nils Görs 4fa9ddc6b9 core: update German translations 2023-07-05 20:32:48 +02:00
Sébastien Helleu d7a6fcba5f buflist: increase max number of buflist items from 3 to 5 (closes #1703) 2023-07-04 22:03:05 +02:00
Sébastien Helleu f811621611 script: fix buffer used by command /script list -i|-il|-o|-ol
The command is now executed on the buffer where it is received instead of the
current buffer (in most cases this is the same buffer, but could be different
sometimes).
2023-07-04 21:57:41 +02:00
Sébastien Helleu 6c8d6eef58 script: fix cursor position after /script list -i or /script list -il 2023-07-04 21:56:52 +02:00
Sébastien Helleu 59cdade5f0 core: fix cursor position after /plugin list -i or /plugin list -il 2023-07-04 21:56:22 +02:00
Sébastien Helleu e5586e14d9 trigger: add options -o, -ol, -i and -il in command /trigger list (closes #1953) 2023-07-04 21:55:21 +02:00
Sébastien Helleu b43883a814 core: check that ptr_value is not NULL 2023-07-04 19:15:20 +02:00
Sébastien Helleu 20560f0a63 core: keep keys ctrl-H and ctrl-? (in lower case) if they were manually bound to custom commands in a previous version 2023-07-04 19:10:04 +02:00
Sébastien Helleu e36b066dc8 core: add key ctrl-backspace in /help key (issue #1975) 2023-07-04 18:45:11 +02:00
Sébastien Helleu b696e3d67f doc: fix anchor links in auto-generated files 2023-07-04 18:31:03 +02:00
Sébastien Helleu 7340fd1637 core: update ChangeLog 2023-07-03 23:02:58 +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
Nils Görs 7b5585239f core: update German translations 2023-07-01 12:20:57 +02:00
Sébastien Helleu 92e5696236 core: update stable version to 4.0.1 2023-07-01 11:44:55 +02:00
Sébastien Helleu a80f4c7681 tests: fix hdata tests failure on Alpine 3.18 2023-07-01 09:53:03 +02:00
Sébastien Helleu 930b42aecf tests/relay: fix crash in tests on Alpine 3.18 2023-07-01 09:43:56 +02:00
Sébastien Helleu c84274cd2b build: fix detection of PHP 8.2 on Alpine 3.18 2023-07-01 09:15:00 +02:00
Sébastien Helleu b13ed3b816 core: add version 4.0.1 in ChangeLog and release notes 2023-07-01 09:12:51 +02:00
Sébastien Helleu b52047c69e guile: fix crash on quit with Guile < 3 (issue #1965) 2023-06-27 21:45:15 +02:00
Trygve Aaberge b551d6f247 core: check for newline characters in string_is_whitespace_char
This fixes a bug where if you had multiple lines in the input and
pressed ctrl-w when the cursor was after the first word of any line but
the first, it would delete both the word before the cursor and the last
word on the preceding line.
2023-06-27 21:28:24 +02:00
Sébastien Helleu 4c9fd4a625 doc/faq: mention script go.py for an easy jump to buffers 2023-06-27 19:14:14 +02:00
Sébastien Helleu fc41ad336d api: do not convert option name to lower case in API functions config_set_plugin and config_set_desc_plugin 2023-06-27 12:58:34 +02:00
Sébastien Helleu 1d4509ddd8 irc: fix display of country code in message 344 received as whois geo info (issue #1736) 2023-06-26 22:12:31 +02:00
Sébastien Helleu b4da825f60 irc: sent "QUIT" message to servers connected with TLS on /upgrade 2023-06-26 22:06:46 +02:00
Sébastien Helleu ca35b67307 irc: display commands 716/717 in private buffer (if present) (closes #146)
Commands 716/717 are returned if the target user has mode +g, they look like
this:

:server 716 my_nick bob :is in +g mode and must manually allow you to message them. Your message was discarded.
:server 717 my_nick bob :has been informed that you messaged them.
2023-06-26 21:59:55 +02:00
Sébastien Helleu f62022e812 core: add variables "_chat_focused_line_bol" and "_chat_focused_line_eol" in focus data (closes #1955)
These variables are the same as "_chat_bol" and "_chat_eol" except that they
stop at the beginning of the focused line (not the whole message displayed, in
case message has multiple lines separated by "\n").
2023-06-26 21:55:48 +02:00
Sébastien Helleu 54dd19da92 api: add info "buffer" (closes #1962)
This info returns a pointer buffer with its full name.
2023-06-26 21:35:49 +02:00
Sébastien Helleu bc4294e297 core: fix level of section title in release notes 2023-06-26 21:22:28 +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 70c41f614a irc: reply to a CTCP request sent to self nick (closes #1966) 2023-06-25 22:11:34 +02:00
Sébastien Helleu e0c8f2867d core: add missing space in French translation 2023-06-25 22:10:15 +02:00
Sébastien Helleu 763b8ec050 core: force key "return" to command "/input return" when migrating legacy keys 2023-06-25 22:10:04 +02:00
Sébastien Helleu 9d0d8231e8 core: add option weechat.color.status_name_insecure in ChangeLog and release notes 2023-06-25 15:17:16 +02:00
Sébastien Helleu 11177a0967 core: fix format in Czech translation 2023-06-25 00:49:44 +02:00
Krzysztof Korościk c5a3bbc474 doc: updated polish translation 2023-06-24 22:45:35 +02:00
Sébastien Helleu 50bb175e7f Version 4.1.0-dev 2023-06-24 22:41:18 +02:00
Sébastien Helleu 1c449f3c2e Version 4.0.0 2023-06-24 22:00:30 +02:00
Sébastien Helleu 7c7a9484fb doc/user: fix typo in French translation 2023-06-23 12:01:56 +02:00
Nils Görs eacb807448 core: update German translations 2023-06-23 07:43:45 +02:00
Sébastien Helleu 001cf3376d core: update ChangeLog 2023-06-19 07:30:31 +02:00
Sébastien Helleu e1d1831fa8 core: ignore rest of config file if config version is invalid or not supported 2023-06-17 13:13:11 +02:00
Nils Görs 3e42d95f40 core: update German translations 2023-06-16 14:31:16 +02:00
Sébastien Helleu 1b78cd3bd2 exec: fix URL to plugin API reference in /help exec 2023-06-15 22:07:34 +02:00
Sébastien Helleu 9d7766ce3d doc/user: fix URL to plugin API reference 2023-06-15 22:04:45 +02:00
Sébastien Helleu 2d25cac44a relay: add IPv6 example in /help relay.network.bind_address 2023-06-15 22:04:16 +02:00
Sébastien Helleu 09b512337a core: replace Debian Bullseye by Bookworm in Debian build script 2023-06-12 21:26:21 +02:00
Sébastien Helleu 3af4ccff38 doc/user: update dependencies versions to Debian Bookworm 2023-06-12 21:26:00 +02:00
Sébastien Helleu 964d882c61 doc/user: fix description of key ctrl+q in search context 2023-06-12 18:38:21 +02:00
Nils Görs a9544af15c core: update German translations 2023-06-11 17:54:43 +02:00
Sébastien Helleu 8c73634e1b relay: fix crash on /upgrade when at least a client is connected with weechat protocol 2023-06-11 14:33:32 +02:00
Sébastien Helleu fc91ee59c9 core: add completions "filters_names_disabled" and "filters_names_enabled"
They are used in completion of commands `/filter disable` and
`/filter enable`.
2023-06-10 22:38:54 +02:00
Sébastien Helleu 1145d9f188 trigger: add completions "trigger_names_disabled" and "trigger_names_enabled"
They are used in completion of commands `/trigger disable` and
`/trigger enable`.
2023-06-10 20:30:52 +02:00
Sébastien Helleu 5de7152383 core: update instructions in cygport file 2023-06-10 18:16:24 +02:00
Sébastien Helleu 5d06ab76df exec: remove trailing "M" (carriage return) in output of commands
Regression was indirectly caused by commit
d18f68e497 in core that allows to display all
control chars in buffers.

But the fix is in exec plugin: end of line in command output can now be "\r\n"
in addition to a single "\n".
2023-06-10 09:51:04 +02:00
Sébastien Helleu 2eacbe6153 core: add new IRC capabilities in release notes 2023-06-07 18:23:42 +02:00
Sébastien Helleu 0b51c2d0be doc: increase sectnumlevels to 2 (user/scripting/quickstart/relay/dev) 2023-06-06 19:13:20 +02:00
Sébastien Helleu 4185e7b9f6 guile: fix crash when plugin is loaded on GNU/Hurd (closes #1951) 2023-06-05 21:09:27 +02:00
Sébastien Helleu 0d92c8703f debian: update changelog 2023-06-05 19:09:25 +02:00
Sébastien Helleu dccd1a348c doc: fix URLs to WeeChat docs 2023-06-05 19:08:12 +02:00
Sébastien Helleu ab9b8e0b01 tests: fix checks on integers in relay irc protocol tests 2023-06-05 19:04:05 +02:00
Sébastien Helleu 7f07782208 tests: add missing include of string.h in logger tests 2023-06-05 19:02:57 +02:00
Sébastien Helleu 7a754d93ab doc/relay: add option "escape_commands" in handshake response and examples 2023-06-05 19:01:46 +02:00
Sébastien Helleu 3a4f51b352 Version 4.0.0-rc1 2023-06-05 08:18:10 +02:00
Sébastien Helleu 48b35bdc63 logger: fix display of multiline messages in backlog (closes #1926) 2023-06-05 07:29:21 +02:00
Sébastien Helleu 4e705afdf6 tests: add tests on logger tail functions (issue #1926) 2023-06-05 07:29:10 +02:00
Sébastien Helleu 615069caef logger: return arraylist instead of custom linked list in logger_tail_file (issue #1926) 2023-06-05 07:29:01 +02:00
Nils Görs 5e35ead044 doc: update German documentation 2023-06-04 11:17:53 +02:00
Nils Görs 4712fabbb0 core: update German translations 2023-06-04 11:12:59 +02:00
Sébastien Helleu e04d8894a0 irc: add tag "new_host_xxx" in message displayed for command CHGHOST (closes #1808) 2023-06-04 09:45:47 +02:00
Sébastien Helleu 7f4c3a660a core: update ChangeLog (issue #1950) 2023-06-03 21:40:55 +02:00
Sébastien Helleu 31e2e7d45c doc/user: add new FIFO syntax (issue #1950) 2023-06-03 21:40:51 +02:00
Trygve Aaberge 43dee8ce54 fifo: allow using escape characters
This allows you to use escape characters if you start the fifo command
with \ instead of *, in the same way as the escape_commands option in
the relay protocol. This allows you to send commands consisting of
multiple lines by using \n if the buffer has input_multiline set.
2023-06-03 21:31:38 +02:00
Sébastien Helleu 682fc40708 irc: add option irc.look.display_host_notice 2023-06-03 21:15:58 +02:00
Sébastien Helleu 482fe6604c relay: add handshake option "escape_commands" in weechat protocol 2023-06-03 20:06:29 +02:00
Nils Görs 2660164118 core: update German translations 2023-06-03 19:36:58 +02:00
Sébastien Helleu 5e85bce2b7 core: specify irc protocol for relay changes 2023-06-03 17:28:15 +02:00
Sébastien Helleu dd4eb80e81 doc: fix formatting issues with links that target a blank window 2023-06-03 17:08:17 +02:00
Sébastien Helleu 498aa3256f relay: add support of capability "echo-message" (closes #1949) 2023-06-03 14:15:55 +02:00
Sébastien Helleu ac9dc3b9c8 irc: add infos "irc_server_cap" and "irc_server_cap_value" (issue #1949) 2023-06-03 14:15:49 +02:00
Sébastien Helleu 911c976f9b tests: add tests on relay "irc" protocol 2023-06-02 18:50:45 +02:00
Sébastien Helleu 5eb1a31552 irc: add missing "user" in documentation of functions 2023-06-02 18:50:45 +02:00
Sébastien Helleu 02a20507cb relay: fix connection with IRC clients sending "CAP REQ :" (without capability) and not sending "CAP END" (issue #1040, issue #1796)
The bug was fixed in version 2.0 (issue #1040) but a regression in version 3.7
happened while using the new IRC parser for message arguments (issue #1796,
commit 96ed471261).
2023-06-02 18:50:45 +02:00
Sébastien Helleu 3d8c55722c relay: add modifiers "relay_client_irc_in", "relay_client_irc_out1" and "relay_client_irc_out" 2023-06-02 18:50:45 +02:00
Trygve Aaberge 19a0cfe72d core: fix weechat.look.align_multiline_words not working
This option was broken with commit 031bd45e3.
2023-06-02 18:48:47 +02:00
Sébastien Helleu f7149dc7be tests: create and close server buffer in tests on function irc_join_split 2023-05-31 23:39:19 +02:00
Sébastien Helleu c0300ec0a4 tests: fix close of channel buffers after tests on function irc_join_split 2023-05-31 23:00:34 +02:00
Sébastien Helleu 310af25226 ruby: fix crash in display of exception backtrace with Ruby 3 (issue #1631, issue #1886) 2023-05-31 20:56:14 +02:00
Nils Görs 7f11d44e40 core: update German translations 2023-05-31 07:18:00 +02:00
Ivan Pešić 47bca29e3c doc: update Serbian documentation 2023-05-30 21:06:53 +02:00
Ivan Pešić 614f423498 core: update Serbian messages translation 2023-05-30 21:06:53 +02:00
Sébastien Helleu 71b85f1238 core: send all command line parameters not beginning with a dash to all plugins, add info "auto_load_scripts"
This fixes an issue with IRC URL given on command line when it starts with
`ircs://` or `irc6://`: the server is not created at all (only `irc://` works
fine).
2023-05-30 20:56:25 +02:00
Sébastien Helleu eda62e1218 fset: reset color immediately after the color name (issue #1920) 2023-05-30 07:39:11 +02:00
Sébastien Helleu f917d22655 core: update ChangeLog (issue #1920) 2023-05-30 07:37:18 +02:00
Nils Görs c96cc7a008 doc: update German documentation 2023-05-29 17:39:29 +02:00
Trygve Aaberge 6f3a67fdc1 core: set word_end_offset to character after word
It seemed strange to me to have word_end_offset point to the last
character in the word, rather than the character after the word,
especially now with the word stopping before a newline character which
meant word_end_offset would be -1 if there was no characters before the
newline character.
2023-05-29 17:10:25 +02:00
Trygve Aaberge 96f41ce4bf core: fix chat colors at certain positions not being applied
The new rendering of multiline lines had some issues with colors at
certain positions not being applied. The color would not be applied if
the color code was at either of these positions:

  - At the start of a line after a newline character
  - At the end of a line after a space and before a newline character
  - At a line by itself before a newline character

The way I had done it by considering newline characters as a word in
gui_chat_get_word_info with a variable specifying that it's newline
characters became messy and didn't really make sense, so rather than
doing this, I changed gui_chat_get_word_info to stop before the first
newline character. That way, we can just check if we are at a newline
character at the start of the loop, and don't need any more special
handling.

Fixes #1928
2023-05-29 17:10:25 +02:00
Sébastien Helleu f1a826a116 tests: add tests on manual CTCP ACTION sent to IRC channel 2023-05-29 11:13:49 +02:00
Sébastien Helleu a4c2d7f808 irc: fix display of CTCP ACTION sent without parameters nor space 2023-05-29 11:10:25 +02:00
Sébastien Helleu 3826d1150d irc: remove unneeded extra check on "\01ACTION " in irc_input_user_message_display 2023-05-29 11:04:50 +02:00
Sébastien Helleu 031bcf5ff2 irc: hide password in messages to nickserv with cap echo-message enabled (issue #139) 2023-05-29 09:49:41 +02:00
Sébastien Helleu ea38779c85 irc: add command /action (closes #201, issue #1577), remove alias action 2023-05-29 09:44:13 +02:00
Sébastien Helleu 193d290285 alias: add option missing in command /alias 2023-05-27 20:20:31 +02:00
Sébastien Helleu 50f5be70aa alias: add alias action to send a CTCP ACTION to a channel or a nick (issue #1577) 2023-05-27 20:07:37 +02:00
Sébastien Helleu 1651c48856 irc: add missing host tag in self messages with cap echo-message enabled (issue #139) 2023-05-27 16:49:08 +02:00
Sébastien Helleu 649b9d0ca6 irc: fix display of STATUSMSG CTCP ACTION to channel with cap echo-message enabled (issue #139, issue #1577) 2023-05-27 16:49:08 +02:00
Sébastien Helleu a41dff7acc irc: fix display of outgoing CTCP when channel/private buffer doesn't exist 2023-05-27 16:49:08 +02:00
Sébastien Helleu 3a0141174b irc: fix display of outgoing STATUSMSG CTCP ACTION without arguments 2023-05-27 16:49:08 +02:00
Sébastien Helleu dbcb8d3dbf irc: remove extra space in CTCP ACTION message sent without arguments
Now when doing `/me` (without arguments), the message sent is:

  PRIVMSG #test :\x01ACTION\x01

instead of:

  PRIVMSG #test :\x01ACTION \x01
2023-05-27 16:49:08 +02:00
Sébastien Helleu a2e73d64d6 irc: fix split of CTCP message with no arguments 2023-05-27 16:49:08 +02:00
Sébastien Helleu 0babf5db23 irc: display STATUSMSG actions differently from standard actions on channels (closes #1577, issue #139) 2023-05-27 16:48:56 +02:00
Sébastien Helleu 93d447ffc7 irc: fix send of empty action with /me command 2023-05-27 10:04:15 +02:00
Sébastien Helleu be0b082463 core: remove WeeChat website from SRC_URI in cygport file 2023-05-26 18:03:20 +02:00
Sébastien Helleu 80532862d5 core: update ChangeLog 2023-05-26 18:03:08 +02:00
Sébastien Helleu a6769e46f9 tests: add tests on IRC message/notice/action/CTCP sent with cap echo-message enabled (issue #139) 2023-05-26 18:02:50 +02:00
Sébastien Helleu b61cbefd30 tests: remove capabilities added after the end of tests 2023-05-26 18:02:01 +02:00
Sébastien Helleu 30b86e08fd tests: add tests on IRC message/notice/action/CTCP sent (issue #139) 2023-05-26 12:44:15 +02:00
Sébastien Helleu 10b803fd59 irc: add missing nick tag in self CTCP ACTION displayed (issue #139) 2023-05-26 12:36:01 +02:00
Sébastien Helleu 4c6f503cc7 irc: display CTCP ACTION to channel on the channel buffer (issue #139, closes #207) 2023-05-26 12:31:22 +02:00
Sébastien Helleu c1ee493073 doc/user: rewrite IRC smart filter chapter, add detail on all filtered messages 2023-05-26 08:53:20 +02:00
Sébastien Helleu e8f508a7cc doc/user: display 3 levels instead of 2 in TOC 2023-05-26 07:13:04 +02:00
Nils Görs afdd24591a core: update German translations 2023-05-25 22:58:59 +02:00
Sébastien Helleu 2654961e1c irc: display actions sent with /me in private buffer instead of server buffer (issue #139) 2023-05-25 22:43:54 +02:00
Sébastien Helleu e50be16730 irc: fix display of actions sent with /me (issue #139) 2023-05-25 22:34:03 +02:00
Sébastien Helleu d9789e522f irc: fix duplicated CTCP messages displayed when capability "echo-message" is enabled (issue #139) 2023-05-25 22:15:41 +02:00
Sébastien Helleu 809f59dfd1 irc: hide messages sent with /msg to a nick when capability "echo-message" is enabled (issue #139) 2023-05-25 19:25:01 +02:00
Sébastien Helleu 45fb1ae4ba irc: hide CTCP messages sent with /ctcp when capability "echo-message" is enabled (issue #139) 2023-05-25 19:22:40 +02:00
Sébastien Helleu 3a8525bb95 irc: hide self actions sent with /me when capability "echo-message" is enabled (issue #139) 2023-05-25 19:19:11 +02:00
Sébastien Helleu f9e358b76c tests: remove import of unused headers 2023-05-23 21:52:16 +02:00
Sébastien Helleu ad1ae12321 doc/user: move IRCv3 chapter outside "Servers" 2023-05-23 21:49:54 +02:00
Sébastien Helleu 64c3f3f0cd irc: add support of capability "echo-message" (closes #139) 2023-05-23 21:49:54 +02:00
Sébastien Helleu 8f5a3cb639 irc: fix display of status privmsg/notice, add missing tags in messages (issue #139)
The status PRIVMSG and NOTICE are now displayed the same way for outgoing and
received messages:

Msg(alice) -> @#test: message for ops
Notice(alice) -> @#test: notice for ops

And any message like this is displayed with these tags if the nick is self
nick (case of a bouncer or if capability "echo-message" is enabled):
"self_msg", "notify_none", "no_highlight".
2023-05-23 21:49:53 +02:00
Sébastien Helleu 8abde49ba2 irc: fix order of tags in outgoing messages
The order of tags in message doesn't matter, but this is for the sake of
consistency with the other messages displayed.
2023-05-23 21:49:53 +02:00
Sébastien Helleu 20bfe4c1ba irc: add missing tags "irc_cap" and "log3" in cap messages (client capability) 2023-05-23 21:49:53 +02:00
Sébastien Helleu 3cb5f25681 irc: add missing tag "log3" in notify messages 2023-05-23 21:49:53 +02:00
Sébastien Helleu f3e1da894b tests: check tags in messages displayed by IRC plugin 2023-05-23 21:49:53 +02:00
Sébastien Helleu eb7435f8b9 tests: separate prefix from message in recorded messages
The record functions are moved to tests-record.cpp.
2023-05-22 20:43:16 +02:00
Sébastien Helleu 126d3559ca script: remove trailing "J" (line feed char) in source of scripts displayed
Regression was indirectly caused by commit
d18f68e497 in core that allows to display all
control chars in buffers.

But the fix is in script plugin: when the script is downloaded and read line by
line, trailing "\r" and "\n" are removed, and therefore not displayed.
2023-05-22 20:40:45 +02:00
Sébastien Helleu c0b3f63985 core: add note about config files incompatibility in release notes 2023-05-21 09:01:10 +02:00
Sébastien Helleu 4f5dac4f85 irc: add batch files for translations 2023-05-20 17:10:59 +02:00
Sébastien Helleu c3c218035a logger: add option logger.file.log_conditions (closes #1942) 2023-05-20 17:08:34 +02:00
Sébastien Helleu 7461a5cb87 xfer: create buffer with function buffer_new_props (issue #1942)
With this function, buffer properties are set when the buffer is created and
can be read immediately by other plugins/scripts, for example in a callback of
signal "buffer_opened".
2023-05-20 17:08:33 +02:00
Sébastien Helleu db931b7806 trigger: create buffer with function buffer_new_props (issue #1942)
With this function, buffer properties are set when the buffer is created and
can be read immediately by other plugins/scripts, for example in a callback of
signal "buffer_opened".
2023-05-20 17:08:31 +02:00
Sébastien Helleu cbde92c44e script: create buffer with function buffer_new_props (issue #1942)
With this function, buffer properties are set when the buffer is created and
can be read immediately by other plugins/scripts, for example in a callback of
signal "buffer_opened".
2023-05-20 17:08:30 +02:00
Sébastien Helleu 00f4ae760d relay: create buffers with function buffer_new_props (issue #1942)
With this function, buffer properties are set when the buffer is created and
can be read immediately by other plugins/scripts, for example in a callback of
signal "buffer_opened".
2023-05-20 17:08:28 +02:00
Sébastien Helleu 1ad45598b5 fset: create buffer with function buffer_new_props (issue #1942)
With this function, buffer properties are set when the buffer is created and
can be read immediately by other plugins/scripts, for example in a callback of
signal "buffer_opened".
2023-05-20 17:08:27 +02:00
Sébastien Helleu b1759ab25a exec: create buffer with function buffer_new_props (issue #1942)
With this function, buffer properties are set when the buffer is created and
can be read immediately by other plugins/scripts, for example in a callback of
signal "buffer_opened".
2023-05-20 17:08:25 +02:00
Sébastien Helleu 3ca3ea32fd irc: create server/channel/raw buffers with function buffer_new_props (issue #1942)
With this function, buffer properties are set when the buffer is created and
can be read immediately by other plugins/scripts, for example in a callback of
signal "buffer_opened".
2023-05-20 17:08:20 +02:00
Sébastien Helleu f767db22a8 doc: reduce toc levels and numbering in sections (user/API/scripting/relay/dev) 2023-05-20 08:37:02 +02:00
Sébastien Helleu ecdcf239fe doc: move toc and section asciidoctor attributes from docs to CMakeLists.txt 2023-05-20 08:15:23 +02:00
Sébastien Helleu b9cc0cf839 core: update ChangeLog (closes #1260) 2023-05-18 13:52:46 +02:00
Simmo Saan 3c3bb933e9 irc: optimize and reuse irc_channel_rejoin 2023-05-18 13:51:14 +02:00
Simmo Saan 6edc88f7d6 irc: use key when /join-ing in open channel buffer 2023-05-18 13:46:43 +02:00
Sébastien Helleu de3ee174e4 core: update ChangeLog (closes #1140, closes #1190) 2023-05-18 11:52:43 +02:00
Sébastien Helleu 6c567c813e core: update translations 2023-05-18 11:51:25 +02:00
Sébastien Helleu a2b21df6ab alias: use dynamic string to replace alias arguments 2023-05-18 11:48:15 +02:00
Sébastien Helleu 338f7028ec tests: add tests on alias functions
Functions tested:

- alias_valid
- alias_search
- alias_string_add_word
- alias_string_add_word_range
- alias_string_add_arguments
- alias_replace_args
2023-05-18 11:10:54 +02:00
Sébastien Helleu a0894a794b alias: return empty string instead of NULL in function alias_replace_args 2023-05-18 11:08:37 +02:00
Sébastien Helleu 6095a0fe40 alias: return NULL if alias or user arguments are NULL in function alias_replace_args 2023-05-18 11:08:08 +02:00
Sébastien Helleu 8d838e89ee alias: add example in comment of function alias_replace_args 2023-05-18 11:07:46 +02:00
Sébastien Helleu e237f7488f alias: add "$&" in comment of function alias_replace_args 2023-05-18 11:07:12 +02:00
nobody 098bbb6927 alias: add auto-escaping special variable 2023-05-18 10:17:59 +02:00
Sébastien Helleu 100509866f relay: rename variable "ptr_option" to "ptr_path" 2023-05-18 09:53:57 +02:00
Sébastien Helleu caf166eb90 relay: make TLS certificate/key loading error handling more verbose (closes #1558) 2023-05-18 09:51:59 +02:00
Sébastien Helleu 9a0eda2433 core: fix refresh of bar item "input_search" after buffer switch in root bars (closes #1939) 2023-05-18 09:21:16 +02:00
Sébastien Helleu 1360489a05 core: add note in GitHub question issue template
The question must be first asked on the #weechat channel.
2023-05-18 09:04:55 +02:00
Sébastien Helleu 43553f7c28 core: update ChangeLog (closes #337, closes #965) 2023-05-17 21:43:43 +02:00
arza 99b84a76ad irc: start from the beginning of nicks at automatic reconnection (closes #337) 2023-05-17 21:42:00 +02:00
Sébastien Helleu 6ae04c4947 core: update ChangeLog (closes #1688) 2023-05-17 21:07:24 +02:00
Sébastien Helleu fbf68dcc14 irc: get value of "msg_max_length" from isupport token "LINELEN" on upgrade from WeeChat < 4.0.0 (issue #1927) 2023-05-17 21:03:44 +02:00
Sébastien Helleu 359ec5d2db irc: add field "utf8only" in IRC server structure 2023-05-17 20:49:27 +02:00
Valentin Lorentz 980b075ce9 irc: Implement the UTF8ONLY IRCv3 specification
https://ircv3.net/specs/extensions/utf8-only
2023-05-17 16:37:19 +02:00
Sébastien Helleu d0f1859ef5 core: add variable CTEST_OUTPUT_ON_FAILURE in release script 2023-05-17 07:17:26 +02:00
Sébastien Helleu 6d32a99d50 trigger: make default triggers compatible with multiline input (closes #1935)
Changed triggers:

- cmd_pass
- cmd_pass_register
- server_pass
2023-05-16 21:34:30 +02:00
Sébastien Helleu 1f21cdc0bd irc: update secure data when server autojoin option contains ${sec.data.xxx} and option autojoin_dynamic is enabled (closes #1934) 2023-05-16 21:03:22 +02:00
Sébastien Helleu e11ce668a2 doc/api: add note about hashtable removal in function info_get_hashtable 2023-05-16 20:15:20 +02:00
Sébastien Helleu 91bcfbb4e8 core: move creation of info_hashtable "secured_data" in plugin-api-info.c 2023-05-16 20:00:48 +02:00
Sébastien Helleu 17f3687e28 core: fix partial completion when the common prefix found is empty (closes #340) 2023-05-16 19:45:12 +02:00
Sébastien Helleu 357323b8fc typing: remove nicks typing even when option typing.look.enabled_self is off (closes #1718) 2023-05-16 13:29:09 +02:00
Sébastien Helleu cfc85b7fea typing: fix type and name of variable for key in hashtable typing_status_nicks 2023-05-16 13:23:07 +02:00
Sébastien Helleu 2a3d98c996 irc: display command 437 on server buffer when nickname cannot change while banned on channel (closes #88) 2023-05-16 13:15:45 +02:00
Sébastien Helleu 8d35e67dd6 irc: add modifier "irc_cap_sync_req" (closes #1767) 2023-05-15 20:10:28 +02:00
Sébastien Helleu d857c91a59 irc: add comments in "cap" callback 2023-05-15 20:02:45 +02:00
Sébastien Helleu 518c0e3ae3 irc: remove unused variable 2023-05-15 08:10:58 +02:00
Sébastien Helleu 20b7f406f8 irc: fix use of uninitialized variable 2023-05-15 08:10:03 +02:00
Sébastien Helleu e589f3471b doc/user: update note about chars replaced in IRC tags (trigger) 2023-05-15 08:08:42 +02:00
Sébastien Helleu 2c22626106 trigger: use new format for IRC tags in messages 2023-05-15 07:57:16 +02:00
Sébastien Helleu bd4507e99d irc: fix format of IRC tags displayed in messages (closes #1929)
Changes:

- use "=" to separate key from value, add it only if value is set (any string,
  including empty string)
- do not convert "_" to "-" in key
2023-05-14 21:25:20 +02:00
Sébastien Helleu 46b9428f9e tests: reverse arguments in calls to STRCMP_EQUAL 2023-05-14 18:52:23 +02:00
Nils Görs 78ebe63105 core: update German translations 2023-05-14 15:50:41 +02:00
Sébastien Helleu 1aded6eaf4 core: update translations (issue #1923) 2023-05-14 15:33:37 +02:00
Sébastien Helleu a6b8c95519 irc: do not display multiline message if capability "draft/multiline" is not enabled (issue #1923) 2023-05-14 15:33:37 +02:00
Sébastien Helleu 060cb48094 irc: ignore BATCH commands when capability "batch" is not enabled (issue #1292) 2023-05-14 15:33:30 +02:00
Sébastien Helleu 283c9d7ccf irc: do not allow send of empty messages (single line or multiline) 2023-05-14 15:32:47 +02:00
Sébastien Helleu ac83130dd7 irc: add test of privmsg message parsing with empty text 2023-05-14 15:32:47 +02:00
Sébastien Helleu c31af39ada irc: set "input_multiline" to 1 in buffers only if capability draft/multiline is enabled (issue #1923) 2023-05-14 15:32:43 +02:00
Sébastien Helleu 537d18ede5 core: allow to reset buffer property "input_multiline" to 0 even if there are lines in buffer (issue #1923) 2023-05-14 15:32:39 +02:00
Sébastien Helleu 128fbe0d5b irc: add support of "LINELEN" in message 005 (max message length in bytes) (closes #1927) 2023-05-14 15:32:39 +02:00
Sébastien Helleu 1116474c45 irc: reset all internal servers variables when disconnecting 2023-05-14 15:32:39 +02:00
Sébastien Helleu 176a106771 irc: add support of capability "draft/multiline" (closes #1923) 2023-05-14 15:32:39 +02:00
Sébastien Helleu e8b5d73421 irc: return arraylist instead of hashtable in function irc_server_sendf (issue #1923) 2023-05-14 15:32:35 +02:00
Sébastien Helleu 2154b440d2 irc: don't split messages on "\n" in function irc_server_sendf (issue #1923)
The function now allows only a single message. Newline chars ("\n") are allowed
in messages but not used as message separator.

This is a preparation work for the support of capability "draft/multiline".
2023-05-14 15:32:26 +02:00
Sébastien Helleu 2c39906816 irc: rename constant IRC_COMMAND_CAP_SUPPORTED_COMPLETION to IRC_COMMAND_CAP_SUPPORTED 2023-05-13 19:45:10 +02:00
Sébastien Helleu c0f574d036 doc: group all CMake files into a single one to build all docs (all languages) 2023-05-13 19:44:14 +02:00
Sébastien Helleu 6415c09a07 core: add quotes around paths in CMake files (closes #29) 2023-05-13 11:59:18 +02:00
Sébastien Helleu adbfd27660 core: fix completion after newline in input (closes #1925) 2023-05-12 17:53:02 +02:00
Sébastien Helleu 6d7f10ef20 core: fix execution of multiple commands separated by newline when there are no spaces
For example typing this on core buffer:

/t1
/t2

was not executing the two commands but sent the text to the buffer instead.

This is because WeeChat thinks it's a path, and the newline should indicate
it's not (like a space before the next slash: "/t1 /t2" is a command, not a
path, but "/t1/t2" is considered a path).
2023-05-05 20:28:11 +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 bbbe83370f doc/user: add missing French translation for cursor key l 2023-05-04 07:09:12 +02:00
Sébastien Helleu c73191ab05 doc/scripting: add missing French translation for Tcl null values 2023-05-04 07:06:29 +02:00
Nils Görs 7aaa617643 core: update German translations 2023-05-03 22:58:22 +02:00
Sébastien Helleu f6b69c9098 irc: add support of capability "batch" (closes #1292) 2023-05-03 22:11:31 +02:00
Ivan Pešić bd5e8dc33b doc: Update Serbian documentation 2023-05-03 20:29:27 +02:00
Ivan Pešić e6bddcafee core: Update Serbian translation 2023-05-03 20:29:27 +02:00
Nils Görs 629afd3301 core: update German translations 2023-05-01 22:02:02 +02:00
Sébastien Helleu 21f972b0a5 trigger: add translation for first line of displayed triggers 2023-05-01 21:44:37 +02:00
Sébastien Helleu e75009a461 core: add enabled/disabled status color in output of /filter list (closes #1820) 2023-05-01 20:23:48 +02:00
Sébastien Helleu 385b1d0133 core: remove options trigger.color.trigger and trigger.color.trigger_disabled (issue #1820)
These options are used instead:

- weechat.color.chat_status_disabled
- weechat.color.chat_status_enabled
2023-05-01 20:16:59 +02:00
Sébastien Helleu b8f9b83500 core: add options weechat.color.chat_status_disabled and weechat.color.chat_status_enabled (issue #1820) 2023-05-01 20:12:56 +02:00
Sébastien Helleu 5c245af669 core: move line from "New features" to "Build" 2023-05-01 19:14:33 +02:00
Nils Görs 87b7d03cce core: update German translations 2023-05-01 18:11:02 +02:00
Sébastien Helleu ed2ab8a6d0 irc: fix help on sort option in command /autojoin (issue #1876) 2023-05-01 17:49:46 +02:00
Sébastien Helleu 000d550ff8 core: keep only first message line in modifier "weechat_print" when input_multiline is not set in buffer 2023-05-01 17:36:17 +02:00
Nils Görs d8d00926ff core: update German translations 2023-05-01 17:33:18 +02:00
Sébastien Helleu b127bed0fc irc: add option buffer in command /autojoin sort (closes #1876) 2023-05-01 17:02:51 +02:00
Sébastien Helleu 66d79e2d23 core: keep only first message line in hook line when input_multiline is not set in buffer 2023-05-01 14:53:59 +02:00
Nils Görs 9f2e5a98ea core: update German translations 2023-04-28 08:20:13 +02:00
Sébastien Helleu f90d8667a4 irc: add ${username} in server options "nicks" and "username", change their default values to use it 2023-04-27 22:59:24 +02:00
Sébastien Helleu 8822843254 core: add missing French translation 2023-04-27 22:43:10 +02:00
Sébastien Helleu bc5baf1f05 fset: change default value of option fset.color.value_selected from 80 to 159 (issue #1920) 2023-04-27 22:36:38 +02:00
Nils Görs 3ba2934dfa core: update German translations 2023-04-27 10:10:46 +02:00
Nils Görs a025518509 core: update German translations 2023-04-27 08:45:03 +02:00
Sébastien Helleu 2e42da35f9 core: update ChangeLog (issue #1920) 2023-04-26 21:13:07 +02:00
Sébastien Helleu 4f3524dbac core: update translations (issue #1920) 2023-04-26 21:12:56 +02:00
Sébastien Helleu d35218e991 irc: change default colors (issue #1920)
Default values changed:

- irc.color.reason_quit: default -> 244
- irc.color.topic_new: white -> 36
- irc.color.topic_old: default -> 244
2023-04-26 21:08:16 +02:00
Sébastien Helleu c12b7ffd3e core: enable option weechat.look.color_inactive_time by default (issue #1920) 2023-04-26 21:08:13 +02:00
Sébastien Helleu 156bdc6444 core: change default chat colors (issue #1920)
Default values changed:

- weechat.color.chat_delimiters: green -> 22
- weechat.color.chat_highlight_bg: magenta -> 124
- weechat.color.chat_inactive_window: default -> 240
- weechat.color.chat_nick_colors: add many colors
- weechat.color.chat_nick_offline: default -> 242
- weechat.color.chat_nick_offline_highlight_bg: blue -> 17
- weechat.color.chat_prefix_buffer: brown -> 180
- weechat.color.emphasized_bg: magenta -> 54
- weechat.color.nicklist_away: cyan -> 240
2023-04-26 21:08:12 +02:00
Sébastien Helleu 855f75369d logger: change default colors (issue #1920)
Default values changed:

- logger.color.backlog_end: default -> 246
- logger.color.backlog_line: default -> 246
2023-04-26 21:08:11 +02:00
Sébastien Helleu 3f2a377e7a script: change default colors (issue #1920)
Default values changed:

- script.color.status_autoloaded: cyan -> 39
- script.color.text_bg_selected: red -> 24
- script.color.text_date: default -> 65
- script.color.text_date_selected: white -> 50
- script.color.text_delimiters: default -> 240
- script.color.text_description: default -> 249
- script.color.text_extension: default -> 242
- script.color.text_extension_selected: white -> 248
- script.color.text_name: cyan -> 73
- script.color.text_name_selected: lightcyan -> 51
- script.color.text_version: magenta -> 180
- script.color.text_version_loaded: default -> 246
- script.color.text_version_selected: lightmagenta -> 224
2023-04-26 21:08:09 +02:00
Sébastien Helleu 8c9e90524b fset: enable option fset.look.use_color_value by default (issue #1920) 2023-04-26 21:08:07 +02:00
Sébastien Helleu 6f1a66924f fset: add options fset.color.color_name and fset.color.color_name_selected (issue #1920) 2023-04-26 21:08:06 +02:00
Sébastien Helleu c4c4ae3715 fset: change default colors (issue #1920)
Default values changed:

- fset.color.description: default -> 242
- fset.color.description_selected: white -> default
- fset.color.line_marked_bg1: default -> 17
- fset.color.line_marked_bg2: default -> 17
- fset.color.line_selected_bg1: blue -> 24
- fset.color.line_selected_bg2: red -> 24
- fset.color.name_changed: brown -> 185
- fset.color.type: green -> 138
- fset.color.type_selected: lightgreen -> 216
- fset.color.value: cyan -> 38
- fset.color.value_changed: brown -> 185
- fset.color.value_selected: lightcyan -> 80
- fset.format.option2: ${color:darkgray} -> ${color:244}
2023-04-26 21:08:04 +02:00
Sébastien Helleu 5973ceffb8 core: change default prefix_suffix char and color (issue #1920)
Default values changed:

- weechat.look.prefix_suffix: "|" -> "│"
- weechat.color.chat_prefix_suffix: green -> 24
2023-04-26 21:08:02 +02:00
Sébastien Helleu 875d6e7e6f buflist: change default background color of current buffer (issue #1920)
Default value changed:

- buflist.format.buffer_current: "${color:,blue}${format_buffer}" ->
  "${color:,17}${format_buffer}"
2023-04-26 21:08:00 +02:00
Sébastien Helleu cd1d80c1cb core: change default color of bars and windows separators (issue #1920)
Default value changed:

- weechat.color.separator: blue -> 236
2023-04-26 21:07:56 +02:00
Sébastien Helleu 6d6c99f2ac core: change default background color of status and title bars (issue #1920)
Default values changed:

- weechat.bar.status.color_bg: blue -> 234
- weechat.bar.status.color_bg_inactive: darkgray -> 232
- weechat.bar.title.color_bg: blue -> 234
- weechat.bar.title.color_bg_inactive: darkgray -> 232
2023-04-26 21:07:50 +02:00
Sébastien Helleu 6f0440e459 core: add option weechat.color.status_name_insecure (issue #1920)
Default value of option weechat.color.status_name_tls is set to white instead
of lightgreen.

Now all servers/channels connected with TLS are white, and those without TLS
are lightmagenta.
2023-04-26 21:07:37 +02:00
Sébastien Helleu e8c48c0a1f core: always allow 256 colors, find nearest color if less colors are available in terminal (issue #1920) 2023-04-26 21:07:26 +02:00
Sébastien Helleu ff402fb6ec core: fix infinite loop on startup when running some gui commands before the switch to core buffer is performed (closes #1917) 2023-04-26 19:11:54 +02:00
Nils Görs 5481af963c doc: update German documentation 2023-04-26 11:49:47 +02:00
Nils Görs 6edf0ef003 core: update German translations 2023-04-26 11:46:54 +02:00
Trygve Aaberge 8d430aa2eb core: fix display bug when drawing partially scrolled multiline
If you have a chat line with multiple lines that were scrolled so that
part of it is rendered at the bottom of the chat area, and part of it
falls below the chat area, there was a bug where the prefix_suffix would
be displayed at the end of the last line.

Looks like this happens because the gui_chat_display_prefix_suffix is
called for the line below the last line displayed in the chat area. So
we have to add a check for this so we don't add the prefix_suffix. This
check is copied from gui_chat_display_word which checks for the same.

Fixes #1912
2023-04-26 00:47:02 +02:00
Sébastien Helleu df6dfcea11 core: move line from "New features" to "Bug fixes" (issue #1882) 2023-04-26 00:10:37 +02:00
Sébastien Helleu a22d6a1bf6 core: update ChangeLog 2023-04-26 00:09:53 +02:00
Andrew Potter 71382b6c0f ruby: Restore default SIGCHLD signal handler on unload
fixes #1889
2023-04-26 00:07:54 +02:00
Sébastien Helleu ac25043b27 core: add option split_return in command /input (closes #1916) 2023-04-25 22:10:48 +02:00
Sébastien Helleu 0debd47d3e core: update ChangeLog 2023-04-25 19:07:14 +02:00
Sébastien Helleu ea734b5924 doc/api: add variable "_chat_focused_line" in function hook_focus 2023-04-25 19:05:05 +02:00
Trygve Aaberge e51ffc1a6e core: add cursor key l to quote focused line
Fixes #1913
2023-04-25 00:11:30 +02:00
Trygve Aaberge a401fbf217 core: add _chat_focused_line variable to get the focused line
This contains the single line that you focused on, like _chat_word
contains the word that you focused on. This will be equal to
_chat_line_message if the chat line only contains a single line, but if
the chat line has multiple lines, _chat_line_message will contain all of
them, but _chat_focused_line will only contain the single line that was
focused.

Fixes part of #1913
2023-04-25 00:11:26 +02:00
Sébastien Helleu e00ec6710d irc: add message 742 (mode cannot be set) 2023-04-24 21:44:34 +02:00
Sébastien Helleu 28bb33aa5a irc: add message 415 (cannot send message to channel) 2023-04-24 21:43:57 +02:00
Sébastien Helleu 9f5e8efbe0 core: fix update of terminal title in some terminals like suckless terminal (stterm) (closes #1882) 2023-04-23 22:02:33 +02:00
Emir SARI 2d93f9d703 core: update Turkish translations (issue #1868) 2023-04-23 16:53:28 +02:00
Sébastien Helleu 3d79e2c9d2 Revert "core: remove deprecated parameters from command /input"
This reverts commit 2b7f745369.

Parameters removed are still used in scripts, and it's OK to keep them for a
while.
2023-04-23 09:53:50 +02:00
Nils Görs da49adebc3 core: update German translations 2023-04-22 09:35:19 +02:00
Sébastien Helleu 3a9ac529d5 buflist: update example in /help buflist.look.sort 2023-04-22 08:06:33 +02:00
Sébastien Helleu 731c2d66bc buflist: add example to sort on hotlist activity in /help buflist.look.sort 2023-04-21 21:15:45 +02:00
Sébastien Helleu 2c82a1a35f core: update ChangeLog 2023-04-20 22:39:02 +02:00
Sébastien Helleu 078da85f5e core: keep only first message line in hdata update of line_data when input_multiline is not set in buffer 2023-04-20 22:36:18 +02:00
Sébastien Helleu 5193c0aeea core: do now allow buffer property "input_multiline" to be reset to 0, except if buffer has no lines 2023-04-20 22:36:18 +02:00
Trygve Aaberge e5573bfb4d core: still split on printf when input_multiline isn't set
If we have chat lines with multiple lines in buffers without
input_multiline set, there can be an issue if a trigger is run on that
line. If the trigger runs a command which includes the message, then the
command is split (since input_multiline isn't set), and if any of the
lines in the message starts with a command, that command is executed.

To prevent this, only avoid splitting on newlines in printf if
input_multiline is set, so only such buffers can have chat lines with
newline characters.

See https://github.com/weechat/weechat/pull/1909 for more details.
2023-04-19 16:47:44 +02:00
Trygve Aaberge 07fa6b12a6 core: don't split on newline characters in printf_date_tags
With support for rendering newline characters as new lines, we don't
need to split the message on newline characters anymore in
printf_date_tags. This allows you to print a line with multiple lines.
2023-04-19 16:47:44 +02:00
Trygve Aaberge 031bd45e36 core: render newline characters in chat line messages
If a chat line message contains a newline character (\n) it was
previously rendered as J with reverse video. This commit makes it
render as an actual newline instead, so messages with multiple lines
become supported.

The rendering is fixed in normal mode as well as bare mode both when
scrolled to the bottom and when scrolled up (which is different code
paths). Focus events has also been updated to support this (except for
_chat_line_y which returns -1 for all lines, but the docs says this
variable is only for buffers with free content).

Currently, the only way to include a \n in a chat line message is with
hdata_update because printf splits on \n and creates multiple separate
lines, but hopefully either printf can be changed to not split on \n, or
a new command which doesn't split can be added.
2023-04-19 16:47:44 +02:00
Sébastien Helleu 2b7f745369 core: remove deprecated parameters from command /input
Parameters removed:

- jump_smart
- jump_last_buffer
- jump_last_buffer_displayed
- jump_previously_visited_buffer
- jump_next_visited_buffer
- hotlist_clear
- hotlist_remove_buffer
- hotlist_restore_buffer
- hotlist_restore_all
- set_unread_current_buffer
- set_unread
- switch_active_buffer
- switch_active_buffer_previous
- zoom_merged_buffer
2023-04-19 16:44:42 +02:00
Sébastien Helleu 19baa79d64 core: convert deprecated commands bound to keys when upgrading weechat.conf to v2 2023-04-19 16:35:39 +02:00
Sébastien Helleu 389e719302 core: bump guile version to 3.0 in cygwin 2023-04-18 22:45:35 +02:00
Sébastien Helleu ee7cd3de5c doc/user: update links to release notes 2023-04-17 22:31:26 +02:00
Sébastien Helleu b5e81f931b doc: update header and remove links in ChangeLog and release notes 2023-04-16 22:05:45 +02:00
Sébastien Helleu 2eaaa19beb core: simplify print of stable/devel version number in version.sh 2023-04-15 23:52:29 +02:00
Sébastien Helleu 1eb8e21d4b core: hide error when git tag does not exist 2023-04-15 16:59:48 +02:00
Sébastien Helleu 412b9de263 core: add missing space before trailing backslash 2023-04-15 12:16:18 +02:00
Sébastien Helleu c8780d2d7a core: fix description of script bump_version.sh 2023-04-15 11:58:20 +02:00
Sébastien Helleu a5f5008c77 core: add missing quotes around variables 2023-04-15 11:46:45 +02:00
Sébastien Helleu bbc5c4948a core: update ChangeLog 2023-04-15 11:15:02 +02:00
Sébastien Helleu c391a49cc1 core: add quote around stable/devel versions 2023-04-15 11:12:56 +02:00
Sébastien Helleu 4090680ef7 core: add "stable-number" and "devel-number" in version.sh
This is the same value returned by the info "version_number" in a running
WeeChat.
2023-04-15 11:10:19 +02:00
Sébastien Helleu 72477b49d7 api: add optional argument with version in info "version_number" 2023-04-15 11:09:59 +02:00
Sébastien Helleu 15d5fce00a doc/api: add more examples on function util_version_number 2023-04-15 11:00:00 +02:00
Sébastien Helleu 49ff42bef5 core: remove unnecessary condition in comparison of timeval structures
Ref: https://github.com/weechat/weechat-relay/pull/3
2023-04-14 13:06:18 +02:00
Sébastien Helleu 70bf3f8671 core: replace "SSL" by "TLS" in /help upgrade (issue #1903) 2023-04-13 20:11:03 +02:00
Nils Görs 2085c470e6 core: update German translations 2023-04-13 11:02:09 +02:00
Sébastien Helleu aa1d2a709d core: update translations (issue #1903) 2023-04-12 17:17:52 +02:00
Sébastien Helleu fe1ab06924 irc: improve short description of server (issue #1903) 2023-04-12 17:17:49 +02:00
Sébastien Helleu 6e17d39adf irc: fix URL of doc on capability negotiation (issue #1903) 2023-04-12 17:17:46 +02:00
Sébastien Helleu e516a0714f irc: add support of RFC 7194 (default port 6697 for TLS) (issue #1903) 2023-04-12 17:17:43 +02:00
Sébastien Helleu 55a853eb76 core: add TLS changes in release notes (issue #1903) 2023-04-12 17:17:41 +02:00
Sébastien Helleu 95b30f8da5 irc: connect with TLS and port 6697 by default (issue #1903) 2023-04-12 17:17:38 +02:00
Sébastien Helleu 8eb096b3ef relay: rename "ssl" options and protocol to "tls" (issue #1903) 2023-04-12 17:17:34 +02:00
Sébastien Helleu dec237b104 irc: rename "ssl" options to "tls" (issue #1903) 2023-04-12 17:17:30 +02:00
Sébastien Helleu 23b870ec1d core: rename option weechat.color.status_name_ssl to weechat.color.status_name_tls (issue #1903) 2023-04-12 17:17:26 +02:00
Sébastien Helleu ff2f94c12b core: replace SSL by TLS in comments (issue #1903) 2023-04-12 17:17:23 +02:00
Sébastien Helleu 9ccdc5aff6 irc: check that IRC URL starts with "irc" (issue #1903) 2023-04-12 17:17:20 +02:00
Sébastien Helleu 62171c5974 irc: add more info in description of function irc_server_alloc_with_url (issue #1903) 2023-04-12 17:17:13 +02:00
Sébastien Helleu e5c1945931 irc: set gnutls_sess, tls_cert and tls_cert_key to NULL by default in server (issue #1903) 2023-04-12 17:17:00 +02:00
Nils Görs 00c847ee56 core: update German translations 2023-04-12 10:03:24 +02:00
Sébastien Helleu d58d4dd8fa core: improve description of arguments in bump version script 2023-04-08 11:13:28 +02:00
Sébastien Helleu 49df360652 core: remove WEECHAT_DEVEL_FULL from version.sh 2023-04-08 11:08:33 +02:00
Sébastien Helleu 5f7ead023f core: add way to read stable major/minor/patch version 2023-04-08 09:18:39 +02:00
Sébastien Helleu 7ced1821db core: add contributor (issue #1904) 2023-04-08 08:21:31 +02:00
Sébastien Helleu 6be7960e1c core: update ChangeLog (issue #1904, issue #1905) 2023-04-08 08:19:50 +02:00
wfrsk cd740fc18b lua: fix crash with print when the value to print is not a string 2023-04-08 08:16:02 +02:00
Sébastien Helleu 127c8e0eb6 core: change default color of "mouse_status" item to lightgreen 2023-04-07 18:56:35 +02:00
Sébastien Helleu ce1adf0fd7 core: add item "mouse_status" in default status bar 2023-04-07 18:54:51 +02:00
Sébastien Helleu 6247598d3f core: fix comment in bump version script 2023-04-07 08:10:10 +02:00
Grady Martin f4c8b9e29f Update Japanese translations
This fixes a small typo.
2023-04-07 08:03:37 +02:00
Sébastien Helleu 41c1cc6e0b doc: add BYPRODUCTS in doc-autogen target
This is needed for Ninja and the "clean" target now removes all auto-generated
files.
2023-04-05 23:29:17 +02:00
Sébastien Helleu f1e7f861e9 core: fix pointer to hash and hash_temp in doc generator 2023-04-05 22:44:11 +02:00
Sébastien Helleu 0b20cb449a tests: add tests on function irc_server_alloc_with_url 2023-04-05 21:17:03 +02:00
Sébastien Helleu 5c801f2741 irc: display a warning if command name in option irc.msgbuffer.* is not lower case 2023-04-05 21:04:54 +02:00
Sébastien Helleu 87216279ca irc: display a warning if CTCP name in option irc.ctcp.* is not lower case 2023-04-05 20:56:48 +02:00
Sébastien Helleu b6a59be317 irc: search options irc.ctcp.* with lower case ctcp string 2023-04-05 20:47:20 +02:00
Sébastien Helleu e75c61d7aa doc/user: remove Javascript from plugins compiled with CMake option ENABLE_SCRIPTS
The Javascript plugin is not built by default any more since v2.9 and must be
explicitly enabled with `-DENABLE_JAVASCRIPT=ON`.
2023-04-03 21:09:05 +02:00
Sébastien Helleu 924c543430 core: ensure tag/commit are not done upon startup, do not undo tag/commit in case of error 2023-04-03 20:06:46 +02:00
Sébastien Helleu 1c3b871204 irc: don't switch to buffer of joined channel if it was not manually joined nor present in server autojoin option 2023-04-03 20:00:32 +02:00
Sébastien Helleu b8f40cfa99 core: add script release.sh 2023-04-02 17:51:33 +02:00
Sébastien Helleu 058c9f8b84 core: add script bump_version.sh 2023-04-02 14:01:21 +02:00
Sébastien Helleu ff85d00e7f irc: update autojoin option with redirected channels when autojoin_dynamic is enabled (closes #1898) 2023-04-02 13:49:25 +02:00
Nils Görs e15bd25f37 core: update German translations 2023-04-01 22:44:33 +02:00
Sébastien Helleu 4aabe8681f core, plugins: set options to NULL by default, refactor config init functions 2023-04-01 20:56:11 +02:00
Sébastien Helleu 3e9524ee65 alias: rename all aliases to lower case on upgrade (issue #1872) 2023-04-01 16:47:23 +02:00
Nils Görs e23100c09b core: update German translations 2023-03-31 23:19:34 +02:00
Sébastien Helleu f330ff865c ci: enable build of incomplete docs on macOS 2023-03-31 21:16:22 +02:00
Sébastien Helleu 6665cc866a doc: add CMake option ENABLE_DOC_INCOMPLETE to force build of incomplete docs (closes #1901) 2023-03-31 21:08:56 +02:00
Sébastien Helleu 10b2fa3a61 irc: fix target buffer for commands 432/433 when the nickname looks like a channel 2023-03-31 19:54:26 +02:00
Sébastien Helleu 7558fe7c1b build: add condition to enable gcc/g++ specific options
This fixes warnings with clang.
2023-03-31 19:09:12 +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 0cf723ec1a doc/faq: replace key meta2- by meta-[ 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
Nils Görs 867536f8ce core: update German translations 2023-03-31 11:29:48 +02:00
Sébastien Helleu 7e7b015aa1 core: update translations 2023-03-30 22:12:44 +02:00
Sébastien Helleu 672945a359 logger: add info "logger_log_file" 2023-03-30 22:04:33 +02:00
Sébastien Helleu 6a2ecc90b3 spell: check buffer pointer received in info "spell_dict" 2023-03-30 22:02:12 +02:00
Sébastien Helleu 35067512e9 core: update translations 2023-03-30 21:58:46 +02:00
Sébastien Helleu 7c6d490a4e doc: update Ubuntu Bionic Debian patch to remove asciidoctor option
The option "--failure-level" has been added in Asciidoctor 1.5.7 and the
version in Ubuntu Bionic is 1.5.5.
2023-03-30 07:42:12 +02:00
Sébastien Helleu a62f2dac58 ci: disable build of doc when NLS is disabled 2023-03-30 01:34:55 +02:00
Sébastien Helleu c243e4add9 ci: disable build of doc on macOS
Since the PHP plugin is not built, the doc can not be built any more (all
plugins must be compiled to generate autogen files).
2023-03-30 01:34:55 +02:00
Sébastien Helleu d24f6295d4 doc: remove unnecessary empty lines in autogen files 2023-03-30 01:34:55 +02:00
Sébastien Helleu 3eeef346b1 doc: update autogen files only if changed, add autogen dependencies on docs 2023-03-30 01:34:55 +02:00
Sébastien Helleu 6dbfb638c6 doc: convert docgen.py to C, remove autogen files from repository, add parameter --doc-gen
Changes:

- build of doc now requires weechat-headless, translations and all plugins
- convert docgen.py to C
- remove `autogen_*` files from repository
- add command line parameter `--doc-gen` in `weechat-headless` to build
  autogen files
- build .mo files with directories like the installed ones
  (eg: "<lang>/LC_MESSAGES/weechat.mo")
- remove javascript chapter from user's guide
2023-03-30 01:34:55 +02:00
Sébastien Helleu 4548b25b78 doc: make asciidoctor fail on any warning 2023-03-29 20:48:18 +02:00
Sébastien Helleu 974ac9ad5f core: add separate function to get translated help for values of color options 2023-03-28 22:32:54 +02:00
Sébastien Helleu 7c5d484f59 core: check that infolist is not NULL in next/prev/reset_item_cursor functions 2023-03-28 22:07:11 +02:00
Sébastien Helleu 742871fd3e doc: sort commands by plugins in auto-generated files 2023-03-27 22:31:02 +02:00
Sébastien Helleu e816381777 core: remove extra separator in Serbian translation 2023-03-27 22:18:01 +02:00
Sébastien Helleu 77a30e09cb core: add missing space in Polish translation 2023-03-27 22:05:28 +02:00
Sébastien Helleu 4b5987e37c doc: update German auto-generated files 2023-03-27 14:23:11 +02:00
Nils Görs debf79118f core: update German translations 2023-03-27 13:06:12 +02:00
Sébastien Helleu b894166d1b core: update ChangeLog (issue #1504) 2023-03-26 21:08:56 +02:00
Sébastien Helleu 181cd4f276 core: update translations (issue #1504) 2023-03-26 21:07:17 +02:00
Trygve Aaberge c63321bb7a core: Add an option to start multiline input text on a new line
This does the same as the lead_linebreak option in multiline.pl. That
is, when the input contains more than one line, the first line will be
displayed beneath the previous items in the bar. This is practical
because all the lines in the input will be aligned.

Related to #1498
2023-03-26 21:02:19 +02:00
Sébastien Helleu af493ac976 doc/user: add keys to move and delete in a single line and whole input (issue #1503) 2023-03-26 20:31:07 +02:00
Sébastien Helleu fe41da1506 core: update translations (issue #1503) 2023-03-26 20:30:17 +02:00
Sébastien Helleu 9bb3acd2c7 core: update ChangeLog (issue #1503) 2023-03-26 20:30:17 +02:00
Sébastien Helleu ec671fe447 core: fix code style (issue #1503) 2023-03-26 20:30:17 +02:00
Sébastien Helleu a508640fa0 core: add keys shift-left and shift-right with same commands as left and right (issue #1503) 2023-03-26 20:30:17 +02:00
Sébastien Helleu e6b1905679 core: revert keys meta-r (delete line) and meta-R (delete input) (issue #1503) 2023-03-26 20:30:12 +02:00
Trygve Aaberge 9ac30381fa core: Implement commands for operating on a single input line
This changes the commands delete_beginning_of_line, delete_end_of_line,
delete_line, move_beginning_of_line and move_end_of_line to operate on
the current line instead of the whole input. The commands
delete_beginning_of_input, delete_end_of_input, delete_input,
move_beginning_of_input and move_end_of_input are added with the
previous implementations that the line commands had.

Additionally, the commands move_previous_line and move_next_line are
added which moves the cursor to the previous/next line and keeps the
horizontal position in the line.

The meta-r key is changed from delete_line to delete_input to keep the
behavior, and because you probably want to delete the whole input more
often than the line. The meta-R key is added for delete_line.

The home, end, ctrl-u and ctrl-k keys are kept to the same commands,
which means that they change behaviour. This is because having them
operate on the line is consistent with other applications (vim, zsh),
and I also think it's more practical.

These new bindings are added:

    shift-home:  /input move_beginning_of_input
    shift-end:   /input move_end_of_input
    shift-up:    /input move_previous_line
    shift-down:  /input move_next_line
    meta-R:      /input delete_line
    meta-ctrl-u: /input delete_beginning_of_input
    meta-ctrl-k: /input delete_end_of_input

Relates to #1498
2023-03-26 15:52:19 +02:00
Sébastien Helleu 20cea84917 doc: update German auto-generated file 2023-03-26 12:36:23 +02:00
Nils Görs 56d38184b4 core: update German translations 2023-03-26 11:24:59 +02:00
Sébastien Helleu bfca5e3c44 core: update translations 2023-03-26 10:58:59 +02:00
Sébastien Helleu fa057f663e core: add missing source files to build translations 2023-03-26 10:58:35 +02:00
Sébastien Helleu c03a432f7a core: remove obsolete files used to build translations with autotools 2023-03-26 10:51:16 +02:00
Sébastien Helleu e21144eb1f tests: add tests on gui bar functions 2023-03-26 10:42:31 +02:00
Sébastien Helleu 5b33d1e21b core: fix default value of bar options
The previous commit e385eec1d6 fixed default
value for bar added by plugins and option "items" in all bars.

This commit fixes the default value of all bar options.
2023-03-26 10:38:16 +02:00
Sébastien Helleu cd119b9ee5 core: add packaging changes in release notes 2023-03-25 21:32:23 +01:00
Sébastien Helleu fcbfa13bf3 core: update ChangeLog and release notes (issue #1502) 2023-03-25 21:15:39 +01:00
Sébastien Helleu 2586b0326d doc: update auto-generated files with options 2023-03-25 21:15:35 +01:00
Sébastien Helleu eeb680783b tests: add placeholder for function gui_key_paste_finish 2023-03-25 19:23:46 +01:00
Sébastien Helleu b71b6a48a0 core: fix typo and code style 2023-03-25 18:59:06 +01: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 3e331d3772 core: Increase default value for paste_max_lines to 100
Now that pasting text doesn't cause it to be sent immediately, but
rather inserted in the input line, the paste confirmation isn't really
necessary anymore for small pastes. If you paste by mistake you can just
press ctrl-_ to undo it.

Large pastes may cause weechat to hang for a while, so keep the paste
confirmation for those.

If you don't use bracketed paste you would still want to keep it at 1,
because it's not detected as a paste otherwise, but as far as I know
basically all terminal emulators support bracketed paste, so I think
it's fine to disable the confirmation by default.
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
Trygve Aaberge 99f6f9e454 core: When pasting, insert text in input instead of interpreting keys
This makes pasted text appear in the input bar, instead of each line
being sent. This allows you to edit the text before sending it, and it
makes multiline paste supported in buffers with input_multiline on.

It also replaces \r with \n in pasted text because most terminals (e.g.
xterm and urxvt) print lines separated by \r when pasting as if return
was pressed between each line, even though the copied text uses \n. The
text sent to the buffer should use \n, not \r, so we have to replace it.

Note that this only works when bracketed paste is enabled or the paste
confirmation as shown, because non-bracketed paste with no paste
confirmation is not detected as a paste.

Fixes a part of #1498
2023-03-25 18:53:12 +01:00
Trygve Aaberge cfaf68ae61 core: Parse bracketed paste also when paste pending
When in paste pending mode, the bracketed paste escape sequence should
still be interpreted, so that if you paste while in paste pending the
same things as when pasting in normal mode still happens, i.e. the
escape sequence is removed, ctrl-y/n is not interpreted and newline/tabs
are replaced.
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 94cbed2585 core: fix memory leak in function config_file_read_internal
This was caused by commit 66571a0b63.
2023-03-25 17:56:07 +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 2da5eaf81c core: replace .bz2 by .xz in SRC_URI of cygport template 2023-03-25 11:22:28 +01:00
Sébastien Helleu cf3ba52828 core: remove obsolete cpack config
This config was used to build binary package of WeeChat, which was never
released in this format.
2023-03-25 11:09:04 +01:00
Sébastien Helleu 2550153f26 core: remove build of .bz2 and .zst files in make dist 2023-03-25 11:02:22 +01:00
Sébastien Helleu a2ddfdf5a6 core: fix gcc warning on snprintf 2023-03-25 10:00:54 +01:00
Sébastien Helleu 15f0f7e369 core: add option legacy in command /key 2023-03-24 23:07:40 +01:00
Sébastien Helleu 92b0bc9f10 core: remove RPM packaging
The weechat.spec was obsolete and openSUSE has its own here:
https://build.opensuse.org/package/view_file/server:irc/weechat/weechat.spec?expand=1
2023-03-23 22:30:12 +01:00
Sébastien Helleu dc8f78163f core: replace set -e by set -o errexit in shell scripts 2023-03-23 22:01:48 +01:00
Sébastien Helleu 29ac28f94a core: add extra compiler options to check overflow of destination buffer and output truncation 2023-03-23 18:50:48 +01:00
Sébastien Helleu 952779a74c core: remove autotools related files in .gitignore 2023-03-22 21:10:25 +01:00
Sébastien Helleu 98a599d079 core: move buffer functions and remove them from header file 2023-03-21 20:14:35 +01:00
Sébastien Helleu f48f1c4700 core: remove unused function gui_buffer_is_scrolled 2023-03-21 20:01:12 +01:00
Sébastien Helleu 6edcc6ed41 core: remove unused function gui_buffer_search_by_layout_number 2023-03-21 19:58:53 +01:00
Sébastien Helleu be64e8cddc core: add relative move of read marker with /buffer set unread [+/-]N (closes #1895) 2023-03-20 20:38:24 +01:00
Sébastien Helleu 8475b216a4 doc: update German auto-generated file 2023-03-19 20:03:28 +01:00
Nils Görs e2286a36b4 core: update German translations 2023-03-19 19:55:45 +01:00
Sébastien Helleu dd54e26b4f core: add function bar_new in release notes 2023-03-19 18:45:18 +01:00
Sébastien Helleu 40fa2605b1 core: update ChangeLog (issue #846) 2023-03-19 18:25:05 +01:00
Sébastien Helleu cee14f10d6 core: add option rename in command /bar 2023-03-19 18:24:39 +01:00
Sébastien Helleu e4f181beb3 core: display an error with /bar add when the bar already exists 2023-03-19 17:42:12 +01:00
Sébastien Helleu 6bd49dd595 core: add value "name" in completion of /bar set <name> 2023-03-19 17:26:06 +01:00
Sébastien Helleu b31666cc86 doc/api: fix typo 2023-03-19 17:24:07 +01:00
Sébastien Helleu e385eec1d6 core: fix default value of options for bars added by plugins
When the bar name already exists, the function `bar_new` returns the pointer to
the bar (instead of NULL) and sets the default value for all options with the
values received.
2023-03-19 17:05:26 +01:00
Sébastien Helleu 3ebfe3e117 core: fix long lines in function gui_bar_use_temp_bars 2023-03-19 17:04:13 +01:00
Sébastien Helleu b846df9e0e core: allow any valid boolean value in command /bar set <name> separator xxx 2023-03-19 17:02:14 +01:00
Sébastien Helleu 8c4f02fe5a core: fix typo on bar option name "separator" 2023-03-19 16:53:05 +01:00
Sébastien Helleu c7090ae14a core: use a fixed size buffer to create a bar option 2023-03-19 16:47:46 +01:00
Sébastien Helleu 111525792d core: use a fixed size buffer to rename a bar 2023-03-19 16:47:46 +01:00
Sébastien Helleu 0f4ef874ca core: do not call check callback when setting default value of option 2023-03-19 16:47:46 +01:00
Sekulum Forka d47d9c5ed5 doc/man: call brackets correctly in the serbian translation 2023-03-19 10:08:03 +01:00
Sekulum Forka 16f2c21061 doc/man: fix grammatical mistakes in the serbian translation 2023-03-19 10:08:03 +01:00
Sébastien Helleu ca7da2c961 core: run config hooks only when value or default value is actually changed in set/reset/unset functions 2023-03-19 09:59:33 +01:00
Sébastien Helleu 3e5d77fdff core: optimize commands /reset and /unset with a mask 2023-03-19 08:30:32 +01:00
Sébastien Helleu 0d49ffd053 core: add command /reset to reset options to their default values 2023-03-19 08:02:10 +01:00
Sébastien Helleu 2e82c41c1a core: don't translate the key context (default/search/cursor/mouse) 2023-03-19 07:17:44 +01:00
Sébastien Helleu 89701a3cc0 core: mention breaking changes in release notes 2023-03-18 16:09:47 +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 ff544f48fb core: update ChangeLog and release notes (closes #1238) 2023-03-18 15:21:17 +01:00
Sébastien Helleu 5f475ab8cf core: update translations 2023-03-18 15:20:31 +01:00
Sébastien Helleu f7a6bd422a doc: replace comma by underscore in name of option used in anchors 2023-03-18 15:19:08 +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 3640d187b8 core: split gui-curses.h into multiple headers 2023-03-17 18:52: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 fe6b69c41c core: set insert_ok to 0 for backspace key 2023-03-17 18:52:30 +01:00
Sébastien Helleu e060a0e7f2 core: remove "%s" from translated message for key debug 2023-03-17 18:52:30 +01:00
Sébastien Helleu 2b1da0d910 core: add note about "shift-" modifier in /help key
The modifier "shift-" can only be used with the key names, not with simple
chars.
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 d9e084869a core: add modifiers, key names and combos in /help 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 8a5a778293 core: remove mention to list of keys being displayed without arguments in /help key
Now when fset plugin is loaded, the keys are displayed in fset buffer.

In core commands like /set or /key, the fset plugin is not mentioned as WeeChat
can run without it.
2023-03-16 20:42:19 +01:00
Sébastien Helleu 46ce8d7e81 buflist: do not display keys added in default context on first load
Keys added in mouse context were already hidden, so it makes sense to not
display keys in default context as well.

These keys added by the default plugins are documented anyway.
2023-03-16 20:42:19 +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 a0c3fbbde9 core: display a warning if the config version read is newer than supported version 2023-03-16 20:42:19 +01:00
Sébastien Helleu 03e6d4563f core: move keyboard debug mode from /key debug to /debug key 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
Sébastien Helleu 55d9989b85 core: add function config_file_option_set_default 2023-03-16 20:42:19 +01:00
Sébastien Helleu 79f7c1cf83 fset: hook command /key
When command /key is called without arguments, and if fset plugin is loaded,
fset displays all key options (filter: `weechat.key*`).
2023-03-16 20:42:19 +01:00
Sébastien Helleu ccc649d06c core: create config options for all keys that can be managed with /set and /fset commands 2023-03-16 20:42:19 +01:00
Sébastien Helleu c82df8f22e core: fix safe list of keys
Add missing safe keys: "backspace" and "return".
Add missing unsafe keys: "comma", "space".
2023-03-16 20:42:19 +01:00
Sébastien Helleu c647d540a7 core: remove obsolete function gui_key_legacy_expand 2023-03-16 20:42:19 +01:00
Sébastien Helleu d1adec29f9 core: optimize search of key by reducing the number of splits into chunks 2023-03-16 20:42:19 +01:00
Sébastien Helleu 5b5c9afa29 core: add key alt-K (alt+shift+k) to grab raw key and its command 2023-03-16 20:42:19 +01:00
Sébastien Helleu 1f5c791c37 core: use new key name in command /key and configuration file
Legacy keys are automatically converted to new names when loading configuration
file `weechat.conf`.

Examples:

  "ctrl-I" => "tab"
  "meta2-1;3A" => "meta-up"
  "meta2-Z" => "shift-tab"
  "meta-wmeta-meta2-A" => "meta-w,meta-up"
  "ctrl-Cb" => "ctrl-c,b"
2023-03-16 20:42:19 +01:00
Sébastien Helleu 5b5ccb236f core: fix display of key with command /key bindctxt <context> <key> 2023-03-16 20:42:18 +01:00
Sébastien Helleu 66571a0b63 core: add configuration version, add API function config_set_version 2023-03-16 20:42:18 +01:00
Sébastien Helleu 7b8e5b36c0 core: simplify function config_file_read_internal 2023-03-16 20:42:18 +01:00
Sébastien Helleu 31bf962bba core: display new key name using aliases in output of /key command 2023-03-16 20:42:18 +01:00
Sébastien Helleu 15587ac72f core: fix function gui_key_legacy_to_alias with keys on areas 2023-03-16 20:42:18 +01:00
Sébastien Helleu 21910b7050 core: add function to expand raw key code to name with alias, use it in /key debug 2023-03-16 20:42:18 +01:00
Sébastien Helleu 0781f29726 core: add keyboard debug mode with command /key debug 2023-03-16 20:42:18 +01:00
Sébastien Helleu 5441c52d64 fset: remove scroll to top of fset buffer when options are added or removed (closes #1892) 2023-03-16 20:41:05 +01:00
Sébastien Helleu b21bc63313 tests: add tests on functions weeurl_search_constant and weeurl_search_option 2023-03-12 08:02:47 +01:00
Sébastien Helleu 7ba9f9ac7b core: revert case sensitive Curl constants and options (issue #1872)
This is a partial revert of fca78ca823.
2023-03-12 08:00:51 +01:00
Sébastien Helleu e36eda5404 core: check that parameters are not NULL in URL functions 2023-03-12 07:58:00 +01:00
Sébastien Helleu a5aa3304a4 doc/api: add hashtable methods in function string_eval_expression 2023-03-10 21:04:34 +01:00
Sébastien Helleu 7cda6cfd49 core: update translations (issue #1888) 2023-03-10 20:52:53 +01:00
Sébastien Helleu 5f5535b466 core: simplify /help eval, move examples with the other examples (issue #1888) 2023-03-10 20:52:28 +01:00
Sébastien Helleu eb71880e18 core: update ChangeLog (issue #1888) 2023-03-10 20:21:49 +01:00
Sébastien Helleu f604cf19c7 core: rename variable open_paren to pos_open_paren 2023-03-10 20:19:24 +01:00
Andrew Potter e3f588679c core: allow /eval to get hashtable properties 2023-03-10 20:19:03 +01:00
Sébastien Helleu dd65e91a75 ci: fix macOS CI 2023-02-22 21:53:25 +01:00
Sébastien Helleu fb0248f557 core: fix crash in case of NULL message sent to function gui_chat_printf_y_date_tags (closes #1883) 2023-02-22 20:38:56 +01:00
Nils Görs f6fdecb846 doc: update German documentation 2023-02-21 12:25:23 +01:00
Sébastien Helleu 188583256e doc/user: make XDG directory fallback more clear in table 2023-02-16 21:39:02 +01:00
Sébastien Helleu 2cfecc2e2d core: update ChangeLog (issue #603) 2023-02-11 14:18:13 +01:00
Sébastien Helleu 3466c716ae doc/user: move "Upgrade" chapter after "Running WeeChat" 2023-02-10 19:00:01 +01:00
Sébastien Helleu 46935b859c core: update ChangeLog (issue #1881) 2023-02-10 18:59:39 +01:00
Robin Jarry 9b9ec62a8e core: allow /input move_next_word going to the end of line
When the input buffer contains non word characters at the end, /input
move_next_word will stop moving at the end of the last word. This is
a bit confusing and not in line with what readline does (think bash).

When there are no words left in the input buffer, make /input
move_next_word go to the end of line.

Signed-off-by: Robin Jarry <robin@jarry.cc>
2023-02-10 18:56:43 +01:00
rj1 69a3dd21dc fix: various code comments 2023-02-04 11:50:44 +01:00
Sébastien Helleu 6d4471b6db core: optimize search of key bindings in contexts default/search/cursor 2023-02-04 10:45:57 +01:00
Sébastien Helleu 587e2882ac core: simplify function gui_key_cmp 2023-02-03 22:52:07 +01:00
Sébastien Helleu 1f073fe949 tests: add tests on function gui_key_cmp 2023-02-03 22:50:32 +01:00
Sébastien Helleu 68a5a71b55 core: remove extra spaces before comma 2023-02-02 22:01:46 +01:00
Sébastien Helleu 48a51c9f6e doc: update auto-generated files 2023-02-01 20:32:00 +01:00
Ivan Pešić 314d9c0ce9 core/doc Update Serbian translations
Update messages and documentation translations.
2023-02-01 20:31:19 +01:00
Nils Görs 98917539b2 core: update German translations 2023-02-01 11:05:36 +01:00
Sébastien Helleu 30fa647700 irc: add command /rules (closes #1864) 2023-01-31 18:43:07 +01:00
Sébastien Helleu 9f5ca3b1a9 irc: add command /knock (closes #7) 2023-01-31 18:37:27 +01:00
Sébastien Helleu 4c0d2ab3b1 doc: update German auto-generated file 2023-01-31 07:55:36 +01:00
Nils Görs f2e149e489 core: update German translations 2023-01-31 07:52:53 +01:00
Sébastien Helleu 7ad4f7b29c core: update description of function hook_command_display_error_unknown 2023-01-30 23:27:25 +01:00
Sébastien Helleu e78d96686c core: inform that commands are case sensitive when another command with different case is found (issue #1877) 2023-01-30 22:09:36 +01:00
Sébastien Helleu 4370f75ce6 core: improve prioritization of commands starting with same chars in similar commands 2023-01-30 21:51:32 +01:00
Sébastien Helleu b02a10aa48 core: display similar command names when a command is unknown (closes #1877) 2023-01-30 21:44:38 +01:00
Sébastien Helleu 74154d972d tests: fix comments (issue #1877) 2023-01-30 21:44:09 +01:00
Sébastien Helleu 69a635412d core: add function string_get_common_bytes_count (issue #1877) 2023-01-30 21:44:03 +01:00
Sébastien Helleu 38ffac78f3 core: add function string_levenshtein (issue #1877) 2023-01-30 21:43:58 +01:00
Sébastien Helleu 269b8fc66e core: properly skip command char when it is a wide char in exec of hook_command_run 2023-01-29 21:20:18 +01:00
Mattia 2bcd9cb87b doc/quickstart: translate to Italian (closes #1874) 2023-01-29 16:58:22 +01:00
Andrew Potter 4f0b6115a1 irc: add server option "registered_mode" (closes #1625)
Two new fields are added in IRC server structure:

- "authentication_method", possible values:
    0: not authenticated
    1: authenticated with SASL
    2: authenticated with other method
- "sasl_mechanism_used", possible values: see enum t_irc_sasl_mechanism
  in src/plugins/irc/irc-sasl.h
2023-01-29 16:50:57 +01:00
Sébastien Helleu 3909d77617 core: add bug #32213 in ChangeLog 2023-01-29 13:58:21 +01:00
Sébastien Helleu e6eb068b2b doc: update German auto-generated files 2023-01-29 13:44:30 +01:00
Nils Görs 958ddee8fd core: update German translations 2023-01-29 13:20:28 +01:00
Sébastien Helleu 471ef214e7 core: add issue #398 in ChangeLog 2023-01-29 13:10:31 +01:00
Sébastien Helleu fc504698ad core: add ctrl keys as lower case in release notes (issue #1875) 2023-01-29 13:01:58 +01:00
Sébastien Helleu fd746a04d6 core: force ctrl keys to lower case when they are added (closes #1875) 2023-01-29 12:41:28 +01:00
Sébastien Helleu be0c04f498 core: ignore incomplete ctrl/meta/meta2 codes in keys (issue #1875) 2023-01-29 12:41:27 +01:00
Sébastien Helleu c68c2aaa94 core: ensure internal_code is not NULL when adding a default key (issue #1875) 2023-01-29 12:41:26 +01:00
Sébastien Helleu 3005658f38 core: compute first internal code and expanded name before removing key (issue #1875) 2023-01-29 12:41:24 +01:00
Sébastien Helleu a9289cbdc1 core: compute first internal code and expanded name before adding key (issue #1875) 2023-01-29 12:41:23 +01:00
Sébastien Helleu 0d8a6679b3 core: use dynamic string in functions gui_key_get_internal_code and gui_key_get_expanded_name (issue #1875) 2023-01-29 12:41:22 +01:00
Sébastien Helleu fa6a9bb934 api: readjust string size in function string_dyn_free when string is not freed (issue #1875)
This frees some allocated memory if size_alloc was greater than size in the
dynamic string.
2023-01-29 12:41:19 +01:00
Sébastien Helleu 48c1aebb83 tests: add tests on gui key functions (issue #1875) 2023-01-29 12:41:11 +01:00
Sébastien Helleu 81f4b16180 core: update ChangeLog (closes #1872) 2023-01-28 15:19:46 +01:00
Sébastien Helleu efe4aa29fc core: update translations and auto-generated doc files (issue #1872) 2023-01-28 15:19:41 +01:00
Sébastien Helleu 4c1a87ba60 core: add case sensitive identifiers in release notes (issue #1872) 2023-01-28 15:14:32 +01:00
Sébastien Helleu 3318a7f3b8 alias: add option rename in command /alias (issue #1872) 2023-01-28 15:14:31 +01:00
Sébastien Helleu 11ea0aecf4 core: make buffer name case sensitive in read of infolist "buffer" (issue #1872) 2023-01-28 15:14:30 +01:00
Sébastien Helleu b5350a3318 core: make proxy name case sensitive in read of infolist "proxy" (issue #1872) 2023-01-28 15:14:29 +01:00
Sébastien Helleu 18d4e6a52c relay: make relay compression case sensitive (issue #1872) 2023-01-28 15:14:28 +01:00
Sébastien Helleu 3e9e1b51bf core, plugins: replace calls to strcmp by string_strcmp when difference matters (issue #1872) 2023-01-28 15:14:26 +01:00
Sébastien Helleu fbeab26a35 core, plugins: replace calls to string_str(n)cmp by str(n)cmp (issue #1872) 2023-01-28 15:14:24 +01:00
Sébastien Helleu c07cf691ad core, plugins: check that string parameters are not NULL in search functions (issue #1872) 2023-01-28 15:14:22 +01:00
Sébastien Helleu c9ac4fef4b xfer: make xfer types and protocols case sensitive (issue #1872) 2023-01-28 15:14:21 +01:00
Sébastien Helleu f9a80e7d4d trigger: make trigger names/options/types/return codes/post actions case sensitive (issue #1872) 2023-01-28 15:14:20 +01:00
Sébastien Helleu 3319e6ff6e script: make script names case sensitive (issue #1872) 2023-01-28 15:14:19 +01:00
Sébastien Helleu 375c9f8b1e api: make prefix argument case sensitive in prefix function (issue #1872) 2023-01-28 15:14:17 +01:00
Sébastien Helleu 7b06463e84 irc: make IRC raw filters case sensitive (issue #1872)
Except the IRC command name filter (`m:xxx`).
2023-01-28 15:14:16 +01:00
Sébastien Helleu 0704f382e0 irc: make IRC server names case sensitive (issue #1872) 2023-01-28 15:14:15 +01:00
Sébastien Helleu d7f08a45d7 core: make notify tags in line case sensitive (issue #1872) 2023-01-28 15:14:14 +01:00
Sébastien Helleu 844b57a26d core: make key contexts case sensitive (issue #1872) 2023-01-28 15:14:12 +01:00
Sébastien Helleu f11d598928 core: make hotlist priorities case sensitive (issue #1872) 2023-01-28 15:14:11 +01:00
Sébastien Helleu 8744fdfaf3 core: make filter names case sensitive (issue #1872) 2023-01-28 15:14:10 +01:00
Sébastien Helleu 7a8ce6c9ae core: make color names and attributes case sensitive (issue #1872) 2023-01-28 15:14:08 +01:00
Sébastien Helleu 73c3c03915 core, plugins: make input actions in buffers case sensitive (issue #1872) 2023-01-28 15:14:07 +01:00
Sébastien Helleu c724032a22 core: make function gui_buffer_match_list case sensitive (issue #1872) 2023-01-28 15:14:06 +01:00
Sébastien Helleu 2ee65dd1ff core: make buffer types and notify levels case sensitive (issue #1872) 2023-01-28 15:14:05 +01:00
Sébastien Helleu a3befc7aae core: make proxy options and types case sensitive (issue #1872) 2023-01-28 15:14:04 +01:00
Sébastien Helleu 54ed4c6a18 core: make weelist position case sensitive (issue #1872) 2023-01-28 15:14:02 +01:00
Sébastien Helleu 411fe0b0ef core: make hashtable types case sensitive (issue #1872) 2023-01-28 15:14:01 +01:00
Sébastien Helleu fca78ca823 core: make Curl constants and options case sensitive (issue #1872) 2023-01-28 15:14:00 +01:00
Sébastien Helleu bbbd08694b core: make get/set object properties case sensitive (issue #1872) 2023-01-28 15:13:58 +01:00
Sébastien Helleu 5434f4f969 core, plugins: make plugin names case sensitive (issue #1872) 2023-01-28 15:13:57 +01:00
Sébastien Helleu 4b5897f110 core: make bar and bar items case sensitive (issue #1872) 2023-01-28 15:13:55 +01:00
Sébastien Helleu 489c264202 core, plugins: make info, info_hashtable and infolist case sensitive (issue #1872) 2023-01-28 15:13:54 +01:00
Sébastien Helleu 5bd97b9630 irc: make case insensitive comparison with a lower case string (issue #1872)
This is faster because with case insensitive comparison, the chars are
converted to lower case anyway before being compared.
2023-01-28 15:13:52 +01:00
Sébastien Helleu 498ee539ea core: make case insensitive comparison with a lower case string (issue #1872)
This is faster because with case insensitive comparison, the chars are
converted to lower case anyway before being compared.
2023-01-28 15:13:51 +01:00
Sébastien Helleu f0415c8ec3 core, plugins: make commands, hook command_run, completions and aliases case sensitive (issue #1872) 2023-01-28 15:13:48 +01:00
Sébastien Helleu 1de735b779 alias: make aliases case sensitive, convert default aliases to lower case (issue #1872) 2023-01-28 15:13:47 +01:00
Sébastien Helleu db177de204 core: make configuration files, sections and options case sensitive (issue #1872) 2023-01-28 15:13:45 +01:00
Sébastien Helleu 72f4596fb2 core: add function config_file_get_configs_by_priority (issue #1872) 2023-01-28 15:13:43 +01:00
Sébastien Helleu d71c3b0f21 doc/api: add priority in function config_new (issue #1872) 2023-01-28 15:13:40 +01:00
Sébastien Helleu f72435d765 core: simplify code in config functions (issue #1872) 2023-01-28 15:13:38 +01:00
Sébastien Helleu 0dd1d1be1c core: sort configuration files by name, reload them by priority (issue #1872) 2023-01-28 15:13:36 +01:00
Sébastien Helleu 202b4d82c0 plugins: set priority in calls to weechat_config_new (issue #1872) 2023-01-28 15:13:34 +01:00
Sébastien Helleu 9174ec979b core: set priority in calls to config_file_new (issue #1872) 2023-01-28 15:13:32 +01:00
Sébastien Helleu d274eb4be4 core: add priority in config file (issue #1872)
Priority is now allowed in function config_file_new, parameter `name`, with the
same format as hooks: "priority|name" (for example: "2000|test").

If not specified, the default priority is 1000.
2023-01-28 15:13:29 +01:00
Sébastien Helleu 347c3f3214 core: move function hook_get_priority_and_name to wee-string.c (issue #1872) 2023-01-28 15:13:18 +01:00
Sébastien Helleu db8d2d43f0 doc: update German auto-generated file 2023-01-25 07:59:33 +01:00
Nils Görs 5a93b5ad15 core: update German translations 2023-01-25 07:50:28 +01:00
Sébastien Helleu 37e8599443 irc: add option join in command /autojoin 2023-01-24 20:58:17 +01:00
Sébastien Helleu 0e1d3618ee doc: update auto-generated files with hdata 2023-01-24 20:55:28 +01:00
Sébastien Helleu 55d08a604f irc: fix autojoin on server connection (closes #1873)
Now the autojoin is made only one time, until the server buffer is closed.

A new flag `autojoin_done` is added to know whether the autojoin has already
been done or not on the server.  It is set to 1 on first autojoin, and reset to
0 only if the server buffer is closed.

The flag `reconnect_join` is removed, because it is now obsolete.
2023-01-23 19:10:13 +01:00
Nils Görs e0cdfb1cef core: update German translations 2023-01-16 08:53:26 +01:00
Sébastien Helleu cfa2239db5 irc: update message with number of nicks when joining a channel
Changed:

- "N voices" to "N voiced"
- "N normals" to "N regular"
2023-01-15 21:12:32 +01:00
Sébastien Helleu 6abd989dd7 debian: remove remaining workarounds for autotools build 2023-01-15 17:10:20 +01:00
Sébastien Helleu 51d0a6f402 tests: add tests on string comparison functions 2023-01-14 21:44:19 +01:00
Sébastien Helleu fdb793e410 ci: fix macOS CI (temporary fix)
Unlink Python binaries so that the install of packages via brew is a success.
See: https://github.com/actions/setup-python/issues/577
2023-01-14 21:16:18 +01:00
Sébastien Helleu 7668e7ea55 fset: fix typo in French translation of /help fset.look.condition_catch_set 2023-01-14 20:56:06 +01:00
Sébastien Helleu 87d71b9677 core: remove useless continue statement in loop 2023-01-12 21:33:57 +01:00
Sébastien Helleu 049c6eb6a8 core: display error in command if allocation of arraylist fails 2023-01-12 20:57:47 +01:00
Sébastien Helleu 0d622df87a core: fix display glitch in command errors when a wide char is set in option weechat.look.command_chars (closes #1871) 2023-01-12 20:28:29 +01:00
Sébastien Helleu 1a15171912 ci: fix typo 2023-01-10 08:18:49 +01:00
Sébastien Helleu 711f71a1bc ci: fix run of code coverage 2023-01-10 08:01:22 +01:00
Sébastien Helleu f59f39abd4 python: remove unneded call to deprecated function PySys_SetArgv
This function is deprecated since Python 3.11.
2023-01-08 20:26:57 +01:00
Sébastien Helleu 9b47832a01 core: do not allocate strings in dir_search_full_lib_name_ext, check return code of snprintf
This removes three compiler warnings.
2023-01-08 18:24:28 +01:00
Sébastien Helleu 0bde2aa0f3 irc: check return code of snprintf
This removes two compiler warnings.
2023-01-08 18:13:05 +01:00
Sébastien Helleu f305eed01f typing: fix crash when pointer buffer is not received in callback for signal "input_text_changed" (closes #1869) 2023-01-08 17:38:37 +01:00
Sébastien Helleu 43d3a97869 debian: restore target override_dh_auto_configure (packaging of stable version) 2023-01-08 15:18:19 +01:00
Sébastien Helleu f67b7ad113 debian: restore target override_dh_auto_configure 2023-01-08 15:16:52 +01:00
Sébastien Helleu 736bc89d4e core: update ChangeLog and release notes (closes #1860) 2023-01-08 14:43:17 +01:00
Sébastien Helleu 754ab33946 core: remove build with autotools
CMake is now the only way to build WeeChat.
2023-01-08 14:19:41 +01:00
Sébastien Helleu 18360feb32 ruby: remove warnings on unused parameters
These warnings may be enabled again in future when Ruby itself will be fixed.
2023-01-08 14:04:10 +01:00
Sébastien Helleu fe7c0019a7 php: remove warnings on variables "argc" and "ret_i" that might be clobbered by longjmp or vfork 2023-01-08 14:04:05 +01:00
Sébastien Helleu e101d5d8a4 Version 3.9-dev 2023-01-08 10:35:38 +01:00
Sébastien Helleu b614a5c5db Version 3.8 2023-01-08 10:07:07 +01:00
Sébastien Helleu 35129a1cae core: add note about case insensitive comparison improved in release notes 2023-01-08 10:01:11 +01:00
Sébastien Helleu 2f6b462c3c core: update entries related to CI in ChangeLog 2023-01-07 23:17:56 +01:00
Sébastien Helleu 9202213274 ci: remove use of repository ppa:ondrej/php
Now the CI uses the standard PHP version (8.1) from Ubuntu 22.04.
2023-01-07 23:17:29 +01:00
Sébastien Helleu 822a94c184 php: add proper detection of PHP 8.2 in all cases 2023-01-07 22:05:37 +01:00
Sébastien Helleu e0f096abe6 debian: add symbolic link weechat_raspbian_buster.patch pointing to Debian Buster patch 2023-01-06 13:12:59 +01:00
Sébastien Helleu bff143dcf4 core: add CMake test called "notests" when tests are not compiled
Now the command `make test` executes properly and returns 0 when test are not
compiled.
2023-01-06 07:53:39 +01:00
Sébastien Helleu e660233325 Revert "core: add a fake target "test" so that make test successes when tests are not compiled"
This reverts commit 129860fd52.
2023-01-06 07:11:35 +01:00
Sébastien Helleu 129860fd52 core: add a fake target "test" so that make test successes when tests are not compiled 2023-01-05 21:26:55 +01:00
Sébastien Helleu 3c65bc6831 core: rename script build-test.sh to build_test.sh 2023-01-05 08:05:04 +01:00
Sébastien Helleu db81c07e1f core: rename script build-debian.sh to build_debian.sh 2023-01-05 08:03:12 +01:00
Sébastien Helleu 30ad9ca62d core: rename script git-version.sh to set_git_version.sh 2023-01-05 08:01:48 +01:00
Sébastien Helleu c7f5cd462f core: add message after checking Curl symbols: "all good" or number of errors 2023-01-05 07:48:08 +01:00
Sébastien Helleu bcba2d4d7c core: add example with Curl repository cloned locally 2023-01-05 07:43:01 +01:00
Sébastien Helleu e3a69e92e5 core: install flake8 in CI 2023-01-04 22:49:36 +01:00
Sébastien Helleu f43efe5a65 core: add script check_scripts.sh
This script is now used in CI to check all shell scripts (*.sh) and Python
scripts (*.py) that are in git repository.

Tools used:

- shell scripts: shellcheck
- Python scripts: flake8 + pylint + bandit
2023-01-04 22:45:00 +01:00
Sébastien Helleu 8da3884afc core: add script check_curl_symbols.py
This script is used to check Curl symbols defined in WeeChat vs exposed Curl
symbols.

Usage:

curl https://raw.githubusercontent.com/curl/curl/master/docs/libcurl/symbols-in-versions | ./tools/check_curl_symbols.py
2023-01-04 22:44:14 +01:00
Sébastien Helleu 3778ef0636 core: fix Curl version in comments 2023-01-04 22:23:33 +01:00
Sébastien Helleu c52d630f82 core: remove useless "exit 0"
This fixes the following shellcheck error:

SC2317 (info): Command appears to be unreachable. Check usage (or ignore if
invoked indirectly).
2023-01-04 22:23:33 +01:00
Sébastien Helleu 356028ee87 core: double quote $JOBS
This fixes the following shellcheck error:

SC2086 (info): Double quote to prevent globbing and word splitting.
2023-01-04 22:23:33 +01:00
Sébastien Helleu 9dd85507d0 core: don't use eval to run commands in scripts
This fixes the following shellcheck error:

SC2294 (warning): eval negates the benefit of arrays. Drop eval to preserve
whitespace/symbols (or eval as string).
2023-01-04 22:20:51 +01:00
Sébastien Helleu c6df2e7b8e tests: fix long lines in scripting API tests 2023-01-04 21:13:25 +01:00
Sébastien Helleu e6857871f0 tests: ignore module level import not at top of file (flake8 E402) 2023-01-04 21:12:53 +01:00
Sébastien Helleu d1f2d54a1e tests: mark methods is_bool and is_number as static 2023-01-04 21:11:41 +01:00
Sébastien Helleu 0ce0fa9f1f api: add Curl options for versions 7.64.0 to 7.87.0 2023-01-03 23:21:44 +01:00
Sébastien Helleu 7526776f4e plugins: change priority of scripting plugins
Use a step of 10 between each scripting plugin priority.
2023-01-03 20:20:21 +01:00
Sébastien Helleu 958f39cb95 core: fix crash or infinite loop in /allbuf command
A crash could occur if the command closes buffers.
An infinite loop could occur if the command creates new buffers.
2023-01-03 17:02:38 +01:00
Sébastien Helleu 189eb5dc40 core: add variable list_size to prevent computing arraylist size in each iteration 2023-01-03 17:01:52 +01:00
Sébastien Helleu 9ee0955d6b irc: properly rename private buffer on notice messages 2023-01-03 01:06:51 +01:00
Sébastien Helleu 99988bdee7 Version 3.8-rc1 2023-01-02 14:27:21 +01:00
Sébastien Helleu 1daf145830 core: fix line wrapping in Polish translations 2023-01-02 14:20:44 +01:00
Sébastien Helleu 7baef6396d irc: properly rename private buffer on nick changes or private message when new nick is the same with different case 2023-01-02 14:17:20 +01:00
Sébastien Helleu c739026c87 irc: replace "private window" by "private buffer" in comments 2023-01-02 13:50:58 +01:00
Sébastien Helleu 33bba784c3 core: update copyright dates 2023-01-01 14:54:35 +01:00
Sébastien Helleu 1fb6d52984 tests: add tests on gui input functions 2023-01-01 14:41:06 +01:00
Sébastien Helleu 727c465911 core: check that buffer is not NULL in function gui_input_clipboard_copy 2023-01-01 14:39:38 +01:00
Sébastien Helleu 73bac5491b core: move function gui_input_move_to_buffer to gui-buffer.c 2022-12-31 10:40:00 +01:00
Sébastien Helleu 05839983d4 core: fix color when the delimiter is not followed by a background color (closes #1867) 2022-12-30 21:50:18 +01:00
Sébastien Helleu 6c59b0830c doc: update Polish auto-generated files 2022-12-30 16:30:20 +01:00
Krzysztof Korościk 9f5a739428 core: updated Polish translation 2022-12-30 14:12:43 +01:00
Sébastien Helleu 81260ec854 doc: update German auto-generated file 2022-12-29 19:30:58 +01:00
Nils Görs d8cc91993f core: update German translations 2022-12-29 12:51:12 +01:00
Sébastien Helleu d878d2023a core: fix French translation of "read marker" 2022-12-29 12:05:21 +01:00
Sébastien Helleu fce2fcba4f core: add option weechat.look.chat_space_right (issue #1862) 2022-12-29 12:00:28 +01:00
Krzysztof Korościk 45fdcc2eb4 doc: updated polish translation 2022-12-28 17:44:46 +01:00
Sébastien Helleu 914f9e756b doc: update German auto-generated file 2022-12-28 10:27:44 +01:00
Nils Görs 7d94fba9ac core: update German translations 2022-12-28 10:25:31 +01:00
Sébastien Helleu e58b57fe4c doc: update German auto-generated files 2022-12-26 23:43:28 +01:00
Nils Görs 0e6058f8cd core: update German translations 2022-12-26 13:41:24 +01:00
Nils Görs 98bc80924c core: update German translations 2022-12-26 13:32:56 +01:00
Sébastien Helleu 45638dca23 core: allow value "0" in buffer property "unread" to remove read marker from buffer 2022-12-26 01:27:45 +01:00
Sébastien Helleu 56055de12e doc/api: fix formatting of return value in char/string comparison functions 2022-12-26 00:55:30 +01:00
Sébastien Helleu 5a27805cf3 core: reorder entries in ChangeLog 2022-12-25 23:05:22 +01:00
Dawid Dziurla 1639e60651 changelog: add entry about Ruby 3.2 detection 2022-12-25 23:03:24 +01:00
Dawid Dziurla 824812c7c0 ruby: add detection of Ruby 3.2 2022-12-25 23:03:24 +01:00
Sébastien Helleu 41fd26fe79 core: move /input buffer switch/zoom actions to command /buffer
Actions moved:

* `/input switch_active_buffer` -> `/buffer switch`
* `/input switch_active_buffer_previous` -> `/buffer switch -previous`
* `/input zoom_merged_buffer` -> `/buffer zoom`
2022-12-25 22:47:18 +01:00
Sébastien Helleu 0c29d4c5b6 core: move /input set_unread actions to commands /allbuf and /buffer set
Actions moved:

* `/input set_unread` -> `/allbuf /buffer set unread`
* `/input set_unread_current_buffer` -> `/buffer set unread`
2022-12-25 21:44:27 +01:00
Sébastien Helleu 2c238e08ff core: add command /allbuf 2022-12-25 21:23:14 +01:00
Sébastien Helleu 2ad6f2f3d5 api: do not check hotlist add conditions when adding buffer in hotlist with function buffer_set 2022-12-25 20:35:10 +01:00
Sébastien Helleu a9094fd2fa core: add option add in command /hotlist 2022-12-25 19:40:57 +01:00
Sébastien Helleu b3e4a91760 core: fix typo in comment 2022-12-25 19:07:39 +01:00
Sébastien Helleu babe1e7a42 core: move /input hotlist actions to new command /hotlist
Actions moved to command `/hotlist`:

* `/input hotlist_clear` -> `/hotlist clear`
* `/input hotlist_remove_buffer` -> `/hotlist remove`
* `/input hotlist_restore_buffer` -> `/hotlist restore`
* `/input hotlist_restore_all` -> `/hotlist restore -all`
2022-12-25 18:50:57 +01:00
Sébastien Helleu 574a4c8834 core: add function gui_buffer_jump_last_visible_number 2022-12-25 17:57:59 +01:00
Sébastien Helleu c9796a3141 core: move /input jump actions to command /buffer jump
Actions moved to command `/buffer jump`:

* `/input jump_smart` -> `/buffer jump smart`
* `/input jump_previously_visited_buffer` -> `/buffer jump prev_visited`
* `/input jump_next_visited_buffer` -> `/buffer jump next_visited`
* `/input jump_last_buffer_displayed` -> `/buffer jump last_displayed`
2022-12-25 17:00:37 +01:00
Sébastien Helleu 9bd6cbf4bd core: fix style in ChangeLog and release notes 2022-12-25 16:53:30 +01:00
Sébastien Helleu 445b522498 core: fix typo in comment 2022-12-25 15:06:03 +01:00
Sébastien Helleu f5135277af core: remove useless conditions 2022-12-24 19:40:53 +01:00
Sébastien Helleu 21f3575016 api: add functions string_strcmp and string_strncmp 2022-12-24 18:29:35 +01:00
Sébastien Helleu 0dd1d4133b doc/api: mention "UTF-8" in char/string comparison functions 2022-12-24 17:52:31 +01:00
Sébastien Helleu a67556907d api: rename char comparison functions "utf8_char*" to "string_char*" 2022-12-24 17:33:22 +01:00
Sébastien Helleu 083032972d api: return arithmetic difference between chars in string comparison functions
Return code is changed for the following functions:

- string_strcasecmp
- string_strcasecmp_range
- string_strncasecmp
- string_strncasecmp_range
- string_strcmp_ignore_chars
- utf8_charcmp
- utf8_charcasecmp
- utf8_charcasecmp_range
2022-12-24 16:25:20 +01:00
Sébastien Helleu 5fc656a1b8 api: fix function strcmp_ignore_chars with case sensitive comparison and wide chars starting with the same byte 2022-12-23 23:20:29 +01:00
Sébastien Helleu 91149f0acc core: fix typo in French translation of /help input 2022-12-22 20:56:50 +01:00
Sébastien Helleu 68b510517e core: improve case convert and insensitive char comparisons (closes #258)
All lowercase letters are now properly converted to uppercase letters (and vice
versa), via functions `towupper` and `towlower`.

Functions `string_tolower`, `string_toupper` and `utf8_charcasecmp` have been
optimized to be faster when there are ASCII chars (< 128); functions are about
25-40% faster with mixed chars (both ASCII and multi-bytes).

Function `utf8_wide_char` has been removed, `utf8_char_int` can be used
instead.
2022-12-21 20:49:09 +01:00
Sébastien Helleu 95286c1eb3 core: remove unneeded casts 2022-12-19 13:01:33 +01:00
Sébastien Helleu 267313304e irc: fix calls to weechat_string_toupper 2022-12-19 11:18:59 +01:00
Sébastien Helleu 33b6adc3d3 core: fix call to string_toupper 2022-12-19 11:18:49 +01:00
Sébastien Helleu 56436e57fd spell: return directly output of string_dyn_free without temporary variable 2022-12-19 07:07:12 +01:00
Sébastien Helleu 5df4126c75 irc: return directly output of string_dyn_free without temporary variable 2022-12-19 07:06:01 +01:00
Sébastien Helleu 42113ebc0f core: return directly output of string_dyn_free without temporary variable 2022-12-19 07:04:33 +01:00
Sébastien Helleu 40339b288a api: return newly allocated string in functions string_tolower and string_toupper 2022-12-18 14:28:58 +01:00
Sébastien Helleu eb6cc0bc2a core: return number of bytes for UTF-8 char in function utf8_int_string 2022-12-18 14:13:14 +01:00
Sébastien Helleu 6aedddd351 tests: add tests on function gui_input_delete_next_word 2022-12-18 14:13:14 +01:00
Sébastien Helleu 9b917ccace tests: add tests on function gui_input_delete_range 2022-12-18 14:13:14 +01:00
Sébastien Helleu 99c453ee23 tests: add tests on gui delete previous/next char functions 2022-12-18 14:13:14 +01:00
Sébastien Helleu d2f447dafc tests: add extra tests on function gui_input_set_pos 2022-12-18 14:13:14 +01:00
Sébastien Helleu 3ef8241444 tests: add tests on gui input completion functions 2022-12-18 14:13:14 +01:00
Sébastien Helleu dd9ae79204 core: remove unused argument "pos" from function gui_input_insert_string, add tests on function 2022-12-18 14:13:14 +01:00
Sébastien Helleu f03384d124 core: simplify gui input functions by returning immediately if condition not met 2022-12-17 22:22:15 +01:00
Sébastien Helleu fb31cf663e irc: do not join channels in server autojoin option after reconnection to the server (closes #560, bug #21529) 2022-12-17 12:55:39 +01:00
Sébastien Helleu 122a0f8097 doc: update German auto-generated file 2022-12-14 23:44:41 +01:00
Nils Görs 32496d1705 core: update German translations 2022-12-14 22:38:45 +01:00
Trygve Aaberge dc8a35796a doc/api: Improve python example for config_new_section
This updates the Python examples to include all the possible return
values for the callbacks in config_new_section, like it is done in the C
example. It also aligns the order of the values with the C example.
2022-12-11 15:33:11 +01:00
Trygve Aaberge abdabb3ae4 doc/api: Fix return values for callback_read in config_new_section
These return values were wrong in the description and C example. As can
be seen on lines 2835 and 2873-2903 of src/core/wee-config-file.c the
callback_read function should return the same as the function
config_file_option_set plus the value
WEECHAT_CONFIG_OPTION_SET_OPTION_NOT_FOUND (which is also the same as
the possible return values of config_file_option_set_with_string).

The Python example was already correct and the C example was already
correct in the other languages apart from English.

These errors were introduced in commit 02e2b21d3 and commit 5210ff1ae.
2022-12-11 15:33:11 +01:00
Sébastien Helleu a1b6d9622f core: add contributor (issue #1859) 2022-12-11 15:25:13 +01:00
Sébastien Helleu 20b061a89a core: update ChangeLog (issue #1859) 2022-12-11 15:17:38 +01:00
Ryan Qian 1316f3eb6d cmake: add support of compiling with enchant-2 for the Spell plugin 2022-12-11 15:16:23 +01:00
Sébastien Helleu a0e5e2a375 core: update ChangeLog (issue #1843) 2022-12-11 15:15:50 +01:00
Trygve Aaberge ebc63d1b83 scripts: Send null values to config section callbacks
The callback_read and callback_create_option functions in the scripting
APIs always get the value as a string, never as null. This means that if
the value is null, there is no way for the script to distinguish this
from an empty string for string options. This makes it impossible to
properly make options with fallback values, like the irc server and
server_default options, as far as I can see.

All the scripting languages except Tcl use that language's equivalent
for null. For JavaScript which has both null and undefined, null is
used. For Tcl, the magic null string defined in commit 197a7a01e is used
and the documentation is updated to describe that.

I tested this with these scripts:
https://gist.github.com/trygveaa/2d49c609addf9773d2ed16e15d1e3447

You can load all of those scripts and see the result with this command
(assuming you have the scripts in the current directory):

    weechat -t -r "/filter add script * * script; /script load $(echo script_config.*)"
2022-12-11 15:13:31 +01:00
Sébastien Helleu 1bfc8b9cf8 trigger: fix variables sent to focus callback (closes #1858)
This fixes a regression introduced in WeeChat 3.7 by commit
0f67f55098.
2022-12-10 22:30:24 +01:00
Sébastien Helleu 18c9ade580 core: add whole string information in /debug unicode 2022-12-10 17:32:09 +01:00
Sébastien Helleu 5b9b1e175b core: add color attributes "blink" and "dim" (half bright) (closes #1855) 2022-12-10 16:37:03 +01:00
Sébastien Helleu 9b93919b06 core: update ChangeLog (closes #1659, closes #1669, closes #1770) 2022-12-10 16:20:23 +01:00
Sébastien Helleu 7313859bdf core: update translations 2022-12-10 16:12:23 +01:00
Sébastien Helleu ef842c5e62 core: fix function string_cut when there are non printable chars in suffix 2022-12-10 16:05:14 +01:00
Sébastien Helleu f1cfd6f73f core: do not display non printable chars, fix function utf8_char_size_screen
Now the function utf8_char_size_screen can return -1 when the char is not
printable.

It has a specific behavior for some chars:

- U+0009: value of option weechat.look.tab_width
- U+0001 to U+001F (except U+0009): 1
- U+00AD (soft hyphen): -1
- U+200B (zero width space): -1
2022-12-10 16:05:14 +01:00
Sébastien Helleu d18f68e497 core: display chars < 32 with a letter/symbol and reverse video attribute in chat 2022-12-10 16:05:14 +01:00
Sébastien Helleu 6ac730cd0b core: toggle reverse video attribute in bars for chars < 32 only if not already enabled 2022-12-10 16:05:14 +01:00
Sébastien Helleu f63dba67f2 core: expand tabulations as spaces in bars 2022-12-10 16:05:14 +01:00
Sébastien Helleu 855d80702e core: replace call to memcpy by utf8_strncpy 2022-12-10 16:05:14 +01:00
Sébastien Helleu 71ae8f1907 api: add function utf8_strncpy 2022-12-10 16:05:14 +01:00
Sébastien Helleu e5cbbd781d core: optimize and fix function utf8_strlen_screen with non printable chars
When there non printable chars, the return of the function was 1.
For example utf8_strlen_screen("abc\x01") now returns 4 instead of 1.

In addition the function has been optimized to not use the `mbstowcs` function
which is slow; result is up to 15% faster.
2022-12-10 16:05:14 +01:00
Sébastien Helleu 0e6677fbcb core: add result of utf8_char_size_screen in /debug unicode 2022-12-10 16:05:14 +01:00
Sébastien Helleu 6cfc01aa53 doc: update Serbian auto-generated files 2022-12-05 21:00:48 +01:00
Ivan Pešić c6f5c3feaa Update Serbian translation
Documentation and messages translation update
2022-12-05 21:00:00 +01:00
Sébastien Helleu 55569c182a core: display hex codepoint before integer codepoint in /debug unicode 2022-12-03 10:15:18 +01:00
Sébastien Helleu f7f13352d7 core: remove useless call to mbstowcs in function debug_unicode_char 2022-12-03 10:14:30 +01:00
Sébastien Helleu bbd0f5d26b tests: define constants with UTF-8 strings, add tests on functions returning size on screen 2022-11-27 12:29:36 +01:00
Sébastien Helleu e08fcdd04c doc: update German auto-generated file 2022-11-22 18:41:42 +01:00
Nils Görs 894b5e21ed core: update German translations 2022-11-22 10:08:50 +01:00
Sébastien Helleu baab9cc7c5 core: add option unicode in command /debug 2022-11-21 20:45:41 +01:00
Sébastien Helleu a8639969c5 core: reorder sub-commands in /debug command callback 2022-11-20 13:55:21 +01:00
Sébastien Helleu 8d40273111 core: fix typo in comment 2022-11-20 09:33:40 +01:00
Sébastien Helleu b636f55b8b trigger: properly initialize variable "value" to NULL 2022-11-19 20:29:02 +01:00
Sébastien Helleu 11a5e0a627 ci: install guile-3.0-dev instead of guile-2.2-dev 2022-11-19 20:27:57 +01:00
Sébastien Helleu ea9c3b2218 debian: change dependency guile-2.2-dev to guile-3.0-dev 2022-11-19 19:05:25 +01:00
Sébastien Helleu bab73cfaa5 core: add identifier in buffer lines (closes #901)
For buffers with formatted content, the "id" starts to 0 on each buffer and is
incremented on each new line displayed (it is reset to 0 if reaching INT_MAX).

For buffers with free content, the "id" is set to the same value as "y" (ie the
line number, starting to 0).
2022-11-11 09:42:20 +01:00
Sébastien Helleu 8c44dc53eb doc/api: add missing note after list of signals 2022-11-09 08:15:30 +01:00
Sébastien Helleu 70998a53de doc/user: add missing supported format for trigger regex 2022-11-09 08:12:54 +01:00
Sébastien Helleu 6962d2ccd5 doc: update German auto-generated file 2022-11-08 20:36:33 +01:00
Sébastien Helleu 24665ae878 core: add signals "buffer_user_{input|closing}_xxx" for buffers created with /buffer add (closes #1848) 2022-11-08 20:34:04 +01:00
Nils Görs 2e4a033f0d doc: update German documentation 2022-11-07 13:21:12 +01:00
Nils Görs f95eb08201 core: update German translations 2022-11-07 13:02:46 +01:00
Sébastien Helleu 55b5549054 trigger: display failing regex in trigger creation error 2022-11-06 09:14:18 +01:00
Sébastien Helleu f18b96bb59 core: update translations 2022-11-06 09:14:18 +01:00
Sébastien Helleu b2605902db trigger: use explicit command "s" in regex of default triggers 2022-11-06 09:14:18 +01:00
Sébastien Helleu 39561b9146 core: add release notes about new trigger regex format 2022-11-06 09:14:18 +01:00
Sébastien Helleu 7555993bbc trigger: add regex command "y" to translate chars, set default regex command to "s" (regex replace) (closes #1510) 2022-11-06 09:14:14 +01:00
Sébastien Helleu 3b674a5e16 tests: add another test on function string_translate_chars 2022-11-05 22:34:39 +01:00
Sébastien Helleu 196a051141 core: add range of chars in evaluation of expressions with chars:xxx 2022-11-05 22:34:38 +01:00
Sébastien Helleu bc2fb071e2 api: add function string_translate_chars 2022-11-05 22:34:38 +01:00
Trygve Aaberge 03899e5ea5 doc: Fix typo in highlight_disable_regex option name
The section describes highlight_disable_regex, but the example used
highlight_regex instead.
2022-11-05 21:37:25 +01:00
Sébastien Helleu a70c626c11 core: update ChangeLog (issue #1844) 2022-10-23 19:04:32 +02:00
Trygve Aaberge 6f1635ae4e core: Prevent use of uninitialized memory when setting invalid color
If a color option value is null and is tried being set to an invalid
color, the value was set to uninitialized memory which can lead to a
segfault.

Can be reproduced with this script:
https://gist.github.com/trygveaa/6ddb3a52f525a7fd8e0908bafa83e07c

The option doesn't have to be set from a script, it also happens with
the /set command.
2022-10-23 19:00:29 +02:00
Sébastien Helleu 09839150a8 doc: remove extra "#" before hex color 2022-10-22 21:51:48 +02:00
Sébastien Helleu fd526e38a3 debian: update changelog 2022-10-22 21:49:30 +02:00
Sébastien Helleu 133a424178 core: add version 3.7.1 2022-10-21 14:41:38 +02:00
Nils Görs 68f605594c doc: update German documentation 2022-10-20 23:44:37 +02:00
Sébastien Helleu cf5a9a0db5 trigger: execute trigger command on appropriate buffer (closes #1841)
This affects the following hook types:

- command
- command_run
- line
- modifier
- print

This fixes a regression introduced in WeeChat 3.7 by commit
0f67f55098.
2022-10-20 20:19:37 +02:00
Sébastien Helleu 693c5e64a7 doc/faq: remove mention of obsolete WeeChat versions 2022-10-19 23:40:12 +02:00
Sébastien Helleu 4d645fcdc9 doc: fix language in links to other docs 2022-10-19 21:33:16 +02:00
Sébastien Helleu d79b106361 python: remove functions defined for Python < 2.6 2022-10-16 09:00:37 +02:00
Sébastien Helleu 319abf4fd0 python: remove support of Python 2.x 2022-10-15 22:56:06 +02:00
Sébastien Helleu 7a544d5fcf tests: ignore pylint error unnecessary-pass 2022-10-15 22:01:33 +02:00
Sébastien Helleu 56dbd871ea api: do not expect any return value in callbacks change/delete of config_new_option (scripting API) 2022-10-15 21:46:00 +02:00
Sébastien Helleu a1057c9a03 tests: add tests on config functions (scripting API) 2022-10-15 21:31:45 +02:00
Trygve Aaberge ec11126246 python: Fix return types for config option callbacks
I erroneously typed the return types for these to int in commit
e0c117e14, but they should be None.
2022-10-14 23:00:33 +02:00
Sébastien Helleu f9dd5ee89b core: add contributor (issue #1836) 2022-10-14 22:48:49 +02:00
Sébastien Helleu e3bbe2b5be core: update ChangeLog 2022-10-14 22:47:39 +02:00
Latchezar Tzvetkoff 8765eb3b71 Allow terminal title to be left unchanged.
Fixes #1835.
2022-10-14 22:42:21 +02:00
Sébastien Helleu 6619c421aa irc: escape backslashes in raw buffer (closes #1838) 2022-10-12 21:43:03 +02:00
Sébastien Helleu 7d2e8b9143 core: allow command /toggle to create option before setting the value, if allowed in the section (closes #1837) 2022-10-12 21:29:38 +02:00
Sébastien Helleu f97b74cae8 core: fix context info in buffers with free content (closes #1832) 2022-10-10 20:24:58 +02:00
Trygve Aaberge 6096350618 python: Include script examples in function docstring
This makes it possible to see how functions are used without having to
go to the web page. It's especially useful to see the types of the
callback functions.
2022-10-09 19:01:16 +02:00
Sébastien Helleu 7122b46baf Version 3.8-dev 2022-10-09 08:34:22 +02:00
Sébastien Helleu 484f679e60 Version 3.7 2022-10-09 08:06:53 +02:00
Trygve Aaberge fdb1ff3781 tests: Use LONGS_EQUAL for version number tests
util_version_number returns an int, but BYTES_EQUAL only compares the
last byte of the int, so it wouldn't test the rest of the int.

I see other tests for functions returning an int use LONGS_EQUAL, so
that seems correct to use.
2022-10-08 18:13:00 +02:00
Sébastien Helleu 193aa0448f core: fix compilation warning on isdigit function 2022-10-08 12:18:09 +02:00
Sébastien Helleu 3932cf5a00 xfer: add missing include of netinet/in.h
This fixes compilation on FreeBSD 13.0.
2022-10-08 12:11:12 +02:00
Sébastien Helleu 8555cf465e debian: update changelog 2022-10-08 11:52:44 +02:00
Sébastien Helleu 11f0d57dfd debian: bump Standards-Version to 4.6.1.0 2022-10-08 11:52:14 +02:00
Nils Görs 1fd5dd4c34 doc: update German documentation 2022-10-06 15:02:08 +02:00
Sébastien Helleu 1fec7e8856 core: fix page scroll in bare display (closes #1830) 2022-10-05 20:33:35 +02:00
Trygve Aaberge 236d22e364 python: Include constant values in python stub
This is useful for two reasons:

1. When running unit tests for a script weechat needs to be mocked. By
   having the constant values available in the stub file, they can be
   loaded from that, instead of having to define the constants manually
   for the mock.

2. If you log a constant value you have to look up what it means. This
   makes it easier, in the same vein as PR #1824.
2022-10-02 20:25:17 +02:00
Sébastien Helleu 4d3a3c67ac irc: set local variable "filter" when doing /server raw xxx with raw buffer already opened (closes #1448) 2022-10-01 17:06:31 +02:00
Sébastien Helleu ae61137216 trigger: add variable ${tg_hook_type} (closes #1765) 2022-09-30 21:32:27 +02:00
Trygve Aaberge 6bb4bed8bb doc/api: Fix config_new_option types for non English docs
Only English was changed in commit 197a7a01e.
2022-09-30 07:53:37 +02:00
Sébastien Helleu 92cdcee8f6 api: change type of argument object_id in upgrade_new callback from string to integer (in scripts) 2022-09-29 21:38:04 +02:00
Sébastien Helleu b2b110f1a3 api: change type of argument remaining_calls in hook_timer callback from string to integer (in scripts) 2022-09-29 21:21:01 +02:00
Trygve Aaberge 89400cbf7a doc/api: Remove unnecessary cast in Python example
The highlight argument is already an int, so no point in casting it.
2022-09-29 17:13:19 +02:00
Trygve Aaberge e0c117e14f doc/api: Add types for Python callbacks 2022-09-29 17:13:19 +02:00
Sébastien Helleu b978de5f84 debian: remove ubuntu/xenial patch (distro not supported any more)
As zstd is too old in ubuntu/xenial (0.5.1 while min version is 0.8.1), this
distro is not supported any more.
2022-09-29 16:04:58 +02:00
Sébastien Helleu fd43ad6387 core: fix compilation with zstd < 1.4.0
Note: zstd ≥ 0.8.1 is now required to compile WeeChat.
2022-09-29 15:59:01 +02:00
Sébastien Helleu 009a7821b1 doc: update German auto-generated file 2022-09-29 11:07:38 +02:00
Nils Görs 5cfcec7212 doc: update German documentation 2022-09-29 11:06:13 +02:00
Nils Görs c6671fc9db core: update German translations 2022-09-29 11:04:56 +02:00
Sébastien Helleu 8295ea6da8 doc/user: remove tag "translation missing" in French user's guide 2022-09-29 09:47:50 +02:00
Sébastien Helleu 9817372553 doc/user: add chapter on log file rotation/compression 2022-09-29 09:46:43 +02:00
Sébastien Helleu 486df38a8d php: add missing arginfo_weechat_string_parse_size in legacy arginfo 2022-09-29 07:48:55 +02:00
Trygve Aaberge 76d4cc7e3f doc/api: Add values for hook_process constants
When logging this value I just see a number so I have to look up what it
means. Previously you would have to check the code or print the value of
each of these constants to see it. Seeing the value directly in the
documentation makes this much easier.
2022-09-28 21:42:21 +02:00
Sébastien Helleu 135960859d doc/api: add note about C API for constant WEECHAT_HOOK_PROCESS_CHILD (function hook_process) 2022-09-28 21:01:01 +02:00
Sébastien Helleu 9f62c4a842 doc/api: fix typo 2022-09-28 20:58:29 +02:00
Sébastien Helleu 7711ed95c5 logger: add options to rotate and compress log files (closes #314)
New options:

- logger.file.rotation_compression_level
- logger.file.rotation_compression_type
- logger.file.rotation_size_max
2022-09-28 20:52:59 +02:00
Sébastien Helleu 26e6fdc645 api: add function file_compress 2022-09-27 20:49:12 +02:00
Sébastien Helleu e7b6e8c60f api: restrict number to integer in function string_parse_size 2022-09-27 15:50:43 +02:00
Sébastien Helleu 4d74a89cfc api: add function string_parse_size 2022-09-27 15:50:43 +02:00
Nils Görs be6a29a596 doc: update German documentation 2022-09-27 10:56:11 +02:00
Sébastien Helleu 34c043453b irc: fix use of uninitialized variable ptr_nick 2022-09-26 21:21:27 +02:00
Sébastien Helleu 6f8aab186d doc: update German auto-generated file 2022-09-20 19:23:57 +02:00
Nils Görs 201b24a02a core: update German translations 2022-09-20 19:10:13 +02:00
Sébastien Helleu 01cf98e8fb core: add key alt+backspace, change behavior of key ctrl+w (closes #559)
The key ctrl+w now deletes one word until whitespace.

The new key alt+backspace deletes one word (same behavior as ctrl+w in previous
releases).
2022-09-18 23:26:49 +02:00
Sébastien Helleu d7c0e896b2 core: fix style in ChangeLog 2022-09-18 17:44:55 +02:00
Sébastien Helleu 389f9f436b trigger: escape arguments with double quotes in output of /trigger input|output|recreate (closes #190) 2022-09-18 17:44:05 +02:00
Sébastien Helleu fe62d93dd0 build: update version of Debian/Ubuntu distros in examples 2022-09-18 14:39:36 +02:00
Sébastien Helleu d5c285f0a6 build: remove patches for Debian/Raspbian Stretch 2022-09-18 14:39:02 +02:00
Sébastien Helleu a00edcf50e tests: add tests on filter functions 2022-09-17 18:56:35 +02:00
Sébastien Helleu be7380f9b3 core: fix order of filters after renaming a filter (issue #1695) 2022-09-17 16:01:02 +02:00
Sébastien Helleu 5284921701 irc: fix message when disconnecting from server in case of high lag when server option autoreconnect is off (closes #1708) 2022-09-17 12:12:06 +02:00
Sébastien Helleu 36d2e7427e core: fix wrong terminal title on terminal resize (closes #1702) 2022-09-17 11:56:03 +02:00
Sébastien Helleu 0df582c7c1 core: sort filters by name (closes #1695) 2022-09-17 11:07:22 +02:00
Sébastien Helleu a99fc17d40 spell: allow special dict value "-" to disable spell checking on a specific buffer (closes #1699) 2022-09-17 10:44:21 +02:00
Sébastien Helleu 2b2ba62600 doc/api: add version 3.7 for priority in function hook_line 2022-09-17 07:52:39 +02:00
Sébastien Helleu 21683def12 doc: update German auto-generated file 2022-09-16 21:06:33 +02:00
Sébastien Helleu 96c22c41ba api: add support of priority in function hook_line (closes #1821) 2022-09-16 21:05:51 +02:00
Nils Görs ba27ec8d65 core: update German translations 2022-09-16 08:23:27 +02:00
Sébastien Helleu c6d8b54459 irc: add option irc.look.display_pv_nick_change 2022-09-15 20:31:06 +02:00
Sébastien Helleu 82f59d2a98 doc: update auto-generated files 2022-09-11 16:30:55 +02:00
Nils Görs 731f7e4243 core: update German translations 2022-09-11 16:25:17 +02:00
Ivan Pešić 2178440b7c core: Update Serbian translation
Includes documentation update.
2022-09-11 11:50:35 +02:00
Sébastien Helleu 57af62c1c0 doc/api: move function hook_completion in chapter on hook priority 2022-09-11 11:45:02 +02:00
Sébastien Helleu 742773e070 doc/api: update chapter on hook priority 2022-09-11 10:52:25 +02:00
Sébastien Helleu ac646da4fb doc/api: update note about priority in hook functions 2022-09-11 09:50:47 +02:00
Sébastien Helleu 9cb68b13a9 irc: replace chars "\01" by spaces in CTCP replies (closes #1819)
This prevents any attack due to an external security issue in the Linux
netfilter implementation (nf_conntrack_irc).

See: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-2663
2022-09-10 13:43:45 +02:00
Sébastien Helleu 5070a6330c xfer: use larger buffer for IP address
This removes a gcc warning about a too small buffer.
2022-09-09 19:20:41 +02:00
Sébastien Helleu d5cbd6c49a irc: fix display of message 350 (whois, gateway) (closes #1815) 2022-09-05 22:12:17 +02:00
Sébastien Helleu 2a32456f19 tests: add missing include of string.h 2022-09-05 20:49:59 +02:00
Sébastien Helleu b0bf2fbc97 core: remove debug print 2022-09-03 22:38:12 +02:00
Sébastien Helleu e8524ea2c4 xfer: fix DCC file receive on Termux (closes #1811)
This fixes such error displayed on Termux when receiving a DCC file:

xfer: invalid address "96747949": error 8 hostname nor servname provided, or not known
2022-09-03 22:29:46 +02:00
Sébastien Helleu 7cf9399616 core: rename argument "length" to "bytes" in function string_strndup (header files)
Argument was already renamed in commit f8915129bf
but it was incomplete (missing header files).
2022-08-31 22:51:47 +02:00
Sébastien Helleu 68ecfb16a1 irc: fix target buffer of generic errors when they contain a target nick (closes #1814) 2022-08-29 22:45:28 +02:00
Sébastien Helleu f5604510cd script: use API function weechat_crypto_hash_file in script_repo_sha512sum_file 2022-08-16 21:40:02 +02:00
Sébastien Helleu 0090695f7d api: add function crypto_hash_file 2022-08-16 21:33:50 +02:00
Sébastien Helleu e614410815 irc: fix extract of isupport value when it is last in list and without value (closes #1807) 2022-08-15 18:14:03 +02:00
Sébastien Helleu fb14e67364 buflist: improve help on option buflist.look.enabled 2022-08-15 14:43:25 +02:00
Sébastien Helleu a31de83a3c core: move line from "New features" to "Bug fixes" 2022-08-15 13:11:08 +02:00
Sébastien Helleu b26fb7fba6 core: add new option trigger.color.identifier in ChangeLog 2022-08-15 13:10:29 +02:00
Sébastien Helleu 0f67f55098 trigger: add elapsed time for trigger execution on monitor buffer when trigger debug is set (closes #1806) 2022-08-15 12:44:16 +02:00
Sébastien Helleu 1ce2d7f56d trigger: fix error on monitor buffer creation when trigger debug is >= 1 and monitor buffer is closed 2022-08-15 12:42:26 +02:00
Sébastien Helleu 223eefef67 irc: display ACCOUNT command in private buffers 2022-08-13 22:58:37 +02:00
Sébastien Helleu aee3da5452 irc: add options and display SETNAME command in channels and private buffers (closes #1805)
New options:

- irc.color.message_setname
- irc.look.smart_filter_setname
2022-08-13 22:47:22 +02:00
Sébastien Helleu d3b84eaf6c irc: display CHGHOST command in private buffers 2022-08-13 22:16:46 +02:00
Sébastien Helleu ac50a5dda7 doc: update auto-generated files 2022-08-13 19:07:56 +02:00
Sébastien Helleu a36fa2faea logger: improve help on option logger.file.auto_log 2022-08-13 19:02:55 +02:00
Sébastien Helleu 1e0d59a5e6 irc: add missing tag "irc_numeric" in all numeric IRC commands (closes #1804) 2022-08-13 17:34:43 +02:00
Sébastien Helleu 06b6f457d9 tests: add tests on dynamic string functions with NULL string 2022-08-13 14:38:08 +02:00
Sébastien Helleu 57c0a82557 core: fix CMake warning in Python detection 2022-08-13 14:37:00 +02:00
Sébastien Helleu dd65938a85 doc: update German auto-generated file 2022-08-09 23:35:57 +02:00
Nils Görs ff417f88ea core: update German translations 2022-08-08 10:22:56 +02:00
Nils Görs 2857b7b4b7 core: update German translations 2022-08-08 10:08:44 +02:00
Sébastien Helleu a8080505f3 tests: add tests on function xfer_file_search_crc32 2022-08-08 08:06:23 +02:00
Sébastien Helleu bbe8afcbd4 xfer: move and rename function xfer_filename_crc32 to xfer-file.c 2022-08-08 06:57:39 +02:00
Sébastien Helleu 25f25073b9 irc: fix parsing of messages with trailing spaces and no trailing parameter (closes #1803) 2022-08-07 23:28:11 +02:00
Sébastien Helleu d068fe0de5 core: add option -save in command /upgrade (closes #1630) 2022-08-07 16:48:12 +02:00
Sébastien Helleu d91cddc909 xfer: disconnect all active DCC chats and files on /upgrade 2022-08-07 11:15:03 +02:00
Sébastien Helleu 9fd71067e7 xfer: fix refresh of xfer buffer after /upgrade 2022-08-07 11:11:10 +02:00
Sébastien Helleu 441d532f15 relay: fix refresh of relay buffer after /upgrade 2022-08-07 10:04:47 +02:00
Sébastien Helleu 57c9f371bc relay: use enum type for websocket status in client 2022-08-07 09:31:24 +02:00
Sébastien Helleu 4fa278c2c3 doc: update German auto-generated file 2022-08-05 22:34:40 +02:00
Nils Görs 0edae0d93d Merge branch 'master' of https://github.com/weechat/weechat 2022-08-05 09:49:59 +02:00
Nils Görs fbc2e86d0e core: update German translations 2022-08-05 09:49:27 +02:00
Sébastien Helleu 06622b5acb doc: update German auto-generated file 2022-08-04 22:14:28 +02:00
Nils Görs 9bb903cbc8 core: update German translations 2022-08-04 12:46:04 +02:00
Sébastien Helleu e9b8c9b6aa ci: fix Ubuntu code name when applying Debian patch 2022-08-03 22:05:45 +02:00
Sébastien Helleu b0eb3c9347 ci: remove macOS 10.15, add macOS 12 in CI 2022-08-03 21:57:44 +02:00
Sébastien Helleu 2102ef742b core: update ChangeLog 2022-08-03 21:56:55 +02:00
Sébastien Helleu 5d51e7286c ci: remove tests on macOS 10.15 2022-08-03 21:52:47 +02:00
Sébastien Helleu fe892460ba tests: fix pylint errors 2022-08-03 21:51:51 +02:00
Sébastien Helleu 0bb7a34748 doc: fix pylint errors 2022-08-03 21:51:51 +02:00
Sébastien Helleu ee1efedbd7 ci: switch from Ubuntu 20.04 to 22.04 2022-08-03 21:51:51 +02:00
Emir SARI 492a68b3de Update Turkish translations
Fixes plural structure to comply with gettext Turkish specification.
2022-08-03 21:20:31 +02:00
Sébastien Helleu 2bd3d32f0d irc: mention how to remove capability in /help cap 2022-08-03 21:18:17 +02:00
Sébastien Helleu 6b28cc001f tests: fix _ast_num in script generator 2022-08-02 23:52:31 +02:00
Sébastien Helleu 23707a12ea tests: fix scripting API tests with Python 3.8 2022-08-02 21:35:33 +02:00
Sébastien Helleu a7364d055b tests: disable pylint errors in testapi.py 2022-08-02 21:21:07 +02:00
Sébastien Helleu 4d4a6f99f9 tests: add tests on hdata functions (scripting API) 2022-08-02 21:11:45 +02:00
Sébastien Helleu a4c73b9ae7 tests: fix assignment in tcl script generator 2022-08-02 20:55:59 +02:00
Sébastien Helleu 3bc0453cae tests: fix assignment in perl script generator 2022-08-02 20:55:36 +02:00
Sébastien Helleu 2ed281af02 tests: use double quotes instead of simple quotes in ruby script generator
This allows to use escaped chars in strings.
2022-08-02 20:54:35 +02:00
Sébastien Helleu 05abbac297 tests: add subscript in script generator 2022-08-02 20:52:40 +02:00
Sébastien Helleu 237c37e719 tests: fix unary op in script generator 2022-08-02 20:51:40 +02:00
Sébastien Helleu 39f2b2f7b9 ruby: fix function hdata_get_string 2022-08-02 20:50:48 +02:00
Sébastien Helleu 8f6395e889 guile: fix function hdata_get_string 2022-08-02 20:50:24 +02:00
Sébastien Helleu 53df45de48 php: fix function hdata_compare 2022-08-02 20:49:35 +02:00
Sébastien Helleu bcb8647aa4 scripts: fix issue with long interval in function hook_timer
Affected plugins: python, ruby, lua, tcl, guile, javascript, php.
2022-08-01 22:18:38 +02:00
Sébastien Helleu b1404b0277 scripts: fix issue with year ≥ 2038 in functions print_date_tags and print_y_date_tags
Affected plugins: python, lua, tcl, guile, javascript.
2022-08-01 21:03:44 +02:00
Sébastien Helleu 1514570ff0 scripts: fix issue with year ≥ 2038 in function infolist_new_var_time
Affected plugins: python, lua, tcl, guile, javascript.
2022-08-01 20:32:09 +02:00
Sébastien Helleu 2475ba43a3 javascript: fix return of long value in functions infolist_time, hdata_long and hdata_time 2022-08-01 20:13:01 +02:00
Sébastien Helleu d2c2f9e6cd tests: fix run of Guile test script 2022-08-01 20:02:35 +02:00
Sébastien Helleu d8abdc57ee core: fix styles in ChangeLog 2022-07-31 09:59:18 +02:00
Sébastien Helleu e77ea9dc26 buflist: add variable "${hotlist_priority_number}" (integer version of "${hotlist_priority}") 2022-07-31 09:58:29 +02:00
Emir SARI 324f0aaa2d Update Turkish translations 2022-07-30 07:53:40 +02:00
Nils Görs ae273b2714 core: update German translations 2022-07-28 13:45:27 +02:00
Sébastien Helleu 06a05fd674 doc: update German auto-generated files 2022-07-27 22:07:50 +02:00
Sébastien Helleu a50143fdf8 irc: display an error message when using command /dcc without xfer plugin loaded 2022-07-27 22:07:24 +02:00
Sébastien Helleu 56b82fb115 xfer: fix crash when closing DCC chat buffer 2022-07-27 22:06:48 +02:00
Nils Görs 9b4f52ac13 core: update German translations 2022-07-26 13:45:37 +02:00
Sébastien Helleu 906ac1d1e1 relay: exit function relay_irc_recv if params can not be allocated 2022-07-24 23:02:09 +02:00
Sébastien Helleu 2a145d7cc1 core: remove dead assignments 2022-07-24 23:01:38 +02:00
Sébastien Helleu 68ad24f2df core: add option weechat.look.highlight_disable_regex and buffer property "highlight_disable_regex" (closes #1798) 2022-07-24 22:43:48 +02:00
Sébastien Helleu 1796634d83 core: use dynamic string in function gui_bar_item_get_value 2022-07-24 21:18:26 +02:00
Sébastien Helleu a37c46c21e doc: use non-breaking spaces before links to notes 2022-07-22 17:24:44 +02:00
Sébastien Helleu d43b9e99c1 doc/scripting: add missing fields "paramN" and "num_params" in output of "irc_message_parse"
These new fields were added in version 3.4 with major improvements of the IRC
message parser.
2022-07-22 17:06:49 +02:00
Sébastien Helleu d5c4342bce irc: fix display of TOPIC message with an empty trailing parameter 2022-07-21 11:16:50 +02:00
Sébastien Helleu 569c93c6fb irc: fix display of QUIT message with an empty trailing parameter (closes #1797)
The regression was introduced with the new way to parse IRC message parameters,
in version 3.4.
2022-07-21 11:10:29 +02:00
Sébastien Helleu 96ed471261 relay: fix parsing of IRC messages received from clients (closes #1796)
The IRC parser improved in version 3.4 is now used to parse command
parameters (variables "num_params" and "paramN" in output of parser function).
2022-07-21 10:20:10 +02:00
Sébastien Helleu 6b59fc8557 irc: use API function string_rebuild_split_string in irc_protocol_string_params 2022-07-20 13:20:07 +02:00
Sébastien Helleu b7441bd7a3 api: add arguments "index_start" and "index_end" in function string_rebuild_split_string 2022-07-20 13:16:35 +02:00
Sébastien Helleu 62e68f965f api: rename function string_build_with_split_string to string_rebuild_split_string 2022-07-20 12:14:40 +02:00
Sébastien Helleu 0440309cee irc: fix duplicated channels in autojoin option when autojoin_dynamic is enabled (closes #1795) 2022-07-16 14:05:48 +02:00
Sébastien Helleu e057c16b36 api: add info "uptime_current"
This info returns time duration between the start of the current WeeChat
process and now (so upgrades with /upgrade are ignored).
2022-07-10 13:02:35 +02:00
Sébastien Helleu c4cade3550 Version 3.7-dev 2022-07-10 09:41:57 +02:00
Sébastien Helleu e5a159c74f Version 3.6 2022-07-10 09:18:05 +02:00
Sébastien Helleu b74aa71442 debian: update changelog 2022-07-09 09:32:17 +02:00
Nils Görs 8fb7987633 doc: update German documentation 2022-07-09 00:35:09 +02:00
Sébastien Helleu bb76a5d266 Version 3.6-rc1 2022-07-06 23:02:12 +02:00
Sébastien Helleu db21a0da90 doc: update Serbian auto-generated files 2022-07-06 22:54:15 +02:00
Ivan Pešić 7508337240 core: Serbian message translation fixes
Several fixes.
2022-07-06 22:53:59 +02:00
Sébastien Helleu 98375b8ffc doc: update Serbian auto-generated files 2022-07-05 21:19:36 +02:00
Sébastien Helleu d6d83474c7 doc: remove extra space in Serbian translation 2022-07-05 21:19:17 +02:00
Ivan Pešić 43bafa59d8 core/doc: Update Serbian translation 2022-07-05 21:15:06 +02:00
Sébastien Helleu e8c255770f doc: fix display of literal blocks
This fixes:

- height of lines in literal blocks (all browsers)
- literal blocks in Japanese docs (Firefox)
2022-07-04 23:42:36 +02:00
Sébastien Helleu 59a4142b00 doc: remove font "Noto Color Emoji"
This allows the same render for north east arrow on all browsers.
2022-07-03 21:51:01 +02:00
Sébastien Helleu dbc59965ac doc: force color-scheme to dark/light according to the theme
This allows to have dark scroll bars in Chrome-based browsers.
2022-07-03 21:46:02 +02:00
Sébastien Helleu 6ffebec1a6 tests: add tests on IRC messages 524/704/705/706 (issue #1772) 2022-07-02 21:11:32 +02:00
Sébastien Helleu 1c7b431bc8 api: run hook_print callback also on empty messages 2022-07-02 21:10:48 +02:00
Sébastien Helleu 749bc26926 irc: remove unneeded translation marker (issue #1772) 2022-07-02 20:41:39 +02:00
Sébastien Helleu 9ac9dc7023 core: update ChangeLog (issue #1772) 2022-07-02 20:34:39 +02:00
Sébastien Helleu bbf55b734c irc: start at parameter #2 in callback of messages 524/704/705/706 (issue #1772) 2022-07-02 20:34:36 +02:00
Sébastien Helleu 2095887be9 irc: fix comments (issue #1772) 2022-07-02 20:34:34 +02:00
Valentin Lorentz fa05f75b74 irc: add ERR_HELPNOTFOUND (issue #1772) 2022-07-02 20:34:31 +02:00
Valentin Lorentz a96d2c28fb irc: strip topic name when formatting RPL_HELPSTART/RPL_HELPTXT/RPL_ENDOFHELP (issue #1772) 2022-07-02 20:34:27 +02:00
Sébastien Helleu 4a115fdedd core: update ChangeLog 2022-06-30 20:37:11 +02:00
Sébastien Helleu 3a0e54d236 php: fix compilation warning about unused arguments 2022-06-30 20:35:59 +02:00
Adam Saponara 24fe646c4e php: Deprecate forget_* functions in PHP 8+
These functions don't work with PHP 8+ and also don't seem to be
necessary anymore when reloading scripts.
2022-06-30 20:33:45 +02:00
Adam Saponara 8cf5848116 php: Add stubs and generate arginfo for PHP API
This was preventing the PHP plugin from working if PHP was compiled
with `--enable-debug`. With this patch, `--enable-debug` builds of
PHP should work.
2022-06-30 20:33:13 +02:00
Adam Saponara 3e1a5b4447 php: Adjust API for PHP 8.2 2022-06-30 20:32:20 +02:00
Sébastien Helleu 1fb82b4062 doc/quickstart: add command /autojoin and server option autojoin_dynamic 2022-06-28 23:00:43 +02:00
Sébastien Helleu d4dc1467c9 doc/scripting: add arrow and open external links in new tab 2022-06-27 00:07:41 +02:00
Sébastien Helleu c64bdeaed3 doc/relay: add arrow and open external links in new tab 2022-06-26 23:57:50 +02:00
Sébastien Helleu 37ed420108 doc/quickstart: add arrow and open external links in new tab 2022-06-26 23:54:07 +02:00
Sébastien Helleu b825ce49c2 doc/api: add arrow and open external links in new tab 2022-06-26 23:47:05 +02:00
Sébastien Helleu 33bf2dec43 doc/faq: add arrow and open external links in new tab 2022-06-26 23:29:46 +02:00
Sébastien Helleu 0fe3661eab doc/dev: add arrow and open external links in new tab 2022-06-26 22:41:56 +02:00
Sébastien Helleu aee4d283c9 doc/user: add arrow and open external links in new tab 2022-06-26 22:23:54 +02:00
Sébastien Helleu d3cdccc274 doc/user: replace TOR by Tor 2022-06-26 16:38:05 +02:00
Sébastien Helleu 42a0a19828 doc/user: add a chapter on supported IRCv3 extensions 2022-06-25 08:53:18 +02:00
Sébastien Helleu 8788fcedc8 irc: update URLs to IRCv3 specifications 2022-06-25 08:53:03 +02:00
Sébastien Helleu 84e6e84347 doc: remove underline and change color for links 2022-06-24 18:59:42 +02:00
Sébastien Helleu 38efd63012 doc: fix generation of python stub 2022-06-24 07:46:35 +02:00
Sébastien Helleu 031819173b doc: change formatting in asciidoctor tables 2022-06-23 20:43:46 +02:00
Sébastien Helleu de3d670ca7 doc: update German auto-generated file 2022-06-21 21:24:43 +02:00
Nils Görs d2394f6432 core: update German translations 2022-06-20 13:46:19 +02:00
Sébastien Helleu 2c4bad8120 core: add trailing slashes in URLs 2022-06-18 16:18:09 +02:00
Sébastien Helleu 8ac67ff540 doc: add trailing slashes in URLs 2022-06-18 16:05:11 +02:00
Sébastien Helleu b8ef7e2f65 doc/user: add missing server option "autojoin_dynamic" 2022-06-18 12:49:03 +02:00
Sébastien Helleu 21ca625f10 irc: update translations 2022-06-18 10:40:04 +02:00
Sébastien Helleu 9644df21ad irc: add example with /allchan in /help autojoin 2022-06-17 21:05:12 +02:00
Sébastien Helleu 17ae43aa03 irc: rename option save to apply in command /autojoin 2022-06-15 22:11:08 +02:00
Sébastien Helleu 487406cfd9 doc/user: fix column size 2022-06-10 12:41:13 +02:00
Nils Görs cd4db84feb doc: update German documentation 2022-06-10 09:16:39 +02:00
Sébastien Helleu 55a796f30b doc/user: add chapter on custom bar items 2022-06-07 21:04:34 +02:00
Sébastien Helleu d81813cd6a doc/faq: mention command /autojoin to edit the "autojoin" server option 2022-06-06 23:53:25 +02:00
Sébastien Helleu 2006c2c940 doc: update German auto-generated files 2022-05-31 08:19:09 +02:00
Sébastien Helleu f3d2f9bbe1 doc/user: fix links to commands 2022-05-30 22:11:40 +02:00
Nils Görs 2c61a24413 core: update German translations 2022-05-30 10:13:43 +02:00
Sébastien Helleu 10501a34fe core: fix style in ChangeLog 2022-05-28 10:24:41 +02:00
Sébastien Helleu 99dcdae5b0 core: update translations 2022-05-27 22:47:46 +02:00
Sébastien Helleu 86f110db98 core: add completion of conditions and content in commands /item add and /item addreplace (issue #808) 2022-05-27 22:16:58 +02:00
Sébastien Helleu a1a9303b14 trigger: fix completion of command /trigger add when there are spaces in the following arguments 2022-05-27 22:16:58 +02:00
Sébastien Helleu 5ef4731c62 core: add examples in /help item (issue #808) 2022-05-27 22:16:55 +02:00
Sébastien Helleu 007958e82c core: add display conditions in custom bar items (issue #808) 2022-05-27 22:16:50 +02:00
Sébastien Helleu 5876a8335f trigger: fix memory leak in command /trigger addinput 2022-05-27 17:53:56 +02:00
Sébastien Helleu cefed25912 core: add command /item (closes #808)
This allows to create custom bar items with evaluated content (like the script
text_item.py does).
2022-05-27 17:53:50 +02:00
Nils Görs 79438c72e1 core: update German translations 2022-05-12 08:17:19 +02:00
Sébastien Helleu d99fe0bc76 core: allow to remove multiple filters at once with command /filter del 2022-05-11 21:50:53 +02:00
Sébastien Helleu 540ff62c60 doc/relay: add missing version 3.5 in command "init" 2022-05-09 18:11:43 +02:00
Sébastien Helleu 3e8580b5e5 doc/faq: rename option autojoin_record to autojoin_dynamic 2022-04-29 08:21:10 +02:00
Sébastien Helleu 0f1f9bc87f doc: update German auto-generated file 2022-04-25 13:31:35 +02:00
Nils Görs f0572474d4 core: update German translations 2022-04-25 08:28:35 +02:00
Sébastien Helleu d4d8117461 irc: remove channel from autojoin option when manually closing a buffer 2022-04-24 22:09:19 +02:00
Sébastien Helleu 4d8df89bb5 irc: fix add of channel to autojoin option when joining a channel with a buffer still opened 2022-04-24 22:09:19 +02:00
Sébastien Helleu b7f3127bf8 api: allow to catch multiple signals in functions hook_signal and hook_hsignal (closes #1780) 2022-04-24 22:09:15 +02:00
Sébastien Helleu f69ef840e0 doc/api: remove word "and" in text with updated versions 2022-04-24 17:36:39 +02:00
Sébastien Helleu e46d2567ea core: fix style in ChangeLog 2022-04-24 10:31:28 +02:00
Sébastien Helleu 8be5759ef7 core: update ChangeLog 2022-04-24 10:30:47 +02:00
Sébastien Helleu 78317f8b55 core: move detailed list of hooks from command "/plugin listfull" to "/debug hooks <plugin>" 2022-04-24 10:28:09 +02:00
Sébastien Helleu d16640130e core: add functions to get short description of hooks 2022-04-24 10:06:54 +02:00
Sébastien Helleu 95cf2aa956 doc: update auto-generated files with commands 2022-04-23 22:10:12 +02:00
Sébastien Helleu dc367a83f6 core: add missing options "dirs" and "hooks" in description of /debug command arguments 2022-04-23 19:13:16 +02:00
Sébastien Helleu 2a2428902b trigger: check that buffer notify is not "none" to run command of default trigger beep 2022-04-23 14:15:41 +02:00
Sébastien Helleu 51ed9ec93e core: add case conversion in evaluation of expressions (closes #1778) 2022-04-18 13:46:16 +02:00
Nils Görs 46033a7ee9 doc: update German documentation 2022-04-18 10:58:35 +02:00
Sébastien Helleu a2e43a732e core: update ChangeLog (closes #1700) 2022-04-18 09:55:55 +02:00
Sébastien Helleu 674f52bf58 core: add bar item "spacer" 2022-04-18 09:52:01 +02:00
Sébastien Helleu 0af960dbde core: use dynamic string functions to build bar window content 2022-04-17 09:20:46 +02:00
Sébastien Helleu 07b54a9932 buflist: fix memory leak when reading config and changing option buflist.look.sort 2022-04-16 20:24:24 +02:00
Sébastien Helleu 9fceaa465d doc/user: add install of binary package with brew on macOS 2022-04-09 19:36:11 +02:00
Ivan Pešić 94555e043c doc: Update Serbian translation 2022-04-09 10:45:27 +02:00
Sébastien Helleu f02b172716 core: add CVE id in ChangeLog 2022-04-03 21:13:05 +02:00
Sébastien Helleu 9b1184e180 ci: install package ruby-pygments.rb 2022-03-30 21:54:36 +02:00
Sébastien Helleu f39553152f relay: fix save of channels when JOIN/PART are received from an IRC relay client (closes #1771) 2022-03-30 21:41:14 +02:00
Sébastien Helleu 89f49040f3 debian: add dependency on ruby-pygments.rb 2022-03-29 21:02:42 +02:00
Sébastien Helleu 95d0b89d1d doc/user: add chapter on containers 2022-03-28 23:18:44 +02:00
Sébastien Helleu 01f9bcbaba core: fix bad window size on startup with some terminals like kitty (closes #1769) 2022-03-27 17:19:39 +02:00
Sébastien Helleu 6fb6fad7e9 Version 3.6-dev 2022-03-27 16:04:59 +02:00
Sébastien Helleu 0e6497612c Version 3.5 2022-03-27 15:13:48 +02:00
Sébastien Helleu a794bf39bb debian: update changelog 2022-03-27 09:49:50 +02:00
Sébastien Helleu 5f543f26cc core: update .mailmap 2022-03-24 21:04:21 +01:00
Sébastien Helleu 0d8ced6c32 doc: use unicode symbol for greater-than or equal to 2022-03-23 21:12:02 +01:00
Sébastien Helleu db28e2133d doc: update Serbian auto-generated files 2022-03-22 21:18:32 +01:00
Ivan Pešić bab175f5b4 core: update Serbian translation 2022-03-22 21:18:03 +01:00
Ivan Pešić d3b42fae83 doc: update Serbian translations 2022-03-22 21:18:03 +01:00
Sébastien Helleu ef41998179 core: use unicode symbol for greater-than or equal to in ChangeLog 2022-03-21 23:02:35 +01:00
Sébastien Helleu 05e65cdd31 Version 3.5-rc1 2022-03-20 18:11:25 +01:00
Sébastien Helleu 872ff1cc6d irc: fix memory leak in command /autojoin addraw when channels are missing 2022-03-19 10:17:32 +01:00
Sébastien Helleu 8123cb3e0b irc: ensure old_autojoin and ptr_autojoin are not NULL before comparing them 2022-03-19 10:15:16 +01:00
Sébastien Helleu 15e11ecc0c core: fix line too long 2022-03-17 21:17:34 +01:00
Trygve Aaberge 827db6dc31 core: Fix regex for constants in the Python stub generator
In Python raw strings, newlines can't be escaped with a backslash. If
you do that, both the backslash and the newline become part of the
string. This meant that the regex for constants both started and ended
with a newline which caused every other constant to be skipped.
2022-03-17 21:16:45 +01:00
Sébastien Helleu 44e0414970 core: add version 3.4.1 2022-03-14 08:39:24 +01:00
Sébastien Helleu 9a19cc5d59 core: update latest stable version to 3.4.1 2022-03-14 08:35:24 +01:00
Nils Görs 3289bd2882 doc: update German documentation 2022-03-13 22:41:26 +01:00
Sébastien Helleu 6e75f93e1f doc/user: translate FreeBSD installation instructions (issue #1760) 2022-03-13 20:40:32 +01:00
Mateusz Piotrowski 13482b38d0 Add FreeBSD installation instructions 2022-03-13 20:38:57 +01:00
Sébastien Helleu 6004139098 core: set again TLS verification functions after GnuTLS options are changed (closes #1763)
When changing the options weechat.network.gnutls_ca_system or
weechat.network.gnutls_ca_user, the GnuTLS credentials are freed then allocated
again, but the verification function used to check the certificate on
connection is not set again.

As a consequence, any TLS connection is made without checking the certificate.

This regression was introduced in version 3.2, when the options were changed to
automatically load system certificates without having to give the path, and to
let user give an extra custom path with certificates.
2022-03-13 18:04:07 +01:00
Sébastien Helleu 116f533e0d doc: update German auto-generated files 2022-03-13 14:07:56 +01:00
Sébastien Helleu c943d3507f python: add function buffer_new_props in Python stub file 2022-03-13 14:07:22 +01:00
Sébastien Helleu 869279e9b6 tests: add tests on function gui_buffer_match_list 2022-03-13 14:03:23 +01:00
Sébastien Helleu 947ca33c14 tests: add tests on function gui_buffer_valid 2022-03-13 14:03:14 +01:00
Sébastien Helleu 44ec7e8cfa tests: add tests on functions gui_buffer_search_type and gui_buffer_search_notify 2022-03-13 13:49:18 +01:00
Sébastien Helleu 4629b17173 tests: add tests on functions gui_buffer_new and gui_buffer_new_props 2022-03-13 13:29:50 +01:00
Sébastien Helleu e5e3a9d2da api: add function buffer_new_props (closes #1759) 2022-03-13 10:35:29 +01:00
Sébastien Helleu fbbed9fbf7 core: add function gui_buffer_new_props (issue #1759)
This function allows to create a buffer and set properties via a hashtable,
before the signal "buffer_opened" is sent.
2022-03-13 10:35:29 +01:00
Sébastien Helleu 310b4dd2a0 tests: close xfer buffer after receiving some files 2022-03-13 10:34:56 +01:00
Sébastien Helleu 55f1655064 dev/scripting: fix typo 2022-03-12 20:50:25 +01:00
Sébastien Helleu 55aa40e087 doc/dev: add file test-irc-tag.cpp 2022-03-12 16:47:14 +01:00
Sébastien Helleu 68f395d433 doc/dev: add file irc-typing.c 2022-03-12 16:41:52 +01:00
Sébastien Helleu 22a36665e3 doc/dev: add file test-logger-backlog.cpp 2022-03-12 16:38:58 +01:00
Sébastien Helleu 65e08ffe07 core: update ChangeLog (issue #1761) 2022-03-12 16:11:08 +01:00
Sébastien Helleu 8781187771 doc/scripting: translate note about Tcl constant $::weechat::WEECHAT_NULL 2022-03-12 16:08:19 +01:00
Trygve Aaberge 197a7a01e4 scripts: allow null values in config_new_option
The plugin API function config_new_option accepts null as the
default_value and/or value however the scripting APIs (except for lua)
didn't allow sending null as a parameter value, so it was impossible to
use it this way. This allows sending a null value for these parameters.

Lua already supported sending in nil for these parameters and it works
as expected, so nothing is changed for this plugin.

For Guile you can now send in #nil, for JavaScript null or undefined,
for Perl undef, for PHP NULL, for Python None, for Ruby nil and for Tcl
$::weechat::WEECHAT_NULL.

In all of these languages except Tcl this is the special value
indicating a missing value. However Tcl only has one type, string, so it
doesn't have a null value. Therefore I created a constant with the value
`\uFFFF\uFFFF\uFFFFWEECHAT_NULL\uFFFF\uFFFF\uFFFF` which is used
instead. This is very unlikely to appear unintentionally. Using the
unicode code point \uFFFF was suggested on
https://wiki.tcl-lang.org/page/null.

I tested this with these scripts:
https://gist.github.com/trygveaa/f91977dde5d2876d502bf55fbf9b50cc
2022-03-12 16:00:38 +01:00
Sébastien Helleu 47e71a1bbd tests: close buffers of channels created for tests on irc_join_save_channels_to_autojoin 2022-03-12 15:20:45 +01:00
Emir SARI 3a4a9459e7 Update Turkish translations 2022-03-12 10:36:12 +01:00
Nils Görs cd6b83470e core: update German translations 2022-03-11 20:39:51 +01:00
Sébastien Helleu 3f9c46468c irc: add option "sort" in command /autojoin 2022-03-11 19:31:56 +01:00
Sébastien Helleu 9a286c65c6 tests: add missing include of string.h 2022-03-10 21:37:13 +01:00
Sébastien Helleu aadd0772fe irc: update translations 2022-03-10 21:26:26 +01:00
Sébastien Helleu bb03e18425 irc: display only one message in /autojoin command output 2022-03-10 21:12:46 +01:00
Sébastien Helleu 5d809df6ed tests: move include of tests/tests.h outside of extern "C" 2022-03-10 21:12:46 +01:00
Sébastien Helleu 74ba21a8c4 tests: add tests on verbose argument of irc join functions 2022-03-10 21:12:46 +01:00
Sébastien Helleu 02bdf854bc irc: fix add of same channel with and without key in the array list 2022-03-10 21:12:46 +01:00
Sébastien Helleu 8c66070136 irc: rename server option "autojoin_record" to "autojoin_dynamic" 2022-03-10 21:12:46 +01:00
Sébastien Helleu 9cfdb4a324 irc: add command /autojoin 2022-03-10 21:12:46 +01:00
Sébastien Helleu c1e65e8edd irc: add server option "autojoin_record" 2022-03-10 21:12:46 +01:00
Sébastien Helleu f81a0dc4d9 doc: fix syntax highlighting in Serbian docs 2022-03-07 21:46:33 +01:00
Sébastien Helleu d06f1e8486 guile: remove disabling of guile gmp allocator with Guile ≥ 3.0.8
This fixes the compilation warning:

weechat-guile.c: In function ‘weechat_plugin_init’:
weechat-guile.c:1270:5: warning: ‘scm_install_gmp_memory_functions’ is deprecated [-Wdeprecated-declarations]
2022-03-06 16:42:54 +01:00
Sébastien Helleu ffb6cc3208 tests: add tests on function irc_server_valid 2022-03-05 20:53:01 +01:00
Sébastien Helleu dc779b5179 tests: add tests on functions irc_server_search and irc_server_casesearch 2022-03-04 21:44:46 +01:00
Sébastien Helleu 7228262591 irc: fix display of message 901 (you are now logged out) (closes #1758) 2022-02-28 22:12:22 +01:00
Ivan Pešić e4f93a7f30 doc: Update Serbian documentation 2022-02-22 19:03:51 +01:00
Sébastien Helleu fd27faf899 tests: add tests on function logger_backlog_display_line 2022-02-21 20:17:01 +01:00
Sébastien Helleu 7486ea6dc1 logger: split function logger_backlog into two functions 2022-02-21 20:16:43 +01:00
Sébastien Helleu 9e9e252ff3 doc/relay: fix columns sizes in tables 2022-02-21 18:27:22 +01:00
Sébastien Helleu db368b5824 doc/scripting: fix column size in tables 2022-02-21 18:26:39 +01:00
Sébastien Helleu 214e3cb1c2 doc/user: fix style in tables 2022-02-21 18:26:11 +01:00
Nils Görs b4a14ef1dd doc: update German documentation 2022-02-21 08:58:00 +01:00
Sébastien Helleu 40ff9beb10 doc/dev: add table with list of components for git commit message 2022-02-20 17:31:25 +01:00
Trygve Aaberge d359e8135e doc/api: Add missing parameter to python prototype for config_new_section 2022-02-20 16:49:04 +01:00
Sébastien Helleu 8700e0bb36 scripts: auto-load scripts with supported extensions only (closes #1698) 2022-02-20 16:29:31 +01:00
Sébastien Helleu 601bd7e0b8 doc/user: update dependencies using versions from Debian Bullseye 2022-02-20 16:12:21 +01:00
Sébastien Helleu d3a9ce29fc doc/user: add missing dependency on ruby-pygments.rb to build doc 2022-02-20 09:09:54 +01:00
Sébastien Helleu f39c6a58d0 irc: replace calls to strndup by weechat_strndup 2022-02-19 16:34:36 +01:00
Sébastien Helleu 4068dc8da5 core: replace calls to strndup by string_strndup 2022-02-19 16:34:19 +01:00
Sébastien Helleu 7051c0fc2b tests: add tests on function string_strndup 2022-02-19 16:33:49 +01:00
Sébastien Helleu 7f8e5b892d core: call strdup in string_strndup if bytes equals strlen of string 2022-02-19 16:32:59 +01:00
Sébastien Helleu e0db08c782 debian: change dependency libargon2-0-dev to libargon2-dev (debian bug #1005703) 2022-02-19 10:18:38 +01:00
Sébastien Helleu 6fbfb2f476 core: update sentence about XDG directories in release notes 2022-02-15 07:12:38 +01:00
Sébastien Helleu a2bb57bf82 doc/api: add missing type for argument "count" in Python prototype of function ngettext 2022-02-14 07:25:22 +01:00
Sébastien Helleu ba7ff87d19 irc: fix parsing of message 223 (m_filter) sent by InspIRCd server (closes #1751) 2022-02-10 20:50:16 +01:00
Ivan Pešić d7c8b16c4f doc: Update Serbian documentation 2022-02-08 13:22:24 +01:00
Sébastien Helleu d0c857934b ruby: add detection of Ruby 3.1 2022-02-08 12:41:32 +01:00
Sébastien Helleu e8c59e1f5b core: fix style in ChangeLog 2022-02-05 10:04:25 +01:00
Sébastien Helleu ec86c33789 doc/user: add supported C++ compilers in dependencies 2022-02-01 20:33:17 +01:00
Sébastien Helleu 608f56020d core: search in message tags when tags are displayed with /debug tags 2022-01-30 13:33:21 +01:00
Sébastien Helleu 9259442dbf core: add support of date and tags in messages displayed in buffers with free content, add function printf_y_date_tags (closes #1746) 2022-01-30 11:41:06 +01:00
Sébastien Helleu bf3241208b doc/api: fix type of parameter "date" in script prototype of function prnt_date_tags 2022-01-30 11:01:17 +01:00
Sébastien Helleu 28d6b71d9e tests: add tests on gui_chat_printf_date_tags with past date and tags 2022-01-30 10:01:32 +01:00
Sébastien Helleu 083662cb34 tests: add tests on GUI chat functions
Functions tested:

- gui_chat_utf_char_valid
- gui_chat_char_size_screen
- gui_chat_strlen
- gui_chat_strlen_screen
- gui_chat_string_add_offset
- gui_chat_string_add_offset_screen
- gui_chat_string_real_pos
- gui_chat_string_pos
- gui_chat_get_word_info
- gui_chat_printf_date_tags_internal
- gui_chat_printf_date_tags
- gui_chat_printf_y
2022-01-29 10:24:21 +01:00
Sébastien Helleu bf9cf3875f doc/dev: update format of commit messages for docs 2022-01-29 10:12:32 +01:00
Sébastien Helleu fc2f564950 doc: update auto-generated files with options 2022-01-28 09:36:03 +01:00
Sébastien Helleu efaf88d857 tests: add tests on functions gui_line_build_string_prefix_message and gui_line_build_string_message_tags 2022-01-28 07:45:35 +01:00
Sébastien Helleu 05a9457504 core: move functions from gui-chat.c to gui-line.c
Functions moved and renamed:

- gui_chat_build_string_prefix_message -> gui_line_build_string_prefix_message
- gui_chat_build_string_message_tags -> gui_line_build_string_message_tags
2022-01-28 07:26:11 +01:00
Sébastien Helleu 3110740777 core: use dynamic string in function gui_chat_build_string_message_tags 2022-01-28 07:12:01 +01:00
Sébastien Helleu a62f8f6f75 core: use dynamic string in function gui_chat_build_string_prefix_message 2022-01-28 07:03:44 +01:00
Sébastien Helleu 05eb897771 doc/api: merge examples and results in same column (function string_eval_expression) 2022-01-27 21:15:34 +01:00
Sébastien Helleu 113f93e5db doc/api: add column "Min WeeChat" in string_eval_expression tables 2022-01-27 20:01:46 +01:00
Sébastien Helleu f2aef8c13c core: check that utf_char is not NULL in gui chat functions 2022-01-26 20:24:31 +01:00
Sébastien Helleu 3983f01ee7 core: set prefix to NULL when clearing a line on a buffer with free content 2022-01-26 20:23:16 +01:00
Sébastien Helleu 0ebf3dbede core: fix memory leak when removing a line on a buffer with free content 2022-01-26 20:22:56 +01:00
Sébastien Helleu 13fb3649dd core: update ChangeLog 2022-01-23 15:42:16 +01:00
Trygve Aaberge 6a88bbb4cc Remove old and unused config option weechat.plugin.debug
As far as I can see, this option is not used anywhere and should have
been removed in commit 6e69f7f3c.
2022-01-23 15:41:10 +01:00
Emir SARI b018f8d5c8 core: update Turkish translations 2022-01-23 10:18:59 +01:00
Sébastien Helleu 574f1837f9 python: fix crash in hook callbacks after script loading failure (closes #1740) 2022-01-22 21:34:04 +01:00
Sébastien Helleu 5172f20217 doc: update Serbian auto-generated file 2022-01-21 22:33:35 +01:00
Ivan Pešić ab7c4c0147 doc: Update Serbian translation 2022-01-21 14:49:50 +01:00
Nils Görs 28fc2e7cbf doc: update German documentation 2022-01-18 08:51:55 +01:00
Sébastien Helleu 2d6ab2ec0a core: fix install of PHP 8.0 in CI 2022-01-17 21:27:04 +01:00
Sébastien Helleu c44b79dce7 core: update copyright dates 2022-01-17 18:41:06 +01:00
Sébastien Helleu ab12d384ea doc: add example of hook_process with a script function (scripting guide) 2022-01-16 10:16:27 +01:00
Sébastien Helleu c775242a4c doc: remove useless comparison with empty string in Python examples (plugin API reference) 2022-01-16 10:15:55 +01:00
Sébastien Helleu 619f09f2d6 xfer: fix auto-accept of server/nick when the server name contains UTF-8 chars (issue #1739) 2022-01-15 10:04:43 +01:00
Sébastien Helleu e6f65122a9 spell: fix comparison of URL prefix with UTF-8 chars (issue #1739)
There is no problem in practice because the possible URL prefixes are hardcoded
in the spell plugin and don't contain any UTF-8 char on more than one byte.
2022-01-15 10:04:12 +01:00
Sébastien Helleu 50167ca96f relay: fix comparison of server nonce with UTF-8 chars (issue #1739)
There is no problem in practice because this server nonce is generated by
WeeChat itself and encoded to base64, so it never contains any UTF-8 char on
more than one byte.
2022-01-15 10:03:54 +01:00
Sébastien Helleu b54d06630d irc: fix completion of channel topic with UTF-8 chars (issue #1739) 2022-01-15 09:52:23 +01:00
Sébastien Helleu c13aa86c79 api: fix add of infolist items in hashtable when prefix contains UTF-8 chars in function hashtable_add_from_infolist (issue #1739) 2022-01-15 09:48:50 +01:00
Sébastien Helleu bda7bb64d2 core: fix search of commands with UTF-8 chars in name when option weechat.look.command_incomplete is on (issue #1739) 2022-01-15 09:48:50 +01:00
Sébastien Helleu dee7313fcc trigger: fix search of triggers with UTF-8 chars in name (issue #1739) 2022-01-15 09:36:02 +01:00
Sébastien Helleu 305608ce89 tests: split tests on functions string_tolower and string_toupper 2022-01-14 21:43:06 +01:00
Sébastien Helleu f8915129bf core: rename argument "length" to "bytes" in function string_strndup 2022-01-14 21:41:25 +01:00
Nils Görs 0e57d01076 doc: update German documentation 2022-01-12 12:37:00 +01:00
Sébastien Helleu 286338f627 doc: add missing macro WEECHAT_PLUGIN_AUTHOR (plugin API reference) 2022-01-08 17:05:51 +01:00
Sébastien Helleu 9bbab7ff02 irc: use default callback in case of missing parameters in messages 311/312/327 (whois) and 314 (whowas) 2022-01-06 08:14:11 +01:00
Sébastien Helleu 6670fd2a87 irc: add macro to run another protocol callback 2022-01-06 08:10:44 +01:00
Sébastien Helleu 0d6b18bc54 irc: fix parsing of message 338 (whois, host) sent by Rizon server (closes #1737) 2022-01-05 08:24:04 +01:00
Sébastien Helleu 8c49475f75 irc: fix display of message 344 received as whois geo info (closes #1736) 2022-01-04 19:53:48 +01:00
Sébastien Helleu 08e0d3912a doc: add note about chars replaced in IRC tag key/value (user's guide) 2021-12-30 21:49:51 +01:00
Sébastien Helleu 532d46bb93 trigger: add variables ${tg_tag_irc_xxx} containing IRC message tags (issue #1680) 2021-12-30 21:22:37 +01:00
Sébastien Helleu b66298d369 irc: add IRC message tags in messages displayed (closes #1680) 2021-12-30 21:11:22 +01:00
Sébastien Helleu 5c6fc8c4bd doc: update OS examples in contributing guide 2021-12-30 07:25:23 +01:00
Sébastien Helleu ee96b9b867 doc: change pygments pre-processor color from red to green/cyan 2021-12-28 23:34:38 +01:00
Sébastien Helleu 1c022d3bda doc: move section "Fset" in "Configuration" (user's guide) 2021-12-28 22:22:14 +01:00
Sébastien Helleu dd2b19ec42 core: fix display of hotlist in buflist after changing value of option weechat.look.hotlist_sort (closes #1733)
The "hotlist" pointer in buffers was lost, it is now set again after switching
to the newly sorted hotlist.
2021-12-28 13:52:58 +01:00
Sébastien Helleu df0506dbdf doc: update German auto-generated file 2021-12-28 13:34:15 +01:00
Nils Görs 93eafae2fe core: update German translations 2021-12-27 10:42:54 +01:00
Sébastien Helleu 7fb1dd94cc core: add build of Debian packages in CI 2021-12-25 16:26:43 +01:00
Sébastien Helleu c8a8680d60 relay: improve help on option relay.network.compression 2021-12-25 10:44:00 +01:00
Sébastien Helleu af067f18e2 doc: update auto-generated files with options 2021-12-25 10:31:44 +01:00
Sébastien Helleu 454c0acbcf doc: fix color of preformatted text in docs 2021-12-25 10:30:18 +01:00
Sébastien Helleu 498194f6fc relay: add zstd compression in weechat protocol
Option relay.network.compression_level is renamed to relay.network.compression
and is now a percentage between 0 (no compression) to 100 (best compression,
slowest).

Compression is now disabled by default in weechat protocol and must be enabled
via the `handshake` command (option `compression` has been removed from `init`
command).
2021-12-24 16:45:57 +01:00
Sébastien Helleu d5c391b1ee irc: fix display of IRC numeric messages with no parameters
For example this MOTD message is properly displayed (empty line):

  :server.example.com 372 nick :
2021-12-23 18:43:12 +01:00
Nils Görs 20e219a2c9 doc: update German documentation 2021-12-20 10:23:22 +01:00
Sébastien Helleu abb7d3642a core: use shortcuts for URLs pointing to documentation 2021-12-19 12:31:45 +01:00
Sébastien Helleu 7f2cce2970 core: fix link to doc on IRC plugin in README 2021-12-19 12:31:09 +01:00
Sébastien Helleu 7a0fdd1966 core: remove tests on Travis CI
Travis CI has been replaced by GitHub Actions since May 2020.
2021-12-19 12:22:50 +01:00
Sébastien Helleu fae6bbb40e core: fix styles in ChangeLog and release notes 2021-12-19 10:51:29 +01:00
Sébastien Helleu 5bb56e0f57 doc: mention IRC server buffer in default key binding ctrl-x (user's guide) 2021-12-18 13:41:09 +01:00
Sébastien Helleu 5de21ddfc0 Version 3.5-dev 2021-12-18 09:22:12 +01:00
Sébastien Helleu 778594d68f Version 3.4 2021-12-18 08:57:32 +01:00
Sébastien Helleu 37d4d2ac65 debian: update changelog 2021-12-18 08:41:05 +01:00
Krzysztof Korościk 2376b6aa5e doc: update polish translation 2021-12-17 23:28:35 +01:00
Nils Görs 5a24ffd951 doc: update German documentation 2021-12-17 09:19:32 +01:00
Sébastien Helleu a1cc70b752 core: fix broken links in README (closes #1729) 2021-12-16 20:41:12 +01:00
Sébastien Helleu 1cedb78348 doc: add workaround for download of plugins.xml.gz on macOS (FAQ) 2021-12-15 21:05:06 +01:00
Ivan Pešić 0123abb83e doc: Update Serbian translation 2021-12-13 22:16:57 +01:00
Sébastien Helleu 463517bd1e core: fix tests on PHP plugin in CI 2021-12-13 21:39:25 +01:00
Sébastien Helleu 46f3bee2ff core: add build of zst archive in make dist 2021-12-13 21:10:06 +01:00
Krzysztof Korościk d80b27af64 doc: updated polish cmdline options 2021-12-12 20:47:42 +01:00
Krzysztof Korościk e2d44181d7 doc: updated polish user guide 2021-12-12 20:37:02 +01:00
Krzysztof Korościk ba4f762964 po: updated polish translation 2021-12-12 00:44:04 +01:00
Sébastien Helleu dad3e6099c doc: use unbreakable spaces in example of missing translation tag (developer's guide)
This allows to search this tag in docs with grep and ignore the example in the
developer's guide.
2021-12-11 09:40:07 +01:00
Sébastien Helleu 5208552a98 doc: remove missing translation comments in French docs 2021-12-11 09:35:01 +01:00
Sébastien Helleu 07721d3dc1 Version 3.4-rc1 2021-12-10 18:49:11 +01:00
Nils Görs d236171035 core: update German translations 2021-12-10 11:21:47 +01:00
Sébastien Helleu a4d560e0aa doc: fix color codes attributes in developer's guide 2021-12-08 20:54:40 +01:00
Sébastien Helleu 7bf0a5c734 doc: remove list of remote interfaces, redirect to web site (user's guide) 2021-12-05 22:00:24 +01:00
Sébastien Helleu 10a8732d41 doc: rename section "WeeChat extension" to "Extending WeeChat" (user's guide) 2021-12-05 21:39:28 +01:00
Sébastien Helleu fd017ce474 doc: add section "Script manager" (user's guide) 2021-12-05 21:39:28 +01:00
Sébastien Helleu 1c0d8f5fd3 doc: add section "WeeChat extension" above "Plugins" (user's guide) 2021-12-05 21:39:28 +01:00
Sébastien Helleu 160ffe8e11 doc: move sections "Exec", "Fifo" and "Trigger" at top level after "Relay" (user's guide) 2021-12-05 21:39:28 +01:00
Sébastien Helleu 4c7b898666 doc: move section "Xfer" at top level after "IRC" (user's guide) 2021-12-05 20:59:19 +01:00
Sébastien Helleu 391d0a18a1 doc: move section "Typing" at top level after "IRC" (user's guide) 2021-12-05 20:59:19 +01:00
Sébastien Helleu a5db952842 doc: move section "Spell" in "Configuration" (user's guide) 2021-12-05 20:59:19 +01:00
Sébastien Helleu 7cb5147e74 doc: move section "Relay" at top level after "IRC" (user's guide) 2021-12-05 20:59:19 +01:00
Sébastien Helleu a5ffd8b800 doc: move section "Logger" in "Configuration" (user's guide) 2021-12-05 20:59:19 +01:00
Sébastien Helleu 66384544b5 doc: move section "IRC" at top level after "Configuration" (user's guide) 2021-12-05 20:59:19 +01:00
Sébastien Helleu c88428fb41 doc: move section "Bare display" in "Buffers and windows" (user's guide) 2021-12-05 14:15:52 +01:00
Sébastien Helleu 71991fcc73 doc: add fset buffer example (user's guide) 2021-12-05 14:11:25 +01:00
Sébastien Helleu b82a9c44fd doc: fix typo in French user's guide 2021-12-05 13:56:59 +01:00
Sébastien Helleu 637c7bb3d4 doc: move section "Fset" in "Interface" (user's guide) 2021-12-05 13:15:35 +01:00
Sébastien Helleu 268cb53238 doc: move section "Charset" in "Configuration" (user's guide) 2021-12-05 12:43:54 +01:00
Sébastien Helleu 9e721d0ad5 doc: move section "Buflist" in "Interface" (user's guide) 2021-12-05 12:36:39 +01:00
Sébastien Helleu 287d5146b4 doc: move section "Alias" in "Configuration" (user's guide) 2021-12-05 12:25:41 +01:00
Sébastien Helleu 1cfb5e5d1e doc: change section title for debug build and address sanitizer (user's guide) 2021-12-05 11:55:02 +01:00
Sébastien Helleu 866fef2595 doc: fix cross-reference to mouse actions (user's guide) 2021-12-05 11:47:04 +01:00
Sébastien Helleu 2dabce9ac8 doc: move section "Key bindings" at top level, add section title "Configuration" (user's guide) 2021-12-04 20:12:06 +01:00
Sébastien Helleu f33e9b6737 doc: move section "Running WeeChat" at top level, add section title "Interface" (user's guide) 2021-12-04 15:59:55 +01:00
Sébastien Helleu 50cea48b51 doc: move section "Upgrade" at top level after "Installation" (user's guide) 2021-12-04 15:59:46 +01:00
Sébastien Helleu ae891ab322 doc: reduce font size in table of contents 2021-12-04 15:38:47 +01:00
Sébastien Helleu 0a14441d35 doc: remove section title for extra debug options on command line (user's guide) 2021-12-04 15:31:38 +01:00
Sébastien Helleu f2310dae42 doc: add more categories for key bindings (user's guide) 2021-12-04 15:15:58 +01:00
Sébastien Helleu 67a364550f core: fix typo in weechat --help 2021-12-03 12:03:08 +01:00
Sébastien Helleu 64592951b5 doc: use only a link to user's guide in Installation chapter (README) 2021-12-01 18:54:28 +01:00
Sébastien Helleu 3a38879590 doc: remove tester's guide 2021-12-01 18:48:14 +01:00
Sébastien Helleu d447755b1f core: update ChangeLog 2021-11-28 22:21:55 +01:00
Sébastien Helleu 2564fa2882 doc: disable web fonts in docs generated by asciidoctor 2021-11-27 16:53:12 +01:00
Sébastien Helleu 928ed152ed doc: make reproducible build of docs with asciidoctor 2021-11-27 16:09:11 +01:00
Sébastien Helleu 7014322b2e doc: add dark theme in docs generated by asciidoctor 2021-11-27 16:05:28 +01:00
Sébastien Helleu 9b6606394c doc: fix column size in table with color codes (developer's guide) 2021-11-27 16:05:28 +01:00
Sébastien Helleu 198872c027 doc: escape example of link in developer's guide 2021-11-27 16:05:28 +01:00
Sébastien Helleu c8776b14f6 doc: switch from prettify to pygments for syntax highlighting 2021-11-27 16:05:28 +01:00
Nils Görs 35c26fb001 doc: update German documentation 2021-11-24 12:30:41 +01:00
Thomas Faughnan eca9c89747 doc: fix typo in link for '/layout' in user guide 2021-11-23 09:34:19 +01:00
Sébastien Helleu aed64f5020 ruby: add detection of Ruby 3.0 in autotools (issue #1721) 2021-11-21 16:57:17 +01:00
Sébastien Helleu 266233636d core: add issue #1605 in ChangeLog 2021-11-21 16:48:39 +01:00
Sébastien Helleu be753046b7 core: fix detection of Ruby 3.0 on macOS (issue #1721) 2021-11-21 16:38:22 +01:00
Sébastien Helleu 15f5bc7944 tests: add missing include of stdio.h 2021-11-21 16:37:23 +01:00
Sébastien Helleu 27a480c7d7 core: fix compilation with Ruby 3.0 on macOS (issue #1721, closes #1605) 2021-11-21 16:29:40 +01:00
Sébastien Helleu fe9768f484 ruby: add detection of Ruby 3.0.0, remove old way to detect Ruby (closes #1721) 2021-11-21 11:39:56 +01:00
Sébastien Helleu aace0a1a58 core: fix links to docs in release notes 2021-11-20 20:34:21 +01:00
Sébastien Helleu 792739ee42 core: add build with CMake and Ninja in CI 2021-11-20 19:02:53 +01:00
Sébastien Helleu 8b11fa86cd core: add build on macOS 11 in CI 2021-11-20 17:34:33 +01:00
Sébastien Helleu 28d013b704 build: add targets "changelog" and "rn" to build HTML version of ChangeLog and release notes (CMake build only) 2021-11-20 17:23:59 +01:00
Sébastien Helleu 5fffaf89e4 build: improve error management in build of tarballs 2021-11-20 15:32:06 +01:00
Sébastien Helleu 006964c4dc irc: fix memory leak in case of realloc error 2021-11-20 13:21:51 +01:00
Sébastien Helleu 05d31b476b trigger: hide key and password in command "/msg nickserv setpass nick key password" 2021-11-13 15:41:31 +01:00
Sébastien Helleu 50edb33f1c core: speed up eval by storing length of prefix/suffix in eval structure 2021-11-13 15:18:49 +01:00
Sébastien Helleu c82358c17c core: free strings with XDG directories in case of error 2021-11-13 14:59:14 +01:00
Sébastien Helleu d64050bafb relay: remove dead assignment in websocket decoding 2021-11-13 13:32:02 +01:00
Sébastien Helleu 1556e4ac5a core: fix memory leak in evaluated expression "split:number,seps,flags,xxx" when multiple "strip_items" are given 2021-11-13 13:29:32 +01:00
Sébastien Helleu a3924a27a0 tests: add tests on some IRC SASL functions 2021-11-13 09:06:34 +01:00
Sébastien Helleu cbadaecc4f core: add note about default trigger "cmd_pass_register" in release notes 2021-11-13 08:48:04 +01:00
Sébastien Helleu 7cad1230e6 trigger: add comments with list of all commands in default triggers 2021-11-12 21:20:14 +01:00
Sébastien Helleu 997559e55b trigger: split default triggers on multiple lines 2021-11-12 21:08:39 +01:00
Sébastien Helleu d98940fecb tests: add tests on default triggers 2021-11-12 20:58:30 +01:00
Sébastien Helleu f2ad57ceb9 trigger: add support of option "-server" when hiding passwords in command /msg nickserv register 2021-11-12 20:52:14 +01:00
Sébastien Helleu d4650183ba doc: fix typos in user's guide 2021-11-11 21:33:16 +01:00
Sébastien Helleu a6c40d2190 doc: fix sentences in French user's guide 2021-11-11 21:18:10 +01:00
Sébastien Helleu 563a6db02d core: fix typos in docs 2021-11-11 09:28:24 +01:00
Sébastien Helleu 5ddd72c0e9 tests: add extra tests on functions string_strcmp_ignore_chars and string_convert_escaped_chars 2021-11-09 20:41:23 +01:00
Ivan Pešić 80b86ea647 core: update Serbian translations 2021-11-08 20:48:59 +01:00
Santiago Forero bbcdb90fbb core: update Spanish translations 2021-11-08 20:25:41 +01:00
Sébastien Helleu 253b25db03 core: fix random integer number with large range in evaluation of expressions on GNU/Hurd 2021-11-07 20:16:26 +01:00
Sébastien Helleu 4c9e7ed09e tests: fix allocation of test_ptr_1_hashtable_dyn in hdata tests 2021-11-07 18:13:03 +01:00
Sébastien Helleu 12043622e6 tests: add tests on UTF-8 string functions 2021-11-07 14:39:48 +01:00
Sébastien Helleu f4a1baaed3 irc: extend size of some internal buffers 2021-11-07 08:57:07 +01:00
Sébastien Helleu 9303f5abd9 core: update ChangeLog 2021-11-06 18:57:49 +01:00
Sébastien Helleu 1b8ad40b81 irc: do not display a message parsing error when a channel buffer can not be created 2021-11-06 18:19:12 +01:00
Sébastien Helleu 2f177dd188 irc: fix join of channels with name longer than 127 chars (closes #1717) 2021-11-06 18:17:39 +01:00
Sébastien Helleu edfc415e9e irc: fix memory leak in main IRC message callback 2021-11-06 17:58:48 +01:00
Sébastien Helleu 8bb5e33348 irc: fix memory leak in callback of IRC message 353 2021-11-06 17:55:31 +01:00
Sébastien Helleu b3cf7658f7 doc: replace ${name} by ${server_name} in example of function hdata_search (plugin API reference) 2021-11-06 16:03:40 +01:00
Sébastien Helleu 2081fa54af core: reverse diff arguments in CI 2021-11-06 15:59:28 +01:00
Sébastien Helleu 2da2172593 api: add parameters pointers, extra_vars and options in function hdata_search 2021-11-06 15:59:18 +01:00
Sébastien Helleu 018a4bda53 core: add hdata changes in release notes 2021-11-05 20:21:39 +01:00
Sébastien Helleu 14c6ef3d83 tests: add missing include of string.h 2021-11-05 20:21:17 +01:00
Sébastien Helleu 9c5837d143 core: add unit tests on hdata 2021-11-05 20:04:10 +01:00
Sébastien Helleu 5e08f9876a core: fix access to integer/long/time arrays in hdata, add support of static arrays in hdata 2021-11-04 23:55:02 +01:00
Sébastien Helleu ee66fc3a85 core: fix crash in function hdata_set when pointer value is NULL in hashtable 2021-11-03 23:54:12 +01:00
Sébastien Helleu 13472adfff core: check that time is valid in function hdata_set 2021-11-03 23:23:09 +01:00
Sébastien Helleu 60b374901f core: remove useless test in function hdata_update 2021-11-03 23:02:01 +01:00
Sébastien Helleu d8a3a0137c core: check that hdata and name are not NULL in function hdata_compare 2021-11-02 21:08:24 +01:00
Sébastien Helleu f66e55564e core: check that name is not NULL in function hdata_get_var 2021-11-01 22:16:50 +01:00
Sébastien Helleu 6e83225e6f core: use a "free value" callback in hashtable weechat_hdata 2021-10-29 22:13:53 +02:00
Sébastien Helleu f03622d141 doc: update Polish auto-generated files 2021-10-24 09:23:01 +02:00
Krzysztof Korościk 4f20417cb2 po: updated polish translation 2021-10-24 00:38:46 +02:00
Krzysztof Korościk f15337ea9a doc: updated polish translation 2021-10-23 23:29:34 +02:00
Sébastien Helleu 49221b56b9 doc: update German auto-generated file 2021-10-23 20:58:16 +02:00
Nils Görs 75f71cd311 core: update German translations 2021-10-23 17:58:01 +02:00
Sébastien Helleu 505a9f937a core: fix typo in ChangeLog 2021-10-23 15:13:53 +02:00
Sébastien Helleu 08d3e3b2b7 core: update ChangeLog (closes #1666) 2021-10-23 14:44:20 +02:00
Sébastien Helleu fb4d947a8c core: update translations 2021-10-23 14:44:11 +02:00
Sébastien Helleu 2ca6420e17 irc: do not display first parameter in numeric command when it is "*" 2021-10-17 21:28:31 +02:00
Sébastien Helleu cde0d5f7a5 irc: do not display "*" when received as nick in command 900 2021-10-17 21:28:31 +02:00
Sébastien Helleu ba5b744397 irc: add URL to extended-join extension 2021-10-17 21:28:31 +02:00
Sébastien Helleu 1447c7ad83 irc: fix URL to invite-notify extension 2021-10-17 21:28:31 +02:00
Sébastien Helleu b57d19c893 irc: add more CAP command examples 2021-10-17 21:28:31 +02:00
Sébastien Helleu 9063546acc irc: remove parameters argc/argv/argv_eol from command callbacks 2021-10-17 21:28:31 +02:00
Sébastien Helleu f1cb767001 irc: keep trailing spaces in received message 322 2021-10-17 21:28:31 +02:00
Sébastien Helleu 634eac455d tests: ensure trailing spaces are preserved in some incoming IRC commands 2021-10-17 21:28:31 +02:00
Sébastien Helleu 2f90fc0299 irc: don't keep trailing spaces in received message TAGMSG 2021-10-17 21:28:31 +02:00
Sébastien Helleu d2bd952210 tests: protect IRC message with quotes in command /server fakerecv 2021-10-17 21:28:31 +02:00
Sébastien Helleu 9fbe18eb27 irc: remove quotes around message in command /server fakerecv
This preserves trailing spaces at the end of the message.
2021-10-17 21:28:31 +02:00
Sébastien Helleu 2ca37a9128 irc: remove server in "903" and "904" command callbacks examples 2021-10-17 21:28:31 +02:00
Sébastien Helleu a73e9eb8ca irc: use parsed command parameters in "901" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu a3ddeba9f9 irc: use parsed command parameters in "900" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu baa91a45a8 irc: use parsed command parameters in "730", "731", "732", "733" and "734" command callbacks 2021-10-17 21:28:31 +02:00
Sébastien Helleu 6124bf3c92 irc: use parsed command parameters in "729" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 6a8ec55118 irc: use parsed command parameters in "728" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 4b6038975c irc: use parsed command parameters in "470" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 5e63161b5b irc: use parsed command parameters in "438" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 32c99047f4 irc: use parsed command parameters in "437" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 2ef9509dbe irc: remove server in "432" and "433" command callbacks examples 2021-10-17 21:28:31 +02:00
Sébastien Helleu c7cb025582 irc: use parsed command parameters in "368" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 96288d69e2 irc: use parsed command parameters in "367" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu aad86a1955 irc: use parsed command parameters in "366" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu dcbf534d53 irc: use parsed command parameters in "353" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu c8329da6e0 irc: use parsed command parameters in "352" and "354" command callbacks 2021-10-17 21:28:31 +02:00
Sébastien Helleu 3e1b621f52 tests: add extra tests on notice message received with just a server address 2021-10-17 21:28:31 +02:00
Sébastien Helleu 56cb9e50af irc: fix display of address in notice messages received 2021-10-17 21:28:31 +02:00
Sébastien Helleu 9b17f1fee4 irc: use parsed command parameters in "351" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu cee4bf7e3c irc: use parsed command parameters in "349" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 027ecc6b0e irc: use parsed command parameters in "348" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 22ecfda777 irc: use parsed command parameters in "347" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 2ae974f5c3 irc: use parsed command parameters in "346" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 99d565f6df irc: use parsed command parameters in "345" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 5546b0af0e irc: use parsed command parameters in "344" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 741343e9aa irc: use parsed command parameters in "341" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 0e9710de81 irc: use parsed command parameters in "338" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 32ae101096 irc: use parsed command parameters in "333" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 3a5a2abeea irc: use parsed command parameters in "332" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu de567aa1d3 irc: use parsed command parameters in "331" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu a5e470a16a irc: use parsed command parameters in "330" and "343" command callbacks 2021-10-17 21:28:31 +02:00
Sébastien Helleu b3ce8b5282 irc: use parsed command parameters in "329" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 31b15c1423 irc: use parsed command parameters in "328" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 60c9beab2b irc: rename some variables "str_params" to a more meaningful name 2021-10-17 21:28:31 +02:00
Sébastien Helleu 10a1c9bda4 irc: use parsed command parameters in "327" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 6f8f547242 irc: use parsed command parameters in "324" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 2509486c6a irc: use parsed command parameters in "323" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu df9c32b0c3 irc: use parsed command parameters in "322" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu c577da0375 irc: use parsed command parameters in "321" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 4e1d40034e irc: use parsed command parameters in "317" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu a1a4f337ff irc: use parsed command parameters in "315" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu e412a34668 irc: use parsed command parameters in "314" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 3c7d4b0516 irc: use parsed command parameters in "312" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 572bcc2c59 irc: use parsed command parameters in "311" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 3360cadd55 irc: use parsed command parameters in "whois" and "whowas" command callbacks 2021-10-17 21:28:31 +02:00
Sébastien Helleu f51f3dbe29 irc: use parsed command parameters in "305" and "306" command callbacks 2021-10-17 21:28:31 +02:00
Sébastien Helleu efecdf5d45 irc: use parsed command parameters in "303" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 76b75ad5cd irc: use parsed command parameters in "numeric" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 74ceaa1a68 irc: use parsed command parameters in "301" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 12a4519448 irc: use parsed command parameters in "221" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 033fbf63b0 irc: use parsed command parameters in "008" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 1029780ce2 irc: use parsed command parameters in "005" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 0ea0b24563 irc: use parsed command parameters in "001" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu ec816b4be5 irc: use parsed command parameters in "wallops" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 7c1ea1cb32 irc: use parsed command parameters in "topic" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 27f554659e irc: use parsed command parameters in "973", "974" and "975" command callbacks 2021-10-17 21:28:31 +02:00
Sébastien Helleu 5389ceb237 irc: use parsed command parameters in "tagmsg" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 03e0122155 irc: use parsed command parameters in "setname" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 8d12187f3d irc: require nick in "away" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu bf8c85f422 irc: use parsed command parameters in "quit" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 179822fb91 irc: use parsed command parameters in "privmsg" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 5e712d7145 irc: use parsed command parameters in "pong" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 8ea41d91c9 irc: use parsed command parameters in "ping" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 7a88e007a5 tests: check missing nick in IRC commands invite/join/kick/kill/mode/nick/part 2021-10-17 21:28:31 +02:00
Sébastien Helleu 257fe7362a tests: fix comments 2021-10-17 21:28:31 +02:00
Sébastien Helleu 52cc1165c4 irc: ensure the nick is not empty when the nick is required in a command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 0be96b7c66 irc: fix messages displayed when prefix/nick is missing 2021-10-17 21:28:31 +02:00
Sébastien Helleu 9d4119232f irc: remove check of address/host in command callbacks 2021-10-17 21:28:31 +02:00
Sébastien Helleu adcc04cc5a irc: fix extraction of address from prefix
Do not return the nick when the address is missing.
2021-10-17 21:28:31 +02:00
Sébastien Helleu e5996f626b irc: use parsed command parameters in "part" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu d8c7cf41b5 irc: use parsed command parameters in "notice" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 5123483c33 tests: fix IRC protocol tests 2021-10-17 21:28:31 +02:00
Sébastien Helleu 33a3c485be irc: shorten error in case of missing parameters in command received 2021-10-17 21:28:31 +02:00
Sébastien Helleu 7b4d48c46d irc: fix number of required parameters in generic error command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 4ee82d1c70 irc: use parsed command parameters in "nick" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu a1a4d627e1 irc: use parsed command parameters in "mode" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 5a5c2cbd1a irc: rename macro IRC_PROTOCOL_CHECK_HOST to IRC_PROTOCOL_CHECK_PREFIX 2021-10-17 21:28:31 +02:00
Sébastien Helleu 2bd3681eef irc: use parsed command parameters in "kill" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 604415e19e irc: use parsed command parameters in "kick" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu e653ee04d2 irc: use parsed command parameters in "join" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 3c737ca304 irc: use parsed command parameters in "invite" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 1f83df7a18 irc: use parsed command parameters in "fail", "warn" and "note" command callbacks 2021-10-17 21:28:31 +02:00
Sébastien Helleu eda8ad9de5 irc: use parsed command parameters in "generic_error" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu df6f32a7bb irc: use parsed command parameters in "error" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu a2a733fc36 irc: use parsed command parameters in "chghost" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 56edeba7fc irc: use parsed command parameters in "cap" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 15392e4a81 irc: use parsed command parameters in "away" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu cb856a7f3a irc: use parsed command parameters in "authenticate" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 69c457287d irc: use parsed command parameters in "account" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 5458382bb8 irc: fix typo in a comment 2021-10-17 21:28:31 +02:00
Sébastien Helleu 849105ebd6 irc: replace "message" by "command" in description of functions 2021-10-17 21:28:31 +02:00
Sébastien Helleu cbc4073815 irc: send parsed parameters to IRC command callbacks 2021-10-17 21:28:30 +02:00
Sébastien Helleu c4b4d80936 irc: parse and return command parameters in message parser 2021-10-17 21:28:30 +02:00
Sébastien Helleu f0898eae64 doc: update Serbian auto-generated file 2021-10-17 21:27:41 +02:00
Ivan Pešić 9378a7572b core: Update Serbian translation 2021-10-17 21:26:20 +02:00
Sébastien Helleu 3cd97b5131 tests: add missing include of string.h 2021-10-14 21:08:28 +02:00
Sébastien Helleu d8b8bf5a84 tests: check displayed message/error for all simulated IRC commands received 2021-10-14 21:00:47 +02:00
Sébastien Helleu 238c17bd0e irc: display command in lower case when there is a parsing error 2021-10-14 20:39:23 +02:00
Sébastien Helleu 1206e9e5c3 tests: fix typo in comment 2021-10-14 20:38:16 +02:00
Sébastien Helleu f3b4336bc4 irc: do not display message with "(null)" for 973/974/975 command received if pos_mode is NULL 2021-10-14 20:37:32 +02:00
Sébastien Helleu 55df7805c2 irc: display a single error message when parsing of a command failed 2021-10-13 18:45:36 +02:00
Sébastien Helleu 9102e4f552 irc: display a single error message when a command is not found 2021-10-13 18:45:14 +02:00
Sébastien Helleu 57ad90c3c0 irc: do not display message with "(null)" for numeric command received if pos_args is NULL 2021-10-13 18:42:47 +02:00
Sébastien Helleu ed9104fbea irc: fix parsing of CAP message when there is no prefix (closes #1707) 2021-10-09 11:27:51 +02:00
Sébastien Helleu 68a3aca643 plugins: use a different plugin priority for each scripting language 2021-10-02 20:50:35 +02:00
Sébastien Helleu 6fe354439c doc: update German auto-generated file 2021-10-02 20:41:09 +02:00
Nils Görs 63b93a8147 core: update German translations 2021-10-02 19:49:38 +02:00
Sébastien Helleu ad5fa7c99f core: add command /toggle 2021-10-01 22:55:38 +02:00
Sébastien Helleu 9548a4cf74 core: check that option is not NULL in function config_file_option_value_to_string 2021-09-27 23:23:01 +02:00
Sébastien Helleu 301f0942c6 core: fix search of option when the section is not given 2021-09-27 22:35:14 +02:00
Sébastien Helleu fb57ad147e core: check that option_name is not NULL in config file functions 2021-09-27 22:02:22 +02:00
Nils Görs 3ee2f40fb3 core: update German translations 2021-09-26 20:25:20 +02:00
Sébastien Helleu edd1971ae8 irc: fix parsing of TAGMSG message when there is a colon before the channel
This fixes the display of typing notifications on some IRC servers like
inspircd.
2021-09-21 20:41:18 +02:00
Sébastien Helleu a6826af796 core: add creation of user variables in evaluated expressions with ${define:name,value} 2021-09-20 21:15:28 +02:00
Jan Palus bd21b25bad typing: correct typo in CMake option description 2021-09-19 14:58:07 +02:00
Sébastien Helleu 48a4a043b7 Version 3.4-dev 2021-09-19 12:23:06 +02:00
Sébastien Helleu 3b9217e460 Version 3.3 2021-09-19 10:14:18 +02:00
Sébastien Helleu eaacd805ae php: add missing header files in autotools build 2021-09-19 09:54:01 +02:00
Sébastien Helleu e9d303c4fa debian: update changelog 2021-09-18 10:33:04 +02:00
Sébastien Helleu fb1bf569a9 debian: bump Standards-Version to 4.6.0.1 2021-09-18 10:32:39 +02:00
Sébastien Helleu e00937875d Version 3.3-rc1 2021-09-11 09:20:58 +02:00
a1346054 5dbf24d179 docs: trim excess whitespace 2021-09-11 00:17:36 +02:00
a1346054 9d7cac2396 build: fix shellcheck warnings 2021-09-11 00:17:36 +02:00
a1346054 04977fa9da legal: use license file from gnu.org
Downloaded from:
https://www.gnu.org/licenses/gpl-3.0.txt
2021-09-11 00:17:36 +02:00
Sébastien Helleu 4aa2b86ee2 doc: update German auto-generated file 2021-09-10 23:07:23 +02:00
Sébastien Helleu f3fc1f5f85 core: remove empty line displayed in output of /plugin list <name> 2021-09-10 23:06:05 +02:00
Nils Görs a7d3f9d4e8 core: update German translations 2021-09-10 09:59:14 +02:00
Sébastien Helleu 91d32be93c core: add options "-o", "-ol", "-i" and "-il" in command "/plugin list" 2021-09-09 21:32:58 +02:00
Sébastien Helleu a76eedcd1f core: replace deprecated cmake command "exec_program" by "execute_process"
This fixes a compilation issue on Debian Sid with the latest version of
debianutils (5.4-3), where the "which" command is now deprecated.
2021-09-08 20:46:44 +02:00
Sébastien Helleu 7742b48098 doc: update German auto-generated file 2021-09-07 21:40:01 +02:00
Nils Görs 4d0245711d core: update German translations 2021-09-07 09:42:30 +02:00
Sébastien Helleu 7d1b557627 core: fix indentation in examples of /help eval 2021-09-06 22:39:29 +02:00
Sébastien Helleu 5b3929b321 api: add split of string and shell arguments in evaluation of expressions
Split of string: ${split:number,separators,flags,xxx}
Split of shell arguments: ${split_shell:number,xxx}
2021-09-06 13:32:04 +02:00
Sébastien Helleu 8852e9fd0c core: add CVE id in ChangeLog 2021-09-05 20:54:14 +02:00
Sébastien Helleu d5b68e6b75 core: update ChangeLog (closes #1599) 2021-09-05 09:31:43 +02:00
Ivan Pešić 2446e5814f core: update Serbian translations 2021-09-04 22:01:41 +02:00
Sébastien Helleu 885b470d51 lua: add detection of Lua 5.4 2021-09-04 19:46:14 +02:00
Sébastien Helleu 97b809d164 core: add version 3.2.1 2021-09-04 16:28:04 +02:00
Sébastien Helleu 97bdd51112 relay: fix crash when decoding a malformed websocket frame 2021-09-04 15:55:37 +02:00
Nils Görs 75b9ba03a1 core: update German translations 2021-09-03 15:00:09 +02:00
Sébastien Helleu 5fb7ebdfce irc: fix send of empty JOIN when connecting to a server with only parted channels (closes #1638) 2021-09-03 13:43:07 +02:00
Sébastien Helleu 6fc6166cfe core: update translations 2021-08-31 22:39:17 +02:00
Sébastien Helleu 12be3b8c33 core: add options in command /input and new keys to remove/restore buffers in hotlist
New options in command /input:

- hotlist_remove_buffer
- hotlist_restore_buffer
- hotlist_restore_all

New keys:

- alt+h, alt+c: clear the whole hotlist (former key: alt+h)
- alt+h, alt+m: mark the current buffer as read by removing it from the hotlist
- alt+h, alt+r: restore latest hotlist removed in the current buffer
- alt+h, alt+shift+R: restore latest hotlist removed in all buffers
2021-08-31 22:32:38 +02:00
Sébastien Helleu 5b5626a82b doc: fix typo in French plugin API reference 2021-08-30 13:54:28 +02:00
Sébastien Helleu 968d17b806 core: update ChangeLog (closes #1689) 2021-08-29 10:54:51 +02:00
Sébastien Helleu 2de272ee6c api: add "${re:repl_index}" to get the index of replacement in function string_eval_expression 2021-08-29 10:40:52 +02:00
Sébastien Helleu 009a2889e3 core: ensure python stub is up-to-date in CI 2021-08-16 22:59:32 +02:00
Sébastien Helleu 86e3c672bb doc: write python stub on standard output 2021-08-16 22:59:07 +02:00
Sébastien Helleu 254c1a3e8b doc: update German auto-generated file 2021-08-13 21:08:40 +02:00
Nils Görs fa3cd3dd08 core: update German translations 2021-08-13 09:14:50 +02:00
Sébastien Helleu 89b28e362c irc: add option "-parted" in command /allchan (closes #1685) 2021-08-12 18:15:16 +02:00
Sébastien Helleu cf27302dac core: add terminal and color info in output of /debug color 2021-08-11 18:49:22 +02:00
Sébastien Helleu da8b7a85bb doc: update German auto-generated file 2021-08-10 20:37:50 +02:00
Nils Görs 964d3e54d1 core: update German translations 2021-08-10 14:55:21 +02:00
Sébastien Helleu 960b633517 core: switch to PHP 8.0 in CI 2021-08-08 18:56:16 +02:00
Sébastien Helleu addd80e7b7 doc: update auto-generated files with hdata 2021-08-08 18:44:05 +02:00
Sébastien Helleu 8e676edd1a irc: save CLIENTTAGDENY from message 005 in server, do not send typing messages if "typing" client tag is denied 2021-08-08 18:37:15 +02:00
Sébastien Helleu 415ea95eb4 core: update ChangeLog (issue #1668) 2021-08-08 09:03:22 +02:00
Adam Saponara ede09a843c php: add ifdef for zend_file_handle.filename 2021-08-08 09:00:24 +02:00
Adam Saponara 5442612bc9 php: fix PHP 8+ build 2021-08-08 09:00:24 +02:00
Sébastien Helleu 2b12b4077a php: add detection of PHP 8.0, fix compilation errors 2021-08-08 09:00:24 +02:00
Sébastien Helleu 61c3169068 core: add contributor (issue #1656) 2021-08-07 11:20:08 +02:00
Sébastien Helleu 5b48eef4fe core: update ChangeLog (issue #1656) 2021-08-07 11:19:51 +02:00
Sébastien Helleu 9b75118b83 debian: add Spanish FAQ in Debian packaging 2021-08-07 11:15:28 +02:00
Sébastien Helleu def564c5af doc: add build of Spanish FAQ 2021-08-07 11:15:28 +02:00
Victorhck 57ea636fd6 doc: add Spanish version of the FAQ 2021-08-07 11:15:28 +02:00
Victorhck 84d8120060 doc: fix typo in FAQ 2021-08-07 10:56:56 +02:00
Sébastien Helleu 20866a0457 core: fix decoding of attributes in basic ANSI colors (closes #1678) 2021-08-06 20:33:31 +02:00
Sébastien Helleu 79d50837c9 irc: fix read out of bounds in case of malformed AUTHENTICATE message (issue #1679) 2021-08-03 20:01:15 +02:00
Sébastien Helleu 791b910a77 irc: fix SASL authentication when AUTHENTICATE message is received with a server name (closes #1679) 2021-08-03 19:58:13 +02:00
Sébastien Helleu d89c4f559c api: add random integer number in evaluation of expressions with "random:min,max" 2021-08-03 19:46:41 +02:00
Nils Görs 0be4020b68 core: update German translations 2021-08-03 18:30:47 +02:00
Sébastien Helleu 72a9b87c1c irc: display a different message for setname applied on self and other nicks (closes #1676) 2021-08-01 10:30:06 +02:00
Nils Görs 88d59de940 doc: update German documentation 2021-07-12 09:51:27 +02:00
Sébastien Helleu 6ff46776a4 doc: rename secured data name in IRC server example (user's guide) 2021-07-11 21:56:28 +02:00
Sébastien Helleu 77d96fec23 doc: fix columns width in user's guide 2021-07-10 20:08:36 +02:00
Sébastien Helleu 9404097756 doc: add chapters on IRC servers, channels, private messages (user's guide) 2021-07-10 18:35:57 +02:00
Sébastien Helleu a16616637a irc: remove unneeded message about Diffie-Hellman shared secret exchange during SSL connection to server (closes #857) 2021-07-10 16:02:19 +02:00
Sébastien Helleu 2b1582c816 core: add lint with bandit in CI 2021-07-09 23:56:24 +02:00
Sébastien Helleu efea27bb24 relay: remove dead assignment 2021-07-08 23:02:50 +02:00
Sébastien Helleu 6052c1a5c0 doc: update German auto-generated file 2021-07-04 20:50:41 +02:00
Sébastien Helleu 3199877bc0 core: add bar item "typing" in status bar by default 2021-07-04 20:49:58 +02:00
Sébastien Helleu b0d4b9aaba typing: remove trailing space in translated message 2021-07-04 19:42:30 +02:00
Nils Görs 6a1425d5ba core: update German translations 2021-07-04 19:18:35 +02:00
Sébastien Helleu 64b52da406 typing: add option typing.look.input_min_chars 2021-07-04 14:02:15 +02:00
Sébastien Helleu 5ae4af1549 core: update ChangeLog 2021-07-04 13:37:52 +02:00
Sébastien Helleu f79929b382 core: update translations 2021-07-04 13:36:32 +02:00
Sébastien Helleu a4507539fb typing: add option typing.look.item_max_length 2021-07-04 13:27:33 +02:00
Sébastien Helleu 5b87e0c544 api: add function string_cut 2021-07-04 13:27:33 +02:00
Sébastien Helleu 1746e832ec typing: remove hashtables when typing is turned off 2021-07-04 13:27:33 +02:00
Sébastien Helleu ed24930547 typing: add note for translators 2021-07-04 13:27:33 +02:00
Sébastien Helleu 7c83ee02f2 tests: add tests on typing plugin functions 2021-07-04 13:27:33 +02:00
Sébastien Helleu 8dc75564c2 doc: add typing plugin files in developer's guide 2021-07-04 13:27:33 +02:00
Sébastien Helleu 5b7f55090b build: add typing plugin in Cygwin packaging 2021-07-04 13:27:33 +02:00
Sébastien Helleu de61048cd2 debian: add typing plugin in Debian packaging 2021-07-04 13:27:33 +02:00
Sébastien Helleu 252d1bbc9d doc: add file typing.conf in man page 2021-07-04 13:27:33 +02:00
Sébastien Helleu 0355f3fc1a doc: add chapter on typing extension in user's guide 2021-07-04 13:27:33 +02:00
Sébastien Helleu 09d871deb4 doc: add column for min WeeChat version in function buffer_set (plugin API reference) 2021-07-04 13:27:33 +02:00
Sébastien Helleu 503a3cb755 doc: add column for min WeeChat version in function hook_set (plugin API reference) 2021-07-04 13:27:33 +02:00
Sébastien Helleu c127d1693a doc: add column for min WeeChat version in function hook_modifier_exec (plugin API reference) 2021-07-04 13:27:33 +02:00
Sébastien Helleu 134f4374f8 doc: add column for min WeeChat version in function hook_modifier (plugin API reference) 2021-07-04 13:27:33 +02:00
Sébastien Helleu ab916d3d90 doc: add column for min WeeChat version in function hook_hsignal (plugin API reference) 2021-07-04 13:27:33 +02:00
Sébastien Helleu 3d54365d67 doc: add column for min WeeChat version in function hook_process_hashtable (plugin API reference) 2021-07-04 13:27:33 +02:00
Sébastien Helleu 3c920f9a80 doc: add typing signals in plugin API reference 2021-07-04 13:27:33 +02:00
Sébastien Helleu 954f943e8e irc, typing: display typing status for IRC nicks 2021-07-04 13:27:33 +02:00
Sébastien Helleu bba300e191 typing: translate strings in typing plugin sources 2021-07-04 13:27:33 +02:00
Sébastien Helleu 7954dbc1f4 typing: replace linked list with a hashtable to store typing status on buffers 2021-07-04 13:27:33 +02:00
Sébastien Helleu b108e97085 irc: send typing status as TAGMSG to other users 2021-07-04 13:27:33 +02:00
Sébastien Helleu dccf605e66 typing: add typing plugin 2021-07-04 13:27:32 +02:00
Sébastien Helleu b585ec09f8 core: fix number of bytes read in function dir_file_copy 2021-07-03 16:50:30 +02:00
Sébastien Helleu 5253478279 script: fix move of installed script on another filesystem (closes #1667) 2021-07-03 16:06:02 +02:00
Sébastien Helleu 8a11a18dc5 api: add function file_copy (issue #1667) 2021-07-03 16:04:50 +02:00
Sébastien Helleu 9432b44a2b irc: remove dead assignments in SASL functions 2021-07-02 21:58:50 +02:00
Sébastien Helleu 1ac800906b doc: update Polish auto-generated files 2021-06-29 00:17:18 +02:00
Krzysztof Korościk 5d4adf8010 doc: updated polish translation 2021-06-28 21:43:37 +02:00
Krzysztof Korościk 689a2c1705 po: updated polish translation 2021-06-28 21:12:17 +02:00
Sébastien Helleu 9bd737ae1a doc: update German auto-generated file 2021-06-28 20:35:06 +02:00
Nils Görs f1761b66c6 core: update German translations 2021-06-28 08:58:28 +02:00
Sébastien Helleu 2205bb6b45 core: add capability message-tags in release notes 2021-06-27 10:41:24 +02:00
Sébastien Helleu e84a3676f6 core: add note about buffers that are not opened in /help layout 2021-06-27 10:35:04 +02:00
Sébastien Helleu 253598d83c doc: mention WeeChat version for WEECHAT_RC_OK_EAT in signals "irc_raw_in" and "irc_in" (plugin API reference) (issue #1657) 2021-06-27 09:56:45 +02:00
Sébastien Helleu ff6bc95429 doc: remove tag "translation missing" in French user's guide (issue #1642) 2021-06-27 09:53:47 +02:00
Sébastien Helleu 61a6b0c705 core: add contributor (issue #1657) 2021-06-27 09:49:36 +02:00
Simon Ser ff8beb1918 irc: allow signals "irc_raw_in" and "irc_in" to eat messages (issue #1657)
This is useful to implement IRC protocol extensions which introduce
new commands.
2021-06-27 09:48:16 +02:00
Ivan Pešić 59853d9b30 doc: update Serbian translations 2021-06-27 09:26:50 +02:00
Sébastien Helleu a48a615613 api: remember insertion order in hashtables 2021-06-26 21:37:02 +02:00
Sébastien Helleu 5a59482cc8 doc: update German auto-generated file 2021-06-25 13:35:16 +02:00
Nils Görs 2478a4187a core: update German translations 2021-06-25 13:27:20 +02:00
Sébastien Helleu 0fb88527ce irc: implement IRCv3.2 SASL authentication, add command /auth (closes #413) 2021-06-25 11:15:22 +02:00
Sébastien Helleu 7a0020f067 irc: fix comment on TAGMSG callback function (issue #1654) 2021-06-25 10:41:27 +02:00
Sébastien Helleu f662ca9398 doc: update German auto-generated files 2021-06-25 10:37:32 +02:00
Nils Görs 8f19798834 core: update German translations 2021-06-25 09:30:14 +02:00
Sébastien Helleu 22a7e18842 irc: add support of capability "message-tags" (closes #1654) 2021-06-24 21:04:52 +02:00
Sébastien Helleu 51123b755d core: add missing source files for gettext 2021-06-24 21:02:13 +02:00
Sébastien Helleu b1cf12700d irc: add keys/values with tags in output of irc_message_parse_to_hashtable (issue #1654)
Key is "tag_xxx" (where "xxx" is the name of tag) and value is the unescaped
tag value.
2021-06-24 21:02:03 +02:00
Sébastien Helleu 8ea1ee06e5 irc: add support of TAGMSG messages (issue #1654) 2021-06-24 21:01:22 +02:00
Sébastien Helleu 23c46c3f2b irc: escape/unescape IRC message tags values (issue #1654)
Spec: https://ircv3.net/specs/extensions/message-tags#escaping-values
2021-06-24 20:59:21 +02:00
Sébastien Helleu b3b4ef648b core: fix use of uninitialized hash when call to weecrypto_hmac fails 2021-06-23 20:46:53 +02:00
Sébastien Helleu 60b9e36ae2 core: fix function string_match with joker in the string if multiple words matched in input string
Before fix:

  string_match("script.color.text_description", "*script*color*", 0) => 0

After fix:

  string_match("script.color.text_description", "*script*color*", 0) => 1
2021-06-22 21:54:16 +02:00
Sébastien Helleu 3d3cdf3884 tests: fix modifier name in comment 2021-06-21 19:58:53 +02:00
Sébastien Helleu e04cc87f60 irc: set notify level to "private" for received WALLOPS 2021-06-21 19:57:54 +02:00
Sébastien Helleu f2d1acb899 core: fix chapter name in release notes 2021-06-20 08:53:45 +02:00
Sébastien Helleu 1fb2fcbbd4 doc: update German auto-generated file 2021-06-19 18:46:45 +02:00
Nils Görs 296f795ff3 core: update German translations 2021-06-19 18:43:06 +02:00
Sébastien Helleu ef318cb70c irc: enable all capabilities by default (supported by both server and WeeChat) (closes #320)
Capabilities can be excluded with the format: "*,!account-*,!extended-join".
2021-06-19 18:22:49 +02:00
Sébastien Helleu 947f73bd50 irc: add option irc.look.display_account_message (issue #320) 2021-06-19 18:14:38 +02:00
Sébastien Helleu 5a89825669 irc: add option irc.look.display_extended_join (issue #320) 2021-06-19 18:12:22 +02:00
Sébastien Helleu eb2a42c99e doc: update German auto-generated file 2021-06-19 18:10:15 +02:00
Nils Görs 60d4489b5e core: update German translations 2021-06-18 08:36:21 +02:00
Sébastien Helleu 2225ac4e56 core: add option "certs" in command /debug 2021-06-17 21:51:18 +02:00
Sébastien Helleu fa785e8668 doc: update German auto-generated files 2021-06-17 21:48:39 +02:00
Sébastien Helleu 0ceccb9798 tests: fix tests on signal_search_number 2021-06-16 12:34:30 +02:00
Sébastien Helleu 0b7e4977be core: fix build on macOS (closes #1662) 2021-06-16 12:34:14 +02:00
Sébastien Helleu bfa0b4376c core: add build on macOS in CI 2021-06-16 12:32:06 +02:00
Nils Görs 70c1a002e3 doc: update German documentation 2021-06-16 10:50:21 +02:00
Nils Görs e4b6db5de2 core: update German translations 2021-06-16 10:42:27 +02:00
Sébastien Helleu e8cdda318f irc: drop support of DH-BLOWFISH and DH-AES SASL mechanisms (closes #175) 2021-06-15 21:49:45 +02:00
Sébastien Helleu 51740eb21e doc: keep previous msgids of translated messages in .po files 2021-06-15 20:34:25 +02:00
Sébastien Helleu 936e2fddaf core: update ChangeLog 2021-06-15 18:56:46 +02:00
Sébastien Helleu 70b66c4f6b irc: add command /setname, add support of message and capability "setname" (closes #1653) 2021-06-15 18:56:41 +02:00
Sébastien Helleu 0525922ee4 irc: always set realname in nicks even when extended-join capability is not enabled (issue #1653) 2021-06-15 18:50:22 +02:00
Sébastien Helleu b8baee1c06 irc: add support of FAIL/WARN/NOTE messages (issue #1653)
Spec: https://ircv3.net/specs/extensions/standard-replies
2021-06-15 18:49:49 +02:00
Sébastien Helleu 88edc19149 doc: update user's guide translations (issue #1642) 2021-06-14 21:39:27 +02:00
Giuseppe Bilotta f6a4841dab doc: ref the layout, buffer and window sections and commands
Add some references between the Screen layout and Buffers and windows
sections, linking also to the appropriate commands.

This should make it easier to discover the `/layout` command and its
relevance to the windows and buffer management.

(Small contribution to GitHub issue #1641)
2021-06-14 21:38:45 +02:00
Sébastien Helleu 19e41eb28a core: add contributor (issue #1655) 2021-06-13 16:30:24 +02:00
eevan78 31b22fec09 doc: add Serbian translations 2021-06-13 16:28:33 +02:00
Krzysztof Korościk 1624b0ba97 doc: updated polish translation 2021-06-13 14:59:07 +02:00
Krzysztof Korościk 9fe937a7fd po: updated polish translation 2021-06-13 14:41:02 +02:00
Sébastien Helleu f6d1991833 Version 3.3-dev 2021-06-13 09:51:42 +02:00
Sébastien Helleu 70c09f1f5a Version 3.2 2021-06-13 09:28:25 +02:00
Sébastien Helleu 1adf6927e5 irc: fix translation of SASL errors 2021-06-13 09:16:09 +02:00
Sébastien Helleu de6575dd32 doc: update Polish auto-generated files 2021-06-10 21:28:15 +02:00
Krzysztof Korościk 4b3785ad1e po: updated polish translation 2021-06-10 00:18:03 +02:00
Sébastien Helleu 2a71d79b37 doc: update German auto-generated file 2021-06-07 07:13:54 +02:00
Nils Görs 5775e9cd10 core: update German translations 2021-06-05 23:09:34 +02:00
Sébastien Helleu 7dd3b0016c Version 3.2-rc1 2021-06-04 21:30:54 +02:00
Sébastien Helleu f8872c415b doc: add IRC SASL SCRAM mechanisms in user's guide (issue #1628) 2021-06-01 21:29:55 +02:00
Sébastien Helleu 8c57e8abd3 irc: add comments about parameter sasl_error (issue #1628) 2021-06-01 21:17:13 +02:00
Sébastien Helleu e365e66eeb irc: add support of SASL mechanisms SCRAM-SHA-1, SCRAM-SHA-256 and SCRAM-SHA-512 (closes #1628) 2021-06-01 20:45:11 +02:00
Sébastien Helleu 5cffb7179f api: add function crypto_hmac (issue #1628) 2021-06-01 20:39:04 +02:00
Sébastien Helleu 6ac6cf7293 tests: add test of base64 encode/decode with NUL char in string 2021-06-01 20:39:04 +02:00
Sébastien Helleu 576406888c doc: update German auto-generated files 2021-06-01 20:39:04 +02:00
Nils Görs ae60c3ec66 core: update German translations 2021-05-30 19:06:05 +02:00
Sébastien Helleu 466fed4f5b irc: add ${target} in help of server msg_kick option 2021-05-30 15:22:30 +02:00
Sébastien Helleu b21589944e core, irc, script: fix typos 2021-05-29 14:33:13 +02:00
Sébastien Helleu 4a41625989 irc: add variable "${target}" (target nick) in commands /kick and /kickban 2021-05-29 14:26:30 +02:00
Nils Görs a9b976274e doc: update German documentation 2021-05-28 13:46:02 +02:00
Sébastien Helleu 1181ab454e doc: use secured data in relay examples (user's guide) 2021-05-28 13:37:31 +02:00
Nils Görs c676148a63 core: update German translations 2021-05-28 09:30:29 +02:00
Victorhck f3428d48f3 doc: update Spanish quickstart guide 2021-05-27 20:59:53 +02:00
Sébastien Helleu 557dd8f4a5 core: update translations (issue #1647) 2021-05-27 18:28:52 +02:00
Filip H.F. "FiXato" Slagter d4f3bc596d clarify (max) bar size to be in chars/lines
(max) bar size was described to be in chars, though this only applies to the left/right bars. This change clarifies that top/bottom bars would have their size defined in lines.
2021-05-27 18:14:18 +02:00
Filip H.F. "FiXato" Slagter ddc5d56a65 Typo fix
Zomming -> Zooming
2021-05-26 19:53:11 +02:00
Sébastien Helleu b94907c249 doc: replace freenode-tor by a generic TOR example in user's guide 2021-05-26 10:07:59 +02:00
Sébastien Helleu dfdd5b1c50 core: add signals "cursor_start" and "cursor_end" 2021-05-26 08:53:31 +02:00
Sébastien Helleu 7cc61cdbb3 core: replace freenode by libera in command examples 2021-05-25 18:44:10 +02:00
Sébastien Helleu e5f58b77c1 core, buflist, irc, relay: replace freenode by libera in comments 2021-05-25 13:39:55 +02:00
Sébastien Helleu 18c82fc5c7 tests: replace freenode by libera in tests 2021-05-25 13:38:12 +02:00
Sébastien Helleu f55dcde4ff doc: replace freenode by libera in release notes 2021-05-25 13:37:43 +02:00
Sébastien Helleu a25f0f1928 doc: replace freenode by libera in contributing guide 2021-05-25 13:37:24 +02:00
Sébastien Helleu c20d3778d6 doc: replace freenode by libera in man page 2021-05-25 07:59:21 +02:00
Sébastien Helleu 1a7e49ac3f doc: replace freenode by libera in user's guide 2021-05-25 07:56:07 +02:00
Sébastien Helleu 8bd0df9b70 doc: replace freenode by libera in tester's guide 2021-05-25 07:34:01 +02:00
Sébastien Helleu afaff533c8 doc: replace freenode by libera in scripting guide 2021-05-25 07:27:13 +02:00
Sébastien Helleu 08ab8bef83 doc: replace freenode by libera in replay protocol 2021-05-25 07:22:32 +02:00
Sébastien Helleu 14c5e656f2 doc: replace freenode by libera in plugin API reference 2021-05-25 07:13:44 +02:00
Sébastien Helleu dc46bbf63d doc: replace freenode by libera in FAQ 2021-05-25 07:07:12 +02:00
Sébastien Helleu 0577fd1c99 doc: replace freenode by libera in quickstart guide 2021-05-25 07:02:55 +02:00
Krzysztof Korościk 6915f4e4c0 doc: updated polish translation 2021-05-24 22:52:51 +02:00
Sébastien Helleu f7dd2dbd55 doc: update Polish auto-generated files 2021-05-24 13:00:09 +02:00
Krzysztof Korościk d436ab6b0d po: updated polish translation 2021-05-23 18:25:01 +02:00
Sébastien Helleu 0886b38725 doc: update German auto-generated file 2021-05-23 08:15:33 +02:00
Nils Görs e3f4c4811f core: update German translations 2021-05-22 23:42:16 +02:00
Sébastien Helleu 35b35f6923 core: fix typo 2021-05-22 09:47:30 +02:00
Sébastien Helleu f8419c6aa6 doc: update auto-generated files 2021-05-22 09:17:36 +02:00
Sébastien Helleu 9ac3f887a5 core: add split of commands before evaluation in release notes (issue #1643) 2021-05-22 09:16:32 +02:00
Sébastien Helleu 15b001b011 core: update translations (issue #1643) 2021-05-22 08:58:36 +02:00
Sébastien Helleu d949ebb088 core: split signal command before evaluating it (issue #1643) 2021-05-22 08:52:46 +02:00
Sébastien Helleu b74af1d2da core: split startup command before evaluating it (issue #1643) 2021-05-22 08:51:38 +02:00
Sébastien Helleu e350437c81 irc: split server command before evaluating it (issue #1643) 2021-05-22 08:48:24 +02:00
Sébastien Helleu 4065972000 core: fix tests when NLS is disabled 2021-05-21 13:51:47 +02:00
Giuseppe Bilotta 916f57f31d core: fix build error if ENABLE_NLS is OFF
wee-eval.c calls gettext directly, but gettext is not a function if
ENABLE_NLS is off. Fix by defining a gettext macro (that expands to its
first argument) if NLS support is disabled.
2021-05-21 13:22:05 +02:00
Sébastien Helleu badd231b82 core: add build without NLS in CI 2021-05-21 13:19:16 +02:00
Sébastien Helleu 2f2cf55f74 doc: format script with black 2021-05-20 20:07:36 +02:00
Nils Görs 5d4ee9e471 core: update German translations 2021-05-20 14:19:01 +02:00
Sébastien Helleu d09fe80fd1 core: merge two entries into one about GnuTLS options 2021-05-18 21:34:24 +02:00
Sébastien Helleu 447abad79e core: display old default values for options affected by XDG directories in release notes 2021-05-18 21:30:34 +02:00
Sébastien Helleu b43958ac92 irc: use constant GNUTLS_TLS1_3 only with GnuTLS >= 3.6.3
This constant was introduced in GnuTLS 3.6.3.

This fixes a build error on these old distributions:

- Debian Stretch
- Debian Jessie
- Ubuntu Bionic
- Ubuntu Xenial
2021-05-17 12:59:41 +02:00
Sébastien Helleu a071ee5012 tests: remove dependency on French locale in eval tests 2021-05-16 20:17:07 +02:00
Sébastien Helleu cf7ac76de9 tests: add missing include of locale.h in eval tests 2021-05-16 19:09:18 +02:00
Sébastien Helleu 215f12d859 tests: remove commented includes 2021-05-16 19:08:35 +02:00
Nils Görs 59d1811987 core: update German translations 2021-05-16 16:29:54 +02:00
Sébastien Helleu 89e43eaf40 core: set server name when connecting to server with TLS (SNI extension) only if it's not an IPV4/IPv6 (closes #1635) 2021-05-16 14:52:11 +02:00
Sébastien Helleu e03642e9df tests: add tests on translation in evaluated expressions 2021-05-16 14:09:07 +02:00
Sébastien Helleu 58c66474ce core: add contributor (issue #1609) 2021-05-16 13:50:19 +02:00
Emir Sarı 431b799b01 core: update Turkish translations (issue #1609) 2021-05-16 13:39:44 +02:00
Sébastien Helleu 4c25151f31 core: move build option CA_FILE in build section 2021-05-16 10:11:23 +02:00
Sébastien Helleu dd916d5e52 doc: update auto-generated files 2021-05-16 10:08:04 +02:00
Sébastien Helleu d18680e442 core: update ChangeLog (issue #1622) 2021-05-16 10:01:17 +02:00
Sébastien Helleu 92410e9949 irc: sort config options alphabetically (issue #1622) 2021-05-16 10:01:14 +02:00
Sébastien Helleu e6a3d08704 buflist, irc, xfer: do not translate "cleartext" in buffer local variable "tls_version" (issue #1622)
The text "cleartext" is translated for display only: directly with gettext in
IRC plugin and with "${translate:${tls_version}}" in the buflist evaluated
format.
2021-05-16 10:01:07 +02:00
Sébastien Helleu 5bce484c01 api: add translated string in evaluation of expressions with "translate:xxx" (issue #1622) 2021-05-16 10:01:03 +02:00
Sébastien Helleu 7e10038f4b core: update translations (issue #1622) 2021-05-16 10:00:57 +02:00
Andrew Potter 94c902adfc irc, buflist: add bar item "tls_version" with options for colors, add buflist format "${format_tls_version}" (issue #1622) 2021-05-16 10:00:30 +02:00
Nils Görs 670c5cd745 core: update German translations 2021-05-15 23:45:36 +02:00
Sébastien Helleu a7db77e253 core: remove obsolete translations 2021-05-15 16:53:14 +02:00
Sébastien Helleu 3102eccda2 core: fix French translation of /help fifo 2021-05-15 16:52:43 +02:00
Sébastien Helleu b714d3dc91 core: fix punctuation in German translation 2021-05-15 14:40:01 +02:00
Nils Görs 0d8aeee738 core: update German translations 2021-05-15 13:58:01 +02:00
Sébastien Helleu 9d96d5d450 doc: add missing names for anchors in scripting guide 2021-05-14 19:19:49 +02:00
Sébastien Helleu 168dbaf020 doc: add link to Python stub in scripting guide (issue #1377) 2021-05-14 19:19:45 +02:00
Sébastien Helleu 13cb870b9a core: add generator and Python stub file for WeeChat API (issue #1377) 2021-05-14 19:19:45 +02:00
Sébastien Helleu a5903e8020 doc: add type annotations in Python prototype (scripting guide) (issue #1377) 2021-05-13 20:24:59 +02:00
Sébastien Helleu fafe2c9d2e doc: add type annotations in Python prototypes (plugin API reference) (issue #1377) 2021-05-13 20:24:59 +02:00
Sébastien Helleu 3e122ed900 doc: add types of constants in scripting guide (issue #1377) 2021-05-13 15:47:21 +02:00
Sébastien Helleu 33767b22f3 doc: fix translations in Italian and Japanese plugin API reference 2021-05-13 09:57:50 +02:00
Sébastien Helleu 11b311ce2f core: add GnuTLS CA changes in release notes 2021-05-12 21:00:21 +02:00
Sébastien Helleu bbdeb51bc1 doc: add missing French translations in user's guide 2021-05-12 20:44:07 +02:00
Sébastien Helleu c588ee21bc core: improve options to load GnuTLS system/user CAs (closes #972)
Changes:

* new option: weechat.network.gnutls_ca_system
* option weechat.network.gnutls_ca_file renamed to
  weechat.network.gnutls_ca_user
* reload certificates when options are changed
* remove build option CA_FILE
2021-05-12 20:39:40 +02:00
Sébastien Helleu b7112e4090 core: add slack.py version in release notes 2021-05-11 22:41:13 +02:00
Sébastien Helleu be575e5400 core: update translations (issue #1285) 2021-05-11 21:39:46 +02:00
Sébastien Helleu 7f8f5f94e3 core: update ChangeLog (issue #1285) 2021-05-11 21:07:43 +02:00
Sébastien Helleu 6e528a1d62 core: add XDG directories in release notes (issue #1285) 2021-05-11 21:07:41 +02:00
Sébastien Helleu a9e210121b fifo: add PID in default FIFO pipe filename (issue #1285)
This is to prevent two WeeChat using the same runtime directory to use the same
FIFO pipe.
2021-05-11 21:07:39 +02:00
Sébastien Helleu 6925ea3ccb doc: add missing names for anchors in user's guide (issue #1285) 2021-05-11 21:07:36 +02:00
Sébastien Helleu 70cdf21681 doc: add XDG directories support in docs (issue #1285) 2021-05-11 21:07:30 +02:00
Sébastien Helleu 87d4ea9286 doc: remove tag "translation missing" in French user's guide (issue #1285) 2021-05-11 21:07:28 +02:00
Sébastien Helleu d9f5bce6ee doc: add file wee-dir.c in developer's guide (issue #1285) 2021-05-11 21:07:26 +02:00
Sébastien Helleu f71b4f78fd doc: add link to CMake option in environment variable WEECHAT_HOME (user's guide) (issue #1285) 2021-05-11 21:07:24 +02:00
Sébastien Helleu a3f8647a72 doc: change default value of WEECHAT_HOME CMake option to empty string (user's guide) (issue #1285) 2021-05-11 21:07:21 +02:00
Sébastien Helleu 664fb12db7 doc: remove wrong default value of option weechat.network.gnutls_ca_file (user's guide) (issue #1285) 2021-05-11 21:07:19 +02:00
Sébastien Helleu cb4c3b0226 doc: use XDG config directory in Relay SSL chapter (user's guide) (issue #1285) 2021-05-11 21:07:17 +02:00
Sébastien Helleu 7d75d82f6a doc: use XDG config directory in chapter on IRC server certificate (user's guide) (issue #1285) 2021-05-11 21:07:15 +02:00
Sébastien Helleu 49844a71f0 doc: use XDG config directory in SASL ECDSA-NIST256P-CHALLENGE chapter (user's guide) (issue #1285) 2021-05-11 21:07:11 +02:00
Sébastien Helleu 5210d501d4 doc: replace "%h" by "${weechat_config_dir}" in examples of values for IRC server option "ssl_cert" (user's guide) (issue #1285) 2021-05-11 21:07:09 +02:00
Sébastien Helleu 3833b965e4 doc: replace "%h" by "${weechat_config_dir}" in examples of values for IRC server option "sasl_key" (user's guide) (issue #1285) 2021-05-11 21:07:07 +02:00
Sébastien Helleu 703106a31f core: mention evaluation with string_eval_path_home for CMake/autotools option CA_FILE (issue #1285) 2021-05-11 21:07:04 +02:00
Sébastien Helleu 43ba8d3b73 xfer: remove "%h" from /help xfer.file.upload_path (issue #1285) 2021-05-11 21:07:02 +02:00
Sébastien Helleu 6170f97cd6 xfer: change default value of option xfer.file.download_path to "${weechat_data_dir}/xfer" (issue #1285) 2021-05-11 21:07:00 +02:00
Sébastien Helleu 19bf10647c script: change default value of option script.scripts.path to "${weechat_cache_dir}/script" (issue #1285) 2021-05-11 21:06:58 +02:00
Sébastien Helleu 4459119409 relay: change default value of option relay.network.ssl_cert_key to "${weechat_config_dir}/ssl/relay.pem" (issue #1285) 2021-05-11 21:06:56 +02:00
Sébastien Helleu 047a668275 relay: remove "%h" from help on UNIX socket path option (issue #1285) 2021-05-11 21:06:54 +02:00
Sébastien Helleu 36847bd305 relay: remove "%h" from /help relay (issue #1285) 2021-05-11 21:06:51 +02:00
Sébastien Helleu 005ef8a4a9 logger: change default value of option logger.file.path to "${weechat_data_dir}/logs" (issue #1285) 2021-05-11 21:06:49 +02:00
Sébastien Helleu 7e79145d46 fifo: change default value of option fifo.file.path to "${weechat_runtime_dir}/weechat_fifo" (issue #1285) 2021-05-11 21:06:46 +02:00
Sébastien Helleu d2c5bba356 core: change default value of option weechat.plugin.path to "${weechat_data_dir}/plugins" (issue #1285) 2021-05-11 21:06:42 +02:00
Sébastien Helleu 0f9640a5f3 core: split WeeChat home in 4 directories, use XDG directories by default (issue #1285)
The 4 directories (which can be the same):

- config: configuration files, certificates
- data: log/upgrade files, local plugins, scripts, xfer files
- cache: script repository, scripts downloaded (temporary location)
- runtime: FIFO pipe, relay UNIX sockets
2021-05-11 21:06:34 +02:00
Sébastien Helleu 4c5fcb743b core: move home directory functions from weechat.c to wee-dir.c (issue #1285) 2021-05-11 21:06:32 +02:00
Sébastien Helleu 269576eea2 core: move directory/file functions from wee-util.c to wee-dir.c (issue #1285) 2021-05-11 21:06:29 +02:00
Sébastien Helleu 9eecad496d logger: remove unused variable weechat_dir (issue #1285) 2021-05-11 21:06:27 +02:00
Sébastien Helleu 5361722699 core: set WeeChat home to empty string by default in CMake and autotools (issue #1285) 2021-05-11 21:06:24 +02:00
Sébastien Helleu e07221d7c5 relay: evaluate option relay.network.ssl_cert_key (issue #1285) 2021-05-11 21:06:22 +02:00
Sébastien Helleu 39b629550b irc: evaluate options irc.server_default.ssl_cert and irc.server.xxx.ssl_cert (issue #1285) 2021-05-11 21:06:19 +02:00
Sébastien Helleu d7d594873b irc: evaluate options irc.server_default.sasl_key and irc.server.xxx.sasl_key (issue #1285) 2021-05-11 21:06:17 +02:00
Sébastien Helleu f923524a21 core: evaluate option weechat.plugin.path (issue #1285) 2021-05-11 21:06:13 +02:00
Sébastien Helleu e5d18e1221 core: evaluate option weechat.network.gnutls_ca_file (issue #1285) 2021-05-11 21:05:42 +02:00
Sébastien Helleu 9e7d052517 core: update ChangeLog (issue #1636) 2021-05-08 07:33:17 +02:00
Sébastien Helleu f3f3c54372 core: add detection of function mallinfo2 in autotools (issue #1636) 2021-05-08 07:33:12 +02:00
Andrew Potter b222e75019 core: Use mallinfo2() when available
mallinfo() is deprecated in glibc 2.33
2021-05-08 07:25:44 +02:00
Sébastien Helleu aa7860c942 doc: update German auto-generated file 2021-05-05 13:59:04 +02:00
Sébastien Helleu ed560a785a doc: fix list of supported OS in FAQ 2021-05-05 13:57:11 +02:00
Sébastien Helleu e95fdc3a0a core: display a warning when the file with certificate authorities is not found (option weechat.network.gnutls_ca_file) 2021-05-04 20:37:15 +02:00
Sébastien Helleu 9f0e7fb47e xfer: make file transfer fail when option xfer.file.auto_rename is off and file already exists (closes #1633) 2021-04-26 20:51:17 +02:00
Nils Görs bcd889cf90 doc: update German documentation 2021-04-21 07:53:47 +02:00
Sébastien Helleu 65ea67204c doc: translate changes in chapter on bar conditions (user's guide) 2021-04-18 12:08:11 +02:00
Tobias Rehbein 2c674a54d4 doc: Update weechat.bar.*.condition to use info:term_width
In cf93e953b the `weechat.bar.*.condition` examples have been changed to use
`${info:term_width}` instead of `${window.win_width}`. The user guide still
shows the old example. This commit syncs the user guide with the on-line help.
2021-04-18 12:00:29 +02:00
Nils Görs 2fbedfec1a doc: update German documentation 2021-04-18 09:58:09 +02:00
Sébastien Helleu 1181ac069e doc: add link to Archlinux wiki page about core dump files (user's guide) 2021-04-17 14:21:50 +02:00
Nils Görs 950c2bb898 core: update German translations 2021-04-13 11:44:40 +02:00
Sébastien Helleu 6b62456119 Revert "core: add option "-save" in command /upgrade (closes #1630)"
This reverts commit 1df1903d23.

This is not so easy to implement: it requires saving state of plugins, and
plugins like irc can not save the connected state (except in a real upgrade
case where the sockets are still valid after exec of the new binary).
2021-04-13 00:11:11 +02:00
Sébastien Helleu 1df1903d23 core: add option "-save" in command /upgrade (closes #1630) 2021-04-12 20:48:32 +02:00
Sébastien Helleu ae39b7ce61 tests: fix if/else blocks in trigger tests 2021-04-11 10:42:24 +02:00
Sébastien Helleu 044bcd0751 doc: improve display of WeeChat version in info_hashtable "irc_message_parse" (scripting guide) 2021-04-11 09:47:13 +02:00
Sébastien Helleu 5d30e0faac doc: mark info "python2_bin" as deprecated since version 2.6 (plugin API reference) 2021-04-11 09:31:49 +02:00
Sébastien Helleu e58c827c91 trigger: add tests on main trigger functions 2021-04-11 09:20:49 +02:00
Sébastien Helleu 1f0636bab6 irc: remove unused variable ptr_address and dead code 2021-04-10 14:11:11 +02:00
Sébastien Helleu 7bd23700de irc: remove dead assignment on variable pos_message 2021-04-10 13:26:46 +02:00
Sébastien Helleu 937ecb62c4 trigger: remove useless test 2021-04-10 12:21:16 +02:00
Sébastien Helleu 2e67b13edd trigger: check that option is not NULL in function trigger_search_with_option 2021-04-09 21:36:12 +02:00
Sébastien Helleu 7c5cbefd51 trigger: fix description of function trigger_name_valid 2021-04-08 20:56:37 +02:00
Sébastien Helleu b6b78df3d2 trigger: check that trigger is not NULL in functions trigger_rename and trigger_copy 2021-04-08 20:55:37 +02:00
Nils Görs 4da5647e9f doc: update German documentation 2021-04-07 12:38:35 +02:00
Sébastien Helleu fae9bdf8f8 trigger: add variables "${tg_shell_argc}" and "${tg_shell_argvN}" in command trigger evaluated strings (closes #1624) 2021-04-06 18:37:22 +02:00
Sébastien Helleu 3bf585ba04 core: evaluate left/right part of comparison after split on the comparison operator in ${if:xxx} (closes #1627)
To force evaluation of the expression before doing the comparison (less safe),
the "${eval_cond:xxx}" can be used.

With the old behavior we had:

    >> ${if:a==b}
    == [0]
    >> ${if:${raw:a==b}}
    == [0]
    >> ${if:${eval_cond:${raw:a==b}}}
    == [0]

And with the new behavior, we have:

    >> ${if:a==b}
    == [0]
    >> ${if:${raw:a==b}}
    == [1]
    >> ${if:${eval_cond:${raw:a==b}}}
    == [0]
2021-04-04 14:44:18 +02:00
Sébastien Helleu 1aefb0a546 doc: update German auto-generated file 2021-03-29 22:32:56 +02:00
Nils Görs efd5a8bd14 core: update German translations 2021-03-29 09:22:07 +02:00
Sébastien Helleu 4f606ceb64 buflist: improve help on option buflist.look.sort 2021-03-21 09:34:40 +01:00
Sébastien Helleu 027966e5e9 core: update ChangeLog (issue #1621) 2021-03-21 09:01:08 +01:00
Trygve Aaberge 6b23d855d8 buflist: Fix wrong pointers being used in hdata_compare
This used pointer1 and pointer2 which are pointers to the buffers, but
it should use ptr_hotlist1 and ptr_hotlist1 which are pointers to the
hotlists it is trying to compare.
2021-03-21 08:59:37 +01:00
Sébastien Helleu e8a58a27cd core: update ChangeLog (issue #1591, issue #1592) 2021-03-20 13:08:35 +01:00
Trygve Aaberge 472eab38e5 core: Prevent switching to start of visited buffers when jumping to next
If you run /input jump_next_visited_buffer right after switching to a
buffer, weechat changes to the first buffer in the visited buffers list.
That is, it wraps around and goes to the buffer you visited the longest
ago. This patch fixes that.

The reason it happens is that when you switch to a buffer (normally,
i.e. in another way than using jump_previously_visited_buffer/
jump_next_visited_buffer) gui_buffers_visited_index is set to -1 (in
gui_buffer_visited_add). This makes gui_buffer_visited_get_index_next
return 0 because it returns gui_buffers_visited_index + 1, which makes
gui_input_jump_next_visited_buffer jump to the first buffer in the list
of visited buffers.

Fixes #1591
2021-03-20 13:07:20 +01:00
Sébastien Helleu aa4beb99e8 doc: update German auto-generated file 2021-03-20 09:20:51 +01:00
Nils Görs 741c1b4e87 doc: update German documentation 2021-03-20 07:52:35 +01:00
Nils Görs a715403d60 core: update German translations 2021-03-20 06:36:19 +01:00
Sébastien Helleu 40ab0bb11e core: update ChangeLog 2021-03-19 23:27:00 +01:00
Sébastien Helleu 3b76a8dd82 core: add repository ppa:ondrej/php in CI 2021-03-19 07:12:23 +01:00
Sébastien Helleu bcddb06094 core: do not force build of JavaScript plugin in CI 2021-03-19 09:14:59 +01:00
Sébastien Helleu 611ea27edc tests: disable pylint error useless-object-inheritance 2021-03-19 09:14:59 +01:00
Sébastien Helleu bacd50c7a7 core: replace pylint3 by pylint in CI on Ubuntu 20.04 2021-03-19 09:14:59 +01:00
Sébastien Helleu da91ddef98 core: first remove package php7.4-common in CI on Ubuntu 20.04
See: https://github.com/actions/virtual-environments/issues/2859
2021-03-19 09:14:59 +01:00
Sébastien Helleu 692d313fe3 core: switch from Ubuntu 18.04 to 20.04 in CI 2021-03-19 09:14:59 +01:00
Sébastien Helleu 4d96a3a84d core: add pointer name in description of function eval_replace_vars_cb 2021-03-18 07:35:12 +01:00
Sébastien Helleu 0d5b7ae9d0 doc: update German auto-generated files 2021-03-17 21:58:18 +01:00
Sébastien Helleu 8ee7d46605 api: add support of pointer names in function string_eval_expression (direct and in hdata)
These two formats are now supported, if "pointer_name" is present in the
"pointers" hashtable:

* "${pointer_name}": value of pointer (example: "0x1234abcd")
* ${buffer[pointer_name].full_name}: use of a pointer name instead of pointer
  value or list name
2021-03-17 21:57:16 +01:00
Sébastien Helleu c54cadace5 tests: use macros UINT32_C and UINT64_C for integer constants of type uint32_t and uint64_t
This fixes the following compiler warnings: "integer constant is so large that
it is unsigned".
2021-03-17 21:56:43 +01:00
Nils Görs 84d9de798a core: update German translations 2021-03-17 14:16:16 +01:00
Sébastien Helleu e4ff17e162 doc: add section "plugin" in weechat.conf (user's guide) 2021-03-16 19:03:45 +01:00
Sébastien Helleu 0dc7fbcb0c core: add options to customize commands on system signals, quit by default on SIGHUP when not running headless (closes #1595)
New options to customize behavior on signals received, with the default
behavior:

- weechat.signal.sighup: quit in normal mode, reload config in headless
- weechat.signal.sigquit: quit
- weechat.signal.sigterm: quit
- weechat.signal.sigusr1: no command executed by default
- weechat.signal.sigusr2: no command executed by default

The signals SIGUSR1 and SIGUSR2 are introduced by this commit, so it's now
possible to run commands when they are received.

The SIGHUP signal makes now WeeChat quit, it was the behavior before version
2.9 of WeeChat (see commit de1e61f7cd).
2021-03-16 18:47:31 +01:00
Sébastien Helleu bb41de8c02 api: add info "weechat_daemon" 2021-03-14 14:11:06 +01:00
Sébastien Helleu a02a2fbaae doc: use full path /usr/bin/pass in example for option sec.crypt.passphrase_command 2021-03-14 13:38:50 +01:00
Sébastien Helleu e37f2569f9 core: mention /fset command in header comment of configuration files 2021-03-14 11:36:07 +01:00
Sébastien Helleu ab282db3a6 core: update ChangeLog (closes #1618) 2021-03-14 10:56:51 +01:00
Sébastien Helleu 8c793fe7cc fset: add fset bar on configuration reload (issue #1618) 2021-03-14 10:56:24 +01:00
Sébastien Helleu 35b5adbc4c buflist: always add buflist bar when plugin is loaded, hide bar by default if buflist is disabled (issue #1618) 2021-03-14 10:55:48 +01:00
Sébastien Helleu a4440ba8e5 buflist: add buflist bar on configuration reload (issue #1618) 2021-03-14 10:55:24 +01:00
Nils Görs 3bdae5b464 doc: update German documentation 2021-03-13 23:56:16 +01:00
Sébastien Helleu d2c56084f8 doc: add upgrade chapter in user's guide 2021-03-13 15:17:01 +01:00
Sébastien Helleu 5311c103d5 debian: update debian/ubuntu patches with new Standards-Version 2021-03-08 20:48:06 +01:00
Sébastien Helleu 39bd4e2099 debian: fix watch according to download page changes 2021-03-08 20:38:25 +01:00
Sébastien Helleu 35ca5cde9c debian: bump Standards-Version to 4.5.1 2021-03-08 20:37:43 +01:00
Sébastien Helleu c49255a851 core: add missing include of sys/time.h in C headers 2021-03-07 13:21:24 +01:00
Sébastien Helleu 2b1c2d6d05 Version 3.2-dev 2021-03-07 12:11:55 +01:00
Sébastien Helleu ae2f25109c Version 3.1 2021-03-07 11:54:55 +01:00
Sébastien Helleu 7dd7da1d7b core: reorder release notes for version 3.1 2021-03-07 09:45:06 +01:00
Sébastien Helleu 3983e9fa1e core: fix compilation of tests on FreeBSD 2021-03-07 09:33:06 +01:00
Sébastien Helleu 4307733853 debian: update changelog 2021-03-07 08:57:53 +01:00
Sébastien Helleu 4014c1140a doc: update Polish auto-generated files 2021-03-06 19:02:53 +01:00
Krzysztof Korościk 65a732449e doc: updated polish user guide 2021-03-06 18:49:12 +01:00
Krzysztof Korościk 4fd3c5e1d6 po: updated polish translation 2021-03-06 18:10:42 +01:00
Sébastien Helleu e9c8b8bf0f core: add contributor in AUTHORS.adoc (issue #1615) 2021-03-05 21:00:17 +01:00
Sébastien Helleu ca4d7b37c6 core: fix pt_BR translations 2021-03-05 20:51:43 +01:00
Érico Rolim 23a3096e1d core: update pt_BR translations. 2021-03-05 20:50:50 +01:00
Sébastien Helleu c17aeeba29 core: force Ubuntu 18.04 for CI 2021-03-05 20:45:31 +01:00
Sébastien Helleu c3cc06ff27 core: fix quoted line in cursor mode (closes #1602)
Regression was introduced in version 2.7 by commit
93d2dbf3e1.
2021-02-28 17:13:52 +01:00
Sébastien Helleu 3ca58c2fd9 Version 3.1-rc1 2021-02-28 12:06:49 +01:00
Sébastien Helleu 1862f4b3d2 core: add missing "xxx" in format of evaluated expressions (ChangeLog) 2021-02-28 12:03:47 +01:00
Nils Görs f06d434a0c Merge branch 'master' of https://github.com/weechat/weechat 2021-02-27 13:58:11 +01:00
Nils Görs 00d6183cd8 doc: update German documentation 2021-02-27 13:57:49 +01:00
Sébastien Helleu ceaf480ba7 core: fix paragraph in release notes 2021-02-27 13:49:55 +01:00
Sébastien Helleu 0f71b4ccc8 irc: add bar item "irc_nick_prefix" 2021-02-27 13:44:24 +01:00
Sébastien Helleu a811da3a42 doc: add missing available bar items (user's guide) 2021-02-27 12:56:09 +01:00
Sébastien Helleu 83379469aa irc: fix separator between nick and host in bar item "irc_nick_host"
Use "!" instead of "@" to separate nick from host, like it is done in IRC
protocol.

The nick and host is now displayed as "nick!user@host" instead of
"nick@user@host".
2021-02-27 09:02:09 +01:00
Sébastien Helleu 6a7da6d473 fset: fix description of function fset_bar_item_fset_cb 2021-02-27 08:57:32 +01:00
Sébastien Helleu 7b15742a11 doc: fix example of value for bar item "irc_nick_modes" (user's guide) 2021-02-26 18:45:21 +01:00
Sébastien Helleu 5339e6aa17 doc: update German auto-generated file 2021-02-26 18:41:14 +01:00
Nils Görs 2a31544242 core: update German translations 2021-02-26 14:02:42 +01:00
Sébastien Helleu 3d587ad37d core: add info_hashtable "secured_data" 2021-02-25 19:06:47 +01:00
Sébastien Helleu 5725c8561c doc: remove references to Savannah in developer's guide 2021-02-20 11:12:14 +01:00
Sébastien Helleu 49ac7dd9f5 doc: split dependencies in two tables: required and optional (user's guide) 2021-02-19 20:12:18 +01:00
Sébastien Helleu d10e8342d3 core: convert "totp" to upper case in ChangeLog 2021-02-16 07:47:42 +01:00
Sébastien Helleu 1a86036edb doc: update German auto-generated file 2021-02-11 07:16:11 +01:00
Sébastien Helleu ab47c1abf7 core: move line from "New features" to "Bug fixes" (issue #1612) 2021-02-11 07:12:55 +01:00
Nils Görs 69af1ac0ae core: update German translations 2021-02-10 08:10:06 +01:00
Sébastien Helleu b6a935b1c3 core: move line to appropriate version in ChangeLog 2021-02-10 07:56:43 +01:00
Sébastien Helleu 45c372ebc8 core: move line from "New features" to "Bug fixes" (issue #1613) 2021-02-09 20:42:58 +01:00
Sébastien Helleu 840551dcfa doc: update German auto-generated files 2021-02-09 20:37:35 +01:00
Sébastien Helleu 630fe0581f buflist: add option buflist.look.use_items to speed up display of buflist (closes #1613) 2021-02-09 20:34:56 +01:00
Sébastien Helleu d74f2e3183 core: add fixed behavior of command /window splitv in release notes 2021-02-09 20:19:22 +01:00
Sébastien Helleu 00409cba6a core: fix wrong size of the new window after vertical split (closes #1612) 2021-02-08 18:47:44 +01:00
Nils Görs 8a6a135b45 core: update German translations 2021-02-08 13:41:59 +01:00
Sébastien Helleu 47112a113e core: update help on option sec.crypt.passphrase_command, update translations 2021-02-08 13:12:54 +01:00
Sébastien Helleu d08e9aed1c core: update translations 2021-02-07 11:00:12 +01:00
Sébastien Helleu 1c3c8c92c7 core: update ChangeLog (closes #992, closes #993) 2021-02-07 09:52:15 +01:00
Kevin Pulo df12f8de34 core: add options weechat.look.hotlist_update_on_buffer_switch and weechat.look.read_marker_update_on_buffer_switch
Both default to "on" (no change to previous behavior).

If hotlist_update_on_buffer_switch is "off", then when switching away from a
buffer, the hotlist is not cleared.

If read_marker_update_on_buffer_switch is "off", then when switching away from
a buffer, the read marker is not set to the end of the buffer.

This allows users to choose to have fully manual control over when hotlist
counts and buffer read markers are reset.

Fixes #992.
2021-02-07 09:48:19 +01:00
Sébastien Helleu 84d4be1bee core: update ChangeLog (remove option sec.crypt.passphrase_file) 2021-02-06 16:20:11 +01:00
Sébastien Helleu f1c681c832 core: replace option sec.crypt.passphrase_file by sec.crypt.passphrase_command (closes #141)
The command is used to read the passphrase on startup, for example using your
favorite password manager.

Note: only the passphrase is read from the program, the secured data is still
stored encrypted in sec.conf and handled by WeeChat itself.
2021-02-06 16:07:14 +01:00
Sébastien Helleu fe9ec8fbda doc: update German auto-generated files 2021-02-05 20:08:18 +01:00
Sébastien Helleu a93e598c35 core: add raw string in evaluation of expressions with "raw:xxx" (closes #1611) 2021-02-05 20:07:16 +01:00
Nils Görs 64fe602aae core: update German translations 2021-02-05 10:56:49 +01:00
Sébastien Helleu a34959a619 irc: add info "irc_is_message_ignored" 2021-02-03 18:30:32 +01:00
Sébastien Helleu 42a86f0a36 core: add version 3.0.1 in ChangeLog, release notes and weechat.spec 2021-01-31 10:38:57 +01:00
Nils Görs a250a50ca5 core: update German translations 2021-01-31 10:32:26 +01:00
Nils Görs 8bdc58f32d core: update German translations 2021-01-31 09:32:26 +01:00
Sébastien Helleu 691c9a0a0f irc: add function irc_server_get_chantypes 2021-01-30 10:34:23 +01:00
Sébastien Helleu 0c98b0cfa4 irc: use server option "default_chantypes" as fallback in function irc_nick_is_nick 2021-01-30 09:59:04 +01:00
Sébastien Helleu ba892ee5a0 core: update translations 2021-01-30 09:55:02 +01:00
Sébastien Helleu a11c90ab70 core: add contributor in AUTHORS.adoc (issue #1610) 2021-01-30 09:34:30 +01:00
Sébastien Helleu 201979fa8d doc: update auto-generated files with options 2021-01-30 09:32:59 +01:00
Sébastien Helleu dd589cd141 irc: use server option "default_chantypes" as fallback when automatically adding channel type on join 2021-01-30 09:31:31 +01:00
Sébastien Helleu e305b4e960 core: update ChangeLog 2021-01-30 09:25:55 +01:00
Sébastien Helleu ec2ffedab6 irc: improve help on server option "default_chantypes" 2021-01-30 09:25:06 +01:00
Sébastien Helleu 293402143b irc: fix name of option "default_chantypes" in list of server options 2021-01-30 09:24:34 +01:00
Sébastien Helleu e74dd22707 irc: simplify code in function irc_channel_is_channel 2021-01-30 09:05:49 +01:00
Matti Virkkunen bad6dc8a57 irc: make default chantypes configurable 2021-01-30 01:01:51 +02:00
Nils Görs dc8df133ea doc: update German documentation 2021-01-27 07:48:05 +01:00
Sébastien Helleu d465ec2a39 doc: update Polish auto-generated files 2021-01-27 00:06:34 +01:00
Sébastien Helleu fd672a0fa4 doc: add a second note on default configuration files in user's guide 2021-01-27 00:04:30 +01:00
Sébastien Helleu 7b1b482cc7 core: add command "/buffer listvar" in release notes 2021-01-26 23:39:49 +01:00
Sébastien Helleu 7255fac60b core: add contributor in AUTHORS.adoc (issue #1607) 2021-01-16 13:35:54 +01:00
Sébastien Helleu bb6152d8a3 core: update ChangeLog 2021-01-16 13:20:14 +01:00
Jan Palus b142617cca doc: don't build headless man page if headless is disabled 2021-01-16 13:15:45 +01:00
Krzysztof Korościk 1c3cb4364d po: updated polish translation 2021-01-15 21:35:27 +01:00
Krzysztof Korościk c81eac325d doc: updated polish translation 2021-01-15 21:17:37 +01:00
Sébastien Helleu 25ed384418 doc: add missing non-breaking spaces before punctuation in French docs 2021-01-09 20:22:22 +01:00
Nils Görs 84b02c1296 core: update German translations 2021-01-05 09:15:43 +01:00
Sébastien Helleu efc7a588d6 core: update copyright dates 2021-01-02 21:34:16 +01:00
Sébastien Helleu df4b9170f1 irc: remove obsolete comment on translation 2021-01-02 15:22:02 +01:00
Sébastien Helleu b8acaf8a14 irc: fix ambiguity on translation of word "server"
This fixes the following warning:

/usr/bin/xgettext: warning: msgid 'server' is used without plural and with plural.
                            ./src/plugins/irc/irc-bar-item.c:136: Here is the occurrence without plural.
                            ./src/plugins/irc/irc.c:154: Here is the occurrence with plural.
                            Workaround: If the msgid is a sentence, change the wording of the sentence; otherwise, use contexts for disambiguation.
2021-01-02 15:18:26 +01:00
Sébastien Helleu 470e3ef9cf core: move debug_id assignation in macro EVAL_DEBUG_MSG 2021-01-02 14:43:40 +01:00
Sébastien Helleu 943374f789 doc: add note about call to "regfree" after call to "string_regcomp" (plugin API reference) 2021-01-01 18:10:47 +01:00
Sébastien Helleu d413ccdf4f core: add indentation and colors in /eval debug output 2021-01-01 17:08:59 +01:00
Sébastien Helleu 63ead3da49 doc: update German auto-generated file 2021-01-01 15:47:35 +01:00
Nils Görs 565837f75a core: update German translations 2021-01-01 11:21:57 +01:00
Sébastien Helleu 2ad3da03a2 core: display more verbose debug with two "-d" in command /eval
Now a single -d in command /eval shows less debug messages than previous
versions.

To get the same debug messages than previous versions, two -d must be used.
2020-12-31 20:37:43 +01:00
Sébastien Helleu 33c7b96146 core: fix typo in comment 2020-12-30 23:02:37 +01:00
Nils Görs 7b13bb5cf9 doc: update German documentation 2020-12-28 10:14:42 +01:00
Sébastien Helleu 9bc194c898 doc: update question about config files sharing (FAQ) 2020-12-28 00:17:05 +01:00
Sébastien Helleu 0942b04c52 doc: add info about sensitive data in relay.conf (user's guide) 2020-12-28 00:08:45 +01:00
Sébastien Helleu 2e3cef4c41 doc: update Polish auto-generated files 2020-12-27 21:56:10 +01:00
Krzysztof Korościk 05a9a7904c po: updated polish translation 2020-12-27 19:05:51 +01:00
Sébastien Helleu ee9aa28a8c core: do not remove quotes in arguments of command /eval (closes #1601)
Now, /eval -n -c "a" == "a" returns True instead of False.

When quotes were removed, the condition evaluated was: a" == "a (which is
False).
2020-12-25 00:21:03 +01:00
Sébastien Helleu a8abfcd7b4 doc: update German auto-generated files 2020-12-21 18:33:48 +01:00
Sébastien Helleu cc5c34d4dc doc: add missing parenthesis in user's guide 2020-12-21 18:31:08 +01:00
Nils Görs f9b4f4e7e6 doc: update German documentation 2020-12-21 13:40:39 +01:00
Nils Görs 18f9ba3c0c core: update German translations 2020-12-21 13:07:23 +01:00
Sébastien Helleu 09f57476d2 doc: add a chapter on buffer local variables (user's guide) 2020-12-19 21:23:16 +01:00
Sébastien Helleu 7e2396ade8 core: add options "setvar" and "delvar" in command /buffer, rename option "localvar" to "listvar"
The option "localvar" (introduced long time ago, in WeeChat 0.3.0) is still
recognized by WeeChat, to stay compatible with any extension/script calling
it (or referencing it in the documentation).

It is deprecated and will be removed in a future release.
2020-12-19 20:59:38 +01:00
Sébastien Helleu 1526f58d7a doc: replace "core" by "weechat" in table with extra info for bar item "buffer_nicklist" (plugin API reference) 2020-12-19 15:00:02 +01:00
Sébastien Helleu 0294b246f6 core: add buffer local variable "completion_default_template" (evaluated) (closes #1600)
When this local variable is set, it overrides the value of option
"weechat.completion.default_template".

It is evaluated, that means the global default template can be used to append
some custom completion. For example:

  /buffer set localvar_set_completion_default_template ${weechat.completion.default_template}|%(my_completion)
2020-12-19 14:25:13 +01:00
Sébastien Helleu e4152c3535 core: remove unneeded return of WEECHAT_RC_OK in filter command 2020-12-18 20:28:41 +01:00
Sébastien Helleu dc5277fe89 core: add option "recreate" in command /filter 2020-12-18 20:28:16 +01:00
Sébastien Helleu 73eabdbe80 doc: update German auto-generated file 2020-12-18 19:55:44 +01:00
Nils Görs 5e17f0039b core: update German translations 2020-12-17 11:05:15 +01:00
Sébastien Helleu 13e4af7b46 script: add status of scripts in output of command /script list in /help script 2020-12-15 20:41:13 +01:00
Nils Görs 1efcaa9752 doc: update German documentation 2020-12-13 11:55:38 +01:00
Sébastien Helleu b95e91e1a2 doc: add command to run WeeChat with address sanitizer (user's guide) 2020-12-13 11:01:04 +01:00
Nils Görs 3dea65aa05 doc: update German documentation 2020-12-07 08:59:07 +01:00
Sébastien Helleu a69cfbdb19 core: add contributor in AUTHORS.adoc (issue #1597) 2020-12-06 15:54:44 +01:00
Sébastien Helleu d01a98950a doc: update auto-generated files with commands 2020-12-06 15:51:12 +01:00
Sébastien Helleu ee25c74903 irc: fix completion of commands /halfop and /dehalfop 2020-12-06 15:48:55 +01:00
Sébastien Helleu cd7947d8fc irc: add missing parameter "-yes" in /help dehalfop 2020-12-06 15:47:52 +01:00
dotflac 4974c2f0a2 add -yes to output of /help voice
currently /help voice does not tell you that you need -yes if you are using *. i have changed it to match /help op, /help deop and /help devoice
2020-12-06 15:43:36 +01:00
Sébastien Helleu 33cdf3eb90 doc: add question about buflist customization 2020-12-06 15:13:55 +01:00
Sébastien Helleu 58a94df61d core: update ChangeLog 2020-12-05 19:57:53 +01:00
Sébastien Helleu 08ebc99dea Revert "exec: return NULL immediately if the task id is invalid"
This reverts commit dff1bf6f0f.
2020-12-05 19:57:24 +01:00
Sébastien Helleu 03f4afe65e Revert "core: add extra compiler options to check overflow of destination buffer and output truncation"
This reverts commit 4ff4a64209.

These compiler flags are not supported on old compiler version, for example on
Debian Stretch/Jessie and Ubuntu Xenial (16.04).
2020-11-29 11:05:38 +01:00
Tim Gates 08db4407ed docs: fix simple typo, confiuration -> configuration
There is a small typo in src/core/weechat.c.

Should read `configuration` rather than `confiuration`.
2020-11-28 09:46:23 +01:00
Sébastien Helleu 4ff4a64209 core: add extra compiler options to check overflow of destination buffer and output truncation 2020-11-28 09:43:57 +01:00
Sébastien Helleu 21aef706cd core: allocate dynamic string size for colors 2020-11-23 21:25:41 +01:00
Sébastien Helleu 345bdddf62 script: increase buffer size in function script_buffer_detail_label
This fixes a compiler warning complaining about a too small buffer for
snprintf, even if this should never happen.
2020-11-22 15:00:19 +01:00
Sébastien Helleu d1cad18f01 core: increase buffer size in function plugin_api_info_uptime_cb
This fixes a compiler warning complaining about a too small buffer for
snprintf, even if this should never happen.
2020-11-22 14:59:06 +01:00
Sébastien Helleu a8dd0e1337 core: increase buffer size in function gui_bar_item_time_cb
This fixes a compiler warning complaining about a too small buffer for
snprintf, even if this should never happen.
2020-11-22 14:56:55 +01:00
Sébastien Helleu 070eb3f7b0 core: increase buffer size in HTTP proxy connection
In case of long address/username/password, the HTTP CONNECT message could be
truncated.
2020-11-21 21:13:13 +01:00
Sébastien Helleu 194f8b5b74 core: increase command buffer size in /color command
In case of long alias name, the command to set color alias could be truncated.
2020-11-21 21:13:05 +01:00
Sébastien Helleu ee24fac586 spell: fix crash with IRC color codes in command line (closes #1589) 2020-11-20 21:50:05 +01:00
Sébastien Helleu a2266e4e3f core: add missing cast to unsigned char on first argument to function isdigit 2020-11-19 22:20:48 +01:00
Sébastien Helleu 214f4f66d9 doc: update German auto-generated file 2020-11-18 22:58:32 +01:00
Nils Görs 14e66962c8 core: update German translations 2020-11-18 09:44:17 +01:00
Sébastien Helleu 5cbda03fca core: fix and normalize error messages 2020-11-17 21:54:24 +01:00
Sébastien Helleu 21eadc9488 core: display an error when the buffer is not found with command /command -buffer 2020-11-17 13:43:20 +01:00
Sébastien Helleu 6fda5a7e5f core: remove option to open a blank issue 2020-11-16 22:58:17 +01:00
Sébastien Helleu b9c8569422 trigger: add variable "${tg_trigger_name}" in command trigger evaluated strings (closes #1580)
${tg_trigger_name} is replaced by the trigger name in these command strings:

- description
- arguments
- description of arguments
- completion
2020-11-14 09:32:24 +01:00
Sébastien Helleu b626df72fb core: add evaluation of conditions in evaluation of expressions with "eval_cond:" (closes #1582) 2020-11-14 09:28:46 +01:00
Sébastien Helleu eb90a73fe8 spell: fix refresh of bar item "spell_suggest" when the input becomes empty (closes #1586)
When the input is empty, length of string is zero: when sending zero to
function weechat_string_dyn_alloc, the function returns NULL and therefore we
return immediately instead of handling the empty input, which is a valid value.

The regression was introduced by the use of dynamic strings, commit:
299f74bfef
2020-11-13 21:30:06 +01:00
Sébastien Helleu 4065d32e68 Version 3.1-dev 2020-11-11 09:30:24 +01:00
1062 changed files with 420124 additions and 231559 deletions
+30
View File
@@ -0,0 +1,30 @@
# SPDX-FileCopyrightText: 2024 Emil Velikov <emil.l.velikov@gmail.com>
# SPDX-FileCopyrightText: 2024-2026 Sébastien Helleu <flashcode@flashtux.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later
#
# To use this config on you editor, follow the instructions at:
# https://editorconfig.org
root = true
[*]
charset = utf-8
insert_final_newline = true
indent_size = 4
indent_style = space
tab_width = 8
trim_trailing_whitespace = true
[{*.{c,cpp,h}}]
max_line_length = 80
[{CMakeLists.txt,*.cmake}]
max_line_length = 80
indent_size = 2
[*.html]
indent_size = 2
[*.yml]
indent_size = 2
+5 -2
View File
@@ -1,8 +1,11 @@
# SPDX-FileCopyrightText: 2013-2026 Sébastien Helleu <flashcode@flashtux.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later
# files/directories excluded from tarballs
.git* export-ignore
debian-devel export-ignore
debian-stable export-ignore
weechat.spec export-ignore
.mailmap export-ignore
tools/build-debian.sh export-ignore
tools/build_debian.sh export-ignore
+4
View File
@@ -1 +1,5 @@
# SPDX-FileCopyrightText: 2019-2026 Sébastien Helleu <flashcode@flashtux.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later
custom: https://weechat.org/donate/
-43
View File
@@ -1,43 +0,0 @@
---
name: Bug report
about: Create a bug report (please do not report security issues here)
labels: bug
---
<!-- Please do not report any security issue here, see file Contributing.adoc -->
## Bug summary
## Steps to reproduce
1. 
2. 
3. 
## Current behavior
## Expected behavior
## Suggested solutions
## Additional information
---
<!-- MANDATORY INFO: -->
- WeeChat version: 
- OS, distribution and version: 
- Terminal: 
- Terminal multiplexer (screen/tmux/…/none): 
+114
View File
@@ -0,0 +1,114 @@
# SPDX-FileCopyrightText: 2023-2026 Sébastien Helleu <flashcode@flashtux.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later
name: Bug report
description: Create a bug report
labels: ["bug"]
body:
- type: markdown
attributes:
value: |
Before submitting a bug, please check that it has not already been reported by searching in [open and closed bugs](https://github.com/weechat/weechat/issues?q=is%3Aissue+label%3Abug).
If you don't use the latest version, please try if possible with the latest stable release to be sure the issue is still present and report the issue on this version.
**IMPORTANT**: please do not report any security issue here, see [CONTRIBUTING.md](https://github.com/weechat/weechat/blob/main/CONTRIBUTING.md#security-reports).
- type: textarea
id: bug-description
attributes:
label: Describe the bug
description: A clear and concise description of what the bug is.
validations:
required: true
- type: textarea
id: steps-to-reproduce
attributes:
label: Steps to reproduce
description: |
Steps to reproduce the issue.
If possible, please try to reproduce with a default configuration and no scripts loaded (`weechat -t`). If the issue is related to a script, please mention the list of all scripts loaded.
placeholder: |
1.
2.
3.
validations:
required: true
- type: textarea
id: current-behavior
attributes:
label: Current behavior
description: |
What currently happens.
validations:
required: true
- type: textarea
id: expected-behavior
attributes:
label: Expected behavior
description: What is actually supposed to happen.
validations:
required: true
- type: textarea
id: suggested-solutions
attributes:
label: Suggested solutions
description: How you think this issue can be resolved.
validations:
required: false
- type: textarea
id: additional-information
attributes:
label: Additional information
description: |
For a crash, please include a backtrace from gdb, see the [User's guide](https://weechat.org/doc/weechat/user/#report_crashes).
For a display issue, please add a screenshot if it makes sense.
Please mention if other versions are affected as well and if some versions are not affected (regression?).
And any additional information you deem relevant.
validations:
required: false
- type: input
id: weechat-version
attributes:
label: WeeChat version
description: |
For a stable release: output of `weechat --version`.
For the development version: output of command `/v` in WeeChat.
placeholder: "4.1.1"
validations:
required: true
- type: input
id: os-version
attributes:
label: What OS/distribution are you using?
description: Name of the operating system and its version.
placeholder: Debian 12, Ubuntu 24.04, macOS 14, ...
validations:
required: true
- type: input
id: terminal
attributes:
label: On which terminal are you running WeeChat?
description: The name of terminal if you think it can be related to the issue (mainly for display issues).
placeholder: Terminator, Xterm, GNOME Terminal, Urxvt, ...
validations:
required: false
- type: input
id: terminal-multiplexer
attributes:
label: Which terminal multiplexer are you using?
description: The name of the terminal multiplexer if you think it can be related to the issue (mainly for display issues).
placeholder: none, tmux, screen, ...
validations:
required: false
+5
View File
@@ -0,0 +1,5 @@
# SPDX-FileCopyrightText: 2020-2026 Sébastien Helleu <flashcode@flashtux.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later
blank_issues_enabled: false
@@ -1,8 +0,0 @@
---
name: Feature request
about: Request a new feature / enhancement
labels: feature
---
## Feature description
@@ -0,0 +1,21 @@
# SPDX-FileCopyrightText: 2023-2026 Sébastien Helleu <flashcode@flashtux.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later
name: Feature request
description: Request a new feature / enhancement
labels: ["feature"]
body:
- type: markdown
attributes:
value: |
Before submitting a feature request, please check that it has not already been reported by searching in [open and closed feature requests](https://github.com/weechat/weechat/issues?q=is%3Aissue+label%3Afeature).
- type: textarea
id: feature
attributes:
label: Feature description
description: A description of the feature you would like.
validations:
required: true
-15
View File
@@ -1,15 +0,0 @@
---
name: Question
about: Ask a question (please read first FAQ and docs)
labels: question
---
## Question
---
- WeeChat version: 
- OS, distribution and version: 
+25
View File
@@ -0,0 +1,25 @@
# SPDX-FileCopyrightText: 2023-2026 Sébastien Helleu <flashcode@flashtux.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later
name: Question
description: Ask a question
labels: ["question"]
body:
- type: markdown
attributes:
value: |
Before opening an issue with a question:
- please read the [FAQ](https://weechat.org/doc/weechat/faq) and [documentation](https://weechat.org/doc/weechat/)
- please ask on #weechat channel (on server irc.libera.chat).
**IMPORTANT**: please do not report any security issue here, see [CONTRIBUTING.md](https://github.com/weechat/weechat/blob/main/CONTRIBUTING.md#security-reports).
- type: textarea
id: question
attributes:
label: Question
description: Your question.
validations:
required: true
+479 -30
View File
@@ -1,54 +1,217 @@
# SPDX-FileCopyrightText: 2020-2026 Sébastien Helleu <flashcode@flashtux.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later
name: CI
on: [push, pull_request]
on:
push:
pull_request:
schedule:
- cron: '22 9 * * 2'
env:
CHECK_DEPS_UBUNTU: >-
curl
gettext
hunspell
hunspell-en-us
hunspell-fr
pipx
shellcheck
WEECHAT_DEPS_UBUNTU: >-
asciidoctor
build-essential
cmake
curl
devscripts
equivs
gem2deb
guile-3.0-dev
lcov
libargon2-dev
libaspell-dev
libcjson-dev
libcpputest-dev
libcurl4-gnutls-dev
libgcrypt20-dev
libgnutls28-dev
liblua5.4-dev
libncurses-dev
libperl-dev
libphp-embed
libsodium-dev
libv8-dev
libzstd-dev
ninja-build
php-dev
pipx
pkgconf
python3-dev
ruby-pygments.rb
tcl8.6-dev
zlib1g-dev
WEECHAT_DEPS_REDHAT: >-
asciidoctor
aspell-devel
cjson-devel
clang
cmake
cpputest-devel
gcc
gettext
glibc-langpack-en
gnutls-devel
guile30-devel
libcurl-devel
libgcrypt-devel
libzstd-devel
lua-devel
ncurses-devel
perl-devel
php-devel
php-embedded
python-devel
ruby-devel
sudo
tcl-devel
zlib-devel
WEECHAT_DEPS_FREEBSD: >-
aspell
cmake
cpputest
curl
gcc
gettext
git
gnutls
guile3
libargon2
libcjson
libgcrypt
libiconv
llvm
lua54
ncurses
perl5
php83
pkgconf
python3
ruby
rubygem-asciidoctor
sudo
tcl86
zstd
WEECHAT_DEPS_MACOS: >-
asciidoctor
aspell
cjson
guile
lua
pkg-config
ruby
jobs:
build:
checks:
name: ${{ matrix.config.name }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
config:
- { name: "cmake_gcc", cc: "gcc", cxx: "g++", tool: "cmake", args: "" }
- { name: "cmake_gcc_py2", cc: "gcc", cxx: "g++", tool: "cmake", args: "-DENABLE_PYTHON2=ON" }
- { name: "cmake_gcc_coverage", cc: "gcc", cxx: "g++", tool: "cmake", args: "-DENABLE_CODE_COVERAGE=ON" }
- { name: "cmake_clang", cc: "clang", cxx: "clang++", tool: "cmake", args: "" }
- { name: "autotools_gcc", cc: "gcc", cxx: "g++", tool: "autotools", args: "" }
- { name: "autotools_clang", cc: "clang", cxx: "clang++", tool: "autotools", args: "" }
os:
- ubuntu-24.04
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v6
- name: Install dependencies
run: |
sudo apt-get update -qq
sudo apt-get --yes --no-install-recommends install devscripts equivs python-pip libenchant-dev autopoint cmake lcov pkg-config libncursesw5-dev gem2deb libperl-dev python-dev python3-dev libaspell-dev liblua5.3-dev tcl8.6-dev guile-2.0-dev libv8-dev libcurl4-gnutls-dev libgcrypt20-dev libgnutls28-dev zlib1g-dev curl libcpputest-dev php7.4-dev libphp7.4-embed libargon2-0-dev libsodium-dev pylint3 asciidoctor
sudo -H pip install --ignore-installed msgcheck
sudo apt-get --yes --no-install-recommends install ${{ env.CHECK_DEPS_UBUNTU }}
pipx install msgcheck ruff
cargo install --version 0.0.11 poexam
- name: Test patches
run: ./tools/build-debian.sh test-patches
- name: Check gettext files
- name: Check gettext files (msgcheck)
run: msgcheck po/*.po
- name: Check Python scripts
- name: Check gettext files (poexam)
run: poexam check --file-stats --rule-stats
- name: Check shell and Python scripts
run: ./tools/check_scripts.sh
- name: Check Python stub file
run: ./tools/generate_python_stub.py | diff src/plugins/python/weechat.pyi -
- name: Check Curl symbols
run: curl --silent --show-error --fail --retry 10 https://raw.githubusercontent.com/curl/curl/master/docs/libcurl/symbols-in-versions | ./tools/check_curl_symbols.py
install:
strategy:
matrix:
os:
- ubuntu-24.04
config:
- name: "gcc"
cc: "gcc"
cxx: "g++"
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON"
- name: "gcc_ninja"
cc: "gcc"
cxx: "g++"
buildargs: "-G Ninja -DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON"
- name: "gcc_release_hardened"
cc: "gcc"
cxx: "g++"
buildargs: "-DENABLE_TESTS=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS=\"-Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3\" -DCMAKE_CXX_FLAGS=\"-Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3\""
- name: "gcc_no_nls"
cc: "gcc"
cxx: "g++"
buildargs: "-DENABLE_MAN=ON -DENABLE_TESTS=ON -DENABLE_NLS=OFF"
- name: "gcc_no_zstd"
cc: "gcc"
cxx: "g++"
buildargs: "-DENABLE_TESTS=ON -DENABLE_ZSTD=OFF"
- name: "gcc_no_cjson"
cc: "gcc"
cxx: "g++"
buildargs: "-DENABLE_TESTS=ON -DENABLE_CJSON=OFF"
- name: "gcc_no_perl_multiplicity"
cc: "gcc"
cxx: "g++"
buildargs: "-DENABLE_TESTS=ON -DCMAKE_C_FLAGS=\"-DNO_PERL_MULTIPLICITY=1\""
- name: "gcc_coverage"
cc: "gcc"
cxx: "g++"
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON -DENABLE_CODE_COVERAGE=ON"
- name: "clang"
cc: "clang"
cxx: "clang++"
buildargs: "-DENABLE_CODE_COVERAGE=ON -DENABLE_FUZZ=ON"
name: "install (${{ matrix.os }}, ${{ matrix.config.name }})"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v6
- name: Install dependencies
run: |
pylint3 --additional-builtins=_ doc/docgen.py
pylint3 tests/scripts/python/testapigen.py
pylint3 tests/scripts/python/testapi.py
pylint3 tests/scripts/python/unparse.py
sudo apt-get update -qq
sudo apt-get --yes --no-install-recommends install ${{ env.WEECHAT_DEPS_UBUNTU }}
# uninstall php imagick as is causes a crash when loading php plugin (see #2009)
sudo apt-get --yes purge php8.3-imagick
pipx install schemathesis
- name: Build and run tests
env:
CC: ${{ matrix.config.cc }}
CXX: ${{ matrix.config.cxx }}
BUILDTOOL: ${{ matrix.config.tool }}
BUILDARGS: ${{ matrix.config.args }}
run: ./tools/build-test.sh
run: ./tools/build_test.sh ${{ matrix.config.buildargs }}
- name: Run WeeChat
env:
@@ -56,13 +219,31 @@ jobs:
run: |
weechat --help
weechat-curses --help
weechat --version
weechat --build-info
weechat --colors
weechat --license
weechat --version
weechat --temp-dir --run-command "/debug dirs;/debug libs" --run-command "/quit"
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
- name: Test Relay OpenAPI
if: ${{ matrix.config.name == 'gcc' }}
env:
RELAY_PASSWORD: test
run: |
weechat-headless \
--dir /tmp/weechat-test-api \
--run-command '/set relay.network.password "${{ env.RELAY_PASSWORD }}"' \
--run-command '/set relay.network.password_hash_iterations 100' \
--run-command '/set relay.network.max_clients 0' \
--run-command '/relay add api 9000' \
--daemon \
;
sleep 5
schemathesis run --url http://localhost:9000/api ./src/plugins/relay/api/weechat-relay-api.yaml
echo '*/quit' >/tmp/weechat-test-api/weechat_fifo_*
- name: Code coverage
if: ${{ matrix.config.name == 'cmake_gcc_coverage' }}
if: ${{ matrix.config.name == 'gcc_coverage' }}
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
run: |
@@ -71,3 +252,271 @@ jobs:
lcov --remove coverage.info '/usr/*' --output-file coverage.info
lcov --list coverage.info
bash <(curl -s https://codecov.io/bash) -f coverage.info || echo 'Codecov error'
install_fedora:
strategy:
matrix:
os:
- ubuntu-24.04
config:
- name: "gcc"
cc: "gcc"
cxx: "g++"
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON"
- name: "clang"
cc: "clang"
cxx: "clang++"
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON -DENABLE_CODE_COVERAGE=ON -DENABLE_FUZZ=ON"
name: "install (fedora:43, ${{ matrix.config.name }})"
runs-on: ${{ matrix.os }}
container:
image: fedora:43
steps:
- uses: actions/checkout@v6
- name: Install dependencies
run: dnf install -y ${{ env.WEECHAT_DEPS_REDHAT }}
- name: Build and run tests
env:
CC: ${{ matrix.config.cc }}
CXX: ${{ matrix.config.cxx }}
run: ./tools/build_test.sh ${{ matrix.config.buildargs }}
- name: Run WeeChat
env:
TERM: xterm-256color
run: |
weechat --help
weechat-curses --help
weechat --version
weechat --build-info
weechat --colors
weechat --license
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
install_rockylinux:
strategy:
matrix:
os:
- ubuntu-24.04
config:
- name: "gcc"
cc: "gcc"
cxx: "g++"
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON"
- name: "clang"
cc: "clang"
cxx: "clang++"
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON -DENABLE_CODE_COVERAGE=ON -DENABLE_FUZZ=ON"
name: "install (rockylinux:9, ${{ matrix.config.name }})"
runs-on: ${{ matrix.os }}
container:
image: rockylinux:9
steps:
- uses: actions/checkout@v6
- name: Install dependencies
run: |
dnf install -y epel-release dnf-plugins-core
dnf config-manager --set-enabled crb
# pin a working ruby stream (ruby:4.0 has broken module metadata on Rocky 9.8)
dnf module enable -y ruby:3.3
dnf install -y ${{ env.WEECHAT_DEPS_REDHAT }}
- name: Build and run tests
env:
CC: ${{ matrix.config.cc }}
CXX: ${{ matrix.config.cxx }}
run: ./tools/build_test.sh ${{ matrix.config.buildargs }}
- name: Run WeeChat
env:
TERM: xterm-256color
run: |
weechat --help
weechat-curses --help
weechat --version
weechat --build-info
weechat --colors
weechat --license
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
install_freebsd:
strategy:
matrix:
os:
- ubuntu-24.04
config:
# - name: "gcc"
# cc: "gcc"
# cxx: "g++"
# buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON"
- name: "clang"
cc: "clang"
cxx: "clang++"
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON -DENABLE_CODE_COVERAGE=ON -DENABLE_FUZZ=ON"
name: "install (freebsd, ${{ matrix.config.name }})"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v6
- name: Install dependencies, build and run tests, run WeeChat
uses: vmactions/freebsd-vm@v1
env:
CC: ${{ matrix.config.cc }}
CXX: ${{ matrix.config.cxx }}
TERM: xterm-256color
with:
envs: "CC CXX TERM"
usesh: true
prepare: pkg install -y ${{ env.WEECHAT_DEPS_FREEBSD }}
run: |
./tools/build_test.sh ${{ matrix.config.buildargs }}
weechat --help
weechat-curses --help
weechat --version
weechat --build-info
weechat --colors
weechat --license
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
install_macos:
strategy:
matrix:
os:
- macos-14
config:
- name: "gcc"
cc: "gcc"
cxx: "g++"
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_DOC_INCOMPLETE=ON -DENABLE_PHP=OFF -DENABLE_TESTS=OFF"
- name: "clang"
cc: "clang"
cxx: "clang++"
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_DOC_INCOMPLETE=ON -DENABLE_PHP=OFF -DENABLE_TESTS=OFF"
name: "install (${{ matrix.os }}, ${{ matrix.config.name }})"
runs-on: ${{ matrix.os }}
steps:
- name: Setup Homebrew
id: setup-homebrew
uses: Homebrew/actions/setup-homebrew@main
- name: Install dependencies
run: |
brew update
brew install ${{ env.WEECHAT_DEPS_MACOS }}
- uses: actions/checkout@v6
- name: Build
env:
CC: ${{ matrix.config.cc }}
CXX: ${{ matrix.config.cxx }}
RUN_TESTS: "0"
JOBS: "2"
run: ./tools/build_test.sh ${{ matrix.config.buildargs }}
- name: Run WeeChat
env:
TERM: xterm-256color
run: |
weechat --help
weechat-curses --help
weechat --version
weechat --build-info
weechat --colors
weechat --license
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
build_debian:
strategy:
matrix:
os:
- ubuntu-24.04
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v6
- name: Install dependencies
run: |
sudo apt-get update -qq
sudo apt-get --yes --no-install-recommends install ${{ env.WEECHAT_DEPS_UBUNTU }}
- name: Test Debian patches
run: ./tools/build_debian.sh test-patches
- name: Build Debian packages
run: ./tools/build_debian.sh devel ubuntu/noble
- name: Install Debian packages
run: sudo dpkg -i ../weechat-devel*.deb
- name: Run WeeChat
env:
TERM: xterm-256color
run: |
weechat --help
weechat-curses --help
weechat --version
weechat --build-info
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
codeql_analysis:
strategy:
matrix:
os:
- ubuntu-24.04
runs-on: ${{ matrix.os }}
permissions:
actions: read
contents: read
security-events: write
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Install dependencies
run: |
sudo apt-get update -qq
sudo apt-get --yes --no-install-recommends install ${{ env.WEECHAT_DEPS_UBUNTU }}
# uninstall php imagick as is causes a crash when loading php plugin (see #2009)
sudo apt-get --yes purge php8.3-imagick
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: cpp
- name: Autobuild
uses: github/codeql-action/autobuild@v3
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
with:
category: "/language:cpp"
+22
View File
@@ -0,0 +1,22 @@
# SPDX-FileCopyrightText: 2025-2026 Sébastien Helleu <flashcode@flashtux.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later
name: REUSE Compliance Check
on:
- push
- pull_request
jobs:
test:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v6
- name: REUSE Compliance Check
uses: fsfe/reuse-action@v4
+12 -56
View File
@@ -1,57 +1,13 @@
# ignored files for Git
# SPDX-FileCopyrightText: 2007-2026 Sébastien Helleu <flashcode@flashtux.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later
*.a
*.gmo
*.la
*.lai
*.lo
*.m4
*.o
*.Plo
*.Po
*.so
*.so.0
*.so.0.0.0
*.1
ABOUT-NLS
autom4te*
build/*
builddir/*
compile
config.guess
config.h
config.h.in*
config-git.h
config.log
config.rpath
config.status
config.sub
configure
debian
!tools/debian
debian-devel/changelog
debian-devel/*.log
debian-stable/*.log
depcomp
insert-header.sin
install-sh
intl/*
libtool
ltmain.sh
Makefile
Makefile.in*
Makevars.template
missing
po/*quot*
POTFILES
remove-potcdate.sed
Rules-quot
weechat.pc
weechat-*.cygport
*stamp
stamp*
src/gui/curses/weechat
src/gui/curses/weechat-curses
/build
/builddir
/debian
/debian-devel/changelog
/debian-devel/*.log
/debian-devel/*-stamp
/debian-stable/*.log
/debian-stable/*-stamp
/release
+7 -1
View File
@@ -1,3 +1,7 @@
# SPDX-FileCopyrightText: 2014-2026 Sébastien Helleu <flashcode@flashtux.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later
#
# Map author and committer names and email addresses to canonical real names
# and email addresses.
#
@@ -11,7 +15,9 @@ Sébastien Helleu <flashcode@flashtux.org> <flashcode>
Sébastien Helleu <flashcode@flashtux.org> <uid67137>
Nils Görs <weechatter@arcor.de>
Ryuunosuke Ayanokouzi <i38w7i3@yahoo.co.jp>
Krzysztof Korościk <soltys1@gmail.com> <soltys@szluug.org> <soltys@soltys.info>
Krzysztof Korościk <soltys@soltys.info>
Krzysztof Korościk <soltys@soltys.info> <soltys1@gmail.com>
Krzysztof Korościk <soltys@soltys.info> <soltys@szluug.org>
Marco Paolone <marcopaolone@gmail.com>
<marcopaolone@gmail.com> <marco@DrB4tch.sitecomwl601>
<mikaela.suomalainen@outlook.com> <mkaysi@outlook.com>
+281
View File
@@ -0,0 +1,281 @@
Atheme
Autojoin
Charset
Diffie-Hellman
Esc
FlashCode
GnuTLS
Hashtable
Helleu
IPs
Sébastien
WeeChat
Xfer
abc
ack
acks
addcompletion
addinput
addoff
addraw
addreplace
addreplacecompletion
addword
algo
allchan
allpv
alnum
andrew
ansi
api
args
argsN
aspell
autoconnect
autojoin
autoload
autoloaded
autoreconnect
autorejoin
bg
bindctxt
bitlbee
bkl
blocksize
bool
buflist
cJSON
calc
ccc
charset
charsets
chghost
chmod
cleartext
clientinfo
cmd
codepoint
concat
cond
config
crypted
ctcp
ctrl
ctrl-
ctrl-c
ctrl-h
ctrl-n
ctrl-x
ctrl-y
cutscr
cxx
darkgray
deinit
deldict
deloutq
delvar
dhkey
dirs
dlclose
eg
enum
enums
env
esc
eval
fd
ffff
fg
fifo
flashcode
flashtux
freebsd
fset
fsync
gcrypt
getrlimit
getrusage
gnutls
grayscale
gui
gzip
halfop
halfops
hashtable
hdata
hh
horiz
hostname
hostnames
hotlist
hsignal
http
https
hup
ident
ie
il
inclose
infolist
infolists
infos
installremove
irc
ison
javascript
json
kf
kickban
killall
lengthscr
libera
libgcrypt
libs
lightblue
lightcyan
lightgreen
lightmagenta
lightred
linux
listdefault
listdict
listdiff
listfull
listitems
listrelay
listvar
lua
mallinfo
malloc
mirc
modelist
msg
msgN
msgbuffer
multiline
ncurses
newbuffer
nf
nickbot
nicklist
nickserv
nl
noautoload
nobg
nocl
noflush
nohelp
nojoin
noln
nonblock
nooption
norc
nostdin
nosw
noswitch
notls
num
oc
oerr
oftc
ok
ol
osinfo
outqueue
ovh
paramN
params
perl
permessage-deflate
pgdn
pgup
pid
prev
privmsg
ptr
pv
py
quickstart
rc
realname
recv
reinitializing
reop
resetall
resetctxt
revindex
revscr
rgb
rlimit
rusage
rw-rw-r--
sasl
setauto
setdict
setname
setnew
setrlimit
setvar
signon
skipempty
sockaddr
splith
splitv
stderr
stdin
stdout
strcasecmp
strftime
strftimeval
strlen
sublist
subplugin
sw
sys
tThe
tcl
tg
tls
tlscertkey
toggleautoload
togglecmd
toto
totp
truncature
un
unalias
unban
unbindctxt
undef
unescaped
unhide
unhold
unicode
unix
unmark
unmerge
unzoom
uptime
url
urlserver
usec
userhost-in-names
usr
util
valgrind
versiongit
waitpid
wcswidth
wctype
wcwidth
websocket
websockets
weechat
whois
www
xdigit
xfer
xyz
yy
zlib
zstd
+612
View File
@@ -0,0 +1,612 @@
Atheme
Autojoin
Curl
Curses
Debug
Dec
Diffie-Hellman
Filter
FlashCode
GnuTLS
Guile
Helleu
IPs
Lag
Ping
Protocol
Relay
Remote
Reop
Tab
Trigger
Triggers
Typing
URLs
Wallops
WeeChat
Xfer
account
account-
account-notify
account-tag
ack
acks
add
addcompletion
addinput
addoff
addraw
addreplace
addreplacecompletion
addresse
addword
align
all
allchan
allow
allowed
allpv
alnum
alt
alt-c
alt-k
alt-s
alt-v
alt-z
andrew
ansi
apply
area
args
argsN
aspell
attributes
auth
autoconnect
autojoin
autoload
autorejoin
away
away-notify
backspace
bare
bash
beep
before
beginning
beyond
bg
bin
bind
bindctxt
bitlbee
bkl
blue
bold
bool
boolean
both
bottom
bracketed
brown
buflist
cJSON
calc
callbacks
cap-notify
capabilities
capability
ccc
cert
certs
changed
channel
charset
charsets
check
chghost
chmod
cipher
clear
clientinfo
clipboard
cmd
color
colors
command
commands
complete
completion
concat
cond
confirm
connect
connected
connecting
control
copy
core
count
crypt
ctcp
ctrl
ctrl-
ctrl-c
ctrl-h
ctrl-n
ctrl-x
ctrl-y
curl
current
cursor
cut
cutscr
cxx
d'ignore
d'infolist
daemon
darkgray
days
debug
decode
decrypt
default
define
deinit
del
deldict
delete
deloutq
delvar
desc
describe
dhkey
dict
diff
dim
dir
dirs
disable
discard
disconnect
disconnected
display
displayed
dlclose
doc-gen
down
download
draft
dummy
dump
eat
echo-message
edge
emphasized
empty
enable
enabled
end
enum
error
esc
eval
example
exclude
exec
extended-join
external
exts
fail
failed
fast
fd
ffff
fifo
filter
fingerprint
first
flashcode
flashtux
foo
formatted
free
freebsd
fset
fsync
gcrypt
get
getrlimit
getrusage
ghost
giga-octets
git
glitch
gnutls
grab
group
gzip
halfop
halfops
handshake
hash
hashtable
hdata
he
headless
help
here
hexa
hh
hidden
hide
highest
highlight
highlights
history
hold
hook
hooks
horiz
host
hotlist
hsignal
hup
ident
identify
ids
ignored
inclose
include
indent
infolist
infolistes
infolists
init
install
installremove
int
integer
interval
invite-notify
irc
ison
iterations
javascript
join
json
jump
keep
key
keys
kf
kickban
kill
killall
l'autojoin
l'id
lag
last
layout
leave
left
legacy
length
lengthscr
level
lib
libera
libgcrypt
libs
lightblue
lightcyan
lightgreen
lightmagenta
lightred
limit
line
lines
linux
list
listdefault
listdict
listdiff
listen
listfull
listitems
listrelay
listvar
load
logger
loggers
lower
lowest
ls
lua
mallinfo
malloc
marked
mask
memory
merge
merged
meta
meta-
method
mirc
missing
modified
mouse
move
msg
msgN
msgbuffer
multi-prefix
multiline
my
n-
name
names
ncurses
near
network
newbuffer
newline
next
nf
nick
nickbot
nicklist
nicks
nickserv
no-connect
noautoload
nobg
nocl
noflush
nohelp
nojoin
noln
nonblock
nooption
norc
nosh
nostdin
nosw
noswitch
notify
notls
null
num
number
numeric
object
oerr
of
offline
oftc
ok
ol
ops
osinfo
ovh
paramN
params
parted
pass
passphrase
password
password-store
paste
path
paused
pct
pending
perl
permessage-deflate
pgdn
pgup
pid
ping
pong
pos
prefix
prev
previous
print
priority
private
privmsg
property
ptr
py
quit
quoted
rafraichie
rafraichir
rafraichissement
random
raw
rc
realname
reconnect
recreate
recv
red
redirected
redo
refresh
regex
register
relay
reload
remote
remove
rename
renumber
reorder
rep
repeat
reply
req
reset
resetall
resetctxt
resize
restart
restore
return
rev
revindex
revscr
rgb
right
rlimit
root
ruby
run
run-command
runtime
rusage
rw-rw-r--
réinit
safe
sasl
save
scheme
screen
scroll
search
secure
selected
send
server
server-time
setauto
setdict
setname
setnew
setrlimit
setvar
sh
share
shift
shift-
shift-Tab
size
skipempty
sockaddr
sorted
space
speaking
spell
split
splith
splitv
ss
start
status
stderr
stdin
stdout
str
strcasecmp
strftime
strftimeval
strip
strlen
sucks
suffix
suggest
sum
sw
switch
sys
tLe
tab
target
tcl
term
text
tg
time
timeout
timer
tiny
title
tls
tlscertkey
to
toggle
toggleautoload
togglecmd
topic
totp
trigger
triggers
trim
typing
téra-octets
unalias
unavailable
unban
unbind
unbindctxt
undef
undo
unhide
unicode
unix
unload
unmerge
unread
unset
up
update
upper
url
urlserver
usec
userhost-in-names
username
users
usr
util
valer
valgrind
verbose
verify
versiongit
visited
voice
wait
waiting
waitpid
wallops
wcswidth
wctype
wcwidth
websocket
websockets
weechat
where
white
whitespace
whois
width
window
windows
without
word
words
xdigit
xfer
xxx
xyz
yellow
yes
yy
zero
zlib
zstd
Échap
+24
View File
@@ -0,0 +1,24 @@
# SPDX-FileCopyrightText: 2026 Sébastien Helleu <flashcode@flashtux.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later
[check]
select = [
"checks",
]
ignore = [
"acronyms",
"brackets",
"double-quotes",
"double-words",
"functions",
"html-tags",
"paths",
"unchanged",
"urls",
]
path_words = "."
langs = [
"en_US",
"fr",
]
-46
View File
@@ -1,46 +0,0 @@
dist: bionic
sudo: required
language: c
env:
- CC="gcc" CXX="g++" BUILDTOOL="cmake" BUILDARGS=""
- CC="gcc" CXX="g++" BUILDTOOL="cmake" BUILDARGS="-DENABLE_PYTHON2=ON"
# - CC="gcc" CXX="g++" BUILDTOOL="cmake" BUILDARGS="-DENABLE_CODE_COVERAGE=ON" CODECOVERAGE="1"
- CC="gcc" CXX="g++" BUILDTOOL="autotools" BUILDARGS=""
- CC="gcc" CXX="g++" BUILDTOOL="autotools" BUILDARGS="--enable-python2"
- CC="clang" CXX="clang++" BUILDTOOL="cmake" BUILDARGS=""
- CC="clang" CXX="clang++" BUILDTOOL="cmake" BUILDARGS="-DENABLE_PYTHON2=ON"
- CC="clang" CXX="clang++" BUILDTOOL="autotools" BUILDARGS=""
- CC="clang" CXX="clang++" BUILDTOOL="autotools" BUILDARGS="--enable-python2"
matrix:
fast_finish: true
before_script:
- echo 'APT::Install-Recommends "false";' | sudo tee -a /etc/apt/apt.conf
- travis_retry sudo apt-get update -qq
- travis_retry sudo apt-get -y install devscripts equivs python-pip libenchant-dev autopoint cmake lcov pkg-config libncursesw5-dev gem2deb libperl-dev python-dev python3-dev libaspell-dev liblua5.3-dev tcl8.6-dev guile-2.0-dev libv8-dev libcurl4-gnutls-dev libgcrypt20-dev libgnutls28-dev zlib1g-dev curl libcpputest-dev php7.2-dev libphp7.2-embed libargon2-0-dev libsodium-dev pylint3
- travis_retry sudo gem install asciidoctor
- travis_retry sudo -H pip install --ignore-installed msgcheck
- phpenv local system
# work around broken travis environment variables, see https://github.com/travis-ci/travis-ci/issues/5301
- unset PYTHON_CFLAGS
script:
- ./tools/build-test.sh
- msgcheck po/*.po
- pylint3 --version
- pylint3 --additional-builtins=_ doc/docgen.py
- pylint3 tests/scripts/python/testapigen.py
- pylint3 tests/scripts/python/testapi.py
- pylint3 tests/scripts/python/unparse.py
- ./tools/build-debian.sh test-patches
after_success:
- weechat --help
- weechat-curses --help
- weechat --colors
- weechat --license
- weechat --version
- weechat --temp-dir --run-command "/debug dirs;/debug libs" --run-command "/quit"
# - if [ "$CODECOVERAGE" = "1" ]; then bash <(curl -s https://codecov.io/bash) -f coverage.info || echo "Codecov error"; fi
-151
View File
@@ -1,151 +0,0 @@
= WeeChat Authors
:author: Sébastien Helleu
:email: flashcode@flashtux.org
:lang: en
== Developers
* General code
** Sébastien Helleu (FlashCode) <flashcode@flashtux.org>
* Scripts plugins, debian packager
** Emmanuel Bouthenot (kolter) <kolter@openics.org>
== Contributors
Alphabetically:
* Adam Saponara (adsr)
* Adrian Bjugård
* Ailin Nemui (Nei)
* Aleksey V Zapparov
* Alex Tarkovsky
* Anders Bergh
* Andrew Potter (talisein)
* Antoine Pietri (seirl)
* Arvydas Sidorenko
* Asakura
* Bazerka
* Benoit Papillault (benoit)
* Chris Hills
* Christian Duerr
* Christian Heinz
* Christopher O'Neill (deltafire)
* coypoop
* Danilo Spinella
* David Flatz
* Dmitry Kobylin
* Dominik Honnef
* Dominique Martinet
* Eduardo Elias
* Eli Schwartz
* Elizabeth Myers (Elizacat)
* Elián Hanisch (m4v)
* Emanuele Giaquinta
* emk
* Esteban I. Ruiz Moreno (Exio)
* Evgeny Shmarnev
* Felix Eckhofer
* Frank Zacharias
* Fredrik Fornwall
* Grant Wu
* Gu1ll4um3r0m41n
* Guido Berhoerster
* Gwenn
* Hasan Kiran (turgay)
* Ivan Sichmann Freitas
* Jakub Jirutka
* Jason A. Donenfeld (zx2c4)
* JD Horelick (jdhore)
* jesopo
* Jim Ramsay (lack)
* Jiri Golembiovsky (GolemJ)
* Joey Pabalinas (alyptik)
* Johan Rylander
* Joram Schrijver
* Jos Ahrens
* Joseph Kichline
* Juan Francisco Cantero Hurtado
* Julien Louis (ptitlouis)
* Karthik K
* Koka El Kiwi (KiwiDash)
* Krzysztof Koroscik (soltys)
* Kyle Fuller (kylef)
* Kyle Sabo
* Leonid Evdokimov
* Lázaro A.
* Linus Heckemann
* Maarten de Vries
* Mantas Mikulėnas (grawity)
* Marco Paolone
* Marco Sirabella
* Mateusz Poszwa
* Matt Robinson
* Matthew Horan
* Matthew Martin
* Max Anton Teufel
* Maxim Baz
* Michael Siegel
* Miroslav Koskar
* Murilo Opsfelder Araujo
* Neui
* Nick (SolitaryCipher)
* Nicolas Cavigneaux
* Nils Görs (nils_2)
* nyuszika7h
* Odin
* Ondřej Súkup
* Patrick Steinhardt
* Patrik Janoušek
* Paul Komkoff
* Pavel Shevchuk (Stalwart)
* Peter Boström (pbos)
* Phillip Sz
* Pierre Carru
* Piotr Szymaniak
* Pistos
* Quentin Glidic (SardemFF7)
* Quentin Pradet
* Quico Noizeux
* rafasc
* Raghavendra Prabhu
* raspbeguy
* Rettub
* Rob Campbell
* Romero B. de S. Malaquias
* Rudolf Polzer (divVerent)
* Ruslan Bekenev
* Ryan Farley
* Ryuunosuke Ayanokouzi
* scumjr
* Sergio Durigan Junior
* Shane McCarron
* Shawn Smith
* Shun Sakai
* Simmo Saan (sim642)
* Simon Arlott
* Simon Kuhnle
* Stefano Pigozzi
* Stfn
* Sven Knurr (Cthulhux)
* Tim D. Smith
* Tim Harder
* Tobias Stoeckmann
* Tom Alsberg
* Tom Fitzhenry
* Tomoe Mami
* Tor Hveem (xt)
* Trevor Bergeron
* Valentin Lorentz (progval)
* Vasco Almeida
* Voroskoi
* Wojciech Kwolek
* W. Trevor King
* Yannick Palanque
* ZethJack
* Ørjan Malde
== Contact
See https://weechat.org/files/doc/devel/weechat_user.en.html#support[user's guide]
or https://weechat.org/about/support
+174
View File
@@ -0,0 +1,174 @@
<!--
SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
SPDX-License-Identifier: GPL-3.0-or-later
-->
# WeeChat Authors
## Developers
- General code
- [Sébastien Helleu](https://github.com/flashcode) (FlashCode)
- Scripts plugins, debian packager
- [Emmanuel Bouthenot](https://github.com/k0lter) (kolter)
## Contributors
Alphabetically:
- Adam Saponara (adsr)
- Adrian Bjugård
- Ailin Nemui (Nei)
- Aleksey V Zapparov
- Alex Tarkovsky
- Anders Bergh
- Andrew Potter (talisein)
- Antoine Pietri (seirl)
- Arvydas Sidorenko
- Asakura
- Bazerka
- Benoit Papillault (benoit)
- Caleb Josue Ruiz Torres
- Chris Hills
- Christian Duerr
- Christian Heinz
- Christopher O'Neill (deltafire)
- coypoop
- Daniel Lublin
- Danilo Spinella
- David Flatz
- Dmitry Kobylin
- Dominik Honnef
- Dominique Martinet
- dotflac
- Eduardo Elias
- Eli Schwartz
- Elizabeth Myers (Elizacat)
- Elián Hanisch (m4v)
- Emanuele Giaquinta
- Emil Velikov
- Emir Sarı
- emk
- Érico Nogueira
- Esteban I. Ruiz Moreno (Exio)
- Evgeny Shmarnev
- Felix Eckhofer
- Frank Zacharias
- Fredrik Fornwall
- Grant Wu
- Gu1ll4um3r0m41n
- Guido Berhoerster
- Gwenn
- Hasan Kiran (turgay)
- Ivan Pešić
- Ivan Sichmann Freitas
- Jakub Jirutka
- James C. Morey
- Jan Palus
- Jason A. Donenfeld (zx2c4)
- JD Horelick (jdhore)
- jesopo
- Jim Ramsay (lack)
- Jiri Golembiovsky (GolemJ)
- Joe Hermaszewski
- Joey Pabalinas (alyptik)
- Johan Rylander
- Johannes Kuhn
- Joram Schrijver
- Jos Ahrens
- Joseph Kichline
- Josh Soref
- Juan Francisco Cantero Hurtado
- Julien Louis (ptitlouis)
- Karthik K
- Koka El Kiwi (KiwiDash)
- Krzysztof Koroscik (soltys)
- Kyle Fuller (kylef)
- Kyle Sabo
- Latchezar Tzvetkoff
- Lázaro A.
- Leonid Evdokimov
- Linus Heckemann
- LuK1337
- Maarten de Vries
- Mantas Mikulėnas (grawity)
- Marco Paolone
- Marco Sirabella
- Mario Campos
- Mateusz Poszwa
- Matt Robinson
- Matthew Horan
- Matthew Martin
- Matti Virkkunen
- Max Anton Teufel
- Maxim Baz
- Michael Siegel
- Miko
- Miroslav Koskar
- Murilo Opsfelder Araujo
- Neui
- Nick (SolitaryCipher)
- Nicolas Cavigneaux
- Nils Görs (nils_2)
- nyuszika7h
- Odin
- Ondřej Súkup
- Patrick Steinhardt
- Patrik Janoušek
- Paul Komkoff
- Pavel Shevchuk (Stalwart)
- Peter Boström (pbos)
- Phillip Sz
- Pierre Carru
- Piotr Szymaniak
- Pistos
- Quentin Glidic (SardemFF7)
- Quentin Pradet
- Quico Noizeux
- rafasc
- Raghavendra Prabhu
- raspbeguy
- Rettub
- Rob Campbell
- Romero B. de S. Malaquias
- Rudolf Polzer (divVerent)
- Ruslan Bekenev
- Ryan Farley
- Ryan Qian
- Ryuunosuke Ayanokouzi
- scumjr
- Sergio Durigan Junior
- Shane McCarron
- Shawn Smith
- Shun Sakai
- Simmo Saan (sim642)
- Simon Arlott
- Simon Kuhnle
- Simon Ser
- Stefano Pigozzi
- Stfn
- Sven Knurr (Cthulhux)
- Tim D. Smith
- Tim Harder
- Tobias Stoeckmann
- Tom Alsberg
- Tom Fitzhenry
- Tomoe Mami
- Tor Hveem (xt)
- Trevor Bergeron
- Valentin Lorentz (progval)
- Vasco Almeida
- Victorhck
- Voroskoi
- wfrsk
- Wojciech Kwolek
- W. Trevor King
- Yannick Palanque
- Yiheng Cao
- ZethJack
- Ørjan Malde
## Contact
See the [support page](https://weechat.org/about/support/).
+4604
View File
File diff suppressed because it is too large Load Diff
+208 -170
View File
@@ -1,7 +1,9 @@
#
# Copyright (C) 2003-2020 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2007-2008 Julien Louis <ptitlouis@sysif.net>
# Copyright (C) 2008-2009 Emmanuel Bouthenot <kolter@openics.org>
# SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
# SPDX-FileCopyrightText: 2007-2008 Julien Louis <ptitlouis@sysif.net>
# SPDX-FileCopyrightText: 2008-2009 Emmanuel Bouthenot <kolter@openics.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later
#
# This file is part of WeeChat, the extensible chat client.
#
@@ -19,113 +21,147 @@
# along with WeeChat. If not, see <https://www.gnu.org/licenses/>.
#
cmake_minimum_required(VERSION 3.0)
cmake_minimum_required(VERSION 3.18)
project(weechat C)
# CMake options
set(CMAKE_VERBOSE_MAKEFILE OFF)
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake" "${CMAKE_MODULE_PATH}")
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
set(CMAKE_SKIP_RPATH ON)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsigned-char -Wall -Wextra -Werror-implicit-function-declaration")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsigned-char -Wall -Wextra")
# compiler options
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsigned-char -fms-extensions -Wall -Wextra -Werror-implicit-function-declaration -Wformat -Werror=format-security")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsigned-char -fms-extensions -Wall -Wextra")
if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
# extra options specific to GCC
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wformat-overflow=2 -Wformat-truncation=2")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wformat-overflow=2 -Wformat-truncation=2")
endif()
# version
execute_process(COMMAND ${CMAKE_SOURCE_DIR}/version.sh devel-major OUTPUT_VARIABLE VERSION_MAJOR)
execute_process(COMMAND ${CMAKE_SOURCE_DIR}/version.sh devel-minor OUTPUT_VARIABLE VERSION_MINOR)
execute_process(COMMAND ${CMAKE_SOURCE_DIR}/version.sh devel-patch OUTPUT_VARIABLE VERSION_PATCH)
execute_process(COMMAND "${CMAKE_SOURCE_DIR}/version.sh" devel-major OUTPUT_VARIABLE VERSION_MAJOR)
execute_process(COMMAND "${CMAKE_SOURCE_DIR}/version.sh" devel-minor OUTPUT_VARIABLE VERSION_MINOR)
execute_process(COMMAND "${CMAKE_SOURCE_DIR}/version.sh" devel-patch OUTPUT_VARIABLE VERSION_PATCH)
string(REGEX REPLACE "\n" "" VERSION_MAJOR "${VERSION_MAJOR}")
string(REGEX REPLACE "\n" "" VERSION_MINOR "${VERSION_MINOR}")
string(REGEX REPLACE "\n" "" VERSION_PATCH "${VERSION_PATCH}")
if(VERSION_PATCH STREQUAL "")
set(VERSION ${VERSION_MAJOR}.${VERSION_MINOR})
set(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}")
else()
set(VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH})
set(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
endif()
# license
set(LICENSE "GPL3")
# add definitions for version and license
if(COMMAND cmake_policy)
cmake_policy(SET CMP0005 NEW)
add_definitions(-DWEECHAT_VERSION="${VERSION}" -DWEECHAT_LICENSE="${LICENSE}")
else()
add_definitions(-DWEECHAT_VERSION='"${VERSION}"' -DWEECHAT_LICENSE='"${LICENSE}"')
endif()
add_definitions(-DWEECHAT_VERSION="${VERSION}" -DWEECHAT_LICENSE="GPL3")
# package string
set(PKG_STRING "${PROJECT_NAME} ${VERSION}")
string(REPLACE "\";\"" "\ " PKG_STRING ${PKG_STRING})
if(NOT DEFINED LIBDIR)
set(LIBDIR ${CMAKE_INSTALL_PREFIX}/lib)
set(LIBDIR "${CMAKE_INSTALL_PREFIX}/lib")
endif()
if(NOT DEFINED WEECHAT_LIBDIR)
set(WEECHAT_LIBDIR ${LIBDIR}/${PROJECT_NAME})
set(WEECHAT_LIBDIR "${LIBDIR}/${PROJECT_NAME}")
endif()
if(NOT DEFINED DATAROOTDIR)
set(DATAROOTDIR ${CMAKE_INSTALL_PREFIX}/share)
set(DATAROOTDIR "${CMAKE_INSTALL_PREFIX}/share")
endif()
if(NOT DEFINED WEECHAT_SHAREDIR)
set(WEECHAT_SHAREDIR ${DATAROOTDIR}/weechat)
set(WEECHAT_SHAREDIR "${DATAROOTDIR}/weechat")
endif()
if(NOT DEFINED MANDIR)
set(MANDIR ${DATAROOTDIR}/man)
set(MANDIR "${DATAROOTDIR}/man")
endif()
if(NOT DEFINED LOCALEDIR)
set(LOCALEDIR ${DATAROOTDIR}/locale)
set(LOCALEDIR "${DATAROOTDIR}/locale")
endif()
if(DEFINED INCLUDEDIR)
set(INCLUDEDIR ${INCLUDEDIR}/${PROJECT_NAME})
set(INCLUDEDIR "${INCLUDEDIR}/${PROJECT_NAME}")
else()
set(INCLUDEDIR ${CMAKE_INSTALL_PREFIX}/include/${PROJECT_NAME})
set(INCLUDEDIR "${CMAKE_INSTALL_PREFIX}/include/${PROJECT_NAME}")
endif()
option(ENABLE_NCURSES "Compile the Ncurses interface" ON)
option(ENABLE_HEADLESS "Compile the headless binary (required for tests)" ON)
option(ENABLE_NLS "Enable Native Language Support" ON)
option(ENABLE_LARGEFILE "Enable Large File Support" ON)
option(ENABLE_ALIAS "Enable Alias plugin" ON)
option(ENABLE_BUFLIST "Enable Buflist plugin" ON)
option(ENABLE_CHARSET "Enable Charset plugin" ON)
option(ENABLE_EXEC "Enable Exec plugin" ON)
option(ENABLE_FIFO "Enable FIFO plugin" ON)
option(ENABLE_FSET "Enable Fast Set plugin" ON)
option(ENABLE_IRC "Enable IRC plugin" ON)
option(ENABLE_LOGGER "Enable Logger plugin" ON)
option(ENABLE_RELAY "Enable Relay plugin" ON)
option(ENABLE_SCRIPT "Enable Script plugin (script manager)" ON)
option(ENABLE_SCRIPTS "Enable script plugins (perl, python, ...)" ON)
option(ENABLE_PERL "Enable Perl scripting language" ON)
option(ENABLE_PYTHON "Enable Python scripting language" ON)
option(ENABLE_PYTHON2 "Use Python 2 instead of Python 3" OFF)
option(ENABLE_RUBY "Enable Ruby scripting language" ON)
option(ENABLE_LUA "Enable Lua scripting language" ON)
option(ENABLE_TCL "Enable Tcl scripting language" ON)
option(ENABLE_GUILE "Enable Scheme (guile) scripting language" ON)
option(ENABLE_JAVASCRIPT "Enable JavaScript scripting language" OFF)
option(ENABLE_PHP "Enable PHP scripting language" ON)
option(ENABLE_SPELL "Enable Spell checker plugin" ON)
option(ENABLE_ENCHANT "Enable Enchant lib for Spell checker plugin" OFF)
option(ENABLE_TRIGGER "Enable Trigger plugin" ON)
option(ENABLE_XFER "Enable Xfer plugin" ON)
option(ENABLE_MAN "Enable build of man page" OFF)
option(ENABLE_DOC "Enable build of documentation" OFF)
option(ENABLE_TESTS "Enable tests" OFF)
option(ENABLE_CODE_COVERAGE "Enable code coverage" OFF)
option(ENABLE_NCURSES "Compile the Ncurses interface" ON)
option(ENABLE_HEADLESS "Compile the headless binary" ON)
option(ENABLE_NLS "Enable Native Language Support" ON)
option(ENABLE_LARGEFILE "Enable Large File Support" ON)
option(ENABLE_ZSTD "Enable Zstandard compression" ON)
option(ENABLE_CJSON "Enable cJSON support" ON)
option(ENABLE_ALIAS "Enable Alias plugin" ON)
option(ENABLE_BUFLIST "Enable Buflist plugin" ON)
option(ENABLE_CHARSET "Enable Charset plugin" ON)
option(ENABLE_EXEC "Enable Exec plugin" ON)
option(ENABLE_FIFO "Enable FIFO plugin" ON)
option(ENABLE_FSET "Enable Fast Set plugin" ON)
option(ENABLE_IRC "Enable IRC plugin" ON)
option(ENABLE_LOGGER "Enable Logger plugin" ON)
option(ENABLE_RELAY "Enable Relay plugin" ON)
option(ENABLE_SCRIPT "Enable Script plugin (script manager)" ON)
option(ENABLE_SCRIPTS "Enable script plugins (perl, python, …)" ON)
option(ENABLE_PERL "Enable Perl scripting language" ON)
option(ENABLE_PYTHON "Enable Python scripting language" ON)
option(ENABLE_RUBY "Enable Ruby scripting language" ON)
option(ENABLE_LUA "Enable Lua scripting language" ON)
option(ENABLE_TCL "Enable Tcl scripting language" ON)
option(ENABLE_GUILE "Enable Scheme (guile) scripting language" ON)
option(ENABLE_JAVASCRIPT "Enable JavaScript scripting language" OFF)
option(ENABLE_PHP "Enable PHP scripting language" ON)
option(ENABLE_SPELL "Enable Spell checker plugin" ON)
option(ENABLE_ENCHANT "Use Enchant lib in Spell checker plugin" OFF)
option(ENABLE_TRIGGER "Enable Trigger plugin" ON)
option(ENABLE_TYPING "Enable Typing plugin" ON)
option(ENABLE_XFER "Enable Xfer plugin" ON)
option(ENABLE_MAN "Enable build of man page" OFF)
option(ENABLE_DOC "Enable build of documentation" OFF)
option(ENABLE_DOC_INCOMPLETE "Enable incomplete doc" OFF)
option(ENABLE_TESTS "Enable tests" OFF)
option(ENABLE_FUZZ "Enable fuzz testing" OFF)
option(ENABLE_CODE_COVERAGE "Enable code coverage" OFF)
# code coverage
add_library(coverage_config INTERFACE)
if(ENABLE_CODE_COVERAGE)
target_compile_options(coverage_config INTERFACE -O0 -g --coverage)
target_link_libraries(coverage_config INTERFACE --coverage)
if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
# GCC
target_compile_options(coverage_config INTERFACE -O0 -g --coverage)
target_link_libraries(coverage_config INTERFACE --coverage)
elseif(CMAKE_C_COMPILER_ID STREQUAL "Clang")
# Clang
target_compile_options(coverage_config INTERFACE -g -fprofile-instr-generate -fcoverage-mapping)
target_link_libraries(coverage_config INTERFACE -fprofile-instr-generate)
endif()
endif()
# headless mode is required for documentation
if(ENABLE_DOC AND NOT ENABLE_HEADLESS)
message(FATAL_ERROR "Headless mode is required to build documentation.")
endif()
# all plugins (except javascript) are required for documentation
if(ENABLE_DOC AND NOT ENABLE_DOC_INCOMPLETE
AND (NOT ENABLE_NLS OR NOT ENABLE_ALIAS OR NOT ENABLE_BUFLIST
OR NOT ENABLE_CHARSET OR NOT ENABLE_EXEC OR NOT ENABLE_FIFO
OR NOT ENABLE_FSET OR NOT ENABLE_IRC OR NOT ENABLE_LOGGER
OR NOT ENABLE_RELAY OR NOT ENABLE_SCRIPT OR NOT ENABLE_SCRIPTS
OR NOT ENABLE_PERL OR NOT ENABLE_PYTHON OR NOT ENABLE_RUBY
OR NOT ENABLE_LUA OR NOT ENABLE_TCL OR NOT ENABLE_GUILE
OR NOT ENABLE_PHP OR NOT ENABLE_SPELL OR NOT ENABLE_TRIGGER
OR NOT ENABLE_TYPING OR NOT ENABLE_XFER))
message(
FATAL_ERROR
" All plugins are required to build documentation.\n"
" If you really want to build incomplete docs, enable this option:\n"
" -DENABLE_DOC_INCOMPLETE=ON"
)
endif()
# headless mode is required for tests
@@ -133,128 +169,159 @@ if(ENABLE_TESTS AND NOT ENABLE_HEADLESS)
message(FATAL_ERROR "Headless mode is required for tests.")
endif()
# option WEECHAT_HOME
if(NOT DEFINED WEECHAT_HOME OR "${WEECHAT_HOME}" STREQUAL "")
set(WEECHAT_HOME "~/.weechat")
# Set this to override aspell's dictionaries directory
if(ASPELL_DICT_DIR)
add_definitions(-DASPELL_DICT_DIR="${ASPELL_DICT_DIR}")
endif()
# Set this to override the myspell dictionaries directory when using enchant
if(ENCHANT_MYSPELL_DICT_DIR)
add_definitions(-DENCHANT_MYSPELL_DICT_DIR="${ENCHANT_MYSPELL_DICT_DIR}")
endif()
# option WEECHAT_HOME
set(WEECHAT_HOME "${WEECHAT_HOME}" CACHE
STRING "WeeChat home directory for config, logs, scripts.. (default is \"~/.weechat\")"
STRING "Force a single WeeChat home directory for config, logs, scripts, etc."
FORCE)
mark_as_advanced(CLEAR WEECHAT_HOME)
# option CA_FILE
if(NOT DEFINED CA_FILE OR "${CA_FILE}" STREQUAL "")
set(CA_FILE "/etc/ssl/certs/ca-certificates.crt")
endif()
set(CA_FILE "${CA_FILE}" CACHE
STRING "File containing the certificate authorities (default is \"/etc/ssl/certs/ca-certificates.crt\"). This is the default value of option \"weechat.network.gnutls_ca_file\"."
FORCE)
mark_as_advanced(CLEAR CA_FILE)
if(COMMAND cmake_policy)
if(POLICY CMP0003)
cmake_policy(SET CMP0003 NEW)
endif()
if(POLICY CMP0017)
cmake_policy(SET CMP0017 NEW)
endif()
endif()
add_definitions(-DHAVE_CONFIG_H)
include(FindPkgConfig)
include(CheckIncludeFiles)
include(CheckFunctionExists)
include(CheckSymbolExists)
include(CheckLibraryExists)
check_include_files("langinfo.h" HAVE_LANGINFO_CODESET)
check_include_files("sys/resource.h" HAVE_SYS_RESOURCE_H)
check_include_files("malloc.h" HAVE_MALLOC_H)
check_symbol_exists("malloc_trim" "malloc.h" HAVE_MALLOC_TRIM)
check_function_exists(mallinfo HAVE_MALLINFO)
check_function_exists(mallinfo2 HAVE_MALLINFO2)
check_symbol_exists("htonll" "sys/types.h;netinet/in.h;inttypes.h" HAVE_HTONLL)
check_symbol_exists("eat_newline_glitch" "term.h" HAVE_EAT_NEWLINE_GLITCH)
# Check if res_init requires libresolv
check_function_exists(res_init, LIBC_HAS_RES_INIT)
if(NOT LIBC_HAS_RES_INIT)
find_library(RESOLV_LIBRARY resolv)
if(RESOLV_LIBRARY)
check_library_exists("${RESOLV_LIBRARY}" res_init "" LIBRESOLV_HAS_RES_INIT)
if(LIBRESOLV_HAS_RES_INIT)
list(APPEND EXTRA_LIBS ${RESOLV_LIBRARY})
endif()
endif()
endif()
# Check for Large File Support
if(ENABLE_LARGEFILE)
add_definitions(-D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -D_LARGE_FILES)
endif()
# Check for Gettext
if(ENABLE_NLS)
find_package(Gettext)
if(GETTEXT_FOUND)
add_definitions(-DENABLE_NLS)
find_package(Intl)
if(Intl_FOUND)
list(APPEND EXTRA_LIBS "${Intl_LIBRARIES}")
endif()
else()
message(SEND_ERROR "Gettext not found")
endif()
# _XPG4_2 is needed for macros like CMSG_SPACE
# __EXTENSIONS__ is needed for constants like NI_MAXHOST and for struct timeval
if(CMAKE_HOST_SOLARIS)
add_definitions(-D_XPG4_2 -D__EXTENSIONS__)
endif()
# Check for libgcrypt
find_package(GCRYPT REQUIRED)
add_definitions(-DHAVE_GCRYPT)
list(APPEND EXTRA_LIBS ${GCRYPT_LDFLAGS})
pkg_check_modules(LIBGCRYPT REQUIRED libgcrypt>=1.8.0)
include_directories(${LIBGCRYPT_INCLUDE_DIRS})
list(APPEND EXTRA_LIBS ${LIBGCRYPT_LDFLAGS})
# Check for GnuTLS
find_package(GnuTLS REQUIRED)
string(REGEX REPLACE "/[^/]*$" "" GNUTLS_LIBRARY_PATH "${GNUTLS_LIBRARY}")
include_directories(${GNUTLS_INCLUDE_PATH})
set(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} -L${GNUTLS_LIBRARY_PATH}")
list(APPEND EXTRA_LIBS gnutls)
pkg_check_modules(GNUTLS REQUIRED gnutls>=3.6.3)
include_directories(${GNUTLS_INCLUDE_DIRS})
list(APPEND EXTRA_LIBS ${GNUTLS_LDFLAGS})
# Check for zlib
find_package(ZLIB REQUIRED)
add_definitions(-DHAVE_ZLIB)
list(APPEND EXTRA_LIBS ${ZLIB_LIBRARY})
# Check for zstd
if(ENABLE_ZSTD)
pkg_check_modules(LIBZSTD REQUIRED libzstd>=1.4.0)
include_directories(${LIBZSTD_INCLUDE_DIRS})
list(APPEND EXTRA_LIBS ${LIBZSTD_LDFLAGS})
add_definitions(-DHAVE_ZSTD)
endif()
# Check for cJSON
if(ENABLE_CJSON)
pkg_check_modules(LIBCJSON REQUIRED libcjson)
include_directories(${LIBCJSON_INCLUDE_DIRS})
add_definitions(-DHAVE_CJSON)
endif()
# Check for iconv
find_package(Iconv)
if(ICONV_FOUND)
if(ICONV_LIBRARY)
list(APPEND EXTRA_LIBS ${ICONV_LIBRARY})
endif()
add_definitions(-DHAVE_ICONV)
endif()
# Check for CURL
find_package(CURL REQUIRED)
# NOTE: keep version in sync with tools/check_curl_symbols.py
pkg_check_modules(LIBCURL REQUIRED libcurl>=7.68.0)
include_directories(${LIBCURL_INCLUDE_DIRS})
list(APPEND EXTRA_LIBS ${LIBCURL_LDFLAGS})
# weechat_gui_common MUST be the first lib in the list
set(STATIC_LIBS weechat_gui_common)
find_library(DL_LIBRARY
NAMES dl
PATHS /lib /usr/lib /usr/libexec /usr/local/lib /usr/local/libexec
)
list(APPEND STATIC_LIBS weechat_plugins)
if(DL_LIBRARY)
string(REGEX REPLACE "/[^/]*$" "" DL_LIBRARY_PATH "${DL_LIBRARY}")
set(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} -L${DL_LIBRARY_PATH}")
list(APPEND EXTRA_LIBS dl)
endif()
list(APPEND EXTRA_LIBS ${CMAKE_DL_LIBS})
add_subdirectory(icons)
if(ENABLE_NLS)
find_package(Gettext REQUIRED)
if(LIBINTL_LIBRARY)
list(APPEND EXTRA_LIBS ${LIBINTL_LIBRARY})
endif()
find_package(Intl REQUIRED)
include_directories(${Intl_INCLUDE_DIRS})
list(APPEND EXTRA_LIBS "${Intl_LIBRARIES}")
add_subdirectory(po)
else()
add_custom_target(translations COMMAND true)
endif()
if(${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
find_library(EXECINFO_LIB_PATH execinfo /usr/local/lib)
check_function_exists(backtrace HAVE_BACKTRACE)
list(APPEND EXTRA_LIBS "execinfo")
else()
check_symbol_exists(backtrace "execinfo.h" HAVE_BACKTRACE)
endif()
if(${CMAKE_SYSTEM_NAME} STREQUAL "Haiku")
list(APPEND EXTRA_LIBS "network")
else()
list(APPEND EXTRA_LIBS "pthread")
endif()
if(${CMAKE_SYSTEM_NAME} STREQUAL "SunOS")
list(APPEND EXTRA_LIBS "socket" "nsl")
endif()
list(APPEND EXTRA_LIBS "m")
add_subdirectory(src)
add_subdirectory(doc)
if(ENABLE_TESTS)
find_package(CppUTest)
if(CPPUTEST_FOUND)
enable_testing()
add_subdirectory(tests)
else()
message(SEND_ERROR "CppUTest not found")
endif()
endif()
enable_testing()
add_subdirectory(tests)
configure_file(config.h.cmake config.h @ONLY)
# set the git version in "config-git.h"
add_custom_target(version_git ALL
COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/tools/git-version.sh" "${CMAKE_CURRENT_SOURCE_DIR}" "${VERSION}" "config-git.h"
COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/tools/set_git_version.sh" "${CMAKE_CURRENT_SOURCE_DIR}" "${VERSION}" "config-git.h"
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
)
@@ -270,7 +337,7 @@ add_custom_target(uninstall
add_custom_target(dist
"${CMAKE_CURRENT_SOURCE_DIR}/tools/makedist.sh" "${VERSION}" "HEAD" "${CMAKE_CURRENT_BINARY_DIR}"
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
)
# pkgconfig file
@@ -279,52 +346,23 @@ set(prefix "${CMAKE_INSTALL_PREFIX}")
set(exec_prefix "\${prefix}")
string(REPLACE "${CMAKE_INSTALL_PREFIX}" "\${prefix}" libdir "${LIBDIR}")
set(includedir "\${prefix}/include")
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/weechat.pc.in ${CMAKE_CURRENT_BINARY_DIR}/weechat.pc @ONLY)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat.pc DESTINATION ${LIBDIR}/pkgconfig)
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/weechat.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/weechat.pc" @ONLY)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/weechat.pc" DESTINATION "${LIBDIR}/pkgconfig")
# cygport file (used to build Cygwin packages)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/weechat.cygport.in ${CMAKE_CURRENT_BINARY_DIR}/weechat-${VERSION}-1.cygport @ONLY)
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/weechat.cygport.in" "${CMAKE_CURRENT_BINARY_DIR}/weechat-${VERSION}-1.cygport" @ONLY)
# install some files (only on Cygwin)
if(CYGWIN)
install(FILES
${CMAKE_CURRENT_SOURCE_DIR}/AUTHORS.adoc
${CMAKE_CURRENT_SOURCE_DIR}/ChangeLog.adoc
${CMAKE_CURRENT_SOURCE_DIR}/Contributing.adoc
${CMAKE_CURRENT_SOURCE_DIR}/README.adoc
${CMAKE_CURRENT_SOURCE_DIR}/ReleaseNotes.adoc
DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME}
"${CMAKE_CURRENT_SOURCE_DIR}/AUTHORS.md"
"${CMAKE_CURRENT_SOURCE_DIR}/CHANGELOG.md"
"${CMAKE_CURRENT_SOURCE_DIR}/CONTRIBUTING.md"
"${CMAKE_CURRENT_SOURCE_DIR}/README.md"
"${CMAKE_CURRENT_SOURCE_DIR}/UPGRADING.md"
DESTINATION "${DATAROOTDIR}/doc/${PROJECT_NAME}"
)
endif()
# desktop file
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/weechat.desktop DESTINATION ${DATAROOTDIR}/applications)
# packages
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Fast, light and extensible chat client")
set(CPACK_PACKAGE_VENDOR "Sébastien Helleu")
set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README.adoc")
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING")
set(CPACK_PACKAGE_VERSION_MAJOR ${VERSION_MAJOR})
set(CPACK_PACKAGE_VERSION_MINOR ${VERSION_MINOR})
set(CPACK_PACKAGE_VERSION_PATCH ${VERSION_PATCH})
# binary package
set(CPACK_GENERATOR "STGZ;TGZ;TBZ2")
set(CPACK_PACKAGE_FILE_NAME weechat-binary-${VERSION})
# source package
set(CPACK_SOURCE_GENERATOR "TGZ;TBZ2")
set(CPACK_SOURCE_PACKAGE_FILE_NAME weechat-${VERSION})
set(CPACK_SOURCE_IGNORE_FILES
"/\\\\.git" "/build/" "/m4/"
"/autom4te\\\\.cache/" "/ABOUT-NLS$" "/config\\\\.guess$" "/config\\\\.h$"
"/config\\\\.h.in$" "/config\\\\.log$" "/config\\\\.rpath$"
"/config\\\\.status$" "/config\\\\.sub$" "/configure$" "/depcomp$"
"/install-sh$" "/missing$" "/intl/" "/libtool$" "/\\\\.libs/"
"/ltmain\\\\.sh$" "/\\\\.deps/" "/html/" "/html1/" "/Makefile$"
"/Makefile\\\\.in$" "stamp" "/po/.*\\\\.header$" "\\\\.gmo$" "~$" "\\\\.o$"
"\\\\.lo$" "\\\\.a$" "\\\\.la$" "\\\\.lai$" "\\\\.Plo$" "/weechat$"
)
include(CPack)
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/weechat.desktop" DESTINATION "${DATAROOTDIR}/applications")
+114
View File
@@ -0,0 +1,114 @@
<!--
SPDX-FileCopyrightText: 2014-2026 Sébastien Helleu <flashcode@flashtux.org>
SPDX-License-Identifier: GPL-3.0-or-later
-->
# Contributing to WeeChat
## Reporting bugs
First, some basic things:
- Use only English to communicate with developers.
- Search in issues if the same problem or feature request has already been
reported (a duplicate is waste of time for you and the developers!).
- If you can, please check if the problem has been fixed in development version
(if you are using a stable release or old version).
- Report only one bug or feature request per issue.
### Security reports
Please **DO NOT** file a GitHub issue for security related problems; see [SECURITY.md](SECURITY.md) instead.
### Required info
When reporting [issues](https://github.com/weechat/weechat/issues) on GitHub,
please include:
- Your **WeeChat version**: the output of `/v` in WeeChat, for example:
`WeeChat 1.7-dev (git: v1.6-6-g997f47f)`.\
If WeeChat does not start at all, please include the version displayed by
`weechat --help` (or the version installed with your package manager).
- Your **operating system**: its name and version (examples: Linux Debian Bookworm,
FreeBSD 13.0, Windows/Cygwin 64-bit, Windows/Ubuntu 64-bit…).
- The **steps to reproduce**: if possible, please include a reproducible example:
explain the steps which led you to the problem.\
It's even better if you can reproduce the problem with a new config (and no
scripts loaded): try `weechat --dir /tmp/weechat` and check if you have the
problem here.
- The **gdb's backtrace** (only for a crash): if you can reproduce the crash
(or if you have a core file), please include the backtrace from gdb (look at
[User's guide](https://weechat.org/doc/weechat/user/#report_crashes) for more info).
- The **actual result**.
- The **expected result**: the correct result you are expecting.
> [!IMPORTANT]
> Most of times, the WeeChat crash log file (_weechat_crash_YYYYMMDD_xxx.log_)
is **NOT USEFUL** to fix the bug, so please report this file **ONLY** if a developer
asked you to send it (and be extremely careful, this file can contain personal
data like passwords and contents of your chats).
### Scripts related issues
If you are using scripts, they can cause problems/crashes. To check if the
problem is related to one script, try to unload them one by one (using
command `/script unload <name>`).
Many issues reported are in fact related to bugs in scripts, so please first
check that before reporting any issue on WeeChat itself.
If you think the problem comes from a specific script, please report the issue
in the [scripts git repository](https://github.com/weechat/scripts/issues) instead.
## Translations
Pull requests on GitHub for fixes or new translations are welcome at any
time, for [WeeChat](https://github.com/weechat/weechat) and the website
[weechat.org](https://github.com/weechat/weechat.org).
To start a translation in a new language (not yet supported), please look at
[translations](https://weechat.org/doc/weechat/dev/#translations)
in Developer's guide.
## Feature requests
WeeChat is under active development, so your idea may already have been
implemented, or scheduled for a future version (you can check in
[roadmap](https://weechat.org/dev/) or
[milestones](https://github.com/weechat/weechat/milestones) on GitHub.
Pull requests on GitHub are welcome for minor new features.
For major new features, it's better to discuss about it in IRC
(server: `irc.libera.chat`, channel `#weechat`).
Before submitting any pull request, be sure you have read the
[coding rules](https://weechat.org/doc/weechat/dev/#coding_rules)
in Developer's guide, which contains info about styles used, naming convention
and other useful info.
## Semantic versioning
Since version 4.0.0, WeeChat is following a "practical" semantic versioning.
It is based on [Semantic Versioning](https://semver.org/) but in a less strict way:
breaking changes in API with low user impact don't bump the major version.
The version number is on three digits `X.Y.Z`, where:
- `X` is the major version
- `Y` is the minor version
- `Z` is the patch version.
Rules to increment the version number:
- the **major version** number (`X`) is incremented only when intentional breaking changes
target feature areas that are actively consumed by users, scripts or C plugin API
- the **minor version** number (`Y`) is incremented for any new release of WeeChat
that includes new features and bug fixes, possibly breaking API with low impact on users
- the **patch version** number (`Z`) is reserved for releases that address severe bugs
or security issues found after the release.
For more information, see the
[specification](https://specs.weechat.org/specs/2023-003-practical-semantic-versioning.html).
+1 -1
View File
@@ -671,4 +671,4 @@ into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<https://www.gnu.org/philosophy/why-not-lgpl.html>.
<https://www.gnu.org/licenses/why-not-lgpl.html>.
-3135
View File
File diff suppressed because it is too large Load Diff
-90
View File
@@ -1,90 +0,0 @@
= Contributing to WeeChat
:author: Sébastien Helleu
:email: flashcode@flashtux.org
:lang: en
== Reporting bugs
First, some basic things:
* Use only English to communicate with developers.
* Search in issues if the same problem or feature request has already been
reported (a duplicate is waste of time for you and the developers!).
* If you can, please check if the problem has been fixed in development version
(if you are using a stable release or old version).
* Report only one bug or feature request per issue.
=== Security reports
Please *DO NOT* file a GitHub issue for security related problems, but send an
email to <security@weechat.org> instead.
=== Required info
When reporting https://github.com/weechat/weechat/issues[issues] on GitHub,
please include:
* Your *WeeChat version*: the output of `/v` in WeeChat, for example:
_WeeChat 1.7-dev (git: v1.6-6-g997f47f)_. +
If WeeChat does not start at all, please include the version displayed by
`weechat --help` (or the version installed with your package manager).
* Your *operating system*: its name and version (examples: Linux Debian Wheezy,
FreeBSD 10.0, Windows/Cygwin 64-bit, Windows/Ubuntu 64-bit...).
* The *steps to reproduce*: if possible, please include a reproducible example:
explain the steps which led you to the problem. +
It's even better if you can reproduce the problem with a new config (and no
scripts loaded): try `weechat --dir /tmp/weechat` and check if you have the
problem here.
* The *gdb's backtrace* (only for a crash): if you can reproduce the crash
(or if you have a core file), please include the backtrace from gdb (look at
https://weechat.org/files/doc/devel/weechat_user.en.html#report_crashes[User's guide]
for more info).
* The *actual result*.
* The *expected result*: the correct result you are expecting.
[IMPORTANT]
Most of times, the WeeChat crash log file (_weechat_crash_YYYYMMDD_xxx.log_) is
*NOT USEFUL* to fix the bug, so please report this file *ONLY* if a developer
asked you to send it (and be extremely careful, this file can contain personal
data like passwords and contents of your chats).
=== Scripts related issues
If you are using scripts, they can cause problems/crashes. To check if the
problem is related to one script, try to unload them one by one (using
command `/script unload <name>`).
Many issues reported are in fact related to bugs in scripts, so please first
check that before reporting any issue on WeeChat itself.
If you think the problem comes from a specific script, please report the issue
in the https://github.com/weechat/scripts/issues[scripts git repository]
instead.
== Translations
Pull requests on GitHub for fixes or new translations are welcome at any
time, for https://github.com/weechat/weechat[WeeChat] and the website
https://github.com/weechat/weechat.org[weechat.org].
To start a translation in a new language (not yet supported), please look at
https://weechat.org/files/doc/devel/weechat_dev.en.html#translations[translations]
in Developer's guide.
== Feature requests
WeeChat is under active development, so your idea may already have been
implemented, or scheduled for a future version (you can check in
https://weechat.org/dev[roadmap] or
https://github.com/weechat/weechat/milestones[milestones] on GitHub.
Pull requests on GitHub are welcome for minor new features.
For major new features, it's better to discuss about it in IRC
(server: _chat.freenode.net_, channel _#weechat_).
Before submitting any pull request, be sure you have read the
https://weechat.org/files/doc/devel/weechat_dev.en.html#coding_rules[coding rules]
in Developer's guide, which contains info about styles used, naming convention
and other useful info.
+232
View File
@@ -0,0 +1,232 @@
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright © 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for software and other kinds of works.
The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too.
When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.
Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions.
Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and modification follow.
TERMS AND CONDITIONS
0. Definitions.
“This License” refers to version 3 of the GNU General Public License.
“Copyright” also means copyright-like laws that apply to other kinds of works, such as semiconductor masks.
“The Program” refers to any copyrightable work licensed under this License. Each licensee is addressed as “you”. “Licensees” and “recipients” may be individuals or organizations.
To “modify” a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a “modified version” of the earlier work or a work “based on” the earlier work.
A “covered work” means either the unmodified Program or a work based on the Program.
To “propagate” a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well.
To “convey” a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays “Appropriate Legal Notices” to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion.
1. Source Code.
The “source code” for a work means the preferred form of the work for making modifications to it. “Object code” means any non-source form of a work.
A “Standard Interface” means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language.
The “System Libraries” of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A “Major Component”, in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it.
The “Corresponding Source” for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work.
The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source.
The Corresponding Source for a work in source code form is that same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures.
When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified it, and giving a relevant date.
b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to “keep intact all notices”.
c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so.
A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an “aggregate” if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways:
a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b.
d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d.
A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work.
A “User Product” is either (1) a “consumer product”, which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, “normally used” refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product.
“Installation Information” for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made.
If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM).
The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying.
7. Additional Terms.
“Additional permissions” are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or authors of the material; or
e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors.
All other non-permissive additional terms are considered “further restrictions” within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11).
However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice.
Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License.
An “entity transaction” is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it.
11. Patents.
A “contributor” is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's “contributor version”.
A contributor's “essential patent claims” are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, “control” includes the right to grant patent sublicenses in a manner consistent with the requirements of this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version.
In the following three paragraphs, a “patent license” is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To “grant” such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party.
If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. “Knowingly relying” means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it.
A patent license is “discriminatory” if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation.
If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program.
Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the “copyright” line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode:
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an “about box”.
You should also get your employer (if you work as a programmer) or school, if any, to sign a “copyright disclaimer” for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see <https://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read <https://www.gnu.org/philosophy/why-not-lgpl.html>.
-80
View File
@@ -1,80 +0,0 @@
#
# Copyright (C) 2003-2020 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2005 Julien Louis <ptitlouis@sysif.net>
# Copyright (C) 2006-2009 Emmanuel Bouthenot <kolter@openics.org>
#
# This file is part of WeeChat, the extensible chat client.
#
# WeeChat is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# WeeChat is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with WeeChat. If not, see <https://www.gnu.org/licenses/>.
#
# This target will update file config-git.h with output of command "git describe"
# (if needed, and only for a devel/rc version).
BUILT_SOURCES = build-config-git.h
build-config-git.h:
-$(abs_top_srcdir)/tools/git-version.sh "$(abs_top_srcdir)" "$(VERSION)" config-git.h
if TESTS
tests_dir = tests
endif
SUBDIRS = icons po doc intl src $(tests_dir)
EXTRA_DIST = AUTHORS.adoc \
ChangeLog.adoc \
Contributing.adoc \
README.adoc \
ReleaseNotes.adoc \
CMakeLists.txt \
config.rpath \
config.h.cmake \
cmake/CMakeParseArguments.cmake \
cmake/FindAsciidoctor.cmake \
cmake/FindAspell.cmake \
cmake/FindCppUTest.cmake \
cmake/FindENCHANT.cmake \
cmake/FindGCRYPT.cmake \
cmake/FindGettext.cmake \
cmake/FindGnuTLS.cmake \
cmake/FindGuile.cmake \
cmake/FindIconv.cmake \
cmake/FindLua.cmake \
cmake/FindNcurses.cmake \
cmake/FindPerl.cmake \
cmake/FindPkgConfig.cmake \
cmake/FindPython.cmake \
cmake/FindRuby.cmake \
cmake/FindV8.cmake \
cmake/FindZLIB.cmake \
cmake/cmake_uninstall.cmake.in \
po/CMakeLists.txt \
po/srcfiles.cmake \
tools/build-test.sh \
tools/git-version.sh \
tools/makedist.sh \
version.sh \
weechat.desktop \
weechat.pc.in \
weechat.cygport.in
ACLOCAL_AMFLAGS = -I m4
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = weechat.pc
desktopdir = $(datadir)/applications
desktop_DATA = weechat.desktop
clean-local:
$(RM) config-git.h
-132
View File
@@ -1,132 +0,0 @@
:author: Sébastien Helleu
:email: flashcode@flashtux.org
:lang: en
pass:[<p align="center">] image:https://weechat.org/media/images/weechat_logo_large.png[align="center"] pass:[</p>]
image:https://img.shields.io/badge/diaspora*-follow-blue.svg["Diaspora*", link="https://diasp.eu/u/weechat"]
image:https://img.shields.io/badge/mastodon-follow-blue.svg["Mastodon", link="https://hostux.social/@weechat"]
image:https://img.shields.io/badge/twitter-follow-blue.svg["Twitter", link="https://twitter.com/WeeChatClient"]
image:https://img.shields.io/badge/devel%20blog-follow-blue.svg["Devel blog", link="https://blog.weechat.org/"]
image:https://img.shields.io/badge/slant-recommend-28acad.svg["Slant", link="https://www.slant.co/topics/1323/~best-irc-clients-for-linux"]
image:https://img.shields.io/badge/help-donate%20%E2%9D%A4-ff69b4.svg["Donate", link="https://weechat.org/donate/"]
image:https://github.com/weechat/weechat/workflows/CI/badge.svg["CI", link="https://github.com/weechat/weechat/actions"]
image:https://codecov.io/gh/weechat/weechat/branch/master/graph/badge.svg["Code coverage", link="https://codecov.io/gh/weechat/weechat"]
*WeeChat* (Wee Enhanced Environment for Chat) is a free chat client, fast and
light, designed for many operating systems.
It is highly customizable and extensible with scripts.
Homepage: https://weechat.org/
== Features
* *Modular chat client*: WeeChat has a lightweight core and optional https://weechat.org/files/doc/stable/weechat_user.en.html#plugins[plugins]. All plugins (including https://weechat.org/files/doc/stable/weechat_user.en.html#irc_plugin[IRC]) are independent and can be unloaded.
* *Multi-platform*: WeeChat runs on GNU/Linux, *BSD, GNU/Hurd, Haiku, macOS and Windows (Bash/Ubuntu and Cygwin).
* *Multi-protocols*: WeeChat is designed to support multiple protocols by plugins, like IRC.
* *Standards-compliant*: the IRC plugin is compliant with RFCs https://tools.ietf.org/html/rfc1459[1459], https://tools.ietf.org/html/rfc2810[2810], https://tools.ietf.org/html/rfc2811[2811], https://tools.ietf.org/html/rfc2812[2812] and https://tools.ietf.org/html/rfc2813[2813].
* *Small, fast and very light*: the core is and should stay as light and fast as possible.
* *Customizable and extensible*: there are a lot of options to customize WeeChat, and it is extensible with C plugins and https://weechat.org/scripts/[scripts] (https://weechat.org/scripts/stable/language/perl/[Perl], https://weechat.org/scripts/stable/language/python/[Python], https://weechat.org/scripts/stable/language/ruby[Ruby], https://weechat.org/scripts/stable/language/lua/[Lua], https://weechat.org/scripts/stable/language/tcl/[Tcl], https://weechat.org/scripts/stable/language/guile/[Scheme], https://weechat.org/scripts/stable/language/javascript/[JavaScript] and https://weechat.org/scripts/stable/language/php/[PHP]).
* *Fully documented*: there is comprehensive https://weechat.org/doc/[documentation], which is https://weechat.org/files/doc/stable/weechat_dev.en.html#translations[translated] into several languages.
* *Developed from scratch*: WeeChat was built from scratch and is not based on any other client.
* *Free software*: WeeChat is released under https://www.gnu.org/licenses/gpl-3.0.html[GPLv3].
pass:[<p align="center">] image:https://weechat.org/media/images/screenshots/weechat/medium/weechat_2013-04-27_phlux_shadow.png[align="center"] pass:[</p>]
On WeeChat's website you can find https://weechat.org/about/screenshots/[more screenshots].
== Install
=== Dependencies
Following packages are *required*:
* CMake
* libncurses
* libcurl
* zlib
* libgcrypt
Following packages are optional:
* for i18n: gettext
* for SSL: gnutls, ca-certificates
* for spell checking: aspell or enchant
* for scripting: python, perl, ruby, lua, tcl, guile, libv8 (javascript), php
* for building doc and man page: asciidoctor
* for building tests: C++ compiler, CppUTest
For a complete list of dependencies and versions recommended, please look at
https://weechat.org/files/doc/devel/weechat_user.en.html#dependencies[user's guide].
=== Compile
WeeChat can be built with https://cmake.org/[CMake] (recommended) or autotools.
[NOTE]
Only CMake is officially supported to build WeeChat. You should only use
autotools if you are not able to use CMake. +
Building with autotools requires more dependencies and is slower than with CMake.
* Installation in system directories (requires _root_ privileges):
----
$ mkdir build
$ cd build
$ cmake ..
$ make
$ sudo make install
----
* Installation in custom directory (for example your home):
----
$ mkdir build
$ cd build
$ cmake .. -DCMAKE_INSTALL_PREFIX=/path/to/directory
$ make
$ make install
----
For more information or installation with autotools, please look at
https://weechat.org/files/doc/devel/weechat_user.en.html#compile_with_autotools[user's guide].
=== Run tests
Following packages are *required* to compile tests:
* libcpputest-dev
* C++ compiler
Tests must be enabled when compiling WeeChat:
----
$ cmake .. -DENABLE_TESTS=ON
----
They can be launched after compilation from the build directory:
----
$ ctest -V
----
== Copyright
Copyright (C) 2003-2020 Sébastien Helleu <flashcode@flashtux.org>
This file is part of WeeChat, the extensible chat client.
WeeChat is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
WeeChat is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with WeeChat. If not, see <https://www.gnu.org/licenses/>.
+73
View File
@@ -0,0 +1,73 @@
<!--
SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
SPDX-License-Identifier: GPL-3.0-or-later
-->
# WeeChat
<p align="center">
<img src="https://weechat.org/media/images/weechat_logo_large.png" alt="WeeChat" />
</p>
[![Mastodon](https://img.shields.io/badge/mastodon-follow-blue.svg)](https://hostux.social/@weechat)
[![X](https://img.shields.io/badge/x-follow-blue.svg)](https://x.com/WeeChatClient)
[![Devel blog](https://img.shields.io/badge/devel%20blog-follow-blue.svg)](https://blog.weechat.org/)
[![Donate](https://img.shields.io/badge/help-donate%20%E2%9D%A4-ff69b4.svg)](https://weechat.org/donate/)
[![CI](https://github.com/weechat/weechat/workflows/CI/badge.svg)](https://github.com/weechat/weechat/actions)
[![Code coverage](https://codecov.io/gh/weechat/weechat/branch/main/graph/badge.svg)](https://codecov.io/gh/weechat/weechat)
[![REUSE status](https://api.reuse.software/badge/github.com/weechat/weechat)](https://api.reuse.software/info/github.com/weechat/weechat)
**WeeChat** (Wee Enhanced Environment for Chat) is a free chat client, fast and light, designed for many operating systems.\
It is highly customizable and extensible with scripts.
Homepage: [https://weechat.org/](https://weechat.org/)
## Features
- **Modular chat client**: WeeChat has a lightweight core and optional [plugins](https://weechat.org/doc/weechat/user/#plugins). All plugins (including [IRC](https://weechat.org/doc/weechat/user/#irc)) are independent and can be unloaded.
- **Multi-platform**: WeeChat runs on GNU/Linux, *BSD, GNU/Hurd, Haiku, macOS and Windows (WSL and Cygwin).
- **Multi-protocol**: WeeChat is designed to support multiple protocols via plugins, like IRC.
- **Standards-compliant**: the IRC plugin is compliant with RFCs [1459](https://datatracker.ietf.org/doc/html/rfc1459), [2810](https://datatracker.ietf.org/doc/html/rfc2810), [2811](https://datatracker.ietf.org/doc/html/rfc2811), [2812](https://datatracker.ietf.org/doc/html/rfc2812), [2813](https://datatracker.ietf.org/doc/html/rfc2813) and [7194](https://datatracker.ietf.org/doc/html/rfc7194).
- **Small, fast, and very light**: the core is and should stay as light and fast as possible.
- **Customizable and extensible**: there are a lot of options to customize WeeChat, and it is extensible with C plugins and [scripts](https://weechat.org/scripts/) ([Perl](https://weechat.org/scripts/language/perl/), [Python](https://weechat.org/scripts/language/python/), [Ruby](https://weechat.org/scripts/language/ruby/), [Lua](https://weechat.org/scripts/language/lua/), [Tcl](https://weechat.org/scripts/language/tcl/), [Scheme](https://weechat.org/scripts/language/guile/), [JavaScript](https://weechat.org/scripts/language/javascript/) and [PHP](https://weechat.org/scripts/language/php/)).
- **Fully documented**: there is comprehensive [documentation](https://weechat.org/doc/weechat/), which is [translated](https://weechat.org/doc/weechat/dev/#translations) into several languages.
- **Developed from scratch**: WeeChat was built from scratch and is not based on any other client.
- **Free software**: WeeChat is released under [GPLv3](https://www.gnu.org/licenses/gpl-3.0.html).
<p align="center">
<img src="https://weechat.org/media/images/screenshots/weechat/medium/weechat_2013-04-27_phlux_shadow.png" alt="WeeChat" />
</p>
On WeeChat's website you can find [more screenshots](https://weechat.org/about/screenshots/).
## Installation
WeeChat can be installed using your favorite package manager (recommended) or by compiling it yourself.\
For detailed instructions, please check the [WeeChat user's guide](https://weechat.org/doc/weechat/user/#install).
## Semantic versioning
WeeChat follows "practical" semantic versioning; see [CONTRIBUTING.md](CONTRIBUTING.md#semantic-versioning).
## Copyright
<!-- REUSE-IgnoreStart -->
Copyright © 2003-2026 [Sébastien Helleu](https://github.com/flashcode)
This file is part of WeeChat, the extensible chat client.
WeeChat is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
WeeChat is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with WeeChat. If not, see <https://www.gnu.org/licenses/>.
<!-- REUSE-IgnoreEnd -->
+29
View File
@@ -0,0 +1,29 @@
# SPDX-FileCopyrightText: 2025-2026 Sébastien Helleu <flashcode@flashtux.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later
version = 1
[[annotations]]
path = [
"debian-devel/**",
"debian-stable/**",
"icons/**/*.png",
"icons/**/*.svg",
"src/plugins/php/weechat-php_arginfo.h",
"src/plugins/php/weechat-php_legacy_arginfo.h",
"tools/debian/patches/**",
"weechat.desktop",
"weechat.pc.in",
]
precedence = "override"
SPDX-FileCopyrightText = "2003-2026 Sébastien Helleu <flashcode@flashtux.org>"
SPDX-License-Identifier = "GPL-3.0-or-later"
[[annotations]]
path = [
".poexam/*.dic",
]
precedence = "override"
SPDX-FileCopyrightText = "2026 Sébastien Helleu <flashcode@flashtux.org>"
SPDX-License-Identifier = "GPL-3.0-or-later"
-2318
View File
File diff suppressed because it is too large Load Diff
+26
View File
@@ -0,0 +1,26 @@
<!--
SPDX-FileCopyrightText: 2026 Sébastien Helleu <flashcode@flashtux.org>
SPDX-License-Identifier: GPL-3.0-or-later
-->
# Security Policy
## Supported versions
Only the latest stable version of WeeChat is supported.
| Version | Supported | Notes |
| -------------- | ------------------ | --------------------------------------------------- |
| Latest stable | :white_check_mark: | Fully supported. |
| Older releases | :x: | Not supported. Contact us in case of specific need. |
However, we may help to backport fixes on older versions, especially when they are used in released distributions with no way to upgrade to the latest stable release (please contact us).
## Reporting a vulnerability
Please report security issues using <https://github.com/weechat/weechat/security/advisories/new>.
Alternatively, if you are not able to use this form, you can send an email to [security@weechat.org](mailto:security@weechat.org) instead.
We will investigate all legitimate reports and do our best to quickly fix the problem.
+3204
View File
File diff suppressed because it is too large Load Diff
-69
View File
@@ -1,69 +0,0 @@
#!/bin/sh
#
# Copyright (C) 2003-2020 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2005 Julien Louis <ptitlouis@sysif.net>
# Copyright (C) 2005-2006 Emmanuel Bouthenot <kolter@openics.org>
#
# This file is part of WeeChat, the extensible chat client.
#
# WeeChat is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# WeeChat is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with WeeChat. If not, see <https://www.gnu.org/licenses/>.
#
###
### common stuff
###
DIR=$(cd "$(dirname "$0")" || exit 1; pwd)
cd "$DIR" || exit 1
AUTOGEN_LOG=autogen.log
err ()
{
echo "-------"
echo "Error :"
echo "---8<-----------------------------------"
cat $AUTOGEN_LOG
echo "----------------------------------->8---"
exit 1
}
run ()
{
printf "Running \"%s\"..." "$@"
if eval "$@" >$AUTOGEN_LOG 2>&1 ; then
echo " OK"
else
echo " FAILED"
err
fi
}
# remove autotools stuff
run "rm -f config.h.in"
run "rm -f aclocal.m4 configure config.log config.status"
run "rm -rf autom4te*.cache"
# remove libtool stuff
run "rm -f libtool"
# remove gettext stuff
run "rm -f ABOUT-NLS"
run "rm -rf intl"
# execute autoreconf cmds
run "autoreconf -vi"
# ending
rm -f $AUTOGEN_LOG
-138
View File
@@ -1,138 +0,0 @@
# CMAKE_PARSE_ARGUMENTS(<prefix> <options> <one_value_keywords> <multi_value_keywords> args...)
#
# CMAKE_PARSE_ARGUMENTS() is intended to be used in macros or functions for
# parsing the arguments given to that macro or function.
# It processes the arguments and defines a set of variables which hold the
# values of the respective options.
#
# The <options> argument contains all options for the respective macro,
# i.e. keywords which can be used when calling the macro without any value
# following, like e.g. the OPTIONAL keyword of the install() command.
#
# The <one_value_keywords> argument contains all keywords for this macro
# which are followed by one value, like e.g. DESTINATION keyword of the
# install() command.
#
# The <multi_value_keywords> argument contains all keywords for this macro
# which can be followed by more than one value, like e.g. the TARGETS or
# FILES keywords of the install() command.
#
# When done, CMAKE_PARSE_ARGUMENTS() will have defined for each of the
# keywords listed in <options>, <one_value_keywords> and
# <multi_value_keywords> a variable composed of the given <prefix>
# followed by "_" and the name of the respective keyword.
# These variables will then hold the respective value from the argument list.
# For the <options> keywords this will be TRUE or FALSE.
#
# All remaining arguments are collected in a variable
# <prefix>_UNPARSED_ARGUMENTS, this can be checked afterwards to see whether
# your macro was called with unrecognized parameters.
#
# As an example here a my_install() macro, which takes similar arguments as the
# real install() command:
#
# function(MY_INSTALL)
# set(options OPTIONAL FAST)
# set(oneValueArgs DESTINATION RENAME)
# set(multiValueArgs TARGETS CONFIGURATIONS)
# cmake_parse_arguments(MY_INSTALL "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} )
# ...
#
# Assume my_install() has been called like this:
# my_install(TARGETS foo bar DESTINATION bin OPTIONAL blub)
#
# After the cmake_parse_arguments() call the macro will have set the following
# variables:
# MY_INSTALL_OPTIONAL = TRUE
# MY_INSTALL_FAST = FALSE (this option was not used when calling my_install()
# MY_INSTALL_DESTINATION = "bin"
# MY_INSTALL_RENAME = "" (was not used)
# MY_INSTALL_TARGETS = "foo;bar"
# MY_INSTALL_CONFIGURATIONS = "" (was not used)
# MY_INSTALL_UNPARSED_ARGUMENTS = "blub" (no value expected after "OPTIONAL"
#
# You can the continue and process these variables.
#
# Keywords terminate lists of values, e.g. if directly after a one_value_keyword
# another recognized keyword follows, this is interpreted as the beginning of
# the new option.
# E.g. my_install(TARGETS foo DESTINATION OPTIONAL) would result in
# MY_INSTALL_DESTINATION set to "OPTIONAL", but MY_INSTALL_DESTINATION would
# be empty and MY_INSTALL_OPTIONAL would be set to TRUE therefor.
#=============================================================================
# Copyright 2010 Alexander Neundorf <neundorf@kde.org>
#
# Distributed under the OSI-approved BSD License (the "License");
# see accompanying file Copyright.txt for details.
#
# This software is distributed WITHOUT ANY WARRANTY; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the License for more information.
#=============================================================================
# (To distribute this file outside of CMake, substitute the full
# License text for the above reference.)
if(__CMAKE_PARSE_ARGUMENTS_INCLUDED)
return()
endif()
set(__CMAKE_PARSE_ARGUMENTS_INCLUDED TRUE)
function(CMAKE_PARSE_ARGUMENTS prefix _optionNames _singleArgNames _multiArgNames)
# first set all result variables to empty/FALSE
foreach(arg_name ${_singleArgNames} ${_multiArgNames})
set(${prefix}_${arg_name})
endforeach(arg_name)
foreach(option ${_optionNames})
set(${prefix}_${option} FALSE)
endforeach(option)
set(${prefix}_UNPARSED_ARGUMENTS)
set(insideValues FALSE)
set(currentArgName)
# now iterate over all arguments and fill the result variables
foreach(currentArg ${ARGN})
list(FIND _optionNames "${currentArg}" optionIndex) # ... then this marks the end of the arguments belonging to this keyword
list(FIND _singleArgNames "${currentArg}" singleArgIndex) # ... then this marks the end of the arguments belonging to this keyword
list(FIND _multiArgNames "${currentArg}" multiArgIndex) # ... then this marks the end of the arguments belonging to this keyword
if(${optionIndex} EQUAL -1 AND ${singleArgIndex} EQUAL -1 AND ${multiArgIndex} EQUAL -1)
if(insideValues)
if("${insideValues}" STREQUAL "SINGLE")
set(${prefix}_${currentArgName} ${currentArg})
set(insideValues FALSE)
elseif("${insideValues}" STREQUAL "MULTI")
list(APPEND ${prefix}_${currentArgName} ${currentArg})
endif()
else(insideValues)
list(APPEND ${prefix}_UNPARSED_ARGUMENTS ${currentArg})
endif(insideValues)
else()
if(NOT ${optionIndex} EQUAL -1)
set(${prefix}_${currentArg} TRUE)
set(insideValues FALSE)
elseif(NOT ${singleArgIndex} EQUAL -1)
set(currentArgName ${currentArg})
set(${prefix}_${currentArgName})
set(insideValues "SINGLE")
elseif(NOT ${multiArgIndex} EQUAL -1)
set(currentArgName ${currentArg})
set(${prefix}_${currentArgName})
set(insideValues "MULTI")
endif()
endif()
endforeach(currentArg)
# propagate the result variables to the caller:
foreach(arg_name ${_singleArgNames} ${_multiArgNames} ${_optionNames})
set(${prefix}_${arg_name} ${${prefix}_${arg_name}} PARENT_SCOPE)
endforeach(arg_name)
set(${prefix}_UNPARSED_ARGUMENTS ${${prefix}_UNPARSED_ARGUMENTS} PARENT_SCOPE)
endfunction(CMAKE_PARSE_ARGUMENTS _options _singleArgs _multiArgs)
+3 -1
View File
@@ -1,5 +1,7 @@
#
# Copyright (C) 2003-2020 Sébastien Helleu <flashcode@flashtux.org>
# SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later
#
# This file is part of WeeChat, the extensible chat client.
#
+3 -1
View File
@@ -1,5 +1,7 @@
#
# Copyright (C) 2003-2020 Sébastien Helleu <flashcode@flashtux.org>
# SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later
#
# This file is part of WeeChat, the extensible chat client.
#
+3 -1
View File
@@ -1,5 +1,7 @@
#
# Copyright (C) 2014-2020 Sébastien Helleu <flashcode@flashtux.org>
# SPDX-FileCopyrightText: 2014-2026 Sébastien Helleu <flashcode@flashtux.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later
#
# This file is part of WeeChat, the extensible chat client.
#
-50
View File
@@ -1,50 +0,0 @@
# - Try to find the Enchant spell checker
# Once done this will define
#
# ENCHANT_FOUND - system has ENCHANT
# ENCHANT_INCLUDE_DIR - the ENCHANT include directory
# ENCHANT_LIBRARIES - Link these to use ENCHANT
# ENCHANT_DEFINITIONS - Compiler switches required for using ENCHANT
# Copyright (c) 2006, Zack Rusin, <zack@kde.org>
#
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
if(ENCHANT_INCLUDE_DIR AND ENCHANT_LIBRARIES)
# in cache already
set(ENCHANT_FOUND TRUE)
else()
if(NOT WIN32)
# use pkg-config to get the directories and then use these values
# in the FIND_PATH() and FIND_LIBRARY() calls
find_package(PkgConfig)
pkg_check_modules(PC_ENCHANT enchant)
set(ENCHANT_DEFINITIONS ${PC_ENCHANT_CFLAGS_OTHER})
endif()
find_path(ENCHANT_INCLUDE_DIR
NAMES enchant++.h
HINTS ${PC_ENCHANT_INCLUDEDIR} ${PC_ENCHANT_INCLUDE_DIRS}
PATH_SUFFIXES enchant
)
find_library(ENCHANT_LIBRARIES
NAMES enchant
HINTS ${PC_ENCHANT_LIBDIR}
${PC_ENCHANT_LIBRARY_DIRS}
)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(ENCHANT DEFAULT_MSG ENCHANT_INCLUDE_DIR ENCHANT_LIBRARIES)
mark_as_advanced(ENCHANT_INCLUDE_DIR ENCHANT_LIBRARIES)
# check if function enchant_get_version() exists
set(CMAKE_REQUIRED_INCLUDES ${ENCHANT_INCLUDE_DIR})
set(CMAKE_REQUIRED_LIBRARIES ${ENCHANT_LIBRARIES})
check_symbol_exists(enchant_get_version "enchant.h" HAVE_ENCHANT_GET_VERSION)
set(CMAKE_REQUIRED_INCLUDES)
set(CMAKE_REQUIRED_LIBRARIES)
endif()
-53
View File
@@ -1,53 +0,0 @@
#
# Copyright (C) 2003-2020 Sébastien Helleu <flashcode@flashtux.org>
#
# This file is part of WeeChat, the extensible chat client.
#
# WeeChat is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# WeeChat is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with WeeChat. If not, see <https://www.gnu.org/licenses/>.
#
# - Find Gcrypt
# This module finds if libgcrypt is installed and determines where
# the include files and libraries are.
#
# This code sets the following variables:
#
# GCRYPT_CFLAGS = cflags to use to compile
# GCRYPT_LDFLAGS = ldflags to use to compile
#
find_program(LIBGCRYPT_CONFIG_EXECUTABLE NAMES libgcrypt-config)
set(GCRYPT_LDFLAGS)
set(GCRYPT_CFLAGS)
if(LIBGCRYPT_CONFIG_EXECUTABLE)
exec_program(${LIBGCRYPT_CONFIG_EXECUTABLE} ARGS --libs RETURN_VALUE _return_VALUE OUTPUT_VARIABLE GCRYPT_LDFLAGS)
exec_program(${LIBGCRYPT_CONFIG_EXECUTABLE} ARGS --cflags RETURN_VALUE _return_VALUE OUTPUT_VARIABLE GCRYPT_CFLAGS)
if(${GCRYPT_CFLAGS} MATCHES "\n")
set(GCRYPT_CFLAGS " ")
endif()
endif()
# handle the QUIETLY and REQUIRED arguments and set GCRYPT_FOUND to TRUE if
# all listed variables are TRUE
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(GCRYPT REQUIRED_VARS GCRYPT_LDFLAGS GCRYPT_CFLAGS)
if(GCRYPT_FOUND)
mark_as_advanced(GCRYPT_CFLAGS GCRYPT_LDFLAGS)
endif()
+27 -23
View File
@@ -1,7 +1,9 @@
#
# Copyright (C) 2003-2020 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2007 Julien Louis <ptitlouis@sysif.net>
# Copyright (C) 2009 Emmanuel Bouthenot <kolter@openics.org>
# SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
# SPDX-FileCopyrightText: 2007 Julien Louis <ptitlouis@sysif.net>
# SPDX-FileCopyrightText: 2009 Emmanuel Bouthenot <kolter@openics.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later
#
# This file is part of WeeChat, the extensible chat client.
#
@@ -45,26 +47,28 @@ set(CMAKE_REQUIRED_INCLUDES ${LIBINTL_INCLUDE})
check_include_files(libintl.h HAVE_LIBINTL_H)
if(HAVE_LIBINTL_H)
check_function_exists(dgettext LIBC_HAS_DGETTEXT)
if(LIBC_HAS_DGETTEXT)
set(GETTEXT_FOUND TRUE)
else()
find_library(LIBINTL_LIBRARY NAMES intl
PATHS
/usr/local/lib
/usr/lib
)
if(LIBINTL_LIBRARY)
if(${CMAKE_SYSTEM_NAME} STREQUAL "OpenBSD")
set(CMAKE_REQUIRED_LIBRARIES "iconv")
check_library_exists(${LIBINTL_LIBRARY} "libintl_dgettext" "" LIBINTL_HAS_DGETTEXT)
else()
check_library_exists(${LIBINTL_LIBRARY} "dgettext" "" LIBINTL_HAS_DGETTEXT)
endif()
if(LIBINTL_HAS_DGETTEXT)
set(GETTEXT_FOUND TRUE)
endif()
if(NOT HAVE_LIBINTL_H)
message(SEND_ERROR "Header libintl.h not found, required if ENABLE_NLS is enabled")
endif()
check_function_exists(dgettext LIBC_HAS_DGETTEXT)
if(LIBC_HAS_DGETTEXT)
set(GETTEXT_FOUND TRUE)
else()
find_library(LIBINTL_LIBRARY NAMES intl
PATHS
/usr/local/lib
/usr/lib
)
if(LIBINTL_LIBRARY)
if(${CMAKE_SYSTEM_NAME} STREQUAL "OpenBSD")
set(CMAKE_REQUIRED_LIBRARIES "iconv")
check_library_exists(${LIBINTL_LIBRARY} "libintl_dgettext" "" LIBINTL_HAS_DGETTEXT)
else()
check_library_exists(${LIBINTL_LIBRARY} "dgettext" "" LIBINTL_HAS_DGETTEXT)
endif()
if(LIBINTL_HAS_DGETTEXT)
set(GETTEXT_FOUND TRUE)
endif()
endif()
endif()
-75
View File
@@ -1,75 +0,0 @@
#
# Copyright (C) 2003-2020 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2009 Emmanuel Bouthenot <kolter@openics.org>
#
# This file is part of WeeChat, the extensible chat client.
#
# WeeChat is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# WeeChat is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with WeeChat. If not, see <https://www.gnu.org/licenses/>.
#
# - Find GnuTLS
# This module finds if libgnutls is installed and determines where
# the include files and libraries are.
#
# This code sets the following variables:
#
# GNUTLS_INCLUDE_PATH = path to where <gnutls/gnutls.h> can be found
# GNUTLS_LIBRARY = path to where libgnutls.so* can be found
# GNUTLS_CFLAGS = cflags to use to compile
# GNUTLS_LDFLAGS = ldflags to use to compile
if(GNUTLS_INCLUDE_PATH AND GNUTLS_LIBRARY)
# Already in cache, be silent
set(GNUTLS_FIND_QUIETLY TRUE)
endif()
find_program(PKG_CONFIG_EXECUTABLE NAMES pkg-config)
execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} --variable=prefix gnutls
OUTPUT_VARIABLE GNUTLS_PREFIX
)
execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} --cflags gnutls
OUTPUT_VARIABLE GNUTLS_CFLAGS
)
string(REGEX REPLACE "[\r\n]" "" GNUTLS_CFLAGS "${GNUTLS_CFLAGS}")
execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} --libs gnutls
OUTPUT_VARIABLE GNUTLS_LDFLAGS
)
string(REGEX REPLACE "[\r\n]" "" GNUTLS_LDFLAGS "${GNUTLS_LDFLAGS}")
set(GNUTLS_POSSIBLE_INCLUDE_PATH "${GNUTLS_PREFIX}/include")
set(GNUTLS_POSSIBLE_LIB_DIR "${GNUTLS_PREFIX}/lib")
find_path(GNUTLS_INCLUDE_PATH
NAMES gnutls/gnutls.h
PATHS GNUTLS_POSSIBLE_INCLUDE_PATH
)
find_library(GNUTLS_LIBRARY
NAMES gnutls
PATHS GNUTLS_POSSIBLE_LIB_DIR
)
if(NOT GNUTLS_INCLUDE_PATH OR NOT GNUTLS_LIBRARY)
message(FATAL_ERROR "GnuTLS was not found")
endif()
mark_as_advanced(
GNUTLS_INCLUDE_PATH
GNUTLS_LIBRARY
GNUTLS_CFLAGS
GNUTLS_LDFLAGS
)
+3 -1
View File
@@ -1,5 +1,7 @@
#
# Copyright (C) 2011-2020 Sébastien Helleu <flashcode@flashtux.org>
# SPDX-FileCopyrightText: 2011-2026 Sébastien Helleu <flashcode@flashtux.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later
#
# This file is part of WeeChat, the extensible chat client.
#
+3 -1
View File
@@ -1,5 +1,7 @@
#
# Copyright (C) 2003-2020 Sébastien Helleu <flashcode@flashtux.org>
# SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later
#
# This file is part of WeeChat, the extensible chat client.
#
+4 -2
View File
@@ -1,5 +1,7 @@
#
# Copyright (C) 2003-2020 Sébastien Helleu <flashcode@flashtux.org>
# SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later
#
# This file is part of WeeChat, the extensible chat client.
#
@@ -35,5 +37,5 @@ endif()
find_package(PkgConfig)
if(PKG_CONFIG_FOUND)
pkg_search_module(LUA lua5.3 lua-5.3 lua53 lua5.2 lua-5.2 lua52 lua5.1 lua-5.1 lua51 lua-5.0 lua5.0 lua50 lua)
pkg_search_module(LUA lua lua5.4 lua-5.4 lua54 lua5.3 lua-5.3 lua53)
endif()
+3 -1
View File
@@ -1,5 +1,7 @@
#
# Copyright (C) 2003-2020 Sébastien Helleu <flashcode@flashtux.org>
# SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later
#
# This file is part of WeeChat, the extensible chat client.
#
+17 -8
View File
@@ -1,6 +1,8 @@
#
# Copyright (C) 2017 Adam Saponara <as@php.net>
# Copyright (C) 2017-2020 Sébastien Helleu <flashcode@flashtux.org>
# SPDX-FileCopyrightText: 2017 Adam Saponara <as@php.net>
# SPDX-FileCopyrightText: 2017-2026 Sébastien Helleu <flashcode@flashtux.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later
#
# This file is part of WeeChat, the extensible chat client.
#
@@ -24,26 +26,33 @@ endif()
find_package(PkgConfig)
if(PKG_CONFIG_FOUND)
pkg_search_module(PHP php7)
pkg_search_module(PHP php8 php7)
endif()
if(NOT PHP_FOUND)
find_program(PHP_CONFIG_EXECUTABLE NAMES
php-config8.4 php-config84
php-config8.3 php-config83
php-config8.2 php-config82
php-config8.1 php-config81
php-config8.0 php-config80
php-config8
php-config7.4 php-config74
php-config7.3 php-config73
php-config7.2 php-config72
php-config7.1 php-config71
php-config7.0 php-config70
php-config php-config7
php-config7
php-config
)
if (PHP_CONFIG_EXECUTABLE)
execute_process(COMMAND ${PHP_CONFIG_EXECUTABLE} --prefix OUTPUT_VARIABLE PHP_LIB_PREFIX OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND ${PHP_CONFIG_EXECUTABLE} --includes OUTPUT_VARIABLE PHP_INCLUDE_DIRS OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND ${PHP_CONFIG_EXECUTABLE} --libs OUTPUT_VARIABLE PHP_LIBS OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND ${PHP_CONFIG_EXECUTABLE} --version OUTPUT_VARIABLE PHP_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
if(${PHP_VERSION} MATCHES "^7")
if(${PHP_VERSION} MATCHES "^[78]")
find_library(PHP_LIB
NAMES php7.4 php7.3 php7.2 php7.1 php7.0 php7
NAMES php8.4 php84 php8.3 php83 php8.2 php82 php8.1 php81 php8.0 php80 php8 php7.4 php74 php7.3 php73 php7.2 php72 php7.1 php71 php7.0 php70 php7 php
HINTS ${PHP_LIB_PREFIX} ${PHP_LIB_PREFIX}/lib ${PHP_LIB_PREFIX}/lib64
)
if(PHP_LIB)
@@ -58,9 +67,9 @@ if(NOT PHP_FOUND)
endif()
if(NOT PHP_FOUND)
message(WARNING "Could not find libphp7. "
message(WARNING "Could not find libphp. "
"Ensure PHP >=7.0.0 development libraries are installed and compiled with `--enable-embed`. "
"Ensure `php-config` is in `PATH`. "
"You may set `-DCMAKE_LIBRARY_PATH=...` to the directory containing libphp7."
"You may set `-DCMAKE_LIBRARY_PATH=...` to the directory containing libphp."
)
endif()
+3 -1
View File
@@ -1,5 +1,7 @@
#
# Copyright (C) 2003-2020 Sébastien Helleu <flashcode@flashtux.org>
# SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later
#
# This file is part of WeeChat, the extensible chat client.
#
-772
View File
@@ -1,772 +0,0 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#[========================================[.rst:
FindPkgConfig
-------------
A ``pkg-config`` module for CMake.
Finds the ``pkg-config`` executable and adds the :command:`pkg_get_variable`,
:command:`pkg_check_modules` and :command:`pkg_search_module` commands. The
following variables will also be set:
``PKG_CONFIG_FOUND``
if pkg-config executable was found
``PKG_CONFIG_EXECUTABLE``
pathname of the pkg-config program
``PKG_CONFIG_VERSION_STRING``
version of pkg-config (since CMake 2.8.8)
#]========================================]
### Common stuff ####
set(PKG_CONFIG_VERSION 1)
# find pkg-config, use PKG_CONFIG if set
if((NOT PKG_CONFIG_EXECUTABLE) AND (NOT "$ENV{PKG_CONFIG}" STREQUAL ""))
set(PKG_CONFIG_EXECUTABLE "$ENV{PKG_CONFIG}" CACHE FILEPATH "pkg-config executable")
endif()
find_program(PKG_CONFIG_EXECUTABLE NAMES pkg-config DOC "pkg-config executable")
mark_as_advanced(PKG_CONFIG_EXECUTABLE)
if (PKG_CONFIG_EXECUTABLE)
execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} --version
OUTPUT_VARIABLE PKG_CONFIG_VERSION_STRING
ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE)
endif ()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(PkgConfig
REQUIRED_VARS PKG_CONFIG_EXECUTABLE
VERSION_VAR PKG_CONFIG_VERSION_STRING)
# This is needed because the module name is "PkgConfig" but the name of
# this variable has always been PKG_CONFIG_FOUND so this isn't automatically
# handled by FPHSA.
set(PKG_CONFIG_FOUND "${PKGCONFIG_FOUND}")
# Unsets the given variables
macro(_pkgconfig_unset var)
set(${var} "" CACHE INTERNAL "")
endmacro()
macro(_pkgconfig_set var value)
set(${var} ${value} CACHE INTERNAL "")
endmacro()
# Invokes pkgconfig, cleans up the result and sets variables
macro(_pkgconfig_invoke _pkglist _prefix _varname _regexp)
set(_pkgconfig_invoke_result)
execute_process(
COMMAND ${PKG_CONFIG_EXECUTABLE} ${ARGN} ${_pkglist}
OUTPUT_VARIABLE _pkgconfig_invoke_result
RESULT_VARIABLE _pkgconfig_failed
OUTPUT_STRIP_TRAILING_WHITESPACE)
if (_pkgconfig_failed)
set(_pkgconfig_${_varname} "")
_pkgconfig_unset(${_prefix}_${_varname})
else()
string(REGEX REPLACE "[\r\n]" " " _pkgconfig_invoke_result "${_pkgconfig_invoke_result}")
if (NOT ${_regexp} STREQUAL "")
string(REGEX REPLACE "${_regexp}" " " _pkgconfig_invoke_result "${_pkgconfig_invoke_result}")
endif()
separate_arguments(_pkgconfig_invoke_result)
#message(STATUS " ${_varname} ... ${_pkgconfig_invoke_result}")
set(_pkgconfig_${_varname} ${_pkgconfig_invoke_result})
_pkgconfig_set(${_prefix}_${_varname} "${_pkgconfig_invoke_result}")
endif()
endmacro()
# Internal version of pkg_get_variable; expects PKG_CONFIG_PATH to already be set
function (_pkg_get_variable result pkg variable)
_pkgconfig_invoke("${pkg}" "prefix" "result" "" "--variable=${variable}")
set("${result}"
"${prefix_result}"
PARENT_SCOPE)
endfunction ()
# Invokes pkgconfig two times; once without '--static' and once with
# '--static'
macro(_pkgconfig_invoke_dyn _pkglist _prefix _varname cleanup_regexp)
_pkgconfig_invoke("${_pkglist}" ${_prefix} ${_varname} "${cleanup_regexp}" ${ARGN})
_pkgconfig_invoke("${_pkglist}" ${_prefix} STATIC_${_varname} "${cleanup_regexp}" --static ${ARGN})
endmacro()
# Splits given arguments into options and a package list
macro(_pkgconfig_parse_options _result _is_req _is_silent _no_cmake_path _no_cmake_environment_path _imp_target _imp_target_global)
set(${_is_req} 0)
set(${_is_silent} 0)
set(${_no_cmake_path} 0)
set(${_no_cmake_environment_path} 0)
set(${_imp_target} 0)
set(${_imp_target_global} 0)
if(DEFINED PKG_CONFIG_USE_CMAKE_PREFIX_PATH)
if(NOT PKG_CONFIG_USE_CMAKE_PREFIX_PATH)
set(${_no_cmake_path} 1)
set(${_no_cmake_environment_path} 1)
endif()
elseif(CMAKE_MINIMUM_REQUIRED_VERSION VERSION_LESS 3.1)
set(${_no_cmake_path} 1)
set(${_no_cmake_environment_path} 1)
endif()
foreach(_pkg ${ARGN})
if (_pkg STREQUAL "REQUIRED")
set(${_is_req} 1)
endif ()
if (_pkg STREQUAL "QUIET")
set(${_is_silent} 1)
endif ()
if (_pkg STREQUAL "NO_CMAKE_PATH")
set(${_no_cmake_path} 1)
endif()
if (_pkg STREQUAL "NO_CMAKE_ENVIRONMENT_PATH")
set(${_no_cmake_environment_path} 1)
endif()
if (_pkg STREQUAL "IMPORTED_TARGET")
set(${_imp_target} 1)
endif()
if (_pkg STREQUAL "GLOBAL")
set(${_imp_target_global} 1)
endif()
endforeach()
if (${_imp_target_global} AND NOT ${_imp_target})
message(SEND_ERROR "the argument GLOBAL may only be used together with IMPORTED_TARGET")
endif()
set(${_result} ${ARGN})
list(REMOVE_ITEM ${_result} "REQUIRED")
list(REMOVE_ITEM ${_result} "QUIET")
list(REMOVE_ITEM ${_result} "NO_CMAKE_PATH")
list(REMOVE_ITEM ${_result} "NO_CMAKE_ENVIRONMENT_PATH")
list(REMOVE_ITEM ${_result} "IMPORTED_TARGET")
list(REMOVE_ITEM ${_result} "GLOBAL")
endmacro()
# Add the content of a variable or an environment variable to a list of
# paths
# Usage:
# - _pkgconfig_add_extra_path(_extra_paths VAR)
# - _pkgconfig_add_extra_path(_extra_paths ENV VAR)
function(_pkgconfig_add_extra_path _extra_paths_var _var)
set(_is_env 0)
if(ARGC GREATER 2 AND _var STREQUAL "ENV")
set(_var ${ARGV2})
set(_is_env 1)
endif()
if(NOT _is_env)
if(NOT "${${_var}}" STREQUAL "")
list(APPEND ${_extra_paths_var} ${${_var}})
endif()
else()
if(NOT "$ENV{${_var}}" STREQUAL "")
file(TO_CMAKE_PATH "$ENV{${_var}}" _path)
list(APPEND ${_extra_paths_var} ${_path})
unset(_path)
endif()
endif()
set(${_extra_paths_var} ${${_extra_paths_var}} PARENT_SCOPE)
endfunction()
# scan the LDFLAGS returned by pkg-config for library directories and
# libraries, figure out the absolute paths of that libraries in the
# given directories
function(_pkg_find_libs _prefix _no_cmake_path _no_cmake_environment_path)
unset(_libs)
unset(_find_opts)
# set the options that are used as long as the .pc file does not provide a library
# path to look into
if(_no_cmake_path)
list(APPEND _find_opts "NO_CMAKE_PATH")
endif()
if(_no_cmake_environment_path)
list(APPEND _find_opts "NO_CMAKE_ENVIRONMENT_PATH")
endif()
unset(_search_paths)
foreach (flag IN LISTS ${_prefix}_LDFLAGS)
if (flag MATCHES "^-L(.*)")
list(APPEND _search_paths ${CMAKE_MATCH_1})
continue()
endif()
if (flag MATCHES "^-l(.*)")
set(_pkg_search "${CMAKE_MATCH_1}")
else()
continue()
endif()
if(_search_paths)
# Firstly search in -L paths
find_library(pkgcfg_lib_${_prefix}_${_pkg_search}
NAMES ${_pkg_search}
HINTS ${_search_paths} NO_DEFAULT_PATH)
endif()
find_library(pkgcfg_lib_${_prefix}_${_pkg_search}
NAMES ${_pkg_search}
${_find_opts})
mark_as_advanced(pkgcfg_lib_${_prefix}_${_pkg_search})
if(pkgcfg_lib_${_prefix}_${_pkg_search})
list(APPEND _libs "${pkgcfg_lib_${_prefix}_${_pkg_search}}")
else()
list(APPEND _libs ${_pkg_search})
endif()
endforeach()
set(${_prefix}_LINK_LIBRARIES "${_libs}" PARENT_SCOPE)
endfunction()
# create an imported target from all the information returned by pkg-config
function(_pkg_create_imp_target _prefix _imp_target_global)
# only create the target if it is linkable, i.e. no executables
if (NOT TARGET PkgConfig::${_prefix}
AND ( ${_prefix}_INCLUDE_DIRS OR ${_prefix}_LINK_LIBRARIES OR ${_prefix}_LDFLAGS_OTHER OR ${_prefix}_CFLAGS_OTHER ))
if(${_imp_target_global})
set(_global_opt "GLOBAL")
else()
unset(_global_opt)
endif()
add_library(PkgConfig::${_prefix} INTERFACE IMPORTED ${_global_opt})
if(${_prefix}_INCLUDE_DIRS)
set_property(TARGET PkgConfig::${_prefix} PROPERTY
INTERFACE_INCLUDE_DIRECTORIES "${${_prefix}_INCLUDE_DIRS}")
endif()
if(${_prefix}_LINK_LIBRARIES)
set_property(TARGET PkgConfig::${_prefix} PROPERTY
INTERFACE_LINK_LIBRARIES "${${_prefix}_LINK_LIBRARIES}")
endif()
if(${_prefix}_LDFLAGS_OTHER)
set_property(TARGET PkgConfig::${_prefix} PROPERTY
INTERFACE_LINK_OPTIONS "${${_prefix}_LDFLAGS_OTHER}")
endif()
if(${_prefix}_CFLAGS_OTHER)
set_property(TARGET PkgConfig::${_prefix} PROPERTY
INTERFACE_COMPILE_OPTIONS "${${_prefix}_CFLAGS_OTHER}")
endif()
endif()
endfunction()
# recalculate the dynamic output
# this is a macro and not a function so the result of _pkg_find_libs is automatically propagated
macro(_pkg_recalculate _prefix _no_cmake_path _no_cmake_environment_path _imp_target _imp_target_global)
_pkg_find_libs(${_prefix} ${_no_cmake_path} ${_no_cmake_environment_path})
if(${_imp_target})
_pkg_create_imp_target(${_prefix} ${_imp_target_global})
endif()
endmacro()
###
macro(_pkg_set_path_internal)
set(_extra_paths)
if(NOT _no_cmake_path)
_pkgconfig_add_extra_path(_extra_paths CMAKE_PREFIX_PATH)
_pkgconfig_add_extra_path(_extra_paths CMAKE_FRAMEWORK_PATH)
_pkgconfig_add_extra_path(_extra_paths CMAKE_APPBUNDLE_PATH)
endif()
if(NOT _no_cmake_environment_path)
_pkgconfig_add_extra_path(_extra_paths ENV CMAKE_PREFIX_PATH)
_pkgconfig_add_extra_path(_extra_paths ENV CMAKE_FRAMEWORK_PATH)
_pkgconfig_add_extra_path(_extra_paths ENV CMAKE_APPBUNDLE_PATH)
endif()
if(NOT _extra_paths STREQUAL "")
# Save the PKG_CONFIG_PATH environment variable, and add paths
# from the CMAKE_PREFIX_PATH variables
set(_pkgconfig_path_old "$ENV{PKG_CONFIG_PATH}")
set(_pkgconfig_path "${_pkgconfig_path_old}")
if(NOT _pkgconfig_path STREQUAL "")
file(TO_CMAKE_PATH "${_pkgconfig_path}" _pkgconfig_path)
endif()
# Create a list of the possible pkgconfig subfolder (depending on
# the system
set(_lib_dirs)
if(NOT DEFINED CMAKE_SYSTEM_NAME
OR (CMAKE_SYSTEM_NAME MATCHES "^(Linux|kFreeBSD|GNU)$"
AND NOT CMAKE_CROSSCOMPILING))
if(EXISTS "/etc/debian_version") # is this a debian system ?
if(CMAKE_LIBRARY_ARCHITECTURE)
list(APPEND _lib_dirs "lib/${CMAKE_LIBRARY_ARCHITECTURE}/pkgconfig")
endif()
else()
# not debian, check the FIND_LIBRARY_USE_LIB32_PATHS and FIND_LIBRARY_USE_LIB64_PATHS properties
get_property(uselib32 GLOBAL PROPERTY FIND_LIBRARY_USE_LIB32_PATHS)
if(uselib32 AND CMAKE_SIZEOF_VOID_P EQUAL 4)
list(APPEND _lib_dirs "lib32/pkgconfig")
endif()
get_property(uselib64 GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS)
if(uselib64 AND CMAKE_SIZEOF_VOID_P EQUAL 8)
list(APPEND _lib_dirs "lib64/pkgconfig")
endif()
get_property(uselibx32 GLOBAL PROPERTY FIND_LIBRARY_USE_LIBX32_PATHS)
if(uselibx32 AND CMAKE_INTERNAL_PLATFORM_ABI STREQUAL "ELF X32")
list(APPEND _lib_dirs "libx32/pkgconfig")
endif()
endif()
endif()
if(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" AND NOT CMAKE_CROSSCOMPILING)
list(APPEND _lib_dirs "libdata/pkgconfig")
endif()
list(APPEND _lib_dirs "lib/pkgconfig")
list(APPEND _lib_dirs "share/pkgconfig")
# Check if directories exist and eventually append them to the
# pkgconfig path list
foreach(_prefix_dir ${_extra_paths})
foreach(_lib_dir ${_lib_dirs})
if(EXISTS "${_prefix_dir}/${_lib_dir}")
list(APPEND _pkgconfig_path "${_prefix_dir}/${_lib_dir}")
list(REMOVE_DUPLICATES _pkgconfig_path)
endif()
endforeach()
endforeach()
# Prepare and set the environment variable
if(NOT _pkgconfig_path STREQUAL "")
# remove empty values from the list
list(REMOVE_ITEM _pkgconfig_path "")
file(TO_NATIVE_PATH "${_pkgconfig_path}" _pkgconfig_path)
if(UNIX)
string(REPLACE ";" ":" _pkgconfig_path "${_pkgconfig_path}")
string(REPLACE "\\ " " " _pkgconfig_path "${_pkgconfig_path}")
endif()
set(ENV{PKG_CONFIG_PATH} "${_pkgconfig_path}")
endif()
# Unset variables
unset(_lib_dirs)
unset(_pkgconfig_path)
endif()
endmacro()
macro(_pkg_restore_path_internal)
if(NOT _extra_paths STREQUAL "")
# Restore the environment variable
set(ENV{PKG_CONFIG_PATH} "${_pkgconfig_path_old}")
endif()
unset(_extra_paths)
unset(_pkgconfig_path_old)
endmacro()
###
macro(_pkg_check_modules_internal _is_required _is_silent _no_cmake_path _no_cmake_environment_path _imp_target _imp_target_global _prefix)
_pkgconfig_unset(${_prefix}_FOUND)
_pkgconfig_unset(${_prefix}_VERSION)
_pkgconfig_unset(${_prefix}_PREFIX)
_pkgconfig_unset(${_prefix}_INCLUDEDIR)
_pkgconfig_unset(${_prefix}_LIBDIR)
_pkgconfig_unset(${_prefix}_MODULE_NAME)
_pkgconfig_unset(${_prefix}_LIBS)
_pkgconfig_unset(${_prefix}_LIBS_L)
_pkgconfig_unset(${_prefix}_LIBS_PATHS)
_pkgconfig_unset(${_prefix}_LIBS_OTHER)
_pkgconfig_unset(${_prefix}_CFLAGS)
_pkgconfig_unset(${_prefix}_CFLAGS_I)
_pkgconfig_unset(${_prefix}_CFLAGS_OTHER)
_pkgconfig_unset(${_prefix}_STATIC_LIBDIR)
_pkgconfig_unset(${_prefix}_STATIC_LIBS)
_pkgconfig_unset(${_prefix}_STATIC_LIBS_L)
_pkgconfig_unset(${_prefix}_STATIC_LIBS_PATHS)
_pkgconfig_unset(${_prefix}_STATIC_LIBS_OTHER)
_pkgconfig_unset(${_prefix}_STATIC_CFLAGS)
_pkgconfig_unset(${_prefix}_STATIC_CFLAGS_I)
_pkgconfig_unset(${_prefix}_STATIC_CFLAGS_OTHER)
# create a better addressable variable of the modules and calculate its size
set(_pkg_check_modules_list ${ARGN})
list(LENGTH _pkg_check_modules_list _pkg_check_modules_cnt)
if(PKG_CONFIG_EXECUTABLE)
# give out status message telling checked module
if (NOT ${_is_silent})
if (_pkg_check_modules_cnt EQUAL 1)
message(STATUS "Checking for module '${_pkg_check_modules_list}'")
else()
message(STATUS "Checking for modules '${_pkg_check_modules_list}'")
endif()
endif()
set(_pkg_check_modules_packages)
set(_pkg_check_modules_failed)
_pkg_set_path_internal()
# iterate through module list and check whether they exist and match the required version
foreach (_pkg_check_modules_pkg ${_pkg_check_modules_list})
set(_pkg_check_modules_exist_query)
# check whether version is given
if (_pkg_check_modules_pkg MATCHES "(.*[^><])(=|[><]=?)(.*)")
set(_pkg_check_modules_pkg_name "${CMAKE_MATCH_1}")
set(_pkg_check_modules_pkg_op "${CMAKE_MATCH_2}")
set(_pkg_check_modules_pkg_ver "${CMAKE_MATCH_3}")
else()
set(_pkg_check_modules_pkg_name "${_pkg_check_modules_pkg}")
set(_pkg_check_modules_pkg_op)
set(_pkg_check_modules_pkg_ver)
endif()
_pkgconfig_unset(${_prefix}_${_pkg_check_modules_pkg_name}_VERSION)
_pkgconfig_unset(${_prefix}_${_pkg_check_modules_pkg_name}_PREFIX)
_pkgconfig_unset(${_prefix}_${_pkg_check_modules_pkg_name}_INCLUDEDIR)
_pkgconfig_unset(${_prefix}_${_pkg_check_modules_pkg_name}_LIBDIR)
list(APPEND _pkg_check_modules_packages "${_pkg_check_modules_pkg_name}")
# create the final query which is of the format:
# * <pkg-name> > <version>
# * <pkg-name> >= <version>
# * <pkg-name> = <version>
# * <pkg-name> <= <version>
# * <pkg-name> < <version>
# * --exists <pkg-name>
list(APPEND _pkg_check_modules_exist_query --print-errors --short-errors)
if (_pkg_check_modules_pkg_op)
list(APPEND _pkg_check_modules_exist_query "${_pkg_check_modules_pkg_name} ${_pkg_check_modules_pkg_op} ${_pkg_check_modules_pkg_ver}")
else()
list(APPEND _pkg_check_modules_exist_query --exists)
list(APPEND _pkg_check_modules_exist_query "${_pkg_check_modules_pkg_name}")
endif()
# execute the query
execute_process(
COMMAND ${PKG_CONFIG_EXECUTABLE} ${_pkg_check_modules_exist_query}
RESULT_VARIABLE _pkgconfig_retval
ERROR_VARIABLE _pkgconfig_error
ERROR_STRIP_TRAILING_WHITESPACE)
# evaluate result and tell failures
if (_pkgconfig_retval)
if(NOT ${_is_silent})
message(STATUS " ${_pkgconfig_error}")
endif()
set(_pkg_check_modules_failed 1)
endif()
endforeach()
if(_pkg_check_modules_failed)
# fail when requested
if (${_is_required})
message(FATAL_ERROR "A required package was not found")
endif ()
else()
# when we are here, we checked whether requested modules
# exist. Now, go through them and set variables
_pkgconfig_set(${_prefix}_FOUND 1)
list(LENGTH _pkg_check_modules_packages pkg_count)
# iterate through all modules again and set individual variables
foreach (_pkg_check_modules_pkg ${_pkg_check_modules_packages})
# handle case when there is only one package required
if (pkg_count EQUAL 1)
set(_pkg_check_prefix "${_prefix}")
else()
set(_pkg_check_prefix "${_prefix}_${_pkg_check_modules_pkg}")
endif()
_pkgconfig_invoke(${_pkg_check_modules_pkg} "${_pkg_check_prefix}" VERSION "" --modversion )
pkg_get_variable("${_pkg_check_prefix}_PREFIX" ${_pkg_check_modules_pkg} "prefix")
pkg_get_variable("${_pkg_check_prefix}_INCLUDEDIR" ${_pkg_check_modules_pkg} "includedir")
pkg_get_variable("${_pkg_check_prefix}_LIBDIR" ${_pkg_check_modules_pkg} "libdir")
foreach (variable IN ITEMS PREFIX INCLUDEDIR LIBDIR)
_pkgconfig_set("${_pkg_check_prefix}_${variable}" "${${_pkg_check_prefix}_${variable}}")
endforeach ()
_pkgconfig_set("${_pkg_check_prefix}_MODULE_NAME" "${_pkg_check_modules_pkg}")
if (NOT ${_is_silent})
message(STATUS " Found ${_pkg_check_modules_pkg}, version ${_pkgconfig_VERSION}")
endif ()
endforeach()
# set variables which are combined for multiple modules
_pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LIBRARIES "(^| )-l" --libs-only-l )
_pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LIBRARY_DIRS "(^| )-L" --libs-only-L )
_pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LDFLAGS "" --libs )
_pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LDFLAGS_OTHER "" --libs-only-other )
_pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" INCLUDE_DIRS "(^| )-I" --cflags-only-I )
_pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" CFLAGS "" --cflags )
_pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" CFLAGS_OTHER "" --cflags-only-other )
_pkg_recalculate("${_prefix}" ${_no_cmake_path} ${_no_cmake_environment_path} ${_imp_target} ${_imp_target_global})
endif()
_pkg_restore_path_internal()
else()
if (${_is_required})
message(SEND_ERROR "pkg-config tool not found")
endif ()
endif()
endmacro()
#[========================================[.rst:
.. command:: pkg_check_modules
Checks for all the given modules, setting a variety of result variables in
the calling scope.
.. code-block:: cmake
pkg_check_modules(<prefix>
[REQUIRED] [QUIET]
[NO_CMAKE_PATH]
[NO_CMAKE_ENVIRONMENT_PATH]
[IMPORTED_TARGET [GLOBAL]]
<moduleSpec> [<moduleSpec>...])
When the ``REQUIRED`` argument is given, the command will fail with an error
if module(s) could not be found.
When the ``QUIET`` argument is given, no status messages will be printed.
By default, if :variable:`CMAKE_MINIMUM_REQUIRED_VERSION` is 3.1 or
later, or if :variable:`PKG_CONFIG_USE_CMAKE_PREFIX_PATH` is set to a
boolean ``True`` value, then the :variable:`CMAKE_PREFIX_PATH`,
:variable:`CMAKE_FRAMEWORK_PATH`, and :variable:`CMAKE_APPBUNDLE_PATH` cache
and environment variables will be added to the ``pkg-config`` search path.
The ``NO_CMAKE_PATH`` and ``NO_CMAKE_ENVIRONMENT_PATH`` arguments
disable this behavior for the cache variables and environment variables
respectively.
The ``IMPORTED_TARGET`` argument will create an imported target named
``PkgConfig::<prefix>`` that can be passed directly as an argument to
:command:`target_link_libraries`. The ``GLOBAL`` argument will make the
imported target available in global scope.
Each ``<moduleSpec>`` can be either a bare module name or it can be a
module name with a version constraint (operators ``=``, ``<``, ``>``,
``<=`` and ``>=`` are supported). The following are examples for a module
named ``foo`` with various constraints:
- ``foo`` matches any version.
- ``foo<2`` only matches versions before 2.
- ``foo>=3.1`` matches any version from 3.1 or later.
- ``foo=1.2.3`` requires that foo must be exactly version 1.2.3.
The following variables may be set upon return. Two sets of values exist:
One for the common case (``<XXX> = <prefix>``) and another for the
information ``pkg-config`` provides when called with the ``--static``
option (``<XXX> = <prefix>_STATIC``).
``<XXX>_FOUND``
set to 1 if module(s) exist
``<XXX>_LIBRARIES``
only the libraries (without the '-l')
``<XXX>_LINK_LIBRARIES``
the libraries and their absolute paths
``<XXX>_LIBRARY_DIRS``
the paths of the libraries (without the '-L')
``<XXX>_LDFLAGS``
all required linker flags
``<XXX>_LDFLAGS_OTHER``
all other linker flags
``<XXX>_INCLUDE_DIRS``
the '-I' preprocessor flags (without the '-I')
``<XXX>_CFLAGS``
all required cflags
``<XXX>_CFLAGS_OTHER``
the other compiler flags
All but ``<XXX>_FOUND`` may be a :ref:`;-list <CMake Language Lists>` if the
associated variable returned from ``pkg-config`` has multiple values.
There are some special variables whose prefix depends on the number of
``<moduleSpec>`` given. When there is only one ``<moduleSpec>``,
``<YYY>`` will simply be ``<prefix>``, but if two or more ``<moduleSpec>``
items are given, ``<YYY>`` will be ``<prefix>_<moduleName>``.
``<YYY>_VERSION``
version of the module
``<YYY>_PREFIX``
prefix directory of the module
``<YYY>_INCLUDEDIR``
include directory of the module
``<YYY>_LIBDIR``
lib directory of the module
Examples:
.. code-block:: cmake
pkg_check_modules (GLIB2 glib-2.0)
Looks for any version of glib2. If found, the output variable
``GLIB2_VERSION`` will hold the actual version found.
.. code-block:: cmake
pkg_check_modules (GLIB2 glib-2.0>=2.10)
Looks for at least version 2.10 of glib2. If found, the output variable
``GLIB2_VERSION`` will hold the actual version found.
.. code-block:: cmake
pkg_check_modules (FOO glib-2.0>=2.10 gtk+-2.0)
Looks for both glib2-2.0 (at least version 2.10) and any version of
gtk2+-2.0. Only if both are found will ``FOO`` be considered found.
The ``FOO_glib-2.0_VERSION`` and ``FOO_gtk+-2.0_VERSION`` variables will be
set to their respective found module versions.
.. code-block:: cmake
pkg_check_modules (XRENDER REQUIRED xrender)
Requires any version of ``xrender``. Example output variables set by a
successful call::
XRENDER_LIBRARIES=Xrender;X11
XRENDER_STATIC_LIBRARIES=Xrender;X11;pthread;Xau;Xdmcp
#]========================================]
macro(pkg_check_modules _prefix _module0)
_pkgconfig_parse_options(_pkg_modules _pkg_is_required _pkg_is_silent _no_cmake_path _no_cmake_environment_path _imp_target _imp_target_global "${_module0}" ${ARGN})
# check cached value
if (NOT DEFINED __pkg_config_checked_${_prefix} OR __pkg_config_checked_${_prefix} LESS ${PKG_CONFIG_VERSION} OR NOT ${_prefix}_FOUND OR
(NOT "${ARGN}" STREQUAL "" AND NOT "${__pkg_config_arguments_${_prefix}}" STREQUAL "${_module0};${ARGN}") OR
( "${ARGN}" STREQUAL "" AND NOT "${__pkg_config_arguments_${_prefix}}" STREQUAL "${_module0}"))
_pkg_check_modules_internal("${_pkg_is_required}" "${_pkg_is_silent}" ${_no_cmake_path} ${_no_cmake_environment_path} ${_imp_target} ${_imp_target_global} "${_prefix}" ${_pkg_modules})
_pkgconfig_set(__pkg_config_checked_${_prefix} ${PKG_CONFIG_VERSION})
if (${_prefix}_FOUND)
_pkgconfig_set(__pkg_config_arguments_${_prefix} "${_module0};${ARGN}")
endif()
else()
if (${_prefix}_FOUND)
_pkg_recalculate("${_prefix}" ${_no_cmake_path} ${_no_cmake_environment_path} ${_imp_target} ${_imp_target_global})
endif()
endif()
endmacro()
#[========================================[.rst:
.. command:: pkg_search_module
The behavior of this command is the same as :command:`pkg_check_modules`,
except that rather than checking for all the specified modules, it searches
for just the first successful match.
.. code-block:: cmake
pkg_search_module(<prefix>
[REQUIRED] [QUIET]
[NO_CMAKE_PATH]
[NO_CMAKE_ENVIRONMENT_PATH]
[IMPORTED_TARGET [GLOBAL]]
<moduleSpec> [<moduleSpec>...])
If a module is found, the ``<prefix>_MODULE_NAME`` variable will contain the
name of the matching module. This variable can be used if you need to run
:command:`pkg_get_variable`.
Example:
.. code-block:: cmake
pkg_search_module (BAR libxml-2.0 libxml2 libxml>=2)
#]========================================]
macro(pkg_search_module _prefix _module0)
_pkgconfig_parse_options(_pkg_modules_alt _pkg_is_required _pkg_is_silent _no_cmake_path _no_cmake_environment_path _imp_target _imp_target_global "${_module0}" ${ARGN})
# check cached value
if (NOT DEFINED __pkg_config_checked_${_prefix} OR __pkg_config_checked_${_prefix} LESS ${PKG_CONFIG_VERSION} OR NOT ${_prefix}_FOUND)
set(_pkg_modules_found 0)
if (NOT ${_pkg_is_silent})
message(STATUS "Checking for one of the modules '${_pkg_modules_alt}'")
endif ()
# iterate through all modules and stop at the first working one.
foreach(_pkg_alt ${_pkg_modules_alt})
if(NOT _pkg_modules_found)
_pkg_check_modules_internal(0 1 ${_no_cmake_path} ${_no_cmake_environment_path} ${_imp_target} ${_imp_target_global} "${_prefix}" "${_pkg_alt}")
endif()
if (${_prefix}_FOUND)
set(_pkg_modules_found 1)
break()
endif()
endforeach()
if (NOT ${_prefix}_FOUND)
if(${_pkg_is_required})
message(SEND_ERROR "None of the required '${_pkg_modules_alt}' found")
endif()
endif()
_pkgconfig_set(__pkg_config_checked_${_prefix} ${PKG_CONFIG_VERSION})
elseif (${_prefix}_FOUND)
_pkg_recalculate("${_prefix}" ${_no_cmake_path} ${_no_cmake_environment_path} ${_imp_target} ${_imp_target_global})
endif()
endmacro()
#[========================================[.rst:
.. command:: pkg_get_variable
Retrieves the value of a pkg-config variable ``varName`` and stores it in the
result variable ``resultVar`` in the calling scope.
.. code-block:: cmake
pkg_get_variable(<resultVar> <moduleName> <varName>)
If ``pkg-config`` returns multiple values for the specified variable,
``resultVar`` will contain a :ref:`;-list <CMake Language Lists>`.
For example:
.. code-block:: cmake
pkg_get_variable(GI_GIRDIR gobject-introspection-1.0 girdir)
#]========================================]
function (pkg_get_variable result pkg variable)
_pkg_set_path_internal()
_pkgconfig_invoke("${pkg}" "prefix" "result" "" "--variable=${variable}")
set("${result}"
"${prefix_result}"
PARENT_SCOPE)
_pkg_restore_path_internal()
endfunction ()
#[========================================[.rst:
Variables Affecting Behavior
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. variable:: PKG_CONFIG_EXECUTABLE
This can be set to the path of the pkg-config executable. If not provided,
it will be set by the module as a result of calling :command:`find_program`
internally. The ``PKG_CONFIG`` environment variable can be used as a hint.
.. variable:: PKG_CONFIG_USE_CMAKE_PREFIX_PATH
Specifies whether :command:`pkg_check_modules` and
:command:`pkg_search_module` should add the paths in the
:variable:`CMAKE_PREFIX_PATH`, :variable:`CMAKE_FRAMEWORK_PATH` and
:variable:`CMAKE_APPBUNDLE_PATH` cache and environment variables to the
``pkg-config`` search path.
If this variable is not set, this behavior is enabled by default if
:variable:`CMAKE_MINIMUM_REQUIRED_VERSION` is 3.1 or later, disabled
otherwise.
#]========================================]
### Local Variables:
### mode: cmake
### End:
-40
View File
@@ -1,40 +0,0 @@
#
# Copyright (C) 2003-2020 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2009 Julien Louis <ptitlouis@sysif.net>
#
# This file is part of WeeChat, the extensible chat client.
#
# WeeChat is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# WeeChat is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with WeeChat. If not, see <https://www.gnu.org/licenses/>.
#
# - Find Python
# This module finds if Python is installed and determines where the include files
# and libraries are. It also determines what the name of the library is. This
# code sets the following variables:
#
# PYTHON_EXECUTABLE = full path to the python binary
# PYTHON_INCLUDE_DIRS = path to where python.h can be found
# PYTHON_LIBRARIES = path to where libpython.so* can be found
# PYTHON_LDFLAGS = python compiler options for linking
include(FindPkgConfig)
if(ENABLE_PYTHON2)
pkg_check_modules(PYTHON python2 IMPORTED_TARGET GLOBAL)
else()
pkg_check_modules(PYTHON python3-embed IMPORTED_TARGET GLOBAL)
if(NOT PYTHON_FOUND)
pkg_check_modules(PYTHON python3 IMPORTED_TARGET GLOBAL)
endif()
endif()
-83
View File
@@ -1,83 +0,0 @@
#
# Copyright (C) 2003-2020 Sébastien Helleu <flashcode@flashtux.org>
#
# This file is part of WeeChat, the extensible chat client.
#
# WeeChat is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# WeeChat is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with WeeChat. If not, see <https://www.gnu.org/licenses/>.
#
# - Find Ruby
# This module finds if Ruby is installed and determines where the include files
# and libraries are. It also determines what the name of the library is. This
# code sets the following variables:
#
# RUBY_INCLUDE_DIRS = C flags to compile with ruby
# RUBY_LIBRARY_DIRS = linker flags to compile with ruby (found with pkg-config)
# RUBY_LIB = ruby library (found without pkg-config)
if(RUBY_FOUND)
# Already in cache, be silent
set(RUBY_FIND_QUIETLY TRUE)
endif()
find_package(PkgConfig)
if(PKG_CONFIG_FOUND)
pkg_search_module(RUBY ruby-2.7 ruby-2.6 ruby-2.5 ruby-2.4 ruby-2.3 ruby-2.2 ruby-2.1 ruby-2.0 ruby-1.9)
endif()
if(RUBY_FOUND)
set(RUBY_LIB "")
mark_as_advanced(RUBY_LIB)
else()
find_program(RUBY_EXECUTABLE
NAMES ruby2.7.0 ruby270 ruby2.7 ruby2.6.0 ruby260 ruby2.6 ruby2.5.0 ruby250 ruby2.5 ruby2.4.0 ruby240 ruby2.4 ruby2.3.0 ruby230 ruby2.3 ruby23 ruby2.2.3 ruby223 ruby2.2.2 ruby222 ruby2.2.1 ruby221 ruby2.2.0 ruby220 ruby2.2 ruby22 ruby2.1.7 ruby217 ruby2.1.6 ruby216 ruby2.1.5 ruby215 ruby2.1.4 ruby214 ruby2.1.3 ruby213 ruby2.1.2 ruby212 ruby2.1.1 ruby211 ruby2.1.0 ruby210 ruby2.1 ruby21 ruby2.0 ruby20 ruby1.9.3 ruby193 ruby1.9.2 ruby192 ruby1.9.1 ruby191 ruby1.9 ruby19 ruby
PATHS /usr/bin /usr/local/bin /usr/pkg/bin
)
if(RUBY_EXECUTABLE)
execute_process(
COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print RbConfig::CONFIG['rubyhdrdir'] || RbConfig::CONFIG['archdir']"
OUTPUT_VARIABLE RUBY_ARCH_DIR
)
execute_process(
COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print RbConfig::CONFIG['arch']"
OUTPUT_VARIABLE RUBY_ARCH
)
execute_process(
COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print RbConfig::CONFIG['libdir']"
OUTPUT_VARIABLE RUBY_POSSIBLE_LIB_PATH
)
execute_process(
COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print RbConfig::CONFIG['rubylibdir']"
OUTPUT_VARIABLE RUBY_RUBY_LIB_PATH
)
find_path(RUBY_INCLUDE_DIRS
NAMES ruby.h
PATHS ${RUBY_ARCH_DIR}
)
set(RUBY_INCLUDE_ARCH "${RUBY_INCLUDE_DIRS}/${RUBY_ARCH}")
find_library(RUBY_LIB
NAMES ruby-1.9.3 ruby1.9.3 ruby193 ruby-1.9.2 ruby1.9.2 ruby192 ruby-1.9.1 ruby1.9.1 ruby191 ruby1.9 ruby19 ruby
PATHS ${RUBY_POSSIBLE_LIB_PATH} ${RUBY_RUBY_LIB_PATH}
)
if(RUBY_LIB AND RUBY_INCLUDE_DIRS)
set(RUBY_FOUND TRUE)
endif()
set(RUBY_INCLUDE_DIRS "${RUBY_INCLUDE_DIRS};${RUBY_INCLUDE_ARCH}")
mark_as_advanced(
RUBY_INCLUDE_DIRS
RUBY_LIBRARY_DIRS
RUBY_LIB
)
endif()
endif()
+3 -1
View File
@@ -1,5 +1,7 @@
#
# Copyright (C) 2015-2020 Sébastien Helleu <flashcode@flashtux.org>
# SPDX-FileCopyrightText: 2015-2026 Sébastien Helleu <flashcode@flashtux.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later
#
# This file is part of WeeChat, the extensible chat client.
#
-76
View File
@@ -1,76 +0,0 @@
# - Find zlib
# Find the native ZLIB includes and library.
# Once done this will define
#
# ZLIB_INCLUDE_DIRS - where to find zlib.h, etc.
# ZLIB_LIBRARIES - List of libraries when using zlib.
# ZLIB_FOUND - True if zlib found.
#
# ZLIB_VERSION_STRING - The version of zlib found (x.y.z)
# ZLIB_VERSION_MAJOR - The major version of zlib
# ZLIB_VERSION_MINOR - The minor version of zlib
# ZLIB_VERSION_PATCH - The patch version of zlib
# ZLIB_VERSION_TWEAK - The tweak version of zlib
#
# The following variable are provided for backward compatibility
#
# ZLIB_MAJOR_VERSION - The major version of zlib
# ZLIB_MINOR_VERSION - The minor version of zlib
# ZLIB_PATCH_VERSION - The patch version of zlib
#=============================================================================
# Copyright 2001-2009 Kitware, Inc.
#
# Distributed under the OSI-approved BSD License (the "License");
# see accompanying file Copyright.txt for details.
#
# This software is distributed WITHOUT ANY WARRANTY; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the License for more information.
#=============================================================================
# (To distribute this file outside of CMake, substitute the full
# License text for the above reference.)
find_path(ZLIB_INCLUDE_DIR zlib.h
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\GnuWin32\\Zlib;InstallPath]/include"
)
set(ZLIB_NAMES z zlib zdll zlib1 zlibd zlibd1)
find_library(ZLIB_LIBRARY
NAMES
${ZLIB_NAMES}
PATHS
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\GnuWin32\\Zlib;InstallPath]/lib"
)
mark_as_advanced(ZLIB_LIBRARY ZLIB_INCLUDE_DIR)
if(ZLIB_INCLUDE_DIR AND EXISTS "${ZLIB_INCLUDE_DIR}/zlib.h")
file(STRINGS "${ZLIB_INCLUDE_DIR}/zlib.h" ZLIB_H REGEX "^#define ZLIB_VERSION \"[^\"]*\"$")
string(REGEX REPLACE "^.*ZLIB_VERSION \"([0-9]+).*$" "\\1" ZLIB_VERSION_MAJOR "${ZLIB_H}")
string(REGEX REPLACE "^.*ZLIB_VERSION \"[0-9]+\\.([0-9]+).*$" "\\1" ZLIB_VERSION_MINOR "${ZLIB_H}")
string(REGEX REPLACE "^.*ZLIB_VERSION \"[0-9]+\\.[0-9]+\\.([0-9]+).*$" "\\1" ZLIB_VERSION_PATCH "${ZLIB_H}")
set(ZLIB_VERSION_STRING "${ZLIB_VERSION_MAJOR}.${ZLIB_VERSION_MINOR}.${ZLIB_VERSION_PATCH}")
# only append a TWEAK version if it exists:
set(ZLIB_VERSION_TWEAK "")
if("${ZLIB_H}" MATCHES "^.*ZLIB_VERSION \"[0-9]+\\.[0-9]+\\.[0-9]+\\.([0-9]+).*$")
set(ZLIB_VERSION_TWEAK "${CMAKE_MATCH_1}")
set(ZLIB_VERSION_STRING "${ZLIB_VERSION_STRING}.${ZLIB_VERSION_TWEAK}")
endif()
set(ZLIB_MAJOR_VERSION "${ZLIB_VERSION_MAJOR}")
set(ZLIB_MINOR_VERSION "${ZLIB_VERSION_MINOR}")
set(ZLIB_PATCH_VERSION "${ZLIB_VERSION_PATCH}")
endif()
# handle the QUIETLY and REQUIRED arguments and set ZLIB_FOUND to TRUE if
# all listed variables are TRUE
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(ZLIB REQUIRED_VARS ZLIB_LIBRARY ZLIB_INCLUDE_DIR
VERSION_VAR ZLIB_VERSION_STRING)
if(ZLIB_FOUND)
set(ZLIB_INCLUDE_DIRS ${ZLIB_INCLUDE_DIR})
set(ZLIB_LIBRARIES ${ZLIB_LIBRARY})
endif()
+4 -4
View File
@@ -1,5 +1,7 @@
#
# Copyright (C) 2003-2020 Sébastien Helleu <flashcode@flashtux.org>
# SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later
#
# This file is part of WeeChat, the extensible chat client.
#
@@ -28,9 +30,7 @@ list(REVERSE files)
foreach(file ${files})
message(STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"")
if(EXISTS "$ENV{DESTDIR}${file}")
exec_program("@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
OUTPUT_VARIABLE rm_out
RETURN_VARIABLE rm_retval)
execute_process(COMMAND "@CMAKE_COMMAND@" -E remove "$ENV{DESTDIR}${file}" OUTPUT_VARIABLE rm_out RESULT_VARIABLE rm_retval)
if("${rm_retval}" GREATER 0)
message(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"")
endif()
+50 -3
View File
@@ -1,14 +1,62 @@
#cmakedefine HAVE_LIBINTL_H
/*
SPDX-FileCopyrightText: 2007-2026 Sébastien Helleu <flashcode@flashtux.org>
SPDX-License-Identifier: GPL-3.0-or-later
*/
#cmakedefine01 ENABLE_NCURSES
#cmakedefine01 ENABLE_HEADLESS
#cmakedefine01 ENABLE_NLS
#cmakedefine01 ENABLE_LARGEFILE
#cmakedefine01 ENABLE_ZSTD
#cmakedefine01 ENABLE_CJSON
#cmakedefine01 ENABLE_ALIAS
#cmakedefine01 ENABLE_BUFLIST
#cmakedefine01 ENABLE_CHARSET
#cmakedefine01 ENABLE_EXEC
#cmakedefine01 ENABLE_FIFO
#cmakedefine01 ENABLE_FSET
#cmakedefine01 ENABLE_IRC
#cmakedefine01 ENABLE_LOGGER
#cmakedefine01 ENABLE_RELAY
#cmakedefine01 ENABLE_SCRIPT
#cmakedefine01 ENABLE_SCRIPTS
#cmakedefine01 ENABLE_PERL
#cmakedefine01 ENABLE_PYTHON
#cmakedefine01 ENABLE_RUBY
#cmakedefine01 ENABLE_LUA
#cmakedefine01 ENABLE_TCL
#cmakedefine01 ENABLE_GUILE
#cmakedefine01 ENABLE_JAVASCRIPT
#cmakedefine01 ENABLE_PHP
#cmakedefine01 ENABLE_SPELL
#cmakedefine01 ENABLE_ENCHANT
#cmakedefine01 ENABLE_TRIGGER
#cmakedefine01 ENABLE_TYPING
#cmakedefine01 ENABLE_XFER
#cmakedefine01 ENABLE_MAN
#cmakedefine01 ENABLE_DOC
#cmakedefine01 ENABLE_DOC_INCOMPLETE
#cmakedefine01 ENABLE_TESTS
#cmakedefine01 ENABLE_CODE_COVERAGE
#cmakedefine HAVE_SYS_RESOURCE_H
#cmakedefine HAVE_FLOCK
#cmakedefine HAVE_LANGINFO_CODESET
#cmakedefine HAVE_BACKTRACE
#cmakedefine ICONV_2ARG_IS_CONST 1
#cmakedefine HAVE_MALLINFO
#cmakedefine HAVE_MALLINFO2
#cmakedefine HAVE_MALLOC_H
#cmakedefine HAVE_MALLOC_TRIM
#cmakedefine HAVE_HTONLL
#cmakedefine HAVE_EAT_NEWLINE_GLITCH
#cmakedefine HAVE_ASPELL_VERSION_STRING
#cmakedefine HAVE_ENCHANT_GET_VERSION
#cmakedefine HAVE_GUILE_GMP_MEMORY_FUNCTIONS
#define CMAKE_BUILD_TYPE "@CMAKE_BUILD_TYPE@"
#define CMAKE_INSTALL_PREFIX "@CMAKE_INSTALL_PREFIX@"
#define PACKAGE_VERSION "@VERSION@"
#define PACKAGE "@PROJECT_NAME@"
#define PACKAGE_NAME "@PROJECT_NAME@"
@@ -17,5 +65,4 @@
#define WEECHAT_SHAREDIR "@WEECHAT_SHAREDIR@"
#define LOCALEDIR "@LOCALEDIR@"
#define WEECHAT_HOME "@WEECHAT_HOME@"
#define CA_FILE "@CA_FILE@"
#define _GNU_SOURCE 1
-1569
View File
File diff suppressed because it is too large Load Diff
+12 -8
View File
@@ -1,26 +1,29 @@
Source: weechat-devel
Section: net
Priority: optional
Maintainer: Sébastien Helleu <flashcode@flashtux.org>
Build-Depends:
asciidoctor (>= 1.5.4),
ruby-pygments.rb,
debhelper (>= 12),
cmake, pkg-config,
libncursesw5-dev,
cmake,
pkgconf,
libncurses-dev,
gem2deb,
libperl-dev,
python3-dev,
libaspell-dev,
liblua5.3-dev,
liblua5.4-dev,
tcl8.6-dev,
guile-2.2-dev,
php-dev, libphp-embed, libargon2-0-dev, libsodium-dev,
guile-3.0-dev,
php-dev, libphp-embed, libargon2-dev, libsodium-dev,
libxml2-dev,
libcurl4-gnutls-dev,
libgcrypt20-dev,
libgnutls28-dev,
zlib1g-dev
Standards-Version: 4.4.0
libzstd-dev,
zlib1g-dev,
libcjson-dev
Standards-Version: 4.7.3
Homepage: https://weechat.org/
Vcs-Git: https://salsa.debian.org/kolter/weechat.git
Vcs-Browser: https://salsa.debian.org/kolter/weechat
@@ -153,6 +156,7 @@ Description: Fast, light and extensible chat client - plugins
- FIFO pipe for remote control
- Relay (IRC proxy and WeeChat protocol)
- Trigger
- Typing
Package: weechat-devel-python
Architecture: any
+3 -16
View File
@@ -4,10 +4,8 @@ export DEB_BUILD_MAINT_OPTIONS=hardening=+all
BUILDDIR = builddir
$(BUILDDIR)/Makefile:
mkdir -p $(BUILDDIR)
cd $(BUILDDIR) && \
cmake .. \
override_dh_auto_configure:
dh_auto_configure --buildsystem=cmake -- \
-DCMAKE_INSTALL_PREFIX:FILEPATH=/usr \
-DLIBDIR=/usr/lib/${DEB_HOST_MULTIARCH} \
-DENABLE_DOC:BOOL=ON \
@@ -18,16 +16,5 @@ $(BUILDDIR)/Makefile:
-DCMAKE_SKIP_RPATH:BOOL=ON \
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON
override_dh_auto_configure:
# the package also has autotools buildsys and
# debhelper try to use it but that's not needed
echo
override_dh_auto_build: $(BUILDDIR)/Makefile
dh_auto_build
override_dh_installchangelogs:
dh_installchangelogs ChangeLog.adoc
%:
dh $@ --builddirectory=$(BUILDDIR) --without autoreconf
dh $@ --builddirectory=$(BUILDDIR)
+3
View File
@@ -0,0 +1,3 @@
tar-ignore = ".git"
tar-ignore = "build"
tar-ignore = "release"
@@ -0,0 +1,10 @@
Document: weechat-dev-sr
Title: WeeChat developer's guide (Serbian)
Author: Sébastien Helleu
Abstract: This manual describes WeeChat internals and
how to contribute to WeeChat (Serbian version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-devel-doc/html/weechat_dev.sr.html
Files: /usr/share/doc/weechat-devel-doc/html/weechat_dev.sr.html
@@ -0,0 +1,10 @@
Document: weechat-faq-es
Title: WeeChat FAQ (Spanish)
Author: Sébastien Helleu
Abstract: This document answers frequently asked questions
about the WeeChat IRC client (Spanish version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-devel-doc/html/weechat_faq.es.html
Files: /usr/share/doc/weechat-devel-doc/html/weechat_faq.es.html
@@ -0,0 +1,10 @@
Document: weechat-faq-sr
Title: WeeChat FAQ (Serbian)
Author: Sébastien Helleu
Abstract: This document answers frequently asked questions
about the WeeChat IRC client (Serbian version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-devel-doc/html/weechat_faq.sr.html
Files: /usr/share/doc/weechat-devel-doc/html/weechat_faq.sr.html
@@ -0,0 +1,10 @@
Document: weechat-plugin-sr
Title: WeeChat plugin API reference (Serbian)
Author: Sébastien Helleu
Abstract: This document describes the API to create plugins
for WeeChat (Serbian version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-devel-doc/html/weechat_plugin_api.sr.html
Files: /usr/share/doc/weechat-devel-doc/html/weechat_plugin_api.sr.html
@@ -0,0 +1,9 @@
Document: weechat-quickstart-cs
Title: WeeChat quick start guide (Czech)
Author: Sébastien Helleu
Abstract: A short HowTo for new WeeChat users (Czech version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-devel-doc/html/weechat_quickstart.cs.html
Files: /usr/share/doc/weechat-devel-doc/html/weechat_quickstart.cs.html
@@ -0,0 +1,9 @@
Document: weechat-quickstart-sr
Title: WeeChat quick start guide (Serbian)
Author: Sébastien Helleu
Abstract: A short HowTo for new WeeChat users (Serbian version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-devel-doc/html/weechat_quickstart.sr.html
Files: /usr/share/doc/weechat-devel-doc/html/weechat_quickstart.sr.html
@@ -0,0 +1,10 @@
Document: weechat-relay-api-en
Title: WeeChat Relay "api" protocol (English)
Author: Sébastien Helleu
Abstract: This manual describes WeeChat Relay "api" protocol, used by
remote GUI or WeeChat to communicate with Relay plugin (English version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-devel-doc/html/weechat_relay_api.en.html
Files: /usr/share/doc/weechat-devel-doc/html/weechat_relay_api.en.html
@@ -0,0 +1,10 @@
Document: weechat-relay-api-fr
Title: WeeChat Relay "api" protocol (French)
Author: Sébastien Helleu
Abstract: This manual describes WeeChat Relay "api" protocol, used by
remote GUI or WeeChat to communicate with Relay plugin (French version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-devel-doc/html/weechat_relay_api.fr.html
Files: /usr/share/doc/weechat-devel-doc/html/weechat_relay_api.fr.html
@@ -1,10 +0,0 @@
Document: weechat-relay-protocol-en
Title: WeeChat Relay protocol (English)
Author: Sébastien Helleu
Abstract: This manual describes WeeChat Relay Protocol, used by
remote GUI to communicate with Relay plugin (English version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-devel-doc/html/weechat_relay_protocol.en.html
Files: /usr/share/doc/weechat-devel-doc/html/weechat_relay_protocol.en.html
@@ -1,10 +0,0 @@
Document: weechat-relay-protocol-fr
Title: WeeChat Relay protocol (French)
Author: Sébastien Helleu
Abstract: This manual describes WeeChat Relay Protocol, used by
remote GUI to communicate with Relay plugin (French version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-devel-doc/html/weechat_relay_protocol.fr.html
Files: /usr/share/doc/weechat-devel-doc/html/weechat_relay_protocol.fr.html
@@ -1,10 +0,0 @@
Document: weechat-relay-protocol-ja
Title: WeeChat Relay protocol (Japanese)
Author: Sébastien Helleu
Abstract: This manual describes WeeChat Relay Protocol, used by
remote GUI to communicate with Relay plugin (Japanese version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-devel-doc/html/weechat_relay_protocol.ja.html
Files: /usr/share/doc/weechat-devel-doc/html/weechat_relay_protocol.ja.html
@@ -0,0 +1,10 @@
Document: weechat-relay-weechat-en
Title: WeeChat Relay "weechat" protocol (English)
Author: Sébastien Helleu
Abstract: This manual describes WeeChat Relay "weechat" protocol, used by
remote GUI to communicate with Relay plugin (English version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-devel-doc/html/weechat_relay_weechat.en.html
Files: /usr/share/doc/weechat-devel-doc/html/weechat_relay_weechat.en.html
@@ -0,0 +1,10 @@
Document: weechat-relay-weechat-fr
Title: WeeChat Relay "weechat" protocol (French)
Author: Sébastien Helleu
Abstract: This manual describes WeeChat Relay "weechat" protocol, used by
remote GUI to communicate with Relay plugin (French version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-devel-doc/html/weechat_relay_weechat.fr.html
Files: /usr/share/doc/weechat-devel-doc/html/weechat_relay_weechat.fr.html
@@ -0,0 +1,10 @@
Document: weechat-relay-weechat-ja
Title: WeeChat Relay "weechat" protocol (Japanese)
Author: Sébastien Helleu
Abstract: This manual describes WeeChat Relay "weechat" protocol, used by
remote GUI to communicate with Relay plugin (Japanese version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-devel-doc/html/weechat_relay_weechat.ja.html
Files: /usr/share/doc/weechat-devel-doc/html/weechat_relay_weechat.ja.html
@@ -0,0 +1,10 @@
Document: weechat-relay-weechat-sr
Title: WeeChat Relay "weechat" protocol (Serbian)
Author: Sébastien Helleu
Abstract: This manual describes WeeChat Relay "weechat" protocol, used by
remote GUI to communicate with Relay plugin (Serbian version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-devel-doc/html/weechat_relay_weechat.sr.html
Files: /usr/share/doc/weechat-devel-doc/html/weechat_relay_weechat.sr.html
@@ -0,0 +1,10 @@
Document: weechat-scripting-sr
Title: WeeChat scripting guide (Serbian)
Author: Sébastien Helleu
Abstract: This document describes the API to create scripts
for WeeChat (Serbian version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-devel-doc/html/weechat_scripting.sr.html
Files: /usr/share/doc/weechat-devel-doc/html/weechat_scripting.sr.html
@@ -1,10 +0,0 @@
Document: weechat-tester-de
Title: WeeChat tester's guide (German)
Author: Sébastien Helleu
Abstract: This document describes how to test and report
bugs against the WeeChat IRC Client (German version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-devel-doc/html/weechat_tester.de.html
Files: /usr/share/doc/weechat-devel-doc/html/weechat_tester.de.html
@@ -1,10 +0,0 @@
Document: weechat-tester-en
Title: WeeChat tester's guide (English)
Author: Sébastien Helleu
Abstract: This document describes how to test and report
bugs against the WeeChat IRC Client (English version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-devel-doc/html/weechat_tester.en.html
Files: /usr/share/doc/weechat-devel-doc/html/weechat_tester.en.html
@@ -1,10 +0,0 @@
Document: weechat-tester-fr
Title: WeeChat tester's guide (French)
Author: Sébastien Helleu
Abstract: This document describes how to test and report
bugs against the WeeChat IRC Client (French version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-devel-doc/html/weechat_tester.fr.html
Files: /usr/share/doc/weechat-devel-doc/html/weechat_tester.fr.html
@@ -1,10 +0,0 @@
Document: weechat-tester-it
Title: WeeChat tester's guide (Italian)
Author: Sébastien Helleu
Abstract: This document describes how to test and report
bugs against the WeeChat IRC Client (Italian version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-devel-doc/html/weechat_tester.it.html
Files: /usr/share/doc/weechat-devel-doc/html/weechat_tester.it.html
@@ -1,10 +0,0 @@
Document: weechat-tester-ja
Title: WeeChat tester's guide (Japanese)
Author: Sébastien Helleu
Abstract: This document describes how to test and report
bugs against the WeeChat IRC Client (Japanese version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-devel-doc/html/weechat_tester.ja.html
Files: /usr/share/doc/weechat-devel-doc/html/weechat_tester.ja.html
@@ -1,10 +0,0 @@
Document: weechat-tester-pl
Title: WeeChat tester's guide (Polish)
Author: Sébastien Helleu
Abstract: This document describes how to test and report
bugs against the WeeChat IRC Client (Polish version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-devel-doc/html/weechat_tester.pl.html
Files: /usr/share/doc/weechat-devel-doc/html/weechat_tester.pl.html
@@ -0,0 +1,10 @@
Document: weechat-user-sr
Title: WeeChat user's guide (Serbian)
Author: Sébastien Helleu
Abstract: This manual describes how to use the WeeChat
IRC client (Serbian version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-devel-doc/html/weechat_user.sr.html
Files: /usr/share/doc/weechat-devel-doc/html/weechat_user.sr.html
-41
View File
@@ -1,41 +0,0 @@
weechat (2.1-1) unstable; urgency=medium
This release introduces a new headless client and a new PHP plugin for
scripting (respectively weechat-headless and weechat-php binary
packages).
To avoid at least unnecessary dependencies, each plugin has its own
separate binary package:
weechat-{perl,python,ruby,lua,guile,javascript,php}
Depending on your needs about scripting with weechat you should consider
to install the missing packages.
-- Emmanuel Bouthenot <kolter@debian.org> Wed, 21 Mar 2018 07:53:40 +0100
weechat (1.1.1-1) unstable; urgency=medium
Since version 1.1, there is a new format for regexp replacement in
triggers. This format is incompatible with version 1.0. The existing
triggers will not be automatically updated.
See https://weechat.org/files/releasenotes/ReleaseNotes-1.1.html
-- Emmanuel Bouthenot <kolter@debian.org> Sun, 25 Jan 2015 20:41:50 +0100
weechat (0.3.1-1) unstable; urgency=low
This release introduces important changes with the usage of SSL. There
are stronger checks while connecting with SSL. By default, if a connection
is not fully trusted it will fail.
You can find more information on how to handle this new behaviour here:
https://blog.weechat.org/post/2009/12/01/SSL-certificates
-- Emmanuel Bouthenot <kolter@debian.org> Mon, 25 Jan 2010 12:35:11 +0100
weechat (0.3.0-1) unstable; urgency=low
This release introduces major changes. Large part of code was
rewritten without keeping compatibility with older versions.
Please refer to the file /usr/share/doc/weechat-core/UPGRADE_0.3
for more information on upgrade from a version 0.2.x to 0.3.x.
-- Emmanuel Bouthenot <kolter@openics.org> Tue, 15 Sep 2009 20:59:42 +0000
+199 -4
View File
@@ -1,3 +1,198 @@
weechat (4.8.1-1) unstable; urgency=medium
* New upstream release
* Bump Standards-Version to 4.7.3
* Update debian/copyright file (new year)
* Remove redundant priority optional field from debian/control
-- Emmanuel Bouthenot <kolter@debian.org> Fri, 23 Jan 2026 22:02:31 +0000
weechat (4.7.2-1) unstable; urgency=medium
* New upstream release (Closes: #1119787)
* Update debian/watch to version 5
* Remove useless 'Rules-Requires-Root: no' from debian/control
-- Emmanuel Bouthenot <kolter@debian.org> Sat, 29 Nov 2025 08:53:10 +0000
weechat (4.6.3-1) unstable; urgency=medium
* New upstream release
- fixes multiple security vulnerabilities (Closes: #1104554)
-- Emmanuel Bouthenot <kolter@debian.org> Sat, 17 May 2025 05:49:46 +0000
weechat (4.6.1-1) unstable; urgency=medium
* New upstream release (Closes: #1102450, #1098090)
-- Emmanuel Bouthenot <kolter@debian.org> Wed, 16 Apr 2025 20:31:07 +0000
weechat (4.5.1-1) unstable; urgency=medium
* New upstream release
* Update copyright file (new year)
-- Emmanuel Bouthenot <kolter@debian.org> Mon, 20 Jan 2025 14:39:42 +0000
weechat (4.4.3-1) unstable; urgency=medium
* New upstream release
* Remove (fixed upstream) the fix for a possible privacy breach with html
documentation which includes stylesheets and fonts (font-awesome) hosted
on remote CDN (Cloudflare).
-- Emmanuel Bouthenot <kolter@debian.org> Wed, 06 Nov 2024 21:27:08 +0000
weechat (4.4.2-1) unstable; urgency=medium
* New upstream release
- fix crash where exiting (Closes: #1076532)
- fix a minor security issue (Closes: #1081942)
* Fix possible privacy breach with html documentation which includes
stylesheets and fonts (font-awesome) hosted on remote CDN (Cloudflare)
by replacing them during build process by the ones provided in
fonts-font-awesome package (also added as dependency on weechat-doc).
* Refresh weechat-doc with minor changes and add some documentation in
Serbian and Czech.
* Bump Standards-Version to 4.7.0
-- Emmanuel Bouthenot <kolter@debian.org> Sun, 22 Sep 2024 13:08:28 +0000
weechat (4.3.1-1) unstable; urgency=medium
* New upstream release (Closes: #1067608)
- fix FTBFS against libgcrypt 1.11 (Closes: #1071960)
* Add build dependency on libcjson-dev
* Replace pkg-config build dependency by pkgconf
* Minor updates in debian/copyright
-- Emmanuel Bouthenot <kolter@debian.org> Sat, 01 Jun 2024 14:21:02 +0000
weechat (4.1.1-1) unstable; urgency=medium
* New upstream release (Closes: #1055278)
-- Emmanuel Bouthenot <kolter@debian.org> Fri, 03 Nov 2023 20:23:37 +0000
weechat (4.0.5-1) unstable; urgency=medium
* New upstream release
-- Emmanuel Bouthenot <kolter@debian.org> Sun, 24 Sep 2023 07:49:41 +0000
weechat (4.0.2-1) unstable; urgency=medium
* New upstream release (Closes: #1040248)
-- Emmanuel Bouthenot <kolter@debian.org> Sat, 22 Jul 2023 05:48:35 +0000
weechat (4.0.1-1) unstable; urgency=medium
* New upstream release
* Remove NEWS file, no longer required
* Update build dependency from libncursesw5-dev to libncurses-dev
* Bump Standards-Version to 4.6.2
* Remove all patches (no longer required)
-- Emmanuel Bouthenot <kolter@debian.org> Tue, 04 Jul 2023 19:02:41 +0000
weechat (3.8-1) unstable; urgency=medium
* New upstream release
* Add a patch remove some autotools leftovers
* Update debian/copyright (new year)
* Update debian/rules to remove workarounds which avoid issues with
autotools build system
-- Emmanuel Bouthenot <kolter@debian.org> Sun, 15 Jan 2023 08:34:04 +0000
weechat (3.7.1-1) unstable; urgency=medium
* New upstream release
-- Emmanuel Bouthenot <kolter@debian.org> Sat, 22 Oct 2022 12:55:10 +0000
weechat (3.7-1) unstable; urgency=medium
* New upstream release
-- Emmanuel Bouthenot <kolter@debian.org> Tue, 18 Oct 2022 12:44:29 +0000
weechat (3.6-1) unstable; urgency=medium
* New upstream release
* Bump Standards-Version to 4.6.1.0
-- Emmanuel Bouthenot <kolter@debian.org> Sat, 23 Jul 2022 09:56:24 +0000
weechat (3.5-1) unstable; urgency=medium
* New upstream release
* Add build dependency on libzstd-dev
-- Emmanuel Bouthenot <kolter@debian.org> Thu, 31 Mar 2022 11:36:01 +0000
weechat (3.4.1-1) unstable; urgency=medium
* New upstream release
- Fix a possible man-in-the-middle attack in TLS connection to servers
* Update build dependency from libargon2-0-dev to libargon2-dev
(libargon2-0-dev is now virtual package) (Closes: #1005703)
-- Emmanuel Bouthenot <kolter@debian.org> Tue, 22 Mar 2022 05:55:14 +0000
weechat (3.4-2) unstable; urgency=medium
* Remove build dependency on ruby-pygments.rb (no longer required)
-- Emmanuel Bouthenot <kolter@debian.org> Sat, 08 Jan 2022 06:00:17 +0000
weechat (3.4-1) unstable; urgency=medium
* New upstream release (Closes: #1001654, #1001245)
* Remove tester's guide from weechat-doc (according to upstream changes)
* Refresh ASCII Doctor options patch
* Update lintian override on weechat-plugins
* Update copyright (new year)
-- Emmanuel Bouthenot <kolter@debian.org> Fri, 07 Jan 2022 23:03:49 +0000
weechat (3.3-1) unstable; urgency=medium
* New upstream release
* Remove patch merged upstream (which command detection in libgcrypt)
* Minor updates in debian/copyright
* Enable Typing plugin
-- Emmanuel Bouthenot <kolter@debian.org> Mon, 20 Sep 2021 10:05:56 +0000
weechat (3.2.1-1) unstable; urgency=medium
* New upstream release
- fix CVE-2021-40516: possible denial of service (crash) via a crafted
WebSocket in relay plugin (Closes: #993803)
* Add a patch to fix a FTBFS (related to recent changes on which command
output) (Closes: #993333)
* Bump Standards-Version to 4.6.0.1
* Remove useless HomePage field in upstream/metadata
-- Emmanuel Bouthenot <kolter@debian.org> Tue, 07 Sep 2021 20:25:39 +0000
weechat (3.0.1-1) unstable; urgency=medium
* New upstream release
* Bump Standards-Version to 4.5.1
-- Emmanuel Bouthenot <kolter@debian.org> Wed, 03 Mar 2021 05:30:44 +0000
weechat (3.0-1) unstable; urgency=medium
* New upstream release
* Build against Guile 3.0 (instead of 2.2) (Closes: #969680)
-- Emmanuel Bouthenot <kolter@debian.org> Sat, 21 Nov 2020 07:34:12 +0000
weechat (2.9-1) unstable; urgency=medium
* New upstream release
@@ -394,7 +589,7 @@ weechat (0.3.6-1) unstable; urgency=low
documentation when weechat-doc is installed (Closes: #632621)
* Add a Suggest on weechat-doc for weechat and weechat-curses. Thanks to
Jonathan Nieder for the proposal.
* Fix the cmake invokation from debian/rules (cflags and ldflags)
* Fix the cmake invocation from debian/rules (cflags and ldflags)
-- Emmanuel Bouthenot <kolter@debian.org> Wed, 26 Oct 2011 20:10:09 +0000
@@ -616,7 +811,7 @@ weechat (0.2.3-1) unstable; urgency=low
* New upstream release
* Bump lua build-dependency to liblua5.1-0-dev
* Add pkg-config to Build-Depends
* Remove some duplited changelog entries.
* Remove some duplicated changelog entries.
* Improve weechat-plugins description
-- Julien Louis <ptitlouis@sysif.net> Fri, 12 Jan 2007 09:01:46 +0100
@@ -624,7 +819,7 @@ weechat (0.2.3-1) unstable; urgency=low
weechat (0.2.1-1) unstable; urgency=low
* New upstream release
* Overrive lintian menu-icon-missing warning
* Override lintian menu-icon-missing warning
since the icon is in the weechat-common package.
-- Julien Louis <ptitlouis@sysif.net> Mon, 2 Oct 2006 15:30:06 +0200
@@ -769,7 +964,7 @@ weechat (0.1.1-2) unstable; urgency=low
* debian/control:
- Add myself to uploaders.
- Remove unecessary dependency on weechat-gtk (Closes: #308287).
- Remove unnecessary dependency on weechat-gtk (Closes: #308287).
-- Julien Louis <ptitlouis@sysif.net> Tue, 10 May 2005 22:38:52 +0200
+12 -8
View File
@@ -1,26 +1,29 @@
Source: weechat
Section: net
Priority: optional
Maintainer: Emmanuel Bouthenot <kolter@debian.org>
Build-Depends:
asciidoctor (>= 1.5.4),
ruby-pygments.rb,
debhelper (>= 12),
cmake, pkg-config,
libncursesw5-dev,
cmake,
pkgconf,
libncurses-dev,
gem2deb,
libperl-dev,
python3-dev,
libaspell-dev,
liblua5.3-dev,
liblua5.4-dev,
tcl8.6-dev,
guile-2.2-dev,
php-dev, libphp-embed, libargon2-0-dev, libsodium-dev,
guile-3.0-dev,
php-dev, libphp-embed, libargon2-dev, libsodium-dev,
libxml2-dev,
libcurl4-gnutls-dev,
libgcrypt20-dev,
libgnutls28-dev,
zlib1g-dev
Standards-Version: 4.4.0
libzstd-dev,
zlib1g-dev,
libcjson-dev
Standards-Version: 4.7.3
Homepage: https://weechat.org/
Vcs-Git: https://salsa.debian.org/kolter/weechat.git
Vcs-Browser: https://salsa.debian.org/kolter/weechat
@@ -148,6 +151,7 @@ Description: Fast, light and extensible chat client - plugins
- FIFO pipe for remote control
- Relay (IRC proxy and WeeChat protocol)
- Trigger
- Typing
Package: weechat-python
Architecture: any
+13 -13
View File
@@ -4,26 +4,26 @@ Upstream-Contact: Sébastien Helleu <flashcode@flashtux.org>
Source: https://weechat.org/
Files: *
Copyright: 2003-2020, Sébastien Helleu <flashcode@flashtux.org>
Copyright: 2003-2026, Sébastien Helleu <flashcode@flashtux.org>
License: GPL-3+
Files: src/core/wee-command.c
src/core/wee-command.h
Files: src/core/core-command.c
src/core/core-command.h
Copyright: 2005-2006, Emmanuel Bouthenot <kolter@openics.org>
License: GPL-3+
Files: src/core/wee-config-file.c
src/core/wee-config-file.h
src/core/wee-config.c
src/core/wee-config.h
Files: src/core/core-config-file.c
src/core/core-config-file.h
src/core/core-config.c
src/core/core-config.h
Copyright: 2005-2006, Emmanuel Bouthenot <kolter@openics.org>
License: GPL-3+
Files: src/core/hook/wee-hook-connect.c
Files: src/core/hook/hook-connect.c
Copyright: 2012, Simon Arlott
License: GPL-3+
Files: src/core/hook/wee-hook-connect.h
Files: src/core/hook/hook-connect.h
Copyright: 2012, Simon Arlott
License: GPL-3+
@@ -31,9 +31,9 @@ Files: src/gui/gui-history.c
Copyright: 2005, Emmanuel Bouthenot <kolter@openics.org>
License: GPL-3+
Files: src/core/wee-completion.c
src/core/wee-log.c
src/core/wee-utf8.c
Files: src/core/core-completion.c
src/core/core-log.c
src/core/core-utf8.c
src/core/weechat.h
src/plugins/spell/spell-config.c
src/plugins/spell/spell-config.h
@@ -45,7 +45,7 @@ Files: src/core/wee-completion.c
Copyright: 2006, Emmanuel Bouthenot <kolter@openics.org>
License: GPL-3+
Files: src/core/wee-network.c
Files: src/core/core-network.c
Copyright: 2005-2010, Emmanuel Bouthenot <kolter@openics.org>
2010, Gu1ll4um3r0m41n <aeroxteam@gmail.com>
2012, Simon Arlott
+3 -16
View File
@@ -4,10 +4,8 @@ export DEB_BUILD_MAINT_OPTIONS=hardening=+all
BUILDDIR = builddir
$(BUILDDIR)/Makefile:
mkdir -p $(BUILDDIR)
cd $(BUILDDIR) && \
cmake .. \
override_dh_auto_configure:
dh_auto_configure --buildsystem=cmake -- \
-DCMAKE_INSTALL_PREFIX:FILEPATH=/usr \
-DLIBDIR=/usr/lib/${DEB_HOST_MULTIARCH} \
-DENABLE_DOC:BOOL=ON \
@@ -18,16 +16,5 @@ $(BUILDDIR)/Makefile:
-DCMAKE_SKIP_RPATH:BOOL=ON \
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON
override_dh_auto_configure:
# the package also has autotools buildsys and
# debhelper try to use it but that's not needed
echo
override_dh_auto_build: $(BUILDDIR)/Makefile
dh_auto_build
override_dh_installchangelogs:
dh_installchangelogs ChangeLog.adoc
%:
dh $@ --builddirectory=$(BUILDDIR) --without autoreconf
dh $@ --builddirectory=$(BUILDDIR)
+3
View File
@@ -0,0 +1,3 @@
tar-ignore = ".git"
tar-ignore = "build"
tar-ignore = "release"
+4 -2
View File
@@ -1,2 +1,4 @@
version=3
opts=pgpsigurlmangle=s/$/.asc/ https://weechat.org/files/src/weechat-(\d.*)\.tar\.bz2
Version: 5
Source: https://weechat.org/download/
Matching-Pattern: /files/src/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@
Pgp-Mode: auto
+5 -4
View File
@@ -1,4 +1,5 @@
AUTHORS.adoc
Contributing.adoc
README.adoc
ReleaseNotes.adoc
AUTHORS.md
CHANGELOG.md
CONTRIBUTING.md
README.md
UPGRADING.md
+1
View File
@@ -7,3 +7,4 @@ usr/share/man/it/man1/weechat.1.gz usr/share/man/it/man1/weechat-curses.1.gz
usr/share/man/ja/man1/weechat.1.gz usr/share/man/ja/man1/weechat-curses.1.gz
usr/share/man/pl/man1/weechat.1.gz usr/share/man/pl/man1/weechat-curses.1.gz
usr/share/man/ru/man1/weechat.1.gz usr/share/man/ru/man1/weechat-curses.1.gz
usr/share/man/sr/man1/weechat.1.gz usr/share/man/sr/man1/weechat-curses.1.gz
@@ -0,0 +1,10 @@
Document: weechat-relay-api-en
Title: WeeChat Relay "api" protocol (English)
Author: Sébastien Helleu
Abstract: This manual describes WeeChat Relay "api" protocol, used by
remote GUI or WeeChat to communicate with Relay plugin (English version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-devel-doc/html/weechat_relay_api.en.html
Files: /usr/share/doc/weechat-devel-doc/html/weechat_relay_api.en.html
@@ -0,0 +1,10 @@
Document: weechat-relay-api-fr
Title: WeeChat Relay "api" protocol (French)
Author: Sébastien Helleu
Abstract: This manual describes WeeChat Relay "api" protocol, used by
remote GUI or WeeChat to communicate with Relay plugin (French version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-devel-doc/html/weechat_relay_api.fr.html
Files: /usr/share/doc/weechat-devel-doc/html/weechat_relay_api.fr.html
+10
View File
@@ -0,0 +1,10 @@
Document: weechat-dev-sr
Title: WeeChat developer's guide (Serbian)
Author: Sébastien Helleu
Abstract: This manual describes WeeChat internals and
how to contribute to WeeChat (Serbian version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-doc/html/weechat_dev.sr.html
Files: /usr/share/doc/weechat-doc/html/weechat_dev.sr.html
+10
View File
@@ -0,0 +1,10 @@
Document: weechat-faq-es
Title: WeeChat FAQ (Spanish)
Author: Sébastien Helleu
Abstract: This document answers frequently asked questions
about the WeeChat IRC client (Spanish version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-doc/html/weechat_faq.es.html
Files: /usr/share/doc/weechat-doc/html/weechat_faq.es.html
+10
View File
@@ -0,0 +1,10 @@
Document: weechat-faq-sr
Title: WeeChat FAQ (Serbian)
Author: Sébastien Helleu
Abstract: This document answers frequently asked questions
about the WeeChat IRC client (Serbian version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-doc/html/weechat_faq.sr.html
Files: /usr/share/doc/weechat-doc/html/weechat_faq.sr.html
@@ -0,0 +1,10 @@
Document: weechat-plugin-sr
Title: WeeChat plugin API reference (Serbian)
Author: Sébastien Helleu
Abstract: This document describes the API to create plugins
for WeeChat (Serbian version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-doc/html/weechat_plugin_api.sr.html
Files: /usr/share/doc/weechat-doc/html/weechat_plugin_api.sr.html
@@ -0,0 +1,9 @@
Document: weechat-quickstart-cs
Title: WeeChat quick start guide (Czech)
Author: Sébastien Helleu
Abstract: A short HowTo for new WeeChat users (Czech version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-doc/html/weechat_quickstart.cs.html
Files: /usr/share/doc/weechat-doc/html/weechat_quickstart.cs.html
@@ -0,0 +1,9 @@
Document: weechat-quickstart-sr
Title: WeeChat quick start guide (Serbian)
Author: Sébastien Helleu
Abstract: A short HowTo for new WeeChat users (Serbian version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-doc/html/weechat_quickstart.sr.html
Files: /usr/share/doc/weechat-doc/html/weechat_quickstart.sr.html

Some files were not shown because too many files have changed in this diff Show More