mirror of
https://github.com/weechat/weechat.git
synced 2026-06-12 14:14:48 +02:00
Compare commits
534 Commits
| 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 | |||
| 3cd97b5131 | |||
| d8b8bf5a84 | |||
| 238c17bd0e | |||
| 1206e9e5c3 | |||
| f3b4336bc4 | |||
| 55df7805c2 | |||
| 9102e4f552 | |||
| 57ad90c3c0 | |||
| ed9104fbea | |||
| 68a3aca643 | |||
| 6fe354439c | |||
| 63b93a8147 | |||
| ad5fa7c99f | |||
| 9548a4cf74 | |||
| 301f0942c6 | |||
| fb57ad147e | |||
| 3ee2f40fb3 | |||
| edd1971ae8 | |||
| a6826af796 | |||
| bd21b25bad | |||
| 48a4a043b7 | |||
| 3b9217e460 | |||
| eaacd805ae | |||
| e9d303c4fa | |||
| fb1bf569a9 | |||
| e00937875d | |||
| 5dbf24d179 | |||
| 9d7cac2396 | |||
| 04977fa9da | |||
| 4aa2b86ee2 | |||
| f3fc1f5f85 | |||
| a7d3f9d4e8 | |||
| 91d32be93c | |||
| a76eedcd1f | |||
| 7742b48098 | |||
| 4d0245711d | |||
| 7d1b557627 | |||
| 5b3929b321 | |||
| 8852e9fd0c | |||
| d5b68e6b75 | |||
| 2446e5814f | |||
| 885b470d51 | |||
| 97b809d164 | |||
| 97bdd51112 | |||
| 75b9ba03a1 | |||
| 5fb7ebdfce | |||
| 6fc6166cfe | |||
| 12be3b8c33 | |||
| 5b5626a82b | |||
| 968d17b806 | |||
| 2de272ee6c | |||
| 009a2889e3 | |||
| 86e3c672bb | |||
| 254c1a3e8b | |||
| fa3cd3dd08 | |||
| 89b28e362c | |||
| cf27302dac | |||
| da8b7a85bb | |||
| 964d3e54d1 | |||
| 960b633517 | |||
| addd80e7b7 | |||
| 8e676edd1a | |||
| 415ea95eb4 | |||
| ede09a843c | |||
| 5442612bc9 | |||
| 2b12b4077a | |||
| 61c3169068 | |||
| 5b48eef4fe | |||
| 9b75118b83 | |||
| def564c5af | |||
| 57ea636fd6 | |||
| 84d8120060 | |||
| 20866a0457 | |||
| 79d50837c9 | |||
| 791b910a77 | |||
| d89c4f559c | |||
| 0be4020b68 | |||
| 72a9b87c1c | |||
| 88d59de940 | |||
| 6ff46776a4 | |||
| 77d96fec23 | |||
| 9404097756 | |||
| a16616637a | |||
| 2b1582c816 | |||
| efea27bb24 | |||
| 6052c1a5c0 | |||
| 3199877bc0 | |||
| b0d4b9aaba | |||
| 6a1425d5ba | |||
| 64b52da406 | |||
| 5ae4af1549 | |||
| f79929b382 | |||
| a4507539fb | |||
| 5b87e0c544 | |||
| 1746e832ec | |||
| ed24930547 | |||
| 7c83ee02f2 | |||
| 8dc75564c2 | |||
| 5b7f55090b | |||
| de61048cd2 | |||
| 252d1bbc9d | |||
| 0355f3fc1a | |||
| 09d871deb4 | |||
| 503a3cb755 | |||
| c127d1693a | |||
| 134f4374f8 | |||
| ab916d3d90 | |||
| 3d54365d67 | |||
| 3c920f9a80 | |||
| 954f943e8e | |||
| bba300e191 | |||
| 7954dbc1f4 | |||
| b108e97085 | |||
| dccf605e66 | |||
| b585ec09f8 | |||
| 5253478279 | |||
| 8a11a18dc5 | |||
| 9432b44a2b | |||
| 1ac800906b | |||
| 5d4adf8010 | |||
| 689a2c1705 | |||
| 9bd737ae1a | |||
| f1761b66c6 | |||
| 2205bb6b45 | |||
| e84a3676f6 | |||
| 253598d83c | |||
| ff6bc95429 | |||
| 61a6b0c705 | |||
| ff8beb1918 | |||
| 59853d9b30 | |||
| a48a615613 | |||
| 5a59482cc8 | |||
| 2478a4187a | |||
| 0fb88527ce | |||
| 7a0020f067 | |||
| f662ca9398 | |||
| 8f19798834 | |||
| 22a7e18842 | |||
| 51123b755d | |||
| b1cf12700d | |||
| 8ea1ee06e5 | |||
| 23c46c3f2b | |||
| b3b4ef648b | |||
| 60b9e36ae2 | |||
| 3d3cdf3884 | |||
| e04cc87f60 | |||
| f2d1acb899 | |||
| 1fb2fcbbd4 | |||
| 296f795ff3 | |||
| ef318cb70c | |||
| 947f73bd50 | |||
| 5a89825669 | |||
| eb2a42c99e | |||
| 60d4489b5e | |||
| 2225ac4e56 | |||
| fa785e8668 | |||
| 0ceccb9798 | |||
| 0b7e4977be | |||
| bfa0b4376c | |||
| 70c1a002e3 | |||
| e4b6db5de2 | |||
| e8cdda318f | |||
| 51740eb21e | |||
| 936e2fddaf | |||
| 70b66c4f6b | |||
| 0525922ee4 | |||
| b8baee1c06 | |||
| 88edc19149 | |||
| f6a4841dab | |||
| 19e41eb28a | |||
| 31b22fec09 | |||
| 1624b0ba97 | |||
| 9fe937a7fd | |||
| f6d1991833 |
+102
-12
@@ -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:
|
||||
tests_linux:
|
||||
|
||||
name: ${{ matrix.config.name }}
|
||||
runs-on: ubuntu-20.04
|
||||
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,6 +25,9 @@ jobs:
|
||||
- { name: "autotools_gcc", cc: "gcc", cxx: "g++", tool: "autotools", args: "" }
|
||||
- { name: "autotools_clang", cc: "clang", cxx: "clang++", tool: "autotools", args: "" }
|
||||
|
||||
name: "Tests: ${{ matrix.config.name }} on ${{ matrix.os }}"
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v2
|
||||
@@ -30,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 php7.4-dev libphp7.4-embed libargon2-0-dev libsodium-dev pylint 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
|
||||
|
||||
@@ -43,9 +47,12 @@ jobs:
|
||||
run: |
|
||||
pylint --additional-builtins=_ doc/docgen.py
|
||||
pylint doc/python_stub.py
|
||||
pylint tests/scripts/python/testapigen.py
|
||||
pylint tests/scripts/python/testapi.py
|
||||
pylint tests/scripts/python/unparse.py
|
||||
pylint tests/scripts/python/testapigen.py tests/scripts/python/testapi.py tests/scripts/python/unparse.py
|
||||
bandit doc/docgen.py doc/python_stub.py
|
||||
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 -
|
||||
|
||||
- name: Build and run tests
|
||||
env:
|
||||
@@ -64,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' }}
|
||||
@@ -76,3 +83,86 @@ jobs:
|
||||
lcov --remove coverage.info '/usr/*' --output-file coverage.info
|
||||
lcov --list coverage.info
|
||||
bash <(curl -s https://codecov.io/bash) -f coverage.info || echo 'Codecov error'
|
||||
|
||||
tests_macos:
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
os:
|
||||
- macos-11
|
||||
- macos-10.15
|
||||
config:
|
||||
- { name: "cmake_gcc", cc: "gcc", cxx: "g++" }
|
||||
- { name: "cmake_clang", cc: "clang", cxx: "clang++" }
|
||||
|
||||
name: "Tests: ${{ matrix.config.name }} on ${{ matrix.os }}"
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
brew update
|
||||
brew install asciidoctor lua ruby
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
CC: ${{ matrix.config.cc }}
|
||||
CXX: ${{ matrix.config.cxx }}
|
||||
run: |
|
||||
mkdir build-tmp && cd build-tmp
|
||||
cmake .. -DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_PHP=OFF
|
||||
make VERBOSE=1 -j2
|
||||
sudo make install
|
||||
|
||||
- name: Run WeeChat
|
||||
env:
|
||||
TERM: xterm-256color
|
||||
run: |
|
||||
weechat --help
|
||||
weechat-curses --help
|
||||
weechat --colors
|
||||
weechat --license
|
||||
weechat --version
|
||||
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
|
||||
|
||||
build_debian:
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
os:
|
||||
- ubuntu-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
|
||||
+4
-2
@@ -56,6 +56,7 @@ Alphabetically:
|
||||
* Guido Berhoerster
|
||||
* Gwenn
|
||||
* Hasan Kiran (turgay)
|
||||
* Ivan Pešić
|
||||
* Ivan Sichmann Freitas
|
||||
* Jakub Jirutka
|
||||
* Jan Palus
|
||||
@@ -130,6 +131,7 @@ Alphabetically:
|
||||
* Simmo Saan (sim642)
|
||||
* Simon Arlott
|
||||
* Simon Kuhnle
|
||||
* Simon Ser
|
||||
* Stefano Pigozzi
|
||||
* Stfn
|
||||
* Sven Knurr (Cthulhux)
|
||||
@@ -143,6 +145,7 @@ Alphabetically:
|
||||
* Trevor Bergeron
|
||||
* Valentin Lorentz (progval)
|
||||
* Vasco Almeida
|
||||
* Victorhck
|
||||
* Voroskoi
|
||||
* Wojciech Kwolek
|
||||
* W. Trevor King
|
||||
@@ -152,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].
|
||||
|
||||
+8
-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)
|
||||
@@ -115,6 +115,7 @@ option(ENABLE_PHP "Enable PHP scripting language" ON)
|
||||
option(ENABLE_SPELL "Enable Spell checker plugin" ON)
|
||||
option(ENABLE_ENCHANT "Enable Enchant lib for Spell checker plugin" OFF)
|
||||
option(ENABLE_TRIGGER "Enable Trigger plugin" ON)
|
||||
option(ENABLE_TYPING "Enable Typing plugin" ON)
|
||||
option(ENABLE_XFER "Enable Xfer plugin" ON)
|
||||
option(ENABLE_MAN "Enable build of man page" OFF)
|
||||
option(ENABLE_DOC "Enable build of documentation" OFF)
|
||||
@@ -195,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)
|
||||
|
||||
@@ -671,4 +671,4 @@ into proprietary programs. If your program is a subroutine library, you
|
||||
may consider it more useful to permit linking proprietary applications with
|
||||
the library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License. But first, please read
|
||||
<https://www.gnu.org/philosophy/why-not-lgpl.html>.
|
||||
<https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
|
||||
+601
-444
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.
|
||||
|
||||
|
||||
+432
-259
File diff suppressed because it is too large
Load Diff
+4
-4
@@ -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>
|
||||
#
|
||||
@@ -34,7 +34,7 @@ err ()
|
||||
echo "-------"
|
||||
echo "Error :"
|
||||
echo "---8<-----------------------------------"
|
||||
cat $AUTOGEN_LOG
|
||||
cat "$AUTOGEN_LOG"
|
||||
echo "----------------------------------->8---"
|
||||
exit 1
|
||||
}
|
||||
@@ -42,7 +42,7 @@ err ()
|
||||
run ()
|
||||
{
|
||||
printf "Running \"%s\"..." "$@"
|
||||
if eval "$@" >$AUTOGEN_LOG 2>&1 ; then
|
||||
if eval "$@" >"$AUTOGEN_LOG" 2>&1 ; then
|
||||
echo " OK"
|
||||
else
|
||||
echo " FAILED"
|
||||
@@ -66,4 +66,4 @@ run "rm -rf intl"
|
||||
run "autoreconf -vi"
|
||||
|
||||
# ending
|
||||
rm -f $AUTOGEN_LOG
|
||||
rm -f "$AUTOGEN_LOG"
|
||||
|
||||
@@ -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.
|
||||
#
|
||||
@@ -34,12 +34,12 @@ set(GCRYPT_CFLAGS)
|
||||
|
||||
if(LIBGCRYPT_CONFIG_EXECUTABLE)
|
||||
|
||||
exec_program(${LIBGCRYPT_CONFIG_EXECUTABLE} ARGS --libs RETURN_VALUE _return_VALUE OUTPUT_VARIABLE GCRYPT_LDFLAGS)
|
||||
exec_program(${LIBGCRYPT_CONFIG_EXECUTABLE} ARGS --cflags RETURN_VALUE _return_VALUE OUTPUT_VARIABLE GCRYPT_CFLAGS)
|
||||
execute_process(COMMAND ${LIBGCRYPT_CONFIG_EXECUTABLE} --libs RESULT_VARIABLE _return_VALUE OUTPUT_VARIABLE GCRYPT_LDFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET)
|
||||
execute_process(COMMAND ${LIBGCRYPT_CONFIG_EXECUTABLE} --cflags RESULT_VARIABLE _return_VALUE OUTPUT_VARIABLE GCRYPT_CFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET)
|
||||
|
||||
if(${GCRYPT_CFLAGS} MATCHES "\n")
|
||||
set(GCRYPT_CFLAGS " ")
|
||||
endif()
|
||||
if(NOT DEFINED ${GCRYPT_CFLAGS})
|
||||
set(GCRYPT_CFLAGS " ")
|
||||
endif()
|
||||
|
||||
endif()
|
||||
|
||||
|
||||
@@ -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.
|
||||
#
|
||||
|
||||
+2
-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>
|
||||
#
|
||||
# This file is part of WeeChat, the extensible chat client.
|
||||
#
|
||||
@@ -35,5 +35,5 @@ endif()
|
||||
|
||||
find_package(PkgConfig)
|
||||
if(PKG_CONFIG_FOUND)
|
||||
pkg_search_module(LUA lua5.3 lua-5.3 lua53 lua5.2 lua-5.2 lua52 lua5.1 lua-5.1 lua51 lua-5.0 lua5.0 lua50 lua)
|
||||
pkg_search_module(LUA lua5.4 lua-5.4 lua54 lua5.3 lua-5.3 lua53 lua5.2 lua-5.2 lua52 lua5.1 lua-5.1 lua51 lua-5.0 lua5.0 lua50 lua)
|
||||
endif()
|
||||
|
||||
@@ -1,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.
|
||||
#
|
||||
|
||||
+11
-7
@@ -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.
|
||||
#
|
||||
@@ -24,26 +24,30 @@ endif()
|
||||
|
||||
find_package(PkgConfig)
|
||||
if(PKG_CONFIG_FOUND)
|
||||
pkg_search_module(PHP php7)
|
||||
pkg_search_module(PHP php8 php7)
|
||||
endif()
|
||||
|
||||
if(NOT PHP_FOUND)
|
||||
find_program(PHP_CONFIG_EXECUTABLE NAMES
|
||||
php-config8.1 php-config81
|
||||
php-config8.0 php-config80
|
||||
php-config8
|
||||
php-config7.4 php-config74
|
||||
php-config7.3 php-config73
|
||||
php-config7.2 php-config72
|
||||
php-config7.1 php-config71
|
||||
php-config7.0 php-config70
|
||||
php-config php-config7
|
||||
php-config7
|
||||
php-config
|
||||
)
|
||||
if (PHP_CONFIG_EXECUTABLE)
|
||||
execute_process(COMMAND ${PHP_CONFIG_EXECUTABLE} --prefix OUTPUT_VARIABLE PHP_LIB_PREFIX OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
execute_process(COMMAND ${PHP_CONFIG_EXECUTABLE} --includes OUTPUT_VARIABLE PHP_INCLUDE_DIRS OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
execute_process(COMMAND ${PHP_CONFIG_EXECUTABLE} --libs OUTPUT_VARIABLE PHP_LIBS OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
execute_process(COMMAND ${PHP_CONFIG_EXECUTABLE} --version OUTPUT_VARIABLE PHP_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
if(${PHP_VERSION} MATCHES "^7")
|
||||
if(${PHP_VERSION} MATCHES "^[78]")
|
||||
find_library(PHP_LIB
|
||||
NAMES php7.4 php7.3 php7.2 php7.1 php7.0 php7
|
||||
NAMES php8.1 php8.0 php8 php7.4 php7.3 php7.2 php7.1 php7.0 php7 php
|
||||
HINTS ${PHP_LIB_PREFIX} ${PHP_LIB_PREFIX}/lib ${PHP_LIB_PREFIX}/lib64
|
||||
)
|
||||
if(PHP_LIB)
|
||||
@@ -58,9 +62,9 @@ if(NOT PHP_FOUND)
|
||||
endif()
|
||||
|
||||
if(NOT PHP_FOUND)
|
||||
message(WARNING "Could not find libphp7. "
|
||||
message(WARNING "Could not find libphp. "
|
||||
"Ensure PHP >=7.0.0 development libraries are installed and compiled with `--enable-embed`. "
|
||||
"Ensure `php-config` is in `PATH`. "
|
||||
"You may set `-DCMAKE_LIBRARY_PATH=...` to the directory containing libphp7."
|
||||
"You may set `-DCMAKE_LIBRARY_PATH=...` to the directory containing libphp."
|
||||
)
|
||||
endif()
|
||||
|
||||
@@ -1,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.
|
||||
#
|
||||
@@ -28,9 +28,7 @@ list(REVERSE files)
|
||||
foreach(file ${files})
|
||||
message(STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"")
|
||||
if(EXISTS "$ENV{DESTDIR}${file}")
|
||||
exec_program("@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
|
||||
OUTPUT_VARIABLE rm_out
|
||||
RETURN_VARIABLE rm_retval)
|
||||
execute_process(COMMAND "@CMAKE_COMMAND@" -E remove "$ENV{DESTDIR}${file}" OUTPUT_VARIABLE rm_out RESULT_VARIABLE rm_retval)
|
||||
if("${rm_retval}" GREATER 0)
|
||||
message(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"")
|
||||
endif()
|
||||
|
||||
+73
-28
@@ -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>
|
||||
@@ -64,7 +64,7 @@ darwin*)
|
||||
esac
|
||||
|
||||
# Gettext
|
||||
ALL_LINGUAS="cs de es fr hu it ja pl pt pt_BR ru tr"
|
||||
ALL_LINGUAS="cs de es fr hu it ja pl pt pt_BR ru sr tr"
|
||||
AM_GNU_GETTEXT
|
||||
AM_GNU_GETTEXT_VERSION([0.18])
|
||||
|
||||
@@ -130,6 +130,7 @@ AH_VERBATIM([PLUGIN_GUILE], [#undef PLUGIN_GUILE])
|
||||
AH_VERBATIM([PLUGIN_JAVASCRIPT], [#undef PLUGIN_JAVASCRIPT])
|
||||
AH_VERBATIM([PLUGIN_SPELL], [#undef PLUGIN_SPELL])
|
||||
AH_VERBATIM([PLUGIN_TRIGGER], [#undef PLUGIN_TRIGGER])
|
||||
AH_VERBATIM([PLUGIN_TYPING], [#undef PLUGIN_TYPING])
|
||||
AH_VERBATIM([PLUGIN_XFER], [#undef PLUGIN_XFER])
|
||||
AH_VERBATIM([TESTS], [#undef TESTS])
|
||||
AH_VERBATIM([MAN], [#undef MAN])
|
||||
@@ -164,6 +165,7 @@ AC_ARG_ENABLE(php, [ --disable-php turn off PHP script plugi
|
||||
AC_ARG_ENABLE(spell, [ --disable-spell turn off Spell checker plugin (default=compiled)],enable_spell=$enableval,enable_spell=yes)
|
||||
AC_ARG_ENABLE(enchant, [ --enable-enchant turn on Enchant lib for Spell checker plugin (default=off)],enable_enchant=$enableval,enable_enchant=no)
|
||||
AC_ARG_ENABLE(trigger, [ --disable-trigger turn off Trigger plugin (default=compiled)],enable_trigger=$enableval,enable_trigger=yes)
|
||||
AC_ARG_ENABLE(typing, [ --disable-typing turn off Typing plugin (default=compiled)],enable_trigger=$enableval,enable_typing=yes)
|
||||
AC_ARG_ENABLE(xfer, [ --disable-xfer turn off Xfer (file transfer) plugin (default=compiled)],enable_xfer=$enableval,enable_xfer=yes)
|
||||
AC_ARG_WITH(tclconfig, [ --with-tclconfig=DIR directory containing tcl configuration (tclConfig.sh)],tclconfig=$withval,tclconfig='')
|
||||
AC_ARG_WITH(debug, [ --with-debug debugging: 0=no debug, 1=debug compilation (default=0)],debug=$withval,debug=0)
|
||||
@@ -499,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`
|
||||
@@ -571,7 +573,7 @@ if test "x$enable_lua" = "xyes" ; then
|
||||
if test "x$LUA_CFLAGS" = "x" -o "x$LUA_LFLAGS" = "x" ; then
|
||||
AC_MSG_CHECKING(for Lua headers and libraries with pkg-config)
|
||||
echo
|
||||
for l in "53" "5.3" "52" "5.2" "51" "5.1" "50" "5.0" "$lua_suffix" "" ; do
|
||||
for l in "54" "5.4" "53" "5.3" "52" "5.2" "51" "5.1" "50" "5.0" "$lua_suffix" "" ; do
|
||||
pkgconfig_lua_found=`$PKGCONFIG --exists lua$l 2>/dev/null`
|
||||
if test "x$?" = "x0" ; then
|
||||
LUA_VERSION=`$PKGCONFIG --modversion lua$l`
|
||||
@@ -590,7 +592,7 @@ if test "x$enable_lua" = "xyes" ; then
|
||||
|
||||
if test "x$LUA_CFLAGS" = "x" -o "x$LUA_LFLAGS" = "x" ; then
|
||||
LUACONFIG=""
|
||||
AC_CHECK_PROGS(LUACONFIG, lua-config53 lua-config5.3 lua-config52 lua-config5.2 lua-config51 lua-config5.1 lua-config50 lua-config5.0 lua-config)
|
||||
AC_CHECK_PROGS(LUACONFIG, lua-config54 lua-config5.4 lua-config53 lua-config5.3 lua-config52 lua-config5.2 lua-config51 lua-config5.1 lua-config50 lua-config5.0 lua-config)
|
||||
if test "x$LUACONFIG" != "x" ; then
|
||||
AC_MSG_CHECKING(for Lua headers and libraries with lua-config)
|
||||
echo
|
||||
@@ -608,7 +610,7 @@ if test "x$enable_lua" = "xyes" ; then
|
||||
if test "x$ac_found_lua_header" = "xyes" -a "x$ac_found_liblua_header" = "xyes"; then
|
||||
LUA_CFLAGS="$CFLAGS"
|
||||
fi
|
||||
for l in "53" "5.3" "52" "5.2" "51" "5.1" "50" "5.0" "$lua_suffix" "" ; do
|
||||
for l in "54" "5.4" "53" "5.3" "52" "5.2" "51" "5.1" "50" "5.0" "$lua_suffix" "" ; do
|
||||
AC_CHECK_LIB(lua$l,lua_call,ac_found_lua_lib="yes",ac_found_lua_lib="no")
|
||||
if test "x$ac_found_lua_lib" = "xyes" ; then
|
||||
LUA_VERSION=">=5.1.0"
|
||||
@@ -831,6 +833,7 @@ if test "x$enable_php" = "xyes" ; then
|
||||
|
||||
PHP_CFLAGS=""
|
||||
PHP_LFLAGS=""
|
||||
PHP_VERSIONS="8.1 81 8.0 80 8 7.4 74 7.3 73 7.2 72 7.1 71 7.0 70 7 $php_suffix"
|
||||
|
||||
if test -n "$php_inc"; then
|
||||
CFLAGS="$CFLAGS -I$php_inc"
|
||||
@@ -843,7 +846,7 @@ if test "x$enable_php" = "xyes" ; then
|
||||
if test "x$PHP_CFLAGS" = "x" -o "x$PHP_LFLAGS" = "x" ; then
|
||||
AC_MSG_CHECKING(for PHP headers and libraries with pkg-config)
|
||||
echo
|
||||
for l in "7.4" "74" "7.3" "73" "7.2" "72" "7.1" "71" "7.0" "70" "7" "$php_suffix" "" ; do
|
||||
for l in $PHP_VERSIONS "" ; do
|
||||
pkgconfig_php_found=`$PKGCONFIG --exists php$l 2>/dev/null`
|
||||
if test "x$?" = "x0" ; then
|
||||
pkgconfig_php_found=`$PKGCONFIG --atleast-version=7 php$l 2>/dev/null`
|
||||
@@ -860,11 +863,12 @@ if test "x$enable_php" = "xyes" ; then
|
||||
if test "x$PHP_CFLAGS" = "x" -o "x$PHP_LFLAGS" = "x" ; then
|
||||
PHPCONFIG=""
|
||||
AC_MSG_CHECKING(for PHP headers and libraries with php-config)
|
||||
for l in "7.4" "74" "7.3" "73" "7.2" "72" "7.1" "71" "7.0" "70" "7" "$php_suffix" "" ; do
|
||||
echo
|
||||
for l in $PHP_VERSIONS "" ; do
|
||||
AC_CHECK_PROG(PHPCONFIG, "php-config$l", "php-config$l")
|
||||
if test "x$PHPCONFIG" != "x" ; then
|
||||
php_config_version=`$PHPCONFIG --version`
|
||||
if test "x${php_config_version#7}" != "x${php_config_version}" ; then
|
||||
if echo "x$php_config_version" | grep -e "^x7" -e "^x8" 1>/dev/null 2>&1 ; then
|
||||
PHP_VERSION=$php_config_version
|
||||
PHP_CFLAGS=`$PHPCONFIG --includes`
|
||||
PHP_LFLAGS="-L$($PHPCONFIG --prefix)/lib/ $($PHPCONFIG --libs) -lphp$l"
|
||||
@@ -881,23 +885,25 @@ if test "x$enable_php" = "xyes" ; then
|
||||
if test "x$ac_found_php_header" = "xyes" ; then
|
||||
PHP_CFLAGS="$CFLAGS"
|
||||
fi
|
||||
for l in "7.4" "74" "7.3" "73" "7.2" "72" "7.1" "71" "7.0" "70" "7" "$php_suffix" "" ; do
|
||||
AC_CHECK_LIB(php$l,php_execute_script,ac_found_php_lib="yes",ac_found_php_lib="no")
|
||||
if test "x$ac_found_php_lib" = "xyes" ; then
|
||||
PHP_VERSION=">=7.0.0"
|
||||
for l in $PHP_VERSIONS "" ; do
|
||||
for PHP_LIB_SUFFIX in "$l" "$(echo $l | cut -c1)" "" ; do
|
||||
AC_CHECK_LIB(php$PHP_LIB_SUFFIX,php_execute_script,ac_found_php_lib="yes",ac_found_php_lib="no")
|
||||
if test "x$ac_found_php_lib" = "xyes" ; then
|
||||
PHP_VERSION=">=7.0.0"
|
||||
|
||||
PHP_LFLAGS="$LDFLAGS -lphp7 -lm"
|
||||
PHP_LFLAGS="$LDFLAGS -lphp$PHP_LIB_SUFFIX -lm"
|
||||
|
||||
ac2_save_LDFLAGS="$LDFLAGS"
|
||||
LDFLAGS="$LDFLAGS -lphp7 -lm"
|
||||
ac2_save_LDFLAGS="$LDFLAGS"
|
||||
LDFLAGS="$LDFLAGS -lphp$PHP_LIB_SUFFIX -lm"
|
||||
|
||||
if echo "$host_os" | grep "^linux" 1>/dev/null 2>&1 ; then
|
||||
LDFLAGS="$LDFLAGS -ldl"
|
||||
if echo "$host_os" | grep "^linux" 1>/dev/null 2>&1 ; then
|
||||
LDFLAGS="$LDFLAGS -ldl"
|
||||
fi
|
||||
|
||||
LDFLAGS="$ac2_save_LDFLAGS"
|
||||
break 2
|
||||
fi
|
||||
|
||||
LDFLAGS="$ac2_save_LDFLAGS"
|
||||
break
|
||||
fi
|
||||
done
|
||||
done
|
||||
fi
|
||||
|
||||
@@ -1013,6 +1019,18 @@ else
|
||||
not_asked="$not_asked trigger"
|
||||
fi
|
||||
|
||||
# ---------------------------------- typing ------------------------------------
|
||||
|
||||
if test "x$enable_typing" = "xyes" ; then
|
||||
TYPING_CFLAGS=""
|
||||
TYPING_LFLAGS=""
|
||||
AC_SUBST(TYPING_CFLAGS)
|
||||
AC_SUBST(TYPING_LFLAGS)
|
||||
AC_DEFINE(PLUGIN_TYPING)
|
||||
else
|
||||
not_asked="$not_asked typing"
|
||||
fi
|
||||
|
||||
# ---------------------------------- xfer --------------------------------------
|
||||
|
||||
if test "x$enable_xfer" = "xyes" ; then
|
||||
@@ -1157,6 +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
|
||||
# ------------------------------------------------------------------------------
|
||||
@@ -1245,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
|
||||
@@ -1365,6 +1404,7 @@ AM_CONDITIONAL(PLUGIN_JAVASCRIPT, test "$enable_javascript" = "yes")
|
||||
AM_CONDITIONAL(PLUGIN_PHP, test "$enable_php" = "yes")
|
||||
AM_CONDITIONAL(PLUGIN_SPELL, test "$enable_spell" = "yes")
|
||||
AM_CONDITIONAL(PLUGIN_TRIGGER, test "$enable_trigger" = "yes")
|
||||
AM_CONDITIONAL(PLUGIN_TYPING, test "$enable_typing" = "yes")
|
||||
AM_CONDITIONAL(PLUGIN_XFER, test "$enable_xfer" = "yes")
|
||||
AM_CONDITIONAL(TESTS, test "$enable_tests" = "yes")
|
||||
AM_CONDITIONAL(MAN, test "$enable_man" = "yes")
|
||||
@@ -1373,15 +1413,16 @@ AM_CONDITIONAL(DOC, test "$enable_doc" = "yes")
|
||||
AC_OUTPUT([Makefile
|
||||
icons/Makefile
|
||||
doc/Makefile
|
||||
doc/cs/Makefile
|
||||
doc/de/Makefile
|
||||
doc/en/Makefile
|
||||
doc/es/Makefile
|
||||
doc/fr/Makefile
|
||||
doc/it/Makefile
|
||||
doc/de/Makefile
|
||||
doc/pl/Makefile
|
||||
doc/es/Makefile
|
||||
doc/ru/Makefile
|
||||
doc/ja/Makefile
|
||||
doc/cs/Makefile
|
||||
doc/pl/Makefile
|
||||
doc/ru/Makefile
|
||||
doc/sr/Makefile
|
||||
src/Makefile
|
||||
src/core/Makefile
|
||||
src/plugins/Makefile
|
||||
@@ -1405,6 +1446,7 @@ AC_OUTPUT([Makefile
|
||||
src/plugins/php/Makefile
|
||||
src/plugins/spell/Makefile
|
||||
src/plugins/trigger/Makefile
|
||||
src/plugins/typing/Makefile
|
||||
src/plugins/xfer/Makefile
|
||||
src/gui/Makefile
|
||||
src/gui/curses/Makefile
|
||||
@@ -1493,6 +1535,9 @@ fi
|
||||
if test "x$enable_trigger" = "xyes"; then
|
||||
listplugins="$listplugins trigger"
|
||||
fi
|
||||
if test "x$enable_typing" = "xyes"; then
|
||||
listplugins="$listplugins typing"
|
||||
fi
|
||||
if test "x$enable_xfer" = "xyes"; then
|
||||
listplugins="$listplugins xfer"
|
||||
fi
|
||||
|
||||
@@ -14,13 +14,14 @@ 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.5.1
|
||||
Standards-Version: 4.6.0.1
|
||||
Homepage: https://weechat.org/
|
||||
Vcs-Git: https://salsa.debian.org/kolter/weechat.git
|
||||
Vcs-Browser: https://salsa.debian.org/kolter/weechat
|
||||
@@ -153,6 +154,7 @@ Description: Fast, light and extensible chat client - plugins
|
||||
- FIFO pipe for remote control
|
||||
- Relay (IRC proxy and WeeChat protocol)
|
||||
- Trigger
|
||||
- Typing
|
||||
|
||||
Package: weechat-devel-python
|
||||
Architecture: any
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
Document: weechat-faq-es
|
||||
Title: WeeChat FAQ (Spanish)
|
||||
Author: Sébastien Helleu
|
||||
Abstract: This document answers frequently asked questions
|
||||
about the WeeChat IRC client (Spanish version).
|
||||
Section: Network/Communication
|
||||
|
||||
Format: HTML
|
||||
Index: /usr/share/doc/weechat-devel-doc/html/weechat_faq.es.html
|
||||
Files: /usr/share/doc/weechat-devel-doc/html/weechat_faq.es.html
|
||||
@@ -1,10 +0,0 @@
|
||||
Document: weechat-tester-de
|
||||
Title: WeeChat tester's guide (German)
|
||||
Author: Sébastien Helleu
|
||||
Abstract: This document describes how to test and report
|
||||
bugs against the WeeChat IRC Client (German version).
|
||||
Section: Network/Communication
|
||||
|
||||
Format: HTML
|
||||
Index: /usr/share/doc/weechat-devel-doc/html/weechat_tester.de.html
|
||||
Files: /usr/share/doc/weechat-devel-doc/html/weechat_tester.de.html
|
||||
@@ -1,10 +0,0 @@
|
||||
Document: weechat-tester-en
|
||||
Title: WeeChat tester's guide (English)
|
||||
Author: Sébastien Helleu
|
||||
Abstract: This document describes how to test and report
|
||||
bugs against the WeeChat IRC Client (English version).
|
||||
Section: Network/Communication
|
||||
|
||||
Format: HTML
|
||||
Index: /usr/share/doc/weechat-devel-doc/html/weechat_tester.en.html
|
||||
Files: /usr/share/doc/weechat-devel-doc/html/weechat_tester.en.html
|
||||
@@ -1,10 +0,0 @@
|
||||
Document: weechat-tester-fr
|
||||
Title: WeeChat tester's guide (French)
|
||||
Author: Sébastien Helleu
|
||||
Abstract: This document describes how to test and report
|
||||
bugs against the WeeChat IRC Client (French version).
|
||||
Section: Network/Communication
|
||||
|
||||
Format: HTML
|
||||
Index: /usr/share/doc/weechat-devel-doc/html/weechat_tester.fr.html
|
||||
Files: /usr/share/doc/weechat-devel-doc/html/weechat_tester.fr.html
|
||||
@@ -1,10 +0,0 @@
|
||||
Document: weechat-tester-it
|
||||
Title: WeeChat tester's guide (Italian)
|
||||
Author: Sébastien Helleu
|
||||
Abstract: This document describes how to test and report
|
||||
bugs against the WeeChat IRC Client (Italian version).
|
||||
Section: Network/Communication
|
||||
|
||||
Format: HTML
|
||||
Index: /usr/share/doc/weechat-devel-doc/html/weechat_tester.it.html
|
||||
Files: /usr/share/doc/weechat-devel-doc/html/weechat_tester.it.html
|
||||
@@ -1,10 +0,0 @@
|
||||
Document: weechat-tester-ja
|
||||
Title: WeeChat tester's guide (Japanese)
|
||||
Author: Sébastien Helleu
|
||||
Abstract: This document describes how to test and report
|
||||
bugs against the WeeChat IRC Client (Japanese version).
|
||||
Section: Network/Communication
|
||||
|
||||
Format: HTML
|
||||
Index: /usr/share/doc/weechat-devel-doc/html/weechat_tester.ja.html
|
||||
Files: /usr/share/doc/weechat-devel-doc/html/weechat_tester.ja.html
|
||||
@@ -1,10 +0,0 @@
|
||||
Document: weechat-tester-pl
|
||||
Title: WeeChat tester's guide (Polish)
|
||||
Author: Sébastien Helleu
|
||||
Abstract: This document describes how to test and report
|
||||
bugs against the WeeChat IRC Client (Polish version).
|
||||
Section: Network/Communication
|
||||
|
||||
Format: HTML
|
||||
Index: /usr/share/doc/weechat-devel-doc/html/weechat_tester.pl.html
|
||||
Files: /usr/share/doc/weechat-devel-doc/html/weechat_tester.pl.html
|
||||
@@ -1,3 +1,30 @@
|
||||
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
|
||||
- fix CVE-2021-40516: possible denial of service (crash) via a crafted
|
||||
WebSocket in relay plugin (Closes: #993803)
|
||||
* Add a patch to fix a FTBFS (related to recent changes on which command
|
||||
output) (Closes: #993333)
|
||||
* Bump Standards-Version to 4.6.0.1
|
||||
* Remove useless HomePage field in upstream/metadata
|
||||
|
||||
-- Emmanuel Bouthenot <kolter@debian.org> Tue, 07 Sep 2021 20:25:39 +0000
|
||||
|
||||
weechat (3.0.1-1) unstable; urgency=medium
|
||||
|
||||
* New upstream release
|
||||
|
||||
@@ -14,13 +14,14 @@ 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.5.1
|
||||
Standards-Version: 4.6.0.1
|
||||
Homepage: https://weechat.org/
|
||||
Vcs-Git: https://salsa.debian.org/kolter/weechat.git
|
||||
Vcs-Browser: https://salsa.debian.org/kolter/weechat
|
||||
@@ -148,6 +149,7 @@ Description: Fast, light and extensible chat client - plugins
|
||||
- FIFO pipe for remote control
|
||||
- Relay (IRC proxy and WeeChat protocol)
|
||||
- Trigger
|
||||
- Typing
|
||||
|
||||
Package: weechat-python
|
||||
Architecture: any
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
Document: weechat-faq-es
|
||||
Title: WeeChat FAQ (Spanish)
|
||||
Author: Sébastien Helleu
|
||||
Abstract: This document answers frequently asked questions
|
||||
about the WeeChat IRC client (Spanish version).
|
||||
Section: Network/Communication
|
||||
|
||||
Format: HTML
|
||||
Index: /usr/share/doc/weechat-doc/html/weechat_faq.es.html
|
||||
Files: /usr/share/doc/weechat-doc/html/weechat_faq.es.html
|
||||
@@ -1,10 +0,0 @@
|
||||
Document: weechat-tester-de
|
||||
Title: WeeChat tester's guide (German)
|
||||
Author: Sébastien Helleu
|
||||
Abstract: This document describes how to test and report
|
||||
bugs against the WeeChat IRC Client (German version).
|
||||
Section: Network/Communication
|
||||
|
||||
Format: HTML
|
||||
Index: /usr/share/doc/weechat-doc/html/weechat_tester.de.html
|
||||
Files: /usr/share/doc/weechat-doc/html/weechat_tester.de.html
|
||||
@@ -1,10 +0,0 @@
|
||||
Document: weechat-tester-en
|
||||
Title: WeeChat tester's guide (English)
|
||||
Author: Sébastien Helleu
|
||||
Abstract: This document describes how to test and report
|
||||
bugs against the WeeChat IRC Client (English version).
|
||||
Section: Network/Communication
|
||||
|
||||
Format: HTML
|
||||
Index: /usr/share/doc/weechat-doc/html/weechat_tester.en.html
|
||||
Files: /usr/share/doc/weechat-doc/html/weechat_tester.en.html
|
||||
@@ -1,10 +0,0 @@
|
||||
Document: weechat-tester-fr
|
||||
Title: WeeChat tester's guide (French)
|
||||
Author: Sébastien Helleu
|
||||
Abstract: This document describes how to test and report
|
||||
bugs against the WeeChat IRC Client (French version).
|
||||
Section: Network/Communication
|
||||
|
||||
Format: HTML
|
||||
Index: /usr/share/doc/weechat-doc/html/weechat_tester.fr.html
|
||||
Files: /usr/share/doc/weechat-doc/html/weechat_tester.fr.html
|
||||
@@ -1,10 +0,0 @@
|
||||
Document: weechat-tester-it
|
||||
Title: WeeChat tester's guide (Italian)
|
||||
Author: Sébastien Helleu
|
||||
Abstract: This document describes how to test and report
|
||||
bugs against the WeeChat IRC Client (Italian version).
|
||||
Section: Network/Communication
|
||||
|
||||
Format: HTML
|
||||
Index: /usr/share/doc/weechat-doc/html/weechat_tester.it.html
|
||||
Files: /usr/share/doc/weechat-doc/html/weechat_tester.it.html
|
||||
@@ -1,10 +0,0 @@
|
||||
Document: weechat-tester-ja
|
||||
Title: WeeChat tester's guide (Japanese)
|
||||
Author: Sébastien Helleu
|
||||
Abstract: This document describes how to test and report
|
||||
bugs against the WeeChat IRC Client (Japanese version).
|
||||
Section: Network/Communication
|
||||
|
||||
Format: HTML
|
||||
Index: /usr/share/doc/weechat-doc/html/weechat_tester.ja.html
|
||||
Files: /usr/share/doc/weechat-doc/html/weechat_tester.ja.html
|
||||
@@ -1,10 +0,0 @@
|
||||
Document: weechat-tester-pl
|
||||
Title: WeeChat tester's guide (Polish)
|
||||
Author: Sébastien Helleu
|
||||
Abstract: This document describes how to test and report
|
||||
bugs against the WeeChat IRC Client (Polish version).
|
||||
Section: Network/Communication
|
||||
|
||||
Format: HTML
|
||||
Index: /usr/share/doc/weechat-doc/html/weechat_tester.pl.html
|
||||
Files: /usr/share/doc/weechat-doc/html/weechat_tester.pl.html
|
||||
@@ -4,3 +4,4 @@ usr/lib/*/weechat/plugins/relay.so
|
||||
usr/lib/*/weechat/plugins/script.so
|
||||
usr/lib/*/weechat/plugins/spell.so
|
||||
usr/lib/*/weechat/plugins/trigger.so
|
||||
usr/lib/*/weechat/plugins/typing.so
|
||||
|
||||
+54
-2
@@ -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)
|
||||
@@ -31,6 +82,7 @@ if(ENABLE_MAN OR ENABLE_DOC)
|
||||
add_subdirectory(ja)
|
||||
add_subdirectory(pl)
|
||||
add_subdirectory(ru)
|
||||
add_subdirectory(sr)
|
||||
else()
|
||||
message(SEND_ERROR "Asciidoctor not found")
|
||||
endif()
|
||||
|
||||
+2
-2
@@ -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.
|
||||
@@ -18,7 +18,7 @@
|
||||
# along with WeeChat. If not, see <https://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
SUBDIRS = . cs de en es fr it ja pl ru
|
||||
SUBDIRS = . cs de en es fr it ja pl ru sr
|
||||
|
||||
EXTRA_DIST = docgen.py \
|
||||
docinfo.html \
|
||||
|
||||
@@ -1,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.
|
||||
#
|
||||
|
||||
@@ -85,6 +85,9 @@ $HOME/.config/weechat/tcl.conf::
|
||||
$HOME/.config/weechat/trigger.conf::
|
||||
konfigurační soubor pro _trigger_ plugin
|
||||
|
||||
$HOME/.config/weechat/typing.conf::
|
||||
konfigurační soubor pro _typing_ plugin
|
||||
|
||||
$HOME/.config/weechat/xfer.conf::
|
||||
konfigurační soubor pro _xfer_ plugin
|
||||
|
||||
@@ -96,7 +99,7 @@ $HOME/.local/share/weechat/weechat.log::
|
||||
WeeChat je napsán Sébastienem Helleu a přispěvovateli (kompletní seznam je v
|
||||
souboru AUTHORS.adoc).
|
||||
|
||||
Copyright (C) 2003-2021 {author}
|
||||
Copyright (C) 2003-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
|
||||
|
||||
@@ -79,6 +79,8 @@ _last_nick_speaking_time_ (pointer, hdata: "irc_channel_speaking") +
|
||||
_modelists_ (pointer, hdata: "irc_modelist") +
|
||||
_last_modelist_ (pointer, hdata: "irc_modelist") +
|
||||
_join_smart_filtered_ (hashtable) +
|
||||
_typing_state_ (integer) +
|
||||
_typing_status_sent_ (time) +
|
||||
_buffer_ (pointer, hdata: "buffer") +
|
||||
_buffer_as_string_ (string) +
|
||||
_prev_channel_ (pointer, hdata: "irc_channel") +
|
||||
@@ -237,6 +239,8 @@ _sasl_scram_client_first_ (string) +
|
||||
_sasl_scram_salted_pwd_ (other) +
|
||||
_sasl_scram_salted_pwd_size_ (integer) +
|
||||
_sasl_scram_auth_message_ (string) +
|
||||
_sasl_temp_username_ (string) +
|
||||
_sasl_temp_password_ (string) +
|
||||
_is_connected_ (integer) +
|
||||
_ssl_connected_ (integer) +
|
||||
_disconnected_ (integer) +
|
||||
@@ -267,6 +271,10 @@ _chantypes_ (string) +
|
||||
_chanmodes_ (string) +
|
||||
_monitor_ (integer) +
|
||||
_monitor_time_ (time) +
|
||||
_clienttagdeny_ (string) +
|
||||
_clienttagdeny_count_ (integer) +
|
||||
_clienttagdeny_array_ (string, array_size: "clienttagdeny_count") +
|
||||
_typing_allowed_ (integer) +
|
||||
_reconnect_delay_ (integer) +
|
||||
_reconnect_start_ (time) +
|
||||
_command_time_ (time) +
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|===
|
||||
| Erweiterung | Name | Beschreibung | Hashtable (Eingabe) | Hashtable (Ausgabe)
|
||||
|
||||
| irc | irc_message_parse | Parse eine IRC Nachricht | "message": IRC Nachricht, "server": Servername (optional) | "tags": Tags, "message_without_tags": Nachrichten ohne Tags, "nick": Nick, "user": Benutzername, "host": Host, "command": Befehl, "channel": Kanal, "arguments": Argumente (schließt Kanal ein), "text": Text (zum Beispiel eine Nachricht von einem User), "pos_command": Index der "command" Nachricht ("-1" falls "command" nicht gefunden wird), "pos_arguments": Index der "arguments" Nachricht ("-1" falls "arguments" nicht gefunden wird), "pos_channel": Index der "channel" Nachricht ("-1" falls "channel" nicht gefunden wird),"pos_text": Index für "text" Nachricht ("-1" falls "text" nicht gefunden wird)
|
||||
| irc | irc_message_parse | Parse eine IRC Nachricht | "message": IRC Nachricht, "server": Servername (optional) | "tags": Tags, "tag_xxx": Wert des Tags "xxx" ohne Escapezeichen (ein Schlüssel pro Tag), "message_without_tags": Nachrichten ohne Tags, "nick": Nick, "user": Benutzer, "host": Host, "command": Befehl, "channel": Kanal, "arguments": Argumente (schließt Kanal ein), "text": Text (zum Beispiel eine Nachricht von einem User), "param1" ... "paramN": geparste Befehlsparameter, "num_params": Anzahl geparste Befehlsparameter, "pos_command": Index der "command" Nachricht ("-1" falls "command" nicht gefunden wird), "pos_arguments": Index der "arguments" Nachricht ("-1" falls "arguments" nicht gefunden wird), "pos_channel": Index der "channel" Nachricht ("-1" falls "channel" nicht gefunden wird),"pos_text": Index für "text" Nachricht ("-1" falls "text" nicht gefunden wird)
|
||||
|
||||
| irc | irc_message_split | trennt eine IRC Nachricht (standardmäßig in 512 Bytes große Nachrichten) | "message": IRC Nachricht, "server": Servername (optional) | "msg1" ... "msgN": Nachrichten die versendet werden sollen (ohne abschließendes "\r\n"), "args1" ... "argsN": Argumente für Nachrichten, "count": Anzahl der Nachrichten
|
||||
|
||||
|
||||
@@ -4,18 +4,26 @@
|
||||
//
|
||||
|
||||
// tag::plugins_priority[]
|
||||
. charset (15000)
|
||||
. logger (14000)
|
||||
. exec (13000)
|
||||
. trigger (12000)
|
||||
. spell (11000)
|
||||
. alias (10000)
|
||||
. buflist (9000)
|
||||
. fifo (8000)
|
||||
. charset (16000)
|
||||
. logger (15000)
|
||||
. exec (14000)
|
||||
. trigger (13000)
|
||||
. spell (12000)
|
||||
. alias (11000)
|
||||
. buflist (10000)
|
||||
. fifo (9000)
|
||||
. typing (8000)
|
||||
. xfer (7000)
|
||||
. irc (6000)
|
||||
. relay (5000)
|
||||
. guile, javascript, lua, perl, php, python, ruby, tcl (4000)
|
||||
. guile (4007)
|
||||
. javascript (4006)
|
||||
. lua (4005)
|
||||
. perl (4004)
|
||||
. php (4003)
|
||||
. python (4002)
|
||||
. ruby (4001)
|
||||
. tcl (4000)
|
||||
. script (3000)
|
||||
. fset (2000)
|
||||
// end::plugins_priority[]
|
||||
|
||||
@@ -17,10 +17,11 @@ target: Servername
|
||||
* `+allchan+`: führt einen Befehl aus der an alle Kanäle gesendet wird, die mit einem Server verbunden sind
|
||||
|
||||
----
|
||||
/allchan [-current] [-exclude=<channel>[,<channel>...]] <command>
|
||||
[-current] -include=<channel>[,<channel>...] <command>
|
||||
/allchan [-current] [-parted] [-exclude=<channel>[,<channel>...]] <command>
|
||||
[-current] [-parted] -include=<channel>[,<channel>...] <command>
|
||||
|
||||
-current: führt einen Befehl aus der an alle Kanäle des aktuellen Servers gesendet wird
|
||||
-parted: wird nur bei vom Server getrennten Kanälen ausgeführt
|
||||
-exclude: dient zum Ausschluss ausgewählter Kanäle (Platzhalter "*" kann verwendet werden)
|
||||
-include: findet Anwendung für ausgewählte Kanäle (Platzhalter "*" kann verwendet werden)\n
|
||||
command: Befehl der ausgeführt werden soll
|
||||
@@ -41,6 +42,8 @@ Beispiele:
|
||||
/allchan -exclude=#weechat,#linux* Hallo Welt
|
||||
schickt den Text 'Hallo' an alle Kanäle die mit #linux beginnen:
|
||||
/allchan -include=#linux* Hallo
|
||||
schließt alle, vom Server getrennte, Kanäle.:
|
||||
/allchan -parted /close
|
||||
----
|
||||
|
||||
[[command_irc_allpv]]
|
||||
@@ -100,6 +103,55 @@ Beispiele:
|
||||
/allserv /whois $nick
|
||||
----
|
||||
|
||||
[[command_irc_auth]]
|
||||
* `+auth+`: authentifizieren mit SASL
|
||||
|
||||
----
|
||||
/auth [<username> <password>]
|
||||
|
||||
username: SASL Username (Inhalt ist evaluiert, siehe /help eval; Serveroptionen werden mit ${irc_server.xxx} evaluiert und ${server} wird durch den Servernamen ersetzt)
|
||||
password: SASL-Passwort oder Pfad zur Datei mit privatem Schlüssel (Inhalt ist evaluiert, siehe /help eval; Serveroptionen werden mit ${irc_server.xxx} evaluiert und ${server} wird durch den Servernamen ersetzt)
|
||||
|
||||
Wenn Benutzername und Kennwort nicht angegeben wurden, werden die Werte aus den Serveroptionen "sasl_username" und "sasl_password" (oder "sasl_key") verwendet.
|
||||
|
||||
Beispiele:
|
||||
authentifizieren Sie sich mit dem im Server definierten Benutzernamen/Passwort:
|
||||
/auth
|
||||
authentifizieren Sie sich mit einem anderen Benutzer:
|
||||
/auth user2 password2
|
||||
authentifizieren als anderer Benutzer mit Mechanismus ecdsa-nist256p-challenge:
|
||||
/auth user2 ${weechat_config_dir}/ecdsa2.pem
|
||||
----
|
||||
|
||||
[[command_irc_autojoin]]
|
||||
* `+autojoin+`: Konfigurieren der Serveroption "autojoin"
|
||||
|
||||
----
|
||||
/autojoin add [<channel1> [<channel2>...]]
|
||||
addraw <channel1>[,<channel2>...] [<key1>[,<key2>...]]
|
||||
del [<channel1> [<channel2>...]]
|
||||
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
|
||||
|
||||
@@ -129,9 +181,9 @@ Ohne Angabe von Argumenten wird die Ban-Liste für den aktuellen Kanal angezeigt
|
||||
|
||||
Ohne Angaben von Argumenten werden "ls" und "list" gesendet.
|
||||
|
||||
Fähigkeiten die von WeeChat unterstützt werden: account-notify, away-notify, cap-notify, chghost, extended-join, invite-notify, multi-prefix, server-time, userhost-in-names.
|
||||
Fähigkeiten die von WeeChat unterstützt werden: account-notify, away-notify, cap-notify, chghost, extended-join, invite-notify, message-tags, multi-prefix, server-time, setname, userhost-in-names..
|
||||
|
||||
Fähigkeiten die standardmäßig genutzt werden sollen, können mit der Option irc.server_default.capabilities gesetzt werden (oder individuell für jeden Server mit der Option irc.server.xxx.capabilities).
|
||||
Fähigkeiten die standardmäßig genutzt werden sollen, können mit der Option irc.server_default.capabilities gesetzt werden (oder individuell für jeden Server mit der Option irc.server.xxx.capabilities).
|
||||
|
||||
Beispiele:
|
||||
/cap
|
||||
@@ -808,6 +860,15 @@ mask: nur zutreffende Services auflisten
|
||||
type: nur Services von diesem Typ auflisten
|
||||
----
|
||||
|
||||
[[command_irc_setname]]
|
||||
* `+setname+`: setze Realnamen
|
||||
|
||||
----
|
||||
/setname <Realname>
|
||||
|
||||
realname: neuer Realname
|
||||
----
|
||||
|
||||
[[command_irc_squery]]
|
||||
* `+squery+`: Nachricht an einen Service senden
|
||||
|
||||
@@ -1271,7 +1332,7 @@ Beispiele:
|
||||
/debug list
|
||||
set <plugin> <level>
|
||||
dump [<plugin>]
|
||||
buffer|color|infolists|memory|tags|term|windows
|
||||
buffer|color|infolists|libs|certs|memory|tags|term|windows
|
||||
mouse|cursor [verbose]
|
||||
hdata [free]
|
||||
time <command>
|
||||
@@ -1289,10 +1350,11 @@ Beispiele:
|
||||
hooks: zeigt die aktiven Hooks an
|
||||
infolists: zeigt Information über die Infolists an
|
||||
libs: zeigt an welche externen Bibliotheken verwendet werden
|
||||
certs: gibt die Anzahl geladener vertrauenswürdiger Zertifizierungsstellen aus
|
||||
memory: gibt Informationen über den genutzten Speicher aus
|
||||
mouse: schaltet den debug-Modus für den Maus-Modus ein/aus
|
||||
tags: zeigt für jede einzelne Zeile die dazugehörigen Schlagwörter an
|
||||
term: gibt Informationen über das Terminal und verfügbare Farben aus
|
||||
term: zeigt Informationen über das Terminal an
|
||||
windows: zeigt die Fensterstruktur an
|
||||
time: misst die Zeit um einen Befehl auszuführen oder um einen Text in den aktuellen Buffer zu senden
|
||||
----
|
||||
@@ -1341,28 +1403,33 @@ Um einen Vergleich zwischen zwei Zeichenketten zu erzwingen, müssen die Ausdrü
|
||||
"50" > "100" ==> 1
|
||||
|
||||
Einige Variablen werden im Ausdruck mittels der Formatierung ${variable} ersetzt. Mögliche Variablen sind, nach Reihenfolge ihrer Priorität:
|
||||
1. die Zeichenfolge selbst ohne Auswertung (Format: "raw:xxx")\n
|
||||
2. eine evaluierte Teilzeichenkette (Format: "eval:xxx")
|
||||
3. eine evaluierte Bedingung (Format: "eval_cond:xxx")
|
||||
4. eine Zeichenkette mit Escapesequenzen (Format: "esc:xxx" oder "\xxx")
|
||||
5. Zeichen, die in einer Zeichenkette nicht dargestellt werden sollen (Format: "hide:Zeichen,Zeichenkette")
|
||||
6. eine Zeichenkette mit einer maximalen Anzahl an Zeichen (Format: "cut:max,suffix,string" oder "cut:+max,suffix,string")
|
||||
1. die Zeichenfolge selbst ohne Auswertung (Format: "raw:xxx")
|
||||
2. eine benutzerdefinierte Variable (Format: "name")
|
||||
3. eine evaluierte Teilzeichenkette (Format: "eval:xxx")
|
||||
4. eine evaluierte Bedingung (Format: "eval_cond:xxx")
|
||||
5. eine Zeichenkette mit Escapesequenzen (Format: "esc:xxx" oder "\xxx")
|
||||
6. Zeichen, die in einer Zeichenkette nicht dargestellt werden sollen (Format: "hide:Zeichen,Zeichenkette")
|
||||
7. eine Zeichenkette mit einer maximalen Anzahl an Zeichen (Format: "cut:max,suffix,string" oder "cut:+max,suffix,string")
|
||||
oder maximale Anzahl an Zeichen die auf dem Bildschirm angezeigt werden sollen (Format: "cutscr:Max,Suffix,Zeichenkette oder "cutscr:+Max,Suffix,Zeichenkette")
|
||||
7. eine Zeichenkette umkehren (Format: "rev:xxx" oder "revscr:xxx")
|
||||
8. eine Zeichenkette wiederholen (Format: "repeat:Anzahl,Zeichenkette")
|
||||
9. Länge einer Zeichenkette (Format: "length:xxx" oder "lengthscr:xxx")
|
||||
10. eine Farbe (Format: "color:xxx", siehe "Anleitung für API Erweiterung", Funktion "color")
|
||||
11. zum modifizieren (Format: "modifier:name,data,string")
|
||||
12. eine Info (Format: "Info:Name,Argumente", Argumente sind optional)
|
||||
13. eine Basis 16/32/64 kodierte / dekodierte Zeichenfolge (Format: "base_encode:base,xxx" oder "base_decode:base,xxx")
|
||||
14. aktuelles Datum/Uhrzeit (Format: "date" oder "date:format")
|
||||
15. eine Umgebungsvariable (Format: "env:XXX")
|
||||
16. ein Dreifachoperand (Format: "if:Bedingung?Wert_falls_wahr:Wert_falls_unwahr")
|
||||
17. Ergebnis eines Ausdrucks mit Klammern und Operatoren + - * / // % ** (Format: "calc:xxx")
|
||||
18. eine übersetzte Zeichenkette (Format: "translate:xxx")
|
||||
19. eine Option (Format: "file.section.option")
|
||||
20. eine lokale Variable eines Buffers
|
||||
21. ein(e) hdata - Name/Variable (der Wert wird automatisch in eine Zeichenkette konvertiert), standardmäßig wird für "window" und "buffer" das aktuelle Fenster/Buffer verwendet.
|
||||
8. eine Zeichenkette umkehren (Format: "rev:xxx" oder "revscr:xxx")
|
||||
9. eine Zeichenkette wiederholen (Format: "repeat:Anzahl,Zeichenkette")
|
||||
10. Länge einer Zeichenkette (Format: "length:xxx" oder "lengthscr:xxx")
|
||||
11. Aufteilen einer Zeichenkette (Format: "split:Anzahl,Trennzeichen,Flags,xxx")
|
||||
12. Aufteilen von Shell-Argumenten (Format: "split_shell:Anzahl,xxx")
|
||||
13. eine Farbe (Format: "color:xxx", siehe "Anleitung für API Erweiterung", Funktion "color")
|
||||
14. zum modifizieren (Format: "modifier:name,data,string")
|
||||
15. eine Info (Format: "Info:Name,Argumente", Argumente sind optional)
|
||||
16. eine Basis 16/32/64 kodierte / dekodierte Zeichenfolge (Format: "base_encode:base,xxx" oder "base_decode:base,xxx")
|
||||
17. aktuelles Datum/Uhrzeit (Format: "date" oder "date:format")
|
||||
18. eine Umgebungsvariable (Format: "env:XXX")
|
||||
19. ein Dreifachoperand (Format: "if:Bedingung?Wert_falls_wahr:Wert_falls_unwahr")
|
||||
20. Ergebnis eines Ausdrucks mit Klammern und Operatoren + - * / // % ** (Format: "calc:xxx")
|
||||
21. eine zufällige ganze Zahl (Format: "random:min,max")
|
||||
22. eine übersetzte Zeichenkette (Format: "translate:xxx")
|
||||
23. eine Benutzervariable definieren (Format: "define:Name,Wert")
|
||||
24. eine Option (Format: "file.section.option")
|
||||
25. eine lokale Variable eines Buffers
|
||||
26. ein(e) hdata - Name/Variable (der Wert wird automatisch in eine Zeichenkette konvertiert), standardmäßig wird für "window" und "buffer" das aktuelle Fenster/Buffer verwendet.
|
||||
Das Format für hdata kann wie folgt aufgebaut sein:
|
||||
hdata.var1.var2...: startet mit hdata (der Pointer muss bekannt sein) und fragt eine Variable nach der anderen ab (weitere hdata können folgen)
|
||||
hdata[list].var1.var2...: startet hdata mittels einer Liste, zum Beispiel:
|
||||
@@ -1393,10 +1460,20 @@ Beispiele (einfache Zeichenketten):
|
||||
/eval -n ${rev:Hello} ==> olleH
|
||||
/eval -n ${repeat:5,-} ==> -----
|
||||
/eval -n ${length:test} ==> 4
|
||||
/eval -n ${split:1,,,abc,def,ghi} ==> abc
|
||||
/eval -n ${split:-1,,,abc,def,ghi} ==> ghi
|
||||
/eval -n ${split:count,,,abc,def,ghi} ==> 3
|
||||
/eval -n ${split:random,,,abc,def,ghi} ==> def
|
||||
/eval -n ${split_shell:1,"arg 1" arg2} ==> arg 1
|
||||
/eval -n ${split_shell:-1,"arg 1" arg2} ==> arg2
|
||||
/eval -n ${split_shell:count,"arg 1" arg2} ==> 2
|
||||
/eval -n ${split_shell:random,"arg 1" arg2} ==> arg2
|
||||
/eval -n ${calc:(5+2)*3} ==> 21
|
||||
/eval -n ${random:0,10} ==> 3
|
||||
/eval -n ${base_encode:64,test} ==> dGVzdA==
|
||||
/eval -n ${base_decode:64,dGVzdA==} ==> test
|
||||
/eval -n ${translate:Plugin} ==> Erweiterung
|
||||
/eval -n ${define:len,${calc:5+3}}${len}x${len} ==> 8x8
|
||||
|
||||
Beispiele (Bedingungen):
|
||||
/eval -n -c ${window.buffer.number} > 2 ==> 0
|
||||
@@ -1549,6 +1626,9 @@ Auflistung der möglichen Aktionen:
|
||||
jump_previously_visited_buffer: springt zum letzten besuchten Buffer
|
||||
jump_next_visited_buffer: springt zum nächsten besuchten Buffer
|
||||
hotlist_clear: löscht Hotlist (Aktivitätsanzeige für die Buffer), (optionales Argument: "lowest" löscht den niedrigsten Eintrag der Hotlist, "highest" löscht den höchsten Eintrag der Hotlist, oder eine integer Maske: eine Kombination aus 1=join/part, 2=Nachricht,4=privat,8=highlight)
|
||||
hotlist_remove_buffer: entferne aktuellen Buffer von der Hotlist
|
||||
hotlist_restore_buffer: Wiederherstellen der neuesten Hotlist, die im aktuellen Buffer entfernt wurde
|
||||
hotlist_restore_all: Wiederherstellen der neuesten Hotlist, die in allen Buffern entfernt wurde
|
||||
grab_key: fängt eine Taste (optionales Argument: Verzögerung um eine Taste einzufangen. Standard sind 500 Millisekunden)
|
||||
grab_key_command: zeigt den Tastencode (inklusive des eingebundenen Befehls) einer Tastenkombination an und fügt ihn in die Befehlszeile ein (optionales Argument: Verzögerung um eine Taste einzufangen. Standard sind 500 Millisekunden)
|
||||
grab_mouse: fängt den Code einer Maus Aktivität
|
||||
@@ -1644,6 +1724,8 @@ windows: erstellt bzw. verwendet nur Fenster (Buffer welche im jeweiligen Fenste
|
||||
Wird der Befehl ohne Argumente aufgerufen, werden die erstellten Layout dargestellt.
|
||||
|
||||
Das aktuelle Layout kann beim Ausführen des /quit Befehls mit der Option "weechat.look.save_layout_on_exit" gesichert werden.
|
||||
|
||||
Hinweis: Das Layout merkt sich nur Fenstereinteilungen und die Positionsnummern von Buffern. Layout öffnet keine Buffer. Das bedeutet zum Beispiel, dass Sie IRC-Kanäle immer noch automatisch betreten müssen, um die Buffer zu öffnen. Das gespeicherte Layout wird erst verwendet, wenn die Buffer geöffnet sind.
|
||||
----
|
||||
|
||||
[[command_weechat_mouse]]
|
||||
@@ -1693,21 +1775,26 @@ Beispiele:
|
||||
* `+plugin+`: Erweiterungen verwalten (auflisten/installieren/beenden)
|
||||
|
||||
----
|
||||
/plugin list|listfull [<name>]
|
||||
/plugin list [-o|-ol|-i|-il|<name>]
|
||||
listfull [<name>]
|
||||
load <filename> [<arguments>]
|
||||
autoload [<arguments>]
|
||||
reload [<name>|* [<arguments>]]
|
||||
unload [<name>]
|
||||
|
||||
list: installierte Erweiterungen werden aufgelistet
|
||||
listfull: detaillierte Auflistung aller installierten Erweiterungen
|
||||
load: installiert eine Erweiterung
|
||||
-o: sende Liste der geladenen Erweiterungen an den Buffer (Ausgabe in Englisch)
|
||||
-ol: sende Liste der geladenen Erweiterungen an den Buffer (Übersetzte Ausgabe)
|
||||
-i: Liste der geladenen Erweiterungen in die Befehlszeile kopieren (zum Senden an den Buffer) (Ausgabe in Englisch)
|
||||
-il: Liste der geladenen Erweiterungen in die Befehlszeile kopieren (zum Senden an den Buffer) (Übersetzte Ausgabe)
|
||||
name: Name einer Erweiterung
|
||||
listfull: geladene Erweiterungen auflisten (ausführlich)
|
||||
load: Laden einer Erweiterung
|
||||
filename: Erweiterung (Dateiname) welche installiert werden soll
|
||||
arguments: Argumente die der Erweiterung beim Installieren übergeben werden sollen
|
||||
autoload: installiert automatisch alle Erweiterungen aus dem System- oder Benutzerverzeichnis
|
||||
reload: startet eine Erweiterung erneut (falls kein Name angegeben wird, werden alle Erweiterungen beendet und neu gestartet)
|
||||
unload: beendet eine oder alle Erweiterungen (wird kein Name angegeben dann werden alle Erweiterung beendet)
|
||||
filename: Erweiterung (Datei) welche installiert werden soll
|
||||
name: Name einer Erweiterung
|
||||
arguments: Argumente die der Erweiterung beim installieren übergeben werden sollen
|
||||
|
||||
Ohne Angabe eines Arguments werden alle installierten Erweiterungen angezeigt.
|
||||
----
|
||||
@@ -1935,6 +2022,32 @@ Beispiele:
|
||||
/set env ABC ""
|
||||
----
|
||||
|
||||
[[command_weechat_toggle]]
|
||||
* `+toggle+`: den Wert einer Konfigurationsoption umschalten
|
||||
|
||||
----
|
||||
/toggle <option> [<value> [<value>...]]
|
||||
|
||||
option: Name einer Option
|
||||
value: mögliche Werte für die Option (Werte werden wie bei Shell-Befehlsargumente aufgeteilt: Anführungszeichen können verwendet werden, um Leerzeichen am Anfang/Ende von Werten zu nutzen)
|
||||
|
||||
Verhalten:
|
||||
- nur eine Option vom Typ Boolean oder String kann ohne Wert umgeschaltet werden:
|
||||
- boolean: zwischen Ein/Aus Status umschalten, entsprechend dem aktuellen Wert
|
||||
- string: Umschalten zwischen leerem String und Standardwert (funktioniert nur, wenn für die Option ein leerer String erlaubt ist)
|
||||
- mit einem vorgegeben einzelnen Wert, zwischen diesem Wert und dem Standardwert der Option umschalten
|
||||
- sind mehrere Werte angegeben, schalten Sie zwischen diesen Werten um: Der verwendete Wert ist der, der dem aktuellen Wert der Option folgt; wenn der aktuelle Wert der Option nicht in der Liste enthalten ist, wird der erste Wert aus der Liste verwendet
|
||||
- der Sonderwert "null" kann genutzt werden, jedoch nur als erster Wert in der Liste und ohne Anführungszeichen.
|
||||
|
||||
Beispiele:
|
||||
die Uhrzeit im Chat-Bereich umschalten (die Ausgabe des neuen Wertes wird unterdrückt):
|
||||
/mute /toggle weechat.look.buffer_time_format
|
||||
Zeitformat im Chat-Bereich ändern (mit Sekunden, ohne Sekunden, deaktiviert):
|
||||
/toggle weechat.look.buffer_time_format "%H:%M:%S" "%H:%M" ""
|
||||
den automatischen Beitritt des #weechat-Kanals auf dem libera-Server umschalten:
|
||||
/toggle irc.server.libera.autojoin null #weechat
|
||||
----
|
||||
|
||||
[[command_weechat_unset]]
|
||||
* `+unset+`: Konfigurationsparameter freigeben/zurücksetzen
|
||||
|
||||
@@ -2531,7 +2644,7 @@ disable: die Protokollierung wird für den aktuellen Buffer deaktiviert (der Lev
|
||||
Die Einstellungen "logger.level.*" und "logger.mask.*" können genutzt werden um den Level der Protokollierung festzulegen und um eine Maske für einen oder mehrere Buffer zu definieren.
|
||||
|
||||
Level der Protokollierung, die die IRC Erweiterung unterstützt:
|
||||
1: Nachrichten von Usern (private und öffentliche Nachrichten) , notice (Server und Kanal)
|
||||
1: Nachrichten von Usern (private und öffentliche Nachrichten), notice (Server und Kanal)
|
||||
2: Wechsel von Nicks (/nick)
|
||||
3: Nachrichten vom Server
|
||||
4: join/part/quit Nachrichten
|
||||
|
||||
@@ -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
|
||||
@@ -1845,6 +1839,50 @@
|
||||
** Standardwert: `+"${weechat_runtime_dir}/weechat_fifo_${info:pid}"+`
|
||||
// end::fifo_options[]
|
||||
|
||||
// tag::typing_options[]
|
||||
* [[option_typing.look.delay_purge_paused]] *typing.look.delay_purge_paused*
|
||||
** Beschreibung: pass:none[Anzahl der Sekunden, nachdem der Pausenstatus gesetzt wurde: wenn erreicht, wird der Tippstatus entfernt]
|
||||
** Typ: integer
|
||||
** Werte: 1 .. 2147483647
|
||||
** Standardwert: `+30+`
|
||||
|
||||
* [[option_typing.look.delay_purge_typing]] *typing.look.delay_purge_typing*
|
||||
** Beschreibung: pass:none[Anzahl der Sekunden nach Setzen des Tippstatuses: wenn erreicht, wird der Tipptatus entfernt]
|
||||
** Typ: integer
|
||||
** Werte: 1 .. 2147483647
|
||||
** Standardwert: `+6+`
|
||||
|
||||
* [[option_typing.look.delay_set_paused]] *typing.look.delay_set_paused*
|
||||
** Beschreibung: pass:none[Anzahl der Sekunden nach Eingabe des letzten Zeichens: wenn erreicht, wird der Schreibstatus "pausiert" und es werden keine Schreibsignale mehr gesendet]
|
||||
** Typ: integer
|
||||
** Werte: 1 .. 2147483647
|
||||
** Standardwert: `+10+`
|
||||
|
||||
* [[option_typing.look.enabled_nicks]] *typing.look.enabled_nicks*
|
||||
** Beschreibung: pass:none[Tippfunktion für andere Nicks aktiviert (Anzeige von Tippinfos für Nicks, die im aktuellen Buffer schreiben)]
|
||||
** Typ: boolesch
|
||||
** Werte: on, off
|
||||
** Standardwert: `+off+`
|
||||
|
||||
* [[option_typing.look.enabled_self]] *typing.look.enabled_self*
|
||||
** Beschreibung: pass:none[Tippfunktion für eigene Nachrichten aktiviert (Schreibinformationen an andere Benutzer senden)]
|
||||
** Typ: boolesch
|
||||
** Werte: on, off
|
||||
** Standardwert: `+off+`
|
||||
|
||||
* [[option_typing.look.input_min_chars]] *typing.look.input_min_chars*
|
||||
** Beschreibung: pass:none[Mindestanzahl von Zeichen in der Nachricht, um das Senden von Tippsignalen auszulösen]
|
||||
** Typ: integer
|
||||
** Werte: 1 .. 2147483647
|
||||
** Standardwert: `+4+`
|
||||
|
||||
* [[option_typing.look.item_max_length]] *typing.look.item_max_length*
|
||||
** Beschreibung: pass:none[maximale Anzahl von Zeichen, die im Bar-Item "typing" angezeigt werden (0 = Inhalt nicht abschneiden)]
|
||||
** Typ: integer
|
||||
** Werte: 0 .. 2147483647
|
||||
** Standardwert: `+0+`
|
||||
// end::typing_options[]
|
||||
|
||||
// tag::xfer_options[]
|
||||
* [[option_xfer.color.status_aborted]] *xfer.color.status_aborted*
|
||||
** Beschreibung: pass:none[Textfarbe für Status: "abgebrochen"]
|
||||
@@ -2214,6 +2252,12 @@
|
||||
** Werte: beliebige Zeichenkette
|
||||
** Standardwert: `+"%a, %d %b %Y %T %z"+`
|
||||
|
||||
* [[option_irc.look.display_account_message]] *irc.look.display_account_message*
|
||||
** Beschreibung: pass:none[ACCOUNT Nachrichten anzeigen, die empfangen wurden, wenn die Funktion account-notify aktiviert ist]
|
||||
** Typ: boolesch
|
||||
** Werte: on, off
|
||||
** Standardwert: `+on+`
|
||||
|
||||
* [[option_irc.look.display_away]] *irc.look.display_away*
|
||||
** Beschreibung: pass:none[zeigt eine Nachricht an, sobald der Abwesenheitsstatus ein- bzw. ausgeschaltet wird (off: zeigt/sendet keine Nachricht, local: eine Nachricht wird lokal angezeigt, channel: sendet eine Nachricht an die Kanäle)]
|
||||
** Typ: integer
|
||||
@@ -2238,6 +2282,12 @@
|
||||
** Werte: on, off
|
||||
** Standardwert: `+on+`
|
||||
|
||||
* [[option_irc.look.display_extended_join]] *irc.look.display_extended_join*
|
||||
** Beschreibung: pass:none[zusätzliche Informationen in den JOIN-Nachrichten anzeigen: Kontoname und richtiger Name (Funktion extended-join muss aktiviert sein)]
|
||||
** Typ: boolesch
|
||||
** Werte: on, off
|
||||
** Standardwert: `+on+`
|
||||
|
||||
* [[option_irc.look.display_host_join]] *irc.look.display_host_join*
|
||||
** Beschreibung: pass:none[zeigt den Host innerhalb einer join Nachricht an]
|
||||
** Typ: boolesch
|
||||
@@ -2508,6 +2558,18 @@
|
||||
** Werte: on, off
|
||||
** Standardwert: `+off+`
|
||||
|
||||
* [[option_irc.look.typing_status_nicks]] *irc.look.typing_status_nicks*
|
||||
** Beschreibung: pass:none[Nicks in der Bar-Item "typing" anzeigen, die in dem Kanal tippen (Option typing.look.enabled_nicks muss aktiviert sein und die Fähigkeit "message-tags" muss auf dem Server aktiviert sein)]
|
||||
** Typ: boolesch
|
||||
** Werte: on, off
|
||||
** Standardwert: `+off+`
|
||||
|
||||
* [[option_irc.look.typing_status_self]] *irc.look.typing_status_self*
|
||||
** Beschreibung: pass:none[sendet den eigenen Tippstatus an Kanäle, damit andere Benutzer sehen, wenn Sie eine Nachricht schreiben (Option typing.look.enabled_self muss aktiviert sein und die Fähigkeit "message-tags" muss auf dem Server aktiviert sein)]
|
||||
** Typ: boolesch
|
||||
** Werte: on, off
|
||||
** Standardwert: `+off+`
|
||||
|
||||
* [[option_irc.network.autoreconnect_delay_growing]] *irc.network.autoreconnect_delay_growing*
|
||||
** Beschreibung: pass:none[Multiplikator für die Verzögerung bei der automatischen Wiederverbindung zum Server (1 = immer die selbe Verzögerung nutzen, 2 = Verzögerung*2 für jeden weiteren Versuch, usw.)]
|
||||
** Typ: integer
|
||||
@@ -2628,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
|
||||
@@ -2665,10 +2733,10 @@
|
||||
** Standardwert: `+25+`
|
||||
|
||||
* [[option_irc.server_default.capabilities]] *irc.server_default.capabilities*
|
||||
** Beschreibung: pass:none[durch Kommata getrennte Liste von erweiterten Client-Fähigkeiten ("client capabilities"), welche vom Server angeboten und genutzt werden sollen (siehe /help cap um eine Liste von Fähigkeiten zu erhalten die von WeeChat unterstützt werden) (Beispiel: "away-notify,multi-prefix")]
|
||||
** Beschreibung: pass:none[durch Kommata getrennte Liste von erweiterten Client-Fähigkeiten ("client capabilities"), welche vom Server angeboten und genutzt werden sollen (siehe /help cap um eine Liste von Fähigkeiten zu erhalten die von WeeChat unterstützt werden); "*" aktiviert standardmäßig alle Funktionen (die sowohl vom Server als auch von WeeChat unterstützt werden); Platzhalter "*" ist erlaubt; eine Fähigkeit, die mit "!" beginnt, wird ignoriert (Beispiel: "*,!account-*,!extended-join")]
|
||||
** Typ: Zeichenkette
|
||||
** Werte: beliebige Zeichenkette
|
||||
** Standardwert: `+""+`
|
||||
** Standardwert: `+"*"+`
|
||||
|
||||
* [[option_irc.server_default.charset_message]] *irc.server_default.charset_message*
|
||||
** Beschreibung: pass:none[Teil der IRC Nachricht (empfangen oder gesendet) die zum Zielzeichensatz dekodiert/kodiert werden soll; message = die komplette IRC Nachricht (Standard), channel = beginnend mit dem Kanalnamen (sofern dieser gefunden wird, ansonsten Fallback auf text), text = beginnend mit dem Nachrichtentext (dieser Wert sollte ausprobiert werden, falls es Probleme bei der Kodierung des Kanalnamens geben sollte)]
|
||||
@@ -2770,7 +2838,7 @@
|
||||
** Beschreibung: pass:none[auszuführende Aktion falls die SASL Authentifizierung fehlschlägt: "continue" ignoriert das Problem welches bei der Authentifizierung aufgetreten ist, "reconnect" versucht erneut eine Verbindung herzustellen, "disconnect" trennt die Verbindung zum Server (siehe Option irc.network.sasl_fail_unavailable)]
|
||||
** Typ: integer
|
||||
** Werte: continue, reconnect, disconnect
|
||||
** Standardwert: `+continue+`
|
||||
** Standardwert: `+reconnect+`
|
||||
|
||||
* [[option_irc.server_default.sasl_key]] *irc.server_default.sasl_key*
|
||||
** Beschreibung: pass:none[Datei mit privatem ECC-Schlüssel für den Mechanismus "ecdsa-nist256p-challenge" (Pfad ist evaluiert, siehe Funktion string_eval_path_home in der Plugin-API-Referenz)]
|
||||
@@ -2779,9 +2847,9 @@
|
||||
** Standardwert: `+""+`
|
||||
|
||||
* [[option_irc.server_default.sasl_mechanism]] *irc.server_default.sasl_mechanism*
|
||||
** Beschreibung: pass:none[Verfahren welches bei einer SASL Authentifizierung angewandt werden soll: "plain" Passwort wird im Klartext gesendet, "scram-sha-1" für SCRAM-Authentifizierung mit SHA-1-Digest-Algorithmus, "scram-sha-256" für SCRAM-Authenrifizierung mit SHA-256 Digest-Algorithmus, "scram-sha-512" für SCRAM-Authentifizierung mit SHA-512 Digest-Algorithmus, "ecdsa-nist256p-challenge" für öffentlich/private Schlüsselmethode, "external" SSL Zertifikat welches auf Client Seite vorliegt wird verwendet, "dh-blowfish" Passwort wird mittels blowfish verschlüsselt (unsicher, wird nicht empfohlen), "dh-aes" Passwort wird mittels AES verschlüsselt (unsicher, wird nicht empfohlen)]
|
||||
** Beschreibung: pass:none[Verfahren welches bei einer SASL Authentifizierung angewandt werden soll: "plain" Passwort wird im Klartext gesendet, "scram-sha-1" für SCRAM-Authentifizierung mit SHA-1-Digest-Algorithmus, "scram-sha-256" für SCRAM-Authenrifizierung mit SHA-256 Digest-Algorithmus, "scram-sha-512" für SCRAM-Authentifizierung mit SHA-512 Digest-Algorithmus, "ecdsa-nist256p-challenge" für öffentlich/private Schlüsselmethode, "external" ein SSL Zertifikat welches auf Client Seite vorliegt wird verwendet]
|
||||
** Typ: integer
|
||||
** Werte: plain, scram-sha-1, scram-sha-256, scram-sha-512, ecdsa-nist256p-challenge, external, dh-blowfish, dh-aes
|
||||
** Werte: plain, scram-sha-1, scram-sha-256, scram-sha-512, ecdsa-nist256p-challenge, external
|
||||
** Standardwert: `+plain+`
|
||||
|
||||
* [[option_irc.server_default.sasl_password]] *irc.server_default.sasl_password*
|
||||
@@ -2996,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)]
|
||||
@@ -3075,34 +3143,6 @@
|
||||
** Standardwert: `+""+`
|
||||
// end::relay_options[]
|
||||
|
||||
// tag::javascript_options[]
|
||||
* [[option_javascript.look.check_license]] *javascript.look.check_license*
|
||||
** Beschreibung: pass:none[Überprüft die Lizenz von Skripten, wenn sie geladen werden: Sollte die Lizenz abweichend von der Erweiterungslizenz sein, wird eine Warnung ausgegeben]
|
||||
** Typ: boolesch
|
||||
** Werte: on, off
|
||||
** Standardwert: `+off+`
|
||||
|
||||
* [[option_javascript.look.eval_keep_context]] *javascript.look.eval_keep_context*
|
||||
** Beschreibung: pass:none[behält den Inhalt zwischen zwei Aufrufen bei Quellcode Evaluierung (Option "eval" des Skript-Befehls oder Info "%s_eval"); ein Hintergrundskript wird für die Evaluierung verwendet; wird diese Option deaktiviert, dann wird das Hintergrundskript nach jeder Evaluierung entfernt: das bedeutet weniger Speicherbedarf, ist aber langsamer]
|
||||
** Typ: boolesch
|
||||
** Werte: on, off
|
||||
** Standardwert: `+on+`
|
||||
// end::javascript_options[]
|
||||
|
||||
// tag::ruby_options[]
|
||||
* [[option_ruby.look.check_license]] *ruby.look.check_license*
|
||||
** Beschreibung: pass:none[Überprüft die Lizenz von Skripten, wenn sie geladen werden: Sollte die Lizenz abweichend von der Erweiterungslizenz sein, wird eine Warnung ausgegeben]
|
||||
** Typ: boolesch
|
||||
** Werte: on, off
|
||||
** Standardwert: `+off+`
|
||||
|
||||
* [[option_ruby.look.eval_keep_context]] *ruby.look.eval_keep_context*
|
||||
** Beschreibung: pass:none[behält den Inhalt zwischen zwei Aufrufen bei Quellcode Evaluierung (Option "eval" des Skript-Befehls oder Info "%s_eval"); ein Hintergrundskript wird für die Evaluierung verwendet; wird diese Option deaktiviert, dann wird das Hintergrundskript nach jeder Evaluierung entfernt: das bedeutet weniger Speicherbedarf, ist aber langsamer]
|
||||
** Typ: boolesch
|
||||
** Werte: on, off
|
||||
** Standardwert: `+on+`
|
||||
// end::ruby_options[]
|
||||
|
||||
// tag::guile_options[]
|
||||
* [[option_guile.look.check_license]] *guile.look.check_license*
|
||||
** Beschreibung: pass:none[Überprüft die Lizenz von Skripten, wenn sie geladen werden: Sollte die Lizenz abweichend von der Erweiterungslizenz sein, wird eine Warnung ausgegeben]
|
||||
@@ -3117,19 +3157,33 @@
|
||||
** Standardwert: `+on+`
|
||||
// end::guile_options[]
|
||||
|
||||
// tag::tcl_options[]
|
||||
* [[option_tcl.look.check_license]] *tcl.look.check_license*
|
||||
// tag::javascript_options[]
|
||||
* [[option_javascript.look.check_license]] *javascript.look.check_license*
|
||||
** Beschreibung: pass:none[Überprüft die Lizenz von Skripten, wenn sie geladen werden: Sollte die Lizenz abweichend von der Erweiterungslizenz sein, wird eine Warnung ausgegeben]
|
||||
** Typ: boolesch
|
||||
** Werte: on, off
|
||||
** Standardwert: `+off+`
|
||||
|
||||
* [[option_tcl.look.eval_keep_context]] *tcl.look.eval_keep_context*
|
||||
* [[option_javascript.look.eval_keep_context]] *javascript.look.eval_keep_context*
|
||||
** Beschreibung: pass:none[behält den Inhalt zwischen zwei Aufrufen bei Quellcode Evaluierung (Option "eval" des Skript-Befehls oder Info "%s_eval"); ein Hintergrundskript wird für die Evaluierung verwendet; wird diese Option deaktiviert, dann wird das Hintergrundskript nach jeder Evaluierung entfernt: das bedeutet weniger Speicherbedarf, ist aber langsamer]
|
||||
** Typ: boolesch
|
||||
** Werte: on, off
|
||||
** Standardwert: `+on+`
|
||||
// end::tcl_options[]
|
||||
// end::javascript_options[]
|
||||
|
||||
// tag::lua_options[]
|
||||
* [[option_lua.look.check_license]] *lua.look.check_license*
|
||||
** Beschreibung: pass:none[Überprüft die Lizenz von Skripten, wenn sie geladen werden: Sollte die Lizenz abweichend von der Erweiterungslizenz sein, wird eine Warnung ausgegeben]
|
||||
** Typ: boolesch
|
||||
** Werte: on, off
|
||||
** Standardwert: `+off+`
|
||||
|
||||
* [[option_lua.look.eval_keep_context]] *lua.look.eval_keep_context*
|
||||
** Beschreibung: pass:none[behält den Inhalt zwischen zwei Aufrufen bei Quellcode Evaluierung (Option "eval" des Skript-Befehls oder Info "%s_eval"); ein Hintergrundskript wird für die Evaluierung verwendet; wird diese Option deaktiviert, dann wird das Hintergrundskript nach jeder Evaluierung entfernt: das bedeutet weniger Speicherbedarf, ist aber langsamer]
|
||||
** Typ: boolesch
|
||||
** Werte: on, off
|
||||
** Standardwert: `+on+`
|
||||
// end::lua_options[]
|
||||
|
||||
// tag::perl_options[]
|
||||
* [[option_perl.look.check_license]] *perl.look.check_license*
|
||||
@@ -3159,20 +3213,6 @@
|
||||
** Standardwert: `+on+`
|
||||
// end::php_options[]
|
||||
|
||||
// tag::lua_options[]
|
||||
* [[option_lua.look.check_license]] *lua.look.check_license*
|
||||
** Beschreibung: pass:none[Überprüft die Lizenz von Skripten, wenn sie geladen werden: Sollte die Lizenz abweichend von der Erweiterungslizenz sein, wird eine Warnung ausgegeben]
|
||||
** Typ: boolesch
|
||||
** Werte: on, off
|
||||
** Standardwert: `+off+`
|
||||
|
||||
* [[option_lua.look.eval_keep_context]] *lua.look.eval_keep_context*
|
||||
** Beschreibung: pass:none[behält den Inhalt zwischen zwei Aufrufen bei Quellcode Evaluierung (Option "eval" des Skript-Befehls oder Info "%s_eval"); ein Hintergrundskript wird für die Evaluierung verwendet; wird diese Option deaktiviert, dann wird das Hintergrundskript nach jeder Evaluierung entfernt: das bedeutet weniger Speicherbedarf, ist aber langsamer]
|
||||
** Typ: boolesch
|
||||
** Werte: on, off
|
||||
** Standardwert: `+on+`
|
||||
// end::lua_options[]
|
||||
|
||||
// tag::python_options[]
|
||||
* [[option_python.look.check_license]] *python.look.check_license*
|
||||
** Beschreibung: pass:none[Überprüft die Lizenz von Skripten, wenn sie geladen werden: Sollte die Lizenz abweichend von der Erweiterungslizenz sein, wird eine Warnung ausgegeben]
|
||||
@@ -3187,6 +3227,34 @@
|
||||
** Standardwert: `+on+`
|
||||
// end::python_options[]
|
||||
|
||||
// tag::ruby_options[]
|
||||
* [[option_ruby.look.check_license]] *ruby.look.check_license*
|
||||
** Beschreibung: pass:none[Überprüft die Lizenz von Skripten, wenn sie geladen werden: Sollte die Lizenz abweichend von der Erweiterungslizenz sein, wird eine Warnung ausgegeben]
|
||||
** Typ: boolesch
|
||||
** Werte: on, off
|
||||
** Standardwert: `+off+`
|
||||
|
||||
* [[option_ruby.look.eval_keep_context]] *ruby.look.eval_keep_context*
|
||||
** Beschreibung: pass:none[behält den Inhalt zwischen zwei Aufrufen bei Quellcode Evaluierung (Option "eval" des Skript-Befehls oder Info "%s_eval"); ein Hintergrundskript wird für die Evaluierung verwendet; wird diese Option deaktiviert, dann wird das Hintergrundskript nach jeder Evaluierung entfernt: das bedeutet weniger Speicherbedarf, ist aber langsamer]
|
||||
** Typ: boolesch
|
||||
** Werte: on, off
|
||||
** Standardwert: `+on+`
|
||||
// end::ruby_options[]
|
||||
|
||||
// tag::tcl_options[]
|
||||
* [[option_tcl.look.check_license]] *tcl.look.check_license*
|
||||
** Beschreibung: pass:none[Überprüft die Lizenz von Skripten, wenn sie geladen werden: Sollte die Lizenz abweichend von der Erweiterungslizenz sein, wird eine Warnung ausgegeben]
|
||||
** Typ: boolesch
|
||||
** Werte: on, off
|
||||
** Standardwert: `+off+`
|
||||
|
||||
* [[option_tcl.look.eval_keep_context]] *tcl.look.eval_keep_context*
|
||||
** Beschreibung: pass:none[behält den Inhalt zwischen zwei Aufrufen bei Quellcode Evaluierung (Option "eval" des Skript-Befehls oder Info "%s_eval"); ein Hintergrundskript wird für die Evaluierung verwendet; wird diese Option deaktiviert, dann wird das Hintergrundskript nach jeder Evaluierung entfernt: das bedeutet weniger Speicherbedarf, ist aber langsamer]
|
||||
** Typ: boolesch
|
||||
** Werte: on, off
|
||||
** Standardwert: `+on+`
|
||||
// end::tcl_options[]
|
||||
|
||||
// tag::script_options[]
|
||||
* [[option_script.color.status_autoloaded]] *script.color.status_autoloaded*
|
||||
** Beschreibung: pass:none[Farbe in der der Status "autoloaded" ("a") dargestellt werden soll]
|
||||
|
||||
@@ -86,6 +86,9 @@ $HOME/.config/weechat/tcl.conf::
|
||||
$HOME/.config/weechat/trigger.conf::
|
||||
Konfigurationsdatei für _trigger_ Erweiterung
|
||||
|
||||
$HOME/.config/weechat/typing.conf::
|
||||
Konfigurationsdatei für _typing_ Erweiterung
|
||||
|
||||
$HOME/.config/weechat/xfer.conf::
|
||||
Konfigurationsdatei für _xfer_ Erweiterung
|
||||
|
||||
@@ -97,7 +100,7 @@ $HOME/.local/share/weechat/weechat.log::
|
||||
WeeChat wird programmiert von Sébastien Helleu und weiteren Beteiligten (eine vollständige Auflistung
|
||||
findet man in der AUTHORS.adoc Datei).
|
||||
|
||||
Copyright (C) 2003-2021 {author}
|
||||
Copyright (C) 2003-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
|
||||
|
||||
@@ -441,7 +441,7 @@ Natürlich ist das möglich:
|
||||
[[timezone]]
|
||||
=== Wie kann ich die Zeitzone ändern?
|
||||
|
||||
Es gibt in WeeChat keine Option um die Zeitzone einzustellen. Die
|
||||
Es gibt in WeeChat keine Option um die Zeitzone einzustellen. Die
|
||||
Umgebungsvariable `TZ` muss auf einen entsprechenden Wert eingestellt werden.
|
||||
Am Besten machen Sie dies in Ihrer Shell-Initialisierungsdatei oder in der
|
||||
Befehlszeile, bevor Sie WeeChat starten:
|
||||
@@ -559,9 +559,10 @@ Der bracketed paste Modus kann wie folgt deaktiviert werden:
|
||||
[[small_terminal]]
|
||||
=== Wie kann ich die Anzeige bei sehr kleinen Terminalgrößen (wie 80 x 25) optimieren, um keinen Platz zu verschwenden?
|
||||
|
||||
Sie können die seitlichen Bars (Buflist und Nicklist) entfernen und das Zeitformat im Buffer anpassen,
|
||||
sodass nur Stunden und Sekunden angezeigt werden. Die Ausrichtung von Nachrichten sollte deaktiviert
|
||||
und der Präfix/Suffix für Nicks gesetzt werden:
|
||||
Die seitlichen Bars (buflist und nicklist) können deaktiviert werden, die Datums-
|
||||
anzeige sollte nur Stunden und Minuten darstellen, die Ausrichtung von Nach-
|
||||
richten sollte ebenfalls deaktiviert werden und es sollte der Nick mit einen
|
||||
Präfix und Suffix vesehen werden:
|
||||
|
||||
----
|
||||
/set buflist.look.enabled off
|
||||
@@ -886,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:
|
||||
@@ -1173,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",
|
||||
@@ -1304,6 +1339,10 @@ Das Ergebnis ist eine Hashtabelle mit folgenden Schlüsseln
|
||||
Tags in der Nachricht (kann leer sein). |
|
||||
`+time=2015-06-27T16:40:35.000Z+`
|
||||
|
||||
| tag_xxx | 3.3 |
|
||||
Wert des Tags "xxx" ohne Escapezeichen (ein Schlüssel pro Tag). |
|
||||
`+2015-06-27T16:40:35.000Z+`
|
||||
|
||||
| message_without_tags | 0.4.0 |
|
||||
Die IRC Nachricht ohne Tags (wie eine Nachricht ohne Tags). |
|
||||
`+:nick!user@host PRIVMSG #weechat :hello!+`
|
||||
@@ -1360,10 +1399,12 @@ Das Ergebnis ist eine Hashtabelle mit folgenden Schlüsseln
|
||||
----
|
||||
dict = weechat.info_get_hashtable(
|
||||
"irc_message_parse",
|
||||
{"message": "@time=2015-06-27T16:40:35.000Z :nick!user@host PRIVMSG #weechat :hello!"})
|
||||
{"message": "@time=2015-06-27T16:40:35.000Z;tag2=value\\sspace :nick!user@host PRIVMSG #weechat :hello!"})
|
||||
|
||||
# dict == {
|
||||
# "tags": "time=2015-06-27T16:40:35.000Z",
|
||||
# "tags": "time=2015-06-27T16:40:35.000Z;tag2=value\\sspace",
|
||||
# "tag_time": "2015-06-27T16:40:35.000Z",
|
||||
# "tag_tag2": "value space",
|
||||
# "message_without_tags": ":nick!user@host PRIVMSG #weechat :hello!",
|
||||
# "nick": "nick",
|
||||
# "user": "user",
|
||||
@@ -1372,10 +1413,10 @@ dict = weechat.info_get_hashtable(
|
||||
# "channel": "#weechat",
|
||||
# "arguments": "#weechat :hello!",
|
||||
# "text": "hello!",
|
||||
# "pos_command": "47",
|
||||
# "pos_arguments": "55",
|
||||
# "pos_channel": "55",
|
||||
# "pos_text": "65",
|
||||
# "pos_command": "65",
|
||||
# "pos_arguments": "73",
|
||||
# "pos_channel": "73",
|
||||
# "pos_text": "83",
|
||||
# }
|
||||
----
|
||||
|
||||
|
||||
@@ -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!
|
||||
+2431
-1946
File diff suppressed because it is too large
Load Diff
+3
-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
|
||||
@@ -81,6 +81,7 @@ LOCALE_LIST = (
|
||||
'it_IT',
|
||||
'ja_JP',
|
||||
'pl_PL',
|
||||
'sr_RS',
|
||||
)
|
||||
|
||||
# all commands/options/.. of following plugins will produce a file
|
||||
@@ -114,6 +115,7 @@ PLUGIN_LIST = {
|
||||
'spell': 'o',
|
||||
'trigger': 'o',
|
||||
'xfer': 'co',
|
||||
'typing': 'o',
|
||||
}
|
||||
|
||||
# options to ignore
|
||||
|
||||
+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
|
||||
|
||||
@@ -79,6 +79,8 @@ _last_nick_speaking_time_ (pointer, hdata: "irc_channel_speaking") +
|
||||
_modelists_ (pointer, hdata: "irc_modelist") +
|
||||
_last_modelist_ (pointer, hdata: "irc_modelist") +
|
||||
_join_smart_filtered_ (hashtable) +
|
||||
_typing_state_ (integer) +
|
||||
_typing_status_sent_ (time) +
|
||||
_buffer_ (pointer, hdata: "buffer") +
|
||||
_buffer_as_string_ (string) +
|
||||
_prev_channel_ (pointer, hdata: "irc_channel") +
|
||||
@@ -237,6 +239,8 @@ _sasl_scram_client_first_ (string) +
|
||||
_sasl_scram_salted_pwd_ (other) +
|
||||
_sasl_scram_salted_pwd_size_ (integer) +
|
||||
_sasl_scram_auth_message_ (string) +
|
||||
_sasl_temp_username_ (string) +
|
||||
_sasl_temp_password_ (string) +
|
||||
_is_connected_ (integer) +
|
||||
_ssl_connected_ (integer) +
|
||||
_disconnected_ (integer) +
|
||||
@@ -267,6 +271,10 @@ _chantypes_ (string) +
|
||||
_chanmodes_ (string) +
|
||||
_monitor_ (integer) +
|
||||
_monitor_time_ (time) +
|
||||
_clienttagdeny_ (string) +
|
||||
_clienttagdeny_count_ (integer) +
|
||||
_clienttagdeny_array_ (string, array_size: "clienttagdeny_count") +
|
||||
_typing_allowed_ (integer) +
|
||||
_reconnect_delay_ (integer) +
|
||||
_reconnect_start_ (time) +
|
||||
_command_time_ (time) +
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|===
|
||||
| Plugin | Name | Description | Hashtable (input) | Hashtable (output)
|
||||
|
||||
| irc | irc_message_parse | parse an IRC message | "message": IRC message, "server": server name (optional) | "tags": tags, "message_without_tags": message without the tags, "nick": nick, "user": user, "host": host, "command": command, "channel": channel, "arguments": arguments (includes channel), "text": text (for example user message), "pos_command": index of "command" message ("-1" if "command" was not found), "pos_arguments": index of "arguments" message ("-1" if "arguments" was not found), "pos_channel": index of "channel" message ("-1" if "channel" was not found), "pos_text": index of "text" message ("-1" if "text" was not found)
|
||||
| irc | irc_message_parse | parse an IRC message | "message": IRC message, "server": server name (optional) | "tags": tags, "tag_xxx": unescaped value of tag "xxx" (one key per tag), "message_without_tags": message without the tags, "nick": nick, "user": user, "host": host, "command": command, "channel": channel, "arguments": arguments (includes channel), "text": text (for example user message), "param1" ... "paramN": parsed command parameters, "num_params": number of parsed command parameters, "pos_command": index of "command" message ("-1" if "command" was not found), "pos_arguments": index of "arguments" message ("-1" if "arguments" was not found), "pos_channel": index of "channel" message ("-1" if "channel" was not found), "pos_text": index of "text" message ("-1" if "text" was not found)
|
||||
|
||||
| irc | irc_message_split | split an IRC message (to fit in 512 bytes by default) | "message": IRC message, "server": server name (optional) | "msg1" ... "msgN": messages to send (without final "\r\n"), "args1" ... "argsN": arguments of messages, "count": number of messages
|
||||
|
||||
|
||||
@@ -4,18 +4,26 @@
|
||||
//
|
||||
|
||||
// tag::plugins_priority[]
|
||||
. charset (15000)
|
||||
. logger (14000)
|
||||
. exec (13000)
|
||||
. trigger (12000)
|
||||
. spell (11000)
|
||||
. alias (10000)
|
||||
. buflist (9000)
|
||||
. fifo (8000)
|
||||
. charset (16000)
|
||||
. logger (15000)
|
||||
. exec (14000)
|
||||
. trigger (13000)
|
||||
. spell (12000)
|
||||
. alias (11000)
|
||||
. buflist (10000)
|
||||
. fifo (9000)
|
||||
. typing (8000)
|
||||
. xfer (7000)
|
||||
. irc (6000)
|
||||
. relay (5000)
|
||||
. guile, javascript, lua, perl, php, python, ruby, tcl (4000)
|
||||
. guile (4007)
|
||||
. javascript (4006)
|
||||
. lua (4005)
|
||||
. perl (4004)
|
||||
. php (4003)
|
||||
. python (4002)
|
||||
. ruby (4001)
|
||||
. tcl (4000)
|
||||
. script (3000)
|
||||
. fset (2000)
|
||||
// end::plugins_priority[]
|
||||
|
||||
@@ -17,10 +17,11 @@ target: server name
|
||||
* `+allchan+`: execute a command on all channels of all connected servers
|
||||
|
||||
----
|
||||
/allchan [-current] [-exclude=<channel>[,<channel>...]] <command>
|
||||
[-current] -include=<channel>[,<channel>...] <command>
|
||||
/allchan [-current] [-parted] [-exclude=<channel>[,<channel>...]] <command>
|
||||
[-current] [-parted] -include=<channel>[,<channel>...] <command>
|
||||
|
||||
-current: execute command for channels of current server only
|
||||
-parted: execute on parted channels only
|
||||
-exclude: exclude some channels (wildcard "*" is allowed)
|
||||
-include: include only some channels (wildcard "*" is allowed)
|
||||
command: command to execute (or text to send to buffer if command does not start with '/')
|
||||
@@ -41,6 +42,8 @@ Examples:
|
||||
/allchan -exclude=#weechat,#linux* hello
|
||||
say 'hello' on all channels beginning with #linux:
|
||||
/allchan -include=#linux* hello
|
||||
close all buffers with parted channels:
|
||||
/allchan -parted /close
|
||||
----
|
||||
|
||||
[[command_irc_allpv]]
|
||||
@@ -100,6 +103,55 @@ Examples:
|
||||
/allserv /whois $nick
|
||||
----
|
||||
|
||||
[[command_irc_auth]]
|
||||
* `+auth+`: authenticate with SASL
|
||||
|
||||
----
|
||||
/auth [<username> <password>]
|
||||
|
||||
username: SASL username (content is evaluated, see /help eval; server options are evaluated with ${irc_server.xxx} and ${server} is replaced by the server name)
|
||||
password: SASL password or path to file with private key (content is evaluated, see /help eval; server options are evaluated with ${irc_server.xxx} and ${server} is replaced by the server name)
|
||||
|
||||
If username and password are not provided, the values from server options "sasl_username" and "sasl_password" (or "sasl_key") are used.
|
||||
|
||||
Examples:
|
||||
authenticate with username/password defined in the server:
|
||||
/auth
|
||||
authenticate as a different user:
|
||||
/auth user2 password2
|
||||
authenticate as a different user with mechanism ecdsa-nist256p-challenge:
|
||||
/auth user2 ${weechat_config_dir}/ecdsa2.pem
|
||||
----
|
||||
|
||||
[[command_irc_autojoin]]
|
||||
* `+autojoin+`: configure the "autojoin" server option
|
||||
|
||||
----
|
||||
/autojoin add [<channel1> [<channel2>...]]
|
||||
addraw <channel1>[,<channel2>...] [<key1>[,<key2>...]]
|
||||
del [<channel1> [<channel2>...]]
|
||||
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
|
||||
|
||||
@@ -129,7 +181,7 @@ Without argument, this command displays the ban list for current channel.
|
||||
|
||||
Without argument, "ls" and "list" are sent.
|
||||
|
||||
Capabilities supported by WeeChat are: account-notify, away-notify, cap-notify, chghost, extended-join, invite-notify, multi-prefix, server-time, userhost-in-names.
|
||||
Capabilities supported by WeeChat are: account-notify, away-notify, cap-notify, chghost, extended-join, invite-notify, message-tags, multi-prefix, server-time, setname, userhost-in-names.
|
||||
|
||||
The capabilities to automatically enable on servers can be set in option irc.server_default.capabilities (or by server in option irc.server.xxx.capabilities).
|
||||
|
||||
@@ -808,6 +860,15 @@ mask: list only services matching this mask
|
||||
type: list only services of this type
|
||||
----
|
||||
|
||||
[[command_irc_setname]]
|
||||
* `+setname+`: set real name
|
||||
|
||||
----
|
||||
/setname <realname>
|
||||
|
||||
realname: new real name
|
||||
----
|
||||
|
||||
[[command_irc_squery]]
|
||||
* `+squery+`: deliver a message to a service
|
||||
|
||||
@@ -1271,7 +1332,7 @@ Examples:
|
||||
/debug list
|
||||
set <plugin> <level>
|
||||
dump [<plugin>]
|
||||
buffer|color|infolists|memory|tags|term|windows
|
||||
buffer|color|infolists|libs|certs|memory|tags|term|windows
|
||||
mouse|cursor [verbose]
|
||||
hdata [free]
|
||||
time <command>
|
||||
@@ -1289,6 +1350,7 @@ Examples:
|
||||
hooks: display infos about hooks
|
||||
infolists: display infos about infolists
|
||||
libs: display infos about external libraries used
|
||||
certs: display number of loaded trusted certificate authorities
|
||||
memory: display infos about memory usage
|
||||
mouse: toggle debug for mouse
|
||||
tags: display tags for lines
|
||||
@@ -1342,27 +1404,32 @@ To force a string comparison, you can add double quotes around each expression,
|
||||
|
||||
Some variables are replaced in expression, using the format ${variable}, variable can be, by order of priority:
|
||||
1. the string itself without evaluation (format: "raw:xxx")
|
||||
2. an evaluated sub-string (format: "eval:xxx")
|
||||
3. an evaluated condition (format: "eval_cond:xxx")
|
||||
4. a string with escaped chars (format: "esc:xxx" or "\xxx")
|
||||
5. a string with chars to hide (format: "hide:char,string")
|
||||
6. a string with max chars (format: "cut:max,suffix,string" or "cut:+max,suffix,string")
|
||||
2. a user-defined variable (format: "name")
|
||||
3. an evaluated sub-string (format: "eval:xxx")
|
||||
4. an evaluated condition (format: "eval_cond:xxx")
|
||||
5. a string with escaped chars (format: "esc:xxx" or "\xxx")
|
||||
6. a string with chars to hide (format: "hide:char,string")
|
||||
7. a string with max chars (format: "cut:max,suffix,string" or "cut:+max,suffix,string")
|
||||
or max chars displayed on screen (format: "cutscr:max,suffix,string" or "cutscr:+max,suffix,string")
|
||||
7. a reversed string (format: "rev:xxx" or "revscr:xxx")
|
||||
8. a repeated string (format: "repeat:count,string")
|
||||
9. length of a string (format: "length:xxx" or "lengthscr:xxx")
|
||||
10. a color (format: "color:xxx", see "Plugin API reference", function "color")
|
||||
11. a modifier (format: "modifier:name,data,string")
|
||||
12. an info (format: "info:name,arguments", arguments are optional)
|
||||
13. a base 16/32/64 encoded/decoded string (format: "base_encode:base,xxx" or "base_decode:base,xxx")
|
||||
14. current date/time (format: "date" or "date:format")
|
||||
15. an environment variable (format: "env:XXX")
|
||||
16. a ternary operator (format: "if:condition?value_if_true:value_if_false")
|
||||
17. result of an expression with parentheses and operators + - * / // % ** (format: "calc:xxx")
|
||||
18. a translated string (format: "translate:xxx")
|
||||
19. an option (format: "file.section.option")
|
||||
20. a local variable in buffer
|
||||
21. a hdata name/variable (the value is automatically converted to string), by default "window" and "buffer" point to current window/buffer.
|
||||
8. a reversed string (format: "rev:xxx" or "revscr:xxx")
|
||||
9. a repeated string (format: "repeat:count,string")
|
||||
10. length of a string (format: "length:xxx" or "lengthscr:xxx")
|
||||
11. split of a string (format: "split:number,separators,flags,xxx")
|
||||
12. split of shell argmuents (format: "split_shell:number,xxx")
|
||||
13. a color (format: "color:xxx", see "Plugin API reference", function "color")
|
||||
14. a modifier (format: "modifier:name,data,string")
|
||||
15. an info (format: "info:name,arguments", arguments are optional)
|
||||
16. a base 16/32/64 encoded/decoded string (format: "base_encode:base,xxx" or "base_decode:base,xxx")
|
||||
17. current date/time (format: "date" or "date:format")
|
||||
18. an environment variable (format: "env:XXX")
|
||||
19. a ternary operator (format: "if:condition?value_if_true:value_if_false")
|
||||
20. result of an expression with parentheses and operators + - * / // % ** (format: "calc:xxx")
|
||||
21. a random integer number (format: "random:min,max")
|
||||
22. a translated string (format: "translate:xxx")
|
||||
23. define a user variable (format: "define:name,value")
|
||||
24. an option (format: "file.section.option")
|
||||
25. a local variable in buffer
|
||||
26. a hdata name/variable (the value is automatically converted to string), by default "window" and "buffer" point to current window/buffer.
|
||||
Format for hdata can be one of following:
|
||||
hdata.var1.var2...: start with a hdata (pointer must be known), and ask variables one after one (other hdata can be followed)
|
||||
hdata[list].var1.var2...: start with a hdata using a list/pointer/pointer name, for example:
|
||||
@@ -1374,29 +1441,39 @@ Format for hdata can be one of following:
|
||||
For name of hdata and variables, please look at "Plugin API reference", function "weechat_hdata_get".
|
||||
|
||||
Examples (simple strings):
|
||||
/eval -n ${raw:${info:version}} ==> ${info:version}
|
||||
/eval -n ${eval_cond:${window.win_width}>100} ==> 1
|
||||
/eval -n ${info:version} ==> 0.4.3
|
||||
/eval -n ${env:HOME} ==> /home/user
|
||||
/eval -n ${weechat.look.scroll_amount} ==> 3
|
||||
/eval -n ${sec.data.password} ==> secret
|
||||
/eval -n ${window} ==> 0x2549aa0
|
||||
/eval -n ${window.buffer} ==> 0x2549320
|
||||
/eval -n ${window.buffer.full_name} ==> core.weechat
|
||||
/eval -n ${window.buffer.number} ==> 1
|
||||
/eval -n ${\t} ==> <tab>
|
||||
/eval -n ${hide:-,${relay.network.password}} ==> --------
|
||||
/eval -n ${cut:3,+,test} ==> tes+
|
||||
/eval -n ${cut:+3,+,test} ==> te+
|
||||
/eval -n ${date:%H:%M:%S} ==> 07:46:40
|
||||
/eval -n ${if:${info:term_width}>80?big:small} ==> big
|
||||
/eval -n ${rev:Hello} ==> olleH
|
||||
/eval -n ${repeat:5,-} ==> -----
|
||||
/eval -n ${length:test} ==> 4
|
||||
/eval -n ${calc:(5+2)*3} ==> 21
|
||||
/eval -n ${base_encode:64,test} ==> dGVzdA==
|
||||
/eval -n ${base_decode:64,dGVzdA==} ==> test
|
||||
/eval -n ${translate:Plugin} ==> Extension
|
||||
/eval -n ${raw:${info:version}} ==> ${info:version}
|
||||
/eval -n ${eval_cond:${window.win_width}>100} ==> 1
|
||||
/eval -n ${info:version} ==> 0.4.3
|
||||
/eval -n ${env:HOME} ==> /home/user
|
||||
/eval -n ${weechat.look.scroll_amount} ==> 3
|
||||
/eval -n ${sec.data.password} ==> secret
|
||||
/eval -n ${window} ==> 0x2549aa0
|
||||
/eval -n ${window.buffer} ==> 0x2549320
|
||||
/eval -n ${window.buffer.full_name} ==> core.weechat
|
||||
/eval -n ${window.buffer.number} ==> 1
|
||||
/eval -n ${\t} ==> <tab>
|
||||
/eval -n ${hide:-,${relay.network.password}} ==> --------
|
||||
/eval -n ${cut:3,+,test} ==> tes+
|
||||
/eval -n ${cut:+3,+,test} ==> te+
|
||||
/eval -n ${date:%H:%M:%S} ==> 07:46:40
|
||||
/eval -n ${if:${info:term_width}>80?big:small} ==> big
|
||||
/eval -n ${rev:Hello} ==> olleH
|
||||
/eval -n ${repeat:5,-} ==> -----
|
||||
/eval -n ${length:test} ==> 4
|
||||
/eval -n ${split:1,,,abc,def,ghi} ==> abc
|
||||
/eval -n ${split:-1,,,abc,def,ghi} ==> ghi
|
||||
/eval -n ${split:count,,,abc,def,ghi} ==> 3
|
||||
/eval -n ${split:random,,,abc,def,ghi} ==> def
|
||||
/eval -n ${split_shell:1,"arg 1" arg2} ==> arg 1
|
||||
/eval -n ${split_shell:-1,"arg 1" arg2} ==> arg2
|
||||
/eval -n ${split_shell:count,"arg 1" arg2} ==> 2
|
||||
/eval -n ${split_shell:random,"arg 1" arg2} ==> arg2
|
||||
/eval -n ${calc:(5+2)*3} ==> 21
|
||||
/eval -n ${random:0,10} ==> 3
|
||||
/eval -n ${base_encode:64,test} ==> dGVzdA==
|
||||
/eval -n ${base_decode:64,dGVzdA==} ==> test
|
||||
/eval -n ${translate:Plugin} ==> Extension
|
||||
/eval -n ${define:len,${calc:5+3}}${len}x${len} ==> 8x8
|
||||
|
||||
Examples (conditions):
|
||||
/eval -n -c ${window.buffer.number} > 2 ==> 0
|
||||
@@ -1549,6 +1626,9 @@ list of actions:
|
||||
jump_previously_visited_buffer: jump to previously visited buffer
|
||||
jump_next_visited_buffer: jump to next visited buffer
|
||||
hotlist_clear: clear hotlist (optional argument: "lowest" to clear only lowest level in hotlist, "highest" to clear only highest level in hotlist, or level mask: integer which is a combination of 1=join/part, 2=message, 4=private, 8=highlight)
|
||||
hotlist_remove_buffer: remove current buffer from hotlist
|
||||
hotlist_restore_buffer: restore latest hotlist removed in the current buffer
|
||||
hotlist_restore_all: restore latest hotlist removed in all buffers
|
||||
grab_key: grab a key (optional argument: delay for end of grab, default is 500 milliseconds)
|
||||
grab_key_command: grab a key with its associated command (optional argument: delay for end of grab, default is 500 milliseconds)
|
||||
grab_mouse: grab mouse event code
|
||||
@@ -1644,6 +1724,8 @@ windows: store/apply only windows (buffer displayed by each window)
|
||||
Without argument, this command displays stored layouts.
|
||||
|
||||
The current layout can be saved on /quit command with the option "weechat.look.save_layout_on_exit".
|
||||
|
||||
Note: the layout only remembers windows split and buffers numbers. It does not open buffers. That means for example you must still auto-join IRC channels to open the buffers, the saved layout only applies once the buffers are opened.
|
||||
----
|
||||
|
||||
[[command_weechat_mouse]]
|
||||
@@ -1693,21 +1775,26 @@ Examples:
|
||||
* `+plugin+`: list/load/unload plugins
|
||||
|
||||
----
|
||||
/plugin list|listfull [<name>]
|
||||
/plugin list [-o|-ol|-i|-il|<name>]
|
||||
listfull [<name>]
|
||||
load <filename> [<arguments>]
|
||||
autoload [<arguments>]
|
||||
reload [<name>|* [<arguments>]]
|
||||
unload [<name>]
|
||||
|
||||
list: list loaded plugins
|
||||
-o: send list of loaded plugins to buffer (string in English)
|
||||
-ol: send list of loaded plugins to buffer (translated string)
|
||||
-i: copy list of loaded plugins in command line (for sending to buffer) (string in English)
|
||||
-il: copy list of loaded plugins in command line (for sending to buffer) (translated string)
|
||||
name: a plugin name
|
||||
listfull: list loaded plugins (verbose)
|
||||
load: load a plugin
|
||||
filename: plugin (file) to load
|
||||
arguments: arguments given to plugin on load
|
||||
autoload: autoload plugins in system or user directory
|
||||
reload: reload a plugin (if no name given, unload all plugins, then autoload plugins)
|
||||
unload: unload a plugin (if no name given, unload all plugins)
|
||||
filename: plugin (file) to load
|
||||
name: a plugin name
|
||||
arguments: arguments given to plugin on load
|
||||
|
||||
Without argument, this command lists loaded plugins.
|
||||
----
|
||||
@@ -1935,6 +2022,32 @@ Examples:
|
||||
/set env ABC ""
|
||||
----
|
||||
|
||||
[[command_weechat_toggle]]
|
||||
* `+toggle+`: toggle value of a config option
|
||||
|
||||
----
|
||||
/toggle <option> [<value> [<value>...]]
|
||||
|
||||
option: name of an option
|
||||
value: possible values for the option (values are split like the shell command arguments: quotes can be used to preserve spaces at the beginning/end of values)
|
||||
|
||||
Behavior:
|
||||
- only an option of type boolean or string can be toggled without a value:
|
||||
- boolean: toggle between on/off according to current value
|
||||
- string: toggle between empty string and default value (works only if empty string is allowed for the option)
|
||||
- with a single value given, toggle between this value and the default value of option
|
||||
- with multiple values given, toggle between these values: the value used is the one following the current value of option; if the current value of option is not in list, the first value in the list is used
|
||||
- the special value "null" can be given, but only as first value in the list and without quotes around.
|
||||
|
||||
Examples:
|
||||
toggle display of time in chat area (without displaying the new value used):
|
||||
/mute /toggle weechat.look.buffer_time_format
|
||||
switch format of time in chat area (with seconds, without seconds, disabled):
|
||||
/toggle weechat.look.buffer_time_format "%H:%M:%S" "%H:%M" ""
|
||||
toggle autojoin of #weechat channel on libera server:
|
||||
/toggle irc.server.libera.autojoin null #weechat
|
||||
----
|
||||
|
||||
[[command_weechat_unset]]
|
||||
* `+unset+`: unset/reset config options
|
||||
|
||||
|
||||
@@ -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
|
||||
@@ -1845,6 +1839,50 @@
|
||||
** default value: `+"${weechat_runtime_dir}/weechat_fifo_${info:pid}"+`
|
||||
// end::fifo_options[]
|
||||
|
||||
// tag::typing_options[]
|
||||
* [[option_typing.look.delay_purge_paused]] *typing.look.delay_purge_paused*
|
||||
** description: pass:none[number of seconds after paused status has been set: if reached, the typing status is removed]
|
||||
** type: integer
|
||||
** values: 1 .. 2147483647
|
||||
** default value: `+30+`
|
||||
|
||||
* [[option_typing.look.delay_purge_typing]] *typing.look.delay_purge_typing*
|
||||
** description: pass:none[number of seconds after typing status has been set: if reached, the typing status is removed]
|
||||
** type: integer
|
||||
** values: 1 .. 2147483647
|
||||
** default value: `+6+`
|
||||
|
||||
* [[option_typing.look.delay_set_paused]] *typing.look.delay_set_paused*
|
||||
** description: pass:none[number of seconds after typing last char: if reached, the typing status becomes "paused" and no more typing signals are sent]
|
||||
** type: integer
|
||||
** values: 1 .. 2147483647
|
||||
** default value: `+10+`
|
||||
|
||||
* [[option_typing.look.enabled_nicks]] *typing.look.enabled_nicks*
|
||||
** description: pass:none[typing enabled for other nicks (display typing info for nicks typing in the current buffer)]
|
||||
** type: boolean
|
||||
** values: on, off
|
||||
** default value: `+off+`
|
||||
|
||||
* [[option_typing.look.enabled_self]] *typing.look.enabled_self*
|
||||
** description: pass:none[typing enabled for self messages (send typing info to other users)]
|
||||
** type: boolean
|
||||
** values: on, off
|
||||
** default value: `+off+`
|
||||
|
||||
* [[option_typing.look.input_min_chars]] *typing.look.input_min_chars*
|
||||
** description: pass:none[min number of chars in message to trigger send of typing signals]
|
||||
** type: integer
|
||||
** values: 1 .. 2147483647
|
||||
** default value: `+4+`
|
||||
|
||||
* [[option_typing.look.item_max_length]] *typing.look.item_max_length*
|
||||
** description: pass:none[max number of chars displayed in the bar item "typing" (0 = do not truncate content)]
|
||||
** type: integer
|
||||
** values: 0 .. 2147483647
|
||||
** default value: `+0+`
|
||||
// end::typing_options[]
|
||||
|
||||
// tag::xfer_options[]
|
||||
* [[option_xfer.color.status_aborted]] *xfer.color.status_aborted*
|
||||
** description: pass:none[text color for "aborted" status]
|
||||
@@ -2214,6 +2252,12 @@
|
||||
** values: any string
|
||||
** default value: `+"%a, %d %b %Y %T %z"+`
|
||||
|
||||
* [[option_irc.look.display_account_message]] *irc.look.display_account_message*
|
||||
** description: pass:none[display ACCOUNT messages received when capability account-notify is enabled]
|
||||
** type: boolean
|
||||
** values: on, off
|
||||
** default value: `+on+`
|
||||
|
||||
* [[option_irc.look.display_away]] *irc.look.display_away*
|
||||
** description: pass:none[display message when (un)marking as away (off: do not display/send anything, local: display locally, channel: send action to channels)]
|
||||
** type: integer
|
||||
@@ -2238,6 +2282,12 @@
|
||||
** values: on, off
|
||||
** default value: `+on+`
|
||||
|
||||
* [[option_irc.look.display_extended_join]] *irc.look.display_extended_join*
|
||||
** description: pass:none[display extra information in the JOIN messages: account name and real name (capability extended-join must be enabled)]
|
||||
** type: boolean
|
||||
** values: on, off
|
||||
** default value: `+on+`
|
||||
|
||||
* [[option_irc.look.display_host_join]] *irc.look.display_host_join*
|
||||
** description: pass:none[display host in join messages]
|
||||
** type: boolean
|
||||
@@ -2508,6 +2558,18 @@
|
||||
** values: on, off
|
||||
** default value: `+off+`
|
||||
|
||||
* [[option_irc.look.typing_status_nicks]] *irc.look.typing_status_nicks*
|
||||
** description: pass:none[display nicks typing on the channel in bar item "typing" (option typing.look.enabled_nicks must be enabled and capability "message-tags" must be enabled on the server)]
|
||||
** type: boolean
|
||||
** values: on, off
|
||||
** default value: `+off+`
|
||||
|
||||
* [[option_irc.look.typing_status_self]] *irc.look.typing_status_self*
|
||||
** description: pass:none[send self typing status to channels so that other users see when you are typing a message (option typing.look.enabled_self must be enabled and capability "message-tags" must be enabled on the server)]
|
||||
** type: boolean
|
||||
** values: on, off
|
||||
** default value: `+off+`
|
||||
|
||||
* [[option_irc.network.autoreconnect_delay_growing]] *irc.network.autoreconnect_delay_growing*
|
||||
** description: pass:none[growing factor for autoreconnect delay to server (1 = always same delay, 2 = delay*2 for each retry, etc.)]
|
||||
** type: integer
|
||||
@@ -2628,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
|
||||
@@ -2665,10 +2733,10 @@
|
||||
** default value: `+25+`
|
||||
|
||||
* [[option_irc.server_default.capabilities]] *irc.server_default.capabilities*
|
||||
** description: pass:none[comma-separated list of client capabilities to enable for server if they are available (see /help cap for a list of capabilities supported by WeeChat) (example: "away-notify,multi-prefix")]
|
||||
** description: pass:none[comma-separated list of client capabilities to enable for server if they are available (see /help cap for a list of capabilities supported by WeeChat); "*" enables all capabilities by default (supported by both server and WeeChat); wildcard "*" is allowed; a capability beginning with "!" is excluded (example: "*,!account-*,!extended-join")]
|
||||
** type: string
|
||||
** values: any string
|
||||
** default value: `+""+`
|
||||
** default value: `+"*"+`
|
||||
|
||||
* [[option_irc.server_default.charset_message]] *irc.server_default.charset_message*
|
||||
** description: pass:none[part of the IRC message (received or sent) which is decoded/encoded to the target charset; message = the whole IRC message (default), channel = starting from the channel name only (if found, with fallback on text), text = starting from the text only (you should try this value if you have issues with the channel name encoding)]
|
||||
@@ -2770,7 +2838,7 @@
|
||||
** description: pass:none[action to perform if SASL authentication fails: "continue" to ignore the authentication problem, "reconnect" to schedule a reconnection to the server, "disconnect" to disconnect from server (see also option irc.network.sasl_fail_unavailable)]
|
||||
** type: integer
|
||||
** values: continue, reconnect, disconnect
|
||||
** default value: `+continue+`
|
||||
** default value: `+reconnect+`
|
||||
|
||||
* [[option_irc.server_default.sasl_key]] *irc.server_default.sasl_key*
|
||||
** description: pass:none[file with ECC private key for mechanism "ecdsa-nist256p-challenge" (path is evaluated, see function string_eval_path_home in plugin API reference)]
|
||||
@@ -2779,9 +2847,9 @@
|
||||
** default value: `+""+`
|
||||
|
||||
* [[option_irc.server_default.sasl_mechanism]] *irc.server_default.sasl_mechanism*
|
||||
** description: pass:none[mechanism for SASL authentication: "plain" for plain text password, "scram-sha-1" for SCRAM authentication with SHA-1 digest algorithm, "scram-sha-256" for SCRAM authentication with SHA-256 digest algorithm, "scram-sha-512" for SCRAM authentication with SHA-512 digest algorithm, "ecdsa-nist256p-challenge" for key-based challenge authentication, "external" for authentication using client side SSL cert, "dh-blowfish" for blowfish crypted password (insecure, not recommended), "dh-aes" for AES crypted password (insecure, not recommended)]
|
||||
** description: pass:none[mechanism for SASL authentication: "plain" for plain text password, "scram-sha-1" for SCRAM authentication with SHA-1 digest algorithm, "scram-sha-256" for SCRAM authentication with SHA-256 digest algorithm, "scram-sha-512" for SCRAM authentication with SHA-512 digest algorithm, "ecdsa-nist256p-challenge" for key-based challenge authentication, "external" for authentication using client side SSL certificate]
|
||||
** type: integer
|
||||
** values: plain, scram-sha-1, scram-sha-256, scram-sha-512, ecdsa-nist256p-challenge, external, dh-blowfish, dh-aes
|
||||
** values: plain, scram-sha-1, scram-sha-256, scram-sha-512, ecdsa-nist256p-challenge, external
|
||||
** default value: `+plain+`
|
||||
|
||||
* [[option_irc.server_default.sasl_password]] *irc.server_default.sasl_password*
|
||||
@@ -2996,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)]
|
||||
@@ -3075,34 +3143,6 @@
|
||||
** default value: `+""+`
|
||||
// end::relay_options[]
|
||||
|
||||
// tag::javascript_options[]
|
||||
* [[option_javascript.look.check_license]] *javascript.look.check_license*
|
||||
** description: pass:none[check the license of scripts when they are loaded: if the license is different from the plugin license, a warning is displayed]
|
||||
** type: boolean
|
||||
** values: on, off
|
||||
** default value: `+off+`
|
||||
|
||||
* [[option_javascript.look.eval_keep_context]] *javascript.look.eval_keep_context*
|
||||
** description: pass:none[keep context between two calls to the source code evaluation (option "eval" of script command or info "%s_eval"); a hidden script is used to eval script code; if this option is disabled, this hidden script is unloaded after each eval: this uses less memory, but is slower]
|
||||
** type: boolean
|
||||
** values: on, off
|
||||
** default value: `+on+`
|
||||
// end::javascript_options[]
|
||||
|
||||
// tag::ruby_options[]
|
||||
* [[option_ruby.look.check_license]] *ruby.look.check_license*
|
||||
** description: pass:none[check the license of scripts when they are loaded: if the license is different from the plugin license, a warning is displayed]
|
||||
** type: boolean
|
||||
** values: on, off
|
||||
** default value: `+off+`
|
||||
|
||||
* [[option_ruby.look.eval_keep_context]] *ruby.look.eval_keep_context*
|
||||
** description: pass:none[keep context between two calls to the source code evaluation (option "eval" of script command or info "%s_eval"); a hidden script is used to eval script code; if this option is disabled, this hidden script is unloaded after each eval: this uses less memory, but is slower]
|
||||
** type: boolean
|
||||
** values: on, off
|
||||
** default value: `+on+`
|
||||
// end::ruby_options[]
|
||||
|
||||
// tag::guile_options[]
|
||||
* [[option_guile.look.check_license]] *guile.look.check_license*
|
||||
** description: pass:none[check the license of scripts when they are loaded: if the license is different from the plugin license, a warning is displayed]
|
||||
@@ -3117,19 +3157,33 @@
|
||||
** default value: `+on+`
|
||||
// end::guile_options[]
|
||||
|
||||
// tag::tcl_options[]
|
||||
* [[option_tcl.look.check_license]] *tcl.look.check_license*
|
||||
// tag::javascript_options[]
|
||||
* [[option_javascript.look.check_license]] *javascript.look.check_license*
|
||||
** description: pass:none[check the license of scripts when they are loaded: if the license is different from the plugin license, a warning is displayed]
|
||||
** type: boolean
|
||||
** values: on, off
|
||||
** default value: `+off+`
|
||||
|
||||
* [[option_tcl.look.eval_keep_context]] *tcl.look.eval_keep_context*
|
||||
* [[option_javascript.look.eval_keep_context]] *javascript.look.eval_keep_context*
|
||||
** description: pass:none[keep context between two calls to the source code evaluation (option "eval" of script command or info "%s_eval"); a hidden script is used to eval script code; if this option is disabled, this hidden script is unloaded after each eval: this uses less memory, but is slower]
|
||||
** type: boolean
|
||||
** values: on, off
|
||||
** default value: `+on+`
|
||||
// end::tcl_options[]
|
||||
// end::javascript_options[]
|
||||
|
||||
// tag::lua_options[]
|
||||
* [[option_lua.look.check_license]] *lua.look.check_license*
|
||||
** description: pass:none[check the license of scripts when they are loaded: if the license is different from the plugin license, a warning is displayed]
|
||||
** type: boolean
|
||||
** values: on, off
|
||||
** default value: `+off+`
|
||||
|
||||
* [[option_lua.look.eval_keep_context]] *lua.look.eval_keep_context*
|
||||
** description: pass:none[keep context between two calls to the source code evaluation (option "eval" of script command or info "%s_eval"); a hidden script is used to eval script code; if this option is disabled, this hidden script is unloaded after each eval: this uses less memory, but is slower]
|
||||
** type: boolean
|
||||
** values: on, off
|
||||
** default value: `+on+`
|
||||
// end::lua_options[]
|
||||
|
||||
// tag::perl_options[]
|
||||
* [[option_perl.look.check_license]] *perl.look.check_license*
|
||||
@@ -3159,20 +3213,6 @@
|
||||
** default value: `+on+`
|
||||
// end::php_options[]
|
||||
|
||||
// tag::lua_options[]
|
||||
* [[option_lua.look.check_license]] *lua.look.check_license*
|
||||
** description: pass:none[check the license of scripts when they are loaded: if the license is different from the plugin license, a warning is displayed]
|
||||
** type: boolean
|
||||
** values: on, off
|
||||
** default value: `+off+`
|
||||
|
||||
* [[option_lua.look.eval_keep_context]] *lua.look.eval_keep_context*
|
||||
** description: pass:none[keep context between two calls to the source code evaluation (option "eval" of script command or info "%s_eval"); a hidden script is used to eval script code; if this option is disabled, this hidden script is unloaded after each eval: this uses less memory, but is slower]
|
||||
** type: boolean
|
||||
** values: on, off
|
||||
** default value: `+on+`
|
||||
// end::lua_options[]
|
||||
|
||||
// tag::python_options[]
|
||||
* [[option_python.look.check_license]] *python.look.check_license*
|
||||
** description: pass:none[check the license of scripts when they are loaded: if the license is different from the plugin license, a warning is displayed]
|
||||
@@ -3187,6 +3227,34 @@
|
||||
** default value: `+on+`
|
||||
// end::python_options[]
|
||||
|
||||
// tag::ruby_options[]
|
||||
* [[option_ruby.look.check_license]] *ruby.look.check_license*
|
||||
** description: pass:none[check the license of scripts when they are loaded: if the license is different from the plugin license, a warning is displayed]
|
||||
** type: boolean
|
||||
** values: on, off
|
||||
** default value: `+off+`
|
||||
|
||||
* [[option_ruby.look.eval_keep_context]] *ruby.look.eval_keep_context*
|
||||
** description: pass:none[keep context between two calls to the source code evaluation (option "eval" of script command or info "%s_eval"); a hidden script is used to eval script code; if this option is disabled, this hidden script is unloaded after each eval: this uses less memory, but is slower]
|
||||
** type: boolean
|
||||
** values: on, off
|
||||
** default value: `+on+`
|
||||
// end::ruby_options[]
|
||||
|
||||
// tag::tcl_options[]
|
||||
* [[option_tcl.look.check_license]] *tcl.look.check_license*
|
||||
** description: pass:none[check the license of scripts when they are loaded: if the license is different from the plugin license, a warning is displayed]
|
||||
** type: boolean
|
||||
** values: on, off
|
||||
** default value: `+off+`
|
||||
|
||||
* [[option_tcl.look.eval_keep_context]] *tcl.look.eval_keep_context*
|
||||
** description: pass:none[keep context between two calls to the source code evaluation (option "eval" of script command or info "%s_eval"); a hidden script is used to eval script code; if this option is disabled, this hidden script is unloaded after each eval: this uses less memory, but is slower]
|
||||
** type: boolean
|
||||
** values: on, off
|
||||
** default value: `+on+`
|
||||
// end::tcl_options[]
|
||||
|
||||
// tag::script_options[]
|
||||
* [[option_script.color.status_autoloaded]] *script.color.status_autoloaded*
|
||||
** description: pass:none[color for status "autoloaded" ("a")]
|
||||
|
||||
@@ -86,6 +86,9 @@ $HOME/.config/weechat/tcl.conf::
|
||||
$HOME/.config/weechat/trigger.conf::
|
||||
configuration file for _trigger_ plugin
|
||||
|
||||
$HOME/.config/weechat/typing.conf::
|
||||
configuration file for _typing_ plugin
|
||||
|
||||
$HOME/.config/weechat/xfer.conf::
|
||||
configuration file for _xfer_ plugin
|
||||
|
||||
@@ -97,7 +100,7 @@ $HOME/.local/share/weechat/weechat.log::
|
||||
WeeChat is written by Sébastien Helleu and contributors (complete list is in
|
||||
the AUTHORS.adoc file).
|
||||
|
||||
Copyright (C) 2003-2021 {author}
|
||||
Copyright (C) 2003-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
|
||||
|
||||
+225
-118
@@ -89,6 +89,7 @@ The main WeeChat directories are:
|
||||
| spell/ | Spell plugin.
|
||||
| tcl/ | Tcl scripting API.
|
||||
| trigger/ | Trigger plugin.
|
||||
| typing/ | Typing plugin.
|
||||
| xfer/ | Xfer plugin (IRC DCC file/chat).
|
||||
| tests/ | Tests.
|
||||
| scripts/ | Scripting API tests.
|
||||
@@ -283,6 +284,7 @@ WeeChat "core" is located in following directories:
|
||||
| irc-ignore.c | IRC Ignore.
|
||||
| irc-info.c | IRC info/infolists/hdata.
|
||||
| irc-input.c | Input of commands/text.
|
||||
| irc-join.c | Functions for list of channels to join.
|
||||
| irc-message.c | Functions to manipulate IRC messages.
|
||||
| irc-mode.c | Functions about channel/nick modes.
|
||||
| irc-modelist.c | IRC channel mode lists (+b, +e, +I, ...).
|
||||
@@ -294,6 +296,8 @@ WeeChat "core" is located in following directories:
|
||||
| irc-redirect.c | Redirection of IRC command output.
|
||||
| irc-sasl.c | SASL authentication with IRC server.
|
||||
| irc-server.c | I/O communication with IRC server.
|
||||
| irc-tag.c | Functions to manipulate IRC message tags.
|
||||
| irc-typing.c | Typing status.
|
||||
| irc-upgrade.c | Save/restore of IRC data when upgrading WeeChat.
|
||||
| javascript/ | JavaScript plugin.
|
||||
| weechat-js.cpp | Main JavaScript functions (load/unload scripts, execute JavaScript code).
|
||||
@@ -363,6 +367,11 @@ WeeChat "core" is located in following directories:
|
||||
| trigger-command.c | Trigger commands.
|
||||
| trigger-completion.c | Trigger completions.
|
||||
| trigger-config.c | Trigger config options (file trigger.conf).
|
||||
| typing/ | Typing plugin.
|
||||
| typing.c | Main typing functions.
|
||||
| typing-bar-item.c | Typing bar items.
|
||||
| typing-config.c | Typing config options (file typing.conf).
|
||||
| typing-status.c | Messages typing status on buffers.
|
||||
| xfer/ | Xfer plugin (IRC DCC file/chat).
|
||||
| xfer.c | Main xfer functions.
|
||||
| xfer-buffer.c | Xfer buffer.
|
||||
@@ -382,55 +391,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-crypto.cpp | Tests: cryptographic functions.
|
||||
| test-core-dir.cpp | Tests: directory/file functions.
|
||||
| test-core-eval.cpp | Tests: evaluation of expressions.
|
||||
| test-core-hashtble.cpp | Tests: hashtables.
|
||||
| test-core-hdata.cpp | Tests: hdata.
|
||||
| test-core-hook.cpp | Tests: hooks.
|
||||
| test-core-infolist.cpp | Tests: infolists.
|
||||
| test-core-list.cpp | Tests: lists.
|
||||
| test-core-network.cpp | Tests: network functions.
|
||||
| test-core-secure.cpp | Tests: secured data.
|
||||
| test-core-signal.cpp | Tests: signals.
|
||||
| test-core-string.cpp | Tests: strings.
|
||||
| test-core-url.cpp | Tests: URLs.
|
||||
| test-core-utf8.cpp | Tests: UTF-8.
|
||||
| test-core-util.cpp | Tests: utility functions.
|
||||
| gui/ | Root of unit tests for interfaces.
|
||||
| test-gui-color.cpp | Tests: colors.
|
||||
| test-gui-line.cpp | Tests: lines.
|
||||
| test-gui-nick.cpp | Tests: nicks.
|
||||
| plugins/ | Root of unit tests for plugins.
|
||||
| irc/ | Root of unit tests for IRC plugin.
|
||||
| test-irc-channel.cpp | Tests: IRC channels.
|
||||
| test-irc-color.cpp | Tests: IRC colors.
|
||||
| test-irc-config.cpp | Tests: IRC configuration.
|
||||
| test-irc-ignore.cpp | Tests: IRC ignores.
|
||||
| test-irc-message.cpp | Tests: IRC messages.
|
||||
| test-irc-mode.cpp | Tests: IRC modes.
|
||||
| test-irc-nick.cpp | Tests: IRC nicks.
|
||||
| test-irc-protocol.cpp | Tests: IRC protocol.
|
||||
| test-irc-server.cpp | Tests: IRC server.
|
||||
| trigger/ | Root of unit tests for trigger plugin.
|
||||
| test-trigger.cpp | Tests: triggers.
|
||||
| relay/ | Root of unit tests for Relay plugin.
|
||||
| test-relay-auth.cpp | Tests: clients authentication.
|
||||
|
||||
| Path/file | Description
|
||||
| tests/ | Root of tests.
|
||||
| tests.cpp | Program used to run all tests.
|
||||
| scripts/ | Root of scripting API tests.
|
||||
| test-scripts.cpp | Program used to run the scripting API tests.
|
||||
| python/ | Python scripts to generate and run the scripting API tests.
|
||||
| testapigen.py | Python script generating scripts in all languages to test the scripting API.
|
||||
| testapi.py | Python script with scripting API tests, used by script testapigen.py.
|
||||
| unparse.py | Convert Python code to other languages, used by script testapigen.py.
|
||||
| unit/ | Root of unit tests.
|
||||
| test-plugins.cpp | Tests: plugins.
|
||||
| core/ | Root of unit tests for core.
|
||||
| test-core-arraylist.cpp | Tests: arraylists.
|
||||
| test-core-calc.cpp | Tests: calculation of expressions.
|
||||
| test-core-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]]
|
||||
@@ -452,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!).
|
||||
@@ -498,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.
|
||||
*
|
||||
@@ -536,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.
|
||||
@@ -567,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 ()
|
||||
@@ -585,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)
|
||||
{
|
||||
@@ -596,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.
|
||||
@@ -639,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)
|
||||
{
|
||||
@@ -663,7 +683,7 @@ else
|
||||
|
||||
* Indent the `switch` statements like this:
|
||||
|
||||
[source,C]
|
||||
[source,c]
|
||||
----
|
||||
switch (string[0])
|
||||
{
|
||||
@@ -681,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);
|
||||
|
||||
@@ -763,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
|
||||
{
|
||||
@@ -793,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 */
|
||||
@@ -813,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.
|
||||
@@ -849,7 +869,7 @@ and next node.
|
||||
|
||||
Example: list of buffers (from _src/gui/gui-buffer.h_):
|
||||
|
||||
[source,C]
|
||||
[source,c]
|
||||
----
|
||||
struct t_gui_buffer
|
||||
{
|
||||
@@ -864,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 */
|
||||
@@ -879,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
|
||||
@@ -899,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]
|
||||
@@ -1054,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,
|
||||
@@ -1067,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) \
|
||||
@@ -1078,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,
|
||||
@@ -1106,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:
|
||||
|
||||
@@ -1124,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
|
||||
@@ -1191,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,
|
||||
@@ -1208,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>>
|
||||
|
||||
@@ -524,7 +524,7 @@ You can just disable bracketed paste mode:
|
||||
=== How can I customize display for very small terminal size (like 80x25), to not waste space?
|
||||
|
||||
You can remove side bars (buflist and nicklist), change time format to display
|
||||
only hours and seconds, disable alignment of messages and set a char for nick
|
||||
only hours and minutes, disable alignment of messages and set a char for nick
|
||||
prefix/suffix:
|
||||
|
||||
----
|
||||
@@ -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?
|
||||
|
||||
|
||||
+1686
-1480
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",
|
||||
@@ -1277,6 +1312,10 @@ The result is a hashtable with following keys
|
||||
The tags in message (can be empty). |
|
||||
`+time=2015-06-27T16:40:35.000Z+`
|
||||
|
||||
| tag_xxx | 3.3 |
|
||||
Unescaped value of tag "xxx" (one key per tag). |
|
||||
`+2015-06-27T16:40:35.000Z+`
|
||||
|
||||
| message_without_tags | 0.4.0 |
|
||||
The message without the tags (the same as message if there are no tags). |
|
||||
`+:nick!user@host PRIVMSG #weechat :hello!+`
|
||||
@@ -1333,10 +1372,12 @@ The result is a hashtable with following keys
|
||||
----
|
||||
dict = weechat.info_get_hashtable(
|
||||
"irc_message_parse",
|
||||
{"message": "@time=2015-06-27T16:40:35.000Z :nick!user@host PRIVMSG #weechat :hello!"})
|
||||
{"message": "@time=2015-06-27T16:40:35.000Z;tag2=value\\sspace :nick!user@host PRIVMSG #weechat :hello!"})
|
||||
|
||||
# dict == {
|
||||
# "tags": "time=2015-06-27T16:40:35.000Z",
|
||||
# "tags": "time=2015-06-27T16:40:35.000Z;tag2=value\\sspace",
|
||||
# "tag_time": "2015-06-27T16:40:35.000Z",
|
||||
# "tag_tag2": "value space",
|
||||
# "message_without_tags": ":nick!user@host PRIVMSG #weechat :hello!",
|
||||
# "nick": "nick",
|
||||
# "user": "user",
|
||||
@@ -1345,10 +1386,10 @@ dict = weechat.info_get_hashtable(
|
||||
# "channel": "#weechat",
|
||||
# "arguments": "#weechat :hello!",
|
||||
# "text": "hello!",
|
||||
# "pos_command": "47",
|
||||
# "pos_arguments": "55",
|
||||
# "pos_channel": "55",
|
||||
# "pos_text": "65",
|
||||
# "pos_command": "65",
|
||||
# "pos_arguments": "73",
|
||||
# "pos_channel": "73",
|
||||
# "pos_text": "83",
|
||||
# }
|
||||
----
|
||||
|
||||
|
||||
@@ -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!
|
||||
+2225
-1758
File diff suppressed because it is too large
Load Diff
+14
-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.
|
||||
#
|
||||
@@ -19,6 +19,19 @@
|
||||
|
||||
if(ENABLE_DOC)
|
||||
|
||||
# FAQ
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_faq.es.html
|
||||
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -o weechat_faq.es.html ${CMAKE_CURRENT_SOURCE_DIR}/weechat_faq.es.adoc
|
||||
DEPENDS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../docinfo.html
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/weechat_faq.es.adoc
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
COMMENT "Building weechat_faq.es.html"
|
||||
)
|
||||
add_custom_target(doc-faq-es ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_faq.es.html)
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_faq.es.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
|
||||
|
||||
# quickstart
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.es.html
|
||||
|
||||
+8
-2
@@ -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.
|
||||
#
|
||||
@@ -21,6 +21,7 @@ docdir = $(datadir)/doc/$(PACKAGE)
|
||||
|
||||
EXTRA_DIST = CMakeLists.txt \
|
||||
docinfo.html \
|
||||
weechat_faq.es.adoc \
|
||||
weechat_quickstart.es.adoc
|
||||
|
||||
if MAN
|
||||
@@ -29,12 +30,17 @@ if MAN
|
||||
man_uninstall =
|
||||
endif
|
||||
if DOC
|
||||
doc_targets = weechat_quickstart.es.html
|
||||
doc_targets = weechat_faq.es.html \
|
||||
weechat_quickstart.es.html
|
||||
doc_install = install-doc
|
||||
doc_uninstall = uninstall-doc
|
||||
endif
|
||||
all-local: $(man_targets) $(doc_targets)
|
||||
|
||||
# FAQ
|
||||
weechat_faq.es.html: weechat_faq.es.adoc $(abs_top_srcdir)/doc/docinfo.html
|
||||
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_faq.es.html $(abs_top_srcdir)/doc/es/weechat_faq.es.adoc
|
||||
|
||||
# quickstart
|
||||
weechat_quickstart.es.html: weechat_quickstart.es.adoc $(abs_top_srcdir)/doc/docinfo.html
|
||||
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_quickstart.es.html $(abs_top_srcdir)/doc/es/weechat_quickstart.es.adoc
|
||||
|
||||
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,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
|
||||
|
||||
@@ -79,6 +79,8 @@ _last_nick_speaking_time_ (pointer, hdata: "irc_channel_speaking") +
|
||||
_modelists_ (pointer, hdata: "irc_modelist") +
|
||||
_last_modelist_ (pointer, hdata: "irc_modelist") +
|
||||
_join_smart_filtered_ (hashtable) +
|
||||
_typing_state_ (integer) +
|
||||
_typing_status_sent_ (time) +
|
||||
_buffer_ (pointer, hdata: "buffer") +
|
||||
_buffer_as_string_ (string) +
|
||||
_prev_channel_ (pointer, hdata: "irc_channel") +
|
||||
@@ -237,6 +239,8 @@ _sasl_scram_client_first_ (string) +
|
||||
_sasl_scram_salted_pwd_ (other) +
|
||||
_sasl_scram_salted_pwd_size_ (integer) +
|
||||
_sasl_scram_auth_message_ (string) +
|
||||
_sasl_temp_username_ (string) +
|
||||
_sasl_temp_password_ (string) +
|
||||
_is_connected_ (integer) +
|
||||
_ssl_connected_ (integer) +
|
||||
_disconnected_ (integer) +
|
||||
@@ -267,6 +271,10 @@ _chantypes_ (string) +
|
||||
_chanmodes_ (string) +
|
||||
_monitor_ (integer) +
|
||||
_monitor_time_ (time) +
|
||||
_clienttagdeny_ (string) +
|
||||
_clienttagdeny_count_ (integer) +
|
||||
_clienttagdeny_array_ (string, array_size: "clienttagdeny_count") +
|
||||
_typing_allowed_ (integer) +
|
||||
_reconnect_delay_ (integer) +
|
||||
_reconnect_start_ (time) +
|
||||
_command_time_ (time) +
|
||||
|
||||
@@ -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, "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
|
||||
|
||||
|
||||
@@ -4,18 +4,26 @@
|
||||
//
|
||||
|
||||
// tag::plugins_priority[]
|
||||
. charset (15000)
|
||||
. logger (14000)
|
||||
. exec (13000)
|
||||
. trigger (12000)
|
||||
. spell (11000)
|
||||
. alias (10000)
|
||||
. buflist (9000)
|
||||
. fifo (8000)
|
||||
. charset (16000)
|
||||
. logger (15000)
|
||||
. exec (14000)
|
||||
. trigger (13000)
|
||||
. spell (12000)
|
||||
. alias (11000)
|
||||
. buflist (10000)
|
||||
. fifo (9000)
|
||||
. typing (8000)
|
||||
. xfer (7000)
|
||||
. irc (6000)
|
||||
. relay (5000)
|
||||
. guile, javascript, lua, perl, php, python, ruby, tcl (4000)
|
||||
. guile (4007)
|
||||
. javascript (4006)
|
||||
. lua (4005)
|
||||
. perl (4004)
|
||||
. php (4003)
|
||||
. python (4002)
|
||||
. ruby (4001)
|
||||
. tcl (4000)
|
||||
. script (3000)
|
||||
. fset (2000)
|
||||
// end::plugins_priority[]
|
||||
|
||||
@@ -17,10 +17,11 @@ cible : nom du serveur
|
||||
* `+allchan+`: exécuter une commande sur tous les canaux de tous les serveurs connectés
|
||||
|
||||
----
|
||||
/allchan [-current] [-exclude=<canal>[,<canal>...]] <commande>
|
||||
[-current] [-include=<canal>[,<canal>...]] <commande>
|
||||
/allchan [-current] [-parted] [-exclude=<canal>[,<canal>...]] <commande>
|
||||
[-current] [-parted] -include=<canal>[,<canal>...] <commande>
|
||||
|
||||
-current : exécuter la commande pour les canaux du serveur courant seulement
|
||||
-parted : exécuter la commande sur les canaux quittés seulement
|
||||
-exclude : exclure certains canaux (le caractère joker "*" est autorisé)
|
||||
-include : inclure seulement certains canaux (le caractère joker "*" est autorisé)
|
||||
commande : commande à exécuter (ou texte à envoyer au tampon si la commande ne commence pas par '/')
|
||||
@@ -41,6 +42,8 @@ Exemples :
|
||||
/allchan -exclude=#weechat,#linux* bonjour
|
||||
dire 'bonjour' sur tous les canaux commençant par #linux :
|
||||
/allchan -include=#linux* bonjour
|
||||
fermer tous les tampons avec des canaux quittés :
|
||||
/allchan -parted /close
|
||||
----
|
||||
|
||||
[[command_irc_allpv]]
|
||||
@@ -100,6 +103,55 @@ Exemples :
|
||||
/allserv /whois $nick
|
||||
----
|
||||
|
||||
[[command_irc_auth]]
|
||||
* `+auth+`: s'authentifier avec SASL
|
||||
|
||||
----
|
||||
/auth [<utilisateur> <mot_de_passe>]
|
||||
|
||||
utilisateur : nom d'utilisateur SASL (le contenu est évalué, voir /help eval ; les options de serveur sont évaluées avec ${irc_server.xxx} et ${server} est remplacé par le nom du serveur)
|
||||
mot_de_passe : mot de passe SASL ou chemin vers le fichier de clé privée (le contenu est évalué, voir /help eval ; les options de serveur sont évaluées avec ${irc_server.xxx} et ${server} est remplacé par le nom du serveur)
|
||||
|
||||
Si le nom d'utilisateur et mot de passe ne sont pas donnés, les valeurs des options serveur "sasl_username" et "sasl_password" (ou "sasl_key") sont utilisées.
|
||||
|
||||
Exemples :
|
||||
s'authentifier avec le nom d'utilisateur et mot de passe défini dans le serveur :
|
||||
/auth
|
||||
s'authentifier avec un utilisateur différent :
|
||||
/auth utilisateur2 mot_de_passe2
|
||||
s'authentifier avec un utilisateur différent et le mécanisme ecdsa-nist256p-challenge :
|
||||
/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
|
||||
|
||||
@@ -129,7 +181,7 @@ Sans paramètre, cette commande affiche la liste des bannissements pour le canal
|
||||
|
||||
Sans paramètre, "ls" et "list" sont envoyés.
|
||||
|
||||
Les capacités supportées par WeeChat sont : account-notify, away-notify, cap-notify, chghost, extended-join, invite-notify, multi-prefix, server-time, userhost-in-names.
|
||||
Les capacités supportées par WeeChat sont : account-notify, away-notify, cap-notify, chghost, extended-join, invite-notify, message-tags, multi-prefix, server-time, setname, userhost-in-names.
|
||||
|
||||
Les capacités à activer automatiquement sur les serveurs peuvent être définies dans l'option irc.server_default.capabilities (ou par serveur dans l'option irc.server.xxx.capabilities).
|
||||
|
||||
@@ -808,6 +860,15 @@ masque : lister seulement les services qui correspondent à ce masque
|
||||
type : lister seulement les services de ce type
|
||||
----
|
||||
|
||||
[[command_irc_setname]]
|
||||
* `+setname+`: définir le nom réel
|
||||
|
||||
----
|
||||
/setname <nom_réel>
|
||||
|
||||
nom_réel : nouveau nom réel
|
||||
----
|
||||
|
||||
[[command_irc_squery]]
|
||||
* `+squery+`: envoyer un message à un service
|
||||
|
||||
@@ -1271,7 +1332,7 @@ Exemples :
|
||||
/debug list
|
||||
set <extension> <niveau>
|
||||
dump [<extension>]
|
||||
buffer|color|infolists|memory|tags|term|windows
|
||||
buffer|color|infolists|libs|certs|memory|tags|term|windows
|
||||
cursor|mouse [verbose]
|
||||
hdata [free]
|
||||
time <commande>
|
||||
@@ -1289,6 +1350,7 @@ extension : nom de l'extension ("core" pour le cœur de WeeChat)
|
||||
hooks : afficher des infos sur les hooks
|
||||
infolists : afficher des infos sur les infolists
|
||||
libs : afficher des infos sur les bibliothèques externes utilisées
|
||||
certs : afficher le nombre de certificats des autorités de certification chargés
|
||||
memory : afficher des infos sur l'utilisation de la mémoire
|
||||
mouse : activer/désactiver le debug pour la souris
|
||||
tags : afficher les étiquettes pour les lignes
|
||||
@@ -1342,27 +1404,32 @@ Pour forcer une comparaison de chaînes, vous pouvez ajouter des guillemets auto
|
||||
|
||||
Des variables sont remplacées dans l'expression, en utilisant le format ${variable}, la variable pouvant être, par ordre de priorité :
|
||||
1. la chaîne elle-même sans évaluation (format : "raw:xxx")
|
||||
2. une sous-chaîne évaluée (format : "eval:xxx")
|
||||
3. une condition évaluée (format : "eval_cond:xxx")
|
||||
4. une chaîne avec les caractères échappés (format : "esc:xxx" ou "\xxx")
|
||||
5. une chaîne avec des caractères à cacher (format : "hide:caractère,chaîne")
|
||||
6. une chaîne avec un maximum de caractères (format : "cut:max,suffixe,chaîne" ou "cut:+max,suffixe,chaîne")
|
||||
2. une variable définie par l'utilisateur (format : "nom")
|
||||
3. une sous-chaîne évaluée (format : "eval:xxx")
|
||||
4. une condition évaluée (format : "eval_cond:xxx")
|
||||
5. une chaîne avec les caractères échappés (format : "esc:xxx" ou "\xxx")
|
||||
6. une chaîne avec des caractères à cacher (format : "hide:caractère,chaîne")
|
||||
7. une chaîne avec un maximum de caractères (format : "cut:max,suffixe,chaîne" ou "cut:+max,suffixe,chaîne")
|
||||
ou un maximum de caractères affichés à l'écran (format : "cutscr:max,suffixe,chaîne" ou "cutscr:+max,suffixe,chaîne")
|
||||
7. une chaîne inversée (format : "rev:xxx" ou "revscr:xxx")
|
||||
8. une chaîne répétée (format : "repeat:nombre,chaîne")
|
||||
9. longueur d'une chaîne (format : "length:xxx" ou "lengthscr:xxx")
|
||||
10. une couleur (format : "color:xxx", voir la "Référence API extension", fonction "color")
|
||||
11. un modificateur (format : "modifier:nom,données,chaîne")
|
||||
12. une info (format : "info:nom,paramètres", les paramètres sont optionnels)
|
||||
13. une chaîne encodée/decodée en base 16, 32 ou 64 (format : "base_encode:base,xxx" ou "base_decode:base,xxx")
|
||||
14. la date/heure courante (format : "date" ou "date:format")
|
||||
15. une variable d'environnement (format : "env:XXX")
|
||||
16. un opérateur ternaire (format : "if:condition?valeur_si_vrai:valeur_si_faux")
|
||||
17. le résultat d'une expression avec parenthèses et les opérateurs + - * / // % ** (format: "calc:xxx")
|
||||
18. une chaîne traduite (format : "translate:xxx")
|
||||
19. une option (format : "fichier.section.option")
|
||||
20. une variable locale du tampon
|
||||
21. un hdata/variable (la valeur est automatiquement convertie en chaîne), par défaut "window" et "buffer" pointent vers la fenêtre et le tampon courants.
|
||||
8. une chaîne inversée (format : "rev:xxx" ou "revscr:xxx")
|
||||
9. une chaîne répétée (format : "repeat:nombre,chaîne")
|
||||
10. longueur d'une chaîne (format : "length:xxx" ou "lengthscr:xxx")
|
||||
11. découpage d'une chaîne (format : "split:nombre,séparateurs,flags,xxx")
|
||||
12. découpage de paramètres shell (format : "split_shell:nombre,xxx")
|
||||
13. une couleur (format : "color:xxx", voir la "Référence API extension", fonction "color")
|
||||
14. un modificateur (format : "modifier:nom,données,chaîne")
|
||||
15. une info (format : "info:nom,paramètres", les paramètres sont optionnels)
|
||||
16. une chaîne encodée/decodée en base 16, 32 ou 64 (format : "base_encode:base,xxx" ou "base_decode:base,xxx")
|
||||
17. la date/heure courante (format : "date" ou "date:format")
|
||||
18. une variable d'environnement (format : "env:XXX")
|
||||
19. un opérateur ternaire (format : "if:condition?valeur_si_vrai:valeur_si_faux")
|
||||
20. le résultat d'une expression avec parenthèses et les opérateurs + - * / // % ** (format : "calc:xxx")
|
||||
21. un nombre entier aléatoire (format : "random:min,max")
|
||||
22. une chaîne traduite (format : "translate:xxx")
|
||||
23. déclaration d'une variable utilisateur (format : "define:nom,valeur")
|
||||
24. une option (format : "fichier.section.option")
|
||||
25. une variable locale du tampon
|
||||
26. un hdata/variable (la valeur est automatiquement convertie en chaîne), par défaut "window" et "buffer" pointent vers la fenêtre et le tampon courants.
|
||||
Le format du hdata peut être le suivant :
|
||||
hdata.var1.var2... : démarrer avec un hdata (le pointeur doit être connu), et demander les variables l'une après l'autre (d'autres hdata peuvent être suivis)
|
||||
hdata[liste].var1.var2... : démarrer avec un hdata en utilisant une liste/pointeur/nom de pointeur, par exemple :
|
||||
@@ -1374,29 +1441,39 @@ Le format du hdata peut être le suivant :
|
||||
Pour le nom du hdata et des variables, voir la "Référence API extension", fonction "weechat_hdata_get".
|
||||
|
||||
Exemples (chaînes simples) :
|
||||
/eval -n ${raw:${info:version}} ==> ${info:version}
|
||||
/eval -n ${eval_cond:${window.win_width}>100} ==> 1
|
||||
/eval -n ${info:version} ==> 0.4.3
|
||||
/eval -n ${env:HOME} ==> /home/user
|
||||
/eval -n ${weechat.look.scroll_amount} ==> 3
|
||||
/eval -n ${sec.data.password} ==> secret
|
||||
/eval -n ${window} ==> 0x2549aa0
|
||||
/eval -n ${window.buffer} ==> 0x2549320
|
||||
/eval -n ${window.buffer.full_name} ==> core.weechat
|
||||
/eval -n ${window.buffer.number} ==> 1
|
||||
/eval -n ${\t} ==> <tab>
|
||||
/eval -n ${hide:-,${relay.network.password}} ==> --------
|
||||
/eval -n ${cut:3,+,test} ==> tes+
|
||||
/eval -n ${cut:+3,+,test} ==> te+
|
||||
/eval -n ${date:%H:%M:%S} ==> 07:46:40
|
||||
/eval -n ${if:${info:term_width}>80?big:small} ==> big
|
||||
/eval -n ${rev:Hello} ==> olleH
|
||||
/eval -n ${repeat:5,-} ==> -----
|
||||
/eval -n ${length:test} ==> 4
|
||||
/eval -n ${calc:(5+2)*3} ==> 21
|
||||
/eval -n ${base_encode:64,test} ==> dGVzdA==
|
||||
/eval -n ${base_decode:64,dGVzdA==} ==> test
|
||||
/eval -n ${translate:Plugin} ==> Extension
|
||||
/eval -n ${raw:${info:version}} ==> ${info:version}
|
||||
/eval -n ${eval_cond:${window.win_width}>100} ==> 1
|
||||
/eval -n ${info:version} ==> 0.4.3
|
||||
/eval -n ${env:HOME} ==> /home/user
|
||||
/eval -n ${weechat.look.scroll_amount} ==> 3
|
||||
/eval -n ${sec.data.password} ==> secret
|
||||
/eval -n ${window} ==> 0x2549aa0
|
||||
/eval -n ${window.buffer} ==> 0x2549320
|
||||
/eval -n ${window.buffer.full_name} ==> core.weechat
|
||||
/eval -n ${window.buffer.number} ==> 1
|
||||
/eval -n ${\t} ==> <tab>
|
||||
/eval -n ${hide:-,${relay.network.password}} ==> --------
|
||||
/eval -n ${cut:3,+,test} ==> tes+
|
||||
/eval -n ${cut:+3,+,test} ==> te+
|
||||
/eval -n ${date:%H:%M:%S} ==> 07:46:40
|
||||
/eval -n ${if:${info:term_width}>80?big:small} ==> big
|
||||
/eval -n ${rev:Hello} ==> olleH
|
||||
/eval -n ${repeat:5,-} ==> -----
|
||||
/eval -n ${length:test} ==> 4
|
||||
/eval -n ${split:1,,,abc,def,ghi} ==> abc
|
||||
/eval -n ${split:-1,,,abc,def,ghi} ==> ghi
|
||||
/eval -n ${split:count,,,abc,def,ghi} ==> 3
|
||||
/eval -n ${split:random,,,abc,def,ghi} ==> def
|
||||
/eval -n ${split_shell:1,"arg 1" arg2} ==> arg 1
|
||||
/eval -n ${split_shell:-1,"arg 1" arg2} ==> arg2
|
||||
/eval -n ${split_shell:count,"arg 1" arg2} ==> 2
|
||||
/eval -n ${split_shell:random,"arg 1" arg2} ==> arg2
|
||||
/eval -n ${calc:(5+2)*3} ==> 21
|
||||
/eval -n ${random:0,10} ==> 3
|
||||
/eval -n ${base_encode:64,test} ==> dGVzdA==
|
||||
/eval -n ${base_decode:64,dGVzdA==} ==> test
|
||||
/eval -n ${translate:Plugin} ==> Extension
|
||||
/eval -n ${define:len,${calc:5+3}}${len}x${len} ==> 8x8
|
||||
|
||||
Exemples (conditions) :
|
||||
/eval -n -c ${window.buffer.number} > 2 ==> 0
|
||||
@@ -1549,6 +1626,9 @@ liste des actions :
|
||||
jump_previously_visited_buffer : sauter au tampon visité précédemment
|
||||
jump_next_visited_buffer : sauter au tampon visité après
|
||||
hotlist_clear : effacer la hotlist (paramètre facultatif : "lowest" pour effacer seulement le plus petit niveau dans la hotlist, "highest" pour effacer seulement le niveau le plus haut dans la hotlist, ou un masque de niveaux : entier qui est une combinaison de 1=join/part, 2=message, 4=privé, 8=highlight)
|
||||
hotlist_remove_buffer : supprimer le tampon courant de la hotlist
|
||||
hotlist_restore_buffer : restaurer la dernière hotlist supprimée dans le tampon courant
|
||||
hotlist_restore_all : restaurer la dernière hotlist supprimée dans tous les tampons
|
||||
grab_key : capturer une touche (paramètre facultatif : délai pour la fin de la capture, par défaut 500 millisecondes)
|
||||
grab_key_command : capturer une touche avec sa commande associée (paramètre facultatif : délai pour la fin de la capture, par défaut 500 millisecondes)
|
||||
grab_mouse : capturer un évènement de la souris
|
||||
@@ -1586,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
|
||||
@@ -1644,6 +1724,8 @@ windows : stocker/appliquer seulement pour les fenêtres (le tampon affiché pa
|
||||
Sans paramètre, cette commande affiche les dispositions stockées.
|
||||
|
||||
La disposition courante peut être sauvegardée sur la commande /quit avec l'option "weechat.look.save_layout_on_exit".
|
||||
|
||||
Note : la disposition se souvient seulement de la division des fenêtres et des numéros de tampons. Elle n'ouvre pas les tampons. Cela signifie par exemple que vous devez toujours automatiquement rejoindre les canaux IRC pour ouvrir les tampons, la disposition sauvée ne s'applique qu'une fois les tampons ouverts.
|
||||
----
|
||||
|
||||
[[command_weechat_mouse]]
|
||||
@@ -1693,21 +1775,26 @@ Exemples :
|
||||
* `+plugin+`: lister/charger/décharger des extensions
|
||||
|
||||
----
|
||||
/plugin list|listfull [<nom>]
|
||||
/plugin list [-o|-ol|-i|-il|<nom>]
|
||||
listfull [<nom>]
|
||||
load <fichier> [<paramètres>]
|
||||
autoload [<paramètres>]
|
||||
reload [<nom>|* [<paramètres]]
|
||||
unload [<nom>]
|
||||
|
||||
list : lister les extensions chargées
|
||||
-o : envoyer la liste des extensions chargées au tampon (chaîne en anglais)
|
||||
-ol : envoyer la liste des extensions chargées au tampon (chaîne traduite)
|
||||
-i : copier la liste des extensions chargées dans la ligne de commande (pour envoi au tampon) (chaîne en anglais)
|
||||
-il : copier la liste des extensions chargées dans la ligne de commande (pour envoi au tampon) (chaîne traduite)
|
||||
nom : nom d'extension
|
||||
listfull : lister les extensions chargées (verbeux)
|
||||
load : charger une extension
|
||||
fichier : extension (fichier) à charger
|
||||
paramètres : paramètres donnés à l'extension lors de son chargement
|
||||
autoload : charger automatiquement les extensions dans un répertoire système ou utilisateur
|
||||
reload : recharger une extension (si pas de nom donné, décharger toutes les extensions, puis recharger automatiquement les extensions)
|
||||
unload : décharger une extension (si pas de nom donné, décharger toutes les extensions)
|
||||
fichier : extension (fichier) à charger
|
||||
nom : nom d'extension
|
||||
paramètres : paramètres donnés à l'extension lors de son chargement
|
||||
|
||||
Sans paramètre, cette commande liste les extensions chargées.
|
||||
----
|
||||
@@ -1935,6 +2022,32 @@ Exemples :
|
||||
/set env ABC ""
|
||||
----
|
||||
|
||||
[[command_weechat_toggle]]
|
||||
* `+toggle+`: basculer la valeur d'une option de configuration
|
||||
|
||||
----
|
||||
/toggle <option> [<valeur> [<valeur>...]]
|
||||
|
||||
option : nom d'une option
|
||||
valeur : valeurs possibles pour l'option (les valeurs sont découpées comme le les paramètres d'une commande par le shell : des guillemets peuvent être utilisés pour préserver les espaces au début et à la fin des valeurs)
|
||||
|
||||
Comportement :
|
||||
- seule une option de type booléen ou chaîne peut être basculée sans valeur :
|
||||
- booléen : basculer on/off selon la valeur courante
|
||||
- chaîne : basculer entre chaîne vide et la valeur par défaut (fonctionne seulement si une chaîne vide est autorisée pour l'option)
|
||||
- avec une seule valeur donnée, basculer entre cette valeur et la valeur par défaut de l'option
|
||||
- avec plusieurs valeurs données, basculer entre les valeurs : la valeur utilisée est celle qui suit la valeur courante de l'option ; si la valeur courante n'est pas dans la liste, la première valeur de la liste est utilisée
|
||||
- la valeur spéciale "null" peut être donnée, mais seulement comme première valeur dans la liste et sans guillemets autour.
|
||||
|
||||
Exemples :
|
||||
basculer l'affichage de l'heure dans la zone de discussion (sans afficher la nouvelle valeur utilisée) :
|
||||
/mute /toggle weechat.look.buffer_time_format
|
||||
basculer le format de l'heure dans la zone de discussion (avec secondes, sans secondes, désactivé) :
|
||||
/toggle weechat.look.buffer_time_format "%H:%M:%S" "%H:%M" ""
|
||||
basculer le "join" automatique du canal #weechat sur le serveur libera :
|
||||
/toggle irc.server.libera.autojoin null #weechat
|
||||
----
|
||||
|
||||
[[command_weechat_unset]]
|
||||
* `+unset+`: supprimer/réinitialiser des options de configuration
|
||||
|
||||
|
||||
@@ -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
|
||||
@@ -1845,6 +1839,50 @@
|
||||
** valeur par défaut: `+"${weechat_runtime_dir}/weechat_fifo_${info:pid}"+`
|
||||
// end::fifo_options[]
|
||||
|
||||
// tag::typing_options[]
|
||||
* [[option_typing.look.delay_purge_paused]] *typing.look.delay_purge_paused*
|
||||
** description: pass:none[nombre de secondes après que le statut "paused" ait été défini : si atteint, le statut d'écriture est supprimé]
|
||||
** type: entier
|
||||
** valeurs: 1 .. 2147483647
|
||||
** valeur par défaut: `+30+`
|
||||
|
||||
* [[option_typing.look.delay_purge_typing]] *typing.look.delay_purge_typing*
|
||||
** description: pass:none[nombre de secondes après que le statut "typing" ait été défini : si atteint, le statut d'écriture est supprimé]
|
||||
** type: entier
|
||||
** valeurs: 1 .. 2147483647
|
||||
** valeur par défaut: `+6+`
|
||||
|
||||
* [[option_typing.look.delay_set_paused]] *typing.look.delay_set_paused*
|
||||
** description: pass:none[nombre de secondes après avoir tapé le dernier caractère : si atteint, le statut d'écriture devient "paused" et il n'y a plus de signaux typing envoyés]
|
||||
** type: entier
|
||||
** valeurs: 1 .. 2147483647
|
||||
** valeur par défaut: `+10+`
|
||||
|
||||
* [[option_typing.look.enabled_nicks]] *typing.look.enabled_nicks*
|
||||
** description: pass:none[activer le statut d'écriture pour les autres pseudos (afficher le statut d'écriture pour les autres pseudos écrivant un message dans le tampon courant)]
|
||||
** type: booléen
|
||||
** valeurs: on, off
|
||||
** valeur par défaut: `+off+`
|
||||
|
||||
* [[option_typing.look.enabled_self]] *typing.look.enabled_self*
|
||||
** description: pass:none[activer le statut d'écriture pour ses propres messages (envoyer l'information aux autres utilisateurs)]
|
||||
** type: booléen
|
||||
** valeurs: on, off
|
||||
** valeur par défaut: `+off+`
|
||||
|
||||
* [[option_typing.look.input_min_chars]] *typing.look.input_min_chars*
|
||||
** description: pass:none[nombre minimum de caractères dans le message pour déclencher l'envoi des signaux typing]
|
||||
** type: entier
|
||||
** valeurs: 1 .. 2147483647
|
||||
** valeur par défaut: `+4+`
|
||||
|
||||
* [[option_typing.look.item_max_length]] *typing.look.item_max_length*
|
||||
** description: pass:none[nombre maximum de caractères affichés dans l'objet de barre "typing" (0 = ne pas tronquer le contenu)]
|
||||
** type: entier
|
||||
** valeurs: 0 .. 2147483647
|
||||
** valeur par défaut: `+0+`
|
||||
// end::typing_options[]
|
||||
|
||||
// tag::xfer_options[]
|
||||
* [[option_xfer.color.status_aborted]] *xfer.color.status_aborted*
|
||||
** description: pass:none[couleur du texte pour le statut "interrompu"]
|
||||
@@ -2214,6 +2252,12 @@
|
||||
** valeurs: toute chaîne
|
||||
** valeur par défaut: `+"%a, %d %b %Y %T %z"+`
|
||||
|
||||
* [[option_irc.look.display_account_message]] *irc.look.display_account_message*
|
||||
** description: pass:none[afficher les messages ACCOUNT reçus quand la capacité account-notify est activée]
|
||||
** type: booléen
|
||||
** valeurs: on, off
|
||||
** valeur par défaut: `+on+`
|
||||
|
||||
* [[option_irc.look.display_away]] *irc.look.display_away*
|
||||
** description: pass:none[afficher un message pour l'absence/retour (off : ne rien afficher/envoyer, local : afficher en local, channel : envoyer l'action aux canaux)]
|
||||
** type: entier
|
||||
@@ -2238,6 +2282,12 @@
|
||||
** valeurs: on, off
|
||||
** valeur par défaut: `+on+`
|
||||
|
||||
* [[option_irc.look.display_extended_join]] *irc.look.display_extended_join*
|
||||
** description: pass:none[afficher les informations supplémentaires sur les messages JOIN : nom de compte et nom réel (la capacité extended-join doit être activée)]
|
||||
** type: booléen
|
||||
** valeurs: on, off
|
||||
** valeur par défaut: `+on+`
|
||||
|
||||
* [[option_irc.look.display_host_join]] *irc.look.display_host_join*
|
||||
** description: pass:none[afficher le nom d'hôte dans les messages join]
|
||||
** type: booléen
|
||||
@@ -2508,6 +2558,18 @@
|
||||
** valeurs: on, off
|
||||
** valeur par défaut: `+off+`
|
||||
|
||||
* [[option_irc.look.typing_status_nicks]] *irc.look.typing_status_nicks*
|
||||
** description: pass:none[afficher les pseudos qui écrivent sur le canal dans l'objet de barre "typing" (l'option typing.look.enabled_nicks doit être activée et la capacité "message-tags" doit être activée sur le serveur)]
|
||||
** type: booléen
|
||||
** valeurs: on, off
|
||||
** valeur par défaut: `+off+`
|
||||
|
||||
* [[option_irc.look.typing_status_self]] *irc.look.typing_status_self*
|
||||
** description: pass:none[envoyer le statut d'écriture de message aux canaux de sorte que les autres utilisateurs voient quand vous écrivez un message (l'option typing.look.enabled_self doit être activée et la capacité "message-tags" doit être activée sur le serveur)]
|
||||
** type: booléen
|
||||
** valeurs: on, off
|
||||
** valeur par défaut: `+off+`
|
||||
|
||||
* [[option_irc.network.autoreconnect_delay_growing]] *irc.network.autoreconnect_delay_growing*
|
||||
** description: pass:none[facteur de croissance du délai d'auto-reconnexion au serveur (1 = toujours le même délai, 2 = délai*2 pour chaque tentative, etc.)]
|
||||
** type: entier
|
||||
@@ -2628,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
|
||||
@@ -2665,10 +2733,10 @@
|
||||
** valeur par défaut: `+25+`
|
||||
|
||||
* [[option_irc.server_default.capabilities]] *irc.server_default.capabilities*
|
||||
** description: pass:none[liste séparée par des virgules de capacités client ("client capabilities") à activer sur le serveur si elles sont disponibles (voir /help cap pour la liste des capacités supportées par WeeChat) (exemple : "away-notify,multi-prefix")]
|
||||
** description: pass:none[liste séparée par des virgules de capacités client ("client capabilities") à activer sur le serveur si elles sont disponibles (voir /help cap pour la liste des capacités supportées par WeeChat) ; "*" active toutes les capacités par défaut (supportées par le serveur et WeeChat) ; le caractère joker "*" est autorisé ; une capacité commençant par "!" est exclue (exemple : "*,!account-*,!extended-join")]
|
||||
** type: chaîne
|
||||
** valeurs: toute chaîne
|
||||
** valeur par défaut: `+""+`
|
||||
** valeur par défaut: `+"*"+`
|
||||
|
||||
* [[option_irc.server_default.charset_message]] *irc.server_default.charset_message*
|
||||
** description: pass:none[partie du message IRC (reçu ou envoyé) qui est décodé/encode vers le jeu de caractères cible ; message = le message IRC entier (par défaut), channel = à partir du nom du canal seulement (si trouvé, sinon à partir du texte), text = à partir du texte seulement (vous devriez essayer cette valeur si vous avec des problèmes d'encodage avec le nom du canal)]
|
||||
@@ -2770,7 +2838,7 @@
|
||||
** description: pass:none[action à effectuer si l'authentification SASL échoue : "continue" pour ignorer le problème d'authentification, "reconnect" pour planifier une reconnexion au serveur, "disconnect" pour se déconnecter du serveur (voir aussi l'option irc.network.sasl_fail_unavailable)]
|
||||
** type: entier
|
||||
** valeurs: continue, reconnect, disconnect
|
||||
** valeur par défaut: `+continue+`
|
||||
** valeur par défaut: `+reconnect+`
|
||||
|
||||
* [[option_irc.server_default.sasl_key]] *irc.server_default.sasl_key*
|
||||
** description: pass:none[fichier avec la clé privée ECC pour le mécanisme "ecdsa-nist256p-challenge" (le chemin est évalué, voir la fonction string_eval_path_home dans la référence API extension)]
|
||||
@@ -2779,9 +2847,9 @@
|
||||
** valeur par défaut: `+""+`
|
||||
|
||||
* [[option_irc.server_default.sasl_mechanism]] *irc.server_default.sasl_mechanism*
|
||||
** description: pass:none[mécanisme pour l'authentification SASL : "plain" pour un mot de passe en clair, "scram-sha-1" pour une authentification SCRAM avec algorithme de hachage SHA-1, "scram-sha-256" pour une authentification SCRAM avec algorithme de hachage SHA-256, "scram-sha-512" pour une authentification SCRAM avec algorithme de hachage SHA-512, "ecdsa-nist256p-challenge" pour une authentification par challenge avec clé, "external" pour une authentification en utilisant un certificat SSL côté client, "dh-blowfish" pour un mot de passe chiffré avec blowfish (non sûr, non recommandé), "dh-aes" pour un mot de passe chiffré avec AES (non sûr, non recommandé)]
|
||||
** description: pass:none[mécanisme pour l'authentification SASL : "plain" pour un mot de passe en clair, "scram-sha-1" pour une authentification SCRAM avec algorithme de hachage SHA-1, "scram-sha-256" pour une authentification SCRAM avec algorithme de hachage SHA-256, "scram-sha-512" pour une authentification SCRAM avec algorithme de hachage SHA-512, "ecdsa-nist256p-challenge" pour une authentification par challenge avec clé, "external" pour une authentification en utilisant un certificat SSL côté client]
|
||||
** type: entier
|
||||
** valeurs: plain, scram-sha-1, scram-sha-256, scram-sha-512, ecdsa-nist256p-challenge, external, dh-blowfish, dh-aes
|
||||
** valeurs: plain, scram-sha-1, scram-sha-256, scram-sha-512, ecdsa-nist256p-challenge, external
|
||||
** valeur par défaut: `+plain+`
|
||||
|
||||
* [[option_irc.server_default.sasl_password]] *irc.server_default.sasl_password*
|
||||
@@ -2996,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)]
|
||||
@@ -3075,34 +3143,6 @@
|
||||
** valeur par défaut: `+""+`
|
||||
// end::relay_options[]
|
||||
|
||||
// tag::javascript_options[]
|
||||
* [[option_javascript.look.check_license]] *javascript.look.check_license*
|
||||
** description: pass:none[vérifier la licence des scripts quand ils sont chargés : si la licence est différente de la licence de l'extension, un avertissement est affiché]
|
||||
** type: booléen
|
||||
** valeurs: on, off
|
||||
** valeur par défaut: `+off+`
|
||||
|
||||
* [[option_javascript.look.eval_keep_context]] *javascript.look.eval_keep_context*
|
||||
** description: pass:none[garder le contexte entre deux appels à l'évaluation de code source (option "eval" de la commande de script ou info "%s_eval") ; un script caché est utilisé pour évaluer le code du script ; si cette option est désactivée, ce script caché est déchargé après chaque eval ; cela utilise moins de mémoire, mais est plus lent]
|
||||
** type: booléen
|
||||
** valeurs: on, off
|
||||
** valeur par défaut: `+on+`
|
||||
// end::javascript_options[]
|
||||
|
||||
// tag::ruby_options[]
|
||||
* [[option_ruby.look.check_license]] *ruby.look.check_license*
|
||||
** description: pass:none[vérifier la licence des scripts quand ils sont chargés : si la licence est différente de la licence de l'extension, un avertissement est affiché]
|
||||
** type: booléen
|
||||
** valeurs: on, off
|
||||
** valeur par défaut: `+off+`
|
||||
|
||||
* [[option_ruby.look.eval_keep_context]] *ruby.look.eval_keep_context*
|
||||
** description: pass:none[garder le contexte entre deux appels à l'évaluation de code source (option "eval" de la commande de script ou info "%s_eval") ; un script caché est utilisé pour évaluer le code du script ; si cette option est désactivée, ce script caché est déchargé après chaque eval ; cela utilise moins de mémoire, mais est plus lent]
|
||||
** type: booléen
|
||||
** valeurs: on, off
|
||||
** valeur par défaut: `+on+`
|
||||
// end::ruby_options[]
|
||||
|
||||
// tag::guile_options[]
|
||||
* [[option_guile.look.check_license]] *guile.look.check_license*
|
||||
** description: pass:none[vérifier la licence des scripts quand ils sont chargés : si la licence est différente de la licence de l'extension, un avertissement est affiché]
|
||||
@@ -3117,19 +3157,33 @@
|
||||
** valeur par défaut: `+on+`
|
||||
// end::guile_options[]
|
||||
|
||||
// tag::tcl_options[]
|
||||
* [[option_tcl.look.check_license]] *tcl.look.check_license*
|
||||
// tag::javascript_options[]
|
||||
* [[option_javascript.look.check_license]] *javascript.look.check_license*
|
||||
** description: pass:none[vérifier la licence des scripts quand ils sont chargés : si la licence est différente de la licence de l'extension, un avertissement est affiché]
|
||||
** type: booléen
|
||||
** valeurs: on, off
|
||||
** valeur par défaut: `+off+`
|
||||
|
||||
* [[option_tcl.look.eval_keep_context]] *tcl.look.eval_keep_context*
|
||||
* [[option_javascript.look.eval_keep_context]] *javascript.look.eval_keep_context*
|
||||
** description: pass:none[garder le contexte entre deux appels à l'évaluation de code source (option "eval" de la commande de script ou info "%s_eval") ; un script caché est utilisé pour évaluer le code du script ; si cette option est désactivée, ce script caché est déchargé après chaque eval ; cela utilise moins de mémoire, mais est plus lent]
|
||||
** type: booléen
|
||||
** valeurs: on, off
|
||||
** valeur par défaut: `+on+`
|
||||
// end::tcl_options[]
|
||||
// end::javascript_options[]
|
||||
|
||||
// tag::lua_options[]
|
||||
* [[option_lua.look.check_license]] *lua.look.check_license*
|
||||
** description: pass:none[vérifier la licence des scripts quand ils sont chargés : si la licence est différente de la licence de l'extension, un avertissement est affiché]
|
||||
** type: booléen
|
||||
** valeurs: on, off
|
||||
** valeur par défaut: `+off+`
|
||||
|
||||
* [[option_lua.look.eval_keep_context]] *lua.look.eval_keep_context*
|
||||
** description: pass:none[garder le contexte entre deux appels à l'évaluation de code source (option "eval" de la commande de script ou info "%s_eval") ; un script caché est utilisé pour évaluer le code du script ; si cette option est désactivée, ce script caché est déchargé après chaque eval ; cela utilise moins de mémoire, mais est plus lent]
|
||||
** type: booléen
|
||||
** valeurs: on, off
|
||||
** valeur par défaut: `+on+`
|
||||
// end::lua_options[]
|
||||
|
||||
// tag::perl_options[]
|
||||
* [[option_perl.look.check_license]] *perl.look.check_license*
|
||||
@@ -3159,20 +3213,6 @@
|
||||
** valeur par défaut: `+on+`
|
||||
// end::php_options[]
|
||||
|
||||
// tag::lua_options[]
|
||||
* [[option_lua.look.check_license]] *lua.look.check_license*
|
||||
** description: pass:none[vérifier la licence des scripts quand ils sont chargés : si la licence est différente de la licence de l'extension, un avertissement est affiché]
|
||||
** type: booléen
|
||||
** valeurs: on, off
|
||||
** valeur par défaut: `+off+`
|
||||
|
||||
* [[option_lua.look.eval_keep_context]] *lua.look.eval_keep_context*
|
||||
** description: pass:none[garder le contexte entre deux appels à l'évaluation de code source (option "eval" de la commande de script ou info "%s_eval") ; un script caché est utilisé pour évaluer le code du script ; si cette option est désactivée, ce script caché est déchargé après chaque eval ; cela utilise moins de mémoire, mais est plus lent]
|
||||
** type: booléen
|
||||
** valeurs: on, off
|
||||
** valeur par défaut: `+on+`
|
||||
// end::lua_options[]
|
||||
|
||||
// tag::python_options[]
|
||||
* [[option_python.look.check_license]] *python.look.check_license*
|
||||
** description: pass:none[vérifier la licence des scripts quand ils sont chargés : si la licence est différente de la licence de l'extension, un avertissement est affiché]
|
||||
@@ -3187,6 +3227,34 @@
|
||||
** valeur par défaut: `+on+`
|
||||
// end::python_options[]
|
||||
|
||||
// tag::ruby_options[]
|
||||
* [[option_ruby.look.check_license]] *ruby.look.check_license*
|
||||
** description: pass:none[vérifier la licence des scripts quand ils sont chargés : si la licence est différente de la licence de l'extension, un avertissement est affiché]
|
||||
** type: booléen
|
||||
** valeurs: on, off
|
||||
** valeur par défaut: `+off+`
|
||||
|
||||
* [[option_ruby.look.eval_keep_context]] *ruby.look.eval_keep_context*
|
||||
** description: pass:none[garder le contexte entre deux appels à l'évaluation de code source (option "eval" de la commande de script ou info "%s_eval") ; un script caché est utilisé pour évaluer le code du script ; si cette option est désactivée, ce script caché est déchargé après chaque eval ; cela utilise moins de mémoire, mais est plus lent]
|
||||
** type: booléen
|
||||
** valeurs: on, off
|
||||
** valeur par défaut: `+on+`
|
||||
// end::ruby_options[]
|
||||
|
||||
// tag::tcl_options[]
|
||||
* [[option_tcl.look.check_license]] *tcl.look.check_license*
|
||||
** description: pass:none[vérifier la licence des scripts quand ils sont chargés : si la licence est différente de la licence de l'extension, un avertissement est affiché]
|
||||
** type: booléen
|
||||
** valeurs: on, off
|
||||
** valeur par défaut: `+off+`
|
||||
|
||||
* [[option_tcl.look.eval_keep_context]] *tcl.look.eval_keep_context*
|
||||
** description: pass:none[garder le contexte entre deux appels à l'évaluation de code source (option "eval" de la commande de script ou info "%s_eval") ; un script caché est utilisé pour évaluer le code du script ; si cette option est désactivée, ce script caché est déchargé après chaque eval ; cela utilise moins de mémoire, mais est plus lent]
|
||||
** type: booléen
|
||||
** valeurs: on, off
|
||||
** valeur par défaut: `+on+`
|
||||
// end::tcl_options[]
|
||||
|
||||
// tag::script_options[]
|
||||
* [[option_script.color.status_autoloaded]] *script.color.status_autoloaded*
|
||||
** description: pass:none[couleur du statut "chargé auto" ("a")]
|
||||
|
||||
@@ -88,6 +88,9 @@ $HOME/.config/weechat/tcl.conf::
|
||||
$HOME/.config/weechat/trigger.conf::
|
||||
fichier de configuration pour l'extension _trigger_
|
||||
|
||||
$HOME/.config/weechat/typing.conf::
|
||||
fichier de configuration pour l'extension _typing_
|
||||
|
||||
$HOME/.config/weechat/xfer.conf::
|
||||
fichier de configuration pour l'extension _xfer_
|
||||
|
||||
@@ -99,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
|
||||
|
||||
+226
-119
@@ -91,6 +91,7 @@ Les répertoires principaux de WeeChat sont :
|
||||
| spell/ | Extension Spell.
|
||||
| tcl/ | API script Tcl.
|
||||
| trigger/ | Extension Trigger.
|
||||
| typing/ | Extension Typing.
|
||||
| xfer/ | Extension Xfer (IRC DCC fichier/discussion).
|
||||
| tests/ | Tests.
|
||||
| scripts/ | Tests de l'API script.
|
||||
@@ -285,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, ...).
|
||||
@@ -296,6 +298,8 @@ Le cœur de WeeChat est situé dans les répertoires suivants :
|
||||
| irc-redirect.c | Redirection de la sortie des commandes IRC.
|
||||
| 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).
|
||||
@@ -365,6 +369,11 @@ Le cœur de WeeChat est situé dans les répertoires suivants :
|
||||
| trigger-command.c | Commandes pour Trigger.
|
||||
| trigger-completion.c | Complétions pour Trigger.
|
||||
| trigger-config.c | Options de configuration pour Trigger (fichier trigger.conf).
|
||||
| typing/ | Extension Typing.
|
||||
| typing.c | Fonctions principales de Typing.
|
||||
| typing-bar-item.c | Objets de barre Typing.
|
||||
| typing-config.c | Options de configuration pour Typing (fichier typing.conf).
|
||||
| typing-status.c | Statut d'écriture de messages sur les tampons.
|
||||
| xfer/ | Extension Xfer (IRC DCC fichier/discussion).
|
||||
| xfer.c | Fonctions principales de Xfer.
|
||||
| xfer-buffer.c | Tampon Xfer.
|
||||
@@ -384,54 +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-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.
|
||||
| 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]]
|
||||
@@ -453,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 !).
|
||||
@@ -499,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.
|
||||
*
|
||||
@@ -540,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.
|
||||
@@ -573,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 ()
|
||||
@@ -593,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)
|
||||
{
|
||||
@@ -604,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.
|
||||
@@ -648,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)
|
||||
{
|
||||
@@ -672,7 +693,7 @@ else
|
||||
|
||||
* Indentez les `switch` comme ceci :
|
||||
|
||||
[source,C]
|
||||
[source,c]
|
||||
----
|
||||
switch (string[0])
|
||||
{
|
||||
@@ -691,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);
|
||||
|
||||
@@ -773,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
|
||||
{
|
||||
@@ -803,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 */
|
||||
@@ -823,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.
|
||||
@@ -861,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
|
||||
{
|
||||
@@ -876,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 */
|
||||
@@ -892,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
|
||||
@@ -912,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]
|
||||
@@ -1072,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,
|
||||
@@ -1085,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) \
|
||||
@@ -1096,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,
|
||||
@@ -1120,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 :
|
||||
|
||||
@@ -1213,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
|
||||
@@ -1230,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>>
|
||||
|
||||
@@ -544,7 +544,7 @@ Vous pouvez simplement désactiver le mode "bracketed paste" :
|
||||
=== Comment puis-je personnaliser l'affichage pour un tout petit terminal (comme 80x25), pour ne pas perdre de place ?
|
||||
|
||||
Vous pouvez retirer les barres latérales (buflist et nicklist), changer le format
|
||||
de l'heure pour n'afficher que les heures et les secondes, désactiver l'alignement
|
||||
de l'heure pour n'afficher que les heures et les minutes, désactiver l'alignement
|
||||
des messages et définir un caractère de préfixe/suffixe pour les pseudos :
|
||||
|
||||
----
|
||||
@@ -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 ?
|
||||
|
||||
|
||||
+1697
-1480
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_
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user