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

Compare commits

..

2 Commits

Author SHA1 Message Date
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
811 changed files with 47567 additions and 151433 deletions
+12 -102
View File
@@ -4,20 +4,17 @@ on:
- push
- pull_request
env:
WEECHAT_DEPENDENCIES: devscripts equivs python3-pip 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 ruby-pygments.rb
jobs:
tests_linux:
build:
name: ${{ matrix.config.name }}
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
os:
- ubuntu-22.04
config:
- { name: "cmake_gcc", cc: "gcc", cxx: "g++", tool: "cmake", args: "" }
- { name: "cmake_gcc_ninja", cc: "gcc", cxx: "g++", tool: "cmake", args: "-G Ninja" }
- { name: "cmake_gcc_no_nls", cc: "gcc", cxx: "g++", tool: "cmake", args: "-DENABLE_NLS=OFF" }
- { name: "cmake_gcc_py2", cc: "gcc", cxx: "g++", tool: "cmake", args: "-DENABLE_PYTHON2=ON" }
- { name: "cmake_gcc_coverage", cc: "gcc", cxx: "g++", tool: "cmake", args: "-DENABLE_CODE_COVERAGE=ON" }
@@ -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-12
- macos-11
config:
- { name: "cmake_gcc", cc: "gcc", cxx: "g++" }
- { name: "cmake_clang", cc: "clang", cxx: "clang++" }
name: "Tests: ${{ matrix.config.name }} on ${{ matrix.os }}"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- name: Install dependencies
run: |
brew update
brew install asciidoctor lua ruby
- name: Build
env:
CC: ${{ matrix.config.cc }}
CXX: ${{ matrix.config.cxx }}
run: |
mkdir build-tmp && cd build-tmp
cmake .. -DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_PHP=OFF
make VERBOSE=1 -j2
sudo make install
- name: Run WeeChat
env:
TERM: xterm-256color
run: |
weechat --help
weechat-curses --help
weechat --colors
weechat --license
weechat --version
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
build_debian:
strategy:
matrix:
os:
- ubuntu-22.04
name: "Build Debian on ${{ matrix.os }}"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- name: Install dependencies
run: |
sudo apt-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/jammy
- name: Install Debian packages
run: sudo dpkg -i ../weechat-devel*.deb
- name: Run WeeChat
env:
TERM: xterm-256color
run: |
weechat --help
weechat-curses --help
weechat --version
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
+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 -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>
# 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)
@@ -151,8 +150,6 @@ endif()
add_definitions(-DHAVE_CONFIG_H)
include(FindPkgConfig)
include(CheckIncludeFiles)
include(CheckFunctionExists)
include(CheckSymbolExists)
@@ -198,9 +195,7 @@ list(APPEND EXTRA_LIBS gnutls)
# Check for zlib
find_package(ZLIB REQUIRED)
# Check for zstd
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>.
+448 -697
View File
File diff suppressed because it is too large Load Diff
+7 -6
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,14 +69,14 @@ time, for https://github.com/weechat/weechat[WeeChat] and the website
https://github.com/weechat/weechat.org[weechat.org].
To start a translation in a new language (not yet supported), please look at
https://weechat.org/doc/dev/#translations[translations]
https://weechat.org/files/doc/devel/weechat_dev.en.html#translations[translations]
in Developer's guide.
== Feature requests
WeeChat is under active development, so your idea may already have been
implemented, or scheduled for a future version (you can check in
https://weechat.org/dev/[roadmap] or
https://weechat.org/dev[roadmap] or
https://github.com/weechat/weechat/milestones[milestones] on GitHub.
Pull requests on GitHub are welcome for minor new features.
@@ -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.
+260 -532
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.
#
+3 -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.
@@ -28,6 +28,8 @@
# PYTHON_LIBRARIES = path to where libpython.so* can be found
# PYTHON_LDFLAGS = python compiler options for linking
include(FindPkgConfig)
if(ENABLE_PYTHON2)
pkg_check_modules(PYTHON python2 IMPORTED_TARGET GLOBAL)
else()
+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 -5
View File
@@ -4,7 +4,6 @@ Priority: optional
Maintainer: Sébastien Helleu <flashcode@flashtux.org>
Build-Depends:
asciidoctor (>= 1.5.4),
ruby-pygments.rb,
debhelper (>= 12),
cmake, pkg-config,
libncursesw5-dev,
@@ -15,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
@@ -155,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
-60
View File
@@ -1,63 +1,3 @@
weechat (3.6-1) unstable; urgency=medium
* New upstream release
* Bump Standards-Version to 4.6.1.0
-- Emmanuel Bouthenot <kolter@debian.org> Sat, 23 Jul 2022 09:56:24 +0000
weechat (3.5-1) unstable; urgency=medium
* New upstream release
* Add build dependency on libzstd-dev
-- Emmanuel Bouthenot <kolter@debian.org> Thu, 31 Mar 2022 11:36:01 +0000
weechat (3.4.1-1) unstable; urgency=medium
* New upstream release
- Fix a possible man-in-the-middle attack in TLS connection to servers
* Update build dependency from libargon2-0-dev to libargon2-dev
(libargon2-0-dev is now virtual package) (Closes: #1005703)
-- Emmanuel Bouthenot <kolter@debian.org> Tue, 22 Mar 2022 05:55:14 +0000
weechat (3.4-2) unstable; urgency=medium
* Remove build dependency on ruby-pygments.rb (no longer required)
-- Emmanuel Bouthenot <kolter@debian.org> Sat, 08 Jan 2022 06:00:17 +0000
weechat (3.4-1) unstable; urgency=medium
* New upstream release (Closes: #1001654, #1001245)
* Remove tester's guide from weechat-doc (according to upstream changes)
* Refresh ASCII Doctor options patch
* Update lintian override on weechat-plugins
* Update copyright (new year)
-- Emmanuel Bouthenot <kolter@debian.org> Fri, 07 Jan 2022 23:03:49 +0000
weechat (3.3-1) unstable; urgency=medium
* New upstream release
* Remove patch merged upstream (which command detection in libgcrypt)
* Minor updates in debian/copyright
* Enable Typing plugin
-- Emmanuel Bouthenot <kolter@debian.org> Mon, 20 Sep 2021 10:05:56 +0000
weechat (3.2.1-1) unstable; urgency=medium
* New upstream release
- fix CVE-2021-40516: possible denial of service (crash) via a crafted
WebSocket in relay plugin (Closes: #993803)
* Add a patch to fix a FTBFS (related to recent changes on which command
output) (Closes: #993333)
* Bump Standards-Version to 4.6.0.1
* Remove useless HomePage field in upstream/metadata
-- Emmanuel Bouthenot <kolter@debian.org> Tue, 07 Sep 2021 20:25:39 +0000
weechat (3.0.1-1) unstable; urgency=medium
* New upstream release
+2 -5
View File
@@ -4,7 +4,6 @@ Priority: optional
Maintainer: Emmanuel Bouthenot <kolter@debian.org>
Build-Depends:
asciidoctor (>= 1.5.4),
ruby-pygments.rb,
debhelper (>= 12),
cmake, pkg-config,
libncursesw5-dev,
@@ -15,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.1.0
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
@@ -150,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.
#
+2 -5
View File
@@ -1,6 +1,6 @@
// tag::plugin_options[]
Pro kompletní dokumentaci nastavení pluginů a jejich volby podívejte se na
https://weechat.org/doc/[WeeChat user's guide].
https://weechat.org/doc[WeeChat user's guide].
S irc pluginem se můžete doččasně připojit na server s URL jako:
@@ -85,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
+1 -1
View File
@@ -67,4 +67,4 @@ include::includes/man.cs.adoc[tag=copyright]
== PODPORA / HLÁŠENÍ CHYB
Pro pomoc nebo hlášení chyb https://weechat.org/about/support/
Pro pomoc nebo hlášení chyb https://weechat.org/about/support
+1 -1
View File
@@ -62,4 +62,4 @@ include::includes/man.cs.adoc[tag=copyright]
== PODPORA / HLÁŠENÍ CHYB
Pro pomoc nebo hlášení chyb https://weechat.org/about/support/
Pro pomoc nebo hlášení chyb https://weechat.org/about/support
+9 -23
View File
@@ -208,16 +208,10 @@ K automatickému připojení některých kanálů při připojování k serveru:
----
// TRANSLATION MISSING
The `/autojoin` command lets you configure the _autojoin_ option easily
(see `/help autojoin`).
// TRANSLATION MISSING
You can also configure WeeChat to automatically update the _autojoin_ option
when you join or leave channels:
----
/set irc.server_default.autojoin_dynamic on
----
[TIP]
You can complete name and value of options with the kbd:[Tab] key
and kbd:[Shift+Tab] for a partial completion (useful for long words like
the name of option).
K smazání hodnoty serverové volby a k použití výchozí hodnoty místo ní,
například k požití výchozích přezdívek (irc.server_default.nicks):
@@ -233,12 +227,6 @@ název volby):
/set irc.server.libera.xxx value
----
// TRANSLATION MISSING
[TIP]
You can complete name and value of options with the kbd:[Tab] key
and kbd:[Shift+Tab] for a partial completion (useful for long words like
the name of option).
[[connect_to_irc_server]]
== Připojení k IRC serveru
@@ -401,16 +389,14 @@ například:
Zkuste `/help script` pro více informací.
// TRANSLATION MISSING
A list of scripts is available in WeeChat with `/script` or on
https://weechat.org/scripts/[this page ^↗^,window=_blank].
A seznam skriptů je dostupný v WeeChatu s příkazem `/script` nebo na této
adrese https://weechat.org/scripts
[[more_doc]]
== Další dokumentace
// TRANSLATION MISSING
You can now use WeeChat and read
https://weechat.org/doc/[FAQ/documentation ^↗^,window=_blank]
for any other questions.
Nyní jste schopni používat WeeChat a můžete si přečíst FAQ/dokumentaci pro
jakékoliv další otázky: https://weechat.org/doc
Ať máte radost z použití WeeChatu!
+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
@@ -94,8 +92,6 @@
| tcl | tcl_script | Liste der Skripten
| trigger | trigger_add_arguments | Argumente für den Befehl, der einen Trigger hinzufügt: Name des Triggers, Hooks, Hook-Argumente, Hook-Bedingungen, Hook-Regex, Hook-Befehl, Hook-Rückgabecode, nachfolgende Aktionen
| trigger | trigger_hook_arguments | Standardargumente für einen Hook
| trigger | trigger_hook_command | Standardbefehl für einen Hook
@@ -150,14 +146,6 @@
| weechat | cursor_areas | Bereiche in denen der Cursor frei bewegt werden kann ("chat" oder Name einer Bar)
| weechat | custom_bar_item_add_arguments | Argumente für den Befehl, der ein benutzerdefiniertes Bar-Item hinzufügt: Elementname, Bedingungen,Inhalt
| weechat | custom_bar_item_conditions | Bedingungen für benutzerdefinierte Bar-Items
| weechat | custom_bar_item_contents | Inhalte für benutzerdefinierte Bar-Items
| weechat | custom_bar_items_names | Namen der benutzerdefinierten Bar-Items
| weechat | env_value | Wert einer Umgebungsvariable
| weechat | env_vars | Umgebungsvariablen
-10
View File
@@ -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) +
@@ -631,8 +623,6 @@ _text_search_input_   (string) +
_highlight_words_   (string) +
_highlight_regex_   (string) +
_highlight_regex_compiled_   (pointer) +
_highlight_disable_regex_   (string) +
_highlight_disable_regex_compiled_   (pointer) +
_highlight_tags_restrict_   (string) +
_highlight_tags_restrict_count_   (integer) +
_highlight_tags_restrict_array_   (pointer, array_size: "highlight_tags_restrict_count") +
@@ -128,8 +128,6 @@
| weechat | uptime | Laufzeit von WeeChat (Format: "days:hh:mm:ss") | "days" (Anzahl der Tage) oder "seconds" (Anzahl der Sekunden) (optional)
| weechat | uptime_current | WeeChat-Betriebszeit für den aktuellen Prozess (Upgrades mit /upgrade Befehlwerden ignoriert) (Format: "Tage:hh:mm:ss") | "days" (Anzahl der Tage) oder "seconds" (Anzahl der Sekunden) (optional)
| weechat | version | WeeChat-Version | -
| weechat | version_git | WeeChat Git Version (Ausgabe des Befehls "git describe", ausschließlich für eine Entwicklerversion. Eine stabile Version gibt keine Information zurück) | -
@@ -8,7 +8,7 @@
|===
| Erweiterung | Name | Beschreibung | Hashtable (Eingabe) | Hashtable (Ausgabe)
| irc | irc_message_parse | Parse eine IRC Nachricht | "message": IRC Nachricht, "server": Servername (optional) | "tags": Tags, "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[]
@@ -6,7 +6,7 @@
// tag::url_options[]
[width="100%",cols="2,^1,7",options="header"]
|===
| Einstellung | Type ^(1)^ | Konstanten ^(2)^
| Einstellung | Type ^(1)^ | Konstanten ^(2)^
| verbose | long |
+49 -227
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,56 +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>...]]
apply
sort
add: Hinzufügen des aktuellen Kanals oder einer Liste von Kanälen (mit optionalen Schlüsseln) zur autojoin-Option; Wenn Sie sich in dem Kanal befinden und der Schlüssel nicht übergeben wird, wird der Schlüssel im Kanal gelesen
addraw: das IRC Roh-Format wird genutzt (wie beim /join Befehl): alle Kanäle werden durch Kommata voneinander getrennt und optional werden die Schlüssel durch Kommata separiert
del: Löschen des aktuellen Kanals oder eine Liste von Kanälen aus der autoJoin-Option
channel: Kanalname
key: Schlüssel für den Kanal
apply: fügt die aktuell besuchten Kanäle in der autojoin-Option hinzu
sort: sortiert die Kanäle alphabetisch in der autojoin Option
Beispiele:
/autojoin add
/autojoin add #test
/autojoin add #chan1 #chan2
/allchan /autojoin add
/autojoin addraw #chan1,#chan2,#chan3 key1,key2
/autojoin del
/autojoin del #chan1
/autojoin apply
/autojoin sort
----
[[command_irc_ban]]
* `+ban+`: Nicknamen oder Hosts sperren/verbannen
@@ -182,19 +129,13 @@ 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:
zeigt unterstützte und aktivierte Funktionen an:
/cap
Fähigkeiten multi-prefix und away-notify anfordern:
/cap req multi-prefix away-notify
Fähigkeit extended-join anfordern, Fähigkeit multi-prefix entfernen:
/cap req extended-join -multi-prefix
Fähigkeit away-notify entfernen
/cap req -away-notify
/cap
/cap req multi-prefix away-notify
----
[[command_irc_connect]]
@@ -867,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
@@ -1338,8 +1270,8 @@ Beispiele:
----
/debug list
set <plugin> <level>
dump|hooks [<plugin>]
buffer|certs|color|dirs|infolists|libs|memory|tags|term|windows
dump [<plugin>]
buffer|color|infolists|memory|tags|term|windows
mouse|cursor [verbose]
hdata [free]
time <command>
@@ -1349,19 +1281,18 @@ Beispiele:
plugin: Name der Erweiterung ("core" für den WeeChat Kern)
level: Debuglevel der Erweiterung (0 = deaktiviert Debug)
dump: Speicherabbild in die WeeChat Protokolldatei schreiben (wie bei einem Programmabsturz)
hooks: zeigt die aktiven Hooks an (bei einer Erweiterung: detaillierte Informationen über Hooks werden angezeigt, die von der Erweiterung erstellt wurden)
buffer: speichert den Bufferinhalt als hexadezimale Ausgabe in die Protokolldatei
certs: gibt die Anzahl geladener vertrauenswürdiger Zertifizierungsstellen aus
color: zeigt Informationen über die aktuellen Farbpaarungen an
cursor: schaltet den debug-Modus für den Cursor-Modus ein/aus
dirs: Verzeichnisse werden angezeigt
hdata: zeigt Informationen zu hdata an (mittels free werden alle hdata Informationen aus dem Speicher entfernt)
hooks: zeigt die aktiven Hooks an
infolists: zeigt Information über die Infolists an
libs: zeigt an welche externen Bibliotheken verwendet werden
memory: gibt Informationen über den genutzten Speicher aus
mouse: schaltet den debug-Modus für den Maus-Modus ein/aus
tags: zeigt für jede einzelne Zeile die dazugehörigen Schlagwörter an
term: 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
----
@@ -1410,35 +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. eine Zeichenfolge, die in Kleinbuchstaben umgewandelt wird (Format: "lower:xxx")
7. eine Zeichenfolge, die in Großbuchstaben umgewandelt wird (Format: "upper:xxx")
8. Zeichen, die in einer Zeichenkette nicht dargestellt werden sollen (Format: "hide:Zeichen,Zeichenkette")
9. 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")
10. eine Zeichenkette umkehren (Format: "rev:xxx" oder "revscr:xxx")
11. eine Zeichenkette wiederholen (Format: "repeat:Anzahl,Zeichenkette")
12. Länge einer Zeichenkette (Format: "length:xxx" oder "lengthscr:xxx")
13. Aufteilen einer Zeichenkette (Format: "split:Anzahl,Trennzeichen,Flags,xxx")
14. Aufteilen von Shell-Argumenten (Format: "split_shell:Anzahl,xxx")
15. eine Farbe (Format: "color:xxx", siehe "Anleitung für API Erweiterung", Funktion "color")
16. zum modifizieren (Format: "modifier:name,data,string")
17. eine Info (Format: "Info:Name,Argumente", Argumente sind optional)
18. eine Basis 16/32/64 kodierte / dekodierte Zeichenfolge (Format: "base_encode:base,xxx" oder "base_decode:base,xxx")
19. aktuelles Datum/Uhrzeit (Format: "date" oder "date:format")
20. eine Umgebungsvariable (Format: "env:XXX")
21. ein Dreifachoperand (Format: "if:Bedingung?Wert_falls_wahr:Wert_falls_unwahr")
22. Ergebnis eines Ausdrucks mit Klammern und Operatoren + - * / // % ** (Format: "calc:xxx")
23. eine zufällige ganze Zahl (Format: "random:min,max")
24. eine übersetzte Zeichenkette (Format: "translate:xxx")
25. eine Benutzervariable definieren (Format: "define:Name,Wert")
26. eine Option (Format: "file.section.option")
27. eine lokale Variable eines Buffers
28. 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:
@@ -1461,8 +1385,6 @@ Beispiele (einfache Zeichenketten):
/eval -n ${window.buffer.full_name} ==> core.weechat
/eval -n ${window.buffer.number} ==> 1
/eval -n ${\t} ==> <tab>
/eval -n ${lower:TEST} ==> test
/eval -n ${upper:test} ==> TEST
/eval -n ${hide:-,${relay.network.password}} ==> --------
/eval -n ${cut:3,+,test} ==> tes+
/eval -n ${cut:+3,+,test} ==> te+
@@ -1471,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
@@ -1508,7 +1420,7 @@ Beispiele (Bedingungen):
add|addreplace <name> <buffer>[,<buffer>...] <tags> <regex>
rename <name> <new_name>
recreate <name>
del <name>|-all [<name>...]
del <name>|-all
list: alle Filter auflisten
enable: Filter wird aktiviert (Filter werden standardmäßig aktiviert)
@@ -1614,7 +1526,6 @@ Auflistung der möglichen Aktionen:
delete_previous_char: entfernt vorheriges Zeichen
delete_next_char: entfernt nächstes Zeichen
delete_previous_word: entfernt vorheriges Wort
delete_previous_word_whitespace: vorheriges Wort löschen (bis zum Leerzeichen)
delete_next_word: entfernt nächstes Wort
delete_beginning_of_line: entfernt alle Zeichen ab Zeilenanfang bis zum Cursor
delete_end_of_line: entfernt alle Zeichen ab Cursor bis zum Ende der Zeile
@@ -1638,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
@@ -1658,49 +1566,6 @@ Auflistung der möglichen Aktionen:
Dieser Befehl wird sinnvollerweise mittels Tastenbelegungen oder Erweiterungen genutzt.
----
[[command_weechat_item]]
* `+item+`: Verwalten von benutzerdefinierten Bar-Items
----
/item list
add|addreplace <name> "<conditions>" "<content>"
rename <name> <new_name>
refresh <name> [<name>...]
recreate <name>
del <name>|-all
list: zeigt eine Liste aller benutzerdefinierten Bar-Items
add: fügt ein benutzerdefiniertes Bar-Item hinzu
addreplace: erzeugt neues Bar-Item oder ersetzt ein schon existierendes Bar-Item
name: benutzerdefinierter Name des Bar-Items
conditions: evaluierte Bedingungen um ein Bar-Item anzuzeigen (zum Beispiel um ein Bar-Item nur in einem bestimmten Buffer anzuzeigen)
content: Inhalt (evaluiert, siehe /help eval)
rename: Umbenennen eines benutzerdefinierten Bar-Items
refresh: aktualisiert den Inhalt des Items in allen Bars, in denen das Item angezeigt wird; jedes Item kann aktualisiert werden: standard/Erweiterung/benutzerdefiniertes Bar-Item
recreate: kopiert den Befehl in die Eingabezeile um das benutzerdefinierte Bar-Item zu editieren
del: entfernt ein benutzerdefiniertes Bar-Item
-all: entfernt alle benutzerdefinierten Bar-Items
Beispiele:
Item welches die Terminalgröße anzeigt wird hinzugefügt, aber nur in Buffern mit Nummer angezeigt = 1:
/item add terminfo "${buffer.number} == 1" "term:${info:term_width}x${info:term_height}"
fügt ein Item hinzu, welches Informationen über den Buffer anzeigt:
/item add bufinfo "" "${buffer.number}:${buffer.name}${if:${buffer.zoomed}?(Z)}"
fügt ein Item mit Datum/Uhrzeit hinzu, dabei wird das Format "Dec 25, 12:34 +0100" verwendet, aktualisiert, jede Minute:
/item add datetime "" "${date:%b %d, %H:%M %z}"
/trigger add datetime_refresh timer "60000;60" "" "" "/item refresh datetime"
fügt ein Item mit der Anzahl der Zeilen in dem Buffer hinzu (sichtbar/total), jeweils aktualisiertwenn eine neue Zeile dargestellt wird oder wenn sich der Status der gefilterten Zeilen geändert hat:
/item add lines_count "" "${calc:${buffer.lines.lines_count}-${buffer.lines.lines_hidden}}/${buffer.lines.lines_count} lines"
/trigger add lines_count_refresh_print print "" "" "" "/item refresh lines_count"
/trigger add lines_count_refresh_signal signal "window_switch;buffer_switch;buffer_lines_hidden;filters_*" "" "" "/item refresh lines_count"
erzwingt die Aktualisierung des Items "lines_count":
/item refresh lines_count
erstellt das Item "lines_count", mit anderen Bedingungen oder Inhalten, neu:
/item recreate lines_count
entfernt das Item "lines_count":
/item del lines_count
----
[[command_weechat_key]]
* `+key+`: Einer Taste einen Befehl zuordnen oder entfernen
@@ -1779,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]]
@@ -1830,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.
----
@@ -2077,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
@@ -2123,23 +1955,20 @@ Beispiele:
----
[[command_weechat_upgrade]]
* `+upgrade+`: Speichern der WeeChat-Sitzung und laden der WeeChat-Binärdatei, ohne die Verbindung zu Servern zu trennen
* `+upgrade+`: WeeChat Binärdatei neu laden, ohne die Verbindung zum Server zu trennen
----
/upgrade [-yes] [<path_to_binary>|-save|-quit]
/upgrade [-yes] [<path_to_binary>|-quit]
-yes: wird benötigt, sobald Option "weechat.look.confirm_upgrade" aktiviert ist
path_to_binary: Pfad zu einer ausführbaren WeeChat Binärdatei (Standardeinstellung ist die aktuell ausführbare Datei)
-dummy: ohne Funktion (dient lediglich dazu, um nicht versehentlich die "-quit" Funktion auszuführen)
-save: speichert nur die aktuelle Sitzung, WeeChat wird nicht beendet oder neu gestartet. DieKonfigurationsdateien werden hierbei nicht gespeichert (falls dies gewünscht wird, nutze vorher /save)
-quit: trennt *ALLE* Verbindungen, speichert die aktuelle Sitzung und beendet WeeChat, um den aktuellen Zustand später wiederherstellen (siehe unten)
Dieser Befehl führt ein Upgrade von WeeChat durch und startet die laufende Sitzung neu. Bevor dieser Befehl ausgeführt wird, sollte eine neue Version von WeeChat entweder vorab kompiliert, oder mit einem Paketmanager installiert worden sein.
Hinweis: SSL Verbindungen werden während eines Upgrades unterbrochen, da diese Verbindungen zur Zeit nicht mit GnuTLS gehalten werden können. Nach einem erfolgten Upgrade findet eine automatische Verbindung zu diesen Servern statt.
Wichtig: Die Verwendung der Option -save kann gefährlich sein. Für ein Standard-Upgrade oder einen Neustart wird empfohlen, nur den /upgrade (oder mit -quit) Befehl zu nutzen.Mit der Option -save kann eine Sitzung regelmäßig gespeichert und dann wiederhergestellt werden,falls Weechat abnormal beendet wird (Stromausfall, Absturz etc.)
Der Upgrade Vorgang besteht aus vier Schritten:
1. Sicherung der Sitzung, in Dateien für Core und Erweiterungen (buffers, history, ..)
2. alle Erweiterungen werden ausgeschaltet (Konfigurationen *.conf werden gesichert)
@@ -2152,13 +1981,9 @@ Nutzt man die "-quit" Funktion ist die Abfolge geringfügig anders:
3. alle Erweiterungen werden ausgeschaltet
4. die WeeChat Konfiguration wird gesichert
5. WeeChat wird beendet
Mit der Option "-save" ist der Ablauf:
1. Die Sitzung wird in Dateien (*.upgrade) gesichert, allerdings mit dem Status das IRC und Client Verbindungen unterbrochen sind (es findet aber keine Trennung der Verbindung statt!)
Durch nutzen von -quit oder -save kann eine Sitzung zu einem späteren Zeitpunkt wiederhergestellt werden:weechat --upgrade
WICHTIG: Die Sitzung muss mit exakt den selben Konfigurationsdateien wiederhergestellt werden (*.conf) und wenn möglich mit der selben Version von WeeChat (oder einer neueren Version).
Es ist möglich, die WeeChat-Sitzung auf einem anderen Computer wiederherzustellen, wenn Sie den Inhalt der WeeChat Verzeichnisse kopieren (siehe /debug dirs).
Die Sitzung kann zu einem späteren Zeitpunkt wiederhergestellt werden: weechat --upgrade
WICHTIG: Die Sitzung muss mit exakt den selben Konfigurationsdateien wiederhergestellt werden (*.conf)
Es ist möglich, die WeeChat-Sitzung auf einem anderen Computer wiederherzustellen, wenn Sie den Inhalt der WeeChat Verzeichnisse kopieren (siehe / debug dirs).
----
[[command_weechat_uptime]]
@@ -2342,7 +2167,6 @@ Die folgenden Variablen können in den obigen Optionen genutzt werden:
- ${format_hotlist}: die formatierte Hotlist (evaluiert aus Option buflist.format.hotlist)
- ${hotlist}: die Hotlist in der Rohform
- ${hotlist_priority}: "none", "low", "message", "private" oder "highlight"
- ${hotlist_priority_number}: -1 = keine, 0 = niedrig, 1 = Nachricht, 2 = private, 3 = Hervorhebungen
- ${format_lag}: die Verzögerung für einen IRC Server-Buffer, ist leer falls es keine Verzögerung gibt (evaluiert aus Option buflist.format.lag)
- ${format_tls_version}: Indikator der TLS Version für den Serverbuffer, Channels bleiben unberührt (evaluiert aus Option buflist.format.tls_version)
----
@@ -2707,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
@@ -2909,7 +2733,7 @@ protocol.name: Protokoll und Name des Relay:
- Protokoll "weechat" (es wird kein Name verwendet)
Das "irc" Protokoll dient dazu eine Verbindung zu einem anderen IRC Client (oder zu einem zweiten WeeChat) herzustellen.
Das "weechat" Protokoll wird von einem Remote-Interface genutzt um eine Verbindung auf dem Port herzustellen. Siehe https://weechat.org/about/interfaces/
Das "weechat" Protokoll wird von einem Remote-Interface genutzt um eine Verbindung auf dem Port herzustellen. Siehe https://weechat.org/about/interfaces
Ohne Angabe von Argumenten werden alle Relay-Clients in einem neuen Buffer dargestellt.
@@ -3064,7 +2888,7 @@ Beispiele:
----
/spell enable|disable|toggle
listdict
setdict -|<dict>[,<dict>...]
setdict <dict>[,<dict>...]
deldict
addword [<dict>] <word>
@@ -3072,7 +2896,7 @@ Beispiele:
disable: Rechtschreibprüfung wird deaktiviert
toggle: Funktionalität der Rechtschreibprüfung umschalten
listdict: die, auf dem System, installierten Wörterbücher werden aufgelistet
setdict: Wörterbuch für den aktuellen Buffer einstellen (mehrere Wörterbücher müssen durch Kommata getrennt werden (spezieller Wert "-" deaktiviert die Rechtschreibprüfung für den aktuellen Buffer))
setdict: Wörterbuch für den aktuellen Buffer einstellen (mehrere Wörterbücher müssen durch Kommata getrennt werden)
deldict: Wörterbuch für den aktuellen Buffer entfernen
addword: fügt ein Wort in das persönliche Wörterbuch hinzu
@@ -3180,7 +3004,7 @@ post_action: Aktion welche nach der Abarbeitung des Triggers ausgeführt werden
restart: startet Trigger neu (Hook(s) werden neu erstellt)
show: zeigt detaillierte Informationen zu einem Trigger (inklusive einer kleinen Statistik)
del: entfernt einen Trigger
-all: führt eine Aktion aus, die alle Trigger betrifft
-all: führt eine Aktion aus, die alle Trigger beinhaltet
restore: stellt Trigger mit Standardwerten wieder her (funktioniert nur bei vorgegebenen Triggern)
default: stellt die standardmäßigen Trigger wieder her
monitor: öffnet den Trigger Monitor-Buffer, mit optionaler Filterfunktion:
@@ -3194,15 +3018,13 @@ Wenn ein Trigger-Callback aufgerufen wird, dann wird folgende Befehlskette ausge
5. Aktion welche nach der Abarbeitung des Triggers ausgeführt werden soll
Beispiele (die standardmäßig verfügbaren Trigger kann man sich mit "/trigger listdefault" anzeigen lassen):
fügt einer Nachricht die Textattribute *fett*, _unterstrichen_ und /kursiv/ hinzu (nur in User-Nachrichten):
fügt einer Nachricht die Textattribute *fett*, _unterstrichen_ und /kursiv/ hinzu:
/trigger add effects modifier weechat_print "${tg_tag_nick}" "==\*([^ ]+)\*==*${color:bold}${re:1}${color:-bold}*== ==_([^ ]+)_==_${color:underline}${re:1}${color:-underline}_== ==/([^ ]+)/==/${color:italic}${re:1}${color:-italic}/"
verbirgt die Nicklist auf kleineren Terminals:
/trigger add resize_small signal signal_sigwinch "${info:term_width} < 100" "" "/bar hide nicklist"
/trigger add resize_big signal signal_sigwinch "${info:term_width} >= 100" "" "/bar show nicklist"
speichert die Konfiguration jede Stunde ab:
/trigger add cfgsave timer 3600000;0;0 "" "" "/mute /save"
speichert, ohne Ausgabe von Text, eine Weechat-Sitzung um Mitternach (siehe /help upgrade):
/trigger add session_save signal day_changed "" "" "/mute /upgrade -save"
öffnet den Trigger Monitor und zeigt ausschließlich modifier und Trigger an, die mit "resize" im Namen beginnen:
/trigger monitor @modifier,resize*
----
+64 -180
View File
@@ -750,12 +750,6 @@
** Werte: beliebige Zeichenkette
** Standardwert: `+""+`
* [[option_weechat.look.highlight_disable_regex]] *weechat.look.highlight_disable_regex*
** Beschreibung: pass:none[Erweiterter regulärer POSIX-Ausdruck, der verwendet wird, um jede Hervorhebung von einer Nachricht zu verhindern: Diese Option hat eine höhere Priorität als andere Hervorhebungsoptionen (sofern die Zeichenkette in der Nachricht gefunden wird, die Hervorhebung deaktiviert ist und die andereOptionen ignoriert werden), bei regulären Ausdrücken wird die Groß-/Kleinschreibung nicht beachtet (verwenden Sie "(?-i)" am Anfang, um Groß- und Kleinschreibung zu beachten), Beispiele: "<flash.*>", "(?-i)<Flash.*>"]
** Typ: Zeichenkette
** Werte: beliebige Zeichenkette
** Standardwert: `+""+`
* [[option_weechat.look.highlight_regex]] *weechat.look.highlight_regex*
** Beschreibung: pass:none[Suchmuster (erweiterter regulärer POSIX Ausdruck) welches genutzt werden soll, um zu überprüfen ob eine Nachricht ein Highlight enthält oder nicht. Mindestens eine Zeichenkette muss dabei auf das Suchmuster passen (alphanumerisch, "-", "_" oder "|"). Das Suchmuster unterscheidet dabei nicht zwischen Groß-und Kleinschreibung (um zwischen Groß-und Kleinschreibung zu unterscheiden muss am Wortanfang "(?-i)" genutzt werden). Beispiele: "flashcode|flashy", "(?-i)FlashCode|flashy"]
** Typ: Zeichenkette
@@ -1296,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
@@ -1403,7 +1403,7 @@
** Standardwert: `+default+`
* [[option_logger.file.auto_log]] *logger.file.auto_log*
** Beschreibung: pass:none[speichert automatisch den Inhalt eines Buffers in eine Datei (sofern das Protokollieren für den Buffer nicht deaktiviert sein sollte); Falls deaktiviert, wird die Protokollierung für alle Buffer deaktiviert]
** Beschreibung: pass:none[speichert automatisch den Inhalt eines Buffers in eine Datei (sofern das Protokollieren für den Buffer nicht deaktiviert sein sollte)]
** Typ: boolesch
** Werte: on, off
** Standardwert: `+on+`
@@ -1468,24 +1468,6 @@
** Werte: beliebige Zeichenkette
** Standardwert: `+"_"+`
* [[option_logger.file.rotation_compression_level]] *logger.file.rotation_compression_level*
** Beschreibung: pass:none[Komprimierungsstufe für rotierende Protokolldateien (mit Dateierweiterung „.1“, „.2“,etc.), falls die Option logger.file.rotation_compression_type aktiviert ist: 1 = niedrigeKomprimierung / schnell ... 100 = beste Komprimierung / langsam; Der Wert des Prozentsatzes wird umgewandelt in 1-9 für gzip und 1-19 für zstd; der Standardwert wird hierbeiempfohlen, denn er bietet einen guten Kompromiss zwischen Komprimierung und Geschwindigkeit]
** Typ: integer
** Werte: 1 .. 100
** Standardwert: `+20+`
* [[option_logger.file.rotation_compression_type]] *logger.file.rotation_compression_type*
** Beschreibung: pass:none[Komprimierungstyp für rotierende Protokolldateien; wenn "none" genutzt wird, findet keine Komprimierung der Protokolldateien statt; WARNUNG: wenn die Rotation mit einer anderen Stufe der Komprimierung (oder gar keiner Komprimierung) aktiviert wurde, muss zuerst die Logger-Erweiterung beendet werden., dann de-komprimieren Sie die Dateien mit dem neuen Typ, danach muss die Option in der Datei logger.conf angepasst werden, bevor die Logger-Erweiterung neu geladen wird]
** Typ: integer
** Werte: none, gzip, zstd
** Standardwert: `+none+`
* [[option_logger.file.rotation_size_max]] *logger.file.rotation_size_max*
** Beschreibung: pass:none[Wenn diese Größe erreicht ist, wird eine Rotation der Protokolldateien durchgeführt: dievorhandene rotierte Protokolldateien werden umbenannt (.1 wird zu .2, .2 wird zu .3 usw.).Die aktuelle Datei erhält wird umbenannt und erhält .1 als Erweiterung; eine ganze Zahl mitSuffix ist erlaubt: b = Bytes (Standard, wenn keine Einheit angegeben ist), k = Kilobytes, m =Megabyte, g = Gigabyte, t = Terabyte; Beispiel: "2g" bewirkt eine Rotationsobald die Dateigröße > 2.000.000.000 Byte ist; wenn auf „0“ gesetzt, erfolgt keine Rotationder Dateien (unbegrenzte Protokollgröße); WARNUNG: Bevor Sie diese Option ändern,sollte sie zuerst den Komprimierungstyp über die Option logger.file festlegen.rotation_compression_type]
** Typ: Zeichenkette
** Werte: beliebige Zeichenkette
** Standardwert: `+"0"+`
* [[option_logger.file.time_format]] *logger.file.time_format*
** Beschreibung: pass:none[Zeitstempel in Protokoll-Datei nutzen (siehe man strftime, welche Platzhalter für das Datum und die Uhrzeit verwendet werden)]
** Typ: Zeichenkette
@@ -1568,12 +1550,6 @@
** Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen
** Standardwert: `+lightmagenta+`
* [[option_trigger.color.identifier]] *trigger.color.identifier*
** Beschreibung: pass:none[Textfarbe für Trigger-Kontextkennung im Monitorbuffer]
** Typ: Farbe
** Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen
** Standardwert: `+cyan+`
* [[option_trigger.color.regex]] *trigger.color.regex*
** Beschreibung: pass:none[Textfarbe für reguläre Ausdrücke]
** Typ: Farbe
@@ -1801,7 +1777,7 @@
** Standardwert: `+"${buffer.hidden}==0"+`
* [[option_buflist.look.enabled]] *buflist.look.enabled*
** Beschreibung: pass:none[Buflist aktivieren; Es wird empfohlen, diese Option zu verwenden, anstatt nur die Bar zu verstecken, da hiermit auch interne Hooks entfernt werden, die nicht benötigt werden, falls die Leiste ausgeblendet wird; Sie können auch den Befehl "/buflist toggle" verwenden oder die Standardtastenbelegung alt+shift+b]
** Beschreibung: pass:none[buflist aktivieren]
** Typ: boolesch
** Werte: on, off
** Standardwert: `+on+`
@@ -1869,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"]
@@ -2157,7 +2089,7 @@
** Standardwert: `+cyan+`
* [[option_irc.color.message_chghost]] *irc.color.message_chghost*
** Beschreibung: pass:none[Textfarbe in der "chghost" Nachrichten dargestellt werden]
** Beschreibung: pass:none[Textfarbe in der chghost Nachrichten dargestellt werden]
** Typ: Farbe
** Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen
** Standardwert: `+brown+`
@@ -2180,12 +2112,6 @@
** Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen
** Standardwert: `+red+`
* [[option_irc.color.message_setname]] *irc.color.message_setname*
** Beschreibung: pass:none[Textfarbe in der "setname" Nachrichten dargestellt werden]
** Typ: Farbe
** Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen
** Standardwert: `+brown+`
* [[option_irc.color.mirc_remap]] *irc.color.mirc_remap*
** Beschreibung: pass:none[ersetzt mirc Farben in Nachrichten mittels einer Hashtabelle: Schlüssel sind "fg,bg" als Ganzzahl zwischen -1 (nicht näher bezeichnet) und 15. Als Wert ist der Farbname oder die Farbnummer von WeeChat möglich (Format: "1,-1:Farbe1;2,7:Farbe2"), Beispiel: "1,-1:darkgray;1,2:white,blue" ersetzt schwarz durch "darkgray" und schwarz auf blau durch "white,blue"; Tabelle der Standard-IRC-Farben von WeeChat (in Klammern der Farbname, wie er von WeeChat genutzt wird): 0=weiß (white), 1=schwarz (black), 2=blau (blue), 3=grün (green), 4=hellrot (lightred), 5=rot (red), 6=violett (magenta), 7=braun (brown), 8=gelb (yellow), 9= hell-grün (lightgreen), 10=türkis (cyan), 11=hell-türkis (lightcyan), 12=hellblau (lightblue), 13=hell-violett (lightmagenta), 14=dunkel-grau (darkgray), 15=grau (gray)]
** Typ: Zeichenkette
@@ -2288,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
@@ -2318,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
@@ -2366,12 +2280,6 @@
** Werte: on, off
** Standardwert: `+on+`
* [[option_irc.look.display_pv_nick_change]] *irc.look.display_pv_nick_change*
** Beschreibung: pass:none[Nickänderung im privaten Buffer anzeigen]
** Typ: boolesch
** Werte: on, off
** Standardwert: `+on+`
* [[option_irc.look.display_pv_warning_address]] *irc.look.display_pv_warning_address*
** Beschreibung: pass:none[zeigt eine Warnung in einem privaten Buffer an, sobald sich die Adresse eines Remote-Nick geändert hat; diese Option ist standardmäßig ausgeschaltet, da Server wie bitlbee eine solche Warnung unvermittelt auslösen (die Adresse des Remote-Nick ändert sich während eines Login mehrfach)]
** Typ: boolesch
@@ -2588,12 +2496,6 @@
** Werte: on, off
** Standardwert: `+on+`
* [[option_irc.look.smart_filter_setname]] *irc.look.smart_filter_setname*
** Beschreibung: pass:none[aktiviert einen intelligenten Filter für "setname" Nachrichten]
** Typ: boolesch
** Werte: on, off
** Standardwert: `+on+`
* [[option_irc.look.temporary_servers]] *irc.look.temporary_servers*
** Beschreibung: pass:none[aktiviert die Erstellung von temporären Servern mit dem Befehl /connect]
** Typ: boolesch
@@ -2606,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
@@ -2738,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
@@ -2781,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)]
@@ -2886,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)]
@@ -2895,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*
@@ -3112,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)]
@@ -3191,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]
@@ -3219,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*
@@ -3261,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]
@@ -3275,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]
+2 -5
View File
@@ -1,6 +1,6 @@
// tag::plugin_options[]
Um eine vollständige Dokumentation der Optionen zu erhalten, siehe
https://weechat.org/doc/[WeeChat user's guide].
https://weechat.org/doc[WeeChat user's guide].
Mittels der IRC Erweiterung kann man sich zu einen temporären Server verbinden lassen,
indem man eine URL verwendet:
@@ -86,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
+1 -1
View File
@@ -63,4 +63,4 @@ include::includes/man.de.adoc[tag=copyright]
== SUPPORT / FEHLER MELDEN
für Hilfe oder um einen Fehler zu melden: https://weechat.org/about/support/
für Hilfe oder um einen Fehler zu melden: https://weechat.org/about/support
+1 -1
View File
@@ -59,4 +59,4 @@ include::includes/man.de.adoc[tag=copyright]
== SUPPORT / FEHLER MELDEN
für Hilfe oder um einen Fehler zu melden: https://weechat.org/about/support/
für Hilfe oder um einen Fehler zu melden: https://weechat.org/about/support
+61 -99
View File
@@ -38,8 +38,7 @@ Aber diese Bedeutung trifft nicht auf WeeChat zu!)
WeeChat ist sehr speicherschonend und besticht durch innovative Funktionen.
Weitere Infomationen über Weechat
https://weechat.org/about/features/[features page ^↗^,window=_blank].
Weitere Informationen findet man auf der WeeChat Seite: https://weechat.org/about/features
[[compilation_install]]
== Kompilierung / Installation
@@ -47,17 +46,17 @@ https://weechat.org/about/features/[features page ^↗^,window=_blank].
[[gui]]
=== Ich habe gehört es gibt verschiedene GUIs für WeeChat. Wie kann ich diese kompilieren bzw. nutzen?
Einige Remote-GUIs sind verfügbar, siehe
https://weechat.org/about/interfaces/[remote interfaces page ^↗^,window=_blank].
Es sind einige Remote-Oberflächen verfügbar. Diese findet man auf der Homepage:
https://weechat.org/about/interfaces
[[compile_git]]
=== Ich kann WeeChat nach Cloning des git Repository nicht kompilieren - weshalb?
Es wird empfohlen link:weechat_user.de.html#compile_with_cmake[CMake ^↗^,window=_blank] zum
Es wird empfohlen link:weechat_user.de.html#compile_with_cmake[CMake] zum
kompilieren von WeeChat zu nutzen.
Falls Du WeeChat mit Hilfe der
link:weechat_user.de.html#compile_with_autotools[autotools ^↗^,window=_blank] kompilieren solltest
link:weechat_user.de.html#compile_with_autotools[autotools] kompilieren solltest
(dich also nicht für CMake entscheidest), stelle sicher, dass Du die neueste
Version von autoconf und automake besitzt.
@@ -70,7 +69,7 @@ das Repository klont und daraus Updates installiert.
[[compile_macos]]
=== Wie installiere ich WeeChat auf macOS?
Wir empfehlen, dass zur Installation https://brew.sh/[Homebrew ^↗^,window=_blank] genutzt wird.
Wir empfehlen, dass zur Installation https://brew.sh/[Homebrew] genutzt wird.
Hilfe erhält man mittels:
----
@@ -88,12 +87,12 @@ brew install weechat
Um Hilfe zu erhalten, nutze den `/help` Befehl.
Jeder Befehl besitzt einen Hilfstext, den man sich durch `/help Befehlsname` anzeigen lassen kann.
Die link:weechat_user.de.html#key_bindings[Standard Tastenbelegung ^↗^,window=_blank] sowie
link:weechat_user.de.html#commands_and_options[Befehle und Optionen ^↗^,window=_blank] sind im
link:weechat_user.de.html[Benutzerhandbuch ^↗^,window=_blank] aufgeführt.
Die link:weechat_user.de.html#key_bindings[Standard Tastenbelegung] sowie
link:weechat_user.de.html#commands_and_options[Befehle und Optionen] sind im
link:weechat_user.de.html[Benutzerhandbuch] aufgeführt.
Neuen Anwendern wird empfohlen,
die link:weechat_quickstart.de.html[Quickstart Anleitung ^↗^,window=_blank] zu lesen.
die link:weechat_quickstart.de.html[Quickstart Anleitung] zu lesen.
[[display]]
== Anzeige
@@ -126,7 +125,7 @@ Es ist deshalb wichtig, *ALLE* der folgenden Lösungsmöglichkeiten zu prüfen:
("`defutf8 on`" in der Datei ~/.screenrc oder `screen -U` beim Starten von
screen).
* Überprüfe die Option
link:weechat_user.de.html#option_weechat.look.eat_newline_glitch[_weechat.look.eat_newline_glitch_ ^↗^,window=_blank]
link:weechat_user.de.html#option_weechat.look.eat_newline_glitch[_weechat.look.eat_newline_glitch_]
(diese Option kann schwerwiegenden Darstellungsfehler verursachen, wenn man die Option aktiviert hat).
[NOTE]
@@ -142,10 +141,10 @@ Dieser Fehler sollte durch glibc 2.22 behoben sein (vielleicht ist diese Version
verwendeten Distributionen noch nicht verfügbar).
Es gibt folgende Übergangslösung, um das Problem mit der _wcwidth_ zu umgehen:
https://blog.nytsoi.net/2015/05/04/emoji-support-for-weechat[https://blog.nytsoi.net/2015/05/04/emoji-support-for-weechat ^↗^,window=_blank].
https://blog.nytsoi.net/2015/05/04/emoji-support-for-weechat
Siehe https://github.com/weechat/weechat/issues/79[bug report ^↗^,window=_blank]
für weitere Informationen.
Siehe auch diese Fehlermeldung für weitere Informationen:
https://github.com/weechat/weechat/issues/79
[[bars_background]]
=== Weshalb haben Bars, z.B. Titel und Status, keine Hintergrundfarbe bzw. diese endet direkt nach dem Text?
@@ -200,7 +199,7 @@ von einem oder mehreren Fenstern gleichzeitig angezeigt werden.
[[buffers_list]]
=== Wie kann ich eine Liste mit den Buffern z.B. auf der linken Seite anzeigen lassen?
Ab WeeChat ≥ 1.8 wird standardmäßig die link:weechat_user.de.html#buflist[buflist-Erweiterung ^↗^,window=_blank]
Ab WeeChat ≥ 1.8 wird standardmäßig die link:weechat_user.de.html#buflist_plugin["buflist"-Erweiterung]
automatisch geladen und verwendet.
Bei älteren Versionen kann stattdessen das Skript _buffers.pl_ installiert werden:
@@ -248,7 +247,7 @@ finden folgende WeeChat-Befehle Anwendung:
[NOTE]
Die Tasten "meta-OP" und "meta-OQ" können im Hinblick auf das jeweils genutzte Terminal variieren.
Um die korrekten Tasten zu finden, sollte man mit kbd:[Alt+k] die gewünschte Tastenkombination einfangen.
Siehe auch: link:weechat_user.de.html#key_bindings_command_line[Benutzerhandbuch / Tastenbelegung ^↗^,window=_blank].
Siehe auch: link:weechat_user.de.html#key_bindings_command_line[Benutzerhandbuch / Tastenbelegung].
[[customize_buflist]]
=== Wie kann ich die Darstellung der Bufferliste anpassen, z.B. die Farbe des aktiven Buffers?
@@ -272,8 +271,8 @@ Es kann auch eine beliebige numerische Farbe anstelle von "Rot" verwendet werden
Die Buflist-Erweiterung bietet viele Optionen, zum individualisieren. Bitte lesen Sie dazu die Hilfe von jeder Option.
Es gibt zusätzlich die https://github.com/weechat/weechat/wiki/buflist[wiki page ^↗^,window=_blank]
mit Beispielen für die erweiterte buflist Konfiguration.
Es gibt auch eine Wiki-Seite mit Beispielen, wie eine erweiterte Konfiguration aussehen kann:
https://github.com/weechat/weechat/wiki/buflist
[[customize_prefix]]
=== Wie kann ich die Länge eines Nicknamens begrenzen oder die Ausrichtung des Nicks im Chatbereich entfernen?
@@ -319,8 +318,8 @@ Diese Farben können mit den Optionen __weechat.color.status_data_*__
Weitere hotlist Eigenschaften können mit Hilfe der Optionen __weechat.look.hotlist_*__
verändert werden.
Siehe link:weechat_user.de.html#screen_layout[Benutzerhandbuch / Screen layout ^↗^,window=_blank]
für weitere Informationen zur Hotlist.
Siehe link:weechat_user.de.html#screen_layout[Benutzerhandbuch / Screen layout] für
weitere Informationen zur Hotlist.
[[input_bar_size]]
=== Wie kann man eine mehrzeilige Eingabezeile einstellen?
@@ -442,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:
@@ -495,8 +494,8 @@ Ab Version ≥ 0.3.5 kann in den Optionen für eine zu nutzende Farbe die entspr
Zahl der Farbe eingetragen werden (optional: mit dem Befehl `/color` kann man einen Alias für
eine Farbe definieren).
Bitte lese link:weechat_user.de.html#colors[Benutzerhandbuch / Farben ^↗^,window=_blank]
für weitere Informationen die das Farbmanagement betreffen.
Bitte lese link:weechat_user.de.html#colors[Benutzerhandbuch / Farben] für weitere
Informationen die das Farbmanagement betreffen.
[[search_text]]
=== Wie kann ich in einem Buffer nach einem Text suchen (vergleichbar /lastlog in irssi)?
@@ -506,8 +505,8 @@ Die Standardtastenbelegung lautet kbd:[Ctrl+r]
Um zu Highlight-Nachrichten zu springen:
kbd:[Alt+p] für vorherige, kbd:[Alt+n] für die nächste Nachricht.
siehe link:weechat_user.de.html#key_bindings[Benutzerhandbuch / Standard Tastenbelegung ^↗^,window=_blank]
für weitere Informationen zu dieser Funktion.
siehe link:weechat_user.de.html#key_bindings[Benutzerhandbuch / Standard Tastenbelegung] für weitere
Informationen zu dieser Funktion.
[[terminal_focus]]
=== Wie kann ich Befehle ausführen, wenn der Terminal (keinen) Fokus hat?
@@ -560,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
@@ -687,7 +685,7 @@ Es kann auch eine neue Taste eingebunden werden um zu einem Buffer zu wechseln:
----
Eine Auflistung der Standardtastenbelegung findet man in
link:weechat_user.de.html#key_bindings[Benutzerhandbuch / Standard Tastenbelegung ^↗^,window=_blank].
link:weechat_user.de.html#key_bindings[Benutzerhandbuch / Standard Tastenbelegung].
Um zu Buffern zu wechseln die an Position ≥ 100 sind kann ein Trigger definiert
werden um dann z.B. mit einem Kurzbefehl `/123` zum Buffer #123 zu springen:
@@ -866,7 +864,7 @@ ersetzt werden:
----
[[irc_sasl]]
=== Wie kann ich mich vor dem Betreten von Kanälen identifizieren?
=== Wie kann ich mich vor dem Betreten von Channels identifizieren?
Sollte der Server SASL unterstützen,
ist es ratsam auf diese Funktion zurückzugreifen
@@ -879,46 +877,18 @@ und sich nicht mittels "nickserv" zu authentifizieren:
Unterstützt der Server keine SASL Authentifizierung,
kann eine Verzögerung aktiviert werden,
um sich vor dem Betreten von Kanälen bei "nickserv" zu identifizieren:
um sich vor dem Betreten von Channels bei "nickserv" zu identifizieren:
----
/set irc.server.libera.command_delay 5
----
[[edit_autojoin]]
=== Wie kann ich Kanäle zur autojoin Option hinzufügen oder entfernen?
=== 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_dynamic on
----
Für einen einzelnen Server:
----
/set irc.server.libera.autojoin_dynamic on
----
Ab WeeChat ≥ 3.5 kann man mit dem `/autojoin` Befehl den
aktuellen Kanal in die Serveroption autojoin hinzufügen:
----
/autojoin add
----
oder einen beliebigen Kanal:
----
/autojoin add #test
----
Bis WeeChat ≤ 3.4, wird der `/set` Befehl verwendet, um die
Liste der autojoin-Kanäle zu editieren. In folgendem Beispiel
wird der "libera"-Server angepasst:
Um die Liste der autojoin Channels zu editieren,
kann der Befehl `/set` genutzt werden.
In folgendem Beispiel wird der "libera"-Server angepasst:
----
/set irc.server.libera.autojoin [TAB]
@@ -928,16 +898,16 @@ wird der "libera"-Server angepasst:
Man kann den Namen oder den Wert einer Option mit kbd:[Tab] vervollständigen
oder mittels kbd:[Shift+Tab] eine teilweise Vervollständigung durchführen,
was bei Namen sinnvoll ist, denn so braucht nicht die komplette Liste
der Kanäle neu geschrieben werden.
der Channels neu geschrieben werden.
Es kann auch der `/fset` Befehl verwendet werden, um die Liste der Kanäle
Es kann auch der `/fset` Befehl verwendet werden, um die Liste der Channels
zu editieren:
----
/fset autojoin
----
Bis WeeChat ≤ 3.4 kann man auch ein Skript nutzen:
oder man nutzt ein Skript:
----
/script search autojoin
@@ -947,9 +917,9 @@ Bis WeeChat ≤ 3.4 kann man auch ein Skript nutzen:
=== Was ist der Unterschied zwischen dem Befehl /ignore und /filter?
Der Befehl `/ignore` ist ein (clientseitiger) IRC-Befehl und beeinflusst direkt,
welche vom Server empfangenen Nachrichten im IRC-Buffer (Server und Kanäle) landen.
welche vom Server empfangenen Nachrichten im IRC-Buffer (Server und Channel) landen.
Durch diesen Befehl können bestimmte Nicks oder Hostnamen von bestimmten Servern
oder Kanäle ignoriert werden.
oder Channels ignoriert werden.
Der Befehl wird nicht auf den Inhalt eines IRC-Buffers angewandt.
Zutreffende Meldungen werden, bevor sie dem Buffer zugeführt werden,
von der "irc"-Erweiterung gelöscht. Es gibt somit keine Möglichkeit,
@@ -970,7 +940,7 @@ Die voreingestellte Tastenkombination zum Aktivieren bzw. Deaktivieren
aller Filter ist kbd:[Alt+-].
[[filter_irc_join_part_quit]]
=== Wie kann ich join/part/quit Meldungen in den IRC Kanälen filtern/unterdrücken?
=== Wie kann ich join/part/quit Meldungen in den IRC Channels filtern/unterdrücken?
Zum einen mit dem Smart-Filter.
Bei dessen Anwendung werden join/part/quit-Meldungen von Usern angezeigt,
@@ -990,19 +960,19 @@ Dabei werden *alle* join/part/quit Nachrichten unterdrückt:
[NOTE]
Für weitere Hilfe: `/help filter`, `+/help irc.look.smart_filter+` und
link:weechat_user.de.html#irc_smart_filter_join_part_quit[Benutzerhandbuch / einfacher Filter für join/part/quit Nachrichten ^↗^,window=_blank].
link:weechat_user.de.html#irc_smart_filter_join_part_quit[Benutzerhandbuch / einfacher Filter für join/part/quit Nachrichten].
[[filter_irc_join_channel_messages]]
=== Wie kann ich Server-Nachrichten filtern, wenn ich einen IRC Kanal betrete?
=== Wie kann ich Server-Nachrichten filtern, wenn ich einen IRC Channel betrete?
Ab WeeChat ≥ 0.4.1 kann man auswählen, welche Server-Nachrichten beim Betreten
eines Kanals angezeigt und welche verborgen werden sollen. Dazu nutzt man
eines Channels angezeigt und welche verborgen werden sollen. Dazu nutzt man
die Option _irc.look.display_join_message_ (für weitere Informationen, siehe
`+/help irc.look.display_join_message+`).
Um Nachrichten visuell zu verbergen, können diese gefiltert werden.
Dazu wird der Befehl `/filter` auf bestimmte Nachrichten-Tags angewandt.
Das Tag _irc_329_ kennzeichnet beispielsweise das Erstellungsdatum des Kanals.
Das Tag _irc_329_ kennzeichnet beispielsweise das Erstellungsdatum des Channels.
Siehe `/help filter`, um weitere Informationen über die Filterfunktion zu
erhalten.
@@ -1017,13 +987,13 @@ da diese dazu genutzt werden um den Abwesenheitsstatus anderer User anzuzeigen
und man nicht von diesen Mitteilungen überflutet werden möchte,
kann man WeeChat anweisen, abwesende Nicks in einer anderen Farbe darzustellen.
Nutzt man Bitlbee ≥ 3, sollte man im _&bitlbee_ Kanal folgendes eingeben:
Nutzt man Bitlbee ≥ 3, sollte man im _&bitlbee_ Channel folgendes eingeben:
----
channel set show_users online,away
----
für ältere Versionen von Bitlbee gibt man im _&bitlbee_ Kanal ein:
für ältere Versionen von Bitlbee gibt man im _&bitlbee_ Channel ein:
----
set away_devoice false
@@ -1049,12 +1019,12 @@ in welchem Zeitintervall die Überprüfungen auf Abwesenheit stattfinden sollen.
Die Angabe des Wertes erfolgt in Minuten.
Mit der Option _irc.server_default.away_check_max_nicks_ kann festgelegt werden,
in welchen Kanälen eine Überprüfung stattfinden soll.
Hierbei stellt der angegebene Wert die maximale Anzahl an Nicks in einem Kanal dar,
die den Kanal gleichzeitig besuchen dürfen.
in welchen Channels eine Überprüfung stattfinden soll.
Hierbei stellt der angegebene Wert die maximale Anzahl an Nicks in einem Channel dar,
die den Channel gleichzeitig besuchen dürfen.
Im folgenden Beispiel wird der Abwesenheitsstatus alle fünf Minuten überprüft.
Dabei werden aber nur solche Kanäle berücksichtigt, die nicht mehr als 25
Dabei werden aber nur solche Channels berücksichtigt, die nicht mehr als 25
Teilnehmer haben:
----
@@ -1067,7 +1037,7 @@ Für WeeChat ≤ 0.3.3, lauten die Optionen _irc.network.away_check_ und
_irc.network.away_check_max_nicks_.
[[highlight_notification]]
=== Wie kann ich mich benachrichtigen lassen, falls mich jemand in einem Kanal direkt anspricht (highlight)?
=== Wie kann ich mich benachrichtigen lassen, falls mich jemand in einem Channel direkt anspricht (highlight)?
Seit WeeChat ≥ 1.0 gibt es standardmäßig den Trigger "beep",
der an das Terminal ein _BEL_ Signal schickt,
@@ -1100,7 +1070,7 @@ Es gibt weitere Skripten, die auch zu diesem Thema passen:
=== Wie kann ich Highlights (Hervorhebungen) von bestimmten Nicks deaktivieren?
Ab WeeChat ≥ 0.3.4 kann die Eigenschaft
link:weechat_user.de.html#max_hotlist_level_nicks[hotlist_max_level_nicks_add ^↗^,window=_blank]
link:weechat_user.de.html#max_hotlist_level_nicks[hotlist_max_level_nicks_add]
für den entsprechenden Buffer gesetzt werden.
Dies kann für einzelne Nicks,
einen Buffer oder eine Gruppe von Buffern (z.B. IRC Server) gelten.
@@ -1120,7 +1090,7 @@ das Skript _buffer_autoset.py_ nutzen:
/script install buffer_autoset.py
----
Um zum Beispiel Highlights (Hervorhebungen) von Nick "mike" im Kanal
Um zum Beispiel Highlights (Hervorhebungen) von Nick "mike" im Channel
#weechat auf dem IRC Server libera zu deaktivieren:
----
@@ -1203,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?
@@ -1313,7 +1275,7 @@ Definiere eine Passphrase und nutze ausschließlich geschützte Daten wann immer
es möglich ist, wie z.B. bei Passwörtern: siehe `/help secure` und nutze `/help`
bei der entsprechenden Option (falls man geschützte Daten nutzen kann, wird es
im Hilfstext erwähnt).
Siehe auch link:weechat_user.de.html#secured_data[Benutzerhandbuch / sensible Daten ^↗^,window=_blank].
Siehe auch link:weechat_user.de.html#secured_data[Benutzerhandbuch / sensible Daten].
Beispiel:
@@ -1334,7 +1296,7 @@ Ihrer Passphrase verschlüsselten Kennwörter enthält.
Einige andere Dateien enthalten möglicherweise vertrauliche Informationen wie
Kennwörter (sofern sie nicht mit dem Befehl `/secure` in _sec.conf_ gesichert werden).
Siehe link:weechat_user.de.html#files_and_directories[Benutzerhandbuch / Dateien und Verzeichnisse ^↗^,window=_blank]
Siehe link:weechat_user.de.html#files_and_directories[Benutzerhandbuch / Dateien und Verzeichnisse]
für weitere Informationen über Konfigurationsdateien.
[[development]]
@@ -1343,7 +1305,7 @@ für weitere Informationen über Konfigurationsdateien.
[[bug_task_patch]]
=== Was kann ich machen, falls ich einen Fehler gefunden habe, mich nach neuen Funktionen erkundigen oder Patches einsenden möchte?
siehe https://weechat.org/about/support/[this page ^↗^,window=_blank].
siehe: https://weechat.org/about/support
[[gdb_error_threads]]
=== Wenn man WeeChat in gdb startet, kann ein Thread-Fehler auftreten. Was beudeutet das?
@@ -1381,11 +1343,11 @@ Das Gleiche gilt für Systeme, zu denen wir keinen Zugang haben.
Es gibt einiges zu tun - z.B. testen, programmieren, dokumentieren, ...
Bitte kontaktieren Sie uns per IRC oder Mail, siehe
https://weechat.org/about/support/[support page ^↗^,window=_blank].
Bitte kontaktiere uns via IRC oder E-Mail, wirf einen Blick auf die Support-Seite:
https://weechat.org/about/support
[[donate]]
=== Kann ich Geld oder anderes an die WeeChat Entwickler spenden?
Sie können uns Geld spenden, um die Entwicklung zu unterstützen.
Details dazu, unter https://weechat.org/donate/[donation page ^↗^,window=_blank].
Du kannst uns Geld zur Unterstützung der weiteren Entwicklung spenden.
Details hierzu gibt es auf: https://weechat.org/donate
+10 -20
View File
@@ -223,15 +223,11 @@ in folgender Option erreicht werden:
/set irc.server.libera.autojoin "#channel1,#channel2"
----
Mit dem `/autojoin` Befehl können die _autojoin_ Optionen einfach konfiguriert werden.
(siehe `/help autojoin`).
WeeChat kann auch konfigurieren werden, dass die _autojoin_ Optionen automatisch aktualisiert werden
sobald man Kanäle betritt oder verlässt:
----
/set irc.server_default.autojoin_dynamic on
----
[TIP]
Mittels der kbd:[Tab] Taste kann man sehr einfach Namen und Werte von Optionen
vervollständigen und mittels kbd:[Shift+Tab] kann eine teilweise Vervollständigung
durchgeführt werden (was bei langen Wörtern, wie z.B. dem Namen einer Option, nützlich
sein kann).
Mit dem Befehl `/unset` können Server-Optionen zurückgesetzt werden.
Ist eine Server-Option zurückgesetzt, _wirkt_ der entsprechende Vorgabewert
@@ -250,12 +246,6 @@ Werte anderer Server-Optionen (`xxx`) können festgelegt werden mit:
/set irc.server.libera.xxx Wert
----
[TIP]
Mittels der kbd:[Tab] Taste kann man sehr einfach Namen und Werte von Optionen
vervollständigen und mittels kbd:[Shift+Tab] kann eine teilweise Vervollständigung
durchgeführt werden (was bei langen Wörtern, wie z.B. dem Namen einer Option, nützlich
sein kann).
[[connect_to_irc_server]]
== Verbinden mit dem IRC-Server
@@ -441,14 +431,14 @@ Zeige eine liste aller verfügbaren Skripten:
/script
----
Eine Liste von Skripten ist in WeeChat mittels `/script` oder auf
https://weechat.org/scripts/[this page ^↗^,window=_blank] verfügbar.
Auf *weechat.org* von Drittanbietern bereitgestellte Scripten: https://weechat.org/scripts
[[more_doc]]
== Weitere Dokumentation
WeeChat kann nun verwendet werden und lesen Sie
https://weechat.org/doc/[FAQ/documentation ^↗^,window=_blank]
falls Sie weitere Fragen haben.
Mit dieser Quickstart-Anleitung wurden dir die wesentlichen
Bedienungswerkzeuge von WeeChat nähergebracht.
Für das eingehende Studium aller verfügbaren Funktionalitäten
sei dir unsere ausführliche FAQ/Dokumentation ans Herz gelegt: https://weechat.org/doc
Viel Spass mit WeeChat!
+147 -201
View File
@@ -17,8 +17,8 @@
Diese Anleitung beschreibt den WeeChat Chat Client und ist Teil von WeeChat.
Die neueste Version dieses Dokuments finden Sie unter
https://weechat.org/doc/[this page ^↗^,window=_blank].
Die aktuelle Version dieser Anleitung finden Sie auf:
https://weechat.org/doc
[[introduction]]
@@ -67,7 +67,7 @@ Ein Skript darf *NIEMALS* einen fork nutzen oder einen eigenen Thread erstellen,
dafür gibt es explizit eine API Funktion, andernfalls kann WeeChat abstürzen. +
Wenn etwas in einem Hintergrundprozess ausgeführt werden soll, kann die Funktion
`+hook_process+` genutzt werden. Siehe Beispiele im Kapitel <<hook_process,Hintergrundprozesse>>
und die Dokumentation für die Funktion `+hook_process+` in link:weechat_plugin_api.en.html#_hook_process[WeeChat plugin API reference ^↗^,window=_blank] (Englisch).
und die Dokumentation für die Funktion `+hook_process+` in link:weechat_plugin_api.en.html#_hook_process[WeeChat plugin API reference] (Englisch).
[[languages_specificities]]
=== Besonderheiten der einzelnen Skriptsprachen
@@ -81,7 +81,7 @@ und die Dokumentation für die Funktion `+hook_process+` in link:weechat_plugin_
WeeChat definiert ein `weechat` Module welches mittels `import weechat`
importiert werden muss. +
Ein Python-Stub für die WeeChat-API ist im Repository verfügbar:
https://raw.githubusercontent.com/weechat/weechat/master/src/plugins/python/weechat.pyi[weechat.pyi ^↗^,window=_blank].
https://raw.githubusercontent.com/weechat/weechat/master/src/plugins/python/weechat.pyi[weechat.pyi].
[[python_functions]]
===== Funktionen
@@ -109,38 +109,38 @@ Liste ist nicht vollständig):
|===
| API Funktion | Argumente | Beispiele| Beschreibung
| hook_modifier
| irc_in_yyy
| pass:[irc_in_privmsg] +
pass:[irc_in_notice]
| Eine Nachricht die von der IRC Erweiterung empfangen wurde und bevor sie nach UTF-8 dekodiert wurde (intern
| hook_modifier |
irc_in_yyy |
pass:[irc_in_privmsg] +
pass:[irc_in_notice] |
Eine Nachricht die von der IRC Erweiterung empfangen wurde und bevor sie nach UTF-8 dekodiert wurde (intern
verwendet). +
+
Es wird empfohlen den Modifier `+irc_in2_yyy+` zu nutzen, da die empfangene Zeichenkette
immer UTF-8 gültig ist. +
siehe Funktion `+hook_modifier+` in der
link:weechat_plugin_api.en.html#_hook_modifier[WeeChat Anleitung für API Erweiterung ^↗^,window=_blank].
link:weechat_plugin_api.en.html#_hook_modifier[WeeChat Anleitung für API Erweiterung].
| hook_signal
| xxx,irc_out_yyy +
xxx,irc_outtags_yyy
| pass:[*,irc_out_privmsg] +
| hook_signal |
xxx,irc_out_yyy +
xxx,irc_outtags_yyy |
pass:[*,irc_out_privmsg] +
pass:[*,irc_out_notice] +
pass:[*,irc_outtags_privmsg] +
pass:[*,irc_outtags_notice]
| Eine Nachricht welche von der IRC Erweiterung versendet wurde, nachdem diese entsprechend
pass:[*,irc_outtags_notice] |
Eine Nachricht welche von der IRC Erweiterung versendet wurde, nachdem diese entsprechend
der Benutzereinstellung `encode` Charset kodiert (falls abweichend von der `UTF-8` Standardeinstellung). +
+
Es wird empfohlen das Signal `+xxx,irc_out1_yyy+` zu nutzen, da die empfangene Zeichenkette
immer UTF-8 gültig ist. +
siehe Funktion `+hook_signal+` in der
link:weechat_plugin_api.en.html#_hook_signal[WeeChat Anleitung für API Erweiterung ^↗^,window=_blank].
link:weechat_plugin_api.en.html#_hook_signal[WeeChat Anleitung für API Erweiterung].
| hook_process +
hook_process_hashtable
| -
| -
| Ausgabe des Befehls, dass an den Callback gesendet wurde, kann ungültige UTF-8 Daten enthalten.
hook_process_hashtable |
- |
- |
Ausgabe des Befehls, dass an den Callback gesendet wurde, kann ungültige UTF-8 Daten enthalten.
|===
@@ -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)
@@ -390,7 +384,7 @@ ein Link in das entsprechende _autoload_ Verzeichnis erzeugt.
Die Skripten API ist nahezu identisch mit der API der C Erweiterung.
Um einen Überblick über alle API Funktionen (Prototyp, Argumente,
Rückgabe werte, Beispiele) zu erhalten werfen Sie einen Blick in
die link:weechat_plugin_api.en.html[WeeChat Plugin API Reference ^↗^,window=_blank] (Englisch).
die link:weechat_plugin_api.en.html[WeeChat Plugin API Reference] (Englisch).
Es ist wichtig das man zwischen einer _Erweiterung_ und einem _Skript_
unterscheidet: Eine _Erweiterung_ ist eine Binärdatei die kompiliert wurde
und mittels `/plugin` geladen wird. Ein _Skript_ ist eine Textdatei welche
@@ -559,25 +553,25 @@ weechat_hook_timer(1000, 0, 1, $timer_cb, 'test');
== Skript API
Um weiterführende Informationen zu den API Funktionen zu erhalten
lesen Sie bitte link:weechat_plugin_api.en.html[WeeChat Plugin API Reference ^↗^,window=_blank] (Englisch).
lesen Sie bitte link:weechat_plugin_api.en.html[WeeChat Plugin API Reference] (Englisch).
[[script_api_functions]]
=== Funktionen
Liste der Skript API Funktionen:
[width="100%",cols="1,5",options="header"]
[width="100%",cols="1,3",options="header"]
|===
| Kategorie | Funktionen
| Allgemein
| register
| Allgemein |
register
| Erweiterungen
| plugin_get_name
| Erweiterungen |
plugin_get_name
| Strings
| charset_set +
| Strings |
charset_set +
iconv_to_internal +
iconv_from_internal +
gettext +
@@ -589,7 +583,6 @@ Liste der Skript API Funktionen:
string_has_highlight_regex +
string_mask_to_regex +
string_format_size +
string_parse_size +
string_color_code_size +
string_remove_color +
string_is_command_char +
@@ -597,13 +590,13 @@ Liste der Skript API Funktionen:
string_eval_expression +
string_eval_path_home
| Verzeichnisse
| mkdir_home +
| Verzeichnisse |
mkdir_home +
mkdir +
mkdir_parents
| sortierte Listen
| list_new +
| sortierte Listen |
list_new +
list_add +
list_search +
list_search_pos +
@@ -619,8 +612,8 @@ Liste der Skript API Funktionen:
list_remove_all +
list_free
| Konfigurationsdatei
| config_new +
| Konfigurationsdatei |
config_new +
config_new_section +
config_search_section +
config_new_option +
@@ -657,21 +650,20 @@ Liste der Skript API Funktionen:
config_set_desc_plugin +
config_unset_plugin
| Tastenbelegung
| key_bind +
| Tastenbelegung |
key_bind +
key_unbind
| Ausgabe
| prefix +
| Ausgabe |
prefix +
color +
print (für Python: prnt) +
print_date_tags (für Python: prnt_date_tags) +
print_y (für Python: prnt_y) +
print_y_date_tags (für Python: prnt_y_date_tags) +
log_print
| Hooks
| hook_command +
| Hooks |
hook_command +
hook_command_run +
hook_timer +
hook_fd +
@@ -696,9 +688,8 @@ Liste der Skript API Funktionen:
unhook +
unhook_all
| Buffer
| buffer_new +
buffer_new_props +
| Buffer |
buffer_new +
current_buffer +
buffer_search +
buffer_search_main +
@@ -713,16 +704,16 @@ Liste der Skript API Funktionen:
buffer_string_replace_local_var +
buffer_match_list
| Fenster
| current_window +
| Fenster |
current_window +
window_search_with_buffer +
window_get_integer +
window_get_string +
window_get_pointer +
window_set_title
| Nickliste
| nicklist_add_group +
| Nickliste |
nicklist_add_group +
nicklist_search_group +
nicklist_add_nick +
nicklist_search_nick +
@@ -738,8 +729,8 @@ Liste der Skript API Funktionen:
nicklist_nick_get_pointer +
nicklist_nick_set
| Bars
| bar_item_search +
| Bars |
bar_item_search +
bar_item_new +
bar_item_update +
bar_item_remove +
@@ -749,23 +740,23 @@ Liste der Skript API Funktionen:
bar_update +
bar_remove
| Befehle
| command +
| Befehle |
command +
command_options
| Vervollständigung
| completion_new +
| Vervollständigung |
completion_new +
completion_search +
completion_get_string +
completion_list_add +
completion_free
| Informationen
| info_get +
| Informationen |
info_get +
info_get_hashtable
| Infolisten
| infolist_new +
| Infolisten |
infolist_new +
infolist_new_item +
infolist_new_var_integer +
infolist_new_var_string +
@@ -783,8 +774,8 @@ Liste der Skript API Funktionen:
infolist_time +
infolist_free
| hdata
| hdata_get +
| hdata |
hdata_get +
hdata_get_var_offset +
hdata_get_var_type_string +
hdata_get_var_array_size +
@@ -805,8 +796,8 @@ Liste der Skript API Funktionen:
hdata_update +
hdata_get_string
| Upgrade
| upgrade_new +
| Upgrade |
upgrade_new +
upgrade_write_object +
upgrade_read +
upgrade_close
@@ -817,17 +808,17 @@ 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
| return codes
| `WEECHAT_RC_OK` (integer) +
| return codes |
`WEECHAT_RC_OK` (integer) +
`WEECHAT_RC_OK_EAT` (integer) +
`WEECHAT_RC_ERROR` (integer)
| Konfigurationsdatei
| `WEECHAT_CONFIG_READ_OK` (integer) +
| Konfigurationsdatei |
`WEECHAT_CONFIG_READ_OK` (integer) +
`WEECHAT_CONFIG_READ_MEMORY_ERROR` (integer) +
`WEECHAT_CONFIG_READ_FILE_NOT_FOUND` (integer) +
`WEECHAT_CONFIG_WRITE_OK` (integer) +
@@ -842,23 +833,23 @@ Liste der Konstanten in Skript API:
`WEECHAT_CONFIG_OPTION_UNSET_OK_REMOVED` (integer) +
`WEECHAT_CONFIG_OPTION_UNSET_ERROR` (integer)
| sortierte Listen
| `WEECHAT_LIST_POS_SORT` (string) +
| sortierte Listen |
`WEECHAT_LIST_POS_SORT` (string) +
`WEECHAT_LIST_POS_BEGINNING` (string) +
`WEECHAT_LIST_POS_END` (string)
| Hotlist
| `WEECHAT_HOTLIST_LOW` (string) +
| Hotlist |
`WEECHAT_HOTLIST_LOW` (string) +
`WEECHAT_HOTLIST_MESSAGE` (string) +
`WEECHAT_HOTLIST_PRIVATE` (string) +
`WEECHAT_HOTLIST_HIGHLIGHT` (string)
| hook Prozesse
| `WEECHAT_HOOK_PROCESS_RUNNING` (integer) +
| hook Prozesse |
`WEECHAT_HOOK_PROCESS_RUNNING` (integer) +
`WEECHAT_HOOK_PROCESS_ERROR` (integer)
| hook Connect
| `WEECHAT_HOOK_CONNECT_OK` (integer) +
| hook Connect |
`WEECHAT_HOOK_CONNECT_OK` (integer) +
`WEECHAT_HOOK_CONNECT_ADDRESS_NOT_FOUND` (integer) +
`WEECHAT_HOOK_CONNECT_IP_ADDRESS_NOT_FOUND` (integer) +
`WEECHAT_HOOK_CONNECT_CONNECTION_REFUSED` (integer) +
@@ -870,8 +861,8 @@ Liste der Konstanten in Skript API:
`WEECHAT_HOOK_CONNECT_TIMEOUT` (integer) +
`WEECHAT_HOOK_CONNECT_SOCKET_ERROR` (integer)
| hook Signal
| `WEECHAT_HOOK_SIGNAL_STRING` (string) +
| hook Signal |
`WEECHAT_HOOK_SIGNAL_STRING` (string) +
`WEECHAT_HOOK_SIGNAL_INT` (string) +
`WEECHAT_HOOK_SIGNAL_POINTER` (string)
|===
@@ -882,7 +873,7 @@ Liste der Konstanten in Skript API:
Dieses Kapitel beinhaltet einige Aufgaben mit Lösungsbeispielen.
Die Skript API wird dabei nur sehr oberflächlich besprochen.Um eine vollständige
Übersicht aller Befehle zu erhalten nutzen Sie bitte die
link:weechat_plugin_api.en.html[WeeChat Plugin API Reference ^↗^,window=_blank] (Englisch).
link:weechat_plugin_api.en.html[WeeChat Plugin API Reference] (Englisch).
[[buffers]]
=== Buffer
@@ -902,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
@@ -1082,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
@@ -1143,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/",
@@ -1159,17 +1123,16 @@ weechat.hook_process("url:https://weechat.org/dev/info/stable/",
----
[TIP]
Alle verfügbaren Informationen über WeeChat findet man unter
https://weechat.org/dev/info/[this page ^↗^,window=_blank].
Alle Informationen die WeeChat betreffen findet man auf: https://weechat.org/dev/info
Beispiel eines URL Transfers, mit zusätzliche Optionen: Es wird das neuste
WeeChat Entwicklerpaket in die Datei _/tmp/weechat-devel.tar.gz_ gesichert:
[source,python]
----
def my_process_cb(data, command, 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",
@@ -1179,7 +1142,7 @@ weechat.hook_process_hashtable("url:https://weechat.org/files/src/weechat-devel.
Für weitere Informationen zum URL Transfer und verfügbare Optionen, siehe Funktionen
`+hook_process+` und `+hook_process_hashtable+` in
link:weechat_plugin_api.en.html#_hook_process[WeeChat plugin API reference ^↗^,window=_blank] (Englisch).
link:weechat_plugin_api.en.html#_hook_process[WeeChat plugin API reference] (Englisch).
[[config_options]]
=== Konfiguration / Optionen
@@ -1335,71 +1298,59 @@ Das Ergebnis ist eine Hashtabelle mit folgenden Schlüsseln
[width="100%",cols="3,^2,10,7",options="header"]
|===
| Schlüssel | Seit WeeChat ^(1)^ | Beschreibung | Beispiel
| Schlüssel | Seit WeeChat ^(1)^ | Beschreibung | Beispiel
| Tags | 0.4.0
| Tags in der Nachricht (kann leer sein).
| `+time=2015-06-27T16:40:35.000Z+`
| Tags | 0.4.0 |
Tags in der Nachricht (kann leer sein). |
`+time=2015-06-27T16:40:35.000Z+`
| 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!+`
| message_without_tags | 0.4.0
| Die IRC Nachricht ohne Tags (wie eine Nachricht ohne Tags).
| `+:nick!user@host PRIVMSG #weechat :hello!+`
| nick | 0.3.4 |
der ursprüngliche Nick. |
`+nick+`
| nick | 0.3.4
| der ursprüngliche Nick.
| `+nick+`
| user | 2.7 |
der ursprüngliche Benutzer. |
`+user+`
| user | 2.7
| der ursprüngliche Benutzer.
| `+user+`
| host | 0.3.4 |
der ursprüngliche Host (beinhaltet den Nick). |
`+nick!user@host+`
| host | 0.3.4
| der ursprüngliche Host (beinhaltet den Nick).
| `+nick!user@host+`
| command | 0.3.4 |
der Befehl (_PRIVMSG_, _NOTICE_, ...). |
`+PRIVMSG+`
| command | 0.3.4
| der Befehl (_PRIVMSG_, _NOTICE_, ...).
| `+PRIVMSG+`
| channel | 0.3.4
| der Zielchanne.l|
| channel | 0.3.4 |
der Zielchanne.l|
`+#weechat+`
| arguments | 0.3.4
| das Argument des Befehls (beinhaltet den Channel).
| `+#weechat :hello!+`
| arguments | 0.3.4 |
das Argument des Befehls (beinhaltet den Channel). |
`+#weechat :hello!+`
| text | 1.3
| der Text (zum Beispiel eine Nachricht eines Users).
| `+hello!+`
| text | 1.3 |
der Text (zum Beispiel eine Nachricht eines Users). |
`+hello!+`
| paramN | 3.4
| Befehlsparameter (von 1 bis N).
| `+#weechat+`
| pos_command | 1.3 |
Index von _command_ innerhalb einer Nachricht ("-1" falls _command_ nicht gefunden wird). |
`+47+`
| num_params | 3.4
| Anzahl der Befehlsparameter.
| `+2+`
| pos_arguments | 1.3 |
Index von_arguments_ innerhalb einer Nachricht ("-1" falls _arguments_ nicht gefunden wird). |
`+55+`
| pos_command | 1.3
| Index von _command_ innerhalb einer Nachricht ("-1" falls _command_ nicht gefunden wird).
| `+47+`
| pos_channel | 1.3 |
Index von _channel_ innerhalb einer Nachricht ("-1" falls _channel_ nicht gefunden wird). |
`+55+`
| pos_arguments | 1.3
| Index von_arguments_ innerhalb einer Nachricht ("-1" falls _arguments_ nicht gefunden wird).
| `+55+`
| pos_channel | 1.3
| Index von _channel_ innerhalb einer Nachricht ("-1" falls _channel_ nicht gefunden wird).
| `+55+`
| pos_text | 1.3
| Index von _text_ innerhalb einer Nachricht ("-1" falls _text_ nicht gefunden wird).
| `+65+`
| pos_text | 1.3 |
Index von _text_ innerhalb einer Nachricht ("-1" falls _text_ nicht gefunden wird). |
`+65+`
|===
[NOTE]
@@ -1409,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",
@@ -1423,13 +1372,10 @@ dict = weechat.info_get_hashtable(
# "channel": "#weechat",
# "arguments": "#weechat :hello!",
# "text": "hello!",
# "param1": "#weechat",
# "param2": "hello!",
# "num_params": "2",
# "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!
+2105 -3048
View File
File diff suppressed because it is too large Load Diff
+3 -6
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
@@ -487,8 +485,7 @@ class AutogenDoc():
f'autogen_{name}.{self.locale[:2]}.adoc',
)
self.filename_tmp = f'{self.filename}.tmp'
# pylint: disable=consider-using-with
self._file = open(self.filename_tmp, 'w', encoding='utf-8')
self._file = open(self.filename_tmp, 'w')
def write_autogen_files(self, weechat_doc):
"""Write auto-generated files."""
@@ -783,7 +780,7 @@ class AutogenDoc():
self.write('// tag::url_options[]')
self.write('[width="100%",cols="2,^1,7",options="header"]')
self.write('|===')
self.write('| %s | %s ^(1)^ | %s ^(2)^\n',
self.write('| %s | %s ^(1)^ | %s ^(2)^\n',
_('Option'), _('Type'), _('Constants'))
for option in url_options:
constants = option['constants']
+6 -223
View File
@@ -1,255 +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 {
color-scheme: dark;
--body-bg-color: #1a1a1a;
--body-color: #ddd;
--body-font: system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";
--link-color: #7abeef;
--table-thead-tfoot: #252525;
--th-color: #fff;
--toc-bg-color: #252525;
--color-header1: #ddd;
--color-header2: #da8975;
--header-details-color: #aaa;
--border: 1px solid #444;
--code-bg-color: #252525;
--pre-color: #ddd;
--pre-bg-color: #202020;
--pre-code-bg-color: #202020;
--keyseq-color: #777;
--kbd-bg-color: #252525;
--kbd-border: 1px solid #333;
--kbd-box-shadow: 0 1px 0 rgba(0, 0, 0, .2), inset 0 0 0 .1em #2c2c2c;
--icon-note-color: #4d7cc6;
--icon-tip-color: #fff;
--icon-warning-color: #f39c12;
--icon-caution-color: #bf3400;
--icon-important-color: #f44336;
--mark-bg-color: #007;
}
}
@media (not (prefers-color-scheme: dark)), (prefers-color-scheme: light) {
/* light theme */
:root {
color-scheme: light;
--body-bg-color: ##fff;
--body-color: #353535;
--body-font: system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";
--link-color: #3d6baf;
--table-thead-tfoot: #f7f8f7;
--th-color: #000;
--toc-bg-color: #f8f8f7;
--color-header1: #000;
--color-header2: #ba3925;
--header-details-color: #797979;
--border: 1px solid #dddddf;
--code-bg-color: #f7f7f8;
--keyseq-color: #333c;
--pre-color: #353535;
--pre-bg-color: #f7f7f8;
--pre-code-bg-color: #202020;
--kbd-bg-color: #f7f7f7;
--kbd-border: 1px solid #ccc;
--kbd-box-shadow: 0 1px 0 rgba(0, 0, 0, .2), inset 0 0 0 .1em #fff;
--icon-note-color: #19407c;
--icon-tip-color: #111;
--icon-warning-color: #bf6900;
--icon-caution-color: #ff0000;
--icon-important-color: #bf0000;
--mark-bg-color: #9df;
}
}
body {
background-color: var(--body-bg-color);
color: var(--body-color);
font-family: var(--body-font);
}
h1 {
color: var(--color-header1) !important;
}
h2, h3, h4, h5, h6 {
color: var(--color-header2) !important;
}
h1, h2, h3, #toctitle, .sidebarblock > .content > .title, h4, h5, h6 {
font-family: var(--body-font);
}
a:link, a:visited, #header .details span.email a {
color: var(--link-color);
text-decoration: none;
}
table thead, table tfoot {
background: var(--table-thead-tfoot) !important;
}
table.tableblock, th.tableblock, td.tableblock {
border: var(--border);
}
th {
color: var(--th-color) !important;
}
td {
background-color: var(--body-bg-color);
color: var(--body-color) !important;
}
#toc.toc2 {
background-color: var(--toc-bg-color);
border-right: none;
}
#toc.toc2 > ul {
font-size: .9em;
}
@media screen and (max-width:767px) {
#toc.toc2 {
background-color: var(--body-bg-color);
}
}
p, .paragraph.lead > p, #preamble > .sectionbody > [class="paragraph"]:first-of-type p, #toctitle, .title {
color: var(--body-color);
}
#header .details {
border-bottom: var(--border);
color: var(--header-details-color);
}
code, .prettyprint {
background-color: var(--code-bg-color) !important;
color: var(--body-color);
}
pre {
color: var(--pre-color) !important;
}
pre > code {
background-color: var(--pre-code-bg-color) !important;
}
.keyseq {
color: var(--keyseq-color);
}
kbd {
background-color: var(--kbd-bg-color) !important;
border: var(--kbd-border) !important;
box-shadow: var(--kbd-box-shadow);
color: var(--body-color);
}
.literalblock pre, .listingblock > .content > pre:not(.highlight), .listingblock > .content > pre[class="highlight"], .listingblock > .content > pre[class^="highlight "] {
background-color: var(--pre-bg-color);
color: var(--body-color);
}
.sect1 + .sect1 {
border-top: var(--border);
}
.admonitionblock td.icon .icon-note::before {
color: var(--icon-note-color);
}
.admonitionblock td.icon .icon-tip::before {
color: var(--icon-tip-color);
}
.admonitionblock td.icon .icon-warning::before {
color: var(--icon-warning-color);
}
.admonitionblock td.icon .icon-caution::before {
color: var(--icon-caution-color);
}
.admonitionblock td.icon .icon-important::before {
color: var(--icon-important-color);
}
.admonitionblock > table td.content {
border-left: var(--border);
}
mark {
background-color: var(--mark-bg-color);
color: var(--body-color);
}
/* syntax highlighting tuning */
pre.pygments .tok-cp {
color: #44cfaf;
}
pre.pygments .tok-nc, pre.pygments .tok-nf {
color: #649fef;
}
pre.pygments .tok-gu, pre.pygments .tok-nc, pre.pygments .tok-nn {
text-decoration: none;
}
/* asciidoctor styles tuning */
#header, #content, #footnotes, #footer {
#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: "DejaVu Sans Mono", "Liberation Mono", "Lucida Console", monospace, 'Courier New', Courier;
line-height: inherit;
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
@@ -94,8 +92,6 @@
| tcl | tcl_script | list of scripts
| trigger | trigger_add_arguments | arguments for command that adds a trigger: trigger name, hooks, hook arguments, hook conditions, hook regex, hook command, hook return code, post actions
| trigger | trigger_hook_arguments | default arguments for a hook
| trigger | trigger_hook_command | default command for a hook
@@ -150,14 +146,6 @@
| weechat | cursor_areas | areas ("chat" or bar name) for free cursor movement
| weechat | custom_bar_item_add_arguments | arguments for command that adds a custom bar item: item name, conditions, content
| weechat | custom_bar_item_conditions | conditions for custom bar item
| weechat | custom_bar_item_contents | contents for custom bar item
| weechat | custom_bar_items_names | names of custom bar items
| weechat | env_value | value of an environment variable
| weechat | env_vars | environment variables
-10
View File
@@ -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) +
@@ -631,8 +623,6 @@ _text_search_input_   (string) +
_highlight_words_   (string) +
_highlight_regex_   (string) +
_highlight_regex_compiled_   (pointer) +
_highlight_disable_regex_   (string) +
_highlight_disable_regex_compiled_   (pointer) +
_highlight_tags_restrict_   (string) +
_highlight_tags_restrict_count_   (integer) +
_highlight_tags_restrict_array_   (pointer, array_size: "highlight_tags_restrict_count") +
@@ -128,8 +128,6 @@
| weechat | uptime | WeeChat uptime (format: "days:hh:mm:ss") | "days" (number of days) or "seconds" (number of seconds) (optional)
| weechat | uptime_current | WeeChat uptime for the current process only (upgrades with /upgrade command are ignored) (format: "days:hh:mm:ss") | "days" (number of days) or "seconds" (number of seconds) (optional)
| weechat | version | WeeChat version | -
| weechat | version_git | WeeChat git version (output of command "git describe" for a development version only, empty for a stable release) | -
@@ -8,7 +8,7 @@
|===
| Plugin | Name | Description | Hashtable (input) | Hashtable (output)
| irc | irc_message_parse | parse an IRC message | "message": IRC message, "server": server name (optional) | "tags": tags, "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[]
@@ -6,7 +6,7 @@
// tag::url_options[]
[width="100%",cols="2,^1,7",options="header"]
|===
| Option | Type ^(1)^ | Constants ^(2)^
| Option | Type ^(1)^ | Constants ^(2)^
| verbose | long |
+66 -244
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,56 +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>...]]
apply
sort
add: add current channel or a list of channels (with optional keys) to the autojoin option; if you are on the channel and the key is not provided, the key is read in the channel
addraw: use the IRC raw format (same as /join command): all channels separated by commas, optional keys separated by commas
del: delete current channel or a list of channels from the autojoin option
channel: channel name
key: key for the channel
apply: set currently joined channels in the autojoin option
sort: sort alphabetically channels in the autojoin option
Examples:
/autojoin add
/autojoin add #test
/autojoin add #chan1 #chan2
/allchan /autojoin add
/autojoin addraw #chan1,#chan2,#chan3 key1,key2
/autojoin del
/autojoin del #chan1
/autojoin apply
/autojoin sort
----
[[command_irc_ban]]
* `+ban+`: ban nicks or hosts
@@ -176,25 +123,19 @@ Without argument, this command displays the ban list for current channel.
ls: list the capabilities supported by the server
list: list the capabilities currently enabled
req: request a new capability or remove a capability (if starting with "-", for example: "-multi-prefix")
req: request a capability
ack: acknowledge capabilities which require client-side acknowledgement
end: end the capability negotiation
Without argument, "ls" and "list" are sent.
Capabilities supported by WeeChat are: account-notify, away-notify, cap-notify, chghost, extended-join, invite-notify, 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).
Examples:
display supported and enabled capabilities:
/cap
request capabilities multi-prefix and away-notify:
/cap req multi-prefix away-notify
request capability extended-join, remove capability multi-prefix:
/cap req extended-join -multi-prefix
remove capability away-notify:
/cap req -away-notify
/cap
/cap req multi-prefix away-notify
----
[[command_irc_connect]]
@@ -867,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
@@ -1338,8 +1270,8 @@ Examples:
----
/debug list
set <plugin> <level>
dump|hooks [<plugin>]
buffer|certs|color|dirs|infolists|libs|memory|tags|term|windows
dump [<plugin>]
buffer|color|infolists|memory|tags|term|windows
mouse|cursor [verbose]
hdata [free]
time <command>
@@ -1349,13 +1281,12 @@ Examples:
plugin: name of plugin ("core" for WeeChat core)
level: debug level for plugin (0 = disable debug)
dump: save memory dump in WeeChat log file (same dump is written when WeeChat crashes)
hooks: display infos about hooks (with a plugin: display detailed info about hooks created by the plugin)
buffer: dump buffer content with hexadecimal values in log file
certs: display number of loaded trusted certificate authorities
color: display infos about current color pairs
cursor: toggle debug for cursor mode
dirs: display directories
hdata: display infos about hdata (with free: remove all hdata in memory)
hooks: display infos about hooks
infolists: display infos about infolists
libs: display infos about external libraries used
memory: display infos about memory usage
@@ -1411,34 +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 converted to lower case (format: "lower:xxx")
7. a string converted to upper case (format: "upper:xxx")
8. a string with chars to hide (format: "hide:char,string")
9. 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")
10. a reversed string (format: "rev:xxx" or "revscr:xxx")
11. a repeated string (format: "repeat:count,string")
12. length of a string (format: "length:xxx" or "lengthscr:xxx")
13. split of a string (format: "split:number,separators,flags,xxx")
14. split of shell argmuents (format: "split_shell:number,xxx")
15. a color (format: "color:xxx", see "Plugin API reference", function "color")
16. a modifier (format: "modifier:name,data,string")
17. an info (format: "info:name,arguments", arguments are optional)
18. a base 16/32/64 encoded/decoded string (format: "base_encode:base,xxx" or "base_decode:base,xxx")
19. current date/time (format: "date" or "date:format")
20. an environment variable (format: "env:XXX")
21. a ternary operator (format: "if:condition?value_if_true:value_if_false")
22. result of an expression with parentheses and operators + - * / // % ** (format: "calc:xxx")
23. a random integer number (format: "random:min,max")
24. a translated string (format: "translate:xxx")
25. define a user variable (format: "define:name,value")
26. an option (format: "file.section.option")
27. a local variable in buffer
28. 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:
@@ -1450,41 +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 ${lower:TEST} ==> test
/eval -n ${upper:test} ==> TEST
/eval -n ${hide:-,${relay.network.password}} ==> --------
/eval -n ${cut:3,+,test} ==> tes+
/eval -n ${cut:+3,+,test} ==> te+
/eval -n ${date:%H:%M:%S} ==> 07:46:40
/eval -n ${if:${info:term_width}>80?big:small} ==> big
/eval -n ${rev:Hello} ==> olleH
/eval -n ${repeat:5,-} ==> -----
/eval -n ${length:test} ==> 4
/eval -n ${split:1,,,abc,def,ghi} ==> abc
/eval -n ${split:-1,,,abc,def,ghi} ==> ghi
/eval -n ${split:count,,,abc,def,ghi} ==> 3
/eval -n ${split:random,,,abc,def,ghi} ==> def
/eval -n ${split_shell:1,"arg 1" arg2} ==> arg 1
/eval -n ${split_shell:-1,"arg 1" arg2} ==> arg2
/eval -n ${split_shell:count,"arg 1" arg2} ==> 2
/eval -n ${split_shell:random,"arg 1" arg2} ==> arg2
/eval -n ${calc:(5+2)*3} ==> 21
/eval -n ${random:0,10} ==> 3
/eval -n ${base_encode:64,test} ==> dGVzdA==
/eval -n ${base_decode:64,dGVzdA==} ==> test
/eval -n ${translate:Plugin} ==> Extension
/eval -n ${define:len,${calc:5+3}}${len}x${len} ==> 8x8
/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
@@ -1508,7 +1420,7 @@ Examples (conditions):
add|addreplace <name> <buffer>[,<buffer>...] <tags> <regex>
rename <name> <new_name>
recreate <name>
del <name>|-all [<name>...]
del <name>|-all
list: list all filters
enable: enable filters (filters are enabled by default)
@@ -1614,7 +1526,6 @@ list of actions:
delete_previous_char: delete previous char
delete_next_char: delete next char
delete_previous_word: delete previous word
delete_previous_word_whitespace: delete previous word (until whitespace)
delete_next_word: delete next word
delete_beginning_of_line: delete from beginning of line until cursor
delete_end_of_line: delete from cursor until end of line
@@ -1638,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
@@ -1658,49 +1566,6 @@ list of actions:
This command is used by key bindings or plugins.
----
[[command_weechat_item]]
* `+item+`: manage custom bar items
----
/item list
add|addreplace <name> "<conditions>" "<content>"
rename <name> <new_name>
refresh <name> [<name>...]
recreate <name>
del <name>|-all
list: list all custom bar items
add: add a custom bar item
addreplace: add or replace an existing custom bar item
name: custom bar item name
conditions: evaluated conditions to display the bar item (for example to display the bar item only in specific buffers)
content: content (evaluated, see /help eval)
rename: rename a custom bar item
refresh: update content of item in all bars where the item is displayed; any item can be refreshed: default/plugin/custom bar items
recreate: set input with the command used to edit the custom bar item
del: delete a custom bar item
-all: delete all custom bar items
Examples:
add item with terminal size, displayed only in buffers with number = 1:
/item add terminfo "${buffer.number} == 1" "term:${info:term_width}x${info:term_height}"
add item with buffer info:
/item add bufinfo "" "${buffer.number}:${buffer.name}${if:${buffer.zoomed}?(Z)}"
add item with date/time using format "Dec 25, 12:34 +0100", refreshed every minute:
/item add datetime "" "${date:%b %d, %H:%M %z}"
/trigger add datetime_refresh timer "60000;60" "" "" "/item refresh datetime"
add item with number of lines in buffer (displayed/total), refreshed each time a new line is displayed or if filtered lines have changed:
/item add lines_count "" "${calc:${buffer.lines.lines_count}-${buffer.lines.lines_hidden}}/${buffer.lines.lines_count} lines"
/trigger add lines_count_refresh_print print "" "" "" "/item refresh lines_count"
/trigger add lines_count_refresh_signal signal "window_switch;buffer_switch;buffer_lines_hidden;filters_*" "" "" "/item refresh lines_count"
force refresh of item "lines_count":
/item refresh lines_count
recreate item "lines_count" with different conditions or content:
/item recreate lines_count
delete item "lines_count":
/item del lines_count
----
[[command_weechat_key]]
* `+key+`: bind/unbind keys
@@ -1779,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]]
@@ -1830,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.
----
@@ -2077,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
@@ -2123,22 +1955,19 @@ Examples:
----
[[command_weechat_upgrade]]
* `+upgrade+`: save WeeChat session and reload the WeeChat binary without disconnecting from servers
* `+upgrade+`: reload the WeeChat binary without disconnecting from servers
----
/upgrade [-yes] [<path_to_binary>|-save|-quit]
/upgrade [-yes] [<path_to_binary>|-quit]
-yes: required if option "weechat.look.confirm_upgrade" is enabled
path_to_binary: path to WeeChat binary (default is current binary)
-dummy: do nothing (option used to prevent accidental completion with "-quit")
-save: only save the session, do not quit nor reload WeeChat; the configuration files are not saved (if needed you can use /save before this command)
-quit: close *ALL* connections, save session and quit WeeChat, which makes possible a delayed restoration (see below)
This command upgrades and reloads a running WeeChat session. The new WeeChat binary must have been compiled or installed with a package manager before running this command.
Note: SSL connections are lost during upgrade (except with -save), because the reload of SSL sessions is currently not possible with GnuTLS. There is automatic reconnection after upgrade.
Important: use of option -save can be dangerous, it is recommended to use only /upgrade (or with -quit) for a standard upgrade and a restart; the option -save can be used to save the session regularly and restore it in case of after abnormal exit (power outage, crash, etc.)
Note: SSL connections are lost during upgrade, because reload of SSL sessions is currently not possible with GnuTLS. There is automatic reconnection after upgrade.
Upgrade process has 4 steps:
1. save session into files for core and plugins (buffers, history, ..)
@@ -2146,18 +1975,14 @@ Upgrade process has 4 steps:
3. save WeeChat configuration (weechat.conf)
4. execute new WeeChat binary and reload session.
With option "-quit", the process is:
With option "-quit", the process is slightly different:
1. close *ALL* connections (irc, xfer, relay, ...)
2. save session into files (*.upgrade)
3. unload all plugins
4. save WeeChat configuration
5. quit WeeChat
With option "-save", the process is:
1. save session into files (*.upgrade) with a disconnected state for IRC servers and Relay clients (but no disconnection is made)
With -quit or -save, you can restore the session later with this command: weechat --upgrade
IMPORTANT: you must restore the session with exactly same configuration (files *.conf) and if possible the same WeeChat version (or a more recent one).
Then later you can restore session with command: weechat --upgrade
IMPORTANT: you must restore the session with exactly same configuration (files *.conf).
It is possible to restore WeeChat session on another machine if you copy the content of WeeChat home directories (see /debug dirs).
----
@@ -2342,7 +2167,6 @@ The following variables can be used in these options:
- ${format_hotlist}: the formatted hotlist (evaluation of option buflist.format.hotlist)
- ${hotlist}: the raw hotlist
- ${hotlist_priority}: "none", "low", "message", "private" or "highlight"
- ${hotlist_priority_number}: -1 = none, 0 = low, 1 = message, 2 = private, 3 = highlight
- ${format_lag}: the lag for an IRC server buffer, empty if there's no lag (evaluation of option buflist.format.lag)
- ${format_tls_version}: indicator of TLS version for a server buffer, empty for channels (evaluation of option buflist.format.tls_version)
----
@@ -2909,7 +2733,7 @@ protocol.name: protocol and name to relay:
- protocol "weechat" (name is not used)
The "irc" protocol allows any IRC client (including WeeChat itself) to connect on the port.
The "weechat" protocol allows a remote interface to connect on the port, see the list here: https://weechat.org/about/interfaces/
The "weechat" protocol allows a remote interface to connect on the port, see the list here: https://weechat.org/about/interfaces
Without argument, this command opens buffer with list of relay clients.
@@ -3064,7 +2888,7 @@ Examples:
----
/spell enable|disable|toggle
listdict
setdict -|<dict>[,<dict>...]
setdict <dict>[,<dict>...]
deldict
addword [<dict>] <word>
@@ -3072,7 +2896,7 @@ Examples:
disable: disable spell checker
toggle: toggle spell checker
listdict: show installed dictionaries
setdict: set dictionary for current buffer (multiple dictionaries can be separated by a comma, the special value "-" disables spell checking on current buffer)
setdict: set dictionary for current buffer (multiple dictionaries can be separated by a comma)
deldict: delete dictionary used on current buffer
addword: add a word in personal dictionary
@@ -3201,8 +3025,6 @@ Examples (you can also look at default triggers with /trigger listdefault):
/trigger add resize_big signal signal_sigwinch "${info:term_width} >= 100" "" "/bar show nicklist"
silently save config each hour:
/trigger add cfgsave timer 3600000;0;0 "" "" "/mute /save"
silently save WeeChat session at midnight (see /help upgrade):
/trigger add session_save signal day_changed "" "" "/mute /upgrade -save"
open trigger monitor and show only modifiers and triggers whose name starts with "resize":
/trigger monitor @modifier,resize*
----
+64 -180
View File
@@ -750,12 +750,6 @@
** values: any string
** default value: `+""+`
* [[option_weechat.look.highlight_disable_regex]] *weechat.look.highlight_disable_regex*
** description: pass:none[POSIX extended regular expression used to prevent any highlight from a message: this option has higher priority over other highlight options (if the string is found in the message, the highlight is disabled and the other options are ignored), regular expression is case insensitive (use "(?-i)" at beginning to make it case sensitive), examples: "<flash.*>", "(?-i)<Flash.*>"]
** type: string
** values: any string
** default value: `+""+`
* [[option_weechat.look.highlight_regex]] *weechat.look.highlight_regex*
** description: pass:none[POSIX extended regular expression used to check if a message has highlight or not, at least one match in string must be surrounded by delimiters (chars different from: alphanumeric, "-", "_" and "|"), regular expression is case insensitive (use "(?-i)" at beginning to make it case sensitive), examples: "flashcode|flashy", "(?-i)FlashCode|flashy"]
** type: string
@@ -1296,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
@@ -1403,7 +1403,7 @@
** default value: `+default+`
* [[option_logger.file.auto_log]] *logger.file.auto_log*
** description: pass:none[automatically save content of buffers to files (unless a buffer disables log); if disabled, logging is disabled on all buffers]
** description: pass:none[automatically save content of buffers to files (unless a buffer disables log)]
** type: boolean
** values: on, off
** default value: `+on+`
@@ -1468,24 +1468,6 @@
** values: any string
** default value: `+"_"+`
* [[option_logger.file.rotation_compression_level]] *logger.file.rotation_compression_level*
** description: pass:none[compression level for rotated log files (with extension ".1", ".2", etc.), if option logger.file.rotation_compression_type is enabled: 1 = low compression / fast ... 100 = best compression / slow; the value is a percentage converted to 1-9 for gzip and 1-19 for zstd; the default value is recommended, it offers a good compromise between compression and speed]
** type: integer
** values: 1 .. 100
** default value: `+20+`
* [[option_logger.file.rotation_compression_type]] *logger.file.rotation_compression_type*
** description: pass:none[compression type for rotated log files; if set to "none", rotated log files are not compressed; WARNING: if rotation was enabled with another type of compression (or no compression), you must first unload the logger plugin, compress files with the new type (or decompress files), then change the option in logger.conf, then load the logger plugin]
** type: integer
** values: none, gzip, zstd
** default value: `+none+`
* [[option_logger.file.rotation_size_max]] *logger.file.rotation_size_max*
** description: pass:none[when this size is reached, a rotation of log files is performed: the existing rotated log files are renamed (.1 becomes .2, .2 becomes .3, etc.) and the current file is renamed with extension .1; an integer number with a suffix is allowed: b = bytes (default if no unit given), k = kilobytes, m = megabytes, g = gigabytes, t = terabytes; example: "2g" causes a rotation if the file size is > 2,000,000,000 bytes; if set to "0", no rotation is performed (unlimited log size); WARNING: before changing this option, you should first set the compression type via option logger.file.rotation_compression_type]
** type: string
** values: any string
** default value: `+"0"+`
* [[option_logger.file.time_format]] *logger.file.time_format*
** description: pass:none[timestamp used in log files (see man strftime for date/time specifiers)]
** type: string
@@ -1568,12 +1550,6 @@
** values: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline
** default value: `+lightmagenta+`
* [[option_trigger.color.identifier]] *trigger.color.identifier*
** description: pass:none[text color for trigger context identifier in monitor buffer]
** type: color
** values: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline
** default value: `+cyan+`
* [[option_trigger.color.regex]] *trigger.color.regex*
** description: pass:none[text color for regular expressions]
** type: color
@@ -1801,7 +1777,7 @@
** default value: `+"${buffer.hidden}==0"+`
* [[option_buflist.look.enabled]] *buflist.look.enabled*
** description: pass:none[enable buflist; it is recommended to use this option instead of just hiding the bar because it also removes some internal hooks that are not needed any more when the bar is hidden; you can also use the command "/buflist toggle" or use the default key alt+shift+b]
** description: pass:none[enable buflist]
** type: boolean
** values: on, off
** default value: `+on+`
@@ -1869,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]
@@ -2157,7 +2089,7 @@
** default value: `+cyan+`
* [[option_irc.color.message_chghost]] *irc.color.message_chghost*
** description: pass:none[color for text in "chghost" messages]
** description: pass:none[color for text in chghost messages]
** type: color
** values: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline
** default value: `+brown+`
@@ -2180,12 +2112,6 @@
** values: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline
** default value: `+red+`
* [[option_irc.color.message_setname]] *irc.color.message_setname*
** description: pass:none[color for text in "setname" messages]
** type: color
** values: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "/" for italic, "_" for underline
** default value: `+brown+`
* [[option_irc.color.mirc_remap]] *irc.color.mirc_remap*
** description: pass:none[remap mirc colors in messages using a hashtable: keys are "fg,bg" as integers between -1 (not specified) and 15, values are WeeChat color names or numbers (format is: "1,-1:color1;2,7:color2"), example: "1,-1:darkgray;1,2:white,blue" to remap black to "darkgray" and black on blue to "white,blue"; default WeeChat colors for IRC codes: 0=white, 1=black, 2=blue, 3=green, 4=lightred, 5=red, 6=magenta, 7=brown, 8=yellow, 9=lightgreen, 10=cyan, 11=lightcyan, 12=lightblue, 13=lightmagenta, 14=darkgray, 15=gray]
** type: string
@@ -2288,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
@@ -2318,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
@@ -2366,12 +2280,6 @@
** values: on, off
** default value: `+on+`
* [[option_irc.look.display_pv_nick_change]] *irc.look.display_pv_nick_change*
** description: pass:none[display nick change in private]
** type: boolean
** values: on, off
** default value: `+on+`
* [[option_irc.look.display_pv_warning_address]] *irc.look.display_pv_warning_address*
** description: pass:none[display a warning in private buffer if the address of remote nick has changed; this option is disabled by default because servers like bitlbee are causing this warning to be displayed when it is not expected (the address of remote nick changes multiple times on login)]
** type: boolean
@@ -2588,12 +2496,6 @@
** values: on, off
** default value: `+on+`
* [[option_irc.look.smart_filter_setname]] *irc.look.smart_filter_setname*
** description: pass:none[enable smart filter for "setname" messages]
** type: boolean
** values: on, off
** default value: `+on+`
* [[option_irc.look.temporary_servers]] *irc.look.temporary_servers*
** description: pass:none[enable automatic addition of temporary servers with command /connect]
** type: boolean
@@ -2606,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
@@ -2738,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
@@ -2781,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)]
@@ -2886,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)]
@@ -2895,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*
@@ -3112,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)]
@@ -3191,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]
@@ -3219,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*
@@ -3261,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]
@@ -3275,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")]
+2 -5
View File
@@ -1,6 +1,6 @@
// tag::plugin_options[]
For complete doc on plugin options, please look at plugins documentation in
https://weechat.org/doc/[WeeChat user's guide].
https://weechat.org/doc[WeeChat user's guide].
With irc plugin, you can connect to temporary server with an URL like:
@@ -86,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
+1 -1
View File
@@ -60,4 +60,4 @@ include::includes/man.en.adoc[tag=copyright]
== SUPPORT / REPORTING BUGS
For help or a bug report: https://weechat.org/about/support/
For help or a bug report: https://weechat.org/about/support
+1 -1
View File
@@ -57,4 +57,4 @@ include::includes/man.en.adoc[tag=copyright]
== SUPPORT / REPORTING BUGS
For help or a bug report: https://weechat.org/about/support/
For help or a bug report: https://weechat.org/about/support
+134 -247
View File
@@ -10,8 +10,8 @@
This manual documents WeeChat chat client, it is part of WeeChat.
Latest version of this document can be found on
https://weechat.org/doc/[this page ^↗^,window=_blank].
Latest version of this document can be found on this page:
https://weechat.org/doc
[[introduction]]
@@ -31,8 +31,8 @@ This manual documents WeeChat internals:
[[repositories]]
== Repositories
WeeChat repositories are on GitHub organization
https://github.com/weechat[weechat ^↗^,window=_blank].
WeeChat repositories are on GitHub organization "weechat":
https://github.com/weechat
List of repositories:
@@ -43,7 +43,7 @@ scripts::
the _official_ scripts submitted on weechat.org
weechat.org::
source of https://weechat.org/[WeeChat website ^↗^,window=_blank]
source of WeeChat website: https://weechat.org/
weercd::
IRC testing server
@@ -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,73 +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-bar-window.cpp | Tests: bar window functions.
|          test-gui-buffer.cpp | Tests: buffer functions.
|          test-gui-chat.cpp | Tests: chat functions.
|          test-gui-color.cpp | Tests: colors.
|          test-gui-filter.cpp | Tests: filters.
|          test-gui-input.cpp | Tests: input functions.
|          test-gui-line.cpp | Tests: lines.
|          test-gui-nick.cpp | Tests: nicks.
|       plugins/ | Root of unit tests for plugins.
|          irc/ | Root of unit tests for IRC plugin.
|             test-irc-buffer.cpp | Tests: IRC buffers.
|             test-irc-channel.cpp | Tests: IRC channels.
|             test-irc-color.cpp | Tests: IRC colors.
|             test-irc-config.cpp | Tests: IRC configuration.
|             test-irc-ignore.cpp | Tests: IRC ignores.
|             test-irc-join.cpp | Tests: IRC join functions.
|             test-irc-message.cpp | Tests: IRC messages.
|             test-irc-mode.cpp | Tests: IRC modes.
|             test-irc-nick.cpp | Tests: IRC nicks.
|             test-irc-protocol.cpp | Tests: IRC protocol.
|             test-irc-sasl.cpp | Tests: SASL authentication with IRC protocol.
|             test-irc-server.cpp | Tests: IRC server.
|             test-irc-tag.cpp | Tests: IRC message tags.
|          logger/ | Root of unit tests for logger plugin.
|             test-logger-backlog.cpp | Tests: logger backlog.
|          trigger/ | Root of unit tests for trigger plugin.
|             test-trigger.cpp | Tests: triggers.
|             test-trigger-config.cpp | Tests: trigger configuration.
|          typing/ | Root of unit tests for typing plugin.
|             test-typing.cpp | Tests: typing.
|             test-typing-status.cpp | Tests: typing status.
|          relay/ | Root of unit tests for Relay plugin.
|             test-relay-auth.cpp | Tests: clients authentication.
|          xfer/ | Root of unit tests for Xfer plugin.
|             test-xfer-file.cpp | Tests: file functions.
|             test-xfer-network.cpp | Tests: network functions.
| 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,13 +446,14 @@ Documentation files:
|    docgen.py | Python script to build auto-generated files in _includes/_ directory (see below).
|    XX/ | Documentation for language XX (languages: en, fr, de, it, ...).
|       weechat.1.XX.adoc | Man page (`man weechat`).
|       weechat_dev.XX.adoc | link:weechat_dev.en.html[Developer's guide ^↗^,window=_blank] (this document).
|       weechat_faq.XX.adoc | link:weechat_faq.en.html[FAQ ^↗^,window=_blank].
|       weechat_plugin_api.XX.adoc | link:weechat_plugin_api.en.html[Plugin API reference ^↗^,window=_blank].
|       weechat_quickstart.XX.adoc | link:weechat_quickstart.en.html[Quickstart guide ^↗^,window=_blank].
|       weechat_relay_protocol.XX.adoc | link:weechat_relay_protocol.en.html[Relay protocol ^↗^,window=_blank] (for remote interfaces).
|       weechat_scripting.XX.adoc | link:weechat_scripting.en.html[Scripting guide ^↗^,window=_blank].
|       weechat_user.XX.adoc | link:weechat_user.en.html[User's guide ^↗^,window=_blank].
|       weechat_dev.XX.adoc | link:weechat_dev.en.html[Developer's guide] (this document).
|       weechat_faq.XX.adoc | link:weechat_faq.en.html[FAQ].
|       weechat_plugin_api.XX.adoc | link:weechat_plugin_api.en.html[Plugin API reference].
|       weechat_quickstart.XX.adoc | link:weechat_quickstart.en.html[Quickstart guide].
|       weechat_relay_protocol.XX.adoc | link:weechat_relay_protocol.en.html[Relay protocol] (for remote interfaces).
|       weechat_scripting.XX.adoc | link:weechat_scripting.en.html[Scripting guide].
|       weechat_tester.XX.adoc | link:weechat_tester.en.html[Tester's guide].
|       weechat_user.XX.adoc | link:weechat_user.en.html[User's guide].
|       includes/ | Files included in documentation.
|          autogen_api_completions.XX.adoc | Auto-generated file for Plugin API reference: completions (do *NEVER* update manually!).
|          autogen_api_hdata.XX.adoc | Auto-generated file for Plugin API reference: hdata (do *NEVER* update manually!).
@@ -524,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.
*
@@ -562,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.
@@ -593,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 ()
@@ -611,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)
{
@@ -622,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.
@@ -665,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)
{
@@ -689,7 +663,7 @@ else
* Indent the `switch` statements like this:
[source,c]
[source,C]
----
switch (string[0])
{
@@ -707,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);
@@ -744,7 +718,7 @@ new_hook_fd = malloc (sizeof (*new_hook_fd));
[[coding_python_style]]
=== Python style
See https://www.python.org/dev/peps/pep-0008/[PEP 8 ^↗^,window=_blank].
See https://www.python.org/dev/peps/pep-0008/
[[core_internals]]
== Core internals
@@ -789,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
{
@@ -819,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 */
@@ -839,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.
@@ -875,7 +849,7 @@ and next node.
Example: list of buffers (from _src/gui/gui-buffer.h_):
[source,c]
[source,C]
----
struct t_gui_buffer
{
@@ -890,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 */
@@ -905,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
@@ -917,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]
@@ -1082,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,
@@ -1095,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) \
@@ -1106,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,
@@ -1120,7 +1092,7 @@ server->hook_timer_sasl = weechat_hook_timer (timeout * 1000,
[[git_repository]]
=== Git repository
Git repository is on https://github.com/weechat/weechat[GitHub ^↗^,window=_blank].
Git repository is at this URL: https://github.com/weechat/weechat
Any patch for bug or new feature must be done on master branch, preferred way
is a GitHub pull request. A patch can also be sent by e-mail
@@ -1134,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:
@@ -1236,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
@@ -1270,8 +1157,8 @@ $ make translations && make update-po
Then you can edit .po files (if you can translate in a language).
When done, you *have* to check your file with
https://github.com/flashcode/msgcheck[msgcheck ^↗^,window=_blank]:
When done, you *have* to check your file with script _msgcheck.py_
(https://github.com/flashcode/msgcheck):
----
$ msgcheck.py xx.po
@@ -1304,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,
@@ -1321,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>>
+36 -76
View File
@@ -32,8 +32,7 @@ apply to WeeChat!).
Because WeeChat is very light and brings innovating features.
More info on the WeeChat
https://weechat.org/about/features/[features page ^↗^,window=_blank].
More info on the WeeChat features page: https://weechat.org/about/features
[[compilation_install]]
== Compilation / install
@@ -41,17 +40,16 @@ https://weechat.org/about/features/[features page ^↗^,window=_blank].
[[gui]]
=== I've heard about many GUIs for WeeChat. How can I compile/use them?
Some remote GUIs are available, see the
https://weechat.org/about/interfaces/[remote interfaces page ^↗^,window=_blank].
Some remote GUIs are available, see the remote interfaces page:
https://weechat.org/about/interfaces
[[compile_git]]
=== I can't compile WeeChat after cloning git repository, why?
The recommended way to compile WeeChat is with
link:weechat_user.en.html#compile_with_cmake[CMake ^↗^,window=_blank].
link:weechat_user.en.html#compile_with_cmake[CMake].
If you're compiling with
link:weechat_user.en.html#compile_with_autotools[autotools ^↗^,window=_blank]
If you're compiling with link:weechat_user.en.html#compile_with_autotools[autotools]
(and not CMake), check that you have latest version of autoconf and automake.
The other way is to install the "devel package", which needs less dependencies.
@@ -62,8 +60,7 @@ than git cloning for installing updates.
[[compile_macos]]
=== How can I install WeeChat on macOS?
It is recommended to use https://brew.sh/[Homebrew ^↗^,window=_blank],
you can get help with:
It is recommended to use https://brew.sh/[Homebrew], you can get help with:
----
brew info weechat
@@ -79,12 +76,12 @@ brew install weechat
=== I've launched WeeChat, but I'm lost, what can I do?
For help you can type `/help`. For help about a command, type `/help command`.
link:weechat_user.en.html#key_bindings[Keys ^↗^,window=_blank] and
link:weechat_user.en.html#commands_and_options[commands ^↗^,window=_blank]
are listed in documentation.
link:weechat_user.en.html#key_bindings[Keys] and
link:weechat_user.en.html#commands_and_options[commands] are listed
in documentation.
It's recommended for new users to read the
link:weechat_quickstart.en.html[Quickstart guide ^↗^,window=_blank].
link:weechat_quickstart.en.html[Quickstart guide].
[[display]]
== Display
@@ -112,7 +109,7 @@ It's a common issue with a variety of causes, please read carefully and check
** If you are using screen, check that it is run with UTF-8 mode
("`defutf8 on`" in ~/.screenrc or `screen -U` to run screen).
* Check that option
link:weechat_user.en.html#option_weechat.look.eat_newline_glitch[_weechat.look.eat_newline_glitch_ ^↗^,window=_blank]
link:weechat_user.en.html#option_weechat.look.eat_newline_glitch[_weechat.look.eat_newline_glitch_]
is off (this option may cause display bugs).
[NOTE]
@@ -127,10 +124,10 @@ This may be caused by a libc bug in function _wcwidth_, which should be fixed
in glibc 2.22 (maybe not yet available in your distribution).
There is a workaround to use the fixed _wcwidth_ function:
https://blog.nytsoi.net/2015/05/04/emoji-support-for-weechat[https://blog.nytsoi.net/2015/05/04/emoji-support-for-weechat ^↗^,window=_blank]
https://blog.nytsoi.net/2015/05/04/emoji-support-for-weechat
See this https://github.com/weechat/weechat/issues/79[bug report ^↗^,window=_blank]
for more information.
See this bug report for more information:
https://github.com/weechat/weechat/issues/79
[[bars_background]]
=== Bars like title and status are not filled, background color stops after text, why?
@@ -187,8 +184,7 @@ windows.
[[buffers_list]]
=== How to display the buffers list on the left side?
With WeeChat ≥ 1.8, the plugin
link:weechat_user.en.html#buflist[buflist ^↗^,window=_blank]
With WeeChat ≥ 1.8, the plugin link:weechat_user.en.html#buflist_plugin[buflist]
is loaded and enabled by default.
With an older version, you can install script _buffers.pl_:
@@ -256,8 +252,8 @@ like `237` for dark gray.
The buflist plugin provides lot of options that you can customize, please read
the help on each option.
There's also a https://github.com/weechat/weechat/wiki/buflist[wiki page ^↗^,window=_blank]
with examples of advanced buflist configuration.
There's also a wiki page with examples of advanced buflist configuration:
https://github.com/weechat/weechat/wiki/buflist
[[customize_prefix]]
=== How can I reduce length of nicks or remove nick alignment in chat area?
@@ -300,8 +296,8 @@ These colors can be changed with the options __weechat.color.status_data_*__
(buffers) and __weechat.color.status_count_*__ (counters). +
Other hotlist options can be changed with the options __weechat.look.hotlist_*__.
See link:weechat_user.en.html#screen_layout[User's guide / Screen layout ^↗^,window=_blank]
for more info about the hotlist.
See link:weechat_user.en.html#screen_layout[User's guide / Screen layout] for
more info about the hotlist.
[[input_bar_size]]
=== How to use command line with more than one line?
@@ -466,8 +462,8 @@ For version 0.3.4, you must use command `/color` to add new colors.
For versions ≥ 0.3.5, you can use any color number in options (optional: you
can add color aliases with command `/color`).
Please read the link:weechat_user.en.html#colors[User's guide / Colors ^↗^,window=_blank]
for more information about colors management.
Please read the link:weechat_user.en.html#colors[User's guide / Colors] for more
information about colors management.
[[search_text]]
=== How can I search text in buffer (like /lastlog in irssi)?
@@ -475,8 +471,8 @@ for more information about colors management.
The default key is kbd:[Ctrl+r] (command is: `+/input search_text_here+`).
And jump to highlights: kbd:[Alt+p] / kbd:[Alt+n].
See link:weechat_user.en.html#key_bindings[User's guide / Key bindings ^↗^,window=_blank]
for more info about this feature.
See link:weechat_user.en.html#key_bindings[User's guide / Key bindings] for more
info about this feature.
[[terminal_focus]]
=== How can I execute commands when terminal gets/loses focus?
@@ -528,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:
----
@@ -649,7 +645,7 @@ You can bind a key, for example:
----
List of default keys is in
link:weechat_user.en.html#key_bindings[User's guide / Key bindings ^↗^,window=_blank].
link:weechat_user.en.html#key_bindings[User's guide / Key bindings].
To jump to buffers with number ≥ 100, you could define a trigger and then use
commands like `/123` to jump to buffer #123:
@@ -833,36 +829,8 @@ 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_dynamic on
----
For a single server:
----
/set irc.server.libera.autojoin_dynamic on
----
With WeeChat ≥ 3.5, you can also add the current channel in the "autojoin"
server option using the `/autojoin` command:
----
/autojoin add
----
Or another channel:
----
/autojoin add #test
----
With WeeChat ≤ 3.4, you can use the `/set` command to edit the list of autojoin
channels, for example for the "libera" server:
You can use the `/set` command to edit the list of autojoin channels,
for example for the "libera" server:
----
/set irc.server.libera.autojoin [TAB]
@@ -879,7 +847,7 @@ You can also use the `/fset` command to edit the list of channels:
/fset autojoin
----
With WeeChat ≤ 3.4, another solution is to use a script:
Another solution is to use a script:
----
/script search autojoin
@@ -919,7 +887,7 @@ With a global filter (hide *all* join/part/quit):
[NOTE]
For help: `/help filter`, `+/help irc.look.smart_filter+` and see
link:weechat_user.en.html#irc_smart_filter_join_part_quit[User's guide / Smart filter for join/part/quit messages ^↗^,window=_blank].
link:weechat_user.en.html#irc_smart_filter_join_part_quit[User's guide / Smart filter for join/part/quit messages].
[[filter_irc_join_channel_messages]]
=== How can I filter some messages displayed when I join an IRC channel?
@@ -1017,7 +985,7 @@ Other scripts on this subject:
=== How can I disable highlights for specific nicks?
With WeeChat ≥ 0.3.4 you can use the
link:weechat_user.en.html#max_hotlist_level_nicks[hotlist_max_level_nicks_add ^↗^,window=_blank]
link:weechat_user.en.html#max_hotlist_level_nicks[hotlist_max_level_nicks_add]
buffer property to set the max hotlist level for some nicks, per buffer,
or per group of buffers (like IRC servers).
@@ -1115,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?
@@ -1220,7 +1180,7 @@ Unload and disable auto-loading of "xfer" plugin (used for IRC DCC):
Define a passphrase and use secured data wherever you can for sensitive data
like passwords: see `/help secure` and `/help` on options
(if you can use secured data, it is written in the help).
See also link:weechat_user.en.html#secured_data[User's guide / Secured data ^↗^,window=_blank].
See also link:weechat_user.en.html#secured_data[User's guide / Secured data].
For example:
@@ -1241,7 +1201,7 @@ contains your passwords ciphered with your passphrase.
Some other files may contain sensitive info like passwords (if they are not
stored in _sec.conf_ with the `/secure` command).
See the link:weechat_user.en.html#files_and_directories[User's guide / Files and directories ^↗^,window=_blank]
See the link:weechat_user.en.html#files_and_directories[User's guide / Files and directories]
for more information about configuration files.
[[development]]
@@ -1250,7 +1210,7 @@ for more information about configuration files.
[[bug_task_patch]]
=== How should I report bugs, ask for new features or send patches?
See https://weechat.org/about/support/[this page ^↗^,window=_blank].
See: https://weechat.org/about/support
[[gdb_error_threads]]
=== When I run WeeChat under gdb, there is an error about threads, what can I do?
@@ -1286,11 +1246,11 @@ some OS' we don't have, to test WeeChat.
There are many tasks to do (testing, code, documentation, etc.)
Please contact us via IRC or mail, look at
https://weechat.org/about/support/[support page ^↗^,window=_blank].
Please contact us via IRC or mail, look at support page:
https://weechat.org/about/support
[[donate]]
=== Can I give money or other things to WeeChat developers?
You can give us money to help development.
Details on https://weechat.org/donate/[donation page ^↗^,window=_blank].
Details on https://weechat.org/donate
File diff suppressed because it is too large Load Diff
+8 -19
View File
@@ -194,15 +194,10 @@ To auto-join some channels when connecting to server:
/set irc.server.libera.autojoin "#channel1,#channel2"
----
The `/autojoin` command lets you configure the _autojoin_ option easily
(see `/help autojoin`).
You can also configure WeeChat to automatically update the _autojoin_ option
when you join or leave channels:
----
/set irc.server_default.autojoin_dynamic on
----
[TIP]
You can complete name and value of options with the kbd:[Tab] key
and kbd:[Shift+Tab] for a partial completion (useful for long words like
the name of option).
To remove a value of a server option, and use the default value instead,
for example to use default nicks (irc.server_default.nicks):
@@ -218,11 +213,6 @@ option name):
/set irc.server.libera.xxx value
----
[TIP]
You can complete name and value of options with the kbd:[Tab] key
and kbd:[Shift+Tab] for a partial completion (useful for long words like
the name of option).
[[connect_to_irc_server]]
== Connect to IRC server
@@ -380,14 +370,13 @@ for example:
See `/help script` for more info.
A list of scripts is available in WeeChat with `/script` or on
https://weechat.org/scripts/[this page ^↗^,window=_blank].
A list of scripts is available in WeeChat with `/script` or at this URL:
https://weechat.org/scripts
[[more_doc]]
== More documentation
You can now use WeeChat and read
https://weechat.org/doc/[FAQ/documentation ^↗^,window=_blank]
for any other questions.
You can now use WeeChat and read FAQ/documentation for any other questions:
https://weechat.org/doc
Enjoy using WeeChat!
+84 -90
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 ^↗^,window=_blank] _(WeeChat ≥ 0.3.7)_
*** _zstd_: compress with https://facebook.github.io/zstd/[Zstandard ^↗^,window=_blank]:
better compression and much faster than _zlib_ for both compression and decompression
_(WeeChat ≥ 3.5)_
** _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 ^↗^,window=_blank]
** _zstd_: messages are compressed with https://facebook.github.io/zstd/[Zstandard ^↗^,window=_blank]
[TIP]
With WeeChat ≤ 2.8, the command _handshake_ is not implemented, WeeChat silently
@@ -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,14 +264,14 @@ htb: {
'password_hash_iterations': '100000',
'totp': 'on',
'nonce': '85B1EE00695A5B254E14F4885538DF0D',
'compression': 'zstd',
'compression': 'off',
}
----
[[command_init]]
=== init
_Updated in versions 2.4, 2.8, 2.9, 3.5._
_Updated in versions 2.4, 2.8, 2.9._
Authenticate with _relay_.
@@ -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
@@ -691,8 +690,6 @@ inl:
text_search_found: 0
text_search_input: None
highlight_words: None
highlight_disable_regex: None
highlight_disable_regex_compiled: '0x0'
highlight_regex: None
highlight_regex_compiled: '0x0'
highlight_tags_restrict: None
@@ -995,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".
@@ -1263,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]
@@ -1382,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 ^↗^,window=_blank]
** _0x02_: following data is compressed with https://facebook.github.io/zstd/[Zstandard ^↗^,window=_blank]
** _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
@@ -1393,10 +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 ^↗^,window=_blank] or
https://facebook.github.io/zstd/[Zstandard ^↗^,window=_blank],
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
@@ -1411,68 +1405,68 @@ WeeChat reserved identifiers:
[width="100%",cols="5m,5,3,4,7",options="header"]
|===
| Identifier | Received with _sync_ | Data sent
| Description | Recommended action in client
| Identifier | Received with _sync_ | Data sent |
Description | Recommended action in client
| _buffer_opened | buffers / buffer | hdata: buffer
| Buffer opened. | Open buffer.
| _buffer_opened | buffers / buffer | hdata: buffer |
Buffer opened. | Open buffer.
| _buffer_type_changed | buffers / buffer | hdata: buffer
| Type of buffer changed. | Change type of buffer.
| _buffer_type_changed | buffers / buffer | hdata: buffer |
Type of buffer changed. | Change type of buffer.
| _buffer_moved | buffers / buffer | hdata: buffer
| Buffer moved. | Move buffer.
| _buffer_moved | buffers / buffer | hdata: buffer |
Buffer moved. | Move buffer.
| _buffer_merged | buffers / buffer | hdata: buffer
| Buffer merged. | Merge buffer.
| _buffer_merged | buffers / buffer | hdata: buffer |
Buffer merged. | Merge buffer.
| _buffer_unmerged | buffers / buffer | hdata: buffer
| Buffer unmerged. | Unmerge buffer.
| _buffer_unmerged | buffers / buffer | hdata: buffer |
Buffer unmerged. | Unmerge buffer.
| _buffer_hidden | buffers / buffer | hdata: buffer
| Buffer hidden. | Hide buffer.
| _buffer_hidden | buffers / buffer | hdata: buffer |
Buffer hidden. | Hide buffer.
| _buffer_unhidden | buffers / buffer | hdata: buffer
| Buffer unhidden. | Unhide buffer.
| _buffer_unhidden | buffers / buffer | hdata: buffer |
Buffer unhidden. | Unhide buffer.
| _buffer_renamed | buffers / buffer | hdata: buffer
| Buffer renamed. | Rename buffer.
| _buffer_renamed | buffers / buffer | hdata: buffer |
Buffer renamed. | Rename buffer.
| _buffer_title_changed | buffers / buffer | hdata: buffer
| Title of buffer changed. | Change title of buffer.
| _buffer_title_changed | buffers / buffer | hdata: buffer |
Title of buffer changed. | Change title of buffer.
| _buffer_localvar_added | buffers / buffer | hdata: buffer
| Local variable added. | Add local variable in buffer.
| _buffer_localvar_added | buffers / buffer | hdata: buffer |
Local variable added. | Add local variable in buffer.
| _buffer_localvar_changed | buffers / buffer | hdata: buffer
| Local variable changed. | Change local variable in buffer.
| _buffer_localvar_changed | buffers / buffer | hdata: buffer |
Local variable changed. | Change local variable in buffer.
| _buffer_localvar_removed | buffers / buffer | hdata: buffer
| Local variable removed. | Remove local variable from buffer.
| _buffer_localvar_removed | buffers / buffer | hdata: buffer |
Local variable removed. | Remove local variable from buffer.
| _buffer_closing | buffers / buffer | hdata: buffer
| Buffer closing. | Close buffer.
| _buffer_closing | buffers / buffer | hdata: buffer |
Buffer closing. | Close buffer.
| _buffer_cleared | buffer | hdata: buffer
| Buffer cleared. | Clear buffer.
| _buffer_cleared | buffer | hdata: buffer |
Buffer cleared. | Clear buffer.
| _buffer_line_added | buffer | hdata: line
| Line added in buffer. | Display line in buffer.
| _buffer_line_added | buffer | hdata: line |
Line added in buffer. | Display line in buffer.
| _nicklist | nicklist | hdata: nicklist_item
| Nicklist for a buffer. | Replace nicklist.
| _nicklist | nicklist | hdata: nicklist_item |
Nicklist for a buffer. | Replace nicklist.
| _nicklist_diff | nicklist | hdata: nicklist_item
| Nicklist diffs for a buffer . | Update nicklist.
| _nicklist_diff | nicklist | hdata: nicklist_item |
Nicklist diffs for a buffer . | Update nicklist.
| _pong | (always) | string: ping arguments
| Answer to a "ping". | Measure response time.
| _pong | (always) | string: ping arguments |
Answer to a "ping". | Measure response time.
| _upgrade | upgrade | (empty)
| WeeChat is upgrading. | Desync from WeeChat (or disconnect).
| _upgrade | upgrade | (empty) |
WeeChat is upgrading. | Desync from WeeChat (or disconnect).
| _upgrade_ended | upgrade | (empty)
| Upgrade of WeeChat done. | Sync/resync with WeeChat.
| _upgrade_ended | upgrade | (empty) |
Upgrade of WeeChat done. | Sync/resync with WeeChat.
|===
[[message_buffer_opened]]
@@ -2337,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
+148 -202
View File
@@ -11,8 +11,8 @@
This manual documents WeeChat chat client, it is part of WeeChat.
Latest version of this document can be found on
https://weechat.org/doc/[this page ^↗^,window=_blank].
Latest version of this document can be found on this page:
https://weechat.org/doc
[[introduction]]
@@ -61,7 +61,7 @@ function, this can crash WeeChat. +
If something must be run in background, the function `+hook_process+` can be used.
See example in the chapter <<hook_process,Run a background process>>
and the documentation on the function `+hook_process+` in the
link:weechat_plugin_api.en.html#_hook_process[WeeChat plugin API reference ^↗^,window=_blank].
link:weechat_plugin_api.en.html#_hook_process[WeeChat plugin API reference].
[[languages_specificities]]
=== Languages specificities
@@ -74,7 +74,7 @@ link:weechat_plugin_api.en.html#_hook_process[WeeChat plugin API reference ^↗
WeeChat defines a `weechat` module which must be imported with `import weechat`. +
A Python stub for WeeChat API is available in the repository:
https://raw.githubusercontent.com/weechat/weechat/master/src/plugins/python/weechat.pyi[weechat.pyi ^↗^,window=_blank].
https://raw.githubusercontent.com/weechat/weechat/master/src/plugins/python/weechat.pyi[weechat.pyi].
[[python_functions]]
===== Functions
@@ -99,38 +99,38 @@ receive a string of type `str` or `bytes` (this list is not exhaustive):
|===
| API function | Arguments | Examples | Description
| hook_modifier
| irc_in_yyy
| pass:[irc_in_privmsg] +
pass:[irc_in_notice]
| A message received in IRC plugin, before it is decoded to UTF-8 (used
| hook_modifier |
irc_in_yyy |
pass:[irc_in_privmsg] +
pass:[irc_in_notice] |
A message received in IRC plugin, before it is decoded to UTF-8 (used
internally). +
+
It is recommended to use modifier `+irc_in2_yyy+` instead, the string received
is always UTF-8 valid. +
See function `+hook_modifier+` in the
link:weechat_plugin_api.en.html#_hook_modifier[WeeChat plugin API reference ^↗^,window=_blank].
link:weechat_plugin_api.en.html#_hook_modifier[WeeChat plugin API reference].
| hook_signal
| xxx,irc_out_yyy +
xxx,irc_outtags_yyy
| pass:[*,irc_out_privmsg] +
| hook_signal |
xxx,irc_out_yyy +
xxx,irc_outtags_yyy |
pass:[*,irc_out_privmsg] +
pass:[*,irc_out_notice] +
pass:[*,irc_outtags_privmsg] +
pass:[*,irc_outtags_notice]
| A message sent by IRC plugin, after it is encoded to the `encode` charset
pass:[*,irc_outtags_notice] |
A message sent by IRC plugin, after it is encoded to the `encode` charset
defined by the user (if different from the default `UTF-8`). +
+
It is recommended to use signal `+xxx,irc_out1_yyy+` instead, the string received
is always UTF-8 valid. +
See function `+hook_signal+` in the
link:weechat_plugin_api.en.html#_hook_signal[WeeChat plugin API reference ^↗^,window=_blank].
link:weechat_plugin_api.en.html#_hook_signal[WeeChat plugin API reference].
| hook_process +
hook_process_hashtable
| -
| -
| Output of the command, sent to the callback, can contain invalid UTF-8 data.
hook_process_hashtable |
- |
- |
Output of the command, sent to the callback, can contain invalid UTF-8 data.
|===
@@ -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)
@@ -376,7 +370,7 @@ directory is automatically created.
== Differences with C API
Script API is almost the same as C plugin API.
You can look at link:weechat_plugin_api.en.html[WeeChat plugin API reference ^↗^,window=_blank]
You can look at link:weechat_plugin_api.en.html[WeeChat plugin API reference]
for detail about each function in API: prototype, arguments, return values, examples.
It's important to make difference between a _plugin_ and a _script_: a
@@ -543,25 +537,25 @@ weechat_hook_timer(1000, 0, 1, $timer_cb, 'test');
== Script API
For more information about functions in API, please read the
link:weechat_plugin_api.en.html[WeeChat plugin API reference ^↗^,window=_blank].
link:weechat_plugin_api.en.html[WeeChat plugin API reference].
[[script_api_functions]]
=== Functions
List of functions in script API:
[width="100%",cols="1,5",options="header"]
[width="100%",cols="1,3",options="header"]
|===
| Category | Functions
| general
| register
| general |
register
| plugins
| plugin_get_name
| plugins |
plugin_get_name
| strings
| charset_set +
| strings |
charset_set +
iconv_to_internal +
iconv_from_internal +
gettext +
@@ -573,7 +567,6 @@ List of functions in script API:
string_has_highlight_regex +
string_mask_to_regex +
string_format_size +
string_parse_size +
string_color_code_size +
string_remove_color +
string_is_command_char +
@@ -581,13 +574,13 @@ List of functions in script API:
string_eval_expression +
string_eval_path_home
| directories
| mkdir_home +
| directories |
mkdir_home +
mkdir +
mkdir_parents
| sorted lists
| list_new +
| sorted lists |
list_new +
list_add +
list_search +
list_search_pos +
@@ -603,8 +596,8 @@ List of functions in script API:
list_remove_all +
list_free
| configuration files
| config_new +
| configuration files |
config_new +
config_new_section +
config_search_section +
config_new_option +
@@ -641,21 +634,20 @@ List of functions in script API:
config_set_desc_plugin +
config_unset_plugin
| key bindings
| key_bind +
| key bindings |
key_bind +
key_unbind
| display
| prefix +
| display |
prefix +
color +
print (for python: prnt) +
print_date_tags (for python: prnt_date_tags) +
print_y (for python: prnt_y) +
print_y_date_tags (for python: prnt_y_date_tags) +
log_print
| hooks
| hook_command +
| hooks |
hook_command +
hook_command_run +
hook_timer +
hook_fd +
@@ -680,9 +672,8 @@ List of functions in script API:
unhook +
unhook_all
| buffers
| buffer_new +
buffer_new_props +
| buffers |
buffer_new +
current_buffer +
buffer_search +
buffer_search_main +
@@ -697,16 +688,16 @@ List of functions in script API:
buffer_string_replace_local_var +
buffer_match_list
| windows
| current_window +
| windows |
current_window +
window_search_with_buffer +
window_get_integer +
window_get_string +
window_get_pointer +
window_set_title
| nicklist
| nicklist_add_group +
| nicklist |
nicklist_add_group +
nicklist_search_group +
nicklist_add_nick +
nicklist_search_nick +
@@ -722,8 +713,8 @@ List of functions in script API:
nicklist_nick_get_pointer +
nicklist_nick_set
| bars
| bar_item_search +
| bars |
bar_item_search +
bar_item_new +
bar_item_update +
bar_item_remove +
@@ -733,23 +724,23 @@ List of functions in script API:
bar_update +
bar_remove
| commands
| command +
| commands |
command +
command_options
| completion
| completion_new +
| completion |
completion_new +
completion_search +
completion_get_string +
completion_list_add +
completion_free
| infos
| info_get +
| infos |
info_get +
info_get_hashtable
| infolists
| infolist_new +
| infolists |
infolist_new +
infolist_new_item +
infolist_new_var_integer +
infolist_new_var_string +
@@ -767,8 +758,8 @@ List of functions in script API:
infolist_time +
infolist_free
| hdata
| hdata_get +
| hdata |
hdata_get +
hdata_get_var_offset +
hdata_get_var_type_string +
hdata_get_var_array_size +
@@ -789,8 +780,8 @@ List of functions in script API:
hdata_update +
hdata_get_string
| upgrade
| upgrade_new +
| upgrade |
upgrade_new +
upgrade_write_object +
upgrade_read +
upgrade_close
@@ -801,17 +792,17 @@ 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
| return codes
| `WEECHAT_RC_OK` (integer) +
| return codes |
`WEECHAT_RC_OK` (integer) +
`WEECHAT_RC_OK_EAT` (integer) +
`WEECHAT_RC_ERROR` (integer)
| configuration files
| `WEECHAT_CONFIG_READ_OK` (integer) +
| configuration files |
`WEECHAT_CONFIG_READ_OK` (integer) +
`WEECHAT_CONFIG_READ_MEMORY_ERROR` (integer) +
`WEECHAT_CONFIG_READ_FILE_NOT_FOUND` (integer) +
`WEECHAT_CONFIG_WRITE_OK` (integer) +
@@ -826,23 +817,23 @@ List of constants in script API:
`WEECHAT_CONFIG_OPTION_UNSET_OK_REMOVED` (integer) +
`WEECHAT_CONFIG_OPTION_UNSET_ERROR` (integer)
| sorted lists
| `WEECHAT_LIST_POS_SORT` (string) +
| sorted lists |
`WEECHAT_LIST_POS_SORT` (string) +
`WEECHAT_LIST_POS_BEGINNING` (string) +
`WEECHAT_LIST_POS_END` (string)
| hotlist
| `WEECHAT_HOTLIST_LOW` (string) +
| hotlist |
`WEECHAT_HOTLIST_LOW` (string) +
`WEECHAT_HOTLIST_MESSAGE` (string) +
`WEECHAT_HOTLIST_PRIVATE` (string) +
`WEECHAT_HOTLIST_HIGHLIGHT` (string)
| hook process
| `WEECHAT_HOOK_PROCESS_RUNNING` (integer) +
| hook process |
`WEECHAT_HOOK_PROCESS_RUNNING` (integer) +
`WEECHAT_HOOK_PROCESS_ERROR` (integer)
| hook connect
| `WEECHAT_HOOK_CONNECT_OK` (integer) +
| hook connect |
`WEECHAT_HOOK_CONNECT_OK` (integer) +
`WEECHAT_HOOK_CONNECT_ADDRESS_NOT_FOUND` (integer) +
`WEECHAT_HOOK_CONNECT_IP_ADDRESS_NOT_FOUND` (integer) +
`WEECHAT_HOOK_CONNECT_CONNECTION_REFUSED` (integer) +
@@ -854,8 +845,8 @@ List of constants in script API:
`WEECHAT_HOOK_CONNECT_TIMEOUT` (integer) +
`WEECHAT_HOOK_CONNECT_SOCKET_ERROR` (integer)
| hook signal
| `WEECHAT_HOOK_SIGNAL_STRING` (string) +
| hook signal |
`WEECHAT_HOOK_SIGNAL_STRING` (string) +
`WEECHAT_HOOK_SIGNAL_INT` (string) +
`WEECHAT_HOOK_SIGNAL_POINTER` (string)
|===
@@ -865,7 +856,7 @@ List of constants in script API:
This chapter shows some common tasks, with examples.
Only partial things in API are used here, for full reference, see the
link:weechat_plugin_api.en.html[WeeChat plugin API reference ^↗^,window=_blank].
link:weechat_plugin_api.en.html[WeeChat plugin API reference].
[[buffers]]
=== Buffers
@@ -884,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
@@ -1058,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
@@ -1118,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/",
@@ -1134,17 +1098,16 @@ weechat.hook_process("url:https://weechat.org/dev/info/stable/",
----
[TIP]
All infos available about WeeChat are on
https://weechat.org/dev/info/[this page ^↗^,window=_blank].
All infos available about WeeChat are on page https://weechat.org/dev/info
Example of URL transfer with an option: download latest WeeChat development
package in file _/tmp/weechat-devel.tar.gz_:
[source,python]
----
def my_process_cb(data, command, 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",
@@ -1154,7 +1117,7 @@ weechat.hook_process_hashtable("url:https://weechat.org/files/src/weechat-devel.
For more information about URL transfer and available options, see functions
`+hook_process+` and `+hook_process_hashtable+` in
link:weechat_plugin_api.en.html#_hook_process[WeeChat plugin API reference ^↗^,window=_blank].
link:weechat_plugin_api.en.html#_hook_process[WeeChat plugin API reference].
[[config_options]]
=== Config / options
@@ -1308,71 +1271,59 @@ The result is a hashtable with following keys
[width="100%",cols="3,^2,10,7",options="header"]
|===
| Key | Since WeeChat ^(1)^ | Description | Example
| Key | Since WeeChat ^(1)^ | Description | Example
| tags | 0.4.0
| The tags in message (can be empty).
| `+time=2015-06-27T16:40:35.000Z+`
| tags | 0.4.0 |
The tags in message (can be empty). |
`+time=2015-06-27T16:40:35.000Z+`
| 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!+`
| 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!+`
| nick | 0.3.4 |
The origin nick. |
`+nick+`
| nick | 0.3.4
| The origin nick.
| `+nick+`
| user | 2.7 |
The origin user. |
`+user+`
| user | 2.7
| The origin user.
| `+user+`
| host | 0.3.4 |
The origin host (includes the nick). |
`+nick!user@host+`
| host | 0.3.4
| The origin host (includes the nick).
| `+nick!user@host+`
| command | 0.3.4 |
The command (_PRIVMSG_, _NOTICE_, ...). |
`+PRIVMSG+`
| command | 0.3.4
| The command (_PRIVMSG_, _NOTICE_, ...).
| `+PRIVMSG+`
| channel | 0.3.4 |
The target channel. |
`+#weechat+`
| channel | 0.3.4
| The target channel.
| `+#weechat+`
| arguments | 0.3.4 |
The command arguments (includes the channel). |
`+#weechat :hello!+`
| arguments | 0.3.4
| The command arguments (includes the channel).
| `+#weechat :hello!+`
| text | 1.3 |
The text (for example user message). |
`+hello!+`
| text | 1.3
| The text (for example user message).
| `+hello!+`
| pos_command | 1.3 |
The index of _command_ in message ("-1" if _command_ was not found). |
`+47+`
| paramN | 3.4
| Command parameter (from 1 to N).
| `+#weechat+`
| pos_arguments | 1.3 |
The index of _arguments_ in message ("-1" if _arguments_ was not found). |
`+55+`
| num_params | 3.4
| Number of command parameters.
| `+2+`
| pos_channel | 1.3 |
The index of _channel_ in message ("-1" if _channel_ was not found). |
`+55+`
| pos_command | 1.3
| The index of _command_ in message ("-1" if _command_ was not found).
| `+47+`
| pos_arguments | 1.3
| The index of _arguments_ in message ("-1" if _arguments_ was not found).
| `+55+`
| pos_channel | 1.3
| The index of _channel_ in message ("-1" if _channel_ was not found).
| `+55+`
| pos_text | 1.3
| The index of _text_ in message ("-1" if _text_ was not found).
| `+65+`
| pos_text | 1.3 |
The index of _text_ in message ("-1" if _text_ was not found). |
`+65+`
|===
[NOTE]
@@ -1382,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",
@@ -1396,13 +1345,10 @@ dict = weechat.info_get_hashtable(
# "channel": "#weechat",
# "arguments": "#weechat :hello!",
# "text": "hello!",
# "param1": "#weechat",
# "param2": "hello!",
# "num_params": "2",
# "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!
+2763 -3677
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

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