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

Compare commits

..

3 Commits

Author SHA1 Message Date
Sébastien Helleu 4dfc137191 core: add CVE id in ChangeLog 2021-09-05 20:53:31 +02:00
Sébastien Helleu 3e180a3c90 Version 3.2.1 2021-09-04 13:16:44 +02:00
Sébastien Helleu 8b1331f98d relay: fix crash when decoding a malformed websocket frame 2021-09-04 11:39:22 +02:00
765 changed files with 37823 additions and 121257 deletions
+12 -102
View File
@@ -4,20 +4,17 @@ 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:
tests_linux:
build:
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" }
@@ -25,9 +22,6 @@ 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
@@ -36,10 +30,12 @@ jobs:
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 }}
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 -H pip3 install --ignore-installed msgcheck
- name: Test patches
run: ./tools/build-debian.sh test-patches
- name: Check gettext files
run: msgcheck po/*.po
@@ -47,12 +43,9 @@ jobs:
run: |
pylint --additional-builtins=_ doc/docgen.py
pylint doc/python_stub.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 -
pylint tests/scripts/python/testapigen.py
pylint tests/scripts/python/testapi.py
pylint tests/scripts/python/unparse.py
- name: Build and run tests
env:
@@ -71,7 +64,7 @@ jobs:
weechat --colors
weechat --license
weechat --version
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
weechat --temp-dir --run-command "/debug dirs;/debug libs" --run-command "/quit"
- name: Code coverage
if: ${{ matrix.config.name == 'cmake_gcc_coverage' }}
@@ -83,86 +76,3 @@ 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"
+1 -3
View File
@@ -11,9 +11,7 @@ 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 <soltys@soltys.info>
Krzysztof Korościk <soltys@soltys.info> <soltys1@gmail.com>
Krzysztof Korościk <soltys@soltys.info> <soltys@szluug.org>
Krzysztof Korościk <soltys1@gmail.com> <soltys@szluug.org> <soltys@soltys.info>
Marco Paolone <marcopaolone@gmail.com>
<marcopaolone@gmail.com> <marco@DrB4tch.sitecomwl601>
<mikaela.suomalainen@outlook.com> <mkaysi@outlook.com>
+46
View File
@@ -0,0 +1,46 @@
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
+2 -4
View File
@@ -56,7 +56,6 @@ Alphabetically:
* Guido Berhoerster
* Gwenn
* Hasan Kiran (turgay)
* Ivan Pešić
* Ivan Sichmann Freitas
* Jakub Jirutka
* Jan Palus
@@ -131,7 +130,6 @@ Alphabetically:
* Simmo Saan (sim642)
* Simon Arlott
* Simon Kuhnle
* Simon Ser
* Stefano Pigozzi
* Stfn
* Sven Knurr (Cthulhux)
@@ -145,7 +143,6 @@ Alphabetically:
* Trevor Bergeron
* Valentin Lorentz (progval)
* Vasco Almeida
* Victorhck
* Voroskoi
* Wojciech Kwolek
* W. Trevor King
@@ -155,4 +152,5 @@ Alphabetically:
== Contact
See the https://weechat.org/about/support/[support page].
See https://weechat.org/files/doc/devel/weechat_user.en.html#support[user's guide]
or https://weechat.org/about/support
+4 -8
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2021 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 -fms-extensions -Wall -Wextra -Werror-implicit-function-declaration")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsigned-char -fms-extensions -Wall -Wextra")
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")
# version
execute_process(COMMAND ${CMAKE_SOURCE_DIR}/version.sh devel-major OUTPUT_VARIABLE VERSION_MAJOR)
@@ -115,7 +115,6 @@ 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)
@@ -196,10 +195,7 @@ list(APPEND EXTRA_LIBS gnutls)
# Check for zlib
find_package(ZLIB REQUIRED)
# Check for zstd
include(FindPkgConfig)
pkg_check_modules(LIBZSTD REQUIRED libzstd)
add_definitions(-DHAVE_ZLIB)
# Check for iconv
find_package(Iconv)
+1 -1
View File
@@ -671,4 +671,4 @@ into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<https://www.gnu.org/licenses/why-not-lgpl.html>.
<https://www.gnu.org/philosophy/why-not-lgpl.html>.
+444 -594
View File
File diff suppressed because it is too large Load Diff
+6 -5
View File
@@ -29,8 +29,8 @@ please include:
_WeeChat 1.7-dev (git: v1.6-6-g997f47f)_. +
If WeeChat does not start at all, please include the version displayed by
`weechat --help` (or the version installed with your package manager).
* Your *operating system*: its name and version (examples: Linux Debian Bullseye,
FreeBSD 13.0, Windows/Cygwin 64-bit, Windows/Ubuntu 64-bit...).
* Your *operating system*: its name and version (examples: Linux Debian Wheezy,
FreeBSD 10.0, Windows/Cygwin 64-bit, Windows/Ubuntu 64-bit...).
* The *steps to reproduce*: if possible, please include a reproducible example:
explain the steps which led you to the problem. +
It's even better if you can reproduce the problem with a new config (and no
@@ -38,7 +38,8 @@ 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/doc/user#report_crashes[User's guide] for more info).
https://weechat.org/files/doc/devel/weechat_user.en.html#report_crashes[User's guide]
for more info).
* The *actual result*.
* The *expected result*: the correct result you are expecting.
@@ -68,7 +69,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/doc/dev#translations[translations]
https://weechat.org/files/doc/devel/weechat_dev.en.html#translations[translations]
in Developer's guide.
== Feature requests
@@ -84,6 +85,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/doc/dev#coding_rules[coding rules]
https://weechat.org/files/doc/devel/weechat_dev.en.html#coding_rules[coding rules]
in Developer's guide, which contains info about styles used, naming convention
and other useful info.
+1 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2005 Julien Louis <ptitlouis@sysif.net>
# Copyright (C) 2006-2009 Emmanuel Bouthenot <kolter@openics.org>
#
+78 -9
View File
@@ -23,13 +23,13 @@ Homepage: https://weechat.org/
== Features
* *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.
* *Modular chat client*: WeeChat has a lightweight core and optional https://weechat.org/files/doc/stable/weechat_user.en.html#plugins[plugins]. All plugins (including https://weechat.org/files/doc/stable/weechat_user.en.html#irc_plugin[IRC]) are independent and can be unloaded.
* *Multi-platform*: WeeChat runs on GNU/Linux, *BSD, GNU/Hurd, Haiku, macOS and Windows (Bash/Ubuntu and Cygwin).
* *Multi-protocols*: WeeChat is designed to support multiple protocols by plugins, like IRC.
* *Standards-compliant*: the IRC plugin is compliant with RFCs https://tools.ietf.org/html/rfc1459[1459], https://tools.ietf.org/html/rfc2810[2810], https://tools.ietf.org/html/rfc2811[2811], https://tools.ietf.org/html/rfc2812[2812], and https://tools.ietf.org/html/rfc2813[2813].
* *Small, fast, and very light*: the core is and should stay as light and fast as possible.
* *Customizable and extensible*: there are a lot of options to customize WeeChat, and it is extensible with C plugins and https://weechat.org/scripts/[scripts] (https://weechat.org/scripts/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.
* *Standards-compliant*: the IRC plugin is compliant with RFCs https://tools.ietf.org/html/rfc1459[1459], https://tools.ietf.org/html/rfc2810[2810], https://tools.ietf.org/html/rfc2811[2811], https://tools.ietf.org/html/rfc2812[2812] and https://tools.ietf.org/html/rfc2813[2813].
* *Small, fast and very light*: the core is and should stay as light and fast as possible.
* *Customizable and extensible*: there are a lot of options to customize WeeChat, and it is extensible with C plugins and https://weechat.org/scripts/[scripts] (https://weechat.org/scripts/stable/language/perl/[Perl], https://weechat.org/scripts/stable/language/python/[Python], https://weechat.org/scripts/stable/language/ruby[Ruby], https://weechat.org/scripts/stable/language/lua/[Lua], https://weechat.org/scripts/stable/language/tcl/[Tcl], https://weechat.org/scripts/stable/language/guile/[Scheme], https://weechat.org/scripts/stable/language/javascript/[JavaScript] and https://weechat.org/scripts/stable/language/php/[PHP]).
* *Fully documented*: there is comprehensive https://weechat.org/doc/[documentation], which is https://weechat.org/files/doc/stable/weechat_dev.en.html#translations[translated] into several languages.
* *Developed from scratch*: WeeChat was built from scratch and is not based on any other client.
* *Free software*: WeeChat is released under https://www.gnu.org/licenses/gpl-3.0.html[GPLv3].
@@ -37,15 +37,84 @@ 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].
== Installation
== Install
WeeChat can be installed using your favorite package manager (recommended) or by compiling it yourself.
=== Dependencies
For detailed instructions, please check the https://weechat.org/doc/user#install[WeeChat user's guide].
Following packages are *required*:
* CMake
* libncurses
* libcurl
* zlib
* libgcrypt
Following packages are optional:
* for i18n: gettext
* for SSL: gnutls, ca-certificates
* for spell checking: aspell or enchant
* for scripting: python, perl, ruby, lua, tcl, guile, libv8 (javascript), php
* for building doc and man page: asciidoctor
* for building tests: C++ compiler, CppUTest
For a complete list of dependencies and versions recommended, please look at
https://weechat.org/files/doc/devel/weechat_user.en.html#dependencies[user's guide].
=== Compile
WeeChat can be built with https://cmake.org/[CMake] (recommended) or autotools.
[NOTE]
Only CMake is officially supported to build WeeChat. You should only use
autotools if you are not able to use CMake. +
Building with autotools requires more dependencies and is slower than with CMake.
* Installation in system directories (requires _root_ privileges):
----
$ mkdir build
$ cd build
$ cmake ..
$ make
$ sudo make install
----
* Installation in custom directory (for example your home):
----
$ mkdir build
$ cd build
$ cmake .. -DCMAKE_INSTALL_PREFIX=/path/to/directory
$ make
$ make install
----
For more information or installation with autotools, please look at
https://weechat.org/files/doc/devel/weechat_user.en.html#compile_with_autotools[user's guide].
=== Run tests
Following packages are *required* to compile tests:
* libcpputest-dev
* C++ compiler
Tests must be enabled when compiling WeeChat:
----
$ cmake .. -DENABLE_TESTS=ON
----
They can be launched after compilation from the build directory:
----
$ ctest -V
----
== Copyright
Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
This file is part of WeeChat, the extensible chat client.
+259 -427
View File
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -1,6 +1,6 @@
#!/bin/sh
#
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2021 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 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
#
# This file is part of WeeChat, the extensible chat client.
#
+1 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
#
# This file is part of WeeChat, the extensible chat client.
#
+1 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2014-2022 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2014-2021 Sébastien Helleu <flashcode@flashtux.org>
#
# This file is part of WeeChat, the extensible chat client.
#
+6 -6
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2021 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)
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)
exec_program(${LIBGCRYPT_CONFIG_EXECUTABLE} ARGS --libs RETURN_VALUE _return_VALUE OUTPUT_VARIABLE GCRYPT_LDFLAGS)
exec_program(${LIBGCRYPT_CONFIG_EXECUTABLE} ARGS --cflags RETURN_VALUE _return_VALUE OUTPUT_VARIABLE GCRYPT_CFLAGS)
if(NOT DEFINED ${GCRYPT_CFLAGS})
set(GCRYPT_CFLAGS " ")
endif()
if(${GCRYPT_CFLAGS} MATCHES "\n")
set(GCRYPT_CFLAGS " ")
endif()
endif()
+1 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2007 Julien Louis <ptitlouis@sysif.net>
# Copyright (C) 2009 Emmanuel Bouthenot <kolter@openics.org>
#
+1 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2009 Emmanuel Bouthenot <kolter@openics.org>
#
# This file is part of WeeChat, the extensible chat client.
+1 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2011-2022 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2011-2021 Sébastien Helleu <flashcode@flashtux.org>
#
# This file is part of WeeChat, the extensible chat client.
#
+1 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
#
# This file is part of WeeChat, the extensible chat client.
#
+2 -2
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2021 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.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)
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)
endif()
+1 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
#
# This file is part of WeeChat, the extensible chat client.
#
+7 -11
View File
@@ -1,6 +1,6 @@
#
# Copyright (C) 2017 Adam Saponara <as@php.net>
# Copyright (C) 2017-2022 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2017-2021 Sébastien Helleu <flashcode@flashtux.org>
#
# This file is part of WeeChat, the extensible chat client.
#
@@ -24,30 +24,26 @@ endif()
find_package(PkgConfig)
if(PKG_CONFIG_FOUND)
pkg_search_module(PHP php8 php7)
pkg_search_module(PHP 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-config7
php-config
php-config php-config7
)
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 "^[78]")
if(${PHP_VERSION} MATCHES "^7")
find_library(PHP_LIB
NAMES php8.1 php8.0 php8 php7.4 php7.3 php7.2 php7.1 php7.0 php7 php
NAMES php7.4 php7.3 php7.2 php7.1 php7.0 php7
HINTS ${PHP_LIB_PREFIX} ${PHP_LIB_PREFIX}/lib ${PHP_LIB_PREFIX}/lib64
)
if(PHP_LIB)
@@ -62,9 +58,9 @@ if(NOT PHP_FOUND)
endif()
if(NOT PHP_FOUND)
message(WARNING "Could not find libphp. "
message(WARNING "Could not find libphp7. "
"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 libphp."
"You may set `-DCMAKE_LIBRARY_PATH=...` to the directory containing libphp7."
)
endif()
+1 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
#
# This file is part of WeeChat, the extensible chat client.
#
+1 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2009 Julien Louis <ptitlouis@sysif.net>
#
# This file is part of WeeChat, the extensible chat client.
+47 -9
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
#
# This file is part of WeeChat, the extensible chat client.
#
@@ -33,13 +33,51 @@ endif()
find_package(PkgConfig)
if(PKG_CONFIG_FOUND)
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")
pkg_search_module(RUBY ruby-2.7 ruby-2.6 ruby-2.5 ruby-2.4 ruby-2.3 ruby-2.2 ruby-2.1 ruby-2.0 ruby-1.9)
endif()
if(RUBY_FOUND)
set(RUBY_LIB "")
mark_as_advanced(RUBY_LIB)
else()
find_program(RUBY_EXECUTABLE
NAMES ruby2.7.0 ruby270 ruby2.7 ruby2.6.0 ruby260 ruby2.6 ruby2.5.0 ruby250 ruby2.5 ruby2.4.0 ruby240 ruby2.4 ruby2.3.0 ruby230 ruby2.3 ruby23 ruby2.2.3 ruby223 ruby2.2.2 ruby222 ruby2.2.1 ruby221 ruby2.2.0 ruby220 ruby2.2 ruby22 ruby2.1.7 ruby217 ruby2.1.6 ruby216 ruby2.1.5 ruby215 ruby2.1.4 ruby214 ruby2.1.3 ruby213 ruby2.1.2 ruby212 ruby2.1.1 ruby211 ruby2.1.0 ruby210 ruby2.1 ruby21 ruby2.0 ruby20 ruby1.9.3 ruby193 ruby1.9.2 ruby192 ruby1.9.1 ruby191 ruby1.9 ruby19 ruby
PATHS /usr/bin /usr/local/bin /usr/pkg/bin
)
if(RUBY_EXECUTABLE)
execute_process(
COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print RbConfig::CONFIG['rubyhdrdir'] || RbConfig::CONFIG['archdir']"
OUTPUT_VARIABLE RUBY_ARCH_DIR
)
execute_process(
COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print RbConfig::CONFIG['arch']"
OUTPUT_VARIABLE RUBY_ARCH
)
execute_process(
COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print RbConfig::CONFIG['libdir']"
OUTPUT_VARIABLE RUBY_POSSIBLE_LIB_PATH
)
execute_process(
COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print RbConfig::CONFIG['rubylibdir']"
OUTPUT_VARIABLE RUBY_RUBY_LIB_PATH
)
find_path(RUBY_INCLUDE_DIRS
NAMES ruby.h
PATHS ${RUBY_ARCH_DIR}
)
set(RUBY_INCLUDE_ARCH "${RUBY_INCLUDE_DIRS}/${RUBY_ARCH}")
find_library(RUBY_LIB
NAMES ruby-1.9.3 ruby1.9.3 ruby193 ruby-1.9.2 ruby1.9.2 ruby192 ruby-1.9.1 ruby1.9.1 ruby191 ruby1.9 ruby19 ruby
PATHS ${RUBY_POSSIBLE_LIB_PATH} ${RUBY_RUBY_LIB_PATH}
)
if(RUBY_LIB AND RUBY_INCLUDE_DIRS)
set(RUBY_FOUND TRUE)
endif()
set(RUBY_INCLUDE_DIRS "${RUBY_INCLUDE_DIRS};${RUBY_INCLUDE_ARCH}")
mark_as_advanced(
RUBY_INCLUDE_DIRS
RUBY_LIBRARY_DIRS
RUBY_LIB
)
endif()
endif()
+1 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2015-2022 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2015-2021 Sébastien Helleu <flashcode@flashtux.org>
#
# This file is part of WeeChat, the extensible chat client.
#
+4 -2
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
#
# This file is part of WeeChat, the extensible chat client.
#
@@ -28,7 +28,9 @@ list(REVERSE files)
foreach(file ${files})
message(STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"")
if(EXISTS "$ENV{DESTDIR}${file}")
execute_process(COMMAND "@CMAKE_COMMAND@" -E remove "$ENV{DESTDIR}${file}" OUTPUT_VARIABLE rm_out RESULT_VARIABLE rm_retval)
exec_program("@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
OUTPUT_VARIABLE rm_out
RETURN_VARIABLE rm_retval)
if("${rm_retval}" GREATER 0)
message(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"")
endif()
+27 -72
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2021 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 sr tr"
ALL_LINGUAS="cs de es fr hu it ja pl pt pt_BR ru tr"
AM_GNU_GETTEXT
AM_GNU_GETTEXT_VERSION([0.18])
@@ -130,7 +130,6 @@ 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])
@@ -165,7 +164,6 @@ 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)
@@ -501,7 +499,7 @@ RUBY_VERSION=
if test "x$enable_ruby" = "xyes" ; then
RUBY_CFLAGS=""
RUBY_LFLAGS=""
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
for v in "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`
@@ -573,7 +571,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 "54" "5.4" "53" "5.3" "52" "5.2" "51" "5.1" "50" "5.0" "$lua_suffix" "" ; do
for l in "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`
@@ -592,7 +590,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-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)
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)
if test "x$LUACONFIG" != "x" ; then
AC_MSG_CHECKING(for Lua headers and libraries with lua-config)
echo
@@ -610,7 +608,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 "54" "5.4" "53" "5.3" "52" "5.2" "51" "5.1" "50" "5.0" "$lua_suffix" "" ; do
for l in "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"
@@ -833,7 +831,6 @@ 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"
@@ -846,7 +843,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 $PHP_VERSIONS "" ; do
for l in "7.4" "74" "7.3" "73" "7.2" "72" "7.1" "71" "7.0" "70" "7" "$php_suffix" "" ; 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`
@@ -863,12 +860,11 @@ 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)
echo
for l in $PHP_VERSIONS "" ; do
for l in "7.4" "74" "7.3" "73" "7.2" "72" "7.1" "71" "7.0" "70" "7" "$php_suffix" "" ; do
AC_CHECK_PROG(PHPCONFIG, "php-config$l", "php-config$l")
if test "x$PHPCONFIG" != "x" ; then
php_config_version=`$PHPCONFIG --version`
if echo "x$php_config_version" | grep -e "^x7" -e "^x8" 1>/dev/null 2>&1 ; then
if test "x${php_config_version#7}" != "x${php_config_version}" ; then
PHP_VERSION=$php_config_version
PHP_CFLAGS=`$PHPCONFIG --includes`
PHP_LFLAGS="-L$($PHPCONFIG --prefix)/lib/ $($PHPCONFIG --libs) -lphp$l"
@@ -885,25 +881,23 @@ if test "x$enable_php" = "xyes" ; then
if test "x$ac_found_php_header" = "xyes" ; then
PHP_CFLAGS="$CFLAGS"
fi
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"
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"
PHP_LFLAGS="$LDFLAGS -lphp$PHP_LIB_SUFFIX -lm"
PHP_LFLAGS="$LDFLAGS -lphp7 -lm"
ac2_save_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS -lphp$PHP_LIB_SUFFIX -lm"
ac2_save_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS -lphp7 -lm"
if echo "$host_os" | grep "^linux" 1>/dev/null 2>&1 ; then
LDFLAGS="$LDFLAGS -ldl"
fi
LDFLAGS="$ac2_save_LDFLAGS"
break 2
if echo "$host_os" | grep "^linux" 1>/dev/null 2>&1 ; then
LDFLAGS="$LDFLAGS -ldl"
fi
done
LDFLAGS="$ac2_save_LDFLAGS"
break
fi
done
fi
@@ -1019,18 +1013,6 @@ 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
@@ -1175,27 +1157,6 @@ 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
# ------------------------------------------------------------------------------
@@ -1284,7 +1245,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 reproducible -a 'prewrap!' -a 'webfonts!' -a icons=font -a sectanchors -a source-highlighter=pygments -a pygments-style=native"
ASCIIDOCTOR_ARGS="-a experimental -a 'prewrap!' -a icons=font -a sectanchors -a source-highlighter=prettify"
AC_SUBST(ASCIIDOCTOR)
AC_SUBST(ASCIIDOCTOR_ARGS)
fi
@@ -1404,7 +1365,6 @@ 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")
@@ -1413,16 +1373,15 @@ 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/ja/Makefile
doc/de/Makefile
doc/pl/Makefile
doc/es/Makefile
doc/ru/Makefile
doc/sr/Makefile
doc/ja/Makefile
doc/cs/Makefile
src/Makefile
src/core/Makefile
src/plugins/Makefile
@@ -1446,7 +1405,6 @@ 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
@@ -1535,9 +1493,6 @@ 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
+2 -4
View File
@@ -14,14 +14,13 @@ Build-Depends:
liblua5.3-dev,
tcl8.6-dev,
guile-2.2-dev,
php-dev, libphp-embed, libargon2-dev, libsodium-dev,
php-dev, libphp-embed, libargon2-0-dev, libsodium-dev,
libxml2-dev,
libcurl4-gnutls-dev,
libgcrypt20-dev,
libgnutls28-dev,
libzstd-dev,
zlib1g-dev
Standards-Version: 4.6.0.1
Standards-Version: 4.5.1
Homepage: https://weechat.org/
Vcs-Git: https://salsa.debian.org/kolter/weechat.git
Vcs-Browser: https://salsa.debian.org/kolter/weechat
@@ -154,7 +153,6 @@ 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
@@ -1,10 +0,0 @@
Document: weechat-faq-es
Title: WeeChat FAQ (Spanish)
Author: Sébastien Helleu
Abstract: This document answers frequently asked questions
about the WeeChat IRC client (Spanish version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-devel-doc/html/weechat_faq.es.html
Files: /usr/share/doc/weechat-devel-doc/html/weechat_faq.es.html
@@ -0,0 +1,10 @@
Document: weechat-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
@@ -0,0 +1,10 @@
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
@@ -0,0 +1,10 @@
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
@@ -0,0 +1,10 @@
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
@@ -0,0 +1,10 @@
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
@@ -0,0 +1,10 @@
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
-27
View File
@@ -1,30 +1,3 @@
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
+2 -4
View File
@@ -14,14 +14,13 @@ Build-Depends:
liblua5.3-dev,
tcl8.6-dev,
guile-2.2-dev,
php-dev, libphp-embed, libargon2-dev, libsodium-dev,
php-dev, libphp-embed, libargon2-0-dev, libsodium-dev,
libxml2-dev,
libcurl4-gnutls-dev,
libgcrypt20-dev,
libgnutls28-dev,
libzstd-dev,
zlib1g-dev
Standards-Version: 4.6.0.1
Standards-Version: 4.5.1
Homepage: https://weechat.org/
Vcs-Git: https://salsa.debian.org/kolter/weechat.git
Vcs-Browser: https://salsa.debian.org/kolter/weechat
@@ -149,7 +148,6 @@ Description: Fast, light and extensible chat client - plugins
- FIFO pipe for remote control
- Relay (IRC proxy and WeeChat protocol)
- Trigger
- Typing
Package: weechat-python
Architecture: any
+1 -1
View File
@@ -4,7 +4,7 @@ Upstream-Contact: Sébastien Helleu <flashcode@flashtux.org>
Source: https://weechat.org/
Files: *
Copyright: 2003-2022, Sébastien Helleu <flashcode@flashtux.org>
Copyright: 2003-2021, Sébastien Helleu <flashcode@flashtux.org>
License: GPL-3+
Files: src/core/wee-command.c
-10
View File
@@ -1,10 +0,0 @@
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
@@ -0,0 +1,10 @@
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
@@ -0,0 +1,10 @@
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
@@ -0,0 +1,10 @@
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
@@ -0,0 +1,10 @@
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
@@ -0,0 +1,10 @@
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
@@ -0,0 +1,10 @@
Document: weechat-tester-pl
Title: WeeChat tester's guide (Polish)
Author: Sébastien Helleu
Abstract: This document describes how to test and report
bugs against the WeeChat IRC Client (Polish version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-doc/html/weechat_tester.pl.html
Files: /usr/share/doc/weechat-doc/html/weechat_tester.pl.html
-1
View File
@@ -4,4 +4,3 @@ 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
+2 -54
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2021 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,58 +21,7 @@
if(ENABLE_MAN OR ENABLE_DOC)
find_package(Asciidoctor)
if(ASCIIDOCTOR_FOUND)
# 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
set(ASCIIDOCTOR_ARGS -a experimental -a "prewrap!" -a icons=font -a revnumber="${VERSION}" -a sectanchors -a source-highlighter=prettify)
add_subdirectory(cs)
add_subdirectory(de)
add_subdirectory(en)
@@ -82,7 +31,6 @@ if(ENABLE_MAN OR ENABLE_DOC)
add_subdirectory(ja)
add_subdirectory(pl)
add_subdirectory(ru)
add_subdirectory(sr)
else()
message(SEND_ERROR "Asciidoctor not found")
endif()
+2 -2
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2021 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 sr
SUBDIRS = . cs de en es fr it ja pl ru
EXTRA_DIST = docgen.py \
docinfo.html \
+1 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
#
# This file is part of WeeChat, the extensible chat client.
#
+1 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
#
# This file is part of WeeChat, the extensible chat client.
#
+1 -4
View File
@@ -85,9 +85,6 @@ $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
@@ -99,7 +96,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-2022 {author}
Copyright (C) 2003-2021 {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
+14 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
#
# This file is part of WeeChat, the extensible chat client.
#
@@ -107,4 +107,17 @@ 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()
+8 -2
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2021 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,6 +28,7 @@ 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 \
@@ -52,7 +53,8 @@ if DOC
doc_targets = weechat_user.de.html \
weechat_scripting.de.html \
weechat_faq.de.html \
weechat_quickstart.de.html
weechat_quickstart.de.html \
weechat_tester.de.html
doc_install = install-doc
doc_uninstall = uninstall-doc
endif
@@ -80,6 +82,10 @@ 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,8 +26,6 @@
| 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,8 +79,6 @@ _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") +
@@ -239,8 +237,6 @@ _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) +
@@ -271,10 +267,6 @@ _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, "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_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_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,26 +4,18 @@
//
// tag::plugins_priority[]
. charset (16000)
. logger (15000)
. exec (14000)
. trigger (13000)
. spell (12000)
. alias (11000)
. buflist (10000)
. fifo (9000)
. typing (8000)
. charset (15000)
. logger (14000)
. exec (13000)
. trigger (12000)
. spell (11000)
. alias (10000)
. buflist (9000)
. fifo (8000)
. xfer (7000)
. irc (6000)
. relay (5000)
. guile (4007)
. javascript (4006)
. lua (4005)
. perl (4004)
. php (4003)
. python (4002)
. ruby (4001)
. tcl (4000)
. guile, javascript, lua, perl, php, python, ruby, tcl (4000)
. script (3000)
. fset (2000)
// end::plugins_priority[]
+34 -147
View File
@@ -17,11 +17,10 @@ target: Servername
* `+allchan+`: führt einen Befehl aus der an alle Kanäle gesendet wird, die mit einem Server verbunden sind
----
/allchan [-current] [-parted] [-exclude=<channel>[,<channel>...]] <command>
[-current] [-parted] -include=<channel>[,<channel>...] <command>
/allchan [-current] [-exclude=<channel>[,<channel>...]] <command>
[-current] -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
@@ -42,8 +41,6 @@ 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]]
@@ -103,55 +100,6 @@ 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
@@ -181,9 +129,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, message-tags, multi-prefix, server-time, setname, userhost-in-names..
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 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
@@ -860,15 +808,6 @@ 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
@@ -1332,7 +1271,7 @@ Beispiele:
/debug list
set <plugin> <level>
dump [<plugin>]
buffer|color|infolists|libs|certs|memory|tags|term|windows
buffer|color|infolists|memory|tags|term|windows
mouse|cursor [verbose]
hdata [free]
time <command>
@@ -1350,11 +1289,10 @@ 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: zeigt Informationen über das Terminal an
term: gibt Informationen über das Terminal und verfügbare Farben aus
windows: zeigt die Fensterstruktur an
time: misst die Zeit um einen Befehl auszuführen oder um einen Text in den aktuellen Buffer zu senden
----
@@ -1403,33 +1341,28 @@ 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")
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")
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")
oder maximale Anzahl an Zeichen die auf dem Bildschirm angezeigt werden sollen (Format: "cutscr:Max,Suffix,Zeichenkette oder "cutscr:+Max,Suffix,Zeichenkette")
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.
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.
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:
@@ -1460,20 +1393,10 @@ 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
@@ -1626,9 +1549,6 @@ 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
@@ -1724,8 +1644,6 @@ 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]]
@@ -1775,26 +1693,21 @@ Beispiele:
* `+plugin+`: Erweiterungen verwalten (auflisten/installieren/beenden)
----
/plugin list [-o|-ol|-i|-il|<name>]
listfull [<name>]
/plugin list|listfull [<name>]
load <filename> [<arguments>]
autoload [<arguments>]
reload [<name>|* [<arguments>]]
unload [<name>]
list: installierte Erweiterungen werden aufgelistet
-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
listfull: detaillierte Auflistung aller installierten Erweiterungen
load: installiert eine Erweiterung
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.
----
@@ -2022,32 +1935,6 @@ 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
@@ -2644,7 +2531,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
+61 -129
View File
@@ -1290,6 +1290,12 @@
** 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
@@ -1839,50 +1845,6 @@
** 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"]
@@ -2252,12 +2214,6 @@
** 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
@@ -2282,12 +2238,6 @@
** 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
@@ -2558,18 +2508,6 @@
** 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
@@ -2690,12 +2628,6 @@
** 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
@@ -2733,10 +2665,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); "*" 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")]
** 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")]
** 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)]
@@ -2838,7 +2770,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: `+reconnect+`
** Standardwert: `+continue+`
* [[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)]
@@ -2847,9 +2779,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" ein SSL Zertifikat welches auf Client Seite vorliegt wird verwendet]
** 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)]
** Typ: integer
** Werte: plain, scram-sha-1, scram-sha-256, scram-sha-512, ecdsa-nist256p-challenge, external
** Werte: plain, scram-sha-1, scram-sha-256, scram-sha-512, ecdsa-nist256p-challenge, external, dh-blowfish, dh-aes
** Standardwert: `+plain+`
* [[option_irc.server_default.sasl_password]] *irc.server_default.sasl_password*
@@ -3064,11 +2996,11 @@
** Werte: -1 .. 43200
** Standardwert: `+0+`
* [[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]
* [[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)]
** Typ: integer
** Werte: 0 .. 100
** Standardwert: `+20+`
** Werte: 0 .. 9
** Standardwert: `+6+`
* [[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)]
@@ -3143,20 +3075,6 @@
** Standardwert: `+""+`
// end::relay_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]
** Typ: boolesch
** Werte: on, off
** Standardwert: `+off+`
* [[option_guile.look.eval_keep_context]] *guile.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::guile_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]
@@ -3171,19 +3089,47 @@
** Standardwert: `+on+`
// end::javascript_options[]
// tag::lua_options[]
* [[option_lua.look.check_license]] *lua.look.check_license*
// 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_lua.look.eval_keep_context]] *lua.look.eval_keep_context*
* [[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::lua_options[]
// 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]
** Typ: boolesch
** Werte: on, off
** Standardwert: `+off+`
* [[option_guile.look.eval_keep_context]] *guile.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::guile_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::perl_options[]
* [[option_perl.look.check_license]] *perl.look.check_license*
@@ -3213,6 +3159,20 @@
** 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]
@@ -3227,34 +3187,6 @@
** 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]
+1 -4
View File
@@ -86,9 +86,6 @@ $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
@@ -100,7 +97,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-2022 {author}
Copyright (C) 2003-2021 {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
+4 -28
View File
@@ -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,10 +559,9 @@ 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?
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:
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:
----
/set buflist.look.enabled off
@@ -887,21 +886,6 @@ 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:
@@ -1189,14 +1173,6 @@ $ 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?
+30 -71
View File
@@ -205,12 +205,6 @@ 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)
@@ -566,7 +560,7 @@ lesen Sie bitte link:weechat_plugin_api.en.html[WeeChat Plugin API Reference] (E
Liste der Skript API Funktionen:
[width="100%",cols="1,5",options="header"]
[width="100%",cols="1,3",options="header"]
|===
| Kategorie | Funktionen
@@ -666,7 +660,6 @@ 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 |
@@ -697,7 +690,6 @@ Liste der Skript API Funktionen:
| Buffer |
buffer_new +
buffer_new_props +
current_buffer +
buffer_search +
buffer_search_main +
@@ -816,7 +808,7 @@ Liste der Skript API Funktionen:
Liste der Konstanten in Skript API:
[width="100%",cols="1,5",options="header"]
[width="100%",cols="1,3",options="header"]
|===
| Kategorie | Konstanten
@@ -901,7 +893,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
@@ -1081,53 +1073,26 @@ 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 _return_code_ auf 0 oder einen positiven
Wert gesetzt. Dies ist der Return Code des Befehls.
Für den letzten Aufruf des Callback wird _rc_ auf 0 oder einen positiven Wert
gesetzt. Dies ist der Return Code des Befehls.
Beispiele:
[source,python]
----
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)
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)
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
@@ -1142,15 +1107,15 @@ dabei in der Callback-Variable "out" gesichert (Standardausgabe des Prozesses):
[source,python]
----
# Display latest stable version of WeeChat.
weechat_latest_version = ""
# Zeigt die aktuelle stabile Version von WeeChat an.
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)
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)
return weechat.WEECHAT_RC_OK
weechat.hook_process("url:https://weechat.org/dev/info/stable/",
@@ -1165,9 +1130,9 @@ WeeChat Entwicklerpaket in die Datei _/tmp/weechat-devel.tar.gz_ gesichert:
[source,python]
----
def my_process_cb(data, command, return_code, out, err):
if return_code >= 0:
weechat.prnt("", "End of transfer (return code = %d)" % return_code)
def my_process_cb(data, command, rc, out, err):
if int(rc) >= 0:
weechat.prnt("", "End of transfer (rc=%s)" % rc)
return weechat.WEECHAT_RC_OK
weechat.hook_process_hashtable("url:https://weechat.org/files/src/weechat-devel.tar.gz",
@@ -1339,10 +1304,6 @@ 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!+`
@@ -1399,12 +1360,10 @@ 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;tag2=value\\sspace :nick!user@host PRIVMSG #weechat :hello!"})
{"message": "@time=2015-06-27T16:40:35.000Z :nick!user@host PRIVMSG #weechat :hello!"})
# dict == {
# "tags": "time=2015-06-27T16:40:35.000Z;tag2=value\\sspace",
# "tag_time": "2015-06-27T16:40:35.000Z",
# "tag_tag2": "value space",
# "tags": "time=2015-06-27T16:40:35.000Z",
# "message_without_tags": ":nick!user@host PRIVMSG #weechat :hello!",
# "nick": "nick",
# "user": "user",
@@ -1413,10 +1372,10 @@ dict = weechat.info_get_hashtable(
# "channel": "#weechat",
# "arguments": "#weechat :hello!",
# "text": "hello!",
# "pos_command": "65",
# "pos_arguments": "73",
# "pos_channel": "73",
# "pos_text": "83",
# "pos_command": "47",
# "pos_arguments": "55",
# "pos_channel": "55",
# "pos_text": "65",
# }
----
+148
View File
@@ -0,0 +1,148 @@
= 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!
+1976 -2461
View File
File diff suppressed because it is too large Load Diff
+1 -3
View File
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
#
# Copyright (C) 2008-2022 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2008-2021 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,7 +81,6 @@ LOCALE_LIST = (
'it_IT',
'ja_JP',
'pl_PL',
'sr_RS',
)
# all commands/options/.. of following plugins will produce a file
@@ -115,7 +114,6 @@ PLUGIN_LIST = {
'spell': 'o',
'trigger': 'o',
'xfer': 'co',
'typing': 'o',
}
# options to ignore
+4 -218
View File
@@ -1,252 +1,38 @@
<!--
Custom styles for Asciidoctor
Copyright (C) 2016-2022 Sébastien Helleu <flashcode@flashtux.org>
Copyright (C) 2016-2021 Sébastien Helleu <flashcode@flashtux.org>
-->
<style>
/* 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 {
#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: var(--border);
border: 1px solid #88b;
margin: 0 .2em;
font-family: monospace;
font-size: 1.1em;
}
</style>
+14 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
#
# This file is part of WeeChat, the extensible chat client.
#
@@ -122,6 +122,19 @@ 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
+7 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2021 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,6 +29,7 @@ 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 \
@@ -57,6 +58,7 @@ 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
@@ -90,6 +92,10 @@ 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,8 +26,6 @@
| 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,8 +79,6 @@ _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") +
@@ -239,8 +237,6 @@ _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) +
@@ -271,10 +267,6 @@ _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, "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_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_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,26 +4,18 @@
//
// tag::plugins_priority[]
. charset (16000)
. logger (15000)
. exec (14000)
. trigger (13000)
. spell (12000)
. alias (11000)
. buflist (10000)
. fifo (9000)
. typing (8000)
. charset (15000)
. logger (14000)
. exec (13000)
. trigger (12000)
. spell (11000)
. alias (10000)
. buflist (9000)
. fifo (8000)
. xfer (7000)
. irc (6000)
. relay (5000)
. guile (4007)
. javascript (4006)
. lua (4005)
. perl (4004)
. php (4003)
. python (4002)
. ruby (4001)
. tcl (4000)
. guile, javascript, lua, perl, php, python, ruby, tcl (4000)
. script (3000)
. fset (2000)
// end::plugins_priority[]
+51 -164
View File
@@ -17,11 +17,10 @@ target: server name
* `+allchan+`: execute a command on all channels of all connected servers
----
/allchan [-current] [-parted] [-exclude=<channel>[,<channel>...]] <command>
[-current] [-parted] -include=<channel>[,<channel>...] <command>
/allchan [-current] [-exclude=<channel>[,<channel>...]] <command>
[-current] -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 '/')
@@ -42,8 +41,6 @@ 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]]
@@ -103,55 +100,6 @@ 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
@@ -181,7 +129,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, message-tags, multi-prefix, server-time, setname, userhost-in-names.
Capabilities supported by WeeChat are: account-notify, away-notify, cap-notify, chghost, extended-join, invite-notify, multi-prefix, server-time, 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).
@@ -860,15 +808,6 @@ 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
@@ -1332,7 +1271,7 @@ Examples:
/debug list
set <plugin> <level>
dump [<plugin>]
buffer|color|infolists|libs|certs|memory|tags|term|windows
buffer|color|infolists|memory|tags|term|windows
mouse|cursor [verbose]
hdata [free]
time <command>
@@ -1350,7 +1289,6 @@ 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
@@ -1404,32 +1342,27 @@ 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. 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")
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")
or max chars displayed on screen (format: "cutscr:max,suffix,string" or "cutscr:+max,suffix,string")
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.
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.
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:
@@ -1441,39 +1374,29 @@ 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 ${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
/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
Examples (conditions):
/eval -n -c ${window.buffer.number} > 2 ==> 0
@@ -1626,9 +1549,6 @@ 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
@@ -1724,8 +1644,6 @@ 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]]
@@ -1775,26 +1693,21 @@ Examples:
* `+plugin+`: list/load/unload plugins
----
/plugin list [-o|-ol|-i|-il|<name>]
listfull [<name>]
/plugin list|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.
----
@@ -2022,32 +1935,6 @@ 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
+61 -129
View File
@@ -1290,6 +1290,12 @@
** 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
@@ -1839,50 +1845,6 @@
** 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]
@@ -2252,12 +2214,6 @@
** 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
@@ -2282,12 +2238,6 @@
** 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
@@ -2558,18 +2508,6 @@
** 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
@@ -2690,12 +2628,6 @@
** 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
@@ -2733,10 +2665,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); "*" enables all capabilities by default (supported by both server and WeeChat); wildcard "*" is allowed; a capability beginning with "!" is excluded (example: "*,!account-*,!extended-join")]
** 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")]
** 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)]
@@ -2838,7 +2770,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: `+reconnect+`
** default value: `+continue+`
* [[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)]
@@ -2847,9 +2779,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 certificate]
** 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)]
** type: integer
** values: plain, scram-sha-1, scram-sha-256, scram-sha-512, ecdsa-nist256p-challenge, external
** values: plain, scram-sha-1, scram-sha-256, scram-sha-512, ecdsa-nist256p-challenge, external, dh-blowfish, dh-aes
** default value: `+plain+`
* [[option_irc.server_default.sasl_password]] *irc.server_default.sasl_password*
@@ -3064,11 +2996,11 @@
** values: -1 .. 43200
** default value: `+0+`
* [[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]
* [[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)]
** type: integer
** values: 0 .. 100
** default value: `+20+`
** values: 0 .. 9
** default value: `+6+`
* [[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)]
@@ -3143,20 +3075,6 @@
** default value: `+""+`
// end::relay_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]
** type: boolean
** values: on, off
** default value: `+off+`
* [[option_guile.look.eval_keep_context]] *guile.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::guile_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]
@@ -3171,19 +3089,47 @@
** default value: `+on+`
// end::javascript_options[]
// tag::lua_options[]
* [[option_lua.look.check_license]] *lua.look.check_license*
// 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_lua.look.eval_keep_context]] *lua.look.eval_keep_context*
* [[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::lua_options[]
// 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]
** type: boolean
** values: on, off
** default value: `+off+`
* [[option_guile.look.eval_keep_context]] *guile.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::guile_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::perl_options[]
* [[option_perl.look.check_license]] *perl.look.check_license*
@@ -3213,6 +3159,20 @@
** 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]
@@ -3227,34 +3187,6 @@
** 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")]
+1 -4
View File
@@ -86,9 +86,6 @@ $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
@@ -100,7 +97,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-2022 {author}
Copyright (C) 2003-2021 {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
+118 -225
View File
@@ -89,7 +89,6 @@ 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.
@@ -284,7 +283,6 @@ WeeChat "core" is located in following directories:
|       irc-ignore.c | IRC Ignore.
|       irc-info.c | IRC info/infolists/hdata.
|       irc-input.c | Input of commands/text.
|       irc-join.c | Functions for list of channels to join.
|       irc-message.c | Functions to manipulate IRC messages.
|       irc-mode.c | Functions about channel/nick modes.
|       irc-modelist.c | IRC channel mode lists (+b, +e, +I, ...).
@@ -296,8 +294,6 @@ 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).
@@ -367,11 +363,6 @@ 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.
@@ -391,67 +382,55 @@ WeeChat "core" is located in following directories:
[width="100%",cols="2m,3",options="header"]
|===
| Path/file | Description
| tests/ | Root of tests.
|    tests.cpp | Program used to run all tests.
|    scripts/ | Root of scripting API tests.
|       test-scripts.cpp | Program used to run the scripting API tests.
|       python/ | Python scripts to generate and run the scripting API tests.
|          testapigen.py | Python script generating scripts in all languages to test the scripting API.
|          testapi.py | Python script with scripting API tests, used by script testapigen.py.
|          unparse.py | Convert Python code to other languages, used by script testapigen.py.
|    unit/ | Root of unit tests.
|       test-plugins.cpp | Tests: plugins.
|       core/ | Root of unit tests for core.
|          test-core-arraylist.cpp | Tests: arraylists.
|          test-core-calc.cpp | Tests: calculation of expressions.
|          test-core-config-file.cpp | Tests: configuration files.
|          test-core-crypto.cpp | Tests: cryptographic functions.
|          test-core-dir.cpp | Tests: directory/file functions.
|          test-core-eval.cpp | Tests: evaluation of expressions.
|          test-core-hashtble.cpp | Tests: hashtables.
|          test-core-hdata.cpp | Tests: hdata.
|          test-core-hook.cpp | Tests: hooks.
|          test-core-infolist.cpp | Tests: infolists.
|          test-core-list.cpp | Tests: lists.
|          test-core-network.cpp | Tests: network functions.
|          test-core-secure.cpp | Tests: secured data.
|          test-core-signal.cpp | Tests: signals.
|          test-core-string.cpp | Tests: strings.
|          test-core-url.cpp | Tests: URLs.
|          test-core-utf8.cpp | Tests: UTF-8.
|          test-core-util.cpp | Tests: utility functions.
|       gui/ | Root of unit tests for interfaces.
|          test-gui-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.
| 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.
|===
[[documentation_translations]]
@@ -473,6 +452,7 @@ 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!).
@@ -518,12 +498,12 @@ directory:
Example in C:
[source,c]
[source,C]
----
/*
* weechat.c - core functions for WeeChat
*
* Copyright (C) 2022 Your Name <your@email.com>
* Copyright (C) 2021 Your Name <your@email.com>
*
* This file is part of WeeChat, the extensible chat client.
*
@@ -556,7 +536,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.
@@ -587,7 +567,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 ()
@@ -605,7 +585,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)
{
@@ -616,7 +596,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.
@@ -659,7 +639,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)
{
@@ -683,7 +663,7 @@ else
* Indent the `switch` statements like this:
[source,c]
[source,C]
----
switch (string[0])
{
@@ -701,7 +681,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);
@@ -783,7 +763,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
{
@@ -813,7 +793,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 */
@@ -833,7 +813,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.
@@ -869,7 +849,7 @@ and next node.
Example: list of buffers (from _src/gui/gui-buffer.h_):
[source,c]
[source,C]
----
struct t_gui_buffer
{
@@ -884,7 +864,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 */
@@ -899,10 +879,18 @@ 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 raw attribute on one char)
* _0x1B_: remove attribute (followed by raw attribute on one char)
* _0x1A_: set attribute (followed by attribute on one char)
* _0x1B_: remove attribute (followed by 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
@@ -911,55 +899,45 @@ Possible colors are:
In following table, these conventions are used:
* `STD`: standard color (2 digits)
* `(ATTR)STD`: standard color with optional attributes (attributes + 2 digits)
* `(A)STD`: standard color with optional attributes (attributes + 2 digits)
* `EXT`: extended color (`+@+` + 5 digits)
* `(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
* `(A)EXT`: extended color with optional attributes (`+@+` + attributes + 5 digits)
* `ATTR`: one attribute char (`+*+`, `+!+`, `+/+`, `+_+` or `+|+`)
All combinations are summarized in this table:
[width="100%",cols="4,3,2,8",options="header"]
[width="100%",cols="4,2,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` + `(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.
| 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.
|===
[NOTE]
@@ -1076,7 +1054,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,
@@ -1089,7 +1067,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) \
@@ -1100,7 +1078,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,
@@ -1128,95 +1106,11 @@ component: fix a problem (closes #123)
Where _component_ is one of following:
[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
|===
* 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/_)
Some rules to follow:
@@ -1230,7 +1124,6 @@ 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
@@ -1298,7 +1191,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,
@@ -1315,7 +1208,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>>
+1 -24
View File
@@ -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 minutes, disable alignment of messages and set a char for nick
only hours and seconds, disable alignment of messages and set a char for nick
prefix/suffix:
----
@@ -829,21 +829,6 @@ 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:
@@ -1098,14 +1083,6 @@ $ 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?
File diff suppressed because it is too large Load Diff
+41 -44
View File
@@ -84,7 +84,7 @@ Fields are:
List of available commands (detail in next chapters):
[width="100%",cols="1m,8",options="header"]
[width="100%",cols="^3m,14",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, updated in version 3.5._
_WeeChat ≥ 2.9._
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,15 +127,10 @@ 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_: 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)_
** _compression_: compression type:
*** _zlib_: enable _zlib_ compression for messages sent by _relay_
(enabled by default if _relay_ supports _zlib_ compression)
*** _off_: disable compression
Notes about option _password_hash_algo_:
@@ -174,9 +169,8 @@ 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
@@ -202,7 +196,7 @@ htb: {
'password_hash_iterations': '100000',
'totp': 'on',
'nonce': '85B1EE00695A5B254E14F4885538DF0D',
'compression': 'off',
'compression': 'zlib',
}
----
@@ -222,7 +216,7 @@ htb: {
'password_hash_iterations': '100000',
'totp': 'on',
'nonce': '85B1EE00695A5B254E14F4885538DF0D',
'compression': 'off',
'compression': 'zlib',
}
----
@@ -242,7 +236,7 @@ htb: {
'password_hash_iterations': '100000',
'totp': 'on',
'nonce': '85B1EE00695A5B254E14F4885538DF0D',
'compression': 'off',
'compression': 'zlib',
}
----
@@ -254,11 +248,10 @@ the password is "test" in this example:
init password_hash=pbkdf2+sha256:85b1ee00695a5b254e14f4885538df0da4b73207f5aae4:100000:ba7facc3edb89cd06ae810e29ced85980ff36de2bb596fcf513aaab626876440
----
* Only "sha256" and "sha512" are supported by the client, enable zstd (preferred)
or zlib compression:
* Only "sha256" and "sha512" are supported by the client, disable compression:
----
(handshake) handshake password_hash_algo=sha256:sha512,compression=zstd:zlib
(handshake) handshake password_hash_algo=sha256:sha512,compression=off
----
Response:
@@ -271,7 +264,7 @@ htb: {
'password_hash_iterations': '100000',
'totp': 'on',
'nonce': '85B1EE00695A5B254E14F4885538DF0D',
'compression': 'zstd',
'compression': 'off',
}
----
@@ -305,6 +298,12 @@ 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
@@ -993,7 +992,7 @@ Arguments:
WeeChat replies with a hdata:
[width="100%",cols="2m,3,14",options="header"]
[width="100%",cols="3m,2,10",options="header"]
|===
| Name | Type | Description
| context | string | Completion context: "null" (no completion), "command", "command_arg", "auto".
@@ -1261,24 +1260,24 @@ Syntax:
Returned objects (in this order):
[width="80%",cols="1m,2,6m",options="header"]
[width="100%",cols="^3,3m,5m",options="header"]
|===
| 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 ]
| 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 ]
|===
[IMPORTANT]
@@ -1380,8 +1379,7 @@ 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 https://zlib.net/[zlib]
** _0x02_: following data is compressed with https://facebook.github.io/zstd/[Zstandard]
** _0x01_: following data is compressed with _zlib_
* _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
@@ -1391,9 +1389,8 @@ Messages are sent as binary data, using following format (with size in bytes):
[[message_compression]]
=== Compression
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.
If flag _compression_ is equal to 0x01, then *all* data after is compressed
with _zlib_, and therefore must be uncompressed before being processed.
[[message_identifier]]
=== Identifier
@@ -2334,7 +2331,7 @@ commands sent on startup after the _init_.
Objects are identified by 3 letters, called _type_. Following types are used:
[width="100%",cols="1m,2,8",options="header"]
[width="100%",cols="^2m,5,10",options="header"]
|===
| Type | Value | Length
| chr | Signed char | 1 byte
+30 -71
View File
@@ -195,12 +195,6 @@ 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)
@@ -550,7 +544,7 @@ link:weechat_plugin_api.en.html[WeeChat plugin API reference].
List of functions in script API:
[width="100%",cols="1,5",options="header"]
[width="100%",cols="1,3",options="header"]
|===
| Category | Functions
@@ -650,7 +644,6 @@ 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 |
@@ -681,7 +674,6 @@ List of functions in script API:
| buffers |
buffer_new +
buffer_new_props +
current_buffer +
buffer_search +
buffer_search_main +
@@ -800,7 +792,7 @@ List of functions in script API:
List of constants in script API:
[width="100%",cols="1,5",options="header"]
[width="100%",cols="1,3",options="header"]
|===
| Category | Constants
@@ -883,7 +875,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
@@ -1057,53 +1049,26 @@ 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, _return_code_ is set to 0 or positive value,
it is the return code of command.
For the last call to your callback, _rc_ is set to 0 or positive value, it's
return code of command.
Example:
[source,python]
----
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)
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)
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
@@ -1117,15 +1082,15 @@ in callback (standard output of process):
[source,python]
----
# Display latest stable version of WeeChat.
weechat_latest_version = ""
# Display current stable version of WeeChat.
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)
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)
return weechat.WEECHAT_RC_OK
weechat.hook_process("url:https://weechat.org/dev/info/stable/",
@@ -1140,9 +1105,9 @@ package in file _/tmp/weechat-devel.tar.gz_:
[source,python]
----
def my_process_cb(data, command, return_code, out, err):
if return_code >= 0:
weechat.prnt("", "End of transfer (return code = %d)" % return_code)
def my_process_cb(data, command, rc, out, err):
if int(rc) >= 0:
weechat.prnt("", "End of transfer (rc=%s)" % rc)
return weechat.WEECHAT_RC_OK
weechat.hook_process_hashtable("url:https://weechat.org/files/src/weechat-devel.tar.gz",
@@ -1312,10 +1277,6 @@ 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!+`
@@ -1372,12 +1333,10 @@ The result is a hashtable with following keys
----
dict = weechat.info_get_hashtable(
"irc_message_parse",
{"message": "@time=2015-06-27T16:40:35.000Z;tag2=value\\sspace :nick!user@host PRIVMSG #weechat :hello!"})
{"message": "@time=2015-06-27T16:40:35.000Z :nick!user@host PRIVMSG #weechat :hello!"})
# dict == {
# "tags": "time=2015-06-27T16:40:35.000Z;tag2=value\\sspace",
# "tag_time": "2015-06-27T16:40:35.000Z",
# "tag_tag2": "value space",
# "tags": "time=2015-06-27T16:40:35.000Z",
# "message_without_tags": ":nick!user@host PRIVMSG #weechat :hello!",
# "nick": "nick",
# "user": "user",
@@ -1386,10 +1345,10 @@ dict = weechat.info_get_hashtable(
# "channel": "#weechat",
# "arguments": "#weechat :hello!",
# "text": "hello!",
# "pos_command": "65",
# "pos_arguments": "73",
# "pos_channel": "73",
# "pos_text": "83",
# "pos_command": "47",
# "pos_arguments": "55",
# "pos_channel": "55",
# "pos_text": "65",
# }
----
+131
View File
@@ -0,0 +1,131 @@
= 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!
+1758 -2225
View File
File diff suppressed because it is too large Load Diff
+1 -14
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2012-2022 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2012-2021 Sébastien Helleu <flashcode@flashtux.org>
#
# This file is part of WeeChat, the extensible chat client.
#
@@ -19,19 +19,6 @@
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
+2 -8
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2012-2022 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2012-2021 Sébastien Helleu <flashcode@flashtux.org>
#
# This file is part of WeeChat, the extensible chat client.
#
@@ -21,7 +21,6 @@ docdir = $(datadir)/doc/$(PACKAGE)
EXTRA_DIST = CMakeLists.txt \
docinfo.html \
weechat_faq.es.adoc \
weechat_quickstart.es.adoc
if MAN
@@ -30,17 +29,12 @@ if MAN
man_uninstall =
endif
if DOC
doc_targets = weechat_faq.es.html \
weechat_quickstart.es.html
doc_targets = 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
+14 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
#
# This file is part of WeeChat, the extensible chat client.
#
@@ -122,6 +122,19 @@ 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
+7 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2003-2021 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,6 +29,7 @@ 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 \
@@ -57,6 +58,7 @@ 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
@@ -90,6 +92,10 @@ 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,8 +26,6 @@
| 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,8 +79,6 @@ _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") +
@@ -239,8 +237,6 @@ _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) +
@@ -271,10 +267,6 @@ _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, "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_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_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,26 +4,18 @@
//
// tag::plugins_priority[]
. charset (16000)
. logger (15000)
. exec (14000)
. trigger (13000)
. spell (12000)
. alias (11000)
. buflist (10000)
. fifo (9000)
. typing (8000)
. charset (15000)
. logger (14000)
. exec (13000)
. trigger (12000)
. spell (11000)
. alias (10000)
. buflist (9000)
. fifo (8000)
. xfer (7000)
. irc (6000)
. relay (5000)
. guile (4007)
. javascript (4006)
. lua (4005)
. perl (4004)
. php (4003)
. python (4002)
. ruby (4001)
. tcl (4000)
. guile, javascript, lua, perl, php, python, ruby, tcl (4000)
. script (3000)
. fset (2000)
// end::plugins_priority[]
+52 -165
View File
@@ -17,11 +17,10 @@ cible : nom du serveur
* `+allchan+`: exécuter une commande sur tous les canaux de tous les serveurs connectés
----
/allchan [-current] [-parted] [-exclude=<canal>[,<canal>...]] <commande>
[-current] [-parted] -include=<canal>[,<canal>...] <commande>
/allchan [-current] [-exclude=<canal>[,<canal>...]] <commande>
[-current] [-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 '/')
@@ -42,8 +41,6 @@ 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]]
@@ -103,55 +100,6 @@ 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
@@ -181,7 +129,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, message-tags, multi-prefix, server-time, setname, userhost-in-names.
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 à 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).
@@ -860,15 +808,6 @@ 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
@@ -1332,7 +1271,7 @@ Exemples :
/debug list
set <extension> <niveau>
dump [<extension>]
buffer|color|infolists|libs|certs|memory|tags|term|windows
buffer|color|infolists|memory|tags|term|windows
cursor|mouse [verbose]
hdata [free]
time <commande>
@@ -1350,7 +1289,6 @@ 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
@@ -1404,32 +1342,27 @@ 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 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")
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")
ou un maximum de caractères affichés à l'écran (format : "cutscr:max,suffixe,chaîne" ou "cutscr:+max,suffixe,chaîne")
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.
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.
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 :
@@ -1441,39 +1374,29 @@ 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 ${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
/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
Exemples (conditions) :
/eval -n -c ${window.buffer.number} > 2 ==> 0
@@ -1626,9 +1549,6 @@ 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
@@ -1666,7 +1586,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 être séparées par des points-virgules)
commande : commande (plusieurs commandes peuvent êtres 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
@@ -1724,8 +1644,6 @@ 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]]
@@ -1775,26 +1693,21 @@ Exemples :
* `+plugin+`: lister/charger/décharger des extensions
----
/plugin list [-o|-ol|-i|-il|<nom>]
listfull [<nom>]
/plugin list|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.
----
@@ -2022,32 +1935,6 @@ 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
+61 -129
View File
@@ -1290,6 +1290,12 @@
** 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
@@ -1839,50 +1845,6 @@
** 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"]
@@ -2252,12 +2214,6 @@
** 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
@@ -2282,12 +2238,6 @@
** 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
@@ -2558,18 +2508,6 @@
** 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
@@ -2690,12 +2628,6 @@
** 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
@@ -2733,10 +2665,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) ; "*" 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")]
** 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")]
** 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)]
@@ -2838,7 +2770,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: `+reconnect+`
** valeur par défaut: `+continue+`
* [[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)]
@@ -2847,9 +2779,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]
** 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é)]
** type: entier
** valeurs: plain, scram-sha-1, scram-sha-256, scram-sha-512, ecdsa-nist256p-challenge, external
** valeurs: plain, scram-sha-1, scram-sha-256, scram-sha-512, ecdsa-nist256p-challenge, external, dh-blowfish, dh-aes
** valeur par défaut: `+plain+`
* [[option_irc.server_default.sasl_password]] *irc.server_default.sasl_password*
@@ -3064,11 +2996,11 @@
** valeurs: -1 .. 43200
** valeur par défaut: `+0+`
* [[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]
* [[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)]
** type: entier
** valeurs: 0 .. 100
** valeur par défaut: `+20+`
** valeurs: 0 .. 9
** valeur par défaut: `+6+`
* [[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)]
@@ -3143,20 +3075,6 @@
** valeur par défaut: `+""+`
// end::relay_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é]
** type: booléen
** valeurs: on, off
** valeur par défaut: `+off+`
* [[option_guile.look.eval_keep_context]] *guile.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::guile_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é]
@@ -3171,19 +3089,47 @@
** valeur par défaut: `+on+`
// end::javascript_options[]
// tag::lua_options[]
* [[option_lua.look.check_license]] *lua.look.check_license*
// 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_lua.look.eval_keep_context]] *lua.look.eval_keep_context*
* [[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::lua_options[]
// 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é]
** type: booléen
** valeurs: on, off
** valeur par défaut: `+off+`
* [[option_guile.look.eval_keep_context]] *guile.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::guile_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::perl_options[]
* [[option_perl.look.check_license]] *perl.look.check_license*
@@ -3213,6 +3159,20 @@
** 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é]
@@ -3227,34 +3187,6 @@
** 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")]
+1 -4
View File
@@ -88,9 +88,6 @@ $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_
@@ -102,7 +99,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-2022 {author}
Copyright (C) 2003-2021 {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
+119 -226
View File
@@ -91,7 +91,6 @@ 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.
@@ -286,7 +285,6 @@ Le cœur de WeeChat est situé dans les répertoires suivants :
|       irc-ignore.c | Ignore IRC.
|       irc-info.c | Info/infolists/hdata pour IRC.
|       irc-input.c | Entrée de commandes/texte.
|       irc-join.c | Fonctions pour les listes de canaux à rejoindre.
|       irc-message.c | Fonctions pour manipuler les messages IRC.
|       irc-mode.c | Fonctions pour les modes de canal/pseudo.
|       irc-modelist.c | Listes de modes de canaux IRC (+b, +e, +I, ...).
@@ -298,8 +296,6 @@ 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).
@@ -369,11 +365,6 @@ 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.
@@ -393,67 +384,54 @@ Le cœur de WeeChat est situé dans les répertoires suivants :
[width="100%",cols="2m,3",options="header"]
|===
| Chemin/fichier | Description
| tests/ | Racine des tests.
|    tests.cpp | Programme utilisé pour lancer tous les tests.
|    scripts/ | Racine des tests de l'API script.
|       test-scripts.cpp | Programme utilisé pour lancer les tests de l'API script.
|       python/ | Scripts Python pour générer et lancer les tests de l'API script.
|          testapigen.py | Script Python générant des scripts dans tous les languages pour tester l'API script.
|          testapi.py | Script Python avec les tests API, utilisé par le script testapigen.py.
|          unparse.py | Conversion de code Python vers d'autres langages, utilisé par le script testapigen.py.
|    unit/ | Racine des tests unitaires.
|       test-plugins.cpp | Tests : extensions.
|       core/ | Racine des tests unitaires pour le cœur.
|          test-core-arraylist.cpp | Tests : listes avec tableau (« arraylists »).
|          test-core-calc.cpp | Tests : calcul d'expressions.
|          test-core-config-file.cpp | Tests : fichiers de configuration.
|          test-core-crypto.cpp | Tests : fonctions cryptographiques.
|          test-core-dir.cpp | Tests : répertoires/fichiers.
|          test-core-eval.cpp | Tests : évaluation d'expressions.
|          test-core-hashtble.cpp | Tests : tables de hachage.
|          test-core-hdata.cpp | Tests : hdata.
|          test-core-hook.cpp | Tests : hooks.
|          test-core-infolist.cpp | Tests : infolists.
|          test-core-list.cpp | Tests : listes.
|          test-core-network.cpp | Tests : fonctions réseau.
|          test-core-secure.cpp | Tests : données sécurisées.
|          test-core-signal.cpp | Tests : signaux.
|          test-core-string.cpp | Tests : chaînes.
|          test-core-url.cpp | Tests : URLs.
|          test-core-utf8.cpp | Tests : UTF-8.
|          test-core-util.cpp | Tests : fonctions utiles.
|       gui/ | Racine des tests unitaires pour les interfaces.
|          test-gui-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.
| 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.
|===
[[documentation_translations]]
@@ -475,6 +453,7 @@ 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 !).
@@ -520,12 +499,12 @@ fichiers sont dans le répertoire _po/_ :
Exemple en C :
[source,c]
[source,C]
----
/*
* weechat.c - core functions for WeeChat
*
* Copyright (C) 2022 Your Name <your@email.com>
* Copyright (C) 2021 Your Name <your@email.com>
*
* This file is part of WeeChat, the extensible chat client.
*
@@ -561,7 +540,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.
@@ -594,7 +573,7 @@ foo ()
* Initialisez les variables locales après la déclaration, dans le corps de la
fonction, exemple :
[source,c]
[source,C]
----
void
foo ()
@@ -614,7 +593,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)
{
@@ -625,7 +604,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.
@@ -669,7 +648,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)
{
@@ -693,7 +672,7 @@ else
* Indentez les `switch` comme ceci :
[source,c]
[source,C]
----
switch (string[0])
{
@@ -712,7 +691,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);
@@ -794,7 +773,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
{
@@ -824,7 +803,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 */
@@ -844,7 +823,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.
@@ -882,7 +861,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
{
@@ -897,7 +876,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 */
@@ -913,10 +892,18 @@ 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 brut sur un caractère)
* _0x1B_ : supprimer un attribut (suivi par un attribut brut sur un caractère)
* _0x1A_ : activer un attribut (suivi par un attribut sur un caractère)
* _0x1B_ : supprimer un attribut (suivi par un attribut 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
@@ -925,57 +912,47 @@ Les couleurs possibles sont :
Dans le tableau qui suit, les conventions suivantes sont utilisées :
* `STD` : couleur standard (2 digits)
* `(ATTR)STD` : couleur standard avec des attributs facultatifs
* `(A)STD` : couleur standard avec des attributs facultatifs
(attributs + 2 digits)
* `EXT` : couleur étendue (`+@+` + 5 digits)
* `(ATTR)EXT` : couleur étendue avec des attributs facultatifs
* `(A)EXT` : couleur étendue avec des attributs facultatifs
(`+@+` + attributs + 5 digits)
* `(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é
* `ATTR` : un caractère d'attribut (`+*+`, `+!+`, `+/+`, `+_+` ou `+|+`)
Toutes les combinaisons sont résumées dans ce tableau :
[width="100%",cols="4,3,2,8",options="header"]
[width="100%",cols="4,2,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` + `(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.
| 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.
|===
[NOTE]
@@ -1095,7 +1072,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,
@@ -1108,7 +1085,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) \
@@ -1119,7 +1096,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,
@@ -1143,100 +1120,16 @@ Le format du message de commit est le suivant (avec fermeture automatique
du bug GitHub) :
----
composant: fix a problem (closes #123)
component: fix a problem (closes #123)
----
Où _composant_ est :
Où _component_ est :
[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
|===
* 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/_)
Quelques règles à suivre :
@@ -1320,7 +1213,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
@@ -1337,7 +1230,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>>
+1 -24
View File
@@ -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 minutes, désactiver l'alignement
de l'heure pour n'afficher que les heures et les secondes, désactiver l'alignement
des messages et définir un caractère de préfixe/suffixe pour les pseudos :
----
@@ -855,21 +855,6 @@ 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 :
@@ -1138,14 +1123,6 @@ $ 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 ?
File diff suppressed because it is too large Load Diff
+52 -55
View File
@@ -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="1m,8",options="header"]
[width="100%",cols="^3m,14",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, mis à jour dans la version 3.5._
_WeeChat ≥ 2.9._
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,16 +133,10 @@ Paramètres :
(avec un hachage SHA256)
*** _pbkdf2+sha512_ : mot de passe salé et haché avec l'algorithme PBKDF2
(avec un hachage SHA512)
** _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)_
** _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
Notes à propos de l'option _password_hash_algo_ :
@@ -184,9 +178,8 @@ 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
@@ -211,7 +204,7 @@ htb: {
'password_hash_iterations': '100000',
'totp': 'on',
'nonce': '85B1EE00695A5B254E14F4885538DF0D',
'compression': 'off',
'compression': 'zlib',
}
----
@@ -231,7 +224,7 @@ htb: {
'password_hash_iterations': '100000',
'totp': 'on',
'nonce': '85B1EE00695A5B254E14F4885538DF0D',
'compression': 'off',
'compression': 'zlib',
}
----
@@ -251,7 +244,7 @@ htb: {
'password_hash_iterations': '100000',
'totp': 'on',
'nonce': '85B1EE00695A5B254E14F4885538DF0D',
'compression': 'off',
'compression': 'zlib',
}
----
@@ -263,11 +256,10 @@ 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, activer la
compression zstd (préférée) ou zlib :
* Seulement "sha256" et "sha512" sont supportés par le client, désactiver la compression :
----
(handshake) handshake password_hash_algo=sha256:sha512,compression=zstd:zlib
(handshake) handshake password_hash_algo=sha256:sha512,compression=off
----
Réponse :
@@ -280,7 +272,7 @@ htb: {
'password_hash_iterations': '100000',
'totp': 'on',
'nonce': '85B1EE00695A5B254E14F4885538DF0D',
'compression': 'zstd',
'compression': 'off',
}
----
@@ -314,6 +306,12 @@ 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,
@@ -1007,7 +1005,7 @@ Paramètres :
WeeChat répond avec un hdata :
[width="100%",cols="2m,3,14",options="header"]
[width="100%",cols="3m,2,10",options="header"]
|===
| Nom | Type | Description
| context | chaîne | Contexte de complétion : "null" (pas de complétion), "command", "command_arg", "auto".
@@ -1159,16 +1157,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
@@ -1227,11 +1225,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
@@ -1280,24 +1278,24 @@ Syntaxe :
Objets retournés (dans cet ordre) :
[width="100%",cols="1m,2,6m",options="header"]
[width="100%",cols="^3,3m,5m",options="header"]
|===
| 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 ]
| 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 ]
|===
[IMPORTANT]
@@ -1401,10 +1399,9 @@ 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 https://zlib.net/[zlib]
** _0x02_ : les données qui suivent sont compressées avec https://facebook.github.io/zstd/[Zstandard]
** _0x01_ : les données qui suivent sont compressées avec _zlib_
* _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)
@@ -1412,9 +1409,9 @@ suivant (avec la taille en octets) :
[[message_compression]]
=== Compression
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.
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.
[[message_identifier]]
=== Identifiant
@@ -2363,7 +2360,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="1m,2,8",options="header"]
[width="100%",cols="^2m,5,10",options="header"]
|===
| Type | Valeur | Longueur
| chr | Caractère signé | 1 octet
@@ -2476,7 +2473,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]]
@@ -2559,7 +2556,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