mirror of
https://github.com/weechat/weechat.git
synced 2026-06-25 12:26:40 +02:00
Compare commits
252 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d4ed290a37 | |||
| a98568788b | |||
| 215fdfc0a7 | |||
| deedaed1f9 | |||
| fb220e1afd | |||
| afd7e08691 | |||
| 0fb0b3bb07 | |||
| ecec47c633 | |||
| 3f64975a72 | |||
| b970962bdb | |||
| d56e46908f | |||
| 8b19d3b0a4 | |||
| fcf439dfa0 | |||
| e4a2a6d3f2 | |||
| 7051d7e08b | |||
| 36d09a2ba6 | |||
| ee799c9032 | |||
| 797d3c0db2 | |||
| 91223591e9 | |||
| f50b91a6d9 | |||
| d2d490146c | |||
| f587a9dcaf | |||
| 54b0753aab | |||
| d189ca7f19 | |||
| 86d8bec433 | |||
| 53db79aa5f | |||
| b994a645e3 | |||
| 64f17761f1 | |||
| 3bdb31bbf6 | |||
| 7f1f9462f4 | |||
| 9fbc81dc54 | |||
| 4550c3e33a | |||
| 7e2b9ffa9a | |||
| 04f817814f | |||
| 0315c53a9e | |||
| 3aeaa70e64 | |||
| 66e633e27e | |||
| 436bbeceff | |||
| c307087e2d | |||
| 51a1149852 | |||
| d74993a42c | |||
| 51464e400f | |||
| 1c5e6c3fc2 | |||
| e563dfc903 | |||
| befbcceb7f | |||
| 56f9ad68fb | |||
| 328f86affc | |||
| f4dc30ec58 | |||
| 23291acb7b | |||
| b802681230 | |||
| 3687ce0f0f | |||
| 1211510ded | |||
| 07871f123f | |||
| a0cf82d4a6 | |||
| 13291b6b9a | |||
| 76d652a513 | |||
| ff9b698665 | |||
| d5c985eb11 | |||
| b29f464322 | |||
| 171a9a9fc4 | |||
| d7bc041098 | |||
| 43a118ac47 | |||
| e540d7a2cf | |||
| 6948aea626 | |||
| 5dbb96b66a | |||
| 4fdcbf8f93 | |||
| e4b70ad252 | |||
| d7fd2b7b0b | |||
| 73cf57742e | |||
| bf7b8484cd | |||
| 86f51b66b3 | |||
| 1400b6c197 | |||
| c71978c0b3 | |||
| 4c38ce050b | |||
| 5520ed1950 | |||
| ad35aef1f4 | |||
| 88f0070674 | |||
| 7683287f71 | |||
| 33adaef85c | |||
| 6f3c804379 | |||
| 617b4e4dee | |||
| ea1eb76b2d | |||
| ad12925d6c | |||
| a5fcf898b9 | |||
| 14d544be39 | |||
| 3e994996c6 | |||
| 3341b9a2d2 | |||
| 815640b840 | |||
| acd3d91318 | |||
| ef5f4d8ee6 | |||
| d40217d1e6 | |||
| 17b593325a | |||
| 3456e848da | |||
| 723232ac35 | |||
| 5f5f9f35e7 | |||
| 86a6c4f5ff | |||
| 3082c2e4e5 | |||
| 062109e33d | |||
| fd88c9a45b | |||
| a8c4d5604e | |||
| ef4c657157 | |||
| 0c29e5a630 | |||
| 77a0dbfd44 | |||
| afa42ec851 | |||
| 8da86431da | |||
| 3d7f988973 | |||
| 5ed21d7dad | |||
| 54eff44d74 | |||
| 83d760deae | |||
| 5147b19e51 | |||
| 50959eeb01 | |||
| ac2ed69c0b | |||
| 2f7f707df0 | |||
| 94e5de4836 | |||
| 38f9a5587f | |||
| 6432711798 | |||
| 81c23a5134 | |||
| 6336c22293 | |||
| 6658122b03 | |||
| 7e8f8b5178 | |||
| d00e334738 | |||
| f48b0bae2e | |||
| d3d18cd4c2 | |||
| cead39b52f | |||
| 7d88e53182 | |||
| 8fe741e057 | |||
| b6ef936cca | |||
| 7c2bae9faf | |||
| 2b48eba784 | |||
| 5969f9faf6 | |||
| b70b484f5f | |||
| b250d71608 | |||
| 94457f8313 | |||
| 0cd0e7be6a | |||
| 2ececc1184 | |||
| b8bef1c3e1 | |||
| d9e56c3df8 | |||
| dc28050b8b | |||
| f53e7fb9ef | |||
| d34eb40187 | |||
| 2cbbb677f3 | |||
| f7267bc992 | |||
| 147d5b3f88 | |||
| da4881959e | |||
| 5e963c7546 | |||
| 41d8e06394 | |||
| 52d1245bad | |||
| 961dc515a0 | |||
| 73ec7c0641 | |||
| c60a5fde14 | |||
| 0bbae498c9 | |||
| 4c79e870af | |||
| dc4df8b9aa | |||
| 6bc11571b5 | |||
| d1b71a8562 | |||
| 19a6591410 | |||
| 25e0809c55 | |||
| e8d0399623 | |||
| c41d73e417 | |||
| 1532efea6d | |||
| 9bf2d51493 | |||
| 27ae6ca789 | |||
| 916c59d8f0 | |||
| 37bdf6586b | |||
| 13e9381e19 | |||
| b94e4af67e | |||
| 431d9ad64a | |||
| f5bbe35cfb | |||
| b82ce33c6c | |||
| 87a683ebdb | |||
| f048ea9eac | |||
| fc0fb05ec0 | |||
| 835e0b9549 | |||
| 507f172dae | |||
| fc595afd08 | |||
| 2f5305dc82 | |||
| 9f2b9c4ea9 | |||
| aea8421e49 | |||
| 81834c45ae | |||
| 01d2887b13 | |||
| 8b30d9a7d7 | |||
| 92327871d2 | |||
| b2556f99f4 | |||
| ec6372f4df | |||
| abb74ac178 | |||
| 71329fd595 | |||
| 106fe6ca7c | |||
| 630f2e2e7c | |||
| eb0b01f62a | |||
| fb00b7055c | |||
| 58b1f5c62b | |||
| d663070b02 | |||
| 8ff7d63744 | |||
| 5eb3bca47b | |||
| d0478bdc04 | |||
| d7fc65e282 | |||
| 0d737349be | |||
| dc94251b33 | |||
| 306155aa48 | |||
| 238f8cbc7e | |||
| fa043644cb | |||
| e06b3c1d7e | |||
| 5b052532ec | |||
| 18bce9e8c4 | |||
| 886042a875 | |||
| fca4ee28e0 | |||
| 7c37eced93 | |||
| a413d16038 | |||
| 440907e1cd | |||
| cb08473bdc | |||
| 71ef7e286c | |||
| 2a234b3bfe | |||
| 6442b938eb | |||
| c8d2b4448a | |||
| 3918efd8e9 | |||
| 4decd2c386 | |||
| 323ab8810e | |||
| fc6003c74e | |||
| ae54c3ef65 | |||
| b38c00bb0d | |||
| 20a7affb70 | |||
| 150e6ecd82 | |||
| 87ef578ad2 | |||
| ef5f197a4a | |||
| 250db946b0 | |||
| f0160bf5ab | |||
| 7d51a1331b | |||
| 22b335ce86 | |||
| f26f73f283 | |||
| 323c9e2bfe | |||
| 894df0e9e6 | |||
| ead76532de | |||
| da2f506f2e | |||
| e42e811c95 | |||
| 889450fb31 | |||
| 3c11e09c30 | |||
| 616daecdd0 | |||
| 9b4fd66de7 | |||
| b42f7a400e | |||
| 9e814860ae | |||
| a2a71b4d33 | |||
| 7d6b8f6943 | |||
| 3b4a5bbb09 | |||
| 58b7ec59e9 | |||
| 518b9ab381 | |||
| a9e48d33c6 | |||
| 1ff001994c | |||
| 234a37df6f | |||
| 6bcc6ef65f | |||
| d5e6c94246 | |||
| 63b6dee311 | |||
| 34697cf5ce |
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
# SPDX-FileCopyrightText: 2024 Emil Velikov <emil.l.velikov@gmail.com>
|
# SPDX-FileCopyrightText: 2024 Emil Velikov <emil.l.velikov@gmail.com>
|
||||||
# SPDX-FileCopyrightText: 2024-2025 Sébastien Helleu <flashcode@flashtux.org>
|
# SPDX-FileCopyrightText: 2024-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
#
|
#
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
# SPDX-FileCopyrightText: 2013-2025 Sébastien Helleu <flashcode@flashtux.org>
|
# SPDX-FileCopyrightText: 2013-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
# SPDX-FileCopyrightText: 2019-2025 Sébastien Helleu <flashcode@flashtux.org>
|
# SPDX-FileCopyrightText: 2019-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# SPDX-FileCopyrightText: 2023-2025 Sébastien Helleu <flashcode@flashtux.org>
|
# SPDX-FileCopyrightText: 2023-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# SPDX-FileCopyrightText: 2020-2025 Sébastien Helleu <flashcode@flashtux.org>
|
# SPDX-FileCopyrightText: 2020-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# SPDX-FileCopyrightText: 2023-2025 Sébastien Helleu <flashcode@flashtux.org>
|
# SPDX-FileCopyrightText: 2023-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# SPDX-FileCopyrightText: 2023-2025 Sébastien Helleu <flashcode@flashtux.org>
|
# SPDX-FileCopyrightText: 2023-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
|||||||
+257
-186
@@ -1,4 +1,4 @@
|
|||||||
# SPDX-FileCopyrightText: 2020-2025 Sébastien Helleu <flashcode@flashtux.org>
|
# SPDX-FileCopyrightText: 2020-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
@@ -11,6 +11,14 @@ on:
|
|||||||
- cron: '22 9 * * 2'
|
- cron: '22 9 * * 2'
|
||||||
|
|
||||||
env:
|
env:
|
||||||
|
CHECK_DEPS_UBUNTU: >-
|
||||||
|
curl
|
||||||
|
gettext
|
||||||
|
hunspell
|
||||||
|
hunspell-en-us
|
||||||
|
hunspell-fr
|
||||||
|
pipx
|
||||||
|
shellcheck
|
||||||
WEECHAT_DEPS_UBUNTU: >-
|
WEECHAT_DEPS_UBUNTU: >-
|
||||||
asciidoctor
|
asciidoctor
|
||||||
build-essential
|
build-essential
|
||||||
@@ -18,7 +26,6 @@ env:
|
|||||||
curl
|
curl
|
||||||
devscripts
|
devscripts
|
||||||
equivs
|
equivs
|
||||||
flake8
|
|
||||||
gem2deb
|
gem2deb
|
||||||
guile-3.0-dev
|
guile-3.0-dev
|
||||||
lcov
|
lcov
|
||||||
@@ -29,7 +36,7 @@ env:
|
|||||||
libcurl4-gnutls-dev
|
libcurl4-gnutls-dev
|
||||||
libgcrypt20-dev
|
libgcrypt20-dev
|
||||||
libgnutls28-dev
|
libgnutls28-dev
|
||||||
liblua5.3-dev
|
liblua5.4-dev
|
||||||
libncurses-dev
|
libncurses-dev
|
||||||
libperl-dev
|
libperl-dev
|
||||||
libphp-embed
|
libphp-embed
|
||||||
@@ -40,14 +47,11 @@ env:
|
|||||||
php-dev
|
php-dev
|
||||||
pipx
|
pipx
|
||||||
pkgconf
|
pkgconf
|
||||||
pylint
|
|
||||||
python3-bandit
|
|
||||||
python3-dev
|
python3-dev
|
||||||
ruby-pygments.rb
|
ruby-pygments.rb
|
||||||
shellcheck
|
|
||||||
tcl8.6-dev
|
tcl8.6-dev
|
||||||
zlib1g-dev
|
zlib1g-dev
|
||||||
WEECHAT_DEPS_ROCKYLINUX: >-
|
WEECHAT_DEPS_REDHAT: >-
|
||||||
asciidoctor
|
asciidoctor
|
||||||
aspell-devel
|
aspell-devel
|
||||||
cjson-devel
|
cjson-devel
|
||||||
@@ -98,10 +102,53 @@ env:
|
|||||||
sudo
|
sudo
|
||||||
tcl86
|
tcl86
|
||||||
zstd
|
zstd
|
||||||
|
WEECHAT_DEPS_MACOS: >-
|
||||||
|
asciidoctor
|
||||||
|
aspell
|
||||||
|
cjson
|
||||||
|
guile
|
||||||
|
lua
|
||||||
|
pkg-config
|
||||||
|
ruby
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|
||||||
tests_ubuntu:
|
checks:
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
os:
|
||||||
|
- ubuntu-24.04
|
||||||
|
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
|
||||||
|
- uses: actions/checkout@v6
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
sudo apt-get update -qq
|
||||||
|
sudo apt-get --yes --no-install-recommends install ${{ env.CHECK_DEPS_UBUNTU }}
|
||||||
|
pipx install msgcheck ruff
|
||||||
|
cargo install --version 0.0.11 poexam
|
||||||
|
|
||||||
|
- name: Check gettext files (msgcheck)
|
||||||
|
run: msgcheck po/*.po
|
||||||
|
|
||||||
|
- name: Check gettext files (poexam)
|
||||||
|
run: poexam check --file-stats --rule-stats
|
||||||
|
|
||||||
|
- name: Check shell and Python scripts
|
||||||
|
run: ./tools/check_scripts.sh
|
||||||
|
|
||||||
|
- name: Check Python stub file
|
||||||
|
run: ./tools/generate_python_stub.py | diff src/plugins/python/weechat.pyi -
|
||||||
|
|
||||||
|
- name: Check Curl symbols
|
||||||
|
run: curl --silent --show-error --fail --retry 10 https://raw.githubusercontent.com/curl/curl/master/docs/libcurl/symbols-in-versions | ./tools/check_curl_symbols.py
|
||||||
|
|
||||||
|
install:
|
||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
@@ -116,6 +163,10 @@ jobs:
|
|||||||
cc: "gcc"
|
cc: "gcc"
|
||||||
cxx: "g++"
|
cxx: "g++"
|
||||||
buildargs: "-G Ninja -DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON"
|
buildargs: "-G Ninja -DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON"
|
||||||
|
- name: "gcc_release_hardened"
|
||||||
|
cc: "gcc"
|
||||||
|
cxx: "g++"
|
||||||
|
buildargs: "-DENABLE_TESTS=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS=\"-Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3\" -DCMAKE_CXX_FLAGS=\"-Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3\""
|
||||||
- name: "gcc_no_nls"
|
- name: "gcc_no_nls"
|
||||||
cc: "gcc"
|
cc: "gcc"
|
||||||
cxx: "g++"
|
cxx: "g++"
|
||||||
@@ -141,12 +192,12 @@ jobs:
|
|||||||
cxx: "clang++"
|
cxx: "clang++"
|
||||||
buildargs: "-DENABLE_CODE_COVERAGE=ON -DENABLE_FUZZ=ON"
|
buildargs: "-DENABLE_CODE_COVERAGE=ON -DENABLE_FUZZ=ON"
|
||||||
|
|
||||||
name: "${{ matrix.os }} (${{ matrix.config.name }})"
|
name: "install (${{ matrix.os }}, ${{ matrix.config.name }})"
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v6
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
@@ -154,19 +205,7 @@ jobs:
|
|||||||
sudo apt-get --yes --no-install-recommends install ${{ env.WEECHAT_DEPS_UBUNTU }}
|
sudo apt-get --yes --no-install-recommends install ${{ env.WEECHAT_DEPS_UBUNTU }}
|
||||||
# uninstall php imagick as is causes a crash when loading php plugin (see #2009)
|
# uninstall php imagick as is causes a crash when loading php plugin (see #2009)
|
||||||
sudo apt-get --yes purge php8.3-imagick
|
sudo apt-get --yes purge php8.3-imagick
|
||||||
pipx install msgcheck schemathesis
|
pipx install schemathesis
|
||||||
|
|
||||||
- name: Check gettext files
|
|
||||||
run: msgcheck po/*.po
|
|
||||||
|
|
||||||
- name: Check shell and Python scripts
|
|
||||||
run: ./tools/check_scripts.sh
|
|
||||||
|
|
||||||
- name: Check Python stub file
|
|
||||||
run: ./tools/generate_python_stub.py | diff src/plugins/python/weechat.pyi -
|
|
||||||
|
|
||||||
- name: Check Curl symbols
|
|
||||||
run: curl --silent --show-error --fail --retry 10 https://raw.githubusercontent.com/curl/curl/master/docs/libcurl/symbols-in-versions | ./tools/check_curl_symbols.py
|
|
||||||
|
|
||||||
- name: Build and run tests
|
- name: Build and run tests
|
||||||
env:
|
env:
|
||||||
@@ -214,6 +253,198 @@ jobs:
|
|||||||
lcov --list coverage.info
|
lcov --list coverage.info
|
||||||
bash <(curl -s https://codecov.io/bash) -f coverage.info || echo 'Codecov error'
|
bash <(curl -s https://codecov.io/bash) -f coverage.info || echo 'Codecov error'
|
||||||
|
|
||||||
|
install_fedora:
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
os:
|
||||||
|
- ubuntu-24.04
|
||||||
|
config:
|
||||||
|
- name: "gcc"
|
||||||
|
cc: "gcc"
|
||||||
|
cxx: "g++"
|
||||||
|
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON"
|
||||||
|
- name: "clang"
|
||||||
|
cc: "clang"
|
||||||
|
cxx: "clang++"
|
||||||
|
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON -DENABLE_CODE_COVERAGE=ON -DENABLE_FUZZ=ON"
|
||||||
|
|
||||||
|
name: "install (fedora:43, ${{ matrix.config.name }})"
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
container:
|
||||||
|
image: fedora:43
|
||||||
|
|
||||||
|
steps:
|
||||||
|
|
||||||
|
- uses: actions/checkout@v6
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: dnf install -y ${{ env.WEECHAT_DEPS_REDHAT }}
|
||||||
|
|
||||||
|
- name: Build and run tests
|
||||||
|
env:
|
||||||
|
CC: ${{ matrix.config.cc }}
|
||||||
|
CXX: ${{ matrix.config.cxx }}
|
||||||
|
run: ./tools/build_test.sh ${{ matrix.config.buildargs }}
|
||||||
|
|
||||||
|
- name: Run WeeChat
|
||||||
|
env:
|
||||||
|
TERM: xterm-256color
|
||||||
|
run: |
|
||||||
|
weechat --help
|
||||||
|
weechat-curses --help
|
||||||
|
weechat --version
|
||||||
|
weechat --build-info
|
||||||
|
weechat --colors
|
||||||
|
weechat --license
|
||||||
|
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
|
||||||
|
|
||||||
|
install_rockylinux:
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
os:
|
||||||
|
- ubuntu-24.04
|
||||||
|
config:
|
||||||
|
- name: "gcc"
|
||||||
|
cc: "gcc"
|
||||||
|
cxx: "g++"
|
||||||
|
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON"
|
||||||
|
- name: "clang"
|
||||||
|
cc: "clang"
|
||||||
|
cxx: "clang++"
|
||||||
|
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON -DENABLE_CODE_COVERAGE=ON -DENABLE_FUZZ=ON"
|
||||||
|
|
||||||
|
name: "install (rockylinux:9, ${{ matrix.config.name }})"
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
container:
|
||||||
|
image: rockylinux:9
|
||||||
|
|
||||||
|
steps:
|
||||||
|
|
||||||
|
- uses: actions/checkout@v6
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
dnf install -y epel-release dnf-plugins-core
|
||||||
|
dnf config-manager --set-enabled crb
|
||||||
|
# pin a working ruby stream (ruby:4.0 has broken module metadata on Rocky 9.8)
|
||||||
|
dnf module enable -y ruby:3.3
|
||||||
|
dnf install -y ${{ env.WEECHAT_DEPS_REDHAT }}
|
||||||
|
|
||||||
|
- name: Build and run tests
|
||||||
|
env:
|
||||||
|
CC: ${{ matrix.config.cc }}
|
||||||
|
CXX: ${{ matrix.config.cxx }}
|
||||||
|
run: ./tools/build_test.sh ${{ matrix.config.buildargs }}
|
||||||
|
|
||||||
|
- name: Run WeeChat
|
||||||
|
env:
|
||||||
|
TERM: xterm-256color
|
||||||
|
run: |
|
||||||
|
weechat --help
|
||||||
|
weechat-curses --help
|
||||||
|
weechat --version
|
||||||
|
weechat --build-info
|
||||||
|
weechat --colors
|
||||||
|
weechat --license
|
||||||
|
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
|
||||||
|
|
||||||
|
install_freebsd:
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
os:
|
||||||
|
- ubuntu-24.04
|
||||||
|
config:
|
||||||
|
# - name: "gcc"
|
||||||
|
# cc: "gcc"
|
||||||
|
# cxx: "g++"
|
||||||
|
# buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON"
|
||||||
|
- name: "clang"
|
||||||
|
cc: "clang"
|
||||||
|
cxx: "clang++"
|
||||||
|
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON -DENABLE_CODE_COVERAGE=ON -DENABLE_FUZZ=ON"
|
||||||
|
|
||||||
|
name: "install (freebsd, ${{ matrix.config.name }})"
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
|
||||||
|
- uses: actions/checkout@v6
|
||||||
|
|
||||||
|
- name: Install dependencies, build and run tests, run WeeChat
|
||||||
|
uses: vmactions/freebsd-vm@v1
|
||||||
|
env:
|
||||||
|
CC: ${{ matrix.config.cc }}
|
||||||
|
CXX: ${{ matrix.config.cxx }}
|
||||||
|
TERM: xterm-256color
|
||||||
|
with:
|
||||||
|
envs: "CC CXX TERM"
|
||||||
|
usesh: true
|
||||||
|
prepare: pkg install -y ${{ env.WEECHAT_DEPS_FREEBSD }}
|
||||||
|
run: |
|
||||||
|
./tools/build_test.sh ${{ matrix.config.buildargs }}
|
||||||
|
weechat --help
|
||||||
|
weechat-curses --help
|
||||||
|
weechat --version
|
||||||
|
weechat --build-info
|
||||||
|
weechat --colors
|
||||||
|
weechat --license
|
||||||
|
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
|
||||||
|
|
||||||
|
install_macos:
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
os:
|
||||||
|
- macos-14
|
||||||
|
config:
|
||||||
|
- name: "gcc"
|
||||||
|
cc: "gcc"
|
||||||
|
cxx: "g++"
|
||||||
|
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_DOC_INCOMPLETE=ON -DENABLE_PHP=OFF -DENABLE_TESTS=OFF"
|
||||||
|
- name: "clang"
|
||||||
|
cc: "clang"
|
||||||
|
cxx: "clang++"
|
||||||
|
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_DOC_INCOMPLETE=ON -DENABLE_PHP=OFF -DENABLE_TESTS=OFF"
|
||||||
|
|
||||||
|
name: "install (${{ matrix.os }}, ${{ matrix.config.name }})"
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
|
||||||
|
- name: Setup Homebrew
|
||||||
|
id: setup-homebrew
|
||||||
|
uses: Homebrew/actions/setup-homebrew@main
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
brew update
|
||||||
|
brew install ${{ env.WEECHAT_DEPS_MACOS }}
|
||||||
|
|
||||||
|
- uses: actions/checkout@v6
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
env:
|
||||||
|
CC: ${{ matrix.config.cc }}
|
||||||
|
CXX: ${{ matrix.config.cxx }}
|
||||||
|
RUN_TESTS: "0"
|
||||||
|
JOBS: "2"
|
||||||
|
run: ./tools/build_test.sh ${{ matrix.config.buildargs }}
|
||||||
|
|
||||||
|
- name: Run WeeChat
|
||||||
|
env:
|
||||||
|
TERM: xterm-256color
|
||||||
|
run: |
|
||||||
|
weechat --help
|
||||||
|
weechat-curses --help
|
||||||
|
weechat --version
|
||||||
|
weechat --build-info
|
||||||
|
weechat --colors
|
||||||
|
weechat --license
|
||||||
|
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
|
||||||
|
|
||||||
build_debian:
|
build_debian:
|
||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
@@ -221,12 +452,11 @@ jobs:
|
|||||||
os:
|
os:
|
||||||
- ubuntu-24.04
|
- ubuntu-24.04
|
||||||
|
|
||||||
name: "${{ matrix.os }} (build Debian)"
|
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v6
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
@@ -252,14 +482,13 @@ jobs:
|
|||||||
weechat --build-info
|
weechat --build-info
|
||||||
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
|
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
|
||||||
|
|
||||||
codeql-analysis:
|
codeql_analysis:
|
||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
- ubuntu-24.04
|
- ubuntu-24.04
|
||||||
|
|
||||||
name: "${{ matrix.os }} (CodeQL)"
|
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
@@ -270,7 +499,7 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
|
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v6
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
@@ -278,7 +507,6 @@ jobs:
|
|||||||
sudo apt-get --yes --no-install-recommends install ${{ env.WEECHAT_DEPS_UBUNTU }}
|
sudo apt-get --yes --no-install-recommends install ${{ env.WEECHAT_DEPS_UBUNTU }}
|
||||||
# uninstall php imagick as is causes a crash when loading php plugin (see #2009)
|
# uninstall php imagick as is causes a crash when loading php plugin (see #2009)
|
||||||
sudo apt-get --yes purge php8.3-imagick
|
sudo apt-get --yes purge php8.3-imagick
|
||||||
pipx install msgcheck
|
|
||||||
|
|
||||||
- name: Initialize CodeQL
|
- name: Initialize CodeQL
|
||||||
uses: github/codeql-action/init@v3
|
uses: github/codeql-action/init@v3
|
||||||
@@ -292,160 +520,3 @@ jobs:
|
|||||||
uses: github/codeql-action/analyze@v3
|
uses: github/codeql-action/analyze@v3
|
||||||
with:
|
with:
|
||||||
category: "/language:cpp"
|
category: "/language:cpp"
|
||||||
|
|
||||||
tests_rockylinux:
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
os:
|
|
||||||
- ubuntu-24.04
|
|
||||||
config:
|
|
||||||
- name: "gcc"
|
|
||||||
cc: "gcc"
|
|
||||||
cxx: "g++"
|
|
||||||
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON"
|
|
||||||
- name: "clang"
|
|
||||||
cc: "clang"
|
|
||||||
cxx: "clang++"
|
|
||||||
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON -DENABLE_CODE_COVERAGE=ON -DENABLE_FUZZ=ON"
|
|
||||||
|
|
||||||
name: "rockylinux-9 (${{ matrix.config.name }})"
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
container:
|
|
||||||
image: rockylinux:9
|
|
||||||
|
|
||||||
steps:
|
|
||||||
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: |
|
|
||||||
dnf install -y epel-release
|
|
||||||
dnf config-manager --set-enabled crb
|
|
||||||
dnf install -y ${{ env.WEECHAT_DEPS_ROCKYLINUX }}
|
|
||||||
|
|
||||||
- name: Build and run tests
|
|
||||||
env:
|
|
||||||
CC: ${{ matrix.config.cc }}
|
|
||||||
CXX: ${{ matrix.config.cxx }}
|
|
||||||
run: ./tools/build_test.sh ${{ matrix.config.buildargs }}
|
|
||||||
|
|
||||||
- name: Run WeeChat
|
|
||||||
env:
|
|
||||||
TERM: xterm-256color
|
|
||||||
run: |
|
|
||||||
weechat --help
|
|
||||||
weechat-curses --help
|
|
||||||
weechat --version
|
|
||||||
weechat --build-info
|
|
||||||
weechat --colors
|
|
||||||
weechat --license
|
|
||||||
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
|
|
||||||
|
|
||||||
tests_freebsd:
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
os:
|
|
||||||
- ubuntu-24.04
|
|
||||||
config:
|
|
||||||
# - name: "gcc"
|
|
||||||
# cc: "gcc"
|
|
||||||
# cxx: "g++"
|
|
||||||
# buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON"
|
|
||||||
- name: "clang"
|
|
||||||
cc: "clang"
|
|
||||||
cxx: "clang++"
|
|
||||||
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON -DENABLE_CODE_COVERAGE=ON -DENABLE_FUZZ=ON"
|
|
||||||
|
|
||||||
name: "freebsd-14 (${{ matrix.config.name }})"
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
|
|
||||||
steps:
|
|
||||||
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Install dependencies, build and run tests, run WeeChat
|
|
||||||
uses: vmactions/freebsd-vm@v1
|
|
||||||
env:
|
|
||||||
CC: ${{ matrix.config.cc }}
|
|
||||||
CXX: ${{ matrix.config.cxx }}
|
|
||||||
TERM: xterm-256color
|
|
||||||
with:
|
|
||||||
envs: "CC CXX TERM"
|
|
||||||
usesh: true
|
|
||||||
prepare: pkg install -y ${{ env.WEECHAT_DEPS_FREEBSD }}
|
|
||||||
run: |
|
|
||||||
./tools/build_test.sh ${{ matrix.config.buildargs }}
|
|
||||||
weechat --help
|
|
||||||
weechat-curses --help
|
|
||||||
weechat --version
|
|
||||||
weechat --build-info
|
|
||||||
weechat --colors
|
|
||||||
weechat --license
|
|
||||||
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
|
|
||||||
|
|
||||||
tests_macos:
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
os:
|
|
||||||
- macos-14
|
|
||||||
config:
|
|
||||||
- name: "gcc"
|
|
||||||
cc: "gcc"
|
|
||||||
cxx: "g++"
|
|
||||||
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_DOC_INCOMPLETE=ON -DENABLE_PHP=OFF -DENABLE_TESTS=OFF"
|
|
||||||
- name: "clang"
|
|
||||||
cc: "clang"
|
|
||||||
cxx: "clang++"
|
|
||||||
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_DOC_INCOMPLETE=ON -DENABLE_PHP=OFF -DENABLE_TESTS=OFF"
|
|
||||||
|
|
||||||
name: "${{ matrix.os }} (${{ matrix.config.name }})"
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
|
|
||||||
steps:
|
|
||||||
|
|
||||||
- name: Setup Homebrew
|
|
||||||
id: setup-homebrew
|
|
||||||
uses: Homebrew/actions/setup-homebrew@master
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: |
|
|
||||||
brew update
|
|
||||||
# temporary fix, see: https://github.com/actions/setup-python/issues/577
|
|
||||||
rm -f \
|
|
||||||
/usr/local/bin/2to3 \
|
|
||||||
/usr/local/bin/idle3 \
|
|
||||||
/usr/local/bin/pydoc3 \
|
|
||||||
/usr/local/bin/python3 \
|
|
||||||
/usr/local/bin/python3-config \
|
|
||||||
/usr/local/bin/2to3-3.11 \
|
|
||||||
/usr/local/bin/idle3.11 \
|
|
||||||
/usr/local/bin/pydoc3.11 \
|
|
||||||
/usr/local/bin/python3.11 \
|
|
||||||
/usr/local/bin/python3.11-config \
|
|
||||||
;
|
|
||||||
brew install asciidoctor aspell cjson guile lua pkg-config ruby
|
|
||||||
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Build
|
|
||||||
env:
|
|
||||||
CC: ${{ matrix.config.cc }}
|
|
||||||
CXX: ${{ matrix.config.cxx }}
|
|
||||||
RUN_TESTS: "0"
|
|
||||||
JOBS: "2"
|
|
||||||
run: ./tools/build_test.sh ${{ matrix.config.buildargs }}
|
|
||||||
|
|
||||||
- name: Run WeeChat
|
|
||||||
env:
|
|
||||||
TERM: xterm-256color
|
|
||||||
run: |
|
|
||||||
weechat --help
|
|
||||||
weechat-curses --help
|
|
||||||
weechat --version
|
|
||||||
weechat --build-info
|
|
||||||
weechat --colors
|
|
||||||
weechat --license
|
|
||||||
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# SPDX-FileCopyrightText: 2025 Sébastien Helleu <flashcode@flashtux.org>
|
# SPDX-FileCopyrightText: 2025-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
@@ -16,7 +16,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v6
|
||||||
|
|
||||||
- name: REUSE Compliance Check
|
- name: REUSE Compliance Check
|
||||||
uses: fsfe/reuse-action@v4
|
uses: fsfe/reuse-action@v4
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
# SPDX-FileCopyrightText: 2007-2025 Sébastien Helleu <flashcode@flashtux.org>
|
# SPDX-FileCopyrightText: 2007-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# SPDX-FileCopyrightText: 2014-2025 Sébastien Helleu <flashcode@flashtux.org>
|
# SPDX-FileCopyrightText: 2014-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
#
|
#
|
||||||
|
|||||||
+281
@@ -0,0 +1,281 @@
|
|||||||
|
Atheme
|
||||||
|
Autojoin
|
||||||
|
Charset
|
||||||
|
Diffie-Hellman
|
||||||
|
Esc
|
||||||
|
FlashCode
|
||||||
|
GnuTLS
|
||||||
|
Hashtable
|
||||||
|
Helleu
|
||||||
|
IPs
|
||||||
|
Sébastien
|
||||||
|
WeeChat
|
||||||
|
Xfer
|
||||||
|
abc
|
||||||
|
ack
|
||||||
|
acks
|
||||||
|
addcompletion
|
||||||
|
addinput
|
||||||
|
addoff
|
||||||
|
addraw
|
||||||
|
addreplace
|
||||||
|
addreplacecompletion
|
||||||
|
addword
|
||||||
|
algo
|
||||||
|
allchan
|
||||||
|
allpv
|
||||||
|
alnum
|
||||||
|
andrew
|
||||||
|
ansi
|
||||||
|
api
|
||||||
|
args
|
||||||
|
argsN
|
||||||
|
aspell
|
||||||
|
autoconnect
|
||||||
|
autojoin
|
||||||
|
autoload
|
||||||
|
autoloaded
|
||||||
|
autoreconnect
|
||||||
|
autorejoin
|
||||||
|
bg
|
||||||
|
bindctxt
|
||||||
|
bitlbee
|
||||||
|
bkl
|
||||||
|
blocksize
|
||||||
|
bool
|
||||||
|
buflist
|
||||||
|
cJSON
|
||||||
|
calc
|
||||||
|
ccc
|
||||||
|
charset
|
||||||
|
charsets
|
||||||
|
chghost
|
||||||
|
chmod
|
||||||
|
cleartext
|
||||||
|
clientinfo
|
||||||
|
cmd
|
||||||
|
codepoint
|
||||||
|
concat
|
||||||
|
cond
|
||||||
|
config
|
||||||
|
crypted
|
||||||
|
ctcp
|
||||||
|
ctrl
|
||||||
|
ctrl-
|
||||||
|
ctrl-c
|
||||||
|
ctrl-h
|
||||||
|
ctrl-n
|
||||||
|
ctrl-x
|
||||||
|
ctrl-y
|
||||||
|
cutscr
|
||||||
|
cxx
|
||||||
|
darkgray
|
||||||
|
deinit
|
||||||
|
deldict
|
||||||
|
deloutq
|
||||||
|
delvar
|
||||||
|
dhkey
|
||||||
|
dirs
|
||||||
|
dlclose
|
||||||
|
eg
|
||||||
|
enum
|
||||||
|
enums
|
||||||
|
env
|
||||||
|
esc
|
||||||
|
eval
|
||||||
|
fd
|
||||||
|
ffff
|
||||||
|
fg
|
||||||
|
fifo
|
||||||
|
flashcode
|
||||||
|
flashtux
|
||||||
|
freebsd
|
||||||
|
fset
|
||||||
|
fsync
|
||||||
|
gcrypt
|
||||||
|
getrlimit
|
||||||
|
getrusage
|
||||||
|
gnutls
|
||||||
|
grayscale
|
||||||
|
gui
|
||||||
|
gzip
|
||||||
|
halfop
|
||||||
|
halfops
|
||||||
|
hashtable
|
||||||
|
hdata
|
||||||
|
hh
|
||||||
|
horiz
|
||||||
|
hostname
|
||||||
|
hostnames
|
||||||
|
hotlist
|
||||||
|
hsignal
|
||||||
|
http
|
||||||
|
https
|
||||||
|
hup
|
||||||
|
ident
|
||||||
|
ie
|
||||||
|
il
|
||||||
|
inclose
|
||||||
|
infolist
|
||||||
|
infolists
|
||||||
|
infos
|
||||||
|
installremove
|
||||||
|
irc
|
||||||
|
ison
|
||||||
|
javascript
|
||||||
|
json
|
||||||
|
kf
|
||||||
|
kickban
|
||||||
|
killall
|
||||||
|
lengthscr
|
||||||
|
libera
|
||||||
|
libgcrypt
|
||||||
|
libs
|
||||||
|
lightblue
|
||||||
|
lightcyan
|
||||||
|
lightgreen
|
||||||
|
lightmagenta
|
||||||
|
lightred
|
||||||
|
linux
|
||||||
|
listdefault
|
||||||
|
listdict
|
||||||
|
listdiff
|
||||||
|
listfull
|
||||||
|
listitems
|
||||||
|
listrelay
|
||||||
|
listvar
|
||||||
|
lua
|
||||||
|
mallinfo
|
||||||
|
malloc
|
||||||
|
mirc
|
||||||
|
modelist
|
||||||
|
msg
|
||||||
|
msgN
|
||||||
|
msgbuffer
|
||||||
|
multiline
|
||||||
|
ncurses
|
||||||
|
newbuffer
|
||||||
|
nf
|
||||||
|
nickbot
|
||||||
|
nicklist
|
||||||
|
nickserv
|
||||||
|
nl
|
||||||
|
noautoload
|
||||||
|
nobg
|
||||||
|
nocl
|
||||||
|
noflush
|
||||||
|
nohelp
|
||||||
|
nojoin
|
||||||
|
noln
|
||||||
|
nonblock
|
||||||
|
nooption
|
||||||
|
norc
|
||||||
|
nostdin
|
||||||
|
nosw
|
||||||
|
noswitch
|
||||||
|
notls
|
||||||
|
num
|
||||||
|
oc
|
||||||
|
oerr
|
||||||
|
oftc
|
||||||
|
ok
|
||||||
|
ol
|
||||||
|
osinfo
|
||||||
|
outqueue
|
||||||
|
ovh
|
||||||
|
paramN
|
||||||
|
params
|
||||||
|
perl
|
||||||
|
permessage-deflate
|
||||||
|
pgdn
|
||||||
|
pgup
|
||||||
|
pid
|
||||||
|
prev
|
||||||
|
privmsg
|
||||||
|
ptr
|
||||||
|
pv
|
||||||
|
py
|
||||||
|
quickstart
|
||||||
|
rc
|
||||||
|
realname
|
||||||
|
recv
|
||||||
|
reinitializing
|
||||||
|
reop
|
||||||
|
resetall
|
||||||
|
resetctxt
|
||||||
|
revindex
|
||||||
|
revscr
|
||||||
|
rgb
|
||||||
|
rlimit
|
||||||
|
rusage
|
||||||
|
rw-rw-r--
|
||||||
|
sasl
|
||||||
|
setauto
|
||||||
|
setdict
|
||||||
|
setname
|
||||||
|
setnew
|
||||||
|
setrlimit
|
||||||
|
setvar
|
||||||
|
signon
|
||||||
|
skipempty
|
||||||
|
sockaddr
|
||||||
|
splith
|
||||||
|
splitv
|
||||||
|
stderr
|
||||||
|
stdin
|
||||||
|
stdout
|
||||||
|
strcasecmp
|
||||||
|
strftime
|
||||||
|
strftimeval
|
||||||
|
strlen
|
||||||
|
sublist
|
||||||
|
subplugin
|
||||||
|
sw
|
||||||
|
sys
|
||||||
|
tThe
|
||||||
|
tcl
|
||||||
|
tg
|
||||||
|
tls
|
||||||
|
tlscertkey
|
||||||
|
toggleautoload
|
||||||
|
togglecmd
|
||||||
|
toto
|
||||||
|
totp
|
||||||
|
truncature
|
||||||
|
un
|
||||||
|
unalias
|
||||||
|
unban
|
||||||
|
unbindctxt
|
||||||
|
undef
|
||||||
|
unescaped
|
||||||
|
unhide
|
||||||
|
unhold
|
||||||
|
unicode
|
||||||
|
unix
|
||||||
|
unmark
|
||||||
|
unmerge
|
||||||
|
unzoom
|
||||||
|
uptime
|
||||||
|
url
|
||||||
|
urlserver
|
||||||
|
usec
|
||||||
|
userhost-in-names
|
||||||
|
usr
|
||||||
|
util
|
||||||
|
valgrind
|
||||||
|
versiongit
|
||||||
|
waitpid
|
||||||
|
wcswidth
|
||||||
|
wctype
|
||||||
|
wcwidth
|
||||||
|
websocket
|
||||||
|
websockets
|
||||||
|
weechat
|
||||||
|
whois
|
||||||
|
www
|
||||||
|
xdigit
|
||||||
|
xfer
|
||||||
|
xyz
|
||||||
|
yy
|
||||||
|
zlib
|
||||||
|
zstd
|
||||||
+612
@@ -0,0 +1,612 @@
|
|||||||
|
Atheme
|
||||||
|
Autojoin
|
||||||
|
Curl
|
||||||
|
Curses
|
||||||
|
Debug
|
||||||
|
Dec
|
||||||
|
Diffie-Hellman
|
||||||
|
Filter
|
||||||
|
FlashCode
|
||||||
|
GnuTLS
|
||||||
|
Guile
|
||||||
|
Helleu
|
||||||
|
IPs
|
||||||
|
Lag
|
||||||
|
Ping
|
||||||
|
Protocol
|
||||||
|
Relay
|
||||||
|
Remote
|
||||||
|
Reop
|
||||||
|
Tab
|
||||||
|
Trigger
|
||||||
|
Triggers
|
||||||
|
Typing
|
||||||
|
URLs
|
||||||
|
Wallops
|
||||||
|
WeeChat
|
||||||
|
Xfer
|
||||||
|
account
|
||||||
|
account-
|
||||||
|
account-notify
|
||||||
|
account-tag
|
||||||
|
ack
|
||||||
|
acks
|
||||||
|
add
|
||||||
|
addcompletion
|
||||||
|
addinput
|
||||||
|
addoff
|
||||||
|
addraw
|
||||||
|
addreplace
|
||||||
|
addreplacecompletion
|
||||||
|
addresse
|
||||||
|
addword
|
||||||
|
align
|
||||||
|
all
|
||||||
|
allchan
|
||||||
|
allow
|
||||||
|
allowed
|
||||||
|
allpv
|
||||||
|
alnum
|
||||||
|
alt
|
||||||
|
alt-c
|
||||||
|
alt-k
|
||||||
|
alt-s
|
||||||
|
alt-v
|
||||||
|
alt-z
|
||||||
|
andrew
|
||||||
|
ansi
|
||||||
|
apply
|
||||||
|
area
|
||||||
|
args
|
||||||
|
argsN
|
||||||
|
aspell
|
||||||
|
attributes
|
||||||
|
auth
|
||||||
|
autoconnect
|
||||||
|
autojoin
|
||||||
|
autoload
|
||||||
|
autorejoin
|
||||||
|
away
|
||||||
|
away-notify
|
||||||
|
backspace
|
||||||
|
bare
|
||||||
|
bash
|
||||||
|
beep
|
||||||
|
before
|
||||||
|
beginning
|
||||||
|
beyond
|
||||||
|
bg
|
||||||
|
bin
|
||||||
|
bind
|
||||||
|
bindctxt
|
||||||
|
bitlbee
|
||||||
|
bkl
|
||||||
|
blue
|
||||||
|
bold
|
||||||
|
bool
|
||||||
|
boolean
|
||||||
|
both
|
||||||
|
bottom
|
||||||
|
bracketed
|
||||||
|
brown
|
||||||
|
buflist
|
||||||
|
cJSON
|
||||||
|
calc
|
||||||
|
callbacks
|
||||||
|
cap-notify
|
||||||
|
capabilities
|
||||||
|
capability
|
||||||
|
ccc
|
||||||
|
cert
|
||||||
|
certs
|
||||||
|
changed
|
||||||
|
channel
|
||||||
|
charset
|
||||||
|
charsets
|
||||||
|
check
|
||||||
|
chghost
|
||||||
|
chmod
|
||||||
|
cipher
|
||||||
|
clear
|
||||||
|
clientinfo
|
||||||
|
clipboard
|
||||||
|
cmd
|
||||||
|
color
|
||||||
|
colors
|
||||||
|
command
|
||||||
|
commands
|
||||||
|
complete
|
||||||
|
completion
|
||||||
|
concat
|
||||||
|
cond
|
||||||
|
confirm
|
||||||
|
connect
|
||||||
|
connected
|
||||||
|
connecting
|
||||||
|
control
|
||||||
|
copy
|
||||||
|
core
|
||||||
|
count
|
||||||
|
crypt
|
||||||
|
ctcp
|
||||||
|
ctrl
|
||||||
|
ctrl-
|
||||||
|
ctrl-c
|
||||||
|
ctrl-h
|
||||||
|
ctrl-n
|
||||||
|
ctrl-x
|
||||||
|
ctrl-y
|
||||||
|
curl
|
||||||
|
current
|
||||||
|
cursor
|
||||||
|
cut
|
||||||
|
cutscr
|
||||||
|
cxx
|
||||||
|
d'ignore
|
||||||
|
d'infolist
|
||||||
|
daemon
|
||||||
|
darkgray
|
||||||
|
days
|
||||||
|
debug
|
||||||
|
decode
|
||||||
|
decrypt
|
||||||
|
default
|
||||||
|
define
|
||||||
|
deinit
|
||||||
|
del
|
||||||
|
deldict
|
||||||
|
delete
|
||||||
|
deloutq
|
||||||
|
delvar
|
||||||
|
desc
|
||||||
|
describe
|
||||||
|
dhkey
|
||||||
|
dict
|
||||||
|
diff
|
||||||
|
dim
|
||||||
|
dir
|
||||||
|
dirs
|
||||||
|
disable
|
||||||
|
discard
|
||||||
|
disconnect
|
||||||
|
disconnected
|
||||||
|
display
|
||||||
|
displayed
|
||||||
|
dlclose
|
||||||
|
doc-gen
|
||||||
|
down
|
||||||
|
download
|
||||||
|
draft
|
||||||
|
dummy
|
||||||
|
dump
|
||||||
|
eat
|
||||||
|
echo-message
|
||||||
|
edge
|
||||||
|
emphasized
|
||||||
|
empty
|
||||||
|
enable
|
||||||
|
enabled
|
||||||
|
end
|
||||||
|
enum
|
||||||
|
error
|
||||||
|
esc
|
||||||
|
eval
|
||||||
|
example
|
||||||
|
exclude
|
||||||
|
exec
|
||||||
|
extended-join
|
||||||
|
external
|
||||||
|
exts
|
||||||
|
fail
|
||||||
|
failed
|
||||||
|
fast
|
||||||
|
fd
|
||||||
|
ffff
|
||||||
|
fifo
|
||||||
|
filter
|
||||||
|
fingerprint
|
||||||
|
first
|
||||||
|
flashcode
|
||||||
|
flashtux
|
||||||
|
foo
|
||||||
|
formatted
|
||||||
|
free
|
||||||
|
freebsd
|
||||||
|
fset
|
||||||
|
fsync
|
||||||
|
gcrypt
|
||||||
|
get
|
||||||
|
getrlimit
|
||||||
|
getrusage
|
||||||
|
ghost
|
||||||
|
giga-octets
|
||||||
|
git
|
||||||
|
glitch
|
||||||
|
gnutls
|
||||||
|
grab
|
||||||
|
group
|
||||||
|
gzip
|
||||||
|
halfop
|
||||||
|
halfops
|
||||||
|
handshake
|
||||||
|
hash
|
||||||
|
hashtable
|
||||||
|
hdata
|
||||||
|
he
|
||||||
|
headless
|
||||||
|
help
|
||||||
|
here
|
||||||
|
hexa
|
||||||
|
hh
|
||||||
|
hidden
|
||||||
|
hide
|
||||||
|
highest
|
||||||
|
highlight
|
||||||
|
highlights
|
||||||
|
history
|
||||||
|
hold
|
||||||
|
hook
|
||||||
|
hooks
|
||||||
|
horiz
|
||||||
|
host
|
||||||
|
hotlist
|
||||||
|
hsignal
|
||||||
|
hup
|
||||||
|
ident
|
||||||
|
identify
|
||||||
|
ids
|
||||||
|
ignored
|
||||||
|
inclose
|
||||||
|
include
|
||||||
|
indent
|
||||||
|
infolist
|
||||||
|
infolistes
|
||||||
|
infolists
|
||||||
|
init
|
||||||
|
install
|
||||||
|
installremove
|
||||||
|
int
|
||||||
|
integer
|
||||||
|
interval
|
||||||
|
invite-notify
|
||||||
|
irc
|
||||||
|
ison
|
||||||
|
iterations
|
||||||
|
javascript
|
||||||
|
join
|
||||||
|
json
|
||||||
|
jump
|
||||||
|
keep
|
||||||
|
key
|
||||||
|
keys
|
||||||
|
kf
|
||||||
|
kickban
|
||||||
|
kill
|
||||||
|
killall
|
||||||
|
l'autojoin
|
||||||
|
l'id
|
||||||
|
lag
|
||||||
|
last
|
||||||
|
layout
|
||||||
|
leave
|
||||||
|
left
|
||||||
|
legacy
|
||||||
|
length
|
||||||
|
lengthscr
|
||||||
|
level
|
||||||
|
lib
|
||||||
|
libera
|
||||||
|
libgcrypt
|
||||||
|
libs
|
||||||
|
lightblue
|
||||||
|
lightcyan
|
||||||
|
lightgreen
|
||||||
|
lightmagenta
|
||||||
|
lightred
|
||||||
|
limit
|
||||||
|
line
|
||||||
|
lines
|
||||||
|
linux
|
||||||
|
list
|
||||||
|
listdefault
|
||||||
|
listdict
|
||||||
|
listdiff
|
||||||
|
listen
|
||||||
|
listfull
|
||||||
|
listitems
|
||||||
|
listrelay
|
||||||
|
listvar
|
||||||
|
load
|
||||||
|
logger
|
||||||
|
loggers
|
||||||
|
lower
|
||||||
|
lowest
|
||||||
|
ls
|
||||||
|
lua
|
||||||
|
mallinfo
|
||||||
|
malloc
|
||||||
|
marked
|
||||||
|
mask
|
||||||
|
memory
|
||||||
|
merge
|
||||||
|
merged
|
||||||
|
meta
|
||||||
|
meta-
|
||||||
|
method
|
||||||
|
mirc
|
||||||
|
missing
|
||||||
|
modified
|
||||||
|
mouse
|
||||||
|
move
|
||||||
|
msg
|
||||||
|
msgN
|
||||||
|
msgbuffer
|
||||||
|
multi-prefix
|
||||||
|
multiline
|
||||||
|
my
|
||||||
|
n-
|
||||||
|
name
|
||||||
|
names
|
||||||
|
ncurses
|
||||||
|
near
|
||||||
|
network
|
||||||
|
newbuffer
|
||||||
|
newline
|
||||||
|
next
|
||||||
|
nf
|
||||||
|
nick
|
||||||
|
nickbot
|
||||||
|
nicklist
|
||||||
|
nicks
|
||||||
|
nickserv
|
||||||
|
no-connect
|
||||||
|
noautoload
|
||||||
|
nobg
|
||||||
|
nocl
|
||||||
|
noflush
|
||||||
|
nohelp
|
||||||
|
nojoin
|
||||||
|
noln
|
||||||
|
nonblock
|
||||||
|
nooption
|
||||||
|
norc
|
||||||
|
nosh
|
||||||
|
nostdin
|
||||||
|
nosw
|
||||||
|
noswitch
|
||||||
|
notify
|
||||||
|
notls
|
||||||
|
null
|
||||||
|
num
|
||||||
|
number
|
||||||
|
numeric
|
||||||
|
object
|
||||||
|
oerr
|
||||||
|
of
|
||||||
|
offline
|
||||||
|
oftc
|
||||||
|
ok
|
||||||
|
ol
|
||||||
|
ops
|
||||||
|
osinfo
|
||||||
|
ovh
|
||||||
|
paramN
|
||||||
|
params
|
||||||
|
parted
|
||||||
|
pass
|
||||||
|
passphrase
|
||||||
|
password
|
||||||
|
password-store
|
||||||
|
paste
|
||||||
|
path
|
||||||
|
paused
|
||||||
|
pct
|
||||||
|
pending
|
||||||
|
perl
|
||||||
|
permessage-deflate
|
||||||
|
pgdn
|
||||||
|
pgup
|
||||||
|
pid
|
||||||
|
ping
|
||||||
|
pong
|
||||||
|
pos
|
||||||
|
prefix
|
||||||
|
prev
|
||||||
|
previous
|
||||||
|
print
|
||||||
|
priority
|
||||||
|
private
|
||||||
|
privmsg
|
||||||
|
property
|
||||||
|
ptr
|
||||||
|
py
|
||||||
|
quit
|
||||||
|
quoted
|
||||||
|
rafraichie
|
||||||
|
rafraichir
|
||||||
|
rafraichissement
|
||||||
|
random
|
||||||
|
raw
|
||||||
|
rc
|
||||||
|
realname
|
||||||
|
reconnect
|
||||||
|
recreate
|
||||||
|
recv
|
||||||
|
red
|
||||||
|
redirected
|
||||||
|
redo
|
||||||
|
refresh
|
||||||
|
regex
|
||||||
|
register
|
||||||
|
relay
|
||||||
|
reload
|
||||||
|
remote
|
||||||
|
remove
|
||||||
|
rename
|
||||||
|
renumber
|
||||||
|
reorder
|
||||||
|
rep
|
||||||
|
repeat
|
||||||
|
reply
|
||||||
|
req
|
||||||
|
reset
|
||||||
|
resetall
|
||||||
|
resetctxt
|
||||||
|
resize
|
||||||
|
restart
|
||||||
|
restore
|
||||||
|
return
|
||||||
|
rev
|
||||||
|
revindex
|
||||||
|
revscr
|
||||||
|
rgb
|
||||||
|
right
|
||||||
|
rlimit
|
||||||
|
root
|
||||||
|
ruby
|
||||||
|
run
|
||||||
|
run-command
|
||||||
|
runtime
|
||||||
|
rusage
|
||||||
|
rw-rw-r--
|
||||||
|
réinit
|
||||||
|
safe
|
||||||
|
sasl
|
||||||
|
save
|
||||||
|
scheme
|
||||||
|
screen
|
||||||
|
scroll
|
||||||
|
search
|
||||||
|
secure
|
||||||
|
selected
|
||||||
|
send
|
||||||
|
server
|
||||||
|
server-time
|
||||||
|
setauto
|
||||||
|
setdict
|
||||||
|
setname
|
||||||
|
setnew
|
||||||
|
setrlimit
|
||||||
|
setvar
|
||||||
|
sh
|
||||||
|
share
|
||||||
|
shift
|
||||||
|
shift-
|
||||||
|
shift-Tab
|
||||||
|
size
|
||||||
|
skipempty
|
||||||
|
sockaddr
|
||||||
|
sorted
|
||||||
|
space
|
||||||
|
speaking
|
||||||
|
spell
|
||||||
|
split
|
||||||
|
splith
|
||||||
|
splitv
|
||||||
|
ss
|
||||||
|
start
|
||||||
|
status
|
||||||
|
stderr
|
||||||
|
stdin
|
||||||
|
stdout
|
||||||
|
str
|
||||||
|
strcasecmp
|
||||||
|
strftime
|
||||||
|
strftimeval
|
||||||
|
strip
|
||||||
|
strlen
|
||||||
|
sucks
|
||||||
|
suffix
|
||||||
|
suggest
|
||||||
|
sum
|
||||||
|
sw
|
||||||
|
switch
|
||||||
|
sys
|
||||||
|
tLe
|
||||||
|
tab
|
||||||
|
target
|
||||||
|
tcl
|
||||||
|
term
|
||||||
|
text
|
||||||
|
tg
|
||||||
|
time
|
||||||
|
timeout
|
||||||
|
timer
|
||||||
|
tiny
|
||||||
|
title
|
||||||
|
tls
|
||||||
|
tlscertkey
|
||||||
|
to
|
||||||
|
toggle
|
||||||
|
toggleautoload
|
||||||
|
togglecmd
|
||||||
|
topic
|
||||||
|
totp
|
||||||
|
trigger
|
||||||
|
triggers
|
||||||
|
trim
|
||||||
|
typing
|
||||||
|
téra-octets
|
||||||
|
unalias
|
||||||
|
unavailable
|
||||||
|
unban
|
||||||
|
unbind
|
||||||
|
unbindctxt
|
||||||
|
undef
|
||||||
|
undo
|
||||||
|
unhide
|
||||||
|
unicode
|
||||||
|
unix
|
||||||
|
unload
|
||||||
|
unmerge
|
||||||
|
unread
|
||||||
|
unset
|
||||||
|
up
|
||||||
|
update
|
||||||
|
upper
|
||||||
|
url
|
||||||
|
urlserver
|
||||||
|
usec
|
||||||
|
userhost-in-names
|
||||||
|
username
|
||||||
|
users
|
||||||
|
usr
|
||||||
|
util
|
||||||
|
valer
|
||||||
|
valgrind
|
||||||
|
verbose
|
||||||
|
verify
|
||||||
|
versiongit
|
||||||
|
visited
|
||||||
|
voice
|
||||||
|
wait
|
||||||
|
waiting
|
||||||
|
waitpid
|
||||||
|
wallops
|
||||||
|
wcswidth
|
||||||
|
wctype
|
||||||
|
wcwidth
|
||||||
|
websocket
|
||||||
|
websockets
|
||||||
|
weechat
|
||||||
|
where
|
||||||
|
white
|
||||||
|
whitespace
|
||||||
|
whois
|
||||||
|
width
|
||||||
|
window
|
||||||
|
windows
|
||||||
|
without
|
||||||
|
word
|
||||||
|
words
|
||||||
|
xdigit
|
||||||
|
xfer
|
||||||
|
xxx
|
||||||
|
xyz
|
||||||
|
yellow
|
||||||
|
yes
|
||||||
|
yy
|
||||||
|
zero
|
||||||
|
zlib
|
||||||
|
zstd
|
||||||
|
Échap
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
[check]
|
||||||
|
select = [
|
||||||
|
"checks",
|
||||||
|
]
|
||||||
|
ignore = [
|
||||||
|
"acronyms",
|
||||||
|
"brackets",
|
||||||
|
"double-quotes",
|
||||||
|
"double-words",
|
||||||
|
"functions",
|
||||||
|
"html-tags",
|
||||||
|
"paths",
|
||||||
|
"unchanged",
|
||||||
|
"urls",
|
||||||
|
]
|
||||||
|
path_words = "."
|
||||||
|
langs = [
|
||||||
|
"en_US",
|
||||||
|
"fr",
|
||||||
|
]
|
||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-3.0-or-later
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
-->
|
-->
|
||||||
|
|||||||
+103
-7
@@ -1,21 +1,110 @@
|
|||||||
<!--
|
<!--
|
||||||
SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-3.0-or-later
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
-->
|
-->
|
||||||
|
|
||||||
# WeeChat ChangeLog
|
# WeeChat ChangeLog
|
||||||
|
|
||||||
## Version 4.8.0 (2025-11-30)
|
## Version 4.10.0 (under dev)
|
||||||
|
|
||||||
_If you are upgrading: please see [UPGRADING.md](UPGRADING.md)._
|
### Changed
|
||||||
|
|
||||||
|
- core: add condition on connected relay api clients in default value of option weechat.look.hotlist_add_conditions
|
||||||
|
- core: add `/mute` in default command for key `Alt`+`=` (toggle filters)
|
||||||
|
- relay/api: add field "last_read_line_id" in GET /api/buffers
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
- core: add option weechat.completion.cycle
|
- core: add `/theme` command with subcommands `list`, `apply`, `reset`, `save`, `rename`, `delete`, `info`, automatic backup of current themable options before apply, and built-in "light" theme
|
||||||
- core: add hdata for hooks
|
- core: detect terminal background on first start and automatically apply the built-in "light" theme when a light terminal is detected
|
||||||
- api: add functions util_parse_int, util_parse_long and util_parse_longlong
|
- core: add `themable` flag on configuration options (auto-set for color options; explicit opt-in for string options containing `${color:...}` references via the `type|themable` syntax)
|
||||||
- buflist: add variable `${index_displayed}`
|
- core: add option weechat.look.theme (informational, set by `/theme apply`)
|
||||||
|
- core: add option weechat.look.theme_backup (boolean, default `on`)
|
||||||
|
- api: add function `theme_register` (available to plugins and to all script languages)
|
||||||
|
- fset: add filter `t:themable` (matches every themable option regardless of type)
|
||||||
|
- relay: add option relay.network.unix_socket_permissions ([#2317](https://github.com/weechat/weechat/issues/2317))
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- core: fix option weechat.look.color_real_white not applied when color is "white" on 16+ colors terminals ([#1742](https://github.com/weechat/weechat/issues/1742))
|
||||||
|
- api: fix infinite loop in function string_replace when the search string is empty
|
||||||
|
- irc: fix tag in message with list of names when joining a channel
|
||||||
|
- fset: remove error displayed in core buffer when clicking with the mouse below the last option displayed
|
||||||
|
- irc: limit size of data received from the server to prevent memory exhaustion
|
||||||
|
- irc: fix out-of-bounds read on incoming DCC command with a quoted filename ending the message ([#2322](https://github.com/weechat/weechat/issues/2322))
|
||||||
|
- relay: limit size of decompressed websocket frame with permessage-deflate to prevent memory exhaustion ([GHSA-v2v4-45wm-5cr3](https://github.com/weechat/weechat/security/advisories/GHSA-v2v4-45wm-5cr3))
|
||||||
|
- relay: limit size of received websocket frame and HTTP body to prevent memory exhaustion
|
||||||
|
- relay: limit size of partial message received while reading an HTTP request to prevent memory exhaustion
|
||||||
|
- relay: fix timing attack on password authentication ([GHSA-vhv8-g2r9-cwcc](https://github.com/weechat/weechat/security/advisories/GHSA-vhv8-g2r9-cwcc))
|
||||||
|
- relay: fix out-of-bounds read in dump of data ([#2324](https://github.com/weechat/weechat/issues/2324))
|
||||||
|
- api, relay: fix timing attack on TOTP validation ([GHSA-vhv8-g2r9-cwcc](https://github.com/weechat/weechat/security/advisories/GHSA-vhv8-g2r9-cwcc))
|
||||||
|
- xfer: replace directory separator in remote nick by underscore in download filename to prevent writing the file outside the download directory ([#2321](https://github.com/weechat/weechat/issues/2321))
|
||||||
|
- xfer: fix out-of-bounds read when receiving empty line in DCC chat ([#2323](https://github.com/weechat/weechat/issues/2323))
|
||||||
|
|
||||||
|
## Version 4.9.2 (2026-06-07)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- api: fix infinite loop in function string_replace when the search string is empty
|
||||||
|
- irc: limit size of data received from the server to prevent memory exhaustion
|
||||||
|
- irc: fix out-of-bounds read on incoming DCC command with a quoted filename ending the message ([#2322](https://github.com/weechat/weechat/issues/2322))
|
||||||
|
- relay: limit size of received websocket frame and HTTP body to prevent memory exhaustion
|
||||||
|
- relay: limit size of partial message received while reading an HTTP request to prevent memory exhaustion
|
||||||
|
- relay: fix out-of-bounds read in dump of data ([#2324](https://github.com/weechat/weechat/issues/2324))
|
||||||
|
- xfer: replace directory separator in remote nick by underscore in download filename to prevent writing the file outside the download directory ([#2321](https://github.com/weechat/weechat/issues/2321))
|
||||||
|
- xfer: fix out-of-bounds read when receiving empty line in DCC chat ([#2323](https://github.com/weechat/weechat/issues/2323))
|
||||||
|
|
||||||
|
## Version 4.9.1 (2026-05-31)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- core: fix option weechat.look.color_real_white not applied when color is "white" on 16+ colors terminals ([#1742](https://github.com/weechat/weechat/issues/1742))
|
||||||
|
- irc: fix tag in message with list of names when joining a channel
|
||||||
|
- relay: limit size of decompressed websocket frame with permessage-deflate to prevent memory exhaustion ([GHSA-v2v4-45wm-5cr3](https://github.com/weechat/weechat/security/advisories/GHSA-v2v4-45wm-5cr3))
|
||||||
|
- relay: fix timing attack on password authentication ([GHSA-vhv8-g2r9-cwcc](https://github.com/weechat/weechat/security/advisories/GHSA-vhv8-g2r9-cwcc))
|
||||||
|
- api, relay: fix timing attack on TOTP validation ([GHSA-vhv8-g2r9-cwcc](https://github.com/weechat/weechat/security/advisories/GHSA-vhv8-g2r9-cwcc))
|
||||||
|
|
||||||
|
## Version 4.9.0 (2026-03-29)
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- core: add option `-e` to evaluate all commands before executing them in command `/eval`
|
||||||
|
- xfer: evaluate option xfer.network.own_ip
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- typing: add option typing.look.item_text ([#2305](https://github.com/weechat/weechat/issues/2305))
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- core: fix crash with `/eval` when the current buffer is closed in a command
|
||||||
|
- core: fix buffer size in function util_parse_time, causing buffer overflow error in unit tests
|
||||||
|
- irc: fix display of CTCP query sent multiple times to the same user when capability echo-message is enabled ([#2309](https://github.com/weechat/weechat/issues/2309))
|
||||||
|
- irc: fix unit of server option `anti_flood` from seconds to milliseconds in output of `/server listfull`
|
||||||
|
- irc: fix creation of irc.msgbuffer option without a server name
|
||||||
|
- irc: ignore self join if the channel is already joined ([#2291](https://github.com/weechat/weechat/issues/2291))
|
||||||
|
- relay/api: fix memory leaks in resources "ping" and "sync"
|
||||||
|
- relay/api: fix memory leak in receive of message from remote WeeChat
|
||||||
|
|
||||||
|
## Version 4.8.2 (2026-03-06)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- irc: ignore self join if the channel is already joined ([#2291](https://github.com/weechat/weechat/issues/2291))
|
||||||
|
- relay/api: fix memory leaks in resources "ping" and "sync"
|
||||||
|
- relay/api: fix memory leak in receive of message from remote WeeChat
|
||||||
|
|
||||||
|
## Version 4.8.1 (2025-12-01)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- core: fix buffer size in function util_parse_time, causing buffer overflow error in unit tests
|
||||||
|
- irc: fix creation of irc.msgbuffer option without a server name
|
||||||
|
|
||||||
|
## Version 4.8.0 (2025-11-30)
|
||||||
|
|
||||||
|
_If you are upgrading: please see [UPGRADING.md](UPGRADING.md)._
|
||||||
|
|
||||||
### Removed
|
### Removed
|
||||||
|
|
||||||
@@ -39,6 +128,13 @@ _If you are upgrading: please see [UPGRADING.md](UPGRADING.md)._
|
|||||||
- build: require Enchant v2 ([#2268](https://github.com/weechat/weechat/issues/2268))
|
- build: require Enchant v2 ([#2268](https://github.com/weechat/weechat/issues/2268))
|
||||||
- build: require Lua ≥ 5.3 ([#2268](https://github.com/weechat/weechat/issues/2268))
|
- build: require Lua ≥ 5.3 ([#2268](https://github.com/weechat/weechat/issues/2268))
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- core: add option weechat.completion.cycle
|
||||||
|
- core: add hdata for hooks
|
||||||
|
- api: add functions util_parse_int, util_parse_long and util_parse_longlong
|
||||||
|
- buflist: add variable `${index_displayed}`
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
- core: display an error message in case of invalid parameters in commands `/bar`, `/buffer`, `/cursor`, `/print` and `/window`
|
- core: display an error message in case of invalid parameters in commands `/bar`, `/buffer`, `/cursor`, `/print` and `/window`
|
||||||
|
|||||||
+36
-38
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
# SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
# SPDX-FileCopyrightText: 2007-2008 Julien Louis <ptitlouis@sysif.net>
|
# SPDX-FileCopyrightText: 2007-2008 Julien Louis <ptitlouis@sysif.net>
|
||||||
# SPDX-FileCopyrightText: 2008-2009 Emmanuel Bouthenot <kolter@openics.org>
|
# SPDX-FileCopyrightText: 2008-2009 Emmanuel Bouthenot <kolter@openics.org>
|
||||||
#
|
#
|
||||||
@@ -28,6 +28,7 @@ project(weechat C)
|
|||||||
# CMake options
|
# CMake options
|
||||||
set(CMAKE_VERBOSE_MAKEFILE OFF)
|
set(CMAKE_VERBOSE_MAKEFILE OFF)
|
||||||
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake" "${CMAKE_MODULE_PATH}")
|
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake" "${CMAKE_MODULE_PATH}")
|
||||||
|
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||||
set(CMAKE_SKIP_RPATH ON)
|
set(CMAKE_SKIP_RPATH ON)
|
||||||
|
|
||||||
# compiler options
|
# compiler options
|
||||||
@@ -52,16 +53,8 @@ else()
|
|||||||
set(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
|
set(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# license
|
|
||||||
set(LICENSE "GPL3")
|
|
||||||
|
|
||||||
# add definitions for version and license
|
# add definitions for version and license
|
||||||
if(COMMAND cmake_policy)
|
add_definitions(-DWEECHAT_VERSION="${VERSION}" -DWEECHAT_LICENSE="GPL3")
|
||||||
cmake_policy(SET CMP0005 NEW)
|
|
||||||
add_definitions(-DWEECHAT_VERSION="${VERSION}" -DWEECHAT_LICENSE="${LICENSE}")
|
|
||||||
else()
|
|
||||||
add_definitions(-DWEECHAT_VERSION='"${VERSION}"' -DWEECHAT_LICENSE='"${LICENSE}"')
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# package string
|
# package string
|
||||||
set(PKG_STRING "${PROJECT_NAME} ${VERSION}")
|
set(PKG_STRING "${PROJECT_NAME} ${VERSION}")
|
||||||
@@ -192,15 +185,6 @@ set(WEECHAT_HOME "${WEECHAT_HOME}" CACHE
|
|||||||
FORCE)
|
FORCE)
|
||||||
mark_as_advanced(CLEAR WEECHAT_HOME)
|
mark_as_advanced(CLEAR WEECHAT_HOME)
|
||||||
|
|
||||||
if(COMMAND cmake_policy)
|
|
||||||
if(POLICY CMP0003)
|
|
||||||
cmake_policy(SET CMP0003 NEW)
|
|
||||||
endif()
|
|
||||||
if(POLICY CMP0017)
|
|
||||||
cmake_policy(SET CMP0017 NEW)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
add_definitions(-DHAVE_CONFIG_H)
|
add_definitions(-DHAVE_CONFIG_H)
|
||||||
|
|
||||||
include(FindPkgConfig)
|
include(FindPkgConfig)
|
||||||
@@ -258,22 +242,29 @@ list(APPEND EXTRA_LIBS ${GNUTLS_LDFLAGS})
|
|||||||
|
|
||||||
# Check for zlib
|
# Check for zlib
|
||||||
find_package(ZLIB REQUIRED)
|
find_package(ZLIB REQUIRED)
|
||||||
|
list(APPEND EXTRA_LIBS ${ZLIB_LIBRARY})
|
||||||
|
|
||||||
# Check for zstd
|
# Check for zstd
|
||||||
if(ENABLE_ZSTD)
|
if(ENABLE_ZSTD)
|
||||||
pkg_check_modules(LIBZSTD REQUIRED libzstd)
|
pkg_check_modules(LIBZSTD REQUIRED libzstd>=1.4.0)
|
||||||
|
include_directories(${LIBZSTD_INCLUDE_DIRS})
|
||||||
|
list(APPEND EXTRA_LIBS ${LIBZSTD_LDFLAGS})
|
||||||
add_definitions(-DHAVE_ZSTD)
|
add_definitions(-DHAVE_ZSTD)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Check for cJSON
|
# Check for cJSON
|
||||||
if(ENABLE_CJSON)
|
if(ENABLE_CJSON)
|
||||||
pkg_check_modules(LIBCJSON REQUIRED libcjson)
|
pkg_check_modules(LIBCJSON REQUIRED libcjson)
|
||||||
|
include_directories(${LIBCJSON_INCLUDE_DIRS})
|
||||||
add_definitions(-DHAVE_CJSON)
|
add_definitions(-DHAVE_CJSON)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Check for iconv
|
# Check for iconv
|
||||||
find_package(Iconv)
|
find_package(Iconv)
|
||||||
if(ICONV_FOUND)
|
if(ICONV_FOUND)
|
||||||
|
if(ICONV_LIBRARY)
|
||||||
|
list(APPEND EXTRA_LIBS ${ICONV_LIBRARY})
|
||||||
|
endif()
|
||||||
add_definitions(-DHAVE_ICONV)
|
add_definitions(-DHAVE_ICONV)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -283,18 +274,15 @@ pkg_check_modules(LIBCURL REQUIRED libcurl>=7.68.0)
|
|||||||
include_directories(${LIBCURL_INCLUDE_DIRS})
|
include_directories(${LIBCURL_INCLUDE_DIRS})
|
||||||
list(APPEND EXTRA_LIBS ${LIBCURL_LDFLAGS})
|
list(APPEND EXTRA_LIBS ${LIBCURL_LDFLAGS})
|
||||||
|
|
||||||
find_library(DL_LIBRARY
|
list(APPEND EXTRA_LIBS ${CMAKE_DL_LIBS})
|
||||||
NAMES dl
|
|
||||||
PATHS /lib /usr/lib /usr/libexec /usr/local/lib /usr/local/libexec
|
|
||||||
)
|
|
||||||
if(DL_LIBRARY)
|
|
||||||
list(APPEND EXTRA_LIBS ${DL_LIBRARY})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
add_subdirectory(icons)
|
add_subdirectory(icons)
|
||||||
|
|
||||||
if(ENABLE_NLS)
|
if(ENABLE_NLS)
|
||||||
find_package(Gettext REQUIRED)
|
find_package(Gettext REQUIRED)
|
||||||
|
if(LIBINTL_LIBRARY)
|
||||||
|
list(APPEND EXTRA_LIBS ${LIBINTL_LIBRARY})
|
||||||
|
endif()
|
||||||
find_package(Intl REQUIRED)
|
find_package(Intl REQUIRED)
|
||||||
include_directories(${Intl_INCLUDE_DIRS})
|
include_directories(${Intl_INCLUDE_DIRS})
|
||||||
list(APPEND EXTRA_LIBS "${Intl_LIBRARIES}")
|
list(APPEND EXTRA_LIBS "${Intl_LIBRARIES}")
|
||||||
@@ -303,20 +291,30 @@ else()
|
|||||||
add_custom_target(translations COMMAND true)
|
add_custom_target(translations COMMAND true)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
|
||||||
|
find_library(EXECINFO_LIB_PATH execinfo /usr/local/lib)
|
||||||
|
check_function_exists(backtrace HAVE_BACKTRACE)
|
||||||
|
list(APPEND EXTRA_LIBS "execinfo")
|
||||||
|
else()
|
||||||
|
check_symbol_exists(backtrace "execinfo.h" HAVE_BACKTRACE)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(${CMAKE_SYSTEM_NAME} STREQUAL "Haiku")
|
||||||
|
list(APPEND EXTRA_LIBS "network")
|
||||||
|
else()
|
||||||
|
list(APPEND EXTRA_LIBS "pthread")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(${CMAKE_SYSTEM_NAME} STREQUAL "SunOS")
|
||||||
|
list(APPEND EXTRA_LIBS "socket" "nsl")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
list(APPEND EXTRA_LIBS "m")
|
||||||
|
|
||||||
add_subdirectory(src)
|
add_subdirectory(src)
|
||||||
add_subdirectory(doc)
|
add_subdirectory(doc)
|
||||||
|
|
||||||
if(ENABLE_TESTS)
|
enable_testing()
|
||||||
find_package(CppUTest)
|
|
||||||
if(CPPUTEST_FOUND)
|
|
||||||
enable_testing()
|
|
||||||
else()
|
|
||||||
message(SEND_ERROR "CppUTest not found")
|
|
||||||
endif()
|
|
||||||
else()
|
|
||||||
enable_testing()
|
|
||||||
add_test(NAME notests COMMAND true)
|
|
||||||
endif()
|
|
||||||
add_subdirectory(tests)
|
add_subdirectory(tests)
|
||||||
|
|
||||||
configure_file(config.h.cmake config.h @ONLY)
|
configure_file(config.h.cmake config.h @ONLY)
|
||||||
|
|||||||
+2
-3
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
SPDX-FileCopyrightText: 2014-2025 Sébastien Helleu <flashcode@flashtux.org>
|
SPDX-FileCopyrightText: 2014-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-3.0-or-later
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
-->
|
-->
|
||||||
@@ -19,8 +19,7 @@ First, some basic things:
|
|||||||
|
|
||||||
### Security reports
|
### Security reports
|
||||||
|
|
||||||
Please **DO NOT** file a GitHub issue for security related problems, but send an
|
Please **DO NOT** file a GitHub issue for security related problems; see [SECURITY.md](SECURITY.md) instead.
|
||||||
email to [security@weechat.org](mailto:security@weechat.org) instead.
|
|
||||||
|
|
||||||
### Required info
|
### Required info
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-3.0-or-later
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
-->
|
-->
|
||||||
@@ -11,10 +11,8 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
[](https://hostux.social/@weechat)
|
[](https://hostux.social/@weechat)
|
||||||
[](https://diasp.eu/u/weechat)
|
|
||||||
[](https://x.com/WeeChatClient)
|
[](https://x.com/WeeChatClient)
|
||||||
[](https://blog.weechat.org/)
|
[](https://blog.weechat.org/)
|
||||||
[](https://www.slant.co/topics/1323/~best-irc-clients-for-linux)
|
|
||||||
[](https://weechat.org/donate/)
|
[](https://weechat.org/donate/)
|
||||||
|
|
||||||
[](https://github.com/weechat/weechat/actions)
|
[](https://github.com/weechat/weechat/actions)
|
||||||
@@ -29,11 +27,11 @@ Homepage: [https://weechat.org/](https://weechat.org/)
|
|||||||
## Features
|
## Features
|
||||||
|
|
||||||
- **Modular chat client**: WeeChat has a lightweight core and optional [plugins](https://weechat.org/doc/weechat/user/#plugins). All plugins (including [IRC](https://weechat.org/doc/weechat/user/#irc)) are independent and can be unloaded.
|
- **Modular chat client**: WeeChat has a lightweight core and optional [plugins](https://weechat.org/doc/weechat/user/#plugins). All plugins (including [IRC](https://weechat.org/doc/weechat/user/#irc)) are independent and can be unloaded.
|
||||||
- **Multi-platform**: WeeChat runs on GNU/Linux, *BSD, GNU/Hurd, Haiku, macOS and Windows (Bash/Ubuntu and Cygwin).
|
- **Multi-platform**: WeeChat runs on GNU/Linux, *BSD, GNU/Hurd, Haiku, macOS and Windows (WSL and Cygwin).
|
||||||
- **Multi-protocols**: WeeChat is designed to support multiple protocols by plugins, like IRC.
|
- **Multi-protocol**: WeeChat is designed to support multiple protocols via plugins, like IRC.
|
||||||
- **Standards-compliant**: the IRC plugin is compliant with RFCs [1459](https://datatracker.ietf.org/doc/html/rfc1459), [2810](https://datatracker.ietf.org/doc/html/rfc2810), [2811](https://datatracker.ietf.org/doc/html/rfc2811), [2812](https://datatracker.ietf.org/doc/html/rfc2812), [2813](https://datatracker.ietf.org/doc/html/rfc2813) and [7194](https://datatracker.ietf.org/doc/html/rfc7194).
|
- **Standards-compliant**: the IRC plugin is compliant with RFCs [1459](https://datatracker.ietf.org/doc/html/rfc1459), [2810](https://datatracker.ietf.org/doc/html/rfc2810), [2811](https://datatracker.ietf.org/doc/html/rfc2811), [2812](https://datatracker.ietf.org/doc/html/rfc2812), [2813](https://datatracker.ietf.org/doc/html/rfc2813) and [7194](https://datatracker.ietf.org/doc/html/rfc7194).
|
||||||
- **Small, fast, and very light**: the core is and should stay as light and fast as possible.
|
- **Small, fast, and very light**: the core is and should stay as light and fast as possible.
|
||||||
- **Customizable and extensible**: there are a lot of options to customize WeeChat, and it is extensible with C plugins and [scripts](https://weechat.org/scripts/) ([Perl](https://weechat.org/scripts/language/perl/), [Python](https://weechat.org/scripts/language/python/), [Ruby](https://weechat.org/scripts/language/ruby), [Lua](https://weechat.org/scripts/language/lua/), [Tcl](https://weechat.org/scripts/language/tcl/), [Scheme](https://weechat.org/scripts/language/guile/), [JavaScript](https://weechat.org/scripts/language/javascript/) and [PHP](https://weechat.org/scripts/language/php/)).
|
- **Customizable and extensible**: there are a lot of options to customize WeeChat, and it is extensible with C plugins and [scripts](https://weechat.org/scripts/) ([Perl](https://weechat.org/scripts/language/perl/), [Python](https://weechat.org/scripts/language/python/), [Ruby](https://weechat.org/scripts/language/ruby/), [Lua](https://weechat.org/scripts/language/lua/), [Tcl](https://weechat.org/scripts/language/tcl/), [Scheme](https://weechat.org/scripts/language/guile/), [JavaScript](https://weechat.org/scripts/language/javascript/) and [PHP](https://weechat.org/scripts/language/php/)).
|
||||||
- **Fully documented**: there is comprehensive [documentation](https://weechat.org/doc/weechat/), which is [translated](https://weechat.org/doc/weechat/dev/#translations) into several languages.
|
- **Fully documented**: there is comprehensive [documentation](https://weechat.org/doc/weechat/), which is [translated](https://weechat.org/doc/weechat/dev/#translations) into several languages.
|
||||||
- **Developed from scratch**: WeeChat was built from scratch and is not based on any other client.
|
- **Developed from scratch**: WeeChat was built from scratch and is not based on any other client.
|
||||||
- **Free software**: WeeChat is released under [GPLv3](https://www.gnu.org/licenses/gpl-3.0.html).
|
- **Free software**: WeeChat is released under [GPLv3](https://www.gnu.org/licenses/gpl-3.0.html).
|
||||||
@@ -51,12 +49,12 @@ For detailed instructions, please check the [WeeChat user's guide](https://weech
|
|||||||
|
|
||||||
## Semantic versioning
|
## Semantic versioning
|
||||||
|
|
||||||
WeeChat is following a "practical" semantic versioning, see file [CONTRIBUTING.md](CONTRIBUTING.md#semantic-versioning).
|
WeeChat follows "practical" semantic versioning; see [CONTRIBUTING.md](CONTRIBUTING.md#semantic-versioning).
|
||||||
|
|
||||||
## Copyright
|
## Copyright
|
||||||
|
|
||||||
<!-- REUSE-IgnoreStart -->
|
<!-- REUSE-IgnoreStart -->
|
||||||
Copyright © 2003-2025 [Sébastien Helleu](https://github.com/flashcode)
|
Copyright © 2003-2026 [Sébastien Helleu](https://github.com/flashcode)
|
||||||
|
|
||||||
This file is part of WeeChat, the extensible chat client.
|
This file is part of WeeChat, the extensible chat client.
|
||||||
|
|
||||||
|
|||||||
+10
-2
@@ -1,4 +1,4 @@
|
|||||||
# SPDX-FileCopyrightText: 2025 Sébastien Helleu <flashcode@flashtux.org>
|
# SPDX-FileCopyrightText: 2025-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
@@ -17,5 +17,13 @@ path = [
|
|||||||
"weechat.pc.in",
|
"weechat.pc.in",
|
||||||
]
|
]
|
||||||
precedence = "override"
|
precedence = "override"
|
||||||
SPDX-FileCopyrightText = "2003-2025 Sébastien Helleu <flashcode@flashtux.org>"
|
SPDX-FileCopyrightText = "2003-2026 Sébastien Helleu <flashcode@flashtux.org>"
|
||||||
|
SPDX-License-Identifier = "GPL-3.0-or-later"
|
||||||
|
|
||||||
|
[[annotations]]
|
||||||
|
path = [
|
||||||
|
".poexam/*.dic",
|
||||||
|
]
|
||||||
|
precedence = "override"
|
||||||
|
SPDX-FileCopyrightText = "2026 Sébastien Helleu <flashcode@flashtux.org>"
|
||||||
SPDX-License-Identifier = "GPL-3.0-or-later"
|
SPDX-License-Identifier = "GPL-3.0-or-later"
|
||||||
|
|||||||
+26
@@ -0,0 +1,26 @@
|
|||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: 2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
|
# Security Policy
|
||||||
|
|
||||||
|
## Supported versions
|
||||||
|
|
||||||
|
Only the latest stable version of WeeChat is supported.
|
||||||
|
|
||||||
|
| Version | Supported | Notes |
|
||||||
|
| -------------- | ------------------ | --------------------------------------------------- |
|
||||||
|
| Latest stable | :white_check_mark: | Fully supported. |
|
||||||
|
| Older releases | :x: | Not supported. Contact us in case of specific need. |
|
||||||
|
|
||||||
|
However, we may help to backport fixes on older versions, especially when they are used in released distributions with no way to upgrade to the latest stable release (please contact us).
|
||||||
|
|
||||||
|
## Reporting a vulnerability
|
||||||
|
|
||||||
|
Please report security issues using <https://github.com/weechat/weechat/security/advisories/new>.
|
||||||
|
|
||||||
|
Alternatively, if you are not able to use this form, you can send an email to [security@weechat.org](mailto:security@weechat.org) instead.
|
||||||
|
|
||||||
|
We will investigate all legitimate reports and do our best to quickly fix the problem.
|
||||||
+27
-1
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-3.0-or-later
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
-->
|
-->
|
||||||
@@ -13,6 +13,19 @@ When upgrading from version X to Y, please read and apply all instructions from
|
|||||||
|
|
||||||
For a list of all changes in each version, please see [CHANGELOG.md](CHANGELOG.md).
|
For a list of all changes in each version, please see [CHANGELOG.md](CHANGELOG.md).
|
||||||
|
|
||||||
|
## Version 4.10.0
|
||||||
|
|
||||||
|
### Command on mouse click in fset buffer
|
||||||
|
|
||||||
|
The command executed when clicking in the fset buffer has been updated to prevent
|
||||||
|
errors on the core buffer when the click is done below the last option.
|
||||||
|
|
||||||
|
To reset the key and use the new default command:
|
||||||
|
|
||||||
|
```text
|
||||||
|
/reset weechat.key_mouse.@chat(fset.fset):button1
|
||||||
|
```
|
||||||
|
|
||||||
## Version 4.8.0
|
## Version 4.8.0
|
||||||
|
|
||||||
### IRC temporary servers
|
### IRC temporary servers
|
||||||
@@ -24,6 +37,19 @@ converted to a standard server, and thus is saved in configuration file `irc.con
|
|||||||
|
|
||||||
Servers can easily be removed with `/server del <name>`.
|
Servers can easily be removed with `/server del <name>`.
|
||||||
|
|
||||||
|
### IRC SASL EXTERNAL
|
||||||
|
|
||||||
|
When server option `sasl_mechanism` is set to `external`, WeeChat now sends the
|
||||||
|
username defined in option `sasl_username` to the IRC server
|
||||||
|
(see issue [#2270](https://github.com/weechat/weechat/issues/2270)).
|
||||||
|
|
||||||
|
If you use the EXTERNAL mechanism and the username is set, you could either:
|
||||||
|
|
||||||
|
- reset `sasl_username` to an empty string, if the username is **not** needed on this server:
|
||||||
|
`/reset irc.server.xxx.sasl_username`
|
||||||
|
- set `sasl_username` to your actual username, if the username **is** required on this server:
|
||||||
|
`/set irc.server.xxx.sasl_username "user"`
|
||||||
|
|
||||||
### New time format in log files
|
### New time format in log files
|
||||||
|
|
||||||
The time format used in log files now uses UTC and precision of microsecond
|
The time format used in log files now uses UTC and precision of microsecond
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
# SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
# SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2014-2025 Sébastien Helleu <flashcode@flashtux.org>
|
# SPDX-FileCopyrightText: 2014-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
# SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
# SPDX-FileCopyrightText: 2007 Julien Louis <ptitlouis@sysif.net>
|
# SPDX-FileCopyrightText: 2007 Julien Louis <ptitlouis@sysif.net>
|
||||||
# SPDX-FileCopyrightText: 2009 Emmanuel Bouthenot <kolter@openics.org>
|
# SPDX-FileCopyrightText: 2009 Emmanuel Bouthenot <kolter@openics.org>
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2011-2025 Sébastien Helleu <flashcode@flashtux.org>
|
# SPDX-FileCopyrightText: 2011-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
# SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
#
|
#
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
# SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
# SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
#
|
#
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2017 Adam Saponara <as@php.net>
|
# SPDX-FileCopyrightText: 2017 Adam Saponara <as@php.net>
|
||||||
# SPDX-FileCopyrightText: 2017-2025 Sébastien Helleu <flashcode@flashtux.org>
|
# SPDX-FileCopyrightText: 2017-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
# SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
#
|
#
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2015-2025 Sébastien Helleu <flashcode@flashtux.org>
|
# SPDX-FileCopyrightText: 2015-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
# SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
#
|
#
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
SPDX-FileCopyrightText: 2007-2025 Sébastien Helleu <flashcode@flashtux.org>
|
SPDX-FileCopyrightText: 2007-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-3.0-or-later
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
Source: weechat-devel
|
Source: weechat-devel
|
||||||
Section: net
|
Section: net
|
||||||
Priority: optional
|
|
||||||
Maintainer: Sébastien Helleu <flashcode@flashtux.org>
|
Maintainer: Sébastien Helleu <flashcode@flashtux.org>
|
||||||
Build-Depends:
|
Build-Depends:
|
||||||
asciidoctor (>= 1.5.4),
|
asciidoctor (>= 1.5.4),
|
||||||
@@ -13,7 +12,7 @@ Build-Depends:
|
|||||||
libperl-dev,
|
libperl-dev,
|
||||||
python3-dev,
|
python3-dev,
|
||||||
libaspell-dev,
|
libaspell-dev,
|
||||||
liblua5.3-dev,
|
liblua5.4-dev,
|
||||||
tcl8.6-dev,
|
tcl8.6-dev,
|
||||||
guile-3.0-dev,
|
guile-3.0-dev,
|
||||||
php-dev, libphp-embed, libargon2-dev, libsodium-dev,
|
php-dev, libphp-embed, libargon2-dev, libsodium-dev,
|
||||||
@@ -24,7 +23,7 @@ Build-Depends:
|
|||||||
libzstd-dev,
|
libzstd-dev,
|
||||||
zlib1g-dev,
|
zlib1g-dev,
|
||||||
libcjson-dev
|
libcjson-dev
|
||||||
Standards-Version: 4.7.2
|
Standards-Version: 4.7.3
|
||||||
Homepage: https://weechat.org/
|
Homepage: https://weechat.org/
|
||||||
Vcs-Git: https://salsa.debian.org/kolter/weechat.git
|
Vcs-Git: https://salsa.debian.org/kolter/weechat.git
|
||||||
Vcs-Browser: https://salsa.debian.org/kolter/weechat
|
Vcs-Browser: https://salsa.debian.org/kolter/weechat
|
||||||
|
|||||||
@@ -1,3 +1,12 @@
|
|||||||
|
weechat (4.8.1-1) unstable; urgency=medium
|
||||||
|
|
||||||
|
* New upstream release
|
||||||
|
* Bump Standards-Version to 4.7.3
|
||||||
|
* Update debian/copyright file (new year)
|
||||||
|
* Remove redundant priority optional field from debian/control
|
||||||
|
|
||||||
|
-- Emmanuel Bouthenot <kolter@debian.org> Fri, 23 Jan 2026 22:02:31 +0000
|
||||||
|
|
||||||
weechat (4.7.2-1) unstable; urgency=medium
|
weechat (4.7.2-1) unstable; urgency=medium
|
||||||
|
|
||||||
* New upstream release (Closes: #1119787)
|
* New upstream release (Closes: #1119787)
|
||||||
@@ -40,6 +49,12 @@ weechat (4.4.2-1) unstable; urgency=medium
|
|||||||
* New upstream release
|
* New upstream release
|
||||||
- fix crash where exiting (Closes: #1076532)
|
- fix crash where exiting (Closes: #1076532)
|
||||||
- fix a minor security issue (Closes: #1081942)
|
- fix a minor security issue (Closes: #1081942)
|
||||||
|
* Fix possible privacy breach with html documentation which includes
|
||||||
|
stylesheets and fonts (font-awesome) hosted on remote CDN (Cloudflare)
|
||||||
|
by replacing them during build process by the ones provided in
|
||||||
|
fonts-font-awesome package (also added as dependency on weechat-doc).
|
||||||
|
* Refresh weechat-doc with minor changes and add some documentation in
|
||||||
|
Serbian and Czech.
|
||||||
* Bump Standards-Version to 4.7.0
|
* Bump Standards-Version to 4.7.0
|
||||||
|
|
||||||
-- Emmanuel Bouthenot <kolter@debian.org> Sun, 22 Sep 2024 13:08:28 +0000
|
-- Emmanuel Bouthenot <kolter@debian.org> Sun, 22 Sep 2024 13:08:28 +0000
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
Source: weechat
|
Source: weechat
|
||||||
Section: net
|
Section: net
|
||||||
Priority: optional
|
|
||||||
Maintainer: Emmanuel Bouthenot <kolter@debian.org>
|
Maintainer: Emmanuel Bouthenot <kolter@debian.org>
|
||||||
Build-Depends:
|
Build-Depends:
|
||||||
asciidoctor (>= 1.5.4),
|
asciidoctor (>= 1.5.4),
|
||||||
@@ -13,7 +12,7 @@ Build-Depends:
|
|||||||
libperl-dev,
|
libperl-dev,
|
||||||
python3-dev,
|
python3-dev,
|
||||||
libaspell-dev,
|
libaspell-dev,
|
||||||
liblua5.3-dev,
|
liblua5.4-dev,
|
||||||
tcl8.6-dev,
|
tcl8.6-dev,
|
||||||
guile-3.0-dev,
|
guile-3.0-dev,
|
||||||
php-dev, libphp-embed, libargon2-dev, libsodium-dev,
|
php-dev, libphp-embed, libargon2-dev, libsodium-dev,
|
||||||
@@ -24,7 +23,7 @@ Build-Depends:
|
|||||||
libzstd-dev,
|
libzstd-dev,
|
||||||
zlib1g-dev,
|
zlib1g-dev,
|
||||||
libcjson-dev
|
libcjson-dev
|
||||||
Standards-Version: 4.7.2
|
Standards-Version: 4.7.3
|
||||||
Homepage: https://weechat.org/
|
Homepage: https://weechat.org/
|
||||||
Vcs-Git: https://salsa.debian.org/kolter/weechat.git
|
Vcs-Git: https://salsa.debian.org/kolter/weechat.git
|
||||||
Vcs-Browser: https://salsa.debian.org/kolter/weechat
|
Vcs-Browser: https://salsa.debian.org/kolter/weechat
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ Upstream-Contact: Sébastien Helleu <flashcode@flashtux.org>
|
|||||||
Source: https://weechat.org/
|
Source: https://weechat.org/
|
||||||
|
|
||||||
Files: *
|
Files: *
|
||||||
Copyright: 2003-2025, Sébastien Helleu <flashcode@flashtux.org>
|
Copyright: 2003-2026, Sébastien Helleu <flashcode@flashtux.org>
|
||||||
License: GPL-3+
|
License: GPL-3+
|
||||||
|
|
||||||
Files: src/core/core-command.c
|
Files: src/core/core-command.c
|
||||||
|
|||||||
+37
-12
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
# SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
# SPDX-FileCopyrightText: 2009 Emmanuel Bouthenot <kolter@openics.org>
|
# SPDX-FileCopyrightText: 2009 Emmanuel Bouthenot <kolter@openics.org>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
@@ -30,12 +30,37 @@ if(ENABLE_MAN OR ENABLE_DOC)
|
|||||||
set(SCRIPTING_LANG de en fr it ja pl sr)
|
set(SCRIPTING_LANG de en fr it ja pl sr)
|
||||||
set(FAQ_LANG de en es fr it ja pl sr)
|
set(FAQ_LANG de en es fr it ja pl sr)
|
||||||
set(QUICKSTART_LANG cs de en es fr it ja pl ru sr)
|
set(QUICKSTART_LANG cs de en es fr it ja pl ru sr)
|
||||||
set(RELAY_API_LANG en fr)
|
set(RELAY_API_LANG en fr sr)
|
||||||
set(RELAY_WEECHAT_LANG en fr ja sr)
|
set(RELAY_WEECHAT_LANG en fr ja sr)
|
||||||
set(DEV_LANG en fr ja sr)
|
set(DEV_LANG en fr ja sr)
|
||||||
|
|
||||||
find_package(Asciidoctor)
|
find_package(Asciidoctor)
|
||||||
if(ASCIIDOCTOR_FOUND)
|
if(ASCIIDOCTOR_FOUND)
|
||||||
|
# Asciidoctor embeds the light style automatically; the dark stylesheet
|
||||||
|
# is generated below and scoped via @media in docinfo.html.in.
|
||||||
|
set(PYGMENTS_LIGHT_STYLE "default")
|
||||||
|
set(PYGMENTS_DARK_STYLE "monokai")
|
||||||
|
find_program(PYGMENTIZE_EXECUTABLE pygmentize)
|
||||||
|
set(PYGMENTS_DARK_CSS "")
|
||||||
|
if(PYGMENTIZE_EXECUTABLE)
|
||||||
|
execute_process(
|
||||||
|
COMMAND "${PYGMENTIZE_EXECUTABLE}" -O "classprefix=tok-" -f html -a "pre.pygments" -S "${PYGMENTS_DARK_STYLE}"
|
||||||
|
OUTPUT_VARIABLE PYGMENTS_DARK_CSS
|
||||||
|
RESULT_VARIABLE _pygmentize_result
|
||||||
|
)
|
||||||
|
if(NOT _pygmentize_result EQUAL 0)
|
||||||
|
message(WARNING "Failed to generate pygments CSS for dark theme (style: ${PYGMENTS_DARK_STYLE}); doc will be built without dark theme syntax highlighting")
|
||||||
|
set(PYGMENTS_DARK_CSS "")
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
message(WARNING "pygmentize not found (install python3-pygments); doc will be built without syntax highlighting colors")
|
||||||
|
endif()
|
||||||
|
configure_file(
|
||||||
|
"${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html.in"
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/docinfo.html"
|
||||||
|
@ONLY
|
||||||
|
)
|
||||||
|
|
||||||
# common asciidoctor arguments
|
# common asciidoctor arguments
|
||||||
set(ASCIIDOCTOR_ARGS
|
set(ASCIIDOCTOR_ARGS
|
||||||
-v
|
-v
|
||||||
@@ -46,8 +71,8 @@ if(ENABLE_MAN OR ENABLE_DOC)
|
|||||||
-a revnumber="${VERSION}"
|
-a revnumber="${VERSION}"
|
||||||
-a sectanchors
|
-a sectanchors
|
||||||
-a source-highlighter=pygments
|
-a source-highlighter=pygments
|
||||||
-a pygments-style=native
|
-a pygments-style=${PYGMENTS_LIGHT_STYLE}
|
||||||
-a docinfodir="${CMAKE_CURRENT_SOURCE_DIR}"
|
-a docinfodir="${CMAKE_CURRENT_BINARY_DIR}"
|
||||||
-a autogendir="${CMAKE_CURRENT_BINARY_DIR}/autogen"
|
-a autogendir="${CMAKE_CURRENT_BINARY_DIR}/autogen"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -205,7 +230,7 @@ if(ENABLE_MAN OR ENABLE_DOC)
|
|||||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_user.${lang}.html"
|
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_user.${lang}.html"
|
||||||
COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_USER_ARGS} -o "weechat_user.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_user.${lang}.adoc"
|
COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_USER_ARGS} -o "weechat_user.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_user.${lang}.adoc"
|
||||||
DEPENDS
|
DEPENDS
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html"
|
"${CMAKE_CURRENT_BINARY_DIR}/docinfo.html"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_user.${lang}.adoc"
|
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_user.${lang}.adoc"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
|
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/cmdline_options.${lang}.adoc"
|
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/cmdline_options.${lang}.adoc"
|
||||||
@@ -226,7 +251,7 @@ if(ENABLE_MAN OR ENABLE_DOC)
|
|||||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_plugin_api.${lang}.html"
|
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_plugin_api.${lang}.html"
|
||||||
COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_PLUGIN_API_ARGS} -o "weechat_plugin_api.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_plugin_api.${lang}.adoc"
|
COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_PLUGIN_API_ARGS} -o "weechat_plugin_api.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_plugin_api.${lang}.adoc"
|
||||||
DEPENDS
|
DEPENDS
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html"
|
"${CMAKE_CURRENT_BINARY_DIR}/docinfo.html"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_plugin_api.${lang}.adoc"
|
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_plugin_api.${lang}.adoc"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
|
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
|
||||||
doc-autogen
|
doc-autogen
|
||||||
@@ -250,7 +275,7 @@ if(ENABLE_MAN OR ENABLE_DOC)
|
|||||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_scripting.${lang}.html"
|
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_scripting.${lang}.html"
|
||||||
COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_SCRIPTING_ARGS} -o "weechat_scripting.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_scripting.${lang}.adoc"
|
COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_SCRIPTING_ARGS} -o "weechat_scripting.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_scripting.${lang}.adoc"
|
||||||
DEPENDS
|
DEPENDS
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html"
|
"${CMAKE_CURRENT_BINARY_DIR}/docinfo.html"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_scripting.${lang}.adoc"
|
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_scripting.${lang}.adoc"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
|
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
|
||||||
doc-autogen
|
doc-autogen
|
||||||
@@ -268,7 +293,7 @@ if(ENABLE_MAN OR ENABLE_DOC)
|
|||||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_faq.${lang}.html"
|
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_faq.${lang}.html"
|
||||||
COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_FAQ_ARGS} -o "weechat_faq.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_faq.${lang}.adoc"
|
COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_FAQ_ARGS} -o "weechat_faq.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_faq.${lang}.adoc"
|
||||||
DEPENDS
|
DEPENDS
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html"
|
"${CMAKE_CURRENT_BINARY_DIR}/docinfo.html"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_faq.${lang}.adoc"
|
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_faq.${lang}.adoc"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
|
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
|
||||||
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
|
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
|
||||||
@@ -283,7 +308,7 @@ if(ENABLE_MAN OR ENABLE_DOC)
|
|||||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.${lang}.html"
|
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.${lang}.html"
|
||||||
COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_QUICKSTART_ARGS} -o "weechat_quickstart.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_quickstart.${lang}.adoc"
|
COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_QUICKSTART_ARGS} -o "weechat_quickstart.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_quickstart.${lang}.adoc"
|
||||||
DEPENDS
|
DEPENDS
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html"
|
"${CMAKE_CURRENT_BINARY_DIR}/docinfo.html"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_quickstart.${lang}.adoc"
|
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_quickstart.${lang}.adoc"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
|
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
|
||||||
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
|
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
|
||||||
@@ -298,7 +323,7 @@ if(ENABLE_MAN OR ENABLE_DOC)
|
|||||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_relay_api.${lang}.html"
|
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_relay_api.${lang}.html"
|
||||||
COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_RELAY_API_ARGS} -o "weechat_relay_api.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_relay_api.${lang}.adoc"
|
COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_RELAY_API_ARGS} -o "weechat_relay_api.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_relay_api.${lang}.adoc"
|
||||||
DEPENDS
|
DEPENDS
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html"
|
"${CMAKE_CURRENT_BINARY_DIR}/docinfo.html"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_relay_api.${lang}.adoc"
|
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_relay_api.${lang}.adoc"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
|
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/relay.${lang}.adoc"
|
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/relay.${lang}.adoc"
|
||||||
@@ -314,7 +339,7 @@ if(ENABLE_MAN OR ENABLE_DOC)
|
|||||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_relay_weechat.${lang}.html"
|
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_relay_weechat.${lang}.html"
|
||||||
COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_RELAY_WEECHAT_ARGS} -o "weechat_relay_weechat.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_relay_weechat.${lang}.adoc"
|
COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_RELAY_WEECHAT_ARGS} -o "weechat_relay_weechat.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_relay_weechat.${lang}.adoc"
|
||||||
DEPENDS
|
DEPENDS
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html"
|
"${CMAKE_CURRENT_BINARY_DIR}/docinfo.html"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_relay_weechat.${lang}.adoc"
|
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_relay_weechat.${lang}.adoc"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
|
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/relay.${lang}.adoc"
|
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/relay.${lang}.adoc"
|
||||||
@@ -330,7 +355,7 @@ if(ENABLE_MAN OR ENABLE_DOC)
|
|||||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_dev.${lang}.html"
|
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_dev.${lang}.html"
|
||||||
COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_DEV_ARGS} -o "weechat_dev.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_dev.${lang}.adoc"
|
COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_DEV_ARGS} -o "weechat_dev.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_dev.${lang}.adoc"
|
||||||
DEPENDS
|
DEPENDS
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html"
|
"${CMAKE_CURRENT_BINARY_DIR}/docinfo.html"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_dev.${lang}.adoc"
|
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_dev.${lang}.adoc"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
|
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
|
||||||
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
|
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
// SPDX-FileCopyrightText: 2005-2011 Jiri Golembiovsky <golemj@gmail.com>
|
// SPDX-FileCopyrightText: 2005-2011 Jiri Golembiovsky <golemj@gmail.com>
|
||||||
// SPDX-FileCopyrightText: 2015-2017 Ondřej Súkup <mimi.vx@gmail.com>
|
// SPDX-FileCopyrightText: 2015-2017 Ondřej Súkup <mimi.vx@gmail.com>
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
// SPDX-FileCopyrightText: 2005-2011 Jiri Golembiovsky <golemj@gmail.com>
|
// SPDX-FileCopyrightText: 2005-2011 Jiri Golembiovsky <golemj@gmail.com>
|
||||||
// SPDX-FileCopyrightText: 2015-2017 Ondřej Súkup <mimi.vx@gmail.com>
|
// SPDX-FileCopyrightText: 2015-2017 Ondřej Súkup <mimi.vx@gmail.com>
|
||||||
//
|
//
|
||||||
@@ -107,7 +107,7 @@ WeeChat je napsán Sébastienem Helleu a přispěvovateli (kompletní seznam je
|
|||||||
souboru AUTHORS.md).
|
souboru AUTHORS.md).
|
||||||
|
|
||||||
// REUSE-IgnoreStart
|
// REUSE-IgnoreStart
|
||||||
Copyright (C) 2003-2025 {author}
|
Copyright (C) 2003-2026 {author}
|
||||||
// REUSE-IgnoreEnd
|
// REUSE-IgnoreEnd
|
||||||
|
|
||||||
WeeChat is free software; you can redistribute it and/or modify
|
WeeChat is free software; you can redistribute it and/or modify
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
// SPDX-FileCopyrightText: 2005-2011 Jiri Golembiovsky <golemj@gmail.com>
|
// SPDX-FileCopyrightText: 2005-2011 Jiri Golembiovsky <golemj@gmail.com>
|
||||||
// SPDX-FileCopyrightText: 2015-2017 Ondřej Súkup <mimi.vx@gmail.com>
|
// SPDX-FileCopyrightText: 2015-2017 Ondřej Súkup <mimi.vx@gmail.com>
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
// SPDX-FileCopyrightText: 2005-2011 Jiri Golembiovsky <golemj@gmail.com>
|
// SPDX-FileCopyrightText: 2005-2011 Jiri Golembiovsky <golemj@gmail.com>
|
||||||
// SPDX-FileCopyrightText: 2015-2017 Ondřej Súkup <mimi.vx@gmail.com>
|
// SPDX-FileCopyrightText: 2015-2017 Ondřej Súkup <mimi.vx@gmail.com>
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
// SPDX-FileCopyrightText: 2015-2017 Ondřej Súkup <mimi.vx@gmail.com>
|
// SPDX-FileCopyrightText: 2015-2017 Ondřej Súkup <mimi.vx@gmail.com>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
// SPDX-FileCopyrightText: 2009-2025 Nils Görs <weechatter@arcor.de>
|
// SPDX-FileCopyrightText: 2009-2025 Nils Görs <weechatter@arcor.de>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
// SPDX-FileCopyrightText: 2009-2025 Nils Görs <weechatter@arcor.de>
|
// SPDX-FileCopyrightText: 2009-2025 Nils Görs <weechatter@arcor.de>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
@@ -105,7 +105,7 @@ WeeChat wird programmiert von Sébastien Helleu und weiteren Beteiligten (eine v
|
|||||||
findet man in der AUTHORS.md Datei).
|
findet man in der AUTHORS.md Datei).
|
||||||
|
|
||||||
// REUSE-IgnoreStart
|
// REUSE-IgnoreStart
|
||||||
Copyright (C) 2003-2025 {author}
|
Copyright (C) 2003-2026 {author}
|
||||||
// REUSE-IgnoreEnd
|
// REUSE-IgnoreEnd
|
||||||
|
|
||||||
WeeChat is free software; you can redistribute it and/or modify
|
WeeChat is free software; you can redistribute it and/or modify
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
// SPDX-FileCopyrightText: 2010-2025 Nils Görs <weechatter@arcor.de>
|
// SPDX-FileCopyrightText: 2010-2025 Nils Görs <weechatter@arcor.de>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
// SPDX-FileCopyrightText: 2010-2025 Nils Görs <weechatter@arcor.de>
|
// SPDX-FileCopyrightText: 2010-2025 Nils Görs <weechatter@arcor.de>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
// SPDX-FileCopyrightText: 2009 Juergen Descher <jhdl@gmx.net>
|
// SPDX-FileCopyrightText: 2009 Juergen Descher <jhdl@gmx.net>
|
||||||
// SPDX-FileCopyrightText: 2009-2025 Nils Görs <weechatter@arcor.de>
|
// SPDX-FileCopyrightText: 2009-2025 Nils Görs <weechatter@arcor.de>
|
||||||
//
|
//
|
||||||
@@ -458,7 +458,7 @@ für weitere Informationen die das Farbmanagement betreffen.
|
|||||||
[[search_text]]
|
[[search_text]]
|
||||||
=== Wie kann ich in einem Buffer nach einem Text suchen (vergleichbar /lastlog in irssi)?
|
=== Wie kann ich in einem Buffer nach einem Text suchen (vergleichbar /lastlog in irssi)?
|
||||||
|
|
||||||
Die Standardtastenbelegung lautet kbd:[Ctrl+r]
|
Die Standardtastenbelegung lautet kbd:[Ctrl+s]
|
||||||
(der dazugehörige Befehl: `+/input search_text_here+`).
|
(der dazugehörige Befehl: `+/input search_text_here+`).
|
||||||
Um zu Highlight-Nachrichten zu springen:
|
Um zu Highlight-Nachrichten zu springen:
|
||||||
kbd:[Alt+p] für vorherige, kbd:[Alt+n] für die nächste Nachricht.
|
kbd:[Alt+p] für vorherige, kbd:[Alt+n] für die nächste Nachricht.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
// SPDX-FileCopyrightText: 2006 Frank Zacharias <frank_zacharias@web.de>
|
// SPDX-FileCopyrightText: 2006 Frank Zacharias <frank_zacharias@web.de>
|
||||||
// SPDX-FileCopyrightText: 2009 Juergen Descher <jhdl@gmx.net>
|
// SPDX-FileCopyrightText: 2009 Juergen Descher <jhdl@gmx.net>
|
||||||
// SPDX-FileCopyrightText: 2009-2025 Nils Görs <weechatter@arcor.de>
|
// SPDX-FileCopyrightText: 2009-2025 Nils Görs <weechatter@arcor.de>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
// SPDX-FileCopyrightText: 2010-2025 Nils Görs <weechatter@arcor.de>
|
// SPDX-FileCopyrightText: 2010-2025 Nils Görs <weechatter@arcor.de>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|||||||
+148
-2
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
// SPDX-FileCopyrightText: 2010-2025 Nils Görs <weechatter@arcor.de>
|
// SPDX-FileCopyrightText: 2010-2025 Nils Görs <weechatter@arcor.de>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
@@ -212,7 +212,7 @@ WeeChat optional sind:
|
|||||||
| asciidoctor | ≥ 1.5.4
|
| asciidoctor | ≥ 1.5.4
|
||||||
| zum Erstellen der man page und der Dokumentation.
|
| zum Erstellen der man page und der Dokumentation.
|
||||||
|
|
||||||
| ruby-pygments.rb |
|
| python3-pygments, ruby-pygments.rb |
|
||||||
| Build Dokumentation.
|
| Build Dokumentation.
|
||||||
|
|
||||||
| libcpputest-dev | ≥ 3.4
|
| libcpputest-dev | ≥ 3.4
|
||||||
@@ -2197,6 +2197,152 @@ Um der Vordergrundfarbe des Terminals das Attribut "fett" zuzuordnen:
|
|||||||
/set weechat.color.status_time *99999
|
/set weechat.color.status_time *99999
|
||||||
----
|
----
|
||||||
|
|
||||||
|
// TRANSLATION MISSING
|
||||||
|
[[themes]]
|
||||||
|
=== Themen
|
||||||
|
|
||||||
|
A theme is a named bundle of option overrides that can be applied with
|
||||||
|
the <<command_weechat_theme,/theme>> command. WeeChat ships a built-in
|
||||||
|
`"light"` theme tuned for light-background terminals and supports
|
||||||
|
user-defined themes loaded transiently from files.
|
||||||
|
|
||||||
|
[[themes_themable_options]]
|
||||||
|
==== Themable options
|
||||||
|
|
||||||
|
Themes can only set options marked as _themable_. All `*.color.*`
|
||||||
|
options are themable by default; a few string options that hold format
|
||||||
|
expressions with `+${color:...}+` references (such as
|
||||||
|
`+weechat.color.chat_nick_colors+`, `+weechat.look.prefix_error+` or the
|
||||||
|
`+buflist.format.*+` formats) are explicitly opted in.
|
||||||
|
|
||||||
|
You can list the full themable surface area from the
|
||||||
|
<<command_fset_fset,/fset>> buffer with the `+t:themable+` filter.
|
||||||
|
|
||||||
|
[[themes_apply]]
|
||||||
|
==== Applying a theme
|
||||||
|
|
||||||
|
To switch to the built-in light-background theme:
|
||||||
|
|
||||||
|
----
|
||||||
|
/theme apply light
|
||||||
|
----
|
||||||
|
|
||||||
|
The current state of every themable option is saved beforehand to a
|
||||||
|
backup theme file named like `+backup-YYYYMMDD-HHMMSS-uuuuuu+` in
|
||||||
|
directory `+themes+` inside the WeeChat configuration directory, so the
|
||||||
|
previous look can be restored at any time with:
|
||||||
|
|
||||||
|
----
|
||||||
|
/theme apply backup-YYYYMMDD-HHMMSS-uuuuuu
|
||||||
|
----
|
||||||
|
|
||||||
|
Backup creation can be disabled (not recommended):
|
||||||
|
|
||||||
|
----
|
||||||
|
/set weechat.look.theme_backup off
|
||||||
|
----
|
||||||
|
|
||||||
|
If backup is enabled and the backup file cannot be written, the apply
|
||||||
|
is aborted before any option is changed.
|
||||||
|
|
||||||
|
The name of the last applied theme is stored in
|
||||||
|
`+weechat.look.theme+` (informational only; not re-applied at startup).
|
||||||
|
|
||||||
|
[[themes_reset]]
|
||||||
|
==== Resetting to defaults
|
||||||
|
|
||||||
|
To restore the look shipped with WeeChat, reset every themable option
|
||||||
|
to its default value:
|
||||||
|
|
||||||
|
----
|
||||||
|
/theme reset
|
||||||
|
----
|
||||||
|
|
||||||
|
A backup is written first (same gate as `+/theme apply+`); on backup
|
||||||
|
failure the reset is aborted before any option is changed.
|
||||||
|
`+weechat.look.theme+` is cleared too.
|
||||||
|
|
||||||
|
[[themes_save_delete]]
|
||||||
|
==== Saving and deleting user themes
|
||||||
|
|
||||||
|
Save the current themable options as a new user theme file:
|
||||||
|
|
||||||
|
----
|
||||||
|
/theme save mytheme
|
||||||
|
----
|
||||||
|
|
||||||
|
Every themable option is written, so the file is self-contained and
|
||||||
|
applies the exact same look on any WeeChat, regardless of its current
|
||||||
|
configuration.
|
||||||
|
|
||||||
|
Reserved names (built-in theme names like `+light+` and any name
|
||||||
|
starting with `+backup-+`) are refused. Files live at
|
||||||
|
`+${weechat_config_dir}/themes/<name>.theme+`.
|
||||||
|
|
||||||
|
Rename a user theme (typical use: keep a useful automatic backup
|
||||||
|
under a meaningful name):
|
||||||
|
|
||||||
|
----
|
||||||
|
/theme rename backup-20260525-094210-123456 mybackup
|
||||||
|
----
|
||||||
|
|
||||||
|
Built-in themes have no file and cannot be renamed; the target name
|
||||||
|
cannot match a built-in name or start with `+backup-+`, and the
|
||||||
|
target file must not already exist. The `+[info]+` `+name+` field
|
||||||
|
inside the file is rewritten so `/theme info` reports the new name
|
||||||
|
consistently.
|
||||||
|
|
||||||
|
Delete a user theme:
|
||||||
|
|
||||||
|
----
|
||||||
|
/theme delete mytheme
|
||||||
|
----
|
||||||
|
|
||||||
|
This removes the file on disk; built-in themes cannot be deleted.
|
||||||
|
|
||||||
|
[[themes_file_format]]
|
||||||
|
==== Theme file format
|
||||||
|
|
||||||
|
A theme file is INI-like with two sections:
|
||||||
|
|
||||||
|
----
|
||||||
|
[info]
|
||||||
|
name = "solarized_light"
|
||||||
|
description = "Light-background theme inspired by Solarized"
|
||||||
|
date = "2026-05-25 09:42:10"
|
||||||
|
weechat = "4.10.0-dev"
|
||||||
|
|
||||||
|
[options]
|
||||||
|
weechat.color.chat = "darkgray"
|
||||||
|
weechat.color.separator = "blue"
|
||||||
|
irc.color.input_nick = "magenta"
|
||||||
|
buflist.format.number = "${color:28}${number}${if:${number_displayed}?.: }"
|
||||||
|
----
|
||||||
|
|
||||||
|
`+[info]+` is informational metadata shown by `/theme info`. `+[options]+`
|
||||||
|
holds the actual overrides; keys are the full option names that would
|
||||||
|
appear in `/set`. String values can be enclosed in double or single
|
||||||
|
quotes; quotes are stripped at parse time. Non-themable options listed
|
||||||
|
in a theme file are refused at apply time and logged to the core
|
||||||
|
buffer (so a `.theme` file imported from an untrusted source cannot
|
||||||
|
overwrite passwords, autoload lists, or startup commands).
|
||||||
|
|
||||||
|
User theme files are never cached: on every `/theme apply <name>` the
|
||||||
|
file is parsed, applied, and freed.
|
||||||
|
|
||||||
|
[[themes_resolution]]
|
||||||
|
==== Resolution order
|
||||||
|
|
||||||
|
When `+/theme apply <name>+` is run:
|
||||||
|
|
||||||
|
* If `+${weechat_config_dir}/themes/<name>.theme+` exists, the file
|
||||||
|
is parsed and used (it shadows any built-in with the same name).
|
||||||
|
* Otherwise the built-in theme registry is consulted; built-ins are
|
||||||
|
registered programmatically by core, plugins and scripts (see the
|
||||||
|
plugin and scripting documentation for `+weechat_theme_register+`).
|
||||||
|
|
||||||
|
If neither source provides the name, the apply is refused.
|
||||||
|
|
||||||
[[charset]]
|
[[charset]]
|
||||||
=== Charset
|
=== Charset
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
SPDX-FileCopyrightText: 2016-2025 Sébastien Helleu <flashcode@flashtux.org>
|
SPDX-FileCopyrightText: 2016-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-3.0-or-later
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
-->
|
-->
|
||||||
@@ -26,9 +26,6 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
|||||||
--header-details-color: #aaa;
|
--header-details-color: #aaa;
|
||||||
--border: 1px solid #444;
|
--border: 1px solid #444;
|
||||||
--code-bg-color: #252525;
|
--code-bg-color: #252525;
|
||||||
--pre-color: #ddd;
|
|
||||||
--pre-bg-color: #202020;
|
|
||||||
--pre-code-bg-color: #202020;
|
|
||||||
--keyseq-color: #777;
|
--keyseq-color: #777;
|
||||||
--kbd-bg-color: #252525;
|
--kbd-bg-color: #252525;
|
||||||
--kbd-border: 1px solid #333;
|
--kbd-border: 1px solid #333;
|
||||||
@@ -39,7 +36,11 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
|||||||
--icon-caution-color: #bf3400;
|
--icon-caution-color: #bf3400;
|
||||||
--icon-important-color: #f44336;
|
--icon-important-color: #f44336;
|
||||||
--mark-bg-color: #007;
|
--mark-bg-color: #007;
|
||||||
|
--pre-bevel-light: #3e3e3e;
|
||||||
|
--pre-bevel-dark: #2a2a2a;
|
||||||
|
--pre-bevel-bg: #1f1f1f;
|
||||||
}
|
}
|
||||||
|
@PYGMENTS_DARK_CSS@
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (not (prefers-color-scheme: dark)), (prefers-color-scheme: light) {
|
@media (not (prefers-color-scheme: dark)), (prefers-color-scheme: light) {
|
||||||
@@ -59,9 +60,6 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
|||||||
--border: 1px solid #dddddf;
|
--border: 1px solid #dddddf;
|
||||||
--code-bg-color: #f7f7f8;
|
--code-bg-color: #f7f7f8;
|
||||||
--keyseq-color: #333c;
|
--keyseq-color: #333c;
|
||||||
--pre-color: #353535;
|
|
||||||
--pre-bg-color: #f7f7f8;
|
|
||||||
--pre-code-bg-color: #202020;
|
|
||||||
--kbd-bg-color: #f7f7f7;
|
--kbd-bg-color: #f7f7f7;
|
||||||
--kbd-border: 1px solid #ccc;
|
--kbd-border: 1px solid #ccc;
|
||||||
--kbd-box-shadow: 0 1px 0 rgba(0, 0, 0, .2), inset 0 0 0 .1em #fff;
|
--kbd-box-shadow: 0 1px 0 rgba(0, 0, 0, .2), inset 0 0 0 .1em #fff;
|
||||||
@@ -71,6 +69,9 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
|||||||
--icon-caution-color: #ff0000;
|
--icon-caution-color: #ff0000;
|
||||||
--icon-important-color: #bf0000;
|
--icon-important-color: #bf0000;
|
||||||
--mark-bg-color: #9df;
|
--mark-bg-color: #9df;
|
||||||
|
--pre-bevel-light: #e5e5e7;
|
||||||
|
--pre-bevel-dark: #b4b4b8;
|
||||||
|
--pre-bevel-bg: #f6f6f7;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -145,6 +146,10 @@ code, .prettyprint {
|
|||||||
|
|
||||||
pre {
|
pre {
|
||||||
color: var(--pre-color) !important;
|
color: var(--pre-color) !important;
|
||||||
|
border: 1px solid;
|
||||||
|
border-color: var(--pre-bevel-light) var(--pre-bevel-dark) var(--pre-bevel-dark) var(--pre-bevel-light);
|
||||||
|
border-radius: 3px;
|
||||||
|
line-height: 1.25;
|
||||||
}
|
}
|
||||||
|
|
||||||
pre > code {
|
pre > code {
|
||||||
@@ -162,8 +167,8 @@ kbd {
|
|||||||
color: var(--body-color);
|
color: var(--body-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
.literalblock pre, .listingblock > .content > pre:not(.highlight), .listingblock > .content > pre[class="highlight"], .listingblock > .content > pre[class^="highlight "] {
|
.literalblock pre, .listingblock > .content > pre:not(.highlight), .listingblock > .content > pre[class="highlight"], .listingblock > .content > pre[class^="highlight "], pre.pygments {
|
||||||
background-color: var(--pre-bg-color);
|
background-color: var(--pre-bg-color, var(--pre-bevel-bg));
|
||||||
color: var(--body-color);
|
color: var(--body-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -200,24 +205,6 @@ mark {
|
|||||||
color: var(--body-color);
|
color: var(--body-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* syntax highlighting tuning */
|
|
||||||
|
|
||||||
pre.pygments {
|
|
||||||
color: #ddd !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
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 */
|
/* asciidoctor styles tuning */
|
||||||
|
|
||||||
#header, #content, #footnotes, #footer {
|
#header, #content, #footnotes, #footer {
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
@@ -105,7 +105,7 @@ WeeChat is written by Sébastien Helleu and contributors (complete list is in
|
|||||||
the AUTHORS.md file).
|
the AUTHORS.md file).
|
||||||
|
|
||||||
// REUSE-IgnoreStart
|
// REUSE-IgnoreStart
|
||||||
Copyright (C) 2003-2025 {author}
|
Copyright (C) 2003-2026 {author}
|
||||||
// REUSE-IgnoreEnd
|
// REUSE-IgnoreEnd
|
||||||
|
|
||||||
WeeChat is free software; you can redistribute it and/or modify
|
WeeChat is free software; you can redistribute it and/or modify
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
@@ -128,6 +128,7 @@ WeeChat "core" is located in following directories:
|
|||||||
|===
|
|===
|
||||||
| Path/file | Description
|
| Path/file | Description
|
||||||
| core/ | Core functions: entry point, internal structures.
|
| core/ | Core functions: entry point, internal structures.
|
||||||
|
| core-args.c | Command-line arguments.
|
||||||
| core-arraylist.c | Array lists.
|
| core-arraylist.c | Array lists.
|
||||||
| core-backtrace.c | Display a backtrace after a crash.
|
| core-backtrace.c | Display a backtrace after a crash.
|
||||||
| core-calc.c | Calculate result of expressions.
|
| core-calc.c | Calculate result of expressions.
|
||||||
@@ -615,7 +616,7 @@ Example in C:
|
|||||||
[source,c]
|
[source,c]
|
||||||
----
|
----
|
||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2025 Your Name <your@email.com>
|
* SPDX-FileCopyrightText: 2026 Your Name <your@email.com>
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*
|
*
|
||||||
@@ -655,9 +656,9 @@ Example:
|
|||||||
[source,c]
|
[source,c]
|
||||||
----
|
----
|
||||||
/*
|
/*
|
||||||
* Checks if a string with boolean value is valid.
|
* Check if a string with boolean value is valid.
|
||||||
*
|
*
|
||||||
* Returns:
|
* Return:
|
||||||
* 1: boolean value is valid
|
* 1: boolean value is valid
|
||||||
* 0: boolean value is NOT valid
|
* 0: boolean value is NOT valid
|
||||||
*/
|
*/
|
||||||
@@ -932,9 +933,9 @@ Example: creation of a new window (from _src/gui/gui-window.c_):
|
|||||||
[source,c]
|
[source,c]
|
||||||
----
|
----
|
||||||
/*
|
/*
|
||||||
* Creates a new window.
|
* Create a new window.
|
||||||
*
|
*
|
||||||
* Returns pointer to new window, NULL if error.
|
* Return pointer to new window, NULL if error.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
struct t_gui_window *
|
struct t_gui_window *
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
@@ -441,7 +441,7 @@ for more information about colors management.
|
|||||||
[[search_text]]
|
[[search_text]]
|
||||||
=== How can I search text in buffer (like /lastlog in irssi)?
|
=== How can I search text in buffer (like /lastlog in irssi)?
|
||||||
|
|
||||||
The default key is kbd:[Ctrl+r] (command is: `+/input search_text_here+`).
|
The default key is kbd:[Ctrl+s] (command is: `+/input search_text_here+`).
|
||||||
And jump to highlights: kbd:[Alt+p] / kbd:[Alt+n].
|
And jump to highlights: kbd:[Alt+p] / kbd:[Alt+n].
|
||||||
|
|
||||||
See link:weechat_user.en.html#key_bindings[User's guide / Key bindings ^↗^^]
|
See link:weechat_user.en.html#key_bindings[User's guide / Key bindings ^↗^^]
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
@@ -9627,6 +9627,89 @@ elif rc == weechat.WEECHAT_CONFIG_OPTION_UNSET_ERROR:
|
|||||||
# ...
|
# ...
|
||||||
----
|
----
|
||||||
|
|
||||||
|
[[themes]]
|
||||||
|
=== Themes
|
||||||
|
|
||||||
|
Functions to contribute color (and other themable option) overrides to
|
||||||
|
built-in themes. See the
|
||||||
|
link:weechat_user.en.html#themes[user's guide / Themes] section for the
|
||||||
|
end-user side and the `+/theme+` command.
|
||||||
|
|
||||||
|
==== theme_register
|
||||||
|
|
||||||
|
_WeeChat ≥ 4.10.0._
|
||||||
|
|
||||||
|
Register a contribution of option overrides under a named theme. The
|
||||||
|
caller's plugin is the owner of the contribution; subsequent calls
|
||||||
|
with the same theme name from the same plugin merge into the existing
|
||||||
|
contribution (later keys win for duplicates).
|
||||||
|
|
||||||
|
When the calling plugin is unloaded, all its contributions are
|
||||||
|
automatically dropped from every theme.
|
||||||
|
|
||||||
|
Prototype:
|
||||||
|
|
||||||
|
[source,c]
|
||||||
|
----
|
||||||
|
struct t_theme *weechat_theme_register (const char *name,
|
||||||
|
struct t_hashtable *overrides);
|
||||||
|
----
|
||||||
|
|
||||||
|
Arguments:
|
||||||
|
|
||||||
|
* _name_: theme name (for example `+light+` or a custom name)
|
||||||
|
* _overrides_: hashtable mapping full option names
|
||||||
|
(e.g. `+irc.color.input_nick+`) to their string values; the caller
|
||||||
|
retains ownership and may free the hashtable right after the call
|
||||||
|
|
||||||
|
Return value:
|
||||||
|
|
||||||
|
* pointer to the registered theme (existing or newly created), NULL on
|
||||||
|
error
|
||||||
|
|
||||||
|
C example:
|
||||||
|
|
||||||
|
[source,c]
|
||||||
|
----
|
||||||
|
struct t_hashtable *overrides = weechat_hashtable_new (
|
||||||
|
8,
|
||||||
|
WEECHAT_HASHTABLE_STRING,
|
||||||
|
WEECHAT_HASHTABLE_STRING,
|
||||||
|
NULL, NULL);
|
||||||
|
if (overrides)
|
||||||
|
{
|
||||||
|
weechat_hashtable_set (overrides, "irc.color.input_nick", "cyan");
|
||||||
|
weechat_hashtable_set (overrides, "irc.color.topic_old", "darkgray");
|
||||||
|
weechat_theme_register ("light", overrides);
|
||||||
|
weechat_hashtable_free (overrides);
|
||||||
|
}
|
||||||
|
----
|
||||||
|
|
||||||
|
Script (Python):
|
||||||
|
|
||||||
|
[source,python]
|
||||||
|
----
|
||||||
|
# prototype
|
||||||
|
def theme_register(name: str, overrides: Dict[str, str]) -> str: ...
|
||||||
|
|
||||||
|
# example
|
||||||
|
weechat.theme_register("light", {
|
||||||
|
"irc.color.input_nick": "cyan",
|
||||||
|
"irc.color.topic_old": "darkgray",
|
||||||
|
})
|
||||||
|
----
|
||||||
|
|
||||||
|
[NOTE]
|
||||||
|
Only options that have the _themable_ flag will be set by `/theme apply`.
|
||||||
|
All `*.color.*` options are themable by default; string options that
|
||||||
|
hold `+${color:...}+` references are explicitly opted in. Entries
|
||||||
|
targeting non-themable options are silently skipped at apply-time with
|
||||||
|
a warning logged to the _core_ buffer.
|
||||||
|
|
||||||
|
[NOTE]
|
||||||
|
When called from a script, the contribution is automatically dropped
|
||||||
|
when the script unloads (no manual cleanup is needed).
|
||||||
|
|
||||||
[[key_bindings]]
|
[[key_bindings]]
|
||||||
=== Key bindings
|
=== Key bindings
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
@@ -541,7 +541,8 @@ HTTP/1.1 200 OK
|
|||||||
"plugin": "core",
|
"plugin": "core",
|
||||||
"name": "weechat"
|
"name": "weechat"
|
||||||
},
|
},
|
||||||
"keys": []
|
"keys": [],
|
||||||
|
"last_read_line_id": -1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 1709932823423765,
|
"id": 1709932823423765,
|
||||||
@@ -571,7 +572,8 @@ HTTP/1.1 200 OK
|
|||||||
"tls_version": "TLS1.3",
|
"tls_version": "TLS1.3",
|
||||||
"host": "~alice@example.com"
|
"host": "~alice@example.com"
|
||||||
},
|
},
|
||||||
"keys": []
|
"keys": [],
|
||||||
|
"last_read_line_id": -1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 1709932823649069,
|
"id": 1709932823649069,
|
||||||
@@ -599,7 +601,8 @@ HTTP/1.1 200 OK
|
|||||||
"nick": "alice",
|
"nick": "alice",
|
||||||
"host": "~alice@example.com"
|
"host": "~alice@example.com"
|
||||||
},
|
},
|
||||||
"keys": []
|
"keys": [],
|
||||||
|
"last_read_line_id": -1
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
----
|
----
|
||||||
@@ -655,7 +658,8 @@ HTTP/1.1 200 OK
|
|||||||
"message": "Plugins loaded: alias, buflist, charset, exec, fifo, fset, guile, irc, javascript, logger, lua, perl, php, python, relay, ruby, script, spell, tcl, trigger, typing, xfer",
|
"message": "Plugins loaded: alias, buflist, charset, exec, fifo, fset, guile, irc, javascript, logger, lua, perl, php, python, relay, ruby, script, spell, tcl, trigger, typing, xfer",
|
||||||
"tags": []
|
"tags": []
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"last_read_line_id": -1
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
|
|
||||||
@@ -702,6 +706,7 @@ HTTP/1.1 200 OK
|
|||||||
"host": "~alice@example.com"
|
"host": "~alice@example.com"
|
||||||
},
|
},
|
||||||
"keys": [],
|
"keys": [],
|
||||||
|
"last_read_line_id": -1,
|
||||||
"nicklist_root": {
|
"nicklist_root": {
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"parent_group_id": -1,
|
"parent_group_id": -1,
|
||||||
@@ -900,7 +905,8 @@ HTTP/1.1 200 OK
|
|||||||
"key": "up",
|
"key": "up",
|
||||||
"command": "/fset -up"
|
"command": "/fset -up"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"last_read_line_id": -1
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
|||||||
+147
-2
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
@@ -210,7 +210,7 @@ WeeChat:
|
|||||||
| asciidoctor | ≥ 1.5.4
|
| asciidoctor | ≥ 1.5.4
|
||||||
| Build man page and documentation.
|
| Build man page and documentation.
|
||||||
|
|
||||||
| ruby-pygments.rb |
|
| python3-pygments, ruby-pygments.rb |
|
||||||
| Build documentation.
|
| Build documentation.
|
||||||
|
|
||||||
| libcpputest-dev | ≥ 3.4
|
| libcpputest-dev | ≥ 3.4
|
||||||
@@ -2185,6 +2185,151 @@ Example of bold with terminal foreground color:
|
|||||||
/set weechat.color.status_time *99999
|
/set weechat.color.status_time *99999
|
||||||
----
|
----
|
||||||
|
|
||||||
|
[[themes]]
|
||||||
|
=== Themes
|
||||||
|
|
||||||
|
A theme is a named bundle of option overrides that can be applied with
|
||||||
|
the <<command_weechat_theme,/theme>> command. WeeChat ships a built-in
|
||||||
|
`"light"` theme tuned for light-background terminals and supports
|
||||||
|
user-defined themes loaded transiently from files.
|
||||||
|
|
||||||
|
[[themes_themable_options]]
|
||||||
|
==== Themable options
|
||||||
|
|
||||||
|
Themes can only set options marked as _themable_. All `*.color.*`
|
||||||
|
options are themable by default; a few string options that hold format
|
||||||
|
expressions with `+${color:...}+` references (such as
|
||||||
|
`+weechat.color.chat_nick_colors+`, `+weechat.look.prefix_error+` or the
|
||||||
|
`+buflist.format.*+` formats) are explicitly opted in.
|
||||||
|
|
||||||
|
You can list the full themable surface area from the
|
||||||
|
<<command_fset_fset,/fset>> buffer with the `+t:themable+` filter.
|
||||||
|
|
||||||
|
[[themes_apply]]
|
||||||
|
==== Applying a theme
|
||||||
|
|
||||||
|
To switch to the built-in light-background theme:
|
||||||
|
|
||||||
|
----
|
||||||
|
/theme apply light
|
||||||
|
----
|
||||||
|
|
||||||
|
The current state of every themable option is saved beforehand to a
|
||||||
|
backup theme file named like `+backup-YYYYMMDD-HHMMSS-uuuuuu+` in
|
||||||
|
directory `+themes+` inside the WeeChat configuration directory, so the
|
||||||
|
previous look can be restored at any time with:
|
||||||
|
|
||||||
|
----
|
||||||
|
/theme apply backup-YYYYMMDD-HHMMSS-uuuuuu
|
||||||
|
----
|
||||||
|
|
||||||
|
Backup creation can be disabled (not recommended):
|
||||||
|
|
||||||
|
----
|
||||||
|
/set weechat.look.theme_backup off
|
||||||
|
----
|
||||||
|
|
||||||
|
If backup is enabled and the backup file cannot be written, the apply
|
||||||
|
is aborted before any option is changed.
|
||||||
|
|
||||||
|
The name of the last applied theme is stored in
|
||||||
|
`+weechat.look.theme+` (informational only; not re-applied at startup).
|
||||||
|
|
||||||
|
[[themes_reset]]
|
||||||
|
==== Resetting to defaults
|
||||||
|
|
||||||
|
To restore the look shipped with WeeChat, reset every themable option
|
||||||
|
to its default value:
|
||||||
|
|
||||||
|
----
|
||||||
|
/theme reset
|
||||||
|
----
|
||||||
|
|
||||||
|
A backup is written first (same gate as `+/theme apply+`); on backup
|
||||||
|
failure the reset is aborted before any option is changed.
|
||||||
|
`+weechat.look.theme+` is cleared too.
|
||||||
|
|
||||||
|
[[themes_save_delete]]
|
||||||
|
==== Saving and deleting user themes
|
||||||
|
|
||||||
|
Save the current themable options as a new user theme file:
|
||||||
|
|
||||||
|
----
|
||||||
|
/theme save mytheme
|
||||||
|
----
|
||||||
|
|
||||||
|
Every themable option is written, so the file is self-contained and
|
||||||
|
applies the exact same look on any WeeChat, regardless of its current
|
||||||
|
configuration.
|
||||||
|
|
||||||
|
Reserved names (built-in theme names like `+light+` and any name
|
||||||
|
starting with `+backup-+`) are refused. Files live at
|
||||||
|
`+${weechat_config_dir}/themes/<name>.theme+`.
|
||||||
|
|
||||||
|
Rename a user theme (typical use: keep a useful automatic backup
|
||||||
|
under a meaningful name):
|
||||||
|
|
||||||
|
----
|
||||||
|
/theme rename backup-20260525-094210-123456 mybackup
|
||||||
|
----
|
||||||
|
|
||||||
|
Built-in themes have no file and cannot be renamed; the target name
|
||||||
|
cannot match a built-in name or start with `+backup-+`, and the
|
||||||
|
target file must not already exist. The `+[info]+` `+name+` field
|
||||||
|
inside the file is rewritten so `/theme info` reports the new name
|
||||||
|
consistently.
|
||||||
|
|
||||||
|
Delete a user theme:
|
||||||
|
|
||||||
|
----
|
||||||
|
/theme delete mytheme
|
||||||
|
----
|
||||||
|
|
||||||
|
This removes the file on disk; built-in themes cannot be deleted.
|
||||||
|
|
||||||
|
[[themes_file_format]]
|
||||||
|
==== Theme file format
|
||||||
|
|
||||||
|
A theme file is INI-like with two sections:
|
||||||
|
|
||||||
|
----
|
||||||
|
[info]
|
||||||
|
name = "solarized_light"
|
||||||
|
description = "Light-background theme inspired by Solarized"
|
||||||
|
date = "2026-05-25 09:42:10"
|
||||||
|
weechat = "4.10.0-dev"
|
||||||
|
|
||||||
|
[options]
|
||||||
|
weechat.color.chat = "darkgray"
|
||||||
|
weechat.color.separator = "blue"
|
||||||
|
irc.color.input_nick = "magenta"
|
||||||
|
buflist.format.number = "${color:28}${number}${if:${number_displayed}?.: }"
|
||||||
|
----
|
||||||
|
|
||||||
|
`+[info]+` is informational metadata shown by `/theme info`. `+[options]+`
|
||||||
|
holds the actual overrides; keys are the full option names that would
|
||||||
|
appear in `/set`. String values can be enclosed in double or single
|
||||||
|
quotes; quotes are stripped at parse time. Non-themable options listed
|
||||||
|
in a theme file are refused at apply time and logged to the core
|
||||||
|
buffer (so a `.theme` file imported from an untrusted source cannot
|
||||||
|
overwrite passwords, autoload lists, or startup commands).
|
||||||
|
|
||||||
|
User theme files are never cached: on every `/theme apply <name>` the
|
||||||
|
file is parsed, applied, and freed.
|
||||||
|
|
||||||
|
[[themes_resolution]]
|
||||||
|
==== Resolution order
|
||||||
|
|
||||||
|
When `+/theme apply <name>+` is run:
|
||||||
|
|
||||||
|
* If `+${weechat_config_dir}/themes/<name>.theme+` exists, the file
|
||||||
|
is parsed and used (it shadows any built-in with the same name).
|
||||||
|
* Otherwise the built-in theme registry is consulted; built-ins are
|
||||||
|
registered programmatically by core, plugins and scripts (see the
|
||||||
|
plugin and scripting documentation for `+weechat_theme_register+`).
|
||||||
|
|
||||||
|
If neither source provides the name, the apply is refused.
|
||||||
|
|
||||||
[[charset]]
|
[[charset]]
|
||||||
=== Charset
|
=== Charset
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
// SPDX-FileCopyrightText: 2021 Victorhck <victorhck.mailbox.org>
|
// SPDX-FileCopyrightText: 2021 Victorhck <victorhck.mailbox.org>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
@@ -454,7 +454,7 @@ información sobre la gestión de los colores.
|
|||||||
[[search_text]]
|
[[search_text]]
|
||||||
=== ¿Cómo busco texto en un buffer (como /lastlog en irssi)?
|
=== ¿Cómo busco texto en un buffer (como /lastlog en irssi)?
|
||||||
|
|
||||||
La tecla predeterminada es kbd:[Ctrl+r] (el comando es: `+/input texto_a_buscar_aquí+`).
|
La tecla predeterminada es kbd:[Ctrl+s] (el comando es: `+/input texto_a_buscar_aquí+`).
|
||||||
Y para saltar a los textos resaltados: kbd:[Alt+p] / kbd:[Alt+n].
|
Y para saltar a los textos resaltados: kbd:[Alt+p] / kbd:[Alt+n].
|
||||||
|
|
||||||
Vea la link:weechat_user.en.html#key_bindings[Guía del usuario / Atajos de teclado ^↗^^]
|
Vea la link:weechat_user.en.html#key_bindings[Guía del usuario / Atajos de teclado ^↗^^]
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
// SPDX-FileCopyrightText: 2012 Lázaro A. <uranio-235@myopera.com>
|
// SPDX-FileCopyrightText: 2012 Lázaro A. <uranio-235@myopera.com>
|
||||||
// SPDX-FileCopyrightText: 2021 Victorhck <victorhck@mailbox.org>
|
// SPDX-FileCopyrightText: 2021 Victorhck <victorhck@mailbox.org>
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
@@ -9,7 +9,7 @@ https://weechat.org/doc/[guide utilisateur de WeeChat].
|
|||||||
|
|
||||||
Avec l'extension irc, vous pouvez vous connecter à un serveur avec une URL, comme ceci :
|
Avec l'extension irc, vous pouvez vous connecter à un serveur avec une URL, comme ceci :
|
||||||
|
|
||||||
irc[6][s]://[[pseudo][:motdepasse]@]serveur[:port][/#canal1[,#canal2...]]
|
irc[6][s]://[[pseudo][:mot_de_passe]@]serveur[:port][/#canal1[,#canal2...]]
|
||||||
|
|
||||||
Pour rejoindre le canal IRC de support WeeChat avec le pseudo "monpseudo" :
|
Pour rejoindre le canal IRC de support WeeChat avec le pseudo "monpseudo" :
|
||||||
|
|
||||||
@@ -106,7 +106,7 @@ WeeChat est écrit par Sébastien Helleu et des contributeurs (la liste complèt
|
|||||||
est dans le fichier AUTHORS.md).
|
est dans le fichier AUTHORS.md).
|
||||||
|
|
||||||
// REUSE-IgnoreStart
|
// REUSE-IgnoreStart
|
||||||
Copyright (C) 2003-2025 {author}
|
Copyright (C) 2003-2026 {author}
|
||||||
// REUSE-IgnoreEnd
|
// REUSE-IgnoreEnd
|
||||||
|
|
||||||
WeeChat est un logiciel libre ; vous pouvez le redistribuer et/ou le modifier
|
WeeChat est un logiciel libre ; vous pouvez le redistribuer et/ou le modifier
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
@@ -129,6 +129,7 @@ Le cœur de WeeChat est situé dans les répertoires suivants :
|
|||||||
|===
|
|===
|
||||||
| Chemin/fichier | Description
|
| Chemin/fichier | Description
|
||||||
| core/ | Fonctions du cœur : point d'entrée, structures internes.
|
| core/ | Fonctions du cœur : point d'entrée, structures internes.
|
||||||
|
| core-args.c | Paramètres de ligne de commande.
|
||||||
| core-arraylist.c | Listes avec tableau (« arraylists »).
|
| core-arraylist.c | Listes avec tableau (« arraylists »).
|
||||||
| core-backtrace.c | Afficher une trace après un plantage.
|
| core-backtrace.c | Afficher une trace après un plantage.
|
||||||
| core-calc.c | Calcul du résultat d'expressions.
|
| core-calc.c | Calcul du résultat d'expressions.
|
||||||
@@ -616,7 +617,7 @@ Exemple en C :
|
|||||||
[source,c]
|
[source,c]
|
||||||
----
|
----
|
||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2025 Your Name <your@email.com>
|
* SPDX-FileCopyrightText: 2026 Your Name <your@email.com>
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*
|
*
|
||||||
@@ -659,9 +660,9 @@ Exemple :
|
|||||||
[source,c]
|
[source,c]
|
||||||
----
|
----
|
||||||
/*
|
/*
|
||||||
* Checks if a string with boolean value is valid.
|
* Check if a string with boolean value is valid.
|
||||||
*
|
*
|
||||||
* Returns:
|
* Return:
|
||||||
* 1: boolean value is valid
|
* 1: boolean value is valid
|
||||||
* 0: boolean value is NOT valid
|
* 0: boolean value is NOT valid
|
||||||
*/
|
*/
|
||||||
@@ -942,9 +943,9 @@ Exemple : création d'une nouvelle fenêtre (de _src/gui/gui-window.c_) :
|
|||||||
[source,c]
|
[source,c]
|
||||||
----
|
----
|
||||||
/*
|
/*
|
||||||
* Creates a new window.
|
* Create a new window.
|
||||||
*
|
*
|
||||||
* Returns pointer to new window, NULL if error.
|
* Return pointer to new window, NULL if error.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
struct t_gui_window *
|
struct t_gui_window *
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
@@ -457,7 +457,7 @@ pour plus d'information sur la gestion des couleurs.
|
|||||||
[[search_text]]
|
[[search_text]]
|
||||||
=== Comment puis-je chercher du texte dans le tampon (comme /lastlog dans irssi) ?
|
=== Comment puis-je chercher du texte dans le tampon (comme /lastlog dans irssi) ?
|
||||||
|
|
||||||
La touche par défaut est kbd:[Ctrl+r] (la commande est : `+/input search_text_here+`).
|
La touche par défaut est kbd:[Ctrl+s] (la commande est : `+/input search_text_here+`).
|
||||||
Et sauter aux highlights : kbd:[Alt+p] / kbd:[Alt+n].
|
Et sauter aux highlights : kbd:[Alt+p] / kbd:[Alt+n].
|
||||||
|
|
||||||
Voir le link:weechat_user.fr.html#key_bindings[Guide utilisateur / Raccourcis clavier par défaut ^↗^^]
|
Voir le link:weechat_user.fr.html#key_bindings[Guide utilisateur / Raccourcis clavier par défaut ^↗^^]
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
@@ -9771,6 +9771,95 @@ elif rc == weechat.WEECHAT_CONFIG_OPTION_UNSET_ERROR:
|
|||||||
# ...
|
# ...
|
||||||
----
|
----
|
||||||
|
|
||||||
|
[[themes]]
|
||||||
|
=== Thèmes
|
||||||
|
|
||||||
|
Fonctions permettant de contribuer des surcharges d'options de couleur
|
||||||
|
(et autres options modifiables par un thème) à des thèmes intégrés.
|
||||||
|
Voir la section
|
||||||
|
link:weechat_user.fr.html#themes[guide utilisateur / Thèmes] pour le
|
||||||
|
côté utilisateur final et la commande `+/theme+`.
|
||||||
|
|
||||||
|
==== theme_register
|
||||||
|
|
||||||
|
_WeeChat ≥ 4.10.0._
|
||||||
|
|
||||||
|
Enregistrer une contribution de surcharges d'options sous un thème
|
||||||
|
nommé. L'extension appelante est le propriétaire de la contribution ;
|
||||||
|
les appels suivants avec le même nom de thème depuis la même extension
|
||||||
|
sont fusionnés dans la contribution existante (en cas de doublons, les
|
||||||
|
dernières clés gagnent).
|
||||||
|
|
||||||
|
Lorsque l'extension appelante est déchargée, toutes ses contributions
|
||||||
|
sont automatiquement retirées de tous les thèmes.
|
||||||
|
|
||||||
|
Prototype :
|
||||||
|
|
||||||
|
[source,c]
|
||||||
|
----
|
||||||
|
struct t_theme *weechat_theme_register (const char *name,
|
||||||
|
struct t_hashtable *overrides);
|
||||||
|
----
|
||||||
|
|
||||||
|
Paramètres :
|
||||||
|
|
||||||
|
* _name_ : nom du thème (par exemple `+light+` ou un nom personnalisé)
|
||||||
|
* _overrides_ : table de hachage associant des noms d'options complets
|
||||||
|
(par exemple `+irc.color.input_nick+`) à leurs valeurs chaîne ;
|
||||||
|
l'appelant en conserve la propriété et peut la libérer juste après
|
||||||
|
l'appel
|
||||||
|
|
||||||
|
Valeur de retour :
|
||||||
|
|
||||||
|
* pointeur vers le thème enregistré (existant ou nouvellement créé),
|
||||||
|
NULL en cas d'erreur
|
||||||
|
|
||||||
|
Exemple en C :
|
||||||
|
|
||||||
|
[source,c]
|
||||||
|
----
|
||||||
|
struct t_hashtable *overrides = weechat_hashtable_new (
|
||||||
|
8,
|
||||||
|
WEECHAT_HASHTABLE_STRING,
|
||||||
|
WEECHAT_HASHTABLE_STRING,
|
||||||
|
NULL, NULL);
|
||||||
|
if (overrides)
|
||||||
|
{
|
||||||
|
weechat_hashtable_set (overrides, "irc.color.input_nick", "cyan");
|
||||||
|
weechat_hashtable_set (overrides, "irc.color.topic_old", "darkgray");
|
||||||
|
weechat_theme_register ("light", overrides);
|
||||||
|
weechat_hashtable_free (overrides);
|
||||||
|
}
|
||||||
|
----
|
||||||
|
|
||||||
|
Script (Python) :
|
||||||
|
|
||||||
|
[source,python]
|
||||||
|
----
|
||||||
|
# prototype
|
||||||
|
def theme_register(name: str, overrides: Dict[str, str]) -> str: ...
|
||||||
|
|
||||||
|
# exemple
|
||||||
|
weechat.theme_register("light", {
|
||||||
|
"irc.color.input_nick": "cyan",
|
||||||
|
"irc.color.topic_old": "darkgray",
|
||||||
|
})
|
||||||
|
----
|
||||||
|
|
||||||
|
[NOTE]
|
||||||
|
Seules les options possédant le flag _themable_ seront modifiées par
|
||||||
|
`/theme apply`. Toutes les options `*.color.*` sont modifiables par
|
||||||
|
défaut ; les options de type chaîne contenant des références
|
||||||
|
`+${color:...}+` sont explicitement déclarées comme modifiables. Les
|
||||||
|
entrées ciblant des options non modifiables sont silencieusement
|
||||||
|
ignorées au moment de l'application avec un avertissement écrit sur
|
||||||
|
le tampon _core_.
|
||||||
|
|
||||||
|
[NOTE]
|
||||||
|
Lorsqu'elle est appelée depuis un script, la contribution est
|
||||||
|
automatiquement retirée lorsque le script est déchargé (aucun nettoyage
|
||||||
|
manuel n'est nécessaire).
|
||||||
|
|
||||||
[[key_bindings]]
|
[[key_bindings]]
|
||||||
=== Associations de touches
|
=== Associations de touches
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
@@ -551,7 +551,8 @@ HTTP/1.1 200 OK
|
|||||||
"plugin": "core",
|
"plugin": "core",
|
||||||
"name": "weechat"
|
"name": "weechat"
|
||||||
},
|
},
|
||||||
"keys": []
|
"keys": [],
|
||||||
|
"last_read_line_id": -1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 1709932823423765,
|
"id": 1709932823423765,
|
||||||
@@ -580,7 +581,8 @@ HTTP/1.1 200 OK
|
|||||||
"tls_version": "TLS1.3",
|
"tls_version": "TLS1.3",
|
||||||
"host": "~alice@example.com"
|
"host": "~alice@example.com"
|
||||||
},
|
},
|
||||||
"keys": []
|
"keys": [],
|
||||||
|
"last_read_line_id": -1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 1709932823649069,
|
"id": 1709932823649069,
|
||||||
@@ -607,7 +609,8 @@ HTTP/1.1 200 OK
|
|||||||
"nick": "alice",
|
"nick": "alice",
|
||||||
"host": "~alice@example.com"
|
"host": "~alice@example.com"
|
||||||
},
|
},
|
||||||
"keys": []
|
"keys": [],
|
||||||
|
"last_read_line_id": -1
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
----
|
----
|
||||||
@@ -663,7 +666,8 @@ HTTP/1.1 200 OK
|
|||||||
"message": "Plugins loaded: alias, buflist, charset, exec, fifo, fset, guile, irc, javascript, logger, lua, perl, php, python, relay, ruby, script, spell, tcl, trigger, typing, xfer",
|
"message": "Plugins loaded: alias, buflist, charset, exec, fifo, fset, guile, irc, javascript, logger, lua, perl, php, python, relay, ruby, script, spell, tcl, trigger, typing, xfer",
|
||||||
"tags": []
|
"tags": []
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"last_read_line_id": -1
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
|
|
||||||
@@ -709,6 +713,7 @@ HTTP/1.1 200 OK
|
|||||||
"host": "~alice@example.com"
|
"host": "~alice@example.com"
|
||||||
},
|
},
|
||||||
"keys": [],
|
"keys": [],
|
||||||
|
"last_read_line_id": -1,
|
||||||
"nicklist_root": {
|
"nicklist_root": {
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"parent_group_id": -1,
|
"parent_group_id": -1,
|
||||||
@@ -906,7 +911,8 @@ HTTP/1.1 200 OK
|
|||||||
"key": "up",
|
"key": "up",
|
||||||
"command": "/fset -up"
|
"command": "/fset -up"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"last_read_line_id": -1
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
|||||||
+170
-10
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
@@ -208,7 +208,7 @@ Le tableau suivant liste les paquets optionnels pour compiler WeeChat :
|
|||||||
| asciidoctor | ≥ 1.5.4
|
| asciidoctor | ≥ 1.5.4
|
||||||
| Construction de la page man et de la documentation.
|
| Construction de la page man et de la documentation.
|
||||||
|
|
||||||
| ruby-pygments.rb |
|
| python3-pygments, ruby-pygments.rb |
|
||||||
| Construction de la documentation.
|
| Construction de la documentation.
|
||||||
|
|
||||||
| libcpputest-dev | ≥ 3.4
|
| libcpputest-dev | ≥ 3.4
|
||||||
@@ -2227,6 +2227,166 @@ Exemple de gras avec la couleur de texte du terminal :
|
|||||||
/set weechat.color.status_time *99999
|
/set weechat.color.status_time *99999
|
||||||
----
|
----
|
||||||
|
|
||||||
|
[[themes]]
|
||||||
|
=== Thèmes
|
||||||
|
|
||||||
|
Un thème est un ensemble nommé de surcharges d'options qui peut être
|
||||||
|
appliqué par la commande <<command_weechat_theme,/theme>>. WeeChat est
|
||||||
|
livré avec un thème intégré `"light"` adapté aux terminaux à fond clair
|
||||||
|
et permet de charger temporairement des thèmes utilisateur depuis des
|
||||||
|
fichiers.
|
||||||
|
|
||||||
|
[[themes_themable_options]]
|
||||||
|
==== Options modifiables par un thème
|
||||||
|
|
||||||
|
Les thèmes ne peuvent modifier que les options marquées comme
|
||||||
|
_themable_ (modifiables par un thème). Toutes les options `*.color.*`
|
||||||
|
le sont par défaut ; certaines options de type chaîne contenant des
|
||||||
|
références `+${color:...}+` (par exemple
|
||||||
|
`+weechat.color.chat_nick_colors+`, `+weechat.look.prefix_error+` ou les
|
||||||
|
formats `+buflist.format.*+`) sont explicitement déclarées comme
|
||||||
|
modifiables.
|
||||||
|
|
||||||
|
La liste complète des options modifiables peut être affichée depuis le
|
||||||
|
tampon <<command_fset_fset,/fset>> avec le filtre `+t:themable+`.
|
||||||
|
|
||||||
|
[[themes_apply]]
|
||||||
|
==== Appliquer un thème
|
||||||
|
|
||||||
|
Pour basculer vers le thème intégré pour fond clair :
|
||||||
|
|
||||||
|
----
|
||||||
|
/theme apply light
|
||||||
|
----
|
||||||
|
|
||||||
|
L'état actuel de toutes les options modifiables est sauvegardé au
|
||||||
|
préalable dans un fichier de sauvegarde nommé
|
||||||
|
`+backup-AAAAMMJJ-HHMMSS-uuuuuu+` dans le répertoire `+themes+` du
|
||||||
|
répertoire de configuration de WeeChat. L'apparence précédente peut
|
||||||
|
ainsi être restaurée à tout moment avec :
|
||||||
|
|
||||||
|
----
|
||||||
|
/theme apply backup-AAAAMMJJ-HHMMSS-uuuuuu
|
||||||
|
----
|
||||||
|
|
||||||
|
La création de la sauvegarde peut être désactivée (déconseillé) :
|
||||||
|
|
||||||
|
----
|
||||||
|
/set weechat.look.theme_backup off
|
||||||
|
----
|
||||||
|
|
||||||
|
Si la sauvegarde est activée et que le fichier ne peut pas être écrit,
|
||||||
|
l'application est annulée avant qu'aucune option ne soit modifiée.
|
||||||
|
|
||||||
|
Le nom du dernier thème appliqué est conservé dans
|
||||||
|
`+weechat.look.theme+` (à titre informatif uniquement ; il n'est pas
|
||||||
|
ré-appliqué au démarrage).
|
||||||
|
|
||||||
|
[[themes_reset]]
|
||||||
|
==== Réinitialiser aux valeurs par défaut
|
||||||
|
|
||||||
|
Pour rétablir l'apparence d'origine livrée avec WeeChat, réinitialiser
|
||||||
|
toutes les options modifiables à leur valeur par défaut :
|
||||||
|
|
||||||
|
----
|
||||||
|
/theme reset
|
||||||
|
----
|
||||||
|
|
||||||
|
Une sauvegarde est écrite au préalable (même garde-fou que
|
||||||
|
`+/theme apply+`) ; si la sauvegarde échoue, la réinitialisation est
|
||||||
|
annulée avant qu'aucune option ne soit modifiée. L'option
|
||||||
|
`+weechat.look.theme+` est également remise à vide.
|
||||||
|
|
||||||
|
[[themes_save_delete]]
|
||||||
|
==== Sauvegarder et supprimer des thèmes utilisateur
|
||||||
|
|
||||||
|
Sauvegarder l'état actuel des options modifiables en tant que nouveau
|
||||||
|
thème utilisateur :
|
||||||
|
|
||||||
|
----
|
||||||
|
/theme save monTheme
|
||||||
|
----
|
||||||
|
|
||||||
|
Toutes les options modifiables sont écrites, donc le fichier est
|
||||||
|
autonome et applique exactement le même aspect sur n'importe quel
|
||||||
|
WeeChat, quelle que soit sa configuration actuelle.
|
||||||
|
|
||||||
|
Les noms réservés (noms de thèmes intégrés comme `+light+` et tout nom
|
||||||
|
commençant par `+backup-+`) sont refusés. Les fichiers sont placés
|
||||||
|
dans `+${weechat_config_dir}/themes/<nom>.theme+`.
|
||||||
|
|
||||||
|
Renommer un thème utilisateur (usage typique : conserver une
|
||||||
|
sauvegarde automatique utile sous un nom plus parlant) :
|
||||||
|
|
||||||
|
----
|
||||||
|
/theme rename backup-20260525-094210-123456 maSauvegarde
|
||||||
|
----
|
||||||
|
|
||||||
|
Les thèmes intégrés n'ont pas de fichier et ne peuvent pas être
|
||||||
|
renommés ; le nom cible ne peut pas correspondre à un nom intégré ni
|
||||||
|
commencer par `+backup-+`, et le fichier cible ne doit pas déjà
|
||||||
|
exister. Le champ `+name+` de la section `+[info]+` à l'intérieur du
|
||||||
|
fichier est réécrit afin que `/theme info` affiche le nouveau nom de
|
||||||
|
manière cohérente.
|
||||||
|
|
||||||
|
Supprimer un thème utilisateur :
|
||||||
|
|
||||||
|
----
|
||||||
|
/theme delete monTheme
|
||||||
|
----
|
||||||
|
|
||||||
|
Cela supprime le fichier sur le disque ; les thèmes intégrés ne
|
||||||
|
peuvent pas être supprimés.
|
||||||
|
|
||||||
|
[[themes_file_format]]
|
||||||
|
==== Format du fichier de thème
|
||||||
|
|
||||||
|
Un fichier de thème est de type INI avec deux sections :
|
||||||
|
|
||||||
|
----
|
||||||
|
[info]
|
||||||
|
name = "solarized_light"
|
||||||
|
description = "Thème fond clair inspiré de Solarized"
|
||||||
|
date = "2026-05-25 09:42:10"
|
||||||
|
weechat = "4.10.0-dev"
|
||||||
|
|
||||||
|
[options]
|
||||||
|
weechat.color.chat = "darkgray"
|
||||||
|
weechat.color.separator = "blue"
|
||||||
|
irc.color.input_nick = "magenta"
|
||||||
|
buflist.format.number = "${color:28}${number}${if:${number_displayed}?.: }"
|
||||||
|
----
|
||||||
|
|
||||||
|
`+[info]+` est une section de métadonnées informatives affichées par
|
||||||
|
`/theme info`. `+[options]+` contient les surcharges réelles ; les clés
|
||||||
|
sont les noms complets d'options tels qu'affichés par `/set`. Les
|
||||||
|
valeurs de type chaîne peuvent être encadrées par des guillemets
|
||||||
|
simples ou doubles ; les guillemets sont retirés à l'analyse. Les
|
||||||
|
options non modifiables par un thème listées dans un fichier sont
|
||||||
|
refusées au moment de l'application et signalées sur le tampon _core_
|
||||||
|
(ainsi, un fichier `.theme` importé depuis une source non fiable ne
|
||||||
|
peut pas écraser des mots de passe, des listes d'auto-chargement ou
|
||||||
|
des commandes de démarrage).
|
||||||
|
|
||||||
|
Les fichiers de thème utilisateur ne sont jamais mis en cache : à
|
||||||
|
chaque `/theme apply <nom>`, le fichier est analysé, appliqué, puis
|
||||||
|
libéré.
|
||||||
|
|
||||||
|
[[themes_resolution]]
|
||||||
|
==== Ordre de résolution
|
||||||
|
|
||||||
|
Lors de l'exécution de `+/theme apply <nom>+` :
|
||||||
|
|
||||||
|
* Si `+${weechat_config_dir}/themes/<nom>.theme+` existe, le fichier
|
||||||
|
est analysé et utilisé (il masque tout thème intégré du même nom).
|
||||||
|
* Sinon, le registre des thèmes intégrés est consulté ; les thèmes
|
||||||
|
intégrés sont enregistrés par programmation par le cœur, les
|
||||||
|
extensions et les scripts (voir la documentation des extensions et
|
||||||
|
des scripts pour `+weechat_theme_register+`).
|
||||||
|
|
||||||
|
Si aucune des deux sources ne fournit le nom, l'application est
|
||||||
|
refusée.
|
||||||
|
|
||||||
[[charset]]
|
[[charset]]
|
||||||
=== Charset
|
=== Charset
|
||||||
|
|
||||||
@@ -3351,7 +3511,7 @@ Pour ajouter une donnée sécurisée, utilisez la commande `/secure set`, par
|
|||||||
exemple un mot de passe pour le serveur IRC _libera_ :
|
exemple un mot de passe pour le serveur IRC _libera_ :
|
||||||
|
|
||||||
----
|
----
|
||||||
/secure set libera motdepasse
|
/secure set libera mot_de_passe
|
||||||
----
|
----
|
||||||
|
|
||||||
Pour plus de confort, les données sécurisées peuvent être affichées dans un
|
Pour plus de confort, les données sécurisées peuvent être affichées dans un
|
||||||
@@ -4712,7 +4872,7 @@ Il est fortement recommandé de définir un mot de passe pour le relai, avec ces
|
|||||||
commandes :
|
commandes :
|
||||||
|
|
||||||
----
|
----
|
||||||
/secure set relay motdepasse
|
/secure set relay mot_de_passe
|
||||||
/set relay.network.password "${sec.data.relay}"
|
/set relay.network.password "${sec.data.relay}"
|
||||||
----
|
----
|
||||||
|
|
||||||
@@ -4793,7 +4953,7 @@ le nom interne du serveur dans la commande IRC "PASS", avec le format
|
|||||||
(voir l'exemple ci-dessous) :
|
(voir l'exemple ci-dessous) :
|
||||||
|
|
||||||
----
|
----
|
||||||
PASS serveur:motdepasse
|
PASS serveur:mot_de_passe
|
||||||
----
|
----
|
||||||
|
|
||||||
Exemple : proxy IRC avec TLS pour tout serveur (le client choisira) :
|
Exemple : proxy IRC avec TLS pour tout serveur (le client choisira) :
|
||||||
@@ -4809,7 +4969,7 @@ Exemple : proxy IRC sans TLS seulement pour le serveur "libera" :
|
|||||||
----
|
----
|
||||||
|
|
||||||
Maintenant vous pouvez vous connecter sur le port 8000 avec n'importe quel
|
Maintenant vous pouvez vous connecter sur le port 8000 avec n'importe quel
|
||||||
client IRC en utilisant le mot de passe "motdepasse" (ou "libera:motdepasse"
|
client IRC en utilisant le mot de passe "mot_de_passe" (ou "libera:mot_de_passe"
|
||||||
si aucun serveur n'a été spécifié dans le relai).
|
si aucun serveur n'a été spécifié dans le relai).
|
||||||
|
|
||||||
Par exemple si vous utilisez WeeChat comme client IRC du relai, avec un serveur
|
Par exemple si vous utilisez WeeChat comme client IRC du relai, avec un serveur
|
||||||
@@ -4822,7 +4982,7 @@ avec ces commandes :
|
|||||||
----
|
----
|
||||||
|
|
||||||
[[relay_api_protocol]]
|
[[relay_api_protocol]]
|
||||||
=== API protocol
|
=== Protocole API
|
||||||
|
|
||||||
L'extension Relay peut envoyer les données à un autre WeeChat ou une interface
|
L'extension Relay peut envoyer les données à un autre WeeChat ou une interface
|
||||||
distante avec un protocol HTTP de type API REST.
|
distante avec un protocol HTTP de type API REST.
|
||||||
@@ -4840,12 +5000,12 @@ Par exemple :
|
|||||||
----
|
----
|
||||||
|
|
||||||
Maintenant vous pouvez vous connecter sur le port 9000 avec une interface
|
Maintenant vous pouvez vous connecter sur le port 9000 avec une interface
|
||||||
distante en utilisant le mot de passe "motdepasse".
|
distante en utilisant le mot de passe "mot_de_passe".
|
||||||
|
|
||||||
Pour vous connecter à un relai _api_ avec WeeChat :
|
Pour vous connecter à un relai _api_ avec WeeChat :
|
||||||
|
|
||||||
----
|
----
|
||||||
/remote add weechat http://localhost:9000 -password=motdepasse
|
/remote add weechat http://localhost:9000 -password=mot_de_passe
|
||||||
/remote connect weechat
|
/remote connect weechat
|
||||||
----
|
----
|
||||||
|
|
||||||
@@ -4882,7 +5042,7 @@ Par exemple :
|
|||||||
----
|
----
|
||||||
|
|
||||||
Maintenant vous pouvez vous connecter sur le port 9500 avec une interface
|
Maintenant vous pouvez vous connecter sur le port 9500 avec une interface
|
||||||
distante en utilisant le mot de passe "motdepasse".
|
distante en utilisant le mot de passe "mot_de_passe".
|
||||||
|
|
||||||
[[relay_websocket]]
|
[[relay_websocket]]
|
||||||
=== WebSocket
|
=== WebSocket
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
// SPDX-FileCopyrightText: 2009-2012 Marco Paolone <marcopaolone@gmail.com>
|
// SPDX-FileCopyrightText: 2009-2012 Marco Paolone <marcopaolone@gmail.com>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
@@ -108,7 +108,7 @@ WeeChat is written by Sébastien Helleu and contributors (complete list is in
|
|||||||
the AUTHORS.md file).
|
the AUTHORS.md file).
|
||||||
|
|
||||||
// REUSE-IgnoreStart
|
// REUSE-IgnoreStart
|
||||||
Copyright (C) 2003-2025 {author}
|
Copyright (C) 2003-2026 {author}
|
||||||
// REUSE-IgnoreEnd
|
// REUSE-IgnoreEnd
|
||||||
|
|
||||||
WeeChat is free software; you can redistribute it and/or modify
|
WeeChat is free software; you can redistribute it and/or modify
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
// SPDX-FileCopyrightText: 2009-2012 Marco Paolone <marcopaolone@gmail.com>
|
// SPDX-FileCopyrightText: 2009-2012 Marco Paolone <marcopaolone@gmail.com>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
// SPDX-FileCopyrightText: 2009-2012 Marco Paolone <marcopaolone@gmail.com>
|
// SPDX-FileCopyrightText: 2009-2012 Marco Paolone <marcopaolone@gmail.com>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
// SPDX-FileCopyrightText: 2009-2013 Marco Paolone <marcopaolone@gmail.com>
|
// SPDX-FileCopyrightText: 2009-2013 Marco Paolone <marcopaolone@gmail.com>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
@@ -490,7 +490,7 @@ for more information about colors management.
|
|||||||
[[search_text]]
|
[[search_text]]
|
||||||
=== Come posso cercare testo nel buffer (come /lastlog con irssi)?
|
=== Come posso cercare testo nel buffer (come /lastlog con irssi)?
|
||||||
|
|
||||||
Il tasto predefinito è kbd:[Ctrl+r] (il comando è: `+/input search_text_here+`).
|
Il tasto predefinito è kbd:[Ctrl+s] (il comando è: `+/input search_text_here+`).
|
||||||
E per passare alle notifiche: kbd:[Alt+p] / kbd:[Alt+n].
|
E per passare alle notifiche: kbd:[Alt+p] / kbd:[Alt+n].
|
||||||
|
|
||||||
// TRANSLATION MISSING
|
// TRANSLATION MISSING
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
// SPDX-FileCopyrightText: 2010-2012 Marco Paolone <marcopaolone@gmail.com>
|
// SPDX-FileCopyrightText: 2010-2012 Marco Paolone <marcopaolone@gmail.com>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
@@ -9967,6 +9967,90 @@ elif rc == weechat.WEECHAT_CONFIG_OPTION_UNSET_ERROR:
|
|||||||
# ...
|
# ...
|
||||||
----
|
----
|
||||||
|
|
||||||
|
// TRANSLATION MISSING
|
||||||
|
[[themes]]
|
||||||
|
=== Themes
|
||||||
|
|
||||||
|
Functions to contribute color (and other themable option) overrides to
|
||||||
|
built-in themes. See the
|
||||||
|
link:weechat_user.it.html#themes[user's guide / Themes] section for the
|
||||||
|
end-user side and the `+/theme+` command.
|
||||||
|
|
||||||
|
==== theme_register
|
||||||
|
|
||||||
|
_WeeChat ≥ 4.10.0._
|
||||||
|
|
||||||
|
Register a contribution of option overrides under a named theme. The
|
||||||
|
caller's plugin is the owner of the contribution; subsequent calls
|
||||||
|
with the same theme name from the same plugin merge into the existing
|
||||||
|
contribution (later keys win for duplicates).
|
||||||
|
|
||||||
|
When the calling plugin is unloaded, all its contributions are
|
||||||
|
automatically dropped from every theme.
|
||||||
|
|
||||||
|
Prototype:
|
||||||
|
|
||||||
|
[source,c]
|
||||||
|
----
|
||||||
|
struct t_theme *weechat_theme_register (const char *name,
|
||||||
|
struct t_hashtable *overrides);
|
||||||
|
----
|
||||||
|
|
||||||
|
Arguments:
|
||||||
|
|
||||||
|
* _name_: theme name (for example `+light+` or a custom name)
|
||||||
|
* _overrides_: hashtable mapping full option names
|
||||||
|
(e.g. `+irc.color.input_nick+`) to their string values; the caller
|
||||||
|
retains ownership and may free the hashtable right after the call
|
||||||
|
|
||||||
|
Return value:
|
||||||
|
|
||||||
|
* pointer to the registered theme (existing or newly created), NULL on
|
||||||
|
error
|
||||||
|
|
||||||
|
C example:
|
||||||
|
|
||||||
|
[source,c]
|
||||||
|
----
|
||||||
|
struct t_hashtable *overrides = weechat_hashtable_new (
|
||||||
|
8,
|
||||||
|
WEECHAT_HASHTABLE_STRING,
|
||||||
|
WEECHAT_HASHTABLE_STRING,
|
||||||
|
NULL, NULL);
|
||||||
|
if (overrides)
|
||||||
|
{
|
||||||
|
weechat_hashtable_set (overrides, "irc.color.input_nick", "cyan");
|
||||||
|
weechat_hashtable_set (overrides, "irc.color.topic_old", "darkgray");
|
||||||
|
weechat_theme_register ("light", overrides);
|
||||||
|
weechat_hashtable_free (overrides);
|
||||||
|
}
|
||||||
|
----
|
||||||
|
|
||||||
|
Script (Python):
|
||||||
|
|
||||||
|
[source,python]
|
||||||
|
----
|
||||||
|
# prototype
|
||||||
|
def theme_register(name: str, overrides: Dict[str, str]) -> str: ...
|
||||||
|
|
||||||
|
# example
|
||||||
|
weechat.theme_register("light", {
|
||||||
|
"irc.color.input_nick": "cyan",
|
||||||
|
"irc.color.topic_old": "darkgray",
|
||||||
|
})
|
||||||
|
----
|
||||||
|
|
||||||
|
[NOTE]
|
||||||
|
Only options that have the _themable_ flag will be set by `/theme apply`.
|
||||||
|
All `*.color.*` options are themable by default; string options that
|
||||||
|
hold `+${color:...}+` references are explicitly opted in. Entries
|
||||||
|
targeting non-themable options are silently skipped at apply-time with
|
||||||
|
a warning logged to the _core_ buffer.
|
||||||
|
|
||||||
|
[NOTE]
|
||||||
|
When called from a script, the contribution is automatically dropped
|
||||||
|
when the script unloads (no manual cleanup is needed).
|
||||||
|
|
||||||
[[key_bindings]]
|
[[key_bindings]]
|
||||||
=== Combinazione tasti
|
=== Combinazione tasti
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
// SPDX-FileCopyrightText: 2009-2013 Marco Paolone <marcopaolone@gmail.com>
|
// SPDX-FileCopyrightText: 2009-2013 Marco Paolone <marcopaolone@gmail.com>
|
||||||
// SPDX-FileCopyrightText: 2023 Mattia Ronchi <ronchimattia03@gmail.com>
|
// SPDX-FileCopyrightText: 2023 Mattia Ronchi <ronchimattia03@gmail.com>
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
// SPDX-FileCopyrightText: 2010-2013 Marco Paolone <marcopaolone@gmail.com>
|
// SPDX-FileCopyrightText: 2010-2013 Marco Paolone <marcopaolone@gmail.com>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|||||||
+148
-2
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
// SPDX-FileCopyrightText: 2009-2012 Marco Paolone <marcopaolone@gmail.com>
|
// SPDX-FileCopyrightText: 2009-2012 Marco Paolone <marcopaolone@gmail.com>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
@@ -245,7 +245,7 @@ WeeChat:
|
|||||||
| Build man page and documentation.
|
| Build man page and documentation.
|
||||||
|
|
||||||
// TRANSLATION MISSING
|
// TRANSLATION MISSING
|
||||||
| ruby-pygments.rb |
|
| python3-pygments, ruby-pygments.rb |
|
||||||
| Build documentation.
|
| Build documentation.
|
||||||
|
|
||||||
// TRANSLATION MISSING
|
// TRANSLATION MISSING
|
||||||
@@ -2439,6 +2439,152 @@ Esempio di grassetto con il colore di primo piano del terminale:
|
|||||||
/set weechat.color.status_time *99999
|
/set weechat.color.status_time *99999
|
||||||
----
|
----
|
||||||
|
|
||||||
|
// TRANSLATION MISSING
|
||||||
|
[[themes]]
|
||||||
|
=== Themes
|
||||||
|
|
||||||
|
A theme is a named bundle of option overrides that can be applied with
|
||||||
|
the <<command_weechat_theme,/theme>> command. WeeChat ships a built-in
|
||||||
|
`"light"` theme tuned for light-background terminals and supports
|
||||||
|
user-defined themes loaded transiently from files.
|
||||||
|
|
||||||
|
[[themes_themable_options]]
|
||||||
|
==== Themable options
|
||||||
|
|
||||||
|
Themes can only set options marked as _themable_. All `*.color.*`
|
||||||
|
options are themable by default; a few string options that hold format
|
||||||
|
expressions with `+${color:...}+` references (such as
|
||||||
|
`+weechat.color.chat_nick_colors+`, `+weechat.look.prefix_error+` or the
|
||||||
|
`+buflist.format.*+` formats) are explicitly opted in.
|
||||||
|
|
||||||
|
You can list the full themable surface area from the
|
||||||
|
<<command_fset_fset,/fset>> buffer with the `+t:themable+` filter.
|
||||||
|
|
||||||
|
[[themes_apply]]
|
||||||
|
==== Applying a theme
|
||||||
|
|
||||||
|
To switch to the built-in light-background theme:
|
||||||
|
|
||||||
|
----
|
||||||
|
/theme apply light
|
||||||
|
----
|
||||||
|
|
||||||
|
The current state of every themable option is saved beforehand to a
|
||||||
|
backup theme file named like `+backup-YYYYMMDD-HHMMSS-uuuuuu+` in
|
||||||
|
directory `+themes+` inside the WeeChat configuration directory, so the
|
||||||
|
previous look can be restored at any time with:
|
||||||
|
|
||||||
|
----
|
||||||
|
/theme apply backup-YYYYMMDD-HHMMSS-uuuuuu
|
||||||
|
----
|
||||||
|
|
||||||
|
Backup creation can be disabled (not recommended):
|
||||||
|
|
||||||
|
----
|
||||||
|
/set weechat.look.theme_backup off
|
||||||
|
----
|
||||||
|
|
||||||
|
If backup is enabled and the backup file cannot be written, the apply
|
||||||
|
is aborted before any option is changed.
|
||||||
|
|
||||||
|
The name of the last applied theme is stored in
|
||||||
|
`+weechat.look.theme+` (informational only; not re-applied at startup).
|
||||||
|
|
||||||
|
[[themes_reset]]
|
||||||
|
==== Resetting to defaults
|
||||||
|
|
||||||
|
To restore the look shipped with WeeChat, reset every themable option
|
||||||
|
to its default value:
|
||||||
|
|
||||||
|
----
|
||||||
|
/theme reset
|
||||||
|
----
|
||||||
|
|
||||||
|
A backup is written first (same gate as `+/theme apply+`); on backup
|
||||||
|
failure the reset is aborted before any option is changed.
|
||||||
|
`+weechat.look.theme+` is cleared too.
|
||||||
|
|
||||||
|
[[themes_save_delete]]
|
||||||
|
==== Saving and deleting user themes
|
||||||
|
|
||||||
|
Save the current themable options as a new user theme file:
|
||||||
|
|
||||||
|
----
|
||||||
|
/theme save mytheme
|
||||||
|
----
|
||||||
|
|
||||||
|
Every themable option is written, so the file is self-contained and
|
||||||
|
applies the exact same look on any WeeChat, regardless of its current
|
||||||
|
configuration.
|
||||||
|
|
||||||
|
Reserved names (built-in theme names like `+light+` and any name
|
||||||
|
starting with `+backup-+`) are refused. Files live at
|
||||||
|
`+${weechat_config_dir}/themes/<name>.theme+`.
|
||||||
|
|
||||||
|
Rename a user theme (typical use: keep a useful automatic backup
|
||||||
|
under a meaningful name):
|
||||||
|
|
||||||
|
----
|
||||||
|
/theme rename backup-20260525-094210-123456 mybackup
|
||||||
|
----
|
||||||
|
|
||||||
|
Built-in themes have no file and cannot be renamed; the target name
|
||||||
|
cannot match a built-in name or start with `+backup-+`, and the
|
||||||
|
target file must not already exist. The `+[info]+` `+name+` field
|
||||||
|
inside the file is rewritten so `/theme info` reports the new name
|
||||||
|
consistently.
|
||||||
|
|
||||||
|
Delete a user theme:
|
||||||
|
|
||||||
|
----
|
||||||
|
/theme delete mytheme
|
||||||
|
----
|
||||||
|
|
||||||
|
This removes the file on disk; built-in themes cannot be deleted.
|
||||||
|
|
||||||
|
[[themes_file_format]]
|
||||||
|
==== Theme file format
|
||||||
|
|
||||||
|
A theme file is INI-like with two sections:
|
||||||
|
|
||||||
|
----
|
||||||
|
[info]
|
||||||
|
name = "solarized_light"
|
||||||
|
description = "Light-background theme inspired by Solarized"
|
||||||
|
date = "2026-05-25 09:42:10"
|
||||||
|
weechat = "4.10.0-dev"
|
||||||
|
|
||||||
|
[options]
|
||||||
|
weechat.color.chat = "darkgray"
|
||||||
|
weechat.color.separator = "blue"
|
||||||
|
irc.color.input_nick = "magenta"
|
||||||
|
buflist.format.number = "${color:28}${number}${if:${number_displayed}?.: }"
|
||||||
|
----
|
||||||
|
|
||||||
|
`+[info]+` is informational metadata shown by `/theme info`. `+[options]+`
|
||||||
|
holds the actual overrides; keys are the full option names that would
|
||||||
|
appear in `/set`. String values can be enclosed in double or single
|
||||||
|
quotes; quotes are stripped at parse time. Non-themable options listed
|
||||||
|
in a theme file are refused at apply time and logged to the core
|
||||||
|
buffer (so a `.theme` file imported from an untrusted source cannot
|
||||||
|
overwrite passwords, autoload lists, or startup commands).
|
||||||
|
|
||||||
|
User theme files are never cached: on every `/theme apply <name>` the
|
||||||
|
file is parsed, applied, and freed.
|
||||||
|
|
||||||
|
[[themes_resolution]]
|
||||||
|
==== Resolution order
|
||||||
|
|
||||||
|
When `+/theme apply <name>+` is run:
|
||||||
|
|
||||||
|
* If `+${weechat_config_dir}/themes/<name>.theme+` exists, the file
|
||||||
|
is parsed and used (it shadows any built-in with the same name).
|
||||||
|
* Otherwise the built-in theme registry is consulted; built-ins are
|
||||||
|
registered programmatically by core, plugins and scripts (see the
|
||||||
|
plugin and scripting documentation for `+weechat_theme_register+`).
|
||||||
|
|
||||||
|
If neither source provides the name, the apply is refused.
|
||||||
|
|
||||||
[[charset]]
|
[[charset]]
|
||||||
=== Charset
|
=== Charset
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
// SPDX-FileCopyrightText: 2012-2019 Ryuunosuke Ayanokouzi <i38w7i3@yahoo.co.jp>
|
// SPDX-FileCopyrightText: 2012-2019 Ryuunosuke Ayanokouzi <i38w7i3@yahoo.co.jp>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
// SPDX-FileCopyrightText: 2012-2019 Ryuunosuke Ayanokouzi <i38w7i3@yahoo.co.jp>
|
// SPDX-FileCopyrightText: 2012-2019 Ryuunosuke Ayanokouzi <i38w7i3@yahoo.co.jp>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
@@ -107,7 +107,7 @@ WeeChat は Sébastien Helleu さんと貢献者によって作成されてい
|
|||||||
(完全なリストは AUTHORS.md ファイルを参照してください)。
|
(完全なリストは AUTHORS.md ファイルを参照してください)。
|
||||||
|
|
||||||
// REUSE-IgnoreStart
|
// REUSE-IgnoreStart
|
||||||
著作権 (C) 2003-2025 {author}
|
著作権 (C) 2003-2026 {author}
|
||||||
// REUSE-IgnoreEnd
|
// REUSE-IgnoreEnd
|
||||||
|
|
||||||
WeeChat はフリーソフトウェアです。あなたはこれを、フリーソフトウェア財団によって発行された
|
WeeChat はフリーソフトウェアです。あなたはこれを、フリーソフトウェア財団によって発行された
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
// SPDX-FileCopyrightText: 2012-2019 Ryuunosuke Ayanokouzi <i38w7i3@yahoo.co.jp>
|
// SPDX-FileCopyrightText: 2012-2019 Ryuunosuke Ayanokouzi <i38w7i3@yahoo.co.jp>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
// SPDX-FileCopyrightText: 2012-2019 Ryuunosuke Ayanokouzi <i38w7i3@yahoo.co.jp>
|
// SPDX-FileCopyrightText: 2012-2019 Ryuunosuke Ayanokouzi <i38w7i3@yahoo.co.jp>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
// SPDX-FileCopyrightText: 2012-2019 Ryuunosuke Ayanokouzi <i38w7i3@yahoo.co.jp>
|
// SPDX-FileCopyrightText: 2012-2019 Ryuunosuke Ayanokouzi <i38w7i3@yahoo.co.jp>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
// SPDX-FileCopyrightText: 2014-2019 Ryuunosuke Ayanokouzi <i38w7i3@yahoo.co.jp>
|
// SPDX-FileCopyrightText: 2014-2019 Ryuunosuke Ayanokouzi <i38w7i3@yahoo.co.jp>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
@@ -140,6 +140,8 @@ WeeChat "core" は以下のディレクトリに配置されています:
|
|||||||
|===
|
|===
|
||||||
| パス/ファイル名 | 説明
|
| パス/ファイル名 | 説明
|
||||||
| core/ | コア関数: エントリポイント、内部構造体
|
| core/ | コア関数: エントリポイント、内部構造体
|
||||||
|
// TRANSLATION MISSING
|
||||||
|
| core-args.c | Command-line arguments.
|
||||||
| core-arraylist.c | 配列リスト
|
| core-arraylist.c | 配列リスト
|
||||||
| core-backtrace.c | クラッシュした際にバックトレースを表示
|
| core-backtrace.c | クラッシュした際にバックトレースを表示
|
||||||
// TRANSLATION MISSING
|
// TRANSLATION MISSING
|
||||||
@@ -766,7 +768,7 @@ Example in C:
|
|||||||
[source,c]
|
[source,c]
|
||||||
----
|
----
|
||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2025 Your Name <your@email.com>
|
* SPDX-FileCopyrightText: 2026 Your Name <your@email.com>
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*
|
*
|
||||||
@@ -808,9 +810,9 @@ C 言語のコードを書く際には以下の基本的なルールを *必ず*
|
|||||||
[source,c]
|
[source,c]
|
||||||
----
|
----
|
||||||
/*
|
/*
|
||||||
* Checks if a string with boolean value is valid.
|
* Check if a string with boolean value is valid.
|
||||||
*
|
*
|
||||||
* Returns:
|
* Return:
|
||||||
* 1: boolean value is valid
|
* 1: boolean value is valid
|
||||||
* 0: boolean value is NOT valid
|
* 0: boolean value is NOT valid
|
||||||
*/
|
*/
|
||||||
@@ -1083,9 +1085,9 @@ struct t_gui_window *gui_current_window = NULL; /* current window */
|
|||||||
[source,c]
|
[source,c]
|
||||||
----
|
----
|
||||||
/*
|
/*
|
||||||
* Creates a new window.
|
* Create a new window.
|
||||||
*
|
*
|
||||||
* Returns pointer to new window, NULL if error.
|
* Return pointer to new window, NULL if error.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
struct t_gui_window *
|
struct t_gui_window *
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
// SPDX-FileCopyrightText: 2012-2019 Ryuunosuke Ayanokouzi <i38w7i3@yahoo.co.jp>
|
// SPDX-FileCopyrightText: 2012-2019 Ryuunosuke Ayanokouzi <i38w7i3@yahoo.co.jp>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
@@ -451,7 +451,7 @@ with command `/color`).
|
|||||||
[[search_text]]
|
[[search_text]]
|
||||||
=== どうすればバッファ内の文字列を検索できますか (irssi の /lastlog の様に)。
|
=== どうすればバッファ内の文字列を検索できますか (irssi の /lastlog の様に)。
|
||||||
|
|
||||||
デフォルトのキーは kbd:[Ctrl+r] です (コマンドは: `+/input search_text_here+`)。
|
デフォルトのキーは kbd:[Ctrl+s] です (コマンドは: `+/input search_text_here+`)。
|
||||||
ハイライト部分へのジャンプは: kbd:[Alt+p] / kbd:[Alt+n]
|
ハイライト部分へのジャンプは: kbd:[Alt+p] / kbd:[Alt+n]
|
||||||
|
|
||||||
この機能に関するより詳しい情報はlink:weechat_user.ja.html#key_bindings[ユーザーズガイド / デフォルトのキー割り当て ^↗^^]を参照してください
|
この機能に関するより詳しい情報はlink:weechat_user.ja.html#key_bindings[ユーザーズガイド / デフォルトのキー割り当て ^↗^^]を参照してください
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
// SPDX-FileCopyrightText: 2014-2019 Ryuunosuke Ayanokouzi <i38w7i3@yahoo.co.jp>
|
// SPDX-FileCopyrightText: 2014-2019 Ryuunosuke Ayanokouzi <i38w7i3@yahoo.co.jp>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
@@ -9746,6 +9746,90 @@ elif rc == weechat.WEECHAT_CONFIG_OPTION_UNSET_ERROR:
|
|||||||
# ...
|
# ...
|
||||||
----
|
----
|
||||||
|
|
||||||
|
// TRANSLATION MISSING
|
||||||
|
[[themes]]
|
||||||
|
=== Themes
|
||||||
|
|
||||||
|
Functions to contribute color (and other themable option) overrides to
|
||||||
|
built-in themes. See the
|
||||||
|
link:weechat_user.ja.html#themes[user's guide / Themes] section for the
|
||||||
|
end-user side and the `+/theme+` command.
|
||||||
|
|
||||||
|
==== theme_register
|
||||||
|
|
||||||
|
_WeeChat ≥ 4.10.0._
|
||||||
|
|
||||||
|
Register a contribution of option overrides under a named theme. The
|
||||||
|
caller's plugin is the owner of the contribution; subsequent calls
|
||||||
|
with the same theme name from the same plugin merge into the existing
|
||||||
|
contribution (later keys win for duplicates).
|
||||||
|
|
||||||
|
When the calling plugin is unloaded, all its contributions are
|
||||||
|
automatically dropped from every theme.
|
||||||
|
|
||||||
|
Prototype:
|
||||||
|
|
||||||
|
[source,c]
|
||||||
|
----
|
||||||
|
struct t_theme *weechat_theme_register (const char *name,
|
||||||
|
struct t_hashtable *overrides);
|
||||||
|
----
|
||||||
|
|
||||||
|
Arguments:
|
||||||
|
|
||||||
|
* _name_: theme name (for example `+light+` or a custom name)
|
||||||
|
* _overrides_: hashtable mapping full option names
|
||||||
|
(e.g. `+irc.color.input_nick+`) to their string values; the caller
|
||||||
|
retains ownership and may free the hashtable right after the call
|
||||||
|
|
||||||
|
Return value:
|
||||||
|
|
||||||
|
* pointer to the registered theme (existing or newly created), NULL on
|
||||||
|
error
|
||||||
|
|
||||||
|
C example:
|
||||||
|
|
||||||
|
[source,c]
|
||||||
|
----
|
||||||
|
struct t_hashtable *overrides = weechat_hashtable_new (
|
||||||
|
8,
|
||||||
|
WEECHAT_HASHTABLE_STRING,
|
||||||
|
WEECHAT_HASHTABLE_STRING,
|
||||||
|
NULL, NULL);
|
||||||
|
if (overrides)
|
||||||
|
{
|
||||||
|
weechat_hashtable_set (overrides, "irc.color.input_nick", "cyan");
|
||||||
|
weechat_hashtable_set (overrides, "irc.color.topic_old", "darkgray");
|
||||||
|
weechat_theme_register ("light", overrides);
|
||||||
|
weechat_hashtable_free (overrides);
|
||||||
|
}
|
||||||
|
----
|
||||||
|
|
||||||
|
Script (Python):
|
||||||
|
|
||||||
|
[source,python]
|
||||||
|
----
|
||||||
|
# prototype
|
||||||
|
def theme_register(name: str, overrides: Dict[str, str]) -> str: ...
|
||||||
|
|
||||||
|
# example
|
||||||
|
weechat.theme_register("light", {
|
||||||
|
"irc.color.input_nick": "cyan",
|
||||||
|
"irc.color.topic_old": "darkgray",
|
||||||
|
})
|
||||||
|
----
|
||||||
|
|
||||||
|
[NOTE]
|
||||||
|
Only options that have the _themable_ flag will be set by `/theme apply`.
|
||||||
|
All `*.color.*` options are themable by default; string options that
|
||||||
|
hold `+${color:...}+` references are explicitly opted in. Entries
|
||||||
|
targeting non-themable options are silently skipped at apply-time with
|
||||||
|
a warning logged to the _core_ buffer.
|
||||||
|
|
||||||
|
[NOTE]
|
||||||
|
When called from a script, the contribution is automatically dropped
|
||||||
|
when the script unloads (no manual cleanup is needed).
|
||||||
|
|
||||||
[[key_bindings]]
|
[[key_bindings]]
|
||||||
=== キー割り当て
|
=== キー割り当て
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
|
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||||||
// SPDX-FileCopyrightText: 2009-2019 Ryuunosuke Ayanokouzi <i38w7i3@yahoo.co.jp>
|
// SPDX-FileCopyrightText: 2009-2019 Ryuunosuke Ayanokouzi <i38w7i3@yahoo.co.jp>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user