mirror of
https://github.com/weechat/weechat.git
synced 2026-06-12 14:14:48 +02:00
Compare commits
360 Commits
osc8-hyperlink
...
v3.5
| Author | SHA1 | Date | |
|---|---|---|---|
| 0e6497612c | |||
| a794bf39bb | |||
| 5f543f26cc | |||
| 0d8ced6c32 | |||
| db28e2133d | |||
| bab175f5b4 | |||
| d3b42fae83 | |||
| ef41998179 | |||
| 05e65cdd31 | |||
| 872ff1cc6d | |||
| 8123cb3e0b | |||
| 15e11ecc0c | |||
| 827db6dc31 | |||
| 44e0414970 | |||
| 9a19cc5d59 | |||
| 3289bd2882 | |||
| 6e75f93e1f | |||
| 13482b38d0 | |||
| 6004139098 | |||
| 116f533e0d | |||
| c943d3507f | |||
| 869279e9b6 | |||
| 947ca33c14 | |||
| 44ec7e8cfa | |||
| 4629b17173 | |||
| e5e3a9d2da | |||
| fbbed9fbf7 | |||
| 310b4dd2a0 | |||
| 55f1655064 | |||
| 55aa40e087 | |||
| 68f395d433 | |||
| 22a36665e3 | |||
| 65e08ffe07 | |||
| 8781187771 | |||
| 197a7a01e4 | |||
| 47e71a1bbd | |||
| 3a4a9459e7 | |||
| cd6b83470e | |||
| 3f9c46468c | |||
| 9a286c65c6 | |||
| aadd0772fe | |||
| bb03e18425 | |||
| 5d809df6ed | |||
| 74ba21a8c4 | |||
| 02bdf854bc | |||
| 8c66070136 | |||
| 9cfdb4a324 | |||
| c1e65e8edd | |||
| f81a0dc4d9 | |||
| d06f1e8486 | |||
| ffb6cc3208 | |||
| dc779b5179 | |||
| 7228262591 | |||
| e4f93a7f30 | |||
| fd27faf899 | |||
| 7486ea6dc1 | |||
| 9e9e252ff3 | |||
| db368b5824 | |||
| 214e3cb1c2 | |||
| b4a14ef1dd | |||
| 40ff9beb10 | |||
| d359e8135e | |||
| 8700e0bb36 | |||
| 601bd7e0b8 | |||
| d3a9ce29fc | |||
| f39c6a58d0 | |||
| 4068dc8da5 | |||
| 7051c0fc2b | |||
| 7f8e5b892d | |||
| e0db08c782 | |||
| 6fbfb2f476 | |||
| a2bb57bf82 | |||
| ba7ff87d19 | |||
| d7c8b16c4f | |||
| d0c857934b | |||
| e8c59e1f5b | |||
| ec86c33789 | |||
| 608f56020d | |||
| 9259442dbf | |||
| bf3241208b | |||
| 28d6b71d9e | |||
| 083662cb34 | |||
| bf9cf3875f | |||
| fc2f564950 | |||
| efaf88d857 | |||
| 05a9457504 | |||
| 3110740777 | |||
| a62f8f6f75 | |||
| 05eb897771 | |||
| 113f93e5db | |||
| f2aef8c13c | |||
| 3983f01ee7 | |||
| 0ebf3dbede | |||
| 13fb3649dd | |||
| 6a88bbb4cc | |||
| b018f8d5c8 | |||
| 574f1837f9 | |||
| 5172f20217 | |||
| ab7c4c0147 | |||
| 28fc2e7cbf | |||
| 2d6ab2ec0a | |||
| c44b79dce7 | |||
| ab12d384ea | |||
| c775242a4c | |||
| 619f09f2d6 | |||
| e6f65122a9 | |||
| 50167ca96f | |||
| b54d06630d | |||
| c13aa86c79 | |||
| bda7bb64d2 | |||
| dee7313fcc | |||
| 305608ce89 | |||
| f8915129bf | |||
| 0e57d01076 | |||
| 286338f627 | |||
| 9bbab7ff02 | |||
| 6670fd2a87 | |||
| 0d6b18bc54 | |||
| 8c49475f75 | |||
| 08e0d3912a | |||
| 532d46bb93 | |||
| b66298d369 | |||
| 5c6fc8c4bd | |||
| ee96b9b867 | |||
| 1c022d3bda | |||
| dd2b19ec42 | |||
| df0506dbdf | |||
| 93eafae2fe | |||
| 7fb1dd94cc | |||
| c8a8680d60 | |||
| af067f18e2 | |||
| 454c0acbcf | |||
| 498194f6fc | |||
| d5c391b1ee | |||
| 20e219a2c9 | |||
| abb7d3642a | |||
| 7f2cce2970 | |||
| 7a0fdd1966 | |||
| fae6bbb40e | |||
| 5bb56e0f57 | |||
| 5de21ddfc0 | |||
| 778594d68f | |||
| 37d4d2ac65 | |||
| 2376b6aa5e | |||
| 5a24ffd951 | |||
| a1cc70b752 | |||
| 1cedb78348 | |||
| 0123abb83e | |||
| 463517bd1e | |||
| 46f3bee2ff | |||
| d80b27af64 | |||
| e2d44181d7 | |||
| ba4f762964 | |||
| dad3e6099c | |||
| 5208552a98 | |||
| 07721d3dc1 | |||
| d236171035 | |||
| a4d560e0aa | |||
| 7bf0a5c734 | |||
| 10a8732d41 | |||
| fd017ce474 | |||
| 1c0d8f5fd3 | |||
| 160ffe8e11 | |||
| 4c7b898666 | |||
| 391d0a18a1 | |||
| a5db952842 | |||
| 7cb5147e74 | |||
| a5ffd8b800 | |||
| 66384544b5 | |||
| c88428fb41 | |||
| 71991fcc73 | |||
| b82a9c44fd | |||
| 637c7bb3d4 | |||
| 268cb53238 | |||
| 9e721d0ad5 | |||
| 287d5146b4 | |||
| 1cfb5e5d1e | |||
| 866fef2595 | |||
| 2dabce9ac8 | |||
| f33e9b6737 | |||
| 50cea48b51 | |||
| ae891ab322 | |||
| 0a14441d35 | |||
| f2310dae42 | |||
| 67a364550f | |||
| 64592951b5 | |||
| 3a38879590 | |||
| d447755b1f | |||
| 2564fa2882 | |||
| 928ed152ed | |||
| 7014322b2e | |||
| 9b6606394c | |||
| 198872c027 | |||
| c8776b14f6 | |||
| 35c26fb001 | |||
| eca9c89747 | |||
| aed64f5020 | |||
| 266233636d | |||
| be753046b7 | |||
| 15f5bc7944 | |||
| 27a480c7d7 | |||
| fe9768f484 | |||
| aace0a1a58 | |||
| 792739ee42 | |||
| 8b11fa86cd | |||
| 28d013b704 | |||
| 5fffaf89e4 | |||
| 006964c4dc | |||
| 05d31b476b | |||
| 50edb33f1c | |||
| c82358c17c | |||
| d64050bafb | |||
| 1556e4ac5a | |||
| a3924a27a0 | |||
| cbadaecc4f | |||
| 7cad1230e6 | |||
| 997559e55b | |||
| d98940fecb | |||
| f2ad57ceb9 | |||
| d4650183ba | |||
| a6c40d2190 | |||
| 563a6db02d | |||
| 5ddd72c0e9 | |||
| 80b86ea647 | |||
| bbcdb90fbb | |||
| 253b25db03 | |||
| 4c9e7ed09e | |||
| 12043622e6 | |||
| f4a1baaed3 | |||
| 9303f5abd9 | |||
| 1b8ad40b81 | |||
| 2f177dd188 | |||
| edfc415e9e | |||
| 8bb5e33348 | |||
| b3cf7658f7 | |||
| 2081fa54af | |||
| 2da2172593 | |||
| 018a4bda53 | |||
| 14c6ef3d83 | |||
| 9c5837d143 | |||
| 5e08f9876a | |||
| ee66fc3a85 | |||
| 13472adfff | |||
| 60b374901f | |||
| d8a3a0137c | |||
| f66e55564e | |||
| 6e83225e6f | |||
| f03622d141 | |||
| 4f20417cb2 | |||
| f15337ea9a | |||
| 49221b56b9 | |||
| 75f71cd311 | |||
| 505a9f937a | |||
| 08d3e3b2b7 | |||
| fb4d947a8c | |||
| 2ca6420e17 | |||
| cde0d5f7a5 | |||
| ba5b744397 | |||
| 1447c7ad83 | |||
| b57d19c893 | |||
| 9063546acc | |||
| f1cb767001 | |||
| 634eac455d | |||
| 2f90fc0299 | |||
| d2bd952210 | |||
| 9fbe18eb27 | |||
| 2ca37a9128 | |||
| a73e9eb8ca | |||
| a3ddeba9f9 | |||
| baa91a45a8 | |||
| 6124bf3c92 | |||
| 6a8ec55118 | |||
| 4b6038975c | |||
| 5e63161b5b | |||
| 32c99047f4 | |||
| 2ef9509dbe | |||
| c7cb025582 | |||
| 96288d69e2 | |||
| aad86a1955 | |||
| dcbf534d53 | |||
| c8329da6e0 | |||
| 3e1b621f52 | |||
| 56cb9e50af | |||
| 9b17f1fee4 | |||
| cee4bf7e3c | |||
| 027ecc6b0e | |||
| 22ecfda777 | |||
| 2ae974f5c3 | |||
| 99d565f6df | |||
| 5546b0af0e | |||
| 741343e9aa | |||
| 0e9710de81 | |||
| 32ae101096 | |||
| 3a5a2abeea | |||
| de567aa1d3 | |||
| a5e470a16a | |||
| b3ce8b5282 | |||
| 31b15c1423 | |||
| 60c9beab2b | |||
| 10a1c9bda4 | |||
| 6f8f547242 | |||
| 2509486c6a | |||
| df9c32b0c3 | |||
| c577da0375 | |||
| 4e1d40034e | |||
| a1a4f337ff | |||
| e412a34668 | |||
| 3c7d4b0516 | |||
| 572bcc2c59 | |||
| 3360cadd55 | |||
| f51f3dbe29 | |||
| efecdf5d45 | |||
| 76b75ad5cd | |||
| 74ceaa1a68 | |||
| 12a4519448 | |||
| 033fbf63b0 | |||
| 1029780ce2 | |||
| 0ea0b24563 | |||
| ec816b4be5 | |||
| 7c1ea1cb32 | |||
| 27f554659e | |||
| 5389ceb237 | |||
| 03e0122155 | |||
| 8d12187f3d | |||
| bf8c85f422 | |||
| 179822fb91 | |||
| 5e712d7145 | |||
| 8ea41d91c9 | |||
| 7a88e007a5 | |||
| 257fe7362a | |||
| 52cc1165c4 | |||
| 0be96b7c66 | |||
| 9d4119232f | |||
| adcc04cc5a | |||
| e5996f626b | |||
| d8c7cf41b5 | |||
| 5123483c33 | |||
| 33a3c485be | |||
| 7b4d48c46d | |||
| 4ee82d1c70 | |||
| a1a4d627e1 | |||
| 5a5c2cbd1a | |||
| 2bd3681eef | |||
| 604415e19e | |||
| e653ee04d2 | |||
| 3c737ca304 | |||
| 1f83df7a18 | |||
| eda8ad9de5 | |||
| df6f32a7bb | |||
| a2a733fc36 | |||
| 56edeba7fc | |||
| 15392e4a81 | |||
| cb856a7f3a | |||
| 69c457287d | |||
| 5458382bb8 | |||
| 849105ebd6 | |||
| cbc4073815 | |||
| c4b4d80936 | |||
| f0898eae64 | |||
| 9378a7572b |
+54
-14
@@ -4,17 +4,20 @@ on:
|
||||
- push
|
||||
- pull_request
|
||||
|
||||
env:
|
||||
WEECHAT_DEPENDENCIES: devscripts equivs python3-pip libenchant-dev autopoint cmake ninja-build lcov pkg-config libncursesw5-dev gem2deb libperl-dev python2-dev python3-dev libaspell-dev liblua5.3-dev tcl8.6-dev guile-2.2-dev libv8-dev libcurl4-gnutls-dev libgcrypt20-dev libgnutls28-dev libzstd-dev zlib1g-dev curl libcpputest-dev php8.0-dev libphp8.0-embed libargon2-dev libsodium-dev pylint python3-bandit asciidoctor
|
||||
|
||||
jobs:
|
||||
|
||||
build_linux:
|
||||
tests_linux:
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os:
|
||||
- ubuntu-20.04
|
||||
config:
|
||||
- { name: "cmake_gcc", cc: "gcc", cxx: "g++", tool: "cmake", args: "" }
|
||||
- { name: "cmake_gcc_ninja", cc: "gcc", cxx: "g++", tool: "cmake", args: "-G Ninja" }
|
||||
- { name: "cmake_gcc_no_nls", cc: "gcc", cxx: "g++", tool: "cmake", args: "-DENABLE_NLS=OFF" }
|
||||
- { name: "cmake_gcc_py2", cc: "gcc", cxx: "g++", tool: "cmake", args: "-DENABLE_PYTHON2=ON" }
|
||||
- { name: "cmake_gcc_coverage", cc: "gcc", cxx: "g++", tool: "cmake", args: "-DENABLE_CODE_COVERAGE=ON" }
|
||||
@@ -22,7 +25,7 @@ jobs:
|
||||
- { name: "autotools_gcc", cc: "gcc", cxx: "g++", tool: "autotools", args: "" }
|
||||
- { name: "autotools_clang", cc: "clang", cxx: "clang++", tool: "autotools", args: "" }
|
||||
|
||||
name: ${{ matrix.config.name }} on ${{ matrix.os }}
|
||||
name: "Tests: ${{ matrix.config.name }} on ${{ matrix.os }}"
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
@@ -33,12 +36,10 @@ jobs:
|
||||
run: |
|
||||
sudo apt-add-repository --yes ppa:ondrej/php
|
||||
sudo apt-get update -qq
|
||||
sudo apt-get --yes --no-install-recommends install devscripts equivs python3-pip libenchant-dev autopoint cmake lcov pkg-config libncursesw5-dev gem2deb libperl-dev python2-dev python3-dev libaspell-dev liblua5.3-dev tcl8.6-dev guile-2.0-dev libv8-dev libcurl4-gnutls-dev libgcrypt20-dev libgnutls28-dev zlib1g-dev curl libcpputest-dev php8.0-dev libphp8.0-embed libargon2-0-dev libsodium-dev pylint python3-bandit asciidoctor
|
||||
sudo apt-get --yes purge php8.1-dev
|
||||
sudo apt-get --yes --no-install-recommends install ${{ env.WEECHAT_DEPENDENCIES }}
|
||||
sudo -H pip3 install --ignore-installed msgcheck
|
||||
|
||||
- name: Test patches
|
||||
run: ./tools/build-debian.sh test-patches
|
||||
|
||||
- name: Check gettext files
|
||||
run: msgcheck po/*.po
|
||||
|
||||
@@ -51,7 +52,7 @@ jobs:
|
||||
bandit tests/scripts/python/testapigen.py tests/scripts/python/testapi.py tests/scripts/python/unparse.py
|
||||
|
||||
- name: Check Python stub file
|
||||
run: ./doc/python_stub.py | diff - src/plugins/python/weechat.pyi
|
||||
run: ./doc/python_stub.py | diff src/plugins/python/weechat.pyi -
|
||||
|
||||
- name: Build and run tests
|
||||
env:
|
||||
@@ -70,7 +71,7 @@ jobs:
|
||||
weechat --colors
|
||||
weechat --license
|
||||
weechat --version
|
||||
weechat --temp-dir --run-command "/debug dirs;/debug libs" --run-command "/quit"
|
||||
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
|
||||
|
||||
- name: Code coverage
|
||||
if: ${{ matrix.config.name == 'cmake_gcc_coverage' }}
|
||||
@@ -83,18 +84,18 @@ jobs:
|
||||
lcov --list coverage.info
|
||||
bash <(curl -s https://codecov.io/bash) -f coverage.info || echo 'Codecov error'
|
||||
|
||||
build_macos:
|
||||
tests_macos:
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os:
|
||||
- macos-latest
|
||||
- macos-11
|
||||
- macos-10.15
|
||||
config:
|
||||
- { name: "cmake_gcc", cc: "gcc", cxx: "g++" }
|
||||
- { name: "cmake_clang", cc: "clang", cxx: "clang++" }
|
||||
|
||||
name: ${{ matrix.config.name }} on ${{ matrix.os }}
|
||||
name: "Tests: ${{ matrix.config.name }} on ${{ matrix.os }}"
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
@@ -125,4 +126,43 @@ jobs:
|
||||
weechat --colors
|
||||
weechat --license
|
||||
weechat --version
|
||||
weechat --temp-dir --run-command "/debug dirs;/debug libs" --run-command "/quit"
|
||||
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
|
||||
|
||||
build_debian:
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
os:
|
||||
- ubuntu-20.04
|
||||
|
||||
name: "Build Debian on ${{ matrix.os }}"
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
sudo apt-add-repository --yes ppa:ondrej/php
|
||||
sudo apt-get update -qq
|
||||
sudo apt-get --yes purge php8.1-dev
|
||||
sudo apt-get --yes --no-install-recommends install ${{ env.WEECHAT_DEPENDENCIES }} php-dev
|
||||
|
||||
- name: Test Debian patches
|
||||
run: ./tools/build-debian.sh test-patches
|
||||
|
||||
- name: Build Debian packages
|
||||
run: ./tools/build-debian.sh devel ubuntu/focal
|
||||
|
||||
- name: Install Debian packages
|
||||
run: sudo dpkg -i ../weechat-devel*.deb
|
||||
|
||||
- name: Run WeeChat
|
||||
env:
|
||||
TERM: xterm-256color
|
||||
run: |
|
||||
weechat --help
|
||||
weechat-curses --help
|
||||
weechat --version
|
||||
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
|
||||
|
||||
@@ -11,7 +11,9 @@ Sébastien Helleu <flashcode@flashtux.org> <flashcode>
|
||||
Sébastien Helleu <flashcode@flashtux.org> <uid67137>
|
||||
Nils Görs <weechatter@arcor.de>
|
||||
Ryuunosuke Ayanokouzi <i38w7i3@yahoo.co.jp>
|
||||
Krzysztof Korościk <soltys1@gmail.com> <soltys@szluug.org> <soltys@soltys.info>
|
||||
Krzysztof Korościk <soltys@soltys.info>
|
||||
Krzysztof Korościk <soltys@soltys.info> <soltys1@gmail.com>
|
||||
Krzysztof Korościk <soltys@soltys.info> <soltys@szluug.org>
|
||||
Marco Paolone <marcopaolone@gmail.com>
|
||||
<marcopaolone@gmail.com> <marco@DrB4tch.sitecomwl601>
|
||||
<mikaela.suomalainen@outlook.com> <mkaysi@outlook.com>
|
||||
|
||||
-46
@@ -1,46 +0,0 @@
|
||||
dist: bionic
|
||||
sudo: required
|
||||
language: c
|
||||
|
||||
env:
|
||||
- CC="gcc" CXX="g++" BUILDTOOL="cmake" BUILDARGS=""
|
||||
- CC="gcc" CXX="g++" BUILDTOOL="cmake" BUILDARGS="-DENABLE_PYTHON2=ON"
|
||||
# - CC="gcc" CXX="g++" BUILDTOOL="cmake" BUILDARGS="-DENABLE_CODE_COVERAGE=ON" CODECOVERAGE="1"
|
||||
- CC="gcc" CXX="g++" BUILDTOOL="autotools" BUILDARGS=""
|
||||
- CC="gcc" CXX="g++" BUILDTOOL="autotools" BUILDARGS="--enable-python2"
|
||||
- CC="clang" CXX="clang++" BUILDTOOL="cmake" BUILDARGS=""
|
||||
- CC="clang" CXX="clang++" BUILDTOOL="cmake" BUILDARGS="-DENABLE_PYTHON2=ON"
|
||||
- CC="clang" CXX="clang++" BUILDTOOL="autotools" BUILDARGS=""
|
||||
- CC="clang" CXX="clang++" BUILDTOOL="autotools" BUILDARGS="--enable-python2"
|
||||
|
||||
matrix:
|
||||
fast_finish: true
|
||||
|
||||
before_script:
|
||||
- echo 'APT::Install-Recommends "false";' | sudo tee -a /etc/apt/apt.conf
|
||||
- travis_retry sudo apt-get update -qq
|
||||
- travis_retry sudo apt-get -y install devscripts equivs python-pip libenchant-dev autopoint cmake lcov pkg-config libncursesw5-dev gem2deb libperl-dev python-dev python3-dev libaspell-dev liblua5.3-dev tcl8.6-dev guile-2.0-dev libv8-dev libcurl4-gnutls-dev libgcrypt20-dev libgnutls28-dev zlib1g-dev curl libcpputest-dev php7.2-dev libphp7.2-embed libargon2-0-dev libsodium-dev pylint3
|
||||
- travis_retry sudo gem install asciidoctor
|
||||
- travis_retry sudo -H pip install --ignore-installed msgcheck
|
||||
- phpenv local system
|
||||
# work around broken travis environment variables, see https://github.com/travis-ci/travis-ci/issues/5301
|
||||
- unset PYTHON_CFLAGS
|
||||
|
||||
script:
|
||||
- ./tools/build-test.sh
|
||||
- msgcheck po/*.po
|
||||
- pylint3 --version
|
||||
- pylint3 --additional-builtins=_ doc/docgen.py
|
||||
- pylint3 tests/scripts/python/testapigen.py
|
||||
- pylint3 tests/scripts/python/testapi.py
|
||||
- pylint3 tests/scripts/python/unparse.py
|
||||
- ./tools/build-debian.sh test-patches
|
||||
|
||||
after_success:
|
||||
- weechat --help
|
||||
- weechat-curses --help
|
||||
- weechat --colors
|
||||
- weechat --license
|
||||
- weechat --version
|
||||
- weechat --temp-dir --run-command "/debug dirs;/debug libs" --run-command "/quit"
|
||||
# - if [ "$CODECOVERAGE" = "1" ]; then bash <(curl -s https://codecov.io/bash) -f coverage.info || echo "Codecov error"; fi
|
||||
+1
-2
@@ -155,5 +155,4 @@ Alphabetically:
|
||||
|
||||
== Contact
|
||||
|
||||
See https://weechat.org/files/doc/devel/weechat_user.en.html#support[user's guide]
|
||||
or https://weechat.org/about/support
|
||||
See the https://weechat.org/about/support/[support page].
|
||||
|
||||
+7
-4
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2007-2008 Julien Louis <ptitlouis@sysif.net>
|
||||
# Copyright (C) 2008-2009 Emmanuel Bouthenot <kolter@openics.org>
|
||||
#
|
||||
@@ -27,8 +27,8 @@ project(weechat C)
|
||||
set(CMAKE_VERBOSE_MAKEFILE OFF)
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
|
||||
set(CMAKE_SKIP_RPATH ON)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsigned-char -Wall -Wextra -Werror-implicit-function-declaration")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsigned-char -Wall -Wextra")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsigned-char -fms-extensions -Wall -Wextra -Werror-implicit-function-declaration")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsigned-char -fms-extensions -Wall -Wextra")
|
||||
|
||||
# version
|
||||
execute_process(COMMAND ${CMAKE_SOURCE_DIR}/version.sh devel-major OUTPUT_VARIABLE VERSION_MAJOR)
|
||||
@@ -196,7 +196,10 @@ list(APPEND EXTRA_LIBS gnutls)
|
||||
|
||||
# Check for zlib
|
||||
find_package(ZLIB REQUIRED)
|
||||
add_definitions(-DHAVE_ZLIB)
|
||||
|
||||
# Check for zstd
|
||||
include(FindPkgConfig)
|
||||
pkg_check_modules(LIBZSTD REQUIRED libzstd)
|
||||
|
||||
# Check for iconv
|
||||
find_package(Iconv)
|
||||
|
||||
+535
-454
File diff suppressed because it is too large
Load Diff
+5
-6
@@ -29,8 +29,8 @@ please include:
|
||||
_WeeChat 1.7-dev (git: v1.6-6-g997f47f)_. +
|
||||
If WeeChat does not start at all, please include the version displayed by
|
||||
`weechat --help` (or the version installed with your package manager).
|
||||
* Your *operating system*: its name and version (examples: Linux Debian Wheezy,
|
||||
FreeBSD 10.0, Windows/Cygwin 64-bit, Windows/Ubuntu 64-bit...).
|
||||
* Your *operating system*: its name and version (examples: Linux Debian Bullseye,
|
||||
FreeBSD 13.0, Windows/Cygwin 64-bit, Windows/Ubuntu 64-bit...).
|
||||
* The *steps to reproduce*: if possible, please include a reproducible example:
|
||||
explain the steps which led you to the problem. +
|
||||
It's even better if you can reproduce the problem with a new config (and no
|
||||
@@ -38,8 +38,7 @@ please include:
|
||||
problem here.
|
||||
* The *gdb's backtrace* (only for a crash): if you can reproduce the crash
|
||||
(or if you have a core file), please include the backtrace from gdb (look at
|
||||
https://weechat.org/files/doc/devel/weechat_user.en.html#report_crashes[User's guide]
|
||||
for more info).
|
||||
https://weechat.org/doc/user#report_crashes[User's guide] for more info).
|
||||
* The *actual result*.
|
||||
* The *expected result*: the correct result you are expecting.
|
||||
|
||||
@@ -69,7 +68,7 @@ time, for https://github.com/weechat/weechat[WeeChat] and the website
|
||||
https://github.com/weechat/weechat.org[weechat.org].
|
||||
|
||||
To start a translation in a new language (not yet supported), please look at
|
||||
https://weechat.org/files/doc/devel/weechat_dev.en.html#translations[translations]
|
||||
https://weechat.org/doc/dev#translations[translations]
|
||||
in Developer's guide.
|
||||
|
||||
== Feature requests
|
||||
@@ -85,6 +84,6 @@ For major new features, it's better to discuss about it in IRC
|
||||
(server: _irc.libera.chat_, channel _#weechat_).
|
||||
|
||||
Before submitting any pull request, be sure you have read the
|
||||
https://weechat.org/files/doc/devel/weechat_dev.en.html#coding_rules[coding rules]
|
||||
https://weechat.org/doc/dev#coding_rules[coding rules]
|
||||
in Developer's guide, which contains info about styles used, naming convention
|
||||
and other useful info.
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2005 Julien Louis <ptitlouis@sysif.net>
|
||||
# Copyright (C) 2006-2009 Emmanuel Bouthenot <kolter@openics.org>
|
||||
#
|
||||
|
||||
+9
-78
@@ -23,13 +23,13 @@ Homepage: https://weechat.org/
|
||||
|
||||
== Features
|
||||
|
||||
* *Modular chat client*: WeeChat has a lightweight core and optional https://weechat.org/files/doc/stable/weechat_user.en.html#plugins[plugins]. All plugins (including https://weechat.org/files/doc/stable/weechat_user.en.html#irc_plugin[IRC]) are independent and can be unloaded.
|
||||
* *Modular chat client*: WeeChat has a lightweight core and optional https://weechat.org/doc/user#plugins[plugins]. All plugins (including https://weechat.org/doc/user#irc[IRC]) are independent and can be unloaded.
|
||||
* *Multi-platform*: WeeChat runs on GNU/Linux, *BSD, GNU/Hurd, Haiku, macOS and Windows (Bash/Ubuntu and Cygwin).
|
||||
* *Multi-protocols*: WeeChat is designed to support multiple protocols by plugins, like IRC.
|
||||
* *Standards-compliant*: the IRC plugin is compliant with RFCs https://tools.ietf.org/html/rfc1459[1459], https://tools.ietf.org/html/rfc2810[2810], https://tools.ietf.org/html/rfc2811[2811], https://tools.ietf.org/html/rfc2812[2812] and https://tools.ietf.org/html/rfc2813[2813].
|
||||
* *Small, fast and very light*: the core is and should stay as light and fast as possible.
|
||||
* *Customizable and extensible*: there are a lot of options to customize WeeChat, and it is extensible with C plugins and https://weechat.org/scripts/[scripts] (https://weechat.org/scripts/stable/language/perl/[Perl], https://weechat.org/scripts/stable/language/python/[Python], https://weechat.org/scripts/stable/language/ruby[Ruby], https://weechat.org/scripts/stable/language/lua/[Lua], https://weechat.org/scripts/stable/language/tcl/[Tcl], https://weechat.org/scripts/stable/language/guile/[Scheme], https://weechat.org/scripts/stable/language/javascript/[JavaScript] and https://weechat.org/scripts/stable/language/php/[PHP]).
|
||||
* *Fully documented*: there is comprehensive https://weechat.org/doc/[documentation], which is https://weechat.org/files/doc/stable/weechat_dev.en.html#translations[translated] into several languages.
|
||||
* *Standards-compliant*: the IRC plugin is compliant with RFCs https://tools.ietf.org/html/rfc1459[1459], https://tools.ietf.org/html/rfc2810[2810], https://tools.ietf.org/html/rfc2811[2811], https://tools.ietf.org/html/rfc2812[2812], and https://tools.ietf.org/html/rfc2813[2813].
|
||||
* *Small, fast, and very light*: the core is and should stay as light and fast as possible.
|
||||
* *Customizable and extensible*: there are a lot of options to customize WeeChat, and it is extensible with C plugins and https://weechat.org/scripts/[scripts] (https://weechat.org/scripts/language/perl/[Perl], https://weechat.org/scripts/language/python/[Python], https://weechat.org/scripts/language/ruby[Ruby], https://weechat.org/scripts/language/lua/[Lua], https://weechat.org/scripts/language/tcl/[Tcl], https://weechat.org/scripts/language/guile/[Scheme], https://weechat.org/scripts/language/javascript/[JavaScript] and https://weechat.org/scripts/language/php/[PHP]).
|
||||
* *Fully documented*: there is comprehensive https://weechat.org/doc/[documentation], which is https://weechat.org/doc/dev#translations[translated] into several languages.
|
||||
* *Developed from scratch*: WeeChat was built from scratch and is not based on any other client.
|
||||
* *Free software*: WeeChat is released under https://www.gnu.org/licenses/gpl-3.0.html[GPLv3].
|
||||
|
||||
@@ -37,84 +37,15 @@ pass:[<p align="center">] image:https://weechat.org/media/images/screenshots/wee
|
||||
|
||||
On WeeChat's website you can find https://weechat.org/about/screenshots/[more screenshots].
|
||||
|
||||
== Install
|
||||
== Installation
|
||||
|
||||
=== Dependencies
|
||||
WeeChat can be installed using your favorite package manager (recommended) or by compiling it yourself.
|
||||
|
||||
Following packages are *required*:
|
||||
|
||||
* CMake
|
||||
* libncurses
|
||||
* libcurl
|
||||
* zlib
|
||||
* libgcrypt
|
||||
|
||||
Following packages are optional:
|
||||
|
||||
* for i18n: gettext
|
||||
* for SSL: gnutls, ca-certificates
|
||||
* for spell checking: aspell or enchant
|
||||
* for scripting: python, perl, ruby, lua, tcl, guile, libv8 (javascript), php
|
||||
* for building doc and man page: asciidoctor
|
||||
* for building tests: C++ compiler, CppUTest
|
||||
|
||||
For a complete list of dependencies and versions recommended, please look at
|
||||
https://weechat.org/files/doc/devel/weechat_user.en.html#dependencies[user's guide].
|
||||
|
||||
=== Compile
|
||||
|
||||
WeeChat can be built with https://cmake.org/[CMake] (recommended) or autotools.
|
||||
|
||||
[NOTE]
|
||||
Only CMake is officially supported to build WeeChat. You should only use
|
||||
autotools if you are not able to use CMake. +
|
||||
Building with autotools requires more dependencies and is slower than with CMake.
|
||||
|
||||
* Installation in system directories (requires _root_ privileges):
|
||||
|
||||
----
|
||||
$ mkdir build
|
||||
$ cd build
|
||||
$ cmake ..
|
||||
$ make
|
||||
$ sudo make install
|
||||
----
|
||||
|
||||
* Installation in custom directory (for example your home):
|
||||
|
||||
----
|
||||
$ mkdir build
|
||||
$ cd build
|
||||
$ cmake .. -DCMAKE_INSTALL_PREFIX=/path/to/directory
|
||||
$ make
|
||||
$ make install
|
||||
----
|
||||
|
||||
For more information or installation with autotools, please look at
|
||||
https://weechat.org/files/doc/devel/weechat_user.en.html#compile_with_autotools[user's guide].
|
||||
|
||||
=== Run tests
|
||||
|
||||
Following packages are *required* to compile tests:
|
||||
|
||||
* libcpputest-dev
|
||||
* C++ compiler
|
||||
|
||||
Tests must be enabled when compiling WeeChat:
|
||||
|
||||
----
|
||||
$ cmake .. -DENABLE_TESTS=ON
|
||||
----
|
||||
|
||||
They can be launched after compilation from the build directory:
|
||||
|
||||
----
|
||||
$ ctest -V
|
||||
----
|
||||
For detailed instructions, please check the https://weechat.org/doc/user#install[WeeChat user's guide].
|
||||
|
||||
== Copyright
|
||||
|
||||
Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
|
||||
Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
|
||||
|
||||
This file is part of WeeChat, the extensible chat client.
|
||||
|
||||
|
||||
+325
-262
File diff suppressed because it is too large
Load Diff
+1
-1
@@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2005 Julien Louis <ptitlouis@sysif.net>
|
||||
# Copyright (C) 2005-2006 Emmanuel Bouthenot <kolter@openics.org>
|
||||
#
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# This file is part of WeeChat, the extensible chat client.
|
||||
#
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# This file is part of WeeChat, the extensible chat client.
|
||||
#
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (C) 2014-2021 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2014-2022 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# This file is part of WeeChat, the extensible chat client.
|
||||
#
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# This file is part of WeeChat, the extensible chat client.
|
||||
#
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2007 Julien Louis <ptitlouis@sysif.net>
|
||||
# Copyright (C) 2009 Emmanuel Bouthenot <kolter@openics.org>
|
||||
#
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2009 Emmanuel Bouthenot <kolter@openics.org>
|
||||
#
|
||||
# This file is part of WeeChat, the extensible chat client.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (C) 2011-2021 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2011-2022 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# This file is part of WeeChat, the extensible chat client.
|
||||
#
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# This file is part of WeeChat, the extensible chat client.
|
||||
#
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# This file is part of WeeChat, the extensible chat client.
|
||||
#
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# This file is part of WeeChat, the extensible chat client.
|
||||
#
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
#
|
||||
# Copyright (C) 2017 Adam Saponara <as@php.net>
|
||||
# Copyright (C) 2017-2021 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2017-2022 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# This file is part of WeeChat, the extensible chat client.
|
||||
#
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# This file is part of WeeChat, the extensible chat client.
|
||||
#
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2009 Julien Louis <ptitlouis@sysif.net>
|
||||
#
|
||||
# This file is part of WeeChat, the extensible chat client.
|
||||
|
||||
+9
-47
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# This file is part of WeeChat, the extensible chat client.
|
||||
#
|
||||
@@ -33,51 +33,13 @@ endif()
|
||||
|
||||
find_package(PkgConfig)
|
||||
if(PKG_CONFIG_FOUND)
|
||||
pkg_search_module(RUBY ruby-2.7 ruby-2.6 ruby-2.5 ruby-2.4 ruby-2.3 ruby-2.2 ruby-2.1 ruby-2.0 ruby-1.9)
|
||||
endif()
|
||||
|
||||
if(RUBY_FOUND)
|
||||
set(RUBY_LIB "")
|
||||
mark_as_advanced(RUBY_LIB)
|
||||
else()
|
||||
find_program(RUBY_EXECUTABLE
|
||||
NAMES ruby2.7.0 ruby270 ruby2.7 ruby2.6.0 ruby260 ruby2.6 ruby2.5.0 ruby250 ruby2.5 ruby2.4.0 ruby240 ruby2.4 ruby2.3.0 ruby230 ruby2.3 ruby23 ruby2.2.3 ruby223 ruby2.2.2 ruby222 ruby2.2.1 ruby221 ruby2.2.0 ruby220 ruby2.2 ruby22 ruby2.1.7 ruby217 ruby2.1.6 ruby216 ruby2.1.5 ruby215 ruby2.1.4 ruby214 ruby2.1.3 ruby213 ruby2.1.2 ruby212 ruby2.1.1 ruby211 ruby2.1.0 ruby210 ruby2.1 ruby21 ruby2.0 ruby20 ruby1.9.3 ruby193 ruby1.9.2 ruby192 ruby1.9.1 ruby191 ruby1.9 ruby19 ruby
|
||||
PATHS /usr/bin /usr/local/bin /usr/pkg/bin
|
||||
)
|
||||
if(RUBY_EXECUTABLE)
|
||||
execute_process(
|
||||
COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print RbConfig::CONFIG['rubyhdrdir'] || RbConfig::CONFIG['archdir']"
|
||||
OUTPUT_VARIABLE RUBY_ARCH_DIR
|
||||
)
|
||||
execute_process(
|
||||
COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print RbConfig::CONFIG['arch']"
|
||||
OUTPUT_VARIABLE RUBY_ARCH
|
||||
)
|
||||
execute_process(
|
||||
COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print RbConfig::CONFIG['libdir']"
|
||||
OUTPUT_VARIABLE RUBY_POSSIBLE_LIB_PATH
|
||||
)
|
||||
execute_process(
|
||||
COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print RbConfig::CONFIG['rubylibdir']"
|
||||
OUTPUT_VARIABLE RUBY_RUBY_LIB_PATH
|
||||
)
|
||||
find_path(RUBY_INCLUDE_DIRS
|
||||
NAMES ruby.h
|
||||
PATHS ${RUBY_ARCH_DIR}
|
||||
)
|
||||
set(RUBY_INCLUDE_ARCH "${RUBY_INCLUDE_DIRS}/${RUBY_ARCH}")
|
||||
find_library(RUBY_LIB
|
||||
NAMES ruby-1.9.3 ruby1.9.3 ruby193 ruby-1.9.2 ruby1.9.2 ruby192 ruby-1.9.1 ruby1.9.1 ruby191 ruby1.9 ruby19 ruby
|
||||
PATHS ${RUBY_POSSIBLE_LIB_PATH} ${RUBY_RUBY_LIB_PATH}
|
||||
)
|
||||
if(RUBY_LIB AND RUBY_INCLUDE_DIRS)
|
||||
set(RUBY_FOUND TRUE)
|
||||
endif()
|
||||
set(RUBY_INCLUDE_DIRS "${RUBY_INCLUDE_DIRS};${RUBY_INCLUDE_ARCH}")
|
||||
mark_as_advanced(
|
||||
RUBY_INCLUDE_DIRS
|
||||
RUBY_LIBRARY_DIRS
|
||||
RUBY_LIB
|
||||
)
|
||||
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||
# set specific search path for macOS
|
||||
set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:/usr/local/opt/ruby/lib/pkgconfig")
|
||||
endif()
|
||||
pkg_search_module(RUBY ruby-3.1 ruby-3.0 ruby-2.7 ruby-2.6 ruby-2.5 ruby-2.4 ruby-2.3 ruby-2.2 ruby-2.1 ruby-2.0 ruby-1.9 ruby)
|
||||
if(RUBY_FOUND AND ${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||
# FIXME: weird hack: hardcoding the Ruby lib location on macOS
|
||||
set(RUBY_LDFLAGS "${RUBY_LDFLAGS} -L/usr/local/opt/ruby/lib")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (C) 2015-2021 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2015-2022 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# This file is part of WeeChat, the extensible chat client.
|
||||
#
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# This file is part of WeeChat, the extensible chat client.
|
||||
#
|
||||
|
||||
+24
-3
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2005 Benoit Papillault <benoit.papillault@free.fr>
|
||||
# Copyright (C) 2005-2006 Julien Louis <ptitlouis@sysif.net>
|
||||
# Copyright (C) 2005-2009 Emmanuel Bouthenot <kolter@openics.org>
|
||||
@@ -501,7 +501,7 @@ RUBY_VERSION=
|
||||
if test "x$enable_ruby" = "xyes" ; then
|
||||
RUBY_CFLAGS=""
|
||||
RUBY_LFLAGS=""
|
||||
for v in "2.7" "2.6" "2.5" "2.4" "2.3" "2.2" "2.1" "2.0" "1.9" "1.8" ; do
|
||||
for v in "3.1" "3.0" "2.7" "2.6" "2.5" "2.4" "2.3" "2.2" "2.1" "2.0" "1.9" "1.8" ; do
|
||||
pkgconfig_ruby_found=`$PKGCONFIG --exists ruby-$v 2>/dev/null`
|
||||
if test "x$?" = "x0" ; then
|
||||
RUBY_VERSION=`$PKGCONFIG --modversion ruby-$v`
|
||||
@@ -1175,6 +1175,27 @@ else
|
||||
AC_SUBST(ZLIB_LFLAGS)
|
||||
fi
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# zstd
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
AC_CHECK_HEADER(zstd.h,ac_found_zstd_header="yes",ac_found_zstd_header="no")
|
||||
AC_CHECK_LIB(zstd,ZSTD_compress,ac_found_zstd_lib="yes",ac_found_zstd_lib="no")
|
||||
|
||||
AC_MSG_CHECKING(for zstd headers and libraries)
|
||||
if test "x$ac_found_zstd_header" = "xno" -o "x$ac_found_zstd_lib" = "xno" ; then
|
||||
AC_MSG_RESULT(no)
|
||||
AC_MSG_ERROR([
|
||||
*** zstd was not found. You may want to get it from https://github.com/facebook/zstd
|
||||
*** or try to install it with your software package manager.])
|
||||
else
|
||||
AC_MSG_RESULT(yes)
|
||||
ZSTD_CFLAGS=`pkg-config libzstd --cflags`
|
||||
ZSTD_LFLAGS=`pkg-config libzstd --libs`
|
||||
AC_SUBST(ZSTD_CFLAGS)
|
||||
AC_SUBST(ZSTD_LFLAGS)
|
||||
fi
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# curl
|
||||
# ------------------------------------------------------------------------------
|
||||
@@ -1263,7 +1284,7 @@ if test "x$enable_man" = "xyes" -o "x$enable_doc" = "xyes"; then
|
||||
enable_man="no"
|
||||
enable_doc="no"
|
||||
fi
|
||||
ASCIIDOCTOR_ARGS="-a experimental -a 'prewrap!' -a icons=font -a sectanchors -a source-highlighter=prettify"
|
||||
ASCIIDOCTOR_ARGS="-a experimental -a reproducible -a 'prewrap!' -a 'webfonts!' -a icons=font -a sectanchors -a source-highlighter=pygments -a pygments-style=native"
|
||||
AC_SUBST(ASCIIDOCTOR)
|
||||
AC_SUBST(ASCIIDOCTOR_ARGS)
|
||||
fi
|
||||
|
||||
@@ -14,11 +14,12 @@ Build-Depends:
|
||||
liblua5.3-dev,
|
||||
tcl8.6-dev,
|
||||
guile-2.2-dev,
|
||||
php-dev, libphp-embed, libargon2-0-dev, libsodium-dev,
|
||||
php-dev, libphp-embed, libargon2-dev, libsodium-dev,
|
||||
libxml2-dev,
|
||||
libcurl4-gnutls-dev,
|
||||
libgcrypt20-dev,
|
||||
libgnutls28-dev,
|
||||
libzstd-dev,
|
||||
zlib1g-dev
|
||||
Standards-Version: 4.6.0.1
|
||||
Homepage: https://weechat.org/
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
Document: weechat-tester-de
|
||||
Title: WeeChat tester's guide (German)
|
||||
Author: Sébastien Helleu
|
||||
Abstract: This document describes how to test and report
|
||||
bugs against the WeeChat IRC Client (German version).
|
||||
Section: Network/Communication
|
||||
|
||||
Format: HTML
|
||||
Index: /usr/share/doc/weechat-devel-doc/html/weechat_tester.de.html
|
||||
Files: /usr/share/doc/weechat-devel-doc/html/weechat_tester.de.html
|
||||
@@ -1,10 +0,0 @@
|
||||
Document: weechat-tester-en
|
||||
Title: WeeChat tester's guide (English)
|
||||
Author: Sébastien Helleu
|
||||
Abstract: This document describes how to test and report
|
||||
bugs against the WeeChat IRC Client (English version).
|
||||
Section: Network/Communication
|
||||
|
||||
Format: HTML
|
||||
Index: /usr/share/doc/weechat-devel-doc/html/weechat_tester.en.html
|
||||
Files: /usr/share/doc/weechat-devel-doc/html/weechat_tester.en.html
|
||||
@@ -1,10 +0,0 @@
|
||||
Document: weechat-tester-fr
|
||||
Title: WeeChat tester's guide (French)
|
||||
Author: Sébastien Helleu
|
||||
Abstract: This document describes how to test and report
|
||||
bugs against the WeeChat IRC Client (French version).
|
||||
Section: Network/Communication
|
||||
|
||||
Format: HTML
|
||||
Index: /usr/share/doc/weechat-devel-doc/html/weechat_tester.fr.html
|
||||
Files: /usr/share/doc/weechat-devel-doc/html/weechat_tester.fr.html
|
||||
@@ -1,10 +0,0 @@
|
||||
Document: weechat-tester-it
|
||||
Title: WeeChat tester's guide (Italian)
|
||||
Author: Sébastien Helleu
|
||||
Abstract: This document describes how to test and report
|
||||
bugs against the WeeChat IRC Client (Italian version).
|
||||
Section: Network/Communication
|
||||
|
||||
Format: HTML
|
||||
Index: /usr/share/doc/weechat-devel-doc/html/weechat_tester.it.html
|
||||
Files: /usr/share/doc/weechat-devel-doc/html/weechat_tester.it.html
|
||||
@@ -1,10 +0,0 @@
|
||||
Document: weechat-tester-ja
|
||||
Title: WeeChat tester's guide (Japanese)
|
||||
Author: Sébastien Helleu
|
||||
Abstract: This document describes how to test and report
|
||||
bugs against the WeeChat IRC Client (Japanese version).
|
||||
Section: Network/Communication
|
||||
|
||||
Format: HTML
|
||||
Index: /usr/share/doc/weechat-devel-doc/html/weechat_tester.ja.html
|
||||
Files: /usr/share/doc/weechat-devel-doc/html/weechat_tester.ja.html
|
||||
@@ -1,10 +0,0 @@
|
||||
Document: weechat-tester-pl
|
||||
Title: WeeChat tester's guide (Polish)
|
||||
Author: Sébastien Helleu
|
||||
Abstract: This document describes how to test and report
|
||||
bugs against the WeeChat IRC Client (Polish version).
|
||||
Section: Network/Communication
|
||||
|
||||
Format: HTML
|
||||
Index: /usr/share/doc/weechat-devel-doc/html/weechat_tester.pl.html
|
||||
Files: /usr/share/doc/weechat-devel-doc/html/weechat_tester.pl.html
|
||||
@@ -1,3 +1,18 @@
|
||||
weechat (3.4-2) unstable; urgency=medium
|
||||
|
||||
* Remove build dependency on ruby-pygments.rb (no longer required)
|
||||
|
||||
-- Emmanuel Bouthenot <kolter@debian.org> Sat, 08 Jan 2022 06:00:17 +0000
|
||||
|
||||
weechat (3.3-1) unstable; urgency=medium
|
||||
|
||||
* New upstream release
|
||||
* Remove patch merged upstream (which command detection in libgcrypt)
|
||||
* Minor updates in debian/copyright
|
||||
* Enable Typing plugin
|
||||
|
||||
-- Emmanuel Bouthenot <kolter@debian.org> Mon, 20 Sep 2021 10:05:56 +0000
|
||||
|
||||
weechat (3.2.1-1) unstable; urgency=medium
|
||||
|
||||
* New upstream release
|
||||
|
||||
@@ -14,11 +14,12 @@ Build-Depends:
|
||||
liblua5.3-dev,
|
||||
tcl8.6-dev,
|
||||
guile-2.2-dev,
|
||||
php-dev, libphp-embed, libargon2-0-dev, libsodium-dev,
|
||||
php-dev, libphp-embed, libargon2-dev, libsodium-dev,
|
||||
libxml2-dev,
|
||||
libcurl4-gnutls-dev,
|
||||
libgcrypt20-dev,
|
||||
libgnutls28-dev,
|
||||
libzstd-dev,
|
||||
zlib1g-dev
|
||||
Standards-Version: 4.6.0.1
|
||||
Homepage: https://weechat.org/
|
||||
|
||||
@@ -4,7 +4,7 @@ Upstream-Contact: Sébastien Helleu <flashcode@flashtux.org>
|
||||
Source: https://weechat.org/
|
||||
|
||||
Files: *
|
||||
Copyright: 2003-2021, Sébastien Helleu <flashcode@flashtux.org>
|
||||
Copyright: 2003-2022, Sébastien Helleu <flashcode@flashtux.org>
|
||||
License: GPL-3+
|
||||
|
||||
Files: src/core/wee-command.c
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
Document: weechat-tester-de
|
||||
Title: WeeChat tester's guide (German)
|
||||
Author: Sébastien Helleu
|
||||
Abstract: This document describes how to test and report
|
||||
bugs against the WeeChat IRC Client (German version).
|
||||
Section: Network/Communication
|
||||
|
||||
Format: HTML
|
||||
Index: /usr/share/doc/weechat-doc/html/weechat_tester.de.html
|
||||
Files: /usr/share/doc/weechat-doc/html/weechat_tester.de.html
|
||||
@@ -1,10 +0,0 @@
|
||||
Document: weechat-tester-en
|
||||
Title: WeeChat tester's guide (English)
|
||||
Author: Sébastien Helleu
|
||||
Abstract: This document describes how to test and report
|
||||
bugs against the WeeChat IRC Client (English version).
|
||||
Section: Network/Communication
|
||||
|
||||
Format: HTML
|
||||
Index: /usr/share/doc/weechat-doc/html/weechat_tester.en.html
|
||||
Files: /usr/share/doc/weechat-doc/html/weechat_tester.en.html
|
||||
@@ -1,10 +0,0 @@
|
||||
Document: weechat-tester-fr
|
||||
Title: WeeChat tester's guide (French)
|
||||
Author: Sébastien Helleu
|
||||
Abstract: This document describes how to test and report
|
||||
bugs against the WeeChat IRC Client (French version).
|
||||
Section: Network/Communication
|
||||
|
||||
Format: HTML
|
||||
Index: /usr/share/doc/weechat-doc/html/weechat_tester.fr.html
|
||||
Files: /usr/share/doc/weechat-doc/html/weechat_tester.fr.html
|
||||
@@ -1,10 +0,0 @@
|
||||
Document: weechat-tester-it
|
||||
Title: WeeChat tester's guide (Italian)
|
||||
Author: Sébastien Helleu
|
||||
Abstract: This document describes how to test and report
|
||||
bugs against the WeeChat IRC Client (Italian version).
|
||||
Section: Network/Communication
|
||||
|
||||
Format: HTML
|
||||
Index: /usr/share/doc/weechat-doc/html/weechat_tester.it.html
|
||||
Files: /usr/share/doc/weechat-doc/html/weechat_tester.it.html
|
||||
@@ -1,10 +0,0 @@
|
||||
Document: weechat-tester-ja
|
||||
Title: WeeChat tester's guide (Japanese)
|
||||
Author: Sébastien Helleu
|
||||
Abstract: This document describes how to test and report
|
||||
bugs against the WeeChat IRC Client (Japanese version).
|
||||
Section: Network/Communication
|
||||
|
||||
Format: HTML
|
||||
Index: /usr/share/doc/weechat-doc/html/weechat_tester.ja.html
|
||||
Files: /usr/share/doc/weechat-doc/html/weechat_tester.ja.html
|
||||
@@ -1,10 +0,0 @@
|
||||
Document: weechat-tester-pl
|
||||
Title: WeeChat tester's guide (Polish)
|
||||
Author: Sébastien Helleu
|
||||
Abstract: This document describes how to test and report
|
||||
bugs against the WeeChat IRC Client (Polish version).
|
||||
Section: Network/Communication
|
||||
|
||||
Format: HTML
|
||||
Index: /usr/share/doc/weechat-doc/html/weechat_tester.pl.html
|
||||
Files: /usr/share/doc/weechat-doc/html/weechat_tester.pl.html
|
||||
+53
-2
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2009 Emmanuel Bouthenot <kolter@openics.org>
|
||||
#
|
||||
# This file is part of WeeChat, the extensible chat client.
|
||||
@@ -21,7 +21,58 @@
|
||||
if(ENABLE_MAN OR ENABLE_DOC)
|
||||
find_package(Asciidoctor)
|
||||
if(ASCIIDOCTOR_FOUND)
|
||||
set(ASCIIDOCTOR_ARGS -a experimental -a "prewrap!" -a icons=font -a revnumber="${VERSION}" -a sectanchors -a source-highlighter=prettify)
|
||||
# common asciidoctor arguments
|
||||
set(ASCIIDOCTOR_ARGS -a experimental -a reproducible -a "prewrap!" -a "webfonts!" -a icons=font -a revnumber="${VERSION}" -a sectanchors -a source-highlighter=pygments -a pygments-style=native)
|
||||
|
||||
# sed arguments used to replace links in ChangeLog and release notes
|
||||
set(SED_LINKS_ARGS
|
||||
-e "'s/issue #\\([0-9][0-9]*\\)/https:\\/\\/github.com\\/weechat\\/weechat\\/issues\\/\\1[issue #\\1^]/g'"
|
||||
-e "'s/bug #\\([0-9][0-9]*\\)/https:\\/\\/savannah.nongnu.org\\/bugs\\/?\\1[bug #\\1^]/g'"
|
||||
-e "'s/task #\\([0-9][0-9]*\\)/https:\\/\\/savannah.nongnu.org\\/task\\/?\\1[task #\\1^]/g'"
|
||||
-e "'s/patch #\\([0-9][0-9]*\\)/https:\\/\\/savannah.nongnu.org\\/patch\\/?\\1[patch #\\1^]/g'"
|
||||
-e "'s/debian #\\([0-9][0-9]*\\)/http:\\/\\/bugs.debian.org\\/cgi-bin\\/bugreport.cgi?bug=\\1[debian bug #\\1^]/g'"
|
||||
-e "'s/\\(CVE-[0-9][0-9]*-[0-9][0-9]*\\)/https:\\/\\/cve.mitre.org\\/cgi-bin\\/cvename.cgi?name=\\1[\\1^]/g'"
|
||||
)
|
||||
|
||||
# ChangeLog
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ChangeLog-links.adoc
|
||||
COMMAND sed ARGS ${SED_LINKS_ARGS} ${CMAKE_CURRENT_SOURCE_DIR}/../ChangeLog.adoc > ${CMAKE_CURRENT_BINARY_DIR}/ChangeLog-links.adoc
|
||||
DEPENDS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../ChangeLog.adoc
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
)
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ChangeLog.html
|
||||
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -a docinfodir="${CMAKE_CURRENT_SOURCE_DIR}" -o ChangeLog.html ${CMAKE_CURRENT_BINARY_DIR}/ChangeLog-links.adoc
|
||||
DEPENDS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html
|
||||
${CMAKE_CURRENT_BINARY_DIR}/ChangeLog-links.adoc
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
COMMENT "Building ChangeLog.html"
|
||||
)
|
||||
add_custom_target(changelog DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/ChangeLog.html)
|
||||
|
||||
# Release notes
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ReleaseNotes-links.adoc
|
||||
COMMAND sed ARGS ${SED_LINKS_ARGS} ${CMAKE_CURRENT_SOURCE_DIR}/../ReleaseNotes.adoc > ${CMAKE_CURRENT_BINARY_DIR}/ReleaseNotes-links.adoc
|
||||
DEPENDS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../ReleaseNotes.adoc
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
)
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ReleaseNotes.html
|
||||
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -a docinfodir="${CMAKE_CURRENT_SOURCE_DIR}" -o ReleaseNotes.html ${CMAKE_CURRENT_BINARY_DIR}/ReleaseNotes-links.adoc
|
||||
DEPENDS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html
|
||||
${CMAKE_CURRENT_BINARY_DIR}/ReleaseNotes-links.adoc
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
COMMENT "Building ReleaseNotes.html"
|
||||
)
|
||||
add_custom_target(rn DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/ReleaseNotes.html)
|
||||
|
||||
# man/doc in all languages
|
||||
add_subdirectory(cs)
|
||||
add_subdirectory(de)
|
||||
add_subdirectory(en)
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2006 Julien Louis <ptitlouis@sysif.net>
|
||||
#
|
||||
# This file is part of WeeChat, the extensible chat client.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# This file is part of WeeChat, the extensible chat client.
|
||||
#
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# This file is part of WeeChat, the extensible chat client.
|
||||
#
|
||||
|
||||
@@ -99,7 +99,7 @@ $HOME/.local/share/weechat/weechat.log::
|
||||
WeeChat je napsán Sébastienem Helleu a přispěvovateli (kompletní seznam je v
|
||||
souboru AUTHORS.adoc).
|
||||
|
||||
Copyright (C) 2003-2021 {author}
|
||||
Copyright (C) 2003-2022 {author}
|
||||
|
||||
WeeChat is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
||||
+1
-14
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# This file is part of WeeChat, the extensible chat client.
|
||||
#
|
||||
@@ -107,17 +107,4 @@ if(ENABLE_DOC)
|
||||
add_custom_target(doc-quickstart-de ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.de.html)
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.de.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
|
||||
|
||||
# tester's guide
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_tester.de.html
|
||||
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -o weechat_tester.de.html ${CMAKE_CURRENT_SOURCE_DIR}/weechat_tester.de.adoc
|
||||
DEPENDS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../docinfo.html
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/weechat_tester.de.adoc
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
COMMENT "Building weechat_tester.de.html"
|
||||
)
|
||||
add_custom_target(doc-tester-de ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_tester.de.html)
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_tester.de.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
|
||||
|
||||
endif()
|
||||
|
||||
+2
-8
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2006 Julien Louis <ptitlouis@sysif.net>
|
||||
#
|
||||
# This file is part of WeeChat, the extensible chat client.
|
||||
@@ -28,7 +28,6 @@ EXTRA_DIST = CMakeLists.txt \
|
||||
weechat_scripting.de.adoc \
|
||||
weechat_faq.de.adoc \
|
||||
weechat_quickstart.de.adoc \
|
||||
weechat_tester.de.adoc \
|
||||
includes/autogen_api_completions.de.adoc \
|
||||
includes/autogen_api_hdata.de.adoc \
|
||||
includes/autogen_api_infolists.de.adoc \
|
||||
@@ -53,8 +52,7 @@ if DOC
|
||||
doc_targets = weechat_user.de.html \
|
||||
weechat_scripting.de.html \
|
||||
weechat_faq.de.html \
|
||||
weechat_quickstart.de.html \
|
||||
weechat_tester.de.html
|
||||
weechat_quickstart.de.html
|
||||
doc_install = install-doc
|
||||
doc_uninstall = uninstall-doc
|
||||
endif
|
||||
@@ -82,10 +80,6 @@ weechat_faq.de.html: weechat_faq.de.adoc $(abs_top_srcdir)/doc/docinfo.html
|
||||
weechat_quickstart.de.html: weechat_quickstart.de.adoc $(abs_top_srcdir)/doc/docinfo.html
|
||||
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_quickstart.de.html $(abs_top_srcdir)/doc/de/weechat_quickstart.de.adoc
|
||||
|
||||
# tester's guide
|
||||
weechat_tester.de.html: weechat_tester.de.adoc $(abs_top_srcdir)/doc/docinfo.html
|
||||
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_tester.de.html $(abs_top_srcdir)/doc/de/weechat_tester.de.adoc
|
||||
|
||||
# install man/docs
|
||||
|
||||
install-data-hook: $(man_install) $(doc_install)
|
||||
|
||||
@@ -26,6 +26,8 @@
|
||||
|
||||
| irc | irc_channels | Kanäle auf allen IRC Servern
|
||||
|
||||
| irc | irc_channels_autojoin | Kanäle, die automatisch auf dem aktuellen Server betreten werden (Option "autojoin")
|
||||
|
||||
| irc | irc_ignores_numbers | Anzahl für festgelegte Ignorierungen
|
||||
|
||||
| irc | irc_modelist_masks | Modelist Maske für aktuellen IRC Kanal; benötigtes Argument: modelist mode
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|===
|
||||
| Erweiterung | Name | Beschreibung | Hashtable (Eingabe) | Hashtable (Ausgabe)
|
||||
|
||||
| irc | irc_message_parse | Parse eine IRC Nachricht | "message": IRC Nachricht, "server": Servername (optional) | "tags": Tags, "tag_xxx": Wert des Tags "xxx" ohne Escapezeichen (ein Schlüssel pro Tag), "message_without_tags": Nachrichten ohne Tags, "nick": Nick, "user": Benutzer, "host": Host, "command": Befehl, "channel": Kanal, "arguments": Argumente (schließt Kanal ein), "text": Text (zum Beispiel eine Nachricht von einem User), "pos_command": Index der "command" Nachricht ("-1" falls "command" nicht gefunden wird), "pos_arguments": Index der "arguments" Nachricht ("-1" falls "arguments" nicht gefunden wird), "pos_channel": Index der "channel" Nachricht ("-1" falls "channel" nicht gefunden wird),"pos_text": Index für "text" Nachricht ("-1" falls "text" nicht gefunden wird)
|
||||
| irc | irc_message_parse | Parse eine IRC Nachricht | "message": IRC Nachricht, "server": Servername (optional) | "tags": Tags, "tag_xxx": Wert des Tags "xxx" ohne Escapezeichen (ein Schlüssel pro Tag), "message_without_tags": Nachrichten ohne Tags, "nick": Nick, "user": Benutzer, "host": Host, "command": Befehl, "channel": Kanal, "arguments": Argumente (schließt Kanal ein), "text": Text (zum Beispiel eine Nachricht von einem User), "param1" ... "paramN": geparste Befehlsparameter, "num_params": Anzahl geparste Befehlsparameter, "pos_command": Index der "command" Nachricht ("-1" falls "command" nicht gefunden wird), "pos_arguments": Index der "arguments" Nachricht ("-1" falls "arguments" nicht gefunden wird), "pos_channel": Index der "channel" Nachricht ("-1" falls "channel" nicht gefunden wird),"pos_text": Index für "text" Nachricht ("-1" falls "text" nicht gefunden wird)
|
||||
|
||||
| irc | irc_message_split | trennt eine IRC Nachricht (standardmäßig in 512 Bytes große Nachrichten) | "message": IRC Nachricht, "server": Servername (optional) | "msg1" ... "msgN": Nachrichten die versendet werden sollen (ohne abschließendes "\r\n"), "args1" ... "argsN": Argumente für Nachrichten, "count": Anzahl der Nachrichten
|
||||
|
||||
|
||||
@@ -123,6 +123,35 @@ Beispiele:
|
||||
/auth user2 ${weechat_config_dir}/ecdsa2.pem
|
||||
----
|
||||
|
||||
[[command_irc_autojoin]]
|
||||
* `+autojoin+`: Konfigurieren der Serveroption "autojoin"
|
||||
|
||||
----
|
||||
/autojoin add [<channel1> [<channel2>...]]
|
||||
addraw <channel1>[,<channel2>...] [<key1>[,<key2>...]]
|
||||
del [<channel1> [<channel2>...]]
|
||||
save
|
||||
sort
|
||||
|
||||
add: Hinzufügen des aktuellen Kanals oder einer Liste von Kanälen (mit optionalen Schlüsseln) zur autojoin-Option; Wenn Sie sich in dem Kanal befinden und der Schlüssel nicht übergeben wird, wird der Schlüssel im Kanal gelesen
|
||||
addraw: das IRC Roh-Format wird genutzt (wie beim /join Befehl): alle Kanäle werden durch Kommata voneinander getrennt und optional werden die Schlüssel durch Kommata separiert
|
||||
del: Löschen des aktuellen Kanals oder eine Liste von Kanälen aus der autoJoin-Option
|
||||
channel: Kanalname
|
||||
key: Schlüssel für den Kanal
|
||||
save: Speichert die aktuell besuchten Kanäle in der autojoin-Option
|
||||
sort: sortiert die Kanäle alphabetisch in der autojoin Option
|
||||
|
||||
Beispiele:
|
||||
/autojoin add
|
||||
/autojoin add #test
|
||||
/autojoin add #chan1 #chan2
|
||||
/autojoin addraw #chan1,#chan2,#chan3 key1,key2
|
||||
/autojoin del
|
||||
/autojoin del #chan1
|
||||
/autojoin save
|
||||
/autojoin sort
|
||||
----
|
||||
|
||||
[[command_irc_ban]]
|
||||
* `+ban+`: Nicknamen oder Hosts sperren/verbannen
|
||||
|
||||
|
||||
@@ -1290,12 +1290,6 @@
|
||||
** Werte: beliebige Zeichenkette
|
||||
** Standardwert: `+"*"+`
|
||||
|
||||
* [[option_weechat.plugin.debug]] *weechat.plugin.debug*
|
||||
** Beschreibung: pass:none[aktiviert Debug-Nachrichten für alle Erweiterungen (diese Einstellung ist standardmäßig deaktiviert und das ist auch gut so)]
|
||||
** Typ: boolesch
|
||||
** Werte: on, off
|
||||
** Standardwert: `+off+`
|
||||
|
||||
* [[option_weechat.plugin.extension]] *weechat.plugin.extension*
|
||||
** Beschreibung: pass:none[durch Kommata getrennte Liste von Dateinamenserweiterungen, welche für die Erweiterungen genutzt werden sollen]
|
||||
** Typ: Zeichenkette
|
||||
@@ -2696,6 +2690,12 @@
|
||||
** Werte: beliebige Zeichenkette
|
||||
** Standardwert: `+""+`
|
||||
|
||||
* [[option_irc.server_default.autojoin_dynamic]] *irc.server_default.autojoin_dynamic*
|
||||
** Beschreibung: pass:none[Setze automatisch die "autojoin"-Option entsprechend den Kanälen, die du manuell beitrittst bzw. verlässt, mit den Befehlen /join und /part]
|
||||
** Typ: boolesch
|
||||
** Werte: on, off
|
||||
** Standardwert: `+off+`
|
||||
|
||||
* [[option_irc.server_default.autoreconnect]] *irc.server_default.autoreconnect*
|
||||
** Beschreibung: pass:none[Nach einer Trennung vom Server die Verbindung automatisch wiederherstellen]
|
||||
** Typ: boolesch
|
||||
@@ -3064,11 +3064,11 @@
|
||||
** Werte: -1 .. 43200
|
||||
** Standardwert: `+0+`
|
||||
|
||||
* [[option_relay.network.compression_level]] *relay.network.compression_level*
|
||||
** Beschreibung: pass:none[Kompressionsstärke der Pakete die durch das WeeChat Protokoll an den Client gesendet werden sollen (0 = Kompression deaktiviert, 1 = niedrige Kompression ... 9 = stärkste Kompression)]
|
||||
* [[option_relay.network.compression]] *relay.network.compression*
|
||||
** Beschreibung: pass:none[Komprimierung von Nachrichten, die mittels "weechat" Protokoll an Clients gesendet werden: 0 = Komprimierung deaktivieren, 1 = geringe Komprimierung / schnell ... 100 = beste Komprimierung / langsam; dieser Wert ist eine Prozentangabe, welcher für zlib nach 1-9 und für zstd nach 1-19 umgewandelt wird; der Standardwert wird empfohlen, denn er bietet einen guten Kompromiss zwischen Kompression und Geschwindigkeit]
|
||||
** Typ: integer
|
||||
** Werte: 0 .. 9
|
||||
** Standardwert: `+6+`
|
||||
** Werte: 0 .. 100
|
||||
** Standardwert: `+20+`
|
||||
|
||||
* [[option_relay.network.ipv6]] *relay.network.ipv6*
|
||||
** Beschreibung: pass:none[lauscht standardmäßig am IPv6 Socket (zusätzlich zu IPv4, welches als Standardprotokoll genutzt wird); mittels des Protokollnamens kann das IPv4 und IPv6 Protokoll, einzeln oder gemeinsam, erzwungen werden (siehe /help relay)]
|
||||
|
||||
@@ -100,7 +100,7 @@ $HOME/.local/share/weechat/weechat.log::
|
||||
WeeChat wird programmiert von Sébastien Helleu und weiteren Beteiligten (eine vollständige Auflistung
|
||||
findet man in der AUTHORS.adoc Datei).
|
||||
|
||||
Copyright (C) 2003-2021 {author}
|
||||
Copyright (C) 2003-2022 {author}
|
||||
|
||||
WeeChat is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -887,6 +887,21 @@ um sich vor dem Betreten von Channels bei "nickserv" zu identifizieren:
|
||||
[[edit_autojoin]]
|
||||
=== Wie kann ich Channels zur autojoin Option entfernen/hinzufügen?
|
||||
|
||||
Ab WeeChat ≥ 3.5 können Sie die Kanäle, denen Sie manuell betreten und verlassen,
|
||||
automatisch aufzeichnen und die Serveroption „autojoin“ entsprechend anpassen.
|
||||
|
||||
Für alle Server:
|
||||
|
||||
----
|
||||
/set irc.server_default.autojoin_record on
|
||||
----
|
||||
|
||||
Für einen einzelnen Server:
|
||||
|
||||
----
|
||||
/set irc.server.libera.autojoin_record on
|
||||
----
|
||||
|
||||
Um die Liste der autojoin Channels zu editieren,
|
||||
kann der Befehl `/set` genutzt werden.
|
||||
In folgendem Beispiel wird der "libera"-Server angepasst:
|
||||
@@ -1174,6 +1189,14 @@ $ cd ~/.cache/weechat/script
|
||||
$ curl -O https://weechat.org/files/plugins.xml.gz
|
||||
----
|
||||
|
||||
Wenn Sie macOS ausführen und die heruntergeladene Datei eine Größe von 0 Byte hat,
|
||||
versuchen Sie, diese Variable in Ihrer Shell-Initialisierungsdatei oder auf der
|
||||
Befehlszeile zu setzen. Bevor Sie WeeChat starten:
|
||||
|
||||
----
|
||||
export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
|
||||
----
|
||||
|
||||
[[spell_dictionaries]]
|
||||
=== Ich habe aspell Wörterbücher auf mein System installiert. Wie kann ich diese nutzen, ohne WeeChat neu starten zu müssen?
|
||||
|
||||
|
||||
@@ -205,6 +205,12 @@ Funktionen werden aufgerufen mittels `+weechat.xxx(arg1, arg2, ...)+`.
|
||||
|
||||
Funktionen werden aufgerufen mittels `+weechat::xxx arg1 arg2 ...+`.
|
||||
|
||||
Da Tcl nur String-Typen hat, gibt es keinen Null-Typ, der als Argument übergeben werden kann
|
||||
wenn eine Funktion Nullwerte akzeptiert. Um dies zu überwinden, können Sie die Konstante
|
||||
`$::weechat::WEECHAT_NULL` verwenden, das als Nullwert fungiert. Diese Konstante ist definiert
|
||||
als `\uFFFF\uFFFF\uFFFFWEECHAT_NULL\uFFFF\uFFFF\uFFFF`, es ist somit sehr unwahrscheinlich
|
||||
das es ungewollt verwendet wird.
|
||||
|
||||
[[language_guile]]
|
||||
==== Guile (Scheme)
|
||||
|
||||
@@ -560,7 +566,7 @@ lesen Sie bitte link:weechat_plugin_api.en.html[WeeChat Plugin API Reference] (E
|
||||
|
||||
Liste der Skript API Funktionen:
|
||||
|
||||
[width="100%",cols="1,3",options="header"]
|
||||
[width="100%",cols="1,5",options="header"]
|
||||
|===
|
||||
| Kategorie | Funktionen
|
||||
|
||||
@@ -660,6 +666,7 @@ Liste der Skript API Funktionen:
|
||||
print (für Python: prnt) +
|
||||
print_date_tags (für Python: prnt_date_tags) +
|
||||
print_y (für Python: prnt_y) +
|
||||
print_y_date_tags (für Python: prnt_y_date_tags) +
|
||||
log_print
|
||||
|
||||
| Hooks |
|
||||
@@ -690,6 +697,7 @@ Liste der Skript API Funktionen:
|
||||
|
||||
| Buffer |
|
||||
buffer_new +
|
||||
buffer_new_props +
|
||||
current_buffer +
|
||||
buffer_search +
|
||||
buffer_search_main +
|
||||
@@ -808,7 +816,7 @@ Liste der Skript API Funktionen:
|
||||
|
||||
Liste der Konstanten in Skript API:
|
||||
|
||||
[width="100%",cols="1,3",options="header"]
|
||||
[width="100%",cols="1,5",options="header"]
|
||||
|===
|
||||
| Kategorie | Konstanten
|
||||
|
||||
@@ -893,7 +901,7 @@ Beispiele:
|
||||
weechat.prnt("", "Hallo")
|
||||
|
||||
# Gibt den Text "Hallo" im Core Buffer aus, schreibt diesen aber nicht in die Protokolldatei
|
||||
# (nur Version >= 0.3.3)
|
||||
# (nur Version ≥ 0.3.3)
|
||||
weechat.prnt_date_tags("", 0, "no_log", "hello")
|
||||
|
||||
# Gibt den Präfix "==>" gefolgt von dem Text "Hallo" im aktuellen Buffer aus
|
||||
@@ -1073,26 +1081,53 @@ Mit der Funktion `+hook_process+` kann ein Hintergrundprozess gestartet werden.
|
||||
Der Callback wird aufgerufen sobald der Hintergrundprozess abgearbeitet wurde.
|
||||
Dies kann auch mehrfach der Fall sein.
|
||||
|
||||
Für den letzten Aufruf des Callback wird _rc_ auf 0 oder einen positiven Wert
|
||||
gesetzt. Dies ist der Return Code des Befehls.
|
||||
Für den letzten Aufruf des Callback wird _return_code_ auf 0 oder einen positiven
|
||||
Wert gesetzt. Dies ist der Return Code des Befehls.
|
||||
|
||||
Beispiele:
|
||||
|
||||
[source,python]
|
||||
----
|
||||
process_output = ""
|
||||
|
||||
def my_process_cb(data, command, rc, out, err):
|
||||
global process_output
|
||||
if out != "":
|
||||
process_output += out
|
||||
if int(rc) >= 0:
|
||||
weechat.prnt("", process_output)
|
||||
def my_process_cb(data, command, return_code, out, err):
|
||||
if return_code == weechat.WEECHAT_HOOK_PROCESS_ERROR:
|
||||
weechat.prnt("", "Error with command '%s'" % command)
|
||||
return weechat.WEECHAT_RC_OK
|
||||
if return_code >= 0:
|
||||
weechat.prnt("", "return_code = %d" % return_code)
|
||||
if out:
|
||||
weechat.prnt("", "stdout: %s" % out)
|
||||
if err:
|
||||
weechat.prnt("", "stderr: %s" % err)
|
||||
return weechat.WEECHAT_RC_OK
|
||||
|
||||
weechat.hook_process("/bin/ls -l /etc", 10 * 1000, "my_process_cb", "")
|
||||
----
|
||||
|
||||
Sie können statt eines externen Befehls auch direkt eine
|
||||
Skriptfunktion aufrufen, die Weechat blockieren würde:
|
||||
|
||||
[source,python]
|
||||
----
|
||||
def get_status(data):
|
||||
# do something blocking...
|
||||
# ...
|
||||
return "this is the result"
|
||||
|
||||
def my_process_cb(data, command, return_code, out, err):
|
||||
if return_code == weechat.WEECHAT_HOOK_PROCESS_ERROR:
|
||||
weechat.prnt("", "Error with command '%s'" % command)
|
||||
return weechat.WEECHAT_RC_OK
|
||||
if return_code >= 0:
|
||||
weechat.prnt("", "return_code = %d" % return_code)
|
||||
if out:
|
||||
weechat.prnt("", "stdout: %s" % out)
|
||||
if err:
|
||||
weechat.prnt("", "stderr: %s" % err)
|
||||
return weechat.WEECHAT_RC_OK
|
||||
|
||||
hook = weechat.hook_process("func:get_status", 5000, "my_process_cb", "")
|
||||
----
|
||||
|
||||
[[url_transfer]]
|
||||
==== URL Übertragung
|
||||
|
||||
@@ -1107,15 +1142,15 @@ dabei in der Callback-Variable "out" gesichert (Standardausgabe des Prozesses):
|
||||
|
||||
[source,python]
|
||||
----
|
||||
# Zeigt die aktuelle stabile Version von WeeChat an.
|
||||
weechat_version = ""
|
||||
# Display latest stable version of WeeChat.
|
||||
weechat_latest_version = ""
|
||||
|
||||
def weechat_process_cb(data, command, rc, out, err):
|
||||
global weechat_version
|
||||
if out != "":
|
||||
weechat_version += out
|
||||
if int(rc) >= 0:
|
||||
weechat.prnt("", "aktuelle stabile WeeChat-Version: %s" % weechat_version)
|
||||
def weechat_process_cb(data, command, return_code, out, err):
|
||||
global weechat_latest_version
|
||||
if out:
|
||||
weechat_latest_version += out
|
||||
if return_code >= 0:
|
||||
weechat.prnt("", "Latest WeeChat version: %s" % weechat_latest_version)
|
||||
return weechat.WEECHAT_RC_OK
|
||||
|
||||
weechat.hook_process("url:https://weechat.org/dev/info/stable/",
|
||||
@@ -1130,9 +1165,9 @@ WeeChat Entwicklerpaket in die Datei _/tmp/weechat-devel.tar.gz_ gesichert:
|
||||
|
||||
[source,python]
|
||||
----
|
||||
def my_process_cb(data, command, rc, out, err):
|
||||
if int(rc) >= 0:
|
||||
weechat.prnt("", "End of transfer (rc=%s)" % rc)
|
||||
def my_process_cb(data, command, return_code, out, err):
|
||||
if return_code >= 0:
|
||||
weechat.prnt("", "End of transfer (return code = %d)" % return_code)
|
||||
return weechat.WEECHAT_RC_OK
|
||||
|
||||
weechat.hook_process_hashtable("url:https://weechat.org/files/src/weechat-devel.tar.gz",
|
||||
|
||||
@@ -1,148 +0,0 @@
|
||||
= WeeChat Anleitung für Testpersonen
|
||||
:author: Sébastien Helleu
|
||||
:email: flashcode@flashtux.org
|
||||
:lang: de
|
||||
:toc: left
|
||||
:toc-title: Inhaltsverzeichnis
|
||||
:sectnums:
|
||||
:docinfo1:
|
||||
|
||||
|
||||
Übersetzer:
|
||||
|
||||
* Juergen Descher <jhdl@gmx.net>, 2009
|
||||
* Nils Görs <weechatter@arcor.de>, 2009-2016
|
||||
|
||||
|
||||
[[purpose]]
|
||||
== Intention
|
||||
|
||||
Viele dankbare Anwender fragen uns wie sie bei der Entwicklung von WeeChat
|
||||
helfen können. Der einfachste (aber auch der kniffligste) Weg uns zu helfen ist:
|
||||
testen!
|
||||
|
||||
Testen ist ein sehr wichtiger Teil der Programmentwicklung und sollte daher
|
||||
nicht unterbewertet werden. Wenn neue Funktionen implementiert wurden dann
|
||||
müssen diese getestet werden. Für manche Funktionen gibt es sehr viele
|
||||
verschiedene Problemstellungen, oder diese sind äußerst Umfangreich. Dadurch
|
||||
können die Entwickler nicht jede einzelne Variante ausprobieren.
|
||||
|
||||
Ein Beispiel: Eine berüchtigte Zeichensatz-Erweiterung wurde in WeeChat 0.2.2
|
||||
eingeführt. Keiner von uns, Entwickler, Mithelfende und Tester, nutzten Channels
|
||||
in denen länderspezifische Zeichen im eigenen Namen Verwendung fanden. Somit wurde
|
||||
die Version 0.2.2 freigegeben und wir bekamen daraufhin eine Flut von Beschwerden
|
||||
durch russischen User, bei denen der Fehler sichtbar war. Hätten wir mehr Tester,
|
||||
dann sollte so etwas nicht mehr passieren.
|
||||
|
||||
Eine stabile Version von WeeChat zu testen bringt uns leider nicht weiter da die
|
||||
Entwickler in der Zwischenzeit neue Funktionen implementiert haben und vermutlich
|
||||
alte Fehler schon behoben wurden.
|
||||
|
||||
|
||||
[[prepare_system]]
|
||||
== Bereite Dein System vor
|
||||
|
||||
Es wäre uns schon sehr damit geholfen wenn Du Linux _core_ Dateien aktivieren würdest.
|
||||
Falls WeeChat abstürzen sollte wird eine Datei Namens _core_ erzeugt. Diese Datei
|
||||
beinhaltet viele nützliche Debug-Informationen um das genaue Problem in WeeChat
|
||||
zu lokalisieren.
|
||||
|
||||
Falls Du die _bash_ als shell benutzt, dann ergänze Deine _~/.bashrc_ durch folgende
|
||||
Zeile:
|
||||
|
||||
----
|
||||
ulimit -c unlimited
|
||||
----
|
||||
|
||||
|
||||
[[download]]
|
||||
== Besorge Dir die Entwickler-Version
|
||||
|
||||
aktueller Programmcode (mit den aktuellen Fehlern und Funktionen) ist im GIT Repository
|
||||
gespeichert.
|
||||
|
||||
Du könntest Dich dazu entscheiden es manuell zu bauen (empfohlen):
|
||||
|
||||
* die GIT Version kann parallel zur stabilen Version kompiliert und installiert
|
||||
werden.
|
||||
* Du benötigst keine Root-Rechte, und opfern brauchst Du Deine stabile Version
|
||||
von WeeChat auch nicht.
|
||||
|
||||
[[get_sources]]
|
||||
=== Beschaffe und baue die Quellen
|
||||
|
||||
Erstelle zuerst einen neuen Ordner, z.B. _weechat-git_:
|
||||
|
||||
----
|
||||
$ mkdir ~/weechat-git
|
||||
$ cd ~/weechat-git
|
||||
----
|
||||
|
||||
Falls Du git installiert hast, clone das git Repository (empfohlen):
|
||||
|
||||
----
|
||||
$ git clone https://github.com/weechat/weechat.git
|
||||
$ cd weechat
|
||||
----
|
||||
|
||||
[NOTE]
|
||||
Um auf den aktuellen Stand zu kommen verwendest Du z.B. `git pull` in
|
||||
diesem Ordner.
|
||||
|
||||
Ansonsten kannst Du das _Entwickler-Paket_ herunterladen und entpacken:
|
||||
|
||||
----
|
||||
$ wget https://weechat.org/files/src/weechat-devel.tar.bz2
|
||||
$ tar xvjf weechat-devel.tar.bz2
|
||||
$ cd weechat-devel
|
||||
----
|
||||
|
||||
Um die Quellen zu übersetzen, wird CMake empfohlen:
|
||||
|
||||
----
|
||||
$ mkdir build
|
||||
$ cd build
|
||||
$ cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/weechat-git -DWEECHAT_HOME=~/.weechat-dev -DCMAKE_BUILD_TYPE=Debug
|
||||
$ make
|
||||
$ make install
|
||||
----
|
||||
|
||||
Falls Du CMake nicht hast, ist es auch möglich die autotools zu nutzen:
|
||||
|
||||
----
|
||||
$ ./autogen.sh
|
||||
$ ./configure --prefix=$HOME/weechat-git WEECHAT_HOME=~/.weechat-dev
|
||||
$ make
|
||||
$ make install
|
||||
----
|
||||
|
||||
[[install_binary_package]]
|
||||
=== Installieren des Programm-Paketes
|
||||
|
||||
Abhängig Deiner Linux Distribution:
|
||||
|
||||
* Debian: https://weechat.org/download/debian
|
||||
* Gentoo: https://weechat.org/download
|
||||
* ArchLinux: PKGBUILD von https://aur.archlinux.org/
|
||||
* andere: Wissen wir nicht! Eheh.
|
||||
|
||||
|
||||
[[run]]
|
||||
== WeeChat starten
|
||||
|
||||
Die Befehlszeile lautet:
|
||||
|
||||
----
|
||||
$ ~/weechat-git/bin/weechat
|
||||
----
|
||||
|
||||
Immer noch munter? Dann solltest Du jetzt das bekannte Interface sehen und nun
|
||||
prahle vor Anderen, dass Du die neueste WeeChat-Version verwendest :)
|
||||
|
||||
Solltest Du nun ein merkwürdiges Verhalten bemerken (es können diverse Probleme
|
||||
oder Abstürze auftreten oder einfach Dein Bier überkochen) zögere nicht, komme
|
||||
in den Channel _#weechat_ auf _irc.libera.chat_ (A.d.Ü.: englischsprachig) und
|
||||
berichte uns darüber.
|
||||
|
||||
Auch falls alles korrekt funktionieren sollte gib uns trotzdem Bescheid, wir
|
||||
brauchen Deine Rückmeldung!
|
||||
+2030
-1883
File diff suppressed because it is too large
Load Diff
+1
-1
@@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env python3
|
||||
#
|
||||
# Copyright (C) 2008-2021 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2008-2022 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
||||
+218
-4
@@ -1,38 +1,252 @@
|
||||
<!--
|
||||
Custom styles for Asciidoctor
|
||||
Copyright (C) 2016-2021 Sébastien Helleu <flashcode@flashtux.org>
|
||||
Copyright (C) 2016-2022 Sébastien Helleu <flashcode@flashtux.org>
|
||||
-->
|
||||
<style>
|
||||
#header,#content,#footnotes,#footer {
|
||||
|
||||
/* themes/colors */
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
/* dark theme */
|
||||
:root {
|
||||
--body-bg-color: #1a1a1a;
|
||||
--body-color: #ddd;
|
||||
--body-font: system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";
|
||||
--link-color: #8aceff;
|
||||
--table-thead-tfoot: #252525;
|
||||
--th-color: #fff;
|
||||
--toc-bg-color: #252525;
|
||||
--color-header1: #ddd;
|
||||
--color-header2: #da8975;
|
||||
--header-details-color: #aaa;
|
||||
--border: 1px solid #444;
|
||||
--code-bg-color: #252525;
|
||||
--pre-color: #ddd;
|
||||
--pre-bg-color: #202020;
|
||||
--pre-code-bg-color: #202020;
|
||||
--keyseq-color: #777;
|
||||
--kbd-bg-color: #252525;
|
||||
--kbd-border: 1px solid #333;
|
||||
--kbd-box-shadow: 0 1px 0 rgba(0, 0, 0, .2), inset 0 0 0 .1em #2c2c2c;
|
||||
--icon-note-color: #4d7cc6;
|
||||
--icon-tip-color: #fff;
|
||||
--icon-warning-color: #f39c12;
|
||||
--icon-caution-color: #bf3400;
|
||||
--icon-important-color: #f44336;
|
||||
--mark-bg-color: #007;
|
||||
}
|
||||
}
|
||||
|
||||
@media (not (prefers-color-scheme: dark)), (prefers-color-scheme: light) {
|
||||
/* light theme */
|
||||
:root {
|
||||
--body-bg-color: ##fff;
|
||||
--body-color: #353535;
|
||||
--body-font: system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";
|
||||
--link-color: #1d4b8f;
|
||||
--table-thead-tfoot: #f7f8f7;
|
||||
--th-color: #000;
|
||||
--toc-bg-color: #f8f8f7;
|
||||
--color-header1: #000;
|
||||
--color-header2: #ba3925;
|
||||
--header-details-color: #797979;
|
||||
--border: 1px solid #dddddf;
|
||||
--code-bg-color: #f7f7f8;
|
||||
--keyseq-color: #333c;
|
||||
--pre-color: #353535;
|
||||
--pre-bg-color: #f7f7f8;
|
||||
--pre-code-bg-color: #202020;
|
||||
--kbd-bg-color: #f7f7f7;
|
||||
--kbd-border: 1px solid #ccc;
|
||||
--kbd-box-shadow: 0 1px 0 rgba(0, 0, 0, .2), inset 0 0 0 .1em #fff;
|
||||
--icon-note-color: #19407c;
|
||||
--icon-tip-color: #111;
|
||||
--icon-warning-color: #bf6900;
|
||||
--icon-caution-color: #ff0000;
|
||||
--icon-important-color: #bf0000;
|
||||
--mark-bg-color: #9df;
|
||||
}
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: var(--body-bg-color);
|
||||
color: var(--body-color);
|
||||
font-family: var(--body-font);
|
||||
}
|
||||
|
||||
h1 {
|
||||
color: var(--color-header1) !important;
|
||||
}
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
color: var(--color-header2) !important;
|
||||
}
|
||||
|
||||
h1, h2, h3, #toctitle, .sidebarblock > .content > .title, h4, h5, h6 {
|
||||
font-family: var(--body-font);
|
||||
}
|
||||
|
||||
a:link, a:visited, #header .details span.email a {
|
||||
color: var(--link-color);
|
||||
}
|
||||
|
||||
table thead, table tfoot {
|
||||
background: var(--table-thead-tfoot) !important;
|
||||
}
|
||||
|
||||
table.tableblock, th.tableblock, td.tableblock {
|
||||
border: var(--border);
|
||||
}
|
||||
|
||||
th {
|
||||
color: var(--th-color) !important;
|
||||
}
|
||||
|
||||
td {
|
||||
background-color: var(--body-bg-color);
|
||||
color: var(--body-color) !important;
|
||||
}
|
||||
|
||||
#toc.toc2 {
|
||||
background-color: var(--toc-bg-color);
|
||||
border-right: none;
|
||||
}
|
||||
|
||||
#toc.toc2 > ul {
|
||||
font-size: .9em;
|
||||
}
|
||||
|
||||
@media screen and (max-width:767px) {
|
||||
#toc.toc2 {
|
||||
background-color: var(--body-bg-color);
|
||||
}
|
||||
}
|
||||
|
||||
p, .paragraph.lead > p, #preamble > .sectionbody > [class="paragraph"]:first-of-type p, #toctitle, .title {
|
||||
color: var(--body-color);
|
||||
}
|
||||
|
||||
#header .details {
|
||||
border-bottom: var(--border);
|
||||
color: var(--header-details-color);
|
||||
}
|
||||
|
||||
code, .prettyprint {
|
||||
background-color: var(--code-bg-color) !important;
|
||||
color: var(--body-color);
|
||||
}
|
||||
|
||||
pre {
|
||||
color: var(--pre-color) !important;
|
||||
}
|
||||
|
||||
pre > code {
|
||||
background-color: var(--pre-code-bg-color) !important;
|
||||
}
|
||||
|
||||
.keyseq {
|
||||
color: var(--keyseq-color);
|
||||
}
|
||||
|
||||
kbd {
|
||||
background-color: var(--kbd-bg-color) !important;
|
||||
border: var(--kbd-border) !important;
|
||||
box-shadow: var(--kbd-box-shadow);
|
||||
color: var(--body-color);
|
||||
}
|
||||
|
||||
.literalblock pre, .listingblock > .content > pre:not(.highlight), .listingblock > .content > pre[class="highlight"], .listingblock > .content > pre[class^="highlight "] {
|
||||
background-color: var(--pre-bg-color);
|
||||
color: var(--body-color);
|
||||
}
|
||||
|
||||
.sect1 + .sect1 {
|
||||
border-top: var(--border);
|
||||
}
|
||||
|
||||
.admonitionblock td.icon .icon-note::before {
|
||||
color: var(--icon-note-color);
|
||||
}
|
||||
|
||||
.admonitionblock td.icon .icon-tip::before {
|
||||
color: var(--icon-tip-color);
|
||||
}
|
||||
|
||||
.admonitionblock td.icon .icon-warning::before {
|
||||
color: var(--icon-warning-color);
|
||||
}
|
||||
|
||||
.admonitionblock td.icon .icon-caution::before {
|
||||
color: var(--icon-caution-color);
|
||||
}
|
||||
|
||||
.admonitionblock td.icon .icon-important::before {
|
||||
color: var(--icon-important-color);
|
||||
}
|
||||
|
||||
.admonitionblock > table td.content {
|
||||
border-left: var(--border);
|
||||
}
|
||||
|
||||
mark {
|
||||
background-color: var(--mark-bg-color);
|
||||
color: var(--body-color);
|
||||
}
|
||||
|
||||
/* syntax highlighting tuning */
|
||||
|
||||
pre.pygments .tok-cp {
|
||||
color: #44cfaf;
|
||||
}
|
||||
|
||||
pre.pygments .tok-nc, pre.pygments .tok-nf {
|
||||
color: #649fef;
|
||||
}
|
||||
|
||||
pre.pygments .tok-gu, pre.pygments .tok-nc, pre.pygments .tok-nn {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/* asciidoctor styles tuning */
|
||||
|
||||
#header, #content, #footnotes, #footer {
|
||||
max-width: none;
|
||||
padding-left: 3em;
|
||||
padding-right: 3em;
|
||||
}
|
||||
|
||||
#header #revnumber {
|
||||
text-transform: none;
|
||||
}
|
||||
h1,h2,h3,h4,h5 {
|
||||
|
||||
h1, h2, h3, h4, h5 {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.literalblock pre {
|
||||
font-family: monospace, 'Courier New', Courier;
|
||||
line-height: normal;
|
||||
}
|
||||
|
||||
kbd {
|
||||
font-size: .9em;
|
||||
}
|
||||
|
||||
.keyseq {
|
||||
margin-left: .2em;
|
||||
margin-right: .2em;
|
||||
}
|
||||
|
||||
.tableblock kbd {
|
||||
margin-top: .2em;
|
||||
margin-bottom: .2em;
|
||||
}
|
||||
|
||||
.hex {
|
||||
padding: 0 .2em;
|
||||
border: 1px solid #88b;
|
||||
border: var(--border);
|
||||
margin: 0 .2em;
|
||||
font-family: monospace;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
</style>
|
||||
|
||||
+1
-14
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# This file is part of WeeChat, the extensible chat client.
|
||||
#
|
||||
@@ -122,19 +122,6 @@ if(ENABLE_DOC)
|
||||
add_custom_target(doc-quickstart-en ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.en.html)
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.en.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
|
||||
|
||||
# tester's guide
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_tester.en.html
|
||||
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -o weechat_tester.en.html ${CMAKE_CURRENT_SOURCE_DIR}/weechat_tester.en.adoc
|
||||
DEPENDS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../docinfo.html
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/weechat_tester.en.adoc
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
COMMENT "Building weechat_tester.en.html"
|
||||
)
|
||||
add_custom_target(doc-tester-en ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_tester.en.html)
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_tester.en.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
|
||||
|
||||
# relay protocol
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_relay_protocol.en.html
|
||||
|
||||
+1
-7
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2006 Julien Louis <ptitlouis@sysif.net>
|
||||
#
|
||||
# This file is part of WeeChat, the extensible chat client.
|
||||
@@ -29,7 +29,6 @@ EXTRA_DIST = CMakeLists.txt \
|
||||
weechat_scripting.en.adoc \
|
||||
weechat_faq.en.adoc \
|
||||
weechat_quickstart.en.adoc \
|
||||
weechat_tester.en.adoc \
|
||||
weechat_relay_protocol.en.adoc \
|
||||
weechat_dev.en.adoc \
|
||||
includes/autogen_api_completions.en.adoc \
|
||||
@@ -58,7 +57,6 @@ if DOC
|
||||
weechat_scripting.en.html \
|
||||
weechat_faq.en.html \
|
||||
weechat_quickstart.en.html \
|
||||
weechat_tester.en.html \
|
||||
weechat_relay_protocol.en.html \
|
||||
weechat_dev.en.html
|
||||
doc_install = install-doc
|
||||
@@ -92,10 +90,6 @@ weechat_faq.en.html: weechat_faq.en.adoc $(abs_top_srcdir)/doc/docinfo.html
|
||||
weechat_quickstart.en.html: weechat_quickstart.en.adoc $(abs_top_srcdir)/doc/docinfo.html
|
||||
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_quickstart.en.html $(abs_top_srcdir)/doc/en/weechat_quickstart.en.adoc
|
||||
|
||||
# tester's guide
|
||||
weechat_tester.en.html: weechat_tester.en.adoc $(abs_top_srcdir)/doc/docinfo.html
|
||||
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_tester.en.html $(abs_top_srcdir)/doc/en/weechat_tester.en.adoc
|
||||
|
||||
# relay protocol
|
||||
weechat_relay_protocol.en.html: weechat_relay_protocol.en.adoc $(abs_top_srcdir)/doc/docinfo.html
|
||||
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_relay_protocol.en.html $(abs_top_srcdir)/doc/en/weechat_relay_protocol.en.adoc
|
||||
|
||||
@@ -26,6 +26,8 @@
|
||||
|
||||
| irc | irc_channels | channels on all IRC servers
|
||||
|
||||
| irc | irc_channels_autojoin | channels automatically joined on the current server (option "autojoin")
|
||||
|
||||
| irc | irc_ignores_numbers | numbers for defined ignores
|
||||
|
||||
| irc | irc_modelist_masks | modelist masks of current IRC channel; required argument: modelist mode
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|===
|
||||
| Plugin | Name | Description | Hashtable (input) | Hashtable (output)
|
||||
|
||||
| irc | irc_message_parse | parse an IRC message | "message": IRC message, "server": server name (optional) | "tags": tags, "tag_xxx": unescaped value of tag "xxx" (one key per tag), "message_without_tags": message without the tags, "nick": nick, "user": user, "host": host, "command": command, "channel": channel, "arguments": arguments (includes channel), "text": text (for example user message), "pos_command": index of "command" message ("-1" if "command" was not found), "pos_arguments": index of "arguments" message ("-1" if "arguments" was not found), "pos_channel": index of "channel" message ("-1" if "channel" was not found), "pos_text": index of "text" message ("-1" if "text" was not found)
|
||||
| irc | irc_message_parse | parse an IRC message | "message": IRC message, "server": server name (optional) | "tags": tags, "tag_xxx": unescaped value of tag "xxx" (one key per tag), "message_without_tags": message without the tags, "nick": nick, "user": user, "host": host, "command": command, "channel": channel, "arguments": arguments (includes channel), "text": text (for example user message), "param1" ... "paramN": parsed command parameters, "num_params": number of parsed command parameters, "pos_command": index of "command" message ("-1" if "command" was not found), "pos_arguments": index of "arguments" message ("-1" if "arguments" was not found), "pos_channel": index of "channel" message ("-1" if "channel" was not found), "pos_text": index of "text" message ("-1" if "text" was not found)
|
||||
|
||||
| irc | irc_message_split | split an IRC message (to fit in 512 bytes by default) | "message": IRC message, "server": server name (optional) | "msg1" ... "msgN": messages to send (without final "\r\n"), "args1" ... "argsN": arguments of messages, "count": number of messages
|
||||
|
||||
|
||||
@@ -123,6 +123,35 @@ Examples:
|
||||
/auth user2 ${weechat_config_dir}/ecdsa2.pem
|
||||
----
|
||||
|
||||
[[command_irc_autojoin]]
|
||||
* `+autojoin+`: configure the "autojoin" server option
|
||||
|
||||
----
|
||||
/autojoin add [<channel1> [<channel2>...]]
|
||||
addraw <channel1>[,<channel2>...] [<key1>[,<key2>...]]
|
||||
del [<channel1> [<channel2>...]]
|
||||
save
|
||||
sort
|
||||
|
||||
add: add current channel or a list of channels (with optional keys) to the autojoin option; if you are on the channel and the key is not provided, the key is read in the channel
|
||||
addraw: use the IRC raw format (same as /join command): all channels separated by commas, optional keys separated by commas
|
||||
del: delete current channel or a list of channels from the autojoin option
|
||||
channel: channel name
|
||||
key: key for the channel
|
||||
save: save currently joined channels in the autojoin option
|
||||
sort: sort alphabetically channels in the autojoin option
|
||||
|
||||
Examples:
|
||||
/autojoin add
|
||||
/autojoin add #test
|
||||
/autojoin add #chan1 #chan2
|
||||
/autojoin addraw #chan1,#chan2,#chan3 key1,key2
|
||||
/autojoin del
|
||||
/autojoin del #chan1
|
||||
/autojoin save
|
||||
/autojoin sort
|
||||
----
|
||||
|
||||
[[command_irc_ban]]
|
||||
* `+ban+`: ban nicks or hosts
|
||||
|
||||
|
||||
@@ -1290,12 +1290,6 @@
|
||||
** values: any string
|
||||
** default value: `+"*"+`
|
||||
|
||||
* [[option_weechat.plugin.debug]] *weechat.plugin.debug*
|
||||
** description: pass:none[enable debug messages by default in all plugins (option disabled by default, which is highly recommended)]
|
||||
** type: boolean
|
||||
** values: on, off
|
||||
** default value: `+off+`
|
||||
|
||||
* [[option_weechat.plugin.extension]] *weechat.plugin.extension*
|
||||
** description: pass:none[comma separated list of file name extensions for plugins]
|
||||
** type: string
|
||||
@@ -2696,6 +2690,12 @@
|
||||
** values: any string
|
||||
** default value: `+""+`
|
||||
|
||||
* [[option_irc.server_default.autojoin_dynamic]] *irc.server_default.autojoin_dynamic*
|
||||
** description: pass:none[set automatically the "autojoin" option according to the channels you manually join and part with commands /join and /part]
|
||||
** type: boolean
|
||||
** values: on, off
|
||||
** default value: `+off+`
|
||||
|
||||
* [[option_irc.server_default.autoreconnect]] *irc.server_default.autoreconnect*
|
||||
** description: pass:none[automatically reconnect to server when disconnected]
|
||||
** type: boolean
|
||||
@@ -3064,11 +3064,11 @@
|
||||
** values: -1 .. 43200
|
||||
** default value: `+0+`
|
||||
|
||||
* [[option_relay.network.compression_level]] *relay.network.compression_level*
|
||||
** description: pass:none[compression level for packets sent to client with WeeChat protocol (0 = disable compression, 1 = low compression ... 9 = best compression)]
|
||||
* [[option_relay.network.compression]] *relay.network.compression*
|
||||
** description: pass:none[compression of messages sent to clients with "weechat" protocol: 0 = disable compression, 1 = low compression / fast ... 100 = best compression / slow; the value is a percentage converted to 1-9 for zlib and 1-19 for zstd; the default value is recommended, it offers a good compromise between compression and speed]
|
||||
** type: integer
|
||||
** values: 0 .. 9
|
||||
** default value: `+6+`
|
||||
** values: 0 .. 100
|
||||
** default value: `+20+`
|
||||
|
||||
* [[option_relay.network.ipv6]] *relay.network.ipv6*
|
||||
** description: pass:none[listen on IPv6 socket by default (in addition to IPv4 which is default); protocols IPv4 and IPv6 can be forced (individually or together) in the protocol name (see /help relay)]
|
||||
|
||||
@@ -100,7 +100,7 @@ $HOME/.local/share/weechat/weechat.log::
|
||||
WeeChat is written by Sébastien Helleu and contributors (complete list is in
|
||||
the AUTHORS.adoc file).
|
||||
|
||||
Copyright (C) 2003-2021 {author}
|
||||
Copyright (C) 2003-2022 {author}
|
||||
|
||||
WeeChat is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
||||
+218
-122
@@ -284,6 +284,7 @@ WeeChat "core" is located in following directories:
|
||||
| irc-ignore.c | IRC Ignore.
|
||||
| irc-info.c | IRC info/infolists/hdata.
|
||||
| irc-input.c | Input of commands/text.
|
||||
| irc-join.c | Functions for list of channels to join.
|
||||
| irc-message.c | Functions to manipulate IRC messages.
|
||||
| irc-mode.c | Functions about channel/nick modes.
|
||||
| irc-modelist.c | IRC channel mode lists (+b, +e, +I, ...).
|
||||
@@ -296,6 +297,7 @@ WeeChat "core" is located in following directories:
|
||||
| irc-sasl.c | SASL authentication with IRC server.
|
||||
| irc-server.c | I/O communication with IRC server.
|
||||
| irc-tag.c | Functions to manipulate IRC message tags.
|
||||
| irc-typing.c | Typing status.
|
||||
| irc-upgrade.c | Save/restore of IRC data when upgrading WeeChat.
|
||||
| javascript/ | JavaScript plugin.
|
||||
| weechat-js.cpp | Main JavaScript functions (load/unload scripts, execute JavaScript code).
|
||||
@@ -389,59 +391,67 @@ WeeChat "core" is located in following directories:
|
||||
|
||||
[width="100%",cols="2m,3",options="header"]
|
||||
|===
|
||||
| Path/file | Description
|
||||
| tests/ | Root of tests.
|
||||
| tests.cpp | Program used to run all tests.
|
||||
| scripts/ | Root of scripting API tests.
|
||||
| test-scripts.cpp | Program used to run the scripting API tests.
|
||||
| python/ | Python scripts to generate and run the scripting API tests.
|
||||
| testapigen.py | Python script generating scripts in all languages to test the scripting API.
|
||||
| testapi.py | Python script with scripting API tests, used by script testapigen.py.
|
||||
| unparse.py | Convert Python code to other languages, used by script testapigen.py.
|
||||
| unit/ | Root of unit tests.
|
||||
| test-plugins.cpp | Tests: plugins.
|
||||
| core/ | Root of unit tests for core.
|
||||
| test-core-arraylist.cpp | Tests: arraylists.
|
||||
| test-core-calc.cpp | Tests: calculation of expressions.
|
||||
| test-core-config-file.cpp | Tests: configuration files.
|
||||
| test-core-crypto.cpp | Tests: cryptographic functions.
|
||||
| test-core-dir.cpp | Tests: directory/file functions.
|
||||
| test-core-eval.cpp | Tests: evaluation of expressions.
|
||||
| test-core-hashtble.cpp | Tests: hashtables.
|
||||
| test-core-hdata.cpp | Tests: hdata.
|
||||
| test-core-hook.cpp | Tests: hooks.
|
||||
| test-core-infolist.cpp | Tests: infolists.
|
||||
| test-core-list.cpp | Tests: lists.
|
||||
| test-core-network.cpp | Tests: network functions.
|
||||
| test-core-secure.cpp | Tests: secured data.
|
||||
| test-core-signal.cpp | Tests: signals.
|
||||
| test-core-string.cpp | Tests: strings.
|
||||
| test-core-url.cpp | Tests: URLs.
|
||||
| test-core-utf8.cpp | Tests: UTF-8.
|
||||
| test-core-util.cpp | Tests: utility functions.
|
||||
| gui/ | Root of unit tests for interfaces.
|
||||
| test-gui-color.cpp | Tests: colors.
|
||||
| test-gui-line.cpp | Tests: lines.
|
||||
| test-gui-nick.cpp | Tests: nicks.
|
||||
| plugins/ | Root of unit tests for plugins.
|
||||
| irc/ | Root of unit tests for IRC plugin.
|
||||
| test-irc-channel.cpp | Tests: IRC channels.
|
||||
| test-irc-color.cpp | Tests: IRC colors.
|
||||
| test-irc-config.cpp | Tests: IRC configuration.
|
||||
| test-irc-ignore.cpp | Tests: IRC ignores.
|
||||
| test-irc-message.cpp | Tests: IRC messages.
|
||||
| test-irc-mode.cpp | Tests: IRC modes.
|
||||
| test-irc-nick.cpp | Tests: IRC nicks.
|
||||
| test-irc-protocol.cpp | Tests: IRC protocol.
|
||||
| test-irc-server.cpp | Tests: IRC server.
|
||||
| trigger/ | Root of unit tests for trigger plugin.
|
||||
| test-trigger.cpp | Tests: triggers.
|
||||
| typing/ | Root of unit tests for typing plugin.
|
||||
| test-typing.cpp | Tests: typing.
|
||||
| test-typing-status.cpp | Tests: typing status.
|
||||
| relay/ | Root of unit tests for Relay plugin.
|
||||
| test-relay-auth.cpp | Tests: clients authentication.
|
||||
|
||||
| Path/file | Description
|
||||
| tests/ | Root of tests.
|
||||
| tests.cpp | Program used to run all tests.
|
||||
| scripts/ | Root of scripting API tests.
|
||||
| test-scripts.cpp | Program used to run the scripting API tests.
|
||||
| python/ | Python scripts to generate and run the scripting API tests.
|
||||
| testapigen.py | Python script generating scripts in all languages to test the scripting API.
|
||||
| testapi.py | Python script with scripting API tests, used by script testapigen.py.
|
||||
| unparse.py | Convert Python code to other languages, used by script testapigen.py.
|
||||
| unit/ | Root of unit tests.
|
||||
| test-plugins.cpp | Tests: plugins.
|
||||
| core/ | Root of unit tests for core.
|
||||
| test-core-arraylist.cpp | Tests: arraylists.
|
||||
| test-core-calc.cpp | Tests: calculation of expressions.
|
||||
| test-core-config-file.cpp | Tests: configuration files.
|
||||
| test-core-crypto.cpp | Tests: cryptographic functions.
|
||||
| test-core-dir.cpp | Tests: directory/file functions.
|
||||
| test-core-eval.cpp | Tests: evaluation of expressions.
|
||||
| test-core-hashtble.cpp | Tests: hashtables.
|
||||
| test-core-hdata.cpp | Tests: hdata.
|
||||
| test-core-hook.cpp | Tests: hooks.
|
||||
| test-core-infolist.cpp | Tests: infolists.
|
||||
| test-core-list.cpp | Tests: lists.
|
||||
| test-core-network.cpp | Tests: network functions.
|
||||
| test-core-secure.cpp | Tests: secured data.
|
||||
| test-core-signal.cpp | Tests: signals.
|
||||
| test-core-string.cpp | Tests: strings.
|
||||
| test-core-url.cpp | Tests: URLs.
|
||||
| test-core-utf8.cpp | Tests: UTF-8.
|
||||
| test-core-util.cpp | Tests: utility functions.
|
||||
| gui/ | Root of unit tests for interfaces.
|
||||
| test-gui-buffer.cpp | Tests: buffer functions.
|
||||
| test-gui-chat.cpp | Tests: chat functions.
|
||||
| test-gui-color.cpp | Tests: colors.
|
||||
| test-gui-line.cpp | Tests: lines.
|
||||
| test-gui-nick.cpp | Tests: nicks.
|
||||
| plugins/ | Root of unit tests for plugins.
|
||||
| irc/ | Root of unit tests for IRC plugin.
|
||||
| test-irc-buffer.cpp | Tests: IRC buffers.
|
||||
| test-irc-channel.cpp | Tests: IRC channels.
|
||||
| test-irc-color.cpp | Tests: IRC colors.
|
||||
| test-irc-config.cpp | Tests: IRC configuration.
|
||||
| test-irc-ignore.cpp | Tests: IRC ignores.
|
||||
| test-irc-join.cpp | Tests: IRC join functions.
|
||||
| test-irc-message.cpp | Tests: IRC messages.
|
||||
| test-irc-mode.cpp | Tests: IRC modes.
|
||||
| test-irc-nick.cpp | Tests: IRC nicks.
|
||||
| test-irc-protocol.cpp | Tests: IRC protocol.
|
||||
| test-irc-sasl.cpp | Tests: SASL authentication with IRC protocol.
|
||||
| test-irc-server.cpp | Tests: IRC server.
|
||||
| test-irc-tag.cpp | Tests: IRC message tags.
|
||||
| logger/ | Root of unit tests for logger plugin.
|
||||
| test-logger-backlog.cpp | Tests: logger backlog.
|
||||
| trigger/ | Root of unit tests for trigger plugin.
|
||||
| test-trigger.cpp | Tests: triggers.
|
||||
| test-trigger-config.cpp | Tests: trigger configuration.
|
||||
| typing/ | Root of unit tests for typing plugin.
|
||||
| test-typing.cpp | Tests: typing.
|
||||
| test-typing-status.cpp | Tests: typing status.
|
||||
| relay/ | Root of unit tests for Relay plugin.
|
||||
| test-relay-auth.cpp | Tests: clients authentication.
|
||||
|===
|
||||
|
||||
[[documentation_translations]]
|
||||
@@ -463,7 +473,6 @@ Documentation files:
|
||||
| weechat_quickstart.XX.adoc | link:weechat_quickstart.en.html[Quickstart guide].
|
||||
| weechat_relay_protocol.XX.adoc | link:weechat_relay_protocol.en.html[Relay protocol] (for remote interfaces).
|
||||
| weechat_scripting.XX.adoc | link:weechat_scripting.en.html[Scripting guide].
|
||||
| weechat_tester.XX.adoc | link:weechat_tester.en.html[Tester's guide].
|
||||
| weechat_user.XX.adoc | link:weechat_user.en.html[User's guide].
|
||||
| includes/ | Files included in documentation.
|
||||
| autogen_api_completions.XX.adoc | Auto-generated file for Plugin API reference: completions (do *NEVER* update manually!).
|
||||
@@ -509,12 +518,12 @@ directory:
|
||||
|
||||
Example in C:
|
||||
|
||||
[source,C]
|
||||
[source,c]
|
||||
----
|
||||
/*
|
||||
* weechat.c - core functions for WeeChat
|
||||
*
|
||||
* Copyright (C) 2021 Your Name <your@email.com>
|
||||
* Copyright (C) 2022 Your Name <your@email.com>
|
||||
*
|
||||
* This file is part of WeeChat, the extensible chat client.
|
||||
*
|
||||
@@ -547,7 +556,7 @@ Some basic rules you *must* follow when you write C code:
|
||||
|
||||
Example:
|
||||
|
||||
[source,C]
|
||||
[source,c]
|
||||
----
|
||||
/*
|
||||
* Checks if a string with boolean value is valid.
|
||||
@@ -578,7 +587,7 @@ foo ()
|
||||
Exception: in `for` loops, where variables like "i" or "n" are OK.
|
||||
* Initialize local variables after declaration, in body of function, example:
|
||||
|
||||
[source,C]
|
||||
[source,c]
|
||||
----
|
||||
void
|
||||
foo ()
|
||||
@@ -596,7 +605,7 @@ foo ()
|
||||
* Place curly brackets `+{ }+` alone on lines, and indent them with number of
|
||||
spaces used for line above opening curly bracket (the `if` in example):
|
||||
|
||||
[source,C]
|
||||
[source,c]
|
||||
----
|
||||
if (nicks_count == 1)
|
||||
{
|
||||
@@ -607,7 +616,7 @@ if (nicks_count == 1)
|
||||
* Use empty lines to separate many different blocks inside functions, and if
|
||||
possible add a comment for each one, like this:
|
||||
|
||||
[source,C]
|
||||
[source,c]
|
||||
----
|
||||
/*
|
||||
* Sends a message from out queue.
|
||||
@@ -650,7 +659,7 @@ irc_server_outqueue_send (struct t_irc_server *server)
|
||||
* Indent the `if` conditions, and use parentheses around conditions with an
|
||||
operator (not needed for single boolean), like this:
|
||||
|
||||
[source,C]
|
||||
[source,c]
|
||||
----
|
||||
if (something)
|
||||
{
|
||||
@@ -674,7 +683,7 @@ else
|
||||
|
||||
* Indent the `switch` statements like this:
|
||||
|
||||
[source,C]
|
||||
[source,c]
|
||||
----
|
||||
switch (string[0])
|
||||
{
|
||||
@@ -692,7 +701,7 @@ switch (string[0])
|
||||
|
||||
* Use `typedef` for function prototypes but not for structures:
|
||||
|
||||
[source,C]
|
||||
[source,c]
|
||||
----
|
||||
typedef int (t_hook_callback_fd)(void *data, int fd);
|
||||
|
||||
@@ -774,7 +783,7 @@ Structures have name _t_X_Y_ or _t_X_Y_Z_:
|
||||
|
||||
Example: an IRC nick (from _src/plugins/irc/irc-nick.h_):
|
||||
|
||||
[source,C]
|
||||
[source,c]
|
||||
----
|
||||
struct t_irc_nick
|
||||
{
|
||||
@@ -804,7 +813,7 @@ _X_ is name of variable, using singular form).
|
||||
|
||||
Example: windows (from _src/gui/gui-window.c_):
|
||||
|
||||
[source,C]
|
||||
[source,c]
|
||||
----
|
||||
struct t_gui_window *gui_windows = NULL; /* first window */
|
||||
struct t_gui_window *last_gui_window = NULL; /* last window */
|
||||
@@ -824,7 +833,7 @@ Naming convention for functions is the same as
|
||||
|
||||
Example: creation of a new window (from _src/gui/gui-window.c_):
|
||||
|
||||
[source,C]
|
||||
[source,c]
|
||||
----
|
||||
/*
|
||||
* Creates a new window.
|
||||
@@ -860,7 +869,7 @@ and next node.
|
||||
|
||||
Example: list of buffers (from _src/gui/gui-buffer.h_):
|
||||
|
||||
[source,C]
|
||||
[source,c]
|
||||
----
|
||||
struct t_gui_buffer
|
||||
{
|
||||
@@ -875,7 +884,7 @@ struct t_gui_buffer
|
||||
|
||||
Then the two list pointers, to the head and tail of list:
|
||||
|
||||
[source,C]
|
||||
[source,c]
|
||||
----
|
||||
struct t_gui_buffer *gui_buffers = NULL; /* first buffer */
|
||||
struct t_gui_buffer *last_gui_buffer = NULL; /* last buffer */
|
||||
@@ -890,18 +899,10 @@ underline, ...) and colors on screen.
|
||||
All attributes/colors are prefixed with a char in string, which can be:
|
||||
|
||||
* _0x19_: color code (followed by color code(s))
|
||||
* _0x1A_: set attribute (followed by attribute on one char)
|
||||
* _0x1B_: remove attribute (followed by attribute on one char)
|
||||
* _0x1A_: set attribute (followed by raw attribute on one char)
|
||||
* _0x1B_: remove attribute (followed by raw attribute on one char)
|
||||
* _0x1C_: reset (nothing after)
|
||||
|
||||
Allowed attributes are (one or more chars):
|
||||
|
||||
* `+*+`: bold
|
||||
* `+!+`: reverse
|
||||
* `+/+`: italic
|
||||
* `+_+`: underline
|
||||
* `+|+`: keep attributes
|
||||
|
||||
Possible colors are:
|
||||
|
||||
* standard color: optional attributes + number on 2 digits
|
||||
@@ -910,45 +911,55 @@ Possible colors are:
|
||||
In following table, these conventions are used:
|
||||
|
||||
* `STD`: standard color (2 digits)
|
||||
* `(A)STD`: standard color with optional attributes (attributes + 2 digits)
|
||||
* `(ATTR)STD`: standard color with optional attributes (attributes + 2 digits)
|
||||
* `EXT`: extended color (`+@+` + 5 digits)
|
||||
* `(A)EXT`: extended color with optional attributes (`+@+` + attributes + 5 digits)
|
||||
* `ATTR`: one attribute char (`+*+`, `+!+`, `+/+`, `+_+` or `+|+`)
|
||||
* `(ATTR)EXT`: extended color with optional attributes (`+@+` + attributes + 5 digits)
|
||||
* `(ATTR)`: one or more attribute chars:
|
||||
** `+*+`: bold
|
||||
** `+!+`: reverse
|
||||
** `+/+`: italic
|
||||
** `+_+`: underline
|
||||
** `+|+`: keep attributes
|
||||
* `(a)`: one raw attribute char:
|
||||
** _0x01_: bold
|
||||
** _0x02_: reverse
|
||||
** _0x03_: italic
|
||||
** _0x04_: underline
|
||||
|
||||
All combinations are summarized in this table:
|
||||
|
||||
[width="100%",cols="4,2,2,8",options="header"]
|
||||
[width="100%",cols="4,3,2,8",options="header"]
|
||||
|===
|
||||
| Code | Example | Areas | Description
|
||||
| [hex]#19# + STD | [hex]#19# `+01+` | chat + bars | Set attributes and color using option, see table below.
|
||||
| [hex]#19# + EXT | [hex]#19# `+@00001+` | chat | Set color with a ncurses pair (used only on `/color` buffer).
|
||||
| [hex]#19# + "F" + (A)STD | [hex]#19# `+F*05+` | chat + bars | Set foreground (WeeChat color).
|
||||
| [hex]#19# + "F" + (A)EXT | [hex]#19# `+F@00214+` | chat + bars | Set foreground (extended color).
|
||||
| [hex]#19# + "B" + STD | [hex]#19# `+B05+` | chat + bars | Set background (WeeChat color).
|
||||
| [hex]#19# + "B" + EXT | [hex]#19# `+B@00124+` | chat + bars | Set background (extended color).
|
||||
| [hex]#19# + "*" + (A)STD | [hex]#19# `+*05+` | chat + bars | Set foreground (WeeChat color).
|
||||
| [hex]#19# + "*" + (A)EXT | [hex]#19# `+*@00214+` | chat + bars | Set foreground (extended color).
|
||||
| [hex]#19# + "*" + (A)STD + "," + STD ^(1)^ | [hex]#19# `+*08,05+` | chat + bars | Set foreground/background (WeeChat colors).
|
||||
| [hex]#19# + "*" + (A)STD + "," + EXT ^(1)^ | [hex]#19# `+*01,@00214+` | chat + bars | Set foreground (WeeChat color) and background (extended color).
|
||||
| [hex]#19# + "*" + (A)EXT + "," + STD ^(1)^ | [hex]#19# `+*@00214,05+` | chat + bars | Set foreground (extended color) and background (WeeChat color).
|
||||
| [hex]#19# + "*" + (A)EXT + "," + EXT ^(1)^ | [hex]#19# `+*@00214,@00017+` | chat + bars | Set foreground/background (extended colors).
|
||||
| [hex]#19# + "*" + (A)STD + "~" + STD | [hex]#19# `+*08~05+` | chat + bars | Set foreground/background (WeeChat colors).
|
||||
| [hex]#19# + "*" + (A)STD + "~" + EXT | [hex]#19# `+*01~@00214+` | chat + bars | Set foreground (WeeChat color) and background (extended color).
|
||||
| [hex]#19# + "*" + (A)EXT + "~" + STD | [hex]#19# `+*@00214~05+` | chat + bars | Set foreground (extended color) and background (WeeChat color).
|
||||
| [hex]#19# + "*" + (A)EXT + "~" + EXT | [hex]#19# `+*@00214~@00017+` | chat + bars | Set foreground/background (extended colors).
|
||||
| [hex]#19# + "b" + "F" | [hex]#19# `+bF+` | bars | Set bar foreground color.
|
||||
| [hex]#19# + "b" + "D" | [hex]#19# `+bD+` | bars | Set bar delimiter color.
|
||||
| [hex]#19# + "b" + "B" | [hex]#19# `+bB+` | bars | Set bar background color.
|
||||
| [hex]#19# + "b" + "_" | [hex]#19# `+b_+` | input bar | Start input char (used only in item "input_text").
|
||||
| [hex]#19# + "b" + "-" | [hex]#19# `+b-+` | input bar | Start input hidden char (used only in item "input_text").
|
||||
| [hex]#19# + "b" + "#" | [hex]#19# `+b#+` | input bar | Move cursor char (used only in item "input_text").
|
||||
| [hex]#19# + "b" + "i" | [hex]#19# `+bi+` | bars | Start item.
|
||||
| [hex]#19# + "b" + "l" (lower L) | [hex]#19# `+bl+` | bars | Start line item.
|
||||
| [hex]#19# + "E" | [hex]#19# `+E+` | chat + bars | Emphasize text _(WeeChat ≥ 0.4.2)_.
|
||||
| [hex]#19# + [hex]#1C# | [hex]#19# [hex]#1C# | chat + bars | Reset color (keep attributes).
|
||||
| [hex]#1A# + ATTR | [hex]#1A# `+*+` | chat + bars | Set attribute.
|
||||
| [hex]#1B# + ATTR | [hex]#1B# `+*+` | chat + bars | Remove attribute.
|
||||
| [hex]#1C# | [hex]#1C# | chat + bars | Reset attributes and color.
|
||||
| Code | Example | Areas | Description
|
||||
| [hex]#19# + `STD` | [hex]#19# `+01+` | chat + bars | Set attributes and color using option, see table below.
|
||||
| [hex]#19# + `EXT` | [hex]#19# `+@00001+` | chat | Set color with a ncurses pair (used only on `/color` buffer).
|
||||
| [hex]#19# + `F` + `(ATTR)STD` | [hex]#19# `+F*05+` | chat + bars | Set foreground (WeeChat color).
|
||||
| [hex]#19# + `F` + `(ATTR)EXT` | [hex]#19# `+F@00214+` | chat + bars | Set foreground (extended color).
|
||||
| [hex]#19# + `B` + `STD` | [hex]#19# `+B05+` | chat + bars | Set background (WeeChat color).
|
||||
| [hex]#19# + `B` + `EXT` | [hex]#19# `+B@00124+` | chat + bars | Set background (extended color).
|
||||
| [hex]#19# + `*` + `(ATTR)STD` | [hex]#19# `+*05+` | chat + bars | Set foreground (WeeChat color).
|
||||
| [hex]#19# + `*` + `(ATTR)EXT` | [hex]#19# `+*@00214+` | chat + bars | Set foreground (extended color).
|
||||
| [hex]#19# + `*` + `(ATTR)STD` + `,` + `STD` ^(1)^ | [hex]#19# `+*08,05+` | chat + bars | Set foreground/background (WeeChat colors).
|
||||
| [hex]#19# + `*` + `(ATTR)STD` + `,` + `EXT` ^(1)^ | [hex]#19# `+*01,@00214+` | chat + bars | Set foreground (WeeChat color) and background (extended color).
|
||||
| [hex]#19# + `*` + `(ATTR)EXT` + `,` + `STD` ^(1)^ | [hex]#19# `+*@00214,05+` | chat + bars | Set foreground (extended color) and background (WeeChat color).
|
||||
| [hex]#19# + `*` + `(ATTR)EXT` + `,` + `EXT` ^(1)^ | [hex]#19# `+*@00214,@00017+` | chat + bars | Set foreground/background (extended colors).
|
||||
| [hex]#19# + `*` + `(ATTR)STD` + `~` + `STD` | [hex]#19# `+*08~05+` | chat + bars | Set foreground/background (WeeChat colors).
|
||||
| [hex]#19# + `*` + `(ATTR)STD` + `~` + `EXT` | [hex]#19# `+*01~@00214+` | chat + bars | Set foreground (WeeChat color) and background (extended color).
|
||||
| [hex]#19# + `*` + `(ATTR)EXT` + `~` + `STD` | [hex]#19# `+*@00214~05+` | chat + bars | Set foreground (extended color) and background (WeeChat color).
|
||||
| [hex]#19# + `*` + `(ATTR)EXT` + `~` + `EXT` | [hex]#19# `+*@00214~@00017+` | chat + bars | Set foreground/background (extended colors).
|
||||
| [hex]#19# + `b` + `F` | [hex]#19# `+bF+` | bars | Set bar foreground color.
|
||||
| [hex]#19# + `b` + `D` | [hex]#19# `+bD+` | bars | Set bar delimiter color.
|
||||
| [hex]#19# + `b` + `B` | [hex]#19# `+bB+` | bars | Set bar background color.
|
||||
| [hex]#19# + `b` + `_` | [hex]#19# `+b_+` | input bar | Start input char (used only in item "input_text").
|
||||
| [hex]#19# + `b` + `-` | [hex]#19# `+b-+` | input bar | Start input hidden char (used only in item "input_text").
|
||||
| [hex]#19# + `b` + `#` | [hex]#19# `+b#+` | input bar | Move cursor char (used only in item "input_text").
|
||||
| [hex]#19# + `b` + `i` | [hex]#19# `+bi+` | bars | Start item.
|
||||
| [hex]#19# + `b` + `l` (lower L) | [hex]#19# `+bl+` | bars | Start line item.
|
||||
| [hex]#19# + `E` | [hex]#19# `+E+` | chat + bars | Emphasize text _(WeeChat ≥ 0.4.2)_.
|
||||
| [hex]#19# + [hex]#1C# | [hex]#19# [hex]#1C# | chat + bars | Reset color (keep attributes).
|
||||
| [hex]#1A# + `(a)` | [hex]#1A# [hex]#01# | chat + bars | Set attribute.
|
||||
| [hex]#1B# + `(a)` | [hex]#1B# [hex]#01# | chat + bars | Remove attribute.
|
||||
| [hex]#1C# | [hex]#1C# | chat + bars | Reset attributes and color.
|
||||
|===
|
||||
|
||||
[NOTE]
|
||||
@@ -1065,7 +1076,7 @@ Then some macros are defined to call these functions.
|
||||
For example, function _hook_timer_ is defined in structure _t_weechat_plugin_
|
||||
like this:
|
||||
|
||||
[source,C]
|
||||
[source,c]
|
||||
----
|
||||
struct t_hook *(*hook_timer) (struct t_weechat_plugin *plugin,
|
||||
long interval,
|
||||
@@ -1078,7 +1089,7 @@ struct t_hook *(*hook_timer) (struct t_weechat_plugin *plugin,
|
||||
|
||||
And the macro used to call this function is:
|
||||
|
||||
[source,C]
|
||||
[source,c]
|
||||
----
|
||||
#define weechat_hook_timer(__interval, __align_second, __max_calls, \
|
||||
__callback, __data) \
|
||||
@@ -1089,7 +1100,7 @@ And the macro used to call this function is:
|
||||
|
||||
So in a plugin, the call to function will be for example:
|
||||
|
||||
[source,C]
|
||||
[source,c]
|
||||
----
|
||||
server->hook_timer_sasl = weechat_hook_timer (timeout * 1000,
|
||||
0, 1,
|
||||
@@ -1117,11 +1128,95 @@ component: fix a problem (closes #123)
|
||||
|
||||
Where _component_ is one of following:
|
||||
|
||||
* WeeChat core: _core_ (files in root directory, _po/_ and _src/_,
|
||||
except _src/plugins/_)
|
||||
* documentation files: _doc_ (files in directory _doc/_)
|
||||
* name of a plugin: _irc_, _python_, _relay_, ... (files in directory
|
||||
_src/plugins/_)
|
||||
[width="100%",cols="1m,4m,5",options="header"]
|
||||
|===
|
||||
| Component | Files | Description
|
||||
|
||||
| core |
|
||||
AUTHORS.adoc +
|
||||
ChangeLog.adoc +
|
||||
Contributing.adoc +
|
||||
.github/FUNDING.yml +
|
||||
.github/ISSUE_TEMPLATE/* +
|
||||
icons/* +
|
||||
po/* +
|
||||
README.adoc +
|
||||
ReleaseNotes.adoc +
|
||||
src/core/* +
|
||||
src/gui/* +
|
||||
version.sh +
|
||||
weechat.desktop |
|
||||
WeeChat core
|
||||
|
||||
| build |
|
||||
autogen.sh +
|
||||
CMakeLists.txt +
|
||||
cmake/* +
|
||||
configure.ac +
|
||||
Makefile.am +
|
||||
tools/* +
|
||||
weechat.cygport.in +
|
||||
weechat.spec |
|
||||
Build
|
||||
|
||||
| ci |
|
||||
.github/workflows/* |
|
||||
Continuous integration
|
||||
|
||||
| debian |
|
||||
debian-devel/* +
|
||||
debian-stable/* |
|
||||
Debian packaging
|
||||
|
||||
| tests |
|
||||
tests/* |
|
||||
Tests
|
||||
|
||||
| doc |
|
||||
doc/* |
|
||||
General doc updates, for example build
|
||||
|
||||
| doc/man |
|
||||
doc/xx/weechat.1.xx.adoc +
|
||||
doc/xx/weechat-headless.1.xx.adoc |
|
||||
Man pages
|
||||
|
||||
| doc/faq |
|
||||
doc/xx/weechat_faq.xx.adoc |
|
||||
Frequently asked questions (FAQ)
|
||||
|
||||
| doc/quickstart |
|
||||
doc/xx/weechat_quickstart.xx.adoc |
|
||||
Quickstart guide
|
||||
|
||||
| doc/user |
|
||||
doc/xx/weechat_user.xx.adoc |
|
||||
User's guide
|
||||
|
||||
| doc/scripting |
|
||||
doc/xx/weechat_scripting.xx.adoc |
|
||||
Scripting guide
|
||||
|
||||
| doc/api |
|
||||
doc/xx/weechat_plugin_api.xx.adoc |
|
||||
Plugin API reference
|
||||
|
||||
| doc/relay |
|
||||
doc/xx/weechat_relay_protocol.xx.adoc |
|
||||
Relay protocol
|
||||
|
||||
| doc/dev |
|
||||
doc/xx/weechat_dev.en.adoc |
|
||||
Developer's guide
|
||||
|
||||
| irc +
|
||||
python +
|
||||
relay +
|
||||
… |
|
||||
src/plugins/<name>/* |
|
||||
Plugin
|
||||
|
||||
|===
|
||||
|
||||
Some rules to follow:
|
||||
|
||||
@@ -1135,6 +1230,7 @@ Examples of commit messages:
|
||||
----
|
||||
core: add callback "nickcmp" for nick comparison in buffers
|
||||
core: update Japanese translations
|
||||
doc/user: add chapter on typing extension
|
||||
irc: add command /unquiet (closes #36)
|
||||
python: fix crash when unloading a script without pointer to interpreter
|
||||
ruby: add detection of ruby version 1.9.3 in CMake
|
||||
@@ -1202,7 +1298,7 @@ work on it.
|
||||
The translations missing in files are indicated by this string:
|
||||
|
||||
----
|
||||
// TRANSLATION MISSING
|
||||
// TRANSLATION MISSING
|
||||
----
|
||||
|
||||
You must translate whole file except links and special keywords for notes,
|
||||
@@ -1219,7 +1315,7 @@ warnings, ... These words must be kept unchanged:
|
||||
[CAUTION]
|
||||
----
|
||||
|
||||
When there is a name after `<<link_name>>`, then you must translate it:
|
||||
When there is a name after `+<<link_name>>+`, then you must translate it:
|
||||
|
||||
----
|
||||
<<link_name,this text must be translated>>
|
||||
|
||||
@@ -829,6 +829,21 @@ join of channels):
|
||||
[[edit_autojoin]]
|
||||
=== How can I add/remove channels from autojoin option?
|
||||
|
||||
With WeeChat ≥ 3.5, you can automatically record the channels you manually
|
||||
join and part in the "autojoin" server option.
|
||||
|
||||
For all servers:
|
||||
|
||||
----
|
||||
/set irc.server_default.autojoin_record on
|
||||
----
|
||||
|
||||
For a single server:
|
||||
|
||||
----
|
||||
/set irc.server.libera.autojoin_record on
|
||||
----
|
||||
|
||||
You can use the `/set` command to edit the list of autojoin channels,
|
||||
for example for the "libera" server:
|
||||
|
||||
@@ -1083,6 +1098,14 @@ $ cd ~/.cache/weechat/script
|
||||
$ curl -O https://weechat.org/files/plugins.xml.gz
|
||||
----
|
||||
|
||||
If you're running macOS and the downloaded file has a size of 0 bytes,
|
||||
try to set this variable in your shell initialization file or on command line,
|
||||
before starting WeeChat:
|
||||
|
||||
----
|
||||
export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
|
||||
----
|
||||
|
||||
[[spell_dictionaries]]
|
||||
=== I installed aspell dictionaries on my system, how can I use them without restarting WeeChat?
|
||||
|
||||
|
||||
+1290
-1004
File diff suppressed because it is too large
Load Diff
@@ -84,7 +84,7 @@ Fields are:
|
||||
|
||||
List of available commands (detail in next chapters):
|
||||
|
||||
[width="100%",cols="^3m,14",options="header"]
|
||||
[width="100%",cols="1m,8",options="header"]
|
||||
|===
|
||||
| Command | Description
|
||||
| handshake | Handshake: prepare client authentication and set options, before _init_ command.
|
||||
@@ -103,7 +103,7 @@ List of available commands (detail in next chapters):
|
||||
[[command_handshake]]
|
||||
=== handshake
|
||||
|
||||
_WeeChat ≥ 2.9._
|
||||
_WeeChat ≥ 2.9, updated in version 3.5._
|
||||
|
||||
Perform an handshake between the client and WeeChat: this is required in most
|
||||
cases to know the session settings and prepare the authentication with the
|
||||
@@ -127,10 +127,15 @@ Arguments:
|
||||
*** _sha512_: password salted and hashed with SHA512 algorithm
|
||||
*** _pbkdf2+sha256_: password salted and hashed with PBKDF2 algorithm (using SHA256 hash)
|
||||
*** _pbkdf2+sha512_: password salted and hashed with PBKDF2 algorithm (using SHA512 hash)
|
||||
** _compression_: compression type:
|
||||
*** _zlib_: enable _zlib_ compression for messages sent by _relay_
|
||||
(enabled by default if _relay_ supports _zlib_ compression)
|
||||
*** _off_: disable compression
|
||||
** _compression_: list of supported compression types supported by the client
|
||||
(separated by colons and sorted from most important to the fallback value);
|
||||
if compression is enabled, messages from _relay_ to client are compressed
|
||||
to save bandwidth; allowed values are:
|
||||
*** _off_: no compression (default if option is not given)
|
||||
*** _zlib_: compress with https://zlib.net/[zlib] _(WeeChat ≥ 0.3.7)_
|
||||
*** _zstd_: compress with https://facebook.github.io/zstd/[Zstandard]: better
|
||||
compression and much faster than _zlib_ for both compression and decompression
|
||||
_(WeeChat ≥ 3.5)_
|
||||
|
||||
Notes about option _password_hash_algo_:
|
||||
|
||||
@@ -169,8 +174,9 @@ WeeChat replies with a hashtable containing the following keys and values:
|
||||
and the user password (the _relay_ nonce + the client nonce is the salt used
|
||||
in the password hash algorithm)
|
||||
* _compression_: compression type:
|
||||
** _zlib_: messages are compressed with _zlib_
|
||||
** _off_: messages are not compressed
|
||||
** _zlib_: messages are compressed with https://zlib.net/[zlib]
|
||||
** _zstd_: messages are compressed with https://facebook.github.io/zstd/[Zstandard]
|
||||
|
||||
[TIP]
|
||||
With WeeChat ≤ 2.8, the command _handshake_ is not implemented, WeeChat silently
|
||||
@@ -196,7 +202,7 @@ htb: {
|
||||
'password_hash_iterations': '100000',
|
||||
'totp': 'on',
|
||||
'nonce': '85B1EE00695A5B254E14F4885538DF0D',
|
||||
'compression': 'zlib',
|
||||
'compression': 'off',
|
||||
}
|
||||
----
|
||||
|
||||
@@ -216,7 +222,7 @@ htb: {
|
||||
'password_hash_iterations': '100000',
|
||||
'totp': 'on',
|
||||
'nonce': '85B1EE00695A5B254E14F4885538DF0D',
|
||||
'compression': 'zlib',
|
||||
'compression': 'off',
|
||||
}
|
||||
----
|
||||
|
||||
@@ -236,7 +242,7 @@ htb: {
|
||||
'password_hash_iterations': '100000',
|
||||
'totp': 'on',
|
||||
'nonce': '85B1EE00695A5B254E14F4885538DF0D',
|
||||
'compression': 'zlib',
|
||||
'compression': 'off',
|
||||
}
|
||||
----
|
||||
|
||||
@@ -248,10 +254,11 @@ the password is "test" in this example:
|
||||
init password_hash=pbkdf2+sha256:85b1ee00695a5b254e14f4885538df0da4b73207f5aae4:100000:ba7facc3edb89cd06ae810e29ced85980ff36de2bb596fcf513aaab626876440
|
||||
----
|
||||
|
||||
* Only "sha256" and "sha512" are supported by the client, disable compression:
|
||||
* Only "sha256" and "sha512" are supported by the client, enable zstd (preferred)
|
||||
or zlib compression:
|
||||
|
||||
----
|
||||
(handshake) handshake password_hash_algo=sha256:sha512,compression=off
|
||||
(handshake) handshake password_hash_algo=sha256:sha512,compression=zstd:zlib
|
||||
----
|
||||
|
||||
Response:
|
||||
@@ -264,7 +271,7 @@ htb: {
|
||||
'password_hash_iterations': '100000',
|
||||
'totp': 'on',
|
||||
'nonce': '85B1EE00695A5B254E14F4885538DF0D',
|
||||
'compression': 'off',
|
||||
'compression': 'zstd',
|
||||
}
|
||||
----
|
||||
|
||||
@@ -298,12 +305,6 @@ Arguments:
|
||||
factor, in addition to the password
|
||||
(option _relay.network.totp_secret_ in WeeChat)
|
||||
_(WeeChat ≥ 2.4)_
|
||||
** _compression_: compression type (*deprecated* since version 2.9, it is kept
|
||||
for compatibility reasons but should be sent in the
|
||||
<<command_handshake,handshake command>>):
|
||||
*** _zlib_: enable _zlib_ compression for messages sent by _relay_
|
||||
(enabled by default if _relay_ supports _zlib_ compression)
|
||||
*** _off_: disable compression
|
||||
|
||||
[NOTE]
|
||||
With WeeChat ≥ 1.6, commas can be escaped in the value, for example
|
||||
@@ -992,7 +993,7 @@ Arguments:
|
||||
|
||||
WeeChat replies with a hdata:
|
||||
|
||||
[width="100%",cols="3m,2,10",options="header"]
|
||||
[width="100%",cols="2m,3,14",options="header"]
|
||||
|===
|
||||
| Name | Type | Description
|
||||
| context | string | Completion context: "null" (no completion), "command", "command_arg", "auto".
|
||||
@@ -1260,24 +1261,24 @@ Syntax:
|
||||
|
||||
Returned objects (in this order):
|
||||
|
||||
[width="100%",cols="^3,3m,5m",options="header"]
|
||||
[width="80%",cols="1m,2,6m",options="header"]
|
||||
|===
|
||||
| Type | Type (in message) | Value
|
||||
| char | chr | 65 ("A")
|
||||
| integer | int | 123456
|
||||
| integer | int | -123456
|
||||
| long | lon | 1234567890
|
||||
| long | lon | -1234567890
|
||||
| string | str | "a string"
|
||||
| string | str | ""
|
||||
| string | str | NULL
|
||||
| buffer | buf | "buffer"
|
||||
| buffer | buf | NULL
|
||||
| pointer | ptr | 0x1234abcd
|
||||
| pointer | ptr | NULL
|
||||
| time | tim | 1321993456
|
||||
| array of strings | arr str | [ "abc", "de" ]
|
||||
| array of integers | arr int | [ 123, 456, 789 ]
|
||||
| Type | Description | Value
|
||||
| chr | char | 65 ("A")
|
||||
| int | integer | 123456
|
||||
| int | integer | -123456
|
||||
| lon | long | 1234567890
|
||||
| lon | long | -1234567890
|
||||
| str | string | "a string"
|
||||
| str | string | ""
|
||||
| str | string | NULL
|
||||
| buf | buffer | "buffer"
|
||||
| buf | buffer | NULL
|
||||
| ptr | pointer | 0x1234abcd
|
||||
| ptr | pointer | NULL
|
||||
| tim | time | 1321993456
|
||||
| arr str | array of strings | [ "abc", "de" ]
|
||||
| arr int | array of integers | [ 123, 456, 789 ]
|
||||
|===
|
||||
|
||||
[IMPORTANT]
|
||||
@@ -1379,7 +1380,8 @@ Messages are sent as binary data, using following format (with size in bytes):
|
||||
(including this field)
|
||||
* _compression_ (byte): flag:
|
||||
** _0x00_: following data is not compressed
|
||||
** _0x01_: following data is compressed with _zlib_
|
||||
** _0x01_: following data is compressed with https://zlib.net/[zlib]
|
||||
** _0x02_: following data is compressed with https://facebook.github.io/zstd/[Zstandard]
|
||||
* _id_ (string, 4 bytes + content): identifier sent by client (before command name); it can be
|
||||
empty (string with zero length and no content) if no identifier was given in
|
||||
command
|
||||
@@ -1389,8 +1391,9 @@ Messages are sent as binary data, using following format (with size in bytes):
|
||||
[[message_compression]]
|
||||
=== Compression
|
||||
|
||||
If flag _compression_ is equal to 0x01, then *all* data after is compressed
|
||||
with _zlib_, and therefore must be uncompressed before being processed.
|
||||
If flag _compression_ is equal to 0x01 or 0x02, then *all* data after is compressed
|
||||
with https://zlib.net/[zlib] or https://facebook.github.io/zstd/[Zstandard],
|
||||
and therefore must be uncompressed before being processed.
|
||||
|
||||
[[message_identifier]]
|
||||
=== Identifier
|
||||
@@ -2331,7 +2334,7 @@ commands sent on startup after the _init_.
|
||||
|
||||
Objects are identified by 3 letters, called _type_. Following types are used:
|
||||
|
||||
[width="100%",cols="^2m,5,10",options="header"]
|
||||
[width="100%",cols="1m,2,8",options="header"]
|
||||
|===
|
||||
| Type | Value | Length
|
||||
| chr | Signed char | 1 byte
|
||||
|
||||
@@ -195,6 +195,12 @@ Functions are called with `+weechat.xxx(arg1, arg2, ...)+`.
|
||||
|
||||
Functions are called with `+weechat::xxx arg1 arg2 ...+`.
|
||||
|
||||
Since Tcl only has string types, there's no null type to pass as an argument
|
||||
when a function accepts null values. To overcome this you can use the constant
|
||||
`$::weechat::WEECHAT_NULL` which acts as a null value. This constant is defined
|
||||
as `\uFFFF\uFFFF\uFFFFWEECHAT_NULL\uFFFF\uFFFF\uFFFF`, so it's very unlikely to
|
||||
appear unintentionally.
|
||||
|
||||
[[language_guile]]
|
||||
==== Guile (Scheme)
|
||||
|
||||
@@ -544,7 +550,7 @@ link:weechat_plugin_api.en.html[WeeChat plugin API reference].
|
||||
|
||||
List of functions in script API:
|
||||
|
||||
[width="100%",cols="1,3",options="header"]
|
||||
[width="100%",cols="1,5",options="header"]
|
||||
|===
|
||||
| Category | Functions
|
||||
|
||||
@@ -644,6 +650,7 @@ List of functions in script API:
|
||||
print (for python: prnt) +
|
||||
print_date_tags (for python: prnt_date_tags) +
|
||||
print_y (for python: prnt_y) +
|
||||
print_y_date_tags (for python: prnt_y_date_tags) +
|
||||
log_print
|
||||
|
||||
| hooks |
|
||||
@@ -674,6 +681,7 @@ List of functions in script API:
|
||||
|
||||
| buffers |
|
||||
buffer_new +
|
||||
buffer_new_props +
|
||||
current_buffer +
|
||||
buffer_search +
|
||||
buffer_search_main +
|
||||
@@ -792,7 +800,7 @@ List of functions in script API:
|
||||
|
||||
List of constants in script API:
|
||||
|
||||
[width="100%",cols="1,3",options="header"]
|
||||
[width="100%",cols="1,5",options="header"]
|
||||
|===
|
||||
| Category | Constants
|
||||
|
||||
@@ -875,7 +883,7 @@ Examples:
|
||||
weechat.prnt("", "hello")
|
||||
|
||||
# display "hello" on core buffer, but do not write it to log file
|
||||
# (version >= 0.3.3 only)
|
||||
# (version ≥ 0.3.3 only)
|
||||
weechat.prnt_date_tags("", 0, "no_log", "hello")
|
||||
|
||||
# display prefix "==>" and message "hello" on current buffer
|
||||
@@ -1049,26 +1057,53 @@ weechat.hook_timer(60 * 1000, 60, 0, "timer_cb", "")
|
||||
You can run a background process with `+hook_process+`. Your callback will be
|
||||
called when data is ready. It may be called many times.
|
||||
|
||||
For the last call to your callback, _rc_ is set to 0 or positive value, it's
|
||||
return code of command.
|
||||
For the last call to your callback, _return_code_ is set to 0 or positive value,
|
||||
it is the return code of command.
|
||||
|
||||
Example:
|
||||
|
||||
[source,python]
|
||||
----
|
||||
process_output = ""
|
||||
|
||||
def my_process_cb(data, command, rc, out, err):
|
||||
global process_output
|
||||
if out != "":
|
||||
process_output += out
|
||||
if int(rc) >= 0:
|
||||
weechat.prnt("", process_output)
|
||||
def my_process_cb(data, command, return_code, out, err):
|
||||
if return_code == weechat.WEECHAT_HOOK_PROCESS_ERROR:
|
||||
weechat.prnt("", "Error with command '%s'" % command)
|
||||
return weechat.WEECHAT_RC_OK
|
||||
if return_code >= 0:
|
||||
weechat.prnt("", "return_code = %d" % return_code)
|
||||
if out:
|
||||
weechat.prnt("", "stdout: %s" % out)
|
||||
if err:
|
||||
weechat.prnt("", "stderr: %s" % err)
|
||||
return weechat.WEECHAT_RC_OK
|
||||
|
||||
weechat.hook_process("/bin/ls -l /etc", 10 * 1000, "my_process_cb", "")
|
||||
----
|
||||
|
||||
You can also call directly a script function that does something blocking,
|
||||
instead of an external command:
|
||||
|
||||
[source,python]
|
||||
----
|
||||
def get_status(data):
|
||||
# do something blocking...
|
||||
# ...
|
||||
return "this is the result"
|
||||
|
||||
def my_process_cb(data, command, return_code, out, err):
|
||||
if return_code == weechat.WEECHAT_HOOK_PROCESS_ERROR:
|
||||
weechat.prnt("", "Error with command '%s'" % command)
|
||||
return weechat.WEECHAT_RC_OK
|
||||
if return_code >= 0:
|
||||
weechat.prnt("", "return_code = %d" % return_code)
|
||||
if out:
|
||||
weechat.prnt("", "stdout: %s" % out)
|
||||
if err:
|
||||
weechat.prnt("", "stderr: %s" % err)
|
||||
return weechat.WEECHAT_RC_OK
|
||||
|
||||
hook = weechat.hook_process("func:get_status", 5000, "my_process_cb", "")
|
||||
----
|
||||
|
||||
[[url_transfer]]
|
||||
==== URL transfer
|
||||
|
||||
@@ -1082,15 +1117,15 @@ in callback (standard output of process):
|
||||
|
||||
[source,python]
|
||||
----
|
||||
# Display current stable version of WeeChat.
|
||||
weechat_version = ""
|
||||
# Display latest stable version of WeeChat.
|
||||
weechat_latest_version = ""
|
||||
|
||||
def weechat_process_cb(data, command, rc, out, err):
|
||||
global weechat_version
|
||||
if out != "":
|
||||
weechat_version += out
|
||||
if int(rc) >= 0:
|
||||
weechat.prnt("", "Current WeeChat stable is: %s" % weechat_version)
|
||||
def weechat_process_cb(data, command, return_code, out, err):
|
||||
global weechat_latest_version
|
||||
if out:
|
||||
weechat_latest_version += out
|
||||
if return_code >= 0:
|
||||
weechat.prnt("", "Latest WeeChat version: %s" % weechat_latest_version)
|
||||
return weechat.WEECHAT_RC_OK
|
||||
|
||||
weechat.hook_process("url:https://weechat.org/dev/info/stable/",
|
||||
@@ -1105,9 +1140,9 @@ package in file _/tmp/weechat-devel.tar.gz_:
|
||||
|
||||
[source,python]
|
||||
----
|
||||
def my_process_cb(data, command, rc, out, err):
|
||||
if int(rc) >= 0:
|
||||
weechat.prnt("", "End of transfer (rc=%s)" % rc)
|
||||
def my_process_cb(data, command, return_code, out, err):
|
||||
if return_code >= 0:
|
||||
weechat.prnt("", "End of transfer (return code = %d)" % return_code)
|
||||
return weechat.WEECHAT_RC_OK
|
||||
|
||||
weechat.hook_process_hashtable("url:https://weechat.org/files/src/weechat-devel.tar.gz",
|
||||
|
||||
@@ -1,131 +0,0 @@
|
||||
= WeeChat tester's guide
|
||||
:author: Sébastien Helleu
|
||||
:email: flashcode@flashtux.org
|
||||
:lang: en
|
||||
:toc: left
|
||||
:sectnums:
|
||||
:docinfo1:
|
||||
|
||||
|
||||
[[purpose]]
|
||||
== Purpose
|
||||
|
||||
Many thankful users ask us how can they help developing WeeChat. The
|
||||
easiest (and also most tricky) way to help developing WeeChat is testing!
|
||||
|
||||
Testing is a very important part of software development and should not be
|
||||
underestimated. When some features are implemented it should be tested, but for
|
||||
some features there are too many use cases or these cases are tricky and
|
||||
developers can't try out every case.
|
||||
|
||||
For example: A notorious charset plugin was introduced in WeeChat 0.2.2: none
|
||||
of us (developers, contributors and testers) used channels with national
|
||||
characters in their names and when 0.2.2 was released we got flooded by Russian
|
||||
users blaming us. If we have more testers it should not happen again in the
|
||||
future.
|
||||
|
||||
Testing the stable version of WeeChat is pointless because developers are busy
|
||||
implementing new stuff (and fixing old bugs) all the time.
|
||||
|
||||
|
||||
[[prepare_system]]
|
||||
== Prepare your system
|
||||
|
||||
It would help us a lot if you enable Linux _core_ files: if WeeChat crashes,
|
||||
Linux will write a file called _core_. This file contains very useful debug
|
||||
info, to know exactly where is problem in WeeChat.
|
||||
|
||||
If you're using the _bash_ shell, add following line to your _~/.bashrc_:
|
||||
|
||||
----
|
||||
ulimit -c unlimited
|
||||
----
|
||||
|
||||
|
||||
[[download]]
|
||||
== Download devel version
|
||||
|
||||
Fresh code (with latest bugs and features) is stored in a GIT repository.
|
||||
|
||||
You may decide to build it manually (recommended way):
|
||||
|
||||
* The GIT version can be built and installed in parallel to the stable version.
|
||||
* You don't need root access, and you don't need to sacrifice the stable
|
||||
version of WeeChat.
|
||||
|
||||
[[get_sources]]
|
||||
=== Get and build sources
|
||||
|
||||
First create a directory, for example _weechat-git_:
|
||||
|
||||
----
|
||||
$ mkdir ~/weechat-git
|
||||
$ cd ~/weechat-git
|
||||
----
|
||||
|
||||
If you have git installed, you can just clone the git repository (recommended
|
||||
way):
|
||||
|
||||
----
|
||||
$ git clone https://github.com/weechat/weechat.git
|
||||
$ cd weechat
|
||||
----
|
||||
|
||||
[NOTE]
|
||||
Later, you can run `git pull` in this directory, to get deltas with
|
||||
the latest updates.
|
||||
|
||||
Otherwise you can download and unpack _devel_ package:
|
||||
|
||||
----
|
||||
$ wget https://weechat.org/files/src/weechat-devel.tar.bz2
|
||||
$ tar xvjf weechat-devel.tar.bz2
|
||||
$ cd weechat-devel
|
||||
----
|
||||
|
||||
To build sources, CMake is recommended:
|
||||
|
||||
----
|
||||
$ mkdir build
|
||||
$ cd build
|
||||
$ cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/weechat-git -DWEECHAT_HOME=~/.weechat-dev -DCMAKE_BUILD_TYPE=Debug
|
||||
$ make
|
||||
$ make install
|
||||
----
|
||||
|
||||
If you don't have CMake, it's still possible to use autotools:
|
||||
|
||||
----
|
||||
$ ./autogen.sh
|
||||
$ ./configure --prefix=$HOME/weechat-git WEECHAT_HOME=~/.weechat-dev
|
||||
$ make
|
||||
$ make install
|
||||
----
|
||||
|
||||
[[install_binary_package]]
|
||||
=== Install binary package
|
||||
|
||||
According to your Linux distribution:
|
||||
|
||||
* Debian: https://weechat.org/download/debian
|
||||
* Gentoo: https://weechat.org/download
|
||||
* ArchLinux: PKGBUILD from https://aur.archlinux.org/
|
||||
* other: we don't know! Eheh.
|
||||
|
||||
|
||||
[[run]]
|
||||
== Run WeeChat
|
||||
|
||||
Command is:
|
||||
|
||||
----
|
||||
$ ~/weechat-git/bin/weechat
|
||||
----
|
||||
|
||||
If you're still awake you should see the familiar interface and brag about
|
||||
having the newest possible version of WeeChat. ;)
|
||||
|
||||
Now if you experience strange behavior (it may have issues or crash or boil
|
||||
your beer) don't hesitate to join _#weechat_ at _irc.libera.chat_ and tell us.
|
||||
|
||||
If it doesn't crash - tell us too, we need your feedback!
|
||||
+1979
-1832
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (C) 2012-2021 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2012-2022 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# This file is part of WeeChat, the extensible chat client.
|
||||
#
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (C) 2012-2021 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2012-2022 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# This file is part of WeeChat, the extensible chat client.
|
||||
#
|
||||
|
||||
@@ -832,6 +832,24 @@ unirse a los canales):
|
||||
[[edit_autojoin]]
|
||||
=== ¿Cómo puedo añadir/eliminar canales de la opción autojoin?
|
||||
|
||||
// TRANSLATION MISSING
|
||||
With WeeChat ≥ 3.5, you can automatically record the channels you manually
|
||||
join and part in the "autojoin" server option.
|
||||
|
||||
// TRANSLATION MISSING
|
||||
For all servers:
|
||||
|
||||
----
|
||||
/set irc.server_default.autojoin_record on
|
||||
----
|
||||
|
||||
// TRANSLATION MISSING
|
||||
For a single server:
|
||||
|
||||
----
|
||||
/set irc.server.libera.autojoin_record on
|
||||
----
|
||||
|
||||
Puede utilizar el comando `/set` para editar la lista de canales con autojoin,
|
||||
por ejemplo, para el servidor "libera":
|
||||
|
||||
@@ -1086,6 +1104,15 @@ $ cd ~/.cache/weechat/script
|
||||
$ curl -O https://weechat.org/files/plugins.xml.gz
|
||||
----
|
||||
|
||||
// TRANSLATION MISSING
|
||||
If you're running macOS and the downloaded file has a size of 0 bytes,
|
||||
try to set this variable in your shell initialization file or on command line,
|
||||
before starting WeeChat:
|
||||
|
||||
----
|
||||
export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
|
||||
----
|
||||
|
||||
[[spell_dictionaries]]
|
||||
=== Instalé los diccionarios aspell en mi sistema, ¿cómo puedo utilizarlos sin necesidad de reiniciar WeeChat?
|
||||
|
||||
|
||||
+1
-14
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# This file is part of WeeChat, the extensible chat client.
|
||||
#
|
||||
@@ -122,19 +122,6 @@ if(ENABLE_DOC)
|
||||
add_custom_target(doc-quickstart-fr ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.fr.html)
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.fr.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
|
||||
|
||||
# tester's guide
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_tester.fr.html
|
||||
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -o weechat_tester.fr.html ${CMAKE_CURRENT_SOURCE_DIR}/weechat_tester.fr.adoc
|
||||
DEPENDS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../docinfo.html
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/weechat_tester.fr.adoc
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
COMMENT "Building weechat_tester.fr.html"
|
||||
)
|
||||
add_custom_target(doc-tester-fr ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_tester.fr.html)
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_tester.fr.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
|
||||
|
||||
# relay protocol
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_relay_protocol.fr.html
|
||||
|
||||
+1
-7
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2006 Julien Louis <ptitlouis@sysif.net>
|
||||
#
|
||||
# This file is part of WeeChat, the extensible chat client.
|
||||
@@ -29,7 +29,6 @@ EXTRA_DIST = CMakeLists.txt \
|
||||
weechat_scripting.fr.adoc \
|
||||
weechat_faq.fr.adoc \
|
||||
weechat_quickstart.fr.adoc \
|
||||
weechat_tester.fr.adoc \
|
||||
weechat_relay_protocol.fr.adoc \
|
||||
weechat_dev.fr.adoc \
|
||||
includes/autogen_api_completions.fr.adoc \
|
||||
@@ -58,7 +57,6 @@ if DOC
|
||||
weechat_scripting.fr.html \
|
||||
weechat_faq.fr.html \
|
||||
weechat_quickstart.fr.html \
|
||||
weechat_tester.fr.html \
|
||||
weechat_relay_protocol.fr.html \
|
||||
weechat_dev.fr.html
|
||||
doc_install = install-doc
|
||||
@@ -92,10 +90,6 @@ weechat_faq.fr.html: weechat_faq.fr.adoc $(abs_top_srcdir)/doc/docinfo.html
|
||||
weechat_quickstart.fr.html: weechat_quickstart.fr.adoc $(abs_top_srcdir)/doc/docinfo.html
|
||||
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_quickstart.fr.html $(abs_top_srcdir)/doc/fr/weechat_quickstart.fr.adoc
|
||||
|
||||
# tester's guide
|
||||
weechat_tester.fr.html: weechat_tester.fr.adoc $(abs_top_srcdir)/doc/docinfo.html
|
||||
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_tester.fr.html $(abs_top_srcdir)/doc/fr/weechat_tester.fr.adoc
|
||||
|
||||
# relay protocol
|
||||
weechat_relay_protocol.fr.html: weechat_relay_protocol.fr.adoc $(abs_top_srcdir)/doc/docinfo.html
|
||||
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_relay_protocol.fr.html $(abs_top_srcdir)/doc/fr/weechat_relay_protocol.fr.adoc
|
||||
|
||||
@@ -26,6 +26,8 @@
|
||||
|
||||
| irc | irc_channels | canaux sur tous les serveurs IRC
|
||||
|
||||
| irc | irc_channels_autojoin | canaux automatiquement rejoints sur le serveur courant (option "autojoin")
|
||||
|
||||
| irc | irc_ignores_numbers | numéros pour les ignores définis
|
||||
|
||||
| irc | irc_modelist_masks | masques de la liste de modes du canal IRC courant ; argument obligatoire : mode de la liste de modes
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|===
|
||||
| Extension | Nom | Description | Table de hachage (entrée) | Table de hachage (sortie)
|
||||
|
||||
| irc | irc_message_parse | analyse un message IRC | "message" : message IRC, "server" : nom du serveur (optionnel) | "tags" : étiquettes, "tag_xxx" : valeur de l'étiquette "xxx" sans échappements (une clé par étiquette), "message_without_tags" : message sans les étiquettes, "nick" : pseudo, "user" : nom d'utilisateur, "host" : nom d'hôte, "command" : commande, "channel" : canal, "arguments" : paramètres (inclut le canal), "text" : texte (par exemple message utilisateur), "pos_command" : index de "command" dans le message ("-1" si "command" n'a pas été trouvé), "pos_arguments" : index de "arguments" dans le message ("-1" si "arguments" n'a pas été trouvé), "pos_channel" : index de "channel" dans le message ("-1" si "channel" n'a pas été trouvé), "pos_text" : index de "text" dans le message ("-1" si "text" n'a pas été trouvé)
|
||||
| irc | irc_message_parse | analyse un message IRC | "message" : message IRC, "server" : nom du serveur (optionnel) | "tags" : étiquettes, "tag_xxx" : valeur de l'étiquette "xxx" sans échappements (une clé par étiquette), "message_without_tags" : message sans les étiquettes, "nick" : pseudo, "user" : nom d'utilisateur, "host" : nom d'hôte, "command" : commande, "channel" : canal, "arguments" : paramètres (inclut le canal), "text" : texte (par exemple message utilisateur), "param1" ... "paramN" : paramètres de la commande, "num_params" : nombre de paramètres dans la commande, "pos_command" : index de "command" dans le message ("-1" si "command" n'a pas été trouvé), "pos_arguments" : index de "arguments" dans le message ("-1" si "arguments" n'a pas été trouvé), "pos_channel" : index de "channel" dans le message ("-1" si "channel" n'a pas été trouvé), "pos_text" : index de "text" dans le message ("-1" si "text" n'a pas été trouvé)
|
||||
|
||||
| irc | irc_message_split | découper un message IRC (pour tenir dans les 512 octets par défaut) | "message" : message IRC, "server" : nom du serveur (optionnel) | "msg1" ... "msgN" : messages à envoyer (sans le "\r\n" final), "args1" ... "argsN" : paramètres des messages, "count" : nombre de messages
|
||||
|
||||
|
||||
@@ -123,6 +123,35 @@ Exemples :
|
||||
/auth utilisateur2 ${weechat_config_dir}/ecdsa2.pem
|
||||
----
|
||||
|
||||
[[command_irc_autojoin]]
|
||||
* `+autojoin+`: configurer l'option serveur "autojoin"
|
||||
|
||||
----
|
||||
/autojoin add [<canal1> [<canal2>...]]
|
||||
addraw <canal1>[,<canal2>...] [<clé1>[,<clé2>...]]
|
||||
del [<canal1> [<canal2>...]]
|
||||
save
|
||||
sort
|
||||
|
||||
add : ajouter le canal courant ou une liste de canaux (avec clés facultatives) dans l'option autojoin ; si vous êtes sur le canal et que la clé n'est pas fournie, la clé est lue sur ce canal
|
||||
addraw : utiliser le format brut IRC (identique à la commande /join) : tous les canaux séparés par des virgules, clés facultatives séparées par des virgules
|
||||
del : supprimer le canal courant ou une liste de canaux de l'option autojoin
|
||||
channel : nom du canal
|
||||
key : clé pour le canal
|
||||
save : sauver les canaux actuellement joints dans l'option autojoin
|
||||
sort : trier les canaux de l'option autojoin par ordre alphabétique
|
||||
|
||||
Exemples :
|
||||
/autojoin add
|
||||
/autojoin add #test
|
||||
/autojoin add #chan1 #chan2
|
||||
/autojoin addraw #chan1,#chan2,#chan3 key1,key2
|
||||
/autojoin del
|
||||
/autojoin del #chan1
|
||||
/autojoin save
|
||||
/autojoin sort
|
||||
----
|
||||
|
||||
[[command_irc_ban]]
|
||||
* `+ban+`: bannir des pseudos ou hôtes
|
||||
|
||||
@@ -1637,7 +1666,7 @@ listdefault : afficher les touches par défaut
|
||||
contexte : nom du contexte ("default" ou "search")
|
||||
bind : associer une commande à une touche ou affiche la commande associée à la touche
|
||||
bindctxt : associer une commande à une touche ou affiche la commande associée à la touche pour le contexte donné
|
||||
commande : commande (plusieurs commandes peuvent êtres séparées par des points-virgules)
|
||||
commande : commande (plusieurs commandes peuvent être séparées par des points-virgules)
|
||||
unbind : supprimer l'association à une touche
|
||||
unbindctxt : supprimer l'association à une touche pour le contexte donné
|
||||
reset : réinitialiser une touche à son association par défaut
|
||||
|
||||
@@ -1290,12 +1290,6 @@
|
||||
** valeurs: toute chaîne
|
||||
** valeur par défaut: `+"*"+`
|
||||
|
||||
* [[option_weechat.plugin.debug]] *weechat.plugin.debug*
|
||||
** description: pass:none[active les messages de debug par défaut pour toutes les extensions (option désactivée par défaut, ce qui est hautement recommandé)]
|
||||
** type: booléen
|
||||
** valeurs: on, off
|
||||
** valeur par défaut: `+off+`
|
||||
|
||||
* [[option_weechat.plugin.extension]] *weechat.plugin.extension*
|
||||
** description: pass:none[liste d'extensions de noms de fichiers pour les extensions (séparées par des virgules)]
|
||||
** type: chaîne
|
||||
@@ -2696,6 +2690,12 @@
|
||||
** valeurs: toute chaîne
|
||||
** valeur par défaut: `+""+`
|
||||
|
||||
* [[option_irc.server_default.autojoin_dynamic]] *irc.server_default.autojoin_dynamic*
|
||||
** description: pass:none[définir automatiquement l'option "autojoin" selon les canaux que vous rejoignez ou quittez manuellement avec les commandes /join et /part]
|
||||
** type: booléen
|
||||
** valeurs: on, off
|
||||
** valeur par défaut: `+off+`
|
||||
|
||||
* [[option_irc.server_default.autoreconnect]] *irc.server_default.autoreconnect*
|
||||
** description: pass:none[reconnexion automatique au serveur après une déconnexion]
|
||||
** type: booléen
|
||||
@@ -3064,11 +3064,11 @@
|
||||
** valeurs: -1 .. 43200
|
||||
** valeur par défaut: `+0+`
|
||||
|
||||
* [[option_relay.network.compression_level]] *relay.network.compression_level*
|
||||
** description: pass:none[niveau de compression pour les paquets envoyés au client avec le protocole WeeChat (0 = désactiver la compression, 1 = peu de compression ... 9 = meilleure compression)]
|
||||
* [[option_relay.network.compression]] *relay.network.compression*
|
||||
** description: pass:none[compression des messages envoyés aux clients avec le protocole "weechat" : 0 = désactiver la compression, 1 = faible compression / rapide ... 100 = meilleure compression / lent ; la valeur est un pourcentage converti de 1 à 9 pour zlib et de 1 à 19 pour zstd ; la valeur par défaut est recommandée, elle offre un bon compromis compression/vitesse]
|
||||
** type: entier
|
||||
** valeurs: 0 .. 9
|
||||
** valeur par défaut: `+6+`
|
||||
** valeurs: 0 .. 100
|
||||
** valeur par défaut: `+20+`
|
||||
|
||||
* [[option_relay.network.ipv6]] *relay.network.ipv6*
|
||||
** description: pass:none[écouter en IPv6 sur le socket par défaut (en plus de l'IPv4 qui est par défaut) ; les protocoles IPv4 et IPv6 peuvent être forcés (individuellement ou ensemble) dans le nom du protocole (voir /help relay)]
|
||||
|
||||
@@ -102,7 +102,7 @@ $HOME/.local/share/weechat/weechat.log::
|
||||
WeeChat est écrit par Sébastien Helleu et des contributeurs (la liste complète
|
||||
est dans le fichier AUTHORS.adoc).
|
||||
|
||||
Copyright (C) 2003-2021 {author}
|
||||
Copyright (C) 2003-2022 {author}
|
||||
|
||||
WeeChat est un logiciel libre ; vous pouvez le redistribuer et/ou le modifier
|
||||
sous les termes de la GNU General Public License telle que publiée par la
|
||||
|
||||
+219
-123
@@ -286,6 +286,7 @@ Le cœur de WeeChat est situé dans les répertoires suivants :
|
||||
| irc-ignore.c | Ignore IRC.
|
||||
| irc-info.c | Info/infolists/hdata pour IRC.
|
||||
| irc-input.c | Entrée de commandes/texte.
|
||||
| irc-join.c | Fonctions pour les listes de canaux à rejoindre.
|
||||
| irc-message.c | Fonctions pour manipuler les messages IRC.
|
||||
| irc-mode.c | Fonctions pour les modes de canal/pseudo.
|
||||
| irc-modelist.c | Listes de modes de canaux IRC (+b, +e, +I, ...).
|
||||
@@ -298,6 +299,7 @@ Le cœur de WeeChat est situé dans les répertoires suivants :
|
||||
| irc-sasl.c | Authentification SASL avec le serveur IRC.
|
||||
| irc-server.c | Communication avec le serveur IRC.
|
||||
| irc-tag.c | Fonctions pour manipuler les étiquettes de message IRC.
|
||||
| irc-typing.c | Statut d'écriture.
|
||||
| irc-upgrade.c | Sauvegarde/restauration des données IRC lors de la mise à jour de WeeChat.
|
||||
| javascript/ | Extension JavaScript.
|
||||
| weechat-js.cpp | Fonctions principales pour JavaScript (chargement/déchargement des scripts, exécution de code JavaScript).
|
||||
@@ -391,58 +393,67 @@ Le cœur de WeeChat est situé dans les répertoires suivants :
|
||||
|
||||
[width="100%",cols="2m,3",options="header"]
|
||||
|===
|
||||
| Chemin/fichier | Description
|
||||
| tests/ | Racine des tests.
|
||||
| tests.cpp | Programme utilisé pour lancer tous les tests.
|
||||
| scripts/ | Racine des tests de l'API script.
|
||||
| test-scripts.cpp | Programme utilisé pour lancer les tests de l'API script.
|
||||
| python/ | Scripts Python pour générer et lancer les tests de l'API script.
|
||||
| testapigen.py | Script Python générant des scripts dans tous les languages pour tester l'API script.
|
||||
| testapi.py | Script Python avec les tests API, utilisé par le script testapigen.py.
|
||||
| unparse.py | Conversion de code Python vers d'autres langages, utilisé par le script testapigen.py.
|
||||
| unit/ | Racine des tests unitaires.
|
||||
| test-plugins.cpp | Tests : extensions.
|
||||
| core/ | Racine des tests unitaires pour le cœur.
|
||||
| test-core-arraylist.cpp | Tests : listes avec tableau (« arraylists »).
|
||||
| test-core-calc.cpp | Tests : calcul d'expressions.
|
||||
| test-core-config-file.cpp | Tests : fichiers de configuration.
|
||||
| test-core-crypto.cpp | Tests : fonctions cryptographiques.
|
||||
| test-core-dir.cpp | Tests : répertoires/fichiers.
|
||||
| test-core-eval.cpp | Tests : évaluation d'expressions.
|
||||
| test-core-hashtble.cpp | Tests : tables de hachage.
|
||||
| test-core-hdata.cpp | Tests : hdata.
|
||||
| test-core-hook.cpp | Tests : hooks.
|
||||
| test-core-infolist.cpp | Tests : infolists.
|
||||
| test-core-list.cpp | Tests : listes.
|
||||
| test-core-network.cpp | Tests : fonctions réseau.
|
||||
| test-core-secure.cpp | Tests : données sécurisées.
|
||||
| test-core-signal.cpp | Tests : signaux.
|
||||
| test-core-string.cpp | Tests : chaînes.
|
||||
| test-core-url.cpp | Tests : URLs.
|
||||
| test-core-utf8.cpp | Tests : UTF-8.
|
||||
| test-core-util.cpp | Tests : fonctions utiles.
|
||||
| gui/ | Racine des tests unitaires pour les interfaces.
|
||||
| test-gui-color.cpp | Tests : couleurs.
|
||||
| test-gui-line.cpp | Tests : lignes.
|
||||
| test-gui-nick.cpp | Tests : pseudos.
|
||||
| plugins/ | Racine des tests unitaires pour les extensions.
|
||||
| irc/ | Racine des tests unitaires pour l'extension IRC.
|
||||
| test-irc-channel.cpp | Tests : canaux IRC.
|
||||
| test-irc-color.cpp | Tests : couleurs IRC.
|
||||
| test-irc-config.cpp | Tests : configuration IRC.
|
||||
| test-irc-ignore.cpp | Tests : ignores IRC.
|
||||
| test-irc-message.cpp | Tests : messages IRC.
|
||||
| test-irc-mode.cpp | Tests : modes IRC.
|
||||
| test-irc-nick.cpp | Tests : pseudos IRC.
|
||||
| test-irc-protocol.cpp | Tests : protocole IRC.
|
||||
| test-irc-server.cpp | Tests : serveur IRC.
|
||||
| trigger/ | Racine des tests unitaires pour l'extension trigger.
|
||||
| test-trigger.cpp | Tests : triggers.
|
||||
| typing/ | Racine des tests unitaires pour l'extension typing.
|
||||
| test-typing.cpp | Tests : typing.
|
||||
| test-typing-status.cpp | Tests : statut d'écriture.
|
||||
| relay/ | Racine des tests unitaires pour l'extension Relay.
|
||||
| test-relay-auth.cpp | Tests : authentification des clients.
|
||||
| Chemin/fichier | Description
|
||||
| tests/ | Racine des tests.
|
||||
| tests.cpp | Programme utilisé pour lancer tous les tests.
|
||||
| scripts/ | Racine des tests de l'API script.
|
||||
| test-scripts.cpp | Programme utilisé pour lancer les tests de l'API script.
|
||||
| python/ | Scripts Python pour générer et lancer les tests de l'API script.
|
||||
| testapigen.py | Script Python générant des scripts dans tous les languages pour tester l'API script.
|
||||
| testapi.py | Script Python avec les tests API, utilisé par le script testapigen.py.
|
||||
| unparse.py | Conversion de code Python vers d'autres langages, utilisé par le script testapigen.py.
|
||||
| unit/ | Racine des tests unitaires.
|
||||
| test-plugins.cpp | Tests : extensions.
|
||||
| core/ | Racine des tests unitaires pour le cœur.
|
||||
| test-core-arraylist.cpp | Tests : listes avec tableau (« arraylists »).
|
||||
| test-core-calc.cpp | Tests : calcul d'expressions.
|
||||
| test-core-config-file.cpp | Tests : fichiers de configuration.
|
||||
| test-core-crypto.cpp | Tests : fonctions cryptographiques.
|
||||
| test-core-dir.cpp | Tests : répertoires/fichiers.
|
||||
| test-core-eval.cpp | Tests : évaluation d'expressions.
|
||||
| test-core-hashtble.cpp | Tests : tables de hachage.
|
||||
| test-core-hdata.cpp | Tests : hdata.
|
||||
| test-core-hook.cpp | Tests : hooks.
|
||||
| test-core-infolist.cpp | Tests : infolists.
|
||||
| test-core-list.cpp | Tests : listes.
|
||||
| test-core-network.cpp | Tests : fonctions réseau.
|
||||
| test-core-secure.cpp | Tests : données sécurisées.
|
||||
| test-core-signal.cpp | Tests : signaux.
|
||||
| test-core-string.cpp | Tests : chaînes.
|
||||
| test-core-url.cpp | Tests : URLs.
|
||||
| test-core-utf8.cpp | Tests : UTF-8.
|
||||
| test-core-util.cpp | Tests : fonctions utiles.
|
||||
| gui/ | Racine des tests unitaires pour les interfaces.
|
||||
| test-gui-buffer.cpp | Tests : tampons.
|
||||
| test-gui-chat.cpp | Tests : fonctions de discussion.
|
||||
| test-gui-color.cpp | Tests : couleurs.
|
||||
| test-gui-line.cpp | Tests : lignes.
|
||||
| test-gui-nick.cpp | Tests : pseudos.
|
||||
| plugins/ | Racine des tests unitaires pour les extensions.
|
||||
| irc/ | Racine des tests unitaires pour l'extension IRC.
|
||||
| test-irc-buffer.cpp | Tests : tampons IRC.
|
||||
| test-irc-channel.cpp | Tests : canaux IRC.
|
||||
| test-irc-color.cpp | Tests : couleurs IRC.
|
||||
| test-irc-config.cpp | Tests : configuration IRC.
|
||||
| test-irc-ignore.cpp | Tests : ignores IRC.
|
||||
| test-irc-join.cpp | Tests : fonctions de join IRC.
|
||||
| test-irc-message.cpp | Tests : messages IRC.
|
||||
| test-irc-mode.cpp | Tests : modes IRC.
|
||||
| test-irc-nick.cpp | Tests : pseudos IRC.
|
||||
| test-irc-protocol.cpp | Tests : protocole IRC.
|
||||
| test-irc-sasl.cpp | Tests : authentification SASL avec le protocole IRC.
|
||||
| test-irc-server.cpp | Tests : serveur IRC.
|
||||
| test-irc-tag.cpp | Tests : étiquettes des messages IRC.
|
||||
| logger/ | Racine des tests unitaires pour l'extension logger.
|
||||
| test-logger-backlog.cpp | Tests : backlog logger.
|
||||
| trigger/ | Racine des tests unitaires pour l'extension trigger.
|
||||
| test-trigger.cpp | Tests : triggers.
|
||||
| test-trigger-config.cpp | Tests : configuration trigger.
|
||||
| typing/ | Racine des tests unitaires pour l'extension typing.
|
||||
| test-typing.cpp | Tests : typing.
|
||||
| test-typing-status.cpp | Tests : statut d'écriture.
|
||||
| relay/ | Racine des tests unitaires pour l'extension Relay.
|
||||
| test-relay-auth.cpp | Tests : authentification des clients.
|
||||
|===
|
||||
|
||||
[[documentation_translations]]
|
||||
@@ -464,7 +475,6 @@ Fichiers de documentation :
|
||||
| weechat_quickstart.XX.adoc | link:weechat_quickstart.fr.html[Guide de démarrage].
|
||||
| weechat_relay_protocol.XX.adoc | link:weechat_relay_protocol.fr.html[Protocole Relay (pour les interfaces distantes)].
|
||||
| weechat_scripting.XX.adoc | link:weechat_scripting.fr.html[Guide pour scripts].
|
||||
| weechat_tester.XX.adoc | link:weechat_tester.fr.html[Guide du testeur].
|
||||
| weechat_user.XX.adoc | link:weechat_user.fr.html[Guide utilisateur].
|
||||
| includes/ | Fichiers inclus dans la documentation.
|
||||
| autogen_api_completions.XX.adoc | Fichier auto-généré pour la Référence API extension : complétions (ne *JAMAIS* mettre à jour manuellement !).
|
||||
@@ -510,12 +520,12 @@ fichiers sont dans le répertoire _po/_ :
|
||||
|
||||
Exemple en C :
|
||||
|
||||
[source,C]
|
||||
[source,c]
|
||||
----
|
||||
/*
|
||||
* weechat.c - core functions for WeeChat
|
||||
*
|
||||
* Copyright (C) 2021 Your Name <your@email.com>
|
||||
* Copyright (C) 2022 Your Name <your@email.com>
|
||||
*
|
||||
* This file is part of WeeChat, the extensible chat client.
|
||||
*
|
||||
@@ -551,7 +561,7 @@ Quelques règles basiques que vous *devez* suivre quand vous écrivez du code C
|
||||
|
||||
Exemple :
|
||||
|
||||
[source,C]
|
||||
[source,c]
|
||||
----
|
||||
/*
|
||||
* Checks if a string with boolean value is valid.
|
||||
@@ -584,7 +594,7 @@ foo ()
|
||||
* Initialisez les variables locales après la déclaration, dans le corps de la
|
||||
fonction, exemple :
|
||||
|
||||
[source,C]
|
||||
[source,c]
|
||||
----
|
||||
void
|
||||
foo ()
|
||||
@@ -604,7 +614,7 @@ foo ()
|
||||
nombre d'espaces utilisés sur la ligne au dessus de l'accolade ouvrante (le
|
||||
`if` dans l'exemple) :
|
||||
|
||||
[source,C]
|
||||
[source,c]
|
||||
----
|
||||
if (nicks_count == 1)
|
||||
{
|
||||
@@ -615,7 +625,7 @@ if (nicks_count == 1)
|
||||
* Utilisez des lignes vides pour séparer différents blocs dans les fonctions, et
|
||||
si possible ajoutez un commentaire pour chacun, comme ceci :
|
||||
|
||||
[source,C]
|
||||
[source,c]
|
||||
----
|
||||
/*
|
||||
* Sends a message from out queue.
|
||||
@@ -659,7 +669,7 @@ irc_server_outqueue_send (struct t_irc_server *server)
|
||||
conditions avec un opérateur (pas nécessaire pour un booléen simple), comme
|
||||
ceci :
|
||||
|
||||
[source,C]
|
||||
[source,c]
|
||||
----
|
||||
if (something)
|
||||
{
|
||||
@@ -683,7 +693,7 @@ else
|
||||
|
||||
* Indentez les `switch` comme ceci :
|
||||
|
||||
[source,C]
|
||||
[source,c]
|
||||
----
|
||||
switch (string[0])
|
||||
{
|
||||
@@ -702,7 +712,7 @@ switch (string[0])
|
||||
* Utilisez `typedef` pur les prototypes de fonctions mais pas pour les
|
||||
structures :
|
||||
|
||||
[source,C]
|
||||
[source,c]
|
||||
----
|
||||
typedef int (t_hook_callback_fd)(void *data, int fd);
|
||||
|
||||
@@ -784,7 +794,7 @@ Les structures ont le nom _t_X_Y_ ou _t_X_Y_Z_ :
|
||||
|
||||
Exemple : un pseudo IRC (de _src/plugins/irc/irc-nick.h_) :
|
||||
|
||||
[source,C]
|
||||
[source,c]
|
||||
----
|
||||
struct t_irc_nick
|
||||
{
|
||||
@@ -814,7 +824,7 @@ _last_X_ (où _X_ est le nom de la variable, en utilisant le singulier).
|
||||
|
||||
Exemple : fenêtres (de _src/gui/gui-window.c_) :
|
||||
|
||||
[source,C]
|
||||
[source,c]
|
||||
----
|
||||
struct t_gui_window *gui_windows = NULL; /* first window */
|
||||
struct t_gui_window *last_gui_window = NULL; /* last window */
|
||||
@@ -834,7 +844,7 @@ La convention pour les noms des fonctions est le même que celui des
|
||||
|
||||
Exemple : création d'une nouvelle fenêtre (de _src/gui/gui-window.c_) :
|
||||
|
||||
[source,C]
|
||||
[source,c]
|
||||
----
|
||||
/*
|
||||
* Creates a new window.
|
||||
@@ -872,7 +882,7 @@ pointeur vers le nœud précédent/suivant.
|
||||
|
||||
Exemple : liste des tampons (de _src/gui/gui-buffer.h_) :
|
||||
|
||||
[source,C]
|
||||
[source,c]
|
||||
----
|
||||
struct t_gui_buffer
|
||||
{
|
||||
@@ -887,7 +897,7 @@ struct t_gui_buffer
|
||||
|
||||
Et les deux pointeurs vers la tête et la fin de liste :
|
||||
|
||||
[source,C]
|
||||
[source,c]
|
||||
----
|
||||
struct t_gui_buffer *gui_buffers = NULL; /* first buffer */
|
||||
struct t_gui_buffer *last_gui_buffer = NULL; /* last buffer */
|
||||
@@ -903,18 +913,10 @@ Tous les attributs/couleurs sont préfixés par un caractère dans la chaîne, q
|
||||
peuvent être :
|
||||
|
||||
* _0x19_ : code couleur (suivi par un/des code(s) couleur)
|
||||
* _0x1A_ : activer un attribut (suivi par un attribut sur un caractère)
|
||||
* _0x1B_ : supprimer un attribut (suivi par un attribut sur un caractère)
|
||||
* _0x1A_ : activer un attribut (suivi par un attribut brut sur un caractère)
|
||||
* _0x1B_ : supprimer un attribut (suivi par un attribut brut sur un caractère)
|
||||
* _0x1C_ : réinitialiser (rien après)
|
||||
|
||||
Les attributs autorisés sont (un ou plusieurs caractères) :
|
||||
|
||||
* `+*+` : gras
|
||||
* `+!+` : vidéo inverse
|
||||
* `+/+` : italique
|
||||
* `+_+` : souligné
|
||||
* `+|+` : garder les attributs
|
||||
|
||||
Les couleurs possibles sont :
|
||||
|
||||
* couleur standard : attributs facultatifs + nombre sur 2 digits
|
||||
@@ -923,47 +925,57 @@ Les couleurs possibles sont :
|
||||
Dans le tableau qui suit, les conventions suivantes sont utilisées :
|
||||
|
||||
* `STD` : couleur standard (2 digits)
|
||||
* `(A)STD` : couleur standard avec des attributs facultatifs
|
||||
* `(ATTR)STD` : couleur standard avec des attributs facultatifs
|
||||
(attributs + 2 digits)
|
||||
* `EXT` : couleur étendue (`+@+` + 5 digits)
|
||||
* `(A)EXT` : couleur étendue avec des attributs facultatifs
|
||||
* `(ATTR)EXT` : couleur étendue avec des attributs facultatifs
|
||||
(`+@+` + attributs + 5 digits)
|
||||
* `ATTR` : un caractère d'attribut (`+*+`, `+!+`, `+/+`, `+_+` ou `+|+`)
|
||||
* `(ATTR)` : un ou plusieurs caractères d'attribut :
|
||||
** `+*+` : gras
|
||||
** `+!+` : vidéo inverse
|
||||
** `+/+` : italique
|
||||
** `+_+` : souligné
|
||||
** `+|+` : garder les attributs
|
||||
* `(a)` : un caractère d'attribut brut :
|
||||
** _0x01_ : gras
|
||||
** _0x02_ : vidéo inverse
|
||||
** _0x03_ : italique
|
||||
** _0x04_ : souligné
|
||||
|
||||
Toutes les combinaisons sont résumées dans ce tableau :
|
||||
|
||||
[width="100%",cols="4,2,2,8",options="header"]
|
||||
[width="100%",cols="4,3,2,8",options="header"]
|
||||
|===
|
||||
| Code | Exemple | Aires | Description
|
||||
| [hex]#19# + STD | [hex]#19# `+01+` | chat + barres | Définir les attributs et la couleur en utilisant une option, voir le tableau ci-dessous.
|
||||
| [hex]#19# + EXT | [hex]#19# `+@00001+` | chat | Définir une couleur avec la paire ncurses (utilisé seulement sur le tampon `/color`).
|
||||
| [hex]#19# + "F" + (A)STD | [hex]#19# `+F*05+` | chat + barres | Définir la couleur de texte (couleur WeeChat).
|
||||
| [hex]#19# + "F" + (A)EXT | [hex]#19# `+F@00214+` | chat + barres | Définir la couleur de texte (couleur étendue).
|
||||
| [hex]#19# + "B" + STD | [hex]#19# `+B05+` | chat + barres | Définir la couleur de fond (couleur WeeChat).
|
||||
| [hex]#19# + "B" + EXT | [hex]#19# `+B@00124+` | chat + barres | Définir le couleur de fond (couleur étendue).
|
||||
| [hex]#19# + "*" + (A)STD | [hex]#19# `+*05+` | chat + barres | Définir la couleur de texte (couleur WeeChat).
|
||||
| [hex]#19# + "*" + (A)EXT | [hex]#19# `+*@00214+` | chat + barres | Définir la couleur de texte (couleur étendue).
|
||||
| [hex]#19# + "*" + (A)STD + "," + STD ^(1)^ | [hex]#19# `+*08,05+` | chat + barres | Définir la couleur de texte/fond (couleurs WeeChat).
|
||||
| [hex]#19# + "*" + (A)STD + "," + EXT ^(1)^ | [hex]#19# `+*01,@00214+` | chat + barres | Définir la couleur de texte (couleur WeeChat) et de fond (couleur étendue).
|
||||
| [hex]#19# + "*" + (A)EXT + "," + STD ^(1)^ | [hex]#19# `+*@00214,05+` | chat + barres | Définir la couleur de texte (couleur étendue) et de fond (couleur WeeChat).
|
||||
| [hex]#19# + "*" + (A)EXT + "," + EXT ^(1)^ | [hex]#19# `+*@00214,@00017+` | chat + barres | Définir la couleur de texte/fond (couleurs étendues).
|
||||
| [hex]#19# + "*" + (A)STD + "~" + STD | [hex]#19# `+*08~05+` | chat + barres | Définir la couleur de texte/fond (couleurs WeeChat).
|
||||
| [hex]#19# + "*" + (A)STD + "~" + EXT | [hex]#19# `+*01~@00214+` | chat + barres | Définir la couleur de texte (couleur WeeChat) et de fond (couleur étendue).
|
||||
| [hex]#19# + "*" + (A)EXT + "~" + STD | [hex]#19# `+*@00214~05+` | chat + barres | Définir la couleur de texte (couleur étendue) et de fond (couleur WeeChat).
|
||||
| [hex]#19# + "*" + (A)EXT + "~" + EXT | [hex]#19# `+*@00214~@00017+` | chat + barres | Définir la couleur de texte/fond (couleurs étendues).
|
||||
| [hex]#19# + "b" + "F" | [hex]#19# `+bF+` | barres | Définir la couleur de texte de la barre.
|
||||
| [hex]#19# + "b" + "D" | [hex]#19# `+bD+` | barres | Définir la couleur du délimiteur de la barre.
|
||||
| [hex]#19# + "b" + "B" | [hex]#19# `+bB+` | barres | Définir la couleur de fond de la barre.
|
||||
| [hex]#19# + "b" + "_" | [hex]#19# `+b_+` | barre input | Caractère de démarrage dans l'entrée (utilisé seulement dans l'objet "input_text").
|
||||
| [hex]#19# + "b" + "-" | [hex]#19# `+b-+` | barre input | Caractère de démarrage caché dans l'entrée (utilisé seulement dans l'objet "input_text").
|
||||
| [hex]#19# + "b" + "#" | [hex]#19# `+b#+` | barre input | Caractère de déplacement du curseur (utilisé seulement dans l'objet "input_text").
|
||||
| [hex]#19# + "b" + "i" | [hex]#19# `+bi+` | barres | Début d'objet.
|
||||
| [hex]#19# + "b" + "l" (lower L) | [hex]#19# `+bl+` | barres | Ligne de démarrage d'objet.
|
||||
| [hex]#19# + "E" | [hex]#19# `+E+` | chat + barres | Texte mis en valeur _(WeeChat ≥ 0.4.2)_.
|
||||
| [hex]#19# + [hex]#1C# | [hex]#19# [hex]#1C# | chat + barres | Réinitialiser la couleur (garder les attributs).
|
||||
| [hex]#1A# + ATTR | [hex]#1A# `+*+` | chat + barres | Activer un attribut.
|
||||
| [hex]#1B# + ATTR | [hex]#1B# `+*+` | chat + barres | Supprimer un attribut.
|
||||
| [hex]#1C# | [hex]#1C# | chat + barres | Réinitialiser les attributs et la couleur.
|
||||
| Code | Exemple | Aires | Description
|
||||
| [hex]#19# + `STD` | [hex]#19# `+01+` | chat + barres | Définir les attributs et la couleur en utilisant une option, voir le tableau ci-dessous.
|
||||
| [hex]#19# + `EXT` | [hex]#19# `+@00001+` | chat | Définir une couleur avec la paire ncurses (utilisé seulement sur le tampon `/color`).
|
||||
| [hex]#19# + `F` + `(ATTR)STD` | [hex]#19# `+F*05+` | chat + barres | Définir la couleur de texte (couleur WeeChat).
|
||||
| [hex]#19# + `F` + `(ATTR)EXT` | [hex]#19# `+F@00214+` | chat + barres | Définir la couleur de texte (couleur étendue).
|
||||
| [hex]#19# + `B` + `STD` | [hex]#19# `+B05+` | chat + barres | Définir la couleur de fond (couleur WeeChat).
|
||||
| [hex]#19# + `B` + `EXT` | [hex]#19# `+B@00124+` | chat + barres | Définir le couleur de fond (couleur étendue).
|
||||
| [hex]#19# + `*` + `(ATTR)STD` | [hex]#19# `+*05+` | chat + barres | Définir la couleur de texte (couleur WeeChat).
|
||||
| [hex]#19# + `*` + `(ATTR)EXT` | [hex]#19# `+*@00214+` | chat + barres | Définir la couleur de texte (couleur étendue).
|
||||
| [hex]#19# + `*` + `(ATTR)STD` + `,` + `STD` ^(1)^ | [hex]#19# `+*08,05+` | chat + barres | Définir la couleur de texte/fond (couleurs WeeChat).
|
||||
| [hex]#19# + `*` + `(ATTR)STD` + `,` + `EXT` ^(1)^ | [hex]#19# `+*01,@00214+` | chat + barres | Définir la couleur de texte (couleur WeeChat) et de fond (couleur étendue).
|
||||
| [hex]#19# + `*` + `(ATTR)EXT` + `,` + `STD` ^(1)^ | [hex]#19# `+*@00214,05+` | chat + barres | Définir la couleur de texte (couleur étendue) et de fond (couleur WeeChat).
|
||||
| [hex]#19# + `*` + `(ATTR)EXT` + `,` + `EXT` ^(1)^ | [hex]#19# `+*@00214,@00017+` | chat + barres | Définir la couleur de texte/fond (couleurs étendues).
|
||||
| [hex]#19# + `*` + `(ATTR)STD` + `~` + `STD` | [hex]#19# `+*08~05+` | chat + barres | Définir la couleur de texte/fond (couleurs WeeChat).
|
||||
| [hex]#19# + `*` + `(ATTR)STD` + `~` + `EXT` | [hex]#19# `+*01~@00214+` | chat + barres | Définir la couleur de texte (couleur WeeChat) et de fond (couleur étendue).
|
||||
| [hex]#19# + `*` + `(ATTR)EXT` + `~` + `STD` | [hex]#19# `+*@00214~05+` | chat + barres | Définir la couleur de texte (couleur étendue) et de fond (couleur WeeChat).
|
||||
| [hex]#19# + `*` + `(ATTR)EXT` + `~` + `EXT` | [hex]#19# `+*@00214~@00017+` | chat + barres | Définir la couleur de texte/fond (couleurs étendues).
|
||||
| [hex]#19# + `b` + `F` | [hex]#19# `+bF+` | barres | Définir la couleur de texte de la barre.
|
||||
| [hex]#19# + `b` + `D` | [hex]#19# `+bD+` | barres | Définir la couleur du délimiteur de la barre.
|
||||
| [hex]#19# + `b` + `B` | [hex]#19# `+bB+` | barres | Définir la couleur de fond de la barre.
|
||||
| [hex]#19# + `b` + `_` | [hex]#19# `+b_+` | barre input | Caractère de démarrage dans l'entrée (utilisé seulement dans l'objet "input_text").
|
||||
| [hex]#19# + `b` + `-` | [hex]#19# `+b-+` | barre input | Caractère de démarrage caché dans l'entrée (utilisé seulement dans l'objet "input_text").
|
||||
| [hex]#19# + `b` + `#` | [hex]#19# `+b#+` | barre input | Caractère de déplacement du curseur (utilisé seulement dans l'objet "input_text").
|
||||
| [hex]#19# + `b` + `i` | [hex]#19# `+bi+` | barres | Début d'objet.
|
||||
| [hex]#19# + `b` + `l` (lower L) | [hex]#19# `+bl+` | barres | Ligne de démarrage d'objet.
|
||||
| [hex]#19# + `E` | [hex]#19# `+E+` | chat + barres | Texte mis en valeur _(WeeChat ≥ 0.4.2)_.
|
||||
| [hex]#19# + [hex]#1C# | [hex]#19# [hex]#1C# | chat + barres | Réinitialiser la couleur (garder les attributs).
|
||||
| [hex]#1A# + `(a)` | [hex]#1A# [hex]#01# | chat + barres | Activer un attribut.
|
||||
| [hex]#1B# + `(a)` | [hex]#1B# [hex]#01# | chat + barres | Supprimer un attribut.
|
||||
| [hex]#1C# | [hex]#1C# | chat + barres | Réinitialiser les attributs et la couleur.
|
||||
|===
|
||||
|
||||
[NOTE]
|
||||
@@ -1083,7 +1095,7 @@ Et puis des macros sont utilisées pour appeler ces fonctions.
|
||||
Par exemple, la fonction _hook_timer_ est définie dans la structure
|
||||
_t_weechat_plugin_ comme ceci :
|
||||
|
||||
[source,C]
|
||||
[source,c]
|
||||
----
|
||||
struct t_hook *(*hook_timer) (struct t_weechat_plugin *plugin,
|
||||
long interval,
|
||||
@@ -1096,7 +1108,7 @@ struct t_hook *(*hook_timer) (struct t_weechat_plugin *plugin,
|
||||
|
||||
Et la macro utilisée pour appeler cette fonction est :
|
||||
|
||||
[source,C]
|
||||
[source,c]
|
||||
----
|
||||
#define weechat_hook_timer(__interval, __align_second, __max_calls, \
|
||||
__callback, __data) \
|
||||
@@ -1107,7 +1119,7 @@ Et la macro utilisée pour appeler cette fonction est :
|
||||
|
||||
Donc dans une extension, l'appel à cette fonction sera par exemple :
|
||||
|
||||
[source,C]
|
||||
[source,c]
|
||||
----
|
||||
server->hook_timer_sasl = weechat_hook_timer (timeout * 1000,
|
||||
0, 1,
|
||||
@@ -1131,16 +1143,100 @@ Le format du message de commit est le suivant (avec fermeture automatique
|
||||
du bug GitHub) :
|
||||
|
||||
----
|
||||
component: fix a problem (closes #123)
|
||||
composant: fix a problem (closes #123)
|
||||
----
|
||||
|
||||
Où _component_ est :
|
||||
Où _composant_ est :
|
||||
|
||||
* pour le cœur WeeChat : _core_ (les fichiers dans le répertoire racine, _po/_
|
||||
et _src/_, sauf _src/plugins/_)
|
||||
* fichiers de documentation : _doc_ (fichiers dans le répertoire _doc/_)
|
||||
* nom d'une extension : _irc_, _python_, _relay_, ... (fichiers dans le
|
||||
répertoire _src/plugins/_)
|
||||
[width="100%",cols="1m,4m,5",options="header"]
|
||||
|===
|
||||
| Composant | Fichiers | Description
|
||||
|
||||
| core |
|
||||
AUTHORS.adoc +
|
||||
ChangeLog.adoc +
|
||||
Contributing.adoc +
|
||||
.github/FUNDING.yml +
|
||||
.github/ISSUE_TEMPLATE/* +
|
||||
icons/* +
|
||||
po/* +
|
||||
README.adoc +
|
||||
ReleaseNotes.adoc +
|
||||
src/core/* +
|
||||
src/gui/* +
|
||||
version.sh +
|
||||
weechat.desktop |
|
||||
cœur de WeeChat
|
||||
|
||||
| build |
|
||||
autogen.sh +
|
||||
CMakeLists.txt +
|
||||
cmake/* +
|
||||
configure.ac +
|
||||
Makefile.am +
|
||||
tools/* +
|
||||
weechat.cygport.in +
|
||||
weechat.spec |
|
||||
Construction
|
||||
|
||||
| ci |
|
||||
.github/workflows/* |
|
||||
Intégration continue
|
||||
|
||||
| debian |
|
||||
debian-devel/* +
|
||||
debian-stable/* |
|
||||
Empaquetage Debian
|
||||
|
||||
| tests |
|
||||
tests/* |
|
||||
Tests
|
||||
|
||||
| doc |
|
||||
doc/* |
|
||||
Mises à jour générales sur la documentation, par exemple la construction
|
||||
|
||||
| doc/man |
|
||||
doc/xx/weechat.1.xx.adoc +
|
||||
doc/xx/weechat-headless.1.xx.adoc |
|
||||
Pages de manuel
|
||||
|
||||
| doc/faq |
|
||||
doc/xx/weechat_faq.xx.adoc |
|
||||
Questions fréquemment posées (FAQ)
|
||||
|
||||
| doc/quickstart |
|
||||
doc/xx/weechat_quickstart.xx.adoc |
|
||||
Guide de démarrage rapide
|
||||
|
||||
| doc/user |
|
||||
doc/xx/weechat_user.xx.adoc |
|
||||
Guide utilisateur
|
||||
|
||||
| doc/scripting |
|
||||
doc/xx/weechat_scripting.xx.adoc |
|
||||
Guide pour scripts
|
||||
|
||||
| doc/api |
|
||||
doc/xx/weechat_plugin_api.xx.adoc |
|
||||
Référence extension API
|
||||
|
||||
| doc/relay |
|
||||
doc/xx/weechat_relay_protocol.xx.adoc |
|
||||
Protocole relay
|
||||
|
||||
| doc/dev |
|
||||
doc/xx/weechat_dev.en.adoc |
|
||||
Guide du développeur
|
||||
|
||||
| irc +
|
||||
python +
|
||||
relay +
|
||||
… |
|
||||
src/plugins/<name>/* |
|
||||
Extension
|
||||
|
||||
|===
|
||||
|
||||
Quelques règles à suivre :
|
||||
|
||||
@@ -1224,7 +1320,7 @@ _doc/en/_), puis travaillez dessus.
|
||||
Les traductions manquantes dans les fichiers sont indiquées par cette chaîne :
|
||||
|
||||
----
|
||||
// TRANSLATION MISSING
|
||||
// TRANSLATION MISSING
|
||||
----
|
||||
|
||||
Vous devez traduire tout le fichier sauf les liens et les mots-clés spéciaux
|
||||
@@ -1241,7 +1337,7 @@ pour les notes, avertissements, ... Ces mots doivent être gardés tels quels :
|
||||
[CAUTION]
|
||||
----
|
||||
|
||||
Lorsqu'il y a un nom après `<<link_name>>`, alors vous devez le traduire :
|
||||
Lorsqu'il y a un nom après `+<<link_name>>+`, alors vous devez le traduire :
|
||||
|
||||
----
|
||||
<<link_name,ce texte doit être traduit>>
|
||||
|
||||
@@ -855,6 +855,21 @@ commande et le join des canaux) :
|
||||
[[edit_autojoin]]
|
||||
=== Comment puis-je ajouter/supprimer des canaux de l'option autojoin ?
|
||||
|
||||
Avec WeeChat ≥ 3.5, vous pouvez automatiquement enregistrer les canaux que
|
||||
vous rejoignez et quittez manuellement dans l'option "autojoin" du serveur.
|
||||
|
||||
Pour tous les serveurs :
|
||||
|
||||
----
|
||||
/set irc.server_default.autojoin_record on
|
||||
----
|
||||
|
||||
Pour un seul serveur :
|
||||
|
||||
----
|
||||
/set irc.server.libera.autojoin_record on
|
||||
----
|
||||
|
||||
Vous pouvez utiliser la commande `/set` pour éditer la liste des canaux de
|
||||
l'autojoin, par exemple pour le serveur libera :
|
||||
|
||||
@@ -1123,6 +1138,14 @@ $ cd ~/.cache/weechat/script
|
||||
$ curl -O https://weechat.org/files/plugins.xml.gz
|
||||
----
|
||||
|
||||
Si vous êtes sous macOS et que le fichier téléchargé a une taille de 0 octet,
|
||||
essayez de définir cette variable dans votre fichier d'initialisation du shell
|
||||
ou sur la ligne de commande, avant de démarrer WeeChat :
|
||||
|
||||
----
|
||||
export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
|
||||
----
|
||||
|
||||
[[spell_dictionaries]]
|
||||
=== J'ai installé des dictionnaires aspell sur mon système, comment les utiliser sans redémarrer WeeChat ?
|
||||
|
||||
|
||||
+1296
-1003
File diff suppressed because it is too large
Load Diff
@@ -24,7 +24,7 @@ Les termes suivants sont utilisés dans ce document :
|
||||
* _relay_ : il s'agit de l'extension "relay" de WeeChat, qui agit comme un
|
||||
"serveur" et autorise les _clients_ à se connecter
|
||||
* _client_ : il s'agit d'un autre logiciel, connecté au _relay_ via une
|
||||
connexion réseau; dans la plupart des cas, ce _client_ est une interface
|
||||
connexion réseau ; dans la plupart des cas, ce _client_ est une interface
|
||||
distante.
|
||||
|
||||
[[network_diagram]]
|
||||
@@ -79,7 +79,7 @@ Les commandes ont le format :
|
||||
Les champs sont :
|
||||
|
||||
* _id_ : identifiant du message (facultatif) qui sera envoyée dans la réponse de
|
||||
_relay_; elle doit être entre parenthèses, et ne doit pas commencer par un
|
||||
_relay_ ; elle doit être entre parenthèses, et ne doit pas commencer par un
|
||||
underscore (les identifiants commençant par un underscore sont réservés
|
||||
pour les messages _évènements_ de WeeChat)
|
||||
* _commande_ : une commande (voir le tableau ci-dessous)
|
||||
@@ -88,7 +88,7 @@ Les champs sont :
|
||||
|
||||
Liste des commandes disponibles (détail dans les chapitres suivants) :
|
||||
|
||||
[width="100%",cols="^3m,14",options="header"]
|
||||
[width="100%",cols="1m,8",options="header"]
|
||||
|===
|
||||
| Commande | Description
|
||||
| handshake | Poignée de main : préparer l'authentification du client et définir des options, avant la commande _init_.
|
||||
@@ -107,7 +107,7 @@ Liste des commandes disponibles (détail dans les chapitres suivants) :
|
||||
[[command_handshake]]
|
||||
=== handshake
|
||||
|
||||
_WeeChat ≥ 2.9._
|
||||
_WeeChat ≥ 2.9, mis à jour dans la version 3.5._
|
||||
|
||||
Effectuer une poignée de main entre le client et WeeChat : cela est obligatoire
|
||||
dans la plupart des cas pour connaître les paramètres de la session et préparer
|
||||
@@ -133,10 +133,16 @@ Paramètres :
|
||||
(avec un hachage SHA256)
|
||||
*** _pbkdf2+sha512_ : mot de passe salé et haché avec l'algorithme PBKDF2
|
||||
(avec un hachage SHA512)
|
||||
** _compression_ : type de compression :
|
||||
*** _zlib_ : activer la compression _zlib_ pour les messages envoyés par _relay_
|
||||
(activée par défaut si _relay_ supporte la compression _zlib_)
|
||||
*** _off_ : désactiver la compression
|
||||
** _compression_ : liste des types de compression supportées par le client
|
||||
(séparées par des deux-points et triées de la plus importante à la valeur
|
||||
par défaut) ; si la compression est activée, les messages de _relay_ vers
|
||||
le client sont compressés pour économiser de la bande passante ;
|
||||
les valeurs autorisées sont :
|
||||
*** _off_ : pas de compression (par défaut si l'option n'est pas donnée)
|
||||
*** _zlib_ : compresser avec https://zlib.net/[zlib] _(WeeChat ≥ 0.3.7)_
|
||||
*** _zstd_ : compresser avec https://facebook.github.io/zstd/[Zstandard] :
|
||||
meilleure compression et bien plus rapide que _zlib_ pour la compression et
|
||||
la décompression _(WeeChat ≥ 3.5)_
|
||||
|
||||
Notes à propos de l'option _password_hash_algo_ :
|
||||
|
||||
@@ -178,8 +184,9 @@ suivantes :
|
||||
_relay_ + le nonce client constituent le sel utilisé dans l'algorithme de
|
||||
hachage du mot de passe)
|
||||
* _compression_ : type de compression :
|
||||
** _zlib_ : les messages sont compressés avec _zlib_
|
||||
** _off_ : les messages ne sont pas compressés
|
||||
** _zlib_ : les messages sont compressés avec https://zlib.net/[zlib]
|
||||
** _zstd_ : les messages sont compressés avec https://facebook.github.io/zstd/[Zstandard]
|
||||
|
||||
[TIP]
|
||||
Avec WeeChat ≤ 2.8, la commande _handshake_ n'est pas implémentée, WeeChat ignore
|
||||
@@ -204,7 +211,7 @@ htb: {
|
||||
'password_hash_iterations': '100000',
|
||||
'totp': 'on',
|
||||
'nonce': '85B1EE00695A5B254E14F4885538DF0D',
|
||||
'compression': 'zlib',
|
||||
'compression': 'off',
|
||||
}
|
||||
----
|
||||
|
||||
@@ -224,7 +231,7 @@ htb: {
|
||||
'password_hash_iterations': '100000',
|
||||
'totp': 'on',
|
||||
'nonce': '85B1EE00695A5B254E14F4885538DF0D',
|
||||
'compression': 'zlib',
|
||||
'compression': 'off',
|
||||
}
|
||||
----
|
||||
|
||||
@@ -244,7 +251,7 @@ htb: {
|
||||
'password_hash_iterations': '100000',
|
||||
'totp': 'on',
|
||||
'nonce': '85B1EE00695A5B254E14F4885538DF0D',
|
||||
'compression': 'zlib',
|
||||
'compression': 'off',
|
||||
}
|
||||
----
|
||||
|
||||
@@ -256,10 +263,11 @@ le mot de passe est "test" dans cet exemple :
|
||||
init password_hash=pbkdf2+sha256:85b1ee00695a5b254e14f4885538df0da4b73207f5aae4:100000:ba7facc3edb89cd06ae810e29ced85980ff36de2bb596fcf513aaab626876440
|
||||
----
|
||||
|
||||
* Seulement "sha256" et "sha512" sont supportés par le client, désactiver la compression :
|
||||
* Seulement "sha256" et "sha512" sont supportés par le client, activer la
|
||||
compression zstd (préférée) ou zlib :
|
||||
|
||||
----
|
||||
(handshake) handshake password_hash_algo=sha256:sha512,compression=off
|
||||
(handshake) handshake password_hash_algo=sha256:sha512,compression=zstd:zlib
|
||||
----
|
||||
|
||||
Réponse :
|
||||
@@ -272,7 +280,7 @@ htb: {
|
||||
'password_hash_iterations': '100000',
|
||||
'totp': 'on',
|
||||
'nonce': '85B1EE00695A5B254E14F4885538DF0D',
|
||||
'compression': 'off',
|
||||
'compression': 'zstd',
|
||||
}
|
||||
----
|
||||
|
||||
@@ -306,12 +314,6 @@ Paramètres :
|
||||
One-Time Password) utilisé comme second facteur d'authentification, en plus
|
||||
du mot de passe (option _relay.network.totp_secret_ dans WeeChat)
|
||||
_(WeeChat ≥ 2.4)_
|
||||
** _compression_ : type de compression (*obsolète* depuis la version 2.9, gardé
|
||||
pour des raisons de compatibilité mais devrait être envoyé dans la
|
||||
<<command_handshake,commande handshake>>) :
|
||||
*** _zlib_ : activer la compression _zlib_ pour les messages envoyés par _relay_
|
||||
(activée par défaut si _relay_ supporte la compression _zlib_)
|
||||
*** _off_ : désactiver la compression
|
||||
|
||||
[NOTE]
|
||||
Avec WeeChat ≥ 1.6, les virgules peuvent être échappées dans la valeur,
|
||||
@@ -1005,7 +1007,7 @@ Paramètres :
|
||||
|
||||
WeeChat répond avec un hdata :
|
||||
|
||||
[width="100%",cols="3m,2,10",options="header"]
|
||||
[width="100%",cols="2m,3,14",options="header"]
|
||||
|===
|
||||
| Nom | Type | Description
|
||||
| context | chaîne | Contexte de complétion : "null" (pas de complétion), "command", "command_arg", "auto".
|
||||
@@ -1157,16 +1159,16 @@ Syntaxe :
|
||||
Paramètres :
|
||||
|
||||
* _tampon_ : pointeur (par exemple : "0x1234abcd") ou nom complet du tampon (par exemple :
|
||||
_core.weechat_ ou _irc.libera.#weechat_); le nom "*" peut être utilisé pour
|
||||
_core.weechat_ ou _irc.libera.#weechat_) ; le nom "*" peut être utilisé pour
|
||||
spécifier tous les tampons
|
||||
* _options_ : un ou plusieurs mots-clés, séparés par des virgules (par défaut
|
||||
_buffers,upgrade,buffer,nicklist_ pour "*" et _buffer,nicklist_ pour un
|
||||
tampon) :
|
||||
** _buffers_ : recevoir les signaux à propos des tampons (ouverts/fermés,
|
||||
déplacés, renommés, mélangés, masqués/démasqués); peut être utilisé seulement
|
||||
déplacés, renommés, mélangés, masqués/démasqués) ; peut être utilisé seulement
|
||||
avec "*" _(WeeChat ≥ 0.4.1)_
|
||||
** _upgrade_ : recevoir les signaux à propos de la mise à jour de WeeChat
|
||||
(mise à jour, fin de mise à jour); peut être utilisé seulement avec "*"
|
||||
(mise à jour, fin de mise à jour) ; peut être utilisé seulement avec "*"
|
||||
_(WeeChat ≥ 0.4.1)_
|
||||
** _buffer_ : recevoir les signaux à propos du tampon (nouvelles lignes, type
|
||||
changé, titre changé, variable locale ajoutée/supprimée, et les même signaux
|
||||
@@ -1225,11 +1227,11 @@ Syntaxe :
|
||||
Paramètres :
|
||||
|
||||
* _tampon_ : pointeur (par exemple : "0x1234abcd") ou nom complet du tampon (par exemple :
|
||||
_core.weechat_ ou _irc.libera.#weechat_); le nom "*" peut être utilisé pour
|
||||
_core.weechat_ ou _irc.libera.#weechat_) ; le nom "*" peut être utilisé pour
|
||||
spécifier tous les tampons
|
||||
* _options_ : un ou plusieurs mots-clés, séparés par des virgules (le défaut est
|
||||
_buffers,upgrade,buffer,nicklist_ pour "*" et _buffer,nicklist_ pour un
|
||||
tampon); voir <<command_sync,la commande sync>> pour les valeurs
|
||||
tampon) ; voir <<command_sync,la commande sync>> pour les valeurs
|
||||
|
||||
[NOTE]
|
||||
En utilisant le tampon "*", les autres tampons synchronisés (en utilisant un
|
||||
@@ -1278,24 +1280,24 @@ Syntaxe :
|
||||
|
||||
Objets retournés (dans cet ordre) :
|
||||
|
||||
[width="100%",cols="^3,3m,5m",options="header"]
|
||||
[width="100%",cols="1m,2,6m",options="header"]
|
||||
|===
|
||||
| Type | Type (dans le message) | Valeur
|
||||
| caractère | chr | 65 ("A")
|
||||
| entier | int | 123456
|
||||
| entier | int | -123456
|
||||
| long | lon | 1234567890
|
||||
| long | lon | -1234567890
|
||||
| chaîne | str | "a string"
|
||||
| chaîne | str | ""
|
||||
| chaîne | str | NULL
|
||||
| tampon de données | buf | "buffer"
|
||||
| tampon de données | buf | NULL
|
||||
| pointeur | ptr | 0x1234abcd
|
||||
| pointeur | ptr | NULL
|
||||
| date/heure | tim | 1321993456
|
||||
| tableau de chaînes | arr str | [ "abc", "de" ]
|
||||
| tableau d'entiers | arr int | [ 123, 456, 789 ]
|
||||
| Type | Description | Valeur
|
||||
| chr | caractère | 65 ("A")
|
||||
| int | entier | 123456
|
||||
| int | entier | -123456
|
||||
| lon | long | 1234567890
|
||||
| lon | long | -1234567890
|
||||
| str | chaîne | "a string"
|
||||
| str | chaîne | ""
|
||||
| str | chaîne | NULL
|
||||
| buf | tampon de données | "buffer"
|
||||
| buf | tampon de données | NULL
|
||||
| ptr | pointeur | 0x1234abcd
|
||||
| ptr | pointeur | NULL
|
||||
| tim | date/heure | 1321993456
|
||||
| arr str | tableau de chaînes | [ "abc", "de" ]
|
||||
| arr int | tableau d'entiers | [ 123, 456, 789 ]
|
||||
|===
|
||||
|
||||
[IMPORTANT]
|
||||
@@ -1399,9 +1401,10 @@ suivant (avec la taille en octets) :
|
||||
(en incluant ce champ)
|
||||
* _compression_ (octet) : drapeau :
|
||||
** _0x00_ : les données qui suivent ne sont pas compressées
|
||||
** _0x01_ : les données qui suivent sont compressées avec _zlib_
|
||||
** _0x01_ : les données qui suivent sont compressées avec https://zlib.net/[zlib]
|
||||
** _0x02_ : les données qui suivent sont compressées avec https://facebook.github.io/zstd/[Zstandard]
|
||||
* _id_ (chaîne, 4 octets + contenu) : l'identifiant envoyé par le client
|
||||
(avant le nom de la commande); il peut être vide (chaîne avec une longueur
|
||||
(avant le nom de la commande) ; il peut être vide (chaîne avec une longueur
|
||||
de zéro sans contenu) si l'identifiant n'était pas donné dans la commande
|
||||
* _type_ (3 caractères) : un type : 3 lettres (voir le tableau ci-dessous)
|
||||
* _objet_ : un objet (voir tableau ci-dessous)
|
||||
@@ -1409,9 +1412,9 @@ suivant (avec la taille en octets) :
|
||||
[[message_compression]]
|
||||
=== Compression
|
||||
|
||||
Si le drapeau de _compression_ est égal à 0x01, alors *toutes* les données après
|
||||
sont compressées avec _zlib_, et par conséquent doivent être décompressées avant
|
||||
d'être utilisées.
|
||||
Si le drapeau de _compression_ est égal à 0x01 ou 0x02, alors *toutes* les données
|
||||
après sont compressées avec https://zlib.net/[zlib] ou https://facebook.github.io/zstd/[Zstandard],
|
||||
et par conséquent doivent être décompressées avant d'être utilisées.
|
||||
|
||||
[[message_identifier]]
|
||||
=== Identifiant
|
||||
@@ -2360,7 +2363,7 @@ envoyer à nouveau les commandes envoyées au démarrage après _init_.
|
||||
Les objets sont identifiés par 3 lettres, appelées _type_. Les types suivants
|
||||
sont utilisés :
|
||||
|
||||
[width="100%",cols="^2m,5,10",options="header"]
|
||||
[width="100%",cols="1m,2,8",options="header"]
|
||||
|===
|
||||
| Type | Valeur | Longueur
|
||||
| chr | Caractère signé | 1 octet
|
||||
@@ -2473,7 +2476,7 @@ Une chaîne _NULL_ (pointeur NULL en C) a une longueur de -1 :
|
||||
[[object_buffer]]
|
||||
==== Tampon de données
|
||||
|
||||
Même format que l'objet <<object_string,chaîne>>; le contenu est simplement un
|
||||
Même format que l'objet <<object_string,chaîne>> ; le contenu est simplement un
|
||||
tableau d'octets.
|
||||
|
||||
[[object_pointer]]
|
||||
@@ -2556,7 +2559,7 @@ objets).
|
||||
....
|
||||
|
||||
* _h-path_ (chaîne) : chemin utilise pour atteindre le hdata (exemple :
|
||||
_buffer/lines/line/line_data_); le dernier élément du chemin est le hdata
|
||||
_buffer/lines/line/line_data_) ; le dernier élément du chemin est le hdata
|
||||
retourné
|
||||
* _keys_ (chaînes) : chaîne avec une liste de _clé:type_ (séparés par des
|
||||
virgules), exemple : _number:int,name:str_
|
||||
|
||||
@@ -205,6 +205,13 @@ Les fonctions sont appelées par `+weechat.xxx(arg1, arg2, ...)+`.
|
||||
|
||||
Les fonctions sont appelées par `+weechat::xxx arg1 arg2 ...+`.
|
||||
|
||||
Étant donné que Tcl n'a que des types "string", il n'y a pas de type null à
|
||||
donner comme paramètre quand une fonctionne accepte des valeurs nulles.
|
||||
Pour surmonter cela vous pouvez utiliser la constante `$::weechat::WEECHAT_NULL`
|
||||
qui agit comme la valeur nulle. Cette constante est définie avec la valeur
|
||||
`\uFFFF\uFFFF\uFFFFWEECHAT_NULL\uFFFF\uFFFF\uFFFF`, il est donc très peu probable
|
||||
qu'elle apparaisse de manière non intentionnelle.
|
||||
|
||||
[[language_guile]]
|
||||
==== Guile (Scheme)
|
||||
|
||||
@@ -563,7 +570,7 @@ link:weechat_plugin_api.fr.html[Référence API extension WeeChat].
|
||||
|
||||
Liste des fonctions de l'API script :
|
||||
|
||||
[width="100%",cols="1,3",options="header"]
|
||||
[width="100%",cols="1,5",options="header"]
|
||||
|===
|
||||
| Catégorie | Fonctions
|
||||
|
||||
@@ -663,6 +670,7 @@ Liste des fonctions de l'API script :
|
||||
print (pour python : prnt) +
|
||||
print_date_tags (pour python : prnt_date_tags) +
|
||||
print_y (pour python : prnt_y) +
|
||||
print_y_date_tags (pour python : prnt_y_date_tags) +
|
||||
log_print
|
||||
|
||||
| hooks |
|
||||
@@ -693,6 +701,7 @@ Liste des fonctions de l'API script :
|
||||
|
||||
| tampons |
|
||||
buffer_new +
|
||||
buffer_new_props +
|
||||
current_buffer +
|
||||
buffer_search +
|
||||
buffer_search_main +
|
||||
@@ -811,7 +820,7 @@ Liste des fonctions de l'API script :
|
||||
|
||||
Liste des constantes de l'API script :
|
||||
|
||||
[width="100%",cols="1,3",options="header"]
|
||||
[width="100%",cols="1,5",options="header"]
|
||||
|===
|
||||
|
||||
| Catégorie | Constantes
|
||||
@@ -896,7 +905,7 @@ Exemples :
|
||||
weechat.prnt("", "bonjour")
|
||||
|
||||
# afficher "bonjour" sur le tampon core, mais ne pas l'écrire dans le fichier de log
|
||||
# (version >= 0.3.3 seulement)
|
||||
# (version ≥ 0.3.3 seulement)
|
||||
weechat.prnt_date_tags("", 0, "no_log", "bonjour")
|
||||
|
||||
# afficher le préfixe "==>" et le message "bonjour" sur le tampon courant
|
||||
@@ -1077,26 +1086,53 @@ Vous pouvez lancer un processus en tâche de fond avec `+hook_process+`. Votre
|
||||
fonction de rappel sera appelée quand des données seront prêtes. Elle peut être
|
||||
appelée plusieurs fois.
|
||||
|
||||
Pour le dernier appel à votre fonction de rappel, _rc_ est positionné à 0 ou
|
||||
une valeur positive, c'est le code retour de la commande.
|
||||
Pour le dernier appel à votre fonction de rappel, _return_code_ est positionné
|
||||
à 0 ou une valeur positive, il s'agit du code retour de la commande.
|
||||
|
||||
Exemple :
|
||||
|
||||
[source,python]
|
||||
----
|
||||
process_output = ""
|
||||
|
||||
def my_process_cb(data, command, rc, out, err):
|
||||
global process_output
|
||||
if out != "":
|
||||
process_output += out
|
||||
if int(rc) >= 0:
|
||||
weechat.prnt("", process_output)
|
||||
def my_process_cb(data, command, return_code, out, err):
|
||||
if return_code == weechat.WEECHAT_HOOK_PROCESS_ERROR:
|
||||
weechat.prnt("", "Erreur avec la commande '%s'" % command)
|
||||
return weechat.WEECHAT_RC_OK
|
||||
if return_code >= 0:
|
||||
weechat.prnt("", "return_code = %d" % return_code)
|
||||
if out:
|
||||
weechat.prnt("", "stdout: %s" % out)
|
||||
if err:
|
||||
weechat.prnt("", "stderr: %s" % err)
|
||||
return weechat.WEECHAT_RC_OK
|
||||
|
||||
weechat.hook_process("/bin/ls -l /etc", 10 * 1000, "my_process_cb", "")
|
||||
----
|
||||
|
||||
Vous pouvez aussi appeler directement une fonction du script qui fait un appel
|
||||
bloquant, au lieu d'une commande externe :
|
||||
|
||||
[source,python]
|
||||
----
|
||||
def get_status(data):
|
||||
# faire quelque chose de bloquant...
|
||||
# ...
|
||||
return "ceci est le résultat"
|
||||
|
||||
def my_process_cb(data, command, return_code, out, err):
|
||||
if return_code == weechat.WEECHAT_HOOK_PROCESS_ERROR:
|
||||
weechat.prnt("", "Error with command '%s'" % command)
|
||||
return weechat.WEECHAT_RC_OK
|
||||
if return_code >= 0:
|
||||
weechat.prnt("", "return_code = %d" % return_code)
|
||||
if out:
|
||||
weechat.prnt("", "stdout: %s" % out)
|
||||
if err:
|
||||
weechat.prnt("", "stderr: %s" % err)
|
||||
return weechat.WEECHAT_RC_OK
|
||||
|
||||
hook = weechat.hook_process("func:get_status", 5000, "my_process_cb", "")
|
||||
----
|
||||
|
||||
[[url_transfer]]
|
||||
==== Transfert d'URL
|
||||
|
||||
@@ -1111,15 +1147,15 @@ dans la fonction de rappel (sortie standard du processus) :
|
||||
|
||||
[source,python]
|
||||
----
|
||||
# Afficher la version stable courante de WeeChat.
|
||||
weechat_version = ""
|
||||
# Afficher la dernière version stable de WeeChat.
|
||||
weechat_latest_version = ""
|
||||
|
||||
def weechat_process_cb(data, command, rc, out, err):
|
||||
global weechat_version
|
||||
if out != "":
|
||||
weechat_version += out
|
||||
if int(rc) >= 0:
|
||||
weechat.prnt("", "La version stable courante de WeeChat est : %s" % weechat_version)
|
||||
def weechat_process_cb(data, command, return_code, out, err):
|
||||
global weechat_latest_version
|
||||
if out:
|
||||
weechat_latest_version += out
|
||||
if return_code >= 0:
|
||||
weechat.prnt("", "Dernière version de WeeChat : %s" % weechat_latest_version)
|
||||
return weechat.WEECHAT_RC_OK
|
||||
|
||||
weechat.hook_process("url:https://weechat.org/dev/info/stable/",
|
||||
@@ -1135,9 +1171,9 @@ développement WeeChat dans le fichier _/tmp/weechat-devel.tar.gz_ :
|
||||
|
||||
[source,python]
|
||||
----
|
||||
def my_process_cb(data, command, rc, out, err):
|
||||
if int(rc) >= 0:
|
||||
weechat.prnt("", "Fin du transfert (rc=%s)" % rc)
|
||||
def my_process_cb(data, command, return_code, out, err):
|
||||
if return_code >= 0:
|
||||
weechat.prnt("", "Fin du transfert (code retour = %d)" % return_code)
|
||||
return weechat.WEECHAT_RC_OK
|
||||
|
||||
weechat.hook_process_hashtable("url:https://weechat.org/files/src/weechat-devel.tar.gz",
|
||||
|
||||
@@ -1,138 +0,0 @@
|
||||
= Guide du testeur WeeChat
|
||||
:author: Sébastien Helleu
|
||||
:email: flashcode@flashtux.org
|
||||
:lang: fr
|
||||
:toc: left
|
||||
:toc-title: Table des matières
|
||||
:sectnums:
|
||||
:docinfo1:
|
||||
|
||||
|
||||
[[purpose]]
|
||||
== Objet
|
||||
|
||||
Beaucoup d'utilisateurs nous demandent comment aider WeeChat. La façon
|
||||
la plus facile (et aussi la plus rusée) consiste à le tester !
|
||||
|
||||
Le test est une partie très importante du développement de logiciel et
|
||||
ne devrait pas être sous-estimé. Lorsque de nouvelles fonctionnalités
|
||||
sont implémentées, elles doivent être testées, mais pour certaines
|
||||
fonctionnalités il y a trop de cas à tester et les développeurs ne
|
||||
peuvent pas tout tester.
|
||||
|
||||
Par exemple : l'extension charset introduite dans WeeChat WeeChat 0.2.2 : aucun
|
||||
de nous (développeurs, contributeurs et testeurs) n'utilisait de canaux avec
|
||||
des caractères spéciaux dans leurs noms et quand la version 0.2.2 a été rendue
|
||||
disponible, nous avons reçu de nombreuses remontées d'utilisateurs russes.
|
||||
Si nous avons plus de testeurs, cela ne devrait pas arriver à nouveau dans le
|
||||
futur.
|
||||
|
||||
Tester les versions stables de WeeChat est inutile car les
|
||||
développeurs sont constamment occupés à implémenter de nouvelles
|
||||
fonctionnalités (et à corriger des anciens bugs).
|
||||
|
||||
|
||||
[[prepare_system]]
|
||||
== Préparez votre système
|
||||
|
||||
Cela nous aiderait beaucoup si vous activiez les fichiers _core_ Linux : si
|
||||
WeeChat se plante, Linux écrit un fichier _core_. Ce fichier contient des
|
||||
informations importantes pour le debug, pour savoir exactement où le problème
|
||||
se situe dans WeeChat).
|
||||
|
||||
Si vous utilisez le shell _bash_, ajoutez cette ligne dans votre _~/.bashrc_ :
|
||||
|
||||
----
|
||||
ulimit -c unlimited
|
||||
----
|
||||
|
||||
|
||||
[[download]]
|
||||
== Téléchargement de la version devel
|
||||
|
||||
Le code tout frais (avec les derniers bugs et fonctionnalités) est stocké dans
|
||||
GIT.
|
||||
|
||||
Vous pouvez décider de le construire manuellement (méthode recommandée) :
|
||||
|
||||
* La version GIT peut être construite et installée en parallèle de la version
|
||||
stable,
|
||||
* Vous n'avez pas besoin d'accès root ni de sacrifier votre version stable de
|
||||
WeeChat.
|
||||
|
||||
[[get_sources]]
|
||||
=== Obtenir et compiler les sources
|
||||
|
||||
Créez tout d'abord un répertoire, par exemple _weechat-git_ :
|
||||
|
||||
----
|
||||
$ mkdir ~/weechat-git
|
||||
$ cd ~/weechat-git
|
||||
----
|
||||
|
||||
Si vous avez git installé, vous pouvez cloner la base GIT (recommandé) :
|
||||
|
||||
----
|
||||
$ git clone https://github.com/weechat/weechat.git
|
||||
$ cd weechat
|
||||
----
|
||||
|
||||
[NOTE]
|
||||
Plus tard, vous pourrez utiliser la commande `git pull` dans ce répertoire
|
||||
pour obtenir juste les deltas avec la version d'aujourd'hui.
|
||||
|
||||
Sinon vous pouvez installer le paquet _devel_ :
|
||||
|
||||
----
|
||||
$ wget https://weechat.org/files/src/weechat-devel.tar.bz2
|
||||
$ tar xvjf weechat-devel.tar.bz2
|
||||
$ cd weechat-devel
|
||||
----
|
||||
|
||||
Pour compiler les sources, CMake est recommandé :
|
||||
|
||||
----
|
||||
$ mkdir build
|
||||
$ cd build
|
||||
$ cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/weechat-git -DWEECHAT_HOME=~/.weechat-dev -DCMAKE_BUILD_TYPE=Debug
|
||||
$ make
|
||||
$ make install
|
||||
----
|
||||
|
||||
Si vous n'avez pas CMake, il est toujours possible d'utiliser les autotools :
|
||||
|
||||
----
|
||||
$ ./autogen.sh
|
||||
$ ./configure --prefix=$HOME/weechat-git WEECHAT_HOME=~/.weechat-dev
|
||||
$ make
|
||||
$ make install
|
||||
----
|
||||
|
||||
[[install_binary_package]]
|
||||
=== Obtenir un paquet binaire
|
||||
|
||||
Selon votre distribution Linux :
|
||||
|
||||
* Debian : https://weechat.org/download/debian
|
||||
* Gentoo : https://weechat.org/download
|
||||
* ArchLinux : PKGBUILD depuis https://aur.archlinux.org/
|
||||
* autre : nous ne savons pas ! Eheh.
|
||||
|
||||
|
||||
[[run]]
|
||||
== Lancer WeeChat
|
||||
|
||||
La commande est :
|
||||
|
||||
----
|
||||
$ ~/weechat-git/bin/weechat
|
||||
----
|
||||
|
||||
Si vous êtes encore éveillé, vous devriez voir une interface familière et
|
||||
pouvoir vous vanter d'utiliser la version la plus récente possible de WeeChat ;)
|
||||
|
||||
Maintenant si vous obtenez un comportement étrange ou un plantage, n'hésitez
|
||||
pas à nous en avertir sur _#weechat_, serveur _irc.libera.chat_.
|
||||
|
||||
S'il n'y a pas de plantage, dites-le nous aussi, nous avons besoin de votre
|
||||
retour et de vos impressions !
|
||||
+2053
-1903
File diff suppressed because it is too large
Load Diff
+1
-14
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# This file is part of WeeChat, the extensible chat client.
|
||||
#
|
||||
@@ -122,17 +122,4 @@ if(ENABLE_DOC)
|
||||
add_custom_target(doc-quickstart-it ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.it.html)
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.it.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
|
||||
|
||||
# tester's guide
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_tester.it.html
|
||||
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -o weechat_tester.it.html ${CMAKE_CURRENT_SOURCE_DIR}/weechat_tester.it.adoc
|
||||
DEPENDS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../docinfo.html
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/weechat_tester.it.adoc
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
COMMENT "Building weechat_tester.it.html"
|
||||
)
|
||||
add_custom_target(doc-tester-it ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_tester.it.html)
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_tester.it.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
|
||||
|
||||
endif()
|
||||
|
||||
+2
-8
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
|
||||
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
|
||||
#
|
||||
# This file is part of WeeChat, the extensible chat client.
|
||||
#
|
||||
@@ -28,7 +28,6 @@ EXTRA_DIST = CMakeLists.txt \
|
||||
weechat_scripting.it.adoc \
|
||||
weechat_faq.it.adoc \
|
||||
weechat_quickstart.it.adoc \
|
||||
weechat_tester.it.adoc \
|
||||
includes/autogen_api_completions.it.adoc \
|
||||
includes/autogen_api_hdata.it.adoc \
|
||||
includes/autogen_api_infolists.it.adoc \
|
||||
@@ -54,8 +53,7 @@ if DOC
|
||||
weechat_plugin_api.it.html \
|
||||
weechat_scripting.it.html \
|
||||
weechat_faq.it.html \
|
||||
weechat_quickstart.it.html \
|
||||
weechat_tester.it.html
|
||||
weechat_quickstart.it.html
|
||||
doc_install = install-doc
|
||||
doc_uninstall = uninstall-doc
|
||||
endif
|
||||
@@ -87,10 +85,6 @@ weechat_faq.it.html: weechat_faq.it.adoc $(abs_top_srcdir)/doc/docinfo.html
|
||||
weechat_quickstart.it.html: weechat_quickstart.it.adoc $(abs_top_srcdir)/doc/docinfo.html
|
||||
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_quickstart.it.html $(abs_top_srcdir)/doc/it/weechat_quickstart.it.adoc
|
||||
|
||||
# tester's guide
|
||||
weechat_tester.it.html: weechat_tester.it.adoc $(abs_top_srcdir)/doc/docinfo.html
|
||||
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_tester.it.html $(abs_top_srcdir)/doc/it/weechat_tester.it.adoc
|
||||
|
||||
# install man/docs
|
||||
|
||||
install-data-hook: $(man_install) $(doc_install)
|
||||
|
||||
@@ -26,6 +26,8 @@
|
||||
|
||||
| irc | irc_channels | canali su tutti i server IRC
|
||||
|
||||
| irc | irc_channels_autojoin | channels automatically joined on the current server (option "autojoin")
|
||||
|
||||
| irc | irc_ignores_numbers | numero di ignore definiti
|
||||
|
||||
| irc | irc_modelist_masks | modelist masks of current IRC channel; required argument: modelist mode
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|===
|
||||
| Plugin | Nome | Descrizione | Tabella hash (input) | Tabella hash (output)
|
||||
|
||||
| irc | irc_message_parse | controlla un messaggio IRC | "message": messaggio IRC, "server": nome server (opzionale) | "tags": tags, "tag_xxx": unescaped value of tag "xxx" (one key per tag), "message_without_tags": message without the tags, "nick": nick, "user": user, "host": host, "command": command, "channel": channel, "arguments": arguments (includes channel), "text": text (for example user message), "pos_command": index of "command" message ("-1" if "command" was not found), "pos_arguments": index of "arguments" message ("-1" if "arguments" was not found), "pos_channel": index of "channel" message ("-1" if "channel" was not found), "pos_text": index of "text" message ("-1" if "text" was not found)
|
||||
| irc | irc_message_parse | controlla un messaggio IRC | "message": messaggio IRC, "server": nome server (opzionale) | "tags": tags, "tag_xxx": unescaped value of tag "xxx" (one key per tag), "message_without_tags": message without the tags, "nick": nick, "user": user, "host": host, "command": command, "channel": channel, "arguments": arguments (includes channel), "text": text (for example user message), "param1" ... "paramN": parsed command parameters, "num_params": number of parsed command parameters, "pos_command": index of "command" message ("-1" if "command" was not found), "pos_arguments": index of "arguments" message ("-1" if "arguments" was not found), "pos_channel": index of "channel" message ("-1" if "channel" was not found), "pos_text": index of "text" message ("-1" if "text" was not found)
|
||||
|
||||
| irc | irc_message_split | split an IRC message (to fit in 512 bytes by default) | "message": messaggio IRC, "server": nome server (opzionale) | "msg1" ... "msgN": messaggio da inviare (senza "\r\n" finale), "args1" ... "argsN": argomenti dei messaggi, "count": numero di messaggi
|
||||
|
||||
|
||||
@@ -123,6 +123,35 @@ Examples:
|
||||
/auth user2 ${weechat_config_dir}/ecdsa2.pem
|
||||
----
|
||||
|
||||
[[command_irc_autojoin]]
|
||||
* `+autojoin+`: configure the "autojoin" server option
|
||||
|
||||
----
|
||||
/autojoin add [<channel1> [<channel2>...]]
|
||||
addraw <channel1>[,<channel2>...] [<key1>[,<key2>...]]
|
||||
del [<channel1> [<channel2>...]]
|
||||
save
|
||||
sort
|
||||
|
||||
add: add current channel or a list of channels (with optional keys) to the autojoin option; if you are on the channel and the key is not provided, the key is read in the channel
|
||||
addraw: use the IRC raw format (same as /join command): all channels separated by commas, optional keys separated by commas
|
||||
del: delete current channel or a list of channels from the autojoin option
|
||||
channel: channel name
|
||||
key: key for the channel
|
||||
save: save currently joined channels in the autojoin option
|
||||
sort: sort alphabetically channels in the autojoin option
|
||||
|
||||
Examples:
|
||||
/autojoin add
|
||||
/autojoin add #test
|
||||
/autojoin add #chan1 #chan2
|
||||
/autojoin addraw #chan1,#chan2,#chan3 key1,key2
|
||||
/autojoin del
|
||||
/autojoin del #chan1
|
||||
/autojoin save
|
||||
/autojoin sort
|
||||
----
|
||||
|
||||
[[command_irc_ban]]
|
||||
* `+ban+`: banna nick oppure host
|
||||
|
||||
|
||||
@@ -1290,12 +1290,6 @@
|
||||
** valori: qualsiasi stringa
|
||||
** valore predefinito: `+"*"+`
|
||||
|
||||
* [[option_weechat.plugin.debug]] *weechat.plugin.debug*
|
||||
** descrizione: pass:none[abilita come predefinito il debug per tutti i plugin (opzione disabilita di default, caldamente raccomandato)]
|
||||
** tipo: bool
|
||||
** valori: on, off
|
||||
** valore predefinito: `+off+`
|
||||
|
||||
* [[option_weechat.plugin.extension]] *weechat.plugin.extension*
|
||||
** descrizione: pass:none[elenco separato da virgole di estensioni dei nomi file per i plugin]
|
||||
** tipo: stringa
|
||||
@@ -2696,6 +2690,12 @@
|
||||
** valori: qualsiasi stringa
|
||||
** valore predefinito: `+""+`
|
||||
|
||||
* [[option_irc.server_default.autojoin_dynamic]] *irc.server_default.autojoin_dynamic*
|
||||
** descrizione: pass:none[set automatically the "autojoin" option according to the channels you manually join and part with commands /join and /part]
|
||||
** tipo: bool
|
||||
** valori: on, off
|
||||
** valore predefinito: `+off+`
|
||||
|
||||
* [[option_irc.server_default.autoreconnect]] *irc.server_default.autoreconnect*
|
||||
** descrizione: pass:none[riconnette automaticamente al server alla disconnessione]
|
||||
** tipo: bool
|
||||
@@ -3064,11 +3064,11 @@
|
||||
** valori: -1 .. 43200
|
||||
** valore predefinito: `+0+`
|
||||
|
||||
* [[option_relay.network.compression_level]] *relay.network.compression_level*
|
||||
** descrizione: pass:none[livello di compressione per i pacchetti inviati al client con il protocollo WeeChat (0 = disabilita compressione, 1 = compressione bassa ... 9 = compressione migliore)]
|
||||
* [[option_relay.network.compression]] *relay.network.compression*
|
||||
** descrizione: pass:none[compression of messages sent to clients with "weechat" protocol: 0 = disable compression, 1 = low compression / fast ... 100 = best compression / slow; the value is a percentage converted to 1-9 for zlib and 1-19 for zstd; the default value is recommended, it offers a good compromise between compression and speed]
|
||||
** tipo: intero
|
||||
** valori: 0 .. 9
|
||||
** valore predefinito: `+6+`
|
||||
** valori: 0 .. 100
|
||||
** valore predefinito: `+20+`
|
||||
|
||||
* [[option_relay.network.ipv6]] *relay.network.ipv6*
|
||||
** descrizione: pass:none[listen on IPv6 socket by default (in addition to IPv4 which is default); protocols IPv4 and IPv6 can be forced (individually or together) in the protocol name (see /help relay)]
|
||||
|
||||
@@ -103,7 +103,7 @@ $HOME/.local/share/weechat/weechat.log::
|
||||
WeeChat is written by Sébastien Helleu and contributors (complete list is in
|
||||
the AUTHORS.adoc file).
|
||||
|
||||
Copyright (C) 2003-2021 {author}
|
||||
Copyright (C) 2003-2022 {author}
|
||||
|
||||
WeeChat is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user