The response has been limited to 50k tokens of the smallest files in the repo. You can remove this limitation by removing the max tokens filter.
├── .editorconfig
├── AUTHORS.md
├── CHANGELOG.md
├── CMakeLists.txt
├── CONTRIBUTING.md
├── COPYING
├── LICENSES
    ├── BSD-3-Clause.txt
    └── GPL-3.0-or-later.txt
├── README.md
├── REUSE.toml
├── UPGRADING.md
├── cmake
    ├── FindAsciidoctor.cmake
    ├── FindAspell.cmake
    ├── FindCppUTest.cmake
    ├── FindENCHANT.cmake
    ├── FindGettext.cmake
    ├── FindGuile.cmake
    ├── FindIconv.cmake
    ├── FindLua.cmake
    ├── FindNcurses.cmake
    ├── FindPHP.cmake
    ├── FindPerl.cmake
    ├── FindV8.cmake
    └── cmake_uninstall.cmake.in
├── config.h.cmake
├── doc
    ├── CMakeLists.txt
    ├── cs
    │   ├── includes
    │   │   ├── attributes-cs.adoc
    │   │   ├── cmdline_options.cs.adoc
    │   │   └── man.cs.adoc
    │   ├── weechat-headless.1.cs.adoc
    │   ├── weechat.1.cs.adoc
    │   └── weechat_quickstart.cs.adoc
    ├── de
    │   ├── includes
    │   │   ├── attributes-de.adoc
    │   │   ├── cmdline_options.de.adoc
    │   │   └── man.de.adoc
    │   ├── weechat-headless.1.de.adoc
    │   ├── weechat.1.de.adoc
    │   ├── weechat_faq.de.adoc
    │   ├── weechat_quickstart.de.adoc
    │   ├── weechat_scripting.de.adoc
    │   └── weechat_user.de.adoc
    ├── docinfo.html
    ├── en
    │   ├── includes
    │   │   ├── attributes-en.adoc
    │   │   ├── cmdline_options.en.adoc
    │   │   ├── man.en.adoc
    │   │   └── relay.en.adoc
    │   ├── weechat-headless.1.en.adoc
    │   ├── weechat.1.en.adoc
    │   ├── weechat_dev.en.adoc
    │   ├── weechat_faq.en.adoc
    │   ├── weechat_plugin_api.en.adoc
    │   ├── weechat_quickstart.en.adoc
    │   ├── weechat_relay_api.en.adoc
    │   ├── weechat_relay_weechat.en.adoc
    │   ├── weechat_scripting.en.adoc
    │   └── weechat_user.en.adoc
    ├── es
    │   ├── includes
    │   │   └── attributes-es.adoc
    │   ├── weechat_faq.es.adoc
    │   └── weechat_quickstart.es.adoc
    ├── fr
    │   ├── includes
    │   │   ├── attributes-fr.adoc
    │   │   ├── cmdline_options.fr.adoc
    │   │   ├── man.fr.adoc
    │   │   └── relay.fr.adoc
    │   ├── weechat-headless.1.fr.adoc
    │   ├── weechat.1.fr.adoc
    │   ├── weechat_dev.fr.adoc
    │   ├── weechat_faq.fr.adoc
    │   ├── weechat_plugin_api.fr.adoc
    │   ├── weechat_quickstart.fr.adoc
    │   ├── weechat_relay_api.fr.adoc
    │   ├── weechat_relay_weechat.fr.adoc
    │   ├── weechat_scripting.fr.adoc
    │   └── weechat_user.fr.adoc
    ├── it
    │   ├── includes
    │   │   ├── attributes-it.adoc
    │   │   ├── cmdline_options.it.adoc
    │   │   └── man.it.adoc
    │   ├── weechat-headless.1.it.adoc
    │   ├── weechat.1.it.adoc
    │   ├── weechat_faq.it.adoc
    │   ├── weechat_plugin_api.it.adoc
    │   ├── weechat_quickstart.it.adoc
    │   ├── weechat_scripting.it.adoc
    │   └── weechat_user.it.adoc
    ├── ja
    │   ├── includes
    │   │   ├── attributes-ja.adoc
    │   │   ├── cmdline_options.ja.adoc
    │   │   ├── man.ja.adoc
    │   │   └── relay.ja.adoc
    │   ├── weechat-headless.1.ja.adoc
    │   ├── weechat.1.ja.adoc
    │   ├── weechat_dev.ja.adoc
    │   ├── weechat_faq.ja.adoc
    │   ├── weechat_plugin_api.ja.adoc
    │   ├── weechat_quickstart.ja.adoc
    │   ├── weechat_relay_weechat.ja.adoc
    │   ├── weechat_scripting.ja.adoc
    │   └── weechat_user.ja.adoc
    ├── pl
    │   ├── includes
    │   │   ├── attributes-pl.adoc
    │   │   ├── cmdline_options.pl.adoc
    │   │   └── man.pl.adoc
    │   ├── weechat-headless.1.pl.adoc
    │   ├── weechat.1.pl.adoc
    │   ├── weechat_faq.pl.adoc
    │   ├── weechat_quickstart.pl.adoc
    │   ├── weechat_scripting.pl.adoc
    │   └── weechat_user.pl.adoc
    ├── ru
    │   ├── includes
    │   │   ├── attributes-ru.adoc
    │   │   ├── cmdline_options.ru.adoc
    │   │   └── man.ru.adoc
    │   ├── weechat-headless.1.ru.adoc
    │   ├── weechat.1.ru.adoc
    │   └── weechat_quickstart.ru.adoc
    └── sr
    │   ├── includes
    │       ├── attributes-sr.adoc
    │       ├── cmdline_options.sr.adoc
    │       ├── man.sr.adoc
    │       └── relay.sr.adoc
    │   ├── weechat-headless.1.sr.adoc
    │   ├── weechat.1.sr.adoc
    │   ├── weechat_dev.sr.adoc
    │   ├── weechat_faq.sr.adoc
    │   ├── weechat_plugin_api.sr.adoc
    │   ├── weechat_quickstart.sr.adoc
    │   ├── weechat_relay_weechat.sr.adoc
    │   ├── weechat_scripting.sr.adoc
    │   └── weechat_user.sr.adoc
├── icons
    ├── 128x128
    │   └── weechat.png
    ├── 16x16
    │   └── weechat.png
    ├── 256x256
    │   └── weechat.png
    ├── 32x32
    │   └── weechat.png
    ├── 512x512
    │   └── weechat.png
    ├── 64x64
    │   └── weechat.png
    ├── CMakeLists.txt
    └── scalable
    │   └── weechat.svg
├── po
    ├── CMakeLists.txt
    ├── cs.po
    ├── de.po
    ├── es.po
    ├── fr.po
    ├── hu.po
    ├── it.po
    ├── ja.po
    ├── pl.po
    ├── pt.po
    ├── pt_BR.po
    ├── ru.po
    ├── sr.po
    ├── tr.po
    └── weechat.pot
├── schemathesis.toml
├── src
    ├── CMakeLists.txt
    ├── core
    │   ├── CMakeLists.txt
    │   ├── core-arraylist.c
    │   ├── core-arraylist.h
    │   ├── core-backtrace.c
    │   ├── core-backtrace.h
    │   ├── core-calc.c
    │   ├── core-calc.h
    │   ├── core-command.c
    │   ├── core-command.h
    │   ├── core-completion.c
    │   ├── core-completion.h
    │   ├── core-config-file.c
    │   ├── core-config-file.h
    │   ├── core-config.c
    │   ├── core-config.h
    │   ├── core-crypto.c
    │   ├── core-crypto.h
    │   ├── core-debug.c
    │   ├── core-debug.h
    │   ├── core-dir.c
    │   ├── core-dir.h
    │   ├── core-doc.c
    │   ├── core-doc.h
    │   ├── core-eval.c
    │   ├── core-eval.h
    │   ├── core-hashtable.c
    │   ├── core-hashtable.h
    │   ├── core-hdata.c
    │   ├── core-hdata.h
    │   ├── core-hook.c
    │   ├── core-hook.h
    │   ├── core-infolist.c
    │   ├── core-infolist.h
    │   ├── core-input.c
    │   ├── core-input.h
    │   ├── core-list.c
    │   ├── core-list.h
    │   ├── core-log.c
    │   ├── core-log.h
    │   ├── core-network.c
    │   ├── core-network.h
    │   ├── core-proxy.c
    │   ├── core-proxy.h
    │   ├── core-secure-buffer.c
    │   ├── core-secure-buffer.h
    │   ├── core-secure-config.c
    │   ├── core-secure-config.h
    │   ├── core-secure.c
    │   ├── core-secure.h
    │   ├── core-signal.c
    │   ├── core-signal.h
    │   ├── core-string.c
    │   ├── core-string.h
    │   ├── core-sys.c
    │   ├── core-sys.h
    │   ├── core-upgrade-file.c
    │   ├── core-upgrade-file.h
    │   ├── core-upgrade.c
    │   ├── core-upgrade.h
    │   ├── core-url.c
    │   ├── core-url.h
    │   ├── core-utf8.c
    │   ├── core-utf8.h
    │   ├── core-util.c
    │   ├── core-util.h
    │   ├── core-version.c
    │   ├── core-version.h
    │   ├── hook
    │   │   ├── hook-command-run.c
    │   │   ├── hook-command-run.h
    │   │   ├── hook-command.c
    │   │   ├── hook-command.h
    │   │   ├── hook-completion.c
    │   │   ├── hook-completion.h
    │   │   ├── hook-config.c
    │   │   ├── hook-config.h
    │   │   ├── hook-connect.c
    │   │   ├── hook-connect.h
    │   │   ├── hook-fd.c
    │   │   ├── hook-fd.h
    │   │   ├── hook-focus.c
    │   │   ├── hook-focus.h
    │   │   ├── hook-hdata.c
    │   │   ├── hook-hdata.h
    │   │   ├── hook-hsignal.c
    │   │   ├── hook-hsignal.h
    │   │   ├── hook-info-hashtable.c
    │   │   ├── hook-info-hashtable.h
    │   │   ├── hook-info.c
    │   │   ├── hook-info.h
    │   │   ├── hook-infolist.c
    │   │   ├── hook-infolist.h
    │   │   ├── hook-line.c
    │   │   ├── hook-line.h
    │   │   ├── hook-modifier.c
    │   │   ├── hook-modifier.h
    │   │   ├── hook-print.c
    │   │   ├── hook-print.h
    │   │   ├── hook-process.c
    │   │   ├── hook-process.h
    │   │   ├── hook-signal.c
    │   │   ├── hook-signal.h
    │   │   ├── hook-timer.c
    │   │   ├── hook-timer.h
    │   │   ├── hook-url.c
    │   │   └── hook-url.h
    │   ├── weechat.c
    │   └── weechat.h
    ├── gui
    │   ├── CMakeLists.txt
    │   ├── curses
    │   │   ├── CMakeLists.txt
    │   │   ├── gui-curses-bar-window.c
    │   │   ├── gui-curses-bar-window.h
    │   │   ├── gui-curses-chat.c
    │   │   ├── gui-curses-chat.h
    │   │   ├── gui-curses-color.c
    │   │   ├── gui-curses-color.h
    │   │   ├── gui-curses-key.c
    │   │   ├── gui-curses-key.h
    │   │   ├── gui-curses-main.c
    │   │   ├── gui-curses-main.h
    │   │   ├── gui-curses-mouse.c
    │   │   ├── gui-curses-mouse.h
    │   │   ├── gui-curses-term.c
    │   │   ├── gui-curses-window.c
    │   │   ├── gui-curses-window.h
    │   │   ├── gui-curses.h
    │   │   ├── headless
    │   │   │   ├── CMakeLists.txt
    │   │   │   ├── main.c
    │   │   │   ├── ncurses-fake.c
    │   │   │   └── ncurses-fake.h
    │   │   └── normal
    │   │   │   ├── CMakeLists.txt
    │   │   │   └── main.c
    │   ├── gui-bar-item-custom.c
    │   ├── gui-bar-item-custom.h
    │   ├── gui-bar-item.c
    │   ├── gui-bar-item.h
    │   ├── gui-bar-window.c
    │   ├── gui-bar-window.h
    │   ├── gui-bar.c
    │   ├── gui-bar.h
    │   ├── gui-buffer.c
    │   ├── gui-buffer.h
    │   ├── gui-chat.c
    │   ├── gui-chat.h
    │   ├── gui-color.c
    │   ├── gui-color.h
    │   ├── gui-completion.c
    │   ├── gui-completion.h
    │   ├── gui-cursor.c
    │   ├── gui-cursor.h
    │   ├── gui-filter.c
    │   ├── gui-filter.h
    │   ├── gui-focus.c
    │   ├── gui-focus.h
    │   ├── gui-history.c
    │   ├── gui-history.h
    │   ├── gui-hotlist.c
    │   ├── gui-hotlist.h
    │   ├── gui-input.c
    │   ├── gui-input.h
    │   ├── gui-key.c
    │   ├── gui-key.h
    │   ├── gui-layout.c
    │   ├── gui-layout.h
    │   ├── gui-line.c
    │   ├── gui-line.h
    │   ├── gui-main.h
    │   ├── gui-mouse.c
    │   ├── gui-mouse.h
    │   ├── gui-nick.c
    │   ├── gui-nick.h
    │   ├── gui-nicklist.c
    │   ├── gui-nicklist.h
    │   ├── gui-window.c
    │   └── gui-window.h
    └── plugins
    │   ├── CMakeLists.txt
    │   ├── alias
    │       ├── CMakeLists.txt
    │       ├── alias-command.c
    │       ├── alias-command.h
    │       ├── alias-completion.c
    │       ├── alias-completion.h
    │       ├── alias-config.c
    │       ├── alias-config.h
    │       ├── alias-info.c
    │       ├── alias-info.h
    │       ├── alias.c
    │       └── alias.h
    │   ├── buflist
    │       ├── CMakeLists.txt
    │       ├── buflist-bar-item.c
    │       ├── buflist-bar-item.h
    │       ├── buflist-command.c
    │       ├── buflist-command.h
    │       ├── buflist-completion.c
    │       ├── buflist-completion.h
    │       ├── buflist-config.c
    │       ├── buflist-config.h
    │       ├── buflist-info.c
    │       ├── buflist-info.h
    │       ├── buflist-mouse.c
    │       ├── buflist-mouse.h
    │       ├── buflist.c
    │       └── buflist.h
    │   ├── charset
    │       ├── CMakeLists.txt
    │       ├── charset.c
    │       └── charset.h
    │   ├── exec
    │       ├── CMakeLists.txt
    │       ├── exec-buffer.c
    │       ├── exec-buffer.h
    │       ├── exec-command.c
    │       ├── exec-command.h
    │       ├── exec-completion.c
    │       ├── exec-completion.h
    │       ├── exec-config.c
    │       ├── exec-config.h
    │       ├── exec.c
    │       └── exec.h
    │   ├── fifo
    │       ├── CMakeLists.txt
    │       ├── fifo-command.c
    │       ├── fifo-command.h
    │       ├── fifo-config.c
    │       ├── fifo-config.h
    │       ├── fifo-info.c
    │       ├── fifo-info.h
    │       ├── fifo.c
    │       └── fifo.h
    │   ├── fset
    │       ├── CMakeLists.txt
    │       ├── fset-bar-item.c
    │       ├── fset-bar-item.h
    │       ├── fset-buffer.c
    │       ├── fset-buffer.h
    │       ├── fset-command.c
    │       ├── fset-command.h
    │       ├── fset-completion.c
    │       ├── fset-completion.h
    │       ├── fset-config.c
    │       ├── fset-config.h
    │       ├── fset-info.c
    │       ├── fset-info.h
    │       ├── fset-mouse.c
    │       ├── fset-mouse.h
    │       ├── fset-option.c
    │       ├── fset-option.h
    │       ├── fset.c
    │       └── fset.h
    │   ├── guile
    │       ├── CMakeLists.txt
    │       ├── weechat-guile-api.c
    │       ├── weechat-guile-api.h
    │       ├── weechat-guile.c
    │       └── weechat-guile.h
    │   ├── irc
    │       ├── CMakeLists.txt
    │       ├── irc-bar-item.c
    │       ├── irc-bar-item.h
    │       ├── irc-batch.c
    │       ├── irc-batch.h
    │       ├── irc-buffer.c
    │       ├── irc-buffer.h
    │       ├── irc-channel.c
    │       ├── irc-channel.h
    │       ├── irc-color.c
    │       ├── irc-color.h
    │       ├── irc-command.c
    │       ├── irc-command.h
    │       ├── irc-completion.c
    │       ├── irc-completion.h
    │       ├── irc-config.c
    │       ├── irc-config.h
    │       ├── irc-ctcp.c
    │       ├── irc-ctcp.h
    │       ├── irc-debug.c
    │       ├── irc-debug.h
    │       ├── irc-ignore.c
    │       ├── irc-ignore.h
    │       ├── irc-info.c
    │       ├── irc-info.h
    │       ├── irc-input.c
    │       ├── irc-input.h
    │       ├── irc-join.c
    │       ├── irc-join.h
    │       ├── irc-list.c
    │       ├── irc-list.h
    │       ├── irc-message.c
    │       ├── irc-message.h
    │       ├── irc-mode.c
    │       ├── irc-mode.h
    │       ├── irc-modelist.c
    │       ├── irc-modelist.h
    │       ├── irc-msgbuffer.c
    │       ├── irc-msgbuffer.h
    │       ├── irc-nick.c
    │       ├── irc-nick.h
    │       ├── irc-notify.c
    │       ├── irc-notify.h
    │       ├── irc-protocol.c
    │       ├── irc-protocol.h
    │       ├── irc-raw.c
    │       ├── irc-raw.h
    │       ├── irc-redirect.c
    │       ├── irc-redirect.h
    │       ├── irc-sasl.c
    │       ├── irc-sasl.h
    │       ├── irc-server.c
    │       ├── irc-server.h
    │       ├── irc-tag.c
    │       ├── irc-tag.h
    │       ├── irc-typing.c
    │       ├── irc-typing.h
    │       ├── irc-upgrade.c
    │       ├── irc-upgrade.h
    │       ├── irc.c
    │       └── irc.h
    │   ├── javascript
    │       ├── CMakeLists.txt
    │       ├── weechat-js-api.cpp
    │       ├── weechat-js-api.h
    │       ├── weechat-js-v8.cpp
    │       ├── weechat-js-v8.h
    │       ├── weechat-js.cpp
    │       └── weechat-js.h
    │   ├── logger
    │       ├── CMakeLists.txt
    │       ├── logger-backlog.c
    │       ├── logger-backlog.h
    │       ├── logger-buffer.c
    │       ├── logger-buffer.h
    │       ├── logger-command.c
    │       ├── logger-command.h
    │       ├── logger-config.c
    │       ├── logger-config.h
    │       ├── logger-info.c
    │       ├── logger-info.h
    │       ├── logger-tail.c
    │       ├── logger-tail.h
    │       ├── logger.c
    │       └── logger.h
    │   ├── lua
    │       ├── CMakeLists.txt
    │       ├── weechat-lua-api.c
    │       ├── weechat-lua-api.h
    │       ├── weechat-lua.c
    │       └── weechat-lua.h
    │   ├── perl
    │       ├── CMakeLists.txt
    │       ├── weechat-perl-api.c
    │       ├── weechat-perl-api.h
    │       ├── weechat-perl.c
    │       └── weechat-perl.h
    │   ├── php
    │       ├── CMakeLists.txt
    │       ├── weechat-php-api.c
    │       ├── weechat-php-api.h
    │       ├── weechat-php.c
    │       ├── weechat-php.h
    │       ├── weechat-php.stub.php
    │       ├── weechat-php_arginfo.h
    │       └── weechat-php_legacy_arginfo.h
    │   ├── plugin-api-info.c
    │   ├── plugin-api-info.h
    │   ├── plugin-api.c
    │   ├── plugin-api.h
    │   ├── plugin-config.c
    │   ├── plugin-config.h
    │   ├── plugin-script-api.c
    │   ├── plugin-script-api.h
    │   ├── plugin-script-config.c
    │   ├── plugin-script-config.h
    │   ├── plugin-script.c
    │   ├── plugin-script.h
    │   ├── plugin.c
    │   ├── plugin.h
    │   ├── python
    │       ├── CMakeLists.txt
    │       ├── weechat-python-api.c
    │       ├── weechat-python-api.h
    │       ├── weechat-python.c
    │       ├── weechat-python.h
    │       └── weechat.pyi
    │   ├── relay
    │       ├── CMakeLists.txt
    │       ├── api
    │       │   ├── relay-api-msg.c
    │       │   ├── relay-api-msg.h
    │       │   ├── relay-api-protocol.c
    │       │   ├── relay-api-protocol.h
    │       │   ├── relay-api.c
    │       │   ├── relay-api.h
    │       │   ├── remote
    │       │   │   ├── relay-remote-event.c
    │       │   │   ├── relay-remote-event.h
    │       │   │   ├── relay-remote-network.c
    │       │   │   └── relay-remote-network.h
    │       │   └── weechat-relay-api.yaml
    │       ├── irc
    │       │   ├── relay-irc.c
    │       │   └── relay-irc.h
    │       ├── relay-auth.c
    │       ├── relay-auth.h
    │       ├── relay-bar-item.c
    │       ├── relay-bar-item.h
    │       ├── relay-buffer.c
    │       ├── relay-buffer.h
    │       ├── relay-client.c
    │       ├── relay-client.h
    │       ├── relay-command.c
    │       ├── relay-command.h
    │       ├── relay-completion.c
    │       ├── relay-completion.h
    │       ├── relay-config.c
    │       ├── relay-config.h
    │       ├── relay-http.c
    │       ├── relay-http.h
    │       ├── relay-info.c
    │       ├── relay-info.h
    │       ├── relay-network.c
    │       ├── relay-network.h
    │       ├── relay-raw.c
    │       ├── relay-raw.h
    │       ├── relay-remote.c
    │       ├── relay-remote.h
    │       ├── relay-server.c
    │       ├── relay-server.h
    │       ├── relay-upgrade.c
    │       ├── relay-upgrade.h
    │       ├── relay-websocket.c
    │       ├── relay-websocket.h
    │       ├── relay.c
    │       ├── relay.h
    │       └── weechat
    │       │   ├── relay-weechat-msg.c
    │       │   ├── relay-weechat-msg.h
    │       │   ├── relay-weechat-nicklist.c
    │       │   ├── relay-weechat-nicklist.h
    │       │   ├── relay-weechat-protocol.c
    │       │   ├── relay-weechat-protocol.h
    │       │   ├── relay-weechat.c
    │       │   └── relay-weechat.h
    │   ├── ruby
    │       ├── CMakeLists.txt
    │       ├── weechat-ruby-api.c
    │       ├── weechat-ruby-api.h
    │       ├── weechat-ruby.c
    │       └── weechat-ruby.h
    │   ├── script
    │       ├── CMakeLists.txt
    │       ├── script-action.c
    │       ├── script-action.h
    │       ├── script-buffer.c
    │       ├── script-buffer.h
    │       ├── script-command.c
    │       ├── script-command.h
    │       ├── script-completion.c
    │       ├── script-completion.h
    │       ├── script-config.c
    │       ├── script-config.h
    │       ├── script-info.c
    │       ├── script-info.h
    │       ├── script-mouse.c
    │       ├── script-mouse.h
    │       ├── script-repo.c
    │       ├── script-repo.h
    │       ├── script.c
    │       └── script.h
    │   ├── spell
    │       ├── CMakeLists.txt
    │       ├── spell-bar-item.c
    │       ├── spell-bar-item.h
    │       ├── spell-command.c
    │       ├── spell-command.h
    │       ├── spell-completion.c
    │       ├── spell-completion.h
    │       ├── spell-config.c
    │       ├── spell-config.h
    │       ├── spell-info.c
    │       ├── spell-info.h
    │       ├── spell-speller.c
    │       ├── spell-speller.h
    │       ├── spell.c
    │       └── spell.h
    │   ├── tcl
    │       ├── CMakeLists.txt
    │       ├── weechat-tcl-api.c
    │       ├── weechat-tcl-api.h
    │       ├── weechat-tcl.c
    │       └── weechat-tcl.h
    │   ├── trigger
    │       ├── CMakeLists.txt
    │       ├── trigger-buffer.c
    │       ├── trigger-buffer.h
    │       ├── trigger-callback.c
    │       ├── trigger-callback.h
    │       ├── trigger-command.c
    │       ├── trigger-command.h
    │       ├── trigger-completion.c
    │       ├── trigger-completion.h
    │       ├── trigger-config.c
    │       ├── trigger-config.h
    │       ├── trigger.c
    │       └── trigger.h
    │   ├── typing
    │       ├── CMakeLists.txt
    │       ├── typing-bar-item.c
    │       ├── typing-bar-item.h
    │       ├── typing-config.c
    │       ├── typing-config.h
    │       ├── typing-status.c
    │       ├── typing-status.h
    │       ├── typing.c
    │       └── typing.h
    │   ├── weechat-plugin.h
    │   └── xfer
    │       ├── CMakeLists.txt
    │       ├── xfer-buffer.c
    │       ├── xfer-buffer.h
    │       ├── xfer-chat.c
    │       ├── xfer-chat.h
    │       ├── xfer-command.c
    │       ├── xfer-command.h
    │       ├── xfer-completion.c
    │       ├── xfer-completion.h
    │       ├── xfer-config.c
    │       ├── xfer-config.h
    │       ├── xfer-dcc.c
    │       ├── xfer-dcc.h
    │       ├── xfer-file.c
    │       ├── xfer-file.h
    │       ├── xfer-info.c
    │       ├── xfer-info.h
    │       ├── xfer-network.c
    │       ├── xfer-network.h
    │       ├── xfer-upgrade.c
    │       ├── xfer-upgrade.h
    │       ├── xfer.c
    │       └── xfer.h
├── tests
    ├── CMakeLists.txt
    ├── fuzz
    │   ├── CMakeLists.txt
    │   ├── core
    │   │   ├── calc-fuzzer.cc
    │   │   ├── crypto-fuzzer.cc
    │   │   ├── eval-fuzzer.cc
    │   │   ├── secure-fuzzer.cc
    │   │   ├── string-fuzzer.cc
    │   │   ├── utf8-fuzzer.cc
    │   │   ├── util-fuzzer.cc
    │   │   └── weechat_core_calc_fuzzer.dict
    │   └── ossfuzz.sh
    └── unit
    │   ├── CMakeLists.txt
    │   ├── core
    │       ├── hook
    │       │   ├── test-hook-command-run.cpp
    │       │   ├── test-hook-command.cpp
    │       │   ├── test-hook-completion.cpp
    │       │   ├── test-hook-config.cpp
    │       │   ├── test-hook-connect.cpp
    │       │   ├── test-hook-fd.cpp
    │       │   ├── test-hook-focus.cpp
    │       │   ├── test-hook-hdata.cpp
    │       │   ├── test-hook-hsignal.cpp
    │       │   ├── test-hook-info-hashtable.cpp
    │       │   ├── test-hook-info.cpp
    │       │   ├── test-hook-infolist.cpp
    │       │   ├── test-hook-line.cpp
    │       │   ├── test-hook-modifier.cpp
    │       │   ├── test-hook-print.cpp
    │       │   ├── test-hook-process.cpp
    │       │   ├── test-hook-signal.cpp
    │       │   ├── test-hook-timer.cpp
    │       │   └── test-hook-url.cpp
    │       ├── test-core-arraylist.cpp
    │       ├── test-core-calc.cpp
    │       ├── test-core-command.cpp
    │       ├── test-core-config-file.cpp
    │       ├── test-core-crypto.cpp
    │       ├── test-core-dir.cpp
    │       ├── test-core-eval.cpp
    │       ├── test-core-hashtable.cpp
    │       ├── test-core-hdata.cpp
    │       ├── test-core-hook.cpp
    │       ├── test-core-infolist.cpp
    │       ├── test-core-input.cpp
    │       ├── test-core-list.cpp
    │       ├── test-core-network.cpp
    │       ├── test-core-secure.cpp
    │       ├── test-core-signal.cpp
    │       ├── test-core-string.cpp
    │       ├── test-core-sys.cpp
    │       ├── test-core-url.cpp
    │       ├── test-core-utf8.cpp
    │       └── test-core-util.cpp
    │   ├── gui
    │       ├── curses
    │       │   └── test-gui-curses-mouse.cpp
    │       ├── test-gui-bar-item-custom.cpp
    │       ├── test-gui-bar-item.cpp
    │       ├── test-gui-bar-window.cpp
    │       ├── test-gui-bar.cpp
    │       ├── test-gui-buffer.cpp
    │       ├── test-gui-chat.cpp
    │       ├── test-gui-color.cpp
    │       ├── test-gui-filter.cpp
    │       ├── test-gui-hotlist.cpp
    │       ├── test-gui-input.cpp
    │       ├── test-gui-key.cpp
    │       ├── test-gui-line.cpp
    │       ├── test-gui-nick.cpp
    │       └── test-gui-nicklist.cpp
    │   ├── plugins
    │       ├── alias
    │       │   └── test-alias.cpp
    │       ├── irc
    │       │   ├── test-irc-batch.cpp
    │       │   ├── test-irc-buffer.cpp
    │       │   ├── test-irc-channel.cpp
    │       │   ├── test-irc-color.cpp
    │       │   ├── test-irc-command.cpp
    │       │   ├── test-irc-config.cpp
    │       │   ├── test-irc-ctcp.cpp
    │       │   ├── test-irc-ignore.cpp
    │       │   ├── test-irc-info.cpp
    │       │   ├── test-irc-join.cpp
    │       │   ├── test-irc-list.cpp
    │       │   ├── test-irc-message.cpp
    │       │   ├── test-irc-mode.cpp
    │       │   ├── test-irc-nick.cpp
    │       │   ├── test-irc-protocol.cpp
    │       │   ├── test-irc-sasl.cpp
    │       │   ├── test-irc-server.cpp
    │       │   └── test-irc-tag.cpp
    │       ├── logger
    │       │   ├── test-logger-backlog.cpp
    │       │   ├── test-logger-tail.cpp
    │       │   └── test-logger.cpp
    │       ├── relay
    │       │   ├── api
    │       │   │   ├── remote
    │       │   │   │   ├── test-relay-remote-event.cpp
    │       │   │   │   └── test-relay-remote-network.cpp
    │       │   │   ├── test-relay-api-msg.cpp
    │       │   │   ├── test-relay-api-protocol.cpp
    │       │   │   └── test-relay-api.cpp
    │       │   ├── irc
    │       │   │   └── test-relay-irc.cpp
    │       │   ├── test-relay-auth.cpp
    │       │   ├── test-relay-bar-item.cpp
    │       │   ├── test-relay-http.cpp
    │       │   ├── test-relay-raw.cpp
    │       │   ├── test-relay-remote.cpp
    │       │   └── test-relay-websocket.cpp
    │       ├── test-plugin-api-info.cpp
    │       ├── test-plugin-config.cpp
    │       ├── test-plugins.cpp
    │       ├── trigger
    │       │   ├── test-trigger-config.cpp
    │       │   └── test-trigger.cpp
    │       ├── typing
    │       │   ├── test-typing-status.cpp
    │       │   └── test-typing.cpp
    │       └── xfer
    │       │   ├── test-xfer-file.cpp
    │       │   └── test-xfer-network.cpp
    │   ├── scripts
    │       ├── python
    │       │   ├── testapi.py
    │       │   ├── testapigen.py
    │       │   └── unparse.py
    │       └── test-scripts.cpp
    │   ├── tests-record.cpp
    │   ├── tests-record.h
    │   ├── tests.cpp
    │   └── tests.h
├── tools
    ├── build_test.sh
    ├── bump_version.sh
    ├── check_curl_symbols.py
    ├── check_scripts.sh
    ├── debian
    │   └── patches
    │   │   ├── README
    │   │   └── weechat_ubuntu_focal.patch
    ├── generate_python_stub.py
    ├── makedist.sh
    ├── release.sh
    └── set_git_version.sh
├── version.sh
├── weechat.cygport.in
├── weechat.desktop
└── weechat.pc.in


/.editorconfig:
--------------------------------------------------------------------------------
 1 | # SPDX-FileCopyrightText: 2024 Emil Velikov <emil.l.velikov@gmail.com>
 2 | # SPDX-FileCopyrightText: 2024-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 | #
 4 | # SPDX-License-Identifier: GPL-3.0-or-later
 5 | #
 6 | # To use this config on you editor, follow the instructions at:
 7 | # https://editorconfig.org
 8 | 
 9 | root = true
10 | 
11 | [*]
12 | charset = utf-8
13 | insert_final_newline = true
14 | indent_size = 4
15 | indent_style = space
16 | tab_width = 8
17 | trim_trailing_whitespace = true
18 | 
19 | [{*.{c,cpp,h}}]
20 | max_line_length = 80
21 | 
22 | [{CMakeLists.txt,*.cmake}]
23 | max_line_length = 80
24 | indent_size = 2
25 | 
26 | [*.html]
27 | indent_size = 2
28 | 
29 | [*.yml]
30 | indent_size = 2
31 | 


--------------------------------------------------------------------------------
/LICENSES/BSD-3-Clause.txt:
--------------------------------------------------------------------------------
 1 | Copyright (c) <year> <owner>.
 2 | 
 3 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
 4 | 
 5 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
 6 | 
 7 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
 8 | 
 9 | 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
10 | 
11 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
12 | 


--------------------------------------------------------------------------------
/REUSE.toml:
--------------------------------------------------------------------------------
 1 | # SPDX-FileCopyrightText: 2025 Sébastien Helleu <flashcode@flashtux.org>
 2 | #
 3 | # SPDX-License-Identifier: GPL-3.0-or-later
 4 | 
 5 | version = 1
 6 | 
 7 | [[annotations]]
 8 | path = [
 9 |     "debian-devel/**",
10 |     "debian-stable/**",
11 |     "icons/**/*.png",
12 |     "icons/**/*.svg",
13 |     "src/plugins/php/weechat-php_arginfo.h",
14 |     "src/plugins/php/weechat-php_legacy_arginfo.h",
15 |     "tools/debian/patches/**",
16 |     "weechat.desktop",
17 |     "weechat.pc.in",
18 | ]
19 | precedence = "override"
20 | SPDX-FileCopyrightText = "2003-2025 Sébastien Helleu <flashcode@flashtux.org>"
21 | SPDX-License-Identifier = "GPL-3.0-or-later"
22 | 


--------------------------------------------------------------------------------
/cmake/FindAsciidoctor.cmake:
--------------------------------------------------------------------------------
 1 | #
 2 | # SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 | #
 4 | # SPDX-License-Identifier: GPL-3.0-or-later
 5 | #
 6 | # This file is part of WeeChat, the extensible chat client.
 7 | #
 8 | # WeeChat is free software; you can redistribute it and/or modify
 9 | # it under the terms of the GNU General Public License as published by
10 | # the Free Software Foundation; either version 3 of the License, or
11 | # (at your option) any later version.
12 | #
13 | # WeeChat is distributed in the hope that it will be useful,
14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 | # GNU General Public License for more details.
17 | #
18 | # You should have received a copy of the GNU General Public License
19 | # along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 | #
21 | 
22 | # - Find Asciidoctor
23 | # This module finds if asciidoctor (version 1.5.4 or newer) is installed.
24 | 
25 | if(ASCIIDOCTOR_FOUND)
26 |   # Already in cache, be silent
27 |   set(ASCIIDOCTOR_FIND_QUIETLY TRUE)
28 | endif()
29 | 
30 | find_program(
31 |   ASCIIDOCTOR_EXECUTABLE asciidoctor
32 |   PATHS /bin /usr/bin /usr/local/bin /usr/pkg/bin
33 | )
34 | 
35 | if(ASCIIDOCTOR_EXECUTABLE)
36 |   execute_process(
37 |     COMMAND ${ASCIIDOCTOR_EXECUTABLE} --version
38 |     OUTPUT_VARIABLE ASCIIDOCTOR_VERSION
39 |   )
40 | 
41 |   string(REGEX REPLACE "^Asciidoctor ([^ ]+) .*" "\\1" ASCIIDOCTOR_VERSION "${ASCIIDOCTOR_VERSION}")
42 | 
43 |   if(ASCIIDOCTOR_VERSION VERSION_EQUAL "1.5.4" OR ASCIIDOCTOR_VERSION VERSION_GREATER "1.5.4")
44 |     set(ASCIIDOCTOR_FOUND TRUE)
45 |   endif()
46 | 
47 |   mark_as_advanced(
48 |     ASCIIDOCTOR_EXECUTABLE
49 |     ASCIIDOCTOR_VERSION
50 |   )
51 | endif()
52 | 


--------------------------------------------------------------------------------
/cmake/FindCppUTest.cmake:
--------------------------------------------------------------------------------
 1 | #
 2 | # SPDX-FileCopyrightText: 2014-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 | #
 4 | # SPDX-License-Identifier: GPL-3.0-or-later
 5 | #
 6 | # This file is part of WeeChat, the extensible chat client.
 7 | #
 8 | # WeeChat is free software; you can redistribute it and/or modify
 9 | # it under the terms of the GNU General Public License as published by
10 | # the Free Software Foundation; either version 3 of the License, or
11 | # (at your option) any later version.
12 | #
13 | # WeeChat is distributed in the hope that it will be useful,
14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 | # GNU General Public License for more details.
17 | #
18 | # You should have received a copy of the GNU General Public License
19 | # along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 | #
21 | 
22 | # - Find CppUTest
23 | # This module finds if CppUTest is installed and determines where the include
24 | # files and libraries are. It also determines what the name of the library is.
25 | # This code sets the following variables:
26 | #
27 | # CPPUTEST_FOUND        = CppUTest is installed
28 | # CPPUTEST_INCLUDE_DIRS = CppUTest include directory
29 | # CPPUTEST_LIBRARIES    = Link options to compile with CppUTest
30 | 
31 | if(CPPUTEST_FOUND)
32 |   # Already in cache, be silent
33 |   set(CPPUTEST_FIND_QUIETLY TRUE)
34 | endif()
35 | 
36 | find_package(PkgConfig)
37 | if(PKG_CONFIG_FOUND)
38 |   pkg_search_module(CPPUTEST cpputest)
39 | endif()
40 | 


--------------------------------------------------------------------------------
/cmake/FindLua.cmake:
--------------------------------------------------------------------------------
 1 | #
 2 | # SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 | #
 4 | # SPDX-License-Identifier: GPL-3.0-or-later
 5 | #
 6 | # This file is part of WeeChat, the extensible chat client.
 7 | #
 8 | # WeeChat is free software; you can redistribute it and/or modify
 9 | # it under the terms of the GNU General Public License as published by
10 | # the Free Software Foundation; either version 3 of the License, or
11 | # (at your option) any later version.
12 | #
13 | # WeeChat is distributed in the hope that it will be useful,
14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 | # GNU General Public License for more details.
17 | #
18 | # You should have received a copy of the GNU General Public License
19 | # along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 | #
21 | 
22 | # - Find Lua
23 | # This module finds if liblua is installed and determines where
24 | # the include files and libraries are.
25 | #
26 | # This code sets the following variables:
27 | #
28 | #  LUA_INCLUDE_PATH = path to where <lua.h> can be found
29 | #  LUA_LIBRARY = path to where liblua.so* (and liblualib.so* for lua <can be found (on non glibc based systems)
30 | #
31 | #  LUA_FOUND = is liblua usable on system?
32 | 
33 | if(LUA_FOUND)
34 |   # Already in cache, be silent
35 |   set(LUA_FIND_QUIETLY TRUE)
36 | endif()
37 | 
38 | find_package(PkgConfig)
39 | if(PKG_CONFIG_FOUND)
40 |   pkg_search_module(LUA lua lua5.4 lua-5.4 lua54 lua5.3 lua-5.3 lua53 lua5.2 lua-5.2 lua52 lua5.1 lua-5.1 lua51 lua-5.0 lua5.0 lua50)
41 | endif()
42 | 


--------------------------------------------------------------------------------
/cmake/FindV8.cmake:
--------------------------------------------------------------------------------
 1 | #
 2 | # SPDX-FileCopyrightText: 2015-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 | #
 4 | # SPDX-License-Identifier: GPL-3.0-or-later
 5 | #
 6 | # This file is part of WeeChat, the extensible chat client.
 7 | #
 8 | # WeeChat is free software; you can redistribute it and/or modify
 9 | # it under the terms of the GNU General Public License as published by
10 | # the Free Software Foundation; either version 3 of the License, or
11 | # (at your option) any later version.
12 | #
13 | # WeeChat is distributed in the hope that it will be useful,
14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 | # GNU General Public License for more details.
17 | #
18 | # You should have received a copy of the GNU General Public License
19 | # along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 | #
21 | 
22 | # - Find V8 (Google's JavaScript engine)
23 | # This module finds if libv8 is installed and determines where
24 | # the include files and libraries are.
25 | #
26 | # This code sets the following variables:
27 | #
28 | #  V8_INCLUDE_DIR = path to where v8.h can be found
29 | #  V8_LIBRARY = path to where libv8.so* can be found
30 | 
31 | if(V8_FOUND)
32 |   # Already in cache, be silent
33 |   SET(V8_FIND_QUIETLY TRUE)
34 | endif()
35 | 
36 | set(V8_INC_PATHS
37 |   /usr/include
38 |   ${CMAKE_INCLUDE_PATH}
39 | )
40 | find_path(V8_INCLUDE_DIR v8.h PATHS ${V8_INC_PATHS})
41 | find_library(V8_LIBRARY
42 |   NAMES v8
43 |   PATHS /lib /usr/lib /usr/local/lib /usr/pkg/lib
44 | )
45 | 
46 | find_package_handle_standard_args(V8 DEFAULT_MSG V8_LIBRARY V8_INCLUDE_DIR)
47 | 
48 | mark_as_advanced(
49 |   V8_INCLUDE_DIR
50 |   V8_LIBRARY
51 | )
52 | 


--------------------------------------------------------------------------------
/cmake/cmake_uninstall.cmake.in:
--------------------------------------------------------------------------------
 1 | #
 2 | # SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 | #
 4 | # SPDX-License-Identifier: GPL-3.0-or-later
 5 | #
 6 | # This file is part of WeeChat, the extensible chat client.
 7 | #
 8 | # WeeChat is free software; you can redistribute it and/or modify
 9 | # it under the terms of the GNU General Public License as published by
10 | # the Free Software Foundation; either version 3 of the License, or
11 | # (at your option) any later version.
12 | #
13 | # WeeChat is distributed in the hope that it will be useful,
14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 | # GNU General Public License for more details.
17 | #
18 | # You should have received a copy of the GNU General Public License
19 | # along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 | #
21 | 
22 | if(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
23 |   message(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\"")
24 | endif()
25 | 
26 | file(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files)
27 | string(REGEX REPLACE "\n" ";" files "${files}")
28 | string(REGEX REPLACE ";
quot; "" files "${files}")
29 | list(REVERSE files)
30 | foreach(file ${files})
31 |   message(STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"")
32 |   if(EXISTS "$ENV{DESTDIR}${file}")
33 |     execute_process(COMMAND "@CMAKE_COMMAND@" -E remove "$ENV{DESTDIR}${file}" OUTPUT_VARIABLE rm_out RESULT_VARIABLE rm_retval)
34 |     if("${rm_retval}" GREATER 0)
35 |       message(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"")
36 |     endif()
37 |   else()
38 |     message(STATUS "File \"$ENV{DESTDIR}${file}\" does not exist.")
39 |   endif()
40 | endforeach()
41 | 


--------------------------------------------------------------------------------
/doc/cs/includes/attributes-cs.adoc:
--------------------------------------------------------------------------------
 1 | // SPDX-FileCopyrightText: 2017-2020 Dan Allen, Sarah White, Ryan Waldron
 2 | //
 3 | // SPDX-License-Identifier: GPL-3.0-or-later
 4 | //
 5 | // czech translation, for reference only; matches the built-in behavior of core
 6 | :appendix-caption: Příloha
 7 | :appendix-refsig: {appendix-caption}
 8 | :caution-caption: Upozornění
 9 | :chapter-signifier: Kapitola
10 | :chapter-refsig: {chapter-signifier}
11 | :example-caption: Příklad
12 | :figure-caption: Obrázek
13 | :important-caption: Důležité
14 | :last-update-label: Změněno
15 | ifdef::listing-caption[:listing-caption: Seznam]
16 | ifdef::manname-title[:manname-title: Název]
17 | :note-caption: Poznámka
18 | :part-signifier: Část
19 | :part-refsig: {part-signifier}
20 | ifdef::preface-title[:preface-title: Úvod]
21 | :section-refsig: Oddíl
22 | :table-caption: Tabulka
23 | :tip-caption: Tip
24 | :toc-title: Obsah
25 | :untitled-label: Nepojmenovaný
26 | :version-label: Verze
27 | :warning-caption: Varování
28 | 


--------------------------------------------------------------------------------
/doc/de/includes/attributes-de.adoc:
--------------------------------------------------------------------------------
 1 | // SPDX-FileCopyrightText: 2017-2020 Dan Allen, Sarah White, Ryan Waldron
 2 | // SPDX-FileCopyrightText: 2017-2020 Florian Wilhelm
 3 | //
 4 | // SPDX-License-Identifier: GPL-3.0-or-later
 5 | //
 6 | // German translation, courtesy of Florian Wilhelm
 7 | :appendix-caption: Anhang
 8 | :appendix-refsig: {appendix-caption}
 9 | :caution-caption: Achtung
10 | :chapter-signifier: Kapitel
11 | :chapter-refsig: {chapter-signifier}
12 | :example-caption: Beispiel
13 | :figure-caption: Abbildung
14 | :important-caption: Wichtig
15 | :last-update-label: Zuletzt aktualisiert
16 | ifdef::listing-caption[:listing-caption: Listing]
17 | ifdef::manname-title[:manname-title: Bezeichnung]
18 | :note-caption: Anmerkung
19 | :part-signifier: Teil
20 | :part-refsig: {part-signifier}
21 | ifdef::preface-title[:preface-title: Vorwort]
22 | :section-refsig: Abschnitt
23 | :table-caption: Tabelle
24 | :tip-caption: Hinweis
25 | :toc-title: Inhaltsverzeichnis
26 | :untitled-label: Ohne Titel
27 | :version-label: Version
28 | :warning-caption: Warnung
29 | 


--------------------------------------------------------------------------------
/doc/en/includes/attributes-en.adoc:
--------------------------------------------------------------------------------
 1 | // SPDX-FileCopyrightText: 2017-2020 Dan Allen, Sarah White, Ryan Waldron
 2 | //
 3 | // SPDX-License-Identifier: GPL-3.0-or-later
 4 | //
 5 | // English translation, for reference only; matches the built-in behavior of core
 6 | :appendix-caption: Appendix
 7 | :appendix-refsig: {appendix-caption}
 8 | :caution-caption: Caution
 9 | :chapter-signifier: Chapter
10 | :chapter-refsig: {chapter-signifier}
11 | :example-caption: Example
12 | :figure-caption: Figure
13 | :important-caption: Important
14 | :last-update-label: Last updated
15 | ifdef::listing-caption[:listing-caption: Listing]
16 | ifdef::manname-title[:manname-title: Name]
17 | :note-caption: Note
18 | :part-signifier: Part
19 | :part-refsig: {part-signifier}
20 | ifdef::preface-title[:preface-title: Preface]
21 | :section-refsig: Section
22 | :table-caption: Table
23 | :tip-caption: Tip
24 | :toc-title: Table of Contents
25 | :untitled-label: Untitled
26 | :version-label: Version
27 | :warning-caption: Warning
28 | 


--------------------------------------------------------------------------------
/doc/en/includes/relay.en.adoc:
--------------------------------------------------------------------------------
 1 | // SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 2 | //
 3 | // SPDX-License-Identifier: GPL-3.0-or-later
 4 | 
 5 | // tag::diagram[]
 6 | ....
 7 |                                               ┌──────────┐ Workstation
 8 |  ┌────────┐                               ┌───┤ client 1 │ (Linux, Windows,
 9 |  │  irc   │◄──┐  ╔═══════════╤═══════╗    │   └──────────┘ BSD, macOS, …)
10 |  └────────┘   └──╢           │       ║◄───┘   ┌──────────┐
11 |    ......        ║  WeeChat  │ Relay ║◄───────┤ client 2 │ Mobile device
12 |  ┌────────┐   ┌──╢           │       ║◄───┐   └──────────┘ (Android, iPhone, …)
13 |  │ jabber │◄──┘  ╚═══════════╧═══════╝    │      ......
14 |  └────────┘                               │   ┌──────────┐
15 |    ......                                 └───┤ client N │ Other devices
16 |                                               └──────────┘
17 | 
18 | 
19 | └────────────┘   └───────────────────┘╘══════╛└────────────────────────────────┘
20 | network servers    ncurses interface    relay         remote interfaces
21 | ....
22 | // end::diagram[]
23 | 


--------------------------------------------------------------------------------
/doc/en/weechat.1.en.adoc:
--------------------------------------------------------------------------------
 1 | // SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 2 | //
 3 | // SPDX-License-Identifier: GPL-3.0-or-later
 4 | 
 5 | = weechat(1)
 6 | :doctype: manpage
 7 | :author: Sébastien Helleu
 8 | :email: flashcode@flashtux.org
 9 | :lang: en
10 | :man manual: WeeChat Manual
11 | :man source: WeeChat {revnumber}
12 | 
13 | == NAME
14 | 
15 | weechat - the extensible chat client
16 | 
17 | == SYNOPSIS
18 | 
19 | [verse]
20 | *weechat* [-a|--no-connect] [-d|--dir <path>] [-t|--temp-dir] [-p|--no-plugin] [-P|--plugins <plugins>] [-r|--run-command <command>] [-s|--no-script] [--upgrade] [debug-option...] [plugin:option...]
21 | *weechat* [-c|--colors]
22 | *weechat* [-h|--help]
23 | *weechat* [-l|--license]
24 | *weechat* [-v|--version]
25 | 
26 | == DESCRIPTION
27 | 
28 | WeeChat (Wee Enhanced Environment for Chat) is a free chat client, fast and
29 | light, designed for many operating systems.
30 | It is highly customizable and extensible with scripts.
31 | 
32 | == OPTIONS
33 | 
34 | include::includes/cmdline_options.en.adoc[tag=standard]
35 | 
36 | == DEBUG OPTIONS
37 | 
38 | *WARNING:* these options are for debug purposes only, *DO NOT USE IN PRODUCTION!*
39 | 
40 | include::includes/cmdline_options.en.adoc[tag=debug]
41 | 
42 | == PLUGIN OPTIONS
43 | 
44 | include::includes/man.en.adoc[tag=plugin_options]
45 | 
46 | == FILES
47 | 
48 | include::includes/man.en.adoc[tag=files]
49 | 
50 | == SEE ALSO
51 | 
52 | *weechat-headless*(1)
53 | 
54 | == AUTHORS
55 | 
56 | This manpage was written by {author}.
57 | 
58 | == COPYRIGHT
59 | 
60 | include::includes/man.en.adoc[tag=copyright]
61 | 
62 | == SUPPORT / REPORTING BUGS
63 | 
64 | For help or a bug report: https://weechat.org/about/support/
65 | 


--------------------------------------------------------------------------------
/doc/es/includes/attributes-es.adoc:
--------------------------------------------------------------------------------
 1 | // SPDX-FileCopyrightText: 2017-2020 Dan Allen, Sarah White, Ryan Waldron
 2 | // SPDX-FileCopyrightText: 2017-2020 Eddú Meléndez <eddu.melendez@gmail.com>
 3 | // SPDX-FileCopyrightText: 2017-2020 Fede Mendez <federicomh@gmail.com>
 4 | //
 5 | // SPDX-License-Identifier: GPL-3.0-or-later
 6 | //
 7 | // Spanish translation, courtesy of Eddú Meléndez <eddu.melendez@gmail.com> with updates from Fede Mendez <federicomh@gmail.com>
 8 | :appendix-caption: Apéndice
 9 | :appendix-refsig: {appendix-caption}
10 | :caution-caption: Precaución
11 | :chapter-signifier: Capítulo
12 | :chapter-refsig: {chapter-signifier}
13 | :example-caption: Ejemplo
14 | :figure-caption: Figura
15 | :important-caption: Importante
16 | :last-update-label: Ultima actualización
17 | ifdef::listing-caption[:listing-caption: Lista]
18 | ifdef::manname-title[:manname-title: Nombre]
19 | :note-caption: Nota
20 | :part-signifier: Parte
21 | :part-refsig: {part-signifier}
22 | ifdef::preface-title[:preface-title: Prefacio]
23 | :section-refsig: Sección
24 | :table-caption: Tabla
25 | :tip-caption: Sugerencia
26 | :toc-title: Tabla de Contenido
27 | :untitled-label: Sin título
28 | :version-label: Versión
29 | :warning-caption: Aviso
30 | 


--------------------------------------------------------------------------------
/doc/fr/includes/attributes-fr.adoc:
--------------------------------------------------------------------------------
 1 | // SPDX-FileCopyrightText: 2017-2020 Dan Allen, Sarah White, Ryan Waldron
 2 | // SPDX-FileCopyrightText: 2017-2021 Nicolas Comet <nicolas.comet@gmail.com>
 3 | // SPDX-FileCopyrightText: 2017-2021 Maheva Bagard Laursen <mblaursen@gbif.org>
 4 | //
 5 | // SPDX-License-Identifier: GPL-3.0-or-later
 6 | //
 7 | // French translation, courtesy of Nicolas Comet <nicolas.comet@gmail.com> with updates from Maheva Bagard Laursen <mblaursen@gbif.org>
 8 | :appendix-caption: Annexe
 9 | :appendix-refsig: {appendix-caption}
10 | :caution-caption: Attention
11 | :chapter-signifier: Chapitre
12 | :chapter-refsig: {chapter-signifier}
13 | :example-caption: Exemple
14 | :figure-caption: Figure
15 | :important-caption: Important
16 | :last-update-label: Dernière mise à jour
17 | ifdef::listing-caption[:listing-caption: Liste]
18 | ifdef::manname-title[:manname-title: Nom]
19 | :note-caption: Note
20 | :part-signifier: Partie
21 | :part-refsig: {part-signifier}
22 | ifdef::preface-title[:preface-title: Préface]
23 | :section-refsig: Section
24 | :table-caption: Tableau
25 | :tip-caption: Astuce
26 | :toc-title: Table des matières
27 | :untitled-label: Sans titre
28 | :version-label: Version
29 | :warning-caption: Avertissement
30 | 


--------------------------------------------------------------------------------
/doc/fr/includes/relay.fr.adoc:
--------------------------------------------------------------------------------
 1 | // SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 2 | //
 3 | // SPDX-License-Identifier: GPL-3.0-or-later
 4 | 
 5 | // tag::diagram[]
 6 | ....
 7 |                                               ┌──────────┐ Station de travail
 8 |  ┌────────┐                               ┌───┤ client 1 │ (Linux, Windows,
 9 |  │  irc   │◄──┐  ╔═══════════╤═══════╗    │   └──────────┘ BSD, macOS, …)
10 |  └────────┘   └──╢           │       ║◄───┘   ┌──────────┐
11 |    ......        ║  WeeChat  │ Relay ║◄───────┤ client 2 │ Appareil mobile
12 |  ┌────────┐   ┌──╢           │       ║◄───┐   └──────────┘ (Android, iPhone, …)
13 |  │ jabber │◄──┘  ╚═══════════╧═══════╝    │      ......
14 |  └────────┘                               │   ┌──────────┐
15 |    ......                                 └───┤ client N │ Autres appareils
16 |                                               └──────────┘
17 | 
18 | 
19 | └────────────┘   └───────────────────┘╘══════╛└────────────────────────────────┘
20 |    serveurs        interface ncurses    relay        interfaces distantes
21 | ....
22 | // end::diagram[]
23 | 


--------------------------------------------------------------------------------
/doc/fr/weechat.1.fr.adoc:
--------------------------------------------------------------------------------
 1 | // SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 2 | //
 3 | // SPDX-License-Identifier: GPL-3.0-or-later
 4 | 
 5 | = weechat(1)
 6 | :doctype: manpage
 7 | :author: Sébastien Helleu
 8 | :email: flashcode@flashtux.org
 9 | :lang: fr
10 | :man manual: Manuel WeeChat
11 | :man source: WeeChat {revnumber}
12 | 
13 | == NOM
14 | 
15 | weechat - le client de discussion extensible
16 | 
17 | == SYNOPSIS
18 | 
19 | [verse]
20 | *weechat* [-a|--no-connect] [-d|--dir <répertoire>] [-t|--temp-dir]  [-p|--no-plugin] [-P|--plugins <extensions>] [-r|--run-command <commande>] [-s|--no-script] [--upgrade] [option-debug...] [extension:option...]
21 | *weechat* [-c|--colors]
22 | *weechat* [-h|--help]
23 | *weechat* [-l|--license]
24 | *weechat* [-v|--version]
25 | 
26 | == DESCRIPTION
27 | 
28 | WeeChat (Wee Enhanced Environment for Chat) est un client de discussion libre,
29 | rapide et léger, conçu pour différents systèmes d'exploitation.
30 | Il est hautement paramétrable et extensible avec des scripts.
31 | 
32 | == OPTIONS
33 | 
34 | include::includes/cmdline_options.fr.adoc[tag=standard]
35 | 
36 | == OPTIONS DE DEBUG
37 | 
38 | *ATTENTION :* ces options sont pour du debug seulement,
39 | *NE PAS UTILISER EN PRODUCTION !*
40 | 
41 | include::includes/cmdline_options.fr.adoc[tag=debug]
42 | 
43 | == OPTIONS D'EXTENSION
44 | 
45 | include::includes/man.fr.adoc[tag=plugin_options]
46 | 
47 | == FICHIERS
48 | 
49 | include::includes/man.fr.adoc[tag=files]
50 | 
51 | == VOIR AUSSI
52 | 
53 | *weechat-headless*(1)
54 | 
55 | == AUTEURS
56 | 
57 | Cette page de manuel a été écrite par {author}.
58 | 
59 | == COPYRIGHT
60 | 
61 | include::includes/man.fr.adoc[tag=copyright]
62 | 
63 | == SUPPORT / SIGNALER DES BUGS
64 | 
65 | Pour de l'aide ou signaler un bug : https://weechat.org/about/support/
66 | 


--------------------------------------------------------------------------------
/doc/it/includes/attributes-it.adoc:
--------------------------------------------------------------------------------
 1 | // SPDX-FileCopyrightText: 2017-2020 Dan Allen, Sarah White, Ryan Waldron
 2 | // SPDX-FileCopyrightText: 2017-2021 Marco Ciampa <ciampix@posteo.net>
 3 | //
 4 | // SPDX-License-Identifier: GPL-3.0-or-later
 5 | //
 6 | // Italian translation, courtesy of Marco Ciampa <ciampix@posteo.net>
 7 | :appendix-caption: Appendice
 8 | :appendix-refsig: {appendix-caption}
 9 | :caution-caption: Attenzione
10 | :chapter-signifier: Capitolo
11 | :chapter-refsig: {chapter-signifier}
12 | :example-caption: Esempio
13 | :figure-caption: Figura
14 | :important-caption: Importante
15 | :last-update-label: Ultimo aggiornamento
16 | ifdef::listing-caption[:listing-caption: Elenco]
17 | ifdef::manname-title[:manname-title: Nome]
18 | :note-caption: Nota
19 | :part-signifier: Parte
20 | :part-refsig: {part-signifier}
21 | ifdef::preface-title[:preface-title: Prefazione]
22 | :section-refsig: Sezione
23 | :table-caption: Tabella
24 | :tip-caption: Suggerimento
25 | :toc-title: Indice
26 | :untitled-label: Senza titolo
27 | :version-label: Versione
28 | :warning-caption: Attenzione
29 | 


--------------------------------------------------------------------------------
/doc/ja/includes/attributes-ja.adoc:
--------------------------------------------------------------------------------
 1 | // SPDX-FileCopyrightText: 2017-2020 Dan Allen, Sarah White, Ryan Waldron
 2 | // SPDX-FileCopyrightText: 2017-2020 Takayuki Konishi <seannos.takayuki@gmail.com>
 3 | //
 4 | // SPDX-License-Identifier: GPL-3.0-or-later
 5 | //
 6 | // Japanese translation, courtesy of Takayuki Konishi <seannos.takayuki@gmail.com>
 7 | :appendix-caption: 付録
 8 | :appendix-refsig: {appendix-caption}
 9 | :caution-caption: 注意
10 | //:chapter-signifier: ???
11 | //:chapter-refsig: {chapter-signifier}
12 | :example-caption: 例
13 | :figure-caption: 図
14 | :important-caption: 重要
15 | :last-update-label: 最終更新
16 | ifdef::listing-caption[:listing-caption: リスト]
17 | ifdef::manname-title[:manname-title: 名前]
18 | :note-caption: 注記
19 | //:part-signifier: ???
20 | //:part-refsig: {part-signifier}
21 | ifdef::preface-title[:preface-title: まえがき]
22 | //:section-refsig: ???
23 | :table-caption: 表
24 | :tip-caption: ヒント
25 | :toc-title: 目次
26 | :untitled-label: 無題
27 | :version-label: バージョン
28 | :warning-caption: 警告
29 | 


--------------------------------------------------------------------------------
/doc/ja/includes/relay.ja.adoc:
--------------------------------------------------------------------------------
 1 | // SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 2 | // SPDX-FileCopyrightText: 2012-2019 Ryuunosuke Ayanokouzi <i38w7i3@yahoo.co.jp>
 3 | //
 4 | // SPDX-License-Identifier: GPL-3.0-or-later
 5 | 
 6 | // tag::diagram[]
 7 | ....
 8 |                                                ┌────────────────┐ ワークステーション
 9 |  ┌────────┐                                ┌───┤ クライアント 1 │ (Linux、Windows、
10 |  │  irc   │◄──┐  ╔═══════════╤════════╗    │   └────────────────┘ BSD、macOS, …)
11 |  └────────┘   └──╢           │        ║◄───┘   ┌────────────────┐
12 |    ......        ║  WeeChat  │ リレー ║◄───────┤ クライアント 2 │ 携帯デバイス
13 |  ┌────────┐   ┌──╢           │        ║◄───┐   └────────────────┘ (Android、iPhone, …)
14 |  │ jabber │◄──┘  ╚═══════════╧════════╝    │      ......
15 |  └────────┘                                │   ┌────────────────┐
16 |    ......                                  └───┤ クライアント N │ その他のデバイス
17 |                                                └────────────────┘
18 | 
19 | 
20 | └────────────┘   └────────────────────┘╘══════╛└──────────────────────────────────────┘
21 |  ネットワーク           ncurses         リレー            リモートインターフェース
22 |     サーバ          インターフェース
23 | ....
24 | // end::diagram[]
25 | 


--------------------------------------------------------------------------------
/doc/ja/weechat.1.ja.adoc:
--------------------------------------------------------------------------------
 1 | // SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 2 | // SPDX-FileCopyrightText: 2012-2019 Ryuunosuke Ayanokouzi <i38w7i3@yahoo.co.jp>
 3 | //
 4 | // SPDX-License-Identifier: GPL-3.0-or-later
 5 | 
 6 | = weechat(1)
 7 | :doctype: manpage
 8 | :author: Sébastien Helleu
 9 | :email: flashcode@flashtux.org
10 | :lang: ja-jp
11 | :man manual: WeeChat マニュアル
12 | :man source: WeeChat {revnumber}
13 | 
14 | == 名前
15 | 
16 | weechat - 拡張可能なチャットクライアント
17 | 
18 | == 書式
19 | 
20 | [verse]
21 | *weechat* [-a|--no-connect] [-d|--dir <path>] [-t|--temp-dir]  [-p|--no-plugin] [-P|--plugins <plugins>] [-r|--run-command <command>] [-s|--no-script] [--upgrade] [debug-option...] [plugin:option...]
22 | *weechat* [-c|--colors]
23 | *weechat* [-h|--help]
24 | *weechat* [-l|--license]
25 | *weechat* [-v|--version]
26 | 
27 | == 説明
28 | 
29 | WeeChat (Wee Enhanced Environment for Chat) はフリーのチャットクライアントです。
30 | 高速で軽量、多くのオペレーティングシステムで動くように設計されています。
31 | スクリプトを使って高度にカスタマイズと拡張可能です。
32 | 
33 | == オプション
34 | 
35 | include::includes/cmdline_options.ja.adoc[tag=standard]
36 | 
37 | == デバッグオプション
38 | 
39 | *警告:* 以下のオプションはデバッグ用です。*通常利用時には使わないでください!*
40 | 
41 | include::includes/cmdline_options.ja.adoc[tag=debug]
42 | 
43 | == プラグインオプション
44 | 
45 | include::includes/man.ja.adoc[tag=plugin_options]
46 | 
47 | == ファイル
48 | 
49 | include::includes/man.ja.adoc[tag=files]
50 | 
51 | == 関連項目
52 | 
53 | *weechat-headless*(1)
54 | 
55 | == 著者
56 | 
57 | この manpage を書いたのは {author} さんです。
58 | 
59 | 翻訳したのは Ryuunosuke Ayanokouzi さんです。
60 | 
61 | == 著作権
62 | 
63 | include::includes/man.ja.adoc[tag=copyright]
64 | 
65 | == サポート / バグ報告
66 | 
67 | 手助けを受けたりバグを報告するには: https://weechat.org/about/support/
68 | 


--------------------------------------------------------------------------------
/doc/pl/includes/attributes-pl.adoc:
--------------------------------------------------------------------------------
 1 | // SPDX-FileCopyrightText: 2017-2020 Dan Allen, Sarah White, Ryan Waldron
 2 | // SPDX-FileCopyrightText: 2017-2020 Łukasz Dziedziul <l.dziedziul@gmail.com>
 3 | // SPDX-FileCopyrightText: 2017-2020 Matthew Blissett <mblissett@gbif.org>
 4 | //
 5 | // SPDX-License-Identifier: GPL-3.0-or-later
 6 | //
 7 | // Polish translation, courtesy of Łukasz Dziedziul <l.dziedziul@gmail.com> with updates via Matthew Blissett <mblissett@gbif.org>
 8 | :appendix-caption: Dodatek
 9 | :appendix-refsig: {appendix-caption}
10 | :caution-caption: Uwaga
11 | :chapter-signifier: Rozdział
12 | :chapter-refsig: {chapter-signifier}
13 | :example-caption: Przykład
14 | :figure-caption: Rysunek
15 | :important-caption: Ważne
16 | :last-update-label: Ostatnio zmodyfikowany
17 | ifdef::listing-caption[:listing-caption: Listing]
18 | ifdef::manname-title[:manname-title: Nazwa]
19 | :note-caption: Notka
20 | :part-signifier: Część
21 | :part-refsig: {part-signifier}
22 | ifdef::preface-title[:preface-title: Wstęp]
23 | :section-refsig: Sekcja
24 | :table-caption: Tabela
25 | :tip-caption: Sugestia
26 | :toc-title: Spis treści
27 | :untitled-label: Bez tytułu
28 | :version-label: Wersja
29 | :warning-caption: Ostrzeżenie
30 | 


--------------------------------------------------------------------------------
/doc/ru/includes/attributes-ru.adoc:
--------------------------------------------------------------------------------
 1 | // SPDX-FileCopyrightText: 2017-2020 Dan Allen, Sarah White, Ryan Waldron
 2 | // SPDX-FileCopyrightText: 2017-2020 Alexander Zobkov <alexander.zobkov@gmail.com>
 3 | //
 4 | // SPDX-License-Identifier: GPL-3.0-or-later
 5 | //
 6 | // Russian translation, courtesy of Alexander Zobkov <alexander.zobkov@gmail.com>
 7 | :appendix-caption: Приложение
 8 | :appendix-refsig: {appendix-caption}
 9 | :caution-caption: Внимание
10 | :chapter-signifier: Глава
11 | :chapter-refsig: {chapter-signifier}
12 | :example-caption: Пример
13 | :figure-caption: Рисунок
14 | :important-caption: Важно
15 | :last-update-label: Последнее обновление
16 | ifdef::listing-caption[:listing-caption: Листинг]
17 | ifdef::manname-title[:manname-title: Название]
18 | :note-caption: Примечание
19 | :part-signifier: Часть
20 | :part-refsig: {part-signifier}
21 | ifdef::preface-title[:preface-title: Предисловие]
22 | :section-refsig: Раздел
23 | :table-caption: Таблица
24 | :tip-caption: Подсказка
25 | :toc-title: Содержание
26 | :untitled-label: Без названия
27 | :version-label: Версия
28 | :warning-caption: Предупреждение
29 | 


--------------------------------------------------------------------------------
/doc/sr/includes/attributes-sr.adoc:
--------------------------------------------------------------------------------
 1 | // SPDX-FileCopyrightText: 2017-2020 Dan Allen, Sarah White, Ryan Waldron
 2 | // SPDX-FileCopyrightText: 2017-2020 Bojan Stipic <bojan-7@live.com>
 3 | //
 4 | // SPDX-License-Identifier: GPL-3.0-or-later
 5 | //
 6 | // Serbian Cyrillic translation, courtesy of Bojan Stipic <bojan-7@live.com>
 7 | :appendix-caption: Додатак
 8 | :appendix-refsig: {appendix-caption}
 9 | :caution-caption: Опрез
10 | :chapter-signifier: Поглавље
11 | :chapter-refsig: {chapter-signifier}
12 | :example-caption: Пример
13 | :figure-caption: Слика
14 | :important-caption: Важно
15 | :last-update-label: Последње ажурирано
16 | ifdef::listing-caption[:listing-caption: Листинг]
17 | ifdef::manname-title[:manname-title: Назив]
18 | :note-caption: Белешка
19 | :part-signifier: Део
20 | :part-refsig: {part-signifier}
21 | ifdef::preface-title[:preface-title: Предговор]
22 | :section-refsig: Секција
23 | :table-caption: Табела
24 | :tip-caption: Савет
25 | :toc-title: Садржај
26 | :untitled-label: Без назива
27 | :version-label: Верзија
28 | :warning-caption: Упозорење
29 | 


--------------------------------------------------------------------------------
/doc/sr/includes/relay.sr.adoc:
--------------------------------------------------------------------------------
 1 | // SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 2 | // SPDX-FileCopyrightText: 2021-2025 Иван Пешић <ivan.pesic@gmail.com>
 3 | //
 4 | // SPDX-License-Identifier: GPL-3.0-or-later
 5 | 
 6 | // tag::diagram[]
 7 | ....
 8 |                                               ┌───────────┐ Радна станица
 9 |  ┌────────┐                               ┌───┤ клијент 1 │ (Linux, Windows,
10 |  │  irc   │◄──┐  ╔═══════════╤═══════╗    │   └───────────┘ BSD, macOS, …)
11 |  └────────┘   └──╢           │       ║◄───┘   ┌───────────┐
12 |    ......        ║  WeeChat  │ Релеј ║◄───────┤ клијент 2 │ Мобилни уређај
13 |  ┌────────┐   ┌──╢           │       ║◄───┐   └───────────┘ (Android, iPhone, …)
14 |  │ jabber │◄──┘  ╚═══════════╧═══════╝    │      ......
15 |  └────────┘                               │   ┌───────────┐
16 |    ......                                 └───┤ клијент N │ Остали уређаји
17 |                                               └───────────┘
18 | 
19 | 
20 | └────────────┘   └───────────────────┘╘══════╛└────────────────────────────────┘
21 | мрежни сервери     ncurses интерфејс    релеј         удаљени интерфејси
22 | ....
23 | // end::diagram[]
24 | 


--------------------------------------------------------------------------------
/doc/sr/weechat.1.sr.adoc:
--------------------------------------------------------------------------------
 1 | // SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 2 | // SPDX-FileCopyrightText: 2021-2025 Иван Пешић <ivan.pesic@gmail.com>
 3 | //
 4 | // SPDX-License-Identifier: GPL-3.0-or-later
 5 | 
 6 | = weechat(1)
 7 | :doctype: manpage
 8 | :author: Sébastien Helleu
 9 | :email: flashcode@flashtux.org
10 | :lang: sr
11 | :man manual: WeeChat упутство
12 | :man source: WeeChat {revnumber}
13 | 
14 | == ИМЕ
15 | 
16 | weechat - прошириви чет клијент
17 | 
18 | == СИПОПСИС
19 | 
20 | [verse]
21 | *weechat* [-a|--no-connect] [-d|--dir <путања>] [-t|--temp-dir] [-p|--no-plugin] [-P|--plugins <додаци>] [-r|--run-command <команда>] [-s|--no-script] [--upgrade] [дибаг-опција...] [додатак:опција...]
22 | *weechat* [-c|--colors]
23 | *weechat* [-h|--help]
24 | *weechat* [-l|--license]
25 | *weechat* [-v|--version]
26 | 
27 | == ОПИС
28 | 
29 | WeeChat (Wee Enhanced Environment for Chat) је бесплатни чет клијент, једноставан и брз, дизајниран за многе оперативне системе. Поседује могућност детаљног прилагођавања и проширивања скриптама.
30 | 
31 | == ОПЦИЈЕ
32 | 
33 | include::includes/cmdline_options.sr.adoc[tag=standard]
34 | 
35 | == ДИБАГ ОПЦИЈЕ
36 | 
37 | *УПОЗОРЕЊЕ:* ове опције служе за потребе дибагинга, *НЕ КОРИСТИТЕ У ПРОДУКЦИЈИ!*
38 | 
39 | include::includes/cmdline_options.sr.adoc[tag=debug]
40 | 
41 | == ОПЦИЈЕ ДОДАТАКА
42 | 
43 | include::includes/man.sr.adoc[tag=plugin_options]
44 | 
45 | == ФАЈЛОВИ
46 | 
47 | include::includes/man.sr.adoc[tag=files]
48 | 
49 | == ПОГЛЕДАЈТЕ И
50 | 
51 | *weechat-headless*(1)
52 | 
53 | == АУТОРИ
54 | 
55 | Ову man страницу је написао {author}.
56 | 
57 | == АУТОРСКА ПРАВА
58 | 
59 | include::includes/man.sr.adoc[tag=copyright]
60 | 
61 | == ПОДРШКА / ПРИЈАВА БАГОВА
62 | 
63 | За помоћ или пријаву бага: https://weechat.org/about/support/
64 | 


--------------------------------------------------------------------------------
/icons/128x128/weechat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weechat/weechat/74a4b3e249e911a1285f3105b2e0ae1594bcb351/icons/128x128/weechat.png


--------------------------------------------------------------------------------
/icons/16x16/weechat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weechat/weechat/74a4b3e249e911a1285f3105b2e0ae1594bcb351/icons/16x16/weechat.png


--------------------------------------------------------------------------------
/icons/256x256/weechat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weechat/weechat/74a4b3e249e911a1285f3105b2e0ae1594bcb351/icons/256x256/weechat.png


--------------------------------------------------------------------------------
/icons/32x32/weechat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weechat/weechat/74a4b3e249e911a1285f3105b2e0ae1594bcb351/icons/32x32/weechat.png


--------------------------------------------------------------------------------
/icons/512x512/weechat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weechat/weechat/74a4b3e249e911a1285f3105b2e0ae1594bcb351/icons/512x512/weechat.png


--------------------------------------------------------------------------------
/icons/64x64/weechat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weechat/weechat/74a4b3e249e911a1285f3105b2e0ae1594bcb351/icons/64x64/weechat.png


--------------------------------------------------------------------------------
/icons/CMakeLists.txt:
--------------------------------------------------------------------------------
 1 | #
 2 | # SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 | #
 4 | # SPDX-License-Identifier: GPL-3.0-or-later
 5 | #
 6 | # This file is part of WeeChat, the extensible chat client.
 7 | #
 8 | # WeeChat is free software; you can redistribute it and/or modify
 9 | # it under the terms of the GNU General Public License as published by
10 | # the Free Software Foundation; either version 3 of the License, or
11 | # (at your option) any later version.
12 | #
13 | # WeeChat is distributed in the hope that it will be useful,
14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 | # GNU General Public License for more details.
17 | #
18 | # You should have received a copy of the GNU General Public License
19 | # along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 | #
21 | 
22 | foreach(size 16 32 64 128 256 512)
23 |   install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/${size}x${size}/weechat.png" DESTINATION "${DATAROOTDIR}/icons/hicolor/${size}x${size}/apps")
24 | endforeach()
25 | 


--------------------------------------------------------------------------------
/schemathesis.toml:
--------------------------------------------------------------------------------
 1 | # SPDX-FileCopyrightText: 2025 Sébastien Helleu <flashcode@flashtux.org>
 2 | #
 3 | # SPDX-License-Identifier: GPL-3.0-or-later
 4 | 
 5 | continue-on-failure = true
 6 | 
 7 | [[operations]]
 8 | include-path-regex = "/sync/?.*"
 9 | enabled = false
10 | 
11 | [auth]
12 | basic = { username = "plain", password = "${RELAY_PASSWORD}" }
13 | 


--------------------------------------------------------------------------------
/src/CMakeLists.txt:
--------------------------------------------------------------------------------
 1 | #
 2 | # SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 | # SPDX-FileCopyrightText: 2007-2008 Julien Louis <ptitlouis@sysif.net>
 4 | # SPDX-FileCopyrightText: 2008-2009 Emmanuel Bouthenot <kolter@openics.org>
 5 | #
 6 | # SPDX-License-Identifier: GPL-3.0-or-later
 7 | #
 8 | # This file is part of WeeChat, the extensible chat client.
 9 | #
10 | # WeeChat is free software; you can redistribute it and/or modify
11 | # it under the terms of the GNU General Public License as published by
12 | # the Free Software Foundation; either version 3 of the License, or
13 | # (at your option) any later version.
14 | #
15 | # WeeChat is distributed in the hope that it will be useful,
16 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
17 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 | # GNU General Public License for more details.
19 | #
20 | # You should have received a copy of the GNU General Public License
21 | # along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
22 | #
23 | 
24 | add_subdirectory(core)
25 | 
26 | add_subdirectory(plugins)
27 | 
28 | add_subdirectory(gui)
29 | 


--------------------------------------------------------------------------------
/src/core/core-backtrace.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_BACKTRACE_H
23 | #define WEECHAT_BACKTRACE_H
24 | 
25 | #define BACKTRACE_MAX 128
26 | 
27 | extern void weechat_backtrace (void);
28 | 
29 | #endif /* WEECHAT_BACKTRACE_H */
30 | 


--------------------------------------------------------------------------------
/src/core/core-calc.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2019-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_CALC_H
23 | #define WEECHAT_CALC_H
24 | 
25 | extern char *calc_expression (const char *expr);
26 | 
27 | #endif /* WEECHAT_CALC_H */
28 | 


--------------------------------------------------------------------------------
/src/core/core-completion.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_COMPLETION_H
23 | #define WEECHAT_COMPLETION_H
24 | 
25 | struct t_gui_buffer;
26 | struct t_gui_completion;
27 | 
28 | extern int completion_list_add_filename_cb (const void *pointer,
29 |                                             void *data,
30 |                                             const char *completion_item,
31 |                                             struct t_gui_buffer *buffer,
32 |                                             struct t_gui_completion *completion);
33 | extern void completion_init (void);
34 | 
35 | #endif /* WEECHAT_COMPLETION_H */
36 | 


--------------------------------------------------------------------------------
/src/core/core-doc.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2023-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_DOC_H
23 | #define WEECHAT_DOC_H
24 | 
25 | extern int doc_generate (const char *path);
26 | 
27 | #endif /* WEECHAT_DOC_H */
28 | 


--------------------------------------------------------------------------------
/src/core/core-input.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_INPUT_H
23 | #define WEECHAT_INPUT_H
24 | 
25 | struct t_gui_buffer;
26 | struct t_weechat_plugin;
27 | 
28 | extern char **input_commands_allowed;
29 | 
30 | extern int input_exec_command (struct t_gui_buffer *buffer,
31 |                                int any_plugin,
32 |                                struct t_weechat_plugin *plugin,
33 |                                const char *string,
34 |                                const char *commands_allowed);
35 | extern int input_data (struct t_gui_buffer *buffer, const char *data,
36 |                        const char *commands_allowed, int split_newline,
37 |                        int user_data);
38 | extern int input_data_delayed (struct t_gui_buffer *buffer, const char *data,
39 |                                const char *commands_allowed, int split_newline,
40 |                                long delay);
41 | 
42 | #endif /* WEECHAT_INPUT_H */
43 | 


--------------------------------------------------------------------------------
/src/core/core-log.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_LOG_H
23 | #define WEECHAT_LOG_H
24 | 
25 | #include <stdio.h>
26 | 
27 | extern char *weechat_log_filename;
28 | extern FILE *weechat_log_file;
29 | extern int weechat_log_use_time;
30 | 
31 | extern void log_init (void);
32 | extern void log_close (void);
33 | extern void log_printf (const char *message, ...);
34 | extern void log_printf_hexa (const char *spaces, const char *string);
35 | extern int log_crash_rename (void);
36 | 
37 | #endif /* WEECHAT_LOG_H */
38 | 


--------------------------------------------------------------------------------
/src/core/core-secure-buffer.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2013-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_SECURE_BUFFER_H
23 | #define WEECHAT_SECURE_BUFFER_H
24 | 
25 | #define SECURE_BUFFER_NAME "secured_data"
26 | 
27 | extern struct t_gui_buffer *secure_buffer;
28 | extern int secure_buffer_display_values;
29 | 
30 | extern void secure_buffer_display (void);
31 | extern void secure_buffer_assign (void);
32 | extern void secure_buffer_open (void);
33 | 
34 | #endif /* WEECHAT_SECURE_BUFFER_H */
35 | 


--------------------------------------------------------------------------------
/src/core/core-secure-config.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2013-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_SECURE_CONFIG_H
23 | #define WEECHAT_SECURE_CONFIG_H
24 | 
25 | #define SECURE_CONFIG_NAME "sec"
26 | #define SECURE_CONFIG_PRIO_NAME "120000|sec"
27 | 
28 | extern struct t_config_file *secure_config_file;
29 | extern struct t_config_section *secure_config_section_pwd;
30 | 
31 | extern struct t_config_option *secure_config_crypt_cipher;
32 | extern struct t_config_option *secure_config_crypt_hash_algo;
33 | extern struct t_config_option *secure_config_crypt_passphrase_command;
34 | extern struct t_config_option *secure_config_crypt_salt;
35 | 
36 | extern int secure_config_read (void);
37 | extern int secure_config_write (void);
38 | extern int secure_config_init (void);
39 | extern void secure_config_free (void);
40 | 
41 | #endif /* WEECHAT_SECURE_CONFIG_H */
42 | 


--------------------------------------------------------------------------------
/src/core/core-signal.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2021-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_SIGNAL_H
23 | #define WEECHAT_SIGNAL_H
24 | 
25 | struct t_signal
26 | {
27 |     int signal;                        /* signal number                     */
28 |     char *name;                        /* signal name, eg "hup" for SIGHUP  */
29 | };
30 | 
31 | extern struct t_signal signal_list[];
32 | 
33 | extern int signal_search_number (int signal_number);
34 | extern int signal_search_name (const char *name);
35 | extern void signal_catch (int signum, void (*handler)(int));
36 | extern void signal_handle (void);
37 | extern void signal_suspend (void);
38 | extern void signal_init (void);
39 | 
40 | #endif /* WEECHAT_SIGNAL_H */
41 | 


--------------------------------------------------------------------------------
/src/core/core-sys.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2023-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_SYS_H
23 | #define WEECHAT_SYS_H
24 | 
25 | #ifdef HAVE_SYS_RESOURCE_H
26 | struct t_rlimit_resource
27 | {
28 |     char *name;                        /* name of resource                  */
29 |     int resource;                      /* value of resource                 */
30 | };
31 | #endif /* HAVE_SYS_RESOURCE_H */
32 | 
33 | extern void sys_setrlimit (void);
34 | extern void sys_display_rlimit (void);
35 | extern void sys_display_rusage (void);
36 | extern void sys_waitpid (int number_processes);
37 | 
38 | #endif /* WEECHAT_SYS_H */
39 | 


--------------------------------------------------------------------------------
/src/core/core-upgrade.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_UPGRADE_H
23 | #define WEECHAT_UPGRADE_H
24 | 
25 | #include "core-upgrade-file.h"
26 | 
27 | #define WEECHAT_UPGRADE_FILENAME "weechat"
28 | 
29 | /* For developers: please add new values ONLY AT THE END of enums */
30 | 
31 | enum t_upgrade_weechat_type
32 | {
33 |     UPGRADE_WEECHAT_TYPE_HISTORY = 0,
34 |     UPGRADE_WEECHAT_TYPE_BUFFER,
35 |     UPGRADE_WEECHAT_TYPE_NICKLIST,
36 |     UPGRADE_WEECHAT_TYPE_BUFFER_LINE,
37 |     UPGRADE_WEECHAT_TYPE_MISC,
38 |     UPGRADE_WEECHAT_TYPE_HOTLIST,
39 |     UPGRADE_WEECHAT_TYPE_LAYOUT_WINDOW,
40 | };
41 | 
42 | int upgrade_weechat_save (void);
43 | int upgrade_weechat_load (void);
44 | void upgrade_weechat_end (void);
45 | 
46 | #endif /* WEECHAT_UPGRADE_H */
47 | 


--------------------------------------------------------------------------------
/src/core/core-version.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_VERSION_H
23 | #define WEECHAT_VERSION_H
24 | 
25 | extern const char *version_get_name (void);
26 | extern const char *version_get_version (void);
27 | extern const char *version_get_name_version (void);
28 | extern const char *version_get_git (void);
29 | extern const char *version_get_version_with_git (void);
30 | extern const char *version_get_compilation_date (void);
31 | extern const char *version_get_compilation_time (void);
32 | extern const char *version_get_compilation_date_time (void);
33 | 
34 | #endif /* WEECHAT_VERSION_H */
35 | 


--------------------------------------------------------------------------------
/src/gui/CMakeLists.txt:
--------------------------------------------------------------------------------
 1 | #
 2 | # SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 | #
 4 | # SPDX-License-Identifier: GPL-3.0-or-later
 5 | #
 6 | # This file is part of WeeChat, the extensible chat client.
 7 | #
 8 | # WeeChat is free software; you can redistribute it and/or modify
 9 | # it under the terms of the GNU General Public License as published by
10 | # the Free Software Foundation; either version 3 of the License, or
11 | # (at your option) any later version.
12 | #
13 | # WeeChat is distributed in the hope that it will be useful,
14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 | # GNU General Public License for more details.
17 | #
18 | # You should have received a copy of the GNU General Public License
19 | # along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 | #
21 | 
22 | set(LIB_GUI_COMMON_SRC
23 |   gui-bar.c gui-bar.h
24 |   gui-bar-item.c gui-bar-item.h
25 |   gui-bar-item-custom.c gui-bar-item-custom.h
26 |   gui-bar-window.c gui-bar-window.h
27 |   gui-buffer.c gui-buffer.h
28 |   gui-chat.c gui-chat.h
29 |   gui-color.c gui-color.h
30 |   gui-completion.c gui-completion.h
31 |   gui-cursor.c gui-cursor.h
32 |   gui-filter.c gui-filter.h
33 |   gui-focus.c gui-focus.h
34 |   gui-history.c gui-history.h
35 |   gui-hotlist.c gui-hotlist.h
36 |   gui-input.c gui-input.h
37 |   gui-key.c gui-key.h
38 |   gui-layout.c gui-layout.h
39 |   gui-line.c gui-line.h
40 |   gui-main.h
41 |   gui-mouse.c gui-mouse.h
42 |   gui-nick.c gui-nick.h
43 |   gui-nicklist.c gui-nicklist.h
44 |   gui-window.c gui-window.h
45 | )
46 | 
47 | include_directories("${CMAKE_BINARY_DIR}")
48 | add_library(weechat_gui_common OBJECT ${LIB_GUI_COMMON_SRC})
49 | target_link_libraries(weechat_gui_common coverage_config)
50 | 
51 | subdirs(curses)
52 | 


--------------------------------------------------------------------------------
/src/gui/curses/gui-curses-bar-window.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_GUI_CURSES_BAR_WINDOW_H
23 | #define WEECHAT_GUI_CURSES_BAR_WINDOW_H
24 | 
25 | #define GUI_BAR_WINDOW_OBJECTS(bar_window)                              \
26 |     ((struct t_gui_bar_window_curses_objects *)(bar_window->gui_objects))
27 | 
28 | struct t_gui_bar_window_curses_objects
29 | {
30 |     WINDOW *win_bar;                /* bar Curses window                    */
31 |     WINDOW *win_separator;          /* separator (optional)                 */
32 | };
33 | 
34 | #endif /* WEECHAT_GUI_CURSES_BAR_WINDOW_H */
35 | 


--------------------------------------------------------------------------------
/src/gui/curses/gui-curses-chat.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_GUI_CURSES_CHAT_H
23 | #define WEECHAT_GUI_CURSES_CHAT_H
24 | 
25 | extern void gui_chat_calculate_line_diff (struct t_gui_window *window,
26 |                                           struct t_gui_line **line,
27 |                                           int *line_pos, int difference);
28 | 
29 | #endif /* WEECHAT_GUI_CURSES_CHAT_H */
30 | 


--------------------------------------------------------------------------------
/src/gui/curses/gui-curses-key.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_GUI_CURSES_KEY_H
23 | #define WEECHAT_GUI_CURSES_KEY_H
24 | 
25 | extern int gui_key_read_cb (const void *pointer, void *data, int fd);
26 | 
27 | #endif /* WEECHAT_GUI_CURSES_KEY_H */
28 | 


--------------------------------------------------------------------------------
/src/gui/curses/gui-curses-main.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_GUI_CURSES_MAIN_H
23 | #define WEECHAT_GUI_CURSES_MAIN_H
24 | 
25 | extern int gui_term_cols, gui_term_lines;
26 | 
27 | extern void gui_main_init (void);
28 | extern void gui_main_loop (void);
29 | 
30 | #endif /* WEECHAT_GUI_CURSES_MAIN_H */
31 | 


--------------------------------------------------------------------------------
/src/gui/curses/gui-curses-mouse.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_GUI_CURSES_MOUSE_H
23 | #define WEECHAT_GUI_CURSES_MOUSE_H
24 | 
25 | #define MOUSE_CODE_UTF8_MOTION(code) ((code >= 64) && (code < 96))
26 | #define MOUSE_CODE_UTF8_END(code)    ((code == '#') || (code == '3')    \
27 |                                       || (code == '+') || (code == ';'))
28 | 
29 | #endif /* WEECHAT_GUI_CURSES_MOUSE_H */
30 | 


--------------------------------------------------------------------------------
/src/gui/curses/gui-curses.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_GUI_CURSES_H
23 | #define WEECHAT_GUI_CURSES_H
24 | 
25 | #ifdef WEECHAT_HEADLESS
26 | #include "ncurses-fake.h"
27 | #else
28 | #define NCURSES_WIDECHAR 1
29 | #ifdef HAVE_NCURSESW_CURSES_H
30 | #include <ncursesw/ncurses.h>
31 | #elif HAVE_NCURSES_H
32 | #include <ncurses.h>
33 | #else
34 | #include <curses.h>
35 | #endif /* HAVE_NCURSESW_CURSES_H */
36 | #endif /* WEECHAT_HEADLESS */
37 | 
38 | #endif /* WEECHAT_GUI_CURSES_H */
39 | 


--------------------------------------------------------------------------------
/src/gui/curses/normal/main.c:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | /* Entry point for Curses GUI */
23 | 
24 | #ifdef HAVE_CONFIG_H
25 | #include "config.h"
26 | #endif
27 | 
28 | #include <stdlib.h>
29 | 
30 | #include "../../../core/weechat.h"
31 | #include "../../gui-main.h"
32 | #include "../gui-curses.h"
33 | #include "../gui-curses-main.h"
34 | 
35 | 
36 | /*
37 |  * Entry point for WeeChat (Curses GUI).
38 |  */
39 | 
40 | int
41 | main (int argc, char *argv[])
42 | {
43 |     /* init, main loop and end */
44 |     weechat_init_gettext ();
45 |     weechat_init (argc, argv, &gui_main_init);
46 |     gui_main_loop ();
47 |     weechat_end (&gui_main_end);
48 | 
49 |     return EXIT_SUCCESS;
50 | }
51 | 


--------------------------------------------------------------------------------
/src/gui/gui-cursor.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2011-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_GUI_CURSOR_H
23 | #define WEECHAT_GUI_CURSOR_H
24 | 
25 | /* cursor variables */
26 | 
27 | extern int gui_cursor_mode;
28 | extern int gui_cursor_debug;
29 | extern int gui_cursor_x;
30 | extern int gui_cursor_y;
31 | 
32 | /* cursor functions */
33 | 
34 | extern void gui_cursor_mode_toggle (void);
35 | extern void gui_cursor_mode_stop (void);
36 | extern void gui_cursor_debug_set (int debug);
37 | extern void gui_cursor_move_xy (int x, int y);
38 | extern void gui_cursor_move_add_xy (int add_x, int add_y);
39 | extern void gui_cursor_move_position (const char *position);
40 | extern void gui_cursor_move_area_add_xy (int add_x, int add_y);
41 | extern void gui_cursor_move_area (const char *area, const char *position);
42 | 
43 | #endif /* WEECHAT_GUI_CURSOR_H */
44 | 


--------------------------------------------------------------------------------
/src/gui/gui-main.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_GUI_MAIN_H
23 | #define WEECHAT_GUI_MAIN_H
24 | 
25 | /* main functions (GUI dependent) */
26 | 
27 | extern void gui_main_get_password (const char **prompt,
28 |                                    char *password, int size);
29 | extern void gui_main_debug_libs (void);
30 | extern void gui_main_end (int clean_exit);
31 | 
32 | /* terminal functions (GUI dependent) */
33 | extern void gui_term_set_eat_newline_glitch (int value);
34 | 
35 | #endif /* WEECHAT_GUI_MAIN_H */
36 | 


--------------------------------------------------------------------------------
/src/gui/gui-mouse.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2011-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_GUI_MOUSE_H
23 | #define WEECHAT_GUI_MOUSE_H
24 | 
25 | /* mouse variables */
26 | 
27 | extern int gui_mouse_enabled;
28 | extern int gui_mouse_debug;
29 | extern int gui_mouse_grab;
30 | extern int gui_mouse_event_pending;
31 | extern int gui_mouse_event_index;
32 | extern int gui_mouse_event_x[2];
33 | extern int gui_mouse_event_y[2];
34 | extern char gui_mouse_event_button;
35 | 
36 | /* mouse functions */
37 | 
38 | extern void gui_mouse_debug_set (int debug);
39 | extern void gui_mouse_event_reset (void);
40 | 
41 | /* mouse functions (GUI dependent) */
42 | 
43 | extern void gui_mouse_enable (void);
44 | extern void gui_mouse_disable (void);
45 | extern void gui_mouse_display_state (void);
46 | extern void gui_mouse_grab_init (int area);
47 | extern int gui_mouse_event_size (const char *key);
48 | extern void gui_mouse_event_process (const char *key);
49 | 
50 | #endif /* WEECHAT_GUI_MOUSE_H */
51 | 


--------------------------------------------------------------------------------
/src/gui/gui-nick.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_GUI_NICK_H
23 | #define WEECHAT_GUI_NICK_H
24 | 
25 | extern char *gui_nick_find_color_name (const char *nickname, int case_range,
26 |                                        const char *colors);
27 | extern char *gui_nick_find_color (const char *nickname, int case_range,
28 |                                   const char *colors);
29 | 
30 | #endif /* WEECHAT_GUI_NICK_H */
31 | 


--------------------------------------------------------------------------------
/src/plugins/alias/CMakeLists.txt:
--------------------------------------------------------------------------------
 1 | #
 2 | # SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 | #
 4 | # SPDX-License-Identifier: GPL-3.0-or-later
 5 | #
 6 | # This file is part of WeeChat, the extensible chat client.
 7 | #
 8 | # WeeChat is free software; you can redistribute it and/or modify
 9 | # it under the terms of the GNU General Public License as published by
10 | # the Free Software Foundation; either version 3 of the License, or
11 | # (at your option) any later version.
12 | #
13 | # WeeChat is distributed in the hope that it will be useful,
14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 | # GNU General Public License for more details.
17 | #
18 | # You should have received a copy of the GNU General Public License
19 | # along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 | #
21 | 
22 | add_library(alias MODULE
23 |   alias.c alias.h
24 |   alias-command.c alias-command.h
25 |   alias-completion.c alias-completion.h
26 |   alias-config.c alias-config.h
27 |   alias-info.c alias-info.h
28 | )
29 | set_target_properties(alias PROPERTIES PREFIX "")
30 | 
31 | target_link_libraries(alias coverage_config)
32 | 
33 | install(TARGETS alias LIBRARY DESTINATION "${WEECHAT_LIBDIR}/plugins")
34 | 


--------------------------------------------------------------------------------
/src/plugins/alias/alias-command.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2013-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_ALIAS_COMMAND_H
23 | #define WEECHAT_PLUGIN_ALIAS_COMMAND_H
24 | 
25 | #define ALIAS_COMMAND_KEEP_SPACES weechat_hook_set (ptr_hook, "keep_spaces_right", "1")
26 | 
27 | extern void alias_command_init (void);
28 | 
29 | #endif /* WEECHAT_PLUGIN_ALIAS_COMMAND_H */
30 | 


--------------------------------------------------------------------------------
/src/plugins/alias/alias-completion.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2013-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_ALIAS_COMPLETION_H
23 | #define WEECHAT_PLUGIN_ALIAS_COMPLETION_H
24 | 
25 | extern void alias_completion_init (void);
26 | 
27 | #endif /* WEECHAT_PLUGIN_ALIAS_COMPLETION_H */
28 | 


--------------------------------------------------------------------------------
/src/plugins/alias/alias-info.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_ALIAS_INFO_H
23 | #define WEECHAT_PLUGIN_ALIAS_INFO_H
24 | 
25 | extern void alias_info_init (void);
26 | 
27 | #endif /* WEECHAT_PLUGIN_ALIAS_INFO_H */
28 | 


--------------------------------------------------------------------------------
/src/plugins/buflist/CMakeLists.txt:
--------------------------------------------------------------------------------
 1 | #
 2 | # SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 | #
 4 | # SPDX-License-Identifier: GPL-3.0-or-later
 5 | #
 6 | # This file is part of WeeChat, the extensible chat client.
 7 | #
 8 | # WeeChat is free software; you can redistribute it and/or modify
 9 | # it under the terms of the GNU General Public License as published by
10 | # the Free Software Foundation; either version 3 of the License, or
11 | # (at your option) any later version.
12 | #
13 | # WeeChat is distributed in the hope that it will be useful,
14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 | # GNU General Public License for more details.
17 | #
18 | # You should have received a copy of the GNU General Public License
19 | # along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 | #
21 | 
22 | add_library(buflist MODULE
23 |   buflist.c buflist.h
24 |   buflist-bar-item.c buflist-bar-item.h
25 |   buflist-command.c buflist-command.h
26 |   buflist-completion.c buflist-completion.h
27 |   buflist-config.c buflist-config.h
28 |   buflist-info.c buflist-info.h
29 |   buflist-mouse.c buflist-mouse.h
30 | )
31 | set_target_properties(buflist PROPERTIES PREFIX "")
32 | 
33 | target_link_libraries(buflist coverage_config)
34 | 
35 | install(TARGETS buflist LIBRARY DESTINATION "${WEECHAT_LIBDIR}/plugins")
36 | 


--------------------------------------------------------------------------------
/src/plugins/buflist/buflist-bar-item.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_BUFLIST_BAR_ITEM_H
23 | #define WEECHAT_PLUGIN_BUFLIST_BAR_ITEM_H
24 | 
25 | #define BUFLIST_BAR_ITEM_NAME "buflist"
26 | 
27 | #define BUFLIST_BAR_NUM_ITEMS 5
28 | 
29 | struct t_gui_bar_item;
30 | 
31 | extern struct t_gui_bar_item *buflist_bar_item_buflist[BUFLIST_BAR_NUM_ITEMS];
32 | extern struct t_arraylist *buflist_list_buffers[BUFLIST_BAR_NUM_ITEMS];
33 | 
34 | extern const char *buflist_bar_item_get_name (int index);
35 | extern int buflist_bar_item_get_index (const char *item_name);
36 | extern int buflist_bar_item_get_index_with_pointer (struct t_gui_bar_item *item);
37 | extern void buflist_bar_item_update (int index, int force);
38 | extern int buflist_bar_item_init (void);
39 | extern void buflist_bar_item_end (void);
40 | 
41 | #endif /* WEECHAT_PLUGIN_BUFLIST_BAR_ITEM_H */
42 | 


--------------------------------------------------------------------------------
/src/plugins/buflist/buflist-command.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_BUFLIST_COMMAND_H
23 | #define WEECHAT_PLUGIN_BUFLIST_COMMAND_H
24 | 
25 | extern void buflist_command_init (void);
26 | 
27 | #endif /* WEECHAT_PLUGIN_BUFLIST_COMMAND_H */
28 | 


--------------------------------------------------------------------------------
/src/plugins/buflist/buflist-completion.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2023-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_BUFLIST_COMPLETION_H
23 | #define WEECHAT_PLUGIN_BUFLIST_COMPLETION_H
24 | 
25 | extern void buflist_completion_init (void);
26 | 
27 | #endif /* WEECHAT_PLUGIN_BUFLIST_COMPLETION_H */
28 | 


--------------------------------------------------------------------------------
/src/plugins/buflist/buflist-info.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2019 Simmo Saan <simmo.saan@gmail.com>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_BUFLIST_INFO_H
23 | #define WEECHAT_PLUGIN_BUFLIST_INFO_H
24 | 
25 | extern void buflist_info_init (void);
26 | 
27 | #endif /* WEECHAT_PLUGIN_BUFLIST_INFO_H */
28 | 


--------------------------------------------------------------------------------
/src/plugins/buflist/buflist-mouse.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_BUFLIST_MOUSE_H
23 | #define WEECHAT_PLUGIN_BUFLIST_MOUSE_H
24 | 
25 | #define BUFLIST_MOUSE_HSIGNAL "buflist_mouse"
26 | 
27 | extern int buflist_mouse_init (void);
28 | extern void buflist_mouse_end (void);
29 | 
30 | #endif /* WEECHAT_PLUGIN_BUFLIST_MOUSE_H */
31 | 


--------------------------------------------------------------------------------
/src/plugins/charset/CMakeLists.txt:
--------------------------------------------------------------------------------
 1 | #
 2 | # SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 | #
 4 | # SPDX-License-Identifier: GPL-3.0-or-later
 5 | #
 6 | # This file is part of WeeChat, the extensible chat client.
 7 | #
 8 | # WeeChat is free software; you can redistribute it and/or modify
 9 | # it under the terms of the GNU General Public License as published by
10 | # the Free Software Foundation; either version 3 of the License, or
11 | # (at your option) any later version.
12 | #
13 | # WeeChat is distributed in the hope that it will be useful,
14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 | # GNU General Public License for more details.
17 | #
18 | # You should have received a copy of the GNU General Public License
19 | # along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 | #
21 | 
22 | add_library(charset MODULE
23 |   charset.c charset.h
24 | )
25 | set_target_properties(charset PROPERTIES PREFIX "")
26 | 
27 | if(ICONV_FOUND)
28 |   include_directories(${ICONV_INCLUDE_PATH})
29 |   if(ICONV_LIBRARY)
30 |     target_link_libraries(charset ${ICONV_LIBRARY} coverage_config)
31 |   else()
32 |     target_link_libraries(charset coverage_config)
33 |   endif()
34 | endif()
35 | 
36 | install(TARGETS charset LIBRARY DESTINATION "${WEECHAT_LIBDIR}/plugins")
37 | 


--------------------------------------------------------------------------------
/src/plugins/charset/charset.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_CHARSET_H
23 | #define WEECHAT_PLUGIN_CHARSET_H
24 | 
25 | #define weechat_plugin weechat_charset_plugin
26 | #define CHARSET_PLUGIN_NAME "charset"
27 | #define CHARSET_PLUGIN_PRIORITY 16000
28 | 
29 | #define CHARSET_CONFIG_NAME "charset"
30 | #define CHARSET_CONFIG_PRIO_NAME (TO_STR(CHARSET_PLUGIN_PRIORITY) "|" CHARSET_CONFIG_NAME)
31 | 
32 | extern struct t_weechat_plugin *weechat_charset_plugin;
33 | 
34 | #endif /* WEECHAT_PLUGIN_CHARSET_H */
35 | 


--------------------------------------------------------------------------------
/src/plugins/exec/CMakeLists.txt:
--------------------------------------------------------------------------------
 1 | #
 2 | # SPDX-FileCopyrightText: 2014-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 | #
 4 | # SPDX-License-Identifier: GPL-3.0-or-later
 5 | #
 6 | # This file is part of WeeChat, the extensible chat client.
 7 | #
 8 | # WeeChat is free software; you can redistribute it and/or modify
 9 | # it under the terms of the GNU General Public License as published by
10 | # the Free Software Foundation; either version 3 of the License, or
11 | # (at your option) any later version.
12 | #
13 | # WeeChat is distributed in the hope that it will be useful,
14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 | # GNU General Public License for more details.
17 | #
18 | # You should have received a copy of the GNU General Public License
19 | # along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 | #
21 | 
22 | add_library(exec MODULE
23 |   exec.c exec.h
24 |   exec-buffer.c exec-buffer.h
25 |   exec-command.c exec-command.h
26 |   exec-completion.c exec-completion.h
27 |   exec-config.c exec-config.h
28 | )
29 | set_target_properties(exec PROPERTIES PREFIX "")
30 | 
31 | target_link_libraries(exec coverage_config)
32 | 
33 | install(TARGETS exec LIBRARY DESTINATION "${WEECHAT_LIBDIR}/plugins")
34 | 


--------------------------------------------------------------------------------
/src/plugins/exec/exec-buffer.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2014-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_EXEC_BUFFER_H
23 | #define WEECHAT_PLUGIN_EXEC_BUFFER_H
24 | 
25 | extern void exec_buffer_set_callbacks (void);
26 | extern struct t_gui_buffer *exec_buffer_new (const char *name,
27 |                                              int free_content,
28 |                                              int clear_buffer,
29 |                                              int switch_to_buffer);
30 | 
31 | #endif /* WEECHAT_PLUGIN_EXEC_BUFFER_H */
32 | 


--------------------------------------------------------------------------------
/src/plugins/exec/exec-completion.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2014-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_EXEC_COMPLETION_H
23 | #define WEECHAT_PLUGIN_EXEC_COMPLETION_H
24 | 
25 | extern void exec_completion_init (void);
26 | 
27 | #endif /* WEECHAT_PLUGIN_EXEC_COMPLETION_H */
28 | 


--------------------------------------------------------------------------------
/src/plugins/exec/exec-config.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2014-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_EXEC_CONFIG_H
23 | #define WEECHAT_PLUGIN_EXEC_CONFIG_H
24 | 
25 | #define EXEC_CONFIG_NAME "exec"
26 | #define EXEC_CONFIG_PRIO_NAME (TO_STR(EXEC_PLUGIN_PRIORITY) "|" EXEC_CONFIG_NAME)
27 | 
28 | extern struct t_config_file *exec_config_file;
29 | 
30 | extern struct t_config_option *exec_config_command_default_options;
31 | extern struct t_config_option *exec_config_command_purge_delay;
32 | extern struct t_config_option *exec_config_command_shell;
33 | 
34 | extern struct t_config_option *exec_config_color_flag_finished;
35 | extern struct t_config_option *exec_config_color_flag_running;
36 | 
37 | extern char **exec_config_cmd_options;
38 | extern int exec_config_cmd_num_options;
39 | 
40 | extern int exec_config_init (void);
41 | extern int exec_config_read (void);
42 | extern int exec_config_write (void);
43 | extern void exec_config_free (void);
44 | 
45 | #endif /* WEECHAT_PLUGIN_EXEC_CONFIG_H */
46 | 


--------------------------------------------------------------------------------
/src/plugins/fifo/CMakeLists.txt:
--------------------------------------------------------------------------------
 1 | #
 2 | # SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 | #
 4 | # SPDX-License-Identifier: GPL-3.0-or-later
 5 | #
 6 | # This file is part of WeeChat, the extensible chat client.
 7 | #
 8 | # WeeChat is free software; you can redistribute it and/or modify
 9 | # it under the terms of the GNU General Public License as published by
10 | # the Free Software Foundation; either version 3 of the License, or
11 | # (at your option) any later version.
12 | #
13 | # WeeChat is distributed in the hope that it will be useful,
14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 | # GNU General Public License for more details.
17 | #
18 | # You should have received a copy of the GNU General Public License
19 | # along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 | #
21 | 
22 | add_library(fifo MODULE
23 |   fifo.c fifo.h
24 |   fifo-command.c fifo-command.h
25 |   fifo-config.c fifo-config.h
26 |   fifo-info.c fifo-info.h
27 | )
28 | set_target_properties(fifo PROPERTIES PREFIX "")
29 | 
30 | target_link_libraries(fifo coverage_config)
31 | 
32 | install(TARGETS fifo LIBRARY DESTINATION "${WEECHAT_LIBDIR}/plugins")
33 | 


--------------------------------------------------------------------------------
/src/plugins/fifo/fifo-command.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_FIFO_COMMAND_H
23 | #define WEECHAT_PLUGIN_FIFO_COMMAND_H
24 | 
25 | extern void fifo_command_init (void);
26 | 
27 | #endif /* WEECHAT_PLUGIN_FIFO_COMMAND_H */
28 | 


--------------------------------------------------------------------------------
/src/plugins/fifo/fifo-config.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_FIFO_CONFIG_H
23 | #define WEECHAT_PLUGIN_FIFO_CONFIG_H
24 | 
25 | #define FIFO_CONFIG_NAME "fifo"
26 | #define FIFO_CONFIG_PRIO_NAME (TO_STR(FIFO_PLUGIN_PRIORITY) "|" FIFO_CONFIG_NAME)
27 | 
28 | extern struct t_config_option *fifo_config_file_enabled;
29 | extern struct t_config_option *fifo_config_file_path;
30 | 
31 | extern int fifo_config_init (void);
32 | extern int fifo_config_read (void);
33 | extern int fifo_config_write (void);
34 | extern void fifo_config_free (void);
35 | 
36 | #endif /* WEECHAT_PLUGIN_FIFO_CONFIG_H */
37 | 


--------------------------------------------------------------------------------
/src/plugins/fifo/fifo-info.c:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | /* Info and infolist hooks for fifo plugin */
23 | 
24 | #include <stdlib.h>
25 | #include <string.h>
26 | 
27 | #include "../weechat-plugin.h"
28 | #include "fifo.h"
29 | 
30 | 
31 | /*
32 |  * Returns FIFO info "fifo_filename".
33 |  */
34 | 
35 | char *
36 | fifo_info_info_fifo_filename_cb (const void *pointer, void *data,
37 |                                  const char *info_name,
38 |                                  const char *arguments)
39 | {
40 |     /* make C compiler happy */
41 |     (void) pointer;
42 |     (void) data;
43 |     (void) info_name;
44 |     (void) arguments;
45 | 
46 |     return (fifo_filename) ? strdup (fifo_filename) : NULL;
47 | }
48 | 
49 | /*
50 |  * Hooks info for fifo plugin.
51 |  */
52 | 
53 | void
54 | fifo_info_init (void)
55 | {
56 |     weechat_hook_info ("fifo_filename", N_("name of FIFO pipe"), NULL,
57 |                        &fifo_info_info_fifo_filename_cb, NULL, NULL);
58 | }
59 | 


--------------------------------------------------------------------------------
/src/plugins/fifo/fifo-info.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_FIFO_INFO_H
23 | #define WEECHAT_PLUGIN_FIFO_INFO_H
24 | 
25 | extern void fifo_info_init (void);
26 | 
27 | #endif /* WEECHAT_PLUGIN_FIFO_INFO_H */
28 | 


--------------------------------------------------------------------------------
/src/plugins/fifo/fifo.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_FIFO_H
23 | #define WEECHAT_PLUGIN_FIFO_H
24 | 
25 | #define weechat_plugin weechat_fifo_plugin
26 | #define FIFO_PLUGIN_NAME "fifo"
27 | #define FIFO_PLUGIN_PRIORITY 9000
28 | 
29 | extern struct t_weechat_plugin *weechat_fifo_plugin;
30 | extern int fifo_quiet;
31 | extern int fifo_fd;
32 | extern char *fifo_filename;
33 | 
34 | extern void fifo_create (void);
35 | extern void fifo_remove (void);
36 | 
37 | #endif /* WEECHAT_PLUGIN_FIFO_H */
38 | 


--------------------------------------------------------------------------------
/src/plugins/fset/CMakeLists.txt:
--------------------------------------------------------------------------------
 1 | #
 2 | # SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 | #
 4 | # SPDX-License-Identifier: GPL-3.0-or-later
 5 | #
 6 | # This file is part of WeeChat, the extensible chat client.
 7 | #
 8 | # WeeChat is free software; you can redistribute it and/or modify
 9 | # it under the terms of the GNU General Public License as published by
10 | # the Free Software Foundation; either version 3 of the License, or
11 | # (at your option) any later version.
12 | #
13 | # WeeChat is distributed in the hope that it will be useful,
14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 | # GNU General Public License for more details.
17 | #
18 | # You should have received a copy of the GNU General Public License
19 | # along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 | #
21 | 
22 | add_library(fset MODULE
23 |   fset.c fset.h
24 |   fset-bar-item.c fset-bar-item.h
25 |   fset-buffer.c fset-buffer.h
26 |   fset-command.c fset-command.h
27 |   fset-completion.c fset-completion.h
28 |   fset-config.c fset-config.h
29 |   fset-info.c fset-info.h
30 |   fset-mouse.c fset-mouse.h
31 |   fset-option.c fset-option.h
32 | )
33 | set_target_properties(fset PROPERTIES PREFIX "")
34 | 
35 | target_link_libraries(fset coverage_config)
36 | 
37 | install(TARGETS fset LIBRARY DESTINATION "${WEECHAT_LIBDIR}/plugins")
38 | 


--------------------------------------------------------------------------------
/src/plugins/fset/fset-bar-item.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_FSET_BAR_ITEM_H
23 | #define WEECHAT_PLUGIN_FSET_BAR_ITEM_H
24 | 
25 | #define FSET_BAR_ITEM_NAME "fset"
26 | 
27 | extern void fset_bar_item_update (void);
28 | extern int fset_bar_item_init (void);
29 | extern void fset_bar_item_end (void);
30 | 
31 | #endif /* WEECHAT_PLUGIN_FSET_BAR_ITEM_H */
32 | 


--------------------------------------------------------------------------------
/src/plugins/fset/fset-command.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_FSET_COMMAND_H
23 | #define WEECHAT_PLUGIN_FSET_COMMAND_H
24 | 
25 | extern void fset_command_init (void);
26 | 
27 | #endif /* WEECHAT_PLUGIN_FSET_COMMAND_H */
28 | 


--------------------------------------------------------------------------------
/src/plugins/fset/fset-completion.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_FSET_COMPLETION_H
23 | #define WEECHAT_PLUGIN_FSET_COMPLETION_H
24 | 
25 | extern void fset_completion_init (void);
26 | 
27 | #endif /* WEECHAT_PLUGIN_FSET_COMPLETION_H */
28 | 


--------------------------------------------------------------------------------
/src/plugins/fset/fset-info.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_FSET_INFO_H
23 | #define WEECHAT_PLUGIN_FSET_INFO_H
24 | 
25 | extern void fset_info_init (void);
26 | 
27 | #endif /* WEECHAT_PLUGIN_FSET_INFO_H */
28 | 


--------------------------------------------------------------------------------
/src/plugins/fset/fset-mouse.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_FSET_MOUSE_H
23 | #define WEECHAT_PLUGIN_FSET_MOUSE_H
24 | 
25 | #define FSET_MOUSE_HSIGNAL "fset_mouse"
26 | 
27 | extern int fset_mouse_init (void);
28 | extern void fset_mouse_end (void);
29 | 
30 | #endif /* WEECHAT_PLUGIN_FSET_MOUSE_H */
31 | 


--------------------------------------------------------------------------------
/src/plugins/fset/fset.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_FSET_H
23 | #define WEECHAT_PLUGIN_FSET_H
24 | 
25 | #define weechat_plugin weechat_fset_plugin
26 | #define FSET_PLUGIN_NAME "fset"
27 | #define FSET_PLUGIN_PRIORITY 2000
28 | 
29 | #define FSET_BAR_NAME "fset"
30 | 
31 | extern struct t_weechat_plugin *weechat_fset_plugin;
32 | 
33 | extern struct t_hdata *fset_hdata_config_file;
34 | extern struct t_hdata *fset_hdata_config_section;
35 | extern struct t_hdata *fset_hdata_config_option;
36 | extern struct t_hdata *fset_hdata_fset_option;
37 | 
38 | extern void fset_add_bar (void);
39 | 
40 | #endif /* WEECHAT_PLUGIN_FSET_H */
41 | 


--------------------------------------------------------------------------------
/src/plugins/guile/CMakeLists.txt:
--------------------------------------------------------------------------------
 1 | #
 2 | # SPDX-FileCopyrightText: 2011-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 | #
 4 | # SPDX-License-Identifier: GPL-3.0-or-later
 5 | #
 6 | # This file is part of WeeChat, the extensible chat client.
 7 | #
 8 | # WeeChat is free software; you can redistribute it and/or modify
 9 | # it under the terms of the GNU General Public License as published by
10 | # the Free Software Foundation; either version 3 of the License, or
11 | # (at your option) any later version.
12 | #
13 | # WeeChat is distributed in the hope that it will be useful,
14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 | # GNU General Public License for more details.
17 | #
18 | # You should have received a copy of the GNU General Public License
19 | # along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 | #
21 | 
22 | add_library(guile MODULE
23 |   weechat-guile.c weechat-guile.h
24 |   weechat-guile-api.c weechat-guile-api.h
25 | )
26 | set_target_properties(guile PROPERTIES PREFIX "")
27 | 
28 | if(GUILE_FOUND)
29 |   include_directories(${GUILE_INCLUDE_DIRS})
30 |   set(LINK_LIBS)
31 |   list(APPEND LINK_LIBS ${GUILE_LDFLAGS})
32 |   target_link_libraries(guile ${LINK_LIBS} weechat_plugins_scripts coverage_config)
33 | endif()
34 | 
35 | install(TARGETS guile LIBRARY DESTINATION "${WEECHAT_LIBDIR}/plugins")
36 | 


--------------------------------------------------------------------------------
/src/plugins/guile/weechat-guile-api.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2011-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_GUILE_API_H
23 | #define WEECHAT_PLUGIN_GUILE_API_H
24 | 
25 | extern int weechat_guile_api_buffer_input_data_cb (const void *pointer,
26 |                                                    void *data,
27 |                                                    struct t_gui_buffer *buffer,
28 |                                                    const char *input_data);
29 | extern int weechat_guile_api_buffer_close_cb (const void *pointer,
30 |                                               void *data,
31 |                                               struct t_gui_buffer *buffer);
32 | extern void weechat_guile_api_module_init (void *data);
33 | 
34 | #endif /* WEECHAT_PLUGIN_GUILE_API_H */
35 | 


--------------------------------------------------------------------------------
/src/plugins/irc/irc-bar-item.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_IRC_BAR_ITEM_H
23 | #define WEECHAT_PLUGIN_IRC_BAR_ITEM_H
24 | 
25 | extern void irc_bar_item_update_channel (void);
26 | extern void irc_bar_item_init (void);
27 | 
28 | #endif /* WEECHAT_PLUGIN_IRC_BAR_ITEM_H */
29 | 


--------------------------------------------------------------------------------
/src/plugins/irc/irc-completion.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_IRC_COMPLETION_H
23 | #define WEECHAT_PLUGIN_IRC_COMPLETION_H
24 | 
25 | extern void irc_completion_init (void);
26 | 
27 | #endif /* WEECHAT_PLUGIN_IRC_COMPLETION_H */
28 | 


--------------------------------------------------------------------------------
/src/plugins/irc/irc-debug.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_IRC_DEBUG_H
23 | #define WEECHAT_PLUGIN_IRC_DEBUG_H
24 | 
25 | extern void irc_debug_init (void);
26 | 
27 | #endif /* WEECHAT_PLUGIN_IRC_DEBUG_H */
28 | 


--------------------------------------------------------------------------------
/src/plugins/irc/irc-info.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_IRC_INFO_H
23 | #define WEECHAT_PLUGIN_IRC_INFO_H
24 | 
25 | extern void irc_info_init (void);
26 | 
27 | #endif /* WEECHAT_PLUGIN_IRC_INFO_H */
28 | 


--------------------------------------------------------------------------------
/src/plugins/irc/irc-mode.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_IRC_MODE_H
23 | #define WEECHAT_PLUGIN_IRC_MODE_H
24 | 
25 | struct t_irc_server;
26 | struct t_irc_channel;
27 | 
28 | extern char *irc_mode_get_arguments (const char *arguments);
29 | extern char irc_mode_get_chanmode_type (struct t_irc_server *server,
30 |                                         char chanmode);
31 | extern int irc_mode_channel_set (struct t_irc_server *server,
32 |                                  struct t_irc_channel *channel,
33 |                                  const char *host,
34 |                                  const char *modes,
35 |                                  const char *modes_arguments);
36 | extern void irc_mode_user_set (struct t_irc_server *server, const char *modes,
37 |                                int reset_modes);
38 | extern void irc_mode_registered_mode_change (struct t_irc_server *server);
39 | 
40 | #endif /* WEECHAT_PLUGIN_IRC_MODE_H */
41 | 


--------------------------------------------------------------------------------
/src/plugins/irc/irc-msgbuffer.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_IRC_MSGBUFFER_H
23 | #define WEECHAT_PLUGIN_IRC_MSGBUFFER_H
24 | 
25 | enum t_irc_msgbuffer_target
26 | {
27 |     IRC_MSGBUFFER_TARGET_WEECHAT = 0,
28 |     IRC_MSGBUFFER_TARGET_SERVER,
29 |     IRC_MSGBUFFER_TARGET_CURRENT,
30 |     IRC_MSGBUFFER_TARGET_PRIVATE,
31 |     /* number of msgbuffer targets */
32 |     IRC_MSGBUFFER_NUM_TARGETS,
33 | };
34 | 
35 | struct t_irc_server;
36 | 
37 | extern struct t_gui_buffer *irc_msgbuffer_get_target_buffer (struct t_irc_server *server,
38 |                                                              const char *nick,
39 |                                                              const char *message,
40 |                                                              const char *alias,
41 |                                                              struct t_gui_buffer *default_buffer);
42 | 
43 | #endif /* WEECHAT_PLUGIN_IRC_MSGBUFFER_H */
44 | 


--------------------------------------------------------------------------------
/src/plugins/irc/irc-tag.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2021-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_IRC_TAG_H
23 | #define WEECHAT_PLUGIN_IRC_TAG_H
24 | 
25 | extern char *irc_tag_escape_value (const char *string);
26 | extern char *irc_tag_unescape_value (const char *string);
27 | extern char *irc_tag_modifier_cb (const void *pointer,
28 |                                   void *data,
29 |                                   const char *modifier,
30 |                                   const char *modifier_data,
31 |                                   const char *string);
32 | extern int irc_tag_parse (const char *tags,
33 |                           struct t_hashtable *hashtable,
34 |                           const char *prefix_key);
35 | extern char *irc_tag_add_tags_to_message (const char *message,
36 |                                           struct t_hashtable *tags);
37 | 
38 | #endif /* WEECHAT_PLUGIN_IRC_TAG_H */
39 | 


--------------------------------------------------------------------------------
/src/plugins/irc/irc-typing.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2021-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_IRC_TYPING_H
23 | #define WEECHAT_PLUGIN_IRC_TYPING_H
24 | 
25 | struct t_irc_server;
26 | 
27 | extern int irc_typing_signal_typing_self_cb (const void *pointer, void *data,
28 |                                              const char *signal,
29 |                                              const char *type_data,
30 |                                              void *signal_data);
31 | extern void irc_typing_send_to_targets (struct t_irc_server *server);
32 | extern void irc_typing_channel_set_nick (struct t_irc_channel *channel,
33 |                                          const char *nick,
34 |                                          int state);
35 | extern void irc_typing_channel_reset (struct t_irc_channel *channel);
36 | 
37 | #endif /* WEECHAT_PLUGIN_IRC_TYPING_H */
38 | 


--------------------------------------------------------------------------------
/src/plugins/irc/irc-upgrade.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_IRC_UPGRADE_H
23 | #define WEECHAT_PLUGIN_IRC_UPGRADE_H
24 | 
25 | #define IRC_UPGRADE_FILENAME "irc"
26 | 
27 | /* For developers: please add new values ONLY AT THE END of enums */
28 | 
29 | enum t_irc_upgrade_type
30 | {
31 |     IRC_UPGRADE_TYPE_SERVER = 0,
32 |     IRC_UPGRADE_TYPE_CHANNEL,
33 |     IRC_UPGRADE_TYPE_NICK,
34 |     IRC_UPGRADE_TYPE_RAW_MESSAGE,
35 |     IRC_UPGRADE_TYPE_REDIRECT_PATTERN,
36 |     IRC_UPGRADE_TYPE_REDIRECT,
37 |     IRC_UPGRADE_TYPE_NOTIFY,
38 |     IRC_UPGRADE_TYPE_MODELIST,
39 |     IRC_UPGRADE_TYPE_MODELIST_ITEM,
40 | };
41 | 
42 | extern int irc_upgrading;
43 | 
44 | extern int irc_upgrade_save (int force_disconnected_state);
45 | extern int irc_upgrade_load (void);
46 | 
47 | #endif /* WEECHAT_PLUGIN_IRC_UPGRADE_H */
48 | 


--------------------------------------------------------------------------------
/src/plugins/irc/irc.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  * SPDX-FileCopyrightText: 2006 Emmanuel Bouthenot <kolter@openics.org>
 4 |  *
 5 |  * SPDX-License-Identifier: GPL-3.0-or-later
 6 |  *
 7 |  * This file is part of WeeChat, the extensible chat client.
 8 |  *
 9 |  * WeeChat is free software; you can redistribute it and/or modify
10 |  * it under the terms of the GNU General Public License as published by
11 |  * the Free Software Foundation; either version 3 of the License, or
12 |  * (at your option) any later version.
13 |  *
14 |  * WeeChat is distributed in the hope that it will be useful,
15 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 |  * GNU General Public License for more details.
18 |  *
19 |  * You should have received a copy of the GNU General Public License
20 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
21 |  */
22 | 
23 | #ifndef WEECHAT_PLUGIN_IRC_H
24 | #define WEECHAT_PLUGIN_IRC_H
25 | 
26 | #define weechat_plugin weechat_irc_plugin
27 | #define IRC_PLUGIN_NAME "irc"
28 | #define IRC_PLUGIN_PRIORITY 6000
29 | 
30 | extern struct t_weechat_plugin *weechat_irc_plugin;
31 | 
32 | extern int irc_signal_quit_received;
33 | 
34 | #endif /* WEECHAT_PLUGIN_IRC_H */
35 | 


--------------------------------------------------------------------------------
/src/plugins/javascript/CMakeLists.txt:
--------------------------------------------------------------------------------
 1 | #
 2 | # SPDX-FileCopyrightText: 2015-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 | #
 4 | # SPDX-License-Identifier: GPL-3.0-or-later
 5 | #
 6 | # This file is part of WeeChat, the extensible chat client.
 7 | #
 8 | # WeeChat is free software; you can redistribute it and/or modify
 9 | # it under the terms of the GNU General Public License as published by
10 | # the Free Software Foundation; either version 3 of the License, or
11 | # (at your option) any later version.
12 | #
13 | # WeeChat is distributed in the hope that it will be useful,
14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 | # GNU General Public License for more details.
17 | #
18 | # You should have received a copy of the GNU General Public License
19 | # along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 | #
21 | 
22 | enable_language(CXX)
23 | 
24 | add_library(javascript MODULE
25 |   weechat-js.cpp weechat-js.h
26 |   weechat-js-v8.cpp weechat-js-v8.h
27 |   weechat-js-api.cpp weechat-js-api.h
28 | )
29 | set_target_properties(javascript PROPERTIES PREFIX "")
30 | 
31 | if(V8_FOUND)
32 |   include_directories(${V8_INCLUDE_DIR})
33 |   target_link_libraries(javascript ${V8_LIBRARY} weechat_plugins_scripts coverage_config)
34 | endif()
35 | 
36 | install(TARGETS javascript LIBRARY DESTINATION "${WEECHAT_LIBDIR}/plugins")
37 | 


--------------------------------------------------------------------------------
/src/plugins/javascript/weechat-js-api.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2013 Koka El Kiwi <kokakiwi@kokakiwi.net>
 3 |  * SPDX-FileCopyrightText: 2015-2025 Sébastien Helleu <flashcode@flashtux.org>
 4 |  *
 5 |  * SPDX-License-Identifier: GPL-3.0-or-later
 6 |  *
 7 |  * This file is part of WeeChat, the extensible chat client.
 8 |  *
 9 |  * WeeChat is free software; you can redistribute it and/or modify
10 |  * it under the terms of the GNU General Public License as published by
11 |  * the Free Software Foundation; either version 3 of the License, or
12 |  * (at your option) any later version.
13 |  *
14 |  * WeeChat is distributed in the hope that it will be useful,
15 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 |  * GNU General Public License for more details.
18 |  *
19 |  * You should have received a copy of the GNU General Public License
20 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
21 |  */
22 | 
23 | #ifndef WEECHAT_PLUGIN_JS_API_H
24 | #define WEECHAT_PLUGIN_JS_API_H
25 | 
26 | extern int weechat_js_api_buffer_input_data_cb (const void *pointer,
27 |                                                 void *data,
28 |                                                 struct t_gui_buffer *buffer,
29 |                                                 const char *input_data);
30 | extern int weechat_js_api_buffer_close_cb (const void *pointer,
31 |                                            void *data,
32 |                                            struct t_gui_buffer *buffer);
33 | 
34 | #endif /* WEECHAT_PLUGIN_JS_API_H */
35 | 


--------------------------------------------------------------------------------
/src/plugins/logger/CMakeLists.txt:
--------------------------------------------------------------------------------
 1 | #
 2 | # SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 | #
 4 | # SPDX-License-Identifier: GPL-3.0-or-later
 5 | #
 6 | # This file is part of WeeChat, the extensible chat client.
 7 | #
 8 | # WeeChat is free software; you can redistribute it and/or modify
 9 | # it under the terms of the GNU General Public License as published by
10 | # the Free Software Foundation; either version 3 of the License, or
11 | # (at your option) any later version.
12 | #
13 | # WeeChat is distributed in the hope that it will be useful,
14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 | # GNU General Public License for more details.
17 | #
18 | # You should have received a copy of the GNU General Public License
19 | # along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 | #
21 | 
22 | add_library(logger MODULE
23 |   logger.c logger.h
24 |   logger-backlog.c logger-backlog.h
25 |   logger-buffer.c logger-buffer.h
26 |   logger-command.c logger-command.h
27 |   logger-config.c logger-config.h
28 |   logger-info.c logger-info.h
29 |   logger-tail.c logger-tail.h
30 | )
31 | set_target_properties(logger PROPERTIES PREFIX "")
32 | 
33 | target_link_libraries(logger coverage_config)
34 | 
35 | install(TARGETS logger LIBRARY DESTINATION "${WEECHAT_LIBDIR}/plugins")
36 | 


--------------------------------------------------------------------------------
/src/plugins/logger/logger-backlog.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_LOGGER_BACKLOG_H
23 | #define WEECHAT_PLUGIN_LOGGER_BACKLOG_H
24 | 
25 | extern int logger_backlog_signal_cb (const void *pointer, void *data,
26 |                                      const char *signal,
27 |                                      const char *type_data, void *signal_data);
28 | 
29 | #endif /* WEECHAT_PLUGIN_LOGGER_BACKLOG_H */
30 | 


--------------------------------------------------------------------------------
/src/plugins/logger/logger-command.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_LOGGER_COMMAND_H
23 | #define WEECHAT_PLUGIN_LOGGER_COMMAND_H
24 | 
25 | extern void logger_command_init (void);
26 | 
27 | #endif /* WEECHAT_PLUGIN_LOGGER_COMMAND_H */
28 | 


--------------------------------------------------------------------------------
/src/plugins/logger/logger-info.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_LOGGER_INFO_H
23 | #define WEECHAT_PLUGIN_LOGGER_INFO_H
24 | 
25 | extern void logger_info_init (void);
26 | 
27 | #endif /* WEECHAT_PLUGIN_LOGGER_INFO_H */
28 | 


--------------------------------------------------------------------------------
/src/plugins/logger/logger-tail.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_LOGGER_TAIL_H
23 | #define WEECHAT_PLUGIN_LOGGER_TAIL_H
24 | 
25 | extern struct t_arraylist *logger_tail_file (const char *filename, int lines);
26 | 
27 | #endif /* WEECHAT_PLUGIN_LOGGER_TAIL_H */
28 | 


--------------------------------------------------------------------------------
/src/plugins/lua/CMakeLists.txt:
--------------------------------------------------------------------------------
 1 | #
 2 | # SPDX-FileCopyrightText: 2006-2007 Emmanuel Bouthenot <kolter@openics.org>
 3 | # SPDX-FileCopyrightText: 2006-2025 Sébastien Helleu <flashcode@flashtux.org>
 4 | #
 5 | # SPDX-License-Identifier: GPL-3.0-or-later
 6 | #
 7 | # This file is part of WeeChat, the extensible chat client.
 8 | #
 9 | # WeeChat is free software; you can redistribute it and/or modify
10 | # it under the terms of the GNU General Public License as published by
11 | # the Free Software Foundation; either version 3 of the License, or
12 | # (at your option) any later version.
13 | #
14 | # WeeChat is distributed in the hope that it will be useful,
15 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 | # GNU General Public License for more details.
18 | #
19 | # You should have received a copy of the GNU General Public License
20 | # along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
21 | #
22 | 
23 | add_library(lua MODULE
24 |   weechat-lua.c weechat-lua.h
25 |   weechat-lua-api.c weechat-lua-api.h
26 | )
27 | set_target_properties(lua PROPERTIES PREFIX "")
28 | 
29 | if(LUA_FOUND)
30 |   add_definitions(${LUA_CFLAGS})
31 |   include_directories(${LUA_INCLUDE_DIRS})
32 |   target_link_libraries(lua ${LUA_LDFLAGS} weechat_plugins_scripts coverage_config)
33 | endif()
34 | 
35 | install(TARGETS lua LIBRARY DESTINATION "${WEECHAT_LIBDIR}/plugins")
36 | 


--------------------------------------------------------------------------------
/src/plugins/lua/weechat-lua-api.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2006-2007 Emmanuel Bouthenot <kolter@openics.org>
 3 |  * SPDX-FileCopyrightText: 2006-2025 Sébastien Helleu <flashcode@flashtux.org>
 4 |  *
 5 |  * SPDX-License-Identifier: GPL-3.0-or-later
 6 |  *
 7 |  * This file is part of WeeChat, the extensible chat client.
 8 |  *
 9 |  * WeeChat is free software; you can redistribute it and/or modify
10 |  * it under the terms of the GNU General Public License as published by
11 |  * the Free Software Foundation; either version 3 of the License, or
12 |  * (at your option) any later version.
13 |  *
14 |  * WeeChat is distributed in the hope that it will be useful,
15 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 |  * GNU General Public License for more details.
18 |  *
19 |  * You should have received a copy of the GNU General Public License
20 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
21 |  */
22 | 
23 | #ifndef WEECHAT_PLUGIN_LUA_API_H
24 | #define WEECHAT_PLUGIN_LUA_API_H
25 | 
26 | extern struct luaL_Reg weechat_lua_api_funcs[];
27 | 
28 | extern int weechat_lua_api_buffer_input_data_cb (const void *pointer,
29 |                                                  void *data,
30 |                                                  struct t_gui_buffer *buffer,
31 |                                                  const char *input_data);
32 | extern int weechat_lua_api_buffer_close_cb (const void *pointer,
33 |                                             void *data,
34 |                                             struct t_gui_buffer *buffer);
35 | 
36 | #endif /* WEECHAT_PLUGIN_LUA_API_H */
37 | 


--------------------------------------------------------------------------------
/src/plugins/perl/weechat-perl-api.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_PERL_API_H
23 | #define WEECHAT_PLUGIN_PERL_API_H
24 | 
25 | extern int weechat_perl_api_buffer_input_data_cb (const void *pointer,
26 |                                                   void *data,
27 |                                                   struct t_gui_buffer *buffer,
28 |                                                   const char *input_data);
29 | extern int weechat_perl_api_buffer_close_cb (const void *pointer,
30 |                                              void *data,
31 |                                              struct t_gui_buffer *buffer);
32 | extern void weechat_perl_api_init (pTHX);
33 | 
34 | #endif /* WEECHAT_PLUGIN_PERL_API_H */
35 | 


--------------------------------------------------------------------------------
/src/plugins/php/CMakeLists.txt:
--------------------------------------------------------------------------------
 1 | #
 2 | # SPDX-FileCopyrightText: 2006-2017 Adam Saponara <as@php.net>
 3 | #
 4 | # SPDX-License-Identifier: GPL-3.0-or-later
 5 | #
 6 | # This file is part of WeeChat, the extensible chat client.
 7 | #
 8 | # WeeChat is free software; you can redistribute it and/or modify
 9 | # it under the terms of the GNU General Public License as published by
10 | # the Free Software Foundation; either version 3 of the License, or
11 | # (at your option) any later version.
12 | #
13 | # WeeChat is distributed in the hope that it will be useful,
14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 | # GNU General Public License for more details.
17 | #
18 | # You should have received a copy of the GNU General Public License
19 | # along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 | #
21 | 
22 | add_library(php MODULE
23 |   weechat-php.c weechat-php.h
24 |   weechat-php-api.c weechat-php-api.h
25 | )
26 | set_target_properties(php PROPERTIES PREFIX "")
27 | 
28 | if(PHP_FOUND)
29 |   include_directories(${PHP_INCLUDE_DIRS})
30 |   set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${PHP_LDFLAGS}")
31 |   target_link_libraries(php ${PHP_LIB} weechat_plugins_scripts coverage_config)
32 | endif()
33 | 
34 | install(TARGETS php LIBRARY DESTINATION "${WEECHAT_LIBDIR}/plugins")
35 | 


--------------------------------------------------------------------------------
/src/plugins/plugin-api-info.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_PLUGIN_API_INFO_H
23 | #define WEECHAT_PLUGIN_PLUGIN_API_INFO_H
24 | 
25 | extern void plugin_api_info_init (void);
26 | 
27 | #endif /* WEECHAT_PLUGIN_PLUGIN_API_INFO_H */
28 | 


--------------------------------------------------------------------------------
/src/plugins/plugin-script-config.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_PLUGIN_SCRIPT_CONFIG_H
23 | #define WEECHAT_PLUGIN_PLUGIN_SCRIPT_CONFIG_H
24 | 
25 | extern int plugin_script_config_init (struct t_weechat_plugin *plugin,
26 |                                       struct t_plugin_script_data *plugin_data);
27 | 
28 | #endif /* WEECHAT_PLUGIN_PLUGIN_SCRIPT_CONFIG_H */
29 | 


--------------------------------------------------------------------------------
/src/plugins/python/CMakeLists.txt:
--------------------------------------------------------------------------------
 1 | #
 2 | # SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 | #
 4 | # SPDX-License-Identifier: GPL-3.0-or-later
 5 | #
 6 | # This file is part of WeeChat, the extensible chat client.
 7 | #
 8 | # WeeChat is free software; you can redistribute it and/or modify
 9 | # it under the terms of the GNU General Public License as published by
10 | # the Free Software Foundation; either version 3 of the License, or
11 | # (at your option) any later version.
12 | #
13 | # WeeChat is distributed in the hope that it will be useful,
14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 | # GNU General Public License for more details.
17 | #
18 | # You should have received a copy of the GNU General Public License
19 | # along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 | #
21 | 
22 | add_library(python MODULE
23 |   weechat-python.c weechat-python.h
24 |   weechat-python-api.c weechat-python-api.h
25 | )
26 | set_target_properties(python PROPERTIES PREFIX "")
27 | 
28 | if(Python_FOUND)
29 |   include_directories(${Python_INCLUDE_DIRS})
30 |   add_definitions(${Python_DEFINITIONS})
31 |   target_link_libraries(python ${Python_LIBRARIES} weechat_plugins_scripts coverage_config)
32 | endif()
33 | 
34 | install(TARGETS python LIBRARY DESTINATION "${WEECHAT_LIBDIR}/plugins")
35 | 


--------------------------------------------------------------------------------
/src/plugins/python/weechat-python-api.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  * SPDX-FileCopyrightText: 2005-2007 Emmanuel Bouthenot <kolter@openics.org>
 4 |  *
 5 |  * SPDX-License-Identifier: GPL-3.0-or-later
 6 |  *
 7 |  * This file is part of WeeChat, the extensible chat client.
 8 |  *
 9 |  * WeeChat is free software; you can redistribute it and/or modify
10 |  * it under the terms of the GNU General Public License as published by
11 |  * the Free Software Foundation; either version 3 of the License, or
12 |  * (at your option) any later version.
13 |  *
14 |  * WeeChat is distributed in the hope that it will be useful,
15 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 |  * GNU General Public License for more details.
18 |  *
19 |  * You should have received a copy of the GNU General Public License
20 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
21 |  */
22 | 
23 | #ifndef WEECHAT_PLUGIN_PYTHON_API_H
24 | #define WEECHAT_PLUGIN_PYTHON_API_H
25 | 
26 | extern PyMethodDef weechat_python_funcs[];
27 | 
28 | extern int weechat_python_api_buffer_input_data_cb (const void *pointer,
29 |                                                     void *data,
30 |                                                     struct t_gui_buffer *buffer,
31 |                                                     const char *input_data);
32 | extern int weechat_python_api_buffer_close_cb (const void *pointer,
33 |                                                void *data,
34 |                                                struct t_gui_buffer *buffer);
35 | 
36 | #endif /* WEECHAT_PLUGIN_PYTHON_API_H */
37 | 


--------------------------------------------------------------------------------
/src/plugins/relay/api/remote/relay-remote-network.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2024-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_RELAY_REMOTE_NETWORK_H
23 | #define WEECHAT_PLUGIN_RELAY_REMOTE_NETWORK_H
24 | 
25 | #include <cjson/cJSON.h>
26 | 
27 | extern int relay_remote_network_send (struct t_relay_remote *remote,
28 |                                       enum t_relay_msg_type msg_type,
29 |                                       const char *data, int data_size);
30 | extern int relay_remote_network_send_json (struct t_relay_remote *remote,
31 |                                            cJSON *json);
32 | extern int relay_remote_network_connect (struct t_relay_remote *remote);
33 | extern void relay_remote_network_disconnect (struct t_relay_remote *remote);
34 | 
35 | #endif /* WEECHAT_PLUGIN_RELAY_REMOTE_NETWORK_H */
36 | 


--------------------------------------------------------------------------------
/src/plugins/relay/relay-bar-item.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2024-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_RELAY_BAR_ITEM_H
23 | #define WEECHAT_PLUGIN_RELAY_BAR_ITEM_H
24 | 
25 | extern void relay_bar_item_init (void);
26 | 
27 | #endif /* WEECHAT_PLUGIN_RELAY_BAR_ITEM_H */
28 | 


--------------------------------------------------------------------------------
/src/plugins/relay/relay-buffer.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_RELAY_BUFFER_H
23 | #define WEECHAT_PLUGIN_RELAY_BUFFER_H
24 | 
25 | #define RELAY_BUFFER_NAME "relay.list"
26 | 
27 | extern struct t_gui_buffer *relay_buffer;
28 | extern int relay_buffer_selected_line;
29 | 
30 | extern int relay_buffer_is_relay (struct t_gui_buffer *buffer);
31 | extern void relay_buffer_refresh (const char *hotlist);
32 | extern int relay_buffer_input_cb (const void *pointer, void *data,
33 |                                   struct t_gui_buffer *buffer,
34 |                                   const char *input_data);
35 | extern int relay_buffer_close_cb (const void *pointer, void *data,
36 |                                   struct t_gui_buffer *buffer);
37 | extern void relay_buffer_open (void);
38 | 
39 | #endif /* WEECHAT_PLUGIN_RELAY_BUFFER_H */
40 | 


--------------------------------------------------------------------------------
/src/plugins/relay/relay-command.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_RELAY_COMMAND_H
23 | #define WEECHAT_PLUGIN_RELAY_COMMAND_H
24 | 
25 | extern void relay_command_init (void);
26 | 
27 | #endif /* WEECHAT_PLUGIN_RELAY_COMMAND_H */
28 | 


--------------------------------------------------------------------------------
/src/plugins/relay/relay-completion.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_RELAY_COMPLETION_H
23 | #define WEECHAT_PLUGIN_RELAY_COMPLETION_H
24 | 
25 | extern void relay_completion_init (void);
26 | 
27 | #endif /* WEECHAT_PLUGIN_RELAY_COMPLETION_H */
28 | 


--------------------------------------------------------------------------------
/src/plugins/relay/relay-info.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_RELAY_INFO_H
23 | #define WEECHAT_PLUGIN_RELAY_INFO_H
24 | 
25 | extern void relay_info_init (void);
26 | 
27 | #endif /* WEECHAT_PLUGIN_RELAY_INFO_H */
28 | 


--------------------------------------------------------------------------------
/src/plugins/relay/relay-network.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_RELAY_NETWORK_H
23 | #define WEECHAT_PLUGIN_RELAY_NETWORK_H
24 | 
25 | #include <gnutls/gnutls.h>
26 | 
27 | extern int relay_network_init_ok;
28 | extern int relay_network_init_tls_cert_key_ok;
29 | 
30 | extern gnutls_certificate_credentials_t relay_gnutls_x509_cred;
31 | extern gnutls_priority_t *relay_gnutls_priority_cache;
32 | extern gnutls_dh_params_t *relay_gnutls_dh_params;
33 | 
34 | extern void relay_network_set_tls_cert_key (int verbose);
35 | extern void relay_network_set_priority (void);
36 | extern void relay_network_init (void);
37 | extern void relay_network_end (void);
38 | 
39 | #endif /* WEECHAT_PLUGIN_RELAY_NETWORK_H */
40 | 


--------------------------------------------------------------------------------
/src/plugins/relay/relay-upgrade.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_RELAY_UPGRADE_H
23 | #define WEECHAT_PLUGIN_RELAY_UPGRADE_H
24 | 
25 | #define RELAY_UPGRADE_FILENAME "relay"
26 | 
27 | /* For developers: please add new values ONLY AT THE END of enums */
28 | 
29 | enum t_relay_upgrade_type
30 | {
31 |     RELAY_UPGRADE_TYPE_CLIENT = 0,
32 |     RELAY_UPGRADE_TYPE_RAW_MESSAGE,
33 |     RELAY_UPGRADE_TYPE_SERVER,
34 | };
35 | 
36 | extern int relay_upgrade_save (int force_disconnected_state);
37 | extern int relay_upgrade_load (void);
38 | 
39 | #endif /* WEECHAT_PLUGIN_RELAY_UPGRADE_H */
40 | 


--------------------------------------------------------------------------------
/src/plugins/ruby/CMakeLists.txt:
--------------------------------------------------------------------------------
 1 | #
 2 | # SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 | #
 4 | # SPDX-License-Identifier: GPL-3.0-or-later
 5 | #
 6 | # This file is part of WeeChat, the extensible chat client.
 7 | #
 8 | # WeeChat is free software; you can redistribute it and/or modify
 9 | # it under the terms of the GNU General Public License as published by
10 | # the Free Software Foundation; either version 3 of the License, or
11 | # (at your option) any later version.
12 | #
13 | # WeeChat is distributed in the hope that it will be useful,
14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 | # GNU General Public License for more details.
17 | #
18 | # You should have received a copy of the GNU General Public License
19 | # along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 | #
21 | 
22 | add_library(ruby MODULE
23 |   weechat-ruby.c weechat-ruby.h
24 |   weechat-ruby-api.c weechat-ruby-api.h
25 | )
26 | set_target_properties(ruby PROPERTIES PREFIX "")
27 | 
28 | if(RUBY_FOUND)
29 |   # temporary fix: ignore all warnings on unused parameters due to warnings
30 |   # caused by Ruby headers (with Ruby ≥ 3.1.0)
31 |   # see: https://github.com/ruby/ruby/pull/7085
32 |   add_definitions(-Wno-unused-parameter)
33 |   include_directories(${Ruby_INCLUDE_DIRS})
34 |   target_link_libraries(ruby ${Ruby_LIBRARIES} weechat_plugins_scripts coverage_config)
35 | endif(RUBY_FOUND)
36 | 
37 | install(TARGETS ruby LIBRARY DESTINATION "${WEECHAT_LIBDIR}/plugins")
38 | 


--------------------------------------------------------------------------------
/src/plugins/script/CMakeLists.txt:
--------------------------------------------------------------------------------
 1 | #
 2 | # SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 | #
 4 | # SPDX-License-Identifier: GPL-3.0-or-later
 5 | #
 6 | # This file is part of WeeChat, the extensible chat client.
 7 | #
 8 | # WeeChat is free software; you can redistribute it and/or modify
 9 | # it under the terms of the GNU General Public License as published by
10 | # the Free Software Foundation; either version 3 of the License, or
11 | # (at your option) any later version.
12 | #
13 | # WeeChat is distributed in the hope that it will be useful,
14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 | # GNU General Public License for more details.
17 | #
18 | # You should have received a copy of the GNU General Public License
19 | # along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 | #
21 | 
22 | add_library(script MODULE
23 |   script.c script.h
24 |   script-action.c script-action.h
25 |   script-buffer.c script-buffer.h
26 |   script-command.c script-command.h
27 |   script-completion.c script-completion.h
28 |   script-config.c script-config.h
29 |   script-info.c script-info.h
30 |   script-mouse.c script-mouse.h
31 |   script-repo.c script-repo.h
32 | )
33 | set_target_properties(script PROPERTIES PREFIX "")
34 | 
35 | set(LINK_LIBS)
36 | 
37 | list(APPEND LINK_LIBS ${ZLIB_LIBRARY})
38 | 
39 | target_link_libraries(script ${LINK_LIBS} coverage_config)
40 | 
41 | install(TARGETS script LIBRARY DESTINATION "${WEECHAT_LIBDIR}/plugins")
42 | 


--------------------------------------------------------------------------------
/src/plugins/script/script-action.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_SCRIPT_ACTION_H
23 | #define WEECHAT_PLUGIN_SCRIPT_ACTION_H
24 | 
25 | extern char **script_actions;
26 | 
27 | extern int script_action_run_all (void);
28 | extern void script_action_schedule (struct t_gui_buffer *buffer,
29 |                                     const char *action,
30 |                                     int need_repository,
31 |                                     int error_repository,
32 |                                     int quiet);
33 | extern void script_action_end (void);
34 | 
35 | #endif /* WEECHAT_PLUGIN_SCRIPT_ACTION_H */
36 | 


--------------------------------------------------------------------------------
/src/plugins/script/script-command.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_SCRIPT_COMMAND_H
23 | #define WEECHAT_PLUGIN_SCRIPT_COMMAND_H
24 | 
25 | extern void script_command_init (void);
26 | 
27 | #endif /* WEECHAT_PLUGIN_SCRIPT_COMMAND_H */
28 | 


--------------------------------------------------------------------------------
/src/plugins/script/script-completion.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_SCRIPT_COMPLETION_H
23 | #define WEECHAT_PLUGIN_SCRIPT_COMPLETION_H
24 | 
25 | extern void script_completion_init (void);
26 | 
27 | #endif /* WEECHAT_PLUGIN_SCRIPT_COMPLETION_H */
28 | 


--------------------------------------------------------------------------------
/src/plugins/script/script-info.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_SCRIPT_INFO_H
23 | #define WEECHAT_PLUGIN_SCRIPT_INFO_H
24 | 
25 | extern void script_info_init (void);
26 | 
27 | #endif /* WEECHAT_PLUGIN_SCRIPT_INFO_H */
28 | 


--------------------------------------------------------------------------------
/src/plugins/script/script-mouse.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_SCRIPT_MOUSE_H
23 | #define WEECHAT_PLUGIN_SCRIPT_MOUSE_H
24 | 
25 | extern int script_mouse_init (void);
26 | extern void script_mouse_end (void);
27 | 
28 | #endif /* WEECHAT_PLUGIN_SCRIPT_MOUSE_H */
29 | 


--------------------------------------------------------------------------------
/src/plugins/script/script.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_SCRIPT_H
23 | #define WEECHAT_PLUGIN_SCRIPT_H
24 | 
25 | #define weechat_plugin weechat_script_plugin
26 | #define SCRIPT_PLUGIN_NAME "script"
27 | #define SCRIPT_PLUGIN_PRIORITY 3000
28 | 
29 | #define SCRIPT_NUM_LANGUAGES 8
30 | 
31 | extern struct t_weechat_plugin *weechat_script_plugin;
32 | 
33 | extern char *script_language[SCRIPT_NUM_LANGUAGES];
34 | extern char *script_extension[SCRIPT_NUM_LANGUAGES];
35 | extern int script_plugin_loaded[SCRIPT_NUM_LANGUAGES];
36 | extern struct t_hashtable *script_loaded;
37 | 
38 | extern int script_language_search (const char *language);
39 | extern int script_language_search_by_extension (const char *extension);
40 | extern int script_download_enabled (int display_error);
41 | extern void script_get_loaded_plugins (void);
42 | extern void script_get_scripts (void);
43 | 
44 | #endif /* WEECHAT_PLUGIN_SCRIPT_H */
45 | 


--------------------------------------------------------------------------------
/src/plugins/spell/CMakeLists.txt:
--------------------------------------------------------------------------------
 1 | #
 2 | # SPDX-FileCopyrightText: 2006 Emmanuel Bouthenot <kolter@openics.org>
 3 | # SPDX-FileCopyrightText: 2006-2025 Sébastien Helleu <flashcode@flashtux.org>
 4 | #
 5 | # SPDX-License-Identifier: GPL-3.0-or-later
 6 | #
 7 | # This file is part of WeeChat, the extensible chat client.
 8 | #
 9 | # WeeChat is free software; you can redistribute it and/or modify
10 | # it under the terms of the GNU General Public License as published by
11 | # the Free Software Foundation; either version 3 of the License, or
12 | # (at your option) any later version.
13 | #
14 | # WeeChat is distributed in the hope that it will be useful,
15 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 | # GNU General Public License for more details.
18 | #
19 | # You should have received a copy of the GNU General Public License
20 | # along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
21 | #
22 | 
23 | add_library(spell MODULE
24 |   spell.c spell.h
25 |   spell-bar-item.c spell-bar-item.h
26 |   spell-command.c spell-command.h
27 |   spell-completion.c spell-completion.h
28 |   spell-config.c spell-config.h
29 |   spell-info.c spell-info.h
30 |   spell-speller.c spell-speller.h
31 | )
32 | set_target_properties(spell PROPERTIES PREFIX "")
33 | 
34 | if(ENCHANT_FOUND)
35 |   include_directories(${ENCHANT_INCLUDE_DIR})
36 |   target_link_libraries(spell ${ENCHANT_LIBRARIES} coverage_config)
37 |   add_definitions(-DUSE_ENCHANT)
38 | else()
39 |   if(ASPELL_FOUND)
40 |     include_directories(${ASPELL_INCLUDE_PATH})
41 |     target_link_libraries(spell ${ASPELL_LIBRARY} coverage_config)
42 |   endif()
43 | endif()
44 | 
45 | install(TARGETS spell LIBRARY DESTINATION "${WEECHAT_LIBDIR}/plugins")
46 | 


--------------------------------------------------------------------------------
/src/plugins/spell/spell-bar-item.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2012 Nils Görs <weechatter@arcor.de>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_SPELL_BAR_ITEM_H
23 | #define WEECHAT_PLUGIN_SPELL_BAR_ITEM_H
24 | 
25 | extern void spell_bar_item_init (void);
26 | 
27 | #endif /* WEECHAT_PLUGIN_SPELL_BAR_ITEM_H */
28 | 


--------------------------------------------------------------------------------
/src/plugins/spell/spell-command.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2013-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_SPELL_COMMAND_H
23 | #define WEECHAT_PLUGIN_SPELL_COMMAND_H
24 | 
25 | extern void spell_command_init (void);
26 | 
27 | #endif /* WEECHAT_PLUGIN_SPELL_COMMAND_H */
28 | 


--------------------------------------------------------------------------------
/src/plugins/spell/spell-completion.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2013-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_SPELL_COMPLETION_H
23 | #define WEECHAT_PLUGIN_SPELL_COMPLETION_H
24 | 
25 | extern void spell_completion_init (void);
26 | 
27 | #endif /* WEECHAT_PLUGIN_SPELL_COMPLETION_H */
28 | 


--------------------------------------------------------------------------------
/src/plugins/spell/spell-info.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2013-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_SPELL_INFO_H
23 | #define WEECHAT_PLUGIN_SPELL_INFO_H
24 | 
25 | extern void spell_info_init (void);
26 | 
27 | #endif /* WEECHAT_PLUGIN_SPELL_INFO_H */
28 | 


--------------------------------------------------------------------------------
/src/plugins/tcl/CMakeLists.txt:
--------------------------------------------------------------------------------
 1 | #
 2 | # SPDX-FileCopyrightText: 2008-2010 Dmitry Kobylin <fnfal@academ.tsc.ru>
 3 | # SPDX-FileCopyrightText: 2008 Julien Louis <ptitlouis@sysif.net>
 4 | # SPDX-FileCopyrightText: 2008-2025 Sébastien Helleu <flashcode@flashtux.org>
 5 | #
 6 | # SPDX-License-Identifier: GPL-3.0-or-later
 7 | #
 8 | # This file is part of WeeChat, the extensible chat client.
 9 | #
10 | # WeeChat is free software; you can redistribute it and/or modify
11 | # it under the terms of the GNU General Public License as published by
12 | # the Free Software Foundation; either version 3 of the License, or
13 | # (at your option) any later version.
14 | #
15 | # WeeChat is distributed in the hope that it will be useful,
16 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
17 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 | # GNU General Public License for more details.
19 | #
20 | # You should have received a copy of the GNU General Public License
21 | # along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
22 | #
23 | 
24 | add_library(tcl MODULE
25 |   weechat-tcl.c weechat-tcl.h
26 |   weechat-tcl-api.c weechat-tcl-api.h
27 | )
28 | set_target_properties(tcl PROPERTIES PREFIX "")
29 | 
30 | if(TCL_FOUND)
31 |   set(CMAKE_REQUIRED_INCLUDES "${TCL_INCLUDE_PATH}")
32 |   set(CMAKE_REQUIRED_LIBRARIES "${TCL_LIBRARY}")
33 |   include_directories(${TCL_INCLUDE_PATH})
34 |   set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${TCL_LFLAGS}")
35 |   target_link_libraries(tcl ${TCL_LIBRARY} weechat_plugins_scripts coverage_config)
36 | endif()
37 | 
38 | install(TARGETS tcl LIBRARY DESTINATION "${WEECHAT_LIBDIR}/plugins")
39 | 


--------------------------------------------------------------------------------
/src/plugins/tcl/weechat-tcl-api.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2008-2010 Dmitry Kobylin <fnfal@academ.tsc.ru>
 3 |  * SPDX-FileCopyrightText: 2008-2025 Sébastien Helleu <flashcode@flashtux.org>
 4 |  *
 5 |  * SPDX-License-Identifier: GPL-3.0-or-later
 6 |  *
 7 |  * This file is part of WeeChat, the extensible chat client.
 8 |  *
 9 |  * WeeChat is free software; you can redistribute it and/or modify
10 |  * it under the terms of the GNU General Public License as published by
11 |  * the Free Software Foundation; either version 3 of the License, or
12 |  * (at your option) any later version.
13 |  *
14 |  * WeeChat is distributed in the hope that it will be useful,
15 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 |  * GNU General Public License for more details.
18 |  *
19 |  * You should have received a copy of the GNU General Public License
20 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
21 |  */
22 | 
23 | #ifndef WEECHAT_PLUGIN_TCL_API_H
24 | #define WEECHAT_PLUGIN_TCL_API_H
25 | 
26 | extern int weechat_tcl_api_buffer_input_data_cb (const void *pointer,
27 |                                                  void *data,
28 |                                                  struct t_gui_buffer *buffer,
29 |                                                  const char *input_data);
30 | extern int weechat_tcl_api_buffer_close_cb (const void *pointer,
31 |                                             void *data,
32 |                                             struct t_gui_buffer *buffer);
33 | extern void weechat_tcl_api_init (Tcl_Interp *interp);
34 | 
35 | #endif /* WEECHAT_PLUGIN_TCL_API_H */
36 | 


--------------------------------------------------------------------------------
/src/plugins/trigger/CMakeLists.txt:
--------------------------------------------------------------------------------
 1 | #
 2 | # SPDX-FileCopyrightText: 2014-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 | #
 4 | # SPDX-License-Identifier: GPL-3.0-or-later
 5 | #
 6 | # This file is part of WeeChat, the extensible chat client.
 7 | #
 8 | # WeeChat is free software; you can redistribute it and/or modify
 9 | # it under the terms of the GNU General Public License as published by
10 | # the Free Software Foundation; either version 3 of the License, or
11 | # (at your option) any later version.
12 | #
13 | # WeeChat is distributed in the hope that it will be useful,
14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 | # GNU General Public License for more details.
17 | #
18 | # You should have received a copy of the GNU General Public License
19 | # along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 | #
21 | 
22 | add_library(trigger MODULE
23 |   trigger.c trigger.h
24 |   trigger-buffer.c trigger-buffer.h
25 |   trigger-callback.c trigger-callback.h
26 |   trigger-command.c trigger-command.h
27 |   trigger-completion.c trigger-completion.h
28 |   trigger-config.c trigger-config.h
29 | )
30 | set_target_properties(trigger PROPERTIES PREFIX "")
31 | 
32 | target_link_libraries(trigger coverage_config)
33 | 
34 | install(TARGETS trigger LIBRARY DESTINATION "${WEECHAT_LIBDIR}/plugins")
35 | 


--------------------------------------------------------------------------------
/src/plugins/trigger/trigger-buffer.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2014-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_TRIGGER_BUFFER_H
23 | #define WEECHAT_PLUGIN_TRIGGER_BUFFER_H
24 | 
25 | #define TRIGGER_BUFFER_NAME "monitor"
26 | 
27 | struct t_trigger_context;
28 | 
29 | extern struct t_gui_buffer *trigger_buffer;
30 | 
31 | extern void trigger_buffer_set_callbacks (void);
32 | extern void trigger_buffer_open (const char *filter, int switch_to_buffer);
33 | extern int trigger_buffer_display_trigger (struct t_trigger *trigger,
34 |                                            struct t_trigger_context *context);
35 | extern void trigger_buffer_end (void);
36 | 
37 | #endif /* WEECHAT_PLUGIN_TRIGGER_BUFFER_H */
38 | 


--------------------------------------------------------------------------------
/src/plugins/trigger/trigger-command.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2014-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_TRIGGER_COMMAND_H
23 | #define WEECHAT_PLUGIN_TRIGGER_COMMAND_H
24 | 
25 | extern void trigger_command_init (void);
26 | 
27 | #endif /* WEECHAT_PLUGIN_TRIGGER_COMMAND_H */
28 | 


--------------------------------------------------------------------------------
/src/plugins/trigger/trigger-completion.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2014-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_TRIGGER_COMPLETION_H
23 | #define WEECHAT_PLUGIN_TRIGGER_COMPLETION_H
24 | 
25 | extern void trigger_completion_init (void);
26 | 
27 | #endif /* WEECHAT_PLUGIN_TRIGGER_COMPLETION_H */
28 | 


--------------------------------------------------------------------------------
/src/plugins/typing/CMakeLists.txt:
--------------------------------------------------------------------------------
 1 | #
 2 | # SPDX-FileCopyrightText: 2021-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 | #
 4 | # SPDX-License-Identifier: GPL-3.0-or-later
 5 | #
 6 | # This file is part of WeeChat, the extensible chat client.
 7 | #
 8 | # WeeChat is free software; you can redistribute it and/or modify
 9 | # it under the terms of the GNU General Public License as published by
10 | # the Free Software Foundation; either version 3 of the License, or
11 | # (at your option) any later version.
12 | #
13 | # WeeChat is distributed in the hope that it will be useful,
14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 | # GNU General Public License for more details.
17 | #
18 | # You should have received a copy of the GNU General Public License
19 | # along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 | #
21 | 
22 | add_library(typing MODULE
23 |   typing.c typing.h
24 |   typing-bar-item.c typing-bar-item.h
25 |   typing-config.c typing-config.h
26 |   typing-status.c typing-status.h
27 | )
28 | set_target_properties(typing PROPERTIES PREFIX "")
29 | 
30 | target_link_libraries(typing coverage_config)
31 | 
32 | install(TARGETS typing LIBRARY DESTINATION "${WEECHAT_LIBDIR}/plugins")
33 | 


--------------------------------------------------------------------------------
/src/plugins/typing/typing-bar-item.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2021-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_TYPING_BAR_ITEM_H
23 | #define WEECHAT_PLUGIN_TYPING_BAR_ITEM_H
24 | 
25 | #define TYPING_BAR_ITEM_NAME "typing"
26 | 
27 | extern void typing_bar_item_init (void);
28 | 
29 | #endif /* WEECHAT_PLUGIN_TYPING_BAR_ITEM_H */
30 | 


--------------------------------------------------------------------------------
/src/plugins/xfer/CMakeLists.txt:
--------------------------------------------------------------------------------
 1 | #
 2 | # SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 | #
 4 | # SPDX-License-Identifier: GPL-3.0-or-later
 5 | #
 6 | # This file is part of WeeChat, the extensible chat client.
 7 | #
 8 | # WeeChat is free software; you can redistribute it and/or modify
 9 | # it under the terms of the GNU General Public License as published by
10 | # the Free Software Foundation; either version 3 of the License, or
11 | # (at your option) any later version.
12 | #
13 | # WeeChat is distributed in the hope that it will be useful,
14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 | # GNU General Public License for more details.
17 | #
18 | # You should have received a copy of the GNU General Public License
19 | # along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 | #
21 | 
22 | add_library(xfer MODULE
23 |   xfer.c xfer.h
24 |   xfer-buffer.c xfer-buffer.h
25 |   xfer-chat.c xfer-chat.h
26 |   xfer-command.c xfer-command.h
27 |   xfer-completion.c xfer-completion.h
28 |   xfer-config.c xfer-config.h
29 |   xfer-dcc.c xfer-dcc.h
30 |   xfer-file.c xfer-file.h
31 |   xfer-info.c xfer-info.h
32 |   xfer-network.c xfer-network.h
33 |   xfer-upgrade.c xfer-upgrade.h
34 | )
35 | set_target_properties(xfer PROPERTIES PREFIX "")
36 | 
37 | set(LINK_LIBS)
38 | 
39 | list(APPEND LINK_LIBS ${LIBGCRYPT_LDFLAGS})
40 | 
41 | if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
42 |   # link with resolv lib on macOS
43 |   list(APPEND LINK_LIBS "resolv")
44 | endif()
45 | 
46 | target_link_libraries(xfer ${LINK_LIBS} coverage_config)
47 | 
48 | install(TARGETS xfer LIBRARY DESTINATION "${WEECHAT_LIBDIR}/plugins")
49 | 


--------------------------------------------------------------------------------
/src/plugins/xfer/xfer-buffer.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_XFER_BUFFER_H
23 | #define WEECHAT_PLUGIN_XFER_BUFFER_H
24 | 
25 | #define XFER_BUFFER_NAME "xfer.list"
26 | 
27 | extern struct t_gui_buffer *xfer_buffer;
28 | extern int xfer_buffer_selected_line;
29 | 
30 | extern void xfer_buffer_refresh (const char *hotlist);
31 | extern int xfer_buffer_input_cb (const void *pointer, void *data,
32 |                                  struct t_gui_buffer *buffer,
33 |                                  const char *input_data);
34 | extern int xfer_buffer_close_cb (const void *pointer, void *data,
35 |                                  struct t_gui_buffer *buffer);
36 | extern void xfer_buffer_open (void);
37 | 
38 | #endif /* WEECHAT_PLUGIN_XFER_BUFFER_H */
39 | 


--------------------------------------------------------------------------------
/src/plugins/xfer/xfer-chat.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_XFER_CHAT_H
23 | #define WEECHAT_PLUGIN_XFER_CHAT_H
24 | 
25 | extern void xfer_chat_sendf (struct t_xfer *xfer, const char *format, ...);
26 | extern int xfer_chat_recv_cb (const void *pointer, void *data, int fd);
27 | extern int xfer_chat_buffer_input_cb (const void *pointer, void *data,
28 |                                       struct t_gui_buffer *buffer,
29 |                                       const char *input_data);
30 | extern int xfer_chat_buffer_close_cb (const void *pointer, void *data,
31 |                                       struct t_gui_buffer *buffer);
32 | extern void xfer_chat_open_buffer (struct t_xfer *xfer);
33 | 
34 | #endif /* WEECHAT_PLUGIN_XFER_CHAT_H */
35 | 


--------------------------------------------------------------------------------
/src/plugins/xfer/xfer-command.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_XFER_COMMAND_H
23 | #define WEECHAT_PLUGIN_XFER_COMMAND_H
24 | 
25 | #define XFER_COMMAND_KEEP_SPACES weechat_hook_set (ptr_hook, "keep_spaces_right", "1")
26 | 
27 | extern void xfer_command_init (void);
28 | 
29 | #endif /* WEECHAT_PLUGIN_XFER_COMMAND_H */
30 | 


--------------------------------------------------------------------------------
/src/plugins/xfer/xfer-completion.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_XFER_COMPLETION_H
23 | #define WEECHAT_PLUGIN_XFER_COMPLETION_H
24 | 
25 | extern void xfer_completion_init (void);
26 | 
27 | #endif /* WEECHAT_PLUGIN_XFER_COMPLETION_H */
28 | 


--------------------------------------------------------------------------------
/src/plugins/xfer/xfer-dcc.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_XFER_DCC_H
23 | #define WEECHAT_PLUGIN_XFER_DCC_H
24 | 
25 | extern void xfer_dcc_send_file_child (struct t_xfer *xfer);
26 | extern void xfer_dcc_recv_file_child (struct t_xfer *xfer);
27 | 
28 | #endif /* WEECHAT_PLUGIN_XFER_DCC_H */
29 | 


--------------------------------------------------------------------------------
/src/plugins/xfer/xfer-file.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_XFER_FILE_H
23 | #define WEECHAT_PLUGIN_XFER_FILE_H
24 | 
25 | extern const char *xfer_file_search_crc32 (const char *filename);
26 | extern void xfer_file_find_filename (struct t_xfer *xfer);
27 | extern void xfer_file_calculate_speed (struct t_xfer *xfer, int ended);
28 | 
29 | #endif /* WEECHAT_PLUGIN_XFER_FILE_H */
30 | 


--------------------------------------------------------------------------------
/src/plugins/xfer/xfer-info.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_XFER_INFO_H
23 | #define WEECHAT_PLUGIN_XFER_INFO_H
24 | 
25 | extern void xfer_info_init (void);
26 | 
27 | #endif /* WEECHAT_PLUGIN_XFER_INFO_H */
28 | 


--------------------------------------------------------------------------------
/src/plugins/xfer/xfer-network.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_XFER_NETWORK_H
23 | #define WEECHAT_PLUGIN_XFER_NETWORK_H
24 | 
25 | #include <sys/socket.h>
26 | 
27 | extern int xfer_network_resolve_addr (const char *str_address,
28 |                                       const char *str_port,
29 |                                       struct sockaddr *addr,
30 |                                       socklen_t *addr_len,
31 |                                       int ai_flags);
32 | extern void xfer_network_write_pipe (struct t_xfer *xfer, int status,
33 |                                      int error);
34 | extern void xfer_network_connect_init (struct t_xfer *xfer);
35 | extern void xfer_network_child_kill (struct t_xfer *xfer);
36 | extern int xfer_network_connect (struct t_xfer *xfer);
37 | extern void xfer_network_accept (struct t_xfer *xfer);
38 | 
39 | #endif /* WEECHAT_PLUGIN_XFER_NETWORK_H */
40 | 


--------------------------------------------------------------------------------
/src/plugins/xfer/xfer-upgrade.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_PLUGIN_XFER_UPGRADE_H
23 | #define WEECHAT_PLUGIN_XFER_UPGRADE_H
24 | 
25 | #define XFER_UPGRADE_FILENAME "xfer"
26 | 
27 | /* For developers: please add new values ONLY AT THE END of enums */
28 | 
29 | enum t_xfer_upgrade_type
30 | {
31 |     XFER_UPGRADE_TYPE_XFER = 0,
32 | };
33 | 
34 | extern int xfer_upgrade_save (void);
35 | extern int xfer_upgrade_load (void);
36 | 
37 | #endif /* WEECHAT_PLUGIN_XFER_UPGRADE_H */
38 | 


--------------------------------------------------------------------------------
/tests/CMakeLists.txt:
--------------------------------------------------------------------------------
 1 | #
 2 | # SPDX-FileCopyrightText: 2014-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 | #
 4 | # SPDX-License-Identifier: GPL-3.0-or-later
 5 | #
 6 | # This file is part of WeeChat, the extensible chat client.
 7 | #
 8 | # WeeChat is free software; you can redistribute it and/or modify
 9 | # it under the terms of the GNU General Public License as published by
10 | # the Free Software Foundation; either version 3 of the License, or
11 | # (at your option) any later version.
12 | #
13 | # WeeChat is distributed in the hope that it will be useful,
14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 | # GNU General Public License for more details.
17 | #
18 | # You should have received a copy of the GNU General Public License
19 | # along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 | #
21 | 
22 | if(ENABLE_FUZZ)
23 |   add_subdirectory(fuzz)
24 | endif()
25 | 
26 | if(ENABLE_TESTS)
27 |   add_subdirectory(unit)
28 | endif()
29 | 


--------------------------------------------------------------------------------
/tests/fuzz/core/calc-fuzzer.cc:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | /* Fuzz testing on WeeChat core calc functions */
23 | 
24 | extern "C"
25 | {
26 | #include <stdlib.h>
27 | #include <stdint.h>
28 | #include <stddef.h>
29 | #include <string.h>
30 | 
31 | #include "src/core/core-calc.h"
32 | }
33 | 
34 | extern "C" int LLVMFuzzerTestOneInput (const uint8_t *data, size_t size)
35 | {
36 |     char *str;
37 | 
38 |     /* ignore huge data */
39 |     if (size > 65536)
40 |         return 0;
41 | 
42 |     str = (char *)malloc (size + 1);
43 |     memcpy (str, data, size);
44 |     str[size] = '\0';
45 | 
46 |     free (calc_expression (str));
47 | 
48 |     free (str);
49 | 
50 |     return 0;
51 | }
52 | 


--------------------------------------------------------------------------------
/tests/fuzz/core/weechat_core_calc_fuzzer.dict:
--------------------------------------------------------------------------------
 1 | # SPDX-FileCopyrightText: 2025 Sébastien Helleu <flashcode@flashtux.org>
 2 | #
 3 | # SPDX-License-Identifier: GPL-3.0-or-later
 4 | 
 5 | "0"
 6 | "1"
 7 | "2"
 8 | "3"
 9 | "4"
10 | "5"
11 | "6"
12 | "7"
13 | "8"
14 | "9"
15 | "."
16 | "("
17 | ")"
18 | "+"
19 | "-"
20 | "*"
21 | "/"
22 | "//"
23 | "%"
24 | "**"
25 | 


--------------------------------------------------------------------------------
/tests/fuzz/ossfuzz.sh:
--------------------------------------------------------------------------------
 1 | #!/bin/sh
 2 | #
 3 | # SPDX-FileCopyrightText: 2025 Sébastien Helleu <flashcode@flashtux.org>
 4 | #
 5 | # SPDX-License-Identifier: GPL-3.0-or-later
 6 | 
 7 | # This script is meant to be run by OSS-Fuzz, see:
 8 | # https://github.com/google/oss-fuzz/blob/master/projects/weechat/Dockerfile
 9 | 
10 | set -o errexit
11 | 
12 | src_dir="${SRC}"/weechat
13 | build_dir="${WORK}"/build
14 | 
15 | cd "${src_dir}"
16 | 
17 | # apply patch for Ubuntu Focal (needed because CMake version is too old)
18 | git apply tools/debian/patches/weechat_ubuntu_focal.patch
19 | 
20 | mkdir -p "${build_dir}"
21 | cd "${build_dir}"
22 | cmake \
23 |     -DCMAKE_BUILD_TYPE=Debug \
24 |     -DENABLE_CJSON=OFF \
25 |     -DENABLE_COVERAGE=ON \
26 |     -DENABLE_FUZZ=ON \
27 |     "${src_dir}"
28 | make -j "$(nproc)"
29 | 
30 | cp tests/fuzz/weechat_*_fuzzer "${OUT}"/
31 | cp "${src_dir}"/tests/fuzz/core/*.dict "${OUT}"/
32 | 


--------------------------------------------------------------------------------
/tests/unit/plugins/relay/test-relay-bar-item.cpp:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2024-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <http://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | /* Test relay bar item functions */
23 | 
24 | #include "CppUTest/TestHarness.h"
25 | 
26 | extern "C"
27 | {
28 | #include <stdio.h>
29 | #include <string.h>
30 | #include "src/plugins/relay/relay.h"
31 | #include "src/plugins/relay/relay-bar-item.h"
32 | }
33 | 
34 | TEST_GROUP(RelayBarItem)
35 | {
36 | };
37 | 
38 | /*
39 |  * Tests functions:
40 |  *   relay_bar_item_input_prompt
41 |  */
42 | 
43 | TEST(RelayBarItem, InputPrompt)
44 | {
45 |     /* TODO: write tests */
46 | }
47 | 
48 | /*
49 |  * Tests functions:
50 |  *   relay_bar_item_init
51 |  */
52 | 
53 | TEST(RelayBarItem, Init)
54 | {
55 |     /* TODO: write tests */
56 | }
57 | 


--------------------------------------------------------------------------------
/tests/unit/plugins/test-plugins.cpp:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2003-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | /* Generic tests on plugins */
23 | 
24 | #include "CppUTest/TestHarness.h"
25 | 
26 | TEST_GROUP(Plugins)
27 | {
28 | };
29 | 


--------------------------------------------------------------------------------
/tests/unit/tests.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * SPDX-FileCopyrightText: 2014-2025 Sébastien Helleu <flashcode@flashtux.org>
 3 |  *
 4 |  * SPDX-License-Identifier: GPL-3.0-or-later
 5 |  *
 6 |  * This file is part of WeeChat, the extensible chat client.
 7 |  *
 8 |  * WeeChat is free software; you can redistribute it and/or modify
 9 |  * it under the terms of the GNU General Public License as published by
10 |  * the Free Software Foundation; either version 3 of the License, or
11 |  * (at your option) any later version.
12 |  *
13 |  * WeeChat is distributed in the hope that it will be useful,
14 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 |  * GNU General Public License for more details.
17 |  *
18 |  * You should have received a copy of the GNU General Public License
19 |  * along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
20 |  */
21 | 
22 | #ifndef WEECHAT_TESTS_H
23 | #define WEECHAT_TESTS_H
24 | 
25 | #define WEE_TEST_STR(__result, __test)                                  \
26 |     str = __test;                                                       \
27 |     STRCMP_EQUAL(__result, str);                                        \
28 |     free (str);
29 | 
30 | extern void run_cmd (const char *command);
31 | extern void run_cmd_quiet (const char *command);
32 | 
33 | #endif /* WEECHAT_TESTS_H */
34 | 


--------------------------------------------------------------------------------
/tools/check_scripts.sh:
--------------------------------------------------------------------------------
 1 | #!/bin/sh
 2 | #
 3 | # SPDX-FileCopyrightText: 2023-2025 Sébastien Helleu <flashcode@flashtux.org>
 4 | #
 5 | # SPDX-License-Identifier: GPL-3.0-or-later
 6 | #
 7 | # This file is part of WeeChat, the extensible chat client.
 8 | #
 9 | # WeeChat is free software; you can redistribute it and/or modify
10 | # it under the terms of the GNU General Public License as published by
11 | # the Free Software Foundation; either version 3 of the License, or
12 | # (at your option) any later version.
13 | #
14 | # WeeChat is distributed in the hope that it will be useful,
15 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 | # GNU General Public License for more details.
18 | #
19 | # You should have received a copy of the GNU General Public License
20 | # along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
21 | #
22 | 
23 | #
24 | # Check shell and Python scripts in WeeChat git repository using these tools:
25 | #  - shell scripts: shellcheck
26 | #  - Python scripts: flake8 + pylint + bandit
27 | #
28 | 
29 | set -o errexit
30 | 
31 | # check git repository
32 | root_dir=$(git rev-parse --show-toplevel)
33 | cd "${root_dir}"
34 | 
35 | shell_scripts=$(git ls-files "*.sh")
36 | python_scripts=$(git ls-files "*.py")
37 | 
38 | # display commands
39 | set -x
40 | 
41 | # check shell scripts
42 | for script in ${shell_scripts}; do
43 |     shellcheck "${root_dir}/$script"
44 | done
45 | 
46 | # check Python scripts
47 | for script in ${python_scripts}; do
48 |     flake8 --max-line-length=100 --builtins=_ "${root_dir}/$script"
49 |     pylint --additional-builtins=_ "${root_dir}/$script"
50 |     bandit "${root_dir}/$script"
51 | done
52 | 


--------------------------------------------------------------------------------
/tools/debian/patches/README:
--------------------------------------------------------------------------------
1 | This directory contains patches that must be applied for some old Debian/Ubuntu
2 | versions, in order to build Debian packages.
3 | 
4 | They are automatically applied by the script "tools/build_debian.sh".
5 | 


--------------------------------------------------------------------------------
/weechat.desktop:
--------------------------------------------------------------------------------
 1 | [Desktop Entry]
 2 | Name=WeeChat
 3 | GenericName=Chat client
 4 | GenericName[de]=Chat-Client
 5 | GenericName[fr]=Client de discussion
 6 | Comment=Extensible chat client
 7 | Comment[de]=erweiterbarer Chat-Client
 8 | Comment[fr]=Client de discussion extensible
 9 | Keywords=WeeChat;extensible;chat;IRC;client;console;terminal;
10 | Keywords[de]=WeeChat;erweiterbar;Diskussion;IRC;Client;console;terminal;
11 | Keywords[fr]=WeeChat;extensible;discussion;IRC;client;console;terminal;
12 | Exec=weechat %u
13 | Terminal=true
14 | Icon=weechat
15 | Type=Application
16 | Categories=Network;Chat;IRCClient;ConsoleOnly;
17 | MimeType=x-scheme-handler/irc;x-scheme-handler/ircs;
18 | 


--------------------------------------------------------------------------------
/weechat.pc.in:
--------------------------------------------------------------------------------
 1 | prefix=@prefix@
 2 | exec_prefix=@exec_prefix@
 3 | libdir=@libdir@
 4 | includedir=@includedir@
 5 | 
 6 | Name: weechat
 7 | Description: WeeChat plugins headers
 8 | Version: @VERSION@
 9 | Cflags: -I${includedir}/@PACKAGE@
10 | 


--------------------------------------------------------------------------------