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

Compare commits

..

3 Commits

Author SHA1 Message Date
Sébastien Helleu 4dfc137191 core: add CVE id in ChangeLog 2021-09-05 20:53:31 +02:00
Sébastien Helleu 3e180a3c90 Version 3.2.1 2021-09-04 13:16:44 +02:00
Sébastien Helleu 8b1331f98d relay: fix crash when decoding a malformed websocket frame 2021-09-04 11:39:22 +02:00
816 changed files with 51747 additions and 163590 deletions
+1 -1
View File
@@ -5,4 +5,4 @@ debian-devel export-ignore
debian-stable export-ignore debian-stable export-ignore
weechat.spec export-ignore weechat.spec export-ignore
.mailmap export-ignore .mailmap export-ignore
tools/build_debian.sh export-ignore tools/build-debian.sh export-ignore
+19 -102
View File
@@ -4,50 +4,48 @@ on:
- push - push
- pull_request - pull_request
env:
WEECHAT_DEPENDENCIES: devscripts equivs python3-pip autopoint cmake ninja-build lcov pkg-config libncursesw5-dev gem2deb libperl-dev python3-dev libaspell-dev liblua5.3-dev tcl8.6-dev guile-3.0-dev libv8-dev libcurl4-gnutls-dev libgcrypt20-dev libgnutls28-dev libzstd-dev zlib1g-dev curl libcpputest-dev php-dev libphp-embed libargon2-dev libsodium-dev flake8 pylint python3-bandit asciidoctor ruby-pygments.rb shellcheck
jobs: jobs:
tests_linux: build:
name: ${{ matrix.config.name }}
runs-on: ubuntu-20.04
strategy: strategy:
fail-fast: false
matrix: matrix:
os:
- ubuntu-22.04
config: config:
- { name: "cmake_gcc", cc: "gcc", cxx: "g++", tool: "cmake", args: "" } - { 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_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" } - { name: "cmake_gcc_coverage", cc: "gcc", cxx: "g++", tool: "cmake", args: "-DENABLE_CODE_COVERAGE=ON" }
- { name: "cmake_clang", cc: "clang", cxx: "clang++", tool: "cmake", args: "" } - { name: "cmake_clang", cc: "clang", cxx: "clang++", tool: "cmake", args: "" }
- { name: "autotools_gcc", cc: "gcc", cxx: "g++", tool: "autotools", args: "" } - { name: "autotools_gcc", cc: "gcc", cxx: "g++", tool: "autotools", args: "" }
- { name: "autotools_clang", cc: "clang", cxx: "clang++", 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: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- name: Install dependencies - name: Install dependencies
run: | run: |
sudo apt-add-repository --yes ppa:ondrej/php
sudo apt-get update -qq sudo apt-get update -qq
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 sudo -H pip3 install --ignore-installed msgcheck
- name: Test patches
run: ./tools/build-debian.sh test-patches
- name: Check gettext files - name: Check gettext files
run: msgcheck po/*.po run: msgcheck po/*.po
- name: Check shell and Python scripts - name: Check Python scripts
run: ./tools/check_scripts.sh run: |
pylint --additional-builtins=_ doc/docgen.py
- name: Check Python stub file pylint doc/python_stub.py
run: ./doc/python_stub.py | diff src/plugins/python/weechat.pyi - pylint tests/scripts/python/testapigen.py
pylint tests/scripts/python/testapi.py
- name: Check Curl symbols pylint tests/scripts/python/unparse.py
run: curl --silent --show-error --fail --retry 10 https://raw.githubusercontent.com/curl/curl/master/docs/libcurl/symbols-in-versions | ./tools/check_curl_symbols.py
- name: Build and run tests - name: Build and run tests
env: env:
@@ -55,7 +53,7 @@ jobs:
CXX: ${{ matrix.config.cxx }} CXX: ${{ matrix.config.cxx }}
BUILDTOOL: ${{ matrix.config.tool }} BUILDTOOL: ${{ matrix.config.tool }}
BUILDARGS: ${{ matrix.config.args }} BUILDARGS: ${{ matrix.config.args }}
run: ./tools/build_test.sh run: ./tools/build-test.sh
- name: Run WeeChat - name: Run WeeChat
env: env:
@@ -66,7 +64,7 @@ jobs:
weechat --colors weechat --colors
weechat --license weechat --license
weechat --version 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 - name: Code coverage
if: ${{ matrix.config.name == 'cmake_gcc_coverage' }} if: ${{ matrix.config.name == 'cmake_gcc_coverage' }}
@@ -78,84 +76,3 @@ jobs:
lcov --remove coverage.info '/usr/*' --output-file coverage.info lcov --remove coverage.info '/usr/*' --output-file coverage.info
lcov --list coverage.info lcov --list coverage.info
bash <(curl -s https://codecov.io/bash) -f coverage.info || echo 'Codecov error' bash <(curl -s https://codecov.io/bash) -f coverage.info || echo 'Codecov error'
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 guile 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-get update -qq
sudo apt-get --yes --no-install-recommends install ${{ env.WEECHAT_DEPENDENCIES }}
- 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> Sébastien Helleu <flashcode@flashtux.org> <uid67137>
Nils Görs <weechatter@arcor.de> Nils Görs <weechatter@arcor.de>
Ryuunosuke Ayanokouzi <i38w7i3@yahoo.co.jp> Ryuunosuke Ayanokouzi <i38w7i3@yahoo.co.jp>
Krzysztof Korościk <soltys@soltys.info> Krzysztof Korościk <soltys1@gmail.com> <soltys@szluug.org> <soltys@soltys.info>
Krzysztof Korościk <soltys@soltys.info> <soltys1@gmail.com>
Krzysztof Korościk <soltys@soltys.info> <soltys@szluug.org>
Marco Paolone <marcopaolone@gmail.com> Marco Paolone <marcopaolone@gmail.com>
<marcopaolone@gmail.com> <marco@DrB4tch.sitecomwl601> <marcopaolone@gmail.com> <marco@DrB4tch.sitecomwl601>
<mikaela.suomalainen@outlook.com> <mkaysi@outlook.com> <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
+3 -7
View File
@@ -56,7 +56,6 @@ Alphabetically:
* Guido Berhoerster * Guido Berhoerster
* Gwenn * Gwenn
* Hasan Kiran (turgay) * Hasan Kiran (turgay)
* Ivan Pešić
* Ivan Sichmann Freitas * Ivan Sichmann Freitas
* Jakub Jirutka * Jakub Jirutka
* Jan Palus * Jan Palus
@@ -77,9 +76,8 @@ Alphabetically:
* Krzysztof Koroscik (soltys) * Krzysztof Koroscik (soltys)
* Kyle Fuller (kylef) * Kyle Fuller (kylef)
* Kyle Sabo * Kyle Sabo
* Latchezar Tzvetkoff
* Lázaro A.
* Leonid Evdokimov * Leonid Evdokimov
* Lázaro A.
* Linus Heckemann * Linus Heckemann
* Maarten de Vries * Maarten de Vries
* Mantas Mikulėnas (grawity) * Mantas Mikulėnas (grawity)
@@ -123,7 +121,6 @@ Alphabetically:
* Rudolf Polzer (divVerent) * Rudolf Polzer (divVerent)
* Ruslan Bekenev * Ruslan Bekenev
* Ryan Farley * Ryan Farley
* Ryan Qian
* Ryuunosuke Ayanokouzi * Ryuunosuke Ayanokouzi
* scumjr * scumjr
* Sergio Durigan Junior * Sergio Durigan Junior
@@ -133,7 +130,6 @@ Alphabetically:
* Simmo Saan (sim642) * Simmo Saan (sim642)
* Simon Arlott * Simon Arlott
* Simon Kuhnle * Simon Kuhnle
* Simon Ser
* Stefano Pigozzi * Stefano Pigozzi
* Stfn * Stfn
* Sven Knurr (Cthulhux) * Sven Knurr (Cthulhux)
@@ -147,7 +143,6 @@ Alphabetically:
* Trevor Bergeron * Trevor Bergeron
* Valentin Lorentz (progval) * Valentin Lorentz (progval)
* Vasco Almeida * Vasco Almeida
* Victorhck
* Voroskoi * Voroskoi
* Wojciech Kwolek * Wojciech Kwolek
* W. Trevor King * W. Trevor King
@@ -157,4 +152,5 @@ Alphabetically:
== Contact == 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
+8 -16
View File
@@ -1,5 +1,5 @@
# #
# Copyright (C) 2003-2023 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) 2007-2008 Julien Louis <ptitlouis@sysif.net>
# Copyright (C) 2008-2009 Emmanuel Bouthenot <kolter@openics.org> # Copyright (C) 2008-2009 Emmanuel Bouthenot <kolter@openics.org>
# #
@@ -27,8 +27,8 @@ project(weechat C)
set(CMAKE_VERBOSE_MAKEFILE OFF) set(CMAKE_VERBOSE_MAKEFILE OFF)
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH}) set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
set(CMAKE_SKIP_RPATH ON) set(CMAKE_SKIP_RPATH ON)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsigned-char -fms-extensions -Wall -Wextra -Werror-implicit-function-declaration") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsigned-char -Wall -Wextra -Werror-implicit-function-declaration")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsigned-char -fms-extensions -Wall -Wextra") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsigned-char -Wall -Wextra")
# version # version
execute_process(COMMAND ${CMAKE_SOURCE_DIR}/version.sh devel-major OUTPUT_VARIABLE VERSION_MAJOR) execute_process(COMMAND ${CMAKE_SOURCE_DIR}/version.sh devel-major OUTPUT_VARIABLE VERSION_MAJOR)
@@ -105,6 +105,7 @@ option(ENABLE_SCRIPT "Enable Script plugin (script manager)" ON)
option(ENABLE_SCRIPTS "Enable script plugins (perl, python, ...)" ON) option(ENABLE_SCRIPTS "Enable script plugins (perl, python, ...)" ON)
option(ENABLE_PERL "Enable Perl scripting language" ON) option(ENABLE_PERL "Enable Perl scripting language" ON)
option(ENABLE_PYTHON "Enable Python scripting language" ON) option(ENABLE_PYTHON "Enable Python scripting language" ON)
option(ENABLE_PYTHON2 "Use Python 2 instead of Python 3" OFF)
option(ENABLE_RUBY "Enable Ruby scripting language" ON) option(ENABLE_RUBY "Enable Ruby scripting language" ON)
option(ENABLE_LUA "Enable Lua scripting language" ON) option(ENABLE_LUA "Enable Lua scripting language" ON)
option(ENABLE_TCL "Enable Tcl scripting language" ON) option(ENABLE_TCL "Enable Tcl scripting language" ON)
@@ -114,7 +115,6 @@ option(ENABLE_PHP "Enable PHP scripting language" ON)
option(ENABLE_SPELL "Enable Spell checker plugin" ON) option(ENABLE_SPELL "Enable Spell checker plugin" ON)
option(ENABLE_ENCHANT "Enable Enchant lib for Spell checker plugin" OFF) option(ENABLE_ENCHANT "Enable Enchant lib for Spell checker plugin" OFF)
option(ENABLE_TRIGGER "Enable Trigger plugin" ON) option(ENABLE_TRIGGER "Enable Trigger plugin" ON)
option(ENABLE_TYPING "Enable Typing plugin" ON)
option(ENABLE_XFER "Enable Xfer plugin" ON) option(ENABLE_XFER "Enable Xfer plugin" ON)
option(ENABLE_MAN "Enable build of man page" OFF) option(ENABLE_MAN "Enable build of man page" OFF)
option(ENABLE_DOC "Enable build of documentation" OFF) option(ENABLE_DOC "Enable build of documentation" OFF)
@@ -150,8 +150,6 @@ endif()
add_definitions(-DHAVE_CONFIG_H) add_definitions(-DHAVE_CONFIG_H)
include(FindPkgConfig)
include(CheckIncludeFiles) include(CheckIncludeFiles)
include(CheckFunctionExists) include(CheckFunctionExists)
include(CheckSymbolExists) include(CheckSymbolExists)
@@ -184,10 +182,9 @@ if(ENABLE_NLS)
endif() endif()
# Check for libgcrypt # Check for libgcrypt
pkg_check_modules(LIBGCRYPT REQUIRED libgcrypt) find_package(GCRYPT REQUIRED)
add_definitions(-DHAVE_GCRYPT) add_definitions(-DHAVE_GCRYPT)
include_directories(${LIBGCRYPT_INCLUDE_DIRS}) list(APPEND EXTRA_LIBS ${GCRYPT_LDFLAGS})
list(APPEND EXTRA_LIBS ${LIBGCRYPT_LDFLAGS})
# Check for GnuTLS # Check for GnuTLS
find_package(GnuTLS REQUIRED) find_package(GnuTLS REQUIRED)
@@ -198,9 +195,7 @@ list(APPEND EXTRA_LIBS gnutls)
# Check for zlib # Check for zlib
find_package(ZLIB REQUIRED) find_package(ZLIB REQUIRED)
add_definitions(-DHAVE_ZLIB)
# Check for zstd
pkg_check_modules(LIBZSTD REQUIRED libzstd)
# Check for iconv # Check for iconv
find_package(Iconv) find_package(Iconv)
@@ -242,16 +237,13 @@ if(ENABLE_TESTS)
else() else()
message(SEND_ERROR "CppUTest not found") message(SEND_ERROR "CppUTest not found")
endif() endif()
else()
enable_testing()
add_test(NAME notests COMMAND true)
endif() endif()
configure_file(config.h.cmake config.h @ONLY) configure_file(config.h.cmake config.h @ONLY)
# set the git version in "config-git.h" # set the git version in "config-git.h"
add_custom_target(version_git ALL add_custom_target(version_git ALL
COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/tools/set_git_version.sh" "${CMAKE_CURRENT_SOURCE_DIR}" "${VERSION}" "config-git.h" COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/tools/git-version.sh" "${CMAKE_CURRENT_SOURCE_DIR}" "${VERSION}" "config-git.h"
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
) )
+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 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 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 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>.
+450 -775
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)_. + _WeeChat 1.7-dev (git: v1.6-6-g997f47f)_. +
If WeeChat does not start at all, please include the version displayed by If WeeChat does not start at all, please include the version displayed by
`weechat --help` (or the version installed with your package manager). `weechat --help` (or the version installed with your package manager).
* Your *operating system*: its name and version (examples: Linux Debian Bullseye, * Your *operating system*: its name and version (examples: Linux Debian Wheezy,
FreeBSD 13.0, Windows/Cygwin 64-bit, Windows/Ubuntu 64-bit...). FreeBSD 10.0, Windows/Cygwin 64-bit, Windows/Ubuntu 64-bit...).
* The *steps to reproduce*: if possible, please include a reproducible example: * The *steps to reproduce*: if possible, please include a reproducible example:
explain the steps which led you to the problem. + 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 It's even better if you can reproduce the problem with a new config (and no
@@ -38,7 +38,8 @@ please include:
problem here. problem here.
* The *gdb's backtrace* (only for a crash): if you can reproduce the crash * 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 (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 *actual result*.
* The *expected result*: the correct result you are expecting. * 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]. https://github.com/weechat/weechat.org[weechat.org].
To start a translation in a new language (not yet supported), please look at 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. in Developer's guide.
== Feature requests == Feature requests
WeeChat is under active development, so your idea may already have been WeeChat is under active development, so your idea may already have been
implemented, or scheduled for a future version (you can check in 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. https://github.com/weechat/weechat/milestones[milestones] on GitHub.
Pull requests on GitHub are welcome for minor new features. 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_). (server: _irc.libera.chat_, channel _#weechat_).
Before submitting any pull request, be sure you have read the 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 in Developer's guide, which contains info about styles used, naming convention
and other useful info. and other useful info.
+4 -4
View File
@@ -1,5 +1,5 @@
# #
# Copyright (C) 2003-2023 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 Julien Louis <ptitlouis@sysif.net>
# Copyright (C) 2006-2009 Emmanuel Bouthenot <kolter@openics.org> # Copyright (C) 2006-2009 Emmanuel Bouthenot <kolter@openics.org>
# #
@@ -23,7 +23,7 @@
# (if needed, and only for a devel/rc version). # (if needed, and only for a devel/rc version).
BUILT_SOURCES = build-config-git.h BUILT_SOURCES = build-config-git.h
build-config-git.h: build-config-git.h:
-$(abs_top_srcdir)/tools/set_git_version.sh "$(abs_top_srcdir)" "$(VERSION)" config-git.h -$(abs_top_srcdir)/tools/git-version.sh "$(abs_top_srcdir)" "$(VERSION)" config-git.h
if TESTS if TESTS
tests_dir = tests tests_dir = tests
@@ -60,8 +60,8 @@ EXTRA_DIST = AUTHORS.adoc \
cmake/cmake_uninstall.cmake.in \ cmake/cmake_uninstall.cmake.in \
po/CMakeLists.txt \ po/CMakeLists.txt \
po/srcfiles.cmake \ po/srcfiles.cmake \
tools/build_test.sh \ tools/build-test.sh \
tools/set_git_version.sh \ tools/git-version.sh \
tools/makedist.sh \ tools/makedist.sh \
version.sh \ version.sh \
weechat.desktop \ weechat.desktop \
+78 -9
View File
@@ -23,13 +23,13 @@ Homepage: https://weechat.org/
== Features == 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-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. * *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]. * *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. * *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]). * *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/doc/dev/#translations[translated] into several languages. * *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. * *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]. * *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]. 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
Copyright (C) 2003-2023 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. This file is part of WeeChat, the extensible chat client.
+260 -659
View File
File diff suppressed because it is too large Load Diff
+14 -14
View File
@@ -1,6 +1,6 @@
#!/bin/sh #!/bin/sh
# #
# Copyright (C) 2003-2023 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 Julien Louis <ptitlouis@sysif.net>
# Copyright (C) 2005-2006 Emmanuel Bouthenot <kolter@openics.org> # Copyright (C) 2005-2006 Emmanuel Bouthenot <kolter@openics.org>
# #
@@ -34,36 +34,36 @@ err ()
echo "-------" echo "-------"
echo "Error :" echo "Error :"
echo "---8<-----------------------------------" echo "---8<-----------------------------------"
cat "$AUTOGEN_LOG" cat $AUTOGEN_LOG
echo "----------------------------------->8---" echo "----------------------------------->8---"
exit 1 exit 1
} }
run () run ()
{ {
printf "Running \"%s\"... " "$*" printf "Running \"%s\"..." "$@"
if "$@" >"$AUTOGEN_LOG" 2>&1 ; then if eval "$@" >$AUTOGEN_LOG 2>&1 ; then
echo "OK" echo " OK"
else else
echo "FAILED" echo " FAILED"
err err
fi fi
} }
# remove autotools stuff # remove autotools stuff
run rm -f config.h.in run "rm -f config.h.in"
run rm -f aclocal.m4 configure config.log config.status run "rm -f aclocal.m4 configure config.log config.status"
run rm -rf "autom4te*.cache" run "rm -rf autom4te*.cache"
# remove libtool stuff # remove libtool stuff
run rm -f libtool run "rm -f libtool"
# remove gettext stuff # remove gettext stuff
run rm -f ABOUT-NLS run "rm -f ABOUT-NLS"
run rm -rf intl run "rm -rf intl"
# execute autoreconf cmds # execute autoreconf cmds
run autoreconf -vi run "autoreconf -vi"
# ending # ending
rm -f "$AUTOGEN_LOG" rm -f $AUTOGEN_LOG
+1 -1
View File
@@ -1,5 +1,5 @@
# #
# Copyright (C) 2003-2023 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. # This file is part of WeeChat, the extensible chat client.
# #
+1 -1
View File
@@ -1,5 +1,5 @@
# #
# Copyright (C) 2003-2023 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. # This file is part of WeeChat, the extensible chat client.
# #
+1 -1
View File
@@ -1,5 +1,5 @@
# #
# Copyright (C) 2014-2023 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. # This file is part of WeeChat, the extensible chat client.
# #
+2 -2
View File
@@ -27,11 +27,11 @@ else()
find_path(ENCHANT_INCLUDE_DIR find_path(ENCHANT_INCLUDE_DIR
NAMES enchant++.h NAMES enchant++.h
HINTS ${PC_ENCHANT_INCLUDEDIR} ${PC_ENCHANT_INCLUDE_DIRS} HINTS ${PC_ENCHANT_INCLUDEDIR} ${PC_ENCHANT_INCLUDE_DIRS}
PATH_SUFFIXES enchant-2 enchant PATH_SUFFIXES enchant
) )
find_library(ENCHANT_LIBRARIES find_library(ENCHANT_LIBRARIES
NAMES enchant-2 enchant NAMES enchant
HINTS ${PC_ENCHANT_LIBDIR} HINTS ${PC_ENCHANT_LIBDIR}
${PC_ENCHANT_LIBRARY_DIRS} ${PC_ENCHANT_LIBRARY_DIRS}
) )
+53
View File
@@ -0,0 +1,53 @@
#
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
#
# This file is part of WeeChat, the extensible chat client.
#
# WeeChat is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# WeeChat is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with WeeChat. If not, see <https://www.gnu.org/licenses/>.
#
# - Find Gcrypt
# This module finds if libgcrypt is installed and determines where
# the include files and libraries are.
#
# This code sets the following variables:
#
# GCRYPT_CFLAGS = cflags to use to compile
# GCRYPT_LDFLAGS = ldflags to use to compile
#
find_program(LIBGCRYPT_CONFIG_EXECUTABLE NAMES libgcrypt-config)
set(GCRYPT_LDFLAGS)
set(GCRYPT_CFLAGS)
if(LIBGCRYPT_CONFIG_EXECUTABLE)
exec_program(${LIBGCRYPT_CONFIG_EXECUTABLE} ARGS --libs RETURN_VALUE _return_VALUE OUTPUT_VARIABLE GCRYPT_LDFLAGS)
exec_program(${LIBGCRYPT_CONFIG_EXECUTABLE} ARGS --cflags RETURN_VALUE _return_VALUE OUTPUT_VARIABLE GCRYPT_CFLAGS)
if(${GCRYPT_CFLAGS} MATCHES "\n")
set(GCRYPT_CFLAGS " ")
endif()
endif()
# handle the QUIETLY and REQUIRED arguments and set GCRYPT_FOUND to TRUE if
# all listed variables are TRUE
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(GCRYPT REQUIRED_VARS GCRYPT_LDFLAGS GCRYPT_CFLAGS)
if(GCRYPT_FOUND)
mark_as_advanced(GCRYPT_CFLAGS GCRYPT_LDFLAGS)
endif()
+1 -1
View File
@@ -1,5 +1,5 @@
# #
# Copyright (C) 2003-2023 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) 2007 Julien Louis <ptitlouis@sysif.net>
# Copyright (C) 2009 Emmanuel Bouthenot <kolter@openics.org> # Copyright (C) 2009 Emmanuel Bouthenot <kolter@openics.org>
# #
+1 -1
View File
@@ -1,5 +1,5 @@
# #
# Copyright (C) 2003-2023 Sébastien Helleu <flashcode@flashtux.org> # Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2009 Emmanuel Bouthenot <kolter@openics.org> # Copyright (C) 2009 Emmanuel Bouthenot <kolter@openics.org>
# #
# This file is part of WeeChat, the extensible chat client. # This file is part of WeeChat, the extensible chat client.
+1 -1
View File
@@ -1,5 +1,5 @@
# #
# Copyright (C) 2011-2023 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. # This file is part of WeeChat, the extensible chat client.
# #
+1 -1
View File
@@ -1,5 +1,5 @@
# #
# Copyright (C) 2003-2023 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. # This file is part of WeeChat, the extensible chat client.
# #
+2 -2
View File
@@ -1,5 +1,5 @@
# #
# Copyright (C) 2003-2023 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. # This file is part of WeeChat, the extensible chat client.
# #
@@ -35,5 +35,5 @@ endif()
find_package(PkgConfig) find_package(PkgConfig)
if(PKG_CONFIG_FOUND) 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() endif()
+1 -1
View File
@@ -1,5 +1,5 @@
# #
# Copyright (C) 2003-2023 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. # This file is part of WeeChat, the extensible chat client.
# #
+7 -12
View File
@@ -1,6 +1,6 @@
# #
# Copyright (C) 2017 Adam Saponara <as@php.net> # Copyright (C) 2017 Adam Saponara <as@php.net>
# Copyright (C) 2017-2023 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. # This file is part of WeeChat, the extensible chat client.
# #
@@ -24,31 +24,26 @@ endif()
find_package(PkgConfig) find_package(PkgConfig)
if(PKG_CONFIG_FOUND) if(PKG_CONFIG_FOUND)
pkg_search_module(PHP php8 php7) pkg_search_module(PHP php7)
endif() endif()
if(NOT PHP_FOUND) if(NOT PHP_FOUND)
find_program(PHP_CONFIG_EXECUTABLE NAMES find_program(PHP_CONFIG_EXECUTABLE NAMES
php-config8.2 php-config82
php-config8.1 php-config81
php-config8.0 php-config80
php-config8
php-config7.4 php-config74 php-config7.4 php-config74
php-config7.3 php-config73 php-config7.3 php-config73
php-config7.2 php-config72 php-config7.2 php-config72
php-config7.1 php-config71 php-config7.1 php-config71
php-config7.0 php-config70 php-config7.0 php-config70
php-config7 php-config php-config7
php-config
) )
if (PHP_CONFIG_EXECUTABLE) 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} --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} --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} --libs OUTPUT_VARIABLE PHP_LIBS OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND ${PHP_CONFIG_EXECUTABLE} --version OUTPUT_VARIABLE PHP_VERSION 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 find_library(PHP_LIB
NAMES php8.2 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 HINTS ${PHP_LIB_PREFIX} ${PHP_LIB_PREFIX}/lib ${PHP_LIB_PREFIX}/lib64
) )
if(PHP_LIB) if(PHP_LIB)
@@ -63,9 +58,9 @@ if(NOT PHP_FOUND)
endif() endif()
if(NOT PHP_FOUND) 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 >=7.0.0 development libraries are installed and compiled with `--enable-embed`. "
"Ensure `php-config` is in `PATH`. " "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() endif()
+1 -1
View File
@@ -1,5 +1,5 @@
# #
# Copyright (C) 2003-2023 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. # This file is part of WeeChat, the extensible chat client.
# #
+10 -4
View File
@@ -1,5 +1,5 @@
# #
# Copyright (C) 2003-2023 Sébastien Helleu <flashcode@flashtux.org> # Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2009 Julien Louis <ptitlouis@sysif.net> # Copyright (C) 2009 Julien Louis <ptitlouis@sysif.net>
# #
# This file is part of WeeChat, the extensible chat client. # This file is part of WeeChat, the extensible chat client.
@@ -28,7 +28,13 @@
# PYTHON_LIBRARIES = path to where libpython.so* can be found # PYTHON_LIBRARIES = path to where libpython.so* can be found
# PYTHON_LDFLAGS = python compiler options for linking # PYTHON_LDFLAGS = python compiler options for linking
pkg_check_modules(PYTHON python3-embed IMPORTED_TARGET GLOBAL) include(FindPkgConfig)
if(NOT PYTHON_FOUND)
pkg_check_modules(PYTHON python3 IMPORTED_TARGET GLOBAL) if(ENABLE_PYTHON2)
pkg_check_modules(PYTHON python2 IMPORTED_TARGET GLOBAL)
else()
pkg_check_modules(PYTHON python3-embed IMPORTED_TARGET GLOBAL)
if(NOT PYTHON_FOUND)
pkg_check_modules(PYTHON python3 IMPORTED_TARGET GLOBAL)
endif()
endif() endif()
+47 -9
View File
@@ -1,5 +1,5 @@
# #
# Copyright (C) 2003-2023 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. # This file is part of WeeChat, the extensible chat client.
# #
@@ -33,13 +33,51 @@ endif()
find_package(PkgConfig) find_package(PkgConfig)
if(PKG_CONFIG_FOUND) if(PKG_CONFIG_FOUND)
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") 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)
# set specific search path for macOS endif()
set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:/usr/local/opt/ruby/lib/pkgconfig")
endif() if(RUBY_FOUND)
pkg_search_module(RUBY ruby-3.3 ruby-3.2 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) set(RUBY_LIB "")
if(RUBY_FOUND AND ${CMAKE_SYSTEM_NAME} MATCHES "Darwin") mark_as_advanced(RUBY_LIB)
# FIXME: weird hack: hardcoding the Ruby lib location on macOS else()
set(RUBY_LDFLAGS "${RUBY_LDFLAGS} -L/usr/local/opt/ruby/lib") 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()
endif() endif()
+1 -1
View File
@@ -1,5 +1,5 @@
# #
# Copyright (C) 2015-2023 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. # This file is part of WeeChat, the extensible chat client.
# #
+4 -2
View File
@@ -1,5 +1,5 @@
# #
# Copyright (C) 2003-2023 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. # This file is part of WeeChat, the extensible chat client.
# #
@@ -28,7 +28,9 @@ list(REVERSE files)
foreach(file ${files}) foreach(file ${files})
message(STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"") message(STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"")
if(EXISTS "$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) if("${rm_retval}" GREATER 0)
message(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"") message(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"")
endif() endif()
+35 -75
View File
@@ -1,5 +1,5 @@
# #
# Copyright (C) 2003-2023 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 Benoit Papillault <benoit.papillault@free.fr>
# Copyright (C) 2005-2006 Julien Louis <ptitlouis@sysif.net> # Copyright (C) 2005-2006 Julien Louis <ptitlouis@sysif.net>
# Copyright (C) 2005-2009 Emmanuel Bouthenot <kolter@openics.org> # Copyright (C) 2005-2009 Emmanuel Bouthenot <kolter@openics.org>
@@ -64,7 +64,7 @@ darwin*)
esac esac
# Gettext # 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
AM_GNU_GETTEXT_VERSION([0.18]) 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_JAVASCRIPT], [#undef PLUGIN_JAVASCRIPT])
AH_VERBATIM([PLUGIN_SPELL], [#undef PLUGIN_SPELL]) AH_VERBATIM([PLUGIN_SPELL], [#undef PLUGIN_SPELL])
AH_VERBATIM([PLUGIN_TRIGGER], [#undef PLUGIN_TRIGGER]) AH_VERBATIM([PLUGIN_TRIGGER], [#undef PLUGIN_TRIGGER])
AH_VERBATIM([PLUGIN_TYPING], [#undef PLUGIN_TYPING])
AH_VERBATIM([PLUGIN_XFER], [#undef PLUGIN_XFER]) AH_VERBATIM([PLUGIN_XFER], [#undef PLUGIN_XFER])
AH_VERBATIM([TESTS], [#undef TESTS]) AH_VERBATIM([TESTS], [#undef TESTS])
AH_VERBATIM([MAN], [#undef MAN]) AH_VERBATIM([MAN], [#undef MAN])
@@ -155,6 +154,7 @@ AC_ARG_ENABLE(script, [ --disable-script turn off Script plugin (d
AC_ARG_ENABLE(scripts, [ --disable-scripts turn off script plugins (perl, python, ...) (default=compiled if found)],enable_scripts=$enableval,enable_scripts=yes) AC_ARG_ENABLE(scripts, [ --disable-scripts turn off script plugins (perl, python, ...) (default=compiled if found)],enable_scripts=$enableval,enable_scripts=yes)
AC_ARG_ENABLE(perl, [ --disable-perl turn off Perl script plugin (default=compiled if found)],enable_perl=$enableval,enable_perl=yes) AC_ARG_ENABLE(perl, [ --disable-perl turn off Perl script plugin (default=compiled if found)],enable_perl=$enableval,enable_perl=yes)
AC_ARG_ENABLE(python, [ --disable-python turn off Python script plugin (default=compiled if found)],enable_python=$enableval,enable_python=yes) AC_ARG_ENABLE(python, [ --disable-python turn off Python script plugin (default=compiled if found)],enable_python=$enableval,enable_python=yes)
AC_ARG_ENABLE(python2, [ --enable-python2 use Python 2 instead of Python 3 (default=off)],enable_python2=$enableval,enable_python2=no)
AC_ARG_ENABLE(ruby, [ --disable-ruby turn off Ruby script plugin (default=compiled if found)],enable_ruby=$enableval,enable_ruby=yes) AC_ARG_ENABLE(ruby, [ --disable-ruby turn off Ruby script plugin (default=compiled if found)],enable_ruby=$enableval,enable_ruby=yes)
AC_ARG_ENABLE(lua, [ --disable-lua turn off Lua script plugin (default=compiled if found)],enable_lua=$enableval,enable_lua=yes) AC_ARG_ENABLE(lua, [ --disable-lua turn off Lua script plugin (default=compiled if found)],enable_lua=$enableval,enable_lua=yes)
AC_ARG_ENABLE(tcl, [ --disable-tcl turn off Tcl script plugin (default=compiled if found)],enable_tcl=$enableval,enable_tcl=yes) AC_ARG_ENABLE(tcl, [ --disable-tcl turn off Tcl script plugin (default=compiled if found)],enable_tcl=$enableval,enable_tcl=yes)
@@ -164,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(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(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(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_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(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) AC_ARG_WITH(debug, [ --with-debug debugging: 0=no debug, 1=debug compilation (default=0)],debug=$withval,debug=0)
@@ -466,9 +465,13 @@ fi
PYTHON_VERSION= PYTHON_VERSION=
if test "x$enable_python" = "xyes" ; then if test "x$enable_python" = "xyes" ; then
PKG_CHECK_MODULES(PYTHON, [python3-embed], [PYTHON_FOUND=yes; PYTHON_VERSION=`$PKGCONFIG --modversion python3-embed`], [PYTHON_FOUND=no]) if test "x$enable_python2" = "xyes" ; then
if test "x$PYTHON_FOUND" != "xyes"; then PKG_CHECK_MODULES(PYTHON, [python2], [PYTHON_FOUND=yes; PYTHON_VERSION=`$PKGCONFIG --modversion python2`], [PYTHON_FOUND=no])
PKG_CHECK_MODULES(PYTHON, [python3], [PYTHON_FOUND=yes; PYTHON_VERSION=`$PKGCONFIG --modversion python3`], [PYTHON_FOUND=no]) else
PKG_CHECK_MODULES(PYTHON, [python3-embed], [PYTHON_FOUND=yes; PYTHON_VERSION=`$PKGCONFIG --modversion python3-embed`], [PYTHON_FOUND=no])
if test "x$PYTHON_FOUND" != "xyes"; then
PKG_CHECK_MODULES(PYTHON, [python3], [PYTHON_FOUND=yes; PYTHON_VERSION=`$PKGCONFIG --modversion python3`], [PYTHON_FOUND=no])
fi
fi fi
if test "x$PYTHON_FOUND" != "xyes" ; then if test "x$PYTHON_FOUND" != "xyes" ; then
AC_MSG_WARN([ AC_MSG_WARN([
@@ -496,7 +499,7 @@ RUBY_VERSION=
if test "x$enable_ruby" = "xyes" ; then if test "x$enable_ruby" = "xyes" ; then
RUBY_CFLAGS="" RUBY_CFLAGS=""
RUBY_LFLAGS="" RUBY_LFLAGS=""
for v in "3.2" "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` pkgconfig_ruby_found=`$PKGCONFIG --exists ruby-$v 2>/dev/null`
if test "x$?" = "x0" ; then if test "x$?" = "x0" ; then
RUBY_VERSION=`$PKGCONFIG --modversion ruby-$v` RUBY_VERSION=`$PKGCONFIG --modversion ruby-$v`
@@ -568,7 +571,7 @@ if test "x$enable_lua" = "xyes" ; then
if test "x$LUA_CFLAGS" = "x" -o "x$LUA_LFLAGS" = "x" ; then if test "x$LUA_CFLAGS" = "x" -o "x$LUA_LFLAGS" = "x" ; then
AC_MSG_CHECKING(for Lua headers and libraries with pkg-config) AC_MSG_CHECKING(for Lua headers and libraries with pkg-config)
echo 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` pkgconfig_lua_found=`$PKGCONFIG --exists lua$l 2>/dev/null`
if test "x$?" = "x0" ; then if test "x$?" = "x0" ; then
LUA_VERSION=`$PKGCONFIG --modversion lua$l` LUA_VERSION=`$PKGCONFIG --modversion lua$l`
@@ -587,7 +590,7 @@ if test "x$enable_lua" = "xyes" ; then
if test "x$LUA_CFLAGS" = "x" -o "x$LUA_LFLAGS" = "x" ; then if test "x$LUA_CFLAGS" = "x" -o "x$LUA_LFLAGS" = "x" ; then
LUACONFIG="" 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 if test "x$LUACONFIG" != "x" ; then
AC_MSG_CHECKING(for Lua headers and libraries with lua-config) AC_MSG_CHECKING(for Lua headers and libraries with lua-config)
echo echo
@@ -605,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 if test "x$ac_found_lua_header" = "xyes" -a "x$ac_found_liblua_header" = "xyes"; then
LUA_CFLAGS="$CFLAGS" LUA_CFLAGS="$CFLAGS"
fi 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") 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 if test "x$ac_found_lua_lib" = "xyes" ; then
LUA_VERSION=">=5.1.0" LUA_VERSION=">=5.1.0"
@@ -828,7 +831,6 @@ if test "x$enable_php" = "xyes" ; then
PHP_CFLAGS="" PHP_CFLAGS=""
PHP_LFLAGS="" PHP_LFLAGS=""
PHP_VERSIONS="8.2 82 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 if test -n "$php_inc"; then
CFLAGS="$CFLAGS -I$php_inc" CFLAGS="$CFLAGS -I$php_inc"
@@ -841,7 +843,7 @@ if test "x$enable_php" = "xyes" ; then
if test "x$PHP_CFLAGS" = "x" -o "x$PHP_LFLAGS" = "x" ; then if test "x$PHP_CFLAGS" = "x" -o "x$PHP_LFLAGS" = "x" ; then
AC_MSG_CHECKING(for PHP headers and libraries with pkg-config) AC_MSG_CHECKING(for PHP headers and libraries with pkg-config)
echo 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` pkgconfig_php_found=`$PKGCONFIG --exists php$l 2>/dev/null`
if test "x$?" = "x0" ; then if test "x$?" = "x0" ; then
pkgconfig_php_found=`$PKGCONFIG --atleast-version=7 php$l 2>/dev/null` pkgconfig_php_found=`$PKGCONFIG --atleast-version=7 php$l 2>/dev/null`
@@ -858,12 +860,11 @@ if test "x$enable_php" = "xyes" ; then
if test "x$PHP_CFLAGS" = "x" -o "x$PHP_LFLAGS" = "x" ; then if test "x$PHP_CFLAGS" = "x" -o "x$PHP_LFLAGS" = "x" ; then
PHPCONFIG="" PHPCONFIG=""
AC_MSG_CHECKING(for PHP headers and libraries with php-config) AC_MSG_CHECKING(for PHP headers and libraries with php-config)
echo for l in "7.4" "74" "7.3" "73" "7.2" "72" "7.1" "71" "7.0" "70" "7" "$php_suffix" "" ; do
for l in $PHP_VERSIONS "" ; do
AC_CHECK_PROG(PHPCONFIG, "php-config$l", "php-config$l") AC_CHECK_PROG(PHPCONFIG, "php-config$l", "php-config$l")
if test "x$PHPCONFIG" != "x" ; then if test "x$PHPCONFIG" != "x" ; then
php_config_version=`$PHPCONFIG --version` 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_VERSION=$php_config_version
PHP_CFLAGS=`$PHPCONFIG --includes` PHP_CFLAGS=`$PHPCONFIG --includes`
PHP_LFLAGS="-L$($PHPCONFIG --prefix)/lib/ $($PHPCONFIG --libs) -lphp$l" PHP_LFLAGS="-L$($PHPCONFIG --prefix)/lib/ $($PHPCONFIG --libs) -lphp$l"
@@ -880,25 +881,23 @@ if test "x$enable_php" = "xyes" ; then
if test "x$ac_found_php_header" = "xyes" ; then if test "x$ac_found_php_header" = "xyes" ; then
PHP_CFLAGS="$CFLAGS" PHP_CFLAGS="$CFLAGS"
fi fi
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
for PHP_LIB_SUFFIX in "$l" "$(echo $l | cut -c1)" "" ; do AC_CHECK_LIB(php$l,php_execute_script,ac_found_php_lib="yes",ac_found_php_lib="no")
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
if test "x$ac_found_php_lib" = "xyes" ; then PHP_VERSION=">=7.0.0"
PHP_VERSION=">=7.0.0"
PHP_LFLAGS="$LDFLAGS -lphp$PHP_LIB_SUFFIX -lm" PHP_LFLAGS="$LDFLAGS -lphp7 -lm"
ac2_save_LDFLAGS="$LDFLAGS" ac2_save_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS -lphp$PHP_LIB_SUFFIX -lm" LDFLAGS="$LDFLAGS -lphp7 -lm"
if echo "$host_os" | grep "^linux" 1>/dev/null 2>&1 ; then if echo "$host_os" | grep "^linux" 1>/dev/null 2>&1 ; then
LDFLAGS="$LDFLAGS -ldl" LDFLAGS="$LDFLAGS -ldl"
fi
LDFLAGS="$ac2_save_LDFLAGS"
break 2
fi fi
done
LDFLAGS="$ac2_save_LDFLAGS"
break
fi
done done
fi fi
@@ -1014,18 +1013,6 @@ else
not_asked="$not_asked trigger" not_asked="$not_asked trigger"
fi 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 -------------------------------------- # ---------------------------------- xfer --------------------------------------
if test "x$enable_xfer" = "xyes" ; then if test "x$enable_xfer" = "xyes" ; then
@@ -1170,27 +1157,6 @@ else
AC_SUBST(ZLIB_LFLAGS) AC_SUBST(ZLIB_LFLAGS)
fi 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 # curl
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
@@ -1279,7 +1245,7 @@ if test "x$enable_man" = "xyes" -o "x$enable_doc" = "xyes"; then
enable_man="no" enable_man="no"
enable_doc="no" enable_doc="no"
fi 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)
AC_SUBST(ASCIIDOCTOR_ARGS) AC_SUBST(ASCIIDOCTOR_ARGS)
fi fi
@@ -1399,7 +1365,6 @@ AM_CONDITIONAL(PLUGIN_JAVASCRIPT, test "$enable_javascript" = "yes")
AM_CONDITIONAL(PLUGIN_PHP, test "$enable_php" = "yes") AM_CONDITIONAL(PLUGIN_PHP, test "$enable_php" = "yes")
AM_CONDITIONAL(PLUGIN_SPELL, test "$enable_spell" = "yes") AM_CONDITIONAL(PLUGIN_SPELL, test "$enable_spell" = "yes")
AM_CONDITIONAL(PLUGIN_TRIGGER, test "$enable_trigger" = "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(PLUGIN_XFER, test "$enable_xfer" = "yes")
AM_CONDITIONAL(TESTS, test "$enable_tests" = "yes") AM_CONDITIONAL(TESTS, test "$enable_tests" = "yes")
AM_CONDITIONAL(MAN, test "$enable_man" = "yes") AM_CONDITIONAL(MAN, test "$enable_man" = "yes")
@@ -1408,16 +1373,15 @@ AM_CONDITIONAL(DOC, test "$enable_doc" = "yes")
AC_OUTPUT([Makefile AC_OUTPUT([Makefile
icons/Makefile icons/Makefile
doc/Makefile doc/Makefile
doc/cs/Makefile
doc/de/Makefile
doc/en/Makefile doc/en/Makefile
doc/es/Makefile
doc/fr/Makefile doc/fr/Makefile
doc/it/Makefile doc/it/Makefile
doc/ja/Makefile doc/de/Makefile
doc/pl/Makefile doc/pl/Makefile
doc/es/Makefile
doc/ru/Makefile doc/ru/Makefile
doc/sr/Makefile doc/ja/Makefile
doc/cs/Makefile
src/Makefile src/Makefile
src/core/Makefile src/core/Makefile
src/plugins/Makefile src/plugins/Makefile
@@ -1441,7 +1405,6 @@ AC_OUTPUT([Makefile
src/plugins/php/Makefile src/plugins/php/Makefile
src/plugins/spell/Makefile src/plugins/spell/Makefile
src/plugins/trigger/Makefile src/plugins/trigger/Makefile
src/plugins/typing/Makefile
src/plugins/xfer/Makefile src/plugins/xfer/Makefile
src/gui/Makefile src/gui/Makefile
src/gui/curses/Makefile src/gui/curses/Makefile
@@ -1530,9 +1493,6 @@ fi
if test "x$enable_trigger" = "xyes"; then if test "x$enable_trigger" = "xyes"; then
listplugins="$listplugins trigger" listplugins="$listplugins trigger"
fi fi
if test "x$enable_typing" = "xyes"; then
listplugins="$listplugins typing"
fi
if test "x$enable_xfer" = "xyes"; then if test "x$enable_xfer" = "xyes"; then
listplugins="$listplugins xfer" listplugins="$listplugins xfer"
fi fi
+3 -6
View File
@@ -4,7 +4,6 @@ Priority: optional
Maintainer: Sébastien Helleu <flashcode@flashtux.org> Maintainer: Sébastien Helleu <flashcode@flashtux.org>
Build-Depends: Build-Depends:
asciidoctor (>= 1.5.4), asciidoctor (>= 1.5.4),
ruby-pygments.rb,
debhelper (>= 12), debhelper (>= 12),
cmake, pkg-config, cmake, pkg-config,
libncursesw5-dev, libncursesw5-dev,
@@ -14,15 +13,14 @@ Build-Depends:
libaspell-dev, libaspell-dev,
liblua5.3-dev, liblua5.3-dev,
tcl8.6-dev, tcl8.6-dev,
guile-3.0-dev, guile-2.2-dev,
php-dev, libphp-embed, libargon2-dev, libsodium-dev, php-dev, libphp-embed, libargon2-0-dev, libsodium-dev,
libxml2-dev, libxml2-dev,
libcurl4-gnutls-dev, libcurl4-gnutls-dev,
libgcrypt20-dev, libgcrypt20-dev,
libgnutls28-dev, libgnutls28-dev,
libzstd-dev,
zlib1g-dev zlib1g-dev
Standards-Version: 4.6.0.1 Standards-Version: 4.5.1
Homepage: https://weechat.org/ Homepage: https://weechat.org/
Vcs-Git: https://salsa.debian.org/kolter/weechat.git Vcs-Git: https://salsa.debian.org/kolter/weechat.git
Vcs-Browser: https://salsa.debian.org/kolter/weechat Vcs-Browser: https://salsa.debian.org/kolter/weechat
@@ -155,7 +153,6 @@ Description: Fast, light and extensible chat client - plugins
- FIFO pipe for remote control - FIFO pipe for remote control
- Relay (IRC proxy and WeeChat protocol) - Relay (IRC proxy and WeeChat protocol)
- Trigger - Trigger
- Typing
Package: weechat-devel-python Package: weechat-devel-python
Architecture: any 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
-72
View File
@@ -1,75 +1,3 @@
weechat (3.7.1-1) unstable; urgency=medium
* New upstream release
-- Emmanuel Bouthenot <kolter@debian.org> Sat, 22 Oct 2022 12:55:10 +0000
weechat (3.7-1) unstable; urgency=medium
* New upstream release
-- Emmanuel Bouthenot <kolter@debian.org> Tue, 18 Oct 2022 12:44:29 +0000
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 weechat (3.0.1-1) unstable; urgency=medium
* New upstream release * New upstream release
+3 -6
View File
@@ -4,7 +4,6 @@ Priority: optional
Maintainer: Emmanuel Bouthenot <kolter@debian.org> Maintainer: Emmanuel Bouthenot <kolter@debian.org>
Build-Depends: Build-Depends:
asciidoctor (>= 1.5.4), asciidoctor (>= 1.5.4),
ruby-pygments.rb,
debhelper (>= 12), debhelper (>= 12),
cmake, pkg-config, cmake, pkg-config,
libncursesw5-dev, libncursesw5-dev,
@@ -14,15 +13,14 @@ Build-Depends:
libaspell-dev, libaspell-dev,
liblua5.3-dev, liblua5.3-dev,
tcl8.6-dev, tcl8.6-dev,
guile-3.0-dev, guile-2.2-dev,
php-dev, libphp-embed, libargon2-dev, libsodium-dev, php-dev, libphp-embed, libargon2-0-dev, libsodium-dev,
libxml2-dev, libxml2-dev,
libcurl4-gnutls-dev, libcurl4-gnutls-dev,
libgcrypt20-dev, libgcrypt20-dev,
libgnutls28-dev, libgnutls28-dev,
libzstd-dev,
zlib1g-dev zlib1g-dev
Standards-Version: 4.6.1.0 Standards-Version: 4.5.1
Homepage: https://weechat.org/ Homepage: https://weechat.org/
Vcs-Git: https://salsa.debian.org/kolter/weechat.git Vcs-Git: https://salsa.debian.org/kolter/weechat.git
Vcs-Browser: https://salsa.debian.org/kolter/weechat Vcs-Browser: https://salsa.debian.org/kolter/weechat
@@ -150,7 +148,6 @@ Description: Fast, light and extensible chat client - plugins
- FIFO pipe for remote control - FIFO pipe for remote control
- Relay (IRC proxy and WeeChat protocol) - Relay (IRC proxy and WeeChat protocol)
- Trigger - Trigger
- Typing
Package: weechat-python Package: weechat-python
Architecture: any Architecture: any
+1 -1
View File
@@ -4,7 +4,7 @@ Upstream-Contact: Sébastien Helleu <flashcode@flashtux.org>
Source: https://weechat.org/ Source: https://weechat.org/
Files: * Files: *
Copyright: 2003-2023, Sébastien Helleu <flashcode@flashtux.org> Copyright: 2003-2021, Sébastien Helleu <flashcode@flashtux.org>
License: GPL-3+ License: GPL-3+
Files: src/core/wee-command.c 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/script.so
usr/lib/*/weechat/plugins/spell.so usr/lib/*/weechat/plugins/spell.so
usr/lib/*/weechat/plugins/trigger.so usr/lib/*/weechat/plugins/trigger.so
usr/lib/*/weechat/plugins/typing.so
+2 -54
View File
@@ -1,5 +1,5 @@
# #
# Copyright (C) 2003-2023 Sébastien Helleu <flashcode@flashtux.org> # Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2009 Emmanuel Bouthenot <kolter@openics.org> # Copyright (C) 2009 Emmanuel Bouthenot <kolter@openics.org>
# #
# This file is part of WeeChat, the extensible chat client. # This file is part of WeeChat, the extensible chat client.
@@ -21,58 +21,7 @@
if(ENABLE_MAN OR ENABLE_DOC) if(ENABLE_MAN OR ENABLE_DOC)
find_package(Asciidoctor) find_package(Asciidoctor)
if(ASCIIDOCTOR_FOUND) if(ASCIIDOCTOR_FOUND)
# common asciidoctor arguments set(ASCIIDOCTOR_ARGS -a experimental -a "prewrap!" -a icons=font -a revnumber="${VERSION}" -a sectanchors -a source-highlighter=prettify)
set(ASCIIDOCTOR_ARGS -a experimental -a reproducible -a "prewrap!" -a "webfonts!" -a icons=font -a revnumber="${VERSION}" -a sectanchors -a source-highlighter=pygments -a pygments-style=native)
# sed arguments used to replace links in ChangeLog and release notes
set(SED_LINKS_ARGS
-e "'s/issue #\\([0-9][0-9]*\\)/https:\\/\\/github.com\\/weechat\\/weechat\\/issues\\/\\1[issue #\\1^]/g'"
-e "'s/bug #\\([0-9][0-9]*\\)/https:\\/\\/savannah.nongnu.org\\/bugs\\/?\\1[bug #\\1^]/g'"
-e "'s/task #\\([0-9][0-9]*\\)/https:\\/\\/savannah.nongnu.org\\/task\\/?\\1[task #\\1^]/g'"
-e "'s/patch #\\([0-9][0-9]*\\)/https:\\/\\/savannah.nongnu.org\\/patch\\/?\\1[patch #\\1^]/g'"
-e "'s/debian #\\([0-9][0-9]*\\)/http:\\/\\/bugs.debian.org\\/cgi-bin\\/bugreport.cgi?bug=\\1[debian bug #\\1^]/g'"
-e "'s/\\(CVE-[0-9][0-9]*-[0-9][0-9]*\\)/https:\\/\\/cve.mitre.org\\/cgi-bin\\/cvename.cgi?name=\\1[\\1^]/g'"
)
# ChangeLog
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ChangeLog-links.adoc
COMMAND sed ARGS ${SED_LINKS_ARGS} ${CMAKE_CURRENT_SOURCE_DIR}/../ChangeLog.adoc > ${CMAKE_CURRENT_BINARY_DIR}/ChangeLog-links.adoc
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/../ChangeLog.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ChangeLog.html
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -a docinfodir="${CMAKE_CURRENT_SOURCE_DIR}" -o ChangeLog.html ${CMAKE_CURRENT_BINARY_DIR}/ChangeLog-links.adoc
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html
${CMAKE_CURRENT_BINARY_DIR}/ChangeLog-links.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building ChangeLog.html"
)
add_custom_target(changelog DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/ChangeLog.html)
# Release notes
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ReleaseNotes-links.adoc
COMMAND sed ARGS ${SED_LINKS_ARGS} ${CMAKE_CURRENT_SOURCE_DIR}/../ReleaseNotes.adoc > ${CMAKE_CURRENT_BINARY_DIR}/ReleaseNotes-links.adoc
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/../ReleaseNotes.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ReleaseNotes.html
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -a docinfodir="${CMAKE_CURRENT_SOURCE_DIR}" -o ReleaseNotes.html ${CMAKE_CURRENT_BINARY_DIR}/ReleaseNotes-links.adoc
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html
${CMAKE_CURRENT_BINARY_DIR}/ReleaseNotes-links.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building ReleaseNotes.html"
)
add_custom_target(rn DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/ReleaseNotes.html)
# man/doc in all languages
add_subdirectory(cs) add_subdirectory(cs)
add_subdirectory(de) add_subdirectory(de)
add_subdirectory(en) add_subdirectory(en)
@@ -82,7 +31,6 @@ if(ENABLE_MAN OR ENABLE_DOC)
add_subdirectory(ja) add_subdirectory(ja)
add_subdirectory(pl) add_subdirectory(pl)
add_subdirectory(ru) add_subdirectory(ru)
add_subdirectory(sr)
else() else()
message(SEND_ERROR "Asciidoctor not found") message(SEND_ERROR "Asciidoctor not found")
endif() endif()
+2 -2
View File
@@ -1,5 +1,5 @@
# #
# Copyright (C) 2003-2023 Sébastien Helleu <flashcode@flashtux.org> # Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2006 Julien Louis <ptitlouis@sysif.net> # Copyright (C) 2006 Julien Louis <ptitlouis@sysif.net>
# #
# This file is part of WeeChat, the extensible chat client. # 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/>. # 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 \ EXTRA_DIST = docgen.py \
docinfo.html \ docinfo.html \
+1 -1
View File
@@ -1,5 +1,5 @@
# #
# Copyright (C) 2003-2023 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. # This file is part of WeeChat, the extensible chat client.
# #
+1 -1
View File
@@ -1,5 +1,5 @@
# #
# Copyright (C) 2003-2023 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. # This file is part of WeeChat, the extensible chat client.
# #
+2 -5
View File
@@ -1,6 +1,6 @@
// tag::plugin_options[] // tag::plugin_options[]
Pro kompletní dokumentaci nastavení pluginů a jejich volby podívejte se na 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: 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:: $HOME/.config/weechat/trigger.conf::
konfigurační soubor pro _trigger_ plugin konfigurační soubor pro _trigger_ plugin
$HOME/.config/weechat/typing.conf::
konfigurační soubor pro _typing_ plugin
$HOME/.config/weechat/xfer.conf:: $HOME/.config/weechat/xfer.conf::
konfigurační soubor pro _xfer_ plugin 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 WeeChat je napsán Sébastienem Helleu a přispěvovateli (kompletní seznam je v
souboru AUTHORS.adoc). souboru AUTHORS.adoc).
Copyright (C) 2003-2023 {author} Copyright (C) 2003-2021 {author}
WeeChat is free software; you can redistribute it and/or modify WeeChat is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by 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 == 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 == 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 // TRANSLATION MISSING
The `/autojoin` command lets you configure the _autojoin_ option easily [TIP]
(see `/help autojoin`). 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
// TRANSLATION MISSING the name of option).
You can also configure WeeChat to automatically update the _autojoin_ option
when you join or leave channels:
----
/set irc.server_default.autojoin_dynamic on
----
K smazání hodnoty serverové volby a k použití výchozí hodnoty místo ní, 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): 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 /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]] [[connect_to_irc_server]]
== Připojení k IRC serveru == Připojení k IRC serveru
@@ -401,16 +389,14 @@ například:
Zkuste `/help script` pro více informací. Zkuste `/help script` pro více informací.
// TRANSLATION MISSING
A list of scripts is available in WeeChat with `/script` or on A seznam skriptů je dostupný v WeeChatu s příkazem `/script` nebo na této
https://weechat.org/scripts/[this page ^↗^,window=_blank]. adrese https://weechat.org/scripts
[[more_doc]] [[more_doc]]
== Další dokumentace == Další dokumentace
// TRANSLATION MISSING Nyní jste schopni používat WeeChat a můžete si přečíst FAQ/dokumentaci pro
You can now use WeeChat and read jakékoliv další otázky: https://weechat.org/doc
https://weechat.org/doc/[FAQ/documentation ^↗^,window=_blank]
for any other questions.
Ať máte radost z použití WeeChatu! Ať máte radost z použití WeeChatu!
+14 -1
View File
@@ -1,5 +1,5 @@
# #
# Copyright (C) 2003-2023 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. # 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) 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}) 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() endif()
+8 -2
View File
@@ -1,5 +1,5 @@
# #
# Copyright (C) 2003-2023 Sébastien Helleu <flashcode@flashtux.org> # Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2006 Julien Louis <ptitlouis@sysif.net> # Copyright (C) 2006 Julien Louis <ptitlouis@sysif.net>
# #
# This file is part of WeeChat, the extensible chat client. # This file is part of WeeChat, the extensible chat client.
@@ -28,6 +28,7 @@ EXTRA_DIST = CMakeLists.txt \
weechat_scripting.de.adoc \ weechat_scripting.de.adoc \
weechat_faq.de.adoc \ weechat_faq.de.adoc \
weechat_quickstart.de.adoc \ weechat_quickstart.de.adoc \
weechat_tester.de.adoc \
includes/autogen_api_completions.de.adoc \ includes/autogen_api_completions.de.adoc \
includes/autogen_api_hdata.de.adoc \ includes/autogen_api_hdata.de.adoc \
includes/autogen_api_infolists.de.adoc \ includes/autogen_api_infolists.de.adoc \
@@ -52,7 +53,8 @@ if DOC
doc_targets = weechat_user.de.html \ doc_targets = weechat_user.de.html \
weechat_scripting.de.html \ weechat_scripting.de.html \
weechat_faq.de.html \ weechat_faq.de.html \
weechat_quickstart.de.html weechat_quickstart.de.html \
weechat_tester.de.html
doc_install = install-doc doc_install = install-doc
doc_uninstall = uninstall-doc doc_uninstall = uninstall-doc
endif 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 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 $(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 man/docs
install-data-hook: $(man_install) $(doc_install) install-data-hook: $(man_install) $(doc_install)
@@ -26,8 +26,6 @@
| irc | irc_channels | Kanäle auf allen IRC Servern | 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_ignores_numbers | Anzahl für festgelegte Ignorierungen
| irc | irc_modelist_masks | Modelist Maske für aktuellen IRC Kanal; benötigtes Argument: modelist mode | 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 | 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_arguments | Standardargumente für einen Hook
| trigger | trigger_hook_command | Standardbefehl 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 | 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_value | Wert einer Umgebungsvariable
| weechat | env_vars | Umgebungsvariablen | weechat | env_vars | Umgebungsvariablen
-12
View File
@@ -79,8 +79,6 @@ _last_nick_speaking_time_   (pointer, hdata: "irc_channel_speaking") +
_modelists_   (pointer, hdata: "irc_modelist") + _modelists_   (pointer, hdata: "irc_modelist") +
_last_modelist_   (pointer, hdata: "irc_modelist") + _last_modelist_   (pointer, hdata: "irc_modelist") +
_join_smart_filtered_   (hashtable) + _join_smart_filtered_   (hashtable) +
_typing_state_   (integer) +
_typing_status_sent_   (time) +
_buffer_   (pointer, hdata: "buffer") + _buffer_   (pointer, hdata: "buffer") +
_buffer_as_string_   (string) + _buffer_as_string_   (string) +
_prev_channel_   (pointer, hdata: "irc_channel") + _prev_channel_   (pointer, hdata: "irc_channel") +
@@ -239,8 +237,6 @@ _sasl_scram_client_first_   (string) +
_sasl_scram_salted_pwd_   (other) + _sasl_scram_salted_pwd_   (other) +
_sasl_scram_salted_pwd_size_   (integer) + _sasl_scram_salted_pwd_size_   (integer) +
_sasl_scram_auth_message_   (string) + _sasl_scram_auth_message_   (string) +
_sasl_temp_username_   (string) +
_sasl_temp_password_   (string) +
_is_connected_   (integer) + _is_connected_   (integer) +
_ssl_connected_   (integer) + _ssl_connected_   (integer) +
_disconnected_   (integer) + _disconnected_   (integer) +
@@ -271,10 +267,6 @@ _chantypes_   (string) +
_chanmodes_   (string) + _chanmodes_   (string) +
_monitor_   (integer) + _monitor_   (integer) +
_monitor_time_   (time) + _monitor_time_   (time) +
_clienttagdeny_   (string) +
_clienttagdeny_count_   (integer) +
_clienttagdeny_array_   (string, array_size: "clienttagdeny_count") +
_typing_allowed_   (integer) +
_reconnect_delay_   (integer) + _reconnect_delay_   (integer) +
_reconnect_start_   (time) + _reconnect_start_   (time) +
_command_time_   (time) + _command_time_   (time) +
@@ -582,7 +574,6 @@ _title_   (string) +
_own_lines_   (pointer, hdata: "lines") + _own_lines_   (pointer, hdata: "lines") +
_mixed_lines_   (pointer, hdata: "lines") + _mixed_lines_   (pointer, hdata: "lines") +
_lines_   (pointer, hdata: "lines") + _lines_   (pointer, hdata: "lines") +
_next_line_id_   (integer) +
_time_for_each_line_   (integer) + _time_for_each_line_   (integer) +
_chat_refresh_needed_   (integer) + _chat_refresh_needed_   (integer) +
_nicklist_   (integer) + _nicklist_   (integer) +
@@ -632,8 +623,6 @@ _text_search_input_   (string) +
_highlight_words_   (string) + _highlight_words_   (string) +
_highlight_regex_   (string) + _highlight_regex_   (string) +
_highlight_regex_compiled_   (pointer) + _highlight_regex_compiled_   (pointer) +
_highlight_disable_regex_   (string) +
_highlight_disable_regex_compiled_   (pointer) +
_highlight_tags_restrict_   (string) + _highlight_tags_restrict_   (string) +
_highlight_tags_restrict_count_   (integer) + _highlight_tags_restrict_count_   (integer) +
_highlight_tags_restrict_array_   (pointer, array_size: "highlight_tags_restrict_count") + _highlight_tags_restrict_array_   (pointer, array_size: "highlight_tags_restrict_count") +
@@ -924,7 +913,6 @@ _next_line_   (pointer, hdata: "line") +
| Struktur mit einzeiligen Daten | Struktur mit einzeiligen Daten
| - | -
| _buffer_   (pointer, hdata: "buffer") + | _buffer_   (pointer, hdata: "buffer") +
_id_   (integer) +
_y_   (integer) + _y_   (integer) +
_date_   (time) + _date_   (time) +
_date_printed_   (time) + _date_printed_   (time) +
+2 -2
View File
@@ -60,6 +60,8 @@
| php | php_version | Version des verwendeten Interpreters | - | php | php_version | Version des verwendeten Interpreters | -
| python | python2_bin | Pfad zum Python 2.x Interpreter (*veraltet*, seit WeeChat Version 2.6 müssen Skripten Python3 verwenden) | -
| python | python_eval | Evaluierung des Quelltextes | Quelltext welcher ausgeführt werden soll | python | python_eval | Evaluierung des Quelltextes | Quelltext welcher ausgeführt werden soll
| python | python_interpreter | Name des verwendeten Interpreters | - | python | python_interpreter | Name des verwendeten Interpreters | -
@@ -126,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 | 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 | 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) | - | 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) | 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 | 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[] // tag::plugins_priority[]
. charset (16000) . charset (15000)
. logger (15000) . logger (14000)
. exec (14000) . exec (13000)
. trigger (13000) . trigger (12000)
. spell (12000) . spell (11000)
. alias (11000) . alias (10000)
. buflist (10000) . buflist (9000)
. fifo (9000) . fifo (8000)
. typing (8000)
. xfer (7000) . xfer (7000)
. irc (6000) . irc (6000)
. relay (5000) . relay (5000)
. guile (4070) . guile, javascript, lua, perl, php, python, ruby, tcl (4000)
. javascript (4060)
. lua (4050)
. perl (4040)
. php (4030)
. python (4020)
. ruby (4010)
. tcl (4000)
. script (3000) . script (3000)
. fset (2000) . fset (2000)
// end::plugins_priority[] // end::plugins_priority[]
+21 -47
View File
@@ -6,7 +6,7 @@
// tag::url_options[] // tag::url_options[]
[width="100%",cols="2,^1,7",options="header"] [width="100%",cols="2,^1,7",options="header"]
|=== |===
| Einstellung | Type ^(1)^ | Konstanten ^(2)^ | Einstellung | Type ^(1)^ | Konstanten ^(2)^
| verbose | long | | verbose | long |
@@ -48,6 +48,10 @@
| address_scope | long | | address_scope | long |
| protocols | mask | http, https, ftp, ftps, scp, sftp, telnet, ldap, ldaps, dict, file, tftp, all, imap, imaps, pop3, pop3s, smtp, smtps, rtsp, rtmp, rtmpt, rtmpe, rtmpte, rtmps, rtmpts, gopher, smb, smbs
| redir_protocols | mask | http, https, ftp, ftps, scp, sftp, telnet, ldap, ldaps, dict, file, tftp, all, imap, imaps, pop3, pop3s, smtp, smtps, rtsp, rtmp, rtmpt, rtmpe, rtmpte, rtmps, rtmpts, gopher, smb, smbs
| noproxy | string | | noproxy | string |
| socks5_gssapi_nec | long | | socks5_gssapi_nec | long |
@@ -78,19 +82,15 @@
| doh_url | string | | doh_url | string |
| protocols_str | string |
| redir_protocols_str | string |
| netrc | long | ignored, optional, required | netrc | long | ignored, optional, required
| userpwd | string | | userpwd | string |
| proxyuserpwd | string | | proxyuserpwd | string |
| httpauth | mask | none, basic, digest, ntlm, any, anysafe, digest_ie, only, ntlm_wb, negotiate, gssapi, bearer, aws_sigv4 | httpauth | mask | none, basic, digest, ntlm, any, anysafe, digest_ie, only, ntlm_wb, negotiate, gssapi, bearer
| proxyauth | mask | none, basic, digest, ntlm, any, anysafe, digest_ie, only, ntlm_wb, negotiate, gssapi, bearer, aws_sigv4 | proxyauth | mask | none, basic, digest, ntlm, any, anysafe, digest_ie, only, ntlm_wb, negotiate, gssapi, bearer
| netrc_file | string | | netrc_file | string |
@@ -108,8 +108,6 @@
| tlsauth_password | string | | tlsauth_password | string |
| sasl_authzid | string |
| sasl_ir | long | | sasl_ir | long |
| xoauth2_bearer | string | | xoauth2_bearer | string |
@@ -122,6 +120,8 @@
| followlocation | long | | followlocation | long |
| put | long |
| post | long | | post | long |
| postfields | string | | postfields | string |
@@ -144,7 +144,7 @@
| cookiejar | string | | cookiejar | string |
| http_version | long | none, 1_0, 1_1, 2_0, 2, 2tls, 2_prior_knowledge, 3 | http_version | long | none, 1_0, 1_1, 2_0, 2, 2tls, 2_prior_knowledge
| cookiesession | long | | cookiesession | long |
@@ -182,20 +182,12 @@
| request_target | string | | request_target | string |
| http09_allowed | long |
| hsts | string |
| hsts_ctrl | mask | enable, readonlyfile
| mail_from | string | | mail_from | string |
| mail_rcpt | list | | mail_rcpt | list |
| mail_auth | string | | mail_auth | string |
| mail_rcpt_alllowfails | long |
| tftp_blksize | long | | tftp_blksize | long |
| tftp_no_options | long | | tftp_no_options | long |
@@ -214,6 +206,8 @@
| ftp_create_missing_dirs | long | | ftp_create_missing_dirs | long |
| ftp_response_timeout | long |
| ftpsslauth | long | default, ssl, tls | ftpsslauth | long | default, ssl, tls
| ftp_account | string | | ftp_account | string |
@@ -244,8 +238,6 @@
| rtsp_server_cseq | long | | rtsp_server_cseq | long |
| aws_sigv4 | string |
| crlf | long | | crlf | long |
| range | string | | range | string |
@@ -282,8 +274,6 @@
| upload_buffersize | long | | upload_buffersize | long |
| mime_options | mask | formescape
| timeout | long | | timeout | long |
| low_speed_limit | long | | low_speed_limit | long |
@@ -308,8 +298,6 @@
| connecttimeout_ms | long | | connecttimeout_ms | long |
| maxage_conn | long |
| maxconnects | long | | maxconnects | long |
| use_ssl | long | none, try, control, all | use_ssl | long | none, try, control, all
@@ -334,8 +322,6 @@
| upkeep_interval_ms | long | | upkeep_interval_ms | long |
| maxlifetime_conn | long |
| sslcert | string | | sslcert | string |
| sslversion | long | default, tlsv1, sslv2, sslv3, tlsv1_0, tlsv1_1, tlsv1_2, tlsv1_3, max_default, max_none, max_tlsv1_0, max_tlsv1_1, max_tlsv1_2, max_tlsv1_3 | sslversion | long | default, tlsv1, sslv2, sslv3, tlsv1_0, tlsv1_1, tlsv1_2, tlsv1_3, max_default, max_none, max_tlsv1_0, max_tlsv1_1, max_tlsv1_2, max_tlsv1_3
@@ -344,6 +330,10 @@
| cainfo | string | | cainfo | string |
| random_file | string |
| egdsocket | string |
| ssl_verifyhost | long | | ssl_verifyhost | long |
| ssl_cipher_list | string | | ssl_cipher_list | string |
@@ -374,10 +364,12 @@
| gssapi_delegation | long | none, policy_flag, flag | gssapi_delegation | long | none, policy_flag, flag
| ssl_options | long | allow_beast, no_revoke, no_backends, ok, too_late, unknown_backend, no_partialchain, revoke_best_effort, native_ca, auto_client_cert | ssl_options | long | allow_beast, no_revoke, no_backends, ok, too_late, unknown_backend
| ssl_enable_alpn | long | | ssl_enable_alpn | long |
| ssl_enable_npn | long |
| pinnedpublickey | string | | pinnedpublickey | string |
| ssl_verifystatus | long | | ssl_verifystatus | long |
@@ -406,7 +398,7 @@
| proxy_ssl_cipher_list | list | | proxy_ssl_cipher_list | list |
| proxy_ssl_options | long | allow_beast, no_revoke, no_backends, ok, too_late, unknown_backend, no_partialchain, revoke_best_effort, native_ca, auto_client_cert | proxy_ssl_options | long | allow_beast, no_revoke, no_backends, ok, too_late, unknown_backend
| proxy_ssl_verifyhost | long | | proxy_ssl_verifyhost | long |
@@ -422,18 +414,6 @@
| proxy_tls13_ciphers | list | | proxy_tls13_ciphers | list |
| proxy_issuercert | string |
| ssl_ec_curves | string |
| doh_ssl_verifyhost | long |
| doh_ssl_verifypeer | long |
| doh_ssl_verifystatus | long |
| ca_cache_timeout | long |
| ssh_auth_types | mask | none, policy_flag, flag | ssh_auth_types | mask | none, policy_flag, flag
| ssh_public_keyfile | string | | ssh_public_keyfile | string |
@@ -446,17 +426,11 @@
| ssh_compression | long | | ssh_compression | long |
| ssh_host_public_key_sha256 | string |
| telnetoptions | list |
| ws_options | mask | binary, close, cont, offset, ping, pong, raw_mode, text
| new_file_perms | long | | new_file_perms | long |
| new_directory_perms | long | | new_directory_perms | long |
| quick_exit | long | | telnetoptions | list |
|=== |===
// end::url_options[] // end::url_options[]
+59 -274
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+`: 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> /allchan [-current] [-exclude=<channel>[,<channel>...]] <command>
[-current] [-parted] -include=<channel>[,<channel>...] <command> [-current] -include=<channel>[,<channel>...] <command>
-current: führt einen Befehl aus der an alle Kanäle des aktuellen Servers gesendet wird -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) -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 -include: findet Anwendung für ausgewählte Kanäle (Platzhalter "*" kann verwendet werden)\n
command: Befehl der ausgeführt werden soll command: Befehl der ausgeführt werden soll
@@ -42,8 +41,6 @@ Beispiele:
/allchan -exclude=#weechat,#linux* Hallo Welt /allchan -exclude=#weechat,#linux* Hallo Welt
schickt den Text 'Hallo' an alle Kanäle die mit #linux beginnen: schickt den Text 'Hallo' an alle Kanäle die mit #linux beginnen:
/allchan -include=#linux* Hallo /allchan -include=#linux* Hallo
schließt alle, vom Server getrennte, Kanäle.:
/allchan -parted /close
---- ----
[[command_irc_allpv]] [[command_irc_allpv]]
@@ -103,56 +100,6 @@ Beispiele:
/allserv /whois $nick /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]] [[command_irc_ban]]
* `+ban+`: Nicknamen oder Hosts sperren/verbannen * `+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. 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: Beispiele:
zeigt unterstützte und aktivierte Funktionen an: /cap
/cap /cap req multi-prefix away-notify
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
---- ----
[[command_irc_connect]] [[command_irc_connect]]
@@ -867,15 +808,6 @@ mask: nur zutreffende Services auflisten
type: nur Services von diesem Typ auflisten type: nur Services von diesem Typ auflisten
---- ----
[[command_irc_setname]]
* `+setname+`: setze Realnamen
----
/setname <Realname>
realname: neuer Realname
----
[[command_irc_squery]] [[command_irc_squery]]
* `+squery+`: Nachricht an einen Service senden * `+squery+`: Nachricht an einen Service senden
@@ -1104,19 +1036,6 @@ Beispiele:
// end::alias_commands[] // end::alias_commands[]
// tag::weechat_commands[] // tag::weechat_commands[]
[[command_weechat_allbuf]]
* `+allbuf+`: führt einen Befehl in allen Buffern aus
----
/allbuf <Befehl>
command: Befehl der ausgeführt werden soll (oderText welcher in den Buffer gesendet werden soll, sofern dem Befehl kein '/' vorangestellt ist)
Beispiele:
setze den ungelesen Marker für alle Buffer:
/allbuf /buffer set unread
----
[[command_weechat_away]] [[command_weechat_away]]
* `+away+`: Abwesenheitsstatus setzen oder entfernen * `+away+`: Abwesenheitsstatus setzen oder entfernen
@@ -1193,8 +1112,6 @@ Beispiele:
unmerge [<number>|-all] unmerge [<number>|-all]
hide [<number>|<name>|-all [<number>|<name>...]] hide [<number>|<name>|-all [<number>|<name>...]]
unhide [<number>|<name>|-all [<number>|<name>...]] unhide [<number>|<name>|-all [<number>|<name>...]]
switch [-previous]
zoom
renumber [<number1> [<number2> [<start>]]] renumber [<number1> [<number2> [<start>]]]
close [<n1>[-<n2>]|<name>...] close [<n1>[-<n2>]|<name>...]
notify [<level>] notify [<level>]
@@ -1203,7 +1120,6 @@ Beispiele:
delvar <name> delvar <name>
set <property> [<value>] set <property> [<value>]
get <property> get <property>
jump smart|last_displayed|prev_visited|next_visited
<number>|-|+|<name> <number>|-|+|<name>
list: alle geöffneten Buffer werden aufgelistet (ohne Angabe von Argumente wird diese Liste standardmäßig ausgegeben) list: alle geöffneten Buffer werden aufgelistet (ohne Angabe von Argumente wird diese Liste standardmäßig ausgegeben)
@@ -1217,8 +1133,6 @@ Beispiele:
unmerge: trennt Buffer wieder voneinander, falls zwei Buffer die selbe Nummer teilen unmerge: trennt Buffer wieder voneinander, falls zwei Buffer die selbe Nummer teilen
hide: versteckt einen Buffer hide: versteckt einen Buffer
unhide: macht Buffer wieder sichtbar unhide: macht Buffer wieder sichtbar
switch: wechselt zum nächsten zusammengeführten Buffer (oder zum vorherigen Buffer mit "-previous")
zoom: zoomen eines zusammengeführten Buffers
renumber: Buffer werden umnummeriert (Einstellung weechat.look.buffer_auto_renumber muss deaktiviert sein) renumber: Buffer werden umnummeriert (Einstellung weechat.look.buffer_auto_renumber muss deaktiviert sein)
close: Buffer schließen (Nummer oder Bereich ist optional) close: Buffer schließen (Nummer oder Bereich ist optional)
notify: Benachrichtigungsstufe für den aktuellen Buffer anzeigen oder einstellen. Folgende Möglichkeiten bestimmen den Grad der Benachrichtigung und ob der Buffer in der Hotlist angezeigt wird: notify: Benachrichtigungsstufe für den aktuellen Buffer anzeigen oder einstellen. Folgende Möglichkeiten bestimmen den Grad der Benachrichtigung und ob der Buffer in der Hotlist angezeigt wird:
@@ -1232,11 +1146,6 @@ renumber: Buffer werden umnummeriert (Einstellung weechat.look.buffer_auto_renum
delvar: löscht eine lokale Variable des aktuellen Buffers delvar: löscht eine lokale Variable des aktuellen Buffers
set: setzt eine Eigenschaft für den aktuellen Buffer set: setzt eine Eigenschaft für den aktuellen Buffer
get: zeigt eine Eigenschaft für den aktuellen Buffer an get: zeigt eine Eigenschaft für den aktuellen Buffer an
jump: springt zu einem anderen Buffer:
smart: nächster Buffer mit Aktivität
last_displayed: letzter angezeigter Buffer (vor dem letzten Sprung zu einem Buffer)
prev_visited: zuvor besuchter Buffer
next_visited: zum nächsten besuchten Buffer springen
number: wechselt von einem Buffer zu einem anderen, mögliche Optionen: number: wechselt von einem Buffer zu einem anderen, mögliche Optionen:
'+': relativer Sprung um 'n'-Buffer '+': relativer Sprung um 'n'-Buffer
'-': relativer Sprung, um 'n'-Buffer '-': relativer Sprung, um 'n'-Buffer
@@ -1361,40 +1270,31 @@ Beispiele:
---- ----
/debug list /debug list
set <plugin> <level> set <plugin> <level>
dump|hooks [<plugin>] dump [<plugin>]
buffer|certs|color|dirs|infolists|libs|memory|tags|term|windows buffer|color|infolists|memory|tags|term|windows
mouse|cursor [verbose] mouse|cursor [verbose]
hdata [free] hdata [free]
time <command> time <command>
unicode <string>
list: zeigt alle Erweiterungen mit Debuglevel an list: zeigt alle Erweiterungen mit Debuglevel an
set: setzt den Level der Protokollierung für eine Erweiterung set: setzt den Level der Protokollierung für eine Erweiterung
plugin: Name der Erweiterung ("core" für den WeeChat Kern) plugin: Name der Erweiterung ("core" für den WeeChat Kern)
level: Debuglevel der Erweiterung (0 = deaktiviert Debug) level: Debuglevel der Erweiterung (0 = deaktiviert Debug)
dump: Speicherabbild in die WeeChat Protokolldatei schreiben (wie bei einem Programmabsturz) 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 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 color: zeigt Informationen über die aktuellen Farbpaarungen an
cursor: schaltet den debug-Modus für den Cursor-Modus ein/aus cursor: schaltet den debug-Modus für den Cursor-Modus ein/aus
dirs: Verzeichnisse werden angezeigt dirs: Verzeichnisse werden angezeigt
hdata: zeigt Informationen zu hdata an (mittels free werden alle hdata Informationen aus dem Speicher entfernt) 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 infolists: zeigt Information über die Infolists an
libs: zeigt an welche externen Bibliotheken verwendet werden libs: zeigt an welche externen Bibliotheken verwendet werden
memory: gibt Informationen über den genutzten Speicher aus memory: gibt Informationen über den genutzten Speicher aus
mouse: schaltet den debug-Modus für den Maus-Modus ein/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 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 windows: zeigt die Fensterstruktur an
time: misst die Zeit um einen Befehl auszuführen oder um einen Text in den aktuellen Buffer zu senden time: misst die Zeit um einen Befehl auszuführen oder um einen Text in den aktuellen Buffer zu senden
unicode: Zeigt Informationen über Unicode-Zeichen in Zeichenkette an (evaluiert, siehe /help eval)
Beispiele:
/debug set irc 1
/debug mouse verbose
/debug time /filter toggle
/debug unicode ${chars:${\u26C0}-${\u26CF}}
---- ----
[[command_weechat_eval]] [[command_weechat_eval]]
@@ -1441,36 +1341,28 @@ Um einen Vergleich zwischen zwei Zeichenketten zu erzwingen, müssen die Ausdrü
"50" > "100" ==> 1 "50" > "100" ==> 1
Einige Variablen werden im Ausdruck mittels der Formatierung ${variable} ersetzt. Mögliche Variablen sind, nach Reihenfolge ihrer Priorität: Einige Variablen werden im Ausdruck mittels der Formatierung ${variable} ersetzt. Mögliche Variablen sind, nach Reihenfolge ihrer Priorität:
- die Zeichenfolge selbst ohne Auswertung (Format: "raw:xxx") 1. die Zeichenfolge selbst ohne Auswertung (Format: "raw:xxx")\n
- eine benutzerdefinierte Variable (Format: "name") 2. eine evaluierte Teilzeichenkette (Format: "eval:xxx")
- eine evaluierte Teilzeichenkette (Format: "eval:xxx") 3. eine evaluierte Bedingung (Format: "eval_cond:xxx")
- eine evaluierte Bedingung (Format: "eval_cond:xxx") 4. eine Zeichenkette mit Escapesequenzen (Format: "esc:xxx" oder "\xxx")
- eine Zeichenkette mit Escapesequenzen (Format: "esc:xxx" oder "\xxx") 5. Zeichen, die in einer Zeichenkette nicht dargestellt werden sollen (Format: "hide:Zeichen,Zeichenkette")
- eine Zeichenfolge mit einer Reihe von Zeichen (Format: "chars:xxx" oder "chars:c1-c2" wobei "xxx" von folgenden Typ sein muss: "digit", "xdigit", "lower", "upper", "alpha", "alnum") 6. eine Zeichenkette mit einer maximalen Anzahl an Zeichen (Format: "cut:max,suffix,string" oder "cut:+max,suffix,string")
- eine Zeichenfolge, die in Kleinbuchstaben umgewandelt wird (Format: "lower:xxx")
- eine Zeichenfolge, die in Großbuchstaben umgewandelt wird (Format: "upper:xxx")
- Zeichen, die in einer Zeichenkette nicht dargestellt werden sollen (Format: "hide:Zeichen,Zeichenkette")
- 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") oder maximale Anzahl an Zeichen die auf dem Bildschirm angezeigt werden sollen (Format: "cutscr:Max,Suffix,Zeichenkette oder "cutscr:+Max,Suffix,Zeichenkette")
- eine Zeichenkette umkehren (Format: "rev:xxx" oder "revscr:xxx") 7. eine Zeichenkette umkehren (Format: "rev:xxx" oder "revscr:xxx")
- eine Zeichenkette wiederholen (Format: "repeat:Anzahl,Zeichenkette") 8. eine Zeichenkette wiederholen (Format: "repeat:Anzahl,Zeichenkette")
- Länge einer Zeichenkette (Format: "length:xxx" oder "lengthscr:xxx") 9. Länge einer Zeichenkette (Format: "length:xxx" oder "lengthscr:xxx")
- Aufteilen einer Zeichenkette (Format: "split:Anzahl,Trennzeichen,Flags,xxx") 10. eine Farbe (Format: "color:xxx", siehe "Anleitung für API Erweiterung", Funktion "color")
- Aufteilen von Shell-Argumenten (Format: "split_shell:Anzahl,xxx") 11. zum modifizieren (Format: "modifier:name,data,string")
- eine Farbe (Format: "color:xxx", siehe "Anleitung für API Erweiterung", Funktion "color") 12. eine Info (Format: "Info:Name,Argumente", Argumente sind optional)
- zum modifizieren (Format: "modifier:name,data,string") 13. eine Basis 16/32/64 kodierte / dekodierte Zeichenfolge (Format: "base_encode:base,xxx" oder "base_decode:base,xxx")
- eine Info (Format: "Info:Name,Argumente", Argumente sind optional) 14. aktuelles Datum/Uhrzeit (Format: "date" oder "date:format")
- eine Basis 16/32/64 kodierte / dekodierte Zeichenfolge (Format: "base_encode:base,xxx" oder "base_decode:base,xxx") 15. eine Umgebungsvariable (Format: "env:XXX")
- aktuelles Datum/Uhrzeit (Format: "date" oder "date:format") 16. ein Dreifachoperand (Format: "if:Bedingung?Wert_falls_wahr:Wert_falls_unwahr")
- eine Umgebungsvariable (Format: "env:XXX") 17. Ergebnis eines Ausdrucks mit Klammern und Operatoren + - * / // % ** (Format: "calc:xxx")
- ein Dreifachoperand (Format: "if:Bedingung?Wert_falls_wahr:Wert_falls_unwahr") 18. eine übersetzte Zeichenkette (Format: "translate:xxx")
- Ergebnis eines Ausdrucks mit Klammern und Operatoren + - * / // % ** (Format: "calc:xxx") 19. eine Option (Format: "file.section.option")
- eine zufällige ganze Zahl (Format: "random:min,max") 20. eine lokale Variable eines Buffers
- eine übersetzte Zeichenkette (Format: "translate:xxx") 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.
- eine Benutzervariable definieren (Format: "define:Name,Wert")
- eine Option (Format: "file.section.option")
- eine lokale Variable eines Buffers
- 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: 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.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: hdata[list].var1.var2...: startet hdata mittels einer Liste, zum Beispiel:
@@ -1493,10 +1385,6 @@ Beispiele (einfache Zeichenketten):
/eval -n ${window.buffer.full_name} ==> core.weechat /eval -n ${window.buffer.full_name} ==> core.weechat
/eval -n ${window.buffer.number} ==> 1 /eval -n ${window.buffer.number} ==> 1
/eval -n ${\t} ==> <tab> /eval -n ${\t} ==> <tab>
/eval -n ${chars:digit} ==> 0123456789
/eval -n ${chars:J-T} ==> JKLMNOPQRST
/eval -n ${lower:TEST} ==> test
/eval -n ${upper:test} ==> TEST
/eval -n ${hide:-,${relay.network.password}} ==> -------- /eval -n ${hide:-,${relay.network.password}} ==> --------
/eval -n ${cut:3,+,test} ==> tes+ /eval -n ${cut:3,+,test} ==> tes+
/eval -n ${cut:+3,+,test} ==> te+ /eval -n ${cut:+3,+,test} ==> te+
@@ -1505,20 +1393,10 @@ Beispiele (einfache Zeichenketten):
/eval -n ${rev:Hello} ==> olleH /eval -n ${rev:Hello} ==> olleH
/eval -n ${repeat:5,-} ==> ----- /eval -n ${repeat:5,-} ==> -----
/eval -n ${length:test} ==> 4 /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 ${calc:(5+2)*3} ==> 21
/eval -n ${random:0,10} ==> 3
/eval -n ${base_encode:64,test} ==> dGVzdA== /eval -n ${base_encode:64,test} ==> dGVzdA==
/eval -n ${base_decode:64,dGVzdA==} ==> test /eval -n ${base_decode:64,dGVzdA==} ==> test
/eval -n ${translate:Plugin} ==> Erweiterung /eval -n ${translate:Plugin} ==> Erweiterung
/eval -n ${define:len,${calc:5+3}}${len}x${len} ==> 8x8
Beispiele (Bedingungen): Beispiele (Bedingungen):
/eval -n -c ${window.buffer.number} > 2 ==> 0 /eval -n -c ${window.buffer.number} > 2 ==> 0
@@ -1542,7 +1420,7 @@ Beispiele (Bedingungen):
add|addreplace <name> <buffer>[,<buffer>...] <tags> <regex> add|addreplace <name> <buffer>[,<buffer>...] <tags> <regex>
rename <name> <new_name> rename <name> <new_name>
recreate <name> recreate <name>
del <name>|-all [<name>...] del <name>|-all
list: alle Filter auflisten list: alle Filter auflisten
enable: Filter wird aktiviert (Filter werden standardmäßig aktiviert) enable: Filter wird aktiviert (Filter werden standardmäßig aktiviert)
@@ -1626,22 +1504,6 @@ clear: löscht den Befehlsverlauf
value: Anzahl der gewünschten Einträgen im Befehlsverlauf anzeigen value: Anzahl der gewünschten Einträgen im Befehlsverlauf anzeigen
---- ----
[[command_weechat_hotlist]]
* `+hotlist+`: Hotlist verwalten
----
/hotlist add [low|message|private|highlight]
clear [<level>]
remove
restore [-all]
add: füge den aktuellen Buffer zur Hotlist (Standardlevel: "low", Bedingungen die in Option weechat.look.hotlist_add_conditions definiert sind, werden NICHT überprüft)
clear: lösche Hotlist
level: "lowest" um die niedrigste Benachrichtigungsstufe in der Hotlist zu löschen, "highest" um die höchste Benachrichtigungsstufe in der Hotlist zu löschen, oder mit einer Levelmaske: Integer aus einer Kombination von 1=join/part, 2=message, 4=private, 8=highlight)
remove: entferne aktuellen Buffer von Hotlist
restore: stellt die letzte Hotlist wieder her, die im aktuellen Buffer entfernt wurde (oder alle Buffer mit -all)
----
[[command_weechat_input]] [[command_weechat_input]]
* `+input+`: Funktionen für die Befehlszeile * `+input+`: Funktionen für die Befehlszeile
@@ -1664,7 +1526,6 @@ Auflistung der möglichen Aktionen:
delete_previous_char: entfernt vorheriges Zeichen delete_previous_char: entfernt vorheriges Zeichen
delete_next_char: entfernt nächstes Zeichen delete_next_char: entfernt nächstes Zeichen
delete_previous_word: entfernt vorheriges Wort 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_next_word: entfernt nächstes Wort
delete_beginning_of_line: entfernt alle Zeichen ab Zeilenanfang bis zum Cursor 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 delete_end_of_line: entfernt alle Zeichen ab Cursor bis zum Ende der Zeile
@@ -1683,10 +1544,20 @@ Auflistung der möglichen Aktionen:
history_next: ruft nächsten Befehl oder Nachricht aus dem Befehlsspeicher auf (im Such-Modus: vorwärts suchen) history_next: ruft nächsten Befehl oder Nachricht aus dem Befehlsspeicher auf (im Such-Modus: vorwärts suchen)
history_global_previous: ruft vorherigen Befehl/Nachricht aus dem globalen Befehlsspeicher auf (für alle Buffer) history_global_previous: ruft vorherigen Befehl/Nachricht aus dem globalen Befehlsspeicher auf (für alle Buffer)
history_global_next: ruft nächsten Befehl/Nachricht aus dem globalen Befehlsspeicher auf (für alle Buffer) history_global_next: ruft nächsten Befehl/Nachricht aus dem globalen Befehlsspeicher auf (für alle Buffer)
jump_smart: wechselt zum nächsten Buffer mit Aktivität (nach Priorität: highlight, Nachricht, …)
jump_last_buffer_displayed: wechselt zum jeweils zuletzt angezeigten Buffer
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)
grab_key: fängt eine Taste (optionales Argument: Verzögerung um eine Taste einzufangen. Standard sind 500 Millisekunden) 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_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 grab_mouse: fängt den Code einer Maus Aktivität
grab_mouse_area: fängt den Code einer Maus Aktivität mit entsprechendem Bereich grab_mouse_area: fängt den Code einer Maus Aktivität mit entsprechendem Bereich
set_unread: setzt für alle Buffer die Markierung der ungelesen Nachrichten
set_unread_current_buffer: setzt nur für den aktuellen Buffer eine Markierung der ungelesen Nachrichten
switch_active_buffer: springt zum nächsten zusammengefügten Buffer
switch_active_buffer_previous: springt zum vorherigen zusammengefügten Buffer
zoom_merged_buffer: zoomt in zusammengefügte Buffer
insert: fügt einen Text in die Eingabezeile ein (Escapesequenzen sind möglich, siehe /help print) insert: fügt einen Text in die Eingabezeile ein (Escapesequenzen sind möglich, siehe /help print)
send: schickt Text an einen Buffer send: schickt Text an einen Buffer
paste_start: Einfügen wird gestartet (bracketed paste mode) paste_start: Einfügen wird gestartet (bracketed paste mode)
@@ -1695,49 +1566,6 @@ Auflistung der möglichen Aktionen:
Dieser Befehl wird sinnvollerweise mittels Tastenbelegungen oder Erweiterungen genutzt. 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]] [[command_weechat_key]]
* `+key+`: Einer Taste einen Befehl zuordnen oder entfernen * `+key+`: Einer Taste einen Befehl zuordnen oder entfernen
@@ -1816,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. 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. 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]] [[command_weechat_mouse]]
@@ -1867,26 +1693,21 @@ Beispiele:
* `+plugin+`: Erweiterungen verwalten (auflisten/installieren/beenden) * `+plugin+`: Erweiterungen verwalten (auflisten/installieren/beenden)
---- ----
/plugin list [-o|-ol|-i|-il|<name>] /plugin list|listfull [<name>]
listfull [<name>]
load <filename> [<arguments>] load <filename> [<arguments>]
autoload [<arguments>] autoload [<arguments>]
reload [<name>|* [<arguments>]] reload [<name>|* [<arguments>]]
unload [<name>] unload [<name>]
list: installierte Erweiterungen werden aufgelistet list: installierte Erweiterungen werden aufgelistet
-o: sende Liste der geladenen Erweiterungen an den Buffer (Ausgabe in Englisch) listfull: detaillierte Auflistung aller installierten Erweiterungen
-ol: sende Liste der geladenen Erweiterungen an den Buffer (Übersetzte Ausgabe) load: installiert eine Erweiterung
-i: Liste der geladenen Erweiterungen in die Befehlszeile kopieren (zum Senden an den Buffer) (Ausgabe in Englisch)
-il: Liste der geladenen Erweiterungen in die Befehlszeile kopieren (zum Senden an den Buffer) (Übersetzte Ausgabe)
name: Name einer Erweiterung
listfull: geladene Erweiterungen auflisten (ausführlich)
load: Laden einer Erweiterung
filename: Erweiterung (Dateiname) welche installiert werden soll
arguments: Argumente die der Erweiterung beim Installieren übergeben werden sollen
autoload: installiert automatisch alle Erweiterungen aus dem System- oder Benutzerverzeichnis 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) 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) 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. Ohne Angabe eines Arguments werden alle installierten Erweiterungen angezeigt.
---- ----
@@ -2114,32 +1935,6 @@ Beispiele:
/set env ABC "" /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]] [[command_weechat_unset]]
* `+unset+`: Konfigurationsparameter freigeben/zurücksetzen * `+unset+`: Konfigurationsparameter freigeben/zurücksetzen
@@ -2160,23 +1955,20 @@ Beispiele:
---- ----
[[command_weechat_upgrade]] [[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 -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) 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) -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) -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. 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. 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: Der Upgrade Vorgang besteht aus vier Schritten:
1. Sicherung der Sitzung, in Dateien für Core und Erweiterungen (buffers, history, ..) 1. Sicherung der Sitzung, in Dateien für Core und Erweiterungen (buffers, history, ..)
2. alle Erweiterungen werden ausgeschaltet (Konfigurationen *.conf werden gesichert) 2. alle Erweiterungen werden ausgeschaltet (Konfigurationen *.conf werden gesichert)
@@ -2189,13 +1981,9 @@ Nutzt man die "-quit" Funktion ist die Abfolge geringfügig anders:
3. alle Erweiterungen werden ausgeschaltet 3. alle Erweiterungen werden ausgeschaltet
4. die WeeChat Konfiguration wird gesichert 4. die WeeChat Konfiguration wird gesichert
5. WeeChat wird beendet 5. WeeChat wird beendet
Die Sitzung kann zu einem späteren Zeitpunkt wiederhergestellt werden: weechat --upgrade
Mit der Option "-save" ist der Ablauf: WICHTIG: Die Sitzung muss mit exakt den selben Konfigurationsdateien wiederhergestellt werden (*.conf)
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!) Es ist möglich, die WeeChat-Sitzung auf einem anderen Computer wiederherzustellen, wenn Sie den Inhalt der WeeChat Verzeichnisse kopieren (siehe / debug dirs).
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).
---- ----
[[command_weechat_uptime]] [[command_weechat_uptime]]
@@ -2379,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) - ${format_hotlist}: die formatierte Hotlist (evaluiert aus Option buflist.format.hotlist)
- ${hotlist}: die Hotlist in der Rohform - ${hotlist}: die Hotlist in der Rohform
- ${hotlist_priority}: "none", "low", "message", "private" oder "highlight" - ${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_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) - ${format_tls_version}: Indikator der TLS Version für den Serverbuffer, Channels bleiben unberührt (evaluiert aus Option buflist.format.tls_version)
---- ----
@@ -2744,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. 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: 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) 2: Wechsel von Nicks (/nick)
3: Nachrichten vom Server 3: Nachrichten vom Server
4: join/part/quit Nachrichten 4: join/part/quit Nachrichten
@@ -2946,7 +2733,7 @@ protocol.name: Protokoll und Name des Relay:
- Protokoll "weechat" (es wird kein Name verwendet) - 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 "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. Ohne Angabe von Argumenten werden alle Relay-Clients in einem neuen Buffer dargestellt.
@@ -3101,7 +2888,7 @@ Beispiele:
---- ----
/spell enable|disable|toggle /spell enable|disable|toggle
listdict listdict
setdict -|<dict>[,<dict>...] setdict <dict>[,<dict>...]
deldict deldict
addword [<dict>] <word> addword [<dict>] <word>
@@ -3109,7 +2896,7 @@ Beispiele:
disable: Rechtschreibprüfung wird deaktiviert disable: Rechtschreibprüfung wird deaktiviert
toggle: Funktionalität der Rechtschreibprüfung umschalten toggle: Funktionalität der Rechtschreibprüfung umschalten
listdict: die, auf dem System, installierten Wörterbücher werden aufgelistet 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 deldict: Wörterbuch für den aktuellen Buffer entfernen
addword: fügt ein Wort in das persönliche Wörterbuch hinzu addword: fügt ein Wort in das persönliche Wörterbuch hinzu
@@ -3217,7 +3004,7 @@ post_action: Aktion welche nach der Abarbeitung des Triggers ausgeführt werden
restart: startet Trigger neu (Hook(s) werden neu erstellt) restart: startet Trigger neu (Hook(s) werden neu erstellt)
show: zeigt detaillierte Informationen zu einem Trigger (inklusive einer kleinen Statistik) show: zeigt detaillierte Informationen zu einem Trigger (inklusive einer kleinen Statistik)
del: entfernt einen Trigger 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) restore: stellt Trigger mit Standardwerten wieder her (funktioniert nur bei vorgegebenen Triggern)
default: stellt die standardmäßigen Trigger wieder her default: stellt die standardmäßigen Trigger wieder her
monitor: öffnet den Trigger Monitor-Buffer, mit optionaler Filterfunktion: monitor: öffnet den Trigger Monitor-Buffer, mit optionaler Filterfunktion:
@@ -3231,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 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): 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}/" /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: verbirgt die Nicklist auf kleineren Terminals:
/trigger add resize_small signal signal_sigwinch "${info:term_width} < 100" "" "/bar hide nicklist" /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" /trigger add resize_big signal signal_sigwinch "${info:term_width} >= 100" "" "/bar show nicklist"
speichert die Konfiguration jede Stunde ab: speichert die Konfiguration jede Stunde ab:
/trigger add cfgsave timer 3600000;0;0 "" "" "/mute /save" /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: öffnet den Trigger Monitor und zeigt ausschließlich modifier und Trigger an, die mit "resize" im Namen beginnen:
/trigger monitor @modifier,resize* /trigger monitor @modifier,resize*
---- ----
File diff suppressed because it is too large Load Diff
+2 -5
View File
@@ -1,6 +1,6 @@
// tag::plugin_options[] // tag::plugin_options[]
Um eine vollständige Dokumentation der Optionen zu erhalten, siehe 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, Mittels der IRC Erweiterung kann man sich zu einen temporären Server verbinden lassen,
indem man eine URL verwendet: indem man eine URL verwendet:
@@ -86,9 +86,6 @@ $HOME/.config/weechat/tcl.conf::
$HOME/.config/weechat/trigger.conf:: $HOME/.config/weechat/trigger.conf::
Konfigurationsdatei für _trigger_ Erweiterung Konfigurationsdatei für _trigger_ Erweiterung
$HOME/.config/weechat/typing.conf::
Konfigurationsdatei für _typing_ Erweiterung
$HOME/.config/weechat/xfer.conf:: $HOME/.config/weechat/xfer.conf::
Konfigurationsdatei für _xfer_ Erweiterung 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 WeeChat wird programmiert von Sébastien Helleu und weiteren Beteiligten (eine vollständige Auflistung
findet man in der AUTHORS.adoc Datei). findet man in der AUTHORS.adoc Datei).
Copyright (C) 2003-2023 {author} Copyright (C) 2003-2021 {author}
WeeChat is free software; you can redistribute it and/or modify WeeChat is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by 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 == 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 == 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
+171 -115
View File
@@ -10,10 +10,13 @@
:docinfo1: :docinfo1:
Diese Dokumentation bezieht sich auf die WeeChat Version ≥ 0.3.0. Es sollte aber
vorzugsweise immer die aktuell veröffentlichte Version von WeeChat genutzt werden.
Übersetzer: Übersetzer:
* Juergen Descher <jhdl@gmx.net>, 2009 * Juergen Descher <jhdl@gmx.net>, 2009
* Nils Görs <weechatter@arcor.de>, 2009-2022 * Nils Görs <weechatter@arcor.de>, 2009-2018
toc::[] toc::[]
@@ -35,8 +38,7 @@ Aber diese Bedeutung trifft nicht auf WeeChat zu!)
WeeChat ist sehr speicherschonend und besticht durch innovative Funktionen. WeeChat ist sehr speicherschonend und besticht durch innovative Funktionen.
Weitere Infomationen über Weechat Weitere Informationen findet man auf der WeeChat Seite: https://weechat.org/about/features
https://weechat.org/about/features/[features page ^↗^,window=_blank].
[[compilation_install]] [[compilation_install]]
== Kompilierung / Installation == Kompilierung / Installation
@@ -44,17 +46,17 @@ https://weechat.org/about/features/[features page ^↗^,window=_blank].
[[gui]] [[gui]]
=== Ich habe gehört es gibt verschiedene GUIs für WeeChat. Wie kann ich diese kompilieren bzw. nutzen? === 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 Es sind einige Remote-Oberflächen verfügbar. Diese findet man auf der Homepage:
https://weechat.org/about/interfaces/[remote interfaces page ^↗^,window=_blank]. https://weechat.org/about/interfaces
[[compile_git]] [[compile_git]]
=== Ich kann WeeChat nach Cloning des git Repository nicht kompilieren - weshalb? === 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. kompilieren von WeeChat zu nutzen.
Falls Du WeeChat mit Hilfe der 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 (dich also nicht für CMake entscheidest), stelle sicher, dass Du die neueste
Version von autoconf und automake besitzt. Version von autoconf und automake besitzt.
@@ -67,7 +69,7 @@ das Repository klont und daraus Updates installiert.
[[compile_macos]] [[compile_macos]]
=== Wie installiere ich WeeChat auf 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: Hilfe erhält man mittels:
---- ----
@@ -85,12 +87,12 @@ brew install weechat
Um Hilfe zu erhalten, nutze den `/help` Befehl. Um Hilfe zu erhalten, nutze den `/help` Befehl.
Jeder Befehl besitzt einen Hilfstext, den man sich durch `/help Befehlsname` anzeigen lassen kann. 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 Die link:weechat_user.de.html#key_bindings[Standard Tastenbelegung] sowie
link:weechat_user.de.html#commands_and_options[Befehle und Optionen ^↗^,window=_blank] sind im link:weechat_user.de.html#commands_and_options[Befehle und Optionen] sind im
link:weechat_user.de.html[Benutzerhandbuch ^↗^,window=_blank] aufgeführt. link:weechat_user.de.html[Benutzerhandbuch] aufgeführt.
Neuen Anwendern wird empfohlen, 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]] [[display]]
== Anzeige == Anzeige
@@ -123,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 ("`defutf8 on`" in der Datei ~/.screenrc oder `screen -U` beim Starten von
screen). screen).
* Überprüfe die Option * Ü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). (diese Option kann schwerwiegenden Darstellungsfehler verursachen, wenn man die Option aktiviert hat).
[NOTE] [NOTE]
@@ -139,10 +141,10 @@ Dieser Fehler sollte durch glibc 2.22 behoben sein (vielleicht ist diese Version
verwendeten Distributionen noch nicht verfügbar). verwendeten Distributionen noch nicht verfügbar).
Es gibt folgende Übergangslösung, um das Problem mit der _wcwidth_ zu umgehen: 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] Siehe auch diese Fehlermeldung für weitere Informationen:
für weitere Informationen. https://github.com/weechat/weechat/issues/79
[[bars_background]] [[bars_background]]
=== Weshalb haben Bars, z.B. Titel und Status, keine Hintergrundfarbe bzw. diese endet direkt nach dem Text? === Weshalb haben Bars, z.B. Titel und Status, keine Hintergrundfarbe bzw. diese endet direkt nach dem Text?
@@ -197,10 +199,17 @@ von einem oder mehreren Fenstern gleichzeitig angezeigt werden.
[[buffers_list]] [[buffers_list]]
=== Wie kann ich eine Liste mit den Buffern z.B. auf der linken Seite anzeigen lassen? === Wie kann ich eine Liste mit den Buffern z.B. auf der linken Seite anzeigen lassen?
Diese Erweiterung, link:weechat_user.de.html#buflist[buflist ^↗^,window=_blank], Ab WeeChat ≥ 1.8 wird standardmäßig die link:weechat_user.de.html#buflist_plugin["buflist"-Erweiterung]
wird standardmäßig geladen und aktiviert. automatisch geladen und verwendet.
Um die maximale Breite der buflist-Spalte zu reduzieren, nutze folgende Option: Bei älteren Versionen kann stattdessen das Skript _buffers.pl_ installiert werden:
----
/script install buffers.pl
----
Um die maximale Breite der buflist-Spalte zu reduzieren (ersetze "buflist" durch "buffers", wenn das
Skript _buffers.pl_ genutzt wird), nutze folgende Option:
---- ----
/set weechat.bar.buflist.size_max 15 /set weechat.bar.buflist.size_max 15
@@ -220,6 +229,26 @@ kbd:[F1] oder kbd:[Ctrl+F1]) zum Hoch-Scrollen,
kbd:[F2] oder kbd:[Ctrl+F2] zum Runter-Scrollen, kbd:[F2] oder kbd:[Ctrl+F2] zum Runter-Scrollen,
kbd:[Alt+F1] und kbd:[Alt+F2] um an den Anfang bzw. an das Ende der Liste zu springen. kbd:[Alt+F1] und kbd:[Alt+F2] um an den Anfang bzw. an das Ende der Liste zu springen.
Wird das Skript _buffers.pl_ verwendet,
müssen die entsprechenden Tasten selbst definiert werden.
Sie sind dann vergleichbar mit den vorhanden Tasten für die Nicklist. +
Um zum Beispiel folgende Tasten nutzen zu können:
kbd:[F1], kbd:[F2] um zu scrollen,
oder kbd:[Alt+F1] und kbd:[Alt+F2] um an den Anfang bzw. das Ende zu springen,
finden folgende WeeChat-Befehle Anwendung:
----
/key bind meta-OP /bar scroll buffers * -100%
/key bind meta-OQ /bar scroll buffers * +100%
/key bind meta-meta-OP /bar scroll buffers * b
/key bind meta-meta-OQ /bar scroll buffers * e
----
[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].
[[customize_buflist]] [[customize_buflist]]
=== Wie kann ich die Darstellung der Bufferliste anpassen, z.B. die Farbe des aktiven Buffers? === Wie kann ich die Darstellung der Bufferliste anpassen, z.B. die Farbe des aktiven Buffers?
@@ -242,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. 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] Es gibt auch eine Wiki-Seite mit Beispielen, wie eine erweiterte Konfiguration aussehen kann:
mit Beispielen für die erweiterte buflist Konfiguration. https://github.com/weechat/weechat/wiki/buflist
[[customize_prefix]] [[customize_prefix]]
=== Wie kann ich die Länge eines Nicknamens begrenzen oder die Ausrichtung des Nicks im Chatbereich entfernen? === Wie kann ich die Länge eines Nicknamens begrenzen oder die Ausrichtung des Nicks im Chatbereich entfernen?
@@ -289,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_*__ Weitere hotlist Eigenschaften können mit Hilfe der Optionen __weechat.look.hotlist_*__
verändert werden. verändert werden.
Siehe link:weechat_user.de.html#screen_layout[Benutzerhandbuch / Screen layout ^↗^,window=_blank] Siehe link:weechat_user.de.html#screen_layout[Benutzerhandbuch / Screen layout] für
für weitere Informationen zur Hotlist. weitere Informationen zur Hotlist.
[[input_bar_size]] [[input_bar_size]]
=== Wie kann man eine mehrzeilige Eingabezeile einstellen? === Wie kann man eine mehrzeilige Eingabezeile einstellen?
@@ -339,8 +368,9 @@ sobald das Item "input_text" in keiner anderen Bar genutzt wird:
[[terminal_copy_paste]] [[terminal_copy_paste]]
=== Wie kann ich einen Text kopieren und einfügen, ohne dass die Nickliste (Benutzerliste) mit kopiert wird? === Wie kann ich einen Text kopieren und einfügen, ohne dass die Nickliste (Benutzerliste) mit kopiert wird?
Sie können den vereinfachten Anzeigemodus verwenden (Standardtaste: kbd:[Alt+l] (`L`)), dieser Seit WeeChat ≥ 1.0 gibt es den "einfachen Anzeigemodus".
zeigt nur den Inhalt des aktuell ausgewählten Fensters an, ohne jegliche Formatierung. Dieser kann mit der Tastenkombination kbd:[Alt+l] (<l> wie in Lima) aktiviert werden.
Der Inhalt des aktuellen Fensters wird nach der Aktivierung ohne Formatierung angezeigt.
Jetzt kannst Du die Block-Auswahl nutzen, insofern dein Terminal diesen Modus Jetzt kannst Du die Block-Auswahl nutzen, insofern dein Terminal diesen Modus
unterstützt (rxvt-unicode, konsole, gnome-terminal, ... um nur einige zu nennen ). unterstützt (rxvt-unicode, konsole, gnome-terminal, ... um nur einige zu nennen ).
@@ -357,7 +387,8 @@ die Benutzerliste am oberen oder unteren Rand des WeeChat-Bildschirmes zu positi
[[urls]] [[urls]]
=== Wie kann ich eine URL aufrufen, die einen Zeilenumbruch besitzt? === Wie kann ich eine URL aufrufen, die einen Zeilenumbruch besitzt?
Dazu kann man den vereinfachten Anzeigemodus nutzen (Standardtaste: kbd:[Alt+l] (`L`)). Seit WeeChat ≥ 1.0 gibt es den "einfachen Anzeigemodus".
Dieser kann mit der Tastenkombination kbd:[Alt+l] (<l> wie in Lima) aktiviert werden.
Um URLs einfacher zu öffnen, können alternativ folgende Optionen gesetzt werden: Um URLs einfacher zu öffnen, können alternativ folgende Optionen gesetzt werden:
@@ -367,7 +398,7 @@ Um URLs einfacher zu öffnen, können alternativ folgende Optionen gesetzt werde
/set weechat.bar.nicklist.position top /set weechat.bar.nicklist.position top
---- ----
* Die Ausrichtung bei einem Zeilenumbruch innerhalb eines Wortes deaktivieren. * Die Ausrichtung bei einem Zeilenumbruch innerhalb eines Wortes deaktivieren (WeeChat ≥ 1.7).
---- ----
/set weechat.look.align_multiline_words off /set weechat.look.align_multiline_words off
@@ -379,9 +410,9 @@ Um URLs einfacher zu öffnen, können alternativ folgende Optionen gesetzt werde
/set weechat.look.align_end_of_lines time /set weechat.look.align_end_of_lines time
---- ----
Es kann auch die "eat_newline_glitch" Option aktiviert werden, Ab der WeeChat Version ≥ 0.3.6, kann die Option "eat_newline_glitch" aktiviert werden.
sodass kein neuer Zeilenumbruch hinzugefügt wird, Damit wird das Zeichen für einen Zeilenumbruch nicht an die dargestellten Zeilen angefügt
am Ende jeder angezeigten Zeile (es wird die URL-Auswahl nicht unterbrechen): (dies führt dazu, dass URLs beim Markieren korrekt erkannt werden):
---- ----
/set weechat.look.eat_newline_glitch on /set weechat.look.eat_newline_glitch on
@@ -428,6 +459,8 @@ In WeeChat wird der neue Wert umgehend genutzt:
[[use_256_colors]] [[use_256_colors]]
=== Wie kann ich 256 Farben in WeeChat nutzen? === Wie kann ich 256 Farben in WeeChat nutzen?
256 Farben werden ab der WeeChat Version ≥ 0.3.4 unterstützt.
Zuerst sollte überprüft werden, ob die _TERM_-Umgebungsvariable korrekt hinterlegt ist. Zuerst sollte überprüft werden, ob die _TERM_-Umgebungsvariable korrekt hinterlegt ist.
Folgende Werte sind zu empfehlen: Folgende Werte sind zu empfehlen:
@@ -448,18 +481,21 @@ term screen-256color
Falls die Umgebungsvariable _TERM_ einen falschen Wert haben sollte und WeeChat Falls die Umgebungsvariable _TERM_ einen falschen Wert haben sollte und WeeChat
schon gestartet wurde, kann man die Umgebungsvariable mit folgenden WeeChat Befehlen schon gestartet wurde, kann man die Umgebungsvariable mit folgenden WeeChat Befehlen
anpassen: anpassen (WeeChat ≥ 1.0):
---- ----
/set env TERM screen-256color /set env TERM screen-256color
/upgrade /upgrade
---- ----
Sie können eine beliebige Farbnummer in den Optionen verwenden (optional: Sie können Farbaliase, Mit der WeeChat Version 0.3.4 muss der Befehl `/color` genutzt werden, um neue Farben zu erstellen.
mit dem Befehl `/color`, erstellen.
Bitte lese link:weechat_user.de.html#colors[Benutzerhandbuch / Farben ^↗^,window=_blank] Ab Version ≥ 0.3.5 kann in den Optionen für eine zu nutzende Farbe die entsprechende
für weitere Informationen die das Farbmanagement betreffen. 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] für weitere
Informationen die das Farbmanagement betreffen.
[[search_text]] [[search_text]]
=== Wie kann ich in einem Buffer nach einem Text suchen (vergleichbar /lastlog in irssi)? === Wie kann ich in einem Buffer nach einem Text suchen (vergleichbar /lastlog in irssi)?
@@ -469,8 +505,8 @@ Die Standardtastenbelegung lautet kbd:[Ctrl+r]
Um zu Highlight-Nachrichten zu springen: Um zu Highlight-Nachrichten zu springen:
kbd:[Alt+p] für vorherige, kbd:[Alt+n] für die nächste Nachricht. kbd:[Alt+p] für vorherige, kbd:[Alt+n] für die nächste Nachricht.
siehe link:weechat_user.de.html#key_bindings[Benutzerhandbuch / Standard Tastenbelegung ^↗^,window=_blank] siehe link:weechat_user.de.html#key_bindings[Benutzerhandbuch / Standard Tastenbelegung] für weitere
für weitere Informationen zu dieser Funktion. Informationen zu dieser Funktion.
[[terminal_focus]] [[terminal_focus]]
=== Wie kann ich Befehle ausführen, wenn der Terminal (keinen) Fokus hat? === Wie kann ich Befehle ausführen, wenn der Terminal (keinen) Fokus hat?
@@ -505,7 +541,7 @@ Um zum Beispiel Buffer als gelesen zu markieren,
wenn das Terminal den Fokus verlieren sollte: wenn das Terminal den Fokus verlieren sollte:
---- ----
/key bind meta2-O /allbuf /buffer set unread /key bind meta2-O /input set_unread
---- ----
[[screen_paste]] [[screen_paste]]
@@ -523,10 +559,9 @@ Der bracketed paste Modus kann wie folgt deaktiviert werden:
[[small_terminal]] [[small_terminal]]
=== Wie kann ich die Anzeige bei sehr kleinen Terminalgrößen (wie 80 x 25) optimieren, um keinen Platz zu verschwenden? === 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- Sie können die seitlichen Bars (Buflist und Nicklist) entfernen und das Zeitformat im Buffer anpassen,
anzeige sollte nur Stunden und Minuten darstellen, die Ausrichtung von Nach- sodass nur Stunden und Sekunden angezeigt werden. Die Ausrichtung von Nachrichten sollte deaktiviert
richten sollte ebenfalls deaktiviert werden und es sollte der Nick mit einen und der Präfix/Suffix für Nicks gesetzt werden:
Präfix und Suffix vesehen werden:
---- ----
/set buflist.look.enabled off /set buflist.look.enabled off
@@ -650,7 +685,7 @@ Es kann auch eine neue Taste eingebunden werden um zu einem Buffer zu wechseln:
---- ----
Eine Auflistung der Standardtastenbelegung findet man in 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 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: werden um dann z.B. mit einem Kurzbefehl `/123` zum Buffer #123 zu springen:
@@ -682,6 +717,8 @@ Um die korrekten Tasten zu finden, sollte man mit kbd:[Alt+k] die gewünschte Ta
[[mouse_not_working]] [[mouse_not_working]]
=== Die Mausunterstützung funktioniert nicht, was kann ich tun? === Die Mausunterstützung funktioniert nicht, was kann ich tun?
Eine Unterstützung von Mausfunktionen ist seit WeeChat ≥ 0.3.6 verfügbar.
Als erstes sollte man die Mausunterstützung einschalten: Als erstes sollte man die Mausunterstützung einschalten:
---- ----
@@ -739,6 +776,12 @@ Falls macOS genutzt wird,
muss mittels Homebrew `openssl` installiert werden. muss mittels Homebrew `openssl` installiert werden.
Eine CA-Datei wird mittels Zertifikaten vom Systemschlüssel geladen. Eine CA-Datei wird mittels Zertifikaten vom Systemschlüssel geladen.
Ab WeeChat ≤ 3.1 können Sie den Pfad zu Systemzertifikaten festlegen:
----
/set weechat.network.gnutls_ca_file "/usr/local/etc/openssl/cert.pem"
----
Falls Fehlermeldungen auftreten, die besagen, Falls Fehlermeldungen auftreten, die besagen,
dass der gnutls Handshake fehlgeschlagen ist, dass der gnutls Handshake fehlgeschlagen ist,
sollte ein kleinerer Diffie-Hellman-Schlüssel verwendet werden (Standardgröße: 2048): sollte ein kleinerer Diffie-Hellman-Schlüssel verwendet werden (Standardgröße: 2048):
@@ -768,8 +811,8 @@ des Zertifikats von Hand eingetragen werden:
[[irc_ssl_handshake_error]] [[irc_ssl_handshake_error]]
=== Bei einem Verbindungsaufbau zum Server via SSL erhalte ich "TLS Handshake fehlgeschlagen". Wie kann ich das beheben? === Bei einem Verbindungsaufbau zum Server via SSL erhalte ich "TLS Handshake fehlgeschlagen". Wie kann ich das beheben?
Man sollte versuchen, eine andere Priorität zu nutzen; Im folgenden Beispiel Man sollte versuchen, eine andere Priorität zu nutzen (nur WeeChat ≥ 0.3.5);
muss "xxx" durch den betroffenen Servernamen ersetzt werden: Im folgenden Beispiel muss "xxx" durch den betroffenen Servernamen ersetzt werden:
---- ----
/set irc.server.xxx.ssl_priorities "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.0:+VERS-SSL3.0:%COMPAT" /set irc.server.xxx.ssl_priorities "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.0:+VERS-SSL3.0:%COMPAT"
@@ -778,8 +821,23 @@ muss "xxx" durch den betroffenen Servernamen ersetzt werden:
[[irc_ssl_libera]] [[irc_ssl_libera]]
=== Wie kann ich eine SSL gesicherte Verbindung zum libera Server herstellen? === Wie kann ich eine SSL gesicherte Verbindung zum libera Server herstellen?
Überprüfen Sie, ob auf Ihrem System Zertifikate installiert sind. Dies wird häufig Ab WeeChat ≤ 3.1 kann mit der Option _weechat.network.gnutls_ca_file_ eine Datei mit
durch das Paket "ca-certificates" bereitgestellt. Zertifikaten ausgewählt werden:
----
/set weechat.network.gnutls_ca_file "/etc/ssl/certs/ca-certificates.crt"
----
Wenn openssl mit homebrew unter macOS installiert wurde, könnte es sein,
dass die Zertifikate in einer anderen Datei bereitgestellt werden:
----
/set weechat.network.gnutls_ca_file "/usr/local/etc/openssl/cert.pem"
----
[NOTE]
Überprüfe, ob die Zertifikationsdatei auf deinem System installiert wurde.
Üblicherweise wird diese Datei durch das Paket "ca-certificates" bereitgestellt.
Konfiguration des Servers, Port angeben, SSL aktivieren und Verbindung herstellen: Konfiguration des Servers, Port angeben, SSL aktivieren und Verbindung herstellen:
@@ -806,7 +864,7 @@ ersetzt werden:
---- ----
[[irc_sasl]] [[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, Sollte der Server SASL unterstützen,
ist es ratsam auf diese Funktion zurückzugreifen ist es ratsam auf diese Funktion zurückzugreifen
@@ -819,44 +877,37 @@ und sich nicht mittels "nickserv" zu authentifizieren:
Unterstützt der Server keine SASL Authentifizierung, Unterstützt der Server keine SASL Authentifizierung,
kann eine Verzögerung aktiviert werden, 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 /set irc.server.libera.command_delay 5
---- ----
[[edit_autojoin]] [[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, Um die Liste der autojoin Channels zu editieren,
automatisch aufzeichnen und die Serveroption „autojoin“ entsprechend anpassen. kann der Befehl `/set` genutzt werden.
In folgendem Beispiel wird der "libera"-Server angepasst:
Für alle Server:
---- ----
/set irc.server_default.autojoin_dynamic on /set irc.server.libera.autojoin [TAB]
---- ----
Für einen einzelnen Server: [NOTE]
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 Channels neu geschrieben werden.
Es kann auch der `/fset` Befehl verwendet werden, um die Liste der Channels
zu editieren:
---- ----
/set irc.server.libera.autojoin_dynamic on /fset autojoin
---- ----
Sie können den aktuellen Kanal auch in der Serveroption "autojoin" hinzufügen, indem oder man nutzt ein Skript:
Sie den `/autojoin`-Befehl nutzen:
----
/autojoin add
----
oder einen beliebigen Kanal:
----
/autojoin add #test
----
Es existieren aber auch Skripten:
---- ----
/script search autojoin /script search autojoin
@@ -866,9 +917,9 @@ Es existieren aber auch Skripten:
=== Was ist der Unterschied zwischen dem Befehl /ignore und /filter? === Was ist der Unterschied zwischen dem Befehl /ignore und /filter?
Der Befehl `/ignore` ist ein (clientseitiger) IRC-Befehl und beeinflusst direkt, 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 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. Der Befehl wird nicht auf den Inhalt eines IRC-Buffers angewandt.
Zutreffende Meldungen werden, bevor sie dem Buffer zugeführt werden, Zutreffende Meldungen werden, bevor sie dem Buffer zugeführt werden,
von der "irc"-Erweiterung gelöscht. Es gibt somit keine Möglichkeit, von der "irc"-Erweiterung gelöscht. Es gibt somit keine Möglichkeit,
@@ -889,7 +940,7 @@ Die voreingestellte Tastenkombination zum Aktivieren bzw. Deaktivieren
aller Filter ist kbd:[Alt+-]. aller Filter ist kbd:[Alt+-].
[[filter_irc_join_part_quit]] [[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. Zum einen mit dem Smart-Filter.
Bei dessen Anwendung werden join/part/quit-Meldungen von Usern angezeigt, Bei dessen Anwendung werden join/part/quit-Meldungen von Usern angezeigt,
@@ -909,18 +960,19 @@ Dabei werden *alle* join/part/quit Nachrichten unterdrückt:
[NOTE] [NOTE]
Für weitere Hilfe: `/help filter`, `+/help irc.look.smart_filter+` und 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]] [[filter_irc_join_channel_messages]]
=== Wie kann ich die Server-Nachrichten filtern, wenn ich einen IRC Kanal betrete? === Wie kann ich Server-Nachrichten filtern, wenn ich einen IRC Channel betrete?
Sie können auswählen, welche Nachrichten angezeigt werden, wenn Sie einem Kanal beitreten Ab WeeChat ≥ 0.4.1 kann man auswählen, welche Server-Nachrichten beim Betreten
Option _irc.look.display_join_message_ (siehe `+/help irc.look.display_join_message+` eines Channels angezeigt und welche verborgen werden sollen. Dazu nutzt man
Für mehr Information). 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. Um Nachrichten visuell zu verbergen, können diese gefiltert werden.
Dazu wird der Befehl `/filter` auf bestimmte Nachrichten-Tags angewandt. 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 Siehe `/help filter`, um weitere Informationen über die Filterfunktion zu
erhalten. erhalten.
@@ -935,13 +987,13 @@ da diese dazu genutzt werden um den Abwesenheitsstatus anderer User anzuzeigen
und man nicht von diesen Mitteilungen überflutet werden möchte, und man nicht von diesen Mitteilungen überflutet werden möchte,
kann man WeeChat anweisen, abwesende Nicks in einer anderen Farbe darzustellen. 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 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 set away_devoice false
@@ -967,12 +1019,12 @@ in welchem Zeitintervall die Überprüfungen auf Abwesenheit stattfinden sollen.
Die Angabe des Wertes erfolgt in Minuten. Die Angabe des Wertes erfolgt in Minuten.
Mit der Option _irc.server_default.away_check_max_nicks_ kann festgelegt werden, Mit der Option _irc.server_default.away_check_max_nicks_ kann festgelegt werden,
in welchen Kanälen eine Überprüfung stattfinden soll. in welchen Channels eine Überprüfung stattfinden soll.
Hierbei stellt der angegebene Wert die maximale Anzahl an Nicks in einem Kanal dar, Hierbei stellt der angegebene Wert die maximale Anzahl an Nicks in einem Channel dar,
die den Kanal gleichzeitig besuchen dürfen. die den Channel gleichzeitig besuchen dürfen.
Im folgenden Beispiel wird der Abwesenheitsstatus alle fünf Minuten überprüft. 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: Teilnehmer haben:
---- ----
@@ -980,13 +1032,18 @@ Teilnehmer haben:
/set irc.server_default.away_check_max_nicks 25 /set irc.server_default.away_check_max_nicks 25
---- ----
[[highlight_notification]] [NOTE]
=== Wie kann ich mich benachrichtigen lassen, falls mich jemand in einem Kanal direkt anspricht (highlight)? Für WeeChat ≤ 0.3.3, lauten die Optionen _irc.network.away_check_ und
_irc.network.away_check_max_nicks_.
Es gibt einen voreingestellten Trigger mit Namen „beep“, der ein _BEL_ an das Terminal sendet, [[highlight_notification]]
bei einem Highlight oder einer private Nachricht. Damit können Sie Ihr Terminal konfigurieren === Wie kann ich mich benachrichtigen lassen, falls mich jemand in einem Channel direkt anspricht (highlight)?
(oder einen Multiplexer wie screen/tmux), um einen Befehl auszuführen oder einen Ton abzuspielen, wenn
ein _BEL_ tritt auf. Seit WeeChat ≥ 1.0 gibt es standardmäßig den Trigger "beep",
der an das Terminal ein _BEL_ Signal schickt,
sobald man eine highlight (hervorgehobene) oder private Nachricht erhält.
Nun muss man lediglich im Terminalprogramm oder dem Multiplexer (screen/tmux) einstellen,
welcher Befehl ausgeführt werden soll, sobald das Terminal das _BEL_ Signal erhält.
Der Trigger "beep" kann auch direkt an einen externen Befehl gekoppelt werden: Der Trigger "beep" kann auch direkt an einen externen Befehl gekoppelt werden:
@@ -1012,9 +1069,11 @@ Es gibt weitere Skripten, die auch zu diesem Thema passen:
[[disable_highlights_for_specific_nicks]] [[disable_highlights_for_specific_nicks]]
=== Wie kann ich Highlights (Hervorhebungen) von bestimmten Nicks deaktivieren? === Wie kann ich Highlights (Hervorhebungen) von bestimmten Nicks deaktivieren?
Dafür sollte link:weechat_user.de.html#max_hotlist_level_nicks[hotlist_max_level_nicks_add ^↗^,window=_blank] Ab WeeChat ≥ 0.3.4 kann die Eigenschaft
die Buffer-Eigenschaft genutzt werden, um das maximale Hotlist-Level für einige Nicks pro Puffer festzulegen, link:weechat_user.de.html#max_hotlist_level_nicks[hotlist_max_level_nicks_add]
oder pro Gruppe von Buffern (wie IRC-Server). 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.
Um nun Highlights (Hervorhebungen) für bestimmte Nicks zu deaktivieren, muss Um nun Highlights (Hervorhebungen) für bestimmte Nicks zu deaktivieren, muss
man die entsprechende Eigenschaft auf 2 setzen: man die entsprechende Eigenschaft auf 2 setzen:
@@ -1031,7 +1090,7 @@ das Skript _buffer_autoset.py_ nutzen:
/script install buffer_autoset.py /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: #weechat auf dem IRC Server libera zu deaktivieren:
---- ----
@@ -1050,7 +1109,7 @@ Für weitere Beispiele, siehe `+/help buffer_autoset+`.
=== Wie kann ich bei zusammengefügten Buffern den Zielbuffer ändern (z.B. bei einem Server-Buffer)? === Wie kann ich bei zusammengefügten Buffern den Zielbuffer ändern (z.B. bei einem Server-Buffer)?
Die Standardtastenkombination ist kbd:[Ctrl+x]. Der entsprechende Befehl lautet: Die Standardtastenkombination ist kbd:[Ctrl+x]. Der entsprechende Befehl lautet:
`+/buffer switch+`. `+/input switch_active_buffer+`.
[[plugins_scripts]] [[plugins_scripts]]
== Erweiterungen / Skripten == Erweiterungen / Skripten
@@ -1070,8 +1129,9 @@ Um dies zu beheben, muss folgendes konfiguriert werden:
[[install_scripts]] [[install_scripts]]
=== Wie kann ich Skripten installieren? Sind Skripten kompatibel mit anderen IRC Clients? === Wie kann ich Skripten installieren? Sind Skripten kompatibel mit anderen IRC Clients?
Mit dem Befehl `/script` können Sie Skripte installieren und verwalten (siehe `/help script` Seit WeeChat ≥ 0.3.9 gibt es den Befehl `/script` um Skripten zu installieren und zu verwalten
für Hilfe). (siehe `/help script` um eine Hilfe zu erhalten). Nutzt man eine ältere Version von WeeChat
kann man die Skripten weeget.py und script.pl nutzen.
Die Skripten für WeeChat sind mit anderen IRC-Clients nicht kompatibel und vice versa. Die Skripten für WeeChat sind mit anderen IRC-Clients nicht kompatibel und vice versa.
@@ -1088,7 +1148,7 @@ $ rm ~/.cache/weechat/script/plugins.xml.gz
---- ----
[NOTE] [NOTE]
Wenn Sie die XDG-Verzeichnisse nicht verwenden, könnte der Pfad lauten: _~/.weechat/script/plugins.xml.gz_. Ab WeeChat ≤ 3.1, sollte der Pfad: _~/.weechat/script/plugins.xml.gz_ lauten.
Danach sollte man noch einmal versuchen die Datei herunter zu laden: Danach sollte man noch einmal versuchen die Datei herunter zu laden:
@@ -1113,14 +1173,6 @@ $ cd ~/.cache/weechat/script
$ curl -O https://weechat.org/files/plugins.xml.gz $ 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]] [[spell_dictionaries]]
=== Ich habe aspell Wörterbücher auf mein System installiert. Wie kann ich diese nutzen, ohne WeeChat neu starten zu müssen? === Ich habe aspell Wörterbücher auf mein System installiert. Wie kann ich diese nutzen, ohne WeeChat neu starten zu müssen?
@@ -1130,6 +1182,10 @@ Du brauchst lediglich die "spell"-Erweiterung neu zu laden:
/plugin reload spell /plugin reload spell
---- ----
[NOTE]
Bis WeeChat ≤ 2.4, hieß die "spell"-Erweiterung, "aspell". Somit lautet der Befehl:
`/plugin reload aspell`.
[[settings]] [[settings]]
== Einstellungen == Einstellungen
@@ -1219,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` 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 bei der entsprechenden Option (falls man geschützte Daten nutzen kann, wird es
im Hilfstext erwähnt). 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: Beispiel:
@@ -1240,7 +1296,7 @@ Ihrer Passphrase verschlüsselten Kennwörter enthält.
Einige andere Dateien enthalten möglicherweise vertrauliche Informationen wie Einige andere Dateien enthalten möglicherweise vertrauliche Informationen wie
Kennwörter (sofern sie nicht mit dem Befehl `/secure` in _sec.conf_ gesichert werden). 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. für weitere Informationen über Konfigurationsdateien.
[[development]] [[development]]
@@ -1249,7 +1305,7 @@ für weitere Informationen über Konfigurationsdateien.
[[bug_task_patch]] [[bug_task_patch]]
=== Was kann ich machen, falls ich einen Fehler gefunden habe, mich nach neuen Funktionen erkundigen oder Patches einsenden möchte? === 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]] [[gdb_error_threads]]
=== Wenn man WeeChat in gdb startet, kann ein Thread-Fehler auftreten. Was beudeutet das? === Wenn man WeeChat in gdb startet, kann ein Thread-Fehler auftreten. Was beudeutet das?
@@ -1287,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, ... Es gibt einiges zu tun - z.B. testen, programmieren, dokumentieren, ...
Bitte kontaktieren Sie uns per IRC oder Mail, siehe Bitte kontaktiere uns via IRC oder E-Mail, wirf einen Blick auf die Support-Seite:
https://weechat.org/about/support/[support page ^↗^,window=_blank]. https://weechat.org/about/support
[[donate]] [[donate]]
=== Kann ich Geld oder anderes an die WeeChat Entwickler spenden? === Kann ich Geld oder anderes an die WeeChat Entwickler spenden?
Sie können uns Geld spenden, um die Entwicklung zu unterstützen. Du kannst uns Geld zur Unterstützung der weiteren Entwicklung spenden.
Details dazu, unter https://weechat.org/donate/[donation page ^↗^,window=_blank]. 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" /set irc.server.libera.autojoin "#channel1,#channel2"
---- ----
Mit dem `/autojoin` Befehl können die _autojoin_ Optionen einfach konfiguriert werden. [TIP]
(siehe `/help autojoin`). 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
WeeChat kann auch konfigurieren werden, dass die _autojoin_ Optionen automatisch aktualisiert werden durchgeführt werden (was bei langen Wörtern, wie z.B. dem Namen einer Option, nützlich
sobald man Kanäle betritt oder verlässt: sein kann).
----
/set irc.server_default.autojoin_dynamic on
----
Mit dem Befehl `/unset` können Server-Optionen zurückgesetzt werden. Mit dem Befehl `/unset` können Server-Optionen zurückgesetzt werden.
Ist eine Server-Option zurückgesetzt, _wirkt_ der entsprechende Vorgabewert 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 /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]] [[connect_to_irc_server]]
== Verbinden mit dem IRC-Server == Verbinden mit dem IRC-Server
@@ -441,14 +431,14 @@ Zeige eine liste aller verfügbaren Skripten:
/script /script
---- ----
Eine Liste von Skripten ist in WeeChat mittels `/script` oder auf Auf *weechat.org* von Drittanbietern bereitgestellte Scripten: https://weechat.org/scripts
https://weechat.org/scripts/[this page ^↗^,window=_blank] verfügbar.
[[more_doc]] [[more_doc]]
== Weitere Dokumentation == Weitere Dokumentation
WeeChat kann nun verwendet werden und lesen Sie Mit dieser Quickstart-Anleitung wurden dir die wesentlichen
https://weechat.org/doc/[FAQ/documentation ^↗^,window=_blank] Bedienungswerkzeuge von WeeChat nähergebracht.
falls Sie weitere Fragen haben. 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! Viel Spass mit WeeChat!
+151 -211
View File
@@ -17,8 +17,8 @@
Diese Anleitung beschreibt den WeeChat Chat Client und ist Teil von WeeChat. Diese Anleitung beschreibt den WeeChat Chat Client und ist Teil von WeeChat.
Die neueste Version dieses Dokuments finden Sie unter Die aktuelle Version dieser Anleitung finden Sie auf:
https://weechat.org/doc/[this page ^↗^,window=_blank]. https://weechat.org/doc
[[introduction]] [[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. + 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 Wenn etwas in einem Hintergrundprozess ausgeführt werden soll, kann die Funktion
`+hook_process+` genutzt werden. Siehe Beispiele im Kapitel <<hook_process,Hintergrundprozesse>> `+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]] [[languages_specificities]]
=== Besonderheiten der einzelnen Skriptsprachen === 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` WeeChat definiert ein `weechat` Module welches mittels `import weechat`
importiert werden muss. + importiert werden muss. +
Ein Python-Stub für die WeeChat-API ist im Repository verfügbar: 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]] [[python_functions]]
===== Funktionen ===== Funktionen
@@ -109,41 +109,45 @@ Liste ist nicht vollständig):
|=== |===
| API Funktion | Argumente | Beispiele| Beschreibung | API Funktion | Argumente | Beispiele| Beschreibung
| hook_modifier | hook_modifier |
| irc_in_yyy irc_in_yyy |
| pass:[irc_in_privmsg] + pass:[irc_in_privmsg] +
pass:[irc_in_notice] pass:[irc_in_notice] |
| Eine Nachricht die von der IRC Erweiterung empfangen wurde und bevor sie nach UTF-8 dekodiert wurde (intern Eine Nachricht die von der IRC Erweiterung empfangen wurde und bevor sie nach UTF-8 dekodiert wurde (intern
verwendet). + verwendet). +
+ +
Es wird empfohlen den Modifier `+irc_in2_yyy+` zu nutzen, da die empfangene Zeichenkette Es wird empfohlen den Modifier `+irc_in2_yyy+` zu nutzen, da die empfangene Zeichenkette
immer UTF-8 gültig ist. + immer UTF-8 gültig ist. +
siehe Funktion `+hook_modifier+` in der 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 | hook_signal |
| xxx,irc_out_yyy + xxx,irc_out_yyy +
xxx,irc_outtags_yyy xxx,irc_outtags_yyy |
| pass:[*,irc_out_privmsg] + pass:[*,irc_out_privmsg] +
pass:[*,irc_out_notice] + pass:[*,irc_out_notice] +
pass:[*,irc_outtags_privmsg] + pass:[*,irc_outtags_privmsg] +
pass:[*,irc_outtags_notice] pass:[*,irc_outtags_notice] |
| Eine Nachricht welche von der IRC Erweiterung versendet wurde, nachdem diese entsprechend Eine Nachricht welche von der IRC Erweiterung versendet wurde, nachdem diese entsprechend
der Benutzereinstellung `encode` Charset kodiert (falls abweichend von der `UTF-8` Standardeinstellung). + 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 Es wird empfohlen das Signal `+xxx,irc_out1_yyy+` zu nutzen, da die empfangene Zeichenkette
immer UTF-8 gültig ist. + immer UTF-8 gültig ist. +
siehe Funktion `+hook_signal+` in der 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 +
hook_process_hashtable hook_process_hashtable |
| - - |
| - - |
| Ausgabe des Befehls, dass an den Callback gesendet wurde, kann ungültige UTF-8 Daten enthalten. Ausgabe des Befehls, dass an den Callback gesendet wurde, kann ungültige UTF-8 Daten enthalten.
|=== |===
Mit Python 2, das mittlerweile veraltet ist und nicht mehr verwendet werden sollte, ist die
Zeichenkette die an die Callbacks gesendet wird immer vom Typ `str` und kann deshalb bei den
oben genannten Fällen, ungültige UTF-8 Daten enthalten.
[[language_perl]] [[language_perl]]
==== Perl ==== Perl
@@ -201,22 +205,6 @@ Funktionen werden aufgerufen mittels `+weechat.xxx(arg1, arg2, ...)+`.
Funktionen werden aufgerufen mittels `+weechat::xxx arg1 arg2 ...+`. Funktionen werden aufgerufen mittels `+weechat::xxx arg1 arg2 ...+`.
[[tcl_null]]
===== Nullwerte
Da Tcl nur String-Typen nutzt, gibt es keinen Null-Typ, der als Argument übergeben
werden kann wenn eine Funktion Nullwerte akzeptiert, oder als Argument in einem
Callback zu erhalten Funktion. Um dies zu umgehen, definiert die WeeChat-API die
Konstante `$::weechat::WEECHAT_NULL`, welches als Nullwert fungiert. Diese Konstante
ist festgelegt und lautet `\uFFFF\uFFFF\uFFFFWEECHAT_NULL\uFFFF\uFFFF\uFFFF`,
es ist also sehr unwahrscheinlich das dies ungewollt genutzt wird.
Sie können diese Konstante übergeben, wenn eine Funktion NULL als Argument akzeptiert
und Sie erhält es als Wert eines Arguments in einer Callback-Funktion zurück, wenn
der Wert des Arguments NULL ist. Um zu sehen, welche Funktionen Nullwerte akzeptieren
und Nullwerte in Rückrufen übergeben, schauen Sie sich die Python-Prototypen an
link:weechat_plugin_api.en.html[WeeChat plugin API reference ^↗^,window=_blank].
[[language_guile]] [[language_guile]]
==== Guile (Scheme) ==== Guile (Scheme)
@@ -396,7 +384,7 @@ ein Link in das entsprechende _autoload_ Verzeichnis erzeugt.
Die Skripten API ist nahezu identisch mit der API der C Erweiterung. Die Skripten API ist nahezu identisch mit der API der C Erweiterung.
Um einen Überblick über alle API Funktionen (Prototyp, Argumente, Um einen Überblick über alle API Funktionen (Prototyp, Argumente,
Rückgabe werte, Beispiele) zu erhalten werfen Sie einen Blick in 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_ Es ist wichtig das man zwischen einer _Erweiterung_ und einem _Skript_
unterscheidet: Eine _Erweiterung_ ist eine Binärdatei die kompiliert wurde unterscheidet: Eine _Erweiterung_ ist eine Binärdatei die kompiliert wurde
und mittels `/plugin` geladen wird. Ein _Skript_ ist eine Textdatei welche und mittels `/plugin` geladen wird. Ein _Skript_ ist eine Textdatei welche
@@ -565,25 +553,25 @@ weechat_hook_timer(1000, 0, 1, $timer_cb, 'test');
== Skript API == Skript API
Um weiterführende Informationen zu den API Funktionen zu erhalten 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]] [[script_api_functions]]
=== Funktionen === Funktionen
Liste der Skript API Funktionen: Liste der Skript API Funktionen:
[width="100%",cols="1,5",options="header"] [width="100%",cols="1,3",options="header"]
|=== |===
| Kategorie | Funktionen | Kategorie | Funktionen
| Allgemein | Allgemein |
| register register
| Erweiterungen | Erweiterungen |
| plugin_get_name plugin_get_name
| Strings | Strings |
| charset_set + charset_set +
iconv_to_internal + iconv_to_internal +
iconv_from_internal + iconv_from_internal +
gettext + gettext +
@@ -595,7 +583,6 @@ Liste der Skript API Funktionen:
string_has_highlight_regex + string_has_highlight_regex +
string_mask_to_regex + string_mask_to_regex +
string_format_size + string_format_size +
string_parse_size +
string_color_code_size + string_color_code_size +
string_remove_color + string_remove_color +
string_is_command_char + string_is_command_char +
@@ -603,13 +590,13 @@ Liste der Skript API Funktionen:
string_eval_expression + string_eval_expression +
string_eval_path_home string_eval_path_home
| Verzeichnisse | Verzeichnisse |
| mkdir_home + mkdir_home +
mkdir + mkdir +
mkdir_parents mkdir_parents
| sortierte Listen | sortierte Listen |
| list_new + list_new +
list_add + list_add +
list_search + list_search +
list_search_pos + list_search_pos +
@@ -625,8 +612,8 @@ Liste der Skript API Funktionen:
list_remove_all + list_remove_all +
list_free list_free
| Konfigurationsdatei | Konfigurationsdatei |
| config_new + config_new +
config_new_section + config_new_section +
config_search_section + config_search_section +
config_new_option + config_new_option +
@@ -663,21 +650,20 @@ Liste der Skript API Funktionen:
config_set_desc_plugin + config_set_desc_plugin +
config_unset_plugin config_unset_plugin
| Tastenbelegung | Tastenbelegung |
| key_bind + key_bind +
key_unbind key_unbind
| Ausgabe | Ausgabe |
| prefix + prefix +
color + color +
print (für Python: prnt) + print (für Python: prnt) +
print_date_tags (für Python: prnt_date_tags) + print_date_tags (für Python: prnt_date_tags) +
print_y (für Python: prnt_y) + print_y (für Python: prnt_y) +
print_y_date_tags (für Python: prnt_y_date_tags) +
log_print log_print
| Hooks | Hooks |
| hook_command + hook_command +
hook_command_run + hook_command_run +
hook_timer + hook_timer +
hook_fd + hook_fd +
@@ -702,9 +688,8 @@ Liste der Skript API Funktionen:
unhook + unhook +
unhook_all unhook_all
| Buffer | Buffer |
| buffer_new + buffer_new +
buffer_new_props +
current_buffer + current_buffer +
buffer_search + buffer_search +
buffer_search_main + buffer_search_main +
@@ -719,16 +704,16 @@ Liste der Skript API Funktionen:
buffer_string_replace_local_var + buffer_string_replace_local_var +
buffer_match_list buffer_match_list
| Fenster | Fenster |
| current_window + current_window +
window_search_with_buffer + window_search_with_buffer +
window_get_integer + window_get_integer +
window_get_string + window_get_string +
window_get_pointer + window_get_pointer +
window_set_title window_set_title
| Nickliste | Nickliste |
| nicklist_add_group + nicklist_add_group +
nicklist_search_group + nicklist_search_group +
nicklist_add_nick + nicklist_add_nick +
nicklist_search_nick + nicklist_search_nick +
@@ -744,8 +729,8 @@ Liste der Skript API Funktionen:
nicklist_nick_get_pointer + nicklist_nick_get_pointer +
nicklist_nick_set nicklist_nick_set
| Bars | Bars |
| bar_item_search + bar_item_search +
bar_item_new + bar_item_new +
bar_item_update + bar_item_update +
bar_item_remove + bar_item_remove +
@@ -755,23 +740,23 @@ Liste der Skript API Funktionen:
bar_update + bar_update +
bar_remove bar_remove
| Befehle | Befehle |
| command + command +
command_options command_options
| Vervollständigung | Vervollständigung |
| completion_new + completion_new +
completion_search + completion_search +
completion_get_string + completion_get_string +
completion_list_add + completion_list_add +
completion_free completion_free
| Informationen | Informationen |
| info_get + info_get +
info_get_hashtable info_get_hashtable
| Infolisten | Infolisten |
| infolist_new + infolist_new +
infolist_new_item + infolist_new_item +
infolist_new_var_integer + infolist_new_var_integer +
infolist_new_var_string + infolist_new_var_string +
@@ -789,8 +774,8 @@ Liste der Skript API Funktionen:
infolist_time + infolist_time +
infolist_free infolist_free
| hdata | hdata |
| hdata_get + hdata_get +
hdata_get_var_offset + hdata_get_var_offset +
hdata_get_var_type_string + hdata_get_var_type_string +
hdata_get_var_array_size + hdata_get_var_array_size +
@@ -811,8 +796,8 @@ Liste der Skript API Funktionen:
hdata_update + hdata_update +
hdata_get_string hdata_get_string
| Upgrade | Upgrade |
| upgrade_new + upgrade_new +
upgrade_write_object + upgrade_write_object +
upgrade_read + upgrade_read +
upgrade_close upgrade_close
@@ -823,17 +808,17 @@ Liste der Skript API Funktionen:
Liste der Konstanten in Skript API: Liste der Konstanten in Skript API:
[width="100%",cols="1,5",options="header"] [width="100%",cols="1,3",options="header"]
|=== |===
| Kategorie | Konstanten | Kategorie | Konstanten
| return codes | return codes |
| `WEECHAT_RC_OK` (integer) + `WEECHAT_RC_OK` (integer) +
`WEECHAT_RC_OK_EAT` (integer) + `WEECHAT_RC_OK_EAT` (integer) +
`WEECHAT_RC_ERROR` (integer) `WEECHAT_RC_ERROR` (integer)
| Konfigurationsdatei | Konfigurationsdatei |
| `WEECHAT_CONFIG_READ_OK` (integer) + `WEECHAT_CONFIG_READ_OK` (integer) +
`WEECHAT_CONFIG_READ_MEMORY_ERROR` (integer) + `WEECHAT_CONFIG_READ_MEMORY_ERROR` (integer) +
`WEECHAT_CONFIG_READ_FILE_NOT_FOUND` (integer) + `WEECHAT_CONFIG_READ_FILE_NOT_FOUND` (integer) +
`WEECHAT_CONFIG_WRITE_OK` (integer) + `WEECHAT_CONFIG_WRITE_OK` (integer) +
@@ -848,23 +833,23 @@ Liste der Konstanten in Skript API:
`WEECHAT_CONFIG_OPTION_UNSET_OK_REMOVED` (integer) + `WEECHAT_CONFIG_OPTION_UNSET_OK_REMOVED` (integer) +
`WEECHAT_CONFIG_OPTION_UNSET_ERROR` (integer) `WEECHAT_CONFIG_OPTION_UNSET_ERROR` (integer)
| sortierte Listen | sortierte Listen |
| `WEECHAT_LIST_POS_SORT` (string) + `WEECHAT_LIST_POS_SORT` (string) +
`WEECHAT_LIST_POS_BEGINNING` (string) + `WEECHAT_LIST_POS_BEGINNING` (string) +
`WEECHAT_LIST_POS_END` (string) `WEECHAT_LIST_POS_END` (string)
| Hotlist | Hotlist |
| `WEECHAT_HOTLIST_LOW` (string) + `WEECHAT_HOTLIST_LOW` (string) +
`WEECHAT_HOTLIST_MESSAGE` (string) + `WEECHAT_HOTLIST_MESSAGE` (string) +
`WEECHAT_HOTLIST_PRIVATE` (string) + `WEECHAT_HOTLIST_PRIVATE` (string) +
`WEECHAT_HOTLIST_HIGHLIGHT` (string) `WEECHAT_HOTLIST_HIGHLIGHT` (string)
| hook Prozesse | hook Prozesse |
| `WEECHAT_HOOK_PROCESS_RUNNING` (integer) + `WEECHAT_HOOK_PROCESS_RUNNING` (integer) +
`WEECHAT_HOOK_PROCESS_ERROR` (integer) `WEECHAT_HOOK_PROCESS_ERROR` (integer)
| hook Connect | hook Connect |
| `WEECHAT_HOOK_CONNECT_OK` (integer) + `WEECHAT_HOOK_CONNECT_OK` (integer) +
`WEECHAT_HOOK_CONNECT_ADDRESS_NOT_FOUND` (integer) + `WEECHAT_HOOK_CONNECT_ADDRESS_NOT_FOUND` (integer) +
`WEECHAT_HOOK_CONNECT_IP_ADDRESS_NOT_FOUND` (integer) + `WEECHAT_HOOK_CONNECT_IP_ADDRESS_NOT_FOUND` (integer) +
`WEECHAT_HOOK_CONNECT_CONNECTION_REFUSED` (integer) + `WEECHAT_HOOK_CONNECT_CONNECTION_REFUSED` (integer) +
@@ -876,8 +861,8 @@ Liste der Konstanten in Skript API:
`WEECHAT_HOOK_CONNECT_TIMEOUT` (integer) + `WEECHAT_HOOK_CONNECT_TIMEOUT` (integer) +
`WEECHAT_HOOK_CONNECT_SOCKET_ERROR` (integer) `WEECHAT_HOOK_CONNECT_SOCKET_ERROR` (integer)
| hook Signal | hook Signal |
| `WEECHAT_HOOK_SIGNAL_STRING` (string) + `WEECHAT_HOOK_SIGNAL_STRING` (string) +
`WEECHAT_HOOK_SIGNAL_INT` (string) + `WEECHAT_HOOK_SIGNAL_INT` (string) +
`WEECHAT_HOOK_SIGNAL_POINTER` (string) `WEECHAT_HOOK_SIGNAL_POINTER` (string)
|=== |===
@@ -888,7 +873,7 @@ Liste der Konstanten in Skript API:
Dieses Kapitel beinhaltet einige Aufgaben mit Lösungsbeispielen. Dieses Kapitel beinhaltet einige Aufgaben mit Lösungsbeispielen.
Die Skript API wird dabei nur sehr oberflächlich besprochen.Um eine vollständige Die Skript API wird dabei nur sehr oberflächlich besprochen.Um eine vollständige
Übersicht aller Befehle zu erhalten nutzen Sie bitte die Ü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]] [[buffers]]
=== Buffer === Buffer
@@ -908,7 +893,7 @@ Beispiele:
weechat.prnt("", "Hallo") weechat.prnt("", "Hallo")
# Gibt den Text "Hallo" im Core Buffer aus, schreibt diesen aber nicht in die Protokolldatei # 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") weechat.prnt_date_tags("", 0, "no_log", "hello")
# Gibt den Präfix "==>" gefolgt von dem Text "Hallo" im aktuellen Buffer aus # Gibt den Präfix "==>" gefolgt von dem Text "Hallo" im aktuellen Buffer aus
@@ -1088,53 +1073,26 @@ Mit der Funktion `+hook_process+` kann ein Hintergrundprozess gestartet werden.
Der Callback wird aufgerufen sobald der Hintergrundprozess abgearbeitet wurde. Der Callback wird aufgerufen sobald der Hintergrundprozess abgearbeitet wurde.
Dies kann auch mehrfach der Fall sein. Dies kann auch mehrfach der Fall sein.
Für den letzten Aufruf des Callback wird _return_code_ auf 0 oder einen positiven Für den letzten Aufruf des Callback wird _rc_ auf 0 oder einen positiven Wert
Wert gesetzt. Dies ist der Return Code des Befehls. gesetzt. Dies ist der Return Code des Befehls.
Beispiele: Beispiele:
[source,python] [source,python]
---- ----
def my_process_cb(data, command, return_code, out, err): process_output = ""
if return_code == weechat.WEECHAT_HOOK_PROCESS_ERROR:
weechat.prnt("", "Error with command '%s'" % command) def my_process_cb(data, command, rc, out, err):
return weechat.WEECHAT_RC_OK global process_output
if return_code >= 0: if out != "":
weechat.prnt("", "return_code = %d" % return_code) process_output += out
if out: if int(rc) >= 0:
weechat.prnt("", "stdout: %s" % out) weechat.prnt("", process_output)
if err:
weechat.prnt("", "stderr: %s" % err)
return weechat.WEECHAT_RC_OK return weechat.WEECHAT_RC_OK
weechat.hook_process("/bin/ls -l /etc", 10 * 1000, "my_process_cb", "") 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_transfer]]
==== URL Übertragung ==== URL Übertragung
@@ -1149,15 +1107,15 @@ dabei in der Callback-Variable "out" gesichert (Standardausgabe des Prozesses):
[source,python] [source,python]
---- ----
# Display latest stable version of WeeChat. # Zeigt die aktuelle stabile Version von WeeChat an.
weechat_latest_version = "" weechat_version = ""
def weechat_process_cb(data, command, return_code, out, err): def weechat_process_cb(data, command, rc, out, err):
global weechat_latest_version global weechat_version
if out: if out != "":
weechat_latest_version += out weechat_version += out
if return_code >= 0: if int(rc) >= 0:
weechat.prnt("", "Latest WeeChat version: %s" % weechat_latest_version) weechat.prnt("", "aktuelle stabile WeeChat-Version: %s" % weechat_version)
return weechat.WEECHAT_RC_OK return weechat.WEECHAT_RC_OK
weechat.hook_process("url:https://weechat.org/dev/info/stable/", weechat.hook_process("url:https://weechat.org/dev/info/stable/",
@@ -1165,17 +1123,16 @@ weechat.hook_process("url:https://weechat.org/dev/info/stable/",
---- ----
[TIP] [TIP]
Alle verfügbaren Informationen über WeeChat findet man unter Alle Informationen die WeeChat betreffen findet man auf: https://weechat.org/dev/info
https://weechat.org/dev/info/[this page ^↗^,window=_blank].
Beispiel eines URL Transfers, mit zusätzliche Optionen: Es wird das neuste Beispiel eines URL Transfers, mit zusätzliche Optionen: Es wird das neuste
WeeChat Entwicklerpaket in die Datei _/tmp/weechat-devel.tar.gz_ gesichert: WeeChat Entwicklerpaket in die Datei _/tmp/weechat-devel.tar.gz_ gesichert:
[source,python] [source,python]
---- ----
def my_process_cb(data, command, return_code, out, err): def my_process_cb(data, command, rc, out, err):
if return_code >= 0: if int(rc) >= 0:
weechat.prnt("", "End of transfer (return code = %d)" % return_code) weechat.prnt("", "End of transfer (rc=%s)" % rc)
return weechat.WEECHAT_RC_OK return weechat.WEECHAT_RC_OK
weechat.hook_process_hashtable("url:https://weechat.org/files/src/weechat-devel.tar.gz", weechat.hook_process_hashtable("url:https://weechat.org/files/src/weechat-devel.tar.gz",
@@ -1185,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 Für weitere Informationen zum URL Transfer und verfügbare Optionen, siehe Funktionen
`+hook_process+` und `+hook_process_hashtable+` in `+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]] [[config_options]]
=== Konfiguration / Optionen === Konfiguration / Optionen
@@ -1341,71 +1298,59 @@ Das Ergebnis ist eine Hashtabelle mit folgenden Schlüsseln
[width="100%",cols="3,^2,10,7",options="header"] [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 | 0.4.0 |
| Tags in der Nachricht (kann leer sein). Tags in der Nachricht (kann leer sein). |
| `+time=2015-06-27T16:40:35.000Z+` `+time=2015-06-27T16:40:35.000Z+`
| tag_xxx | 3.3 | message_without_tags | 0.4.0 |
| Wert des Tags "xxx" ohne Escapezeichen (ein Schlüssel pro Tag). Die IRC Nachricht ohne Tags (wie eine Nachricht ohne Tags). |
| `+2015-06-27T16:40:35.000Z+` `+:nick!user@host PRIVMSG #weechat :hello!+`
| message_without_tags | 0.4.0 | nick | 0.3.4 |
| Die IRC Nachricht ohne Tags (wie eine Nachricht ohne Tags). der ursprüngliche Nick. |
| `+:nick!user@host PRIVMSG #weechat :hello!+` `+nick+`
| nick | 0.3.4 | user | 2.7 |
| der ursprüngliche Nick. der ursprüngliche Benutzer. |
| `+nick+` `+user+`
| user | 2.7 | host | 0.3.4 |
| der ursprüngliche Benutzer. der ursprüngliche Host (beinhaltet den Nick). |
| `+user+` `+nick!user@host+`
| host | 0.3.4 | command | 0.3.4 |
| der ursprüngliche Host (beinhaltet den Nick). der Befehl (_PRIVMSG_, _NOTICE_, ...). |
| `+nick!user@host+` `+PRIVMSG+`
| command | 0.3.4 | channel | 0.3.4 |
| der Befehl (_PRIVMSG_, _NOTICE_, ...). der Zielchanne.l|
| `+PRIVMSG+`
| channel | 0.3.4
| der Zielchanne.l|
`+#weechat+` `+#weechat+`
| arguments | 0.3.4 | arguments | 0.3.4 |
| das Argument des Befehls (beinhaltet den Channel). das Argument des Befehls (beinhaltet den Channel). |
| `+#weechat :hello!+` `+#weechat :hello!+`
| text | 1.3 | text | 1.3 |
| der Text (zum Beispiel eine Nachricht eines Users). der Text (zum Beispiel eine Nachricht eines Users). |
| `+hello!+` `+hello!+`
| paramN | 3.4 | pos_command | 1.3 |
| Befehlsparameter (von 1 bis N). Index von _command_ innerhalb einer Nachricht ("-1" falls _command_ nicht gefunden wird). |
| `+#weechat+` `+47+`
| num_params | 3.4 | pos_arguments | 1.3 |
| Anzahl der Befehlsparameter. Index von_arguments_ innerhalb einer Nachricht ("-1" falls _arguments_ nicht gefunden wird). |
| `+2+` `+55+`
| pos_command | 1.3 | pos_channel | 1.3 |
| Index von _command_ innerhalb einer Nachricht ("-1" falls _command_ nicht gefunden wird). Index von _channel_ innerhalb einer Nachricht ("-1" falls _channel_ nicht gefunden wird). |
| `+47+` `+55+`
| pos_arguments | 1.3 | pos_text | 1.3 |
| Index von_arguments_ innerhalb einer Nachricht ("-1" falls _arguments_ nicht gefunden wird). Index von _text_ innerhalb einer Nachricht ("-1" falls _text_ nicht gefunden wird). |
| `+55+` `+65+`
| 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+`
|=== |===
[NOTE] [NOTE]
@@ -1415,12 +1360,10 @@ Das Ergebnis ist eine Hashtabelle mit folgenden Schlüsseln
---- ----
dict = weechat.info_get_hashtable( dict = weechat.info_get_hashtable(
"irc_message_parse", "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 == { # dict == {
# "tags": "time=2015-06-27T16:40:35.000Z;tag2=value\\sspace", # "tags": "time=2015-06-27T16:40:35.000Z",
# "tag_time": "2015-06-27T16:40:35.000Z",
# "tag_tag2": "value space",
# "message_without_tags": ":nick!user@host PRIVMSG #weechat :hello!", # "message_without_tags": ":nick!user@host PRIVMSG #weechat :hello!",
# "nick": "nick", # "nick": "nick",
# "user": "user", # "user": "user",
@@ -1429,13 +1372,10 @@ dict = weechat.info_get_hashtable(
# "channel": "#weechat", # "channel": "#weechat",
# "arguments": "#weechat :hello!", # "arguments": "#weechat :hello!",
# "text": "hello!", # "text": "hello!",
# "param1": "#weechat", # "pos_command": "47",
# "param2": "hello!", # "pos_arguments": "55",
# "num_params": "2", # "pos_channel": "55",
# "pos_command": "65", # "pos_text": "65",
# "pos_arguments": "73",
# "pos_channel": "73",
# "pos_text": "83",
# } # }
---- ----
+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!
+2148 -3151
View File
File diff suppressed because it is too large Load Diff
+12 -21
View File
@@ -1,6 +1,6 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# #
# Copyright (C) 2008-2023 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 # 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 # it under the terms of the GNU General Public License as published by
@@ -81,7 +81,6 @@ LOCALE_LIST = (
'it_IT', 'it_IT',
'ja_JP', 'ja_JP',
'pl_PL', 'pl_PL',
'sr_RS',
) )
# all commands/options/.. of following plugins will produce a file # all commands/options/.. of following plugins will produce a file
@@ -115,7 +114,6 @@ PLUGIN_LIST = {
'spell': 'o', 'spell': 'o',
'trigger': 'o', 'trigger': 'o',
'xfer': 'co', 'xfer': 'co',
'typing': 'o',
} }
# options to ignore # options to ignore
@@ -487,8 +485,7 @@ class AutogenDoc():
f'autogen_{name}.{self.locale[:2]}.adoc', f'autogen_{name}.{self.locale[:2]}.adoc',
) )
self.filename_tmp = f'{self.filename}.tmp' self.filename_tmp = f'{self.filename}.tmp'
# pylint: disable=consider-using-with self._file = open(self.filename_tmp, 'w')
self._file = open(self.filename_tmp, 'w', encoding='utf-8')
def write_autogen_files(self, weechat_doc): def write_autogen_files(self, weechat_doc):
"""Write auto-generated files.""" """Write auto-generated files."""
@@ -613,21 +610,15 @@ class AutogenDoc():
default_value = ('"%s"' % default_value = ('"%s"' %
default_value.replace('"', '\\"')) default_value.replace('"', '\\"'))
elif opt_type == 'color': elif opt_type == 'color':
values = _( values = _('a WeeChat color name (default, black, '
'a WeeChat color name (default, black, ' '(dark)gray, white, (light)red, '
'(dark)gray, white, (light)red, ' '(light)green, brown, yellow, (light)blue, '
'(light)green, brown, yellow, (light)blue, ' '(light)magenta, (light)cyan), a terminal '
'(light)magenta, (light)cyan), a terminal ' 'color number or an alias; attributes are '
'color number or an alias; attributes are ' 'allowed before color (for text color '
'allowed before color (for text color ' 'only, not background): \"*\" for bold, '
'only, not background): ' '\"!\" for reverse, \"/\" for italic, '
'\"%\" for blink, ' '\"_\" for underline')
'\".\" for \"dim\" (half bright), '
'\"*\" for bold, '
'\"!\" for reverse, '
'\"/\" for italic, '
'\"_\" for underline'
)
self.write(f'* [[option_{config}.{section}.{option}]] ' self.write(f'* [[option_{config}.{section}.{option}]] '
f'*{config}.{section}.{option}*') f'*{config}.{section}.{option}*')
self.write('** %s: pass:none[%s]', self.write('** %s: pass:none[%s]',
@@ -789,7 +780,7 @@ class AutogenDoc():
self.write('// tag::url_options[]') self.write('// tag::url_options[]')
self.write('[width="100%",cols="2,^1,7",options="header"]') self.write('[width="100%",cols="2,^1,7",options="header"]')
self.write('|===') self.write('|===')
self.write('| %s | %s ^(1)^ | %s ^(2)^\n', self.write('| %s | %s ^(1)^ | %s ^(2)^\n',
_('Option'), _('Type'), _('Constants')) _('Option'), _('Type'), _('Constants'))
for option in url_options: for option in url_options:
constants = option['constants'] constants = option['constants']
+6 -223
View File
@@ -1,255 +1,38 @@
<!-- <!--
Custom styles for Asciidoctor Custom styles for Asciidoctor
Copyright (C) 2016-2023 Sébastien Helleu <flashcode@flashtux.org> Copyright (C) 2016-2021 Sébastien Helleu <flashcode@flashtux.org>
--> -->
<style> <style>
#header,#content,#footnotes,#footer {
/* 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 {
max-width: none; max-width: none;
padding-left: 3em; padding-left: 3em;
padding-right: 3em; padding-right: 3em;
} }
#header #revnumber { #header #revnumber {
text-transform: none; text-transform: none;
} }
h1,h2,h3,h4,h5 {
h1, h2, h3, h4, h5 {
font-weight: bold; font-weight: bold;
} }
.literalblock pre { .literalblock pre {
font-family: "DejaVu Sans Mono", "Liberation Mono", "Lucida Console", monospace, 'Courier New', Courier; font-family: monospace, 'Courier New', Courier;
line-height: inherit; line-height: normal;
} }
kbd { kbd {
font-size: .9em; font-size: .9em;
} }
.keyseq { .keyseq {
margin-left: .2em; margin-left: .2em;
margin-right: .2em; margin-right: .2em;
} }
.tableblock kbd { .tableblock kbd {
margin-top: .2em; margin-top: .2em;
margin-bottom: .2em; margin-bottom: .2em;
} }
.hex { .hex {
padding: 0 .2em; padding: 0 .2em;
border: var(--border); border: 1px solid #88b;
margin: 0 .2em; margin: 0 .2em;
font-family: monospace; font-family: monospace;
font-size: 1.1em;
} }
</style> </style>
+14 -1
View File
@@ -1,5 +1,5 @@
# #
# Copyright (C) 2003-2023 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. # 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) 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}) 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 # relay protocol
add_custom_command( add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_relay_protocol.en.html OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_relay_protocol.en.html
+7 -1
View File
@@ -1,5 +1,5 @@
# #
# Copyright (C) 2003-2023 Sébastien Helleu <flashcode@flashtux.org> # Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2006 Julien Louis <ptitlouis@sysif.net> # Copyright (C) 2006 Julien Louis <ptitlouis@sysif.net>
# #
# This file is part of WeeChat, the extensible chat client. # This file is part of WeeChat, the extensible chat client.
@@ -29,6 +29,7 @@ EXTRA_DIST = CMakeLists.txt \
weechat_scripting.en.adoc \ weechat_scripting.en.adoc \
weechat_faq.en.adoc \ weechat_faq.en.adoc \
weechat_quickstart.en.adoc \ weechat_quickstart.en.adoc \
weechat_tester.en.adoc \
weechat_relay_protocol.en.adoc \ weechat_relay_protocol.en.adoc \
weechat_dev.en.adoc \ weechat_dev.en.adoc \
includes/autogen_api_completions.en.adoc \ includes/autogen_api_completions.en.adoc \
@@ -57,6 +58,7 @@ if DOC
weechat_scripting.en.html \ weechat_scripting.en.html \
weechat_faq.en.html \ weechat_faq.en.html \
weechat_quickstart.en.html \ weechat_quickstart.en.html \
weechat_tester.en.html \
weechat_relay_protocol.en.html \ weechat_relay_protocol.en.html \
weechat_dev.en.html weechat_dev.en.html
doc_install = install-doc 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 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 $(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 # relay protocol
weechat_relay_protocol.en.html: weechat_relay_protocol.en.adoc $(abs_top_srcdir)/doc/docinfo.html 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 $(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 | 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_ignores_numbers | numbers for defined ignores
| irc | irc_modelist_masks | modelist masks of current IRC channel; required argument: modelist mode | irc | irc_modelist_masks | modelist masks of current IRC channel; required argument: modelist mode
@@ -94,8 +92,6 @@
| tcl | tcl_script | list of scripts | 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_arguments | default arguments for a hook
| trigger | trigger_hook_command | default command 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 | 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_value | value of an environment variable
| weechat | env_vars | environment variables | weechat | env_vars | environment variables
-12
View File
@@ -79,8 +79,6 @@ _last_nick_speaking_time_   (pointer, hdata: "irc_channel_speaking") +
_modelists_   (pointer, hdata: "irc_modelist") + _modelists_   (pointer, hdata: "irc_modelist") +
_last_modelist_   (pointer, hdata: "irc_modelist") + _last_modelist_   (pointer, hdata: "irc_modelist") +
_join_smart_filtered_   (hashtable) + _join_smart_filtered_   (hashtable) +
_typing_state_   (integer) +
_typing_status_sent_   (time) +
_buffer_   (pointer, hdata: "buffer") + _buffer_   (pointer, hdata: "buffer") +
_buffer_as_string_   (string) + _buffer_as_string_   (string) +
_prev_channel_   (pointer, hdata: "irc_channel") + _prev_channel_   (pointer, hdata: "irc_channel") +
@@ -239,8 +237,6 @@ _sasl_scram_client_first_   (string) +
_sasl_scram_salted_pwd_   (other) + _sasl_scram_salted_pwd_   (other) +
_sasl_scram_salted_pwd_size_   (integer) + _sasl_scram_salted_pwd_size_   (integer) +
_sasl_scram_auth_message_   (string) + _sasl_scram_auth_message_   (string) +
_sasl_temp_username_   (string) +
_sasl_temp_password_   (string) +
_is_connected_   (integer) + _is_connected_   (integer) +
_ssl_connected_   (integer) + _ssl_connected_   (integer) +
_disconnected_   (integer) + _disconnected_   (integer) +
@@ -271,10 +267,6 @@ _chantypes_   (string) +
_chanmodes_   (string) + _chanmodes_   (string) +
_monitor_   (integer) + _monitor_   (integer) +
_monitor_time_   (time) + _monitor_time_   (time) +
_clienttagdeny_   (string) +
_clienttagdeny_count_   (integer) +
_clienttagdeny_array_   (string, array_size: "clienttagdeny_count") +
_typing_allowed_   (integer) +
_reconnect_delay_   (integer) + _reconnect_delay_   (integer) +
_reconnect_start_   (time) + _reconnect_start_   (time) +
_command_time_   (time) + _command_time_   (time) +
@@ -582,7 +574,6 @@ _title_   (string) +
_own_lines_   (pointer, hdata: "lines") + _own_lines_   (pointer, hdata: "lines") +
_mixed_lines_   (pointer, hdata: "lines") + _mixed_lines_   (pointer, hdata: "lines") +
_lines_   (pointer, hdata: "lines") + _lines_   (pointer, hdata: "lines") +
_next_line_id_   (integer) +
_time_for_each_line_   (integer) + _time_for_each_line_   (integer) +
_chat_refresh_needed_   (integer) + _chat_refresh_needed_   (integer) +
_nicklist_   (integer) + _nicklist_   (integer) +
@@ -632,8 +623,6 @@ _text_search_input_   (string) +
_highlight_words_   (string) + _highlight_words_   (string) +
_highlight_regex_   (string) + _highlight_regex_   (string) +
_highlight_regex_compiled_   (pointer) + _highlight_regex_compiled_   (pointer) +
_highlight_disable_regex_   (string) +
_highlight_disable_regex_compiled_   (pointer) +
_highlight_tags_restrict_   (string) + _highlight_tags_restrict_   (string) +
_highlight_tags_restrict_count_   (integer) + _highlight_tags_restrict_count_   (integer) +
_highlight_tags_restrict_array_   (pointer, array_size: "highlight_tags_restrict_count") + _highlight_tags_restrict_array_   (pointer, array_size: "highlight_tags_restrict_count") +
@@ -924,7 +913,6 @@ _next_line_   (pointer, hdata: "line") +
| structure with one line data | structure with one line data
| - | -
| _buffer_   (pointer, hdata: "buffer") + | _buffer_   (pointer, hdata: "buffer") +
_id_   (integer) +
_y_   (integer) + _y_   (integer) +
_date_   (time) + _date_   (time) +
_date_printed_   (time) + _date_printed_   (time) +
+2 -2
View File
@@ -60,6 +60,8 @@
| php | php_version | version of the interpreter used | - | php | php_version | version of the interpreter used | -
| python | python2_bin | path to Python 2.x interpreter (*deprecated* since version 2.6, scripts must use Python 3 only) | -
| python | python_eval | evaluation of source code | source code to execute | python | python_eval | evaluation of source code | source code to execute
| python | python_interpreter | name of the interpreter used | - | python | python_interpreter | name of the interpreter used | -
@@ -126,8 +128,6 @@
| weechat | uptime | WeeChat uptime (format: "days:hh:mm:ss") | "days" (number of days) or "seconds" (number of seconds) (optional) | 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 | WeeChat version | -
| weechat | version_git | WeeChat git version (output of command "git describe" for a development version only, empty for a stable release) | - | 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) | 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 | 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[] // tag::plugins_priority[]
. charset (16000) . charset (15000)
. logger (15000) . logger (14000)
. exec (14000) . exec (13000)
. trigger (13000) . trigger (12000)
. spell (12000) . spell (11000)
. alias (11000) . alias (10000)
. buflist (10000) . buflist (9000)
. fifo (9000) . fifo (8000)
. typing (8000)
. xfer (7000) . xfer (7000)
. irc (6000) . irc (6000)
. relay (5000) . relay (5000)
. guile (4070) . guile, javascript, lua, perl, php, python, ruby, tcl (4000)
. javascript (4060)
. lua (4050)
. perl (4040)
. php (4030)
. python (4020)
. ruby (4010)
. tcl (4000)
. script (3000) . script (3000)
. fset (2000) . fset (2000)
// end::plugins_priority[] // end::plugins_priority[]
+21 -47
View File
@@ -6,7 +6,7 @@
// tag::url_options[] // tag::url_options[]
[width="100%",cols="2,^1,7",options="header"] [width="100%",cols="2,^1,7",options="header"]
|=== |===
| Option | Type ^(1)^ | Constants ^(2)^ | Option | Type ^(1)^ | Constants ^(2)^
| verbose | long | | verbose | long |
@@ -48,6 +48,10 @@
| address_scope | long | | address_scope | long |
| protocols | mask | http, https, ftp, ftps, scp, sftp, telnet, ldap, ldaps, dict, file, tftp, all, imap, imaps, pop3, pop3s, smtp, smtps, rtsp, rtmp, rtmpt, rtmpe, rtmpte, rtmps, rtmpts, gopher, smb, smbs
| redir_protocols | mask | http, https, ftp, ftps, scp, sftp, telnet, ldap, ldaps, dict, file, tftp, all, imap, imaps, pop3, pop3s, smtp, smtps, rtsp, rtmp, rtmpt, rtmpe, rtmpte, rtmps, rtmpts, gopher, smb, smbs
| noproxy | string | | noproxy | string |
| socks5_gssapi_nec | long | | socks5_gssapi_nec | long |
@@ -78,19 +82,15 @@
| doh_url | string | | doh_url | string |
| protocols_str | string |
| redir_protocols_str | string |
| netrc | long | ignored, optional, required | netrc | long | ignored, optional, required
| userpwd | string | | userpwd | string |
| proxyuserpwd | string | | proxyuserpwd | string |
| httpauth | mask | none, basic, digest, ntlm, any, anysafe, digest_ie, only, ntlm_wb, negotiate, gssapi, bearer, aws_sigv4 | httpauth | mask | none, basic, digest, ntlm, any, anysafe, digest_ie, only, ntlm_wb, negotiate, gssapi, bearer
| proxyauth | mask | none, basic, digest, ntlm, any, anysafe, digest_ie, only, ntlm_wb, negotiate, gssapi, bearer, aws_sigv4 | proxyauth | mask | none, basic, digest, ntlm, any, anysafe, digest_ie, only, ntlm_wb, negotiate, gssapi, bearer
| netrc_file | string | | netrc_file | string |
@@ -108,8 +108,6 @@
| tlsauth_password | string | | tlsauth_password | string |
| sasl_authzid | string |
| sasl_ir | long | | sasl_ir | long |
| xoauth2_bearer | string | | xoauth2_bearer | string |
@@ -122,6 +120,8 @@
| followlocation | long | | followlocation | long |
| put | long |
| post | long | | post | long |
| postfields | string | | postfields | string |
@@ -144,7 +144,7 @@
| cookiejar | string | | cookiejar | string |
| http_version | long | none, 1_0, 1_1, 2_0, 2, 2tls, 2_prior_knowledge, 3 | http_version | long | none, 1_0, 1_1, 2_0, 2, 2tls, 2_prior_knowledge
| cookiesession | long | | cookiesession | long |
@@ -182,20 +182,12 @@
| request_target | string | | request_target | string |
| http09_allowed | long |
| hsts | string |
| hsts_ctrl | mask | enable, readonlyfile
| mail_from | string | | mail_from | string |
| mail_rcpt | list | | mail_rcpt | list |
| mail_auth | string | | mail_auth | string |
| mail_rcpt_alllowfails | long |
| tftp_blksize | long | | tftp_blksize | long |
| tftp_no_options | long | | tftp_no_options | long |
@@ -214,6 +206,8 @@
| ftp_create_missing_dirs | long | | ftp_create_missing_dirs | long |
| ftp_response_timeout | long |
| ftpsslauth | long | default, ssl, tls | ftpsslauth | long | default, ssl, tls
| ftp_account | string | | ftp_account | string |
@@ -244,8 +238,6 @@
| rtsp_server_cseq | long | | rtsp_server_cseq | long |
| aws_sigv4 | string |
| crlf | long | | crlf | long |
| range | string | | range | string |
@@ -282,8 +274,6 @@
| upload_buffersize | long | | upload_buffersize | long |
| mime_options | mask | formescape
| timeout | long | | timeout | long |
| low_speed_limit | long | | low_speed_limit | long |
@@ -308,8 +298,6 @@
| connecttimeout_ms | long | | connecttimeout_ms | long |
| maxage_conn | long |
| maxconnects | long | | maxconnects | long |
| use_ssl | long | none, try, control, all | use_ssl | long | none, try, control, all
@@ -334,8 +322,6 @@
| upkeep_interval_ms | long | | upkeep_interval_ms | long |
| maxlifetime_conn | long |
| sslcert | string | | sslcert | string |
| sslversion | long | default, tlsv1, sslv2, sslv3, tlsv1_0, tlsv1_1, tlsv1_2, tlsv1_3, max_default, max_none, max_tlsv1_0, max_tlsv1_1, max_tlsv1_2, max_tlsv1_3 | sslversion | long | default, tlsv1, sslv2, sslv3, tlsv1_0, tlsv1_1, tlsv1_2, tlsv1_3, max_default, max_none, max_tlsv1_0, max_tlsv1_1, max_tlsv1_2, max_tlsv1_3
@@ -344,6 +330,10 @@
| cainfo | string | | cainfo | string |
| random_file | string |
| egdsocket | string |
| ssl_verifyhost | long | | ssl_verifyhost | long |
| ssl_cipher_list | string | | ssl_cipher_list | string |
@@ -374,10 +364,12 @@
| gssapi_delegation | long | none, policy_flag, flag | gssapi_delegation | long | none, policy_flag, flag
| ssl_options | long | allow_beast, no_revoke, no_backends, ok, too_late, unknown_backend, no_partialchain, revoke_best_effort, native_ca, auto_client_cert | ssl_options | long | allow_beast, no_revoke, no_backends, ok, too_late, unknown_backend
| ssl_enable_alpn | long | | ssl_enable_alpn | long |
| ssl_enable_npn | long |
| pinnedpublickey | string | | pinnedpublickey | string |
| ssl_verifystatus | long | | ssl_verifystatus | long |
@@ -406,7 +398,7 @@
| proxy_ssl_cipher_list | list | | proxy_ssl_cipher_list | list |
| proxy_ssl_options | long | allow_beast, no_revoke, no_backends, ok, too_late, unknown_backend, no_partialchain, revoke_best_effort, native_ca, auto_client_cert | proxy_ssl_options | long | allow_beast, no_revoke, no_backends, ok, too_late, unknown_backend
| proxy_ssl_verifyhost | long | | proxy_ssl_verifyhost | long |
@@ -422,18 +414,6 @@
| proxy_tls13_ciphers | list | | proxy_tls13_ciphers | list |
| proxy_issuercert | string |
| ssl_ec_curves | string |
| doh_ssl_verifyhost | long |
| doh_ssl_verifypeer | long |
| doh_ssl_verifystatus | long |
| ca_cache_timeout | long |
| ssh_auth_types | mask | none, policy_flag, flag | ssh_auth_types | mask | none, policy_flag, flag
| ssh_public_keyfile | string | | ssh_public_keyfile | string |
@@ -446,17 +426,11 @@
| ssh_compression | long | | ssh_compression | long |
| ssh_host_public_key_sha256 | string |
| telnetoptions | list |
| ws_options | mask | binary, close, cont, offset, ping, pong, raw_mode, text
| new_file_perms | long | | new_file_perms | long |
| new_directory_perms | long | | new_directory_perms | long |
| quick_exit | long | | telnetoptions | list |
|=== |===
// end::url_options[] // end::url_options[]
+77 -292
View File
@@ -17,11 +17,10 @@ target: server name
* `+allchan+`: execute a command on all channels of all connected servers * `+allchan+`: execute a command on all channels of all connected servers
---- ----
/allchan [-current] [-parted] [-exclude=<channel>[,<channel>...]] <command> /allchan [-current] [-exclude=<channel>[,<channel>...]] <command>
[-current] [-parted] -include=<channel>[,<channel>...] <command> [-current] -include=<channel>[,<channel>...] <command>
-current: execute command for channels of current server only -current: execute command for channels of current server only
-parted: execute on parted channels only
-exclude: exclude some channels (wildcard "*" is allowed) -exclude: exclude some channels (wildcard "*" is allowed)
-include: include only 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 '/') 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 /allchan -exclude=#weechat,#linux* hello
say 'hello' on all channels beginning with #linux: say 'hello' on all channels beginning with #linux:
/allchan -include=#linux* hello /allchan -include=#linux* hello
close all buffers with parted channels:
/allchan -parted /close
---- ----
[[command_irc_allpv]] [[command_irc_allpv]]
@@ -103,56 +100,6 @@ Examples:
/allserv /whois $nick /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]] [[command_irc_ban]]
* `+ban+`: ban nicks or hosts * `+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 ls: list the capabilities supported by the server
list: list the capabilities currently enabled 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 ack: acknowledge capabilities which require client-side acknowledgement
end: end the capability negotiation end: end the capability negotiation
Without argument, "ls" and "list" are sent. 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). 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: Examples:
display supported and enabled capabilities: /cap
/cap /cap req multi-prefix away-notify
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
---- ----
[[command_irc_connect]] [[command_irc_connect]]
@@ -867,15 +808,6 @@ mask: list only services matching this mask
type: list only services of this type type: list only services of this type
---- ----
[[command_irc_setname]]
* `+setname+`: set real name
----
/setname <realname>
realname: new real name
----
[[command_irc_squery]] [[command_irc_squery]]
* `+squery+`: deliver a message to a service * `+squery+`: deliver a message to a service
@@ -1104,19 +1036,6 @@ Examples:
// end::alias_commands[] // end::alias_commands[]
// tag::weechat_commands[] // tag::weechat_commands[]
[[command_weechat_allbuf]]
* `+allbuf+`: execute a command on all buffers
----
/allbuf <command>
command: command to execute (or text to send to buffer if command does not start with '/')
Examples:
set unread marker on all buffers:
/allbuf /buffer set unread
----
[[command_weechat_away]] [[command_weechat_away]]
* `+away+`: set or remove away status * `+away+`: set or remove away status
@@ -1193,8 +1112,6 @@ Examples:
unmerge [<number>|-all] unmerge [<number>|-all]
hide [<number>|<name>|-all [<number>|<name>...]] hide [<number>|<name>|-all [<number>|<name>...]]
unhide [<number>|<name>|-all [<number>|<name>...]] unhide [<number>|<name>|-all [<number>|<name>...]]
switch [-previous]
zoom
renumber [<number1> [<number2> [<start>]]] renumber [<number1> [<number2> [<start>]]]
close [<n1>[-<n2>]|<name>...] close [<n1>[-<n2>]|<name>...]
notify [<level>] notify [<level>]
@@ -1203,7 +1120,6 @@ Examples:
delvar <name> delvar <name>
set <property> [<value>] set <property> [<value>]
get <property> get <property>
jump smart|last_displayed|prev_visited|next_visited
<number>|-|+|<name> <number>|-|+|<name>
list: list buffers (without argument, this list is displayed) list: list buffers (without argument, this list is displayed)
@@ -1217,8 +1133,6 @@ Examples:
unmerge: unmerge buffer from other buffers which have same number unmerge: unmerge buffer from other buffers which have same number
hide: hide the buffer hide: hide the buffer
unhide: unhide the buffer unhide: unhide the buffer
switch: switch to next merged buffer (or to previous buffer with "-previous")
zoom: zoom on merged buffer
renumber: renumber buffers (works only if option weechat.look.buffer_auto_renumber is off) renumber: renumber buffers (works only if option weechat.look.buffer_auto_renumber is off)
close: close buffer (number/range or name is optional) close: close buffer (number/range or name is optional)
notify: display or set notify level for current buffer: this level determines whether buffer will be added to hotlist or not: notify: display or set notify level for current buffer: this level determines whether buffer will be added to hotlist or not:
@@ -1232,11 +1146,6 @@ renumber: renumber buffers (works only if option weechat.look.buffer_auto_renumb
delvar: delete a local variable from the current buffer delvar: delete a local variable from the current buffer
set: set a property in the current buffer set: set a property in the current buffer
get: display a property of current buffer get: display a property of current buffer
jump: jump to another buffer:
smart: next buffer with activity
last_displayed: last buffer displayed (before last jump to a buffer)
prev_visited: previously visited buffer
next_visited: jump to next visited buffer
number: jump to buffer by number, possible prefix: number: jump to buffer by number, possible prefix:
'+': relative jump, add number to current '+': relative jump, add number to current
'-': relative jump, sub number to current '-': relative jump, sub number to current
@@ -1361,25 +1270,23 @@ Examples:
---- ----
/debug list /debug list
set <plugin> <level> set <plugin> <level>
dump|hooks [<plugin>] dump [<plugin>]
buffer|certs|color|dirs|infolists|libs|memory|tags|term|windows buffer|color|infolists|memory|tags|term|windows
mouse|cursor [verbose] mouse|cursor [verbose]
hdata [free] hdata [free]
time <command> time <command>
unicode <string>
list: list plugins with debug levels list: list plugins with debug levels
set: set debug level for plugin set: set debug level for plugin
plugin: name of plugin ("core" for WeeChat core) plugin: name of plugin ("core" for WeeChat core)
level: debug level for plugin (0 = disable debug) level: debug level for plugin (0 = disable debug)
dump: save memory dump in WeeChat log file (same dump is written when WeeChat crashes) 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 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 color: display infos about current color pairs
cursor: toggle debug for cursor mode cursor: toggle debug for cursor mode
dirs: display directories dirs: display directories
hdata: display infos about hdata (with free: remove all hdata in memory) hdata: display infos about hdata (with free: remove all hdata in memory)
hooks: display infos about hooks
infolists: display infos about infolists infolists: display infos about infolists
libs: display infos about external libraries used libs: display infos about external libraries used
memory: display infos about memory usage memory: display infos about memory usage
@@ -1388,13 +1295,6 @@ infolists: display infos about infolists
term: display infos about terminal term: display infos about terminal
windows: display windows tree windows: display windows tree
time: measure time to execute a command or to send text to the current buffer time: measure time to execute a command or to send text to the current buffer
unicode: display information about string and unicode chars (evaluated, see /help eval)
Examples:
/debug set irc 1
/debug mouse verbose
/debug time /filter toggle
/debug unicode ${chars:${\u26C0}-${\u26CF}}
---- ----
[[command_weechat_eval]] [[command_weechat_eval]]
@@ -1441,36 +1341,28 @@ To force a string comparison, you can add double quotes around each expression,
"50" > "100" ==> 1 "50" > "100" ==> 1
Some variables are replaced in expression, using the format ${variable}, variable can be, by order of priority: Some variables are replaced in expression, using the format ${variable}, variable can be, by order of priority:
- the string itself without evaluation (format: "raw:xxx") 1. the string itself without evaluation (format: "raw:xxx")
- a user-defined variable (format: "name") 2. an evaluated sub-string (format: "eval:xxx")
- an evaluated sub-string (format: "eval:xxx") 3. an evaluated condition (format: "eval_cond:xxx")
- an evaluated condition (format: "eval_cond:xxx") 4. a string with escaped chars (format: "esc:xxx" or "\xxx")
- a string with escaped chars (format: "esc:xxx" or "\xxx") 5. a string with chars to hide (format: "hide:char,string")
- a string with a range of chars (format: "chars:xxx" or "chars:c1-c2" where "xxx" is one of: "digit", "xdigit", "lower", "upper", "alpha", "alnum") 6. a string with max chars (format: "cut:max,suffix,string" or "cut:+max,suffix,string")
- a string converted to lower case (format: "lower:xxx")
- a string converted to upper case (format: "upper:xxx")
- a string with chars to hide (format: "hide:char,string")
- 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") or max chars displayed on screen (format: "cutscr:max,suffix,string" or "cutscr:+max,suffix,string")
- a reversed string (format: "rev:xxx" or "revscr:xxx") 7. a reversed string (format: "rev:xxx" or "revscr:xxx")
- a repeated string (format: "repeat:count,string") 8. a repeated string (format: "repeat:count,string")
- length of a string (format: "length:xxx" or "lengthscr:xxx") 9. length of a string (format: "length:xxx" or "lengthscr:xxx")
- split of a string (format: "split:number,separators,flags,xxx") 10. a color (format: "color:xxx", see "Plugin API reference", function "color")
- split of shell argmuents (format: "split_shell:number,xxx") 11. a modifier (format: "modifier:name,data,string")
- a color (format: "color:xxx", see "Plugin API reference", function "color") 12. an info (format: "info:name,arguments", arguments are optional)
- a modifier (format: "modifier:name,data,string") 13. a base 16/32/64 encoded/decoded string (format: "base_encode:base,xxx" or "base_decode:base,xxx")
- an info (format: "info:name,arguments", arguments are optional) 14. current date/time (format: "date" or "date:format")
- a base 16/32/64 encoded/decoded string (format: "base_encode:base,xxx" or "base_decode:base,xxx") 15. an environment variable (format: "env:XXX")
- current date/time (format: "date" or "date:format") 16. a ternary operator (format: "if:condition?value_if_true:value_if_false")
- an environment variable (format: "env:XXX") 17. result of an expression with parentheses and operators + - * / // % ** (format: "calc:xxx")
- a ternary operator (format: "if:condition?value_if_true:value_if_false") 18. a translated string (format: "translate:xxx")
- result of an expression with parentheses and operators + - * / // % ** (format: "calc:xxx") 19. an option (format: "file.section.option")
- a random integer number (format: "random:min,max") 20. a local variable in buffer
- a translated string (format: "translate:xxx") 21. a hdata name/variable (the value is automatically converted to string), by default "window" and "buffer" point to current window/buffer.
- define a user variable (format: "define:name,value")
- an option (format: "file.section.option")
- a local variable in buffer
- 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: 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.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: hdata[list].var1.var2...: start with a hdata using a list/pointer/pointer name, for example:
@@ -1482,43 +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". For name of hdata and variables, please look at "Plugin API reference", function "weechat_hdata_get".
Examples (simple strings): Examples (simple strings):
/eval -n ${raw:${info:version}} ==> ${info:version} /eval -n ${raw:${info:version}} ==> ${info:version}
/eval -n ${eval_cond:${window.win_width}>100} ==> 1 /eval -n ${eval_cond:${window.win_width}>100} ==> 1
/eval -n ${info:version} ==> 0.4.3 /eval -n ${info:version} ==> 0.4.3
/eval -n ${env:HOME} ==> /home/user /eval -n ${env:HOME} ==> /home/user
/eval -n ${weechat.look.scroll_amount} ==> 3 /eval -n ${weechat.look.scroll_amount} ==> 3
/eval -n ${sec.data.password} ==> secret /eval -n ${sec.data.password} ==> secret
/eval -n ${window} ==> 0x2549aa0 /eval -n ${window} ==> 0x2549aa0
/eval -n ${window.buffer} ==> 0x2549320 /eval -n ${window.buffer} ==> 0x2549320
/eval -n ${window.buffer.full_name} ==> core.weechat /eval -n ${window.buffer.full_name} ==> core.weechat
/eval -n ${window.buffer.number} ==> 1 /eval -n ${window.buffer.number} ==> 1
/eval -n ${\t} ==> <tab> /eval -n ${\t} ==> <tab>
/eval -n ${chars:digit} ==> 0123456789 /eval -n ${hide:-,${relay.network.password}} ==> --------
/eval -n ${chars:J-T} ==> JKLMNOPQRST /eval -n ${cut:3,+,test} ==> tes+
/eval -n ${lower:TEST} ==> test /eval -n ${cut:+3,+,test} ==> te+
/eval -n ${upper:test} ==> TEST /eval -n ${date:%H:%M:%S} ==> 07:46:40
/eval -n ${hide:-,${relay.network.password}} ==> -------- /eval -n ${if:${info:term_width}>80?big:small} ==> big
/eval -n ${cut:3,+,test} ==> tes+ /eval -n ${rev:Hello} ==> olleH
/eval -n ${cut:+3,+,test} ==> te+ /eval -n ${repeat:5,-} ==> -----
/eval -n ${date:%H:%M:%S} ==> 07:46:40 /eval -n ${length:test} ==> 4
/eval -n ${if:${info:term_width}>80?big:small} ==> big /eval -n ${calc:(5+2)*3} ==> 21
/eval -n ${rev:Hello} ==> olleH /eval -n ${base_encode:64,test} ==> dGVzdA==
/eval -n ${repeat:5,-} ==> ----- /eval -n ${base_decode:64,dGVzdA==} ==> test
/eval -n ${length:test} ==> 4 /eval -n ${translate:Plugin} ==> Extension
/eval -n ${split:1,,,abc,def,ghi} ==> abc
/eval -n ${split:-1,,,abc,def,ghi} ==> ghi
/eval -n ${split:count,,,abc,def,ghi} ==> 3
/eval -n ${split:random,,,abc,def,ghi} ==> def
/eval -n ${split_shell:1,"arg 1" arg2} ==> arg 1
/eval -n ${split_shell:-1,"arg 1" arg2} ==> arg2
/eval -n ${split_shell:count,"arg 1" arg2} ==> 2
/eval -n ${split_shell:random,"arg 1" arg2} ==> arg2
/eval -n ${calc:(5+2)*3} ==> 21
/eval -n ${random:0,10} ==> 3
/eval -n ${base_encode:64,test} ==> dGVzdA==
/eval -n ${base_decode:64,dGVzdA==} ==> test
/eval -n ${translate:Plugin} ==> Extension
/eval -n ${define:len,${calc:5+3}}${len}x${len} ==> 8x8
Examples (conditions): Examples (conditions):
/eval -n -c ${window.buffer.number} > 2 ==> 0 /eval -n -c ${window.buffer.number} > 2 ==> 0
@@ -1542,7 +1420,7 @@ Examples (conditions):
add|addreplace <name> <buffer>[,<buffer>...] <tags> <regex> add|addreplace <name> <buffer>[,<buffer>...] <tags> <regex>
rename <name> <new_name> rename <name> <new_name>
recreate <name> recreate <name>
del <name>|-all [<name>...] del <name>|-all
list: list all filters list: list all filters
enable: enable filters (filters are enabled by default) enable: enable filters (filters are enabled by default)
@@ -1626,22 +1504,6 @@ clear: clear history
value: number of history entries to show value: number of history entries to show
---- ----
[[command_weechat_hotlist]]
* `+hotlist+`: manage hotlist
----
/hotlist add [low|message|private|highlight]
clear [<level>]
remove
restore [-all]
add: add current buffer in hotlist (default level: "low", conditions defined in option weechat.look.hotlist_add_conditions are NOT checked)
clear: clear hotlist
level: "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)
remove: remove current buffer from hotlist
restore: restore latest hotlist removed in the current buffer (or all buffers with -all)
----
[[command_weechat_input]] [[command_weechat_input]]
* `+input+`: functions for command line * `+input+`: functions for command line
@@ -1664,7 +1526,6 @@ list of actions:
delete_previous_char: delete previous char delete_previous_char: delete previous char
delete_next_char: delete next char delete_next_char: delete next char
delete_previous_word: delete previous word delete_previous_word: delete previous word
delete_previous_word_whitespace: delete previous word (until whitespace)
delete_next_word: delete next word delete_next_word: delete next word
delete_beginning_of_line: delete from beginning of line until cursor delete_beginning_of_line: delete from beginning of line until cursor
delete_end_of_line: delete from cursor until end of line delete_end_of_line: delete from cursor until end of line
@@ -1683,10 +1544,20 @@ list of actions:
history_next: recall next command in current buffer history history_next: recall next command in current buffer history
history_global_previous: recall previous command in global history history_global_previous: recall previous command in global history
history_global_next: recall next command in global history history_global_next: recall next command in global history
jump_smart: jump to next buffer with activity
jump_last_buffer_displayed: jump to last buffer displayed (before last jump to a buffer)
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)
grab_key: grab a key (optional argument: delay for end of grab, default is 500 milliseconds) 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_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 grab_mouse: grab mouse event code
grab_mouse_area: grab mouse event code with area grab_mouse_area: grab mouse event code with area
set_unread: set unread marker for all buffers
set_unread_current_buffer: set unread marker for current buffer
switch_active_buffer: switch to next merged buffer
switch_active_buffer_previous: switch to previous merged buffer
zoom_merged_buffer: zoom on merged buffer
insert: insert text in command line (escaped chars are allowed, see /help print) insert: insert text in command line (escaped chars are allowed, see /help print)
send: send text to the buffer send: send text to the buffer
paste_start: start paste (bracketed paste mode) paste_start: start paste (bracketed paste mode)
@@ -1695,49 +1566,6 @@ list of actions:
This command is used by key bindings or plugins. 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]] [[command_weechat_key]]
* `+key+`: bind/unbind keys * `+key+`: bind/unbind keys
@@ -1816,8 +1644,6 @@ windows: store/apply only windows (buffer displayed by each window)
Without argument, this command displays stored layouts. 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". 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]] [[command_weechat_mouse]]
@@ -1867,26 +1693,21 @@ Examples:
* `+plugin+`: list/load/unload plugins * `+plugin+`: list/load/unload plugins
---- ----
/plugin list [-o|-ol|-i|-il|<name>] /plugin list|listfull [<name>]
listfull [<name>]
load <filename> [<arguments>] load <filename> [<arguments>]
autoload [<arguments>] autoload [<arguments>]
reload [<name>|* [<arguments>]] reload [<name>|* [<arguments>]]
unload [<name>] unload [<name>]
list: list loaded plugins 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) listfull: list loaded plugins (verbose)
load: load a plugin load: load a plugin
filename: plugin (file) to load
arguments: arguments given to plugin on load
autoload: autoload plugins in system or user directory autoload: autoload plugins in system or user directory
reload: reload a plugin (if no name given, unload all plugins, then autoload plugins) 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) 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. Without argument, this command lists loaded plugins.
---- ----
@@ -2114,32 +1935,6 @@ Examples:
/set env ABC "" /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]] [[command_weechat_unset]]
* `+unset+`: unset/reset config options * `+unset+`: unset/reset config options
@@ -2160,22 +1955,19 @@ Examples:
---- ----
[[command_weechat_upgrade]] [[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 -yes: required if option "weechat.look.confirm_upgrade" is enabled
path_to_binary: path to WeeChat binary (default is current binary) path_to_binary: path to WeeChat binary (default is current binary)
-dummy: do nothing (option used to prevent accidental completion with "-quit") -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) -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. 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. Note: SSL connections are lost during upgrade, because 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.)
Upgrade process has 4 steps: Upgrade process has 4 steps:
1. save session into files for core and plugins (buffers, history, ..) 1. save session into files for core and plugins (buffers, history, ..)
@@ -2183,18 +1975,14 @@ Upgrade process has 4 steps:
3. save WeeChat configuration (weechat.conf) 3. save WeeChat configuration (weechat.conf)
4. execute new WeeChat binary and reload session. 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, ...) 1. close *ALL* connections (irc, xfer, relay, ...)
2. save session into files (*.upgrade) 2. save session into files (*.upgrade)
3. unload all plugins 3. unload all plugins
4. save WeeChat configuration 4. save WeeChat configuration
5. quit WeeChat 5. quit WeeChat
Then later you can restore session with command: weechat --upgrade
With option "-save", the process is: IMPORTANT: you must restore the session with exactly same configuration (files *.conf).
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).
It is possible to restore WeeChat session on another machine if you copy the content of WeeChat home directories (see /debug dirs). It is possible to restore WeeChat session on another machine if you copy the content of WeeChat home directories (see /debug dirs).
---- ----
@@ -2379,7 +2167,6 @@ The following variables can be used in these options:
- ${format_hotlist}: the formatted hotlist (evaluation of option buflist.format.hotlist) - ${format_hotlist}: the formatted hotlist (evaluation of option buflist.format.hotlist)
- ${hotlist}: the raw hotlist - ${hotlist}: the raw hotlist
- ${hotlist_priority}: "none", "low", "message", "private" or "highlight" - ${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_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) - ${format_tls_version}: indicator of TLS version for a server buffer, empty for channels (evaluation of option buflist.format.tls_version)
---- ----
@@ -2946,7 +2733,7 @@ protocol.name: protocol and name to relay:
- protocol "weechat" (name is not used) - protocol "weechat" (name is not used)
The "irc" protocol allows any IRC client (including WeeChat itself) to connect on the port. 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. Without argument, this command opens buffer with list of relay clients.
@@ -3101,7 +2888,7 @@ Examples:
---- ----
/spell enable|disable|toggle /spell enable|disable|toggle
listdict listdict
setdict -|<dict>[,<dict>...] setdict <dict>[,<dict>...]
deldict deldict
addword [<dict>] <word> addword [<dict>] <word>
@@ -3109,7 +2896,7 @@ Examples:
disable: disable spell checker disable: disable spell checker
toggle: toggle spell checker toggle: toggle spell checker
listdict: show installed dictionaries 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 deldict: delete dictionary used on current buffer
addword: add a word in personal dictionary addword: add a word in personal dictionary
@@ -3238,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" /trigger add resize_big signal signal_sigwinch "${info:term_width} >= 100" "" "/bar show nicklist"
silently save config each hour: silently save config each hour:
/trigger add cfgsave timer 3600000;0;0 "" "" "/mute /save" /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": open trigger monitor and show only modifiers and triggers whose name starts with "resize":
/trigger monitor @modifier,resize* /trigger monitor @modifier,resize*
---- ----
File diff suppressed because it is too large Load Diff
+2 -5
View File
@@ -1,6 +1,6 @@
// tag::plugin_options[] // tag::plugin_options[]
For complete doc on plugin options, please look at plugins documentation in 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: 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:: $HOME/.config/weechat/trigger.conf::
configuration file for _trigger_ plugin configuration file for _trigger_ plugin
$HOME/.config/weechat/typing.conf::
configuration file for _typing_ plugin
$HOME/.config/weechat/xfer.conf:: $HOME/.config/weechat/xfer.conf::
configuration file for _xfer_ plugin 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 WeeChat is written by Sébastien Helleu and contributors (complete list is in
the AUTHORS.adoc file). the AUTHORS.adoc file).
Copyright (C) 2003-2023 {author} Copyright (C) 2003-2021 {author}
WeeChat is free software; you can redistribute it and/or modify WeeChat is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by 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 == 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 == 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 -252
View File
@@ -10,8 +10,8 @@
This manual documents WeeChat chat client, it is part of WeeChat. This manual documents WeeChat chat client, it is part of WeeChat.
Latest version of this document can be found on Latest version of this document can be found on this page:
https://weechat.org/doc/[this page ^↗^,window=_blank]. https://weechat.org/doc
[[introduction]] [[introduction]]
@@ -31,8 +31,8 @@ This manual documents WeeChat internals:
[[repositories]] [[repositories]]
== Repositories == Repositories
WeeChat repositories are on GitHub organization WeeChat repositories are on GitHub organization "weechat":
https://github.com/weechat[weechat ^↗^,window=_blank]. https://github.com/weechat
List of repositories: List of repositories:
@@ -43,7 +43,7 @@ scripts::
the _official_ scripts submitted on weechat.org the _official_ scripts submitted on weechat.org
weechat.org:: weechat.org::
source of https://weechat.org/[WeeChat website ^↗^,window=_blank] source of WeeChat website: https://weechat.org/
weercd:: weercd::
IRC testing server IRC testing server
@@ -89,7 +89,6 @@ The main WeeChat directories are:
|       spell/ | Spell plugin. |       spell/ | Spell plugin.
|       tcl/ | Tcl scripting API. |       tcl/ | Tcl scripting API.
|       trigger/ | Trigger plugin. |       trigger/ | Trigger plugin.
|       typing/ | Typing plugin.
|       xfer/ | Xfer plugin (IRC DCC file/chat). |       xfer/ | Xfer plugin (IRC DCC file/chat).
| tests/ | Tests. | tests/ | Tests.
|    scripts/ | Scripting API tests. |    scripts/ | Scripting API tests.
@@ -284,7 +283,6 @@ WeeChat "core" is located in following directories:
|       irc-ignore.c | IRC Ignore. |       irc-ignore.c | IRC Ignore.
|       irc-info.c | IRC info/infolists/hdata. |       irc-info.c | IRC info/infolists/hdata.
|       irc-input.c | Input of commands/text. |       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-message.c | Functions to manipulate IRC messages.
|       irc-mode.c | Functions about channel/nick modes. |       irc-mode.c | Functions about channel/nick modes.
|       irc-modelist.c | IRC channel mode lists (+b, +e, +I, ...). |       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-redirect.c | Redirection of IRC command output.
|       irc-sasl.c | SASL authentication with IRC server. |       irc-sasl.c | SASL authentication with IRC server.
|       irc-server.c | I/O communication 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. |       irc-upgrade.c | Save/restore of IRC data when upgrading WeeChat.
|    javascript/ | JavaScript plugin. |    javascript/ | JavaScript plugin.
|       weechat-js.cpp | Main JavaScript functions (load/unload scripts, execute JavaScript code). |       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-command.c | Trigger commands.
|       trigger-completion.c | Trigger completions. |       trigger-completion.c | Trigger completions.
|       trigger-config.c | Trigger config options (file trigger.conf). |       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/ | Xfer plugin (IRC DCC file/chat).
|       xfer.c | Main xfer functions. |       xfer.c | Main xfer functions.
|       xfer-buffer.c | Xfer buffer. |       xfer-buffer.c | Xfer buffer.
@@ -391,74 +382,55 @@ WeeChat "core" is located in following directories:
[width="100%",cols="2m,3",options="header"] [width="100%",cols="2m,3",options="header"]
|=== |===
| Path/file | Description | Path/file | Description
| tests/ | Root of tests. | tests/ | Root of tests.
|    tests.cpp | Program used to run all tests. |    tests.cpp | Program used to run all tests.
|    scripts/ | Root of scripting API tests. |    scripts/ | Root of scripting API tests.
|       test-scripts.cpp | Program used to run the 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. |       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. |          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. |          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. |          unparse.py | Convert Python code to other languages, used by script testapigen.py.
|    unit/ | Root of unit tests. |    unit/ | Root of unit tests.
|       test-plugins.cpp | Tests: plugins. |       test-plugins.cpp | Tests: plugins.
|       core/ | Root of unit tests for core. |       core/ | Root of unit tests for core.
|          test-core-arraylist.cpp | Tests: arraylists. |          test-core-arraylist.cpp | Tests: arraylists.
|          test-core-calc.cpp | Tests: calculation of expressions. |          test-core-calc.cpp | Tests: calculation of expressions.
|          test-core-command.cpp | Tests: commands. |          test-core-crypto.cpp | Tests: cryptographic functions.
|          test-core-config-file.cpp | Tests: configuration files. |          test-core-dir.cpp | Tests: directory/file functions.
|          test-core-crypto.cpp | Tests: cryptographic functions. |          test-core-eval.cpp | Tests: evaluation of expressions.
|          test-core-dir.cpp | Tests: directory/file functions. |          test-core-hashtble.cpp | Tests: hashtables.
|          test-core-eval.cpp | Tests: evaluation of expressions. |          test-core-hdata.cpp | Tests: hdata.
|          test-core-hashtble.cpp | Tests: hashtables. |          test-core-hook.cpp | Tests: hooks.
|          test-core-hdata.cpp | Tests: hdata. |          test-core-infolist.cpp | Tests: infolists.
|          test-core-hook.cpp | Tests: hooks. |          test-core-list.cpp | Tests: lists.
|          test-core-infolist.cpp | Tests: infolists. |          test-core-network.cpp | Tests: network functions.
|          test-core-list.cpp | Tests: lists. |          test-core-secure.cpp | Tests: secured data.
|          test-core-network.cpp | Tests: network functions. |          test-core-signal.cpp | Tests: signals.
|          test-core-secure.cpp | Tests: secured data. |          test-core-string.cpp | Tests: strings.
|          test-core-signal.cpp | Tests: signals. |          test-core-url.cpp | Tests: URLs.
|          test-core-string.cpp | Tests: strings. |          test-core-utf8.cpp | Tests: UTF-8.
|          test-core-url.cpp | Tests: URLs. |          test-core-util.cpp | Tests: utility functions.
|          test-core-utf8.cpp | Tests: UTF-8. |       gui/ | Root of unit tests for interfaces.
|          test-core-util.cpp | Tests: utility functions. |          test-gui-color.cpp | Tests: colors.
|       gui/ | Root of unit tests for interfaces. |          test-gui-line.cpp | Tests: lines.
|          test-gui-bar-window.cpp | Tests: bar window functions. |          test-gui-nick.cpp | Tests: nicks.
|          test-gui-buffer.cpp | Tests: buffer functions. |       plugins/ | Root of unit tests for plugins.
|          test-gui-chat.cpp | Tests: chat functions. |          irc/ | Root of unit tests for IRC plugin.
|          test-gui-color.cpp | Tests: colors. |             test-irc-channel.cpp | Tests: IRC channels.
|          test-gui-filter.cpp | Tests: filters. |             test-irc-color.cpp | Tests: IRC colors.
|          test-gui-input.cpp | Tests: input functions. |             test-irc-config.cpp | Tests: IRC configuration.
|          test-gui-line.cpp | Tests: lines. |             test-irc-ignore.cpp | Tests: IRC ignores.
|          test-gui-nick.cpp | Tests: nicks. |             test-irc-message.cpp | Tests: IRC messages.
|       plugins/ | Root of unit tests for plugins. |             test-irc-mode.cpp | Tests: IRC modes.
|          irc/ | Root of unit tests for IRC plugin. |             test-irc-nick.cpp | Tests: IRC nicks.
|             test-irc-buffer.cpp | Tests: IRC buffers. |             test-irc-protocol.cpp | Tests: IRC protocol.
|             test-irc-channel.cpp | Tests: IRC channels. |             test-irc-server.cpp | Tests: IRC server.
|             test-irc-color.cpp | Tests: IRC colors. |          trigger/ | Root of unit tests for trigger plugin.
|             test-irc-config.cpp | Tests: IRC configuration. |             test-trigger.cpp | Tests: triggers.
|             test-irc-ignore.cpp | Tests: IRC ignores. |          relay/ | Root of unit tests for Relay plugin.
|             test-irc-join.cpp | Tests: IRC join functions. |             test-relay-auth.cpp | Tests: clients authentication.
|             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.
|=== |===
[[documentation_translations]] [[documentation_translations]]
@@ -474,13 +446,14 @@ Documentation files:
|    docgen.py | Python script to build auto-generated files in _includes/_ directory (see below). |    docgen.py | Python script to build auto-generated files in _includes/_ directory (see below).
|    XX/ | Documentation for language XX (languages: en, fr, de, it, ...). |    XX/ | Documentation for language XX (languages: en, fr, de, it, ...).
|       weechat.1.XX.adoc | Man page (`man weechat`). |       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_dev.XX.adoc | link:weechat_dev.en.html[Developer's guide] (this document).
|       weechat_faq.XX.adoc | link:weechat_faq.en.html[FAQ ^↗^,window=_blank]. |       weechat_faq.XX.adoc | link:weechat_faq.en.html[FAQ].
|       weechat_plugin_api.XX.adoc | link:weechat_plugin_api.en.html[Plugin API reference ^↗^,window=_blank]. |       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 ^↗^,window=_blank]. |       weechat_quickstart.XX.adoc | link:weechat_quickstart.en.html[Quickstart guide].
|       weechat_relay_protocol.XX.adoc | link:weechat_relay_protocol.en.html[Relay protocol ^↗^,window=_blank] (for remote interfaces). |       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 ^↗^,window=_blank]. |       weechat_scripting.XX.adoc | link:weechat_scripting.en.html[Scripting guide].
|       weechat_user.XX.adoc | link:weechat_user.en.html[User's guide ^↗^,window=_blank]. |       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. |       includes/ | Files included in documentation.
|          autogen_api_completions.XX.adoc | Auto-generated file for Plugin API reference: completions (do *NEVER* update manually!). |          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!). |          autogen_api_hdata.XX.adoc | Auto-generated file for Plugin API reference: hdata (do *NEVER* update manually!).
@@ -525,12 +498,12 @@ directory:
Example in C: Example in C:
[source,c] [source,C]
---- ----
/* /*
* weechat.c - core functions for WeeChat * weechat.c - core functions for WeeChat
* *
* Copyright (C) 2023 Your Name <your@email.com> * Copyright (C) 2021 Your Name <your@email.com>
* *
* This file is part of WeeChat, the extensible chat client. * This file is part of WeeChat, the extensible chat client.
* *
@@ -563,7 +536,7 @@ Some basic rules you *must* follow when you write C code:
Example: Example:
[source,c] [source,C]
---- ----
/* /*
* Checks if a string with boolean value is valid. * Checks if a string with boolean value is valid.
@@ -594,7 +567,7 @@ foo ()
Exception: in `for` loops, where variables like "i" or "n" are OK. Exception: in `for` loops, where variables like "i" or "n" are OK.
* Initialize local variables after declaration, in body of function, example: * Initialize local variables after declaration, in body of function, example:
[source,c] [source,C]
---- ----
void void
foo () foo ()
@@ -612,7 +585,7 @@ foo ()
* Place curly brackets `+{ }+` alone on lines, and indent them with number of * Place curly brackets `+{ }+` alone on lines, and indent them with number of
spaces used for line above opening curly bracket (the `if` in example): spaces used for line above opening curly bracket (the `if` in example):
[source,c] [source,C]
---- ----
if (nicks_count == 1) if (nicks_count == 1)
{ {
@@ -623,7 +596,7 @@ if (nicks_count == 1)
* Use empty lines to separate many different blocks inside functions, and if * Use empty lines to separate many different blocks inside functions, and if
possible add a comment for each one, like this: possible add a comment for each one, like this:
[source,c] [source,C]
---- ----
/* /*
* Sends a message from out queue. * Sends a message from out queue.
@@ -666,7 +639,7 @@ irc_server_outqueue_send (struct t_irc_server *server)
* Indent the `if` conditions, and use parentheses around conditions with an * Indent the `if` conditions, and use parentheses around conditions with an
operator (not needed for single boolean), like this: operator (not needed for single boolean), like this:
[source,c] [source,C]
---- ----
if (something) if (something)
{ {
@@ -690,7 +663,7 @@ else
* Indent the `switch` statements like this: * Indent the `switch` statements like this:
[source,c] [source,C]
---- ----
switch (string[0]) switch (string[0])
{ {
@@ -708,7 +681,7 @@ switch (string[0])
* Use `typedef` for function prototypes but not for structures: * Use `typedef` for function prototypes but not for structures:
[source,c] [source,C]
---- ----
typedef int (t_hook_callback_fd)(void *data, int fd); typedef int (t_hook_callback_fd)(void *data, int fd);
@@ -745,7 +718,7 @@ new_hook_fd = malloc (sizeof (*new_hook_fd));
[[coding_python_style]] [[coding_python_style]]
=== 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]]
== Core internals == Core internals
@@ -790,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_): Example: an IRC nick (from _src/plugins/irc/irc-nick.h_):
[source,c] [source,C]
---- ----
struct t_irc_nick struct t_irc_nick
{ {
@@ -820,7 +793,7 @@ _X_ is name of variable, using singular form).
Example: windows (from _src/gui/gui-window.c_): 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 *gui_windows = NULL; /* first window */
struct t_gui_window *last_gui_window = NULL; /* last window */ struct t_gui_window *last_gui_window = NULL; /* last window */
@@ -840,7 +813,7 @@ Naming convention for functions is the same as
Example: creation of a new window (from _src/gui/gui-window.c_): Example: creation of a new window (from _src/gui/gui-window.c_):
[source,c] [source,C]
---- ----
/* /*
* Creates a new window. * Creates a new window.
@@ -876,7 +849,7 @@ and next node.
Example: list of buffers (from _src/gui/gui-buffer.h_): Example: list of buffers (from _src/gui/gui-buffer.h_):
[source,c] [source,C]
---- ----
struct t_gui_buffer struct t_gui_buffer
{ {
@@ -891,7 +864,7 @@ struct t_gui_buffer
Then the two list pointers, to the head and tail of list: 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 *gui_buffers = NULL; /* first buffer */
struct t_gui_buffer *last_gui_buffer = NULL; /* last buffer */ struct t_gui_buffer *last_gui_buffer = NULL; /* last buffer */
@@ -906,10 +879,18 @@ underline, ...) and colors on screen.
All attributes/colors are prefixed with a char in string, which can be: All attributes/colors are prefixed with a char in string, which can be:
* _0x19_: color code (followed by color code(s)) * _0x19_: color code (followed by color code(s))
* _0x1A_: set attribute (followed by raw attribute on one char) * _0x1A_: set attribute (followed by attribute on one char)
* _0x1B_: remove attribute (followed by raw attribute on one char) * _0x1B_: remove attribute (followed by attribute on one char)
* _0x1C_: reset (nothing after) * _0x1C_: reset (nothing after)
Allowed attributes are (one or more chars):
* `+*+`: bold
* `+!+`: reverse
* `+/+`: italic
* `+_+`: underline
* `+|+`: keep attributes
Possible colors are: Possible colors are:
* standard color: optional attributes + number on 2 digits * standard color: optional attributes + number on 2 digits
@@ -918,59 +899,45 @@ Possible colors are:
In following table, these conventions are used: In following table, these conventions are used:
* `STD`: standard color (2 digits) * `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) * `EXT`: extended color (`+@+` + 5 digits)
* `(ATTR)EXT`: extended color with optional attributes (`+@+` + attributes + 5 digits) * `(A)EXT`: extended color with optional attributes (`+@+` + attributes + 5 digits)
* `(ATTR)`: one or more attribute chars: * `ATTR`: one attribute char (`+*+`, `+!+`, `+/+`, `+_+` or `+|+`)
** `+%+`: blink
** `+.+`: "dim" (half bright)
** `+*+`: bold
** `+!+`: reverse
** `+/+`: italic
** `+_+`: underline
** `+|+`: keep attributes
* `(a)`: one raw attribute char:
** _0x01_: bold
** _0x02_: reverse
** _0x03_: italic
** _0x04_: underline
** _0x05_: blink
** _0x06_: "dim" (half bright)
All combinations are summarized in this table: 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 | Code | Example | Areas | Description
| [hex]#19# + `STD` | [hex]#19# `+01+` | chat + bars | Set attributes and color using option, see table below. | [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# + 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" + (A)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# + "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" + 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# + "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# + "*" + (A)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# + "*" + (A)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# + "*" + (A)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# + "*" + (A)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# + "*" + (A)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# + "*" + (A)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# + "*" + (A)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# + "*" + (A)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# + "*" + (A)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# + "*" + (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" + "F" | [hex]#19# `+bF+` | bars | Set bar foreground color.
| [hex]#19# + `b` + `D` | [hex]#19# `+bD+` | bars | Set bar delimiter 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" + "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 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 | 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" + "#" | [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" + "i" | [hex]#19# `+bi+` | bars | Start item.
| [hex]#19# + `b` + `l` (lower L) | [hex]#19# `+bl+` | bars | Start line 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# + "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]#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]#1A# + ATTR | [hex]#1A# `+*+` | chat + bars | Set attribute.
| [hex]#1B# + `(a)` | [hex]#1B# [hex]#01# | chat + bars | Remove attribute. | [hex]#1B# + ATTR | [hex]#1B# `+*+` | chat + bars | Remove attribute.
| [hex]#1C# | [hex]#1C# | chat + bars | Reset attributes and color. | [hex]#1C# | [hex]#1C# | chat + bars | Reset attributes and color.
|=== |===
[NOTE] [NOTE]
@@ -1087,7 +1054,7 @@ Then some macros are defined to call these functions.
For example, function _hook_timer_ is defined in structure _t_weechat_plugin_ For example, function _hook_timer_ is defined in structure _t_weechat_plugin_
like this: like this:
[source,c] [source,C]
---- ----
struct t_hook *(*hook_timer) (struct t_weechat_plugin *plugin, struct t_hook *(*hook_timer) (struct t_weechat_plugin *plugin,
long interval, long interval,
@@ -1100,7 +1067,7 @@ struct t_hook *(*hook_timer) (struct t_weechat_plugin *plugin,
And the macro used to call this function is: And the macro used to call this function is:
[source,c] [source,C]
---- ----
#define weechat_hook_timer(__interval, __align_second, __max_calls, \ #define weechat_hook_timer(__interval, __align_second, __max_calls, \
__callback, __data) \ __callback, __data) \
@@ -1111,7 +1078,7 @@ And the macro used to call this function is:
So in a plugin, the call to function will be for example: 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, server->hook_timer_sasl = weechat_hook_timer (timeout * 1000,
0, 1, 0, 1,
@@ -1125,7 +1092,7 @@ server->hook_timer_sasl = weechat_hook_timer (timeout * 1000,
[[git_repository]] [[git_repository]]
=== 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 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 is a GitHub pull request. A patch can also be sent by e-mail
@@ -1139,95 +1106,11 @@ component: fix a problem (closes #123)
Where _component_ is one of following: Where _component_ is one of following:
[width="100%",cols="1m,4m,5",options="header"] * WeeChat core: _core_ (files in root directory, _po/_ and _src/_,
|=== except _src/plugins/_)
| Component | Files | Description * documentation files: _doc_ (files in directory _doc/_)
* name of a plugin: _irc_, _python_, _relay_, ... (files in directory
| core _src/plugins/_)
| AUTHORS.adoc +
ChangeLog.adoc +
Contributing.adoc +
.github/FUNDING.yml +
.github/ISSUE_TEMPLATE/* +
icons/* +
po/* +
README.adoc +
ReleaseNotes.adoc +
src/core/* +
src/gui/* +
version.sh +
weechat.desktop
| WeeChat core
| build
| autogen.sh +
CMakeLists.txt +
cmake/* +
configure.ac +
Makefile.am +
tools/* +
weechat.cygport.in +
weechat.spec
| Build
| ci
| .github/workflows/*
| Continuous integration
| debian
| debian-devel/* +
debian-stable/*
| Debian packaging
| tests
| tests/*
| Tests
| doc
| doc/*
| General doc updates, for example build
| doc/man
| doc/xx/weechat.1.xx.adoc +
doc/xx/weechat-headless.1.xx.adoc
| Man pages
| doc/faq
| doc/xx/weechat_faq.xx.adoc
| Frequently asked questions (FAQ)
| doc/quickstart
| doc/xx/weechat_quickstart.xx.adoc
| Quickstart guide
| doc/user
| doc/xx/weechat_user.xx.adoc
| User's guide
| doc/scripting
| doc/xx/weechat_scripting.xx.adoc
| Scripting guide
| doc/api
| doc/xx/weechat_plugin_api.xx.adoc
| Plugin API reference
| doc/relay
| doc/xx/weechat_relay_protocol.xx.adoc
| Relay protocol
| doc/dev
| doc/xx/weechat_dev.en.adoc
| Developer's guide
| irc +
python +
relay +
| src/plugins/<name>/*
| Plugin
|===
Some rules to follow: Some rules to follow:
@@ -1241,7 +1124,6 @@ Examples of commit messages:
---- ----
core: add callback "nickcmp" for nick comparison in buffers core: add callback "nickcmp" for nick comparison in buffers
core: update Japanese translations core: update Japanese translations
doc/user: add chapter on typing extension
irc: add command /unquiet (closes #36) irc: add command /unquiet (closes #36)
python: fix crash when unloading a script without pointer to interpreter python: fix crash when unloading a script without pointer to interpreter
ruby: add detection of ruby version 1.9.3 in CMake ruby: add detection of ruby version 1.9.3 in CMake
@@ -1275,8 +1157,8 @@ $ make translations && make update-po
Then you can edit .po files (if you can translate in a language). Then you can edit .po files (if you can translate in a language).
When done, you *have* to check your file with When done, you *have* to check your file with script _msgcheck.py_
https://github.com/flashcode/msgcheck[msgcheck ^↗^,window=_blank]: (https://github.com/flashcode/msgcheck):
---- ----
$ msgcheck.py xx.po $ msgcheck.py xx.po
@@ -1309,7 +1191,7 @@ work on it.
The translations missing in files are indicated by this string: 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, You must translate whole file except links and special keywords for notes,
@@ -1326,7 +1208,7 @@ warnings, ... These words must be kept unchanged:
[CAUTION] [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>> <<link_name,this text must be translated>>
+132 -91
View File
@@ -9,6 +9,9 @@
:docinfo1: :docinfo1:
This document is written for WeeChat versions ≥ 0.3.0 but should preferably be
used with latest stable version of WeeChat.
toc::[] toc::[]
@@ -29,8 +32,7 @@ apply to WeeChat!).
Because WeeChat is very light and brings innovating features. Because WeeChat is very light and brings innovating features.
More info on the WeeChat More info on the WeeChat features page: https://weechat.org/about/features
https://weechat.org/about/features/[features page ^↗^,window=_blank].
[[compilation_install]] [[compilation_install]]
== Compilation / install == Compilation / install
@@ -38,17 +40,16 @@ https://weechat.org/about/features/[features page ^↗^,window=_blank].
[[gui]] [[gui]]
=== I've heard about many GUIs for WeeChat. How can I compile/use them? === I've heard about many GUIs for WeeChat. How can I compile/use them?
Some remote GUIs are available, see the Some remote GUIs are available, see the remote interfaces page:
https://weechat.org/about/interfaces/[remote interfaces page ^↗^,window=_blank]. https://weechat.org/about/interfaces
[[compile_git]] [[compile_git]]
=== I can't compile WeeChat after cloning git repository, why? === I can't compile WeeChat after cloning git repository, why?
The recommended way to compile WeeChat is with 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 If you're compiling with link:weechat_user.en.html#compile_with_autotools[autotools]
link:weechat_user.en.html#compile_with_autotools[autotools ^↗^,window=_blank]
(and not CMake), check that you have latest version of autoconf and automake. (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. The other way is to install the "devel package", which needs less dependencies.
@@ -59,8 +60,7 @@ than git cloning for installing updates.
[[compile_macos]] [[compile_macos]]
=== How can I install WeeChat on macOS? === How can I install WeeChat on macOS?
It is recommended to use https://brew.sh/[Homebrew ^↗^,window=_blank], It is recommended to use https://brew.sh/[Homebrew], you can get help with:
you can get help with:
---- ----
brew info weechat brew info weechat
@@ -76,12 +76,12 @@ brew install weechat
=== I've launched WeeChat, but I'm lost, what can I do? === 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`. 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#key_bindings[Keys] and
link:weechat_user.en.html#commands_and_options[commands ^↗^,window=_blank] link:weechat_user.en.html#commands_and_options[commands] are listed
are listed in documentation. in documentation.
It's recommended for new users to read the 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]]
== Display == Display
@@ -109,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 ** If you are using screen, check that it is run with UTF-8 mode
("`defutf8 on`" in ~/.screenrc or `screen -U` to run screen). ("`defutf8 on`" in ~/.screenrc or `screen -U` to run screen).
* Check that option * 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). is off (this option may cause display bugs).
[NOTE] [NOTE]
@@ -124,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). in glibc 2.22 (maybe not yet available in your distribution).
There is a workaround to use the fixed _wcwidth_ function: 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] See this bug report for more information:
for more information. https://github.com/weechat/weechat/issues/79
[[bars_background]] [[bars_background]]
=== Bars like title and status are not filled, background color stops after text, why? === Bars like title and status are not filled, background color stops after text, why?
@@ -184,10 +184,17 @@ windows.
[[buffers_list]] [[buffers_list]]
=== How to display the buffers list on the left side? === How to display the buffers list on the left side?
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. is loaded and enabled by default.
To limit size of bar: With an older version, you can install script _buffers.pl_:
----
/script install buffers.pl
----
To limit size of bar (replace "buflist" by "buffers" if you're using the script
_buffers.pl_):
---- ----
/set weechat.bar.buflist.size_max 15 /set weechat.bar.buflist.size_max 15
@@ -205,6 +212,21 @@ bar with your mouse wheel.
Default keys to scroll _buflist_ bar are kbd:[F1] (or kbd:[Ctrl+F1]), kbd:[F2] Default keys to scroll _buflist_ bar are kbd:[F1] (or kbd:[Ctrl+F1]), kbd:[F2]
(or kbd:[Ctrl+F2]), kbd:[Alt+F1] and kbd:[Alt+F2]. (or kbd:[Ctrl+F2]), kbd:[Alt+F1] and kbd:[Alt+F2].
For script _buffers.pl_, you can define keys, similar to the existing keys to
scroll nicklist. +
For example to use kbd:[F1], kbd:[F2], kbd:[Alt+F1] and kbd:[Alt+F2]:
----
/key bind meta-OP /bar scroll buffers * -100%
/key bind meta-OQ /bar scroll buffers * +100%
/key bind meta-meta-OP /bar scroll buffers * b
/key bind meta-meta-OQ /bar scroll buffers * e
----
[NOTE]
Keys "meta-OP" and "meta-OQ" may be different in your terminal. To find key
code press kbd:[Alt+k] then key.
[[customize_buflist]] [[customize_buflist]]
=== How can I customize the list of buffers list, like the color of the active buffer? === How can I customize the list of buffers list, like the color of the active buffer?
@@ -230,8 +252,8 @@ like `237` for dark gray.
The buflist plugin provides lot of options that you can customize, please read The buflist plugin provides lot of options that you can customize, please read
the help on each option. the help on each option.
There's also a https://github.com/weechat/weechat/wiki/buflist[wiki page ^↗^,window=_blank] There's also a wiki page with examples of advanced buflist configuration:
with examples of advanced buflist configuration. https://github.com/weechat/weechat/wiki/buflist
[[customize_prefix]] [[customize_prefix]]
=== How can I reduce length of nicks or remove nick alignment in chat area? === How can I reduce length of nicks or remove nick alignment in chat area?
@@ -274,8 +296,8 @@ These colors can be changed with the options __weechat.color.status_data_*__
(buffers) and __weechat.color.status_count_*__ (counters). + (buffers) and __weechat.color.status_count_*__ (counters). +
Other hotlist options can be changed with the options __weechat.look.hotlist_*__. 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] See link:weechat_user.en.html#screen_layout[User's guide / Screen layout] for
for more info about the hotlist. more info about the hotlist.
[[input_bar_size]] [[input_bar_size]]
=== How to use command line with more than one line? === How to use command line with more than one line?
@@ -320,8 +342,9 @@ any bar:
[[terminal_copy_paste]] [[terminal_copy_paste]]
=== How can I copy/paste text without pasting nicklist? === How can I copy/paste text without pasting nicklist?
You can use the bare display (default key: kbd:[Alt+l] (`L`)), which shows With WeeChat ≥ 1.0, you can use the bare display (default key: kbd:[Alt+l] (`L`)),
just the contents of the currently selected window, without any formatting. which will show just the contents of the currently selected window,
without any formatting.
You can use a terminal with rectangular selection (like rxvt-unicode, You can use a terminal with rectangular selection (like rxvt-unicode,
konsole, gnome-terminal, etc.). Key is usually kbd:[Ctrl] + kbd:[Alt] + mouse konsole, gnome-terminal, etc.). Key is usually kbd:[Ctrl] + kbd:[Alt] + mouse
@@ -336,7 +359,7 @@ Another solution is to move nicklist to top or bottom, for example:
[[urls]] [[urls]]
=== How can I click on long URLs (more than one line)? === How can I click on long URLs (more than one line)?
You can use the bare display (default key: kbd:[Alt+l] (`L`)). With WeeChat ≥ 1.0, you can use the bare display (default key: kbd:[Alt+l] (`L`)).
To make opening URLs easier, you can: To make opening URLs easier, you can:
@@ -346,7 +369,7 @@ To make opening URLs easier, you can:
/set weechat.bar.nicklist.position top /set weechat.bar.nicklist.position top
---- ----
* disable alignment for multiline words: * disable alignment for multiline words (WeeChat ≥ 1.7):
---- ----
/set weechat.look.align_multiline_words off /set weechat.look.align_multiline_words off
@@ -358,8 +381,9 @@ To make opening URLs easier, you can:
/set weechat.look.align_end_of_lines time /set weechat.look.align_end_of_lines time
---- ----
You can enable option "eat_newline_glitch", so that new line char is not added With WeeChat ≥ 0.3.6, you can enable option "eat_newline_glitch", so that
at the end of each line displayed (it will not break URL selection): new line char is not added at the end of each line displayed (it will not break
URL selection):
---- ----
/set weechat.look.eat_newline_glitch on /set weechat.look.eat_newline_glitch on
@@ -406,6 +430,8 @@ In WeeChat, the new value is immediately used:
[[use_256_colors]] [[use_256_colors]]
=== How can I use 256 colors in WeeChat? === How can I use 256 colors in WeeChat?
256 colors are supported with WeeChat ≥ 0.3.4.
First check that your _TERM_ environment variable is correct, recommended values First check that your _TERM_ environment variable is correct, recommended values
are: are:
@@ -424,18 +450,20 @@ term screen-256color
---- ----
If your _TERM_ variable has a wrong value and that WeeChat is already running, If your _TERM_ variable has a wrong value and that WeeChat is already running,
you can change it with these two commands: you can change it with these two commands (with WeeChat ≥ 1.0):
---- ----
/set env TERM screen-256color /set env TERM screen-256color
/upgrade /upgrade
---- ----
You can use any color number in options (optional: you can add color aliases For version 0.3.4, you must use command `/color` to add new colors.
with command `/color`).
Please read the link:weechat_user.en.html#colors[User's guide / Colors ^↗^,window=_blank] For versions ≥ 0.3.5, you can use any color number in options (optional: you
for more information about colors management. can add color aliases with command `/color`).
Please read the link:weechat_user.en.html#colors[User's guide / Colors] for more
information about colors management.
[[search_text]] [[search_text]]
=== How can I search text in buffer (like /lastlog in irssi)? === How can I search text in buffer (like /lastlog in irssi)?
@@ -443,8 +471,8 @@ for more information about colors management.
The default key is kbd:[Ctrl+r] (command is: `+/input search_text_here+`). The default key is kbd:[Ctrl+r] (command is: `+/input search_text_here+`).
And jump to highlights: kbd:[Alt+p] / kbd:[Alt+n]. And jump to highlights: kbd:[Alt+p] / kbd:[Alt+n].
See link:weechat_user.en.html#key_bindings[User's guide / Key bindings ^↗^,window=_blank] See link:weechat_user.en.html#key_bindings[User's guide / Key bindings] for more
for more info about this feature. info about this feature.
[[terminal_focus]] [[terminal_focus]]
=== How can I execute commands when terminal gets/loses focus? === How can I execute commands when terminal gets/loses focus?
@@ -477,7 +505,7 @@ commands of your choice):
For example to mark buffers as read when the terminal loses the focus: For example to mark buffers as read when the terminal loses the focus:
---- ----
/key bind meta2-O /allbuf /buffer set unread /key bind meta2-O /input set_unread
---- ----
[[screen_paste]] [[screen_paste]]
@@ -496,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? === 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 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: prefix/suffix:
---- ----
@@ -617,7 +645,7 @@ You can bind a key, for example:
---- ----
List of default keys is in 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 To jump to buffers with number ≥ 100, you could define a trigger and then use
commands like `/123` to jump to buffer #123: commands like `/123` to jump to buffer #123:
@@ -649,6 +677,8 @@ code press kbd:[Alt+k] then key.
[[mouse_not_working]] [[mouse_not_working]]
=== Mouse is not working at all, what can I do? === Mouse is not working at all, what can I do?
Mouse is supported with WeeChat ≥ 0.3.6.
First try to enable mouse: First try to enable mouse:
---- ----
@@ -698,6 +728,12 @@ you have to use kbd:[Alt] instead of kbd:[Shift]).
If you are using macOS, you must install `openssl` from Homebrew. If you are using macOS, you must install `openssl` from Homebrew.
A CA file will be bootstrapped using certificates from the system keychain. A CA file will be bootstrapped using certificates from the system keychain.
With WeeChat ≤ 3.1, you can then set the path to system certificates:
----
/set weechat.network.gnutls_ca_file "/usr/local/etc/openssl/cert.pem"
----
If you see errors about gnutls handshake, you can try to use a smaller If you see errors about gnutls handshake, you can try to use a smaller
Diffie-Hellman key (default is 2048): Diffie-Hellman key (default is 2048):
@@ -722,7 +758,8 @@ should be, you can specify the fingerprint (SHA-512, SHA-256 or SHA-1):
[[irc_ssl_handshake_error]] [[irc_ssl_handshake_error]]
=== When connecting to server with SSL, I only see the error "TLS handshake failed", what can I do? === When connecting to server with SSL, I only see the error "TLS handshake failed", what can I do?
You can try a different priority string, replace "xxx" by your server name: You can try a different priority string (WeeChat ≥ 0.3.5 only), replace "xxx"
by your server name:
---- ----
/set irc.server.xxx.ssl_priorities "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.0:+VERS-SSL3.0:%COMPAT" /set irc.server.xxx.ssl_priorities "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.0:+VERS-SSL3.0:%COMPAT"
@@ -731,8 +768,22 @@ You can try a different priority string, replace "xxx" by your server name:
[[irc_ssl_libera]] [[irc_ssl_libera]]
=== How can I connect to libera server using SSL? === How can I connect to libera server using SSL?
Check that you have certificates installed on your system, this is commonly With WeeChat ≤ 3.1, set option _weechat.network.gnutls_ca_file_ to file with
provided by the package "ca-certificates". certificates:
----
/set weechat.network.gnutls_ca_file "/etc/ssl/certs/ca-certificates.crt"
----
Note: if you are running macOS with homebrew openssl installed, you can do:
----
/set weechat.network.gnutls_ca_file "/usr/local/etc/openssl/cert.pem"
----
[NOTE]
Check that you have this file on your system (commonly brought by package
"ca-certificates").
Setup server port, SSL, then connect: Setup server port, SSL, then connect:
@@ -778,35 +829,25 @@ join of channels):
[[edit_autojoin]] [[edit_autojoin]]
=== How can I add/remove channels from autojoin option? === How can I add/remove channels from autojoin option?
With WeeChat ≥ 3.5, you can automatically record the channels you manually You can use the `/set` command to edit the list of autojoin channels,
join and part in the "autojoin" server option. for example for the "libera" server:
For all servers:
---- ----
/set irc.server_default.autojoin_dynamic on /set irc.server.libera.autojoin [TAB]
---- ----
For a single server: [NOTE]
You can complete the name and value of option with the kbd:[Tab] key
(or kbd:[Shift+Tab] for partial completion, useful for the name). +
This way you don't have to type the whole list of channels.
You can also use the `/fset` command to edit the list of channels:
---- ----
/set irc.server.libera.autojoin_dynamic on /fset autojoin
---- ----
You can also add the current channel in the "autojoin" server option using the Another solution is to use a script:
`/autojoin` command:
----
/autojoin add
----
Or another channel:
----
/autojoin add #test
----
There are also scripts:
---- ----
/script search autojoin /script search autojoin
@@ -846,14 +887,14 @@ With a global filter (hide *all* join/part/quit):
[NOTE] [NOTE]
For help: `/help filter`, `+/help irc.look.smart_filter+` and see 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]] [[filter_irc_join_channel_messages]]
=== How can I filter some messages displayed when I join an IRC channel? === How can I filter some messages displayed when I join an IRC channel?
You can choose which messages are displayed when joining a channel with the With WeeChat ≥ 0.4.1, you can choose which messages are displayed when
option _irc.look.display_join_message_ (see `+/help irc.look.display_join_message+` joining a channel with the option _irc.look.display_join_message_ (see
for more info). `+/help irc.look.display_join_message+` for more info).
To hide messages (but keep them in buffer), you can filter them using the tag To hide messages (but keep them in buffer), you can filter them using the tag
(for example _irc_329_ for channel creation date). See `/help filter` for help (for example _irc_329_ for channel creation date). See `/help filter` for help
@@ -908,13 +949,17 @@ nicks:
/set irc.server_default.away_check_max_nicks 25 /set irc.server_default.away_check_max_nicks 25
---- ----
[NOTE]
For WeeChat ≤ 0.3.3, options are _irc.network.away_check_ and
_irc.network.away_check_max_nicks_.
[[highlight_notification]] [[highlight_notification]]
=== How can I be warned when someone highlights me on a channel? === How can I be warned when someone highlights me on a channel?
There is a default trigger "beep" which sends a _BEL_ to the terminal on With WeeChat ≥ 1.0, there is a default trigger "beep" which sends a _BEL_ to
a highlight or private message. Thus you can configure your terminal the terminal on a highlight or private message. Thus you can configure your
(or multiplexer like screen/tmux) to run a command or play a sound when terminal (or multiplexer like screen/tmux) to run a command or play a sound
a _BEL_ occurs. when a _BEL_ occurs.
Or you can add a command in "beep" trigger: Or you can add a command in "beep" trigger:
@@ -939,8 +984,8 @@ Other scripts on this subject:
[[disable_highlights_for_specific_nicks]] [[disable_highlights_for_specific_nicks]]
=== How can I disable highlights for specific nicks? === How can I disable highlights for specific nicks?
You can use the 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, buffer property to set the max hotlist level for some nicks, per buffer,
or per group of buffers (like IRC servers). or per group of buffers (like IRC servers).
@@ -976,7 +1021,7 @@ For more examples, see `+/help buffer_autoset+`.
[[irc_target_buffer]] [[irc_target_buffer]]
=== How can I change target buffer for commands on merged buffers (like buffer with servers)? === How can I change target buffer for commands on merged buffers (like buffer with servers)?
The default key is kbd:[Ctrl+x] (command is: `+/buffer switch+`). The default key is kbd:[Ctrl+x] (command is: `+/input switch_active_buffer+`).
[[plugins_scripts]] [[plugins_scripts]]
== Plugins / scripts == Plugins / scripts
@@ -996,8 +1041,8 @@ You must set that up:
[[install_scripts]] [[install_scripts]]
=== How can I install scripts? Are scripts compatible with other IRC clients? === How can I install scripts? Are scripts compatible with other IRC clients?
You can use the command `/script` to install and manage scripts (see `/help script` With WeeChat ≥ 0.3.9 you can use the command `/script` to install and manage scripts
for help). (see `/help script` for help). For older versions there is weeget.py and script.pl.
Scripts are not compatible with other IRC clients. Scripts are not compatible with other IRC clients.
@@ -1013,7 +1058,7 @@ $ rm ~/.cache/weechat/script/plugins.xml.gz
---- ----
[NOTE] [NOTE]
If you are not using the XDG directories, the path could be: _~/.weechat/script/plugins.xml.gz_. With WeeChat ≤ 3.1, the path should be: _~/.weechat/script/plugins.xml.gz_.
And update scripts again in WeeChat: And update scripts again in WeeChat:
@@ -1038,14 +1083,6 @@ $ cd ~/.cache/weechat/script
$ curl -O https://weechat.org/files/plugins.xml.gz $ 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]] [[spell_dictionaries]]
=== I installed aspell dictionaries on my system, how can I use them without restarting WeeChat? === I installed aspell dictionaries on my system, how can I use them without restarting WeeChat?
@@ -1055,6 +1092,10 @@ You have to reload the spell plugin:
/plugin reload spell /plugin reload spell
---- ----
[NOTE]
With WeeChat ≤ 2.4, the "spell" plugin was named "aspell", so the command is:
`/plugin reload aspell`.
[[settings]] [[settings]]
== Settings == Settings
@@ -1139,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 Define a passphrase and use secured data wherever you can for sensitive data
like passwords: see `/help secure` and `/help` on options like passwords: see `/help secure` and `/help` on options
(if you can use secured data, it is written in the help). (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: For example:
@@ -1160,7 +1201,7 @@ contains your passwords ciphered with your passphrase.
Some other files may contain sensitive info like passwords (if they are not Some other files may contain sensitive info like passwords (if they are not
stored in _sec.conf_ with the `/secure` command). 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. for more information about configuration files.
[[development]] [[development]]
@@ -1169,7 +1210,7 @@ for more information about configuration files.
[[bug_task_patch]] [[bug_task_patch]]
=== How should I report bugs, ask for new features or send patches? === 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]] [[gdb_error_threads]]
=== When I run WeeChat under gdb, there is an error about threads, what can I do? === When I run WeeChat under gdb, there is an error about threads, what can I do?
@@ -1205,11 +1246,11 @@ some OS' we don't have, to test WeeChat.
There are many tasks to do (testing, code, documentation, etc.) There are many tasks to do (testing, code, documentation, etc.)
Please contact us via IRC or mail, look at Please contact us via IRC or mail, look at support page:
https://weechat.org/about/support/[support page ^↗^,window=_blank]. https://weechat.org/about/support
[[donate]] [[donate]]
=== Can I give money or other things to WeeChat developers? === Can I give money or other things to WeeChat developers?
You can give us money to help development. 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" /set irc.server.libera.autojoin "#channel1,#channel2"
---- ----
The `/autojoin` command lets you configure the _autojoin_ option easily [TIP]
(see `/help autojoin`). 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
You can also configure WeeChat to automatically update the _autojoin_ option the name of option).
when you join or leave channels:
----
/set irc.server_default.autojoin_dynamic on
----
To remove a value of a server option, and use the default value instead, To remove a value of a server option, and use the default value instead,
for example to use default nicks (irc.server_default.nicks): for example to use default nicks (irc.server_default.nicks):
@@ -218,11 +213,6 @@ option name):
/set irc.server.libera.xxx value /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]]
== Connect to IRC server == Connect to IRC server
@@ -380,14 +370,13 @@ for example:
See `/help script` for more info. See `/help script` for more info.
A list of scripts is available in WeeChat with `/script` or on A list of scripts is available in WeeChat with `/script` or at this URL:
https://weechat.org/scripts/[this page ^↗^,window=_blank]. https://weechat.org/scripts
[[more_doc]] [[more_doc]]
== More documentation == More documentation
You can now use WeeChat and read You can now use WeeChat and read FAQ/documentation for any other questions:
https://weechat.org/doc/[FAQ/documentation ^↗^,window=_blank] https://weechat.org/doc
for any other questions.
Enjoy using WeeChat! Enjoy using WeeChat!
+84 -90
View File
@@ -84,7 +84,7 @@ Fields are:
List of available commands (detail in next chapters): List of available commands (detail in next chapters):
[width="100%",cols="1m,8",options="header"] [width="100%",cols="^3m,14",options="header"]
|=== |===
| Command | Description | Command | Description
| handshake | Handshake: prepare client authentication and set options, before _init_ command. | 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]] [[command_handshake]]
=== 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 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 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 *** _sha512_: password salted and hashed with SHA512 algorithm
*** _pbkdf2+sha256_: password salted and hashed with PBKDF2 algorithm (using SHA256 hash) *** _pbkdf2+sha256_: password salted and hashed with PBKDF2 algorithm (using SHA256 hash)
*** _pbkdf2+sha512_: password salted and hashed with PBKDF2 algorithm (using SHA512 hash) *** _pbkdf2+sha512_: password salted and hashed with PBKDF2 algorithm (using SHA512 hash)
** _compression_: list of supported compression types supported by the client ** _compression_: compression type:
(separated by colons and sorted from most important to the fallback value); *** _zlib_: enable _zlib_ compression for messages sent by _relay_
if compression is enabled, messages from _relay_ to client are compressed (enabled by default if _relay_ supports _zlib_ compression)
to save bandwidth; allowed values are: *** _off_: disable compression
*** _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)_
Notes about option _password_hash_algo_: 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 and the user password (the _relay_ nonce + the client nonce is the salt used
in the password hash algorithm) in the password hash algorithm)
* _compression_: compression type: * _compression_: compression type:
** _zlib_: messages are compressed with _zlib_
** _off_: messages are not compressed ** _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] [TIP]
With WeeChat ≤ 2.8, the command _handshake_ is not implemented, WeeChat silently With WeeChat ≤ 2.8, the command _handshake_ is not implemented, WeeChat silently
@@ -202,7 +196,7 @@ htb: {
'password_hash_iterations': '100000', 'password_hash_iterations': '100000',
'totp': 'on', 'totp': 'on',
'nonce': '85B1EE00695A5B254E14F4885538DF0D', 'nonce': '85B1EE00695A5B254E14F4885538DF0D',
'compression': 'off', 'compression': 'zlib',
} }
---- ----
@@ -222,7 +216,7 @@ htb: {
'password_hash_iterations': '100000', 'password_hash_iterations': '100000',
'totp': 'on', 'totp': 'on',
'nonce': '85B1EE00695A5B254E14F4885538DF0D', 'nonce': '85B1EE00695A5B254E14F4885538DF0D',
'compression': 'off', 'compression': 'zlib',
} }
---- ----
@@ -242,7 +236,7 @@ htb: {
'password_hash_iterations': '100000', 'password_hash_iterations': '100000',
'totp': 'on', 'totp': 'on',
'nonce': '85B1EE00695A5B254E14F4885538DF0D', '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 init password_hash=pbkdf2+sha256:85b1ee00695a5b254e14f4885538df0da4b73207f5aae4:100000:ba7facc3edb89cd06ae810e29ced85980ff36de2bb596fcf513aaab626876440
---- ----
* Only "sha256" and "sha512" are supported by the client, enable zstd (preferred) * Only "sha256" and "sha512" are supported by the client, disable compression:
or zlib compression:
---- ----
(handshake) handshake password_hash_algo=sha256:sha512,compression=zstd:zlib (handshake) handshake password_hash_algo=sha256:sha512,compression=off
---- ----
Response: Response:
@@ -271,14 +264,14 @@ htb: {
'password_hash_iterations': '100000', 'password_hash_iterations': '100000',
'totp': 'on', 'totp': 'on',
'nonce': '85B1EE00695A5B254E14F4885538DF0D', 'nonce': '85B1EE00695A5B254E14F4885538DF0D',
'compression': 'zstd', 'compression': 'off',
} }
---- ----
[[command_init]] [[command_init]]
=== 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_. Authenticate with _relay_.
@@ -305,6 +298,12 @@ Arguments:
factor, in addition to the password factor, in addition to the password
(option _relay.network.totp_secret_ in WeeChat) (option _relay.network.totp_secret_ in WeeChat)
_(WeeChat ≥ 2.4)_ _(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] [NOTE]
With WeeChat ≥ 1.6, commas can be escaped in the value, for example With WeeChat ≥ 1.6, commas can be escaped in the value, for example
@@ -691,8 +690,6 @@ inl:
text_search_found: 0 text_search_found: 0
text_search_input: None text_search_input: None
highlight_words: None highlight_words: None
highlight_disable_regex: None
highlight_disable_regex_compiled: '0x0'
highlight_regex: None highlight_regex: None
highlight_regex_compiled: '0x0' highlight_regex_compiled: '0x0'
highlight_tags_restrict: None highlight_tags_restrict: None
@@ -995,7 +992,7 @@ Arguments:
WeeChat replies with a hdata: WeeChat replies with a hdata:
[width="100%",cols="2m,3,14",options="header"] [width="100%",cols="3m,2,10",options="header"]
|=== |===
| Name | Type | Description | Name | Type | Description
| context | string | Completion context: "null" (no completion), "command", "command_arg", "auto". | context | string | Completion context: "null" (no completion), "command", "command_arg", "auto".
@@ -1263,24 +1260,24 @@ Syntax:
Returned objects (in this order): Returned objects (in this order):
[width="80%",cols="1m,2,6m",options="header"] [width="100%",cols="^3,3m,5m",options="header"]
|=== |===
| Type | Description | Value | Type | Type (in message) | Value
| chr | char | 65 ("A") | char | chr | 65 ("A")
| int | integer | 123456 | integer | int | 123456
| int | integer | -123456 | integer | int | -123456
| lon | long | 1234567890 | long | lon | 1234567890
| lon | long | -1234567890 | long | lon | -1234567890
| str | string | "a string" | string | str | "a string"
| str | string | "" | string | str | ""
| str | string | NULL | string | str | NULL
| buf | buffer | "buffer" | buffer | buf | "buffer"
| buf | buffer | NULL | buffer | buf | NULL
| ptr | pointer | 0x1234abcd | pointer | ptr | 0x1234abcd
| ptr | pointer | NULL | pointer | ptr | NULL
| tim | time | 1321993456 | time | tim | 1321993456
| arr str | array of strings | [ "abc", "de" ] | array of strings | arr str | [ "abc", "de" ]
| arr int | array of integers | [ 123, 456, 789 ] | array of integers | arr int | [ 123, 456, 789 ]
|=== |===
[IMPORTANT] [IMPORTANT]
@@ -1382,8 +1379,7 @@ Messages are sent as binary data, using following format (with size in bytes):
(including this field) (including this field)
* _compression_ (byte): flag: * _compression_ (byte): flag:
** _0x00_: following data is not compressed ** _0x00_: following data is not compressed
** _0x01_: following data is compressed with https://zlib.net/[zlib ^↗^,window=_blank] ** _0x01_: following data is compressed with _zlib_
** _0x02_: following data is compressed with https://facebook.github.io/zstd/[Zstandard ^↗^,window=_blank]
* _id_ (string, 4 bytes + content): identifier sent by client (before command name); it can be * _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 empty (string with zero length and no content) if no identifier was given in
command command
@@ -1393,10 +1389,8 @@ Messages are sent as binary data, using following format (with size in bytes):
[[message_compression]] [[message_compression]]
=== Compression === Compression
If flag _compression_ is equal to 0x01 or 0x02, then *all* data after is compressed If flag _compression_ is equal to 0x01, then *all* data after is compressed
with https://zlib.net/[zlib ^↗^,window=_blank] or with _zlib_, and therefore must be uncompressed before being processed.
https://facebook.github.io/zstd/[Zstandard ^↗^,window=_blank],
and therefore must be uncompressed before being processed.
[[message_identifier]] [[message_identifier]]
=== Identifier === Identifier
@@ -1411,68 +1405,68 @@ WeeChat reserved identifiers:
[width="100%",cols="5m,5,3,4,7",options="header"] [width="100%",cols="5m,5,3,4,7",options="header"]
|=== |===
| Identifier | Received with _sync_ | Data sent | Identifier | Received with _sync_ | Data sent |
| Description | Recommended action in client Description | Recommended action in client
| _buffer_opened | buffers / buffer | hdata: buffer | _buffer_opened | buffers / buffer | hdata: buffer |
| Buffer opened. | Open buffer. Buffer opened. | Open buffer.
| _buffer_type_changed | buffers / buffer | hdata: buffer | _buffer_type_changed | buffers / buffer | hdata: buffer |
| Type of buffer changed. | Change type of buffer. Type of buffer changed. | Change type of buffer.
| _buffer_moved | buffers / buffer | hdata: buffer | _buffer_moved | buffers / buffer | hdata: buffer |
| Buffer moved. | Move buffer. Buffer moved. | Move buffer.
| _buffer_merged | buffers / buffer | hdata: buffer | _buffer_merged | buffers / buffer | hdata: buffer |
| Buffer merged. | Merge buffer. Buffer merged. | Merge buffer.
| _buffer_unmerged | buffers / buffer | hdata: buffer | _buffer_unmerged | buffers / buffer | hdata: buffer |
| Buffer unmerged. | Unmerge buffer. Buffer unmerged. | Unmerge buffer.
| _buffer_hidden | buffers / buffer | hdata: buffer | _buffer_hidden | buffers / buffer | hdata: buffer |
| Buffer hidden. | Hide buffer. Buffer hidden. | Hide buffer.
| _buffer_unhidden | buffers / buffer | hdata: buffer | _buffer_unhidden | buffers / buffer | hdata: buffer |
| Buffer unhidden. | Unhide buffer. Buffer unhidden. | Unhide buffer.
| _buffer_renamed | buffers / buffer | hdata: buffer | _buffer_renamed | buffers / buffer | hdata: buffer |
| Buffer renamed. | Rename buffer. Buffer renamed. | Rename buffer.
| _buffer_title_changed | buffers / buffer | hdata: buffer | _buffer_title_changed | buffers / buffer | hdata: buffer |
| Title of buffer changed. | Change title of buffer. Title of buffer changed. | Change title of buffer.
| _buffer_localvar_added | buffers / buffer | hdata: buffer | _buffer_localvar_added | buffers / buffer | hdata: buffer |
| Local variable added. | Add local variable in buffer. Local variable added. | Add local variable in buffer.
| _buffer_localvar_changed | buffers / buffer | hdata: buffer | _buffer_localvar_changed | buffers / buffer | hdata: buffer |
| Local variable changed. | Change local variable in buffer. Local variable changed. | Change local variable in buffer.
| _buffer_localvar_removed | buffers / buffer | hdata: buffer | _buffer_localvar_removed | buffers / buffer | hdata: buffer |
| Local variable removed. | Remove local variable from buffer. Local variable removed. | Remove local variable from buffer.
| _buffer_closing | buffers / buffer | hdata: buffer | _buffer_closing | buffers / buffer | hdata: buffer |
| Buffer closing. | Close buffer. Buffer closing. | Close buffer.
| _buffer_cleared | buffer | hdata: buffer | _buffer_cleared | buffer | hdata: buffer |
| Buffer cleared. | Clear buffer. Buffer cleared. | Clear buffer.
| _buffer_line_added | buffer | hdata: line | _buffer_line_added | buffer | hdata: line |
| Line added in buffer. | Display line in buffer. Line added in buffer. | Display line in buffer.
| _nicklist | nicklist | hdata: nicklist_item | _nicklist | nicklist | hdata: nicklist_item |
| Nicklist for a buffer. | Replace nicklist. Nicklist for a buffer. | Replace nicklist.
| _nicklist_diff | nicklist | hdata: nicklist_item | _nicklist_diff | nicklist | hdata: nicklist_item |
| Nicklist diffs for a buffer . | Update nicklist. Nicklist diffs for a buffer . | Update nicklist.
| _pong | (always) | string: ping arguments | _pong | (always) | string: ping arguments |
| Answer to a "ping". | Measure response time. Answer to a "ping". | Measure response time.
| _upgrade | upgrade | (empty) | _upgrade | upgrade | (empty) |
| WeeChat is upgrading. | Desync from WeeChat (or disconnect). WeeChat is upgrading. | Desync from WeeChat (or disconnect).
| _upgrade_ended | upgrade | (empty) | _upgrade_ended | upgrade | (empty) |
| Upgrade of WeeChat done. | Sync/resync with WeeChat. Upgrade of WeeChat done. | Sync/resync with WeeChat.
|=== |===
[[message_buffer_opened]] [[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: 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 | Type | Value | Length
| chr | Signed char | 1 byte | chr | Signed char | 1 byte
+152 -212
View File
@@ -11,8 +11,8 @@
This manual documents WeeChat chat client, it is part of WeeChat. This manual documents WeeChat chat client, it is part of WeeChat.
Latest version of this document can be found on Latest version of this document can be found on this page:
https://weechat.org/doc/[this page ^↗^,window=_blank]. https://weechat.org/doc
[[introduction]] [[introduction]]
@@ -61,7 +61,7 @@ function, this can crash WeeChat. +
If something must be run in background, the function `+hook_process+` can be used. 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>> See example in the chapter <<hook_process,Run a background process>>
and the documentation on the function `+hook_process+` in the 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]]
=== 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`. + WeeChat defines a `weechat` module which must be imported with `import weechat`. +
A Python stub for WeeChat API is available in the repository: 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]] [[python_functions]]
===== Functions ===== Functions
@@ -99,41 +99,45 @@ receive a string of type `str` or `bytes` (this list is not exhaustive):
|=== |===
| API function | Arguments | Examples | Description | API function | Arguments | Examples | Description
| hook_modifier | hook_modifier |
| irc_in_yyy irc_in_yyy |
| pass:[irc_in_privmsg] + pass:[irc_in_privmsg] +
pass:[irc_in_notice] pass:[irc_in_notice] |
| A message received in IRC plugin, before it is decoded to UTF-8 (used A message received in IRC plugin, before it is decoded to UTF-8 (used
internally). + internally). +
+ +
It is recommended to use modifier `+irc_in2_yyy+` instead, the string received It is recommended to use modifier `+irc_in2_yyy+` instead, the string received
is always UTF-8 valid. + is always UTF-8 valid. +
See function `+hook_modifier+` in the 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 | hook_signal |
| xxx,irc_out_yyy + xxx,irc_out_yyy +
xxx,irc_outtags_yyy xxx,irc_outtags_yyy |
| pass:[*,irc_out_privmsg] + pass:[*,irc_out_privmsg] +
pass:[*,irc_out_notice] + pass:[*,irc_out_notice] +
pass:[*,irc_outtags_privmsg] + pass:[*,irc_outtags_privmsg] +
pass:[*,irc_outtags_notice] pass:[*,irc_outtags_notice] |
| A message sent by IRC plugin, after it is encoded to the `encode` charset 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`). + 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 It is recommended to use signal `+xxx,irc_out1_yyy+` instead, the string received
is always UTF-8 valid. + is always UTF-8 valid. +
See function `+hook_signal+` in the 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 +
hook_process_hashtable hook_process_hashtable |
| - - |
| - - |
| Output of the command, sent to the callback, can contain invalid UTF-8 data. Output of the command, sent to the callback, can contain invalid UTF-8 data.
|=== |===
In Python 2, which is now deprecated and should not be used any more, the
strings sent to callbacks are always of type `str`, and may contain invalid
UTF-8 data, in the cases mentioned above.
[[language_perl]] [[language_perl]]
==== Perl ==== Perl
@@ -191,22 +195,6 @@ Functions are called with `+weechat.xxx(arg1, arg2, ...)+`.
Functions are called with `+weechat::xxx arg1 arg2 ...+`. Functions are called with `+weechat::xxx arg1 arg2 ...+`.
[[tcl_null]]
===== Null values
Since Tcl only has string types, there's no null type to pass as an argument
when a function accepts null values or to get as an argument in a callback
function. To overcome this the WeeChat API defines 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.
You can pass this constant when a function accepts null as an argument and you
will get it as the value of an argument in a callback function if the argument
value is null. To see which functions accept null values and passes null values
to callbacks, look at the Python prototypes in the
link:weechat_plugin_api.en.html[WeeChat plugin API reference ^↗^,window=_blank].
[[language_guile]] [[language_guile]]
==== Guile (Scheme) ==== Guile (Scheme)
@@ -382,7 +370,7 @@ directory is automatically created.
== Differences with C API == Differences with C API
Script API is almost the same as C plugin 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. 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 It's important to make difference between a _plugin_ and a _script_: a
@@ -549,25 +537,25 @@ weechat_hook_timer(1000, 0, 1, $timer_cb, 'test');
== Script API == Script API
For more information about functions in API, please read the 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]] [[script_api_functions]]
=== Functions === Functions
List of functions in script API: List of functions in script API:
[width="100%",cols="1,5",options="header"] [width="100%",cols="1,3",options="header"]
|=== |===
| Category | Functions | Category | Functions
| general | general |
| register register
| plugins | plugins |
| plugin_get_name plugin_get_name
| strings | strings |
| charset_set + charset_set +
iconv_to_internal + iconv_to_internal +
iconv_from_internal + iconv_from_internal +
gettext + gettext +
@@ -579,7 +567,6 @@ List of functions in script API:
string_has_highlight_regex + string_has_highlight_regex +
string_mask_to_regex + string_mask_to_regex +
string_format_size + string_format_size +
string_parse_size +
string_color_code_size + string_color_code_size +
string_remove_color + string_remove_color +
string_is_command_char + string_is_command_char +
@@ -587,13 +574,13 @@ List of functions in script API:
string_eval_expression + string_eval_expression +
string_eval_path_home string_eval_path_home
| directories | directories |
| mkdir_home + mkdir_home +
mkdir + mkdir +
mkdir_parents mkdir_parents
| sorted lists | sorted lists |
| list_new + list_new +
list_add + list_add +
list_search + list_search +
list_search_pos + list_search_pos +
@@ -609,8 +596,8 @@ List of functions in script API:
list_remove_all + list_remove_all +
list_free list_free
| configuration files | configuration files |
| config_new + config_new +
config_new_section + config_new_section +
config_search_section + config_search_section +
config_new_option + config_new_option +
@@ -647,21 +634,20 @@ List of functions in script API:
config_set_desc_plugin + config_set_desc_plugin +
config_unset_plugin config_unset_plugin
| key bindings | key bindings |
| key_bind + key_bind +
key_unbind key_unbind
| display | display |
| prefix + prefix +
color + color +
print (for python: prnt) + print (for python: prnt) +
print_date_tags (for python: prnt_date_tags) + print_date_tags (for python: prnt_date_tags) +
print_y (for python: prnt_y) + print_y (for python: prnt_y) +
print_y_date_tags (for python: prnt_y_date_tags) +
log_print log_print
| hooks | hooks |
| hook_command + hook_command +
hook_command_run + hook_command_run +
hook_timer + hook_timer +
hook_fd + hook_fd +
@@ -686,9 +672,8 @@ List of functions in script API:
unhook + unhook +
unhook_all unhook_all
| buffers | buffers |
| buffer_new + buffer_new +
buffer_new_props +
current_buffer + current_buffer +
buffer_search + buffer_search +
buffer_search_main + buffer_search_main +
@@ -703,16 +688,16 @@ List of functions in script API:
buffer_string_replace_local_var + buffer_string_replace_local_var +
buffer_match_list buffer_match_list
| windows | windows |
| current_window + current_window +
window_search_with_buffer + window_search_with_buffer +
window_get_integer + window_get_integer +
window_get_string + window_get_string +
window_get_pointer + window_get_pointer +
window_set_title window_set_title
| nicklist | nicklist |
| nicklist_add_group + nicklist_add_group +
nicklist_search_group + nicklist_search_group +
nicklist_add_nick + nicklist_add_nick +
nicklist_search_nick + nicklist_search_nick +
@@ -728,8 +713,8 @@ List of functions in script API:
nicklist_nick_get_pointer + nicklist_nick_get_pointer +
nicklist_nick_set nicklist_nick_set
| bars | bars |
| bar_item_search + bar_item_search +
bar_item_new + bar_item_new +
bar_item_update + bar_item_update +
bar_item_remove + bar_item_remove +
@@ -739,23 +724,23 @@ List of functions in script API:
bar_update + bar_update +
bar_remove bar_remove
| commands | commands |
| command + command +
command_options command_options
| completion | completion |
| completion_new + completion_new +
completion_search + completion_search +
completion_get_string + completion_get_string +
completion_list_add + completion_list_add +
completion_free completion_free
| infos | infos |
| info_get + info_get +
info_get_hashtable info_get_hashtable
| infolists | infolists |
| infolist_new + infolist_new +
infolist_new_item + infolist_new_item +
infolist_new_var_integer + infolist_new_var_integer +
infolist_new_var_string + infolist_new_var_string +
@@ -773,8 +758,8 @@ List of functions in script API:
infolist_time + infolist_time +
infolist_free infolist_free
| hdata | hdata |
| hdata_get + hdata_get +
hdata_get_var_offset + hdata_get_var_offset +
hdata_get_var_type_string + hdata_get_var_type_string +
hdata_get_var_array_size + hdata_get_var_array_size +
@@ -795,8 +780,8 @@ List of functions in script API:
hdata_update + hdata_update +
hdata_get_string hdata_get_string
| upgrade | upgrade |
| upgrade_new + upgrade_new +
upgrade_write_object + upgrade_write_object +
upgrade_read + upgrade_read +
upgrade_close upgrade_close
@@ -807,17 +792,17 @@ List of functions in script API:
List of constants 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 | Category | Constants
| return codes | return codes |
| `WEECHAT_RC_OK` (integer) + `WEECHAT_RC_OK` (integer) +
`WEECHAT_RC_OK_EAT` (integer) + `WEECHAT_RC_OK_EAT` (integer) +
`WEECHAT_RC_ERROR` (integer) `WEECHAT_RC_ERROR` (integer)
| configuration files | configuration files |
| `WEECHAT_CONFIG_READ_OK` (integer) + `WEECHAT_CONFIG_READ_OK` (integer) +
`WEECHAT_CONFIG_READ_MEMORY_ERROR` (integer) + `WEECHAT_CONFIG_READ_MEMORY_ERROR` (integer) +
`WEECHAT_CONFIG_READ_FILE_NOT_FOUND` (integer) + `WEECHAT_CONFIG_READ_FILE_NOT_FOUND` (integer) +
`WEECHAT_CONFIG_WRITE_OK` (integer) + `WEECHAT_CONFIG_WRITE_OK` (integer) +
@@ -832,23 +817,23 @@ List of constants in script API:
`WEECHAT_CONFIG_OPTION_UNSET_OK_REMOVED` (integer) + `WEECHAT_CONFIG_OPTION_UNSET_OK_REMOVED` (integer) +
`WEECHAT_CONFIG_OPTION_UNSET_ERROR` (integer) `WEECHAT_CONFIG_OPTION_UNSET_ERROR` (integer)
| sorted lists | sorted lists |
| `WEECHAT_LIST_POS_SORT` (string) + `WEECHAT_LIST_POS_SORT` (string) +
`WEECHAT_LIST_POS_BEGINNING` (string) + `WEECHAT_LIST_POS_BEGINNING` (string) +
`WEECHAT_LIST_POS_END` (string) `WEECHAT_LIST_POS_END` (string)
| hotlist | hotlist |
| `WEECHAT_HOTLIST_LOW` (string) + `WEECHAT_HOTLIST_LOW` (string) +
`WEECHAT_HOTLIST_MESSAGE` (string) + `WEECHAT_HOTLIST_MESSAGE` (string) +
`WEECHAT_HOTLIST_PRIVATE` (string) + `WEECHAT_HOTLIST_PRIVATE` (string) +
`WEECHAT_HOTLIST_HIGHLIGHT` (string) `WEECHAT_HOTLIST_HIGHLIGHT` (string)
| hook process | hook process |
| `WEECHAT_HOOK_PROCESS_RUNNING` (integer) + `WEECHAT_HOOK_PROCESS_RUNNING` (integer) +
`WEECHAT_HOOK_PROCESS_ERROR` (integer) `WEECHAT_HOOK_PROCESS_ERROR` (integer)
| hook connect | hook connect |
| `WEECHAT_HOOK_CONNECT_OK` (integer) + `WEECHAT_HOOK_CONNECT_OK` (integer) +
`WEECHAT_HOOK_CONNECT_ADDRESS_NOT_FOUND` (integer) + `WEECHAT_HOOK_CONNECT_ADDRESS_NOT_FOUND` (integer) +
`WEECHAT_HOOK_CONNECT_IP_ADDRESS_NOT_FOUND` (integer) + `WEECHAT_HOOK_CONNECT_IP_ADDRESS_NOT_FOUND` (integer) +
`WEECHAT_HOOK_CONNECT_CONNECTION_REFUSED` (integer) + `WEECHAT_HOOK_CONNECT_CONNECTION_REFUSED` (integer) +
@@ -860,8 +845,8 @@ List of constants in script API:
`WEECHAT_HOOK_CONNECT_TIMEOUT` (integer) + `WEECHAT_HOOK_CONNECT_TIMEOUT` (integer) +
`WEECHAT_HOOK_CONNECT_SOCKET_ERROR` (integer) `WEECHAT_HOOK_CONNECT_SOCKET_ERROR` (integer)
| hook signal | hook signal |
| `WEECHAT_HOOK_SIGNAL_STRING` (string) + `WEECHAT_HOOK_SIGNAL_STRING` (string) +
`WEECHAT_HOOK_SIGNAL_INT` (string) + `WEECHAT_HOOK_SIGNAL_INT` (string) +
`WEECHAT_HOOK_SIGNAL_POINTER` (string) `WEECHAT_HOOK_SIGNAL_POINTER` (string)
|=== |===
@@ -871,7 +856,7 @@ List of constants in script API:
This chapter shows some common tasks, with examples. This chapter shows some common tasks, with examples.
Only partial things in API are used here, for full reference, see the 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]]
=== Buffers === Buffers
@@ -890,7 +875,7 @@ Examples:
weechat.prnt("", "hello") weechat.prnt("", "hello")
# display "hello" on core buffer, but do not write it to log file # 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") weechat.prnt_date_tags("", 0, "no_log", "hello")
# display prefix "==>" and message "hello" on current buffer # display prefix "==>" and message "hello" on current buffer
@@ -1064,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 You can run a background process with `+hook_process+`. Your callback will be
called when data is ready. It may be called many times. 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, For the last call to your callback, _rc_ is set to 0 or positive value, it's
it is the return code of command. return code of command.
Example: Example:
[source,python] [source,python]
---- ----
def my_process_cb(data, command, return_code, out, err): process_output = ""
if return_code == weechat.WEECHAT_HOOK_PROCESS_ERROR:
weechat.prnt("", "Error with command '%s'" % command) def my_process_cb(data, command, rc, out, err):
return weechat.WEECHAT_RC_OK global process_output
if return_code >= 0: if out != "":
weechat.prnt("", "return_code = %d" % return_code) process_output += out
if out: if int(rc) >= 0:
weechat.prnt("", "stdout: %s" % out) weechat.prnt("", process_output)
if err:
weechat.prnt("", "stderr: %s" % err)
return weechat.WEECHAT_RC_OK return weechat.WEECHAT_RC_OK
weechat.hook_process("/bin/ls -l /etc", 10 * 1000, "my_process_cb", "") 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]]
==== URL transfer ==== URL transfer
@@ -1124,15 +1082,15 @@ in callback (standard output of process):
[source,python] [source,python]
---- ----
# Display latest stable version of WeeChat. # Display current stable version of WeeChat.
weechat_latest_version = "" weechat_version = ""
def weechat_process_cb(data, command, return_code, out, err): def weechat_process_cb(data, command, rc, out, err):
global weechat_latest_version global weechat_version
if out: if out != "":
weechat_latest_version += out weechat_version += out
if return_code >= 0: if int(rc) >= 0:
weechat.prnt("", "Latest WeeChat version: %s" % weechat_latest_version) weechat.prnt("", "Current WeeChat stable is: %s" % weechat_version)
return weechat.WEECHAT_RC_OK return weechat.WEECHAT_RC_OK
weechat.hook_process("url:https://weechat.org/dev/info/stable/", weechat.hook_process("url:https://weechat.org/dev/info/stable/",
@@ -1140,17 +1098,16 @@ weechat.hook_process("url:https://weechat.org/dev/info/stable/",
---- ----
[TIP] [TIP]
All infos available about WeeChat are on All infos available about WeeChat are on page https://weechat.org/dev/info
https://weechat.org/dev/info/[this page ^↗^,window=_blank].
Example of URL transfer with an option: download latest WeeChat development Example of URL transfer with an option: download latest WeeChat development
package in file _/tmp/weechat-devel.tar.gz_: package in file _/tmp/weechat-devel.tar.gz_:
[source,python] [source,python]
---- ----
def my_process_cb(data, command, return_code, out, err): def my_process_cb(data, command, rc, out, err):
if return_code >= 0: if int(rc) >= 0:
weechat.prnt("", "End of transfer (return code = %d)" % return_code) weechat.prnt("", "End of transfer (rc=%s)" % rc)
return weechat.WEECHAT_RC_OK return weechat.WEECHAT_RC_OK
weechat.hook_process_hashtable("url:https://weechat.org/files/src/weechat-devel.tar.gz", weechat.hook_process_hashtable("url:https://weechat.org/files/src/weechat-devel.tar.gz",
@@ -1160,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 For more information about URL transfer and available options, see functions
`+hook_process+` and `+hook_process_hashtable+` in `+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]]
=== Config / options === Config / options
@@ -1314,71 +1271,59 @@ The result is a hashtable with following keys
[width="100%",cols="3,^2,10,7",options="header"] [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 | tags | 0.4.0 |
| The tags in message (can be empty). The tags in message (can be empty). |
| `+time=2015-06-27T16:40:35.000Z+` `+time=2015-06-27T16:40:35.000Z+`
| tag_xxx | 3.3 | message_without_tags | 0.4.0 |
| Unescaped value of tag "xxx" (one key per tag). The message without the tags (the same as message if there are no tags). |
| `+2015-06-27T16:40:35.000Z+` `+:nick!user@host PRIVMSG #weechat :hello!+`
| message_without_tags | 0.4.0 | nick | 0.3.4 |
| The message without the tags (the same as message if there are no tags). The origin nick. |
| `+:nick!user@host PRIVMSG #weechat :hello!+` `+nick+`
| nick | 0.3.4 | user | 2.7 |
| The origin nick. The origin user. |
| `+nick+` `+user+`
| user | 2.7 | host | 0.3.4 |
| The origin user. The origin host (includes the nick). |
| `+user+` `+nick!user@host+`
| host | 0.3.4 | command | 0.3.4 |
| The origin host (includes the nick). The command (_PRIVMSG_, _NOTICE_, ...). |
| `+nick!user@host+` `+PRIVMSG+`
| command | 0.3.4 | channel | 0.3.4 |
| The command (_PRIVMSG_, _NOTICE_, ...). The target channel. |
| `+PRIVMSG+` `+#weechat+`
| channel | 0.3.4 | arguments | 0.3.4 |
| The target channel. The command arguments (includes the channel). |
| `+#weechat+` `+#weechat :hello!+`
| arguments | 0.3.4 | text | 1.3 |
| The command arguments (includes the channel). The text (for example user message). |
| `+#weechat :hello!+` `+hello!+`
| text | 1.3 | pos_command | 1.3 |
| The text (for example user message). The index of _command_ in message ("-1" if _command_ was not found). |
| `+hello!+` `+47+`
| paramN | 3.4 | pos_arguments | 1.3 |
| Command parameter (from 1 to N). The index of _arguments_ in message ("-1" if _arguments_ was not found). |
| `+#weechat+` `+55+`
| num_params | 3.4 | pos_channel | 1.3 |
| Number of command parameters. The index of _channel_ in message ("-1" if _channel_ was not found). |
| `+2+` `+55+`
| pos_command | 1.3 | pos_text | 1.3 |
| The index of _command_ in message ("-1" if _command_ was not found). The index of _text_ in message ("-1" if _text_ was not found). |
| `+47+` `+65+`
| 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+`
|=== |===
[NOTE] [NOTE]
@@ -1388,12 +1333,10 @@ The result is a hashtable with following keys
---- ----
dict = weechat.info_get_hashtable( dict = weechat.info_get_hashtable(
"irc_message_parse", "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 == { # dict == {
# "tags": "time=2015-06-27T16:40:35.000Z;tag2=value\\sspace", # "tags": "time=2015-06-27T16:40:35.000Z",
# "tag_time": "2015-06-27T16:40:35.000Z",
# "tag_tag2": "value space",
# "message_without_tags": ":nick!user@host PRIVMSG #weechat :hello!", # "message_without_tags": ":nick!user@host PRIVMSG #weechat :hello!",
# "nick": "nick", # "nick": "nick",
# "user": "user", # "user": "user",
@@ -1402,13 +1345,10 @@ dict = weechat.info_get_hashtable(
# "channel": "#weechat", # "channel": "#weechat",
# "arguments": "#weechat :hello!", # "arguments": "#weechat :hello!",
# "text": "hello!", # "text": "hello!",
# "param1": "#weechat", # "pos_command": "47",
# "param2": "hello!", # "pos_arguments": "55",
# "num_params": "2", # "pos_channel": "55",
# "pos_command": "65", # "pos_text": "65",
# "pos_arguments": "73",
# "pos_channel": "73",
# "pos_text": "83",
# } # }
---- ----
+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!
+2480 -3457
View File
File diff suppressed because it is too large Load Diff
+1 -14
View File
@@ -1,5 +1,5 @@
# #
# Copyright (C) 2012-2023 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. # This file is part of WeeChat, the extensible chat client.
# #
@@ -19,19 +19,6 @@
if(ENABLE_DOC) 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 # quickstart
add_custom_command( add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.es.html OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.es.html

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