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

Compare commits

..

4 Commits

Author SHA1 Message Date
Sébastien Helleu 90bd688643 core: add CVE id in ChangeLog 2022-04-03 21:12:08 +02:00
Sébastien Helleu e04047be68 Version 3.4.1 2022-03-13 21:01:13 +01:00
Sébastien Helleu 710247891c core: set again TLS verification functions after GnuTLS options are changed (issue #1763)
When changing the options weechat.network.gnutls_ca_system or
weechat.network.gnutls_ca_user, the GnuTLS credentials are freed then allocated
again, but the verification function used to check the certificate on
connection is not set again.

As a consequence, any TLS connection is made without checking the certificate.

This regression was introduced in version 3.2, when the options were changed to
automatically load system certificates without having to give the path, and to
let user give an extra custom path with certificates.
2022-03-13 20:20:03 +01:00
Sébastien Helleu 2e1d16b7e5 Version 3.4.1-dev 2022-03-13 20:19:39 +01:00
854 changed files with 124733 additions and 117038 deletions
+2 -1
View File
@@ -3,5 +3,6 @@
.git* export-ignore
debian-devel export-ignore
debian-stable export-ignore
weechat.spec export-ignore
.mailmap export-ignore
tools/build_debian.sh export-ignore
tools/build-debian.sh export-ignore
+1 -5
View File
@@ -1,14 +1,10 @@
---
name: Question
about: >
Ask a question (please read first FAQ and docs and ask on #weechat channel
before opening any question issue)
about: Ask a question (please read first FAQ and docs)
labels: question
---
<!-- Please read first FAQ/docs and ask on #weechat channel before opening any question issue -->
## Question
+39 -81
View File
@@ -4,25 +4,26 @@ on:
- push
- pull_request
env:
WEECHAT_DEPENDENCIES: devscripts equivs python3-pip 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:
tests_linux:
build_linux:
strategy:
fail-fast: false
matrix:
os:
- ubuntu-22.04
- ubuntu-20.04
config:
- { name: "gcc", cc: "gcc", cxx: "g++", buildargs: "" }
- { name: "gcc_ninja", cc: "gcc", cxx: "g++", buildargs: "-G Ninja" }
- { name: "gcc_no_nls", cc: "gcc", cxx: "g++", buildargs: "-DENABLE_NLS=OFF -DENABLE_DOC=OFF" }
- { name: "gcc_coverage", cc: "gcc", cxx: "g++", buildargs: "-DENABLE_CODE_COVERAGE=ON" }
- { name: "clang", cc: "clang", cxx: "clang++", buildargs: "" }
- { name: "cmake_gcc", cc: "gcc", cxx: "g++", tool: "cmake", args: "" }
- { name: "cmake_gcc_ninja", cc: "gcc", cxx: "g++", tool: "cmake", args: "-G Ninja" }
- { name: "cmake_gcc_no_nls", cc: "gcc", cxx: "g++", tool: "cmake", args: "-DENABLE_NLS=OFF" }
- { name: "cmake_gcc_py2", cc: "gcc", cxx: "g++", tool: "cmake", args: "-DENABLE_PYTHON2=ON" }
- { name: "cmake_gcc_coverage", cc: "gcc", cxx: "g++", tool: "cmake", args: "-DENABLE_CODE_COVERAGE=ON" }
- { name: "cmake_clang", cc: "clang", cxx: "clang++", tool: "cmake", args: "" }
- { name: "autotools_gcc", cc: "gcc", cxx: "g++", tool: "autotools", args: "" }
- { name: "autotools_clang", cc: "clang", cxx: "clang++", tool: "autotools", args: "" }
name: "Tests: ${{ matrix.config.name }} on ${{ matrix.os }}"
name: ${{ matrix.config.name }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
steps:
@@ -31,30 +32,36 @@ jobs:
- name: Install dependencies
run: |
sudo apt-add-repository --yes ppa:ondrej/php
sudo apt-get update -qq
sudo apt-get --yes --no-install-recommends install ${{ env.WEECHAT_DEPENDENCIES }}
# uninstall php imagick as is causes a crash when loading php plugin (see #2009)
sudo apt-get --yes purge php8.1-imagick
sudo apt-get --yes purge php8.1-dev
sudo apt-get --yes --no-install-recommends install devscripts equivs python3-pip libenchant-dev autopoint cmake ninja-build lcov pkg-config libncursesw5-dev gem2deb libperl-dev python2-dev python3-dev libaspell-dev liblua5.3-dev tcl8.6-dev guile-2.0-dev libv8-dev libcurl4-gnutls-dev libgcrypt20-dev libgnutls28-dev zlib1g-dev curl libcpputest-dev php8.0-dev libphp8.0-embed libargon2-0-dev libsodium-dev pylint python3-bandit asciidoctor
sudo -H pip3 install --ignore-installed msgcheck
- name: Test patches
run: ./tools/build-debian.sh test-patches
- name: Check gettext files
run: msgcheck po/*.po
- name: Check shell and Python scripts
run: ./tools/check_scripts.sh
- name: Check Python scripts
run: |
pylint --additional-builtins=_ doc/docgen.py
pylint doc/python_stub.py
pylint tests/scripts/python/testapigen.py tests/scripts/python/testapi.py tests/scripts/python/unparse.py
bandit doc/docgen.py doc/python_stub.py
bandit tests/scripts/python/testapigen.py tests/scripts/python/testapi.py tests/scripts/python/unparse.py
- name: Check Python stub file
run: ./doc/python_stub.py | diff src/plugins/python/weechat.pyi -
- name: Check Curl symbols
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
env:
CC: ${{ matrix.config.cc }}
CXX: ${{ matrix.config.cxx }}
BUILDARGS: ${{ matrix.config.buildargs }}
run: ./tools/build_test.sh
BUILDTOOL: ${{ matrix.config.tool }}
BUILDARGS: ${{ matrix.config.args }}
run: ./tools/build-test.sh
- name: Run WeeChat
env:
@@ -65,10 +72,10 @@ jobs:
weechat --colors
weechat --license
weechat --version
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
weechat --temp-dir --run-command "/debug dirs;/debug libs" --run-command "/quit"
- name: Code coverage
if: ${{ matrix.config.name == 'gcc_coverage' }}
if: ${{ matrix.config.name == 'cmake_gcc_coverage' }}
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
run: |
@@ -78,18 +85,19 @@ jobs:
lcov --list coverage.info
bash <(curl -s https://codecov.io/bash) -f coverage.info || echo 'Codecov error'
tests_macos:
build_macos:
strategy:
fail-fast: false
matrix:
os:
- macos-12
- macos-11
- macos-10.15
config:
- { name: "gcc", cc: "gcc", cxx: "g++" }
- { name: "clang", cc: "clang", cxx: "clang++" }
- { name: "cmake_gcc", cc: "gcc", cxx: "g++" }
- { name: "cmake_clang", cc: "clang", cxx: "clang++" }
name: "Tests: ${{ matrix.config.name }} on ${{ matrix.os }}"
name: ${{ matrix.config.name }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
steps:
@@ -99,20 +107,7 @@ jobs:
- name: Install dependencies
run: |
brew update
# temporary fix, see: https://github.com/actions/setup-python/issues/577
rm -f \
/usr/local/bin/2to3 \
/usr/local/bin/idle3 \
/usr/local/bin/pydoc3 \
/usr/local/bin/python3 \
/usr/local/bin/python3-config \
/usr/local/bin/2to3-3.11 \
/usr/local/bin/idle3.11 \
/usr/local/bin/pydoc3.11 \
/usr/local/bin/python3.11 \
/usr/local/bin/python3.11-config \
;
brew install asciidoctor guile lua pkg-config ruby
brew install asciidoctor lua ruby
- name: Build
env:
@@ -120,7 +115,7 @@ jobs:
CXX: ${{ matrix.config.cxx }}
run: |
mkdir build-tmp && cd build-tmp
cmake .. -DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_DOC_INCOMPLETE=ON -DENABLE_PHP=OFF
cmake .. -DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_PHP=OFF
make VERBOSE=1 -j2
sudo make install
@@ -133,41 +128,4 @@ jobs:
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"
weechat --temp-dir --run-command "/debug dirs;/debug libs" --run-command "/quit"
+55 -9
View File
@@ -1,11 +1,57 @@
# ignored files for Git
/build
/builddir
/debian
/debian-devel/changelog
/debian-devel/*.log
/debian-devel/*-stamp
/debian-stable/*.log
/debian-stable/*-stamp
/release
*.a
*.gmo
*.la
*.lai
*.lo
*.m4
*.o
*.Plo
*.Po
*.so
*.so.0
*.so.0.0.0
*.1
ABOUT-NLS
autom4te*
build/*
builddir/*
compile
config.guess
config.h
config.h.in*
config-git.h
config.log
config.rpath
config.status
config.sub
configure
debian
!tools/debian
debian-devel/changelog
debian-devel/*.log
debian-stable/*.log
depcomp
insert-header.sin
install-sh
intl/*
libtool
ltmain.sh
Makefile
Makefile.in*
Makevars.template
missing
po/*quot*
POTFILES
remove-potcdate.sed
Rules-quot
weechat.pc
weechat-*.cygport
*stamp
stamp*
src/gui/curses/weechat
src/gui/curses/weechat-curses
+1 -3
View File
@@ -11,9 +11,7 @@ Sébastien Helleu <flashcode@flashtux.org> <flashcode>
Sébastien Helleu <flashcode@flashtux.org> <uid67137>
Nils Görs <weechatter@arcor.de>
Ryuunosuke Ayanokouzi <i38w7i3@yahoo.co.jp>
Krzysztof Korościk <soltys@soltys.info>
Krzysztof Korościk <soltys@soltys.info> <soltys1@gmail.com>
Krzysztof Korościk <soltys@soltys.info> <soltys@szluug.org>
Krzysztof Korościk <soltys1@gmail.com> <soltys@szluug.org> <soltys@soltys.info>
Marco Paolone <marcopaolone@gmail.com>
<marcopaolone@gmail.com> <marco@DrB4tch.sitecomwl601>
<mikaela.suomalainen@outlook.com> <mkaysi@outlook.com>
+46
View File
@@ -0,0 +1,46 @@
dist: bionic
sudo: required
language: c
env:
- CC="gcc" CXX="g++" BUILDTOOL="cmake" BUILDARGS=""
- CC="gcc" CXX="g++" BUILDTOOL="cmake" BUILDARGS="-DENABLE_PYTHON2=ON"
# - CC="gcc" CXX="g++" BUILDTOOL="cmake" BUILDARGS="-DENABLE_CODE_COVERAGE=ON" CODECOVERAGE="1"
- CC="gcc" CXX="g++" BUILDTOOL="autotools" BUILDARGS=""
- CC="gcc" CXX="g++" BUILDTOOL="autotools" BUILDARGS="--enable-python2"
- CC="clang" CXX="clang++" BUILDTOOL="cmake" BUILDARGS=""
- CC="clang" CXX="clang++" BUILDTOOL="cmake" BUILDARGS="-DENABLE_PYTHON2=ON"
- CC="clang" CXX="clang++" BUILDTOOL="autotools" BUILDARGS=""
- CC="clang" CXX="clang++" BUILDTOOL="autotools" BUILDARGS="--enable-python2"
matrix:
fast_finish: true
before_script:
- echo 'APT::Install-Recommends "false";' | sudo tee -a /etc/apt/apt.conf
- travis_retry sudo apt-get update -qq
- travis_retry sudo apt-get -y install devscripts equivs python-pip libenchant-dev autopoint cmake lcov pkg-config libncursesw5-dev gem2deb libperl-dev python-dev python3-dev libaspell-dev liblua5.3-dev tcl8.6-dev guile-2.0-dev libv8-dev libcurl4-gnutls-dev libgcrypt20-dev libgnutls28-dev zlib1g-dev curl libcpputest-dev php7.2-dev libphp7.2-embed libargon2-0-dev libsodium-dev pylint3
- travis_retry sudo gem install asciidoctor
- travis_retry sudo -H pip install --ignore-installed msgcheck
- phpenv local system
# work around broken travis environment variables, see https://github.com/travis-ci/travis-ci/issues/5301
- unset PYTHON_CFLAGS
script:
- ./tools/build-test.sh
- msgcheck po/*.po
- pylint3 --version
- pylint3 --additional-builtins=_ doc/docgen.py
- pylint3 tests/scripts/python/testapigen.py
- pylint3 tests/scripts/python/testapi.py
- pylint3 tests/scripts/python/unparse.py
- ./tools/build-debian.sh test-patches
after_success:
- weechat --help
- weechat-curses --help
- weechat --colors
- weechat --license
- weechat --version
- weechat --temp-dir --run-command "/debug dirs;/debug libs" --run-command "/quit"
# - if [ "$CODECOVERAGE" = "1" ]; then bash <(curl -s https://codecov.io/bash) -f coverage.info || echo "Codecov error"; fi
+3 -5
View File
@@ -77,9 +77,8 @@ Alphabetically:
* Krzysztof Koroscik (soltys)
* Kyle Fuller (kylef)
* Kyle Sabo
* Latchezar Tzvetkoff
* Lázaro A.
* Leonid Evdokimov
* Lázaro A.
* Linus Heckemann
* Maarten de Vries
* Mantas Mikulėnas (grawity)
@@ -123,7 +122,6 @@ Alphabetically:
* Rudolf Polzer (divVerent)
* Ruslan Bekenev
* Ryan Farley
* Ryan Qian
* Ryuunosuke Ayanokouzi
* scumjr
* Sergio Durigan Junior
@@ -149,7 +147,6 @@ Alphabetically:
* Vasco Almeida
* Victorhck
* Voroskoi
* wfrsk
* Wojciech Kwolek
* W. Trevor King
* Yannick Palanque
@@ -158,4 +155,5 @@ Alphabetically:
== Contact
See the https://weechat.org/about/support/[support page].
See https://weechat.org/files/doc/devel/weechat_user.en.html#support[user's guide]
or https://weechat.org/about/support
+105 -105
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) 2008-2009 Emmanuel Bouthenot <kolter@openics.org>
#
@@ -25,29 +25,22 @@ project(weechat C)
# CMake options
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)
# compiler options
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 -fms-extensions -Wall -Wextra -Werror-implicit-function-declaration")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsigned-char -fms-extensions -Wall -Wextra")
if (CMAKE_C_COMPILER_ID STREQUAL "GNU")
# extra options specific to gcc/g++
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wformat-overflow=2 -Wformat-truncation=2")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wformat-overflow=2 -Wformat-truncation=2")
endif()
# version
execute_process(COMMAND "${CMAKE_SOURCE_DIR}/version.sh" devel-major OUTPUT_VARIABLE VERSION_MAJOR)
execute_process(COMMAND "${CMAKE_SOURCE_DIR}/version.sh" devel-minor OUTPUT_VARIABLE VERSION_MINOR)
execute_process(COMMAND "${CMAKE_SOURCE_DIR}/version.sh" devel-patch OUTPUT_VARIABLE VERSION_PATCH)
execute_process(COMMAND ${CMAKE_SOURCE_DIR}/version.sh devel-major OUTPUT_VARIABLE VERSION_MAJOR)
execute_process(COMMAND ${CMAKE_SOURCE_DIR}/version.sh devel-minor OUTPUT_VARIABLE VERSION_MINOR)
execute_process(COMMAND ${CMAKE_SOURCE_DIR}/version.sh devel-patch OUTPUT_VARIABLE VERSION_PATCH)
string(REGEX REPLACE "\n" "" VERSION_MAJOR "${VERSION_MAJOR}")
string(REGEX REPLACE "\n" "" VERSION_MINOR "${VERSION_MINOR}")
string(REGEX REPLACE "\n" "" VERSION_PATCH "${VERSION_PATCH}")
if(VERSION_PATCH STREQUAL "")
set(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}")
set(VERSION ${VERSION_MAJOR}.${VERSION_MINOR})
else()
set(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
set(VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH})
endif()
# license
@@ -66,68 +59,68 @@ set(PKG_STRING "${PROJECT_NAME} ${VERSION}")
string(REPLACE "\";\"" "\ " PKG_STRING ${PKG_STRING})
if(NOT DEFINED LIBDIR)
set(LIBDIR "${CMAKE_INSTALL_PREFIX}/lib")
set(LIBDIR ${CMAKE_INSTALL_PREFIX}/lib)
endif()
if(NOT DEFINED WEECHAT_LIBDIR)
set(WEECHAT_LIBDIR "${LIBDIR}/${PROJECT_NAME}")
set(WEECHAT_LIBDIR ${LIBDIR}/${PROJECT_NAME})
endif()
if(NOT DEFINED DATAROOTDIR)
set(DATAROOTDIR "${CMAKE_INSTALL_PREFIX}/share")
set(DATAROOTDIR ${CMAKE_INSTALL_PREFIX}/share)
endif()
if(NOT DEFINED WEECHAT_SHAREDIR)
set(WEECHAT_SHAREDIR "${DATAROOTDIR}/weechat")
set(WEECHAT_SHAREDIR ${DATAROOTDIR}/weechat)
endif()
if(NOT DEFINED MANDIR)
set(MANDIR "${DATAROOTDIR}/man")
set(MANDIR ${DATAROOTDIR}/man)
endif()
if(NOT DEFINED LOCALEDIR)
set(LOCALEDIR "${DATAROOTDIR}/locale")
set(LOCALEDIR ${DATAROOTDIR}/locale)
endif()
if(DEFINED INCLUDEDIR)
set(INCLUDEDIR "${INCLUDEDIR}/${PROJECT_NAME}")
set(INCLUDEDIR ${INCLUDEDIR}/${PROJECT_NAME})
else()
set(INCLUDEDIR "${CMAKE_INSTALL_PREFIX}/include/${PROJECT_NAME}")
set(INCLUDEDIR ${CMAKE_INSTALL_PREFIX}/include/${PROJECT_NAME})
endif()
option(ENABLE_NCURSES "Compile the Ncurses interface" ON)
option(ENABLE_HEADLESS "Compile the headless binary" ON)
option(ENABLE_NLS "Enable Native Language Support" ON)
option(ENABLE_LARGEFILE "Enable Large File Support" ON)
option(ENABLE_ALIAS "Enable Alias plugin" ON)
option(ENABLE_BUFLIST "Enable Buflist plugin" ON)
option(ENABLE_CHARSET "Enable Charset plugin" ON)
option(ENABLE_EXEC "Enable Exec plugin" ON)
option(ENABLE_FIFO "Enable FIFO plugin" ON)
option(ENABLE_FSET "Enable Fast Set plugin" ON)
option(ENABLE_IRC "Enable IRC plugin" ON)
option(ENABLE_LOGGER "Enable Logger plugin" ON)
option(ENABLE_RELAY "Enable Relay plugin" ON)
option(ENABLE_SCRIPT "Enable Script plugin (script manager)" ON)
option(ENABLE_SCRIPTS "Enable script plugins (perl, python, )" ON)
option(ENABLE_PERL "Enable Perl scripting language" ON)
option(ENABLE_PYTHON "Enable Python scripting language" ON)
option(ENABLE_RUBY "Enable Ruby scripting language" ON)
option(ENABLE_LUA "Enable Lua scripting language" ON)
option(ENABLE_TCL "Enable Tcl scripting language" ON)
option(ENABLE_GUILE "Enable Scheme (guile) scripting language" ON)
option(ENABLE_JAVASCRIPT "Enable JavaScript scripting language" OFF)
option(ENABLE_PHP "Enable PHP scripting language" ON)
option(ENABLE_SPELL "Enable Spell checker plugin" ON)
option(ENABLE_ENCHANT "Use Enchant lib in Spell checker plugin" OFF)
option(ENABLE_TRIGGER "Enable Trigger plugin" ON)
option(ENABLE_TYPING "Enable Typing plugin" ON)
option(ENABLE_XFER "Enable Xfer plugin" ON)
option(ENABLE_MAN "Enable build of man page" OFF)
option(ENABLE_DOC "Enable build of documentation" OFF)
option(ENABLE_DOC_INCOMPLETE "Enable incomplete doc" OFF)
option(ENABLE_TESTS "Enable tests" OFF)
option(ENABLE_CODE_COVERAGE "Enable code coverage" OFF)
option(ENABLE_NCURSES "Compile the Ncurses interface" ON)
option(ENABLE_HEADLESS "Compile the headless binary (required for tests)" ON)
option(ENABLE_NLS "Enable Native Language Support" ON)
option(ENABLE_LARGEFILE "Enable Large File Support" ON)
option(ENABLE_ALIAS "Enable Alias plugin" ON)
option(ENABLE_BUFLIST "Enable Buflist plugin" ON)
option(ENABLE_CHARSET "Enable Charset plugin" ON)
option(ENABLE_EXEC "Enable Exec plugin" ON)
option(ENABLE_FIFO "Enable FIFO plugin" ON)
option(ENABLE_FSET "Enable Fast Set plugin" ON)
option(ENABLE_IRC "Enable IRC plugin" ON)
option(ENABLE_LOGGER "Enable Logger plugin" ON)
option(ENABLE_RELAY "Enable Relay plugin" ON)
option(ENABLE_SCRIPT "Enable Script plugin (script manager)" ON)
option(ENABLE_SCRIPTS "Enable script plugins (perl, python, ...)" ON)
option(ENABLE_PERL "Enable Perl 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_LUA "Enable Lua scripting language" ON)
option(ENABLE_TCL "Enable Tcl scripting language" ON)
option(ENABLE_GUILE "Enable Scheme (guile) scripting language" ON)
option(ENABLE_JAVASCRIPT "Enable JavaScript scripting language" OFF)
option(ENABLE_PHP "Enable PHP scripting language" ON)
option(ENABLE_SPELL "Enable Spell checker plugin" ON)
option(ENABLE_ENCHANT "Enable Enchant lib for Spell checker plugin" OFF)
option(ENABLE_TRIGGER "Enable Trigger plugin" ON)
option(ENABLE_TYPING "Enable Typing plugin" ON)
option(ENABLE_XFER "Enable Xfer plugin" ON)
option(ENABLE_MAN "Enable build of man page" OFF)
option(ENABLE_DOC "Enable build of documentation" OFF)
option(ENABLE_TESTS "Enable tests" OFF)
option(ENABLE_CODE_COVERAGE "Enable code coverage" OFF)
# code coverage
add_library(coverage_config INTERFACE)
@@ -136,29 +129,6 @@ if(ENABLE_CODE_COVERAGE)
target_link_libraries(coverage_config INTERFACE --coverage)
endif()
# headless mode is required for documentation
if(ENABLE_DOC AND NOT ENABLE_HEADLESS)
message(FATAL_ERROR "Headless mode is required to build documentation.")
endif()
# all plugins (except javascript) are required for documentation
if(ENABLE_DOC AND NOT ENABLE_DOC_INCOMPLETE
AND (NOT ENABLE_NLS OR NOT ENABLE_ALIAS OR NOT ENABLE_BUFLIST
OR NOT ENABLE_CHARSET OR NOT ENABLE_EXEC OR NOT ENABLE_FIFO
OR NOT ENABLE_FSET OR NOT ENABLE_IRC OR NOT ENABLE_LOGGER
OR NOT ENABLE_RELAY OR NOT ENABLE_SCRIPT OR NOT ENABLE_SCRIPTS
OR NOT ENABLE_PERL OR NOT ENABLE_PYTHON OR NOT ENABLE_RUBY
OR NOT ENABLE_LUA OR NOT ENABLE_TCL OR NOT ENABLE_GUILE
OR NOT ENABLE_PHP OR NOT ENABLE_SPELL OR NOT ENABLE_TRIGGER
OR NOT ENABLE_TYPING OR NOT ENABLE_XFER))
message(
FATAL_ERROR
" All plugins are required to build documentation.\n"
" If you really want to build incomplete docs, enable this option:\n"
" -DENABLE_DOC_INCOMPLETE=ON"
)
endif()
# headless mode is required for tests
if(ENABLE_TESTS AND NOT ENABLE_HEADLESS)
message(FATAL_ERROR "Headless mode is required for tests.")
@@ -181,8 +151,6 @@ endif()
add_definitions(-DHAVE_CONFIG_H)
include(FindPkgConfig)
include(CheckIncludeFiles)
include(CheckFunctionExists)
include(CheckSymbolExists)
@@ -200,6 +168,20 @@ if(ENABLE_LARGEFILE)
add_definitions(-D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -D_LARGE_FILES)
endif()
# Check for Gettext
if(ENABLE_NLS)
find_package(Gettext)
if(GETTEXT_FOUND)
add_definitions(-DENABLE_NLS)
find_package(Intl)
if(Intl_FOUND)
list(APPEND EXTRA_LIBS "${Intl_LIBRARIES}")
endif()
else()
message(SEND_ERROR "Gettext not found")
endif()
endif()
# Check for libgcrypt
find_package(GCRYPT REQUIRED)
add_definitions(-DHAVE_GCRYPT)
@@ -214,9 +196,7 @@ list(APPEND EXTRA_LIBS gnutls)
# Check for zlib
find_package(ZLIB REQUIRED)
# Check for zstd
pkg_check_modules(LIBZSTD REQUIRED libzstd)
add_definitions(-DHAVE_ZLIB)
# Check for iconv
find_package(Iconv)
@@ -244,13 +224,7 @@ endif()
add_subdirectory(icons)
if(ENABLE_NLS)
find_package(Gettext REQUIRED)
add_definitions(-DENABLE_NLS)
find_package(Intl REQUIRED)
list(APPEND EXTRA_LIBS "${Intl_LIBRARIES}")
add_subdirectory(po)
else()
add_custom_target(translations COMMAND true)
endif()
add_subdirectory(src)
@@ -264,16 +238,13 @@ if(ENABLE_TESTS)
else()
message(SEND_ERROR "CppUTest not found")
endif()
else()
enable_testing()
add_test(NAME notests COMMAND true)
endif()
configure_file(config.h.cmake config.h @ONLY)
# set the git version in "config-git.h"
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}"
)
@@ -289,7 +260,7 @@ add_custom_target(uninstall
add_custom_target(dist
"${CMAKE_CURRENT_SOURCE_DIR}/tools/makedist.sh" "${VERSION}" "HEAD" "${CMAKE_CURRENT_BINARY_DIR}"
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
# pkgconfig file
@@ -298,23 +269,52 @@ set(prefix "${CMAKE_INSTALL_PREFIX}")
set(exec_prefix "\${prefix}")
string(REPLACE "${CMAKE_INSTALL_PREFIX}" "\${prefix}" libdir "${LIBDIR}")
set(includedir "\${prefix}/include")
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/weechat.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/weechat.pc" @ONLY)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/weechat.pc" DESTINATION "${LIBDIR}/pkgconfig")
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/weechat.pc.in ${CMAKE_CURRENT_BINARY_DIR}/weechat.pc @ONLY)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat.pc DESTINATION ${LIBDIR}/pkgconfig)
# cygport file (used to build Cygwin packages)
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/weechat.cygport.in" "${CMAKE_CURRENT_BINARY_DIR}/weechat-${VERSION}-1.cygport" @ONLY)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/weechat.cygport.in ${CMAKE_CURRENT_BINARY_DIR}/weechat-${VERSION}-1.cygport @ONLY)
# install some files (only on Cygwin)
if(CYGWIN)
install(FILES
"${CMAKE_CURRENT_SOURCE_DIR}/AUTHORS.adoc"
"${CMAKE_CURRENT_SOURCE_DIR}/ChangeLog.adoc"
"${CMAKE_CURRENT_SOURCE_DIR}/Contributing.adoc"
"${CMAKE_CURRENT_SOURCE_DIR}/README.adoc"
"${CMAKE_CURRENT_SOURCE_DIR}/ReleaseNotes.adoc"
DESTINATION "${DATAROOTDIR}/doc/${PROJECT_NAME}"
${CMAKE_CURRENT_SOURCE_DIR}/AUTHORS.adoc
${CMAKE_CURRENT_SOURCE_DIR}/ChangeLog.adoc
${CMAKE_CURRENT_SOURCE_DIR}/Contributing.adoc
${CMAKE_CURRENT_SOURCE_DIR}/README.adoc
${CMAKE_CURRENT_SOURCE_DIR}/ReleaseNotes.adoc
DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME}
)
endif()
# desktop file
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/weechat.desktop" DESTINATION "${DATAROOTDIR}/applications")
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/weechat.desktop DESTINATION ${DATAROOTDIR}/applications)
# packages
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Fast, light and extensible chat client")
set(CPACK_PACKAGE_VENDOR "Sébastien Helleu")
set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README.adoc")
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING")
set(CPACK_PACKAGE_VERSION_MAJOR ${VERSION_MAJOR})
set(CPACK_PACKAGE_VERSION_MINOR ${VERSION_MINOR})
set(CPACK_PACKAGE_VERSION_PATCH ${VERSION_PATCH})
# binary package
set(CPACK_GENERATOR "STGZ;TGZ;TBZ2")
set(CPACK_PACKAGE_FILE_NAME weechat-binary-${VERSION})
# source package
set(CPACK_SOURCE_GENERATOR "TGZ;TBZ2")
set(CPACK_SOURCE_PACKAGE_FILE_NAME weechat-${VERSION})
set(CPACK_SOURCE_IGNORE_FILES
"/\\\\.git" "/build/" "/m4/"
"/autom4te\\\\.cache/" "/ABOUT-NLS$" "/config\\\\.guess$" "/config\\\\.h$"
"/config\\\\.h.in$" "/config\\\\.log$" "/config\\\\.rpath$"
"/config\\\\.status$" "/config\\\\.sub$" "/configure$" "/depcomp$"
"/install-sh$" "/missing$" "/intl/" "/libtool$" "/\\\\.libs/"
"/ltmain\\\\.sh$" "/\\\\.deps/" "/html/" "/html1/" "/Makefile$"
"/Makefile\\\\.in$" "stamp" "/po/.*\\\\.header$" "\\\\.gmo$" "~$" "\\\\.o$"
"\\\\.lo$" "\\\\.a$" "\\\\.la$" "\\\\.lai$" "\\\\.Plo$" "/weechat$"
)
include(CPack)
+474 -927
View File
File diff suppressed because it is too large Load Diff
+7 -26
View File
@@ -29,8 +29,8 @@ please include:
_WeeChat 1.7-dev (git: v1.6-6-g997f47f)_. +
If WeeChat does not start at all, please include the version displayed by
`weechat --help` (or the version installed with your package manager).
* Your *operating system*: its name and version (examples: Linux Debian Bookworm,
FreeBSD 13.0, Windows/Cygwin 64-bit, Windows/Ubuntu 64-bit...).
* Your *operating system*: its name and version (examples: Linux Debian Wheezy,
FreeBSD 10.0, Windows/Cygwin 64-bit, Windows/Ubuntu 64-bit...).
* The *steps to reproduce*: if possible, please include a reproducible example:
explain the steps which led you to the problem. +
It's even better if you can reproduce the problem with a new config (and no
@@ -38,7 +38,8 @@ please include:
problem here.
* The *gdb's backtrace* (only for a crash): if you can reproduce the crash
(or if you have a core file), please include the backtrace from gdb (look at
https://weechat.org/doc/weechat/user/#report_crashes[User's guide] for more info).
https://weechat.org/files/doc/devel/weechat_user.en.html#report_crashes[User's guide]
for more info).
* The *actual result*.
* The *expected result*: the correct result you are expecting.
@@ -68,14 +69,14 @@ time, for https://github.com/weechat/weechat[WeeChat] and the website
https://github.com/weechat/weechat.org[weechat.org].
To start a translation in a new language (not yet supported), please look at
https://weechat.org/doc/weechat/dev/#translations[translations]
https://weechat.org/files/doc/devel/weechat_dev.en.html#translations[translations]
in Developer's guide.
== Feature requests
WeeChat is under active development, so your idea may already have been
implemented, or scheduled for a future version (you can check in
https://weechat.org/dev/[roadmap] or
https://weechat.org/dev[roadmap] or
https://github.com/weechat/weechat/milestones[milestones] on GitHub.
Pull requests on GitHub are welcome for minor new features.
@@ -84,26 +85,6 @@ For major new features, it's better to discuss about it in IRC
(server: _irc.libera.chat_, channel _#weechat_).
Before submitting any pull request, be sure you have read the
https://weechat.org/doc/weechat/dev/#coding_rules[coding rules]
https://weechat.org/files/doc/devel/weechat_dev.en.html#coding_rules[coding rules]
in Developer's guide, which contains info about styles used, naming convention
and other useful info.
== Semantic versioning
Since version 4.0.0, WeeChat is following a "practical" semantic versioning.
It is based on https://semver.org/[Semantic Versioning] but in a less strict way: breaking changes in API with low user impact don't bump the major version.
The version number is on three digits `X.Y.Z`, where:
* `X` is the major version
* `Y` is the minor version
* `Z` is the patch version.
Rules to increment the version number:
* the *major version* number (`X`) is incremented only when intentional breaking changes target feature areas that are actively consumed by users, scripts or C plugin API
* the *minor version* number (`Y`) is incremented for any new release of WeeChat that includes new features and bug fixes, possibly breaking API with low impact on users
* the *patch version* number (`Z`) is reserved for releases that address severe bugs or security issues found after the release.
For more information, see the https://specs.weechat.org/specs/2023-003-practical-semantic-versioning.html[specification].
+80
View File
@@ -0,0 +1,80 @@
#
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2005 Julien Louis <ptitlouis@sysif.net>
# Copyright (C) 2006-2009 Emmanuel Bouthenot <kolter@openics.org>
#
# 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/>.
#
# This target will update file config-git.h with output of command "git describe"
# (if needed, and only for a devel/rc version).
BUILT_SOURCES = build-config-git.h
build-config-git.h:
-$(abs_top_srcdir)/tools/git-version.sh "$(abs_top_srcdir)" "$(VERSION)" config-git.h
if TESTS
tests_dir = tests
endif
SUBDIRS = icons po doc intl src $(tests_dir)
EXTRA_DIST = AUTHORS.adoc \
ChangeLog.adoc \
Contributing.adoc \
README.adoc \
ReleaseNotes.adoc \
CMakeLists.txt \
config.rpath \
config.h.cmake \
cmake/CMakeParseArguments.cmake \
cmake/FindAsciidoctor.cmake \
cmake/FindAspell.cmake \
cmake/FindCppUTest.cmake \
cmake/FindENCHANT.cmake \
cmake/FindGCRYPT.cmake \
cmake/FindGettext.cmake \
cmake/FindGnuTLS.cmake \
cmake/FindGuile.cmake \
cmake/FindIconv.cmake \
cmake/FindLua.cmake \
cmake/FindNcurses.cmake \
cmake/FindPerl.cmake \
cmake/FindPkgConfig.cmake \
cmake/FindPython.cmake \
cmake/FindRuby.cmake \
cmake/FindV8.cmake \
cmake/FindZLIB.cmake \
cmake/cmake_uninstall.cmake.in \
po/CMakeLists.txt \
po/srcfiles.cmake \
tools/build-test.sh \
tools/git-version.sh \
tools/makedist.sh \
version.sh \
weechat.desktop \
weechat.pc.in \
weechat.cygport.in
ACLOCAL_AMFLAGS = -I m4
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = weechat.pc
desktopdir = $(datadir)/applications
desktop_DATA = weechat.desktop
clean-local:
$(RM) config-git.h
+8 -10
View File
@@ -23,13 +23,13 @@ Homepage: https://weechat.org/
== Features
* *Modular chat client*: WeeChat has a lightweight core and optional https://weechat.org/doc/weechat/user/#plugins[plugins]. All plugins (including https://weechat.org/doc/weechat/user/#irc[IRC]) are independent and can be unloaded.
* *Modular chat client*: WeeChat has a lightweight core and optional https://weechat.org/files/doc/stable/weechat_user.en.html#plugins[plugins]. All plugins (including https://weechat.org/files/doc/stable/weechat_user.en.html#irc_plugin[IRC]) are independent and can be unloaded.
* *Multi-platform*: WeeChat runs on GNU/Linux, *BSD, GNU/Hurd, Haiku, macOS and Windows (Bash/Ubuntu and Cygwin).
* *Multi-protocols*: WeeChat is designed to support multiple protocols by plugins, like IRC.
* *Standards-compliant*: the IRC plugin is compliant with RFCs https://datatracker.ietf.org/doc/html/rfc1459[1459], https://datatracker.ietf.org/doc/html/rfc2810[2810], https://datatracker.ietf.org/doc/html/rfc2811[2811], https://datatracker.ietf.org/doc/html/rfc2812[2812], https://datatracker.ietf.org/doc/html/rfc2813[2813] and https://datatracker.ietf.org/doc/html/rfc7194[7194].
* *Standards-compliant*: the IRC plugin is compliant with RFCs https://tools.ietf.org/html/rfc1459[1459], https://tools.ietf.org/html/rfc2810[2810], https://tools.ietf.org/html/rfc2811[2811], https://tools.ietf.org/html/rfc2812[2812], and https://tools.ietf.org/html/rfc2813[2813].
* *Small, fast, and very light*: the core is and should stay as light and fast as possible.
* *Customizable and extensible*: there are a lot of options to customize WeeChat, and it is extensible with C plugins and https://weechat.org/scripts/[scripts] (https://weechat.org/scripts/language/perl/[Perl], https://weechat.org/scripts/language/python/[Python], https://weechat.org/scripts/language/ruby[Ruby], https://weechat.org/scripts/language/lua/[Lua], https://weechat.org/scripts/language/tcl/[Tcl], https://weechat.org/scripts/language/guile/[Scheme], https://weechat.org/scripts/language/javascript/[JavaScript] and https://weechat.org/scripts/language/php/[PHP]).
* *Fully documented*: there is comprehensive https://weechat.org/doc/weechat/[documentation], which is https://weechat.org/doc/weechat/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.
* *Free software*: WeeChat is released under https://www.gnu.org/licenses/gpl-3.0.html[GPLv3].
@@ -39,17 +39,15 @@ On WeeChat's website you can find https://weechat.org/about/screenshots/[more sc
== Installation
WeeChat can be installed using your favorite package manager (recommended) or by compiling it yourself.
WeeChat can be installed using your favorite package manager (recommended)
or by compiling it yourself.
For detailed instructions, please check the https://weechat.org/doc/weechat/user/#install[WeeChat user's guide].
== Semantic versioning
WeeChat is following a "practical" semantic versioning, see file link:Contributing.adoc#semantic-versioning[Contributing.adoc].
For detailed instructions, please check the
https://weechat.org/files/doc/stable/weechat_user.en.html#install[WeeChat user's guide].
== 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.
+301 -906
View File
File diff suppressed because it is too large Load Diff
Executable
+69
View File
@@ -0,0 +1,69 @@
#!/bin/sh
#
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2005 Julien Louis <ptitlouis@sysif.net>
# Copyright (C) 2005-2006 Emmanuel Bouthenot <kolter@openics.org>
#
# 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/>.
#
###
### common stuff
###
DIR=$(cd "$(dirname "$0")" || exit 1; pwd)
cd "$DIR" || exit 1
AUTOGEN_LOG=autogen.log
err ()
{
echo "-------"
echo "Error :"
echo "---8<-----------------------------------"
cat "$AUTOGEN_LOG"
echo "----------------------------------->8---"
exit 1
}
run ()
{
printf "Running \"%s\"..." "$@"
if eval "$@" >"$AUTOGEN_LOG" 2>&1 ; then
echo " OK"
else
echo " FAILED"
err
fi
}
# remove autotools stuff
run "rm -f config.h.in"
run "rm -f aclocal.m4 configure config.log config.status"
run "rm -rf autom4te*.cache"
# remove libtool stuff
run "rm -f libtool"
# remove gettext stuff
run "rm -f ABOUT-NLS"
run "rm -rf intl"
# execute autoreconf cmds
run "autoreconf -vi"
# ending
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.
#
+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.
#
+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.
#
+2 -2
View File
@@ -27,11 +27,11 @@ else()
find_path(ENCHANT_INCLUDE_DIR
NAMES enchant++.h
HINTS ${PC_ENCHANT_INCLUDEDIR} ${PC_ENCHANT_INCLUDE_DIRS}
PATH_SUFFIXES enchant-2 enchant
PATH_SUFFIXES enchant
)
find_library(ENCHANT_LIBRARIES
NAMES enchant-2 enchant
NAMES enchant
HINTS ${PC_ENCHANT_LIBDIR}
${PC_ENCHANT_LIBRARY_DIRS}
)
+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.
#
+21 -23
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) 2009 Emmanuel Bouthenot <kolter@openics.org>
#
@@ -45,28 +45,26 @@ set(CMAKE_REQUIRED_INCLUDES ${LIBINTL_INCLUDE})
check_include_files(libintl.h HAVE_LIBINTL_H)
if(NOT HAVE_LIBINTL_H)
message(SEND_ERROR "Header libintl.h not found, required if ENABLE_NLS is enabled")
endif()
check_function_exists(dgettext LIBC_HAS_DGETTEXT)
if(LIBC_HAS_DGETTEXT)
set(GETTEXT_FOUND TRUE)
else()
find_library(LIBINTL_LIBRARY NAMES intl
PATHS
/usr/local/lib
/usr/lib
)
if(LIBINTL_LIBRARY)
if(${CMAKE_SYSTEM_NAME} STREQUAL "OpenBSD")
set(CMAKE_REQUIRED_LIBRARIES "iconv")
check_library_exists(${LIBINTL_LIBRARY} "libintl_dgettext" "" LIBINTL_HAS_DGETTEXT)
else()
check_library_exists(${LIBINTL_LIBRARY} "dgettext" "" LIBINTL_HAS_DGETTEXT)
endif()
if(LIBINTL_HAS_DGETTEXT)
set(GETTEXT_FOUND TRUE)
if(HAVE_LIBINTL_H)
check_function_exists(dgettext LIBC_HAS_DGETTEXT)
if(LIBC_HAS_DGETTEXT)
set(GETTEXT_FOUND TRUE)
else()
find_library(LIBINTL_LIBRARY NAMES intl
PATHS
/usr/local/lib
/usr/lib
)
if(LIBINTL_LIBRARY)
if(${CMAKE_SYSTEM_NAME} STREQUAL "OpenBSD")
set(CMAKE_REQUIRED_LIBRARIES "iconv")
check_library_exists(${LIBINTL_LIBRARY} "libintl_dgettext" "" LIBINTL_HAS_DGETTEXT)
else()
check_library_exists(${LIBINTL_LIBRARY} "dgettext" "" LIBINTL_HAS_DGETTEXT)
endif()
if(LIBINTL_HAS_DGETTEXT)
set(GETTEXT_FOUND TRUE)
endif()
endif()
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>
# Copyright (C) 2009 Emmanuel Bouthenot <kolter@openics.org>
#
# This file is part of WeeChat, the extensible chat client.
+1 -1
View File
@@ -1,5 +1,5 @@
#
# Copyright (C) 2011-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.
#
+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.
#
+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.
#
+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.
#
+2 -3
View File
@@ -1,6 +1,6 @@
#
# 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.
#
@@ -29,7 +29,6 @@ endif()
if(NOT PHP_FOUND)
find_program(PHP_CONFIG_EXECUTABLE NAMES
php-config8.2 php-config82
php-config8.1 php-config81
php-config8.0 php-config80
php-config8
@@ -48,7 +47,7 @@ if(NOT PHP_FOUND)
execute_process(COMMAND ${PHP_CONFIG_EXECUTABLE} --version OUTPUT_VARIABLE PHP_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
if(${PHP_VERSION} MATCHES "^[78]")
find_library(PHP_LIB
NAMES php8.2 php82 php8.1 php81 php8.0 php80 php8 php7.4 php74 php7.3 php73 php7.2 php72 php7.1 php71 php7.0 php70 php7 php
NAMES php8.1 php8.0 php8 php7.4 php7.3 php7.2 php7.1 php7.0 php7 php
HINTS ${PHP_LIB_PREFIX} ${PHP_LIB_PREFIX}/lib ${PHP_LIB_PREFIX}/lib64
)
if(PHP_LIB)
+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.
#
+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>
#
# 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_LDFLAGS = python compiler options for linking
pkg_check_modules(PYTHON python3-embed IMPORTED_TARGET GLOBAL)
if(NOT PYTHON_FOUND)
pkg_check_modules(PYTHON python3 IMPORTED_TARGET GLOBAL)
include(FindPkgConfig)
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()
+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.
#
@@ -37,7 +37,7 @@ if(PKG_CONFIG_FOUND)
# set specific search path for macOS
set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:/usr/local/opt/ruby/lib/pkgconfig")
endif()
pkg_search_module(RUBY ruby-3.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)
pkg_search_module(RUBY ruby-3.0 ruby-2.7 ruby-2.6 ruby-2.5 ruby-2.4 ruby-2.3 ruby-2.2 ruby-2.1 ruby-2.0 ruby-1.9 ruby)
if(RUBY_FOUND AND ${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
# FIXME: weird hack: hardcoding the Ruby lib location on macOS
set(RUBY_LDFLAGS "${RUBY_LDFLAGS} -L/usr/local/opt/ruby/lib")
+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.
#
+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.
#
+1
View File
@@ -1,3 +1,4 @@
#cmakedefine HAVE_LIBINTL_H
#cmakedefine HAVE_SYS_RESOURCE_H
#cmakedefine HAVE_FLOCK
#cmakedefine HAVE_LANGINFO_CODESET
+1585
View File
File diff suppressed because it is too large Load Diff
+2 -4
View File
@@ -4,7 +4,6 @@ Priority: optional
Maintainer: Sébastien Helleu <flashcode@flashtux.org>
Build-Depends:
asciidoctor (>= 1.5.4),
ruby-pygments.rb,
debhelper (>= 12),
cmake, pkg-config,
libncursesw5-dev,
@@ -14,13 +13,12 @@ Build-Depends:
libaspell-dev,
liblua5.3-dev,
tcl8.6-dev,
guile-3.0-dev,
php-dev, libphp-embed, libargon2-dev, libsodium-dev,
guile-2.2-dev,
php-dev, libphp-embed, libargon2-0-dev, libsodium-dev,
libxml2-dev,
libcurl4-gnutls-dev,
libgcrypt20-dev,
libgnutls28-dev,
libzstd-dev,
zlib1g-dev
Standards-Version: 4.6.0.1
Homepage: https://weechat.org/
+13 -3
View File
@@ -4,8 +4,10 @@ export DEB_BUILD_MAINT_OPTIONS=hardening=+all
BUILDDIR = builddir
override_dh_auto_configure:
dh_auto_configure --buildsystem=cmake -- \
$(BUILDDIR)/Makefile:
mkdir -p $(BUILDDIR)
cd $(BUILDDIR) && \
cmake .. \
-DCMAKE_INSTALL_PREFIX:FILEPATH=/usr \
-DLIBDIR=/usr/lib/${DEB_HOST_MULTIARCH} \
-DENABLE_DOC:BOOL=ON \
@@ -16,8 +18,16 @@ override_dh_auto_configure:
-DCMAKE_SKIP_RPATH:BOOL=ON \
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON
override_dh_auto_configure:
# the package also has autotools buildsys and
# debhelper try to use it but that's not needed
echo
override_dh_auto_build: $(BUILDDIR)/Makefile
dh_auto_build
override_dh_installchangelogs:
dh_installchangelogs ChangeLog.adoc
%:
dh $@ --builddirectory=$(BUILDDIR)
dh $@ --builddirectory=$(BUILDDIR) --without autoreconf
-61
View File
@@ -1,64 +1,3 @@
weechat (3.8-1) unstable; urgency=medium
* New upstream release
* Add a patch remove some autotools leftovers
* Update debian/copyright (new year)
* Update debian/rules to remove workarounds which avoid issues with
autotools build system
-- Emmanuel Bouthenot <kolter@debian.org> Sun, 15 Jan 2023 08:34:04 +0000
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
+3 -5
View File
@@ -4,7 +4,6 @@ Priority: optional
Maintainer: Emmanuel Bouthenot <kolter@debian.org>
Build-Depends:
asciidoctor (>= 1.5.4),
ruby-pygments.rb,
debhelper (>= 12),
cmake, pkg-config,
libncursesw5-dev,
@@ -14,15 +13,14 @@ Build-Depends:
libaspell-dev,
liblua5.3-dev,
tcl8.6-dev,
guile-3.0-dev,
php-dev, libphp-embed, libargon2-dev, libsodium-dev,
guile-2.2-dev,
php-dev, libphp-embed, libargon2-0-dev, libsodium-dev,
libxml2-dev,
libcurl4-gnutls-dev,
libgcrypt20-dev,
libgnutls28-dev,
libzstd-dev,
zlib1g-dev
Standards-Version: 4.6.1.0
Standards-Version: 4.6.0.1
Homepage: https://weechat.org/
Vcs-Git: https://salsa.debian.org/kolter/weechat.git
Vcs-Browser: https://salsa.debian.org/kolter/weechat
+1 -1
View File
@@ -4,7 +4,7 @@ Upstream-Contact: Sébastien Helleu <flashcode@flashtux.org>
Source: https://weechat.org/
Files: *
Copyright: 2003-2023, Sébastien Helleu <flashcode@flashtux.org>
Copyright: 2003-2021, Sébastien Helleu <flashcode@flashtux.org>
License: GPL-3+
Files: src/core/wee-command.c
+13 -3
View File
@@ -4,8 +4,10 @@ export DEB_BUILD_MAINT_OPTIONS=hardening=+all
BUILDDIR = builddir
override_dh_auto_configure:
dh_auto_configure --buildsystem=cmake -- \
$(BUILDDIR)/Makefile:
mkdir -p $(BUILDDIR)
cd $(BUILDDIR) && \
cmake .. \
-DCMAKE_INSTALL_PREFIX:FILEPATH=/usr \
-DLIBDIR=/usr/lib/${DEB_HOST_MULTIARCH} \
-DENABLE_DOC:BOOL=ON \
@@ -16,8 +18,16 @@ override_dh_auto_configure:
-DCMAKE_SKIP_RPATH:BOOL=ON \
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON
override_dh_auto_configure:
# the package also has autotools buildsys and
# debhelper try to use it but that's not needed
echo
override_dh_auto_build: $(BUILDDIR)/Makefile
dh_auto_build
override_dh_installchangelogs:
dh_installchangelogs ChangeLog.adoc
%:
dh $@ --builddirectory=$(BUILDDIR)
dh $@ --builddirectory=$(BUILDDIR) --without autoreconf
+33 -298
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>
#
# This file is part of WeeChat, the extensible chat client.
@@ -19,97 +19,10 @@
#
if(ENABLE_MAN OR ENABLE_DOC)
# docs languages
set(AUTOGEN_LANG de en fr it ja pl sr)
set(MAN_LANG cs de en fr it ja pl ru sr)
set(USER_LANG de en fr it ja pl sr)
set(PLUGIN_API_LANG en fr it ja sr)
set(SCRIPTING_LANG de en fr it ja pl sr)
set(FAQ_LANG de en es fr it ja pl sr)
set(QUICKSTART_LANG cs de en es fr it ja pl ru sr)
set(RELAY_LANG en fr ja sr)
set(DEV_LANG en fr ja sr)
find_package(Asciidoctor)
if(ASCIIDOCTOR_FOUND)
# common asciidoctor arguments
set(ASCIIDOCTOR_ARGS
-a experimental
-a reproducible
-a "prewrap!"
-a "webfonts!"
-a icons=font
-a revnumber="${VERSION}"
-a sectanchors
-a source-highlighter=pygments
-a pygments-style=native
-a docinfodir="${CMAKE_CURRENT_SOURCE_DIR}"
-a autogendir="${CMAKE_CURRENT_BINARY_DIR}/autogen"
)
# asciidoctor arguments for user's guide
set(ASCIIDOCTOR_USER_ARGS
-a toc=left
-a toclevels=3
-a sectnums
-a sectnumlevels=2
-a docinfo1
)
# asciidoctor arguments for plugin API reference
set(ASCIIDOCTOR_PLUGIN_API_ARGS
-a toc=left
-a toclevels=3
-a sectnums
-a sectnumlevels=2
-a docinfo1
)
# asciidoctor arguments for scripting guide
set(ASCIIDOCTOR_SCRIPTING_ARGS
-a toc=left
-a toclevels=3
-a sectnums
-a sectnumlevels=2
-a docinfo1
)
# asciidoctor arguments for FAQ
set(ASCIIDOCTOR_FAQ_ARGS
-a toc=left
-a toclevels=2
-a sectnums
-a sectnumlevels=2
-a docinfo1
)
# asciidoctor arguments for quickstart
set(ASCIIDOCTOR_QUICKSTART_ARGS
-a toc=left
-a toclevels=2
-a sectnums
-a sectnumlevels=2
-a docinfo1
)
# asciidoctor arguments for relay protocol
set(ASCIIDOCTOR_RELAY_ARGS
-a toc=left
-a toclevels=3
-a sectnums
-a sectnumlevels=2
-a docinfo1
)
# asciidoctor arguments for developer's guide
set(ASCIIDOCTOR_DEV_ARGS
-a toc=left
-a toclevels=3
-a sectnums
-a sectnumlevels=2
-a docinfo1
)
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
@@ -123,232 +36,54 @@ if(ENABLE_MAN OR ENABLE_DOC)
# 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"
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}"
${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} -o ChangeLog.html "${CMAKE_CURRENT_BINARY_DIR}/ChangeLog-links.adoc"
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}"
${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")
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"
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}"
${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} -o ReleaseNotes.html "${CMAKE_CURRENT_BINARY_DIR}/ReleaseNotes-links.adoc"
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}"
${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")
if(ENABLE_DOC)
set(AUTOGEN_FILES "")
foreach(lang ${AUTOGEN_LANG})
LIST(APPEND AUTOGEN_FILES
# plugin API reference
"${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_api_completions.${lang}.adoc"
"${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_api_config_priority.${lang}.adoc"
"${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_api_hdata.${lang}.adoc"
"${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_api_infolists.${lang}.adoc"
"${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_api_infos.${lang}.adoc"
"${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_api_infos_hashtable.${lang}.adoc"
"${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_api_plugins_priority.${lang}.adoc"
"${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_api_url_options.${lang}.adoc"
# user's guide
"${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_user_commands.${lang}.adoc"
"${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_user_default_aliases.${lang}.adoc"
"${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_user_irc_colors.${lang}.adoc"
"${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_user_options.${lang}.adoc"
)
endforeach()
add_custom_target(doc-autogen ALL
COMMAND "${CMAKE_COMMAND}" -E env "WEECHAT_EXTRA_LIBDIR=${PROJECT_BINARY_DIR}/src" "WEECHAT_DOCGEN_LOCALEDIR=${PROJECT_BINARY_DIR}/po" "${CMAKE_BINARY_DIR}/src/gui/curses/headless/weechat-headless" --temp-dir --doc-gen "${CMAKE_CURRENT_BINARY_DIR}/autogen"
DEPENDS
# the headless binary is required
weechat-headless
# translations must be compiled
translations
# all plugins must be loaded during doc generation
alias buflist charset exec fifo fset guile irc logger lua perl php python relay ruby script spell tcl trigger typing xfer
BYPRODUCTS ${AUTOGEN_FILES}
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
)
endif()
if(ENABLE_MAN)
foreach(lang ${MAN_LANG})
if(${lang} STREQUAL "en")
set(MANDIR_LANG "${MANDIR}/man1")
else()
set(MANDIR_LANG "${MANDIR}/${lang}/man1")
endif()
# man page: weechat
add_custom_command(
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat.${lang}.1"
COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} -b manpage -o "weechat.${lang}.1" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat.1.${lang}.adoc"
DEPENDS
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat.1.${lang}.adoc"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/cmdline_options.${lang}.adoc"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/man.${lang}.adoc"
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
COMMENT "Building weechat.1 (${lang})"
)
add_custom_target(doc-man-weechat-${lang} ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/weechat.${lang}.1")
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/weechat.${lang}.1" DESTINATION "${MANDIR_LANG}" RENAME "weechat.1")
# man page: weechat-headless
if(ENABLE_HEADLESS)
add_custom_command(
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat-headless.${lang}.1"
COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} -b manpage -o "weechat-headless.${lang}.1" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat-headless.1.${lang}.adoc"
DEPENDS
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat-headless.1.${lang}.adoc"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/cmdline_options.${lang}.adoc"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/man.${lang}.adoc"
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
COMMENT "Building weechat-headless.1 (${lang})"
)
add_custom_target(doc-man-weechat-headless-${lang} ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/weechat-headless.${lang}.1")
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/weechat-headless.${lang}.1" DESTINATION "${MANDIR_LANG}" RENAME "weechat-headless.1")
endif()
endforeach()
endif()
if(ENABLE_DOC)
# user's guide
foreach(lang ${USER_LANG})
add_custom_command(
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_user.${lang}.html"
COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_USER_ARGS} -o "weechat_user.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_user.${lang}.adoc"
DEPENDS
"${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_user.${lang}.adoc"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/cmdline_options.${lang}.adoc"
doc-autogen
"${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_user_commands.${lang}.adoc"
"${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_user_default_aliases.${lang}.adoc"
"${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_user_irc_colors.${lang}.adoc"
"${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_user_options.${lang}.adoc"
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
COMMENT "Building weechat_user.${lang}.html"
)
add_custom_target(doc-user-${lang} ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/weechat_user.${lang}.html")
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/weechat_user.${lang}.html" DESTINATION "${DATAROOTDIR}/doc/${PROJECT_NAME}")
endforeach()
# plugin API reference
foreach(lang ${PLUGIN_API_LANG})
add_custom_command(
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_plugin_api.${lang}.html"
COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_PLUGIN_API_ARGS} -o "weechat_plugin_api.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_plugin_api.${lang}.adoc"
DEPENDS
"${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_plugin_api.${lang}.adoc"
doc-autogen
"${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_api_completions.${lang}.adoc"
"${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_api_config_priority.${lang}.adoc"
"${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_api_hdata.${lang}.adoc"
"${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_api_infolists.${lang}.adoc"
"${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_api_infos.${lang}.adoc"
"${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_api_infos_hashtable.${lang}.adoc"
"${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_api_plugins_priority.${lang}.adoc"
"${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_api_url_options.${lang}.adoc"
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
COMMENT "Building weechat_plugin_api.${lang}.html"
)
add_custom_target(doc-plugin-api-${lang} ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/weechat_plugin_api.${lang}.html")
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/weechat_plugin_api.${lang}.html" DESTINATION "${DATAROOTDIR}/doc/${PROJECT_NAME}")
endforeach()
# scripting guide
foreach(lang ${SCRIPTING_LANG})
add_custom_command(
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_scripting.${lang}.html"
COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_SCRIPTING_ARGS} -o "weechat_scripting.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_scripting.${lang}.adoc"
DEPENDS
"${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_scripting.${lang}.adoc"
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
COMMENT "Building weechat_scripting.${lang}.html"
)
add_custom_target(doc-scripting-${lang} ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/weechat_scripting.${lang}.html")
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/weechat_scripting.${lang}.html" DESTINATION "${DATAROOTDIR}/doc/${PROJECT_NAME}")
endforeach()
# FAQ
foreach(lang ${FAQ_LANG})
add_custom_command(
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_faq.${lang}.html"
COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_FAQ_ARGS} -o "weechat_faq.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_faq.${lang}.adoc"
DEPENDS
"${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_faq.${lang}.adoc"
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
COMMENT "Building weechat_faq.${lang}.html"
)
add_custom_target(doc-faq-${lang} ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/weechat_faq.${lang}.html")
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/weechat_faq.${lang}.html" DESTINATION "${DATAROOTDIR}/doc/${PROJECT_NAME}")
endforeach()
# quickstart
foreach(lang ${QUICKSTART_LANG})
add_custom_command(
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.${lang}.html"
COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_QUICKSTART_ARGS} -o "weechat_quickstart.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_quickstart.${lang}.adoc"
DEPENDS
"${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_quickstart.${lang}.adoc"
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
COMMENT "Building weechat_quickstart.${lang}.html"
)
add_custom_target(doc-quickstart-${lang} ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.${lang}.html")
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.${lang}.html" DESTINATION "${DATAROOTDIR}/doc/${PROJECT_NAME}")
endforeach()
# relay protocol
foreach(lang ${RELAY_LANG})
add_custom_command(
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_relay_protocol.${lang}.html"
COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_RELAY_ARGS} -o "weechat_relay_protocol.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_relay_protocol.${lang}.adoc"
DEPENDS
"${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_relay_protocol.${lang}.adoc"
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
COMMENT "Building weechat_relay_protocol.${lang}.html"
)
add_custom_target(doc-relay-protocol-${lang} ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/weechat_relay_protocol.${lang}.html")
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/weechat_relay_protocol.${lang}.html" DESTINATION "${DATAROOTDIR}/doc/${PROJECT_NAME}")
endforeach()
# developer's guide
foreach(lang ${DEV_LANG})
add_custom_command(
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_dev.${lang}.html"
COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_DEV_ARGS} -o "weechat_dev.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_dev.${lang}.adoc"
DEPENDS
"${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_dev.${lang}.adoc"
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
COMMENT "Building weechat_dev.${lang}.html"
)
add_custom_target(doc-dev-${lang} ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/weechat_dev.${lang}.html")
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/weechat_dev.${lang}.html" DESTINATION "${DATAROOTDIR}/doc/${PROJECT_NAME}")
endforeach()
endif()
add_custom_target(rn DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/ReleaseNotes.html)
# man/doc in all languages
add_subdirectory(cs)
add_subdirectory(de)
add_subdirectory(en)
add_subdirectory(es)
add_subdirectory(fr)
add_subdirectory(it)
add_subdirectory(ja)
add_subdirectory(pl)
add_subdirectory(ru)
add_subdirectory(sr)
else()
message(SEND_ERROR "Asciidoctor not found")
endif()
endif()
+28
View File
@@ -0,0 +1,28 @@
#
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2006 Julien Louis <ptitlouis@sysif.net>
#
# This file is part of WeeChat, the extensible chat client.
#
# 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/>.
#
SUBDIRS = . cs de en es fr it ja pl ru sr
EXTRA_DIST = docgen.py \
docinfo.html \
CMakeLists.txt
uninstall-hook:
-rmdir $(DESTDIR)$(datadir)/doc/$(PACKAGE)
+67
View File
@@ -0,0 +1,67 @@
#
# 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/>.
#
if(ENABLE_MAN)
# man page: weechat
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat.1
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -b manpage -o weechat.1 ${CMAKE_CURRENT_SOURCE_DIR}/weechat.1.cs.adoc
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/weechat.1.cs.adoc
${CMAKE_CURRENT_SOURCE_DIR}/includes/cmdline_options.cs.adoc
${CMAKE_CURRENT_SOURCE_DIR}/includes/man.cs.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building weechat.1 (cs)"
)
add_custom_target(doc-man-weechat-cs ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat.1)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat.1 DESTINATION ${MANDIR}/cs/man1)
if(ENABLE_HEADLESS)
# man page: weechat-headless
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat-headless.1
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -b manpage -o weechat-headless.1 ${CMAKE_CURRENT_SOURCE_DIR}/weechat-headless.1.cs.adoc
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/weechat-headless.1.cs.adoc
${CMAKE_CURRENT_SOURCE_DIR}/includes/cmdline_options.cs.adoc
${CMAKE_CURRENT_SOURCE_DIR}/includes/man.cs.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building weechat-headless.1 (cs)"
)
add_custom_target(doc-man-weechat-headless-cs ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat-headless.1)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat-headless.1 DESTINATION ${MANDIR}/cs/man1)
endif()
endif()
if(ENABLE_DOC)
# quickstart
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.cs.html
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -o weechat_quickstart.cs.html ${CMAKE_CURRENT_SOURCE_DIR}/weechat_quickstart.cs.adoc
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/../docinfo.html
${CMAKE_CURRENT_SOURCE_DIR}/weechat_quickstart.cs.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building weechat_quickstart.cs.html"
)
add_custom_target(doc-quickstart-cs ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.cs.html)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.cs.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
endif()
+81
View File
@@ -0,0 +1,81 @@
#
# 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/>.
#
docdir = $(datadir)/doc/$(PACKAGE)
EXTRA_DIST = CMakeLists.txt \
docinfo.html \
weechat.1.cs.adoc \
weechat-headless.1.cs.adoc \
weechat_quickstart.cs.adoc \
includes/cmdline_options.cs.adoc \
includes/man.cs.adoc
if MAN
man_targets = weechat.1 \
weechat-headless.1
man_install = install-man
man_uninstall = uninstall-man
endif
if DOC
doc_targets = weechat_quickstart.cs.html
doc_install = install-doc
doc_uninstall = uninstall-doc
endif
all-local: $(man_targets) $(doc_targets)
# man pages
weechat.1: weechat.1.cs.adoc includes/cmdline_options.cs.adoc includes/man.cs.adoc
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -b manpage -o weechat.1 $(abs_top_srcdir)/doc/cs/weechat.1.cs.adoc
weechat-headless.1: weechat-headless.1.cs.adoc includes/cmdline_options.cs.adoc includes/man.cs.adoc
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -b manpage -o weechat-headless.1 $(abs_top_srcdir)/doc/cs/weechat-headless.1.cs.adoc
# quickstart
weechat_quickstart.cs.html: weechat_quickstart.cs.adoc $(abs_top_srcdir)/doc/docinfo.html
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_quickstart.cs.html $(abs_top_srcdir)/doc/cs/weechat_quickstart.cs.adoc
# install man/docs
install-data-hook: $(man_install) $(doc_install)
install-man:
$(mkinstalldirs) $(DESTDIR)$(mandir)/cs/man1/
$(INSTALL_DATA) *.1 $(DESTDIR)$(mandir)/cs/man1/
install-doc:
$(mkinstalldirs) $(DESTDIR)$(docdir)/
$(INSTALL_DATA) *.html $(DESTDIR)$(docdir)/
# uninstall man/docs
uninstall-hook: $(man_uninstall) $(doc_uninstall)
uninstall-man:
$(RM) $(DESTDIR)$(mandir)/cs/man1/weechat.1
$(RM) $(DESTDIR)$(mandir)/cs/man1/weechat-headless.1
-rmdir $(DESTDIR)$(mandir)/cs/man1
uninstall-doc:
$(RM) $(DESTDIR)$(docdir)/*.cs.html
-rmdir $(DESTDIR)$(docdir)
# clean
clean-local:
-$(RM) weechat.1 weechat-headless.1 weechat_*.html
+1
View File
@@ -0,0 +1 @@
../docinfo.html
+2 -2
View File
@@ -1,6 +1,6 @@
// tag::plugin_options[]
Pro kompletní dokumentaci nastavení pluginů a jejich volby podívejte se na
https://weechat.org/doc/[WeeChat user's guide].
https://weechat.org/doc[WeeChat user's guide].
S irc pluginem se můžete doččasně připojit na server s URL jako:
@@ -99,7 +99,7 @@ $HOME/.local/share/weechat/weechat.log::
WeeChat je napsán Sébastienem Helleu a přispěvovateli (kompletní seznam je v
souboru AUTHORS.adoc).
Copyright (C) 2003-2023 {author}
Copyright (C) 2003-2021 {author}
WeeChat is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
+1 -1
View File
@@ -67,4 +67,4 @@ include::includes/man.cs.adoc[tag=copyright]
== PODPORA / HLÁŠENÍ CHYB
Pro pomoc nebo hlášení chyb https://weechat.org/about/support/
Pro pomoc nebo hlášení chyb https://weechat.org/about/support
+1 -1
View File
@@ -62,4 +62,4 @@ include::includes/man.cs.adoc[tag=copyright]
== PODPORA / HLÁŠENÍ CHYB
Pro pomoc nebo hlášení chyb https://weechat.org/about/support/
Pro pomoc nebo hlášení chyb https://weechat.org/about/support
+14 -24
View File
@@ -2,6 +2,10 @@
:author: Sébastien Helleu
:email: flashcode@flashtux.org
:lang: cs
:toc: left
:sectnums:
:docinfo1:
[[start]]
== Spuštění WeeChatu
@@ -109,7 +113,7 @@ Použijte příkaz `/plugin` k zobrazení nahraných pluginů, pravděpodobně u
Můžete přidat irc server příkazem `/server`, například:
----
/server add libera irc.libera.chat/6697 -tls
/server add libera irc.libera.chat/6697 -ssl
----
// TRANSLATION MISSING
@@ -204,16 +208,10 @@ K automatickému připojení některých kanálů při připojování k serveru:
----
// TRANSLATION MISSING
The `/autojoin` command lets you configure the _autojoin_ option easily
(see `/help autojoin`).
// TRANSLATION MISSING
You can also configure WeeChat to automatically update the _autojoin_ option
when you join or leave channels:
----
/set irc.server_default.autojoin_dynamic on
----
[TIP]
You can complete name and value of options with the kbd:[Tab] key
and kbd:[Shift+Tab] for a partial completion (useful for long words like
the name of option).
K smazání hodnoty serverové volby a k použití výchozí hodnoty místo ní,
například k požití výchozích přezdívek (irc.server_default.nicks):
@@ -229,12 +227,6 @@ název volby):
/set irc.server.libera.xxx value
----
// TRANSLATION MISSING
[TIP]
You can complete name and value of options with the kbd:[Tab] key
and kbd:[Shift+Tab] for a partial completion (useful for long words like
the name of option).
[[connect_to_irc_server]]
== Připojení k IRC serveru
@@ -397,16 +389,14 @@ například:
Zkuste `/help script` pro více informací.
// TRANSLATION MISSING
A list of scripts is available in WeeChat with `/script` or on
https://weechat.org/scripts/[this page ^↗^^].
A seznam skriptů je dostupný v WeeChatu s příkazem `/script` nebo na této
adrese https://weechat.org/scripts
[[more_doc]]
== Další dokumentace
// TRANSLATION MISSING
You can now use WeeChat and read
https://weechat.org/doc/[FAQ/documentation ^↗^^]
for any other questions.
Nyní jste schopni používat WeeChat a můžete si přečíst FAQ/dokumentaci pro
jakékoliv další otázky: https://weechat.org/doc
Ať máte radost z použití WeeChatu!
+110
View File
@@ -0,0 +1,110 @@
#
# 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/>.
#
if(ENABLE_MAN)
# man page: weechat
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat.1
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -b manpage -o weechat.1 ${CMAKE_CURRENT_SOURCE_DIR}/weechat.1.de.adoc
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/weechat.1.de.adoc
${CMAKE_CURRENT_SOURCE_DIR}/includes/cmdline_options.de.adoc
${CMAKE_CURRENT_SOURCE_DIR}/includes/man.de.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building weechat.1 (de)"
)
add_custom_target(doc-man-weechat-de ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat.1)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat.1 DESTINATION ${MANDIR}/de/man1)
if(ENABLE_HEADLESS)
# man page: weechat-headless
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat-headless.1
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -b manpage -o weechat-headless.1 ${CMAKE_CURRENT_SOURCE_DIR}/weechat-headless.1.de.adoc
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/weechat-headless.1.de.adoc
${CMAKE_CURRENT_SOURCE_DIR}/includes/cmdline_options.de.adoc
${CMAKE_CURRENT_SOURCE_DIR}/includes/man.de.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building weechat-headless.1 (de)"
)
add_custom_target(doc-man-weechat-headless-de ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat-headless.1)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat-headless.1 DESTINATION ${MANDIR}/de/man1)
endif()
endif()
if(ENABLE_DOC)
file(GLOB AUTOGEN_USER "${CMAKE_CURRENT_SOURCE_DIR}/includes/autogen_user_*.adoc")
# user's guide
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_user.de.html
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -o weechat_user.de.html ${CMAKE_CURRENT_SOURCE_DIR}/weechat_user.de.adoc
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/../docinfo.html
${CMAKE_CURRENT_SOURCE_DIR}/weechat_user.de.adoc
${CMAKE_CURRENT_SOURCE_DIR}/includes/cmdline_options.de.adoc
${AUTOGEN_USER}
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building weechat_user.de.html"
)
add_custom_target(doc-user-de ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_user.de.html)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_user.de.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
# scripting guide
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_scripting.de.html
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -o weechat_scripting.de.html ${CMAKE_CURRENT_SOURCE_DIR}/weechat_scripting.de.adoc
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/../docinfo.html
${CMAKE_CURRENT_SOURCE_DIR}/weechat_scripting.de.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building weechat_scripting.de.html"
)
add_custom_target(doc-scripting-de ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_scripting.de.html)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_scripting.de.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
# FAQ
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_faq.de.html
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -o weechat_faq.de.html ${CMAKE_CURRENT_SOURCE_DIR}/weechat_faq.de.adoc
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/../docinfo.html
${CMAKE_CURRENT_SOURCE_DIR}/weechat_faq.de.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building weechat_faq.de.html"
)
add_custom_target(doc-faq-de ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_faq.de.html)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_faq.de.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
# quickstart
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.de.html
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -o weechat_quickstart.de.html ${CMAKE_CURRENT_SOURCE_DIR}/weechat_quickstart.de.adoc
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/../docinfo.html
${CMAKE_CURRENT_SOURCE_DIR}/weechat_quickstart.de.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building 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})
endif()
+111
View File
@@ -0,0 +1,111 @@
#
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2006 Julien Louis <ptitlouis@sysif.net>
#
# This file is part of WeeChat, the extensible chat client.
#
# 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/>.
#
docdir = $(datadir)/doc/$(PACKAGE)
EXTRA_DIST = CMakeLists.txt \
docinfo.html \
weechat.1.de.adoc \
weechat-headless.1.de.adoc \
weechat_user.de.adoc \
weechat_scripting.de.adoc \
weechat_faq.de.adoc \
weechat_quickstart.de.adoc \
includes/autogen_api_completions.de.adoc \
includes/autogen_api_hdata.de.adoc \
includes/autogen_api_infolists.de.adoc \
includes/autogen_api_infos.de.adoc \
includes/autogen_api_infos_hashtable.de.adoc \
includes/autogen_api_plugins_priority.de.adoc \
includes/autogen_api_url_options.de.adoc \
includes/autogen_user_commands.de.adoc \
includes/autogen_user_default_aliases.de.adoc \
includes/autogen_user_irc_colors.de.adoc \
includes/autogen_user_options.de.adoc \
includes/cmdline_options.de.adoc \
includes/man.de.adoc
if MAN
man_targets = weechat.1 \
weechat-headless.1
man_install = install-man
man_uninstall = uninstall-man
endif
if DOC
doc_targets = weechat_user.de.html \
weechat_scripting.de.html \
weechat_faq.de.html \
weechat_quickstart.de.html
doc_install = install-doc
doc_uninstall = uninstall-doc
endif
all-local: $(man_targets) $(doc_targets)
# man pages
weechat.1: weechat.1.de.adoc includes/cmdline_options.de.adoc includes/man.de.adoc
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -b manpage -o weechat.1 $(abs_top_srcdir)/doc/de/weechat.1.de.adoc
weechat-headless.1: weechat-headless.1.de.adoc includes/cmdline_options.de.adoc includes/man.de.adoc
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -b manpage -o weechat-headless.1 $(abs_top_srcdir)/doc/de/weechat-headless.1.de.adoc
# user's guide
weechat_user.de.html: weechat_user.de.adoc includes/cmdline_options.de.adoc $(wildcard includes/autogen_user_*.adoc) $(abs_top_srcdir)/doc/docinfo.html
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_user.de.html $(abs_top_srcdir)/doc/de/weechat_user.de.adoc
# scripting guide
weechat_scripting.de.html: weechat_scripting.de.adoc $(abs_top_srcdir)/doc/docinfo.html
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_scripting.de.html $(abs_top_srcdir)/doc/de/weechat_scripting.de.adoc
# FAQ
weechat_faq.de.html: weechat_faq.de.adoc $(abs_top_srcdir)/doc/docinfo.html
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_faq.de.html $(abs_top_srcdir)/doc/de/weechat_faq.de.adoc
# quickstart
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
# install man/docs
install-data-hook: $(man_install) $(doc_install)
install-man:
$(mkinstalldirs) $(DESTDIR)$(mandir)/de/man1/
$(INSTALL_DATA) *.1 $(DESTDIR)$(mandir)/de/man1/
install-doc:
$(mkinstalldirs) $(DESTDIR)$(docdir)/
$(INSTALL_DATA) *.html $(DESTDIR)$(docdir)/
# uninstall man/docs
uninstall-hook: $(man_uninstall) $(doc_uninstall)
uninstall-man:
$(RM) $(DESTDIR)$(mandir)/de/man1/weechat.1
$(RM) $(DESTDIR)$(mandir)/de/man1/weechat-headless.1
-rmdir $(DESTDIR)$(mandir)/de/man1
uninstall-doc:
$(RM) $(DESTDIR)$(docdir)/*.de.html
-rmdir $(DESTDIR)$(docdir)
# clean
clean-local:
-$(RM) weechat.1 weechat-headless.1 weechat_*.html
+1
View File
@@ -0,0 +1 @@
../docinfo.html
@@ -0,0 +1,192 @@
//
// This file is auto-generated by script docgen.py.
// DO NOT EDIT BY HAND!
//
// tag::completions[]
[width="100%",cols="^1,^2,7",options="header"]
|===
| Erweiterung | Name | Beschreibung
| alias | alias | Liste der Alias
| alias | alias_value | Wert von Alias
| exec | exec_commands_ids | IDs (Nummern und Namen) von ausgeführten Befehlen
| fset | fset_options | Konfigurationsdateien, Sektionen, Optionen und Worte von Optionen
| guile | guile_script | Liste der Skripten
| irc | irc_channel | aktueller IRC-Kanal
| irc | irc_channel_nicks_hosts | Liste der Nicks und Hostnamen des aktuellen Kanals
| irc | irc_channel_topic | Thema des aktuellen IRC-Kanals
| irc | irc_channels | Kanäle auf allen IRC Servern
| 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_numbers | Modelist Nummern für aktuellen IRC Kanal; benötigtes Argument: modelist mode
| irc | irc_msg_kick | Standardmitteilung wenn man jemanden aus einem Kanal wirftchannel
| irc | irc_msg_part | Standardmitteilung beim Verlassen (/part) eines IRC-Kanals
| irc | irc_notify_nicks | Nicks für die eine Benachrichtigung existiert
| irc | irc_privates | Private auf allen IRC Servern
| irc | irc_raw_filters | Filter für IRC Rohbuffer
| irc | irc_server | aktueller IRC-Server
| irc | irc_server_channels | Kanäle des derzeitigen IRC-Server
| irc | irc_server_nick | Nick beim derzeitigen IRC-Server
| irc | irc_server_nicks | Nicks für alle Kanäle auf dem aktuellen IRC-Server
| irc | irc_server_privates | Privat auf aktuellem IRC Server
| irc | irc_servers | IRC-Server (interne Namen)
| irc | nick | Liste der Nicks im aktuellen Kanal
| javascript | javascript_script | Liste der Skripten
| lua | lua_script | Liste der Skripten
| perl | perl_script | Liste der Skripten
| php | php_script | Liste der Skripten
| python | python_script | Liste der Skripten
| relay | relay_free_port | erster freier Port für Relay-Erweiterung
| relay | relay_protocol_name | alle möglichen Protokoll.Name der Relay-Erweiterung
| relay | relay_relays | Protokoll.Name des aktuellen Relays von der Relay-Erweiterung
| ruby | ruby_script | Liste der Skripten
| script | script_extensions | Liste der Skripterweiterungen
| script | script_files | Dateien die sich in den Skript-Verzeichnissen befinden
| script | script_languages | Liste der Skriptsprache
| script | script_scripts | Liste der Skripten im Repositorium
| script | script_scripts_installed | Auflistung der installierten Skripten (vom Repositorium)
| script | script_tags | Schlagwortliste für Skripten im Repositorium
| spell | spell_dicts | Auflistung der installierten Wörterbücher
| spell | spell_langs | Liste aller Sprachen die unterstützt werden
| tcl | tcl_script | Liste der Skripten
| trigger | trigger_hook_arguments | Standardargumente für einen Hook
| trigger | trigger_hook_command | Standardbefehl für einen Hook
| trigger | trigger_hook_conditions | Standardbedingungen für einen Hook
| trigger | trigger_hook_rc | Standardrückgabewerte für einen Hook-Callback
| trigger | trigger_hook_regex | standardmäßiger regulärer Ausdruck für einen Hook
| trigger | trigger_hooks | Hooks für Trigger
| trigger | trigger_hooks_filter | Hooks für Trigger (definiert den Filter für den Monitor-Buffer)
| trigger | trigger_names | trigger
| trigger | trigger_names_default | voreingestellte Trigger
| trigger | trigger_option_value | Werte für Trigger-Einstellung
| trigger | trigger_options | Einstellungen für Trigger
| trigger | trigger_post_action | nachfolgende Aktion für Trigger
| weechat | bars_names | Namen der Infobars
| weechat | bars_options | Einstellungen für Infobars
| weechat | buffer_local_variable_value | Wert einer lokalen Buffervariablen
| weechat | buffer_local_variables | lokale Buffervariablen
| weechat | buffer_properties_get | Eigenschaften die für den Buffer gelesen werden können
| weechat | buffer_properties_set | Eigenschaften die für den Buffer gesetzt werden können
| weechat | buffers_names | Auflistung der vorhandenen Buffer
| weechat | buffers_numbers | Anzahl der Buffer
| weechat | buffers_plugins_names | Liste der Buffer (inklusive der Erweiterungen)
| weechat | colors | Farbnamen
| weechat | commands | Befehle (weechat und Erweiterungen); optionales Argument: Präfix welcher vor den Befehlen hinzugefügt wird
| weechat | config_files | Konfigurationsdateien
| weechat | config_option_values | Werte für eine Konfigurationsoption
| weechat | config_options | Konfigurationsoptionen
| weechat | cursor_areas | Bereiche in denen der Cursor frei bewegt werden kann ("chat" oder Name einer Bar)
| weechat | env_value | Wert einer Umgebungsvariable
| weechat | env_vars | Umgebungsvariablen
| weechat | filename | Dateiname; optionales Argument: default path (Hinweis: Inhalt wird evaluiert, siehe /help eval)
| weechat | filters_names | Liste der Filter
| weechat | infolists | Namen der gehookten Infolisten
| weechat | infos | Namen der gehookten Infos
| weechat | keys_codes | Tastaturcodes
| weechat | keys_codes_for_reset | Tastenbelegungen die zurückgesetzt werden können (hinzugefügte/verändert/gelöschte Tastenbelegungen)
| weechat | keys_contexts | Tastaturkontext
| weechat | layouts_names | Namen der Layouts
| weechat | nicks | Nicks in Benutzerliste für aktuellen Buffer
| weechat | palette_colors | Farbpalette
| weechat | plugins_commands | Befehle definiert durch Erweiterungen; optionales Argument: Präfix welcher vor den Befehlen hinzugefügt wird
| weechat | plugins_installed | Namen der installierten Erweiterungen
| weechat | plugins_names | Liste der Erweiterungen
| weechat | proxies_names | Namen aller Proxys
| weechat | proxies_options | Einstellungen für Proxys
| weechat | secured_data | Namen der geschützten Daten (Datei sec.conf, section data)
| weechat | weechat_commands | weechat Befehle; optionales Argument: Präfix welcher vor den Befehlen hinzugefügt wird
| weechat | windows_numbers | Nummern der Fenster
| xfer | nick | Nicks vom DCC Chat
|===
// end::completions[]
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,94 @@
//
// This file is auto-generated by script docgen.py.
// DO NOT EDIT BY HAND!
//
// tag::infolists[]
[width="100%",cols="^1,^2,5,5,5",options="header"]
|===
| Erweiterung | Name | Beschreibung | Pointer | Argumente
| alias | alias | Liste der Alias | Alias Pointer (optional) | Name des Alias (Platzhalter "*" kann verwendet werden) (optional)
| alias | alias_default | Liste der standardmäßigen Aliase | - | -
| buflist | buflist | Liste der Buffer in buflist Bar-Item | - | buflist Bar-Item Name (optional)
| fset | fset_option | Auflistung der fset Optionen | fset Option-Pointer (optional) | Name einer Einstellung (Platzhalter "*" kann verwendet werden) (optional)
| guile | guile_script | Liste der Skripten | Skript Pointer (optional) | Name des Skriptes (Platzhalter "*" kann verwendet werden) (optional)
| irc | irc_channel | Liste der Kanäle eines IRC-Servers | Pointer vom Kanal (optional) | Server,Kanal (Kanal ist optional)
| irc | irc_color_weechat | Zuordnung der IRC Farbkodierung und der WeeChat Farbnamen | - | -
| irc | irc_ignore | Liste von ignorierten IRCs | Ignore Pointer (optional) | -
| irc | irc_modelist | Liste der Kanalmoduslisten für einen IRC-Kanal | Modelist Pointer (optional) | Server,Channel,Type (Type ist optional)
| irc | irc_modelist_item | Liste der Items in der Kanal-Modeliste | Modelist Item Pointer (optional) | Server,Channel,Type,Nummer (Nummer ist optional)
| irc | irc_nick | Liste der Nicks im IRC-Kanal | Nick Pointer (optional) | server,channel,nick (nick ist optional)
| irc | irc_notify | Liste mit Benachrichtigungen | Benachrichtigungspointer (optional) | Servername (Platzhalter "*" kann verwendet werden) (optional)
| irc | irc_server | Liste der IRC-Server | Server Pointer (optional) | Servername (Platzhalter "*" kann verwendet werden) (optional)
| javascript | javascript_script | Liste der Skripten | Skript Pointer (optional) | Name des Skriptes (Platzhalter "*" kann verwendet werden) (optional)
| logger | logger_buffer | Auflistung der protokollierten Buffer | Logger-Pointer (optional) | -
| lua | lua_script | Liste der Skripten | Skript Pointer (optional) | Name des Skriptes (Platzhalter "*" kann verwendet werden) (optional)
| perl | perl_script | Liste der Skripten | Skript Pointer (optional) | Name des Skriptes (Platzhalter "*" kann verwendet werden) (optional)
| php | php_script | Liste der Skripten | Skript Pointer (optional) | Name des Skriptes (Platzhalter "*" kann verwendet werden) (optional)
| python | python_script | Liste der Skripten | Skript Pointer (optional) | Name des Skriptes (Platzhalter "*" kann verwendet werden) (optional)
| relay | relay | Liste der Relay-Clients | Relay Pointer (optional) | -
| ruby | ruby_script | Liste der Skripten | Skript Pointer (optional) | Name des Skriptes (Platzhalter "*" kann verwendet werden) (optional)
| script | script_script | Liste der Skripten | Skript Pointer (optional) | Name des Skriptes, mit Dateierweiterung (Platzhalter "*" kann verwendet werden) (optional)
| tcl | tcl_script | Liste der Skripten | Skript Pointer (optional) | Name des Skriptes (Platzhalter "*" kann verwendet werden) (optional)
| weechat | bar | Auflistung der Bars | Bar Pointer (optional) | Name der Bar (Platzhalter "*" kann verwendet werden) (optional)
| weechat | bar_item | Auflistung der Bar-Items | Bar Item Pointer (optional) | Name des Bar-Item (Platzhalter "*" kann verwendet werden) (optional)
| weechat | bar_window | Auflistung der Bar-Fenster | Bar-Fenster Pointer (optional) | -
| weechat | buffer | Auflistung der Buffer | Buffer Pointer (optional) | Name des Buffers (Platzhalter "*" kann verwendet werden) (optional)
| weechat | buffer_lines | Zeilen des Buffers | Buffer Pointer | -
| weechat | filter | Auflistung der Filter | - | Name des Filters (Platzhalter "*" kann verwendet werden) (optional)
| weechat | history | Verlaufspeicher der Befehle | Buffer Pointer (falls nicht gesetzt, wird der globale Verlauf zurückgegeben) (optional) | -
| weechat | hook | Auflistung der Hooks | Hook-Pointer (optional) | type,arguments (type ist ein command/timer/.., arguments dient dazu nur einige hooks abzufragen (Platzhalter "*" kann verwendet werden), beide Einstellungen sind optional)
| weechat | hotlist | Liste der Buffer in Hotlist | - | -
| weechat | key | Auflistung der Tastenzuweisungen | - | Kontext ("default", "search", "cursor" oder "mouse") (optional)
| weechat | layout | Auflistung der Layouts | - | -
| weechat | nicklist | Nicks in Benutzerliste für einen Buffer | Buffer Pointer | nick_xxx oder group_xxx um nur den Nick/Group xxx abzufragen (optional)
| weechat | option | Auflistung der Einstellungen | - | Name einer Einstellung (Platzhalter "*" kann verwendet werden) (optional)
| weechat | plugin | Auflistung der Erweiterungen | Pointer der Erweiterung (optional) | Name einer Erweiterung (Platzhalter "*" kann verwendet werden) (optional)
| weechat | proxy | Liste der Proxys | Proxy Pointer (optional) | Name des Proxy (Platzhalter "*" kann verwendet werden) (optional)
| weechat | url_options | Einstellungen für URL | - | -
| weechat | window | Auflistung der Fenster | Fenster Pointer (optional) | "current" für aktuelles Fenster oder die Nummer eines Fensters (optional)
| xfer | xfer | Transferliste | Transferpointer (optional) | -
|===
// end::infolists[]
+164
View File
@@ -0,0 +1,164 @@
//
// This file is auto-generated by script docgen.py.
// DO NOT EDIT BY HAND!
//
// tag::infos[]
[width="100%",cols="^1,^2,6,6",options="header"]
|===
| Erweiterung | Name | Beschreibung | Argumente
| fifo | fifo_filename | Name der FIFO-Pipe | -
| guile | guile_eval | Evaluierung des Quelltextes | Quelltext welcher ausgeführt werden soll
| guile | guile_interpreter | Name des verwendeten Interpreters | -
| guile | guile_version | Version des verwendeten Interpreters | -
| irc | irc_buffer | holt Buffer Pointer für einen IRC Server/Kanal/Nick | server,channel,nick (Kanal und Nicks sind optional)
| irc | irc_is_channel | 1, falls die Zeichenkette ein gültiger IRC-Kanalname für den Server ist | Server,Kanal (Server ist optional)
| irc | irc_is_message_ignored | 1, wenn der Nick ignoriert wird (Meldung wird nicht angezeigt) | Server,Nachricht (Nachricht ist die unverarbeitete IRC Nachricht)
| irc | irc_is_nick | 1, falls die Zeichenkette ein gültiger IRC Nickname ist | Server,Nickname (Server ist optional)
| irc | irc_nick | aktuellen Nicknamen für den Server erhalten | Servername
| irc | irc_nick_color | erhalte nick color code (*veraltet* ab Version 1.5, wird ersetzt durch "nick_color") | Nickname
| irc | irc_nick_color_name | erhalte nick color name (*veraltet* ab Version 1.5, wird ersetzt durch "nick_color_name") | Nickname
| irc | irc_nick_from_host | Nicknamen des IRC-Hosts erhalten | IRC host (in der Form `:nick!name@server.com`)
| irc | irc_server_isupport | 1 falls der Server die Funktion unterstützen sollte (durch IRC Message 005) | Server,Funktion
| irc | irc_server_isupport_value | Wert der Funktion, sofern es vom Server unterstützt wird (durch IRC Message 005) | Server,Funktion
| javascript | javascript_eval | Evaluierung des Quelltextes | Quelltext welcher ausgeführt werden soll
| javascript | javascript_interpreter | Name des verwendeten Interpreters | -
| javascript | javascript_version | Version des verwendeten Interpreters | -
| lua | lua_eval | Evaluierung des Quelltextes | Quelltext welcher ausgeführt werden soll
| lua | lua_interpreter | Name des verwendeten Interpreters | -
| lua | lua_version | Version des verwendeten Interpreters | -
| perl | perl_eval | Evaluierung des Quelltextes | Quelltext welcher ausgeführt werden soll
| perl | perl_interpreter | Name des verwendeten Interpreters | -
| perl | perl_version | Version des verwendeten Interpreters | -
| php | php_eval | Evaluierung des Quelltextes | Quelltext welcher ausgeführt werden soll
| php | php_interpreter | Name 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_interpreter | Name des verwendeten Interpreters | -
| python | python_version | Version des verwendeten Interpreters | -
| relay | relay_client_count | Anzahl an Clients für Relay | Protokoll,Status (beide sind Optional, bei beiden Argumenten bedeutet "*", alle; Protokolle: irc, weechat; Status: connecting, waiting_auth, connected, auth_failed, disconnected)
| ruby | ruby_eval | Evaluierung des Quelltextes | Quelltext welcher ausgeführt werden soll
| ruby | ruby_interpreter | Name des verwendeten Interpreters | -
| ruby | ruby_version | Version des verwendeten Interpreters | -
| spell | spell_dict | durch Kommata getrennte Liste von Wörterbüchern, die in diesem Buffer genutzt werden sollen | Buffer-Pointer ("0x12345678") oder der vollständige Buffername ("irc.libera.#weechat")
| tcl | tcl_eval | Evaluierung des Quelltextes | Quelltext welcher ausgeführt werden soll
| tcl | tcl_interpreter | Name des verwendeten Interpreters | -
| tcl | tcl_version | Version des verwendeten Interpreters | -
| weechat | auto_connect | 1, falls die automatische Verbindung zu Servern aktiviert ist, 0, wenn sie vom Benutzer deaktiviert wurde (Option "-a" oder "--no-connect") | -
| weechat | charset_internal | Interner WeeChat Zeichensatz | -
| weechat | charset_terminal | Terminal Zeichensatz | -
| weechat | color_ansi_regex | Erweiterte reguläre POSIX Ausdrücke um ANSI Escapesequenz zu suchen | -
| weechat | color_rgb2term | RGB Farbe wurde umgewandelt in Terminalfarbe (0-255) | RGB,limit (Obergrenze ist optional und ist Standardmäßig 256)
| weechat | color_term2rgb | Terminalfarbe (0-255) wurde umgewandelt in RGB Farbe | Farben (Terminalfarben: 0-255)
| weechat | cursor_mode | 1, falls Cursor-Modus aktiviert ist | -
| weechat | date | Datum/Zeit der WeeChat Kompilierung | -
| weechat | dir_separator | Trennzeichen für Verzeichnis | -
| weechat | filters_enabled | 1, falls Filter aktiviert sind | -
| weechat | inactivity | Inaktivität der Tastatur (Sekunden) | -
| weechat | locale | Spracheinstellung die für die übersetzten Nachrichten verwendet werden soll | -
| weechat | nick_color | zeigt Farbecode des Nick | Nickname;Farben (Farben ist eine optionale Kommata getrennte Liste von Farben die genutzt werden sollen; wenn eine Hintergrundfarbe genutzt werden muss das Format wie folgt aussehen Text:Hintergrund; sind die Farben schon vorhanden, werden die WeeChat Optionen für Nickfarben und erzwungene Nickfarben ignoriert)
| weechat | nick_color_name | zeigt Farbnamen des Nick | Nickname;Farben (Farben ist eine optionale Kommata getrennte Liste von Farben die genutzt werden sollen; wenn eine Hintergrundfarbe genutzt werden muss das Format wie folgt aussehen Text:Hintergrund; sind die Farben schon vorhanden, werden die WeeChat Optionen für Nickfarben und erzwungene Nickfarben ignoriert)
| weechat | pid | WeeChat PID (Prozess-ID) | -
| weechat | term_color_pairs | Anzahl der Farbpaare die durch das Terminal unterstützt werden | -
| weechat | term_colors | Anzahl der Farben die durch das Terminal unterstützt werden | -
| weechat | term_height | Höhe des Terminals | -
| weechat | term_width | Breite des Terminals | -
| weechat | totp_generate | generiert ein Time-based One-Time Passwort (TOTP) | geheime Zeichenkette (in base32), Zeitstempel (optional, standardmäßig aktuelle Zeit), Anzahl an Zeichen (optional, zwischen 4 und 10, standardmäßig 6)
| weechat | totp_validate | validiert ein Time-based One-Time Passwort (TOTP): 1 falls TOTP korrekt ist, ansonsten 0 | geheim (in base32), einmaliges Passwort, Zeitstempel (optional, standardmäßig aktuelle Zeit), Anzahl der zu testenden Passwörtern vorher/nachher (optional, standardmäßig 0)
| weechat | uptime | Laufzeit von WeeChat (Format: "days:hh:mm:ss") | "days" (Anzahl der Tage) oder "seconds" (Anzahl der Sekunden) (optional)
| weechat | version | WeeChat-Version | -
| weechat | version_git | WeeChat Git Version (Ausgabe des Befehls "git describe", ausschließlich für eine Entwicklerversion. Eine stabile Version gibt keine Information zurück) | -
| weechat | version_number | WeeChat-Version (als Zahl) | -
| weechat | weechat_cache_dir | WeeChat Cache-Verzeichnis | -
| weechat | weechat_config_dir | WeeChat Konfigurationsverzeichnis | -
| weechat | weechat_daemon | 1, falls WeeChat im Daemon-Modus ausgeführt wird (ohne Oberfläche, im Hintergrund) | -
| weechat | weechat_data_dir | WeeChat-Datenverzeichnis | -
| weechat | weechat_dir | WeeChat-Verzeichnis (*veraltet* seit Version 3.2, ersetzt durch "weechat_config_dir", "weechat_data_dir", "weechat_cache_dir" und "weechat_runtime_dir") | -
| weechat | weechat_headless | 1, falls WeeChat im Hintergrundmodus ausgeführt wird | -
| weechat | weechat_libdir | WeeChat "lib" Verzeichnis | -
| weechat | weechat_localedir | "lokales" Verzeichnis von WeeChat | -
| weechat | weechat_runtime_dir | WeeChat-Laufzeitverzeichnis | -
| weechat | weechat_sharedir | WeeChat "share" Verzeichnis | -
| weechat | weechat_site | WeeChat Seite | -
| weechat | weechat_site_download | Download-Seite von WeeChat | -
| weechat | weechat_upgrading | 1 falls WeeChat ein Upgrade durchführt (Befehl `/upgrade`) | -
|===
// end::infos[]
@@ -0,0 +1,20 @@
//
// This file is auto-generated by script docgen.py.
// DO NOT EDIT BY HAND!
//
// tag::infos_hashtable[]
[width="100%",cols="^1,^2,6,6,8",options="header"]
|===
| 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_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
| weechat | focus_info | Fokusinformationen abrufen | "x": x-Koordinate (Zeichenfolge mit Ganzzahl >= 0), "y": y-Koordinate (Zeichenfolge mit Ganzzahl >= 0) | siehe Funktion "hook_focus" in API Dokumentation
| weechat | secured_data | schutzwürdige Daten | - | schutzwürdige Daten: Namen und Werte (Vorsicht: Dies sind vertrauliche Daten: drucken oder protokollieren Sie diese NICHT)
|===
// end::infos_hashtable[]
@@ -0,0 +1,29 @@
//
// This file is auto-generated by script docgen.py.
// DO NOT EDIT BY HAND!
//
// tag::plugins_priority[]
. charset (16000)
. logger (15000)
. exec (14000)
. trigger (13000)
. spell (12000)
. alias (11000)
. buflist (10000)
. fifo (9000)
. typing (8000)
. xfer (7000)
. irc (6000)
. relay (5000)
. guile (4007)
. javascript (4006)
. lua (4005)
. perl (4004)
. php (4003)
. python (4002)
. ruby (4001)
. tcl (4000)
. script (3000)
. fset (2000)
// end::plugins_priority[]
@@ -0,0 +1,436 @@
//
// This file is auto-generated by script docgen.py.
// DO NOT EDIT BY HAND!
//
// tag::url_options[]
[width="100%",cols="2,^1,7",options="header"]
|===
| Einstellung | Type ^(1)^ | Konstanten ^(2)^
| verbose | long |
| header | long |
| noprogress | long |
| nosignal | long |
| wildcardmatch | long |
| failonerror | long |
| keep_sending_on_error | long |
| proxy | string |
| proxyport | long |
| port | long |
| pre_proxy | string |
| httpproxytunnel | long |
| interface | string |
| dns_cache_timeout | long |
| proxytype | long | http, socks4, socks5, socks4a, socks5_hostname, http_1_0, https
| buffersize | long |
| tcp_nodelay | long |
| localport | long |
| localportrange | 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 |
| socks5_gssapi_nec | long |
| tcp_keepalive | long |
| tcp_keepidle | long |
| tcp_keepintvl | long |
| unix_socket_path | string |
| abstract_unix_socket | string |
| path_as_is | long |
| proxy_service_name | string |
| service_name | string |
| default_protocol | string |
| tcp_fastopen | long |
| socks5_auth | long |
| haproxyprotocol | long |
| doh_url | string |
| netrc | long | ignored, optional, required
| userpwd | string |
| proxyuserpwd | string |
| 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
| netrc_file | string |
| username | string |
| password | string |
| proxyusername | string |
| proxypassword | string |
| tlsauth_type | mask | none, srp
| tlsauth_username | string |
| tlsauth_password | string |
| sasl_ir | long |
| xoauth2_bearer | string |
| login_options | string |
| disallow_username_in_url | long |
| autoreferer | long |
| followlocation | long |
| put | long |
| post | long |
| postfields | string |
| referer | string |
| useragent | string |
| httpheader | list |
| cookie | string |
| cookiefile | string |
| postfieldsize | long |
| maxredirs | long |
| httpget | long |
| cookiejar | string |
| http_version | long | none, 1_0, 1_1, 2_0, 2, 2tls, 2_prior_knowledge
| cookiesession | long |
| http200aliases | list |
| unrestricted_auth | long |
| postfieldsize_large | long long |
| cookielist | string |
| ignore_content_length | long |
| accept_encoding | string |
| transfer_encoding | long |
| http_content_decoding | long |
| http_transfer_decoding | long |
| copypostfields | string |
| postredir | mask | post_301, post_302
| expect_100_timeout_ms | long |
| headeropt | mask | unified, separate
| proxyheader | list |
| pipewait | long |
| stream_weight | long |
| request_target | string |
| mail_from | string |
| mail_rcpt | list |
| mail_auth | string |
| tftp_blksize | long |
| tftp_no_options | long |
| ftpport | string |
| quote | list |
| postquote | list |
| ftp_use_epsv | long |
| prequote | list |
| ftp_use_eprt | long |
| ftp_create_missing_dirs | long |
| ftp_response_timeout | long |
| ftpsslauth | long | default, ssl, tls
| ftp_account | string |
| ftp_skip_pasv_ip | long |
| ftp_filemethod | long | multicwd, nocwd, singlecwd
| ftp_alternative_to_user | string |
| ftp_ssl_ccc | long | ccc_none, ccc_active, ccc_passive
| dirlistonly | long |
| append | long |
| ftp_use_pret | long |
| rtsp_request | long | options, describe, announce, setup, play, pause, teardown, get_parameter, set_parameter, record, receive
| rtsp_session_id | string |
| rtsp_stream_uri | string |
| rtsp_transport | string |
| rtsp_client_cseq | long |
| rtsp_server_cseq | long |
| crlf | long |
| range | string |
| resume_from | long |
| customrequest | string |
| nobody | long |
| infilesize | long |
| upload | long |
| timecondition | long | none, ifmodsince, ifunmodsince, lastmod
| timevalue | long |
| transfertext | long |
| filetime | long |
| maxfilesize | long |
| proxy_transfer_mode | long |
| resume_from_large | long long |
| infilesize_large | long long |
| maxfilesize_large | long long |
| timevalue_large | long long |
| upload_buffersize | long |
| timeout | long |
| low_speed_limit | long |
| low_speed_time | long |
| fresh_connect | long |
| forbid_reuse | long |
| connecttimeout | long |
| ipresolve | long | whatever, v4, v6
| connect_only | long |
| max_send_speed_large | long long |
| max_recv_speed_large | long long |
| timeout_ms | long |
| connecttimeout_ms | long |
| maxconnects | long |
| use_ssl | long | none, try, control, all
| resolve | list |
| dns_servers | string |
| accepttimeout_ms | long |
| dns_interface | string |
| dns_local_ip4 | string |
| dns_local_ip6 | string |
| connect_to | list |
| happy_eyeballs_timeout_ms | long |
| dns_shuffle_addresses | long |
| upkeep_interval_ms | long |
| 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
| ssl_verifypeer | long |
| cainfo | string |
| random_file | string |
| egdsocket | string |
| ssl_verifyhost | long |
| ssl_cipher_list | string |
| sslcerttype | string |
| sslkey | string |
| sslkeytype | string |
| sslengine | string |
| sslengine_default | long |
| capath | string |
| ssl_sessionid_cache | long |
| krblevel | string |
| keypasswd | string |
| issuercert | string |
| crlfile | string |
| certinfo | long |
| gssapi_delegation | long | none, policy_flag, flag
| ssl_options | long | allow_beast, no_revoke, no_backends, ok, too_late, unknown_backend
| ssl_enable_alpn | long |
| ssl_enable_npn | long |
| pinnedpublickey | string |
| ssl_verifystatus | long |
| ssl_falsestart | long |
| proxy_cainfo | string |
| proxy_capath | string |
| proxy_crlfile | string |
| proxy_keypasswd | string |
| proxy_pinnedpublickey | string |
| proxy_sslcert | string |
| proxy_sslcerttype | string |
| proxy_sslkey | string |
| proxy_sslkeytype | string |
| proxy_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
| proxy_ssl_cipher_list | list |
| proxy_ssl_options | long | allow_beast, no_revoke, no_backends, ok, too_late, unknown_backend
| proxy_ssl_verifyhost | long |
| proxy_ssl_verifypeer | long |
| proxy_tlsauth_password | string |
| proxy_tlsauth_type | string |
| proxy_tlsauth_username | string |
| tls13_ciphers | list |
| proxy_tls13_ciphers | list |
| ssh_auth_types | mask | none, policy_flag, flag
| ssh_public_keyfile | string |
| ssh_private_keyfile | string |
| ssh_host_public_key_md5 | string |
| ssh_knownhosts | string |
| ssh_compression | long |
| new_file_perms | long |
| new_directory_perms | long |
| telnetoptions | list |
|===
// end::url_options[]
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,44 @@
//
// This file is auto-generated by script docgen.py.
// DO NOT EDIT BY HAND!
//
// tag::default_aliases[]
[width="100%",cols="2m,5m,5",options="header"]
|===
| Alias | Befehl | Vervollständigung
| /AAWAY | /allserv /away | -
| /ANICK | /allserv /nick | -
| /BEEP | /print -beep | -
| /BYE | /quit | -
| /C | /buffer clear | -
| /CL | /buffer clear | -
| /CLOSE | /buffer close | -
| /CHAT | /dcc chat | -
| /EXIT | /quit | -
| /IG | /ignore | -
| /J | /join | -
| /K | /kick | -
| /KB | /kickban | -
| /LEAVE | /part | -
| /M | /msg | -
| /MUB | /unban * | -
| /MSGBUF | /command -buffer $1 * /input send $2- | %(buffers_plugins_names)
| /N | /names | -
| /Q | /query | -
| /REDRAW | /window refresh | -
| /SAY | /msg * | -
| /SIGNOFF | /quit | -
| /T | /topic | -
| /UB | /unban | -
| /UMODE | /mode $nick | -
| /V | /command core version | -
| /W | /who | -
| /WC | /window close | -
| /WI | /whois | -
| /WII | /whois $1 $1 | -
| /WM | /window merge | -
| /WW | /whowas | -
|===
// end::default_aliases[]
@@ -0,0 +1,112 @@
//
// This file is auto-generated by script docgen.py.
// DO NOT EDIT BY HAND!
//
// tag::irc_colors[]
[width="50%",cols="^2m,3",options="header"]
|===
| IRC-Farbe | WeeChat-Farbe
| 00 | white
| 01 | black
| 02 | blue
| 03 | green
| 04 | lightred
| 05 | red
| 06 | magenta
| 07 | brown
| 08 | yellow
| 09 | lightgreen
| 10 | cyan
| 11 | lightcyan
| 12 | lightblue
| 13 | lightmagenta
| 14 | darkgray
| 15 | gray
| 16 | 52
| 17 | 94
| 18 | 100
| 19 | 58
| 20 | 22
| 21 | 29
| 22 | 23
| 23 | 24
| 24 | 17
| 25 | 54
| 26 | 53
| 27 | 89
| 28 | 88
| 29 | 130
| 30 | 142
| 31 | 64
| 32 | 28
| 33 | 35
| 34 | 30
| 35 | 25
| 36 | 18
| 37 | 91
| 38 | 90
| 39 | 125
| 40 | 124
| 41 | 166
| 42 | 184
| 43 | 106
| 44 | 34
| 45 | 49
| 46 | 37
| 47 | 33
| 48 | 19
| 49 | 129
| 50 | 127
| 51 | 161
| 52 | 196
| 53 | 208
| 54 | 226
| 55 | 154
| 56 | 46
| 57 | 86
| 58 | 51
| 59 | 75
| 60 | 21
| 61 | 171
| 62 | 201
| 63 | 198
| 64 | 203
| 65 | 215
| 66 | 227
| 67 | 191
| 68 | 83
| 69 | 122
| 70 | 87
| 71 | 111
| 72 | 63
| 73 | 177
| 74 | 207
| 75 | 205
| 76 | 217
| 77 | 223
| 78 | 229
| 79 | 193
| 80 | 157
| 81 | 158
| 82 | 159
| 83 | 153
| 84 | 147
| 85 | 183
| 86 | 219
| 87 | 212
| 88 | 16
| 89 | 233
| 90 | 235
| 91 | 237
| 92 | 239
| 93 | 241
| 94 | 244
| 95 | 247
| 96 | 250
| 97 | 254
| 98 | 231
| 99 | default
|===
// end::irc_colors[]
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -1,6 +1,6 @@
// tag::plugin_options[]
Um eine vollständige Dokumentation der Optionen zu erhalten, siehe
https://weechat.org/doc/[WeeChat user's guide].
https://weechat.org/doc[WeeChat user's guide].
Mittels der IRC Erweiterung kann man sich zu einen temporären Server verbinden lassen,
indem man eine URL verwendet:
@@ -100,7 +100,7 @@ $HOME/.local/share/weechat/weechat.log::
WeeChat wird programmiert von Sébastien Helleu und weiteren Beteiligten (eine vollständige Auflistung
findet man in der AUTHORS.adoc Datei).
Copyright (C) 2003-2023 {author}
Copyright (C) 2003-2021 {author}
WeeChat is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
+1 -1
View File
@@ -63,4 +63,4 @@ include::includes/man.de.adoc[tag=copyright]
== SUPPORT / FEHLER MELDEN
für Hilfe oder um einen Fehler zu melden: https://weechat.org/about/support/
für Hilfe oder um einen Fehler zu melden: https://weechat.org/about/support
+1 -1
View File
@@ -59,4 +59,4 @@ include::includes/man.de.adoc[tag=copyright]
== SUPPORT / FEHLER MELDEN
für Hilfe oder um einen Fehler zu melden: https://weechat.org/about/support/
für Hilfe oder um einen Fehler zu melden: https://weechat.org/about/support
+225 -130
View File
@@ -2,12 +2,24 @@
:author: Sébastien Helleu
:email: flashcode@flashtux.org
:lang: de
:toc: left
:toc-title: Inhaltsverzeichnis
:toclevels: 2
:sectnums:
:sectnumlevels: 2
: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:
* Juergen Descher <jhdl@gmx.net>, 2009
* Nils Görs <weechatter@arcor.de>, 2009-2022
* Nils Görs <weechatter@arcor.de>, 2009-2018
toc::[]
[[general]]
== Allgemein
@@ -26,8 +38,7 @@ Aber diese Bedeutung trifft nicht auf WeeChat zu!)
WeeChat ist sehr speicherschonend und besticht durch innovative Funktionen.
Weitere Infomationen über Weechat
https://weechat.org/about/features/[features page ^↗^^].
Weitere Informationen findet man auf der WeeChat Seite: https://weechat.org/about/features
[[compilation_install]]
== Kompilierung / Installation
@@ -35,23 +46,30 @@ https://weechat.org/about/features/[features page ^↗^^].
[[gui]]
=== Ich habe gehört es gibt verschiedene GUIs für WeeChat. Wie kann ich diese kompilieren bzw. nutzen?
Einige Remote-GUIs sind verfügbar, siehe
https://weechat.org/about/interfaces/[remote interfaces page ^↗^^].
Es sind einige Remote-Oberflächen verfügbar. Diese findet man auf der Homepage:
https://weechat.org/about/interfaces
[[compile_git]]
=== Ich kann WeeChat nach Cloning des git Repository nicht kompilieren - weshalb?
WeeChat muss mit CMake kompiliert werden.
Es wird empfohlen link:weechat_user.de.html#compile_with_cmake[CMake] zum
kompilieren von WeeChat zu nutzen.
Bitte folgen Sie link:weechat_user.en.html#source_package[build instructions ^↗^^]
und stellen Sie sicher, dass alle erforderlichen Abhängigkeiten installiert sind.
Falls Du WeeChat mit Hilfe der
link:weechat_user.de.html#compile_with_autotools[autotools] kompilieren solltest
(dich also nicht für CMake entscheidest), stelle sicher, dass Du die neueste
Version von autoconf und automake besitzt.
Wenn Sie weiterhin Probleme haben, melden Sie diese bitte den Entwicklern.
Die zweite Möglichkeit besteht darin, das "Entwickler-Paket" zu installieren, denn dies
besitzt weniger Abhängigkeiten. Das Paket wird quasi täglich aus dem git Repository erstellt.
Beachte, dass dieses Paket nicht immer exakt mit dem git Repository übereinstimmen muss
und daher auch weniger brauchbar sein kann. Im Gegensatz zu der Möglichkeit, dass man selbst
das Repository klont und daraus Updates installiert.
[[compile_macos]]
=== Wie installiere ich WeeChat auf macOS?
Wir empfehlen, dass zur Installation https://brew.sh/[Homebrew ^↗^^] genutzt wird.
Wir empfehlen, dass zur Installation https://brew.sh/[Homebrew] genutzt wird.
Hilfe erhält man mittels:
----
@@ -69,12 +87,12 @@ brew install weechat
Um Hilfe zu erhalten, nutze den `/help` Befehl.
Jeder Befehl besitzt einen Hilfstext, den man sich durch `/help Befehlsname` anzeigen lassen kann.
Die link:weechat_user.de.html#key_bindings[Standard Tastenbelegung ^↗^^] sowie
link:weechat_user.de.html#commands_and_options[Befehle und Optionen ^↗^^] sind im
link:weechat_user.de.html[Benutzerhandbuch ^↗^^] aufgeführt.
Die link:weechat_user.de.html#key_bindings[Standard Tastenbelegung] sowie
link:weechat_user.de.html#commands_and_options[Befehle und Optionen] sind im
link:weechat_user.de.html[Benutzerhandbuch] aufgeführt.
Neuen Anwendern wird empfohlen,
die link:weechat_quickstart.de.html[Quickstart Anleitung ^↗^^] zu lesen.
die link:weechat_quickstart.de.html[Quickstart Anleitung] zu lesen.
[[display]]
== Anzeige
@@ -107,7 +125,7 @@ Es ist deshalb wichtig, *ALLE* der folgenden Lösungsmöglichkeiten zu prüfen:
("`defutf8 on`" in der Datei ~/.screenrc oder `screen -U` beim Starten von
screen).
* Überprüfe die Option
link:weechat_user.de.html#option_weechat.look.eat_newline_glitch[_weechat.look.eat_newline_glitch_ ^↗^^]
link:weechat_user.de.html#option_weechat.look.eat_newline_glitch[_weechat.look.eat_newline_glitch_]
(diese Option kann schwerwiegenden Darstellungsfehler verursachen, wenn man die Option aktiviert hat).
[NOTE]
@@ -123,10 +141,10 @@ Dieser Fehler sollte durch glibc 2.22 behoben sein (vielleicht ist diese Version
verwendeten Distributionen noch nicht verfügbar).
Es gibt folgende Übergangslösung, um das Problem mit der _wcwidth_ zu umgehen:
https://blog.nytsoi.net/2015/05/04/emoji-support-for-weechat[https://blog.nytsoi.net/2015/05/04/emoji-support-for-weechat ^↗^^].
https://blog.nytsoi.net/2015/05/04/emoji-support-for-weechat
Siehe https://github.com/weechat/weechat/issues/79[bug report ^↗^^]
für weitere Informationen.
Siehe auch diese Fehlermeldung für weitere Informationen:
https://github.com/weechat/weechat/issues/79
[[bars_background]]
=== Weshalb haben Bars, z.B. Titel und Status, keine Hintergrundfarbe bzw. diese endet direkt nach dem Text?
@@ -181,10 +199,17 @@ von einem oder mehreren Fenstern gleichzeitig angezeigt werden.
[[buffers_list]]
=== Wie kann ich eine Liste mit den Buffern z.B. auf der linken Seite anzeigen lassen?
Diese Erweiterung, link:weechat_user.de.html#buflist[buflist ^↗^^],
wird standardmäßig geladen und aktiviert.
Ab WeeChat ≥ 1.8 wird standardmäßig die link:weechat_user.de.html#buflist_plugin["buflist"-Erweiterung]
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
@@ -204,6 +229,26 @@ kbd:[F1] oder kbd:[Ctrl+F1]) zum Hoch-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.
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]]
=== Wie kann ich die Darstellung der Bufferliste anpassen, z.B. die Farbe des aktiven Buffers?
@@ -226,8 +271,8 @@ Es kann auch eine beliebige numerische Farbe anstelle von "Rot" verwendet werden
Die Buflist-Erweiterung bietet viele Optionen, zum individualisieren. Bitte lesen Sie dazu die Hilfe von jeder Option.
Es gibt zusätzlich die https://github.com/weechat/weechat/wiki/buflist[wiki page ^↗^^]
mit Beispielen für die erweiterte buflist Konfiguration.
Es gibt auch eine Wiki-Seite mit Beispielen, wie eine erweiterte Konfiguration aussehen kann:
https://github.com/weechat/weechat/wiki/buflist
[[customize_prefix]]
=== Wie kann ich die Länge eines Nicknamens begrenzen oder die Ausrichtung des Nicks im Chatbereich entfernen?
@@ -273,8 +318,8 @@ Diese Farben können mit den Optionen __weechat.color.status_data_*__
Weitere hotlist Eigenschaften können mit Hilfe der Optionen __weechat.look.hotlist_*__
verändert werden.
Siehe link:weechat_user.de.html#screen_layout[Benutzerhandbuch / Screen layout ^↗^^]
für weitere Informationen zur Hotlist.
Siehe link:weechat_user.de.html#screen_layout[Benutzerhandbuch / Screen layout] für
weitere Informationen zur Hotlist.
[[input_bar_size]]
=== Wie kann man eine mehrzeilige Eingabezeile einstellen?
@@ -323,8 +368,9 @@ sobald das Item "input_text" in keiner anderen Bar genutzt wird:
[[terminal_copy_paste]]
=== 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
zeigt nur den Inhalt des aktuell ausgewählten Fensters an, ohne jegliche Formatierung.
Seit WeeChat ≥ 1.0 gibt es den "einfachen Anzeigemodus".
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
unterstützt (rxvt-unicode, konsole, gnome-terminal, ... um nur einige zu nennen ).
@@ -341,7 +387,8 @@ die Benutzerliste am oberen oder unteren Rand des WeeChat-Bildschirmes zu positi
[[urls]]
=== 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:
@@ -351,7 +398,7 @@ Um URLs einfacher zu öffnen, können alternativ folgende Optionen gesetzt werde
/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
@@ -363,9 +410,9 @@ Um URLs einfacher zu öffnen, können alternativ folgende Optionen gesetzt werde
/set weechat.look.align_end_of_lines time
----
Es kann auch die "eat_newline_glitch" Option aktiviert werden,
sodass kein neuer Zeilenumbruch hinzugefügt wird,
am Ende jeder angezeigten Zeile (es wird die URL-Auswahl nicht unterbrechen):
Ab der WeeChat Version ≥ 0.3.6, kann die Option "eat_newline_glitch" aktiviert werden.
Damit wird das Zeichen für einen Zeilenumbruch nicht an die dargestellten Zeilen angefügt
(dies führt dazu, dass URLs beim Markieren korrekt erkannt werden):
----
/set weechat.look.eat_newline_glitch on
@@ -412,6 +459,8 @@ In WeeChat wird der neue Wert umgehend genutzt:
[[use_256_colors]]
=== 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.
Folgende Werte sind zu empfehlen:
@@ -432,18 +481,21 @@ term screen-256color
Falls die Umgebungsvariable _TERM_ einen falschen Wert haben sollte und WeeChat
schon gestartet wurde, kann man die Umgebungsvariable mit folgenden WeeChat Befehlen
anpassen:
anpassen (WeeChat ≥ 1.0):
----
/set env TERM screen-256color
/upgrade
----
Sie können eine beliebige Farbnummer in den Optionen verwenden (optional: Sie können Farbaliase,
mit dem Befehl `/color`, erstellen.
Mit der WeeChat Version 0.3.4 muss der Befehl `/color` genutzt werden, um neue Farben zu erstellen.
Bitte lese link:weechat_user.de.html#colors[Benutzerhandbuch / Farben ^↗^^]
für weitere Informationen die das Farbmanagement betreffen.
Ab Version ≥ 0.3.5 kann in den Optionen für eine zu nutzende Farbe die entsprechende
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]]
=== Wie kann ich in einem Buffer nach einem Text suchen (vergleichbar /lastlog in irssi)?
@@ -453,8 +505,8 @@ Die Standardtastenbelegung lautet kbd:[Ctrl+r]
Um zu Highlight-Nachrichten zu springen:
kbd:[Alt+p] für vorherige, kbd:[Alt+n] für die nächste Nachricht.
siehe link:weechat_user.de.html#key_bindings[Benutzerhandbuch / Standard Tastenbelegung ^↗^^]
für weitere Informationen zu dieser Funktion.
siehe link:weechat_user.de.html#key_bindings[Benutzerhandbuch / Standard Tastenbelegung] für weitere
Informationen zu dieser Funktion.
[[terminal_focus]]
=== Wie kann ich Befehle ausführen, wenn der Terminal (keinen) Fokus hat?
@@ -481,15 +533,15 @@ Zusätzlich sollten noch zwei Tastenbefehle eingebunden werden
(der Befehl `/print` sollte durch einen Befehl Ihrer Wahl ersetzt werden):
----
/key bind meta-[I /print -core focus
/key bind meta-[O /print -core unfocus
/key bind meta2-I /print -core focus
/key bind meta2-O /print -core unfocus
----
Um zum Beispiel Buffer als gelesen zu markieren,
wenn das Terminal den Fokus verlieren sollte:
----
/key bind meta-[O /allbuf /buffer set unread
/key bind meta2-O /input set_unread
----
[[screen_paste]]
@@ -634,7 +686,7 @@ Es kann auch eine neue Taste eingebunden werden um zu einem Buffer zu wechseln:
----
Eine Auflistung der Standardtastenbelegung findet man in
link:weechat_user.de.html#key_bindings[Benutzerhandbuch / Standard Tastenbelegung ^↗^^].
link:weechat_user.de.html#key_bindings[Benutzerhandbuch / Standard Tastenbelegung].
Um zu Buffern zu wechseln die an Position ≥ 100 sind kann ein Trigger definiert
werden um dann z.B. mit einem Kurzbefehl `/123` zum Buffer #123 zu springen:
@@ -651,25 +703,23 @@ genutzt: kbd:[Ctrl+↑] und kbd:[Ctrl+↓]).
Beispiele:
----
/key bind up /input history_global_previous
/key bind down /input history_global_next
----
Ab WeeChat ≤ 3.8 muß der rohe Schlüsselwert verwenden werden (drücken Sie kbd:[Alt+k] und dann die
entsprechende Taste um den Wert anzuzeigen):
----
/key bind meta2-A /input history_global_previous
/key bind meta2-B /input history_global_next
----
[NOTE]
Die Tasten "meta2-A" und "meta2-B" 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.
[[mouse]]
== Mausunterstützung
[[mouse_not_working]]
=== 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:
----
@@ -720,28 +770,34 @@ anstelle der kbd:[Shift]-Taste gedrückt werden).
[[irc]]
== IRC
[[irc_tls_connection]]
=== Es treten Probleme bei einer Serververbindung mittels TLS auf. Was kann ich tun?
[[irc_ssl_connection]]
=== Es treten Probleme bei einer Serververbindung mittels SSL auf. Was kann ich tun?
Falls macOS genutzt wird,
muss mittels Homebrew `openssl` installiert werden.
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,
dass der gnutls Handshake fehlgeschlagen ist,
sollte ein kleinerer Diffie-Hellman-Schlüssel verwendet werden (Standardgröße: 2048):
----
/set irc.server.example.tls_dhkey_size 1024
/set irc.server.example.ssl_dhkey_size 1024
----
Falls Fehlermeldungen auftreten, die besagen,
dass das Zertifikat ungültig ist,
dann kann die "tls_verify" Überprüfung deaktiviert werden
dann kann die "ssl_verify" Überprüfung deaktiviert werden
(die Verbindung ist in diesem Fall weniger sicher):
----
/set irc.server.example.tls_verify off
/set irc.server.example.ssl_verify off
----
Sollte das Zertifikat für den Server (laut CA) ungültig sein,
@@ -750,30 +806,45 @@ dann kann (ersatzweise) der Fingerabdruck (SHA-512, SHA-256 or SHA-1)
des Zertifikats von Hand eingetragen werden:
----
/set irc.server.example.tls_fingerprint 0c06e399d3c3597511dc8550848bfd2a502f0ce19883b728b73f6b7e8604243b
/set irc.server.example.ssl_fingerprint 0c06e399d3c3597511dc8550848bfd2a502f0ce19883b728b73f6b7e8604243b
----
[[irc_tls_handshake_error]]
=== Bei einem Verbindungsaufbau zum Server via TLS erhalte ich "TLS Handshake fehlgeschlagen". Wie kann ich das beheben?
[[irc_ssl_handshake_error]]
=== 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
muss "xxx" durch den betroffenen Servernamen ersetzt werden:
Man sollte versuchen, eine andere Priorität zu nutzen (nur WeeChat ≥ 0.3.5);
Im folgenden Beispiel muss "xxx" durch den betroffenen Servernamen ersetzt werden:
----
/set irc.server.xxx.tls_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"
----
[[irc_tls_libera]]
=== Wie kann ich eine TLS gesicherte Verbindung zum libera Server herstellen?
[[irc_ssl_libera]]
=== 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
durch das Paket "ca-certificates" bereitgestellt.
Ab WeeChat ≤ 3.1 kann mit der Option _weechat.network.gnutls_ca_file_ eine Datei mit
Zertifikaten ausgewählt werden:
Konfiguration des Servers, Port angeben, TLS aktivieren und Verbindung herstellen:
----
/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:
----
/set irc.server.libera.addresses "irc.libera.chat/6697"
/set irc.server.libera.tls on
/set irc.server.libera.ssl on
/connect libera
----
@@ -794,7 +865,7 @@ ersetzt werden:
----
[[irc_sasl]]
=== Wie kann ich mich vor dem Betreten von Kanälen identifizieren?
=== Wie kann ich mich vor dem Betreten von Channels identifizieren?
Sollte der Server SASL unterstützen,
ist es ratsam auf diese Funktion zurückzugreifen
@@ -807,44 +878,37 @@ und sich nicht mittels "nickserv" zu authentifizieren:
Unterstützt der Server keine SASL Authentifizierung,
kann eine Verzögerung aktiviert werden,
um sich vor dem Betreten von Kanälen bei "nickserv" zu identifizieren:
um sich vor dem Betreten von Channels bei "nickserv" zu identifizieren:
----
/set irc.server.libera.command_delay 5
----
[[edit_autojoin]]
=== Wie kann ich Kanäle zur autojoin Option hinzufügen oder entfernen?
=== Wie kann ich Channels zur autojoin Option entfernen/hinzufügen?
Ab WeeChat ≥ 3.5 können Sie die Kanäle, denen Sie manuell betreten und verlassen,
automatisch aufzeichnen und die Serveroption „autojoin“ entsprechend anpassen.
Für alle Server:
Um die Liste der autojoin Channels zu editieren,
kann der Befehl `/set` genutzt werden.
In folgendem Beispiel wird der "libera"-Server angepasst:
----
/set irc.server_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
Sie den `/autojoin`-Befehl nutzen:
----
/autojoin add
----
oder einen beliebigen Kanal:
----
/autojoin add #test
----
Es existieren aber auch Skripten:
oder man nutzt ein Skript:
----
/script search autojoin
@@ -854,9 +918,9 @@ Es existieren aber auch Skripten:
=== Was ist der Unterschied zwischen dem Befehl /ignore und /filter?
Der Befehl `/ignore` ist ein (clientseitiger) IRC-Befehl und beeinflusst direkt,
welche vom Server empfangenen Nachrichten im IRC-Buffer (Server und Kanäle) landen.
welche vom Server empfangenen Nachrichten im IRC-Buffer (Server und Channel) landen.
Durch diesen Befehl können bestimmte Nicks oder Hostnamen von bestimmten Servern
oder Kanäle ignoriert werden.
oder Channels ignoriert werden.
Der Befehl wird nicht auf den Inhalt eines IRC-Buffers angewandt.
Zutreffende Meldungen werden, bevor sie dem Buffer zugeführt werden,
von der "irc"-Erweiterung gelöscht. Es gibt somit keine Möglichkeit,
@@ -877,20 +941,39 @@ Die voreingestellte Tastenkombination zum Aktivieren bzw. Deaktivieren
aller Filter ist kbd:[Alt+-].
[[filter_irc_join_part_quit]]
=== Wie kann ich join/part/quit und andere unerwünschte Nachrichten in IRC-Kanälen filtern?
=== Wie kann ich join/part/quit Meldungen in den IRC Channels filtern/unterdrücken?
siehe link:weechat_user.de.html#irc_smart_filter[User's guide / IRC smart filter ^↗^^].
Zum einen mit dem Smart-Filter.
Bei dessen Anwendung werden join/part/quit-Meldungen von Usern angezeigt,
die kürzlich noch etwas geschrieben haben:
----
/set irc.look.smart_filter on
/filter add irc_smart * irc_smart_filter *
----
Es besteht auch die Möglichkeit einer globalen Filterung.
Dabei werden *alle* join/part/quit Nachrichten unterdrückt:
----
/filter add joinquit * irc_join,irc_part,irc_quit *
----
[NOTE]
Für weitere Hilfe: `/help filter`, `+/help irc.look.smart_filter+` und
link:weechat_user.de.html#irc_smart_filter_join_part_quit[Benutzerhandbuch / einfacher Filter für join/part/quit Nachrichten].
[[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
Option _irc.look.display_join_message_ (siehe `+/help irc.look.display_join_message+`
Für mehr Information).
Ab WeeChat ≥ 0.4.1 kann man auswählen, welche Server-Nachrichten beim Betreten
eines Channels angezeigt und welche verborgen werden sollen. Dazu nutzt man
die Option _irc.look.display_join_message_ (für weitere Informationen, siehe
`+/help irc.look.display_join_message+`).
Um Nachrichten visuell zu verbergen, können diese gefiltert werden.
Dazu wird der Befehl `/filter` auf bestimmte Nachrichten-Tags angewandt.
Das Tag _irc_329_ kennzeichnet beispielsweise das Erstellungsdatum des Kanals.
Das Tag _irc_329_ kennzeichnet beispielsweise das Erstellungsdatum des Channels.
Siehe `/help filter`, um weitere Informationen über die Filterfunktion zu
erhalten.
@@ -905,13 +988,13 @@ da diese dazu genutzt werden um den Abwesenheitsstatus anderer User anzuzeigen
und man nicht von diesen Mitteilungen überflutet werden möchte,
kann man WeeChat anweisen, abwesende Nicks in einer anderen Farbe darzustellen.
Nutzt man Bitlbee ≥ 3, sollte man im _&bitlbee_ Kanal folgendes eingeben:
Nutzt man Bitlbee ≥ 3, sollte man im _&bitlbee_ Channel folgendes eingeben:
----
channel set show_users online,away
----
für ältere Versionen von Bitlbee gibt man im _&bitlbee_ Kanal ein:
für ältere Versionen von Bitlbee gibt man im _&bitlbee_ Channel ein:
----
set away_devoice false
@@ -937,12 +1020,12 @@ in welchem Zeitintervall die Überprüfungen auf Abwesenheit stattfinden sollen.
Die Angabe des Wertes erfolgt in Minuten.
Mit der Option _irc.server_default.away_check_max_nicks_ kann festgelegt werden,
in welchen Kanälen eine Überprüfung stattfinden soll.
Hierbei stellt der angegebene Wert die maximale Anzahl an Nicks in einem Kanal dar,
die den Kanal gleichzeitig besuchen dürfen.
in welchen Channels eine Überprüfung stattfinden soll.
Hierbei stellt der angegebene Wert die maximale Anzahl an Nicks in einem Channel dar,
die den Channel gleichzeitig besuchen dürfen.
Im folgenden Beispiel wird der Abwesenheitsstatus alle fünf Minuten überprüft.
Dabei werden aber nur solche Kanäle berücksichtigt, die nicht mehr als 25
Dabei werden aber nur solche Channels berücksichtigt, die nicht mehr als 25
Teilnehmer haben:
----
@@ -950,13 +1033,18 @@ Teilnehmer haben:
/set irc.server_default.away_check_max_nicks 25
----
[[highlight_notification]]
=== Wie kann ich mich benachrichtigen lassen, falls mich jemand in einem Kanal direkt anspricht (highlight)?
[NOTE]
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,
bei einem Highlight oder einer private Nachricht. Damit können Sie Ihr Terminal konfigurieren
(oder einen Multiplexer wie screen/tmux), um einen Befehl auszuführen oder einen Ton abzuspielen, wenn
ein _BEL_ tritt auf.
[[highlight_notification]]
=== Wie kann ich mich benachrichtigen lassen, falls mich jemand in einem Channel direkt anspricht (highlight)?
Seit WeeChat ≥ 1.0 gibt es standardmäßig den Trigger "beep",
der an das Terminal ein _BEL_ Signal schickt,
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:
@@ -982,9 +1070,11 @@ Es gibt weitere Skripten, die auch zu diesem Thema passen:
[[disable_highlights_for_specific_nicks]]
=== 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 ^↗^^]
die Buffer-Eigenschaft genutzt werden, um das maximale Hotlist-Level für einige Nicks pro Puffer festzulegen,
oder pro Gruppe von Buffern (wie IRC-Server).
Ab WeeChat ≥ 0.3.4 kann die Eigenschaft
link:weechat_user.de.html#max_hotlist_level_nicks[hotlist_max_level_nicks_add]
für den entsprechenden Buffer gesetzt werden.
Dies kann für einzelne Nicks,
einen Buffer oder eine Gruppe von Buffern (z.B. IRC Server) gelten.
Um nun Highlights (Hervorhebungen) für bestimmte Nicks zu deaktivieren, muss
man die entsprechende Eigenschaft auf 2 setzen:
@@ -1001,7 +1091,7 @@ das Skript _buffer_autoset.py_ nutzen:
/script install buffer_autoset.py
----
Um zum Beispiel Highlights (Hervorhebungen) von Nick "mike" im Kanal
Um zum Beispiel Highlights (Hervorhebungen) von Nick "mike" im Channel
#weechat auf dem IRC Server libera zu deaktivieren:
----
@@ -1020,7 +1110,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)?
Die Standardtastenkombination ist kbd:[Ctrl+x]. Der entsprechende Befehl lautet:
`+/buffer switch+`.
`+/input switch_active_buffer+`.
[[plugins_scripts]]
== Erweiterungen / Skripten
@@ -1040,15 +1130,16 @@ Um dies zu beheben, muss folgendes konfiguriert werden:
[[install_scripts]]
=== 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`
für Hilfe).
Seit WeeChat ≥ 0.3.9 gibt es den Befehl `/script` um Skripten zu installieren und zu verwalten
(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.
[[scripts_update]]
=== Der Befehl "/script update" liest die Skriptliste nicht ein, wie kann ich das beheben?
Als erstes sollte das Kapitel über TLS Verbindungen in dieser FAQ gelesen werden.
Als erstes sollte das Kapitel über SSL Verbindungen in dieser FAQ gelesen werden.
Wenn das nicht hilft, sollte die Skriptliste von Hand gelöscht werden. Dazu
folgenden Befehl in der Shell ausführen:
@@ -1058,7 +1149,7 @@ $ rm ~/.cache/weechat/script/plugins.xml.gz
----
[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:
@@ -1100,6 +1191,10 @@ Du brauchst lediglich die "spell"-Erweiterung neu zu laden:
/plugin reload spell
----
[NOTE]
Bis WeeChat ≤ 2.4, hieß die "spell"-Erweiterung, "aspell". Somit lautet der Befehl:
`/plugin reload aspell`.
[[settings]]
== Einstellungen
@@ -1135,7 +1230,7 @@ Damit WeeChat weniger Speicher benötigt, solltest Du folgende Tipps umsetzen:
Fifo, Logger, Perl, Python, Ruby, Lua, Tcl, Guile, JavaScript, PHP, Spell, Xfer
(wird für DCC benötigst), siehe `/help weechat.plugin.autoload`.
* installiere ausschließlich Skripten die Du auch nutzt
* Laden Sie keine Systemzertifikate, wenn TLS *NICHT* verwendet wird: Deaktivieren Sie diese Option:
* Laden Sie keine Systemzertifikate, wenn SSL *NICHT* verwendet wird: Deaktivieren Sie diese Option:
_weechat.network.gnutls_ca_system_.
* der Wert der Option _weechat.history.max_buffer_lines_number_ sollte möglichst
niedrig eingestellt werden oder die Option _weechat.history.max_buffer_lines_minutes_
@@ -1189,7 +1284,7 @@ Definiere eine Passphrase und nutze ausschließlich geschützte Daten wann immer
es möglich ist, wie z.B. bei Passwörtern: siehe `/help secure` und nutze `/help`
bei der entsprechenden Option (falls man geschützte Daten nutzen kann, wird es
im Hilfstext erwähnt).
Siehe auch link:weechat_user.de.html#secured_data[Benutzerhandbuch / sensible Daten ^↗^^].
Siehe auch link:weechat_user.de.html#secured_data[Benutzerhandbuch / sensible Daten].
Beispiel:
@@ -1210,7 +1305,7 @@ Ihrer Passphrase verschlüsselten Kennwörter enthält.
Einige andere Dateien enthalten möglicherweise vertrauliche Informationen wie
Kennwörter (sofern sie nicht mit dem Befehl `/secure` in _sec.conf_ gesichert werden).
Siehe link:weechat_user.de.html#files_and_directories[Benutzerhandbuch / Dateien und Verzeichnisse ^↗^^]
Siehe link:weechat_user.de.html#files_and_directories[Benutzerhandbuch / Dateien und Verzeichnisse]
für weitere Informationen über Konfigurationsdateien.
[[development]]
@@ -1219,7 +1314,7 @@ für weitere Informationen über Konfigurationsdateien.
[[bug_task_patch]]
=== Was kann ich machen, falls ich einen Fehler gefunden habe, mich nach neuen Funktionen erkundigen oder Patches einsenden möchte?
siehe https://weechat.org/about/support/[this page ^↗^^].
siehe: https://weechat.org/about/support
[[gdb_error_threads]]
=== Wenn man WeeChat in gdb startet, kann ein Thread-Fehler auftreten. Was beudeutet das?
@@ -1257,11 +1352,11 @@ Das Gleiche gilt für Systeme, zu denen wir keinen Zugang haben.
Es gibt einiges zu tun - z.B. testen, programmieren, dokumentieren, ...
Bitte kontaktieren Sie uns per IRC oder Mail, siehe
https://weechat.org/about/support/[support page ^↗^^].
Bitte kontaktiere uns via IRC oder E-Mail, wirf einen Blick auf die Support-Seite:
https://weechat.org/about/support
[[donate]]
=== Kann ich Geld oder anderes an die WeeChat Entwickler spenden?
Sie können uns Geld spenden, um die Entwicklung zu unterstützen.
Details dazu, unter https://weechat.org/donate/[donation page ^↗^^].
Du kannst uns Geld zur Unterstützung der weiteren Entwicklung spenden.
Details hierzu gibt es auf: https://weechat.org/donate
+16 -21
View File
@@ -2,7 +2,11 @@
:author: Sébastien Helleu
:email: flashcode@flashtux.org
:lang: de
:toc: left
:toc-title: Inhaltsverzeichnis
:sectnums:
:docinfo1:
Übersetzer:
@@ -10,6 +14,7 @@
* Juergen Descher <jhdl@gmx.net>, 2009
* Nils Görs <weechatter@arcor.de>, 2009-2018
[[start]]
== Start von WeeChat
@@ -118,7 +123,7 @@ Um eine Verbindung zu einem IRC Server herzustellen, wird der
`/server` Befehl verwendet. Beispiel:
----
/server add libera irc.libera.chat/6697 -tls
/server add libera irc.libera.chat/6697 -ssl
----
In diesem Beispiel ist `libera` der interne, von Weechat genutzte Servername.
@@ -218,15 +223,11 @@ in folgender Option erreicht werden:
/set irc.server.libera.autojoin "#channel1,#channel2"
----
Mit dem `/autojoin` Befehl können die _autojoin_ Optionen einfach konfiguriert werden.
(siehe `/help autojoin`).
WeeChat kann auch konfigurieren werden, dass die _autojoin_ Optionen automatisch aktualisiert werden
sobald man Kanäle betritt oder verlässt:
----
/set irc.server_default.autojoin_dynamic on
----
[TIP]
Mittels der kbd:[Tab] Taste kann man sehr einfach Namen und Werte von Optionen
vervollständigen und mittels kbd:[Shift+Tab] kann eine teilweise Vervollständigung
durchgeführt werden (was bei langen Wörtern, wie z.B. dem Namen einer Option, nützlich
sein kann).
Mit dem Befehl `/unset` können Server-Optionen zurückgesetzt werden.
Ist eine Server-Option zurückgesetzt, _wirkt_ der entsprechende Vorgabewert
@@ -245,12 +246,6 @@ Werte anderer Server-Optionen (`xxx`) können festgelegt werden mit:
/set irc.server.libera.xxx Wert
----
[TIP]
Mittels der kbd:[Tab] Taste kann man sehr einfach Namen und Werte von Optionen
vervollständigen und mittels kbd:[Shift+Tab] kann eine teilweise Vervollständigung
durchgeführt werden (was bei langen Wörtern, wie z.B. dem Namen einer Option, nützlich
sein kann).
[[connect_to_irc_server]]
== Verbinden mit dem IRC-Server
@@ -436,14 +431,14 @@ Zeige eine liste aller verfügbaren Skripten:
/script
----
Eine Liste von Skripten ist in WeeChat mittels `/script` oder auf
https://weechat.org/scripts/[this page ^↗^^] verfügbar.
Auf *weechat.org* von Drittanbietern bereitgestellte Scripten: https://weechat.org/scripts
[[more_doc]]
== Weitere Dokumentation
WeeChat kann nun verwendet werden und lesen Sie
https://weechat.org/doc/[FAQ/documentation ^↗^^]
falls Sie weitere Fragen haben.
Mit dieser Quickstart-Anleitung wurden dir die wesentlichen
Bedienungswerkzeuge von WeeChat nähergebracht.
Für das eingehende Studium aller verfügbaren Funktionalitäten
sei dir unsere ausführliche FAQ/Dokumentation ans Herz gelegt: https://weechat.org/doc
Viel Spass mit WeeChat!
+156 -202
View File
@@ -2,16 +2,24 @@
:author: Sébastien Helleu
:email: flashcode@flashtux.org
:lang: de
:toc: left
:toclevels: 4
:toc-title: Inhaltsverzeichnis
:sectnums:
:sectnumlevels: 3
:docinfo1:
Übersetzer:
* Nils Görs <weechatter@arcor.de>, 2010-2016
Diese Anleitung beschreibt den WeeChat Chat Client und ist Teil von WeeChat.
Die neueste Version dieses Dokuments finden Sie unter
https://weechat.org/doc/[this page ^↗^^].
Die aktuelle Version dieser Anleitung finden Sie auf:
https://weechat.org/doc
[[introduction]]
== Einleitung
@@ -59,7 +67,7 @@ Ein Skript darf *NIEMALS* einen fork nutzen oder einen eigenen Thread erstellen,
dafür gibt es explizit eine API Funktion, andernfalls kann WeeChat abstürzen. +
Wenn etwas in einem Hintergrundprozess ausgeführt werden soll, kann die Funktion
`+hook_process+` genutzt werden. Siehe Beispiele im Kapitel <<hook_process,Hintergrundprozesse>>
und die Dokumentation für die Funktion `+hook_process+` in link:weechat_plugin_api.en.html#_hook_process[WeeChat plugin API reference ^↗^^] (Englisch).
und die Dokumentation für die Funktion `+hook_process+` in link:weechat_plugin_api.en.html#_hook_process[WeeChat plugin API reference] (Englisch).
[[languages_specificities]]
=== Besonderheiten der einzelnen Skriptsprachen
@@ -73,7 +81,7 @@ und die Dokumentation für die Funktion `+hook_process+` in link:weechat_plugin_
WeeChat definiert ein `weechat` Module welches mittels `import weechat`
importiert werden muss. +
Ein Python-Stub für die WeeChat-API ist im Repository verfügbar:
https://raw.githubusercontent.com/weechat/weechat/master/src/plugins/python/weechat.pyi[weechat.pyi ^↗^^].
https://raw.githubusercontent.com/weechat/weechat/master/src/plugins/python/weechat.pyi[weechat.pyi].
[[python_functions]]
===== Funktionen
@@ -101,41 +109,45 @@ Liste ist nicht vollständig):
|===
| API Funktion | Argumente | Beispiele| Beschreibung
| hook_modifier
| irc_in_yyy
| pass:[irc_in_privmsg] +
pass:[irc_in_notice]
| Eine Nachricht die von der IRC Erweiterung empfangen wurde und bevor sie nach UTF-8 dekodiert wurde (intern
| hook_modifier |
irc_in_yyy |
pass:[irc_in_privmsg] +
pass:[irc_in_notice] |
Eine Nachricht die von der IRC Erweiterung empfangen wurde und bevor sie nach UTF-8 dekodiert wurde (intern
verwendet). +
+
Es wird empfohlen den Modifier `+irc_in2_yyy+` zu nutzen, da die empfangene Zeichenkette
immer UTF-8 gültig ist. +
siehe Funktion `+hook_modifier+` in der
link:weechat_plugin_api.en.html#_hook_modifier[WeeChat Anleitung für API Erweiterung ^↗^^].
link:weechat_plugin_api.en.html#_hook_modifier[WeeChat Anleitung für API Erweiterung].
| hook_signal
| xxx,irc_out_yyy +
xxx,irc_outtags_yyy
| pass:[*,irc_out_privmsg] +
| hook_signal |
xxx,irc_out_yyy +
xxx,irc_outtags_yyy |
pass:[*,irc_out_privmsg] +
pass:[*,irc_out_notice] +
pass:[*,irc_outtags_privmsg] +
pass:[*,irc_outtags_notice]
| Eine Nachricht welche von der IRC Erweiterung versendet wurde, nachdem diese entsprechend
pass:[*,irc_outtags_notice] |
Eine Nachricht welche von der IRC Erweiterung versendet wurde, nachdem diese entsprechend
der Benutzereinstellung `encode` Charset kodiert (falls abweichend von der `UTF-8` Standardeinstellung). +
+
Es wird empfohlen das Signal `+xxx,irc_out1_yyy+` zu nutzen, da die empfangene Zeichenkette
immer UTF-8 gültig ist. +
siehe Funktion `+hook_signal+` in der
link:weechat_plugin_api.en.html#_hook_signal[WeeChat Anleitung für API Erweiterung ^↗^^].
link:weechat_plugin_api.en.html#_hook_signal[WeeChat Anleitung für API Erweiterung].
| hook_process +
hook_process_hashtable
| -
| -
| Ausgabe des Befehls, dass an den Callback gesendet wurde, kann ungültige UTF-8 Daten enthalten.
hook_process_hashtable |
- |
- |
Ausgabe des Befehls, dass an den Callback gesendet wurde, kann ungültige UTF-8 Daten enthalten.
|===
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]]
==== Perl
@@ -193,22 +205,6 @@ 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 ^↗^^].
[[language_guile]]
==== Guile (Scheme)
@@ -388,7 +384,7 @@ ein Link in das entsprechende _autoload_ Verzeichnis erzeugt.
Die Skripten API ist nahezu identisch mit der API der C Erweiterung.
Um einen Überblick über alle API Funktionen (Prototyp, Argumente,
Rückgabe werte, Beispiele) zu erhalten werfen Sie einen Blick in
die link:weechat_plugin_api.en.html[WeeChat Plugin API Reference ^↗^^] (Englisch).
die link:weechat_plugin_api.en.html[WeeChat Plugin API Reference] (Englisch).
Es ist wichtig das man zwischen einer _Erweiterung_ und einem _Skript_
unterscheidet: Eine _Erweiterung_ ist eine Binärdatei die kompiliert wurde
und mittels `/plugin` geladen wird. Ein _Skript_ ist eine Textdatei welche
@@ -557,25 +553,25 @@ weechat_hook_timer(1000, 0, 1, $timer_cb, 'test');
== Skript API
Um weiterführende Informationen zu den API Funktionen zu erhalten
lesen Sie bitte link:weechat_plugin_api.en.html[WeeChat Plugin API Reference ^↗^^] (Englisch).
lesen Sie bitte link:weechat_plugin_api.en.html[WeeChat Plugin API Reference] (Englisch).
[[script_api_functions]]
=== Funktionen
Liste der Skript API Funktionen:
[width="100%",cols="1,5",options="header"]
[width="100%",cols="1,3",options="header"]
|===
| Kategorie | Funktionen
| Allgemein
| register
| Allgemein |
register
| Erweiterungen
| plugin_get_name
| Erweiterungen |
plugin_get_name
| Strings
| charset_set +
| Strings |
charset_set +
iconv_to_internal +
iconv_from_internal +
gettext +
@@ -587,7 +583,6 @@ Liste der Skript API Funktionen:
string_has_highlight_regex +
string_mask_to_regex +
string_format_size +
string_parse_size +
string_color_code_size +
string_remove_color +
string_is_command_char +
@@ -595,13 +590,13 @@ Liste der Skript API Funktionen:
string_eval_expression +
string_eval_path_home
| Verzeichnisse
| mkdir_home +
| Verzeichnisse |
mkdir_home +
mkdir +
mkdir_parents
| sortierte Listen
| list_new +
| sortierte Listen |
list_new +
list_add +
list_search +
list_search_pos +
@@ -617,8 +612,8 @@ Liste der Skript API Funktionen:
list_remove_all +
list_free
| Konfigurationsdatei
| config_new +
| Konfigurationsdatei |
config_new +
config_new_section +
config_search_section +
config_new_option +
@@ -655,21 +650,20 @@ Liste der Skript API Funktionen:
config_set_desc_plugin +
config_unset_plugin
| Tastenbelegung
| key_bind +
| Tastenbelegung |
key_bind +
key_unbind
| Ausgabe
| prefix +
| Ausgabe |
prefix +
color +
print (für Python: prnt) +
print_date_tags (für Python: prnt_date_tags) +
print_y (für Python: prnt_y) +
print_y_date_tags (für Python: prnt_y_date_tags) +
log_print
| Hooks
| hook_command +
| Hooks |
hook_command +
hook_command_run +
hook_timer +
hook_fd +
@@ -694,9 +688,8 @@ Liste der Skript API Funktionen:
unhook +
unhook_all
| Buffer
| buffer_new +
buffer_new_props +
| Buffer |
buffer_new +
current_buffer +
buffer_search +
buffer_search_main +
@@ -711,16 +704,16 @@ Liste der Skript API Funktionen:
buffer_string_replace_local_var +
buffer_match_list
| Fenster
| current_window +
| Fenster |
current_window +
window_search_with_buffer +
window_get_integer +
window_get_string +
window_get_pointer +
window_set_title
| Nickliste
| nicklist_add_group +
| Nickliste |
nicklist_add_group +
nicklist_search_group +
nicklist_add_nick +
nicklist_search_nick +
@@ -736,8 +729,8 @@ Liste der Skript API Funktionen:
nicklist_nick_get_pointer +
nicklist_nick_set
| Bars
| bar_item_search +
| Bars |
bar_item_search +
bar_item_new +
bar_item_update +
bar_item_remove +
@@ -747,23 +740,23 @@ Liste der Skript API Funktionen:
bar_update +
bar_remove
| Befehle
| command +
| Befehle |
command +
command_options
| Vervollständigung
| completion_new +
| Vervollständigung |
completion_new +
completion_search +
completion_get_string +
completion_list_add +
completion_free
| Informationen
| info_get +
| Informationen |
info_get +
info_get_hashtable
| Infolisten
| infolist_new +
| Infolisten |
infolist_new +
infolist_new_item +
infolist_new_var_integer +
infolist_new_var_string +
@@ -781,8 +774,8 @@ Liste der Skript API Funktionen:
infolist_time +
infolist_free
| hdata
| hdata_get +
| hdata |
hdata_get +
hdata_get_var_offset +
hdata_get_var_type_string +
hdata_get_var_array_size +
@@ -803,8 +796,8 @@ Liste der Skript API Funktionen:
hdata_update +
hdata_get_string
| Upgrade
| upgrade_new +
| Upgrade |
upgrade_new +
upgrade_write_object +
upgrade_read +
upgrade_close
@@ -815,17 +808,17 @@ Liste der Skript API Funktionen:
Liste der Konstanten in Skript API:
[width="100%",cols="1,5",options="header"]
[width="100%",cols="1,3",options="header"]
|===
| Kategorie | Konstanten
| return codes
| `WEECHAT_RC_OK` (integer) +
| return codes |
`WEECHAT_RC_OK` (integer) +
`WEECHAT_RC_OK_EAT` (integer) +
`WEECHAT_RC_ERROR` (integer)
| Konfigurationsdatei
| `WEECHAT_CONFIG_READ_OK` (integer) +
| Konfigurationsdatei |
`WEECHAT_CONFIG_READ_OK` (integer) +
`WEECHAT_CONFIG_READ_MEMORY_ERROR` (integer) +
`WEECHAT_CONFIG_READ_FILE_NOT_FOUND` (integer) +
`WEECHAT_CONFIG_WRITE_OK` (integer) +
@@ -840,23 +833,23 @@ Liste der Konstanten in Skript API:
`WEECHAT_CONFIG_OPTION_UNSET_OK_REMOVED` (integer) +
`WEECHAT_CONFIG_OPTION_UNSET_ERROR` (integer)
| sortierte Listen
| `WEECHAT_LIST_POS_SORT` (string) +
| sortierte Listen |
`WEECHAT_LIST_POS_SORT` (string) +
`WEECHAT_LIST_POS_BEGINNING` (string) +
`WEECHAT_LIST_POS_END` (string)
| Hotlist
| `WEECHAT_HOTLIST_LOW` (string) +
| Hotlist |
`WEECHAT_HOTLIST_LOW` (string) +
`WEECHAT_HOTLIST_MESSAGE` (string) +
`WEECHAT_HOTLIST_PRIVATE` (string) +
`WEECHAT_HOTLIST_HIGHLIGHT` (string)
| hook Prozesse
| `WEECHAT_HOOK_PROCESS_RUNNING` (integer) +
| hook Prozesse |
`WEECHAT_HOOK_PROCESS_RUNNING` (integer) +
`WEECHAT_HOOK_PROCESS_ERROR` (integer)
| hook Connect
| `WEECHAT_HOOK_CONNECT_OK` (integer) +
| hook Connect |
`WEECHAT_HOOK_CONNECT_OK` (integer) +
`WEECHAT_HOOK_CONNECT_ADDRESS_NOT_FOUND` (integer) +
`WEECHAT_HOOK_CONNECT_IP_ADDRESS_NOT_FOUND` (integer) +
`WEECHAT_HOOK_CONNECT_CONNECTION_REFUSED` (integer) +
@@ -868,8 +861,8 @@ Liste der Konstanten in Skript API:
`WEECHAT_HOOK_CONNECT_TIMEOUT` (integer) +
`WEECHAT_HOOK_CONNECT_SOCKET_ERROR` (integer)
| hook Signal
| `WEECHAT_HOOK_SIGNAL_STRING` (string) +
| hook Signal |
`WEECHAT_HOOK_SIGNAL_STRING` (string) +
`WEECHAT_HOOK_SIGNAL_INT` (string) +
`WEECHAT_HOOK_SIGNAL_POINTER` (string)
|===
@@ -880,7 +873,7 @@ Liste der Konstanten in Skript API:
Dieses Kapitel beinhaltet einige Aufgaben mit Lösungsbeispielen.
Die Skript API wird dabei nur sehr oberflächlich besprochen.Um eine vollständige
Übersicht aller Befehle zu erhalten nutzen Sie bitte die
link:weechat_plugin_api.en.html[WeeChat Plugin API Reference ^↗^^] (Englisch).
link:weechat_plugin_api.en.html[WeeChat Plugin API Reference] (Englisch).
[[buffers]]
=== Buffer
@@ -900,7 +893,7 @@ Beispiele:
weechat.prnt("", "Hallo")
# Gibt den Text "Hallo" im Core Buffer aus, schreibt diesen aber nicht in die Protokolldatei
# (nur Version 0.3.3)
# (nur Version >= 0.3.3)
weechat.prnt_date_tags("", 0, "no_log", "hello")
# Gibt den Präfix "==>" gefolgt von dem Text "Hallo" im aktuellen Buffer aus
@@ -1080,53 +1073,26 @@ Mit der Funktion `+hook_process+` kann ein Hintergrundprozess gestartet werden.
Der Callback wird aufgerufen sobald der Hintergrundprozess abgearbeitet wurde.
Dies kann auch mehrfach der Fall sein.
Für den letzten Aufruf des Callback wird _return_code_ auf 0 oder einen positiven
Wert gesetzt. Dies ist der Return Code des Befehls.
Für den letzten Aufruf des Callback wird _rc_ auf 0 oder einen positiven Wert
gesetzt. Dies ist der Return Code des Befehls.
Beispiele:
[source,python]
----
def my_process_cb(data, command, return_code, out, err):
if return_code == weechat.WEECHAT_HOOK_PROCESS_ERROR:
weechat.prnt("", "Error with command '%s'" % command)
return weechat.WEECHAT_RC_OK
if return_code >= 0:
weechat.prnt("", "return_code = %d" % return_code)
if out:
weechat.prnt("", "stdout: %s" % out)
if err:
weechat.prnt("", "stderr: %s" % err)
process_output = ""
def my_process_cb(data, command, rc, out, err):
global process_output
if out != "":
process_output += out
if int(rc) >= 0:
weechat.prnt("", process_output)
return weechat.WEECHAT_RC_OK
weechat.hook_process("/bin/ls -l /etc", 10 * 1000, "my_process_cb", "")
----
Sie können statt eines externen Befehls auch direkt eine
Skriptfunktion aufrufen, die Weechat blockieren würde:
[source,python]
----
def get_status(data):
# do something blocking...
# ...
return "this is the result"
def my_process_cb(data, command, return_code, out, err):
if return_code == weechat.WEECHAT_HOOK_PROCESS_ERROR:
weechat.prnt("", "Error with command '%s'" % command)
return weechat.WEECHAT_RC_OK
if return_code >= 0:
weechat.prnt("", "return_code = %d" % return_code)
if out:
weechat.prnt("", "stdout: %s" % out)
if err:
weechat.prnt("", "stderr: %s" % err)
return weechat.WEECHAT_RC_OK
hook = weechat.hook_process("func:get_status", 5000, "my_process_cb", "")
----
[[url_transfer]]
==== URL Übertragung
@@ -1141,15 +1107,15 @@ dabei in der Callback-Variable "out" gesichert (Standardausgabe des Prozesses):
[source,python]
----
# Display latest stable version of WeeChat.
weechat_latest_version = ""
# Zeigt die aktuelle stabile Version von WeeChat an.
weechat_version = ""
def weechat_process_cb(data, command, return_code, out, err):
global weechat_latest_version
if out:
weechat_latest_version += out
if return_code >= 0:
weechat.prnt("", "Latest WeeChat version: %s" % weechat_latest_version)
def weechat_process_cb(data, command, rc, out, err):
global weechat_version
if out != "":
weechat_version += out
if int(rc) >= 0:
weechat.prnt("", "aktuelle stabile WeeChat-Version: %s" % weechat_version)
return weechat.WEECHAT_RC_OK
weechat.hook_process("url:https://weechat.org/dev/info/stable/",
@@ -1157,17 +1123,16 @@ weechat.hook_process("url:https://weechat.org/dev/info/stable/",
----
[TIP]
Alle verfügbaren Informationen über WeeChat findet man unter
https://weechat.org/dev/info/[this page ^↗^^].
Alle Informationen die WeeChat betreffen findet man auf: https://weechat.org/dev/info
Beispiel eines URL Transfers, mit zusätzliche Optionen: Es wird das neuste
WeeChat Entwicklerpaket in die Datei _/tmp/weechat-devel.tar.gz_ gesichert:
[source,python]
----
def my_process_cb(data, command, return_code, out, err):
if return_code >= 0:
weechat.prnt("", "End of transfer (return code = %d)" % return_code)
def my_process_cb(data, command, rc, out, err):
if int(rc) >= 0:
weechat.prnt("", "End of transfer (rc=%s)" % rc)
return weechat.WEECHAT_RC_OK
weechat.hook_process_hashtable("url:https://weechat.org/files/src/weechat-devel.tar.gz",
@@ -1177,7 +1142,7 @@ weechat.hook_process_hashtable("url:https://weechat.org/files/src/weechat-devel.
Für weitere Informationen zum URL Transfer und verfügbare Optionen, siehe Funktionen
`+hook_process+` und `+hook_process_hashtable+` in
link:weechat_plugin_api.en.html#_hook_process[WeeChat plugin API reference ^↗^^] (Englisch).
link:weechat_plugin_api.en.html#_hook_process[WeeChat plugin API reference] (Englisch).
[[config_options]]
=== Konfiguration / Optionen
@@ -1333,71 +1298,63 @@ Das Ergebnis ist eine Hashtabelle mit folgenden Schlüsseln
[width="100%",cols="3,^2,10,7",options="header"]
|===
| Schlüssel | Seit WeeChat ^(1)^ | Beschreibung | Beispiel
| Schlüssel | Seit WeeChat ^(1)^ | Beschreibung | Beispiel
| Tags | 0.4.0
| Tags in der Nachricht (kann leer sein).
| `+time=2015-06-27T16:40:35.000Z+`
| Tags | 0.4.0 |
Tags in der Nachricht (kann leer sein). |
`+time=2015-06-27T16:40:35.000Z+`
| tag_xxx | 3.3
| Wert des Tags "xxx" ohne Escapezeichen (ein Schlüssel pro Tag).
| `+2015-06-27T16:40:35.000Z+`
| tag_xxx | 3.3 |
Wert des Tags "xxx" ohne Escapezeichen (ein Schlüssel pro Tag). |
`+2015-06-27T16:40:35.000Z+`
| message_without_tags | 0.4.0
| Die IRC Nachricht ohne Tags (wie eine Nachricht ohne Tags).
| `+:nick!user@host PRIVMSG #weechat :hello!+`
| message_without_tags | 0.4.0 |
Die IRC Nachricht ohne Tags (wie eine Nachricht ohne Tags). |
`+:nick!user@host PRIVMSG #weechat :hello!+`
| nick | 0.3.4
| der ursprüngliche Nick.
| `+nick+`
| nick | 0.3.4 |
der ursprüngliche Nick. |
`+nick+`
| user | 2.7
| der ursprüngliche Benutzer.
| `+user+`
| user | 2.7 |
der ursprüngliche Benutzer. |
`+user+`
| host | 0.3.4
| der ursprüngliche Host (beinhaltet den Nick).
| `+nick!user@host+`
| host | 0.3.4 |
der ursprüngliche Host (beinhaltet den Nick). |
`+nick!user@host+`
| command | 0.3.4
| der Befehl (_PRIVMSG_, _NOTICE_, ...).
| `+PRIVMSG+`
| command | 0.3.4 |
der Befehl (_PRIVMSG_, _NOTICE_, ...). |
`+PRIVMSG+`
| channel | 0.3.4
| der Zielchanne.l|
| channel | 0.3.4 |
der Zielchanne.l|
`+#weechat+`
| arguments | 0.3.4
| das Argument des Befehls (beinhaltet den Channel).
| `+#weechat :hello!+`
| arguments | 0.3.4 |
das Argument des Befehls (beinhaltet den Channel). |
`+#weechat :hello!+`
| text | 1.3
| der Text (zum Beispiel eine Nachricht eines Users).
| `+hello!+`
| text | 1.3 |
der Text (zum Beispiel eine Nachricht eines Users). |
`+hello!+`
| paramN | 3.4
| Befehlsparameter (von 1 bis N).
| `+#weechat+`
| pos_command | 1.3 |
Index von _command_ innerhalb einer Nachricht ("-1" falls _command_ nicht gefunden wird). |
`+47+`
| num_params | 3.4
| Anzahl der Befehlsparameter.
| `+2+`
| pos_arguments | 1.3 |
Index von_arguments_ innerhalb einer Nachricht ("-1" falls _arguments_ nicht gefunden wird). |
`+55+`
| pos_command | 1.3
| Index von _command_ innerhalb einer Nachricht ("-1" falls _command_ nicht gefunden wird).
| `+47+`
| pos_channel | 1.3 |
Index von _channel_ innerhalb einer Nachricht ("-1" falls _channel_ nicht gefunden wird). |
`+55+`
| pos_arguments | 1.3
| Index von_arguments_ innerhalb einer Nachricht ("-1" falls _arguments_ nicht gefunden wird).
| `+55+`
| pos_channel | 1.3
| Index von _channel_ innerhalb einer Nachricht ("-1" falls _channel_ nicht gefunden wird).
| `+55+`
| pos_text | 1.3
| Index von _text_ innerhalb einer Nachricht ("-1" falls _text_ nicht gefunden wird).
| `+65+`
| pos_text | 1.3 |
Index von _text_ innerhalb einer Nachricht ("-1" falls _text_ nicht gefunden wird). |
`+65+`
|===
[NOTE]
@@ -1421,9 +1378,6 @@ dict = weechat.info_get_hashtable(
# "channel": "#weechat",
# "arguments": "#weechat :hello!",
# "text": "hello!",
# "param1": "#weechat",
# "param2": "hello!",
# "num_params": "2",
# "pos_command": "65",
# "pos_arguments": "73",
# "pos_channel": "73",
+807 -1386
View File
File diff suppressed because it is too large Load Diff
+850
View File
@@ -0,0 +1,850 @@
#!/usr/bin/env python3
#
# Copyright (C) 2008-2021 Sébastien Helleu <flashcode@flashtux.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
#
"""
Documentation generator for WeeChat: build include files with:
- commands
- config options
- default aliases
- IRC colors
- infos
- infos hashtable
- infolists
- hdata
- completions
- URL options
- plugins priority.
Instructions to build config files yourself in WeeChat directories
(replace "path" with the path to the docgen.py script in WeeChat repository):
weechat -t -r "/python load /path/docgen.py;/docgen;/quit"
There's one output file per language (where xx is language):
/path/xx/includes/autogen.xx.adoc
This script requires Python 3.6+.
"""
SCRIPT_NAME = 'docgen'
SCRIPT_AUTHOR = 'Sébastien Helleu <flashcode@flashtux.org>'
SCRIPT_VERSION = '0.3'
SCRIPT_LICENSE = 'GPL3'
SCRIPT_DESC = 'Documentation generator for WeeChat'
SCRIPT_COMMAND = 'docgen'
IMPORT_OK = True
# pylint: disable=wrong-import-position
try:
from collections import defaultdict
from operator import itemgetter
import gettext
import hashlib
import inspect
import os
import re
except ImportError as exc:
print(f'Missing package(s) for {SCRIPT_NAME}: {exc}')
IMPORT_OK = False
try:
import weechat # pylint: disable=import-error
except ImportError:
print('This script must be run under WeeChat.')
print('Get WeeChat now at: https://weechat.org/')
IMPORT_OK = False
# list of locales for which we want to build doc files to include
LOCALE_LIST = (
'de_DE',
'en_US',
'fr_FR',
'it_IT',
'ja_JP',
'pl_PL',
'sr_RS',
)
# all commands/options/.. of following plugins will produce a file
# non-listed plugins will be ignored
# value: "c" = plugin may have many commands
# "o" = write config options for plugin
# if plugin is listed without "c", that means plugin has only one command
# /name (where "name" is name of plugin)
# Note: we consider core is a plugin called "weechat"
PLUGIN_LIST = {
'sec': 'o',
'weechat': 'co',
'alias': '',
'buflist': 'co',
'charset': 'o',
'exec': 'o',
'fifo': 'o',
'fset': 'o',
'irc': 'co',
'logger': 'o',
'relay': 'o',
'script': 'o',
'perl': 'o',
'python': 'o',
'ruby': 'o',
'lua': 'o',
'tcl': 'o',
'guile': 'o',
'javascript': 'o',
'php': 'o',
'spell': 'o',
'trigger': 'o',
'xfer': 'co',
'typing': 'o',
}
# options to ignore
IGNORE_OPTIONS = (
r'charset\.decode\..*',
r'charset\.encode\..*',
r'irc\.msgbuffer\..*',
r'irc\.ctcp\..*',
r'irc\.ignore\..*',
r'irc\.server\..*',
r'logger\.level\..*',
r'logger\.mask\..*',
r'relay\.port\..*',
r'spell\.dict\..*',
r'spell\.option\..*',
r'trigger\.trigger\..*',
r'weechat\.palette\..*',
r'weechat\.proxy\..*',
r'weechat\.bar\..*',
r'weechat\.debug\..*',
r'weechat\.notify\..*',
)
# completions to ignore
IGNORE_COMPLETIONS_ITEMS = (
'docgen.*',
)
def translate(string):
"""Translate a string."""
return _(string) if string else string
def escape(string):
"""Escape a string."""
return string.replace('|', '\\|')
def sha256_file(filename, default=None):
"""Return SHA256 checksum of a file."""
try:
with open(filename, 'rb') as _file:
checksum = hashlib.sha256(_file.read()).hexdigest()
except IOError:
checksum = default
return checksum
class WeechatDoc(): # pylint: disable=too-few-public-methods
"""A class to read documentation from WeeChat API."""
def __init__(self):
pass
def read_doc(self):
"""Get documentation from WeeChat API."""
functions = sorted([
func[0]
for func in inspect.getmembers(self, predicate=inspect.isfunction)
if func[0].startswith('_read_')
])
return {
function[6:]: getattr(self, function)()
for function in functions
}
@staticmethod
def _read_user_commands():
"""
Get list of WeeChat/plugins commands as dictionary with 3 indexes:
plugin, command, xxx.
"""
commands = defaultdict(lambda: defaultdict(defaultdict))
infolist = weechat.infolist_get('hook', '', 'command')
while weechat.infolist_next(infolist):
plugin = (weechat.infolist_string(infolist, 'plugin_name')
or 'weechat')
if plugin in PLUGIN_LIST:
command = weechat.infolist_string(infolist, 'command')
if command == plugin or 'c' in PLUGIN_LIST[plugin]:
for key in ('description', 'args', 'args_description',
'completion'):
commands[plugin][command][key] = \
weechat.infolist_string(infolist, key)
weechat.infolist_free(infolist)
return commands
@staticmethod
def _read_user_options():
"""
Get list of WeeChat/plugins config options as dictionary with
4 indexes: config, section, option, xxx.
"""
options = \
defaultdict(lambda: defaultdict(lambda: defaultdict(defaultdict)))
infolist = weechat.infolist_get('option', '', '')
while weechat.infolist_next(infolist):
full_name = weechat.infolist_string(infolist, 'full_name')
if not re.search('|'.join(IGNORE_OPTIONS), full_name):
config = weechat.infolist_string(infolist, 'config_name')
if config in PLUGIN_LIST and 'o' in PLUGIN_LIST[config]:
section = weechat.infolist_string(infolist, 'section_name')
option = weechat.infolist_string(infolist, 'option_name')
for key in ('type', 'string_values', 'default_value',
'description'):
options[config][section][option][key] = \
weechat.infolist_string(infolist, key)
for key in ('min', 'max', 'null_value_allowed'):
options[config][section][option][key] = \
weechat.infolist_integer(infolist, key)
weechat.infolist_free(infolist)
return options
@staticmethod
def _read_api_infos():
"""
Get list of WeeChat/plugins infos as dictionary with 3 indexes:
plugin, name, xxx.
"""
infos = defaultdict(lambda: defaultdict(defaultdict))
infolist = weechat.infolist_get('hook', '', 'info')
while weechat.infolist_next(infolist):
info_name = weechat.infolist_string(infolist, 'info_name')
plugin = (weechat.infolist_string(infolist, 'plugin_name')
or 'weechat')
for key in ('description', 'args_description'):
infos[plugin][info_name][key] = \
weechat.infolist_string(infolist, key)
weechat.infolist_free(infolist)
return infos
@staticmethod
def _read_api_infos_hashtable():
"""
Get list of WeeChat/plugins infos (hashtable) as dictionary with
3 indexes: plugin, name, xxx.
"""
infos_hashtable = defaultdict(lambda: defaultdict(defaultdict))
infolist = weechat.infolist_get('hook', '', 'info_hashtable')
while weechat.infolist_next(infolist):
info_name = weechat.infolist_string(infolist, 'info_name')
plugin = (weechat.infolist_string(infolist, 'plugin_name')
or 'weechat')
for key in ('description', 'args_description',
'output_description'):
infos_hashtable[plugin][info_name][key] = \
weechat.infolist_string(infolist, key)
weechat.infolist_free(infolist)
return infos_hashtable
@staticmethod
def _read_api_infolists():
"""
Get list of WeeChat/plugins infolists as dictionary with 3 indexes:
plugin, name, xxx.
"""
infolists = defaultdict(lambda: defaultdict(defaultdict))
infolist = weechat.infolist_get('hook', '', 'infolist')
while weechat.infolist_next(infolist):
infolist_name = weechat.infolist_string(infolist, 'infolist_name')
plugin = (weechat.infolist_string(infolist, 'plugin_name')
or 'weechat')
for key in ('description', 'pointer_description',
'args_description'):
infolists[plugin][infolist_name][key] = \
weechat.infolist_string(infolist, key)
weechat.infolist_free(infolist)
return infolists
@staticmethod
def _read_api_hdata(): # pylint: disable=too-many-locals
"""
Get list of WeeChat/plugins hdata as dictionary with 3 indexes:
plugin, name, xxx.
"""
hdata = defaultdict(lambda: defaultdict(defaultdict))
infolist = weechat.infolist_get('hook', '', 'hdata')
while weechat.infolist_next(infolist):
hdata_name = weechat.infolist_string(infolist, 'hdata_name')
plugin = (weechat.infolist_string(infolist, 'plugin_name')
or 'weechat')
hdata[plugin][hdata_name]['description'] = \
weechat.infolist_string(infolist, 'description')
variables = ''
vars_update = ''
lists = ''
ptr_hdata = weechat.hdata_get(hdata_name)
if ptr_hdata:
hdata2 = []
string = weechat.hdata_get_string(ptr_hdata, 'var_keys_values')
if string:
for item in string.split(','):
key = item.split(':')[0]
var_offset = weechat.hdata_get_var_offset(
ptr_hdata,
key,
)
var_array_size = \
weechat.hdata_get_var_array_size_string(
ptr_hdata,
'',
key,
)
if var_array_size:
var_array_size = \
f', array_size: "{var_array_size}"'
var_hdata = weechat.hdata_get_var_hdata(ptr_hdata, key)
if var_hdata:
var_hdata = f', hdata: "{var_hdata}"'
type_string = weechat.hdata_get_var_type_string(
ptr_hdata,
key,
)
hdata2.append({
'offset': var_offset,
'text': f'_{key}_ ({type_string})',
'textlong': (f'_{key}_   ({type_string}'
f'{var_array_size}{var_hdata})'),
'update': weechat.hdata_update(
ptr_hdata, '', {'__update_allowed': key}),
})
hdata2 = sorted(hdata2, key=itemgetter('offset'))
for item in hdata2:
variables += f'{item["textlong"]} +\n'
if item['update']:
vars_update += f'    {item["text"]} +\n'
if weechat.hdata_update(ptr_hdata, '',
{'__create_allowed': ''}):
vars_update += '    _{hdata_update_create}_ +\n'
if weechat.hdata_update(ptr_hdata, '',
{'__delete_allowed': ''}):
vars_update += '    _{hdata_update_delete}_ +\n'
hdata[plugin][hdata_name]['vars'] = variables
hdata[plugin][hdata_name]['vars_update'] = vars_update.rstrip()
string = weechat.hdata_get_string(ptr_hdata, 'list_keys')
if string:
list_lists = string.split(',')
lists_std = [lst for lst in list_lists
if not lst.startswith('last_')]
lists_last = [lst for lst in list_lists
if lst.startswith('last_')]
for item in sorted(lists_std) + sorted(lists_last):
lists += f'_{item}_ +\n'
hdata[plugin][hdata_name]['lists'] = lists
weechat.infolist_free(infolist)
return hdata
@staticmethod
def _read_api_completions():
"""
Get list of WeeChat/plugins completions as dictionary with 3 indexes:
plugin, item, xxx.
"""
completions = defaultdict(lambda: defaultdict(defaultdict))
infolist = weechat.infolist_get('hook', '', 'completion')
while weechat.infolist_next(infolist):
completion_item = weechat.infolist_string(infolist,
'completion_item')
if not re.search('|'.join(IGNORE_COMPLETIONS_ITEMS),
completion_item):
plugin = (weechat.infolist_string(infolist, 'plugin_name')
or 'weechat')
completions[plugin][completion_item]['description'] = \
weechat.infolist_string(infolist, 'description')
weechat.infolist_free(infolist)
return completions
@staticmethod
def _read_api_url_options():
"""
Get list of URL options as list of dictionaries.
"""
url_options = []
infolist = weechat.infolist_get('url_options', '', '')
while weechat.infolist_next(infolist):
url_options.append({
'name': weechat.infolist_string(infolist, 'name').lower(),
'option': weechat.infolist_integer(infolist, 'option'),
'type': weechat.infolist_string(infolist, 'type'),
'constants': weechat.infolist_string(
infolist, 'constants').lower().replace(',', ', ')
})
weechat.infolist_free(infolist)
return url_options
@staticmethod
def _read_user_default_aliases():
"""
Get list of default aliases as list of dictionaries.
"""
default_aliases = []
infolist = weechat.infolist_get('alias_default', '', '')
while weechat.infolist_next(infolist):
default_aliases.append({
'name': '/' + weechat.infolist_string(infolist, 'name'),
'command': '/' + weechat.infolist_string(infolist, 'command'),
'completion': weechat.infolist_string(infolist, 'completion'),
})
weechat.infolist_free(infolist)
return default_aliases
@staticmethod
def _read_user_irc_colors():
"""
Get list of IRC colors as list of dictionaries.
"""
irc_colors = []
infolist = weechat.infolist_get('irc_color_weechat', '', '')
while weechat.infolist_next(infolist):
irc_colors.append({
'color_irc': weechat.infolist_string(infolist, 'color_irc'),
'color_weechat': weechat.infolist_string(infolist,
'color_weechat'),
})
weechat.infolist_free(infolist)
return irc_colors
@staticmethod
def _read_api_plugins_priority():
"""
Get priority of default WeeChat plugins as a dictionary.
"""
plugins_priority = {}
infolist = weechat.infolist_get('plugin', '', '')
while weechat.infolist_next(infolist):
name = weechat.infolist_string(infolist, 'name')
priority = weechat.infolist_integer(infolist, 'priority')
if priority in plugins_priority:
plugins_priority[priority].append(name)
else:
plugins_priority[priority] = [name]
weechat.infolist_free(infolist)
return plugins_priority
class AutogenDoc():
"""A class to write auto-generated doc files."""
def __init__(self, weechat_doc, doc_directory, locale):
"""Initialize auto-generated doc file."""
self.doc_directory = doc_directory
self.locale = locale
self.count_files = 0
self.count_updated = 0
self.filename = None
self.filename_tmp = None
self._file = None
self.install_translations()
self.write_autogen_files(weechat_doc)
def install_translations(self):
"""Install translations."""
trans = gettext.translation(
'weechat',
weechat.info_get('weechat_localedir', ''),
languages=[f'{self.locale}.UTF-8'],
fallback=True,
)
trans.install()
def open_file(self, name):
"""Open temporary auto-generated file."""
self.filename = os.path.join(
self.doc_directory,
self.locale[:2],
'includes',
f'autogen_{name}.{self.locale[:2]}.adoc',
)
self.filename_tmp = f'{self.filename}.tmp'
self._file = open(self.filename_tmp, 'w')
def write_autogen_files(self, weechat_doc):
"""Write auto-generated files."""
for name, doc in weechat_doc.items():
self.open_file(name)
self.write_autogen_file(name, doc)
self.update_autogen_file()
def write_autogen_file(self, name, doc):
"""Write auto-generated file."""
self.write('//')
self.write('// This file is auto-generated by script docgen.py.')
self.write('// DO NOT EDIT BY HAND!')
self.write('//')
getattr(self, f'_write_{name}')(doc)
def write(self, *args):
"""Write a line in auto-generated doc file."""
if args:
if len(args) > 1:
self._file.write(args[0] % args[1:])
else:
self._file.write(args[0])
self._file.write('\n')
def update_autogen_file(self):
"""Update doc file if needed (if content has changed)."""
self.count_files += 1
# close temp file
self._file.close()
sha_old = sha256_file(self.filename, 'old')
sha_new = sha256_file(self.filename_tmp, 'new')
# compare checksums
if sha_old != sha_new:
# update doc file
if os.path.exists(self.filename):
os.unlink(self.filename)
os.rename(self.filename_tmp, self.filename)
self.count_updated += 1
else:
os.unlink(self.filename_tmp)
def __str__(self):
"""Get status string."""
if self.count_updated > 0:
color_count = weechat.color('yellow')
color_updated = weechat.color('green')
color_reset = weechat.color('reset')
str_updated = (f', {color_count}{self.count_updated} '
f'{color_updated}updated{color_reset}')
else:
str_updated = ''
return f'{self.locale}: {self.count_files} files{str_updated}'
def _write_user_commands(self, commands):
"""Write commands."""
for plugin in commands:
self.write()
self.write(f'// tag::{plugin}_commands[]')
for i, command in enumerate(sorted(commands[plugin])):
if i > 0:
self.write()
_cmd = commands[plugin][command]
args = translate(_cmd['args'])
args_formats = args.split(' || ')
desc = translate(_cmd['description'])
args_desc = translate(_cmd['args_description'])
self.write(f'[[command_{plugin}_{command}]]')
self.write(f'* `+{command}+`: {desc}\n')
self.write('----')
prefix = '/' + command + ' '
if args_formats != ['']:
for fmt in args_formats:
self.write(prefix + fmt)
prefix = ' ' * len(prefix)
if args_desc:
self.write()
self.write(args_desc)
self.write('----')
self.write(f'// end::{plugin}_commands[]')
# pylint: disable=too-many-locals,too-many-branches
def _write_user_options(self, options):
"""Write config options."""
for config in options:
self.write()
self.write(f'// tag::{config}_options[]')
i = 0
for section in sorted(options[config]):
for option in sorted(options[config][section]):
if i > 0:
self.write()
i += 1
_opt = options[config][section][option]
opt_type = _opt['type']
string_values = _opt['string_values']
default_value = _opt['default_value']
opt_min = _opt['min']
opt_max = _opt['max']
null_value_allowed = _opt['null_value_allowed']
desc = translate(_opt['description'])
type_nls = translate(opt_type)
values = ''
if opt_type == 'boolean':
values = 'on, off'
elif opt_type == 'integer':
if string_values:
values = string_values.replace('|', ', ')
else:
values = f'{opt_min} .. {opt_max}'
elif opt_type == 'string':
if opt_max <= 0:
values = _('any string')
elif opt_max == 1:
values = _('any char')
elif opt_max > 1:
values = (_('any string')
+ '(' + _('max chars') + ': '
+ opt_max + ')')
else:
values = _('any string')
default_value = ('"%s"' %
default_value.replace('"', '\\"'))
elif opt_type == 'color':
values = _('a WeeChat color name (default, black, '
'(dark)gray, white, (light)red, '
'(light)green, brown, yellow, (light)blue, '
'(light)magenta, (light)cyan), a terminal '
'color number or an alias; attributes are '
'allowed before color (for text color '
'only, not background): \"*\" for bold, '
'\"!\" for reverse, \"/\" for italic, '
'\"_\" for underline')
self.write(f'* [[option_{config}.{section}.{option}]] '
f'*{config}.{section}.{option}*')
self.write('** %s: pass:none[%s]',
_('description'), desc.replace(']', '\\]'))
self.write('** %s: %s', _('type'), type_nls)
self.write('** %s: %s', _('values'), values)
self.write('** %s: `+%s+`',
_('default value'), default_value)
if null_value_allowed:
self.write('** %s',
_('undefined value allowed (null)'))
self.write(f'// end::{config}_options[]')
def _write_user_default_aliases(self, default_aliases):
"""Write default aliases."""
self.write()
self.write('// tag::default_aliases[]')
self.write('[width="100%",cols="2m,5m,5",options="header"]')
self.write('|===')
self.write('| %s | %s | %s\n',
_('Alias'), _('Command'), _('Completion'))
for alias in default_aliases:
self.write('| %s | %s | %s',
escape(alias['name']),
escape(alias['command']),
escape(alias['completion'] or '-'))
self.write('|===')
self.write('// end::default_aliases[]')
def _write_user_irc_colors(self, irc_colors):
"""Write IRC colors."""
self.write()
self.write('// tag::irc_colors[]')
self.write('[width="50%",cols="^2m,3",options="header"]')
self.write('|===')
self.write('| %s | %s\n', _('IRC color'), _('WeeChat color'))
for color in irc_colors:
self.write('| %s | %s',
escape(color['color_irc']),
escape(color['color_weechat']))
self.write('|===')
self.write('// end::irc_colors[]')
def _write_api_infos(self, infos):
"""Write infos."""
self.write()
self.write('// tag::infos[]')
self.write('[width="100%",cols="^1,^2,6,6",options="header"]')
self.write('|===')
self.write('| %s | %s | %s | %s\n',
_('Plugin'), _('Name'), _('Description'), _('Arguments'))
for plugin in sorted(infos):
for info in sorted(infos[plugin]):
_inf = infos[plugin][info]
desc = translate(_inf['description'])
args_desc = translate(_inf['args_description']) or '-'
self.write('| %s | %s | %s | %s\n',
escape(plugin), escape(info), escape(desc),
escape(args_desc))
self.write('|===')
self.write('// end::infos[]')
def _write_api_infos_hashtable(self, infos_hashtable):
"""Write infos hashtable."""
self.write()
self.write('// tag::infos_hashtable[]')
self.write('[width="100%",cols="^1,^2,6,6,8",options="header"]')
self.write('|===')
self.write('| %s | %s | %s | %s | %s\n',
_('Plugin'), _('Name'), _('Description'),
_('Hashtable (input)'), _('Hashtable (output)'))
for plugin in sorted(infos_hashtable):
for info in sorted(infos_hashtable[plugin]):
_inh = infos_hashtable[plugin][info]
desc = translate(_inh['description'])
args_desc = translate(_inh['args_description']) or '-'
output_desc = translate(_inh['output_description']) or '-'
self.write('| %s | %s | %s | %s | %s\n',
escape(plugin), escape(info), escape(desc),
escape(args_desc), escape(output_desc))
self.write('|===')
self.write('// end::infos_hashtable[]')
def _write_api_infolists(self, infolists):
"""Write infolists."""
self.write()
self.write('// tag::infolists[]')
self.write('[width="100%",cols="^1,^2,5,5,5",options="header"]')
self.write('|===')
self.write('| %s | %s | %s | %s | %s\n',
_('Plugin'), _('Name'), _('Description'), _('Pointer'),
_('Arguments'))
for plugin in sorted(infolists):
for infolist in sorted(infolists[plugin]):
_inl = infolists[plugin][infolist]
desc = translate(_inl['description'])
pointer_desc = translate(_inl['pointer_description']) or '-'
args_desc = translate(_inl['args_description']) or '-'
self.write('| %s | %s | %s | %s | %s\n',
escape(plugin), escape(infolist), escape(desc),
escape(pointer_desc), escape(args_desc))
self.write('|===')
self.write('// end::infolists[]')
def _write_api_hdata(self, hdata):
"""Write hdata."""
self.write()
self.write('// tag::hdata[]')
self.write(':hdata_update_create: __create')
self.write(':hdata_update_delete: __delete')
self.write('[width="100%",cols="^1,^2,2,2,5",options="header"]')
self.write('|===')
self.write('| %s | %s | %s | %s | %s\n',
_('Plugin'), _('Name'), _('Description'), _('Lists'),
_('Variables'))
for plugin in sorted(hdata):
for hdata_name in sorted(hdata[plugin]):
_hda = hdata[plugin][hdata_name]
anchor = f'hdata_{hdata_name}'
desc = translate(_hda['description'])
variables = _hda['vars']
vars_update = _hda['vars_update']
lists = _hda['lists']
self.write(f'| {escape(plugin)}')
self.write(f'| [[{escape(anchor)}]]<<{escape(anchor)},'
f'{escape(hdata_name)}>>')
self.write(f'| {escape(desc)}')
str_lists = escape(lists) if lists else '-'
self.write(f'| {str_lists}')
self.write(f'| {escape(variables)}')
if vars_update:
self.write('*%s* +\n%s',
_('Update allowed:'), escape(vars_update))
self.write()
self.write('|===')
self.write('// end::hdata[]')
def _write_api_completions(self, completions):
"""Write completions."""
self.write()
self.write('// tag::completions[]')
self.write('[width="100%",cols="^1,^2,7",options="header"]')
self.write('|===')
self.write('| %s | %s | %s\n',
_('Plugin'), _('Name'), _('Description'))
for plugin in sorted(completions):
for completion_item in sorted(completions[plugin]):
_cmp = completions[plugin][completion_item]
desc = translate(_cmp['description'])
self.write('| %s | %s | %s\n',
escape(plugin), escape(completion_item),
escape(desc))
self.write('|===')
self.write('// end::completions[]')
def _write_api_url_options(self, url_options):
"""Write URL options."""
self.write()
self.write('// tag::url_options[]')
self.write('[width="100%",cols="2,^1,7",options="header"]')
self.write('|===')
self.write('| %s | %s ^(1)^ | %s ^(2)^\n',
_('Option'), _('Type'), _('Constants'))
for option in url_options:
constants = option['constants']
if constants:
constants = ' ' + constants
self.write('| %s | %s |%s\n',
escape(option['name']), escape(option['type']),
escape(constants))
self.write('|===')
self.write('// end::url_options[]')
def _write_api_plugins_priority(self, plugins_priority):
"""Write plugins priority."""
self.write()
self.write('// tag::plugins_priority[]')
for priority in sorted(plugins_priority, reverse=True):
plugins = ', '.join(sorted(plugins_priority[priority]))
self.write('. %s (%s)', escape(plugins), priority)
self.write('// end::plugins_priority[]')
def docgen_cmd_cb(data, buf, args):
"""Callback for /docgen command."""
doc_directory = data
locales = args.split(' ') if args else sorted(LOCALE_LIST)
weechat_doc = WeechatDoc().read_doc()
weechat.prnt('', '-' * 75)
for locale in locales:
autogen = AutogenDoc(weechat_doc, doc_directory, locale)
weechat.prnt('', f'docgen: {autogen}')
weechat.prnt('', '-' * 75)
return weechat.WEECHAT_RC_OK
def docgen_completion_cb(data, completion_item, buf, completion):
"""Callback for completion."""
for locale in LOCALE_LIST:
weechat.completion_list_add(completion, locale, 0,
weechat.WEECHAT_LIST_POS_SORT)
return weechat.WEECHAT_RC_OK
if __name__ == '__main__' and IMPORT_OK:
if weechat.register(SCRIPT_NAME, SCRIPT_AUTHOR, SCRIPT_VERSION,
SCRIPT_LICENSE, SCRIPT_DESC, '', ''):
weechat.hook_command(
SCRIPT_COMMAND,
'Documentation generator.',
'[locales]',
'locales: list of locales to build (by default build all locales)',
'%(docgen_locales)|%*',
'docgen_cmd_cb',
os.path.dirname(__file__),
)
weechat.hook_completion(
'docgen_locales',
'locales for docgen',
'docgen_completion_cb',
'',
)
+9 -18
View File
@@ -1,6 +1,6 @@
<!--
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>
@@ -9,11 +9,10 @@
@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;
--body-font: system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";
--link-color: #8aceff;
--table-thead-tfoot: #252525;
--th-color: #fff;
--toc-bg-color: #252525;
@@ -22,7 +21,6 @@
--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;
@@ -41,11 +39,10 @@
@media (not (prefers-color-scheme: dark)), (prefers-color-scheme: light) {
/* light theme */
:root {
color-scheme: light;
--body-bg-color: #fff;
--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;
--body-font: system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";
--link-color: #1d4b8f;
--table-thead-tfoot: #f7f8f7;
--th-color: #000;
--toc-bg-color: #f8f8f7;
@@ -55,7 +52,6 @@
--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;
@@ -90,7 +86,6 @@ h1, h2, h3, #toctitle, .sidebarblock > .content > .title, h4, h5, h6 {
a:link, a:visited, #header .details span.email a {
color: var(--link-color);
text-decoration: none;
}
table thead, table tfoot {
@@ -139,10 +134,6 @@ code, .prettyprint {
color: var(--body-color);
}
pre {
color: var(--pre-color) !important;
}
pre > code {
background-color: var(--pre-code-bg-color) !important;
}
@@ -199,7 +190,7 @@ mark {
/* syntax highlighting tuning */
pre.pygments .tok-cp {
color: #44cfaf;
color: #ed4848;
}
pre.pygments .tok-nc, pre.pygments .tok-nf {
@@ -227,8 +218,8 @@ h1, h2, h3, h4, h5 {
}
.literalblock pre {
font-family: "DejaVu Sans Mono", "Liberation Mono", "Lucida Console", monospace, 'Courier New', Courier;
line-height: inherit;
font-family: monospace, 'Courier New', Courier;
line-height: normal;
}
kbd {
+151
View File
@@ -0,0 +1,151 @@
#
# 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/>.
#
if(ENABLE_MAN)
# man page: weechat
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat.1
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -b manpage -o weechat.1 ${CMAKE_CURRENT_SOURCE_DIR}/weechat.1.en.adoc
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/weechat.1.en.adoc
${CMAKE_CURRENT_SOURCE_DIR}/includes/cmdline_options.en.adoc
${CMAKE_CURRENT_SOURCE_DIR}/includes/man.en.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building weechat.1 (en)"
)
add_custom_target(doc-man-weechat-en ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat.1)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat.1 DESTINATION ${MANDIR}/man1)
if(ENABLE_HEADLESS)
# man page: weechat-headless
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat-headless.1
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -b manpage -o weechat-headless.1 ${CMAKE_CURRENT_SOURCE_DIR}/weechat-headless.1.en.adoc
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/weechat-headless.1.en.adoc
${CMAKE_CURRENT_SOURCE_DIR}/includes/cmdline_options.en.adoc
${CMAKE_CURRENT_SOURCE_DIR}/includes/man.en.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building weechat-headless.1 (en)"
)
add_custom_target(doc-man-weechat-headless-en ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat-headless.1)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat-headless.1 DESTINATION ${MANDIR}/man1)
endif()
endif()
if(ENABLE_DOC)
file(GLOB AUTOGEN_USER "${CMAKE_CURRENT_SOURCE_DIR}/includes/autogen_user_*.adoc")
file(GLOB AUTOGEN_PLUGIN "${CMAKE_CURRENT_SOURCE_DIR}/includes/autogen_api_*.adoc")
# user's guide
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_user.en.html
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -o weechat_user.en.html ${CMAKE_CURRENT_SOURCE_DIR}/weechat_user.en.adoc
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/../docinfo.html
${CMAKE_CURRENT_SOURCE_DIR}/weechat_user.en.adoc
${CMAKE_CURRENT_SOURCE_DIR}/includes/cmdline_options.en.adoc
${AUTOGEN_USER}
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building weechat_user.en.html"
)
add_custom_target(doc-user-en ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_user.en.html)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_user.en.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
# plugin API reference
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_plugin_api.en.html
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -o weechat_plugin_api.en.html ${CMAKE_CURRENT_SOURCE_DIR}/weechat_plugin_api.en.adoc
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/../docinfo.html
${CMAKE_CURRENT_SOURCE_DIR}/weechat_plugin_api.en.adoc
${AUTOGEN_PLUGIN}
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building weechat_plugin_api.en.html"
)
add_custom_target(doc-plugin-api-en ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_plugin_api.en.html)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_plugin_api.en.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
# scripting guide
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_scripting.en.html
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -o weechat_scripting.en.html ${CMAKE_CURRENT_SOURCE_DIR}/weechat_scripting.en.adoc
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/../docinfo.html
${CMAKE_CURRENT_SOURCE_DIR}/weechat_scripting.en.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building weechat_scripting.en.html"
)
add_custom_target(doc-scripting-en ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_scripting.en.html)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_scripting.en.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
# FAQ
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_faq.en.html
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -o weechat_faq.en.html ${CMAKE_CURRENT_SOURCE_DIR}/weechat_faq.en.adoc
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/../docinfo.html
${CMAKE_CURRENT_SOURCE_DIR}/weechat_faq.en.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building weechat_faq.en.html"
)
add_custom_target(doc-faq-en ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_faq.en.html)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_faq.en.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
# quickstart
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.en.html
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -o weechat_quickstart.en.html ${CMAKE_CURRENT_SOURCE_DIR}/weechat_quickstart.en.adoc
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/../docinfo.html
${CMAKE_CURRENT_SOURCE_DIR}/weechat_quickstart.en.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building 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})
# relay protocol
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_relay_protocol.en.html
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -o weechat_relay_protocol.en.html ${CMAKE_CURRENT_SOURCE_DIR}/weechat_relay_protocol.en.adoc
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/../docinfo.html
${CMAKE_CURRENT_SOURCE_DIR}/weechat_relay_protocol.en.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building weechat_relay_protocol.en.html"
)
add_custom_target(doc-relay-protocol-en ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_relay_protocol.en.html)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_relay_protocol.en.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
# developer's guide
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_dev.en.html
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -o weechat_dev.en.html ${CMAKE_CURRENT_SOURCE_DIR}/weechat_dev.en.adoc
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/../docinfo.html
${CMAKE_CURRENT_SOURCE_DIR}/weechat_dev.en.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building weechat_dev.en.html"
)
add_custom_target(doc-dev-en ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_dev.en.html)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_dev.en.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
endif()
+129
View File
@@ -0,0 +1,129 @@
#
# Copyright (C) 2003-2021 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2006 Julien Louis <ptitlouis@sysif.net>
#
# This file is part of WeeChat, the extensible chat client.
#
# 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/>.
#
docdir = $(datadir)/doc/$(PACKAGE)
EXTRA_DIST = CMakeLists.txt \
docinfo.html \
weechat.1.en.adoc \
weechat-headless.1.en.adoc \
weechat_user.en.adoc \
weechat_plugin_api.en.adoc \
weechat_scripting.en.adoc \
weechat_faq.en.adoc \
weechat_quickstart.en.adoc \
weechat_relay_protocol.en.adoc \
weechat_dev.en.adoc \
includes/autogen_api_completions.en.adoc \
includes/autogen_api_hdata.en.adoc \
includes/autogen_api_infolists.en.adoc \
includes/autogen_api_infos.en.adoc \
includes/autogen_api_infos_hashtable.en.adoc \
includes/autogen_api_plugins_priority.en.adoc \
includes/autogen_api_url_options.en.adoc \
includes/autogen_user_commands.en.adoc \
includes/autogen_user_default_aliases.en.adoc \
includes/autogen_user_irc_colors.en.adoc \
includes/autogen_user_options.en.adoc \
includes/cmdline_options.en.adoc \
includes/man.en.adoc
if MAN
man_targets = weechat.1 \
weechat-headless.1
man_install = install-man
man_uninstall = uninstall-man
endif
if DOC
doc_targets = weechat_user.en.html \
weechat_plugin_api.en.html \
weechat_scripting.en.html \
weechat_faq.en.html \
weechat_quickstart.en.html \
weechat_relay_protocol.en.html \
weechat_dev.en.html
doc_install = install-doc
doc_uninstall = uninstall-doc
endif
all-local: $(man_targets) $(doc_targets)
# man pages
weechat.1: weechat.1.en.adoc includes/cmdline_options.en.adoc includes/man.en.adoc
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -b manpage -o weechat.1 $(abs_top_srcdir)/doc/en/weechat.1.en.adoc
weechat-headless.1: weechat-headless.1.en.adoc includes/cmdline_options.en.adoc includes/man.en.adoc
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -b manpage -o weechat-headless.1 $(abs_top_srcdir)/doc/en/weechat-headless.1.en.adoc
# user's guide
weechat_user.en.html: weechat_user.en.adoc includes/cmdline_options.en.adoc $(wildcard includes/autogen_user_*.adoc) $(abs_top_srcdir)/doc/docinfo.html
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_user.en.html $(abs_top_srcdir)/doc/en/weechat_user.en.adoc
# plugin API reference
weechat_plugin_api.en.html: weechat_plugin_api.en.adoc $(wildcard includes/autogen_api_*.adoc) $(abs_top_srcdir)/doc/docinfo.html
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_plugin_api.en.html $(abs_top_srcdir)/doc/en/weechat_plugin_api.en.adoc
# scripting guide
weechat_scripting.en.html: weechat_scripting.en.adoc $(abs_top_srcdir)/doc/docinfo.html
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_scripting.en.html $(abs_top_srcdir)/doc/en/weechat_scripting.en.adoc
# FAQ
weechat_faq.en.html: weechat_faq.en.adoc $(abs_top_srcdir)/doc/docinfo.html
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_faq.en.html $(abs_top_srcdir)/doc/en/weechat_faq.en.adoc
# quickstart
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
# relay protocol
weechat_relay_protocol.en.html: weechat_relay_protocol.en.adoc $(abs_top_srcdir)/doc/docinfo.html
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_relay_protocol.en.html $(abs_top_srcdir)/doc/en/weechat_relay_protocol.en.adoc
# developer's guide
weechat_dev.en.html: weechat_dev.en.adoc $(abs_top_srcdir)/doc/docinfo.html
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_dev.en.html $(abs_top_srcdir)/doc/en/weechat_dev.en.adoc
# install man/docs
install-data-hook: $(man_install) $(doc_install)
install-man:
$(mkinstalldirs) $(DESTDIR)$(mandir)/man1/
$(INSTALL_DATA) *.1 $(DESTDIR)$(mandir)/man1/
install-doc:
$(mkinstalldirs) $(DESTDIR)$(docdir)/
$(INSTALL_DATA) *.html $(DESTDIR)$(docdir)/
# uninstall man/docs
uninstall-hook: $(man_uninstall) $(doc_uninstall)
uninstall-man:
$(RM) $(DESTDIR)$(mandir)/man1/weechat.1
$(RM) $(DESTDIR)$(mandir)/man1/weechat-headless.1
-rmdir $(DESTDIR)$(mandir)/man1
uninstall-doc:
$(RM) $(DESTDIR)$(docdir)/*.en.html
-rmdir $(DESTDIR)$(docdir)
# clean
clean-local:
-$(RM) weechat.1 weechat-headless.1 weechat_*.html
+1
View File
@@ -0,0 +1 @@
../docinfo.html
@@ -0,0 +1,192 @@
//
// This file is auto-generated by script docgen.py.
// DO NOT EDIT BY HAND!
//
// tag::completions[]
[width="100%",cols="^1,^2,7",options="header"]
|===
| Plugin | Name | Description
| alias | alias | list of aliases
| alias | alias_value | value of alias
| exec | exec_commands_ids | ids (numbers and names) of executed commands
| fset | fset_options | configuration files, sections, options and words of options
| guile | guile_script | list of scripts
| irc | irc_channel | current IRC channel
| irc | irc_channel_nicks_hosts | nicks and hostnames of current IRC channel
| irc | irc_channel_topic | topic of current IRC channel
| irc | irc_channels | channels on all IRC servers
| 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_numbers | modelist numbers of current IRC channel; required argument: modelist mode
| irc | irc_msg_kick | default kick message
| irc | irc_msg_part | default part message for IRC channel
| irc | irc_notify_nicks | nicks in notify list
| irc | irc_privates | privates on all IRC servers
| irc | irc_raw_filters | filters for irc raw buffer
| irc | irc_server | current IRC server
| irc | irc_server_channels | channels on current IRC server
| irc | irc_server_nick | nick on current IRC server
| irc | irc_server_nicks | nicks on all channels of current IRC server
| irc | irc_server_privates | privates on current IRC server
| irc | irc_servers | IRC servers (internal names)
| irc | nick | nicks of current IRC channel
| javascript | javascript_script | list of scripts
| lua | lua_script | list of scripts
| perl | perl_script | list of scripts
| php | php_script | list of scripts
| python | python_script | list of scripts
| relay | relay_free_port | first free port for relay plugin
| relay | relay_protocol_name | all possible protocol.name for relay plugin
| relay | relay_relays | protocol.name of current relays for relay plugin
| ruby | ruby_script | list of scripts
| script | script_extensions | list of script extensions
| script | script_files | files in script directories
| script | script_languages | list of script languages
| script | script_scripts | list of scripts in repository
| script | script_scripts_installed | list of scripts installed (from repository)
| script | script_tags | tags of scripts in repository
| spell | spell_dicts | list of installed dictionaries
| spell | spell_langs | list of all languages supported
| tcl | tcl_script | list of scripts
| trigger | trigger_hook_arguments | default arguments for a hook
| trigger | trigger_hook_command | default command for a hook
| trigger | trigger_hook_conditions | default conditions for a hook
| trigger | trigger_hook_rc | default return codes for hook callback
| trigger | trigger_hook_regex | default regular expression for a hook
| trigger | trigger_hooks | hooks for triggers
| trigger | trigger_hooks_filter | hooks for triggers (for filter in monitor buffer)
| trigger | trigger_names | triggers
| trigger | trigger_names_default | default triggers
| trigger | trigger_option_value | value of a trigger option
| trigger | trigger_options | options for triggers
| trigger | trigger_post_action | trigger post actions
| weechat | bars_names | names of bars
| weechat | bars_options | options for bars
| weechat | buffer_local_variable_value | value of a buffer local variable
| weechat | buffer_local_variables | buffer local variables
| weechat | buffer_properties_get | properties that can be read on a buffer
| weechat | buffer_properties_set | properties that can be set on a buffer
| weechat | buffers_names | names of buffers
| weechat | buffers_numbers | numbers of buffers
| weechat | buffers_plugins_names | names of buffers (including plugins names)
| weechat | colors | color names
| weechat | commands | commands (weechat and plugins); optional argument: prefix to add before the commands
| weechat | config_files | configuration files
| weechat | config_option_values | values for a configuration option
| weechat | config_options | configuration options
| weechat | cursor_areas | areas ("chat" or bar name) for free cursor movement
| weechat | env_value | value of an environment variable
| weechat | env_vars | environment variables
| weechat | filename | filename; optional argument: default path (evaluated, see /help eval)
| weechat | filters_names | names of filters
| weechat | infolists | names of infolists hooked
| weechat | infos | names of infos hooked
| weechat | keys_codes | key codes
| weechat | keys_codes_for_reset | key codes that can be reset (keys added, redefined or removed)
| weechat | keys_contexts | key contexts
| weechat | layouts_names | names of layouts
| weechat | nicks | nicks in nicklist of current buffer
| weechat | palette_colors | palette colors
| weechat | plugins_commands | commands defined by plugins; optional argument: prefix to add before the commands
| weechat | plugins_installed | names of plugins installed
| weechat | plugins_names | names of plugins
| weechat | proxies_names | names of proxies
| weechat | proxies_options | options for proxies
| weechat | secured_data | names of secured data (file sec.conf, section data)
| weechat | weechat_commands | weechat commands; optional argument: prefix to add before the commands
| weechat | windows_numbers | numbers of windows
| xfer | nick | nicks of DCC chat
|===
// end::completions[]
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,94 @@
//
// This file is auto-generated by script docgen.py.
// DO NOT EDIT BY HAND!
//
// tag::infolists[]
[width="100%",cols="^1,^2,5,5,5",options="header"]
|===
| Plugin | Name | Description | Pointer | Arguments
| alias | alias | list of aliases | alias pointer (optional) | alias name (wildcard "*" is allowed) (optional)
| alias | alias_default | list of default aliases | - | -
| buflist | buflist | list of buffers in a buflist bar item | - | buflist bar item name (optional)
| fset | fset_option | list of fset options | fset option pointer (optional) | option name (wildcard "*" is allowed) (optional)
| guile | guile_script | list of scripts | script pointer (optional) | script name (wildcard "*" is allowed) (optional)
| irc | irc_channel | list of channels for an IRC server | channel pointer (optional) | server,channel (channel is optional)
| irc | irc_color_weechat | mapping between IRC color codes and WeeChat color names | - | -
| irc | irc_ignore | list of IRC ignores | ignore pointer (optional) | -
| irc | irc_modelist | list of channel mode lists for an IRC channel | mode list pointer (optional) | server,channel,type (type is optional)
| irc | irc_modelist_item | list of items in a channel mode list | mode list item pointer (optional) | server,channel,type,number (number is optional)
| irc | irc_nick | list of nicks for an IRC channel | nick pointer (optional) | server,channel,nick (nick is optional)
| irc | irc_notify | list of notify | notify pointer (optional) | server name (wildcard "*" is allowed) (optional)
| irc | irc_server | list of IRC servers | server pointer (optional) | server name (wildcard "*" is allowed) (optional)
| javascript | javascript_script | list of scripts | script pointer (optional) | script name (wildcard "*" is allowed) (optional)
| logger | logger_buffer | list of logger buffers | logger pointer (optional) | -
| lua | lua_script | list of scripts | script pointer (optional) | script name (wildcard "*" is allowed) (optional)
| perl | perl_script | list of scripts | script pointer (optional) | script name (wildcard "*" is allowed) (optional)
| php | php_script | list of scripts | script pointer (optional) | script name (wildcard "*" is allowed) (optional)
| python | python_script | list of scripts | script pointer (optional) | script name (wildcard "*" is allowed) (optional)
| relay | relay | list of relay clients | relay pointer (optional) | -
| ruby | ruby_script | list of scripts | script pointer (optional) | script name (wildcard "*" is allowed) (optional)
| script | script_script | list of scripts | script pointer (optional) | script name with extension (wildcard "*" is allowed) (optional)
| tcl | tcl_script | list of scripts | script pointer (optional) | script name (wildcard "*" is allowed) (optional)
| weechat | bar | list of bars | bar pointer (optional) | bar name (wildcard "*" is allowed) (optional)
| weechat | bar_item | list of bar items | bar item pointer (optional) | bar item name (wildcard "*" is allowed) (optional)
| weechat | bar_window | list of bar windows | bar window pointer (optional) | -
| weechat | buffer | list of buffers | buffer pointer (optional) | buffer name (wildcard "*" is allowed) (optional)
| weechat | buffer_lines | lines of a buffer | buffer pointer | -
| weechat | filter | list of filters | - | filter name (wildcard "*" is allowed) (optional)
| weechat | history | history of commands | buffer pointer (if not set, return global history) (optional) | -
| weechat | hook | list of hooks | hook pointer (optional) | type,arguments (type is command/timer/.., arguments to get only some hooks (wildcard "*" is allowed), both are optional)
| weechat | hotlist | list of buffers in hotlist | - | -
| weechat | key | list of key bindings | - | context ("default", "search", "cursor" or "mouse") (optional)
| weechat | layout | list of layouts | - | -
| weechat | nicklist | nicks in nicklist for a buffer | buffer pointer | nick_xxx or group_xxx to get only nick/group xxx (optional)
| weechat | option | list of options | - | option name (wildcard "*" is allowed) (optional)
| weechat | plugin | list of plugins | plugin pointer (optional) | plugin name (wildcard "*" is allowed) (optional)
| weechat | proxy | list of proxies | proxy pointer (optional) | proxy name (wildcard "*" is allowed) (optional)
| weechat | url_options | options for URL | - | -
| weechat | window | list of windows | window pointer (optional) | "current" for current window or a window number (optional)
| xfer | xfer | list of xfer | xfer pointer (optional) | -
|===
// end::infolists[]
+164
View File
@@ -0,0 +1,164 @@
//
// This file is auto-generated by script docgen.py.
// DO NOT EDIT BY HAND!
//
// tag::infos[]
[width="100%",cols="^1,^2,6,6",options="header"]
|===
| Plugin | Name | Description | Arguments
| fifo | fifo_filename | name of FIFO pipe | -
| guile | guile_eval | evaluation of source code | source code to execute
| guile | guile_interpreter | name of the interpreter used | -
| guile | guile_version | version of the interpreter used | -
| irc | irc_buffer | get buffer pointer for an IRC server/channel/nick | server,channel,nick (channel and nicks are optional)
| irc | irc_is_channel | 1 if string is a valid IRC channel name for server | server,channel (server is optional)
| irc | irc_is_message_ignored | 1 if the nick is ignored (message is not displayed) | server,message (message is the raw IRC message)
| irc | irc_is_nick | 1 if string is a valid IRC nick name | server,nickname (server is optional)
| irc | irc_nick | get current nick on a server | server name
| irc | irc_nick_color | get nick color code (*deprecated* since version 1.5, replaced by "nick_color") | nickname
| irc | irc_nick_color_name | get nick color name (*deprecated* since version 1.5, replaced by "nick_color_name") | nickname
| irc | irc_nick_from_host | get nick from IRC host | IRC host (like `:nick!name@server.com`)
| irc | irc_server_isupport | 1 if server supports this feature (from IRC message 005) | server,feature
| irc | irc_server_isupport_value | value of feature, if supported by server (from IRC message 005) | server,feature
| javascript | javascript_eval | evaluation of source code | source code to execute
| javascript | javascript_interpreter | name of the interpreter used | -
| javascript | javascript_version | version of the interpreter used | -
| lua | lua_eval | evaluation of source code | source code to execute
| lua | lua_interpreter | name of the interpreter used | -
| lua | lua_version | version of the interpreter used | -
| perl | perl_eval | evaluation of source code | source code to execute
| perl | perl_interpreter | name of the interpreter used | -
| perl | perl_version | version of the interpreter used | -
| php | php_eval | evaluation of source code | source code to execute
| php | php_interpreter | name 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_interpreter | name of the interpreter used | -
| python | python_version | version of the interpreter used | -
| relay | relay_client_count | number of clients for relay | protocol,status (both are optional, for each argument "*" means all; protocols: irc, weechat; statuses: connecting, waiting_auth, connected, auth_failed, disconnected)
| ruby | ruby_eval | evaluation of source code | source code to execute
| ruby | ruby_interpreter | name of the interpreter used | -
| ruby | ruby_version | version of the interpreter used | -
| spell | spell_dict | comma-separated list of dictionaries used in buffer | buffer pointer ("0x12345678") or buffer full name ("irc.libera.#weechat")
| tcl | tcl_eval | evaluation of source code | source code to execute
| tcl | tcl_interpreter | name of the interpreter used | -
| tcl | tcl_version | version of the interpreter used | -
| weechat | auto_connect | 1 if automatic connection to servers is enabled, 0 if it has been disabled by the user (option "-a" or "--no-connect") | -
| weechat | charset_internal | WeeChat internal charset | -
| weechat | charset_terminal | terminal charset | -
| weechat | color_ansi_regex | POSIX extended regular expression to search ANSI escape codes | -
| weechat | color_rgb2term | RGB color converted to terminal color (0-255) | rgb,limit (limit is optional and is set to 256 by default)
| weechat | color_term2rgb | terminal color (0-255) converted to RGB color | color (terminal color: 0-255)
| weechat | cursor_mode | 1 if cursor mode is enabled | -
| weechat | date | WeeChat compilation date/time | -
| weechat | dir_separator | directory separator | -
| weechat | filters_enabled | 1 if filters are enabled | -
| weechat | inactivity | keyboard inactivity (seconds) | -
| weechat | locale | locale used for translating messages | -
| weechat | nick_color | get nick color code | nickname;colors (colors is an optional comma-separated list of colors to use; background is allowed for a color with format text:background; if colors is present, WeeChat options with nick colors and forced nick colors are ignored)
| weechat | nick_color_name | get nick color name | nickname;colors (colors is an optional comma-separated list of colors to use; background is allowed for a color with format text:background; if colors is present, WeeChat options with nick colors and forced nick colors are ignored)
| weechat | pid | WeeChat PID (process ID) | -
| weechat | term_color_pairs | number of color pairs supported in terminal | -
| weechat | term_colors | number of colors supported in terminal | -
| weechat | term_height | height of terminal | -
| weechat | term_width | width of terminal | -
| weechat | totp_generate | generate a Time-based One-Time Password (TOTP) | secret (in base32), timestamp (optional, current time by default), number of digits (optional, between 4 and 10, 6 by default)
| weechat | totp_validate | validate a Time-based One-Time Password (TOTP): 1 if TOTP is correct, otherwise 0 | secret (in base32), one-time password, timestamp (optional, current time by default), number of passwords before/after to test (optional, 0 by default)
| weechat | uptime | WeeChat uptime (format: "days:hh:mm:ss") | "days" (number of days) or "seconds" (number of seconds) (optional)
| weechat | version | WeeChat version | -
| weechat | version_git | WeeChat git version (output of command "git describe" for a development version only, empty for a stable release) | -
| weechat | version_number | WeeChat version (as number) | -
| weechat | weechat_cache_dir | WeeChat cache directory | -
| weechat | weechat_config_dir | WeeChat config directory | -
| weechat | weechat_daemon | 1 if WeeChat is running in daemon mode (headless, in background) | -
| weechat | weechat_data_dir | WeeChat data directory | -
| weechat | weechat_dir | WeeChat directory (*deprecated* since version 3.2, replaced by "weechat_config_dir", "weechat_data_dir", "weechat_cache_dir" and "weechat_runtime_dir") | -
| weechat | weechat_headless | 1 if WeeChat is running headless | -
| weechat | weechat_libdir | WeeChat "lib" directory | -
| weechat | weechat_localedir | WeeChat "locale" directory | -
| weechat | weechat_runtime_dir | WeeChat runtime directory | -
| weechat | weechat_sharedir | WeeChat "share" directory | -
| weechat | weechat_site | WeeChat site | -
| weechat | weechat_site_download | WeeChat site, download page | -
| weechat | weechat_upgrading | 1 if WeeChat is upgrading (command `/upgrade`) | -
|===
// end::infos[]
@@ -0,0 +1,20 @@
//
// This file is auto-generated by script docgen.py.
// DO NOT EDIT BY HAND!
//
// tag::infos_hashtable[]
[width="100%",cols="^1,^2,6,6,8",options="header"]
|===
| 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_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
| weechat | focus_info | get focus info | "x": x coordinate (string with integer >= 0), "y": y coordinate (string with integer >= 0) | see function "hook_focus" in Plugin API reference
| weechat | secured_data | secured data | - | secured data: names and values (be careful: the values are sensitive data: do NOT print/log them anywhere)
|===
// end::infos_hashtable[]
@@ -0,0 +1,29 @@
//
// This file is auto-generated by script docgen.py.
// DO NOT EDIT BY HAND!
//
// tag::plugins_priority[]
. charset (16000)
. logger (15000)
. exec (14000)
. trigger (13000)
. spell (12000)
. alias (11000)
. buflist (10000)
. fifo (9000)
. typing (8000)
. xfer (7000)
. irc (6000)
. relay (5000)
. guile (4007)
. javascript (4006)
. lua (4005)
. perl (4004)
. php (4003)
. python (4002)
. ruby (4001)
. tcl (4000)
. script (3000)
. fset (2000)
// end::plugins_priority[]
@@ -0,0 +1,436 @@
//
// This file is auto-generated by script docgen.py.
// DO NOT EDIT BY HAND!
//
// tag::url_options[]
[width="100%",cols="2,^1,7",options="header"]
|===
| Option | Type ^(1)^ | Constants ^(2)^
| verbose | long |
| header | long |
| noprogress | long |
| nosignal | long |
| wildcardmatch | long |
| failonerror | long |
| keep_sending_on_error | long |
| proxy | string |
| proxyport | long |
| port | long |
| pre_proxy | string |
| httpproxytunnel | long |
| interface | string |
| dns_cache_timeout | long |
| proxytype | long | http, socks4, socks5, socks4a, socks5_hostname, http_1_0, https
| buffersize | long |
| tcp_nodelay | long |
| localport | long |
| localportrange | 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 |
| socks5_gssapi_nec | long |
| tcp_keepalive | long |
| tcp_keepidle | long |
| tcp_keepintvl | long |
| unix_socket_path | string |
| abstract_unix_socket | string |
| path_as_is | long |
| proxy_service_name | string |
| service_name | string |
| default_protocol | string |
| tcp_fastopen | long |
| socks5_auth | long |
| haproxyprotocol | long |
| doh_url | string |
| netrc | long | ignored, optional, required
| userpwd | string |
| proxyuserpwd | string |
| 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
| netrc_file | string |
| username | string |
| password | string |
| proxyusername | string |
| proxypassword | string |
| tlsauth_type | mask | none, srp
| tlsauth_username | string |
| tlsauth_password | string |
| sasl_ir | long |
| xoauth2_bearer | string |
| login_options | string |
| disallow_username_in_url | long |
| autoreferer | long |
| followlocation | long |
| put | long |
| post | long |
| postfields | string |
| referer | string |
| useragent | string |
| httpheader | list |
| cookie | string |
| cookiefile | string |
| postfieldsize | long |
| maxredirs | long |
| httpget | long |
| cookiejar | string |
| http_version | long | none, 1_0, 1_1, 2_0, 2, 2tls, 2_prior_knowledge
| cookiesession | long |
| http200aliases | list |
| unrestricted_auth | long |
| postfieldsize_large | long long |
| cookielist | string |
| ignore_content_length | long |
| accept_encoding | string |
| transfer_encoding | long |
| http_content_decoding | long |
| http_transfer_decoding | long |
| copypostfields | string |
| postredir | mask | post_301, post_302
| expect_100_timeout_ms | long |
| headeropt | mask | unified, separate
| proxyheader | list |
| pipewait | long |
| stream_weight | long |
| request_target | string |
| mail_from | string |
| mail_rcpt | list |
| mail_auth | string |
| tftp_blksize | long |
| tftp_no_options | long |
| ftpport | string |
| quote | list |
| postquote | list |
| ftp_use_epsv | long |
| prequote | list |
| ftp_use_eprt | long |
| ftp_create_missing_dirs | long |
| ftp_response_timeout | long |
| ftpsslauth | long | default, ssl, tls
| ftp_account | string |
| ftp_skip_pasv_ip | long |
| ftp_filemethod | long | multicwd, nocwd, singlecwd
| ftp_alternative_to_user | string |
| ftp_ssl_ccc | long | ccc_none, ccc_active, ccc_passive
| dirlistonly | long |
| append | long |
| ftp_use_pret | long |
| rtsp_request | long | options, describe, announce, setup, play, pause, teardown, get_parameter, set_parameter, record, receive
| rtsp_session_id | string |
| rtsp_stream_uri | string |
| rtsp_transport | string |
| rtsp_client_cseq | long |
| rtsp_server_cseq | long |
| crlf | long |
| range | string |
| resume_from | long |
| customrequest | string |
| nobody | long |
| infilesize | long |
| upload | long |
| timecondition | long | none, ifmodsince, ifunmodsince, lastmod
| timevalue | long |
| transfertext | long |
| filetime | long |
| maxfilesize | long |
| proxy_transfer_mode | long |
| resume_from_large | long long |
| infilesize_large | long long |
| maxfilesize_large | long long |
| timevalue_large | long long |
| upload_buffersize | long |
| timeout | long |
| low_speed_limit | long |
| low_speed_time | long |
| fresh_connect | long |
| forbid_reuse | long |
| connecttimeout | long |
| ipresolve | long | whatever, v4, v6
| connect_only | long |
| max_send_speed_large | long long |
| max_recv_speed_large | long long |
| timeout_ms | long |
| connecttimeout_ms | long |
| maxconnects | long |
| use_ssl | long | none, try, control, all
| resolve | list |
| dns_servers | string |
| accepttimeout_ms | long |
| dns_interface | string |
| dns_local_ip4 | string |
| dns_local_ip6 | string |
| connect_to | list |
| happy_eyeballs_timeout_ms | long |
| dns_shuffle_addresses | long |
| upkeep_interval_ms | long |
| 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
| ssl_verifypeer | long |
| cainfo | string |
| random_file | string |
| egdsocket | string |
| ssl_verifyhost | long |
| ssl_cipher_list | string |
| sslcerttype | string |
| sslkey | string |
| sslkeytype | string |
| sslengine | string |
| sslengine_default | long |
| capath | string |
| ssl_sessionid_cache | long |
| krblevel | string |
| keypasswd | string |
| issuercert | string |
| crlfile | string |
| certinfo | long |
| gssapi_delegation | long | none, policy_flag, flag
| ssl_options | long | allow_beast, no_revoke, no_backends, ok, too_late, unknown_backend
| ssl_enable_alpn | long |
| ssl_enable_npn | long |
| pinnedpublickey | string |
| ssl_verifystatus | long |
| ssl_falsestart | long |
| proxy_cainfo | string |
| proxy_capath | string |
| proxy_crlfile | string |
| proxy_keypasswd | string |
| proxy_pinnedpublickey | string |
| proxy_sslcert | string |
| proxy_sslcerttype | string |
| proxy_sslkey | string |
| proxy_sslkeytype | string |
| proxy_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
| proxy_ssl_cipher_list | list |
| proxy_ssl_options | long | allow_beast, no_revoke, no_backends, ok, too_late, unknown_backend
| proxy_ssl_verifyhost | long |
| proxy_ssl_verifypeer | long |
| proxy_tlsauth_password | string |
| proxy_tlsauth_type | string |
| proxy_tlsauth_username | string |
| tls13_ciphers | list |
| proxy_tls13_ciphers | list |
| ssh_auth_types | mask | none, policy_flag, flag
| ssh_public_keyfile | string |
| ssh_private_keyfile | string |
| ssh_host_public_key_md5 | string |
| ssh_knownhosts | string |
| ssh_compression | long |
| new_file_perms | long |
| new_directory_perms | long |
| telnetoptions | list |
|===
// end::url_options[]
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,44 @@
//
// This file is auto-generated by script docgen.py.
// DO NOT EDIT BY HAND!
//
// tag::default_aliases[]
[width="100%",cols="2m,5m,5",options="header"]
|===
| Alias | Command | Completion
| /AAWAY | /allserv /away | -
| /ANICK | /allserv /nick | -
| /BEEP | /print -beep | -
| /BYE | /quit | -
| /C | /buffer clear | -
| /CL | /buffer clear | -
| /CLOSE | /buffer close | -
| /CHAT | /dcc chat | -
| /EXIT | /quit | -
| /IG | /ignore | -
| /J | /join | -
| /K | /kick | -
| /KB | /kickban | -
| /LEAVE | /part | -
| /M | /msg | -
| /MUB | /unban * | -
| /MSGBUF | /command -buffer $1 * /input send $2- | %(buffers_plugins_names)
| /N | /names | -
| /Q | /query | -
| /REDRAW | /window refresh | -
| /SAY | /msg * | -
| /SIGNOFF | /quit | -
| /T | /topic | -
| /UB | /unban | -
| /UMODE | /mode $nick | -
| /V | /command core version | -
| /W | /who | -
| /WC | /window close | -
| /WI | /whois | -
| /WII | /whois $1 $1 | -
| /WM | /window merge | -
| /WW | /whowas | -
|===
// end::default_aliases[]
@@ -0,0 +1,112 @@
//
// This file is auto-generated by script docgen.py.
// DO NOT EDIT BY HAND!
//
// tag::irc_colors[]
[width="50%",cols="^2m,3",options="header"]
|===
| IRC color | WeeChat color
| 00 | white
| 01 | black
| 02 | blue
| 03 | green
| 04 | lightred
| 05 | red
| 06 | magenta
| 07 | brown
| 08 | yellow
| 09 | lightgreen
| 10 | cyan
| 11 | lightcyan
| 12 | lightblue
| 13 | lightmagenta
| 14 | darkgray
| 15 | gray
| 16 | 52
| 17 | 94
| 18 | 100
| 19 | 58
| 20 | 22
| 21 | 29
| 22 | 23
| 23 | 24
| 24 | 17
| 25 | 54
| 26 | 53
| 27 | 89
| 28 | 88
| 29 | 130
| 30 | 142
| 31 | 64
| 32 | 28
| 33 | 35
| 34 | 30
| 35 | 25
| 36 | 18
| 37 | 91
| 38 | 90
| 39 | 125
| 40 | 124
| 41 | 166
| 42 | 184
| 43 | 106
| 44 | 34
| 45 | 49
| 46 | 37
| 47 | 33
| 48 | 19
| 49 | 129
| 50 | 127
| 51 | 161
| 52 | 196
| 53 | 208
| 54 | 226
| 55 | 154
| 56 | 46
| 57 | 86
| 58 | 51
| 59 | 75
| 60 | 21
| 61 | 171
| 62 | 201
| 63 | 198
| 64 | 203
| 65 | 215
| 66 | 227
| 67 | 191
| 68 | 83
| 69 | 122
| 70 | 87
| 71 | 111
| 72 | 63
| 73 | 177
| 74 | 207
| 75 | 205
| 76 | 217
| 77 | 223
| 78 | 229
| 79 | 193
| 80 | 157
| 81 | 158
| 82 | 159
| 83 | 153
| 84 | 147
| 85 | 183
| 86 | 219
| 87 | 212
| 88 | 16
| 89 | 233
| 90 | 235
| 91 | 237
| 92 | 239
| 93 | 241
| 94 | 244
| 95 | 247
| 96 | 250
| 97 | 254
| 98 | 231
| 99 | default
|===
// end::irc_colors[]
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -1,6 +1,6 @@
// tag::plugin_options[]
For complete doc on plugin options, please look at plugins documentation in
https://weechat.org/doc/[WeeChat user's guide].
https://weechat.org/doc[WeeChat user's guide].
With irc plugin, you can connect to temporary server with an URL like:
@@ -100,7 +100,7 @@ $HOME/.local/share/weechat/weechat.log::
WeeChat is written by Sébastien Helleu and contributors (complete list is in
the AUTHORS.adoc file).
Copyright (C) 2003-2023 {author}
Copyright (C) 2003-2021 {author}
WeeChat is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
+1 -1
View File
@@ -60,4 +60,4 @@ include::includes/man.en.adoc[tag=copyright]
== SUPPORT / REPORTING BUGS
For help or a bug report: https://weechat.org/about/support/
For help or a bug report: https://weechat.org/about/support
+1 -1
View File
@@ -57,4 +57,4 @@ include::includes/man.en.adoc[tag=copyright]
== SUPPORT / REPORTING BUGS
For help or a bug report: https://weechat.org/about/support/
For help or a bug report: https://weechat.org/about/support
+58 -138
View File
@@ -2,11 +2,17 @@
:author: Sébastien Helleu
:email: flashcode@flashtux.org
:lang: en
:toc: left
:toclevels: 3
:sectnums:
:docinfo1:
This manual documents WeeChat chat client, it is part of WeeChat.
Latest version of this document can be found on
https://weechat.org/doc/[this page ^↗^^].
Latest version of this document can be found on this page:
https://weechat.org/doc
[[introduction]]
== Introduction
@@ -25,8 +31,8 @@ This manual documents WeeChat internals:
[[repositories]]
== Repositories
WeeChat repositories are on GitHub organization
https://github.com/weechat[weechat ^↗^^].
WeeChat repositories are on GitHub organization "weechat":
https://github.com/weechat
List of repositories:
@@ -37,7 +43,7 @@ scripts::
the _official_ scripts submitted on weechat.org
weechat.org::
source of https://weechat.org/[WeeChat website ^↗^^]
source of WeeChat website: https://weechat.org/
weercd::
IRC testing server
@@ -123,7 +129,6 @@ WeeChat "core" is located in following directories:
|    wee-config.c | Configuration options for WeeChat core (file weechat.conf).
|    wee-crypto.c | Cryptographic functions.
|    wee-debug.c | Some debug functions.
|    wee-doc.c | Build of files for documentation.
|    wee-dir.c | Directory/file functions.
|    wee-eval.c | Evaluation of expressions with references to internal vars.
|    wee-hashtable.c | Hashtables.
@@ -268,7 +273,6 @@ WeeChat "core" is located in following directories:
|    irc/ | IRC (Internet Relay Chat) plugin.
|       irc.c | Main IRC functions.
|       irc-bar-item.c | IRC bar items.
|       irc-batch.c | IRC batched events.
|       irc-buffer.c | IRC buffers.
|       irc-channel.c | IRC channels.
|       irc-color.c | IRC colors.
@@ -280,20 +284,18 @@ WeeChat "core" is located in following directories:
|       irc-ignore.c | IRC Ignore.
|       irc-info.c | IRC info/infolists/hdata.
|       irc-input.c | Input of commands/text.
|       irc-join.c | Functions for list of channels to join.
|       irc-message.c | Functions to manipulate IRC messages.
|       irc-mode.c | Functions about channel/nick modes.
|       irc-modelist.c | IRC channel mode lists (+b, +e, +I, ...).
|       irc-msgbuffer.c | Target buffer for IRC messages.
|       irc-nick.c | IRC nicks.
|       irc-notify.c | IRC notify lists.
|       irc-protocol.c | IRC protocol (RFCs 1459/2810/2811/2812/2813/7194).
|       irc-protocol.c | IRC protocol (RFCs 1459/2810/2811/2812/2813).
|       irc-raw.c | IRC raw buffer.
|       irc-redirect.c | Redirection of IRC command output.
|       irc-sasl.c | SASL authentication with IRC server.
|       irc-server.c | I/O communication with IRC server.
|       irc-tag.c | Functions to manipulate IRC message tags.
|       irc-typing.c | Typing status.
|       irc-upgrade.c | Save/restore of IRC data when upgrading WeeChat.
|    javascript/ | JavaScript plugin.
|       weechat-js.cpp | Main JavaScript functions (load/unload scripts, execute JavaScript code).
@@ -390,7 +392,6 @@ WeeChat "core" is located in following directories:
| Path/file | Description
| tests/ | Root of tests.
|    tests.cpp | Program used to run all tests.
|    tests-record.cpp | Record and search in messages displayed.
|    scripts/ | Root of scripting API tests.
|       test-scripts.cpp | Program used to run the scripting API tests.
|       python/ | Python scripts to generate and run the scripting API tests.
@@ -402,7 +403,6 @@ WeeChat "core" is located in following directories:
|       core/ | Root of unit tests for core.
|          test-core-arraylist.cpp | Tests: arraylists.
|          test-core-calc.cpp | Tests: calculation of expressions.
|          test-core-command.cpp | Tests: commands.
|          test-core-config-file.cpp | Tests: configuration files.
|          test-core-crypto.cpp | Tests: cryptographic functions.
|          test-core-dir.cpp | Tests: directory/file functions.
@@ -420,35 +420,22 @@ WeeChat "core" is located in following directories:
|          test-core-utf8.cpp | Tests: UTF-8.
|          test-core-util.cpp | Tests: utility functions.
|       gui/ | Root of unit tests for interfaces.
|          test-gui-bar-window.cpp | Tests: bar window functions.
|          test-gui-buffer.cpp | Tests: buffer functions.
|          test-gui-chat.cpp | Tests: chat functions.
|          test-gui-color.cpp | Tests: colors.
|          test-gui-filter.cpp | Tests: filters.
|          test-gui-input.cpp | Tests: input functions.
|          test-gui-key.cpp | Tests: keys.
|          test-gui-line.cpp | Tests: lines.
|          test-gui-nick.cpp | Tests: nicks.
|       plugins/ | Root of unit tests for plugins.
|          irc/ | Root of unit tests for IRC plugin.
|             test-irc-batch.cpp | Tests: IRC batched events.
|             test-irc-buffer.cpp | Tests: IRC buffers.
|             test-irc-channel.cpp | Tests: IRC channels.
|             test-irc-color.cpp | Tests: IRC colors.
|             test-irc-config.cpp | Tests: IRC configuration.
|             test-irc-ignore.cpp | Tests: IRC ignores.
|             test-irc-join.cpp | Tests: IRC join functions.
|             test-irc-message.cpp | Tests: IRC messages.
|             test-irc-mode.cpp | Tests: IRC modes.
|             test-irc-nick.cpp | Tests: IRC nicks.
|             test-irc-protocol.cpp | Tests: IRC protocol.
|             test-irc-sasl.cpp | Tests: SASL authentication with IRC protocol.
|             test-irc-server.cpp | Tests: IRC server.
|             test-irc-tag.cpp | Tests: IRC message tags.
|          logger/ | Root of unit tests for logger plugin.
|             test-logger.cpp | Tests: logger.
|             test-logger-backlog.cpp | Tests: logger backlog.
|             test-logger-tail.cpp | Tests: logger tail functions.
|          trigger/ | Root of unit tests for trigger plugin.
|             test-trigger.cpp | Tests: triggers.
|             test-trigger-config.cpp | Tests: trigger configuration.
@@ -457,11 +444,6 @@ WeeChat "core" is located in following directories:
|             test-typing-status.cpp | Tests: typing status.
|          relay/ | Root of unit tests for Relay plugin.
|             test-relay-auth.cpp | Tests: clients authentication.
|             irc/ | Root of unit tests for Relay "irc" protocol.
|                test-relay-irc.cpp | Tests: Relay "irc" protocol.
|          xfer/ | Root of unit tests for Xfer plugin.
|             test-xfer-file.cpp | Tests: file functions.
|             test-xfer-network.cpp | Tests: network functions.
|===
[[documentation_translations]]
@@ -474,16 +456,28 @@ Documentation files:
| Path/file | Description
| doc/ | Documentation.
|    docinfo.html | Asciidoctor style.
|    docgen.py | Python script to build auto-generated files in _includes/_ directory (see below).
|    XX/ | Documentation for language XX (languages: en, fr, de, it, ...).
|       weechat.1.XX.adoc | Man page (`man weechat`).
|       weechat_dev.XX.adoc | link:weechat_dev.en.html[Developer's guide ^↗^^] (this document).
|       weechat_faq.XX.adoc | link:weechat_faq.en.html[FAQ ^↗^^].
|       weechat_plugin_api.XX.adoc | link:weechat_plugin_api.en.html[Plugin API reference ^↗^^].
|       weechat_quickstart.XX.adoc | link:weechat_quickstart.en.html[Quickstart guide ^↗^^].
|       weechat_relay_protocol.XX.adoc | link:weechat_relay_protocol.en.html[Relay protocol ^↗^^] (for remote interfaces).
|       weechat_scripting.XX.adoc | link:weechat_scripting.en.html[Scripting guide ^↗^^].
|       weechat_user.XX.adoc | link:weechat_user.en.html[User's guide ^↗^^].
|       weechat_dev.XX.adoc | link:weechat_dev.en.html[Developer's guide] (this document).
|       weechat_faq.XX.adoc | link:weechat_faq.en.html[FAQ].
|       weechat_plugin_api.XX.adoc | link:weechat_plugin_api.en.html[Plugin API reference].
|       weechat_quickstart.XX.adoc | link:weechat_quickstart.en.html[Quickstart guide].
|       weechat_relay_protocol.XX.adoc | link:weechat_relay_protocol.en.html[Relay protocol] (for remote interfaces).
|       weechat_scripting.XX.adoc | link:weechat_scripting.en.html[Scripting guide].
|       weechat_user.XX.adoc | link:weechat_user.en.html[User's guide].
|       includes/ | Files included in documentation.
|          autogen_api_completions.XX.adoc | Auto-generated file for Plugin API reference: completions (do *NEVER* update manually!).
|          autogen_api_hdata.XX.adoc | Auto-generated file for Plugin API reference: hdata (do *NEVER* update manually!).
|          autogen_api_infolists.XX.adoc | Auto-generated file for Plugin API reference: infolists (do *NEVER* update manually!).
|          autogen_api_infos.XX.adoc | Auto-generated file for Plugin API reference: infos (do *NEVER* update manually!).
|          autogen_api_infos_hashtable.XX.adoc | Auto-generated file for Plugin API reference: infos hashtable (do *NEVER* update manually!).
|          autogen_api_plugins_priority.XX.adoc | Auto-generated file for Plugin API reference: plugins priority (do *NEVER* update manually!).
|          autogen_api_url_options.XX.adoc | Auto-generated file for Plugin API reference: URL options (do *NEVER* update manually!).
|          autogen_user_commands.XX.adoc | Auto-generated file for User's guide: commands (do *NEVER* update manually!).
|          autogen_user_default_aliases.XX.adoc | Auto-generated file for User's guide: default aliases (do *NEVER* update manually!).
|          autogen_user_irc_colors.XX.adoc | Auto-generated file for User's guide: IRC colors (do *NEVER* update manually!).
|          autogen_user_options.XX.adoc | Auto-generated file for User's guide: configuration options (do *NEVER* update manually!).
|          cmdline_options.XX.adoc | Command-line options (file included in man pages and user's guide).
|          man.XX.adoc | Part of man pages: plugin options, files and copyright.
|===
@@ -521,7 +515,7 @@ Example in C:
/*
* 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.
*
@@ -736,7 +730,7 @@ new_hook_fd = malloc (sizeof (*new_hook_fd));
[[coding_python_style]]
=== Python style
See https://www.python.org/dev/peps/pep-0008/[PEP 8 ^↗^^].
See https://www.python.org/dev/peps/pep-0008/
[[core_internals]]
== Core internals
@@ -913,8 +907,6 @@ In following table, these conventions are used:
* `EXT`: extended color (`+@+` + 5 digits)
* `(ATTR)EXT`: extended color with optional attributes (`+@+` + attributes + 5 digits)
* `(ATTR)`: one or more attribute chars:
** `+%+`: blink
** `+.+`: "dim" (half bright)
** `+*+`: bold
** `+!+`: reverse
** `+/+`: italic
@@ -925,8 +917,6 @@ In following table, these conventions are used:
** _0x02_: reverse
** _0x03_: italic
** _0x04_: underline
** _0x05_: blink
** _0x06_: "dim" (half bright)
All combinations are summarized in this table:
@@ -941,10 +931,10 @@ All combinations are summarized in this table:
| [hex]#19# + `B` + `EXT` | [hex]#19# `+B@00124+` | chat + bars | Set background (extended color).
| [hex]#19# + `*` + `(ATTR)STD` | [hex]#19# `+*05+` | chat + bars | Set foreground (WeeChat color).
| [hex]#19# + `*` + `(ATTR)EXT` | [hex]#19# `+*@00214+` | chat + bars | Set foreground (extended color).
| [hex]#19# + `*` + `(ATTR)STD` + `,` + `STD` ^(1)^ | [hex]#19# `+*08,05+` | chat + bars | Set foreground/background (WeeChat colors).
| [hex]#19# + `*` + `(ATTR)STD` + `,` + `EXT` ^(1)^ | [hex]#19# `+*01,@00214+` | chat + bars | Set foreground (WeeChat color) and background (extended color).
| [hex]#19# + `*` + `(ATTR)EXT` + `,` + `STD` ^(1)^ | [hex]#19# `+*@00214,05+` | chat + bars | Set foreground (extended color) and background (WeeChat color).
| [hex]#19# + `*` + `(ATTR)EXT` + `,` + `EXT` ^(1)^ | [hex]#19# `+*@00214,@00017+` | chat + bars | Set foreground/background (extended colors).
| [hex]#19# + `*` + `(ATTR)STD` + `,` + `STD` ^(1)^ | [hex]#19# `+*08,05+` | chat + bars | Set foreground/background (WeeChat colors).
| [hex]#19# + `*` + `(ATTR)STD` + `,` + `EXT` ^(1)^ | [hex]#19# `+*01,@00214+` | chat + bars | Set foreground (WeeChat color) and background (extended color).
| [hex]#19# + `*` + `(ATTR)EXT` + `,` + `STD` ^(1)^ | [hex]#19# `+*@00214,05+` | chat + bars | Set foreground (extended color) and background (WeeChat color).
| [hex]#19# + `*` + `(ATTR)EXT` + `,` + `EXT` ^(1)^ | [hex]#19# `+*@00214,@00017+` | chat + bars | Set foreground/background (extended colors).
| [hex]#19# + `*` + `(ATTR)STD` + `~` + `STD` | [hex]#19# `+*08~05+` | chat + bars | Set foreground/background (WeeChat colors).
| [hex]#19# + `*` + `(ATTR)STD` + `~` + `EXT` | [hex]#19# `+*01~@00214+` | chat + bars | Set foreground (WeeChat color) and background (extended color).
| [hex]#19# + `*` + `(ATTR)EXT` + `~` + `STD` | [hex]#19# `+*@00214~05+` | chat + bars | Set foreground (extended color) and background (WeeChat color).
@@ -1023,8 +1013,6 @@ _src/gui/gui-color.h_):
| 42 | weechat.color.emphasized _(WeeChat ≥ 0.4.2)_
| 43 | weechat.color.chat_day_change _(WeeChat ≥ 0.4.2)_
| 44 | weechat.color.chat_value_null _(WeeChat ≥ 1.4)_
| 45 | weechat.color.chat_status_disabled _(WeeChat ≥ 4.0.0)_
| 46 | weechat.color.chat_status_enabled _(WeeChat ≥ 4.0.0)_
|===
WeeChat colors are:
@@ -1118,7 +1106,7 @@ server->hook_timer_sasl = weechat_hook_timer (timeout * 1000,
[[git_repository]]
=== Git repository
Git repository is on https://github.com/weechat/weechat[GitHub ^↗^^].
Git repository is at this URL: https://github.com/weechat/weechat
Any patch for bug or new feature must be done on master branch, preferred way
is a GitHub pull request. A patch can also be sent by e-mail
@@ -1132,91 +1120,11 @@ component: fix a problem (closes #123)
Where _component_ is one of following:
[width="100%",cols="1m,4m,5",options="header"]
|===
| Component | Files | Description
| core
| AUTHORS.adoc +
ChangeLog.adoc +
Contributing.adoc +
.github/FUNDING.yml +
.github/ISSUE_TEMPLATE/* +
icons/* +
po/* +
README.adoc +
ReleaseNotes.adoc +
src/core/* +
src/gui/* +
version.sh +
weechat.desktop
| WeeChat core
| build
| CMakeLists.txt +
cmake/* +
tools/* +
weechat.cygport.in
| Build
| ci
| .github/workflows/*
| Continuous integration
| debian
| debian-devel/* +
debian-stable/*
| Debian packaging
| tests
| tests/*
| Tests
| doc
| doc/*
| General doc updates, for example build
| doc/man
| doc/xx/weechat.1.xx.adoc +
doc/xx/weechat-headless.1.xx.adoc
| Man pages
| doc/faq
| doc/xx/weechat_faq.xx.adoc
| Frequently asked questions (FAQ)
| doc/quickstart
| doc/xx/weechat_quickstart.xx.adoc
| Quickstart guide
| doc/user
| doc/xx/weechat_user.xx.adoc
| User's guide
| doc/scripting
| doc/xx/weechat_scripting.xx.adoc
| Scripting guide
| doc/api
| doc/xx/weechat_plugin_api.xx.adoc
| Plugin API reference
| doc/relay
| doc/xx/weechat_relay_protocol.xx.adoc
| Relay protocol
| doc/dev
| doc/xx/weechat_dev.en.adoc
| Developer's guide
| irc +
python +
relay +
| src/plugins/<name>/*
| Plugin
|===
* WeeChat core: _core_ (files in root directory, _po/_ and _src/_,
except _src/plugins/_)
* documentation files: _doc_ (files in directory _doc/_)
* name of a plugin: _irc_, _python_, _relay_, ... (files in directory
_src/plugins/_)
Some rules to follow:
@@ -1230,7 +1138,6 @@ Examples of commit messages:
----
core: add callback "nickcmp" for nick comparison in buffers
core: update Japanese translations
doc/user: add chapter on typing extension
irc: add command /unquiet (closes #36)
python: fix crash when unloading a script without pointer to interpreter
ruby: add detection of ruby version 1.9.3 in CMake
@@ -1264,8 +1171,8 @@ $ make translations && make update-po
Then you can edit .po files (if you can translate in a language).
When done, you *have* to check your file with
https://github.com/flashcode/msgcheck[msgcheck ^↗^^]:
When done, you *have* to check your file with script _msgcheck.py_
(https://github.com/flashcode/msgcheck):
----
$ msgcheck.py xx.po
@@ -1273,6 +1180,19 @@ $ msgcheck.py xx.po
And then you can recompile WeeChat to use the new translations.
[[build_autogen_files]]
===== Build auto-generated files
Files named `+autogen_*+` in directory _doc/XX/includes/_ are auto-generated by
script _doc/docgen.py_.
You can rebuild auto-generated files directly in your WeeChat sources by
running WeeChat in a temporary directory and loading the script:
----
weechat -t -r "/python load /path/to/weechat/doc/docgen.py;/docgen;/quit"
----
[[asciidoc]]
==== Asciidoc
+183 -109
View File
@@ -2,6 +2,18 @@
:author: Sébastien Helleu
:email: flashcode@flashtux.org
:lang: en
:toc: left
:toclevels: 2
:sectnums:
:sectnumlevels: 2
:docinfo1:
This document is written for WeeChat versions ≥ 0.3.0 but should preferably be
used with latest stable version of WeeChat.
toc::[]
[[general]]
== General
@@ -20,8 +32,7 @@ apply to WeeChat!).
Because WeeChat is very light and brings innovating features.
More info on the WeeChat
https://weechat.org/about/features/[features page ^↗^^].
More info on the WeeChat features page: https://weechat.org/about/features
[[compilation_install]]
== Compilation / install
@@ -29,24 +40,27 @@ https://weechat.org/about/features/[features page ^↗^^].
[[gui]]
=== I've heard about many GUIs for WeeChat. How can I compile/use them?
Some remote GUIs are available, see the
https://weechat.org/about/interfaces/[remote interfaces page ^↗^^].
Some remote GUIs are available, see the remote interfaces page:
https://weechat.org/about/interfaces
[[compile_git]]
=== I can't compile WeeChat after cloning git repository, why?
WeeChat must be compiled with CMake.
The recommended way to compile WeeChat is with
link:weechat_user.en.html#compile_with_cmake[CMake].
Please follow link:weechat_user.en.html#source_package[build instructions ^↗^^]
and ensure all required dependencies are installed.
If you're compiling with link:weechat_user.en.html#compile_with_autotools[autotools]
(and not CMake), check that you have latest version of autoconf and automake.
If you still have issues, please report them to the developers.
The other way is to install the "devel package", which needs less dependencies.
This package is built almost every day using git repository. Note that this
package may not correspond exactly to git base and that it's less convenient
than git cloning for installing updates.
[[compile_macos]]
=== How can I install WeeChat on macOS?
It is recommended to use https://brew.sh/[Homebrew ^↗^^],
you can get help with:
It is recommended to use https://brew.sh/[Homebrew], you can get help with:
----
brew info weechat
@@ -62,12 +76,12 @@ brew install weechat
=== I've launched WeeChat, but I'm lost, what can I do?
For help you can type `/help`. For help about a command, type `/help command`.
link:weechat_user.en.html#key_bindings[Keys ^↗^^] and
link:weechat_user.en.html#commands_and_options[commands ^↗^^]
are listed in documentation.
link:weechat_user.en.html#key_bindings[Keys] and
link:weechat_user.en.html#commands_and_options[commands] are listed
in documentation.
It's recommended for new users to read the
link:weechat_quickstart.en.html[Quickstart guide ^↗^^].
link:weechat_quickstart.en.html[Quickstart guide].
[[display]]
== Display
@@ -95,7 +109,7 @@ It's a common issue with a variety of causes, please read carefully and check
** If you are using screen, check that it is run with UTF-8 mode
("`defutf8 on`" in ~/.screenrc or `screen -U` to run screen).
* Check that option
link:weechat_user.en.html#option_weechat.look.eat_newline_glitch[_weechat.look.eat_newline_glitch_ ^↗^^]
link:weechat_user.en.html#option_weechat.look.eat_newline_glitch[_weechat.look.eat_newline_glitch_]
is off (this option may cause display bugs).
[NOTE]
@@ -110,10 +124,10 @@ This may be caused by a libc bug in function _wcwidth_, which should be fixed
in glibc 2.22 (maybe not yet available in your distribution).
There is a workaround to use the fixed _wcwidth_ function:
https://blog.nytsoi.net/2015/05/04/emoji-support-for-weechat[https://blog.nytsoi.net/2015/05/04/emoji-support-for-weechat ^↗^^]
https://blog.nytsoi.net/2015/05/04/emoji-support-for-weechat
See this https://github.com/weechat/weechat/issues/79[bug report ^↗^^]
for more information.
See this bug report for more information:
https://github.com/weechat/weechat/issues/79
[[bars_background]]
=== Bars like title and status are not filled, background color stops after text, why?
@@ -170,10 +184,17 @@ windows.
[[buffers_list]]
=== How to display the buffers list on the left side?
The plugin link:weechat_user.en.html#buflist[buflist ^↗^^]
With WeeChat ≥ 1.8, the plugin link:weechat_user.en.html#buflist_plugin[buflist]
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
@@ -191,6 +212,21 @@ bar with your mouse wheel.
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].
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]]
=== How can I customize the list of buffers list, like the color of the active buffer?
@@ -216,8 +252,8 @@ like `237` for dark gray.
The buflist plugin provides lot of options that you can customize, please read
the help on each option.
There's also a https://github.com/weechat/weechat/wiki/buflist[wiki page ^↗^^]
with examples of advanced buflist configuration.
There's also a wiki page with examples of advanced buflist configuration:
https://github.com/weechat/weechat/wiki/buflist
[[customize_prefix]]
=== How can I reduce length of nicks or remove nick alignment in chat area?
@@ -260,8 +296,8 @@ These colors can be changed with the options __weechat.color.status_data_*__
(buffers) and __weechat.color.status_count_*__ (counters). +
Other hotlist options can be changed with the options __weechat.look.hotlist_*__.
See link:weechat_user.en.html#screen_layout[User's guide / Screen layout ^↗^^]
for more info about the hotlist.
See link:weechat_user.en.html#screen_layout[User's guide / Screen layout] for
more info about the hotlist.
[[input_bar_size]]
=== How to use command line with more than one line?
@@ -306,8 +342,9 @@ any bar:
[[terminal_copy_paste]]
=== How can I copy/paste text without pasting nicklist?
You can use the bare display (default key: kbd:[Alt+l] (`L`)), which shows
just the contents of the currently selected window, without any formatting.
With WeeChat ≥ 1.0, you can use the bare display (default key: kbd:[Alt+l] (`L`)),
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,
konsole, gnome-terminal, etc.). Key is usually kbd:[Ctrl] + kbd:[Alt] + mouse
@@ -322,7 +359,7 @@ Another solution is to move nicklist to top or bottom, for example:
[[urls]]
=== 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:
@@ -332,7 +369,7 @@ To make opening URLs easier, you can:
/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
@@ -344,8 +381,9 @@ To make opening URLs easier, you can:
/set weechat.look.align_end_of_lines time
----
You can enable option "eat_newline_glitch", so that new line char is not added
at the end of each line displayed (it will not break URL selection):
With WeeChat ≥ 0.3.6, you can enable option "eat_newline_glitch", so that
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
@@ -392,6 +430,8 @@ In WeeChat, the new value is immediately used:
[[use_256_colors]]
=== 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
are:
@@ -410,18 +450,20 @@ term screen-256color
----
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
/upgrade
----
You can use any color number in options (optional: you can add color aliases
with command `/color`).
For version 0.3.4, you must use command `/color` to add new colors.
Please read the link:weechat_user.en.html#colors[User's guide / Colors ^↗^^]
for more information about colors management.
For versions ≥ 0.3.5, you can use any color number in options (optional: you
can add color aliases with command `/color`).
Please read the link:weechat_user.en.html#colors[User's guide / Colors] for more
information about colors management.
[[search_text]]
=== How can I search text in buffer (like /lastlog in irssi)?
@@ -429,8 +471,8 @@ for more information about colors management.
The default key is kbd:[Ctrl+r] (command is: `+/input search_text_here+`).
And jump to highlights: kbd:[Alt+p] / kbd:[Alt+n].
See link:weechat_user.en.html#key_bindings[User's guide / Key bindings ^↗^^]
for more info about this feature.
See link:weechat_user.en.html#key_bindings[User's guide / Key bindings] for more
info about this feature.
[[terminal_focus]]
=== How can I execute commands when terminal gets/loses focus?
@@ -456,14 +498,14 @@ And then you bind two keys for the focus (replace the `/print` commands by the
commands of your choice):
----
/key bind meta-[I /print -core focus
/key bind meta-[O /print -core unfocus
/key bind meta2-I /print -core focus
/key bind meta2-O /print -core unfocus
----
For example to mark buffers as read when the terminal loses the focus:
----
/key bind meta-[O /allbuf /buffer set unread
/key bind meta2-O /input set_unread
----
[[screen_paste]]
@@ -603,7 +645,7 @@ You can bind a key, for example:
----
List of default keys is in
link:weechat_user.en.html#key_bindings[User's guide / Key bindings ^↗^^].
link:weechat_user.en.html#key_bindings[User's guide / Key bindings].
To jump to buffers with number ≥ 100, you could define a trigger and then use
commands like `/123` to jump to buffer #123:
@@ -620,25 +662,23 @@ history are kbd:[Ctrl+↑] and kbd:[Ctrl+↓]).
Example:
----
/key bind up /input history_global_previous
/key bind down /input history_global_next
----
With WeeChat ≤ 3.8, you must use the raw key code (press kbd:[Alt+k] then key
to display its code):
----
/key bind meta2-A /input history_global_previous
/key bind meta2-B /input history_global_next
----
[NOTE]
Keys "meta2-A" and "meta2-B" may be different in your terminal. To find key
code press kbd:[Alt+k] then key.
[[mouse]]
== Mouse
[[mouse_not_working]]
=== Mouse is not working at all, what can I do?
Mouse is supported with WeeChat ≥ 0.3.6.
First try to enable mouse:
----
@@ -682,53 +722,74 @@ you have to use kbd:[Alt] instead of kbd:[Shift]).
[[irc]]
== IRC
[[irc_tls_connection]]
=== I have some problems when connecting to a server using TLS, what can I do?
[[irc_ssl_connection]]
=== I have some problems when connecting to a server using SSL, what can I do?
If you are using macOS, you must install `openssl` from Homebrew.
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
Diffie-Hellman key (default is 2048):
----
/set irc.server.example.tls_dhkey_size 1024
/set irc.server.example.ssl_dhkey_size 1024
----
If you see errors about certificate, you can disable "tls_verify" (be careful,
If you see errors about certificate, you can disable "ssl_verify" (be careful,
connection will be less secure by doing that):
----
/set irc.server.example.tls_verify off
/set irc.server.example.ssl_verify off
----
If the server has an invalid certificate and you know what the certificate
should be, you can specify the fingerprint (SHA-512, SHA-256 or SHA-1):
----
/set irc.server.example.tls_fingerprint 0c06e399d3c3597511dc8550848bfd2a502f0ce19883b728b73f6b7e8604243b
/set irc.server.example.ssl_fingerprint 0c06e399d3c3597511dc8550848bfd2a502f0ce19883b728b73f6b7e8604243b
----
[[irc_tls_handshake_error]]
=== When connecting to server with TLS, I only see the error "TLS handshake failed", what can I do?
[[irc_ssl_handshake_error]]
=== 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.tls_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"
----
[[irc_tls_libera]]
=== How can I connect to libera server using TLS?
[[irc_ssl_libera]]
=== How can I connect to libera server using SSL?
Check that you have certificates installed on your system, this is commonly
provided by the package "ca-certificates".
With WeeChat ≤ 3.1, set option _weechat.network.gnutls_ca_file_ to file with
certificates:
Setup server port, TLS, then connect:
----
/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:
----
/set irc.server.libera.addresses "irc.libera.chat/6697"
/set irc.server.libera.tls on
/set irc.server.libera.ssl on
/connect libera
----
@@ -768,35 +829,25 @@ join of channels):
[[edit_autojoin]]
=== How can I add/remove channels from autojoin option?
With WeeChat ≥ 3.5, you can automatically record the channels you manually
join and part in the "autojoin" server option.
For all servers:
You can use the `/set` command to edit the list of autojoin channels,
for example for the "libera" server:
----
/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
`/autojoin` command:
----
/autojoin add
----
Or another channel:
----
/autojoin add #test
----
There are also scripts:
Another solution is to use a script:
----
/script search autojoin
@@ -819,16 +870,31 @@ Filtered lines are only hidden, not deleted, and you can see them if you
disable filters (by default, the key kbd:[Alt+=] toggles filters).
[[filter_irc_join_part_quit]]
=== How can I filter join/part/quit and other annoying messages on IRC channels?
=== How can I filter join/part/quit messages on IRC channels?
See link:weechat_user.en.html#irc_smart_filter[User's guide / IRC smart filter ^↗^^].
With smart filter (keep join/part/quit from users who spoke recently):
----
/set irc.look.smart_filter on
/filter add irc_smart * irc_smart_filter *
----
With a global filter (hide *all* join/part/quit):
----
/filter add joinquit * irc_join,irc_part,irc_quit *
----
[NOTE]
For help: `/help filter`, `+/help irc.look.smart_filter+` and see
link:weechat_user.en.html#irc_smart_filter_join_part_quit[User's guide / Smart filter for join/part/quit messages].
[[filter_irc_join_channel_messages]]
=== 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
option _irc.look.display_join_message_ (see `+/help irc.look.display_join_message+`
for more info).
With WeeChat ≥ 0.4.1, you can choose which messages are displayed when
joining a channel with the option _irc.look.display_join_message_ (see
`+/help irc.look.display_join_message+` for more info).
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
@@ -883,13 +949,17 @@ nicks:
/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]]
=== 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
a highlight or private message. Thus you can configure your terminal
(or multiplexer like screen/tmux) to run a command or play a sound when
a _BEL_ occurs.
With WeeChat ≥ 1.0, there is a default trigger "beep" which sends a _BEL_ to
the terminal on a highlight or private message. Thus you can configure your
terminal (or multiplexer like screen/tmux) to run a command or play a sound
when a _BEL_ occurs.
Or you can add a command in "beep" trigger:
@@ -914,8 +984,8 @@ Other scripts on this subject:
[[disable_highlights_for_specific_nicks]]
=== How can I disable highlights for specific nicks?
You can use the
link:weechat_user.en.html#max_hotlist_level_nicks[hotlist_max_level_nicks_add ^↗^^]
With WeeChat ≥ 0.3.4 you can use the
link:weechat_user.en.html#max_hotlist_level_nicks[hotlist_max_level_nicks_add]
buffer property to set the max hotlist level for some nicks, per buffer,
or per group of buffers (like IRC servers).
@@ -951,7 +1021,7 @@ For more examples, see `+/help buffer_autoset+`.
[[irc_target_buffer]]
=== 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
@@ -971,15 +1041,15 @@ You must set that up:
[[install_scripts]]
=== 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`
for help).
With WeeChat ≥ 0.3.9 you can use the command `/script` to install and manage scripts
(see `/help script` for help). For older versions there is weeget.py and script.pl.
Scripts are not compatible with other IRC clients.
[[scripts_update]]
=== The command "/script update" can not read scripts, how to fix that?
First check questions about TLS connection in this FAQ.
First check questions about SSL connection in this FAQ.
If still not working, try to manually delete the scripts file (in your shell):
@@ -988,7 +1058,7 @@ $ rm ~/.cache/weechat/script/plugins.xml.gz
----
[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:
@@ -1030,6 +1100,10 @@ You have to reload the spell plugin:
/plugin reload spell
----
[NOTE]
With WeeChat ≤ 2.4, the "spell" plugin was named "aspell", so the command is:
`/plugin reload aspell`.
[[settings]]
== Settings
@@ -1063,7 +1137,7 @@ You can try following tips to consume less memory:
fifo, logger, perl, python, ruby, lua, tcl, guile, javascript, php, spell,
xfer (used for DCC). See `/help weechat.plugin.autoload`.
* Load only scripts that you really need.
* Do not load system certificates if TLS is *NOT* used: turn off this option:
* Do not load system certificates if SSL is *NOT* used: turn off this option:
_weechat.network.gnutls_ca_system_.
* Reduce value of option _weechat.history.max_buffer_lines_number_ or set value
of option _weechat.history.max_buffer_lines_minutes_.
@@ -1114,7 +1188,7 @@ Unload and disable auto-loading of "xfer" plugin (used for IRC DCC):
Define a passphrase and use secured data wherever you can for sensitive data
like passwords: see `/help secure` and `/help` on options
(if you can use secured data, it is written in the help).
See also link:weechat_user.en.html#secured_data[User's guide / Secured data ^↗^^].
See also link:weechat_user.en.html#secured_data[User's guide / Secured data].
For example:
@@ -1135,7 +1209,7 @@ contains your passwords ciphered with your passphrase.
Some other files may contain sensitive info like passwords (if they are not
stored in _sec.conf_ with the `/secure` command).
See the link:weechat_user.en.html#files_and_directories[User's guide / Files and directories ^↗^^]
See the link:weechat_user.en.html#files_and_directories[User's guide / Files and directories]
for more information about configuration files.
[[development]]
@@ -1144,7 +1218,7 @@ for more information about configuration files.
[[bug_task_patch]]
=== How should I report bugs, ask for new features or send patches?
See https://weechat.org/about/support/[this page ^↗^^].
See: https://weechat.org/about/support
[[gdb_error_threads]]
=== When I run WeeChat under gdb, there is an error about threads, what can I do?
@@ -1180,11 +1254,11 @@ some OS' we don't have, to test WeeChat.
There are many tasks to do (testing, code, documentation, etc.)
Please contact us via IRC or mail, look at
https://weechat.org/about/support/[support page ^↗^^].
Please contact us via IRC or mail, look at support page:
https://weechat.org/about/support
[[donate]]
=== Can I give money or other things to WeeChat developers?
You can give us money to help development.
Details on https://weechat.org/donate/[donation page ^↗^^].
Details on https://weechat.org/donate
File diff suppressed because it is too large Load Diff
+13 -20
View File
@@ -2,6 +2,10 @@
:author: Sébastien Helleu
:email: flashcode@flashtux.org
:lang: en
:toc: left
:sectnums:
:docinfo1:
[[start]]
== Start WeeChat
@@ -101,7 +105,7 @@ other plugins in the list.
You can add an IRC server with the `/server` command, for example:
----
/server add libera irc.libera.chat/6697 -tls
/server add libera irc.libera.chat/6697 -ssl
----
In this command, `libera` is the internal server name used by WeeChat:
@@ -190,15 +194,10 @@ To auto-join some channels when connecting to server:
/set irc.server.libera.autojoin "#channel1,#channel2"
----
The `/autojoin` command lets you configure the _autojoin_ option easily
(see `/help autojoin`).
You can also configure WeeChat to automatically update the _autojoin_ option
when you join or leave channels:
----
/set irc.server_default.autojoin_dynamic on
----
[TIP]
You can complete name and value of options with the kbd:[Tab] key
and kbd:[Shift+Tab] for a partial completion (useful for long words like
the name of option).
To remove a value of a server option, and use the default value instead,
for example to use default nicks (irc.server_default.nicks):
@@ -214,11 +213,6 @@ option name):
/set irc.server.libera.xxx value
----
[TIP]
You can complete name and value of options with the kbd:[Tab] key
and kbd:[Shift+Tab] for a partial completion (useful for long words like
the name of option).
[[connect_to_irc_server]]
== Connect to IRC server
@@ -376,14 +370,13 @@ for example:
See `/help script` for more info.
A list of scripts is available in WeeChat with `/script` or on
https://weechat.org/scripts/[this page ^↗^^].
A list of scripts is available in WeeChat with `/script` or at this URL:
https://weechat.org/scripts
[[more_doc]]
== More documentation
You can now use WeeChat and read
https://weechat.org/doc/[FAQ/documentation ^↗^^]
for any other questions.
You can now use WeeChat and read FAQ/documentation for any other questions:
https://weechat.org/doc
Enjoy using WeeChat!
+92 -134
View File
@@ -2,6 +2,11 @@
:author: Sébastien Helleu
:email: flashcode@flashtux.org
:lang: en
:toc: left
:toclevels: 3
:sectnums:
:docinfo1:
[[introduction]]
== Introduction
@@ -79,7 +84,7 @@ Fields are:
List of available commands (detail in next chapters):
[width="100%",cols="1m,8",options="header"]
[width="100%",cols="^3m,14",options="header"]
|===
| Command | Description
| handshake | Handshake: prepare client authentication and set options, before _init_ command.
@@ -98,7 +103,7 @@ List of available commands (detail in next chapters):
[[command_handshake]]
=== handshake
_WeeChat ≥ 2.9, updated in versions 3.5, 4.0.0._
_WeeChat ≥ 2.9._
Perform an handshake between the client and WeeChat: this is required in most
cases to know the session settings and prepare the authentication with the
@@ -122,20 +127,10 @@ Arguments:
*** _sha512_: password salted and hashed with SHA512 algorithm
*** _pbkdf2+sha256_: password salted and hashed with PBKDF2 algorithm (using SHA256 hash)
*** _pbkdf2+sha512_: password salted and hashed with PBKDF2 algorithm (using SHA512 hash)
** _compression_: list of supported compression types supported by the client
(separated by colons and sorted from most important to the fallback value);
if compression is enabled, messages from _relay_ to client are compressed
to save bandwidth; allowed values are:
*** _off_: no compression (default if option is not given)
*** _zlib_: compress with https://zlib.net/[zlib ^↗^^] _(WeeChat ≥ 0.3.7)_
*** _zstd_: compress with https://facebook.github.io/zstd/[Zstandard ^↗^^]:
better compression and much faster than _zlib_ for both compression and decompression
_(WeeChat ≥ 3.5)_
** _escape_commands_: commands sent by the client to relay must be escaped:
all backslashes are interpreted and a single backslash must be escaped (`\\`);
this allows for example the client to send multiline messages (chars `\n` are
converted to newlines, see <<command_input,input command>>)
_(WeeChat ≥ 4.0.0)_
** _compression_: compression type:
*** _zlib_: enable _zlib_ compression for messages sent by _relay_
(enabled by default if _relay_ supports _zlib_ compression)
*** _off_: disable compression
Notes about option _password_hash_algo_:
@@ -174,12 +169,8 @@ WeeChat replies with a hashtable containing the following keys and values:
and the user password (the _relay_ nonce + the client nonce is the salt used
in the password hash algorithm)
* _compression_: compression type:
** _zlib_: messages are compressed with _zlib_
** _off_: messages are not compressed
** _zlib_: messages are compressed with https://zlib.net/[zlib ^↗^^]
** _zstd_: messages are compressed with https://facebook.github.io/zstd/[Zstandard ^↗^^]
* _escape_commands_:
** _on_: all backslashes are interpreted in the client messages
** _off_: backslashes are *NOT* interpreted in the client messages and used as-is
[TIP]
With WeeChat ≤ 2.8, the command _handshake_ is not implemented, WeeChat silently
@@ -205,29 +196,7 @@ htb: {
'password_hash_iterations': '100000',
'totp': 'on',
'nonce': '85B1EE00695A5B254E14F4885538DF0D',
'compression': 'off',
'escape_commands': 'off',
}
----
* Escape of commands enabled by the client _(WeeChat ≥ 4.0.0)_:
----
(handshake) handshake escape_commands=on
----
Response:
[source,python]
----
id: 'handshake'
htb: {
'password_hash_algo': 'plain',
'password_hash_iterations': '100000',
'totp': 'on',
'nonce': '85B1EE00695A5B254E14F4885538DF0D',
'compression': 'off',
'escape_commands': 'on',
'compression': 'zlib',
}
----
@@ -247,8 +216,7 @@ htb: {
'password_hash_iterations': '100000',
'totp': 'on',
'nonce': '85B1EE00695A5B254E14F4885538DF0D',
'compression': 'off',
'escape_commands': 'off',
'compression': 'zlib',
}
----
@@ -268,8 +236,7 @@ htb: {
'password_hash_iterations': '100000',
'totp': 'on',
'nonce': '85B1EE00695A5B254E14F4885538DF0D',
'compression': 'off',
'escape_commands': 'off',
'compression': 'zlib',
}
----
@@ -281,11 +248,10 @@ the password is "test" in this example:
init password_hash=pbkdf2+sha256:85b1ee00695a5b254e14f4885538df0da4b73207f5aae4:100000:ba7facc3edb89cd06ae810e29ced85980ff36de2bb596fcf513aaab626876440
----
* Only "sha256" and "sha512" are supported by the client, enable zstd (preferred)
or zlib compression:
* Only "sha256" and "sha512" are supported by the client, disable compression:
----
(handshake) handshake password_hash_algo=sha256:sha512,compression=zstd:zlib
(handshake) handshake password_hash_algo=sha256:sha512,compression=off
----
Response:
@@ -298,15 +264,14 @@ htb: {
'password_hash_iterations': '100000',
'totp': 'on',
'nonce': '85B1EE00695A5B254E14F4885538DF0D',
'compression': 'zstd',
'escape_commands': 'off',
'compression': 'off',
}
----
[[command_init]]
=== init
_Updated in versions 2.4, 2.8, 2.9, 3.5._
_Updated in versions 2.4, 2.8, 2.9._
Authenticate with _relay_.
@@ -333,6 +298,12 @@ Arguments:
factor, in addition to the password
(option _relay.network.totp_secret_ in WeeChat)
_(WeeChat ≥ 2.4)_
** _compression_: compression type (*deprecated* since version 2.9, it is kept
for compatibility reasons but should be sent in the
<<command_handshake,handshake command>>):
*** _zlib_: enable _zlib_ compression for messages sent by _relay_
(enabled by default if _relay_ supports _zlib_ compression)
*** _off_: disable compression
[NOTE]
With WeeChat ≥ 1.6, commas can be escaped in the value, for example
@@ -635,7 +606,7 @@ Request an _infolist_.
[IMPORTANT]
Content of infolist is a duplication of actual data. Wherever possible, use
<<command_hdata,hdata command>>, which is direct access to data (it is
command <<command_hdata,hdata>>, which is direct access to data (it is
faster, uses less memory and returns smaller objects in message).
Syntax:
@@ -719,8 +690,6 @@ inl:
text_search_found: 0
text_search_input: None
highlight_words: None
highlight_disable_regex: None
highlight_disable_regex_compiled: '0x0'
highlight_regex: None
highlight_regex_compiled: '0x0'
highlight_tags_restrict: None
@@ -997,14 +966,6 @@ input core.weechat /help filter
input irc.libera.#weechat hello!
----
* Send multiline message to #test channel (option _escape_commands_ must have
been enabled in <<command_handshake,handshake command>> and requires
WeeChat ≥ 4.0.0):
----
input irc.ergo.#test this message has\n2 lines
----
[[command_completion]]
=== completion
@@ -1031,7 +992,7 @@ Arguments:
WeeChat replies with a hdata:
[width="100%",cols="2m,3,14",options="header"]
[width="100%",cols="3m,2,10",options="header"]
|===
| Name | Type | Description
| context | string | Completion context: "null" (no completion), "command", "command_arg", "auto".
@@ -1252,7 +1213,7 @@ Arguments:
specify all buffers
* _options_: one of following keywords, separated by commas (default is
_buffers,upgrade,buffer,nicklist_ for "*" and _buffer,nicklist_ for a buffer);
see <<command_sync,sync command>> for values
see <<command_sync,command sync>> for values
[NOTE]
When using buffer "*", the other buffers synchronized (using a name) are kept. +
@@ -1299,24 +1260,24 @@ Syntax:
Returned objects (in this order):
[width="80%",cols="1m,2,6m",options="header"]
[width="100%",cols="^3,3m,5m",options="header"]
|===
| Type | Description | Value
| chr | char | 65 ("A")
| int | integer | 123456
| int | integer | -123456
| lon | long | 1234567890
| lon | long | -1234567890
| str | string | "a string"
| str | string | ""
| str | string | NULL
| buf | buffer | "buffer"
| buf | buffer | NULL
| ptr | pointer | 0x1234abcd
| ptr | pointer | NULL
| tim | time | 1321993456
| arr str | array of strings | [ "abc", "de" ]
| arr int | array of integers | [ 123, 456, 789 ]
| Type | Type (in message) | Value
| char | chr | 65 ("A")
| integer | int | 123456
| integer | int | -123456
| long | lon | 1234567890
| long | lon | -1234567890
| string | str | "a string"
| string | str | ""
| string | str | NULL
| buffer | buf | "buffer"
| buffer | buf | NULL
| pointer | ptr | 0x1234abcd
| pointer | ptr | NULL
| time | tim | 1321993456
| array of strings | arr str | [ "abc", "de" ]
| array of integers | arr int | [ 123, 456, 789 ]
|===
[IMPORTANT]
@@ -1418,8 +1379,7 @@ Messages are sent as binary data, using following format (with size in bytes):
(including this field)
* _compression_ (byte): flag:
** _0x00_: following data is not compressed
** _0x01_: following data is compressed with https://zlib.net/[zlib ^↗^^]
** _0x02_: following data is compressed with https://facebook.github.io/zstd/[Zstandard ^↗^^]
** _0x01_: following data is compressed with _zlib_
* _id_ (string, 4 bytes + content): identifier sent by client (before command name); it can be
empty (string with zero length and no content) if no identifier was given in
command
@@ -1429,10 +1389,8 @@ Messages are sent as binary data, using following format (with size in bytes):
[[message_compression]]
=== Compression
If flag _compression_ is equal to 0x01 or 0x02, then *all* data after is compressed
with https://zlib.net/[zlib ^↗^^] or
https://facebook.github.io/zstd/[Zstandard ^↗^^],
and therefore must be uncompressed before being processed.
If flag _compression_ is equal to 0x01, then *all* data after is compressed
with _zlib_, and therefore must be uncompressed before being processed.
[[message_identifier]]
=== Identifier
@@ -1447,68 +1405,68 @@ WeeChat reserved identifiers:
[width="100%",cols="5m,5,3,4,7",options="header"]
|===
| Identifier | Received with _sync_ | Data sent
| Description | Recommended action in client
| Identifier | Received with _sync_ | Data sent |
Description | Recommended action in client
| _buffer_opened | buffers / buffer | hdata: buffer
| Buffer opened. | Open buffer.
| _buffer_opened | buffers / buffer | hdata: buffer |
Buffer opened. | Open buffer.
| _buffer_type_changed | buffers / buffer | hdata: buffer
| Type of buffer changed. | Change type of buffer.
| _buffer_type_changed | buffers / buffer | hdata: buffer |
Type of buffer changed. | Change type of buffer.
| _buffer_moved | buffers / buffer | hdata: buffer
| Buffer moved. | Move buffer.
| _buffer_moved | buffers / buffer | hdata: buffer |
Buffer moved. | Move buffer.
| _buffer_merged | buffers / buffer | hdata: buffer
| Buffer merged. | Merge buffer.
| _buffer_merged | buffers / buffer | hdata: buffer |
Buffer merged. | Merge buffer.
| _buffer_unmerged | buffers / buffer | hdata: buffer
| Buffer unmerged. | Unmerge buffer.
| _buffer_unmerged | buffers / buffer | hdata: buffer |
Buffer unmerged. | Unmerge buffer.
| _buffer_hidden | buffers / buffer | hdata: buffer
| Buffer hidden. | Hide buffer.
| _buffer_hidden | buffers / buffer | hdata: buffer |
Buffer hidden. | Hide buffer.
| _buffer_unhidden | buffers / buffer | hdata: buffer
| Buffer unhidden. | Unhide buffer.
| _buffer_unhidden | buffers / buffer | hdata: buffer |
Buffer unhidden. | Unhide buffer.
| _buffer_renamed | buffers / buffer | hdata: buffer
| Buffer renamed. | Rename buffer.
| _buffer_renamed | buffers / buffer | hdata: buffer |
Buffer renamed. | Rename buffer.
| _buffer_title_changed | buffers / buffer | hdata: buffer
| Title of buffer changed. | Change title of buffer.
| _buffer_title_changed | buffers / buffer | hdata: buffer |
Title of buffer changed. | Change title of buffer.
| _buffer_localvar_added | buffers / buffer | hdata: buffer
| Local variable added. | Add local variable in buffer.
| _buffer_localvar_added | buffers / buffer | hdata: buffer |
Local variable added. | Add local variable in buffer.
| _buffer_localvar_changed | buffers / buffer | hdata: buffer
| Local variable changed. | Change local variable in buffer.
| _buffer_localvar_changed | buffers / buffer | hdata: buffer |
Local variable changed. | Change local variable in buffer.
| _buffer_localvar_removed | buffers / buffer | hdata: buffer
| Local variable removed. | Remove local variable from buffer.
| _buffer_localvar_removed | buffers / buffer | hdata: buffer |
Local variable removed. | Remove local variable from buffer.
| _buffer_closing | buffers / buffer | hdata: buffer
| Buffer closing. | Close buffer.
| _buffer_closing | buffers / buffer | hdata: buffer |
Buffer closing. | Close buffer.
| _buffer_cleared | buffer | hdata: buffer
| Buffer cleared. | Clear buffer.
| _buffer_cleared | buffer | hdata: buffer |
Buffer cleared. | Clear buffer.
| _buffer_line_added | buffer | hdata: line
| Line added in buffer. | Display line in buffer.
| _buffer_line_added | buffer | hdata: line |
Line added in buffer. | Display line in buffer.
| _nicklist | nicklist | hdata: nicklist_item
| Nicklist for a buffer. | Replace nicklist.
| _nicklist | nicklist | hdata: nicklist_item |
Nicklist for a buffer. | Replace nicklist.
| _nicklist_diff | nicklist | hdata: nicklist_item
| Nicklist diffs for a buffer . | Update nicklist.
| _nicklist_diff | nicklist | hdata: nicklist_item |
Nicklist diffs for a buffer . | Update nicklist.
| _pong | (always) | string: ping arguments
| Answer to a "ping". | Measure response time.
| _pong | (always) | string: ping arguments |
Answer to a "ping". | Measure response time.
| _upgrade | upgrade | (empty)
| WeeChat is upgrading. | Desync from WeeChat (or disconnect).
| _upgrade | upgrade | (empty) |
WeeChat is upgrading. | Desync from WeeChat (or disconnect).
| _upgrade_ended | upgrade | (empty)
| Upgrade of WeeChat done. | Sync/resync with WeeChat.
| _upgrade_ended | upgrade | (empty) |
Upgrade of WeeChat done. | Sync/resync with WeeChat.
|===
[[message_buffer_opened]]
@@ -2353,7 +2311,7 @@ will change).
[NOTE]
During WeeChat upgrade, the socket remains opened (except if connection uses
TLS).
SSL).
[[message_upgrade_ended]]
==== _upgrade_ended
@@ -2373,7 +2331,7 @@ commands sent on startup after the _init_.
Objects are identified by 3 letters, called _type_. Following types are used:
[width="100%",cols="1m,2,8",options="header"]
[width="100%",cols="^2m,5,10",options="header"]
|===
| Type | Value | Length
| chr | Signed char | 1 byte
+156 -203
View File
@@ -2,11 +2,18 @@
:author: Sébastien Helleu
:email: flashcode@flashtux.org
:lang: en
:toc: left
:toclevels: 4
:sectnums:
:sectnumlevels: 3
:docinfo1:
This manual documents WeeChat chat client, it is part of WeeChat.
Latest version of this document can be found on
https://weechat.org/doc/[this page ^↗^^].
Latest version of this document can be found on this page:
https://weechat.org/doc
[[introduction]]
== Introduction
@@ -54,7 +61,7 @@ function, this can crash WeeChat. +
If something must be run in background, the function `+hook_process+` can be used.
See example in the chapter <<hook_process,Run a background process>>
and the documentation on the function `+hook_process+` in the
link:weechat_plugin_api.en.html#_hook_process[WeeChat plugin API reference ^↗^^].
link:weechat_plugin_api.en.html#_hook_process[WeeChat plugin API reference].
[[languages_specificities]]
=== Languages specificities
@@ -67,7 +74,7 @@ link:weechat_plugin_api.en.html#_hook_process[WeeChat plugin API reference ^↗
WeeChat defines a `weechat` module which must be imported with `import weechat`. +
A Python stub for WeeChat API is available in the repository:
https://raw.githubusercontent.com/weechat/weechat/master/src/plugins/python/weechat.pyi[weechat.pyi ^↗^^].
https://raw.githubusercontent.com/weechat/weechat/master/src/plugins/python/weechat.pyi[weechat.pyi].
[[python_functions]]
===== Functions
@@ -92,41 +99,45 @@ receive a string of type `str` or `bytes` (this list is not exhaustive):
|===
| API function | Arguments | Examples | Description
| hook_modifier
| irc_in_yyy
| pass:[irc_in_privmsg] +
pass:[irc_in_notice]
| A message received in IRC plugin, before it is decoded to UTF-8 (used
| hook_modifier |
irc_in_yyy |
pass:[irc_in_privmsg] +
pass:[irc_in_notice] |
A message received in IRC plugin, before it is decoded to UTF-8 (used
internally). +
+
It is recommended to use modifier `+irc_in2_yyy+` instead, the string received
is always UTF-8 valid. +
See function `+hook_modifier+` in the
link:weechat_plugin_api.en.html#_hook_modifier[WeeChat plugin API reference ^↗^^].
link:weechat_plugin_api.en.html#_hook_modifier[WeeChat plugin API reference].
| hook_signal
| xxx,irc_out_yyy +
xxx,irc_outtags_yyy
| pass:[*,irc_out_privmsg] +
| hook_signal |
xxx,irc_out_yyy +
xxx,irc_outtags_yyy |
pass:[*,irc_out_privmsg] +
pass:[*,irc_out_notice] +
pass:[*,irc_outtags_privmsg] +
pass:[*,irc_outtags_notice]
| A message sent by IRC plugin, after it is encoded to the `encode` charset
pass:[*,irc_outtags_notice] |
A message sent by IRC plugin, after it is encoded to the `encode` charset
defined by the user (if different from the default `UTF-8`). +
+
It is recommended to use signal `+xxx,irc_out1_yyy+` instead, the string received
is always UTF-8 valid. +
See function `+hook_signal+` in the
link:weechat_plugin_api.en.html#_hook_signal[WeeChat plugin API reference ^↗^^].
link:weechat_plugin_api.en.html#_hook_signal[WeeChat plugin API reference].
| hook_process +
hook_process_hashtable
| -
| -
| Output of the command, sent to the callback, can contain invalid UTF-8 data.
hook_process_hashtable |
- |
- |
Output of the command, sent to the callback, can contain invalid UTF-8 data.
|===
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]]
==== Perl
@@ -184,22 +195,6 @@ 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 ^↗^^].
[[language_guile]]
==== Guile (Scheme)
@@ -375,7 +370,7 @@ directory is automatically created.
== Differences with C API
Script API is almost the same as C plugin API.
You can look at link:weechat_plugin_api.en.html[WeeChat plugin API reference ^↗^^]
You can look at link:weechat_plugin_api.en.html[WeeChat plugin API reference]
for detail about each function in API: prototype, arguments, return values, examples.
It's important to make difference between a _plugin_ and a _script_: a
@@ -542,25 +537,25 @@ weechat_hook_timer(1000, 0, 1, $timer_cb, 'test');
== Script API
For more information about functions in API, please read the
link:weechat_plugin_api.en.html[WeeChat plugin API reference ^↗^^].
link:weechat_plugin_api.en.html[WeeChat plugin API reference].
[[script_api_functions]]
=== Functions
List of functions in script API:
[width="100%",cols="1,5",options="header"]
[width="100%",cols="1,3",options="header"]
|===
| Category | Functions
| general
| register
| general |
register
| plugins
| plugin_get_name
| plugins |
plugin_get_name
| strings
| charset_set +
| strings |
charset_set +
iconv_to_internal +
iconv_from_internal +
gettext +
@@ -572,7 +567,6 @@ List of functions in script API:
string_has_highlight_regex +
string_mask_to_regex +
string_format_size +
string_parse_size +
string_color_code_size +
string_remove_color +
string_is_command_char +
@@ -580,13 +574,13 @@ List of functions in script API:
string_eval_expression +
string_eval_path_home
| directories
| mkdir_home +
| directories |
mkdir_home +
mkdir +
mkdir_parents
| sorted lists
| list_new +
| sorted lists |
list_new +
list_add +
list_search +
list_search_pos +
@@ -602,8 +596,8 @@ List of functions in script API:
list_remove_all +
list_free
| configuration files
| config_new +
| configuration files |
config_new +
config_new_section +
config_search_section +
config_new_option +
@@ -640,21 +634,20 @@ List of functions in script API:
config_set_desc_plugin +
config_unset_plugin
| key bindings
| key_bind +
| key bindings |
key_bind +
key_unbind
| display
| prefix +
| display |
prefix +
color +
print (for python: prnt) +
print_date_tags (for python: prnt_date_tags) +
print_y (for python: prnt_y) +
print_y_date_tags (for python: prnt_y_date_tags) +
log_print
| hooks
| hook_command +
| hooks |
hook_command +
hook_command_run +
hook_timer +
hook_fd +
@@ -679,9 +672,8 @@ List of functions in script API:
unhook +
unhook_all
| buffers
| buffer_new +
buffer_new_props +
| buffers |
buffer_new +
current_buffer +
buffer_search +
buffer_search_main +
@@ -696,16 +688,16 @@ List of functions in script API:
buffer_string_replace_local_var +
buffer_match_list
| windows
| current_window +
| windows |
current_window +
window_search_with_buffer +
window_get_integer +
window_get_string +
window_get_pointer +
window_set_title
| nicklist
| nicklist_add_group +
| nicklist |
nicklist_add_group +
nicklist_search_group +
nicklist_add_nick +
nicklist_search_nick +
@@ -721,8 +713,8 @@ List of functions in script API:
nicklist_nick_get_pointer +
nicklist_nick_set
| bars
| bar_item_search +
| bars |
bar_item_search +
bar_item_new +
bar_item_update +
bar_item_remove +
@@ -732,23 +724,23 @@ List of functions in script API:
bar_update +
bar_remove
| commands
| command +
| commands |
command +
command_options
| completion
| completion_new +
| completion |
completion_new +
completion_search +
completion_get_string +
completion_list_add +
completion_free
| infos
| info_get +
| infos |
info_get +
info_get_hashtable
| infolists
| infolist_new +
| infolists |
infolist_new +
infolist_new_item +
infolist_new_var_integer +
infolist_new_var_string +
@@ -766,8 +758,8 @@ List of functions in script API:
infolist_time +
infolist_free
| hdata
| hdata_get +
| hdata |
hdata_get +
hdata_get_var_offset +
hdata_get_var_type_string +
hdata_get_var_array_size +
@@ -788,8 +780,8 @@ List of functions in script API:
hdata_update +
hdata_get_string
| upgrade
| upgrade_new +
| upgrade |
upgrade_new +
upgrade_write_object +
upgrade_read +
upgrade_close
@@ -800,17 +792,17 @@ List of functions in script API:
List of constants in script API:
[width="100%",cols="1,5",options="header"]
[width="100%",cols="1,3",options="header"]
|===
| Category | Constants
| return codes
| `WEECHAT_RC_OK` (integer) +
| return codes |
`WEECHAT_RC_OK` (integer) +
`WEECHAT_RC_OK_EAT` (integer) +
`WEECHAT_RC_ERROR` (integer)
| configuration files
| `WEECHAT_CONFIG_READ_OK` (integer) +
| configuration files |
`WEECHAT_CONFIG_READ_OK` (integer) +
`WEECHAT_CONFIG_READ_MEMORY_ERROR` (integer) +
`WEECHAT_CONFIG_READ_FILE_NOT_FOUND` (integer) +
`WEECHAT_CONFIG_WRITE_OK` (integer) +
@@ -825,23 +817,23 @@ List of constants in script API:
`WEECHAT_CONFIG_OPTION_UNSET_OK_REMOVED` (integer) +
`WEECHAT_CONFIG_OPTION_UNSET_ERROR` (integer)
| sorted lists
| `WEECHAT_LIST_POS_SORT` (string) +
| sorted lists |
`WEECHAT_LIST_POS_SORT` (string) +
`WEECHAT_LIST_POS_BEGINNING` (string) +
`WEECHAT_LIST_POS_END` (string)
| hotlist
| `WEECHAT_HOTLIST_LOW` (string) +
| hotlist |
`WEECHAT_HOTLIST_LOW` (string) +
`WEECHAT_HOTLIST_MESSAGE` (string) +
`WEECHAT_HOTLIST_PRIVATE` (string) +
`WEECHAT_HOTLIST_HIGHLIGHT` (string)
| hook process
| `WEECHAT_HOOK_PROCESS_RUNNING` (integer) +
| hook process |
`WEECHAT_HOOK_PROCESS_RUNNING` (integer) +
`WEECHAT_HOOK_PROCESS_ERROR` (integer)
| hook connect
| `WEECHAT_HOOK_CONNECT_OK` (integer) +
| hook connect |
`WEECHAT_HOOK_CONNECT_OK` (integer) +
`WEECHAT_HOOK_CONNECT_ADDRESS_NOT_FOUND` (integer) +
`WEECHAT_HOOK_CONNECT_IP_ADDRESS_NOT_FOUND` (integer) +
`WEECHAT_HOOK_CONNECT_CONNECTION_REFUSED` (integer) +
@@ -853,8 +845,8 @@ List of constants in script API:
`WEECHAT_HOOK_CONNECT_TIMEOUT` (integer) +
`WEECHAT_HOOK_CONNECT_SOCKET_ERROR` (integer)
| hook signal
| `WEECHAT_HOOK_SIGNAL_STRING` (string) +
| hook signal |
`WEECHAT_HOOK_SIGNAL_STRING` (string) +
`WEECHAT_HOOK_SIGNAL_INT` (string) +
`WEECHAT_HOOK_SIGNAL_POINTER` (string)
|===
@@ -864,7 +856,7 @@ List of constants in script API:
This chapter shows some common tasks, with examples.
Only partial things in API are used here, for full reference, see the
link:weechat_plugin_api.en.html[WeeChat plugin API reference ^↗^^].
link:weechat_plugin_api.en.html[WeeChat plugin API reference].
[[buffers]]
=== Buffers
@@ -883,7 +875,7 @@ Examples:
weechat.prnt("", "hello")
# display "hello" on core buffer, but do not write it to log file
# (version 0.3.3 only)
# (version >= 0.3.3 only)
weechat.prnt_date_tags("", 0, "no_log", "hello")
# display prefix "==>" and message "hello" on current buffer
@@ -1057,53 +1049,26 @@ weechat.hook_timer(60 * 1000, 60, 0, "timer_cb", "")
You can run a background process with `+hook_process+`. Your callback will be
called when data is ready. It may be called many times.
For the last call to your callback, _return_code_ is set to 0 or positive value,
it is the return code of command.
For the last call to your callback, _rc_ is set to 0 or positive value, it's
return code of command.
Example:
[source,python]
----
def my_process_cb(data, command, return_code, out, err):
if return_code == weechat.WEECHAT_HOOK_PROCESS_ERROR:
weechat.prnt("", "Error with command '%s'" % command)
return weechat.WEECHAT_RC_OK
if return_code >= 0:
weechat.prnt("", "return_code = %d" % return_code)
if out:
weechat.prnt("", "stdout: %s" % out)
if err:
weechat.prnt("", "stderr: %s" % err)
process_output = ""
def my_process_cb(data, command, rc, out, err):
global process_output
if out != "":
process_output += out
if int(rc) >= 0:
weechat.prnt("", process_output)
return weechat.WEECHAT_RC_OK
weechat.hook_process("/bin/ls -l /etc", 10 * 1000, "my_process_cb", "")
----
You can also call directly a script function that does something blocking,
instead of an external command:
[source,python]
----
def get_status(data):
# do something blocking...
# ...
return "this is the result"
def my_process_cb(data, command, return_code, out, err):
if return_code == weechat.WEECHAT_HOOK_PROCESS_ERROR:
weechat.prnt("", "Error with command '%s'" % command)
return weechat.WEECHAT_RC_OK
if return_code >= 0:
weechat.prnt("", "return_code = %d" % return_code)
if out:
weechat.prnt("", "stdout: %s" % out)
if err:
weechat.prnt("", "stderr: %s" % err)
return weechat.WEECHAT_RC_OK
hook = weechat.hook_process("func:get_status", 5000, "my_process_cb", "")
----
[[url_transfer]]
==== URL transfer
@@ -1117,15 +1082,15 @@ in callback (standard output of process):
[source,python]
----
# Display latest stable version of WeeChat.
weechat_latest_version = ""
# Display current stable version of WeeChat.
weechat_version = ""
def weechat_process_cb(data, command, return_code, out, err):
global weechat_latest_version
if out:
weechat_latest_version += out
if return_code >= 0:
weechat.prnt("", "Latest WeeChat version: %s" % weechat_latest_version)
def weechat_process_cb(data, command, rc, out, err):
global weechat_version
if out != "":
weechat_version += out
if int(rc) >= 0:
weechat.prnt("", "Current WeeChat stable is: %s" % weechat_version)
return weechat.WEECHAT_RC_OK
weechat.hook_process("url:https://weechat.org/dev/info/stable/",
@@ -1133,17 +1098,16 @@ weechat.hook_process("url:https://weechat.org/dev/info/stable/",
----
[TIP]
All infos available about WeeChat are on
https://weechat.org/dev/info/[this page ^↗^^].
All infos available about WeeChat are on page https://weechat.org/dev/info
Example of URL transfer with an option: download latest WeeChat development
package in file _/tmp/weechat-devel.tar.gz_:
[source,python]
----
def my_process_cb(data, command, return_code, out, err):
if return_code >= 0:
weechat.prnt("", "End of transfer (return code = %d)" % return_code)
def my_process_cb(data, command, rc, out, err):
if int(rc) >= 0:
weechat.prnt("", "End of transfer (rc=%s)" % rc)
return weechat.WEECHAT_RC_OK
weechat.hook_process_hashtable("url:https://weechat.org/files/src/weechat-devel.tar.gz",
@@ -1153,7 +1117,7 @@ weechat.hook_process_hashtable("url:https://weechat.org/files/src/weechat-devel.
For more information about URL transfer and available options, see functions
`+hook_process+` and `+hook_process_hashtable+` in
link:weechat_plugin_api.en.html#_hook_process[WeeChat plugin API reference ^↗^^].
link:weechat_plugin_api.en.html#_hook_process[WeeChat plugin API reference].
[[config_options]]
=== Config / options
@@ -1307,71 +1271,63 @@ The result is a hashtable with following keys
[width="100%",cols="3,^2,10,7",options="header"]
|===
| Key | Since WeeChat ^(1)^ | Description | Example
| Key | Since WeeChat ^(1)^ | Description | Example
| tags | 0.4.0
| The tags in message (can be empty).
| `+time=2015-06-27T16:40:35.000Z+`
| tags | 0.4.0 |
The tags in message (can be empty). |
`+time=2015-06-27T16:40:35.000Z+`
| tag_xxx | 3.3
| Unescaped value of tag "xxx" (one key per tag).
| `+2015-06-27T16:40:35.000Z+`
| tag_xxx | 3.3 |
Unescaped value of tag "xxx" (one key per tag). |
`+2015-06-27T16:40:35.000Z+`
| message_without_tags | 0.4.0
| The message without the tags (the same as message if there are no tags).
| `+:nick!user@host PRIVMSG #weechat :hello!+`
| message_without_tags | 0.4.0 |
The message without the tags (the same as message if there are no tags). |
`+:nick!user@host PRIVMSG #weechat :hello!+`
| nick | 0.3.4
| The origin nick.
| `+nick+`
| nick | 0.3.4 |
The origin nick. |
`+nick+`
| user | 2.7
| The origin user.
| `+user+`
| user | 2.7 |
The origin user. |
`+user+`
| host | 0.3.4
| The origin host (includes the nick).
| `+nick!user@host+`
| host | 0.3.4 |
The origin host (includes the nick). |
`+nick!user@host+`
| command | 0.3.4
| The command (_PRIVMSG_, _NOTICE_, ...).
| `+PRIVMSG+`
| command | 0.3.4 |
The command (_PRIVMSG_, _NOTICE_, ...). |
`+PRIVMSG+`
| channel | 0.3.4
| The target channel.
| `+#weechat+`
| channel | 0.3.4 |
The target channel. |
`+#weechat+`
| arguments | 0.3.4
| The command arguments (includes the channel).
| `+#weechat :hello!+`
| arguments | 0.3.4 |
The command arguments (includes the channel). |
`+#weechat :hello!+`
| text | 1.3
| The text (for example user message).
| `+hello!+`
| text | 1.3 |
The text (for example user message). |
`+hello!+`
| paramN | 3.4
| Command parameter (from 1 to N).
| `+#weechat+`
| pos_command | 1.3 |
The index of _command_ in message ("-1" if _command_ was not found). |
`+47+`
| num_params | 3.4
| Number of command parameters.
| `+2+`
| pos_arguments | 1.3 |
The index of _arguments_ in message ("-1" if _arguments_ was not found). |
`+55+`
| pos_command | 1.3
| The index of _command_ in message ("-1" if _command_ was not found).
| `+47+`
| pos_channel | 1.3 |
The index of _channel_ in message ("-1" if _channel_ was not found). |
`+55+`
| pos_arguments | 1.3
| The index of _arguments_ in message ("-1" if _arguments_ was not found).
| `+55+`
| pos_channel | 1.3
| The index of _channel_ in message ("-1" if _channel_ was not found).
| `+55+`
| pos_text | 1.3
| The index of _text_ in message ("-1" if _text_ was not found).
| `+65+`
| pos_text | 1.3 |
The index of _text_ in message ("-1" if _text_ was not found). |
`+65+`
|===
[NOTE]
@@ -1395,9 +1351,6 @@ dict = weechat.info_get_hashtable(
# "channel": "#weechat",
# "arguments": "#weechat :hello!",
# "text": "hello!",
# "param1": "#weechat",
# "param2": "hello!",
# "num_params": "2",
# "pos_command": "65",
# "pos_arguments": "73",
# "pos_channel": "73",
+744 -1318
View File
File diff suppressed because it is too large Load Diff
+48
View File
@@ -0,0 +1,48 @@
#
# Copyright (C) 2012-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/>.
#
if(ENABLE_DOC)
# FAQ
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_faq.es.html
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -o weechat_faq.es.html ${CMAKE_CURRENT_SOURCE_DIR}/weechat_faq.es.adoc
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/../docinfo.html
${CMAKE_CURRENT_SOURCE_DIR}/weechat_faq.es.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building weechat_faq.es.html"
)
add_custom_target(doc-faq-es ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_faq.es.html)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_faq.es.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
# quickstart
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.es.html
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -o weechat_quickstart.es.html ${CMAKE_CURRENT_SOURCE_DIR}/weechat_quickstart.es.adoc
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/../docinfo.html
${CMAKE_CURRENT_SOURCE_DIR}/weechat_quickstart.es.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building weechat_quickstart.es.html"
)
add_custom_target(doc-quickstart-es ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.es.html)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.es.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
endif()
+77
View File
@@ -0,0 +1,77 @@
#
# Copyright (C) 2012-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/>.
#
docdir = $(datadir)/doc/$(PACKAGE)
EXTRA_DIST = CMakeLists.txt \
docinfo.html \
weechat_faq.es.adoc \
weechat_quickstart.es.adoc
if MAN
man_targets =
man_install =
man_uninstall =
endif
if DOC
doc_targets = weechat_faq.es.html \
weechat_quickstart.es.html
doc_install = install-doc
doc_uninstall = uninstall-doc
endif
all-local: $(man_targets) $(doc_targets)
# FAQ
weechat_faq.es.html: weechat_faq.es.adoc $(abs_top_srcdir)/doc/docinfo.html
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_faq.es.html $(abs_top_srcdir)/doc/es/weechat_faq.es.adoc
# quickstart
weechat_quickstart.es.html: weechat_quickstart.es.adoc $(abs_top_srcdir)/doc/docinfo.html
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_quickstart.es.html $(abs_top_srcdir)/doc/es/weechat_quickstart.es.adoc
# install man/docs
install-data-hook: $(man_install) $(doc_install)
install-man:
$(mkinstalldirs) $(DESTDIR)$(mandir)/es/man1/
$(INSTALL_DATA) *.1 $(DESTDIR)$(mandir)/es/man1/
(cd '$(DESTDIR)$(mandir)/es/man1/' && $(RM) weechat-headless.1 && $(LN_S) weechat.1 weechat-headless.1)
install-doc:
$(mkinstalldirs) $(DESTDIR)$(docdir)/
$(INSTALL_DATA) *.html $(DESTDIR)$(docdir)/
# uninstall man/docs
uninstall-hook: $(man_uninstall) $(doc_uninstall)
uninstall-man:
$(RM) $(DESTDIR)$(mandir)/es/man1/weechat.1
$(RM) $(DESTDIR)$(mandir)/es/man1/weechat-headless.1
-rmdir $(DESTDIR)$(mandir)/es/man1
uninstall-doc:
$(RM) $(DESTDIR)$(docdir)/*.es.html
-rmdir $(DESTDIR)$(docdir)
# clean
clean-local:
-$(RM) weechat_*.html
+1
View File
@@ -0,0 +1 @@
../docinfo.html
+183 -139
View File
@@ -2,12 +2,23 @@
:author: Sébastien Helleu
:email: flashcode@flashtux.org
:lang: es
:toc-title: Índice
:toc: left
:toclevels: 2
:sectnums:
:sectnumlevels: 2
:docinfo1:
Traductores
* Victorhck <victorhck.mailbox.org>, 2021
Este documento está escrito para versiones de WeeChat ≥ 0.3.0 pero siempre es preferible
usar la última versión estable de WeeChat.
toc::[]
[[general]]
== General
@@ -25,9 +36,7 @@ no se aplican a WeeChat!).
Porque WeeChat es muy ligero y ofrece funcionalidades innovadoras.
// TRANSLATION MISSING
More info on the WeeChat
https://weechat.org/about/features/[features page ^↗^^].
Más información de las funcionalidades de WeeChat en la página: https://weechat.org/about/features
[[compilation_install]]
== Compilación / instalación
@@ -35,28 +44,27 @@ https://weechat.org/about/features/[features page ^↗^^].
[[gui]]
=== ¿He oido que hay muchas interfaces gráficas de susuario (GUI) para WeeChat. ¿Cómo puedo compilarlas o usarlas?
// TRANSLATION MISSING
Some remote GUIs are available, see the
https://weechat.org/about/interfaces/[remote interfaces page ^↗^^].
Hay disponibles algunas GUIs, eche un vistazo a la página de interfaces remotas:
https://weechat.org/about/interfaces
[[compile_git]]
=== No puedo compilar WeeChat después de haber clonado el repositorio git, ¿por qué?
// TRANSLATION MISSING
WeeChat must be compiled with CMake.
La manera recomendada para compilar WeeChat es con
link:weechat_user.en.html#compile_with_cmake[CMake].
// TRANSLATION MISSING
Please follow link:weechat_user.en.html#source_package[build instructions ^↗^^]
and ensure all required dependencies are installed.
Si lo está compilando con link:weechat_user.en.html#compile_with_autotools[autotools]
(y no con CMake), compruebe que tiene la versión más reciente de autoconf y automake.
// TRANSLATION MISSING
If you still have issues, please report them to the developers.
Otra forma es instalar "devel package", que necesita menos dependencias.
Este paquete está compilado casi cada día utilizando el repositorio git. Tenga en cuenta que este
paquete puede no corresponder exactamente con la base de git y es menos conveniente
que la opción de clonar el repositorio de git a la hora de instalar actualizaciones.
[[compile_macos]]
=== ¿Cómo puedo instalar WeeChat en macOS?
Se recomienda utilizar https://brew.sh/[Homebrew ^↗^^],
puede obtener ayuda con el comando:
Se recomienda utilizar https://brew.sh/[Homebrew], puede obtener ayuda con el comando:
----
brew info weechat
@@ -72,12 +80,12 @@ brew install weechat
=== He lanzado WeeChat, pero estoy perdido, ¿qué puedo hacer?
Para consultar la ayuda, escriba `/help`. Para buscar ayuda con un comando, escriba `/help comando`.
link:weechat_user.en.html#key_bindings[Las teclas ^↗^^] y
link:weechat_user.en.html#commands_and_options[comandos ^↗^^] aparecen listados
link:weechat_user.en.html#key_bindings[Las teclas] y
link:weechat_user.en.html#commands_and_options[comandos] aparecen listados
en la documentación.
Se recomienda a las personas recién llegadas leer la
link:weechat_quickstart.es.html[guía rápida ^↗^^].
link:weechat_quickstart.es.html[guía rápida].
[[display]]
== Visualización
@@ -105,7 +113,7 @@ Es un problema común con una variedad de causas, por favor lea detenidamente y
** Si está utilizando el multiplexador screen, compruebe que lo está ejecuando con el modo UTF-8
("`defutf8 on`" en ~/.screenrc o `screen -U` al ejecutar screen).
* Compruebe si la opción
link:weechat_user.en.html#option_weechat.look.eat_newline_glitch[_weechat.look.eat_newline_glitch_ ^↗^^]
link:weechat_user.en.html#option_weechat.look.eat_newline_glitch[_weechat.look.eat_newline_glitch_]
está en off (esta opción puede causar errores a la hora de mostrar el texto).
[NOTE]
@@ -120,11 +128,10 @@ Esto puede estar causado por un error en libc en la función _wcwidth_, que debe
en glibc 2.22 (quizás todavía no está disponible en su distribución).
Hay una solución temporal que es utilizar una función de _wcwidth_ sin ese error:
https://blog.nytsoi.net/2015/05/04/emoji-support-for-weechat[https://blog.nytsoi.net/2015/05/04/emoji-support-for-weechat ^↗^^].
https://blog.nytsoi.net/2015/05/04/emoji-support-for-weechat
// TRANSLATION MISSING
See this https://github.com/weechat/weechat/issues/79[bug report ^↗^^]
for more information.
Vea este reporte de error para más información:
https://github.com/weechat/weechat/issues/79
[[bars_background]]
=== Las barras del título y de estado no aparecen rellenadas, el color de fondo desaparece después del texto, ¿por qué?
@@ -181,10 +188,17 @@ ventanas.
[[buffers_list]]
=== ¿Cómo mostrar un listado de los buffers en la parte izquierda?
El complemento link:weechat_user.en.html#buflist[buflist ^↗^^]
Con WeeChat ≥ 1.8, el complemento link:weechat_user.en.html#buflist_plugin[buflist]
está cargado y habilitado de manera predeterminada.
Para limitar el tamaño de la barra:
Con versiones anteriores, puede instalar el script _buffers.pl_:
----
/script install buffers.pl
----
Para limitar el tamaño de la barra (reemplace "buflist" por "buffers" si está utilizando el script
_buffers.pl_):
----
/set weechat.bar.buflist.size_max 15
@@ -202,6 +216,21 @@ con la rueda del ratón.
Las teclas predeterminadas para _hacer scroll_ en la barra son kbd:[F1] (o kbd:[Ctrl+F1]), kbd:[F2]
(o kbd:[Ctrl+F2]), kbd:[Alt+F1] y kbd:[Alt+F2].
Para el script _buffers.pl_, puede definir las teclas, similares a las teclas existentes para
hacer _scroll_ en la lista de apodos. +
Por ejemplo para utilizar kbd:[F1], kbd:[F2], kbd:[Alt+F1] y 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]
Las teclas "meta-OP" y "meta-OQ" pueden ser diferentes en su terminal. Para encontrar el código
de la tecla, pulse kbd:[Alt+k] y después la tecla.
[[customize_buflist]]
=== ¿Cómo puedo personalizar la lista de lista de buffers, como el color del buffer activo?
@@ -227,9 +256,8 @@ como `237` para gris oscuro.
El complemento del listado de buffers _buflist_ ofrece múltiples opciones que puede configurar, por favor lea
la ayuda de cada opción.
// TRANSLATION MISSING
There's also a https://github.com/weechat/weechat/wiki/buflist[wiki page ^↗^^]
with examples of advanced buflist configuration.
También hay una página wiki con ejemplos de configuraciones más completas:
https://github.com/weechat/weechat/wiki/buflist
[[customize_prefix]]
=== ¿Cómo puedo reducir la longitud de los apodos o eliminar la alineación de los apodos en el área del chat?
@@ -272,7 +300,7 @@ Estos colores pueden ser cambiados con las opciones __weechat.color.status_data_
(buffers) y __weechat.color.status_count_*__ (contadores). +
Otras opciones de la lista rápida o _hotlist_ pueden ser cambiadas con las opciones __weechat.look.hotlist_*__.
Vea la link:weechat_user.en.html#screen_layout[Guía de usuario / diseño de la pantalla ^↗^^] para
Vea la link:weechat_user.en.html#screen_layout[Guía de usuario / diseño de la pantalla] para
más información sobre este tema.
[[input_bar_size]]
@@ -318,9 +346,9 @@ en ninguna barra:
[[terminal_copy_paste]]
=== ¿Cómo puedo copiar/pegar texto sin pegar la lista de apodos?
// TRANSLATION MISSING
You can use the bare display (default key: kbd:[Alt+l] (`L`)), which shows
just the contents of the currently selected window, without any formatting.
Con WeeChat ≥ 1.0, puedes utilizar una visualización simple (la tecla predeterminada: kbd:[Alt+l] (`L`)),
que mostrará solo el contenido de la ventana actual seleccionada,
sin ningún tipo de formato de texto.
Puede utilizar una terminal con selección rectangualr (como rxvt-unicode,
konsole, gnome-terminal, etc.). La tecla normalmente es kbd:[Ctrl] + kbd:[Alt] + la selección
@@ -335,8 +363,7 @@ Otra solución es mover la lista de apodos a la parte superior o inferior, por e
[[urls]]
=== ¿Cómo puedo hacer clic sobre direcciones URL largas (de más de una línea)?
// TRANSLATION MISSING
You can use the bare display (default key: kbd:[Alt+l] (`L`)).
Con WeeChat ≥ 1.0, puede utilizar la visualización simple (la tecla predeterminada: kbd:[Alt+l] (`L`)).
Para abrir direcciones URL más fácilmente, puede:
@@ -346,7 +373,7 @@ Para abrir direcciones URL más fácilmente, puede:
/set weechat.bar.nicklist.position top
----
* inhabilitar la alineación de palabras multilínea:
* inhabilitar la alineación de palabras multilínea (WeeChat ≥ 1.7):
----
/set weechat.look.align_multiline_words off
@@ -358,9 +385,9 @@ Para abrir direcciones URL más fácilmente, puede:
/set weechat.look.align_end_of_lines time
----
// TRANSLATION MISSING
You can enable option "eat_newline_glitch", so that new line char is not added
at the end of each line displayed (it will not break URL selection):
Con WeeChat ≥ 0.3.6, puede habilitar la opción "eat_newline_glitch", así
el caracter de la nueva línea no es añadido al final de cada línea mostrada (esto no romperá
la selección de la dirección URL):
----
/set weechat.look.eat_newline_glitch on
@@ -407,6 +434,8 @@ En WeeChat, el nuevo valor es inmediatamente utilizado:
[[use_256_colors]]
=== ¿Cómo puedo utilizar 256 colors en WeeChat?
256 colors están admitidos con WeeChat ≥ 0.3.4.
Primero compruebe que su variable de entorno _TERM_ es correcta, los valores recomendados
son:
@@ -424,18 +453,19 @@ term screen-256color
----
Si su variable _TERM_ tiene un valor erróneo y ya WeeChat está ejecutándose,
puede cambiarlo con estos dos comandos:
puede cambiarlo con estos dos comandos (en WeeChat ≥ 1.0):
----
/set env TERM screen-256color
/upgrade
----
// TRANSLATION MISSING
You can use any color number in options (optional: you can add color aliases
with command `/color`).
Para la versión 0.3.4, deberá utilizar el comando `/color` para añadir nuevos colores.
Por favor lea la link:weechat_user.en.html#colors[Guía del usuario / Colores ^↗^^] para más
Para versiones ≥ 0.3.5, puede utilizar cualquier número de color en las opciones (opcional: puede
añadir alias al color con el comando `/color`).
Por favor lea la link:weechat_user.en.html#colors[Guía del usuario / Colores] para más
información sobre la gestión de los colores.
[[search_text]]
@@ -444,8 +474,8 @@ información sobre la gestión de los colores.
La tecla predeterminada es kbd:[Ctrl+r] (el comando es: `+/input texto_a_buscar_aquí+`).
Y para saltar a los textos resaltados: kbd:[Alt+p] / kbd:[Alt+n].
Vea la link:weechat_user.en.html#key_bindings[Guía del usuario / Atajos de teclado ^↗^^]
para más información sobre esta funcionalidad.
Vea la link:weechat_user.en.html#key_bindings[Guía del usuario / Atajos de teclado] para más
información sobre esta funcionalidad.
[[terminal_focus]]
=== ¿Cómo puedo ejecutar comandos cuando la terminal tiene o pierde el foco?
@@ -471,14 +501,14 @@ Y después enlazar dos teclas para el foco (reemplazar los comandos `/print` por
comandos que prefiera):
----
/key bind meta-[I /print -core focus
/key bind meta-[O /print -core unfocus
/key bind meta2-I /print -core focus
/key bind meta2-O /print -core unfocus
----
Por ejemplo, para marcar buffers como leidos cuando una terminal pierde el foco:
----
/key bind meta-[O /allbuf /buffer set unread
/key bind meta2-O /input set_unread
----
[[screen_paste]]
@@ -618,7 +648,7 @@ Puede crear un atajo de teclado, por ejemplo:
----
Tiene una lista de las teclas predeterminadas en la
link:weechat_user.en.html#key_bindings[Guía del usuario / Atajos de teclado ^↗^^].
link:weechat_user.en.html#key_bindings[Guía del usuario / Atajos de teclado].
Para saltar a un buffer mayor de 100, podría definir un disparador y después utilizar
comandos como `/123` para saltar al buffer #123:
@@ -635,26 +665,23 @@ global son kbd:[Ctrl+↑] y kbd:[Ctrl+↓]).
Ejemplo:
----
/key bind up /input history_global_previous
/key bind down /input history_global_next
----
// TRANSLATION MISSING
With WeeChat ≤ 3.8, you must use the raw key code (press kbd:[Alt+k] then key
to display its code):
----
/key bind meta2-A /input history_global_previous
/key bind meta2-B /input history_global_next
----
[NOTE]
Las telcas "meta2-A" y "meta2-B" pueden ser diferentes en su terminal. Para encontrar el código
de la tecla pulse kbd:[Alt+k] y después la tecla.
[[mouse]]
== Ratón
[[mouse_not_working]]
=== El ratón no funciona en absoluto, ¿qué puedo hacer?
El ratón tiene soporte desde WeeChat ≥ 0.3.6.
Primero trate de habilitar el ratón:
----
@@ -698,55 +725,74 @@ tiene que utilizar kbd:[Alt] en vez de kbd:[Shift]).
[[irc]]
== IRC
[[irc_tls_connection]]
=== Tengo algunos problemas al conectarme a un servidor utilizando TLS, ¿qué puedo hacer?
[[irc_ssl_connection]]
=== Tengo algunos problemas al conectarme a un servidor utilizando SSL, ¿qué puedo hacer?
Si está utilizando macOS, deberá instalar `openssl` desde Homebrew.
Se añadirá un archivo CA que utiliza los certificados del sistema.
Con WeeChat ≤ 3.1, puede establecer la ruta de los certificados del sistema:
----
/set weechat.network.gnutls_ca_file "/usr/local/etc/openssl/cert.pem"
----
Si ve errores en gnutls handshake, puede intentar utilizar una clave de cifrado menor
Diffie-Hellman (la predeterminada es 2048):
----
/set irc.server.example.tls_dhkey_size 1024
/set irc.server.example.ssl_dhkey_size 1024
----
Si ve errores sobre el certificado, puede inhabilitar "tls_verify" (tenga cuidado,
Si ve errores sobre el certificado, puede inhabilitar "ssl_verify" (tenga cuidado,
la conexión será menos segura haciendo esto):
----
/set irc.server.example.tls_verify off
/set irc.server.example.ssl_verify off
----
Si el servidor tiene un certificado inválido y usted conoce qué certificado
debería ser, puede especificar la huella (fingerprint) (SHA-512, SHA-256 or SHA-1):
----
/set irc.server.example.tls_fingerprint 0c06e399d3c3597511dc8550848bfd2a502f0ce19883b728b73f6b7e8604243b
/set irc.server.example.ssl_fingerprint 0c06e399d3c3597511dc8550848bfd2a502f0ce19883b728b73f6b7e8604243b
----
[[irc_tls_handshake_error]]
=== Al conectar a un servidor con TLS, solo veo el error "TLS handshake failed", ¿qué puedo hacer?
[[irc_ssl_handshake_error]]
=== Al conectar a un servidor con SSL, solo veo el error "TLS handshake failed", ¿qué puedo hacer?
Puede intentar una cadena de prioridad diferente, reemplace "xxx" por el nombre
de su servidor:
Puede intentar una cadena de prioridad diferente (WeeChat ≥ 0.3.5 únicamente), reemplace "xxx"
por el nombre de su servidor:
----
/set irc.server.xxx.tls_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"
----
[[irc_tls_libera]]
=== ¿Cómo puedo conectarme al servidor libera utilizando TLS?
[[irc_ssl_libera]]
=== ¿Cómo puedo conectarme al servidor libera utilizando SSL?
// TRANSLATION MISSING
Check that you have certificates installed on your system, this is commonly
provided by the package "ca-certificates".
Con WeeChat ≤ 3.1, establezca la opción _weechat.network.gnutls_ca_file_ en el archivo con
los certificados:
Establezca el puerto del servidor, TLS, después conecte:
----
/set weechat.network.gnutls_ca_file "/etc/ssl/certs/ca-certificates.crt"
----
Nota: Si está ejecutando macOS con Homebrew openssl instalado, puede ejecutar:
----
/set weechat.network.gnutls_ca_file "/usr/local/etc/openssl/cert.pem"
----
[NOTE]
Compruebe que tiene este archivo en su sistema (normalmente viene ofrecido por el paquete
"ca-certificates").
Establezca el puerto del servidor, SSL, después conecte:
----
/set irc.server.libera.addresses "irc.libera.chat/6697"
/set irc.server.libera.tls on
/set irc.server.libera.ssl on
/connect libera
----
@@ -786,41 +832,25 @@ unirse a los canales):
[[edit_autojoin]]
=== ¿Cómo puedo añadir/eliminar canales de la opción autojoin?
// TRANSLATION MISSING
With WeeChat ≥ 3.5, you can automatically record the channels you manually
join and part in the "autojoin" server option.
// TRANSLATION MISSING
For all servers:
Puede utilizar el comando `/set` para editar la lista de canales con autojoin,
por ejemplo, para el servidor "libera":
----
/set irc.server_default.autojoin_dynamic on
/set irc.server.libera.autojoin [TAB]
----
// TRANSLATION MISSING
For a single server:
[NOTE]
Puede completar el nombre y el valor de la opción con la tecla kbd:[Tab]
(o kbd:[Shift+Tab] para completar el comando de manera parcial, útil para el nombre). +
De esta manera no tendrá que escribir la lista completa de canales.
También puede utilizar el comando `/fset` para editar la lista de canales:
----
/set irc.server.libera.autojoin_dynamic on
/fset autojoin
----
// TRANSLATION MISSING
You can also add the current channel in the "autojoin" server option using the
`/autojoin` command:
----
/autojoin add
----
// TRANSLATION MISSING
Or another channel:
----
/autojoin add #test
----
// TRANSLATION MISSING
There are also scripts:
Otra solución es utilizar un script:
----
/script search autojoin
@@ -842,19 +872,32 @@ prefijar el contenido de la línea.
Las líneas flitradas solo son ocultadas, no eliminadas, y podrá verlas si
inhabilita los filtros (de manera predeteminada, la tecla kbd:[Alt+=] alterna esos filtros).
// TRANSLATION MISSING
[[filter_irc_join_part_quit]]
=== How can I filter join/part/quit and other annoying messages on IRC channels?
=== ¿Cómo puedo filtrar los mensajes join/part/quit en los canales IRC?
See link:weechat_user.en.html#irc_smart_filter[User's guide / IRC smart filter ^↗^^].
Con el filtro inteligente (mantiene los mensajes join/part/quit de usuarios que hayan hablado recientemente):
----
/set irc.look.smart_filter on
/filter add irc_smart * irc_smart_filter *
----
Con un filtro global (oculta *todos* los mensajes join/part/quit):
----
/filter add joinquit * irc_join,irc_part,irc_quit *
----
[NOTE]
Para más ayuda: `/help filter`, `+/help irc.look.smart_filter+` y vea la
link:weechat_user.en.html#irc_smart_filter_join_part_quit[Guía del usuario / Filtros inteligente para mensajes join/part/quit].
[[filter_irc_join_channel_messages]]
=== ¿Cómo puedo filtrar algunos mensajes mostrados cuando me uno a un canal IRC?
// TRANSLATION MISSING
You can choose which messages are displayed when joining a channel with the
option _irc.look.display_join_message_ (see `+/help irc.look.display_join_message+`
for more info).
Con WeeChat ≥ 0.4.1, puede escoger qué mensajes son mostrados cuando
se une a un canal mediante la opción _irc.look.display_join_message_ (vea
`+/help irc.look.display_join_message+` para más información).
Para ocultar mensajes (pero mantenerlos en el buffer), puede filtrarlos utilizando la etiqueta propia del mensaje
(por ejemplo _irc_329_ para la fecha de creación del canal). Vea `/help filter` para más información
@@ -909,14 +952,17 @@ apodos:
/set irc.server_default.away_check_max_nicks 25
----
[NOTE]
Para WeeChat ≤ 0.3.3, las opciones son _irc.network.away_check_ y
_irc.network.away_check_max_nicks_.
[[highlight_notification]]
=== ¿Cómo puedo ser advertido cuando alguien me menciona en un canal?
// TRANSLATION MISSING
There is a default trigger "beep" which sends a _BEL_ to the terminal on
a highlight or private message. Thus you can configure your terminal
(or multiplexer like screen/tmux) to run a command or play a sound when
a _BEL_ occurs.
Con WeeChat ≥ 1.0, hay un disparador "beep" que envía un _BEL_ a
a la terminal cuando alguien le menciona o le manda un privado. Además puede configurar su
terminal (o multiplexador como screen/tmux) para ejecutar un comando o reproducir un sonido
cuando suceda un evento _BEL_.
O puede añadir un comando al disparador "beep":
@@ -941,11 +987,10 @@ Otros scripts para este tema:
[[disable_highlights_for_specific_nicks]]
=== ¿Cómo puedo inhabilitar las menciones de unos apodos específicos?
// TRANSLATION MISSING
You can use the
link:weechat_user.en.html#max_hotlist_level_nicks[hotlist_max_level_nicks_add ^↗^^]
buffer property to set the max hotlist level for some nicks, per buffer,
or per group of buffers (like IRC servers).
Con WeeChat ≥ 0.3.4 puede utilizar
link:weechat_user.en.html#max_hotlist_level_nicks[hotlist_max_level_nicks_add]
esta propiedad del buffer para configurar el nivel máximo de la hotlist para algunos apodos, por buffer,
o por grupo de buffers (como servidores IRC).
Para únicamente inhabilitar las notificaciones, debería establecerlo a 2:
@@ -979,7 +1024,7 @@ Para más ejemplos, vea `+/help buffer_autoset+`.
[[irc_target_buffer]]
=== ¿Cómo puedo cambiar el objetivo del buffer para comandos en buffers unidos (como en un buffer con servidores)?
La tecla predeterminada es kbd:[Ctrl+x] (el comando es: `+/buffer switch+`).
La tecla predeterminada es kbd:[Ctrl+x] (el comando es: `+/input switch_active_buffer+`).
[[plugins_scripts]]
== Complementos / scripts
@@ -999,16 +1044,15 @@ Deberá configurar lo siguiente:
[[install_scripts]]
=== ¿Cómo puedo instalar scripts? ¿Son los scripts compatibles con otros clientes IRC?
// TRANSLATION MISSING
You can use the command `/script` to install and manage scripts (see `/help script`
for help).
Con WeeChat ≥ 0.3.9 puede utilizar el comando `/script` para instalar y gestionar los scripts
(vea `/help script` para obtener más ayuda). Para versiones anteriores existe weeget.py y script.pl.
Los scripts no son compatibles con otros clientes IRC.
[[scripts_update]]
=== El comando "/script update" no puede leer los scripts, ¿Cómo puedo solucionar eso?
Primero compruebe las preguntas sobre la conexión TLS en este documento.
Primero compruebe las preguntas sobre la conexión SSL en este documento.
Si todavía no funciona, trate de manera manual eliminar los archivos de scripts (escriba en su terminal):
@@ -1016,9 +1060,8 @@ Si todavía no funciona, trate de manera manual eliminar los archivos de scripts
$ rm ~/.cache/weechat/script/plugins.xml.gz
----
// TRANSLATION MISSING
[NOTE]
If you are not using the XDG directories, the path could be: _~/.weechat/script/plugins.xml.gz_.
Con WeeChat ≤ 3.1, la ruta debería ser: _~/.weechat/script/plugins.xml.gz_.
Y vuelva a actualitar los scripts de nuevo en WeeChat:
@@ -1061,6 +1104,10 @@ Deberá recargar el complemento spell:
/plugin reload spell
----
[NOTE]
Con WeeChat ≤ 2.4, el complemento "spell" fue renombrado a "aspell", así que el comando sería:
`/plugin reload aspell`.
[[settings]]
== Ajustes
@@ -1094,7 +1141,7 @@ Puede intentar estos trucos para consumir menos memoria:
fifo, logger, perl, python, ruby, lua, tcl, guile, javascript, php, spell,
xfer (usado para DCC). Vea `/help weechat.plugin.autoload`.
* Cargue solo los scripts que realmente necesite.
* No cargue los certificados del sistema si TLS *NO* es utilizado: inhabilite esta opción mediante:
* No cargue los certificados del sistema si SSL *NO* es utilizado: inhabilite esta opción mediante:
_weechat.network.gnutls_ca_system_.
* Reduzca el valor de la opción _weechat.history.max_buffer_lines_number_ o establezca
el valor de la opción _weechat.history.max_buffer_lines_minutes_.
@@ -1145,7 +1192,7 @@ Elimine de la memoria e inhabilite la carga automática del complemento "xfer" (
Defina una frase de paso y utilice datos seguros cada vez que pueda para datos sensibles
como contraseñas: vea `/help secure` y `/help` en las opciones
(si puede utilice datos seguros, está escrito en la ayuda).
Ver también link:weechat_user.en.html#secured_data[Guía del usuario / Datos seguros ^↗^^].
Ver también link:weechat_user.en.html#secured_data[Guía del usuario / Datos seguros].
Por ejemplo:
@@ -1166,7 +1213,7 @@ contiene sus contraseñas cifradas con su frase de paso.
Algunos otros archivos pueden contener información sensible como contraseñas (si no están
almacenadas en _sec.conf_ con el comando `/secure`).
Vea la link:weechat_user.en.html#files_and_directories[Guía del usuario / Archivos y directorios ^↗^^]
Vea la link:weechat_user.en.html#files_and_directories[Guía del usuario / Archivos y directorios]
para más información relacionada con los archivos de configuración.
[[development]]
@@ -1175,8 +1222,7 @@ para más información relacionada con los archivos de configuración.
[[bug_task_patch]]
=== ¿Cómo podría informar de errores, pedir nuevas funcionalidades o enviar parches?
// TRANSLATION MISSING
See https://weechat.org/about/support/[this page ^↗^^].
Vea: https://weechat.org/about/support
[[gdb_error_threads]]
=== Cuando ejecuto WeeChat bajo gdb, hay un error con la muestra de las conversaciones, ¿qué puedo hacer?
@@ -1212,13 +1258,11 @@ algunos sistemas operativos en los que no podemos probar WeeChat.
Hay muchas tareas que hacer (probar, escribir código, documentación, etc.)
// TRANSLATION MISSING
Please contact us via IRC or mail, look at
https://weechat.org/about/support/[support page ^↗^^].
Por favor, contacte con nosotros mediante IRC o correo electrónico, eche un vistazo a la página de soporte:
https://weechat.org/about/support
[[donate]]
=== ¿Puedo donar dinero u otras cosas a las personas que desarrollan WeeChat?
// TRANSLATION MISSING
You can give us money to help development.
Details on https://weechat.org/donate/[donation page ^↗^^].
Puede donar dinero para ayudar en el desarrollo.
Más detalles en https://weechat.org/donate
+14 -25
View File
@@ -2,13 +2,17 @@
:author: Sébastien Helleu
:email: flashcode@flashtux.org
:lang: es
:toc-title: Índice
:toc: left
:sectnums:
:docinfo1:
Traductores:
* Lázaro A. <uranio-235@myopera.com>, 2012
* Victorhck <victorhck@mailbox.org>, 2021
[[start]]
== Iniciar WeeChat
@@ -111,7 +115,7 @@ seguramente vera irc y otros.
Puede añadir un servidor IRC mediante el comando `/server`, por ejemplo:
----
/server add libera irc.libera.chat/6697 -tls
/server add libera irc.libera.chat/6697 -ssl
----
En este comando, `libera` es el nombre interno del servidor utilizado por WeeChat:
@@ -203,17 +207,10 @@ Para unirse automáticamente a canales cuando el servidor se conecte:
/set irc.server.libera.autojoin "#uncanal,#otrocanal"
----
// TRANSLATION MISSING
The `/autojoin` command lets you configure the _autojoin_ option easily
(see `/help autojoin`).
// TRANSLATION MISSING
You can also configure WeeChat to automatically update the _autojoin_ option
when you join or leave channels:
----
/set irc.server_default.autojoin_dynamic on
----
[TIP]
Puede completar el nombre y el valor de las opciones con la tecla kbd:[Tab]
y kbd:[Shift+Tab] para un autocompletado parcial (útil para palabras largas como
el nombre de la opción).
Para eliminar un valor asignado a una opción de servidor y usar los
valores predeterminados en su lugar, por ejemplo, usar el nick predeterminado
@@ -230,11 +227,6 @@ donde "xxx" es el nombre de la opción.
/set irc.server.libera.xxx valor
----
[TIP]
Puede completar el nombre y el valor de las opciones con la tecla kbd:[Tab]
y kbd:[Shift+Tab] para un autocompletado parcial (útil para palabras largas como
el nombre de la opción).
[[connect_to_irc_server]]
== Conectarse a un servidor IRC
@@ -398,16 +390,13 @@ por ejemplo:
Vea `/help script` para obtener más información.
// TRANSLATION MISSING
A list of scripts is available in WeeChat with `/script` or on
https://weechat.org/scripts/[this page ^↗^^].
Hay una lista de scripts disponibles en WeeChat mediante el comando `/script` o en este enlace:
https://weechat.org/scripts
[[more_doc]]
== Más documentación
// TRANSLATION MISSING
You can now use WeeChat and read
https://weechat.org/doc/[FAQ/documentation ^↗^^]
for any other questions.
Ahora puede usar WeeChat y leer las FAQ/documentación para cada pregunta
en: https://weechat.org/doc
¡Disfrute de WeeChat!

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