1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-28 05:46:38 +02:00

Compare commits

..

3 Commits

Author SHA1 Message Date
Sébastien Helleu 6a98f747e6 Version 3.7.1 2022-10-21 13:01:44 +02:00
Sébastien Helleu dc034e2685 trigger: execute trigger command on appropriate buffer (issue #1841)
This affects the following hook types:

- command
- command_run
- line
- modifier
- print

This fixes a regression introduced in WeeChat 3.7 by commit
0f67f55098.
2022-10-20 20:39:39 +02:00
Sébastien Helleu a0bba1325a Version 3.7.1-dev 2022-10-20 20:39:09 +02:00
895 changed files with 183216 additions and 218143 deletions
+2 -1
View File
@@ -3,5 +3,6 @@
.git* export-ignore .git* export-ignore
debian-devel export-ignore debian-devel export-ignore
debian-stable export-ignore debian-stable export-ignore
weechat.spec export-ignore
.mailmap export-ignore .mailmap export-ignore
tools/build_debian.sh export-ignore tools/build-debian.sh export-ignore
+43
View File
@@ -0,0 +1,43 @@
---
name: Bug report
about: Create a bug report (please do not report security issues here)
labels: bug
---
<!-- Please do not report any security issue here, see file Contributing.adoc -->
## Bug summary
## Steps to reproduce
1. 
2. 
3. 
## Current behavior
## Expected behavior
## Suggested solutions
## Additional information
---
<!-- MANDATORY INFO: -->
- WeeChat version: 
- OS, distribution and version: 
- Terminal: 
- Terminal multiplexer (screen/tmux/…/none): 
-110
View File
@@ -1,110 +0,0 @@
name: Bug report
description: Create a bug report
labels: ["bug"]
body:
- type: markdown
attributes:
value: |
Before submitting a bug, please check that it has not already been reported by searching in [open and closed bugs](https://github.com/weechat/weechat/issues?q=is%3Aissue+label%3Abug).
If you don't use the latest version, please try if possible with the latest stable release to be sure the issue is still present and report the issue on this version.
**IMPORTANT**: please do not report any security issue here, see [Contributing.adoc](https://github.com/weechat/weechat/blob/master/Contributing.adoc#security-reports).
- type: textarea
id: bug-description
attributes:
label: Describe the bug
description: A clear and concise description of what the bug is.
validations:
required: true
- type: textarea
id: steps-to-reproduce
attributes:
label: Steps to reproduce
description: |
Steps to reproduce the issue.
If possible, please try to reproduce with a default configuration and no scripts loaded (`weechat -t`). If the issue is related to a script, please mention the list of all scripts loaded.
placeholder: |
1.
2.
3.
validations:
required: true
- type: textarea
id: current-behavior
attributes:
label: Current behavior
description: |
What currently happens.
validations:
required: true
- type: textarea
id: expected-behavior
attributes:
label: Expected behavior
description: What is actually supposed to happen.
validations:
required: true
- type: textarea
id: suggested-solutions
attributes:
label: Suggested solutions
description: How you think this issue can be resolved.
validations:
required: false
- type: textarea
id: additional-information
attributes:
label: Additional information
description: |
For a crash, please include a backtrace from gdb, see the [User's guide](https://weechat.org/doc/weechat/user/#report_crashes).
For a display issue, please add a screenshot if it makes sense.
Please mention if other versions are affected as well and if some versions are not affected (regression?).
And any additional information you deem relevant.
validations:
required: false
- type: input
id: weechat-version
attributes:
label: WeeChat version
description: |
For a stable release: output of `weechat --version`.
For the development version: output of command `/v` in WeeChat.
placeholder: "4.1.1"
validations:
required: true
- type: input
id: os-version
attributes:
label: What OS are you using?
description: Name of the operating system and its version.
placeholder: Debian 12, Ubuntu 23.10, MacOS 14, ...
validations:
required: true
- type: input
id: terminal
attributes:
label: On which terminal are you running WeeChat?
description: The name of terminal if you think it can be related to the issue (mainly for display issues).
placeholder: Terminator, Xterm, GNOME Terminal, Urxvt, ...
validations:
required: false
- type: input
id: terminal-multiplexer
attributes:
label: Which terminal multiplexer are you using?
description: The name of the terminal multiplexer if you think it can be related to the issue (mainly for display issues).
placeholder: none, tmux, screen, ...
validations:
required: false
@@ -0,0 +1,8 @@
---
name: Feature request
about: Request a new feature / enhancement
labels: feature
---
## Feature description
@@ -1,17 +0,0 @@
name: Feature request
description: Request a new feature / enhancement
labels: ["feature"]
body:
- type: markdown
attributes:
value: |
Before submitting a feature request, please check that it has not already been reported by searching in [open and closed feature requests](https://github.com/weechat/weechat/issues?q=is%3Aissue+label%3Afeature).
- type: textarea
id: feature
attributes:
label: Feature description
description: A description of the feature you would like.
validations:
required: true
+15
View File
@@ -0,0 +1,15 @@
---
name: Question
about: Ask a question (please read first FAQ and docs)
labels: question
---
## Question
---
- WeeChat version: 
- OS, distribution and version: 
-19
View File
@@ -1,19 +0,0 @@
name: Question
description: Ask a question
labels: ["question"]
body:
- type: markdown
attributes:
value: |
Before opening an issue with a question:
- please read the [FAQ](https://weechat.org/doc/weechat/faq) and [documentation](https://weechat.org/doc/weechat/)
- please ask on #weechat channel (on server irc.libera.chat).
- type: textarea
id: question
attributes:
label: Question
description: Your question.
validations:
required: true
+36 -134
View File
@@ -1,47 +1,11 @@
name: CI name: CI
on: on:
push: - push
pull_request: - pull_request
schedule:
- cron: '22 9 * * 2'
env: env:
WEECHAT_DEPENDENCIES: >- WEECHAT_DEPENDENCIES: devscripts equivs python3-pip autopoint cmake ninja-build lcov pkg-config libncursesw5-dev gem2deb libperl-dev python2-dev python3-dev libaspell-dev liblua5.3-dev tcl8.6-dev guile-2.2-dev libv8-dev libcurl4-gnutls-dev libgcrypt20-dev libgnutls28-dev libzstd-dev zlib1g-dev curl libcpputest-dev php8.0-dev libphp8.0-embed libargon2-dev libsodium-dev pylint python3-bandit asciidoctor ruby-pygments.rb
asciidoctor
cmake
curl
devscripts
equivs
flake8
gem2deb
guile-3.0-dev
lcov
libargon2-dev
libaspell-dev
libcjson-dev
libcpputest-dev
libcurl4-gnutls-dev
libgcrypt20-dev
libgnutls28-dev
liblua5.3-dev
libncurses-dev
libperl-dev
libphp-embed
libsodium-dev
libv8-dev
libzstd-dev
ninja-build
php-dev
pkg-config
pylint
python3-bandit
python3-dev
python3-pip
ruby-pygments.rb
shellcheck
tcl8.6-dev
zlib1g-dev
jobs: jobs:
@@ -52,13 +16,14 @@ jobs:
os: os:
- ubuntu-22.04 - ubuntu-22.04
config: config:
- { name: "gcc", cc: "gcc", cxx: "g++", buildargs: "" } - { name: "cmake_gcc", cc: "gcc", cxx: "g++", tool: "cmake", args: "" }
- { name: "gcc_ninja", cc: "gcc", cxx: "g++", buildargs: "-G Ninja" } - { name: "cmake_gcc_ninja", cc: "gcc", cxx: "g++", tool: "cmake", args: "-G Ninja" }
- { name: "gcc_no_nls", cc: "gcc", cxx: "g++", buildargs: "-DENABLE_NLS=OFF -DENABLE_DOC=OFF" } - { name: "cmake_gcc_no_nls", cc: "gcc", cxx: "g++", tool: "cmake", args: "-DENABLE_NLS=OFF" }
- { name: "gcc_no_zstd", cc: "gcc", cxx: "g++", buildargs: "-DENABLE_ZSTD=OFF -DENABLE_DOC=OFF" } - { name: "cmake_gcc_py2", cc: "gcc", cxx: "g++", tool: "cmake", args: "-DENABLE_PYTHON2=ON" }
- { name: "gcc_no_cjson", cc: "gcc", cxx: "g++", buildargs: "-DENABLE_CJSON=OFF -DENABLE_DOC=OFF" } - { name: "cmake_gcc_coverage", cc: "gcc", cxx: "g++", tool: "cmake", args: "-DENABLE_CODE_COVERAGE=ON" }
- { name: "gcc_coverage", cc: "gcc", cxx: "g++", buildargs: "-DENABLE_CODE_COVERAGE=ON" } - { name: "cmake_clang", cc: "clang", cxx: "clang++", tool: "cmake", args: "" }
- { name: "clang", cc: "clang", cxx: "clang++", buildargs: "" } - { 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: "Tests: ${{ matrix.config.name }} on ${{ matrix.os }}"
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
@@ -69,30 +34,33 @@ jobs:
- name: Install dependencies - name: Install dependencies
run: | run: |
sudo apt-add-repository --yes ppa:ondrej/php
sudo apt-get update -qq sudo apt-get update -qq
sudo apt-get --yes purge php8.1-dev
sudo apt-get --yes --no-install-recommends install ${{ env.WEECHAT_DEPENDENCIES }} 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 -H pip3 install --ignore-installed msgcheck sudo -H pip3 install --ignore-installed msgcheck
- name: Check gettext files - name: Check gettext files
run: msgcheck po/*.po run: msgcheck po/*.po
- name: Check shell and Python scripts - name: Check Python scripts
run: ./tools/check_scripts.sh run: |
pylint --additional-builtins=_ doc/docgen.py
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 - name: Check Python stub file
run: ./tools/generate_python_stub.py | diff src/plugins/python/weechat.pyi - 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 - name: Build and run tests
env: env:
CC: ${{ matrix.config.cc }} CC: ${{ matrix.config.cc }}
CXX: ${{ matrix.config.cxx }} CXX: ${{ matrix.config.cxx }}
BUILDARGS: ${{ matrix.config.buildargs }} BUILDTOOL: ${{ matrix.config.tool }}
run: ./tools/build_test.sh BUILDARGS: ${{ matrix.config.args }}
run: ./tools/build-test.sh
- name: Run WeeChat - name: Run WeeChat
env: env:
@@ -105,24 +73,8 @@ jobs:
weechat --version weechat --version
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit" weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
- name: Test Relay OpenAPI
if: ${{ matrix.config.name == 'gcc' }}
env:
RELAY_PASSWORD: test
run: |
sudo -H pip3 install --ignore-installed schemathesis
weechat-headless \
--dir /tmp/weechat-test-api \
--run-command '/set relay.network.password "${{ env.RELAY_PASSWORD }}"' \
--run-command '/relay add api 9000' \
--daemon \
;
sleep 5
./tools/test_relay_api.sh http://localhost:9000
echo '*/quit' >/tmp/weechat-test-api/weechat_fifo_*
- name: Code coverage - name: Code coverage
if: ${{ matrix.config.name == 'gcc_coverage' }} if: ${{ matrix.config.name == 'cmake_gcc_coverage' }}
env: env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
run: | run: |
@@ -138,38 +90,22 @@ jobs:
matrix: matrix:
os: os:
- macos-12 - macos-12
- macos-11
config: config:
- { name: "gcc", cc: "gcc", cxx: "g++" } - { name: "cmake_gcc", cc: "gcc", cxx: "g++" }
- { name: "clang", cc: "clang", cxx: "clang++" } - { name: "cmake_clang", cc: "clang", cxx: "clang++" }
name: "Tests: ${{ matrix.config.name }} on ${{ matrix.os }}" name: "Tests: ${{ matrix.config.name }} on ${{ matrix.os }}"
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
steps: steps:
- name: Setup Homebrew - uses: actions/checkout@v2
id: setup-homebrew
uses: Homebrew/actions/setup-homebrew@master
- name: Install dependencies - name: Install dependencies
run: | run: |
brew update brew update
# temporary fix, see: https://github.com/actions/setup-python/issues/577 brew install asciidoctor lua ruby
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 cjson guile lua pkg-config ruby
- uses: actions/checkout@v2
- name: Build - name: Build
env: env:
@@ -177,7 +113,7 @@ jobs:
CXX: ${{ matrix.config.cxx }} CXX: ${{ matrix.config.cxx }}
run: | run: |
mkdir build-tmp && cd build-tmp 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 make VERBOSE=1 -j2
sudo make install sudo make install
@@ -208,14 +144,16 @@ jobs:
- name: Install dependencies - name: Install dependencies
run: | run: |
sudo apt-add-repository --yes ppa:ondrej/php
sudo apt-get update -qq sudo apt-get update -qq
sudo apt-get --yes --no-install-recommends install ${{ env.WEECHAT_DEPENDENCIES }} sudo apt-get --yes purge php8.1-dev
sudo apt-get --yes --no-install-recommends install ${{ env.WEECHAT_DEPENDENCIES }} php-dev
- name: Test Debian patches - name: Test Debian patches
run: ./tools/build_debian.sh test-patches run: ./tools/build-debian.sh test-patches
- name: Build Debian packages - name: Build Debian packages
run: ./tools/build_debian.sh devel ubuntu/jammy run: ./tools/build-debian.sh devel ubuntu/jammy
- name: Install Debian packages - name: Install Debian packages
run: sudo dpkg -i ../weechat-devel*.deb run: sudo dpkg -i ../weechat-devel*.deb
@@ -228,39 +166,3 @@ jobs:
weechat-curses --help weechat-curses --help
weechat --version weechat --version
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit" weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
codeql-analysis:
name: CodeQL
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install dependencies
run: |
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 -H pip3 install --ignore-installed msgcheck
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: cpp
- name: Autobuild
uses: github/codeql-action/autobuild@v3
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
with:
category: "/language:cpp"
+55 -9
View File
@@ -1,11 +1,57 @@
# ignored files for Git # ignored files for Git
/build *.a
/builddir *.gmo
/debian *.la
/debian-devel/changelog *.lai
/debian-devel/*.log *.lo
/debian-devel/*-stamp *.m4
/debian-stable/*.log *.o
/debian-stable/*-stamp *.Plo
/release *.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 -7
View File
@@ -67,7 +67,6 @@ Alphabetically:
* Jiri Golembiovsky (GolemJ) * Jiri Golembiovsky (GolemJ)
* Joey Pabalinas (alyptik) * Joey Pabalinas (alyptik)
* Johan Rylander * Johan Rylander
* Johannes Kuhn
* Joram Schrijver * Joram Schrijver
* Jos Ahrens * Jos Ahrens
* Joseph Kichline * Joseph Kichline
@@ -78,16 +77,13 @@ Alphabetically:
* Krzysztof Koroscik (soltys) * Krzysztof Koroscik (soltys)
* Kyle Fuller (kylef) * Kyle Fuller (kylef)
* Kyle Sabo * Kyle Sabo
* Latchezar Tzvetkoff
* Lázaro A.
* Leonid Evdokimov * Leonid Evdokimov
* Lázaro A.
* Linus Heckemann * Linus Heckemann
* LuK1337
* Maarten de Vries * Maarten de Vries
* Mantas Mikulėnas (grawity) * Mantas Mikulėnas (grawity)
* Marco Paolone * Marco Paolone
* Marco Sirabella * Marco Sirabella
* Mario Campos
* Mateusz Poszwa * Mateusz Poszwa
* Matt Robinson * Matt Robinson
* Matthew Horan * Matthew Horan
@@ -126,7 +122,6 @@ Alphabetically:
* Rudolf Polzer (divVerent) * Rudolf Polzer (divVerent)
* Ruslan Bekenev * Ruslan Bekenev
* Ryan Farley * Ryan Farley
* Ryan Qian
* Ryuunosuke Ayanokouzi * Ryuunosuke Ayanokouzi
* scumjr * scumjr
* Sergio Durigan Junior * Sergio Durigan Junior
@@ -152,7 +147,6 @@ Alphabetically:
* Vasco Almeida * Vasco Almeida
* Victorhck * Victorhck
* Voroskoi * Voroskoi
* wfrsk
* Wojciech Kwolek * Wojciech Kwolek
* W. Trevor King * W. Trevor King
* Yannick Palanque * Yannick Palanque
+108 -119
View File
@@ -1,5 +1,5 @@
# #
# Copyright (C) 2003-2024 Sébastien Helleu <flashcode@flashtux.org> # Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2007-2008 Julien Louis <ptitlouis@sysif.net> # Copyright (C) 2007-2008 Julien Louis <ptitlouis@sysif.net>
# Copyright (C) 2008-2009 Emmanuel Bouthenot <kolter@openics.org> # Copyright (C) 2008-2009 Emmanuel Bouthenot <kolter@openics.org>
# #
@@ -19,35 +19,28 @@
# along with WeeChat. If not, see <https://www.gnu.org/licenses/>. # along with WeeChat. If not, see <https://www.gnu.org/licenses/>.
# #
cmake_minimum_required(VERSION 3.5) cmake_minimum_required(VERSION 3.0)
project(weechat C) project(weechat C)
# CMake options # CMake options
set(CMAKE_VERBOSE_MAKEFILE OFF) set(CMAKE_VERBOSE_MAKEFILE OFF)
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake" "${CMAKE_MODULE_PATH}") set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
set(CMAKE_SKIP_RPATH ON) set(CMAKE_SKIP_RPATH ON)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsigned-char -fms-extensions -Wall -Wextra -Werror-implicit-function-declaration")
# compiler options
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsigned-char -fms-extensions -Wall -Wextra -Werror-implicit-function-declaration -Wformat -Werror=format-security")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsigned-char -fms-extensions -Wall -Wextra") 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 # version
execute_process(COMMAND "${CMAKE_SOURCE_DIR}/version.sh" devel-major OUTPUT_VARIABLE VERSION_MAJOR) execute_process(COMMAND ${CMAKE_SOURCE_DIR}/version.sh devel-major OUTPUT_VARIABLE VERSION_MAJOR)
execute_process(COMMAND "${CMAKE_SOURCE_DIR}/version.sh" devel-minor OUTPUT_VARIABLE VERSION_MINOR) 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-patch OUTPUT_VARIABLE VERSION_PATCH)
string(REGEX REPLACE "\n" "" VERSION_MAJOR "${VERSION_MAJOR}") string(REGEX REPLACE "\n" "" VERSION_MAJOR "${VERSION_MAJOR}")
string(REGEX REPLACE "\n" "" VERSION_MINOR "${VERSION_MINOR}") string(REGEX REPLACE "\n" "" VERSION_MINOR "${VERSION_MINOR}")
string(REGEX REPLACE "\n" "" VERSION_PATCH "${VERSION_PATCH}") string(REGEX REPLACE "\n" "" VERSION_PATCH "${VERSION_PATCH}")
if(VERSION_PATCH STREQUAL "") if(VERSION_PATCH STREQUAL "")
set(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}") set(VERSION ${VERSION_MAJOR}.${VERSION_MINOR})
else() else()
set(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}") set(VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH})
endif() endif()
# license # license
@@ -66,70 +59,68 @@ set(PKG_STRING "${PROJECT_NAME} ${VERSION}")
string(REPLACE "\";\"" "\ " PKG_STRING ${PKG_STRING}) string(REPLACE "\";\"" "\ " PKG_STRING ${PKG_STRING})
if(NOT DEFINED LIBDIR) if(NOT DEFINED LIBDIR)
set(LIBDIR "${CMAKE_INSTALL_PREFIX}/lib") set(LIBDIR ${CMAKE_INSTALL_PREFIX}/lib)
endif() endif()
if(NOT DEFINED WEECHAT_LIBDIR) if(NOT DEFINED WEECHAT_LIBDIR)
set(WEECHAT_LIBDIR "${LIBDIR}/${PROJECT_NAME}") set(WEECHAT_LIBDIR ${LIBDIR}/${PROJECT_NAME})
endif() endif()
if(NOT DEFINED DATAROOTDIR) if(NOT DEFINED DATAROOTDIR)
set(DATAROOTDIR "${CMAKE_INSTALL_PREFIX}/share") set(DATAROOTDIR ${CMAKE_INSTALL_PREFIX}/share)
endif() endif()
if(NOT DEFINED WEECHAT_SHAREDIR) if(NOT DEFINED WEECHAT_SHAREDIR)
set(WEECHAT_SHAREDIR "${DATAROOTDIR}/weechat") set(WEECHAT_SHAREDIR ${DATAROOTDIR}/weechat)
endif() endif()
if(NOT DEFINED MANDIR) if(NOT DEFINED MANDIR)
set(MANDIR "${DATAROOTDIR}/man") set(MANDIR ${DATAROOTDIR}/man)
endif() endif()
if(NOT DEFINED LOCALEDIR) if(NOT DEFINED LOCALEDIR)
set(LOCALEDIR "${DATAROOTDIR}/locale") set(LOCALEDIR ${DATAROOTDIR}/locale)
endif() endif()
if(DEFINED INCLUDEDIR) if(DEFINED INCLUDEDIR)
set(INCLUDEDIR "${INCLUDEDIR}/${PROJECT_NAME}") set(INCLUDEDIR ${INCLUDEDIR}/${PROJECT_NAME})
else() else()
set(INCLUDEDIR "${CMAKE_INSTALL_PREFIX}/include/${PROJECT_NAME}") set(INCLUDEDIR ${CMAKE_INSTALL_PREFIX}/include/${PROJECT_NAME})
endif() endif()
option(ENABLE_NCURSES "Compile the Ncurses interface" ON) option(ENABLE_NCURSES "Compile the Ncurses interface" ON)
option(ENABLE_HEADLESS "Compile the headless binary" ON) option(ENABLE_HEADLESS "Compile the headless binary (required for tests)" ON)
option(ENABLE_NLS "Enable Native Language Support" ON) option(ENABLE_NLS "Enable Native Language Support" ON)
option(ENABLE_LARGEFILE "Enable Large File Support" ON) option(ENABLE_LARGEFILE "Enable Large File Support" ON)
option(ENABLE_ZSTD "Enable Zstandard compression" ON) option(ENABLE_ALIAS "Enable Alias plugin" ON)
option(ENABLE_CJSON "Enable cJSON support" ON) option(ENABLE_BUFLIST "Enable Buflist plugin" ON)
option(ENABLE_ALIAS "Enable Alias plugin" ON) option(ENABLE_CHARSET "Enable Charset plugin" ON)
option(ENABLE_BUFLIST "Enable Buflist plugin" ON) option(ENABLE_EXEC "Enable Exec plugin" ON)
option(ENABLE_CHARSET "Enable Charset plugin" ON) option(ENABLE_FIFO "Enable FIFO plugin" ON)
option(ENABLE_EXEC "Enable Exec plugin" ON) option(ENABLE_FSET "Enable Fast Set plugin" ON)
option(ENABLE_FIFO "Enable FIFO plugin" ON) option(ENABLE_IRC "Enable IRC plugin" ON)
option(ENABLE_FSET "Enable Fast Set plugin" ON) option(ENABLE_LOGGER "Enable Logger plugin" ON)
option(ENABLE_IRC "Enable IRC plugin" ON) option(ENABLE_RELAY "Enable Relay plugin" ON)
option(ENABLE_LOGGER "Enable Logger plugin" ON) option(ENABLE_SCRIPT "Enable Script plugin (script manager)" ON)
option(ENABLE_RELAY "Enable Relay plugin" ON) option(ENABLE_SCRIPTS "Enable script plugins (perl, python, ...)" ON)
option(ENABLE_SCRIPT "Enable Script plugin (script manager)" ON) option(ENABLE_PERL "Enable Perl scripting language" ON)
option(ENABLE_SCRIPTS "Enable script plugins (perl, python, …)" ON) option(ENABLE_PYTHON "Enable Python scripting language" ON)
option(ENABLE_PERL "Enable Perl scripting language" ON) option(ENABLE_PYTHON2 "Use Python 2 instead of Python 3" OFF)
option(ENABLE_PYTHON "Enable Python scripting language" ON) option(ENABLE_RUBY "Enable Ruby scripting language" ON)
option(ENABLE_RUBY "Enable Ruby scripting language" ON) option(ENABLE_LUA "Enable Lua scripting language" ON)
option(ENABLE_LUA "Enable Lua scripting language" ON) option(ENABLE_TCL "Enable Tcl scripting language" ON)
option(ENABLE_TCL "Enable Tcl scripting language" ON) option(ENABLE_GUILE "Enable Scheme (guile) scripting language" ON)
option(ENABLE_GUILE "Enable Scheme (guile) scripting language" ON) option(ENABLE_JAVASCRIPT "Enable JavaScript scripting language" OFF)
option(ENABLE_JAVASCRIPT "Enable JavaScript scripting language" OFF) option(ENABLE_PHP "Enable PHP scripting language" ON)
option(ENABLE_PHP "Enable PHP scripting language" ON) option(ENABLE_SPELL "Enable Spell checker plugin" ON)
option(ENABLE_SPELL "Enable Spell checker plugin" ON) option(ENABLE_ENCHANT "Enable Enchant lib for Spell checker plugin" OFF)
option(ENABLE_ENCHANT "Use Enchant lib in Spell checker plugin" OFF) option(ENABLE_TRIGGER "Enable Trigger plugin" ON)
option(ENABLE_TRIGGER "Enable Trigger plugin" ON) option(ENABLE_TYPING "Enable Typing plugin" ON)
option(ENABLE_TYPING "Enable Typing plugin" ON) option(ENABLE_XFER "Enable Xfer plugin" ON)
option(ENABLE_XFER "Enable Xfer plugin" ON) option(ENABLE_MAN "Enable build of man page" OFF)
option(ENABLE_MAN "Enable build of man page" OFF) option(ENABLE_DOC "Enable build of documentation" OFF)
option(ENABLE_DOC "Enable build of documentation" OFF) option(ENABLE_TESTS "Enable tests" OFF)
option(ENABLE_DOC_INCOMPLETE "Enable incomplete doc" OFF) option(ENABLE_CODE_COVERAGE "Enable code coverage" OFF)
option(ENABLE_TESTS "Enable tests" OFF)
option(ENABLE_CODE_COVERAGE "Enable code coverage" OFF)
# code coverage # code coverage
add_library(coverage_config INTERFACE) add_library(coverage_config INTERFACE)
@@ -138,29 +129,6 @@ if(ENABLE_CODE_COVERAGE)
target_link_libraries(coverage_config INTERFACE --coverage) target_link_libraries(coverage_config INTERFACE --coverage)
endif() 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 # headless mode is required for tests
if(ENABLE_TESTS AND NOT ENABLE_HEADLESS) if(ENABLE_TESTS AND NOT ENABLE_HEADLESS)
message(FATAL_ERROR "Headless mode is required for tests.") message(FATAL_ERROR "Headless mode is required for tests.")
@@ -192,9 +160,6 @@ include(CheckSymbolExists)
check_include_files("langinfo.h" HAVE_LANGINFO_CODESET) check_include_files("langinfo.h" HAVE_LANGINFO_CODESET)
check_include_files("sys/resource.h" HAVE_SYS_RESOURCE_H) check_include_files("sys/resource.h" HAVE_SYS_RESOURCE_H)
check_include_files("malloc.h" HAVE_MALLOC_H)
check_symbol_exists("malloc_trim" "malloc.h" HAVE_MALLOC_TRIM)
check_function_exists(mallinfo HAVE_MALLINFO) check_function_exists(mallinfo HAVE_MALLINFO)
check_function_exists(mallinfo2 HAVE_MALLINFO2) check_function_exists(mallinfo2 HAVE_MALLINFO2)
@@ -205,11 +170,24 @@ if(ENABLE_LARGEFILE)
add_definitions(-D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -D_LARGE_FILES) add_definitions(-D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -D_LARGE_FILES)
endif() 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 # Check for libgcrypt
pkg_check_modules(LIBGCRYPT REQUIRED libgcrypt) find_package(GCRYPT REQUIRED)
add_definitions(-DHAVE_GCRYPT) add_definitions(-DHAVE_GCRYPT)
include_directories(${LIBGCRYPT_INCLUDE_DIRS}) list(APPEND EXTRA_LIBS ${GCRYPT_LDFLAGS})
list(APPEND EXTRA_LIBS ${LIBGCRYPT_LDFLAGS})
# Check for GnuTLS # Check for GnuTLS
find_package(GnuTLS REQUIRED) find_package(GnuTLS REQUIRED)
@@ -222,16 +200,7 @@ list(APPEND EXTRA_LIBS gnutls)
find_package(ZLIB REQUIRED) find_package(ZLIB REQUIRED)
# Check for zstd # Check for zstd
if(ENABLE_ZSTD) pkg_check_modules(LIBZSTD REQUIRED libzstd)
pkg_check_modules(LIBZSTD REQUIRED libzstd)
add_definitions(-DHAVE_ZSTD)
endif()
# Check for cJSON
if(ENABLE_CJSON)
pkg_check_modules(LIBCJSON REQUIRED libcjson)
add_definitions(-DHAVE_CJSON)
endif()
# Check for iconv # Check for iconv
find_package(Iconv) find_package(Iconv)
@@ -259,13 +228,7 @@ endif()
add_subdirectory(icons) add_subdirectory(icons)
if(ENABLE_NLS) if(ENABLE_NLS)
find_package(Gettext REQUIRED)
add_definitions(-DENABLE_NLS)
find_package(Intl REQUIRED)
list(APPEND EXTRA_LIBS "${Intl_LIBRARIES}")
add_subdirectory(po) add_subdirectory(po)
else()
add_custom_target(translations COMMAND true)
endif() endif()
add_subdirectory(src) add_subdirectory(src)
@@ -279,16 +242,13 @@ if(ENABLE_TESTS)
else() else()
message(SEND_ERROR "CppUTest not found") message(SEND_ERROR "CppUTest not found")
endif() endif()
else()
enable_testing()
add_test(NAME notests COMMAND true)
endif() endif()
configure_file(config.h.cmake config.h @ONLY) configure_file(config.h.cmake config.h @ONLY)
# set the git version in "config-git.h" # set the git version in "config-git.h"
add_custom_target(version_git ALL add_custom_target(version_git ALL
COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/tools/set_git_version.sh" "${CMAKE_CURRENT_SOURCE_DIR}" "${VERSION}" "config-git.h" COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/tools/git-version.sh" "${CMAKE_CURRENT_SOURCE_DIR}" "${VERSION}" "config-git.h"
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
) )
@@ -304,7 +264,7 @@ add_custom_target(uninstall
add_custom_target(dist add_custom_target(dist
"${CMAKE_CURRENT_SOURCE_DIR}/tools/makedist.sh" "${VERSION}" "HEAD" "${CMAKE_CURRENT_BINARY_DIR}" "${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 # pkgconfig file
@@ -313,23 +273,52 @@ set(prefix "${CMAKE_INSTALL_PREFIX}")
set(exec_prefix "\${prefix}") set(exec_prefix "\${prefix}")
string(REPLACE "${CMAKE_INSTALL_PREFIX}" "\${prefix}" libdir "${LIBDIR}") string(REPLACE "${CMAKE_INSTALL_PREFIX}" "\${prefix}" libdir "${LIBDIR}")
set(includedir "\${prefix}/include") set(includedir "\${prefix}/include")
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/weechat.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/weechat.pc" @ONLY) 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") install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat.pc DESTINATION ${LIBDIR}/pkgconfig)
# cygport file (used to build Cygwin packages) # 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) # install some files (only on Cygwin)
if(CYGWIN) if(CYGWIN)
install(FILES install(FILES
"${CMAKE_CURRENT_SOURCE_DIR}/AUTHORS.adoc" ${CMAKE_CURRENT_SOURCE_DIR}/AUTHORS.adoc
"${CMAKE_CURRENT_SOURCE_DIR}/ChangeLog.adoc" ${CMAKE_CURRENT_SOURCE_DIR}/ChangeLog.adoc
"${CMAKE_CURRENT_SOURCE_DIR}/Contributing.adoc" ${CMAKE_CURRENT_SOURCE_DIR}/Contributing.adoc
"${CMAKE_CURRENT_SOURCE_DIR}/README.adoc" ${CMAKE_CURRENT_SOURCE_DIR}/README.adoc
"${CMAKE_CURRENT_SOURCE_DIR}/ReleaseNotes.adoc" ${CMAKE_CURRENT_SOURCE_DIR}/ReleaseNotes.adoc
DESTINATION "${DATAROOTDIR}/doc/${PROJECT_NAME}" DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME}
) )
endif() endif()
# desktop file # 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)
+21 -829
View File
File diff suppressed because it is too large Load Diff
+4 -24
View File
@@ -29,7 +29,7 @@ please include:
_WeeChat 1.7-dev (git: v1.6-6-g997f47f)_. + _WeeChat 1.7-dev (git: v1.6-6-g997f47f)_. +
If WeeChat does not start at all, please include the version displayed by If WeeChat does not start at all, please include the version displayed by
`weechat --help` (or the version installed with your package manager). `weechat --help` (or the version installed with your package manager).
* Your *operating system*: its name and version (examples: Linux Debian Bookworm, * Your *operating system*: its name and version (examples: Linux Debian Bullseye,
FreeBSD 13.0, Windows/Cygwin 64-bit, Windows/Ubuntu 64-bit...). FreeBSD 13.0, Windows/Cygwin 64-bit, Windows/Ubuntu 64-bit...).
* The *steps to reproduce*: if possible, please include a reproducible example: * The *steps to reproduce*: if possible, please include a reproducible example:
explain the steps which led you to the problem. + explain the steps which led you to the problem. +
@@ -38,7 +38,7 @@ please include:
problem here. problem here.
* The *gdb's backtrace* (only for a crash): if you can reproduce the crash * The *gdb's backtrace* (only for a crash): if you can reproduce the crash
(or if you have a core file), please include the backtrace from gdb (look at (or if you have a core file), please include the backtrace from gdb (look at
https://weechat.org/doc/weechat/user/#report_crashes[User's guide] for more info). https://weechat.org/doc/user/#report_crashes[User's guide] for more info).
* The *actual result*. * The *actual result*.
* The *expected result*: the correct result you are expecting. * The *expected result*: the correct result you are expecting.
@@ -68,7 +68,7 @@ time, for https://github.com/weechat/weechat[WeeChat] and the website
https://github.com/weechat/weechat.org[weechat.org]. https://github.com/weechat/weechat.org[weechat.org].
To start a translation in a new language (not yet supported), please look at To start a translation in a new language (not yet supported), please look at
https://weechat.org/doc/weechat/dev/#translations[translations] https://weechat.org/doc/dev/#translations[translations]
in Developer's guide. in Developer's guide.
== Feature requests == Feature requests
@@ -84,26 +84,6 @@ For major new features, it's better to discuss about it in IRC
(server: _irc.libera.chat_, channel _#weechat_). (server: _irc.libera.chat_, channel _#weechat_).
Before submitting any pull request, be sure you have read the Before submitting any pull request, be sure you have read the
https://weechat.org/doc/weechat/dev/#coding_rules[coding rules] https://weechat.org/doc/dev/#coding_rules[coding rules]
in Developer's guide, which contains info about styles used, naming convention in Developer's guide, which contains info about styles used, naming convention
and other useful info. 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-2022 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
+7 -11
View File
@@ -5,9 +5,9 @@
pass:[<p align="center">] image:https://weechat.org/media/images/weechat_logo_large.png[align="center"] pass:[</p>] pass:[<p align="center">] image:https://weechat.org/media/images/weechat_logo_large.png[align="center"] pass:[</p>]
image:https://img.shields.io/badge/mastodon-follow-blue.svg["Mastodon", link="https://hostux.social/@weechat"]
image:https://img.shields.io/badge/diaspora*-follow-blue.svg["Diaspora*", link="https://diasp.eu/u/weechat"] image:https://img.shields.io/badge/diaspora*-follow-blue.svg["Diaspora*", link="https://diasp.eu/u/weechat"]
image:https://img.shields.io/badge/x-follow-blue.svg["Twitter", link="https://x.com/WeeChatClient"] image:https://img.shields.io/badge/mastodon-follow-blue.svg["Mastodon", link="https://hostux.social/@weechat"]
image:https://img.shields.io/badge/twitter-follow-blue.svg["Twitter", link="https://twitter.com/WeeChatClient"]
image:https://img.shields.io/badge/devel%20blog-follow-blue.svg["Devel blog", link="https://blog.weechat.org/"] image:https://img.shields.io/badge/devel%20blog-follow-blue.svg["Devel blog", link="https://blog.weechat.org/"]
image:https://img.shields.io/badge/slant-recommend-28acad.svg["Slant", link="https://www.slant.co/topics/1323/~best-irc-clients-for-linux"] image:https://img.shields.io/badge/slant-recommend-28acad.svg["Slant", link="https://www.slant.co/topics/1323/~best-irc-clients-for-linux"]
image:https://img.shields.io/badge/help-donate%20%E2%9D%A4-ff69b4.svg["Donate", link="https://weechat.org/donate/"] image:https://img.shields.io/badge/help-donate%20%E2%9D%A4-ff69b4.svg["Donate", link="https://weechat.org/donate/"]
@@ -23,13 +23,13 @@ Homepage: https://weechat.org/
== Features == 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/doc/user/#plugins[plugins]. All plugins (including https://weechat.org/doc/user/#irc[IRC]) are independent and can be unloaded.
* *Multi-platform*: WeeChat runs on GNU/Linux, *BSD, GNU/Hurd, Haiku, macOS and Windows (Bash/Ubuntu and Cygwin). * *Multi-platform*: WeeChat runs on GNU/Linux, *BSD, GNU/Hurd, Haiku, macOS and Windows (Bash/Ubuntu and Cygwin).
* *Multi-protocols*: WeeChat is designed to support multiple protocols by plugins, like IRC. * *Multi-protocols*: WeeChat is designed to support multiple protocols by plugins, like IRC.
* *Standards-compliant*: the IRC plugin is compliant with RFCs https://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. * *Small, fast, and very light*: the core is and should stay as light and fast as possible.
* *Customizable and extensible*: there are a lot of options to customize WeeChat, and it is extensible with C plugins and https://weechat.org/scripts/[scripts] (https://weechat.org/scripts/language/perl/[Perl], https://weechat.org/scripts/language/python/[Python], https://weechat.org/scripts/language/ruby[Ruby], https://weechat.org/scripts/language/lua/[Lua], https://weechat.org/scripts/language/tcl/[Tcl], https://weechat.org/scripts/language/guile/[Scheme], https://weechat.org/scripts/language/javascript/[JavaScript] and https://weechat.org/scripts/language/php/[PHP]). * *Customizable and extensible*: there are a lot of options to customize WeeChat, and it is extensible with C plugins and https://weechat.org/scripts/[scripts] (https://weechat.org/scripts/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/doc/dev/#translations[translated] into several languages.
* *Developed from scratch*: WeeChat was built from scratch and is not based on any other client. * *Developed from scratch*: WeeChat was built from scratch and is not based on any other client.
* *Free software*: WeeChat is released under https://www.gnu.org/licenses/gpl-3.0.html[GPLv3]. * *Free software*: WeeChat is released under https://www.gnu.org/licenses/gpl-3.0.html[GPLv3].
@@ -41,15 +41,11 @@ On WeeChat's website you can find https://weechat.org/about/screenshots/[more sc
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]. For detailed instructions, please check the https://weechat.org/doc/user/#install[WeeChat user's guide].
== Semantic versioning
WeeChat is following a "practical" semantic versioning, see file link:Contributing.adoc#semantic-versioning[Contributing.adoc].
== Copyright == Copyright
Copyright (C) 2003-2024 Sébastien Helleu <flashcode@flashtux.org> Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
This file is part of WeeChat, the extensible chat client. This file is part of WeeChat, the extensible chat client.
+140 -975
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-2022 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-2024 Sébastien Helleu <flashcode@flashtux.org> # Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
# #
# This file is part of WeeChat, the extensible chat client. # This file is part of WeeChat, the extensible chat client.
# #
+1 -1
View File
@@ -1,5 +1,5 @@
# #
# Copyright (C) 2003-2024 Sébastien Helleu <flashcode@flashtux.org> # Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
# #
# This file is part of WeeChat, the extensible chat client. # This file is part of WeeChat, the extensible chat client.
# #
+1 -1
View File
@@ -1,5 +1,5 @@
# #
# Copyright (C) 2014-2024 Sébastien Helleu <flashcode@flashtux.org> # Copyright (C) 2014-2022 Sébastien Helleu <flashcode@flashtux.org>
# #
# This file is part of WeeChat, the extensible chat client. # This file is part of WeeChat, the extensible chat client.
# #
+2 -2
View File
@@ -27,11 +27,11 @@ else()
find_path(ENCHANT_INCLUDE_DIR find_path(ENCHANT_INCLUDE_DIR
NAMES enchant++.h NAMES enchant++.h
HINTS ${PC_ENCHANT_INCLUDEDIR} ${PC_ENCHANT_INCLUDE_DIRS} HINTS ${PC_ENCHANT_INCLUDEDIR} ${PC_ENCHANT_INCLUDE_DIRS}
PATH_SUFFIXES enchant-2 enchant PATH_SUFFIXES enchant
) )
find_library(ENCHANT_LIBRARIES find_library(ENCHANT_LIBRARIES
NAMES enchant-2 enchant NAMES enchant
HINTS ${PC_ENCHANT_LIBDIR} HINTS ${PC_ENCHANT_LIBDIR}
${PC_ENCHANT_LIBRARY_DIRS} ${PC_ENCHANT_LIBRARY_DIRS}
) )
+53
View File
@@ -0,0 +1,53 @@
#
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
#
# This file is part of WeeChat, the extensible chat client.
#
# WeeChat is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# WeeChat is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with WeeChat. If not, see <https://www.gnu.org/licenses/>.
#
# - Find Gcrypt
# This module finds if libgcrypt is installed and determines where
# the include files and libraries are.
#
# This code sets the following variables:
#
# GCRYPT_CFLAGS = cflags to use to compile
# GCRYPT_LDFLAGS = ldflags to use to compile
#
find_program(LIBGCRYPT_CONFIG_EXECUTABLE NAMES libgcrypt-config)
set(GCRYPT_LDFLAGS)
set(GCRYPT_CFLAGS)
if(LIBGCRYPT_CONFIG_EXECUTABLE)
execute_process(COMMAND ${LIBGCRYPT_CONFIG_EXECUTABLE} --libs RESULT_VARIABLE _return_VALUE OUTPUT_VARIABLE GCRYPT_LDFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET)
execute_process(COMMAND ${LIBGCRYPT_CONFIG_EXECUTABLE} --cflags RESULT_VARIABLE _return_VALUE OUTPUT_VARIABLE GCRYPT_CFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET)
if(NOT DEFINED ${GCRYPT_CFLAGS})
set(GCRYPT_CFLAGS " ")
endif()
endif()
# handle the QUIETLY and REQUIRED arguments and set GCRYPT_FOUND to TRUE if
# all listed variables are TRUE
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(GCRYPT REQUIRED_VARS GCRYPT_LDFLAGS GCRYPT_CFLAGS)
if(GCRYPT_FOUND)
mark_as_advanced(GCRYPT_CFLAGS GCRYPT_LDFLAGS)
endif()
+21 -23
View File
@@ -1,5 +1,5 @@
# #
# Copyright (C) 2003-2024 Sébastien Helleu <flashcode@flashtux.org> # Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2007 Julien Louis <ptitlouis@sysif.net> # Copyright (C) 2007 Julien Louis <ptitlouis@sysif.net>
# Copyright (C) 2009 Emmanuel Bouthenot <kolter@openics.org> # 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) check_include_files(libintl.h HAVE_LIBINTL_H)
if(NOT HAVE_LIBINTL_H) if(HAVE_LIBINTL_H)
message(SEND_ERROR "Header libintl.h not found, required if ENABLE_NLS is enabled") check_function_exists(dgettext LIBC_HAS_DGETTEXT)
endif() if(LIBC_HAS_DGETTEXT)
set(GETTEXT_FOUND TRUE)
check_function_exists(dgettext LIBC_HAS_DGETTEXT) else()
if(LIBC_HAS_DGETTEXT) find_library(LIBINTL_LIBRARY NAMES intl
set(GETTEXT_FOUND TRUE) PATHS
else() /usr/local/lib
find_library(LIBINTL_LIBRARY NAMES intl /usr/lib
PATHS )
/usr/local/lib if(LIBINTL_LIBRARY)
/usr/lib if(${CMAKE_SYSTEM_NAME} STREQUAL "OpenBSD")
) set(CMAKE_REQUIRED_LIBRARIES "iconv")
if(LIBINTL_LIBRARY) check_library_exists(${LIBINTL_LIBRARY} "libintl_dgettext" "" LIBINTL_HAS_DGETTEXT)
if(${CMAKE_SYSTEM_NAME} STREQUAL "OpenBSD") else()
set(CMAKE_REQUIRED_LIBRARIES "iconv") check_library_exists(${LIBINTL_LIBRARY} "dgettext" "" LIBINTL_HAS_DGETTEXT)
check_library_exists(${LIBINTL_LIBRARY} "libintl_dgettext" "" LIBINTL_HAS_DGETTEXT) endif()
else() if(LIBINTL_HAS_DGETTEXT)
check_library_exists(${LIBINTL_LIBRARY} "dgettext" "" LIBINTL_HAS_DGETTEXT) set(GETTEXT_FOUND TRUE)
endif() endif()
if(LIBINTL_HAS_DGETTEXT)
set(GETTEXT_FOUND TRUE)
endif() endif()
endif() endif()
endif() endif()
+1 -1
View File
@@ -1,5 +1,5 @@
# #
# Copyright (C) 2003-2024 Sébastien Helleu <flashcode@flashtux.org> # Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2009 Emmanuel Bouthenot <kolter@openics.org> # Copyright (C) 2009 Emmanuel Bouthenot <kolter@openics.org>
# #
# This file is part of WeeChat, the extensible chat client. # This file is part of WeeChat, the extensible chat client.
+1 -1
View File
@@ -1,5 +1,5 @@
# #
# Copyright (C) 2011-2024 Sébastien Helleu <flashcode@flashtux.org> # Copyright (C) 2011-2022 Sébastien Helleu <flashcode@flashtux.org>
# #
# This file is part of WeeChat, the extensible chat client. # This file is part of WeeChat, the extensible chat client.
# #
+1 -1
View File
@@ -1,5 +1,5 @@
# #
# Copyright (C) 2003-2024 Sébastien Helleu <flashcode@flashtux.org> # Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
# #
# This file is part of WeeChat, the extensible chat client. # This file is part of WeeChat, the extensible chat client.
# #
+1 -1
View File
@@ -1,5 +1,5 @@
# #
# Copyright (C) 2003-2024 Sébastien Helleu <flashcode@flashtux.org> # Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
# #
# This file is part of WeeChat, the extensible chat client. # This file is part of WeeChat, the extensible chat client.
# #
+1 -1
View File
@@ -1,5 +1,5 @@
# #
# Copyright (C) 2003-2024 Sébastien Helleu <flashcode@flashtux.org> # Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
# #
# This file is part of WeeChat, the extensible chat client. # 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 Adam Saponara <as@php.net>
# Copyright (C) 2017-2024 Sébastien Helleu <flashcode@flashtux.org> # Copyright (C) 2017-2022 Sébastien Helleu <flashcode@flashtux.org>
# #
# This file is part of WeeChat, the extensible chat client. # This file is part of WeeChat, the extensible chat client.
# #
@@ -29,7 +29,6 @@ endif()
if(NOT PHP_FOUND) if(NOT PHP_FOUND)
find_program(PHP_CONFIG_EXECUTABLE NAMES find_program(PHP_CONFIG_EXECUTABLE NAMES
php-config8.2 php-config82
php-config8.1 php-config81 php-config8.1 php-config81
php-config8.0 php-config80 php-config8.0 php-config80
php-config8 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) execute_process(COMMAND ${PHP_CONFIG_EXECUTABLE} --version OUTPUT_VARIABLE PHP_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
if(${PHP_VERSION} MATCHES "^[78]") if(${PHP_VERSION} MATCHES "^[78]")
find_library(PHP_LIB 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 HINTS ${PHP_LIB_PREFIX} ${PHP_LIB_PREFIX}/lib ${PHP_LIB_PREFIX}/lib64
) )
if(PHP_LIB) if(PHP_LIB)
+1 -1
View File
@@ -1,5 +1,5 @@
# #
# Copyright (C) 2003-2024 Sébastien Helleu <flashcode@flashtux.org> # Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
# #
# This file is part of WeeChat, the extensible chat client. # This file is part of WeeChat, the extensible chat client.
# #
+8 -4
View File
@@ -1,5 +1,5 @@
# #
# Copyright (C) 2003-2024 Sébastien Helleu <flashcode@flashtux.org> # Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2009 Julien Louis <ptitlouis@sysif.net> # Copyright (C) 2009 Julien Louis <ptitlouis@sysif.net>
# #
# This file is part of WeeChat, the extensible chat client. # This file is part of WeeChat, the extensible chat client.
@@ -28,7 +28,11 @@
# PYTHON_LIBRARIES = path to where libpython.so* can be found # PYTHON_LIBRARIES = path to where libpython.so* can be found
# PYTHON_LDFLAGS = python compiler options for linking # PYTHON_LDFLAGS = python compiler options for linking
pkg_check_modules(PYTHON python3-embed IMPORTED_TARGET GLOBAL) if(ENABLE_PYTHON2)
if(NOT PYTHON_FOUND) pkg_check_modules(PYTHON python2 IMPORTED_TARGET GLOBAL)
pkg_check_modules(PYTHON python3 IMPORTED_TARGET GLOBAL) else()
pkg_check_modules(PYTHON python3-embed IMPORTED_TARGET GLOBAL)
if(NOT PYTHON_FOUND)
pkg_check_modules(PYTHON python3 IMPORTED_TARGET GLOBAL)
endif()
endif() endif()
+2 -2
View File
@@ -1,5 +1,5 @@
# #
# Copyright (C) 2003-2024 Sébastien Helleu <flashcode@flashtux.org> # Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
# #
# This file is part of WeeChat, the extensible chat client. # 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 specific search path for macOS
set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:/usr/local/opt/ruby/lib/pkgconfig") set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:/usr/local/opt/ruby/lib/pkgconfig")
endif() endif()
pkg_search_module(RUBY ruby-3.3 ruby-3.2 ruby-3.1 ruby-3.0 ruby-2.7 ruby-2.6 ruby-2.5 ruby-2.4 ruby-2.3 ruby-2.2 ruby-2.1 ruby-2.0 ruby-1.9 ruby) pkg_search_module(RUBY ruby-3.1 ruby-3.0 ruby-2.7 ruby-2.6 ruby-2.5 ruby-2.4 ruby-2.3 ruby-2.2 ruby-2.1 ruby-2.0 ruby-1.9 ruby)
if(RUBY_FOUND AND ${CMAKE_SYSTEM_NAME} MATCHES "Darwin") if(RUBY_FOUND AND ${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
# FIXME: weird hack: hardcoding the Ruby lib location on macOS # FIXME: weird hack: hardcoding the Ruby lib location on macOS
set(RUBY_LDFLAGS "${RUBY_LDFLAGS} -L/usr/local/opt/ruby/lib") set(RUBY_LDFLAGS "${RUBY_LDFLAGS} -L/usr/local/opt/ruby/lib")
+1 -1
View File
@@ -1,5 +1,5 @@
# #
# Copyright (C) 2015-2024 Sébastien Helleu <flashcode@flashtux.org> # Copyright (C) 2015-2022 Sébastien Helleu <flashcode@flashtux.org>
# #
# This file is part of WeeChat, the extensible chat client. # This file is part of WeeChat, the extensible chat client.
# #
+1 -1
View File
@@ -1,5 +1,5 @@
# #
# Copyright (C) 2003-2024 Sébastien Helleu <flashcode@flashtux.org> # Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
# #
# This file is part of WeeChat, the extensible chat client. # This file is part of WeeChat, the extensible chat client.
# #
+1 -2
View File
@@ -1,3 +1,4 @@
#cmakedefine HAVE_LIBINTL_H
#cmakedefine HAVE_SYS_RESOURCE_H #cmakedefine HAVE_SYS_RESOURCE_H
#cmakedefine HAVE_FLOCK #cmakedefine HAVE_FLOCK
#cmakedefine HAVE_LANGINFO_CODESET #cmakedefine HAVE_LANGINFO_CODESET
@@ -5,8 +6,6 @@
#cmakedefine ICONV_2ARG_IS_CONST 1 #cmakedefine ICONV_2ARG_IS_CONST 1
#cmakedefine HAVE_MALLINFO #cmakedefine HAVE_MALLINFO
#cmakedefine HAVE_MALLINFO2 #cmakedefine HAVE_MALLINFO2
#cmakedefine HAVE_MALLOC_H
#cmakedefine HAVE_MALLOC_TRIM
#cmakedefine HAVE_EAT_NEWLINE_GLITCH #cmakedefine HAVE_EAT_NEWLINE_GLITCH
#cmakedefine HAVE_ASPELL_VERSION_STRING #cmakedefine HAVE_ASPELL_VERSION_STRING
#cmakedefine HAVE_ENCHANT_GET_VERSION #cmakedefine HAVE_ENCHANT_GET_VERSION
+1606
View File
File diff suppressed because it is too large Load Diff
+4 -5
View File
@@ -7,23 +7,22 @@ Build-Depends:
ruby-pygments.rb, ruby-pygments.rb,
debhelper (>= 12), debhelper (>= 12),
cmake, pkg-config, cmake, pkg-config,
libncurses-dev, libncursesw5-dev,
gem2deb, gem2deb,
libperl-dev, libperl-dev,
python3-dev, python3-dev,
libaspell-dev, libaspell-dev,
liblua5.3-dev, liblua5.3-dev,
tcl8.6-dev, tcl8.6-dev,
guile-3.0-dev, guile-2.2-dev,
php-dev, libphp-embed, libargon2-dev, libsodium-dev, php-dev, libphp-embed, libargon2-dev, libsodium-dev,
libxml2-dev, libxml2-dev,
libcurl4-gnutls-dev, libcurl4-gnutls-dev,
libgcrypt20-dev, libgcrypt20-dev,
libgnutls28-dev, libgnutls28-dev,
libzstd-dev, libzstd-dev,
zlib1g-dev, zlib1g-dev
libcjson-dev Standards-Version: 4.6.0.1
Standards-Version: 4.6.2
Homepage: https://weechat.org/ Homepage: https://weechat.org/
Vcs-Git: https://salsa.debian.org/kolter/weechat.git Vcs-Git: https://salsa.debian.org/kolter/weechat.git
Vcs-Browser: https://salsa.debian.org/kolter/weechat Vcs-Browser: https://salsa.debian.org/kolter/weechat
+13 -3
View File
@@ -4,8 +4,10 @@ export DEB_BUILD_MAINT_OPTIONS=hardening=+all
BUILDDIR = builddir BUILDDIR = builddir
override_dh_auto_configure: $(BUILDDIR)/Makefile:
dh_auto_configure --buildsystem=cmake -- \ mkdir -p $(BUILDDIR)
cd $(BUILDDIR) && \
cmake .. \
-DCMAKE_INSTALL_PREFIX:FILEPATH=/usr \ -DCMAKE_INSTALL_PREFIX:FILEPATH=/usr \
-DLIBDIR=/usr/lib/${DEB_HOST_MULTIARCH} \ -DLIBDIR=/usr/lib/${DEB_HOST_MULTIARCH} \
-DENABLE_DOC:BOOL=ON \ -DENABLE_DOC:BOOL=ON \
@@ -16,8 +18,16 @@ override_dh_auto_configure:
-DCMAKE_SKIP_RPATH:BOOL=ON \ -DCMAKE_SKIP_RPATH:BOOL=ON \
-DCMAKE_VERBOSE_MAKEFILE: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: override_dh_installchangelogs:
dh_installchangelogs ChangeLog.adoc dh_installchangelogs ChangeLog.adoc
%: %:
dh $@ --builddirectory=$(BUILDDIR) dh $@ --builddirectory=$(BUILDDIR) --without autoreconf
-3
View File
@@ -1,3 +0,0 @@
tar-ignore = ".git"
tar-ignore = "build"
tar-ignore = "release"
+41
View File
@@ -0,0 +1,41 @@
weechat (2.1-1) unstable; urgency=medium
This release introduces a new headless client and a new PHP plugin for
scripting (respectively weechat-headless and weechat-php binary
packages).
To avoid at least unnecessary dependencies, each plugin has its own
separate binary package:
weechat-{perl,python,ruby,lua,guile,javascript,php}
Depending on your needs about scripting with weechat you should consider
to install the missing packages.
-- Emmanuel Bouthenot <kolter@debian.org> Wed, 21 Mar 2018 07:53:40 +0100
weechat (1.1.1-1) unstable; urgency=medium
Since version 1.1, there is a new format for regexp replacement in
triggers. This format is incompatible with version 1.0. The existing
triggers will not be automatically updated.
See https://weechat.org/files/releasenotes/ReleaseNotes-1.1.html
-- Emmanuel Bouthenot <kolter@debian.org> Sun, 25 Jan 2015 20:41:50 +0100
weechat (0.3.1-1) unstable; urgency=low
This release introduces important changes with the usage of SSL. There
are stronger checks while connecting with SSL. By default, if a connection
is not fully trusted it will fail.
You can find more information on how to handle this new behaviour here:
https://blog.weechat.org/post/2009/12/01/SSL-certificates
-- Emmanuel Bouthenot <kolter@debian.org> Mon, 25 Jan 2010 12:35:11 +0100
weechat (0.3.0-1) unstable; urgency=low
This release introduces major changes. Large part of code was
rewritten without keeping compatibility with older versions.
Please refer to the file /usr/share/doc/weechat-core/UPGRADE_0.3
for more information on upgrade from a version 0.2.x to 0.3.x.
-- Emmanuel Bouthenot <kolter@openics.org> Tue, 15 Sep 2009 20:59:42 +0000
-60
View File
@@ -1,63 +1,3 @@
weechat (4.3.1-1) unstable; urgency=medium
* New upstream release (Closes: #1067608)
- fix FTBFS against libgcrypt 1.11 (Closes: #1071960)
* Add build dependency on libcjson-dev
* Replace pkg-config build dependency by pkgconf
* Minor updates in debian/copyright
-- Emmanuel Bouthenot <kolter@debian.org> Sat, 01 Jun 2024 14:21:02 +0000
weechat (4.1.1-1) unstable; urgency=medium
* New upstream release (Closes: #1055278)
-- Emmanuel Bouthenot <kolter@debian.org> Fri, 03 Nov 2023 20:23:37 +0000
weechat (4.0.5-1) unstable; urgency=medium
* New upstream release
-- Emmanuel Bouthenot <kolter@debian.org> Sun, 24 Sep 2023 07:49:41 +0000
weechat (4.0.2-1) unstable; urgency=medium
* New upstream release (Closes: #1040248)
-- Emmanuel Bouthenot <kolter@debian.org> Sat, 22 Jul 2023 05:48:35 +0000
weechat (4.0.1-1) unstable; urgency=medium
* New upstream release
* Remove NEWS file, no longer required
* Update build dependency from libncursesw5-dev to libncurses-dev
* Bump Standards-Version to 4.6.2
* Remove all patches (no longer required)
-- Emmanuel Bouthenot <kolter@debian.org> Tue, 04 Jul 2023 19:02:41 +0000
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 weechat (3.6-1) unstable; urgency=medium
* New upstream release * New upstream release
+4 -5
View File
@@ -7,23 +7,22 @@ Build-Depends:
ruby-pygments.rb, ruby-pygments.rb,
debhelper (>= 12), debhelper (>= 12),
cmake, pkg-config, cmake, pkg-config,
libncurses-dev, libncursesw5-dev,
gem2deb, gem2deb,
libperl-dev, libperl-dev,
python3-dev, python3-dev,
libaspell-dev, libaspell-dev,
liblua5.3-dev, liblua5.3-dev,
tcl8.6-dev, tcl8.6-dev,
guile-3.0-dev, guile-2.2-dev,
php-dev, libphp-embed, libargon2-dev, libsodium-dev, php-dev, libphp-embed, libargon2-dev, libsodium-dev,
libxml2-dev, libxml2-dev,
libcurl4-gnutls-dev, libcurl4-gnutls-dev,
libgcrypt20-dev, libgcrypt20-dev,
libgnutls28-dev, libgnutls28-dev,
libzstd-dev, libzstd-dev,
zlib1g-dev, zlib1g-dev
libcjson-dev Standards-Version: 4.6.1.0
Standards-Version: 4.6.2
Homepage: https://weechat.org/ Homepage: https://weechat.org/
Vcs-Git: https://salsa.debian.org/kolter/weechat.git Vcs-Git: https://salsa.debian.org/kolter/weechat.git
Vcs-Browser: https://salsa.debian.org/kolter/weechat Vcs-Browser: https://salsa.debian.org/kolter/weechat
+13 -13
View File
@@ -4,26 +4,26 @@ Upstream-Contact: Sébastien Helleu <flashcode@flashtux.org>
Source: https://weechat.org/ Source: https://weechat.org/
Files: * Files: *
Copyright: 2003-2024, Sébastien Helleu <flashcode@flashtux.org> Copyright: 2003-2022, Sébastien Helleu <flashcode@flashtux.org>
License: GPL-3+ License: GPL-3+
Files: src/core/core-command.c Files: src/core/wee-command.c
src/core/core-command.h src/core/wee-command.h
Copyright: 2005-2006, Emmanuel Bouthenot <kolter@openics.org> Copyright: 2005-2006, Emmanuel Bouthenot <kolter@openics.org>
License: GPL-3+ License: GPL-3+
Files: src/core/core-config-file.c Files: src/core/wee-config-file.c
src/core/core-config-file.h src/core/wee-config-file.h
src/core/core-config.c src/core/wee-config.c
src/core/core-config.h src/core/wee-config.h
Copyright: 2005-2006, Emmanuel Bouthenot <kolter@openics.org> Copyright: 2005-2006, Emmanuel Bouthenot <kolter@openics.org>
License: GPL-3+ License: GPL-3+
Files: src/core/hook/hook-connect.c Files: src/core/hook/wee-hook-connect.c
Copyright: 2012, Simon Arlott Copyright: 2012, Simon Arlott
License: GPL-3+ License: GPL-3+
Files: src/core/hook/hook-connect.h Files: src/core/hook/wee-hook-connect.h
Copyright: 2012, Simon Arlott Copyright: 2012, Simon Arlott
License: GPL-3+ License: GPL-3+
@@ -31,9 +31,9 @@ Files: src/gui/gui-history.c
Copyright: 2005, Emmanuel Bouthenot <kolter@openics.org> Copyright: 2005, Emmanuel Bouthenot <kolter@openics.org>
License: GPL-3+ License: GPL-3+
Files: src/core/core-completion.c Files: src/core/wee-completion.c
src/core/core-log.c src/core/wee-log.c
src/core/core-utf8.c src/core/wee-utf8.c
src/core/weechat.h src/core/weechat.h
src/plugins/spell/spell-config.c src/plugins/spell/spell-config.c
src/plugins/spell/spell-config.h src/plugins/spell/spell-config.h
@@ -45,7 +45,7 @@ Files: src/core/core-completion.c
Copyright: 2006, Emmanuel Bouthenot <kolter@openics.org> Copyright: 2006, Emmanuel Bouthenot <kolter@openics.org>
License: GPL-3+ License: GPL-3+
Files: src/core/core-network.c Files: src/core/wee-network.c
Copyright: 2005-2010, Emmanuel Bouthenot <kolter@openics.org> Copyright: 2005-2010, Emmanuel Bouthenot <kolter@openics.org>
2010, Gu1ll4um3r0m41n <aeroxteam@gmail.com> 2010, Gu1ll4um3r0m41n <aeroxteam@gmail.com>
2012, Simon Arlott 2012, Simon Arlott
+13 -3
View File
@@ -4,8 +4,10 @@ export DEB_BUILD_MAINT_OPTIONS=hardening=+all
BUILDDIR = builddir BUILDDIR = builddir
override_dh_auto_configure: $(BUILDDIR)/Makefile:
dh_auto_configure --buildsystem=cmake -- \ mkdir -p $(BUILDDIR)
cd $(BUILDDIR) && \
cmake .. \
-DCMAKE_INSTALL_PREFIX:FILEPATH=/usr \ -DCMAKE_INSTALL_PREFIX:FILEPATH=/usr \
-DLIBDIR=/usr/lib/${DEB_HOST_MULTIARCH} \ -DLIBDIR=/usr/lib/${DEB_HOST_MULTIARCH} \
-DENABLE_DOC:BOOL=ON \ -DENABLE_DOC:BOOL=ON \
@@ -16,8 +18,16 @@ override_dh_auto_configure:
-DCMAKE_SKIP_RPATH:BOOL=ON \ -DCMAKE_SKIP_RPATH:BOOL=ON \
-DCMAKE_VERBOSE_MAKEFILE: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: override_dh_installchangelogs:
dh_installchangelogs ChangeLog.adoc dh_installchangelogs ChangeLog.adoc
%: %:
dh $@ --builddirectory=$(BUILDDIR) dh $@ --builddirectory=$(BUILDDIR) --without autoreconf
-3
View File
@@ -1,3 +0,0 @@
tar-ignore = ".git"
tar-ignore = "build"
tar-ignore = "release"
+33 -304
View File
@@ -1,5 +1,5 @@
# #
# Copyright (C) 2003-2024 Sébastien Helleu <flashcode@flashtux.org> # Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2009 Emmanuel Bouthenot <kolter@openics.org> # Copyright (C) 2009 Emmanuel Bouthenot <kolter@openics.org>
# #
# This file is part of WeeChat, the extensible chat client. # This file is part of WeeChat, the extensible chat client.
@@ -19,97 +19,10 @@
# #
if(ENABLE_MAN OR ENABLE_DOC) 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) find_package(Asciidoctor)
if(ASCIIDOCTOR_FOUND) if(ASCIIDOCTOR_FOUND)
# common asciidoctor arguments # common asciidoctor arguments
set(ASCIIDOCTOR_ARGS 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 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
)
# sed arguments used to replace links in ChangeLog and release notes # sed arguments used to replace links in ChangeLog and release notes
set(SED_LINKS_ARGS set(SED_LINKS_ARGS
@@ -123,238 +36,54 @@ if(ENABLE_MAN OR ENABLE_DOC)
# ChangeLog # ChangeLog
add_custom_command( add_custom_command(
OUTPUT "${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" COMMAND sed ARGS ${SED_LINKS_ARGS} ${CMAKE_CURRENT_SOURCE_DIR}/../ChangeLog.adoc > ${CMAKE_CURRENT_BINARY_DIR}/ChangeLog-links.adoc
DEPENDS DEPENDS
"${CMAKE_CURRENT_SOURCE_DIR}/../ChangeLog.adoc" ${CMAKE_CURRENT_SOURCE_DIR}/../ChangeLog.adoc
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
) )
add_custom_command( add_custom_command(
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/ChangeLog.html" OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ChangeLog.html
COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} -o ChangeLog.html "${CMAKE_CURRENT_BINARY_DIR}/ChangeLog-links.adoc" COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -a docinfodir="${CMAKE_CURRENT_SOURCE_DIR}" -o ChangeLog.html ${CMAKE_CURRENT_BINARY_DIR}/ChangeLog-links.adoc
DEPENDS DEPENDS
"${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html" ${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html
"${CMAKE_CURRENT_BINARY_DIR}/ChangeLog-links.adoc" ${CMAKE_CURRENT_BINARY_DIR}/ChangeLog-links.adoc
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building ChangeLog.html" 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 # Release notes
add_custom_command( add_custom_command(
OUTPUT "${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" COMMAND sed ARGS ${SED_LINKS_ARGS} ${CMAKE_CURRENT_SOURCE_DIR}/../ReleaseNotes.adoc > ${CMAKE_CURRENT_BINARY_DIR}/ReleaseNotes-links.adoc
DEPENDS DEPENDS
"${CMAKE_CURRENT_SOURCE_DIR}/../ReleaseNotes.adoc" ${CMAKE_CURRENT_SOURCE_DIR}/../ReleaseNotes.adoc
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
) )
add_custom_command( add_custom_command(
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/ReleaseNotes.html" OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ReleaseNotes.html
COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} -o ReleaseNotes.html "${CMAKE_CURRENT_BINARY_DIR}/ReleaseNotes-links.adoc" COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -a docinfodir="${CMAKE_CURRENT_SOURCE_DIR}" -o ReleaseNotes.html ${CMAKE_CURRENT_BINARY_DIR}/ReleaseNotes-links.adoc
DEPENDS DEPENDS
"${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html" ${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html
"${CMAKE_CURRENT_BINARY_DIR}/ReleaseNotes-links.adoc" ${CMAKE_CURRENT_BINARY_DIR}/ReleaseNotes-links.adoc
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building ReleaseNotes.html" COMMENT "Building ReleaseNotes.html"
) )
add_custom_target(rn DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/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"
# scripting duide
"${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_scripting_functions.${lang}.adoc"
"${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_scripting_constants.${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"
doc-autogen
"${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_scripting_functions.${lang}.adoc"
"${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_scripting_constants.${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()
# 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() else()
message(SEND_ERROR "Asciidoctor not found") message(SEND_ERROR "Asciidoctor not found")
endif() endif()
endif() endif()
+28
View File
@@ -0,0 +1,28 @@
#
# Copyright (C) 2003-2022 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2006 Julien Louis <ptitlouis@sysif.net>
#
# This file is part of WeeChat, the extensible chat client.
#
# 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-2022 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-2022 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
+1 -1
View File
@@ -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 WeeChat je napsán Sébastienem Helleu a přispěvovateli (kompletní seznam je v
souboru AUTHORS.adoc). souboru AUTHORS.adoc).
Copyright (C) 2003-2024 {author} Copyright (C) 2003-2022 {author}
WeeChat is free software; you can redistribute it and/or modify WeeChat is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
+7 -3
View File
@@ -2,6 +2,10 @@
:author: Sébastien Helleu :author: Sébastien Helleu
:email: flashcode@flashtux.org :email: flashcode@flashtux.org
:lang: cs :lang: cs
:toc: left
:sectnums:
:docinfo1:
[[start]] [[start]]
== Spuštění WeeChatu == 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: 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 // TRANSLATION MISSING
@@ -399,14 +403,14 @@ Zkuste `/help script` pro více informací.
// TRANSLATION MISSING // TRANSLATION MISSING
A list of scripts is available in WeeChat with `/script` or on A list of scripts is available in WeeChat with `/script` or on
https://weechat.org/scripts/[this page ^↗^^]. https://weechat.org/scripts/[this page ^↗^,window=_blank].
[[more_doc]] [[more_doc]]
== Další dokumentace == Další dokumentace
// TRANSLATION MISSING // TRANSLATION MISSING
You can now use WeeChat and read You can now use WeeChat and read
https://weechat.org/doc/[FAQ/documentation ^↗^^] https://weechat.org/doc/[FAQ/documentation ^↗^,window=_blank]
for any other questions. for any other questions.
Ať máte radost z použití WeeChatu! Ať máte radost z použití WeeChatu!
+110
View File
@@ -0,0 +1,110 @@
#
# Copyright (C) 2003-2022 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-2022 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2006 Julien Louis <ptitlouis@sysif.net>
#
# This file is part of WeeChat, the extensible chat client.
#
# 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,204 @@
//
// 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_channels_autojoin | Kanäle, die automatisch auf dem aktuellen Server betreten werden (Option "autojoin")
| irc | irc_ignores_numbers | Anzahl für festgelegte Ignorierungen
| irc | irc_modelist_masks | Modelist Maske für aktuellen IRC Kanal; benötigtes Argument: modelist mode
| 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_add_arguments | Argumente für den Befehl, der einen Trigger hinzufügt: Name des Triggers, Hooks, Hook-Argumente, Hook-Bedingungen, Hook-Regex, Hook-Befehl, Hook-Rückgabecode, nachfolgende Aktionen
| trigger | trigger_hook_arguments | Standardargumente für einen Hook
| trigger | trigger_hook_command | Standardbefehl für einen Hook
| 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 | custom_bar_item_add_arguments | Argumente für den Befehl, der ein benutzerdefiniertes Bar-Item hinzufügt: Elementname, Bedingungen,Inhalt
| weechat | custom_bar_item_conditions | Bedingungen für benutzerdefinierte Bar-Items
| weechat | custom_bar_item_contents | Inhalte für benutzerdefinierte Bar-Items
| weechat | custom_bar_items_names | Namen der benutzerdefinierten Bar-Items
| weechat | env_value | Wert einer Umgebungsvariable
| weechat | env_vars | Umgebungsvariablen
| 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[]
+166
View File
@@ -0,0 +1,166 @@
//
// 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 | uptime_current | WeeChat-Betriebszeit für den aktuellen Prozess (Upgrades mit /upgrade Befehlwerden ignoriert) (Format: "Tage:hh:mm:ss") | "days" (Anzahl der Tage) oder "seconds" (Anzahl der Sekunden) (optional)
| weechat | version | WeeChat-Version | -
| weechat | version_git | WeeChat Git Version (Ausgabe des Befehls "git describe", ausschließlich für eine Entwicklerversion. Eine stabile Version gibt keine Information zurück) | -
| 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
+1 -1
View File
@@ -100,7 +100,7 @@ $HOME/.local/share/weechat/weechat.log::
WeeChat wird programmiert von Sébastien Helleu und weiteren Beteiligten (eine vollständige Auflistung WeeChat wird programmiert von Sébastien Helleu und weiteren Beteiligten (eine vollständige Auflistung
findet man in der AUTHORS.adoc Datei). findet man in der AUTHORS.adoc Datei).
Copyright (C) 2003-2024 {author} Copyright (C) 2003-2022 {author}
WeeChat is free software; you can redistribute it and/or modify WeeChat is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
+240 -162
View File
@@ -2,12 +2,24 @@
:author: Sébastien Helleu :author: Sébastien Helleu
:email: flashcode@flashtux.org :email: flashcode@flashtux.org
:lang: de :lang: de
:toc: left
:toc-title: Inhaltsverzeichnis :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: Übersetzer:
* Juergen Descher <jhdl@gmx.net>, 2009 * Juergen Descher <jhdl@gmx.net>, 2009
* Nils Görs <weechatter@arcor.de>, 2009-2022 * Nils Görs <weechatter@arcor.de>, 2009-2018
toc::[]
[[general]] [[general]]
== Allgemein == Allgemein
@@ -27,7 +39,7 @@ Aber diese Bedeutung trifft nicht auf WeeChat zu!)
WeeChat ist sehr speicherschonend und besticht durch innovative Funktionen. WeeChat ist sehr speicherschonend und besticht durch innovative Funktionen.
Weitere Infomationen über Weechat Weitere Infomationen über Weechat
https://weechat.org/about/features/[features page ^↗^^]. https://weechat.org/about/features/[features page ^↗^,window=_blank].
[[compilation_install]] [[compilation_install]]
== Kompilierung / Installation == Kompilierung / Installation
@@ -36,22 +48,29 @@ https://weechat.org/about/features/[features page ^↗^^].
=== Ich habe gehört es gibt verschiedene GUIs für WeeChat. Wie kann ich diese kompilieren bzw. nutzen? === Ich habe gehört es gibt verschiedene GUIs für WeeChat. Wie kann ich diese kompilieren bzw. nutzen?
Einige Remote-GUIs sind verfügbar, siehe Einige Remote-GUIs sind verfügbar, siehe
https://weechat.org/about/interfaces/[remote interfaces page ^↗^^]. https://weechat.org/about/interfaces/[remote interfaces page ^↗^,window=_blank].
[[compile_git]] [[compile_git]]
=== Ich kann WeeChat nach Cloning des git Repository nicht kompilieren - weshalb? === Ich kann WeeChat nach Cloning des git Repository nicht kompilieren - weshalb?
WeeChat muss mit CMake kompiliert werden. Es wird empfohlen link:weechat_user.de.html#compile_with_cmake[CMake ^↗^,window=_blank] zum
kompilieren von WeeChat zu nutzen.
Bitte folgen Sie link:weechat_user.en.html#source_package[build instructions ^↗^^] Falls Du WeeChat mit Hilfe der
und stellen Sie sicher, dass alle erforderlichen Abhängigkeiten installiert sind. link:weechat_user.de.html#compile_with_autotools[autotools ^↗^,window=_blank] 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]] [[compile_macos]]
=== Wie installiere ich WeeChat auf 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 ^↗^,window=_blank] genutzt wird.
Hilfe erhält man mittels: Hilfe erhält man mittels:
---- ----
@@ -69,12 +88,12 @@ brew install weechat
Um Hilfe zu erhalten, nutze den `/help` Befehl. Um Hilfe zu erhalten, nutze den `/help` Befehl.
Jeder Befehl besitzt einen Hilfstext, den man sich durch `/help Befehlsname` anzeigen lassen kann. Jeder Befehl besitzt einen Hilfstext, den man sich durch `/help Befehlsname` anzeigen lassen kann.
Die link:weechat_user.de.html#key_bindings[Standard Tastenbelegung ^↗^^] sowie Die link:weechat_user.de.html#key_bindings[Standard Tastenbelegung ^↗^,window=_blank] sowie
link:weechat_user.de.html#commands_and_options[Befehle und Optionen ^↗^^] sind im link:weechat_user.de.html#commands_and_options[Befehle und Optionen ^↗^,window=_blank] sind im
link:weechat_user.de.html[Benutzerhandbuch ^↗^^] aufgeführt. link:weechat_user.de.html[Benutzerhandbuch ^↗^,window=_blank] aufgeführt.
Neuen Anwendern wird empfohlen, Neuen Anwendern wird empfohlen,
die link:weechat_quickstart.de.html[Quickstart Anleitung ^↗^^] zu lesen. die link:weechat_quickstart.de.html[Quickstart Anleitung ^↗^,window=_blank] zu lesen.
[[display]] [[display]]
== Anzeige == Anzeige
@@ -107,7 +126,7 @@ Es ist deshalb wichtig, *ALLE* der folgenden Lösungsmöglichkeiten zu prüfen:
("`defutf8 on`" in der Datei ~/.screenrc oder `screen -U` beim Starten von ("`defutf8 on`" in der Datei ~/.screenrc oder `screen -U` beim Starten von
screen). screen).
* Überprüfe die Option * Überprüfe die Option
link:weechat_user.de.html#option_weechat.look.eat_newline_glitch[_weechat.look.eat_newline_glitch_ ^↗^^] link:weechat_user.de.html#option_weechat.look.eat_newline_glitch[_weechat.look.eat_newline_glitch_ ^↗^,window=_blank]
(diese Option kann schwerwiegenden Darstellungsfehler verursachen, wenn man die Option aktiviert hat). (diese Option kann schwerwiegenden Darstellungsfehler verursachen, wenn man die Option aktiviert hat).
[NOTE] [NOTE]
@@ -123,9 +142,9 @@ Dieser Fehler sollte durch glibc 2.22 behoben sein (vielleicht ist diese Version
verwendeten Distributionen noch nicht verfügbar). verwendeten Distributionen noch nicht verfügbar).
Es gibt folgende Übergangslösung, um das Problem mit der _wcwidth_ zu umgehen: Es gibt folgende Übergangslösung, um das Problem mit der _wcwidth_ zu umgehen:
https://blog.nytsoi.net/2015/05/04/emoji-support-for-weechat[https://blog.nytsoi.net/2015/05/04/emoji-support-for-weechat ^↗^^]. https://blog.nytsoi.net/2015/05/04/emoji-support-for-weechat[https://blog.nytsoi.net/2015/05/04/emoji-support-for-weechat ^↗^,window=_blank].
Siehe https://github.com/weechat/weechat/issues/79[bug report ^↗^^] Siehe https://github.com/weechat/weechat/issues/79[bug report ^↗^,window=_blank]
für weitere Informationen. für weitere Informationen.
[[bars_background]] [[bars_background]]
@@ -181,10 +200,17 @@ von einem oder mehreren Fenstern gleichzeitig angezeigt werden.
[[buffers_list]] [[buffers_list]]
=== Wie kann ich eine Liste mit den Buffern z.B. auf der linken Seite anzeigen lassen? === Wie kann ich eine Liste mit den Buffern z.B. auf der linken Seite anzeigen lassen?
Diese Erweiterung, link:weechat_user.de.html#buflist[buflist ^↗^^], Ab WeeChat ≥ 1.8 wird standardmäßig die link:weechat_user.de.html#buflist[buflist-Erweiterung ^↗^,window=_blank]
wird standardmäßig geladen und aktiviert. automatisch geladen und verwendet.
Um die maximale Breite der buflist-Spalte zu reduzieren, nutze folgende Option: Bei älteren Versionen kann stattdessen das Skript _buffers.pl_ installiert werden:
----
/script install buffers.pl
----
Um die maximale Breite der buflist-Spalte zu reduzieren (ersetze "buflist" durch "buffers", wenn das
Skript _buffers.pl_ genutzt wird), nutze folgende Option:
---- ----
/set weechat.bar.buflist.size_max 15 /set weechat.bar.buflist.size_max 15
@@ -204,6 +230,26 @@ kbd:[F1] oder kbd:[Ctrl+F1]) zum Hoch-Scrollen,
kbd:[F2] oder kbd:[Ctrl+F2] zum Runter-Scrollen, kbd:[F2] oder kbd:[Ctrl+F2] zum Runter-Scrollen,
kbd:[Alt+F1] und kbd:[Alt+F2] um an den Anfang bzw. an das Ende der Liste zu springen. kbd:[Alt+F1] und kbd:[Alt+F2] um an den Anfang bzw. an das Ende der Liste zu springen.
Wird das Skript _buffers.pl_ verwendet,
müssen die entsprechenden Tasten selbst definiert werden.
Sie sind dann vergleichbar mit den vorhanden Tasten für die Nicklist. +
Um zum Beispiel folgende Tasten nutzen zu können:
kbd:[F1], kbd:[F2] um zu scrollen,
oder kbd:[Alt+F1] und kbd:[Alt+F2] um an den Anfang bzw. das Ende zu springen,
finden folgende WeeChat-Befehle Anwendung:
----
/key bind meta-OP /bar scroll buffers * -100%
/key bind meta-OQ /bar scroll buffers * +100%
/key bind meta-meta-OP /bar scroll buffers * b
/key bind meta-meta-OQ /bar scroll buffers * e
----
[NOTE]
Die Tasten "meta-OP" und "meta-OQ" können im Hinblick auf das jeweils genutzte Terminal variieren.
Um die korrekten Tasten zu finden, sollte man mit kbd:[Alt+k] die gewünschte Tastenkombination einfangen.
Siehe auch: link:weechat_user.de.html#key_bindings_command_line[Benutzerhandbuch / Tastenbelegung ^↗^,window=_blank].
[[customize_buflist]] [[customize_buflist]]
=== Wie kann ich die Darstellung der Bufferliste anpassen, z.B. die Farbe des aktiven Buffers? === Wie kann ich die Darstellung der Bufferliste anpassen, z.B. die Farbe des aktiven Buffers?
@@ -226,7 +272,7 @@ Es kann auch eine beliebige numerische Farbe anstelle von "Rot" verwendet werden
Die Buflist-Erweiterung bietet viele Optionen, zum individualisieren. Bitte lesen Sie dazu die Hilfe von jeder Option. Die Buflist-Erweiterung bietet viele Optionen, zum individualisieren. Bitte lesen Sie dazu die Hilfe von jeder Option.
Es gibt zusätzlich die https://github.com/weechat/weechat/wiki/buflist[wiki page ^↗^^] Es gibt zusätzlich die https://github.com/weechat/weechat/wiki/buflist[wiki page ^↗^,window=_blank]
mit Beispielen für die erweiterte buflist Konfiguration. mit Beispielen für die erweiterte buflist Konfiguration.
[[customize_prefix]] [[customize_prefix]]
@@ -273,7 +319,7 @@ Diese Farben können mit den Optionen __weechat.color.status_data_*__
Weitere hotlist Eigenschaften können mit Hilfe der Optionen __weechat.look.hotlist_*__ Weitere hotlist Eigenschaften können mit Hilfe der Optionen __weechat.look.hotlist_*__
verändert werden. verändert werden.
Siehe link:weechat_user.de.html#screen_layout[Benutzerhandbuch / Screen layout ^↗^^] Siehe link:weechat_user.de.html#screen_layout[Benutzerhandbuch / Screen layout ^↗^,window=_blank]
für weitere Informationen zur Hotlist. für weitere Informationen zur Hotlist.
[[input_bar_size]] [[input_bar_size]]
@@ -323,8 +369,9 @@ sobald das Item "input_text" in keiner anderen Bar genutzt wird:
[[terminal_copy_paste]] [[terminal_copy_paste]]
=== Wie kann ich einen Text kopieren und einfügen, ohne dass die Nickliste (Benutzerliste) mit kopiert wird? === Wie kann ich einen Text kopieren und einfügen, ohne dass die Nickliste (Benutzerliste) mit kopiert wird?
Sie können den vereinfachten Anzeigemodus verwenden (Standardtaste: kbd:[Alt+l] (`L`)), dieser Seit WeeChat ≥ 1.0 gibt es den "einfachen Anzeigemodus".
zeigt nur den Inhalt des aktuell ausgewählten Fensters an, ohne jegliche Formatierung. Dieser kann mit der Tastenkombination kbd:[Alt+l] (<l> wie in Lima) aktiviert werden.
Der Inhalt des aktuellen Fensters wird nach der Aktivierung ohne Formatierung angezeigt.
Jetzt kannst Du die Block-Auswahl nutzen, insofern dein Terminal diesen Modus Jetzt kannst Du die Block-Auswahl nutzen, insofern dein Terminal diesen Modus
unterstützt (rxvt-unicode, konsole, gnome-terminal, ... um nur einige zu nennen ). unterstützt (rxvt-unicode, konsole, gnome-terminal, ... um nur einige zu nennen ).
@@ -341,7 +388,8 @@ die Benutzerliste am oberen oder unteren Rand des WeeChat-Bildschirmes zu positi
[[urls]] [[urls]]
=== Wie kann ich eine URL aufrufen, die einen Zeilenumbruch besitzt? === Wie kann ich eine URL aufrufen, die einen Zeilenumbruch besitzt?
Dazu kann man den vereinfachten Anzeigemodus nutzen (Standardtaste: kbd:[Alt+l] (`L`)). Seit WeeChat ≥ 1.0 gibt es den "einfachen Anzeigemodus".
Dieser kann mit der Tastenkombination kbd:[Alt+l] (<l> wie in Lima) aktiviert werden.
Um URLs einfacher zu öffnen, können alternativ folgende Optionen gesetzt werden: Um URLs einfacher zu öffnen, können alternativ folgende Optionen gesetzt werden:
@@ -351,7 +399,7 @@ Um URLs einfacher zu öffnen, können alternativ folgende Optionen gesetzt werde
/set weechat.bar.nicklist.position top /set weechat.bar.nicklist.position top
---- ----
* Die Ausrichtung bei einem Zeilenumbruch innerhalb eines Wortes deaktivieren. * Die Ausrichtung bei einem Zeilenumbruch innerhalb eines Wortes deaktivieren (WeeChat ≥ 1.7).
---- ----
/set weechat.look.align_multiline_words off /set weechat.look.align_multiline_words off
@@ -363,9 +411,9 @@ Um URLs einfacher zu öffnen, können alternativ folgende Optionen gesetzt werde
/set weechat.look.align_end_of_lines time /set weechat.look.align_end_of_lines time
---- ----
Es kann auch die "eat_newline_glitch" Option aktiviert werden, Ab der WeeChat Version ≥ 0.3.6, kann die Option "eat_newline_glitch" aktiviert werden.
sodass kein neuer Zeilenumbruch hinzugefügt wird, Damit wird das Zeichen für einen Zeilenumbruch nicht an die dargestellten Zeilen angefügt
am Ende jeder angezeigten Zeile (es wird die URL-Auswahl nicht unterbrechen): (dies führt dazu, dass URLs beim Markieren korrekt erkannt werden):
---- ----
/set weechat.look.eat_newline_glitch on /set weechat.look.eat_newline_glitch on
@@ -412,6 +460,8 @@ In WeeChat wird der neue Wert umgehend genutzt:
[[use_256_colors]] [[use_256_colors]]
=== Wie kann ich 256 Farben in WeeChat nutzen? === Wie kann ich 256 Farben in WeeChat nutzen?
256 Farben werden ab der WeeChat Version ≥ 0.3.4 unterstützt.
Zuerst sollte überprüft werden, ob die _TERM_-Umgebungsvariable korrekt hinterlegt ist. Zuerst sollte überprüft werden, ob die _TERM_-Umgebungsvariable korrekt hinterlegt ist.
Folgende Werte sind zu empfehlen: Folgende Werte sind zu empfehlen:
@@ -432,17 +482,20 @@ term screen-256color
Falls die Umgebungsvariable _TERM_ einen falschen Wert haben sollte und WeeChat Falls die Umgebungsvariable _TERM_ einen falschen Wert haben sollte und WeeChat
schon gestartet wurde, kann man die Umgebungsvariable mit folgenden WeeChat Befehlen schon gestartet wurde, kann man die Umgebungsvariable mit folgenden WeeChat Befehlen
anpassen: anpassen (WeeChat ≥ 1.0):
---- ----
/set env TERM screen-256color /set env TERM screen-256color
/upgrade /upgrade
---- ----
Sie können eine beliebige Farbnummer in den Optionen verwenden (optional: Sie können Farbaliase, Mit der WeeChat Version 0.3.4 muss der Befehl `/color` genutzt werden, um neue Farben zu erstellen.
mit dem Befehl `/color`, erstellen.
Bitte lese link:weechat_user.de.html#colors[Benutzerhandbuch / Farben ^↗^^] 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 ^↗^,window=_blank]
für weitere Informationen die das Farbmanagement betreffen. für weitere Informationen die das Farbmanagement betreffen.
[[search_text]] [[search_text]]
@@ -453,7 +506,7 @@ Die Standardtastenbelegung lautet kbd:[Ctrl+r]
Um zu Highlight-Nachrichten zu springen: Um zu Highlight-Nachrichten zu springen:
kbd:[Alt+p] für vorherige, kbd:[Alt+n] für die nächste Nachricht. kbd:[Alt+p] für vorherige, kbd:[Alt+n] für die nächste Nachricht.
siehe link:weechat_user.de.html#key_bindings[Benutzerhandbuch / Standard Tastenbelegung ^↗^^] siehe link:weechat_user.de.html#key_bindings[Benutzerhandbuch / Standard Tastenbelegung ^↗^,window=_blank]
für weitere Informationen zu dieser Funktion. für weitere Informationen zu dieser Funktion.
[[terminal_focus]] [[terminal_focus]]
@@ -481,15 +534,15 @@ Zusätzlich sollten noch zwei Tastenbefehle eingebunden werden
(der Befehl `/print` sollte durch einen Befehl Ihrer Wahl ersetzt werden): (der Befehl `/print` sollte durch einen Befehl Ihrer Wahl ersetzt werden):
---- ----
/key bind meta-[I /print -core focus /key bind meta2-I /print -core focus
/key bind meta-[O /print -core unfocus /key bind meta2-O /print -core unfocus
---- ----
Um zum Beispiel Buffer als gelesen zu markieren, Um zum Beispiel Buffer als gelesen zu markieren,
wenn das Terminal den Fokus verlieren sollte: wenn das Terminal den Fokus verlieren sollte:
---- ----
/key bind meta-[O /allbuf /buffer set unread /key bind meta2-O /input set_unread
---- ----
[[screen_paste]] [[screen_paste]]
@@ -613,30 +666,6 @@ Sollte die macOS Terminal Applikation genutzt werden, empfiehlt es sich,
die Option "Use option as meta key" in den Menü-Einstellungen zu aktivieren. die Option "Use option as meta key" in den Menü-Einstellungen zu aktivieren.
Dadurch kann man die kbd:[Option] Taste als Meta-Taste verwenden. Dadurch kann man die kbd:[Option] Taste als Meta-Taste verwenden.
[[enter_key]]
=== Einige Tasten, einschließlich Enter, funktionieren nicht. Weshalb?
Wenn eine WeeChat Version < 4.0.0 mit Konfigurationsdateien ausgeführt wird,
die von einer Weechat Version ≥ 4.0.0 erstellt wurde, sind die Tastennamen ungültig und viele Tasten funktionieren überhaupt nicht mehr. +
Um dies zu reparieren, muss WeeChat beendet und alle Einträge aus dem Abschnitt `[key*]` innerhalb der weechat.conf entfernt werden.
Wenn WeeChat erneut gestartet wird, wird die Standardtastenbelegung neu erstellt.
[[key_f11]]
=== Die Taste F11 maximiert das Terminalfenster. Wie kann ich aber in der Nicklist nach oben scrollen?
Die kbd:[F11] Taste wird häufig von Terminals verwendet, um das Fenster zu maximieren. Aber
kbd:[F11]/kbd:[F12] sind ebenso die Standardtasten, in WeeChat, um in der Nickliste zu scrollen.
Man kann andere Tasten nutzen, zum Beispiel kbd:[Shift+F11] und kbd:[Shift+F12],
mit WeeChat ≥ 4.0.0:
----
/key bind shift-f11 /bar scroll nicklist * -100%
/key bind shift-f12 /bar scroll nicklist * +100%
----
Eine andere Möglichkeit besteht darin, die Maus zu aktivieren (Taste: kbd:[Alt+m]) und mit dem Mausrad zu scrollen (siehe auch Fragen zu <<mouse,mouse>>).
[[customize_key_bindings]] [[customize_key_bindings]]
=== Wie kann ich die Tastaturbelegung anpassen? === Wie kann ich die Tastaturbelegung anpassen?
@@ -658,7 +687,7 @@ Es kann auch eine neue Taste eingebunden werden um zu einem Buffer zu wechseln:
---- ----
Eine Auflistung der Standardtastenbelegung findet man in Eine Auflistung der Standardtastenbelegung findet man in
link:weechat_user.de.html#key_bindings[Benutzerhandbuch / Standard Tastenbelegung ^↗^^]. link:weechat_user.de.html#key_bindings[Benutzerhandbuch / Standard Tastenbelegung ^↗^,window=_blank].
Um zu Buffern zu wechseln die an Position ≥ 100 sind kann ein Trigger definiert Um zu Buffern zu wechseln die an Position ≥ 100 sind kann ein Trigger definiert
werden um dann z.B. mit einem Kurzbefehl `/123` zum Buffer #123 zu springen: werden um dann z.B. mit einem Kurzbefehl `/123` zum Buffer #123 zu springen:
@@ -667,12 +696,6 @@ werden um dann z.B. mit einem Kurzbefehl `/123` zum Buffer #123 zu springen:
/trigger add numberjump modifier "2000|input_text_for_buffer" "${tg_string} =~ ^/[0-9]+$" "=\/([0-9]+)=/buffer *${re:1}=" "" "" "none" /trigger add numberjump modifier "2000|input_text_for_buffer" "${tg_string} =~ ^/[0-9]+$" "=\/([0-9]+)=/buffer *${re:1}=" "" "" "none"
---- ----
Um einfach von einem Buffer zu einem anderen zu springen, kann man das _go.py_ Skript installieren:
----
/script install go.py
----
[[global_history]] [[global_history]]
=== Wie kann ich den globalen Verlaufsspeicher (anstelle des Buffer eigenen) mit den Up-/Down-Tasten nutzen? === Wie kann ich den globalen Verlaufsspeicher (anstelle des Buffer eigenen) mit den Up-/Down-Tasten nutzen?
@@ -681,25 +704,23 @@ genutzt: kbd:[Ctrl+↑] und kbd:[Ctrl+↓]).
Beispiele: 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-A /input history_global_previous
/key bind meta2-B /input history_global_next /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]] [[mouse]]
== Mausunterstützung == Mausunterstützung
[[mouse_not_working]] [[mouse_not_working]]
=== Die Mausunterstützung funktioniert nicht, was kann ich tun? === Die Mausunterstützung funktioniert nicht, was kann ich tun?
Eine Unterstützung von Mausfunktionen ist seit WeeChat ≥ 0.3.6 verfügbar.
Als erstes sollte man die Mausunterstützung einschalten: Als erstes sollte man die Mausunterstützung einschalten:
---- ----
@@ -750,28 +771,34 @@ anstelle der kbd:[Shift]-Taste gedrückt werden).
[[irc]] [[irc]]
== IRC == IRC
[[irc_tls_connection]] [[irc_ssl_connection]]
=== Es treten Probleme bei einer Serververbindung mittels TLS auf. Was kann ich tun? === Es treten Probleme bei einer Serververbindung mittels SSL auf. Was kann ich tun?
Falls macOS genutzt wird, Falls macOS genutzt wird,
muss mittels Homebrew `openssl` installiert werden. muss mittels Homebrew `openssl` installiert werden.
Eine CA-Datei wird mittels Zertifikaten vom Systemschlüssel geladen. Eine CA-Datei wird mittels Zertifikaten vom Systemschlüssel geladen.
Ab WeeChat ≤ 3.1 können Sie den Pfad zu Systemzertifikaten festlegen:
----
/set weechat.network.gnutls_ca_file "/usr/local/etc/openssl/cert.pem"
----
Falls Fehlermeldungen auftreten, die besagen, Falls Fehlermeldungen auftreten, die besagen,
dass der gnutls Handshake fehlgeschlagen ist, dass der gnutls Handshake fehlgeschlagen ist,
sollte ein kleinerer Diffie-Hellman-Schlüssel verwendet werden (Standardgröße: 2048): sollte ein kleinerer Diffie-Hellman-Schlüssel verwendet werden (Standardgröße: 2048):
---- ----
/set irc.server.example.tls_dhkey_size 1024 /set irc.server.example.ssl_dhkey_size 1024
---- ----
Falls Fehlermeldungen auftreten, die besagen, Falls Fehlermeldungen auftreten, die besagen,
dass das Zertifikat ungültig ist, 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): (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, Sollte das Zertifikat für den Server (laut CA) ungültig sein,
@@ -780,30 +807,45 @@ dann kann (ersatzweise) der Fingerabdruck (SHA-512, SHA-256 or SHA-1)
des Zertifikats von Hand eingetragen werden: des Zertifikats von Hand eingetragen werden:
---- ----
/set irc.server.example.tls_fingerprint 0c06e399d3c3597511dc8550848bfd2a502f0ce19883b728b73f6b7e8604243b /set irc.server.example.ssl_fingerprint 0c06e399d3c3597511dc8550848bfd2a502f0ce19883b728b73f6b7e8604243b
---- ----
[[irc_tls_handshake_error]] [[irc_ssl_handshake_error]]
=== Bei einem Verbindungsaufbau zum Server via TLS erhalte ich "TLS Handshake fehlgeschlagen". Wie kann ich das beheben? === Bei einem Verbindungsaufbau zum Server via SSL erhalte ich "TLS Handshake fehlgeschlagen". Wie kann ich das beheben?
Man sollte versuchen, eine andere Priorität zu nutzen; Im folgenden Beispiel Man sollte versuchen, eine andere Priorität zu nutzen (nur WeeChat ≥ 0.3.5);
muss "xxx" durch den betroffenen Servernamen ersetzt werden: Im folgenden Beispiel muss "xxx" durch den betroffenen Servernamen ersetzt werden:
---- ----
/set irc.server.xxx.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]] [[irc_ssl_libera]]
=== Wie kann ich eine TLS gesicherte Verbindung zum libera Server herstellen? === Wie kann ich eine SSL gesicherte Verbindung zum libera Server herstellen?
Überprüfen Sie, ob auf Ihrem System Zertifikate installiert sind. Dies wird häufig Ab WeeChat ≤ 3.1 kann mit der Option _weechat.network.gnutls_ca_file_ eine Datei mit
durch das Paket "ca-certificates" bereitgestellt. Zertifikaten ausgewählt werden:
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.addresses "irc.libera.chat/6697"
/set irc.server.libera.tls on /set irc.server.libera.ssl on
/connect libera /connect libera
---- ----
@@ -861,8 +903,8 @@ Für einen einzelnen Server:
/set irc.server.libera.autojoin_dynamic on /set irc.server.libera.autojoin_dynamic on
---- ----
Sie können den aktuellen Kanal auch in der Serveroption "autojoin" hinzufügen, indem Ab WeeChat ≥ 3.5 kann man mit dem `/autojoin` Befehl den
Sie den `/autojoin`-Befehl nutzen: aktuellen Kanal in die Serveroption autojoin hinzufügen:
---- ----
/autojoin add /autojoin add
@@ -874,7 +916,28 @@ oder einen beliebigen Kanal:
/autojoin add #test /autojoin add #test
---- ----
Es existieren aber auch Skripten: Bis WeeChat ≤ 3.4, wird der `/set` Befehl verwendet, um die
Liste der autojoin-Kanäle zu editieren. In folgendem Beispiel
wird der "libera"-Server angepasst:
----
/set irc.server.libera.autojoin [TAB]
----
[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 Kanäle neu geschrieben werden.
Es kann auch der `/fset` Befehl verwendet werden, um die Liste der Kanäle
zu editieren:
----
/fset autojoin
----
Bis WeeChat ≤ 3.4 kann man auch ein Skript nutzen:
---- ----
/script search autojoin /script search autojoin
@@ -907,16 +970,35 @@ Die voreingestellte Tastenkombination zum Aktivieren bzw. Deaktivieren
aller Filter ist kbd:[Alt+-]. aller Filter ist kbd:[Alt+-].
[[filter_irc_join_part_quit]] [[filter_irc_join_part_quit]]
=== Wie kann ich join/part/quit und andere unerwünschte Nachrichten in IRC-Kanälen filtern? === Wie kann ich join/part/quit Meldungen in den IRC Kanälen 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 ^↗^,window=_blank].
[[filter_irc_join_channel_messages]] [[filter_irc_join_channel_messages]]
=== Wie kann ich die Server-Nachrichten filtern, wenn ich einen IRC Kanal betrete? === Wie kann ich Server-Nachrichten filtern, wenn ich einen IRC Kanal betrete?
Sie können auswählen, welche Nachrichten angezeigt werden, wenn Sie einem Kanal beitreten Ab WeeChat ≥ 0.4.1 kann man auswählen, welche Server-Nachrichten beim Betreten
Option _irc.look.display_join_message_ (siehe `+/help irc.look.display_join_message+` eines Kanals angezeigt und welche verborgen werden sollen. Dazu nutzt man
Für mehr Information). die Option _irc.look.display_join_message_ (für weitere Informationen, siehe
`+/help irc.look.display_join_message+`).
Um Nachrichten visuell zu verbergen, können diese gefiltert werden. Um Nachrichten visuell zu verbergen, können diese gefiltert werden.
Dazu wird der Befehl `/filter` auf bestimmte Nachrichten-Tags angewandt. Dazu wird der Befehl `/filter` auf bestimmte Nachrichten-Tags angewandt.
@@ -980,13 +1062,18 @@ Teilnehmer haben:
/set irc.server_default.away_check_max_nicks 25 /set irc.server_default.away_check_max_nicks 25
---- ----
[NOTE]
Für WeeChat ≤ 0.3.3, lauten die Optionen _irc.network.away_check_ und
_irc.network.away_check_max_nicks_.
[[highlight_notification]] [[highlight_notification]]
=== Wie kann ich mich benachrichtigen lassen, falls mich jemand in einem Kanal direkt anspricht (highlight)? === Wie kann ich mich benachrichtigen lassen, falls mich jemand in einem Kanal direkt anspricht (highlight)?
Es gibt einen voreingestellten Trigger mit Namen „beep“, der ein _BEL_ an das Terminal sendet, Seit WeeChat ≥ 1.0 gibt es standardmäßig den Trigger "beep",
bei einem Highlight oder einer private Nachricht. Damit können Sie Ihr Terminal konfigurieren der an das Terminal ein _BEL_ Signal schickt,
(oder einen Multiplexer wie screen/tmux), um einen Befehl auszuführen oder einen Ton abzuspielen, wenn sobald man eine highlight (hervorgehobene) oder private Nachricht erhält.
ein _BEL_ tritt auf. Nun muss man lediglich im Terminalprogramm oder dem Multiplexer (screen/tmux) einstellen,
welcher Befehl ausgeführt werden soll, sobald das Terminal das _BEL_ Signal erhält.
Der Trigger "beep" kann auch direkt an einen externen Befehl gekoppelt werden: Der Trigger "beep" kann auch direkt an einen externen Befehl gekoppelt werden:
@@ -1012,29 +1099,47 @@ Es gibt weitere Skripten, die auch zu diesem Thema passen:
[[disable_highlights_for_specific_nicks]] [[disable_highlights_for_specific_nicks]]
=== Wie kann ich Highlights (Hervorhebungen) von bestimmten Nicks deaktivieren? === Wie kann ich Highlights (Hervorhebungen) von bestimmten Nicks deaktivieren?
Dafür sollte link:weechat_user.de.html#max_hotlist_level_nicks[hotlist_max_level_nicks_add ^↗^^] Ab WeeChat ≥ 0.3.4 kann die Eigenschaft
die Buffer-Eigenschaft genutzt werden, um das maximale Hotlist-Level für einige Nicks pro Puffer festzulegen, link:weechat_user.de.html#max_hotlist_level_nicks[hotlist_max_level_nicks_add ^↗^,window=_blank]
oder pro Gruppe von Buffern (wie IRC-Server). für den entsprechenden Buffer gesetzt werden.
Dies kann für einzelne Nicks,
einen Buffer oder eine Gruppe von Buffern (z.B. IRC Server) gelten.
Um nun Highlights (Hervorhebungen) für bestimmte Nicks zu deaktivieren, muss Um nun Highlights (Hervorhebungen) für bestimmte Nicks zu deaktivieren, muss
man die entsprechende Eigenschaft auf 2 setzen. man die entsprechende Eigenschaft auf 2 setzen:
Für den aktuellen Buffer:
----
/buffer setauto hotlist_max_level_nicks_add joe:2,mike:2
----
Für alle Kanäle auf dem Server "libera":
---- ----
/set weechat.buffer.irc.libera.*.hotlist_max_level_nicks_add joe:2,mike:2 /buffer set hotlist_max_level_nicks_add joe:2,mike:2
---- ----
Diese Buffereigenschaft wird aber nicht permanent in der Konfiguration
gespeichert. Um diese Eigenschaften permanent zu verwenden, muss man
das Skript _buffer_autoset.py_ nutzen:
----
/script install buffer_autoset.py
----
Um zum Beispiel Highlights (Hervorhebungen) von Nick "mike" im Kanal
#weechat auf dem IRC Server libera zu deaktivieren:
----
/buffer_autoset add irc.libera.#weechat hotlist_max_level_nicks_add mike:2
----
Um dies auf den kompletten libera Server anzuwenden:
----
/buffer_autoset add irc.libera hotlist_max_level_nicks_add mike:2
----
Für weitere Beispiele, siehe `+/help buffer_autoset+`.
[[irc_target_buffer]] [[irc_target_buffer]]
=== Wie kann ich bei zusammengefügten Buffern den Zielbuffer ändern (z.B. bei einem Server-Buffer)? === Wie kann ich bei zusammengefügten Buffern den Zielbuffer ändern (z.B. bei einem Server-Buffer)?
Die Standardtastenkombination ist kbd:[Ctrl+x]. Der entsprechende Befehl lautet: Die Standardtastenkombination ist kbd:[Ctrl+x]. Der entsprechende Befehl lautet:
`+/buffer switch+`. `+/input switch_active_buffer+`.
[[plugins_scripts]] [[plugins_scripts]]
== Erweiterungen / Skripten == Erweiterungen / Skripten
@@ -1054,15 +1159,16 @@ Um dies zu beheben, muss folgendes konfiguriert werden:
[[install_scripts]] [[install_scripts]]
=== Wie kann ich Skripten installieren? Sind Skripten kompatibel mit anderen IRC Clients? === Wie kann ich Skripten installieren? Sind Skripten kompatibel mit anderen IRC Clients?
Mit dem Befehl `/script` können Sie Skripte installieren und verwalten (siehe `/help script` Seit WeeChat ≥ 0.3.9 gibt es den Befehl `/script` um Skripten zu installieren und zu verwalten
für Hilfe). (siehe `/help script` um eine Hilfe zu erhalten). Nutzt man eine ältere Version von WeeChat
kann man die Skripten weeget.py und script.pl nutzen.
Die Skripten für WeeChat sind mit anderen IRC-Clients nicht kompatibel und vice versa. Die Skripten für WeeChat sind mit anderen IRC-Clients nicht kompatibel und vice versa.
[[scripts_update]] [[scripts_update]]
=== Der Befehl "/script update" liest die Skriptliste nicht ein, wie kann ich das beheben? === 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 Wenn das nicht hilft, sollte die Skriptliste von Hand gelöscht werden. Dazu
folgenden Befehl in der Shell ausführen: folgenden Befehl in der Shell ausführen:
@@ -1072,7 +1178,7 @@ $ rm ~/.cache/weechat/script/plugins.xml.gz
---- ----
[NOTE] [NOTE]
Wenn Sie die XDG-Verzeichnisse nicht verwenden, könnte der Pfad lauten: _~/.weechat/script/plugins.xml.gz_. Ab WeeChat ≤ 3.1, sollte der Pfad: _~/.weechat/script/plugins.xml.gz_ lauten.
Danach sollte man noch einmal versuchen die Datei herunter zu laden: Danach sollte man noch einmal versuchen die Datei herunter zu laden:
@@ -1114,6 +1220,10 @@ Du brauchst lediglich die "spell"-Erweiterung neu zu laden:
/plugin reload spell /plugin reload spell
---- ----
[NOTE]
Bis WeeChat ≤ 2.4, hieß die "spell"-Erweiterung, "aspell". Somit lautet der Befehl:
`/plugin reload aspell`.
[[settings]] [[settings]]
== Einstellungen == Einstellungen
@@ -1149,7 +1259,7 @@ Damit WeeChat weniger Speicher benötigt, solltest Du folgende Tipps umsetzen:
Fifo, Logger, Perl, Python, Ruby, Lua, Tcl, Guile, JavaScript, PHP, Spell, Xfer Fifo, Logger, Perl, Python, Ruby, Lua, Tcl, Guile, JavaScript, PHP, Spell, Xfer
(wird für DCC benötigst), siehe `/help weechat.plugin.autoload`. (wird für DCC benötigst), siehe `/help weechat.plugin.autoload`.
* installiere ausschließlich Skripten die Du auch nutzt * 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_. _weechat.network.gnutls_ca_system_.
* der Wert der Option _weechat.history.max_buffer_lines_number_ sollte möglichst * 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_ niedrig eingestellt werden oder die Option _weechat.history.max_buffer_lines_minutes_
@@ -1162,8 +1272,7 @@ Damit WeeChat weniger Speicher benötigt, solltest Du folgende Tipps umsetzen:
Man sollte sich die Tipps zum <<memory_usage,Speicherverbrauch>> ansehen Man sollte sich die Tipps zum <<memory_usage,Speicherverbrauch>> ansehen
und zusätzlich diese Tipps beherzigen: und zusätzlich diese Tipps beherzigen:
* "nicklist"-Bar sollte versteckt werden: `/bar hide nicklist` (Taste: kbd:[Alt+Shift+N]). * "nicklist"-Bar sollte versteckt werden: `/bar hide nicklist`
* deaktiviere "buflist": `/buflist disable` (Taste: kbd:[Alt+Shift+B]).
* die Sekundenanzeigen in der Statusbar sollte deaktiviert werden: * die Sekundenanzeigen in der Statusbar sollte deaktiviert werden:
`+/set weechat.look.item_time_format "%H:%M"+` (dies ist die Standardeinstellung) `+/set weechat.look.item_time_format "%H:%M"+` (dies ist die Standardeinstellung)
* die Echtzeit Rechtschreibkorrektur sollte deaktiviert werden (falls sie aktiviert wurde): * die Echtzeit Rechtschreibkorrektur sollte deaktiviert werden (falls sie aktiviert wurde):
@@ -1185,19 +1294,14 @@ Deaktiviere die automatische Antwort für alle CTCP Anfragen:
---- ----
/set irc.ctcp.clientinfo "" /set irc.ctcp.clientinfo ""
/set irc.ctcp.finger ""
/set irc.ctcp.source "" /set irc.ctcp.source ""
/set irc.ctcp.time "" /set irc.ctcp.time ""
/set irc.ctcp.userinfo ""
/set irc.ctcp.version "" /set irc.ctcp.version ""
/set irc.ctcp.ping "" /set irc.ctcp.ping ""
---- ----
Mit WeeChat < 4.1.0 wurden andere CTCP-Anfragen standardmäßig beantwortet und müssen ebenfalls deaktiviert werden:
----
/set irc.ctcp.finger ""
/set irc.ctcp.userinfo ""
----
Entferne und deaktiviere das automatische Ausführen der "xfer"-Erweiterung, die beispielsweise für "IRC DCC" verantwortlich ist: Entferne und deaktiviere das automatische Ausführen der "xfer"-Erweiterung, die beispielsweise für "IRC DCC" verantwortlich ist:
---- ----
@@ -1209,7 +1313,7 @@ Definiere eine Passphrase und nutze ausschließlich geschützte Daten wann immer
es möglich ist, wie z.B. bei Passwörtern: siehe `/help secure` und nutze `/help` es möglich ist, wie z.B. bei Passwörtern: siehe `/help secure` und nutze `/help`
bei der entsprechenden Option (falls man geschützte Daten nutzen kann, wird es bei der entsprechenden Option (falls man geschützte Daten nutzen kann, wird es
im Hilfstext erwähnt). im Hilfstext erwähnt).
Siehe auch link:weechat_user.de.html#secured_data[Benutzerhandbuch / sensible Daten ^↗^^]. Siehe auch link:weechat_user.de.html#secured_data[Benutzerhandbuch / sensible Daten ^↗^,window=_blank].
Beispiel: Beispiel:
@@ -1230,42 +1334,16 @@ Ihrer Passphrase verschlüsselten Kennwörter enthält.
Einige andere Dateien enthalten möglicherweise vertrauliche Informationen wie Einige andere Dateien enthalten möglicherweise vertrauliche Informationen wie
Kennwörter (sofern sie nicht mit dem Befehl `/secure` in _sec.conf_ gesichert werden). Kennwörter (sofern sie nicht mit dem Befehl `/secure` in _sec.conf_ gesichert werden).
Siehe link:weechat_user.de.html#files_and_directories[Benutzerhandbuch / Dateien und Verzeichnisse ^↗^^] Siehe link:weechat_user.de.html#files_and_directories[Benutzerhandbuch / Dateien und Verzeichnisse ^↗^,window=_blank]
für weitere Informationen über Konfigurationsdateien. für weitere Informationen über Konfigurationsdateien.
[[move_to_another_device]]
=== Ich möchte mein WeeChat auf ein anderes Gerät verschieben und meine Konfiguration behalten. Was muss ich kopieren?
Überprüfen Sie zunächst die von WeeChat verwendeten Verzeichnisse mit diesem Befehl: `/debug dirs`. +
Die Verzeichnisse home/config und home/data müssen kopiert werden (alle Dateien und Unterverzeichnisse).
Falls beispielsweise XDG-Verzeichnisse verwendet werden (Standard bei WeeChat ≥ 3.2), sollten die
Verzeichnisse `$HOME/.config/weechat` und `$HOME/.local/share/weechat` lauten. +
Sollte ein einzelnes Verzeichnis verwenden werden (Standard bei WeeChat < 3.2), sollte das Verzeichnis
`$HOME/.weechat` lauuten.
[IMPORTANT]
Die WeeChat-Version auf dem Zielgerät muss größer oder gleich der Version sein des Ausganggerätes. +
Ein Downgrade der WeeChat-Konfiguration wird *NICHT UNTERSTÜTZT* und kann zu Schäden führen und ein
unbrauchbares WeeChat verursachen.
Schritte:
. Weechat beenden: `/quit` (oder `/upgrade -quit`, falls eine Sitzung fortgesetzt werden soll,
einschließlich des Inhalts aller Buffer).
. Kopieren Sie alle Verzeichnisse, Unterverzeichnisse und Dateien auf das neue Gerät und behalten Sie die
Namen und Berechtigungen bei.
. Optional: Kopieren Sie alle Dateien außerhalb dieser Verzeichnisse, die auf Ihre Konfiguration verweisen
(es wird nicht empfohlen, Dateien außerhalb von WeeChat-Verzeichnissen zu verwenden).
. WeeChat auf dem neuen Gerät starten: `weechat` (oder `weechat --upgrade`, falls die Sitzung gesichert wurde).
[[development]] [[development]]
== Entwicklung == Entwicklung
[[bug_task_patch]] [[bug_task_patch]]
=== Was kann ich machen, falls ich einen Fehler gefunden habe, mich nach neuen Funktionen erkundigen oder Patches einsenden möchte? === Was kann ich machen, falls ich einen Fehler gefunden habe, mich nach neuen Funktionen erkundigen oder Patches einsenden möchte?
siehe https://weechat.org/about/support/[this page ^↗^^]. siehe https://weechat.org/about/support/[this page ^↗^,window=_blank].
[[gdb_error_threads]] [[gdb_error_threads]]
=== Wenn man WeeChat in gdb startet, kann ein Thread-Fehler auftreten. Was beudeutet das? === Wenn man WeeChat in gdb startet, kann ein Thread-Fehler auftreten. Was beudeutet das?
@@ -1304,10 +1382,10 @@ Das Gleiche gilt für Systeme, zu denen wir keinen Zugang haben.
Es gibt einiges zu tun - z.B. testen, programmieren, dokumentieren, ... Es gibt einiges zu tun - z.B. testen, programmieren, dokumentieren, ...
Bitte kontaktieren Sie uns per IRC oder Mail, siehe Bitte kontaktieren Sie uns per IRC oder Mail, siehe
https://weechat.org/about/support/[support page ^↗^^]. https://weechat.org/about/support/[support page ^↗^,window=_blank].
[[donate]] [[donate]]
=== Kann ich Geld oder anderes an die WeeChat Entwickler spenden? === Kann ich Geld oder anderes an die WeeChat Entwickler spenden?
Sie können uns Geld spenden, um die Entwicklung zu unterstützen. Sie können uns Geld spenden, um die Entwicklung zu unterstützen.
Details dazu, unter https://weechat.org/donate/[donation page ^↗^^]. Details dazu, unter https://weechat.org/donate/[donation page ^↗^,window=_blank].
+8 -3
View File
@@ -2,7 +2,11 @@
:author: Sébastien Helleu :author: Sébastien Helleu
:email: flashcode@flashtux.org :email: flashcode@flashtux.org
:lang: de :lang: de
:toc: left
:toc-title: Inhaltsverzeichnis :toc-title: Inhaltsverzeichnis
:sectnums:
:docinfo1:
Übersetzer: Übersetzer:
@@ -10,6 +14,7 @@
* Juergen Descher <jhdl@gmx.net>, 2009 * Juergen Descher <jhdl@gmx.net>, 2009
* Nils Görs <weechatter@arcor.de>, 2009-2018 * Nils Görs <weechatter@arcor.de>, 2009-2018
[[start]] [[start]]
== Start von WeeChat == Start von WeeChat
@@ -118,7 +123,7 @@ Um eine Verbindung zu einem IRC Server herzustellen, wird der
`/server` Befehl verwendet. Beispiel: `/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. In diesem Beispiel ist `libera` der interne, von Weechat genutzte Servername.
@@ -437,13 +442,13 @@ Zeige eine liste aller verfügbaren Skripten:
---- ----
Eine Liste von Skripten ist in WeeChat mittels `/script` oder auf Eine Liste von Skripten ist in WeeChat mittels `/script` oder auf
https://weechat.org/scripts/[this page ^↗^^] verfügbar. https://weechat.org/scripts/[this page ^↗^,window=_blank] verfügbar.
[[more_doc]] [[more_doc]]
== Weitere Dokumentation == Weitere Dokumentation
WeeChat kann nun verwendet werden und lesen Sie WeeChat kann nun verwendet werden und lesen Sie
https://weechat.org/doc/[FAQ/documentation ^↗^^] https://weechat.org/doc/[FAQ/documentation ^↗^,window=_blank]
falls Sie weitere Fragen haben. falls Sie weitere Fragen haben.
Viel Spass mit WeeChat! Viel Spass mit WeeChat!
+330 -27
View File
@@ -2,16 +2,24 @@
:author: Sébastien Helleu :author: Sébastien Helleu
:email: flashcode@flashtux.org :email: flashcode@flashtux.org
:lang: de :lang: de
:toc: left
:toclevels: 4
:toc-title: Inhaltsverzeichnis :toc-title: Inhaltsverzeichnis
:sectnums:
:sectnumlevels: 3
:docinfo1:
Übersetzer: Übersetzer:
* Nils Görs <weechatter@arcor.de>, 2010-2016 * Nils Görs <weechatter@arcor.de>, 2010-2016
Diese Anleitung beschreibt den WeeChat Chat Client und ist Teil von WeeChat. Diese Anleitung beschreibt den WeeChat Chat Client und ist Teil von WeeChat.
Die neueste Version dieses Dokuments finden Sie unter Die neueste Version dieses Dokuments finden Sie unter
https://weechat.org/doc/[this page ^↗^^]. https://weechat.org/doc/[this page ^↗^,window=_blank].
[[introduction]] [[introduction]]
== Einleitung == 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. + dafür gibt es explizit eine API Funktion, andernfalls kann WeeChat abstürzen. +
Wenn etwas in einem Hintergrundprozess ausgeführt werden soll, kann die Funktion Wenn etwas in einem Hintergrundprozess ausgeführt werden soll, kann die Funktion
`+hook_process+` genutzt werden. Siehe Beispiele im Kapitel <<hook_process,Hintergrundprozesse>> `+hook_process+` genutzt werden. Siehe Beispiele im Kapitel <<hook_process,Hintergrundprozesse>>
und die Dokumentation für die Funktion `+hook_process+` in link:weechat_plugin_api.en.html#_hook_process[WeeChat plugin API reference ^↗^^] (Englisch). und die Dokumentation für die Funktion `+hook_process+` in link:weechat_plugin_api.en.html#_hook_process[WeeChat plugin API reference ^↗^,window=_blank] (Englisch).
[[languages_specificities]] [[languages_specificities]]
=== Besonderheiten der einzelnen Skriptsprachen === 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` WeeChat definiert ein `weechat` Module welches mittels `import weechat`
importiert werden muss. + importiert werden muss. +
Ein Python-Stub für die WeeChat-API ist im Repository verfügbar: Ein Python-Stub für die WeeChat-API ist im Repository verfügbar:
https://raw.githubusercontent.com/weechat/weechat/master/src/plugins/python/weechat.pyi[weechat.pyi ^↗^^]. https://raw.githubusercontent.com/weechat/weechat/master/src/plugins/python/weechat.pyi[weechat.pyi ^↗^,window=_blank].
[[python_functions]] [[python_functions]]
===== Funktionen ===== Funktionen
@@ -111,7 +119,7 @@ Liste ist nicht vollständig):
Es wird empfohlen den Modifier `+irc_in2_yyy+` zu nutzen, da die empfangene Zeichenkette Es wird empfohlen den Modifier `+irc_in2_yyy+` zu nutzen, da die empfangene Zeichenkette
immer UTF-8 gültig ist. + immer UTF-8 gültig ist. +
siehe Funktion `+hook_modifier+` in der siehe Funktion `+hook_modifier+` in der
link:weechat_plugin_api.en.html#_hook_modifier[WeeChat Anleitung für API Erweiterung ^↗^^]. link:weechat_plugin_api.en.html#_hook_modifier[WeeChat Anleitung für API Erweiterung ^↗^,window=_blank].
| hook_signal | hook_signal
| xxx,irc_out_yyy + | xxx,irc_out_yyy +
@@ -126,7 +134,7 @@ Liste ist nicht vollständig):
Es wird empfohlen das Signal `+xxx,irc_out1_yyy+` zu nutzen, da die empfangene Zeichenkette Es wird empfohlen das Signal `+xxx,irc_out1_yyy+` zu nutzen, da die empfangene Zeichenkette
immer UTF-8 gültig ist. + immer UTF-8 gültig ist. +
siehe Funktion `+hook_signal+` in der siehe Funktion `+hook_signal+` in der
link:weechat_plugin_api.en.html#_hook_signal[WeeChat Anleitung für API Erweiterung ^↗^^]. link:weechat_plugin_api.en.html#_hook_signal[WeeChat Anleitung für API Erweiterung ^↗^,window=_blank].
| hook_process + | hook_process +
hook_process_hashtable hook_process_hashtable
@@ -136,6 +144,10 @@ Liste ist nicht vollständig):
|=== |===
Mit Python 2, das mittlerweile veraltet ist und nicht mehr verwendet werden sollte, ist die
Zeichenkette die an die Callbacks gesendet wird immer vom Typ `str` und kann deshalb bei den
oben genannten Fällen, ungültige UTF-8 Daten enthalten.
[[language_perl]] [[language_perl]]
==== Perl ==== Perl
@@ -193,21 +205,11 @@ Funktionen werden aufgerufen mittels `+weechat.xxx(arg1, arg2, ...)+`.
Funktionen werden aufgerufen mittels `+weechat::xxx arg1 arg2 ...+`. Funktionen werden aufgerufen mittels `+weechat::xxx arg1 arg2 ...+`.
[[tcl_null]] Da Tcl nur String-Typen hat, gibt es keinen Null-Typ, der als Argument übergeben werden kann
===== Nullwerte wenn eine Funktion Nullwerte akzeptiert. Um dies zu überwinden, können Sie die Konstante
`$::weechat::WEECHAT_NULL` verwenden, das als Nullwert fungiert. Diese Konstante ist definiert
Da Tcl nur String-Typen nutzt, gibt es keinen Null-Typ, der als Argument übergeben als `\uFFFF\uFFFF\uFFFFWEECHAT_NULL\uFFFF\uFFFF\uFFFF`, es ist somit sehr unwahrscheinlich
werden kann wenn eine Funktion Nullwerte akzeptiert, oder als Argument in einem das es ungewollt verwendet wird.
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]] [[language_guile]]
==== Guile (Scheme) ==== Guile (Scheme)
@@ -388,7 +390,7 @@ ein Link in das entsprechende _autoload_ Verzeichnis erzeugt.
Die Skripten API ist nahezu identisch mit der API der C Erweiterung. Die Skripten API ist nahezu identisch mit der API der C Erweiterung.
Um einen Überblick über alle API Funktionen (Prototyp, Argumente, Um einen Überblick über alle API Funktionen (Prototyp, Argumente,
Rückgabe werte, Beispiele) zu erhalten werfen Sie einen Blick in Rückgabe werte, Beispiele) zu erhalten werfen Sie einen Blick in
die link:weechat_plugin_api.en.html[WeeChat Plugin API Reference ^↗^^] (Englisch). die link:weechat_plugin_api.en.html[WeeChat Plugin API Reference ^↗^,window=_blank] (Englisch).
Es ist wichtig das man zwischen einer _Erweiterung_ und einem _Skript_ Es ist wichtig das man zwischen einer _Erweiterung_ und einem _Skript_
unterscheidet: Eine _Erweiterung_ ist eine Binärdatei die kompiliert wurde unterscheidet: Eine _Erweiterung_ ist eine Binärdatei die kompiliert wurde
und mittels `/plugin` geladen wird. Ein _Skript_ ist eine Textdatei welche und mittels `/plugin` geladen wird. Ein _Skript_ ist eine Textdatei welche
@@ -557,21 +559,322 @@ weechat_hook_timer(1000, 0, 1, $timer_cb, 'test');
== Skript API == Skript API
Um weiterführende Informationen zu den API Funktionen zu erhalten Um weiterführende Informationen zu den API Funktionen zu erhalten
lesen Sie bitte link:weechat_plugin_api.en.html[WeeChat Plugin API Reference ^↗^^] (Englisch). lesen Sie bitte link:weechat_plugin_api.en.html[WeeChat Plugin API Reference ^↗^,window=_blank] (Englisch).
[[script_api_functions]] [[script_api_functions]]
=== Funktionen === Funktionen
Liste der Skript API Funktionen: Liste der Skript API Funktionen:
include::{autogendir}/autogen_scripting_functions.de.adoc[tag=functions] [width="100%",cols="1,5",options="header"]
|===
| Kategorie | Funktionen
| Allgemein
| register
| Erweiterungen
| plugin_get_name
| Strings
| charset_set +
iconv_to_internal +
iconv_from_internal +
gettext +
ngettext +
strlen_screen +
string_match +
string_match_list +
string_has_highlight +
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 +
string_input_for_buffer +
string_eval_expression +
string_eval_path_home
| Verzeichnisse
| mkdir_home +
mkdir +
mkdir_parents
| sortierte Listen
| list_new +
list_add +
list_search +
list_search_pos +
list_casesearch +
list_casesearch_pos +
list_get +
list_set +
list_next +
list_prev +
list_string +
list_size +
list_remove +
list_remove_all +
list_free
| Konfigurationsdatei
| config_new +
config_new_section +
config_search_section +
config_new_option +
config_search_option +
config_string_to_boolean +
config_option_reset +
config_option_set +
config_option_set_null +
config_option_unset +
config_option_rename +
config_option_is_null +
config_option_default_is_null +
config_boolean +
config_boolean_default +
config_integer +
config_integer_default +
config_string +
config_string_default +
config_color +
config_color_default +
config_write_option +
config_write_line +
config_write +
config_read +
config_reload +
config_option_free +
config_section_free_options +
config_section_free +
config_free +
config_get +
config_get_plugin +
config_is_set_plugin +
config_set_plugin +
config_set_desc_plugin +
config_unset_plugin
| Tastenbelegung
| key_bind +
key_unbind
| 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 +
hook_command_run +
hook_timer +
hook_fd +
hook_process +
hook_process_hashtable +
hook_connect +
hook_line +
hook_print +
hook_signal +
hook_signal_send +
hook_hsignal +
hook_hsignal_send +
hook_config +
hook_completion +
hook_modifier +
hook_modifier_exec +
hook_info +
hook_info_hashtable +
hook_infolist +
hook_focus +
hook_set +
unhook +
unhook_all
| Buffer
| buffer_new +
buffer_new_props +
current_buffer +
buffer_search +
buffer_search_main +
buffer_clear +
buffer_close +
buffer_merge +
buffer_unmerge +
buffer_get_integer +
buffer_get_string +
buffer_get_pointer +
buffer_set +
buffer_string_replace_local_var +
buffer_match_list
| Fenster
| current_window +
window_search_with_buffer +
window_get_integer +
window_get_string +
window_get_pointer +
window_set_title
| Nickliste
| nicklist_add_group +
nicklist_search_group +
nicklist_add_nick +
nicklist_search_nick +
nicklist_remove_group +
nicklist_remove_nick +
nicklist_remove_all +
nicklist_group_get_integer +
nicklist_group_get_string +
nicklist_group_get_pointer +
nicklist_group_set +
nicklist_nick_get_integer +
nicklist_nick_get_string +
nicklist_nick_get_pointer +
nicklist_nick_set
| Bars
| bar_item_search +
bar_item_new +
bar_item_update +
bar_item_remove +
bar_search +
bar_new +
bar_set +
bar_update +
bar_remove
| Befehle
| command +
command_options
| Vervollständigung
| completion_new +
completion_search +
completion_get_string +
completion_list_add +
completion_free
| Informationen
| info_get +
info_get_hashtable
| Infolisten
| infolist_new +
infolist_new_item +
infolist_new_var_integer +
infolist_new_var_string +
infolist_new_var_pointer +
infolist_new_var_time +
infolist_get +
infolist_next +
infolist_prev +
infolist_reset_item_cursor +
infolist_search_var +
infolist_fields +
infolist_integer +
infolist_string +
infolist_pointer +
infolist_time +
infolist_free
| hdata
| hdata_get +
hdata_get_var_offset +
hdata_get_var_type_string +
hdata_get_var_array_size +
hdata_get_var_array_size_string +
hdata_get_var_hdata +
hdata_get_list +
hdata_check_pointer +
hdata_move +
hdata_search +
hdata_char +
hdata_integer +
hdata_long +
hdata_string +
hdata_pointer +
hdata_time +
hdata_hashtable +
hdata_compare +
hdata_update +
hdata_get_string
| Upgrade
| upgrade_new +
upgrade_write_object +
upgrade_read +
upgrade_close
|===
[[script_api_constants]] [[script_api_constants]]
=== Konstanten === Konstanten
Liste der Konstanten in Skript API: Liste der Konstanten in Skript API:
include::{autogendir}/autogen_scripting_constants.de.adoc[tag=constants] [width="100%",cols="1,5",options="header"]
|===
| Kategorie | Konstanten
| return codes
| `WEECHAT_RC_OK` (integer) +
`WEECHAT_RC_OK_EAT` (integer) +
`WEECHAT_RC_ERROR` (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) +
`WEECHAT_CONFIG_WRITE_ERROR` (integer) +
`WEECHAT_CONFIG_WRITE_MEMORY_ERROR` (integer) +
`WEECHAT_CONFIG_OPTION_SET_OK_CHANGED` (integer) +
`WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE` (integer) +
`WEECHAT_CONFIG_OPTION_SET_ERROR` (integer) +
`WEECHAT_CONFIG_OPTION_SET_OPTION_NOT_FOUND` (integer) +
`WEECHAT_CONFIG_OPTION_UNSET_OK_NO_RESET` (integer) +
`WEECHAT_CONFIG_OPTION_UNSET_OK_RESET` (integer) +
`WEECHAT_CONFIG_OPTION_UNSET_OK_REMOVED` (integer) +
`WEECHAT_CONFIG_OPTION_UNSET_ERROR` (integer)
| sortierte Listen
| `WEECHAT_LIST_POS_SORT` (string) +
`WEECHAT_LIST_POS_BEGINNING` (string) +
`WEECHAT_LIST_POS_END` (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) +
`WEECHAT_HOOK_PROCESS_ERROR` (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) +
`WEECHAT_HOOK_CONNECT_PROXY_ERROR` (integer) +
`WEECHAT_HOOK_CONNECT_LOCAL_HOSTNAME_ERROR` (integer) +
`WEECHAT_HOOK_CONNECT_GNUTLS_INIT_ERROR` (integer) +
`WEECHAT_HOOK_CONNECT_GNUTLS_HANDSHAKE_ERROR` (integer) +
`WEECHAT_HOOK_CONNECT_MEMORY_ERROR` (integer) +
`WEECHAT_HOOK_CONNECT_TIMEOUT` (integer) +
`WEECHAT_HOOK_CONNECT_SOCKET_ERROR` (integer)
| hook Signal
| `WEECHAT_HOOK_SIGNAL_STRING` (string) +
`WEECHAT_HOOK_SIGNAL_INT` (string) +
`WEECHAT_HOOK_SIGNAL_POINTER` (string)
|===
[[common_tasks]] [[common_tasks]]
== Gemeinschaftsaufgabe == Gemeinschaftsaufgabe
@@ -579,7 +882,7 @@ include::{autogendir}/autogen_scripting_constants.de.adoc[tag=constants]
Dieses Kapitel beinhaltet einige Aufgaben mit Lösungsbeispielen. Dieses Kapitel beinhaltet einige Aufgaben mit Lösungsbeispielen.
Die Skript API wird dabei nur sehr oberflächlich besprochen.Um eine vollständige Die Skript API wird dabei nur sehr oberflächlich besprochen.Um eine vollständige
Übersicht aller Befehle zu erhalten nutzen Sie bitte die Übersicht aller Befehle zu erhalten nutzen Sie bitte die
link:weechat_plugin_api.en.html[WeeChat Plugin API Reference ^↗^^] (Englisch). link:weechat_plugin_api.en.html[WeeChat Plugin API Reference ^↗^,window=_blank] (Englisch).
[[buffers]] [[buffers]]
=== Buffer === Buffer
@@ -857,7 +1160,7 @@ weechat.hook_process("url:https://weechat.org/dev/info/stable/",
[TIP] [TIP]
Alle verfügbaren Informationen über WeeChat findet man unter Alle verfügbaren Informationen über WeeChat findet man unter
https://weechat.org/dev/info/[this page ^↗^^]. https://weechat.org/dev/info/[this page ^↗^,window=_blank].
Beispiel eines URL Transfers, mit zusätzliche Optionen: Es wird das neuste Beispiel eines URL Transfers, mit zusätzliche Optionen: Es wird das neuste
WeeChat Entwicklerpaket in die Datei _/tmp/weechat-devel.tar.gz_ gesichert: WeeChat Entwicklerpaket in die Datei _/tmp/weechat-devel.tar.gz_ gesichert:
@@ -876,7 +1179,7 @@ weechat.hook_process_hashtable("url:https://weechat.org/files/src/weechat-devel.
Für weitere Informationen zum URL Transfer und verfügbare Optionen, siehe Funktionen Für weitere Informationen zum URL Transfer und verfügbare Optionen, siehe Funktionen
`+hook_process+` und `+hook_process_hashtable+` in `+hook_process+` und `+hook_process_hashtable+` in
link:weechat_plugin_api.en.html#_hook_process[WeeChat plugin API reference ^↗^^] (Englisch). link:weechat_plugin_api.en.html#_hook_process[WeeChat plugin API reference ^↗^,window=_blank] (Englisch).
[[config_options]] [[config_options]]
=== Konfiguration / Optionen === Konfiguration / Optionen
+868 -1186
View File
File diff suppressed because it is too large Load Diff
+851
View File
@@ -0,0 +1,851 @@
#!/usr/bin/env python3
#
# Copyright (C) 2008-2022 Sébastien Helleu <flashcode@flashtux.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# 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'
# pylint: disable=consider-using-with
self._file = open(self.filename_tmp, 'w', encoding='utf-8')
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',
'',
)
+2 -2
View File
@@ -1,6 +1,6 @@
<!-- <!--
Custom styles for Asciidoctor Custom styles for Asciidoctor
Copyright (C) 2016-2024 Sébastien Helleu <flashcode@flashtux.org> Copyright (C) 2016-2022 Sébastien Helleu <flashcode@flashtux.org>
--> -->
<style> <style>
@@ -42,7 +42,7 @@
/* light theme */ /* light theme */
:root { :root {
color-scheme: light; color-scheme: light;
--body-bg-color: #fff; --body-bg-color: ##fff;
--body-color: #353535; --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"; --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; --link-color: #3d6baf;
+151
View File
@@ -0,0 +1,151 @@
#
# Copyright (C) 2003-2022 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-2022 Sébastien Helleu <flashcode@flashtux.org>
# Copyright (C) 2006 Julien Louis <ptitlouis@sysif.net>
#
# This file is part of WeeChat, the extensible chat client.
#
# 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,204 @@
//
// 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_channels_autojoin | channels automatically joined on the current server (option "autojoin")
| irc | irc_ignores_numbers | numbers for defined ignores
| irc | irc_modelist_masks | modelist masks of current IRC channel; required argument: modelist mode
| 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_add_arguments | arguments for command that adds a trigger: trigger name, hooks, hook arguments, hook conditions, hook regex, hook command, hook return code, post actions
| trigger | trigger_hook_arguments | default arguments for a hook
| trigger | trigger_hook_command | default command for a hook
| 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 | custom_bar_item_add_arguments | arguments for command that adds a custom bar item: item name, conditions, content
| weechat | custom_bar_item_conditions | conditions for custom bar item
| weechat | custom_bar_item_contents | contents for custom bar item
| weechat | custom_bar_items_names | names of custom bar items
| weechat | env_value | value of an environment variable
| weechat | env_vars | environment variables
| 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[]
+166
View File
@@ -0,0 +1,166 @@
//
// 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 | uptime_current | WeeChat uptime for the current process only (upgrades with /upgrade command are ignored) (format: "days:hh:mm:ss") | "days" (number of days) or "seconds" (number of seconds) (optional)
| weechat | version | WeeChat version | -
| weechat | version_git | WeeChat git version (output of command "git describe" for a development version only, empty for a stable release) | -
| 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
+1 -1
View File
@@ -100,7 +100,7 @@ $HOME/.local/share/weechat/weechat.log::
WeeChat is written by Sébastien Helleu and contributors (complete list is in WeeChat is written by Sébastien Helleu and contributors (complete list is in
the AUTHORS.adoc file). the AUTHORS.adoc file).
Copyright (C) 2003-2024 {author} Copyright (C) 2003-2022 {author}
WeeChat is free software; you can redistribute it and/or modify WeeChat is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
+383 -414
View File
@@ -2,11 +2,17 @@
:author: Sébastien Helleu :author: Sébastien Helleu
:email: flashcode@flashtux.org :email: flashcode@flashtux.org
:lang: en :lang: en
:toc: left
:toclevels: 3
:sectnums:
:docinfo1:
This manual documents WeeChat chat client, it is part of WeeChat. This manual documents WeeChat chat client, it is part of WeeChat.
Latest version of this document can be found on Latest version of this document can be found on
https://weechat.org/doc/[this page ^↗^^]. https://weechat.org/doc/[this page ^↗^,window=_blank].
[[introduction]] [[introduction]]
== Introduction == Introduction
@@ -26,7 +32,7 @@ This manual documents WeeChat internals:
== Repositories == Repositories
WeeChat repositories are on GitHub organization WeeChat repositories are on GitHub organization
https://github.com/weechat[weechat ^↗^^]. https://github.com/weechat[weechat ^↗^,window=_blank].
List of repositories: List of repositories:
@@ -37,7 +43,7 @@ scripts::
the _official_ scripts submitted on weechat.org the _official_ scripts submitted on weechat.org
weechat.org:: weechat.org::
source of https://weechat.org/[WeeChat website ^↗^^] source of https://weechat.org/[WeeChat website ^↗^,window=_blank]
weercd:: weercd::
IRC testing server IRC testing server
@@ -112,97 +118,94 @@ WeeChat "core" is located in following directories:
[width="100%",cols="2m,3",options="header"] [width="100%",cols="2m,3",options="header"]
|=== |===
| Path/file | Description | Path/file | Description
| core/ | Core functions: entry point, internal structures. | core/ | Core functions: entry point, internal structures.
|    core-arraylist.c | Array lists. |    wee-arraylist.c | Array lists.
|    core-backtrace.c | Display a backtrace after a crash. |    wee-backtrace.c | Display a backtrace after a crash.
|    core-calc.c | Calculate result of expressions. |    wee-calc.c | Calculate result of expressions.
|    core-command.c | WeeChat core commands. |    wee-command.c | WeeChat core commands.
|    core-completion.c | Default completions. |    wee-completion.c | Default completions.
|    core-config-file.c | Configuration file management. |    wee-config-file.c | Configuration file management.
|    core-config.c | Configuration options for WeeChat core (file weechat.conf). |    wee-config.c | Configuration options for WeeChat core (file weechat.conf).
|    core-crypto.c | Cryptographic functions. |    wee-crypto.c | Cryptographic functions.
|    core-debug.c | Some debug functions. |    wee-debug.c | Some debug functions.
|    core-doc.c | Build of files for documentation. |    wee-dir.c | Directory/file functions.
|    core-dir.c | Directory/file functions. |    wee-eval.c | Evaluation of expressions with references to internal vars.
|    core-eval.c | Evaluation of expressions with references to internal vars. |    wee-hashtable.c | Hashtables.
|    core-hashtable.c | Hashtables. |    wee-hdata.c | Hdata (direct access to data using hashtables).
|    core-hdata.c | Hdata (direct access to data using hashtables). |    wee-hook.c | Hooks.
|    core-hook.c | Hooks. |    wee-infolist.c | Infolists (lists with objects data).
|    core-infolist.c | Infolists (lists with objects data). |    wee-input.c | Input of commands/text.
|    core-input.c | Input of commands/text. |    wee-list.c | Sorted lists.
|    core-list.c | Sorted lists. |    wee-log.c | Write to WeeChat log file (weechat.log).
|    core-log.c | Write to WeeChat log file (weechat.log). |    wee-network.c | Network functions (connection to servers/proxies).
|    core-network.c | Network functions (connection to servers/proxies). |    wee-proxy.c | Proxy management.
|    core-proxy.c | Proxy management. |    wee-secure.c | Secured data functions.
|    core-secure.c | Secured data functions. |    wee-secure-buffer.c | Secured data buffer.
|    core-secure-buffer.c | Secured data buffer. |    wee-secure-config.c | Secured data options (file sec.conf).
|    core-secure-config.c | Secured data options (file sec.conf). |    wee-signal.c | Signal functions.
|    core-signal.c | Signal functions. |    wee-string.c | Functions on strings.
|    core-string.c | Functions on strings. |    wee-upgrade-file.c | Internal upgrade system.
|    core-sys.c | System functions. |    wee-upgrade.c | Upgrade for WeeChat core (buffers, lines, history, ...).
|    core-upgrade-file.c | Internal upgrade system. |    wee-url.c | URL transfer (using libcurl).
|    core-upgrade.c | Upgrade for WeeChat core (buffers, lines, history, ...). |    wee-utf8.c | UTF-8 functions.
|    core-url.c | URL transfer (using libcurl). |    wee-util.c | Some other functions.
|    core-utf8.c | UTF-8 functions. |    wee-version.c | Functions for WeeChat version.
|    core-util.c | Some other functions. |    weechat.c | Main functions: command line options, startup.
|    core-version.c | Functions for WeeChat version. |    hook/ | Hook functions.
|    weechat.c | Main functions: command line options, startup. |       wee-hook-command-run.c | Hook "command_run".
|    hook/ | Hook functions. |       wee-hook-command.c | Hook "command".
|       hook-command-run.c | Hook "command_run". |       wee-hook-completion.c | Hook "completion".
|       hook-command.c | Hook "command". |       wee-hook-config.c | Hook "config".
|       hook-completion.c | Hook "completion". |       wee-hook-connect.c | Hook "connect".
|       hook-config.c | Hook "config". |       wee-hook-fd.c | Hook "fd".
|       hook-connect.c | Hook "connect". |       wee-hook-focus.c | Hook "focus".
|       hook-fd.c | Hook "fd". |       wee-hook-hdata.c | Hook "hdata".
|       hook-focus.c | Hook "focus". |       wee-hook-hsignal.c | Hook "hsignal".
|       hook-hdata.c | Hook "hdata". |       wee-hook-info-hashtable.c | Hook "info_hashtable".
|       hook-hsignal.c | Hook "hsignal". |       wee-hook-info.c | Hook "info".
|       hook-info-hashtable.c | Hook "info_hashtable". |       wee-hook-infolist.c | Hook "infolist".
|       hook-info.c | Hook "info". |       wee-hook-line.c | Hook "line".
|       hook-infolist.c | Hook "infolist". |       wee-hook-modifier.c | Hook "modifier".
|       hook-line.c | Hook "line". |       wee-hook-print.c | Hook "print".
|       hook-modifier.c | Hook "modifier". |       wee-hook-process.c | Hook "process".
|       hook-print.c | Hook "print". |       wee-hook-signal.c | Hook "signal".
|       hook-process.c | Hook "process". |       wee-hook-timer.c | Hook "timer".
|       hook-signal.c | Hook "signal". | gui/ | Functions for buffers, windows, ... (used by all interfaces).
|       hook-timer.c | Hook "timer". |    gui-bar-item.c | Bar items.
|       hook-url.c | Hook "url". |    gui-bar-window.c | Bar windows.
| gui/ | Functions for buffers, windows, ... (used by all interfaces). |    gui-bar.c | Bars.
|    gui-bar-item.c | Bar items. |    gui-buffer.c | Buffers.
|    gui-bar-window.c | Bar windows. |    gui-chat.c | Chat functions (display message, ...).
|    gui-bar.c | Bars. |    gui-color.c | Color functions.
|    gui-buffer.c | Buffers. |    gui-completion.c | Completion on command line.
|    gui-chat.c | Chat functions (display message, ...). |    gui-cursor.c | Cursor mode (free movement of cursor).
|    gui-color.c | Color functions. |    gui-filter.c | Filters.
|    gui-completion.c | Completion on command line. |    gui-focus.c | Functions about focus (for cursor mode and mouse).
|    gui-cursor.c | Cursor mode (free movement of cursor). |    gui-history.c | Commands/text saved in buffers.
|    gui-filter.c | Filters. |    gui-hotlist.c | Hotlist management (list of buffers with activity).
|    gui-focus.c | Functions about focus (for cursor mode and mouse). |    gui-input.c | Input functions (input bar).
|    gui-history.c | Commands/text saved in buffers. |    gui-key.c | Keyboard functions.
|    gui-hotlist.c | Hotlist management (list of buffers with activity). |    gui-layout.c | Layout.
|    gui-input.c | Input functions (input bar). |    gui-line.c | Lines in buffers.
|    gui-key.c | Keyboard functions. |    gui-mouse.c | Mouse.
|    gui-layout.c | Layout. |    gui-nick.c | Nick functions.
|    gui-line.c | Lines in buffers. |    gui-nicklist.c | Nicklist in buffers.
|    gui-mouse.c | Mouse. |    gui-window.c | Windows.
|    gui-nick.c | Nick functions. |    curses/ | Curses interface.
|    gui-nicklist.c | Nicklist in buffers. |       gui-curses-bar-window.c | Display in bar windows.
|    gui-window.c | Windows. |       gui-curses-chat.c | Display in chat area (messages).
|    curses/ | Curses interface. |       gui-curses-color.c | Color functions.
|       gui-curses-bar-window.c | Display in bar windows. |       gui-curses-key.c | Keyboard functions (default keys, read of input).
|       gui-curses-chat.c | Display in chat area (messages). |       gui-curses-main.c | WeeChat main loop (waiting for keyboard/network events).
|       gui-curses-color.c | Color functions. |       gui-curses-mouse.c | Mouse.
|       gui-curses-key.c | Keyboard functions (default keys, read of input). |       gui-curses-term.c | Functions about terminal.
|       gui-curses-main.c | WeeChat main loop (waiting for keyboard/network events). |       gui-curses-window.c | Windows.
|       gui-curses-mouse.c | Mouse. |       headless/ | Headless mode (no interface).
|       gui-curses-term.c | Functions about terminal. |          main.c | Entry point for headless mode.
|       gui-curses-window.c | Windows. |          ncurses-fake.c | Fake ncurses library.
|       headless/ | Headless mode (no interface). |       normal/ | Curses interface.
|          main.c | Entry point for headless mode. |          main.c | Entry point for Curses interface.
|          ncurses-fake.c | Fake ncurses library.
|       normal/ | Curses interface.
|          main.c | Entry point for Curses interface.
|=== |===
[[sources_plugins]] [[sources_plugins]]
@@ -210,189 +213,177 @@ WeeChat "core" is located in following directories:
[width="100%",cols="2m,3",options="header"] [width="100%",cols="2m,3",options="header"]
|=== |===
| Path/file | Description | Path/file | Description
| plugins/ | Root of plugins. | plugins/ | Root of plugins.
|    plugin.c | Plugins management (load/unload dynamic C libraries). |    plugin.c | Plugins management (load/unload dynamic C libraries).
|    plugin-api.c | Extra functions for plugin API (wrapper around WeeChat core functions). |    plugin-api.c | Extra functions for plugin API (wrapper around WeeChat core functions).
|    plugin-api-info.c | Extra info/infolist functions for plugin API. |    plugin-api-info.c | Extra info/infolist functions for plugin API.
|    plugin-config.c | Plugin configuration options (file plugins.conf). |    plugin-config.c | Plugin configuration options (file plugins.conf).
|    plugin-script.c | Common functions used by script plugins. |    plugin-script.c | Common functions used by script plugins.
|    plugin-script-api.c | Script API functions: wrappers around some plugin API functions. |    plugin-script-api.c | Script API functions: wrappers around some plugin API functions.
|    plugin-script-config.c | Script plugin configuration options (files python.conf, perl.conf, ...). |    plugin-script-config.c | Script plugin configuration options (files python.conf, perl.conf, ...).
|    weechat-plugin.h | Header designed to be distributed with WeeChat plugins, in order to compile them. |    weechat-plugin.h | Header designed to be distributed with WeeChat plugins, in order to compile them.
|    alias/ | Alias plugin. |    alias/ | Alias plugin.
|       alias.c | Main alias functions. |       alias.c | Main alias functions.
|       alias-command.c | Alias commands. |       alias-command.c | Alias commands.
|       alias-completion.c | Alias completions. |       alias-completion.c | Alias completions.
|       alias-config.c | Alias config options (file alias.conf). |       alias-config.c | Alias config options (file alias.conf).
|       alias-info.c | Alias info/infolists/hdata. |       alias-info.c | Alias info/infolists/hdata.
|    spell/ | Spell checker plugin. |    spell/ | Spell checker plugin.
|       spell.c | Main spell checker functions. |       spell.c | Main spell checker functions.
|       spell-bar-item.c | Spell checker bar items. |       spell-bar-item.c | Spell checker bar items.
|       spell-command.c | Spell checker commands. |       spell-command.c | Spell checker commands.
|       spell-completion.c | Spell checker completions. |       spell-completion.c | Spell checker completions.
|       spell-config.c | Spell checker config options (file spell.conf). |       spell-config.c | Spell checker config options (file spell.conf).
|       spell-info.c | Spell checker info/infolists/hdata. |       spell-info.c | Spell checker info/infolists/hdata.
|       spell-speller.c | Spellers management. |       spell-speller.c | Spellers management.
|    buflist/ | Buflist plugin. |    buflist/ | Buflist plugin.
|       buflist.c | Main buflist functions. |       buflist.c | Main buflist functions.
|       buflist-bar-item.c | Buflist bar items. |       buflist-bar-item.c | Buflist bar items.
|       buflist-command.c | Buflist commands. |       buflist-command.c | Buflist commands.
|       buflist-completion.c | Buflist completions. |       buflist-config.c | Buflist config options (file buflist.conf).
|       buflist-config.c | Buflist config options (file buflist.conf). |       buflist-info.c | Buflist info/infolists/hdata.
|       buflist-info.c | Buflist info/infolists/hdata. |       buflist-mouse.c | Buflist mouse actions.
|       buflist-mouse.c | Buflist mouse actions. |    charset/ | Charset plugin.
|    charset/ | Charset plugin. |       charset.c | Charset functions.
|       charset.c | Charset functions. |    exec/ | Exec plugin.
|    exec/ | Exec plugin. |       exec.c | Main exec functions.
|       exec.c | Main exec functions. |       exec-buffer.c | Exec buffer.
|       exec-buffer.c | Exec buffer. |       exec-command.c | Exec commands.
|       exec-command.c | Exec commands. |       exec-completion.c | Exec completions.
|       exec-completion.c | Exec completions. |       exec-config.c | Exec config options (file exec.conf).
|       exec-config.c | Exec config options (file exec.conf). |    fifo/ | Fifo plugin.
|    fifo/ | Fifo plugin. |       fifo.c | Main fifo functions.
|       fifo.c | Main fifo functions. |       fifo-command.c | Fifo commands.
|       fifo-command.c | Fifo commands. |       fifo-config.c | Fifo config options (file fifo.conf).
|       fifo-config.c | Fifo config options (file fifo.conf). |       fifo-info.c | Fifo info/infolists/hdata.
|       fifo-info.c | Fifo info/infolists/hdata. |    fset/ | Fset plugin.
|    fset/ | Fset plugin. |       fset.c | Main fset functions.
|       fset.c | Main fset functions. |       fset-bar-item.c | Fset bar items.
|       fset-bar-item.c | Fset bar items. |       fset-buffer.c | Fset buffer.
|       fset-buffer.c | Fset buffer. |       fset-command.c | Fset commands.
|       fset-command.c | Fset commands. |       fset-completion.c | Fset completions.
|       fset-completion.c | Fset completions. |       fset-config.c | Fset config options (file fset.conf).
|       fset-config.c | Fset config options (file fset.conf). |       fset-info.c | Fset info/infolists/hdata.
|       fset-info.c | Fset info/infolists/hdata. |       fset-mouse.c | Fset mouse actions.
|       fset-mouse.c | Fset mouse actions. |       fset-option.c | Fset options management.
|       fset-option.c | Fset options management. |    guile/ | Guile (scheme) plugin.
|    guile/ | Guile (scheme) plugin. |       weechat-guile.c | Main guile functions (load/unload scripts, execute guile code).
|       weechat-guile.c | Main guile functions (load/unload scripts, execute guile code). |       weechat-guile-api.c | Guile scripting API functions.
|       weechat-guile-api.c | Guile scripting API functions. |    irc/ | IRC (Internet Relay Chat) plugin.
|    irc/ | IRC (Internet Relay Chat) plugin. |       irc.c | Main IRC functions.
|       irc.c | Main IRC functions. |       irc-bar-item.c | IRC bar items.
|       irc-bar-item.c | IRC bar items. |       irc-buffer.c | IRC buffers.
|       irc-batch.c | IRC batched events. |       irc-channel.c | IRC channels.
|       irc-buffer.c | IRC buffers. |       irc-color.c | IRC colors.
|       irc-channel.c | IRC channels. |       irc-command.c | IRC commands.
|       irc-color.c | IRC colors. |       irc-completion.c | IRC completions.
|       irc-command.c | IRC commands. |       irc-config.c | IRC config options (file irc.conf).
|       irc-completion.c | IRC completions. |       irc-ctcp.c | IRC CTCP.
|       irc-config.c | IRC config options (file irc.conf). |       irc-debug.c | IRC debug functions.
|       irc-ctcp.c | IRC CTCP. |       irc-ignore.c | IRC Ignore.
|       irc-debug.c | IRC debug functions. |       irc-info.c | IRC info/infolists/hdata.
|       irc-ignore.c | IRC Ignore. |       irc-input.c | Input of commands/text.
|       irc-info.c | IRC info/infolists/hdata. |       irc-join.c | Functions for list of channels to join.
|       irc-input.c | Input of commands/text. |       irc-message.c | Functions to manipulate IRC messages.
|       irc-join.c | Functions for list of channels to join. |       irc-mode.c | Functions about channel/nick modes.
|       irc-list.c | Buffer for reply to /list command. |       irc-modelist.c | IRC channel mode lists (+b, +e, +I, ...).
|       irc-message.c | Functions to manipulate IRC messages. |       irc-msgbuffer.c | Target buffer for IRC messages.
|       irc-mode.c | Functions about channel/nick modes. |       irc-nick.c | IRC nicks.
|       irc-modelist.c | IRC channel mode lists (+b, +e, +I, ...). |       irc-notify.c | IRC notify lists.
|       irc-msgbuffer.c | Target buffer for IRC messages. |       irc-protocol.c | IRC protocol (RFCs 1459/2810/2811/2812/2813).
|       irc-nick.c | IRC nicks. |       irc-raw.c | IRC raw buffer.
|       irc-notify.c | IRC notify lists. |       irc-redirect.c | Redirection of IRC command output.
|       irc-protocol.c | IRC protocol (RFCs 1459/2810/2811/2812/2813/7194). |       irc-sasl.c | SASL authentication with IRC server.
|       irc-raw.c | IRC raw buffer. |       irc-server.c | I/O communication with IRC server.
|       irc-redirect.c | Redirection of IRC command output. |       irc-tag.c | Functions to manipulate IRC message tags.
|       irc-sasl.c | SASL authentication with IRC server. |       irc-typing.c | Typing status.
|       irc-server.c | I/O communication with IRC server. |       irc-upgrade.c | Save/restore of IRC data when upgrading WeeChat.
|       irc-tag.c | Functions to manipulate IRC message tags. |    javascript/ | JavaScript plugin.
|       irc-typing.c | Typing status. |       weechat-js.cpp | Main JavaScript functions (load/unload scripts, execute JavaScript code).
|       irc-upgrade.c | Save/restore of IRC data when upgrading WeeChat. |       weechat-js-api.cpp | JavaScript scripting API functions.
|    javascript/ | JavaScript plugin. |       weechat-js-v8.cpp | JavaScript v8 functions.
|       weechat-js.cpp | Main JavaScript functions (load/unload scripts, execute JavaScript code). |    logger/ | Logger plugin.
|       weechat-js-api.cpp | JavaScript scripting API functions. |       logger.c | Main logger functions.
|       weechat-js-v8.cpp | JavaScript v8 functions. |       logger-backlog.c | Logger backlog functions.
|    logger/ | Logger plugin. |       logger-buffer.c | Logger buffer list management.
|       logger.c | Main logger functions. |       logger-command.c | Logger commands.
|       logger-backlog.c | Logger backlog functions. |       logger-config.c | Logger config options (file logger.conf).
|       logger-buffer.c | Logger buffer list management. |       logger-info.c | Logger info/infolists/hdata.
|       logger-command.c | Logger commands. |       logger-tail.c | Functions to get last lines of a file.
|       logger-config.c | Logger config options (file logger.conf). |    lua/ | Lua plugin.
|       logger-info.c | Logger info/infolists/hdata. |       weechat-lua.c | Main lua functions (load/unload scripts, execute lua code).
|       logger-tail.c | Functions to get last lines of a file. |       weechat-lua-api.c | Lua scripting API functions.
|    lua/ | Lua plugin. |    perl/ | Perl plugin.
|       weechat-lua.c | Main lua functions (load/unload scripts, execute lua code). |       weechat-perl.c | Main perl functions (load/unload scripts, execute perl code).
|       weechat-lua-api.c | Lua scripting API functions. |       weechat-perl-api.c | Perl scripting API functions.
|    perl/ | Perl plugin. |    php/ | PHP plugin.
|       weechat-perl.c | Main perl functions (load/unload scripts, execute perl code). |       weechat-php.c | Main PHP functions (load/unload scripts, execute PHP code).
|       weechat-perl-api.c | Perl scripting API functions. |       weechat-php-api.c | PHP scripting API functions.
|    php/ | PHP plugin. |    python/ | Python plugin.
|       weechat-php.c | Main PHP functions (load/unload scripts, execute PHP code). |       weechat-python.c | Main python functions (load/unload scripts, execute python code).
|       weechat-php-api.c | PHP scripting API functions. |       weechat-python-api.c | Python scripting API functions.
|    python/ | Python plugin. |    relay/ | Relay plugin (IRC proxy and relay for remote interfaces).
|       weechat-python.c | Main python functions (load/unload scripts, execute python code). |       relay.c | Main relay functions.
|       weechat-python-api.c | Python scripting API functions. |       relay-auth.c | Clients authentication.
|    relay/ | Relay plugin (IRC proxy and relay for remote interfaces). |       relay-buffer.c | Relay buffer.
|       relay.c | Main relay functions. |       relay-client.c | Clients of relay.
|       relay-auth.c | Clients authentication. |       relay-command.c | Relay commands.
|       relay-buffer.c | Relay buffer. |       relay-completion.c | Relay completions.
|       relay-client.c | Clients of relay. |       relay-config.c | Relay config options (file relay.conf).
|       relay-command.c | Relay commands. |       relay-info.c | Relay info/infolists/hdata.
|       relay-completion.c | Relay completions. |       relay-network.c | Network functions for relay.
|       relay-config.c | Relay config options (file relay.conf). |       relay-raw.c | Relay raw buffer.
|       relay-http.c | HTTP functions. |       relay-server.c | Relay server.
|       relay-info.c | Relay info/infolists/hdata. |       relay-upgrade.c | Save/restore of relay data when upgrading WeeChat.
|       relay-network.c | Network functions for relay. |       relay-websocket.c | WebSocket server functions (RFC 6455).
|       relay-raw.c | Relay raw buffer. |       irc/ | IRC proxy.
|       relay-remote.c | Relay remote. |          relay-irc.c | Main IRC proxy functions.
|       relay-server.c | Relay server. |       weechat/ | Relay for remote interfaces.
|       relay-upgrade.c | Save/restore of relay data when upgrading WeeChat. |          relay-weechat.c | Relay for remote interfaces (main functions).
|       relay-websocket.c | WebSocket server functions (RFC 6455). |          relay-weechat-msg.c | Send binary messages to clients.
|       api/ | Relay for remote interfaces (using HTTP REST API). |          relay-weechat-nicklist.c | Nicklist functions.
|          relay-api.c | Main API functions for HTTP REST API. |          relay-weechat-protocol.c | Read commands from clients.
|          relay-api-msg.c | Send JSON messages to clients. |    ruby/ | Ruby plugin.
|          relay-api-protocol.c | HTTP REST API protocol. |       weechat-ruby.c | Main ruby functions (load/unload scripts, execute ruby code).
|          remote/ | Relay remote functions, specific to API. |       weechat-ruby-api.c | Ruby scripting API functions.
|             relay-remote-event.c | Process events received from relay remote. |    script/ | Script manager.
|             relay-remote-network.c | Network functions for relay remote. |       script.c | Main functions for script manager.
|       irc/ | IRC proxy. |       script-action.c | Actions on scripts (load/unload, install/remove, ...).
|          relay-irc.c | Main IRC proxy functions. |       script-buffer.c | Buffer for script manager.
|       weechat/ | Relay for remote interfaces (using "weechat" binary protocol). |       script-command.c | Commands for script manager.
|          relay-weechat.c | Relay for remote interfaces (main functions). |       script-completion.c | Completions for script manager.
|          relay-weechat-msg.c | Send binary messages to clients. |       script-config.c | Config options for script manager (file script.conf).
|          relay-weechat-nicklist.c | Nicklist functions. |       script-info.c | Script manager info/infolists/hdata.
|          relay-weechat-protocol.c | Read commands from clients. |       script-mouse.c | Script mouse actions.
|    ruby/ | Ruby plugin. |       script-repo.c | Download and read repository file.
|       weechat-ruby.c | Main ruby functions (load/unload scripts, execute ruby code). |    tcl/ | Tcl plugin.
|       weechat-ruby-api.c | Ruby scripting API functions. |       weechat-tcl.c | Main tcl functions (load/unload scripts, execute tcl code).
|    script/ | Script manager. |       weechat-tcl-api.c | Tcl scripting API functions.
|       script.c | Main functions for script manager. |    trigger/ | Trigger plugin.
|       script-action.c | Actions on scripts (load/unload, install/remove, ...). |       trigger.c | Main trigger functions.
|       script-buffer.c | Buffer for script manager. |       trigger-buffer.c | Trigger buffer.
|       script-command.c | Commands for script manager. |       trigger-callback.c | Trigger callbacks.
|       script-completion.c | Completions for script manager. |       trigger-command.c | Trigger commands.
|       script-config.c | Config options for script manager (file script.conf). |       trigger-completion.c | Trigger completions.
|       script-info.c | Script manager info/infolists/hdata. |       trigger-config.c | Trigger config options (file trigger.conf).
|       script-mouse.c | Script mouse actions. |    typing/ | Typing plugin.
|       script-repo.c | Download and read repository file. |       typing.c | Main typing functions.
|    tcl/ | Tcl plugin. |       typing-bar-item.c | Typing bar items.
|       weechat-tcl.c | Main tcl functions (load/unload scripts, execute tcl code). |       typing-config.c | Typing config options (file typing.conf).
|       weechat-tcl-api.c | Tcl scripting API functions. |       typing-status.c | Messages typing status on buffers.
|    trigger/ | Trigger plugin. |    xfer/ | Xfer plugin (IRC DCC file/chat).
|       trigger.c | Main trigger functions. |       xfer.c | Main xfer functions.
|       trigger-buffer.c | Trigger buffer. |       xfer-buffer.c | Xfer buffer.
|       trigger-callback.c | Trigger callbacks. |       xfer-chat.c | DCC chat.
|       trigger-command.c | Trigger commands. |       xfer-command.c | Xfer commands.
|       trigger-completion.c | Trigger completions. |       xfer-completion.c | Xfer completions.
|       trigger-config.c | Trigger config options (file trigger.conf). |       xfer-config.c | Xfer config options (file xfer.conf).
|    typing/ | Typing plugin. |       xfer-dcc.c | DCC file transfer.
|       typing.c | Main typing functions. |       xfer-file.c | File functions for xfer.
|       typing-bar-item.c | Typing bar items. |       xfer-info.c | Xfer info/infolists/hdata.
|       typing-config.c | Typing config options (file typing.conf). |       xfer-network.c | Network functions for xfer.
|       typing-status.c | Messages typing status on buffers. |       xfer-upgrade.c | Save/restore of xfer data when upgrading WeeChat.
|    xfer/ | Xfer plugin (IRC DCC file/chat).
|       xfer.c | Main xfer functions.
|       xfer-buffer.c | Xfer buffer.
|       xfer-chat.c | DCC chat.
|       xfer-command.c | Xfer commands.
|       xfer-completion.c | Xfer completions.
|       xfer-config.c | Xfer config options (file xfer.conf).
|       xfer-dcc.c | DCC file transfer.
|       xfer-file.c | File functions for xfer.
|       xfer-info.c | Xfer info/infolists/hdata.
|       xfer-network.c | Network functions for xfer.
|       xfer-upgrade.c | Save/restore of xfer data when upgrading WeeChat.
|=== |===
[[sources_tests]] [[sources_tests]]
@@ -400,119 +391,73 @@ WeeChat "core" is located in following directories:
[width="100%",cols="2m,3",options="header"] [width="100%",cols="2m,3",options="header"]
|=== |===
| Path/file | Description | Path/file | Description
| tests/ | Root of tests. | tests/ | Root of tests.
|    tests.cpp | Program used to run all tests. |    tests.cpp | Program used to run all tests.
|    tests-record.cpp | Record and search in messages displayed. |    scripts/ | Root of scripting API tests.
|    scripts/ | Root of scripting API tests. |       test-scripts.cpp | Program used to run the scripting API tests.
|       test-scripts.cpp | Program used to run the scripting API tests. |       python/ | Python scripts to generate and run the scripting API tests.
|       python/ | Python scripts to generate and run the scripting API tests. |          testapigen.py | Python script generating scripts in all languages to test the scripting API.
|          testapigen.py | Python script generating scripts in all languages to test the scripting API. |          testapi.py | Python script with scripting API tests, used by script testapigen.py.
|          testapi.py | Python script with scripting API tests, used by script testapigen.py. |          unparse.py | Convert Python code to other languages, used by script testapigen.py.
|          unparse.py | Convert Python code to other languages, used by script testapigen.py. |    unit/ | Root of unit tests.
|    unit/ | Root of unit tests. |       test-plugins.cpp | Tests: plugins.
|       test-plugins.cpp | Tests: plugins. |       core/ | Root of unit tests for core.
|       test-plugin-api-info.cpp | Tests: plugin API info functions. |          test-core-arraylist.cpp | Tests: arraylists.
|       test-plugin-config.cpp | Tests: plugin config functions. |          test-core-calc.cpp | Tests: calculation of expressions.
|       core/ | Root of unit tests for core. |          test-core-config-file.cpp | Tests: configuration files.
|          test-core-arraylist.cpp | Tests: arraylists. |          test-core-crypto.cpp | Tests: cryptographic functions.
|          test-core-calc.cpp | Tests: calculation of expressions. |          test-core-dir.cpp | Tests: directory/file functions.
|          test-core-command.cpp | Tests: commands. |          test-core-eval.cpp | Tests: evaluation of expressions.
|          test-core-config-file.cpp | Tests: configuration files. |          test-core-hashtble.cpp | Tests: hashtables.
|          test-core-crypto.cpp | Tests: cryptographic functions. |          test-core-hdata.cpp | Tests: hdata.
|          test-core-dir.cpp | Tests: directory/file functions. |          test-core-hook.cpp | Tests: hooks.
|          test-core-eval.cpp | Tests: evaluation of expressions. |          test-core-infolist.cpp | Tests: infolists.
|          test-core-hashtble.cpp | Tests: hashtables. |          test-core-list.cpp | Tests: lists.
|          test-core-hdata.cpp | Tests: hdata. |          test-core-network.cpp | Tests: network functions.
|          test-core-hook.cpp | Tests: hooks. |          test-core-secure.cpp | Tests: secured data.
|          test-core-infolist.cpp | Tests: infolists. |          test-core-signal.cpp | Tests: signals.
|          test-core-list.cpp | Tests: lists. |          test-core-string.cpp | Tests: strings.
|          test-core-network.cpp | Tests: network functions. |          test-core-url.cpp | Tests: URLs.
|          test-core-secure.cpp | Tests: secured data. |          test-core-utf8.cpp | Tests: UTF-8.
|          test-core-signal.cpp | Tests: signals. |          test-core-util.cpp | Tests: utility functions.
|          test-core-string.cpp | Tests: strings. |       gui/ | Root of unit tests for interfaces.
|          test-core-url.cpp | Tests: URLs. |          test-gui-bar-window.cpp | Tests: bar window functions.
|          test-core-utf8.cpp | Tests: UTF-8. |          test-gui-buffer.cpp | Tests: buffer functions.
|          test-core-util.cpp | Tests: utility functions. |          test-gui-chat.cpp | Tests: chat functions.
|          test-core-sys.cpp | Tests: system functions. |          test-gui-color.cpp | Tests: colors.
|          hook/ | Root of unit tests for hooks. |          test-gui-filter.cpp | Tests: filters.
|             test-hook-command.cpp | Tests: hooks "command". |          test-gui-input.cpp | Tests: input functions.
|             test-hook-command-run.cpp | Tests: hooks "command_run". |          test-gui-line.cpp | Tests: lines.
|             test-hook-completion.cpp | Tests: hooks "completion". |          test-gui-nick.cpp | Tests: nicks.
|             test-hook-config.cpp | Tests: hooks "config". |       plugins/ | Root of unit tests for plugins.
|             test-hook-connect.cpp | Tests: hooks "connect". |          irc/ | Root of unit tests for IRC plugin.
|             test-hook-fd.cpp | Tests: hooks "fd". |             test-irc-buffer.cpp | Tests: IRC buffers.
|             test-hook-focus.cpp | Tests: hooks "focus". |             test-irc-channel.cpp | Tests: IRC channels.
|             test-hook-hdata.cpp | Tests: hooks "hdata". |             test-irc-color.cpp | Tests: IRC colors.
|             test-hook-hsignal.cpp | Tests: hooks "hsignal". |             test-irc-config.cpp | Tests: IRC configuration.
|             test-hook-info-hashtable.cpp | Tests: hooks "info_hashtable". |             test-irc-ignore.cpp | Tests: IRC ignores.
|             test-hook-info.cpp | Tests: hooks "info". |             test-irc-join.cpp | Tests: IRC join functions.
|             test-hook-infolist.cpp | Tests: hooks "infolist". |             test-irc-message.cpp | Tests: IRC messages.
|             test-hook-line.cpp | Tests: hooks "line". |             test-irc-mode.cpp | Tests: IRC modes.
|             test-hook-modifier.cpp | Tests: hooks "modifier". |             test-irc-nick.cpp | Tests: IRC nicks.
|             test-hook-print.cpp | Tests: hooks "print". |             test-irc-protocol.cpp | Tests: IRC protocol.
|             test-hook-process.cpp | Tests: hooks "process". |             test-irc-sasl.cpp | Tests: SASL authentication with IRC protocol.
|             test-hook-signal.cpp | Tests: hooks "signal". |             test-irc-server.cpp | Tests: IRC server.
|             test-hook-timer.cpp | Tests: hooks "timer". |             test-irc-tag.cpp | Tests: IRC message tags.
|             test-hook-url.cpp | Tests: hooks "url". |          logger/ | Root of unit tests for logger plugin.
|       gui/ | Root of unit tests for interfaces. |             test-logger-backlog.cpp | Tests: logger backlog.
|          test-gui-bar-window.cpp | Tests: bar window functions. |          trigger/ | Root of unit tests for trigger plugin.
|          test-gui-buffer.cpp | Tests: buffer functions. |             test-trigger.cpp | Tests: triggers.
|          test-gui-chat.cpp | Tests: chat functions. |             test-trigger-config.cpp | Tests: trigger configuration.
|          test-gui-color.cpp | Tests: colors. |          typing/ | Root of unit tests for typing plugin.
|          test-gui-filter.cpp | Tests: filters. |             test-typing.cpp | Tests: typing.
|          test-gui-hotlist.cpp | Tests: hotlist functions. |             test-typing-status.cpp | Tests: typing status.
|          test-gui-input.cpp | Tests: input functions. |          relay/ | Root of unit tests for Relay plugin.
|          test-gui-key.cpp | Tests: keys. |             test-relay-auth.cpp | Tests: clients authentication.
|          test-gui-line.cpp | Tests: lines. |          xfer/ | Root of unit tests for Xfer plugin.
|          test-gui-nick.cpp | Tests: nicks. |             test-xfer-file.cpp | Tests: file functions.
|          test-gui-nicklist.cpp | Tests: nicklist functions. |             test-xfer-network.cpp | Tests: network functions.
|          curses/ | Root of unit tests for Curses interface.
|             test-gui-curses-mouse.cpp | Tests: mouse (Curses interface).
|       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-command.cpp | Tests: IRC commands.
|             test-irc-config.cpp | Tests: IRC configuration.
|             test-irc-ctcp.cpp | Tests: IRC CTCP.
|             test-irc-ignore.cpp | Tests: IRC ignores.
|             test-irc-info.cpp | Tests: IRC info.
|             test-irc-join.cpp | Tests: IRC join functions.
|             test-irc-list.cpp | Tests: IRC buffer for reply to /list command.
|             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.
|          typing/ | Root of unit tests for typing plugin.
|             test-typing.cpp | Tests: typing.
|             test-typing-status.cpp | Tests: typing status.
|          relay/ | Root of unit tests for Relay plugin.
|             test-relay-auth.cpp | Tests: clients authentication.
|             test-relay-http.cpp | Tests: HTTP functions for Relay plugin.
|             test-relay-remote.cpp | Tests: remote functions for Relay plugin.
|             test-relay-websocket.cpp | Tests: websocket functions for Relay plugin.
|             api/ | Root of unit tests for Relay "api" protocol.
|                test-relay-api.cpp | Tests: Relay "api" protocol: general functions.
|                test-relay-api-msg.cpp | Tests: Relay "api" protocol: messages.
|                test-relay-api-protocol.cpp | Tests: Relay "api" protocol: protocol.
|             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]] [[documentation_translations]]
@@ -525,16 +470,28 @@ Documentation files:
| Path/file | Description | Path/file | Description
| doc/ | Documentation. | doc/ | Documentation.
|    docinfo.html | Asciidoctor style. |    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, ...). |    XX/ | Documentation for language XX (languages: en, fr, de, it, ...).
|       weechat.1.XX.adoc | Man page (`man weechat`). |       weechat.1.XX.adoc | Man page (`man weechat`).
|       weechat_dev.XX.adoc | link:weechat_dev.en.html[Developer's guide ^↗^^] (this document). |       weechat_dev.XX.adoc | link:weechat_dev.en.html[Developer's guide ^↗^,window=_blank] (this document).
|       weechat_faq.XX.adoc | link:weechat_faq.en.html[FAQ ^↗^^]. |       weechat_faq.XX.adoc | link:weechat_faq.en.html[FAQ ^↗^,window=_blank].
|       weechat_plugin_api.XX.adoc | link:weechat_plugin_api.en.html[Plugin API reference ^↗^^]. |       weechat_plugin_api.XX.adoc | link:weechat_plugin_api.en.html[Plugin API reference ^↗^,window=_blank].
|       weechat_quickstart.XX.adoc | link:weechat_quickstart.en.html[Quickstart guide ^↗^^]. |       weechat_quickstart.XX.adoc | link:weechat_quickstart.en.html[Quickstart guide ^↗^,window=_blank].
|       weechat_relay_protocol.XX.adoc | link:weechat_relay_protocol.en.html[Relay protocol ^↗^^] (for remote interfaces). |       weechat_relay_protocol.XX.adoc | link:weechat_relay_protocol.en.html[Relay protocol ^↗^,window=_blank] (for remote interfaces).
|       weechat_scripting.XX.adoc | link:weechat_scripting.en.html[Scripting guide ^↗^^]. |       weechat_scripting.XX.adoc | link:weechat_scripting.en.html[Scripting guide ^↗^,window=_blank].
|       weechat_user.XX.adoc | link:weechat_user.en.html[User's guide ^↗^^]. |       weechat_user.XX.adoc | link:weechat_user.en.html[User's guide ^↗^,window=_blank].
|       includes/ | Files included in documentation. |       includes/ | Files included in documentation.
|          autogen_api_completions.XX.adoc | Auto-generated file for Plugin API reference: completions (do *NEVER* update manually!).
|          autogen_api_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). |          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. |          man.XX.adoc | Part of man pages: plugin options, files and copyright.
|=== |===
@@ -572,7 +529,7 @@ Example in C:
/* /*
* weechat.c - core functions for WeeChat * weechat.c - core functions for WeeChat
* *
* Copyright (C) 2024 Your Name <your@email.com> * Copyright (C) 2022 Your Name <your@email.com>
* *
* This file is part of WeeChat, the extensible chat client. * This file is part of WeeChat, the extensible chat client.
* *
@@ -596,8 +553,9 @@ Example in C:
Some basic rules you *must* follow when you write C code: Some basic rules you *must* follow when you write C code:
* Use 4 spaces for indentation (no tabs). * Use 4 spaces for indentation. Don't use tabs, they are evil.
* Try to not exceed 80 chars by line, except if this is needed to increase readability. * Try to not exceed 80 chars by line, except if this is needed to increase
readability.
* Use comments `+/* comment */+` (not C99-style comments like `+// comment+`). * Use comments `+/* comment */+` (not C99-style comments like `+// comment+`).
* Add a comment before any function, to explain what it does (always use a * Add a comment before any function, to explain what it does (always use a
multi-line comment, even if description is very short). multi-line comment, even if description is very short).
@@ -786,7 +744,7 @@ new_hook_fd = malloc (sizeof (*new_hook_fd));
[[coding_python_style]] [[coding_python_style]]
=== Python style === Python style
See https://www.python.org/dev/peps/pep-0008/[PEP 8 ^↗^^]. See https://www.python.org/dev/peps/pep-0008/[PEP 8 ^↗^,window=_blank].
[[core_internals]] [[core_internals]]
== Core internals == Core internals
@@ -809,7 +767,7 @@ Examples:
[width="100%",cols="2m,3",options="header"] [width="100%",cols="2m,3",options="header"]
|=== |===
| Directory | Files | Directory | Files
| src/core/ | weechat.c, core-backtrace.c, core-command.c, ... | src/core/ | weechat.c, wee-backtrace.c, wee-command.c, ...
| src/gui/ | gui-bar.c, gui-bar-item.c, gui-bar-window.c, ... | src/gui/ | gui-bar.c, gui-bar-item.c, gui-bar-window.c, ...
| src/gui/curses/ | gui-curses-bar.c, gui-curses-bar-window.c, gui-curses-chat.c, ... | src/gui/curses/ | gui-curses-bar.c, gui-curses-bar-window.c, gui-curses-chat.c, ...
| src/plugins/ | plugin.c, plugin-api.c, plugin-api-info.c, plugin-config.c, plugin-script.c, ... | src/plugins/ | plugin.c, plugin-api.c, plugin-api-info.c, plugin-config.c, plugin-script.c, ...
@@ -817,8 +775,8 @@ Examples:
| src/plugins/python/ | weechat-python.c, weechat-python-api.c, ... | src/plugins/python/ | weechat-python.c, weechat-python-api.c, ...
|=== |===
The headers of C files have same name as file, for example _core-command.h_ for The headers of C files have same name as file, for example _wee-command.h_ for
file _core-command.c_. file _wee-command.c_.
[[naming_convention_structures]] [[naming_convention_structures]]
==== Structures ==== Structures
@@ -963,8 +921,6 @@ In following table, these conventions are used:
* `EXT`: extended color (`+@+` + 5 digits) * `EXT`: extended color (`+@+` + 5 digits)
* `(ATTR)EXT`: extended color with optional attributes (`+@+` + attributes + 5 digits) * `(ATTR)EXT`: extended color with optional attributes (`+@+` + attributes + 5 digits)
* `(ATTR)`: one or more attribute chars: * `(ATTR)`: one or more attribute chars:
** `+%+`: blink
** `+.+`: "dim" (half bright)
** `+*+`: bold ** `+*+`: bold
** `+!+`: reverse ** `+!+`: reverse
** `+/+`: italic ** `+/+`: italic
@@ -975,8 +931,6 @@ In following table, these conventions are used:
** _0x02_: reverse ** _0x02_: reverse
** _0x03_: italic ** _0x03_: italic
** _0x04_: underline ** _0x04_: underline
** _0x05_: blink
** _0x06_: "dim" (half bright)
All combinations are summarized in this table: All combinations are summarized in this table:
@@ -1073,8 +1027,6 @@ _src/gui/gui-color.h_):
| 42 | weechat.color.emphasized _(WeeChat ≥ 0.4.2)_ | 42 | weechat.color.emphasized _(WeeChat ≥ 0.4.2)_
| 43 | weechat.color.chat_day_change _(WeeChat ≥ 0.4.2)_ | 43 | weechat.color.chat_day_change _(WeeChat ≥ 0.4.2)_
| 44 | weechat.color.chat_value_null _(WeeChat ≥ 1.4)_ | 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: WeeChat colors are:
@@ -1168,7 +1120,7 @@ server->hook_timer_sasl = weechat_hook_timer (timeout * 1000,
[[git_repository]] [[git_repository]]
=== Git repository === Git repository
Git repository is on https://github.com/weechat/weechat[GitHub ^↗^^]. Git repository is on https://github.com/weechat/weechat[GitHub ^↗^,window=_blank].
Any patch for bug or new feature must be done on master branch, preferred way Any patch for bug or new feature must be done on master branch, preferred way
is a GitHub pull request. A patch can also be sent by e-mail is a GitHub pull request. A patch can also be sent by e-mail
@@ -1203,10 +1155,14 @@ Where _component_ is one of following:
| WeeChat core | WeeChat core
| build | build
| CMakeLists.txt + | autogen.sh +
CMakeLists.txt +
cmake/* + cmake/* +
configure.ac +
Makefile.am +
tools/* + tools/* +
weechat.cygport.in weechat.cygport.in +
weechat.spec
| Build | Build
| ci | ci
@@ -1315,7 +1271,7 @@ $ make translations && make update-po
Then you can edit .po files (if you can translate in a language). Then you can edit .po files (if you can translate in a language).
When done, you *have* to check your file with When done, you *have* to check your file with
https://github.com/flashcode/msgcheck[msgcheck ^↗^^]: https://github.com/flashcode/msgcheck[msgcheck ^↗^,window=_blank]:
---- ----
$ msgcheck.py xx.po $ msgcheck.py xx.po
@@ -1323,6 +1279,19 @@ $ msgcheck.py xx.po
And then you can recompile WeeChat to use the new translations. 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]]
==== Asciidoc ==== Asciidoc
+211 -156
View File
@@ -2,6 +2,18 @@
:author: Sébastien Helleu :author: Sébastien Helleu
:email: flashcode@flashtux.org :email: flashcode@flashtux.org
:lang: en :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]]
== General == General
@@ -21,7 +33,7 @@ apply to WeeChat!).
Because WeeChat is very light and brings innovating features. Because WeeChat is very light and brings innovating features.
More info on the WeeChat More info on the WeeChat
https://weechat.org/about/features/[features page ^↗^^]. https://weechat.org/about/features/[features page ^↗^,window=_blank].
[[compilation_install]] [[compilation_install]]
== Compilation / install == Compilation / install
@@ -30,22 +42,27 @@ https://weechat.org/about/features/[features page ^↗^^].
=== I've heard about many GUIs for WeeChat. How can I compile/use them? === I've heard about many GUIs for WeeChat. How can I compile/use them?
Some remote GUIs are available, see the Some remote GUIs are available, see the
https://weechat.org/about/interfaces/[remote interfaces page ^↗^^]. https://weechat.org/about/interfaces/[remote interfaces page ^↗^,window=_blank].
[[compile_git]] [[compile_git]]
=== I can't compile WeeChat after cloning git repository, why? === 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 ^↗^,window=_blank].
Please follow link:weechat_user.en.html#source_package[build instructions ^↗^^] If you're compiling with
and ensure all required dependencies are installed. link:weechat_user.en.html#compile_with_autotools[autotools ^↗^,window=_blank]
(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]] [[compile_macos]]
=== How can I install WeeChat on macOS? === How can I install WeeChat on macOS?
It is recommended to use https://brew.sh/[Homebrew ^↗^^], It is recommended to use https://brew.sh/[Homebrew ^↗^,window=_blank],
you can get help with: you can get help with:
---- ----
@@ -62,12 +79,12 @@ brew install weechat
=== I've launched WeeChat, but I'm lost, what can I do? === I've launched WeeChat, but I'm lost, what can I do?
For help you can type `/help`. For help about a command, type `/help command`. For help you can type `/help`. For help about a command, type `/help command`.
link:weechat_user.en.html#key_bindings[Keys ^↗^^] and link:weechat_user.en.html#key_bindings[Keys ^↗^,window=_blank] and
link:weechat_user.en.html#commands_and_options[commands ^↗^^] link:weechat_user.en.html#commands_and_options[commands ^↗^,window=_blank]
are listed in documentation. are listed in documentation.
It's recommended for new users to read the It's recommended for new users to read the
link:weechat_quickstart.en.html[Quickstart guide ^↗^^]. link:weechat_quickstart.en.html[Quickstart guide ^↗^,window=_blank].
[[display]] [[display]]
== Display == Display
@@ -95,7 +112,7 @@ It's a common issue with a variety of causes, please read carefully and check
** If you are using screen, check that it is run with UTF-8 mode ** If you are using screen, check that it is run with UTF-8 mode
("`defutf8 on`" in ~/.screenrc or `screen -U` to run screen). ("`defutf8 on`" in ~/.screenrc or `screen -U` to run screen).
* Check that option * Check that option
link:weechat_user.en.html#option_weechat.look.eat_newline_glitch[_weechat.look.eat_newline_glitch_ ^↗^^] link:weechat_user.en.html#option_weechat.look.eat_newline_glitch[_weechat.look.eat_newline_glitch_ ^↗^,window=_blank]
is off (this option may cause display bugs). is off (this option may cause display bugs).
[NOTE] [NOTE]
@@ -110,9 +127,9 @@ This may be caused by a libc bug in function _wcwidth_, which should be fixed
in glibc 2.22 (maybe not yet available in your distribution). in glibc 2.22 (maybe not yet available in your distribution).
There is a workaround to use the fixed _wcwidth_ function: There is a workaround to use the fixed _wcwidth_ function:
https://blog.nytsoi.net/2015/05/04/emoji-support-for-weechat[https://blog.nytsoi.net/2015/05/04/emoji-support-for-weechat ^↗^^] https://blog.nytsoi.net/2015/05/04/emoji-support-for-weechat[https://blog.nytsoi.net/2015/05/04/emoji-support-for-weechat ^↗^,window=_blank]
See this https://github.com/weechat/weechat/issues/79[bug report ^↗^^] See this https://github.com/weechat/weechat/issues/79[bug report ^↗^,window=_blank]
for more information. for more information.
[[bars_background]] [[bars_background]]
@@ -170,10 +187,18 @@ windows.
[[buffers_list]] [[buffers_list]]
=== How to display the buffers list on the left side? === How to display the buffers list on the left side?
The plugin link:weechat_user.en.html#buflist[buflist ^↗^^] With WeeChat ≥ 1.8, the plugin
link:weechat_user.en.html#buflist[buflist ^↗^,window=_blank]
is loaded and enabled by default. is loaded and enabled by default.
To limit size of bar: With an older version, you can install script _buffers.pl_:
----
/script install buffers.pl
----
To limit size of bar (replace "buflist" by "buffers" if you're using the script
_buffers.pl_):
---- ----
/set weechat.bar.buflist.size_max 15 /set weechat.bar.buflist.size_max 15
@@ -191,6 +216,21 @@ bar with your mouse wheel.
Default keys to scroll _buflist_ bar are kbd:[F1] (or kbd:[Ctrl+F1]), kbd:[F2] Default keys to scroll _buflist_ bar are kbd:[F1] (or kbd:[Ctrl+F1]), kbd:[F2]
(or kbd:[Ctrl+F2]), kbd:[Alt+F1] and kbd:[Alt+F2]. (or kbd:[Ctrl+F2]), kbd:[Alt+F1] and kbd:[Alt+F2].
For script _buffers.pl_, you can define keys, similar to the existing keys to
scroll nicklist. +
For example to use kbd:[F1], kbd:[F2], kbd:[Alt+F1] and kbd:[Alt+F2]:
----
/key bind meta-OP /bar scroll buffers * -100%
/key bind meta-OQ /bar scroll buffers * +100%
/key bind meta-meta-OP /bar scroll buffers * b
/key bind meta-meta-OQ /bar scroll buffers * e
----
[NOTE]
Keys "meta-OP" and "meta-OQ" may be different in your terminal. To find key
code press kbd:[Alt+k] then key.
[[customize_buflist]] [[customize_buflist]]
=== How can I customize the list of buffers list, like the color of the active buffer? === How can I customize the list of buffers list, like the color of the active buffer?
@@ -216,7 +256,7 @@ like `237` for dark gray.
The buflist plugin provides lot of options that you can customize, please read The buflist plugin provides lot of options that you can customize, please read
the help on each option. the help on each option.
There's also a https://github.com/weechat/weechat/wiki/buflist[wiki page ^↗^^] There's also a https://github.com/weechat/weechat/wiki/buflist[wiki page ^↗^,window=_blank]
with examples of advanced buflist configuration. with examples of advanced buflist configuration.
[[customize_prefix]] [[customize_prefix]]
@@ -260,7 +300,7 @@ These colors can be changed with the options __weechat.color.status_data_*__
(buffers) and __weechat.color.status_count_*__ (counters). + (buffers) and __weechat.color.status_count_*__ (counters). +
Other hotlist options can be changed with the options __weechat.look.hotlist_*__. Other hotlist options can be changed with the options __weechat.look.hotlist_*__.
See link:weechat_user.en.html#screen_layout[User's guide / Screen layout ^↗^^] See link:weechat_user.en.html#screen_layout[User's guide / Screen layout ^↗^,window=_blank]
for more info about the hotlist. for more info about the hotlist.
[[input_bar_size]] [[input_bar_size]]
@@ -306,8 +346,9 @@ any bar:
[[terminal_copy_paste]] [[terminal_copy_paste]]
=== How can I copy/paste text without pasting nicklist? === How can I copy/paste text without pasting nicklist?
You can use the bare display (default key: kbd:[Alt+l] (`L`)), which shows With WeeChat ≥ 1.0, you can use the bare display (default key: kbd:[Alt+l] (`L`)),
just the contents of the currently selected window, without any formatting. which will show just the contents of the currently selected window,
without any formatting.
You can use a terminal with rectangular selection (like rxvt-unicode, You can use a terminal with rectangular selection (like rxvt-unicode,
konsole, gnome-terminal, etc.). Key is usually kbd:[Ctrl] + kbd:[Alt] + mouse konsole, gnome-terminal, etc.). Key is usually kbd:[Ctrl] + kbd:[Alt] + mouse
@@ -322,7 +363,7 @@ Another solution is to move nicklist to top or bottom, for example:
[[urls]] [[urls]]
=== How can I click on long URLs (more than one line)? === How can I click on long URLs (more than one line)?
You can use the bare display (default key: kbd:[Alt+l] (`L`)). With WeeChat ≥ 1.0, you can use the bare display (default key: kbd:[Alt+l] (`L`)).
To make opening URLs easier, you can: To make opening URLs easier, you can:
@@ -332,7 +373,7 @@ To make opening URLs easier, you can:
/set weechat.bar.nicklist.position top /set weechat.bar.nicklist.position top
---- ----
* disable alignment for multiline words: * disable alignment for multiline words (WeeChat ≥ 1.7):
---- ----
/set weechat.look.align_multiline_words off /set weechat.look.align_multiline_words off
@@ -344,8 +385,9 @@ To make opening URLs easier, you can:
/set weechat.look.align_end_of_lines time /set weechat.look.align_end_of_lines time
---- ----
You can enable option "eat_newline_glitch", so that new line char is not added With WeeChat ≥ 0.3.6, you can enable option "eat_newline_glitch", so that
at the end of each line displayed (it will not break URL selection): new line char is not added at the end of each line displayed (it will not break
URL selection):
---- ----
/set weechat.look.eat_newline_glitch on /set weechat.look.eat_newline_glitch on
@@ -392,6 +434,8 @@ In WeeChat, the new value is immediately used:
[[use_256_colors]] [[use_256_colors]]
=== How can I use 256 colors in WeeChat? === How can I use 256 colors in WeeChat?
256 colors are supported with WeeChat ≥ 0.3.4.
First check that your _TERM_ environment variable is correct, recommended values First check that your _TERM_ environment variable is correct, recommended values
are: are:
@@ -410,17 +454,19 @@ term screen-256color
---- ----
If your _TERM_ variable has a wrong value and that WeeChat is already running, If your _TERM_ variable has a wrong value and that WeeChat is already running,
you can change it with these two commands: you can change it with these two commands (with WeeChat ≥ 1.0):
---- ----
/set env TERM screen-256color /set env TERM screen-256color
/upgrade /upgrade
---- ----
You can use any color number in options (optional: you can add color aliases For version 0.3.4, you must use command `/color` to add new colors.
with command `/color`).
Please read the link:weechat_user.en.html#colors[User's guide / Colors ^↗^^] For versions ≥ 0.3.5, you can use any color number in options (optional: you
can add color aliases with command `/color`).
Please read the link:weechat_user.en.html#colors[User's guide / Colors ^↗^,window=_blank]
for more information about colors management. for more information about colors management.
[[search_text]] [[search_text]]
@@ -429,7 +475,7 @@ for more information about colors management.
The default key is kbd:[Ctrl+r] (command is: `+/input search_text_here+`). The default key is kbd:[Ctrl+r] (command is: `+/input search_text_here+`).
And jump to highlights: kbd:[Alt+p] / kbd:[Alt+n]. And jump to highlights: kbd:[Alt+p] / kbd:[Alt+n].
See link:weechat_user.en.html#key_bindings[User's guide / Key bindings ^↗^^] See link:weechat_user.en.html#key_bindings[User's guide / Key bindings ^↗^,window=_blank]
for more info about this feature. for more info about this feature.
[[terminal_focus]] [[terminal_focus]]
@@ -456,14 +502,14 @@ And then you bind two keys for the focus (replace the `/print` commands by the
commands of your choice): commands of your choice):
---- ----
/key bind meta-[I /print -core focus /key bind meta2-I /print -core focus
/key bind meta-[O /print -core unfocus /key bind meta2-O /print -core unfocus
---- ----
For example to mark buffers as read when the terminal loses the focus: For example to mark buffers as read when the terminal loses the focus:
---- ----
/key bind meta-[O /allbuf /buffer set unread /key bind meta2-O /input set_unread
---- ----
[[screen_paste]] [[screen_paste]]
@@ -583,31 +629,6 @@ If you are using the macOS Terminal app, enable the option
"Use option as meta key" in menu Settings/Keyboard after which you can use the "Use option as meta key" in menu Settings/Keyboard after which you can use the
kbd:[Option] key as meta key. kbd:[Option] key as meta key.
[[enter_key]]
=== Some keys including Enter are not working, why?
If you run a WeeChat < 4.0.0 with configuration files created by any
version ≥ 4.0.0, the keys names become invalid and many keys won't work at all. +
To repair them, exit WeeChat, remove all sections `[key*]` from weechat.conf
and start WeeChat again: all default keys will be created.
[[key_f11]]
=== Key F11 maximizes the terminal window, how can I scroll up the nicklist?
The key kbd:[F11] is commonly used by terminals to maximize the window, and
kbd:[F11]/kbd:[F12] are the default keys in WeeChat to scroll the nicklist.
You can bind other keys, for example kbd:[Shift+F11] and kbd:[Shift+F12],
with WeeChat ≥ 4.0.0:
----
/key bind shift-f11 /bar scroll nicklist * -100%
/key bind shift-f12 /bar scroll nicklist * +100%
----
Other solution is to enable mouse (key: kbd:[Alt+m]) and scroll with the mouse
wheel (see also questions about <<mouse,mouse>>).
[[customize_key_bindings]] [[customize_key_bindings]]
=== How can I customize key bindings? === How can I customize key bindings?
@@ -628,7 +649,7 @@ You can bind a key, for example:
---- ----
List of default keys is in List of default keys is in
link:weechat_user.en.html#key_bindings[User's guide / Key bindings ^↗^^]. link:weechat_user.en.html#key_bindings[User's guide / Key bindings ^↗^,window=_blank].
To jump to buffers with number ≥ 100, you could define a trigger and then use To jump to buffers with number ≥ 100, you could define a trigger and then use
commands like `/123` to jump to buffer #123: commands like `/123` to jump to buffer #123:
@@ -637,12 +658,6 @@ commands like `/123` to jump to buffer #123:
/trigger add numberjump modifier "2000|input_text_for_buffer" "${tg_string} =~ ^/[0-9]+$" "=\/([0-9]+)=/buffer *${re:1}=" "" "" "none" /trigger add numberjump modifier "2000|input_text_for_buffer" "${tg_string} =~ ^/[0-9]+$" "=\/([0-9]+)=/buffer *${re:1}=" "" "" "none"
---- ----
For an easy jump to buffers, you can also install the _go.py_ script:
----
/script install go.py
----
[[global_history]] [[global_history]]
=== How to use global history (instead of buffer history) with up and down keys? === How to use global history (instead of buffer history) with up and down keys?
@@ -651,25 +666,23 @@ history are kbd:[Ctrl+↑] and kbd:[Ctrl+↓]).
Example: 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-A /input history_global_previous
/key bind meta2-B /input history_global_next /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 == Mouse
[[mouse_not_working]] [[mouse_not_working]]
=== Mouse is not working at all, what can I do? === Mouse is not working at all, what can I do?
Mouse is supported with WeeChat ≥ 0.3.6.
First try to enable mouse: First try to enable mouse:
---- ----
@@ -713,53 +726,74 @@ you have to use kbd:[Alt] instead of kbd:[Shift]).
[[irc]] [[irc]]
== IRC == IRC
[[irc_tls_connection]] [[irc_ssl_connection]]
=== I have some problems when connecting to a server using TLS, what can I do? === 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. If you are using macOS, you must install `openssl` from Homebrew.
A CA file will be bootstrapped using certificates from the system keychain. A CA file will be bootstrapped using certificates from the system keychain.
With WeeChat ≤ 3.1, you can then set the path to system certificates:
----
/set weechat.network.gnutls_ca_file "/usr/local/etc/openssl/cert.pem"
----
If you see errors about gnutls handshake, you can try to use a smaller If you see errors about gnutls handshake, you can try to use a smaller
Diffie-Hellman key (default is 2048): Diffie-Hellman key (default is 2048):
---- ----
/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): 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 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): 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]] [[irc_ssl_handshake_error]]
=== When connecting to server with TLS, I only see the error "TLS handshake failed", what can I do? === When connecting to server with SSL, I only see the error "TLS handshake failed", what can I do?
You can try a different priority string, replace "xxx" by your server name: You can try a different priority string (WeeChat ≥ 0.3.5 only), replace "xxx"
by your server name:
---- ----
/set irc.server.xxx.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]] [[irc_ssl_libera]]
=== How can I connect to libera server using TLS? === How can I connect to libera server using SSL?
Check that you have certificates installed on your system, this is commonly With WeeChat ≤ 3.1, set option _weechat.network.gnutls_ca_file_ to file with
provided by the package "ca-certificates". certificates:
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.addresses "irc.libera.chat/6697"
/set irc.server.libera.tls on /set irc.server.libera.ssl on
/connect libera /connect libera
---- ----
@@ -814,8 +848,8 @@ For a single server:
/set irc.server.libera.autojoin_dynamic on /set irc.server.libera.autojoin_dynamic on
---- ----
You can also add the current channel in the "autojoin" server option using the With WeeChat ≥ 3.5, you can also add the current channel in the "autojoin"
`/autojoin` command: server option using the `/autojoin` command:
---- ----
/autojoin add /autojoin add
@@ -827,7 +861,25 @@ Or another channel:
/autojoin add #test /autojoin add #test
---- ----
There are also scripts: With WeeChat ≤ 3.4, you can use the `/set` command to edit the list of autojoin
channels, for example for the "libera" server:
----
/set irc.server.libera.autojoin [TAB]
----
[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:
----
/fset autojoin
----
With WeeChat ≤ 3.4, another solution is to use a script:
---- ----
/script search autojoin /script search autojoin
@@ -850,16 +902,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). disable filters (by default, the key kbd:[Alt+=] toggles filters).
[[filter_irc_join_part_quit]] [[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 ^↗^,window=_blank].
[[filter_irc_join_channel_messages]] [[filter_irc_join_channel_messages]]
=== How can I filter some messages displayed when I join an IRC channel? === How can I filter some messages displayed when I join an IRC channel?
You can choose which messages are displayed when joining a channel with the With WeeChat ≥ 0.4.1, you can choose which messages are displayed when
option _irc.look.display_join_message_ (see `+/help irc.look.display_join_message+` joining a channel with the option _irc.look.display_join_message_ (see
for more info). `+/help irc.look.display_join_message+` for more info).
To hide messages (but keep them in buffer), you can filter them using the tag To hide messages (but keep them in buffer), you can filter them using the tag
(for example _irc_329_ for channel creation date). See `/help filter` for help (for example _irc_329_ for channel creation date). See `/help filter` for help
@@ -914,13 +981,17 @@ nicks:
/set irc.server_default.away_check_max_nicks 25 /set irc.server_default.away_check_max_nicks 25
---- ----
[NOTE]
For WeeChat ≤ 0.3.3, options are _irc.network.away_check_ and
_irc.network.away_check_max_nicks_.
[[highlight_notification]] [[highlight_notification]]
=== How can I be warned when someone highlights me on a channel? === How can I be warned when someone highlights me on a channel?
There is a default trigger "beep" which sends a _BEL_ to the terminal on With WeeChat ≥ 1.0, there is a default trigger "beep" which sends a _BEL_ to
a highlight or private message. Thus you can configure your terminal the terminal on a highlight or private message. Thus you can configure your
(or multiplexer like screen/tmux) to run a command or play a sound when terminal (or multiplexer like screen/tmux) to run a command or play a sound
a _BEL_ occurs. when a _BEL_ occurs.
Or you can add a command in "beep" trigger: Or you can add a command in "beep" trigger:
@@ -945,29 +1016,44 @@ Other scripts on this subject:
[[disable_highlights_for_specific_nicks]] [[disable_highlights_for_specific_nicks]]
=== How can I disable highlights for specific nicks? === How can I disable highlights for specific nicks?
You can use the With WeeChat ≥ 0.3.4 you can use the
link:weechat_user.en.html#max_hotlist_level_nicks[hotlist_max_level_nicks_add ^↗^^] link:weechat_user.en.html#max_hotlist_level_nicks[hotlist_max_level_nicks_add ^↗^,window=_blank]
buffer property to set the max hotlist level for some nicks, per buffer, buffer property to set the max hotlist level for some nicks, per buffer,
or per group of buffers (like IRC servers). or per group of buffers (like IRC servers).
To only disable highlights, you'd have to set it to 2. To only disable highlights, you'd have to set it to 2:
For the current buffer:
---- ----
/buffer setauto hotlist_max_level_nicks_add joe:2,mike:2 /buffer set hotlist_max_level_nicks_add joe:2,mike:2
---- ----
For all channels on server "libera": This buffer property isn't stored in the configuration though.
To automatically reapply these buffer properties, you would need the
_buffer_autoset.py_ script:
---- ----
/set weechat.buffer.irc.libera.*.hotlist_max_level_nicks_add joe:2,mike:2 /script install buffer_autoset.py
---- ----
For example, to permanently disable highlights from "mike" on #weechat
on the IRC server libera:
----
/buffer_autoset add irc.libera.#weechat hotlist_max_level_nicks_add mike:2
----
To apply it to the entire libera server instead:
----
/buffer_autoset add irc.libera hotlist_max_level_nicks_add mike:2
----
For more examples, see `+/help buffer_autoset+`.
[[irc_target_buffer]] [[irc_target_buffer]]
=== How can I change target buffer for commands on merged buffers (like buffer with servers)? === How can I change target buffer for commands on merged buffers (like buffer with servers)?
The default key is kbd:[Ctrl+x] (command is: `+/buffer switch+`). The default key is kbd:[Ctrl+x] (command is: `+/input switch_active_buffer+`).
[[plugins_scripts]] [[plugins_scripts]]
== Plugins / scripts == Plugins / scripts
@@ -987,15 +1073,15 @@ You must set that up:
[[install_scripts]] [[install_scripts]]
=== How can I install scripts? Are scripts compatible with other IRC clients? === How can I install scripts? Are scripts compatible with other IRC clients?
You can use the command `/script` to install and manage scripts (see `/help script` With WeeChat ≥ 0.3.9 you can use the command `/script` to install and manage scripts
for help). (see `/help script` for help). For older versions there is weeget.py and script.pl.
Scripts are not compatible with other IRC clients. Scripts are not compatible with other IRC clients.
[[scripts_update]] [[scripts_update]]
=== The command "/script update" can not read scripts, how to fix that? === 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): If still not working, try to manually delete the scripts file (in your shell):
@@ -1004,7 +1090,7 @@ $ rm ~/.cache/weechat/script/plugins.xml.gz
---- ----
[NOTE] [NOTE]
If you are not using the XDG directories, the path could be: _~/.weechat/script/plugins.xml.gz_. With WeeChat ≤ 3.1, the path should be: _~/.weechat/script/plugins.xml.gz_.
And update scripts again in WeeChat: And update scripts again in WeeChat:
@@ -1046,6 +1132,10 @@ You have to reload the spell plugin:
/plugin reload spell /plugin reload spell
---- ----
[NOTE]
With WeeChat ≤ 2.4, the "spell" plugin was named "aspell", so the command is:
`/plugin reload aspell`.
[[settings]] [[settings]]
== Settings == Settings
@@ -1079,7 +1169,7 @@ You can try following tips to consume less memory:
fifo, logger, perl, python, ruby, lua, tcl, guile, javascript, php, spell, fifo, logger, perl, python, ruby, lua, tcl, guile, javascript, php, spell,
xfer (used for DCC). See `/help weechat.plugin.autoload`. xfer (used for DCC). See `/help weechat.plugin.autoload`.
* Load only scripts that you really need. * 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_. _weechat.network.gnutls_ca_system_.
* Reduce value of option _weechat.history.max_buffer_lines_number_ or set value * Reduce value of option _weechat.history.max_buffer_lines_number_ or set value
of option _weechat.history.max_buffer_lines_minutes_. of option _weechat.history.max_buffer_lines_minutes_.
@@ -1090,8 +1180,7 @@ You can try following tips to consume less memory:
You can follow same tips as for <<memory_usage,memory>>, and these ones: You can follow same tips as for <<memory_usage,memory>>, and these ones:
* Hide "nicklist" bar: `/bar hide nicklist` (key: kbd:[Alt+Shift+N]). * Hide "nicklist" bar: `/bar hide nicklist`.
* Disable "buflist": `/buflist disable` (key: kbd:[Alt+Shift+B]).
* Remove display of seconds in status bar time: * Remove display of seconds in status bar time:
`+/set weechat.look.item_time_format "%H:%M"+` (this is the default value). `+/set weechat.look.item_time_format "%H:%M"+` (this is the default value).
* Disable real time check of misspelled words in command line (if you enabled it): * Disable real time check of misspelled words in command line (if you enabled it):
@@ -1113,20 +1202,14 @@ Disable answers to all CTCP queries:
---- ----
/set irc.ctcp.clientinfo "" /set irc.ctcp.clientinfo ""
/set irc.ctcp.finger ""
/set irc.ctcp.source "" /set irc.ctcp.source ""
/set irc.ctcp.time "" /set irc.ctcp.time ""
/set irc.ctcp.userinfo ""
/set irc.ctcp.version "" /set irc.ctcp.version ""
/set irc.ctcp.ping "" /set irc.ctcp.ping ""
---- ----
With WeeChat < 4.1.0, other CTCP queries were replied by default and must be
disabled as well:
----
/set irc.ctcp.finger ""
/set irc.ctcp.userinfo ""
----
Unload and disable auto-loading of "xfer" plugin (used for IRC DCC): Unload and disable auto-loading of "xfer" plugin (used for IRC DCC):
---- ----
@@ -1137,7 +1220,7 @@ Unload and disable auto-loading of "xfer" plugin (used for IRC DCC):
Define a passphrase and use secured data wherever you can for sensitive data Define a passphrase and use secured data wherever you can for sensitive data
like passwords: see `/help secure` and `/help` on options like passwords: see `/help secure` and `/help` on options
(if you can use secured data, it is written in the help). (if you can use secured data, it is written in the help).
See also link:weechat_user.en.html#secured_data[User's guide / Secured data ^↗^^]. See also link:weechat_user.en.html#secured_data[User's guide / Secured data ^↗^,window=_blank].
For example: For example:
@@ -1158,44 +1241,16 @@ contains your passwords ciphered with your passphrase.
Some other files may contain sensitive info like passwords (if they are not Some other files may contain sensitive info like passwords (if they are not
stored in _sec.conf_ with the `/secure` command). stored in _sec.conf_ with the `/secure` command).
See the link:weechat_user.en.html#files_and_directories[User's guide / Files and directories ^↗^^] See the link:weechat_user.en.html#files_and_directories[User's guide / Files and directories ^↗^,window=_blank]
for more information about configuration files. for more information about configuration files.
[[move_to_another_device]]
=== I want to move my WeeChat to another device and keep my config, what should I copy?
First check directories used by WeeChat with this command: `/debug dirs`. +
Directories home/config and home/data must be copied (all files and sub-directories).
For example if you're using XDG directories (default with WeeChat ≥ 3.2),
the directories should be `$HOME/.config/weechat` and `$HOME/.local/share/weechat`. +
If you're using a single directory (default with WeeChat < 3.2), the directory
should be `$HOME/.weechat`.
[IMPORTANT]
The WeeChat version on the new device must be greater than or equal to the version
on the initial device. +
Downgrading WeeChat configuration is *NOT SUPPORTED* and can break it,
leading to unusable WeeChat.
Steps:
. Quit Weechat: `/quit` (or `/upgrade -quit` if you want to resume the session,
which includes content of all buffers).
. Copy all directories, sub-directories and files to the new device, keeping
same names and permissions.
. Optional: copy any file outside these directories that you refer to in your
configuration (it's not recommended to use files outside WeeChat directories).
. Start WeeChat on the new device: `weechat` (or `weechat --upgrade` if you
saved the session).
[[development]] [[development]]
== Development == Development
[[bug_task_patch]] [[bug_task_patch]]
=== How should I report bugs, ask for new features or send patches? === How should I report bugs, ask for new features or send patches?
See https://weechat.org/about/support/[this page ^↗^^]. See https://weechat.org/about/support/[this page ^↗^,window=_blank].
[[gdb_error_threads]] [[gdb_error_threads]]
=== When I run WeeChat under gdb, there is an error about threads, what can I do? === When I run WeeChat under gdb, there is an error about threads, what can I do?
@@ -1232,10 +1287,10 @@ some OS' we don't have, to test WeeChat.
There are many tasks to do (testing, code, documentation, etc.) There are many tasks to do (testing, code, documentation, etc.)
Please contact us via IRC or mail, look at Please contact us via IRC or mail, look at
https://weechat.org/about/support/[support page ^↗^^]. https://weechat.org/about/support/[support page ^↗^,window=_blank].
[[donate]] [[donate]]
=== Can I give money or other things to WeeChat developers? === Can I give money or other things to WeeChat developers?
You can give us money to help development. You can give us money to help development.
Details on https://weechat.org/donate/[donation page ^↗^^]. Details on https://weechat.org/donate/[donation page ^↗^,window=_blank].
File diff suppressed because it is too large Load Diff
+7 -3
View File
@@ -2,6 +2,10 @@
:author: Sébastien Helleu :author: Sébastien Helleu
:email: flashcode@flashtux.org :email: flashcode@flashtux.org
:lang: en :lang: en
:toc: left
:sectnums:
:docinfo1:
[[start]] [[start]]
== Start WeeChat == Start WeeChat
@@ -101,7 +105,7 @@ other plugins in the list.
You can add an IRC server with the `/server` command, for example: 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: In this command, `libera` is the internal server name used by WeeChat:
@@ -377,13 +381,13 @@ for example:
See `/help script` for more info. See `/help script` for more info.
A list of scripts is available in WeeChat with `/script` or on A list of scripts is available in WeeChat with `/script` or on
https://weechat.org/scripts/[this page ^↗^^]. https://weechat.org/scripts/[this page ^↗^,window=_blank].
[[more_doc]] [[more_doc]]
== More documentation == More documentation
You can now use WeeChat and read You can now use WeeChat and read
https://weechat.org/doc/[FAQ/documentation ^↗^^] https://weechat.org/doc/[FAQ/documentation ^↗^,window=_blank]
for any other questions. for any other questions.
Enjoy using WeeChat! Enjoy using WeeChat!
+27 -79
View File
@@ -2,6 +2,11 @@
:author: Sébastien Helleu :author: Sébastien Helleu
:email: flashcode@flashtux.org :email: flashcode@flashtux.org
:lang: en :lang: en
:toc: left
:toclevels: 3
:sectnums:
:docinfo1:
[[introduction]] [[introduction]]
== Introduction == Introduction
@@ -98,7 +103,7 @@ List of available commands (detail in next chapters):
[[command_handshake]] [[command_handshake]]
=== handshake === handshake
_WeeChat ≥ 2.9, updated in versions 3.5, 4.0.0._ _WeeChat ≥ 2.9, updated in version 3.5._
Perform an handshake between the client and WeeChat: this is required in most Perform an handshake between the client and WeeChat: this is required in most
cases to know the session settings and prepare the authentication with the cases to know the session settings and prepare the authentication with the
@@ -127,15 +132,10 @@ Arguments:
if compression is enabled, messages from _relay_ to client are compressed if compression is enabled, messages from _relay_ to client are compressed
to save bandwidth; allowed values are: to save bandwidth; allowed values are:
*** _off_: no compression (default if option is not given) *** _off_: no compression (default if option is not given)
*** _zlib_: compress with https://zlib.net/[zlib ^↗^^] _(WeeChat ≥ 0.3.7)_ *** _zlib_: compress with https://zlib.net/[zlib ^↗^,window=_blank] _(WeeChat ≥ 0.3.7)_
*** _zstd_: compress with https://facebook.github.io/zstd/[Zstandard ^↗^^]: *** _zstd_: compress with https://facebook.github.io/zstd/[Zstandard ^↗^,window=_blank]:
better compression and much faster than _zlib_ for both compression and decompression better compression and much faster than _zlib_ for both compression and decompression
_(WeeChat ≥ 3.5)_ _(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)_
Notes about option _password_hash_algo_: Notes about option _password_hash_algo_:
@@ -175,11 +175,8 @@ WeeChat replies with a hashtable containing the following keys and values:
in the password hash algorithm) in the password hash algorithm)
* _compression_: compression type: * _compression_: compression type:
** _off_: messages are not compressed ** _off_: messages are not compressed
** _zlib_: messages are compressed with https://zlib.net/[zlib ^↗^^] ** _zlib_: messages are compressed with https://zlib.net/[zlib ^↗^,window=_blank]
** _zstd_: messages are compressed with https://facebook.github.io/zstd/[Zstandard ^↗^^] ** _zstd_: messages are compressed with https://facebook.github.io/zstd/[Zstandard ^↗^,window=_blank]
* _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] [TIP]
With WeeChat ≤ 2.8, the command _handshake_ is not implemented, WeeChat silently With WeeChat ≤ 2.8, the command _handshake_ is not implemented, WeeChat silently
@@ -206,28 +203,6 @@ htb: {
'totp': 'on', 'totp': 'on',
'nonce': '85B1EE00695A5B254E14F4885538DF0D', 'nonce': '85B1EE00695A5B254E14F4885538DF0D',
'compression': 'off', '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',
} }
---- ----
@@ -248,7 +223,6 @@ htb: {
'totp': 'on', 'totp': 'on',
'nonce': '85B1EE00695A5B254E14F4885538DF0D', 'nonce': '85B1EE00695A5B254E14F4885538DF0D',
'compression': 'off', 'compression': 'off',
'escape_commands': 'off',
} }
---- ----
@@ -269,7 +243,6 @@ htb: {
'totp': 'on', 'totp': 'on',
'nonce': '85B1EE00695A5B254E14F4885538DF0D', 'nonce': '85B1EE00695A5B254E14F4885538DF0D',
'compression': 'off', 'compression': 'off',
'escape_commands': 'off',
} }
---- ----
@@ -299,7 +272,6 @@ htb: {
'totp': 'on', 'totp': 'on',
'nonce': '85B1EE00695A5B254E14F4885538DF0D', 'nonce': '85B1EE00695A5B254E14F4885538DF0D',
'compression': 'zstd', 'compression': 'zstd',
'escape_commands': 'off',
} }
---- ----
@@ -488,9 +460,7 @@ hda:
'buffer': 'ptr', 'buffer': 'ptr',
'y': 'int', 'y': 'int',
'date': 'tim', 'date': 'tim',
'date_usec': 'int',
'date_printed': 'tim', 'date_printed': 'tim',
'date_usec_printed': 'int',
'str_time': 'str', 'str_time': 'str',
'tags_count': 'int', 'tags_count': 'int',
'tags_array': 'arr', 'tags_array': 'arr',
@@ -508,9 +478,7 @@ hda:
buffer: '0x558d61ea3e60' buffer: '0x558d61ea3e60'
y: -1 y: -1
date: 1588404926 date: 1588404926
date_usec: 118712
date_printed: 1588404926 date_printed: 1588404926
date_usec_printed: 118712
str_time: 'F@0025209F@0024535F@0024026' str_time: 'F@0025209F@0024535F@0024026'
tags_count: 0 tags_count: 0
tags_array: [] tags_array: []
@@ -526,9 +494,7 @@ hda:
buffer: '0x558d61ea3e60' buffer: '0x558d61ea3e60'
y: -1 y: -1
date: 1588404930 date: 1588404930
date_usec: 25
date_printed: 1588404930 date_printed: 1588404930
date_usec_printed: 25
str_time: 'F@0025209F@0024535F@0024030' str_time: 'F@0025209F@0024535F@0024030'
tags_count: 0 tags_count: 0
tags_array: [] tags_array: []
@@ -641,7 +607,7 @@ Request an _infolist_.
[IMPORTANT] [IMPORTANT]
Content of infolist is a duplication of actual data. Wherever possible, use 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). faster, uses less memory and returns smaller objects in message).
Syntax: Syntax:
@@ -707,7 +673,6 @@ inl:
nicklist_visible_count: 0 nicklist_visible_count: 0
title: 'WeeChat 2.9-dev (C) 2003-2020 - https://weechat.org/' title: 'WeeChat 2.9-dev (C) 2003-2020 - https://weechat.org/'
input: 1 input: 1
input_get_any_user_data: 0
input_get_unknown_commands: 0 input_get_unknown_commands: 0
input_get_empty: 0 input_get_empty: 0
input_multiline: 0 input_multiline: 0
@@ -719,14 +684,11 @@ inl:
input_buffer_1st_display: 0 input_buffer_1st_display: 0
num_history: 0 num_history: 0
text_search: 0 text_search: 0
text_search_direction: 0
text_search_exact: 0 text_search_exact: 0
text_search_regex: 0 text_search_regex: 0
text_search_regex_compiled: '0x0' text_search_regex_compiled: '0x0'
text_search_where: 0 text_search_where: 0
text_search_history: 0
text_search_found: 0 text_search_found: 0
text_search_ptr_history: '0x0'
text_search_input: None text_search_input: None
highlight_words: None highlight_words: None
highlight_disable_regex: None highlight_disable_regex: None
@@ -1007,14 +969,6 @@ input core.weechat /help filter
input irc.libera.#weechat hello! 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]] [[command_completion]]
=== completion === completion
@@ -1262,7 +1216,7 @@ Arguments:
specify all buffers specify all buffers
* _options_: one of following keywords, separated by commas (default is * _options_: one of following keywords, separated by commas (default is
_buffers,upgrade,buffer,nicklist_ for "*" and _buffer,nicklist_ for a buffer); _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] [NOTE]
When using buffer "*", the other buffers synchronized (using a name) are kept. + When using buffer "*", the other buffers synchronized (using a name) are kept. +
@@ -1428,8 +1382,8 @@ Messages are sent as binary data, using following format (with size in bytes):
(including this field) (including this field)
* _compression_ (byte): flag: * _compression_ (byte): flag:
** _0x00_: following data is not compressed ** _0x00_: following data is not compressed
** _0x01_: following data is compressed with https://zlib.net/[zlib ^↗^^] ** _0x01_: following data is compressed with https://zlib.net/[zlib ^↗^,window=_blank]
** _0x02_: following data is compressed with https://facebook.github.io/zstd/[Zstandard ^↗^^] ** _0x02_: following data is compressed with https://facebook.github.io/zstd/[Zstandard ^↗^,window=_blank]
* _id_ (string, 4 bytes + content): identifier sent by client (before command name); it can be * _id_ (string, 4 bytes + content): identifier sent by client (before command name); it can be
empty (string with zero length and no content) if no identifier was given in empty (string with zero length and no content) if no identifier was given in
command command
@@ -1440,8 +1394,8 @@ Messages are sent as binary data, using following format (with size in bytes):
=== Compression === Compression
If flag _compression_ is equal to 0x01 or 0x02, then *all* data after is compressed If flag _compression_ is equal to 0x01 or 0x02, then *all* data after is compressed
with https://zlib.net/[zlib ^↗^^] or with https://zlib.net/[zlib ^↗^,window=_blank] or
https://facebook.github.io/zstd/[Zstandard ^↗^^], https://facebook.github.io/zstd/[Zstandard ^↗^,window=_blank],
and therefore must be uncompressed before being processed. and therefore must be uncompressed before being processed.
[[message_identifier]] [[message_identifier]]
@@ -2057,18 +2011,16 @@ Data sent as hdata:
[width="100%",cols="3m,2,10",options="header"] [width="100%",cols="3m,2,10",options="header"]
|=== |===
| Name | Type | Description | Name | Type | Description
| buffer | pointer | Buffer pointer. | buffer | pointer | Buffer pointer.
| date | time | Date of message. | date | time | Date of message.
| date_usec | integer | Microseconds of date. | date_printed | time | Date when WeeChat displayed message.
| date_printed | time | Date when WeeChat displayed message. | displayed | char | 1 if message is displayed, 0 if message is filtered (hidden).
| date_usec_printed | integer | Microseconds of date when WeeChat displayed message. | notify_level | char | Notify level: -1 = notify disabled, 0 = low, 1 = message, 2 = private, 3 = highlight.
| displayed | char | 1 if message is displayed, 0 if message is filtered (hidden). | highlight | char | 1 if line has a highlight, otherwise 0.
| notify_level | char | Notify level: -1 = notify disabled, 0 = low, 1 = message, 2 = private, 3 = highlight. | tags_array | array of strings | List of tags for line.
| highlight | char | 1 if line has a highlight, otherwise 0. | prefix | string | Prefix.
| tags_array | array of strings | List of tags for line. | message | string | Message.
| prefix | string | Prefix.
| message | string | Message.
|=== |===
Example: new message _hello!_ from nick _FlashCode_ on buffer _irc.libera.#weechat_: Example: new message _hello!_ from nick _FlashCode_ on buffer _irc.libera.#weechat_:
@@ -2080,9 +2032,7 @@ hda:
keys: { keys: {
'buffer': 'ptr', 'buffer': 'ptr',
'date': 'tim', 'date': 'tim',
'date_usec': 'int',
'date_printed': 'tim', 'date_printed': 'tim',
'date_usec_printed': 'int',
'displayed': 'chr', 'displayed': 'chr',
'notify_level': 'chr', 'notify_level': 'chr',
'highlight': 'chr', 'highlight': 'chr',
@@ -2095,9 +2045,7 @@ hda:
__path: ['0x4a49600'] __path: ['0x4a49600']
buffer: '0x4a715d0' buffer: '0x4a715d0'
date: 1362728993 date: 1362728993
date_usec: 902765
date_printed: 1362728993 date_printed: 1362728993
date_usec_printed: 902765
displayed: 1 displayed: 1
notify_level: 1 notify_level: 1
highlight: 0 highlight: 0
@@ -2369,7 +2317,7 @@ will change).
[NOTE] [NOTE]
During WeeChat upgrade, the socket remains opened (except if connection uses During WeeChat upgrade, the socket remains opened (except if connection uses
TLS). SSL).
[[message_upgrade_ended]] [[message_upgrade_ended]]
==== _upgrade_ended ==== _upgrade_ended
+325 -23
View File
@@ -2,11 +2,18 @@
:author: Sébastien Helleu :author: Sébastien Helleu
:email: flashcode@flashtux.org :email: flashcode@flashtux.org
:lang: en :lang: en
:toc: left
:toclevels: 4
:sectnums:
:sectnumlevels: 3
:docinfo1:
This manual documents WeeChat chat client, it is part of WeeChat. This manual documents WeeChat chat client, it is part of WeeChat.
Latest version of this document can be found on Latest version of this document can be found on
https://weechat.org/doc/[this page ^↗^^]. https://weechat.org/doc/[this page ^↗^,window=_blank].
[[introduction]] [[introduction]]
== 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. If something must be run in background, the function `+hook_process+` can be used.
See example in the chapter <<hook_process,Run a background process>> See example in the chapter <<hook_process,Run a background process>>
and the documentation on the function `+hook_process+` in the and the documentation on the function `+hook_process+` in the
link:weechat_plugin_api.en.html#_hook_process[WeeChat plugin API reference ^↗^^]. link:weechat_plugin_api.en.html#_hook_process[WeeChat plugin API reference ^↗^,window=_blank].
[[languages_specificities]] [[languages_specificities]]
=== 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`. + WeeChat defines a `weechat` module which must be imported with `import weechat`. +
A Python stub for WeeChat API is available in the repository: A Python stub for WeeChat API is available in the repository:
https://raw.githubusercontent.com/weechat/weechat/master/src/plugins/python/weechat.pyi[weechat.pyi ^↗^^]. https://raw.githubusercontent.com/weechat/weechat/master/src/plugins/python/weechat.pyi[weechat.pyi ^↗^,window=_blank].
[[python_functions]] [[python_functions]]
===== Functions ===== Functions
@@ -102,7 +109,7 @@ receive a string of type `str` or `bytes` (this list is not exhaustive):
It is recommended to use modifier `+irc_in2_yyy+` instead, the string received It is recommended to use modifier `+irc_in2_yyy+` instead, the string received
is always UTF-8 valid. + is always UTF-8 valid. +
See function `+hook_modifier+` in the See function `+hook_modifier+` in the
link:weechat_plugin_api.en.html#_hook_modifier[WeeChat plugin API reference ^↗^^]. link:weechat_plugin_api.en.html#_hook_modifier[WeeChat plugin API reference ^↗^,window=_blank].
| hook_signal | hook_signal
| xxx,irc_out_yyy + | xxx,irc_out_yyy +
@@ -117,7 +124,7 @@ receive a string of type `str` or `bytes` (this list is not exhaustive):
It is recommended to use signal `+xxx,irc_out1_yyy+` instead, the string received It is recommended to use signal `+xxx,irc_out1_yyy+` instead, the string received
is always UTF-8 valid. + is always UTF-8 valid. +
See function `+hook_signal+` in the See function `+hook_signal+` in the
link:weechat_plugin_api.en.html#_hook_signal[WeeChat plugin API reference ^↗^^]. link:weechat_plugin_api.en.html#_hook_signal[WeeChat plugin API reference ^↗^,window=_blank].
| hook_process + | hook_process +
hook_process_hashtable hook_process_hashtable
@@ -127,6 +134,10 @@ receive a string of type `str` or `bytes` (this list is not exhaustive):
|=== |===
In Python 2, which is now deprecated and should not be used any more, the
strings sent to callbacks are always of type `str`, and may contain invalid
UTF-8 data, in the cases mentioned above.
[[language_perl]] [[language_perl]]
==== Perl ==== Perl
@@ -184,22 +195,12 @@ Functions are called with `+weechat.xxx(arg1, arg2, ...)+`.
Functions are called with `+weechat::xxx arg1 arg2 ...+`. Functions are called with `+weechat::xxx arg1 arg2 ...+`.
[[tcl_null]]
===== Null values
Since Tcl only has string types, there's no null type to pass as an argument 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 when a function accepts null values. To overcome this you can use the constant
function. To overcome this the WeeChat API defines the constant
`$::weechat::WEECHAT_NULL` which acts as a null value. This constant is defined `$::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 as `\uFFFF\uFFFF\uFFFFWEECHAT_NULL\uFFFF\uFFFF\uFFFF`, so it's very unlikely to
appear unintentionally. 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]] [[language_guile]]
==== Guile (Scheme) ==== Guile (Scheme)
@@ -375,7 +376,7 @@ directory is automatically created.
== Differences with C API == Differences with C API
Script API is almost the same as C plugin API. Script API is almost the same as C plugin API.
You can look at link:weechat_plugin_api.en.html[WeeChat plugin API reference ^↗^^] You can look at link:weechat_plugin_api.en.html[WeeChat plugin API reference ^↗^,window=_blank]
for detail about each function in API: prototype, arguments, return values, examples. for detail about each function in API: prototype, arguments, return values, examples.
It's important to make difference between a _plugin_ and a _script_: a It's important to make difference between a _plugin_ and a _script_: a
@@ -542,28 +543,329 @@ weechat_hook_timer(1000, 0, 1, $timer_cb, 'test');
== Script API == Script API
For more information about functions in API, please read the For more information about functions in API, please read the
link:weechat_plugin_api.en.html[WeeChat plugin API reference ^↗^^]. link:weechat_plugin_api.en.html[WeeChat plugin API reference ^↗^,window=_blank].
[[script_api_functions]] [[script_api_functions]]
=== Functions === Functions
List of functions in script API: List of functions in script API:
include::{autogendir}/autogen_scripting_functions.en.adoc[tag=functions] [width="100%",cols="1,5",options="header"]
|===
| Category | Functions
| general
| register
| plugins
| plugin_get_name
| strings
| charset_set +
iconv_to_internal +
iconv_from_internal +
gettext +
ngettext +
strlen_screen +
string_match +
string_match_list +
string_has_highlight +
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 +
string_input_for_buffer +
string_eval_expression +
string_eval_path_home
| directories
| mkdir_home +
mkdir +
mkdir_parents
| sorted lists
| list_new +
list_add +
list_search +
list_search_pos +
list_casesearch +
list_casesearch_pos +
list_get +
list_set +
list_next +
list_prev +
list_string +
list_size +
list_remove +
list_remove_all +
list_free
| configuration files
| config_new +
config_new_section +
config_search_section +
config_new_option +
config_search_option +
config_string_to_boolean +
config_option_reset +
config_option_set +
config_option_set_null +
config_option_unset +
config_option_rename +
config_option_is_null +
config_option_default_is_null +
config_boolean +
config_boolean_default +
config_integer +
config_integer_default +
config_string +
config_string_default +
config_color +
config_color_default +
config_write_option +
config_write_line +
config_write +
config_read +
config_reload +
config_option_free +
config_section_free_options +
config_section_free +
config_free +
config_get +
config_get_plugin +
config_is_set_plugin +
config_set_plugin +
config_set_desc_plugin +
config_unset_plugin
| key bindings
| key_bind +
key_unbind
| 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 +
hook_command_run +
hook_timer +
hook_fd +
hook_process +
hook_process_hashtable +
hook_connect +
hook_line +
hook_print +
hook_signal +
hook_signal_send +
hook_hsignal +
hook_hsignal_send +
hook_config +
hook_completion +
hook_modifier +
hook_modifier_exec +
hook_info +
hook_info_hashtable +
hook_infolist +
hook_focus +
hook_set +
unhook +
unhook_all
| buffers
| buffer_new +
buffer_new_props +
current_buffer +
buffer_search +
buffer_search_main +
buffer_clear +
buffer_close +
buffer_merge +
buffer_unmerge +
buffer_get_integer +
buffer_get_string +
buffer_get_pointer +
buffer_set +
buffer_string_replace_local_var +
buffer_match_list
| windows
| current_window +
window_search_with_buffer +
window_get_integer +
window_get_string +
window_get_pointer +
window_set_title
| nicklist
| nicklist_add_group +
nicklist_search_group +
nicklist_add_nick +
nicklist_search_nick +
nicklist_remove_group +
nicklist_remove_nick +
nicklist_remove_all +
nicklist_group_get_integer +
nicklist_group_get_string +
nicklist_group_get_pointer +
nicklist_group_set +
nicklist_nick_get_integer +
nicklist_nick_get_string +
nicklist_nick_get_pointer +
nicklist_nick_set
| bars
| bar_item_search +
bar_item_new +
bar_item_update +
bar_item_remove +
bar_search +
bar_new +
bar_set +
bar_update +
bar_remove
| commands
| command +
command_options
| completion
| completion_new +
completion_search +
completion_get_string +
completion_list_add +
completion_free
| infos
| info_get +
info_get_hashtable
| infolists
| infolist_new +
infolist_new_item +
infolist_new_var_integer +
infolist_new_var_string +
infolist_new_var_pointer +
infolist_new_var_time +
infolist_get +
infolist_next +
infolist_prev +
infolist_reset_item_cursor +
infolist_search_var +
infolist_fields +
infolist_integer +
infolist_string +
infolist_pointer +
infolist_time +
infolist_free
| hdata
| hdata_get +
hdata_get_var_offset +
hdata_get_var_type_string +
hdata_get_var_array_size +
hdata_get_var_array_size_string +
hdata_get_var_hdata +
hdata_get_list +
hdata_check_pointer +
hdata_move +
hdata_search +
hdata_char +
hdata_integer +
hdata_long +
hdata_string +
hdata_pointer +
hdata_time +
hdata_hashtable +
hdata_compare +
hdata_update +
hdata_get_string
| upgrade
| upgrade_new +
upgrade_write_object +
upgrade_read +
upgrade_close
|===
[[script_api_constants]] [[script_api_constants]]
=== Constants === Constants
List of constants in script API: List of constants in script API:
include::{autogendir}/autogen_scripting_constants.en.adoc[tag=constants] [width="100%",cols="1,5",options="header"]
|===
| Category | Constants
| return codes
| `WEECHAT_RC_OK` (integer) +
`WEECHAT_RC_OK_EAT` (integer) +
`WEECHAT_RC_ERROR` (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) +
`WEECHAT_CONFIG_WRITE_ERROR` (integer) +
`WEECHAT_CONFIG_WRITE_MEMORY_ERROR` (integer) +
`WEECHAT_CONFIG_OPTION_SET_OK_CHANGED` (integer) +
`WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE` (integer) +
`WEECHAT_CONFIG_OPTION_SET_ERROR` (integer) +
`WEECHAT_CONFIG_OPTION_SET_OPTION_NOT_FOUND` (integer) +
`WEECHAT_CONFIG_OPTION_UNSET_OK_NO_RESET` (integer) +
`WEECHAT_CONFIG_OPTION_UNSET_OK_RESET` (integer) +
`WEECHAT_CONFIG_OPTION_UNSET_OK_REMOVED` (integer) +
`WEECHAT_CONFIG_OPTION_UNSET_ERROR` (integer)
| sorted lists
| `WEECHAT_LIST_POS_SORT` (string) +
`WEECHAT_LIST_POS_BEGINNING` (string) +
`WEECHAT_LIST_POS_END` (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) +
`WEECHAT_HOOK_PROCESS_ERROR` (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) +
`WEECHAT_HOOK_CONNECT_PROXY_ERROR` (integer) +
`WEECHAT_HOOK_CONNECT_LOCAL_HOSTNAME_ERROR` (integer) +
`WEECHAT_HOOK_CONNECT_GNUTLS_INIT_ERROR` (integer) +
`WEECHAT_HOOK_CONNECT_GNUTLS_HANDSHAKE_ERROR` (integer) +
`WEECHAT_HOOK_CONNECT_MEMORY_ERROR` (integer) +
`WEECHAT_HOOK_CONNECT_TIMEOUT` (integer) +
`WEECHAT_HOOK_CONNECT_SOCKET_ERROR` (integer)
| hook signal
| `WEECHAT_HOOK_SIGNAL_STRING` (string) +
`WEECHAT_HOOK_SIGNAL_INT` (string) +
`WEECHAT_HOOK_SIGNAL_POINTER` (string)
|===
[[common_tasks]] [[common_tasks]]
== Common tasks == Common tasks
This chapter shows some common tasks, with examples. This chapter shows some common tasks, with examples.
Only partial things in API are used here, for full reference, see the Only partial things in API are used here, for full reference, see the
link:weechat_plugin_api.en.html[WeeChat plugin API reference ^↗^^]. link:weechat_plugin_api.en.html[WeeChat plugin API reference ^↗^,window=_blank].
[[buffers]] [[buffers]]
=== Buffers === Buffers
@@ -833,7 +1135,7 @@ weechat.hook_process("url:https://weechat.org/dev/info/stable/",
[TIP] [TIP]
All infos available about WeeChat are on All infos available about WeeChat are on
https://weechat.org/dev/info/[this page ^↗^^]. https://weechat.org/dev/info/[this page ^↗^,window=_blank].
Example of URL transfer with an option: download latest WeeChat development Example of URL transfer with an option: download latest WeeChat development
package in file _/tmp/weechat-devel.tar.gz_: package in file _/tmp/weechat-devel.tar.gz_:
@@ -852,7 +1154,7 @@ weechat.hook_process_hashtable("url:https://weechat.org/files/src/weechat-devel.
For more information about URL transfer and available options, see functions For more information about URL transfer and available options, see functions
`+hook_process+` and `+hook_process_hashtable+` in `+hook_process+` and `+hook_process_hashtable+` in
link:weechat_plugin_api.en.html#_hook_process[WeeChat plugin API reference ^↗^^]. link:weechat_plugin_api.en.html#_hook_process[WeeChat plugin API reference ^↗^,window=_blank].
[[config_options]] [[config_options]]
=== Config / options === Config / options
+847 -1175
View File
File diff suppressed because it is too large Load Diff
+48
View File
@@ -0,0 +1,48 @@
#
# Copyright (C) 2012-2022 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-2022 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
+212 -184
View File
@@ -2,12 +2,23 @@
:author: Sébastien Helleu :author: Sébastien Helleu
:email: flashcode@flashtux.org :email: flashcode@flashtux.org
:lang: es :lang: es
:toc-title: Índice :toc: left
:toclevels: 2
:sectnums:
:sectnumlevels: 2
:docinfo1:
Traductores Traductores
* Victorhck <victorhck.mailbox.org>, 2021 * 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]]
== General == General
@@ -27,7 +38,7 @@ Porque WeeChat es muy ligero y ofrece funcionalidades innovadoras.
// TRANSLATION MISSING // TRANSLATION MISSING
More info on the WeeChat More info on the WeeChat
https://weechat.org/about/features/[features page ^↗^^]. https://weechat.org/about/features/[features page ^↗^,window=_blank].
[[compilation_install]] [[compilation_install]]
== Compilación / instalación == Compilación / instalación
@@ -37,25 +48,26 @@ https://weechat.org/about/features/[features page ^↗^^].
// TRANSLATION MISSING // TRANSLATION MISSING
Some remote GUIs are available, see the Some remote GUIs are available, see the
https://weechat.org/about/interfaces/[remote interfaces page ^↗^^]. https://weechat.org/about/interfaces/[remote interfaces page ^↗^,window=_blank].
[[compile_git]] [[compile_git]]
=== No puedo compilar WeeChat después de haber clonado el repositorio git, ¿por qué? === No puedo compilar WeeChat después de haber clonado el repositorio git, ¿por qué?
// TRANSLATION MISSING La manera recomendada para compilar WeeChat es con
WeeChat must be compiled with CMake. link:weechat_user.en.html#compile_with_cmake[CMake ^↗^,window=_blank].
// TRANSLATION MISSING Si lo está compilando con link:weechat_user.en.html#compile_with_autotools[autotools ^↗^,window=_blank]
Please follow link:weechat_user.en.html#source_package[build instructions ^↗^^] (y no con CMake), compruebe que tiene la versión más reciente de autoconf y automake.
and ensure all required dependencies are installed.
// TRANSLATION MISSING Otra forma es instalar "devel package", que necesita menos dependencias.
If you still have issues, please report them to the developers. 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]] [[compile_macos]]
=== ¿Cómo puedo instalar WeeChat en macOS? === ¿Cómo puedo instalar WeeChat en macOS?
Se recomienda utilizar https://brew.sh/[Homebrew ^↗^^], Se recomienda utilizar https://brew.sh/[Homebrew ^↗^,window=_blank],
puede obtener ayuda con el comando: puede obtener ayuda con el comando:
---- ----
@@ -72,12 +84,12 @@ brew install weechat
=== He lanzado WeeChat, pero estoy perdido, ¿qué puedo hacer? === He lanzado WeeChat, pero estoy perdido, ¿qué puedo hacer?
Para consultar la ayuda, escriba `/help`. Para buscar ayuda con un comando, escriba `/help comando`. 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#key_bindings[Las teclas ^↗^,window=_blank] y
link:weechat_user.en.html#commands_and_options[comandos ^↗^^] aparecen listados link:weechat_user.en.html#commands_and_options[comandos ^↗^,window=_blank] aparecen listados
en la documentación. en la documentación.
Se recomienda a las personas recién llegadas leer la 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 ^↗^,window=_blank].
[[display]] [[display]]
== Visualización == Visualización
@@ -105,7 +117,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 ** 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). ("`defutf8 on`" en ~/.screenrc o `screen -U` al ejecutar screen).
* Compruebe si la opción * 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_ ^↗^,window=_blank]
está en off (esta opción puede causar errores a la hora de mostrar el texto). está en off (esta opción puede causar errores a la hora de mostrar el texto).
[NOTE] [NOTE]
@@ -120,10 +132,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). 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: 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[https://blog.nytsoi.net/2015/05/04/emoji-support-for-weechat ^↗^,window=_blank].
// TRANSLATION MISSING // TRANSLATION MISSING
See this https://github.com/weechat/weechat/issues/79[bug report ^↗^^] See this https://github.com/weechat/weechat/issues/79[bug report ^↗^,window=_blank]
for more information. for more information.
[[bars_background]] [[bars_background]]
@@ -181,10 +193,17 @@ ventanas.
[[buffers_list]] [[buffers_list]]
=== ¿Cómo mostrar un listado de los buffers en la parte izquierda? === ¿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[buflist ^↗^,window=_blank]
está cargado y habilitado de manera predeterminada. 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 /set weechat.bar.buflist.size_max 15
@@ -202,6 +221,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] 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]. (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]] [[customize_buflist]]
=== ¿Cómo puedo personalizar la lista de lista de buffers, como el color del buffer activo? === ¿Cómo puedo personalizar la lista de lista de buffers, como el color del buffer activo?
@@ -228,7 +262,7 @@ El complemento del listado de buffers _buflist_ ofrece múltiples opciones que p
la ayuda de cada opción. la ayuda de cada opción.
// TRANSLATION MISSING // TRANSLATION MISSING
There's also a https://github.com/weechat/weechat/wiki/buflist[wiki page ^↗^^] There's also a https://github.com/weechat/weechat/wiki/buflist[wiki page ^↗^,window=_blank]
with examples of advanced buflist configuration. with examples of advanced buflist configuration.
[[customize_prefix]] [[customize_prefix]]
@@ -272,7 +306,7 @@ Estos colores pueden ser cambiados con las opciones __weechat.color.status_data_
(buffers) y __weechat.color.status_count_*__ (contadores). + (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_*__. 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 ^↗^,window=_blank] para
más información sobre este tema. más información sobre este tema.
[[input_bar_size]] [[input_bar_size]]
@@ -318,9 +352,9 @@ en ninguna barra:
[[terminal_copy_paste]] [[terminal_copy_paste]]
=== ¿Cómo puedo copiar/pegar texto sin pegar la lista de apodos? === ¿Cómo puedo copiar/pegar texto sin pegar la lista de apodos?
// TRANSLATION MISSING Con WeeChat ≥ 1.0, puedes utilizar una visualización simple (la tecla predeterminada: kbd:[Alt+l] (`L`)),
You can use the bare display (default key: kbd:[Alt+l] (`L`)), which shows que mostrará solo el contenido de la ventana actual seleccionada,
just the contents of the currently selected window, without any formatting. sin ningún tipo de formato de texto.
Puede utilizar una terminal con selección rectangualr (como rxvt-unicode, 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 konsole, gnome-terminal, etc.). La tecla normalmente es kbd:[Ctrl] + kbd:[Alt] + la selección
@@ -335,8 +369,7 @@ Otra solución es mover la lista de apodos a la parte superior o inferior, por e
[[urls]] [[urls]]
=== ¿Cómo puedo hacer clic sobre direcciones URL largas (de más de una línea)? === ¿Cómo puedo hacer clic sobre direcciones URL largas (de más de una línea)?
// TRANSLATION MISSING Con WeeChat ≥ 1.0, puede utilizar la visualización simple (la tecla predeterminada: kbd:[Alt+l] (`L`)).
You can use the bare display (default key: kbd:[Alt+l] (`L`)).
Para abrir direcciones URL más fácilmente, puede: Para abrir direcciones URL más fácilmente, puede:
@@ -346,7 +379,7 @@ Para abrir direcciones URL más fácilmente, puede:
/set weechat.bar.nicklist.position top /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 /set weechat.look.align_multiline_words off
@@ -358,9 +391,9 @@ Para abrir direcciones URL más fácilmente, puede:
/set weechat.look.align_end_of_lines time /set weechat.look.align_end_of_lines time
---- ----
// TRANSLATION MISSING Con WeeChat ≥ 0.3.6, puede habilitar la opción "eat_newline_glitch", así
You can enable option "eat_newline_glitch", so that new line char is not added el caracter de la nueva línea no es añadido al final de cada línea mostrada (esto no romperá
at the end of each line displayed (it will not break URL selection): la selección de la dirección URL):
---- ----
/set weechat.look.eat_newline_glitch on /set weechat.look.eat_newline_glitch on
@@ -407,6 +440,8 @@ En WeeChat, el nuevo valor es inmediatamente utilizado:
[[use_256_colors]] [[use_256_colors]]
=== ¿Cómo puedo utilizar 256 colors en WeeChat? === ¿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 Primero compruebe que su variable de entorno _TERM_ es correcta, los valores recomendados
son: son:
@@ -424,18 +459,19 @@ term screen-256color
---- ----
Si su variable _TERM_ tiene un valor erróneo y ya WeeChat está ejecutándose, 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 /set env TERM screen-256color
/upgrade /upgrade
---- ----
// TRANSLATION MISSING Para la versión 0.3.4, deberá utilizar el comando `/color` para añadir nuevos colores.
You can use any color number in options (optional: you can add color aliases
with command `/color`).
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 ^↗^,window=_blank] para más
información sobre la gestión de los colores. información sobre la gestión de los colores.
[[search_text]] [[search_text]]
@@ -444,7 +480,7 @@ información sobre la gestión de los colores.
La tecla predeterminada es kbd:[Ctrl+r] (el comando es: `+/input texto_a_buscar_aquí+`). 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]. 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 ^↗^^] Vea la link:weechat_user.en.html#key_bindings[Guía del usuario / Atajos de teclado ^↗^,window=_blank]
para más información sobre esta funcionalidad. para más información sobre esta funcionalidad.
[[terminal_focus]] [[terminal_focus]]
@@ -471,14 +507,14 @@ Y después enlazar dos teclas para el foco (reemplazar los comandos `/print` por
comandos que prefiera): comandos que prefiera):
---- ----
/key bind meta-[I /print -core focus /key bind meta2-I /print -core focus
/key bind meta-[O /print -core unfocus /key bind meta2-O /print -core unfocus
---- ----
Por ejemplo, para marcar buffers como leidos cuando una terminal pierde el foco: 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]] [[screen_paste]]
@@ -598,33 +634,6 @@ Si está utilizando aplicación Terminal de macOS, habilite la opción
"Use option as meta key" en el menú Settings/Keyboard después de la cual puede utilizar la tecla "Use option as meta key" en el menú Settings/Keyboard después de la cual puede utilizar la tecla
kbd:[Option] como tecla meta. kbd:[Option] como tecla meta.
// TRANSLATION MISSING
[[enter_key]]
=== Some keys including Enter are not working, why?
If you run a WeeChat < 4.0.0 with configuration files created by any
version ≥ 4.0.0, the keys names become invalid and many keys won't work at all. +
To repair them, exit WeeChat, remove all sections `[key*]` from weechat.conf
and start WeeChat again: all default keys will be created.
// TRANSLATION MISSING
[[key_f11]]
=== Key F11 maximizes the terminal window, how can I scroll up the nicklist?
The key kbd:[F11] is commonly used by terminals to maximize the window, and
kbd:[F11]/kbd:[F12] are the default keys in WeeChat to scroll the nicklist.
You can bind other keys, for example kbd:[Shift+F11] and kbd:[Shift+F12],
with WeeChat ≥ 4.0.0:
----
/key bind shift-f11 /bar scroll nicklist * -100%
/key bind shift-f12 /bar scroll nicklist * +100%
----
Other solution is to enable mouse (key: kbd:[Alt+m]) and scroll with the mouse
wheel (see also questions about <<mouse,mouse>>).
[[customize_key_bindings]] [[customize_key_bindings]]
=== ¿Cómo puedo personalizar los atajos de teclado? === ¿Cómo puedo personalizar los atajos de teclado?
@@ -645,7 +654,7 @@ Puede crear un atajo de teclado, por ejemplo:
---- ----
Tiene una lista de las teclas predeterminadas en la 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 ^↗^,window=_blank].
Para saltar a un buffer mayor de 100, podría definir un disparador y después utilizar 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: comandos como `/123` para saltar al buffer #123:
@@ -654,13 +663,6 @@ comandos como `/123` para saltar al buffer #123:
/trigger add numberjump modifier "2000|input_text_for_buffer" "${tg_string} =~ ^/[0-9]+$" "=\/([0-9]+)=/buffer *${re:1}=" "" "" "none" /trigger add numberjump modifier "2000|input_text_for_buffer" "${tg_string} =~ ^/[0-9]+$" "=\/([0-9]+)=/buffer *${re:1}=" "" "" "none"
---- ----
// TRANSLATION MISSING
For an easy jump to buffers, you can also install the _go.py_ script:
----
/script install go.py
----
[[global_history]] [[global_history]]
=== ¿Cómo utilizar el historial global (en vez del historial del buffer) con las teclas de las flechas arriba y abajo? === ¿Cómo utilizar el historial global (en vez del historial del buffer) con las teclas de las flechas arriba y abajo?
@@ -669,26 +671,23 @@ global son kbd:[Ctrl+↑] y kbd:[Ctrl+↓]).
Ejemplo: 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-A /input history_global_previous
/key bind meta2-B /input history_global_next /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]] [[mouse]]
== Ratón == Ratón
[[mouse_not_working]] [[mouse_not_working]]
=== El ratón no funciona en absoluto, ¿qué puedo hacer? === 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: Primero trate de habilitar el ratón:
---- ----
@@ -732,55 +731,74 @@ tiene que utilizar kbd:[Alt] en vez de kbd:[Shift]).
[[irc]] [[irc]]
== IRC == IRC
[[irc_tls_connection]] [[irc_ssl_connection]]
=== Tengo algunos problemas al conectarme a un servidor utilizando TLS, ¿qué puedo hacer? === Tengo algunos problemas al conectarme a un servidor utilizando SSL, ¿qué puedo hacer?
Si está utilizando macOS, deberá instalar `openssl` desde Homebrew. Si está utilizando macOS, deberá instalar `openssl` desde Homebrew.
Se añadirá un archivo CA que utiliza los certificados del sistema. 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 Si ve errores en gnutls handshake, puede intentar utilizar una clave de cifrado menor
Diffie-Hellman (la predeterminada es 2048): 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): 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 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): 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]] [[irc_ssl_handshake_error]]
=== Al conectar a un servidor con TLS, solo veo el error "TLS handshake failed", ¿qué puedo hacer? === 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 Puede intentar una cadena de prioridad diferente (WeeChat ≥ 0.3.5 únicamente), reemplace "xxx"
de su servidor: 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]] [[irc_ssl_libera]]
=== ¿Cómo puedo conectarme al servidor libera utilizando TLS? === ¿Cómo puedo conectarme al servidor libera utilizando SSL?
// TRANSLATION MISSING Con WeeChat ≤ 3.1, establezca la opción _weechat.network.gnutls_ca_file_ en el archivo con
Check that you have certificates installed on your system, this is commonly los certificados:
provided by the package "ca-certificates".
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.addresses "irc.libera.chat/6697"
/set irc.server.libera.tls on /set irc.server.libera.ssl on
/connect libera /connect libera
---- ----
@@ -839,8 +857,8 @@ For a single server:
---- ----
// TRANSLATION MISSING // TRANSLATION MISSING
You can also add the current channel in the "autojoin" server option using the With WeeChat ≥ 3.5, you can also add the current channel in the "autojoin"
`/autojoin` command: server option using the `/autojoin` command:
---- ----
/autojoin add /autojoin add
@@ -854,7 +872,26 @@ Or another channel:
---- ----
// TRANSLATION MISSING // TRANSLATION MISSING
There are also scripts: With WeeChat ≤ 3.4, puede utilizar el comando `/set` para editar la lista de
canales con autojoin, por ejemplo, para el servidor "libera":
----
/set irc.server.libera.autojoin [TAB]
----
[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:
----
/fset autojoin
----
// TRANSLATION MISSING
With WeeChat ≤ 3.4, otra solución es utilizar un script:
---- ----
/script search autojoin /script search autojoin
@@ -876,19 +913,32 @@ prefijar el contenido de la línea.
Las líneas flitradas solo son ocultadas, no eliminadas, y podrá verlas si 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). inhabilita los filtros (de manera predeteminada, la tecla kbd:[Alt+=] alterna esos filtros).
// TRANSLATION MISSING
[[filter_irc_join_part_quit]] [[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 ^↗^,window=_blank].
[[filter_irc_join_channel_messages]] [[filter_irc_join_channel_messages]]
=== ¿Cómo puedo filtrar algunos mensajes mostrados cuando me uno a un canal IRC? === ¿Cómo puedo filtrar algunos mensajes mostrados cuando me uno a un canal IRC?
// TRANSLATION MISSING Con WeeChat ≥ 0.4.1, puede escoger qué mensajes son mostrados cuando
You can choose which messages are displayed when joining a channel with the se une a un canal mediante la opción _irc.look.display_join_message_ (vea
option _irc.look.display_join_message_ (see `+/help irc.look.display_join_message+` `+/help irc.look.display_join_message+` para más información).
for more info).
Para ocultar mensajes (pero mantenerlos en el buffer), puede filtrarlos utilizando la etiqueta propia del mensaje 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 (por ejemplo _irc_329_ para la fecha de creación del canal). Vea `/help filter` para más información
@@ -943,14 +993,17 @@ apodos:
/set irc.server_default.away_check_max_nicks 25 /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]] [[highlight_notification]]
=== ¿Cómo puedo ser advertido cuando alguien me menciona en un canal? === ¿Cómo puedo ser advertido cuando alguien me menciona en un canal?
// TRANSLATION MISSING Con WeeChat ≥ 1.0, hay un disparador "beep" que envía un _BEL_ a
There is a default trigger "beep" which sends a _BEL_ to the terminal on a la terminal cuando alguien le menciona o le manda un privado. Además puede configurar su
a highlight or private message. Thus you can configure your terminal terminal (o multiplexador como screen/tmux) para ejecutar un comando o reproducir un sonido
(or multiplexer like screen/tmux) to run a command or play a sound when cuando suceda un evento _BEL_.
a _BEL_ occurs.
O puede añadir un comando al disparador "beep": O puede añadir un comando al disparador "beep":
@@ -975,32 +1028,44 @@ Otros scripts para este tema:
[[disable_highlights_for_specific_nicks]] [[disable_highlights_for_specific_nicks]]
=== ¿Cómo puedo inhabilitar las menciones de unos apodos específicos? === ¿Cómo puedo inhabilitar las menciones de unos apodos específicos?
// TRANSLATION MISSING Con WeeChat ≥ 0.3.4 puede utilizar
You can use the link:weechat_user.en.html#max_hotlist_level_nicks[hotlist_max_level_nicks_add ^↗^,window=_blank]
link:weechat_user.en.html#max_hotlist_level_nicks[hotlist_max_level_nicks_add ^↗^^] esta propiedad del buffer para configurar el nivel máximo de la hotlist para algunos apodos, por buffer,
buffer property to set the max hotlist level for some nicks, per buffer, o por grupo de buffers (como servidores IRC).
or per group of buffers (like IRC servers).
Para únicamente inhabilitar las notificaciones, debería establecerlo a 2. Para únicamente inhabilitar las notificaciones, debería establecerlo a 2:
// TRANSLATION MISSING
For the current buffer:
---- ----
/buffer setauto hotlist_max_level_nicks_add joe:2,mike:2 /buffer set hotlist_max_level_nicks_add joe:2,mike:2
---- ----
// TRANSLATION MISSING Esta propiedad del buffer no es almacenada en la configuración.
For all channels on server "libera": Para volver a aplicar automáticamente estas propiedades del buffer, necesitaría el script
_buffer_autoset.py_:
---- ----
/set weechat.buffer.irc.libera.*.hotlist_max_level_nicks_add joe:2,mike:2 /script install buffer_autoset.py
---- ----
Por ejemplo, para inhabilitar automáticamente las menciones de "mike" en #weechat
en el servidor IRC de libera:
----
/buffer_autoset add irc.libera.#weechat hotlist_max_level_nicks_add mike:2
----
Para aplicarlo al servidor completo de libera:
----
/buffer_autoset add irc.libera hotlist_max_level_nicks_add mike:2
----
Para más ejemplos, vea `+/help buffer_autoset+`.
[[irc_target_buffer]] [[irc_target_buffer]]
=== ¿Cómo puedo cambiar el objetivo del buffer para comandos en buffers unidos (como en un buffer con servidores)? === ¿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]] [[plugins_scripts]]
== Complementos / scripts == Complementos / scripts
@@ -1020,16 +1085,15 @@ Deberá configurar lo siguiente:
[[install_scripts]] [[install_scripts]]
=== ¿Cómo puedo instalar scripts? ¿Son los scripts compatibles con otros clientes IRC? === ¿Cómo puedo instalar scripts? ¿Son los scripts compatibles con otros clientes IRC?
// TRANSLATION MISSING Con WeeChat ≥ 0.3.9 puede utilizar el comando `/script` para instalar y gestionar los scripts
You can use the command `/script` to install and manage scripts (see `/help script` (vea `/help script` para obtener más ayuda). Para versiones anteriores existe weeget.py y script.pl.
for help).
Los scripts no son compatibles con otros clientes IRC. Los scripts no son compatibles con otros clientes IRC.
[[scripts_update]] [[scripts_update]]
=== El comando "/script update" no puede leer los scripts, ¿Cómo puedo solucionar eso? === 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): Si todavía no funciona, trate de manera manual eliminar los archivos de scripts (escriba en su terminal):
@@ -1037,9 +1101,8 @@ Si todavía no funciona, trate de manera manual eliminar los archivos de scripts
$ rm ~/.cache/weechat/script/plugins.xml.gz $ rm ~/.cache/weechat/script/plugins.xml.gz
---- ----
// TRANSLATION MISSING
[NOTE] [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: Y vuelva a actualitar los scripts de nuevo en WeeChat:
@@ -1082,6 +1145,10 @@ Deberá recargar el complemento spell:
/plugin reload 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]] [[settings]]
== Ajustes == Ajustes
@@ -1115,7 +1182,7 @@ Puede intentar estos trucos para consumir menos memoria:
fifo, logger, perl, python, ruby, lua, tcl, guile, javascript, php, spell, fifo, logger, perl, python, ruby, lua, tcl, guile, javascript, php, spell,
xfer (usado para DCC). Vea `/help weechat.plugin.autoload`. xfer (usado para DCC). Vea `/help weechat.plugin.autoload`.
* Cargue solo los scripts que realmente necesite. * 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_. _weechat.network.gnutls_ca_system_.
* Reduzca el valor de la opción _weechat.history.max_buffer_lines_number_ o establezca * 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_. el valor de la opción _weechat.history.max_buffer_lines_minutes_.
@@ -1126,10 +1193,7 @@ Puede intentar estos trucos para consumir menos memoria:
Puede seguir los mismos consejo que para la <<memory_usage,memoria>> y estos otros: Puede seguir los mismos consejo que para la <<memory_usage,memoria>> y estos otros:
// TRANSLATION MISSING * Oculte la barra de la lista de apodos: `/bar hide nicklist`.
* Oculte la barra de la lista de apodos: `/bar hide nicklist` (key: kbd:[Alt+Shift+N]).
// TRANSLATION MISSING
* Disable "buflist": `/buflist disable` (key: kbd:[Alt+Shift+B]).
* Elimine que se muestren los segundos en la hora de la barra de estado: * Elimine que se muestren los segundos en la hora de la barra de estado:
`+/set weechat.look.item_time_format "%H:%M"+` (este es el valor predeterminado). `+/set weechat.look.item_time_format "%H:%M"+` (este es el valor predeterminado).
* Inhabilite la comprobación en tiempo real de palabras erróneas en la línea de comandos (si lo había habilitado previamente): * Inhabilite la comprobación en tiempo real de palabras erróneas en la línea de comandos (si lo había habilitado previamente):
@@ -1151,21 +1215,14 @@ Inhabilite las respuestas a todas las peticiones CTCP:
---- ----
/set irc.ctcp.clientinfo "" /set irc.ctcp.clientinfo ""
/set irc.ctcp.finger ""
/set irc.ctcp.source "" /set irc.ctcp.source ""
/set irc.ctcp.time "" /set irc.ctcp.time ""
/set irc.ctcp.userinfo ""
/set irc.ctcp.version "" /set irc.ctcp.version ""
/set irc.ctcp.ping "" /set irc.ctcp.ping ""
---- ----
// TRANSLATION MISSING
With WeeChat < 4.1.0, other CTCP queries were replied by default and must be
disabled as well:
----
/set irc.ctcp.finger ""
/set irc.ctcp.userinfo ""
----
Elimine de la memoria e inhabilite la carga automática del complemento "xfer" (utilizdo para IRC DCC): Elimine de la memoria e inhabilite la carga automática del complemento "xfer" (utilizdo para IRC DCC):
---- ----
@@ -1176,7 +1233,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 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 como contraseñas: vea `/help secure` y `/help` en las opciones
(si puede utilice datos seguros, está escrito en la ayuda). (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 ^↗^,window=_blank].
Por ejemplo: Por ejemplo:
@@ -1197,38 +1254,9 @@ 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 Algunos otros archivos pueden contener información sensible como contraseñas (si no están
almacenadas en _sec.conf_ con el comando `/secure`). 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 ^↗^,window=_blank]
para más información relacionada con los archivos de configuración. para más información relacionada con los archivos de configuración.
// TRANSLATION MISSING
[[move_to_another_device]]
=== I want to move my WeeChat to another device and keep my config, what should I copy?
First check directories used by WeeChat with this command: `/debug dirs`. +
Directories home/config and home/data must be copied (all files and sub-directories).
For example if you're using XDG directories (default with WeeChat ≥ 3.2),
the directories should be `$HOME/.config/weechat` and `$HOME/.local/share/weechat`. +
If you're using a single directory (default with WeeChat < 3.2), the directory
should be `$HOME/.weechat`.
[IMPORTANT]
The WeeChat version on the new device must be greater than or equal to the version
on the initial device. +
Downgrading WeeChat configuration is *NOT SUPPORTED* and can break it,
leading to unusable WeeChat.
Steps:
. Quit Weechat: `/quit` (or `/upgrade -quit` if you want to resume the session,
which includes content of all buffers).
. Copy all directories, sub-directories and files to the new device, keeping
same names and permissions.
. Optional: copy any file outside these directories that you refer to in your
configuration (it's not recommended to use files outside WeeChat directories).
. Start WeeChat on the new device: `weechat` (or `weechat --upgrade` if you
saved the session).
[[development]] [[development]]
== Desarrollo == Desarrollo
@@ -1236,7 +1264,7 @@ Steps:
=== ¿Cómo podría informar de errores, pedir nuevas funcionalidades o enviar parches? === ¿Cómo podría informar de errores, pedir nuevas funcionalidades o enviar parches?
// TRANSLATION MISSING // TRANSLATION MISSING
See https://weechat.org/about/support/[this page ^↗^^]. See https://weechat.org/about/support/[this page ^↗^,window=_blank].
[[gdb_error_threads]] [[gdb_error_threads]]
=== Cuando ejecuto WeeChat bajo gdb, hay un error con la muestra de las conversaciones, ¿qué puedo hacer? === Cuando ejecuto WeeChat bajo gdb, hay un error con la muestra de las conversaciones, ¿qué puedo hacer?
@@ -1274,11 +1302,11 @@ Hay muchas tareas que hacer (probar, escribir código, documentación, etc.)
// TRANSLATION MISSING // TRANSLATION MISSING
Please contact us via IRC or mail, look at Please contact us via IRC or mail, look at
https://weechat.org/about/support/[support page ^↗^^]. https://weechat.org/about/support/[support page ^↗^,window=_blank].
[[donate]] [[donate]]
=== ¿Puedo donar dinero u otras cosas a las personas que desarrollan WeeChat? === ¿Puedo donar dinero u otras cosas a las personas que desarrollan WeeChat?
// TRANSLATION MISSING // TRANSLATION MISSING
You can give us money to help development. You can give us money to help development.
Details on https://weechat.org/donate/[donation page ^↗^^]. Details on https://weechat.org/donate/[donation page ^↗^,window=_blank].
+8 -4
View File
@@ -2,13 +2,17 @@
:author: Sébastien Helleu :author: Sébastien Helleu
:email: flashcode@flashtux.org :email: flashcode@flashtux.org
:lang: es :lang: es
:toc-title: Índice :toc: left
:sectnums:
:docinfo1:
Traductores: Traductores:
* Lázaro A. <uranio-235@myopera.com>, 2012 * Lázaro A. <uranio-235@myopera.com>, 2012
* Victorhck <victorhck@mailbox.org>, 2021 * Victorhck <victorhck@mailbox.org>, 2021
[[start]] [[start]]
== Iniciar WeeChat == Iniciar WeeChat
@@ -111,7 +115,7 @@ seguramente vera irc y otros.
Puede añadir un servidor IRC mediante el comando `/server`, por ejemplo: 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: En este comando, `libera` es el nombre interno del servidor utilizado por WeeChat:
@@ -400,14 +404,14 @@ Vea `/help script` para obtener más información.
// TRANSLATION MISSING // TRANSLATION MISSING
A list of scripts is available in WeeChat with `/script` or on A list of scripts is available in WeeChat with `/script` or on
https://weechat.org/scripts/[this page ^↗^^]. https://weechat.org/scripts/[this page ^↗^,window=_blank].
[[more_doc]] [[more_doc]]
== Más documentación == Más documentación
// TRANSLATION MISSING // TRANSLATION MISSING
You can now use WeeChat and read You can now use WeeChat and read
https://weechat.org/doc/[FAQ/documentation ^↗^^] https://weechat.org/doc/[FAQ/documentation ^↗^,window=_blank]
for any other questions. for any other questions.
¡Disfrute de WeeChat! ¡Disfrute de WeeChat!

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