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

Compare commits

...

957 Commits

Author SHA1 Message Date
Sébastien Helleu 209ffbe50e core: fix buffer overflow in function eval_string_range_chars 2025-05-11 17:10:29 +02:00
Sébastien Helleu 0c9028b47c core: fix buffer overflow in function eval_string_base_encode 2025-05-11 16:11:54 +02:00
Sébastien Helleu fdcab27513 core: fix integer overflow in function util_version_number 2025-05-11 15:59:36 +02:00
Sébastien Helleu 96dc934241 core: fix integer overflow in base32 encoding/decoding 2025-05-11 15:23:22 +02:00
Sébastien Helleu 7f96c31e1b core: fix integer overflow with decimal numbers in calculation of expression 2025-05-11 14:48:17 +02:00
Sébastien Helleu d1c6d170ac core: fix crash in case of NULL message sent to function gui_chat_printf_y_date_tags (issue #1883) 2024-09-08 10:52:48 +02:00
Faisal N Jawdat d0fe9508a5 ruby: add detection for Ruby 3.3 2024-09-08 10:32:38 +02:00
Sébastien Helleu 244ba50841 core: fix test of Debian patches when there are no patches 2024-09-08 09:26:04 +02:00
Sébastien Helleu ec31f43d85 ci: fix macOS CI 2024-09-08 09:25:02 +02:00
Sébastien Helleu 2e10264e96 core: fix Czech translation 2024-09-08 09:09:53 +02:00
Sébastien Helleu ccfe1f2263 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-09-08 09:09:53 +02:00
Sébastien Helleu 3ece5bd8a9 core: update ChangeLog (issue #2178) 2024-09-08 09:09:53 +02:00
Sébastien Helleu 4a63d88895 trigger: fix integer overflow in loop (issue #2178) 2024-09-08 09:09:53 +02:00
Sébastien Helleu 9a0bd7c753 relay: fix integer overflow in loops (issue #2178) 2024-09-08 09:09:53 +02:00
Sébastien Helleu d8c954472c irc: fix integer overflow in loops (issue #2178) 2024-09-08 09:09:53 +02:00
Sébastien Helleu 64eee892b2 core: fix integer overflow in loops (issue #2178) 2024-09-08 09:09:53 +02:00
Yiheng Cao d1655945cd core: fix integer overflow in string_free_split functions (issue #2178) 2024-09-08 08:29:47 +02:00
Sébastien Helleu d2f78e2248 Version 3.8.1-dev 2024-09-08 08:29:31 +02: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
816 changed files with 163674 additions and 51811 deletions
+1 -1
View File
@@ -5,4 +5,4 @@ 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
+102 -19
View File
@@ -4,48 +4,50 @@ on:
- push
- pull_request
env:
WEECHAT_DEPENDENCIES: devscripts equivs python3-pip autopoint cmake ninja-build lcov pkg-config libncursesw5-dev gem2deb libperl-dev python3-dev libaspell-dev liblua5.3-dev tcl8.6-dev guile-3.0-dev libv8-dev libcurl4-gnutls-dev libgcrypt20-dev libgnutls28-dev libzstd-dev zlib1g-dev curl libcpputest-dev php-dev libphp-embed libargon2-dev libsodium-dev flake8 pylint python3-bandit asciidoctor ruby-pygments.rb shellcheck
jobs:
build:
tests_linux:
name: ${{ matrix.config.name }}
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
os:
- ubuntu-22.04
config:
- { name: "cmake_gcc", cc: "gcc", cxx: "g++", tool: "cmake", args: "" }
- { name: "cmake_gcc_ninja", cc: "gcc", cxx: "g++", tool: "cmake", args: "-G Ninja" }
- { name: "cmake_gcc_no_nls", cc: "gcc", cxx: "g++", tool: "cmake", args: "-DENABLE_NLS=OFF" }
- { 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: "" }
name: "Tests: ${{ matrix.config.name }} on ${{ matrix.os }}"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- name: Install dependencies
run: |
sudo apt-add-repository --yes ppa:ondrej/php
sudo apt-get update -qq
sudo apt-get --yes --no-install-recommends install devscripts equivs python3-pip libenchant-dev autopoint cmake lcov pkg-config libncursesw5-dev gem2deb libperl-dev python2-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 pylint asciidoctor
sudo apt-get --yes --no-install-recommends install ${{ env.WEECHAT_DEPENDENCIES }}
sudo -H pip3 install --ignore-installed msgcheck
- name: Test patches
run: ./tools/build-debian.sh test-patches
- name: Check gettext files
run: msgcheck po/*.po
- name: Check Python scripts
run: |
pylint --additional-builtins=_ doc/docgen.py
pylint doc/python_stub.py
pylint tests/scripts/python/testapigen.py
pylint tests/scripts/python/testapi.py
pylint tests/scripts/python/unparse.py
- name: Check shell and Python scripts
run: ./tools/check_scripts.sh
- name: Check Python stub file
run: ./doc/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
- name: Build and run tests
env:
@@ -53,7 +55,7 @@ jobs:
CXX: ${{ matrix.config.cxx }}
BUILDTOOL: ${{ matrix.config.tool }}
BUILDARGS: ${{ matrix.config.args }}
run: ./tools/build-test.sh
run: ./tools/build_test.sh
- name: Run WeeChat
env:
@@ -64,7 +66,7 @@ jobs:
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: Code coverage
if: ${{ matrix.config.name == 'cmake_gcc_coverage' }}
@@ -76,3 +78,84 @@ 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'
tests_macos:
strategy:
matrix:
os:
- macos-12
- macos-11
config:
- { name: "cmake_gcc", cc: "gcc", cxx: "g++" }
- { name: "cmake_clang", cc: "clang", cxx: "clang++" }
name: "Tests: ${{ matrix.config.name }} on ${{ matrix.os }}"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- name: Install dependencies
run: |
brew update
brew install asciidoctor guile lua ruby
- name: Build
env:
CC: ${{ matrix.config.cc }}
CXX: ${{ matrix.config.cxx }}
run: |
mkdir build-tmp && cd build-tmp
cmake .. -DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_PHP=OFF
make VERBOSE=1 -j2
sudo make install
- name: Run WeeChat
env:
TERM: xterm-256color
run: |
weechat --help
weechat-curses --help
weechat --colors
weechat --license
weechat --version
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
build_debian:
strategy:
matrix:
os:
- ubuntu-22.04
name: "Build Debian on ${{ matrix.os }}"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- name: Install dependencies
run: |
sudo apt-get update -qq
sudo apt-get --yes --no-install-recommends install ${{ env.WEECHAT_DEPENDENCIES }}
- name: Test Debian patches
run: ./tools/build_debian.sh test-patches
- name: Build Debian packages
run: ./tools/build_debian.sh devel ubuntu/jammy
- 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 --run-command "/debug dirs;/debug libs" --run-command "/quit"
+3 -1
View File
@@ -11,7 +11,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>
-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
+7 -3
View File
@@ -56,6 +56,7 @@ Alphabetically:
* Guido Berhoerster
* Gwenn
* Hasan Kiran (turgay)
* Ivan Pešić
* Ivan Sichmann Freitas
* Jakub Jirutka
* Jan Palus
@@ -76,8 +77,9 @@ Alphabetically:
* Krzysztof Koroscik (soltys)
* Kyle Fuller (kylef)
* Kyle Sabo
* Leonid Evdokimov
* Latchezar Tzvetkoff
* Lázaro A.
* Leonid Evdokimov
* Linus Heckemann
* Maarten de Vries
* Mantas Mikulėnas (grawity)
@@ -121,6 +123,7 @@ Alphabetically:
* Rudolf Polzer (divVerent)
* Ruslan Bekenev
* Ryan Farley
* Ryan Qian
* Ryuunosuke Ayanokouzi
* scumjr
* Sergio Durigan Junior
@@ -130,6 +133,7 @@ Alphabetically:
* Simmo Saan (sim642)
* Simon Arlott
* Simon Kuhnle
* Simon Ser
* Stefano Pigozzi
* Stfn
* Sven Knurr (Cthulhux)
@@ -143,6 +147,7 @@ Alphabetically:
* Trevor Bergeron
* Valentin Lorentz (progval)
* Vasco Almeida
* Victorhck
* Voroskoi
* Wojciech Kwolek
* W. Trevor King
@@ -152,5 +157,4 @@ Alphabetically:
== Contact
See https://weechat.org/files/doc/devel/weechat_user.en.html#support[user's guide]
or https://weechat.org/about/support
See the https://weechat.org/about/support/[support page].
+16 -8
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2023 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2007-2008 Julien Louis <ptitlouis@sysif.net>
# Copyright (C) 2008-2009 Emmanuel Bouthenot <kolter@openics.org>
#
@@ -27,8 +27,8 @@ project(weechat C)
set(CMAKE_VERBOSE_MAKEFILE OFF)
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
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")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsigned-char -fms-extensions -Wall -Wextra -Werror-implicit-function-declaration")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsigned-char -fms-extensions -Wall -Wextra")
# version
execute_process(COMMAND ${CMAKE_SOURCE_DIR}/version.sh devel-major OUTPUT_VARIABLE VERSION_MAJOR)
@@ -105,7 +105,6 @@ 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)
@@ -115,6 +114,7 @@ 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_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)
@@ -150,6 +150,8 @@ endif()
add_definitions(-DHAVE_CONFIG_H)
include(FindPkgConfig)
include(CheckIncludeFiles)
include(CheckFunctionExists)
include(CheckSymbolExists)
@@ -182,9 +184,10 @@ if(ENABLE_NLS)
endif()
# Check for libgcrypt
find_package(GCRYPT REQUIRED)
pkg_check_modules(LIBGCRYPT REQUIRED libgcrypt)
add_definitions(-DHAVE_GCRYPT)
list(APPEND EXTRA_LIBS ${GCRYPT_LDFLAGS})
include_directories(${LIBGCRYPT_INCLUDE_DIRS})
list(APPEND EXTRA_LIBS ${LIBGCRYPT_LDFLAGS})
# Check for GnuTLS
find_package(GnuTLS REQUIRED)
@@ -195,7 +198,9 @@ list(APPEND EXTRA_LIBS gnutls)
# Check for zlib
find_package(ZLIB REQUIRED)
add_definitions(-DHAVE_ZLIB)
# Check for zstd
pkg_check_modules(LIBZSTD REQUIRED libzstd)
# Check for iconv
find_package(Iconv)
@@ -237,13 +242,16 @@ if(ENABLE_TESTS)
else()
message(SEND_ERROR "CppUTest not found")
endif()
else()
enable_testing()
add_test(NAME notests COMMAND true)
endif()
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}"
)
+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>.
+782 -450
View File
File diff suppressed because it is too large Load Diff
+6 -7
View File
@@ -29,8 +29,8 @@ please include:
_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...).
* Your *operating system*: its name and version (examples: Linux Debian Bullseye,
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
@@ -38,8 +38,7 @@ please include:
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).
https://weechat.org/doc/user/#report_crashes[User's guide] for more info).
* The *actual result*.
* The *expected result*: the correct result you are expecting.
@@ -69,14 +68,14 @@ 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]
https://weechat.org/doc/dev/#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://weechat.org/dev/[roadmap] or
https://github.com/weechat/weechat/milestones[milestones] on GitHub.
Pull requests on GitHub are welcome for minor new features.
@@ -85,6 +84,6 @@ 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
https://weechat.org/files/doc/devel/weechat_dev.en.html#coding_rules[coding rules]
https://weechat.org/doc/dev/#coding_rules[coding rules]
in Developer's guide, which contains info about styles used, naming convention
and other useful info.
+4 -4
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2023 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2005 Julien Louis <ptitlouis@sysif.net>
# Copyright (C) 2006-2009 Emmanuel Bouthenot <kolter@openics.org>
#
@@ -23,7 +23,7 @@
# (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
-$(abs_top_srcdir)/tools/set_git_version.sh "$(abs_top_srcdir)" "$(VERSION)" config-git.h
if TESTS
tests_dir = tests
@@ -60,8 +60,8 @@ EXTRA_DIST = AUTHORS.adoc \
cmake/cmake_uninstall.cmake.in \
po/CMakeLists.txt \
po/srcfiles.cmake \
tools/build-test.sh \
tools/git-version.sh \
tools/build_test.sh \
tools/set_git_version.sh \
tools/makedist.sh \
version.sh \
weechat.desktop \
+9 -78
View File
@@ -23,13 +23,13 @@ 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.
* *Modular chat client*: WeeChat has a lightweight core and optional https://weechat.org/doc/user/#plugins[plugins]. All plugins (including https://weechat.org/doc/user/#irc[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.
* *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/language/perl/[Perl], https://weechat.org/scripts/language/python/[Python], https://weechat.org/scripts/language/ruby[Ruby], https://weechat.org/scripts/language/lua/[Lua], https://weechat.org/scripts/language/tcl/[Tcl], https://weechat.org/scripts/language/guile/[Scheme], https://weechat.org/scripts/language/javascript/[JavaScript] and https://weechat.org/scripts/language/php/[PHP]).
* *Fully documented*: there is comprehensive https://weechat.org/doc/[documentation], which is https://weechat.org/doc/dev/#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].
@@ -37,84 +37,15 @@ pass:[<p align="center">] image:https://weechat.org/media/images/screenshots/wee
On WeeChat's website you can find https://weechat.org/about/screenshots/[more screenshots].
== Install
== Installation
=== Dependencies
WeeChat can be installed using your favorite package manager (recommended) or by compiling it yourself.
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
----
For detailed instructions, please check the https://weechat.org/doc/user/#install[WeeChat user's guide].
== Copyright
Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
Copyright (C) 2003-2023 Sébastien Helleu <flashcode@flashtux.org>
This file is part of WeeChat, the extensible chat client.
+664 -260
View File
File diff suppressed because it is too large Load Diff
+14 -14
View File
@@ -1,6 +1,6 @@
#!/bin/sh
#
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2023 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2005 Julien Louis <ptitlouis@sysif.net>
# Copyright (C) 2005-2006 Emmanuel Bouthenot <kolter@openics.org>
#
@@ -34,36 +34,36 @@ err ()
echo "-------"
echo "Error :"
echo "---8<-----------------------------------"
cat $AUTOGEN_LOG
cat "$AUTOGEN_LOG"
echo "----------------------------------->8---"
exit 1
}
run ()
{
printf "Running \"%s\"..." "$@"
if eval "$@" >$AUTOGEN_LOG 2>&1 ; then
echo " OK"
printf "Running \"%s\"... " "$*"
if "$@" >"$AUTOGEN_LOG" 2>&1 ; then
echo "OK"
else
echo " FAILED"
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"
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"
run rm -f libtool
# remove gettext stuff
run "rm -f ABOUT-NLS"
run "rm -rf intl"
run rm -f ABOUT-NLS
run rm -rf intl
# execute autoreconf cmds
run "autoreconf -vi"
run autoreconf -vi
# ending
rm -f $AUTOGEN_LOG
rm -f "$AUTOGEN_LOG"
+1 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2023 Sébastien Helleu <flashcode@flashtux.org>
#
# This file is part of WeeChat, the extensible chat client.
#
+1 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2023 Sébastien Helleu <flashcode@flashtux.org>
#
# This file is part of WeeChat, the extensible chat client.
#
+1 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2014-2021 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2014-2023 Sébastien Helleu <flashcode@flashtux.org>
#
# This file is part of WeeChat, the extensible chat client.
#
+2 -2
View File
@@ -27,11 +27,11 @@ else()
find_path(ENCHANT_INCLUDE_DIR
NAMES enchant++.h
HINTS ${PC_ENCHANT_INCLUDEDIR} ${PC_ENCHANT_INCLUDE_DIRS}
PATH_SUFFIXES enchant
PATH_SUFFIXES enchant-2 enchant
)
find_library(ENCHANT_LIBRARIES
NAMES enchant
NAMES enchant-2 enchant
HINTS ${PC_ENCHANT_LIBDIR}
${PC_ENCHANT_LIBRARY_DIRS}
)
-53
View File
@@ -1,53 +0,0 @@
#
# Copyright (C) 2003-2021 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()
+1 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2023 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2007 Julien Louis <ptitlouis@sysif.net>
# Copyright (C) 2009 Emmanuel Bouthenot <kolter@openics.org>
#
+1 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2023 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2009 Emmanuel Bouthenot <kolter@openics.org>
#
# This file is part of WeeChat, the extensible chat client.
+1 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2011-2021 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2011-2023 Sébastien Helleu <flashcode@flashtux.org>
#
# This file is part of WeeChat, the extensible chat client.
#
+1 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2023 Sébastien Helleu <flashcode@flashtux.org>
#
# This file is part of WeeChat, the extensible chat client.
#
+2 -2
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2023 Sébastien Helleu <flashcode@flashtux.org>
#
# This file is part of WeeChat, the extensible chat client.
#
@@ -35,5 +35,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 lua5.4 lua-5.4 lua54 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)
endif()
+1 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2023 Sébastien Helleu <flashcode@flashtux.org>
#
# This file is part of WeeChat, the extensible chat client.
#
+12 -7
View File
@@ -1,6 +1,6 @@
#
# Copyright (C) 2017 Adam Saponara <as@php.net>
# Copyright (C) 2017-2021 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2017-2023 Sébastien Helleu <flashcode@flashtux.org>
#
# This file is part of WeeChat, the extensible chat client.
#
@@ -24,26 +24,31 @@ 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.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.2 php8.1 php8.0 php8 php7.4 php7.3 php7.2 php7.1 php7.0 php7 php
HINTS ${PHP_LIB_PREFIX} ${PHP_LIB_PREFIX}/lib ${PHP_LIB_PREFIX}/lib64
)
if(PHP_LIB)
@@ -58,9 +63,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()
+1 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2023 Sébastien Helleu <flashcode@flashtux.org>
#
# This file is part of WeeChat, the extensible chat client.
#
+4 -10
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2023 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2009 Julien Louis <ptitlouis@sysif.net>
#
# This file is part of WeeChat, the extensible chat client.
@@ -28,13 +28,7 @@
# 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()
pkg_check_modules(PYTHON python3-embed IMPORTED_TARGET GLOBAL)
if(NOT PYTHON_FOUND)
pkg_check_modules(PYTHON python3 IMPORTED_TARGET GLOBAL)
endif()
+9 -47
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2023 Sébastien Helleu <flashcode@flashtux.org>
#
# This file is part of WeeChat, the extensible chat client.
#
@@ -33,51 +33,13 @@ 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
)
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
# set specific search path for macOS
set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:/usr/local/opt/ruby/lib/pkgconfig")
endif()
pkg_search_module(RUBY ruby-3.3 ruby-3.2 ruby-3.1 ruby-3.0 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 ruby)
if(RUBY_FOUND AND ${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
# FIXME: weird hack: hardcoding the Ruby lib location on macOS
set(RUBY_LDFLAGS "${RUBY_LDFLAGS} -L/usr/local/opt/ruby/lib")
endif()
endif()
+1 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2015-2021 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2015-2023 Sébastien Helleu <flashcode@flashtux.org>
#
# This file is part of WeeChat, the extensible chat client.
#
+2 -4
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2023 Sébastien Helleu <flashcode@flashtux.org>
#
# This file is part of WeeChat, the extensible chat client.
#
@@ -28,9 +28,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()
+76 -36
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2023 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2005 Benoit Papillault <benoit.papillault@free.fr>
# Copyright (C) 2005-2006 Julien Louis <ptitlouis@sysif.net>
# Copyright (C) 2005-2009 Emmanuel Bouthenot <kolter@openics.org>
@@ -64,7 +64,7 @@ darwin*)
esac
# Gettext
ALL_LINGUAS="cs de es fr hu it ja pl pt pt_BR ru tr"
ALL_LINGUAS="cs de es fr hu it ja pl pt pt_BR ru sr tr"
AM_GNU_GETTEXT
AM_GNU_GETTEXT_VERSION([0.18])
@@ -130,6 +130,7 @@ AH_VERBATIM([PLUGIN_GUILE], [#undef PLUGIN_GUILE])
AH_VERBATIM([PLUGIN_JAVASCRIPT], [#undef PLUGIN_JAVASCRIPT])
AH_VERBATIM([PLUGIN_SPELL], [#undef PLUGIN_SPELL])
AH_VERBATIM([PLUGIN_TRIGGER], [#undef PLUGIN_TRIGGER])
AH_VERBATIM([PLUGIN_TYPING], [#undef PLUGIN_TYPING])
AH_VERBATIM([PLUGIN_XFER], [#undef PLUGIN_XFER])
AH_VERBATIM([TESTS], [#undef TESTS])
AH_VERBATIM([MAN], [#undef MAN])
@@ -154,7 +155,6 @@ AC_ARG_ENABLE(script, [ --disable-script turn off Script plugin (d
AC_ARG_ENABLE(scripts, [ --disable-scripts turn off script plugins (perl, python, ...) (default=compiled if found)],enable_scripts=$enableval,enable_scripts=yes)
AC_ARG_ENABLE(perl, [ --disable-perl turn off Perl script plugin (default=compiled if found)],enable_perl=$enableval,enable_perl=yes)
AC_ARG_ENABLE(python, [ --disable-python turn off Python script plugin (default=compiled if found)],enable_python=$enableval,enable_python=yes)
AC_ARG_ENABLE(python2, [ --enable-python2 use Python 2 instead of Python 3 (default=off)],enable_python2=$enableval,enable_python2=no)
AC_ARG_ENABLE(ruby, [ --disable-ruby turn off Ruby script plugin (default=compiled if found)],enable_ruby=$enableval,enable_ruby=yes)
AC_ARG_ENABLE(lua, [ --disable-lua turn off Lua script plugin (default=compiled if found)],enable_lua=$enableval,enable_lua=yes)
AC_ARG_ENABLE(tcl, [ --disable-tcl turn off Tcl script plugin (default=compiled if found)],enable_tcl=$enableval,enable_tcl=yes)
@@ -164,6 +164,7 @@ AC_ARG_ENABLE(php, [ --disable-php turn off PHP script plugi
AC_ARG_ENABLE(spell, [ --disable-spell turn off Spell checker plugin (default=compiled)],enable_spell=$enableval,enable_spell=yes)
AC_ARG_ENABLE(enchant, [ --enable-enchant turn on Enchant lib for Spell checker plugin (default=off)],enable_enchant=$enableval,enable_enchant=no)
AC_ARG_ENABLE(trigger, [ --disable-trigger turn off Trigger plugin (default=compiled)],enable_trigger=$enableval,enable_trigger=yes)
AC_ARG_ENABLE(typing, [ --disable-typing turn off Typing plugin (default=compiled)],enable_trigger=$enableval,enable_typing=yes)
AC_ARG_ENABLE(xfer, [ --disable-xfer turn off Xfer (file transfer) plugin (default=compiled)],enable_xfer=$enableval,enable_xfer=yes)
AC_ARG_WITH(tclconfig, [ --with-tclconfig=DIR directory containing tcl configuration (tclConfig.sh)],tclconfig=$withval,tclconfig='')
AC_ARG_WITH(debug, [ --with-debug debugging: 0=no debug, 1=debug compilation (default=0)],debug=$withval,debug=0)
@@ -465,13 +466,9 @@ fi
PYTHON_VERSION=
if test "x$enable_python" = "xyes" ; then
if test "x$enable_python2" = "xyes" ; then
PKG_CHECK_MODULES(PYTHON, [python2], [PYTHON_FOUND=yes; PYTHON_VERSION=`$PKGCONFIG --modversion python2`], [PYTHON_FOUND=no])
else
PKG_CHECK_MODULES(PYTHON, [python3-embed], [PYTHON_FOUND=yes; PYTHON_VERSION=`$PKGCONFIG --modversion python3-embed`], [PYTHON_FOUND=no])
if test "x$PYTHON_FOUND" != "xyes"; then
PKG_CHECK_MODULES(PYTHON, [python3], [PYTHON_FOUND=yes; PYTHON_VERSION=`$PKGCONFIG --modversion python3`], [PYTHON_FOUND=no])
fi
PKG_CHECK_MODULES(PYTHON, [python3-embed], [PYTHON_FOUND=yes; PYTHON_VERSION=`$PKGCONFIG --modversion python3-embed`], [PYTHON_FOUND=no])
if test "x$PYTHON_FOUND" != "xyes"; then
PKG_CHECK_MODULES(PYTHON, [python3], [PYTHON_FOUND=yes; PYTHON_VERSION=`$PKGCONFIG --modversion python3`], [PYTHON_FOUND=no])
fi
if test "x$PYTHON_FOUND" != "xyes" ; then
AC_MSG_WARN([
@@ -499,7 +496,7 @@ RUBY_VERSION=
if test "x$enable_ruby" = "xyes" ; then
RUBY_CFLAGS=""
RUBY_LFLAGS=""
for v in "2.7" "2.6" "2.5" "2.4" "2.3" "2.2" "2.1" "2.0" "1.9" "1.8" ; do
for v in "3.2" "3.1" "3.0" "2.7" "2.6" "2.5" "2.4" "2.3" "2.2" "2.1" "2.0" "1.9" "1.8" ; do
pkgconfig_ruby_found=`$PKGCONFIG --exists ruby-$v 2>/dev/null`
if test "x$?" = "x0" ; then
RUBY_VERSION=`$PKGCONFIG --modversion ruby-$v`
@@ -571,7 +568,7 @@ if test "x$enable_lua" = "xyes" ; then
if test "x$LUA_CFLAGS" = "x" -o "x$LUA_LFLAGS" = "x" ; then
AC_MSG_CHECKING(for Lua headers and libraries with pkg-config)
echo
for l in "53" "5.3" "52" "5.2" "51" "5.1" "50" "5.0" "$lua_suffix" "" ; do
for l in "54" "5.4" "53" "5.3" "52" "5.2" "51" "5.1" "50" "5.0" "$lua_suffix" "" ; do
pkgconfig_lua_found=`$PKGCONFIG --exists lua$l 2>/dev/null`
if test "x$?" = "x0" ; then
LUA_VERSION=`$PKGCONFIG --modversion lua$l`
@@ -590,7 +587,7 @@ if test "x$enable_lua" = "xyes" ; then
if test "x$LUA_CFLAGS" = "x" -o "x$LUA_LFLAGS" = "x" ; then
LUACONFIG=""
AC_CHECK_PROGS(LUACONFIG, lua-config53 lua-config5.3 lua-config52 lua-config5.2 lua-config51 lua-config5.1 lua-config50 lua-config5.0 lua-config)
AC_CHECK_PROGS(LUACONFIG, lua-config54 lua-config5.4 lua-config53 lua-config5.3 lua-config52 lua-config5.2 lua-config51 lua-config5.1 lua-config50 lua-config5.0 lua-config)
if test "x$LUACONFIG" != "x" ; then
AC_MSG_CHECKING(for Lua headers and libraries with lua-config)
echo
@@ -608,7 +605,7 @@ if test "x$enable_lua" = "xyes" ; then
if test "x$ac_found_lua_header" = "xyes" -a "x$ac_found_liblua_header" = "xyes"; then
LUA_CFLAGS="$CFLAGS"
fi
for l in "53" "5.3" "52" "5.2" "51" "5.1" "50" "5.0" "$lua_suffix" "" ; do
for l in "54" "5.4" "53" "5.3" "52" "5.2" "51" "5.1" "50" "5.0" "$lua_suffix" "" ; do
AC_CHECK_LIB(lua$l,lua_call,ac_found_lua_lib="yes",ac_found_lua_lib="no")
if test "x$ac_found_lua_lib" = "xyes" ; then
LUA_VERSION=">=5.1.0"
@@ -831,6 +828,7 @@ if test "x$enable_php" = "xyes" ; then
PHP_CFLAGS=""
PHP_LFLAGS=""
PHP_VERSIONS="8.2 82 8.1 81 8.0 80 8 7.4 74 7.3 73 7.2 72 7.1 71 7.0 70 7 $php_suffix"
if test -n "$php_inc"; then
CFLAGS="$CFLAGS -I$php_inc"
@@ -843,7 +841,7 @@ if test "x$enable_php" = "xyes" ; then
if test "x$PHP_CFLAGS" = "x" -o "x$PHP_LFLAGS" = "x" ; then
AC_MSG_CHECKING(for PHP headers and libraries with pkg-config)
echo
for l in "7.4" "74" "7.3" "73" "7.2" "72" "7.1" "71" "7.0" "70" "7" "$php_suffix" "" ; do
for l in $PHP_VERSIONS "" ; do
pkgconfig_php_found=`$PKGCONFIG --exists php$l 2>/dev/null`
if test "x$?" = "x0" ; then
pkgconfig_php_found=`$PKGCONFIG --atleast-version=7 php$l 2>/dev/null`
@@ -860,11 +858,12 @@ if test "x$enable_php" = "xyes" ; then
if test "x$PHP_CFLAGS" = "x" -o "x$PHP_LFLAGS" = "x" ; then
PHPCONFIG=""
AC_MSG_CHECKING(for PHP headers and libraries with php-config)
for l in "7.4" "74" "7.3" "73" "7.2" "72" "7.1" "71" "7.0" "70" "7" "$php_suffix" "" ; do
echo
for l in $PHP_VERSIONS "" ; do
AC_CHECK_PROG(PHPCONFIG, "php-config$l", "php-config$l")
if test "x$PHPCONFIG" != "x" ; then
php_config_version=`$PHPCONFIG --version`
if test "x${php_config_version#7}" != "x${php_config_version}" ; then
if echo "x$php_config_version" | grep -e "^x7" -e "^x8" 1>/dev/null 2>&1 ; then
PHP_VERSION=$php_config_version
PHP_CFLAGS=`$PHPCONFIG --includes`
PHP_LFLAGS="-L$($PHPCONFIG --prefix)/lib/ $($PHPCONFIG --libs) -lphp$l"
@@ -881,23 +880,25 @@ if test "x$enable_php" = "xyes" ; then
if test "x$ac_found_php_header" = "xyes" ; then
PHP_CFLAGS="$CFLAGS"
fi
for l in "7.4" "74" "7.3" "73" "7.2" "72" "7.1" "71" "7.0" "70" "7" "$php_suffix" "" ; do
AC_CHECK_LIB(php$l,php_execute_script,ac_found_php_lib="yes",ac_found_php_lib="no")
if test "x$ac_found_php_lib" = "xyes" ; then
PHP_VERSION=">=7.0.0"
for l in $PHP_VERSIONS "" ; do
for PHP_LIB_SUFFIX in "$l" "$(echo $l | cut -c1)" "" ; do
AC_CHECK_LIB(php$PHP_LIB_SUFFIX,php_execute_script,ac_found_php_lib="yes",ac_found_php_lib="no")
if test "x$ac_found_php_lib" = "xyes" ; then
PHP_VERSION=">=7.0.0"
PHP_LFLAGS="$LDFLAGS -lphp7 -lm"
PHP_LFLAGS="$LDFLAGS -lphp$PHP_LIB_SUFFIX -lm"
ac2_save_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS -lphp7 -lm"
ac2_save_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS -lphp$PHP_LIB_SUFFIX -lm"
if echo "$host_os" | grep "^linux" 1>/dev/null 2>&1 ; then
LDFLAGS="$LDFLAGS -ldl"
if echo "$host_os" | grep "^linux" 1>/dev/null 2>&1 ; then
LDFLAGS="$LDFLAGS -ldl"
fi
LDFLAGS="$ac2_save_LDFLAGS"
break 2
fi
LDFLAGS="$ac2_save_LDFLAGS"
break
fi
done
done
fi
@@ -1013,6 +1014,18 @@ else
not_asked="$not_asked trigger"
fi
# ---------------------------------- typing ------------------------------------
if test "x$enable_typing" = "xyes" ; then
TYPING_CFLAGS=""
TYPING_LFLAGS=""
AC_SUBST(TYPING_CFLAGS)
AC_SUBST(TYPING_LFLAGS)
AC_DEFINE(PLUGIN_TYPING)
else
not_asked="$not_asked typing"
fi
# ---------------------------------- xfer --------------------------------------
if test "x$enable_xfer" = "xyes" ; then
@@ -1157,6 +1170,27 @@ else
AC_SUBST(ZLIB_LFLAGS)
fi
# ------------------------------------------------------------------------------
# zstd
# ------------------------------------------------------------------------------
AC_CHECK_HEADER(zstd.h,ac_found_zstd_header="yes",ac_found_zstd_header="no")
AC_CHECK_LIB(zstd,ZSTD_compress,ac_found_zstd_lib="yes",ac_found_zstd_lib="no")
AC_MSG_CHECKING(for zstd headers and libraries)
if test "x$ac_found_zstd_header" = "xno" -o "x$ac_found_zstd_lib" = "xno" ; then
AC_MSG_RESULT(no)
AC_MSG_ERROR([
*** zstd was not found. You may want to get it from https://github.com/facebook/zstd
*** or try to install it with your software package manager.])
else
AC_MSG_RESULT(yes)
ZSTD_CFLAGS=`pkg-config libzstd --cflags`
ZSTD_LFLAGS=`pkg-config libzstd --libs`
AC_SUBST(ZSTD_CFLAGS)
AC_SUBST(ZSTD_LFLAGS)
fi
# ------------------------------------------------------------------------------
# curl
# ------------------------------------------------------------------------------
@@ -1245,7 +1279,7 @@ if test "x$enable_man" = "xyes" -o "x$enable_doc" = "xyes"; then
enable_man="no"
enable_doc="no"
fi
ASCIIDOCTOR_ARGS="-a experimental -a 'prewrap!' -a icons=font -a sectanchors -a source-highlighter=prettify"
ASCIIDOCTOR_ARGS="-a experimental -a reproducible -a 'prewrap!' -a 'webfonts!' -a icons=font -a sectanchors -a source-highlighter=pygments -a pygments-style=native"
AC_SUBST(ASCIIDOCTOR)
AC_SUBST(ASCIIDOCTOR_ARGS)
fi
@@ -1365,6 +1399,7 @@ AM_CONDITIONAL(PLUGIN_JAVASCRIPT, test "$enable_javascript" = "yes")
AM_CONDITIONAL(PLUGIN_PHP, test "$enable_php" = "yes")
AM_CONDITIONAL(PLUGIN_SPELL, test "$enable_spell" = "yes")
AM_CONDITIONAL(PLUGIN_TRIGGER, test "$enable_trigger" = "yes")
AM_CONDITIONAL(PLUGIN_TYPING, test "$enable_typing" = "yes")
AM_CONDITIONAL(PLUGIN_XFER, test "$enable_xfer" = "yes")
AM_CONDITIONAL(TESTS, test "$enable_tests" = "yes")
AM_CONDITIONAL(MAN, test "$enable_man" = "yes")
@@ -1373,15 +1408,16 @@ AM_CONDITIONAL(DOC, test "$enable_doc" = "yes")
AC_OUTPUT([Makefile
icons/Makefile
doc/Makefile
doc/cs/Makefile
doc/de/Makefile
doc/en/Makefile
doc/es/Makefile
doc/fr/Makefile
doc/it/Makefile
doc/de/Makefile
doc/pl/Makefile
doc/es/Makefile
doc/ru/Makefile
doc/ja/Makefile
doc/cs/Makefile
doc/pl/Makefile
doc/ru/Makefile
doc/sr/Makefile
src/Makefile
src/core/Makefile
src/plugins/Makefile
@@ -1405,6 +1441,7 @@ AC_OUTPUT([Makefile
src/plugins/php/Makefile
src/plugins/spell/Makefile
src/plugins/trigger/Makefile
src/plugins/typing/Makefile
src/plugins/xfer/Makefile
src/gui/Makefile
src/gui/curses/Makefile
@@ -1493,6 +1530,9 @@ fi
if test "x$enable_trigger" = "xyes"; then
listplugins="$listplugins trigger"
fi
if test "x$enable_typing" = "xyes"; then
listplugins="$listplugins typing"
fi
if test "x$enable_xfer" = "xyes"; then
listplugins="$listplugins xfer"
fi
+6 -3
View File
@@ -4,6 +4,7 @@ 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,
@@ -13,14 +14,15 @@ Build-Depends:
libaspell-dev,
liblua5.3-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,
libzstd-dev,
zlib1g-dev
Standards-Version: 4.5.1
Standards-Version: 4.6.0.1
Homepage: https://weechat.org/
Vcs-Git: https://salsa.debian.org/kolter/weechat.git
Vcs-Browser: https://salsa.debian.org/kolter/weechat
@@ -153,6 +155,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
@@ -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
@@ -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
+72
View File
@@ -1,3 +1,75 @@
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
+6 -3
View File
@@ -4,6 +4,7 @@ Priority: optional
Maintainer: Emmanuel Bouthenot <kolter@debian.org>
Build-Depends:
asciidoctor (>= 1.5.4),
ruby-pygments.rb,
debhelper (>= 12),
cmake, pkg-config,
libncursesw5-dev,
@@ -13,14 +14,15 @@ Build-Depends:
libaspell-dev,
liblua5.3-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,
libzstd-dev,
zlib1g-dev
Standards-Version: 4.5.1
Standards-Version: 4.6.1.0
Homepage: https://weechat.org/
Vcs-Git: https://salsa.debian.org/kolter/weechat.git
Vcs-Browser: https://salsa.debian.org/kolter/weechat
@@ -148,6 +150,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
+1 -1
View File
@@ -4,7 +4,7 @@ Upstream-Contact: Sébastien Helleu <flashcode@flashtux.org>
Source: https://weechat.org/
Files: *
Copyright: 2003-2021, Sébastien Helleu <flashcode@flashtux.org>
Copyright: 2003-2023, Sébastien Helleu <flashcode@flashtux.org>
License: GPL-3+
Files: src/core/wee-command.c
+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
@@ -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-doc/html/weechat_tester.de.html
Files: /usr/share/doc/weechat-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-doc/html/weechat_tester.en.html
Files: /usr/share/doc/weechat-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-doc/html/weechat_tester.fr.html
Files: /usr/share/doc/weechat-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-doc/html/weechat_tester.it.html
Files: /usr/share/doc/weechat-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-doc/html/weechat_tester.ja.html
Files: /usr/share/doc/weechat-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-doc/html/weechat_tester.pl.html
Files: /usr/share/doc/weechat-doc/html/weechat_tester.pl.html
+1
View File
@@ -4,3 +4,4 @@ usr/lib/*/weechat/plugins/relay.so
usr/lib/*/weechat/plugins/script.so
usr/lib/*/weechat/plugins/spell.so
usr/lib/*/weechat/plugins/trigger.so
usr/lib/*/weechat/plugins/typing.so
+54 -2
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2023 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2009 Emmanuel Bouthenot <kolter@openics.org>
#
# This file is part of WeeChat, the extensible chat client.
@@ -21,7 +21,58 @@
if(ENABLE_MAN OR ENABLE_DOC)
find_package(Asciidoctor)
if(ASCIIDOCTOR_FOUND)
set(ASCIIDOCTOR_ARGS -a experimental -a "prewrap!" -a icons=font -a revnumber="${VERSION}" -a sectanchors -a source-highlighter=prettify)
# common asciidoctor arguments
set(ASCIIDOCTOR_ARGS -a experimental -a reproducible -a "prewrap!" -a "webfonts!" -a icons=font -a revnumber="${VERSION}" -a sectanchors -a source-highlighter=pygments -a pygments-style=native)
# sed arguments used to replace links in ChangeLog and release notes
set(SED_LINKS_ARGS
-e "'s/issue #\\([0-9][0-9]*\\)/https:\\/\\/github.com\\/weechat\\/weechat\\/issues\\/\\1[issue #\\1^]/g'"
-e "'s/bug #\\([0-9][0-9]*\\)/https:\\/\\/savannah.nongnu.org\\/bugs\\/?\\1[bug #\\1^]/g'"
-e "'s/task #\\([0-9][0-9]*\\)/https:\\/\\/savannah.nongnu.org\\/task\\/?\\1[task #\\1^]/g'"
-e "'s/patch #\\([0-9][0-9]*\\)/https:\\/\\/savannah.nongnu.org\\/patch\\/?\\1[patch #\\1^]/g'"
-e "'s/debian #\\([0-9][0-9]*\\)/http:\\/\\/bugs.debian.org\\/cgi-bin\\/bugreport.cgi?bug=\\1[debian bug #\\1^]/g'"
-e "'s/\\(CVE-[0-9][0-9]*-[0-9][0-9]*\\)/https:\\/\\/cve.mitre.org\\/cgi-bin\\/cvename.cgi?name=\\1[\\1^]/g'"
)
# ChangeLog
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ChangeLog-links.adoc
COMMAND sed ARGS ${SED_LINKS_ARGS} ${CMAKE_CURRENT_SOURCE_DIR}/../ChangeLog.adoc > ${CMAKE_CURRENT_BINARY_DIR}/ChangeLog-links.adoc
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/../ChangeLog.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ChangeLog.html
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -a docinfodir="${CMAKE_CURRENT_SOURCE_DIR}" -o ChangeLog.html ${CMAKE_CURRENT_BINARY_DIR}/ChangeLog-links.adoc
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html
${CMAKE_CURRENT_BINARY_DIR}/ChangeLog-links.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building ChangeLog.html"
)
add_custom_target(changelog DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/ChangeLog.html)
# Release notes
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ReleaseNotes-links.adoc
COMMAND sed ARGS ${SED_LINKS_ARGS} ${CMAKE_CURRENT_SOURCE_DIR}/../ReleaseNotes.adoc > ${CMAKE_CURRENT_BINARY_DIR}/ReleaseNotes-links.adoc
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/../ReleaseNotes.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ReleaseNotes.html
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -a docinfodir="${CMAKE_CURRENT_SOURCE_DIR}" -o ReleaseNotes.html ${CMAKE_CURRENT_BINARY_DIR}/ReleaseNotes-links.adoc
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html
${CMAKE_CURRENT_BINARY_DIR}/ReleaseNotes-links.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building ReleaseNotes.html"
)
add_custom_target(rn DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/ReleaseNotes.html)
# man/doc in all languages
add_subdirectory(cs)
add_subdirectory(de)
add_subdirectory(en)
@@ -31,6 +82,7 @@ if(ENABLE_MAN OR ENABLE_DOC)
add_subdirectory(ja)
add_subdirectory(pl)
add_subdirectory(ru)
add_subdirectory(sr)
else()
message(SEND_ERROR "Asciidoctor not found")
endif()
+2 -2
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2023 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2006 Julien Louis <ptitlouis@sysif.net>
#
# This file is part of WeeChat, the extensible chat client.
@@ -18,7 +18,7 @@
# along with WeeChat. If not, see <https://www.gnu.org/licenses/>.
#
SUBDIRS = . cs de en es fr it ja pl ru
SUBDIRS = . cs de en es fr it ja pl ru sr
EXTRA_DIST = docgen.py \
docinfo.html \
+1 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2023 Sébastien Helleu <flashcode@flashtux.org>
#
# This file is part of WeeChat, the extensible chat client.
#
+1 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2023 Sébastien Helleu <flashcode@flashtux.org>
#
# This file is part of WeeChat, the extensible chat client.
#
+5 -2
View File
@@ -1,6 +1,6 @@
// tag::plugin_options[]
Pro kompletní dokumentaci nastavení pluginů a jejich volby podívejte se na
https://weechat.org/doc[WeeChat user's guide].
https://weechat.org/doc/[WeeChat user's guide].
S irc pluginem se můžete doččasně připojit na server s URL jako:
@@ -85,6 +85,9 @@ $HOME/.config/weechat/tcl.conf::
$HOME/.config/weechat/trigger.conf::
konfigurační soubor pro _trigger_ plugin
$HOME/.config/weechat/typing.conf::
konfigurační soubor pro _typing_ plugin
$HOME/.config/weechat/xfer.conf::
konfigurační soubor pro _xfer_ plugin
@@ -96,7 +99,7 @@ $HOME/.local/share/weechat/weechat.log::
WeeChat je napsán Sébastienem Helleu a přispěvovateli (kompletní seznam je v
souboru AUTHORS.adoc).
Copyright (C) 2003-2021 {author}
Copyright (C) 2003-2023 {author}
WeeChat is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
+1 -1
View File
@@ -67,4 +67,4 @@ include::includes/man.cs.adoc[tag=copyright]
== PODPORA / HLÁŠENÍ CHYB
Pro pomoc nebo hlášení chyb https://weechat.org/about/support
Pro pomoc nebo hlášení chyb https://weechat.org/about/support/
+1 -1
View File
@@ -62,4 +62,4 @@ include::includes/man.cs.adoc[tag=copyright]
== PODPORA / HLÁŠENÍ CHYB
Pro pomoc nebo hlášení chyb https://weechat.org/about/support
Pro pomoc nebo hlášení chyb https://weechat.org/about/support/
+23 -9
View File
@@ -208,10 +208,16 @@ K automatickému připojení některých kanálů při připojování k serveru:
----
// TRANSLATION MISSING
[TIP]
You can complete name and value of options with the kbd:[Tab] key
and kbd:[Shift+Tab] for a partial completion (useful for long words like
the name of option).
The `/autojoin` command lets you configure the _autojoin_ option easily
(see `/help autojoin`).
// TRANSLATION MISSING
You can also configure WeeChat to automatically update the _autojoin_ option
when you join or leave channels:
----
/set irc.server_default.autojoin_dynamic on
----
K smazání hodnoty serverové volby a k použití výchozí hodnoty místo ní,
například k požití výchozích přezdívek (irc.server_default.nicks):
@@ -227,6 +233,12 @@ název volby):
/set irc.server.libera.xxx value
----
// TRANSLATION MISSING
[TIP]
You can complete name and value of options with the kbd:[Tab] key
and kbd:[Shift+Tab] for a partial completion (useful for long words like
the name of option).
[[connect_to_irc_server]]
== Připojení k IRC serveru
@@ -389,14 +401,16 @@ například:
Zkuste `/help script` pro více informací.
A seznam skriptů je dostupný v WeeChatu s příkazem `/script` nebo na této
adrese https://weechat.org/scripts
// TRANSLATION MISSING
A list of scripts is available in WeeChat with `/script` or on
https://weechat.org/scripts/[this page ^↗^,window=_blank].
[[more_doc]]
== Další dokumentace
Nyní jste schopni používat WeeChat a můžete si přečíst FAQ/dokumentaci pro
jakékoliv další otázky: https://weechat.org/doc
// TRANSLATION MISSING
You can now use WeeChat and read
https://weechat.org/doc/[FAQ/documentation ^↗^,window=_blank]
for any other questions.
Ať máte radost z použití WeeChatu!
+1 -14
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2023 Sébastien Helleu <flashcode@flashtux.org>
#
# This file is part of WeeChat, the extensible chat client.
#
@@ -107,17 +107,4 @@ if(ENABLE_DOC)
add_custom_target(doc-quickstart-de ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.de.html)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.de.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
# tester's guide
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_tester.de.html
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -o weechat_tester.de.html ${CMAKE_CURRENT_SOURCE_DIR}/weechat_tester.de.adoc
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/../docinfo.html
${CMAKE_CURRENT_SOURCE_DIR}/weechat_tester.de.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building weechat_tester.de.html"
)
add_custom_target(doc-tester-de ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_tester.de.html)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_tester.de.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
endif()
+2 -8
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2023 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2006 Julien Louis <ptitlouis@sysif.net>
#
# This file is part of WeeChat, the extensible chat client.
@@ -28,7 +28,6 @@ EXTRA_DIST = CMakeLists.txt \
weechat_scripting.de.adoc \
weechat_faq.de.adoc \
weechat_quickstart.de.adoc \
weechat_tester.de.adoc \
includes/autogen_api_completions.de.adoc \
includes/autogen_api_hdata.de.adoc \
includes/autogen_api_infolists.de.adoc \
@@ -53,8 +52,7 @@ if DOC
doc_targets = weechat_user.de.html \
weechat_scripting.de.html \
weechat_faq.de.html \
weechat_quickstart.de.html \
weechat_tester.de.html
weechat_quickstart.de.html
doc_install = install-doc
doc_uninstall = uninstall-doc
endif
@@ -82,10 +80,6 @@ weechat_faq.de.html: weechat_faq.de.adoc $(abs_top_srcdir)/doc/docinfo.html
weechat_quickstart.de.html: weechat_quickstart.de.adoc $(abs_top_srcdir)/doc/docinfo.html
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_quickstart.de.html $(abs_top_srcdir)/doc/de/weechat_quickstart.de.adoc
# tester's guide
weechat_tester.de.html: weechat_tester.de.adoc $(abs_top_srcdir)/doc/docinfo.html
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_tester.de.html $(abs_top_srcdir)/doc/de/weechat_tester.de.adoc
# install man/docs
install-data-hook: $(man_install) $(doc_install)
@@ -26,6 +26,8 @@
| irc | irc_channels | Kanäle auf allen IRC Servern
| irc | irc_channels_autojoin | Kanäle, die automatisch auf dem aktuellen Server betreten werden (Option "autojoin")
| irc | irc_ignores_numbers | Anzahl für festgelegte Ignorierungen
| irc | irc_modelist_masks | Modelist Maske für aktuellen IRC Kanal; benötigtes Argument: modelist mode
@@ -92,6 +94,8 @@
| tcl | tcl_script | Liste der Skripten
| trigger | trigger_add_arguments | Argumente für den Befehl, der einen Trigger hinzufügt: Name des Triggers, Hooks, Hook-Argumente, Hook-Bedingungen, Hook-Regex, Hook-Befehl, Hook-Rückgabecode, nachfolgende Aktionen
| trigger | trigger_hook_arguments | Standardargumente für einen Hook
| trigger | trigger_hook_command | Standardbefehl für einen Hook
@@ -146,6 +150,14 @@
| weechat | cursor_areas | Bereiche in denen der Cursor frei bewegt werden kann ("chat" oder Name einer Bar)
| weechat | custom_bar_item_add_arguments | Argumente für den Befehl, der ein benutzerdefiniertes Bar-Item hinzufügt: Elementname, Bedingungen,Inhalt
| weechat | custom_bar_item_conditions | Bedingungen für benutzerdefinierte Bar-Items
| weechat | custom_bar_item_contents | Inhalte für benutzerdefinierte Bar-Items
| weechat | custom_bar_items_names | Namen der benutzerdefinierten Bar-Items
| weechat | env_value | Wert einer Umgebungsvariable
| weechat | env_vars | Umgebungsvariablen
+12
View File
@@ -79,6 +79,8 @@ _last_nick_speaking_time_   (pointer, hdata: "irc_channel_speaking") +
_modelists_   (pointer, hdata: "irc_modelist") +
_last_modelist_   (pointer, hdata: "irc_modelist") +
_join_smart_filtered_   (hashtable) +
_typing_state_   (integer) +
_typing_status_sent_   (time) +
_buffer_   (pointer, hdata: "buffer") +
_buffer_as_string_   (string) +
_prev_channel_   (pointer, hdata: "irc_channel") +
@@ -237,6 +239,8 @@ _sasl_scram_client_first_   (string) +
_sasl_scram_salted_pwd_   (other) +
_sasl_scram_salted_pwd_size_   (integer) +
_sasl_scram_auth_message_   (string) +
_sasl_temp_username_   (string) +
_sasl_temp_password_   (string) +
_is_connected_   (integer) +
_ssl_connected_   (integer) +
_disconnected_   (integer) +
@@ -267,6 +271,10 @@ _chantypes_   (string) +
_chanmodes_   (string) +
_monitor_   (integer) +
_monitor_time_   (time) +
_clienttagdeny_   (string) +
_clienttagdeny_count_   (integer) +
_clienttagdeny_array_   (string, array_size: "clienttagdeny_count") +
_typing_allowed_   (integer) +
_reconnect_delay_   (integer) +
_reconnect_start_   (time) +
_command_time_   (time) +
@@ -574,6 +582,7 @@ _title_   (string) +
_own_lines_   (pointer, hdata: "lines") +
_mixed_lines_   (pointer, hdata: "lines") +
_lines_   (pointer, hdata: "lines") +
_next_line_id_   (integer) +
_time_for_each_line_   (integer) +
_chat_refresh_needed_   (integer) +
_nicklist_   (integer) +
@@ -623,6 +632,8 @@ _text_search_input_   (string) +
_highlight_words_   (string) +
_highlight_regex_   (string) +
_highlight_regex_compiled_   (pointer) +
_highlight_disable_regex_   (string) +
_highlight_disable_regex_compiled_   (pointer) +
_highlight_tags_restrict_   (string) +
_highlight_tags_restrict_count_   (integer) +
_highlight_tags_restrict_array_   (pointer, array_size: "highlight_tags_restrict_count") +
@@ -913,6 +924,7 @@ _next_line_   (pointer, hdata: "line") +
| Struktur mit einzeiligen Daten
| -
| _buffer_   (pointer, hdata: "buffer") +
_id_   (integer) +
_y_   (integer) +
_date_   (time) +
_date_printed_   (time) +
+2 -2
View File
@@ -60,8 +60,6 @@
| php | php_version | Version des verwendeten Interpreters | -
| python | python2_bin | Pfad zum Python 2.x Interpreter (*veraltet*, seit WeeChat Version 2.6 müssen Skripten Python3 verwenden) | -
| python | python_eval | Evaluierung des Quelltextes | Quelltext welcher ausgeführt werden soll
| python | python_interpreter | Name des verwendeten Interpreters | -
@@ -128,6 +126,8 @@
| weechat | uptime | Laufzeit von WeeChat (Format: "days:hh:mm:ss") | "days" (Anzahl der Tage) oder "seconds" (Anzahl der Sekunden) (optional)
| weechat | uptime_current | WeeChat-Betriebszeit für den aktuellen Prozess (Upgrades mit /upgrade Befehlwerden ignoriert) (Format: "Tage:hh:mm:ss") | "days" (Anzahl der Tage) oder "seconds" (Anzahl der Sekunden) (optional)
| weechat | version | WeeChat-Version | -
| weechat | version_git | WeeChat Git Version (Ausgabe des Befehls "git describe", ausschließlich für eine Entwicklerversion. Eine stabile Version gibt keine Information zurück) | -
@@ -8,7 +8,7 @@
|===
| Erweiterung | Name | Beschreibung | Hashtable (Eingabe) | Hashtable (Ausgabe)
| irc | irc_message_parse | Parse eine IRC Nachricht | "message": IRC Nachricht, "server": Servername (optional) | "tags": Tags, "message_without_tags": Nachrichten ohne Tags, "nick": Nick, "user": Benutzername, "host": Host, "command": Befehl, "channel": Kanal, "arguments": Argumente (schließt Kanal ein), "text": Text (zum Beispiel eine Nachricht von einem User), "pos_command": Index der "command" Nachricht ("-1" falls "command" nicht gefunden wird), "pos_arguments": Index der "arguments" Nachricht ("-1" falls "arguments" nicht gefunden wird), "pos_channel": Index der "channel" Nachricht ("-1" falls "channel" nicht gefunden wird),"pos_text": Index für "text" Nachricht ("-1" falls "text" nicht gefunden wird)
| irc | irc_message_parse | Parse eine IRC Nachricht | "message": IRC Nachricht, "server": Servername (optional) | "tags": Tags, "tag_xxx": Wert des Tags "xxx" ohne Escapezeichen (ein Schlüssel pro Tag), "message_without_tags": Nachrichten ohne Tags, "nick": Nick, "user": Benutzer, "host": Host, "command": Befehl, "channel": Kanal, "arguments": Argumente (schließt Kanal ein), "text": Text (zum Beispiel eine Nachricht von einem User), "param1" ... "paramN": geparste Befehlsparameter, "num_params": Anzahl geparste Befehlsparameter, "pos_command": Index der "command" Nachricht ("-1" falls "command" nicht gefunden wird), "pos_arguments": Index der "arguments" Nachricht ("-1" falls "arguments" nicht gefunden wird), "pos_channel": Index der "channel" Nachricht ("-1" falls "channel" nicht gefunden wird),"pos_text": Index für "text" Nachricht ("-1" falls "text" nicht gefunden wird)
| irc | irc_message_split | trennt eine IRC Nachricht (standardmäßig in 512 Bytes große Nachrichten) | "message": IRC Nachricht, "server": Servername (optional) | "msg1" ... "msgN": Nachrichten die versendet werden sollen (ohne abschließendes "\r\n"), "args1" ... "argsN": Argumente für Nachrichten, "count": Anzahl der Nachrichten
@@ -4,18 +4,26 @@
//
// tag::plugins_priority[]
. charset (15000)
. logger (14000)
. exec (13000)
. trigger (12000)
. spell (11000)
. alias (10000)
. buflist (9000)
. fifo (8000)
. charset (16000)
. logger (15000)
. exec (14000)
. trigger (13000)
. spell (12000)
. alias (11000)
. buflist (10000)
. fifo (9000)
. typing (8000)
. xfer (7000)
. irc (6000)
. relay (5000)
. guile, javascript, lua, perl, php, python, ruby, tcl (4000)
. guile (4070)
. javascript (4060)
. lua (4050)
. perl (4040)
. php (4030)
. python (4020)
. ruby (4010)
. tcl (4000)
. script (3000)
. fset (2000)
// end::plugins_priority[]
+47 -21
View File
@@ -6,7 +6,7 @@
// tag::url_options[]
[width="100%",cols="2,^1,7",options="header"]
|===
| Einstellung | Type ^(1)^ | Konstanten ^(2)^
| Einstellung | Type ^(1)^ | Konstanten ^(2)^
| verbose | long |
@@ -48,10 +48,6 @@
| address_scope | long |
| protocols | mask | http, https, ftp, ftps, scp, sftp, telnet, ldap, ldaps, dict, file, tftp, all, imap, imaps, pop3, pop3s, smtp, smtps, rtsp, rtmp, rtmpt, rtmpe, rtmpte, rtmps, rtmpts, gopher, smb, smbs
| redir_protocols | mask | http, https, ftp, ftps, scp, sftp, telnet, ldap, ldaps, dict, file, tftp, all, imap, imaps, pop3, pop3s, smtp, smtps, rtsp, rtmp, rtmpt, rtmpe, rtmpte, rtmps, rtmpts, gopher, smb, smbs
| noproxy | string |
| socks5_gssapi_nec | long |
@@ -82,15 +78,19 @@
| doh_url | string |
| protocols_str | string |
| redir_protocols_str | string |
| netrc | long | ignored, optional, required
| userpwd | string |
| proxyuserpwd | string |
| httpauth | mask | none, basic, digest, ntlm, any, anysafe, digest_ie, only, ntlm_wb, negotiate, gssapi, bearer
| httpauth | mask | none, basic, digest, ntlm, any, anysafe, digest_ie, only, ntlm_wb, negotiate, gssapi, bearer, aws_sigv4
| proxyauth | mask | none, basic, digest, ntlm, any, anysafe, digest_ie, only, ntlm_wb, negotiate, gssapi, bearer
| proxyauth | mask | none, basic, digest, ntlm, any, anysafe, digest_ie, only, ntlm_wb, negotiate, gssapi, bearer, aws_sigv4
| netrc_file | string |
@@ -108,6 +108,8 @@
| tlsauth_password | string |
| sasl_authzid | string |
| sasl_ir | long |
| xoauth2_bearer | string |
@@ -120,8 +122,6 @@
| followlocation | long |
| put | long |
| post | long |
| postfields | string |
@@ -144,7 +144,7 @@
| cookiejar | string |
| http_version | long | none, 1_0, 1_1, 2_0, 2, 2tls, 2_prior_knowledge
| http_version | long | none, 1_0, 1_1, 2_0, 2, 2tls, 2_prior_knowledge, 3
| cookiesession | long |
@@ -182,12 +182,20 @@
| request_target | string |
| http09_allowed | long |
| hsts | string |
| hsts_ctrl | mask | enable, readonlyfile
| mail_from | string |
| mail_rcpt | list |
| mail_auth | string |
| mail_rcpt_alllowfails | long |
| tftp_blksize | long |
| tftp_no_options | long |
@@ -206,8 +214,6 @@
| ftp_create_missing_dirs | long |
| ftp_response_timeout | long |
| ftpsslauth | long | default, ssl, tls
| ftp_account | string |
@@ -238,6 +244,8 @@
| rtsp_server_cseq | long |
| aws_sigv4 | string |
| crlf | long |
| range | string |
@@ -274,6 +282,8 @@
| upload_buffersize | long |
| mime_options | mask | formescape
| timeout | long |
| low_speed_limit | long |
@@ -298,6 +308,8 @@
| connecttimeout_ms | long |
| maxage_conn | long |
| maxconnects | long |
| use_ssl | long | none, try, control, all
@@ -322,6 +334,8 @@
| upkeep_interval_ms | long |
| maxlifetime_conn | long |
| sslcert | string |
| sslversion | long | default, tlsv1, sslv2, sslv3, tlsv1_0, tlsv1_1, tlsv1_2, tlsv1_3, max_default, max_none, max_tlsv1_0, max_tlsv1_1, max_tlsv1_2, max_tlsv1_3
@@ -330,10 +344,6 @@
| cainfo | string |
| random_file | string |
| egdsocket | string |
| ssl_verifyhost | long |
| ssl_cipher_list | string |
@@ -364,12 +374,10 @@
| gssapi_delegation | long | none, policy_flag, flag
| ssl_options | long | allow_beast, no_revoke, no_backends, ok, too_late, unknown_backend
| ssl_options | long | allow_beast, no_revoke, no_backends, ok, too_late, unknown_backend, no_partialchain, revoke_best_effort, native_ca, auto_client_cert
| ssl_enable_alpn | long |
| ssl_enable_npn | long |
| pinnedpublickey | string |
| ssl_verifystatus | long |
@@ -398,7 +406,7 @@
| proxy_ssl_cipher_list | list |
| proxy_ssl_options | long | allow_beast, no_revoke, no_backends, ok, too_late, unknown_backend
| proxy_ssl_options | long | allow_beast, no_revoke, no_backends, ok, too_late, unknown_backend, no_partialchain, revoke_best_effort, native_ca, auto_client_cert
| proxy_ssl_verifyhost | long |
@@ -414,6 +422,18 @@
| proxy_tls13_ciphers | list |
| proxy_issuercert | string |
| ssl_ec_curves | string |
| doh_ssl_verifyhost | long |
| doh_ssl_verifypeer | long |
| doh_ssl_verifystatus | long |
| ca_cache_timeout | long |
| ssh_auth_types | mask | none, policy_flag, flag
| ssh_public_keyfile | string |
@@ -426,11 +446,17 @@
| ssh_compression | long |
| ssh_host_public_key_sha256 | string |
| telnetoptions | list |
| ws_options | mask | binary, close, cont, offset, ping, pong, raw_mode, text
| new_file_perms | long |
| new_directory_perms | long |
| telnetoptions | list |
| quick_exit | long |
|===
// end::url_options[]
+274 -59
View File
@@ -17,10 +17,11 @@ target: Servername
* `+allchan+`: führt einen Befehl aus der an alle Kanäle gesendet wird, die mit einem Server verbunden sind
----
/allchan [-current] [-exclude=<channel>[,<channel>...]] <command>
[-current] -include=<channel>[,<channel>...] <command>
/allchan [-current] [-parted] [-exclude=<channel>[,<channel>...]] <command>
[-current] [-parted] -include=<channel>[,<channel>...] <command>
-current: führt einen Befehl aus der an alle Kanäle des aktuellen Servers gesendet wird
-parted: wird nur bei vom Server getrennten Kanälen ausgeführt
-exclude: dient zum Ausschluss ausgewählter Kanäle (Platzhalter "*" kann verwendet werden)
-include: findet Anwendung für ausgewählte Kanäle (Platzhalter "*" kann verwendet werden)\n
command: Befehl der ausgeführt werden soll
@@ -41,6 +42,8 @@ Beispiele:
/allchan -exclude=#weechat,#linux* Hallo Welt
schickt den Text 'Hallo' an alle Kanäle die mit #linux beginnen:
/allchan -include=#linux* Hallo
schließt alle, vom Server getrennte, Kanäle.:
/allchan -parted /close
----
[[command_irc_allpv]]
@@ -100,6 +103,56 @@ Beispiele:
/allserv /whois $nick
----
[[command_irc_auth]]
* `+auth+`: authentifizieren mit SASL
----
/auth [<username> <password>]
username: SASL Username (Inhalt ist evaluiert, siehe /help eval; Serveroptionen werden mit ${irc_server.xxx} evaluiert und ${server} wird durch den Servernamen ersetzt)
password: SASL-Passwort oder Pfad zur Datei mit privatem Schlüssel (Inhalt ist evaluiert, siehe /help eval; Serveroptionen werden mit ${irc_server.xxx} evaluiert und ${server} wird durch den Servernamen ersetzt)
Wenn Benutzername und Kennwort nicht angegeben wurden, werden die Werte aus den Serveroptionen "sasl_username" und "sasl_password" (oder "sasl_key") verwendet.
Beispiele:
authentifizieren Sie sich mit dem im Server definierten Benutzernamen/Passwort:
/auth
authentifizieren Sie sich mit einem anderen Benutzer:
/auth user2 password2
authentifizieren als anderer Benutzer mit Mechanismus ecdsa-nist256p-challenge:
/auth user2 ${weechat_config_dir}/ecdsa2.pem
----
[[command_irc_autojoin]]
* `+autojoin+`: Konfigurieren der Serveroption "autojoin"
----
/autojoin add [<channel1> [<channel2>...]]
addraw <channel1>[,<channel2>...] [<key1>[,<key2>...]]
del [<channel1> [<channel2>...]]
apply
sort
add: Hinzufügen des aktuellen Kanals oder einer Liste von Kanälen (mit optionalen Schlüsseln) zur autojoin-Option; Wenn Sie sich in dem Kanal befinden und der Schlüssel nicht übergeben wird, wird der Schlüssel im Kanal gelesen
addraw: das IRC Roh-Format wird genutzt (wie beim /join Befehl): alle Kanäle werden durch Kommata voneinander getrennt und optional werden die Schlüssel durch Kommata separiert
del: Löschen des aktuellen Kanals oder eine Liste von Kanälen aus der autoJoin-Option
channel: Kanalname
key: Schlüssel für den Kanal
apply: fügt die aktuell besuchten Kanäle in der autojoin-Option hinzu
sort: sortiert die Kanäle alphabetisch in der autojoin Option
Beispiele:
/autojoin add
/autojoin add #test
/autojoin add #chan1 #chan2
/allchan /autojoin add
/autojoin addraw #chan1,#chan2,#chan3 key1,key2
/autojoin del
/autojoin del #chan1
/autojoin apply
/autojoin sort
----
[[command_irc_ban]]
* `+ban+`: Nicknamen oder Hosts sperren/verbannen
@@ -129,13 +182,19 @@ Ohne Angabe von Argumenten wird die Ban-Liste für den aktuellen Kanal angezeigt
Ohne Angaben von Argumenten werden "ls" und "list" gesendet.
Fähigkeiten die von WeeChat unterstützt werden: account-notify, away-notify, cap-notify, chghost, extended-join, invite-notify, multi-prefix, server-time, userhost-in-names.
Fähigkeiten die von WeeChat unterstützt werden: account-notify, away-notify, cap-notify, chghost, extended-join, invite-notify, message-tags, multi-prefix, server-time, setname, userhost-in-names..
Fähigkeiten die standardmäßig genutzt werden sollen, können mit der Option irc.server_default.capabilities gesetzt werden (oder individuell für jeden Server mit der Option irc.server.xxx.capabilities).
Fähigkeiten die standardmäßig genutzt werden sollen, können mit der Option irc.server_default.capabilities gesetzt werden (oder individuell für jeden Server mit der Option irc.server.xxx.capabilities).
Beispiele:
/cap
/cap req multi-prefix away-notify
zeigt unterstützte und aktivierte Funktionen an:
/cap
Fähigkeiten multi-prefix und away-notify anfordern:
/cap req multi-prefix away-notify
Fähigkeit extended-join anfordern, Fähigkeit multi-prefix entfernen:
/cap req extended-join -multi-prefix
Fähigkeit away-notify entfernen
/cap req -away-notify
----
[[command_irc_connect]]
@@ -808,6 +867,15 @@ mask: nur zutreffende Services auflisten
type: nur Services von diesem Typ auflisten
----
[[command_irc_setname]]
* `+setname+`: setze Realnamen
----
/setname <Realname>
realname: neuer Realname
----
[[command_irc_squery]]
* `+squery+`: Nachricht an einen Service senden
@@ -1036,6 +1104,19 @@ Beispiele:
// end::alias_commands[]
// tag::weechat_commands[]
[[command_weechat_allbuf]]
* `+allbuf+`: führt einen Befehl in allen Buffern aus
----
/allbuf <Befehl>
command: Befehl der ausgeführt werden soll (oderText welcher in den Buffer gesendet werden soll, sofern dem Befehl kein '/' vorangestellt ist)
Beispiele:
setze den ungelesen Marker für alle Buffer:
/allbuf /buffer set unread
----
[[command_weechat_away]]
* `+away+`: Abwesenheitsstatus setzen oder entfernen
@@ -1112,6 +1193,8 @@ Beispiele:
unmerge [<number>|-all]
hide [<number>|<name>|-all [<number>|<name>...]]
unhide [<number>|<name>|-all [<number>|<name>...]]
switch [-previous]
zoom
renumber [<number1> [<number2> [<start>]]]
close [<n1>[-<n2>]|<name>...]
notify [<level>]
@@ -1120,6 +1203,7 @@ Beispiele:
delvar <name>
set <property> [<value>]
get <property>
jump smart|last_displayed|prev_visited|next_visited
<number>|-|+|<name>
list: alle geöffneten Buffer werden aufgelistet (ohne Angabe von Argumente wird diese Liste standardmäßig ausgegeben)
@@ -1133,6 +1217,8 @@ Beispiele:
unmerge: trennt Buffer wieder voneinander, falls zwei Buffer die selbe Nummer teilen
hide: versteckt einen Buffer
unhide: macht Buffer wieder sichtbar
switch: wechselt zum nächsten zusammengeführten Buffer (oder zum vorherigen Buffer mit "-previous")
zoom: zoomen eines zusammengeführten Buffers
renumber: Buffer werden umnummeriert (Einstellung weechat.look.buffer_auto_renumber muss deaktiviert sein)
close: Buffer schließen (Nummer oder Bereich ist optional)
notify: Benachrichtigungsstufe für den aktuellen Buffer anzeigen oder einstellen. Folgende Möglichkeiten bestimmen den Grad der Benachrichtigung und ob der Buffer in der Hotlist angezeigt wird:
@@ -1146,6 +1232,11 @@ renumber: Buffer werden umnummeriert (Einstellung weechat.look.buffer_auto_renum
delvar: löscht eine lokale Variable des aktuellen Buffers
set: setzt eine Eigenschaft für den aktuellen Buffer
get: zeigt eine Eigenschaft für den aktuellen Buffer an
jump: springt zu einem anderen Buffer:
smart: nächster Buffer mit Aktivität
last_displayed: letzter angezeigter Buffer (vor dem letzten Sprung zu einem Buffer)
prev_visited: zuvor besuchter Buffer
next_visited: zum nächsten besuchten Buffer springen
number: wechselt von einem Buffer zu einem anderen, mögliche Optionen:
'+': relativer Sprung um 'n'-Buffer
'-': relativer Sprung, um 'n'-Buffer
@@ -1270,31 +1361,40 @@ Beispiele:
----
/debug list
set <plugin> <level>
dump [<plugin>]
buffer|color|infolists|memory|tags|term|windows
dump|hooks [<plugin>]
buffer|certs|color|dirs|infolists|libs|memory|tags|term|windows
mouse|cursor [verbose]
hdata [free]
time <command>
unicode <string>
list: zeigt alle Erweiterungen mit Debuglevel an
set: setzt den Level der Protokollierung für eine Erweiterung
plugin: Name der Erweiterung ("core" für den WeeChat Kern)
level: Debuglevel der Erweiterung (0 = deaktiviert Debug)
dump: Speicherabbild in die WeeChat Protokolldatei schreiben (wie bei einem Programmabsturz)
hooks: zeigt die aktiven Hooks an (bei einer Erweiterung: detaillierte Informationen über Hooks werden angezeigt, die von der Erweiterung erstellt wurden)
buffer: speichert den Bufferinhalt als hexadezimale Ausgabe in die Protokolldatei
certs: gibt die Anzahl geladener vertrauenswürdiger Zertifizierungsstellen aus
color: zeigt Informationen über die aktuellen Farbpaarungen an
cursor: schaltet den debug-Modus für den Cursor-Modus ein/aus
dirs: Verzeichnisse werden angezeigt
hdata: zeigt Informationen zu hdata an (mittels free werden alle hdata Informationen aus dem Speicher entfernt)
hooks: zeigt die aktiven Hooks an
infolists: zeigt Information über die Infolists an
libs: zeigt an welche externen Bibliotheken verwendet werden
memory: gibt Informationen über den genutzten Speicher aus
mouse: schaltet den debug-Modus für den Maus-Modus ein/aus
tags: zeigt für jede einzelne Zeile die dazugehörigen Schlagwörter an
term: gibt Informationen über das Terminal und verfügbare Farben aus
term: zeigt Informationen über das Terminal an
windows: zeigt die Fensterstruktur an
time: misst die Zeit um einen Befehl auszuführen oder um einen Text in den aktuellen Buffer zu senden
unicode: Zeigt Informationen über Unicode-Zeichen in Zeichenkette an (evaluiert, siehe /help eval)
Beispiele:
/debug set irc 1
/debug mouse verbose
/debug time /filter toggle
/debug unicode ${chars:${\u26C0}-${\u26CF}}
----
[[command_weechat_eval]]
@@ -1341,28 +1441,36 @@ Um einen Vergleich zwischen zwei Zeichenketten zu erzwingen, müssen die Ausdrü
"50" > "100" ==> 1
Einige Variablen werden im Ausdruck mittels der Formatierung ${variable} ersetzt. Mögliche Variablen sind, nach Reihenfolge ihrer Priorität:
1. die Zeichenfolge selbst ohne Auswertung (Format: "raw:xxx")\n
2. eine evaluierte Teilzeichenkette (Format: "eval:xxx")
3. eine evaluierte Bedingung (Format: "eval_cond:xxx")
4. eine Zeichenkette mit Escapesequenzen (Format: "esc:xxx" oder "\xxx")
5. Zeichen, die in einer Zeichenkette nicht dargestellt werden sollen (Format: "hide:Zeichen,Zeichenkette")
6. eine Zeichenkette mit einer maximalen Anzahl an Zeichen (Format: "cut:max,suffix,string" oder "cut:+max,suffix,string")
- die Zeichenfolge selbst ohne Auswertung (Format: "raw:xxx")
- eine benutzerdefinierte Variable (Format: "name")
- eine evaluierte Teilzeichenkette (Format: "eval:xxx")
- eine evaluierte Bedingung (Format: "eval_cond:xxx")
- eine Zeichenkette mit Escapesequenzen (Format: "esc:xxx" oder "\xxx")
- eine Zeichenfolge mit einer Reihe von Zeichen (Format: "chars:xxx" oder "chars:c1-c2" wobei "xxx" von folgenden Typ sein muss: "digit", "xdigit", "lower", "upper", "alpha", "alnum")
- eine Zeichenfolge, die in Kleinbuchstaben umgewandelt wird (Format: "lower:xxx")
- eine Zeichenfolge, die in Großbuchstaben umgewandelt wird (Format: "upper:xxx")
- Zeichen, die in einer Zeichenkette nicht dargestellt werden sollen (Format: "hide:Zeichen,Zeichenkette")
- eine Zeichenkette mit einer maximalen Anzahl an Zeichen (Format: "cut:max,suffix,string" oder "cut:+max,suffix,string")
oder maximale Anzahl an Zeichen die auf dem Bildschirm angezeigt werden sollen (Format: "cutscr:Max,Suffix,Zeichenkette oder "cutscr:+Max,Suffix,Zeichenkette")
7. eine Zeichenkette umkehren (Format: "rev:xxx" oder "revscr:xxx")
8. eine Zeichenkette wiederholen (Format: "repeat:Anzahl,Zeichenkette")
9. Länge einer Zeichenkette (Format: "length:xxx" oder "lengthscr:xxx")
10. eine Farbe (Format: "color:xxx", siehe "Anleitung für API Erweiterung", Funktion "color")
11. zum modifizieren (Format: "modifier:name,data,string")
12. eine Info (Format: "Info:Name,Argumente", Argumente sind optional)
13. eine Basis 16/32/64 kodierte / dekodierte Zeichenfolge (Format: "base_encode:base,xxx" oder "base_decode:base,xxx")
14. aktuelles Datum/Uhrzeit (Format: "date" oder "date:format")
15. eine Umgebungsvariable (Format: "env:XXX")
16. ein Dreifachoperand (Format: "if:Bedingung?Wert_falls_wahr:Wert_falls_unwahr")
17. Ergebnis eines Ausdrucks mit Klammern und Operatoren + - * / // % ** (Format: "calc:xxx")
18. eine übersetzte Zeichenkette (Format: "translate:xxx")
19. eine Option (Format: "file.section.option")
20. eine lokale Variable eines Buffers
21. ein(e) hdata - Name/Variable (der Wert wird automatisch in eine Zeichenkette konvertiert), standardmäßig wird für "window" und "buffer" das aktuelle Fenster/Buffer verwendet.
- eine Zeichenkette umkehren (Format: "rev:xxx" oder "revscr:xxx")
- eine Zeichenkette wiederholen (Format: "repeat:Anzahl,Zeichenkette")
- Länge einer Zeichenkette (Format: "length:xxx" oder "lengthscr:xxx")
- Aufteilen einer Zeichenkette (Format: "split:Anzahl,Trennzeichen,Flags,xxx")
- Aufteilen von Shell-Argumenten (Format: "split_shell:Anzahl,xxx")
- eine Farbe (Format: "color:xxx", siehe "Anleitung für API Erweiterung", Funktion "color")
- zum modifizieren (Format: "modifier:name,data,string")
- eine Info (Format: "Info:Name,Argumente", Argumente sind optional)
- eine Basis 16/32/64 kodierte / dekodierte Zeichenfolge (Format: "base_encode:base,xxx" oder "base_decode:base,xxx")
- aktuelles Datum/Uhrzeit (Format: "date" oder "date:format")
- eine Umgebungsvariable (Format: "env:XXX")
- ein Dreifachoperand (Format: "if:Bedingung?Wert_falls_wahr:Wert_falls_unwahr")
- Ergebnis eines Ausdrucks mit Klammern und Operatoren + - * / // % ** (Format: "calc:xxx")
- eine zufällige ganze Zahl (Format: "random:min,max")
- eine übersetzte Zeichenkette (Format: "translate:xxx")
- eine Benutzervariable definieren (Format: "define:Name,Wert")
- eine Option (Format: "file.section.option")
- eine lokale Variable eines Buffers
- ein(e) hdata - Name/Variable (der Wert wird automatisch in eine Zeichenkette konvertiert), standardmäßig wird für "window" und "buffer" das aktuelle Fenster/Buffer verwendet.
Das Format für hdata kann wie folgt aufgebaut sein:
hdata.var1.var2...: startet mit hdata (der Pointer muss bekannt sein) und fragt eine Variable nach der anderen ab (weitere hdata können folgen)
hdata[list].var1.var2...: startet hdata mittels einer Liste, zum Beispiel:
@@ -1385,6 +1493,10 @@ Beispiele (einfache Zeichenketten):
/eval -n ${window.buffer.full_name} ==> core.weechat
/eval -n ${window.buffer.number} ==> 1
/eval -n ${\t} ==> <tab>
/eval -n ${chars:digit} ==> 0123456789
/eval -n ${chars:J-T} ==> JKLMNOPQRST
/eval -n ${lower:TEST} ==> test
/eval -n ${upper:test} ==> TEST
/eval -n ${hide:-,${relay.network.password}} ==> --------
/eval -n ${cut:3,+,test} ==> tes+
/eval -n ${cut:+3,+,test} ==> te+
@@ -1393,10 +1505,20 @@ Beispiele (einfache Zeichenketten):
/eval -n ${rev:Hello} ==> olleH
/eval -n ${repeat:5,-} ==> -----
/eval -n ${length:test} ==> 4
/eval -n ${split:1,,,abc,def,ghi} ==> abc
/eval -n ${split:-1,,,abc,def,ghi} ==> ghi
/eval -n ${split:count,,,abc,def,ghi} ==> 3
/eval -n ${split:random,,,abc,def,ghi} ==> def
/eval -n ${split_shell:1,"arg 1" arg2} ==> arg 1
/eval -n ${split_shell:-1,"arg 1" arg2} ==> arg2
/eval -n ${split_shell:count,"arg 1" arg2} ==> 2
/eval -n ${split_shell:random,"arg 1" arg2} ==> arg2
/eval -n ${calc:(5+2)*3} ==> 21
/eval -n ${random:0,10} ==> 3
/eval -n ${base_encode:64,test} ==> dGVzdA==
/eval -n ${base_decode:64,dGVzdA==} ==> test
/eval -n ${translate:Plugin} ==> Erweiterung
/eval -n ${define:len,${calc:5+3}}${len}x${len} ==> 8x8
Beispiele (Bedingungen):
/eval -n -c ${window.buffer.number} > 2 ==> 0
@@ -1420,7 +1542,7 @@ Beispiele (Bedingungen):
add|addreplace <name> <buffer>[,<buffer>...] <tags> <regex>
rename <name> <new_name>
recreate <name>
del <name>|-all
del <name>|-all [<name>...]
list: alle Filter auflisten
enable: Filter wird aktiviert (Filter werden standardmäßig aktiviert)
@@ -1504,6 +1626,22 @@ clear: löscht den Befehlsverlauf
value: Anzahl der gewünschten Einträgen im Befehlsverlauf anzeigen
----
[[command_weechat_hotlist]]
* `+hotlist+`: Hotlist verwalten
----
/hotlist add [low|message|private|highlight]
clear [<level>]
remove
restore [-all]
add: füge den aktuellen Buffer zur Hotlist (Standardlevel: "low", Bedingungen die in Option weechat.look.hotlist_add_conditions definiert sind, werden NICHT überprüft)
clear: lösche Hotlist
level: "lowest" um die niedrigste Benachrichtigungsstufe in der Hotlist zu löschen, "highest" um die höchste Benachrichtigungsstufe in der Hotlist zu löschen, oder mit einer Levelmaske: Integer aus einer Kombination von 1=join/part, 2=message, 4=private, 8=highlight)
remove: entferne aktuellen Buffer von Hotlist
restore: stellt die letzte Hotlist wieder her, die im aktuellen Buffer entfernt wurde (oder alle Buffer mit -all)
----
[[command_weechat_input]]
* `+input+`: Funktionen für die Befehlszeile
@@ -1526,6 +1664,7 @@ Auflistung der möglichen Aktionen:
delete_previous_char: entfernt vorheriges Zeichen
delete_next_char: entfernt nächstes Zeichen
delete_previous_word: entfernt vorheriges Wort
delete_previous_word_whitespace: vorheriges Wort löschen (bis zum Leerzeichen)
delete_next_word: entfernt nächstes Wort
delete_beginning_of_line: entfernt alle Zeichen ab Zeilenanfang bis zum Cursor
delete_end_of_line: entfernt alle Zeichen ab Cursor bis zum Ende der Zeile
@@ -1544,20 +1683,10 @@ Auflistung der möglichen Aktionen:
history_next: ruft nächsten Befehl oder Nachricht aus dem Befehlsspeicher auf (im Such-Modus: vorwärts suchen)
history_global_previous: ruft vorherigen Befehl/Nachricht aus dem globalen Befehlsspeicher auf (für alle Buffer)
history_global_next: ruft nächsten Befehl/Nachricht aus dem globalen Befehlsspeicher auf (für alle Buffer)
jump_smart: wechselt zum nächsten Buffer mit Aktivität (nach Priorität: highlight, Nachricht, …)
jump_last_buffer_displayed: wechselt zum jeweils zuletzt angezeigten Buffer
jump_previously_visited_buffer: springt zum letzten besuchten Buffer
jump_next_visited_buffer: springt zum nächsten besuchten Buffer
hotlist_clear: löscht Hotlist (Aktivitätsanzeige für die Buffer), (optionales Argument: "lowest" löscht den niedrigsten Eintrag der Hotlist, "highest" löscht den höchsten Eintrag der Hotlist, oder eine integer Maske: eine Kombination aus 1=join/part, 2=Nachricht,4=privat,8=highlight)
grab_key: fängt eine Taste (optionales Argument: Verzögerung um eine Taste einzufangen. Standard sind 500 Millisekunden)
grab_key_command: zeigt den Tastencode (inklusive des eingebundenen Befehls) einer Tastenkombination an und fügt ihn in die Befehlszeile ein (optionales Argument: Verzögerung um eine Taste einzufangen. Standard sind 500 Millisekunden)
grab_mouse: fängt den Code einer Maus Aktivität
grab_mouse_area: fängt den Code einer Maus Aktivität mit entsprechendem Bereich
set_unread: setzt für alle Buffer die Markierung der ungelesen Nachrichten
set_unread_current_buffer: setzt nur für den aktuellen Buffer eine Markierung der ungelesen Nachrichten
switch_active_buffer: springt zum nächsten zusammengefügten Buffer
switch_active_buffer_previous: springt zum vorherigen zusammengefügten Buffer
zoom_merged_buffer: zoomt in zusammengefügte Buffer
insert: fügt einen Text in die Eingabezeile ein (Escapesequenzen sind möglich, siehe /help print)
send: schickt Text an einen Buffer
paste_start: Einfügen wird gestartet (bracketed paste mode)
@@ -1566,6 +1695,49 @@ Auflistung der möglichen Aktionen:
Dieser Befehl wird sinnvollerweise mittels Tastenbelegungen oder Erweiterungen genutzt.
----
[[command_weechat_item]]
* `+item+`: Verwalten von benutzerdefinierten Bar-Items
----
/item list
add|addreplace <name> "<conditions>" "<content>"
rename <name> <new_name>
refresh <name> [<name>...]
recreate <name>
del <name>|-all
list: zeigt eine Liste aller benutzerdefinierten Bar-Items
add: fügt ein benutzerdefiniertes Bar-Item hinzu
addreplace: erzeugt neues Bar-Item oder ersetzt ein schon existierendes Bar-Item
name: benutzerdefinierter Name des Bar-Items
conditions: evaluierte Bedingungen um ein Bar-Item anzuzeigen (zum Beispiel um ein Bar-Item nur in einem bestimmten Buffer anzuzeigen)
content: Inhalt (evaluiert, siehe /help eval)
rename: Umbenennen eines benutzerdefinierten Bar-Items
refresh: aktualisiert den Inhalt des Items in allen Bars, in denen das Item angezeigt wird; jedes Item kann aktualisiert werden: standard/Erweiterung/benutzerdefiniertes Bar-Item
recreate: kopiert den Befehl in die Eingabezeile um das benutzerdefinierte Bar-Item zu editieren
del: entfernt ein benutzerdefiniertes Bar-Item
-all: entfernt alle benutzerdefinierten Bar-Items
Beispiele:
Item welches die Terminalgröße anzeigt wird hinzugefügt, aber nur in Buffern mit Nummer angezeigt = 1:
/item add terminfo "${buffer.number} == 1" "term:${info:term_width}x${info:term_height}"
fügt ein Item hinzu, welches Informationen über den Buffer anzeigt:
/item add bufinfo "" "${buffer.number}:${buffer.name}${if:${buffer.zoomed}?(Z)}"
fügt ein Item mit Datum/Uhrzeit hinzu, dabei wird das Format "Dec 25, 12:34 +0100" verwendet, aktualisiert, jede Minute:
/item add datetime "" "${date:%b %d, %H:%M %z}"
/trigger add datetime_refresh timer "60000;60" "" "" "/item refresh datetime"
fügt ein Item mit der Anzahl der Zeilen in dem Buffer hinzu (sichtbar/total), jeweils aktualisiertwenn eine neue Zeile dargestellt wird oder wenn sich der Status der gefilterten Zeilen geändert hat:
/item add lines_count "" "${calc:${buffer.lines.lines_count}-${buffer.lines.lines_hidden}}/${buffer.lines.lines_count} lines"
/trigger add lines_count_refresh_print print "" "" "" "/item refresh lines_count"
/trigger add lines_count_refresh_signal signal "window_switch;buffer_switch;buffer_lines_hidden;filters_*" "" "" "/item refresh lines_count"
erzwingt die Aktualisierung des Items "lines_count":
/item refresh lines_count
erstellt das Item "lines_count", mit anderen Bedingungen oder Inhalten, neu:
/item recreate lines_count
entfernt das Item "lines_count":
/item del lines_count
----
[[command_weechat_key]]
* `+key+`: Einer Taste einen Befehl zuordnen oder entfernen
@@ -1644,6 +1816,8 @@ windows: erstellt bzw. verwendet nur Fenster (Buffer welche im jeweiligen Fenste
Wird der Befehl ohne Argumente aufgerufen, werden die erstellten Layout dargestellt.
Das aktuelle Layout kann beim Ausführen des /quit Befehls mit der Option "weechat.look.save_layout_on_exit" gesichert werden.
Hinweis: Das Layout merkt sich nur Fenstereinteilungen und die Positionsnummern von Buffern. Layout öffnet keine Buffer. Das bedeutet zum Beispiel, dass Sie IRC-Kanäle immer noch automatisch betreten müssen, um die Buffer zu öffnen. Das gespeicherte Layout wird erst verwendet, wenn die Buffer geöffnet sind.
----
[[command_weechat_mouse]]
@@ -1693,21 +1867,26 @@ Beispiele:
* `+plugin+`: Erweiterungen verwalten (auflisten/installieren/beenden)
----
/plugin list|listfull [<name>]
/plugin list [-o|-ol|-i|-il|<name>]
listfull [<name>]
load <filename> [<arguments>]
autoload [<arguments>]
reload [<name>|* [<arguments>]]
unload [<name>]
list: installierte Erweiterungen werden aufgelistet
listfull: detaillierte Auflistung aller installierten Erweiterungen
load: installiert eine Erweiterung
-o: sende Liste der geladenen Erweiterungen an den Buffer (Ausgabe in Englisch)
-ol: sende Liste der geladenen Erweiterungen an den Buffer (Übersetzte Ausgabe)
-i: Liste der geladenen Erweiterungen in die Befehlszeile kopieren (zum Senden an den Buffer) (Ausgabe in Englisch)
-il: Liste der geladenen Erweiterungen in die Befehlszeile kopieren (zum Senden an den Buffer) (Übersetzte Ausgabe)
name: Name einer Erweiterung
listfull: geladene Erweiterungen auflisten (ausführlich)
load: Laden einer Erweiterung
filename: Erweiterung (Dateiname) welche installiert werden soll
arguments: Argumente die der Erweiterung beim Installieren übergeben werden sollen
autoload: installiert automatisch alle Erweiterungen aus dem System- oder Benutzerverzeichnis
reload: startet eine Erweiterung erneut (falls kein Name angegeben wird, werden alle Erweiterungen beendet und neu gestartet)
unload: beendet eine oder alle Erweiterungen (wird kein Name angegeben dann werden alle Erweiterung beendet)
filename: Erweiterung (Datei) welche installiert werden soll
name: Name einer Erweiterung
arguments: Argumente die der Erweiterung beim installieren übergeben werden sollen
Ohne Angabe eines Arguments werden alle installierten Erweiterungen angezeigt.
----
@@ -1935,6 +2114,32 @@ Beispiele:
/set env ABC ""
----
[[command_weechat_toggle]]
* `+toggle+`: den Wert einer Konfigurationsoption umschalten
----
/toggle <option> [<value> [<value>...]]
option: Name einer Option
value: mögliche Werte für die Option (Werte werden wie bei Shell-Befehlsargumente aufgeteilt: Anführungszeichen können verwendet werden, um Leerzeichen am Anfang/Ende von Werten zu nutzen)
Verhalten:
- nur eine Option vom Typ Boolean oder String kann ohne Wert umgeschaltet werden:
- boolean: zwischen Ein/Aus Status umschalten, entsprechend dem aktuellen Wert
- string: Umschalten zwischen leerem String und Standardwert (funktioniert nur, wenn für die Option ein leerer String erlaubt ist)
- mit einem vorgegeben einzelnen Wert, zwischen diesem Wert und dem Standardwert der Option umschalten
- sind mehrere Werte angegeben, schalten Sie zwischen diesen Werten um: Der verwendete Wert ist der, der dem aktuellen Wert der Option folgt; wenn der aktuelle Wert der Option nicht in der Liste enthalten ist, wird der erste Wert aus der Liste verwendet
- der Sonderwert "null" kann genutzt werden, jedoch nur als erster Wert in der Liste und ohne Anführungszeichen.
Beispiele:
die Uhrzeit im Chat-Bereich umschalten (die Ausgabe des neuen Wertes wird unterdrückt):
/mute /toggle weechat.look.buffer_time_format
Zeitformat im Chat-Bereich ändern (mit Sekunden, ohne Sekunden, deaktiviert):
/toggle weechat.look.buffer_time_format "%H:%M:%S" "%H:%M" ""
den automatischen Beitritt des #weechat-Kanals auf dem libera-Server umschalten:
/toggle irc.server.libera.autojoin null #weechat
----
[[command_weechat_unset]]
* `+unset+`: Konfigurationsparameter freigeben/zurücksetzen
@@ -1955,20 +2160,23 @@ Beispiele:
----
[[command_weechat_upgrade]]
* `+upgrade+`: WeeChat Binärdatei neu laden, ohne die Verbindung zum Server zu trennen
* `+upgrade+`: Speichern der WeeChat-Sitzung und laden der WeeChat-Binärdatei, ohne die Verbindung zu Servern zu trennen
----
/upgrade [-yes] [<path_to_binary>|-quit]
/upgrade [-yes] [<path_to_binary>|-save|-quit]
-yes: wird benötigt, sobald Option "weechat.look.confirm_upgrade" aktiviert ist
path_to_binary: Pfad zu einer ausführbaren WeeChat Binärdatei (Standardeinstellung ist die aktuell ausführbare Datei)
-dummy: ohne Funktion (dient lediglich dazu, um nicht versehentlich die "-quit" Funktion auszuführen)
-save: speichert nur die aktuelle Sitzung, WeeChat wird nicht beendet oder neu gestartet. DieKonfigurationsdateien werden hierbei nicht gespeichert (falls dies gewünscht wird, nutze vorher /save)
-quit: trennt *ALLE* Verbindungen, speichert die aktuelle Sitzung und beendet WeeChat, um den aktuellen Zustand später wiederherstellen (siehe unten)
Dieser Befehl führt ein Upgrade von WeeChat durch und startet die laufende Sitzung neu. Bevor dieser Befehl ausgeführt wird, sollte eine neue Version von WeeChat entweder vorab kompiliert, oder mit einem Paketmanager installiert worden sein.
Hinweis: SSL Verbindungen werden während eines Upgrades unterbrochen, da diese Verbindungen zur Zeit nicht mit GnuTLS gehalten werden können. Nach einem erfolgten Upgrade findet eine automatische Verbindung zu diesen Servern statt.
Wichtig: Die Verwendung der Option -save kann gefährlich sein. Für ein Standard-Upgrade oder einen Neustart wird empfohlen, nur den /upgrade (oder mit -quit) Befehl zu nutzen.Mit der Option -save kann eine Sitzung regelmäßig gespeichert und dann wiederhergestellt werden,falls Weechat abnormal beendet wird (Stromausfall, Absturz etc.)
Der Upgrade Vorgang besteht aus vier Schritten:
1. Sicherung der Sitzung, in Dateien für Core und Erweiterungen (buffers, history, ..)
2. alle Erweiterungen werden ausgeschaltet (Konfigurationen *.conf werden gesichert)
@@ -1981,9 +2189,13 @@ Nutzt man die "-quit" Funktion ist die Abfolge geringfügig anders:
3. alle Erweiterungen werden ausgeschaltet
4. die WeeChat Konfiguration wird gesichert
5. WeeChat wird beendet
Die Sitzung kann zu einem späteren Zeitpunkt wiederhergestellt werden: weechat --upgrade
WICHTIG: Die Sitzung muss mit exakt den selben Konfigurationsdateien wiederhergestellt werden (*.conf)
Es ist möglich, die WeeChat-Sitzung auf einem anderen Computer wiederherzustellen, wenn Sie den Inhalt der WeeChat Verzeichnisse kopieren (siehe / debug dirs).
Mit der Option "-save" ist der Ablauf:
1. Die Sitzung wird in Dateien (*.upgrade) gesichert, allerdings mit dem Status das IRC und Client Verbindungen unterbrochen sind (es findet aber keine Trennung der Verbindung statt!)
Durch nutzen von -quit oder -save kann eine Sitzung zu einem späteren Zeitpunkt wiederhergestellt werden:weechat --upgrade
WICHTIG: Die Sitzung muss mit exakt den selben Konfigurationsdateien wiederhergestellt werden (*.conf) und wenn möglich mit der selben Version von WeeChat (oder einer neueren Version).
Es ist möglich, die WeeChat-Sitzung auf einem anderen Computer wiederherzustellen, wenn Sie den Inhalt der WeeChat Verzeichnisse kopieren (siehe /debug dirs).
----
[[command_weechat_uptime]]
@@ -2167,6 +2379,7 @@ Die folgenden Variablen können in den obigen Optionen genutzt werden:
- ${format_hotlist}: die formatierte Hotlist (evaluiert aus Option buflist.format.hotlist)
- ${hotlist}: die Hotlist in der Rohform
- ${hotlist_priority}: "none", "low", "message", "private" oder "highlight"
- ${hotlist_priority_number}: -1 = keine, 0 = niedrig, 1 = Nachricht, 2 = private, 3 = Hervorhebungen
- ${format_lag}: die Verzögerung für einen IRC Server-Buffer, ist leer falls es keine Verzögerung gibt (evaluiert aus Option buflist.format.lag)
- ${format_tls_version}: Indikator der TLS Version für den Serverbuffer, Channels bleiben unberührt (evaluiert aus Option buflist.format.tls_version)
----
@@ -2531,7 +2744,7 @@ disable: die Protokollierung wird für den aktuellen Buffer deaktiviert (der Lev
Die Einstellungen "logger.level.*" und "logger.mask.*" können genutzt werden um den Level der Protokollierung festzulegen und um eine Maske für einen oder mehrere Buffer zu definieren.
Level der Protokollierung, die die IRC Erweiterung unterstützt:
1: Nachrichten von Usern (private und öffentliche Nachrichten) , notice (Server und Kanal)
1: Nachrichten von Usern (private und öffentliche Nachrichten), notice (Server und Kanal)
2: Wechsel von Nicks (/nick)
3: Nachrichten vom Server
4: join/part/quit Nachrichten
@@ -2733,7 +2946,7 @@ protocol.name: Protokoll und Name des Relay:
- Protokoll "weechat" (es wird kein Name verwendet)
Das "irc" Protokoll dient dazu eine Verbindung zu einem anderen IRC Client (oder zu einem zweiten WeeChat) herzustellen.
Das "weechat" Protokoll wird von einem Remote-Interface genutzt um eine Verbindung auf dem Port herzustellen. Siehe https://weechat.org/about/interfaces
Das "weechat" Protokoll wird von einem Remote-Interface genutzt um eine Verbindung auf dem Port herzustellen. Siehe https://weechat.org/about/interfaces/
Ohne Angabe von Argumenten werden alle Relay-Clients in einem neuen Buffer dargestellt.
@@ -2888,7 +3101,7 @@ Beispiele:
----
/spell enable|disable|toggle
listdict
setdict <dict>[,<dict>...]
setdict -|<dict>[,<dict>...]
deldict
addword [<dict>] <word>
@@ -2896,7 +3109,7 @@ Beispiele:
disable: Rechtschreibprüfung wird deaktiviert
toggle: Funktionalität der Rechtschreibprüfung umschalten
listdict: die, auf dem System, installierten Wörterbücher werden aufgelistet
setdict: Wörterbuch für den aktuellen Buffer einstellen (mehrere Wörterbücher müssen durch Kommata getrennt werden)
setdict: Wörterbuch für den aktuellen Buffer einstellen (mehrere Wörterbücher müssen durch Kommata getrennt werden (spezieller Wert "-" deaktiviert die Rechtschreibprüfung für den aktuellen Buffer))
deldict: Wörterbuch für den aktuellen Buffer entfernen
addword: fügt ein Wort in das persönliche Wörterbuch hinzu
@@ -3004,7 +3217,7 @@ post_action: Aktion welche nach der Abarbeitung des Triggers ausgeführt werden
restart: startet Trigger neu (Hook(s) werden neu erstellt)
show: zeigt detaillierte Informationen zu einem Trigger (inklusive einer kleinen Statistik)
del: entfernt einen Trigger
-all: führt eine Aktion aus, die alle Trigger beinhaltet
-all: führt eine Aktion aus, die alle Trigger betrifft
restore: stellt Trigger mit Standardwerten wieder her (funktioniert nur bei vorgegebenen Triggern)
default: stellt die standardmäßigen Trigger wieder her
monitor: öffnet den Trigger Monitor-Buffer, mit optionaler Filterfunktion:
@@ -3018,13 +3231,15 @@ Wenn ein Trigger-Callback aufgerufen wird, dann wird folgende Befehlskette ausge
5. Aktion welche nach der Abarbeitung des Triggers ausgeführt werden soll
Beispiele (die standardmäßig verfügbaren Trigger kann man sich mit "/trigger listdefault" anzeigen lassen):
fügt einer Nachricht die Textattribute *fett*, _unterstrichen_ und /kursiv/ hinzu:
fügt einer Nachricht die Textattribute *fett*, _unterstrichen_ und /kursiv/ hinzu (nur in User-Nachrichten):
/trigger add effects modifier weechat_print "${tg_tag_nick}" "==\*([^ ]+)\*==*${color:bold}${re:1}${color:-bold}*== ==_([^ ]+)_==_${color:underline}${re:1}${color:-underline}_== ==/([^ ]+)/==/${color:italic}${re:1}${color:-italic}/"
verbirgt die Nicklist auf kleineren Terminals:
/trigger add resize_small signal signal_sigwinch "${info:term_width} < 100" "" "/bar hide nicklist"
/trigger add resize_big signal signal_sigwinch "${info:term_width} >= 100" "" "/bar show nicklist"
speichert die Konfiguration jede Stunde ab:
/trigger add cfgsave timer 3600000;0;0 "" "" "/mute /save"
speichert, ohne Ausgabe von Text, eine Weechat-Sitzung um Mitternach (siehe /help upgrade):
/trigger add session_save signal day_changed "" "" "/mute /upgrade -save"
öffnet den Trigger Monitor und zeigt ausschließlich modifier und Trigger an, die mit "resize" im Namen beginnen:
/trigger monitor @modifier,resize*
----
File diff suppressed because it is too large Load Diff
+5 -2
View File
@@ -1,6 +1,6 @@
// tag::plugin_options[]
Um eine vollständige Dokumentation der Optionen zu erhalten, siehe
https://weechat.org/doc[WeeChat user's guide].
https://weechat.org/doc/[WeeChat user's guide].
Mittels der IRC Erweiterung kann man sich zu einen temporären Server verbinden lassen,
indem man eine URL verwendet:
@@ -86,6 +86,9 @@ $HOME/.config/weechat/tcl.conf::
$HOME/.config/weechat/trigger.conf::
Konfigurationsdatei für _trigger_ Erweiterung
$HOME/.config/weechat/typing.conf::
Konfigurationsdatei für _typing_ Erweiterung
$HOME/.config/weechat/xfer.conf::
Konfigurationsdatei für _xfer_ Erweiterung
@@ -97,7 +100,7 @@ $HOME/.local/share/weechat/weechat.log::
WeeChat wird programmiert von Sébastien Helleu und weiteren Beteiligten (eine vollständige Auflistung
findet man in der AUTHORS.adoc Datei).
Copyright (C) 2003-2021 {author}
Copyright (C) 2003-2023 {author}
WeeChat is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
+1 -1
View File
@@ -63,4 +63,4 @@ include::includes/man.de.adoc[tag=copyright]
== SUPPORT / FEHLER MELDEN
für Hilfe oder um einen Fehler zu melden: https://weechat.org/about/support
für Hilfe oder um einen Fehler zu melden: https://weechat.org/about/support/
+1 -1
View File
@@ -59,4 +59,4 @@ include::includes/man.de.adoc[tag=copyright]
== SUPPORT / FEHLER MELDEN
für Hilfe oder um einen Fehler zu melden: https://weechat.org/about/support
für Hilfe oder um einen Fehler zu melden: https://weechat.org/about/support/
+115 -171
View File
@@ -10,13 +10,10 @@
:docinfo1:
Diese Dokumentation bezieht sich auf die WeeChat Version ≥ 0.3.0. Es sollte aber
vorzugsweise immer die aktuell veröffentlichte Version von WeeChat genutzt werden.
Übersetzer:
* Juergen Descher <jhdl@gmx.net>, 2009
* Nils Görs <weechatter@arcor.de>, 2009-2018
* Nils Görs <weechatter@arcor.de>, 2009-2022
toc::[]
@@ -38,7 +35,8 @@ Aber diese Bedeutung trifft nicht auf WeeChat zu!)
WeeChat ist sehr speicherschonend und besticht durch innovative Funktionen.
Weitere Informationen findet man auf der WeeChat Seite: https://weechat.org/about/features
Weitere Infomationen über Weechat
https://weechat.org/about/features/[features page ^↗^,window=_blank].
[[compilation_install]]
== Kompilierung / Installation
@@ -46,17 +44,17 @@ Weitere Informationen findet man auf der WeeChat Seite: https://weechat.org/abou
[[gui]]
=== Ich habe gehört es gibt verschiedene GUIs für WeeChat. Wie kann ich diese kompilieren bzw. nutzen?
Es sind einige Remote-Oberflächen verfügbar. Diese findet man auf der Homepage:
https://weechat.org/about/interfaces
Einige Remote-GUIs sind verfügbar, siehe
https://weechat.org/about/interfaces/[remote interfaces page ^↗^,window=_blank].
[[compile_git]]
=== Ich kann WeeChat nach Cloning des git Repository nicht kompilieren - weshalb?
Es wird empfohlen link:weechat_user.de.html#compile_with_cmake[CMake] zum
Es wird empfohlen link:weechat_user.de.html#compile_with_cmake[CMake ^↗^,window=_blank] zum
kompilieren von WeeChat zu nutzen.
Falls Du WeeChat mit Hilfe der
link:weechat_user.de.html#compile_with_autotools[autotools] kompilieren solltest
link:weechat_user.de.html#compile_with_autotools[autotools ^↗^,window=_blank] kompilieren solltest
(dich also nicht für CMake entscheidest), stelle sicher, dass Du die neueste
Version von autoconf und automake besitzt.
@@ -69,7 +67,7 @@ das Repository klont und daraus Updates installiert.
[[compile_macos]]
=== Wie installiere ich WeeChat auf macOS?
Wir empfehlen, dass zur Installation https://brew.sh/[Homebrew] genutzt wird.
Wir empfehlen, dass zur Installation https://brew.sh/[Homebrew ^↗^,window=_blank] genutzt wird.
Hilfe erhält man mittels:
----
@@ -87,12 +85,12 @@ brew install weechat
Um Hilfe zu erhalten, nutze den `/help` Befehl.
Jeder Befehl besitzt einen Hilfstext, den man sich durch `/help Befehlsname` anzeigen lassen kann.
Die link:weechat_user.de.html#key_bindings[Standard Tastenbelegung] sowie
link:weechat_user.de.html#commands_and_options[Befehle und Optionen] sind im
link:weechat_user.de.html[Benutzerhandbuch] aufgeführt.
Die link:weechat_user.de.html#key_bindings[Standard Tastenbelegung ^↗^,window=_blank] sowie
link:weechat_user.de.html#commands_and_options[Befehle und Optionen ^↗^,window=_blank] sind im
link:weechat_user.de.html[Benutzerhandbuch ^↗^,window=_blank] aufgeführt.
Neuen Anwendern wird empfohlen,
die link:weechat_quickstart.de.html[Quickstart Anleitung] zu lesen.
die link:weechat_quickstart.de.html[Quickstart Anleitung ^↗^,window=_blank] zu lesen.
[[display]]
== Anzeige
@@ -125,7 +123,7 @@ Es ist deshalb wichtig, *ALLE* der folgenden Lösungsmöglichkeiten zu prüfen:
("`defutf8 on`" in der Datei ~/.screenrc oder `screen -U` beim Starten von
screen).
* Überprüfe die Option
link:weechat_user.de.html#option_weechat.look.eat_newline_glitch[_weechat.look.eat_newline_glitch_]
link:weechat_user.de.html#option_weechat.look.eat_newline_glitch[_weechat.look.eat_newline_glitch_ ^↗^,window=_blank]
(diese Option kann schwerwiegenden Darstellungsfehler verursachen, wenn man die Option aktiviert hat).
[NOTE]
@@ -141,10 +139,10 @@ Dieser Fehler sollte durch glibc 2.22 behoben sein (vielleicht ist diese Version
verwendeten Distributionen noch nicht verfügbar).
Es gibt folgende Übergangslösung, um das Problem mit der _wcwidth_ zu umgehen:
https://blog.nytsoi.net/2015/05/04/emoji-support-for-weechat
https://blog.nytsoi.net/2015/05/04/emoji-support-for-weechat[https://blog.nytsoi.net/2015/05/04/emoji-support-for-weechat ^↗^,window=_blank].
Siehe auch diese Fehlermeldung für weitere Informationen:
https://github.com/weechat/weechat/issues/79
Siehe https://github.com/weechat/weechat/issues/79[bug report ^↗^,window=_blank]
für weitere Informationen.
[[bars_background]]
=== Weshalb haben Bars, z.B. Titel und Status, keine Hintergrundfarbe bzw. diese endet direkt nach dem Text?
@@ -199,17 +197,10 @@ von einem oder mehreren Fenstern gleichzeitig angezeigt werden.
[[buffers_list]]
=== Wie kann ich eine Liste mit den Buffern z.B. auf der linken Seite anzeigen lassen?
Ab WeeChat ≥ 1.8 wird standardmäßig die link:weechat_user.de.html#buflist_plugin["buflist"-Erweiterung]
automatisch geladen und verwendet.
Diese Erweiterung, link:weechat_user.de.html#buflist[buflist ^↗^,window=_blank],
wird standardmäßig geladen und aktiviert.
Bei älteren Versionen kann stattdessen das Skript _buffers.pl_ installiert werden:
----
/script install buffers.pl
----
Um die maximale Breite der buflist-Spalte zu reduzieren (ersetze "buflist" durch "buffers", wenn das
Skript _buffers.pl_ genutzt wird), nutze folgende Option:
Um die maximale Breite der buflist-Spalte zu reduzieren, nutze folgende Option:
----
/set weechat.bar.buflist.size_max 15
@@ -229,26 +220,6 @@ kbd:[F1] oder kbd:[Ctrl+F1]) zum Hoch-Scrollen,
kbd:[F2] oder kbd:[Ctrl+F2] zum Runter-Scrollen,
kbd:[Alt+F1] und kbd:[Alt+F2] um an den Anfang bzw. an das Ende der Liste zu springen.
Wird das Skript _buffers.pl_ verwendet,
müssen die entsprechenden Tasten selbst definiert werden.
Sie sind dann vergleichbar mit den vorhanden Tasten für die Nicklist. +
Um zum Beispiel folgende Tasten nutzen zu können:
kbd:[F1], kbd:[F2] um zu scrollen,
oder kbd:[Alt+F1] und kbd:[Alt+F2] um an den Anfang bzw. das Ende zu springen,
finden folgende WeeChat-Befehle Anwendung:
----
/key bind meta-OP /bar scroll buffers * -100%
/key bind meta-OQ /bar scroll buffers * +100%
/key bind meta-meta-OP /bar scroll buffers * b
/key bind meta-meta-OQ /bar scroll buffers * e
----
[NOTE]
Die Tasten "meta-OP" und "meta-OQ" können im Hinblick auf das jeweils genutzte Terminal variieren.
Um die korrekten Tasten zu finden, sollte man mit kbd:[Alt+k] die gewünschte Tastenkombination einfangen.
Siehe auch: link:weechat_user.de.html#key_bindings_command_line[Benutzerhandbuch / Tastenbelegung].
[[customize_buflist]]
=== Wie kann ich die Darstellung der Bufferliste anpassen, z.B. die Farbe des aktiven Buffers?
@@ -271,8 +242,8 @@ Es kann auch eine beliebige numerische Farbe anstelle von "Rot" verwendet werden
Die Buflist-Erweiterung bietet viele Optionen, zum individualisieren. Bitte lesen Sie dazu die Hilfe von jeder Option.
Es gibt auch eine Wiki-Seite mit Beispielen, wie eine erweiterte Konfiguration aussehen kann:
https://github.com/weechat/weechat/wiki/buflist
Es gibt zusätzlich die https://github.com/weechat/weechat/wiki/buflist[wiki page ^↗^,window=_blank]
mit Beispielen für die erweiterte buflist Konfiguration.
[[customize_prefix]]
=== Wie kann ich die Länge eines Nicknamens begrenzen oder die Ausrichtung des Nicks im Chatbereich entfernen?
@@ -318,8 +289,8 @@ Diese Farben können mit den Optionen __weechat.color.status_data_*__
Weitere hotlist Eigenschaften können mit Hilfe der Optionen __weechat.look.hotlist_*__
verändert werden.
Siehe link:weechat_user.de.html#screen_layout[Benutzerhandbuch / Screen layout] für
weitere Informationen zur Hotlist.
Siehe link:weechat_user.de.html#screen_layout[Benutzerhandbuch / Screen layout ^↗^,window=_blank]
für weitere Informationen zur Hotlist.
[[input_bar_size]]
=== Wie kann man eine mehrzeilige Eingabezeile einstellen?
@@ -368,9 +339,8 @@ sobald das Item "input_text" in keiner anderen Bar genutzt wird:
[[terminal_copy_paste]]
=== Wie kann ich einen Text kopieren und einfügen, ohne dass die Nickliste (Benutzerliste) mit kopiert wird?
Seit WeeChat ≥ 1.0 gibt es den "einfachen Anzeigemodus".
Dieser kann mit der Tastenkombination kbd:[Alt+l] (<l> wie in Lima) aktiviert werden.
Der Inhalt des aktuellen Fensters wird nach der Aktivierung ohne Formatierung angezeigt.
Sie können den vereinfachten Anzeigemodus verwenden (Standardtaste: kbd:[Alt+l] (`L`)), dieser
zeigt nur den Inhalt des aktuell ausgewählten Fensters an, ohne jegliche Formatierung.
Jetzt kannst Du die Block-Auswahl nutzen, insofern dein Terminal diesen Modus
unterstützt (rxvt-unicode, konsole, gnome-terminal, ... um nur einige zu nennen ).
@@ -387,8 +357,7 @@ die Benutzerliste am oberen oder unteren Rand des WeeChat-Bildschirmes zu positi
[[urls]]
=== Wie kann ich eine URL aufrufen, die einen Zeilenumbruch besitzt?
Seit WeeChat ≥ 1.0 gibt es den "einfachen Anzeigemodus".
Dieser kann mit der Tastenkombination kbd:[Alt+l] (<l> wie in Lima) aktiviert werden.
Dazu kann man den vereinfachten Anzeigemodus nutzen (Standardtaste: kbd:[Alt+l] (`L`)).
Um URLs einfacher zu öffnen, können alternativ folgende Optionen gesetzt werden:
@@ -398,7 +367,7 @@ Um URLs einfacher zu öffnen, können alternativ folgende Optionen gesetzt werde
/set weechat.bar.nicklist.position top
----
* Die Ausrichtung bei einem Zeilenumbruch innerhalb eines Wortes deaktivieren (WeeChat ≥ 1.7).
* Die Ausrichtung bei einem Zeilenumbruch innerhalb eines Wortes deaktivieren.
----
/set weechat.look.align_multiline_words off
@@ -410,9 +379,9 @@ Um URLs einfacher zu öffnen, können alternativ folgende Optionen gesetzt werde
/set weechat.look.align_end_of_lines time
----
Ab der WeeChat Version ≥ 0.3.6, kann die Option "eat_newline_glitch" aktiviert werden.
Damit wird das Zeichen für einen Zeilenumbruch nicht an die dargestellten Zeilen angefügt
(dies führt dazu, dass URLs beim Markieren korrekt erkannt werden):
Es kann auch die "eat_newline_glitch" Option aktiviert werden,
sodass kein neuer Zeilenumbruch hinzugefügt wird,
am Ende jeder angezeigten Zeile (es wird die URL-Auswahl nicht unterbrechen):
----
/set weechat.look.eat_newline_glitch on
@@ -441,7 +410,7 @@ Natürlich ist das möglich:
[[timezone]]
=== Wie kann ich die Zeitzone ändern?
Es gibt in WeeChat keine Option um die Zeitzone einzustellen. Die
Es gibt in WeeChat keine Option um die Zeitzone einzustellen. Die
Umgebungsvariable `TZ` muss auf einen entsprechenden Wert eingestellt werden.
Am Besten machen Sie dies in Ihrer Shell-Initialisierungsdatei oder in der
Befehlszeile, bevor Sie WeeChat starten:
@@ -459,8 +428,6 @@ In WeeChat wird der neue Wert umgehend genutzt:
[[use_256_colors]]
=== Wie kann ich 256 Farben in WeeChat nutzen?
256 Farben werden ab der WeeChat Version ≥ 0.3.4 unterstützt.
Zuerst sollte überprüft werden, ob die _TERM_-Umgebungsvariable korrekt hinterlegt ist.
Folgende Werte sind zu empfehlen:
@@ -481,21 +448,18 @@ term screen-256color
Falls die Umgebungsvariable _TERM_ einen falschen Wert haben sollte und WeeChat
schon gestartet wurde, kann man die Umgebungsvariable mit folgenden WeeChat Befehlen
anpassen (WeeChat ≥ 1.0):
anpassen:
----
/set env TERM screen-256color
/upgrade
----
Mit der WeeChat Version 0.3.4 muss der Befehl `/color` genutzt werden, um neue Farben zu erstellen.
Sie können eine beliebige Farbnummer in den Optionen verwenden (optional: Sie können Farbaliase,
mit dem Befehl `/color`, erstellen.
Ab Version ≥ 0.3.5 kann in den Optionen für eine zu nutzende Farbe die entsprechende
Zahl der Farbe eingetragen werden (optional: mit dem Befehl `/color` kann man einen Alias für
eine Farbe definieren).
Bitte lese link:weechat_user.de.html#colors[Benutzerhandbuch / Farben] für weitere
Informationen die das Farbmanagement betreffen.
Bitte lese link:weechat_user.de.html#colors[Benutzerhandbuch / Farben ^↗^,window=_blank]
für weitere Informationen die das Farbmanagement betreffen.
[[search_text]]
=== Wie kann ich in einem Buffer nach einem Text suchen (vergleichbar /lastlog in irssi)?
@@ -505,8 +469,8 @@ Die Standardtastenbelegung lautet kbd:[Ctrl+r]
Um zu Highlight-Nachrichten zu springen:
kbd:[Alt+p] für vorherige, kbd:[Alt+n] für die nächste Nachricht.
siehe link:weechat_user.de.html#key_bindings[Benutzerhandbuch / Standard Tastenbelegung] für weitere
Informationen zu dieser Funktion.
siehe link:weechat_user.de.html#key_bindings[Benutzerhandbuch / Standard Tastenbelegung ^↗^,window=_blank]
für weitere Informationen zu dieser Funktion.
[[terminal_focus]]
=== Wie kann ich Befehle ausführen, wenn der Terminal (keinen) Fokus hat?
@@ -541,7 +505,7 @@ Um zum Beispiel Buffer als gelesen zu markieren,
wenn das Terminal den Fokus verlieren sollte:
----
/key bind meta2-O /input set_unread
/key bind meta2-O /allbuf /buffer set unread
----
[[screen_paste]]
@@ -559,9 +523,10 @@ Der bracketed paste Modus kann wie folgt deaktiviert werden:
[[small_terminal]]
=== Wie kann ich die Anzeige bei sehr kleinen Terminalgrößen (wie 80 x 25) optimieren, um keinen Platz zu verschwenden?
Sie können die seitlichen Bars (Buflist und Nicklist) entfernen und das Zeitformat im Buffer anpassen,
sodass nur Stunden und Sekunden angezeigt werden. Die Ausrichtung von Nachrichten sollte deaktiviert
und der Präfix/Suffix für Nicks gesetzt werden:
Die seitlichen Bars (buflist und nicklist) können deaktiviert werden, die Datums-
anzeige sollte nur Stunden und Minuten darstellen, die Ausrichtung von Nach-
richten sollte ebenfalls deaktiviert werden und es sollte der Nick mit einen
Präfix und Suffix vesehen werden:
----
/set buflist.look.enabled off
@@ -685,7 +650,7 @@ Es kann auch eine neue Taste eingebunden werden um zu einem Buffer zu wechseln:
----
Eine Auflistung der Standardtastenbelegung findet man in
link:weechat_user.de.html#key_bindings[Benutzerhandbuch / Standard Tastenbelegung].
link:weechat_user.de.html#key_bindings[Benutzerhandbuch / Standard Tastenbelegung ^↗^,window=_blank].
Um zu Buffern zu wechseln die an Position ≥ 100 sind kann ein Trigger definiert
werden um dann z.B. mit einem Kurzbefehl `/123` zum Buffer #123 zu springen:
@@ -717,8 +682,6 @@ Um die korrekten Tasten zu finden, sollte man mit kbd:[Alt+k] die gewünschte Ta
[[mouse_not_working]]
=== Die Mausunterstützung funktioniert nicht, was kann ich tun?
Eine Unterstützung von Mausfunktionen ist seit WeeChat ≥ 0.3.6 verfügbar.
Als erstes sollte man die Mausunterstützung einschalten:
----
@@ -776,12 +739,6 @@ Falls macOS genutzt wird,
muss mittels Homebrew `openssl` installiert werden.
Eine CA-Datei wird mittels Zertifikaten vom Systemschlüssel geladen.
Ab WeeChat ≤ 3.1 können Sie den Pfad zu Systemzertifikaten festlegen:
----
/set weechat.network.gnutls_ca_file "/usr/local/etc/openssl/cert.pem"
----
Falls Fehlermeldungen auftreten, die besagen,
dass der gnutls Handshake fehlgeschlagen ist,
sollte ein kleinerer Diffie-Hellman-Schlüssel verwendet werden (Standardgröße: 2048):
@@ -811,8 +768,8 @@ des Zertifikats von Hand eingetragen werden:
[[irc_ssl_handshake_error]]
=== Bei einem Verbindungsaufbau zum Server via SSL erhalte ich "TLS Handshake fehlgeschlagen". Wie kann ich das beheben?
Man sollte versuchen, eine andere Priorität zu nutzen (nur WeeChat ≥ 0.3.5);
Im folgenden Beispiel muss "xxx" durch den betroffenen Servernamen ersetzt werden:
Man sollte versuchen, eine andere Priorität zu nutzen; Im folgenden Beispiel
muss "xxx" durch den betroffenen Servernamen ersetzt werden:
----
/set irc.server.xxx.ssl_priorities "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.0:+VERS-SSL3.0:%COMPAT"
@@ -821,23 +778,8 @@ Im folgenden Beispiel muss "xxx" durch den betroffenen Servernamen ersetzt werde
[[irc_ssl_libera]]
=== Wie kann ich eine SSL gesicherte Verbindung zum libera Server herstellen?
Ab WeeChat ≤ 3.1 kann mit der Option _weechat.network.gnutls_ca_file_ eine Datei mit
Zertifikaten ausgewählt werden:
----
/set weechat.network.gnutls_ca_file "/etc/ssl/certs/ca-certificates.crt"
----
Wenn openssl mit homebrew unter macOS installiert wurde, könnte es sein,
dass die Zertifikate in einer anderen Datei bereitgestellt werden:
----
/set weechat.network.gnutls_ca_file "/usr/local/etc/openssl/cert.pem"
----
[NOTE]
Überprüfe, ob die Zertifikationsdatei auf deinem System installiert wurde.
Üblicherweise wird diese Datei durch das Paket "ca-certificates" bereitgestellt.
Überprüfen Sie, ob auf Ihrem System Zertifikate installiert sind. Dies wird häufig
durch das Paket "ca-certificates" bereitgestellt.
Konfiguration des Servers, Port angeben, SSL aktivieren und Verbindung herstellen:
@@ -864,7 +806,7 @@ ersetzt werden:
----
[[irc_sasl]]
=== Wie kann ich mich vor dem Betreten von Channels identifizieren?
=== Wie kann ich mich vor dem Betreten von Kanälen identifizieren?
Sollte der Server SASL unterstützen,
ist es ratsam auf diese Funktion zurückzugreifen
@@ -877,37 +819,44 @@ und sich nicht mittels "nickserv" zu authentifizieren:
Unterstützt der Server keine SASL Authentifizierung,
kann eine Verzögerung aktiviert werden,
um sich vor dem Betreten von Channels bei "nickserv" zu identifizieren:
um sich vor dem Betreten von Kanälen bei "nickserv" zu identifizieren:
----
/set irc.server.libera.command_delay 5
----
[[edit_autojoin]]
=== Wie kann ich Channels zur autojoin Option entfernen/hinzufügen?
=== Wie kann ich Kanäle zur autojoin Option hinzufügen oder entfernen?
Um die Liste der autojoin Channels zu editieren,
kann der Befehl `/set` genutzt werden.
In folgendem Beispiel wird der "libera"-Server angepasst:
Ab WeeChat ≥ 3.5 können Sie die Kanäle, denen Sie manuell betreten und verlassen,
automatisch aufzeichnen und die Serveroption „autojoin“ entsprechend anpassen.
Für alle Server:
----
/set irc.server.libera.autojoin [TAB]
/set irc.server_default.autojoin_dynamic on
----
[NOTE]
Man kann den Namen oder den Wert einer Option mit kbd:[Tab] vervollständigen
oder mittels kbd:[Shift+Tab] eine teilweise Vervollständigung durchführen,
was bei Namen sinnvoll ist, denn so braucht nicht die komplette Liste
der Channels neu geschrieben werden.
Es kann auch der `/fset` Befehl verwendet werden, um die Liste der Channels
zu editieren:
Für einen einzelnen Server:
----
/fset autojoin
/set irc.server.libera.autojoin_dynamic on
----
oder man nutzt ein Skript:
Sie können den aktuellen Kanal auch in der Serveroption "autojoin" hinzufügen, indem
Sie den `/autojoin`-Befehl nutzen:
----
/autojoin add
----
oder einen beliebigen Kanal:
----
/autojoin add #test
----
Es existieren aber auch Skripten:
----
/script search autojoin
@@ -917,9 +866,9 @@ oder man nutzt ein Skript:
=== Was ist der Unterschied zwischen dem Befehl /ignore und /filter?
Der Befehl `/ignore` ist ein (clientseitiger) IRC-Befehl und beeinflusst direkt,
welche vom Server empfangenen Nachrichten im IRC-Buffer (Server und Channel) landen.
welche vom Server empfangenen Nachrichten im IRC-Buffer (Server und Kanäle) landen.
Durch diesen Befehl können bestimmte Nicks oder Hostnamen von bestimmten Servern
oder Channels ignoriert werden.
oder Kanäle ignoriert werden.
Der Befehl wird nicht auf den Inhalt eines IRC-Buffers angewandt.
Zutreffende Meldungen werden, bevor sie dem Buffer zugeführt werden,
von der "irc"-Erweiterung gelöscht. Es gibt somit keine Möglichkeit,
@@ -940,7 +889,7 @@ Die voreingestellte Tastenkombination zum Aktivieren bzw. Deaktivieren
aller Filter ist kbd:[Alt+-].
[[filter_irc_join_part_quit]]
=== Wie kann ich join/part/quit Meldungen in den IRC Channels filtern/unterdrücken?
=== Wie kann ich join/part/quit Meldungen in den IRC Kanälen filtern/unterdrücken?
Zum einen mit dem Smart-Filter.
Bei dessen Anwendung werden join/part/quit-Meldungen von Usern angezeigt,
@@ -960,19 +909,18 @@ Dabei werden *alle* join/part/quit Nachrichten unterdrückt:
[NOTE]
Für weitere Hilfe: `/help filter`, `+/help irc.look.smart_filter+` und
link:weechat_user.de.html#irc_smart_filter_join_part_quit[Benutzerhandbuch / einfacher Filter für join/part/quit Nachrichten].
link:weechat_user.de.html#irc_smart_filter_join_part_quit[Benutzerhandbuch / einfacher Filter für join/part/quit Nachrichten ^↗^,window=_blank].
[[filter_irc_join_channel_messages]]
=== Wie kann ich Server-Nachrichten filtern, wenn ich einen IRC Channel betrete?
=== Wie kann ich die Server-Nachrichten filtern, wenn ich einen IRC Kanal betrete?
Ab WeeChat ≥ 0.4.1 kann man auswählen, welche Server-Nachrichten beim Betreten
eines Channels angezeigt und welche verborgen werden sollen. Dazu nutzt man
die Option _irc.look.display_join_message_ (für weitere Informationen, siehe
`+/help irc.look.display_join_message+`).
Sie können auswählen, welche Nachrichten angezeigt werden, wenn Sie einem Kanal beitreten
Option _irc.look.display_join_message_ (siehe `+/help irc.look.display_join_message+`
Für mehr Information).
Um Nachrichten visuell zu verbergen, können diese gefiltert werden.
Dazu wird der Befehl `/filter` auf bestimmte Nachrichten-Tags angewandt.
Das Tag _irc_329_ kennzeichnet beispielsweise das Erstellungsdatum des Channels.
Das Tag _irc_329_ kennzeichnet beispielsweise das Erstellungsdatum des Kanals.
Siehe `/help filter`, um weitere Informationen über die Filterfunktion zu
erhalten.
@@ -987,13 +935,13 @@ da diese dazu genutzt werden um den Abwesenheitsstatus anderer User anzuzeigen
und man nicht von diesen Mitteilungen überflutet werden möchte,
kann man WeeChat anweisen, abwesende Nicks in einer anderen Farbe darzustellen.
Nutzt man Bitlbee ≥ 3, sollte man im _&bitlbee_ Channel folgendes eingeben:
Nutzt man Bitlbee ≥ 3, sollte man im _&bitlbee_ Kanal folgendes eingeben:
----
channel set show_users online,away
----
für ältere Versionen von Bitlbee gibt man im _&bitlbee_ Channel ein:
für ältere Versionen von Bitlbee gibt man im _&bitlbee_ Kanal ein:
----
set away_devoice false
@@ -1019,12 +967,12 @@ in welchem Zeitintervall die Überprüfungen auf Abwesenheit stattfinden sollen.
Die Angabe des Wertes erfolgt in Minuten.
Mit der Option _irc.server_default.away_check_max_nicks_ kann festgelegt werden,
in welchen Channels eine Überprüfung stattfinden soll.
Hierbei stellt der angegebene Wert die maximale Anzahl an Nicks in einem Channel dar,
die den Channel gleichzeitig besuchen dürfen.
in welchen Kanälen eine Überprüfung stattfinden soll.
Hierbei stellt der angegebene Wert die maximale Anzahl an Nicks in einem Kanal dar,
die den Kanal gleichzeitig besuchen dürfen.
Im folgenden Beispiel wird der Abwesenheitsstatus alle fünf Minuten überprüft.
Dabei werden aber nur solche Channels berücksichtigt, die nicht mehr als 25
Dabei werden aber nur solche Kanäle berücksichtigt, die nicht mehr als 25
Teilnehmer haben:
----
@@ -1032,18 +980,13 @@ Teilnehmer haben:
/set irc.server_default.away_check_max_nicks 25
----
[NOTE]
Für WeeChat ≤ 0.3.3, lauten die Optionen _irc.network.away_check_ und
_irc.network.away_check_max_nicks_.
[[highlight_notification]]
=== Wie kann ich mich benachrichtigen lassen, falls mich jemand in einem Channel direkt anspricht (highlight)?
=== Wie kann ich mich benachrichtigen lassen, falls mich jemand in einem Kanal direkt anspricht (highlight)?
Seit WeeChat ≥ 1.0 gibt es standardmäßig den Trigger "beep",
der an das Terminal ein _BEL_ Signal schickt,
sobald man eine highlight (hervorgehobene) oder private Nachricht erhält.
Nun muss man lediglich im Terminalprogramm oder dem Multiplexer (screen/tmux) einstellen,
welcher Befehl ausgeführt werden soll, sobald das Terminal das _BEL_ Signal erhält.
Es gibt einen voreingestellten Trigger mit Namen „beep“, der ein _BEL_ an das Terminal sendet,
bei einem Highlight oder einer private Nachricht. Damit können Sie Ihr Terminal konfigurieren
(oder einen Multiplexer wie screen/tmux), um einen Befehl auszuführen oder einen Ton abzuspielen, wenn
ein _BEL_ tritt auf.
Der Trigger "beep" kann auch direkt an einen externen Befehl gekoppelt werden:
@@ -1069,11 +1012,9 @@ Es gibt weitere Skripten, die auch zu diesem Thema passen:
[[disable_highlights_for_specific_nicks]]
=== Wie kann ich Highlights (Hervorhebungen) von bestimmten Nicks deaktivieren?
Ab WeeChat ≥ 0.3.4 kann die Eigenschaft
link:weechat_user.de.html#max_hotlist_level_nicks[hotlist_max_level_nicks_add]
für den entsprechenden Buffer gesetzt werden.
Dies kann für einzelne Nicks,
einen Buffer oder eine Gruppe von Buffern (z.B. IRC Server) gelten.
Dafür sollte link:weechat_user.de.html#max_hotlist_level_nicks[hotlist_max_level_nicks_add ^↗^,window=_blank]
die Buffer-Eigenschaft genutzt werden, um das maximale Hotlist-Level für einige Nicks pro Puffer festzulegen,
oder pro Gruppe von Buffern (wie IRC-Server).
Um nun Highlights (Hervorhebungen) für bestimmte Nicks zu deaktivieren, muss
man die entsprechende Eigenschaft auf 2 setzen:
@@ -1090,7 +1031,7 @@ das Skript _buffer_autoset.py_ nutzen:
/script install buffer_autoset.py
----
Um zum Beispiel Highlights (Hervorhebungen) von Nick "mike" im Channel
Um zum Beispiel Highlights (Hervorhebungen) von Nick "mike" im Kanal
#weechat auf dem IRC Server libera zu deaktivieren:
----
@@ -1109,7 +1050,7 @@ Für weitere Beispiele, siehe `+/help buffer_autoset+`.
=== Wie kann ich bei zusammengefügten Buffern den Zielbuffer ändern (z.B. bei einem Server-Buffer)?
Die Standardtastenkombination ist kbd:[Ctrl+x]. Der entsprechende Befehl lautet:
`+/input switch_active_buffer+`.
`+/buffer switch+`.
[[plugins_scripts]]
== Erweiterungen / Skripten
@@ -1129,9 +1070,8 @@ Um dies zu beheben, muss folgendes konfiguriert werden:
[[install_scripts]]
=== Wie kann ich Skripten installieren? Sind Skripten kompatibel mit anderen IRC Clients?
Seit WeeChat ≥ 0.3.9 gibt es den Befehl `/script` um Skripten zu installieren und zu verwalten
(siehe `/help script` um eine Hilfe zu erhalten). Nutzt man eine ältere Version von WeeChat
kann man die Skripten weeget.py und script.pl nutzen.
Mit dem Befehl `/script` können Sie Skripte installieren und verwalten (siehe `/help script`
für Hilfe).
Die Skripten für WeeChat sind mit anderen IRC-Clients nicht kompatibel und vice versa.
@@ -1148,7 +1088,7 @@ $ rm ~/.cache/weechat/script/plugins.xml.gz
----
[NOTE]
Ab WeeChat ≤ 3.1, sollte der Pfad: _~/.weechat/script/plugins.xml.gz_ lauten.
Wenn Sie die XDG-Verzeichnisse nicht verwenden, könnte der Pfad lauten: _~/.weechat/script/plugins.xml.gz_.
Danach sollte man noch einmal versuchen die Datei herunter zu laden:
@@ -1173,6 +1113,14 @@ $ cd ~/.cache/weechat/script
$ curl -O https://weechat.org/files/plugins.xml.gz
----
Wenn Sie macOS ausführen und die heruntergeladene Datei eine Größe von 0 Byte hat,
versuchen Sie, diese Variable in Ihrer Shell-Initialisierungsdatei oder auf der
Befehlszeile zu setzen. Bevor Sie WeeChat starten:
----
export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
----
[[spell_dictionaries]]
=== Ich habe aspell Wörterbücher auf mein System installiert. Wie kann ich diese nutzen, ohne WeeChat neu starten zu müssen?
@@ -1182,10 +1130,6 @@ Du brauchst lediglich die "spell"-Erweiterung neu zu laden:
/plugin reload spell
----
[NOTE]
Bis WeeChat ≤ 2.4, hieß die "spell"-Erweiterung, "aspell". Somit lautet der Befehl:
`/plugin reload aspell`.
[[settings]]
== Einstellungen
@@ -1275,7 +1219,7 @@ Definiere eine Passphrase und nutze ausschließlich geschützte Daten wann immer
es möglich ist, wie z.B. bei Passwörtern: siehe `/help secure` und nutze `/help`
bei der entsprechenden Option (falls man geschützte Daten nutzen kann, wird es
im Hilfstext erwähnt).
Siehe auch link:weechat_user.de.html#secured_data[Benutzerhandbuch / sensible Daten].
Siehe auch link:weechat_user.de.html#secured_data[Benutzerhandbuch / sensible Daten ^↗^,window=_blank].
Beispiel:
@@ -1296,7 +1240,7 @@ Ihrer Passphrase verschlüsselten Kennwörter enthält.
Einige andere Dateien enthalten möglicherweise vertrauliche Informationen wie
Kennwörter (sofern sie nicht mit dem Befehl `/secure` in _sec.conf_ gesichert werden).
Siehe link:weechat_user.de.html#files_and_directories[Benutzerhandbuch / Dateien und Verzeichnisse]
Siehe link:weechat_user.de.html#files_and_directories[Benutzerhandbuch / Dateien und Verzeichnisse ^↗^,window=_blank]
für weitere Informationen über Konfigurationsdateien.
[[development]]
@@ -1305,7 +1249,7 @@ für weitere Informationen über Konfigurationsdateien.
[[bug_task_patch]]
=== Was kann ich machen, falls ich einen Fehler gefunden habe, mich nach neuen Funktionen erkundigen oder Patches einsenden möchte?
siehe: https://weechat.org/about/support
siehe https://weechat.org/about/support/[this page ^↗^,window=_blank].
[[gdb_error_threads]]
=== Wenn man WeeChat in gdb startet, kann ein Thread-Fehler auftreten. Was beudeutet das?
@@ -1343,11 +1287,11 @@ Das Gleiche gilt für Systeme, zu denen wir keinen Zugang haben.
Es gibt einiges zu tun - z.B. testen, programmieren, dokumentieren, ...
Bitte kontaktiere uns via IRC oder E-Mail, wirf einen Blick auf die Support-Seite:
https://weechat.org/about/support
Bitte kontaktieren Sie uns per IRC oder Mail, siehe
https://weechat.org/about/support/[support page ^↗^,window=_blank].
[[donate]]
=== Kann ich Geld oder anderes an die WeeChat Entwickler spenden?
Du kannst uns Geld zur Unterstützung der weiteren Entwicklung spenden.
Details hierzu gibt es auf: https://weechat.org/donate
Sie können uns Geld spenden, um die Entwicklung zu unterstützen.
Details dazu, unter https://weechat.org/donate/[donation page ^↗^,window=_blank].
+20 -10
View File
@@ -223,11 +223,15 @@ in folgender Option erreicht werden:
/set irc.server.libera.autojoin "#channel1,#channel2"
----
[TIP]
Mittels der kbd:[Tab] Taste kann man sehr einfach Namen und Werte von Optionen
vervollständigen und mittels kbd:[Shift+Tab] kann eine teilweise Vervollständigung
durchgeführt werden (was bei langen Wörtern, wie z.B. dem Namen einer Option, nützlich
sein kann).
Mit dem `/autojoin` Befehl können die _autojoin_ Optionen einfach konfiguriert werden.
(siehe `/help autojoin`).
WeeChat kann auch konfigurieren werden, dass die _autojoin_ Optionen automatisch aktualisiert werden
sobald man Kanäle betritt oder verlässt:
----
/set irc.server_default.autojoin_dynamic on
----
Mit dem Befehl `/unset` können Server-Optionen zurückgesetzt werden.
Ist eine Server-Option zurückgesetzt, _wirkt_ der entsprechende Vorgabewert
@@ -246,6 +250,12 @@ Werte anderer Server-Optionen (`xxx`) können festgelegt werden mit:
/set irc.server.libera.xxx Wert
----
[TIP]
Mittels der kbd:[Tab] Taste kann man sehr einfach Namen und Werte von Optionen
vervollständigen und mittels kbd:[Shift+Tab] kann eine teilweise Vervollständigung
durchgeführt werden (was bei langen Wörtern, wie z.B. dem Namen einer Option, nützlich
sein kann).
[[connect_to_irc_server]]
== Verbinden mit dem IRC-Server
@@ -431,14 +441,14 @@ Zeige eine liste aller verfügbaren Skripten:
/script
----
Auf *weechat.org* von Drittanbietern bereitgestellte Scripten: https://weechat.org/scripts
Eine Liste von Skripten ist in WeeChat mittels `/script` oder auf
https://weechat.org/scripts/[this page ^↗^,window=_blank] verfügbar.
[[more_doc]]
== Weitere Dokumentation
Mit dieser Quickstart-Anleitung wurden dir die wesentlichen
Bedienungswerkzeuge von WeeChat nähergebracht.
Für das eingehende Studium aller verfügbaren Funktionalitäten
sei dir unsere ausführliche FAQ/Dokumentation ans Herz gelegt: https://weechat.org/doc
WeeChat kann nun verwendet werden und lesen Sie
https://weechat.org/doc/[FAQ/documentation ^↗^,window=_blank]
falls Sie weitere Fragen haben.
Viel Spass mit WeeChat!
+211 -151
View File
@@ -17,8 +17,8 @@
Diese Anleitung beschreibt den WeeChat Chat Client und ist Teil von WeeChat.
Die aktuelle Version dieser Anleitung finden Sie auf:
https://weechat.org/doc
Die neueste Version dieses Dokuments finden Sie unter
https://weechat.org/doc/[this page ^↗^,window=_blank].
[[introduction]]
@@ -67,7 +67,7 @@ Ein Skript darf *NIEMALS* einen fork nutzen oder einen eigenen Thread erstellen,
dafür gibt es explizit eine API Funktion, andernfalls kann WeeChat abstürzen. +
Wenn etwas in einem Hintergrundprozess ausgeführt werden soll, kann die Funktion
`+hook_process+` genutzt werden. Siehe Beispiele im Kapitel <<hook_process,Hintergrundprozesse>>
und die Dokumentation für die Funktion `+hook_process+` in link:weechat_plugin_api.en.html#_hook_process[WeeChat plugin API reference] (Englisch).
und die Dokumentation für die Funktion `+hook_process+` in link:weechat_plugin_api.en.html#_hook_process[WeeChat plugin API reference ^↗^,window=_blank] (Englisch).
[[languages_specificities]]
=== Besonderheiten der einzelnen Skriptsprachen
@@ -81,7 +81,7 @@ und die Dokumentation für die Funktion `+hook_process+` in link:weechat_plugin_
WeeChat definiert ein `weechat` Module welches mittels `import weechat`
importiert werden muss. +
Ein Python-Stub für die WeeChat-API ist im Repository verfügbar:
https://raw.githubusercontent.com/weechat/weechat/master/src/plugins/python/weechat.pyi[weechat.pyi].
https://raw.githubusercontent.com/weechat/weechat/master/src/plugins/python/weechat.pyi[weechat.pyi ^↗^,window=_blank].
[[python_functions]]
===== Funktionen
@@ -109,45 +109,41 @@ Liste ist nicht vollständig):
|===
| API Funktion | Argumente | Beispiele| Beschreibung
| hook_modifier |
irc_in_yyy |
pass:[irc_in_privmsg] +
pass:[irc_in_notice] |
Eine Nachricht die von der IRC Erweiterung empfangen wurde und bevor sie nach UTF-8 dekodiert wurde (intern
| hook_modifier
| irc_in_yyy
| pass:[irc_in_privmsg] +
pass:[irc_in_notice]
| Eine Nachricht die von der IRC Erweiterung empfangen wurde und bevor sie nach UTF-8 dekodiert wurde (intern
verwendet). +
+
Es wird empfohlen den Modifier `+irc_in2_yyy+` zu nutzen, da die empfangene Zeichenkette
immer UTF-8 gültig ist. +
siehe Funktion `+hook_modifier+` in der
link:weechat_plugin_api.en.html#_hook_modifier[WeeChat Anleitung für API Erweiterung].
link:weechat_plugin_api.en.html#_hook_modifier[WeeChat Anleitung für API Erweiterung ^↗^,window=_blank].
| hook_signal |
xxx,irc_out_yyy +
xxx,irc_outtags_yyy |
pass:[*,irc_out_privmsg] +
| hook_signal
| xxx,irc_out_yyy +
xxx,irc_outtags_yyy
| pass:[*,irc_out_privmsg] +
pass:[*,irc_out_notice] +
pass:[*,irc_outtags_privmsg] +
pass:[*,irc_outtags_notice] |
Eine Nachricht welche von der IRC Erweiterung versendet wurde, nachdem diese entsprechend
pass:[*,irc_outtags_notice]
| Eine Nachricht welche von der IRC Erweiterung versendet wurde, nachdem diese entsprechend
der Benutzereinstellung `encode` Charset kodiert (falls abweichend von der `UTF-8` Standardeinstellung). +
+
Es wird empfohlen das Signal `+xxx,irc_out1_yyy+` zu nutzen, da die empfangene Zeichenkette
immer UTF-8 gültig ist. +
siehe Funktion `+hook_signal+` in der
link:weechat_plugin_api.en.html#_hook_signal[WeeChat Anleitung für API Erweiterung].
link:weechat_plugin_api.en.html#_hook_signal[WeeChat Anleitung für API Erweiterung ^↗^,window=_blank].
| hook_process +
hook_process_hashtable |
- |
- |
Ausgabe des Befehls, dass an den Callback gesendet wurde, kann ungültige UTF-8 Daten enthalten.
hook_process_hashtable
| -
| -
| Ausgabe des Befehls, dass an den Callback gesendet wurde, kann ungültige UTF-8 Daten enthalten.
|===
Mit Python 2, das mittlerweile veraltet ist und nicht mehr verwendet werden sollte, ist die
Zeichenkette die an die Callbacks gesendet wird immer vom Typ `str` und kann deshalb bei den
oben genannten Fällen, ungültige UTF-8 Daten enthalten.
[[language_perl]]
==== Perl
@@ -205,6 +201,22 @@ Funktionen werden aufgerufen mittels `+weechat.xxx(arg1, arg2, ...)+`.
Funktionen werden aufgerufen mittels `+weechat::xxx arg1 arg2 ...+`.
[[tcl_null]]
===== Nullwerte
Da Tcl nur String-Typen nutzt, gibt es keinen Null-Typ, der als Argument übergeben
werden kann wenn eine Funktion Nullwerte akzeptiert, oder als Argument in einem
Callback zu erhalten Funktion. Um dies zu umgehen, definiert die WeeChat-API die
Konstante `$::weechat::WEECHAT_NULL`, welches als Nullwert fungiert. Diese Konstante
ist festgelegt und lautet `\uFFFF\uFFFF\uFFFFWEECHAT_NULL\uFFFF\uFFFF\uFFFF`,
es ist also sehr unwahrscheinlich das dies ungewollt genutzt wird.
Sie können diese Konstante übergeben, wenn eine Funktion NULL als Argument akzeptiert
und Sie erhält es als Wert eines Arguments in einer Callback-Funktion zurück, wenn
der Wert des Arguments NULL ist. Um zu sehen, welche Funktionen Nullwerte akzeptieren
und Nullwerte in Rückrufen übergeben, schauen Sie sich die Python-Prototypen an
link:weechat_plugin_api.en.html[WeeChat plugin API reference ^↗^,window=_blank].
[[language_guile]]
==== Guile (Scheme)
@@ -384,7 +396,7 @@ ein Link in das entsprechende _autoload_ Verzeichnis erzeugt.
Die Skripten API ist nahezu identisch mit der API der C Erweiterung.
Um einen Überblick über alle API Funktionen (Prototyp, Argumente,
Rückgabe werte, Beispiele) zu erhalten werfen Sie einen Blick in
die link:weechat_plugin_api.en.html[WeeChat Plugin API Reference] (Englisch).
die link:weechat_plugin_api.en.html[WeeChat Plugin API Reference ^↗^,window=_blank] (Englisch).
Es ist wichtig das man zwischen einer _Erweiterung_ und einem _Skript_
unterscheidet: Eine _Erweiterung_ ist eine Binärdatei die kompiliert wurde
und mittels `/plugin` geladen wird. Ein _Skript_ ist eine Textdatei welche
@@ -553,25 +565,25 @@ weechat_hook_timer(1000, 0, 1, $timer_cb, 'test');
== Skript API
Um weiterführende Informationen zu den API Funktionen zu erhalten
lesen Sie bitte link:weechat_plugin_api.en.html[WeeChat Plugin API Reference] (Englisch).
lesen Sie bitte link:weechat_plugin_api.en.html[WeeChat Plugin API Reference ^↗^,window=_blank] (Englisch).
[[script_api_functions]]
=== Funktionen
Liste der Skript API Funktionen:
[width="100%",cols="1,3",options="header"]
[width="100%",cols="1,5",options="header"]
|===
| Kategorie | Funktionen
| Allgemein |
register
| Allgemein
| register
| Erweiterungen |
plugin_get_name
| Erweiterungen
| plugin_get_name
| Strings |
charset_set +
| Strings
| charset_set +
iconv_to_internal +
iconv_from_internal +
gettext +
@@ -583,6 +595,7 @@ Liste der Skript API Funktionen:
string_has_highlight_regex +
string_mask_to_regex +
string_format_size +
string_parse_size +
string_color_code_size +
string_remove_color +
string_is_command_char +
@@ -590,13 +603,13 @@ Liste der Skript API Funktionen:
string_eval_expression +
string_eval_path_home
| Verzeichnisse |
mkdir_home +
| Verzeichnisse
| mkdir_home +
mkdir +
mkdir_parents
| sortierte Listen |
list_new +
| sortierte Listen
| list_new +
list_add +
list_search +
list_search_pos +
@@ -612,8 +625,8 @@ Liste der Skript API Funktionen:
list_remove_all +
list_free
| Konfigurationsdatei |
config_new +
| Konfigurationsdatei
| config_new +
config_new_section +
config_search_section +
config_new_option +
@@ -650,20 +663,21 @@ Liste der Skript API Funktionen:
config_set_desc_plugin +
config_unset_plugin
| Tastenbelegung |
key_bind +
| Tastenbelegung
| key_bind +
key_unbind
| Ausgabe |
prefix +
| Ausgabe
| prefix +
color +
print (für Python: prnt) +
print_date_tags (für Python: prnt_date_tags) +
print_y (für Python: prnt_y) +
print_y_date_tags (für Python: prnt_y_date_tags) +
log_print
| Hooks |
hook_command +
| Hooks
| hook_command +
hook_command_run +
hook_timer +
hook_fd +
@@ -688,8 +702,9 @@ Liste der Skript API Funktionen:
unhook +
unhook_all
| Buffer |
buffer_new +
| Buffer
| buffer_new +
buffer_new_props +
current_buffer +
buffer_search +
buffer_search_main +
@@ -704,16 +719,16 @@ Liste der Skript API Funktionen:
buffer_string_replace_local_var +
buffer_match_list
| Fenster |
current_window +
| Fenster
| current_window +
window_search_with_buffer +
window_get_integer +
window_get_string +
window_get_pointer +
window_set_title
| Nickliste |
nicklist_add_group +
| Nickliste
| nicklist_add_group +
nicklist_search_group +
nicklist_add_nick +
nicklist_search_nick +
@@ -729,8 +744,8 @@ Liste der Skript API Funktionen:
nicklist_nick_get_pointer +
nicklist_nick_set
| Bars |
bar_item_search +
| Bars
| bar_item_search +
bar_item_new +
bar_item_update +
bar_item_remove +
@@ -740,23 +755,23 @@ Liste der Skript API Funktionen:
bar_update +
bar_remove
| Befehle |
command +
| Befehle
| command +
command_options
| Vervollständigung |
completion_new +
| Vervollständigung
| completion_new +
completion_search +
completion_get_string +
completion_list_add +
completion_free
| Informationen |
info_get +
| Informationen
| info_get +
info_get_hashtable
| Infolisten |
infolist_new +
| Infolisten
| infolist_new +
infolist_new_item +
infolist_new_var_integer +
infolist_new_var_string +
@@ -774,8 +789,8 @@ Liste der Skript API Funktionen:
infolist_time +
infolist_free
| hdata |
hdata_get +
| hdata
| hdata_get +
hdata_get_var_offset +
hdata_get_var_type_string +
hdata_get_var_array_size +
@@ -796,8 +811,8 @@ Liste der Skript API Funktionen:
hdata_update +
hdata_get_string
| Upgrade |
upgrade_new +
| Upgrade
| upgrade_new +
upgrade_write_object +
upgrade_read +
upgrade_close
@@ -808,17 +823,17 @@ Liste der Skript API Funktionen:
Liste der Konstanten in Skript API:
[width="100%",cols="1,3",options="header"]
[width="100%",cols="1,5",options="header"]
|===
| Kategorie | Konstanten
| return codes |
`WEECHAT_RC_OK` (integer) +
| return codes
| `WEECHAT_RC_OK` (integer) +
`WEECHAT_RC_OK_EAT` (integer) +
`WEECHAT_RC_ERROR` (integer)
| Konfigurationsdatei |
`WEECHAT_CONFIG_READ_OK` (integer) +
| Konfigurationsdatei
| `WEECHAT_CONFIG_READ_OK` (integer) +
`WEECHAT_CONFIG_READ_MEMORY_ERROR` (integer) +
`WEECHAT_CONFIG_READ_FILE_NOT_FOUND` (integer) +
`WEECHAT_CONFIG_WRITE_OK` (integer) +
@@ -833,23 +848,23 @@ Liste der Konstanten in Skript API:
`WEECHAT_CONFIG_OPTION_UNSET_OK_REMOVED` (integer) +
`WEECHAT_CONFIG_OPTION_UNSET_ERROR` (integer)
| sortierte Listen |
`WEECHAT_LIST_POS_SORT` (string) +
| sortierte Listen
| `WEECHAT_LIST_POS_SORT` (string) +
`WEECHAT_LIST_POS_BEGINNING` (string) +
`WEECHAT_LIST_POS_END` (string)
| Hotlist |
`WEECHAT_HOTLIST_LOW` (string) +
| Hotlist
| `WEECHAT_HOTLIST_LOW` (string) +
`WEECHAT_HOTLIST_MESSAGE` (string) +
`WEECHAT_HOTLIST_PRIVATE` (string) +
`WEECHAT_HOTLIST_HIGHLIGHT` (string)
| hook Prozesse |
`WEECHAT_HOOK_PROCESS_RUNNING` (integer) +
| hook Prozesse
| `WEECHAT_HOOK_PROCESS_RUNNING` (integer) +
`WEECHAT_HOOK_PROCESS_ERROR` (integer)
| hook Connect |
`WEECHAT_HOOK_CONNECT_OK` (integer) +
| hook Connect
| `WEECHAT_HOOK_CONNECT_OK` (integer) +
`WEECHAT_HOOK_CONNECT_ADDRESS_NOT_FOUND` (integer) +
`WEECHAT_HOOK_CONNECT_IP_ADDRESS_NOT_FOUND` (integer) +
`WEECHAT_HOOK_CONNECT_CONNECTION_REFUSED` (integer) +
@@ -861,8 +876,8 @@ Liste der Konstanten in Skript API:
`WEECHAT_HOOK_CONNECT_TIMEOUT` (integer) +
`WEECHAT_HOOK_CONNECT_SOCKET_ERROR` (integer)
| hook Signal |
`WEECHAT_HOOK_SIGNAL_STRING` (string) +
| hook Signal
| `WEECHAT_HOOK_SIGNAL_STRING` (string) +
`WEECHAT_HOOK_SIGNAL_INT` (string) +
`WEECHAT_HOOK_SIGNAL_POINTER` (string)
|===
@@ -873,7 +888,7 @@ Liste der Konstanten in Skript API:
Dieses Kapitel beinhaltet einige Aufgaben mit Lösungsbeispielen.
Die Skript API wird dabei nur sehr oberflächlich besprochen.Um eine vollständige
Übersicht aller Befehle zu erhalten nutzen Sie bitte die
link:weechat_plugin_api.en.html[WeeChat Plugin API Reference] (Englisch).
link:weechat_plugin_api.en.html[WeeChat Plugin API Reference ^↗^,window=_blank] (Englisch).
[[buffers]]
=== Buffer
@@ -893,7 +908,7 @@ Beispiele:
weechat.prnt("", "Hallo")
# Gibt den Text "Hallo" im Core Buffer aus, schreibt diesen aber nicht in die Protokolldatei
# (nur Version >= 0.3.3)
# (nur Version 0.3.3)
weechat.prnt_date_tags("", 0, "no_log", "hello")
# Gibt den Präfix "==>" gefolgt von dem Text "Hallo" im aktuellen Buffer aus
@@ -1073,26 +1088,53 @@ Mit der Funktion `+hook_process+` kann ein Hintergrundprozess gestartet werden.
Der Callback wird aufgerufen sobald der Hintergrundprozess abgearbeitet wurde.
Dies kann auch mehrfach der Fall sein.
Für den letzten Aufruf des Callback wird _rc_ auf 0 oder einen positiven Wert
gesetzt. Dies ist der Return Code des Befehls.
Für den letzten Aufruf des Callback wird _return_code_ auf 0 oder einen positiven
Wert gesetzt. Dies ist der Return Code des Befehls.
Beispiele:
[source,python]
----
process_output = ""
def my_process_cb(data, command, rc, out, err):
global process_output
if out != "":
process_output += out
if int(rc) >= 0:
weechat.prnt("", process_output)
def my_process_cb(data, command, return_code, out, err):
if return_code == weechat.WEECHAT_HOOK_PROCESS_ERROR:
weechat.prnt("", "Error with command '%s'" % command)
return weechat.WEECHAT_RC_OK
if return_code >= 0:
weechat.prnt("", "return_code = %d" % return_code)
if out:
weechat.prnt("", "stdout: %s" % out)
if err:
weechat.prnt("", "stderr: %s" % err)
return weechat.WEECHAT_RC_OK
weechat.hook_process("/bin/ls -l /etc", 10 * 1000, "my_process_cb", "")
----
Sie können statt eines externen Befehls auch direkt eine
Skriptfunktion aufrufen, die Weechat blockieren würde:
[source,python]
----
def get_status(data):
# do something blocking...
# ...
return "this is the result"
def my_process_cb(data, command, return_code, out, err):
if return_code == weechat.WEECHAT_HOOK_PROCESS_ERROR:
weechat.prnt("", "Error with command '%s'" % command)
return weechat.WEECHAT_RC_OK
if return_code >= 0:
weechat.prnt("", "return_code = %d" % return_code)
if out:
weechat.prnt("", "stdout: %s" % out)
if err:
weechat.prnt("", "stderr: %s" % err)
return weechat.WEECHAT_RC_OK
hook = weechat.hook_process("func:get_status", 5000, "my_process_cb", "")
----
[[url_transfer]]
==== URL Übertragung
@@ -1107,15 +1149,15 @@ dabei in der Callback-Variable "out" gesichert (Standardausgabe des Prozesses):
[source,python]
----
# Zeigt die aktuelle stabile Version von WeeChat an.
weechat_version = ""
# Display latest stable version of WeeChat.
weechat_latest_version = ""
def weechat_process_cb(data, command, rc, out, err):
global weechat_version
if out != "":
weechat_version += out
if int(rc) >= 0:
weechat.prnt("", "aktuelle stabile WeeChat-Version: %s" % weechat_version)
def weechat_process_cb(data, command, return_code, out, err):
global weechat_latest_version
if out:
weechat_latest_version += out
if return_code >= 0:
weechat.prnt("", "Latest WeeChat version: %s" % weechat_latest_version)
return weechat.WEECHAT_RC_OK
weechat.hook_process("url:https://weechat.org/dev/info/stable/",
@@ -1123,16 +1165,17 @@ weechat.hook_process("url:https://weechat.org/dev/info/stable/",
----
[TIP]
Alle Informationen die WeeChat betreffen findet man auf: https://weechat.org/dev/info
Alle verfügbaren Informationen über WeeChat findet man unter
https://weechat.org/dev/info/[this page ^↗^,window=_blank].
Beispiel eines URL Transfers, mit zusätzliche Optionen: Es wird das neuste
WeeChat Entwicklerpaket in die Datei _/tmp/weechat-devel.tar.gz_ gesichert:
[source,python]
----
def my_process_cb(data, command, rc, out, err):
if int(rc) >= 0:
weechat.prnt("", "End of transfer (rc=%s)" % rc)
def my_process_cb(data, command, return_code, out, err):
if return_code >= 0:
weechat.prnt("", "End of transfer (return code = %d)" % return_code)
return weechat.WEECHAT_RC_OK
weechat.hook_process_hashtable("url:https://weechat.org/files/src/weechat-devel.tar.gz",
@@ -1142,7 +1185,7 @@ weechat.hook_process_hashtable("url:https://weechat.org/files/src/weechat-devel.
Für weitere Informationen zum URL Transfer und verfügbare Optionen, siehe Funktionen
`+hook_process+` und `+hook_process_hashtable+` in
link:weechat_plugin_api.en.html#_hook_process[WeeChat plugin API reference] (Englisch).
link:weechat_plugin_api.en.html#_hook_process[WeeChat plugin API reference ^↗^,window=_blank] (Englisch).
[[config_options]]
=== Konfiguration / Optionen
@@ -1298,59 +1341,71 @@ Das Ergebnis ist eine Hashtabelle mit folgenden Schlüsseln
[width="100%",cols="3,^2,10,7",options="header"]
|===
| Schlüssel | Seit WeeChat ^(1)^ | Beschreibung | Beispiel
| Schlüssel | Seit WeeChat ^(1)^ | Beschreibung | Beispiel
| Tags | 0.4.0 |
Tags in der Nachricht (kann leer sein). |
`+time=2015-06-27T16:40:35.000Z+`
| Tags | 0.4.0
| Tags in der Nachricht (kann leer sein).
| `+time=2015-06-27T16:40:35.000Z+`
| message_without_tags | 0.4.0 |
Die IRC Nachricht ohne Tags (wie eine Nachricht ohne Tags). |
`+:nick!user@host PRIVMSG #weechat :hello!+`
| tag_xxx | 3.3
| Wert des Tags "xxx" ohne Escapezeichen (ein Schlüssel pro Tag).
| `+2015-06-27T16:40:35.000Z+`
| nick | 0.3.4 |
der ursprüngliche Nick. |
`+nick+`
| message_without_tags | 0.4.0
| Die IRC Nachricht ohne Tags (wie eine Nachricht ohne Tags).
| `+:nick!user@host PRIVMSG #weechat :hello!+`
| user | 2.7 |
der ursprüngliche Benutzer. |
`+user+`
| nick | 0.3.4
| der ursprüngliche Nick.
| `+nick+`
| host | 0.3.4 |
der ursprüngliche Host (beinhaltet den Nick). |
`+nick!user@host+`
| user | 2.7
| der ursprüngliche Benutzer.
| `+user+`
| command | 0.3.4 |
der Befehl (_PRIVMSG_, _NOTICE_, ...). |
`+PRIVMSG+`
| host | 0.3.4
| der ursprüngliche Host (beinhaltet den Nick).
| `+nick!user@host+`
| channel | 0.3.4 |
der Zielchanne.l|
| command | 0.3.4
| der Befehl (_PRIVMSG_, _NOTICE_, ...).
| `+PRIVMSG+`
| channel | 0.3.4
| der Zielchanne.l|
`+#weechat+`
| arguments | 0.3.4 |
das Argument des Befehls (beinhaltet den Channel). |
`+#weechat :hello!+`
| arguments | 0.3.4
| das Argument des Befehls (beinhaltet den Channel).
| `+#weechat :hello!+`
| text | 1.3 |
der Text (zum Beispiel eine Nachricht eines Users). |
`+hello!+`
| text | 1.3
| der Text (zum Beispiel eine Nachricht eines Users).
| `+hello!+`
| pos_command | 1.3 |
Index von _command_ innerhalb einer Nachricht ("-1" falls _command_ nicht gefunden wird). |
`+47+`
| paramN | 3.4
| Befehlsparameter (von 1 bis N).
| `+#weechat+`
| pos_arguments | 1.3 |
Index von_arguments_ innerhalb einer Nachricht ("-1" falls _arguments_ nicht gefunden wird). |
`+55+`
| num_params | 3.4
| Anzahl der Befehlsparameter.
| `+2+`
| pos_channel | 1.3 |
Index von _channel_ innerhalb einer Nachricht ("-1" falls _channel_ nicht gefunden wird). |
`+55+`
| pos_command | 1.3
| Index von _command_ innerhalb einer Nachricht ("-1" falls _command_ nicht gefunden wird).
| `+47+`
| pos_text | 1.3 |
Index von _text_ innerhalb einer Nachricht ("-1" falls _text_ nicht gefunden wird). |
`+65+`
| pos_arguments | 1.3
| Index von_arguments_ innerhalb einer Nachricht ("-1" falls _arguments_ nicht gefunden wird).
| `+55+`
| pos_channel | 1.3
| Index von _channel_ innerhalb einer Nachricht ("-1" falls _channel_ nicht gefunden wird).
| `+55+`
| pos_text | 1.3
| Index von _text_ innerhalb einer Nachricht ("-1" falls _text_ nicht gefunden wird).
| `+65+`
|===
[NOTE]
@@ -1360,10 +1415,12 @@ Das Ergebnis ist eine Hashtabelle mit folgenden Schlüsseln
----
dict = weechat.info_get_hashtable(
"irc_message_parse",
{"message": "@time=2015-06-27T16:40:35.000Z :nick!user@host PRIVMSG #weechat :hello!"})
{"message": "@time=2015-06-27T16:40:35.000Z;tag2=value\\sspace :nick!user@host PRIVMSG #weechat :hello!"})
# dict == {
# "tags": "time=2015-06-27T16:40:35.000Z",
# "tags": "time=2015-06-27T16:40:35.000Z;tag2=value\\sspace",
# "tag_time": "2015-06-27T16:40:35.000Z",
# "tag_tag2": "value space",
# "message_without_tags": ":nick!user@host PRIVMSG #weechat :hello!",
# "nick": "nick",
# "user": "user",
@@ -1372,10 +1429,13 @@ dict = weechat.info_get_hashtable(
# "channel": "#weechat",
# "arguments": "#weechat :hello!",
# "text": "hello!",
# "pos_command": "47",
# "pos_arguments": "55",
# "pos_channel": "55",
# "pos_text": "65",
# "param1": "#weechat",
# "param2": "hello!",
# "num_params": "2",
# "pos_command": "65",
# "pos_arguments": "73",
# "pos_channel": "73",
# "pos_text": "83",
# }
----
-148
View File
@@ -1,148 +0,0 @@
= WeeChat Anleitung für Testpersonen
:author: Sébastien Helleu
:email: flashcode@flashtux.org
:lang: de
:toc: left
:toc-title: Inhaltsverzeichnis
:sectnums:
:docinfo1:
Übersetzer:
* Juergen Descher <jhdl@gmx.net>, 2009
* Nils Görs <weechatter@arcor.de>, 2009-2016
[[purpose]]
== Intention
Viele dankbare Anwender fragen uns wie sie bei der Entwicklung von WeeChat
helfen können. Der einfachste (aber auch der kniffligste) Weg uns zu helfen ist:
testen!
Testen ist ein sehr wichtiger Teil der Programmentwicklung und sollte daher
nicht unterbewertet werden. Wenn neue Funktionen implementiert wurden dann
müssen diese getestet werden. Für manche Funktionen gibt es sehr viele
verschiedene Problemstellungen, oder diese sind äußerst Umfangreich. Dadurch
können die Entwickler nicht jede einzelne Variante ausprobieren.
Ein Beispiel: Eine berüchtigte Zeichensatz-Erweiterung wurde in WeeChat 0.2.2
eingeführt. Keiner von uns, Entwickler, Mithelfende und Tester, nutzten Channels
in denen länderspezifische Zeichen im eigenen Namen Verwendung fanden. Somit wurde
die Version 0.2.2 freigegeben und wir bekamen daraufhin eine Flut von Beschwerden
durch russischen User, bei denen der Fehler sichtbar war. Hätten wir mehr Tester,
dann sollte so etwas nicht mehr passieren.
Eine stabile Version von WeeChat zu testen bringt uns leider nicht weiter da die
Entwickler in der Zwischenzeit neue Funktionen implementiert haben und vermutlich
alte Fehler schon behoben wurden.
[[prepare_system]]
== Bereite Dein System vor
Es wäre uns schon sehr damit geholfen wenn Du Linux _core_ Dateien aktivieren würdest.
Falls WeeChat abstürzen sollte wird eine Datei Namens _core_ erzeugt. Diese Datei
beinhaltet viele nützliche Debug-Informationen um das genaue Problem in WeeChat
zu lokalisieren.
Falls Du die _bash_ als shell benutzt, dann ergänze Deine _~/.bashrc_ durch folgende
Zeile:
----
ulimit -c unlimited
----
[[download]]
== Besorge Dir die Entwickler-Version
aktueller Programmcode (mit den aktuellen Fehlern und Funktionen) ist im GIT Repository
gespeichert.
Du könntest Dich dazu entscheiden es manuell zu bauen (empfohlen):
* die GIT Version kann parallel zur stabilen Version kompiliert und installiert
werden.
* Du benötigst keine Root-Rechte, und opfern brauchst Du Deine stabile Version
von WeeChat auch nicht.
[[get_sources]]
=== Beschaffe und baue die Quellen
Erstelle zuerst einen neuen Ordner, z.B. _weechat-git_:
----
$ mkdir ~/weechat-git
$ cd ~/weechat-git
----
Falls Du git installiert hast, clone das git Repository (empfohlen):
----
$ git clone https://github.com/weechat/weechat.git
$ cd weechat
----
[NOTE]
Um auf den aktuellen Stand zu kommen verwendest Du z.B. `git pull` in
diesem Ordner.
Ansonsten kannst Du das _Entwickler-Paket_ herunterladen und entpacken:
----
$ wget https://weechat.org/files/src/weechat-devel.tar.bz2
$ tar xvjf weechat-devel.tar.bz2
$ cd weechat-devel
----
Um die Quellen zu übersetzen, wird CMake empfohlen:
----
$ mkdir build
$ cd build
$ cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/weechat-git -DWEECHAT_HOME=~/.weechat-dev -DCMAKE_BUILD_TYPE=Debug
$ make
$ make install
----
Falls Du CMake nicht hast, ist es auch möglich die autotools zu nutzen:
----
$ ./autogen.sh
$ ./configure --prefix=$HOME/weechat-git WEECHAT_HOME=~/.weechat-dev
$ make
$ make install
----
[[install_binary_package]]
=== Installieren des Programm-Paketes
Abhängig Deiner Linux Distribution:
* Debian: https://weechat.org/download/debian
* Gentoo: https://weechat.org/download
* ArchLinux: PKGBUILD von https://aur.archlinux.org/
* andere: Wissen wir nicht! Eheh.
[[run]]
== WeeChat starten
Die Befehlszeile lautet:
----
$ ~/weechat-git/bin/weechat
----
Immer noch munter? Dann solltest Du jetzt das bekannte Interface sehen und nun
prahle vor Anderen, dass Du die neueste WeeChat-Version verwendest :)
Solltest Du nun ein merkwürdiges Verhalten bemerken (es können diverse Probleme
oder Abstürze auftreten oder einfach Dein Bier überkochen) zögere nicht, komme
in den Channel _#weechat_ auf _irc.libera.chat_ (A.d.Ü.: englischsprachig) und
berichte uns darüber.
Auch falls alles korrekt funktionieren sollte gib uns trotzdem Bescheid, wir
brauchen Deine Rückmeldung!
+3138 -2135
View File
File diff suppressed because it is too large Load Diff
+21 -12
View File
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
#
# Copyright (C) 2008-2021 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2008-2023 Sébastien Helleu <flashcode@flashtux.org>
#
# 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
@@ -81,6 +81,7 @@ LOCALE_LIST = (
'it_IT',
'ja_JP',
'pl_PL',
'sr_RS',
)
# all commands/options/.. of following plugins will produce a file
@@ -114,6 +115,7 @@ PLUGIN_LIST = {
'spell': 'o',
'trigger': 'o',
'xfer': 'co',
'typing': 'o',
}
# options to ignore
@@ -485,7 +487,8 @@ class AutogenDoc():
f'autogen_{name}.{self.locale[:2]}.adoc',
)
self.filename_tmp = f'{self.filename}.tmp'
self._file = open(self.filename_tmp, 'w')
# pylint: disable=consider-using-with
self._file = open(self.filename_tmp, 'w', encoding='utf-8')
def write_autogen_files(self, weechat_doc):
"""Write auto-generated files."""
@@ -610,15 +613,21 @@ class AutogenDoc():
default_value = ('"%s"' %
default_value.replace('"', '\\"'))
elif opt_type == 'color':
values = _('a WeeChat color name (default, black, '
'(dark)gray, white, (light)red, '
'(light)green, brown, yellow, (light)blue, '
'(light)magenta, (light)cyan), a terminal '
'color number or an alias; attributes are '
'allowed before color (for text color '
'only, not background): \"*\" for bold, '
'\"!\" for reverse, \"/\" for italic, '
'\"_\" for underline')
values = _(
'a WeeChat color name (default, black, '
'(dark)gray, white, (light)red, '
'(light)green, brown, yellow, (light)blue, '
'(light)magenta, (light)cyan), a terminal '
'color number or an alias; attributes are '
'allowed before color (for text color '
'only, not background): '
'\"%\" for blink, '
'\".\" for \"dim\" (half bright), '
'\"*\" for bold, '
'\"!\" for reverse, '
'\"/\" for italic, '
'\"_\" for underline'
)
self.write(f'* [[option_{config}.{section}.{option}]] '
f'*{config}.{section}.{option}*')
self.write('** %s: pass:none[%s]',
@@ -780,7 +789,7 @@ class AutogenDoc():
self.write('// tag::url_options[]')
self.write('[width="100%",cols="2,^1,7",options="header"]')
self.write('|===')
self.write('| %s | %s ^(1)^ | %s ^(2)^\n',
self.write('| %s | %s ^(1)^ | %s ^(2)^\n',
_('Option'), _('Type'), _('Constants'))
for option in url_options:
constants = option['constants']
+223 -6
View File
@@ -1,38 +1,255 @@
<!--
Custom styles for Asciidoctor
Copyright (C) 2016-2021 Sébastien Helleu <flashcode@flashtux.org>
Copyright (C) 2016-2023 Sébastien Helleu <flashcode@flashtux.org>
-->
<style>
#header,#content,#footnotes,#footer {
/* themes/colors */
@media (prefers-color-scheme: dark) {
/* dark theme */
:root {
color-scheme: dark;
--body-bg-color: #1a1a1a;
--body-color: #ddd;
--body-font: system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";
--link-color: #7abeef;
--table-thead-tfoot: #252525;
--th-color: #fff;
--toc-bg-color: #252525;
--color-header1: #ddd;
--color-header2: #da8975;
--header-details-color: #aaa;
--border: 1px solid #444;
--code-bg-color: #252525;
--pre-color: #ddd;
--pre-bg-color: #202020;
--pre-code-bg-color: #202020;
--keyseq-color: #777;
--kbd-bg-color: #252525;
--kbd-border: 1px solid #333;
--kbd-box-shadow: 0 1px 0 rgba(0, 0, 0, .2), inset 0 0 0 .1em #2c2c2c;
--icon-note-color: #4d7cc6;
--icon-tip-color: #fff;
--icon-warning-color: #f39c12;
--icon-caution-color: #bf3400;
--icon-important-color: #f44336;
--mark-bg-color: #007;
}
}
@media (not (prefers-color-scheme: dark)), (prefers-color-scheme: light) {
/* light theme */
:root {
color-scheme: light;
--body-bg-color: #fff;
--body-color: #353535;
--body-font: system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";
--link-color: #3d6baf;
--table-thead-tfoot: #f7f8f7;
--th-color: #000;
--toc-bg-color: #f8f8f7;
--color-header1: #000;
--color-header2: #ba3925;
--header-details-color: #797979;
--border: 1px solid #dddddf;
--code-bg-color: #f7f7f8;
--keyseq-color: #333c;
--pre-color: #353535;
--pre-bg-color: #f7f7f8;
--pre-code-bg-color: #202020;
--kbd-bg-color: #f7f7f7;
--kbd-border: 1px solid #ccc;
--kbd-box-shadow: 0 1px 0 rgba(0, 0, 0, .2), inset 0 0 0 .1em #fff;
--icon-note-color: #19407c;
--icon-tip-color: #111;
--icon-warning-color: #bf6900;
--icon-caution-color: #ff0000;
--icon-important-color: #bf0000;
--mark-bg-color: #9df;
}
}
body {
background-color: var(--body-bg-color);
color: var(--body-color);
font-family: var(--body-font);
}
h1 {
color: var(--color-header1) !important;
}
h2, h3, h4, h5, h6 {
color: var(--color-header2) !important;
}
h1, h2, h3, #toctitle, .sidebarblock > .content > .title, h4, h5, h6 {
font-family: var(--body-font);
}
a:link, a:visited, #header .details span.email a {
color: var(--link-color);
text-decoration: none;
}
table thead, table tfoot {
background: var(--table-thead-tfoot) !important;
}
table.tableblock, th.tableblock, td.tableblock {
border: var(--border);
}
th {
color: var(--th-color) !important;
}
td {
background-color: var(--body-bg-color);
color: var(--body-color) !important;
}
#toc.toc2 {
background-color: var(--toc-bg-color);
border-right: none;
}
#toc.toc2 > ul {
font-size: .9em;
}
@media screen and (max-width:767px) {
#toc.toc2 {
background-color: var(--body-bg-color);
}
}
p, .paragraph.lead > p, #preamble > .sectionbody > [class="paragraph"]:first-of-type p, #toctitle, .title {
color: var(--body-color);
}
#header .details {
border-bottom: var(--border);
color: var(--header-details-color);
}
code, .prettyprint {
background-color: var(--code-bg-color) !important;
color: var(--body-color);
}
pre {
color: var(--pre-color) !important;
}
pre > code {
background-color: var(--pre-code-bg-color) !important;
}
.keyseq {
color: var(--keyseq-color);
}
kbd {
background-color: var(--kbd-bg-color) !important;
border: var(--kbd-border) !important;
box-shadow: var(--kbd-box-shadow);
color: var(--body-color);
}
.literalblock pre, .listingblock > .content > pre:not(.highlight), .listingblock > .content > pre[class="highlight"], .listingblock > .content > pre[class^="highlight "] {
background-color: var(--pre-bg-color);
color: var(--body-color);
}
.sect1 + .sect1 {
border-top: var(--border);
}
.admonitionblock td.icon .icon-note::before {
color: var(--icon-note-color);
}
.admonitionblock td.icon .icon-tip::before {
color: var(--icon-tip-color);
}
.admonitionblock td.icon .icon-warning::before {
color: var(--icon-warning-color);
}
.admonitionblock td.icon .icon-caution::before {
color: var(--icon-caution-color);
}
.admonitionblock td.icon .icon-important::before {
color: var(--icon-important-color);
}
.admonitionblock > table td.content {
border-left: var(--border);
}
mark {
background-color: var(--mark-bg-color);
color: var(--body-color);
}
/* syntax highlighting tuning */
pre.pygments .tok-cp {
color: #44cfaf;
}
pre.pygments .tok-nc, pre.pygments .tok-nf {
color: #649fef;
}
pre.pygments .tok-gu, pre.pygments .tok-nc, pre.pygments .tok-nn {
text-decoration: none;
}
/* asciidoctor styles tuning */
#header, #content, #footnotes, #footer {
max-width: none;
padding-left: 3em;
padding-right: 3em;
}
#header #revnumber {
text-transform: none;
}
h1,h2,h3,h4,h5 {
h1, h2, h3, h4, h5 {
font-weight: bold;
}
.literalblock pre {
font-family: monospace, 'Courier New', Courier;
line-height: normal;
font-family: "DejaVu Sans Mono", "Liberation Mono", "Lucida Console", monospace, 'Courier New', Courier;
line-height: inherit;
}
kbd {
font-size: .9em;
}
.keyseq {
margin-left: .2em;
margin-right: .2em;
}
.tableblock kbd {
margin-top: .2em;
margin-bottom: .2em;
}
.hex {
padding: 0 .2em;
border: 1px solid #88b;
border: var(--border);
margin: 0 .2em;
font-family: monospace;
font-size: 1.1em;
}
</style>
+1 -14
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2023 Sébastien Helleu <flashcode@flashtux.org>
#
# This file is part of WeeChat, the extensible chat client.
#
@@ -122,19 +122,6 @@ if(ENABLE_DOC)
add_custom_target(doc-quickstart-en ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.en.html)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.en.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
# tester's guide
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_tester.en.html
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -o weechat_tester.en.html ${CMAKE_CURRENT_SOURCE_DIR}/weechat_tester.en.adoc
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/../docinfo.html
${CMAKE_CURRENT_SOURCE_DIR}/weechat_tester.en.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building weechat_tester.en.html"
)
add_custom_target(doc-tester-en ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_tester.en.html)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_tester.en.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
# relay protocol
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_relay_protocol.en.html
+1 -7
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2023 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2006 Julien Louis <ptitlouis@sysif.net>
#
# This file is part of WeeChat, the extensible chat client.
@@ -29,7 +29,6 @@ EXTRA_DIST = CMakeLists.txt \
weechat_scripting.en.adoc \
weechat_faq.en.adoc \
weechat_quickstart.en.adoc \
weechat_tester.en.adoc \
weechat_relay_protocol.en.adoc \
weechat_dev.en.adoc \
includes/autogen_api_completions.en.adoc \
@@ -58,7 +57,6 @@ if DOC
weechat_scripting.en.html \
weechat_faq.en.html \
weechat_quickstart.en.html \
weechat_tester.en.html \
weechat_relay_protocol.en.html \
weechat_dev.en.html
doc_install = install-doc
@@ -92,10 +90,6 @@ weechat_faq.en.html: weechat_faq.en.adoc $(abs_top_srcdir)/doc/docinfo.html
weechat_quickstart.en.html: weechat_quickstart.en.adoc $(abs_top_srcdir)/doc/docinfo.html
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_quickstart.en.html $(abs_top_srcdir)/doc/en/weechat_quickstart.en.adoc
# tester's guide
weechat_tester.en.html: weechat_tester.en.adoc $(abs_top_srcdir)/doc/docinfo.html
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_tester.en.html $(abs_top_srcdir)/doc/en/weechat_tester.en.adoc
# relay protocol
weechat_relay_protocol.en.html: weechat_relay_protocol.en.adoc $(abs_top_srcdir)/doc/docinfo.html
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_relay_protocol.en.html $(abs_top_srcdir)/doc/en/weechat_relay_protocol.en.adoc
@@ -26,6 +26,8 @@
| irc | irc_channels | channels on all IRC servers
| irc | irc_channels_autojoin | channels automatically joined on the current server (option "autojoin")
| irc | irc_ignores_numbers | numbers for defined ignores
| irc | irc_modelist_masks | modelist masks of current IRC channel; required argument: modelist mode
@@ -92,6 +94,8 @@
| tcl | tcl_script | list of scripts
| trigger | trigger_add_arguments | arguments for command that adds a trigger: trigger name, hooks, hook arguments, hook conditions, hook regex, hook command, hook return code, post actions
| trigger | trigger_hook_arguments | default arguments for a hook
| trigger | trigger_hook_command | default command for a hook
@@ -146,6 +150,14 @@
| weechat | cursor_areas | areas ("chat" or bar name) for free cursor movement
| weechat | custom_bar_item_add_arguments | arguments for command that adds a custom bar item: item name, conditions, content
| weechat | custom_bar_item_conditions | conditions for custom bar item
| weechat | custom_bar_item_contents | contents for custom bar item
| weechat | custom_bar_items_names | names of custom bar items
| weechat | env_value | value of an environment variable
| weechat | env_vars | environment variables
+12
View File
@@ -79,6 +79,8 @@ _last_nick_speaking_time_   (pointer, hdata: "irc_channel_speaking") +
_modelists_   (pointer, hdata: "irc_modelist") +
_last_modelist_   (pointer, hdata: "irc_modelist") +
_join_smart_filtered_   (hashtable) +
_typing_state_   (integer) +
_typing_status_sent_   (time) +
_buffer_   (pointer, hdata: "buffer") +
_buffer_as_string_   (string) +
_prev_channel_   (pointer, hdata: "irc_channel") +
@@ -237,6 +239,8 @@ _sasl_scram_client_first_   (string) +
_sasl_scram_salted_pwd_   (other) +
_sasl_scram_salted_pwd_size_   (integer) +
_sasl_scram_auth_message_   (string) +
_sasl_temp_username_   (string) +
_sasl_temp_password_   (string) +
_is_connected_   (integer) +
_ssl_connected_   (integer) +
_disconnected_   (integer) +
@@ -267,6 +271,10 @@ _chantypes_   (string) +
_chanmodes_   (string) +
_monitor_   (integer) +
_monitor_time_   (time) +
_clienttagdeny_   (string) +
_clienttagdeny_count_   (integer) +
_clienttagdeny_array_   (string, array_size: "clienttagdeny_count") +
_typing_allowed_   (integer) +
_reconnect_delay_   (integer) +
_reconnect_start_   (time) +
_command_time_   (time) +
@@ -574,6 +582,7 @@ _title_   (string) +
_own_lines_   (pointer, hdata: "lines") +
_mixed_lines_   (pointer, hdata: "lines") +
_lines_   (pointer, hdata: "lines") +
_next_line_id_   (integer) +
_time_for_each_line_   (integer) +
_chat_refresh_needed_   (integer) +
_nicklist_   (integer) +
@@ -623,6 +632,8 @@ _text_search_input_   (string) +
_highlight_words_   (string) +
_highlight_regex_   (string) +
_highlight_regex_compiled_   (pointer) +
_highlight_disable_regex_   (string) +
_highlight_disable_regex_compiled_   (pointer) +
_highlight_tags_restrict_   (string) +
_highlight_tags_restrict_count_   (integer) +
_highlight_tags_restrict_array_   (pointer, array_size: "highlight_tags_restrict_count") +
@@ -913,6 +924,7 @@ _next_line_   (pointer, hdata: "line") +
| structure with one line data
| -
| _buffer_   (pointer, hdata: "buffer") +
_id_   (integer) +
_y_   (integer) +
_date_   (time) +
_date_printed_   (time) +
+2 -2
View File
@@ -60,8 +60,6 @@
| php | php_version | version of the interpreter used | -
| python | python2_bin | path to Python 2.x interpreter (*deprecated* since version 2.6, scripts must use Python 3 only) | -
| python | python_eval | evaluation of source code | source code to execute
| python | python_interpreter | name of the interpreter used | -
@@ -128,6 +126,8 @@
| weechat | uptime | WeeChat uptime (format: "days:hh:mm:ss") | "days" (number of days) or "seconds" (number of seconds) (optional)
| weechat | uptime_current | WeeChat uptime for the current process only (upgrades with /upgrade command are ignored) (format: "days:hh:mm:ss") | "days" (number of days) or "seconds" (number of seconds) (optional)
| weechat | version | WeeChat version | -
| weechat | version_git | WeeChat git version (output of command "git describe" for a development version only, empty for a stable release) | -
@@ -8,7 +8,7 @@
|===
| Plugin | Name | Description | Hashtable (input) | Hashtable (output)
| irc | irc_message_parse | parse an IRC message | "message": IRC message, "server": server name (optional) | "tags": tags, "message_without_tags": message without the tags, "nick": nick, "user": user, "host": host, "command": command, "channel": channel, "arguments": arguments (includes channel), "text": text (for example user message), "pos_command": index of "command" message ("-1" if "command" was not found), "pos_arguments": index of "arguments" message ("-1" if "arguments" was not found), "pos_channel": index of "channel" message ("-1" if "channel" was not found), "pos_text": index of "text" message ("-1" if "text" was not found)
| irc | irc_message_parse | parse an IRC message | "message": IRC message, "server": server name (optional) | "tags": tags, "tag_xxx": unescaped value of tag "xxx" (one key per tag), "message_without_tags": message without the tags, "nick": nick, "user": user, "host": host, "command": command, "channel": channel, "arguments": arguments (includes channel), "text": text (for example user message), "param1" ... "paramN": parsed command parameters, "num_params": number of parsed command parameters, "pos_command": index of "command" message ("-1" if "command" was not found), "pos_arguments": index of "arguments" message ("-1" if "arguments" was not found), "pos_channel": index of "channel" message ("-1" if "channel" was not found), "pos_text": index of "text" message ("-1" if "text" was not found)
| irc | irc_message_split | split an IRC message (to fit in 512 bytes by default) | "message": IRC message, "server": server name (optional) | "msg1" ... "msgN": messages to send (without final "\r\n"), "args1" ... "argsN": arguments of messages, "count": number of messages
@@ -4,18 +4,26 @@
//
// tag::plugins_priority[]
. charset (15000)
. logger (14000)
. exec (13000)
. trigger (12000)
. spell (11000)
. alias (10000)
. buflist (9000)
. fifo (8000)
. charset (16000)
. logger (15000)
. exec (14000)
. trigger (13000)
. spell (12000)
. alias (11000)
. buflist (10000)
. fifo (9000)
. typing (8000)
. xfer (7000)
. irc (6000)
. relay (5000)
. guile, javascript, lua, perl, php, python, ruby, tcl (4000)
. guile (4070)
. javascript (4060)
. lua (4050)
. perl (4040)
. php (4030)
. python (4020)
. ruby (4010)
. tcl (4000)
. script (3000)
. fset (2000)
// end::plugins_priority[]
+47 -21
View File
@@ -6,7 +6,7 @@
// tag::url_options[]
[width="100%",cols="2,^1,7",options="header"]
|===
| Option | Type ^(1)^ | Constants ^(2)^
| Option | Type ^(1)^ | Constants ^(2)^
| verbose | long |
@@ -48,10 +48,6 @@
| address_scope | long |
| protocols | mask | http, https, ftp, ftps, scp, sftp, telnet, ldap, ldaps, dict, file, tftp, all, imap, imaps, pop3, pop3s, smtp, smtps, rtsp, rtmp, rtmpt, rtmpe, rtmpte, rtmps, rtmpts, gopher, smb, smbs
| redir_protocols | mask | http, https, ftp, ftps, scp, sftp, telnet, ldap, ldaps, dict, file, tftp, all, imap, imaps, pop3, pop3s, smtp, smtps, rtsp, rtmp, rtmpt, rtmpe, rtmpte, rtmps, rtmpts, gopher, smb, smbs
| noproxy | string |
| socks5_gssapi_nec | long |
@@ -82,15 +78,19 @@
| doh_url | string |
| protocols_str | string |
| redir_protocols_str | string |
| netrc | long | ignored, optional, required
| userpwd | string |
| proxyuserpwd | string |
| httpauth | mask | none, basic, digest, ntlm, any, anysafe, digest_ie, only, ntlm_wb, negotiate, gssapi, bearer
| httpauth | mask | none, basic, digest, ntlm, any, anysafe, digest_ie, only, ntlm_wb, negotiate, gssapi, bearer, aws_sigv4
| proxyauth | mask | none, basic, digest, ntlm, any, anysafe, digest_ie, only, ntlm_wb, negotiate, gssapi, bearer
| proxyauth | mask | none, basic, digest, ntlm, any, anysafe, digest_ie, only, ntlm_wb, negotiate, gssapi, bearer, aws_sigv4
| netrc_file | string |
@@ -108,6 +108,8 @@
| tlsauth_password | string |
| sasl_authzid | string |
| sasl_ir | long |
| xoauth2_bearer | string |
@@ -120,8 +122,6 @@
| followlocation | long |
| put | long |
| post | long |
| postfields | string |
@@ -144,7 +144,7 @@
| cookiejar | string |
| http_version | long | none, 1_0, 1_1, 2_0, 2, 2tls, 2_prior_knowledge
| http_version | long | none, 1_0, 1_1, 2_0, 2, 2tls, 2_prior_knowledge, 3
| cookiesession | long |
@@ -182,12 +182,20 @@
| request_target | string |
| http09_allowed | long |
| hsts | string |
| hsts_ctrl | mask | enable, readonlyfile
| mail_from | string |
| mail_rcpt | list |
| mail_auth | string |
| mail_rcpt_alllowfails | long |
| tftp_blksize | long |
| tftp_no_options | long |
@@ -206,8 +214,6 @@
| ftp_create_missing_dirs | long |
| ftp_response_timeout | long |
| ftpsslauth | long | default, ssl, tls
| ftp_account | string |
@@ -238,6 +244,8 @@
| rtsp_server_cseq | long |
| aws_sigv4 | string |
| crlf | long |
| range | string |
@@ -274,6 +282,8 @@
| upload_buffersize | long |
| mime_options | mask | formescape
| timeout | long |
| low_speed_limit | long |
@@ -298,6 +308,8 @@
| connecttimeout_ms | long |
| maxage_conn | long |
| maxconnects | long |
| use_ssl | long | none, try, control, all
@@ -322,6 +334,8 @@
| upkeep_interval_ms | long |
| maxlifetime_conn | long |
| sslcert | string |
| sslversion | long | default, tlsv1, sslv2, sslv3, tlsv1_0, tlsv1_1, tlsv1_2, tlsv1_3, max_default, max_none, max_tlsv1_0, max_tlsv1_1, max_tlsv1_2, max_tlsv1_3
@@ -330,10 +344,6 @@
| cainfo | string |
| random_file | string |
| egdsocket | string |
| ssl_verifyhost | long |
| ssl_cipher_list | string |
@@ -364,12 +374,10 @@
| gssapi_delegation | long | none, policy_flag, flag
| ssl_options | long | allow_beast, no_revoke, no_backends, ok, too_late, unknown_backend
| ssl_options | long | allow_beast, no_revoke, no_backends, ok, too_late, unknown_backend, no_partialchain, revoke_best_effort, native_ca, auto_client_cert
| ssl_enable_alpn | long |
| ssl_enable_npn | long |
| pinnedpublickey | string |
| ssl_verifystatus | long |
@@ -398,7 +406,7 @@
| proxy_ssl_cipher_list | list |
| proxy_ssl_options | long | allow_beast, no_revoke, no_backends, ok, too_late, unknown_backend
| proxy_ssl_options | long | allow_beast, no_revoke, no_backends, ok, too_late, unknown_backend, no_partialchain, revoke_best_effort, native_ca, auto_client_cert
| proxy_ssl_verifyhost | long |
@@ -414,6 +422,18 @@
| proxy_tls13_ciphers | list |
| proxy_issuercert | string |
| ssl_ec_curves | string |
| doh_ssl_verifyhost | long |
| doh_ssl_verifypeer | long |
| doh_ssl_verifystatus | long |
| ca_cache_timeout | long |
| ssh_auth_types | mask | none, policy_flag, flag
| ssh_public_keyfile | string |
@@ -426,11 +446,17 @@
| ssh_compression | long |
| ssh_host_public_key_sha256 | string |
| telnetoptions | list |
| ws_options | mask | binary, close, cont, offset, ping, pong, raw_mode, text
| new_file_perms | long |
| new_directory_perms | long |
| telnetoptions | list |
| quick_exit | long |
|===
// end::url_options[]
+292 -77
View File
@@ -17,10 +17,11 @@ target: server name
* `+allchan+`: execute a command on all channels of all connected servers
----
/allchan [-current] [-exclude=<channel>[,<channel>...]] <command>
[-current] -include=<channel>[,<channel>...] <command>
/allchan [-current] [-parted] [-exclude=<channel>[,<channel>...]] <command>
[-current] [-parted] -include=<channel>[,<channel>...] <command>
-current: execute command for channels of current server only
-parted: execute on parted channels only
-exclude: exclude some channels (wildcard "*" is allowed)
-include: include only some channels (wildcard "*" is allowed)
command: command to execute (or text to send to buffer if command does not start with '/')
@@ -41,6 +42,8 @@ Examples:
/allchan -exclude=#weechat,#linux* hello
say 'hello' on all channels beginning with #linux:
/allchan -include=#linux* hello
close all buffers with parted channels:
/allchan -parted /close
----
[[command_irc_allpv]]
@@ -100,6 +103,56 @@ Examples:
/allserv /whois $nick
----
[[command_irc_auth]]
* `+auth+`: authenticate with SASL
----
/auth [<username> <password>]
username: SASL username (content is evaluated, see /help eval; server options are evaluated with ${irc_server.xxx} and ${server} is replaced by the server name)
password: SASL password or path to file with private key (content is evaluated, see /help eval; server options are evaluated with ${irc_server.xxx} and ${server} is replaced by the server name)
If username and password are not provided, the values from server options "sasl_username" and "sasl_password" (or "sasl_key") are used.
Examples:
authenticate with username/password defined in the server:
/auth
authenticate as a different user:
/auth user2 password2
authenticate as a different user with mechanism ecdsa-nist256p-challenge:
/auth user2 ${weechat_config_dir}/ecdsa2.pem
----
[[command_irc_autojoin]]
* `+autojoin+`: configure the "autojoin" server option
----
/autojoin add [<channel1> [<channel2>...]]
addraw <channel1>[,<channel2>...] [<key1>[,<key2>...]]
del [<channel1> [<channel2>...]]
apply
sort
add: add current channel or a list of channels (with optional keys) to the autojoin option; if you are on the channel and the key is not provided, the key is read in the channel
addraw: use the IRC raw format (same as /join command): all channels separated by commas, optional keys separated by commas
del: delete current channel or a list of channels from the autojoin option
channel: channel name
key: key for the channel
apply: set currently joined channels in the autojoin option
sort: sort alphabetically channels in the autojoin option
Examples:
/autojoin add
/autojoin add #test
/autojoin add #chan1 #chan2
/allchan /autojoin add
/autojoin addraw #chan1,#chan2,#chan3 key1,key2
/autojoin del
/autojoin del #chan1
/autojoin apply
/autojoin sort
----
[[command_irc_ban]]
* `+ban+`: ban nicks or hosts
@@ -123,19 +176,25 @@ Without argument, this command displays the ban list for current channel.
ls: list the capabilities supported by the server
list: list the capabilities currently enabled
req: request a capability
req: request a new capability or remove a capability (if starting with "-", for example: "-multi-prefix")
ack: acknowledge capabilities which require client-side acknowledgement
end: end the capability negotiation
Without argument, "ls" and "list" are sent.
Capabilities supported by WeeChat are: account-notify, away-notify, cap-notify, chghost, extended-join, invite-notify, multi-prefix, server-time, userhost-in-names.
Capabilities supported by WeeChat are: account-notify, away-notify, cap-notify, chghost, extended-join, invite-notify, message-tags, multi-prefix, server-time, setname, userhost-in-names.
The capabilities to automatically enable on servers can be set in option irc.server_default.capabilities (or by server in option irc.server.xxx.capabilities).
Examples:
/cap
/cap req multi-prefix away-notify
display supported and enabled capabilities:
/cap
request capabilities multi-prefix and away-notify:
/cap req multi-prefix away-notify
request capability extended-join, remove capability multi-prefix:
/cap req extended-join -multi-prefix
remove capability away-notify:
/cap req -away-notify
----
[[command_irc_connect]]
@@ -808,6 +867,15 @@ mask: list only services matching this mask
type: list only services of this type
----
[[command_irc_setname]]
* `+setname+`: set real name
----
/setname <realname>
realname: new real name
----
[[command_irc_squery]]
* `+squery+`: deliver a message to a service
@@ -1036,6 +1104,19 @@ Examples:
// end::alias_commands[]
// tag::weechat_commands[]
[[command_weechat_allbuf]]
* `+allbuf+`: execute a command on all buffers
----
/allbuf <command>
command: command to execute (or text to send to buffer if command does not start with '/')
Examples:
set unread marker on all buffers:
/allbuf /buffer set unread
----
[[command_weechat_away]]
* `+away+`: set or remove away status
@@ -1112,6 +1193,8 @@ Examples:
unmerge [<number>|-all]
hide [<number>|<name>|-all [<number>|<name>...]]
unhide [<number>|<name>|-all [<number>|<name>...]]
switch [-previous]
zoom
renumber [<number1> [<number2> [<start>]]]
close [<n1>[-<n2>]|<name>...]
notify [<level>]
@@ -1120,6 +1203,7 @@ Examples:
delvar <name>
set <property> [<value>]
get <property>
jump smart|last_displayed|prev_visited|next_visited
<number>|-|+|<name>
list: list buffers (without argument, this list is displayed)
@@ -1133,6 +1217,8 @@ Examples:
unmerge: unmerge buffer from other buffers which have same number
hide: hide the buffer
unhide: unhide the buffer
switch: switch to next merged buffer (or to previous buffer with "-previous")
zoom: zoom on merged buffer
renumber: renumber buffers (works only if option weechat.look.buffer_auto_renumber is off)
close: close buffer (number/range or name is optional)
notify: display or set notify level for current buffer: this level determines whether buffer will be added to hotlist or not:
@@ -1146,6 +1232,11 @@ renumber: renumber buffers (works only if option weechat.look.buffer_auto_renumb
delvar: delete a local variable from the current buffer
set: set a property in the current buffer
get: display a property of current buffer
jump: jump to another buffer:
smart: next buffer with activity
last_displayed: last buffer displayed (before last jump to a buffer)
prev_visited: previously visited buffer
next_visited: jump to next visited buffer
number: jump to buffer by number, possible prefix:
'+': relative jump, add number to current
'-': relative jump, sub number to current
@@ -1270,23 +1361,25 @@ Examples:
----
/debug list
set <plugin> <level>
dump [<plugin>]
buffer|color|infolists|memory|tags|term|windows
dump|hooks [<plugin>]
buffer|certs|color|dirs|infolists|libs|memory|tags|term|windows
mouse|cursor [verbose]
hdata [free]
time <command>
unicode <string>
list: list plugins with debug levels
set: set debug level for plugin
plugin: name of plugin ("core" for WeeChat core)
level: debug level for plugin (0 = disable debug)
dump: save memory dump in WeeChat log file (same dump is written when WeeChat crashes)
hooks: display infos about hooks (with a plugin: display detailed info about hooks created by the plugin)
buffer: dump buffer content with hexadecimal values in log file
certs: display number of loaded trusted certificate authorities
color: display infos about current color pairs
cursor: toggle debug for cursor mode
dirs: display directories
hdata: display infos about hdata (with free: remove all hdata in memory)
hooks: display infos about hooks
infolists: display infos about infolists
libs: display infos about external libraries used
memory: display infos about memory usage
@@ -1295,6 +1388,13 @@ infolists: display infos about infolists
term: display infos about terminal
windows: display windows tree
time: measure time to execute a command or to send text to the current buffer
unicode: display information about string and unicode chars (evaluated, see /help eval)
Examples:
/debug set irc 1
/debug mouse verbose
/debug time /filter toggle
/debug unicode ${chars:${\u26C0}-${\u26CF}}
----
[[command_weechat_eval]]
@@ -1341,28 +1441,36 @@ To force a string comparison, you can add double quotes around each expression,
"50" > "100" ==> 1
Some variables are replaced in expression, using the format ${variable}, variable can be, by order of priority:
1. the string itself without evaluation (format: "raw:xxx")
2. an evaluated sub-string (format: "eval:xxx")
3. an evaluated condition (format: "eval_cond:xxx")
4. a string with escaped chars (format: "esc:xxx" or "\xxx")
5. a string with chars to hide (format: "hide:char,string")
6. a string with max chars (format: "cut:max,suffix,string" or "cut:+max,suffix,string")
- the string itself without evaluation (format: "raw:xxx")
- a user-defined variable (format: "name")
- an evaluated sub-string (format: "eval:xxx")
- an evaluated condition (format: "eval_cond:xxx")
- a string with escaped chars (format: "esc:xxx" or "\xxx")
- a string with a range of chars (format: "chars:xxx" or "chars:c1-c2" where "xxx" is one of: "digit", "xdigit", "lower", "upper", "alpha", "alnum")
- a string converted to lower case (format: "lower:xxx")
- a string converted to upper case (format: "upper:xxx")
- a string with chars to hide (format: "hide:char,string")
- a string with max chars (format: "cut:max,suffix,string" or "cut:+max,suffix,string")
or max chars displayed on screen (format: "cutscr:max,suffix,string" or "cutscr:+max,suffix,string")
7. a reversed string (format: "rev:xxx" or "revscr:xxx")
8. a repeated string (format: "repeat:count,string")
9. length of a string (format: "length:xxx" or "lengthscr:xxx")
10. a color (format: "color:xxx", see "Plugin API reference", function "color")
11. a modifier (format: "modifier:name,data,string")
12. an info (format: "info:name,arguments", arguments are optional)
13. a base 16/32/64 encoded/decoded string (format: "base_encode:base,xxx" or "base_decode:base,xxx")
14. current date/time (format: "date" or "date:format")
15. an environment variable (format: "env:XXX")
16. a ternary operator (format: "if:condition?value_if_true:value_if_false")
17. result of an expression with parentheses and operators + - * / // % ** (format: "calc:xxx")
18. a translated string (format: "translate:xxx")
19. an option (format: "file.section.option")
20. a local variable in buffer
21. a hdata name/variable (the value is automatically converted to string), by default "window" and "buffer" point to current window/buffer.
- a reversed string (format: "rev:xxx" or "revscr:xxx")
- a repeated string (format: "repeat:count,string")
- length of a string (format: "length:xxx" or "lengthscr:xxx")
- split of a string (format: "split:number,separators,flags,xxx")
- split of shell argmuents (format: "split_shell:number,xxx")
- a color (format: "color:xxx", see "Plugin API reference", function "color")
- a modifier (format: "modifier:name,data,string")
- an info (format: "info:name,arguments", arguments are optional)
- a base 16/32/64 encoded/decoded string (format: "base_encode:base,xxx" or "base_decode:base,xxx")
- current date/time (format: "date" or "date:format")
- an environment variable (format: "env:XXX")
- a ternary operator (format: "if:condition?value_if_true:value_if_false")
- result of an expression with parentheses and operators + - * / // % ** (format: "calc:xxx")
- a random integer number (format: "random:min,max")
- a translated string (format: "translate:xxx")
- define a user variable (format: "define:name,value")
- an option (format: "file.section.option")
- a local variable in buffer
- a hdata name/variable (the value is automatically converted to string), by default "window" and "buffer" point to current window/buffer.
Format for hdata can be one of following:
hdata.var1.var2...: start with a hdata (pointer must be known), and ask variables one after one (other hdata can be followed)
hdata[list].var1.var2...: start with a hdata using a list/pointer/pointer name, for example:
@@ -1374,29 +1482,43 @@ Format for hdata can be one of following:
For name of hdata and variables, please look at "Plugin API reference", function "weechat_hdata_get".
Examples (simple strings):
/eval -n ${raw:${info:version}} ==> ${info:version}
/eval -n ${eval_cond:${window.win_width}>100} ==> 1
/eval -n ${info:version} ==> 0.4.3
/eval -n ${env:HOME} ==> /home/user
/eval -n ${weechat.look.scroll_amount} ==> 3
/eval -n ${sec.data.password} ==> secret
/eval -n ${window} ==> 0x2549aa0
/eval -n ${window.buffer} ==> 0x2549320
/eval -n ${window.buffer.full_name} ==> core.weechat
/eval -n ${window.buffer.number} ==> 1
/eval -n ${\t} ==> <tab>
/eval -n ${hide:-,${relay.network.password}} ==> --------
/eval -n ${cut:3,+,test} ==> tes+
/eval -n ${cut:+3,+,test} ==> te+
/eval -n ${date:%H:%M:%S} ==> 07:46:40
/eval -n ${if:${info:term_width}>80?big:small} ==> big
/eval -n ${rev:Hello} ==> olleH
/eval -n ${repeat:5,-} ==> -----
/eval -n ${length:test} ==> 4
/eval -n ${calc:(5+2)*3} ==> 21
/eval -n ${base_encode:64,test} ==> dGVzdA==
/eval -n ${base_decode:64,dGVzdA==} ==> test
/eval -n ${translate:Plugin} ==> Extension
/eval -n ${raw:${info:version}} ==> ${info:version}
/eval -n ${eval_cond:${window.win_width}>100} ==> 1
/eval -n ${info:version} ==> 0.4.3
/eval -n ${env:HOME} ==> /home/user
/eval -n ${weechat.look.scroll_amount} ==> 3
/eval -n ${sec.data.password} ==> secret
/eval -n ${window} ==> 0x2549aa0
/eval -n ${window.buffer} ==> 0x2549320
/eval -n ${window.buffer.full_name} ==> core.weechat
/eval -n ${window.buffer.number} ==> 1
/eval -n ${\t} ==> <tab>
/eval -n ${chars:digit} ==> 0123456789
/eval -n ${chars:J-T} ==> JKLMNOPQRST
/eval -n ${lower:TEST} ==> test
/eval -n ${upper:test} ==> TEST
/eval -n ${hide:-,${relay.network.password}} ==> --------
/eval -n ${cut:3,+,test} ==> tes+
/eval -n ${cut:+3,+,test} ==> te+
/eval -n ${date:%H:%M:%S} ==> 07:46:40
/eval -n ${if:${info:term_width}>80?big:small} ==> big
/eval -n ${rev:Hello} ==> olleH
/eval -n ${repeat:5,-} ==> -----
/eval -n ${length:test} ==> 4
/eval -n ${split:1,,,abc,def,ghi} ==> abc
/eval -n ${split:-1,,,abc,def,ghi} ==> ghi
/eval -n ${split:count,,,abc,def,ghi} ==> 3
/eval -n ${split:random,,,abc,def,ghi} ==> def
/eval -n ${split_shell:1,"arg 1" arg2} ==> arg 1
/eval -n ${split_shell:-1,"arg 1" arg2} ==> arg2
/eval -n ${split_shell:count,"arg 1" arg2} ==> 2
/eval -n ${split_shell:random,"arg 1" arg2} ==> arg2
/eval -n ${calc:(5+2)*3} ==> 21
/eval -n ${random:0,10} ==> 3
/eval -n ${base_encode:64,test} ==> dGVzdA==
/eval -n ${base_decode:64,dGVzdA==} ==> test
/eval -n ${translate:Plugin} ==> Extension
/eval -n ${define:len,${calc:5+3}}${len}x${len} ==> 8x8
Examples (conditions):
/eval -n -c ${window.buffer.number} > 2 ==> 0
@@ -1420,7 +1542,7 @@ Examples (conditions):
add|addreplace <name> <buffer>[,<buffer>...] <tags> <regex>
rename <name> <new_name>
recreate <name>
del <name>|-all
del <name>|-all [<name>...]
list: list all filters
enable: enable filters (filters are enabled by default)
@@ -1504,6 +1626,22 @@ clear: clear history
value: number of history entries to show
----
[[command_weechat_hotlist]]
* `+hotlist+`: manage hotlist
----
/hotlist add [low|message|private|highlight]
clear [<level>]
remove
restore [-all]
add: add current buffer in hotlist (default level: "low", conditions defined in option weechat.look.hotlist_add_conditions are NOT checked)
clear: clear hotlist
level: "lowest" to clear only lowest level in hotlist, highest" to clear only highest level in hotlist, or level mask: integer which is a combination of 1=join/part, 2=message, 4=private, 8=highlight)
remove: remove current buffer from hotlist
restore: restore latest hotlist removed in the current buffer (or all buffers with -all)
----
[[command_weechat_input]]
* `+input+`: functions for command line
@@ -1526,6 +1664,7 @@ list of actions:
delete_previous_char: delete previous char
delete_next_char: delete next char
delete_previous_word: delete previous word
delete_previous_word_whitespace: delete previous word (until whitespace)
delete_next_word: delete next word
delete_beginning_of_line: delete from beginning of line until cursor
delete_end_of_line: delete from cursor until end of line
@@ -1544,20 +1683,10 @@ list of actions:
history_next: recall next command in current buffer history
history_global_previous: recall previous command in global history
history_global_next: recall next command in global history
jump_smart: jump to next buffer with activity
jump_last_buffer_displayed: jump to last buffer displayed (before last jump to a buffer)
jump_previously_visited_buffer: jump to previously visited buffer
jump_next_visited_buffer: jump to next visited buffer
hotlist_clear: clear hotlist (optional argument: "lowest" to clear only lowest level in hotlist, "highest" to clear only highest level in hotlist, or level mask: integer which is a combination of 1=join/part, 2=message, 4=private, 8=highlight)
grab_key: grab a key (optional argument: delay for end of grab, default is 500 milliseconds)
grab_key_command: grab a key with its associated command (optional argument: delay for end of grab, default is 500 milliseconds)
grab_mouse: grab mouse event code
grab_mouse_area: grab mouse event code with area
set_unread: set unread marker for all buffers
set_unread_current_buffer: set unread marker for current buffer
switch_active_buffer: switch to next merged buffer
switch_active_buffer_previous: switch to previous merged buffer
zoom_merged_buffer: zoom on merged buffer
insert: insert text in command line (escaped chars are allowed, see /help print)
send: send text to the buffer
paste_start: start paste (bracketed paste mode)
@@ -1566,6 +1695,49 @@ list of actions:
This command is used by key bindings or plugins.
----
[[command_weechat_item]]
* `+item+`: manage custom bar items
----
/item list
add|addreplace <name> "<conditions>" "<content>"
rename <name> <new_name>
refresh <name> [<name>...]
recreate <name>
del <name>|-all
list: list all custom bar items
add: add a custom bar item
addreplace: add or replace an existing custom bar item
name: custom bar item name
conditions: evaluated conditions to display the bar item (for example to display the bar item only in specific buffers)
content: content (evaluated, see /help eval)
rename: rename a custom bar item
refresh: update content of item in all bars where the item is displayed; any item can be refreshed: default/plugin/custom bar items
recreate: set input with the command used to edit the custom bar item
del: delete a custom bar item
-all: delete all custom bar items
Examples:
add item with terminal size, displayed only in buffers with number = 1:
/item add terminfo "${buffer.number} == 1" "term:${info:term_width}x${info:term_height}"
add item with buffer info:
/item add bufinfo "" "${buffer.number}:${buffer.name}${if:${buffer.zoomed}?(Z)}"
add item with date/time using format "Dec 25, 12:34 +0100", refreshed every minute:
/item add datetime "" "${date:%b %d, %H:%M %z}"
/trigger add datetime_refresh timer "60000;60" "" "" "/item refresh datetime"
add item with number of lines in buffer (displayed/total), refreshed each time a new line is displayed or if filtered lines have changed:
/item add lines_count "" "${calc:${buffer.lines.lines_count}-${buffer.lines.lines_hidden}}/${buffer.lines.lines_count} lines"
/trigger add lines_count_refresh_print print "" "" "" "/item refresh lines_count"
/trigger add lines_count_refresh_signal signal "window_switch;buffer_switch;buffer_lines_hidden;filters_*" "" "" "/item refresh lines_count"
force refresh of item "lines_count":
/item refresh lines_count
recreate item "lines_count" with different conditions or content:
/item recreate lines_count
delete item "lines_count":
/item del lines_count
----
[[command_weechat_key]]
* `+key+`: bind/unbind keys
@@ -1644,6 +1816,8 @@ windows: store/apply only windows (buffer displayed by each window)
Without argument, this command displays stored layouts.
The current layout can be saved on /quit command with the option "weechat.look.save_layout_on_exit".
Note: the layout only remembers windows split and buffers numbers. It does not open buffers. That means for example you must still auto-join IRC channels to open the buffers, the saved layout only applies once the buffers are opened.
----
[[command_weechat_mouse]]
@@ -1693,21 +1867,26 @@ Examples:
* `+plugin+`: list/load/unload plugins
----
/plugin list|listfull [<name>]
/plugin list [-o|-ol|-i|-il|<name>]
listfull [<name>]
load <filename> [<arguments>]
autoload [<arguments>]
reload [<name>|* [<arguments>]]
unload [<name>]
list: list loaded plugins
-o: send list of loaded plugins to buffer (string in English)
-ol: send list of loaded plugins to buffer (translated string)
-i: copy list of loaded plugins in command line (for sending to buffer) (string in English)
-il: copy list of loaded plugins in command line (for sending to buffer) (translated string)
name: a plugin name
listfull: list loaded plugins (verbose)
load: load a plugin
filename: plugin (file) to load
arguments: arguments given to plugin on load
autoload: autoload plugins in system or user directory
reload: reload a plugin (if no name given, unload all plugins, then autoload plugins)
unload: unload a plugin (if no name given, unload all plugins)
filename: plugin (file) to load
name: a plugin name
arguments: arguments given to plugin on load
Without argument, this command lists loaded plugins.
----
@@ -1935,6 +2114,32 @@ Examples:
/set env ABC ""
----
[[command_weechat_toggle]]
* `+toggle+`: toggle value of a config option
----
/toggle <option> [<value> [<value>...]]
option: name of an option
value: possible values for the option (values are split like the shell command arguments: quotes can be used to preserve spaces at the beginning/end of values)
Behavior:
- only an option of type boolean or string can be toggled without a value:
- boolean: toggle between on/off according to current value
- string: toggle between empty string and default value (works only if empty string is allowed for the option)
- with a single value given, toggle between this value and the default value of option
- with multiple values given, toggle between these values: the value used is the one following the current value of option; if the current value of option is not in list, the first value in the list is used
- the special value "null" can be given, but only as first value in the list and without quotes around.
Examples:
toggle display of time in chat area (without displaying the new value used):
/mute /toggle weechat.look.buffer_time_format
switch format of time in chat area (with seconds, without seconds, disabled):
/toggle weechat.look.buffer_time_format "%H:%M:%S" "%H:%M" ""
toggle autojoin of #weechat channel on libera server:
/toggle irc.server.libera.autojoin null #weechat
----
[[command_weechat_unset]]
* `+unset+`: unset/reset config options
@@ -1955,19 +2160,22 @@ Examples:
----
[[command_weechat_upgrade]]
* `+upgrade+`: reload the WeeChat binary without disconnecting from servers
* `+upgrade+`: save WeeChat session and reload the WeeChat binary without disconnecting from servers
----
/upgrade [-yes] [<path_to_binary>|-quit]
/upgrade [-yes] [<path_to_binary>|-save|-quit]
-yes: required if option "weechat.look.confirm_upgrade" is enabled
path_to_binary: path to WeeChat binary (default is current binary)
-dummy: do nothing (option used to prevent accidental completion with "-quit")
-save: only save the session, do not quit nor reload WeeChat; the configuration files are not saved (if needed you can use /save before this command)
-quit: close *ALL* connections, save session and quit WeeChat, which makes possible a delayed restoration (see below)
This command upgrades and reloads a running WeeChat session. The new WeeChat binary must have been compiled or installed with a package manager before running this command.
Note: SSL connections are lost during upgrade, because reload of SSL sessions is currently not possible with GnuTLS. There is automatic reconnection after upgrade.
Note: SSL connections are lost during upgrade (except with -save), because the reload of SSL sessions is currently not possible with GnuTLS. There is automatic reconnection after upgrade.
Important: use of option -save can be dangerous, it is recommended to use only /upgrade (or with -quit) for a standard upgrade and a restart; the option -save can be used to save the session regularly and restore it in case of after abnormal exit (power outage, crash, etc.)
Upgrade process has 4 steps:
1. save session into files for core and plugins (buffers, history, ..)
@@ -1975,14 +2183,18 @@ Upgrade process has 4 steps:
3. save WeeChat configuration (weechat.conf)
4. execute new WeeChat binary and reload session.
With option "-quit", the process is slightly different:
With option "-quit", the process is:
1. close *ALL* connections (irc, xfer, relay, ...)
2. save session into files (*.upgrade)
3. unload all plugins
4. save WeeChat configuration
5. quit WeeChat
Then later you can restore session with command: weechat --upgrade
IMPORTANT: you must restore the session with exactly same configuration (files *.conf).
With option "-save", the process is:
1. save session into files (*.upgrade) with a disconnected state for IRC servers and Relay clients (but no disconnection is made)
With -quit or -save, you can restore the session later with this command: weechat --upgrade
IMPORTANT: you must restore the session with exactly same configuration (files *.conf) and if possible the same WeeChat version (or a more recent one).
It is possible to restore WeeChat session on another machine if you copy the content of WeeChat home directories (see /debug dirs).
----
@@ -2167,6 +2379,7 @@ The following variables can be used in these options:
- ${format_hotlist}: the formatted hotlist (evaluation of option buflist.format.hotlist)
- ${hotlist}: the raw hotlist
- ${hotlist_priority}: "none", "low", "message", "private" or "highlight"
- ${hotlist_priority_number}: -1 = none, 0 = low, 1 = message, 2 = private, 3 = highlight
- ${format_lag}: the lag for an IRC server buffer, empty if there's no lag (evaluation of option buflist.format.lag)
- ${format_tls_version}: indicator of TLS version for a server buffer, empty for channels (evaluation of option buflist.format.tls_version)
----
@@ -2733,7 +2946,7 @@ protocol.name: protocol and name to relay:
- protocol "weechat" (name is not used)
The "irc" protocol allows any IRC client (including WeeChat itself) to connect on the port.
The "weechat" protocol allows a remote interface to connect on the port, see the list here: https://weechat.org/about/interfaces
The "weechat" protocol allows a remote interface to connect on the port, see the list here: https://weechat.org/about/interfaces/
Without argument, this command opens buffer with list of relay clients.
@@ -2888,7 +3101,7 @@ Examples:
----
/spell enable|disable|toggle
listdict
setdict <dict>[,<dict>...]
setdict -|<dict>[,<dict>...]
deldict
addword [<dict>] <word>
@@ -2896,7 +3109,7 @@ Examples:
disable: disable spell checker
toggle: toggle spell checker
listdict: show installed dictionaries
setdict: set dictionary for current buffer (multiple dictionaries can be separated by a comma)
setdict: set dictionary for current buffer (multiple dictionaries can be separated by a comma, the special value "-" disables spell checking on current buffer)
deldict: delete dictionary used on current buffer
addword: add a word in personal dictionary
@@ -3025,6 +3238,8 @@ Examples (you can also look at default triggers with /trigger listdefault):
/trigger add resize_big signal signal_sigwinch "${info:term_width} >= 100" "" "/bar show nicklist"
silently save config each hour:
/trigger add cfgsave timer 3600000;0;0 "" "" "/mute /save"
silently save WeeChat session at midnight (see /help upgrade):
/trigger add session_save signal day_changed "" "" "/mute /upgrade -save"
open trigger monitor and show only modifiers and triggers whose name starts with "resize":
/trigger monitor @modifier,resize*
----
File diff suppressed because it is too large Load Diff
+5 -2
View File
@@ -1,6 +1,6 @@
// tag::plugin_options[]
For complete doc on plugin options, please look at plugins documentation in
https://weechat.org/doc[WeeChat user's guide].
https://weechat.org/doc/[WeeChat user's guide].
With irc plugin, you can connect to temporary server with an URL like:
@@ -86,6 +86,9 @@ $HOME/.config/weechat/tcl.conf::
$HOME/.config/weechat/trigger.conf::
configuration file for _trigger_ plugin
$HOME/.config/weechat/typing.conf::
configuration file for _typing_ plugin
$HOME/.config/weechat/xfer.conf::
configuration file for _xfer_ plugin
@@ -97,7 +100,7 @@ $HOME/.local/share/weechat/weechat.log::
WeeChat is written by Sébastien Helleu and contributors (complete list is in
the AUTHORS.adoc file).
Copyright (C) 2003-2021 {author}
Copyright (C) 2003-2023 {author}
WeeChat is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
+1 -1
View File
@@ -60,4 +60,4 @@ include::includes/man.en.adoc[tag=copyright]
== SUPPORT / REPORTING BUGS
For help or a bug report: https://weechat.org/about/support
For help or a bug report: https://weechat.org/about/support/
+1 -1
View File
@@ -57,4 +57,4 @@ include::includes/man.en.adoc[tag=copyright]
== SUPPORT / REPORTING BUGS
For help or a bug report: https://weechat.org/about/support
For help or a bug report: https://weechat.org/about/support/
+252 -134
View File
@@ -10,8 +10,8 @@
This manual documents WeeChat chat client, it is part of WeeChat.
Latest version of this document can be found on this page:
https://weechat.org/doc
Latest version of this document can be found on
https://weechat.org/doc/[this page ^↗^,window=_blank].
[[introduction]]
@@ -31,8 +31,8 @@ This manual documents WeeChat internals:
[[repositories]]
== Repositories
WeeChat repositories are on GitHub organization "weechat":
https://github.com/weechat
WeeChat repositories are on GitHub organization
https://github.com/weechat[weechat ^↗^,window=_blank].
List of repositories:
@@ -43,7 +43,7 @@ scripts::
the _official_ scripts submitted on weechat.org
weechat.org::
source of WeeChat website: https://weechat.org/
source of https://weechat.org/[WeeChat website ^↗^,window=_blank]
weercd::
IRC testing server
@@ -89,6 +89,7 @@ The main WeeChat directories are:
|       spell/ | Spell plugin.
|       tcl/ | Tcl scripting API.
|       trigger/ | Trigger plugin.
|       typing/ | Typing plugin.
|       xfer/ | Xfer plugin (IRC DCC file/chat).
| tests/ | Tests.
|    scripts/ | Scripting API tests.
@@ -283,6 +284,7 @@ WeeChat "core" is located in following directories:
|       irc-ignore.c | IRC Ignore.
|       irc-info.c | IRC info/infolists/hdata.
|       irc-input.c | Input of commands/text.
|       irc-join.c | Functions for list of channels to join.
|       irc-message.c | Functions to manipulate IRC messages.
|       irc-mode.c | Functions about channel/nick modes.
|       irc-modelist.c | IRC channel mode lists (+b, +e, +I, ...).
@@ -294,6 +296,8 @@ WeeChat "core" is located in following directories:
|       irc-redirect.c | Redirection of IRC command output.
|       irc-sasl.c | SASL authentication with IRC server.
|       irc-server.c | I/O communication with IRC server.
|       irc-tag.c | Functions to manipulate IRC message tags.
|       irc-typing.c | Typing status.
|       irc-upgrade.c | Save/restore of IRC data when upgrading WeeChat.
|    javascript/ | JavaScript plugin.
|       weechat-js.cpp | Main JavaScript functions (load/unload scripts, execute JavaScript code).
@@ -363,6 +367,11 @@ WeeChat "core" is located in following directories:
|       trigger-command.c | Trigger commands.
|       trigger-completion.c | Trigger completions.
|       trigger-config.c | Trigger config options (file trigger.conf).
|    typing/ | Typing plugin.
|       typing.c | Main typing functions.
|       typing-bar-item.c | Typing bar items.
|       typing-config.c | Typing config options (file typing.conf).
|       typing-status.c | Messages typing status on buffers.
|    xfer/ | Xfer plugin (IRC DCC file/chat).
|       xfer.c | Main xfer functions.
|       xfer-buffer.c | Xfer buffer.
@@ -382,55 +391,74 @@ WeeChat "core" is located in following directories:
[width="100%",cols="2m,3",options="header"]
|===
| Path/file | Description
| tests/ | Root of tests.
|    tests.cpp | Program used to run all tests.
|    scripts/ | Root of scripting API tests.
|       test-scripts.cpp | Program used to run the scripting API tests.
|       python/ | Python scripts to generate and run the scripting API tests.
|          testapigen.py | Python script generating scripts in all languages to test the scripting API.
|          testapi.py | Python script with scripting API tests, used by script testapigen.py.
|          unparse.py | Convert Python code to other languages, used by script testapigen.py.
|    unit/ | Root of unit tests.
|       test-plugins.cpp | Tests: plugins.
|       core/ | Root of unit tests for core.
|          test-core-arraylist.cpp | Tests: arraylists.
|          test-core-calc.cpp | Tests: calculation of expressions.
|          test-core-crypto.cpp | Tests: cryptographic functions.
|          test-core-dir.cpp | Tests: directory/file functions.
|          test-core-eval.cpp | Tests: evaluation of expressions.
|          test-core-hashtble.cpp | Tests: hashtables.
|          test-core-hdata.cpp | Tests: hdata.
|          test-core-hook.cpp | Tests: hooks.
|          test-core-infolist.cpp | Tests: infolists.
|          test-core-list.cpp | Tests: lists.
|          test-core-network.cpp | Tests: network functions.
|          test-core-secure.cpp | Tests: secured data.
|          test-core-signal.cpp | Tests: signals.
|          test-core-string.cpp | Tests: strings.
|          test-core-url.cpp | Tests: URLs.
|          test-core-utf8.cpp | Tests: UTF-8.
|          test-core-util.cpp | Tests: utility functions.
|       gui/ | Root of unit tests for interfaces.
|          test-gui-color.cpp | Tests: colors.
|          test-gui-line.cpp | Tests: lines.
|          test-gui-nick.cpp | Tests: nicks.
|       plugins/ | Root of unit tests for plugins.
|          irc/ | Root of unit tests for IRC plugin.
|             test-irc-channel.cpp | Tests: IRC channels.
|             test-irc-color.cpp | Tests: IRC colors.
|             test-irc-config.cpp | Tests: IRC configuration.
|             test-irc-ignore.cpp | Tests: IRC ignores.
|             test-irc-message.cpp | Tests: IRC messages.
|             test-irc-mode.cpp | Tests: IRC modes.
|             test-irc-nick.cpp | Tests: IRC nicks.
|             test-irc-protocol.cpp | Tests: IRC protocol.
|             test-irc-server.cpp | Tests: IRC server.
|          trigger/ | Root of unit tests for trigger plugin.
|             test-trigger.cpp | Tests: triggers.
|          relay/ | Root of unit tests for Relay plugin.
|             test-relay-auth.cpp | Tests: clients authentication.
| Path/file | Description
| tests/ | Root of tests.
|    tests.cpp | Program used to run all tests.
|    scripts/ | Root of scripting API tests.
|       test-scripts.cpp | Program used to run the scripting API tests.
|       python/ | Python scripts to generate and run the scripting API tests.
|          testapigen.py | Python script generating scripts in all languages to test the scripting API.
|          testapi.py | Python script with scripting API tests, used by script testapigen.py.
|          unparse.py | Convert Python code to other languages, used by script testapigen.py.
|    unit/ | Root of unit tests.
|       test-plugins.cpp | Tests: plugins.
|       core/ | Root of unit tests for core.
|          test-core-arraylist.cpp | Tests: arraylists.
|          test-core-calc.cpp | Tests: calculation of expressions.
|          test-core-command.cpp | Tests: commands.
|          test-core-config-file.cpp | Tests: configuration files.
|          test-core-crypto.cpp | Tests: cryptographic functions.
|          test-core-dir.cpp | Tests: directory/file functions.
|          test-core-eval.cpp | Tests: evaluation of expressions.
|          test-core-hashtble.cpp | Tests: hashtables.
|          test-core-hdata.cpp | Tests: hdata.
|          test-core-hook.cpp | Tests: hooks.
|          test-core-infolist.cpp | Tests: infolists.
|          test-core-list.cpp | Tests: lists.
|          test-core-network.cpp | Tests: network functions.
|          test-core-secure.cpp | Tests: secured data.
|          test-core-signal.cpp | Tests: signals.
|          test-core-string.cpp | Tests: strings.
|          test-core-url.cpp | Tests: URLs.
|          test-core-utf8.cpp | Tests: UTF-8.
|          test-core-util.cpp | Tests: utility functions.
|       gui/ | Root of unit tests for interfaces.
|          test-gui-bar-window.cpp | Tests: bar window functions.
|          test-gui-buffer.cpp | Tests: buffer functions.
|          test-gui-chat.cpp | Tests: chat functions.
|          test-gui-color.cpp | Tests: colors.
|          test-gui-filter.cpp | Tests: filters.
|          test-gui-input.cpp | Tests: input functions.
|          test-gui-line.cpp | Tests: lines.
|          test-gui-nick.cpp | Tests: nicks.
|       plugins/ | Root of unit tests for plugins.
|          irc/ | Root of unit tests for IRC plugin.
|             test-irc-buffer.cpp | Tests: IRC buffers.
|             test-irc-channel.cpp | Tests: IRC channels.
|             test-irc-color.cpp | Tests: IRC colors.
|             test-irc-config.cpp | Tests: IRC configuration.
|             test-irc-ignore.cpp | Tests: IRC ignores.
|             test-irc-join.cpp | Tests: IRC join functions.
|             test-irc-message.cpp | Tests: IRC messages.
|             test-irc-mode.cpp | Tests: IRC modes.
|             test-irc-nick.cpp | Tests: IRC nicks.
|             test-irc-protocol.cpp | Tests: IRC protocol.
|             test-irc-sasl.cpp | Tests: SASL authentication with IRC protocol.
|             test-irc-server.cpp | Tests: IRC server.
|             test-irc-tag.cpp | Tests: IRC message tags.
|          logger/ | Root of unit tests for logger plugin.
|             test-logger-backlog.cpp | Tests: logger backlog.
|          trigger/ | Root of unit tests for trigger plugin.
|             test-trigger.cpp | Tests: triggers.
|             test-trigger-config.cpp | Tests: trigger configuration.
|          typing/ | Root of unit tests for typing plugin.
|             test-typing.cpp | Tests: typing.
|             test-typing-status.cpp | Tests: typing status.
|          relay/ | Root of unit tests for Relay plugin.
|             test-relay-auth.cpp | Tests: clients authentication.
|          xfer/ | Root of unit tests for Xfer plugin.
|             test-xfer-file.cpp | Tests: file functions.
|             test-xfer-network.cpp | Tests: network functions.
|===
[[documentation_translations]]
@@ -446,14 +474,13 @@ Documentation files:
|    docgen.py | Python script to build auto-generated files in _includes/_ directory (see below).
|    XX/ | Documentation for language XX (languages: en, fr, de, it, ...).
|       weechat.1.XX.adoc | Man page (`man weechat`).
|       weechat_dev.XX.adoc | link:weechat_dev.en.html[Developer's guide] (this document).
|       weechat_faq.XX.adoc | link:weechat_faq.en.html[FAQ].
|       weechat_plugin_api.XX.adoc | link:weechat_plugin_api.en.html[Plugin API reference].
|       weechat_quickstart.XX.adoc | link:weechat_quickstart.en.html[Quickstart guide].
|       weechat_relay_protocol.XX.adoc | link:weechat_relay_protocol.en.html[Relay protocol] (for remote interfaces).
|       weechat_scripting.XX.adoc | link:weechat_scripting.en.html[Scripting guide].
|       weechat_tester.XX.adoc | link:weechat_tester.en.html[Tester's guide].
|       weechat_user.XX.adoc | link:weechat_user.en.html[User's guide].
|       weechat_dev.XX.adoc | link:weechat_dev.en.html[Developer's guide ^↗^,window=_blank] (this document).
|       weechat_faq.XX.adoc | link:weechat_faq.en.html[FAQ ^↗^,window=_blank].
|       weechat_plugin_api.XX.adoc | link:weechat_plugin_api.en.html[Plugin API reference ^↗^,window=_blank].
|       weechat_quickstart.XX.adoc | link:weechat_quickstart.en.html[Quickstart guide ^↗^,window=_blank].
|       weechat_relay_protocol.XX.adoc | link:weechat_relay_protocol.en.html[Relay protocol ^↗^,window=_blank] (for remote interfaces).
|       weechat_scripting.XX.adoc | link:weechat_scripting.en.html[Scripting guide ^↗^,window=_blank].
|       weechat_user.XX.adoc | link:weechat_user.en.html[User's guide ^↗^,window=_blank].
|       includes/ | Files included in documentation.
|          autogen_api_completions.XX.adoc | Auto-generated file for Plugin API reference: completions (do *NEVER* update manually!).
|          autogen_api_hdata.XX.adoc | Auto-generated file for Plugin API reference: hdata (do *NEVER* update manually!).
@@ -498,12 +525,12 @@ directory:
Example in C:
[source,C]
[source,c]
----
/*
* weechat.c - core functions for WeeChat
*
* Copyright (C) 2021 Your Name <your@email.com>
* Copyright (C) 2023 Your Name <your@email.com>
*
* This file is part of WeeChat, the extensible chat client.
*
@@ -536,7 +563,7 @@ Some basic rules you *must* follow when you write C code:
Example:
[source,C]
[source,c]
----
/*
* Checks if a string with boolean value is valid.
@@ -567,7 +594,7 @@ foo ()
Exception: in `for` loops, where variables like "i" or "n" are OK.
* Initialize local variables after declaration, in body of function, example:
[source,C]
[source,c]
----
void
foo ()
@@ -585,7 +612,7 @@ foo ()
* Place curly brackets `+{ }+` alone on lines, and indent them with number of
spaces used for line above opening curly bracket (the `if` in example):
[source,C]
[source,c]
----
if (nicks_count == 1)
{
@@ -596,7 +623,7 @@ if (nicks_count == 1)
* Use empty lines to separate many different blocks inside functions, and if
possible add a comment for each one, like this:
[source,C]
[source,c]
----
/*
* Sends a message from out queue.
@@ -639,7 +666,7 @@ irc_server_outqueue_send (struct t_irc_server *server)
* Indent the `if` conditions, and use parentheses around conditions with an
operator (not needed for single boolean), like this:
[source,C]
[source,c]
----
if (something)
{
@@ -663,7 +690,7 @@ else
* Indent the `switch` statements like this:
[source,C]
[source,c]
----
switch (string[0])
{
@@ -681,7 +708,7 @@ switch (string[0])
* Use `typedef` for function prototypes but not for structures:
[source,C]
[source,c]
----
typedef int (t_hook_callback_fd)(void *data, int fd);
@@ -718,7 +745,7 @@ new_hook_fd = malloc (sizeof (*new_hook_fd));
[[coding_python_style]]
=== Python style
See https://www.python.org/dev/peps/pep-0008/
See https://www.python.org/dev/peps/pep-0008/[PEP 8 ^↗^,window=_blank].
[[core_internals]]
== Core internals
@@ -763,7 +790,7 @@ Structures have name _t_X_Y_ or _t_X_Y_Z_:
Example: an IRC nick (from _src/plugins/irc/irc-nick.h_):
[source,C]
[source,c]
----
struct t_irc_nick
{
@@ -793,7 +820,7 @@ _X_ is name of variable, using singular form).
Example: windows (from _src/gui/gui-window.c_):
[source,C]
[source,c]
----
struct t_gui_window *gui_windows = NULL; /* first window */
struct t_gui_window *last_gui_window = NULL; /* last window */
@@ -813,7 +840,7 @@ Naming convention for functions is the same as
Example: creation of a new window (from _src/gui/gui-window.c_):
[source,C]
[source,c]
----
/*
* Creates a new window.
@@ -849,7 +876,7 @@ and next node.
Example: list of buffers (from _src/gui/gui-buffer.h_):
[source,C]
[source,c]
----
struct t_gui_buffer
{
@@ -864,7 +891,7 @@ struct t_gui_buffer
Then the two list pointers, to the head and tail of list:
[source,C]
[source,c]
----
struct t_gui_buffer *gui_buffers = NULL; /* first buffer */
struct t_gui_buffer *last_gui_buffer = NULL; /* last buffer */
@@ -879,18 +906,10 @@ underline, ...) and colors on screen.
All attributes/colors are prefixed with a char in string, which can be:
* _0x19_: color code (followed by color code(s))
* _0x1A_: set attribute (followed by attribute on one char)
* _0x1B_: remove attribute (followed by attribute on one char)
* _0x1A_: set attribute (followed by raw attribute on one char)
* _0x1B_: remove attribute (followed by raw attribute on one char)
* _0x1C_: reset (nothing after)
Allowed attributes are (one or more chars):
* `+*+`: bold
* `+!+`: reverse
* `+/+`: italic
* `+_+`: underline
* `+|+`: keep attributes
Possible colors are:
* standard color: optional attributes + number on 2 digits
@@ -899,45 +918,59 @@ Possible colors are:
In following table, these conventions are used:
* `STD`: standard color (2 digits)
* `(A)STD`: standard color with optional attributes (attributes + 2 digits)
* `(ATTR)STD`: standard color with optional attributes (attributes + 2 digits)
* `EXT`: extended color (`+@+` + 5 digits)
* `(A)EXT`: extended color with optional attributes (`+@+` + attributes + 5 digits)
* `ATTR`: one attribute char (`+*+`, `+!+`, `+/+`, `+_+` or `+|+`)
* `(ATTR)EXT`: extended color with optional attributes (`+@+` + attributes + 5 digits)
* `(ATTR)`: one or more attribute chars:
** `+%+`: blink
** `+.+`: "dim" (half bright)
** `+*+`: bold
** `+!+`: reverse
** `+/+`: italic
** `+_+`: underline
** `+|+`: keep attributes
* `(a)`: one raw attribute char:
** _0x01_: bold
** _0x02_: reverse
** _0x03_: italic
** _0x04_: underline
** _0x05_: blink
** _0x06_: "dim" (half bright)
All combinations are summarized in this table:
[width="100%",cols="4,2,2,8",options="header"]
[width="100%",cols="4,3,2,8",options="header"]
|===
| Code | Example | Areas | Description
| [hex]#19# + STD | [hex]#19# `+01+` | chat + bars | Set attributes and color using option, see table below.
| [hex]#19# + EXT | [hex]#19# `+@00001+` | chat | Set color with a ncurses pair (used only on `/color` buffer).
| [hex]#19# + "F" + (A)STD | [hex]#19# `+F*05+` | chat + bars | Set foreground (WeeChat color).
| [hex]#19# + "F" + (A)EXT | [hex]#19# `+F@00214+` | chat + bars | Set foreground (extended color).
| [hex]#19# + "B" + STD | [hex]#19# `+B05+` | chat + bars | Set background (WeeChat color).
| [hex]#19# + "B" + EXT | [hex]#19# `+B@00124+` | chat + bars | Set background (extended color).
| [hex]#19# + "*" + (A)STD | [hex]#19# `+*05+` | chat + bars | Set foreground (WeeChat color).
| [hex]#19# + "*" + (A)EXT | [hex]#19# `+*@00214+` | chat + bars | Set foreground (extended color).
| [hex]#19# + "*" + (A)STD + "," + STD ^(1)^ | [hex]#19# `+*08,05+` | chat + bars | Set foreground/background (WeeChat colors).
| [hex]#19# + "*" + (A)STD + "," + EXT ^(1)^ | [hex]#19# `+*01,@00214+` | chat + bars | Set foreground (WeeChat color) and background (extended color).
| [hex]#19# + "*" + (A)EXT + "," + STD ^(1)^ | [hex]#19# `+*@00214,05+` | chat + bars | Set foreground (extended color) and background (WeeChat color).
| [hex]#19# + "*" + (A)EXT + "," + EXT ^(1)^ | [hex]#19# `+*@00214,@00017+` | chat + bars | Set foreground/background (extended colors).
| [hex]#19# + "*" + (A)STD + "~" + STD | [hex]#19# `+*08~05+` | chat + bars | Set foreground/background (WeeChat colors).
| [hex]#19# + "*" + (A)STD + "~" + EXT | [hex]#19# `+*01~@00214+` | chat + bars | Set foreground (WeeChat color) and background (extended color).
| [hex]#19# + "*" + (A)EXT + "~" + STD | [hex]#19# `+*@00214~05+` | chat + bars | Set foreground (extended color) and background (WeeChat color).
| [hex]#19# + "*" + (A)EXT + "~" + EXT | [hex]#19# `+*@00214~@00017+` | chat + bars | Set foreground/background (extended colors).
| [hex]#19# + "b" + "F" | [hex]#19# `+bF+` | bars | Set bar foreground color.
| [hex]#19# + "b" + "D" | [hex]#19# `+bD+` | bars | Set bar delimiter color.
| [hex]#19# + "b" + "B" | [hex]#19# `+bB+` | bars | Set bar background color.
| [hex]#19# + "b" + "_" | [hex]#19# `+b_+` | input bar | Start input char (used only in item "input_text").
| [hex]#19# + "b" + "-" | [hex]#19# `+b-+` | input bar | Start input hidden char (used only in item "input_text").
| [hex]#19# + "b" + "#" | [hex]#19# `+b#+` | input bar | Move cursor char (used only in item "input_text").
| [hex]#19# + "b" + "i" | [hex]#19# `+bi+` | bars | Start item.
| [hex]#19# + "b" + "l" (lower L) | [hex]#19# `+bl+` | bars | Start line item.
| [hex]#19# + "E" | [hex]#19# `+E+` | chat + bars | Emphasize text _(WeeChat ≥ 0.4.2)_.
| [hex]#19# + [hex]#1C# | [hex]#19# [hex]#1C# | chat + bars | Reset color (keep attributes).
| [hex]#1A# + ATTR | [hex]#1A# `+*+` | chat + bars | Set attribute.
| [hex]#1B# + ATTR | [hex]#1B# `+*+` | chat + bars | Remove attribute.
| [hex]#1C# | [hex]#1C# | chat + bars | Reset attributes and color.
| Code | Example | Areas | Description
| [hex]#19# + `STD` | [hex]#19# `+01+` | chat + bars | Set attributes and color using option, see table below.
| [hex]#19# + `EXT` | [hex]#19# `+@00001+` | chat | Set color with a ncurses pair (used only on `/color` buffer).
| [hex]#19# + `F` + `(ATTR)STD` | [hex]#19# `+F*05+` | chat + bars | Set foreground (WeeChat color).
| [hex]#19# + `F` + `(ATTR)EXT` | [hex]#19# `+F@00214+` | chat + bars | Set foreground (extended color).
| [hex]#19# + `B` + `STD` | [hex]#19# `+B05+` | chat + bars | Set background (WeeChat color).
| [hex]#19# + `B` + `EXT` | [hex]#19# `+B@00124+` | chat + bars | Set background (extended color).
| [hex]#19# + `*` + `(ATTR)STD` | [hex]#19# `+*05+` | chat + bars | Set foreground (WeeChat color).
| [hex]#19# + `*` + `(ATTR)EXT` | [hex]#19# `+*@00214+` | chat + bars | Set foreground (extended color).
| [hex]#19# + `*` + `(ATTR)STD` + `,` + `STD` ^(1)^ | [hex]#19# `+*08,05+` | chat + bars | Set foreground/background (WeeChat colors).
| [hex]#19# + `*` + `(ATTR)STD` + `,` + `EXT` ^(1)^ | [hex]#19# `+*01,@00214+` | chat + bars | Set foreground (WeeChat color) and background (extended color).
| [hex]#19# + `*` + `(ATTR)EXT` + `,` + `STD` ^(1)^ | [hex]#19# `+*@00214,05+` | chat + bars | Set foreground (extended color) and background (WeeChat color).
| [hex]#19# + `*` + `(ATTR)EXT` + `,` + `EXT` ^(1)^ | [hex]#19# `+*@00214,@00017+` | chat + bars | Set foreground/background (extended colors).
| [hex]#19# + `*` + `(ATTR)STD` + `~` + `STD` | [hex]#19# `+*08~05+` | chat + bars | Set foreground/background (WeeChat colors).
| [hex]#19# + `*` + `(ATTR)STD` + `~` + `EXT` | [hex]#19# `+*01~@00214+` | chat + bars | Set foreground (WeeChat color) and background (extended color).
| [hex]#19# + `*` + `(ATTR)EXT` + `~` + `STD` | [hex]#19# `+*@00214~05+` | chat + bars | Set foreground (extended color) and background (WeeChat color).
| [hex]#19# + `*` + `(ATTR)EXT` + `~` + `EXT` | [hex]#19# `+*@00214~@00017+` | chat + bars | Set foreground/background (extended colors).
| [hex]#19# + `b` + `F` | [hex]#19# `+bF+` | bars | Set bar foreground color.
| [hex]#19# + `b` + `D` | [hex]#19# `+bD+` | bars | Set bar delimiter color.
| [hex]#19# + `b` + `B` | [hex]#19# `+bB+` | bars | Set bar background color.
| [hex]#19# + `b` + `_` | [hex]#19# `+b_+` | input bar | Start input char (used only in item "input_text").
| [hex]#19# + `b` + `-` | [hex]#19# `+b-+` | input bar | Start input hidden char (used only in item "input_text").
| [hex]#19# + `b` + `#` | [hex]#19# `+b#+` | input bar | Move cursor char (used only in item "input_text").
| [hex]#19# + `b` + `i` | [hex]#19# `+bi+` | bars | Start item.
| [hex]#19# + `b` + `l` (lower L) | [hex]#19# `+bl+` | bars | Start line item.
| [hex]#19# + `E` | [hex]#19# `+E+` | chat + bars | Emphasize text _(WeeChat ≥ 0.4.2)_.
| [hex]#19# + [hex]#1C# | [hex]#19# [hex]#1C# | chat + bars | Reset color (keep attributes).
| [hex]#1A# + `(a)` | [hex]#1A# [hex]#01# | chat + bars | Set attribute.
| [hex]#1B# + `(a)` | [hex]#1B# [hex]#01# | chat + bars | Remove attribute.
| [hex]#1C# | [hex]#1C# | chat + bars | Reset attributes and color.
|===
[NOTE]
@@ -1054,7 +1087,7 @@ Then some macros are defined to call these functions.
For example, function _hook_timer_ is defined in structure _t_weechat_plugin_
like this:
[source,C]
[source,c]
----
struct t_hook *(*hook_timer) (struct t_weechat_plugin *plugin,
long interval,
@@ -1067,7 +1100,7 @@ struct t_hook *(*hook_timer) (struct t_weechat_plugin *plugin,
And the macro used to call this function is:
[source,C]
[source,c]
----
#define weechat_hook_timer(__interval, __align_second, __max_calls, \
__callback, __data) \
@@ -1078,7 +1111,7 @@ And the macro used to call this function is:
So in a plugin, the call to function will be for example:
[source,C]
[source,c]
----
server->hook_timer_sasl = weechat_hook_timer (timeout * 1000,
0, 1,
@@ -1092,7 +1125,7 @@ server->hook_timer_sasl = weechat_hook_timer (timeout * 1000,
[[git_repository]]
=== Git repository
Git repository is at this URL: https://github.com/weechat/weechat
Git repository is on https://github.com/weechat/weechat[GitHub ^↗^,window=_blank].
Any patch for bug or new feature must be done on master branch, preferred way
is a GitHub pull request. A patch can also be sent by e-mail
@@ -1106,11 +1139,95 @@ component: fix a problem (closes #123)
Where _component_ is one of following:
* WeeChat core: _core_ (files in root directory, _po/_ and _src/_,
except _src/plugins/_)
* documentation files: _doc_ (files in directory _doc/_)
* name of a plugin: _irc_, _python_, _relay_, ... (files in directory
_src/plugins/_)
[width="100%",cols="1m,4m,5",options="header"]
|===
| Component | Files | Description
| core
| AUTHORS.adoc +
ChangeLog.adoc +
Contributing.adoc +
.github/FUNDING.yml +
.github/ISSUE_TEMPLATE/* +
icons/* +
po/* +
README.adoc +
ReleaseNotes.adoc +
src/core/* +
src/gui/* +
version.sh +
weechat.desktop
| WeeChat core
| build
| autogen.sh +
CMakeLists.txt +
cmake/* +
configure.ac +
Makefile.am +
tools/* +
weechat.cygport.in +
weechat.spec
| Build
| ci
| .github/workflows/*
| Continuous integration
| debian
| debian-devel/* +
debian-stable/*
| Debian packaging
| tests
| tests/*
| Tests
| doc
| doc/*
| General doc updates, for example build
| doc/man
| doc/xx/weechat.1.xx.adoc +
doc/xx/weechat-headless.1.xx.adoc
| Man pages
| doc/faq
| doc/xx/weechat_faq.xx.adoc
| Frequently asked questions (FAQ)
| doc/quickstart
| doc/xx/weechat_quickstart.xx.adoc
| Quickstart guide
| doc/user
| doc/xx/weechat_user.xx.adoc
| User's guide
| doc/scripting
| doc/xx/weechat_scripting.xx.adoc
| Scripting guide
| doc/api
| doc/xx/weechat_plugin_api.xx.adoc
| Plugin API reference
| doc/relay
| doc/xx/weechat_relay_protocol.xx.adoc
| Relay protocol
| doc/dev
| doc/xx/weechat_dev.en.adoc
| Developer's guide
| irc +
python +
relay +
| src/plugins/<name>/*
| Plugin
|===
Some rules to follow:
@@ -1124,6 +1241,7 @@ Examples of commit messages:
----
core: add callback "nickcmp" for nick comparison in buffers
core: update Japanese translations
doc/user: add chapter on typing extension
irc: add command /unquiet (closes #36)
python: fix crash when unloading a script without pointer to interpreter
ruby: add detection of ruby version 1.9.3 in CMake
@@ -1157,8 +1275,8 @@ $ make translations && make update-po
Then you can edit .po files (if you can translate in a language).
When done, you *have* to check your file with script _msgcheck.py_
(https://github.com/flashcode/msgcheck):
When done, you *have* to check your file with
https://github.com/flashcode/msgcheck[msgcheck ^↗^,window=_blank]:
----
$ msgcheck.py xx.po
@@ -1191,7 +1309,7 @@ work on it.
The translations missing in files are indicated by this string:
----
// TRANSLATION MISSING
// TRANSLATION MISSING
----
You must translate whole file except links and special keywords for notes,
@@ -1208,7 +1326,7 @@ warnings, ... These words must be kept unchanged:
[CAUTION]
----
When there is a name after `<<link_name>>`, then you must translate it:
When there is a name after `+<<link_name>>+`, then you must translate it:
----
<<link_name,this text must be translated>>
+91 -132
View File
@@ -9,9 +9,6 @@
:docinfo1:
This document is written for WeeChat versions ≥ 0.3.0 but should preferably be
used with latest stable version of WeeChat.
toc::[]
@@ -32,7 +29,8 @@ apply to WeeChat!).
Because WeeChat is very light and brings innovating features.
More info on the WeeChat features page: https://weechat.org/about/features
More info on the WeeChat
https://weechat.org/about/features/[features page ^↗^,window=_blank].
[[compilation_install]]
== Compilation / install
@@ -40,16 +38,17 @@ More info on the WeeChat features page: https://weechat.org/about/features
[[gui]]
=== I've heard about many GUIs for WeeChat. How can I compile/use them?
Some remote GUIs are available, see the remote interfaces page:
https://weechat.org/about/interfaces
Some remote GUIs are available, see the
https://weechat.org/about/interfaces/[remote interfaces page ^↗^,window=_blank].
[[compile_git]]
=== I can't compile WeeChat after cloning git repository, why?
The recommended way to compile WeeChat is with
link:weechat_user.en.html#compile_with_cmake[CMake].
link:weechat_user.en.html#compile_with_cmake[CMake ^↗^,window=_blank].
If you're compiling with link:weechat_user.en.html#compile_with_autotools[autotools]
If you're compiling with
link:weechat_user.en.html#compile_with_autotools[autotools ^↗^,window=_blank]
(and not CMake), check that you have latest version of autoconf and automake.
The other way is to install the "devel package", which needs less dependencies.
@@ -60,7 +59,8 @@ than git cloning for installing updates.
[[compile_macos]]
=== How can I install WeeChat on macOS?
It is recommended to use https://brew.sh/[Homebrew], you can get help with:
It is recommended to use https://brew.sh/[Homebrew ^↗^,window=_blank],
you can get help with:
----
brew info weechat
@@ -76,12 +76,12 @@ brew install weechat
=== I've launched WeeChat, but I'm lost, what can I do?
For help you can type `/help`. For help about a command, type `/help command`.
link:weechat_user.en.html#key_bindings[Keys] and
link:weechat_user.en.html#commands_and_options[commands] are listed
in documentation.
link:weechat_user.en.html#key_bindings[Keys ^↗^,window=_blank] and
link:weechat_user.en.html#commands_and_options[commands ^↗^,window=_blank]
are listed in documentation.
It's recommended for new users to read the
link:weechat_quickstart.en.html[Quickstart guide].
link:weechat_quickstart.en.html[Quickstart guide ^↗^,window=_blank].
[[display]]
== Display
@@ -109,7 +109,7 @@ It's a common issue with a variety of causes, please read carefully and check
** If you are using screen, check that it is run with UTF-8 mode
("`defutf8 on`" in ~/.screenrc or `screen -U` to run screen).
* Check that option
link:weechat_user.en.html#option_weechat.look.eat_newline_glitch[_weechat.look.eat_newline_glitch_]
link:weechat_user.en.html#option_weechat.look.eat_newline_glitch[_weechat.look.eat_newline_glitch_ ^↗^,window=_blank]
is off (this option may cause display bugs).
[NOTE]
@@ -124,10 +124,10 @@ This may be caused by a libc bug in function _wcwidth_, which should be fixed
in glibc 2.22 (maybe not yet available in your distribution).
There is a workaround to use the fixed _wcwidth_ function:
https://blog.nytsoi.net/2015/05/04/emoji-support-for-weechat
https://blog.nytsoi.net/2015/05/04/emoji-support-for-weechat[https://blog.nytsoi.net/2015/05/04/emoji-support-for-weechat ^↗^,window=_blank]
See this bug report for more information:
https://github.com/weechat/weechat/issues/79
See this https://github.com/weechat/weechat/issues/79[bug report ^↗^,window=_blank]
for more information.
[[bars_background]]
=== Bars like title and status are not filled, background color stops after text, why?
@@ -184,17 +184,10 @@ windows.
[[buffers_list]]
=== How to display the buffers list on the left side?
With WeeChat ≥ 1.8, the plugin link:weechat_user.en.html#buflist_plugin[buflist]
The plugin link:weechat_user.en.html#buflist[buflist ^↗^,window=_blank]
is loaded and enabled by default.
With an older version, you can install script _buffers.pl_:
----
/script install buffers.pl
----
To limit size of bar (replace "buflist" by "buffers" if you're using the script
_buffers.pl_):
To limit size of bar:
----
/set weechat.bar.buflist.size_max 15
@@ -212,21 +205,6 @@ bar with your mouse wheel.
Default keys to scroll _buflist_ bar are kbd:[F1] (or kbd:[Ctrl+F1]), kbd:[F2]
(or kbd:[Ctrl+F2]), kbd:[Alt+F1] and kbd:[Alt+F2].
For script _buffers.pl_, you can define keys, similar to the existing keys to
scroll nicklist. +
For example to use kbd:[F1], kbd:[F2], kbd:[Alt+F1] and kbd:[Alt+F2]:
----
/key bind meta-OP /bar scroll buffers * -100%
/key bind meta-OQ /bar scroll buffers * +100%
/key bind meta-meta-OP /bar scroll buffers * b
/key bind meta-meta-OQ /bar scroll buffers * e
----
[NOTE]
Keys "meta-OP" and "meta-OQ" may be different in your terminal. To find key
code press kbd:[Alt+k] then key.
[[customize_buflist]]
=== How can I customize the list of buffers list, like the color of the active buffer?
@@ -252,8 +230,8 @@ like `237` for dark gray.
The buflist plugin provides lot of options that you can customize, please read
the help on each option.
There's also a wiki page with examples of advanced buflist configuration:
https://github.com/weechat/weechat/wiki/buflist
There's also a https://github.com/weechat/weechat/wiki/buflist[wiki page ^↗^,window=_blank]
with examples of advanced buflist configuration.
[[customize_prefix]]
=== How can I reduce length of nicks or remove nick alignment in chat area?
@@ -296,8 +274,8 @@ These colors can be changed with the options __weechat.color.status_data_*__
(buffers) and __weechat.color.status_count_*__ (counters). +
Other hotlist options can be changed with the options __weechat.look.hotlist_*__.
See link:weechat_user.en.html#screen_layout[User's guide / Screen layout] for
more info about the hotlist.
See link:weechat_user.en.html#screen_layout[User's guide / Screen layout ^↗^,window=_blank]
for more info about the hotlist.
[[input_bar_size]]
=== How to use command line with more than one line?
@@ -342,9 +320,8 @@ any bar:
[[terminal_copy_paste]]
=== How can I copy/paste text without pasting nicklist?
With WeeChat ≥ 1.0, you can use the bare display (default key: kbd:[Alt+l] (`L`)),
which will show just the contents of the currently selected window,
without any formatting.
You can use the bare display (default key: kbd:[Alt+l] (`L`)), which shows
just the contents of the currently selected window, without any formatting.
You can use a terminal with rectangular selection (like rxvt-unicode,
konsole, gnome-terminal, etc.). Key is usually kbd:[Ctrl] + kbd:[Alt] + mouse
@@ -359,7 +336,7 @@ Another solution is to move nicklist to top or bottom, for example:
[[urls]]
=== How can I click on long URLs (more than one line)?
With WeeChat ≥ 1.0, you can use the bare display (default key: kbd:[Alt+l] (`L`)).
You can use the bare display (default key: kbd:[Alt+l] (`L`)).
To make opening URLs easier, you can:
@@ -369,7 +346,7 @@ To make opening URLs easier, you can:
/set weechat.bar.nicklist.position top
----
* disable alignment for multiline words (WeeChat ≥ 1.7):
* disable alignment for multiline words:
----
/set weechat.look.align_multiline_words off
@@ -381,9 +358,8 @@ To make opening URLs easier, you can:
/set weechat.look.align_end_of_lines time
----
With WeeChat ≥ 0.3.6, you can enable option "eat_newline_glitch", so that
new line char is not added at the end of each line displayed (it will not break
URL selection):
You can enable option "eat_newline_glitch", so that new line char is not added
at the end of each line displayed (it will not break URL selection):
----
/set weechat.look.eat_newline_glitch on
@@ -430,8 +406,6 @@ In WeeChat, the new value is immediately used:
[[use_256_colors]]
=== How can I use 256 colors in WeeChat?
256 colors are supported with WeeChat ≥ 0.3.4.
First check that your _TERM_ environment variable is correct, recommended values
are:
@@ -450,20 +424,18 @@ term screen-256color
----
If your _TERM_ variable has a wrong value and that WeeChat is already running,
you can change it with these two commands (with WeeChat ≥ 1.0):
you can change it with these two commands:
----
/set env TERM screen-256color
/upgrade
----
For version 0.3.4, you must use command `/color` to add new colors.
You can use any color number in options (optional: you can add color aliases
with command `/color`).
For versions ≥ 0.3.5, you can use any color number in options (optional: you
can add color aliases with command `/color`).
Please read the link:weechat_user.en.html#colors[User's guide / Colors] for more
information about colors management.
Please read the link:weechat_user.en.html#colors[User's guide / Colors ^↗^,window=_blank]
for more information about colors management.
[[search_text]]
=== How can I search text in buffer (like /lastlog in irssi)?
@@ -471,8 +443,8 @@ information about colors management.
The default key is kbd:[Ctrl+r] (command is: `+/input search_text_here+`).
And jump to highlights: kbd:[Alt+p] / kbd:[Alt+n].
See link:weechat_user.en.html#key_bindings[User's guide / Key bindings] for more
info about this feature.
See link:weechat_user.en.html#key_bindings[User's guide / Key bindings ^↗^,window=_blank]
for more info about this feature.
[[terminal_focus]]
=== How can I execute commands when terminal gets/loses focus?
@@ -505,7 +477,7 @@ commands of your choice):
For example to mark buffers as read when the terminal loses the focus:
----
/key bind meta2-O /input set_unread
/key bind meta2-O /allbuf /buffer set unread
----
[[screen_paste]]
@@ -524,7 +496,7 @@ You can just disable bracketed paste mode:
=== How can I customize display for very small terminal size (like 80x25), to not waste space?
You can remove side bars (buflist and nicklist), change time format to display
only hours and seconds, disable alignment of messages and set a char for nick
only hours and minutes, disable alignment of messages and set a char for nick
prefix/suffix:
----
@@ -645,7 +617,7 @@ You can bind a key, for example:
----
List of default keys is in
link:weechat_user.en.html#key_bindings[User's guide / Key bindings].
link:weechat_user.en.html#key_bindings[User's guide / Key bindings ^↗^,window=_blank].
To jump to buffers with number ≥ 100, you could define a trigger and then use
commands like `/123` to jump to buffer #123:
@@ -677,8 +649,6 @@ code press kbd:[Alt+k] then key.
[[mouse_not_working]]
=== Mouse is not working at all, what can I do?
Mouse is supported with WeeChat ≥ 0.3.6.
First try to enable mouse:
----
@@ -728,12 +698,6 @@ you have to use kbd:[Alt] instead of kbd:[Shift]).
If you are using macOS, you must install `openssl` from Homebrew.
A CA file will be bootstrapped using certificates from the system keychain.
With WeeChat ≤ 3.1, you can then set the path to system certificates:
----
/set weechat.network.gnutls_ca_file "/usr/local/etc/openssl/cert.pem"
----
If you see errors about gnutls handshake, you can try to use a smaller
Diffie-Hellman key (default is 2048):
@@ -758,8 +722,7 @@ should be, you can specify the fingerprint (SHA-512, SHA-256 or SHA-1):
[[irc_ssl_handshake_error]]
=== When connecting to server with SSL, I only see the error "TLS handshake failed", what can I do?
You can try a different priority string (WeeChat ≥ 0.3.5 only), replace "xxx"
by your server name:
You can try a different priority string, replace "xxx" by your server name:
----
/set irc.server.xxx.ssl_priorities "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.0:+VERS-SSL3.0:%COMPAT"
@@ -768,22 +731,8 @@ by your server name:
[[irc_ssl_libera]]
=== How can I connect to libera server using SSL?
With WeeChat ≤ 3.1, set option _weechat.network.gnutls_ca_file_ to file with
certificates:
----
/set weechat.network.gnutls_ca_file "/etc/ssl/certs/ca-certificates.crt"
----
Note: if you are running macOS with homebrew openssl installed, you can do:
----
/set weechat.network.gnutls_ca_file "/usr/local/etc/openssl/cert.pem"
----
[NOTE]
Check that you have this file on your system (commonly brought by package
"ca-certificates").
Check that you have certificates installed on your system, this is commonly
provided by the package "ca-certificates".
Setup server port, SSL, then connect:
@@ -829,25 +778,35 @@ join of channels):
[[edit_autojoin]]
=== How can I add/remove channels from autojoin option?
You can use the `/set` command to edit the list of autojoin channels,
for example for the "libera" server:
With WeeChat ≥ 3.5, you can automatically record the channels you manually
join and part in the "autojoin" server option.
For all servers:
----
/set irc.server.libera.autojoin [TAB]
/set irc.server_default.autojoin_dynamic on
----
[NOTE]
You can complete the name and value of option with the kbd:[Tab] key
(or kbd:[Shift+Tab] for partial completion, useful for the name). +
This way you don't have to type the whole list of channels.
You can also use the `/fset` command to edit the list of channels:
For a single server:
----
/fset autojoin
/set irc.server.libera.autojoin_dynamic on
----
Another solution is to use a script:
You can also add the current channel in the "autojoin" server option using the
`/autojoin` command:
----
/autojoin add
----
Or another channel:
----
/autojoin add #test
----
There are also scripts:
----
/script search autojoin
@@ -887,14 +846,14 @@ With a global filter (hide *all* join/part/quit):
[NOTE]
For help: `/help filter`, `+/help irc.look.smart_filter+` and see
link:weechat_user.en.html#irc_smart_filter_join_part_quit[User's guide / Smart filter for join/part/quit messages].
link:weechat_user.en.html#irc_smart_filter_join_part_quit[User's guide / Smart filter for join/part/quit messages ^↗^,window=_blank].
[[filter_irc_join_channel_messages]]
=== How can I filter some messages displayed when I join an IRC channel?
With WeeChat ≥ 0.4.1, you can choose which messages are displayed when
joining a channel with the option _irc.look.display_join_message_ (see
`+/help irc.look.display_join_message+` for more info).
You can choose which messages are displayed when joining a channel with the
option _irc.look.display_join_message_ (see `+/help irc.look.display_join_message+`
for more info).
To hide messages (but keep them in buffer), you can filter them using the tag
(for example _irc_329_ for channel creation date). See `/help filter` for help
@@ -949,17 +908,13 @@ nicks:
/set irc.server_default.away_check_max_nicks 25
----
[NOTE]
For WeeChat ≤ 0.3.3, options are _irc.network.away_check_ and
_irc.network.away_check_max_nicks_.
[[highlight_notification]]
=== How can I be warned when someone highlights me on a channel?
With WeeChat ≥ 1.0, there is a default trigger "beep" which sends a _BEL_ to
the terminal on a highlight or private message. Thus you can configure your
terminal (or multiplexer like screen/tmux) to run a command or play a sound
when a _BEL_ occurs.
There is a default trigger "beep" which sends a _BEL_ to the terminal on
a highlight or private message. Thus you can configure your terminal
(or multiplexer like screen/tmux) to run a command or play a sound when
a _BEL_ occurs.
Or you can add a command in "beep" trigger:
@@ -984,8 +939,8 @@ Other scripts on this subject:
[[disable_highlights_for_specific_nicks]]
=== How can I disable highlights for specific nicks?
With WeeChat ≥ 0.3.4 you can use the
link:weechat_user.en.html#max_hotlist_level_nicks[hotlist_max_level_nicks_add]
You can use the
link:weechat_user.en.html#max_hotlist_level_nicks[hotlist_max_level_nicks_add ^↗^,window=_blank]
buffer property to set the max hotlist level for some nicks, per buffer,
or per group of buffers (like IRC servers).
@@ -1021,7 +976,7 @@ For more examples, see `+/help buffer_autoset+`.
[[irc_target_buffer]]
=== How can I change target buffer for commands on merged buffers (like buffer with servers)?
The default key is kbd:[Ctrl+x] (command is: `+/input switch_active_buffer+`).
The default key is kbd:[Ctrl+x] (command is: `+/buffer switch+`).
[[plugins_scripts]]
== Plugins / scripts
@@ -1041,8 +996,8 @@ You must set that up:
[[install_scripts]]
=== How can I install scripts? Are scripts compatible with other IRC clients?
With WeeChat ≥ 0.3.9 you can use the command `/script` to install and manage scripts
(see `/help script` for help). For older versions there is weeget.py and script.pl.
You can use the command `/script` to install and manage scripts (see `/help script`
for help).
Scripts are not compatible with other IRC clients.
@@ -1058,7 +1013,7 @@ $ rm ~/.cache/weechat/script/plugins.xml.gz
----
[NOTE]
With WeeChat ≤ 3.1, the path should be: _~/.weechat/script/plugins.xml.gz_.
If you are not using the XDG directories, the path could be: _~/.weechat/script/plugins.xml.gz_.
And update scripts again in WeeChat:
@@ -1083,6 +1038,14 @@ $ cd ~/.cache/weechat/script
$ curl -O https://weechat.org/files/plugins.xml.gz
----
If you're running macOS and the downloaded file has a size of 0 bytes,
try to set this variable in your shell initialization file or on command line,
before starting WeeChat:
----
export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
----
[[spell_dictionaries]]
=== I installed aspell dictionaries on my system, how can I use them without restarting WeeChat?
@@ -1092,10 +1055,6 @@ You have to reload the spell plugin:
/plugin reload spell
----
[NOTE]
With WeeChat ≤ 2.4, the "spell" plugin was named "aspell", so the command is:
`/plugin reload aspell`.
[[settings]]
== Settings
@@ -1180,7 +1139,7 @@ Unload and disable auto-loading of "xfer" plugin (used for IRC DCC):
Define a passphrase and use secured data wherever you can for sensitive data
like passwords: see `/help secure` and `/help` on options
(if you can use secured data, it is written in the help).
See also link:weechat_user.en.html#secured_data[User's guide / Secured data].
See also link:weechat_user.en.html#secured_data[User's guide / Secured data ^↗^,window=_blank].
For example:
@@ -1201,7 +1160,7 @@ contains your passwords ciphered with your passphrase.
Some other files may contain sensitive info like passwords (if they are not
stored in _sec.conf_ with the `/secure` command).
See the link:weechat_user.en.html#files_and_directories[User's guide / Files and directories]
See the link:weechat_user.en.html#files_and_directories[User's guide / Files and directories ^↗^,window=_blank]
for more information about configuration files.
[[development]]
@@ -1210,7 +1169,7 @@ for more information about configuration files.
[[bug_task_patch]]
=== How should I report bugs, ask for new features or send patches?
See: https://weechat.org/about/support
See https://weechat.org/about/support/[this page ^↗^,window=_blank].
[[gdb_error_threads]]
=== When I run WeeChat under gdb, there is an error about threads, what can I do?
@@ -1246,11 +1205,11 @@ some OS' we don't have, to test WeeChat.
There are many tasks to do (testing, code, documentation, etc.)
Please contact us via IRC or mail, look at support page:
https://weechat.org/about/support
Please contact us via IRC or mail, look at
https://weechat.org/about/support/[support page ^↗^,window=_blank].
[[donate]]
=== Can I give money or other things to WeeChat developers?
You can give us money to help development.
Details on https://weechat.org/donate
Details on https://weechat.org/donate/[donation page ^↗^,window=_blank].
File diff suppressed because it is too large Load Diff
+19 -8
View File
@@ -194,10 +194,15 @@ To auto-join some channels when connecting to server:
/set irc.server.libera.autojoin "#channel1,#channel2"
----
[TIP]
You can complete name and value of options with the kbd:[Tab] key
and kbd:[Shift+Tab] for a partial completion (useful for long words like
the name of option).
The `/autojoin` command lets you configure the _autojoin_ option easily
(see `/help autojoin`).
You can also configure WeeChat to automatically update the _autojoin_ option
when you join or leave channels:
----
/set irc.server_default.autojoin_dynamic on
----
To remove a value of a server option, and use the default value instead,
for example to use default nicks (irc.server_default.nicks):
@@ -213,6 +218,11 @@ option name):
/set irc.server.libera.xxx value
----
[TIP]
You can complete name and value of options with the kbd:[Tab] key
and kbd:[Shift+Tab] for a partial completion (useful for long words like
the name of option).
[[connect_to_irc_server]]
== Connect to IRC server
@@ -370,13 +380,14 @@ for example:
See `/help script` for more info.
A list of scripts is available in WeeChat with `/script` or at this URL:
https://weechat.org/scripts
A list of scripts is available in WeeChat with `/script` or on
https://weechat.org/scripts/[this page ^↗^,window=_blank].
[[more_doc]]
== More documentation
You can now use WeeChat and read FAQ/documentation for any other questions:
https://weechat.org/doc
You can now use WeeChat and read
https://weechat.org/doc/[FAQ/documentation ^↗^,window=_blank]
for any other questions.
Enjoy using WeeChat!
+90 -84
View File
@@ -84,7 +84,7 @@ Fields are:
List of available commands (detail in next chapters):
[width="100%",cols="^3m,14",options="header"]
[width="100%",cols="1m,8",options="header"]
|===
| Command | Description
| handshake | Handshake: prepare client authentication and set options, before _init_ command.
@@ -103,7 +103,7 @@ List of available commands (detail in next chapters):
[[command_handshake]]
=== handshake
_WeeChat ≥ 2.9._
_WeeChat ≥ 2.9, updated in version 3.5._
Perform an handshake between the client and WeeChat: this is required in most
cases to know the session settings and prepare the authentication with the
@@ -127,10 +127,15 @@ Arguments:
*** _sha512_: password salted and hashed with SHA512 algorithm
*** _pbkdf2+sha256_: password salted and hashed with PBKDF2 algorithm (using SHA256 hash)
*** _pbkdf2+sha512_: password salted and hashed with PBKDF2 algorithm (using SHA512 hash)
** _compression_: compression type:
*** _zlib_: enable _zlib_ compression for messages sent by _relay_
(enabled by default if _relay_ supports _zlib_ compression)
*** _off_: disable compression
** _compression_: list of supported compression types supported by the client
(separated by colons and sorted from most important to the fallback value);
if compression is enabled, messages from _relay_ to client are compressed
to save bandwidth; allowed values are:
*** _off_: no compression (default if option is not given)
*** _zlib_: compress with https://zlib.net/[zlib ^↗^,window=_blank] _(WeeChat ≥ 0.3.7)_
*** _zstd_: compress with https://facebook.github.io/zstd/[Zstandard ^↗^,window=_blank]:
better compression and much faster than _zlib_ for both compression and decompression
_(WeeChat ≥ 3.5)_
Notes about option _password_hash_algo_:
@@ -169,8 +174,9 @@ WeeChat replies with a hashtable containing the following keys and values:
and the user password (the _relay_ nonce + the client nonce is the salt used
in the password hash algorithm)
* _compression_: compression type:
** _zlib_: messages are compressed with _zlib_
** _off_: messages are not compressed
** _zlib_: messages are compressed with https://zlib.net/[zlib ^↗^,window=_blank]
** _zstd_: messages are compressed with https://facebook.github.io/zstd/[Zstandard ^↗^,window=_blank]
[TIP]
With WeeChat ≤ 2.8, the command _handshake_ is not implemented, WeeChat silently
@@ -196,7 +202,7 @@ htb: {
'password_hash_iterations': '100000',
'totp': 'on',
'nonce': '85B1EE00695A5B254E14F4885538DF0D',
'compression': 'zlib',
'compression': 'off',
}
----
@@ -216,7 +222,7 @@ htb: {
'password_hash_iterations': '100000',
'totp': 'on',
'nonce': '85B1EE00695A5B254E14F4885538DF0D',
'compression': 'zlib',
'compression': 'off',
}
----
@@ -236,7 +242,7 @@ htb: {
'password_hash_iterations': '100000',
'totp': 'on',
'nonce': '85B1EE00695A5B254E14F4885538DF0D',
'compression': 'zlib',
'compression': 'off',
}
----
@@ -248,10 +254,11 @@ the password is "test" in this example:
init password_hash=pbkdf2+sha256:85b1ee00695a5b254e14f4885538df0da4b73207f5aae4:100000:ba7facc3edb89cd06ae810e29ced85980ff36de2bb596fcf513aaab626876440
----
* Only "sha256" and "sha512" are supported by the client, disable compression:
* Only "sha256" and "sha512" are supported by the client, enable zstd (preferred)
or zlib compression:
----
(handshake) handshake password_hash_algo=sha256:sha512,compression=off
(handshake) handshake password_hash_algo=sha256:sha512,compression=zstd:zlib
----
Response:
@@ -264,14 +271,14 @@ htb: {
'password_hash_iterations': '100000',
'totp': 'on',
'nonce': '85B1EE00695A5B254E14F4885538DF0D',
'compression': 'off',
'compression': 'zstd',
}
----
[[command_init]]
=== init
_Updated in versions 2.4, 2.8, 2.9._
_Updated in versions 2.4, 2.8, 2.9, 3.5._
Authenticate with _relay_.
@@ -298,12 +305,6 @@ Arguments:
factor, in addition to the password
(option _relay.network.totp_secret_ in WeeChat)
_(WeeChat ≥ 2.4)_
** _compression_: compression type (*deprecated* since version 2.9, it is kept
for compatibility reasons but should be sent in the
<<command_handshake,handshake command>>):
*** _zlib_: enable _zlib_ compression for messages sent by _relay_
(enabled by default if _relay_ supports _zlib_ compression)
*** _off_: disable compression
[NOTE]
With WeeChat ≥ 1.6, commas can be escaped in the value, for example
@@ -690,6 +691,8 @@ inl:
text_search_found: 0
text_search_input: None
highlight_words: None
highlight_disable_regex: None
highlight_disable_regex_compiled: '0x0'
highlight_regex: None
highlight_regex_compiled: '0x0'
highlight_tags_restrict: None
@@ -992,7 +995,7 @@ Arguments:
WeeChat replies with a hdata:
[width="100%",cols="3m,2,10",options="header"]
[width="100%",cols="2m,3,14",options="header"]
|===
| Name | Type | Description
| context | string | Completion context: "null" (no completion), "command", "command_arg", "auto".
@@ -1260,24 +1263,24 @@ Syntax:
Returned objects (in this order):
[width="100%",cols="^3,3m,5m",options="header"]
[width="80%",cols="1m,2,6m",options="header"]
|===
| Type | Type (in message) | Value
| char | chr | 65 ("A")
| integer | int | 123456
| integer | int | -123456
| long | lon | 1234567890
| long | lon | -1234567890
| string | str | "a string"
| string | str | ""
| string | str | NULL
| buffer | buf | "buffer"
| buffer | buf | NULL
| pointer | ptr | 0x1234abcd
| pointer | ptr | NULL
| time | tim | 1321993456
| array of strings | arr str | [ "abc", "de" ]
| array of integers | arr int | [ 123, 456, 789 ]
| Type | Description | Value
| chr | char | 65 ("A")
| int | integer | 123456
| int | integer | -123456
| lon | long | 1234567890
| lon | long | -1234567890
| str | string | "a string"
| str | string | ""
| str | string | NULL
| buf | buffer | "buffer"
| buf | buffer | NULL
| ptr | pointer | 0x1234abcd
| ptr | pointer | NULL
| tim | time | 1321993456
| arr str | array of strings | [ "abc", "de" ]
| arr int | array of integers | [ 123, 456, 789 ]
|===
[IMPORTANT]
@@ -1379,7 +1382,8 @@ Messages are sent as binary data, using following format (with size in bytes):
(including this field)
* _compression_ (byte): flag:
** _0x00_: following data is not compressed
** _0x01_: following data is compressed with _zlib_
** _0x01_: following data is compressed with https://zlib.net/[zlib ^↗^,window=_blank]
** _0x02_: following data is compressed with https://facebook.github.io/zstd/[Zstandard ^↗^,window=_blank]
* _id_ (string, 4 bytes + content): identifier sent by client (before command name); it can be
empty (string with zero length and no content) if no identifier was given in
command
@@ -1389,8 +1393,10 @@ Messages are sent as binary data, using following format (with size in bytes):
[[message_compression]]
=== Compression
If flag _compression_ is equal to 0x01, then *all* data after is compressed
with _zlib_, and therefore must be uncompressed before being processed.
If flag _compression_ is equal to 0x01 or 0x02, then *all* data after is compressed
with https://zlib.net/[zlib ^↗^,window=_blank] or
https://facebook.github.io/zstd/[Zstandard ^↗^,window=_blank],
and therefore must be uncompressed before being processed.
[[message_identifier]]
=== Identifier
@@ -1405,68 +1411,68 @@ WeeChat reserved identifiers:
[width="100%",cols="5m,5,3,4,7",options="header"]
|===
| Identifier | Received with _sync_ | Data sent |
Description | Recommended action in client
| Identifier | Received with _sync_ | Data sent
| Description | Recommended action in client
| _buffer_opened | buffers / buffer | hdata: buffer |
Buffer opened. | Open buffer.
| _buffer_opened | buffers / buffer | hdata: buffer
| Buffer opened. | Open buffer.
| _buffer_type_changed | buffers / buffer | hdata: buffer |
Type of buffer changed. | Change type of buffer.
| _buffer_type_changed | buffers / buffer | hdata: buffer
| Type of buffer changed. | Change type of buffer.
| _buffer_moved | buffers / buffer | hdata: buffer |
Buffer moved. | Move buffer.
| _buffer_moved | buffers / buffer | hdata: buffer
| Buffer moved. | Move buffer.
| _buffer_merged | buffers / buffer | hdata: buffer |
Buffer merged. | Merge buffer.
| _buffer_merged | buffers / buffer | hdata: buffer
| Buffer merged. | Merge buffer.
| _buffer_unmerged | buffers / buffer | hdata: buffer |
Buffer unmerged. | Unmerge buffer.
| _buffer_unmerged | buffers / buffer | hdata: buffer
| Buffer unmerged. | Unmerge buffer.
| _buffer_hidden | buffers / buffer | hdata: buffer |
Buffer hidden. | Hide buffer.
| _buffer_hidden | buffers / buffer | hdata: buffer
| Buffer hidden. | Hide buffer.
| _buffer_unhidden | buffers / buffer | hdata: buffer |
Buffer unhidden. | Unhide buffer.
| _buffer_unhidden | buffers / buffer | hdata: buffer
| Buffer unhidden. | Unhide buffer.
| _buffer_renamed | buffers / buffer | hdata: buffer |
Buffer renamed. | Rename buffer.
| _buffer_renamed | buffers / buffer | hdata: buffer
| Buffer renamed. | Rename buffer.
| _buffer_title_changed | buffers / buffer | hdata: buffer |
Title of buffer changed. | Change title of buffer.
| _buffer_title_changed | buffers / buffer | hdata: buffer
| Title of buffer changed. | Change title of buffer.
| _buffer_localvar_added | buffers / buffer | hdata: buffer |
Local variable added. | Add local variable in buffer.
| _buffer_localvar_added | buffers / buffer | hdata: buffer
| Local variable added. | Add local variable in buffer.
| _buffer_localvar_changed | buffers / buffer | hdata: buffer |
Local variable changed. | Change local variable in buffer.
| _buffer_localvar_changed | buffers / buffer | hdata: buffer
| Local variable changed. | Change local variable in buffer.
| _buffer_localvar_removed | buffers / buffer | hdata: buffer |
Local variable removed. | Remove local variable from buffer.
| _buffer_localvar_removed | buffers / buffer | hdata: buffer
| Local variable removed. | Remove local variable from buffer.
| _buffer_closing | buffers / buffer | hdata: buffer |
Buffer closing. | Close buffer.
| _buffer_closing | buffers / buffer | hdata: buffer
| Buffer closing. | Close buffer.
| _buffer_cleared | buffer | hdata: buffer |
Buffer cleared. | Clear buffer.
| _buffer_cleared | buffer | hdata: buffer
| Buffer cleared. | Clear buffer.
| _buffer_line_added | buffer | hdata: line |
Line added in buffer. | Display line in buffer.
| _buffer_line_added | buffer | hdata: line
| Line added in buffer. | Display line in buffer.
| _nicklist | nicklist | hdata: nicklist_item |
Nicklist for a buffer. | Replace nicklist.
| _nicklist | nicklist | hdata: nicklist_item
| Nicklist for a buffer. | Replace nicklist.
| _nicklist_diff | nicklist | hdata: nicklist_item |
Nicklist diffs for a buffer . | Update nicklist.
| _nicklist_diff | nicklist | hdata: nicklist_item
| Nicklist diffs for a buffer . | Update nicklist.
| _pong | (always) | string: ping arguments |
Answer to a "ping". | Measure response time.
| _pong | (always) | string: ping arguments
| Answer to a "ping". | Measure response time.
| _upgrade | upgrade | (empty) |
WeeChat is upgrading. | Desync from WeeChat (or disconnect).
| _upgrade | upgrade | (empty)
| WeeChat is upgrading. | Desync from WeeChat (or disconnect).
| _upgrade_ended | upgrade | (empty) |
Upgrade of WeeChat done. | Sync/resync with WeeChat.
| _upgrade_ended | upgrade | (empty)
| Upgrade of WeeChat done. | Sync/resync with WeeChat.
|===
[[message_buffer_opened]]
@@ -2331,7 +2337,7 @@ commands sent on startup after the _init_.
Objects are identified by 3 letters, called _type_. Following types are used:
[width="100%",cols="^2m,5,10",options="header"]
[width="100%",cols="1m,2,8",options="header"]
|===
| Type | Value | Length
| chr | Signed char | 1 byte
+212 -152
View File
@@ -11,8 +11,8 @@
This manual documents WeeChat chat client, it is part of WeeChat.
Latest version of this document can be found on this page:
https://weechat.org/doc
Latest version of this document can be found on
https://weechat.org/doc/[this page ^↗^,window=_blank].
[[introduction]]
@@ -61,7 +61,7 @@ function, this can crash WeeChat. +
If something must be run in background, the function `+hook_process+` can be used.
See example in the chapter <<hook_process,Run a background process>>
and the documentation on the function `+hook_process+` in the
link:weechat_plugin_api.en.html#_hook_process[WeeChat plugin API reference].
link:weechat_plugin_api.en.html#_hook_process[WeeChat plugin API reference ^↗^,window=_blank].
[[languages_specificities]]
=== Languages specificities
@@ -74,7 +74,7 @@ link:weechat_plugin_api.en.html#_hook_process[WeeChat plugin API reference].
WeeChat defines a `weechat` module which must be imported with `import weechat`. +
A Python stub for WeeChat API is available in the repository:
https://raw.githubusercontent.com/weechat/weechat/master/src/plugins/python/weechat.pyi[weechat.pyi].
https://raw.githubusercontent.com/weechat/weechat/master/src/plugins/python/weechat.pyi[weechat.pyi ^↗^,window=_blank].
[[python_functions]]
===== Functions
@@ -99,45 +99,41 @@ receive a string of type `str` or `bytes` (this list is not exhaustive):
|===
| API function | Arguments | Examples | Description
| hook_modifier |
irc_in_yyy |
pass:[irc_in_privmsg] +
pass:[irc_in_notice] |
A message received in IRC plugin, before it is decoded to UTF-8 (used
| hook_modifier
| irc_in_yyy
| pass:[irc_in_privmsg] +
pass:[irc_in_notice]
| A message received in IRC plugin, before it is decoded to UTF-8 (used
internally). +
+
It is recommended to use modifier `+irc_in2_yyy+` instead, the string received
is always UTF-8 valid. +
See function `+hook_modifier+` in the
link:weechat_plugin_api.en.html#_hook_modifier[WeeChat plugin API reference].
link:weechat_plugin_api.en.html#_hook_modifier[WeeChat plugin API reference ^↗^,window=_blank].
| hook_signal |
xxx,irc_out_yyy +
xxx,irc_outtags_yyy |
pass:[*,irc_out_privmsg] +
| hook_signal
| xxx,irc_out_yyy +
xxx,irc_outtags_yyy
| pass:[*,irc_out_privmsg] +
pass:[*,irc_out_notice] +
pass:[*,irc_outtags_privmsg] +
pass:[*,irc_outtags_notice] |
A message sent by IRC plugin, after it is encoded to the `encode` charset
pass:[*,irc_outtags_notice]
| A message sent by IRC plugin, after it is encoded to the `encode` charset
defined by the user (if different from the default `UTF-8`). +
+
It is recommended to use signal `+xxx,irc_out1_yyy+` instead, the string received
is always UTF-8 valid. +
See function `+hook_signal+` in the
link:weechat_plugin_api.en.html#_hook_signal[WeeChat plugin API reference].
link:weechat_plugin_api.en.html#_hook_signal[WeeChat plugin API reference ^↗^,window=_blank].
| hook_process +
hook_process_hashtable |
- |
- |
Output of the command, sent to the callback, can contain invalid UTF-8 data.
hook_process_hashtable
| -
| -
| Output of the command, sent to the callback, can contain invalid UTF-8 data.
|===
In Python 2, which is now deprecated and should not be used any more, the
strings sent to callbacks are always of type `str`, and may contain invalid
UTF-8 data, in the cases mentioned above.
[[language_perl]]
==== Perl
@@ -195,6 +191,22 @@ Functions are called with `+weechat.xxx(arg1, arg2, ...)+`.
Functions are called with `+weechat::xxx arg1 arg2 ...+`.
[[tcl_null]]
===== Null values
Since Tcl only has string types, there's no null type to pass as an argument
when a function accepts null values or to get as an argument in a callback
function. To overcome this the WeeChat API defines the constant
`$::weechat::WEECHAT_NULL` which acts as a null value. This constant is defined
as `\uFFFF\uFFFF\uFFFFWEECHAT_NULL\uFFFF\uFFFF\uFFFF`, so it's very unlikely to
appear unintentionally.
You can pass this constant when a function accepts null as an argument and you
will get it as the value of an argument in a callback function if the argument
value is null. To see which functions accept null values and passes null values
to callbacks, look at the Python prototypes in the
link:weechat_plugin_api.en.html[WeeChat plugin API reference ^↗^,window=_blank].
[[language_guile]]
==== Guile (Scheme)
@@ -370,7 +382,7 @@ directory is automatically created.
== Differences with C API
Script API is almost the same as C plugin API.
You can look at link:weechat_plugin_api.en.html[WeeChat plugin API reference]
You can look at link:weechat_plugin_api.en.html[WeeChat plugin API reference ^↗^,window=_blank]
for detail about each function in API: prototype, arguments, return values, examples.
It's important to make difference between a _plugin_ and a _script_: a
@@ -537,25 +549,25 @@ weechat_hook_timer(1000, 0, 1, $timer_cb, 'test');
== Script API
For more information about functions in API, please read the
link:weechat_plugin_api.en.html[WeeChat plugin API reference].
link:weechat_plugin_api.en.html[WeeChat plugin API reference ^↗^,window=_blank].
[[script_api_functions]]
=== Functions
List of functions in script API:
[width="100%",cols="1,3",options="header"]
[width="100%",cols="1,5",options="header"]
|===
| Category | Functions
| general |
register
| general
| register
| plugins |
plugin_get_name
| plugins
| plugin_get_name
| strings |
charset_set +
| strings
| charset_set +
iconv_to_internal +
iconv_from_internal +
gettext +
@@ -567,6 +579,7 @@ List of functions in script API:
string_has_highlight_regex +
string_mask_to_regex +
string_format_size +
string_parse_size +
string_color_code_size +
string_remove_color +
string_is_command_char +
@@ -574,13 +587,13 @@ List of functions in script API:
string_eval_expression +
string_eval_path_home
| directories |
mkdir_home +
| directories
| mkdir_home +
mkdir +
mkdir_parents
| sorted lists |
list_new +
| sorted lists
| list_new +
list_add +
list_search +
list_search_pos +
@@ -596,8 +609,8 @@ List of functions in script API:
list_remove_all +
list_free
| configuration files |
config_new +
| configuration files
| config_new +
config_new_section +
config_search_section +
config_new_option +
@@ -634,20 +647,21 @@ List of functions in script API:
config_set_desc_plugin +
config_unset_plugin
| key bindings |
key_bind +
| key bindings
| key_bind +
key_unbind
| display |
prefix +
| display
| prefix +
color +
print (for python: prnt) +
print_date_tags (for python: prnt_date_tags) +
print_y (for python: prnt_y) +
print_y_date_tags (for python: prnt_y_date_tags) +
log_print
| hooks |
hook_command +
| hooks
| hook_command +
hook_command_run +
hook_timer +
hook_fd +
@@ -672,8 +686,9 @@ List of functions in script API:
unhook +
unhook_all
| buffers |
buffer_new +
| buffers
| buffer_new +
buffer_new_props +
current_buffer +
buffer_search +
buffer_search_main +
@@ -688,16 +703,16 @@ List of functions in script API:
buffer_string_replace_local_var +
buffer_match_list
| windows |
current_window +
| windows
| current_window +
window_search_with_buffer +
window_get_integer +
window_get_string +
window_get_pointer +
window_set_title
| nicklist |
nicklist_add_group +
| nicklist
| nicklist_add_group +
nicklist_search_group +
nicklist_add_nick +
nicklist_search_nick +
@@ -713,8 +728,8 @@ List of functions in script API:
nicklist_nick_get_pointer +
nicklist_nick_set
| bars |
bar_item_search +
| bars
| bar_item_search +
bar_item_new +
bar_item_update +
bar_item_remove +
@@ -724,23 +739,23 @@ List of functions in script API:
bar_update +
bar_remove
| commands |
command +
| commands
| command +
command_options
| completion |
completion_new +
| completion
| completion_new +
completion_search +
completion_get_string +
completion_list_add +
completion_free
| infos |
info_get +
| infos
| info_get +
info_get_hashtable
| infolists |
infolist_new +
| infolists
| infolist_new +
infolist_new_item +
infolist_new_var_integer +
infolist_new_var_string +
@@ -758,8 +773,8 @@ List of functions in script API:
infolist_time +
infolist_free
| hdata |
hdata_get +
| hdata
| hdata_get +
hdata_get_var_offset +
hdata_get_var_type_string +
hdata_get_var_array_size +
@@ -780,8 +795,8 @@ List of functions in script API:
hdata_update +
hdata_get_string
| upgrade |
upgrade_new +
| upgrade
| upgrade_new +
upgrade_write_object +
upgrade_read +
upgrade_close
@@ -792,17 +807,17 @@ List of functions in script API:
List of constants in script API:
[width="100%",cols="1,3",options="header"]
[width="100%",cols="1,5",options="header"]
|===
| Category | Constants
| return codes |
`WEECHAT_RC_OK` (integer) +
| return codes
| `WEECHAT_RC_OK` (integer) +
`WEECHAT_RC_OK_EAT` (integer) +
`WEECHAT_RC_ERROR` (integer)
| configuration files |
`WEECHAT_CONFIG_READ_OK` (integer) +
| configuration files
| `WEECHAT_CONFIG_READ_OK` (integer) +
`WEECHAT_CONFIG_READ_MEMORY_ERROR` (integer) +
`WEECHAT_CONFIG_READ_FILE_NOT_FOUND` (integer) +
`WEECHAT_CONFIG_WRITE_OK` (integer) +
@@ -817,23 +832,23 @@ List of constants in script API:
`WEECHAT_CONFIG_OPTION_UNSET_OK_REMOVED` (integer) +
`WEECHAT_CONFIG_OPTION_UNSET_ERROR` (integer)
| sorted lists |
`WEECHAT_LIST_POS_SORT` (string) +
| sorted lists
| `WEECHAT_LIST_POS_SORT` (string) +
`WEECHAT_LIST_POS_BEGINNING` (string) +
`WEECHAT_LIST_POS_END` (string)
| hotlist |
`WEECHAT_HOTLIST_LOW` (string) +
| hotlist
| `WEECHAT_HOTLIST_LOW` (string) +
`WEECHAT_HOTLIST_MESSAGE` (string) +
`WEECHAT_HOTLIST_PRIVATE` (string) +
`WEECHAT_HOTLIST_HIGHLIGHT` (string)
| hook process |
`WEECHAT_HOOK_PROCESS_RUNNING` (integer) +
| hook process
| `WEECHAT_HOOK_PROCESS_RUNNING` (integer) +
`WEECHAT_HOOK_PROCESS_ERROR` (integer)
| hook connect |
`WEECHAT_HOOK_CONNECT_OK` (integer) +
| hook connect
| `WEECHAT_HOOK_CONNECT_OK` (integer) +
`WEECHAT_HOOK_CONNECT_ADDRESS_NOT_FOUND` (integer) +
`WEECHAT_HOOK_CONNECT_IP_ADDRESS_NOT_FOUND` (integer) +
`WEECHAT_HOOK_CONNECT_CONNECTION_REFUSED` (integer) +
@@ -845,8 +860,8 @@ List of constants in script API:
`WEECHAT_HOOK_CONNECT_TIMEOUT` (integer) +
`WEECHAT_HOOK_CONNECT_SOCKET_ERROR` (integer)
| hook signal |
`WEECHAT_HOOK_SIGNAL_STRING` (string) +
| hook signal
| `WEECHAT_HOOK_SIGNAL_STRING` (string) +
`WEECHAT_HOOK_SIGNAL_INT` (string) +
`WEECHAT_HOOK_SIGNAL_POINTER` (string)
|===
@@ -856,7 +871,7 @@ List of constants in script API:
This chapter shows some common tasks, with examples.
Only partial things in API are used here, for full reference, see the
link:weechat_plugin_api.en.html[WeeChat plugin API reference].
link:weechat_plugin_api.en.html[WeeChat plugin API reference ^↗^,window=_blank].
[[buffers]]
=== Buffers
@@ -875,7 +890,7 @@ Examples:
weechat.prnt("", "hello")
# display "hello" on core buffer, but do not write it to log file
# (version >= 0.3.3 only)
# (version 0.3.3 only)
weechat.prnt_date_tags("", 0, "no_log", "hello")
# display prefix "==>" and message "hello" on current buffer
@@ -1049,26 +1064,53 @@ weechat.hook_timer(60 * 1000, 60, 0, "timer_cb", "")
You can run a background process with `+hook_process+`. Your callback will be
called when data is ready. It may be called many times.
For the last call to your callback, _rc_ is set to 0 or positive value, it's
return code of command.
For the last call to your callback, _return_code_ is set to 0 or positive value,
it is the return code of command.
Example:
[source,python]
----
process_output = ""
def my_process_cb(data, command, rc, out, err):
global process_output
if out != "":
process_output += out
if int(rc) >= 0:
weechat.prnt("", process_output)
def my_process_cb(data, command, return_code, out, err):
if return_code == weechat.WEECHAT_HOOK_PROCESS_ERROR:
weechat.prnt("", "Error with command '%s'" % command)
return weechat.WEECHAT_RC_OK
if return_code >= 0:
weechat.prnt("", "return_code = %d" % return_code)
if out:
weechat.prnt("", "stdout: %s" % out)
if err:
weechat.prnt("", "stderr: %s" % err)
return weechat.WEECHAT_RC_OK
weechat.hook_process("/bin/ls -l /etc", 10 * 1000, "my_process_cb", "")
----
You can also call directly a script function that does something blocking,
instead of an external command:
[source,python]
----
def get_status(data):
# do something blocking...
# ...
return "this is the result"
def my_process_cb(data, command, return_code, out, err):
if return_code == weechat.WEECHAT_HOOK_PROCESS_ERROR:
weechat.prnt("", "Error with command '%s'" % command)
return weechat.WEECHAT_RC_OK
if return_code >= 0:
weechat.prnt("", "return_code = %d" % return_code)
if out:
weechat.prnt("", "stdout: %s" % out)
if err:
weechat.prnt("", "stderr: %s" % err)
return weechat.WEECHAT_RC_OK
hook = weechat.hook_process("func:get_status", 5000, "my_process_cb", "")
----
[[url_transfer]]
==== URL transfer
@@ -1082,15 +1124,15 @@ in callback (standard output of process):
[source,python]
----
# Display current stable version of WeeChat.
weechat_version = ""
# Display latest stable version of WeeChat.
weechat_latest_version = ""
def weechat_process_cb(data, command, rc, out, err):
global weechat_version
if out != "":
weechat_version += out
if int(rc) >= 0:
weechat.prnt("", "Current WeeChat stable is: %s" % weechat_version)
def weechat_process_cb(data, command, return_code, out, err):
global weechat_latest_version
if out:
weechat_latest_version += out
if return_code >= 0:
weechat.prnt("", "Latest WeeChat version: %s" % weechat_latest_version)
return weechat.WEECHAT_RC_OK
weechat.hook_process("url:https://weechat.org/dev/info/stable/",
@@ -1098,16 +1140,17 @@ weechat.hook_process("url:https://weechat.org/dev/info/stable/",
----
[TIP]
All infos available about WeeChat are on page https://weechat.org/dev/info
All infos available about WeeChat are on
https://weechat.org/dev/info/[this page ^↗^,window=_blank].
Example of URL transfer with an option: download latest WeeChat development
package in file _/tmp/weechat-devel.tar.gz_:
[source,python]
----
def my_process_cb(data, command, rc, out, err):
if int(rc) >= 0:
weechat.prnt("", "End of transfer (rc=%s)" % rc)
def my_process_cb(data, command, return_code, out, err):
if return_code >= 0:
weechat.prnt("", "End of transfer (return code = %d)" % return_code)
return weechat.WEECHAT_RC_OK
weechat.hook_process_hashtable("url:https://weechat.org/files/src/weechat-devel.tar.gz",
@@ -1117,7 +1160,7 @@ weechat.hook_process_hashtable("url:https://weechat.org/files/src/weechat-devel.
For more information about URL transfer and available options, see functions
`+hook_process+` and `+hook_process_hashtable+` in
link:weechat_plugin_api.en.html#_hook_process[WeeChat plugin API reference].
link:weechat_plugin_api.en.html#_hook_process[WeeChat plugin API reference ^↗^,window=_blank].
[[config_options]]
=== Config / options
@@ -1271,59 +1314,71 @@ The result is a hashtable with following keys
[width="100%",cols="3,^2,10,7",options="header"]
|===
| Key | Since WeeChat ^(1)^ | Description | Example
| Key | Since WeeChat ^(1)^ | Description | Example
| tags | 0.4.0 |
The tags in message (can be empty). |
`+time=2015-06-27T16:40:35.000Z+`
| tags | 0.4.0
| The tags in message (can be empty).
| `+time=2015-06-27T16:40:35.000Z+`
| message_without_tags | 0.4.0 |
The message without the tags (the same as message if there are no tags). |
`+:nick!user@host PRIVMSG #weechat :hello!+`
| tag_xxx | 3.3
| Unescaped value of tag "xxx" (one key per tag).
| `+2015-06-27T16:40:35.000Z+`
| nick | 0.3.4 |
The origin nick. |
`+nick+`
| message_without_tags | 0.4.0
| The message without the tags (the same as message if there are no tags).
| `+:nick!user@host PRIVMSG #weechat :hello!+`
| user | 2.7 |
The origin user. |
`+user+`
| nick | 0.3.4
| The origin nick.
| `+nick+`
| host | 0.3.4 |
The origin host (includes the nick). |
`+nick!user@host+`
| user | 2.7
| The origin user.
| `+user+`
| command | 0.3.4 |
The command (_PRIVMSG_, _NOTICE_, ...). |
`+PRIVMSG+`
| host | 0.3.4
| The origin host (includes the nick).
| `+nick!user@host+`
| channel | 0.3.4 |
The target channel. |
`+#weechat+`
| command | 0.3.4
| The command (_PRIVMSG_, _NOTICE_, ...).
| `+PRIVMSG+`
| arguments | 0.3.4 |
The command arguments (includes the channel). |
`+#weechat :hello!+`
| channel | 0.3.4
| The target channel.
| `+#weechat+`
| text | 1.3 |
The text (for example user message). |
`+hello!+`
| arguments | 0.3.4
| The command arguments (includes the channel).
| `+#weechat :hello!+`
| pos_command | 1.3 |
The index of _command_ in message ("-1" if _command_ was not found). |
`+47+`
| text | 1.3
| The text (for example user message).
| `+hello!+`
| pos_arguments | 1.3 |
The index of _arguments_ in message ("-1" if _arguments_ was not found). |
`+55+`
| paramN | 3.4
| Command parameter (from 1 to N).
| `+#weechat+`
| pos_channel | 1.3 |
The index of _channel_ in message ("-1" if _channel_ was not found). |
`+55+`
| num_params | 3.4
| Number of command parameters.
| `+2+`
| pos_text | 1.3 |
The index of _text_ in message ("-1" if _text_ was not found). |
`+65+`
| pos_command | 1.3
| The index of _command_ in message ("-1" if _command_ was not found).
| `+47+`
| pos_arguments | 1.3
| The index of _arguments_ in message ("-1" if _arguments_ was not found).
| `+55+`
| pos_channel | 1.3
| The index of _channel_ in message ("-1" if _channel_ was not found).
| `+55+`
| pos_text | 1.3
| The index of _text_ in message ("-1" if _text_ was not found).
| `+65+`
|===
[NOTE]
@@ -1333,10 +1388,12 @@ The result is a hashtable with following keys
----
dict = weechat.info_get_hashtable(
"irc_message_parse",
{"message": "@time=2015-06-27T16:40:35.000Z :nick!user@host PRIVMSG #weechat :hello!"})
{"message": "@time=2015-06-27T16:40:35.000Z;tag2=value\\sspace :nick!user@host PRIVMSG #weechat :hello!"})
# dict == {
# "tags": "time=2015-06-27T16:40:35.000Z",
# "tags": "time=2015-06-27T16:40:35.000Z;tag2=value\\sspace",
# "tag_time": "2015-06-27T16:40:35.000Z",
# "tag_tag2": "value space",
# "message_without_tags": ":nick!user@host PRIVMSG #weechat :hello!",
# "nick": "nick",
# "user": "user",
@@ -1345,10 +1402,13 @@ dict = weechat.info_get_hashtable(
# "channel": "#weechat",
# "arguments": "#weechat :hello!",
# "text": "hello!",
# "pos_command": "47",
# "pos_arguments": "55",
# "pos_channel": "55",
# "pos_text": "65",
# "param1": "#weechat",
# "param2": "hello!",
# "num_params": "2",
# "pos_command": "65",
# "pos_arguments": "73",
# "pos_channel": "73",
# "pos_text": "83",
# }
----
-131
View File
@@ -1,131 +0,0 @@
= WeeChat tester's guide
:author: Sébastien Helleu
:email: flashcode@flashtux.org
:lang: en
:toc: left
:sectnums:
:docinfo1:
[[purpose]]
== Purpose
Many thankful users ask us how can they help developing WeeChat. The
easiest (and also most tricky) way to help developing WeeChat is testing!
Testing is a very important part of software development and should not be
underestimated. When some features are implemented it should be tested, but for
some features there are too many use cases or these cases are tricky and
developers can't try out every case.
For example: A notorious charset plugin was introduced in WeeChat 0.2.2: none
of us (developers, contributors and testers) used channels with national
characters in their names and when 0.2.2 was released we got flooded by Russian
users blaming us. If we have more testers it should not happen again in the
future.
Testing the stable version of WeeChat is pointless because developers are busy
implementing new stuff (and fixing old bugs) all the time.
[[prepare_system]]
== Prepare your system
It would help us a lot if you enable Linux _core_ files: if WeeChat crashes,
Linux will write a file called _core_. This file contains very useful debug
info, to know exactly where is problem in WeeChat.
If you're using the _bash_ shell, add following line to your _~/.bashrc_:
----
ulimit -c unlimited
----
[[download]]
== Download devel version
Fresh code (with latest bugs and features) is stored in a GIT repository.
You may decide to build it manually (recommended way):
* The GIT version can be built and installed in parallel to the stable version.
* You don't need root access, and you don't need to sacrifice the stable
version of WeeChat.
[[get_sources]]
=== Get and build sources
First create a directory, for example _weechat-git_:
----
$ mkdir ~/weechat-git
$ cd ~/weechat-git
----
If you have git installed, you can just clone the git repository (recommended
way):
----
$ git clone https://github.com/weechat/weechat.git
$ cd weechat
----
[NOTE]
Later, you can run `git pull` in this directory, to get deltas with
the latest updates.
Otherwise you can download and unpack _devel_ package:
----
$ wget https://weechat.org/files/src/weechat-devel.tar.bz2
$ tar xvjf weechat-devel.tar.bz2
$ cd weechat-devel
----
To build sources, CMake is recommended:
----
$ mkdir build
$ cd build
$ cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/weechat-git -DWEECHAT_HOME=~/.weechat-dev -DCMAKE_BUILD_TYPE=Debug
$ make
$ make install
----
If you don't have CMake, it's still possible to use autotools:
----
$ ./autogen.sh
$ ./configure --prefix=$HOME/weechat-git WEECHAT_HOME=~/.weechat-dev
$ make
$ make install
----
[[install_binary_package]]
=== Install binary package
According to your Linux distribution:
* Debian: https://weechat.org/download/debian
* Gentoo: https://weechat.org/download
* ArchLinux: PKGBUILD from https://aur.archlinux.org/
* other: we don't know! Eheh.
[[run]]
== Run WeeChat
Command is:
----
$ ~/weechat-git/bin/weechat
----
If you're still awake you should see the familiar interface and brag about
having the newest possible version of WeeChat. ;)
Now if you experience strange behavior (it may have issues or crash or boil
your beer) don't hesitate to join _#weechat_ at _irc.libera.chat_ and tell us.
If it doesn't crash - tell us too, we need your feedback!
+3488 -2511
View File
File diff suppressed because it is too large Load Diff
+14 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2012-2021 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2012-2023 Sébastien Helleu <flashcode@flashtux.org>
#
# This file is part of WeeChat, the extensible chat client.
#
@@ -19,6 +19,19 @@
if(ENABLE_DOC)
# FAQ
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_faq.es.html
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -o weechat_faq.es.html ${CMAKE_CURRENT_SOURCE_DIR}/weechat_faq.es.adoc
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/../docinfo.html
${CMAKE_CURRENT_SOURCE_DIR}/weechat_faq.es.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building weechat_faq.es.html"
)
add_custom_target(doc-faq-es ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_faq.es.html)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_faq.es.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
# quickstart
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.es.html

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